XQilla-2.3.4/0000755001725400016040000000000013273141207007717 500000000000000XQilla-2.3.4/aclocal.m40000644001725400016040000011047213273140037011504 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 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.11' 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.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 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, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # 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", "GCJ", or "OBJC". # 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 ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" 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'. 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 8's {/usr,}/bin/sh. touch 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 ;; 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, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [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([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 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, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], [AC_PREREQ(2.50)dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then LEX=${am_missing_run}flex fi]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # 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, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 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_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _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, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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)]) # Copyright (C) 2001, 2003, 2005 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, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_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, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_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. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([autotools/m4/libtool.m4]) m4_include([autotools/m4/ltoptions.m4]) m4_include([autotools/m4/ltsugar.m4]) m4_include([autotools/m4/ltversion.m4]) m4_include([autotools/m4/lt~obsolete.m4]) XQilla-2.3.4/ChangeLog0000644001725400016040000003050013273140037011407 00000000000000XQilla: an XQuery and XPath 2.0 library and command line interpreter. version 2.3.4 (2018.04.04): * Added C++11 support. * Added Visual Studio 2015 projects. * Removed Visual Studio 2008 projects. * Modified to build against Xerces-C 3.2.1. version 2.3.3 (2015.07.07): * Fixed a localization bug parsing floating point numbers. * Added Visual Studio 2012 projects. * Added Visual Studio 2008 projects. * Removed Visual Studio 2005 and 2003 projects. * Modified to build against Xerces-C 3.1.3. version 2.3.2 (2015.07.07): * XQilla can now be built with Visual Studios 2013. version 2.3.1 (2015.05.18): * Modified to build against Xerces-C 3.1.2. * Added Visual Studio 2010 projects. * Fixed a bug that could cause incorrect query results when combining nested expressions and functions. * Fixed a crash that could happen when XQilla is built with Visual Studio 2010 or higher. version 2.3.0 (2011.09.09): * Added support for XQuery 3.0 version declarations. * Updated to support XQuery 3.0 higher order functions, including partial function application, function coercion, and function item SequenceType checking. * Implemented XQuery 3.0 FLWOR clause ordering. * Implemented XQuery 3.0 FLWOR count clause. * Implemented XQuery 3.0 extended typeswitch syntax. * Implemented XQuery 3.0 namespace test and constructor. * Implemented XQuery 3.0 private functions. * Updated to the latest W3C XQuery Full Text syntax. * Implemented Unicode word bounding and sentence bounding for XQuery Full Text tokenization. * Implemented XQuery Full Text case options. * Implemented XQuery 1.0 second edition semantics for module import. * Added the xqilla:explain() function to return the query plan of an expression. * Added xqilla:words() and xqilla:sentences() to perform Unicode word and sentance boundary detection. * Added xqilla:drop(). * Rewrote a number of the built-in XQuery functions in XQuery itself. * Implemented constant time indexing into materialized sequences. * Improved the efficiency of the tail call optimization code. * Optimized boolean operators. * Optimized DOMDocument::evaluate() calls. * Fixed various bugs in static typing. * Fixed various memory leaks in the DOM 3 API, and regular expressions. * Fixed a bug that caused a crash when using huge integers. * Modified to build against Xerces-C 3.1.1 * Added Visual Studio 2010 support. * Build fix for AIX 5.3. * Build fix for the clang++ compiler. * Build fix for GCC 4.6. version 2.2.4 (2010.03.01): * Modified to build against Xerces-C 3.1.0 * Modified the DOM 3 API to only orphan grammars if PSVI is enabled. * Fixed computed attribute constructors not to use the default element namespace for names. * Modified node serialization to generate prefixes for attributes with no prefix but in a namespace. * Modified node serialization to use existing prefixes if possible. * Fixed an unknown exception during certain update operations. * Build fix for Sun Workshop 6 compiler. * Build fix for older GCC. * Added maintainer mode (--enable-maintainer-mode) to rebuild build related files. version 2.2.3 (2009.11.12): * Work around for a Xerces-C bug in DOMDocument::importNode() that resulted in badly copied prefixes using XQuery Update. * Fixed a segfault in the DOM 3 API by orphaning Xerces-C Grammar correctly. * Fixed optimization of count(), exists(), and empty() based on static type if the argument uses doc() or collection(). * Fixed a bug that caused a crash when using "order by" in some circumstances. * Fixed query/module static-typing to also (re-)static type the modules it imports. * Fixed a bug in fn:codepoint-equal(). version 2.2.2 (2009.07.02): * Fixed XQillaDocumentImpl::cloneNode() to return an instance of XQillaDocumentImpl. * Fixed XPath 2.0 so that it doesn't recognize entities in string literals. * Fixed a bug in the constant folding identity transforms for arithmetic expressions. * Fixed a bug in the undefined context item check. * Fixed the transform expression to copy document nodes rather than dissolving them. * Fixed a bug in the static typing of external functions. * Fixed a bug in fn:matches()with a zero-length string as the first argument. * Fixed a couple of bugs in the debug API, and made it report exit() and end() events correctly. * Fixed variable inlining so that variables aren't inlined into loops. * Fixed a segfault when parsing a document from a memory buffer. * Fixed a bug in XQC_Implementation->parse_document_file() that caused parsing to always fail. * Workaround a bug in Xerces-C that can cause corrupted memory when deleting a mutex. * Fixed a bug related to unsigned int/XMLSize_t type difference between Xerces-C 2.8 and 3.0. * Fixed alignment on sparc architectures that could cause a SIGBUS crash. * Fixed a Windows memory bug involving the URI used in resolving a document or collection. * Fixed Windows compile warnings related to Xerces-C types. * Updated libtool version to 2.2.6. * Fixed some compiler issues related to the xlC compiler. version 2.2.0 (2009.01.05): * Added a debugging API, and a command line debugger invoked by passing a "-d" flag to the command line tool. * Added a partial implementation of XSLT 2.0. This should currently be considered alpha quality. * Added an implementation of the current draft of XQC, a standard C API for accessing XQuery implementations. * Added a prototype implementation of higher order functions for XQuery. * Added the ExternalFunctionResolver API to resolve implementations for external functions that are unknown before compile time. * Added the xqilla:analyze-string() extension function for performing complex regular expression analysis. * Added query options for controlling schema validation, document projection and lint warnings. * Added a --disable-rpath configure option for maintainers. * Implemented function and variable inlining, and other partial evaluation optimizations. * Implemented tail recursion optimization. * Modified XQilla to compile against Xerces-C 3.0. A source installation of Xerces-C is no longer necessary for compilation. * Improved static typing with cardinality information. * Fixed a bug in schema validation of a document in no namespace. * Fixed schema validation to check ID/IDREF constraints correctly. * Fixed a bug in validation of SequenceTypes like document-node(schema-element(XX)). * Fixed a bug in re-writing documents to disk after updating them, when they have a space in their document URIs. version 2.1.4 (2008.07.31): * Fixed a bug in XQTreatAs that removed type checking under circumstances where it was still needed. version 2.1.3 (2008.07.29): * Modified the StaticAnalysis class in order to reduce the memory footprint of a prepared query by at least 50%. * Changed the code so that compilation against a patched version of Xerces-C 2.8 is no longer required. XQilla will build with reduced functionality without the patches. * Workaround a Windows optimizer issue that caused instance of queries to fail in a release build on Windows. * Fixed another Solaris compilation bug. version 2.1.2 (2008.04.28): * Fixed a bug in static resolution of replace expressions * Fixed the Xerces-C data model layer to work correctly with DOM Level 1 elements and attributes. * Worked around a Xerces-C bug that resulted in exceptions when using the DOM 3 API with certain schemas. * Fixed a 64 bit compilation problem. * Fixed a Solaris compilation problem. version 2.1.1 (2008.04.08): * Added the xqilla:parse-json() and xqilla:serialize-json() extension functions to parse and serialize JSON. * Added the xqilla:parse-html() function which uses HTML Tidy to parse HTML into XML. The function will not be compiled if TidyLib is not found. * Added fn:unparsed-text(), a function from XSLT 2.0 which can fetch a URL and return it as a string. * Added an xqilla:time() function which outputs the time taken to evaluate it's argument. * Added src/xercesc_content_type.patch which should be applied against Xerces-C 2.8 to fix an HTTP connection bug. * Added src/xercesc_regex.patch which should be applied against Xerces-C 2.8 to fix a regular expression bug in fn:replace(). * Added project files for Visual C++ 8, including 64 bit build targets. * Changed the default XQuery Update revalidation mode to LAX. * Fixed a bug in the lexing of element and attribute content in queries that incorrectly rejected certain Unicode characters. * Fixed a bug in external functions when used with modules. * Fixed a memory leak in the FastXDMURIResolver. * Fixed a segfault in XPath2ResultImpl if the results were only partially navigated. * Fixed a bug in XPath2ResultImpl where XQExceptions weren't being turned into XQillaExceptions. * Fixed XQilla to compile using Visual C++ 6. * Fixed compilation flags to work under HPUX. version 2.0.0 (2007.12.12): * Changed the license for XQilla to the Apache License v2, a more permissive open-source licence. * Implemented document projection, an optimisation technique that prunes sub-trees of documents not needed for the query at parse time. This is enabled by default. * Added a new extension function xqilla:parse-xml() which takes a string and parses it as an XML document. * Added optional support for using the FAXPP XML parser instead of the Xerces-C parser. * Added a command line option to the "xqilla" utility for binding external variables from the command line. * Implemented better error messages for type errors. * Modified the embedded MAPM library so we are now using it under the terms of the MIT licence. * Fixed miscellaneous bugs in the XQuery Update implementation. * Fixed a bug with the algorithm to add and subtract an xs:dayTimeDuration to or from an xs:date. * Fixed a bug in XercesNodeImpl which caused a segfault if the node was created as a value of a global variable in another module. version 1.1.0 (2007.08.31): * Added support for XQuery Update (Last Call Working Draft, 28 August 2007). * Added XQillaConfiguration, which encapsulates everything needed to create or use a new data model. * Implemented a new data model called FastXDM. It places nodes in a sequential array, and is much faster and more memory efficient than the DOM based data model. This is now the default data model. * Implemented XercesConfiguration, to enable use of the Xerces-C DOM based data model. * Implemented EventHandler, an event based execution interface. This is used primarily for efficient evaluation of constructed nodes. This can be invoked using XQQuery::execute(EventHandler*,DynamicContext*). * Added the ExternalFunction class, to allow users to easily implement XQuery external functions. * Added the MessageListener interface, to allow users to easily receive warning and trace messages. * Implemented closures, to enable the efficient and lazy execution of "let" expressions. * Implemented more lazy execution code for "order by" expressions * Added better error messages for sequence type checking errors. * Removed the XQDebugCallback API. * Rewrote the lexer and parser to be more memory efficient. * Rewrote "validate" expressions to be more memory efficient. * Modified the XQuery Test Suite runner to run the forthcoming XQuery Update test suite. * Made minor changes to allow compilation against the Xerces-C 2.8 release candidate. * Fixed a bug in the limit checking of the seconds field in the time when parsing. * Fixed modules so that the correct language is used to parse the module. * Fixed a bug in the code to create a new dynamic context for a module. * Fixed possible segmentation faults and memory leaks when using the DOM3 API * A number of other miscellaneous minor bug fixes. version 1.0.1 (2007.02.12): * Fixed fn:concat() to accept more than 51 arguments. * Fixed module parsing, to use the correct language enumeration when parsing. Output modules in the query plan. * Fixed a race condition in the parsing of function signatures. * Fixed parse errors in the DOM3 API, which were being thrown as XQException instead of XQillaException. [1626534] * Fixed the building of shared libraries under Cygwin, by adding -no-undefined to the libtool line in the Makefile. [1639669] * Fixed a bug in the static typing of user defined functions, that could result in incorrect errors. XQilla-2.3.4/docs/0000755001725400016040000000000013273141207010647 500000000000000XQilla-2.3.4/docs/Doxyfile.devapi.in0000644001725400016040000011700713232476422014164 00000000000000# Doxyfile 1.2.18 # 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 (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla Development API" # 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 = 1.0 # 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 = . # 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: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # 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 = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # 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 = YES # 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 class 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 = YES # 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 # 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. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # 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 # 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 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 # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the 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 VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # 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 the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # 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 DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = 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 # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If 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 # 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 # 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 # 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 = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # 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 # 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. 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 = \ ../include/xqilla/ \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/XMemory.hpp \ %xerces_include%/xercesc/dom/DOMNode.hpp \ %xerces_include%/xercesc/dom/DOMDocument.hpp \ %xerces_include%/xercesc/dom/DOMXPathNSResolver.hpp \ %xerces_include%/xercesc/util/XMLEntityResolver.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/sax/InputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileInputSource.hpp \ %xerces_include%/xercesc/framework/MemBufInputSource.hpp \ %xerces_include%/xercesc/framework/StdInInputSource.hpp \ %xerces_include%/xercesc/framework/URLInputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileFormatTarget.hpp \ %xerces_include%/xercesc/framework/MemBufFormatTarget.hpp \ %xerces_include%/xercesc/framework/StdOutFormatTarget.hpp \ %xerces_include%/xercesc/framework/XMLFormatter.hpp # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # 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. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. 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 # If the REFERENCED_BY_RELATION tag is set to YES (the default) # 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 (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = dev-api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # 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 HTML_STYLESHEET = # 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 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 compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. 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 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 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag 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 and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = 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 #--------------------------------------------------------------------------- # 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 = NO # 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. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # 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 = NO # 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 #--------------------------------------------------------------------------- # 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 optimised 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 assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # 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 = #--------------------------------------------------------------------------- # 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 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_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # 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. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # 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 = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # 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 intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.4/docs/simple-api/0000755001725400016040000000000013273140077012713 500000000000000XQilla-2.3.4/docs/simple-api/Item_8hpp_source.html0000644001725400016040000003661613273140073016746 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Item.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _ITEM_HPP
21 #define _ITEM_HPP
22 
23 #include <xqilla/framework/XQillaExport.hpp>
25 #include <xercesc/util/XercesDefs.hpp>
26 
27 XERCES_CPP_NAMESPACE_BEGIN
28 class XMLBuffer;
29 XERCES_CPP_NAMESPACE_END
30 
31 // forward declare when we can
33 class DynamicContext;
34 class EventHandler;
35 
36 class XQILLA_API Item : public ReferenceCounted
37 {
38 public:
40 
42  static const XMLCh gXQilla[];
43 
44  virtual bool isNode() const = 0;
45 
46  virtual bool isAtomicValue() const = 0;
47 
48  virtual bool isFunction() const = 0;
49 
50  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
51 
52  virtual const XMLCh* getTypeURI() const = 0;
53 
54  virtual const XMLCh* getTypeName() const = 0;
55 
57  virtual void generateEvents(EventHandler *events, const DynamicContext *context,
58  bool preserveNS = true, bool preserveType = true) const = 0;
59 
61  virtual void *getInterface(const XMLCh *name) const = 0;
62 
64  virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const = 0;
65 
66 protected:
67  Item() {}
68 
69 private:
70  // copy constructor
71  Item (const Item & other);
72  // assignment operation
73  Item & operator=(const Item & item) ;
74 };
75 
76 #endif
77 
Definition: XPath2MemoryManager.hpp:45
Definition: EventHandler.hpp:29
Super class for reference counted classes.
Definition: ReferenceCounted.hpp:30
Item()
Definition: Item.hpp:67
Definition: Item.hpp:36
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
RefCountPointer< const Item > Ptr
Definition: Item.hpp:39
XQilla-2.3.4/docs/simple-api/classTimezone__inherit__graph.md50000644001725400016040000000004013273140074021252 00000000000000f7fdce1206ab32ba51ce4f9e3362f4f7XQilla-2.3.4/docs/simple-api/tab_b.png0000644001725400016040000000025113273140073014402 00000000000000PNG  IHDR$[pIDATxM EǻԸu`V0}:t]Ds䮂u|x>1&m8SxLU޲iEOsnxKN~jIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_42.png0000644001725400016040000002746513273140077016507 00000000000000PNG  IHDRbKGD IDATxi\S a3lAvBA@p U,TrA[Wjm} *X/b﫵Vmk[QqYTTp_@jYDB~8mn  Yf<'>Ι0 CԔ2@uA.Pե`9:2F lmmRb50EP!}}}gg  }H$ ֖Hb07oTqQ]]mll,}F988\~ 0ŔY !TYY)s΍w###Bñ9v^/MHH{*RS!ܬа\e]q('\t MLL!:::QQQnpppRRw#%%%((HƙLG}dlllee% cccMLLV^^Ez@ oNNN&&&{=u v܉QQQfffQQQui''c۷!; Ƭi``feeM2D"YXXݻWL㏓&Mw`&X ð|2a@t*w133>}ܼ0&I"Z[[Q}(1 [`gh4ˮ][gggVZZ:cƌH>6B(44b/O?!Z[[1  |9F/ZAAA رcW^uCl6駟Y?b455׮]Ѐ薖m;vBdgg{{{rC u=cccIݍ7FGGc#f/|"(055~„ Ǐ۽dB)m'Nljj 主rssKvPtuu?~xOT544V\iӦ;vZjg}VWW"'OX^ZbEttt]]F=|p/9l6?|&ˍEl6nܸm۶+WzvGÒOCIP԰0uV)>|XxZb\.+22 44`%d]zz:GnX5k_CnI@0g]]Ma&kjj;J9r$44Tn"vvv&&&= SA)f_Q,*^p!..M4{h4Zxxxaaaggwܹn:eP v@Ym@mmm׮] 7Sv) CTd( P].{F utB+]]B.W 8X1bG.0)t`y BD"!ihB%oŮӦ'0ARuUU-nIR64< u,pw7ov C <[_/]]Ǐ^gfi{{OXpŮ:: C E[:.SqriNN{UD//ǥK{oRANjk[׭;c>Zĭb FիJo KNӃTPÌ@ |x[";23oݪ ϟS||I$!7jThorUΝtUjta2;srJUD>Vdj 5Jr.]*,~zE\/#C2h¾tŢZ##ߟb8eBċ?p2&ʎ j?|Rrt42DOq2O, jRR .^,rfM  o3% ;HTq :! (*IN/(%IKM>Vq 2Fŋg>ۛ.[6%0p#d(0pzRC:J al )P|GeBwV\EK+  d(tu rrSR OrTv\` ޾fօ II/W8ި ">9 -9{CPTwmm e UUUРhRwwwAj޸gJJ4I5 U^^TC|ҤI}̒g>>"/P[[[RR"i`ܼySUDuu__lYSSSSSݻwBM oܸ/6ocG)QQIEEϕ*ʰ *++%bxܹ111nddP(p8666ǎ~嗒 ~~~6{o\ETVVvT"mnnxP{{Sw._s~W[[ 3M"@O.]&&&щJLLwRRRld~GVVV]]]B066dxoKGz@ oNNN&&&{=u v܉QQQfffQQQui''c۷!; {{5kk۷ogeeM2D"YXXݻ!e0344o{ 2Meffjkkڞ:u o{#99[f̰=x0󫈈99"Xс!և0,??L&c`0Bt:]ʝ;wO>577/**0dHVCJq ,X3k׮oٙFΘ1#22{  eX B($$bOV ?N<<< VPP8vBիW]??ׯ755ijj]---Ν[ZZ 1H7ܬ?655buodtu 22BBXZnY_ߦ[6t޽{ƒ7n0,11G^D"Qajj RSS#?Ʒ{PxS2E'NԄqwwkJT>>555qKKK 8q"BHSS3!!?E"-[ёf͚c244ͽ[?Jۛn߾pѣ5>Դi_ܙiCod( Î=d|7,,lݒoB񾾾#saٷo Pq333"X]]zBŏג+ߋ`0߿WSg'5.UXXxД OOOI)ISb899?okkCC~ĺʕw݇Wvt`t˗/oܸ|ɠoLLLKK˂ +++f̘AP6l N$#""O]XrMjjjvjժ۷ϧ}Y]]BL&#NċτeiT2?ѣGFruGݱ}KrQK>T2/6ÇՅ>"$)Չ|gĻT\K:)'3nߦhhhC RF _~Y7yc"GK\or0|v(]FTֺusCCg=+L&W$BTLaOe^loiaս{uVŋL@ #IXffffowfΜ4 T9m ֺus9uޡC9L&W,ƍP=R7Ψ{yHjldhld\ZpZ%HH4ttdd(Л1c4ׯg;tڛ/L$YZ--Ӧ9bqv/ox!02@}R_kA}1NN˗ pCTd(} C0`[ڷ ebbbnnNPϟfkk{ݻMLL]bŊ?~/pB7W322l\EW^ :d(0\eddP(|g:::vttCZ+]> Xߔ40 ի?×/_=x?zvZʩr0d;v6o,{yك`) ]${_Urk]9=@ kYuP12~rz__גrj ־P`.\uVCi䮜`~ +Xv?ٳW^ď_֒rjOmk",EbC:t͍cfaaֆjO]ɵʩ=Ue4G־7%;?$f_UB) CTd( P]ʡ|> 966+İY-)2hW]?fމW_ ̆FK E[[CʞJP 9He6??-."xb*xv0P\SF} /Y T,/``@—rru{**u\%zZ!y;8x>w[ u.\Xb~qW&Pc#C %w_562֤Wr g%[[S]]-#JNNyyOZZTimk)P-,,d9HOfQB $3^#^:tjjjB ;ӯu45w{_IXq߿暛SR N[_J Ѝ"05C^XH$E"L!q){VWW35շkee=B1PVVc)~u#s214m?;a@'j$kjċ D5º/VV^^(2:B1433PWut &e 5b,!XS1 ,,ׯoTtTdK(xD/F/tT٨w7k.IHw*,_r={-s1[ Jd\.`Wb֭Ӧrs7;{KxLHOP!tNjDzxxsӧږܹ3''ի"BxS\LII9|0RWW0|fVaaݣG?++kEjjkld8RAi ""(ʼy͛w I#GG{֭C(P/_4qy |ɰLod@ */o|L_١ :P|ӧ_А2=<|Cϩ9{<閖ܬgΜqppp8HSSSH>OzU*CRWZ%{- 222&O5~'Ob&VeV%}Μ9oÇX,O-]_ER>}t֬YxK3?ȈBlݺ }988Κ5 _ٱ{7TSC߳'=B|$=*;(PPeeeEEŘ1c?e$IDAT~SS/^\t _GCE!!G,-7e) k.$C]s1!!Ar'N实} UQ2..yՖ#EHA aݻD*2?g500?hkkvo{- n߾R'x;z{'?O %-ZTQQ'zۤhcƌ)..\/,іX,nRÐ#5rCCod65qjjjǏs?梍MIIVyyyh۶%yx슊J"Io};zV_ P١73ܦHJ$-\w[[yFF~|ӦMAAA3fϤGgbcc]]]KKKKKKgϞZ\.W[[;%%N\.꽌Cݽ{!//oٲeVVVL&?>a빊TggٳgwuuaR]O?i6ePGo$?,XP]]]ZZsASSӋ/655]|/QЇb2;N,,qx7C2J,H.}EP̜9+tJ$߼'ET);(0('䮏8/[:uW\(+VxHʎ xc "*Y$;y CISR  y&>>2+#d(δGhYrtKKC 2P!$M.0 q޾}9 wJjIO/<aCՕW#~a'P@X?(MI)}` ϰw`  (ӜX,^%!wuz+Ā2RGIIqK$eT3H!-r?C2>o\rrӄBKݖ.u3C2FON.HO/lkw_sXx 5P22ΜyPSCǿg#5723SS?777X#0pIʎ Cbt:%Zffу::ZzΚ堦@U@uΜr9uuҥnKN@A-;\)*{J$ibWi.P/TtGsNXdD,9pK6OlKVNvvܩTS#OYp -- N>x !Bff e>T?wzL`>pv 'ۻBB풳mQY\PP1g<ʁ2 }ǁ9A,Kߺ-^-rKb8)鮛^%Ft ~g(bb MM ".W qW@$ºbTQAAG!CajPo7svF޽io06KOOYZZZ?~`HHc`@B`4r P]k2Aի׾x舊rssӛ6mڞ={B ~~~H]]=99Yr*==]SSTK.Q<檪^nD_EUUW bݻMMM ǏgXL&?fNѣӧOD"@mmmII)qM|{ʔ)_~M?ɓ'K_ŋ7n=EX]]mllH ȇSsssnnnB]X_uBrdr_d2HUz 4DPO>tC$%tttत$ IaMM̈́~o9~xBBLB",,,݋zwBW\744oz-[<W~ܓ30&GYEFFvuuկ]fmm}C`oJX ð|2a@t*w133>}ܼ0&I"Z[[e/Bqqq2-..f,jŊSN0bijj]σ---PK.eX.\@J7( ðsY[[b ---AWd[,X3k.9ΛPM*ƦdH$&%%gee͞=赕o1 { H|L;ƬYΞ=*))RcƌR1DFF  ~QIW Mv?P]]]H볊@ 8w\II-Bh۶m CKFmJ;;;L677/..)P\\) NNN0Lw鼼ׯ\Ͼ|>?//IfEEgBBBOAZZZ"^XNHe˖tttdffYF `,!doo!&N% Hd|֭rG8 + n޼,fcc?a7|cff?uDggVzzX,rx^F%=5aXff3gΝU @aXnn.~|>H,//wJ<0 bN|ƍ˗/ -Ĵ,X ;;2--mƌ eÆ ^DDMMMSjDDںu{0<kjjrXOq8EnD~|ѢE #66vڵ}^!D&B'OdXihh\rӦM555eee;vCIP԰0$pnB":;;%unK^^BOIS>TSSKIIz߿رT*ȑ#`Μ92^C_^WWWzU;qqqd22U0UVYXXl޼B ^Ic޼ȳ@95]@uA.P CTd( P]̄@eX,e;CiiirX{Rv P)!P CTd(*o4z9IENDB`XQilla-2.3.4/docs/simple-api/XQException_8hpp__incl.png0000644001725400016040000001607413273140076017662 00000000000000PNG  IHDRp?bKGDIDATx{˗/\000fxE-Z(22wao^jբEBCC7l؀Zx1j}f,X`ooر&UffϞ=+68::Λ7/!!AXHbW~H,_<::zCWl&ill,aJJJeB777 ߹sJRRRvvv```HH۷o*++NpH0Gܿnn3gn wuuӢ{8q;::ZTJ 5 ao޼!ɥ"/H J֭=//sÇG㏆Cݱc)eZZ͛i4nnnt:}Ĉ֭6ǻ~5k[.\JΜ9!$5--_\UUuʔ)!a[iG"=Kfff~~~HHԩS Tj~Ər㢢m Rs_5UUUt:_2dȐ!Cw-YD xbînoڤZv$sg$G>~~z333gg`aW~׮];}2߿W!mmwEEE4 x`0.^(^8۷oіLsס!vv$s   B˖-:z(3-++ۻwoSS1B^/^;w f̘]RRRRRrȑ* 'NTUU{{{'''˟?mkkǤ(ѣG+++lll;ԆgClbW4yq= aKKKKKKUUǏ|xюˋL4~ڵaaa?DtuuBfQAAaK,|r6o~zEEӧ;::w;v6P,J2]9 |FD)Dx<^aaȑ#̖˝ FJgԍ6 B\&@$# 3jjj#B2ddFSSs۶mDT&@@c3Y@A2%eRSG&*dU-,VvsJP3۴^ wj#ъʧL|x@ Ѻ$knnuu orZYY1"bAOW'`74ȑ=]#HFp{/\<0pԪ/ݸ1Sp3GI^C +,|WV \xp.d/]:!(^UUI1tQbbO҈zaaN:2/ߵœ0% Nm^{#Boz͛ml|} ιu4B u4H ð{^[G4ex W0 #ÓP!D"֭LOd6XYpᡬ#=#!7n{wuG|T;6ܹc\Gd>/11-"baY!YYϷn=D u;CY>㓘׏?Z5c{۶3YY]]2$dMr+0 KHO&#@2bkdfz!D"&mry3gߕuD]3k6m/ݹsڵ֯;t(رvvcPuD@$#ʥK~;zȁݼYAćdZ~k~>}z>~do~.35_ߐ| УGo7lt3z7s9D7,kyX׃lyaXttG533!!MO llFGg:\uu-|t֙dro8OpՐf>xp#k䗔g$۷<<x<~HC/HpzFbb8?σ~~*dܑ􌄅oР~F6/gxvD"~ݻo_9sGGgAH^pzFbG%$$auYG$/ NHXqwg9+lmMe\۴^3+WO6bolluDzhzFºx1;qp'SS}YӛAϨJL̵>,LeOkyB_]9`vd ~PGA2=|Ad$7>rđF+zƦ}R{$^WNHX_5z4]0\ِu:KD=m3cǠAB|# gu A퀀?n(dʍk-/pbpUipԭmfse yPSz'{xx؜=릫 ϼȘb@rsKD6;ujőIx_ ݻw: ^fݻSlp|eVsG(Ӓ%`8 t.\yd#2Bŋwk|P_VVcg7Fa$#b2/ryWN1{踸 _j&UU h!!W]{ƪJ+Vc2? ؋ ômlZիOy<>BL&Q*f߿lq|WnWQQcaaDB}(:@"dDDOxyk2zRe.ysŋ"hf6(%-!7o>]yWfd<| 7D (roTyceA2" gϧP~k8kYFZtQCΝW?1 H}o~ Ɉ;:B[:g)S{{ڵgW>yBɹsnZ%|HOҗ*'\wܸCwEӍwr +-(x_UK EGo'O,5.a)d9۷ݕA\.N Poo(ZݨҊI޿ߍõMms HFBd HFBdTTT? vA5k`DR{./$XC믿(Jbbp}JJǏ?njCR@tHtב~D***Zu2%v l469t>} 6ߟlLF;v^ .HHHxYOC7nGmm-BnÆ GFO0޽{AAAyyy>>>3f];owܩl{XGD.l/<*#W{^^KKKcbbRRR1k``˗xE >}ԑ-eKB!`rGa͛m<==-,,x

>!{ bcci_={+++rpp`Xe˖X(0 ۿ%KJKK Əg;;; RRRǏa؃TTT0 stt~UAAQv2|@ f"ƍ]%K0Lg@Ž< ÚD ^YY1vPԦm۶***}604hPDD>Xk߾4M)YfXk֬vqqkkk) >Р-dZJ[[[OOo֭EhbbN:r8d29)) fo߾}ԨQ***FFF;w:u;uބ/mFlcEGG2DGGݽtX,un粲2h@mi3RWWqtIӕ(-hdƌ@@G0_IENDB`XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__dep__incl.map0000644001725400016040000000027513273140075021520 00000000000000 XQilla-2.3.4/docs/simple-api/ExternalFunctionResolver_8hpp__incl.png0000644001725400016040000001164213273140075022460 00000000000000PNG  IHDRpn bKGDWIDATxyToHQV#[U0E,uA9ln,V* c P"H-Xk+*Xd%Hɼ!&ҡa}oL 0@@+H "+HP;'''''GIRALLLN8!$>XfMYYa?~,_B D)++۷o\MA$_DA$_DB-Yprr *#$aRe%;T_~`0FJ$; eٳ%888??_IJ##i4ϻڷow}G"s,jkkʲ'g2JzdDPV``໨ VQ{]VTTxyyyPRRf7o Xjgpp099#99yppɩNNN?ڵkWXq֭[6mrssE! ESSSR`7lذxb__ߢ")!_uRRr˗/B޽|l|k@@ǩS\ؠ,B.W6?y٣ zE077%%%0?޽pĠ7oEEEgeevwwK?77<666>>!++ $ɓɇ:>T~Ӯfcbb/\p6-%#ƍRUUڬYd, oNMMHKK*yyy}6>G *euƍK[n [riDn۶Nݹsmmm4O>0L*zP===:핮V,B_t׮]RnG^~}֭fff֭+..ۧ*//"ooo)urST77+WI7o| ͍L&XdA544ϟl!!!&&&ӧO߸q#TlP(k*銒F-[̙3ǏիWK8qD<POP;/:7HԄo 꿵nO4iҤIbS||ill.O!U'==ȑ#0v܌ __9sHPSS裏nܸ1y䊊TI " k2qD<ؠQ_%v%{{HQdX0.x pbbbbbb\naazx<L +SSSg*++= m*ڧjjjnnnW^0 )ZcbbKJJ"##d8;;:u`XXXfR ill433444@CK *e;0ȑ#VڻwoVQQ EDD R(F.CYxqZZZ}}}}}ɓ'[[[EeC(7|R__ia@455ԁD"r\ 6lYfXL|I&s!1k*!ϴ4WWW)Au˖-BҼn }'NXYYXYYyzzO 6$$$lڴD"}AAAB(4-$$cƌuvvHHHJKKkÆ IIIYYY_|/"iO???6fΝm۶`UUEI3~x &!T*JIIikk322Rb3 )cII#ǎ bqqqٹs'vvvƓ ek{{;z?goqS >O("MM˗T8ȯޱc,A ȯ" ȯ"!2%(Axm0yؾ}dBd-IuUccc(-mON^bH m+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H "+H\z^ bbGHڨBY_æ+Wϛ66A~Uh=m**{{3ZA~U ӧMB'Pȯ C2,: * Oym[tH u *ի?dʂ3@~U0KX*>p6_رPUU3@~UJ}|1sL6{AVu#CQ#ٳK7޵kݛ/eS6p===7oyft:=..nʔ)>ܻwoqqqqqխT ٳgwtt(/L`bӧ0!Kɲ"E!agƌ },X088bX'ONNNM1l5O>}1ICeÇ#r._lll8Eoo/OHH>}رcJKK9BYիqqq0ѡ9f̘s Ά%%%'Ny؆$)==}Ǐ;{޽{\.7<<|„ t:=<<:88:;;UTT<OGG뛘l!%>,,=T*5333===666###33SUUʊfDDDvv[Mϟ:u*N K9~DD)**b0:::!J!)|W>[vW&Lpm RRRtŋ LLLd2Tmmm={n۟~[ZZ60̴45kLfJJ ðÇ{zz|vvvw޿ҥK1 7nawUWW0ߟ1cFLL Cٽ{7x]n}jjj E-^`8^~,[d㏰bSH+mebbbmm糴w8str8?bx7nP<==;;;1q~j ӦMkiiܽ{F ر#22RUUѣK,md2^/2 A%p;""| |>ʕd2_I }}H` ð`8^~a$)v@[[;00ѣG!!!0RWWgcϷꬭ{NRkkk333abq\MM&!dرx܆x^8jjjVUUXֶtҥV7e؜`466 *TUU-\СC]VVv|pFs]A⹄pe$**C$BJPvƯ ...;wcc{Q=C5kë`ڵknnn@m( p§J%K-Zu„ d26ȕ+W/\PZZ*:УG~AAA_;p>>>ϟn=X8jkkd$.RH ʁ;Rsqq9p@gg˗1 ;tNkii),,vE" gj&Et=[M!6Uvhh׋/ݻ7gΜ-[`C\]]1 +..hH}}}>>===SNurrvړ'O"##t:[78̊H:X7''O޹s<**JnIBR^)(`zԩ3ge.]dhh900~SSSp9~0ĉ|ARR\8Ah$ԐN-6\n^`` P(JJFDD:;; o/IUEdd233wQQQͅ/Y,Ν;g̘>eʔ={8::z{{U7|bg" 6i$}}[;^.;|&P W N8έ[=)"bJJ@~1nܸB!yǏ/\;E I Zh~E W@~E WwS7n`d:n8:~%!5$8@W@~E W@~EaXv:IENDB`XQilla-2.3.4/docs/simple-api/StdOutFormatTarget_8hpp__incl.md50000644001725400016040000000004013273140074021076 00000000000000e02476c378ab013b5e296f4b9e705feeXQilla-2.3.4/docs/simple-api/inherit_graph_38.md50000644001725400016040000000004013273140074016366 000000000000001f3e67810a279d46f1c8a73698e6194dXQilla-2.3.4/docs/simple-api/inherit_graph_18.md50000644001725400016040000000004013273140074016364 0000000000000028fde731b175d45b48805d023e009cedXQilla-2.3.4/docs/simple-api/MemBufFormatTarget_8hpp_source.html0000644001725400016040000005223613273140073021537 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemBufFormatTarget.hpp
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id: MemBufFormatTarget.hpp 932889 2010-04-11 13:10:10Z borisk $
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_MEMBUFFORMATTARGET_HPP)
23 #define XERCESC_INCLUDE_GUARD_MEMBUFFORMATTARGET_HPP
24 
26 
27 XERCES_CPP_NAMESPACE_BEGIN
28 
29 /*
30  * The MemBufFormatTarget is a derivative from XMLFormatTarget, which user code
31  * may plug into DOMLSSerializer to retrieve the serialized XML stream (from DOM Tree)
32  * in a memory buffer.
33  *
34  * The MemBufFormatTarget is initialized to have a memory buffer of 1023 upon
35  * construction, which grows as needed. The buffer will be deleted when
36  * MemBufFormatTarget is destructed; or will be reset when the reset() function
37  * is called.
38  *
39  * The MemBufFormatTarget returns a NULL terminated XMLByte stream upon request,
40  * through the method getRawBuffer(), and user should make its own copy of the
41  * returned buffer if it intends to keep it independent on the state of the
42  * MemBufFormatTarget.
43  */
44 
45 class XMLPARSER_EXPORT MemBufFormatTarget : public XMLFormatTarget {
46 public:
47 
51  (
52  XMLSize_t initCapacity = 1023
53  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
54  ) ;
57 
58  // -----------------------------------------------------------------------
59  // Implementations of the format target interface
60  // -----------------------------------------------------------------------
61  virtual void writeChars(const XMLByte* const toWrite
62  , const XMLSize_t count
63  , XMLFormatter* const formatter);
64 
65  // -----------------------------------------------------------------------
66  // Getter
67  // -----------------------------------------------------------------------
75  const XMLByte* getRawBuffer() const;
76 
84  XMLSize_t getLen() const
85  {
86  return fIndex;
87  }
88 
95  void reset();
97 
98 private:
99  // -----------------------------------------------------------------------
100  // Unimplemented methods.
101  // -----------------------------------------------------------------------
103  MemBufFormatTarget& operator=(const MemBufFormatTarget&);
104 
105  // -----------------------------------------------------------------------
106  // Private helpers
107  // -----------------------------------------------------------------------
108  void ensureCapacity(const XMLSize_t extraNeeded);
109 
110  // -----------------------------------------------------------------------
111  // Private data members
112  //
113  // fDataBuf
114  // The pointer to the buffer data. Its grown as needed. Its always
115  // one larger than fCapacity, to leave room for the null terminator.
116  //
117  // fIndex
118  // The current index into the buffer, as characters are appended
119  // to it. If its zero, then the buffer is empty.
120  //
121  // fCapacity
122  // The current capacity of the buffer. Its actually always one
123  // larger, to leave room for the null terminator.
124  //
125  // -----------------------------------------------------------------------
126  MemoryManager* fMemoryManager;
127  XMLByte* fDataBuf;
128  XMLSize_t fIndex;
129  XMLSize_t fCapacity;
130 
131 };
132 
133 XERCES_CPP_NAMESPACE_END
134 
135 #endif
136 
Configurable memory manager.
Definition: MemoryManager.hpp:39
virtual void writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0
XMLSize_t getLen() const
Returned the length of the raw buffer.
Definition: MemBufFormatTarget.hpp:84
This class provides the basic formatting capabilities that are required to turn the Unicode based XML...
Definition: XMLFormatter.hpp:41
Definition: XMLFormatter.hpp:442
Definition: MemBufFormatTarget.hpp:45
XQilla-2.3.4/docs/simple-api/dir_000003_000021.html0000644001725400016040000000375413273140074015711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

context → simple-api Relation

File in include/xqilla/contextIncludes file in include/xqilla/simple-api
StaticContext.hppXQilla.hpp
XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp.html0000644001725400016040000001201113273140077017513 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATGYearOrDerived.hpp File Reference
#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGYearOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGYearOrDerived
 
XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021151 00000000000000af3d0d89bd7d31f833937136b1637d4eXQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.md50000644001725400016040000000004013273140074025051 00000000000000a107564dbe2b860e413a36dd91141f32XQilla-2.3.4/docs/simple-api/classATDurationOrDerived.html0000644001725400016040000021251413273140077020372 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATDurationOrDerived Class Referenceabstract

#include <ATDurationOrDerived.hpp>

Inheritance diagram for ATDurationOrDerived:

Public Types

typedef RefCountPointer< const
ATDurationOrDerived
Ptr
 
- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual bool isDayTimeDuration () const =0
 
virtual bool isYearMonthDuration () const =0
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
 
virtual int compare (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
 
virtual ATDurationOrDerived::Ptr divide (const Numeric::Ptr &divisor, const DynamicContext *context) const =0
 Divide this duration by a number – only available for xdt:dayTimeDuration and xdt:yearMonthDuration. More...
 
virtual ATDecimalOrDerived::Ptr divide (const ATDurationOrDerived::Ptr &divisor, const DynamicContext *context) const =0
 Divide this duration by a duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration. More...
 
virtual ATDurationOrDerived::Ptr multiply (const Numeric::Ptr &divisor, const DynamicContext *context) const =0
 Multiply this duration by a number – only available for xdt:dayTimeDuration and xdt:yearMonthDuration. More...
 
virtual ATDurationOrDerived::Ptr add (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Add a duration to this duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration. More...
 
virtual ATDurationOrDerived::Ptr subtract (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Subtract a duration from this duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration. More...
 
virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
 Returns the year portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
 Returns the month portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
 Returns the days portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
 Returns the hours portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
 Returns the minutes portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
 Returns the seconds portion of this duration. More...
 
virtual ATDecimalOrDerived::Ptr asSeconds (const DynamicContext *context) const =0
 
virtual ATDecimalOrDerived::Ptr asMonths (const DynamicContext *context) const =0
 
virtual bool isNegative () const =0
 Returns true if this Duration is negative, false otherwise. More...
 
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isNumericValue () const
 
virtual bool isDateOrTimeTypeValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Static Public Attributes

static const XMLCh fgDT_DAYTIMEDURATION []
 
static const XMLCh pattern_DT_DAYTIMEDURATION []
 
static const XMLCh fgDT_YEARMONTHDURATION []
 
static const XMLCh pattern_DT_YEARMONTHDURATION []
 
- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 

Additional Inherited Members

- Protected Member Functions inherited from AnyAtomicType
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Typedef Documentation

Member Function Documentation

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::add ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Add a duration to this duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::asMonths ( const DynamicContext context) const
pure virtual
virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::asSeconds ( const DynamicContext context) const
pure virtual
virtual const XMLCh* ATDurationOrDerived::asString ( const DynamicContext context) const
pure virtual

Implements AnyAtomicType.

virtual int ATDurationOrDerived::compare ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::divide ( const Numeric::Ptr divisor,
const DynamicContext context 
) const
pure virtual

Divide this duration by a number – only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::divide ( const ATDurationOrDerived::Ptr divisor,
const DynamicContext context 
) const
pure virtual

Divide this duration by a duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual bool ATDurationOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const
pure virtual

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getDays ( const DynamicContext context) const
pure virtual

Returns the days portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getHours ( const DynamicContext context) const
pure virtual

Returns the hours portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getMinutes ( const DynamicContext context) const
pure virtual

Returns the minutes portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getMonths ( const DynamicContext context) const
pure virtual

Returns the month portion of this duration.

virtual AnyAtomicType::AtomicObjectType ATDurationOrDerived::getPrimitiveTypeIndex ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATDurationOrDerived::getPrimitiveTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getSeconds ( const DynamicContext context) const
pure virtual

Returns the seconds portion of this duration.

virtual const XMLCh* ATDurationOrDerived::getTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATDurationOrDerived::getTypeURI ( ) const
pure virtual

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getYears ( const DynamicContext context) const
pure virtual

Returns the year portion of this duration.

virtual bool ATDurationOrDerived::isDayTimeDuration ( ) const
pure virtual
virtual bool ATDurationOrDerived::isNegative ( ) const
pure virtual

Returns true if this Duration is negative, false otherwise.

virtual bool ATDurationOrDerived::isYearMonthDuration ( ) const
pure virtual
virtual ATDurationOrDerived::Ptr ATDurationOrDerived::multiply ( const Numeric::Ptr divisor,
const DynamicContext context 
) const
pure virtual

Multiply this duration by a number – only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::subtract ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Subtract a duration from this duration – only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

Member Data Documentation

const XMLCh ATDurationOrDerived::fgDT_DAYTIMEDURATION[]
static
const XMLCh ATDurationOrDerived::fgDT_YEARMONTHDURATION[]
static
const XMLCh ATDurationOrDerived::pattern_DT_DAYTIMEDURATION[]
static
const XMLCh ATDurationOrDerived::pattern_DT_YEARMONTHDURATION[]
static

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classATGDayOrDerived-members.html0000644001725400016040000005020113273140074021047 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATGDayOrDerived Member List

This is the complete list of members for ATGDayOrDerived, including all inherited members.

_ref_countReferenceCountedprotected
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGDayOrDerivedpure virtual
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const =0ATGDayOrDerivedpure virtual
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCountedinlinevirtual
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGDayOrDerivedpure virtual
fgDT_ANYATOMICTYPEAnyAtomicTypestatic
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
getInterface(const XMLCh *name) const =0Itempure virtual
getPrimitiveTypeIndex() const =0ATGDayOrDerivedpure virtual
getPrimitiveTypeName() const =0ATGDayOrDerivedpure virtual
getPrimitiveTypeURI() const AnyAtomicTypevirtual
getRefCount() const ReferenceCountedinline
getTypeName() const =0ATGDayOrDerivedpure virtual
getTypeURI() const =0ATGDayOrDerivedpure virtual
gXQillaItemstatic
hasTimezone() const =0ATGDayOrDerivedpure virtual
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCountedinline
isAtomicValue() const AnyAtomicTypevirtual
isDateOrTimeTypeValue() const DateOrTimeTypevirtual
isFunction() const AnyAtomicTypevirtual
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
isNode() const AnyAtomicTypevirtual
isNumericValue() const AnyAtomicTypevirtual
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
Item()Iteminlineprotected
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGDayOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCountedinline
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGDayOrDerivedpure virtual
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCountedinlinevirtual
XQilla-2.3.4/docs/simple-api/dir_000018_000015.html0000644001725400016040000000374413273140074015721 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

runtime → ast Relation

File in include/xqilla/runtimeIncludes file in include/xqilla/ast
ResultImpl.hppLocationInfo.hpp
XQilla-2.3.4/docs/simple-api/inherit_graph_2.png0000644001725400016040000000356313273140077016414 00000000000000PNG  IHDR%W?bKGD(IDATxoHS_ܟV[9&$Ԣ$_T\jFT/Jjl(TE@抑P/1bˌbU97utljsи]ײ_s={s Ab ,i?0L``0!7NgCCC8^,5E,~i4. Tx=jV[z0Ka  ,ڵk/EbݺuW X,R@ѰرcD"Dv~@pÁh9 Bh222#E"Ѽ Fv\w|i[(T̡Cn6=z nܸ/,,DM4!cccz #GD".2) H]l޽cX===i l&Avxbٹec awwwQQQnnnmmm,#<d۴իWA0OZ,::! ZmQQQff ZZZ"MTvuuF(ش46=88v}ڵ0;wߏ"(2#^o߶ƒJ;\zzD=&իxRelڴh4 ߶SzG_|y~/^P(+PYYiL&P(|[np܊:aX  x XQilla Simple API Documentation SourceForge.net Logo
 

- g -

XQilla-2.3.4/docs/simple-api/Result_8hpp__dep__incl.map0000644001725400016040000000024213273140075017676 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoStackFrameReset.html0000644001725400016040000002024313273140074020421 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
AutoStackFrameReset Class Reference

#include <ContextHelpers.hpp>

Public Member Functions

 AutoStackFrameReset (DynamicContext *context, const StackFrame *frame)
 
 ~AutoStackFrameReset ()
 
void reset ()
 

Protected Attributes

DynamicContextcontext_
 
const StackFrame_oldFrame
 

Constructor & Destructor Documentation

AutoStackFrameReset::AutoStackFrameReset ( DynamicContext context,
const StackFrame frame 
)
inline
AutoStackFrameReset::~AutoStackFrameReset ( )
inline

Member Function Documentation

void AutoStackFrameReset::reset ( )
inline

Member Data Documentation

const StackFrame* AutoStackFrameReset::_oldFrame
protected
DynamicContext* AutoStackFrameReset::context_
protected

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/MemBufInputSource_8hpp__incl.map0000644001725400016040000000051513273140075021010 00000000000000 XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp.html0000644001725400016040000004424213273140077017706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ReferenceCounted.hpp File Reference
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
Include dependency graph for ReferenceCounted.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ReferenceCounted
 Super class for reference counted classes. More...
 
class  RefCountPointer< T >
 Super class of all the reference counted wrappers for Items. More...
 

Macros

#define NULLRCP   ((void *)0)
 

Functions

template<class T1 , class T2 >
bool operator== (const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
 
template<class T1 , class T2 >
bool operator!= (const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
 
template<class T >
bool operator== (const RefCountPointer< T > &a, void *b)
 
template<class T >
bool operator!= (const RefCountPointer< T > &a, void *b)
 

Macro Definition Documentation

#define NULLRCP   ((void *)0)

Function Documentation

template<class T1 , class T2 >
bool operator!= ( const RefCountPointer< T1 > &  a,
const RefCountPointer< T2 > &  b 
)
inline
template<class T >
bool operator!= ( const RefCountPointer< T > &  a,
void *  b 
)
inline
template<class T1 , class T2 >
bool operator== ( const RefCountPointer< T1 > &  a,
const RefCountPointer< T2 > &  b 
)
inline
template<class T >
bool operator== ( const RefCountPointer< T > &  a,
void *  b 
)
inline
XQilla-2.3.4/docs/simple-api/classATGMonthOrDerived__inherit__graph.png0000644001725400016040000002076013273140076023021 00000000000000PNG  IHDRP'[bKGD IDATxyTS'$A HBXETP(n`]AO'`xP*vjU(mWv.!TE  Yy!  q>{,{?  Az3`6Asj!zTnoo>}455ƍf$%% m> XtiJJʈCŒ 2l<(j`ƨ1qDwwr5 x׍F+hii 722ZpaffN¨Ϡf~:xqj rܹQ `ttt&''lٲ_~yuuuL&sh^%/hkkcXJ3D"(0\"##/߯kd#P [UǏgXYYY<ŋӧOKT*4iR}}=\AAA'Of0=== 4@(;&&&iRiq 6mdmmmllhѢlέ[2 ++{O>1551cFFFZH$Guppx.] njAPR M9 %99P~(j`6(j`1>x ag{u#Fc`t+h4ZQQ(<3BΜβeeA<*K33?oǽbT9dhz'Oz\pčI.^J$R~K9n_%٥Kܞ>݆4 n4=_7-b_G \t@ 2L~TJ{t@hZ-ɩP5ZTLF$$퀬D$Av@hzzT*S @Vm-ǣ5F׆ :fiqRObhOnEqsZZu QE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFc7ꐢ"m+@8 0x6(j`Q RSS( (%c2B eT&utt: %K,--X,`Xb@PͣΞ=;m4C2QDԑ<SWWW珎illp8nnnA||<O G%2Q'''ӹχl6A iX-S@ihh"MLn@hyT&Iv;>_\\눴FB!Llܸ߿>Yfͷ~RF=<<ȑO>166vuu}͛ Q?rh~\oll43 R}QFQE l5QFQy%R)JFX3.Zh˖-RHgkoX]mpCmDRLt3<3=~}@J]v5q˖-#HOOlR7%%eP(D<(j`~ %**J(PSSCPTmMJJ(|c]a $;;;8W(VRWWd2GUm]~=xׯ_e$-%gEEBܻwOVR]]=]:Zk @rrŵGVXj*'''FPΝ;lff_¶o BCC۷odɒ%KKKo2L[[^JBByTTٳgMfbbr! 7J$H;;;ssm۶uuu#qªΟ??k,,+""B,ցUƟ!QL6mڴX ŅشiϏttt2 XLDbbL&SSB p8g>rl_ All,ѣ....^8<<\~/R'̳zꪪb@ttOcc#qss;p#FGhqq1Fkoo'֭[.m TWWK$KK˼< ֮]ORw[ad+jYfeddd`Ti0ÁyaNNN<͝?#6Bc6֤$D"<{ltHR7nܘ1w˗/Þ4h%GI3fE&666&[Os}GGGvvvvvvVS899 &&&jj9c{Jǎ}LII𰵵J% *ZWWkkkmlluCCL{* ~^Lfuu5@|>xQiƽ{(nAAJ} 9ɴD"aXOxooﺺ:.raUir8;w.r;vߑ׺yKJJaaaa6mjhhXx]40ϣ!!!W_#f̘~B 8q@ Xaddwvvnݺ`XYYݻW$iEhoooxx?ϗoQ݋B0O||ԩSLݻa ((h #88GAF5cQhݳzO}oooKKKBBO?X1_Oo޼K/[+Wu,PIBBBtSW]bEg308Y,VLLNg|QFQE l5QZJ/mb4c?a]oo*4^4799|dj-2_IhY׸6 ]Xϣ=i:m[p~]3 n 28?;Nd:1ql}biJJW d!]ZZxFRYF-8BtjV/F^z"F,*8F* ߪtv@h_$'b`w23o$$퀬ѼJozD_!idff~"Irs+@hQQT*SzS{ܿ ݢ>˹tiuTBGS0`0wF%u[QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE;55555u#yGRz;>zƍ506uJJJUdؿ_tiJJpKa4C(j`6cb"mF^mOOODDļy󌍍.\gI$

|X; 555 %//իJcyxͣΞ=;m4C @)aaa۷oiPhhhxmg͚bU(AA}}z)11ڪillp8nnn6]faaBnRS~/~~~ 66ޮ4QXX`0b1A...2 YzuUUUqqÑ#GWHjh__! Riaa!̩px<LΟ?_7n0LXoRof߯a @U2// kFEEyxWHרY]]=c ~UUՎ;B VVV䢉eyyUs/X1N+U*qƌs^|vt#XSSӰ 8qԩHfO<4?v󋋋}T{{zz׬Y啌7333%%֖\{*zjXmkk{asssaa DnXD(ƍs85k|Çz{{_t:33s666;w xGmݺU~={jjjJKK<Z=(ɔ)S=zDn=v옙ٔ)SNy By+JӪPVhhĉ|S2ݻwD"ժ9y(޳j`ٷkޖ~Iױ<?7o|饗z뭕+W+'Mp+VT ŊI<QFQE l5}egKú{ݻwajͿ+h4ZQQѰ!;<9s--et˘yT,ffAhQѽǏ{YYўL6xʕgAh_ED"Pz(A/p~N"]Q2];J n4=_7-b_0-Q@TPpW"k~v==^ÐF/\dkRߣFn)RNNc}HpfTDL&#Juv@hvmk" x]I; k4=L*)D +붖~ψNYZ>T*[~\%;<4􇖖t6@v}nFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QnQQTcG]G1&بI$8AfSYY9 JzBg|E l5QFQC{;vk?9N8q:/^^^666gϞȽks%%%666E奴xoo3gJKKy<˷lBR'۹sPnnn~ 4|$5hh |UPP@uwwOOOx]v4`ҤI󎧧c.] ;yԩSa:8Ϗ?hjjzرE._<&&Ç/^̌d~VVVCa$88x ϟ7oނ f}||՝;w+Wr +V[BaTT}}}O:|onݺ$o ظq#Y,00^;w\m6h``e˖f///6yf.  eݺupQ"lذaÆ 111DKwaa!N0a…J'''={v֭2ѻwﶶzzz<==Aŵr'xoܸ1gΜI&M$??VVVӧO ͅ+Mo޼ݭ*B B>88ՕV/^ܳgŚ>}zHHHII˖-Y^ ,|rxbmMR5ӦMSL__ ~ra^n|+W=zt C.ϗddikki& P G{###33 g9s&L٩ Ç>>>^xAi &_~=..NUqD"?xL>]UQLVPPokN>]PPDQ([NNd9s\[[K5445U {p8|>o?YjUSSSMMR׿~غ~!''Ga{1ggg>_xo߾~mΝLsw>IDAT&S~!loo8t#/_ѣ{/++KU . gΜ? ,nݺSN]v$!!A^a}4??M;::Z[[(̘1믿f2 .wڥ6lPXgϞ'N_~900Pi+sUEbhhwߝ>}:&&חNLFbΝwߑO8c ޮEbŊ6(j`G]EDiIENDB`XQilla-2.3.4/docs/simple-api/LocalFileInputSource_8hpp__incl.png0000644001725400016040000003751113273140075021504 00000000000000PNG  IHDR<E`vbKGD IDATxy|T3D}!aioQDBYT*-hhSR*(HHb6 ! KB0 d:qLI{?af3$IRy@-@Ѽ]]x/_vupSN:UQ1{8JӧOdd AG;}]wݵ}vW_ZNz]w t^x%gFhhFhhpaÆ]rʼn+rʰaÌ+d|#;6Y}}oy=̜9kjjrVN+ff͚Zّ5,X ++K7(--}#"".^o.Z#K)~i炃͛ב5 Fc?prrrHHHFFƢEwd=Eh{'L0uԷ~I׿{ӧO8qʕ+G?yG=yQa:nݺu&M4iҺut: _o>CzϚ5kҤIoV5]~;!Ľ+ڵc222mfVW(8vӏ?nu4#!w}7cƌoݺ~@hx׭[+=z>\r՗.]ڲeƍl#_lU &z-~%%%_cǎ{9|[o5wyVnܵkʕ+?Rڵk;w\dɱcǦLdɒm۶鸝}~ĉ{}ׯ_t !j&Z@t:W_}p˜^z͙3g~ܹs{ճgϧzo߾B__ߍ7.Z(,,,22Rqu=CcM>ի>lĉAAAsGOOO衇Hm۶__|}w[y|3h遁C Bc!66V3..\/$&&&&& !/_ꫯ'''[]ۖ-[L[Nuɓ'ҥc博6JHH4$r% |]wݕ>k֬M6[n:nk BR=`„*&#Z@BCCJJJ$]zgϞB#G̜9q˗/۵Zg}^Z7uuuUUU1p/|r^.]3B׫ꊊ KbŊ$y/cvV(ǧ0=Ymt<ר2=lذ7x`ƍ#F5jԆ  ^u<V鼽s6nܸѺח/]t׮].f͚+W6l9rdPPb߾}7n0"B5^8rHIIӧ~Ç !v eV}駖GF@p{σ>k֬Y`w=c JаdɒnmBGydŊw×.]f͚VYVTwy~G1'lhh>|3|}}|knٲG믅UJ_su!.s=@*I\]C}|vu!9-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-M%Ikw\oWW_/{Ǎ0~@Tޮ.>4ʕjӖ?TNhdڴ_x{m)M8Cx"B M&ME[TG/ a-6IJLIVTfV0@[M //70q.a-8q`0mR檒hؐoN#ļTӦ…%< S 6=`,7QTߞq xB u2dHZʔ)][Z1y`Ijט1.9-=Kwwrp {'86 l*|#[ӹKQ^$t钫7t۷?ի]]B ԩS]]G7@pN E#P4B E#P4B x/Ι3ǹRTyyyNYŋ3 99yٲe NJکwV#۵kĉ*Y~~~xxυ ;vlǎ/^ܸqcVV֒%K9"۷oߨQ*`4k׮+W4("";|7vlqqqB> %%BVdɒ%Khڼ!ĸq4͎;vzd0K':322L?Ŧȷ?p@SoNN$I;w=sRUUU>>>juu`u;w_aKw'Ζ$I7#F.B 󅄄̛7ӏ<򈱱0&&FRT#GiiiBd%==}ҤI =x#G_{yyY]NՆ !.뛛;z[neӦMv7]X!i˗/%IJ_ !n?999>ҥKzw#쯰V~.iGv pB 8ߥK֬Y3bĈ'|nuȑ#rY?66Pn9~K/dkzGUUU=Ǐ>zhRӦM[dɱc֮]k~UY2p/B@W\|$Iwɓ'?U*=#?>**JVw]p!.. [K-1-l6Nf0Νp>/ܳg~>3EEE999G~뭷L5ks=wԩSN=c-RTFڱcFijj xVVք X]׷~ٲeBZA?x^^ѣG}ٙ3g!}Fo>N4{ӧ|ŋ333>>>ӧO_hQAAS3fYaKwbÆ ׮]kQ4r䜄7|sMMM$}'111 fΜ9aaaͻ~Y / ̬-ݻoZZZVVśƎkVR$kݺu޽ڵk333###-/--5[9-f~mذ!111<<|…$X"$$wYYYrǵZ!Cu:322zSO JTUU5k֬'x [K[#[ݴsZuTVm߾}rڗI{jZMP4B ɺv:|WWLV{y0hA[0~uZ(Z( 3m4Wt%Wn-_^wu! U_SY_B{~Ôٽ/.^BsZ(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(J$Wpcܲ䚭{,Б<$!!Lu*!!#x$B MLZj1n܀y-67nw;RÃ:$!$88pT `&O쒒h)S[N=KxB Fm5jT.]\UZm;zt?E&OŅ%< &ݢzpJVO01Zpĉ#t:IpB 9&Nݺuޮ.9-^7 !LlyZQGuuqW_UGEjرc]] Veff~ᇮB] hvu!Jcǎ{Up^:u]]ܛJt P4B E#P4B E#'x9s}X^^J2aDppq ,o$I3g jeO,T<-vZr ZڵkĉVoo߾Е+WדhѢF͖h1 SN:ه͞=zjTTԷ~+7+'OxbNNΠA~ !ƌW_-_o߾999'O[/^lk:??u֕lܸۻnժUVw7o,I-xF$ !?^[[h>^Ν;[lBY݄lƌÇpBNNN~/_nCfÆ BiӦi4wyGQQQ!ty=ol5IB7NرCޢQrss9d٬"ضm[ZQ ϯiii%%%8P#IRjjΝ;{Ϝ9cmTUUϫZ]]m0jkkz'O\UU%6$.CŃƳgCVhijjRէNܹsgRRx1fM:X݇fO";;[$^ocy۶mYn2&,VNh0py>}G16ȳo9RzK&(**JNN['MdkЃ9r$>>~С_ZmhhYy-BSSSvvvRR}}}sssG}-lڴKKKz}޽?._lCd7tվ8/!}hX!]fj#-d.]Zf͈#|IccxxCuu#GvSxlllaar^zRᣏ>zǏ_UUeu?|Ѧɧ\rő^X.n_}}iӖ,YrرkpTTZϗpB\\|,ؑ`:+ٳgwHaVGZBʩV#-Laܹ .={{3kj#\pH'Giy7 $I'|#h̙6o޼ׯwаxjr)Imֻwo__ߴ,755;ִ+V;++KޮV2dHPPdqi/^{nݺu}ڵV7!5kVXXXLLO>ؐ蔔蔔䨀}u^o-ܳ޽KK5a#F?~/~ѳl xulg=qYoow7׿+vƹs?>W/^,*BtߣGOtBBZ5]QTT)͕?VI3"55:%%*%%:11,55ϯjl_?'+*RRǏ0~ۨ-Z:87߳gDbb< RR1+'IDATJh-?&%E1I}}9'oh/~>{KϞu[\Z\^4 ݣG1cE-`ZnnOߠ_={N(TSsc_~y3AǏ8~,##:2!t:Õ+/OΝzLB@c>IMNHKL sUu_}uv?xy3uȾGrUIV)')'YWj0c&B NDv|?_Z_$*LLMNL KOUB|OsgȐq:CӋQSBf1l>E cir~(ijy{{Ņ&$%%%o߸.]1@'Ah<{KU={F%55*N'd{ 8"K\癱-[qX>(8FB ֩m(((5PZ7`v1,y6B6<&%np;@q4kk Aѩ/-NAzq#fYƘhW &B JZF~C:I4|E贴N:pq!Chq.ҋي13$'G ;t BK;!/Wf#Oܯ_<;pB ^,OuX9t-BK{#t{A+,`"8c A*Ð^:NgrΡӷo\.N8h /V3[^6TBK#i:}ʍVb NAhg6ٳuB@9gNH1H A*ŅH/.g61Ƙ˕"?#yӉWϝzL8\R-J@zQc !fZЩ5;vc.ą EQH/ RSc"#1!1J~2!!3) Ao/+ȷpCsށw#ҋ$iz2?Fx,\~'+5$.p\=ۺw֬y啩Y %嵂)ѹZ!q鼔x!O?=QXX oݵVkv1OGׄ^܋Y9wVѵk@t%ܫ!D׮=zD/^Q|U,.w ~%S2ҋ5 17`zbQQ3ŕ8Ƹ a̼c:b|wDhX^))QQ]]]ogW]}I {[G՛mvIIhښQP'VX__=M&@-p%ss64hcVi;c[njy|!Ƚ{O:tN7p!Hth o5FD/I}"̛>yIs R )j8l^=z;kf3;w…2 8,Jʿ_ JVܻn]" ٗ,OZB$IXRRclQ?ª,>}klԩTb„A:Wr嫭m(((/*45glsR_3EpV=Zlٮ/wm:u+aaOURRÛh0ȯ[ &˅ ;?y;d!o~\X~zٳ˟+qq!6=ʹjnIWPPa ??VlO#-xN<?WbŞ}Ny{{t> G4Ncӷ56gv76t?~6QO΅ ;g_e311?yޅ]YM/}v/_||ԫW tmh#[J[uTBn|5B ~TYYzk///w~yy/[> wA7TX~S_ 3رݖM.ce~~$ LӋJA%4cdf$-HN 0j?^z4vlsύs<7{^B5!3:~EI2䓫gl:0flu HY\1'Ϟ+j'/䗑ÇՋy:-[SYPV{ qL,g9wQgyjϞ.3*>>jAoo}ꩱ-V߶+WhzWMM:!D||hRRTJJTrr<=bHH` 曼7]`ie>>Ջ/N 4EE?/IԧO_.qu9P?/Ny ㎔. /\(-=˵Z`#Z~ѻ}t8' $iӞj[ߝ !||ԓ'=<$Ik~rBlo:q~gØ1=qZqyKOz{Usjwm糇Ze1r,~6CCCC~~>1]޴t?ss+T*aٖ$ OmQQDFFFD򲲲6g>B!yYݹPZRTzoeB:bȐ'O^IK 8}kQ4??6D9c_*X\c}vX+2D޻oxyy BڥKL>Yw,h4yyw~][R$IRxiw>ΐ_ek=FSVVhvӳgh.zAiB44蚚B&V/ب$qj2CKYYYxxxC 7.=55", QpTΘ4 //!=] /*j2{ ݅zĢV I*22(11:-n+k۷Kkl}bOKIKIIm`1,߻w~qW~ts%gϖ\:I7pP)hzm`_jjtqii1iiLfZ3] I2$Y`H,)Nx0 {T]0ip Z@>\xqΜ9>,//OG}dl=yd{lFeGg.//xIfΜbU*U^^3*送Rͦt3f ̪iCGeV` Tqt`9sf*a@^/-(:_K2-t}hٷoߨQe0*++/şpy>111K.mEDDDGG 6O>իիm=^aR #F~{CʸHII~B.Y$***22rɒ%ZVM ˖-KHH={g˥{ի͛:]t 0xnBȟجk\\iӦw}wʕަM|||lĮYRT ,OmǴ_s߾}III+W4E566ZmttXN8SNݾ}7܏?xʔ)N܁:hk [=y/^ PT[nMOO֭_E2P;PͨjyB{|́111Ʒy˧۸ [VzURRRn_W~z?6{wΘ1KL#$!Ĺs~Cθ2d9y6Vg-7aV?n\/~Z?%Ә"y☔:D;FN8a\Ǎ#MǞ{w; ?[K5[cuX|n͉.]Zf͈#|Iccxx9>r.X(?~^T}}`裏|WUUY]?=ziaW\qf/ZhժUwyeϟoz>VuͲ0I~_.spV'j"77W>VBt'2dHmmÇokY@R.\o{y5@JO6mɒ%ǎ[v]n[uVza:%ӧVeĘJi&&&Ƴgo{ ?K/.oKc48z#?UUUEGG޽[n_hє)S9n{4.[,##ɓ'Oկ~Z?.//___ou3g^rE^|a7^vmҤI$[f øq*[Ԕ]$ILy=a„Gnkׯ7Adza v6 KK'x'w]zzaڅVv;cg̘To'O۷<,ǡQ#iȁ*ZR}gׯ_'9vdٴYM[믿k׮>W^ƷIGdGc^<r'47|3>>/8p@jjJr'>Rlu2Vpx؛o9`O>$&&F>O̙3'444,,l޼yׯ_7aCCŋccc333v˥$Iڶm[޽}}}Ҳ.4vXVXһwשּׁ,yZvȐ!AAA3[|ӦM~~~ $IwפG۽{3f>Ing 6$&&/\jБ<-x뭷ǘ([݁jO%I5kVXXXLLO}"##Xp֘tXbL{v};vXb|Ε6J9c/. d9993g-*IENDB`XQilla-2.3.4/docs/simple-api/ftv2lastnode.png0000644001725400016040000000012613273140073015747 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_39.png0000644001725400016040000000331313273140077016477 00000000000000PNG  IHDR%0bKGDIDATxoHS_ǟ,7?֚eEXD`Eo, fLR #6ELz Be1%&a?TlCF2fs]w~/.]nyk[:99眻;1p~8~3)dfl6p]RRB5kl~eőA_~M3k8pd2edIðFv8NlSIR`PVo۶M tp8I<Oܻ LaVZZJ{RUUaie8I hmmsbh40==-RW'QJR4LASN!ĐgϞdn-$UրO[vxojj`O>Qvoo\.w8Ns߾}ja (B`0X,F9rrvLىqFMMؽ{+WB o&f޿/HljBp~~nw,8~x īI*!nڱcǻ>-}Hݻw`piifƷoߒmW"<!tرp>FQ&!opyyy}<񖖖` Rrj"`u'B p'XڵkEEEgX Eyyycc#NJ.\hii3ϟ#}B099ML-xyyy[KG8bVU&b[n!AΜ.l'd:It1 ;z(4P(T[[hz=ÄR퉉ׯ3/@T>zd2)͛7v"qrR)D"25~na) P(_x1<<\]]Mf!97UrrrN>ɓQZRH`0H|>? t:X\\:_zujjjjjŋĥ8U__O_tyF՞9sN<133p8*++ׯj;Mx<^MMMss޽{b1iO&gj*8wvvܹS %1*͛ׯ߲e^WTb@ֺp8VRi^^JXqΟ?/է֭"XO hll,(((,,h`P ,b .Fà D\Ө$A 6 HUS 3n~-_~y3|ff(Y + : 0D288XRRt:V6E#33333޼yj=%b놆ݨ~!B@t@Ξ=KQԅ k"""XVBVz꼾}}}Eү]aXRY^^Ǐy3M:;;T:@i躺:!!!^ 233GGG۹yӐdEEE>#:|(Gfl6 JRVW} M@WWEQ---'/&iޘiiiܴ455՗4#z=7mmmd2qӱ1[`XHZ655u۶m\K\n +W߿ ,((-7++ș&ZǏ?^n]@@\.A8gϢkjj#[bjkk Ehh#GfffU𰰰BUUUf˖-CCCOcpBH$ ϣG%ի޽;Kz _>eccco޼:uڵk%ɍ]tuϟ? ԔX,nmmE%K",H$:x/_ݻ8;?\[T^^W\\ŋ{6 ׯ/..F=}4""B,]tipp ^?1a<NiѣG5 ݅aX| \]]-h~;:۷ow@ww7A6ϯOx׮]ǎC?^REj4q:`2p@>%.66O||l㖖$|P("Jo߾-̌X,t,.6^,a͚5|HLMMF)z=Wo[[[xx/\ mݽl2ery%BjMLLx\}Wdzo>)Ν;ʕ+|/a@(Ǐ eggc;wTPhZm6H$-//=f2??۷999|ݻw  ۷_~]*8p@V?y򤿿 ++BwO;00iӣ EQ鍍f €/P _ÇWXU(EEEsd2Bp(ݞ"Jr'֊jnn[nWVVX"***+++,,c?bjcbbV+bh4˗:thzz!p8***cbbprGz ?800ťNPDxN7Kzqm^c ¿ޙy@ : `D 耀!: xnv(O:v7yzH? `D "SQXIENDB`XQilla-2.3.4/docs/simple-api/ftv2mlastnode.png0000644001725400016040000000036613273140073016132 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/simple-api/dir_3a8298c6d836e3decfae5f8e60ef8e7a.html0000644001725400016040000000610613273140077021274 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

fastxdm Directory Reference
Directory dependency graph for fastxdm:
fastxdm

Files

file  FastXDMConfiguration.hpp [code]
 
XQilla-2.3.4/docs/simple-api/inherit_graph_21.md50000644001725400016040000000004013273140074016356 000000000000001fc9c925ef2ec444253e25553ba88ac6XQilla-2.3.4/docs/simple-api/classXQQuery-members.html0000644001725400016040000003523013273140074017555 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
XQQuery Member List

This is the complete list of members for XQQuery, including all inherited members.

addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate=false, int line=1, int column=1)XQQuery
addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate=false, int line=1, int column=1)XQQuery
addFunction(XQUserFunction *fnDef)XQQuery
addVariable(XQGlobalVariable *varDef)XQQuery
createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const XQQuery
execute(DynamicContext *context) const XQQuery
execute(const Item::Ptr &contextItem, DynamicContext *context) const XQQuery
execute(const XMLCh *templateQName, DynamicContext *context) const XQQuery
execute(EventHandler *events, DynamicContext *context) const XQQuery
execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const XQQuery
execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const XQQuery
findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs)XQQuery
findModuleForVariable(const XMLCh *uri, const XMLCh *name)XQQuery
getDelayedFunctions() const XQQueryinline
getFile() const XQQueryinline
getFunctions() const XQQueryinline
getImportedModules() const XQQueryinline
getIsLibraryModule() const XQQuery
getModuleCache() const XQQueryinline
getModuleTargetNamespace() const XQQuery
getNext() const XQQueryinline
getQueryBody() const XQQuery
getQueryPlan() const XQQuery
getQueryText() const XQQueryinline
getStaticContext() const XQQueryinline
getVariables() const XQQueryinline
getVersion3() const XQQueryinline
importModule(const XMLCh *szUri, VectorOfStrings *locations, const LocationInfo *location)XQQuery
importModule(XQQuery *module)XQQuery
isModuleCacheOwned() const XQQueryinline
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setFile(const XMLCh *file)XQQuery
setIsLibraryModule(bool bIsModule=true)XQQuery
setModuleTargetNamespace(const XMLCh *uri)XQQuery
setNext(XQQuery *n)XQQueryinline
setQueryBody(ASTNode *query)XQQuery
setQueryText(const XMLCh *v)XQQuery
setVersion3(bool v)XQQueryinline
staticResolution()XQQuery
staticTyping(StaticTyper *styper=0)XQQuery
staticTypingOnce(StaticTyper *styper=0)XQQuery
XMemory()xercesc::XMemoryinlineprotected
~XQQuery()XQQuery
XQilla-2.3.4/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023702 00000000000000fd91698fba977e03be43af92cbd08eddXQilla-2.3.4/docs/simple-api/classReferenceCounted__inherit__graph.map0000644001725400016040000000741513273140076023007 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoVariableStoreReset.html0000644001725400016040000002040713273140074021145 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
AutoVariableStoreReset Class Reference

#include <ContextHelpers.hpp>

Public Member Functions

 AutoVariableStoreReset (DynamicContext *context, const VariableStore *store=0)
 
 ~AutoVariableStoreReset ()
 
void reset ()
 

Protected Attributes

DynamicContextcontext_
 
const VariableStore_oldVarStore
 

Constructor & Destructor Documentation

AutoVariableStoreReset::AutoVariableStoreReset ( DynamicContext context,
const VariableStore store = 0 
)
inline
AutoVariableStoreReset::~AutoVariableStoreReset ( )
inline

Member Function Documentation

void AutoVariableStoreReset::reset ( )
inline

Member Data Documentation

const VariableStore* AutoVariableStoreReset::_oldVarStore
protected
DynamicContext* AutoVariableStoreReset::context_
protected

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp_source.html0000644001725400016040000005533713273140073021164 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
EventSerializer.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _EVENTSERIALIZER_HPP
21 #define _EVENTSERIALIZER_HPP
22 
24 
26 
27 class XQILLA_API EventSerializer : public EventHandler
28 {
29 public:
30  EventSerializer(const char *encoding, const char *xmlVersion, XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target,
31  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm =
32  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
33  EventSerializer(XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target,
34  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm =
35  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
36  ~EventSerializer();
37 
38  virtual void setLocationInfo(const LocationInfo *location) {}
39 
40  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
41  virtual void endDocumentEvent();
42  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
43  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
44  const XMLCh *typeURI, const XMLCh *typeName);
45  virtual void piEvent(const XMLCh *target, const XMLCh *value);
46  virtual void textEvent(const XMLCh *value);
47  virtual void textEvent(const XMLCh *chars, unsigned int length);
48  virtual void commentEvent(const XMLCh *value);
49  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
50  const XMLCh *typeURI, const XMLCh *typeName);
51  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
52  virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value,
53  const XMLCh *typeURI, const XMLCh *typeName);
54  virtual void endEvent();
55 
56  void addNewlines(bool add) { addNewlines_ = add; }
57  void useSelfClosingElement(bool value) { selfClosing_ = value; }
58  void addXMLDeclarations(bool value) { xmlDecls_ = value; }
59 
60 private:
61  XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatter formatter_;
62  bool elementStarted_;
63  unsigned int level_;
64  XMLCh *version_, *encoding_;
65  bool addNewlines_, selfClosing_, xmlDecls_;
66  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_;
67 };
68 
69 #endif
virtual void piEvent(const XMLCh *target, const XMLCh *value)=0
Handles a processing instruction node as an event.
Definition: EventHandler.hpp:29
virtual void commentEvent(const XMLCh *value)=0
Handles a comment node as an event.
void addXMLDeclarations(bool value)
Definition: EventSerializer.hpp:58
virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0
Handles the end of an element node as an event.
AtomicObjectType
Definition: AnyAtomicType.hpp:34
virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)=0
Handles a namespace binding as an event.
void useSelfClosingElement(bool value)
Definition: EventSerializer.hpp:57
virtual void textEvent(const XMLCh *value)=0
Handles a text node as an event.
virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0
Handles an attribute node as an event.
virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)=0
Handles a document node as an event.
virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
Handles an atomic item as an event.
Definition: EventHandler.hpp:61
virtual void endDocumentEvent()=0
Handles a document node as an event.
virtual void endEvent()=0
Called when all events have been reported.
virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0
Handles the start of an element node as an event.
Definition: EventSerializer.hpp:27
virtual void setLocationInfo(const LocationInfo *location)
Recieves a LocationInfo object that is owned by the caller, and will be updated with the current loca...
Definition: EventSerializer.hpp:38
A class that gives records a location in the query.
Definition: LocationInfo.hpp:29
void addNewlines(bool add)
Definition: EventSerializer.hpp:56
XQilla-2.3.4/docs/simple-api/StdInInputSource_8hpp_source.html0000644001725400016040000003560313273140073021265 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
StdInInputSource.hpp
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id: StdInInputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
20  */
21 
22 
23 #if !defined(XERCESC_INCLUDE_GUARD_STDININPUTSOURCE_HPP)
24 #define XERCESC_INCLUDE_GUARD_STDININPUTSOURCE_HPP
25 
27 
28 XERCES_CPP_NAMESPACE_BEGIN
29 
30 class BinInputStream;
31 
32 
43 class XMLPARSER_EXPORT StdInInputSource : public InputSource
44 {
45 public :
46  // -----------------------------------------------------------------------
47  // Constructors and Destructor
48  // -----------------------------------------------------------------------
49 
52 
59  StdInInputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
61 
66 
67 
68  // -----------------------------------------------------------------------
69  // Virtual input source interface
70  // -----------------------------------------------------------------------
71 
72 
75 
83  BinInputStream* makeStream() const;
84 
86 
87 private:
88  // -----------------------------------------------------------------------
89  // Unimplemented constructors and operators
90  // -----------------------------------------------------------------------
92  StdInInputSource& operator=(const StdInInputSource&);
93 
94 };
95 
96 inline StdInInputSource::StdInInputSource(MemoryManager* const manager) :
97 
98  InputSource("stdin", manager)
99 {
100 }
101 
103 {
104 }
105 
106 XERCES_CPP_NAMESPACE_END
107 
108 #endif
Configurable memory manager.
Definition: MemoryManager.hpp:39
~StdInInputSource()
Definition: StdInInputSource.hpp:102
A single input source for an XML entity.
Definition: InputSource.hpp:62
This class is a derivative of the standard InputSource class.
Definition: StdInInputSource.hpp:43
virtual BinInputStream * makeStream() const =0
Makes the byte stream for this input source.
XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__dep__incl.png0000644001725400016040000002100613273140075020530 00000000000000PNG  IHDR.bKGD IDATxy\?3Ѐ (^7ުZ](VzEmyJD(Z{Պ_""b RAP`f<LybB $?9'g|8*Y`(2A( @y K7?zKFx/ҭ=ðo\. OVTT8#/~7, ʻrΝ;- 3p @ydʃ P 3fX~}uuQJnhh2eX`{ ˡCN>}tsN3hll;w @dḹx5k?{̈+J@` ёx*SRRϟ?\vիCCC.]zߺuB ,Ьnʔ)ϟ7ow}w…Yf=z,_]|<(t4֭[s9qDW/i X,D"5==}L&Xxȑ?رcbxǎ;u'uѺ~/cbbRSS_vo}ڿ۷X,z䌌{PLoo#G.\EMyfX<(a :ݙNwӝ g:`ph~4K YjHl(e.m@B(mr9_.oW(nzG|}}߶S ]㏦7k=jֺV>9ɤc&+J!4dWnnu] rԨBee}/<;x'uk@ٵŋ]b22#薛dH]W)Sּ^s4R^:h R1 ;x0rqPk+WT**ŘLKvzS !SdҙLzNoDH:: P]9sԐ!ܮ. cNz//g+Hgޑ2;bAߝ?oؤE:6`2KR 2aXB[ 1͍\ ҥ{"x,._o`+Ve[:>DݼyU kF'2:7778_SBpK?f }?WN ?+|v7TO Z~OKFC|=BA<˕/Lx+)UT4N+=*&ydvG(>9R|8A)il6+'gÐ!ƪrRuB^2a/>}8ב`߸axO?=꫟fd\'h/P(eB5i7]\vܝFcYgά>׈J Z`fZ/~˒:LysB N6{he02#8ǏYYVapG'XINO~FC<ǟ|2UW=xbNoGضm֤ICR#*d6#=|")ۀc ?(WN}U&Vѣ7Ng78p!?4$dHblbfc lfR3g(+{DLRUa~q9sV犋kM֭ 1gt lDBѣ vuuaVTnfnUaaΝy8kߟm)&k|lD/H!::A2…s$% I %!-cݭgd6"LدBGDY!7?)]rR\ܴ~XQ7 (F #<.=v ڵSyg2y(a 2B{Ç/_uss?B#"KӀAQ"`AF9AF10ReP:T 2̡2 #P+7o&%ZkX50'N̡NdV "̪Z+Afu ¬͙6C{L ̡p̊|QV0@Y0Z2 #X`5 0MZal80R n#`AF9G]9Afra К A9Ck6p$ ´{dZZ 32090D Ȍ"[dCktdF'2U0ֈ #do9 %^ ̡5|nca` z" ̡52@9ȺfDpG` ȺftdshAD@̡ a&Af C@QZMdH,>|95лN~ I@ѯV'%}ٳG'&8о'zz*a<=7Fs0V իn<XM,eSsy<{ِ᱔}Ekllߏ8n[K,ill4M6M8]~cq 2|ŋ ΄ n2 RA<2A(hAvmE.cXw%vvvnٲeNNNJRR\.'7ֽ0 6iic*++g͚=o޼;w㲙^}}JKKRruuunjтl̘1qqqgϞ[n#GDutt{)))ٺukFFFhhBv-ֵk_dx555G꫾/_>_HHHEE%eee]dL}H$#Fq|͚5ƍJĪ\Nn, _z饔nךBtgff*՝;w\RI.Zb%=bҽ0V9jɓ''Outcnb0wvpp{.ŋj'''^ڳRi||<􌏏JK. 0`̘1Ė}-))Q>|ߟ޽,?77wȐ!6lZvdsݴiX,s8gں($###((u޽8#~g򛛛KKKzuKWXXܷo_oo襤$͖(www__͛7D":t{ٲAbvj?ȑ# 7/"Rjڭy9pߺu+Bh׮]>jnnVnnnvd{]pYVV6vح[kz˗/2 񌌌ÇJ={@ 8}4B(!44( `ǎZv fҎ8~)???ߟͮ# YhOMMEX,hMMMS/S떪;bEGGgdd >}v9u1GD BPsLdnhhXnݪUȵ+ RRR P(dȬy9ȔJܹsteȅDTm|5k Fŋeee8rooo b̙{l*Bʕ+8w⪪TK u@@օLNGG7n8oo۶^B pJAlЀ"cK"ԺjK$ BB/hD*riNN>Re*'' rfǶ1|RѡP( 2k/F~qĉ+W\|9;;;//Xp5?a)-- ҽVu />|C|3}Zb9:`K.EFFjmmB4 HU__cмDsfggwvvZظ#zdjݧOE{_b*++ƍwq͖_}ĪO>2""ɓ{쉈v-BA5b"b99f/^|̙~ҤI]}֏ZYYI칮Z~aܸqUשh4ԩS+ՅyDOԽD"ђ%KJJJ5[EkjjG4^:@ jvH$ӧOvvvssW_}էOHu@]Z]Mb ;~A.qF& ͛71O>ɓ0ڵת`ժU111k֬۷/.IKK8pdž Ovcf2bbbTokv7d2٤IL:9((hƍBp=*Sj;/pss0`@rrrDDUkI[[}||6mD#1^l) ggZ]b-5فj]MbO-'H_޻HLL\tkө 2#Ff2kcUŒb&LлǏ=zɓm2lƋ_~7xCW9;;Peco),,ljjTSz!e􀷷wHH[LƑ# q ɔha02ҭ& r<33& ̓qdj( @ydʃ P0 , /0u-L#߻ژ}k:q|ٲeNNNZ2 2Uq8_\ uڵX`MMlUYYY```xx82CKǏO8QQQMzcϞ=\ mJekk+l}\֍E"BϯM6|>!t!Ctvv*C 6_~'N,(( *uٞ={v̘1l6Gkw5O>oы=ztذa{o [ :I$e2YBBMHH:=… III]mEAv8qbذannnC۷yzzX!4aC/ooo_rNjZd2Y, Ts֨ɬHuBۉ|+Vjjj*..qȑ#\.7''Νx*pbEGGgdd >}ZP(tppHIIillLOOg0B|9Έ@Zd@ 8rB244( `ǎ/߻w… ϲcnݺU="fϞ-N>mj ȧ3B*d2Qv/Z秦"Z[[?Çݽ{wj/Q}9u18J5TkUCCúuVZEYs֢M4pmAy<ިQ~qrZwI$ BB/Vd2JeGGBPۯ%%%8KRUUUĖeee{P}yPPPcc#ŋj!t Ee-{d@ S# p|С999ڊ ֗KR:^^^N,!R25[TQQAYs2 "\8~s޽kKjjj FUYY6nܸǏɏK\]] x<ɓ i4v!d2AAAĒ>|C5}ZF!V2uTjgϞV-V<oذa殺'O( i@@y֪hr>GD=G:thڴi7o&޹s޽{KDK,IHH())INN&{T$)ʬիWϙ3$!TYYIt(Ã[|>HZoi-SGEW >$~]Ekjj|!ٳ^"z @[ǖ˗/ׯ__WWG [2𸸸> 22R8;;wttj8,9Uқ^IDAT.ku_2lҤINNN㥭m>>>6m"RZ smm-Ts#3 r[:)^TAf2ln`ml0ȜcccP)*Vt?Y*rSRRP)*Vt@( @ydʃ P^sk`8zb/_LNERP``8,; A<2A(`xOIENDB`XQilla-2.3.4/docs/simple-api/dir_000018_000017.html0000644001725400016040000000377213273140074015724 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

runtime → framework Relation

File in include/xqilla/runtimeIncludes file in include/xqilla/framework
Sequence.hppXPath2MemoryManager.hpp
XQilla-2.3.4/docs/simple-api/functions_func.html0000644001725400016040000005173013273140074016547 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- a -

XQilla-2.3.4/docs/simple-api/StaticType_8hpp__dep__incl.map0000644001725400016040000000026013273140076020512 00000000000000 XQilla-2.3.4/docs/simple-api/classRefCountPointer__inherit__graph.md50000644001725400016040000000004013273140074022546 0000000000000061c04dc1c0a3984d8c71425f7f5bff56XQilla-2.3.4/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023526 000000000000008ad68b794b0434b96edcce876737a48dXQilla-2.3.4/docs/simple-api/classATFloatOrDerived__inherit__graph.map0000644001725400016040000000101413273140076022652 00000000000000 XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp__incl.map0000644001725400016040000000113613273140076021357 00000000000000 XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp_source.html0000644001725400016040000015342613273140073020654 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
PlatformUtils.hpp
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id: PlatformUtils.hpp 1825016 2018-02-21 22:04:13Z rleigh $
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP)
23 #define XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP
24 
25 #include <xercesc/util/XercesDefs.hpp>
26 #include <xercesc/util/XMLException.hpp>
27 #include <xercesc/util/PanicHandler.hpp>
28 
29 #include <xercesc/util/XMLFileMgr.hpp>
30 #include <xercesc/util/XMLMutexMgr.hpp>
31 
32 XERCES_CPP_NAMESPACE_BEGIN
33 
34 class XMLMsgLoader;
35 class XMLNetAccessor;
36 class XMLTransService;
37 class MemoryManager;
38 class XMLMutex;
39 
40 //
41 // For internal use only
42 //
43 // This class provides a simple abstract API via which lazily evaluated
44 // data can be cleaned up.
45 //
46 class XMLUTIL_EXPORT XMLDeleter
47 {
48 public :
49  virtual ~XMLDeleter();
50 
51 protected :
52  XMLDeleter();
53 
54 private :
55  XMLDeleter(const XMLDeleter&);
56  XMLDeleter& operator=(const XMLDeleter&);
57 };
58 
59 
68 class XMLUTIL_EXPORT XMLPlatformUtils
69 {
70 public :
71 
74 
87  static XMLNetAccessor* fgNetAccessor;
88 
99  static XMLTransService* fgTransService;
100 #ifdef OS390
101  static XMLTransService* fgTransService2;
102 #endif
103 
108  static PanicHandler* fgUserPanicHandler;
109 
114  static PanicHandler* fgDefaultPanicHandler;
115 
122 
123  static XMLFileMgr* fgFileMgr;
124  static XMLMutexMgr* fgMutexMgr;
125 
132  static XMLMutex* fgAtomicMutex;
133 
134  static bool fgXMLChBigEndian;
135  static bool fgSSE2ok;
137 
138 
141 
173  static void Initialize(const char* const locale = XMLUni::fgXercescDefaultLocale
174  , const char* const nlsHome = 0
175  , PanicHandler* const panicHandler = 0
176  , MemoryManager* const memoryManager = 0);
177 
227  static void Initialize(XMLSize_t initialDOMHeapAllocSize
228  , XMLSize_t maxDOMHeapAllocSize
229  , XMLSize_t maxDOMSubAllocationSize
230  , const char* const locale = XMLUni::fgXercescDefaultLocale
231  , const char* const nlsHome = 0
232  , PanicHandler* const panicHandler = 0
233  , MemoryManager* const memoryManager = 0);
234 
241  static void Terminate();
242 
259  static void panic
260  (
261  const PanicHandler::PanicReasons reason
262  );
263 
265 
268 
273  static XMLFileMgr* makeFileMgr(MemoryManager* const manager);
274 
288  static XMLFilePos curFilePos(FileHandle theFile
289  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
290 
301  static void closeFile(FileHandle theFile
302  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
303 
314  static XMLFilePos fileSize(FileHandle theFile
315  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
316 
327  static FileHandle openFile(const char* const fileName
328  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
329 
340  static FileHandle openFile(const XMLCh* const fileName
341  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
342 
353  static FileHandle openFileToWrite(const char* const fileName
354  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
355 
366  static FileHandle openFileToWrite(const XMLCh* const fileName
367  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
368 
379  static FileHandle openStdInHandle(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
380 
397  static XMLSize_t readFileBuffer
398  (
399  FileHandle theFile
400  , const XMLSize_t toRead
401  , XMLByte* const toFill
402  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
403  );
404 
419  static void writeBufferToFile
420  (
421  FileHandle const theFile
422  , XMLSize_t toWrite
423  , const XMLByte* const toFlush
424  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
425  );
426 
436  static void resetFile(FileHandle theFile
437  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
438 
440 
441 
465  static XMLCh* getFullPath
466  (
467  const XMLCh* const srcPath
468  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
469  );
470 
484  static XMLCh* getCurrentDirectory
485  (
486  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
487  );
488 
498  static inline bool isAnySlash(XMLCh c);
499 
509  static void removeDotSlash(XMLCh* const srcPath
510  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
511 
522  static void removeDotDotSlash(XMLCh* const srcPath
523  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
524 
538  static bool isRelative(const XMLCh* const toCheck
539  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
540  );
541 
561  static XMLCh* weavePaths
562  (
563  const XMLCh* const basePath
564  , const XMLCh* const relativePath
565  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
566  );
568 
571 
581  static unsigned long getCurrentMillis();
583 
586 
594  static XMLMutexMgr* makeMutexMgr(MemoryManager* const manager);
595 
604  static void closeMutex(void* const mtxHandle, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
605 
613  static void lockMutex(void* const mtxHandle);
614 
624  static void* makeMutex(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
625 
638  static void unlockMutex(void* const mtxHandle);
639 
641 
642 
645 
653  static XMLMsgLoader* loadMsgSet(const XMLCh* const msgDomain);
654 
656 
657 
671  static void recognizeNEL(bool state
672  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
673 
677  static bool isNELRecognized();
679 
691  static void strictIANAEncoding(const bool state);
692 
697  static bool isStrictIANAEncoding();
699 
707  static inline XMLSize_t alignPointerForNewBlockAllocation(XMLSize_t ptrSize);
708 
709 private :
710  // -----------------------------------------------------------------------
711  // Unimplemented constructors and operators
712  // -----------------------------------------------------------------------
714 
717 
723  static XMLMsgLoader* loadAMsgSet(const XMLCh* const msgDomain);
724 
734  static XMLNetAccessor* makeNetAccessor();
735 
746  static XMLTransService* makeTransService();
747 
755  static int searchSlashDotDotSlash(XMLCh* const srcPath);
756 
758 
761 
768  static bool fgMemMgrAdopted;
769 
771 };
772 
773 
774 MakeXMLException(XMLPlatformUtilsException, XMLUTIL_EXPORT)
775 
776 
777 // ---------------------------------------------------------------------------
778 // XMLPlatformUtils: alignPointerForNewBlockAllocation
779 // ---------------------------------------------------------------------------
780 // Calculate alignment required by platform for a new
781 // block allocation. We use this in our custom allocators
782 // to ensure that returned blocks are properly aligned.
783 // Note that, although this will take a pointer and return the position
784 // at which it should be placed for correct alignment, in our code
785 // we normally use XMLSize_t parameters to discover what the alignment
786 // of header blocks should be. Thus, if this is to be
787 // used for the former purpose, to make compilers happy
788 // some casting will be necessary - neilg.
789 //
790 // Note: XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be specified on a
791 // per-architecture basis to dictate the alignment requirements
792 // of the architecture. In the absense of this specification,
793 // this routine guesses at the correct alignment value.
794 //
795 // A XML_PLATFORM_NEW_BLOCK_ALIGNMENT value of zero is illegal.
796 // If a platform requires absolutely no alignment, a value
797 // of 1 should be specified ("align pointers on 1 byte boundaries").
798 //
799 inline XMLSize_t
800 XMLPlatformUtils::alignPointerForNewBlockAllocation(XMLSize_t ptrSize)
801 {
802  // Macro XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be defined
803  // as needed to dictate alignment requirements on a
804  // per-architecture basis. In the absense of that we
805  // take an educated guess.
806 #ifdef XML_PLATFORM_NEW_BLOCK_ALIGNMENT
807  const XMLSize_t alignment = XML_PLATFORM_NEW_BLOCK_ALIGNMENT;
808 #else
809  const XMLSize_t alignment = (sizeof(void*) >= sizeof(double)) ? sizeof(void*) : sizeof(double);
810 #endif
811 
812  // Calculate current alignment of pointer
813  XMLSize_t current = ptrSize % alignment;
814 
815  // Adjust pointer alignment as needed
816  return (current == 0)
817  ? ptrSize
818  : (ptrSize + alignment - current);
819 }
820 
821 
822 
823 // ---------------------------------------------------------------------------
824 // XMLDeleter: Public Destructor
825 // ---------------------------------------------------------------------------
826 inline XMLDeleter::~XMLDeleter()
827 {
828 }
829 
830 // ---------------------------------------------------------------------------
831 // XMLDeleter: Hidden constructors and operators
832 // ---------------------------------------------------------------------------
833 inline XMLDeleter::XMLDeleter()
834 {
835 }
836 
837 XERCES_CPP_NAMESPACE_END
838 
839 #endif
Configurable memory manager.
Definition: MemoryManager.hpp:39
static PanicHandler * fgDefaultPanicHandler
The Panic Handler.
Definition: PlatformUtils.hpp:114
static XMLTransService * fgTransService
The transcoding service.
Definition: PlatformUtils.hpp:99
static XMLFileMgr * fgFileMgr
Definition: PlatformUtils.hpp:123
static XMLNetAccessor * fgNetAccessor
The network accessor.
Definition: PlatformUtils.hpp:87
static XMLMutex * fgAtomicMutex
Global mutex for fast or infrequent operations.
Definition: PlatformUtils.hpp:132
static PanicHandler * fgUserPanicHandler
The Panic Handler.
Definition: PlatformUtils.hpp:108
Utilities that must be implemented in a platform-specific way.
Definition: PlatformUtils.hpp:68
static bool fgSSE2ok
Definition: PlatformUtils.hpp:135
static XMLMutexMgr * fgMutexMgr
Definition: PlatformUtils.hpp:124
Definition: PlatformUtils.hpp:46
static bool fgXMLChBigEndian
Definition: PlatformUtils.hpp:134
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition: PlatformUtils.hpp:121
XQilla-2.3.4/docs/simple-api/structBaseInteractiveDebugger_1_1Quit.html0000644001725400016040000000451213273140074023005 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
BaseInteractiveDebugger::Quit Struct Reference

#include <InteractiveDebugger.hpp>


The documentation for this struct was generated from the following file:
XQilla-2.3.4/docs/simple-api/classATBase64BinaryOrDerived.html0000644001725400016040000011252013273140077020772 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATBase64BinaryOrDerived Class Referenceabstract

#include <ATBase64BinaryOrDerived.hpp>

Inheritance diagram for ATBase64BinaryOrDerived:

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
 
virtual int compare (const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isNumericValue () const
 
virtual bool isDateOrTimeTypeValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Protected Member Functions

virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
 
- Protected Member Functions inherited from AnyAtomicType
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 

Additional Inherited Members

- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 
- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Function Documentation

virtual const XMLCh* ATBase64BinaryOrDerived::asString ( const DynamicContext context) const
pure virtual

Implements AnyAtomicType.

virtual int ATBase64BinaryOrDerived::compare ( const ATBase64BinaryOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATBase64BinaryOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const
pure virtual

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerived::getPrimitiveTypeIndex ( ) const
protectedpure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getPrimitiveTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getTypeURI ( ) const
pure virtual

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/inherit_graph_4.md50000644001725400016040000000004013273140074016277 000000000000009ccb70aa0e2b3879c6aca04521bdccccXQilla-2.3.4/docs/simple-api/dir_f2fa734b64154a4ddf51da3a7a041eb7_dep.png0000644001725400016040000004666613273140076021547 00000000000000PNG  IHDRbKGD IDATxw@Tn&]RDDEOQcvSvO0 \ϟZn˸qcW޴zXxG*++tu鉿@)Z3gob|Oα} \./' ?ӟX _9ŋgڵk3IzzAffz/_xwnvX 'Hҵk9rٳw~%QQmm߈P( y<^CCÑ#5tDK e~7mZYYYxqyޱcQ~yߺuOSSkÆ+W.;}鉿x2*//{(,14?KI LXZZ?@A$P&0 I La?@A$P&0 I L_RΝ |X,v``Y(!$W77SSs!;wBǍ|ʩSdtur I La?@A$P&0 I La?@A$P&StuLGA2P&0 <|XbxϞ~,z2yXVGZY>{G$m(!9epȞWwvԒ{^^.&&GC?&]^z՞?n߾A (Ἴ۷ã#vZ>}$}`Ŋuf-񔢣S;WUUIgǀcmmw#&M򊍍fX>0iW=zXjƺ.Wcr5\.k{7ߌ9r+i$ Rl9f)/b ^~tE3T @sr?Ӆ /|'4xcAMvJ$r8\UUر۴o֬ ! >>Ӷm[C?~3gw贱Q( &#uxI–-k?~`iirUIIyŊ_]WW;v쿶n׎w_ z˖:ޱ%UUV\3}}gd|"cuX_ -svX`@A$P&0 I La?@A$P&0 I La?@A$U8qΝ-GQ1JzhhhPVVfu[@Q…DfgffTVy mmk^Pv|)GzW4i+[G 7lPظaÊ͛wϝo|fbkg̘jg}uf*)4r0ީ蠢|o=e"?ׯ V{]?;q`CCHr}}rȑ㈘f``heeV##cuuVUU@.PԒޚZwDӏgmv~AmҟvPrgO4hȥKw ZH/_hgŰkuŐ.P=zt5f-8v윊 q󺦦V044>_~@? n~0(h7nm‚,]B~@?̝XQ>õkk(YA@?2L2eԧO׮=FeD ڙya5<̜9?d: y`9; rssqiwwe˖x<=޿ƍgϞ̳"O?F ,^xȑ z1lXW:~B T ڵkR)E^L2uN6ްac% GS*))]x:/RTOOÝlxQJJ ˗l ޽{a &xyy '_𨨨x|V;Aov200u\"{zzQ6fwYg7rH77Ç ?P]~4iҴi"""vhtttWXδ\b͛7 pEG. H~ǥKnܸܹsT͛7%%%]՟MVVVgZӓI vv!4eҥ$_Ǥxxx466&$$xzz=&& 999illl&&UG_{=ztҤI~~~<֦?>#FFF :ٳ]uD֑H$+Wܼy3gdśi:ߍvo1ϟV2eo޼e#';wH$.9ÇӧONm(=dee}6M2!wssH$qqqnnnS&77W*vE={3ܸqcԨQ111L|---Baqqq/3fLϞ=ϝk6@?G3gν{455 u5w?K&!h^CD"ҥKlѣG`KDvb.{ʕ.] Thƍtҭ[~/|>_II6mbbҥ`ooD/ZC>>>L?AL`iiUf̘q.c͗x8VOf*++{ A ߵkF=`hsssiNAAAvv6Sg۾}{>}***d(w3f,^޽{ |>zxOӋOӧ߹s!Frxyy BEΝfkŋ2Gʺzann. < 2)mmmL]';;C->"Z%̔aҥ "Z>}p\(GV$ O0QH$&MwKH055 &ܿHZoI"͛zy$Gk$g϶pp:t5k|E_xAV0-n h6NZݻw111'Nd($u266ƭ={ZZZ|iI`?9T*6lw}7uTu >?vX |>ÇS?9#HMMәվ} X,|ums@nn.Ϝ9HbHM/77wBSFzzOl~BB,K١CCfЎw@aa%˽ȍJL^xi |||,-ڇLqy|~~N% =522%12vEΘڵkӧOg:#F &)f 8YnKeeׯHk``gܗC}DEEIR*YCB;@ |>Аt?@RRy?yǾM!?}}}+++`?իWаꦀPrALLD">|8 7c`` |8'''111<<<"""((h̙7n@Qz{{p}]V # ˖-ݴi… kkk,'#G+vKØW^]?loo_TT~smmڋ/P1c,b˖F###Q ̦ =p@yyT*H$]碚FUU3gܹsjjj8qB[[[*7ABkll  cǎQUU2ekkk,XVK}j ttt"##̼[&VSPhjkkߺ:99UTT`yIR__?33syy96zΜ9w0`@^i hGRR444T ,ZLJ>" K(C| bHIߴi֯_:~ǏƍW^^p[VAqݸqJ(r\UUU1Tm ---@UUA;jjjdނ4͓,XdɒZ%KԴ "S]]] dzǗE"HCCɓê~)??)SA9\۷R7sNKKKv0\^vvva 윟_^^N_c_AqMdM@"<{ AHџ!YP \YYIX,2)899Ozzz}ө Y#)`?䨪y{^J?J4O0HԟP(| qSPt*YdUUUI׏f$l6O>_&n n|aC{G?ZAQ4::@5?$--l+ߋG+|>_SSٙ~A*{?ZM v [\.&==?*Ѷt G|>_]]ŅP_:|>СL!Bb?bjџP(&b~~~D,!>|`:YXXȠ8C۷{m?ww3fMꢢ@999YYYw9ss+W⻖,|Slce3͉N:x b6 *’>a4)ر|? |wwwR={*F9tSN UP?ŘaODVD]]]WZz.=ǣwoa3+|Ӫ? @QK-[X[[/^XnGHU4a'q/:n~j"6.\s Qwss`: ?%@$pqqYv5kH/L t&ogdd{ H$Ǐ ϟOzux{N&2!baa!+((D冄xرcĭӧOl!CD"niPܴ2899mذaÆ ODwqqfS[[Ne+++y}fJZ\2YlڴarÍaԨQaRB##f544H IJJ:rY6PZZuǏIEEEX?@7mڴqFrkt#** AOOOӟD")**q-#(mS֯_߿E1> |'''(Z[[K2$65w_ccfo뗖\p!%%i؈G!I$?UH}t_AAAAAAiii4:sĉI?_a9)ҟ⍿T5k8;;3).))ILL󋎎FQT&2z!_mmmUUUKQ?6}o߿6'Oܾ};~SaTX~WXX3Kh ?[lٺu+)iڻ\MG6Ț.>crB4e÷4ʔ^C>}B:gAZ~( X3gddd޽"#J &{{PSS E?zzz~G26='۱cۓ > ;i( ***-++q!MkA+V 2dѢE -'t@@J^yy9o A*bΟ?k׮%w~MMMrr\|ӓH$]piYYYܹsΝTDM'DN IDAT2ݷwOOO5^|c|ٻwBC1dXdbXΝÎ;BpӦM={6Aeee=ڴi>,w3fBttt] ͐z{+V޽ݻwRb(b"(''g֭BPIIiرwޕzf t4ffftfR[dIϞ=ϟmp8Dl\WGQD"ѧOd#^P?47jlllI(_ZZ[NNT*=tAQаu56}9"IA,WTTP0Z]]]?lNܼ}{H$۷owqqyM}$""M޲e#ndQZZ(իa%)))bgUUUD5{1K ?l}[֭[rاhT*x"SA444WZZZUCCCKK))S\\\ZbG755ml6~I"?fm Ad&SSSxm5077W^ htt4d=zɚf[ZZnڴhg]]]^w kK0gϞ=oVWWoc566x=z`R Mu _0T@s cɯ_n:x<"S=z`w6~cyyyM3Pꯢ}YXXПF7n܈BÇ(bwIbдu(lmmsrrh"p8[nu떚 L={=ƸM8~Dʟv?;;;XmggGQhhhhh( '6ݴygϞO>}4 ZDRPP4E(j׻woA222: qQ$Jp8CuvvwyQXX(h8<jjjR-݀ϟ<6wX|k=A3fLqqׯӧ!C177 / 81CCC9X={bvyY,ѣٳ}؊")>QcFGGp8xСC^[N7nܸFxU듓iSvr?SSSGGǿ7BNIҬ,ܧT'޺ux=ִm{644)SU.1zh:=buTl6Y3h cc;wR7:!!aԨQt:022±Z)))b|||:OTTX,1bNӉV***D6O2%))pKDD# Jdkhh$ww%7Jxx8̓/󏓓n O*(˄4iҤWU$KӬ*")O,|̜93&&{ i+++{yy4%%fyO_Fyjj-?.70u[QD&L/t诡Yfy.DCTTTee%͓?@RRԞ <==---/_hiXf^PAlll/zB(..4h#>3gŋ//Kۦlz| <(޼ys##>>AzMu'Pqƌ3H;455ۙ4iٳgN?Awޕ+tttˉp8K.dY gϺyhUUU⃾7666ˆ%SYYd]GGG<Gf(tuuϟaXLAEŋ̚5~Æ #nGXjՇn޼IA&$$d̙4cNNÉR0YYYM:uٳg^Zx1|>%CظqcRR҃H8p`WpF^ӟOpp{ݻXy))/PDl˿\ ġCz9uT]1==}̘1XCsvqq4i֭[I@\xql6~?VVV&+Ê#k6888!! ğ~-)M[RQQE^Wj055G7o.\0!!NrС'Olrw&޽bH_àɡ:w\vv]Hee͛mۦ{Ϝ9 ܹsgȑT$UvݳgOz|a9r$&&RaoLL _lii8TQQ9s EilmmqBˇh"ٽpMMM@@@hh(>yyyVO33l';{Y˗7}'nݒH$_}U(u3^| x-=0ձ/_Dq ok 7 k׮D(n߾-kPYYyil;>D:u*uiH0z8|0ٺu+p8A jE.[^^#J,4hPZZ6~- "p8WR炾dddtaa33lSpjԨy<3gΔ "h̙uVӡ媩QM:ɓ'o=ݬ CCCb @ իj\.o }I.\JgZ}윜LSH'99s/H\]]:7C:ɳg޾}pB:2?P`9$$$4-ggg555iKX,ԟqF܏qCPFHHȴiph ###66; +]CZٳfffTW׻wo}}8]CZ"/]h"Fi2?Acccw iɽ{>}4|F3?ԟ2zh|;qÌG[F@H[=x`LY, N244sA3џf~ЌP( Yd ˫DrAQtΜ9z!,iZVV _JJJEEu. /_\(4'N:ujӓxØF(Cp}}=‚:KJJ,etuu)i=z-,,bbbݻ⢪jllg= !!!{߭6oތ5DFFF"hzjD"ѹ>bfffWnhhh fEիW;;;Vĉ#F]жӿ%nnn/h3{=a„"p‚K.JJJ03g*eN:(--EQt޽_u~~~jjum6qDEܹꊢhbbrmm-g=ztVVVjjj߾}l4!T*OM 550ׯl|kQ\N666}F"`0 H7k}QQfΉB~ڰaw׿klvZZv͛7mmmF^f ##3=zT]]06yxwލ?~ϟo@CCG4}kll% ;vlNNZBBBTTɓ]\\"##:>}H$X$ #FhY:~ٳgkii-ԟMGLL~~~/_&Ϟ=t}'ӡCtuuO81sLCCC̠{kuUUՂ ttt,YaTTTp8;v(Z[[֬Y#s$ΝgllrݻwW i>a> KzQvn A444lQLbٳg/^t,L0!22@?7o,**bo3ןP(|1Ӂt?>iҤ={2a^ Wy~G`ʔ)aaab@3G۷ȑ# }Weeeϟ?g:nKIIɵkV\vV qq kt\0e2ӁtCKSG)???섄eee~-Ӂյw>\~ӧ3Ͼ-E??k׮IRV<}իW˗/g:֑#M>ۑ!Gzzz3Hȑ` 5ȑӧO~:\&G2ޠCKs)))y!Ӂtϝ;OKVVVÇov&Hh"i`aaa?f:F*;vlLroFIIʕ+L؄eggNa SIDAT0Hȝ|}}=zt„ MOy'_$111Æ KJJj Jgꯦ:99=|ۛ!CQqСOnZ[[3sIIIIMMV69~Jg0/QNvv6ùtӁt a̟?_YYٳLx۷|L)T?~8|%/\fy^snlٲw2"qmmmy@~gcc3ydYrHH믁LYWDرC[[{ҥLZ...[ne: //̙3rxȣZاO2laa`?QFm۶@䚴K.mٲJ2wl gj*'''9|R_}޼y7e+I;|pcb~ܹ6mjlld:_~ݽ{7ӁD1غukqq1QRR}+WJ<( ?ssUVm۶ӧOL"/^Z]]}ƍL`ƍׯg: ::ҥK?<Eҟʾ}Ο?t, # .]-g{;"7v؀/|-СC]*$(JMMߘ1222m۶i&+++c!~Zv-S?E*j +:?@ppw}t o߾/*ܣVQH>}nb:Zy֭[mַo_c!`Ĉ lYeeܹsMLLtuugϞ]VVF[#WZt,>^CC-9rŋ^^^8| "11QIIIvO]DXtիW_|toH}}=#l'HX9cǎadٖ-(z=oooSSS3`'O4 q;@2llly֭[ ok$2J>z0hРbYfTVV>}z'VݻwWFQɓl6ADfyyy;M\nyy9nsp8\.G+zQ6~3#74UIdd$'On5#Ù2e nAl6*))mܸƙL |||zyM;\.… DlΙ3G6kT*3gnonhh^K$HXQQѪn'##ںpR]]l}}Z/PEEcW7n\nf3?y>|D؈iӚɚNӧ9% 0`@^^pn?T:} BYYDfm?lDGAAANNn0$%% 0bX?6.֖S8 iaՇJ.\i9r#b|ٲe2\.7 o߶p/\@$HC  lv߫W/"f=S~nS7nl? xJ"*V...3&%%6(JMMM1;ƸEIR33cn_x;0[dΝ:6 ܹsy<]/&&;?pՏ?/cƌiZY__?33qqqX:\W^ܹRihh@ Xh@ M&0m5hBtcR… /_~ʕ'OaO6myyyǏ?~xӫΝqƴYіW!2nܸ7nTUU B.S2[QرcNNN@v-ccc@hUUՂ ttt,YR[[4cCCիMLLfΜ)K*E^jccܹ,L5Cg* eZ>/D0 I La?@A$P&0 I La?@A$P&0 IelBz 22O1+(7Hw La?@hqHIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_35.map0000644001725400016040000001271613273140077016473 00000000000000 XQilla-2.3.4/docs/simple-api/classItemFactory-members.html0000644001725400016040000005142413273140074020430 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ItemFactory Member List

This is the complete list of members for ItemFactory, including all inherited members.

createAnyURI(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createBoolean(bool value, const DynamicContext *context)=0ItemFactorypure virtual
createBoolean(BoolResult value, const DynamicContext *context)=0ItemFactorypure virtual
createBoolean(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, bool value, const DynamicContext *context)=0ItemFactorypure virtual
createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDate(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDateOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDateTime(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDateTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDayTimeDuration(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDayTimeDuration(const MAPM &seconds, const DynamicContext *context)=0ItemFactorypure virtual
createDecimal(const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createDecimal(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDerivedFromAtomicType(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDouble(const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createDouble(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createFloat(const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createFloat(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createGDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createGMonthDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createGMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createGYearMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createGYearOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createInteger(const int value, const DynamicContext *context)=0ItemFactorypure virtual
createInteger(const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createInteger(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createNonNegativeInteger(const MAPM value, const DynamicContext *context)=0ItemFactorypure virtual
createQName(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0ItemFactorypure virtual
createQNameOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0ItemFactorypure virtual
createString(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createStringOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createTime(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createUntypedAtomic(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createYearMonthDuration(const XMLCh *value, const DynamicContext *context)=0ItemFactorypure virtual
createYearMonthDuration(const MAPM &months, const DynamicContext *context)=0ItemFactorypure virtual
getPrimitiveTypeIndex(const XMLCh *typeURI, const XMLCh *typeName, bool &isPrimitive) const =0ItemFactorypure virtual
getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const =0ItemFactorypure virtual
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
XMemory()xercesc::XMemoryinlineprotected
~ItemFactory()ItemFactoryinlinevirtual
XQilla-2.3.4/docs/simple-api/inherit_graph_32.png0000644001725400016040000025641513273140077016505 00000000000000PNG  IHDRP{{bKGD IDATxy\TUsaG-ET@LKKTz44I}(|B445_ Hhf""2( 8,ǭib(~ s3R4Mm PX5 PX@WJQQQddRv Nеb =VVVv ΝKJJv .ky+,@a ,@a f֭[nTKrrrZD$Ɋ+zmddzꆆBHAAEQ?PX|@ P7N8Q$DgBDiYdɥK۷x?jԨ@oov@օ~YYYB.]:w\D"r/_&m۶Ç̡W_}s/EQ;vׯͺu~޽{3SRRkkktRLR.x<;;;[[['[C6~x#442eʔmw9xsVZUUU5uԔBAIIIӧ!prr7n܆ Ǐgee[.22СCׯ_v"߶mۡCRSS9d{ƍ/^8qDtttkWZobǞ[YYItvv6!$//OPd6BNO6lا~\\4_yzz2/KJJ49880;vlaaakWbo\S* >>/wi8rHgggBMaaayyy E?ىueBH~~>SӫY[[ Bf-:33qlm'kO.//7KXXP(l+(3g2-&&&i>|ΝgϮXٴ\p?1cɓ'GFF}m97iR@Rҿ,w(Cg?<Ɣ_}l)+{l>x}ٲ 3ر~‚{ݴExTt\ܑ4qjx avbqâE ..8<wm kxD53f_uuK\U(uhƌ355LMnO9T^^;lusNIY~x"<_m]i;a:7nPU3+t))׿:!ajxHutҤ-Nrbss< ٳK$g kx*TTPPBq kx*z{zxj; @GKMٲ%#66=p=в˗.]03k; @ MUUq6k8,3 @kT*zɒ=Em2U5<&>,2vBa qLMǾbA.-3fСn~;KY؁kЂ>Gul qFF|=m` knIIYX򒒒^z)"";w5tG~))*,reXnQݧ1cȑ^>MPt nُ?~PYȚ5k(ZnS-i(Fy_T djj:t/BP8ۻ[QQδE=E:5t98vB4wuuƉ'D"HtYB/>>>uaٳgsss===MM3jkk r…Ȅc*,))ٹsX,iO UVu?"tÇsϟs2bݸqرccǎ"B$ !]eccLjoogggWQQakk䴘 C?~Ν;trr=zѣ7ng=6ugXP֯?2iRA.B!|>ԨQ\n EQ #,]tܹQDr/_ ͛ڳgOtt4SU3y<ޞ={gΜiґ >|Q.x<;;;[[['5ڵ1i$3wd2%3BJr^^^#F8^5@?gUX #442eʔmw9xsVZUUU5uԔfsJJJ>}L*J$DO>$<<9555y&/ܽ{)<==o߾ͼ޸qcaaŋ322N8b3R=rǏb͛7oذ!666???**jʕj2~~QQzǞ[YYItvv6!$//OPñ.'O4H >## &[N}P(VGכY]]MhrQΝf6 ,,,"y]&HRcc㬬,OZw//]vڽ{ck (mlkB?Q3VA E v#!DOOL<<~w}EktbZ(zxxBꢣ̙sܹ&XXXj QQQRT}s?R433+,,lD"Y|/Yvm]]]䚟...eeeb޳իRf&C͟?D"]P_xx5챆[_~mӮ !$&&v\UTT O֞—K|G힪;vݻWYa5M}UA 2gΜѣGk; t7X2_xkz뷞jԨQUUUNځk`\LN <9XvHX\2TA k`YR҅ѣ̵[6UUI=ʔ!E`Wtu9y^Νcf τ{i;PXRSsƌglúHZZP讯oKHYw 2|pm` k`MMM]f[gtی99w׬%3[o |ͺۦh5nBFWWUIW>x@a}ߵ&h k`_|QWO/?䀞 wv4o7__R^^;oޮE~=;#XvܺUZU%9ҳHKýVVƉ1£&BccbpBno9gM22Y:5…€tud)+!aa/>>+PX; e}K~Y-"ѽ{U/؇aVHȶ"PUS5;:/8fZZެY? ؾ}!#tw21aI扉zz:c ,yS@v<'/11VBa-+CO$''GGKKː v*ԍ'ND"ٳ_|||!gϞDs̺:۷o[Z`aaj*Vh2dȅ bcc###Ǝ5`%%%;w555홥?jԨ@oooEvp8Cs\ƒԁ租~br9dzxryM68099yɫVzۓAs/EQ k-!%##5 `ܹ̙^|gϞhx={hv?sL`E-\í]f]v1'Mtdͻ+{yy1Ox:ig4is'}~+*w}MQQQ>>>MNhq:''V,߼ys1114Mb}}9s攔ٳR^^.H [H}v]]]DBtll)S޽G1?6mnii9k֬j<8p@u4BNZ]]B>|bBoqĉ_W^r={TjBHEEEw?.H?WipႅUkv!;sT*M)))Lmmm8Ç;::>kxʡNY:6qW_{y}Q]lga[YYItvv6!$//O kMfffL))nܸ!HJSJOOoÆ *VT4- !'N 7o|WgϞ]TT|u,ZФ>y$MӍL2]rssiV(4MO0aݺu4MVX;wZ;l+ºUkvWJYYY4MO>=22^^^vRϵ{nStu9r;OϞ=̈|BV__߶{ BBH]]ݦM^b}}yI$LKK˓'Onڴio!ܘ[ZZB[{{{B>q+W0RT&INfWO/Mp8'O>p?wB,,,srr'''{μn~-vr'Nܷo_SSS(-vollS 8 N޻|uuݜ9>Rt%pyݻw>$$]ti۶m **))jܹovUU!Ye333MLLllle&.]jjjjjjJ󋊊j#CC::n1!C]|''''&&9ٙi ѼT* jҽ 7F.ͯ_Zw77+W{]v)m|yQT}oӧhggO.//7KXXP(d6ݻ...6662Q__~ՄZƍ~Xبr !'O,.. )?BիWy<^XX8!BpÆ mdh;v #&&f̙1cƤ aÆ999-Z7Nzw Dl~խE7n\uuի̙nl}…</%%4---::wЭOٺakZ: **(!!AADHH!$11QAZ )ff ͋`ر!!C9pΝ;v̛7OYS(ŠJTؤlꭷZ;!C̙3zhmgxNv{)Fz7djj\ϝQF17-m5t S:?zTxNwh)NkźAѫ= @ PX@s !55unjS#bhgjjX^.V6\P_ k,o7U*W Yfׇmiiuuu !E=Q/rѴjӵU(lmb}lAXKp„ W*<_.WGe2eP˘1NfCCBa ecc{y]V&.)2wg4449A̙/[[n5(ki(ҥ}о}ǎt:@a dQ_X]]gee|Rq@[%+nغ5bޅF k,gg+BHIIQnSIs""b8]4@rt(ܜ[W4M'$dOO_ѻ St k,}}] t !_QQb rX k`UIIJEٙ8rV֝sw<4 G` k`l.W'%]njys#NG'pvwr4i~w̗=TÊ5յWQQa`OGo\cǮO6 PX mhh;8wrw @襗Y PX l!rƬ35Κ}~~}ϑt5BOOW.Wuÿ{ab⿻f] _^P[bqCh7W8U5G*xA:/P(Oӌ?v{ }}Ncp ;v^5KKcdD4wuuƉ'D"HtYB/>>>gϊD,YD[kkk r…Ȅc*'3KJJv)jjj3ŪUa5@O&Sm]^^+LL ԇv8M=k-S˻qƱcƎE122222"H$Bf!66FpBp8//ܹor:ѣGq>챳X[[k.@;aK277kB9s^m݉5*00[sѺ8-󺦦f+VhhhhQM.x<;;;[[[' !rꊖ~YYY1{쉎fj1۳g"##̙3MbSpÇC]&M`d2KKKfݕJ뽼LMMGq'}czccD 8m{o|WMJ2eJ; kT*Hjkkoݺ5sL}%%%YYYG9zhlllkj7n,,,xbFFƉ'kkkL  7l }sŭZϯI!ɓDLcuu5!E;wښ%77WG… ,Jh>}zdddkݽvڥkݏ1մ}{&&Ri!F}ǽܺUWaZ7>P(-׷^BÃRWWiӦ_LT3xxxب9TQQ7477ϟ7oD"iHc~ <-''g?U5bw.;q}?55˭uoll\J8p`k1z0lv(*Lѧ߷駳 l R)k!fҭrͻw^yyùssNNN-6j,-3[ՙ!!!<ҥK۶m oQsɓ'GFF}2Q__~Մ֒DGG3&--M(&''6iѢEžSyB7hmqUWW^zΜ9m\… y<^JJJiiiZZz6EOyS[Kr2)邫i7ޞ= ,7nfJrww_j=:::dUUU͜9W^˖-oQsLX{YZZkRx+++m۶$Z",_ח]yr...eeechvo2MLL$I =<<,ky( eebKtu9o…訨Jw!!!n X8m4!Г`+ʘRSSlA O[M Svq jjlluӯ)q| XXp::Evv MPXk,,B-ܩ5Kۉ k`%bff(4 kxXZWWB:::/h;@Aa 2GGۉ@aaBrJPv ν{?*(Q?G@a aVRH%vvf3sRR.۟{Lv{@8;;k;PXk//^z_RB**j|昙͘1mmM' k`W*]P"i(+{ 4}H޶m'.]*u 4)qЭGXca%\vo_E)[K Փ5)o*/)n.GJo:`66XZr !EE& t ~vm͛7iSCM~(5Ƅ*XEEoʱcWxc֭3PR5F__H^beffu}}m'npvJHXk,y(M\A}# KkR_/䓷gٝϝh'&CC=]]aEVVJVL(.^)//ƍ۷ogmll!#;99k}ٸqcT25)&&&###((kYYYEEE;wl~rw,s5C=䶶v-WFGhNE-\[ԯgΜ9t萿?upp`ԗ^zboodٳg[[[;;;X.!!_~VVVqqq̙{쉎p~\1۳gOO<֖rvbM4IpDLfiiɌмR\~#Ο?o/5NTI$2rww۴gJ2eJ kB۷>/ܽ{ǔ)SB "##+**233 !M,^$++ȑ#Ge*)!ѣ:BI10pι7>P($__'D(7idtռ !͓H$-)J%%%kGGGBۛbaaaooG >/IM67ց}߿ySׇxK.m۶a8Ν;wo߾ļiIyT9c[[[ Bif=44t߾}===[vuk׮q= k`GUHr!Cܒ.pӧO%,,L(ݱNzw /YXXB~GXye2Ycc~}}ի !!Dy޴iӖ.]ZXXxO>$<<陙^ZbjjX]]6Lۡnjckkn pwwW_~egg3gdgg3&׮]|򀀀ٳg7haa_{{{9Rsc֭C7nܸq"##[cff=d駟?EQ%l v v`lٲyra斨TihO} nnn{}iJڵӯ37W``}̌!'l(23BJD" z #)~|- IDATWӯWWK{?':_/GWw֠:r Escc[mS]]7q>x}x_w%!0(S Ս"&)S\]_x055ȑV[͵ z8).ܑ˕zzZ|T*KKKI|-BȈĠzh+U |G%K߿ƍK.ڲeĉE"!_f^BzEٷo@ >}zWD={l޽Ν;/bee%{^~ɓ'8qsW^y%33$Ztu"Y^IU*+^I֨@kPX˻qƱcƎŴ=ztvVذ>Jz?|ȑ}/cccwM-Er{{ҚrĬG8,aja+<>?jԨ@ooo@n733۶m{W;ڲe˼ϟ$555g϶vvv^bECCR\~#Ο?Ϝ)y<-Ǔz~ޤI"""2í BQTBBB~!/AFFҥK57lذA=~;lLfKFF3g:rM8M4EǬYJˋv>=/>y G @4MBAT޽{w4MGEE=z`رׯ/**jW(6C FFF;wlrNxx1cn߾7>><8|#srll)S޽G1>JEtJJ\.ocSVWWj&lhh)--e~l2QlLf7xĉ"H__Μ9%%%{!7y?]#H$̿>9RVxy}{;86'pw_b]~!D]F7_h-LKӴL&qD"Q*NjŷKsXa88|8e޽y'6fÇupp/S {]N>]ZZ=СCܴ|BammnR455588xذaÆ OV^rʰ x[neZʔJ;󣇇GII EQ~~8Gg988]P(h2˝8q}zaǶ744  !VVVO:fkgz{{B͛'Hh|‚ְgǯYYO:da]-(]^uB=ݫO@T y1-W1114My{{3/E?{w7|6pߐ@rZP<~Z "jUjUTD*zֻPoHT IɹkB |>}ww"SN?%]xqذaEH$Æ链>@x-V؄v||>{ #տhՇ?u뵩)qjٳi;p?IIddl6! _UЏ I&k?k%B4Fft'hx<EQ6ӛRmk+hkka0ZDQTMfֱc473)X_wu SjXCFs|=(;;711QNNn;wOhW&_0.",hm&&Noob8yuuE %uuEuuE2Y}P26pPh +ѣ̃%mfg>=z4VEEyÎ <0Sbbq֙P]]YTT4fWW'O.^8~dl%IHI;sGx<kn"1X_VUU++ZZ54?*& ?9:UCZ[9ww{IJH **_ﬤ$qBILqx555?;nܸ3g` Ç^ף""C.7W}Μ?dd<;L8++VPȘp"~.…gƙxO3][+BI9slذf2l???D$l6AWZZZjjjF qqqk׮vʯ_:EE$..w>|ށF`0~'mmm iӦVaPq㴟wNNCG4x̪q2!3xb 3ЇSmZsbUC4NMMM_xyyݼyl#EEũS9>BBBkkkW{0̼<+aY:Ŕ@ٴiɟ\\BOQVADZ$"=L$?~A'Nf  333D---ohhPVVZ#V@:MMMۖ4336l300PPPx "a o߾Ų[nm޼:ܥBXܴ4ڳg޿/ϯfX5nyuv ="JJJ:rH{wEwmm ޾-:~ߋ>kkv튉LsvڷύLVh[[[߿] IHQ@Pg>PwrVgϾqСCܹl>FSSS&d2RhA999X{0tMMͯ|Fm\.RnjjZ\\,Xג;:8:Oӛr=z ݎB9rȑ#.P(}{RlAA͢EcDf(FDu[^^ܹ%ennn=W?$]Ͽ~΀5֭[ggg7rH333lv||<3 ~ J8?a„)SXXX6Zw#HD"Ϗf߾}[__N_nnnvA<O$}!zfHH6ݻÇWTTòXl8CC#FXFEEE[aaa۷oDzj_XXϟ? A+W޻w \ҥKXsٰajh8=x𠹹رc_|CA}L!֮y8:qs OLܺk\iGհ~ ^^^777 릦F9r$???---..ɓ'۷o5k֔)S|}}+**|}}”ihh֭[-Zv]III!!! nnn#F w>t˗u}-(ՍCQtTUU m~RRJIMMUWWooԤ[ҥKu]|PXC}MN o2mڰ~lxG[[?JZ[[_*''Ԕ(4(@]]gΝ"inn'O\PP .2 ;@ dgg/_Qu]]]lll?~|,]])S.>rH^1vqEEٳg߸qcСw\b 6ش OOOT'# /oԉeH$))y]?).l@VrTÇa엷N׉5cRt:=99PTTt)SlܸQR˗//**b?xxx~ɓoww[nEDD7B`3w%8HSSSppiӄS~1(rq//7nܾ}{ȑfff-ndd[R߿ ȓ'O%/f22jSR*3f#kF1wᄑxyVV)PWA#u{*++??p`Çj, WW׀к:{{G.]_]z5|Vb;f`` ~&bBKK 6LGCCeg׮]tl߾i˖-&&&޽۶mUւrsss^wio׭['2T:uV1gʕ~~~jjjFJOOwچKOCR(<> 7eƌ#zzMMӿSIXXEp311Z %Khhhhii455, E[n֢_6p8dMk~Çkjj>>ʍbp8455URRrttĚ;d ?A_yy͛i׮ϯ27uw݁H8_Ϝ; EC|O*#"R#"R++nj10":--唔 Mk֭4իGxxx"""u u w7n=y,?s#K;..=]QW׼}lbbޘ}{NzZHT7;Wnzm .\~]ڱ@$LN( K~3EӦ g11o6lokEwDܠAZOd))ɹXY4a͛b0Z\ooǐnu^|9wUVM8Qڱ@$LSZʸuի4ZuΞ b8vݾp!ACС䆆֥K'&~Ԑϟ1VAy? "r䈗||0aBmm ]0$ʎ}yŒg8lEqAз糲Ʋ3g[Zg(?___˼$&jk+c-D͛ML &֐8<Fڭ[l CN^ |@T<|fU|l676=^%&jkj,^݆HTU34ԢP4x\DDijg E:}"'22 7uK?Od)#~/޽_c2HԔP{ͭm/(),)/rh+#''$AZi^ `bͭyZTTkccenn#544@K;JFFSGgx( pV,ףYu]]3,CUVb]SdeJ$ڠAZǛϛjj[ AϘ?CNo^F׷ܾF#Tܾ5xA|}}HE5X<dr\99yIIy%#ڧЕ07 j**E7c$&pkk܎W@΀-.z^sqtɓ-P?2zhwwwiG1\xYEVmccaISVVv4Hk&U 5z󆼼k HB0VdgGFEFTV69gΜrҎ fhfJ:|LZd:` ##.|C l0yO&;x{62Җv\uddt%,@()a^}QRBg<Bh#G utTz2| &#,,L<lE7 >A n !Ctss+5C) 2YDRoz ^0h>~,q#J}Y[4r޽nsPR]> h`0<^+b:[OYƩ G9,,iC&GG֘ :¬vލ ȁ^\1?#wc BeZ[s--x< 89 X,ӧoH{0S^^vTkww{;R⋡(jmmب͛έKd%yyy՝P]]^RWW3fLYY6_KKKVV+/""EіVffqFFqr/rZp8 o4ʕ= A$v鯰./]>\]GwATfffVV윝mnn]xĦ- \AAAAAՕn@pp0xٲ(SիW\EQA : *+H?SQQ3gI>駱IIXUCWxx LbaaARzfHH`ڵ?3icc"qZd%G.駟)ʦMZ[[\pRGGW\166VSS۶m p utt/^`0l8bbb B$׮]d2l6ϏD"D???6݉} )!4ŋYY{||}]/ۉ @d;K װg>x|?6lmswwuVDDĸq($`H$链䡒dMݻW|qbvk@vv6A[[;''kɒGA0+226o6,_OX+$aCPYY zg׮]-lYYYOOϵk{.00[P-Zuw޽{n͚5˷nݺ~m…WW׀iӦ8qB &={ӏ⋕1N3fiSR׭s~zjL;a[D$sFabb"86E}}[7d2% @P\\\N:n8CCCl1Ɖ2eӧMgÇO<688Xkג}}TWj $_#jj,9F1xpCaaIϟ稩)̘ahјa(mKBP& b֭[i4իWn'gnnYׯ462 RSi))yii&&6U ve YU(˫22zI =:uXXRAARvϼ|rܹV8qcGd+Vz嵵L"g/0gB%eezAI&ܹg;vDxa<>- ,s]PPӭl chid;!YY`:,fs/^|~s"J"5hfh!#/MA&݀No_|&IVG"M,]ԗ5|Nt"99 & ( k+>pP+WN4;vu5 %%t~j?D֠AZ$*|՚ m0 TW7bIF[l6޽穪rl**겳+h #R02ҁ'vc2 &/0~_**><u X3 oƲmIXGEw a0'O||.Ulûz-0䔗 @dgc9dDƆ2s v#rr7jj6666Bӣ˶;!!Z;H$cXAзqi4Z@@+QB1'G (5uV++wwwwwwx>xQ(ÇK;n #Gaa-ok& 5 G60N Ip8Ha*("6iicddpB45WVcJ**3J|,>x $DFFFFFJ;o߿Q7ť6%%%<<[> iy?{>22'TTؒלD_;"##WbfsKKBй,oB9LMI׷GW1xHU"Ce$ɪ3g讬8d$K22?kcIt(kHBNHdddRRϝ;kLDDD7nM]w=vҎ]"j7 Ǐ7_k60Zr4^}NΝ׃k[=4XbqDt,rs~#%dW?\C };Aԕ NBQz= duFhT|ʓ'Op| 8=tˉO/3ƴ@-mX]Zύ}Qw,wE 1`b A~[>w'vB li l^4bźWc.m[rs+;1oC_ܣe;kKK%%RFqqmFFÇՍX99}} 2YLVP4KK+q89)lAXCy$ߗ` }T5?ggW5cshcssAUUw+~ZWbb.CttTjuuŭ[g=D7R<ɺ~}Űa^+8]]5]]1zi)˼KKE4Z%~A`b AJI۷nJJ>Cύu-ȑSӄC躸Xa9uarL[_L&?/|ooGkג{,//No6Nٲet6kd~,i5j͛XZ233ogglsssVXz' ë`mmmG ڵKGG'..KeͧNjmm}e˖ ߯'N8q#Gܹõt.6t/ɍ{!dee LlD"~~~l6{@`->m W^ p8 CCCŋ3ܼysݺua?f0?6BٴiSkkmp\UTTƎbqc6s UU 9t/ppႥ΁\bllm۶=?OFFF__cԨj0zٖŋ }?NiN_Omm9sFx6;{'O>zR>a„)SXXXPTIi;JۇݻÇWTTrUQ7@XX„B"r{a_t mΜ96la2X =wDĩ+H?3A;7Vxu '#􆆆_~eɒ%O 322Fe˖j+?y򤱱mlͣgϞ}ammcۆ>|H$FEE޻wL&wbeeg~a2`z6;!$?rrr/ *jc_*<<<Ϝ9kMv_Oo&p-]z=L&7P6X[o [ҤZHx xgΜAQt֭VVVB-l/ 'K.-.. TVVwi[*ꦃѪ"D|ش1_hLL Lf"$+8;<3saJvXt2eeetllСj@FFF{ǣ(b5dȐ(؇mtbxw?LMM$Batu.]|$WWψ NS(}ۦt0oy5.>Wy֫[3gnl짧B0h}]C|UN{MRRT|r#v̏III)%%Exw0dtLT`3u'X䘚o߾tҤ$#/wkY&aӖ-A">|0f_~ӧ\.ojjZ\\,0w 0::eggǟccc#rAA,>-t A.W(ؿ6VF tOK{猊 ` NAuu\./7299 +*곳˻<IN+WNzC߼)<~< kH;psT$ˮY&**jٲeǏTTT}˗766>\Lb騫ꦧO2E#Gbi[999tx;(**Ξ=ƍCsΛ7o[;HB]9uG_3$:XO?(u֎nQ^.sWhEp2LѰ*==޽{[nmoYf:tёߛ-,,f+**C>}p8222%%% ísuu}-VUkjҲxB4wiӆuXge޽_óZ[ߗ}[^UV(}@k, _q'[Nlm֬cEF1g]7rT*˗/Q]vIxaOlDjiii9s&ɼxb{M{׮]&Mwumjj ?J^ N?;yyy[nȑ&nA⩋<"OxuLk%& IDAT`c]v޼y4۷FZfЏ ( Rl:((&33333sر˗/xee/޾}cݻwE,X䔗iee}vl͝;t  =zH$FGG=x`dCW$N~L50/vZl<-H XwBٰvNo8?73ۢ~C)l6WqIDkH||<IKKt{S/GE>Nt:A455m޼[`յ mUWW7dȐ &u;h;7ցt}U媪c/YDCCCKKǧIh_w*ںi&2B-rqEi4ڼyd۷k]hoKK {QWW711Xq)++vsASSS%%%GGN\hkϞ}:iR0L;h󺺿70 + A6>CPC&[{Ѣ;/\xdZ$XEp3110x2moBWÇkjj>>ʍbݷF=SWfgSC{&FPDPDDD(+֭בm<_-ٿs/,է45Gxzt\PPSPPQfaa-(( H mM_uήy3v7oٽ{;r=inommK;y2^8O yz.˳k k j=zWXXNضyP;DzwJ<=O߾P5k|lűcvcaq]A XCDd={\9da鵁FۄXMMF@p&)/Rm,NH> ULuML}K+4=xf\[8[֨*O^jդ(GORvA}L!+P(zˤCEGFQ0x0Qedy/WTegW파۷[228}} l{ -##UUn4bc7YRB}ӳ5YKܿӽA0 ѴX[oVS'UD5--%--eI50p5SNx<~.DR#Ԅm$5 t.LBhGʠE&k;ts/_k\#v? RS$K7` 邉5ҒEjk+xpx \ZĠ9:Ilni)C3˕L,LVj<,׍AߚS,ws|5Þs<=GGNzm2]I r1'uc:22`9L&浶rY,mi+no>}|g?|˫23#ܰ307,`i+ߋ}I,j߹@6w,JM9yII ]S),, b&OF0hk{DQ= NSnE)羾`>xQ(7kք(*P- u┕}dAAMnnEs3 @ 5odTT2R7oJ;@gfF6˶-VQQtY9DR57uknf]|T|uu}}]c#G7JFFɓ' nXGD3'LhkA~ٲ\.Odn!'N,={x9m SۃiP0myuQTԫ5kyyYo۶j 6}d8(޽vk/Lw`bS>>22ky{;f`P'$&.\'is4--ׯde҉cyvvyaaMI f hnkn϶5> Lkccš7--C=Ɔ!$} ޼)ܶ-ۢ TvDPOupxȑXAx<M$%m54@y{imesOQ(**˗Opu9Z>+YPPCU׷vڡabݞX51Rt{gemMgkkᮡoNeeChkגG{+9ĺ=r_m JL{{cgg3mI$5I&3ds3( aa+]Ku뵁ҥ.tt ٙDP"9u{fb ?cٲrr\.7$cQˣ(zF޽wL5}|&w HB(^ ۶͚5NA&ֽqݺk`GYYDssX.a /}հz/^䆄OMwrܴ{[[v@Gk+;00>>~Mc XF-QQ~qĔj}G(l6A1bXԓ' kf̰]v |s[F$''ԴWݹVj1QUVVH "5ĺn]dd?<URR'%}?| %%;/n򲬬/lcC K6{6o}fI,^`scBB Kij'^*\~۰4 W^ p8 CCCŋ3 ѣނ3~I[[BlڴUdm5Ϗ l???D$l;I{4c29'tܹE7򺺖?xg>†z6}E=oLcdKQP 8;[xz edyK~\XXcp8 Tf̙Ϟ},6^tttRRRHHmm~{gggݻ (//Zv͚5))):rH~~~ZZZ\\ܓ'Oomfdlqdʔ^sK kӓ'%7Tiwus;1|upo O5W$.^|p#a֬Ǐ?LqA|izz띝޾I;")R\^ܹ_Vp( 2$** ÇشY,6?**TdmRVV?f ccc(&ST K˪U7632bmQo2dK``Tqqm A=d eC``_!Eaue`p˲]tݳgNg۶[ ٰH0ewS_/g3P\oƌ C2 VajjZ\\,NVXtRG4MOOAA;}ڎL&ر]Ą{ܗ/X11c\WBBBԝ?lFuλw9Z?uEGyKM?< 33ݗ.*99#d]K&BD9El ܑkU:.Ljx5MSyyN33y9bmbũ7:Fvvߝ:##u_ߓ'OO ucB>|YH$M[[ JCCD"o߾f+222/~󨪪Nd2>QWW/+"w3*?1;;dy>=2jWTq+.QHȟ7Opu,ĺ C_ѣ͛6M EEe׈:F/ssET[}))7QTTD>}СClx zxxEEEu۷d0++˂jV\4gΰ5͘a{twCZuEj_~E I9_]弟55 Zkoc{LQG_ߓӦqㅨX ۹sAkve1F 0`7L0N;::ao˗^EEEKK߿kmb2 f}}%KTTT|}}TjcbaliGrw|Ѣzz6Oiioْ$@@XL&+',=Ս/d]\,K::BݹF[ g9u?r{K9u*ÎIRSpr޹s_q8… ͚e$Qy/bfk6'Quh=yRcGJNN̙AAtuIĺ=(&'Lu5B5![矹))zfٹ?)]VP~֬Sp"h ~L>xPƍ4MWWKWWa B_nۖ\QeB@7iQG- nO/JB#GbfY^N638~pbaO!nOJw\lsY3gO`.ZZ/]ʹy;dTIdۚs\꯬ ] p5h (S&.N1bԩCEZT_t c#$Hӻ벲OG9;[ܾFA$64Ҟ_Rp_L&h!nn54 c֯OHIKIYkj)X@5hח/ԌW7os篆 nkYY٧[LOj6 ĺ=+Fm0da$j9ۋ0~~aJJ/f++]WW ;CC5Fz#Gnڕz2!zHAǚ%7nv:UUq\]-'L0"s~I~z#VX%֋OOObcMns~z%~_Wܸ񲡁6xĉ:4k<}Z:kMՠCXy͗7n|LRRlpCWWӭ~|әNesUUU~@bݞ^Xg_2?ss u\ә=OOYUU[[ z[U]R/^qt4޹XCu$uuQQS^K sȁ ww3ju`|\ mYs֭E {Z{ysV-Ço LqŚ5#&&v=!<(7.vNR|txO]uEQN`2YRlmV 9{u3(#-m4USs(OB!߅q7`<1&cƘl>ٳ3׭['˫Rup0JOZb͛Ϛ5w\0eʔ/2LQH)S:N  CfgijJ4O<_ӧL">YYY`0;cK pW=DdddEEॲ. qѢ]tWQQ!C$lmmm7lwĈ˗;yz߿5gc,;;Q/)))QGF??OSv`Z׉߹fx3!G;EBmKVRٲeFvӃoHl>IGGIV!( EE;f]/))~\ee-ws|JfQQ kܱcc $&%>3aWXXj}}IVEE?07oDC3/ vvu,@ ffJL9rgTTFu\_01DQ(JJjjWgjhHԡ9Gީ o.@@5}8iQoZhtd G]tAt/EEEEYqqR~S\G E_碯"X@5x7.\][@ R2M..w8q^n(STT>ʿon_'иرc@gR6l1bݻ$!nj!FRk.v8700Xpamm-  ?8AhGTW3U~ 5%wwʇ"*qFQGhh |t]XXD%$ĊkF0U|9_YYvʔ!O?uha.lҲaذa?_bcc'NȞ,… Mu<'ODDDŹrÇ111CfEE~ \]]]gg"-))QUU@}婗 IDAT9'~ EEE7"DEjjwll"x߾k555۶iku̘]mQ;Y,VV[-Sٳg!==!͛V϶D 3f `P(h B+VPVVlh/cǎ***boXcdž<$yM.mknc;vΞY;m_kq.C N8ann~CClٲ@544t:BH/^@͕ãNMM~!K:<>XX,CCãGblii٪BO$2mUѣG? cbb8[XtiEEEll,B'[{adffjhhG |uXǙZM_}-5.Lsss1 kiii~MOOamooO]H$ҋ/𧒒o߾\Ě%KvODn|VKk[1 ;u*0LWki}uVV ?YkbCUUU#9x𠂂»w-477~B0̻wkvᓍG~/䝩mswvT*UVV6;;ðyɓ':uTK6EEe5>_]g"rlZ&/>]%A/ //oWVV0``ݙj&9h Y## 1*?m=FF}yܳɃϷwt4!{M@TTTB2255ٳRΟ|yF! ] VVVWTTwvv,73ςWNJJZlÇ ˗S([[[ʝdc* ;;;qx8?k ,,,RRR۽Ɔ]2dȐ.]mjj!̃v+r><:[ݠ X^OL&gee!(ϩStttj$|-)"k}֭Ϟ8|x}tаԊ C,BhzYCϜya+ cDL&3!!!22֭ïEgǎ ϝ;YH$dffxISSW```nno\?|||BCC9'URnnn&g ð#GL:G\wp˗쌍ٳg^|+!N~n*'#v+yflݕ kyxxEEE!VZl2'''v5qqsxb>>>jϓ>&!۷7Lf}l;-:~ X_b-//U[ۀ,ZmmFkww[2BB߯󋊊 ruu~zaaϟOі-[֪}ߏo677HHH455mݺ!O\?BBBjjjҊ.]4rHm UUU>|{YJKKٷv7qD2u֥KmʕUUUiii!!!ƞ#'…>>g6ι{|}}(  ޽{deeG_S}"z'L#yu]늼lF <E</ !(@@ $$$/𤋮rܹǯ_42Rww*ҥ+"ϜY...+'gk=11 AKKKnn.>謞dlm._.Oyu@ hi).[66##0%e=:ٳYd2UсEQQD"|.,2}MU$~}kלgB[ ysuGϝ˪kutG0pݺId2UIIΝ7 RRt x t8iǏ/y*?mri-EQd21*FmFw%h`].WAERR⮮<ĉ}~v+a v$''d2[%;fUV~e2Y75p+(x3eҤM @{ |+iiVWll de%tVs3ϔ::J32^773?.UxA}$agyyVTٹ3em?w.=1de%[Z55[=;XCZZ"+HbMXh$SP3gةS B훋ڴ颭=tוt99f:BjȢq4=-(BӧƢbe=S;>)(H{zNџ<)qeL̃+JƙZ:9JHt僨,((sܞD"޽@ԁFGqLz0C̢##n>vzG5J1htnI;RI$T]WAw̛7oĈG3dǎY99[͝;b?̓-:sE)Zu&++ߛ"-1 -_G1o<7 èQ<==EC^^]]%A+<YtaEȼ%=/=*f ]]-'M8P}^8ۓ$00NgxSYKd613FFB DiS4v쒨[/ 3gg P)/]:f1MM-w PʲӧLnaثW77n~޽^pu5[bŪUDH ''E q\LM5߼HH;xxso˗?FBk\䏕+OϘasֆ1cL8- qfffm'[xn@@Fc2{511wppx1^NjhhtAL(%%!& zꪪl*:|yyy}EGG-_yҧOxHHݻEbz))0=•H$l>SWWi)%"| YPw.^`mH]]^ m^ X>cc5kּ]H<8pFGGٳg֬YZZZSLag111w[Gkb`RW:3{]BUHիmmm-[R]]d2 oUTT߹f ?(++"յT"WUB}@nfWc CA7@b@>rE{xAb 'DbLLLffhhhH|۷:::Ϟ=cKjQQa䬬,!ߋ3gV$ \kjJʚ3l~Ug~m0AVSSO$TT価ŵ/1V~_۷oܹsJKK_xyf+W&''WUU=<< ܢD:z:"`x'+X#%=Ϟ]URa~QAA<{y֬Q(KVk 66ЫAb GVX<|'N8qĠUV={sNyyy[[ &X[[GDDt:NgtXMGGPNNNFi*Y@1&/ S\UO~pԵ0+/k5&@ ܸqtVjA^^ĉ'N`:N ˁ::u(pAA]{y4;X|# _%JKk=mkDg}BMwwۇM^ԩs_khuyN^Y5 ka>` ʲ'!EE;f1㠟_\mm7 1 +ֵ gG  }OtS`4443,qq$JJ_ǺC:IIdf;:ڻZ]:!)ىZ/>N"5"45}]SYYÉ"3g?h*'3G5,2F+-treen vX<8PwMeeYU_ԵHdgo hаTHLD+7oa@n X<.,]SYY!D&S*,++l؇7n=|x otphX,sˤ9r XFheSVNg:F`jj< ްaE&9z_]g &g(Ǐu缼ϝ;BQ>bϟu?͵t7UVV:ՔD56 l99˝~alFƫ-Xj+(u-H$Ҕ)S,`3ƚ`\yZMM~׮F]z'MM1c)HiV[צdLL4y$@$\]-]]-߼:qO?$@h.^!(Bd ;__/--!^:{u5bbbt`+3FP@d H#iJZ[[>|׮]\ `…|˱ 'pK~L;kָ ?ts" N9sgϞw tN  0uu?XH$22 ؅>DUͽxw@PIIj7n٨ ɓ8WWW?|"&&~Сuuukv$CA#%%hCjOg;Gs֭k׮3իW}U8AlB}}[^L&v}i;v7g!agϞtЛ7oZ=[TTRQQ1++y]}}}5E@@1c B;vUMPQQ{b;6$$DP\Ǐ?^Vd2xcTTd~jvsXݝbK-ZpBJ_ ~kQW׈RR{(H2eȕ+ګO"Yq:>>̌`{~ϟ?cǎ-//G#455?Agdd~P(222yyy:'sﵴֲ֖K=*Z[TT͵]R5$URehhxQ Â---[Uh{:::{-++k[}aXNNB`0BCCH$R\\-.((hU6 IDAT}6a---xaee;{,ѣGc<% *++666\cR͛7/((MLLN<>֩Sz]b/g>Y_^I8us~!ęFʣ477~B0̻w5 fFFaSL 0uN 'jhhFIKDsY\g`xJ BpR#Gnٲ`ӦM6lZ̬m!~M\\|Y &~ŎS~~>d{㊊ ?.++§epuu---庻 TjJJʒ%K666 ^=NPӧ:;[뫈*$:9555|,~."!!QXXfggwIYᑔӧ7o < @@oX#~mJK{Ѷ>4mL&3!!!22u a?oI&qh qdϜ/_7_~? fJFDDhȑ#SN7xE&… /_366now8-ʼnc>zT<Cj H$:;;EKYhIjj۷o333׮]ˮvX;$v*?{O>edd þ~jjjtڵ¤$KKK*$1ٝ;wuuug̙SVVٳ#G^Œ9Lok׮ 8ts!Laa){ٛ47LZ ?Zϗݰaógm6tPqqqY]L&k׮QT@ C]]]CC#&&}9a5СQv-{/-Z75+VL8b 4hƍ쒶 ضmې!C 6nԄaNwtt:X3 4hnnnjjjx ~z+++KK˝;w666 zg6V__d%%%___*^lQ(3{ʎ5 ${\?>9aBƍ dkð\ggg335kP(kkk)]%22RYYYOO~VWWW\)--]__y>9XP{[^}jʔZZc)gQ;}|F^}!//;ķKMMӳ7/^sN|RG.޿*+4zt@bbܹs{K\VV'@` -22\sIK{_L&'ܼ(r ,mllڲe˲eDT'.NbBQQfȁ gh%%%'NX|c ` II1OMdejyMB.%Ž~aww3gK.]b8gy nǏ6lҥƍu,|8SaI/w i4$11;wܹSԁ#Z<)=p[PNNNgg!.S$2673 "bSN3:"G@b @0t+ָY3!dtf{CGVy?.WVuD`0 B4773BpNg!?.@b @`:\I1(h*F߹2FGk :[``UUf9Ν!"[`5 D D"_^lyELLlܹs֣>ĈDӧejjjSpC IIKK]eR&S8ގ@w5]8:Bu͋nݪC>H)S:xa`]0eʔ/2L JK?D,,<<<%EU)  D"UUU֮u | cc i̘18X,Dx " @JJjh焄':6͘5kH5 -Gݛ6fɐ!zCAWv ?~/99OFFrt#G@5ge|# -IK[,۝L&tJ3Ҟݜ!Cf{z`JPtLG<8~ dL¸s>"⪝ݶիcSSצ[`d}Q!''obB"O\u4Xh^6?'//5wȥK`Ǿ k!##At"GYY,99 8xZw &25C|@PEEnӦi uFH$CAdVQW_ܩo4:M@**Gމ}*oO0@_60 Rld2u߾gd*=ga=4X uu ai,O0 HKӠUW04hXS2##KH=F%{  x>]SSgb-#zUaKL&ln>} D00PHkn۷5 :l0Y^^J ͂kwbO妦ii.6׭n|}a5_P$deu⚐Kw5mɓ?$<{Ab @0dd$$L9o^le*g}{rMM}p4\]]7N{doۗfl~b$FSsǏ_#F\9N[[q͚O/yʀX֢ Ͻz1 m$ @` JJjVf̰]YUYY'@>Q0 ueJ&1i~Wrp@`߾fS+85 'PJKkB:ݑL.X}in/11@54Hðk +k` "LЯ=yR>ܰS{xaII?ÅjHa%;$++pQQ3g/7eϟWCN̵wSwC::iilm/6Ab @`4B֤Xt阴ut:u߉Lt  "f2Οo𓚚|z;Hƀ+:L\&&kW}{_0AVYYϹ!&qy1 S.@-Zs3CJS'HHMe˥. _iL B3W:^>k4t(5]Bk)h^:<399w̮55b@t?}sVNj-@5A: 2:L&`IJv}20}ffR/\x A^-@Mdţ{s+G%A'@b @llIe<473BcݖԦM4ru΍矹0%$P䔔c},i@͵?.1ö:--xb- ]]\qv.Y2gBϟȁ@FFF: zJYYG# Ǎ3 &#;\{5\ `ƙfdQX ^}C7mؐX\\sG @޿QGBUWkW{^ 5m㪳 5pX:ti4 iK__%8x˹sOlȑ~,Ĺs: .e2Y'r`]\\fM%K;rbb7Gzz5\ `)+˦lBw\$//딙):z8Hxug#f϶kT}=mѢ㦦Z{x =.w@b @H$qf,>^W^>;v x7s%Q\\L ؛m_<!C8 1 [>^OOeӦiBS !TXX8uT%%%MM͙3g>{sɓrݝ30 v}*hmm-//?|]v1 atWHtsGdg״}NW1 OHw wwʇ"*aiiKJJTUU17\_ŷZQQqƍǏK45Z z$2rl{ѣuttnݺu5}}1cƼz eee6Lw^go<|"&&~Сuu{aذaO< suu: x(ھ 5ndxӶO#=;_? BiiiMMMMMM555?;=@b}YAU|UUU{ \n~˜>݆>,,uŊqzB,,,ѣ`7¹˗:}CMMMSSSGGg.]8p`& USSpss311.++EW{և>H$̞=,!!l85س;99q^Sgnng=BHSS!?5)L^^trr_ss3BNjhht&w^yyyǏ~F-^XUUUWW7 F8q\MM-<<̙3 زe q`lݺU___MMm…]l)Ne"<=sntAAAjݺI‰,##ϏsL¾}֭[LLLdpœ9s϶wytK܍7v50r+W222ZZZxF˵{#bccCBBH] ;XFFx;s'O3g\JJJx zCutokoxѪ<-,K1xzzzzzvXb=zð`KKVZ}i"+A͙3L&;v !g޽B1 dXx'feem۶ ðٳg{`СKddzRRǏ\ޫh۷o ?򪯯?z(BӧOkiiYPP#Gtœuϟ)VV9\JJݻ}c|v0F$x B诿0NFFӧONY- ӦMx"~1n]ɓ'KHH,]"66!TSSõ{dPmmm1y[nQ(Gĸ#8wLJc Ozrr6o(;XF 9P\mmgb%&&999ϟsVBb}m ZZZr fFFaSL g`ddaYee%^ncccbbrIqO:ޫ 4)) իW<<::kwNe|dkuݺooWg(~^VZaXll+Y- w0 ginssׯ) ɼ{.^kn/~葪j;nܝTlvv6aP\wo C{g8Y'Ç Y,a0wq%$$XYq_ x0u/I$GRRҐ!Cn޼_***BeeeZZZ  hiiw!CL&sРA~<;`ǜ}u= :q>E7o$pd2]hatijjJIIڢzLVVVlٲV@xeݒ[ %$$ /_NPPQ;[QQQSS3??Ņ|;433;222.\HIIpݽ7Tk~аaQQ8 {Zbd2"##ٿ[.!!mI__sbׯ_{ҥKZ_oC)~=F& 8x%BCCD"o߾//mm2q~~~XXDzچ!Ct Nj<(sdC:Htvv9 ێvttlhhxAzz̙3wD{{{{_pvvv|Cu 7JK{GvɅ O }6Df<}3v(HHHȠARRRJJJn޼ikktRBؿg0111?~|QQQvvqHHa~~~sV9rի<VVV^vm!աϟ\RRsKKK(mn~V|V}k7@ݹs]WW02L ]FR7l~Qm7a_~555urrvZaaaRRFk;"#bs>Y46691Dd/]N8G'^bĉ9KX,֠A6n.i={JII 8088JmtGGG999v+WJKKs}?ԄaX}}%KTTT|}}T*ػwQ+v<^ECWQQǏgbM M&ym1&jinia%[^25NPua쬠`fff bmm?>GwAEEE*,%lzzz>>>$DFF*++oxyP(ׯܹsgcccۗm%Q(s}Cq?h0s.))g͚7n77F]g>|¡BB8VgmΝ+5cơwOZ!nƌ{xz{ "|u=\Ǵwa5n7k!Ctn$X7h%%%'NX|c}i$iGڰ!qȁw1П7$@ Y!D"Bm??~˗/ գEOsr޳ged$/{w`zpt p\ $**ޝSqν;g'MJېPRiQ#S IDATM5)ѪҢi4Qiv*"#K]z%q_y\OB,m=No㏫d2y:[QQ+C4-Ct4Aa H-Z4v;4ZBrt}n}V+//޸1۷CA55IRR(A{ܹ'̝;TJHȳ˗EVVh@:UB8aօɤɓumlt^ٴ鲗$kDGܼW6k֨Ȥ ^8c~~~ddd/^ph\zzР{|Z ׬ +*ee뀠'uUCa \9122i=Rdd$11(JJJpnݎT*yΜRRGjyyy QT㌒ݕVjx"VZZm`K"vtX8?i8q/ߦO߿ˉWTV$:Z*rs23Kp2DDt,͋`@oClzU__PDD~ST߱aѢs>FGڧjĜ̯_k::66:6M71Q$:#*(6*BhTŋݾVZZP'^r ʉ ֬w MMYs9 LYYQ==eƛHꯠ Yw𠋵)S,* 9َ,~K^dd\hQyxHc09^3 **@Ջ 91}]nlbGt({ *NXʕ֧N=./Z>|Bof5 |V>\a+V\1BɄ\ AtzNL+>>)*J©9=FAa ₜ!4sQJJOQjbϛw2MM3 O3aj6o2x5B TUq?ݺծۼy'/_UGG`'8xqpbbǏEI⺺ׯ r>ͬOx` gr3=Swxׯ^NHX@u괴Vz>)RR?<+t ))K< oD%'".ڹӡ k*3f{#FgktoGưoYp{+&B89joorz8?kkL& IHo z'$=aN ;G|=|n(7o]nU0''ӄPU5bJ4;1VVV ~ڽ{M:N`0XqcIJqԱq ;w80[BBs@ ;7iacφ S+ ~Xbb{`u`Uuu{4zbAVC*+k_ ˗O?ߜ>O<0a@[H$~Y٥a"w|+z.9JJJX LRTʌ5Ж-v˖M gGƹ[YHK s)**b2]?h˗/eeuUU ϟqak$U8ρk<{ 5 "s722"[-_>g<9r䞃è_~1BSwq4?]:0 = ;BIK KJ II KI KJ IJ "MTN/a}-)ʊ1 аs};LZkKJ IJ .j8@NǏE=TXs H)@3 [\ap @X Dք[YYY[SS/""bbbk׮a0ӧn방]{MGرð={pȘ6m}ZZw anś2e aYYYN\kbYYY]]# kD֖sh4##vΖNpuuQ7njccb*vvvEEEEEE ذaC_N[1EMMCtt#6huĆ#p SQQ nl'onnx[nXYY{;677i]YYMՍ95%..ޕ߅^ 4lWyD!Ǎ7nܸn۶՝lvEwV ܾ}d2BHKKkɺΝ[hw7NGq2p4Q we0al6^TT`}ׯ߿] ---OĉYXCCCy'N400|zڵc޺uRuECbMIKKww5" &cq} 0a7o|z CCCAAAyyy??jR0 oooYYYooo BBB!!!7TTT>}jo^cvÇ}!LN8*//o5@qѣGRRR 6gҤIϟ?غukm>ho**k_Awucjjj'Nq|ӦM:::vh'HŜOlA}ANNիW8WUU s/rWWWkkO>r~!GGSN!***!4}tve΅Cy;bxkWZ᜶r 3l6Εrx@@Ltt/_n޼ݟE^VDV 7o UT JKKSVVPVVF}>Ν{w[-$~?rqss[hҥK+++Z)6caa &\xq܉kjj"6mڴe˖  #?+`!W>fdh=={q98U5'XAAg"8Uu;6ny}6,,d6-R)3339W#c,-Z׬bqmgL6@"xsPWZႂvvvQQQ#F~Wm1Gg@0C!}E.ǃMsvv1cFCCùsZ/-- PUUUqq1BuǏv^i;̏j5@[\]]Gaiiݞə\P?tXy1’ nURb]h<""b?߇b,^e˖-۷ooky8dmm}ɠ ƖٖO>m瓬,L1bBӧO#eN_MPWZ...W600066)rCZZ>go߶Һn^@0|VVVV\\\XXѣ3gpnjhhhllRuuuw̫9C8!7奧"|}}KKKo߾yʕѣG+**.[÷-VVVL&so}YYYIIIy~\̵kmx`Ò%8 <O<)--uuusfffܸ߅ 6lؐm۶SN5A9 K.555n={Urrr޼yyfWWvŽ[Cy[bGI&UVVnٲe…܍-{zzz{{߾}׷W :ך t|y>|(ѳtE.eeeWWגW$%%;"##`0,--9;h4 ))%Kpk ܹoq;G7/roju.OOOtӧO2DZZzʕuuu-ܛX,6m6GA7ee/ykҥ&Mjfoذ՟`JJիt>KܫÇfۿ~:|)))yy5kp~-fy[a/Z^iM7;Ԓ%Kw:d۷OCCCHHYtE +  ְawv=۴1{lWM6憆r>jqvvFEDDRC3.e0=ѕX YWW)5s֠/_={ҥK|A(SMW]]WddD{9=zHիDX^x1jԨ 7QTTtҥADdnG>>hX ʹsODg(ƎrbǏ~fL`%': kēSU":t M(6':z /aADgANN+**.VXX˷J:WUPX4L˗9iY8+3*LmQ8RY"" 6=pYRWGih 3 a3fFI$`qI&de{;= k}L||V֦saX=qpbhԬ,B *1~+)lh #dCTQTADA&w3Y,TV&X_r>_ܼ ~,޷sZ>%6OT]] H$[YCHq:FdaC]f'<wщϚ;e}|u 4Z}{ >-sbb6cDFFD__:F IDAT@O@SZZmd̙'#عsO?hpΖ+WR~5dN:>>o՚5y L&ݻBNHBBVE1̶ԄEPX()I=:8pΟ=}GVag{M7o`o(8#?~]#렰>x޿_nn2"b[wk,HH:Fr@1PX苊o F,rw?uUU;q7o 7mKk#ϞeÇ+YXh k}Ԍ|\tz̙G11:Bǣ^y`!?[bb~͆&(Q'O> ޅF%%f8(m64Zݑ#q'O>>\oV'zKxTˎiiaC!?Υ k}TQQըQϟ_4q+vvGƎ:v̭+YY7G?y1kp7#Ϟ}*,l1bn}%8wM.Do=r|Ѣ17qpz޶[P( [c (eAA}z,/W؉ŭ[ӏԤoie- yUcܺF~#1ҿAa d 'LNt~{{}?thw߼~=JkNMMٮ`2ٟ>&%$&f?B!#Sjk!:Hm[ٳO-|4s˖YY%nnO5v:F8OUoPXӎH\zv 8{y]9jZd~aI&ܤNcTҳiyyFEUUD]]ZsB&N_PX>03 ]2n\LfX,%ϟg_򫖖\wcLSӡu%,,FL*P $En:,Y/_vpp~?oHtzA-28_KKvΜ_bb;v|`wu>b999݃XL|z< zBd6$762+~~KK ϞTVVݍGVWpaٳ 33Kƍp@5n,?xѓDN {p[ۑnXf҉-,v'Љ !(ubGz5 pHȒo*b盧M0ao\ܻ=9Ν74Z=A9UU=߼ydw%$8Æ͟j, k<` }Gw&:H7||H'O2֭ {f0uu'#"}Z3y#oڱca{n ZȘ6m}Z?._\II{O>QNg0LSSُ{ʔ)eeeu尭111ٵkW[ùTUU:xꬬ.>CsG7NAzjP[tt޽z,Zw ssn3ztq<,,LEE%<<ή(!!!T:::把߿u떊ջwB~~~ c޽͝;+ sss;B?zlii5jTRRrrƍCCCmllX,V˝ Ν;Gь:D\\|Æ ?N 1W(+{҈2PDE%)* z'm8z#.$X>cwqrrr{iii">~쫙JKٱ~+88OP^~ݕ߹[LqV[ʊdrtUUSNLt83fotEJK[`o4IƍT fڼ;EDt! @]ɓchDΘgbbv;vĉM'jժ|baa~zǽVZf07n szQ8}qqq***O>E999EDDrtt䞽jJJJ֭Ga:|pIII O?1CwАؽ{7gKHH/TCBBZj 0OOϛ7oJ|߷ ZgXxwLJ^+W̘q7^M}X4o yߜ}[;'Xl55'N8i&f;4'HŜOA\R^^۷ofszzFR .,(( Ar8eʔtЇ^zxUU`yy9Ouuun݊8BѱԩS3ӧOh/_FWVV"ʚ}eee[j6᝔$..+m:ӧ3`0Z ##˗7o*((|NF-f3)(+':su%%^q{gmWI.VyT ϟS(rǓB:7գ!n|-[B/^lQ[[qllACCt:zZ1=={+VlܸF2>xƦA=|qNtfff[gϤ[MtuWt87IMMPbb"sVkiisuN g3LZZWDX~}ʕo{& ]w/v_Q^NS0&)--a1Bn999~~~Ni_}i󮮮9s4ݘ+//YI&''Jfdd7Y[[NNN87)))aXO544 8suz-H Nqqq999trSLTMeffrc|~G[ ڊ( 4}/2`sEݻKOu0l G|fݽlߍn$d/`Xv///4g[CH$ɓ'nlYsz- Ǚ╕ϟ?svvNII9vXӝĖO>n%4IQQr:WW۷7]ֶT\8M6Wpk׮kjj5\UU(ovH(323K޽BtðݻL, ?>ٳgZ*''͛77oL__Rkk۷ogff^reъ˖-ksYYYqqqaaGfΜý+m댓&Mܲe… Fyzzz{{߾}׷WѦ{G>fcǎkDL >!!+}몪LMGD$6](^tIna6lniuekkkQQQmmիWt}};:FyxxHHHHII-YIIIeecǎȴ.ÇBͶuRRRk֬`XZZ 7c:vZ]]]AAA;wֶ|EMUeeeWWגv^idaaa:p&o> !!!3338.Ԣ{J@ٻVX؋$_2wm,{Ŋ |thH(,w(w;k\\zc*(UUiccՈD P||ӧ=LLfz #F(,ZQS8mAwD%)(gg[^huDȧNy8wbbk\*<|Yyy,gC nHgbMMY'cYY&ҺysMxolmOâ1(PX=&DD$d@?HIIb젼 bXYiݺ&8I/]z'"}00Aa '9;&&fggd@ti" 0 ѹsgs|T:v장Kzxرţ2Љ_TD/_Oy} o Ǎ_*47\`@O"3""lx $%"" &'Df0xŋc{Taa%ѹ@?5^lRPP'$--c`ߙPHs~;bcߙyyucsL@P(M/ x"6eJ.D!D͙sBUU8`^M9r^vv/]q΁o}q&!aYOfe^䩫HtySxȽ7Ҵ<=ϜiL[3ۘLsG{{O!: F3ii!!GR#:w{{7nJ/[6~֬Q|D< kp1cˎNws3_r`C5WanwG4b׮ zUP۔)#!O?ngglل)(bbg,$:ho" qq:*(E&&jj=quV3]E&?w0,h`fc3~b#G*CdwSp>\Lt:Aa ?PW9{I_In`0l8A(qUDˢ(1s̙F߾;vZ--Yaa  TTTuF%Yg۱:!33  ϝB(4ٱc*%edD ( ZZj*)IDMVVt5k_ABB5~e͛yd2I]}0y@ak0lܡCsΝ7'L~۠At^zz~Hȳ||d;; ,GP : mIM&**@t YgϞo9]K=sǏzz͚e, @%:mPX?hzC-?[|_zzy'%BBHI p4…;w 9q ѹ@@zŏo":萼  %OEE tĈMMYGQfRP':qPXW?puDgRZZzťÇ^Xވ^@;Я8>fKKݻ:Fss;QPt3."").J2e"@a 9~a@픔m05C+V\î3fGTV\Y\\pʔvvd2h{:uAA:B!ްuk B9=>#Cegw쓏)!$ kʕ>Ʈ#:aO?޺Ow;R(|*77<&յk޿/1CT=5QPXXܺzŊ c;vlY :3ڵWׯedKI Okk;r-*3Aa 0aftFrrނUT$ϟ_,-K\wwᄑ~=\~~>KK'O)*Ot4}PXΞ}w#%e Y@g斻d!!Kem"#####[c#BF"45|L&޽[UUǁ dNRUzu?DFF>{컻Q,#G.ШnlVXXXbbb׏;'QQ6 ": EVZ:{v޽γg{EDD úg=o͟oYCtySZ5+? .([*zz.$t ak }vD kټyf׮VTЉ ##W~]`o8?+qh3 DE$:CnPSxMt@&$48$,/?ˋGGjb6{vPddqz܎;0 ۳gwKXX֚TPFFƴi$$$8/_TS}>}R]WSS/""bbbk.&r9UUU:x.Y#t?}*$:BBΞ]rׯ`2D')8s7%$$ OGG'??\QQnRQQzBϏ`ݻ{33sv:^uuQ7njccbZPTTTPPp9fddTUUՑoذ!{wvv.vqqX~=^^^V|`x{{x{{3 Ѝ7 9(8Od鄄CBB,'a7olMs^=444HHHpr8ڷoŋ/:@40زgM+꺰DgXl55'N8i&f;4'HŜOA\R^^۷ofszzFR .,(( Ar8eʔ ʚm'NGq<))I\\7ÙQPP`0͛7[nwߺDݏdy]^7oF)Jyy9f Bnku˖-/6ݨ]TT866t:b=zSsΘxeeegϤh[X<{ܗYSS#$$9s6np--`Ο?k5i7ӈLڴizP[tt󱲲ju0&)--a1Bn999~~~N_G~|oWU+Y+ IDATWWМ9sn͕accCR322lmmL'7IݳUmႂvvvQQQ555ׯ_hkx~~w^[1YYɓuϝk ;;ØUEEߦN=Ot.aXv///Δj[CH$ɓ'nlYs-?Ǚc╕ϟ?svvNII9vXӝ8n߾ 555l񠠠iӦuDEE]vXSS᪪uBo߾m5FO@`errnz:o\::nQW;|tޓ'OJKK]]]oܹ-gp† SSSmvԩۦ6nܘnkkHR8#---}vff+WFlٲ(+++...,,|̙3srrw"<{[9'MTYYe˖ ;&&۾twb/0Sfq8uzҥ&MjfoذURRREEEW^M(!!!!%%dɒ$%%;"##r,N_vΝ;kkk[i婬ZRRٛov%K v3}ihh qnpx#88~Dg=ٳO˗G>~hq :aMW@+i9,, Ǚ߻筡!pD!A&fphoomb.iҁÇ1,C^5kѢ1/^d~&: ppm@ZZ>щOei9bٳ@$6oY\zII3$:1PX-Bhv9?ttC098 ^@tW`?Sײb?|hFC5J̟o_ ?KKsv-zol[5n+W \\~zh |\At(ЧAa `g'@KbAAn/W>n (x㳈(33w'D/'/!4s11_o~~7^頬,It"Ї5B}S)A@&++vkXOܩi :+`@!mikD;fuG~f>2ѡqÀ/_n': UUO~$--zh2.(TW׏kҥxIQQw^ *v3 N5͛}fw?*#xϞo~md4d #I$PWAa +7rɓ N#: I))yGݽFUUzٲNN&T*P@a _xXnn3OBBDD--#&&Ht(㠰ɓٳnW&: m%%Nz|BBe2D= k9k}#G*\Fp! *-,47 kKPX]|ƨ-22"Dgg/+?^dd]~~>sn5Њn9$)WHhY@?`}ѣԩSf267ׄx@+jG.": ϪjoHLz2WFFtt3MM t@~=*.}|& z9S(ZYꊊ(b  VV3Xs|Hȳ7 ~ˋq:)"L`y\SW? (YU*nHuZǺ>u\R'¨Z3m"UWq,A%*`*ͤ%pQ>qssιo.H4& k:7k'Wvvvaaat߶?Ϗ~.A%Kٽt kZ5;nU:y1c|C k0?|Z}v<#U{>%%_mnnxƍcX~~~;wd^aɒ%=ݻw+ k;ׇe}×BBPy244T"H$˗/B$OԞ4iҦM7///66=z400P.w|eDR^^]WWד~ n::̥KuA&&tǁᨨgϞ ,..vqq!B!VVV&&&jϫnxAtt4b2`wwe˖urKo۶Wp8IXoiii}e0%&OBȼy\Xwpܹܘ>VXXk׮;vBKJJ󳲲Rgu<==ܹCٳ'))KJݻGw^\􈈈Ǐ+ Bș3g N߻wݻccc7ok#5DRgos~B((( jU_B]P(Z[[;bB*HWr á/,,TOf΋NWlnn622U( .]MwqqILLT^+))U.!D(v?c #VVsߟ>^K O8#d2Q \bBttt:SJKK/MMMlH$6m:"LJ:vuurbѱN744 MII;vljj׻ڪVZRR3A`B0..7ׯZ&4[[[CVHssslllHHR4WP(<8cƌnW;="""%%>>>]Mwppqr֭[4 krr2<ŋ"##h"X,seee!!!'DEEUUUM:5##C,o.dj-_ VU5ҝ`05>xСKMM-tg5@_,]/˿'P/lŋ?FwZbJB%0DwxY]rERa,,X~/'ҝbZp5&wԼθ}4Î5@ۛzչvlT w(壏ݻWuMPX􋳳ePW_; 5@}4 AN",Xp=9y5A6رЀi?t7? @ξ˦;5fYNf歛7+@a nVb`Ba  c͚iOJJ4@a 1fyۛM? kaff?}@vs36eժ)--Gs5@1&8yY`1 ^YUUoOg.]OwAiii^^)טL{5 5ڲdZ('g6Y`EDDS@_?~|ܹVfgU ryXX^6L_7 keiip:&; n͚iՍǎ kgc^`_fb`0]XYpDA` f~eLNwo`0bbbgCHaɒ%սݻw FwƍbvܩIY(GM+/CBBPy244T"H$˗/B$qss#\|Y"'$$444x{{l6{ӦM뛗P=(isr (gr96۷o_DI++++++.K!ZYYN2ɓZ|||.pT7#::fee̝;7774!!>'``[aMZ #&O|xѦ[lyyyZ[[wn9d2gx<ޑ#Gdee_tU'&&RgϞ~zjJKKBr|׮]...,kҤIWQX ̙_|qO>@"""!CaMqvvwu_RR_?~<==ş}YΝ; wڵcǎyy{{ݻw|躺:TaAOO;wP{IJJmr#""?N=̙3jݻwݱś7o͏f~Ebkԩt֓'/hkk?~XPBTe!D,cԱD"333===_'NPg~gXuYBȵk EkkkcXr&\~rzmm-!uC +,,[r+677* $&&*ԓ" _8Yμ8-;\L&p83BݽWbGGG긴ZiKK3r̘1cƌ"P ܪDŽ]]?3ͶDӦMS=/|||cWW׾%W;0444%%eرׯ_jzkkVGW1 t!A. ¸߬_." 3f̠^R6jmmmNNMii)H$R ҍgϞxk׮8ph{477ƆP/5zow5="""%%>>>f<ƍ~֭[{5`=;k׮]5B.^XUUiEbHjTZQQq…9s攔(7w\>_VVVXXŋo޼͛7o\fMYYYB>{l֭FQQQUUUSN'O0aUHAAA[n]td+WxNJʦ?OwX=^bEPPvGGM6)ϨVT/_7n155UtV=1b݁""",,,:jjjڰaێ;>}9|oNˍ.vddd4qDj ߈= Eovw.U[@~eB;Fw! __dzP>y (77>,:^ (haCHEEt @a @#hkx4TEO:[hћtg^kiIHUU ee5ee5 -ss֘1O 5lm,6,OGIwPMISeeCYY̓5RiUCWVWV6PcL--M<Xn]\\4 Ϩ1]5oٍ04T&) A:5@I$L=N/..ӡyCvԼ1/111ܹsBYL&s齝莠I={_ &6yʾg~ɳg7^*(ȍڇ4En`0p={痸ffn⭭2^}A>tiiuCsjyc(GS&# 4ּg(; "3֞=gʵ!y5yCY7wnն6/ ~*koWde[Q 2Y;!YKLO*i=S  d7o k訽]~kiiQg* Ɔy SSC͞涶f75@a0?vnkwuvvV(!_Mv(/`0 B=_[3r cȑ#MmlF4s k" .\88cٛ6m\Hƾjj P t--FHؙ3ll#Ձ`XbVVVp9ӷO޻gJH#low3R[kn} Mhݺu˗/{?>JIDAT]18tИ1c\nLLÇGmjjej@[[dzxmmm,{{Dj)LuV{{{.dɒF52j}MP/6qpumm_%loo  7(LLLR[[KIHHطooA͊2eѯ|x wwzutޣ>p_Ft~GFNtse2[z +=n͚5'NXlپ}:ۡKbBttt:SJKK/MMMWWWEʜ1cƌ3? {,Y>|Ob~.Aa 0ഴxS=/ɴ+**z9!N*RUoBMii;!D$o޼o[[e ʮ^{ɓfBȸq#Oo PX ѣG޽3fBݻ̝;޽~~~~k׮ WV(RՇsrK$u CGGMFu|::L[[>'Wձc,X;tƌHPt^g::ڟ|2cŊ25BQoG?+d25O2dᄏrf ȑ#llLMMFPX۷Y60)[[ejkX74<犊gy##=[[3[[ȑ#llK==w8 B.?t?qsyg,,XqKL*F*j(+l(**]ZZXZe>j6ц !+VLǟihx.+QBL-X9ROO*;/R_T*m+*jźJmboo>jI/%cce'"b·^޿?Y{{;kգ׭;U_jF[zzVVʽmڶ4y5 cc=^Hoժ)|w|e[MSSCCƒzڦ*7XZXZe k}}K,&hG k> ;zT'Ww*+--m>vl͠~ C*BcᇉNN N7ҔƜC mfk|{ɣG{ђ +ѣǍg2ǘBQl6Moq #&&FyF 0D/,YR]]ۨw=';hnnxƍcX~~~;w?!{cW QJʟCC~u_jw &$6ܰA㏏ާ7DP{{{P<*H$˗ !߸B._,H!jcco^^^lllAA?zh``ڛQ9$޴ikZA@=]]=w`x}}[nn7>ȑ+..Vaa Lpi +**}ٳg]\\!&Bݹ\.u6 >>~۶m5::fee1LBKpp{BB²e: sHy?da`06l޷=Kb5O64]>X?~/MjH?zE L͛~idd$&| {U]gÆ wO}շΝ CBBO:ujFFX,>y lmmWZ]-VPPPmm֭[.]M+WxSNIҌ eO @WNN7,Yӧ5zcbŊ 3펎6mRQcdggYYY|ɓ'/677^nݳg Ŏ;lSJ@ pppذaCKK>333ss˗777S盚6lnhhcǎOv}΋m,_ظ2l׮]NNNFFF'NI{e@?o̼}XqݹDxx8!رct P(~M}//muf9S";q*46‚Ew@^@5ښzK>Xryo LN{t=\?ن7 ~ыѿ CZA` t tl8yZrrnJJܰ0F4; رdʀϟ4}GB¥CB?O4ӝwPXK׭6o~7?kR2Νi[,!#UFw:B /&"O剆zAAnaa~o`a@QާO*OK`Apx77[dS@bU/Ҵ4Qrr5CNׯ;tI[[;;;߿+WG{"?$%%ԩ->>aa~g{ ^}("~II(b2 pa ^Y(UV_45Frr^~~)m8cǿFw.xaǏ>vq=kloݹՁ' RSE7yzڇz͚imͦ;PXpD}15?\mq934ԋB7 kZ[e.*(z{̙saDw4xɠ .^,NM'O02­GPXNCó3gn0Z.[APXWW43VJJKbK?(mL)Shkk "/ ԥTo7` =u~?\;uX\ig7bL3yzڡnݪ7JKذO1ch--T kiZ(5Fqh13gz⛎ k (+̼Ea9suu5&fdQo;~ kQ]v[f7X,}@a 032o\rԚ?Ι3Ew럎ciOw4P5=֯_߳ ]]k= G6055\yyo~^jjj365@pD5QX.,,Ztx@PXo`0bbbgCHݻw F?c477xqƱX,??;wdTdɒ^95 kNP{{{P<*H$˗ !߸B._,>\G7///66=z400P.wK(//OHHhhhElMvPWTTtgB !MMM+++)\.Ùw555ʗ\.7++dB\\\-[a2m@@@@@@||m^xQ15P'&O{9ȑ#7nsBHZZ5UھDd?rHTTUUSx<ޑ#G,{{K.uXrezz:YZZZXXx6鉉T#ٳOiii133V<].ڵŅbM4ի5FDDDB͛ºIEN5k֔gΜmll7oX,޽{7ϯ!HRBH]]T*p!OO;wP{IJJ޽{q|||III~~~VVVvvvTTǏW(3gwݻwo޼?Gy CXXXXX hkk?~XPBTE]/55U9d޼y| ''۷o755 .Bbʵ\pbXuX^^ͦ]]]% u:]yf##\BpB>tD嵒^XBBacz =C@ d_" NNNg=֕rёzT^^[\\655rfVVV"hڴiE"uMKKKonhh2vׯw5Uu+ã C\. qqqY~=5---Lݳ}Yxx8ǻvځNVHssslllHHRGGGDBq3fP/njj8Q;="""%%>>>]Mwppqr֭[zh kŋUUUƿYhX,D}^SGGg}QII͛7?ȖV]]gϞmݺH:B:ujFFX,>y lmmWZ*R… s)))Q~qܹ|>0$$d]E ݺuҥK';O_r%;uT*P6m2C@ :u򌷷c? o>?? >fo+.LLL |}}y<-["""233:_⭷޲9rŋ -;v`X^^^θqbccʩ&Hϟ>~W/Jŋgddtww|^EraXEEŪ$Ox<^vv6BѣGwvvosvvڱcKJJJKK B(>>^P۷ﭷ z u떱{%&&޿?11q߾}1116lPTڝy<^QQѦMz{{$!FGGy555=|pƍx]!3?iҤTOOOOO3g¡CY?Fݽ{)ɓ|T*XѣG?3gr܎oF#?ZTTdH%vvv oV^$goɓGYQQuuuIJJ"^3gĉ\.a{ 3f #Br.\pB.P(BW\YjUHHHDDVPWWhѢ۷o#fϞ]UUE:g͚E]"dff{{d/_<,,>!N ~zLLLhh_|/[8dȐŋkWB vϞ=lْ塡 U*cccϟf͚{|j4Kbcc.\{n\Os4Z@@S'\F JR)pss[(ʺu.]ٹb bW_}ޞСC}}}g~~~RRUΉ'===B'NJnĴ'.cǎZwٳ'11177FW^ݿƍbD"p8p>|]66ؑT]]2e<0!!رc\.W糣qDxS222>ӫWKp3:g @477755/1 2dp^dIqqqRR 7߬]b;611ڵk )))NNNcx焄???|GVVVʕ+&M6lMPTTT$'';vʕO>E̘1!3!S(b}^GsGX?".\BRu/--]z̙3}n:())f{{{h8BT/+++;6GGG! ',,L[pp#G̙A<|7i4P(ܹsT*ոH9Rٳ?xH$RT~·L&BF899!@ m4\ǤIn߾}VVVFB޻ch >zD/(( RaXiiԩS;޽7x<;477xD!PѣGxk4qM>/ΝςB!"`s666 #GlfΜǏ766nܸԩSr\Ph4L/btU@@@VV7+0FڵzjJz~|rHz5PxŤ$&'Oܺuk֭/CG:L"H>wK.uuu]vxϯXi &;;yyysh8gO[eeΥ.c׮]\.dN2e׮]k֬y㳳WZEPK, ڸq# j]6;;{t:}Μ9111:>|ҤIgΜB}:t嶵EFFt!X,}G#}=hYf]pA}1=N{>}c֭;w%SppbbbF:i~l۶mVkkҥK5V5:+00Pg&  7 5X3 {{TC9d2@ g &05d@/}f|Ѣe_gŊ~WSbI`}f'u  r{гg/֛K93Be彞fu ScI gFnhV!By _*"93T_ܹ; erx P3C={[}OPx&Dz@ ]J^wO 3tw}mBo30t g)-n䫯ToTLRe=nhJ)+3^C+.M`BUTTKn9=x JWaþ>5J?Q5涎]f 9d2@ g 3@  r9d2@ g 3@  r9d2@ g 3@  r9d2@ g 3@  rHںuL}3d':UfILݪBpԩ.tʕ?U 1"22U0aX2@ g 3@Bl~_̐d2_~˗/5>u TO<Ç7m ˻M:!DDD.X4\P(vvvwqpp@3?b l-NoH`jhh0A;vDDD<|㝣bq^^B(**J,"0B1| .`6LGWUUaR>aϛg]]]vvvСCBt:]cp4f_jD"[ZZZ<==moooooo!?V*C# m///J /..9<~YJص1F3gy3 L&Da&jjj^x*TVWW75777o׿1ŅJ666$66h{֮]+jkk7o޼tR=δm\.1c-.W\䔐۫ymFuYYY#FɉfX6lpssD5tuu:99[N*j,"1 [zo!H6>C^^ިQLfrr21Ff&3W``,͛,Ybx֨0mmm,((0u-&c3 rwy'..nن6lXbb!gYfuuu;bq\C-\ g 3@ Ypʕ(SWa(BѣG.!sșeBAdJM]AF1m4SW(y8q3;??ԵXX:BGԵXș>\䔕2m1rf T*쫯jM]%:0nSWd1 gjmݺHRTʩS:l 93Tq *7BJnV5 Cw$ 93HCcSF:zMSdY gTF\y5cq gnJVoo 9ݸ*#:zTX">}! AR ggk_NTI3bYKTFss[. 5u! 3@  r9d2@ g 3@  r9d2@ g 3@  r9d2@ g 3@  r9d2@L}gΜQ*u|Ű9h0uF2eѣMYfR<ϔXxih_ B.=EEE3@  rJL P(/9! )@ x}W*g6m2 _[TΘLfff9OڲD"PAAqz{{U*UvvСCMVYYwܧlll\]]u>>>C ;vcЯo| Ιǎ3f֭[%%%ǏgX)))4&˵ 8wqpplLeBCjXl;::\\\^aXnn.*..nkkl6BM{C,38PT߅D"rhaB(::Z,!bqnn.Bɓ'xyp8۷߱cGDDÇ|zz1",X HϩѨEFFFFFt~,#g"ft„ &:9rDݻ'HJeuu5Y}]]]t:}Ν"HR(Ja&4|>8.>˫.//8FPUUakh!gpD'$$ܽ{7)) oillQ__2yÇ픟988TVV԰Yf]xJ :!D5 P(TQss+s655iد9燄ٳ!ٳSώ̔gloL&0ɓ]]]2O>3fiӾKw}aXVV#rrrY,v1 ˫Dc8R[io=Fd2RpXrJ''ޗSQ 4ϨIvd9&x@~Æ KLL$acG$`&,'-Zd^yQQQ'N2@ g 3@ ~FAŋa{`qL&xM r9d2xl|IENDB`XQilla-2.3.4/docs/simple-api/FunctionRef_8hpp__incl.map0000644001725400016040000000214613273140075017660 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoDeleteArray.html0000644001725400016040000003035413273140074017603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
AutoDeleteArray< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

Public Member Functions

 AutoDeleteArray (TYPE *p)
 
 ~AutoDeleteArray ()
 
TYPE & operator* () const
 
TYPE * operator-> () const
 
 operator TYPE * () const
 
TYPE * get () const
 
TYPE * adopt ()
 
TYPE * swap (TYPE *p)
 
void set (TYPE *p)
 

Constructor & Destructor Documentation

template<class TYPE>
AutoDeleteArray< TYPE >::AutoDeleteArray ( TYPE *  p)
inline
template<class TYPE>
AutoDeleteArray< TYPE >::~AutoDeleteArray ( )
inline

Member Function Documentation

template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::adopt ( )
inline
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::get ( ) const
inline
template<class TYPE>
AutoDeleteArray< TYPE >::operator TYPE * ( ) const
inline
template<class TYPE>
TYPE& AutoDeleteArray< TYPE >::operator* ( ) const
inline
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::operator-> ( ) const
inline
template<class TYPE>
void AutoDeleteArray< TYPE >::set ( TYPE *  p)
inline
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::swap ( TYPE *  p)
inline

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classVariableTypeStore__inherit__graph.png0000644001725400016040000000742413273140076023202 00000000000000PNG  IHDRp0d5bKGDIDATx{Pǟ- #` rBZE"8(q@у-W;2#hB)cKGDB&@n{v IV{}.Y}H0 -u XO >sёuI!B&srrݿa5"_ӃBrCBB$H$.1>'|@AХKДFmmm6 Hvvvr4I$O?. 9}axrr<;;9 =8z*A MkOtcc>fff&www5\,*8;;#͹ ###SdsssPt6? jmmm{{F { D5hii`lGGrW\gi4Ybb":^@Lzs_L>ð/VG}_}Ւ3/ׯ?x𠇇ǒ3!ߎ;_f&D{O >y۷徑DBleiin9ˇdhA4uX.!:Hf֭_O VDƧ>X,UD|MM~qꖳhOU_߫n9+FT[ AZD EVbhO33g@"}X\zWV6v@"jkQʢ9>T*kk799FI+499_DMap []V _!]TSsG&"n~06Z$,o(|F&G|SR"] ߏffݙɿ߂ښPGM{^07O,*:[J > |O >'|@> |O >'|@> |O >'|@> |O >'|@^CnE˅J#nB߮kwV>ݻw+!(1N_Λ  >'|@S}}}pp0!0 ٳ::S_\("1#k|Sã``` Ip8<o! ;뇆.Pel޼rmUT='N OMM%$$pܘJ_ KiOFFFoBgg'ɤў~% zիWV-F7oތ344d2 ]]]L&V@bXuuG޸q횾H??/?:={\rEřaaav˛Ö+H$2ȶP(p8X,[]]݆&Y]] HSvܹ{BH/^f,'777@000޺u+`ff&##ή*66drr o]g677VVVb˭rş~i___yy2]]]Refffkkjhh9ydww7r(6%%/888%%z|| `|YWTTt]5`>[7nh4N<} ruuE|Vqf||ᅬr:nmmӣLu bXV___tX4W*vgϞurro®]&WD"ikk;|uDD! ׬w^^^|w~FFFΜ9# ѦvڿLtٜk>y{hll,((S&OKKͭں7))Ia<Oanpppppp(**ƖConnZXX bp*XO6mmmm}-[ĹM6▖?K̑kkk𰩩)6 //0==z}Fl+++'''#s0vZ$H6l|\FFFZZZ\._LMMmhhPdJ/~94m۶)VGG7++\.wppۘB! OO|.?Xfe,yC~lllvv wjjXgر#99رcovHH6ՍLLLVU7-[ s7|s޽ʲMMM)))vvv0 '''+;r䈱qLLLJJʆ  Y xǏ_B^/ ccc}&/YYYrh=Hr[ZZԭeXݻ }Щ)ЄwF+ٹI.ѣjѳL4=iO >/_( Kcbb}vD \E#!'|@>&}=\)IENDB`XQilla-2.3.4/docs/simple-api/classATFloatOrDerived.html0000644001725400016040000030357313273140077017660 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATFloatOrDerived Class Referenceabstract

#include <ATFloatOrDerived.hpp>

Inheritance diagram for ATFloatOrDerived:

Public Types

typedef RefCountPointer< const
ATFloatOrDerived
Ptr
 
- Public Types inherited from Numeric
enum  State {
  NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3,
  NaN = 4
}
 
typedef RefCountPointer< const
Numeric
Ptr
 
- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
 
virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the sum of this and other. More...
 
virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the difference of this and other. More...
 
virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the product of this and other. More...
 
virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the quotient of this and other. More...
 
virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns the arithmetic product of its operands as a Numeric. More...
 
virtual Numeric::Ptr floor (const DynamicContext *context) const =0
 Returns the floor of this Numeric. More...
 
virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
 Returns the ceiling of this Numeric. More...
 
virtual Numeric::Ptr round (const DynamicContext *context) const =0
 Rounds this Numeric. More...
 
virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
 Rounds this Numeric to the given precision, and rounds a half to even. More...
 
virtual Numeric::Ptr invert (const DynamicContext *context) const =0
 Returns the Additive inverse of this Numeric. More...
 
virtual Numeric::Ptr abs (const DynamicContext *context) const =0
 Returns the absolute value of this Numeric. More...
 
virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
 Returns the square root of this Numeric. More...
 
virtual Numeric::Ptr sin (const DynamicContext *context) const =0
 Returns the sinus of this Numeric. More...
 
virtual Numeric::Ptr cos (const DynamicContext *context) const =0
 Returns the cosinus of this Numeric. More...
 
virtual Numeric::Ptr tan (const DynamicContext *context) const =0
 Returns the tan of this Numeric. More...
 
virtual Numeric::Ptr asin (const DynamicContext *context) const =0
 Returns the asin of this Numeric. More...
 
virtual Numeric::Ptr acos (const DynamicContext *context) const =0
 Returns the acos of this Numeric. More...
 
virtual Numeric::Ptr atan (const DynamicContext *context) const =0
 Returns the atan of this Numeric. More...
 
virtual Numeric::Ptr log (const DynamicContext *context) const =0
 Returns the atan of this Numeric. More...
 
virtual Numeric::Ptr exp (const DynamicContext *context) const =0
 Returns the exp of this Numeric. More...
 
virtual bool isNaN () const =0
 
virtual bool isInfinite () const =0
 
virtual bool isZero () const =0
 Does this Numeric have value 0? More...
 
virtual bool isPositive () const =0
 Is this Numeric positive? More...
 
virtual bool isNegative () const =0
 Is this Numeric negative? More...
 
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
 
virtual const MAPM & asMAPM () const =0
 
virtual State getState () const =0
 
- Public Member Functions inherited from Numeric
virtual bool isNumericValue () const
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const
 
virtual bool lessThan (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns true if this is less than other, false otherwise. More...
 
virtual bool greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns true if this is greater than other, false otherwise. More...
 
virtual int compare (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
 
virtual Numeric::Ptr power (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is this raised to the power of other. More...
 
virtual bool isInteger () const
 
virtual double asDouble () const
 
virtual int asInt () const
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isDateOrTimeTypeValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Additional Inherited Members

- Static Public Member Functions inherited from Numeric
static void checkFloatLimits (Numeric::State &state, MAPM &value)
 
static void checkDoubleLimits (Numeric::State &state, MAPM &value)
 
static const XMLCh * asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context)
 
static const XMLCh * asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context)
 
- Static Public Attributes inherited from Numeric
static const XMLCh NaN_string []
 
static const XMLCh NAN_string []
 
static const XMLCh INF_string []
 
static const XMLCh NegINF_string []
 
static const XMLCh NegZero_string []
 
static const XMLCh PosZero_string []
 
- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 
- Protected Member Functions inherited from Numeric
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
const XMLCh * asDecimalString (int significantDigits, const StaticContext *context) const
 
const XMLCh * asDoubleString (int significantDigits, const StaticContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Typedef Documentation

Member Function Documentation

virtual Numeric::Ptr ATFloatOrDerived::abs ( const DynamicContext context) const
pure virtual

Returns the absolute value of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::acos ( const DynamicContext context) const
pure virtual

Returns the acos of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::add ( const Numeric::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns a Numeric object which is the sum of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::asin ( const DynamicContext context) const
pure virtual

Returns the asin of this Numeric.

Implements Numeric.

virtual const MAPM& ATFloatOrDerived::asMAPM ( ) const
pure virtual

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::asString ( const DynamicContext context) const
pure virtual

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::atan ( const DynamicContext context) const
pure virtual

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::ceiling ( const DynamicContext context) const
pure virtual

Returns the ceiling of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::cos ( const DynamicContext context) const
pure virtual

Returns the cosinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::divide ( const Numeric::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns a Numeric object which is the quotient of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::exp ( const DynamicContext context) const
pure virtual

Returns the exp of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::floor ( const DynamicContext context) const
pure virtual

Returns the floor of this Numeric.

Implements Numeric.

virtual AnyAtomicType::AtomicObjectType ATFloatOrDerived::getPrimitiveTypeIndex ( ) const
pure virtual

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getPrimitiveTypeName ( ) const
pure virtual

Implements Numeric.

virtual State ATFloatOrDerived::getState ( ) const
pure virtual

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getTypeName ( ) const
pure virtual

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getTypeURI ( ) const
pure virtual

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::invert ( const DynamicContext context) const
pure virtual

Returns the Additive inverse of this Numeric.

Implements Numeric.

virtual bool ATFloatOrDerived::isInfinite ( ) const
pure virtual

Implements Numeric.

virtual bool ATFloatOrDerived::isNaN ( ) const
pure virtual

Implements Numeric.

virtual bool ATFloatOrDerived::isNegative ( ) const
pure virtual

Is this Numeric negative?

Implements Numeric.

virtual bool ATFloatOrDerived::isPositive ( ) const
pure virtual

Is this Numeric positive?

Implements Numeric.

virtual bool ATFloatOrDerived::isZero ( ) const
pure virtual

Does this Numeric have value 0?

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::log ( const DynamicContext context) const
pure virtual

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::mod ( const Numeric::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns the arithmetic product of its operands as a Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::multiply ( const Numeric::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns a Numeric object which is the product of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
const DynamicContext context 
) const
pure virtual

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::round ( const DynamicContext context) const
pure virtual

Rounds this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
const DynamicContext context 
) const
pure virtual

Rounds this Numeric to the given precision, and rounds a half to even.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::sin ( const DynamicContext context) const
pure virtual

Returns the sinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::sqrt ( const DynamicContext context) const
pure virtual

Returns the square root of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::subtract ( const Numeric::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns a Numeric object which is the difference of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::tan ( const DynamicContext context) const
pure virtual

Returns the tan of this Numeric.

Implements Numeric.


The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classURIResolver__inherit__graph.png0000644001725400016040000000634013273140076021753 00000000000000PNG  IHDRp0d5bKGD IDATx}PG7ܑ2 -Zf[ujUF;miEJ(mBM2U:Z@h(&~F``!&!d?͛7 (&.]pGĔ   Oy] 0,???""㩰n aѣGϝ;g|z fOy5@yqʒR__Oe2FEEE\x1F~d:!cǎAT*0ȯ8www[2+J___\.wOc` '''00>dggܹmbbhkhhxnrОz.T*!}TTF ,e0r99sfKK˞={fΜNKA{9SOCFa !<<{e02̺$22l6)K.H$0$Tttt```~~~yyyDDsrrJT*Ն lvXX|鬛 /lڴ92254yo6l>{,+WH_|1;; tB0&&F*dJi4! D"q\|dgg,3{HH9  Y<هDJIIQ~-`jZ, ֭7nܐJ>P(n~cc#6ŠY=TXPhIV(ӧΝK*J!O?tMM +W,J_~RfȈd8e˖af@\cǎ]vA+**.\hIw-9 ͱ\.7 ]t,USSi| BBB K,ٷo{~' XRL\GJL&z_MNNfXoll8|w~~~L&κr̙3Է|rX <9 X2;:LJL&Ӻ۷رcppN߾}aଧkYU*իWYfqwwe./j eeeݽ{wcaa~~~pp09;z බ6Em޷ >9._L&Ξ=fliir ,?x Ny2L~R ihh y[n]x1..߶477766V&d-[UJ1Ç3LN7Vql^t)3LBb۷og|M}H 7od={x">&<++X6l ǎ={6N^YYv%syyyUWW[3g6=0zR*l6;44433Ӳ߳ Z@C]xudݩƅϟ.G߹sȑ#?#W#gϞ}饗6mڔȕxJJx5@D l6X_[;͘lw,8:IhгzrroݛX\O]Fݱd4wJtOh/p"ц7ޘ@\'{'j sN``us̱l_9>i?.)))B-Z4 bZN{`69ϟ_RR200p͝;wh?Fq8?pB?%e#7oF)++#g*w?8֯_O%l6[ 9((WV_M͛7mٲF۶mvͥw}(##{֭pxMMM<ϒh_А2zhee5ke!///((krAD 'jQ Oy8SIENDB`XQilla-2.3.4/docs/simple-api/XMLEntityResolver_8hpp__incl.map0000644001725400016040000000052713273140076021017 00000000000000 XQilla-2.3.4/docs/simple-api/ExternalFunction_8hpp_source.html0000644001725400016040000004403713273140073021334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ExternalFunction.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _EXTERNALFUNCTION_HPP
21 #define _EXTERNALFUNCTION_HPP
22 
23 #include <xqilla/framework/XQillaExport.hpp>
24 
25 #include <xercesc/util/XMLUniDefs.hpp>
26 
27 class Result;
28 class PendingUpdateList;
29 class DynamicContext;
31 
32 class XQILLA_API ExternalFunction
33 {
34 public:
35  class XQILLA_API Arguments
36  {
37  public:
38  virtual ~Arguments() {}
39 
41  virtual Result getArgument(size_t index, DynamicContext *context) const = 0;
42  };
43 
44  virtual ~ExternalFunction() {}
45 
46  const XMLCh *getURI() const { return uri_; }
47  const XMLCh *getName() const { return name_; }
48  const XMLCh *getURINameHash() const { return uriName_; }
49  unsigned int getNumberOfArguments() const { return numArgs_; }
50 
52  virtual Result execute(const Arguments *args, DynamicContext *context) const;
54  virtual PendingUpdateList executeUpdate(const Arguments *args, DynamicContext *context) const;
55 
56 protected:
57  ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm);
58 
59  const XMLCh *uri_;
60  const XMLCh *name_;
61  const XMLCh *uriName_;
62  unsigned int numArgs_;
63 };
64 
65 #endif
66 
Definition: ExternalFunction.hpp:35
Definition: XPath2MemoryManager.hpp:45
const XMLCh * name_
Definition: ExternalFunction.hpp:60
const XMLCh * uri_
Definition: ExternalFunction.hpp:59
virtual ~ExternalFunction()
Definition: ExternalFunction.hpp:44
unsigned int numArgs_
Definition: ExternalFunction.hpp:62
const XMLCh * getURI() const
Definition: ExternalFunction.hpp:46
Definition: ExternalFunction.hpp:32
A scoped pointer wrapper for the lazily evaluated query result.
Definition: Result.hpp:37
const XMLCh * uriName_
Definition: ExternalFunction.hpp:61
virtual ~Arguments()
Definition: ExternalFunction.hpp:38
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
const XMLCh * getURINameHash() const
Definition: ExternalFunction.hpp:48
const XMLCh * getName() const
Definition: ExternalFunction.hpp:47
unsigned int getNumberOfArguments() const
Definition: ExternalFunction.hpp:49
XQilla-2.3.4/docs/simple-api/classDateOrTimeType.html0000644001725400016040000010660713273140077017420 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
DateOrTimeType Class Referenceabstract

#include <DateOrTimeType.hpp>

Inheritance diagram for DateOrTimeType:

Public Types

typedef RefCountPointer< const
DateOrTimeType
Ptr
 
- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 

Public Member Functions

virtual bool isDateOrTimeTypeValue () const
 
virtual bool hasTimezone () const =0
 Returns true if the timezone is defined for this object, false otherwise. More...
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isNumericValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
virtual AtomicObjectType getPrimitiveTypeIndex () const =0
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Additional Inherited Members

- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 
- Protected Member Functions inherited from AnyAtomicType
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Typedef Documentation

Member Function Documentation

virtual bool DateOrTimeType::hasTimezone ( ) const
pure virtual

Returns true if the timezone is defined for this object, false otherwise.

Implemented in ATDateTimeOrDerived, ATDateOrDerived, ATTimeOrDerived, ATGDayOrDerived, ATGMonthDayOrDerived, ATGMonthOrDerived, ATGYearMonthOrDerived, and ATGYearOrDerived.

virtual bool DateOrTimeType::isDateOrTimeTypeValue ( ) const
virtual

Reimplemented from AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/inherit_graph_12.map0000644001725400016040000000031213273140077016453 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x76.html0000644001725400016040000001377413273140074016326 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- v -

XQilla-2.3.4/docs/simple-api/inherit_graph_35.png0000644001725400016040000037557713273140077016523 00000000000000PNG  IHDRpbKGD IDATxy\3kvAA*֪ AA֥hUZZK]EAZQAeUDֺ,b@e=-ۼL4@$<ߏL&3g3 qףAv:@*0 PIvԒɮ  k.{{oP@{]0Νaz뛔Dv```6H-*0 P T`@ ן0aI)内9888;;GFFvttR<'T* q&&&fee͛7/00ի}jܼZ+444'''55}mS޽[OQ0 wyرcQFUWW۷o7"i.\p///F>p@_Ufaa!5sݒ(HMM]fǏMMM|򉹹MXX1aXBB޽{B'NDӅ燇3 :Y066V?SL)--AHtA777__ߛ7oJY@ h .ljjz\~Ν;}xgL&d^!w_xbݷn݊8B߿ѣz6-g??2ayֺziӢJJJd4x:VYYicclPrZzFb|||d"7ufΜy .+B%&&~Cd'PB>(J~~>0-- q͛7 WWת*bڵk@ m)JBBBO =:..Nɓ'e92--XӧVkvmXb ^1Tx]&&& ӧ&M^b۷B#1ɩBQn-))?422u֌ &yu jP2䬧ٙvsssss:vrrhaaa/H^qP1T}ѷ~+?|>_WW`P("b/i Y_l6ill~k8G<0l?~,^ɓ'ib/_++b:77wΝW& `Νo{.믣,Rs]zuqqq~~͛ϟ/).KL̙3gƍ,kƌ111p¹sfffݽ{7,,,00/^^]]}ʕ 6 BNp8MYOppMWZ%>%O2369J())200x`333KK˵k׶8f|>Lh"33Vy[nѱ 6m<o۶mgΜ!raǎƎ⤐0+++##@^WzW䞠A;@@ ۷:;;w.`H | T@*0 P T`|r.̣P0}}2H $''˸QTʠRT*CSӴ."455%/?JI7BUbUX幹e|N7;vx{= i&Ū*nnn=Öё#-Ȯ K"DBÇM@qéT e% s 7;8?B$ C> ƺd *`fe?|X5 rA?@.ӗ>/^jP4D|@.xu&^xbgggeH 04!L P**˫KNhkkJv@ AT^KKGAA%Qi]WSScĈrm440jzdz{?^GG2 P ,Vyg@__͊8ёF3 F0A_o {Ą  ,|aQQmv6Zf% % SMMsVVqVV1UN  su5L *@8Ǐˉ}?,ihh%r.. \z PT>r6cikýʃ@ zb*;7MMv@@@M 8J\&JY0 T@+~vvZZ0 T\$obB:`X;btx{C*Ν8z˥oJ\MWWkhk](]Al9ɉo\ɓ{nB*F ?޽/kv KfgWH.HWU+픔&9r>,ioI.{fdjs 2]vtSS[Tԕ; &T/455}_ֶr7n7 *Һu;P17nx뭷.@UTT]חBȱ~8<ܲ|{;qNB0%Ϩ+@…<Bð777SSӽ{"&NӅR;RkuܹӧH(xw+Vy@( !;֮]444'֔)SJKe-/^nllD={ťU#GիWwvvھؠvu _kk+BWիWuuuO>|x7n|WD#.\w޽{#""߿i+k%Rkoɓƍ𬬢-[ΏyC|DžBjP(qqqɓ':z׭}IG{k׮Yvm||[^t)##Օ\0 d/u&mmmt:͛&L tppoBnnn7o$g믿?zð7o|>_KKf#$O躕 WWW35N躭dggg5f̘^Y:;-kk[(>>>>>7o\~=hll__vv WWW(U*׬Yo8o޼I|_455Ǭ44HOےے6_s[TM>7BE~)2nƉ'ƌ?sp ruuDa6}t*//?x{_>}Z<_ hjj|Rra6MA>?efWWp "//NJ*LUNU$-\nիy-0$dkJEy*t8 R)';۔5;wO2PgvJCMMmuu܆֦O줲;w$N -[Fv*UhޠP09 T}@>Lv*@ULM۵4e`UҢРP=Gjru7*P1|07޽w踑][ xmmjeb.5ur+<T$C6a4iP؟*CK"u _PKzomH?ñ#G;Tӧ/yVV/8`D ƌ0 ð'ڒ],9ݻKy۶ZVW775ihhP(/43}||ɨ}  8 Q%*;TTD Q׭['`D\vGvxxbyyH{EE̟[SӜUA{k F3Ɔɜ0};f?`INNNNN& CPveooOv!@$k:;Pcnn šԜWYEEuĒƺ;k=bx{-T* `+.ݰ!Ν8T͢=J.}icwJ55,VUUaI{;OOO{ԨG nFb(*'!E$¯^͏qo[RW,V9_!58`dKJ(*Qp_?piFGD|0jUOKv>yRZVV/98a3np**(֭vワ_xFD|`oo*a"+MWWkhk+\ :T Q+/_fsIIݧN]fKX幹e|N7;֎ML~*(OM}}E_E&߶6^~~xjf&8vZZp' P4Q0 r6͕q`U55\|rSSSJqs0uqa@Juȁٳ=*]/>lu@--*"_?.Ǝv} {SSJuHxJ FF:w3N9‚ʬbbͮq0A쿎k Àj B/S\_72r`ݵi}J88м08  U@呑ljwOO;l+*9{p33},TRPPcGڵ\'@iֶ[wg˖~LE^ơaM@,|at￿&K}l CUxB c>_:݀28Ǐˈ᜜zWgg&Tiehhg5"!̸}{2@u=yrرc˖-m?Gp8\bOE ȧOTW/v2~֭#;;;MLL233B|>?<<`p>0,!!t޽'"K.7NWWRumS(FEE={X,// 6766=z!T__f%u+!68ZxqEEE|||>@jsykk^VV۸quu"]I4rMy<r];DWDvvvp\PxmmʼnB2G!P ۶mswwP( =5(teÇ'N!VyT.Pqp!j+yd#U2w577)Pe8w&PԩSy-ljk+v-LPLAkNW|W1T6$5SWWw֬Y)))FZXZZ32""Js+--ϟ\.wܸqHY^^)~Cj=SUtul˽ B+J˖MK>>>>>7o\~}PPڵk-l9{5ko=׮ؘ]N?Xsss>\"rd eΜ9iii#GKvq ԞZ^?POPSRR.^o8;;3x}btW999OIiooc'O/oSm2bbAAAyyyC æO.>-gp!aw3nap# {7SGGk3jw--~iGGGQQO?駟lU5A*SS͌ϳ>rP^x[dB?~o6ٵ edmmbm`0xzED|k%oo7ް'2M:A=TjwymSmd@7 Pð p8[ (#T03?p`ˬ{d48,8N}=SWRWǝ2e#u\&OvYzږ-ip`T PB1ͭom[S!UW755a@ CUX،E_> k*[>]r36 .9=DB28B C#_P(Ν5Pg f.$$.%e%J}AT)֕:::._,3@rsE(L &M0 nbڔJIIIvv6U  6BXAA}PmfRR%Z ';844QFXܺȪP9/>4nysz] uVkrM,Y4T*ESS*ojj6dSٙ΋]-,. uJ?,]LiiT Cgky`M8iӈ4@ D…G=rek݉ J2>_㏷vフ*ayyMMӧ/yVV/8`D ƌ"hll9; ϴ+Z PBAAUϞՈD"3 R@6棏Lq9th|9 P/ׄB|ɒou"+R1oKlkCr)(ܱ#cǏwsWii&'o]  P +⢣9&fG#0@-W04m~رߎ_{Ȯ -C+:pOJK̙e'հ@9@ eN޹<9y16d ! +OpnndT7WfyG=NM]bAv9@An@[/^rr]Ps@t̛wjp3 +PENܹuuܴUd*'WBtA +P~\O0$ PpJ?F$Vhd *D@TU5͙sPWW;%e (/b %'06%> P \**9`=65 H HQ\\;gA[[gA BIIƍ|!ܬܬhDh:==>]Rx╟A{{ڙ3tu.<TΝd2sD"DU+""6uR^^~}ԋTǎcsRmmM ("P76xz%;n݉K SAi]ihK/? .0TP5?<<`p>/ >~ɮ%(OoziӢJJJOٳϯbyyymذȑ#t:=--233!f:!ƣG"룢Fb|||dp믷~{۶mROwؿdVVV"V9s7\΀emﮒ]P JA/z@pm۶S(bkUU1}5OOѣGʼnW((!TRRbii)^ȈyzzxxxH5Kd^Չ bJKKKi777777٫l'''P[[K_eyMMJHTJ xPPP^^ðӧ ⡹9xcc?~,^ɓ'ib/_t]ψUII 1sN٫~^)Ӷĩo}[^Av-@Ap¹sfffݽ{7,,,00xvΜ97n,--eX3f̈Yxqxxxzzzuu+W6l؀266F:uDGGz5oڴ)?????ժU͞V.++۳g-F)˗/S`-]:e֏wtz!f%=@uV{{v)h"33Vm6}}}__3gرcczzx]Wq!$$;::¬e.A:CQQQNNNzzzĞhے<(; 3֡C7!m@)(bC^Sl썝;/{x``c?4رEӦ&"@&T0D"<99{߾+^qƟ~\dՊqt3lv 倁 7HSMWWɥLf d@KH{#*j)#ɮf`0̙66.)#0 PA/n(ذ!%,lF@k@;sf_ d:|,ee3fQɮtᤤ7'0 PA:;fEKh]i7WUÇ]x]0 zqcJii M :- cJK..Tн3g'%eEG`P'13ss}2T flr>4iF] jO53LUmp HfE8~*Bv9 mSWښ]Cꘘ`HSH̙e7]T>|s۶#FȮL?)isUW7]33槟N;U aFFFd2$sNAjJ xU */Lx1 ffΓ'O:;;mm4jɓ'Fc RWe2cx4NIYc2c!SUVV͵k+7--~i׮]'NRgLfRRx7%%߿o'!c|LaSS'|bnnncc!"##h4… }YɑRi ~'777{ӧO;88mٲX燇3 :LMM݋8q"BB?ҥKƍյܽ{6BaTTovFiׯ_sN^X@++㔔mmCղe''O xr.aЎ;$g"/ G8Ԥ[WWbĄZR3/^`X[n=z4 qf?@s1P@@9rB={X,// 6k766=z!T__/&@nnn_p/^\QQzUm߿NUVVfffZYY7Ե6ٙ3g޸q~n޼YSS# [EEދjh :D=zTjeYѸ*f͚EP,X 9ȃ+WnܸiӦ@x E\UZZȑ#҈9O>%ejNNє4QWWת*bk׮yzzkݼySrɮ`gggAA oߖۥtqqyI@Z,%W@U6 |o7ntwrHHHu֍7RRRӥe28cfB555BF999UTT:;;sfϞ-:300@ҒӄKKKiӦE%)z3x㍸8U,//?!jsuu*̬MRRVr8. u(~;Ͽ#rVQYYzꨨ)SDFF.[Llߓ IDATɓ'ܹsڵkq_qСCB BOxʪsN!K7gnn.54)kooɉ|JM{{{3{ *==B>廪" 1IHLU4֭[ɮ(ٳ':-iTEj),䷵z6[]ki0Ls0?}ej{uzGyji^YCP(<)SFT,_5CknjZpk,-0HuIM'TUz1P ,-,,   }++}ʊ3 _%$~@ .䄆&F{{E܉UHl_o_M~" ŋ߉B>[SZSTVFLpkj8/_[Y>` O®m5Lf d"A ӧH V|t|aa!qڎx^֝^ PrUΜ/}.!$444'''55dd2޽+S^^/{Ecc㈈>mܼo׍{n?un?% 'Pwg<cc0s…+Wxyy!h4ZtttpppO{`III'O&椥M2RwӶD"Q}}}Vh]Ndn?%졪_~yRVVd[dbhh+΀)S"AddF[paSSx_~d N|a?F۽{ӧlBuҥqZZZc)000%%EWLKK;w WPb``o>xu'NdSS'|bnnnccAyu;;;wtuj+#Oud,\x*PL&dիWMURRB̏=z4 ##>Cq|Ϟ=~~~eee,kÆ Ēرcsb-x⊊xЫWpoll־}68w<&BA<~:VYYiee.a/X,֭[fΜy .m lWFYB(11Q޷ P]ced3Pq߶m;BIHHq|ȑiiiO>O#nݺ8fqwuu"v횧'dNN<Ojfwvvp\PxmqS8Ϟ={ʕ8ܹ_1ƘK\\O;y$BHDU %??xD,b^+#լlp U ) 2eօ,*ΪU\`]Z8Z*-(2TQaGȸ?ۼLr|䜇Ty<ݻiii+V|WiiiɌ=~L&KKK/ uuuk޿sH&4=jGt :JJJk֬qss{qQQQbb;B Bl۶ _9h~~~=6)''d2}||B---[˗/߹s_~;]}aaaUUUQQQ䨬gqq1B9tЪUz%~ cF!,8}{ Q iz9f9bmm`hh?0L ۽tttTTTd'N_^UUUMMmͭ+ܹs#FwwwEеk׺qg.lСCN?YeooWᡦk.&lh>oj< K:9q(c@"6F"C?ߘkC6Ⴤ*9Yaa)nn x$cr[@I <*9̱Ft fFUUkM _WUYR< JʦĂW"ɨbTUTV2[**x/[9,^l0mmLr%2FD$T 8gс@~;ܹ-747 . ҆ׯn@jyZի\.׏@vuFu5#>vJe%%2y 섄GRX\pBTPP/"}ZSSSX@s9nObfhl0m##ȦbIIE?i}JN>r7.. J衊贈 Dlll89o޼Ç777oݺgرx*6}V_xcF;^---'NpssXQQ]]]usm[GqqyRR_" X˨RxGnnս{{[]M75/'’] Ui}uСW\ٷo޽{yΝ;7$$Pg͚}ZZZW/B&kkk555˭Wmc/FW{WMibbMVHql|*~5*rr*R>Lꍍ5׬b!+ ra7Gc>?^]]ersٝ=**^MXttvؾ=ŋ\Kt\PՁ4Q T*]lի~ ͛uɣK%?씖jllܵu*))eeeZ433~Ǐǃ{l}eBkh`'3fϞQ:;DsbŞDZZi˖-vvv7]*++Y\\LP:jժVVVniiVBh~~~;v}WeC=V yw7lQU|GRiD5~c9cp!@7s򹹹;IIIRRRúL#2?w  jjjڻvb2@p8K:~zUUU55͛7vȑ#շod2{lb+))u_mo|C$6Mw>]]Kի -D i j^ˉ%`9~ff&BhpVPPOoaad{WQZXXr]Te"l%q%  KCBED[];i" ṴXȌm(ee-[ aXjjG)7W|AAB3/_55 LSSDG1褤DD>zZVhh8a2 ߿$T1Q@VED&.X0vɒq&ӼAB',Sʮ]<5Q PɋL{x} VWW(HSÉQq=w(HbðkG>L),<  UlTU5ϟoEt D"jjjMuGut/\h}Q@ Hb#::SOO\cDG1xBy4,,(-PӧDGgC 2dQ1q=s(-PCiiCNNc+0,='OuF;~Q e!'&:}[IzddFyyڢEcj>GJ4sƪ+| U%&̹s->++kx({ə3nc *=XZߎ6`ͭ|,;¼y|3s EE9C@ ,IDG@\,-422߄LVvp0u PER^Z0o%сi/=ˌɬ0,\h=a<< H"-66LV#:5&&+&&lTyҼy  sf6P@Dhљљ] --eg7zE_}e  چ D5Y_:ٯa.*^r3LHj^^ mmGX->>7::V## |}]'L0EF|$T3nPbð[y10P&Vfd{Wmۜ F 0cfgwn⭾sqq944ZTE^TTFaa >;wD IDAT**E ϯ.+k=6m[ ӹ%?Ą\Wx>>QhIL,7!: qeccsOOϦ&Pss֭[}||ƎRiii򍍍/^۷'''߿aaaނ `O6 j:tH]]~@۷O[[{޽wΝ۵>k֬+|ɓ'mmm544fΜy…pkPE۷iӌDܸqɓ7o ws*++/gΜIBl6@CCc͚5x!acc})&D{#~nnX,ooo2b H$RllW5"'S': ޔܷoB}-- ÚBxOϛ7חJ}}}---322&OaN۰aCYYY`` Bٹի<}SIIIzz}B .c0 B+PEȫWӧx@a---[NNNӧu_i4ZBBŒ3nݺedd ]O?;͛ӦMC˧]pA[[[__!܌>|ڵݼyŋǎ{騨(ӧ⋡C;$TQ֙V2}:ݻwݻ...!!!f?DM<LOO?p>)KLLss+V &Lе*POޤR$D"͛7ofOR 7oX,ԩFD"***<==}}}gΜe'޾իW˗/6 V\?u"H ,`!*OMM=qBdz{{'''wJJ>vnll|5~L APE_囘dcmٲzƍ={۷w-nٲ}kkkPRRZfǏB,mۆT씓c2>>>>h~~~BBE-#: 㢤yy\ޝ$)){a]#2ˢv#GX[[+((L&ðv///wwFs΍1B__]SSr'5Pk:~zUUU55͛7⋒z$D>{niy5_}5XDW||֍LBC".:V$*\{x($TOJJx$TWD2@1 xc)++J*f@`WW((9|x)с:N"Btutt$T%%HhҤQD"ʈD$T}[lf 1uTCς9TyS4yh0PP֙Yng $T"%'SY,LJ7o ttJb;;$J6B T P C1C 0II#F 51!>JIFFz  ݻb@ EE55-P@b@B%ƛ7CZ[> ! #)x„D? ͛"I -Tj$T$P T$--5a!сHxjn$Ot *i=  UX,NFFHOP-35a$T(P-90jс'H–L0a%'lma$  . 4Z!с/_~l6@$^ii)Q TсJ6Lt >}J`Afϯ^Ht bOCCCKK !;{ٳg?ѣD?\./v¢̙3 , (@@@UHRRht'>~Դn:uuu===//v6c``f/[PP@"w/$ƍNsΨQTTT~G&ɚ, ݻwG/ L³>B;v눈})'c={XUUɓ݄ &%: ԛ?w޾};|pzժUs),,LOO:r䈯ezzzFFɓ0 !Nޤ+Nr BðӧO;99۷sccիWB]lllD544|ǡrrr6l(++ D|2fŋwg@?_-!YڦM7Bt lS^^yׯ_f-]ٳ]3w`` RTTd2̛1$ABTD#:IP[[[UUU^^bŊݻw#dee<==)ʡCVZqA BPmFBÇGݾ}N_pM;::߿F;88uS`'NHHHHLLLOO?z 4)''d2}||B---/!7rDG!z?ʣjժj޻ jjjڻvb2^^^:::***Ǐ>(,, uC>yMׯ_yOdXJJJTΰayo;wnĈ! { wee??]nnnQ{@p`WJa$$T+/oc $$TKK+"YYb8Jс@s^jbBVR':bIIE#"Қtxtfxxk/LM6nP$T0,=l8W޽+yC:;Oti6B(88`@ VIICcc+P\,::/ݻqOtZVAAo VZZс޿/v\O @dd*È22\]ݢ> @df[YI o %:]P"3J(*;b+&ys~QG{;kݺ--PSS":'C3])XMn}3p@@ϊjN# ð{ 36$:?yhҚ1cQ0AB3 \FFT@槟CC߾iCc'OBȰX,`Pg&&dWW$\z֬1D360@DHppQ0*eeUױqq>>~aъDb *egWkEoQ([rv9X@AB&qVW7]{m8ӧ]$T~ʪDEsժUTn(++Mt8 SNN?ĉaخ]߾IYyD*((cmW +-,Ġ{o/S%:+**RWWx=&L}ٕDGу\_ȣGOnLt,r^V?/W Q=T0,/J'Pjlb eW)S xby{{dMMMooo|3t sss SNݹsgԨQ***?cGDD(**jkk:u !f}|| 444֬Yq MMM֭SWWjoo/(( H7nK2 EEŔ|5Pu;߽gϞ}j3Lf'ѱ_PPPo"1 ZNNN%%%鶶 k׮!\]]t+WBuuuxԖ.X,N۰aCYYY`` B2===##c^^^ǰjժ9s[YY9r/p¸'OX, ---\._@_BE3Ӹ\M7h$:`B533įǏNNN0k%ѣlpcƌ ¯)--MP𗡡xt lVll,a-:u@*dgW6LD͞;SJPwYTUTTaÆ!dee?76p9//oӦM CLLLksssss>R]]peeeBHZZ144:&&(D̡MNNN>}J9ىNS N'a_wUL&;99CR'N|)2,--]TT,,,D`{{{==~G&H|Uaa!{$qwꩫWO%:0 q4-==ϯuvtttvv1LPKK) BٶmF YYY777OOb rСUV}P3lc<<<@ Gg'Jj[[ƍ7ƌ'Gc!=oÆ /Ǎw~<|gϮZa_`/q /^љ4iϟjG}t:T!ap ?dd-Xpŋv:FFfDG{I\.ws=x J{no ǷIwEIU!//3jhQjPPҍ:r8܂o_{*MJJDW~E{{{EEō7  GNN1"4N{{_o`ѱGUUsllVll_巴1tݻ3E;wvyfŊ}ٳPCԎAe8۶:XRRJbb2cc23+ 7ٷoѴi&d|?*$yls֬Y DG3HSfDG?N=ή3dlϥE@nnUDDjHȻz==ٳͶoC $T>hhhi%9Wğ=X^^UXXʃTj%KƋT_z *V!y 1vcqnnvDYO)|W,7i(8d AnnBt Ŷm TTu#:ORI$}±[M3< {P ?jwAhvR b_RٴiʕS55 $T>ͭ25%>fd9 F˿eE}[<}εE222! /a,1X;?`YFƒaXLL֯>KI)4iTpV{{WhѢs8W%Ix uZdb8w)V-"_> 3byȐ!t_b(:P_bP)rGWayyO?Ξm  HW<%lOϻvv֮FT v/~5ZCcؕ+k,Ol< LP*/ԔNؙ3Q%%7nl vNBBWܵkMde @U8ޛQvJO?98dv?( ௥K;BC FP*/z|bs{'O1B))%wkk+'46ֶ/D6|C`/=oLnUK@P%Ӯ\?uyH5^W[))%GXn:lP$/ZYy,v;;ٻvaoor!7JK+ݸ񆬬G;,,tByyUUT4 LGNj&&ݐMU Ƌcw횯*oNܰᆣ;w6(@ABZ* IDAT<?xވ͛g ]?ٳUFj57ԴyEғ'11Y[s_??>zt7f . _NNBHCLfѣa..O7Z!__>~qz{a bjU 6D_F-Z9v]]' ];P/?Ԕ,uUׯ>D$+(7N[AAIoEFw׮^@@BΊ&PNXJWq8ܭ[fnڿ@AB Ì5/<^(0  r%Y 9$PF㽯^e}'H7oZ$̡GAA*ON\^NNPw8mM;UT *C폂jMsɣx_ȽuCCu"d$ð7.\H" zSCAAtOEEʕ+ &M^FUH}V_hhhЮ/^&&t+ΝzCB*{ 4]__occ_?}T8D YAA BH@F~)F!uKvHs ?~<2<<|֬YBh/v¢̙3 ,BQ=>+(VTV{љq{͸-[n\9E47p8`ި{y655[N]]]OO˫6lo޼AH/&ɚ, !t;vt-su:""jkk:u !f}|| 444֬YgόUUUOw{{.666..MMMUUUfff]))) ZZZlmmϜ9_?~y^^މ'xLII~?"_.a<<~ߺ6߫ OݕY1 c8kh`~rqqqqqB(??߿?a씖P(xPcccSSӀ^ n ^433įǏЀjlld` $$$M3&44/ŻFcpl7FPPP|=>+(_{LԲe6y租SRJ][/Н"DKHHaVWWs8#NN&\BԆ{0JjkkH$4o޼bUUU2յ۷o'M&''0a„]fbb_X񿝪tttBRRq}^ oX,NYYjh]%,,ՄS\ƎD"޾իW˗/'EEEB]]]CCî333yl6!T^^qxðׯ_#.]zٮ 800b)**2LWWWood]*_vx6-D $Ծl.7g8?sq$Gq+sӦY8pNNN[l)++Y\\LP:jժo;,,*** >|8Bt:… 7~:qDBBGbbbzzѣG/\ɎN999&jii8x BP(۶mhPl rjWϞQw;w Pu|6u%KʅOs#>ᡦk.&f}}}:uTaLJndd>CׯWUUUSSۼyskk+~J:;; 6.<<۹sF奣ΛEs-vm*BF>5K>+WSRBco9?s0onO}t|!Ƿ D ¿:p}S\\;z4?{uM ӓǴ;,&&+8xXgSPfhtXK'ki9%$?qɓGfaʪ.,T12j&:$Ծ), s~areeӷ~ q-;v]f:' Lf9qqqqUUJҰt  A[[gu5_`v+&B^^^A rNZAkog|QjTTF[[y,&NnDG=ŵ뙙Ȍ*srlWVߚe߻.66Lj|EՕ jJIFO؅ ǚi6\zzS]$GV54Nf|؊ ǪA+H}PTT?BN_ZBBnjj?s8<)G߾Z2rںuvzzD 5o1f?޽ntKM3=!!!j%&' ~U񄇧޻ "iNN>L6lȚ5֮酄}"##@`><`gk| !D-Xpر=ܪFDjm4q< [o5556|W슘| !b;va`v~9pտANN|$;HUXX5j^kf=w?B+WSSKveֶ<888Tҥ5YC* "+X,h=jeeSDDٳ_r1N k|}#won.ܸJJC.^\t R FRڛ7_1t2b{k~T8 ?ZZڰu۶QP#:"*HUTT3gfλw_o4SVV/!]<5$2r7*:ͳsg36 jg3BB޵vZ5/Ԝ9gss"ٳ'޺ͼyFDZ7I]yFs&&dT{Lf?>X B6 rCаC՗/K<.=PʣͭڰFssk,OH R Z24k 3fe-n^^ՙ3Q^^X> Z82}`; sR\\7rdr۷rwd biIddƪUWM 6DM؁3*NFFTV6e{x tA*//m{vM7=<:8z({FǞDzp ?iӬ{7o=fs߮\9e fdݻg\+O8s&ibݻI@dee_|Ie$P{@ikӃQQuu-+W< ~`kkx~WK!!o ;th}^vʦL{nbÐlDGd*'͜iڏ xR޾-~x4jgϟv'tՏ뻸 FxommK||[ϖiogsq]IozW І`0ڃ>z{EE;ҕ+MMm~T&9~%K?.@RABͭhSB yt͐!kҥRSsXjի>y{AB^yy#mBPʳ+\]' eeemoYY%+++W m;Cx;%%P M`YYc@_w/--k^SUz1=C`xyy5JAAǧxO>2m4==V^B99w"TQQYxqqq1^쓵jwhz%%#0 Kqu_gDjiiS@CCk`feeq=t/))~zXX7,[211!TX_~Wr߾}SN]r%211"!!^W+!P~>ДaollV]qB*( }ªlѽCB߿>|} ÇQQQ! .xxxoDţb0!---[ϟ߸q FÔ޿444W^ӣ]vOӦ ~ 71ZԦѯ>~~--uԄp(++/gΜIBl6@CCc͚5MMMxu֩yyyH1chjjzzzvtt X,7LfX^[[PݧOw^ vie˚@8 v45fdZLL֏?.КT_ߨcǖyqX]]9sϦ_?~y^^މ'۶m+++KJJ|ӧ=B(==dllaYee%~3::z1۷o\rsQ~|ϣgTSCR *D7;̨wH.EEAW%^BhiBHB0@z+$ɄlOld˿A113fdff} tҀ[rrrbH -rسwz.YEeLLwVPP{|G4+!v*DzJeHO8aDRRR B %$$Ʉ F -s\``~JwP322BNG5gVXLvvv6221bD~~~CBor;sx|E||wˑ0 t)`|}!\Zc#eJJ׮Y'%%1~Z`cQEE%//|||bĈ-[_W޽[rɓ1 {ꕂg8xnٱsmm]…6<\n 4CsT*ԩSzzzf 666Z[[əUUU10`ۿCCo!C(((޽Hܸqc~ m۶׭rpp6lX^|>Xvw͛ɓ'x񢩩wU0 @ǎ~VaYYӧka^"00eǎm}aaqѥ۷m]gڵ!gg箾PVV&w|:NEE|7B^vh=3ʲ'jpq+W͟lZPPcdzKlS l Rj v{y/_>NDw2([\\}󸊮]uuM6\i(Nq#ht-.Y8zMI Ѻv2c7I""?HVQz0HVaOdN[NH( rvщZsrtq~OO|vrm6mf nx˗/p$\aa ԸEp͛FpW'v옵`A7:0̇?p;w61,0'P֭[7i X\aaԩY4xmmG~~I7oZT:LݺE7G-.ֵƝo;BO^et~,!i!ĴB9c[ yzm2]]߽KtɔW7p*,,k{]F[`_YYuw]wP( CEۛPTzDDV)zˊ22PSSRm3VRRrFJΦ!*Wt+PjlTTԵ6N>bc?QQݻrJKk׬%,,[Uyb!ߟ0UAفsr8v`(~}:g|ʕ+>>>߿8w= tx|9/&&kkeˮsܹ}/'M:D]#$SԈ3gꊈxȑ# q``رcutt=%%1߿7?t¿}17w:gP3p\sQlQQ;<=fʔrܫ5'88nyWTr,ٸтG,y=ONNNxxUVDcc7onڴӳȑ#!yyyгgψDkךo{:,--;k׮I\6Otwgu]Z;/Yró /pqիoXq8W^^khxv"hasNJ:uJOOORRR]] Dƍ7`m۶Ց3ghhhHKK|qg6ӳmO0 !d}b56}g99E>쒘xFVV˅[wmø$/} MMMMX~  @ Ԩ3ٚ@uw;w!t߬Y#yMtl繹^mlJ&Sssk@#q 5<;A^^kׂuUWkk;g/^q#-w"`3+,ә(BywRA Y"PQQPPr Lz{'h7$$5>>w*H?|2n`NFKS8G/QQ 5{ 53ܯ_bv+))ӧWt#rcǖJ7n=2:Iee,l0: LbXTTy3%Nx$,$$͛tΈ۵˱-sc$m WQQ:n\+KJ>x:Bgb.={ky|J_bCA6@FQQ&)@II SAA)jj4)0**i455ߙv:zgɅvv7o k3@ ZEE>!`!, 6g6m޻qHaw~HH?Q~ wK%%|zAeTugQ·R4{6[%%ķosfgs٥cwÆshl jQQȑJ=v"SU0YY+Nt>\iǎY\7µm۞$$ۛ[gJ*P=r@у;&$$uTMEd_֯ڧo!~`o\\-1襥z cTzhhlMzxUW[ZN:,`#`[7l jYY-B+/Um"̈́ŋp] Nllp;vP(S<< ۹s# pAjQQ5B(?rq:l;w&'?yr98:~/*Rذu듘۷-uC: *utỵGF8im3Y_~zW]cƴ, @:WJ47{UZԩ;Db۷qǏ/nGI8ӹqCEEYo}~u9(zW]]߁<[[[@zA988;z()GFFbȐL1]RRNNBBBW.?JIu'<=V9aMB..._|w=ׯ###|5 ._(~jI QX訶׭1pxaϞY3AF=XjkvYvZ\΅G>;;F=eą &]}9(C-*RiPCC3dn?|2w1;檭bfEdΝϝ"ܱl <'=T V[(""^3Fv8-&&d.b%soWRkڼq||]z-LC-.0LEEizrtt;㽯_G._>o>PWtu Əgs\畕ծ\y=-^MI$]cc#deeuO"sssuuuii's2tB-[YYKG+nB--%"%BuP RR[7._~@]ŹϯXzmm+zݻwƺ?|!U>qIII999EFF[, P; gPQAz$MpPXXc"_]]+PFp|k3f0WCC3FuX)rP9znnكO0@s9ʪU7e)(tᅺ}}}k,--_N+**XvvvfzQF/XAECYmHMInn1>h!ĉeopGQQq!UUՙ3gΜ9˧O GjAAB󥹟>e̘Akn>{w1B?pqPnn7eluVxͻxb^^9HߴiSaa#B͏/^d```mmaϾ,,,̙{) Bk֬>B1 ;ի9a닋~B 0kcnZZGTTm999 !򙨨(yyy >~8` aNǘ}~GDF/sڵD"ݻQg}mQ(ٲeW :@۾vHl`݂pzOכ)vB0JFDD9sFWWWDD5-tV IDATدMMM$F}u4jii1qee%BdHrr2G77Çcz=〶W0lȑ800pرUUU 4HOOUqP\y|qnL($ԮJRaآESZ}~G6qaw*sBRAzzjaaoW49Uk#JJNN䤺*M]]:dnn0qq񌌌[Hqݳ!555BSVV۔)?bEEEܹǏ4mذ^XXxcz<~rrr!yym۶>}:007!de?#ªJ~..XLGHDDdժUnnnzzzAAA%COL-?݊&Ԫv9 26/wΜQ]4''N,zr3"0 3779rرcBBBB ,w^֮]tҦǏנJ^^.B(>>رce˖]tаyёBHII5 !cY0 ߿>|8B!TPPpƍsq+{rrJǎ[rMMS=sT*ԩSzzznhh0BIKK3spp߿ڭ[̔ZmUqݼW>}t˼y:^qNO/~vwr+8 Ö-&!!7{{r,7[ugk׮Eo]Kw]]c>|HCaEEhGށX]; D}ML,@&KY%ΜY߾,vTV֙ߕtt)-))+WЯIpq*(wPƢGz߱v hBMO/FHHIʠܲS5YaGN y5k&=9A"5YX%{kt!;m}uʕ;v9s&cЄ_ѧH%E9bb"K ydYYI/gf!@жn}{Ǟ.Z6 3f0n=,.&2]*%%މx|Ellؿpj֭3TUqk;h4_=ÿ|}PE Pȵ Lt&h83DŽ[v-Nvq0!oOn{@O! 5; Z=_WהN8uB]t(Pv97oЋ7߳Ez:/{Eq53DHHhpVT ,NLM%>2VVS:>m7n߾auzҀwRbbDENՔowP1ALYY%BBBʵz>22wmo"Ϻ ҷoEnn1nY}vr_gWryDcɅ)^^ RӦppXgl|xORwX7#n<}ɒ1ÆgppppppӦMP(nPBCMK#,s==ؼŋ~shO<36[•+fw:D<%%%K,]:fҤ^ P.64PdZ>+##5Yt:mW 6MMhOHJ{lHws9o_ llN2Ǘ#۪LRttSw-}C T_nuǍhB<:=GQQ47os挺sj\>}SՖW!""v)oTTڵ5Jk+>>:]mƄLzz={gܵk')( P}[MTN|J&n61 _pر<:9E^xɴi#:oP^Nz4󰪪 G>cTM^-Lj^^h%""O2**-ck7۷W;*&={ZZ.DIM%ܻ=o>aq;zZj22::O['#|3QX}mKa.tUTndpLL #Ϟ]f 1~%TÖi4+VvfٙvB~~?x{y%䴣,<Cj~}+*H-j||~{r+*Hƣ;lQٳ r˗ko_H׃0hP6\)" Djl71ImoFc7n^=A]]6lx_؍v0;iOx<܊zr˫sERUU]aaU{%-x{{6p`q1o{\~ժ'O.RG`%T<k9ޛP=Ɏz߾޾ph6 2ufo;ع7()!:mԩ6\ @*B+*Z3X"ϴ痨,7vl}roDD Ǐ/2e8׍ ={rrRmZ@@ @ FU ƌa2.x͵kFF#Ə]T夝;ϚutZԢC\ׯ7:rdQ߾}w+*Buu -| NT~Vxo||w.$:۽QDD>WDjl\ol@&SJȦ!_+de% ;q#XWWH^ rsկ__ZT[755 gά~_1dȀ!_+i y+٥IsKCr>"ƍj~TȦV))ɴ,Xگ튤[X7xF";ˀbLΙ3jF#.NҬ(ڃ-W;PJFF!"1$ .G T5.())v_Nkkr7~!@ Pf(UPV3HK1CKZժ;w>((ȬZ5H""߾#+|.蘒7@*^*B+/cdJ+)?gΟj?/L֓Le]ԩg:dFtDl&$8ZRB&&2_KvCxg0 {06aTNĂrwoo#߿АCaa! ( @FQ(TEK[cB{4r 9ð\ð?[..;۵>fR]54^E\hj>eŋ2-^eȗ@VQ.eLM% FRiuӦ`v&hsV ߴ4A.Vs!7l۶o5\M͏YY 9d2˗Y-(|.ma~͹}3+W.x%-\xYXX dSDАԴkll䴑,Kp~=-ГJB%$FTiKv]]f<.M"anu's|#/_N Bxx8B::f21Kj%$q I8hfH&'{_!GRήª۟fd߾m|\ﯯRTTv횥tzEE[w$BD"!_CDNPZZL*/_FP(t33goo;"L}i+njNӧOɓ'{ܸqRRR8;[}bS?~6mӧO V'!!ڵk8NMM !TSSôߣG})SX\zԩbbb/_ZZZ6Okjj;w!7n=@|3VT̤p8V}M 3ߐǏ?Ϛ5RCC+F$|'-k:#+tGDb.>nQyyy?~СC-غu+D7՘9d>ͭOb>|H7m8O|fIzyUSA 6m4s'eeeO*ZcCm"),,sĈLRx賦r{7TUUwꔇ< !h43o<ݿ XgЌ3*++[=tRZVFB12рiiŭJ:|tHlݰ4vȑ#\[_O޲gao[Z[C6'ԊZJ((Tn~>%;ӄ)$$z/kde%yvii7"#s_ޱldd$YY߫TzIaaBBBL8:~YR_VVuG]W_@W1[Z;t(GYYiߧ;'ԲI.jYA>,,SWWUNuk,:l93gV*O2n}΃{1 j6o{}޿O{.Ç4"ASSylӧW kog:$G*iD 4K.RXX)p_]xLۉՖz5p@yx L LȦ1}!wϙ?_bl~LR'=|xwh3< VWƵ` H[v"6/^m<~5ߕtq9p 2½@E)$$;Ç4!!!ǎ-]l[[@jE !DB%%-'P##s ZHzZͽض~՝4&oeu_[7eW/))>gg}ZUU',,D*,7Guo߾95?ߺe^k:䢧ff6޽K޾̙#oݲFo|T\\'''9wmfΙ3"jzyBi˫h^G ~Y%++ɢ$Kt\V֜_^=ESQް +3.22GFFr"=kkcCZ///UQA˫6GBQWWh[̊[K"5Uu+9<rPз7o?|H6mVƣDG/O rru?jf Ӌ׵ה_SژH.] 8{vƍӸk; ?{y&65QLnoop̏@/O55rrR$QQ}0VQ(+)?i;%>wnu~}wgϮڸшð\g(o:^hbR Pz}BmEj˗}/VOjjKt4dƓ9mqwhhziiʕ2$|涋j>8iؕ+fWO%y*##dɘ;wt_>VTmFGN4eg5z )gμ]fB-;t5um0 5);LΛYat'yyzIIPccl2]J{޼\]]h[އ}#_)3F+Vs7a 'zqqQ F62|*)iY'?3 ޤ: UTt툈4EP֎b/ " (`]^QT.EPJ~\lL3"8ÏsΜI83gtcX48qohUb23&L0ȣGűOn|))5Ic. @ _Qvv VpXSvIJz>i0]zyMQuۨ( ~=E}}K911O*+LMvt7o$j@ ]Fjkk'd-5/bȐ_M׷MݥK+Ի@AAUl쓤bbٳ͗.0t6 @D QvMMmN:C{߼mk4V];CFcsqB 4i4 VoJo*Sf`ǢEp@zQv6*_:VȈY2r%WNN;ԩuuӄiFcxy./3ϟϊjm7_ac3@ G*!!onnc0$33V£?0XGlh =j$uuo6M_Blszҥ6[_qu׆ 8'>eJP[t"rVҢ/_V:|8]Jb`0}}?x.6v9CKK{B³ G86m~"ڊ111V@ P:?~l+t~b-^$3f>HUUctm~s`Ys_,C]&"pD!?1 NNN}m *-Mhh Dj&1321?sa޽744y [wzAtcW T˹g>,(>\c۶9s´ җCP:>4JTȪJJ>ySkW3EE/??q]LA/9>&GE=z>cƈm10"P)NY˗լ<55yK˯ٵ+XgR_lޜt%& 9)-t8GG+~&l @ ;Tqqk?L;w^;V_~={$;g2;qȈӍB8(--j?2M@ Qve"SY 3,̙#,,tJHxu-[f9;[ͯ^}zLVV>L&TTTV%!@ ?">K1zzʅ𴮮9/ ҏ| ޸S2Ddv3@ ݂H})>H\V]}!\]12 \{F2 ǏgԐ) sr7^`|?W5pLAOgϞz[5Լ|r^kkGfkر1.>>{r["Q3Oh -*uug878OLFF|rŋ+(Hu_ ͱ!\NK CCj cffƺkjj ޽[lL677Jyy9_hb}}lY***Xq3WWW,py%''fdd:u@ }Hۛ|&EDmi >}j=w!yG)埝618uʣ̿z }yO];zA[[}LQQ'<wuuu_x+@{{ rssO8!eeePD"eee36uur:??ΝRjjj8}{ ǣ/_NHH?~@z*+ d2̋ht&zU;u~A45=T\\G ٥ǏNO5| OXxϡC^ZZ...Ϊf͚D"m޼UII) @^^*??֭N*J /@kk,L&ܼ͛|ѣG=zI<V^=li&xoDDB vqqlccCӷmۆ:A ~H9T̙fNݥӿM Ng׷HH>HZZ\ J[-BNN٥wL$3Wk)~l"##_QQyf ...vvv 900STZSS .X[[+((߿EZZ:00ÇǏ';vY:883J 2uT 2}{tuuٛ8vؚ5kFM .\ȚEAg}vH?ýS[1c!Z x<.2rĉk]촵Q-:S =0u-*wPzEI[7̬/L@gII}ƒϟ?/LDxDm\ac fg'#KemmTSL&aNG)47 H9R(/M!?HGGGii3g-[׶@ ڔ/9,*vm0 xA o纴Q-:[N3t:ڵ߸Qpb$fɒHwG ]ANNۻ6>}:w+Vo}m ၨ9Tig<&AxxS!BBfӛ>6W n--펎NjorRg<ذ5ˋUQQ|}@ o"@3NK*۸bb )*ͭhj -OzUÚF`0x<A b1jjr=ֳϯ yA͵šB @ ]3{ik8 FUU'p-pQEH$rꔇQt11,`0UU0m:%9B577߼yɓW\bbbV(//⅙D"ݿuuuu3Ft7ϟW< @ ^C4G`ee76mD$7lkgg>~MMM塥#&56w{3=A CMMM H!CP(F PSSSUU h%%% &33S[[ݻ!!!***MMM6n)@ZZĠAbbbt:85@8wܙ3gv}sdpttLHH`^ti}Ϟ=ߴ:TCEd۶m8U"!!>G= JE|[ >? &&F^^޽{W\߽{W__dΙ3ԩSCi.몪*@{{;ZXPP !!}AV\jժO>o*Dt1(رcvvv~~~Beee!HYYYh9x^^^ܹT{{;LLLlll\t̙3󣦦w߾}&L nhh`0~ևϙ3@MM Õ/߿}˗ƏMCe2>>>qqqiiihy+** ?.TXXXXXzꊊ ~R fʔ)III---T*KIIonnF5ٯ655E|||pޖ_Dx'''__߲`:666t:}۶mnnn=i>~0%%E8{sΉ}esvv6t6a{]:r&S466)))uֵۆJJJ~¿'p0`@BBBo:_ SYD>ij4ȏȾqp8ݻuuu9^̙3qqq?׼A IDAT/*i5gٲ,7 $&&>yd̘1}mDtxܹsC3>}:w+Vo]蠽|Y[[]V_@ht f6ƌg +СߗFÒH7_zNg8&a0֙3hjn!@AݻGZZСB H_jEWERڪS+_M,9@KKQ^^7@ ? R23^oߍ&íJHNc+t$45hj5@Kkt@q̱r%w߾55$VMM5Whʆ[**޾KOU]MB]VQQB/oDh0Lqq~w),))100@)..F+PdrhhhRRR]]E9R+x8'O; j>~P**mmb8e,*܆VRmma55753@`|3 Xv*SA렞ChxhnB!CǏK#{RKKK/OEEERRVQQoccѣG{Ӥӡ:::KG;E@]4|(A.)Q6$߿W,+KBWW˲`0$tqq&hQ3Tcƌx;P:wȤo FSSQpp7!FEEe{ML&{+Wܼy5ȑ#nnn١r ok9#Ћ-[.3FV]}wTee`w_UWԉВuz4#>>{mDKuf*^^ ǎe/Xpzz,8XFjjދuuMh70ڊ~0uuu4  d2 T*_UUUEEߟJD322ܹuV---eee777V>Tn)ARSSMLLh :s~[[޽ 1r%FcܸQp ggM!aӦ?Xr# AQƎa,0wփQhh!5kVRRҺu֭[*-- 8x`YYYNNNSSŋn݊{%%%]v xyyܹs߾}<><{ׯ{zzΛ7)~͓իWeggS(EJKKsmmmupppuuzݻw]]]юCPd2%J޽Ε+Wb1K?4L&`0 SL1h4"#l#%$v]b1kL)?)pD /__ ˉD"를O!-122222'xΝCXXXN63/j »w-[F&yj-))؎FaYehhɂS heeeeeaÆE8?~q#$P)ΫW_ܬ\^0|YSڵqmge9j$O*++>du@^GKb &v nرcvvv~~~111h;wP7ĚD]zyy1 ??ڵkAAA<ۙLfbb"J9sǏ +--6lpmoo_`ABB̙3;;;Ϟ=T޽{z\Nw}A-Zdhhhff`0SNu\}hvx&--&desds[\GU&a--ϛwl޼cy悀;Z!WwO}$8>~޽ \](UT4>Y2g g5{ IIqwPRR/6`2>>>qqqiiihy+** ?.TXXXXXzꊊ ~R fʔ)III---T*KIIonn| <[VVVXXSmgg'J%!!!֮=+Dk֬)))y͛]]]---Ga.ȸ;99]vEkO[CC^B333YYYYYY 耀.<{cǴLLLn޼IRL&LXd Dh/^<|ALLLmR2s̆@\\OhM8D77ɒPB奢"pLر1132vп oKBxbWeff[%kmme_Bn4[])SH$RHH;wA n~F22^̞}H\S>wQxAn(XǞHvӧV]'Hޜ5>~l 1|xOlQQM5S#dFVwޡCѶAAAכ \YY]5h-DZu222&U~  v}Dj*W˖M)Iқ7wtЌl1EϜ:՘ڦ9sǯ@Ǿ=JOI;q۷uG^=nL& TUUv( c YCeM/++A$*5hhoӧ>~\HaߴizeeCRR?qq|YQtzh`066C<8h׮wZ[sB "́EE= UQb%4Ɔ&A8T2HiW"|Ya32^,\hv;> ##s޿0 l>7;{vRo屮ʞnO߷ޱu>|𠳖ր !dd$)55M8H@FFf"Omii?wVVN^ڳ̪U;ٳ Aÿ{؎if=}{|J!]C4*ɉ#$Ηj|V?}{oZ[K&tÇӛh7óg&%OO F9w;@ "Iqq?7/﯀i8q/:ܣRpVoef>rյFEAT  FVusFJ_ihH̚ew%KƟ>}С0G LnzʕX,&$dvO7rr^^<=m=*}re== oO/PUUV@~bZZwH}2sٞ=ID4*)[FF@ a0f33mcc܊ &6$ܸQlm ̘1t[*FZZ߾G{,cc3fHEECl쓸koo:fxQ Q퐃\^x FG/@Db1X,*[]ͭ@ȈaJJ>նmKYÝС ߋRPЌc\ꚝy_dMoܯ N:;iҰw7Ao !Dӡ"`XDssRee#\:=ѣϟʍamᅤ-''pGft{GAlLߛ7[[޽ \7;8>yhhCE/ &(#Fe03'_C|x;a۶ sB0={?}!LM] 8Ohl$5˼́8PYkR$E[[&eWR`g7#e B2&$d]N &GbbIXmmOZ49}QnCC!E4)*JHm =f cwƞA0˗m[4iXLGq"o8`*lߞreӦ?CF@Mba2EEFR[yUߍdd$._1Hݰ@kc\XvÝ~Ct=vnQNgGF?zuʉ爦CEOac0R.׷\̙f<ϙZfSwb!qusSwo*N?Trg϶z4z6tJ1:hksj~ls-ȯh:TPI$CZ8}aWx.Y2^]]{sZ;yӦ^8 9yîXmim׮4+S#^fH_eJq8V]]9###>d9hVVsqSS?..f2\rb ٧x܌#.\ 򚐒7vN{I$ʷ!Xܛ7+ML4ȯh:O2 jnng2--%t )gU`0s'%$3yI7~gO/IJY:8P~ժIOǯ2DmϞkQ~ !24g.x^H  DQQ`kk@Gѣ+;;珮k~=Om۷++#TL4yWW,˓h.#G\rsڻwASSŧ--mr8 sZ}mET*@"ik+UU}ZZQ/W1Bgh@WWy2۽{o64yVرo.:?rrWܿq&5ȹs c7nDF.1zSH_"5嫨(hl(}@B.uu>-eqpuzA{;Ȉs XY JHXYZ4-ָ?ܙfnr*1t!"!;v?F!AtS5NgԐ VVz_99s,۩BII3أLJwȟ4[=zkaӧ=ed$MMxxD&&>kkCQrr}}-:Ttʗ!%E#гʾlY{K9wՠ͛/u-jLҥo::L&O~GA]۩_Yݻo~bԶbEon8m@U*&Pi 5` ZZ:޽c?{o[ݾ}^ar0|FZښ3^Oyy)gg넄ۂg}vqt|~H LAg OMJ0@zT̪ci9(*skٳ=+ddCCX0jaHKGG{wr13FtMOHTpu:Dddz &O>cƈF 7&(N.A---GG ”,:xjMMkmrP]]3G{##uccϚe6qaPPҏbǏ-\hbEtl.(*J;:kRRݻs恟Th;T@UU㗸Oj~b6r]]nx;waoo;7~|~޿%$xfי3FFяN=7{PU׆% i0LI2ɡ >}į2 222,id2_OOORR $$Mbvv%.}jiG =|X!nc3DGG)> Ə0*0Rq/]Zm %-ݲOJJ|}rsC?})/y|Y W9jjr֮c_xzI"xǏԤWWWYSSsׯ_x씖*++^&%%UVV>}:%%% {[vDs @BPP:h $QhvY 3訨6!ۻm[=v]ݽ{lb1cơe?ױ=ϏB`---՟ zS*+Λ7o%&&/SSSmmmoܸjUTT aaa3gW-rd2X/\rM Զ#G=z{flkD=z迎DDϟ[Yin-^]ݨ>%% %'?X{F&7.c_[q(Dx.k󙒒؈ ȅ  d2 T*_UUUEEߟJ222ܹuV---eee777jB$55D\\\OO/::ASmpi}}}&̘1b~RʻwՕ fEQ=zN,4CII - 544TTT cI]reȐ!***>>>¨vww3;E"<<<444y*$ќl#Tk>;~A]]sYjĉF*>wp?O$//uŸӧ.Yrܹ>=.^0..czYf٭[~ݺudff޾}{֭hGEEݻw/))ڵkwyΝ;ѻR qժU СC :499k5Tcc#'HL&`xժUN<a&rEJr\R~ANN-00u}v Ax}}}a"BӳmfllΟ?jphd mGO- ]=r{JBn,L# ?Neu7^^Y; 8 eyݻ:gg^hKAAa^ZbH$1Y'O.++C hܹsI)**޹s'++KSSX,`t_pVVV9Y"Bٸqĉ9-剺:rV ?S-Bx"j˖-7oްa` %󫾾`6 G~CQYVܬ!諐q <(N`\\qf-,tׯؽF]'%s \=|V/UUUu1;;;???V2ِH$tfg%Dnv&ظtҙ3g666[[[>|>g[))e˖UUU}euN>|,,[AwޡWZA-ZK%:u*Z_MM Õ~{  mej+zmhH|+:~DWٺXN%%?k2%<+}*e;dw; :::BFaqtMze.^ӀcjjjR(ez=@8<3f`t#4ƍ e2>>>qqqiiihy+** ?.TXXXXXzjR2eJRRRKK JRRRě###Qp8*- ӧOuuuuuuaaaZZZ*** 薖#G|ec͚5%%%Ϟ=ۼyd2 ##tڵǏ;;;xoYYYaaapp7mr5%KN\^߼H\NE7 sSԳjU>!=x^vKxi+Yb<``0a_",݇? ߿WRRvֆcˀzUUխ[jΟ?„ h'`;7mڴcv;5;wĵG1bye"F,YDQQQIIi }Ů_]]]^^ٙ>- H|| aJJqQݻǏsl|}XiVVZgǎ NIIBr\###utt}||yhǏAtzhhƍQAAܔDu)$u+VD{zF?/'VV6 RWL$}^^g#x.%U(ư?cA:cd@ÔzB"dɓ}||X/7olkk+d=PW=]pk>Dyy9 ={%zft%V75 ~?=eEvWRZC%hA559%% ޱc<)9zɩ<>éSw~n0#bc/^MΗ.]b0-&&̘1%)) Ve]0|lhhC~FC$66v(***fyHD,P[ZZJJJ͛7j([aPZЋ#7oj j*$!CMQ tAE,( X@E 6TV׊ TP)" MQ@"͆$$!;{y3wɻ[ 6 l PuJBB߿7AjjR:Iʊx񅪨+Ѩ\3i֭wɊ~‹Wfn",,<{bccgϞ-%% `0h͡I& AKu8%k֬ijj @MM>{yy Z @U'R FCU޽ uwwߺuxÆ 3f(//`+k׮sΝ>e˦DDf^=~?ª &իM6nرM%,))2eʍ7Cad}P ])$ ZlYlllCCCrr 99YQQ1%%ܹs޽[~=L@)I:c/^1r;rWW׃jkkWWW3u: 5fS0c1IkPǩio響i"on_NUiEECj*uUU]>`O.޿_i"`;w«߿Nޟ#Au8հ?1$TC*igg{$$$ttt233_~b01 fɤEH ?۔)Jí eJrJɉyji  Y4P(˗w}UU%4/_Ng\SCCezvr\ܖߛ?m&b#K.񱰰{zzX,''gWWWPP:"eéB#ARXYfp`R*T}}/_hhhxxx{[c~o@ <{vڴiD"ב?l|00laTtW׿ddIKR~~.YYa ehLg nYFFIq@"'O:VV6>y@WW6)iԒ%a׮ CJpvvnjj' yҁq5""^yTP?īW3>sIHRl0#m4 Q@ av:":: q'O wE7oOg^MGgOBT-Rbbb| U@'ttYʊH}͵;z"2uZ6\{;mmL3@EEyU[Z? tww_vmݺut!aa$?z$c͚^ZJOi񆣣$ymm]\9?U[\FHC1"Կvvǎ=}ͶmV @ Nr3D@s\xS2}jreٳtg!';;sí˨'?zvFhš2'dfݾ&)=(M 34*g]%,KZjkcz{!4i+WN~=Zbbg8ƾ W11[y{9p nÆQPibff`:1,'N$99]li:s9??8,e, ؚg͉ɠIѨO(=,, tS'GٳgS]M%'A6Ν2kCTU%F>|u(Ν7nn3srEEm=aFcؠFijJdd+%%p>S3{.ݼ6?DhLL4RSwN |{0㜊n113`Ox_ .)?|xyv^??!f,1f *'"w"W$ =u6.* s>NN \ kΞ} *w3g"#, +/5dS =Ko/7ӧrw&(s+KRBB&Pzzr5} ZXh2'oh| ӋTMM退g<{ٱ0)'̝00AE/%AL1ۋ{7H`9st23/_^=m3^!!H]] G@;:z**~QXXh>uf7+*~1#zY/^|޼ӧ~)Р&O]~ qqoyfa VVԫ ^ÇO~{Ӓ%۷[W7*OSDGGF`0))H7oXxx*!ӧ~~Q̎ h4jϞEQQ͏'$L q~0 qxlH$VU ;_ׁaa.5a#cy*(Mq z%T/[6|XK3 4߳'ZJJ)$$~=c͚YҀ11QOOu3Oϛ9]~϶Neس'6;pvkyyQ6 +TAA3TIIA4E^dF__`c3ӧUU7oOR3fmfBp.{wU=z``:@?|Nkk޽Ovt`⶜>[SAbԶ *_3I/it5!!ާOX,"uSS X͘qNSSVV6Dxzlld.``f!%%WĘ\#[6̠2 7)SxeeO/o0 3G;)Ufrqox͂nH$ܹx=p`PzÌgƲAXWVEQZZ\ F=֙bl46MoޡC oV&-r.LJڎ,-C~TbG3Ü5k4mZZ4lPPJJ VVOO_׬Y9:Wˉ瘛koxX62alB#"^3nka-_jjڒגƲA[ IDATpUQ/Ri%lltӿiWۃYSF$[I44 +xKCCҦM~h [ka6 pU̞od2g,T!!"zT^^ FUTH ?ӟEFFv,CQQ^eIhhk؋k_w6kѓ'íxH$2 zc@zƲArp eeE**5::2TQEENUNJ<y_ϞߓS(8ax6'0b++]w/|9}#110wc)g͚w wfr#OPV'_%Q`c3IZ[=| &uoϵ, a/h4͛= o`aD3k0xԱtiXa-K j000 j*@YYܠ~Iy&v1R{6낂dzezzrW_v%rDD}؇cɒ0Oϛee?[)1Kmm3-ߖNGNj] [_5~UX@P"RV'(T.ё7@WWZ7$$q T4u^!C zzltiϵǷlC"],,I[[[󥆆{6ɱ'I! ) MTOYYԩJ؏S2oBF>}ș+$$nXS~D@ b>|319aClVa #Y:;..?r10#lPbbَfUWͥZfb]]K^CVr0년$0eD'ϟO9J E&x)3cvŐ22{D݊_11-H 3mQQ>H(rA_ϡ :U Ӿ&LUQ{o`@8 __9sN<~hѤbFKikT/(vrLL3͚?_oݺS(j0]]9:Ξ}iQdF55I̘QWg܄JJJL#i.{{ߦh>ЩSO[Ξ}>iR-!!!&̸qc1<ڞ36>WE 6x<ٳ `0>'e轂鋾޿~AjZZ_qF1aGGG>Kc|WToa2 $CCZKNoa(ݮXSzu tu{U@"&%mА24JJWyc.mhPT;x;w˫Z謹NkKeo!//ŋiaa 3xG$A!9u2t䖖F&UR_|SOH=|B͛6d r{xHJnbq3U$$mTV6`0BhФ;ik b000 jGGEuO Ůrqq-EB"'+1z2}MeIkJ,1ܻ7v4Tӓ?xÇϯݸQ޽rrʉpr`R^ l#@ DN(aP QƾA46UNN H'}%vrbbAww/#ˋ9:,Ybnݍ⑒)8-.''K͘qرǣ`13EE5Ǐ@j )++𨫫uwS_(++C QVVFgXG8c4BTwyxYY=yOIIyyќY4Z`)),gdj޺>kwqcmի~&f/}߿///_\\e˖sΕ54fyx=ee{66޼16#,,E3==]AAH$y%@ii)v` eh<ٱ0po rpJѮ!URBP*:Ymm ?֭D"p!) *wo=X 7z16>x\2E7~;-Q--~Pmx1MIɯ)wMWL4bcbe0a`mk{釰XܠmժUuuuRRRPǗ/_۷ɓ'ڵ Z͛7/55u&L((((,,4665ŋW^hoo :}_?}TVV2$$j'_:uJRR266Ǐ?}V+V455]|~;@SXYYdee߿|^k*-D˜9s~ZPPK_ ox cߠ.\xf߾'hjʕM~.CR%%;WagDT+Р߻329ljjۿ?QKK3&MD"QSS366'뾣hthhhSS@hkkeeeP;wk444nܸAAՠD,Kj߁Dbtt#X,BA}bcc d |i"))wWUUBR"EZ .2-hԎbbr 0g3.]ZunVHȈ]]ϟk-AqSyy1[)è aaӓXYY`TUUC-ڶFeeeəedd HZé066޻woAAA@@;(UWWOo===Ҡ+M LI[--<\__UUUjjj2Ӻ3 _m\\ b%%;u999 W`ŃVVN99 3deO {??񌪮>ܹs}}}Iu[SSSVVYJ%//ôFuuuƵk.ZpDggBOamm()))#UiHd?9bPRRY\TMYJJ BC~*++KG o8#:P5 RJjd\]XWBK//1 \Uiz:2X1Aۃ㣢8Ο?/++K &F$q'wa`*!QQQj l؋cWJ44TB IRQ\`x ޑ Pev]UUUPP`ccsQEEEEEE7o&@ ߿ڊbh4///---W\xL???'''27%%%۷֭[rssV\),, yfkkkXXyOH::h-[TTTٳŅ@fp65%,l.""^kim?r䑅 V7'^֭/'m8U]] }@_~ڹs'Tc L@b*CիW{ϟ7o&_~p3ԹsCC|ahsx9}}} H$YFDDDLLln???!!!''&("ɩGg8գD"߯ãsή."kbb QSS>}:V#9"~H+W(**{{{CS:tHXXXUU5..\::FWWW111 m6ZY~;%$1hUT[s⳾QtS9)5JKGGÂ@ E++ySvJ2"hiiM3 lS`P8,DbPkjed|\ #C: uh"!!뫩)*+)̜I/7f*ɻc^@;b\799>899?XXG xyy1̱cnܸAڿΝ;)xږ-[֮] noo}۷)))tNVXJũ)=zrb/_"++keeJ:vo޼&'''11ӧǏ_ui$&̙F!!I::266í  nذa}II}/=~ Ecww_o+V_ʄ&jh쪫kav #pxOϛ;^fC!0fkkE$>laa5t' oO"LsE'vb IKK;v8#7Ndic#uurr=#22۞=+JŒ-_psykk8jk]rqq(sp0~#^^sDDN`jPs\t.u*iח|fʔ)7n ӓS>MCnS_ 6wҥ>>>2`XNNή @[hc=}}}IsW&TڬYp8\pp+y;EdU FṚPcHDVײFǟ˛k; fŽ 瑎_]xF ';+E{OOTT6}Ub0>W1OE/EEW_2;qT^TՓ'OW\!o}#e$H-2Bck\],H|IO<:09'q M5Hvj6|{p/[J8ZÇ; yx\WS9bS҃, ٙh^OYmOKÖ, 5-NI`~r@ 1?S9F55(!RLÇY-ݶJHرd4ja|sI;aNwwwyyk֭[7ܺ2n||^nnEPВaQj^I60[*(8c0'a111(?# F-(MqIGGJfSSÇБbԣG=yR|TTܻwƍ7U8M ~ر..iLvvٳIpd^4EE}QS[BB`4Ugge##Xg\T?USҠȴTUVR'oG 3g|ӜpGGիVV6PH`C}ͪU3^^sxymn:p`) fx66+;{(٨dD_,ͭ06Vqȸ0BB"g885}͡twrs, 07זǬbǎ=YP_LLfM;OrҼ %hia[4lDYֈ 5/_तTm j? é*YT}ѢIfV@9i3޶͚b>>V}Xf?_WWlv͝kgKBB^Z{6|3;`F4;cD\QŠb0BʆO(WXXӷ]ZZHMM2= } Xj_={V4s-dda-//zfKYPO^^tv',WWbA`0[ڹsל!aX}Ek33>2؎xt ьH2&& lDaXaTyyѮ.}܊EE5֔5yy9MSMM-נ"+?s|^^N4\~v||Ν1{ =GXѣ~>|]3!۷Gpi'}}!rr* # PS22R9S'8Šɉ(8QֆSp8BNL{4 98N9Λwݬ!Ki@ hjbn_F\| 0c'ٶz߾۷[ ]Ֆ 25H$BUU2&&""w IDATa'~Վ z{/ZP R^x~KLLDz߹N(ӐQ\cH$ZZfqnn3rsyNg[vל ȈN khldlj!$;Ìg FII :F8Q϶ZTT$SS1VX8ۊSY&)hǎ{7oiummXs.66rv1LQ[Z[FEe;:d/99Pڿz03Ia`(/ //ZSD!B9stRR>ѩS \yɲA s^\ttkBXCT/2rΝ1}}mn3 F7 b)),18zt[ܜ:ƪ}+a 6͠R_)*}AоzMG]ksT2EiYAAfb}4uꔣqι &h/|R>-IIF˒o~iT`# 33TII;^ݴV[[׭[^/eW?mڡe˦.dY՞Iii Ò\zÆŋnFFU]f ak{lf ˢ~VnFO(gdbjahL?6 P2Vrr"V3g9S-%F\]_mk3Ќ'O:,]z޽!ӓOJھukvZq9 8͝˗n@"ׯ;WY $#&N]]ŋ LM5Tу f1>rr"=MMT} :q3GС#d7aamNaD ${KG>zKX;ÌR[.{yNJ>͘vȣUXZN8vlC|\A$ں&Ixh˖]S*ݻ C^,iiN0}E&0ce.u+? 7d ,۱^CCP[1C3?giq˗/,^WfiG<<4""g֮Ç*(6R]@S%?I4GDxxyӓ)̘g|P ׮^Vvz}3TffXqի F3fȖl733˞?px(*{ẇ/6عspko|z*yy9w\CYB!׬1p$A %%UP"!}! cm2ŵsHMAO^z'i/;$7w-vt@铢=QQòF~~FCkk׾}cbr >Bq…#G"$ }0AuШ=x iӦuVś7oO~=ֆ/ݫ5^Ut˖;߾5>|XC`m۬XTEl2wG:uig'vFuКӧE~~ѭ4UZz6'޿u 'BYY֭u nՌ Dttp+3@ Z h))A:ǨS*!ݻJZll&}[g3r͸~=Ym'(441'|uFff-s/]J2e޽Z[/JZZ:׬KI~X,nݺoӷ)++<) [_,^UEӠ hhHV`aI3jofNQ[g:g筦d#<<^^srs=zol|p˖;ee?[/?$$Mv8&&@ 1h4Nj32J{')t8իWJ]cQŸ3JJtVSrrhTnn9O3> Rz{L(Jq#'rdn p{xylm֯͌0Cϟmk\ݸfkk_͛XP .ơA, `h\PPӃa7o643>ECC;28""|ŋaal8psW;<۷EXZFDnkn yfIM-&}M Hbq|D"ߵ)^[YQ̸355X,M{ih iu;W#1]_ Fܹd42E1(hIHHL \xRR ݰ!"#- 7nho靈Aᛛ;AՕ7ڳgހQVVFA̙3茥8pyxxՃOz*A ++44;+)KI V*Siaq+ټDEe?|~ŊwY՛6zW^^-2赾>OԷ y:: `Hs3קObC!֦H$@P܊b.JI UM!%33SYYvaϟ?ApyyQCß6oo着oٲܹs`3 $- 2E)'b&B.߼bbԣk(lٔӧNfWѣ+ k6nx{VB(i`[[9{{AAb^$@G(rs[Q(Bs37pϯ] uqqa iii'~%))9߿äɓ'C* #gpbڄ Vwajފ_rr35>_صkW e(pkCbq?~4}PYѝ;oNL g͚+66&OrrH=, o\\Lcc#H{z{{;Hb~~~~~~X,,//o>yyyqqqWWצ&HZQD"1>>~ĉ\\\7o$TCS} (--/R FNNnZc}IS?|PCCCBBۻnbbb)))]AAͭԴj*111YYY__߮.Y~3x4..o]%SVVOUgggPl1{1i$Y_PP@$555ccc>}";F6556<Ok8oP}D, )HVSScĠDBܹIFPEEEPX}{?9Tii=v2E)++!P(L0 N Mb<>|}͛q~D {!ii\y9܊ ׯ񣧧'@صUUUP-Q"""iiiYYYrrrfffH$p:?>HֱcÆ L2224?IjiiQ舊ݻ `ǎz< TSS/7ehPե::z'ƛ>]kz\ܹs}}}I$+ԔCVGFFj;|0Q]]]!&&qڵ-jll5 Q.T3^Ǐt}A" h()),.޷?Htvv.,,D P))) U^'ׯ_eeedMfNYc<T55Ix3f6/ejk;͛Lͮ"ak;%44 >>?[l7A<bEiΟOOR6.ZZ:;HwdddrrrBBԾlٲݻwWUU\p|k```QQQQQ͛hB VVVommbh4𖖖+W}zjooGUTT\͍z AAs [\RXXpְ0\nnn?.//srrh-[TTTٳŅ@fduX,LxK:Xj?~X,NG'Ҙ۷ Y2$Kf1s 0ׯ_H^ݻw?LOO߼yg8g%%u%him`|}T67w5WV6|\-;˗_=+p^έ[/?xPž=޷ׯv>|'̎MvpҤ}JJ~[K ܹs0 ںf11wttuww 999P"ѪZZZqqqt=qΩ&77J`` $3+**HWZ@I^rEQQQ\\ۻH$:tHXXXUU5..kbb pQRRڹs'4H$666a0m۶L>W6K9N\WPP/>~*wٱ#Ygve ,4r@ jjjSVVNމ$%%C|Օ{ʙ͛8)h4V6oddX, Ӄ5gO'zI;;Ξ^|g'󚾶||\(>>N4˅FP($??F"(B@D r#AA$annxe|SP||^ldUPOWu >ySRRG'MU||,cbr##W~qq^Y7JJJp, $===DDD"##>|Zȑ#Arr5kn޼vy慅A[C}G脄@8}?#h=/۷:T__k׮;v@=>|cǎ&GGǐ꾢MԠ@=SSS5mnny77Cjjj ^GAs^1cO~!kŅhnn0/77ϟП<Ӧb0qq1ʕϞ}`ϣYյxx\p6ŋ߿۶mǏ߶m[||<o߾mnn^z}֮] 8ydDDDzz?~@ <<<>BuԞ={Ξ=dɒ'O/[쯿:\BB xMÇ߼y?[j Qccʕ+\\lodee._.++kjjjeeegg]ڼys]]]NNNGGU̾'GFK{ 'PH<~Syy>>.4EXDr:7l0Z$X,$'`|ZZ:aH$M~NZ%Zյp!فV8od\_:3A@֭Ϟm|KMm'#/KqtJݻ~p8  mi)]_(zѨ[) >|cV))g%Fp4߫hԪUGE ͨ#g<qr,-';#zZ5SBBj=|a`85rr"ܟ?߭hTtl,// ..A*k*"wu뮳2#(Wy(HAۼo[~6tFB%A֠" ZfT7|߳`||,]w PR|f`Ȩc1@ fffdޱc` ̨d ͣev޼~f9糠1㰗-2ȫWJJ~U3QY@`Ln#f ǡ!!I>7`Ao&&nӣ!-<{Vq}VK__Ac&>c/ C?qb۶mP^q˩S8TҒinkTɧx<~Up#oRRjhѤ˗_cJIGHiыӧO>=܊ 3Q5~ P\\Kߠi=,(10Pf"wl;OOs XlZ, g;;8aa^{{Aev[Q8uJ JK 諡!|~7..%K&EG簦̴iֺ jՎ͛xyb'/^n-```kP::2:fRנJJHؿieeCD+ֆ3 6mغ3 *Tʎ&OVܻ"UQQl:Ч@ 6le˝: ̸b\TmmLii}񣦦8ߔI˧ƾc9}VKnnDֆ3N`B7[IJ*```` ܠ&.ίadw򩝝اOXӇk׮ou@@ ::oT0~|Rh4f?4Nй};sT3yuPЃ @ ǎ@ 7Ξuq,H`q >>͛o75uYbbbO~13 j/`ُd- IDATX˒~{kˋFFfҔ)ޙC1}͞}Vѭݤ%RRi*nBJJRB%)Ye)IR㹿εG:?9s>}Oz{SSZ^P/0!.ūWIIᔔK)A 5 P(5 r*è'OX022YEKOp LDH?!aוcmn &S3/ `mU==Tu];&jVէѣ.Ne2V0tD0Soxʳ@ _P@OOܹZx<ٳ*j*Ț*GE2PP?y2#׮x NS@ tulMՕeQY]wk}|0kԌ Nְ zzrMM_vRSZ;3czRRW>cAŅ:vlǏ_.]fP}(+;9=v!07 d*ʡPoJijj2ӆk7ntu1#PQر67639::?0ehPsYϟdBQWJN|Gӧ:x0 @~5`@S_R}Dއihn0;-j^') B9;"SӿJA N=g&M##sup0Kq0ųg{7msӧϗ5kV^^H|TUUmhhV-OeeqLL̰E  [mk2T|X/ :m6`U>~<66wᆭɊ$'i'Of3sgSeeC.\NO[ȸgΜ%D[[[~~>Rro߾---4i뻺z{{ddd]]]IiJD T f}η\RTTTZZǧg$'O?w}|=aŇuo(C3gΜ8q"*n؄$}?NOZwܼYH|alrz|Ծ> 6"nϞ=111a`y4M`HHŧxz^VPTO!t'% 33w;:zYаjŜ?#qq/_ֆuݻweee]]]</)))!!%ʞx𠥥%33SUUg ySo-m}-TȘ)-T0IX[kQ) RR^n2&[bK?h"#nn&w89M{泯o sɓ'uuu͛qFSSSʕ+O> nܸ1$$DWWX, ??TT԰k׮z h4Tvrry󦁁Azz3V(c``@1--6!!͛7 S-Fj zxx]v׮]mmm o޼痗񃚟w$Amێ9bkk >p+(LTá'77Ap@?aj';`9'17WϧmKM^}fJggQUUѣGw҂|uرWaJl|y&>U՝ytXMCzvU-`ܽ{iii# ls1Ja3d48R7n #O޳a!Z&O)YMR<%'aAaXXY—fP]2j}r???nn86gԤT ݋ B R@ׯ?~JE'iGܧCJ.]Z!|u X6g)UB**b>477S< de'%%HB޽޽R69>>LLZYInn|  S~`@27\\(''=IZgkަOJyy1˗_hky 9v옛yM6nڴIEE%<<ȑ#H ̙8sL (puged&<&3frƆ4ꪪ/!!KW0Cz,ZtZTtBb&jf]PDzax<۷/_:ZZ:[Z:|mjjojԩ7nx3h1n޼ 9)))|5gbL{LQz3"HL>]-6}UMMr顡  py6))ᄄ 􌊍~8~xrr2\0 ,(DžáxuGPDvno>g*4zF4M[ɋ/,,,wPZZ{Wjhhn޼N4: ꡡ_NmKHww͛O$:ݹS|T}tSX\%g֭C!s}G A=SOZ""QV /Ό (݋-jiiQVV^f7]w];l׮I'L __[L_Neeo)m壣M so#j(aG˗A\\4tt._tIIFs͘WI vq1q#E3TU%.}4+͛nn`'߼…U'a0#P͍@kM!ut,-_H2_ʪ.矋>,ɡ9ttdoCʕ0' ̙dBpbQ( 5H˗SѱRbh2Et t9SF;(]C֖}{kMW7KX, +W.\F[gqz+AAib0h[[]1)utŞ>fɻ69~n 4&ES{M[<4,-q(-Ngh+'ttM44bjdi#X!P˗#WZ[k*K$--C^ʈ11_--v{ܸ׀={R:;{<=g"sknnݢ`pg`@;CCzbddNhW4;0@tt~ZT)/2/{D^C)VV&&JS(/,Jǎ=/(*OǰglcaoPQdgwa'77 wJP=wn%L ͛cZCC/6 \=jk0WxT()?'Myݷ֣Ge/^cy矩 Œ衏 (O;pΟwp!!~#ֿjm16V45U25U67Ws* nC̙O Pķuݻ @طVl?\f%zH5'ϭ ZSSRvB0FggξNNtvuΝ{D__!"b9JH\Dģ:rę#úLTTnpOO?\/_~~˫ͭͥ%kinjdn"(!fV( Ikea!G83Ars?%vulݧù$r)޾=~'W01\ ?UV6W33!!\!T}tۿh^2 ݍ36sÆÆqgH y~8(**WAat,<{VreӴpVt|QXXת/\\(mmYdY:a 0Lkk=^‚@ƇpyIH%&rDcc{hhFJʫ3Ԃټd,aժ(wwׯ"Mo6W++uaa? a`NYUcٳYq\rG>>?u ͞#GyYEEBb**3XghީStwnf͍~:::w{׈CǺ` BC3޾=H]?<{ CJ]GJJkc D"1-ɓ7͛6p 1pǎcǖ-_nf߿caײ)ꖖ3f7o!TzhnalgL [}<|H+OXt@ZT[[[TTDH$>ljh^3Vhqb[ 9~][9((͜&-ͱT4O tpBUUqW5lx~L6oѕ+.d\ݸ&$$ -ǧG&]0%K ZYQ/s\ kJJx)ΘBVvRb1sQWW_qjbdjorrKJ'?j*J.o,l/)),48]7mLUmaaMaᧂ\mQO֖wyܥK}21QbWaaζǶoqXȢ@FBKKȑsjM*iwA@}ۀlo-_RRTClω\yV\H…&O,޼pݻ0*}8-T0p?ZWȿыΗ/kQiח I/.cN\'Nl/4cjyčUUaX֪{۳g[Z6W~5`@ 55Ɍ7(ՙ:U… y\ss[:;{IIIToP(ڠg= #R9 5?֭'N<Ӿ77<\++C<رnݬ^ѣ" `p] q¢lT痘KQQY}ak{HeOv>M###+**DDD~iӦ{P(77wQQRMNNJUUB! Q(ϕ3X.%ŒSSo߾ :fw"g P9qbs5ʊf'cǏ?>}# bTU lq0DTV6KKo##J 3g޾Bx򓂂ɓUKggggggvZd}}}:::ׯ'6l066pW;;={* 9*ҿ61jwヨyj/gtD&HO8mdGAAm"%%] &%s+F\۷$',Ɗ/}B544uuujjx⑤&M|99Yfqqq$N쬬IIID"AQv_|!***HUUՆF }J;;;cc㘘Q}|9}iiX@T&dqffyGG#JP>>J**ܤWr%gΜ%BN[[[~~>RZСC#I $%%zyy988$>۶m  ;y3gvvv>{,33sѢE]III4]SS|%?Qqqq/..>wܨ)_d΢'ocS ?'02 P(Խ{ w=MM1+r N-*t200f͚[?~8-- )_dݻJKKΞ=K.rʽ{mٲn$) 5o޼`F26I~L$[n%F;99y{{JHH :ǖf2F fٲe۶mSYYپ}h}}}8'((ى|:|9۷ vdl1j3jIL4ťeD"}ĉCeٙW0钒6Xv1:xyE;;e\22>ee 0jU:NPfH۷[[[DbGGIDEEׯ_E>'###,,ֆ"***<<<ćnB..d"ivv6w@6: 6ںrJQQQiiiAGDDLb( < q =ݻFYY77w#-n⹹#Uj}cb5ݚG._`m5q"_j*||=|Xu=1aolnܚ5xGJq FK}jL$ˍxov C[ɫ&1 bĉva?K)YRGz֭[_]QY^ DLO2X#Tfbycc{NUH1mXg􌮭e^sپ}^CCkJ )~V4 tEDD׮]8umy4 "l޼9 ѣG߿GFII#]:Fb,Ztjݺ+LQҩuu8p u8cG>M"yX` f@ť9x𠈈 &VU:9T@8~]jjnXs2?T&Xmǎ=PSkS YB-N#T8oL3!VRRBLb˗,\hϓTm6?q>ΤǏJ4oMH Àڢ"L@h4z|||4YZ?_С%ʺnC,A8EppkZZZ===o " JLLDnK`@e:"jj̸6a`޼SEGa\**_ ~~ji$* ˗0E͵wÃo jp$45_ݴ:_!:pv610߹&-!cPYyjkƇ$ѴTM >LhhR`bsV^w@@{vт@(Ņ:qbECCΝIPY&&N \xF~qqtR5E[Ʋa=UdTLxqUr˨\jìhKC2a 9w.'Agvlgg_Fv4/CO7Oiw eΜyvڵugkP !,ehf6 ,7i:͂Y:++ml:4ϯP\ S!H$nx=/-,]B&.Zdķdvl`n睟_fMto/=F!@PǏ/WWtq9W]@ Tֲv?fN__;^^6NB01QU՗YB%~㩒zNzחv9uPCcQ2E45u۔)NNg߳42;w/^|bNAsڇqwkX21DLL@8~Ԏ ??ϒ%-*\\Lإ Z[J8}*=$ϝ˒ӓgZg*MP{Jh.{{=yɡ*mĉl#! 5g!!jjZ,-yya~._v *:ё3 }&D=&wnkn9@ xzZƮ˫g^Ȱ*|# ULT+%%wK (!!bR_zBU@ikBA (bu3ggA1>OM|y s WQvms5SON?^|p%@"88UII)7 iNU-T1aO.&,9Dh}} eeqN=;\];| [#+))O …;x //NA?0ee7q8TjyeL9mmecU~釡„ qXL^~ŋٗ.btK}\}}/Z5OWMH(h\@iBRRhrS%%W>w.OOO6 Bik˺Ya$NV45e"#yLLAkhH:%&\4B45eV! {JޥK}}mmV!cenouuߴdٙ uiIIE0q#72+Ҥ LWNXl_TTŋ9a ';vhhhɽq IDATi:pvvvvv7Oҥ&a i PׯffXrt+豶ёf\bFbbc_DF|hiihfP(<3`/^y& 32ބp[EE1N;'nUf~\AAҥgCC2qWsn.x1QOOcFlBB]\\c'a@e)))/Oxbe)S`k(0l<XMs3`..&OnSSܳ'0( faa |nneLssw.˫1К5~A~n` 3lp/~X`ѢSxww 77 99cP9^|Jq#? fBƙ3Xd|М^~~̌j  3T|yׯ? ;}ڲe&+*زŋ/?H o"eT)__vxw׮{zp BB2*:;{YgIIITo"'Nhjj#o?3"!!kUp|IvH00ڶ-./6? -TNpɓ'xHG壢&LUTSRSTUFߞ={<777 lhho> :;;ӳݽYCC *Yԩǎ=}Oe@%h4z݈D"i}o޼GV= x0h4ݝ;"--rǏ##sYge %%lajgςKVgfutdS#HII \RRA)8&&3@ ?0r}MMG,2cj@WKccmí|_䣫k|||hh+===...Νc @ *APvԳslmu67`"ܺu+mll>|XYYbŊ޵kRׇxxxzzzl88)))󫩩2<1____PPH:55aM480 12R8vKP]ED֭ ,qڵK.!â &***111%% $$+###???}}Ľ{jjjzxxP)""r1777 EEEWWW;;;6du└˗/jjjFهsڴiEEEaaa^ڽ{w\\ eCu>0(vttDl=@2 s A KKo# UU}QStՆD{suDdwq7WUDD$??1''GAAH$VUU<'}giiO ***FFFRDTUU1,Feӡp07,$:V5kaaXmHUU"<|٥K9/Ymk|cnni/ Lݻmmmxuu.H''O=<<mCiiizzz|||ׯ_+NOK~,$$t9辕U]]!<<\]]]PPpƌHJN ^ZLLLNNϯ<{ BEGGkjj^~]IIIXX800ѐnhh( --J顂.\%$$4gΜt伆4TxHKoG e5RQ x -T1nRc *ǪU%%% °0''R##]v! {{`mmҷoߚ$byyy/\tennn,>x{{;H~CYYY^^^Z!!!q֭ƌ 2oIIIrqjIII'x:AI6/\xrƌCmm]5ʫ&''L*hj333yĩS޺u ݻwR ѣmmma$q 8p@GGFlcbbH^J!xBLLʀ:4Fʐ:nRUU%>`qq1Hp***X,@A :::Aq">:'.ߟ]旔|ʪ`! {z^᨝oDDD֯__^^qFRamm42ӧwB!QSSs#IM4ӧrrrfI|Xfff{ T {%NAc , @PQwYUUՆ ((@$? kSDLWWW;hiH?(:ӓ7Oȑif!!!?n23g}}}IH !mmmH9dddjkkC$300:+VDP}5u ?!do"(PZAZmP**4DmU:PBZ@@R*GQQDA /MY|'77y{W]{122*((|>sN1xQB.6H,))_ ˵{АBEENTz@?$~AeZKusȒ/ː@ug<_|ŋ߸qcYYrttDۭ̙39LiQpZQQqɒ% .KJJn޼I.wX\OIIyezzm۶m{ӟt:Do,$k c3%V3gV0t@_@Bdd۶,rU:zѣ%'熆JR kn8n|ښ?/>rJdd*jTVV#{ycϘLX \6{{cܹ**&WW7% "%V/bR^^ (` uX{gl$z~Vmm!)SFIjD !!Di))i`|Jatz|rgWL<8o" u`}CC( Wc06w„ 40H2?0ҥŒ_[Dgt 8CHV:skׂ)y^ff?8CHvzeWMN67w~@D;FFf>yJSgٍX$g;pY))Qϝß>/a?`6og'ۥ˜1?>|=^%f2ojjᇋMd, $ԁGOOիcǮ-Z4ANNңBaTS!aa?zB;>u; 55~E)##"ܤFV֓UΨ)wFH1:4 ))Qwv˹vMF\"7qq9RPeNݿ_PPbݻ?|ʬY] H `v46t dl*wpҍ% ` L>FGGY hфkwJ}fU!$Aa؂oް3 z|ի@G{2(@ u`#&<۷{!Ua&%S11іvP vP{߸XSO_bMafdЩTܲ~pv݈kgS$Aˆ/wwuiҍC232X[>ca!`:x JHJZcc3Lڱtҟ"ss3L@B<0 [ؓ'32 II b]]cHL{{{i/."A ""Omҽo*LM֮]O$~'X; ,xⅴ``:hh(FDyzsp03RF-Z@Q(iF{xLb0*+ |B B۷;ii)xAڰa "d2ǡMAٳ>zUbĉ6lv @47bdnN z'LgFJ; Aj_+X,//D"%$$礤P(=`?^QQ6,,!SD//^lddhcc׀1 PTTƏ!E [֮pWZnڴ) !аzꐐq!o߾{3gr\>USScii)//h"77?Sfbbb>|ޫDCCG`ɓץȿ\]]]]]߻Z[[ي+0 [rt{{l6ȑ#9O<oDO.\(8NϘ1/|$q}/>|E|aOB`h0p:Mhn;.ܿ_!XBDEE}beff}v B...uuuǎCA;^]]abbvM|b֬Y/^g[ {3?5ǎ]stܫF۠NWwɓC[ #+\"ϟsy2b:Udhhk0LLLx<`tss344TPPNJJk<]AA3]v,BAueȒ%Ǹ\3*srr"x |Mo޼KBmkk+**b\.ڵkKmm-B8H,,,_&%%`r ^N ,&&_Zlll 6n>jOLY<ꮣ$*7eJ{KdO7o|_R\\uVȬ[ɯ"33 #H$R^^Zyyy---[n=xয়~MOO>T ***BeeeUWWi"/_| |? Jǎy]Ҏbbb^yܹ|N~~~MMM{)B<~*** &s玍۷o_zr&&&BHOO!oVqqٿO3fLmwg>2󊡡EEEE$Rp}<gW Uկ%n(5zzB$*ϤRI'ʒOv?_p}q$'##ͫRSSn#eek/^ܼyǏv&%':uݻ={D V\w;vs\]]˜L&~H;w?&&&&%% 7 ׭[JR-Zd2T*@f2^ f0>}tĈ)ѣG_QQammaÆٳg?y_⯉O\|+66.|($Hoo{|͚ CK;`knn _Vm۶~AAAÆ EBIDAT>|ŋ-[lkkp8 ijjB=sՊOMME ;vy˖-¿ ???neeUPP}v:s挋SII !fK]qիË>"T]]յkg/wӭmmtK ?-_۷mv^CQQ?MIIH|*z**ee9tE[ZפR---W^񑗗wuu矝Ҽϟ֭#FgeeE7md2:1bDqq1ɓlvAAECCCfffTTUeEEEqf͚/_477/^XII)$$!ts-_|ٲe]E8qd8q*??ժU﮽{>}а.|SSSj1i srŊ))?sLFFϴd'Ns,,,O/ip۷߆ ^_$gCRS*;;; ///:YYY... iiiXwcYϞ=|5*z^*\zU|ܹs=*77ɱnnn.//GY,Jŷ}`ݎ+((t\H`򮻨$ FF4%%722SڱB]ᑛ[nmݺuٲeJ(22[{,d~ػw@ !2~4sss###3y<^BBBmmٳuC 8dIa淩욚222Ν+4 ?leA^ tE$_$lʔQ[ٵ+5#`899͝;W]]WA…߾u4&ƴIGoljj"3gLLLlllp8d2!wb]hkk󋭮~eeek͛WZZa8xk׮yzz޼ybرcHW \t&33Ӡ"I8N{@ǍTTT%zFn[# MSSShnnnZZZS(SSӔ 1 7cb###s9쿗Zh4wwW^u իCu ٳg...zzzJJJ.\o^[[驮~z}Up[s,ˍ066VVVvttLII0da]ڷ"!NmӁs-:\YY^MMAb.X!/{8+T6~xebb"˓nT]h&OL<%W>_=j6.}]'ox@ Q:v8@ĦOs+dd=L2*M0u?[}II P|`yrݺ_xnFFϞՐH2G fk;LWWEq ,Ξ4i P!^jpr:ZAs::xQQYvvt'##CxpWkk{AҜrC[{9v0KKCuH$dHϞ;wȑ:+(hk=!4rիyH{K ΝҬ'uucmm,/ U͛wpd_~f0?ys,ee599%w>yJF`lFX6?HG7n9g[UW7C0 zs?^^'<<&1 k dd>?vnQQUNN;7nkC˰pa2 +H.^_u3foaonka0hABB -(kҎ T2 7H@XNeK߮^=MڱS0a66àe PPA9zp7Ҏ *oް[ƏZX A M|ߖ,|yp}*Çx͛Okjrr33}ncPAۏ\&{ȑp4' q^ 55Ũ(CեT45?) kj*YX@0 ewߝx}xi>9][d"hR |ΦMw/ylH2 h |{ FFnjѓv8eΝve[pYYh @iiu?%Ce8;7izӧ P/\ppϟ{::xů))uD3FZ ${Bޑ#W<``HKK^Ljlԭ%>"Ȁ 9 COOoܲ{NeED\>cƘ/;b7!h~.IRgv<魯9u7']O[[#H 9))) f1~xEEE[[۰0wSO~L&Μi6s~˗FEeQɓM&L.]ZZZnڴ) /TQQihhXzuHHȸqBMMMZZZw666.,,ܺukFFFFFH}v` "Q((/돏J,,'X[}.lْt`]]]/ڹsfff& GW_?~׷" *tt'OB'Ç3yzP>{qYh۟٧Bbbb>|RQQ m%%%8ʗ4IfoGFϞ=|5*zy|˗/wZ922ήY?~?My_a~~~ \E[[ي+0 [r7???Z|t:}ƌ}*d `SYY/`|Q``ԩS;::-:tCz_(W\a``|Ǖ+W:4m4G w%Hv풕>>áZZZt:˗i4ڕ+WmF444<==z ð .7NVVvذax=a:::7o [t~```KK ahSSSUUp Bژ@x=zŋBv|ŋrrr:::aaa=/|xD`۩Sr\ 8aԨQ=ڴiBHKK'N444̛7F@@˳g &Lf͚N CKKK[[ԩSz@2Ytž}cDzXO0N͖=rȋ/N8A"l6_[[SHӧO/..fXfff۷o0 !RWWw1PMMMiرc&&&'TxBx{{WTTDGG#^~!g$0_(YYGȜ;wf̨T͛No7e)TQQ166NII奪bŊ \+Wkll{!g񜜜D|SS/^Y5j Ç]%?S]]kjjr!ym'H$/LLL0 C]r_ϑ&<33~i'Tl.{ڵ^><$T>Ͼ.v**>Veee(((ۧkjkk߸qCpۜkkrގaŢR!n wJ YXXxyyRa/ B8q-]kkkIIɓ'/_с* `Ϟ=SL ihhvߺu _3|N~~~hhhO[xZٳg㧧sٻw/&pvttt{{6H,))ӽZ344|eQQgee;jiiY`Kn߾mmm_H;  ߸qcYYrtt HL&dJ;~|3T0HH$am!rA믿NLLrDttt{P ARϟ/(.CDP>>NcNIgiii~ѱXuP>T@ " H?Ov:IENDB`XQilla-2.3.4/docs/simple-api/classUpdateFactory__inherit__graph.map0000644001725400016040000000040613273140076022332 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x63.html0000644001725400016040000006346613273140074016325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- c -

XQilla-2.3.4/docs/simple-api/inherit_graph_9.md50000644001725400016040000000004013273140074016304 00000000000000ac575df5927dbfd9b80f8c4bd46020cfXQilla-2.3.4/docs/simple-api/classNSFixupFilter__inherit__graph.map0000644001725400016040000000042313273140076022261 00000000000000 XQilla-2.3.4/docs/simple-api/classDebugListener__inherit__graph.md50000644001725400016040000000004013273140074022214 000000000000006aad98c19b46288bfb18cd5dad61eb90XQilla-2.3.4/docs/simple-api/SequenceBuilder_8hpp__incl.png0000644001725400016040000022411513273140075020526 00000000000000PNG  IHDR(KbKGD IDATxy\LϴoZ/ QRQ)K$µowJB6n B!V-ZJ,on*KSgfz?9;30 C(60 ]ʠ*--ݲe B; TTT;`P`q7oޜ:u*Aox𡭭-Ի.0$ܹ7<|u]ʠ ]ʠ ]!Z[[/\`3f8;;_|P2z_~mO>v}ӧO{gB555{///?}tSS7޹zuYiii Μ9s;v 9wJOO_|'OaaÇjhhxxxdff`f@ _LL HN{L&lmmmmmd2aovqq\zׯi_w Bsqq3g͛7B NNN666lnnnEDDa T*͛/\c_z䔓YYY-~z牞~ȑ#+V𶶶V 냂FGGw?rHoQ---B~~~jjjyŋ_|ckkkƘ655߿_PPǍ...~]!O:5f̘ ޿?vZ eeeOO+VN0ݽ}:uTMMMMMŋЊj{{Νdjeen biB~+(((((}xhh,B=**jÆ q=f˗/=\=#**"]7v yy/_.0 ۷o< $gN8A+.nZTTBۡ) ^WW׹iۻJJJŒ gg>={젠)~ЍT{;WgQM@SYYI++**hqo0@wȨͽpBcc/oڴ)&&f֬Y.\xICCCff@%''֭[xx,,,JJJJJJN:USS_~mhhhhh -C7s?88޹syO>}708@M6]vŋ>}155]t))77g._@ L2ӓB;wׯrss;|hhիz;-jkkmkk8qbnE{@ vE zЍ DpB}}WZ㹺u=zTWWsC|||ڦOh"n~} X@DDSjjӧOz ucjj>o<Cg ]??,}o`0A , f@ oذW60 ]ʠ ]` CÇq9/B츜ԻX4ݻxyG65==g N7!DƇ5QZqppHKKX_ /JK45eڎ6 tg;d;/KK YZ[z!@ A[)%%7**<kkwi8|hm۬,zsT*U󪽝++WWrtwr &&0ޥIO/ؿ?>'o Oz MMm9QQYìtO'ջ! c*77Իu[u%L51q ztSRy7otpЇ[ӁzKaaml쫈 #;BR|;v,ƍ ]]={lǍS3@GP= [DF*=[g 2xAwi޾ر˗vvz5GBb@&YB}02ŝ;T*b&z0.Bð[^8pmY˖3+wϯ̬̊mlhc3N@\}zӧS.\HUWwӃ o߾ǿ|EE&**ᝋq͞?֭s朲۹s]CmBhvv6ss-ggC##5|ݮRRrljijL п `h:**+MDDwmm9:ˋ❫_Sn'?ȷo+ܦ;z+ ?z1**+11bӍ[ Cջ!* ؿ?APȑyx'!UegWDFfݾ'=de h{㜜.X[;0`(],[B۰yy$ur ''wh]nIR﷟=[8`H].**+55{݃ǏW;en5a}Wt >sή }IT gɎw>iSDSSmVΆxC`J?}uRfw.ԩ#<|`_dJJCRRBxC `&mmgBBVV:O3F\`N6lhh9tZ8`]LJŲJn~E"QLL4 q ax{|OXjBÇЊܾ2**^]]Q pBֿѣօqp:p$Uؖ^ !!he`QdD޽]]o₂ Pؓ'/ͦPCBLM598ITT 852֭O= ̀.PPP:<r3gaY @wpP(ԧO ##_$$0bi0n70j=z|ժmm䀀%&x:**+""YOOq[qx8;V>9yƍᎎ֮5_~m.ϲ+deEhDEE1s2lO@K{E0A/`H?DEe%&pΘ1H@;:` ]ySbU2袧w[yyccvvz||\xL@WW֯Ys͖VM?@@ jjǿ "tyƏ1\Ɉ_6!+ԩx ]tANJzmac@ OԔY̙ǃ@ _+"#nzI$Nz|++^^cddߕ+̝{Ef;`>Pߢnx^RE]]j*SGXİUvŸ_ްbÆ-P wQQY X[81xX ,}F޶-ĉuP%bb^&MR=~̙c89ggCyឞW=.##w"`]TW֯/_(-SWrtwr &&0 O}+-sq "._vՕ;`п CNmmҥArr"}s $$YY:9=Zvc3EEu^^gu;`tP'grr*ꚻRXVVITTۯH$F@Ͱalذɓ'?[;?fv߿///mdUUU Аnooq㯼(i6y{x>>-o߾!77Z[[͛ի6&&&Μ9s11B1##!`8==J=ZT*522ں[>+FzJ=-[oUxi|ZAFǰa<m˖wtԻAER]]]׬Yv޽xollluuubb_ߍwttpqqܹ!;w}lRVV=ss!,,,winnF h"-B˗/ENpzsŊ];lAAA߾};ڵk _xuVgg>60h][ nb `J_{ n߾---ѱg%%%CC7n>bvÇ1 ,z""l2QQQvX'2ND" tX..#Gvttt [.b3tnv$$$zlL&9rDUUА}jasPPؚ5kZ[[{??t#69s `0k@'NNNW),,TSSw'/~CEDD93 t;ӻxݱ3`[d‰^^>TԻlGۏ#T_@ `8yXNFBB" W6#NNT*J[Kz!.^\Yɓxg.tuwsxңG]lޚ5?U0 wADw@x0;JKKK/&h$ C my/KK 'Bw={`Hp=ĩS)7:ထA U -ueeueeu%%ueeuM! --$%%`cVKA/_>}ʡ0|x+]me+V]_UG..w044ttt;*45o޾ĉ*x.߾}/+/+//:?HlEqrˋjhHYXhˋ*(Hsz@ttcc_8\^^?{ uu)z5.#e]z5Yn,/o4IAJ \`Rׇ [ 0HϟwVee5߿w 8hǐ~s46̙~8}O!#> ]G'b@;XOx5OvbѣNxgwB}N-*P!!!>ZQkll *//*/?|h7!!AAi i4II!C *..ss-sso/#"^DEeK;8Aw/*$Gno1b_Y/Y2 {&(>AA]\TT$\\&/\89&(ȳ{͊Wmm6xOqH/5Յ_H˘[qN;2,>w{55og 66mtovvEppھ}'N$/Y2irNֽ}Q›-Ӂ 0vraaMAAǏ5եud2mĈRnEE0 w^,50PחL7GuuW> Nkk#-^xTSҥf]nk:%ppʊK͘168AUU)*KHx{Tff6lbkO^`/鲲"xG$%6oܵ+@UU87@.Hl+-BwKt[XXCbhҪ[uu)l P(Ը7NXY]k)w(55ŋ'y{;+AFb']; п 'U 89ٕ54uh5.O6TΝGS\eQ9kieqqqn_ ҥǁ7o; w#(599}z27Sss;̨Q2RRv?yygֹr]YYPW 92o6EN~d6eˌ`\==<6EL ּdhPVC[,;";2;"'DV[[nlmm1c'3QN-5 #SLJ Lݽ;66ɓ L-3 |p6+@ ^KK{no++߽,,P>rG*(G&ygϊg=Z61׭{ޟ<nbIN=0; Ի tmEGy0#W=B]] \VCՉo n^3a2މqr^=}$+=~1S6 (葫1|ȰB׼~]M۷>THAA1c ܦhk CAQQS)nq劻މ;V>9yoùu׭`g0:+W$&XY ](~]Ueٕ--||\cXa-,=CGU'o|$~++<Keم `rSEF#wԻ7hC23KTT$f֖;VV[ΟOt鱨 L@ ,_n~+x/STZٌ ]0x(Ǐ/_~]uYAA II +xر # p~=v&5t+biy3F^JgB˘ ,Z'%%%߾}ҒLCC $%$$ԩ [z>>  QQ7Gojj4+GG RwÁ_ /YYYY%YYT*(gi`!_ONǿ=x06k ]qqq8@KKvOk##rt48|ٳa/ÁzDYEɳguulFNrI"xg˲{^(ٶJ^^DAO1bʕW?$%%dl]o}=3J"))zt}}EmpCQQǿ12ROJ=ZD͘1ue˂`-+Z[$!1 ,?Ŵ>~&ĉ˖(1 448|Jx`.މ04Tuk͢EW Xfynҥ]eeŴٴd'OV[bdaOZ[;N ?3jLl9' +a7`(Ӧi&&@hQ322223yyu&L7NnJŢHhnn_h:s~~x!yy۷ٝut< zyC1c̺u7}1w [ǎUpq<~ 0 cOqi,qqKVV$:,F3}(Ѓlm?axgոǍS2EX}h9Siiݞ=q9Z;wUV; x۳B/_4L䋝9y WB.xoaaހ0!1|,IKOMS# ={_NnիFᝈQˋ!D@MAII<"b9׬ p?1c!iiO~e`dɤIttFpp=Cn0 ڿ?qL՜9۷ߢPzw~$&ta߾;21ض-:;BOO,_Pﲬ֎Ǐ?>~ÇjNNv}} &A?. _qr;;;犊 od^@P=E KKm\R1 O^jUYY7)x)+KJ edA8e5ee))))dQccu,N ӳS]藓'lԔ;㲷OK﶑`j:3s薗(F[|My.+mz(--?%}M7QQIT6MSFFtf=y2E\|X@X?,-}}]7brp+ ^XXf$XnCR(TeA@ˬϞ>xZ = a99IIɩb74TݴiִibxCZmmӾ}q/F]n ';7of 88mmtmUj_߈W ]aaT*+0wD(JL|Wa3Q>>3xyaHݸwoO`މX -d2fqX //שS llDEe/#GJQQѠ w.Z[; F,Kꙛ20P ήdd??K~~nvv6{{ LwVt_22RQ #GJ>|z@>zBf3ǨH v@µkO'OV{`So>޽KPz|aذf`ttYbonju;c]11bǏ3f; zw޽M//#F Eɔ3gmmݻ ߼|: Liaaa=ǵwݒ%.524T`WU};@APTT&>m^gqa׭2E˗{㢢u{20lPy[3QSܱvR3PU7S8 II߼xQ""?}&,-W|?(7~رx'6my}͛-))fl~myS).>R{&ˉ١7}moʀ ]kg‰N LT*V_ ʲ?{Gtt…zzO=Z."bիWtիǎ9A HFFыm>-/UUFYXXxͿ{TLLMbb6\ݼyS^^><<챑ܹs>}--aqrol,`D`<ï:**+*EM Q[{ĦM66~2O Hlݹ3&"ŬYcVIJ2ַlbbb͙K;J@?qNNN^^^rry~~4c# }_I^^^^^^Pss3BHJJ?b VV:'OJ>}̙ExgCԻ$R]̙{S25=t[ggçO%&npw.`F:PjjŋK Z'++؈ SWWoiiRgϞ6lajj*>OHH;v,tg1WWWyĉQD"JJJJHHH$@v횒iGkkk(++_v۹h?޼ylȑ]{g 555~af>>ׯ_HץKmܸ/j;wˋ/Y׾1'X oo.l7ɪ"""Lխڧ/66š5f11j8=ջmmP2 D$%,YrQNnèQ۶l*;[o:f:L+~ے%K\\\%%%?aX``ĭ[>|999PAAD...WWPPmm-a׮]Cۗggg70Ђ DbPPBh޼yD"100!TWWPUUu%0J*))bm6--3"/^葨(D0,44TKKJHhѢӧegg=z׮]?} -9rDKK+;;;''g„ 7n{vsPUUv"]Sukݺ")FF֭[G18SKKw/ z?>n<{ns机vikkޡߏK[{ݻtoF999mmRFKK+$?\wޞLP=zD0{{9rdUUqJJ.aW^aqAAACC''ѣGTjSSBz. 2228880 {%B(''B(55kd2YJJYZZHח;ڏnRUUKlACC֭[c߿۵1'm8-@+Ç1 -֙[S߷?w1 ȔP\\2,wB^ !D"Q߸Gs{dkl!غiSn5k ^I=<566&{Yx/6B{ NNN%%%޽믿vŋmݻwyyy9i֮][XXŋ[:;;^.lPPзo>ŏMq IJ ^xN`8x Km-$]#Flpw w()%%w؝::st2~̙3:::ݾ}[ZZcϞ=JJJ7n@}0Ç1b,X ""biiy=I$m;H\lGKK a{{5r؎; IDATT͛h|ŊD"t{ /^~}kkO_Bhkk۸qЂ s RPP[f -\]gihliii epbc_` *Jrr*]{8s\_c`:߾}߿?!4C|p҈'';ҶmJKK_w薓͛-ڻg(WB.x=Y2gwכP=NKWQغjѢ\xnqHhkkspppXXY,9IDfܥK-8kPpn]]sx˗ӫM>*<|C$7ݺ<vʕSN;K_z)((I{l:7)G?/8QeO |Y֞;wW||\ N\.V nR(+W͵:eI&&& L0!@9%$$~Mѱ_7zBHH:Ի VfgW9sﷳӃ Uv8p'88J`:K_VUUZZ,:nffs{)};;=v!: ^,Q_|B{{}|uwq#'S8+ԻiiG$fe(AM H2E=:zމ`J\\/7l6&wTǎ%egWy+ W}AJ |<|LOO,Ĕ.Lzqkk'kj02z?II>57zȑҷnzd.awd>|~޼WOO}0Ԭ]{#/MV@߽rpp _@@'Q>ÆutTa.57bc3. u.XLLnZZ ٕVV:W+)avhhHJ;KKh wFwF!??ܹ~HmmoM+, |cNN0:deo^~`}czի2;ꉉƌ;aݺYY[xyqp0#<<Teee9fo!woYիN16VߵFSSߑ YY[^B cďϮ j<=X[jm%EE_ .""#_il~u,;Rs==.\8qk>T۸q wfs#kj#bgHl;`0'heeuSC_^u_;i*ޡ DbWuas玽sgѲx'Y}?x46VONx’̒Iߟ@$QZB޻w@az|xҔ)_,;wnqR IO75=`@Ɵ~Rvv6w$OIuҶm|}oo'٩aaUe1\on~ܹWOKM4wXA޿?aqRS7ßy!11'+tV4""͛#eNNvggçOrs3>v,i(j26ss~I1P[ZZtAIIc?\\q;c'^}xR~:PݵSgSR.,|qr/" 3mӦin5}7͵ĶCԻmmciCuV\.++w( a,-Op$%i$""vYtim4M_Y;v~ ׏:|x==8:{]Q55I ¿MI51p!kx̨i[FZe 맰vcIq5kϝ;vВ/udpk\w[icׇݘk%%;`@YVV6.\t%CCg ۀ!%!᭩u>>3ѥK~n$ǎWVsq jnn]양QDaUZuEEx>T*vrϟƮ9yrZM"<s,?lm/w=45Qg)/[Z |o76cnu:8r,qkDuVH;GFnm12ݱ_r 99堃@DgLw=`ژ7OOnn.,qqYm;;`)*رÔџ_a0U#F_sjΜqII^֏Ξ}ǝʦ,%--S; haxI$_.@#)k蛮C{iiܱ㎋˵ŋ'>|计!:XGƫJX1 } ^K#qCo rԷouv8I>L;}8??˗SwIjτ ..8|ӕ3240}8wSǏ=.e\GĂP I]Q# 5A'ѸiӔ.dJ%KtnvO6Gq}B6"blv#&)77wqPA!.~~NN))I2bYUU z-iiQЉ fHNpnsw}䈅M[@GgtLs6/_~3ի۷pJ +w69t2__k>>ݻ Vѧ }kj==M68pѢ @ vϯLߖ1̊߼vwG2#ѳgmR[ۼ`={bZZ:#LQCа7z֭4Oۛ6߿ cq  I]rۧO :FmmKH 7bbΝfcHlz ۇ͜מ=K2=EQFwh&%k4 ޽v퍗ww# MB(5566ٳ$4ԉ g rrʂR77ܷo53~k ?W1_R(.6 ލ~swvOO: Ty9>!a\ ~~y3mǎE,xRNzĴZ{g'wǎ;x|+s;--y v MMq{Ӧ۶7,痸fMܹjp{]NwX#--B|]1I$=*61G>͛w //3AL}c4s/_~O9{FPt"첸]͐ه ۷/2cVC~ml^17miy (QTT:A1?ӥuk^;wܩS\C$$dǏ=--GuuGiҗc%ݍ|}}EEYA }imeʒ߿]&Vﶶv::Ȉ?oDzCDG#ׯ32Ҍu;Vt"%x˂]YmM) 45ccZ߻aΜc 08Rp|Ԭ(zzޮnr q/_Y>>DK@QرCC͙3U@g;nn.U99e׮ rԔٳU7lwp)/I2 cJ0aC7`nPPʣG\q3 ff@ǁXHlrooSAkx9GUV6 %%L=V__"H?Ǝ"HlPCWwsrNxm:c2CAp;xx^fFTfV8$nO'YZN?^t0ݵ+l =='O6o6 |jbC <}PQDNi_n[a˖S\\3:/SӀ>^pr :XVVYeec@iUQww7k`xy|$799xOOgvHJ /]zv׮`#$**0rw!hxWov'^ffAǁX·o?H$J}}F=?_}Ԩs ٪!H JJogϝ{,.. t" ^fdݼv ii& :;I{ĸF,_>GI %BA;;%Z_WSpsAx˗>..BXbH _]kWڒ% AW\\cn~Ν`'ϟ+E(lnaqׯfJNNuICɓV[j?:["ɉVW7NA޽tyQQͱcIA̗iѢ..Ǟ뀎 -)y2Ņ𡤶]A6o6=|8t̘aC/%c. }ջmg&ob7 %"|HS(, EE Љ SQ9㉌^4 ýo>~]:op& ȑNP9W_ϸ6lǬ0<+΅ gI@y /77VT/62?j.X} 'MCC66mϞ%aa.<^0hg' `zׯЗ  ))oBmK¹P ͍wԔjwɗ/UrvH ݻﵶvI"## A@nhh0lf F#(~~W ?z>n DK+, **LH_d/t#=L^^ AAx+3Ȉ"havK nL@8UU ?;yY~~Љ VKvIFǻKKME۷/GFfҗŋu?9c7n [ٻ///w}=S; h׻113իafbbp. ݈L%ZuQ__-1S]]t"=4456#Ņnktw7nm:j>md|u+..@ Ѩw++23XZNe~ږ5k߿Y8꯮M |}~F$$;:߉vlcv5kk owfס/n5dfA?_ٳy{G={ĉ (RLLֻ4 HHYh.}Np#F1sF(++ ~Gٗ.hkcY 8Ν`jbbޅ s|3+s kqux}K3C[YYNŝ;wfݺ##0']̚kǎY!H^ i9A{9YB"QMcC A ~=WXB_IH^=g,ooyZ~J?]74jzֻŊ"@@P(jm3*)kҤ1A{زeAMMslGAC__3occ-'Ѝ;VX AԷnVV) vfgwС{.zuD6Ė,=w.BA~5;yHNΧW<<ܝ$zA(=Zee) Q hrs+LL|g:8mᅭ@ ƿx=g8;vM>>\Gq@o.D)/WRbs!NsKˋ=z?`; >:::ʡ ),,dDkTU,l2C$"ͅ v 9EClIBQ onEH$+*zbiϞ[oY3#2r3CDLL{wݿٲe]IH00;n5tZTٳO:<>>nEn%A=V)(  @UUE`ddK-ng_q Ǐ'OuKP}u4iҘ>EÝW]ˋCN [J@DPP7o ML&yyy< ȭ[ƍJP544RRR1'!>>^WWW@@@VV,wƌP/ ۷oھ};HDjhhHJJ?~JJJ{7vׯ{*tÓ'OTTTŏ;X555)))77NO;W))_+,(+WN}tY@HH %r# BCy$WVv[{; VEP<6m :B$22kQ w^eeeBB ߾}!ASSSyyyDD ~BQ4444o:q℅EiiiNNΤIvIͼzꦦAmiixbUUՕ+W[ZZEm۷otϯySSStt4jFFFiii***d߅Ķm7t #ɾ71S˫VXqֻ,ֻ, ԏz!?/3ǽ{[, 11 6mڴLQQN}SPP`bb2y䰰0---D"Q\\KJJdee1 144,..>/,, Aqq񔔔4}}/_rqqu'999A~J}^^^Ǔtdi9EPƍtoIhbb]cx<>--i)JTTT}}u/^\__ߟݟh4Pt)((Ľ=IGAccc.]J+V#'' `裯!v HHHHccclݺݻwvIrt]WKِħO=ٳ:R?$\\ pf]UW7._~.,UpɓV8t"_.\PSS-..qF<z'O݈ի,XP__砦ٳeeeyaaaa]]]'8q⯁ý###X,; ׯ $}ˋL~ΈYhd_UlJ֯TD2u 5a\$p, ۷7m  qTS iee5F UUUYg_;wX[[⋜Qlٹm'3 sr6m~ yA^^׻$?V8jԈS1#@tp|bE(Z;&!dӦty!{9eߎ$8˺o*<;.rZZ:7n ?x0vǎEN""|Alܸ?O2섄쪪s6O};}ɒ3%% @X]]27?77nٲ@CD;t %%%u<8˖M1B0<5zhʩ$/&&t pa+ֻ ?OLL 9kq@Gᰶ3oL)eemVV\]#n$!DE~!A,ֻKn:y+&GEm f'AС塡N&&~DAz=(8͏x3nbG-LQ!j.z3eRh}#to,Z- p޽..@garss:\MMf_޾0s~w!NmllvBUUO;;_o=r"3sԩJàEL7s窝?o{ڛ'1 ˽dNdd: n[[-> *euԴ` .DÇ9kOzʕVMOOfk'( :wZo&Z9ʸ^Xԯ_?}*Dr{;?. S(%&z ~8)( '> aAjk9hk !H>>ѷoolcO fY?6u+y<Dž 5_F,S덵={b1;PLQRQs݄ 0\MM3wuλNN7eOHrs 3}.xyED` w!N-(rd8m|(GLL`66z:nȜTU5zyE/Z4l ,,\bϞ~#_ :Qkpޅ@ yzFvYSE~߾S ~j=AAS($YFh;f͚EE5L9>{vY$))2njԊIIt>.7BK II!88XBT]ݸ|uwi*73gtq(\ej4p˗mlq6X<<|jjZ4yO7oXZNqr =)Q(hf]1jb#.xޅ#3ǢEzj';!dS4{aA q85&a~~ccLAy9pss;focvC ڦO; &w.4`gZZ?^.>~0;dfh]]KXغO\9Âej4!R[p;MtٲI?JK@af !4<ҥ.55u "AA^ 9dMJJ:G.4d2ȑ͛]YЇ%!ihhwjh9~,t;EӦqa@Aa  ,PԚce5tNW\\rĿΝM3wP_W8g< : =-[6ʯ_Aa_D}v0A|bAP^OL`!( 3A}h` _LLp tuGZ?d~~ŋqq[g:`ej;WY砳ceebc. 8R 9[YM]>,"@opsv"''wb v׮:8ҥǏ[\9N)ufRݪƃ)di9t:,]s~&o"MEEŠXc,Ľ~۽ۼxuL֙8 zE }s- @\(FE?v,e4Rz2󶴴Ȝ9a`~ٲI/>.nTTedD&l˖۷G6:eݟd<< bZ)8Wu~34 PVV޽33KVwRz4PEDl`A}յ:;_gxOJ[{رgzAAz&..r-(ee64͛`}ˋz t ?hͭ07?Ƿo.(UU [\73;ǝYXIJh`0ttF\o.[6)6#LcXJE^N΋h22ҊڒQlcϟSQbB0+*i]؏KQU~]UUtND"QBBRgd>ΝC.V^F q9R08zmRݟ?޽+JJj%cbb\[lUUCW&':q"\SOֻPش隍8 0LM۸q׻V$,wƆNGPv?uIUUZMM&!!tzP:ջ' tѼ1'dRAB݂t]?--]|E@jxmm#GO &%yyzlTbMҢ>rq gffQt|V[YAdyҢʊ-^|{}5K K5 RRRkn~:;=WkipǏsg>zV{p&Iij&s_,Cbf]]ݘt).ADI. nL5)/S suu9qT;.. t : ?~)+?8m5vpXr/˖ƎHlR@ooӫW~zAǏsgth0Hd Xr k]o鶴[ WpXЉ8L9q⡵3O 7}o~Lttn]./ **RN٬`0&&=:P}V=fHY{{QQS4trbʉ+셅@'b3e\\SO#{9G_()?n޽ ֗/U>Cq2A;w2VývG-.\xGyٔTAA5 ֻ_QQgjcb˫v-egrsKE@;^=c?|(efPHJdH~fɻEVKYǎY:h.h0dk ֻ_LM=A,O曚'&z-#@ xA0\U@R1޽KSwp))a.\O2xD"uwoА_o{,;xAxkAPS%(߿zw8xkoy|p+fBQ̙$3[E@'bWD"מqqaXÇc&0VFF!t26JO/odkDqҠ veY3s==w튾y3 H0hpTTp8 &Tp?GSH$iAAmn?>thp#+Iwq8_d&kiR1 ZZ:]\Hqe| ..̳gAϟp8*KԻgH+&<<]]x{G~d~0hpp8$w.۹3j+]44YsΝwW8iLFpr8t]nn1#b&iiѰuE>>wAgaa>==S4Mvҥ4N:g IDATsn$%194h2_TN`޼)F+2-; 5),d耜o,ܴ`xqҮX,* F&LP8{֭W_/ƚ))_:;rQNnn,uxӧr{Y}\gkiWw@ӌ'w.#);wޥ~(johQbp8Ş-^|9.nɊ H#"6rn;v{-F򌌴o2ZSS葉 _weMMMPdwec᯿EGݽ*%W1U^^gⶲαL쮭PRR X,׹s6//Gqs[ha1555qJCuucmm H}}kBB^Ņ9sfkC&uuY -, :a)J 448$PU5?Y$(e>${nBA7lРPA'b,,kjjS%%uW=r`f26֊H;zԂ/ :񖏏gٲI:wvڐ5kccXdD///3X&.:r$AOH䬬^^gάdd]:U)$ı}0>|haa`'!$4ׯ;Aga+Vq8k-߸ڍXy/6##-?ǹ&+QF/A$_{ʕ.?x~DzX.55ټ  : ga?P>}*y3D$AA)OŁ޾nk{i PnF"A~#jcI&A뇤aa?^?ƌ%/--)W):Y[ۼv'3tLJv_nmdP6h贴ssA8e?(z{G2rqqa0o| 60"A@KKɕ.<?t^a0՟=:de§̗/XDWNNl7 FDljظ1]6l@ZZ (R~`~?dg؄A uuW&%y9򜜮jpXq ba1eݺ9sr@g镁Ǐ?x9h;l/ *֭cƌvm}Z; 䛛;JKA,e3--v_r!f y;9VUS=x|jٳ6OC ٷoWZ@gM__ WA np3ut_vO8E;w2ΝKc0^Əb&Tӧ44S((b\jYYv6WTptunkw% pZ*Ȋ~ MF de*)I\SyJʗY8v.%DGdW=PbbW8>: m))dHcPFU )[[M{yE;K֘pKG[{ښ][{KG<<<@۷qw7ڹ tDLL{wݿٲe7ngTԗ@}͛UUUkk>rgڄ޾: obI]P.[U$%yzc^znKuׯ. B]D"ݹsl v(`@arOH~ , Ǐ]O<@dhCYC} ǒ222Ȝjo4箚,V=Ɍ5"%} ~[~hj-\8^ b0__ wiiz ф 55Ϳ~5Ýee1sHH (+W\r%=z3z=H~cccQy󦪪jKK L>wЌ3={ ȷoߨEѸ8~~~cǎQBQtȑHKKwݕ^hѳgϪhވ իBBBjjj FE'NXXXL4iΝ433CQ466VDDdҤI(EQ |=''GKKkݓPgR(///j/_5UVVVssssssEE͛SUq5@KK˟P;/_FԩS999>}>}Wo[?zEQ+(x\q]@ngw t ^{Wjlkʹ6lp$3EEE:::]hkkOAA[ZZtuuODqqqv#0 8cYYٮ|]jjj```rrrjjjJJ ?$UTTnSP{n޼yG } H[[޽{޾}[/ v\UUUc ~; Y__kW׈G/Ygڴ+WNW m߾5 _~b|ach QVVpBOOO3]B{{333/\@}211Ĥוv!!!5ǧqqqL4 )))55ZJKKcآ"߿*..ŋoNII%]6//q?#5s]\II qVV֑#G/v,O_V3~eSӋP:U H5qqYF~Se:eed/&MǷS֘fXջCّt(vp(M?O}GB#)C_ K&x,ՠ {fmLP[n%''!}ĝ;wHgg'@ioo߷o ͱK.čb ?~䘘?ASS .L>-X ,,l̘1cƌAY[[6666+((sN_HsssKKKy@P޽;77777Ǐ_)n]hssszsjjYwK2@z2v9Ç1L@jq'Ў"6a(A8Űw#i/**06,w$F;Kr/:pXfv}…oooqq񠠠7x///WWWwwwUUՃ,,,k``0q'N bhhѡ ̙3 up*00PNNnԩFFFFFF>>>5N:KPPP#_3*###ccٳg=^89MKK^BB = =h@ϯi̜Sܗ.-+ۿ>˭.c) da^M133kkkDA'4cj';Jߖ> 5!C[ݫWF JKkCy5k )hkm=L [[qzΝQAl0yyy< ȭ[ƍJP544RRR||lF]7vׯ#2c AhkJHH(((xyyuttH}=ZRR޾lA s #Ff=ׇtt/7nli,;͎{;, s窥oo'BÇ%D"y4wSR~ݵk1W,i۵+*f 3:7H$,;˄Ii^{Ū+Wpss]!ß3JsN76QZ;=^ fCܼ)::AZj FFFiii***]xed2 Fw!EQBl^mZUU{JgAh8uꑞaK&S O]Q%˗;X[['_Vn.#G˄Ii^P__|}}x.?[uz9]w|e< {h;me+DwW8

cef9ό: HAAA zO _#G,&*++׬Y($$4uԘ 1hMBYY)W_iU&1z.mo'̘~763.0sΨ:I8ԩJESpߪd2Pژ#) 0QtttSS@pan熠555g憝}l}ڵ(U?.ޚ illޭ[{n׮]}<ɂ>|(ڲa,,n2222##cժUW~[s/? ,qvcǝo~a_0ßӋcYWr³͛ /M{.wuA"?b4r|UU Ǐ?n 2m:Ef4;wnĉEјYYzpA%%%!!!==7o"}EQĈFpիMMMw)))jBeeeuuXEDٳBh~y3{Ңi%ZH)d)K-z-lB (P"*Ѿv7QS̝篙=|ޙY&)))//ﯠ &&'zK>^4w{L=zPQQ줹ߋݺC]nnD]// Ro:u{J;f&C] xB߾K?ojkc"bӡy`&̜y|ҤH>^KKKZZۻF3< A;֯fRlbA= Iۣrϟ딕bcsߕ++aڴ}io p))40!0vIImd*Q?On455PoQVV_oܸ˗>lX|||nnÇns@mm-ǏիW? =tPIIɎ;lB@JA3gܻw/)))99?ቼs˓ r`aY]XQ.U--ZtǎZZrr~Ynn"Zh/6yyodFw9:OOOz6 w##**gو1 ȤfҺ>wANMͿɘ z03)f:@Uտ <%..{bdjpFA7/IEO !!2HH5j3FÁwYUJZ###s9z6/_ٓ0^i-셄7噘tttmw_c0 coo˗*z rkR<?L "󼼸 gړ'&O?ֽgO¢Ef& P˭_%w^PPᅙD.(@ZCﶵqEAFKS񙊴vdΜ9GvAHHuD"7N'%%EYysUUUz reR<րbN^IEdR3;3;LOv}[icͲCC3Y6@qw05pJdeŔF|fe.}!8s~NҺuWddF-aqzNaO}zxxu {r}Re&i׷" &+LXSKف$%EX3 `0G]ᅩ/^54ioNرEEN^&,̏6EZZ...6Lecpp"Wdb}}%qq!AЎǎUX؜ 55iД_"ean>իh#w„=gPX(]^.PGןL8Ņimۭnnh.!**IFjĄΝ[eSX9$Cx33G04TaX#[g`,F1a=x ,,4rsːVߕ+.e𪪪׮]cp)q/{ -6D"GaaUaauaaջw]]!!>]]E==%=QzzJ21_&$GGF`= cФx쀁Νw튟0AR5 **ykF͓',-5KL9'N,渢6<(<}:}NrĉAAUVJIy kX]{쇺 ZhÃ֖֖sq1o\\nWAXXԔbUtn,RPPܲcRSddXkxQ>@ 9D?3{,#%%p} jjH~,,4:;oVgzf.UUk !"0}xe呗.eCZKmccs_qcmA[pjLZܘff/g` }iofAДCjիσ"#W!owDO"APeeOPp8)[ว`_1cXd >yDEϝ[vc//;hf6:$~UUH ׃'O>JH2u￝?3UGG!p%ʁO21Q35 y?/C2wrH$o|DmRckceo_{8tص e= dqq#(AD4*<== YSSM.ZBi-\'cװ^ J֬|9;%ݬYHka}gITT@[{0711?=ݻl //3ܲM5dr7BcĈ||Jx|Z~R|yW\tf532u䵶fǏ9GUUy }}Y􃃓r 4RUUOeWԣGSڛȳredCC{BB-(vuZZj;&xF?LM9gJKӧBCzBg*SǑ_},fGRed/]z`S.^|^H/"b%'ɳgUNơPVcCG,\i-\N`H Bh*8-,̦%~\c}5}J._&ȢrK; {Աu#G0܉x""fֶ߰~<56KNdO2CFEEb^ oP/>cR򊩭m}{#3:㉎DžM 22"X}>EE ##aaK<=me yy_]{46677G{{,x1nnfHk))3,0ij̩/]ʊ"Hm8!Eњˤ VVgcM[=77w10Pf^6ݻffL/J2l!a%!=>>kڰ^JoΝ M b 7UPEJ ]-K/^^OnSSFZːhovEx9s 6oU駶r_/+q73:yy[`x]y[ãٳOˋ]i!՗ҕ+UЎb1'j<{lN=r٦MHka_޼|@!@_رT3g2ft _zrSmlB }|sF99'GLffozMdvoQѷ_̨v{`vVqUU Ԃ&X[kݛf@{~{w|Qab $$Ĕ\ۓ61[jKsH͕H!#xɒ))HR|Sٍu00PFZ uΛ4[3},x>~7ov1vQJE/{#˗O 얝!HBZ oo8Qi-n]]ўKU2 سTcԩG\Y=u*sؖ-)P_ccUn]M \ꉴ@&C{mZ@ KKME1n̙y}xyq|„=˖Y=c큃C 'Hvv&>x?͛#dLb (++6~"VA)) Mϟ$HkaG""jjٍa@W [@|`R[wq64qhJZZQcc;%997!-Y`{{ׯ z),-O??ϙ3ˊkOHex&&j_exTW7}wp`p0áC>~ _:.`bT0'O>!Ǚn\!4+n丸;w^ hjꈏkURbZ ܺ_5. K34TҌVVZVVZpQ+"(ܮ]N&N`씶ʉi/|QQA~ٳCCr_)~ֺqY7ܰ֎ihhO K_~Q/44ŋrss4-PQ?‰UO#&&/eeEu)E)119?~?Ҋ>%5ê(99>>q0;Hr_$&̜Yؚ&ٳ -2cT…7յ5ۙ&*--*I(#d4Zч<^ DDe,,45Z~ҥ++DEe?NL,x۷&"4r0ۮ9|8۷Grk+ N2fbs O.]5sNוa̳k+,Ȑzcm[[F-VKOcǝ#G2;# ws*HLBTT aXܑX^A(uœ'۸2Lp@wڱc`޼ êzzƏŤ*t֭W0[3;}}0<{Y+ny1d eMM}3ˆC"֯t…~~ӑ ,Y Aa6oVU+)i!ȓ':;"-P?{/?wTԪٳ;OHuv>:,^^0]'F󛞗u{ô}|~bN\\_ߺkWv)zGիo8cpeQbyyЅQ 3"9r7ƪPII3g2Cr߾Ģo̘1~ժfxpFG4ˋ# Μia&e6ov wﭓNmI{{'WfRm𘘜.Šhٿqq1qv6چpzQ3ƻOڶ햱 c0##/Y+-SmHл{ŋONX=6OFFl,-5=lZ8w5vvG솗W227E3r}ij`%HgߵݓEO:Ǐ^ pHի_=OϞ}݂3 JK8}z)BUDjGGGFL&AQiiLMGf7Ա>oѣOiim㉃֭?Z`A]0gN% gLa##_pFjFq9s hv:<|n!%^^1D"h2LY_sBSuxbvv B8zhZ[k*?>`+|}L9?wPp?յ~wHHH$ri8򡰰N'/^\jC77w7nԥKڷoM7n20aO\A5[p!nD/ =i!\ɓiQQY{/0gg#ȧS2g6"-Njk˹77!ӧ[)sv>5fLSǥׯ+8;C]x$(qk+% _!::gНT0rzSmmPz}'n*+Ra!Dt[ SO]qX"|“ŋͅآ @TT#**kI||LI8ņ@l4a*Z,#%%8e773//9s Ǐ&%@ O?|ׯ6ȑh!%E;;ٽ(QD"944yRR#̚=`pͩ M2~Ԕ=uj0OpNmm]W<[ƚ}OFZzčy&i"؝b0iLR28|| ŋO:~WjvY Ͽvzfdl=p`RaaՖ-7&O>)lλ7o}T;<S2i~~ss^222dΝwꚑG6o6nO@DsyAA/YkoNM-Z`$O+?b ==%޿nfTPtﴝ;xxXJ1I@9RxݺᏗ-*^7nB)'N`c`` eetwEDnjQ|ԔECP\xݺ׮3g{RÇw5溺nnCq[<8 &CGNNLFfĻwHkZNսt)q(t %K##: Ng+֮|9ԩG{8#{W=f< MYُs{-K )7&&G ᔢĪRw;orFr^FTQí[y$$)"<<ڵ.y#?D --y4%S4ICXѣ+VLBZ 2`anu\ e m4m׮VYH"-_HpLލׯ1B@GGbd>ċ?y'-Bj;~\4@ܲUh!$]N2(t*OUp3||:q9**R55Mxre=_xիVZcʨ)S8`@DJHH?x~WPa77n乺5+' zˣGS؈]VP[Ls;|}841KU\<\/EMdĭ[oN zzn~E"\J n[’kk/>7ztx25`Ѓ}xAA>pYnmixC:D:[̈).AZ #!Hmm,A6`OO[Hb8W [^^vbbIIoWih=є_ڐ%0-3fFUUy6]4I^=  YZYiqG.,6S` MFf7=ossGaa˗充ձuul+JnB_k ff~Ԕ*FT[N$NBtt΍yYc)E۷`#.^\p#3HL /^>Y %!JhKl\\LJ6o#VAݻ;_HkaD7xw6v$X,f#GԈ 6~[WL|nML<|Eo~Lrϟ֯).!ɔpLʕ'de}&I=ZƌDccEAA˸qqk#"DD6mܣG\YhaNKK'Z䖩ܾ*=*8ƛ88[},vq(({{O=y2m>qO_,#-7ϞppپGSZ[(;:Ŷwϝ{Ç}SmP]<tu^!l٤s$mn qcCt3N  g.e{(O DEQDDDW4`jwY D?{53G(O|rs; \~ia?58Łݼysuu53TqQnn8z7?6.O?~Ԡk&'fTE;:ffp+(w}}>:IN~_W =bs8OOY] oR libބ)) z`vvZx**~M|2Z߯Zù`\dDTqLLwԣÇ/_Ί_?zq&̓7J cnn4Ó^AAp37o^~Օe#R7o*~uIJ 3w\#F=lhhxAEE)X,F@mߛ֯~k3r[gۗHiiJJ~ԎX,UO++ऋ\Y.f8O~Z\QQ0,hzp#{E?S?}ݰ!&)kQag[ېl0i-6qp}}}YcP8G{DjCC;v쯞R޼ hhht)!ױc#l~ԎLߺ3| wl:t/^\A4RYKEE i11Wi]azMYY56 erXAÃioG.p-ltOX[Wr=KoݻB_2QQO4!xW׳oVݏ'OxyqD"9=%a޹@ O޹ׯ6xb_!(}PT][Zd)2N-E}ob\ܺ͛a8:13hYP 21BEAhC@d2sөc|$σ%.}6<|觪* }XxǼ, Ls˿Ad2b0{ĬpO40̘1~X,MI,*Reljٲe͠(biiCB8i-A\\QlNee]-[ֆ"ڔjjj5 ¥K0FII 3f|YCCzYDss3@Oq gn)F?<ܵǏږږ溺Va;:YOU7^Csbbb>@ Sp"de`07RB1i~~%AwjkkVR45!uuϟ_zCae>qbwGŅ6m:o1'ؔsSE||***3C_۷ƧO"' }PbC$d1cQIDJ HI_f{;ׯ_:x<]IQ[[@Vq|l?^[ecee__T:]`0ƧϯPVaxeʔ)D[) 9ǎ~?xxx"Xws57wq[LLM, Ly3o˖q\:^)~Y޼y۷oeeO|S޼ywmllS\ ;v IN nRQ֖WQTSVQTSbjƶ-XCB[[iSTq ?~3z.(D6tf@$Y9=q… {ldE.5+VLڼa۶[nb(= ]XUpdB?w׮]jooYYYPZZ`ӕ333wڥ,--|&ޭIIIzzzGD),,,((hnnP}=CCC!!!yysc01cHKKĨܹO&Nxq@CCH$ VX!%%5j(J!700'!uqqqe֭[ QCt{,} 322lkkgf`0ѣe5̶nuXPZzhw۴@. B rs,-5ߟ{j."PxJ 4s}h~z,_ݽVVVŋC͟?h۶m?̘1ǻw-,,|Z;w&22ȑ#4GEE@ooժUձ?~puumii9<ϟ4ݻw̙%$$A+v,YbggWVVVXX8nܸݻwS+)((dqb99|`[g9=x@RR@ @K&rCFFF]]AA:uuu O򛪪 `ԝ\~EBt#߈'H @ D"ϝ{0ODZu+OYُH$ !=F۽{7eNMM :--6Uikk߹s({jhh mll$ɭ$Oϟ?~lkk#HO<G7o KQw-իW"""x<~́GqttpMܹA~eO(rϟ?{yym߾X{{{v=~D99tCBBS~`ݽ;֖ۊ~eu<//;f_) (X,q_#e(+Kft...vڢS6~U^^`0{{/_`qޘ1cΝVϟ?5jMVVټ@ HHH WRR2}tcc˗/S0b//ofhh(,,9s>}4##c̙:7ШVgkk{-Cpqqy&A=8}Kp8ܼyܹG-YDAA2e *PP1 ذaI8~<AIǏqY74PUΫN>=uT???F)))xϟa㥠WxKAAԪL&߼yc 4L>O"q;;;]]]޼ys0,蘐PRRbdd4eʔO~WVVÕ$%%;w!XZZfggQ6}a...w޽qㆥQ?KlLETVV\K |Oq,!P>޽{moo߲eu8oZ0Hl!R^^sݔ)c©w`0EΘ1++& M9v!J3kQ2h9}zxx8ue˖ر߿߸q#%qXV ---x>]vZ[ZGpϜ9cffkggwe//… }|||Dm֭[Ep8===MMM{$.$ӄaVVVD"q޽˖-'[nh+|vLZlC044 Ws677oذa׮]ǏN0ŋ!!!o޼ٶm[llDyɩTyy7T߽u땬hp*{@}2OIi ('66GQwDa%%'O!-^,-&/ԩSx<w---+W\vm{{;uLmWW[cc#w+_ǧ@9gazRtر#G*))9sMFFkšxxx!joo۲e ee˖IJJvvvIUggV`` !P GUҷ0u !mw)G0{3s̎zD>‡APwwq֮] Aкu댍 W U[[sz٠̘D7:wdپ$9Du IӧRZ]|yƌ,kZ GэaʹsJJ߼@Z]\yy8!.^YwTW^ԄW:uJGGGDDCF͗d`` (((''wAxc}}+AYYYJG)))eeelё:x`tt fi IDATeddxc  H$߻wFwwwIIIEEE???XɥKc!~~~ԇ+{]NN.-o3gXYY k? ->>^KKKZZۻ'H1ğg>o;"޹4K$%%l2ʌFV%&&?_MM-:: @99w'w|;khhPR̚5+22r<~? WZ*((/5bҥ߅ xi-neu#~r8poʔCmFgggYY܀Y9;eddܹ1}i,̶mS8[6쏩9r wς{spp())yׅy=f͚rmO5Pv8ts9"$=; 6NɼKb AЗ/I|i̘;n#-nSV#Fff _AҼH$X!hn!vu-QQO!C刌l8$.uDUU޽Eg>i999_K[45e Re/5666 lHw唒=={+eff>~֭[ (''ϘRSPP@9 w<e |:::tPPP`};ʕg<!yIz@A=ARg/ u&.Zt.1G ;Fcc;ZBSS~i!((Cw;EEEEEE}@3-ϑ#Gw׿?w,Yo>xvڵ77PRR@ z F@ ._^l0?elqΠ7z=ARg; ⋊ps3[>{$iEËcmn!-/F~m3&R`% wV HHHMIIcfZ:.gAOVVkPPPmmÇKJJFx⮮իWk9Y!௿*-- \t)hnn,Ν +WZlDF'---aaaCS.wI"H/~ Wjjnn皚ڑ2Y `d(f]x޽{DDD&NxU_~i$$$,˗C{_|boݺmkk7n;lll.\8F9|_4Ypo***RRRޝ/@$S^OwI$)6nzW ;=3NB,.."@_$=;(W;$dͥqz޼{Wmbg(p $侪H #gfpeόG 3`ߥ>6Awwwnn.GaQ~ΝףFmfodN& 4$.u#֫f8͊gm Ptku#6Ǐ#ˍ76Xdp=CCC!!!yyx#3fȑ#>=!:wرcEEELr=8@ vezzrvvv/t-##Ms# 񙛛# HG$/X0AGGi-(KWWWyyyTTԚ5kB@]3"-[n((:2jjtuw[wi!inTTMIypȯg>.Xŋ_~ŋkÚߐ!0#  {Vj]uVQ(*(2,B; !{k"". /7=VVqqq4->> yh%ҕ]6k:E=Oʫ[bE_UnXX*wEë5TSVzY/HSiD;ɓigg'Çȃ;P(m>HX3,߅ HKK}/};cҤeet#Rqs-6݄;K4ȞjOuLxT{Yf۶m?nhh@G2vaT.( ۶ٯՂCю:I]_xpD"7hTT&8++и3g88릧Hw9sZ-hhhxѹs纺ZIKW޼yի9/8=r>|ٖ-[FxܹG0awFō^.嗙X Lwߵܸte:v8*…gVVthƄ h-WfMģG hQ@y߾h@OsΫWfggٳg͚5h0L^^^^^ځ}}0 oi`eH 5k֬Y~*55MNL \n!ʥiEnn~Mp)*~~y-ahvPСK\ݠv8AÇp̲!CЎE9l۶L2F988,^xŊ]?-o{///7_TpZ]]I>}Jv Ct:SSéf԰ >A8kk]"Qc$lhbݻ'O%`^6+7o)H5fL?QMUU6-C ڱcg`0nݚ9sfD(/< ֮i8cQ0WZJ+(fgWegW 6dlA&wǯ9GpnֹseeQׯ3p¯R&Fp}dΝw- 3ϞIx6Akk͙sѿ{@rJ #.|h}7X9;B"9nQQDk]\,&Mߺ[64\zR* zuA]tϝ[8a={ǿ駩!!hju:|xͷlmMfE;(0ƍWMMPvEUW7&$lUƞ Ǻjl6U3jTwwK77Kkk !,,?^h,^<,44t2Q"BB\[f766hRf\ZJߺh@F7aÜ!zpF^}ړa55q ȟBj~~-AvV(L;ή KwﵵΝG% @5]xxm֬~uu,q;&4-]z9:zHxmOOd w(=d{7?X`2yee*RGP)jEa}}-ɔL6>5Fq yaa))cfO:SrR ŧN%:l/3lюHu9sUT0`jb$?{7+-mOa0 0`TE -x>ס۷oj@TU8a±AH᡽aF@ *-ggWnձ$lizv+K(GG>siaaݰaK 终2wRR(ӧܳ'L0INhGEA˗ӧ~rI;mڴǢy &;`i63K/RP`D`0oh(8Sc؟޾cq䯿C-.Q(ºZ ZUAǶ 66%bnJ -'{Y3ťuW,-}%Ed֭|y(oPRڤI'<=m\Y֢B_];vL\8zWTa/ZhiySLII_%vv&С`ŋ߼xpm{ !UUbZaa]qq}qq}QQ]}= 9lJ$-\\,lmMz]v+dD2kիG tQw!r'VVF?8e(w#Ryy5ӧwx15k6߽'N=+ |Hso+B1 s>H"׮ފC(jEERz[TT 20б3!͑Lpr2S>Ԝ=Hg!˖ P{>"jjzpN1~q  뺬ٳύqT>?zl嬬}=u%&/Xp񧟦C;ef_li r_@Œ-[nݻe A趲!8ԺXٙ̔0=̙ y3ge{>" WQѰdIu @.IM̟qcf|e/ܳc>`ǿE;%%饯^#/aW++%h_J,ly#G}B Ij >Դn[2cvD?yo߼%];jh^XL ҧ]BիD_?faYW<~~ٲ+  ݿj_}ժk4Ν5=i57sw^EpYYersߠ WhJ _ŗ// tHePtDZqaef{}lby9}(V}=E+WRO7lx~vmƍc7oՆ=YJZڞsZ,,\[or7-D ȁݡi0uҒ5mnkY,Axj@\"MrS wE6;͛if64 툔ںm[pO^W(4oW=je{/] K .WSQdTUVVիˬY%%uŴJX,QSX[;::;;:9:99+om'Snxhŋ@; @'tLվ **s80' ,<};cÆ3gMv,}'ή@Mwb2/=G"hW\Ljh I0wqpr2QvȮdI XXف|WWc۲e5)znݍ3c=xcђU6}+v예v,$ISR(ɔROr_uHM?- FXq[^ N~QidIiA n{RR(=x" {$~e.{<9\g:~}y\uucnnkז7F"sX,$??5 (H$nh(/oh 2ٜ@C зopоp >~hKҝ %@y))~vv۶gvDŋ Æ qxqQtxʕRRvj[e>_4m)wF<^ piiL&T@꓀$<\Sw\/uhGhvPۊs/HWu\yii{}v̓C^C,Vfd&%0\=o֠]tWZPWDŽ H]kii(2q+#8v,Oe՜;Do޼:*仝B9r$.3qeey.Œ厎fz->_4xOgV\Ϟϟqސeˆ 0or2eHE2zi)VZJ+.5CéY[;8:8:898,- ikW۲e|h0P/%0qʠ)S|ձht;v5F\"LFEᅅuW,sksLkqqĉĉ9htXRTTQBII45q4@8AY]"S/_"hI$SGGSS[[._eeݻ&&O>pϞS>.H} @UU>ѣleˆϘ᫥vP+XZRRɓsCBqE&O}7fQwb&M:,GH$paa66/ J6Y&Rt+$V::j*0}lbXX?Oaef##ΟV[4j cAg>今QXXwL]]ͅ .Z4 |Xwk^ӔЀ/_73 IDATl]Ё.II --uk}9Ay9 )E#muuP( ײ#L9R0Bx1|ggUFL6a2y~Sd̺u @ۣ"+WR?%f[;;.\Hڿɓ))YFF>EV7ߺmlw`w@KSR(ɔN* zPJGsZuVJug44ܺ񲬌W+W]c!d\ U]t4EDy39tܹ_{IIV]# H <+* [{O^;Ν{v_W,=XU&}K)4#;룿V RЪ1Bi)Œ_hMmђ]ΝLuuދ pV?,:5h`̢B@.$ˆqq9!!^}YMMӊW GΞ4Ia RF8 ($9`޼ ;w~jc:fzzw`H)Z| MMARZ[^i;r^VD:oo xd^ Y4>>rŊS*K|WRoLLd 0{2hy:xp?Ғwd Gt;uj.ڱ}W}=+-8=4#4'JM ӯ/Ϗ4|K V#HkPjr>**3)@[[cov\ qq9ݻJ0i E$89 22pj&xΘ;ts)ܭڶϟ_`n,.W0b/ٟ>=g--I~EG9@/NHn9@ ` Imeet&# HCgkkloO5N#5Qs!wdļpC8}͠tblʢfڹsTjQ7kވ;w2SS '3g[ϯ]2;sfa]?ӧͻp^7qM"CC߽xhhv8 z?) jȩ` -2j[WD~JiM> }<A0 ~]7Tj'O!WX׮= Kijg^2  t w{?Lʪm8nڴA!!^&&} mrw֍޼y|׫.W6/&EE8XU5YYeF.W|WM cbhd&@O=X,IK+y ѣl*ޞ0eϴi@xJ@"SR(og@)S|Ə;ogy̙]\6Jm>…CkEu[#3G;U+i~"7 ''sdw0gX,*}E&[ow__CB!+u2Ewd娩a]z_ EE+W^d>~+3ch4Vp1''堷ЭBqMMS_eet& 1q ozz۷B}}}IÆ9dDggW>yӼw*q81{ VZnݨA:@wrmyJ==ѣ'L9MG|=ټ̙yuYOUUȑ-nUP(5lMMÇԸЭb \Yɨ`TV6 **Tjt?鬉Q.yf_liܹoc#;%ӼO?-DQnFA vd䫰FNHc@3@"jj>UCJƍPɅgjj֭,۲e#;wڵvEĬAm~֭ļ :UYOj@ԭn ijlmMllmmmm Hkccۂח0br2ij1cyxX\**.^LWj3f];R!&@j y{,_"}|&M 63뽋,t )zxX<90++oD1Ifkk"[o_Kƌ*C2뙲%%--|ձƺJll{/GU^^Uljmݻr_X[BIN"iur@th.|\xٲso'|We57s)f"$a~ºzɒ/Pk5: rBҁQQk|}YFV_4AH\Tʜ9mv(^PvrljH6ins mmYb}[!m6ɇ=y h9f*K '-> |/5xsqa0ܹ_>>cgg2rQnC8){ìo44=i޼Z}w[vɟe˭UT4Dx*pbu0 pj8D2}P(ml8i ).Dbkggb`*>H$XAQ ;66߼x͛ׯ˛88AH$5&{ڋeˆc}=aa)bx֬VPn_tDOHKJg2y܋1c |32J7n?rfRWDGg XrǏc0D ~͠cf+$_ //`Ft*@CxJFUUcUy\Yɨ8^icclcclmmdmoc-c/2׍♙K#mrssrA=ú[)57X`H.]Jxk/X0d@YU@ |xBή4~̘~&x~R:Zy<ѣ;8|add2Ū$$lAj|K^NO/%mO{${j-ND2}OETƤ 䣑&?xsstlVdLM' tVNNuI M,xyy{z{ہA܎gM~!^-m)]ޞ:l!m|Y">_FD&#;~jQYP;vL\4e!J֮Q[߁[cb֫c Su79 $w%H`UMM;ȑQpǞ=!T/]3KSR(O|mC~g<~H3fn?~ۀrτW_2 # Oo,V-*jGP(ɿ)/]+ #_]!͹1ZL/8"2 ,Vl4 ҁ[zcPuԶOUvB"9nEEX,DWW֤X,)*(MIP8zzv_&%,Yri׮.bYoaaԩLnd#"tw.a8?6505ˢ>bZ=X5:gcjϞ{HXnB62B…g?a&M:sf~Ø3\jj!RPP߾=xH_~yT[Aa`j3g=:eZmQQ2jutUf>B 7JKeeRzi)auullh  \XX侩liU[{޻t)`oo':8R99U3f& 64?]@aD"e3gܕa5aJwТ_de|,VMM  [b=<&+-mx33T" V=ع8o}bDÔ>ؔJ(ߺ~ȣZ |jP`HkۼV]kii( kК t/*+KJhHj[VFiB>HSggs R^ހ >^`AA)*A8ٶ-x*5/۾:uo}ۓ@|Po+&L8jj9_f@2d&+,#իbdҽ@ a0>0N Űŋy."X5NM"B&>x PF >FwdϨaaZ"ȥq^^.GLއjA>p`׺o9~<%3:(q׮֦M h 6_㉞?;w.I$vcX]1Ff01s*VU54VW74!kpґ C$H{{S`oO@VaP^(z":EOOD2ɩn5O0rmۂ`WRRmKKkbz0,VM__TH4$LMPi]rssL&1~B`0X,F"X?s jnb1\Z(,٘ȟ͝T"IFr ȑ'vpw~25xgUW#ymSUNoAvgI9#;;D@Tr eիtPNF"Ne[__gj 옘<<^HXHH[K d2Ў:Bԯ;w4' 65շ5& D ssKKC33|,`>L`2Krr| cN|y`#h{#ȚMH `0ffxkk#++C++#++#kk##ϯw -+))T|ו7~ H?v( ttpg6 H(ռ~]YVRSAMM/DvnnOE]Y*YFc!wc44pD~b66Ơ"3>t)￳/"%"LhE];`̀6-_ee{WhǨj,$XTj3%X F #MM=XPۓambO$z=|3f@̘1#++ã3My/H;;G3GGGtNN>|(..'2Ujj^vO=@Ob2MM&in47#_r\dfnc#[渁.ha$SS}cc]kb;@޲ [z+ >什j2eot oý׏3аyd $)ʉ'|||rrr QSSsƍ򞉭^.};#**#x<A}Oggxf4b[xm`chm`caaja`c`cdC K3Z/ (#7} w۷oD"ihh@Csݻݻ}رH$n۶n ++Ǐrwr^uuطׯ(,SW bD"g{OD\ " [Zxl6X<6cL&IfnK ڪX]]MCC<^@P@@߼V%U>V什b_VzQdd}޼y+ k׮0p ׮]KLL|2 >y$2x(uu]vQ(KKq"hm麺ڲ!RrI HCCʕ+/_TWWGv0YrѣG|yd.:rǏ?a۶m;wD5m8{#GTVVݨ٧P(~,?3r0-b1#\@ "O(8'EL&W /L.',O |G&jj}}m<^KWWSWWSOO& 44uu5xm}|R%WR5+ǎxbmmիemVvƍ{2oѣ::+[{7k@1BBB6nx7_?~433iѢE{]d AGzjRRRTTԃ0ҥK}ˑ ƼyLLLΝv}y2׳cc}:aQ#$ɓXydn` P_sʂ ٳg0 bZ0|-'''vZ;Vu

FfggG ֭[rnlɐ(j+Tj˩SH$nmjl:X5+f%9䤫W_!t>U{M{{{33͛7|s}XQ#З!7v @۝#53www33wc0yyÆ;+( $e PZuA _bEG6.;w#@|Pe TwU]@P|>FR޷P&vU >OSSF\;Ha0MMMBSS([(xE2P 2 *.MJ2-@IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_13.md50000644001725400016040000000004013273140074016357 00000000000000a98f0ac47c4ebf2e7380f7fc21316609XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemoryManager__inherit__graph.map0000644001725400016040000000030713273140076024340 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoRegexGroupStoreReset.html0000644001725400016040000002047513273140074021514 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoRegexGroupStoreReset Class Reference

#include <ContextHelpers.hpp>

Public Member Functions

 AutoRegexGroupStoreReset (DynamicContext *context, const RegexGroupStore *store=0)
 
 ~AutoRegexGroupStoreReset ()
 
void reset ()
 

Protected Attributes

DynamicContextcontext_
 
const RegexGroupStore_oldRegexStore
 

Constructor & Destructor Documentation

AutoRegexGroupStoreReset::AutoRegexGroupStoreReset ( DynamicContext context,
const RegexGroupStore store = 0 
)
inline
AutoRegexGroupStoreReset::~AutoRegexGroupStoreReset ( )
inline

Member Function Documentation

void AutoRegexGroupStoreReset::reset ( )
inline

Member Data Documentation

const RegexGroupStore* AutoRegexGroupStoreReset::_oldRegexStore
protected
DynamicContext* AutoRegexGroupStoreReset::context_
protected

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.map0000644001725400016040000000104613273140076023627 00000000000000 XQilla-2.3.4/docs/simple-api/classAnyAtomicType__inherit__graph.map0000644001725400016040000000634113273140076022312 00000000000000 XQilla-2.3.4/docs/simple-api/StaticType_8hpp__incl.map0000644001725400016040000000154613273140076017533 00000000000000 XQilla-2.3.4/docs/simple-api/ftv2doc.png0000644001725400016040000000135213273140073014705 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp_source.html0000644001725400016040000004161213273140073021100 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATGYearOrDerived.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _ATGYEARORDERIVED_HPP
21 #define _ATGYEARORDERIVED_HPP
22 
23 #include <xercesc/util/XercesDefs.hpp>
24 #include <xqilla/framework/XQillaExport.hpp>
27 
28 class DynamicContext;
29 
30 class XQILLA_API ATGYearOrDerived : public DateOrTimeType
31 {
32 public:
34 
35  /* Get the name of the primitive type (basic type) of this type
36  * (ie "decimal" for xs:decimal) */
37  virtual const XMLCh* getPrimitiveTypeName() const = 0;
38 
39  /* Get the namespace URI for this type */
40  virtual const XMLCh* getTypeURI() const = 0;
41 
42  /* Get the name of this type (ie "integer" for xs:integer) */
43  virtual const XMLCh* getTypeName() const = 0;
44 
45  /* returns the XMLCh* (canonical) representation of this type */
46  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
47 
48  /* returns true if the two objects are equal
49  * false otherwise */
50  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
51 
54  virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const = 0;
55 
57  virtual bool hasTimezone() const = 0;
58 
60  virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
61 
63 };
64 
65 #endif // _ATGYEARORDERIVED_HPP
Super class of all the reference counted wrappers for Items.
Definition: ReferenceCounted.hpp:61
Definition: ATGYearOrDerived.hpp:30
virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
AtomicObjectType
Definition: AnyAtomicType.hpp:34
virtual const XMLCh * getTypeName() const =0
virtual const XMLCh * asString(const DynamicContext *context) const =0
virtual const XMLCh * getPrimitiveTypeName() const =0
Definition: DateOrTimeType.hpp:31
RefCountPointer< const ATGYearOrDerived > Ptr
Definition: ATGYearOrDerived.hpp:33
virtual const XMLCh * getTypeURI() const =0
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
virtual AtomicObjectType getPrimitiveTypeIndex() const =0
virtual bool hasTimezone() const =0
Returns true if the timezone is defined for this object, false otherwise.
XQilla-2.3.4/docs/simple-api/inherit_graph_14.md50000644001725400016040000000004013273140074016360 00000000000000c328c9c91c553959dc90872c766887d7XQilla-2.3.4/docs/simple-api/dir_000014_000016.html0000644001725400016040000000415313273140074015711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

framework → util Relation

File in xerces-c-src/src/xercesc/frameworkIncludes file in xerces-c-src/src/xercesc/util
XMLFormatter.hppPlatformUtils.hpp
XQilla-2.3.4/docs/simple-api/classXQillaAllocator.html0000644001725400016040000007275513273140074017617 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
XQillaAllocator< _Tp > Class Template Reference

#include <XPath2MemoryManager.hpp>

Classes

struct  rebind
 

Public Types

typedef size_t size_type
 
typedef ptrdiff_t difference_type
 
typedef _Tp * pointer
 
typedef const _Tp * const_pointer
 
typedef _Tp & reference
 
typedef const _Tp & const_reference
 
typedef _Tp value_type
 

Public Member Functions

 XQillaAllocator ()
 
 XQillaAllocator (xercesc::MemoryManager *memMgr)
 
 XQillaAllocator (const XQillaAllocator< _Tp > &o)
 
pointer allocate (size_t _n, const void *=0)
 
void deallocate (void *_p, size_t _n)
 
void construct (pointer _p, const_reference _v)
 
void destroy (pointer _p)
 
size_type max_size () const
 
size_type max_size (size_type) const
 
bool operator== (const XQillaAllocator< _Tp > &o) const
 
bool operator!= (const XQillaAllocator< _Tp > &o) const
 
bool operator!= (XQillaAllocator< _Tp > &o)
 

Public Attributes

char _singleton [sizeof(_Tp)]
 
xercesc::MemoryManager_memMgr
 

Member Typedef Documentation

template<class _Tp>
typedef const _Tp* XQillaAllocator< _Tp >::const_pointer
template<class _Tp>
typedef const _Tp& XQillaAllocator< _Tp >::const_reference
template<class _Tp>
typedef ptrdiff_t XQillaAllocator< _Tp >::difference_type
template<class _Tp>
typedef _Tp* XQillaAllocator< _Tp >::pointer
template<class _Tp>
typedef _Tp& XQillaAllocator< _Tp >::reference
template<class _Tp>
typedef size_t XQillaAllocator< _Tp >::size_type
template<class _Tp>
typedef _Tp XQillaAllocator< _Tp >::value_type

Constructor & Destructor Documentation

template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( )
inline
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( xercesc::MemoryManager memMgr)
inline
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( const XQillaAllocator< _Tp > &  o)
inline

Member Function Documentation

template<class _Tp>
pointer XQillaAllocator< _Tp >::allocate ( size_t  _n,
const void *  = 0 
)
inline
template<class _Tp>
void XQillaAllocator< _Tp >::construct ( pointer  _p,
const_reference  _v 
)
inline
template<class _Tp>
void XQillaAllocator< _Tp >::deallocate ( void *  _p,
size_t  _n 
)
inline
template<class _Tp>
void XQillaAllocator< _Tp >::destroy ( pointer  _p)
inline
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( ) const
inline
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( size_type  ) const
inline
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( const XQillaAllocator< _Tp > &  o) const
inline
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( XQillaAllocator< _Tp > &  o)
inline
template<class _Tp>
bool XQillaAllocator< _Tp >::operator== ( const XQillaAllocator< _Tp > &  o) const
inline

Member Data Documentation

template<class _Tp>
char XQillaAllocator< _Tp >::_singleton[sizeof(_Tp)]

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classATGDayOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022335 0000000000000099f1ea69604bf9276c4eaf31cd5a9fddXQilla-2.3.4/docs/simple-api/classATBooleanOrDerived-members.html0000644001725400016040000005023313273140074021607 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATBooleanOrDerived Member List

This is the complete list of members for ATBooleanOrDerived, including all inherited members.

_ref_countReferenceCountedprotected
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATBooleanOrDerivedpure virtual
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const =0ATBooleanOrDerivedpure virtual
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCountedinlinevirtual
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATBooleanOrDerivedpure virtual
fgDT_ANYATOMICTYPEAnyAtomicTypestatic
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
getInterface(const XMLCh *name) const =0Itempure virtual
getPrimitiveTypeIndex() const =0ATBooleanOrDerivedpure virtual
getPrimitiveTypeName() const =0ATBooleanOrDerivedpure virtual
getPrimitiveTypeURI() const AnyAtomicTypevirtual
getRefCount() const ReferenceCountedinline
getTypeName() const =0ATBooleanOrDerivedpure virtual
getTypeURI() const =0ATBooleanOrDerivedpure virtual
gXQillaItemstatic
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCountedinline
isAtomicValue() const AnyAtomicTypevirtual
isDateOrTimeTypeValue() const AnyAtomicTypevirtual
isFalse() const =0ATBooleanOrDerivedpure virtual
isFunction() const AnyAtomicTypevirtual
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
isNode() const AnyAtomicTypevirtual
isNumericValue() const AnyAtomicTypevirtual
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
isTrue() const =0ATBooleanOrDerivedpure virtual
Item()Iteminlineprotected
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATBooleanOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCountedinline
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCountedinlinevirtual
XQilla-2.3.4/docs/simple-api/classFastXDMConfiguration-members.html0000644001725400016040000001642413273140074022201 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
FastXDMConfiguration Member List

This is the complete list of members for FastXDMConfiguration, including all inherited members.

createASTToXML()FastXDMConfigurationvirtual
createDefaultURIResolver(xercesc::MemoryManager *memMgr)FastXDMConfigurationvirtual
createDocumentCache(xercesc::MemoryManager *memMgr)FastXDMConfigurationvirtual
createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)FastXDMConfigurationvirtual
createSequenceBuilder(const DynamicContext *context)FastXDMConfigurationvirtual
createUpdateFactory(xercesc::MemoryManager *memMgr)FastXDMConfigurationvirtual
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
populateDynamicContext(DynamicContext *context)XQillaConfigurationinlinevirtual
populateStaticContext(StaticContext *context)XQillaConfigurationinlinevirtual
testInterrupt()XQillaConfigurationinlinevirtual
XMemory()xercesc::XMemoryinlineprotected
~XQillaConfiguration()XQillaConfigurationinlinevirtual
XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp_source.html0000644001725400016040000002332513273140073020417 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
VarHashEntry.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _VARHASHENTRY_HPP
21 #define _VARHASHENTRY_HPP
22 
23 #include <xqilla/framework/XQillaExport.hpp>
24 #include <xercesc/util/XMemory.hpp>
25 
27 template<class TYPE>
28 class VarHashEntry : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
29 {
30 public:
31  virtual ~VarHashEntry() {}
32 
35  virtual const TYPE &getValue() const = 0;
36 
39  virtual void setValue(const TYPE &value) = 0;
40 };
41 
42 #endif
43 
virtual void setValue(const TYPE &value)=0
Sets the value of the variable (overload in derived classes for special behaviour) ...
virtual ~VarHashEntry()
Definition: VarHashEntry.hpp:31
virtual const TYPE & getValue() const =0
Gets the value of the variable (overload in derived classes for special behaviour) ...
XMemory()
Protected default constructor.
Definition: XMemory.hpp:130
The class that stores the values of the variables.
Definition: Scope.hpp:33
XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp.html0000644001725400016040000000745013273140077017044 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
VarHashEntry.hpp File Reference
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for VarHashEntry.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  VarHashEntry< TYPE >
 The class that stores the values of the variables. More...
 
XQilla-2.3.4/docs/simple-api/StringPool_8hpp.html0000644001725400016040000000652013273140077016563 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
StringPool.hpp File Reference
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <memory>
#include <cstring>
#include <string>
#include <memory.h>
Include dependency graph for StringPool.hpp:

Go to the source code of this file.

Classes

class  StringPool
 
XQilla-2.3.4/docs/simple-api/DebugListener_8hpp.html0000644001725400016040000000763113273140077017223 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
DebugListener.hpp File Reference
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/exceptions/XQException.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DebugListener.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DebugListener
 A class used to listen for debugging information. More...
 
XQilla-2.3.4/docs/simple-api/inherit_graph_43.png0000644001725400016040000000516113273140077016475 00000000000000PNG  IHDR%?]ɲbKGD &IDATxiLAǧҖE\EA @I0 h LDb4c"Z1QPPlU-vLm)W>3gXB@ AAJS q*>0f9O`90} .IX,e!YT}@JS ?T ??N :n˖-Æ 2eJnnhıAAA_DdzXֆC˓JrѮsBB›7oղpɒ%t1(D󃂂vc>8H% }Yd ʋR}vbbZFW5MppX,~WǏ?k,шb9NCCMR9::ZZZ vD.OOϜF?~lhh1cF"ڄB!]3spIKK UV͞=ɓ'_|߸q#CRT(cƌ1eBi/2 Sn6ЩD"BDPwI;o޼;wEEEtu&Md0U!ϩk׮1bRrqq7WWWZϟ?b7NJ* BXRRDQ`0H$ww#GJ$t-;wdee%''2 Bxʕ &p\ӧOCӳF?I&cHtMFb1-,, 3PBBBaa!Ǐs8\.+YT*߾}VVVFDD|H! ⒛ _|9cƌ#=n|rJT*COOOBVSSSBWff^322m===...W^ ݳTPԔO>yxx<|۷oѢE2lĉ۷oGo߾"rԩS%IQEqǏ+BCQwuuqlG:;;EADhWF۷o>nQj4օ N<BhV^Q\\ 圚hQBO:t7\nll߾}kD~aiii !\bELLL[[L& Ο?>?h ZJjooﰰl\P7oތ@d2pرjSS>RTC=pZ6Zd2n? 6رBX\\˨l6'&&+W2 :T,Css3EQ&UeԪ*dmÇ>e4fϞ=kdc`0ϟ;+**N'!˖-CZ9 ש{auǣCOGJڈ,^X DEE]vFرcqqq8 -,Xp FgΜqvvx/_.F*Μ93"""--?* F=d2s* EQԹsjl6ڵRN̜6mnki=@ף(L貗/_uVo +GQqjjuss3KGD i}]aoooQQ[6zxoTVߨ:cFݻw@:?|ZPP!+rRl9Z:Bk@ HPVeX=D.6 v4xyҥѣGDGGl;a@~SM&Ӝ9sݫRD"ѕ+WPM/^gϞM:uƍt}w r<22r͚5Ezw΂ NŻTUUUh ]رc.B D/xׯ_?nܸٳg:[ZZfsBBX,6LBD2ijb]~]mݺSVkkթcǎLt^V[[;mڴ͛7[U;FC/_k\E^WWנ"ܖm' /s#GL~ҥQF}F* u:]_OOD"tvvNJJom2 RFwϊ+4Eeff:::twwX4UUU|zyQQ}~Ȑ!/^61bѣGfΜhTi4|߶mh2͛J;PR%'' QFeddNNN$NNeuҥ?b"+boS ĩ8`T}@JS ~=7Z~`;*S q*> N%ĩ?5IENDB`XQilla-2.3.4/docs/simple-api/dir_000006_000004.html0000644001725400016040000000377513273140074015720 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

schema → events Relation

File in include/xqilla/schemaIncludes file in include/xqilla/events
SchemaValidatorFilter.hppEventHandler.hpp
XQilla-2.3.4/docs/simple-api/classNode__inherit__graph.md50000644001725400016040000000004013273140074020345 00000000000000325688e0a3a210c0f2bd225cb926b5bdXQilla-2.3.4/docs/simple-api/MemoryManager_8hpp.html0000644001725400016040000002403713273140077017231 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
MemoryManager.hpp File Reference
#include <xercesc/util/XercesDefs.hpp>
#include <stdlib.h>
Include dependency graph for MemoryManager.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  xercesc::MemoryManager
 Configurable memory manager. More...
 

Namespaces

 xercesc
 
XQilla-2.3.4/docs/simple-api/classAutoMessageListenerReset.html0000644001725400016040000001664113273140074021502 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
AutoMessageListenerReset Class Reference

#include <ContextHelpers.hpp>

Public Member Functions

 AutoMessageListenerReset (StaticContext *context, MessageListener *listener=0)
 
 ~AutoMessageListenerReset ()
 

Protected Attributes

StaticContextcontext_
 
MessageListenerlistener_
 

Constructor & Destructor Documentation

AutoMessageListenerReset::AutoMessageListenerReset ( StaticContext context,
MessageListener listener = 0 
)
inline
AutoMessageListenerReset::~AutoMessageListenerReset ( )
inline

Member Data Documentation

StaticContext* AutoMessageListenerReset::context_
protected
MessageListener* AutoMessageListenerReset::listener_
protected

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/dir_e6bd38fe602a947f4224dfe3c9d24481.html0000644001725400016040000000513613273140077020756 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xerces-c-src Directory Reference
Directory dependency graph for xerces-c-src:
xerces-c-src

Directories

directory  src
 
XQilla-2.3.4/docs/simple-api/Result_8hpp_source.html0000644001725400016040000004535213273140073017323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Result.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _RESULT_HPP
21 #define _RESULT_HPP
22 
23 #include <string>
24 #include <xercesc/util/XercesDefs.hpp>
25 
26 #include <xqilla/framework/XQillaExport.hpp>
27 #include <xqilla/items/Item.hpp>
29 #include <xqilla/runtime/EmptyResult.hpp>
30 
31 class Sequence;
32 class SequenceType;
33 class DynamicContext;
34 class StaticType;
35 
37 class XQILLA_API Result
38 {
39 public:
40  Result(const Item::Ptr &item);
41  Result(const Sequence &seq);
42  Result(ResultImpl *impl);
43  Result(const Result &o);
44  Result &operator=(const Result &o);
45  ~Result();
46 
48  ResultImpl *operator->();
49 
51  const ResultImpl *operator->() const;
52 
54  ResultImpl *get();
55 
57  const ResultImpl *get() const;
58 
60  bool isNull() const;
61 
62  EmptyResult* getEmpty() const;
63 
64 private:
65  ResultImpl *_impl;
66 
67  static EmptyResult _empty;
68 };
69 
70 inline bool Result::isNull() const
71 {
72  return _impl == 0;
73 }
74 
76 {
77  if(_impl) return _impl;
78  return getEmpty();
79 }
80 
81 inline const ResultImpl *Result::get() const
82 {
83  if(_impl) return _impl;
84  return getEmpty();
85 }
86 
88 {
89  return get();
90 }
91 
92 inline const ResultImpl *Result::operator->() const
93 {
94  return get();
95 }
96 
97 #endif
A scoped pointer wrapper for the lazily evaluated query result.
Definition: Result.hpp:37
bool isNull() const
Returns true if the underlying pointer is null.
Definition: Result.hpp:70
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
EmptyResult * getEmpty() const
ResultImpl * get()
Returns the underlying ResultImpl object.
Definition: Result.hpp:75
Class that represents the static type of an expression.
Definition: StaticType.hpp:33
An eagerly evaluated result of a query execution.
Definition: Sequence.hpp:39
A lazily evaluated query result.
Definition: ResultImpl.hpp:33
ResultImpl * operator->()
Returns the underlying ResultImpl object.
Definition: Result.hpp:87
XQilla-2.3.4/docs/simple-api/classATNotationOrDerived.html0000644001725400016040000011173513273140077020403 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATNotationOrDerived Class Referenceabstract

#include <ATNotationOrDerived.hpp>

Inheritance diagram for ATNotationOrDerived:

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
 
virtual int compare (const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
 
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isNumericValue () const
 
virtual bool isDateOrTimeTypeValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Additional Inherited Members

- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 
- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 
- Protected Member Functions inherited from AnyAtomicType
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Function Documentation

virtual const XMLCh* ATNotationOrDerived::asString ( const DynamicContext context) const
pure virtual

Implements AnyAtomicType.

virtual int ATNotationOrDerived::compare ( const ATNotationOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATNotationOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const
pure virtual

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATNotationOrDerived::getPrimitiveTypeIndex ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getPrimitiveTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getTypeURI ( ) const
pure virtual

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classASTNodeEventGenerator__inherit__graph.md50000644001725400016040000000004013273140074023566 000000000000008e050502601af8669764b8db93f92ee1XQilla-2.3.4/docs/simple-api/functions_enum.html0000644001725400016040000001066213273140074016557 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.md50000644001725400016040000000004013273140074025237 00000000000000a88d9472569fe8ba9bde3ce7e463c4c7XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLResourceIdentifier.html0000644001725400016040000005074713273140074022751 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xercesc::XMLResourceIdentifier Class Reference

#include <XMLResourceIdentifier.hpp>

Public Types

Public Constants
enum  ResourceIdentifierType {
  SchemaGrammar = 0, SchemaImport, SchemaInclude, SchemaRedefine,
  ExternalEntity, UnKnown = 255
}
 

Public Member Functions

Constructors and Destructor
 XMLResourceIdentifier (const ResourceIdentifierType resourceIdentitiferType, const XMLCh *const systemId, const XMLCh *const nameSpace=0, const XMLCh *const publicId=0, const XMLCh *const baseURI=0, const Locator *locator=0)
 Constructor. More...
 
 ~XMLResourceIdentifier ()
 Destructor. More...
 
Public Methods
ResourceIdentifierType getResourceIdentifierType () const
 
const XMLCh * getPublicId () const
 
const XMLCh * getSystemId () const
 
const XMLCh * getSchemaLocation () const
 
const XMLCh * getBaseURI () const
 
const XMLCh * getNameSpace () const
 
const Locator * getLocator () const
 

Detailed Description

This class is used along with XMLEntityResolver to resolve entities. Instead of passing publicId and systemId on the resolveEntity call, as is done with the SAX entity resolver, an object of type XMLResourceIdentifier is passed. By calling the getResourceIdentifierType() method the user can determine which data members are available for inspection:

ResourceIdentifierType Available Data Members
SchemaGrammar schemaLocation, nameSpace & baseURI (current document)
SchemaImport schemaLocation, nameSpace & baseURI (current document)
SchemaInclude schemaLocation & baseURI (current document)
SchemaRedefine schemaLocation & baseURI (current document)
ExternalEntity systemId, publicId & baseURI (some items may be NULL)

The following resolver would provide the application with a special character stream for the entity with the system identifier "http://www.myhost.com/today":

#include <xercesc/util/XMLEntityResolver.hpp>
#include <xercesc/sax/InputSource.hpp>

 class MyResolver : public XMLEntityResolver {
  public:
   InputSource* resolveEntity (XMLResourceIdentifier* xmlri);
   ...
  };

  MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {
   switch(xmlri->getResourceIdentifierType()) {
    case XMLResourceIdentifier::SystemId:
     if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {
      MyReader* reader = new MyReader();
      return new InputSource(reader);
     } else {
      return null;
     }
     break;
    default:
     return null;
   }
  }

See Also
SAXParser::setXMLEntityResolver
InputSource::InputSource

Member Enumeration Documentation

Enumerator
SchemaGrammar 
SchemaImport 
SchemaInclude 
SchemaRedefine 
ExternalEntity 
UnKnown 

Constructor & Destructor Documentation

xercesc::XMLResourceIdentifier::XMLResourceIdentifier ( const ResourceIdentifierType  resourceIdentitiferType,
const XMLCh *const  systemId,
const XMLCh *const  nameSpace = 0,
const XMLCh *const  publicId = 0,
const XMLCh *const  baseURI = 0,
const Locator *  locator = 0 
)
inline

Constructor.

xercesc::XMLResourceIdentifier::~XMLResourceIdentifier ( )
inline

Destructor.

Member Function Documentation

const XMLCh * xercesc::XMLResourceIdentifier::getBaseURI ( ) const
inline
const Locator * xercesc::XMLResourceIdentifier::getLocator ( ) const
inline
const XMLCh * xercesc::XMLResourceIdentifier::getNameSpace ( ) const
inline
const XMLCh * xercesc::XMLResourceIdentifier::getPublicId ( ) const
inline
XMLResourceIdentifier::ResourceIdentifierType xercesc::XMLResourceIdentifier::getResourceIdentifierType ( ) const
inline
const XMLCh * xercesc::XMLResourceIdentifier::getSchemaLocation ( ) const
inline
const XMLCh * xercesc::XMLResourceIdentifier::getSystemId ( ) const
inline

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/dir_000021_000003.html0000644001725400016040000000376113273140074015707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

simple-api → context Relation

File in include/xqilla/simple-apiIncludes file in include/xqilla/context
XQQuery.hppStaticContext.hpp
XQilla-2.3.4/docs/simple-api/Node_8hpp__incl.md50000644001725400016040000000004013273140074016221 00000000000000305a32062f45fa4c7b36be9b8f5cc202XQilla-2.3.4/docs/simple-api/classATGMonthOrDerived.html0000644001725400016040000012577113273140077020011 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATGMonthOrDerived Class Referenceabstract

#include <ATGMonthOrDerived.hpp>

Inheritance diagram for ATGMonthOrDerived:

Public Types

typedef RefCountPointer< const
ATGMonthOrDerived
Ptr
 
- Public Types inherited from DateOrTimeType
typedef RefCountPointer< const
DateOrTimeType
Ptr
 
- Public Types inherited from AnyAtomicType
enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
 
typedef RefCountPointer< const
AnyAtomicType
Ptr
 
- Public Types inherited from Item
typedef RefCountPointer< const
Item
Ptr
 

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
 
virtual const XMLCh * getTypeURI () const =0
 
virtual const XMLCh * getTypeName () const =0
 
virtual const XMLCh * asString (const DynamicContext *context) const =0
 
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
 
virtual int compare (const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
 
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this. More...
 
virtual ATGMonthOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone. More...
 
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
 
- Public Member Functions inherited from DateOrTimeType
virtual bool isDateOrTimeTypeValue () const
 
- Public Member Functions inherited from AnyAtomicType
virtual bool isAtomicValue () const
 
virtual bool isNode () const
 
virtual bool isFunction () const
 
virtual bool isNumericValue () const
 
virtual const XMLCh * getPrimitiveTypeURI () const
 
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler. More...
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
 
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation. More...
 
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
 
- Public Member Functions inherited from Item
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Additional Inherited Members

- Static Public Attributes inherited from AnyAtomicType
static const XMLCh fgDT_ANYATOMICTYPE []
 
- Static Public Attributes inherited from Item
static const XMLCh gXQilla []
 The "XQilla" item interface. More...
 
- Protected Member Functions inherited from AnyAtomicType
virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
 
- Protected Member Functions inherited from Item
 Item ()
 
- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Typedef Documentation

Member Function Documentation

virtual const XMLCh* ATGMonthOrDerived::asString ( const DynamicContext context) const
pure virtual

Implements AnyAtomicType.

virtual int ATGMonthOrDerived::compare ( const ATGMonthOrDerived::Ptr other,
const DynamicContext context 
) const
pure virtual

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGMonthOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const
pure virtual

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGMonthOrDerived::getPrimitiveTypeIndex ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getPrimitiveTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getTypeName ( ) const
pure virtual

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getTypeURI ( ) const
pure virtual

Implements AnyAtomicType.

virtual bool ATGMonthOrDerived::hasTimezone ( ) const
pure virtual

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGMonthOrDerived::Ptr ATGMonthOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const
pure virtual

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp__dep__incl.png0000644001725400016040000001250613273140074021342 00000000000000PNG  IHDRm"bKGDIDATxkP߀O (D,jVˀuԎ0 h NUZQmũ" XZDP/e 6B *&"!}?l7MB99>ٳ,0 S'\`A! KM6q\Stzjjj~M >c*jׯ>}REXXܹsbu^C 9H0hd'O,_a2nZtrr4iR||]VuĉJA$5͛7ߣ|rʕeeeNRgy幺;l` ØL&J-++S 9sfaa!%$$eQiii4MT677֭[W\\'x{{8Ǐ?|СCRFW&22f2뛚npTF_,--vvv o߾}4JR(ɓvvvSNW^nܧձMf2&M{m<==3oƯUVVZYYM2EgSNEEEeddYYY[nVMW.\ؿO?TQQֻ=}ׯ_Ϟ=0{솆QA&?_"}FWnܸJ7...E#J/ 6L ¿p`lNŋ׭[8mڴfe˖Y[[Ϛ5 сWtooﯿTOeIT(_~ݽOA\ ҒVUU2L.[ZZJRىwx! ++իWuuu[np``ӦM˗>|S{3L...eeeM8 xJ;v mllÇ/_<00p֭ΝOCCC\XvmZZZLL @={v\\رc---4-000,,D"~tto)K9sܼysΜ9J$I&=z۷IPP͛WXOzD~ݻBW? ՝kѐ1bŽ+HݦMzSW`A! $r4/t<}$y 05 1uS>XP$}De= A{x"D$EE:a.%yIIL%%U]]}~ib.ox"KX,c2u? "ea3D"|fiuB/'Bai2f!rRFPLCY.,|۹sM_۷kUK(ot*+@#*cgct\PPX+(4~>FrfR` êʘCNWW;D"XYDE{{1&o1I_M|F C 9H0 C 9H0 C 9H0 C 9H0 C 9H0 C 9H0 C 9H0 C 9H0`pΝaB&dw1đAzx<\.?{@BpgH $1r`A! c&=OѴgn1\WWGP s}1~C^P*o߾5<ѣMP{*72,))ɉJ&%%d2@=ztJJʩSmmm/))󳶶h)))\{n77ѣGZ];B-[tuuq8pM777k-E"_= x &PDDr 6jOr,??7֪?p@hhhSS߶m822R(fggÅBaff& oѣ5d2P($\.7//yĉl6ӦM۲ev+V |Oك7/L+We2ayyy'NT*kh"PXXX'GX`AMMMyy9Pըͦn#@^^^</Y,aRT^tI"<{L$)۷o'LPTT)^VA*j|` l6ar͛-\0%%Eݺu 0.VUٛMg`S*hhhҿ-^9r$D"iU2 h555111"ill]^zP(<<|P(^#e***>sרQzSi d6!)C 9H0 פpà #3zA{ԩS#""*#΢DDDL:ՐfrJP'=~ 3:_\߮zm\ >w! i\~JXQQP`JEkk7\eamy"p#c4EpAAE VPPi|Ynhh{EuðoL0 ϳ<6E"u< f!\2"?1& ~YW9o %%%C8D\/^tuu3gΌ?J2--{ȑ3f(++ç8=SbII5FөҥK>>>Æ 7nܩSX=z蔔SN&''ZO0J&&&J$2,))ɉJ&%%puaoob8Р`pЋZjխNNNeffRԢ˗/tPH&\n^^CD"++ wqKKKH) B033ֆ\`AMMMyy9سgz655lm۶ioE cjTz{ :Z'8qB_/X"<{L$)۷oՇ$@Tvtt( , 0TQ[lq~~>Priivua ǘlggɓxWG2\SS XQilla Simple API Documentation SourceForge.net Logo

ast → items Relation

File in include/xqilla/astIncludes file in include/xqilla/items
StaticType.hppAnyAtomicType.hpp
XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__incl.md50000644001725400016040000000004013273140073020345 00000000000000f3927884838d89f836cb2a4ddb4d6954XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp__dep__incl.png0000644001725400016040000002342013273140076022355 00000000000000PNG  IHDR|%bKGD IDATxi@7d bA .ԥ`ת((]dE(ڪ[,*jE*V\hB V h1d '3L̖ $JvB Q:HFvjƍl6BX]?ԩS3f  zeee![]H@ t(5k֍7-ovppxgGGÇ҈c𵵵vvvXPP8}v''>q ޿]mm#v^^^---֘___SSSP[[ʕ+=zlٲ܈Qb2+VPTTܺukbb̙3mVTTQ466^v~Auuu .$ $x{{>|xݺuGtww':q℺zLL JE,_ŋ/&L 466f0666}盧!RSS>0L8Rt$ð˗/]|922>>>Dݯ]&|ݻ~szz:ј;---vZpKBBB]vwNB#,Yx6p?7|3wܵk޽{خVȷ X\\VZZڳNݻ94no^xqlllWW>@ t$O?uss;zȑ#Ɩann7υֶe Ԡo}'S2XgA8p>11qEEE'O$oݺrÇ777#Ξ=ϥKRRRBBB===ℿHCCÞu ~GrסΝ;s;vP$ BGBpR/^{Bwݧ':IdJkk+q=_ojj|\E̙3!s̙@55I&-_\ 0a°az)ܔNRPPՊ+] l#!׮]{ALL͛7o߾M4 >oJ>Ԭ_> ʕ+DFuu5w```gggSS100 ZZZDB+ BĄoKP SznWAHBccclll``޽{'Np8ğ۶mg͚%Ψ(ww#G^_fddvww+**jhhPԺ:իW?3}列.ox'2:{Hy'!|HA{555;w.BUCCij #<ܱcGYYٳgώ?~+V 0 ;x`]]ϓ.-Zt{1;vB ^s:BS~Ty/^m3СCѣG4 W޻w/<>>zzzf"Q9rk֭۷o/WZJKK+000""ӳbѢE111˖-;uT``||TL3 :}Jp8aC;g3,b#~:ro;W`M}وR{Ih4u.%V#{`uhk #ƍ3TQQTP6R(#GQT$5kXY`PB++}H#9{^85::qtKMB op Y?p`MDDF{;)HVVYy1wG^_Tbe髯vՒR 89Pwuue+"#5kN=^aٽ+ܩT*=yc#n߮ K"R_zE #{ii[:a'qqr̩m I}pj#K._.]jbY'k K~{ː!pA#:;s]\>/\xci ؒU:255~r]p吩)88寿j6m7H.*G]:R:$$u3,.G56^~U֬e@:AH ۶3?pSGG스wYMl멫 'R_vӈǠ :ܱǬYb )r擰aÆ$$kHv9322_aБ ,Vm9?\zj8 ΅ &v]k:bE SUUJLdRBpECwTÉ<BGxN-1]wiOb~ $ t$e|8V|N:?"Mz@H0ZJO%` \t:BpFrA e}UII{NH=z]pt:b70 ^ NT֐:"&o&bBGঔ2 b,I:"W@4 op@ t%8A t N0{pb@ǻwmս۳m޼.KUUCppJydG]ycFvEAEŖFFvaX~~>>`rgϞ]^^^XXhnn%CJjhh>z􈷒"fĞ<BHAAUQ>}:vXGxGt:qҤIǎ@#&RKҒەF7͛'p ={m /w\\\p?}ҥK0x1:^ =mڴ[\xJKK; vTUU-<ؾ}{ojoop8YYY ς vuu)++hgϞO>5444^q|1qww7BwzFDD  <J| ˉ[ {C>8'$$̝;qԩͷn]hS0̸2̄p͛7}t6MY[[{xxφ-]Ç'OxWnjmm]ZZZZZ_~]IIGQRR"yFSS>B]pgٲefzYii1c^kddo544FP(޽#;(˗[[[ׯ_*..&&hnn書8[F***O -[lQұ#Y28xqx߸q8ds[YY00>cǎ)**>yRӧO8d2/_ʻ8::: <<<=_EcffF---ZtO1 oooMMM}}5kpe4옘333555GGlmmmǣ̈w} >|Ĉ:::]]]SNUQQᛸWѣGBCC|?J\:B qAw _#Fzq P\\\`j蕜yӧO?z?pA8D#Yxyyn޼yŊd 3$"^-ZT__ojjrJlذa=k 3waLv dBpuu`?0r@oz ؼH@ t(G[Q{GGهy9mmXk+]KM[/_ky/tlmm݉!jkU %ѩ١сawww[[ہ##)ћtvҨT|M&?er1bʔ)-p/n9sw{{JqJE'89Yϙ3fHmd}JkZ[;tFرo$:9Oiiwׯ.< a.cLAFj^h/|$?T ߕ Ml$+*:uBAVQQ={̒%fδ"1+M΁Օ%_܃aÔbcp388]oIVˠ**uBIIwuh>>S@ԩ~~ӸBDE- [*}Lf;de99ST~ei4?, :GDk55MQfu $,,MQQ!>g$cku}?lY@;s^XX:T*%;;l$k[#JJ 844XF|gN6*77Lgɒؽ{vdH؃/[PPms8?_dB(4G`MG.^|hl5v!o#۶ X/UxmmLMJ.V:r<,.g0jhhY*|*5kSdБ 4:'rAHZVVƍ?T/>Dr_w711WzaÆ]`C7_d,˗ee6mb4A营;:: '墬L'"9 ""X3!s$- ttJڵT|ƌ1 @ߴt_ii~~_mQ[On 'U[RRi8BGJuttm~!99wv2NwRɺu .Txaxx++}ˑ2 BG4AAĶp#?YttwWJeҏ BGfܺUaxod#iLf.jhh ={vyyyaayTTwŋ'FFFGмyL3g>'_җH i:MMMFFF1c;v;DžNggǏ[ZZl͛7yg`0pl6_8bWTTSpߗ9---ǹǏ{7n8N=,OFKBG 整SWW(++ "Z={6~x{厎&M:vihhM>J!\KK˚ާy988<g! SȌLБv/_ XQilla-2.3.4/docs/simple-api/classDocumentCache__inherit__graph.png0000644001725400016040000000707313273140076022300 00000000000000PNG  IHDRp0d5bKGD IDATx{POH$M ʔJEՎ4H}V rEQ ނ#:W@ j/Zy 1Mch|`Ξoc7, BO);;8uTKKz;11188JBD"in  FP9555|>@"ݵi[D"ݽ{qk}(2Hp022!D,k.BikkS, ---Ƒ;Z^Z{ٳ`RSS{4[[mmT>,z~zϞ=x!###t:?d_lYdd$~訅ō7==t 777㙇 w^GGNj/ ]n322<==;::|˓H$T*.KP$_|3\$MN㤦=wqpp>Hdii9<B|MuNI^rtgg\.'7oģ.\Y} ~'[oui!d:Fi666Pߠh(+Wĉ666.]hO֬`ggŋ/ jSИeLNODe2A4!OHH277Ifӽ{L5k4?j###o0~<֦&GIFıcd >;;BaVV=;?,aVVVM}'K[n ,//\b|}}W3+J߾}BCmm-sΠ~};v|ʕ+d4bhhFduO*j>>>JB(˽BBBr||?f'KV:44tժU]]]|>3--M' ØL}IIlO|͒%K\]]bqDDN:>>blllBBBQ² {xx 9;vJ_Ԛ[ZZ***4ŋyyyZW\i} [n鎎۾}X,!^}ɧ~:㵼 ap=zɿ\ >xhnn~饗"##x㍿\jOP8BP{"'b|"'b=hjj$潕Z nlB:qHд~ ?V8dl-Ƨ_Bil-Ĥ|R(m/_…ۣ Ŭ:b0e]]L&7"a:>Igobq%܁D"UVQa1*+[wTΟ-I(ɀO"?̄97$b">[g~yt}&SEEJ`ER55:0( )48t>#IgdpLS=0Uy+` P(VoJr*B&477:roذB ){OD OD OD OD OD OD OD OD OD OD OD OD OD OD OD ODJdl N&?el֪淫}}}6mZh%33S 9`/Zh6 #fBffD OD Oklu~ɒ%qqq/r7o>x%,,a a<1ܽ=VVVH$l(zS,o۶Js8__}]䮄dlmmyXt~X^^a J͒e˖޽tqq eee/N'aÆ&|S" dIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLEntityResolver-members.html0000644001725400016040000000644213273140074023576 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xercesc::XMLEntityResolver Member List

This is the complete list of members for xercesc::XMLEntityResolver, including all inherited members.

resolveEntity(XMLResourceIdentifier *resourceIdentifier)=0xercesc::XMLEntityResolverpure virtual
XMLEntityResolver()xercesc::XMLEntityResolverinlineprotected
~XMLEntityResolver()xercesc::XMLEntityResolverinlinevirtual
XQilla-2.3.4/docs/simple-api/functions_vars.html0000644001725400016040000004633713273140074016576 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- _ -

- a -

- b -

- c -

- d -

- e -

  • element_string : Node

- f -

- g -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- q -

- r -

- s -

- t -

- u -

- v -

XQilla-2.3.4/docs/simple-api/inherit_graph_19.png0000644001725400016040000000167113273140077016502 00000000000000PNG  IHDRU%2bKGDnIDAThAH*A?Ylɴ ]".ѡN43cB(!(^,`]J/SQ! S%*(kS}u0fgfaW<Ș.Q%SEQԏRH|SuttTŒG2\[[===p*%Up8p8AſQKnttqD$ܨTƗ|?$iCՆBӹ_a5D ԮPKD@ݶJi XZZD;H\D1 H~FhFdTTE///K3gvn²,0 cx~~0l||ommEqٜJJE0 *3]AF ?44; \N ZH$P<755*p7<<<33svvUFbq8G"h4 pLNN׹9Ud,a-,,ˋNt:x!p6d2t0nh4z<J?>O777~Аz{{qd W8 Kמy7y#rK&'c>x^X IRW+_oO;ѯIENDB`XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020632 00000000000000e1d52bbd09fed99d8516f4b7d58ffd7eXQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__incl.map0000644001725400016040000000113513273140075020445 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000019_000002.html0000644001725400016040000000374713273140074015721 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xerces → items Relation

File in include/xqilla/xercesIncludes file in include/xqilla/items
XercesConfiguration.hppNode.hpp
XQilla-2.3.4/docs/simple-api/classATDurationOrDerived__inherit__graph.png0000644001725400016040000001475313273140076023417 00000000000000PNG  IHDRvrbKGDIDATx{TWoHRDP(.UEtu=]\!`}@\?` ==UOwmhyF]mK%!QGD @0d~Lͦ! !.s<;|2w ɐp03u+yNW8RI ݻW&4Q Nkeee~~?RS㕠PWhkk;Ç7Ø񱰰((( ﹱ`ޏ~}.:dggs& y|3'OoF{{'|oس\.28+J}t:aXjjLMM0@<V W:;;߼ysdD:CR4--v˖-===ڵK9vZZکSrOO϶m SJJD"Q-#cu2ͳ駟s:PPPKM@MMMooooookkΝ;cbbfff677sŋٳ+w򾾾AD"QNN^^^\.h_$5mѦM\ ӕ3+Gu=d2lv[[5N&."*q F{QPH-Z*p\MA9>?|6MT{(S~X99Oms;;[n)W\dIӧOz.knnN٫JQn555 Gjaam۶/c.***Th@RW03VX,@@kjj>c-CBB9+M6Ν0ΎL&766T**cԭsqqUTxcFz8?y Ť0@P[[뛘֣ʠD9--ۛx<X-͟={fcciӦ[n֦ItttPPPcc#ڿNz۫iO?d^xQ(^reܹd8d3f455b8&&f̙666qqq*ۡ$%%b(SmsAXXŲ\lYiib͛7888$''s\]]/]+a+VhFJvss{ח/_N^IXXX 8)> '+ p '+ p2_uUīӧfҥN^(:!!YYwG*5gu&}>,m0Sg1SzB5?MoM &+-xBrF)w@]pqZRrB1H˗æNʁߗJ9 IL~~S~D"JJL8ﵤߏ? 0kOuR\y%o*qki/~A>CJ.W&+*_$qkGNjwj/ɤo`fWk-ʋ7QIN(0L0C800k֬17wǰv~(Jyyy@@^7ZZZul#! Mb&W_xxSL&NW8A^yHHzS@@UAcc#0u W\5h5.`ooO,bjggd2SSS1 H\OOO[[یgΙ3N۷ϔ|(((q+oTfffhhhss3]x={QQQbɓX <&rB(-Z\]]J<&gr\G@XD@RUU8E"QEE 8 6ݻɓ'\.w͚5}i ؼXB1 {i`ooO,l۶`899H$b\OOO[[یgΙ3N۷(R4--v˖-==n6'եKϟd21T kjĐ'ǫ\.3gNvv6߼D"QNNڵk6668~9///\hӦMAAA \.w(QQQbɓX Tpa///.|}}SRRBe 9:oV]]]EE 33344.^xϞ=ǫ1VTTP(N޽ x q|xxRիWq_vmFFNw0L>f܈Q(|lÇejsu\b<<OI"BTzbWsNMcB"~W΢ s]駟,Y?whCm3fǛ.pUMbtd2YYY&ɣ„;^ '+ p‰A) @L(݆q|At"22Ґݟn}Srwq'&qL;W_c,`_ w<~n,`Jx}𠵩98iV0%^PM&i*z8}~yq!n6m$#ʦE*2b^$LaҒ;R܄^RŋՊIGr5k^R&c4 zB5&ZtuhHz O*Usspp?рwTPazf/Ad댜ǘ|ŋ'OkwVG,gۘ(+g=8B[x{[(qve<yx* '+ p '+ p '+ p '+ p '+ p '+ p '+ p '+`޽#kG>KcEbWWϟ7$  He : '+ p79s&///666::XS^^~5srrbccvvv .LHH{teZ[[}]3ֆw d2YZ``-))ͥh ;vtFEEE3gdzXSNUUU9rLu;~ Gyy---iӦY[[[[[eŲf0>>>ppp(**;\.DNō3gXYY=ztٲeNNNYYYW\YYe3=/\7tvv.//ksRQQhmmULt2Q޸q#ccc׬Y_v ذaJ}}}֭ ?q0 00~غukHHH~~>Ql˖-ʇydddYYZRiVVׯ_%JD9ð?D#͛7]611y%&ᠠ ʕ+;y899iSXXgGG;w.!!!''Gl6[ɧ~󬬬;w(n~~>,>>>;;M[ss #GTWWmt5;wMtRKJJ Ξ=yfnG={lʕ+W &=83f:u*))Ɔd֗Jܹscbbʈ?h~GB"rC^re׮]L&sܹ񕕕jŏ?\zu͚5 KKKw`cc4rLn:3gΜ1ubTVh3B|'j"H.+utt|9Qf0 04ں7T~޼yʣ=44T믿i]r휜MͥRD2w\-1{gΝ&//~PKKKkd2LU8 044|r Ծ!9sP(={6 488̙3>>>SD"ꫯ{Y$N;v@L_rss7oohhpuu%*M۫1\.W$z {zz;;;kkk' #""Ļ~```aT*P(k``xhppP&B ?) -lݺU$---7nHHH`0Ш999wx.]wk*Vlrĉ[nuwwWVVjީZ^^xbw,h$/)No߾??w_7n4h >}ztttPPݻ߄^|Y]?c*zM6icaa_eee988STo~XrxYGBYjիWWZX99J0ĉ]]]#^_}^XXqFC. LG}dkk[XXX '+ p '+.13[[_•~ NrrJ;8AW8A^yNGfwIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_29.md50000644001725400016040000000004013273140074016366 0000000000000096a34c3d587730cb89ab5947e5fbdca6XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp_source.html0000644001725400016040000004164013273140073021266 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ATGMonthOrDerived.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _ATGMONTHORDERIVED_HPP
21 #define _ATGMONTHORDERIVED_HPP
22 
23 #include <xercesc/util/XercesDefs.hpp>
24 #include <xqilla/framework/XQillaExport.hpp>
27 
28 class DynamicContext;
29 
30 class XQILLA_API ATGMonthOrDerived : public DateOrTimeType
31 {
32 public:
34 
35  /* Get the name of the primitive type (basic type) of this type
36  * (ie "decimal" for xs:decimal) */
37  virtual const XMLCh* getPrimitiveTypeName() const = 0;
38 
39  /* Get the namespace URI for this type */
40  virtual const XMLCh* getTypeURI() const = 0;
41 
42  /* Get the name of this type (ie "integer" for xs:integer) */
43  virtual const XMLCh* getTypeName() const = 0;
44 
45  /* returns the XMLCh* (canonical) representation of this type */
46  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
47 
48  /* returns true if the two objects are equal
49  * false otherwise */
50  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
51 
54  virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0;
55 
57  virtual bool hasTimezone() const = 0;
58 
60  virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
61 
63 };
64 
65 #endif // _ATGMONTHORDERIVED_HPP
Super class of all the reference counted wrappers for Items.
Definition: ReferenceCounted.hpp:61
virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
Definition: ATGMonthOrDerived.hpp:30
AtomicObjectType
Definition: AnyAtomicType.hpp:34
virtual const XMLCh * getTypeName() const =0
virtual const XMLCh * asString(const DynamicContext *context) const =0
RefCountPointer< const ATGMonthOrDerived > Ptr
Definition: ATGMonthOrDerived.hpp:33
virtual const XMLCh * getPrimitiveTypeName() const =0
Definition: DateOrTimeType.hpp:31
virtual const XMLCh * getTypeURI() const =0
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
virtual AtomicObjectType getPrimitiveTypeIndex() const =0
virtual bool hasTimezone() const =0
Returns true if the timezone is defined for this object, false otherwise.
XQilla-2.3.4/docs/simple-api/classFunctionRef__inherit__graph.png0000644001725400016040000000752213273140076022017 00000000000000PNG  IHDRBbKGDIDATxkPWǟ\B\hk͎(:SVVV0N[e mТ3V 0oE "՗V"ZT B@1dаr7ͳg?w7ل=<$3c;{B  BsN J1i|x=q#aL駟scNfޗ? ^^^>>>㓑% )'OZZZhhh^^53ttt8p`Փ`0IO"tb855Ulu*;~322@ק{yy[===۷cS힞͛7{zz NnAsuu 短$"9f>Rm۶xׯwL&{饗>裦&z ^{/-Vh= j:33s2L./Y$%%R-mQllʕ+ܹ#ɞ}]v3ccLu}X,JgϞH$dC>FO?JϟMRL&T@ҥK$I@SSSO=%JFc{hn(_IT8'nݼyKcW_}e;OMMMT{``6H(LR訥j;=\.W\.Zh`` 2ёtO&1&:''zc͛74듳͛oݺEuyzz-j4E,ۏ_`gPZDP(v}}~:k֬9x I;t:gggooo>BͿs环/T*51444 nݺ5Kx"Iݻj{/""BP444,Yw1gEJvZZ?/ryHHHBB8W\ihhصk9sZdƍ+Wlii ,O ??7<<hǓI *|__gggⲲ2JUQQ1{ w2=$ x'Z[[IV?}t[ hNIIH$"(&&x18I """B".^ܸ7|cƌ9pϞ=nnns9}8t:ݲe˄B@KR{x'I;x*)n0X1 55w::zY,\{ 0>wLORizm#~w@#fx8988:mO ȵ $lZE0 {'4{B '4{B '4{B '4{B '4{B '4{B '4{B '4{B @1Es|#+B$''/] RTlx1F '4{Bc6[7D&ۜpn8&&F@TTV3fpēȿN&͘ZFP̘18)+55^LprAS?XnΝ;޽+:n0AS@@eˌ={.\pŊ/Bzz:SR˗]]] FT`Oh=`Oh0>?eeeL}B)t<%''jZ&'::zœ6ɓvϊ IRu~h$V_D1Ny*/ ,)0jF8婸:u%I*Uۉ;JMCC`]>WVvH OR >G 82$w<_#o۷;X gA{{wߙ98⩴=dNG8QJጧ:1vRlq R1=y x ֱj3o7-FM NJti 111I588XXX{-V.\(**L֞`0hZ-nTIIIώnnnfGFF@,[ؿ>)J㙇 p¦M֬Ys رc6lXv}A$m֭3YoFdd#Gas9>/\\\I^k4<<MRdddGX~x>1S{Ag5k477řmvvv*rNۧ ӦM ;s ITH$ʢ,www[BΝ;7888IW_kmmmmm4444DJjmm_j#qqq4v|Gvvv|eeey 'He˖Ç'$$Sz{{'&&s=G?5Ql߾3)))555(((66xyy9;;oٲ9!!!99yΜ9Jm3ϳk@}fx< `Oh=`Oh=3|~eeeee%#q VS[8(_{B '4?j66}IENDB`XQilla-2.3.4/docs/simple-api/ExternalFunctionResolver_8hpp__incl.map0000644001725400016040000000012313273140075022441 00000000000000 XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021462 00000000000000d923be7615f54293b2da13f50f1cc1d1XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufInputSource.html0000644001725400016040000011725113273140077022147 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xercesc::MemBufInputSource Class Reference

This class is a derivative of the standard InputSource class. More...

#include <MemBufInputSource.hpp>

Inheritance diagram for xercesc::MemBufInputSource:

Public Member Functions

Constructors
 MemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const XMLCh *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer. More...
 
 MemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const char *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally. More...
 
Destructor
 ~MemBufInputSource ()
 If the buffer was adopted, the copy made during construction is deleted at this point. More...
 
Virtual methods
BinInputStream * makeStream () const
 This method will return a binary input stream derivative that will parse from the memory buffer. More...
 
Setter methods
void setCopyBufToStream (const bool newState)
 By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from. More...
 
void resetMemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount)
 This methods allows the MemBufInputSource to be used for more than one input source, instead of destructing/constructing another MemBufInputSource. More...
 
- Public Member Functions inherited from xercesc::InputSource
virtual ~InputSource ()
 Destructor. More...
 
virtual const XMLCh * getEncoding () const
 An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. More...
 
virtual const XMLCh * getPublicId () const
 Get the public identifier for this input source. More...
 
virtual const XMLCh * getSystemId () const
 Get the system identifier for this input source. More...
 
virtual bool getIssueFatalErrorIfNotFound () const
 Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
 
MemoryManagergetMemoryManager () const
 
virtual void setEncoding (const XMLCh *const encodingStr)
 Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
 
virtual void setPublicId (const XMLCh *const publicId)
 Set the public identifier for this input source. More...
 
virtual void setSystemId (const XMLCh *const systemId)
 Set the system identifier for this input source. More...
 
virtual void setIssueFatalErrorIfNotFound (const bool flag)
 Indicates if the parser should issue fatal error if this input source is not found. More...
 
- Public Member Functions inherited from xercesc::XMemory
void * operator new (size_t size)
 This method overrides operator new. More...
 
void * operator new (size_t size, MemoryManager *memMgr)
 This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
 
void * operator new (size_t size, void *ptr)
 This method overrides placement operator new. More...
 
void operator delete (void *p)
 This method overrides operator delete. More...
 
void operator delete (void *p, MemoryManager *memMgr)
 This method provides a matching delete for the custom operator new. More...
 
void operator delete (void *p, void *ptr)
 This method provides a matching delete for the placement new. More...
 

Additional Inherited Members

- Protected Member Functions inherited from xercesc::InputSource
 InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Default constructor. More...
 
 InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor with a system identifier as XMLCh type. More...
 
 InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor with a system and public identifiers. More...
 
 InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor witha system identifier as string. More...
 
 InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor witha system and public identifiers. More...
 
- Protected Member Functions inherited from xercesc::XMemory
 XMemory ()
 Protected default constructor. More...
 

Detailed Description

This class is a derivative of the standard InputSource class.

It provides for the parser access to data stored in a memory buffer. The type of buffer and its host specific attributes are of little concern here. The only real requirement is that the memory be readable by the current process.

Note that the memory buffer size is expressed in bytes, not in characters. If you pass it text data, you must account for the bytes per character when indicating the buffer size.

As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source. In this case, there are two options available.

The passed buffer can be adopted or merely referenced. If it is adopted, then it must be dynamically allocated and will be destroyed when the input source is destroyed (no reference counting!.) If not adopted, the caller must insure that it remains valid until the input source object is destroyed.

The other option indicates whether each stream created for this input source should get its own copy of the data, or whether it should just stream the data directly from this object's copy of the data. The same rules apply here, in that the buffer must either be copied by the stream or it must remain valid until the stream is destroyed.

Constructor & Destructor Documentation

xercesc::MemBufInputSource::MemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount,
const XMLCh *const  bufId,
const bool  adoptBuffer = false,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer.

The parser will parse from this memory buffer until it has eaten the indicated number of bytes.

Note that the system id provided serves two purposes. Firstly it is going to be displayed in error messages as the source of the error. And secondly, any entities which are referred to from this entity via relative paths/URLs will be relative to this fake system id.

Parameters
srcDocBytesThe actual data buffer to be parsed from.
byteCountThe count of bytes (not characters, bytes!) in the buffer.
bufIdA fake system id for the buffer.
adoptBufferIndicates whether this object should adopt the buffer (i.e. become responsible for deletion) or just use it in place.
managerPointer to the memory manager to be used to allocate objects.
xercesc::MemBufInputSource::MemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount,
const char *const  bufId,
const bool  adoptBuffer = false,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally.

xercesc::MemBufInputSource::~MemBufInputSource ( )

If the buffer was adopted, the copy made during construction is deleted at this point.

Member Function Documentation

BinInputStream* xercesc::MemBufInputSource::makeStream ( ) const
virtual

This method will return a binary input stream derivative that will parse from the memory buffer.

If setCopyBufToStream() has been set, then the stream will make its own copy. Otherwise, it will use the buffer as is (in which case it must remain valid until the stream is no longer in use, i.e. the parse completes.)

Returns
A dynamically allocated binary input stream derivative that can parse from the memory buffer.

Implements xercesc::InputSource.

void xercesc::MemBufInputSource::resetMemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount 
)

This methods allows the MemBufInputSource to be used for more than one input source, instead of destructing/constructing another MemBufInputSource.

Parameters
srcDocBytesThe actual data buffer to be parsed from.
byteCountThe count of bytes (not characters, bytes!) in the buffer.
void xercesc::MemBufInputSource::setCopyBufToStream ( const bool  newState)
inline

By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from.

This avoids having to deal with aliasing of the buffer for simple work. But, for higher performance applications or for large buffers, this is obviously not optimal.

In such cases, you can call this method to turn off that default action. Once turned off, the streams will just get a pointer to the buffer and parse directly from that. In this case, you must insure that the buffer remains valid for as long as any parse events are still using it.

Parameters
newStateThe new boolean flag state to set.

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.map0000644001725400016040000000047413273140074022311 00000000000000 XQilla-2.3.4/docs/simple-api/classStaticContext__inherit__graph.md50000644001725400016040000000004013273140074022254 000000000000003b107d453ef0e9a529e49516d815ebe9XQilla-2.3.4/docs/simple-api/classExternalFunction_1_1Arguments-members.html0000644001725400016040000000566713273140074024030 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
ExternalFunction::Arguments Member List

This is the complete list of members for ExternalFunction::Arguments, including all inherited members.

getArgument(size_t index, DynamicContext *context) const =0ExternalFunction::Argumentspure virtual
~Arguments()ExternalFunction::Argumentsinlinevirtual
XQilla-2.3.4/docs/simple-api/StaticAnalysis_8hpp__incl.map0000644001725400016040000000176213273140076020375 00000000000000 XQilla-2.3.4/docs/simple-api/XQilla_8hpp__dep__incl.map0000644001725400016040000000203313273140076017613 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000004_000002.html0000644001725400016040000000375313273140074015710 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

events → items Relation

File in include/xqilla/eventsIncludes file in include/xqilla/items
EventHandler.hppAnyAtomicType.hpp
XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileInputSource-members.html0000644001725400016040000002564313273140074024256 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xercesc::LocalFileInputSource Member List

This is the complete list of members for xercesc::LocalFileInputSource, including all inherited members.

getEncoding() const xercesc::InputSourceinlinevirtual
getIssueFatalErrorIfNotFound() const xercesc::InputSourceinlinevirtual
getMemoryManager() const xercesc::InputSourceinline
getPublicId() const xercesc::InputSourceinlinevirtual
getSystemId() const xercesc::InputSourceinlinevirtual
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
LocalFileInputSource(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileInputSource
LocalFileInputSource(const XMLCh *const filePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileInputSource
makeStream() const xercesc::LocalFileInputSourcevirtual
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setEncoding(const XMLCh *const encodingStr)xercesc::InputSourcevirtual
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSourceinlinevirtual
setPublicId(const XMLCh *const publicId)xercesc::InputSourcevirtual
setSystemId(const XMLCh *const systemId)xercesc::InputSourcevirtual
XMemory()xercesc::XMemoryinlineprotected
~InputSource()xercesc::InputSourcevirtual
~LocalFileInputSource()xercesc::LocalFileInputSource
XQilla-2.3.4/docs/simple-api/FunctionRef_8hpp_source.html0000644001725400016040000004261313273140073020264 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
FunctionRef.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _XQILLAFUNCTIONREF_HPP
21 #define _XQILLAFUNCTIONREF_HPP
22 
23 #include <vector>
24 
25 #include <xqilla/items/Item.hpp>
28 
29 class DynamicContext;
30 class LocationInfo;
31 class FunctionSignature;
32 
33 typedef std::vector<Result> VectorOfResults;
34 
35 class XQILLA_API FunctionRef : public Item
36 {
37 public:
39 
40  virtual bool isNode() const { return false; }
41  virtual bool isAtomicValue() const { return false; }
42  virtual bool isFunction() const { return true; }
43 
44  virtual const XMLCh *getTypeURI() const { return 0; }
45  virtual const XMLCh *getTypeName() const { return 0; }
46 
47  virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const = 0;
48  virtual size_t getNumArgs() const = 0;
49  virtual const FunctionSignature *getSignature() const = 0;
50  virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const = 0;
51  virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const = 0;
52 
53 protected:
55 };
56 #endif
virtual bool isNode() const
Definition: FunctionRef.hpp:40
FunctionRef()
Definition: FunctionRef.hpp:54
Super class of all the reference counted wrappers for Items.
Definition: ReferenceCounted.hpp:61
virtual const XMLCh * getTypeName() const
Definition: FunctionRef.hpp:45
Definition: FunctionRef.hpp:35
A scoped pointer wrapper for the lazily evaluated query result.
Definition: Result.hpp:37
std::vector< Result > VectorOfResults
Definition: FunctionRef.hpp:31
virtual bool isAtomicValue() const
Definition: FunctionRef.hpp:41
virtual bool isFunction() const
Definition: FunctionRef.hpp:42
Definition: Item.hpp:36
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
A class that gives records a location in the query.
Definition: LocationInfo.hpp:29
RefCountPointer< const FunctionRef > Ptr
Definition: FunctionRef.hpp:38
virtual const XMLCh * getTypeURI() const
Definition: FunctionRef.hpp:44
XQilla-2.3.4/docs/simple-api/ATAnySimpleType_8hpp__incl.md50000644001725400016040000000004013273140073020323 00000000000000934dccd3a55e6ebd1ed2fc6d1e468eb3XQilla-2.3.4/docs/simple-api/tab_a.png0000644001725400016040000000021613273140073014402 00000000000000PNG  IHDR$[UIDATxK 0C'o([Ž%x#٩ We# 3t I 3+E~\D9wM}Y_A4Y}IENDB`XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.map0000644001725400016040000000256013273140074022034 00000000000000 XQilla-2.3.4/docs/simple-api/classXQillaAllocator-members.html0000644001725400016040000002016113273140074021227 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
XQillaAllocator< _Tp > Member List

This is the complete list of members for XQillaAllocator< _Tp >, including all inherited members.

_memMgrXQillaAllocator< _Tp >
_singletonXQillaAllocator< _Tp >
allocate(size_t _n, const void *=0)XQillaAllocator< _Tp >inline
const_pointer typedefXQillaAllocator< _Tp >
const_reference typedefXQillaAllocator< _Tp >
construct(pointer _p, const_reference _v)XQillaAllocator< _Tp >inline
deallocate(void *_p, size_t _n)XQillaAllocator< _Tp >inline
destroy(pointer _p)XQillaAllocator< _Tp >inline
difference_type typedefXQillaAllocator< _Tp >
max_size() const XQillaAllocator< _Tp >inline
max_size(size_type) const XQillaAllocator< _Tp >inline
operator!=(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp >inline
operator!=(XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp >inline
operator==(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp >inline
pointer typedefXQillaAllocator< _Tp >
reference typedefXQillaAllocator< _Tp >
size_type typedefXQillaAllocator< _Tp >
value_type typedefXQillaAllocator< _Tp >
XQillaAllocator()XQillaAllocator< _Tp >inline
XQillaAllocator(xercesc::MemoryManager *memMgr)XQillaAllocator< _Tp >inline
XQillaAllocator(const XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp >inline
XQilla-2.3.4/docs/simple-api/Timezone_8hpp__dep__incl.md50000644001725400016040000000004013273140074020115 00000000000000eb9197e59005e4a952a3504b22535524XQilla-2.3.4/docs/simple-api/inherit_graph_12.md50000644001725400016040000000004013273140074016356 00000000000000e3704467f07fef3fdbd2a46ed5824030XQilla-2.3.4/docs/simple-api/classes.html0000644001725400016040000005251113273140074015157 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Class Index
A | B | C | D | E | F | I | L | M | N | Q | R | S | T | U | V | X
  A  
DebugCommand   ReferenceCounted   
DebugListener   RegexGroupStore   
AnyAtomicType   DocumentCache   Result   
ExternalFunction::Arguments   DOMDocument (xercesc)   ResultImpl   
ASTNodeEventGenerator   DOMNode (xercesc)   BaseInteractiveDebugger::Run   
ATAnySimpleType   DOMXPathNSResolver (xercesc)   
  S  
ATAnyURIOrDerived   DynamicContext   
ATBase64BinaryOrDerived   
  E  
SchemaValidatorFilter   
ATBooleanOrDerived   Scope   
ATDateOrDerived   EventFilter   Sequence   
ATDateTimeOrDerived   EventGenerator   SequenceBuilder   
ATDecimalOrDerived   EventHandler   QueryPathTreeFilter::StackEntry   
ATDoubleOrDerived   EventSerializer   StackFrame   
ATDurationOrDerived   ExternalFunction   StaticAnalysis   
ATFloatOrDerived   ExternalFunctionResolver   StaticContext   
ATGDayOrDerived   
  F  
StaticType   
ATGMonthDayOrDerived   StdInInputSource (xercesc)   
ATGMonthOrDerived   FastXDMConfiguration   StdOutFormatTarget (xercesc)   
ATGYearMonthOrDerived   FunctionRef   StringPool   
ATGYearOrDerived   
  I  
  T  
ATHexBinaryOrDerived   
ATNotationOrDerived   InputParser   Timezone   
ATQNameOrDerived   InputSource (xercesc)   StaticType::TypeMatch   
ATStringOrDerived   InteractiveDebugger   
  U  
ATTimeOrDerived   Item   
ATUntypedAtomic   ItemFactory   UpdateFactory   
AutoContextInfoReset   
  L  
URIResolver   
AutoContextItemTypeReset   URLInputSource (xercesc)   
AutoDeallocate   LocalFileFormatTarget (xercesc)   
  V  
AutoDelete   LocalFileInputSource (xercesc)   
AutoDeleteArray   LocationInfo   StaticAnalysis::VarEntry   
AutoDocumentCacheReset   
  M  
VarHashEntry   
AutoMessageListenerReset   VariableStore   
AutoNodeSetOrderingReset   MemBufFormatTarget (xercesc)   VariableTypeStore   
AutoNsScopeReset   MemBufInputSource (xercesc)   
  X  
AutoRegexGroupStoreReset   MemoryManager (xercesc)   
AutoRelease   MessageListener   XercesConfiguration   
AutoReset   ModuleCache   XMemory (xercesc)   
AutoStackFrameReset   ModuleResolver   XMLDeleter (xercesc)   
AutoVariableStoreReset   
  N  
XMLEntityResolver (xercesc)   
  B  
XMLFormatTarget (xercesc)   
Node   XMLFormatter (xercesc)   
BaseInteractiveDebugger   NSFixupFilter   XMLPlatformUtils (xercesc)   
BoolResult   Numeric   XMLResourceIdentifier (xercesc)   
BaseInteractiveDebugger::BreakPoint   
  Q  
XPath2MemoryManager   
  C  
XQException   
QueryPathTreeFilter   XQilla   
Collation   BaseInteractiveDebugger::Quit   XQillaAllocator   
ContentSequenceFilter   
  R  
XQillaConfiguration   
BaseInteractiveDebugger::Continue   XQQuery   
  D  
XQillaAllocator::rebind   
RefCountPointer   
DateOrTimeType   
A | B | C | D | E | F | I | L | M | N | Q | R | S | T | U | V | X
XQilla-2.3.4/docs/simple-api/dir_000005_000015.html0000644001725400016040000000376013273140074015713 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

debug → ast Relation

File in include/xqilla/debugIncludes file in include/xqilla/ast
InteractiveDebugger.hppLocationInfo.hpp
XQilla-2.3.4/docs/simple-api/MemoryManager_8hpp__incl.map0000644001725400016040000000007513273140075020200 00000000000000 XQilla-2.3.4/docs/simple-api/LocalFileFormatTarget_8hpp_source.html0000644001725400016040000004532713273140073022221 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
LocalFileFormatTarget.hpp
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /*
19  * $Id: LocalFileFormatTarget.hpp 932889 2010-04-11 13:10:10Z borisk $
20  */
21 
22 #if !defined(XERCESC_INCLUDE_GUARD_LOCALFILEFORMATTARGET_HPP)
23 #define XERCESC_INCLUDE_GUARD_LOCALFILEFORMATTARGET_HPP
24 
26 
27 XERCES_CPP_NAMESPACE_BEGIN
28 
29 class XMLPARSER_EXPORT LocalFileFormatTarget : public XMLFormatTarget {
30 public:
31 
35  (
36  const XMLCh* const
37  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
38  );
39 
41  (
42  const char* const
43  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
44  );
45 
48 
49  // -----------------------------------------------------------------------
50  // Implementations of the format target interface
51  // -----------------------------------------------------------------------
52  virtual void writeChars(const XMLByte* const toWrite
53  , const XMLSize_t count
54  , XMLFormatter* const formatter);
55 
56  virtual void flush();
57 
58 private:
59  // -----------------------------------------------------------------------
60  // Unimplemented methods.
61  // -----------------------------------------------------------------------
64 
65  // -----------------------------------------------------------------------
66  // Private helpers
67  // -----------------------------------------------------------------------
68  void ensureCapacity(const XMLSize_t extraNeeded);
69 
70  // -----------------------------------------------------------------------
71  // Private data members
72  //
73  // fSource
74  // The source file that we represent. The FileHandle type is defined
75  // per platform.
76  //
77  // fDataBuf
78  // The pointer to the buffer data. Its always
79  // one larger than fCapacity, to leave room for the null terminator.
80  //
81  // fIndex
82  // The current index into the buffer, as characters are appended
83  // to it. If its zero, then the buffer is empty.
84  //
85  // fCapacity
86  // The current capacity of the buffer. Its actually always one
87  // larger, to leave room for the null terminator.
88  // -----------------------------------------------------------------------
89  FileHandle fSource;
90  XMLByte* fDataBuf;
91  XMLSize_t fIndex;
92  XMLSize_t fCapacity;
93  MemoryManager* fMemoryManager;
94 };
95 
96 
97 XERCES_CPP_NAMESPACE_END
98 
99 #endif
Configurable memory manager.
Definition: MemoryManager.hpp:39
virtual void writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0
virtual void flush()
Definition: XMLFormatter.hpp:461
Definition: LocalFileFormatTarget.hpp:29
This class provides the basic formatting capabilities that are required to turn the Unicode based XML...
Definition: XMLFormatter.hpp:41
Definition: XMLFormatter.hpp:442
XQilla-2.3.4/docs/simple-api/inherit_graph_27.map0000644001725400016040000000035513273140077016470 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_32.map0000644001725400016040000000766413273140077016476 00000000000000 XQilla-2.3.4/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.png0000644001725400016040000012735713273140075021403 00000000000000PNG  IHDR\@bKGD IDATxy]\\ XZZ3ő@ ,^k( "/3gΜ>}yժU-EEE{qHgg焄))ZZZ} --7nჍMqq@:;;ccc޽[__?~xMM͕+Wb3FIIMHHW0OE08*ZTT$..^\\S,Xp9A=<y3HKK {vii)mJwrqq{sRRR\\\mmmo߾Bۘ}ݾ}m P? "pw޽}vУ zG.]ڸqI\]]i#6l(//1556mZv ^|I},_ҥprrFGG{zzf;mOYfp A 0P()?練xAB}}}=?n:MMMQQѹslʊWCCAi7 nnnNNNl p TQQL655R\\,##3Q?}Ǐ=?!oddo;]]]^^^=c=鹖jkk>nppphjj^zuҤIRQQ}HUUՔ)SzޯZIIsqq-Xtĉ7oތ$)I ** H/--/_@(Q(Ѷ>}a5ѣRGDϙ***'Nؾ}GqqqFEE蓤k׮]vRWW'o)/'N8sѣG69sf֬Y=;;;zJ!R999 {vHHܔ)Sz Տܹײ޽{o~#"ZSSC?@` IWWtttjkkܦfddO޼y痕ERVXp7o礤$qqA$$ uwwӮ絷GQQL&lojjsNmmkz% ѣE$~|?{MLLNr̙3`dddv5*??ój*mmm??ppp,\˴k4N:}txxx]]6@?L\\\QQԩS=ä?~pE.Zhē'O~UVV6 `>|XYY~x{{wvvjkk^6Xg'# 8a0tTTTǏw؁vzw⛡ͧ)O]__ҥ @E8Ϟ=suu]l2Y舏W6z5E0())䠝~e#) "/(Fӧtj!C nRΗ~PG4))_\qprrJqqDZZ}~g,vN2hAu../ntp8)`߻˫^}yǏk980 RS.2g$..p{=xۘ/VprbMMgZ5o֬7L޽wWsÇdܘ9sdݗ,Z4UP,CUUFUU#'a\܍goMfz=NNnb))aCΠ(GRxJˏkk44&kjNU3Ft TE˗;11?nYDiC(=?iaN9)E"ԩ)*Q'X^ő9/KeeoxES-S֖G;({mtՋ+DE-B;l+W*ϟx;nnd##%}hGc _icb9s::j::j #)(#ŋss?֖76V^h*''Eۡmm]֯גB;, "{}VVKkj-l92X숻XX(Ҵw'&-[l1he$vEzEzX,Blx,pff*/?9|8oɒ AG_R508(,B޻6=^VVyGq {/_>nef}umEi]Jʝϟ[gϞu,}`0cce}))wYf<~5EVҙUTQĉb+V̖ _SӧpX77-gE4?**jned')zz3ll54&3EQQG xzZ5/AQdjMMߓ={͛/㬭皙 wQi{6rޝ}rrhq(2ԧO-71vH W`O!_ea10B@QdFF^={??"'F RP:~SDDqPХcǬ讲úug,WX߽0?]eoNN᱐v( 騲Cp˗L.jcdcPL:6;{cDDyOCCmƍA;tyk^puuCxݕ+ަ"sޭs(=ډ8Sfϟ=z%7Ѵic파`nLM+p8w6_vq>]k |"vŅ7:sƹҥG>|v"a7?T-^}Y祧7!`WKʎ^<$6qN0|GںOϾ}s! \N( ȸ{MP%L[,5D]]諡 Sg X^E?07QϏᅴ4i0G Qv-G) qj3gZYap#))a '!!l`W55}?rJl36ɠ yyIYY7o>eN$MLbx3UV;f͍G;Cg#(%_17CEd3Xl?vM:vʔâllKJa?8v׷³\L;'%Pú.hUg۠(TKKG@@Gro//'ڡ]HK +*JYPLopaرB߯F;b+/>ȑ'A;/ c f0 񦥭WWD7o'$%7a~H|~ϟ[bcfgדHT.}#Gַo^^||\ YEJFG_jj]ǎv":"hG#KZZگeAcwDyd 2bKK٢>><<` s>*=}LiFʌ6/^|408Q͹s:P@&$FEeU_üဉxDE`'vmeu8͋"Lٻ7wSYc/XG^^N;ȶ. ]\y2:? 󇦪6%/{_qϞ= 4Frr2?>  jC""|gϺ~㒖0w:!!-[QYYY˗/9͛7bbbtH}^Sǧ ~0'ijjZ_____MAGAAO:e~Ɖ;ߺzt߻nAhgA|؛}ٞ044looXzףG0L~~> /^Z6B׷];BիWtj@ PJjsTTFw 3>Ch˗/h`{CȨܹsSigOilI4?i?>ELlݚ&-9G`~(655IKK+**|)((7pQzY[[L.--E74gnn!4ӦMWVVRS>_z؈>DPZ[[drᄄTjYYkhhRGǴ?Bw$iرT*7-twwc'O~Ȑ-0uԌ ڱO>yM7'm8-@loPT2;U~(vw,-O(+~'0dl2|J"Q6nLLJ&EBBB...nnn-o޼QVVAQq)999_|KF$8ݻw+uuu߾}K. AaaⲲ2iiE]vO_$ILL {URRwX,vŊ WFh>}D&eeLNNgBɓ'^˛ Y,' =L6gloρ?lg FF^6Ā"Hvs;sbE\>,jjjBCCutti[=zԳCee-tttXZZ8q1//O_ znhjj*++4mGGBIKKkllttt466nllLNII9rHxyyPT} !33355UCC6V>C!cmouڋuME;ˠP(k׮ݰaCRRRAAYvovvǏn:p#]]]ݜfgg[[Ŋ+mV]]]QQ6h` wܹn<ۻk׮}yjժW^ 𜟦&Dڽ{/6B{ x<۷O<ٱcGA?yɓ'cN7VUUݽ{w666O>بo߾ ŏMl#/zmVVyL5u mmBشiv&+CBBTjffDcccwwݻedd)R#G7ĉ֪a IDAT=I$544i[ZZEEE]\\NNII6mZvvvwww\]]zG "++e˖_nOKKˠy 7o-|>>>Fnj~蓓OTTԄ 6l@ 0ߦ~boǎ]7 z=@@0 Ε+O5''M:8L$55UUU'OfC~wΞ=vA9~Z BT*͛UyyޒB&bSڨi]ݷ `:;;߼yvJa`W YKE"u22юX۷UUU׮]xb ߜ~M c+:F?9`P7|J&S)+G;3S~((xfMe~bgT*u+W:AE`$љ驻sg'ſNM堮.v諩MrukmD; `sTOy5$d%hg0&,N__ebiL?e&&`ѣBCmss&% >CC;/g`驃vAaqrRXF/Nb0}sӭ[׾dww))>A΁>mjnhxLLL =}=''kTqt{n۶meF SS#P[?aBt*+xI8ڤ6kDa_ysѯ#0b1{Q$55.lG;`^ׯܶ\}}zZ8/ HJn71Q|**zJ"$S_߬{XWWQk6wzgg>}yI^=',/.޲t錵kc\]㚚3>H !!tuj:;CE…GO_?p~'54߿_.. I2,}u'(ac 꾾uuhgyMvvf0&&8pa"?Y8L[{zI=Ѯqh'bCG lޜaҢH$׭;3v]0?YR߈9e\2;ΰ0Ѱ"NLZ}."žv\nz{8),04-͝gSFRTq,}0cQ,*zQcHKK_Exq'C vx;o^SwLiOϳD{ ŖN_gjhgL$;ƾQQqqNꬎ?]]5k]]}SqTW7]B; `LW;{Ahhhsr:~}ӊ|-cGG ##-f_2|̮.ډU/ysrgoC@LT;:uta2~}k]EF$]G\_3X:ihhھ=}z,ωN>X#GV\33 v"##3S78߆rQk0,uSYpHP_ln}!WppJK_Zj̖-i ,5S=}Z榅J_ Wv֦1%/KDHTU Ee凤2րNQ<{ RL8p*|Ѣyyh'bBڻvePꯘ:u}.45}G; `(Ŧ,-0k0߾؜( 鰡 :>34<'1;_ex<ѣWX E1300Pd|׀1޾bbr`ȔNttspqAlu BQLMkl˖5k9Sr pb M(&0vdO?%ƾ-pL R7YȄ ǎbXRR:dñꂈwgO%$FݿqiIUg{.blӌ0Kdd< ZZ:˫,gX 7oNru:zԚu+" Nj!H1dxrr/n4IXf&,Sffޝv]VRB.\8a=:!)~~\qd,  S/p{|v ++z<81(>zTCR1;0^df*(ȓ~^r*x؜RUx{r""|Hg45dem|G\\8OO3gnTWE; @#bmm#=eOYYTR4X,* sNB;#Kfem&vԬZ5OJJر+hc]mm0*^hiyb ӧ5x"VWQRr㉉#?߸1q%'A;@#VK}kj;pr:H077gX0܂varʤiGGw.jjl53/P::N{Y3|$%%Āmժp!!8+" $ A** Ì@ |N礩9ulڤ{Ġk,ΈڹjUDIL\~߅c팍"/]zv)O:q uDcDQkf@G`:;Q?&'3nXGmm绸ĦE;qp`6ny'#݋bkkg{{8|2/2釄EюЄ`1sv^啜TvF,3#݋b{{7 l6$;RϜqVPB;@ٹtVSJюPl8Y^i˲ݻsΝf4̫`0~e?G A SUUE.kW޽hga(8YP z+#@ő###KCBV/Y"n!!-[QYYY˗/9͛7bbbtH}BK8yhD]Y|8g3vE|dY11QW\9B|Jh}Bm)h(`ؙ" 2 ۺF~HII555!4eʔ߿S(PyyyuubڰCf啐詝 |||<<<=Λ7AceH$3F\\חH$"`bbbG}xQFЎ:"77I;հtǕ+W䄅ߏo 9;;{ԩ➞]]]nʯט͎tHJ:B"C;+,p~~Ħ߻uTOm[ڟ4+q̘1oߦRuuu.\FիW~|ɹvڄA>LRcbb=߿={֭[T* ---QQQXZZDDD ^__zEkիW] A##svu˲299]vq@ PPP9aO BvXH3ghFPBb<""gemN$_,MMMҊ=_ =; \={F&KKK{jycccL6:??_YYJ"R^^NR~Ucc#?|pSSBimm%ɽ(> %%%T*6̫Wh]TTT|rrrnEJ^hxo_ߑRcbM#MoFS2 $ںV>% n1b!!!J7'}捲rK}}}Xƶ6"(,<Ф޽`0 FWW۷>....++^hѵk888~u#IIIA88PLLllG;::(JZZZccqcc5~Uک! /_U͟m7CC0#.rq,q( Y'NdЃ eڵ6lHJJ*((8< k׮c^^֭[n#00AlSS~okkXbŶm۪+** `Ν;ݍyyyC$**۷AݸqcUUݻwoncc3F02R =}ڮ]_`0h D TBMI͙_MR333%$$w-##ϯ xMJ9rDDDdܸq'N600gO"O ,,,**wj+?{"++9mڴ}sXx[0a؆ :::8/bX)`86ӧu0ٸq^Ǐcx͠ܮz'6EJfg{w6lZ'M򋎾v ?]Wg\]cU7lA; `&&:;I^^I fcЋ(کS Xw暛bfΔ D; mj+Ë/\]>|hkL@p(GD>uj E;NhءIFXY͡P(x<ӓ="&LS8qH ,(Ç_AT,mY[&o~N@A8tnwߪɠE_yxYƣ9{ݤ;2Ў3dTT&CQd{pM=6yz&ZZY}y?.\]_ݻȆH${ر{@; Ao7ZV#9Y߲e3Ǐ,E;/(lK5'N2v257Wur:} 3,iarfAQd7n +ڳg<}p`_o&]{ra#BBK%ϰHKKbq19tR[[.cFLSHVVsxġj Xw<\.(]{4߾kiDDӻ΋/9殫W?޼L.Y"l8q5kΚ%::;/^lVP66 !;LMMmĉH$G=~\ANN12_e>ukcE_b?!!"sO|8u$;|M>()9_YPhWYVmmQSӘa8 3 >.]zaK6 5?ꤞO5sg>+0Ԝuǵ2G D<ƍIJr}⣋K,S^ܹ{ mh"kmܲ%@P[h*Y~[w7)!ܹ{||R44&ߺ223٪ IDATE/{o6Mbݺ3|?2elB믶o?vaaÙ| `AQdy\&ttt8Q׮]Yd)))v.F?~#''v{ofϞnT?hg+WΉI/"kp@S-D$&͟+VVso 43F\6{szM]v.QkKןv?"++.pSKkYp3Ef ,+/67:)--\R%(*" XdzNnOeq9__}K9߻,F=?oh "&ۗK 2r_vu36Hdemsb[i]m۶} `0AAŋG~8Pi(^݆@QdU%_nfv|뛪us|sN9ƌ ,,73 var8a+++zOZЎ3tx<@P={m5EKkXX1?YpYDP, CJ_.҉v͍sĮZҁv[PW ۰(,i..ҿGjLLsJJXZqpUOf9;M22/X7>&; %$46~wv% =L(.p `@Qd=צ 4e52 qcƢ0 <*;vd)+{va3~h|Ç}|R\/(mE_٪2FF̵r JMK/7ѣiiSE;5w׮%%[$$FXjoUSӈv1cTD}fGe vE\ͪ[ 1&&ǽT^F Ȍ>s9%ŭE P`i/C;PXAmL(ˋO7O jk?|g3nC3M)>۷9sCSsZ]xam=oݺ7nTe(lm+)yv0 (oG;ȿ^}d+32<%N4"X'WnљysEo|֛vDv6E*̞= Hkk_udaS 'sr6vv. ޶-ʎ^:W[f~aS݆ @Qd߼Y HIs-yy✘Yɑ` W^T/)uGSN tw7HL&) nayPYJ=z ee4'u"d^}JUubqcce civky[-[vh"QQX==ϲVu㱖sΞmXEpbţG5h^M|ѱ;EEQ 7<PC1eؘ.=v߳zo0 (ѣWOD%Jti0//g~:*1OpuIs QQWYq$=z%5.Y~h55}.\xG//t&vޝ(=}xQTb_`׷X_Ϟ޽+W]~o/,,T/]`jG(, ,P b?;|tw#< `y1tɋD,]b۶tq{e01`.^|v0tP]aӊw%:-qiis4#;$_ysvJzqqFm4խO۴)i͚躺fC*..\Lc{{kwuZX޺{v[s䀢nz}mFvZ_߼|yHIDWo殺;z:#/ YɁ1cccywy--y11hCE2rjmm99.ʰ~̝;KС<}#3gJ;f}T)Ḳq+A;"(̫Ci tcj]sЙ3/]gXaxvq0?,Ԇ nd-,T߼*}@Qd^ǎO.h#NרTy7'99-u.؛, **zvmblLgjf\<~Աp Ȥ>_Tq.&&)[O;vEđvNqY؜Z>˗VC ;v}?^bfYN$~E&Z #3@w;8Dgd܏Ykk;"..n|[-YYh'W\SccƍL>Sʷo"+¡)3<(Ȓ'm m>|hJOwGwqݾiϏG ^Xq-GII! 1ҭG\H8wޡCVc2'11k-,N:tiytu~Ef^,..b ]{dw7)'gĉbt틙](:*^Haa>/pNJ^L;íLPIS53vPݶ-CP,7)ij|{ݺtSyŊP21+" T*M?,cnμ_nΜInM9U_Ϥ[Z9;/NA;O*qpp}QN]TW]<+#c̘^`0KI +)c|$ԩ.ض-}SL83nc׮aڛ< w23$7(%1f .b}꤈_ZzX%c8~fw2텒-mmӪRYҢEdI BYuqcܙus﹦9yJ"-1O)cd_ƏkExqQN]Z cF6O<: (s^̙3K檦aΜ>$d7PTuu;?*6u9 :On7zÆ]䷵J##']ǪIA(X@GDEZl47o7+`֋̞=@T}}e7DDHS?}*7nll&+W۸&6eYV7J F8{ԩfPZ. *+uS]]Oh8H$8;[P1x>,mlZl8b޲e6 NQ=}J'F'";[X؊?< ZZr&&jm%h)Sx+ߐ9pO~??x<)7de~s!&TE~!0qqcbM?uH%fǭYXhjh"~ŋrᓼ22b/.ƇiL1B ,"_OO'~1;wΰӦY4i(*J^, `ɓϦO?QTTkEtsB<9X[%>K@"bw_mm}wNNWyֺJJRpF%77S,[[W_SSٻw6ڄ@zX_==Yyd>'M~K\jnP  ""Ϡ/ϙ3_nXȑOt)!!}|wR_Taas } pt4-@"ψEqLɦ:iꐱc ݭ9 {p8LEqssA&cAh **:bĈ fQ?`mAMMhXo22Z5~Ӧ[YYx" ?qǏy+hyëWyYYߖ/énRuk_Zwޝ>}ziiihh!۠C@233\\\p YA^^",cj?ޡMMxP[[pByyyuuu__JЖ533l?C&HBBB]Ij?j:\}FFF;pu۶m ϯ}l`o?(&ƇNG&M:'E8wnOzq"m \Ac.NEe-{,BƍO9ҥw3{՝-6 +))yAs)**FFF>x@]]gKNHHh߾} AK.]v}ɶI&=aEk]]]PPٹܹsJA?k֬_fffZXXlܸqΝ'OF$**JJJA4A͛gccSPP9p۷W6m*##߿URΒڏIT@}}}hgϮpƙYYYÆ }ξ%k׆?u) /44'%co{""R45}xhVS7i4Uu/_~dbMM;m\(h/_5kVuu5(fff2HOOGBtF  ƚIHHP(o޼D"]3Ek55}<<Z88t%LLòTWkhw@O&8ow.6ddd/_rJNaaMLL $$goo?x`f}}=JeXа(HEEu勹xjjj||ԩS&O FEo߾W:vؿ!&Aŋ3a]hUUU/..Cf̘lpsXT0eq,1p#G戉 ^}WeeŇ сۊ| 4B%/X0BXGJJl2MuKIIɩSlmm}||;jjjq&gg 6>}co+aEVoO555xC 55rPLBB6=v~`]]SJ /φt gb{^vXqMxISSS ȝ;wTTT)Ν;utt$$$=EA9ү_? ӧOʢy(>PQQQAnu]]ݢEdee/_ݻw# $$Quuʺu뚚RԤyCA&%%%u)WUUUZZյIu&piOJæ=tNt \>ŎK27mvnnم /l$awŋҊŠL82컆0E&&&kɒ _41psib7=o1?ȑX&`n( ACQĈrr'۷ߦ=! }aaѣ;?bѢK7sŋGMfGj5G!(bAs3 ieϞnn֦&(Ν;W[[[BBdcxzOIܬV}>dII5ۻI\\+NWĉ32Ja)[n 6~Gb;UDUUziDDDJJʜ9s\]]?~ 9 AF p`ii ]9wnAJʗ'0\5J_XenQ$^'\jts4RTT70g۶mƍ 6l؀|||:tzUI .{ޚ!Ctf>}f*W4H}#Gb;("B}Lsn <=!=87tl?RWW}8GT o^fM;۶mx"zUj םItF"ZZeWܻ:cFrbDFy#T JJJ>|h355ҲIj E:d@$%%%$Ap*w[ CC6U oBR':zmk+XFW.befw?|(R;\7F ;O88IBKKpP`1uÇ7o!!!T*ULLIjV7nus mmmVt CfW7!%wZ3N޹Υ^֯8dUךxkg u(..  }[4wUox1g"T "{y򥻻{bbbff;N8CbBFFpպ'Nt>,+Vh $ -W7fk֬OMMݼytiҥcV9|8yx<ĉy9RH$|],H7p{}ⷊ|nwćl~wذ]4~j22ڼw})͞=[UUURRrСksj Av-##)v&ARG)!!Dd2Y\\M@Ȱt0((HKKK^^˫-F<<=%hjpUuox==auojvG:h֣GCl墛EaAL$·FA/?lrt'O)))VnBz½{::fzCz0̙eGr@A&mE دDU՟[U]ݐ7{[rն.DPTT<{,+7!DVV'.Zt1$$)O=~<6)-w`Ch,xu5S|0D"" p8C"u/,nc3`ݺpk]qmm#)r [bbBUzx16ǎ^zŊ+;-92ɩ6;3fE1QnHJwtd?s/$%Ezi89Yzrr:)99G޼v;N))QSSWQ=XE%%rLZޓHDUmzXQQ6'ȑzQQk9:S͎gnwNف#^̥!QTQ)-ApΎӋDBSMA &ﯕ1sضmW(2XWTTYRR͍!QTSiii#ꓓͺ/ʈKGctJ n޼1bbx]DlDII*2rƬYbcWSDE߾-:%G쀥)11CX,OH{8~{կ]KK*&ݻw̙u|&89結~ %姐&˳A[fB\\%[^Ν3-6 R߷p0waa!گ^}vqaH(HJKk0获ܿaggik+ҥs#H&+s=oha-%%F/˗*H p4^Ҕ)f+_8s7ֻ]\DGgP.'A./>d@̜9xtu+*~sD }E^Q#f ycDz9M<U1D"g lq|vKdd<=-4 !Mzg^' hkcׯ?s) 54`O-+-;֐%%11Y+V*HOSH;;s^=>!!栽()Iݽeh-o/M$b0HbxܨQ'N0-7{QwD8}}⑞!{Ԇ WƩ\7|8n+D"^SSFJJJ!{k!!It:~ `))Q77Xߘc>ؾ`APtt^m6m˖{gJ^Pر'6rޛ7aW`75!pMbb>Jc#Fru0HO!4Z_{h5ݻN57SWjisϞB0.}/֭ g֭S8J%;n+쌢n_6/^|42RQRiGYs !xO9D4#>~YCnH>|˙7S9Ppr Z~ɒKMM?dEyy7o { 0)VUW㤤ѣ٨xZF0`hGUܲ1=}{x 1ffn|'rߺmYq8sgi g材Q46VkjG̨k|!kןܬ ~(sxyټz@?+\?f8^Dyy]p䘛at߼)S>;hh""BXz3!-NG,,{Z1,,YAAr86Sj@m8ȱ]/mJBBޟUOO$8{'17i6~vFD" CZZdj#"R]]`$_A$i? wv5UVhFmm3SRYxBѣs"#>x726 E},QbiӊIGkksCmŸ|ʨ?@!"Bpa,tNzOm2t[^yFLӧr,;6>|ohhQ,+8S@[ ǫWܬM1bϴi'BB؎asC˖Y:=cޟne[^$ E2YIBB>EJJLVQ7Ң'*8^c5<|-ͷa8n)7Oޱ#%%Eu}87gk  *`jx}55RGGo\\ ' Bboh HI'c„CG{uoxz=z\ܖ-= 9Ro6̈́BBD33MhkG33>6SLKbiٳŗ/?}V3g0.I>y7PRILD}߾^ CC֬ ѯ%22b6DaQO}Lڞf Mي+x8S&&8صkfy/3F=|88g-Yrwϟ޸^ÆV!0F\JhKp8:Ubcs m 䈊~IL._~5lخ>1r^DĪyα~!:K dp8^F]`m55e1Kdg_AR .  & *Ho  (}΁;_TTki\32r/NNYOKyXRF=޾-iEHoY*䤤>b ԃi"t{\%NG౓DH@ԀKGGE=XQP9 k1$BBÇ$&懆&ѣ۷ElT /--wq23 zkRSLn=I^'BUU&9?"bܖ--,ki젩)w7D>Daa+U,,V}]6Chgd|ȑz--&PQǏ_=Ps']JJtXCp<oFm޾-8ر԰(*J޾(5cImkiɭ] FǏel)FwY23Kp8=3SH"͹ҥ=Y?tαc.CFF,"bʬY"81ݻ˗zԑHZZB!=7'_oddX,RvSl7cε..gЃU}cQ{ŅCB |:!!j޶EW<gfPgFbAV쩗Md[%%az%.B"NN+_8cXY-tp0qwqv彽dhum8S#(VAKge&*ݬY{t {Pge۷Μ/"BZꚥ;|F$u5kw.D";]+XB H/QTUҒkY)}[TTT N|C@+W/[6ɓy Rc‘+W^Ha^HӦG鷆 @Lx}p,Au/;wd,!<z**26II[9ͷHIdz@q8܎׮[zPP\az$',^|O[uuML15lhh5Q6ӧc^6dJIZYr[()I[Y;L%-,"%%f~,reiswᄎg{L̢8 EDHWPFJZ>FHďk(XFEq1%̙3}\;3h5ݻN57SWfճz/ "bǏenn;'skגږykkׯhŶ2D"LVzwtt6~-'e-SD{7}͚wv] %'oԔc^4'b )mmjo+:zڼS ?_Oq#~ٳLb&"Bv?pv>)\RRH<ɓJ?{8{˖ۿ~5={fX-7!!"JC=Zojm7 -5c~͸B8O66>O-34Tf]qΘ1" NNEk}?js RSVg[9w۞ϔָOO RW׼{=*^TT j]%OZDn{2411R0}XfhI*gHp$T*.z()I{zڼz]/mJBB^ i_m(DFqiiEh> y }vk*.,L]c)NS( >@bo44c$qhyyIGw;vYTTrf}ϺWܹgmmef,^IIJYYǏ21dfl0D`1* Sx:=B͟?Z'2YQKgSTTk|T`@[nZ aiik\GJJӧ[N۷d77IL(otqڴg.8pd uɒKHU}ypxhr+}MIIZeڴiiTUe90rӱ6ׯ_ B\|psgB9s愇Zִ>yfPT={5cw?@!X~}͟!))2i8>&v_L+B7"X\\ìEa IDATFZ 3 ~ tc}XuTlTt ^ 54P`0q)S +ܼr#G+GˠޡG,**$h sN~qp8RRRU C ];u`q¤S_d…#v4亚nBz q$$D"#y-?uu ycb# `LttFs3GT*j;C))LZ06V;uիͳg[I' MM-3gpqiiE_߉bbBzsHO#(,L6ƍ^ ^\\L1=q8#lTA  IbJkhhqr:}n7?rIL>BHDD"Lb'iEO= j nf/^|b b|uѢEIHHZNwDpzzz'MqHQQeZZ N<=Cu۠FݻgylQQEDH45h #WhmC//ާ(kɊ7n)?ŸS.rӧZ;C@޿ofOƚxI.߾}㵊^7FJ)44hV B w55 K籍%eaaSQAPc͛/2gۋ0dp8333i (f϶<{6. `*yBQQRJJI_33Kl1Sɓ7o~k9yfQwޘ1c=z;u\EJJJCyeTZSH$3tA( pIUU?InjPUxn"''EZugZn:8211Yjj몪걑{RUUF$,,LOOA 뫨KP> xF\\\@@{MM ZZܻwoРA:::W^EJ2^QQ @II A&$$DGG*++ݻx񢡡޽{^-%%u֮YYY9rA* HkkY`OSSS{%/_FtSSӊChSE&t:zŋϟ?w sa/FK[TT4==V};GG;|g3x]\ 2wlmb#? ˕޼yܿY~iaaqF;iҤϟo߾8333++kذa]ժ>{lYYŋDb}}Vtҵkא !z}eeeBBB/[HHϟ\]]ꂂuuuΝTVV2sɓ'#%%%eaa HZZHCC ͳ)((8p+t___333C@U}QYYݻw֊UVVΪX sa>R^~OE_!F12?x-#'޵2`#QWW711پ}{MCCò2:66 }fff"b``~ÇεI$ҡCjjjt߿i4ZWg͚Y;Eߖz6@C 5Z4 ~͛7H:88u B+>22L&W^>}چM kPUcVXkkgqppطo__h!}FOQLĄyk!)ֺI ˗\fQQ pvvv_|A;FFF3f誖l\\\rr1cx7o Q&Njo-- jj_(an%%%Ni)//fINNFogUUբ"NFFƞ={Do޼Y]]dɒ)STWW3cohMMM6lHOO?}4c, ;88DEEYXX?>666>>5JJJ킂55JPϞ={0r߿z*66+Cf+œܹsƍ#G ?E9rs޾-ⵐ(-AL1)`UYYqTaN_xWxxӧO3gܴiSqqqff}```Z[lAV^;ѹ0a۷( DcX=**jڴiնP(!!m۶~0Æ #H666ZZZZZZ˗[2rlܸqŊ @ f͚1tPE AcŠQFܹݝßEv`Bs}HlscDEE eeelhh355:t޽{[[[[ N[0 dٖ&L8kIEe-sR۶ ҆"^ɓ'MMMQ;w[buuu-[|yCCC}f___UUUiiiWW6ε244bXBy(>:rH~444N>ꪨۥꚡZ"{nA:vwwSQQYn]ggUMMM7on?hv,̅XBTT{S믿v0;swKŜq ZUUU H]]ѣ>|ӧ۷o0`ܸql<7@bbbu{ۗ ʵkھp Ljjdape86o{l.X1\2K`ٻ`8ڠ̘a!$Dq_£^6LV C`( aK.-[Zp=55@xx~CCN?uꔑu\\TTTۇެ(++={+q8ܥKw5iiiJݰa TѣGx<@dee犲qF@) BhORRR~xnOW, &%''d42>n߾>p]t/iAOTU(qw?¤E(@abXccW\an WcqiӦ77Z'11gsc2j? A"""d2e}xAJbÛ lCOʖ:W&ZTTVTӆ,-): 011ap>ŋϟߺu+***++sdddoyWA8cCCo߾8ޮPUUg:t&Q̟?_*+2ݻV!*K9.VMMmrrr0\Źz{{ ɒ%K>>>JJJ^^^vvv?߿ܹs.]+**u3`͚57ovsscqEPPЯ_L:tf`ub;}QQWפܮ ̛wnʫXJomcٲ111YU<齲|駥}2F(bAW)w0Q KjiiwE/ f^KQtp0UV|9'WW7(5U%{IUUϷoߎn6kp1D"~Ѣaauu^W$++b:17Xsnnn2227okW1 KZgժUEYlo5O6~5II0(34ߴiӦO.''dɒŋ{xxY))0砨(%tB L-hzi̙$8uuM buu5&&)p ݻwsYy . Vt޶?=euuҢ_4E Q42R7ԩgH#RR bff\! (Vy0%tLz@ H_B f_] Ѧիm,>potv3^6%%%7o P(4!!x,)))Ѐ }A5TN~~;jhh wlo޼f8Đ'--Xv-, hie5%@ \G O8&::}55QbbB|WQt/#G[TW:WUu²e~X;,؉qϑ#Gxm@Ӧ=أG]Qc# *( ¨Mꃃ_]@ ,]:jҌ@ n F@{y\ߟ"9]bnnGQZZ{L\XXвec-B=ue֬'O>j/-NTZ~O## T1bOLL֦MSS||E@ eӧ_FEEf˖)Å @)L&Qю?|("*2aNnnwQ{_߳_޲thh!xNoJ+,&+0\>LOOF#9=<)=rdNB&77k"Q࿇o^Fܞ,65Q;~P:`P)) Mp˗g?}dq^LaN_x%xoo۷ӸDaQ lX$%'kk\Y)fXf@  F0c`MMÇsq UXI~^6A$66gӧliiqcUT1uA HH$7ltJ98J#$/``t:cod‹9R׺ QLj6`82L"JJRKСRi7ooѢ11\Yjnk]} o` CϟɊpW=T*G|^3myp@c66uRB/JBil%>~40mmy^@ vSF_ӧLH5JSmv^>5S .-ׯ9ui}}xeei^@ kFqqjyB?G&Jii-G 4\@\\yy**JZf7N8GY&iJm%HI{j~g$CQAKVE-+m늨 "zVW=PZ9{B-k Mߡ>tW"A+@$<6C1p31!_f޹>՝Fb@<|0,,`TrX]b1<y\޽11sUߐF8 22UfSI:YS#6}P'NV//w\޽/Vw o_}ᙎE ? mUVw~=y97G-tt(ҽ(ٳ瞞au'3;FL!d|AVwdA!v%] !iO6'ܴWtF>nDZSQ^2׷99ٲoA^^QT^.ZtZaǰ̙r嬴-}d}};̼V[+^dZFӧQJ0ۧ;GazPfQ.vk׹Yvu#.D D"!X T"~x*&͹s}FVH$rVwe*A!>=4/5!$I0P}}2I EPZZҥGɺuo PfiiZzF 0qC #"fYlW)3)tIIff/(wd hIDATww)Wqb]]?̛wՊ}V{7o^F#Uր0gϖ}ʕS]䙙Wuk(Ý;=zg  ! H$-,RSstw? 'N,(/YZ#SZZgOL !8k|S AX񕥥َaIIgEg xwmv(,|G9!ؼ0D$WTCrQVֵ˗;/ ,t9A[q4`L"DZݻmtf00@=xPK$.DXXTګ.""j8*ϙ3i#{5Ǐ߸z" 5;;6"be;GGې{j ո{CDDťKǟ$I*I55bjbDGf2Z !rǎGUmm]Zv՝TtlM7MV߶ƴb]]kTԱ58?xP^A8[`h5ھjU>՝GD Wahٲo@/L+(~Y~II ~z3}}5]$ڹ3|ں6?zaA^Z~tÆo\FR"4_e/^<ÁW`*L+(~՟CB&"+ܩY` {p/cuu2BPr7~d[T37w3w8֢U["I2:z&7T.'Að3((Cؑ#׮{c2@-,,d$+'6m_OO2‚U^~‚VƓi])"L|߾?ٸʽ2Du-2xcj[O#"BH&#JK׾G?8̘˖MWb2brA=叹\+!l6THBTL|۶%ffNex}), 7^RH >Ɲ`ZL4("\]={Z_^RcŰ z3&f$/"̓#"BH&SX  mmؘ֨ 0 -ϝa5_bVa,~&yB'K$ݑǪZN33R & bL&Hr 8'wxe25$ЦM tN"鎊:VS"b1l&A4 L!+ }0^x6FD[[G^?v;;q-յI=bqjͭcb1PT‚eoonfY9;z{s%]X[[z{{;;;Ǩp//+{{KX$ɘ++_]]=~:1'*'Z ?cddڏjjj\.p>Mg͚wgϞ!:::mۖ:}k9۷>}ziTDDi1i:a+W~D=|~)˥SRRw=fVZPP_jڹ!+῞B 0n/'WWWD:{ɓB2,99ё%''d2=<}:''bij(`j*~\,ʕ+vvvR@ 2e KLLS84g]P('Olmm=o޼w0yyy>>>[n}Tz`H7oC]~}SSݻw#GDGGחTUU!-[vƍ^{ѣG!!!vҔ,;;oa2]]]j:u̙3$IRuQ!ٕRRRB'Q/Ox}vSMe!"""RŋBT aaa?.))MKKSL(/////׾XNj{uGx .../B<6/^얔HD"qss i766RW^9s&mRVVF)SO+++ۃsX DBDggBД=::iPTfrJC?1=4rv*EStb$ U$I;wWm"ի &O?77WKPwˤITú#yplRQQuVeb]]35߮BBϏJ:u*ה͛%%%nnn ._pWK&٩.K^\yyy7nܸp@ CS۶*SY&uO>Ւh'O̜9Sc``8x= 08#~ɱcǖ.]Lr%III N=sqqR~jC7mڴbŊvً !腵4QА`Ը8 ; #Iĉ˗/^;eeT@]!?~L}kJ4DCÇ?j>[<==0 AxHć~pk׮]tJڳgP(,++ ?~8=׺uG5ھ}P(Ԕ ð/J~5aʕ+r8BoJ=;Iqqq6mB%%%9::&$$áQ;⦦&Ht->_[[sԮ̓'OvtthUر{ђh6uJ''' k)-))I-6l@aK3Ŭ3f$YPPL=J7n߲eKww7Moo]\\\lmm׬Y#HHIdϷ"="Rɞcff+Sݻ Tn]Yk)Sy}9x*ɓ\.7!!GmU~H)!}}}---ΝK]kz{yyx>r,eD`騑1``\0)N"egg'L E`E`E`E`E`b 7bb'^ 0h3uX[[s\Kk#z?4IENDB`XQilla-2.3.4/docs/simple-api/InteractiveDebugger_8hpp_source.html0000644001725400016040000016071213273140073021765 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
InteractiveDebugger.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _INTERACTIVEDEBUGGER_HPP
21 #define _INTERACTIVEDEBUGGER_HPP
22 
23 #include <string>
24 #include <vector>
25 #include <map>
26 
29 
31 
32 class XQQuery;
33 class DynamicContext;
34 class DebugCommand;
36 
37 class XQILLA_API BaseInteractiveDebugger
38 {
39 public:
40  struct XQILLA_API Run {};
41  struct XQILLA_API Continue {};
42  struct XQILLA_API Quit {};
43 
44  static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column,
45  unsigned int context = 0);
46  static void outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column,
47  unsigned int context = 0);
48  static std::string regexFind(const char *regex, const std::string &str, int groupNo = 1);
49 
50  virtual ~BaseInteractiveDebugger();
51 
52  unsigned int setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary);
53  bool disableBreakPoint(unsigned int number);
54  bool enableBreakPoint(unsigned int number);
55  void listBreakPoints() const;
56 
57  void setStep();
58  void setNext();
59  bool queryStarted() const { return queryStarted_; }
60 
61  virtual void run() = 0;
62 
63  virtual bool changeFrame(unsigned int number) = 0;
64  virtual unsigned int getStackSize() const = 0;
65  virtual void stackTrace() const = 0;
66  virtual bool outputCurrentFrame(unsigned int context = 0) const = 0;
67  virtual void outputCurrentFrameQueryPlan() const = 0;
68  virtual bool queryCurrentFrame(const char *queryString) const = 0;
69  virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const = 0;
70 
71  virtual void setDoLazyEvaluation(bool lazy) = 0;
72  virtual void setDoFocusOptimizationsn(bool opt) = 0;
73  virtual void setDoProjection(bool opt) = 0;
74 
75 protected:
77 
78  DebugCommand *findCommand(std::string &command) const;
79  void checkBreak(bool entering);
80  void breakForError(const char *message);
81  void interrupted();
82  void readCommand();
83 
84  std::vector<DebugCommand*> commands_;
86 
88 
89  struct BreakPoint
90  {
91  BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t)
92  : file(f), line(l), column(c), temporary(t), disabled(false) {}
93 
94  std::string file;
95  unsigned int line, column;
96  bool temporary;
97  bool disabled;
98  };
99 
100  std::vector<BreakPoint> breaks_;
101  bool step_;
102  unsigned int next_;
103 };
104 
105 class XQILLA_API DebugCommand
106 {
107 public:
108  virtual ~DebugCommand() {};
109 
110  virtual const char *getCommandName() const { return name_; }
111  virtual const char *getCommandNameCompat() const { return compatName_; }
112  virtual const char *getBriefHelp() const { return briefHelp_; }
113  virtual const char *getMoreHelp() const { return moreHelp_; }
114 
115  static bool matches(const std::string &command,
116  const std::string &toMatch);
117  virtual bool matches(const std::string &command) const;
118 
119  virtual void execute(InputParser::Args &args, BaseInteractiveDebugger &env) = 0;
120 
121 protected:
122  DebugCommand(const char *name, const char *compatName,
123  const char *briefHelp, const char *moreHelp)
124  : name_(name), compatName_(compatName), briefHelp_(briefHelp), moreHelp_(moreHelp) {}
125 
126  const char *name_;
127  const char *compatName_;
128  const char *briefHelp_;
129  const char *moreHelp_;
130 };
131 
132 class XQILLA_API InteractiveDebugger : private BaseInteractiveDebugger,
133  private DebugListener
134 {
135 public:
136  static void debugQuery(const XQQuery *query, DynamicContext *context);
137  static void outputLocation(const LocationInfo *info, unsigned int context = 0);
138 
139 private:
140  InteractiveDebugger(const XQQuery *query, DynamicContext *context);
141 
142  virtual void enter(const StackFrame *stack, const DynamicContext *context);
143  virtual void exit(const StackFrame *stack, const DynamicContext *context);
144  virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context);
145  virtual bool doLazyEvaluation() const { return lazy_; }
146  virtual bool doFocusOptimizations() const { return focusOptimzations_; }
147 
148  virtual void run();
149 
150  virtual bool changeFrame(unsigned int number);
151  virtual unsigned int getStackSize() const;
152  virtual void stackTrace() const;
153  virtual bool outputCurrentFrame(unsigned int context) const;
154  virtual void outputCurrentFrameQueryPlan() const;
155  virtual bool queryCurrentFrame(const char *queryString) const;
156  virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const;
157 
158  virtual void setDoLazyEvaluation(bool lazy) { lazy_ = lazy; }
159  virtual void setDoFocusOptimizationsn(bool opt) { focusOptimzations_ = opt; }
160  virtual void setDoProjection(bool opt);
161 
162  unsigned int getCurrentFrameNumber() const;
163  void output(const StackFrame *frame) const;
164  void report(const StackFrame *frame) const;
165 
166  const StackFrame *stack_;
167  const StackFrame *currentFrame_;
168 
169  const XQQuery *query_;
170  DynamicContext *context_;
171  bool lazy_;
172  bool focusOptimzations_;
173 };
174 
175 #endif
virtual void run()=0
virtual const char * getCommandName() const
Definition: InteractiveDebugger.hpp:110
const char * moreHelp_
Definition: InteractiveDebugger.hpp:129
Definition: InteractiveDebugger.hpp:42
virtual bool queryCurrentFrame(const char *queryString) const =0
static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)
Definition: XQException.hpp:33
A class that represents an item in a query call stack.
Definition: StackFrame.hpp:45
virtual void enter(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:40
Definition: InteractiveDebugger.hpp:89
Definition: InteractiveDebugger.hpp:132
virtual bool changeFrame(unsigned int number)=0
DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)
Definition: InteractiveDebugger.hpp:122
virtual void stackTrace() const =0
std::string file
Definition: InteractiveDebugger.hpp:94
virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:42
A class used to listen for debugging information.
Definition: DebugListener.hpp:34
virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const =0
bool step_
Definition: InteractiveDebugger.hpp:101
virtual ~DebugCommand()
Definition: InteractiveDebugger.hpp:108
unsigned int line
Definition: InteractiveDebugger.hpp:95
Definition: InteractiveDebugger.hpp:105
virtual void setDoFocusOptimizationsn(bool opt)=0
DebugCommand * prevcmd_
Definition: InteractiveDebugger.hpp:85
Encapsulates a query expression.
Definition: XQQuery.hpp:75
virtual void outputCurrentFrameQueryPlan() const =0
bool queryStarted_
Definition: InteractiveDebugger.hpp:87
virtual const char * getBriefHelp() const
Definition: InteractiveDebugger.hpp:112
std::vector< std::string > Args
Definition: InputParser.hpp:32
virtual const char * getCommandNameCompat() const
Definition: InteractiveDebugger.hpp:111
virtual void exit(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:41
BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t)
Definition: InteractiveDebugger.hpp:91
virtual unsigned int getStackSize() const =0
std::vector< DebugCommand * > commands_
Definition: InteractiveDebugger.hpp:84
Definition: InteractiveDebugger.hpp:41
bool temporary
Definition: InteractiveDebugger.hpp:96
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
Definition: InteractiveDebugger.hpp:37
const char * compatName_
Definition: InteractiveDebugger.hpp:127
virtual bool doFocusOptimizations() const
Definition: DebugListener.hpp:45
bool disabled
Definition: InteractiveDebugger.hpp:97
std::vector< BreakPoint > breaks_
Definition: InteractiveDebugger.hpp:100
A class that gives records a location in the query.
Definition: LocationInfo.hpp:29
bool queryStarted() const
Definition: InteractiveDebugger.hpp:59
virtual bool outputCurrentFrame(unsigned int context=0) const =0
virtual bool doLazyEvaluation() const
Definition: DebugListener.hpp:44
Definition: InteractiveDebugger.hpp:40
virtual void setDoProjection(bool opt)=0
virtual void setDoLazyEvaluation(bool lazy)=0
const char * name_
Definition: InteractiveDebugger.hpp:126
const char * briefHelp_
Definition: InteractiveDebugger.hpp:128
unsigned int next_
Definition: InteractiveDebugger.hpp:102
virtual const char * getMoreHelp() const
Definition: InteractiveDebugger.hpp:113
XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020431 00000000000000ca4ae154e407d8cd688df9cd085a824fXQilla-2.3.4/docs/simple-api/functions_0x6d.html0000644001725400016040000001754413273140074016402 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- m -

XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp_source.html0000644001725400016040000003231213273140073022033 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
FastXDMConfiguration.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef FASTXDMCONFIGURATION_H
21 #define FASTXDMCONFIGURATION_H
22 
23 #include <xqilla/framework/XQillaExport.hpp>
25 
26 class XQILLA_API FastXDMConfiguration : public XQillaConfiguration
27 {
28 public:
29  virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
30 
31  virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context);
32 
34  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
35 
36  virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
37 
38  virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
39 
40  virtual ASTToXML *createASTToXML();
41 };
42 
43 #endif
Expression Context is a storage for contexts.
Definition: DocumentCache.hpp:52
virtual DocumentCache * createDocumentCache(xercesc::MemoryManager *memMgr)=0
virtual SequenceBuilder * createSequenceBuilder(const DynamicContext *context)=0
This is an abstract class used to resolve URIs in different ways.
Definition: URIResolver.hpp:37
virtual ASTToXML * createASTToXML()=0
Definition: SequenceBuilder.hpp:31
virtual ItemFactory * createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)=0
Definition: FastXDMConfiguration.hpp:26
Definition: UpdateFactory.hpp:32
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
virtual UpdateFactory * createUpdateFactory(xercesc::MemoryManager *memMgr)=0
Definition: XQillaConfiguration.hpp:38
Definition: ItemFactory.hpp:50
virtual URIResolver * createDefaultURIResolver(xercesc::MemoryManager *memMgr)=0
XQilla-2.3.4/docs/simple-api/Node_8hpp__incl.map0000644001725400016040000000154713273140075016327 00000000000000 XQilla-2.3.4/docs/simple-api/classStaticType__inherit__graph.md50000644001725400016040000000004013273140074021551 00000000000000aa8d395bcffbdd2c4e30ad4c73799488XQilla-2.3.4/docs/simple-api/inherit_graph_11.map0000644001725400016040000000030313273140077016452 00000000000000 XQilla-2.3.4/docs/simple-api/dir_f2fa734b64154a4ddf51da3a7a041eb7.html0000644001725400016040000001125313273140077021060 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
schema Directory Reference
Directory dependency graph for schema:
schema

Files

file  DocumentCache.hpp [code]
 
file  SchemaValidatorFilter.hpp [code]
 
XQilla-2.3.4/docs/simple-api/inherit_graph_2.map0000644001725400016040000000032013273140077016371 00000000000000 XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__incl.png0000644001725400016040000001110413273140075020406 00000000000000PNG  IHDRpn bKGDIDATxkTWO. $"`ZER@[Khi.AmuR"ॠ/K,$Њ <U. $&y?i`#a}3̞$!  @u(z Wz EEEEEEzLCtA֬YptD=wչZt?RRRtDgݺ֯\ P< +͎?ݾ};Ф6=Mwe˖mڴÇfQN4ٳg, ]}խ[{FF````?@ G+`ܹ[qqq3簾ffffffL&366̼CPW///UUUV>rիW=zthhH*>}:22ӦM#JYYYAAAAAAYYYÊH$2lhhIMMMTTҥK׮][VV*Hϯ*33]Ł7nP9vCCChhhSS\l၁X׮] :rX,VjxҫP(lmm b[՝:uٳgΜ>qDdddVV&^ۆǏAP( _xq1___===UMSSSWZ0T$ۻ =͛&yǎ3gΔ͛999III<5۷͛'OTcID"qhIpu'''ccctիW7oleeeccnݺzxxGGGk[l666111}!!!eeejbAB!BpႾ N>w}@EEDROttI 500XhիWqÆ L&~Sq^^^+R5`0zzzvsMϞ= V~AAD>|vvvk׮uwwW$J__…UUUӧOQԩS9@Fdb0Ji``>>>h4"5m4@gg^kk-Ǐ% DUtabbraT|>wEAPY(6DR455uxx"99Di={{{9rbabR)}dގO>E8S=* :dooojjd2ﻺ=zt1+V=zڵk\.6//@ReeeΝStᑓ󶶶} B&!11Z b24Hn͛5ҥK@eddtttjͯ6]ZZ$g߲eKFFFllޒ%KdX,>z/lmmwܹqF̂?_'***##>#/Qa<@i _dggwww[[[P(A^dgEElعeoqqqz{{cN匚  5}PjY=:144 Ĉ ^'8۶mĈ ^!x'^!x'ݲ/B!wu]uV]!L=]Ge ł ֬W?K+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O@B+O.4^x [LVV&tڄb\…[}wvĖ ԫVvXUVBCq<W`oomkK'l%7ԫ yD")gͲx&$PZ#8=D*g$IWI<WdҜD√@"b@k@jy@ M}]34z&+W>%  !!&P‚Β) 9 heV~] vT3z2$ ":ԫ12==eNg}KT}]2Kcc#|cBH,, p80LЫH$BạhTT8:ӧOE"E'Ox utwwY` P< P<Ce%5=++KkG:777777ZF]?`N:egg'RiFFт *++kŋ]]] Qcoo;,--_WÊSoJ<{{ɓ'8qbƌ&&&;wDwʼnSL鉉bxp\"H$4ҥK/_~'L&3!!appP.OHHpqqA,BKKK;~x~~ڪ`׮]244LJJ*,,|qB/--5kNCɫw̙Qbh4ɹPwtȊW>㏟={6eʔ7o"Mϝ;y%& PGP>@ww7 yyy'N@F~xծ. aaa</77f EdO<}ێ; Hii &M{{{޾}155U6FT*ĊFc_YP `F`-]ƍ,+55U||rwYtPW 赯d:;;c~GzD uA r2޾}[MC@CC CCCrgB;,//wqqRCCC۶mKNN;x𠿿?ږD"au9% >;T*]r%D@D MLxd@̙3,K|pH$hHJ](5*C 4::Ν;6l@-mmm..5S(??sF>/i4&gV^peQ?~lee8>zаzŊՕϟK$[[[9jook߾}R(,,p8W^-...--dill\qCQ 1_r 鴷k*D9ɹPcԜ7ӧO322|||Q u_sB5k233Q+WT5Aŧ&6ܸqH$-Y)SH$R[[ڼ`Fr…ӧOWVV*wŋļxw^tB:u*===,,lŃvkkk U҂[΅(=#5$޽{\ٷoN/))|k׾>pe$!""X`RSlEU[noڴ A"* Hyy9Jupp2]vw[[[SSî]TEbgg' eSJ˗/H$ 9;;[g͚f\rdND74͚:Xhol63gܵkbeqNN˗/U RA #G̙>_\О={f̘AR,XpIzEСCfffnfffXXFC GE5UNr t![x֭h˗/d2z'$(JRRFFF[YYmݺU(J(%''˦/[bt;::N4/ ոa+,iӦYXXl޼Y(6_Xh"*fzsʯsZH$~2GG7-[B!zall3.wkwww߽{v hA P< P<}~ <X2b~566cEA XB+O@B+O?k*2XIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_8.png0000644001725400016040000000342113273140077016413 00000000000000PNG  IHDR% hSF"R[B[k"CdCs|y>ܻAkY8c7O/|g&RSt:Nb82===>3O5ߟR c7f]|ðk׮-^a:&vddðyR"`(**Jd2,^< )Ayyu9 BhXrj?6Ӧ466 =zff43O_^ @ Ry?H ӉaX?ÇD V fv \pTq||0>>3 ^gX***vڥR}C?kV Xf k׮5 ԡҢR cQ?~X8qJPx/_;>}&I.^ȑ#slD7@,3h4b1𳲲E"*MI+2? _2,**{.ܹsjuСJCDiii[[].@ gE"@ `6|~$>{L&TUU|>~{{Z&$ɲ20Wjeۋׯ۷e˖3g #ᱱ'NSb%v;3۷$3<ݻwW\\ iӭ[B鱗`VV֍7BP2 ÉDq~ҥRaIII__ FiE]AQT1߿yf8rss a%577pU.( "A8CD *˗555+Vؾ}ӧO!HÇx$ .d2!h1I/FU:N$qD"}>}VO”6OjyfNZ"1fnAAzxd2=`ٲe]]]&&ɞ`0xر={Aamm-I(ðݻw~RCիrR)@,SVB!ݞ2˗ս23%Leff?^o޼ MLLfׯ_ h/JKZx"d<ݹs=@(㽽8sM6=y hfdh4$I$Y^^~EvvJ%TSSNgYYɓ' ѳ*2S͌L ^$IB !rJ^^BlX,m۶\ >_XX҂F2;dRbZ EvvJl2i4@aÆV̌`J"Ph~ݻwob055U__riD"! ?~iSfF0 ~(Jv D{n]B^_jO"ttt,c7&)_r=[^3˿B>Ȑa֭"Ʈ)p?vn8 lMoIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_46.png0000644001725400016040000000410613273140077016476 00000000000000PNG  IHDR%1bKGDIDATx[L[wm)E+ !BzM AEEIQPQ4R <QM@H@ bh })v/ED":{`ifVϚ]:!`ͲNga,, +`aaXcxxb,V6% -//_v-mc)ʆ;)ҧAT2-?ccg, +`aaX XXVRx<ӧOiK[['Ipbbbl~!MKKp8h08“d=i/99C_/@am޼$??ffLVZZa4axx͛7| e_~=;f ʕ+^jc$Z9vR}K2hll,Qrrr [n5%%%d\h4h0qhtF/C( .4%/hlldZܱ׬YCQ~ݺuz`2 E"QHHHaadB3""4""bYYY8tttH$ "##kkkf١;3|>_.WWWr#=z 477K҅ց<~8..nժUw$%%b13+1??ܹs]T*}|||P(\P333gΜ /((LOOt>]p]*ceee>}"o߾}ȑZe˖"tz,>>^V$XPPK>x`||ѣG<Oݽ{סLUUQTTyͽXRpױ}I*RUUUfz4L&a]]]||j266&ɲ<ĉ?V eeet􆆆-,, zв.vpDRVVFccc˗6mBj[ZZՁzlj}||ݻGQjbqza.{Ih4ba]]ݾ} CO΄tuuAF#u+,,;;;!u(.*VF}liiz@T*!ǏGEp}n ׯ_r?A̢B:A:^^T*v . ===A<{ FZ> G4‚dI>?::jE_|9))i V `F̼rN>}r8sa߿ P{應@cJE?~P( rNOO;swX```ee%\$MMM%h4fY$) @n", سg($I._=<X޽C3[[[;::"##N#IENDB`XQilla-2.3.4/docs/simple-api/InputSource_8hpp__dep__incl.png0000644001725400016040000002671313273140075020722 00000000000000PNG  IHDRM6BbKGD IDATxw\73ۤIT@APXK4%PbOĘG}bK^{11WHDXXb4P@@d)[crn3gˏ93i3u 9I` e(((XvL&3uE8GGG@\v~3f+Y.\:u*rr L]κpႩ\ 9 9@Ǝ[\\bw>a„755}/2rwy}_lڴ)11qժU/_޽{ `rX̾tt˗/z9 eر˜9s&O?Bǎ{YfM:D"a2a_/^2m4fͱcȼݼy;k׮&2/n߾)SDGG2KݻwO:uԩwJuƍ3gڏHiA@+<0K.}7{쩩a;v,::GZZ~pΝ#G0oӃ-o^^^{/ Zꓔf͚;w۶m+,,c&''ٳgzzUKHKKۻwUbbbܩt9LB2e݄ !l*<<<{ウgRΐ!Co޿ӧOϘ1ܹsT믿.YK.>>>^… xܹx{{^o߾ڟyٲe>>>׮]S-!,,fȑ6=V&~B|xxx0/W4ZHCCÕ+Wƌ?k֬ݻwUUUrk׮̖ݺu^!Cݻwμ.-->}:je !E5{DZ8p= H)1Ll"d2BHEE4Myyyl/2+))aV=yI dsii)$77upp;?Ό.0&<0;v?x &&fܸqvvv3gμx!Q__O?~Ԓwڵ_'c~%%%~o@cbbo7jԨ{Zرc'Nյ舴,0&+VhhhxgΜ),Xsθ?ŋwwO>ɓUV8p`޽NNNcǎ;w.Sڲevرh"Pki*P̙3,_`;}F,ꫯՎj:"fVi@ڻa$%%?-GDDZwcǎMLL k]ø-7!ھۦ>="&X(<0GGǏ>Ե'GĽ My܄"%%e2+dr9fHy@!X@sssܳg]wwݥGgkk+؎7<{ѣgU<|XW^VV-ʷo+!\ V BI2正/'ȑB !IYEE..eEQ:eʖUW66/2[ls'Ŵ\.%DJL.oiM7Muu7.10ͫ EQcG6TܟұW'|BB^h*윚 y<%w-__o|ҴV(y{/MuT?I:uп5C76J,?y`9#>le7֯?Z_$T UWS5`y)P9]HdyyEo?HdV{w  6S_+~J dim0E5<%bqb/&LcGIcoO^h$؈>}/4M󟧶m;[_^zkK}W_`Ǐ/蔑QȜ۷=]<i MRçl(llvhէO68J [\cj{v{Sx1;1کSR^(,^ڵO6}:q…wEQ{eu⮮]{H.'ߥ<joc# Ü[EV%ef%TNJ?͂:%a, 9#d2yn]ffQCֶK/ue5zttnSgmagc {cII +<k[aM>GQ֭j`3gd2B@?_L<キIƆZZbbiic鍍If z啞-E.L jbv-P̜C;pr+fn[6n/7>|ҥWW0c0?+}wו+R\ [uoꬦ_Oo I{zf66llD3g^yƌaaaZ4a_}֢Z=zڵ!{1uEZI&_w ggېA ,j0+yd?,z|VGX%%Ϗ{_SL 9@W8彟pr9tZ||jAAsyoڴu.0W3k,n31/YY yg#fz 0.V@S%/޿_ҫ{HȐvj9(n ϶rÇoEDԕ2 {sg9YbqÏ?ފt??ЗgޞK!pu!鎹wM{#Gas5 we-0>wy-USӐr/ge \`Qnn)a|pZwhD"0\`@mY#@kc~zOa;ٹ^qoV;rI-0>k4y75Ntns-V!Wc̙/f{{w1cXXذv{CmKaf0k>ç?p-!!W|#"|3W[ O~!SX0>k󌩩IzO2g\k+ m^wDB3򄄴Ĵʺ#pyO0W3rgabC3!DvT&syյcp˳fyy&3=\,<FY g *S={V\ޛ8P7u s#*< 9 9|d+Wr⮞kPI#Gn^.)y{F'yywTps|%\\7ٲ.^kIR#Tў=I圑QxNaNNL&wv 0kπO](FsoАS_%T:j_uԨQm,ӳH/U,"QBHSS+bm,?m۶iـdz܄BWM(tljkjj}:˗/ߺu+V4KJJRiRRj5;{:e>ۺg#7u(qF%%z(EEE˗/ j{Q`^X0ʹհ,ÇG:n_Y( _CKmݺUpVhh'.Z4K/塍^~nK>n`):7fB&<nB&[n SRRD"Qff&󶮮nժU :thttEQ݅Xrssٛ )u 4N+W۰aCCC,"~7x})44\4MGDDٱEϱhR{v@7ǢDzĈoYM ۮz弁[nҥϟ?'TWW/^xÆ ' 2$--mk֬?~L&kv-ܕ+WJqƬC^^ vɒ%~~epOAA;wطUUU{ۋe:ϓ'OΞ=[TTdM[>y$>>޽{mߩ"CԤJ-oZ& 3Οi'uٲ_~ .izѢEnjjbV\rԨQRݸGwnvBrrr Wxbbbѱ~,999~A릴#GGToE"]!L8qݺu7|AJ=tW9T˗v@7h}CBBBBBLX(-++#iNy"(66v߾} ̪O?ڮZ*>>^ZaA$**5**J"0kϝ;5hР 0[ܺuKgΜurrfOIIݻҥK.cΝrʆTa//Ν;Ϟ=J駟hccӥK͛7RZՓEQ:u/6W !r{{;w>{y;zGi:p*v .mfp$%% ;99988])(ڷoΝ7o|ooo׫wuu%?N"s9Te2ٖ-[zձc#FzB BH8m:ffB."+myN:i__ӧOqFFƠA֬Yì}7ד'O:;;K$+˕'[bÄ gggnܸQf3g>ׯƍlҷoߌaÆ\iX,ϟ_TTGy۷o(H$O +]pppUU޽{ !Ϟ=GӧOw֭Cƍ۲eKAAR a6nܨ2HͿR!nݢi666trbqLL !$44T,ٳi Z3fӦM_ϦScyTnzȑ'O8qk׮DzYnvt6;]zsxYՏxUϗs\.w|~DDIr+Wh_)ӧy}@fmFFMRܹs4MO4iͪU%\pi.Uv0ykjjYYY#Gȑ#̒{1߿_[[+~7Ŧ` WrqTO Lmsf4MKM6׏k:p-2V2HͿrrr>õk47n8Zi:NkSJ=ޞYފCsh Mzze<aSdggw=-U8N=۩7x;pofeeu1v/Ν;G}b+ggg;%{Gŋ?rHTXXZUBHvv6mzf;w.l9l322233U?2ryu9OB'V(͙%IW\X[[)ׯ_߭[7M@hjGߋt) |}}r)SC+>]NkŅuuu===ryX@Zc̜I[짘irhb Mr\C]]݊+fsN=۩7yOǼ}anݺvZPP,}wBH}}}hhhTTTzzΝ;۲SM'E˩m^Փ΢izƌ>>3fhhhxutt$|b믿fw7mڴk>z(##cĉ|R}x7m4k,vaLLLuuYlYnn׭[eY)///U  –.]'̜9s֬YqVVVVV07666655D 6BjjjZWfO&JͫBjkk !vvvg ;qD^^ޕ+WV\VP2ýO>=22rСV\g>~/ܹsgDG9&IL/Z(***%%ԩS~n`Νdɒ~)??ܹsgСڍkjjPNqu C+:t`4}5̼]bE~z :~玎={LIIa!͛pº:1EY[[bv :Ĕӽ{w%K׫]l۪Yf9;;we +WڵCxxxUU[vsΝᮮU=)tڜVw%ȑ#옏Kҍ7X[[cyQ=p*\SLۋt)= .Bh =3h?#Ԥ-/Jlkkk\ޠ[8n{70D"/{mee3P9"ٵ?p[w ~^466^zukunݺ3f辽jRԴYFyuk̰0tM ^%PF#mZV'O۷/!!l|| 2dcƌS,}^=>:^S$%%OqEQm,-ߞc:^<@&<nB̫bq4E(&l-e۶mɦ :?H}իիAAAK7nlceeefՃ**;w7uE̙3)ma-F^$!E* &L0r0b^# ۷/DyU̓X\߯z33?st1uűߟw\N?g.fǂs^r "P4u]̎漲2qZZLF򴴇զyԜrr>:~i`n,5:t]&3e2С릭ȜWPPqAaMZ)b9t>/ [Ȝw /I$kUWNΏ={$U0CK ˅BѣƯyG#7%*DvuR~YXλyZ(DB!&=u0 SWewwY _fxT.&9hڂ:###30;6n :B&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&<nB&⛋/*PTTD9t萩+F2u-(7BP*6@ H$p_mRibb" $ Ɓ 9 9 rss)REz_P9q\ *繸l޼ٜ ඖ[nUUU^z;vw1((̸qҟ~i666]tQގ?`eesׁW߹s͛78pa))){vuu]ticcb$**5**JgΜurrTf;0%Y| !Γ<{9s攖4gWW#GlJ 'Y 9# 4}e7d~XqB𫯾5552L)祧4Ԥ:''2##811W})))a^={600PQpM22jo=<0ߟp»w~̒@v%D'<866]NSSS=<<^}Ջ/xر#!D(*f1/STTK.̾ƍZɮ]BL-;0;v+V`tΝ;w^B}}}hhhTTTzzΝ;l\`o]YYz2!LhcWRSSU?Bej ,/Y$!!_~9~8!dQQQ)))NZfBD"Q}} !555P5~Ç⦦&Phcc"˖-ͽ~u"""WM6mڵ=Ș8q7|CnEZv`J0GvҥiӦMvvvAAA$Zϣiz֭:uܹsgxxҎ{)铒qpKkf˘ݻ,Y^bx޼yNNN .kKJ <0i6QږXjlŎL8~ps}dd4ĎE㶠mh8x=rW!pr7!p_ RԄiD"1u-o~RSUpww7u]0'<nB&<nB^IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_30.md50000644001725400016040000000004013273140074016356 0000000000000017bb4afd0f172ad5c4fe0e7679e97229XQilla-2.3.4/docs/simple-api/dir_0b62eb81f5697eac1f344543267dff7d_dep.map0000644001725400016040000000214413273140076021413 00000000000000 XQilla-2.3.4/docs/simple-api/dir_cf50e6b7905ca68e8eacb67c516ef759_dep.md50000644001725400016040000000004013273140074021464 00000000000000a2bff02f26dd30d1237c14d8a53ba0a7XQilla-2.3.4/docs/simple-api/classTimezone.html0000644001725400016040000004566413273140077016360 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Timezone.hpp>

Inheritance diagram for Timezone:

Public Types

typedef RefCountPointer< const
Timezone
Ptr
 

Public Member Functions

 Timezone (const MAPM &seconds)
 Constructor. More...
 
 Timezone (const ATDurationOrDerived::Ptr &duration, const DynamicContext *context)
 Constructor. More...
 
bool equals (const Timezone::Ptr &other) const
 Returns true if other is equal to this, false otherwise. More...
 
ATDurationOrDerived::Ptr asDayTimeDuration (const DynamicContext *context) const
 
const XMLCh * asString (const DynamicContext *context) const
 Returns a string representation of this Timezone. More...
 
const MAPM & asSeconds () const
 Returns the whole timezone expressed in seconds. More...
 
- Public Member Functions inherited from ReferenceCounted
 ReferenceCounted ()
 
virtual ~ReferenceCounted ()
 
void incrementRefCount () const
 Increment the reference count. More...
 
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero. More...
 
unsigned int getRefCount () const
 

Static Public Member Functions

static MAPM convert (bool positive, int hour, int minute)
 
static void validate (const MAPM &tz)
 

Additional Inherited Members

- Protected Attributes inherited from ReferenceCounted
unsigned int _ref_count
 

Member Typedef Documentation

Constructor & Destructor Documentation

Timezone::Timezone ( const MAPM &  seconds)

Constructor.

Creates a Timezone representing the given number of seconds.

Timezone::Timezone ( const ATDurationOrDerived::Ptr duration,
const DynamicContext context 
)

Constructor.

Creates a Timezone representing the given duration.

Member Function Documentation

ATDurationOrDerived::Ptr Timezone::asDayTimeDuration ( const DynamicContext context) const
const MAPM& Timezone::asSeconds ( ) const
inline

Returns the whole timezone expressed in seconds.

const XMLCh* Timezone::asString ( const DynamicContext context) const

Returns a string representation of this Timezone.

If positive, does print leading '+' sign, and if UTC returns "Z".

static MAPM Timezone::convert ( bool  positive,
int  hour,
int  minute 
)
static
bool Timezone::equals ( const Timezone::Ptr other) const

Returns true if other is equal to this, false otherwise.

static void Timezone::validate ( const MAPM &  tz)
static

The documentation for this class was generated from the following file:
XQilla-2.3.4/docs/simple-api/classATTimeOrDerived__inherit__graph.map0000644001725400016040000000102713273140076022507 00000000000000 XQilla-2.3.4/docs/simple-api/StaticType_8hpp.html0000644001725400016040000002111413273140077016550 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
StaticType.hpp File Reference
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xercesc/framework/XMLBuffer.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for StaticType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  StaticType
 Class that represents the static type of an expression. More...
 
struct  StaticType::TypeMatch
 

Functions

StaticType::StaticTypeFlags operator| (StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)
 
StaticType::StaticTypeFlags operator& (StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)
 

Function Documentation

XQilla-2.3.4/docs/simple-api/Sequence_8hpp__dep__incl.map0000644001725400016040000000025613273140075020175 00000000000000 XQilla-2.3.4/docs/simple-api/classStaticAnalysis_1_1VarEntry-members.html0000644001725400016040000001026513273140074023266 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
StaticAnalysis::VarEntry Member List

This is the complete list of members for StaticAnalysis::VarEntry, including all inherited members.

hashStaticAnalysis::VarEntry
nameStaticAnalysis::VarEntry
prevStaticAnalysis::VarEntry
set(const XMLCh *u, const XMLCh *n)StaticAnalysis::VarEntry
set(const XMLCh *u, const XMLCh *n, size_t h)StaticAnalysis::VarEntry
uriStaticAnalysis::VarEntry
VarEntry()StaticAnalysis::VarEntryinline
XQilla-2.3.4/docs/simple-api/URLInputSource_8hpp__incl.png0000644001725400016040000004444613273140076020322 00000000000000PNG  IHDR<E`vbKGD IDATxw|?tRH'!RB!t (.f (•^ bhPT/@Bmælm~oٖMevyk93>;3p("leeAX E y+((XvL&3u +??[: 6`0ǏϚ5륗^2u LJ ABBCnذQ iVCX E 0QFhj_^tinn;N$ٳ'::_9tX,VZe0S= XaΝ>>> 6|-++[xqrr2۷WTT|EEE۷o5t+tڵk׮~~~/...~+˅B!ϛ7o[AAA...ᱱ?-Pp\Ft믿ꫯ~QFs̙2eʎ;$ Hwa^;SgΜaʘ$uCCç~:iҤ3fٳG,]!Ν;fJKK;tЬY&OiӦzaTw)SL2e޽RTuٳgGEE=zT)5h`fH$jjj80vX>{7oڵkѢE_}U}}=x̙M6}'7|ݻ !OΝӧ'%%UTT0K~UUU{n߾}1-?~|͚5ݻ~MmɓD'O,++ꫯ;w:tHu ۾}VZ~RG&YCoN0a„ ӧOp¬Y}Ɏ/2!o/^e=C IJJ/O?k/_&H+W,[ǧW^׾… 4 ,իWϞ=W^ݷo_?==={hѢ]u fͲ6l!)Q;vA|0Ծ%&&BZZZqizjI$1-uuu tΝ;KJJ>|c:::B.\x:"BHd۷_/u?MA 5x<_xQ,[vy˖MA歹Y1q͛g8;ۛ:"Z>091רlPKK+ZhUOOiիc|>~4u8Yv]4iի͢b!zR|~~3f~b#0ɓأiiԸ0%p̉#"65;OjA@wf1..駟,X0y0%.Py~={c<տڋ/Z#˖%>~\v+o9`矟߳+ ..8X0E ZVVҥGJJ7N>}1,A ˩GF~xjX!=…/XppѢ>}dXWZG1+VlCPX'%%mժ^^N;wv9Ljj[Pi톢XD(]{̙gݰa#21A @P{ܸ|7r|ѣL[ onΏr,"t:(ZA'L]0%tr(Z>,[4ɓ5&S^|0  :-`2V:'-`%%F{`JlP Ѓ{zvٹ3?Sc~Z>091ר7pv7uDJ(l~SOwܕ+Y+W~9(hyH/ǘ1}L%hc[߳Jdd-[fbPc`Peg/]XXz X|?(`yP) jcG 56( ! E Jeeu`yPA^}qΘs`aP7٣Go͞=t40%X -OlƖ/ر}MNg9(2h`nI92dhO.9(Xhw=-Ȕsr_yeW&%&.D*G]߯ߌ;X@q`ӦRIhw̃X,9sϥKbtĈGoa//o]yzҤA^3g Ӊ\N̙;2|ذ` 6mѣ BȞ=W1!~}֝\`3={z:F&*jK]:ʶ/8/ !{^{c5uj_g .{ׯOaǎAM Jq+͛1ʊpښ]L#3P@jj^z鳺F3gկMlLCVV%yyU2B{7,p8 @nVP{TT,T] 6bDbBHd7n:tӄB8t+Ra+JJ :○Xrj䌌D&;|ÆdR%K~\LLcc˒%hZ`ccQc E h"}CZ|˩?ȿr%ˈA}D E*=}&43ׯg9Y唣ر~{\bN8|>O>1( 6U ]5g>ZQEQ$4g#sM$tPmm??~=…UU<W.q8Uݻw5u١h5*+G&+ʜ""DD92xX+W~=O"Y[bg.p% L E t kK *nGIIY{ ѣOpܸqcRT/Qó:Ԝ1=yQ0??aMX E `5-j(Zبh.KD̼P~]w =99X9Nnn.Bjb G݋/o+1ڴ*Y qqq={ JHHhnnVZT`-lt̙ɓ'S^^;e՚4hݺuuuuO; +((wK \~/eeeeeeAAAfpI&%L*b>B-[vΝSN8p 999>>^3.\0n8555kwwO?TK{ݝ.l֬Yj*f1c(^9{ȑ#;wPP͛srr:N -dUr̙M6 |M6:t|>YrƌǏgںMsz^p!00uӦMLNN 􌍍miiQۨǰ;餶!ܹs k`M+J9zhXXX׮]7oLqtLqrrڽ{7Sƌ1~]WW7o22R10TJ)))e/nٲeĈ -R|2lذ7o^xQQxݻwW]~޼y:[4Gt!لF`a:%fΜΝݻwk_53)}}3EQ=$7!^^^\.7//Ǐ}}}T5IEˀBr -[vرK.SN]vmaaazzzdd]{͙3w}.]<1ڋ7ԩSBP,|{{{ݓ'MDŅ_ ۷+nA(v(jѢEo!dʕ^^^˖-S\N6mѢE<==VUUU2o޼e˖;w.??111sεQS}}b+ܿӧOvg,_<77֭L'ZZZbH$JHH ׫_qU:RzZgGGǹsΚ5_⢣ !|>֬Y~fZ~w++'OR $BvE/CiQ=]H$͛7#P)d2''|毪+$>ޯ/[L$mԞqiam:(j֭]v޽ݻ===U㯨PZU;8|(J*_><<ήGWf9s渹XB }Hx}8}N 55O>WrssNSj[8~8flU#6W*"hrrrZh.*!L A WZPhVC3uFR\\\UUe(B̜9!Yz䉩C0K(ZSkii1u`JNNN_2㫲H"ϯԁT_xSG`~01ٳitgZPhVCX E `5-j(ZPhVCX E `5-j(ZPhVCX E `5-j(ZPhVCX E `5-j(Z8E:0c=쩦.^L2f<`yp:ߍG1:d! U K&N`xh8qO.j`wwGE tȑ!\\NM6$!A5}a]|nddE tԸq}y-<ոqlLX-Qvv֑|."QӦ=gh=29DzԨPE K/v`<wҤJ7>;y`1T6e A1y`DFz:(Z@?{BCTmh7p ۷o: V rJĉ\ lmmMNjEGGո\'B SvN:u0+L6cƌǏ:0oG*: s{P4n2 IDAThVC͟?rss9 'NW]^ bbb۹'*8Nnnyںr0!-̙3'OV6mZQQQzz׬Y#B\~}߿矏ԫf޽eeex [lQG(ȼnNQ!$--^(N:uȐ! Bkk '&&B*++n6{숈Ǐo- O9sP(ꫯ!tH=R \^__/4u6mZmm-ޢNQ]|>ȑJAKKKVVVCCL&v]?h*Zb1}ӧO*zwܡVzMoEc&BRSS)d„3ݨ&'TVMp{,\0##f |||ѷƎKE %-aaaSLիn9r7vohhH$JQV vg*XuNNNdds=wa+d{X\\x@h]t!|jE"=u֍'821m=BgO<ٹs1cV\43_[v[xn 薴?XS/H$O8Q[[oDEE֪~HGPJJJt ډD3g߹sgryyy??~KV*KW8++u]PUbjG/BrrrFS#} ,Xlٱc.]BO:uڵ鑑vR5gΜw}>>c!Bpnnn .lllT|9..[nnWEQTRRR޽CCCv&LP lƍ...{NNN+H H<ڝ<@BS܋[vڵ{wT Zmm9s|||VX!Pܢd!!! `.}|1lut/[YQkB<&J盀:3gB?n@rss>46$%%aj(ZZh"]@Ps޽4ޡhVCX E `50\.op8^r]x<^WύsA*1H%|m PWwp[1>[ [͏ZZ )Jj 9:_*HjZF.ojy<|tZo}yD^Q!5VV67UW7dnpoIQ$/O^^S[f;p[TG-egץŅzC˗K66ܾ}] r s AyySyQB{{{{urn:\ lmm-BU59999Wdr>ۭKpwpwpWHwP]۾B&))ΝK7*j_O#+g/oi6ls]q8q+ %<}ڔ盛S^TTSXXCqrÃ~s7߿ю9@g=>m*,_ak)={zx{{^/f?!8;*j@T`omT#- #W/ MiХmϞnt{yYYh'-w@O.cD7?Iܯر}N}gO#l]S- SU/ PTPPZX[zpgY1m@YEӜ~A/*n 8; kx1ҥ˗3[ZDE l041y0y Z(g̊hNM*O33K[!L}f8kj\:w^jC++Έ!chbO`OP})7B.GD$Yiik7G"DM p ƆzXpƆ?lXĉ"#wҁXX0XX0bi~~5Je(~D PŒHdyyUšb)gF(^}:8y(,x1#%%? Ǝ3vl߈>lzRj.8֖ox E Xܘ˗sΞM{kWѣâR(5uh2a CSCFSPY}PkkN#Sb?WrC4ǡ̫haWP1;EXCG20J#WTɳѷ{0l̴haiP-crrʛ%٧3 (Z&3-#w&4s/Z^0Z|Ov(BKӈ^^N9!XL°ꅡ?]FFIS2O_GG1 (Zxtw%,kG'4+ZW(RZ9^>L?8tB(ZPt숾n7 eW/ 2F%P.,za =ٍ8Af7!tIRUР DzڃyQqښף;3ppw`'kex |'4NU0:[ ˘/W3Cw p3u`P@F.'898W]bᎳ s-N[0UUL E (S òf)Tn'aaAB'/Z^'&(Z:5->uNi(ZzQT֐gEJPt"p^99e--RԱ E&^xc*ŶgO2䅫%K󫵏8LoN3!hi]j2Fu1 I-=pϞ>tcc3u '4-C&+1)X9h0K#7w;3Oi(ZK7WuP e A`&C`F#w&4-ꥃT4-.8-Ә'tv3SOi(ZՋ0(=ڧZ{M/h$YiiJQH$& EψIG8Li4(Z Ջi*cTG( q` -ƃ AAb8?gf2v_??pSA`(j-&4--T˘f Q e ѠhM)c@ AAbLRDV^E @{0#ӏ#ߌ6 A Cbe UFFIS2)8UZ]@qvfa0$kh1!T/&4#S( 3Ag?|yvvyffic#FfL~(Z {(1>P0>$@P@I@~3!LiFP q&OO1D/,yL,s\K7o1˦ Nzp8*1pf~OakK /;;_@d2j„wߝ;h$>t֭?I$r2FZڇ%WOʳJ+ #[ŋu+W\a|ɴs_D}/>ܼW/ ׉$&z _*\7,:e--RV{80A)U|\Nϯ^=>Z(Z:5DMfLlښ'K !~~^^AA^..ƍL_r-:ijMK󹯿N1r`65EҥxSF[遖F LE"=~\SџUI$2+++\W>ߊ.Y2zɒ< JPtRE;wRJK~;'iӆ̝@/GGKBQW6m{{6:Ž{O^pca Ӳ }%vŊq+VD"+(>t_kj,0󡹹9//eklZCNN5CE55 z xzzzxt aQL!BuuBCx;իmG/RÆu$4.##ԱM```Wž~=_{Bȟ}Ow[7(qz=ҁ&\!D&WWׯZu|׮_|3T?)ZBaeeeǿYYqwwil )p8|D"WJyy# !OJPYgOWkL.BbB?$H)׳htwwxт3.&N pss0u RUU/It(dMȟWTlm~~xd{L}rr1 :-n5k׈!i92"Ksr*Jӟdf6B|CG5IurrBЗ_Z›ǵ!Q[5`#`L} 9ٷo%K0oɓo\.~ݱOn{Y[gHNښׯoAcFFivvYVVYzG*D"L&Mq"&$Ļ߰n>Z0lXаaA?rJ$bwCL/~bAfEKQQ[],77Ayݻ<ĉL{rr =z̝;JE8::_,G!8NPPҐnǏgP,G쨮vD%敳ĉIO zNN!SSZh |s싖3gL5]Sp/^kZ~ .nڴ9!!!---juM 넉G1cǙk'O>}tTCӞ͛7/..p=ֵk͛7 DUrBΝ;7h {{{c^f6)Zt܊L&۲eKppp.]^|~Mi=߈7o*-dmN6 AF)ڻwo>}F}93 =#~ZzڃksRPQQqU5s}˽~7>6mZQQQzz׬Y#B\~}߿矏ԫf޽eeex [lQG(ȼnXf !dƍ5:c=z۷oh:WMTD8qP(}@ طo!F5r%իW+**/|dJ(N:uȐ!E Bkk '&&B*++)uo7fMѪ.oe֭O.--uF)op9c.3$͠'OD.hIDAT6 ՃF{/қuQwijljo.ݞE +n/44~}Ł񥧧Srik^|>?r^&i>mڴZtI&qܘ5Q-NhZ"BHjj*EQ2L1)JJJ THie䢥%f-YdڵE%&&;RHM'>UGK(X,rzi:!E,k@j"U1|ȑ#w%++A&]vM19nf͚UmJppÇ<[ۊ F.Z,2')ß~ԽW__+s999bwڑ#G]fkk{.}{N֙ծS!$''Gq[D"x=[[[kSd䢅dGYr|_}ۉOђ3J{%D"dggk pj䢅DՒWÆ 8p =&Jo7fM; bggƬݻ٢ErE e9I ڃ}vvvcVdn^=撫yɓ';w3fʕ+Fwww=nݢuVPP@}ǚzD"\~ĉ7x#**VmGFF*F`]RR^(u/--ݲeˈ#-Zqđ#GVh#EQDaI&uMܷoP"xԨQ=߃>ړWZ:a1o;6j(v2@F]h=(^˻~߾}DRCXj+-+-㏍9wܡ4ZvVuL[/===Ϝ9SVV?Ջ占Ƽb9iWZTBݱcO?T]]}吐cֹG0駶W=8n۱cǀ+D}}P(?… 9..[nnWEQTRRR޽CCCv&LP lƍ...{NNN+H HRÇ0P[YY%jvP6=)EQsqssYbSq՘EE&*[vڵ{w4ZvVu-:nE*nٲ%00^kT<ԭQ,Z,2' tԱhQ{oT&m۶wΑf{> ~ziXt%WU?9233^R=`IrssU'CUۨ}o߾G_iGzh$55O>gHWN+ܹsݻw0`SNmܸ~JGl=n Ş\U6%,===&&Ν;MMMnz|MSsg-ZK#$DANBZiUUUzZ`A[s\a~= na`*= n3X E `55nF_BY@B B= 9 o院ƆAϯ+B⁁p8T8C!'Tk#>T?9FML `5-j(Z Uh PlIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.png0000644001725400016040000001575313273140076025361 00000000000000PNG  IHDRIbKGDIDATxyXS'&$bW{[E-T@D*(X@*hiqjEADQv{D nmpC1"K0, Ń<>>s3yߙffNNH(BbF u73 `a C42[ɓ'dFĨJƎ?pgqqq?&3"FǏ"- 44t$(BP g2:Ð 0du60jkki4ɓ'喂:^WWP(VVVϟ?Bד߸qcHHH{{;ŋWE>|x y}WVV64N` M6_b"""g]aaٳ H">*A322:;;!"(,, ,,L$q8O?4voٲeر<]M BXXXhkk`0&Lp1X,VB(!4g0uuu&''[ZZd2dYparr2J yY[[;vlFڴi355~~~fGGfMM͟p>>>Ϟ=322r 2رյfϟܹh6]WW7cƌ0U^ #!!&''h]v)uoooOJJR,#"##111x]ccZ䥥"יbJÃ9rxb>hiizyy9::޻wfO<9::b===X !LOOO 㙙EGGˍ\.KJJL:fCy\tW[[ݻyە΢H$*s8HDRo޼rss---͗H$ƥ>l ۶mRMMMr $:::Ѻd2W^˗/ikkϚ5>HKKѹx"'6\p-...3)*-'l6$6Bzf:cu묡O?%Nfffxw!n͋PV)zuwwA{zzRSSTjkk*wU466>|BkddV7ʐH$FFFeee"WbJ?֭[Șgaakxy9s7ZgRomkk366.,,D7773֬YC訨(;;?pʕnnn>|0ܕd2… gϞ-J!"C@իWO4]1%؟ ߯ٲeK/I$CCC##?{ //b{O>뫫EhPfbb!aTfeeYXXtkk낂>ܕo2_~EsUUՈ#!A.\JSWgmmmzzz,+44T~I캠 MMM>?Xc1^:ü47nT>cA0P(|ѣG333:Þ+WL6?\Taٳچ:~ 0du!3 }PYYI_ta^ H{Bhff6PFG u?nn+V|nCpF^^ _,u.  K k/^/]uN` tthyy׆:ɹFH$b@ ꌆ Xg-:{D۶GRRr{hSF`ˏ? %'z^`KNN,Ν=) #ԢWDF4B~nR^`Eau'ҩXgj]-~p"*+={bHR^`OSӋk*}@GRNhrskT=Hd'O^%7a ,(awQDt܇?1`LLB|>|P'2& 0du!3 `a CXg2:Ð 0du!3 `a CXg2:Ð 0du!3 `a CXg2:Ð 0du!3 `a CXg2:ÐСɴR,^#UQ߭ɓ3g[1Î~cǎuww)ax!3 `a Cojkki4ɓ'喂:^WWP(VVVϧP(*(7?~\iו3{{7^xzꨨ([[[TÇ7n`<˖s+bmll^EAM`ӦMׯDFFXY'''lWXX8{~i```G^ELڊʚ(@ZCCUGg<9qĮ.X,722244  tܸq.\7nL PTTdggd2D; X驩GMIIIMM%'KgvvF{{+„B!՗/_P(G4i&LyftSNkiiX۷fΜ WNJЗ.]JHHxwG5gΜSNQp5 ~[m>>>Ϟ=322r 2رյf0sEGGذ캺3fd0 \.799FuvvڵK{{{{RRb !w566E^ZZZ---*B/ׯwB///GG{ɓ'GGG[ G,^'&&ZZZ|>N{Izz: emjj?677XZZ"wUCԩ9h:xfffvvvr5E咒)Sl;3޾}[^Vjkkؽ{7ǓdRT{d2ggg*l2(88xÆ O>Jg(**DT*͛Nnn%ȱB(z9NOOϝ;w:;;RŋQBO<~FFrW5L'$_gm۶QԦ&dAGG5@$uuuQ^|M[[{֬Y}AZZŋLf~~܎… 2%113EǏl&Ilu/G傂>hʔ)GZSSƍ&ul544~ĩLމ<Ν;rmm|-S.++RVUhll=|0066Ȩ^H$##2mmmjy ֭[0//¢װnQPP ::##C^?33{FM }L&[vmffO?TTT-ڰaãGly^|͛7o޼f͚GP(s"HCCCKKK/оXk##kR {U]dɒܼysӦM^^^̞HDATTB{pDGDD={}a;Wg?{g&缼<!zzz]]]P( 311xȮ^7t:ںwby955`/򜫪F ʅ  gg¶6ooo===*4A;f̘cbů:TJRc7<_M" Uc+v}}PZ0v>jyb'N\׿2̙0Թ 'l`V.^\Xg9|ԍ+c` Z( fg_tXgjVW?rۇ:a֙46nx,!JϯڔXg꒛{Ju NK`ɓWܽW:S y54EEWZV`ENNQ,?^5$ ;"'X,U76l`ϵkyJOihPkHg8u?EE4R,'ӻwTAAiLMGCCC[?1`LLB|>|P'2& 0du!3 `a CXg2:Ð 0du!3 `a CXg2:Ð 0du!3 `a CXg2:Ð 0du!3 `a CXg2:ÐQ(KJC3YL>}C999CҥK|&Hϟ0nkU3 `a CXg2kN@ HMM-++kkk300ptt}466.[  ԫWrq͚5kҥTjS[s}$KKW_:ۿSSӶm r ^jn``Ƀ3b_`Xߪ>Cm).f[TFz_Sg/_޹s`!!!}]HHL&};vl{E233>}3g,XX_G3fF% `U$Nbr77@iiP(H$//HHHH$555K,~zJJʒ%K\\\bcc;;;Pszzz={ Je--|yeeeV^ XhǏ{{{gk֬s\RR|rd2.]ZRR4}ٹ}vgggwwCD"b9889s%##ٳ ,8z(BEEʕ+͛ꚑ~hEGbh6]XXbŊ [Kqh ԩSy<^||7|d2\.711qϞ=555)))'"##oܸQVVttVK(FGG ܹS(fgg+u=ztXXb9<<-<<<++ <deey{{'$$:;;74 J;xMP(@X۷9!!aǎW^$z]vСUV-[XYYZ*))]1"J9NZZZpppFFW||Q'*^~sڵ555aaax̙<00 /--3770amllTyb@ +**b0OVꮭ-_ˈiӦeee۷giiiV͚5KOOoƌ}4Bd25/@UUD"9wڵkY,oII kuɒ%ZZZsxzzjii͛7AӓCBB ]]]$Ӈ# }頠ӧL:U5/Fp?{={*?Fq̐~Uy[qqq)))'N1c*w?xҤI&MNMMMHHptt$Vknn&[icƌ:u*r}}ĉ>~/==ԴW,LfbbMMMh^eTxݻԤGӧ&LU 2:{y^^ԩSݫ9wܭ[VVVr[n:t8;?СC?s[[[UU|֭[WUUɓK.ZJ__yȑgvwwڦkF988߿7JbX"h4H⒘X]]kkkSSS) P=}Sŀvw^[[۷z+WP(?x///P. gΜ^t:}Æ ϟ?711wލerDDDZZZRRRccÊ+ƶ...bСC7oFSZZZNIIIHHx)rtttww?x`zzzppKz]~ꫯ81g///ҩ#G\jULLcDDDvvv:8p@^E*Žx&((h׮]JFRO8d7 CCC D5nj``p ?|ӹw}pzzzn߾}QoGI0tRPiӦv5MJ(xĐ 0du!3 ~=Rc f@,]x{0E= f3 `a CXg2?}UIENDB`XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__incl.map0000644001725400016040000000156413273140074021256 00000000000000 XQilla-2.3.4/docs/simple-api/MemBufFormatTarget_8hpp.html0000644001725400016040000000757213273140077020166 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
MemBufFormatTarget.hpp File Reference
Include dependency graph for MemBufFormatTarget.hpp:

Go to the source code of this file.

Classes

class  xercesc::MemBufFormatTarget
 

Namespaces

 xercesc
 
XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp__incl.map0000644001725400016040000000032613273140076021227 00000000000000 XQilla-2.3.4/docs/simple-api/DebugListener_8hpp_source.html0000644001725400016040000003663213273140073020602 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
DebugListener.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001, 2008,
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 
20 #ifndef _DEBUGLISTENER_HPP
21 #define _DEBUGLISTENER_HPP
22 
23 #include <xqilla/framework/XQillaExport.hpp>
25 #include <xercesc/util/XercesDefs.hpp>
26 
27 class StackFrame;
28 class DynamicContext;
29 class XQException;
30 
34 class XQILLA_API DebugListener {
35 public:
36  virtual ~DebugListener() {}
37 
38  virtual void start(const StackFrame *stack, const DynamicContext *context) {}
39  virtual void end(const StackFrame *stack, const DynamicContext *context) {}
40  virtual void enter(const StackFrame *stack, const DynamicContext *context) {}
41  virtual void exit(const StackFrame *stack, const DynamicContext *context) {}
42  virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { throw error; }
43 
44  virtual bool doLazyEvaluation() const { return true; }
45  virtual bool doFocusOptimizations() const { return true; }
46 };
47 
48 #endif
virtual ~DebugListener()
Definition: DebugListener.hpp:36
virtual void start(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:38
Definition: XQException.hpp:33
A class that represents an item in a query call stack.
Definition: StackFrame.hpp:45
virtual void enter(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:40
virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:42
A class used to listen for debugging information.
Definition: DebugListener.hpp:34
virtual void exit(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:41
The execution time dynamic context interface.
Definition: DynamicContext.hpp:38
virtual bool doFocusOptimizations() const
Definition: DebugListener.hpp:45
virtual void end(const StackFrame *stack, const DynamicContext *context)
Definition: DebugListener.hpp:39
virtual bool doLazyEvaluation() const
Definition: DebugListener.hpp:44
XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.png0000644001725400016040000001247513273140075021454 00000000000000PNG  IHDRfbKGDIDATxyPSWǟB$ **N"En"+Zŭ:jg,ZYƸ* E꒸")  @㾍i"KH|q}rs~=r/  7Z`7oVTcrl6lC:ujĉ 1rܸ8[_$͜9mY={;zxbÆ B4vO>7GVK$r f"##Mi<oF߿?kgׯ__hь3N:+V9sGL& *..&ٳguTxxԩSW\YXXh< @*Μ9f'$$r2˗//Zh֬Y'Ozjhh_~yQU*ձcBBBf͚#J ӧ믚:5oki08i$ ~Сx &dggL&bΝ;?ܻwϜ9#~cǎqӧOGFF&'''&&BkؿWwޝJ"##>|#G,_<99Y{l8s۷cbbW^^b0{>|xÆ G\?挭-z?}JKKKJJGYf/tС_HPȏ/_7\v ._fu/[l񎎎G֌-BTxUV1Lŋ@HHm`` ̟?6((5/^q!C̝t5n85glYT*>n47t08[YY?yyy֭|F+;wB=Jf<g!j JTWWk"0`GGGͥ֜UV|>Ŋf|E1 o/^R CcV'޹s͛Æ srr5Y^KII|>?+++>>ٳg&-J$/_$XUUEBasSk*Z@ œ'O7BHܽ{W$ڵ+00FK&Ju rWYYS3yd?~Ç?aÆs͘1#!!!;;% ?pH$*))9rH@@@U`` ))))))ٿuu5ixbCC5gly<ȑ#o\$...|>ӳV .޽{BBBuuI,X`ggaÆ͝;ҥK`eeoӭu566N4),, ,YtR E EBB›7o m۶+Vbɒ%]Y&..nٲe4?'{i!aaaэcƌ"{ѣ:~=zp8[ ,蜡-ߝ;w:99i,]`\.D˗/O6ұtyޅQQQSL{1}t FqLTvx1!Xoz- ܼya`:gB۷oބ.O k붬?w9֮]-1JCW~ұg R9 ;w,ANo> Ξͳt89...`eYRӵƭA߿t:y!srrJ&GGGǓFRѣ]v۷/J}93WWW9lٳgƍfw_9R,̙3geee ((СCm$mlld2><<+(((((XreYYN 4-$$d%%%[n <~xR߇kf͚5B077w˖- ,0b4&Z;+qٓK$ŋ;::FFF644hWnmf޽ e0ׯwqq 1ֆ;::2̵kd2 -[ֽ{wD2 0NZJVh|u뵮Ζ-[ϟGLsFۮ:?/_$""bĉ-oջw﨨>[Ą jkk[ۊ`$&&h6Xoz-Lvv`SyhT* e^Y^^n*WѻkyTRrs==tci;vI\ش{DZ:sn?ұ~F"/\xl`rz?j5qL17非d!2?~\VM*rLŠwFFJ!sPh h非RIʂ!.. kth4jV#Kd~қ}@Qu ԩ" wBҷWV-PwrP;/Rl#z\蝕bccORsk'O]] FWz[{@1pqYh _KbnP1$Xoz-hF 7Z`Xoz-hF 7Z`Xoz-hF 7Z`Xoz-hF 7Z`whlltR.DNNNSSh~#_wh͛~Lp~+J |.6oz-h  `МB6e:}ٸqcgvإtzKc&ϟ?* 55?nhhPqqq޽z;v,'C# Fakkd2 Gyxx$''?d rQooo''dwww;;m۶ijfff<`^I۹B۷/V(\zb4u _9}tK,\pѢEUUU}wAIII ###˗/^tssbқ~A"DDDTTT@MMvR[n"ȑ#RTӜ\ H$%IRR~XTTbvء|s}@ 9rMtriӦI$rѸOflvK0nnn>>>܆ rqM'N׻P*T[nh{j^R蝟O\.)5&/K$k׮7o$\ 3Sh|Jo}􉌌|I}}?ǸQF?~\c=qss0a;wtիh4OOOUQQQii)$|\.'ٳL&V.={;vɓ'M޽{`04hWffNsКdM3`:j*L\",^122=>uw`׻^ {"tD}w `ӻw﨨(3숎Z W~?#@ZZZ;-hF 7Z`[[[C32o޼;1.D]=E<-hF'HtgWRIENDB`XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__dep__incl.png0000644001725400016040000001300313273140074021523 00000000000000PNG  IHDR!bKGDIDATx}POȋHQb0AaEJ+.({؊U[m\KWPR)/A^zQ(/ `vo9aϞgwݳ]ava%Ұ4,PZ[[ۧjm b`Xwaa -[fcJww{ (;///111++o蒒\.H$l6۠"6ގ mb833/'O4Y<88{0a¢ELrqqqO0&uuuYYY{&Ç_.] XtikkkKK˰}0=_Nh4UUU۷og23gܺukee%F;qĎ; $H$N.r…;w23g7e2ٯ |rhh(~g\}:N+C:t( @V< 9uꔿ?1T 펟 aXyyŋE''/Aaǎcٳg&Z߸'|YfZ[[MaD"gܳgOii`.ZH.憅Fk֬9~իW%srrϟv JKKhll^bQ1cjs<d;Bvܙ@R~(cĉ6m ޳gOqq_~7ߜ>d %((AAAѸ8JUǏY8_5=ztD& hF ?mlLN1Cߵ4?a)+^z$F3@JD8;;#1RҰ4,9z޽{&W\lO SOOO쏐`ŹW7 olkVgK+W~}lPZzC뇆p)},B<>P]hp DJ+ nk4Zlb눬 DJߞht/W6$k\/vvR.ݵa|{(++3gرcR4iFO ܌aXss~G ooo ,ػw/922R&egg"""d2Yff&p>=jL&h111"(//{ܹoݻc ~@ xW:gVUU?j Ν錷nժU2AV\T[[f ap8j1c}||b1?>cR ҸBT޿_.kښ<9sJJJp1T*2||fafԩ/_0,,,,%%UWWcjz=`VPP`0ۼcd2E'=i$J5H477ن mjjE?~jg͚/lb@&ׯ__RR?]1;?D>>>[F+`i:IZ])d>=<UH" `L QQ<^W_mp:8-_(.nu,.+*nkךJַ` 76g>X.*WF* O҃|ڢzHf PO~or<6 KJF@9mhhY֟X4FqYeLHK[bm) HiX@JRҰ4, a) HiX@JRҰ4, a) HiX@JRҰ4, a) HiX@JRҰ4,XNV7l( aaayj7nA ˵P)KiVp,vbH$F a) HiX@J˥P($H&:Bq$ ͮEr)//t:=%%ev8~垞R?{~N;iҤ~CΝwpp`2&󳷷9sӧ_;eʔӧOϘ1Dβ9s0;v(J}j:99ݝ`$''j.]f]\\>a„ X| "ˉ"##e2Yvv6 ""B&effzzz+Wljjeه/~ȑv@`{l#`ժU28t F"PN,,?BR)#jܹDovhJrV3W!HTѣGRNjJ| T*A)l6[X,ӕ7F@uu5aZvXơ[oL8wD@њBCC.\KIjkkY,VPPO?D|3`ҤI*j&>>>"HUkk+ZbEKKqzM~QZZZHH|[<==oW޽;B ;* NWTT$Hm۶zjdԟ8@SS.N'zTZ[[k\IICT􂰆:.&&f?cEE &&&99ŋ{ډRTT4MP>>eeeŁnsfggO>No߾]Pd[nuqqqssħqlX&L41Q9A8ҿ1yx+|K@ϜPH$RAAfiX@JRҰK&%O FbR^e_G:}Z8 HiX@JR.=IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdOutFormatTarget-members.html0000644001725400016040000001425513273140074023762 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
xercesc::StdOutFormatTarget Member List

This is the complete list of members for xercesc::StdOutFormatTarget, including all inherited members.

flush()xercesc::StdOutFormatTargetvirtual
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
StdOutFormatTarget()xercesc::StdOutFormatTarget
writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::StdOutFormatTargetvirtual
XMemory()xercesc::XMemoryinlineprotected
XMLFormatTarget()xercesc::XMLFormatTargetinlineprotected
~StdOutFormatTarget()xercesc::StdOutFormatTarget
~XMLFormatTarget()xercesc::XMLFormatTargetinlinevirtual
XQilla-2.3.4/docs/simple-api/classResultImpl__inherit__graph.map0000644001725400016040000000030513273140076021656 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_3.map0000644001725400016040000000031013273140077016371 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_34.map0000644001725400016040000000035113273140077016462 00000000000000 XQilla-2.3.4/docs/simple-api/classTimezone-members.html0000644001725400016040000001412513273140074017771 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Timezone Member List

This is the complete list of members for Timezone, including all inherited members.

_ref_countReferenceCountedprotected
asDayTimeDuration(const DynamicContext *context) const Timezone
asSeconds() const Timezoneinline
asString(const DynamicContext *context) const Timezone
convert(bool positive, int hour, int minute)Timezonestatic
decrementRefCount() const ReferenceCountedinlinevirtual
equals(const Timezone::Ptr &other) const Timezone
getRefCount() const ReferenceCountedinline
incrementRefCount() const ReferenceCountedinline
Ptr typedefTimezone
ReferenceCounted()ReferenceCountedinline
Timezone(const MAPM &seconds)Timezone
Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext *context)Timezone
validate(const MAPM &tz)Timezonestatic
~ReferenceCounted()ReferenceCountedinlinevirtual
XQilla-2.3.4/docs/simple-api/ContentSequenceFilter_8hpp__incl.map0000644001725400016040000000156313273140075021711 00000000000000 XQilla-2.3.4/docs/simple-api/graph_legend.html0000644001725400016040000001300613273140074016135 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
XQilla-2.3.4/docs/simple-api/dir_000018_000002.html0000644001725400016040000000452013273140074015706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

runtime → items Relation

File in include/xqilla/runtimeIncludes file in include/xqilla/items
Result.hppItem.hpp
ResultImpl.hppItem.hpp
Sequence.hppATDecimalOrDerived.hpp
XQilla-2.3.4/docs/simple-api/inherit_graph_10.png0000644001725400016040000000351513273140077016470 00000000000000PNG  IHDR%Y5bKGDIDATxoLR]E$'(ʕ0i^Z:T-eͶzQ-/zcQ bEsZ[Hk@ ȃ60D@Wy/wɀꑱ Yh) - !4 ,PJ. 7TxFSUUsNX H$+WbSSS---|>_(>}Ǐl5R,,,,((P*x<٘teee\.W ѣG6mp֮]{ǘw̙3¶֒RK& #e\DP]fMww77n3!vafsIIɅ   >~\.]\o߾1\^^ޞ8lC\.ם;wP(33֭͛[,+ 'gqҭ =%33ĉ;x@`ttv˖-)CɤǾv}VpH5CCC,ׯ7oj6Xdc;uA]|:XxKKKcGǏCP"XVχ ȵk~?`0HC#HOO֭[ʺttvv޽ܙ# UUUxy˱NPXSSS,IO<Ď8}>}Dt"4NS$ >I%$BzT*---x/_߿ٲe۷oLjnn~b&Sy!"XW*7cw|"j* HmmmZb&2Lݎ5m6۪URl\nKK퉣H^T} 3D"(t:wᚚGꞟah0Ez$z###.<++k#/&&&d2Y/Vdׯ'{B! cxxC&  ܹs_|1ͻvqF1q4b16D  Fuu@,C咺o޼}}}ȑ#uLNN5E={w^ {Q;V]]܃H$:{,ҥK"HcT*ƌ}>B>^DNN@@./_%SZxB OQh) ,**JMAGP,hB1/w4) -s<98E lX`PtF8?"#####N )XFX"##>}uprssˆ0u p:us:@a #Ptsrr~1f̘+W ׯ644ϟ?ʕ\\\ß?ΝƐUV%''WUUQ_ !!!Ci` #`JMMMNNN3f?=F7n;Sw;ܹs///?w\ssۀN]w2+XF]Ir̘1 *(JSS@OgϞ`8@a744(((t-!!A}}o߾8qիWnݢn왟ŋ/\ Htt4QQQ/^޾}{ڵe˖yzzvF7n899Yرc}~扊JMM=vӧ+**BBB> 2ye"""vM-*33^^^%cLḺc̛7o` #`>("z.Dz֭[߲[p! =x`۶mJJJ.../_QSL ?{I=zbŊ}ƍ DEEMgu))))**ڵi*dEA$ٰaѣogg3k,A7m$''q#1/,,\VVjgΜ9{lSSBn =񯩩:<ۣ W^} DRVVܢԭAj7}Z4PG~{GQPP;8NOO/..qQw(--lL& 4hMM" EEEVA譩JXee%VNm4`Jׯ믿rss#Ss=w\uuuIIɕ+Wh˵^^^111=СCչ\h^|y%AIHHg紞166 ,)))))9{l$!^[ \`AХK[[[=Om|}}7n9o޼+W؈ԤI߿ }}}q8ٳ]\\sWpp˗ΝvZꞿ6N&NsAA_p!$$5--{̳rʶ6OO϶6}}yLמ-AN:9####6ԁn h.~ Á&+M3 C#""h :@a//y6Aa3,? Ў;` #PtF`G`8_~}))8)XFX"##:uƃ  b…XG`q5 ŋX#1@(:@a #PtF0@(:@a #PtF0@(:@a #PtF0@(:@a #PtF0CQ @Gt|6CDII%n^3yyVǁu_߿}mcnnU͛Aa0Iwnj4In# #eR]N #NNvF(0kk]"v"le5y #eX dpF(0=vFl0FNT jaU0r@aHJ N2ӈ 7uX))AlS #hٲg~ @aku|Hp&yF$(3{*;;;;PMXD`DZl (X[b4 j‰\\(O: )0a%//_YYu !(8A^QXarrrX`b8EpӧO:`A/^8}4|p׷:`AP L@(:@a #`VEEE8}(//wtt| Oኊ2PܟHq@aJHHh׮]=*&&ʊy ==-=Y?~|G%$$DFF#BPqqq)))Lb#1r]YYFAnݺBP|}}Oۡ{HKKwOuuuDOOOIII OOO"heec=  UWW9y$ t:qqqGVRR 5@oho=^_$*??̙3333k6O'))IAAٳgOHHPVV>vKHH?o `!>k֬qppDQŋ_|CgMMM\\\֭ Aׯ(^z588z'NX[[gggOs挷ɓٳhѢn),,TVVv, cxRmVTT}{˦c$jllТyT瓆{é522n!77Z[[mmm===߾}{Ƈt#&&F AQ1##A{{wv~$'z %22a V1Uͱc}{[0j ʩ~0BP֭[u[n=~8..Auyzz<|p}7N Z[[inngҥ{)++611Cظ{ݺu}< 366}vSS@Ao߾u;b *ƍ^?Ǐl۶իW{]jU d?^KK@ (zii醆paEEE>>ӧ߼ys>>>""".\655z&GGGaaaQQ 6Poذ|D?#5H5kucxxq㸸bcc B}**F~*IHH&DᅰyyyONzTnmv}M900p̘1bbb[nmmmqcϿ4s p8\xxP)**RQQ?, ~vvv10 #c... #`>lNhFBB" ?Aa #5D)/ϯ.*_6 D^AaD"QJK>}.,ϯ),+@p"**8\O`1#(UU55>ԴPURU?^JUURCCw 8N___^^tD"ᚚFa~${zCȀOBArr>})()(-)F$DǏRQ= رJ$} /ղSho\JJy TVspPDEDDڄ3TNNL #Uk+!/:7*7*7K~~uKK;;;رbHMMZYYBEEkLj xzf77,'ق<=ExK/4ors_(bgg:Ui ssmII"ڂʜܪ:27J]]FCCFCCVCCVMMޠʕtqq~Õ+qVM?NգGВIIڈ'-X0r@aњڲ+ʪ(+GDZZhD d44d'N3FǰJ0㗀;wˋ[gf z98(z3]2 --O?zN caca=v`@aYZ[ YYwTBu(JJ hjkjkikjKHcѽ|Y..K겳xv :,$hZoH$JF:0@a`}?^,yZ $455545Ǐ:#s@Q=~TOOq˖FF;MS6vvSE_eƾëJk)(b Fܖի/K޼)mhhdWWSJhp(4)Ssr&$OW%)oޔeݹc͵a6":^*ɩPPIISŐ¨Q#Ʊ!11oϞM,-?Ν&&a':7߽;$*ʇa!Hsڈ3f(/[6eb-RCYɔϯ^df5CKKa4%==ɓLjbߺy“z8֡<]S#KW:ˀ?&)#`v?LDweϟ|YM).(3uԩ M44\vJH^|<))AC ϸW^HK -]b4F;FFG"Qʟ?/JO/z ##?NOOq4%UU)666 :Cn˖w1hZo k}QSS~ٲ)˖Ma{F(LVQ' |jjjg`SaiV¤I-WuڠP ##_gS(c˖M;Wc8A]Aa` ?MI)#sss83g*ϘS(٪89ٱ0_qZ[ gvL@z('$EZZ+vK:0|}kNJM^^dΜs挟5Kg$Yq6mk[2 koH $f)b5Aa/E+!ήd9Se|9sԔh46\[Rw׮=)jKuaHڂ@ׯKrjj~-X1w:(Ӎ,iܾݘ5Jv]L׭3:plQSׯ-+ (TSGr32>mm 4WА:H4ݖ-!11[oߚ2]{V_77޸qĉPAaog?xݻr^^yԍ4Sr`:f5=Y˗Fr H~L:@aOj{1;BHh‚OIbu@ ij0qvuu.(vիg #P(7d߿^FFdҢEJ̲bun۶aQ}vYD+AA5kfjg!@a/jPT벲z 4͵s̻N%&]{%3MׯH$\\ Fϯ}nX1KKKK55isVXqDnn 6n4: ijj Ir%\{۶**XbtPzVYᇨRRkA`uVAAM|;AH}TTTkf}M0ׯwyU!&gfei9YOO !z4ݓ'yV]JO7vYWbc<֡FA*99k"M+ɳf*Ui:":oyXgat(>|/ NܹdC1(>}zآ;F2hX~ơ۹3<'Xa(&&$Ti{y-"FPMqq_V'aeck;U^^\?F:C>F*-Сŋ53FD؃H$?zocQ4D #X>^lQQ^WOWPsF4ig lmSS(+K`Y/_NMebk;uBa˪:(/gTYj$NNvs`F )'tt}1Y[cc˅ ɗ.=;VlNssm +(`5 wF'y""vvSWs*uiyC%8t{Fef'%ya|ȑGrRX'&P:ZZ#"^]ZRR7sEĸ`FzHO/Z]#S^|PǏU NDwP jkOD`ay~bmֵAA eƌkguusƍsqvF0:ŋO/_Nغ~3AamU־--2w99ML&]0@w/ŋ}aF&SOz%ZNnQd}J˗O3Semg{U.-m"ܷԲ*-][[,#Q~~kpU'm-,3:#~rʆ ?~fz1ll[Uams_BAq8\o~Cs:H$&ƿ|z#qeeuggu W; 03:uʎw։zs<EE_]\,,qss>zqC"-^EBp[EFn~'Ɲ!U[+b޼57n8obu`:߼):@𡇐XFϟ?$cIIycO# X`dQWQQ{A?G ))۷]lxȑ> s;s!(aaN=hi!lh:sV͵CBESDZc&OkWO|| 4~KcS66~7-厎s?pǏJ4iFXX'ӲѰAfe5WJF/*ÇJ  XFLVVŒ%/PUJMs򤭘֡%$$k׮ceeylqq{.kE` -}%---?  R ;e$T.Yr^F}Æ땕 ;Q F999MM< ׯwwaޞdrJJ ugEz::zǏ;_SuV=M'<<  O>EQL&wMխKFg$hh#X}y {؝7 HXe4;cc^ ++m$!! 6nڴX[[sMM;[*((011ս~:u#'}Riii]W ,()񇟟A꬚NNNȐ3gNZZH$111 H4 /]4::+WO#Td2yܸq/+++:P_/Yk[NA:QSSvEll3kSmi,-uZ^[ɤǏ?\ya_(/tӏg,>e"֡A***|}}<<<[dee:wV[[[OOϷo^pÇ&&&}(&&F[BQ1##i[[[)JdddCCL&4ߎ;fܹs'""b֬Yq6B%))^\1ϲX\FFG{_sRQu)((;=64cNJM( +=23#"6}20_s9~X3 ú>AP֭[u[n=~8..Auyzz<|p}7N Z[[innq<O}t={egg60366}vSS@z_\VXQXX:@$ëWg#ԷiggVRR9z}lٲIm۶W^ݻwժUH/600Ǐ}צz8YXܿM$~CKKΝ_6cPa5((qwu qώn絴wܑnhh VTT>}͛7>(#"""//{{{aaaSSγtI$g͚G(,,,**aÆjގ_7KMM-66@ t=qHPƍk׮>߸q#77wSSoV^-***--۷y5v)###((hoo_nszI'00p̘1bbb[nąK1BQNF=99 _**N=`ߍ-y^3ϟӧ.]z&_tu nkk;FTTTX?}b7ᏦǦ~DDK,Z3a?aKUU?興M¼sRJgǃG[[[qqիWf͵a4 ߾fk9)FtWZZjեkKK4=233Ln:CCCǜ...4iǦh>kԚ de\Zmm/ OmCi뛤$qԩJX'PCiQQ<} `JK-Drÿ萘khx?y˖`@s| HX0vXTki7 ϼ!!px=&XЅvss[J 1cł?/ܽ;'h//r r:tuJGGG! !"?"2rXПj.sןI6,,,s۰wߪ+W҆1,ٳo/XuVF&Sr]K{HNNpiѬ?_vm=MZ[h֭,9mk%Kt-i&::^*Ѓ)ָ4aou:PP[ uuw ey*(+ϯ޺5UceQ'V߾Ri&Iq#==}/m욚ZMMO FGo#ĭ[{S@LTV6\jn憢h``ќy@UDd2%11Tzzў=߾=x-VUQM͏TwwcOczu]^ޗGh2`X u@rr{]4'jЍ@`b?6o~kѦMy4g$Çg^̙*NN&`t6o|y&=fժKׯfZY'qqz5Xa5U.ƾeo?a֡d+:γg;vihȎ#JanOAAX鱱NYkD cW>;gWpcuP('y.=}PMMiҥ ͡$ d2޽ =45jjq򤭭Ym=zƍ))q#F46|ڵty IAA-aԬZu&&X[OUG@Eop:Vܹ'/^tPf]aCHxq͔)Xa߾5߸ڵgx|Ԥ2bdRK78e]`gyQQ=<²CYFbbCݻn yan~VAAPD^/i znoܹY!_qvF33U{xWU5I&LL&>u@3 h̚rȽ=F ~͛ٳ>"E>{V&aÜKu7&豢cLM}\w `WRh Aͼ{WnfvfBAU4D"FFV1)si ^!rv0w(?ߗ=SafaVP_:E&;O&SF=ygaqVD7!aYXab?BB^ض.gg=ߊ&{SyS:gXFX޽fEEo!0WHȋ{/:sfŨQޥZ]KzYKK8֡+: ;, <=#RR?@`Dd2e]"m[h8pkמ[7ݻέd}fpS2a`aya]wwڦ;ws1 o߼FZZVVÔ'ļܰp }.C kkݻ]ѱ?(]nѢI&tJ4XY3,n ͭJJϟ1̇U11nP ‹Whdt/gάHO4yg AcS'Y]pss͟?޽X4yOjRS 3F~]bn~޽mZZXa2,9omK BB6$&\T')ǎ[Xh1ʲUGZu@/E?hI]]fL4ykcsaTmXa&iig/PЈMQQs1B % 0ww/ ,.WMc57|ͭP(z}W˗rs30CQ411?Ϩ{ƺ̢x|3֭3;V ,1{x;wG]edi,h\._NPO?$w/f~a@&&>k^`Gxɓ`Zѱ?ڿ6A]XXdfhKpqqYm} @ڴFT;Xa ))w9|,lWt-m{\ڛ7OwT|<KKm2r~v߻Aa0jg矖VT8H$GF208i uuOw9M$u.{k:H լ&{,FX@#. #V#(ȳ`FTԫw`doyyCL֩SШ%ќ9w Eee s #YO'`XD IDATОW%UUX4lٔ }@M͏KϷbcƏ:")%q:t讎A~C\ŗ.=}.󏊏͘ `:橋 6F`UU5.] Ht99-g(Ž;IRRv8a###u.ck::c"n8.NNv }V~\\RRXaPii CKEFeNpEǾNͭ ~u@cffZoߖ=ҥ>}m()-"X pr/Z4 Vzd=|O< #@GMMm+V\lnn $) !|{ed|>~&>},Ca#?B3D(dgWebjtuǚky{d17ή()u@cs6 #@/m߾5߾ !B$Sܼsɳg{Wɇ=.Ɔ[Dr# X6=:3Uӈ)76-(]++7)(bc'ΚױcWxb|Q(_ݎ!k?(SZ>0 E4aG֣)~ #@{D"JQQmT+ ?ҫ Oϙ3>=}߾}fp_ mmĮ[p8n~#G0oGږ-Fd2417ͭ*,:%qq~iil((~++<,l$q]e~vv| ;Oe-;}T V?ll8666561] vrԊu@ӧ+JGSS.;P;q~\KN u̔9;_73;Cqq7IcWsqu qpqslam*ذA`gg[XVzd=YYP:u+'mul479ghx[tu`WHdA88؄x:m֡hC@`A@S4bffyy>] 0#MM04kWvvS΂ |e`WhhIb 4Ÿrr*)MQQ<1C] q8\``*Am돓),fD9AmF~~MA;v,: Ӌ.#xg{\]3MUÆH$#2eb\v[:ҥ?~: 66ŚhIBhnG ÀVjj~ZuiD3gVpz?| ;8hǎ=%b8dIqVv4''fVs._Nq#}VL\մj/2p8PUUzP57\yիFT7ϟy8sѷo˂h2=Ld1G&M6~|dDTQQq>vjvҰ3u0YY_ #1CB$74ܻM@8ÄBAo~}h\{;yN  iXҪ5@'vvv}4唘#sp<=aЌ\!ٵ+ݻ #/^|D?&_Ec tenU\/X4cF`_oYRɓ|X mƹ><} tu ߽ SYpeec@ao;;wM: d_ߤ9s} v uz~RW60P H:gfII6bss{׍Pmrv7O}۶XgƧ||m4Y4qaZZANNA iQxxim%t0"7ٕ}sׯnn~ O0b?__ѱ?{\p"z~-ڄ 2.=6ɓnj+v.ܛ"0w\qdS;ijgg9)(bj`v5Уbbb:-..Cu ]O!g9jkhT3.=Lg Pq#͌ӧUUB/>TZXݹ3|R=66zX' 11Ǐccc)J}}={[z: -Y2YH'$$ ͵{|(`:ԡ?]7Ba͛?cZXgHHKFa?޽+++؈ ȭ[TUU[ZZ(:??ӓCH} ݻwOGGGZZ~>>YXXC]SS#66c#" |>W^FÉ'X|yqqqZZӧI$*sxx/-.jjFS@A0߽ 0Fao꺷v!Ugn%)y1A%1F---RRRjjj_ު~~~'7F===x<>))ח577rMM q\\QsNN  ?677_z@ cQ 7LLLaO O055=zhEEE~~ݻwB/_F1 ;;;7778A>>>ٷo߯_233ܬ,[FGoFp-16V] 69F3OjQjݕ~Ih۷oc0#""ś1ٳgN˫ 1asҤISL򲴴\re(gb h[[[AAA!!;vttt}2{*''`L G ;::vuu޽k=y2ZFO]];VT?hҊ ##Ix>MGZ`Y3--i!J?EEgDg`"ZFOhh…JJ##=<,m3xb^PP*f99  n3$XQaov\ܡs"菵NCC[||BcD#66x\f#?xxhysC7-[5lH+H ##i!fͬ_H P YYe'^l.++ݍuwMYZesn4%0++c'#'鋥֞=A%$(" 3fHFG1p/o_Ȃ ZHk1Oзnm23#%%uׯSus*7t)c0cهeҤߺ)&HIIr##óQJLLfݻp;;+Z!K٨vOύUލ_斸@BvEUUUQ+@""&kך(scb^%HWWŤIӃ6RUU5ךuOfcboO? `ARz8#WV6[yѮ]Ke#XS]7""ɓFEE} 6lX&IJ OK د^ݰdshFFS'SJ!`e뛒Q5 i-#--&x2Z 45kfBZ ׿={+H[[wXX =㓬?=.%1Ȟ=TrEhtWXXBVV |Z!+x=􆊊Č`lU>GZc}.\0CZpijj}t@ƍZo:O."ᴴ'''~6iO`SέSU(aԤnܨ%GtVLLn{{BcbmmEH P6ykd䗀{F)㊋ŋhhh N+-mА>sf5h3:Oha1rp=NWWa߾_?|UZZe:ͳgcbXZj#0z$$f͒"23F㚦ÇYYi33?u*rGKŹW ;8ϙs߽֭syꀍ|"޽^YlkW_1"p|4i!bl7 &5!k >I*rr"T/))hlao=iv\~NVVyEEBcD;) 1<`)m>b/_9;}̔I#ſy588-%XXb̏5ii!!T ZZӎ ͭwo iɢE¼9 0z45es T`hvtZӃ;q"bvU+k{7^[]|SnnfsI<X67wDFرfAg͒~YVv5bch3(XnϟuL`9H  `#yxX"ZddΪU7\ g"-1讠%K.[YݯC{zn8bHW8?sp_OӶ&;98 ?ZSSVFFL1:sNEZ`LqG[[#asI+G|ݻ:wl665kfy{oQQGZ X|@gkknnrjYY!776^E@PAVS7&)LL4c;;1 V@`hrltO u?z{o|UCCңGWOWA˗y͛#%J=71Fյ"-0&V%$"-0z1_]^Hky>~ih'MNE8|xL$W{ AOLd.Ν;5&fV],CPɨQUiִc4`pG \/8ztUNΙs1+`pi[rr+CÙaaׯ؎z: C̴KdJ5<V`OϷSkwϑֽu#/g|,x1\`O2z;u2(gDE957w,+k@ZΰWiΤI< #\^^a Bf~~UxĚЀ>ll\T~ƂODcڴ11׮]PPanO?kk[&&>H `ϟ^NRPˍo3ҍIssǵko;jJׯ[2SԒlۆ| QQ05]10P&+`/K@ϟO'^QQ_֯&(%Ũؽ IDAT5䩯osw7dfq㌌{3zn5|}Ԑ22X<=7_?/\7Ԧ1:FF3Q(۷ߑXg ;8gZZ֮EL]zvϛG)HRR͛qii%>>˗2Gb50Ofڵk YYY\㛰gO`GG%}ꅝU__|zk0j-Rba1i-saRqq..~_FMF)ǏW,[D9<|ҊhDhhfg'n-ŐPSpss`) qLMGE91+(𲰸APx'OƏ+a "eL:dtJ7硡Hk!ʄ 젦14‚6@_1bB ߻WA y^ZZ 1h/YYe[]{'*iX""E?mۦ %4"뿸8-Rz*i!1˹x2Ҙ ߾ ||O;sf-sZggߺ>.ܹS=۽`Ҋѣ TT$B6bNNOXYYpO##5g秭OƂɬ}453OD# nj>~<< 3kߐdgWܺ}Μzb遲!-vt b70PEZ?,_ Affs=˗yʊ~,1W DFbw?|hfss}txvE$KJ .[6i!Bm0ovH~~.]]Pp.]pƈy';;1[ͤ G͖->˖]nydGL>zK=mmϟgm۶>4P(ԥKW?NM-AZ?LHىAZ`Lh|i!alq]]Ϝ)n筭7zRkB% uuΡWkk[_XiQtAppoܨ‚qcӒ%ʶ>5H31\b"}MeF*''Hg1b?*;wΔuuhSӻcb͞-C)Eg'x=?.^\}}Z3 =_%`?p/"ll,mVUyPWG/;O7g,XMct8Ƃ4#f…XԳiݺ8>2INɶI#Οƍ8ş>Y[0߂ш()i{7~_z4˼f[H.쬏sE?@q4xx:dDq kLLn DE91))+V\=v,|ǝ 'L`GZK9t%%1>>NeQ~ ~~8i9AW|i!1c1bxj>?n7Ά &%%zxX0z7g A(B0 pWׯzM366SRVG]=i-AjjR_Ɔc2c0|X4ΊϯRV ` 89=YtFZ}O'त6;vRh{6?}흈 ##7ot15&&KkkjcEvZZɅ isQjn)#ӧ#w#ۘMCZ=B#񷁁_DʕjYYH KUxx8 |?keC˜Ԓ͛Ο/VypHHڥKP(uVV:llWtUd׮%UUMOfΔBPԩ g`89 Tcb-sW_`YI~XY_lGv ֬us#II[WD掁 7(j\mkp9[Z:U_11,-0 #( 0>~m5rkܹc(Ƣĉ+sp}a!(Hue1baA.ܳG)IV lҥ*}P||/_Yw[] MJ*BZ 0UT$,-isQmg\!zGut_ ߫"([7ܹHAnoWAP<<`ݢ#㓴hѥ۷ !  KDDNjjIt>x2k+߽ksE_>|YAAΝK3@Zw刕eb7PnN'hhH_`v3-iHm_Ȟ?1R]7<<+<<" i'+#ƣܹhKKm쿑Sae`E//pE]]Ow g˼{碤$">SM?$."4CrLTO|n33目.+-rcm@SS{3;;+ F qq-ԩ54 66i&o]lϵ0Leӻii% nnYY!"ƈQ\\QѣަK]}m->M~!5&$ Eצvk&mao~>uj͐m.]Á!`aXАЌZqƐ2'޽466%=F_TΝDl`,P7,WlI3Kix=>׮m;w*F5? ylt^(`z.U11ut~}TEHW]} H3bhX:qb-Bocxy}`eeٶm!HLv&F'"̛7-.EGGiEA~"~ |@J[[[yyމjԐ-@nnn.#ر~KN[32~~DKf z;){,jtj2* 1j|\JXX;oو8rH\vmuu'O 2x ǟ?WPPذaokkL2N-Q8XlzM?#Q9s$@4c Zvvdߐ`=޹{7}]*ůoz*qv 7nu+NOO1<|/RT KFzջwA4tQ-O@O0 hhhpqq]xxa!!!DEE{z)SRRRH^AУG/^ ++q  EDDd... F[[ᦦ& 0ae˖-BBB]]]}<~x/Y]]-UknnLR߻&yBb A/_ 0=y)SmllZZZ?|AKUUH/ ;vY[ߧTet<)S∋Z)WVQqkoRCBQC| /lm޼y˖-0 ߿_DDŋ/_"oh4߿ a700B}𡦦YZZh,,,h!jllafffgvuu={U`={6 YYY&LaJ__$??ƌO-D \\\444ܶ?޽>EdwM']~}KKÇ!jjjr努j~~ׯ_\\\?ct_ n|{FzX$'wrP`QU=v*(!q &&JGAw7::z(8r---RRRjjjO&QUU=ߟ1),,$N5%%%ά|2B0xrM6..NCC#++HOO:uAmmmQQQk֬ŅÑmjjzъ|CCûwBrJ///---vvv}}}???7lTVV۷Ǐ[YY ãsnNFҐGtcǎ}۷o{BWW^GGwT/zz_TѴSC0cco_~%s/!/ a1 ]@;h04kW5"<!/GJqqEf8AC^߾}[]]X!..܌`Ξ=;uT^^^`h4OOI&M2RPPCd`Q?PDDc4mkk+((($$cbz߿Ο?pGGÇ{jnn?p@oU@U]]]nnn}oPʈ;PR; $oEBBbĉUi$/'3]>~).?5ר#vI}pT9F G7oFFF!!!ic݈ /^QQAhcdOi2qYYe7 ϞeP<(x*_IZeemFȟp>dؿMMo[XxQJϐ,[v G=|="cjժQa9%4>#F̘!IMRnٷ/Z|.e#mɬ}SLBV@4eBJxI3lii ($$DQQ@ ܹsGEEOGG'!!Cf)66v֬Y=Zyxx;!&&FMMm„ ӦM H[[ b~H߭[ KIItwwpSNIKKO@B@mm+m|ic 휜555=bcckoo9Я H")`e1aRkNw/$իWp/_^\\&//!_e|J\FUXw7a SRr-+klؑ_0}%K.UGi'` (bhi##E0y#yBss3;;իW[ZZB[[g&gHv#قƈdLT/x1wB A0 zk{pWXJ/x“'6isrR_?_/ލ߼%ʱH044OOZqqqhjʌ4b߿_344$vmEAA4))EAK4H~-֭[7$>k dN v`~C(++^E }Ca]z&m Ƭmuq Fc{{~/:zt՝;H)a7m$++;w܈Dd`J1sǏ4kŤ" DРBXXXssmی%ߥ s\ofFY?22' Y\)"iFƈNU;9=8ԩ!P҆իoڳG)BSS12444##cƍo߾{Raa$Dtu55e܉X *ֶ`,dM1'P˗h M<ظk`>FffMˆ H,Okk+kׯL777kkk2A?Gi 1:""1oތq7cw))Xqon?NrٳaÆG\\\-[6#M'y>DJ]d`W4ud IDAT=3WRr}#*yicl ^brrrQQQ0 c w$0a(w~20&ЫV戍?{ GgtEEE ̜;wngg琕 vQ( 200(++N3sWR ~F:$?ۦgzhpmiY]ccP$uufk }6E Jyxrt>j 0+&&&׮]bTp87]aa ʖ4YY?3Y.hjʦRu)!n 0FtABBaKK,D;|8@ϟ7Ha|zHؾ}L0ho1yݓlll>̙[n{ ( FߺukEG744{Ν;? 66>LRu --90cQ?cc?3; E/HanfvG^w@tcD||||͋'ϟ+[ 0ڱcGGGr劼<NZZsEj^[*#a^".Pj<Ɵ!!iGD`Ei{N?o:׍]26Vtɜ"چCaa->,~~JJb4wPP 0~RPPIB C|c<{aC33K\W5╕.\0۰a*Tz?oތ{,'A>|P g=ԉ/97{aoL)[AA 0 ;v,z4=!ҥ*TUCcJzz)#RSS]vuuv{* ףEEy^-?iX]ŇQQ_rRDؐ>72Rysew098>QR[@'z mmŧ*f1NNNvq8me+*&4Blܸq< a0\BB1ĸ[7{F==zz;xp+@g V {[֨Si-iׯkH!1LjǏ6&N䖑RTURSTSTBTYCCw'IOOA`&9pn…ض3gQDy0!/_ݼizʴe˦ˋ}|ZsLeggMO/Tq+mg !8 TĤ ȑ04+<|/pECEEU0FY''Faa^J [[ߢڐS{8 @P Νqu]IT==w~STbpYjI͛6cG*svua} RSbn>WQQttIuep8ΝOAZ MMM$Vρ1BCw9}:r$ރWPVU/UU{O'1H~~UXXVxxVGGޛ|66@klm>?y҄9ȚX,Mx<&`hǫ_^:IL̗/ll,3fY; eBzziLL FzӦ¼/_cF4 yy={nؠE8*֭_ߔzA"{6Si: k}<+((IMmʙ3k׭p_6x<lM[.I/u٠n,A||==xCÙD4c*A A&_i-Aimͭڹs Gc=KNLqUϞe<53s͌A,ׯyx&?zqp8c *=~qƈ 74cT^^ٝ;KJ R>$ψG0N$'C@_1Bښ)Zw^^={)جhǎxpFӌ]]wm g2z6<~֭ Ӧ⫫AEE5==866IIAEE1bEEљ3&jhLaccήƈV^u,ZHL,5KF@cE\#Ws0 ?xԚ;Q02ӷ^Ll Z7?AeTL1!mжmzJJb éoPQ)71ѠzAv Ul@?$'YZj !@rr…#M `7+^NA1X,~߾/ݳ}iL~~UPPjdd_b߶KU,#)b ŵM'r=z !aF䧩)]AY!qu}ՅqcCo0(.e"Nƈ`SFɓԯ_}BA1gdlZAAt>/ƈڠbTPmII=O b֭cA=[688qpOx9:Kp"IL,8dkG"φddut)˗_/TQ;mlVV6xzgXXfll;;3NZ3׈@U%JH(*ٳTIILII G'߾VSε2 ?T GQQ3Q.?/m15ESN/beeٿb}n`p?YMjjSΞ]LjTQؠlݪkl|3'b~*CVVXH7'#Ӄ۽;PYYz(HKKǏ?]#L#Zc(, LHϢMO{|6-*_Hx֦McxJ&mЯ_u<)+KSSVUU2((B͞-]};HsX?-qq.^:Necc%};0F4 ۟GVuls(!3lfUU _mƯ_Ot*xy1C`)$ :uMΝ9}z ??C4k'i  ILLnHH-2=YFF3/ cDSrr*X<#!GRRQXl4\dghׯ?JI)ظQk])ql"K6h ffsc_ٺUȃx][:>iCEEӡC[꒟~99C.zFz #T\\@BB`ŋ3uu>z\;nݲ?H,bŌ] U㰮tqqmUU3l@'k~1АaeeɩXRa`{$$O0AZ `g YXM,tѳg?~ܹc=89=ٰaޥKXxjEE ,-'MAZ1flPee3 _?6$odgWP0WSQQ#qׯ=%SS!1S: 7WQTϟg<bc{:,!y󕋋dŋf#Z? )(MM3$>SL]]:?$$Nܨ pή()L`hGaa5=oa^BkkK>?koVSŋ쀀UUjjSLM5d`>FhtWyy@&++L6$E>fDқ75)^0ܿhOCCہ6CZ `}VVN>`hGFF%aM46{{'ݫ?>w_q]s ϳ>|(]~0Һ|= 0udEEQkkii!A13EbI@ {qss^i-n61es7ի9GZ? țߝ=v۶cC׆ev͟/? G=7xlmhk** kASLb84~ &&R)hTU%YcDAn݊KK+pwNǏSxy'jd`hGFFp,) IJ çOGxznd޶/aaeSN]q.I@M}m?Yl$f]y4=;\SS"99D֬CS;fLنjݍdk`ш|\Ȩ;:Cgy{o^J}tAbx>s ˫RTŋ/,P`p;w$'o[7XxCDqc4 8[FF >SSs碣rllS$ڔQ4Ex8oO `/ƈFWM򴄄11F1DWfG_ 3kSStKu߈l?Ȏuw733'@4ƥ~6Ǐ`F?+BB)eTU%Y1 ?~Ԝ;srF9aƍwK*0Fo тW_"ɠešݪ(ԏ{AՍ}54@@БޥXT{;EQ rSDE^(bED7){ ɾA!$$6;&kdvJ`Q9]]y++C]]yy99 n-,h崴/ʧ;8rDeYG%%=~O`b4 k[zm1z[rr'}zOffyp"aLVVyHH{H։WΝk<m1q~4(=A\7asH*p8p NQS͟o>01))8@>4r[[#RDۊʃ\ߐHmQQ_} YW_kBKE4ЩŨ֤6niB?g`0c^}q𠭰0>U"#쉊J tZee8!)?gM_ h ёgK&"")+Օ}r W=Aux-x?**>~yyҦv- Sy[xܙ3?ƑLLT󫴴mH)(\nFg,]:+&F"ccfMyT*ҧ% ۖ.VTTO=xCAA޽-ERcCA un *AZ 5[[S]]y}}Eqކ Ӧݻ#"KI)Q(+K8`X viڶ͊01:A}+f6 EE5~~XDj[̻68UG"*]GRDE7~} !Ai B ѹsϞ9<0 Kǯ]{BJJ1!@(O̲Ǐ9rC`$RۥK֭ Fqs]AA5jbck zKdz>Dj[Ǐ}jd`U&M>{֔I!VI EiTp8x͘a@$J$5$..Յ Ka3 1̖-+#KM-=smEEL+$Z, EDhOX'lKVBA*ctt ŅW4xE$1 񱢼ex;wޞ=H֨;wަhi7ox8ؓu:tEUtViKiPw41;]7N#<|+N/555ObbKabԫ|=&f;?6 ~sԒg<> #,_ ŊFZO}}WBCɤ4=$$143 VV͇{= .okӠ1cԗ/4;kk㤤B2)sr{wP]]s?LRUNO/;w4bH {}_'Dee36oϮ01⮶6JQQ.FW;HmK^k ㋬!$$}aaѣ7CAFFʬ,36[[?{U#aQQɫVMgUFFJiiJP54lzkLu, eˌ~#.Ri oQ(+W,'/Ks:uEw:5qc2~CB--eewOST=Z)5FC:o0S)ܹ??120P#GHl@!., ރԣGߢ] #,3%򩬬VWu^^jk'MҾ|yŜ9 >4*)IOn]]ymm9S {{R!Xx,Bprt5' kIV aMM t]KW**<<.>y&FܖU-}XJ8G1**#om%\y='"$7uxx+&U= ,#7 n|cǺM!̚=G'j+)Iڿߦ?("Q6nb'Nĸϙ4Iױ@@=PBbsBqXmmsNNHt=}HZ\\:U-,sQQz&Ufdl""dFORKS(*4 ή(,) ё,VvKC Y{XXzz Lhnn߰ᶹ(g͵k/_ʊpT?Wq//\ UT(~~ϝ{R^ޠ#}ܹ/>[B]]-sAII_BۭĂM9 :MzzܶmVL,AYYyyT*mPA uAutې &\͛KKԣ_wo_H}}KH'H23\sQ&FIb䎼*,SUu6:pvv-~#Gׯ_Adǎ߫(?߿ظǵD8FC޾ @͞mtݔ):ph) "p::VV7OՕUŒM1v:z.kabbbCC?ߺ S >ޱy]SSUVwN>2?i4˴14R]݌a..Y2~˖陙幹S66guMMgyyChhݻjUsu(idVB!nٲpsrspx?N*QՇXv%%wlAXF!ZZ{Yjzc1 (Q^NR,ch_/\OP3CB>L9Rl|K ŠӠ 4 PWՕWUFיS4!oǣV7okh:"ȱcKgԒYμ|0dr_X,6:z];H|ص+v(~+pSHN.beJJ>h4$-dSSvnFE}IJ*d3?720 uu͓&i_2ޓ߿W3IlmMttut䵴ر( ¬IH̚e?Cr0AѨ߫illA,edۏK:%NNc-WId!!&1-άڳg龾o.]Z RUUN>Ĉ󌍕 sX,Hx8J|j[ֱ2~?<< ApYt}xxB=(0p73nl4 /]^\\F@S8+~!:/^Gy aa=<]bzPVVVm=gq X: 嶈ڵU\ #36Va0܆c$1sQRGիwo`p-W|\B޻o߼Vrt[dd,Y2~HZ]t?wG:g!?iPQQ-iТE &QTlja{=?#,`}==۷r6JKJ=ʙwPطo?bbsowqQX.qr99xȑb.66Q(:޾}Vk$T;;{unvjjj[yÆ 98?̥1k/]zFQ) BWPik˱M@7a„~V 6'''^Ә+W޿c{f]]zMBB g>IL,W߽g.'=pX==ů_###Qc%%E#"^hi!w/+$[v֭3{JLbnw0eeg:ؘpi*B yMq$RkAAA$xttMMU?'1B$'‚cS "]scsGs@01 Q% mӧ3<+..EUUʕ@pun2}^eV aE)/jM.eE_g<W t99胞ҠEeut/* G1ǏG{z.dCYyPvvLjj\]Ξmk3<ğ|)ڴvJ`bG+0e ۪-aJII=3b+VLts)+;9wɹsO 19~}Z|hćX,K?*@K b~~Uuu@BBD[[^WW~D-==mm9EEIACѣ89 ֖*x`|A;p3g:իV]4IEp8ql3'B{},Nǔԝ?4 gE(IIѭ[gˣB)VVKzz C01"#4td -^|UEeի+f$F4f*$%ND`oo[L҆ #\,''TUUZK!5vq,//@[UU[նw]뗚+:2 ;P4ׯw2k2zB\@g  cBF LM PyhEDbGѢ#GܼysŊMMM\mmmi:z n`0ZZZٝ';wǏsrr13499YFaaͨQlё2Q_xx3 846Xsghp9?^Q__ 2jԈիGcuiius5g EkjYExuuL#+; xފRRR477(HP( 窪GQUU]re}KEDD444޽ `XZLLlذaǏ:͛7111fff ^^^hA sM}}}YYY//w磌1СC=6a„jkkX]T*UJJիW(++ڵK$hڵԴ):::ܐE߉0|ݺuMMM_|;㊊j>}FYEEI !޽Ig:I:o( _߻ƒ͑N***^x@P54$$%$q׃n+W\jUyy\BB?\paQQQJJ޽{srrs΍ SRR}6nܸ]vTIXXۻƍx< ߼yݻB7v>nYYڵkDdprr"H׮]TWW3 ?7o $&&477#lٲ3f奤#INNh4zVШ233| H}}(?0saÇ) ~~~4# ?9}؜?x0𡼼J-=Ѽ32c뺺xL 5Q]]NߨWVV>555E}SRR NܽTmm-@8sL]]FkllR=_pamm-(1BޞDR_|I0III.(..N&wܹ~PWWwikkk, aaaZZZ#A޽E觀Fy}!geeE0^ϥ:::? W J'^Wwo[;wwtJ[eƌSsCoCȿY/_ yA?IJJnذ!--mӦM  XYY}P[[ݢS)))/^|AYYX,a& "%:z\!!9sXXXvaqO}իW733{Ջ/͛Rhq--?~tӧiӦ8q)8::#>ɹ[`AXXXuugϖ-[,ZZOQVWW>+!#G^I x  uz߄M<[EEEk֬Ad z _|ugssݻMLLǎ{ɎaSg+ ;`{̙222h uuu>|@ЊǏTF֮[ֶaǏϙ3 㶶:99yxx$%%]rs677>}zllWHNN򔔔:G/z:ɓ'766y&66>Z+9::M|Bar!lllH$Rhh(3WSXĨfCCC___of4XF)#Bp8;􌭳wޡP1I|jiix @||< T* !ndX!L KII߿":PƇ.\ܫ bǏ?ƍxxϟkiYduQk`8X G)ŅDFF_@yyy ΕJt}ޏ?X<ߞ(**\N]d#qemm-}@66&}-)[\\FFTFCn!9X Vݸj*7 6@òĨf%%_wu%ZoriiӧNz]lٱc&%K,Y׍9CylEEEϷ' gr&!bς99%}*%G!߿Wq)vJ۷9\BBױ@<vpV/ù1ռvZǏj`8XF)#bll..''uVÇ[YY=y$;;[CCcҥmmm{_UUU_!m۶~i˗/g|>>> _.`Ba0mmmFΝ?3EO$BM]]6,oFx<67KQ ӧ;Bױ@kjj_5=6X/)Պ IDAT1b8L&&LwmTZRRR6JWXXs?bؐϦ&www###MMXZZ.^O ,6QFlݺP('Og"3HGO&L"$$sAAA˲b111fff ^^^F ﯯ?rSN' ӧOA{Q(999"AP%h?͛.>}TKKKJJɓj"##uuuD[{{;Í\~.55SSվ.);oݹ.*˥K`V|%Sꆅm|Ve...6;oeffˣwEEE999LfZhQ]]555 ~ǏbccV_jjj!:::{4nmށ,ׁ@ Zׯ￟ m  (''gCʊ,V[] 422 0ˌS]"ҜU`\'UU5쌌!OAa;5'mmOY[#;zSO}l^VGG`AGc2:}b{ыOni*8g_9kkc!!|ttАds<xx^=iѼb,#lsQQ>>k_1" 䔑>@RRٳ˖-SSS[dIO33USSӧNxzz>l&&&g֯__UefΜimm=gΜ}1qЬY}.SXXͽ8Bn⧨(u|^1 {Ą?9xWcA11⪘POO/_ZNYuyʕ>5Jϝ{S}G;x UMMΝ26nuhz||u=<y8 ^_I8hp8ug޽޾JCCcڵ...VBB{= 7B܆cmlLCCYLd::h%%ujj2܎wgkkxX^Gk+7n3ru|1j"\'?ʽТ=iO'h4d'O܇]s&Op8v jj2}9ݻoO\(8 &FA޼jj2H6ݙ2Eg߆"Kjj2/^Y|# A --bd$K1|οs<@P/^\puh={ni…~~.4Z zaQQKw|'L_Wyz.uLaa JG[X3@9::  /*٧~a&+cTUj $VT{x[7el#^2{;{Ç,޼94fh݆ABFF| ϜYZ2c);i+$bcۘ6jtQ_Q(-[u,CNYYEş>u옃`zA_`#1ѐOS廉2OZ<=33ˮ][-, 8p_m ܤ+x ^c5Ǝϯu͉1.:;[n^6!jieBfXJ׷H,2||^]TK0 '픽{];׉bA_ݏfggeV]]3}TUGx[~={#Gg6z怋4Av?b٣x܃)LQQb yv7FC%$yz.U Cυ^{ꔓ8/01 hЀݏD\\xL$& D >Ǐg0b"׬akhǵkdx?} |`#ٙm[^5J7-F {O"Ν{z#+W3f GG'3هWS54lzkL?~4mWJJK>'lӦ UUTFFG'wOTZe%7hTѣYPUV6޽-:gÇƌQuPC L CPa0[[Ө/{Zw9%%I@IIg$&llA7oryiUV(''븆"A1 ݏllL\KIabypi]sa6*?cƨ;lkk*$yAR#SSU55.lbTSzwlU&qZAR>$$@ٙ10`0f`01 t?7$"".wJJ8!s}sbN)0jjBC?߻!;Ds`m<01 bt??ff+*Jrp4o/2BCtT*ˬ]8|Ѣ1KS\?Aˠ~4ŋϒ -,jk[[lڳ'Dj ݂ ѵ8)j\\Fhhbll`LC_u׽,`bA\TTrHQQ PVП&{>''FD$5[X8``ȑb Aq`~dccrއ#G؟I$(?ȑWVV t0ɩZGG~I5JqAl  :yL@矗 ,?ӧe9~^LLefM~*"b1?~WV0sUU?[{*~SV4GF !:kttOG̛g e&`bACً_eC`)St,! ~T[?ݏ&L8RTTCb1x<A@GGQQ %%4ĉ<{GD$=}KUU[JZ?N ]y& ZIo{;AАahxYQQTOG5h2v?*I K R4aSuYOG2ƍ5U^ޜRuu>Ly6Lp̙p{#*oLPl'p'Q Ahg \ˠ guOCǏ,*pX HH }Nr]S5>>Lkcc2{h ^q Lu!hpp0 };B[bؘ\))/ed^"B?^ShV@ZH-3uIIݣGߢ?.&L}sᬌAPAF>T_e䰔O8 ObjzLsɓB_GGG/!+$nWyy=R~}رj>MNNL,fee`ee8c\lH !ݽs_rc< bwp8kf2ϱJKg8M"2`0'j2|q8 g/۟L86nםi4$%866Ôr9sFϛg2q^u#B>.ectv Q<{#¤I' k`0 27oi? 7ݟm66>İ,x2vNM-qu[1roԽիgҟ?OjTTDcՇ 1!BMII"ꊊL@ ~QvKO b gAsƶ~Q&OٱcOzʍ(\tae^]Pl]!@mmSNN|}j^ʎM{2jdrD++ѣmrW`bAC…W@8G1+;o߼۷߆$؎GVwlbǎY>{ǰԔq7,9lsyx並fEx˗Y::T*--$66-66=%XTTh$mOVVCs9x+ KK/qqx? PFF̙~Jc0uƁ6lW^_2cƩFTFh`ƎU w^LJo#\YS"5pPtX1>>Dj"ZYNn0nj1[ hh֖"Uhjy{X\ޜ˒>>k.vَc'OeXի֟`;zԞJJ%$u-H!eRRbv͙9@MM'B̚!hqtax/QuuSDD9h4޽7ee^"TJup@f0z4@8"qxPN<̊M;RT*mY6fE`bAC΂T*& 8 @hHL~I_֬bcc>vuJEp8,<|BqpxrߤIZ֬q㝖6&yի V񣪪Jկ# ʸt"(++˥9"77QP|I$R{CCkuus}}D@B!+V\9|x{ZRR3ajCC[~~Nݲkk$$=<,ǏW-*c5B$pf6 aaa--Ѐ!H$ n )+k(( Rh\#%$$" m m mmçOg|?~4YKk+B2\9<}:k,Ou~{zg<(##&O{UPPؽ{7עJVVV^^^II_ 8|O;TUyB-4hccc wƏPӧO >|ҤI vﯩ)++iӦzɓ'{V|#**JII P(rrrD"ÃB/UUU9*++rJzsHR;xuuذa:qǝwFBBB7o/rGFFD77vY, @RSSSSS$,,]VVv <ԔC}9"VZZEEE}.O--{v9ƆD"?Ͻx񢢢>+W\jUyy\BB?\paQQDIDATQJJ޽{pܹqqqaJJʷoƍk׮J1|O>Ͱ͛7޽tzno"t{xzzvSC;ӧȌ>SuPf͚Ew_ /^`$`bAĢ@ 9sF566R_$:::o߾$1JIIAw TWWr,@||< T*w{+Q]]q/N==2qlliPWW7,, }6=={)`O.\X[[ыh4[|y!%F=SuP_ZZZ 7"Lh耷 hzŇ---_~tqq)Occc&ikk/; N]!$%%7lؐi&ƂthzzzBS) MMM EJJKxk]v/900MMMGGX' &!hh}A immh֭ׯ_2_ 5jH̙3edduuu>|@=u -ǏwaǏϙ3s`V΢KR77ӧOO:ȑ#...;nsԺ իW͛(dxv̩#0̬YBCCI$L&SMMM7zxxDFF?~LjswwW^ ihhy/vڭ[<{,::ݾ`}̙3˝KX-[T;ȰxddZ$Ν;$ŋu. urrr[nSCw*///))y򥃃w{ u۶m{L6BcA>:BBBzzzP(ɓ'#qi---11 &{ct}555"ގ;HO?oҥK&&&d2ApDZf ;wikk۵k#,YRWWn^ av/N&;)))Cwygʢo# !񧢢lٲo3Ʌ3j([2J@`v244u lD^qQnnvo:LOO6mAAL  %!!FB XD"ۛAAO01   &FAA?  '< *^Gvaaa^G;44:D":hpUU2C腰?E  '  'AA# `bAAKFIENDB`XQilla-2.3.4/docs/simple-api/Item_8hpp__incl.map0000644001725400016040000000051313273140075016330 00000000000000 XQilla-2.3.4/docs/simple-api/classEventHandler__inherit__graph.map0000644001725400016040000000175313273140076022145 00000000000000 XQilla-2.3.4/docs/simple-api/DebugListener_8hpp__dep__incl.md50000644001725400016040000000004013273140074021057 0000000000000006c83850348d537cffc649c3cf1ac733XQilla-2.3.4/docs/simple-api/inherit_graph_39.md50000644001725400016040000000004013273140074016367 00000000000000c6e99c116d41352fba80935cf8e8bf00XQilla-2.3.4/docs/simple-api/classContentSequenceFilter__inherit__graph.map0000644001725400016040000000044513273140076024034 00000000000000 XQilla-2.3.4/docs/simple-api/classSequenceBuilder__inherit__graph.png0000644001725400016040000001400013273140076022641 00000000000000PNG  IHDR pdybKGDIDATxy\GgFDAџ RҠRG<.AB¡XB/-P Q$'MIB#¼fgdg0 @ ѐH;$I 1@@ b Q[[}vC!111Ǐg8RCxJR^^-qICǁ#/=>|?,XNKJϐAG^...94 "hD $bD AO<}2!w%999yy* =\bEu͛ R?85kVDDDpppkk+ӧO 矼---hhmmR\wB ;vںu+`۶mzzzἣK,Z[[3{{{͛7N "@wwwXXNXXXww7AӧO5j>o.\5k޾}L'66vĉ#FX`۷{Ԇ/Ɗ fhB}}@VVĉ?|uƍ^^^gZϛ+**gddlKV|zzzjjjLLLZZZzz NNNt:uttuikk۷/##HMMmΝxV----[X,Ϟ=/d2޽CAzp޽aXvv!0`̘1?qppxeeeٳmۆqttliiINN{ɓ' x ammm~~~^yFhC~h̘1x^C+Vv;4M숉GۻQWW۟҅SVVVVUU͛7o˖-j1LĆ'Od&+zkkkrr`g۶m={gѣG߽{̛VQ牫k[[[JJ ٹ-)) ܌aŋ={VYY9mڴ(_xQSS?333N5}4P}AEEð5kl߾/?y䆆<}ʕ3gA_aXWW>L&·2LSRR9qt^̟~IG+++Ŏ&qGEE2{¤I<k1 99pv#z/pEQ||T*~bdff.]/T~ߜ>7n011rIIIߴ:Ox.ttt=f000J}V^^N~$_|񅩩)[KK˭[|wtt8;;UTTs_ܿG(QWC]]Ǘ,Y cƌsݻw^Q:::\nNNo xupppll… ###z|cii^VVv{{{C: (>ٳg899={N[ZZ)HOӷo6<ֶ%22ϏWx۷oEeezd2Ŷ%// XY~}XXXAAAccKvգgi#.qƬW? ?CuuuuuuPPЋ/DB6//KNNNYYYT7 i {P]]ݍ7AQ! `ܹ:::0rrr...555;vpwwQʊf޽FZ/4B=BQUUmkkԤP(>|]:---UUU3{9tШQƎꪣ#4&͎511QQQ/'喠>C!ֱcf̘"Ξ=`00q]`X[l3fkKK /tRh4ڄ 'O\PPKu&xtފðr΍7qqq1})I4 +))m.bIg""">\= "3Xׯ_fee9|"ܾ}oѢE}$Yښ`3@ b&@Mw7!4 u&dPK]},~2\ZZ]? 44%G-D'YTWW޸qeeyW>8pRee"7o;vX1վ'(JRQQ Zc@ aW܏k%qܕ+gð cjj\ $eey z:#V70k pA~%tT}@ټ9 7 rr$AA_)mHb+F=(JI!VQȔI9s~Gd/RRWVnq#DكGAA9Fh#2 Ҩ9(LڸqIHI3eeOi/^0_qP4c 'D4 k櫨^tvv|2־0L!a"k&QRP(*xHN?^N*)'8xɺuB~%ŋ$Jz5{KN56>~BTI3DGoܸXOBBl2huueorrtLF54T_QT&儆.7 ڷ$P4 &P(u'QSS]]ݑi/^fsԌzwyUWwXð3gn.]:h9ҋ.DCC㛚ڈC̭ؑdv&$ASܛ77ypcmmE&hk6tws\][Z>-G{!)Ʊc+W"Z`K9#r$Ǿ}E׏qM5 @__#/?L|Ǐ>zDk2 k5h LO, .^:rJLZ$^%1D,:ˏ?:xzZ$`d=IRҍ={ٳ{Z$3aNNǏ]DHK ~__K IID';{M'Yn FEDD|Z*$l ꕯN6r˙3vx^ɮ!K2&´i]Tw7h9}Ne -$v0 @/Ɲ>M)+{a)6[ELa쀀Eˉ" @递GC'.osJ$1gQf&ڵAAB76.^ M2bd)*}͌jl|z1 :}@)|.2{zU<1ҟ L.WZ6)&׮]"ZD+I}}Ӕ)S m*@ I##&L2eѢEDq@8D $I 1@@ bwttt2 mmŋK{P666ŦMՅ~:/! *]I=Դ{nmm/_=z=88h]"9~aǎ;z]TUUuuu0Zn[T]]<88~#ZTo5JSSsҤI \TI555 "ImÊadeesεh4~XWWtOl^^FP(EӷmfjjM I,,,h4ڑ#GO~e77b?i&cc 򼼼[YYijjΛ7oڵD۫.[ VTTglllddu֩S^}ڵvvv_Ǐ/-DEPf͚_4pqgX7o\hgzzzbb"~566:88 l^q/ VZZZ2Anjj200ƍ7n\3337oƗmB5۷BjPT(p1 a{144OA̙syÇ3d2gϞM0/P[[ pPmnnV{]hddx[<<?322544lll|||CǏ_n . @Qŵ={gffR_UTuY,VXXŚ?>AAAxA##(ADi聽}wwwBB»w&Ls@mr9ȏWkL2\[H&@MIõְ4 "hD $dabNNNII * 2$$$իWD}֬Y3w\UHy 4 "hD $9aT 1IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_17.png0000644001725400016040000000412613273140077016476 00000000000000PNG  IHDR%Z;bKGD IDATxmHS_ϵj̭\>D^T%"{PJt=("Q*A&Xa΂A$)FH|t>4ul9q`^չ?~sϽBЄ05: NRT*E O```YY}Iҏ?.$Pyy9)H^[l[I R0t? `aCvxtFAAy%g  p_b֭[ "ZǏ3gxQ3¢i\=H 2<::ϮuH$rŦƾ߾}ţ-k'D,; @rq/X,VnnLzzzaaa{{{ee%:affjJ#GڵkrrohZ\NǕBgPE(V(ׯ_w?33˗7ny{ܹuzzzBBBP{nn022CBB:;;m-XN{T!\ώ;x_ь|4;;d2gff$ @sN7;;`0X,`޽*JT&''߽{͡ j@)×.]8}JrLk#))IJ$Xl :ddduϞ=g].^r=twA:u͛7W\!2NIy}6 6QA(Uy ؃Oll\.G*++ /LfddL&Cgtjժi#fm|}}e m@(r8LV !OKʐn\˶tAtֆ |!vD2 ɰX,"$''d2>Ot .6s8fѡ*3 o`Ba; ҡXCT:th4˗/=z2HRO8TF&; {t~u$/N0t? P Ax*Ϟ=0 $`0 aC':?q NIENDB`XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp__incl.png0000644001725400016040000041351613273140075021522 00000000000000PNG  IHDRh%WmbKGD IDATxwXSw$F&(ܨnqժUjUZŁ[Qqc]lq {My8m^EDsqyθm7(.::N+ 8W.B@g@ߏwhe 0/_4iޅWYY@-Nk˖-x^bbm8W@p_ ̙3plO|| RRRaÆQFlڴ)77;믿8q"ϗ]/66k>>?R!e3Al۷o"cƌi.ÇGN6-&&f͚5R}tpqsuuݾ};FjI%Z'A|||=LMMz|jjg bݻwGQ4,,, X,7nܸqb1 O>7oްaƏ/ZjjI޽{ Wbb^RRҠAdwp8ǘ1c&NxaP cccg̘1z/"h"Ad'|rڴiF:<'&&槟~RTkD޽{XGM6:t;E$5 Kҋ/N>ɒ%Mj>yFM?~<}q8p@$5ttJh)֕ӳqo&D2sss!xFFF+W>~3gΔ{ʕ#G۷/55ɓ\._9w… ;&)t 6 ҽ{wkhhHMM8pwUUUxxݻ_x!(ѣ#Gl,\vMvϏ;nݺǏX,S[[kmmS.**O/=&OIJJ/TTTzW^tϞ=;}&;<#l7vڵsϟˆ5] 'ZÇxzz7surrP(ab8>>~ҥ4r֬Y111طƎ1tPϟˤIa_z 1Njϴ b6lRߺuk}RO&… tܹse?&w!]r#>>^"45!!!Aֹs:::%%%X BfG0__ӧO{{{7`0Ə/{N JJJ>i155m?3g'Rظ C@ . >:::999nnnɱmJJJde|L<]EEeIIIO<9vؗNō,--[0t:]vwɝPT$(++)7کH&%C#@H҄E9sɄYf}i:={޾}{ʕwN"!!!`֭[nڿHxO}˗/W^-ۯX^^nff HYY>{=gΜquu s[g}||8`mmmkk+ 3믿ZYYa!RRRb,Y}ig344㫇ij5~H&() 2 D"J* TF*(((( HF$H$"v555e"Q A vwMMU삪_} @ IKKSU oTTTNNNx0s]dT*}Ǐiؑ8v… koo?{lXL BSr{`M! ]f Ϗm'{1cƂ VZ5uT##'N3UUURiiiiTTTyyΝ;L 5ֻwosԩf~PG>|CNNΉ'#///YV_$e;B1+=JQ6,&!͗H+wO.. ] D"pD!vm[$Ad h$QE.2E*( d%%% %% G&T'Z$>>gϞsQBBB3*444<<֭[zzz{ ]dWo7gΜΛ7OAA388XEEe…;vPUU:uϺu박>7x7o7˗/?x DiӚz,|L#@4hP\\\N$E"Çkjj6oތMw^惓ի|ϴiӰyltDvv6a8BAG Kax((b \P( %ٹT 6_N %\P,44ZF"I$ D"bdJjj*XTPT E2B (ji)))jh`NCC;~"ٴtn|UQ`UTL.QQ*,ˋ 5ܔ}ґɝKLLܶm6 kJQȆ.6/Hbk^DK_q8|XdD" +DߚD$*UTd2@P"I$QUH*HD L"54H*$QCCECD"ՕehqH$d1jfWT*+rfu5[$`GJzzdMSOlhL/,$:TotzJJ.mmZB*Elִ./Kl>b'H8+E5\s8/>/ K\*D"jjHD55e2DjhՕId 5#N@0šZj:**CCMT&J)ob˗Ypx6PWW5jTKvFQQᓙ6#\".Wb|'6|QQQ`& }:#APH*$uue ELP( IMMk"I LV% :NՔcc3 4=בFӢ4 5**66ZZZVjNЉihhhi||ɭ1\d>*vqq-/b2yL&5BRÆlijjiijjjiijj`hi~yV/biIIm~~uAAU~~uaa !nVt6CihZ0!$&MgxBG `x,X[ 8#HKJ *󫋋k-::zCvǒ6tYtnʪ䖟(e(%1 ǏXQL&BMl7^@ 8NDlFv6#+]c'DDSSLLwpglΎf` o+ÆHh-=2zn]ӯ*l?d Ns@ >_<'NJlFqqD"%MLtmmsxXYXX7Li}HH)lۼ:n}}Ce%+;Q[PSiհ(*5 ]]u!L3kw``Iii%HT22Ҳ51-Ɔ*/).Ƚ KJ uu 55 55ZNmmCm-WeAmmCm-djzz* }}Җ, Z_YYA`f@sp09:doooӉ,ee#@P6Wӛ,74Jms <]lAl=l.AlAr՜I`$45 )--UL!'4G}ɻw%ޕ45iF4#;;CuuhC57;qbv[\_ ?P"Μ> ]90\8Ma fM G,7Y)+HVZZj_ZZ'۷ii%iiޕWIɉL75ŻL߻^b6u74"#ű)S-^mhm38DZ]ͩ0jvu5U]ͩbWUjj83]] *b`@4FFZKu].&%% KoDMM5[[3֖ ="Jy^=n'/_~򠺚=fUCNF*E955JVU`0eeUUzlm@AD% e`@64ԤR) E' 8u- ^~]ZM!WUUvvi}d%Љ-Yr7"ƍԐucƸX1R |q@lN6C JzQ*ULkX@+,y<ٳܔ*KK=\]`Yy"Ǐ>ܩŧ#zY3ƆecUQQ d&TQ!jLLtcX (]Y. լ+77s773MM5kD":tƥK q,C*E}sr*||Wlc=.EѪ*Ne%`՗֕֕3B1 d##-##m##-:]F222660 Cw: NT>yiuu d2wo>},tq1UV5@sNH޶f\:kkkAR4..cii%+V qu5Ż(6`e%k**))&X'tte )ffY]>@poՏ}LN~cmmF>Ykh$K*\5:ƍ#IN޽Njjakww":H5OԖ3JKKJ1*ڦ:&&:&&::0  mxcrrÇEE5ʽz{zzxvN+wXRllzr/d2 ZwG{Xϯwr%%eeEE5EEEE5,-!qRQ# |$))fgd)))yxzxiF$*] cii!Zޫҥ>0riDOz606ֆh7:*v||f\\FRRͷdaۿ Ձ@*EG@P~}\W BCccc3h^VV@'fke SmO dd5LaTffzz0 mSGňM ի"QOKOOۡC:¨}\lW;:]7,;|8T…`DKa2XH͢EoZXwN'LLz}||fUHݦ="] uw5n\~w-#+wz*x} `fgW2UV#/R,"Ҕ-L@]:Rpb2IDzY:888@Nmx-:G$N5aaq/>Ѵ4}B 2fdg3dkjaMRS66T&ApG}=7&&IIYgOQ\F:vC!{sҤI}9x==rpWPPwQA ⼼J6 "cagnomomMN`޹vnڳgyDҠAvCtA(:aB+矕ir*ѣI54Tf8pXϯ˫˫˫k@BQZ[S t6 8۷&$dww#{ o^^}|xjj8N=:z4HT5}޼Arpdrظ)6C2\1ekkhmm SqqWTP@|}y{; /GkȐnwOĻ6T[pdcQ駁{kiA.(WPP),JJ(daogg(Ύy@gI˗o_U_us35% MGG@پօ ?+7N~/I&OdJ(Tl~NNev6 _Y2Rml mmVVD 8gׯ2L''z@ر0t(Uٺu̙44"#ű)S-^mhc@[$yyUX{ÇrP,k:;. x 8}K#"޺AQzLگOKEcI?ø;矷ɩq\z E@)*(KO/,KO/ŦAPTu3rp0rr;;P  HH~,ޞ6cq(X ȍ/?6lw-Te?-qŊ!ry+kl6?3,=,#,=43L *wfL֒m WKRK*-8f\O__Gh#rgƌㅅ511k`f$'g}'5wok]Jk_ZZw%|HM Q&()*L5Z/ϯ:qQd3EEc{ΟemmwQ|)S/\ǻ9wG{Xϯ HC9޾-,$d2GWW=\\La? 85!99ᄤ,ss9s<hh]I$ {wx"ORRcb{X@D7o޼)JM-ͭJQcc=\]z4ur*]&3ECCc^.o IDAT7oy1IItmk?^f88Ж/9';,͛ׯ^.4,GeneApB{R__e. VP^^k2e|Eef>pz un0WQQEXzX jcѫy**kQWNrq\fh5߽+IHX~\V#,,T:]{bɓ biFFiJJ~ZZg%%uqW NB=fC,-. CguĻΣ&,,4ּyO:š/_*HIbH^YgeaD"ɥK)cS[h0wQ2X:t^S]K'T\\{hҹsO^AAI$"EhMl6ի/ RR^*T*_?}¨׮k'y-+9sҥx@Ocm}hRDC 3ΟE&ú zxa6%I..{[2]A N;vD_F]msϵk]KWS9uѣIDҬY PT. @[Hޕ<iyL&B!knncoOΪK]n?~aeGG#+m-[vɓVSE*Immɓǎ=DQ.^쭥wQږTfe?}'OrLxxؚ] hM<8eg3vYm8hs/_s#F.>(,,^$LwXŋ줤,ܷ= tbw#?Y@ #Fɪ//ĻA<,,fboCC/\PPmb C@g"I^.LNW D"A^^vXB Wh@zY :Nzeص66Tk5BBTWnjq]j}6jw|txN''g'&~,'sp#K7nUA@ۖ-c`<ХswNwӦQx򠴴%֭|sEF :jӧ911L===t;@ňM ի"QOK?nÇ;ä|϶naf2ŋ׮|jXL^}h' AEE{LQT ]WU;..#66#))Ah%(xNj#y NիW_|`|uJxWnl#zw-Ez㉚.d'2BܘޗÇ;ԻtOhgRIﯿ89m|ڵWw-E{`M2 &޿2d'2YY۷dkk82h2Һ9 NիV]| WVcȐ1aʔ~xZD(w붑5򫨨0eJ={aOV޽Νo54T}}a26%7 E'w숶Lqp]„ aΝ4!/P=~avvEIImQQmYY@ ƾE ()))D {DNTSÉϼ}mb%%Eۑ#{CM T듏drWAʕC-z\t[e_jժ EERT6" AϋDUxx W_ύI}mBB&Hu0=jEr޾-^4+x@yuKK]:4ss+\9$-8* ;wvs38q=U.PntYNL=o;;5ݻ>x(-l}W=:SGG}ƫ..[VqNǟ#X-N"_FF>[ve0/E۶ p Z g L&7:mTԋCffǻMH ;qummÔ)7n;6kr?HM4),,iH rrr7QTT4k֬{]xQ)W\/ 999xW]ZPP7%%m1ɓ>i7Ac);t@P}{!A:f0*t@KKkz֍7Ǝ+;7//O>mP2dHyy9  AQ;йY[l8ra?wgTfHk]]!ӓ'9gpp81[[[r6mfh9g==?[zATT*vT*i߽TUUp8Ө@WL5e(FF>;r$q,wa}U/:ʹiG<ttt5?kkkmm]vjy󦝝eA;k2[IMz@͟<9kӏ+-8#vS*[ P(vw9oI 3'N8qW駟f̘`0TQ=r䈁k: Ǐ7X,ٳKJJΝ; Hee%'N8{l`v=~={nذEQALb? H`` :r GEE%<<<""@ p8^6/J ,N6'777--{[nŮ?a„cǎ!RSS5eU9b]zyȐ!Ϟ=޺uk;[FҥK_= @c996]\gkaK?V]np NRtǎh#Ǐ'Ur$44bmQQ ޅș::,{ݭ[SN8}tI dffr8Dkkk<coo_^^mĸ( Hjj*B?Ľ{IR6-HK-T&<<_~|>;EIIط]fmm]?!!הUD"jNKKt钵u;wqN}LޱcI{o36^x]zt}&͙K ȑe|MLtsҚ?~zz… =yyy...rvvaN:p8"H[4 /??O&!l#3:>hРdEEŖܢvuA***$տ[[[`FFF-fcYϓ aoo/~; 4w'gD3ҥHwi$K/>""b}ۿζm z]HU\\|A__իWc{߾}+; ==+xkצ:ty޽aÆ5h]]ݳgϾZ-ǓJQQQs5jTmmmKM,L6aT*UII)//{+'KDȰ&&Ad8rdkזĬqq1Yr߾9.1X,]lllsCto ?ϋ~mXMHٳg/]4222666::Aٳg]͛ ޽{6lh"@(*++x-[ fo޼9f̘&C$ .,,LKK6lXXXW VPP2dիWY,P($jjj4YŋΝ;h aD"qҤI˖-MMM<~8l˗x_~ jf'vЭ_M}b˴i뾛͛WT|\g@XhKuy_H$3ya W-t=zBE_NjkkBofaaѿ . ͎qBQt:::&&&2e.#E"b͚5K[[[WWw (" Ko޼) ~Ra*(Z[[;}t]]]rJlǏ-]52 cmXcǒ\\^\NN=BEIhX[S\\ƙ3 n M脄x"|^'''Ʀ^0L?u(((\t O@E/9PRR7zʕC .SW=E׬ oPU޿EސБHę3>zˁ޽l*jMouzѣ3 5rt/ޅ ܒp8vluMcWpN#8wѤ8^*zu55eklm" [@0jKbÇJO/ڽljQmΞ}ݻ'ӐJ_>pQ._?ŧ={_4_~R]׶gnxuӦoɜ;ݻ]JddndccmMH۠Ѵ4. :'AqҤ>n/{ʕKΟ?D"~ Ӈ9e!mw:z=wtp] D+-P^^_[ۀWQ!ihFFZ4IkhZZZj 4mZ'CCcOzj)S*)?#g0!Jmq : } B»ZӑNȅBqy9YQ**a0Xš fe%B0440jR*bfmhl@^6<8}ͣh6iq sP9~|&? <} kjTnsHH$JJҖ S-"QV|ǹ2LLoqҺrfII]YY=Q^VVcd-TZtcl KttԷo[ӧqضm\&-Nk\u+lm [tb(HЛ7*((]Ngv55ZU6[YQ޽L횁jjB++fKp=zT}GIKcy <k.ss/_ UPPbc45հHָ@]]Gt"[ͭ\{2>ɓɛ7_?yr_ֽ2ޥK)W_矕=z] hNV711iiZZj~~ݼp|[|`޽YhԒNooݻ'~D"ɍ቙e{[̝,_ɕ+,)*),)(fx@e`@14ꚙZZhh@tQbԩGyWGG}_ߎsӫWWbLa}<޵&H$W ޽VVVol=x_7//{e_:bDyKR֬{ED$߹Fk>}}dT6 ; T),PC]@QQ+W^ut655koO;}z.2[mr#*ǿhk] MIɻ~=5:M}=hpaÜw7ƻ ɪW.f:tΉꈈgJJ}:◖֖Քb;ݟCkȶdTN())_VT0W:o ?Dk9sN~]VGm~~{wue׮޸ZZZ`4~ۈ=H_7_J]q%..cc7n,`.9X^^8w^ SB%V*E?JabZH$9}cf:ǔH+'ˋj ХLbY EpW^^?iWLK+Ѵ{;9ifMr$4t \AtV) H3{2dc{v /SQQMA 1 $LL\ =N^^ՊiiūW]Л@Z'8}X1d%K|WWyEgoZfw-]} ʕ}PT'Nnӑ;X|ƍZ5uT{y޼yԜ9xU[\,%%X{>}LLt۔{۶r_~F'.:Jh\\ft0W_hJ5lʠ 9tec0=b(8IQJׯ/}GKJڲ{[P=Ϛq3JǏ?;Ν4==rPP34<w;wVko40 e}'54FvYޞ?a */*72?:?#lioioagaomm`i Zו+/7l5*/9sO}!/ZݺWwޱ#u P|CⳲ{[,Yß䑬_v6#;&'"B )+. rr*O1Щ>>vN} 1q*w?<|`$$*E،ИW M7M'~hÇYS :~|ŋׯJJڀc]u5ҥ55aÜ; &ֻ[o a֖jkkhkkhmm ]m.99{޼S66ԓ' N7n.YrΝ&mQ[rrIϝAbT }R_WWSj},{Ftݮf=MoU"ƍ̲޽-w]ɩbTde1>~(-GQTYu3R-,aJR@~~b3smmp]oNBc׀!!Sڨ&:1Hְv82 s%K|_ IIɋ_=_O]||:j[߫%d/tӧ0]H$˫f`Ode1rs+%)hlGaSPtNzjj8g*?zt]囃ɓ~'aCXXܾ}כ]$.ah+XX]TzbEٳڧR*E kmm>nBɑ&MF\X)I*;QPP-IMMuhvv4{{~' hP(^ҭ[=ڥ-nmI 𻿿ڢ:J`U]$.< k>}>}| mvݻ=c-f/]J9r$q\O[H$ϯήf|PCyAAX,%llvvFXӵa :%EmwI-8ED<ܱ#M02aѢ/^?|Y؈u&YjhWx!JC՜{VHv/Ç=:nr4>>/@Ǝ c]'>S!*Rn~x h5ۿfh+Cpm=ڵ=?HI7w-'&&}˖ucƸ^=9x0n{wttl;w;KK+>~AAl1`@~lFffٌAtu5hvv4==?;^xoN?ݸ盩TJ+V@W HݧGxq޵șOswmq@ۺu]jX#F_z_(w&ŵg<9wX,7y:ȴ㫪bc -,u3vp0rt4;۷Z2ֺfK^^{طoRk#"o݊_geew-r#'?FGݴiڕP(>|?zb~pص4\ &ƍ#G;oUQLK+IK+z}X(Ba]NNtq @wn2fAr3#u~h#w3f x"jkvs3;;MFyy]6oF6E}}:4Te?099hL zA+l~ffҊK\ltgg :|8aǎ2qbZKӄ a$ܹ?~KU.&%e=|A]]Z::Xz?B&RT-fMr$4t֭׋KHXom-gߗ98*L4ܹTjM5DWY}iffYzzDDWW{wNNtgg.vA͈ӧ- N>{{xqAۭ'@gm!M=Z:Os7mSO׭N&,{iGX%Y*E}}iޝ?3MVJo}FI()ZB6$Y%ʚ Hh.JiѾPszԜfz󚎙s>]s] ,{fFXKնm3a/-m|@ qr(+ Ϛ%B.ddp îw=+z`_yƍD--01abbchn>r$666\__k: eKDvvMr) w;wNKG pfmm'`{}"O*.n322HJ$#?> ׯ-*j)%5e. ꇶm3ݾl܇t?w E"o~W{TTwot25UD:D ;_ M{⽄ z`?0RuuP54EJJoRQ6 \Bgn:)::nN!ЅHwWC66FW[eϞYY5zy-?wӞjݺ1Mo~`ku\l}EE յ10WG13c 4"@WWҥuï ';k6@~(=݋,SOr%ԩYYH'Bم%$Ma<8AWor Hg0}e]޷`͛hj# ;uu 닊> 022(+ Q0Q22VxM_N--=ZZG\Yp&zTVdan_ҘzW׻ {,ڴ?2 3W%83$$9(yNِ2xG.]J)+-hp!?2kkJJ}MƤ,<49JVL8qlRPhmm?}/ +WR }O`? &ϞM N=[);QH'*JJ/>wmL2Amm_ggݻ#eRdg\Y5kg6W H$UUo~TQѧAPV?M ?%&kQ8-ZtZ^^iK%**'Đ2TVybVSptGX0|?><<#;ۇW$ڵw3hʕs\$4|*(n%`>> MMqMM UUQ~GWW @997lڱ ٳݾ7hdtB [L0 ߾y#yy`:6#QQ/^蝝ھ^^74DFf_efhld$t(N_`Qѧյ`0hEE!-- qMM ^3ԕSkm}?[h~%%~`7#Gb##_?cMMoeeU=ǎydr{ٍb߾=ȀtIG$Ν{[ŊnddeAoF'GqrHb::\\Sb]8:-HM*.]vh678ztڵ2%ddTDL|Z,盩XhٳZ ʼRT)44ѣw<#"ͭ[o ,?ҡך>}˫#ߌ枦)!+.fFts5<\wɓ­[# }p#Mqq[DlՕB: ::w츕^AnGogؿ)**g7o:*"}Z mHgA@_G._Nb` h|kegU`]{#)Ƀn/q;9Iە+u30<|KIIŧɳLn8|QN3q}~pfmmӟV]C P(ҥa =;&'6-A+) ikKRms֭23 r {޿o=iv$%[b` td׷[FMM L-W^*8xA8a \ܷo8--M~=(0\vJו22|jO'EP( \_TccgffuFF۷Uuu ٳe d44ę0HW[>F/d\6iFpSSYDvųϫW_w: }ZtAA= 99ZHG['N Cx4RR /oTedTݺ609;;Y"4$Utnضg(w3IYٿ't1%e/HqwgcuJ L*W{11xaZjjb!! lYZyx$YqAQODkOOήȨjj>PHnLegzu…F}(O~<b_W]yL ,v+?8W 2u0lo0&&ݻT_o,\$%5…2<|&&FGF.Ć2 SS˳j}˛Ϟ-8SEk6\&hVQT@,,Tj:s&ԩ#G2}46v1Ϟ-cnll,'&F_a=x՚5?;N22|T788iv3`}-/^'a޽{L"eaa bF׉]]]I3=94cPW洴Ç}ib"ol,oh( lb"X[SUU+A227uVSP >qJ{}8>##uGaz˗SK/VE: TL^^@^^Ʉ\Y8|aee$0rrj>|a4&P{xD>x{EHǡDP3=A'OES馦7nAcXYGGrrًϟO>v쉴4߼yJffJR{̔۷U#ids7g "I?04YJC$=zz P '`0 LL v˗k"j_opIQQ,Д3VZBH$RʕTVVFYssess%~~p0U857wM3/_A:]GD8#$&45ki~9s%%g޺1@ ӧ#Gb/''@$if) }}7o>pjjꢍFO0:;oXSS`mmg %73֬_F`SXaޅ /yxU07W61QdA:&@3G pVP-`ǎ=adD9 @$v_i|UA555*|-%Žv,9>!o)++ʕ:'O>{V&nn{=zdee5ښI߱ȏawXddPlٲ&jkkgϞM~ AAo޼$gϞ(.._t|ߺ^~~'OJII$%%x~ ,,FFrFFrGZ6xŋ[F`0 qxyّ P,VH$} Ohh* 녅]>C:%oIIIO/LT*^jii';:^>7y&AJ_ءcXxׯ_|d~B APy_c@TYY9%D266>x;022"C[$$$^GAmmgSs IDATopMRSDի>u $IQqXX#G_tv~>}rH$-S^ӳgE 后Pի23++[2?~,,, AݻwI$988_zBuuiӦ 8quzzz s{zzyzzxP(TXX̙3O8qMIII...X, ͛7G{LLL͛ e˖OB4=&?x򥘘ׯ|=tuu_WDDc``|۷o+**Θ1ߟ[n4UTR Vt@n~+"VZڈtIG w%)'GwDGOj ݆k׮[?++ ˗/|ӧ"""xiAOOƍnݺAPkk+ aaa7o%d'O/**طo9}OOOhh(Avvv===/_ ҥKMMM׮]`0}}}Ï0D|2 #/80=#… ~| a33ꢢ"ÇbŊΫWBN.e|2"yFF??~gj1+58UM"LQnnBFl3KPpwvv STկr' H$m>aU 'G XGS9ibxoܸ1 >":Tttt2&㤤$555rw0F<`dd $HD"q``0mmm0 AT\\<-OTTTT?p8GGLL ^6V8}w NH$Ϟ}LPpaO( 88IW舍 Axk O@ H\0 IAx#z%H`ܛ7o.--ݺu+yKMM_ TQQ`MM7n7VGAAA Bkkk988 bddӧz*33SDD$==F8ֽ{/// Ԅ h*++Gl?"8[c!!o[@@` h0FgdOHpή].TSr"tF`Jil]7A ooKNNpؓwΝ[cd4E''EL}} (ojwlI8zAAnccw&(ӧϛ7ݝEXXp c۷ovvv޽ !oLHHXe7O;;;;333۷o$)**cӦMÏE$###z/w>/.^xh @ quΨoT 555/ɏlK$1CFoǎyn99w4ͭ],X[avv dAw×SR> 9®!dr ޼f|(((с|}}%%%ܹ9 ᠠ3fO>}ѢECGz&744dgg'oٰayxx6orǑLLL 8nϟ?=H$ii{g7j ???nnniiQCG}>>t;::AAAWWo߾UTTMG^͇M~MLNWW" nAYY7~T*(Aw@M퐧')w/KH5$$y2v;Slly;wdeeϝ;ήSҸ8555VVVǏ7~Ύk׮)((?~<""BBB?y=9s;~gWtQM` pႴ477;qN0 vUruuu=Ѿy=ʒ((( EcWt; #rCM5ϟOCCu,4hv"lo@BBqLL3llVҕ@: 0ah6"O SR}}h{͚+**gϮ Jl<w  WcNvQ쿸V_@rre@I,wn=` @P]]9'[<,[#RR=ڡ H#)++~dee) 0)))JJJ|||xmocǖMx B"##2  UYY)##C9s̙3ȑ#8?u#"ц3PȬ~+,QeeeB:\/]Zt&];N?>ݸ "(y||k)S527P(Ԗ-[>}J{zzyzzxທ/_ݸq<͍ӧˉDS888 F(##3}ǏC?/66V^^oΝn>o%yy\YvOS "RS˓Jqfdd@:KH(>}:4uxRqrr:;;O!~6;K3ll47lCTtYhluu5ӧkkksss֯_M6A>cs{{={PϟO6bԗ\tIOO/??i III6667o&o yIGGǚ5kxxx~H􃑑܅;**Ν̰ٳ׮5X`MoиccwS5:L18_? UT4۷/ul8pee_L` M5|&?VPPhjj"?NJJRSSRlll0 Zg/q #X lE~4ZB$7o!*ꦪSҡ?| A!!MMmE:n]5YȰdG..fHgFrqq((( ɴiӖ-[pYBmF]dlԍSe5/(##9##[ܽu+ss  eNPSS׹s/v2gS"r'^ djiiǏmH h4 A~ /^\C:;;333\>::ǚC̏/%Fb:"ce`0'OJIQT^,xϞ.+(*40G:@DD۷87йskBNݽ98H@:0p Çc8i̚؝Hg蔾 gE۶"@ 56v׷7WT47}deG6ؾ|N$ȳ˝A|r//͛7kkkڵkԝ̟?СCC|-[<==tuu IəRRRR|BBh4Ԏa2eKJ#"2cylku\!!n@^+pbf_Ēд ֨#_ U>-p ODP3gjj\#+˯B`jyyyC߮]hɓ'?i垦2h?55_jAQRRPPT`p߅6nj:gZuh;д/Wn@:#;osqM;r (5%% ?FFrϞ99LH$75}**jj!`&&8 L4cیZZC[DRCCgE?<)<{6H$vyy99~999999~p fJ+uk.\H^抂-s4\eā?'̙..RR32ΜIή}d7;;31fΤ-=022+=}:‰H$|)-m,)i,-m,-mlk HDdFaEƨtq``@ww'|!REE ѹ0 spHJΔbEg@6<0HH6$wr2qpccC/;@YhKrvv͙3-C|j +&Ū6t5Ofԓ|7Siiׯ8 -%'//n+.L|||.]tA^^@^^`hKw?|h*+\^ޜSiicm dQRbEW##Uj5MWWJWWjhKSSׇͥ =ac,YDto%..iW]ilHG/p<@vbUL}20 ZFS 33Tٳ¡ '~Д__WXH$q-],,,&6$4IP[P{*V\X\P\ɓ$ 1M]]LMM\]]L]] "<<l:ݬ_\jfHGpQDěDL7;Kh[ޔԕ4ٙUUEMM-%}d5010!?XZXTԐ_An``Abb**" bccvt4 ϸ|9Ν \\fuyAL$~D~rMxbIIc^ǜ"".fluu1~(Ln @??>?~FF%%!--Imm mmIAApŁ1ofa[oϟy''g9HGepο>`;w#d=S-HP99srj ?}>MKKbϋCCOF:]aL@:T4c/Ԇ&Hut$$ut$Q􂕕d۷3^M]py3Ӥ@_:{v5''M}TU^|8h ݻ􊒒 ֖\#"BTWW׆S [@`֚n>a^J/j* t$%gJJ$.ϯήxvvfMM --I]])-- FNʕ+WR"#v옷~ z?~\eKϧ KϢGvҌs؝B#@1--oVgfVgfTT430fϖёUn]]_Lv==i~FHҥuK!'gij2߿x -Z  ./oή]S##++MuFR *ۏ@G"# >=Nc"Ź=sU022*+32*?~lcddbE͕}|,ut~98D\GRrfrr(ml4]嚚H&h4JQQHQQh:Z[{+>-:}:A+) HI\j ,ܺt)g>ȝpEoɓ֭3PRB:D"H'O>RWUE: @~eeռ~]VQVF[[kIkjJJhff/_߿dTmtG|tYM3gr *qXZYZAM՛7O^|'HDNMMh_y###Gh'"@ xnt vۏ@O`b܏x{Jc+$}{ BRNNWe^}x3ܹ s(O׭ `׮m0C=iv;A@ RS+H$53S23SbEiO'ƍ**~~6`/=z]ffǻh죿]ACsswrr٫W{z$$xUܷo2zk\cp8'ox}gϊW!`0h--I--Iwwށ7o L9TLDj\\ӎ~lիpqG qG>^JWC֮\aCԤŋ܏mm;ak.bjtvv, P5 h~lz5С<ҥE`ud9zzR5O&&'o2,96P8)ct F"WiM}ý~]WY^EEd&K'˄wu}?&$rZѣ_|K ndaa44]DuY`*֖LLt?w|||3ed5uYů^}8v̆KH( ;a5%%oG}GZMHpsw_0&"V(86vgCCyIIH'G|;| b}֯;t@01a$%yH׮ 8i`H3sJT;1 ACCJwJO&//m2Y*&o자DDB%&D͛lyJLǻ._~コgW%" '6]𲣣%Hxխ5mA:ABRRiLLޫWe$ld$|YT4M__jSTN__+*/.4t=X'A<޿s2>ɩFFrH~WGG``aOii^[͕La?@!Rwnʪ޺5@ !'pׯ̔q]H;<;;/YrkxclNyCQ+,VN"Vݽ{OLjj9Y B͕>?dəի/"0FD8qqM[rwWLii>ЯK^]~Ztr89Y9+*ZLMBωܹ_9cP4_~O'zx,@:0)P(…؇bb6l0ڱÌh4X~ϞG>VQחF:@M**ox}͌lHgV㉑٧NDww GGff9Yde'k{7?< q?{Fiha0h[[mKKs^޽s HG5۷7lq&Po H/LLaH;IIs~tzf3P5M*yyJP8Qi8FF6Lk/_z,baaܶ43{j'Ν{29 PBdݲF yS+綺UR2,-Ϯ_M]],#Qk0de+*ZNA/ddFsǓ)h 9qb;;ˮ]AGz5m%oxkhՕ+/VVrʺ˗S2@}ŭ\)t&8QLGG{eg1ϯ(DJw\[[m4zI**’t=6…5_W^,p;DEmkk7CEE!weeTNu8s&޽BiUUprLLN$'?}>*jhOa3!=)JD9r QS۽{_\m3{LRG@ʇ󌍏GE倻ev355]nDP8TǶ˗SYωtJkhA:+)i\4FZ6GyBBLLZP8Qu K1OV#:4ekenząVTa&#Sc2i_.ukm$ٱcl|~@pv6MLa`4iBvﶻu+#=u'VT3u4**D0 d>2PYYmt&_٢06/$|a!i0D"N#..: zzΈH*B ###.]ZiΤIQ'bcvv#ƎUfӻpURB9{6aks_QQ'%%}0IŔu޽*PPkkEم!k4ɜ3g8x`uw˽P8K- 1 zi$aȑGCĉ;:_eӦ 0^Y&'fdgP8<螞7mm LEzii)[DD:)*j#t4ᜬD)))lmhk'~]50 Ä/p<=z}FRSU믬#' {99ڴjfk :$zuҺu|a5`p%pĉnn** ",̇:[.[rEE]HȪSzKRR$vvvFr^{ԩz v~,mj@ Z5޽MMևo~:{!ۏ~ }W6eEXVk/opkqD a31Qo0pa`~ݻohtԉ؀Ө¢P8w?^{4}YpEӦy,5;V '[JJ/_~Bo@,qㅳ󙊊zԉnԨneP8tiNNlApFCKW<9󸚚TBŽ~NFPy ';wS(ӦȀ-!VVzOJP8jk'khϟ/_ޛ=\?߿@ ovZsvgffvqС...} Oፍ#F155=p@[[7=Jq144dlltqp\/lsk+N/#$ķqTA𢾞U8ASwjj-=""ߗnj3`@ 2`_;vQoߞ5kVRRRs3k׮PZZZZZ3 JOOOðgϞՙm{T__?jԨ􀀀]vVVVta.׶6@48 =NT {K߷n?`|u{.7o|… ٬rrrrrrarrr'OTWW S{#--CmmٳgKIh@48 @ps ^jΜpSDEsP-(z sjFJ0 f8vvBqq$%0u΢) aaaaڍ ԩS"""fffqhw166o/ڏ;v,arrrh4F0 IDAT@ \xQWWWZZʕ+jjjbbb{achhϯ~ʕNbxڵ'N:UGGcS/k~/g[[ oKkE">)$$:ÇUTT>}ק%uui <:p-++MUU GkA3f::@Ք7opqVFKڅ'..̘at󦛴8߰Ʀp̙3Ne˖-[ ߿{qqq龑z'''ÇڵuPLL}=SRR0 +++cXPPŋ&$$xyy?x --׮]w|}}~VXX믿XӹX,XaNiii}/cn޼m {:hjUNk^of0jjDwRS7ՠ/4}.&!!́?a[:>0LBB"11رc&&&vtk׮u"<<\_ohhh|/gkkG]]]].~my]b233NϬB#Gd=鑪&<<ӧ+(_vIk.弼 6?J>>@wtK=&NE&k7EEEN:u֭[Y[_~ݾûwoyܹ/_**Y xٻvSVVӧ{ L o޼YWWGRyxx;+))bѢEpœ[,+++))ycAAr.Y۷o߾ݰaçO}W^^^qqq999cƌQTT\n]N{eeu8VM8vlɛ74,C԰ ~0T sƋ0'Dǩ]q1es4C6pt̙;v={v͚5۶mkkk۲eKeeC.\M#GYhЮ],X`iiiffiϡCZXX˳__M6D''󇄄رH]]=<СC=&W&99}QQь ooo|55  BbUUmm xs?lΜQC^Pϟ_* :bBBlcGattڵ!_mA~@CCMwF{|xy  ΉC UVVzv҈y\---~vΝaXDDDovNK˟5˗{W>/Y򻎎˫v5뤾lA:SPrҙ3/h9J۾}: Cf:4$*j#\p8"++aXY~*,8q0_c#{\}MP)x1iN!CPg/qwCGP [Ӈp @(/ۜ@?Ԕ~ ׳X (DEW }{0EƢk\>ާrs2AAa7a0NEE**pCSS&"b]Qŋg߱ѽP8нʼyg%s \СC]\\*++{ylnnO^t@fٝ ؂lD/Pm+T--4_ߘsMnjQGTYY9EEBC]jj,ųgJKKLLLjjjzs;: ;--وuoxTǏ4i:_?G&֊ zrrr'OTWW RRR R(P8~p͛nr8|XKKk̘1~~~ldwJ#c͜iio_͛/PgA Tj۾}Q暨<ڻvb⇈jjҨk999Dž%&OWNCnܸ1|𘘘W^}p*jddԾа UKKldwbb0T u&RukQjA O'zzڣ…'/&?><{?HII0L&IPRRRXyxx:`7nDGG9C~wuYsrrXY6; }fM8l ,_P8KlVR!X'O޻7j.3zSYYYVVVRRcGGǂfϞk׮O>eee؜>}{X[[S(oo+VokzxxDEEyyy >Mrssw޽xn6;!!ֶ6 3gHI /[vk!(-## 8oU_eL#77KYq+))-YDXX8##}H)SFFxyyKKK̙Ӿ<<]_H&e y1  uj-֬e ouт o`*: >B u-)/_~zӫW߼)nn >""MAK]]ʕGTݸq*,54_SJIɫg]*͘1bh5==EGDD _A]]Z]]6+aزeAG*`DzϜID '0 n Z@;=3 &$abn%YY1++1Va**ۖ,1#׮1F:jȑʽd>>\a.;?ss-UqNݻoZXh%2ett+Qg*%%/%%/%%<<$##iUHEZZu@yWX ðf*kD_zzSdኦjJcj(+ApW׉II6޿udP8wrrvvÇQRVVysr)StQgӧIIii))y^}}E{{ѣƎGp82Jg==Z}hU&`_QEg9.=CF:v4#GMo38 '(ÇﹺNԔAܴ骤 Ya̓^S]($gb:oѣnjQ`%uWM1 oySzzaFFOtcc") LVVAuku3?;<ր= **?$&~8u*):'뚛kk E[@ǡCqa:ӧ(_]}}KbwiА2Es FBL&1P`'?9T7ddD=oh:Q!1cH3Ҹqz06Ln2 _!Cָ?^|\QQY|Rsl4YY1YŔG>ǿ{o:rx{{#mm9d"SPHD:Q;wڱ>|{ %kk=kk}}}E$ϝnzy=??Qs@~8whY-++Zpϟ޿.&&ŋB~~ -_22".H$ H`0n(*-99޽7W9rOAAUAk4-{x}sժjj ȗ11DEљ.,ILJ:66R))awii•ΑD'$IԎ  4^ vJJkLZfRYY_eݹ??A kk}SS_wCA~\AAePГ{gIJ /KK]ssMA@+-͊LO/3<|x Hs؊W_QQΝ_䵵55dxm <;vLwr:7v, '~f|IHuQ\; ?6ݾ֭/ O753Ӏ+0=N}^qq2Biͺ~=}Ѣf1g(iqXkP8 (}7opĉS(A[#1Í/{K"ml7l4I{$S_ސZlbªȗo }>tСR~eyg LMN--49sFA0󼴴۷A_\VQQoh;XDu.`"٣[CJmbe۷%aaǎŏ6;|7~ȑCO|pjY8NG99ݻoyZb3 -Ǧ6nlمr--YY8N>}zLΝvb|'O\RZZ~h;w^Hę3}}g @pq+D"axwueDDڼygUU%M,#//: 蛩SK= pF3A+RUUjŊ z&5i ꚣ3~E[[ni  iQ/XKޟ:uĉ`vA /ٹs8~ xw{:᠓ڦȌU&G,HKws2bѣF woG;,j6d2Nz}`09NGG!#c3K>jԾ#G⪪PG2oh^^rhsA88>螞7퍠K|+49Lrv:Akk//\xmνds3I$rW<<${{#{{ʰ'N<1;OHoѡ,9G 'g$|Ru;L&?S5o<+/ }vRr]]Z >\rI.9޽;.lŢEcxQ][xkքdd|B tpᘿʪnD@zӜLG>>56f͛7ufK/ ''9.}b3bMNG3>))a77˔_ss+͞}*> 7^̜iGz:OPг6wԩQgxEMPaՍaa)AAO(3._^):5֨3ӥ䪡z]%ϟ?f1Oe.ȹYΜiL&s ~TTxL …'yyuSѯ&M9+)9pZ??ϲe˗F e.,{<в̙͛zŋyPGj3g-_~(: 瀯@*+ﹹMQWFQ]]sRRAZq1eǎǿa U%VK9^K ё?qbQrwF9r$u.5y_eQp=wsDݻo> \gO>33)ia`d2 Rv.)+ٿ1%eܹϟ4fo`VԹi4LA8 N;/^ܸb߾Yp'6I:pbʞ={i{ժ p1~ASoB_OOZzƌLBSu.3}W*+QP8b0^^͵`ZK -99uRVVan;9ɞVM8H$q6#11Awi/^x_?ĉѣ}N~BCXXhɤďp(w]bYJNiiM4 unQ[wg8Ǐ?:47)ic`&4NJ߻^ss| =z@PГ6Թ ر PP84>|u<,> ++:衡-,[%%7o4 ' Vkkg KKG>ow]еčPRu `0cb2-,x{ߞ?LJʯnnpG0y_Qm0왧{Cq8Kuu-^}BC@MqXXQTT]XX5q ѣ'lji3DEPUk+ z~x`'. *,BcK+(!p1ݻo::p-%%lb:g*,Z4h2u d2yo_Tc#u6WI0c MLȺHR$ㅅ0 Puu)U؊a0 ed2qRٳG8`߾kRt92c5[߾-62RAA?knF_, `ν{TmPxkC~~1ꨃpwJvYxBN0 _PU.׷`P87~O 5sq'¨sqmmYqqB(~ v `~uܳ׮[7@23?3LxT_[ۣ$޽΁A0МFbFg814Ltt.54zP@jjWtigt``M1 '`0߽+a=nqpܑ#q8۷%C keu84í[W@p IIu=δ5SU)C=W{ӷo@d2QOOm0#9 &%:ɜ2巜; h-\8Dp"0%׽V7TT$80'$iG23?Nft^^% l '`0H$FF"-M`_CRR:;kپ=b͚KK݄cjNha:=D"::8P(0/`cu==x!--2s~ +t^^l 'S@ lb}R~~UJ[O=yr{oCBV8:NHJ O4L:ig7q&ܫn EQau=>{6Tq1ca!=N? {E3CD^^RP[mЦl!/BCCu @ Λ;͛7@WTRqz=n !l{[[--EEB=hhT~‰{eee$Ioo;@/U*:髃ÉS;84m0?a$ֽ퍯_pBNKK66vܹ׭qMM0vhzAN+#J'::rx:`_=fZLfoф@ L;;Og||/^\{[ۣNn0 u>|0F?:z(Dm錪z[0R[߽e09ԉ莳)SPV_zV]8d066g8:~ɉZAuNDAY iAAǂV`=!'v׾|Y_N\4{6 |b3ŨS %(99@@S(0T_%nז-ao{y9E!IJ BO{T\\|X0СC]\\*++F#F8p>׮]#tƍ? |̟{NA rssA𭦦VAAKH0wٱc5n+o'sMOꍽ78 ۷7Ϛu0#P`oU8رGݾ}{֬YKII @zٳ຺:ξߛTFJOOصkןieeE;PZZZZZ3 J^64L1o\/A{}ܸq#<<|N{q5Tu QQTY'*PAL{|wNRRR}=2_@z,---''8yHuun֚M*iihkkϞ=;--088nrrrrrrz=6l/]Jް!"Yf[YY{qe!o"%%_`qƕ+W744 zuaÆlܸ޿_SSSBB;5Aohtnq:}-[wĹ~lٲEGGյdO~ tt6oooiii {mmS]]m IIለFF}8hP84fQQ73ٙ5{...K.-++MMMe2ϟu֗/_bcc0 a=oX844ð &y+WtyK@@ϟLLLvd21 [`A]]]PPasέ;~XRRF1P===:;;;%%ESSs޽7lƌuuu7od鲩 _8}dY&dժ`)`07ܯ^}: ' 1 ~N^AúdozzzYYYo޼3f̶mۺG7vf7Wr7Tj۲eAÆ|u"#3Q肫%WKSt#)(aޥKt1Ç:ɩCXtttJKKY㍌L&a/_d2T*㜜jÇS(Q__O;meS}pz𬬬}emmmrrr>d2ӧOoߧ=OxxfͶ{dݸtj{w v}h^^**[DpOǏ~7S_?:75lذ[nv{}N({{h3M bNX;uE_}y C0 wuu}ݺuX[󍌌w044^^l#G^tFIHt7Naa>>kll h?o?Ч9222""‚5ą!a٬O4GڷM}o#:|8ԩǎ-5uv%%%=Ǩ>h Y333l 'oZZ&|\ j'WP81+V/aaa<0lŊQQQeeeqqq;w쾑V*aX}}}TTC744̞={׮]>}ʲ9}t ͛7T*窬,+++))ycAA&WEEe\\\NNNdd1cۿ4G}zYƏdɒ7mڔ{ŋ٠gm?xp(YzNMMGa(..a˗N82%K<==߾} 6|U,>srp<<痚i.\x>|#]q{8؛{N<9b*d2###嫫TիWnG3̣G2DYY̙3 ,>}zYh¬uuu˗/tuumlld.khhDEEQԎbw8ESTޤb2 [nmjjb~3S|\k׮OPP/cvM}n=Np;y c-OQ"8ljS?q:U`0ڣkhhDEȨ@Kl۶MAAALLl 7;/- [ۛ[R;kdWY\WNѣ./~޽{…?Wojހ©n]DD–]p^8| zcg=))[^~/Y}}offUU 8+/^u6u",RSTT$a[",w+pq:;(bFZbŤI7Y_ﲩ~lp܊/Ns,ΐ>pTdeE}\ve::5n)X9N0qN3)Ȝ;w_ﲩ~lpF?Ԥ[@$¼àg ;FNjPUO}ukR8@oЖ. b0/E YYMMT(8 ŋI `07lϯzu08HNΑQWF ;۷O߷/*55uSP8?N~pyΝi\p_~[Ryyˈ`_8 *߾-1c `c ^BQCFgϟ?;w.GP:hl$WW <<}~7,**`'֯2yUPg޸qu1Ji&)/eH}7.%+*JkP:fΟ_fo?vϞ|{:`knIJJLmiᑑif񯵕\^.H 0*F$~CWYYlA`0%L&?p-[N**im% DD[j>&()܏mr:^),Lokv~QM7ZH0H[><-Hu#lP8qOTZZxڵT55i??3F5ܙ3 g$$$Ikk>}ϟ?ϯf,&&**"@Yy׾\\"0y^ IDATQg=zuh۷_/)88oj*ٿر_""6oܴ7oI$kO=z:ߏ_io̻w%J>  *wVVV۱JJ.ojbKXJJ !z?=}xש p`ƾ5CJ ĉƌQv-^KI :JKkss_>g(5ssMssMcc>u?ݵNDڻwVjj{n)` 1~bұc$/! tuee=ȵSȬhl{*))n `#uu-7ٍXuF3n`2͙ciLF|\s25g( k y@_BB|iZYM cSݕvq&nK>yrыWJ]oP\\=33-!a(.mfs> 77tO?\8,L(7dϞ"cc'dviCCUT]]J]]jRӖO}L~~ne m+ ܎)tKƩ֭ Wx-@hM݈pر* `b2L<|q4_jo'Qӥ{*2gCCSBB|ga {f]YPЍԼcU\7nvdi:bp+ͯ^}u륋c` AW[۴kWjlc##[54dNi=QRR9Hق=[RX/SBB //ƯYHuLaoouVҙ3wϳw oyXǏ?\iu DD<-IM]XU՘&--6nLji=c=9 ߳68#B83P8 k7oNBQ4$dh@YH7+uYqT~掣/G$TFFz`$#`۶?ֻX0ϐ0CCCnP((m_SXXkW" bbc67ݿ!55/8֞=i23gYXhocۯ9]R͜9jX'?"?ql(XXgOD C麙aҬhhh=r䦻1|a e'Omlnձ04TmzTKK,ҾjUr>>]~mamaFw}z7ե I۷xl)Y6py6$ \t8qh03ܹ3ߚS$R:_GqHԑ#7]?05]MJWJI60P: #F qTqcbiiͭ[,'M2eĔ)#px8-Jjg?kh))ŶD-3 1w11&B0 |h5k.޿8 `:??~ofYɄ !=J*+뺙ٳe--pseevOKcתgn2SDVhjj;yvHmPgf Ǎ'WW?-DE=&''җ8b;v={V￯q@ah,-^=%6ɡCu()-Wx3bDbمP8q2~lKpq==#;Tb?b4YYgX(#`ÆĦk-]jjg:<{Ve%??KK~oQAeg7'mzdܹcFvXI@gź$aU׷ڕh1` 03.ܴ =gOZSS /L{JUUy&}II;s>{tӦħO6lTS^{1~޽i**Xg\߿WkNoxr(KK3GkدØ#Gn,: `4( 7Wt}}Kx; *kf~NZZ,ttO * HX ޻hΞ¤{ر[G+Y[du';v얦lrDBOOO]8յ,^|Z\\08؉^풐u-?j\y~Rnb399s,X`H:creTMMY鏐ɔÇo=an@BBD0a:޽s: `a4H]gOEDlllEzWEEr|gθ.#`ƶ[gNb..ǟ,0:`io'/[Q]ݘf0DV4_ݻKrg`,g~llF>|38t:q(qʨݻ]\Xo??q*مP8쩯_(DgHHf/0EE?7ot9s og:34TKJzuBk>^r`/?|ƍ3?x!:Ѻuq[\6MaƠ^ <c0]II8qpKFɔլ5333'ns+}cP_j/]=xp=%00ܹ{#G*\KDu񣦏 ͱE7lHHIɋ֖gExFmmSjTW?0Jfuӧ5,qpG7'8Z03ܽ;ȑ Xg_S߾U)yyQ"kTXX^Lnٰ!m6[Vݘ1\\'O>cPݲr\ܓӧ`ע0Qn臁7͘3g8xWWYʊ/A?--]oښ5pvv!N jo'Qӥ{VĐ Zbz`TToz)%%o1;wڱͧ(>>#?fiޫ?8~ C aƎUqqhc փEݸxʕXg ,LQQEL'&Q35.u0#G2\y=%--$--!˅l$55oD.."k-GǫݾЬcmmGc˖.[fɧg^ܱnndem$;7olT'7頏p꫒JGS %%G]] 8tcfs8,S&S45螊k8x?zׯU߽qm̳k\".k\HK{y&Rwѽw}}/`8(Ҝ&Ys;X4ssO!!{^]zʆ 㑙ϱN6ݸy}|~OZZ,GqlYKK;C4??tO!rXѣ 7o^rr>abږ. 8"cd4Ic$⊰;/Y2ID/g #7nJIyfgSo8xݳ]]ѣ%%Xgn^8kk?<//Wߗ E{WQQ &J/肂[tw7?JCCը 8/U.fB**;[GD?uNH W~[l^^.+.B pQHHwwuue`,$ěUp+W[Xh}9ޯTVu3sʛ&vRS`ϣ&!MIbWᴝvƏW'(%,lIIEa$'{7kZyzN~tT ||,ձ.{{ B+TT$N:~={,Y2,HO0,; '>~c3_b ~5[wf֭3{FMRRC%?Z/TP^fOy/7sw7NJzibZ>vL8L\\ڵU` .׃o-?YL󯿒H7^qs͵VK/-=񳱱С**s#eg&c3amޜdm=2(h!N8",X`8o޸W_4v]թ9sW1N\ܓس1{ `))/klQTSU. >}==fȟ =vO)+K/+.8834Tmk#|e8U#ÇsXz"s挱OI;r䦙 ׮&##u4Nab2+3󭓓Y rr/X13E13.ܴ w߷Luzc(lECBn^jæM3==M~WqLEO[ZjϘu.A2r#G2,-ude:xjd\ܓ~sI>>0Ço8ƠpB)/st >\1G]JZZ-\xӧʶ6X}oe5Xi3_S߾U㻧^|y$LIJZ5f qLyHĿ{W6bĦfOP8Qzuouw7rddglz 9C߱J~ѣ NH{;yٲnnbxO{/E_Ux֛Z}9uL+*-)*il< ̨SQQuu-xyyQ))!;Pa"cxޔ)#Y@t…GO76 q&HKc?ƍ~~iik屎ty֮rqt 9H \ipii>@8Ni߾W刁==#@Soɓb..رcW}{5DAؽ6LW2쮮;&+-.5_egGAW$1jjii䈈ߵk6c$ ݻ܌6gq ;`0vӧX ;G,1v20jiL[QQ(yx9=-5emmSQ))1gART=ׯ Okvu7 ZP(TZZh|sZ]6{ϺPYF v *dcSaM20P(sxqtTU0a,Y0doMM3uFg`=%X`[}*+޽gϖ#=tOKc3͛c44d3è3&$--cǬN] vSuuEmy..Z[IfM4򢃚k=A`۶‚t4fJUUcqq%Ů8pڴ)iu, ?Tq8,JIk+͛˖aBzX_Gub@Z ݷ]\&9E_ɓ.CvGxYYL!pqYY^}XVVo\GpqMUoUS:;U"}‰]qntԗ/z<`33E=|_$""SXXN`fAJ*+뺙sm'lr)&QJMMJ@>)76Z]`qt9'pAA LMHy^"4mޜIoђJ30A=&SA:F 'n8N`6EАy+-ZZڷo2gp0;}GM8JJr޾N %6 26vO}R=n櫨(֯j]\|V}^.LK{j9gڅ޽iGtKH X'n<\{2{*jHwJ13 q Ad.ٍ^֊o&pUVP}VNx49}zIFFA@@wmLKKOĉӱcBBKL:󛖙YmD&PXNqq)4gO잊Њ {\JYY%%3?\y哖ʕ'N&)\\XR1D"nB@$ܸMy;` IDAT_3AYXhޝnco\X&ŕP8%+ki˅uC$CBL9 X C3dݻPݳ',g j7HH*)oJ^^i-^P'kƬl֮k"RRt^RTUUu $weZZб}lo'20P}}QGRč_`N8hh+Oz((hi:Xb^RRBeeu`AT8ee"bi `O9G'.\X.!1 GUUPM_JzzJ ֖OO_ue7sWOY$)9D*??jk :̫W- SR6t v8rsKBC] EQO"8~ĉðN,Ͱ`.zCl|J3gLroVV/^|:2Af©_X,_|quu>~:/^ĄǓ_z 6lXq8ǏOYCCúuTTT }{tI8`4cNP_qw-Zfb2<&S@aؾi[rصkۿ.'w#66GK^^3ݤ::ׯ&={v b? "ӎpqJ} Ç`d\rΎ>}$!!AYDD$ Gi&ooAjkkW\}#GRVRRˎ޽{0//ϟ'%%}ٳ]RuSB~YY..gO=yҙ -ւQ[c{jEX%%I%Nږ>|AikkEA DG/[?~d2p(N>++˶߼yҒ:+!!AK÷l"!!A]mذAVVvO:ujSSރ]re߾}&&&ǎKIIAzeV{;mA N{Bf>w;wYz۷gϞ{NH$z'dddddd$%%ן\߼&49&摛۹&mxxHd6eeu"t"//_]] ŋ544iooooo7TRR޾}3cQ򪪪FEE!B"h^YY) ylCǏGDFFaCpssGDD;wn߾}CN:F%&&Ν;7JHHĉwPϟ?LE}""":p---11"hhh#h޼yS]]]TTt߾}ONN>|wkk+{-ɵD;#efqs;ko?&8iP& >B9~֐!C#zѤ=_VV*ހwnn8ܹsZZZRQQ޺u+w俭= SN_ԽvwwŋKYdºu{ FO7>h쩵vw9sTb⪼/3g? Au kPvysݱ>><++Osvvvqq)++~1̙3˗/6l ַoޱcv~~W ׭[Q <<P@7nXXX%%%]tL}#;8wӧO#ׯӧO˧WTTdddw;L=Ʀ.)) AJ---߿c'ׯ_:b˖E,[u &%=:Sk_iC[6Ҁ988888i0))K.ի 6KC]]77۷oߢ'J֞M'Xϕ&&F7`]VvMz+t+S իO},tuu;7ԟ322FEmRQ>|K}Mݏ:tPuu5B'=>gΜ*tST ֖@ 899u~Vڸq#hzfᄢ(D믿tttBLL TԷP ڨ'ѡNuSvv6d2zT(N;‰i899X/SjjZ?>N|mm툈Cpjmm}mCCLsNGٽR tA( ?okC$+++QEի>uo{I$Lff&ӧO߿'BGy%jcK8CO7>.͜=4ncᄢhMM922 ΂% "+&55 ]~?┡z8BՊDDD-[VPPbŊKJJdeeXXXSDÆ$ٳ{:JTT4+++''GAA޽{x< ]hD]O}.wppHHH@Q/ccc144ܺuk~~M:Ou!'' Hp"oa5 VVV{j;2dмtVll,Dptץ%.]u떣c_NBU^^N&Ԩ:tߤ־730ŋ˧Ouu=8~P1 N)tlǏO:uڵJHHtTWW A99#yyy{f PUU>s̪*[YYuF"{_^El߾ӳI&߿?##u:(h"jpiӦQuGsRoСC :۷4OEH~) ž0+WFNڷo.нh禉y?ĉ7t[Z E&₂G>Kۋ ˗'MDۓPIKKO>QH^^/CO͞tIս w"9pR?XXN)xyi0 u[nR߸qϟ󭬬BBB:x͛7SG|^Lͣp8eRRR]]][[???ÓmmmAuuuǎ|醆/(zzzR'׮]VZZ˫ œ9s<==Ǎ'%%le :;;ϟ?ի>}zu.\T=Yjo޼/1]̙3ǧOnڴɩqBkW0ٱÎU?99,==:5mmm۷oGs EGm&w׺wϟ?hѢ>1D믿/^ǓP_󽽽_~e˖A}94X9m ²]uǴcܱcFF<E6)88XOO E˗/Rչ/[얖u /\xPSSSLNNyx[[;۽{u&MDrxDDϻw:y OLLD;MaF$$$H$Ҏ;tuu{Jvu g2|a555aaa++dIII3gΜ:tWss3{C9NT,4C%$77ƑϞ;927ׂ C?={+̰9d!>> uN\ZZrϞڎ: 8"{ݻw())о<Wssϋh8L$2ؒiU ٠=MfΜ16%==ͰqJ ȸq*|:ވ TW7"WG 0yݒ%I;v$ .\88 ݊,-u޾--*u=2G0}}S\XKMW~}BJJ8p22R~AH\\ǏGS**O/树g8;O): AyDH/:zqklKKwJoT8!fC0 Q]]˵k/I$ŋ˅3<쨢"x&?5BSSvx3gk4 Hvv6b!%%uVssV|(@6H2Ĩ&EvQAE)NL$rg\gϺ͘q\l X]#R--ٞ#..TU 2vҥ?:4=*uuF|Oo>{{{\ٴoC^^eoOJ*ⲰPϝ{S…ڢ8=ӧc3Bvv6lH u it~[O񒒒LLxyE?}ZRUU Aϟ+S8)+++++3BL%#`˖KM۷۹N"=nC::3pu+]RNz4w}L6Τ#G&XO8k 8*=_AQ4 ͂* ~ \쩼;匦lVV&AJKkDaރ>$3)?yi`j_G2*8pBRG__)(( C㟄RQV(.D9sx߳g%.xFFzim%UU5p3;7dϞv (/'[, Ygf},EE=Ufa8pBdf_aLD_KIyq-->YEERZZvZ7s˗"ln|BC go[g|P89ѣW_bAcci~~p7nL2"# 'A={%$oZjՔ[mwm͚5:5է*ŋ/&JMM& Ng`0`׮VYQ(ʕQQQKhԩ#.(Nl,'3G;$$TQ0̠~GZZrׯ&mo=loZssɓ49`P86aaXֶgOjvvaX%%dh%EE<:c-1zF''xDEbbyx^\>6cdK+WN9u*, N]Z5%8Vyy-YU=  \`d'p3gJIy('sr3z=m_͛mBB'%::UW7bП1|u V,*ʿgOA%=y) {ܹclfW~?? )-qr:vm9c͵NF~Gg''{W8y'9sQfSW\;wNJʽ{Y|=|t9DJ %MwQτUv:1x>ёzWDoƌ#~=YԴ91)A‰kVV: ]}}˒%geesr.r¾=uK]^f?80/\enpbГ䐹sdž܆=pm޹uu-AA7LZU]M3ϟ?7tJM͛~eNNѬYJKkc O|**uѠpۿߡ3w+7dӦ5k,f5H䍋cuNNV8?fh ر*>vvQ= IJ:hP8FUUkC%%XgfT^^1qߴ qBl3 %%OWxmn˅u>aoBYY"%GZZx̣7{KD A^^S8sEEk+ ɓ.P\]v-Puu-/_9eVFƺ1cTN̳m_.:B?`aYYÇ< NE \)1Ylܘs܄xZ Ӧ>O+0ѓKCZkl..։ĉhXwS##oWb]933Ntի[ R^^tin1jjR\:Ht;#䲲͵NDƩV"(~~ƏW^vە+vb1'k=^RWF©p8ܡCkjvN: 0B{;3R@QGfM ׯ7ת9s?}ٳbb,xwcƨ]x==E##5L"ёjL̲;w ϵjx5@:4XgAe˥gϺ b#  OL9v:f-E]]:[cƍSZS NBJj˗_8N4}ܯ_ XgA,:QPЂe6*w=ڼc|}/::]f0i 7vjx4P5&~~(wypcM}쪠໿ʕ3g:KW'[ZlzΜy$3mdÇj8Pn;!2vJx{jjIXg}=Np8!!S>.m OdnjW<A$wE^^ׯF AN=CC]~ڹ3,?^^66\\&be xy[&!韟3k6L YǪ >zT_p[g: 4'HP8љdPЂb!# q<8,7f֭JKk<66G>xU+`EzzG.:w^x}q߾Uap(o =__͛>9Սc wqI . 5xI ~1Z++9y BPߓe<^!!F n~yZUjX,P8 &9yG{{90I~FFnCcצ8p@SJ6o,練tmݚPT")9=<<{Unn?~"C6/::3ghԮ]}}xAX,Cg'8:NdveEEuppYp11fXL%ZZtLY}}'}[uÆ7F\\\㽪DMMmZLIm~ܹ]o|ݿTG::~S38׊sBBbbʲÝUU NN*kJeꉈ 1NNv;! G\\" APZZ󻺺BLL]fMyy9i dddWMMM̌׮^ ^^^ }}}<<<}}}P$))ٳg?~Μ9lll>>>󥥥Ν{AmjJDLLW˓޽{woo'8OTif?0. :Ndgh(kc-ɓpgOooyII^77uRc..ix2QWW%Y(kcckjj*33sbbcǪ|||,,,FIGGe˪CCC===AP~~gVVVB@ψO>=zƍׯ_A``gAA/BBB=ehhXSSsAkk뮮!ۚ~EEEO>=s挗 qqqEEE!Nfڹ`hI@lj||t֮>3ɭEoΗ/  YQ}nnS꠵8\= 6_BTTTYYʕ+!޼y3F@@wytt4A? PSSs Ϟ=#$$x⠠bqwww,K8pŒ>p8`eeJe5MۇbIN _jU@@@jje]΂ڹEe倎%Ѩ'ؘo?IcWX{AABBpg!/&&'-?*8i`SRXJAؼ~ޞtǏK.8AZZz;UUU/_<99tc kjjP( ڰaçOHDZX,A fk888+++׭[w4=&!B".[_| 9PY8l(P:~:NpƟg20oswdi)+wJю(!MjҊln*(⮺UUU777ϟ(vww?y$..tX]}\\\D"H$f֍@liiٱcvKKXښXsquu5EUUg5A2a`>mF$GljA~BXxֹs>uqFG4*S~9V??]P Ҷُttg^g HK =9(P&'hq8PZ_}..ΜaؙQ L|QNN,3ӁB x[[}9999r$88x䛰JJJ="**GϣGbXee%K!%%C@@ <<<##fȶ9vEu1SSSUUU uuuOO||t޸?vF ӧ+g X++EEz#C\w{ǗJIwزFF AN999999^ l 3P' WWWWWW끵RΤsq,ɿO򵑑y)inH9;vرcǠw=Ar۹sW_R̢pPqr7EE/ FpNSsɶmBQ8\Sjtmeeo""JL+BB;v$uwq'zha!xѣOpg.  S##nn tF=v߸ŋvsv-?р beeAa`$&Z}sL2@F"MKGl^^̇ ilo/~h DD2r>}3?ffkMF<`nn$!!x'))waYqbff H@448yMMO}wqXY!joG# '#i:z􊓓ʚ5B9U6EpqQ@Q}ii[ZL?kJ<~,'66Ft(s58 ځA88 jkC;0D] Ω\nn3m\K̃IH vv))0\]֮ogڊ?:N'?vf&5Ev `Q);, %*իQQ?3AbmW4 X ͞MIyݞ=[@hTLڽ AShiDQ\/;|c3A>0F2"%-xHO-^.=xP[J,<|8/ 3 Ξqꋃ(ؘ,o߮wP(F(o<4;X;ӧhiѣ_L811FG@w71uy3b˸^{sOJްaX.x^XnĨDJi5"ByM?a{yiX1gժp` ֆA36[;8(qr47#ۋyAGGz ߝiscϬ,%K~LKKٳf1N2`ff栽bab`bڮ]0 ;:ATN F}2456b\SRvJIO͝fM}ljDR/:ڴdvX,Cz==-qT06EU5֔yy׬7MuwFG޸޼vvN  qZH n&&CCo=wB,@Q/_~;8zc&sa9kBgٵ묩ӧ`)z!&}MFFq[csNՆ ׭{[=F`7~~hK:UUC||r(ܡ@C< wmłlݺ*6ԩGsg?{V w? r@ AXX!!䫫"V|`ѣ0Breϟzz'Ȼӓ' b9n<lJGHHW((_vnV֣kgd<@|pr2_p: 3'ffzQQW~JWW&&,1ej>* [T:SA@Bz#M;xPGT ,S~)*4$M8gN3;s39ửmvuNI9wlr44v͝\\0/p--J}o-zz'5V6,41Yy{k,^,FLGG&1*-gԾ>IN޹mj53ӑ~˖ةݖ'GI)v%k5~ 8u>|Xepwπ;0tIZZٳZD}QQS[tovH;@FK"C SQRS:&鵶v?yRa,w?pqdg;x~7ꍍ-[ի/r~mTijB襤] RR*֯;XX##|wjʕs~9!إKO|61Ihoձ-\ȏ<}eN^4W[۬GG~E3VVƌ {II>}Ǐ?O>}}rr7po4.qFܾ)%gl{j\++Elr/` ;DWYiZD('ǹEO/;=10`,Y~0'ݛt-ؼxZF!" Rޛ711eZi^V#SS7.paâ `hbbvVuvV<ϟdz3;yRH9' !ߎ;;SDɥK5()<;Ѱ,-8ɉ׷!m=:0ٳYY""\1b+W`hGYqq޿o;OpuM[DxvL{\܆gP(ѣ#"J' yZmm9 n\NsF:]]8D~;^b7n70Xakbk'Bfa wF1li QVV) VVƴ4+DLLn~w`*12!m'##]u58QTTTߣL$="/[3)++DǻvT㴽k_hg*DNk0/\y \Lf\Tpg`$v0yy7P2 0ItII;xw`*)*ߺ0;w68Qқ7׽4Anᄱ;8?sN\q&E]}qfG5[Ē/^twW/+sߴi11ǧ *7 l㓃z{gwÝaTTEeAEEuw7bi`hN0ݽ[5- l5m()IյTU5y@ljbH,R;쵰8]Vܹ2pǙ˗dg;ѱy󉬬Gjjͣ;55u@DS~Œ#"$=Ýh0??]<Xw5JǩQ* M09uꦫk ##\V :NUR]8=&56o|8]+w)#.ipYKK####A lOܹ{~; Cúp!ikw45=JM44%ˑqm }i0IQ[;/(pYP8SEEg^=ٳZjңu'@DdVVÇ󬭓55`[:w0&嚚K W)@k%rsw]O/WW)SV矏O~d#g.Z$`mM=׏fq;Ɩ)*/+{{YYwݛ㓃S(~;v ˎϞթzDsؖp`ttueZZU ))B4`"rJ&Ν; f[rrųghhFH[.[&@۪u%23[FH/\oaq9;ƥiz8 XjDDfiiE&&ކ;9U cXTkbI//[nn))͛O2TyժȩWЈpY56 JrrڸqqbX6yNՙk%*+}0#W=Z>9J 'AA99+) + o|4J c͍]bNasgb.LC=~~y2Ax<#30jp:q&Ν B+07sPS?.1jM9ewĖr,]*l`[pƴx۶Ueeo&OGGʕ=UU ֒Wy )--A;Boo-LP_|Fƃ S5pǙ26uoo-ffqB9:;_hMoLjku{;ʑH=ɘ:NҬȝE ]XY**֒^;{6ŋ:L7x`w군8}滌 {M%pǙn_%甔BBdi> fӦpOon h&qFyyiEEm;yyxQ99ps_1SljVOoŋc g۶%$%݁;0lrrYYHyx˗`i*pTTG~۷YYVͅ;Č rr;fP\6%E@#'Y]}驀Amuu-~ jn hFMݖ-+.^+/ tt:99O"u隤;7oSR$k biIJﷀiPjزe{FkkiÝbZ -nllȰ;Dյ$rswrg޼qCF==mxօ HVV)75u@DGG2̞ݷ/m,f..)G^^,/o)= l'387.RV*-u`/Sn3 @ii ُIs3ZBGG ~ jLoOwq{AOm^3ۻ}|r6n ]MTYnǎOnY-9/ ^R Ǐ۷'%U=?kDIH졧Føaѣ>5?  un{|iXhi-q`옘6n\t2"f-^,H$A})A \X\,g}QYyx3nD"13G~~22dmqʹeeqDƖ iu55Mdu$hi; u>۶Xar YYv<41ъwܼP;8}['r~m ͛kI"--8du)+{~NaG$Šr7P4FFq{ik/sx%ITηR(T`AtDKDoBon$~:hi)DMo  핔50IL w`hXU߃;l(--PCrm[-+;,c/EE+ge**-- ja y]_xϟM@qH66=eh*Ѩ iKĻw)Қ5󔕥C_0HggtTwٙRSmݽBOO܉!UV~"Ç`Є;Xpvvrr=cVj*G5аkNN*{/;ΝW^%}}(.!n$--z*td6U۷'R~Rw W LLteS@.O;KKD6ÝlZ QQ$k]yܹ{~~I0av** 3V"1npsSGږ?!G$BY>|'k 8` YXȓEjDK18=y"HI,?~T# Hlju3w(UW44"a&FءxCʬʕs޼ o C /54\w1 );ۑ&?SP84"y!!N Eo  IDATo?32'$䩢|҆R4[?7ovp'JyVGCFPUU䕗(sZE0gZЛeR(ioXLDK>p@ʕg DmitGW7DMLV'&ކw-6AA?GGPU[[%脼}MW++c~QQ.'Ɩ))54s6@JvӻwǓwf T%'Ǘ(//AJJذ! ܉f 0tRP8 -wtO w!|ޡS[ۜ|qUWע{!ӧ1\\\㽪DMM aaa2";[ ={6/////xpppUUՏw= &>޼g@%/%rnȬ'oTe1KH|qc{Mao{=,ɉKHvP YO//(@JǪ!==};wXW\hmm (--m]]]!&&FJJ ŮYB<1@FFoȸzjxyyWVV&,,\QQ1(*))IJJjفϟ3g鄾>wwwnnnww5kDDD@҂FA(,, m\\\tg"o߾K655~ mH!OH.\  OXXxmmmbKJ@Qg+nLM @P{lztrIFFۧ^Z\^K+*%.A1V]V"(*,sqHJ/]wGlAR߽{נw1'Y@8C}|r/,(p7訪666233'&&;vbttt,[:44ӓ4 APee%A  y!Aׯ_A``gAA/BBB= APDDħO=zTVVv ___ 2***Xlyy9AϞ=QRR ˗/<(**vZPPIddd "/+++++-tuuuvvvvvaPNͽ~ppGKKKdddVVVaaayyyUUU@@'-[Vhi-ٻ7_kdEK_#wC0M6kݺ5'Lׇ*$wVϞ󻖖#G֮=Nv\RQuwVwvN;<`n ۷6-qqgS~sCCCCCQOkmm>t… NHII ޷ovvv[nN&---9ŋ#\AГ'OD"toH7,--]tGXXXp8޽{0LkkkHHZW^.= !z{x Ŀyf̿#G8`H%$$Iyf ##c2ߔ;,qq8;ݵk/]_B&&y(GyyO\N1*9NO,!6޽:9A--}S^ޞ_[RSÝhFXDhEǏ0 ))IUW74Qid-kiD6q+V^`2ghں \`+ncck{{{ґ?.]tii@GGWUU|dξ>$%%B`&#۰açOddd>|xm۷okjjB؈͛G\LL˗/'!y;6[ uۈDbWWN0 ϟ?WRJJjc 08922P`žڢ%KY&>9<ӪN0a22¥djl wCݻozժ d@~m+wuw?43;qD+PHLLml/##RX:>/abbbTUUHG?ף,622rwwI\\`qqpC^8\\\}J4WUUl2ee۷o:N<<<444?@Ç'!OHHHOO'-011m߾;Ҩ43555Ϟ=7j)q"-%~žڵk^J`"l卌V:;_OzzZoo\~_DӜLP~`h%nM ||rxyvP;ΝkYS5QQ0 &ȑp7pttt~~~uttN±/ccc!Ј[jQQQINN ޽ӧO^"-O-vtttvvi:իW^rrr.Z?)#wC6,\H 73);f ,̹sY cP+攕oٲmJkk܉3wMuu-~eeɻw߃;w_o;Ɩ8ioF7+,jj#++?\hkk~ d-..Ǐ񶶶srrruu?rLMM%%%EEEMLLTTTZZZHsuT;z(QVV^d Æ zzz֭[A# 7ʪyzzwsRG ((J*V1\Q3OOO557*(( txaݷoSllYUUgOrauMUmm;v$B o-;$-sKLgY>?RzCO~~)Ziqq~EcVVg? ?S72TU k@sc,1AEa!7n ۲%f!y7tr7TTT @qDq q=k} @u֯,+sJrwK% wwu<I<< ܸ"JbCFE1x<ҩS7#"LvZw72re BkxР p+r7ࠜV63wYrnTԶ#w[uagg3?yڵJJA`dr`ccڿ_̙;p** fnǏGGaYpg G`hvZw}y SB{ػkj.ٱ˗_("@EؘRSm?QP8zZh4ȑ[TyfIqMVÇ6ikelm}Vʕs3o54"ۮ\٣8@.BB;v(]#t35LLtgV(qBPQQde瘘$P~@=lYq@6Msttpk%ZD#// n bu^P8C~ ^^))> W}}mDEEYXXdeesrr`Q(aCuـ;J!1LX?ؑ^*8 b_?G u `hN>oqn޼Ou3g6q#e۷'\w"jnnabbx֭[MLL]/?~}1beeܹsS7ۻڐ"@$@ءP(qxA44=Fx<q ڴAS.9y )0ʕsKK{z^׏QL >>vGGƟkt: ̌*+(誵"'/_~֎dggvc7z{wtS38"RbbU,X:;Mصk >sY[agg27;yfOOY KAvp~ qp~vzzp'88p0Zyy~Ǘ#_F04]PeGNNfxV7ަ;: deeٳ#~~~gΜ!nkk۾};}zzz~Pk u)))NNNҞW tB__;77{__ ?>LXRR"&&qF$$$w;B|OI++1_cjzr:sv!: }}Byy1PII ^;99}EEE׮] nhii >}zQYYٍ7|}}CCC?m>}z//!4v#䮄jd2!c2SF"GE>OOSw72:N pNFFmm`P fލgcv ieeIwK)Λ3g֭`̐tǎ$-%zxA(XZ3&ÕhKOO;wŋ9:---!jiigϞZxqPPPqqqBBBpp͛444HJ۷oӃ e̡V H5tubmr\WRT4mРxč8zz9U1'8ZZ[Z0QQ47]>03s:O< @oڢJ)++fl>ϛEEmCgvWW]7Ǜ#p( 888xxx޼Çeee؈͛G:.&&~ *AW555|||( BmذӧOuuuK.8AZZz IEN\\BRRr Րg]57w<'k+"" k+0Ez)BqݸA@>UT+;n}J.X;w0syyOeKqJ hR jW O03YI_3T TaaΤH$Ŀ\g`++#I_K뒯o*% nn)|705RX<|X} Xd<=s `_ע~4鮚soo/_nݺܹsظ|ԩSlll<|phh돌skaa\]]FsرӧO^28σj IDATĉvvv?xdnϯ^}!lZ $ .<   @dۑ P)0sL>VVKˀwvf"~Y,4ڏWTWN|| BOR"D}}SwaVH<}:ҥg6wkQ߁Nwpgh("(GsnnI+++uugϞ%%%y󦀀u֭[uWWWEE۷`euuu~/\̬vZ99˗/߿رcG]l#""HܵkWOOfEh<{(,--^LiCdf74tRA,#eP(u C0(O(Ann"Dh088fbĉ`3gC"zzvgqsQQ^* ^crKQ++(j⻜= !qq8BB))ԷcZZ6l.&[/? l/z<q(K "H .>V@+iz_ʧO=Zvd*۶T޼i?m؎LܹCC)q"OSsM`bb ,ᎊ΂w>!!u, q8K[&&##/_6Pij?͐ n))U22R ZZbaD"_S ؽ[ɓONOO;9 퍁P8Ō//8@GGQs߾GXK|y|. h_j)Ң|}7|ҶٔD*)m=(,igJe[~ "ŷLL`==㝜B.YB" 谰899MzccǏ?Vlܸ88iS`CCG\~%%j1ן<)`9eaOPPt\Y] Htt4CC5De&&0`{1q 39 /||5W[-2 <f,Y%%54.•{c[4 m ?>} Q 85vw[Xw3@ +20p!]j}})=Y59 y{5ckQPhfH2NccI..NMMM ||s!pX>9a=_B__*;^+LL n޴KO*!UDOcDDw'NPU#$&@Jkn~ԩ''$,^G00s$al,WNiC7s|@GR 8@@ǩ{fz,ۋML`/8D'$%RRqp,41O0T(;۝=`;]VݵKԩ'fbQ?::IQ+add7uv+f Ó'٨fİ"}k##)) Xnqzkk)>|@ c,A"5lj8qsC.pWDrӛ7H$bxH_xyY['m[o@100GT;")2rOCCEopN 7ܺ >p@BV88%$T(Pu{7qIwpj;!R\ÜtP^^lwfϟcbb(YP\L ==kESЁzzrs!9cH8l_f|C EKKԊz "3Nov8٩JJ s^Vv1%hiQJ~~E^^+W./hb߱c/?SW}ұcQ )d 3Nl@oE-]#SywEE4WaaN& C5zyad357>={tTT<A9 h(>k/?yru_;:޷Q  zD$J.54tr738w.aj/n˖9:n:bȲ>uHM-g*|W^QG[ki-JC^"/S6,_ݦ>}N ds ɛ7߆))AA*+[/G:N D"m/^|J!tIR|.8>I^^hÆlDgݻ/^z}iSSMѣQ7<" ?5zzƯ\y5zzR g.]Z˜C0|Ң`KKk`PP6lQ&&z6jxxB$ZZ/fۋԴJKS#KյpI4α#ptԌC7WTl`$/_?p@֭jj>QQ ~~6//\IYZZ|ӧO=Zdf5>m@P< =|xɓ`p\}k .ϛCp#ddԹx5٩)*:e" z;3p8<T CBMM=u✜+,)>ۑ188Lŷ CH$ֶCPX''ҥߙ1'OK22/ 8s&reE0zzڃ=ZJf|P{=7ܰAѨJ9>5%(x<'P"Օz}ߥO/\\|)8cǽc 主A-O@-b##Ԩ31Qe ~I[e::N857ax1S W/pNN1޽#0p[LLe83388zyggXm[M`}};Nիtt4{>:9 T16qu*>~\C7'7ׯo޹S~;ez_::c'OnZ:hi 55tw۲\b&Dfj遅/kA;*"i&REaaZ8Tx DBel:V$!!!#H$}Z;shl,s| ~+7hYff,]s}tu뮹wu 0m+)xf%ַTjj}SI_ԭ[PƒSvvkke)EE>zTp'OI:}}Shի/ sn uS4-:=QSϧF* *,:( 2NCCP -ZuIG ȿxt}vΟyx<-9JWjIG==~ͅ}|}~P\^^)W瓿YYVv8'sI""(({ttA}ʙlѣ]h 17.vwtԜ:3'~WR:s9*TVvQhcUy[ccy] 'QW++H&[ ɝQ`aa\ j=NuAN胪).B/!!N<H下n흂 X ++墢S9**~ۏ&-Xw7,*߶g휃)dbhhbUUkh,C$cb/fdݾm8~6#-ZAጙٍF +W~2EDΓ$:5ַ0 B+4<<N yӮ lGRRQYy-ϟ#//˃;}|,CCh*j ^ N+]\[rbbŜkș=o݁de<44VKe)ϘvР_ZY;%0iipHBnuAg``,&)TFnuuZ^GNɓTTD7.AAv.9ji֭sZW~xBO@T74tJIAK#W+X`/@ n]Ŵac`;3Wd2/*:.v@J6kvcZYBe)w]ѥ'NQhkwUXDX_}GF&].\Z ik +;=00nX^~65+3G@~dQQYR^D5s45P"فZixxH$@,]ڸ v_[N^0'sDGwoGzzwHHJ+W:9^}tkvڴi˗ mmP$$.onD[[X|B623뵵/DC43acMNQGG륝#z{9iziv11ed\}̬4@ݦLL 㝩M5m[|/^;:jKjX]7UC㢎堠aavyhew.n޼=~È+WVX[狊H~.$;:jچ,ddԹx5٩)*:e"[I<@C`BK꘻uֶQ(dFk_4Й?Ɂ#;_dfkjPIK]]RGyDB__*;JD?_G0s imquVVU^nnє?~\L5兠)\ynb"Ovַ911Qo(g?33}zc P:Ee4&>DBĎ3(/?Kp. UTP5pZVBZZ005 N΅ /J7y>6QV^#39oחۑ$'W2?SΏ,,Ιed31wp S0sZZr^Dž uk\NB{8GƋM>Pk/Oz ɻlFFm==-1&LCbJJߦ˗Q4Eii 55tw۲\b3px NʁP]]S({$%U65R(Y`_ F 8z°l87cuu8zÇnkk7 HHHGG>v'Ж>ҢT O?n]|;a8qb؎wɲ"BK"brfkJw [[ܼiG&&F)zXY)D h҄9x:٩rqAeA!,_WNM sR(Y e(/oRTTrzz">>V?i'SSniиM^0 :GGNN:yߺbl _D10JzssHIDܽ;00vz2Qavi]:0Rm hӏzy]9~vY?˗II *A488fcsێJJm usExv ͒/_FcbC$$Nq1399hY`;3NAJJl7of[;=}xxXX|?zCLPȜ񄜜]]) Ujm -ꄄ׽?>?NFF:''Rϛ7X7,߃1(++/߿{??lfFg$x==IAA"2:6M?gd;f0!K==ÖC Βdt+mff7.?..B$ZZBBrMMee=c80 O'DJJk,̓AJ5:ׯGuum`˖OD" ٧8(cc$#+V<jy_T`9HG,45Ȩ#:%еR>p ͛P-[VGDcOt陜\cnN_ruB}DGm2*DCCo*z?4aam55^vvPT ds \8ee qBG^5,h͚8Θk޾8p@Ϗ3DVvmi[ܻt%|00FGMHpfccܾ޵R)AkYŶwg–-cc))Uuǔ}ya4tSsse--*!YH̽F?PWmq.!YFfyM@M۰ANBCe!5?o^UYWU@Bk ߃!**G\]#54|BBrJE(-- mmLo@CJD\LEEtBff7I$+/߸}zNl 6#-ZAጙٍF +Waq Aii'.##Ӡ SxyY8uwC"5MTlߔT#`d۶mMN{D….. gϜIhh5m^ ==)odser.33}xI;;3۶MJR ޻7EE/$c-ff7}ɓ@ Ĕ99x:8ܭnWq?yr(:ـP(8 (uuedԁ4D9~Q` D&8 GE::jBgS'+Π*a@ <}t22tt.~aaE`{3'2/,A}z 峟N=*D BƾA 'ee>x-#خIΞ5++;kVTT iSm-harGv58";4<)/8z`ffёwo'Occ_T55栠m11ɲ hh 25WQ:{6kl::jBx NB))A<-+ֶeeчh{[ȁS{H\$(+(x',~* g ~=Zef~4dwPQUQ=~(&,"8,HFfѦMLM88Y;ξu&$ YGGMCCYh6s+) nݹZcm|ʳG fPKK`RRRsfĸWɓxWviсp~&u >tsr28--zBTYAA,I^\WWʵl3%"$U$'.yB;4vo_ pDq88:9i;9i~ /N>{6AKk-@0s '++ҏwhb;4lYҺuϛ:ǺqHOOkoA+6HMƾ:r֭k,H2I;w.cӦUnnW`p%%RR*9|}mV\B73W! [\Y lǍr>8E`X>@GfY/&x\,9RCcyzQqqٯ9}0+j'/糳Sח]LM7`@*"@_h}}{\+R“^GGlk? ~CC+W_/ ٝAAv"1⤠~AA/X,}tuDrreSS;voў pDmiRRbbʶoʰaƍ+@95DD̏3. ~ٽ[{gh``lNk,Q\\Lffolٲʷo;nܰ||:ewl/Kc7o~),.j֣2UR@ ** ;f`d$ de_LK6+U`#//tF8 n=ս\ij?`ik5p=ϓ000fbH$޸ib"游;wgSNhgjgɓ". %##_;BioZmlڟĥKV۷엓n6I;:jvx<7Lq_4"xBrPP⣢J/_~F O2vpPο/=.9FCc%-C@Fxzc8=@ ddQ((34G/35Ur幑499820Ё>zMZRR@JJUCCg@V x5eFFrYGDuIyDD_i𜡡b83hiQlB";w޳Ɂs8۷_=pzǞ{vLD"3>4ʳ1xtǏ=۶;f@ΔʌllzzkJ>  IK յ};Dl !^^~~p'Ekj^||@! Fg~% :j(-4fQDGԴ:p!->wΌtP% v4y`ƔW*8:jN3\;wor&(1YHs:Gޭmk{MJlX,t++iW׷o|ymmI>EA̬,DXXa[[v/RR?z՚,p`2=ϟ<^Yc(//'+)%%H$BCc{oZ^NUCu\\LQQ{olRQ+/_~a!20:8LKcc={txyY +tqCCvvMM=qqgP(OGєh֟6#.'-iⶻ}Eʐ^fSONFG'3ciSӧ7o^9oĂqL~7\\LRZZTh7LN⒒*yYW&+NRʳ-,n2# ʷ=_ߴws32FD߹;::!$Q\nţPȯBBYYn+WD[ٽ[sf4]]l;_-6 ))U>>);vh8;+ЙY^U؆ rh 33Ň!DI[u , /C,sg;؎9TQXxWR^llGiiPn /..>E}$v71pi9EE R{㜜99S4f q00БAڶ}!ի]+B\NC|˂4VVVV՟Š<=\dek&ն٣ߴ ~x_ kOr7244|p8""L?66%==D"#Ld(vw_㳑}ڼ9htt2>YDW~~Wr]] 5#.!ÇnNN&ta0E[oܸl`f͚e g]\""CC g3EpJ7 p 100%+ 5tv23룣BB5pihvQnnf551 1 ,Euu Jn߮:{,-o qFD8-\ 3.@Zϟܾ2,@ p8VIw.P(憆 g8 H$)>^TA"''OOϟҢRmccoZrr3gL%%0 |LOKIӓ26[r `AA9x< Oյ_8JF}YRTtD8uN7n XepB˗UT?r`DA<(d#{{Ghi2. g --WZZ//1/ aaN K45򂬸)xxZ_P.$$//J{{5Jۢ11--o:8srڹH$ 99 -%EH$JV~㿍6ȵLm&%+^;8h s@^ɓr^^ֈ'm6\co7::_ODZZ0&fڲU1LAʴTde;;W11JB㛠w _VEj=BBMMnj-02Lܨs\ܫ {(DMD"ȑ td/9y0*++kkq HXf2e%p_ w=~\|vڵ׮A-GxBifex"",,n:8#44WPH_cP\reIoߋ77sQ{$ D{@|Yw" Օ:{uw'&p7nd:eɠ쀀L/nܲelA_feէT%ǎo @֫i㉤7@ ֬YVXIl_u]KݺuNP""\}Է:;\~\_~5(Iį\du !!99o~ N::5e]yykozB!%%V]JTEElgag23gLOؐZV}]T[U۷_FD8rįEw8>'mB @m㧆>44H@ rǏS+RFkk? , \NZ^^(-D"1+M|m|}sX,/w`#] #"#'Lg;/=.9FCc%-ca`ȈRMMUK!u+ CBMM;]sfڥQk~~oDDRnss@\)"X\_QQ$bc_7={v />=rdj02h ==Õ-JK?`xaaNe%**KVY0Ewt ǭ^(BUu뛧# ? |PvbטQZ;|9(T5DGG ۋX^&," qͼFR._ɩ855 Vgd$;E͈TU} -_ -}H;U8p (׮O**Z<(`p< `suE>]XXQb)jD"Yc{?f?3srޢPHWp8\vۊ]vveek@gh(TIzQGWHƍ~~HDppf3$- 6''mkk;76v|\pwJJwt ZQL$=çT7b+EEe@3wA}}S++?+(_.Օ8w.1=(f$-X@Էrjmj%lTێׯ7ix<-ZEe2-g$>NWWrV 'z]TWVT~Q뛆B!.呑Y$--(#HZzD f~CfNNY<'}k{-R**ozojXn]w^j \Oa==-CCcc;VvD 3"EbYE{*v~P\[Q (+1!k^^=ÓN\`n4,3EE_C'piS]+PcD"sL5MM h3DD qY33&$$3#(YЁ={BW=thE /@G#5uKeeKmmk@@Vog,c"#KhiQ;; ߻0II7 +$ýxtb` 5vÌLjʵYYDZؿZ[I? UWZ6D^`08S44H<)~>I~H$9^_Q8SAUDM%++e````~bxx 7fS#6EDqLl쫽{u_'& _!="(Հf.j` aT]vnܸ=|XemYYOEų!W+8C6XXI2}|2Z[ZSZSӚ\yF&OYWBB` >IIqq~>>VpYw3p3cwpXic#WAQohvۜj))~ҳy\Ym3_hkђ1Z]yzo_Xv*7*03篫lXX[/ PHAAy,\SDSXiAn}a~TKK L333==\s 9ZZZΜ9s޽[&$$ywp}lٲV{n2J βe<҂ٌI?sU +p&$ERFӃJ`M /.(xtb%[#N0c M_''qot46vյ5vv(!/.οbҥEUE(9Y/ܺ?::c Ċ_z#)IZ`ff ;3H?755UUU˓~͝nvwJʕgϚ"~_۷6?{>Z J,X@##HFfG:߼ii+a211ex-/yi_V[[lG~<=8=uڵ:?]H$u[a0 $vr71čcp8$@TWvnjk IzzzLLL[[BB>@YOO/&&kslܸ'%9bf5O.\Oo߮."07 >ii*mj[ ]y}8sqFsϣm`{rrg~tf߾X:m"FA'!!˗ݷM׏wvm!jaa8:[Kk„+}ϟfLnDE QTPSS ;u%&͛ʕ˗/#T'J!III~~~UUj !gdd$,,yEPKK ?~ׯߨQB !q>}z֭!C(** BhhAdee.^1`mBm`G>tBH$zxx h4۷BUUU˖-8pGcccH1 011eMdd$#K?>gruz,fjjb |Ϻ:dN150zԼ{Yܔ)7**nyܢ"AAAGGǂpPii)aEԜ9s!dkk[SSs)Џ?XsΙ3gb+..njja؛7o1 2eϟIJJ BN3VGGd êDDD*;;eTKǁݹsGZZJbnhhHwO =yIQqcfw~^0N ɳ0 >bΖ/}Rm:owx^NWxʕ{rr >My{Ѣ^^GPnxunqqU:rÍo+: 'Ы@ĬrFFFEEEc bbb:OKK0LOO/::633m 2J:^[[Kk>o޼ UℏÇ:#Fzaͭ; ͛7bbb͛6m%ɕx[8I#{yy!>}xGnݺ͛7cnff2NZZZ1  蝉N7nMW K4i/ʇ ظoƢZZ^.=p6:ijT!3ޏB[ꜞ y?:qyyqyyqrR_|򂂊G>UTQ8PJEEJIIBYYRQq8~mbb W8zpիwAP~qK#}oMA 4V>믿LMM7olnnβy]]Jd$>`VV֪U ¼CBd22dׯ?~|фǏ?|p̙4mm킂Hp_8qݻ;+Wڵ}zKHsFGG%$$~Ea ۷mN7G ?{yy1bϞ=---[NiBNNφm=ztԩ222U *++_w ^IIׯ]vתN_vbŊVVV,Ϙg|܆[[[OOw?~clH255}JP:~;N`6667n܈;vYw+.&&t3~ҚʕSQQϯtt䳳K0.Aik`,=]`8Wxˑ# ~~s Cp@|XӣGş/H$d7XuҚoKJKJj>.{IHH@BBD^~ɉKHhWY8)hHgʬ]__uV;;݊8;;<4o<'''iT;7eΝ(aa%/\g)ƍӮ_oߝ ^mCWW Efe0@M+wtǛjk]\"&MwpC3xmg4[7^&--Bɸr#mۢ׮_224܂O92eg#ΝWrssK73OE]Ymɒ?qmc"̜9ϟ_DaMMM^z5aCmnn?61Zթ(00%LL OX&NIQqԩ :166VII v%| xHHبQ(*nLIp aaOx޽tUUmۢ9RTTV\im":uJNN.::$555,28}9_O=\JJB(%%eM6-++ŋx6v~:q;>E^~ž; /[[xyE` ==!|?, q%%}TWpsW&)){IG{s'Nܻu^-lhh'NU+ce1 g&HK,a~gϞлups_Q`vUmmm6JJJ0F!F2@$III___С-/H#m ;ںo${JQqg9ð7o(*n|c15{{dž !k0  D$ &^&#c5C,rFFƚ5k-&&&:V} Dխ$NpEuOH**ieq]Z mYdeeTZq+s\XX<~x???''r);; BhѢE/_ ZhQW_aw=!eVCt(( Xj~[w"3N~s)U//(YY%RR\_#3ÏnnӸ=SR]qay*)S [Vo>~_or{`\33CQQn(|億8glllqqq||<>ՊBgFCv ---mƌǎCYXX?~|ȑx㰰e|{v7662aNNNFFF+V@˻n߾޽{YYY/nll\reP;,܆ rrÒ IDATr^~d6Ϝ9S]]kj6_@{kyYȫDrq*(H Iw ,#eK4ёGeepu,}{0e I:S>ڵ+rx= />5qѣKzOքPs;YEnnn޹sѣ/]:תZd+s&$$<իWD"1** }ZZZ[l0a‚ 1_T,3gΨȸ444tzT*uرbbbȌ,ho^!$ RQQ!""_ M'nUΓs瞪ҺMoU۽{Qzz>!C^"'DYw吼rC-k^و}!T^^rӧO+++ǗQ(j6ZEȥ%z_<9;6lG}}a!$$ACÓ7?`?Y* aغunjECTU?7^rM1Z7̟*N%Np$N [n1wW= 'ZՂ`"ҒbrJJj6s߁@ҦLٷp Hd(*n*RaaOuu}9"eew\n:w?)$()w/W^\v ðVu^wQמ垟?.uv0we`8fs{۶Y< qzc>}B̙3EZ1,TSSc^Ç+[^ = ܰJw,ho4`DDCfeq7q4//snkZ✎\p-jJ[~Ǘ:;OЫHy9991BNN5Xn://?xOX H$bHȒϟK;nӱ<H$hiq>Dvv Z=ā-Z4c YvZwwkjii۷OFF!ؿ!CL>..Sy6.gAq>hǎ9jj2盛[ɤ>ڵ7\P)#}RCC_qRiAAjd+.DСE.>P[zⳣGY O8y>7?߱fjlX259@)3ÉSVV1J30BdaaO,83CUO;SbgϮٝreܸbmݻn*H& ك?,"9ciwm! ?.mhh`Ǿ᯿(VM8P=345,[v9<|0Fi%11"CfP Ϛ9mgr'{7{ϥ! h4zVV 5S~=nckiYsӧ˗%4 3 ÎKtp8cf6ڵmPo֖!"x7&ksS~pwSjU؝;nPĤI =ZK\АnḻYCO/?"4t!N6lxӕ+κ F7JF@`Dހ+N~;#FXp!]޿w]VR".bvdy0IEE͍x@ 8PAA|sovC͍ΉDgCdf9((趂€%Kl8 6ou+ÆipcV>~,8+W '!uu˗/;g󑑑ϠP2?!뙙N6o)B+f<|!4ԑD-_KJin] 7/20PΩފ**9SZZ~llS\w3gsz+7n:xx0"/ @7J\95));& ?{css`o&}w,1gѦM8޹rff!a xe`ȑBmvc0 #N,(?:r̐3knnٶƺuzZ̚$NDml:吞ꨦ&8vuի\N}zu zի/; x=*6WpBeeD8B(:۷_wÍ%NJ Iܻf!5JkWl>[:1U}J~ffff4ۯqqoK8PrD}33ÉN9w˖벲/p%--0wڋӧ; R" !veg7+Ν{s]|vGҀw7qP{&8b֟>ߺBd?7NwTss#11!~k˖)/&""8gNoYt!w_IJ`=11!UU錌3yoVV&=wHBC˜S2DF޶톯epsfMM-qg>?޽6 ru8 } wbW"b]\"H$"3ڳgI{wvk`Ɂԯ_pׯ?;i۶YbƍwWܦ[7=S|>?'*mbig7%"11߱KJJt>˗_>x*ρ)3Fs_ҥ.A5i /O? ,LP<~ Ao^L@ =޼an;M>x,w?9է'..΁Ξ<ɢP2vٹvWܸĭ[8m+VyxD._> LUz$D Ysv‘!v7i^CqCUPzzĉ=*;V`dwT*m˖3gOîEDIIQ. ԛAoUL"S[۸i>yoƌ?q51KFU{CCCsNN۴F{C]]rSveal%3p+Zdc3K~0 ]I1uHݱcc 7إK/F7ccªn_'LM͗QQIᅬ\+(șOǎ%}; qG:lÇB7+YY^^ΓH $N]ЇI,X0BDD5"?ر%5b$?ѣ55e{ҕ @HK˟: LLzT/fر:YPGybJ}R(ZZrW'݃~C F8816tڵuuMˬL''5 \WWaڋT*'HHJnԼާ|q۶Y=GcQǎ=8xp7™38p<&&HzJOO}F|/n4ꧻ?p&|(:{ɖ-=uA֭x'mm9<㨩xs""BM $N7I(*JĸX[ļc$::[Z>LykO12RIMfOcݾDcV^xTz`yٲ3 .4ao}mڴǏ?2^ѣ#$yz1 QQPGu?.uwH/)nedRZZ[\\0mSSee+)Ito o՛K+qe`tJc#{'O>;V%'eeIvޗ@En1 `![޽6 > pɓl۽NTDBjj~7n_n*. vAzSuuM11.iϵ?jm,ћy[x-&8…U }\ʗddĂl""ǧwqqauuMsJM~%#]2s_t:fݺut䓒|. YS q_ĤI ""ccţݯUun֫i{!_qB!䕒7wQq%: >až/r{ٹs+8s*$$npupf/;ed֮HѻHESS0 FTQQcGØ#5ږBɘ?ZT:IIn,=-[،x؇E&0H/&qCzz@htHHر'Nܻk׭Wr1 o-[,Ϟuy3p^^9Ιvyƌ??YS@b""G؝\wd)+KFFx;.ڞ?vvmۍa4ttlejF޿/6Q}34Tf0CMMO,,ljhȜ;RFF͙=ysOOs)p 8r.##0&e8s愌Idpt8@Xd;nMM-S?s1Wc2SXbSS Mede}4wレv>=(:Mz/?ؘ1:QQ{5۟^ԣG>֐5q$N}I)ܾv;bNTro,L:vli^^Ν21QMNf+qjnn(d?qw}ll"B߶톇GڵORUU?m1yޒן?R]]{]@LrwqI=NS2/8wiL;6 WvLKonna3q\pdWW\g/ sk%J;sQn=ѣ{4? w7o8;/,<@TT'&f&$d&&f65Mfhnn)IT*ᅮuu\bcwggOmm{篠0=OJ IHO`g؊ii^KÙPGU6[10j'Om 8}x1SBCԤCBǎ=q]nz/dҺuS7 ̜yh׮[NCꆝ;UU/3DD"S<9СdMWwCϚ>hn~hxeMceuxժ0'O6{{[@m8FxVLB__1&u۶Y=6W-!!SrrJvbbB y7v+qr8v["tc{S vm\6[1|Xt昨ݻnǏ/UVj'V=7gyGN906L]QQO^֭ %3--_BBd8ݩS ͍8p#?ZR'a[Xv9U`GllڵCCOHd*+)L.9y/^>yٲ1vv45QG9RSYYr5c2%t:fcs>>ޝ ^^bbm6k ]=K^*iCIDATl
    L9tݻn)u޷o+W'wЊwKuuOOsKKc,Z M_~fJK ̐Q^$phRs'L`F̙G>p`a_hi k߾;/>n ji3Z X[y s$*aHMM:8!dk{!aK9k4Ѥgiۃ֭ 8P̙jj`y؃gKIn8m‘0׆? q~SKA'QQጌAn.)ORϨiU033433>\{=~}L33ݻ7?L&uuOg:LZZ/"#޽0Xtbڴ..11h4zBt7SßsdL\F2ׇGG o0{ܞ348ض_?A6̙ǧN%$Wשc-_  `QL@8gp/&.sª>OaJCCs}Tڸq{/LcBzS[ȚHwXHK'YURD)( X @1rݻiRuuO{ǧGGE^!T[۸r幽{l<%n۶UU?YS[x#NzjՄϷZ5ޒ|Gw "{4.:队l)~z'",9y '&?:4-&{EEǒHc#"^HIĸ<&]vvIAAٹTXXpɻwZKc߾)YM[""99%II[5'/.9y!SXRҧIl^Ds3 0"TuѢSNg2Z[$&~"6sMO?ZWK9}z٤I e%V=euHRRb;X~@++&lb?nZZh?AJ۷3FeĈ?~b" cwiff,!bb\F\\B{*?WH$oD;i+Wy@ rXbnnVII?eell-Xp"8nyy>]?0$$DUt:kSd24О=["##ORRTh5ɤ tLBqq,2H"LLTIgޡ}YSaaլYG !񢾾رw>L-[,!k[ ;}񛌌TSL5"&&3sO~~?ht揨:Rݯ65Q^韚@ ?D7Pqq?s~O*)ITc3DԔ reX}}S$$DP<B߿WΙRRRÜ_IIN_jªUu|$fmm)SYY&hl޿Oh4:sLUa3 CAAOxz2ydĉzB+O?~Ԧ#FɨM gG$nύO'#D"ΓN|DmVa莎MM-fi5!~Njvw5r85CCeMMYF3LZp#}D1B3 ͛wY[}ꋃ#55{ǟ&Lz$رVJßw}mm#nĿ ݩmm>=]EEUC ƭtD"AH̘aZuO geef3z!2_1N#EO%%6l0clOcaQo=Z ի\*& @"?ٵk^rӧgHDkƶךH$LB@ 9"G hll^-U23 E22uːvn*+++--cD!3Os"`DQQUEEuuaT*pyiiQvus1t_=s'B($,-ݼYSSрo$ ƍbad?_d׏;C uuuBUWW]?^̞={VTTTPPpܹSSS< #""233y`$N@_FSFF&((Uߟ6m˧ON`F[ɕעnMVVVAAAYYyҤI7no޼ 9NϞ=D"-YxzhXgS{[Ycw6ˍX qb}Ç_x1p &Yl?v@@ӯ]VQQb ++ SSS?fddt4B(++KMM,GN:ݝQFFq٤ŋv|ׯ_-)))vje3f0҂;;GѪyaakpp Kpa؉'fΜ86d~d~U{; q0mڴׯ477d:glllqqq||;=''׾˖-C9sN;::\|9!!!..>w͛7---mƌǎcnt-[_۷obyl;{l Ѕ jjj9<4~z0'''##+V ]\\xpheee߿葵/_6mqÆ w%K:Mlz~ll,aT*uرbbbkkk=b9NW\QWWswwojj;O=p;sBBB1 qㆢ">Mf咒ҫWgᡤ4`EUVV۶Xm777[XX0(!!enuj&$$'ƖW^Ĩ(n UTT'uENNɓl :t'$N ~v;nw_MMMAz/JHH!$$$TVVKHs]Z<~C0 :t'$NЉTḍIENDB`XQilla-2.3.4/docs/simple-api/classATAnyURIOrDerived__inherit__graph.map0000644001725400016040000000064713273140076022727 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_1.png0000644001725400016040000000411513273140076016404 00000000000000PNG  IHDR%}%bKGDIDATx{H]ff6uѺc72R4"J)T%aGb\dJ!AJ.4/iCg-n㼍rr>\y @`]MlBD`/ƱRT*R C,[0'R?XoE\v1ܟ`˖-$_L}}}rr2c?؄&DO6!z"[z*..())aP?? 6444wc%T]]=/ݺu1YazB-[LP8m֭[P(:::8*ɕD{-5{jZ?dŴh*J"$''վ]y_"===?~|َ;judd#K<66<ŋccc+FGGvzI$rknѬr\.F#D"w1 E"ѕ+WBNnuk+Ν;JEEEx2x  |0""(in..!hnnXJZ?vZMbxl!d7tvvZj[P333"ŋ]vXlT*Q(MGyდR)ZpaYYMf`0L&SN1Z;u5jVO !R8BH(X舊w>} {zp8.Yyzz~'Ѭuhl !}qNh,66qۼyR_z%-Zm۶'O8tSOsy3L ӧO+ s333öBs``={^>yӾ\`g|ˢ4ƍyyyյhs&11>::Z,[ZJ^__Ç޲z.fYTRuȑݻwkM~z tvvt:Ǿ}j2 8555..n``G&]p!7]XX?v6#ɓ'r`wwMN8a2㋋)DMMMhvk#{̌@  wܱH$Y"@;*ubbxhoǒLgee_Q@y`@PQQ1/ٟlBD`'=F!$̊/g7sssxaX XQilla Simple API Documentation SourceForge.net Logo

    events → xerces-c-src Relation

    File in include/xqilla/eventsIncludes file in xerces-c-src
    EventSerializer.hppsrc / xercesc / framework / XMLFormatter.hpp
    SequenceBuilder.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/classAutoDocumentCacheReset.html0000644001725400016040000001534413273140074021111 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoDocumentCacheReset (DynamicContext *context)
     
     ~AutoDocumentCacheReset ()
     

    Public Attributes

    DocumentCacheoldDC
     

    Protected Attributes

    DynamicContextcontext_
     

    Constructor & Destructor Documentation

    AutoDocumentCacheReset::AutoDocumentCacheReset ( DynamicContext context)
    inline
    AutoDocumentCacheReset::~AutoDocumentCacheReset ( )
    inline

    Member Data Documentation

    DynamicContext* AutoDocumentCacheReset::context_
    protected
    DocumentCache* AutoDocumentCacheReset::oldDC

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_49.png0000644001725400016040000000275313273140077016507 00000000000000PNG  IHDRm%ǑbKGDIDAThKHMWt`7VZhPC,-hK} =Qу %Kk+F<*"BK>"(P-$F&ѬweկƝvȡ<NGa= Q~a0#ݝ޿TDQD zѣ0ϟ?KRӪ?**aT][[~jjjLLLZZZssj 9333| ݻHXT*e$}$J*jxx8sgggff&$I _NLL%!!A.,RP((bY)KJJ 0R ;|2 f:JիWZ666#`(E BzZӧOt s?~(IhkkKIIiatP[n4}ҥcbbB444999.iNЀ|Ϟ=0lii>.aߞ9sFף@rrrOO*+kZnWx"D47 F#˲˗/(ӣhPb~6<|R&8U*HHΌ cD2??8w L4;q{48Jng@r~[uuu[[[VVV}}}yyj*..nll7o޴Ɵ_tttf!IvӧOQY.s|(dap8H ;RH$rQ92pGi7ndggA`YVFԺl0vG0 S(@>F׫R^3 0̵k޽s镕Ƞ`p:6-11b k(''gvva_x`"##?~~l6t:ϟ?_[[]XX{۫V^EQ$Id2=WWWܹKdZ[[C?~Y\^UUVݻ=VUrѣbX+W@IxOqԩ$xT(]]]ǛI@( Ga= C!_fEvxjT*qVd7W^W#@0A( GajxTIENDB`XQilla-2.3.4/docs/simple-api/functions_0x7e.html0000644001725400016040000003357013273140074016401 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - ~ -

    XQilla-2.3.4/docs/simple-api/Timezone_8hpp__incl.map0000644001725400016040000000176013273140076017232 00000000000000 XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021401 00000000000000fedb97db6d8ac1f35dc072dc6ca85a51XQilla-2.3.4/docs/simple-api/classStaticType__inherit__graph.png0000644001725400016040000000670213273140076021665 00000000000000PNG  IHDRp0d5bKGD wIDATx}PG70^U@Bh;vl JR(ުE:ȋC!}(ڂ@2؂D6 / )6 ykiy>0w{~ow/KrG'3<OĀ>D{gxI!цJr8WWWt_xhhQ$szzz]DpzzzttD KOĀ>'b`j>!rI,F BBY P(ׯ_Z ?a||B811TXX ׇeJHy 77vϞ=GGlhHHvox8|X x8&'''T !>uV&윑!ɴ'&&9{{{?=;lݺutt޾MO### / kkkBpEMOORX\YY 7|bb|6JNN ^v&&&,,,ܹ4W399YQQ,++ܹsB| @z|7773LR !Ei||Ņfc^^^bnmm]v-*T @}zիWQRg9pFR@ѼT*5>>^"hΝ~!fƍX^IQ( mHP(T+WШzT*sA_}O>}۷JJ$,`hVVVPt`0ڃ(磢,-- VVV?hllԮH$@-[A-JZwsQL& ]}ajjΝ;h4ЃTa> XM6i_... ԩSv__6͍j*>###666Gr8{{{ttJՆ\I~>MlhhXj|tȑW^yŰxVCBB/Jx<u˗/_~׮]BfBP(ܰaCRR|Q2`pܱG2 L6_IфjB`111:>W^otccco޼) }||t|RT,޾lZO%%%k֬AsCC#z7990۷߻wO[\.trrnFAkkkWZEѼ ߫+̌jlGGȑ#:-W}}J L&1==n;vONN!^'>(66x'#o}BLp=I{ݺu\ٟTBD H1 }"]]]:H"y"l₷Cތ Le,AХN 4?]p=*ȶmbLLm~jhE*jITx}w?rI>055 @Kx1&&S]%1TfL[0ff?xEkZU^W1Nj;P(81.S]E3>՚%ibbMh'BN%ɸO<'b@D H1 }"OĀ>'b@D H1 }"OĀ>'b@D H1 }"OĀ>'b@D H1 }" |\IGFoUvuxx{뭷^2!z{ŢƘb-$s!'b@D H1Y%2KR;;ุ8PǷ=ֶ"?pСCd߾}vvvJKK;vhjj/P;Ò%Kbbb˹aÆ:4d׮]6`ҥ<6?>))ښfuvv4䤁@ VVV۷o/'N_lٲeˬA#|hllZfRSSo&/$%%m޼922ĉ:FFFj޲e Ù6p꒒> ݖd7oDhQ %%%JRJKK#"""""JKKU*}ͧިZDzL^^gMMMJJJyyĄv .9NqqPMMStvvj@gg#6]566r8nrb/2~[<nݺڃ9s&66ܹs:yh4ZeeeZZdX{-~HLLtwwwss۳gS^A@8{lhh(ooX,ww䞞g.\ NHH.-- 8>pL&4PD"^rʕ+Wlff/] Yb`tt422`iiu5!,,,\b:P(_|ԩS:fgg_~eR2_L&stt px ]]]}}}awwwXYY;;;FGq<44K,WڝI&JJBDP̌vЊ[nݺul7l6[V7vZEEƍ~~~ٍ͛h;Ǐm۶ ܼdɒBsss\.ˀ'˳rK/lfffgΜN Ȑn{wᤤ$ ߒ ?w4::zlll޽-TTT梻6ӸP(bqKKKxx8Zѧ䰰ky֯k*oeY$Z[[޽=؟1 }"O`Q# '?c15OO7,Q6mdbM=(& 9?'b@D H깰IENDB`XQilla-2.3.4/docs/simple-api/functions_func_0x74.html0000644001725400016040000001664413273140074017336 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - t -

    XQilla-2.3.4/docs/simple-api/inherit_graph_40.map0000644001725400016040000000026713273140077016465 00000000000000 XQilla-2.3.4/docs/simple-api/XQilla_8hpp__incl.png0000644001725400016040000007065213273140076016647 00000000000000PNG  IHDR@bKGD IDATxy\YvKNQAeA4D-M[GGGe *"r !r5?>?Q|3fyx3h^5 &H2LP^+V(**Rt `ccsNEGd:`0oaa@䪼<##%K@&@gM(*66q 0@:at @ 򲳳G+^r\yƍ[dɱcDŽB!EQ#G+FY\\,cxuK幸޽{С v7o#EQK,166^hu^^^XX؝;won``0k,E ehx%sѣ?LQ/bff6sLGڵO>tR=-Z&+aX֭|c._n:nbstttfΜy۷o/\pرSN=~ugϞ=iҤcǎQvy9s|ݻw| z UΘ1supp 뫪۬⒗ %K8pjXf\.Yx͛7TBY@ h.(((,,l#~֭iii}GfffE544_mƌzzzÇ(,\dM~{N2LWk׮ׯ߼y,400055irNN]'[cXEEEk֬Yhѕ+W:Žjؐvvv,dr݋/7oގ;}V=*?k׮?~|ѝleƍ3g_>䓎Vk:JQTQQyv@aWll?/mrb^( d@__ҤI]Y ;0ԁ+@vat @ RtJMLXT 2LJ$=zKL--byz4?##CZ{i`HkkxFF9cO~~NÆxyٳX]@-]QFF1USӨ=x=f;َ,bN_K[ۡ/__ S|~i]]Tom4uWOk82l6J@ n'$| AlWO |<6/_>Fi:,,:ڳL: '%]IGpw8FvMa+/prSR |j)4)%p|pۑUPPEi477sv`<a!UR_r?S$&x?TL RȻs'ƍ"nM>7##yr ]YY-GFDx#\?I$/y.@LF#F0 d&(#T=qqY,F bbRQ** i *ut4! |}45 ^2LP dPyfvUU5=tt4dJN9%l_mˊyX\\5dHRlS il䥥a={z앿EK937<یϮn052:pLk!z޽'MI)R*K(U.R돸ܦ= }}Ȅ2$B 2z44NND0%o ⸸,'#ݬUP{0@BQNNyRR𸨨ZSٯ_oW6ہvCK#PU̐Hݸ7HqM {B zFm//{6ہvT*˴TXx,jBc>_(6*:@ &!E&ҊD"ہ$}Z):@rWuD2[r#~LF#F8jiC+:C WPP&%q8yYYLל lnoҮSc,/KL|L&}JWWk>JPQ0@T=qqYnTVi[َlcuj{.51#k2><~W:d&ރE211lhim}ԸglGCF-.I233x5g2rVr T=^^('hgw HELF֤aS|C MϞ߻W@II)󅭧ACXA&/ uɸJ]]C }} 2LWUVVK $%=xPpr ~~66(Ra{SpejⲢ3KJj&& DtvvYRR𸨨T=ƘCО@1+b ffۓJb!Se4]v(e ?'PHxD+..G\nigrG o0:Dfw$8ܖAvҔzi*>[rOiQMP`xG(SlܲuG׻n&ݿ_H;DO4oo} t=cPϞՏACpOO;EǨH m) S0J'*e25T=lff3Viqe ԰5YȻs'4l޻W Ζfdb M0; E99d[rJJjtu flG##]E/=c_rrG[Ed25/_r^YئbOR &ރE211m241uUzƪw k'믥lΞ=};'..t sbl6!uVWלRHILFdD%퀩zTzƪ2A܀I0 kkص:: (*+r8qqY ba!EIYT=>>_mg 3"/X(_` )gh{yٓl6Ṑa:OsFVaa%E*w11Wt𒲳֬9gOx!zƪ_38{vСxRtHI椭m477s&06H T4TgWW7kߛv$*N  v=xP4hQa-4M3 Pf&ѻ𛫴HMr׍}XWLؘ<= KK+" IIy= ==loo//{Kf~1j۶E"X(&gJkjg?<ٺ,ɜ?#.j]lmi#ZYPtH0@UTԥr8yNnJJ!/?5vpuĈ u]`̟̀?6z>.]JrۤUM'_Bc>_HM2'mz &ʳg۷_~N/F2U@?;LCdA*_{͹x0аK_aKFU S>?BQNNyRR{jMMf~]l6O]"vҦׯŋ455x%::NZZ/DMGmSLÎ' <(b2b>>~h̘ WW{Kт!)+,\d||EQ4Mme|aff ipjkɄlf;jkw̒'(J< SQ)9qӧ+:PjN**qZC!w{__6ό޺o>_bi4x5kṒ 7H@ :|8o/ "̒ZKE׷ܻWq--2r1lzEQ|(W@ __r ^ZϞ&yNIqDW Cmo,@DQ1i{0Z] #3O٨ػ7Z &&>zTJӔ>>NǨr Eij2|돐a(Kl3+7s曋ffN[ EyyDc@/YxU{}}$h]{dDxa\LM1 (HQ2fL d"GǞo988VQ*-PD$32J~rruL GǞhT~hW'Nj;jt󅮮Ws`rҥLEQ"=h {88Th + njݿo(PL@U6._){hsr TG<|ibiw۶i_?R4M(:tTEQ ťMq1yDFnxP( E?=n·30:a֦O䄄bbhhPQ&EQ"uA,]glll_q#+VصkT E7467紴?;~\aŊWt v7xرceC ߿IY]]} Ņ&sqqqFzeiqiHQ2reeiZ˗ܹSOd s---4M+:o퓞[\\SY nd0(IQ @XU$'OZZZ^};EEE+V<{llbPt r5}OcSLDDӧ)St8/ytiqy˗/+.:z@ 8ut7Wi`222442404047ӧ(0__ߝ;w4]YY`0V\IӴ@ 066x"M333^reSSSH:DprAUTT>qT",8qbXXEQKyyy͟?YWW{WNɓ#ܦ<ɉJOI),.njI}/ ] a! 2LΝ;o޼RKKDp֭SN-,,LMMxgժU^[[{O> cX}ķ믿oVIӧOϟ_TTNQTyy99Yfq܃R5}t.?S3}W&LiܹsFFFi:99YGGٳg=ǩ ظqcHRRR(DV${i}$ZYYݻw隚==gϞ3QuX:6334MWNBF&"d0A " cƍnnnO>%###===IJt߾}Ϝ9C~!~]UUU۷oDuuuBO:0~[ZZ233BũEQyMVhXrr[bņ 455Ǔ2L=̙3έ#!׬YCQԣGM|$?p4MKյkh?~-[:š"jmdccE/YD0??W^ `nnnE%{7;zILLLBBM@@@\\ķ|Ajiieee;vȐ!n!EQm^w~RRҍ7^u//7nL02PD,QF"![O0mڴӧO4[IXyf IDATɜ2eʙ3g={5{l@at O<ٳgOPPʕ+ I;M d9IuzO|7I$>}j&M+W; ~Ozw۷>0 ǟ;w.++kFq0---Lfnn.yǏ[GB\pa{LLLG0|𺺺HNt%iӦ_N>|ML!#.ME'Ԧڽ{X,xBΝ;φ5k 4fo޼&!PGN:EҺX=&NHdHH#zFR9"h˖-;qDTTԅ )S_ 55uر{m9s|駤oҥKeEڿ`\.ijjI|s&Oy---<OKK/(+)pƏo>MMѣG>|ޞ(MM3f|Gyyyiii}@}}}[ndN:g)I+ jΜ9]99ݜTn +meT9 Tڵk_] edd"0Y#aÆ>>/8p EQuuuCMLLܲeݻw׭[" _ݺuIrssͥMD}m,:ZZ\%%%ׯ_D{]+۷bڵ&&&?_]]MQԦM F5hР[~CBBƌ3|p;;m۶ߥsȑkZ[[ܹɓ:::Ifرcnnn}5kV'͞I<怀^{5G0={;$$$$$dm|ݺuE}333t(zn`,˝:ujW6I0oeTԾ2d ݛfzL0+k*V'Cie-izC !4j*H[>}߿.{6稐Nb޻L?⫨=Eⷷt/s/ʡƥL?~6low}}i]'8ӏn| S5v 6uqs2 3:5y~ WW׆HgϞ~Đnmx񢗗^^lB>{L___WWח(+++/׮]F믿ׯgϞ[lz矓|ի----,,V^vEQTUUƪU( &&&.](w177YjUsssHȖiό(:|yC>|X<&'<I<:C,gggR++z(jĉ\.?$'\.:o'܆M?rmpܜ)S :~EIfI}}sa?4͇(F&Xe]!뤋mjy$ J\U71bپPÇ+9r ijVxiH4yd&ZuE['%X'O:;;wx%^E4- IHw!q 9T ]Yئf@@@\NEQ/KgaQvW# KZi%*ӛzj_-77SG[X?M- ;v,666::?8wZYYVRRRZoh?lCU(sss+**vL񟯪6dP thvbcc[E^K(jq5ș%~ )geTyĐah_ںloAb4+VRRG}w#F/Jٳg %EQf:qĖ-[f͚sQ0Sջw.oG$mN* @HMw(:=j.WN;;sgffX,[[ۮ_M=FeĔ'57N 嬌*ϛ2LP  ͟?Ν+--r  ԬMֿrJKKe˖~W^rtt|{w;:GQaÆ./eGQkkk;?mvBe):z([ZYѕߣ:Iye˖]x1//ڵksѡI<:^ v-L(IeTEĞ۳ueݻ D믿zUUU+??ǏSäizΝ5k It2H7ZXX%5}wMLL-ZD򩩩aXdCC֚5k;3gY^/_QTMMM6lh}n=Dhhh+W0`ӧ~0cƌ:o×!"[;x𠽽e˚{|>dkh8L犖t>-ͫVݻw=f͚U]]MKN<䤥v9ox"7mdllDw,\$NIAM? /#߶m[߾}ɬ~)9?Y9|u5o&Ĕ'Yuҕqjy[X|Rw^N6<;$MӋ/r%raPidVDKK۷e9|:w0AZu52 svvOw9qİ0_.\յڼy]nnn&&&[n% ۯ)~'Rjȑьij* ={Z+**6..M{urr266o?ٳgϺsٲe,}zfff.Eرcnnn}5kVJ]>Xr|wm۶ܜM6zyy5jРA[nm ٳƏ?vw8LpCů/_.vɒ%m~/^9r'|BE믿x#mw:'' ,XH\!9i=6@\T6uӧKeSiFcf}=NK_%23kѾ|fs!_F' K$-55&&-2>(9r-55?: PvUC۷o^ d ogڴi4735jkY<(iɤ{jE,)1,+ШJgР C:,S22j11i63kH}/R4sL6(Ě5kx㍊ GGKӴfgΜ) Kjj7uql|$'[::֘H16 mϯx4%O=zBRjj2mlL=2+W-($ ~[v@I“'9[-+Wymm$A2 5}ѣҬGJ32JHW==-"tuiGRJgg =Jgݽ;*7b.|2d|vs̱cw9rأ_h_c#~cU;;#\ji""ї.ߴBee/[dd/eeegBal# y<EQZO)[~=q߾ɓ滸X9Q_==``-[>ǎ%hB~di)ن@6nc{ʱd]RWלWQPPUUQBҰ020a&Oֶ[z4"瘩;z7D"ь>|0W/cE!WyRu>;nlHځmKKHHPhEQy|sɛ8qPX>}Qd$m,( ]˲JJ hdcnmmdjg5545=$~Pg޼a7G=EwL3OVt,EQMMlҰYVVkcc}hmmmJv`04zGuu55e66> ke;X,Vtt<+ģG;w^p!& h#a.Ya@&JJ ++ * +TrME8;[X4]SӔWV)XZZ/] Fh*:(>ӧ__kiCѱ?}HGGs>'R8խ__ݍY#gǎ%>y}ǎT V\\'N$haÄ]Sd!2?8,.Ehۛۛۛښik3xO$v٨E DF`pa)C|F& `/(:**bcFEeDGg64Zv@T5 nggzr@Bѭ[9/_Nי4iлׯƪ9x𺵵ڵ'N$_Ld!5D6I ͕=H&iggF^X[xRSRS76LJI$vEz{;,]::8]AuU||?83N}܀5wNo޺uomee~64oʔ!zzZr @ 46۽;JSxqErnF)2LPaeeܢꢢ'O--YfI{{3L[%rrSSnJ) ΝF|yza˗Ɍ]gl\#E;QiTTzDDzrr6!8}%E ^ԦMZ-YaD"ӧ.^ɜ<+4eZܾrCwq Ô&2id5!?I&bielkkjkkjccjkkjoo֧Yq}ee$LM-pjkU4k>yw_GǞ%q́[5Kѱ̨C;tf U!<`ܸ]g,UH :Yj5mз51ї$Jo|z 5  2Laiݻ[^-(|(MMe\̬MX, >74N[[RJ~yuOg/]:Z JEFϛwhip8/Ԙfh"* =x]~:iѢ$<3wBQHȀP]0◈%& Ӊvv++2LaH7kR&%4XjR=|t߾s͙…FFꓽ,Zt8%0:zB:I;L618}ܸ& :y 7^ܹ{SS89Y̜ɞ1Gu w^^y3uJ272Lar.ںwkQQ5'(JSimmbccB4b/RIb23594-o1Tt,QUpfvddիiuufAA!!~~Ν?.Do#/x%#Q$;v%0DK۶]xv~:I?d!W >-,,-%qdmlaadeգuɋ:LNίnhRzx*mǗCtTTג<̧(JSij/|F ܔrNHݻrs+FGC+:(Y2v΍x኎E46n$ЦٙWKKyTEKMHȍYclX^i<{.'3f@h. yU]ݰo_׭M֮?q ~ S"d2Q'OD"Y)eJJaEEEQfH)틮q ++e=yAA߹X9c3g8XZZ;l[o 4oYqqY_}>#d„A~:N {#Ô&tk${,*.)))..)**/$zmlkkڻq&6666&)$X/\0eLҚxFmyEUUT>ʈlhhqu v>]7eʞg̘Vt,'n }rΤI}wx~_bS~텛7s]7nrQ 0%B ꯣqsIkR>)+RM)cb)@s$JgϘӁXT[s3?))/""S>177 }hG꧊iƳ'N$^FN_YY$.( 2eHGy<~\ml}}db!Ô&6SAEEB$tpih)xs}}dAѣ/_i'bb2__QiTTzDDzrr6!8}x޽1<`؝'O.Q_y3餋kj2'O jiiΝW=b11%s!Ô&RCR=eeN)[|WѣRqVUJ722VK\nS{UW7'8:TtPjm w׮YETVGGgFEedڡC*<(8/<c :jڴgOQ[۸gOtX SSO> 5˧ @)2LPRw:.çH)ȑvKVT]ddy?0Mѱ~rjIIȑnnjm~姟b"#WuJOo9sG(  qwo~&9s^[f|"Ô&iI.&IV7Hۻڻ1VRlofV%T$6**l|9s^nOGee}`7o*:W͂CBUz:]6f̎C- Rt,q}@:~Gw˷aJ &{$[ŕ?LM٣xd>FF_ڤe4M#T4MGEe}-99vSbX:bʼn3gَ{DwGFf\r]3bS̖-.\oLrr7\p&N~>}[Zi--N:wkTNaJ ^ /,)i?N~~L򇍍Iw{.ÒNRJ//{ss ϞwotvvYPPKG{{;(:(g\XXɊRPPX$ q3fC6moeeի+"|tΫ.~٤mڬqsNLj6%4o؁j D0@NիzW"ĉc**&O}Z):(hzȭ Xvc###"ҹ&qZ__'1 +{]'(:Y).'ٰaᮝ ccGOƞ=۷OsE+g0%B Эu4NqquCCw!EM)==z4TtVeeaaq|pLŋ&JС/<{-*BΝȌ2cc=נc Pvk?suخnط/66&k׎8qP'+-#GnU{x؆M:DWWK2Lat MS^^GnU5SkDJ +qx; ?3*;:uO]]+ԻLICV=h;;(^ -&4QcK &ѨQcF^ DA`" Eԃ\e; 23gggvfffIlVq]{v2 h%gDF>y3‚5iR9srn0jJXJ;h)[ {޹t鹫_ 5k@{ފ*5j7ߌYdmw/=&ZUUױÐ!^@qq[Ni4CRbӏmQ[+_}hmǏ?)#4L髕 D@ &H$),,,,( ~MͿZll8;ggh4ի3|]. :\#Ȯ]z+&&[7ybyy llH25_$22riiE]:XWؼZAƌbu.7/2p 8d;0)KJ EEyyAaa|Iffq8D$iKDfQ)33e2)[2_yn,9j .l„L&=*j µkΜy|}t0u5oޔ߽Ë[&}}9>…g߹f[6_u Ν;Ц5ν{6\NM-?OA ˗#"xݺ|I3ۛ G>8r$A۷UL.]1iFD`HZϯ(,;蔚5!ɮ]YY#G,[د_GCh±c[7ՕbN&.]:ЦPW'XeIIuCzm*#F}K+.JeÇwohԑ槟ܿ9d׺u{pgĐŋb1~fv޶톪ok1&XZQQCC@99e81RjjNJ5'Y,lvᇋ/>//0 0lȐnN}ihM/9))v0 Je! o6M_.ٲի/ j(K11ȇw4mZߙ35 edBaQd~>a2VDO0iClo+Pl<MH^ߕd3f|xW$XqV,JZS$/">UL />D"s'n\ii_~y4+T"/]Z'ׯs۷U۷:u*K1'kg<9yQU=~]RS B(h~ &D41U>2 Z BmmRXx{]:e.++rr];9s}Px(.ME)ܸM^^ E fqq]@@@ߡČeD";?|!Dx𮽽_9#3$n|l3}{;vT#z'߷/~ 0 qc 0~  `^I!e!#xڴ]UUB?t(d؞RRx񹻻ݼyCWbZnz\դopaލZ33F}'LɬʕgfW׭o_17zjx,'(hD"qbj!K#"- [h3]٥.<;y2۪AMĉ97vvcᴎ(.N&{0맄Nz"LMj^k^^8TkҊ?Κ3gPKmB /e4֭0$11ݻϏ EhX@4길ccSoNmjӿgUshcbxsѰqKTK=u¸x?ؘkF5M_ikNrqaox&$dҥfVJedFF>qkee>qb!=zOXɓbð1˗Tꠠ?&WhXRzStG[@ ~Zssˋ`XW!62^?B@e͈{R)mtrTRzy:@ vՉ$1ׯwQ@E# 4>)*;˗ BVV^R_/~$;:w:њC;bDV<{TX,Ѱ;3GcD :tÐ'Y莜 v BrkfƐJٳ~hΝ{07#8xih4oM]Ѱqw ȿh ngb"L@^̙:]IZ &ļ-,`^^3g嚚"B8yraުiigR{{BHr>PDb0NN~~˗@lsH$_~{_nmbcWu z66{4G>v877[{Z[VVMdY,ƯΘ4vmuҥu&xbK~[|ݧ̅ D$%G2?^Z<ʙ5&=LYYٳOvmP~+Ņ}]89sܹF6IOIhZsu D)+HسH$!.<iSjXkmTVmvȑ{4mae q<.n,(F).N/a#G|9M(-^؃8Əo-NW_x£7 c0^^mQX,_SU%Ts!o-I,xd[wJ$D)+};*¼G2R)R^nؕñp\]mldr\uu:7%|~/D߼F)LNNah׮yK ֊=@{7I2 140T*]dNNnnl''=JKK joqppZ GmLөS/\;;-2IX,5W ?RشC79_r5ȑGvǧh},};=0ɤtZ6^^]8vйCN#{ FaBBFUNhcqq$q믷23߮_?N?|x -XZ]3D0 4lR)uxI`iztOy< M|7RB2b0h8Tod0hqq\6[ݓȖҵJJJb$n9:Zٙ9:Z,{{ 6LBPUu)aO? ٷ/-I0lذa-/ǀ$ǙL?.I E/'*6o|`co?T햌JLٶC5ɒN'Q\?Q8`@}>uu zI]]X,RYEEMy9_(D/^2 ɞ;IDATl}~v:u/Z]3D88;;䈋ם{[_/f0!UØ%%8ztD<Йa@aa3rrʈe_ge_:0$IRYU]GxZy|㸓oˋDqqqq*j3 '1 JII"φgrl KK9‚iiɲ`ZXt|@ r &‚5aB#o?45jJ&@hG%\nYg#LH- h/GaIn.vffde20 2cgh+ &tw{o!T\,x,ɓ_J$R:& aff /@+"L@،?n?BH$pyOzUᴪP"L@X{ m:ĖU͛7!!!I,0#? gOJJb0gϞGEEXaݺuSx>0,3388 Q eI4/(,?-G=UǘL )zF+6=a„&YoZ. f4#?u ԩӧ~~ǃ5/iOj2ҥKSL(++ё8]r}-[VYYZhڵk{I y.>Fm{Aѻ2U c_Ss n*U#ǘ': ѤaъPcBW2,88IB9񟺆">,KXBIaaui}x JL;Œ=z4Gg5W^HcժUFE~teM6rrrj.̠yĘ\-ٟjPdSZ4i)`X%T\]]{-r?u qEp8Ç_xK.;vPuP(DuAo'Ǡi˗9GS\+Wwرc!DB‚<*-?0`B_gGX#G:th͇>rɔ9sF>ܹsӧOoR)FW޽{}||lllFqU`= DGG{zzm޼YnITTe(LCOMF UU*jTՁW䡪}{XXX}}=BðǏ~˖-FPV FիWcii*#TUV="Jnծ]A%&&*h^Y:m2-\ڵkQФV=fAժ?~k׮NNN_~e]]r] jIܹsW˧~:gΜoߺ$&&KPPЛ7o\n߾}WZ裏n߾n:___.USScffwޢ2[Rf?tбcp'"Ǎ&ʳYjBhƍDݾ}$+++---B āBjb Nhs87oxzzQ0f„ 2ѣG?zsݺuŀkM(..sN4\F9:T˗/_?G4,UU&CLr?ZF!o#qDFZnq绻ѽ{"8&&wD/s\ǽ/\@|*?VUQQd2me2YuuT*U=((o/N &OLӃ 222/^8XUwN \r NhR??Ǐ:q\D+T*%O>I\zi(?540)eIU=G IyyьBKE"N.\ "ܑH$Re B%ˉd6jjjRi||}Ր!C_*{uuIc5 ;f/]o!)ɦL+$R: NP_ŋ/&''˅Nt1dÈB! sssDX~r5jΡ|SѪ#L\?55Qhi^^L.K !+5FNQ[.T5A?rE2lܹK.=ydll+WiӦ}\.wرw&={OHW΅ӧvbwE]$7lƍmmmvE+lmm+_+d?r䈙| ?hΝICqqqݻw .ETߔd);A}Rtǎ]vecǎrrrR@6@8;vttt\tP(LT#}5U~r7sTuhUdA 25JyP񊊊ٳg;88._&#Tx˄x}v{{{?c̙θoSMc hXD"ٺu#qz%*eic֬Yd'ӨTiBPrI~_ NԩshhhCCXwi~#I⋋Q~ W^ի7nHL אnݺFіfJJJRSSZX`TV9-gi9h+EͰ<*-I-j gG7&j  ~y]]ݣG֬Y( `ɄM2K.s]`AJQB-  IP̒ZL% Qcff0Ka"L@;@ h0n%0L[ŵ(D+aVRRBtxTЊ&OhztkP[IUUH$25)@t0\&k]v-,Z+%Qcb얗h*Z J?w"Lh6&F Dvahr+NIENDB`XQilla-2.3.4/docs/simple-api/nav_f.png0000644001725400016040000000023113273140073014422 00000000000000PNG  IHDR8`IDATxK Eі[BmkHprӼ.ꎤR6Z VIE5jliIJ0/u޿6sH yIENDB`XQilla-2.3.4/docs/simple-api/classUpdateFactory-members.html0000644001725400016040000002375613273140074020763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    UpdateFactory Member List

    This is the complete list of members for UpdateFactory, including all inherited members.

    applyDelete(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertAfter(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertAsLast(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertAttributes(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertBefore(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyInsertInto(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyPut(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyRename(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyReplaceNode(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyReplaceValue(const PendingUpdate &update, DynamicContext *context)=0UpdateFactorypure virtual
    applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)UpdateFactoryvirtual
    checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)UpdateFactoryinlinevirtual
    completeUpdate(DynamicContext *context)=0UpdateFactorypure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    valMode_UpdateFactoryprotected
    XMemory()xercesc::XMemoryinlineprotected
    ~UpdateFactory()UpdateFactoryinlinevirtual
    XQilla-2.3.4/docs/simple-api/StdInInputSource_8hpp__incl.png0000644001725400016040000003726013273140076020675 00000000000000PNG  IHDR<E`vbKGD IDATxy|SUҖ -KW E`@@Y:8sCPQP "eD/I)]XZC%q5ߐi67pzϽ{sLN=W%IqwZ(\ x B/NGaБn:}n݅N<&t<~i7X|K@eee=:#ihFhhFh%뭷f̘qw̚5kjjrŋÇB >ŋlviEFP^{̙3=ܖ-[-[7߬]VQRR2qDwW3b @Z@<$''ddd,^oBFV~fQh#B (QPPЎ;L ##c˖-B?BKa4?ٳg7:uz_{wy~if|ٳ'Ot:ӹg<4b,}&Nxw[MMM6W(?8rӳ{ӧO4iժUz~ڵ'O^+)))((xwF`ѣG_W_5]!s-[4??ٲe;vB|uuu-#0Pe˖mܸqݺu/^ >|}'߿)SO4Iӽ[}yg\bȑ>hCCÈ#fΜwYfӦM>_mQ?opBFs[3g644,]ᦛnZ`~ i*'`BK\\KHŝ}sg…,.~݅ ״P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4B E#P4$IVQRrE~\]]_~=M?~ S[gӜ[y3h#NɴiU4iҠ-6>o(zqҤRZm5i h?>!!]% V!7ܐgMKxB Nl~Y(11U-(>>oN΍ ݻw:4YmeM-ט2e$IBg wk_ӻu pw9AhF׮wOpnTOg|׷~^ww! <}IywW')))[nuw! 7(W^yU!@}.uZ(Z(ܹsΝUT<\mm%Kz|oYwV#۱cǤI*Y~~~xx韋-:rȶmΝ;;dff.]ԅx(B x={=ZiJ?wرjժAEDDz뭯Ν;]9"ܹ3..Z !t:ҥK"##.]T*վ}/_1gΜ˗/k%صkWFFF@@@޽7n(6WTTt%00f/!ݻoᆠ^xA2R6oޜ޽{oBy233SSS###/^(7]Lo&!Dttޭ[5k֘b̭ZTT$?|}dɒ+l!gϞUV9#֌@$Ӷl+9sK.EEE}wr/8eʔs 4?sbر_}Պ+훓sر!C,Y^Zkז;Wwݸq$I6{iZ??y]paӦMB2{V%I̙3SN^nRޯѣG:t())iŊrؼQ/"..ԨQW.,,4i̙#F8{lNNN~B?^n۶MQQQ`,]2~xpCguuu|||FFش޽{(ɑ$)55u_Oeʔ*Iljlll2!Dii`ӧdRR#k%m \oȑ#}QScxx׉CgB%;;矷׫h4~GUUU lvnj#7U__?mڴK9rd͚57_52!Dnnz^qE%I{;&SRqQQQj:??_ٳgԺ2FkZŌFy-Z|嗻v'x(''g̘1oyٳg?SǏ?~C=dݺJ=zm۴ZmSSF =33sĉzljllljj󫯯_|fr?w'|r֬Y!!!B_վkK !v:gΜӧ~%Kf̘!h4ӧO_xqAAǟ~3g:XaKbW\i9hNI5 $IObbbKAZܹsCCCϟ_WWg~UFCCÒ%Kbccg̘Q]]-[ӧ_ZZZffMMMƍ(ޢ$I/r{f͚3fDFFZ_ZZj*q5-Z~}bbbxxE%IZreHHH>}233tCڵ]ׯX"###00gϞ=Qٳg<#VCڊ=pM Jub1[N>WN򒓓(ܣV&Z(bݺu[`p%{} aރ`@K E#P4B E#P4_wgڴi..<Z׿~;B^SY_BG7|Ôٹ3{B^kZ(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(J$w`7޸䊽.\x۟<#x~iIBBJe,-6:uNjQ:!d>>6Mj[nI % &AÆՖo(F4e`2@[M:zZF=fL2@[׼g~]$7!*0o̘~b0HSƒބpɓo錦 zބpnKOUO81ZpF=i 10y2\pIt!D]nxB 5 ~bַm8UXXxawWh}UM׮}kQ.Z=nܸwCe};0M3f]ݺt~Bn۶mwu/-,pwoݺ݅T*^*p1E#P4B E#P4B xs͝;T**3Ǐ/((^If͚յkVJEߵFf;v4i?燇ˏCBB{1ݿےYf5uMo޼ɓٍrf)ٳ}Fcee8<<^p="""::ZnݺxVx曨B$$$j?Zƙ]x~iWڹsg\\\uu>HIIBtKFEEEFF.]Tg+۷/!!!++k s̹|6^B]vedd{ƍB^o{EEE.]ό2=馛ryꔩnjy捻wbbb` B˗/w}K,ihh0? TTnzzzDD /q^z?3> 1gϞUV֓xF͖h1 nv9s{w.]_|qʔ)Ν4h?~!رc+V7''رcC Yd^k׮-))yw|}}kkkW^mᄏqFImɍ6K$ήjyyywu͗j~~~ͻp¦Meee67!9s#Ξ=ӯ_+VZ!Č3ZӦMjoB.̙3GxlC'Q1~xVm6yrѣG:t())TEc#De˖fZYN ϯiii%%%{8P#IRjj忞?.\`~@d]wBXuꔯo=)Z/fs~d!Dnnj5\d4͛hѢ>/ܵk~]w=EEE999cƌy7{͞=:~z衢"{T*ѣmۦj4MPP'N"xZkfikݝW__|r!DMMMh4ӧ/^O?̙3ߖ[hݻ 7k֬9sk6bW\qч~8//O>igWr)i_0`@SS$I|ILL|YV;wnhhhXX̯hhhXdIlllpp3v^$mٲO>~~~iii67557μ+W'33SޮN:th׮]% ? Hd{/w޽Gk֬1cFddMȪfϞ#[,`Eu:TyzJ>>wM^6E-Zd٢y\-> :iӦ !nByyyo6Rl"'38= Zh^n,XL#-4/22rڵ4\@-@-@|]x ZTVAR!}}^oڅEZh./it䀀> g$I~ z}NWWFնח_hUK VaaÇ_^3֗֗ԕ5\t`||TaaсQQ:%Iksrrr* 0!-qIO_޵ܒ%'Wz 顾'OtKuu:!DPoLLPttPttnZNZ=nܸW ފQSPPP^TT{)7Kgϖ FFز0vݽ;T6rd W: v^ůt檪;{Oo%e퀠 ^!ĕ+WOͽt\eQQ[=#'W~w1΀qբJ#lnJ$FݫWDjjtJJTJJtbbXjj; بN{ϏUTԦDO0`„))Q{:8tpz17 .W0yD''Gc-<{_[6MJT;bڕǮ^m/~Ԩ^":`++h1ϷgpS%@ZRi_AtTqEE"88H'n< {˓ll8a DEwd̓MYIDAT==h (ב<@/^>w|r'A|:++kG~QzkQ}nj]%٤bbb}S^^H-:P\|Y[̙&!DTT7cbjjtbbXzz ՟~l׮BС3u)t)&}AA<2-b,}( EE?TԤ MH#JJJT߾q]x(*ܻĮ]?Pح[Q׏wĈ1%%`2Eh%+lr)N{wΝgΔv'Lxmiݥ9#BG{1F06Gr~ᴴ??Nc4J?Pw;<>>;O0`^8gJ/&֧;>]ب71cx4B `1pnR~^2n<4xhz11tګRRAh@r>)*6,S-ڋ3ɧ{yr#šĻӋEhZZLDu.#p ya7py܍ Cg-&$XĘSkkmĘԘHb #h t^|{ 78Vv7l*tb"ǘ_&d>gyIHKL sw<@,f>}Fѭ[`Ϟy#fn;/d{蜡ŤӦ׊~*)/^1"dqO?4oOr;/d{ńbW@ZN䧜n7l k1ܹʢJqb1,ZN4||nn%zlAB=\˅1]w]@^ye TrrjZMM 3_j&%Eɤ=ZEzqV[_XXac W3!O#G_w׫8F̙&t^QRSb"":mǍ ; ŵH/.g/XPqtfH--~<_c}:fVn|% (E@-ԚqX~;IL 17FТ(rN\1ZЉXL_TTO%MM?kƕ =w嗕i?Pn݁߾ׁz3ҋY\$i~2?&x-\~'O+5%np㤥=wwd=p,bO?.DFhpraR&Ӎ ?haa7,?yǎ#:U#ҋg1O!u 3΀d{T+-g[>+99Oō CVO?upJ~%S2ҋ7 1ބ`~bQQɓŕ8\|բW=c Ogu<b}.{DDGEusw]uup#H/S6mNgh߾n㖒jmI/5/_MN:,:n~41Gh;Y8{A'(Jgziȍ 'fqݏ?>'!Պ2??,&ϝ;#ĶOxB S{GZ8|g <*)~ݯ_<'$(^o\jڵYB@ShAv*$ \IeSF~aO?=UUL/M_Tc^'z鼒+_MMCAAyQQ4fŘ~oA.-wdg瞛^zizVŒުl>g4ʯ͛&AvZ2?ClϞ%Ź$kW…˟+|}qq!6>5k] J\#/l]{$|#t4Mc˷5vOgv 64?6hӦFp#Nԩ#V>zЮl>;'M/>W΁mdDV 9crU*!IM7YbbFFx4B ~VYY+{ϯ}||Lߕ`ѝ3ڽ`o/Q/,0PS_ ;߸q7ݔK.neU~~$ GOw";R&cP !͜y_:3{-8! S]xF:զ嗿錦oL$Y>tTqm5y%&1w]C,_:eΜP;W_!8]aII{ѿeWqq΅zʔsORRT׮N݋D5kZS!Tcd=,aؿ=zaŊIsw-8y,##y~t:Caa{|o|P}BC,[6vƌ!\ k|hhh'xe[R ϶$IWj5 DFFFD 򲲲6'> B!yYپ@ZORT{heB:cǎ]LK Yw_ZZmYYY?B||T=zJJ$T*G3Z*{jB2VۭW^Bt3ZmAdB5tzI.(3= SS#ºEkll,//oGIQ2?[7?!~E% @m;>+[UcOύ`Xj(IQEFvML GN}7B45ssKO*>}RN'KjJ%ɟG/\7$\Mjnx deepm f  ɓZd߾}|z׎ֽw?ZB/ zŧŤŤD0 NϷ_8UWם8Q|tɩS%99Ϝ)o2T ڮ^䟚ݿ\zzlZZLZZtp0S\#4СC&4& pG=h>U.L\Ă!P4-Ν;wnw0=0?~GL??cǎGTfz9gΜrK4k֬]_JsE?0T*UrrŔncǎ5=6Y-mQgY`+0PۃKv\?E4;B@ۇVNd{O{eXkv-k'J~.?yXвcǎI&S~~~xx8$$nx'/^|e!ĕ+W?._Wo… V4h\Mś7ovhxG5lmp2ҽs3{ r@㪸Fq֬Y-gxhܶnHJ~-e^pKyXвgϞѣGh ?}cbb-[nU[>|'|һwW^yB+:f9;w]d%{)UU2bbbnݺoVS!y֋gm6^;wUWW !>:!N[tiTTTddҥKu:ھ}/_1gֽvݻƍzf.]~gz|M7 !Ol65uBmذw]j{キaFcH5JpO?zuٳ')))44tժUxF ޺u7܏?xԩ.|8$$[9!ZmۄF{С+Vlt<?~q8t'駟GI._TQQa0#GnήhoUcbO%I9s#Ξ=ӯ_?y !NZ]]n:!Deeu4P_ZZxgtWHӸjyyywu%Ij~~~ͻp¦Meee۴f{Z]w~+/rddۋ?Xy%rDX~ߘtr,53IYxt:eXf7nݺ?|޽ =zIwz9lm6)c5:>>>##|{iii%%%{8P/''G۷=yu*FK/UWWƚ`)S֎?Swh8qZ5kIͅ{[[Ӝ"++K$`>%IڲeKRRFɡ-mOփ>OHiӦQFIf 5{`XiSSZ6=۷oB~yijjWy; -^9P͇F6l 666:u`08p|pZ<ݦ5۫mVRRR6l`:?ŵٱmdRxڵfٍoͦm_2L{ݮ~z9ZlKSƪkB$I=Z6_W@@r}MMM_;f^$jj 7=Շbcc ^zGUUU&L?3fya /^tf/,/^xշz,X`~=Vua$[oo]:mN( !Dnn|FlO6tКݻޜ'N>ݙV={6..N~ U(uS__?mڴK9rd͚5tYlgϞS8qbUkI1ّ//hbbhܢ]XMiQny?>ƌŞJt=1"??رc}8:jv/-^9P%TWWT>N<ȑ#gZoV^};v|g{6M:DH5&;/-ٍ_|EEEž}RSSU*G=~6{5[̓c{Xua_>䓘 ?V;wаՙaCCÒ%Kbccg̘Q]]-[$i˖-}KKK̴ٽiܸq慭\2$$O>vu:СCv*Y?6l7f IIמGۣG3g?I`k-ZT__o` B2/|l66𰹧$UUU͞=;,,,&&G1s11#CWTa/r{f͚3fDFFJM;k 'W^ԥKoYP71c#CWvzt2<7j0^y>}3&333""£Ǟ{w ?{l;2V߻U懯ɓv7˳Fz\V vh+*ʺ###Xp՘tXbLzݻwc?m۶rJ+')m ޻rƪ{\@rrrf͚uȑW:tgoyIENDB`XQilla-2.3.4/docs/simple-api/LocalFileFormatTarget_8hpp__incl.png0000644001725400016040000004066513273140075021627 00000000000000PNG  IHDR<E`vbKGD IDATxy|SUiK ҍҲtcM+2AEG ( 30 ?GDtX 88P&m҅-]oЦMz#7${UI$@\]ChhFhhޮ.z!C|O<Ą >ӃN:u̘16mUs='xGotiii{'nj/wZnӦM7nܶmی|ĉ~N8 \>(**Zv{>l׮]ǎ[|U^uV!۷?mݺg]~}YY٢LzkܵkW~~uSN}'v['?yǎ-Bg͚~nƍ>-[Zղ׬Y#سgbg{UgddlٲOMG:ׯ_p 6ݻwoȯV̓e>qFb3g[gڵW_rgƍaaaaaaBJw3om/rժU۷ ={ڵky^ &5k\G1bĊ+{1#GmWΙ3{B}3g\lխ=z4HQ^^.7>QQQ>ٰafO<#p B Lii`رȢ"!X#v{WUU%߰d9-vƍI&`{QQq_챃e[e꼼.];wll BT*F6nF@ yyy$///$$D7n333O81}K.]t:/lJWZ%瓊;*O1tWm<ړ{['3+k׮Kzjl5״@)+++1=dȐ/7n6l؈#6lؐ!t:]]]wmm|۷V<~ ݻ3wGS<]X:&Lnݺ~A՞>}zru}zׯ6l>|F@H 4^xGy饗V^=gFO6MRUWW/XzgBng]lYV{챡C.\p 駟^z3}#Gm;v4$0;z뭷222jjj.\iӦ1cƸ(@S0o[]]oEDD5jܸq_l@@r6pzpz8P4B E#P4B Ec0p .(HaaahhAh'ܹsp=Jru!_%`cۗ:gVGFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhhFhh$5ҥ{oɏKK+c7k*x oWpo_|vziK^^U;ZaF2^oo?J&ojhﮫ[Ts#$!%66,>J2kV$!kʔ{?P &sI=Ch4ք iꮻ]UZձc~b 1//Ք)$'!`{L/k1$f:8 E//m\XZNо}AqjO+'zpI$IV{<#G%iym uk_0C:ut5WWRF+*$չb޼y+Wtuд]]4k׮͛7o.EZ+WoIIIp;wh\@-@-rʕ3gJ4}֭[233U*?ɛpiooo+œ}||Ξ=+PTqqqf5JReffORY s6#P{N0!//o۶m.\pu9 !oB~/^J!N[`AxxxXX؂ t:|B7|dɒ3fB߿w~~~]vݲej VZ 0@!#7]8Я_?wyGR6mԽ{wyg˖-]t oZJQRR5|!^ /eeeO>dHHHTT󫫫*,I[\\l B͛7oڴi|͛5q'%%رxخ]&OܰR?{%0}\0-_&'''$$͝;jcx <b3cƌ'xƍN4ʕ+iii_hQFFbԨQ^tiϞ=Ξ={}͟?V __ߵkoܸۻbŊVoڴi˖-$MכSO]vm֭BBy3Nj7l 2eV]njao1c$IJNNn۶m%I*++%I6mСC/_֫WKV*0 b F-B,[u;tpiIؓ!?A~`+55܄NԊ GZU˗XQQQaVرcZݻO1bDzz'bcc5$%%%%%%4pwΑRZZջwoӯCWZ&IRBBž={^pزWIIFyJKK Cyy^}ҤI%%%"ŋzѣ_O:%IRmmc [}/^hJKKWX1zhZ>weϞ=ȏӽ.]doM ǫӧ.?k&I֭[.d[-cu -dže)))$z%}v˂F˥!h!8= Dvf͚ug}ؘ!O5|l=11Q't}ĉz9rĉQQQe{EEN Z^#G}ݛ7o6}B6mWm֯_'O;v7M~;vȑ1c! z}n׮]3Dvɇzߖi ۶mKII9|]6*))iΝ$9~nY;v?vUdž; !~kƂ6- ^zaÆ+Ɛ'N7ݎ;-o^UUUaΝ%%%O?qJJJvꫯFiHyUUUSLY`S֬Y6Z5z?Ç:vZjuVVˑ߿vG܄sX\dٳ.g4hPyy:4a7ǔq{ذdu^fЊ"==]N5-`xꩧ^|>믿޿#kiii#G裏L{=㯿sΝ; /RF{nV[[[hvONN?~jkjjjkk}||,Y"(//wd3nѣ׬Ys}i4Cn޼9&&&&&Fh}ѹsfgg;w7ޘ6mb-Z4gΜjM$iٽ{~駅Jxx/h]VO4iٿկ^TTtÄMsT;UzdžbÆ nݲҗ^z)33ɓ/>}F״pkZ>>}JGDDȗdhڙ3gϚ5†w100pԩre/Ioޭ[7dkkkIdv.Xre;uf͚SIcy{{˗WVV,\и<888""b޼yUUU_x&l޼r?^^^v2-,%%EGlKXХR?{U 4u֒$>wlԻ:6l y5ZniB$k 1T*ۧLBdffř}Zm\Z2vl//+&jćnh@jA40@cM|.zȻ\RZ5bDOooo#z$'!U+#{i4jc^/Mt KxB &N[3٪ϐ!.I-'x6m~:[=~|_h0B 4 3'rni-0NBo0p`7Wsw_א6Bɓﱼm ਜ'O Eݻ[ܹյ(Z=z SpuV Յ(ݻyWWn#-(^cWR\]9hFhhFhOvʕ3gLJeD``رc-o$IӧOoݺuĂJ̴"loڝ.Bd{0a?eeeȏ۵kꫯ=z`0L>޵"//o۶m.\hf!G6 F<m`0ܼyS~;ڡC!DDD룢ZJݠ3lpi߾}B>,>>R,X`N'7DGG,Y$:::44tƌeee,{ !߻wo??]nٲEQWWg{qqq@@@VLό2>0`B!VO2vLZ-״s*L !ʞ|ɐWWWǏTM6u=44wٲeK.]*Իiccc/_n\NrrrBBBXXܹskjj6[I$%%%%%3f<7nw}wҤIW\IKK߿E222F:|ҥK{왖vozUTT]6??ƍ+V}ӦM[l$I^h|\o$IBrV#s=j>>>O=Եk׶n*(,, ٴiӆz崴^z-]tTTT!Nj7l 2eV]nX.)##t}h" !Ǝjw-Q>bĈ'Nk6kw!o^Fp4**wަ_LJ۷}7--M={peF{ r^oIJJJcwILh46555/^GR[[Vϝ;'sϞ=;D^S'=WbuBIz۾}er1apB N'k׮ݬYΟ?srr"""ٷ.O%HLLB-ݻw8q^AAAG9qDTT{yyY^QQ邂ʓ~@lnL)))IOO9rw߽yf /((ݺu{5"kӦBј=-n>|Zǎf2DcVNDh'zի +CBB_KKKO8!;v옓#[zUUU ;w<ƍ+))9ria%(ׯ_wd+,WUU5eʔ :uj͚5V^|922R~lK숎6ŋޝ:urT}h4#ˇVrp"B 8`xꩧ^|>믿޿#kiii#G裏L{=㯿sΝ; /RF{nV[[[hvONN?~v !kڿ/d555>>>UUUK,BZFyGΝ}ܹ7xcڴiKOoO>c ___lm}(ذaí[^[m8 NI5-~a>}jkk%I#""BZ̙3g͚UYYizEuu;v8uRݲ$I۷o֭ObbbrrG6-lٲeڵ֭[rr^N7hР֭[K~XvLbʕ۷ԩӚ5kNfu<888""b޼yUUUfO0]:sBB< 믿.&?rֻF bbbBBB^|EcfvO #*ᓀ2ebǎ..gi^*jp8(mvَ4@֮]H#-@-+ IDAT@-P?T*URv{{{{ԉEhbꀲM׭:&WnE[7DYWWRWw`z{ w@u+''ɓ?_3TTWV߸qZT~: oڵun$ii%ii7KJj 7.1qA.eMKzVWݳgP~!ݻy{;ϟ/=ƍ7nTUV:wJo۶>wLZ=zh???W Q^^]{3=FzzK7._. cv;LJ'$t oξ:B799p @><>CLLpBBo TSSwإC7o||[-Z9mu,qq^^h B OMcc㤪S۵zE G%nBҋV[Slc||;w1Yb B +(^/7.^+.Bąg>t__ 55unjwܸ>Y-.-F.O/FZmuNNQ3!h ׯ^S>tƅ y5B@c>IH:oެ8|gRR~R=`=G+$JJ9H96Z :>/L[;#VV!&&{J׮~S__͠Aqc96m:CӋQmm]vv<2b,M}(YYE/71+22(::X(={F8yͽyS!mVÇ>С=>%#%#kg2~~W MCWX=]]t}R32 ڷx}DF-ҋ#fS\-9>pbbrO1~>t?]_5n\{SKWh1rbdyK55u1F:⮻10q8=FAV~^2n4iz117uWmLJ.@|{…72p#)FMC#y~z'P]`LQɧ{ٚq8>Cxx[W@ʼdSb1߾m%ٺ51"Z4]޽bguoCllZz)bҋc~|1&::8&&po3qҥr!D۶:w1ΫSn1py B -F-6Wc~QQ9@~1Zz*_vx؍ B -F#hi'hL~yFz#Ȧ@h1Czdc\{S^f-@ bKP>=ҥ:A6B-;nݺ1ȵiץK|^QMe".;򏚱|s2j97l z^V[˩>1@ AhB \)8lyflRRi-͏1Fo[1 8ٌ/W!|bq8:= 5nX"܏c6cp-/?|Kn\WYɌÊ Т01>P-Z3'110BҍZ@މ+!!",B Zssoc~mOZFGs%p#HwYZ?_tݺ'7S.* ?!(Eg sx0"ci99E'|Wff q#dFn'1qV[e믏??ロԜҋ[01?_TT.-K7399ҽҶ{OtkT6Gsׄ^܋Yt)\ѶmΝC1h -pKfo7 Bm:w߾ӽ֫X3cukqLH/nxB ܀e7/\Ȼy70uu޽_Vv۬[=u}.H/7<#B v]&t>>NZ =޺;No־g tsIIhƤqqP'V[ΝCLO&@-p%oTWwJs^6j]|𘝧7!,,,4g6r!h ?\BQBqq=Gx:Jڵ_c/u:{zbbϻEmB3&˶XZשSi`SƞhgZ///A9!^o(.._pGz1L>Y~v"hyy:ujWYJR4/`WWg*V+h),,jmr{{%( G7h5BZBI$qF2CKaaaHHHC ;{BBhpp QqTΘ4^^*Szڶ#*~~jQQ\2{99zĢV I*,uLL;ʵXVfٳg3ز.=żKn]p!BxT}ڵr[C‰mۖ@| /JJJ@W>@ /\ଥ)aL繑pkgի;Hj|ImHH=:Ӑ;cX~v3 Z4^"MVZZy|ޥK/槥]( T Jᮻ"w!0}PB ~!((`РA RUU-8ř3or4_Fa* IsX0ʕ+3gάi$L>}{Νdg6EfT&:wBt -X@Ծ蔔%KDGGΘ1xb{ڵ-[uuuVj76v݅>>>7o޴i?͛7k4[E:q,T9s|c].AAA˗/7䄄sXmttX48III;v0ݵkɓmmj65j!Jڶm[۷o?j TT3jZ^0~[Uت>עWXߦM7[fgL*vL6ϛ2+$iڵ=zh۶?|g<Oӫނ[;=V%G3cƌ'xƍN4ʕ+iii_hQFFbԨQ^tiϞ=Ξ={}͟?V __ߵkoܸۻbŊVoڴi˖-$m4v7ZhbٲeMi0]ɓ'۵kg_m-ӔbرZvBby #FHOO?qDllҥK6 Ν;w8崴';tpiIrȍdk@[{1RIM6t˗/KHBɓ'_^qMʛh9rsђ!Jfff>#s$IZ穧v֭[۸d[Z]w|-+W ۳gO^^_|ѱcGy!ƍB6ݘtp,ի%IYyt:eXzW~ȯСC zI|v;{UomVw.c!4**wަKLLϗ:to߾r}iii$%$$ٳG -{h4{`0z['MTRR"5t jMI7M/Zbk)))$z//Iccc6Jv5shiiO~^{M[>\20,ځ;clKkkkjݳg<Kmmʛh6shȁj:4Wŋzѣ6.VV%>>~M2;M5ݘlcRj7[-r'Ի^zm۶͸O?82tI|v;{Hh:,|w -$jtY~~~={r,{Itɓ'<?mu///o~#?6}e[l 1c_eZQ@Bt$ [ lРAǏ?t萭9Od?r##<<\Vgee|rdd˫7P@jʔ) ,8uԚ5kLd嶵NYKΝM9٢Bc9<\ҘxEc{w'~/[ݥVwu)z&G^6l؟:۷On;wɓ9^x4.YwgϞ={3UUUk׮~~~UUUVO>rlܸ֭['N&T>24v7 cǎ>>V֎=ڴe˖k׮[nzu:ݠAZn-Y?7o5f I//]v5IH~r:}޽{ٲe5WR|v{(Un$M>ԩSo>qw. Bcڶm;{lGKJØD,\&L(**ڵSO=ucah8N[0( U8= B E#P4B E2{|M^555ZnjN\csWRAjB|}}xh"*)wH8c_FV5-pM E#P4B E#PpջkOPIENDB`XQilla-2.3.4/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.png0000644001725400016040000001634313273140076024020 00000000000000PNG  IHDR9[qbKGDIDATx{XWD)B^pb-u]Z+ bŇ?*xyj `W@@K$KAI2?N1IOə3L9&$0hF<'=m^J@rH@n PtZ]]sNT:»񦨨(55u(z_~9{P<$ >ta~H@n $QFiO|`dd U522={sRFEEʡǛW BPW\}ӧO߼yS*ijj1caZZZQQߪU~\YYfߏf bرcXZZGe㮮.FK|VddEۃY&555 @ ѡ#LLL*EQᖖ'<<(Ιx͵{7@1ӧO;:: $Iddڵk[ZZ!G)yqҲ~z6mmm&&˽Rillɓ]]]סyiii!TVVVWWy 6ݷoߊ+߻<[ZZ(6+**5kVGGGMM B ox#GTݻQ*߳5jTYYAiis+CC߸q~2lyD"Qaa.}5W@Orx?Wׁh2%%(CCCKKK&YYY߻woܸqxY" TFggkk[^^.op 5#xCBxu˖-s Q$htP|k@@=zdnnzꂂ(Ѕ .|>)""G?~˗/G R_p8lPxʼn'{_MRtUUUxuÆ cƌ177 PAZ&¸\ɪU4]]]r̙sy׬YcnnneeYѦ&Mo䆢utDkggk͛7Aտ4PBorH@n $ 7߿O?~P<$bXC`~M"yi~Jy ECz+ o׻ڮEFsJ) >F?_zXOw].ܨ!b;w]"ȍ Y,=D";^WW+9e=?DǴ[Ol&ȍ+΅ FffMezzO??+ntj$yFKK+w%FFVI rUٳpz2 2^Cc 7O=|jo0 {o 7OeefD";{fiZBQR+ǏֈpŭBtܧ $ 7@rH@n $ 7@rH@n $ 7@rH@n $ 7@rH@nWƏ_[[;~FmX<77;^שׂ FW(j BGU`~H@n $in FEEx UVVlmWdMMMڮ3s;v,^(*<<ҒᄇSb0III{=uԄ LLLvڥҵj禰!ЀW:TUUU\\_th޽;wpNjcAF 4-/P(999ӧOǍKJJhQZƝ Ϋ>j+++ ^066F+-[>fˇHb7 BΝxGna:kv{Stt3|iӦ۷Oa:駟ۍT6V< @rH@n $^o:1NR9|_QoBCCǏ?N$FQQoΜ9G}!ӯ7SR].zǛ"+!tC۵"ȍ MM|BvMΟ/E茌k.GAnT8{Oh../h"QVW'*/dxddgj$QudBH*= *eeg^J9 ݾ-{A% 3^ge*I7AnYTHQ"ԣ 7̼NQD<^Y_|H_]zt !ƈILSQYOO/7ߔΚ5a8Sk.] [5]ۅ"O@rH@n $ 7@rH@n $ 7@rH@n $ 7@rH@n $ 7mN*Uŋ[*dٶ;A;aOOFD^4___ 0$ 7={0{j% GSSSRQFGsCtjjMZZڋf6SSӏ?G}]P( ^>4M?iY^^`0rrrBw!;NfZciG3ttIMM]`ŋG qiGGG33Ж-[6n܈moo744,--UӉ Bhرxel6:,,L,$%%9::ZXXݻԩS&L011ٵkROI$H k׶*]}7SLp8[lFQniip)zQdH8d &4駟:99By{{DPSS˗)i:%%I&DiXzǽ{x<ԩSQVZښmmmG566{urrx|>ܹaaagt u6K,{naa.`߾}+VxǛ9s;_1͏7BHB|>?ϧi!$$رcsssi^t޽{wt0~ feeᣔȏ,=L2%++ {M2u6<O~}pBoə>}+JMMH$״Se.ǫL&rvvt{T*4i^(.+=^vtttttTsR}Չw 7011QӳVF*l-)yݒtFYQQUCc> nUAnegq(JyM"i$yD".ߤի/Ƿi /~XQ__/+VYg;Wb)_^P.އmrTwEDm.*?KY~ᷮ.ՃnU 7O]T'ʮ\ztǝ7W==~2wx͵Ty?:;*n1wvztܧ $ 7@rH@n $ 7@rH@n $ 7@rH@n $ 7@rH<}[;w|)>ܾm6n\wˆ|***JMM?1濋Hmэ7B}\Ee{n-0$ 7_|䀀%//oϞ=[&$$Wf͚GETPWW#'N\vM(ظ1LfYZZN6-88xgœ@8N~~<7!PBGF9rʊÇ ;R%iii~mssm Cǎ7##UV %cƌ rUUUǏ/..>p0 d555IIIFFFe}۷o ϊ, !djjjfffnn>eʔr999'vv٩Xe &&&/E'O455=x9s.^ػ1.fϘ1cϞ=VVVgϞQ~&//oڴio񆍍M^^d2nj嗀OO+V?^q%KxD"[|$ B(+++$$~ĉ{qssÍRC]]NhѢK.[+55 .%%%+W -<==B(''gڵCȑ#rrrwJ1 //¾Zqg}xz.RSS׬YtҐ[n=3InM!>[X,쬩ILL|뭷B))) ---b8**ç#BB0>>%%%Br^^^III666Ԡ>zhPPP|||[[ q;vlܸ9SPP`eeegglggԹ݃w]u}}=^}*w|2~ڵkgV{fffZZZ``S֬Y7O ۏ=rwwGTUUM0A^6m/!Fqqc``pBL&鮮#Fxzz.\OY.^x!333"JKKcbbd2=~/"66V>Q_{޿kke q'd2f̘qҥ%K0.dh*zҥp/111wqpp޻?恁׿-C InR)~ΰ~s[nMMMeX:t(###99ysE544XBkg[n533CmڴO?p8]]]!XLQ~_5(fBxNzWMOOʕ+'N~mBFFFfffo.'OV]Z.{ \]]/_lkk{ՄvH$@sF&o޼yٲexKrrr~~ )200_bhh5o<𜱻[&EEEI$O>$;;СC7QF֭[7n8|0޸i&___{b J)Ewww 1y.\mkk?o\xɓ'g̘!3gȟEJh> ^}}qa;;ɓ'[[[{DDĽ{&MTWW,Cx|XYY}llٲVUU-^8777 A}*+Tj,J%K7[N$mݺ~ fيill,//ߵkP(>J={v{{'ݽꫂ梢$W@ofΜx\n~~)\HH^`0&Lb0FFFѣFؾ}sv#.9bƍ9`0݃B֭/l٢aÆAȑ#m< ;W__oee}p;&>FX .X@E}WMMM&Mڵk͛_ޞ+W+Ć>Lۅ ݻw[XX˷S# /^( uVPP;3}tmע9wYkڴiϟv $ 7P1/2N{? \כ&` U30@0$ 7V' qIENDB`XQilla-2.3.4/docs/simple-api/functions_0x70.html0000644001725400016040000002742313273140074016314 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - p -

    XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.map0000644001725400016040000000066413273140076025755 00000000000000 XQilla-2.3.4/docs/simple-api/LocalFileInputSource_8hpp_source.html0000644001725400016040000003456113273140073022100 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocalFileInputSource.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: LocalFileInputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 
    23 #if !defined(XERCESC_INCLUDE_GUARD_LOCALFILEINPUTSOURCE_HPP)
    24 #define XERCESC_INCLUDE_GUARD_LOCALFILEINPUTSOURCE_HPP
    25 
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class BinInputStream;
    31 
    48 class XMLPARSER_EXPORT LocalFileInputSource : public InputSource
    49 {
    50 public :
    51  // -----------------------------------------------------------------------
    52  // Constructors and Destructor
    53  // -----------------------------------------------------------------------
    54 
    57 
    87  (
    88  const XMLCh* const basePath
    89  , const XMLCh* const relativePath
    90  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    91  );
    92 
    112  (
    113  const XMLCh* const filePath
    114  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    115  );
    117 
    122 
    123 
    124  // -----------------------------------------------------------------------
    125  // Virtual input source interface
    126  // -----------------------------------------------------------------------
    127 
    130 
    138  virtual BinInputStream* makeStream() const;
    139 
    141 private:
    142  // -----------------------------------------------------------------------
    143  // Unimplemented constructors and operators
    144  // -----------------------------------------------------------------------
    146  LocalFileInputSource& operator=(const LocalFileInputSource&);
    147 
    148 };
    149 
    150 XERCES_CPP_NAMESPACE_END
    151 
    152 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    virtual BinInputStream * makeStream() const =0
    Makes the byte stream for this input source.
    This class is a derivative of the standard InputSource class.
    Definition: LocalFileInputSource.hpp:48
    XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.png0000644001725400016040000020114513273140074022251 00000000000000PNG  IHDRPQbKGD IDATxy\Tg6`@4M2%1ME3nUS+ ̮\RQ%+T2wSJdfuf4!"0,W3s||y/bNiZO蜐~@:' H-Zt{Wb֭[hBq |h:ѻwoooo{v?۷oڴi.&&&fȑw TX:'9! 'tNz*/bΜ9=s>#o>gCHԯ_y `֬YIIIz^߽{˗ry@@@XXس>ba~][Wسg_/ OgXN>흔dM? vAB\.?>&|BȖ-[|||f۷<ꫯڵťy^{#̘1APYY9o<77sܹʕ+6l`2#lvͫ6::}7=a;@_tiff;wNGGGwwwwww:.ҽ&BwwwOO>.l6k4-^}W_}% 7n8dȐnݺm۶MP8qރ]|jk粲6nqذbػ. '@;}t~p=`L8… r6ݸvϙ3gرSLGy !uPQQ~gy&&&f֭555'O 'No葉g϶&&&y'm۶Mm۶}ᇗ/__>;wV[QQQVVT|gٳg'$$?6lv_|QF:s )yeGG{ꫯ}mVŋ۷o_t;`u_x"ﷳ gǏ4tڏ>: Ԙ!>'@ KMM-** 'ꫡ|>Ν .&tz7O^`O=^|DW&Mrqq3f !Ěދ`fgwrrj'N=z;wK='h4iiiSN;W#Gkaaa=&O> >jyu-88W^zw6\w33hК?rmb4lg}ThkX}>}d2=3=IIIݻwܹs׷:HBl;w㫪iU^^n6+..۞R{ffm)Jm Ŕ)S\鎎Æ ;sL``o}n4mѣ<<<=/uf}vkwgmrsѢ L&ltc{}l''ݽ @r~Y,_#ì+c--l6'%%&L{⋤_|-ˑ#GqbJJJlaeuuիW^=tPPoW"͍drDB),,'ovddW_}j]S,6\@ شi!NFOR5+Wfee=#z˨}޾}ƣG5-K<^kBpuu~kX<rh;1 DlWG`r8lz.ᰜ8NN6pX<#tuud0|>J3-)99|\ݨ(22 TT\.l68p@._"B~#Fܻ'!`0F6]SS{nBHee%#TUUY 숈͛7/YDܹ322~ ڢE{9__ߜ]vyzz>3EEEM,}yt^zَ5xݻwϚ5˺'NuVgg]v#?>rHzmٲeZvǎGn`gt}7/\fu&[X[޻h4tzÊjzWLjuu[7TWj˫1Z]Y{BJUY]m$hzb2+*5B**&ї/!|pvvdY46rٮNl6Օr9<#ّrl6ёc J~ F!ݭ  =={MJJj8?> i'^~{y7~:'̛7/..>sFZtiBBB߾}Lonٲ^p8O>̙3WϿm۶5*&&é'_񄐗_~y˖-sa0sέ3Պf1ԩS#Ftc0nZZZ#X6߿gddŋzQfΜIV\.;&fpLB'{>-Mh_6I3Dv*+k #DkjUU5h4WT-F'ѪF7-:h4tF2\QQMYVo4)CǢ \GG4'uvv\u'9\::;;X]ht>@aZё=t#O>{YϞzd0V9rd`֬YIIIlTDDľ}Mf?:t5!ji:9q?z;qju%MTjZ`0UT諪 UU5ZFjiz|:8;;:: \WW''ő֝\C.0ЅgΤ=a6\|wD,,LpBBH߾u\WQUe`2kvp`׎rm|qzeʚ*CE_9FSESBWZQ>\a8N6#xB!W lp舐~OOaX bWD'å=V{qhaXpYxee-xqpX4|fV[VWUTTkzVOQJnrZ]VWUZfXL6 sP(+GF[k[1L&w {fŒx1…s2L&b Ѐo]f-S'o~=f3M&bCB   &xoA~~/PXti_ݨ(J\oC[7w i6*[<@~t`ft Yo)^]{PSc)IOW+ӕyy {>Bj4رgΤL':uИ1}| ju%(>?bеD}G]/GH?z@"@$70H:8v`qgJJNWwd}?5 gg˗sJUi`l6;*}˳UQQ=~:If=ߘ1~IOuY^ڕ|￯ۻFS;vS ƈ !4}nnq^^iz/9]2[$Ś^!LS(j@4:Ծťo%ڟh޽K$fĉ7},sܑQ;wnj٠TLfq[u'$\ ];%(ȻYiÆ{zQ[A:=\PP^"-M*j>+ѥN!!|ڂ^oeÃ4:`4;ڸSqAA"o_JI)\T.MEN޽ Fhh@B|6=.wZɟ7ͺܹ+ee͞=lٲq..5tؾa Thq :3SuKRaݻ{ۻ_pOponnZOh&tfkxN`'Z[<g6o>*n;RR/rR/;<ȑ?v:}h\:uF 5);ɷdLlquuK*tv>H?od$E"P@]MM1' k,W\Y^ w"6iZDynƟvuȐqq-rYnd#B4}jj!R&f2{ׯkAk bmhB#[,x{>gBS+kۯ+iyv =<$*.޽"#{[7ӿEON{ڵ聫WO3Ja R;8HHNC~ *tw~tT gJFԨՕ55ET) {jXKhI^|0$&\beȞW<:aBUi*Ueb"bPƍۿF~rmFϿR>l'~4mif݁j亹9c0:6TB؁E2X*cl],]z…^|8,J%&\pIv޼ "[&bPh]3ҥK14T2dH!Cz :ػƮ '_;@Dw ;TXhܙRUB]RÊh4%顡} ;wDoo5"#{! ˗s\ɹt)GPs8ncРޮkA _fQFPӇrΑ IDATH$4L啦+h{":"iI|~JI)\T.u{G.W[w*q^'p\flٸH_{BY4 yGx"ǧU/Ў;@悂늴4Ej\B|n`'M9i{ o K.t$/f/YXd/\MG ?:SYrɓ)ǎHJf@*+k^=>2=`0z>DPxtذ..@ ΚiN3@]DM1' vDr {@Daz4{^nVje镗6ni_ ώN7\{Bٳׯ͖޽}eaaf '4G5}&AWVWֶ_W2oi{>}t&7/O0MQ11]N|;6kWNh3ϞM #{#d>f;eJFX;@R*մmž*/.B|@/rҸW/tnnmuV%!J\Qhј_nU @3(jKZQV$GD?dpxwwuON4KJ*hh+LS,x{ 4 SvvqzvNeF"JtT*psV}s?(&<\f:!z۶͛Od⸸!Czث2ݩSwcP=|xOĠii'o=~BloޣG۷CjbP5*-N`qgVVdf~~nL&JE,]z…^|8cЪW<:aB+'ٱĠ<*U3iN$%V zر} ˆz!hGhYgt"݁Z^w*KJ !@"L,hkK$CC]QWxsŊ%%y",oFk z-1 \ĠrzS)?gJJ!5*xؾ..,/H?ZW'im/7}]0 Sa#qgJJNWMxtNrJbw:RR /&5U> GcN ;wDoo5"#{ۻ"BjcЄ+e8:r@?ŋ,3,1}njyޥO7T*5Jy4^hyy ڞN`'D|q:e2oò>;yPI| o{Wuu'$\ ];|/ c7~j#'2ԩF}**U/'&?*+k ?qbhW?A pWt"~4CP+Jq"?bp8,__!:Π Vrb%5KKG`03 5khhhj1H?F3MRTUJtd;ƝYYE&f~D2X*v 9H@`0 U;SR ujB@+uҔS*wС>;yPI| o{W-L7ykLmbPh*!ݿff .3'|Ԩ~ '@{Q'Ӭf^7lFw /Bgt;hyy ڞN`'D|q:e2ooW{ .^^d_qfɒ_z)#3&UOH&]vJmcPwRg>y2E"9ڻ5}fqldGGX,7?n.R4:H@t&@PSc)9C;z.m!xػ^VQT=x؍OusswE`庍ڽ]k1(4`kW2~|%K)wQ:O};OeXZ-裘p+KN{ڵ聫WOrwie?ѣ/_qss5*1(h4>|u˖SYYE{C fivM@WTi?"ڄ=5U^\%N^4qg^>Q ]Pnnҥ.\|˗CV4;j0-;*ƠXtl͖O޼91%pҤot{څ$D"~4`.NOWԮשPVUB]aJt=;By\D?=44A{TYYu͛Od⸸!CzػeXNLYxffC/~z"!V@YTQ(tzuvwfeLf6FdbTdzڗŋIMϟ?jј .^pRR VfZL~~O?D c6[vbK/͟@wQH?UWU*]Si; q"?4/ m.Rɉcz/g6o>*mHLby DvB@ Ӿ}>{xA ;@e0 U;SR ujB@+uҔS*G1@[%*bc'Μ8v<lj5k&EFwE-6uww~IĠpFߴ]~gA۫-Ν;?ύ7ڻVg4m?dw Mth{>78/4=]A O#N^Ljzk|w\n/'iIzfO>zO%֭;p%,Lv:8/411(eȪU ۾-`:t ڸq]Hs4;Pi;@;VWҕ:kNE~~bpXBuҡAA"BW6mھ}MfBu;r̢ٳ-[6cǮ8p%=]aA|2ؾ^>y͚uKDw h4׶_W)RSZs=iIy=$C+n|ݺѼ{'\w?uνBZرGޠ1q!S4;`zÖ->dHƍ)jƔUA%%tҢm) BB 41֡zN`QQi)xػ^hl6W§LqO}׮w]E&dc/kA9/ Ə1(@WYdlTTEW_tmi x0M4 FSe{⽃4<+P+kۯ+iyv0YCRQ>~Νv.$Bܜ?`rL̠ãGGG\zjEub#GyG8n\HTTw1`K&ݛwn[6۷[k?)OBj3:̛f"@$[Mt:J5GDʋ>)0K":uT*Hmڴ<~tt@ssf \77@srƓ@Gg;ƝYYE&f~D2X*2r+of̘qĴ7&zk!+WNJJ0ʕ]Q[A}}O?v-o޼L&֭OVm~޽dJOOO ~^Plٲ(-- ڷo'f̘wߍ3ϒ=dȐygDlٸ^(ڸS_WJqp`zdѣƓ2X*3xgr9!$'''ۄ*@ףמ=&&\͋X KRgRwsYĠ]'Lٲ|y"Z{ajw^^^b7rȑ#Gnڴi͚5ׯoUVEDDر>ݻBl6>hm; e BGDΔB.@H9ѣ7la/GGCƽŽ;商Z̾}_֭?ho1j>Og_%ْ3 !N8RM5) ''o:{vٳO5#CiC&/^<_IJZ6cc?:iҧC|bKZ c޼{_MJJ:u b,!k =/_ ̙3bٳO>f2u۷BJKK5K/tΝ={B3fh4ti4BHIIIFFF_>}{lɒ%Ƒeee|̙FJNN~GW^]omg>)S'''0`e/BD/^X,uΪ0aF9x yꩧ/\zzw6-kK@R.^;:{>>o,~fwtK7nt.ck]1U&awgRfyڴi}؆inMu_3|ÀűZ˱Ty|a5hКC/fѷiV睖&hŧNX,ƍ[~$RSSCOuVEEd:sk׮YȰMdCы2BHyyye԰X?>Err2=`߾}AAAl{aA I ܒgӶo?&ND*][2;clX`ϖ-'=5Un4]/@gRgwgR۶m{zAcֻ5E 0L۷ɖjKH(Ġ[iiŤIegΤddd<#}С'OO)___BsCzz9s***BCCmj=vV^^^Ϟ=vppppp0!M$<#/_믟9sd2: !AAAwܩ:rss}||!D(k֬ILLlʗ>/W^b [M1'.I+z!D$QQe2q@Daz:s2Bn޾m^wgB׭[w9GGGBRl}i `l6W§LqO}׮w]vVgmÇy[71cbmPNy߾y={=C^}X,[?>9sf޽ޭ[7auM/⁞777G%\~!dĉ6l:t7Ğ={ p8,+;;wބ,??zk3)))((R ![l\xF 7VFFF߾} !~;3Q+kۯ+iyvlpXBT&5kT*ts|RU Q#"e.v̊3g~֛UHzYnMܜ?`rL̠ãGGG\z벿:1CA: N֭Ǎ y!l;...&)33sӦM999Gf4]VWW888TUUfZϿ{ABڵk_Û7o>v!L>}…۷ot3gl)***\\\!N||Z~W'K ,x7z}Ѩ:gر#&&ۭ|?wߝ5kV;R*ʴMSSts>)0K":T& IDATuT*H8!Czػv1(@g`0Az,gB?X, b06m\ݻwoKUdffٳlf߿%&Nά"f3 3c2Wxzޕ+yju%pX{>v$m_$rjݺ W¤qq={]Q`;)> c>Aڳr]T'N~"A @JRgmܩ/X,WHNڞ((H@7"@h&)*ֹ{x"@ݥc++k r\.((1,B7m}%>!dwgxzMa;r̢ٳ-[6u A:ܒ?~>6hY1iiTV'@OT4kPڞ((7eX4r_CvyN 4Lu9GLǺr8 UAPTc8~~n>>6aB`0w7A7m27.N=;iҘ_~QfEX,fbOڵ0L+x..Nw&l-*L&H4,Vk͝7,V˿ fXf&dZX,sN EX;ȏ?*xy #'zbϷh*jݠqBmJ7l^Y,+qqG ӢEc^|q8Vik z R-EEG `/޸ty"=g Xhѝ;w]E]g㚸?~I#! QAY :;u@ڟZmEmQj]_[h%$d\! #e>Ͻ8MtsuU(\qi0#;ggsfj$'''''SmihtҼd;BSVeyUB"k+NM->JdpP5 ] `ejsuuq<4tIc8ɉ ľ}y駿͕DuHB5veO?7-ӎ\_+?Jt:-##mk߽;3%e_CCLӨQт=FE޽9=(,=}:g䘔)AA,-aʠS 4pjͨQkGgO{JysrO#* :(Ʌ%&vjgt|Fő-r=b!"<`> LV*LG0L??˓DtᡏjT>ruovNFRt:}̘(77g@hA* g1Gy;˗ﭮVSo=t ]Y,YoԳ@mT7ܿ_Eh4Ngdϙ_tF I̘>=v&2hFWQQ!)3'rs{өdZ*ijld*(vB5[JmyU 3 &q ({nEMM=F΍DEu<vqF˗'LR`UAt'͙x?]80E 53{n9/V؇=|7Fön}gwp۷?(=+yE11=0 S*UDe"QHTVPP'FJhttᶟ>!=40ICVkl9qIjմ1c0*N:84Ci`8>}v;i3|#n+ɉѻvnAʕdf0_.cPW/)P;߀^<a)ɚUNTI\]|}=恁>U΀mV+qɝyydGDNnD72id˫V_pK/=JNzPy@urb0nrll.[A~|J>NOz߿L':z[ߙ{x8߿_C7?dLրB_-J~ߧvBaȑᩩh*@KrzQB7{cmV4ϯ3f@4Ņq.L_}uoOao5z &0Q!ZN %DQ3B{֙ :I.IV9bq]s|5 )Ӡ&RX,ONlll./k+*jbqXBIsP|X\#\gR,/a&;IBBzM~^^wjjTݻ:p,SspįER$hovy~WoΝ.uu MHI^T>aag,QFP$bhxx9yPRR#ԡ ,BN!/)(?% ,CB7-/Ϛ5Zhoׅ1L&3-;{<tV_^.oi.͕Q  Ԟ(4|@wht2Th#*IswwA-NNK'S;cII͜9?U;i4څ KRP)f:;3N+V썍 ~]0B1QV7aM'QGo>2Z~۶ uww]lRRR.0- z`VUɠӦ dP0f.,k7T8:rEy''ƌq_= 666GD,#Yik&LMܬ}𠚐'PhZZ{z؄=Qm/`KhJEede4 sL ?ht2Y}e%JNWUU)JKervfyeP[N-䈛NN *։NZ5U32381 1/o;v6i4ڧN_`S%ni4,"?M/N`І {-_p^Ex8799nܡR5ݹXX %0>_V&GCU6ضB||Չ}́N1bر>t@y}QC&Sj W/ɓո}Ξ͝={3y FX/ByX4^^I*vԞ_ n&Zi/}YeD @(&'!XIM+}ð@fttFD-@ccSwӧyx?!aSO5ر[/}%5jRG3gv}DZM2e"QiZ={tqϛ7tĈ0JC""xCD|?wk>oVn*=7n%&ƮX1"G6AO;j&ټ_>3z P4LKfM_]Yj^rǏ建5kәfZ~{q~ݷV k599bTaTN$wFFl!`**bښ8!dh D! /*֙+{Bj,<<5ǵi43gr>rDx"bIbڷY}9sUp(O;zu"ERǧOƍb߰aֳƭ}`#A ޻n `ZuVW8,6_G"EϞ~PQ5[wBRoP&$=7 dL]]H,qVTmIAA, -ܻWQ]]d FT}nӧ??iAX)"QizzP3T.H JK4xv-IΡhhh޴o=MMMxZk d„ rf@=JgHK0/uk~ˉnnW(QQZPB9=<8@N`Gr' oAP?"շ/ۍj{V3tAAlj:OoA%Noβ2YCC3ڇPu$tg"R~@JRtFg=P;M#7WrPPY\\œmq|ro;(:y$MM'n]>>>=vmb[dyE].gF筧2PX(MI{t1))SXT[dAQ9Mfz!+kUOܹEvh4?O0a@;5NQiSy]P{)!j8_e6Āeh& 5M%Jpu9+*䨭3&dS `P\r+v^R"qM)4tX\{H(Jy<߉gΌ0@@]oxő))S-lRϯܵ+㯿5:o 0@ yYk ZHTdUĴ>d::ɓw/[]|~{cBݿFuu=Ƞ>Gwcc{ؼf[OvmNbž_~9K ::Nu:L>(փ"CQ΅qLUSS/d55*\U]]/d*\oyM'??O˓d<,'f{X~~^V^ƪh-q"YHP>IH5 HjbVJQ&; wvf q4Xo .3cF%'[I vgYrO?sq1Pl7WYުNܬ=~vZ 9fRRzڮ6E1h-gBшiK#:LVPZ w,UP&{h(n*45iϝ 3EFHJ?~M8_wlYqq!AA9_~":̓?sUL5|xؼyCm1*zy˷~1a4}<:`X\va0sİ@-r,@y5vP?ZW7m[730nܸy IDAT~KLyZCti;f<5BZsdǠw%:^SSOtZ5j~ in֊J亜D&'χ2dPO`Pe T#7Wrv9jwFz gTMSG翷yS ڐΜ 3ٞC}܆$1T$*mj11E+CH%% }Fł=U_d"/ZA(7ٴ韛7?5Uszѻ%*?$a޼[6oOpXZ}y$7W#V*HKN=E`:&T6¦Iht2Y=eD'bJݫ@5I {%7W"f pnrr\r@"۽;.ɣ{̛7tƌXв'1ċ VtZ~۶ uww]lRRR]/lBݷFM Ƞstܹ?޽!jijҮ_lӣF,.ԃ.;*pTpN"S`-N[5lHeӪ0*qS7Yp\.HZ$M:7aoT0ǃ(^Tk رUkg?ֻCtϰ'/槥]>v얻˔),ѷ/jQ15*ʆP o>odLU6ضB||HjjbTz2(`VZ*{Z7>*y?%˧PIRS殥 ¯r;jOԯ_ i&2 WWדl>Rdm4jqTQV&dI]y\*U"ɉ0X|/Y<xătwP*HsKqq aL[pp!w 6:t3==#3cҤ褤w 2~TV*Œ5(411փZU틡:P]_JuܸQbTYOZ@M2OBә/<:th |_-.\ț9sӭ[5 AW\\C^!=H乸@mʦmQSS/׉ŵee yyymER0 iL|mZ (R͕TuXgx8VBLZ9yPyLA;_RRܓOF:f̵ qMggԩ{n؀2 b[ejP9f8 5ݢE,X0>~ɠBaY ɠIIG7_EqxK.#6L>dȧÆZC-:+D)awd=´tV02}|<@ٴ<:Nd?x Em1RSuJZ uT h.ݿ_։uFscMNt ==[jfذФмi?~{*"8dHoKhfٳf8qɠq3fQXȧݠ~ZZOс{n8;$Ċ/x>~̙3㩶난N$F89уXzۗoZVNSVU[XUH}xAe%߁r9Nꕕ !q跳FQYYu4)75iTN1dDL7:GRRܴi!}I$J.s]ӏ޼#GSmY0*a(8PrTF1wBiJӧs&OII2逎CAbcN2(`O$$l Yb*y#ԓ+y?ss%?m &lx>[N 0)8ؿòznnTk(UUʚzT)*jjTRJQSVVU)8&^\.ϋd<),zD-Bg쾩z ͕ܹShNdҚv^TT OB>p /޾]y!g?gϗ 1fCZFI\:>/LDzVW+_+UV!?~[z(&$ 􃒃7 Bl IDt֩khI)TXK "qDRw̓32p>&$$@i[8IBAyyCGs՗tmh|aa!!0.QlrnƓޟ~:}̘(}4 3f|[zy#QTT{eg|^{ʚn=~wWSmfAPIk!(#E]zNŵk 3G OMM 4HS9A{`̘ucD}$FP?)ۯ\/8oFE\Z8}w+=݄j;%( -酆zx8\gZ!6TU)P'JH*Uf \]|}=ȡ\. 6 78k>m@4[YAHTWIdLBȤX[9|Xx"bɓcVӀW߳7?j:С3gyqT@x+B@jkI`anp~D&9V;_p3( V'bgK3& Uk; ZSA dG2h ! ﶛJNO,)AfȲT7} uuΫ2jy?&5 h|YS"s8٥gŅY3S!B=vVCC3Ƞӫ7Ι>}0y#Lhю+W ^})[ $Kh? !#%Q{";kҩ(ǣAA,EZDrl']݁hNd''zP\(#2ifѮ]n. b?`֬!ҪugGhtǎ 3瞿WRRܹSmyy^v (Zlمby HڤbT2e4Lտ';v6jTy; ==w6nӃjsƍ'ʵk)T !@&99bTaTN$wں誫 T)*++u55UU pplg@7d= /f m,*&j.ljNeO*?U\ݻH\&7@ 0@&MN]]Éw }|njJNwܖN!s}۶bqmllprr|RR3vYu(,T$*xP[DݛC={k J/.޻Ɓ:߻VЌ>dSm8AłV&i^ \^qxx^ޠ"N&G q\\x<"x'B@Crݻ55[GG ,~@BactڨQIIqql@z=~b~ZGEn 1 ۗG] ]yӦTDw҉lw[ B 6n=~wWlӌr432۾}y_|L!`àS0 sqq oi0:QY$2薎MBrBL+urϲ2J^à'E[DeyyZ@3b:03=ZU2:GRRԩ@q~v"ر[S ?mrCɓw/[]|~{LnHBy$L&iʠp,Ɣ) X:`;K^^n66,jsLՇN}GTZF; zh>Xtuu=JH'*oK$kk=PN: p9`es[SP<,V9=c !k(A @ЊZJKedBih(gA!!T@iBRYy%'GBAM ˝,^^$YdYlrnƓޟ~:}̘Ύ`< pz\w6 GGE-KI:oP@4%55K ͝SH֩Sw7?:PJiqq !=vBzbGD(Ok@٥t_X<3ReEEmEEmyLFR8|_ ~|/O Ӣhr9:Q&{NYKbi'4"gdfq8ɓcb H6 @$*MK{u^?n\yNQ dڵk #G&vs6]5>osAqj]qp[~S.^ٙaì#P81j[bV!-rÔRԡ(344ZRIuF)3j+{q}bWH+,oB"]qRA+۷QZ_` 3:1DD\]mVkN#f>}eܸ z/T{P?͇B>p k۶ wVΜ?{~~Teې7kj z>%^XjKL4G|19Pn˓o2#&-AM Ue]I@4 Ecj 2ǃjر ]jՆ@1V-%R0tGjOd0+Tl w""|dTi @bXFUXv`sT\4HؿBn NRAzzƑ#"V'L5@{ht<޼#FAIxjVcյk8-[6)))2y(h)@ĸq{.}Nyz/gןjsKJދC sܬ}𠚨G^EC^{YBdYP-Zk>ٙa>#ijJ$u++2뫎:9&A@LHUrРz~vRgP_$m'sfmr哞=?,`E]; Q{"sRZYQQ-RB"QTW+nnHpPtoBp;H'XG;MZ2ynm(i#ŒGGFFM+9t({EE܄x]O˓'IOܾJ䓑IIq'FC1bs b[eƍ+Z @rV{F{s`QLcc 2(#bkK߽tg9w.wѢϓ'L@9B ƿ(mNC.W\\#J1nHDrgd$FN"TRŵUU Bp|9oT|(x2~ʦݳALQW/]iȭQ&;<ڻ7 B`m!>, 3ERw3 Pm~RESĉii/\r}c~@.{Fz!!6zPzP-Ẑ#YO75 }( ]f֬ͮNwA4k޺1k&9Z=_~׮76ڃPZuVWD`"wSthj֪JN~:jnN~mOX=N&'|X_ߠ(YDZ{d ,kP?ټvlTrr<5@v츶cU\5|xؼyC'Lvp2OCCl+yӦTD755qȐT[ 'Q Zl\%%dÇE T6th-/<񊔠~v )7N1#js(`Nu3]-r;;D b~DHwۗZ\պ&ؓXLP:B$b9KJj:@N>ߗP6HVeerRSԤE3R9Q&fI{\Py-:6jTDRRm꧕ܬ=~a((㝔?oPaIF -,=}:g䘔)AAP܅>}8ЩɠBau:=Ac- hun~9#cE[g~vZW7m[7ac |Xm"wJaDtUϞl"͹#c*}S*UގX (1AI XKZ={Mܶ W͕ܾ]"ʉVтN<㙙TS꧵QTT{w_]HP((,*PY yP fWf:y{o1I*|d>(o:t\$&'O2Ʉ벣=Ybbҥqzѻ%*?$a޼TC1fmu߼y "U͕ܽ[R5a-Wzrռ$N,C-k%:7Y,@&0y<߀/>^pGxldUU)[ObAQB=zADŽ܊]$*w)ڄ։"`@nD( 3*+两@&vOD_TvQ[BB /QmbbZٲƍ'?tvvFSV"PՎ qI^]TPFZ`p\.pVP(srDh'柨(>TcرUkf ӇC]iʩ 3Ri,:ǼyCg̈uw%!"Q)*DCcc$Y,]P9rdxjjbXX Qy@]@o : /TvK.~tѢq4/\/;SИ47k<&کVk^\D7h4T\\SW׀rqqb<>pN>P"ea몢"BY%oq$[:Zn!ZDe-<<iaapw@PGo՚aB&NUFJ. NN$'ǏNQqPjJ*6l8mۅĨ(ek>ߺg^찰@kSQWp$Q@Ors%Ge <ӿ=~#Gt:3gܼYoy{3gf[?`bbV|E1ϟH$&n*+򇫅{n F'*dbqX\rG>RYIDV\\]R"S(1 i\'f j54hE::ַ9=LG|kʶBɓ<2?={f̘al:-YcTY/0 {m55we1Z , Oi2>.n&QQ!Gyx Y SxwB!~]g֬!Z~ϞT??X\|'uX,ϤMT3X?gEEŜ9s۵q F+((h CLh}曣G,|>F}Ė;vЌG. *j111k֬1Z]|KNktsԎDvv6ayyy&MbX\.wڴi7o6FT0aB7/lԅ+Z7xC T*bﻸl߾˶ -'1WRٙ{`+Zgh\ ؊pdYSS3h ;w^vm֬Yg>~x),,쩻v`>zbO0oOY;vٳΝ;SNbҥK[XlÇ_dIwP*qqq_|ח.]}cx%X\VV믿*v,ݴKׯtذaAAAѣG{9rȻwors:kUG+"+v]cWL荫Wh4_~%1G}4t9stB! +I+WR\VlʝsD`;v3\\:'o>K3ȹ? ð|t}Irrrrr2YY<޻OPܹݼyFHx]W_:u^'իF{rκ;ׯ_O|%''ڵpiPD۵YkcEVq!Pn;/w=<<0pEk´8{Ç8/Zw߿?z襭ϴv!-'O_I#}`5X3$%K]VڕRhGY$Gdv;wѣ߿/rJt$g jjj /bƌ%%%"h}%I``իWqcJIn=&q8z1nܸ+W";:d„ Oee͛b-[ >>a'OV(w02}3w+;t(`X9!!!?#q~ v`'O fϞP(~ fΜP(~G CJgxb`` mV(u^"-h||>_=|Æ gϞ=:jG~ǎ5κZI@srr\nVV㵵صYw^"s*BEZ1 /PVVaXUUٳgl6±&Fsss]]]~mWWWGlom3$ni-+ɲ2𓶰+)\lꆛ >Hy-,i ֹ@"r۾rP{.tN2 0\nfqm={BCCq0h3YddX,FO<9p@r@ &ʭ!|H$">8CО2yr\+JNgbؙ3gpGOjp hU?qFX~!#+W899$LuMqȝZ;F[S˗ ~SRyzz^v Yf-]÷mF~3:QMuY.Q^^aؒo/9--mر.rsv0cVu{tgϢ=Z-q8qk+ɽb O߶Q10CR,'OfW7lOpG maasD`>V\\tyNV 0xaÆ322x㍳gd2NקO=44-begggxq+V p“O~_W{nأ;vj2;w$r7׈֎rnjC';;;66Fnc|I^G1uTPuAc[`7Yrnnn 0 q ry^ziI]V9x`.d1\\\^~zd*a #11qϞ=ѧNB+փqܹV5kycoۨ ~A!-'O3 ؜{`&zk Ƿkp$5^_|>kb#\J)S|W8i.--Mxxx2BAAA‘"+˯\aXii?f̘ v 1 C?s[ /oll2_LHH@vF%$$F]{X&S,:nΝ6l c-ZwR ǘ;w~JnߦRǣ?zq|ӦM&MjgpϞ=[(8p 66nZL{f؇v%tѣ'gFT*/\piӦۻoDߏngV ̐6'c>?!rDOp2z5`=}Zo4_}9WNGp NUUUl6{ܹ/^yʕ+1 ;tzwΜ9G.,,uV~P*֋bh|wy'))͛=[oƌgd2.{%ķ0-$"ыz*??ڵkaaavqM(Jҟ~ͭOjp hk|q\T⣏һ<ӧO3JbKff&h*otAXfc8^WWO=z4//oϞ=>|Z68a.]eeegΜ:u@ |}#FQo8ξ}bѣG{F>w ٞ~͛7V\9x`ggg~}}ꩧ wm3ZEma*/2Ӭb=.ԎcrvQJJr8_Dmawsxc[Gƾm>`--j> ~~%M\pyHg}|g0z.Ξmv# ~8^TT󽽽 IL&{l6{>{h4#FB ł X,~WT*w}܌޽{y_IfW7lYx?ƒU9CsD`>VRR[oup2]T?m2kXMv̘u.n4 QM;:Όd7Xbe˖͙3j+̈^y S{nf;T`G A566~/p] mAѾfNQQƍ'0DVnݺ_0 pu?>(Te .AO&ꫯRx.K`azd/[6NegPm Qs^d\z5..^x'Ō+V%O\(PcrN(zbdnKe8͛)<% <#pG.0HXtTY?Oc{h0j_!Tj2&&FOF믧LrOrӿ'drbRvwWxtkw"MW7BxF}^V zLz:46t J%j=F:mt୷cǼ;5!p\?&XUܰn4(w\ $;KWLnhvF#Z|VZZ"C￯/-ՒH.O/VTU%JTO>77;KwX^z27aC2$>77!3E:WH{E+F;aX\dHH$=Coyn$ \Yp\#9%08edM-ܤy%ߞ}kU3ȑ04*1 RƢX Fch, f돏n!H6~ܹ#? nCiӁ7קu]rQ@wtywRΝ^nF@ v,_~Zmjn655T*Jenj2n8H/vJJ|r2G $'s9L̓H`ز_fHnde.3Q!~٩^שTO}˿Bd2Sѣ3kȄ SSý@pK@YYáCrEM `D" `!6/G,?_;}nK}0&rjMMJs\ùs^unjZHpVkEg[ftlh, 9[$Bg^씔O>9 1#f9<Y,.F+WT7C70L$/-]HۧV j\P Jelvlh(1`@tE/._[) RɣFeQϜj i`#6U ۸qL&gSV()۶ͽn蒎K|{w)aD"J 4ykrɪ'hX1uPD"!??wfCfC@HtTSEo|>K*%JlAjjbjj@0lWZZl32xKNO+@z"ݥ?y D?}sw>p2ϙ=nO}msG腯'm(KÕ& :ti7kM{1uuW/bc]I,F˗QJ"pQ/'zfSCA0`4sII]II]yycYYYyyPeС32g]ӒHğ~Z2dHJo ܜo|&Hrǎ3#Ba(.Ԟ8QRhÆI  (Bz{+= 45CjƂaJ(JقL~sɦLzT aF 1g?Y:%S$g0n,0l@/NnK't:vO~]lT*/Y0Z[ٮ=tJ$I19~nݺðeڵSoPt8N4=׍Ǒ\Լd/6XVcyᩨP+KKN6l )''@r"Q|Vz/'ڏ0H$,_~3LUoӥKi8{cd@(PRR[ZZw&cl,upqQ@FSO}ѴV3&sӦ"ܽ,W}tbfǢuJzYO>9I 8_{֬Q?_p:8sb6;^y̿A@FK/E5Oq+ɓ[7oIG Qa<zs:B!̙\SY: C+*@gd( ms7m"3 4dȀDQ_Nd2&Xqc3s@wA%G+b#Fe2L>jTFg/vK_*f3f7[јQĉ: -`B!%'sPę(sro=ӫV}p koaaؕ+5k~8rᇇ|>' >^~~H9& :읯8,hBhJJޟ@Z٤јME2fJ >YB!G ` lt'.E)ǧRCJum8ݔt//PS--CCr5D奠R)FE&G#NDA' :YP .!%|eO,~L l8nŢ1B ?'o!7x탓&05;װpVkGlg{w.=|xYb"#\KvٳWϊ %@Hd2ɸqPv|@SuLk4 (D:-8=ft`۳ @,D]?"8QgO?H6~T*O)z5gmРp/JZ߻jSho$ødF{ mv9HKKI \TRRW^xTRi$M3'L6uxGgn<ì&N̙c%%ee ^?--PۡVx<:=j`G:MXf:Rtu"NtzL'p+jjwSX $3fOAvy;Οok^h(~FJ߶hZCo\tdC(#wZzFc.)Ca(|4@2th*6bq\շߞ7WmH4>β_S FN SjBϱcߕF(DW(sr ]8Z+4TP'ػgO6b֬IDOWDǷp_~?E b[CFpT4Opdbx Ѕ{竫5h,:CRAF~=TT(˕u'OV 6 \P KL(>kW[tnssr$ -[l@ڶm.4t sႲ1ӵ%B@;o@].]jX& T#ཱུ9qjku߻&.q=ywQ'8~`ٲ=_}Uerz=鬁շΊFaGH֦wR]YF#;'΋hPЦIu@ ЦIyy)i0"f /|O9sZ]+W~7gf>csoQ\,M< $2Y 9ɜp/0:ߕZdH"Ng{45jJejj2fʬTjhGA&'_#pD"Nr2G($$@2\tŃ/7r8'Ə]~H W>>7+M(>8 mO N&(4%%>*.+mllAIwii^ua/]j*-+)+-3\3& N l~xߞ۳ g/Zl8cA^NT Mvꇢ}Ngj-&ƢVMCl2]=PH\.S$Y[(d,1BF{rZn|D!ھu~Z[^ވЪ*M0DZ( <8 g\7θp/7xEEMfxp(қb9iijH :_w%rE0 Yxĉza^jHfNF6`(" ~uga&MʽH&@ "ڏ?_3L}㰩1T&j6RjZmin6tV׏CEB!;))r.̉ Euu:Յu;ɇMX\7I~0d,]&dؑX5k~صbâE**+WsJ_F[ZZjKACR>F{˖/ߓܶmp/سtʯSSn# r"Z Ҕ֡v2F,(d!CRx|uuzquUUӃa"NT) 4|Qgd╛N= 75:UstmIIrcJEE}uf4 ɸc<,=t.Ѧ&@"MNmϊoNDYD,i4ƒ6>>thL&GCbkj2.^ҥzj"Ź|~(7pժk{ޤPHLd &I xbH@ko"sr`3*fhs:Plq8<1E%Ѯ~3gNg1jTƨQYY}: :Mf>p/Ыn=ahphMma<,qMhSII]yyS5JL&d2  m%Qf#Gfl2K txŻD–-o=3ˉ8xyDUKI y/zA'vR3z@WP]'ڇ=#G&(?8BΆCh ڜRN @.\h:wNqܹz=aI҈ѣ3FLH½^'~z_~/MS٨Ri^a<ʆWEIuF1ԡ0,iRAdT5FEv7xý(l9iӁ۰a:kBgII*).6lXN<D=55Zƍv%B[d|>+^ņWn⅜X'Ї!&>pM6,-15 ʕ_}wͳpMMhzl؏9Эs:Dغyؖ SQ,/W֝.n^=Z:鬁շH塐{-TPPT$C#VT( B&[d2[1BD={JW*;[u|ƅoGV66PGFe^:îr}XGkZnO6㕛kBJHÏ=B#NxMMF\]^ވDMTGzH?AT۷? zC'!hفF$T$4X|>e™I7 Ez:'z6ҥҺ:K1c½(Y,رg&H۟-?|mhӧk(O@S Iҋ#GS}\T1FWC'w%eڜVkE'xn}RR5~`]|R͗.5WV^?BJ%$&f Zl/,_~…w{9oIn?ZFFB6z:ǫf:OKK TWkQZU iih$L?^`0ůwȐ[_l IDAT.;V쳟Q(-[fzTMqN.WADҢ"L'o<_]Eh^'^~W,~?yUA'ޜ~5.t8cg~Bgdmq)@ :Y7Ld&>NlnzvR NnSmzr:D[}:NAIFse2 um]ZpgSSkM2exnߛo{{6z9jlpAI"ij@BS½d6;PZtFזr{|Wd.o$zBp8g?C.Z[STUjڗvW'z'OV?'lv̇{9pmSo6;6= …L]QoVI|?y֡rD"fdR)'{ս;vw J…66ԩSG{9=fs;8vLO"+*,d#3X,z eq˗~H*la_<ߠQs:P38t|!axL:JSS֢J1 R(Ĭ,~Fo@Aə|8 ~@2-X*ͦM3'/[:# 5VC:ohhAObnh,%%( mt},}TgˈwB!m: z9b17+~v٫gE@ $2dܸh@{hN|>uLQ@*-=S,Ny7(dpJbbУJTǚ"x|/gz /tO^+V;VG ҈ҁ{6/pRSII]yyS5JL&d2 -C_~~ɏNg}Ϗ@93gԖ5xB)jlҾ.éTXmwׯZM*Y675jJenj2tc - ,n$'V@7z-z P uuz0L$efPigVOЧ͘13OfJH655ZݍhѦw]h%%u( EB&H`0kש㻁۶_I Pf:UxeǓ}Unk7D&DP lR-*I2Ֆ&FcV  II,糒BP8[ `S% p+,Bah :Q֩Wx||X($ee3222xqqpOל;z3{جp/"Շnm]k;/5 ad2Q$oJ$ILf7N: eyjFrr $yy)Ggć{Jӟ*U3gtӃ\.ڵ>شi#֭'uNeiiݱcij@RX(6G1Fj;  2F'j4H`D召vC9,t=a&<p&zu.)H}Z]˗sZuB'ZEh4ΪVzJez-zG\.cx,.!<c%&2൷Cg]2I|Ta)iRii]E2,iR^^J~~Zx|6{sO9鬯>{97q(.;&?}%Hd r9^5x<:=8Ѽj R^OI8ڇ=3] 5alRRWLMM&E465[ۂtXEiii\t{>|<ӷA ={JWJ*niF V{5U-zM1tVΪZ"0 r\.3)g(*MJbrL.o$:읯8,d Dfs_TZZWRRWZZg29bc"#?fLVNS\,ψD;=:#6h5k~92}YBaBϒZۇBB#' uM2<>3FQ+DHfgSDBFz'cEoMhBaY,.M| FVUi Ca)}f /|q>}lZxWii,+*~R~Ŧb9iijHqۗ"(D/7,V 6wFt]_\h&ޱƚc]$|@x|dT̨;M&z +qDRRm(R~Oy<5kQNn6wp/@6]oazm.<JeC++յZt8"d֡0T.WHČ ^^^ *X0,ZŦ+?(˹a6{wuڴHl,5+@ Ҕ֡v2F,(d!CRc:Q]JbFbnN~v +AqS2] Έ}D@ YT*Fcin6j4ʬR5ss o!B/>xg%'s|P['/j3,-_ Dg4nz/&*z6;&tz<*MJb7;2nD%I,VD@Քԕ7:UTdbz:O&܅3g.tzzkw r_ׯ?zt3#''ZZ -??HZX( Xq>_؀"Nk QgYlh0rN !`PXBNʼn?͎0&* 7gh'w._V=gUU^멧&;^fbT{ކg+Iz_&[HA"w^1+QMhYYYhӤС|dVoΛW+ST3;^|qr$ ijĉjG6,<㫫ӣ묮8%T#z{e85 z :/b7lM Je2lE \.S `s vX 2#=~秽L?o0شZtnj-:`)h>1\.e,!E :ݦwxTPCRAF/,ᩨP+KKN6l )''@2ztfJJ|-[tP~ݹ99^N[{-[G `m6wР-O0Ԗ>|K>\\T$-((7ف"vuccK $"Q2͎٣mz++ՕjԶA^h%%uh e YhӤ^̮Gcc3:9Z]+W~7gf>UOX~heccKL u1:jTFPAWV/_nFrY:Q{v˔Am7sgZZ"d >n4[Z--6bG7z+J9 ;l&$%%ЍDo'$D] _h4K~)p.GCR{[w靗J Y~Z[ZZP\M"32xyy)h`T_lwRs۶z+bgOʕ_gdm)/\P\QaT&q'EAa:^_, .qNlX[@X\VbqY,?.iZLɄEB!Ns^fr8͎zÉp`otn~Æ33yO6,-+nLKmbYzkK]`11TT.@Ѥ$Fb"* ˁO2y(ڋϘ:'-u|XCS;#F{t#&Ż~~Kգŀs=?P6o^UtBv٫gE@ $2dܸN^mEZpxT׉a/M lUg N /b:f oh2MBY,:bŠdifl@//sDլY^y&hLN-"qZv;/ nohh(V+bXTD$b,{`}wgb {2gv8ȗ/'ffl}ΟO٨z8fD(E=;[xJѼ]<ּAl @6lvl.mvXCeQc8ѕP  E,VLkIg2cmvv8<p8}zyy҄ R~F/3p+q I^k29 ryM&a6;\7=|FF#T::ct?Ni}S)4ÉRàvl9u23yWO3&3+^@Bi TLB'Nܱc=ŢwA lv Nnx|&9PZNtz-=vY,. >9H`2cbb(4͎t:ŊRIJ%3*FfbtJl,ɤ1XjL ł a'7^nݏ{yg5&{E@kޣO fʌg+,VPNNl#|vJJ@pbûfz*Dz}vlno ^lv1vNBvh9FabtrL h8z\JYR*Ca24%.K kn solΜѫV};~O 6^xA$Zek֬+TVVg}^|k֬裏Nw߽ef &۷oN1cƫT*:l6wĉ6_'O6 ˖-[bEuuuVVw}l28cƌ 6466Fʩh3C#~:jn{~j<ۨv:OvըG Q6a`btsbG ØL[DŌQ 4Gð$&1 Cy%ax('.0fMo ÈD "Q!~ ?/wN/[vi# N:bG 6mTWWoL|ժU֭0СC%%%w??'|KLL0nl6it:u9swȑ9s<_?]vÆ mְh"Z]RRbg͚d2gϞaƍ?c5w۷>==nk}߿ܹs:u_Wtᄏo߾9s$&&ms?k׮݇ q?:=Ch$ٮQ&Q a!bDv,6J\GŇ?vXX1X'@%ЄK~Gt{~#b1'4/]PQ$~ sa~СK;w@ ={6??RIP{4iRmmbbb?>nܸoݺu?0a/_r?s\ þe˖߿?++|Ȑ!~?%%e׮]&L{/_;rȸqD0  v/>-~'zpOT2XXkksP@6Bvy6 !ZC}it_ȏo}ep =^(WWb2Q(6q.,X`tBnF322ЇJ8p a$iʔ)|M^^ޡCo7aK8ZJmrI۷?osT*顇yt^z˭ `h4:uꦟtN>}ҥgϞ}wѝvYYڵk|'HÚHny#<޽{ر)))~ۢN\@~ЃSzG=Q_?_F{Q)SXBPO0]/g.--]r9s A @߲^OF{ ۵? J,;vWLf~~ o3s87Ξ={bx̙'O^bŤI뮱cǦ_nݚ\PP0iҤI&X3w2uT thO={ĉ.@eƍ?[3G-^<1)Eîoףh/ڵ:fs.&{,[ 4g'_~{=wk׮g6;½.q.vǎ ,ZzE'O}{v.)(Xv>u:}#͛7~,O^ϝ :'ߺccyf"E?tt \p-\x_ɉo@/<@cb^|qӯ<ؘۏ~սZ5FcY|֭+~ +pb.'|w>=7)==)KRiӓ$bXB!\YYlAjj" }D8E=6n|hw zᅻ{i@J/zUUښݏ?|`#I Tx`#"W .m 'Zxp/ &h,H4gNѣ{zI[o5`O"]0z,Y䭷 *@ @8~w9z2##iq`]wja;"#&S<)[vZ,F O~UU-F}/f,LVw*3 0 2C .JbɈX46vƠ./==/\10vex+g76vB!!fAg͖ZP>w./R[=xuufs׾`%GueY[u:._n~=([vuZs06'48P^VVz5??_w ]`{e)A!h);R""j LS0:{w/:zI9QT%3JOO]]{8imoBʔS?vE `K|v͝;{Xvi0FCn_0u99VQv\(39Yv B `UWwVW$&ƭYSncr۬YjcetzW[:005T,g[,FjH?>O_zёK^] SS. F#[vkFAfK0~P?rȑS\ f^]zuaaINyCa0la.(0͞=KbΞޫz^]կ01<ln)R$[vFEE$CgV\pkH?L P#^|mŊ+32]i%ܲSƝ.5 [vZr&{^^JDVb|)&֫GT;VᇮyRV_Ҿl<.JL1Px[\&)͖j,0pnH?L^#GNT.^l(.]zV#CLFe.P(d0貳qݞ4[bL8OS?~=qB{32X֯|%/11N˔Sdi-;N#jM̜h.F `~=X^px͉P(4{,˗[sLo~L9kkN%BrZF-5??-::Rb 78ȫӽZ/u׼ kNGQ|u:=>_ѲSbw8̅Yj `2"0Mx'S']>`[lݞr솇]2唧;n_03h4],4(S\NO92 -,4EDh.B|vy(2Rk2%CVk՚j!054t<<|Z\ܬ\nSww_MM;[YBrx!0SB!E}˧O_no 'KeϞM@`ȖU M6[jAAܹ.E `r|O_>{ٺݞV\tiNqqNZZS)gml|l>iffh6!ϜIheepdJ,.Y$g,= M^rʸwPa4d)μ:P'3g>=w~.jsQQVQQ Ō_W;kjZ{2唧;7F], 'G`]x|}yyCm_TYTUTpfdN9!^leE2j !/wҥ&9S!0 [a^7L=>_NGQ|ÑZ)jMu8r&bji `*!1jizBcETTx^퍌Z,y̅ 3 ӣ#.l;Z!h)aRmY `j#!^;@d677e묬jG^c:eqep LgtC / _xҥ/HN<#1]2CdΨdyS$0~WSk|bSMC.LIa nMe;/]j Z+//%"Bvp~ _VURURY\]#0 LVky)4^HPx[\&n\cw82d.H?`Rhd%χ hZr$9SOjW1EFF;1155-55֫B!nOR4=`QXH?`2jnݦ(^A!DRl55//%/hRL_M<SO=u9ydl9r|VfFvu0~ >r6qM7k޼ay)I}e~ӦMB}M.3Fٹ['20Aј͉fs~oCCGmWQ||">>6+knV̹#?7X1D0f0:GFIP]]{}}G}Ǝ+W9 ///11WZnwo|cժU۶m|۶m{7^{_/EyHOOφ \./\ZZ>@ q?OlnZѣgΜٱcGiiNC{:t覀W_;wܱcg?lO~?쳣9FqG @o;f͚[ !vK/=Ciii֭{F_a֬Y;wLKKB/ k׮t͛7wuuܴHII^I3<7o,R/b;_x7|sصkWFFƂ ^|Çȧ~Z?uQ6;OJHH~PYYuVO?]hQ1 ъ]voFǏ>}l6w}'OjoQQQ7}X,C~~~SS/קɽV^]WW"Ӆ7k`ܑ~&ٵkתU~'&"Bee+mڴ|ׯ:].(2Ò\.ܫӟmZk`ܑ~&J0ܲeˏ~{=zLe˖xÇ?3/200088\3Ff͚wy{pp0***66VK}'nٳg}~#o}t]^\s.R7IDATݻ۷o'{~m۶/Xॗ^w3" c=WZZ裏]_toxrssz-Nw>cV >hii;?O>ywh 6B|ŊMoN-фB!kL=6mB۷Kv-?&]s i4zK7LO`0<a͉0:nbnc|/'O'v?f `2#ƍ.a{Gծ0M(R0=~H?LO'{q;IENDB`XQilla-2.3.4/docs/simple-api/InputParser_8hpp__incl.md50000644001725400016040000000004013273140074017610 00000000000000a75a69822ea2ed314994fa6c28ca1931XQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__incl.png0000644001725400016040000007477213273140074020210 00000000000000PNG  IHDRAp08obKGD IDATxy=CP(`Bx' 0 jf5 ;Ѷm*++􇓓ȑ#rrrx'DyD &L ..w"Ooߎ;';ss۷N0+a0 jf5 !pႎΥKpMUUN_MYY9TUUan0x %77W\\:lذ#G9rĈf5 ͝={  """6nӵwջw9rӧOD%''9rÏ=]z:44ɓEEEϟѣGaaaY A5 Azׯ_B>|(//… B Wqq1B(;;@ 6UGGGnn͛%%%300@Z!yyzzĉyS}ڸqu ܼys˖- ?V׬z { Rnn.D:"//O^^ZTT!91wܻw*((<}} Ad߾}l뮾|"##C}=vرc!DVV@MMY =5 !Y A5 yyy6m2229|^^=uq℺z Es3> w^^ ٽ{7a1-Ϫ*<ݩP=WWW߼ys11KPA ޼yh"uuusOycP% K{A? YA `V3{5)BADCd2?wC@/΢;aBjhrr ɿ(?ޗ@5ʪ ....III8?Eee%伞2eر\ ɏq!D v=syyoFDܹsN8khh􌷱97}^Mg\#/KCC~ժPG zC}{ˈP;ҥ uEE=[@jhh+}yy^ffӼ,-~#}s,3ed$ݯ<<-mM!c24ĿӔ)n8lY@ioF@rr^ϟˀݯ9u32I$'3DI5 @~^!ϰݯTU%SSlnh˗Uxg 0j޼YY1x'..ggK>A;).6x;pmqo{O;ARVHNvݱԩL` Pͳg LK{U|xg4$NNor'zzǃr`"5aࠣcb #3m/xgii[;v*xgX0譢NJA'Ndxz.tqha3u,9ٵxgX0*!PWxccˍnκFLnn>+af3,jtG}֭W᮪*wF47|8qqNϟW/;#j@o;UիrsshizΞreȞ=Qh!aVk+qϞkf̐ڮwF8)+W-]zfl@ ??PxuhϞ"ssmd2e“0`j4A"r- |43bׯout흰aCT}/3 jsN#Έpsslx轡_QG3L j{` w֞=?::ss=%LLr`Wh08\x'hllJHM}嵘&¨Q""H}ӫxN 0O /paP@ [E_wF@ `(Jx]c22",P;#&3kbVȒ%0_6oz[軹-ѯtԩLoǏ``/=Mub!pw7<~mvEKK`P K`  y3b32 ml|*+F5 ?{uhHH޾}&έtؒd}ę3036m7,=m_{Æq}AAALD_II}LpJmH= 3f EEN j};fHDØ1#Ng0I?s&E sJXuhG xa ckʤ !db2ii9`hQii[ŅO0_ssۆ Ѿ7vXhժJ)*:H$-]N$"劓ʕ!$;|tAA٥KNκx+srٸqUTF?lDF:Owpw:P@7~\\ZZx 3$A..Nss \''ѣދwLܳ![B >~ѣÆUdr'}#ggQ<=ڈG#lu~\mۮ>;p``o /?wN S2D\9s(룈D҉p]W+C23_FFeZljى+XFb7֦|! D>t躗Wٳ;#z;!ͱp$ӡ MEE#Z[xhj`MMmavlB | ;p(c, l~o֩sf~~ ::X%&f[_Vw.sss/_VkhED8psd `v|`}[ccs39UNN;::}*++9᯿/]r ޸BHyb5PwtݺHɨ#G*sssf0sLx*b C%$lx,FCC>2!%ٞ=Ix05 [^bJ AwmL̃G` ~ ڕxC֬w:!,Z4jK6o; a4799Etןw:X1mΫ<<\N`%K/*\QD9sm!BYY-]AXf.=;au}[mdttA#FxyyU&&&׾^T7 Gh#X~ͺ^^ )) K,"?dݺ&DD =zOLHH^K&AGh^zQHWGg<~`OllMtɑ,55UZZ!tef2*((GׯO2ORR}Yf!FD"CBBB\\ÃH$"BddѣGcbb充C*--MMMm 111&u$""r)))ƍwuumkk`<֯?9]^(0;nw'HGυ]MMģG(JhhxRRϟeddBh=_444888TVV"~JP"##cbbz̬xԩ !deehhh E}iذa!!!\\\MMM]ۢF(--Ťn+QCCCbb"j%%%>TRRڷo_*՗Қ5'*+2 _P#JI`s5NFFFMMĉ:Oy󦩩D"ݹsz 㫫) BBw{]ZZZ[[}ĉ:2H"E黆 n+۷) D@ms Ca ׯ6#Sfa(q^^"`VD"iӦ;7mZ@GaÆW^mܸz'pڴiQQQԃMMMD"QDD ?| ))I ~yy9 BkH^^Çedd͛1\ORRR!L}1~e{=H;<븸8mmÚix0lmò__~ٲ)OӧOzzz#O ^?BKKGQQQpp0`FFoV=|9---d29!!vڵƵikp *))ȑG$:05 0/_LLμ}[y޼qOL&;88l޼iii! oo𴴴ݻ!ؘlٲ^ojjX|;>~X\\lhhۄ AbbbCCC{{;777_?m 9Pxxx}}}lٲpΝ666cGĬbK؎vA))>S--d<̙3'OnooP(׮]moo߿KPa oȑcƌ Yxqg+gD---{{{QFmذe4qqq<<<ǏOIIiooV31io-<<|ر7onii`_u_"+~u:=03)*hk&''zzCoii92eeeUA|,,,BnvZKɺuX48¼yΞ> Oj}|RƎk߂0 ׭;bp{(`NHHq U\% ޹߃@T}7ˎ:朜MK} ,xHH@|Dիs:,((g׮ĝ;v2:psscH$2@ B8zp&311uG j`P$#>,쎿ڵ0I _I;f\@`^"`DD"%֭έ14w:MM;AEe)xz5 0u?~\^KK1O;sY@NhjjҴݻKK88Dddli[`^"`, -!ŕθ3f\D<()ͲDm_M b߿R(4innN&899mxyy.tttjeu>.nB\ϑ#UUu3<= 1[Hҥ?uh?~fQ66sEDh =yyɒS p/0UBٹ8WW3cK<$$56Z[|T= ػw_N\6b[" 0~n~u--DS3˗޹/y ѣ.ßjYccU! TTF{zoMHmZږYN c= II.))W ?PH&3Y%b{~iT}s5 ׯv;p,`>{706>А^]UUB짦6Ew @~j9Wv+`D"). 2iκu *\Mu@@VZsyy̦͛1jeNH-ܜx_ڭB˿%%O#)iiϵۗr̂κt(` HUUYۻwwL.{<3%I ǩSJJjBB@ x Iן[B8IV+_X= w2wR8SP})+KljwsawPQ(7()E{5k"Əs!311Ab 22"[^<7x'6-PP۹3D0@o\Vf6\h˗zO O66$%ɉRWMHpG…'<=|i;>qqq;fq΅A tudFdd~`ͼy,AKK{PPќ7GHOwc{f\[܏}3gΡo65TNke5￯;5 Ot}?̣GW$r |޼6̻&@=P3 v{{/7wᄄBƜAgRp a_P$'ڕskkn.<`Ç{ ;)͹nvA5q IDAT.##mۮy鷺gҘO !?dkh9; |TaCԊABG}y0b߁ׯomoX=,_>MKK+H$ ;hٳ {) MP,8u7\SSĉ ee??i~^D3bM+g޻COoڵ?wR!''8?\0@CMMmvv#Frq7۫WU˗Y1sƒ yxq z;v/ <`..Çs9w"l~A"c~hxq-H={X33wJN;W ƿC?lօrA woݻFD;tt#"jj~7ܦM;)v˳{qJkUUoll!M99cn{hł[M6\0SXXpVּwoNJYrL:63sLo?pL{IJʳO?w;zy-61w.ؠ<45=3r$_V;@ù}|L_;~^ ,Z4ICCС8n89]X|޹`B$$ji[2~$I?$p_N&299Uf: O0 \o%SokYZemۮOan3Ѱa\Vݶhh7}x#:ˆ <}￯mfdds$"t-}--7Z.$ċwR`Hll46>^al|ΏKIXjf@@v{{=eCPP}ڸ~yƹ-;AzDPPazId`c,[yyyOy{-[ ~hrFh j"s53nغg5SQrrR%!!dcJu[ jcD"iÆaøBCme`o ii[0eE{[?uCUToU>K119s.^t|轝]_nYҥn=dTD||RbbmUUe,|iymo?wcf_kbbQ!!޷o3FeUȄ R.6{&_OA.6ޣ'#0W9|x::_]0e_"}1ITo: 篿7xQfM8oܨGSBB!M[aOPͱ66LׯNN&gg{̜wFtp_Æ>LFffRU'' 41zF``,f9a`:GQ_oT'$l:v̂荗/nn>ĭ7)1^{[\..UUuׯ?] j]?~aO|Լ<ٳ7ӈsss.Y_Dz1C!*jmzzkeQNe}5 ȵkE/?[)''w.{__xr^^~u5xA/D4\aXZZ*֡wΟϧ]+[}Ά-5 ۷۷mܨx޹cϞkVVsxji)9MLv(,<\KKҥꞞ;֭4jBYYB_Y4Ϟhnnst0Ak1޹쫑ѩXٯ31u'Fnn˧sq~/lѷE%x޽gC ~j]]sX}ABBInn[a]73g* vH$N1wi"kki_]]v\lZgOP@ΟϿv36G K/Z7nue+Y)) >V ΧŅM5#I]}Dyu335 Twwyq]O?(((xqÁ MĝT3ܜ3}= B ED?yR~T&-ϙ!Clj]}/' 3f(Kw'3LLL 5x3bh&ʎBeFM(ofnZwq~MQ75 B^ 0ܪ?r2t;#&`n0A \lSi|<UU\#!X"22߾Wg`%vHsfBBBBBcp--\OJ0fL#޹0 ??~N]O︼hlo}9||5Օ#1bן^lbb/~-P_?x𠺺XYYy}L{.0w߾dlz47 ʡ,j3v645[wر- ba'QQѣGU---!YYYEsԷ@}-&&6zѣG+++;v۷o}]/^^xxgggʺblò anx2`SEŏKO?y!>~ڵt@*--]WW|Jss3L TUU#9~)S$%%;Kyyyg͚=z4]YY{z!@TUU;zhLL={'D qqq"I}bc!$""5kDEEeddo-jd }vuu߿w} =2777p_)u}׽-'P?/^TUU9rcB{g_-?>>g0ر/V ȂuXb))7QX~Ҥ =ήFBBѣG %44T\\<))222RK <<<_R(Șgv^hQnnnuuu"B ߿S(___33Sz{{߿ɒ% %%%EHHhԩ ɓ'ÇonnP(ֺ޽+..믿5L,`l;5ϟ766666VUUmڴ:G3ﺟ 455<+B?~8~ĉ_x1s۷{\\ܠZ4{eo1&zU՝;w^7˗ʺ^}ðauuu222jjj8qbTTT װ7o455H;wPOP(fffjXqqq?"(J{{{Ə_]]M m۶ܹ/^K%IIIJJJ]3D￝-Pz^~yfϔհN& Fq%%%QO{u^/PjXII wy_,-Ϛapaܭ#NHwN# G YVDŽ#FذaOVV 955#𔔔_iʔlD$EDzT|}]H%((Ç2e ??aaݻw޽dЗ/_H$"|%%ʮPΟ?QQQR%%%Я_o){-uBg} %%QYYZUUUUUu `HYY^ȑt#nӧY?al凹oNKmkמ sLq)`O>鹻SHKK?'z---EEEԃ}]B!**JQ(rpp,^8%%dԩ ,ʺ{.IHHprrzw拉fBrʕߚ5k^zEogJ͹[}?>|@}C 0lmf&ZZ*Ӧ 0&;Ǝ::Ο5K>~adtɓ򸸍ԭpA&6o|촴4GJJJMMMFFwAyxxZZZ݋jllLIIYl .H˗/߱cǏ B/9s&77nTTرcǎ涴tuu-//ݻ{7nSkkkoAHH~@z]v|˗...?~˱"$4|v ðNN:7o`%`d2*d--$138zxؙ3g&ONP]&))Y[[޾~yyyMMK.~(ȑ#njlee%""B9nS(q^744ۋ5jÆ Y?:x BinnlvգFtsskii+;wv} 2P($IHHߞ)u{8׷ں}v)))aaa++~.Pè::HG}d۶+dyPNd1c}ĥuis:~ۯZ^(Jz?RRnSIJT/ʺWUaDÇ]\Lç$С۶]NPp8[M.#+VL9R ".1Y06B&S.;̀M3 kуewU@u44bA c#!!yO~[Ivd())Q`Ї3&8qØsB/vj%ˀ.JK?~@Mm =-,,_ğ33s̙ l:ؾݰ"/-V\9ܹ;͒2}{ܸq..zl7= ` dW)lY|yժUrrr׮]%^.K>LDMm̂20~olj[-mf6=,̞g?~+WZYYݺuk߿/**:8` <<UܾYWLFFd!! `)KL$C)۶\ػwum_Є jjjN8p!F&?~r`@?y2c?{`6nYٳɒ%@6ń ֿ-[t=wވ6L~{vtqAA9s]zZijjzu#0",gb252207o>c@ c5QQ޾>zԼxLdnTRRssUh `@BBB9֮[Z}̞w7oxDD>VY 0[7nv{UUək6OؖxHH@ fT{{k׊`S}(~ie8RR\h ^+;uuOi be@ c>lFE?05=3zpR´hְhߕ+ ($4|RXdPXHN00?+:ulB&~Z4\bŋ>ec碢Xd PXDppO>>&~ի ;{֚%X6MnD?TU՝9mBYQkWցH ԧpI a`;yF'Z7(!C 7[jց-*&~+ع3qh a9((gǎ7.8th9s0sssMM\P?~ jӧ@?*+jka103f.gk IDAT[&M $%a:L֭񛴴1 KPO {ճ1̪jjDEݯ9g$nnNƧOۻwމvu֭*mW^ڎU@f[KK޽ffӱ-`dAA.UlLܿ_fȑ3ll4ǎ o; 6˳xZRS k+WyS*UL5gkϞlii_>w0zuV3Zǫ!!ކatef6֌73fʎJL|{1&0&-*fCC޽z,VaY u-/wele)E^^1 H LM^xǎ%0t0{)(^ص׮mSMM}PP̙B~p]FLQA01Ù_* S~zUg..lqʳ׮ɉb50oǫ!Plzppnaa TPǪ!̦?~a3Xs%2ϟb5[QcŊ nnΫW7ACɔG311z[B¼9ԯ_S˖Miii|U@5|yУ~119#,̗"!+2Wva;&&S~m,,,*9iiϱ ȼ^"ٿ?eHM =ԋV*)_^P}Wp` "Z)*J3k"V1-RIiiig&Ø̓'׮ݻlذyGn`n>02ROOvEڈ)̤Ld'ϙlh8i مij*;fIǫ!!ց cco}А$)/ $ b_^Lł/+33TZN.+ ') M5#ÑXV+jBpRpp^GlsS_ڵi[^]{h36lT?0M~aŋ1*Œ4Np(A ݯk̴ʠsǫ 9FOoBX؝X'//,q MM̦0aݻ.?rduHcp.]z{x0<挛Yxsr^*_/Ljsؿ?UIIrƠ#\X啰q/`ꇠp 77y㲳a*AA9?%%tuaL޽ҬW/; zomn6[ :^!,0NojjI3 w\Lj#)O7o"\`ǎ[` 68U%% aøM߼`=CCox{/qu61Akyh; 5jlvkjBHKK9:Vј0vD6={64a5h߿wlMOoBD]2قs;vݻd.Pڙ3٭۶ `ppC}|L֭<1\@k`^"'(.6' wj`,? XDO 9|8Sf@:^XyRU1sBA;;;̶tg"PׁBk"1`+gmqbsd'XEc.PӧSSGF:ĉ C֬a?ʠE#BB~ {=[)1 ۦLlfk; tp'!!$//VP$zAa ٳyNN:9?$C2cghya<̙t>fCb"ÆqC 9u*q@N }@ t0,]fV{ՐAVvTy9- 5QTV֝?oeX(,bVx#T"IVyy16\j8v~w]m-Dx1aaX2!HH)*?z(v^)&0MuRտb޽;w9;'߂km%57444~T[VUOxCCKSS[[[GlMMEdGS-*U4yyH jC8t(m$ccOsg]F6-ObS(-I 2ut &69Dsc|}oLkjjqX0=|.7M|F㸸;w&zy-ƽANjL$3~dII LѣӲM2&[IK@B:t]Gg|+]G֭zt˭'x1) =sssC'Jp={VI D}8PLjy͛9'#ㅳs̚5ZXWbvffOijjv3B󯿤=dSa<߿7 =7MMM$9wta zF/ce5+*?ag+@>{ٴQQߡ%611:޽R{)Ǐ[?Z-x{{]HCC~ #QWyJLLa+|YlYP(Я_Nݲ6<}>BOo‰+1455AA93g WP½vAcvrrZZ]oןcJ!4e,Hz3&DEa< Ç>Iqw0zׯv=YMMm;w.l|Yec6wJPj:l/vnv~?K$`Ą?8eУ TV =F?999DRIW;~~E& 6"I55V\\o|<>&$ĖփO0>tu'HJ WW#DA _{gԱ=ξ([e3b[XnV<e)}־۫(Z+  $@{" |Lf93̜9gP] eP(w/WCmV=WCE0i#q0Pw(+vEE3x֎ ޏzJl /J\9.-D3ԩSiPDXR9S aڣ.sT,B=:HW4b?ifS FXx2QQqH^}׮Kjq`ofE*Ct/ #[IIX >Mh>kŊknnNR^BbΜ' Tk dcI.QKp<=sbuFGJ]]Ydzsz| ,}>Lײ!`a|X 4Eee|"N1\ΉXUV6ϙgcmQ…{[[_ #,dϾ[]KG 4ҥ< e;>ӝ;wjQ*Q27gtwp7NaZٳf:&2NQvPjj%%uXA+ bb{ ܿ_'^RjjjFgzΝ;kjjt4~X :̌aH$ќ9a*9UUT[:d]_*ө >u갤=󭄄8#g0hzn,kN$q] K: P3O6I]T/A99E=VfbdJ<("pܝ;/$IW&i l.})1WhthFb`8̏ΟFxv?s&&+kr&I֭;) J~XI86BhۉĖ\ôuu!CΞξKkѨQ^{ĉϯ9GyUmm/ߓSDϐQfjfb*^6k%6ǏXAR,H0 ;o8k@Uꩮn_SU`_ˎG]4 @% BF3u+:73FqqBh1O^Zts]ͱc)ޏs%|ѢN%yL&ɤؘ=zTaQRԃ.Yٳ(//'}h]8tB+--5>}znnnYY_Q1J\+:x4opBBI~>uh>y(>m[h5kFwt,ɤY[ Eh#LsB={vΜ9uuuGR[DmBtx]YYy޽P-+((P\:EИ: (B };fL*1F婱rœ'O"<=C] ^O4ɓRvܹ_~Ew>>/_ _@ 0:3Ν;Bǎ @Dggg''HT^^NP~7OOTOOOGGǥKɗB>|!$I777[ZZ5 !m?|XXNOO' R(:::>|xȐ!_|"FM81rT*5>>!$H/\jmm_CfCCCe@|q cVVև~(|/>|ʕ+ݻ1fGPEC1Ap\~PRRRRR2z""""""zͶte˖5448;;ߺuHܶmۼy󪫫TVV>}˗7mT\\|#G+*%X,־}322t@ ؾ};i>|q-"Qz&bŊ#G ^x8B(228p!4|>~Pss3`7o9s&666Çqfff8GEEO>-..6lئMd%)**Ba&U`=@Hcw8jaaA2RTr }Ç\.رc0]"(*>o<.0G DrU2@ݹsqP5A^۷o[YY >,%%`x۷Ϙ1(KѤӧd%!^'&&"qļB9;;h|?}MV}W\QԅcǶyyyR{E僬U8s̉'Ǝ0dóg:@;;?dM>| 4 хX⠾mڵ:B7߼uVzz;w92eDҿq~zSS0lŊ111ǎtRNN>w䪪iӦ޽[Ԓ%K6l@y˗P(SL9u ‚xvvٳK- Lfgggjj*B]nvgƌ{9r$xw333B cϞ=+))ٸq#rСIIIW"F7o^tt#^qf|IQEqƉ͛7/YD9C8VV6+q+A0mIe71s̗/_S(Æ [jW~7B!'>>IK oo}7h?44׺6vB|AgΜaq_|WZ!;]]]񮮮<H/}}}L&&-. (0G;w4hǞ={"##W פ-[8d2 q%K }E%}'C&=&o)?(a,̤q fϞM/^,;R*׉]b/K8?~OP~~>ㄿѲ2&HI+: 7)))чy2m77gxDjGM rEEԋ B(88Xy FiR|˗/geeeggKŅXRTT$[F (mK^!$5p8555*W!*ԣ %vù\RPpwT[W]VVe&ov=i^ܑZIq]]]llǏB|_ Pddc###:n!GB*W=PP(yӧOן #j7ijv}a&+VHHHnhh%N@jld&8GGGCd IDATN✝cbbO544L<_---YhQWWG}Կ7555 Rl/O SRR/^b@8֦|{4$Bw]MMk75;9YQ@vI0RdPy!CXYY=~B% 72L%{TPԬ,@ 6l ,XЧqv%8kE"رc 5iU!M&{9}t*?h}'99Enn ޳)d_aK?qc@?UA ihuXFFg{w!nV9ro۶Hωa޽{ybQ];qG+ess뻺DjJ!7v>h֭=7+>c@&[Z|aäE^{5qDnk ŠT= BPlu45ؘXy-{ EݕܬQHszyy^zyBc~yqsy}SS%}Cw/\n]bbŋ[ZZԄ6g<ܣ2": ]3Gigg7DEEq8ooHE>Hs]6..nڵ۷o믉`:[l 8qbHHȶmz751**jҤI3f̘6mZrrDW\]z\Qd^x &N3|Љ' rySlrV[^^.[4QѓyQׂs rݺu&[HNz Cww7ҵFBqqqrr?puZ(GG.C,L?|+:bQ(^0Abb˗/̙bŊWkcc#_i""x}:ܒH6wwrF+:6<<\W9j[lQopB mb1fr: l:i*y3RSCt9Eoj14tValfrt0d7VWjthuXM 002h4?LԠPhQp\|i4ێ"0-4.\kB.kk[_CC3'--mܹB/xuϞ#5ۿzܹJsxa,z-]BY>xPۧ"$_@ QUnjx1~ǎZ2vWH$sBlm.GFR'jJxڵ䨨[Lu~ca(Y`.tY"-j&|Æ\IvXheZt%>ckkjmT1?0ԡ#2>:~|Muui_|q]`ggjkSH t^<\u3gw#Gn`0a]|a9-4U90ŋG{{$'g͜ma3] XYhTMqSUf`t-+Y|/'[Ι+:")CRT\51<<iZ*t \=H33W?Onm8[XA*9KJj96j@a}b䠂1cpw_=NaD"Çu!!0jD"I]]6M ggۯ§b16u7Gб`{K0ZD^bBB<ΞٻwOǍK۽7T,,TK,*zneu҂H 00 aB e֬Ђ?cG;|SkaEE!!&kЁ@PUbccF\58͙qqӮ_^W`Ǐu-f`vt~v^uh[@I+䒕"5bf)$wz="XZ^eV\\#cl@PUբ)Dr17gj[_X]_a`#FrpɅjyzѾڑGouۨt!/3H.,M۷Ə^E]FrI3H.Ê ciM$t?uEDr 5H.L&]((pS+GG?hbq|? to7GhH.]]"] 7L:b1+,5700?&_V$bѬh)VRRwct-uEn$7l]a`X]aR 1 JE)rAr0: XācX\h4 B@w֭wh](}t9uEP$" n(ua`tM`\a$NB#1+@ɅH. )aOÇj]"=t9FuEqzEyX}}kiiÄ p_@!IZZҷ^g$b/Q"Zϼjr[~c>r(tU3 77{__WO<[^^=<ǩ~YSzrr&Oڼ-_nݪ@Q(‚YSBҒo60cVkS0}t{^ٺo_~xx 6nyrtER{ө07g ct'oM`0wSꢩ?ݾMb",u"㑑Q((==" ߕ8 $80ucG˗"ş,MHY, ̙ wF 00NBB<$J,^<j}`Ee0脎aXGG…Z[_ b;BAjib2!6oPxb1 }Wײ%%%%=j0NR(HR]ݲlفupleŚ0 "bBŢD⌌,ڊ4۶톧Mdd&*gXG`% JUUmmH$Yfq1;/Ro- s0K2"~~~ҷ@xÇAA.Zf„ A  VWbnY,섁D5C8(ŹL@_xE a: 0T@ 00) WVڐ𩮮^|y?Qݻt:ɓl&y}M K.mjjRŋ[YY^֦00$***TiggkZٳs!HQ4D񰰰VP[[ڵkSSS_uI.kjj:NHBJ]]ѣG>|00$0 kiiQ%Czz1A.^8e y8loGKoܸsIIIl6;11QcRw9s挏Ϸ~(sgg'BSk0_rrr|||>5jB!$Ho`mmoߺuKl-G:::YK?~/^󳷷OKKlȹsx<Bرc!H䔐 .oK..2K!qŤś---eWZ!•G1̃:t(33`(R]B^… 헊uNCurr&MTuZH:W\QG X}gddt@PVV&ܹuuu.\puuEI3x1qқ7o%%%h !{SNځ˯ *ֳte˖5448;;ߺuHܶmۼy󪫫Dt/_޴iSPPPqqG8o߾> /.7Jť$%%!l"Ѯ8N 씷N|NYQÔ)SpӦMgBIIIII+m)/&Pr Ǝ;x<aDi)?(aDǏ2G[|%򫂊x}|)qVT|޼y\.'0l4mŲht։Eu"?'i"y{_r͛׮]R_><44T688XIm %XhBO[jՃ֬Y#Mdلqɓ=oIv900>PTtI HdooC<\5[ŏ=嬬ltT2___X't555JUG+N N/  @ @^:!!!;;!77o SRR 8֦~  VXsرK.sMNN*..6mݻeK-YdÆ _ת*EHǙxvvٳzB?#׿%4#[+W"✝cbb5"sSSSCCCmmիW?gϞ}gNU'|"/Vo> T<:~/p88DcZYY8.ogii9zheEa?S\\\ww7ꡈWTg׮]!!!B3gΰlH/_~V=ꊏwuuxD|)l 3f e;;;___b1=gffX'OHS*|zxxDEE566J%Q޺:L'xyy988tvv&* a? t7kt7qT߿!MTa.? CtYlllUI+o>U 0P*Ct`u-.ʽC3@|XqrrҵbC@O* a: 0T@wS IENDB`XQilla-2.3.4/docs/simple-api/functions_func_0x6e.html0000644001725400016040000001326213273140074017407 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - n -

    XQilla-2.3.4/docs/simple-api/ContextHelpers_8hpp__incl.map0000644001725400016040000000454713273140075020414 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_3.md50000644001725400016040000000004013273140074016276 00000000000000097baaa5ea5fcf98ea3e853328d132a4XQilla-2.3.4/docs/simple-api/classATDoubleOrDerived.html0000644001725400016040000030245013273140077020016 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDoubleOrDerived Class Referenceabstract

    #include <ATDoubleOrDerived.hpp>

    Inheritance diagram for ATDoubleOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATDoubleOrDerived
    Ptr
     
    - Public Types inherited from Numeric
    enum  State {
      NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3,
      NaN = 4
    }
     
    typedef RefCountPointer< const
    Numeric
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
     
    virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the sum of this and other. More...
     
    virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the difference of this and other. More...
     
    virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the product of this and other. More...
     
    virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the quotient of this and other. More...
     
    virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns the arithmetic product of its operands as a Numeric. More...
     
    virtual Numeric::Ptr floor (const DynamicContext *context) const =0
     Returns the floor of this Numeric. More...
     
    virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
     Returns the ceiling of this Numeric. More...
     
    virtual Numeric::Ptr round (const DynamicContext *context) const =0
     Rounds this Numeric. More...
     
    virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
     Rounds this Numeric to the given precision, and rounds a half to even. More...
     
    virtual Numeric::Ptr invert (const DynamicContext *context) const =0
     Returns the Additive inverse of this Numeric. More...
     
    virtual Numeric::Ptr abs (const DynamicContext *context) const =0
     Returns the absolute value of this Numeric. More...
     
    virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
     Returns the square root of this Numeric. More...
     
    virtual Numeric::Ptr sin (const DynamicContext *context) const =0
     Returns the sinus of this Numeric. More...
     
    virtual Numeric::Ptr cos (const DynamicContext *context) const =0
     Returns the cosinus of this Numeric. More...
     
    virtual Numeric::Ptr tan (const DynamicContext *context) const =0
     Returns the tan of this Numeric. More...
     
    virtual Numeric::Ptr asin (const DynamicContext *context) const =0
     Returns the asin of this Numeric. More...
     
    virtual Numeric::Ptr acos (const DynamicContext *context) const =0
     Returns the acos of this Numeric. More...
     
    virtual Numeric::Ptr atan (const DynamicContext *context) const =0
     Returns the atan of this Numeric. More...
     
    virtual Numeric::Ptr log (const DynamicContext *context) const =0
     Returns the atan of this Numeric. More...
     
    virtual Numeric::Ptr exp (const DynamicContext *context) const =0
     Returns the exp of this Numeric. More...
     
    virtual bool isNaN () const =0
     
    virtual bool isInfinite () const =0
     
    virtual bool isZero () const =0
     Does this Numeric have value 0? More...
     
    virtual bool isPositive () const =0
     Is this Numeric positive? More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    virtual const MAPM & asMAPM () const =0
     
    virtual State getState () const =0
     
    - Public Member Functions inherited from Numeric
    virtual bool isNumericValue () const
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const
     
    virtual bool lessThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is less than other, false otherwise. More...
     
    virtual bool greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is greater than other, false otherwise. More...
     
    virtual int compare (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual Numeric::Ptr power (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is this raised to the power of other. More...
     
    virtual bool isNegative () const =0
     Is this Numeric negative? More...
     
    virtual bool isInteger () const
     
    virtual double asDouble () const
     
    virtual int asInt () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Member Functions inherited from Numeric
    static void checkFloatLimits (Numeric::State &state, MAPM &value)
     
    static void checkDoubleLimits (Numeric::State &state, MAPM &value)
     
    static const XMLCh * asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context)
     
    static const XMLCh * asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context)
     
    - Static Public Attributes inherited from Numeric
    static const XMLCh NaN_string []
     
    static const XMLCh NAN_string []
     
    static const XMLCh INF_string []
     
    static const XMLCh NegINF_string []
     
    static const XMLCh NegZero_string []
     
    static const XMLCh PosZero_string []
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from Numeric
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    const XMLCh * asDecimalString (int significantDigits, const StaticContext *context) const
     
    const XMLCh * asDoubleString (int significantDigits, const StaticContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual Numeric::Ptr ATDoubleOrDerived::abs ( const DynamicContext context) const
    pure virtual

    Returns the absolute value of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::acos ( const DynamicContext context) const
    pure virtual

    Returns the acos of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::add ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the sum of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::asin ( const DynamicContext context) const
    pure virtual

    Returns the asin of this Numeric.

    Implements Numeric.

    virtual const MAPM& ATDoubleOrDerived::asMAPM ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDoubleOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::atan ( const DynamicContext context) const
    pure virtual

    Returns the atan of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::ceiling ( const DynamicContext context) const
    pure virtual

    Returns the ceiling of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::cos ( const DynamicContext context) const
    pure virtual

    Returns the cosinus of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::divide ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the quotient of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::exp ( const DynamicContext context) const
    pure virtual

    Returns the exp of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::floor ( const DynamicContext context) const
    pure virtual

    Returns the floor of this Numeric.

    Implements Numeric.

    virtual AnyAtomicType::AtomicObjectType ATDoubleOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDoubleOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements Numeric.

    virtual State ATDoubleOrDerived::getState ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDoubleOrDerived::getTypeName ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDoubleOrDerived::getTypeURI ( ) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::invert ( const DynamicContext context) const
    pure virtual

    Returns the Additive inverse of this Numeric.

    Implements Numeric.

    virtual bool ATDoubleOrDerived::isInfinite ( ) const
    pure virtual

    Implements Numeric.

    virtual bool ATDoubleOrDerived::isNaN ( ) const
    pure virtual

    Implements Numeric.

    virtual bool ATDoubleOrDerived::isPositive ( ) const
    pure virtual

    Is this Numeric positive?

    Implements Numeric.

    virtual bool ATDoubleOrDerived::isZero ( ) const
    pure virtual

    Does this Numeric have value 0?

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::log ( const DynamicContext context) const
    pure virtual

    Returns the atan of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::mod ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns the arithmetic product of its operands as a Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::multiply ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the product of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
    const DynamicContext context 
    ) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::round ( const DynamicContext context) const
    pure virtual

    Rounds this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
    const DynamicContext context 
    ) const
    pure virtual

    Rounds this Numeric to the given precision, and rounds a half to even.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::sin ( const DynamicContext context) const
    pure virtual

    Returns the sinus of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::sqrt ( const DynamicContext context) const
    pure virtual

    Returns the square root of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::subtract ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the difference of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDoubleOrDerived::tan ( const DynamicContext context) const
    pure virtual

    Returns the tan of this Numeric.

    Implements Numeric.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XMemory_8hpp__incl.md50000644001725400016040000000004013273140074016734 00000000000000d5c78abe4db384e886e45c03d646cf06XQilla-2.3.4/docs/simple-api/QueryPathTreeFilter_8hpp.html0000644001725400016040000001246313273140077020376 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    QueryPathTreeFilter.hpp File Reference
    #include <vector>
    #include <xqilla/events/EventHandler.hpp>
    #include <xercesc/framework/XMLBuffer.hpp>
    Include dependency graph for QueryPathTreeFilter.hpp:

    Go to the source code of this file.

    Classes

    class  QueryPathTreeFilter
     
    struct  QueryPathTreeFilter::StackEntry
     

    Typedefs

    typedef std::vector< const
    QueryPathNode * > 
    QPNVector
     

    Typedef Documentation

    typedef std::vector<const QueryPathNode *> QPNVector
    XQilla-2.3.4/docs/simple-api/structQueryPathTreeFilter_1_1StackEntry.html0000644001725400016040000002543513273140074023354 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    QueryPathTreeFilter::StackEntry Struct Reference

    #include <QueryPathTreeFilter.hpp>

    Public Member Functions

     StackEntry ()
     
    void addNode (const QueryPathNode *isn)
     
    void addChildren (const QueryPathNode *isn)
     

    Public Attributes

    xercesc::XMLBuffer prefix
     
    xercesc::XMLBuffer uri
     
    xercesc::XMLBuffer localname
     
    bool matched
     
    bool nonElementChildren
     
    bool attrChildren
     
    QPNVector children
     

    Constructor & Destructor Documentation

    QueryPathTreeFilter::StackEntry::StackEntry ( )
    inline

    Member Function Documentation

    void QueryPathTreeFilter::StackEntry::addChildren ( const QueryPathNode *  isn)
    void QueryPathTreeFilter::StackEntry::addNode ( const QueryPathNode *  isn)

    Member Data Documentation

    bool QueryPathTreeFilter::StackEntry::attrChildren
    QPNVector QueryPathTreeFilter::StackEntry::children
    xercesc:: XMLBuffer QueryPathTreeFilter::StackEntry::localname
    bool QueryPathTreeFilter::StackEntry::matched
    bool QueryPathTreeFilter::StackEntry::nonElementChildren
    xercesc:: XMLBuffer QueryPathTreeFilter::StackEntry::prefix
    xercesc:: XMLBuffer QueryPathTreeFilter::StackEntry::uri

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdInInputSource__inherit__graph.map0000644001725400016040000000067013273140076025022 00000000000000 XQilla-2.3.4/docs/simple-api/XMLResourceIdentifier_8hpp_source.html0000644001725400016040000006477513273140073022232 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLResourceIdentifier.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: XMLResourceIdentifier.hpp 1701582 2015-09-07 09:21:15Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_XMLRESOURCEIDENTIFIER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_XMLRESOURCEIDENTIFIER_HPP
    24 
    25 XERCES_CPP_NAMESPACE_BEGIN
    26 
    27 class Locator;
    28 
    95 class XMLUTIL_EXPORT XMLResourceIdentifier
    96 {
    97 public:
    98 
    102  SchemaGrammar = 0,
    107  UnKnown = 255
    108  };
    110 
    115  XMLResourceIdentifier(const ResourceIdentifierType resourceIdentitiferType
    116  , const XMLCh* const systemId
    117  , const XMLCh* const nameSpace = 0
    118  , const XMLCh* const publicId = 0
    119  , const XMLCh* const baseURI = 0
    120  , const Locator* locator = 0);
    121 
    124  {
    125  }
    126 
    128 
    129  // -----------------------------------------------------------------------
    130  // Getter methods
    131  // -----------------------------------------------------------------------
    134  ResourceIdentifierType getResourceIdentifierType() const;
    135  const XMLCh* getPublicId() const;
    136  const XMLCh* getSystemId() const;
    137  const XMLCh* getSchemaLocation() const;
    138  const XMLCh* getBaseURI() const;
    139  const XMLCh* getNameSpace() const;
    140  const Locator* getLocator() const;
    142 
    143 private :
    144 
    145  const ResourceIdentifierType fResourceIdentifierType;
    146  const XMLCh* fPublicId;
    147  const XMLCh* fSystemId;
    148  const XMLCh* fBaseURI;
    149  const XMLCh* fNameSpace;
    150  const Locator* fLocator;
    151 
    152  /* Unimplemented constructors and operators */
    153 
    154  /* Copy constructor */
    156 
    157  /* Assignment operator */
    158  XMLResourceIdentifier& operator=(const XMLResourceIdentifier&);
    159 
    160 };
    161 
    162 inline XMLResourceIdentifier::ResourceIdentifierType XMLResourceIdentifier::getResourceIdentifierType() const
    163 {
    164  return fResourceIdentifierType;
    165 }
    166 
    167 inline const XMLCh* XMLResourceIdentifier::getPublicId() const
    168 {
    169  return fPublicId;
    170 }
    171 
    172 inline const XMLCh* XMLResourceIdentifier::getSystemId() const
    173 {
    174  return fSystemId;
    175 }
    176 
    177 inline const XMLCh* XMLResourceIdentifier::getSchemaLocation() const
    178 {
    179  return fSystemId;
    180 }
    181 
    182 inline const XMLCh* XMLResourceIdentifier::getBaseURI() const
    183 {
    184  return fBaseURI;
    185 }
    186 
    187 inline const XMLCh* XMLResourceIdentifier::getNameSpace() const
    188 {
    189  return fNameSpace;
    190 }
    191 
    192 inline const Locator* XMLResourceIdentifier::getLocator() const
    193 {
    194  return fLocator;
    195 }
    196 
    197 inline XMLResourceIdentifier::XMLResourceIdentifier(const ResourceIdentifierType resourceIdentifierType
    198  , const XMLCh* const systemId
    199  , const XMLCh* const nameSpace
    200  , const XMLCh* const publicId
    201  , const XMLCh* const baseURI
    202  , const Locator* locator )
    203  : fResourceIdentifierType(resourceIdentifierType)
    204  , fPublicId(publicId)
    205  , fSystemId(systemId)
    206  , fBaseURI(baseURI)
    207  , fNameSpace(nameSpace)
    208  , fLocator(locator)
    209 {
    210 }
    211 
    212 XERCES_CPP_NAMESPACE_END
    213 
    214 #endif
    Definition: XMLResourceIdentifier.hpp:103
    Definition: XMLResourceIdentifier.hpp:106
    ResourceIdentifierType
    Definition: XMLResourceIdentifier.hpp:101
    Definition: XMLResourceIdentifier.hpp:105
    Definition: XMLResourceIdentifier.hpp:104
    Definition: XMLResourceIdentifier.hpp:95
    ~XMLResourceIdentifier()
    Destructor.
    Definition: XMLResourceIdentifier.hpp:123
    XQilla-2.3.4/docs/simple-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7_dep.png0000644001725400016040000025162513273140077022021 00000000000000PNG  IHDRM4e<bKGD IDATxy U?]"2BiT&6ZJ)45dTTUmLHjm45-%q{ϔd}>=~[y~t@!0r 9L&C!ɐsd9`20r 9L&Cqwttttt4Eޞ*it%$޿ $ 砱sNE)thp~ 9L&C!q23ӺvmO!Mh9hvT BA㨫wX4* 9S{^kG z s/YQ\sּ 5jPzc?KCu (h 2 ZU]-݇AAܸq_,** wÇO?~!==eϞ-_lȑ {0,<fd;wmHGfBA̜9];)S!FE]hyn=LLLw?-?lYw;jYZZlc;w7_$P~@m;jB\Ǘ/ J^|@X,yKS5ۻu)yefֽfJ;9h6Uǎsr$ݻ똷 !yy$?xXnr u7o>HM-HM-x(Ti4q˖uIIϓ.ͮnv3gN]7n _jÍmiӚ/_x:52? 0-A<<~(={Jyy磌wXÆ{l_wEBȌs6ݭ[NbMY?[[ =fҥ|"hX5I yz*+󣢢.Z[!ɐsd9`20r 9L&C!ɐsd9`20r 9L&C!ɸmnzׯs&ȉNt]0s.,lf;IY`//_>rB~{D7 v\#U0r 9L&C!ɐsd9`2'Bܽ0a·tB!]@؜{U]]Ew!TٺuknnUt9 {{{KJtttUEx8?L&C!ɐsd9`20r 9L&C!ɐsd9`20\X,1cF۶mlJJ ŒnВoϪNs.77رcOJKKАVSSm~ZyyO뜫 7)H;k Eh:!:u"lb;vԴ}!!!ꀀ}}}MMMz***={%K>|Pg>}(**FDDk]rGEEӧO dR^^&5dЄYR^v¢R۷#dMs޽{ׯ_׿۹s޽[PP}ӧO_t)>>>))i4`_rڵkuYVVfoo?+VICckgii|JJ6o^r||VzxHiiɬYS_kn^|rs 4|55YfB :v޽{+<<|ذa;P L? ǏK-뤥p$?vܹ6+**D"QtttAAmAAAs? 4˗هZrdN'5;x>|pssu{(>9!G-..ޱcG={Μ9?11111q5oޓ9::.\0===11qŊublllN>]\\\UU񔔔D"тnyЉ[b^!8;\|͛qqWW^V#UUU|>Ç!%9444֭[xϞ==lllFmnn/`\[[wڥ3h ??:TTTubf6ڵ;R) 9hk;*Uڸ1if5CGu p~?klm~k#F|W] o~S49zB|/Y,˩SGTB;wnzٖ-{xӌn](Qs'55yӦ&&RlVGG*2CBX,^ģkWK3⮾|-srȁ~sgǓzMTWo)s$/՚5~?oTNqH,S>9@||k@]3gHsW:!@ޝ?}ҹ())S׋i~;F]P'ȵ˗{;;YZZS׌E_DuGPr䚿"Pf&5e4u)5s ~!!;e]vvvS""p#L!@N}PO،*N=31zȩ Vٲe,;>ĉe)C΁p\RRqiwoe\ @.\ %h3cb~V~Gt 4} %hɓ\/-CC[-_VU0rO(ڵ.?N0+P 9 'E e 'O>}B 9LFˢ gffnbb!sd7~QF6mVTTtX9`'m2}˗]c!瀙$ 4E ZךZVVc\dШ@,9$Y`}5؛gp׸Ԛ-ϟ'VV~$&AZ3߾͗(Y`Ҁڋ؛u)**ݾ}C !t\bرk.ﴷw,J`ڻInNKK9s$]։f͡C{n HrKJ !sꥥ%B޿/pٵk7nA }]9\.Z}yK@Awίl6G$Bbl۱{p8tWY{s\@@ 9 VΝ_7Z ]¢ߓ'i,~=M,c< -9h⫫mDIIϭ]/8lHq]7⪪JWL9h^z7Y::_}e$ӂcD_U, E"9ݻ 5wf--n~dhki7_/]0e3b9ݻ \dl6gɓUU*X,֮])D"x -9hn݊j~rym۪DG_ }qJK;Q]yy9%0IEP´\nnȑ64Vw嗫mj9 9hM Y,֤IN7no@kQMdlĉZ9yK@A+vnp8|>ΰ#]T nyk9د \mt#..ϟ/_w6WF nڱomfT|?qIr,77lѢEtB55:k[~FS]]]VV*FZs zzztW!eUU_ޭ!X8?L&C!ɐsd9`20r 9L&C!ɐsd9`20r@Fb3ڶmKi/)))M^xs2{رQGihhPT<@HEE!D__QGDwQS\@%.\йsBBȉ'LLL!GKKcǎ>>>@2֭}}}MMM"IkEӧaDD!:ux~)))ikkI6~jU* 7mdbb2|?C 355 ꫯTUUW\)@'P;//;22RYYm۶ݼysժUlrȑ۷o>}ҥKIIIׯQeeeXb$G[{B^~M)))2eJ7o痟_燪}T;6otҚccc߿wŧOnڴiݺu \AUBCClll<<<,k.==޽{_zU=88xȑ'NXvm޽{>lذUUU%JKK]]] ۴iCl'OرC[[[OO|O}L4I[[{ܸq7nGEEŅl2WWWBdD 's@55s>{ãfcFF6bXݻw'dffKN4sG߻wOWW"!!nM|~RRҘ1c ?K66C}fgg۷f>}ԼVQQ!x^ȕZ]vYYY-^fFrrX,ŅI9߿:::-? H]PPnkk[PP ӏ<>>>>ܳgO/~OU'O3|9Dnnn'Nl})))C6CeeeUUϯ JKKg~_zj)O]0Ӟ={}}}y<޽{͛gnnn://~)SWVV6z貲qƅHz#G|}} O:Hgm 55-[8;;+++M6m̘1yyy~(sssmm풒:WUU-YիW}9~M`PVVsgvڵ}XةQ|>)spp"\~ܹ(77?{z*+=0o L&C!ɐsd9`20r 9L&C!ɐsd9`20r 9L&Cq.Z}b]MFd9U6N7eee̞=OmĜv%+ ٭_A臨ÇBMwR~腜/77+W. &K1cm}eРRlST?;Mwl8?KII222n |3r$넄x6r藖lhh,f|~XXԨQc};V@)**xNㅅ0awWPp9Yjj!kWJrpv :uS/]:GQ/b!fImtttq{77u-rhܵ1M_EG77S"( ZW4KMMnҲ6ave  gˠSrh4v̺_p<=̙/~.9H$JOO⦂z,[M%__OP8oBYv :d}PAMe˗$V":Q}SA=<=}/--]t @RR;tРw77xGEEy@@-5Րs@d#n40k\Osbq``0Es@]ezʧfpWRRᇙee!!Kw! ҵɕ+;Wt+@+zp8 i(=.. Uvv߾~Kw9P9G زN/'p8[ۑ9t z-Աco*((MFF!-&ijvxvvv#R.94(//k9 553gnhiiͿѻFbZ Oa9AffX,+ i:UUӧۏ=zBPcr BHhhG3c:ss@ B^ ivTϞ1}ĉΜѫ5oĜz߫Vx<Mń!bH ?xذ0o 4Am[ i.%%'bz/wss8{]w!***w2dx{`0 ;;S_߀*M'/6bd?^,s8ի$ï`<ӷx}4yMUUH$-i A-`$ x9tBrnΜiee5&5,qnzu=$f IDAT֣{l@ @֘q\m?~hjQ[^\j.ryӦj~9ܖBwGW|>֐n5CFzDf6 's kٙLaPЎ^xy۶*ؐTt; 0f0iR95]lYfG_s׮ݬfY,dH;:dX,qT95<)e?Y %׏4H7a=!D,MBqYL6m6U4W^z]RѣKvnݴN&&f˾_fB΁Lk+Hx{{:kjj6ߊ BH6mNcݽ{w۶m2@*s S 1oifffooOw2R@wp9 M͎JJt92rd*''KWW*@ @rss:w֥ #9/uts ;9P 9yuuuuztr9#yPs K9/l6݅A΁|.rd'77 c9]]\2xd9@s #"7XM_RˬM92k@ 9KwK.˗Do h%Hrd$77buCw!ӧOEEECCÈIBfjjW_\fw֭cǎ .ݸ@ ر@ /OIII[[[duyK`<Ȉ&q 2{{gddXͭ}bcc߿wŧOnڴiݺu޽gϞ/\rQ׶m>>>***...e˖B %;l޼xȐ!ׯ}lxx]z|*((›755> jM&-9W89Ӧy".фV99</$dύwמ;رL?A3"Go޻O%VC G@kYx9`}wouuub۷co݊=~<\ H2jHvT.Ȁ@ (,,u(rk2o׸۷9j8S+D"瘭];q&7*>Fl앭[7\K$7#۴iì 9P䍖P(Ƿo^W033;<\o <rHf5\;کAff==՘Jx(mU.褡9a ?~r#G())[ZZYYEt̄`jxӽ{ٳg```FF s@wjj,BZPXTTכk@pz&9s1ݻw LNN}aBCCFQVVFwu ;9VA;kPy[nKJϜ9U!|>Сk.oV1b_~}YUU9shjj:88Jl9VQQN5ֻwH՘[vţ wݻKM+QPP JJJ655 ͥ:rUPN]=U2 !j_3;;3++Hywxԩ==(С… ?~8q-[Y[[GGG?`PsUVVJQVn=o޼p>ސ6mڭ<|N3(((;;IWWwѢE/^4&P @rD6J_3..vT};СM^psĉ̾NG~ Z5Zyyx& o݊ yClhQ0 MS^^\GyA㚚Z&[XX}u.]RPPy0Jxy7gavN]tYn]vvcDz޿TTT]|r(TPk:/444ںuk<7/6z0)Ν-b'|AyyyueٲeYYYt IrK |bOqfŌܴiMr2n ߿?--ȑ#FFFNNN'uAs@‚6mZ'">/4q>ݺXsW^|)$VЮ"&oCCCSSSwѥKOOO,J#P75PXxШ?GZ4QRR /oߎJrH[[{Æ YYYׯ111quuMJJ.y \|n#X޽pe77n(**4h'O.9s@皠T!;ne"AO0`KJJ E1r"!皠i󖕕̙,kҤIO<9q{1o޼<嚛[~"#,^쟒oC.J)++:::#Fʢ9Te aǫb Ґ,Q=bbbjc3~۶2 ҥK.\xY=+++.eAU1oh?]@rr۷,K]]F/\?>|x_6>{'$$믿9T)/u(fjkȐ5c#G4w۵S=y>˦;h6m?&&&Frww/,,9T|NE_oQofҲ̙sN>QTߤ- Ο?uSSӣG]s@[6͸qttt !oG7p :4grS"d)4mbb333鮈N9 +h3oQxsm۪L2-<|XGKTUUCCCo߾ѣG`9Te|pBaCx6_9BIIŝ[-Ç,YjժaÆx3PÇ 9/ڻw-}}$"t ^~9r`ذHAAa3f̘7o/^vZ] *>|PPP Y133[h>{֭93}+PT4q\\=ڭ[7Pϗ#]EGGqQI/ Y9bΝ7߸/ ǧ:j@ HT]]-'9y~Hct ejjz݀UV=:;;(JTUUBg<'ϦN~֍< r[NNN^8@wEB%$OxN7AAAܹh 4hÇ]]])S}JTUUC6JOekԦM۷=xo߾L]9[b<''9ŋ.e>9r1c-[ƌGb"Ow! #Ҿp4݅@skɓ;wܾ}50s@ @@g96=~ċ]Hܹ=p?r9\b/$55B@:AYXX]NPBsԨ1׮]ƵkלNLw9 J`ޒ"iii9i޽kYYlܺu.\*_C@ W@H;4VVcABBlZxyy>}СCSL/!}Nuuu@@KQQd{QQٳ544tuu,YB:v옩iCBB!fffN:I>>>ZZZ;v.\ܹsaa!!ĉ&&&eeeE)M͎}􋍽"F'NKHH5j45}}ӧO_t)>>>))i ,ɹ+W]Vsܹsw -((w!גwmۖ7oZ;//;22RYYfm=K h4t۷o1";;r> 9߼%BZC]w޽z 6l!D j-<<|׮]zzz{z*!$444..c|be56''+)ٳ{x<ٓ'O.n94666554i!$//O(vU(''GZGG|I,bY[[BΝ3?Nܾ}7.;ȘN||ȑ#[9Ȑ~dRKKᤥIvYsbX,J'weeexb>H=8ȑ6WidO]]ڵkGq| 9 S3gOLLLLL\`Aff&!9::.\0===11qŊ4RZWOڮ~я6O_>V{͔ ,X@zĉ'N(X[˗{x{{֭!$9eBr ˠ;4T߾mY~~uF :z`=gtu?Zɓ'O:5%%꾐s8w7o>ӧO]ROwfX&&@XÇweʔ)& ?[}ذ^&Y_S{r8Ntt4q9NӾdg!&:thwEW@kf=Na9Zj@_;)Mhl_!_A97aXΝ W twqΜ*@SSF wuun977h`ܸoLM{׹sф { X,n-ã"#u7(Z.k׮ׯGEE5)N\mm۶MOO_bž}vR^Emڴ)::&> 9 eBåkWŋW]K \Z*\mʾK.]~App0}cmm=nܸgϞQ)Ɔ =ztܹcoߎݹ󰂂ݵ8\.W(p|988]]g`qS55U'o9ի=<<|||455KKKNL~P11N::$CC;vةHBi-_^^>oboBCfg CQx˩-^833۞)))7o\r%ܡHII)((Lqs03Oss3?/ *V>y222"taw$9sA B)+/#CQQxt޽FFF[nx"ܹ؄10Q`FO>njQUU<-jhpqqPAFk''6y[N )))p'ekkё31X$$VU}9I謭022-FF&{j 6m'o߾ϟp' EEń)Xp)+RRlwF;jQ++;r&! 52i.>LIIIKKINN;_~bbxx]uaa_VRR#sP(VG#kVTT\յDI}}}eeupB.\زYRRod?H022nn3BhA/// wKCCk[:P'cnmBBmذ 0AFrkkryyUVyyyLҽ ==իA%RRޤd?o9… >}zׯkii}DQAAb[[w>c[[_C+a 뷜ٹEII)448۷o'.s0W/lذi" 3XYm*(yVc!"j&~{򥗗eWW܉fqqqaa?͢u**tttttt**""b 366F{&```ҥK(tow7@i\|N_HQQ ЦM۴,3B0 [YTTn:___yL9Jyܬ=Adnn A13;̌ ~899n޼yŕ+W~DO]]mW:0˗)Mq/-ARR|ih!_;)-'رcÇND˖.]R\\tqȠuuu&%=>ԇhhh:t bee%C[!!!mm-D͒~ddd ]\\֮]{1???j_b122;88LsGeffe:5"S\\=c=㱱EGG߿?//#lR\\L<|xqΜpgzr<:UUՂ&eeR:Nqp wZ0k-SSS{[C&L22rpccQVyxԩݻw0KZZ߇\:NNpYMA@ >}khhw"$""n73wF!PYnݛ7oTUU*#)))P`zcccQQ7ocff; !.]w}Јŋe‹m49:(D&ٳ{:;;{yya/ni8̟߿RBb Ah=A";zz+**ܹ.22<*AAxhiizmBL`rrr w*&$$=000EPE-Xnbbw-랞 I#p!$$APkkA6s*ρ~˩IJJ jiiiP`jMv🊊 k-p59::p?7 ..իW?|8ԇ?~9O\\Zp5~wQQQ{upp8}'qL yF; p?wwwnnm۶\v DŽ~KP_qqQ(gfQSS#)) w"-e˖oڴ۷o111p' A###` 9fee[8T /mA)?;m- bŊ+Wvuu122N9 ^! DꆒXXX###!=q℈G 钒gΜB<==xyy===[Dxx ٳg###-Z`ǏcJNNVRR3g??ٳgI3HEE˗FFFM 9ŋgdvsskhh8v옳K?~]]]Ԓw=zŋEEEYYY~~~#322޾}{Y䲲stuumܸQYY>>>I'- '++mdd wĄD"ǿ@))O0)wA,,,qtw믿ݻÇYXX@*}޽+W adccspp ȑ#lll۶mÞ\ZZ/,, Aϟ?IN hѢ?~)000s0QJJ IGvvvaaЊ+/^=@FFfÆ @ ##zllla+5ALLLk֬QQQQ;?~?sl7<<wܹs&9nlll9}*/+{CqiOʐH$+99eTnݮďUTTMtRcc ޾}+""w@؍GF'o{ӧ򑑑s/[\sνF(tff--=Ç:::fff^7o܉@ig8B"?|(.**|&ݻo߾222*((kh}PQQYRReeki鱰@!؞>}|r{{Ǐm@H[>۷%%EoSVVsrrQW&QByyYޤ8NTT4>>~ʕǎ;}4q`@sb$ut|+(}2ϟ%%-SuPWז%cR7p־ymdeen w8 IDAT: +==s/kjZ=>oee.#s@N;wЀ;l@H@+++(++A  =e``<eg\(h^PPЧOlllJJJPb+.~ų̴WCut  ݻNNpTVVOII@#+ϲt.Z6{G;Dyyccc+V;Glls缼PUU}|<ˌbŪeT z&Aq2 J<JK/;@(͛78dϓ㲳9;^TQQO=9kkkBZWPڷc`N=UC ***vvvj,Q<ݹsp^LLLW3+2)ksCδx*U]] T^O08W23N#:::///88,dI6'%?IO7hϟH?˗khiH6KK[GG5kLMV^u!sxRWW ]vq9?MM Ϟ%&&ƽ}[0}}ff\+(ȵu 5ΘZ~< 99Ӷ޽A{fz"~;_`ÆM^^{彽]\ͪ/ZrС$ou::?~=ڵ5$;;GOO7BE[[Kcc&(7K<џi[OAdnn= glNW ,,"CBnbԅ޽{O;9Od|frrBg-{$=4ʕk`չFFF558@8y <XYx{gdgXZ30K\BF> 9;oSw m=u+ ;wnVRR+?/q#@p'fl޽:::pg!9Pf 55)CC;v_e7 \»#7nD,vܛ_oly+eΕ{wu GE35՗v-$;𓷷*QNeggGMM&lA$''DD !,, WOrӧttǸXPPPPP^:G˪+O<"//ryc+*ZNL9 Js_-_Kmm-tttٰa,H@:T,]`aAI7(Ӯ]tttكFS} gd!YOڢͭ^ΓS\MݻyOHɀ?22!<<6)鱎BNN&܉ W~޽{pg!!PhJmm.QEOf~ڽ 33˼yl`|8w|۷o 207/S4OqݳgwWWYH9Z`oڴN]]:5>wDûHoa KoϏ44`x8 嗑u2c-w"`zNbbb:yrƫP P@D-mmy+5?ލ)*ٿߋB6] Ao44tn__&c}dnF }|)jn ^v,$joo^Tу˗kzUܚָ奔7_}} \N_N'W{0PDT0 Y9SUq>eF8pҥ[p)νVYy9N ?^ëWe>RXX wuzvw_#1Թw**ds?طoY,삜76Ý3:G _#<<6?|pp::~С]h4Kl2100]kAPkk|ll$܉ɝUxy>q Jdk199ɓP69m L~wuu ; 1:G0LZZҪU˷nx Bx]ACQ޿'++.zx8xu*H-XXXϜ M),|<=zƍp!&P(QNN֭ 33EG' Q- Gto?ȑsN &[e*WʰBBN)gϞ=gΜ룝iQLccMKKcWʢz+Knn^::o|D766VZlPSc̛FwTTS烃OZZ&r A9JQTTaê V͝;/#mDcip"###/BxUVV ~С]k֘9@ vrOK+hnn[D݃wu~55U[kPg^()hs߿3g%2dh>u<ڢ ˖|^WѣСC",, :;;(455p` ۢIǏBnnNNqhϞ====111p!P`$ w.jGGjx-GGG>aܥKgZpB Cg}S|FGQp'CCCBΑUUGssÝ;7U{{mR\;:zuu%9,'HV\I\KCBn>?l1"6}*[u.0Il@ \]oߎL1Ņݻ޽K՟3@#ի5ϟ8p;="Xc# mIw?{nQBB2??pǙuŢEp'bb⍍0ԹR!!vvR\ٳĬO_aΜjrrrGݲe mF᜜[ZZ'O8P(TPuz""J7ovB pbb--M(VT/#ŕGFFNڸNKKDZZ:99955U[[R333vvhw;| A@LL|tt7֤Z[Iq ~y55UwGOOuvvvqqn ۷jjjO<ѡ%a)33 <==΂PFCCUU5 *DECXG:D/\tw%S'###AA ̙a0h |VJJJGFFnܸDݻ8[۷7<~ӧ٠ ''ׂl˗걱1))Y_…sE+OJCCB GF( 5_89յɓ=}tǎpǡ}+WyArr2Uk^yS'ԂJE${٦['XYBGGgmqQL66m_.^}v?UyFGG7n4VW)QUՀ;'\uu333q/+$$y6^vj7ڡP,BXYّ3 rwwONN[vϟ?CLMM۩o@PfDwߏ[DԁS >"??H,UT'}(((F$i͚5yyyUUU:::pǡY+WdbbJMM;Ȍ:7Y*E[=CA?Zu#ʦ0zش~BqeddW~QTT,,,ddd,**;m;w~JJ Af 9\EDܲ^ŋBRB{$$}<͍ν~wbme' a&'XpǡMk׮}(AfԹ ;;o:|xѣݹM;R|&Os uH$u+V\bŋdǗX))Yi饰XKLLtttܰaI V-..;̀:7/ƚyyY=wwD]`/ds?B Kݻ9~ĺ lm~ d``s1 Ţzٳghl sS),|elĔUbJP7qdsՕs#N._tl+ͿVE1 򊉉qㆽ=o@\юĸ =#mb)[VWWӲ}vv b]?**tttttt**""bp֩&&&}}}pǡ^OM9;orrrf6II)2[sRsuAmd@ MB W\ w=88X^^wun77ߠg΄Neb$VkLlUǴ$/h cffwꠢn==fx61셅puEiC:lv>B+KJJZRIBBNʯYc:1?HI!ҽF\\<''gպD^ nA o޼ٳgYpo6Yҥ S֢q!e#6Rm(!3\}ʼn묽-11.,7s|? AJH~ 'Ժ5kedduYE]]pPXoezll,99_$ Fqqq#,H,,BB"Օj}aff"Rw^cge;~pYYY溺iiijj`4)++9sf```\L >A}Tnb6D&%%%'RP+"UHww33%y%%%~8TL^^FDK%KxxxCˤVU}$u+uu_aѣٶm(Ĝ9s233C$$$Ν[VVw\:dŊ)llC㤥TzqZԹwnذw!(33sllYFFq,M-uk߿M$=_$HAA;w%J$011Ęgee*|L鰄u/>>Ir!%%CGGWYI®ޟ]]Zn SSTV^NT455d9{@ٳ'Ο wYuXee隨AZZRS]])@߿aP !!@-̺:`|}C ȏCQ;WyaO 'zz SSS[^(Z]uߺv=!8,H_jE9]ghԭ]իWpǡ-  8Eunlll , i_|&bMM \!99bE(mdd~zA._~;NfKۻwۣGQřZgCP$~SS fFFƘ--5kPg!>>6dVԹm۬cbRLL3II211 [ZD>ի͛A#YYY##:N} ~RP7d>z,imm&=|xh-SZ ??ASSq(??oNscccnnNYYI:p KHqΎA-1Lll2k͟??55uܹ&&&`k֩'\0$--=[FFjhۼىjŋu r-Xϟp 9 q?zzpB~&:::w{jjRR`sNPPŋ 6662@wDĭ7"W^w?˟6[NNNt͍ 8grrU `IHH$''l۶ ͟?98^r /+##:B[>z717R긹NA;bcccbbN< wJ4g 9}˗í6Ý(((-- K/^;5CCCW^ͽjժSN!2A?H$_s'binjjUTTAPtt#äGbAPww~m۶q IDAT17oTUU555d@-Qiεج]TڵJ4yٲe@ ##z/~!--=a_cjkk~.+Kyxxy]{{ee%Օϙ3ѣGIII۶mӑ tV;GvvvaaЊ+(cdd|e -zmlΝ;')'11_jkjj0 v@ATSSZT'OP?A$! Zpu.!!VHH[OnggѣOkhhFuwwo߾t 0SO>urr3 9 ఱ#..8صkgbbb{{{ZZگ->>>eeek֬z*u/_{ѣNNN=x𠷷7,, {WzzzWWWVV?C HAAS fIHLi8qy# allޑFF9s'IKKRwT_;TTTBdyaIISNؔ o߾-١C<<<ٳcϞ=Ν IT J55UCCĺׯm\\<3]MSSÆ dmmW++???A,,,ނ!!!,,,&D"(GFFF~~~pgpEݟܹzn鏦>|W lll^~kӦ;gϞ8pǏAfrr*++aW<%$JJJ/͛7oޜ]g 02g ۳gχ q8@s5=)++ۺu ?c-..6}:Ӈsh4ɓmúzeoo/YQ\OOoY`588haa!.. w!K6QE3: Y9Qvq2::zN <&C@@@SSǏ>L-O;mOtؠ h~ ~~sUֹW^FD<; ?ˈtP{{?ǣ蔔'Tp3AFh~K[[ٳḠ; 0sA_SRR; @UUᡊϟ?fT犋|u: [E{sXڲe v52QYܷoO XX A||3LLL>YAu[`౽{+) >UUw}DՁ\ZSFF&#pEˋH__pgCu#:t IAф\;P=K_<@ccc?~v/Oqvv{QJs%%bb̝;,Ituu8`hh0''ČFsrAyyyW\; /sh4s>X-caa%벣q(yyH䰑ZBfYr?A#G9R]] w(ED*+{%$ȨDP.23g@.h69?.%%I[纻엕; @ZGtxDk433 L$3YU#""^ w輽O 9UU; ilht͝; d%//cǎe:u}<Ý 9UU{KOOacA!oq KKvwَB׃zӶmM--mߨ…o45u8[pY4+빾*FFFyJs==ݷo_9tylpgSSK"^瀗bϪt200D@@hڃ?O>|ZQMs?D"sCke 3z?tuu唈--^v"A{ڛ7Îv6Njݻ*+ONìsoݺuϞ= ,;,EuLLL;vDDDDĈx˗ϱٳcF{YE577=o=5k̜m.^<I@XPUո}F?~tϝ;i r Wp?_p}i𵰰?ɓ8i388pOS_jkBn܈ܸ͍jj$8 ;,Eqz{޾}eϞC{3G qqQ3ݠ @lݺ=::bhhpڃ݋5ذ(//ߤkkSSуù4iBB"x4Accc;wn?p)r͵53mhΜ۷y3t`#ٳa;ve5ӆp`ZZHqq|ղ2RWn ۹s/AO[8wCp9)<+ڮ9QV^RPǹ8̴ֹUL>9?'';rr2Y/DFFޝHq%}{8C<ښZggrrrRQQ9pAf)ʪscccwvΪaBB":xͳfYD-gdd 57]G$̬utO[Z[+ JGW^wƭ[QحpU~{tprrorȴ#{9FZZ!u@\t˗pg(Υ%6oݺ `c6wM~ee_ne*% ~.~uǏiss0A'ׯ߀YYxtZwF?~#{n5772Tijj:tDe֡:wMc 9v_555XYm zzKp >,쮃Nggx7M\_|LOǂL*Z{#wvdgY_|nkkÿ Y[o }/_߀{߿h۝aBiG /_;ȬCAuNNp!(99EB6C cb2eYAAo켉]UY\ۂ;mGwnnk-:!!7ftbnnּyl˖碻w]]Mrr<8qv>]ci<`!!!SNÝev:w nnի|FFF7e-[ᄄftvpllecjtnmm5FﳱY6#pJԺu/Y~~gv>{CjSBZunEH3#!dFFGGs?ut|#ʽE0v SM&XBLL֭󣧧~57A`uu%==<Υa[n]d xJG6Q~Yvvz>LH λCBnM`3[R9ֹW^'ߔE0^Iɻ^vnʊH%&&ϟ+@$NdVΡԧͮN˸(6D_nxoXu[] t`0ʆ#MMݑx|__Ao` _ik+E0^nn…RD:֭0$rәY Z[q? BKHHO:mo_oiik}6ױu+q_M(DDĄDpD}*++zz۾uFE0A^^֊+엝;#<:ae8o vÿiVA(baa!%%ŭxΥ%IJJͪ lP0-󰿿XX!%Kn9::rpp\`s%+ANoP0 MM-gV2KMKKrqقc!@E<< K \-nP0-''גr5ؔTKl)"))% CڅuYϴ\\%'Ƿr99Ȅ/RXQQf777 u.+<HH,YPDБ#-AZZzqq7Syy8-754:uvVFQf[RN_Q6)sskNNn&Ntd䝠 ?SRRB`C49,,OgܬIN'v>z7vnQk'&fٲ;tu ߾-SCH$rbCS BQRRӣ;kxYh411199ܿ+Y\p=8TTThmmVR"h_YbϞ= pYpֹ`@fڠ`Zh4eBlJBBFii՚_pbJ$Ľz##ڮs$$,rs3uIm۶O~){=thWV >^W"'%%w:` sEEoH䬪sqqQ::D٠`j [_'eRRrkkkMpY,HPPXBb]KJ~Ԯ/_>/۷YR{ٲE.k;fLeƊ$_ƍKDѣYYmvrWFII7>Z...IIImmmpMpֹb>>~!!3q7(kEEiI hO /{YCQ%CBn=ơLMbctwwegGE%>}(** 8`_[kj3e_i{f@\t[UUcӦu͍^/?3ÓFG:$4QXPD`]]]ume-kT+XAA ;MAtA@zH{?yr\??ɜ;'Ÿ. }@`` 韠sYYEV]W`5(=[D_m-CBw 6"::yqިu%4iʇoEҹ.+#Glffuǎ3ft&99AZZF4OB.@ p̆zZZ nx"T s99B ;7oP'K,}:mKaqqΞ=Z(&Md2,[v7o^5d[[[*\@<3Oll&vֈ8dr\VEAM>>(JMMuEE9XbEii)FF8:[h`0FLv̙3 sUU5SS> zCa0߿4~ח}t :!3L&$α𖒒u+ D툈جW߽`00yD lPӹ Eń A[ep8=]z+jjj;M#/_ꮡş%"LnnVuu(uN^^+$-)LLFGDG9uꈾR3UWDpGGGÇ6 6b4A 13fx +_p@CC3&&UMM}¯j>Y~Mv 0PVV{7AK4s/9]^,K|x=yoJ3f|g]-٧O!8'QTz_,_V('''Dtt{kkN;P`0 Fu:## V orY%Bff\]޽Kg]}t+Oq3ɺu+&O:p`˗Oi4*' ƍ%2L*~7o^bb"0ѹb*.t:d677]zeL{.;!ոQF 5͛1ݝ32Ғ=X(vWJ>N>} _ܺuϖRS[[݋NEE|ׯ_XZo߾&RˣGж~;-A/:b_@'q` ys&J(toxZ*+())O5 8ջw~~K4qrrB{x^7o NNN3f|θ{|*ɓ'x!tVU8kj#E\7_$%%-hss˰;o~_)%%?iK7|ɞ=Rw(u&LJbq˗f+Ř198LMOr?=F0DӤIwZ+,*Hӧ}&wǽ666555h@AZZ)>C%~8iP"/`bd􆁁'33K7nܮT~K \7a=K: 5=0/2Ĉ ç jmmmu+bߺ0""nȐ\7Y(fu >Q }+_~MH2f))W^mHc9α/]nb2]ct}F -[ͭطo -,`X[dٱX WPX(*bœ9Yu0)ӹHV,%OPPPNqr䃤*h&u޽[THIIPPP=ںϑċ=~s > XZZBCt@EE\8€ۼyϬYnh33ѣESʕ23%C-VZ$^ٳ RRRR:p8g0X,gهE jo$%;::C…KZ[[75#۷۳g34M]b;6;/5s!%uxn}B&/ !EqFU$$vΝJYX`0sYxժiPҞ9rZDCCƍP^CLt)[-my>aj;"QGK666ΝkmmC@ p➊2 6>SNNNuOҎG_knuď\~.555hֱ֪c**Yŋ67ʕ>FDP`0'O^:u܊O}`ccCR߽{gg~DΩw===D8>Ɨ[`qPй_~ـх~DFF"[)))~31,:c))阘dr wsS6d`#++<=$c3r?8DPG166E kmmG?1vcff1v RX "2KIIsS{g+DGr'qL&)4 ՝#F࠳C)''HzO$%N۟iiW]'L0B]]ܹзo_=CĤրTtUl22 .魊1DH0gϒN96y~{t:=1,Wtpp>}6S'LLLL/_6DsKW<{!ֈg )S++DGy5=e]D :4<t~NL>VĵQ8I$ccS ᄔԌsupȐFFƂ/J+*z_?:::<ׂt:|N ccWWWm@!99~g!-"ȼyޥQ/ѣh9k_.z"9%TUU :9<RቦƷo_Ӓ444nsSRRK"NK63fٴiU}\Dbe%3T 9Yѯ YOOK0E&t{)h7x<~L#8y(ZQq?ٌ D:' (B_YRRi"چ-- |6⸺۷$$:::KII!AJQ43K"D"-X,*F 6.8FVp%%Ǐcz|φϓg@pd]6Q#%tRO>((/..9ѹvtqqQL&ùq@ZZ&" S9qcΜ*ׯmH&)鱢1cƣm̘1ŋ?}swdQPPzMӐ͜둝;p {!EVVֆ! CABvsjee-[kNBf =,G<IIf``!<3k[cϴg+mmdFٳG___CCח}voƚk׮P(666"󭡡L& ڵk&&&f144 #b:_EEڵ`/͆:?Oӧ`0AAA&&& 2dҮ]XwH$'KPeg=`_IHmooRFAsflEso)B?^TT͛Ĥݻwϙ3gڴiׯ^~իWO8qΝ&''8pYϞ=wW^gtY,===..LJb]~ZZÇlRWWz;w.]T핥<=}CC/C4Jۧɓn۶-&&ӧOGٿ?ᑲA,fΜdck;IK$2瑲1:9A@AL O>gnn~СGDggUVY[[._o>ss#Gr6lzjKSԛ7o?{e\z`477׳eIIE4gz6mڤ غu?^L) )1@wDeu1cNYٷO =>"aڴ$λwΆoIP6DAADOqq1D`0 ɩj*ְaÆ6117o#F(++qj:>tPַFFFvJrrWtuu'O3,OgȐbةOAQQ1v#$$N0I^^r,"ùΘwtt- fBL&ɬg9JKKO>=mڴ7ikkǩ/X---WXX@GGu߹mmm #22nٲeuuu= XV {ObHtzJJL/ y+vvDbᅊّ#GrrrD:Dr:m۶O>9s`,]_qƓ'O>>>;vZfMIIIo[ׯ۷o_d b<sڵEEEYYY;wH |ΝƎ 'NY橪†<{8 &qp-88L{.[BB,7*YYY\o 3 tnVVVSL5jԡCΞ=[SSeso۶yvvv0{{{O6m̙...۶m300#Ο>}Z[[{ܸq۶mH-[;v֭[8+#%%h9<2(]go&$:LK# `0ӧO|2,, - mDbPPPPPʚ5k֬Y͍#G9,-[lٲW=oM?ep… xO Joog?O˧cbHk(+XX~LU-;vʕ+7o榤%Ia@ b``ho?E Q$,>c3~mEENK6c2{Edu ?0!!mC$r6t41!@EEe߾}'ODu455ϟ?eL7MMk]HHup&-Q+{_z!b ++ףmD:<h_h%V-P(OӲݻt d;Zb'NHJJwڶ@s^]QSS!ʋ)--SmܹsC]]cچ @D OP[/>uچ@sNɁII}+F$!!8-_~T[[WL\7?O- u‰3hj^!GAA^asׯ[t37oٿ?چ@sNxoo0W*+k!u{)[Vt:uGAAaϞ=gΜaכ@u~~?~<~!F||ԩ.xėҼ`:::޼yUYbw؁!1tua4 O4z8-o>}["Q[Oo/е38}vzz:ڶ@s HN/,!CrrJl**ʞ?OYX~ΝhGAfD6= cƌDAv-XUUtibEf h;A/Y  L&ɓ~d2n-Xݢss2GMuVؚs]QWWmC$@?O),x&&# R7%௿Ȉ| sћ:%$"چHHVh"(aaƎ13rŎk#:7v9sܹn :2905IARV !QW#&枟ߊ_?~`޽?~>چ@snqrkpiyF@ps]iiIyy sm D\:xիW( ڶ/XS6DP^ ZpBcM _*nؽ{=z!qAuEFFb*".㳬hDFFp8=> )!Qŋ/_r||6@NN~Q麴rqqٻw/چ@.J{_h[&DQ.43$Bo,~.Ņڿo--RocBC/$QFwӤ={zpfӦ5,,Xl``%+qnR ۶IoذKVVz|lll^|*2xb&LHNNvttDHmL\ȵ oὍAsپ7}+V=?^Hݽz)>>MVV+++o?6{ۮ]6l7$465ˍbϟ 11aֶ/jiiͷ"666:ifꇅ]r4[ pښB@FFZ'F2w*+ׯf%KtؘEE}}whk=nV[np^mM33?*^پ}{RR۷"P b,YvzhQRRjj=<9y2@8q`c=zоSXE@T*Ɍ}`mmoՕE=={^3L&389+ӦM:z(چ@g|}76|ֺu+vȐƤ=ck1_8yƍ;n]}F\sFJӯ_[IwZ>|jn[}( 6DDDmeAxFKyzz>}mC (udr)휐4u\cAW' IDATfKRo -^p/_gի7h=ԭRmms_%|oʾ=~f`i9/MBoš5k.]Ѐ-4:GGg}}pF4SUUØ/2W0 '{v뗇yu#-p8W^z^QQYşsꚳfq{hi9`de}U|YDaSX7C)v!-{ɜ#PiiϤ:_ѨW?-ѣ=]sÆ 2eʹsoAL|و\QQr}K&{ddDF^s3޽K_^o455sU` Ñ??BQq3aiiϺW&RRL54_H۽ƨyyF0{襶/SP!>zc[N`ff-%%b-!s%H.="@Yd!mm|Yܤ{|B dmx_ƍ;N|dlnny\ '{sxpKQSS}M 3g.TUU˗ߩ_T766z{/=|M[r o޼ŋ^rٳw DڵrׯGpx/!!<$ϥK`uuuQQQhAsК1c.QߏPUU4V55߿5MMY! FSSo7c\2yAw۳gIKihheЫGFef~X؟EńЋ˖occSaW iӦmALxEnnR޿1kּ ;}o"q sL׽K׮=ظqNjk;#z c]qͰf:9􈑑1R!ɏ?D:I: ߹SXDҮ󷘼QVvs玛ꄅ]:|bmO/{C.0 N.Xe68?+իW6"jA,y3 hJJʶ }}˗oEu/ fﹹM{V[[]9v{/]z_d##֖.9bו+-VCA{)~~Sܛ9snR^\"&M[YWV&Zji<=};\_1c%˶lcǎOHXэw9r Z4A(!B&|!ujj3g RSS}.J~P:dɲի7]ٳdN߳gsAA^UU'徾~]%k˖=K.]LL|/G]]CEEsƍh)P @&fd>|}WZZщ۵Hmm]rqq%=zDҞ;w&?6sBB.u =|1 ά(? 4S$%y-1/Asds:tQbb99͔<Ш"Q MС=ɓ55^6x1/fȑhP x?BwE1LAhjjThj#"bsr2W&w z5hʔ鬽UZz'5ɟnE .aBㆺ׮Y;89O-`)@1TUfϞg4Ç6jhh dcllzͨ}<%%fKgCϜ9zY,@ZhpIii%K"eHM(T<==?!u$drw>ƶ֤Y4@Kߒ͔)ӏ=w߸<}+{L*-yn޼{ֵ hLtQ>immrl@Zyyl>bՕV| tjjj11B*CsQRRvuu6Jf懲oӧ|uI[9lX] .RSSq#aO0ӧ?`>bXzHԖ p...>D(:A?|hiF-ZZF!ifh4,3ٰa#\y…°{=9_7I[;i1k֬gϞ54p' Dr:A G0SO|CgY FLν{FunBf_~R;*-S]o߷sQzR; ͛װlww:-/֭j3RH:ՕT7RUU2%%mC BɢE~msGꄄX<?yTøDCC C޼yU[[s8s&$ DftM1cGߎ`N2kE\^ ee._>0*9d2tkۅ",KP.\ҥVVllx}\B$jS?j5448::ƢmDD(())ϝ (\#N蠠Ⱥ8NMMC~Æ`}g;7:vv).. :P 22׮ojj\̋SG[kktN'Gƒ"<h ɻEO78::VUUmD@ 290+o8R)) H9-Y#U%"_7\ۺu˃MnG-ɠѨ6ڡ?O\`<=}z,D)%%x1soߊՔFhkׂ,- w؛󍪪: I&T saammknn9 ##φif 0+*rr2ט޷'o߾Fh4Sަ7nn}.\ ;::_]EE_Y&u;{{CEE JƎ!u"D,Yv ()) F.xK@|CYY'w˧T*NWQjkkcbr70pڵ˹l>nlljddaƝ'[ ? ܃ R{AɌۀS]]T~˄ɓJKtxŋPA{=f5˔s//_axQ]ñpjH.x0aB^^ޏ&:")͛08|['dE%Nfdq_rmJnڶyxxw2h4.4ZWW' 8~""=Ļ&q37o8"C$sB&fgzuRS]QKT__ކԄmm'u8HEE]O8shhhNN?q`6 9`0cYpz{Ie zG!#jjsh"P eX j$''XYSQQEvEV=UQQ566|93dǎ ]<s>5cv&%= OO_,Ἴ|9 f%ϱ`0kn޻H AJT7ƏuA P Bg;7>qtDi `5Aul>YYuرONNUp87W\b>ڸ{= ̓oߊ;-Q@䛛 X[[\Dxz۷wXX9&"Zd2_~1a}o׭c )vJ :sZZK=9׆VWװXT;om +HILX@E7]RRǎA|9TjA^^nM.sQSS߳w_-"c8Q(7B\BNN>NsЩwi" SP`0hP ?0''sbJJce>HD ˗OͭwWgt`0t:鿹)mJb8P1?"y dzdrׯ_^HZD";ߵ9rr2UTTY!\B$4`6

    }tȑǏ/**zMbbbRRݻꕔ7 9(x6`CRYOOЋG$>PtzQW##cd¡C{u^ZYY9yyӦM[***O377?tУG~'†@ \D}ZGG"+KJ>MDvQ--RMM5Y\\HP Έ]RM[[pW+k$ `0''"ms sQÛX 6bF!Tj]o1pdBg)b)//<*L&d׳€B46x 8 ᛬Ev+U9?H:PVV5669sC;ߠs2JׅEssSII2Zsz(+\ZZD,l%uuoܸqd2H;;;WTT2eʨQ:Ŀs1Ⲳmmm_ٟL&gXraݺ-8u R52?P۫u>۱cǎ;X_wٳggqd}aVWBmo:74h>a奩O\ZK~/엔 $y Z:L33>ٌmm'!۩Tuu?߲?[!V@ ="+#=nG++ZZ|?[V@ =N Lfnn::_YYڵ`V'x+\P'/@" e۷b==@zkkkT())jjjR礤<=}CC/tDVoYTT```۷"'(蜊ZmmׅǍ e.]UQQY:ץ Yz@R[[3x @zA"dg200Wr!CC$? IDAT(JCC=㋋ "􀢤s# ?qdC&>~SVMyM/..2|n4?ѹJ` bNN'SStn֬yjFaUR~u>2HZZmC @Gh4ڏCڳTJJj"rX%RVV2䲸|sfh[ ::OQQࣼXUUI`0MM-.S芊 x@rrLLAtP0 <c0><SB$js,**7Q(*P(B-䉫"es ttdddLHH---"Ľ:- ?3F:[:|ɗ/9, %Cޙ344]>ŅB#|^ZZ[Btt<;*KCDIaa!:G - $`W^u{>j!5JDBd? NH"TYw J,Zo_cHsff?KQY"Z[[+qg wG]P9YY9K˱/^eDttt~Gj>}l"Q(ZZ$Υ FEEu͛W/:p.O7t,c9s/^`rs;;s &lx<~ɒWҧ߲Bk P(_]6qŋy~FS贄?hĉ~edrz0!?j=^<*>tҒ'.ds- f`}:9kk[%8NCC utNu 6 D@pѽ{vF9 ^D^H=A4uN^^rljj"6@Dee&^n~~O y%QzPYY&--#}A~u-,XEdJJK^L :>}v\ќ%@DIEE9NKγttB$Q`9zt~wnu:7c--RxeD{)B]Auny553258eHpW^P(<ݨ8\EE#ٟkF|OҧxeW:::^3?gWTM,!AY76lDL=t̀ Ne%9<݅48]hk. ttP9]QWW{_82j! :5-&.V@FHʡ434"7rN;NutZ`O9+q::zBe.$6m~XoARlhii~`]|Wopv@9ԩ.FmW4O< !aa03DEAbCab,Yvz0O(JDΟ?ͫSSqb>>˯] jkkp.$ :|`: B "}xxxfmC l]'´诿lܸJX:~뻢ۂۙi Bƍ0b =!bEMwYE!ͯErrS%]*/L& ׯ߆Ȅmm<蜺ƌsy.. 9%Ko߾ ?TUՄy A^߿WwZ]]sF\rŋ' Uԟ{% i>Gdu@\\<,k E缼::(GmꄮsSL7zN=+Ճ벦滆&Ғ{&DͲi?w466 EO}A$q9UU]PWCMM]K,nPڹIb=6ǨFtg֯$7oލo ojj|/R"Y||=EQ"gYSSct4WEZ߿Wkj"sW^III8y2[V^AP:x?s'&>hNN3 bsκ"k "8hj]\\F-Rݻ7\3755TDII#(?z=nao!d#bK m[ P/.Ɂ}S}q-YVQRaEeDDADBI) _ i'Jv}}quGur߾os^.,zs?X>rf|omlJK=y3]HKW0p9 Winnā)((̖u%ϟ?Y9ҥ 7n;)""fbL)ST27N]]!3 qWdipt(A8ׯf-XX%$v"GII rrCCill ݎR[s׮ش-Vcc`nZT__pשnjQd`ښ˗`ADZ:XnSPP:zeMw@se=~&f%xcK3gj1"ns&L^@/$]O~ &ƹ:7oEE^vKR8>>X,M^\'O>}QZ33W2e_ǯ[aA>%DHHc=b0KKs=*'7trɪsYYAAa^PPx`ctZJAm]Cx9Uՙ˗ڷozKsvpxC ֞Gi<ǒP7ov65]|*&kDDDcuWBBˇ c_K`ϞW,٬$T̓^lUO7KaLsfm?dlYBL23o?Y֖N.sJJLM8 -c#KX[;>~ŋ1]K5rrUUYBf(yywbåW՘YгzA4bcǜ>^+%%Dx9߫XxD"p|<;WGQqQov:nqRҹ -**3Frڴ1::3LLּ~a3gN^;FؘTUUw˦M.]bq5 /KYY*+3g~ghϛYxf:EX0͌}Fegr䈿'#̠8_Dgp8~|v ="D\=xzhkk;~0 H_sx!X,k%$Μ96,hCCFP(_Rsrruu 6E&6lC_巷Oў>}LJجપorrCo666D"p\~#="D^cNvFZbb4 9 yb'NTQWC_vD"H}v,Y23}^%/ς:v5'凡x^u>|޽ \GAAʕ,i$F2 0arx7n깯]oRϞϝ;NO߿W1rnԨ1::{;11֙% Di||8LbsK:wo_W/]oKKVu FxX H/h4ZסXaks"b u/NN=RPpJt)){9.K`URzzÆp!(ɓk":'##ĉ#hB -W-׻a|?li29U .8F:~st f5م JLd*G5 s|||GїttZʇnn[X@3u~ۄ ]]m;ΩC s<߱uWY>ï^ݻ?v,2"g6I"X~Ʃ1#jϏ?l`` /9wKŽ~5 P(P6bQQ**wvťʴ]"dS/y[Z~>m+>|ݻE|}E_$Ϊt/9;w2>}Ž"^sc'xy>xpe ݣc#}x-`YSp*RGձXEH\\vFUTc<ȑSK^T__S"#ㅅmlL[ϟ?`8*[Z~))_6ej&&x<>) CSK$&^{l˖^DJFfϟ5S Ǝfc|۷uPDDt]ttU⒒EE%%sӡCKJJ͢  4Hӗll޿aaw@seVz{ݹ3;&,)iiTXݦ@ xx7oYׯN4E]}6 nebbaee?sKV*+{:ӧ)#*҅ a0HM͹Wב! o&NTaUBC{h?]zؠXVu  :C75]&'7PUU ;@P^H$jd3 3 Ai3V-* xթSXl/?vv._޽Œ~\.xJo1x TXISx1;@4`Μ.߾v#yk|Cf2 DxﰯﶸHY2%q pc󗗗M>=66DNNNAAϟ${X fWܶw䩌`k|wʙ q7[m߼9:: vKQQž}nVSSS//ⰰTjrrr]]A]7V[⍦\[ ..&Lrwp#/>|sQ puu뮽{m;$((4tp@$[[[}}} f)))MMMD" ӯԼaaff*ʝB(J`ܘ36n:| IDAT][;4xnǏ=z`\\aÎ=zEAAѣGkii QAAIS3vӧO?o_X&X[onnJOOaD";Hgd2d2/vܘc7mݺ_@qeqϟN<=====vqߦ/pףGgϞؽׯ_;g- 2DNOoEll!\HNSHHĉG2Ќ;2 cZZ~>c[qD4aI[[G_*eIkHߡ:_]s{XZ:?}dTT566p*:^aBaݻw;&tppa#Xgc,eΣ/Gux{kDE%F890oX,]woM}¦Q(4UG+dd /+{;o2EKmOAxݻYZZڂuF; ,2s'L_$<~Cuׯ*)]TΝLqxL STT;/!ɹw2::޽DDD199 @@@vθΑH$ܲOdXDFWIJJ))+,|;/y^CCҥ+~ˇ{z̘`tffV &99!t}( ׾C㹾pرӉL&Nēg:/&M=Zדd'u[bk0A ͢N8^HHHPVwư\@ t: ggK/777hnn̚5ɓB*h4Zff~˱c/^qlng544p`/111)4hР:;ϋW+8,AJr%Ģ/-owoms&رf͚d7}nɝ9zC97n;&MY|ZHޫ޻wv xmW޸=ectFju71N9kll봰9ƉNJw]6[ZF;!@Ggѓ'455½UUg*)?k<=֭700L\i2xą gah4ڏ? ;H7ZZZs<7hРNEPc qvzNQ? }dT*577p8ܚ5k0nv튉EIaaCg33븸H ;TWW6tPA:kmm%\8kjj:]8yΜ9::Z,\8+00v"#%%>ƍT.KKG5DE`.}OXŋpKH$麞ۉHOߣmmŽ޹d>,зo\Xjjj222ti @uUdd$'g߿sf碢CN ] '=lO93a ,rIz|ȑY'..pT׼_{Msc(Ν;pmB~Cշoߺ~sKp{OL֞d 㦦F.& qClMgvv= .5+)®Y?du߿pJTNOѣ#G/Z4СhmaFL6ڵ+yG v۷oÆ ߿ *++~Pc=L?#!!FFKZvFWaOڷ/((h^k߿W_^ޭk߿wCz [h UUUqCK߹%@u0Gf/_>Ν;qSu YY\V4qq|c aϟ5˖MVVkkknHdm7:ЀGyLǎMmmA6tsub`a|ɓA..=XcS$!'8σ/2 k ݻwX,v(˗'N9sL0֭~~G"#O,X0ٳb؉8g=EE0(_ d$pT5_@Ve0 cc㘔t9HG\0Xyy9L0aB/:ߘ1iiw9uJKKUJq9 ; Srk"`~eG JN8y JRx< qBr% v{lɝuիW|||]WO6z ==ab/ <Ϟ gYX:322wrZzc=$$yw;"#uӵe`+`=0jkk.s >MEuvY&$%\Μ9~9v]8zA7l~`{xM<Ь7n:r䤪L<[[/޿HTRRW^u:Dž 6Xmc`s?[[55?`1eee\8PRR`M;OΜ59aF9pN!B՝akk?^|y޽,[XѣL tsjssQffYnhT>>}`mm4={8J##saaXAx˗/QFIJrϞ=kii5k֟.@uWȋO{쉆D?}AOu/OAA 577m?{6f:"9dGII+@}ƭ[ܶDGgf ~E>>>ŝ֬;ZdNΗs=LAuڽ`Liuqq v(M;wnנ:7@HJJ>xBNnՋ޼y ;TIJJFFIMMz5B$طxڵ3Ef̘w}}ɓk.dc㔙^UU ;ox Dݻw444`?~̛7kPP'&^KNj|՝;73Ԍ,,fϞySWJ[[;8Ϛ5tA :ܴuOÒ|9/\ObѰ'Oikrss555mv̭[$%%{~`^^Ӏ˗)* &88իҨSOf͚SWG?fh4wwi!{rJF# ֯__ܹ3d2vPRR2e.޽{ڰStv֭ŋ< չ : 6mLh衶VعDIiv}$%ՎCrsOqusqu݂`N8\\ݰeee`Ç?~:z%K|swqݎ=8}ӡ&) \wD'xmss3ݻɾ!IKKSSS24[HII.r3G%--OXibc;wzjkOxC&uTTPD"H$DH"dJ;WfSS/7}>;3'GYZ:44߸ ;*..>}:]zu055uر}YPKEeZR7`X}˗b)nʰK< 9kIINb0eӦ1s\\d;}fϞg-O@^4tŋ(BѸsɫWb0AER/]dddԗQ۩NKy qccUYޮ (xf:mbX}}N֙(ի h'xyܲe9ڎMM E66N9Y|\EEEYYY_rRnn/_֮]ۗQC`֬9rsK̝;5)-lum))nʾ_9D>46I':JFGرkXlDą߿{xg /Z@OAAܹ(AQaa!ݮ\"%%mZǫM:uweq+Vp\}9 &{|޼^^3fWq8tBBzXX`ǁ[],ooL&[Z:0BIMCKF[{{ŁZZڞ>>>?/a ϱthkkMMeDѣGܶKruuuaa!=rJKKyGu !!o_wﶙ3ǝ9s;Y啌;I*rO,f ~ 44}| >ھor IDAT֬kxh'RIK,[/@x왦& ,,,pBA#22PCz2zBh/>nSQ緽[kӬSVn;0 (Ŷ‡ 4pRx[[glGW/v}qHojڴׯ禧i矾EX,6<\CCM D9Ώ?zv.RTTD Ępyyy6sHddd}}?zBUy?]lᱞ/x~))$$dQmE L&Y3DJKL"k$3gj޸hꁼsckhii?ܹ3pG 2DAAvx񢤤֖s̙#GeG!}%--kHHdqٳ't.Dv h4Y˜F͜w1ъOLQz΍NH[pm^.c)gip҅&AEAA 梢jesssTTNq'Y =ziӦ;:B:H$R^^ҥsSRnh鯊rIIW>dv]9%%WۋC~ႝ;ܷ5.ywv;/_N`l SPPqF)E$7mU#""(K6sGua33xIDDƍv9:;EDŽL&|bʹÆxo_===aZ[[+))OosshyQHHHg/ΟLB.'.>xjӳgQ|s鵵D"8qq9)ӦM?uS=z 2'驩'g v 煩 :<**xɼyVVyŚEE3fpdz{㪝-cbb/^wm1\r.==͛7W\_)))=z1-: JII W->fX,622^[[mkfcyӼy@۷?!!!˖-0a C"vaaa̢ Adttҽ{O8; [?v߿ORΝ ;n޼vϏFPC0cΝQ>,'((dffsvƏ%/M-xxx05sܶښQ ; :N+++KIIٽ{7 :x Db.s0̉g-( 8,4nܸSpگ_w@{|9vι}ԩS`{4iluƍ0ɂGǍFNN`ga%II=3ܾ}{ѢEST577;;;[ZZ.^% rſ A~9~>>c㵗.]  ѳgϪ9 }vcccN^~gϞdzeTnTPPwุ8%%%###55o/sNaaa``ן?~ȑBBB>|PTT}={,[,;;p}11ӧOtttnnn_~-,,̼u֡C:&QUUhm۶egggggKKKs{\ysMssӭ[aa۷oKKKO2bBЎD"YYYM8ˋ卣:CHJJ>{#F466/?߾}-s#F:t͛˖-%Hnnn/^hhh&HIII ***.\DDDQPPŋ!&++ӧC.سQ-Zq_6lؠ +CGvzeBBgy!(\OOo鱱/H:Ǐ ,ZÇ"""?[bj^^^NN߿P(ە~1 ǏF|(--ݵkEfEDDƍ}vgg綶6[:3xX<`֬r%߰^ff̙3Y>eddaŅL&GEE T^2x` Ǐ=\OO/7߿_LLLUUUWWwԩI%-jkk?{l"Hѝ>;wB齣ӧO;w… 9 ~9"8,L144z vָy&FcձjR\\$..;*,,ܴiݻ99ݾoϞ8ssׯˊ aaL~:L###N< \*jaaAP8/s2`a0'[YS&O ;rss9_窫}||l2uTw޽{srr._}XPCLDD41ڷo_yzNuFU^?'--MEE33/:rssxF, 9s&FuA#G9pJRXQYb1??eWAefffJJʩS'l3KKK''' |ڋv:-;&,Yʔ2|u¢vOCCCUUp(PC+M->|x; #,-~n JKK6l9Ν;9'FFF4-%%JT@2j++߿[`7%qd\, ذaCIIIzz !BPP(..*ggˎ]#GWVV~{CK2䤥eccñN MHH}s &pǮ?njjjgg+C;Tf`gEE/_ܼKF=zdddı܆ m6Iee3N:+CG!((蔲uV755CJJPg^bb78pMEEESRRx< : #_]\T*8䔑'A*%%eBBB諱q֭ZZZ+ baaQYY.)) %CW!_JVV>::Ν#GagիWEGG'?C˭[Rԃr6nxΝt%%%XBuíYYf M͹_p83gH$,/AkǏ@w]8p 222!!ACCJ?ᮟ:/vǏj)XF߿懃)=\9dReVÇTSSO991)))K.ޒD"YOOĄ}u+))iݡV!hj΅.\zXƽ{ÚO>XX.:t889r^DD׹ڜsq~933}ugccu֍7B 3AX@TT,<ٳf{v~㋊J\vl tΝrAz8riii@@GzUVXȥ: ,rI^S<_Ggŋa1AcxeGuAzlٲA*䤪֎ץKN8ܹsX,. >>vIccXzz {;TII}k`'+M͹G ڟ;K._ҙIII"""iG__]vM4uڪ_[[{ Y*-T-?8Qe ";QXZ:nqw v^ɭ\kFILL422bp8fooo-zW^eeeAy)/!&$<sY]`'?F+_|;K/߿嬨(**bC숈_JnJOOUtߡ: effusqiY ĉ'];8=Y`رc###a… :::뢺z۶m7od_/>˗gϞs`x k슏YmY؉zaii%KfoǙ倏 ~r`-v%%%ub޽{Eg={vҥa,srrCCCX, oq-8;[r/9v݉ĀǏyy6.,INNz[8\<<<9bq{𠔵 "/..RCC#FNԓuVZ{vIII:u{\bbҌ3~CCæM-ZĦ.u[[[//-[p_sQ;wHMͮӛͧcD&$Ĝ8uӢ"AJ^t‚}o6mD:ĦUXXzjSSӀN!'Nzc޽G5qg&!E*XeEX[DEz)*X@쯭bkZ[RS/(-XjBbjAf ȍ|NOOy'9:NOuEJ͘175ӽ{:ZM0WO0(++khh\999|)ϟ;wIˡ8r`؉s8Fv}( u] ׬ٴ}SYBBB^^^[[ AyyyƍD+VD]]]R*@<=lذ57S*++t]wYrڕ?XZ:^ƥPsmܸO?PٳMMMKJJjFk@cAǿ]RrndTԬuߟ(6l={UUwd/^xE鰌⎎(Mt~ʕt;;-=Bz=_٫os'Q՟LwoZo~-]ƏJ{w~K.鰆)Sp\,/_>iҤXwhh79ԩ3Ϟ1kV XCF[82gΜР믿~ъя6<j\܂cǎ=yQcǎQ"555iii;wtssS{֯_?V֯쨨 .RO< {=]]=1eHvrG (5 휴jhhHAAϞ=r7nLNN@}>[hh(=zWF,qEtϞ=ׯ?|pLѨMPENFqn߾o}||\]]C/]TQq)$$F g 'hذaK.Zvm}ΝK.9sF=UWWWVVj߿r!D^KK p8^^^$I"(PpN8ZT[[aؿoƽK.z7[ZZdFFFFFF<Q,peۭ2q?r!111?u9EQb8!! l]Ѕ 29sɓo߾]__?c Tp:88|)W__ߐ' q }9s'b`[n$ɔ 3{zzF IDATz+#"q\bnn.@1***0^}(*99޽{Qvv6Aׯ¹r!K|]Cڵ ðM6>*<8uT@ ۶m.|~oo/T9TDDDXX>EQٳgq?xze~y<Υs U^^^l6;&&ݻ/d===o' $'';99)<oԨQr(''G}SMMM#GRcرð]vi\9&H <<<tX̹s,--ǏjϹzNjwq˗+V(sϽٳg]]]*744S OFd8gffjD:9! r&&&IIIw͛...oV&ror?OOO8)eP]6#366*Yx1;##r8D]d655Km;~8tK{{ɑ#G~!{cqGQ˗B/_nMǓ'ObɫDŽ ~HO@`hBÇGxddNd>{\xOrnڴIŋ}?@s}_Q#e07oݺ5|e˖~}\09 }_q|Μ9/azj].E9>;;;Pb{{_ww%P---nnn&LPo-,,BBB5w}9!#I(88!kGL8nj 4s>$"??D"9{lmmr9x')rrrX,VSSbWP"h.../$mۆaXbbH$Y/ .7BBB'"j?VSSR5o޼)S477ر!#ٙ?fggwvvxb .\XVVFdXXXDDy9P(7K$xsss}?O<={66 x\paΜ9>|X"H;88M>]DǏCCC͵&Il6bllܹeee! l6݌nfWCvbX!WWWkk#G0KNN666]3%%b} ˹\ŋ5t =9 bPFF[EEEsss\\ܤIBʕ+1 KNNV]'Z,oooi,IM8QڬJr{_{1 rѢEr(˹aÆafϜ9CQԿ/eիWMLL^:A"jHU]]ol۷+[_͛'] 暚666J7!_CEEaX/0{{ʕFFFlo-׳;cKÇ-ܶm0bmٲD"qtt\f OJJrrr5wsssxx8Г\ /kkks)֬Y6EQcƌ'ܽ{ԔYd*.~Pv=F;;;Ɩ8[ZZ2NHeii){ExXXl577#466ґ#Gzyyiy!r@uvvfee3ðiӦ `!333Ǵeutt,ZbرcܸqCGyݻgmmu;;;ٖ$I+69r⅔bK Ì~Vw^O{$Il޼ycƌ$ Ѽ H$D//uؘk)k@dFFO?afffv5N\,ɵLNN422R|C IoqD"z諺\iˊ ^ƧB_|xWRC9WUU`lllkkT_:..N:PVYYɸTyybrl+))Q f8Sf}R n,..($IM6566nذC Irɒ%4]]]<ٳg/ r9%%eĈ;UZtixxx]]]CCCll3lmmgZT lF9Ϟ=k!M+n\)))!H<==s?ЀmٲDw}lee/A{yya^XXnEuvv9::>|޼y.,H3g"!SWW7o,7Zȇ~(-f+:NXdם GCFF4z%sRR_jըQdO',l6{ٲemmm EFFjn-r|$IϚ5 qGGǏ> @rd;U1Uyll_P__/wQڵkM>]ƍ'wq.Nk׮I~t{yy 0 W r=JII!bΜ9}\DDD[?$??ɒ%՛buV,N*y 6+0vB/BSϝ;'P8c蘕կu떹'}\kT @L6 !4zT6ܹC'ǫ!tX|ڵW^y6ٟrյH@ /.\ ==^+==ӧOԯL8p_uv^?~\R [l׉ `jkkWZefffll#;MqÆ 8rvv~޽wް0z)zkWWZJmhhܒHGW",,,T|O:M:흟?Mˤgִe9,@谱a>|\BHBE^; -ldd&+?0Bg,Bhc$E]w%33VN{, ,,%vGkk-TB][H$A!B .<~t׍7bcc+++BYSSԩS|X,Vvƨ(*(nCAT?y 6-HH$-88? @!b nl``VWWG$ݻw߽{7''gذaZ.lҲ?!gffH UZWW5kVYY֭[}||kjj׿[NQO>p8hjjfXO>=ݻbAbAtG_6GGG??[J7z{{755]ZZ@GKuu5EQ^^^'OJ[V6g%yDʺbAbAtG_m۶ccccq) :ZD"Fţ(xELMMCCCKJJ6ʺSAbU9^{}MvZ#F|Wv6rpp>޾}={FcZ[[/_>wV$sCGYWzxn1@k $e˖{Gz 6n3gfff͛7o|w XQilla-2.3.4/docs/simple-api/UpdateFactory_8hpp__incl.png0000644001725400016040000037242013273140076020225 00000000000000PNG  IHDRbKGD IDATxwXSg𓰇 {6 QV]Vj:8`!7aq* +N(yb?Щ.B&L7od. 6nX^^Nu_TW yh. 0h4]]]  LS]H&POu@cKTX ! B&L7# #}xg+?{kA@TUU]ʕ+}v!} t@D".444F9Oe9K.={?E"_tҩS{ovppܹsϜ9Cĺu3gy@ 8rٳgϞ}@S?hBĉ ,5k֞={x| ^#loo{/^rgW!@z{ٽ{wBB™3g.^xܹիWK.=rAmmm_~ͩSy督G655A\t| .TUU/KII9qyP]p!66vϞ=/++;uAO<Łjkk9&%%={<~O>dʕ AܿMHH8z͛;=LċA. =yccc VZu1vZ___ V^gyyǏ*((\~}#G]f͑#G~ma{{n//ڵko%A[l)--};w?N\|/2i$ V^mii)deeY,[TTTPPF{z,X:x">"qB&խK222!LeeeZZZVVVw ܾ}}|||ן~"uuy544<^MKK‚ .Y455tzUU?+++o믿677wvv{|E JIIٵkWPP\ 9vX``3>|~ >/deeŖmmmGp87o￟URtرp8ɧ 8x`UUUQQI=1LPxɠ׮]{zrx8#cٲeJJJp8ZZZ'N|bpҤI}QGGĉ/^,++>\__oee_[NUUw믕x㍉'n޼… sXrC~mf͚g룝?cӦMG&ﮯ)6lpСkM0aOb~~~7o>w^WW黽zE =F۶mݽbɒ%ZŎ;V]]矿رCGG/u/ 0]ׯO>Z dH7k֬2e߫A^eל. e^F2ߠ,jk[ kedԨ. d z^qq]AAmQ$BIAuu!`@47ԗԗ֓7rsjjZ1405rq1 7527!iTW 2^^\\3O'̴ >ol)#t[qVV?x"ee:555:::TT 2^@ *+ϯs kyAԶvԱ625O(,,lp4,6S]ȋZ /uuUvuUtuD&OLmm [6/STT 00аҵֱҵб16)+;۶_vT򢊋  jdd趶FYy{[eNu#jnnͭf9|W6A,S^ @G33-CpE~`nmn`7AuuǏK Oy{[zyYx{[894VV6I>7:+ uue2Ix }kk 7,mm])) E))%*FYk=f' d:899yyꂂH,+K75ղֳ= e`R2{D'$67ijXXccgO!pB&H١@^-ө7lCfOB(#XvbbaGRϏk;v ,LB**33+*j9JikoaCBQVVE\;6aH$vt4e1-H!L /$ʪʪ̬hll%HFZRR d3%$6f弼,1B& 6ruv L>fJu2_Pii=z޽Vmmqvv::# d@Dlv5UF˒z Օ =&ӄ XN)M2_H$̬c&$B'' eeѼ $B&.='{2=/+K%2&..Z+986}VF^GEEa@lj 4E!d+.c32ʳ+Rup0tt4tp0rp0Ê!;ΝN33IG_(2%bqt++]{J==5 d~RRQl,;22ͮVV;&01 Hz }pSeJJI}=OFned*. UTTsN|{{É'Ovrs3CsZ:2<7U:9++#UB2GG?>Ν쨨̒zmmIǏ_OB&p3U>~\RWT !sGFfFFfн-McWP!`AI۷ii`0,h4L *+?.22tkk]2R2&FH/2NAbb[êjV q?{ @BdLL,*-'BOOLޖH02X^~V[** v&99jjP]H-Li l%Pfafd(P]&H?!+BB\CB\ԩ. B&p,V961MYYѨ{>5°9xwd]ƺ};i1msT&v 1QffErrQrrqRRQeeNss3uw7sw75S]& kSzV&`臄̜nmKui 2䢤.uueOO3ssWW#2%P(z8<<->VFYR] `@11ׯwtBCftKB&pqqXviic(KK2~\…7t.Ӧ(+S] *LS[aƒͮ;82ޖ 0!dAiW<~@UUay^>>V`@x>.#>>?6676]PP#''f6v160mwUU3yüӧRSPKXe&&#CCDCZ ;>_qIl,;6Z"xyY()avVT4>㛴'n:mP '/ssLy.ǎrԼ-}}zzTW0}-{ۛ $D"yaaI׮D"QPӼytK @<ȏcGGTT4(1|}L  u5~~{>Nff|6%vܼ~B{yzzjӦ({{C Ô@ JN.s'Ν*YY/DFo8OߟDUU0wIee 49s+;{#όYUUE.$_H o;o)LLP BQffEddfddVzz#0БЧ:iPY嵳 :d|F v?>>)9XWWm\EFYYR]LZuu|2[67i2|} TW mO?@a&o>k _j UTTTYct)S_d@"SSnʈʪTP0~{ f~/. "K:VF{TJJ3f\gk(CB&H~\̨֭Lkl4q1֊rTW0,44|IL:c@Jp8 hy<; 5**+**+::d0,h4 ;w/O(}.XMuE U6_g(```hBSRR/#C t6i`Auiڅ |pF$ɤHuE 8 ɁM//Ud A$'&޼qfFqqIAANb!ttNtJ)s`SSSe|ŋGkS] d&]c]Ϊi r.mecxc4 Y ޽srJddf{{O:MdBB\CB\{^1mj̎h0D"qRRˏӚڼ,>tԩL==5Kilw7ozt<8sI+W2. @j!dͭHxQqqbŸs=n ;u։,8looa~T0*+^nh1e 34ԓ4.^de̊'oza FZ嫧Nuu@87cA/Dzz_~Rҗ_}5 L~~>FFJKK/_ROD_]sse˖S7x\UU˯ :/F}7?17{CotvvuH LgB(.fI_}n`+SR5o$Ɩ-[^^YѳTUU8q庻755Q[ ;徾MYYܹs .\h͛7)2}W_IM-4EDG`ׄok+…:ޘ1/2YI Aikk7/{[n D=gU:::A߿ǎ?D"Q}}}۶m 8vCuu޽{'OLQ -tϽ{yǎ.Y򫹹.#:: ?Kz߻@vU##F Ξ=`0Z[[E"ѡCGMNc>""^300΢uuu***JJJA3LEEEKK? @m6SSSe˖?u떵={#|>ӦMzzz6mAh~^GGo?-,,տ 4mڵ׮]#ljjz뭷?㎎^kuQO9rw}Gѣ 0A/^ܰaCϲmvg]Ox^%_rVWW`?90h4/UQQ{x}1cv9r$UntzǫW~V/(EĹs>gٲeofuu^BBX,_tuu/]TYYy5ccc _Or+V(//?uA555b~?b1SPP8rHUUeeey<bGw<}t.{E b~;wR'g.Zzr yVE>B^^^W#))ICCx'X,''۷Zs͛xQ {>&q@CCC+{z^dyAAAl6Ç۷o`?b844444Ap{^jc/UV6R]$AV]t@1 > oMMT^$d6663wpɾCfgggvv6 111mܹdjhhۻwoccH$jii .]""++6AwB쪪"##]]]3SRRbqWW[ϐ%##At钵u52(yflhh 0%"cX Ν`5I .7m_*7$&K`ʎr屒G,sv6(z;Q6 IDATvDFFG ]]]O`2}?<~y<y|MMM 455o۶m[n2eJII y}AwKqqA0b 䞸"U*//ʊ # AX[[ImGy}\y=즩5f̘III֭QVV~u{=^;;;zAjFP\oٲ1aaIGܝ0@'Q]5|--'N68X;n>&HCM4飏>"u#ϟ?ӦM)))?3yƍ'D+W444'ڵ^=^szX,>|iӓ),,$UPP`ddG ܋z"=aƌfO:󕕕{~{]K]f04.^ѣZO߿j !RPPkWΝ;0Ʒn}ayỹ'VX~gFEEbŊM6]rƍ|I%//޾m6 ZZZ\2sLtE.%''t>,#####+)))̙u֒O?=Ҟ["&&fEEE7n$BNNn~QQQFFx^k ?r|navQ<k׮K>xbرdt_u>vXsssײaÆO?tɒ%}NMWR )(hoxxt(GuQxޚťK,_|kΝ>>>gΜ!\)ᇑ#Gϋ-Ԝ:uj':wݕ+WbqGGlhhhѢuDuݷ\555V^3{~nU=-,^taҥZZZ~a{{j544\BXwy/xQ|>ܸq݅ϛ7pĈW^;Я3cp1333mm׷z&sIO/_wC'LD&Ƨ/CuuSOzk/$F;w_Amllzǫ̐?ϟTN12\oٲ1@N K1BqQ˖11IuQC? С_}u_~rr2T@%L ;|ݻ~;lwvx}jjjk֬y ,-u~aGM>t_:x0Q9LD"YF>zTe{'MrX>e,tYIQYtpSGYt QW ,,oGT ʕ0^W_;`]Ǎ}Xlg>Y^y~vΘz*++]*d\k5axB.8COWV_wq#GP]22ܳgKDnp(YY%) xE /YpN˕ e,-̴̴LM&&#OV͈4wwO>6v53Liu PSA!dH/;%x/3PϹ,V9]MNV$g3*APSa~||A||]-#Cwv6=B]] (ʪHJ*JL,JH(rUU --FTSSy>s YYH++++]KK]KKKKCC lDw֮k}wLxB&jڳŋƎ޾}!H ,VyAAP(94a0̴z{mmÇr:hemǐ`B E5IIE J˂\UUG'dɩm!3ۖ''CAuDQ** 7N^h 6Ƀ ۻ~-/RGg֭557aLmm]A驑aLֺ}᫮n~/,qq1PQk2)WUՔTT\Y! 4,||ƌmd$VqۻffZ66zh]>Zu= ?oy8F,GDymZ'>n9lfWԴsr2~nΔXv\;=\F`5JMmحFRںRSKqNSWwĘ16cXcmi"" kk k ;VFnb2\iiCι50T_{wč~~۷ϴ3" I˷l KO/_xMST@F6k54Ja0]\Luu_h6`{{ٹ޽rdk4;C@ JK+ ?1K__}Xql/ j۽Ioc'mʪXgӦ)#G'HL׏صk=>x̊J] ee閖vvvvvv/P(̬cƲ ;;ffZ 򏆆Ԯ|Y>xPp~^RRQGFox[??1c_y:]_[WfWsTUllȴikocgbm<_B$'xLb!!@DFf~E.㏃W= šʬ* Fvv +PRRǎcr#FeiHA~\;::qHcm&Mr<=Q^ۑͭdgWT ij8:tX~ǎYh,CB&u%%{R]eDWTqb1Aew&u$$FGdgW*(Ȏe7usL]yvYm9aĉq99UeeUv/yIJ*˙Kl<3aA?u*~<ݻ=;: k EX2r7&d;_jEtφ{7{e@=޽LS_36 r v=ZVv@R_Ԓ0üɖH$p!yp@.`@rs>̾} Ǐ&H'P_GP3 ʶGoʼu+AYY<018,_Bĩogݸ]LΤ Щ]l6'+"#"#ꔕ9:99;999ׄ^u vaFuE 0tu v8z4vlݻ `8ޣ 1 >9AOD⌌r7ÇBח= d%%7ofܸT$+K v rD"qqq]FFyzzEFFyffE] 33-GG#''#''cggaI.űضm&v8!d 5Gqqݗ_\ćr ܽڪ{RUUR?MzTTzjcckttNTTVllnCCm@/CS{ ᦩ-223**ΝYH̙n::/lhnn`LVLp^222s ]}4yqX B._Nٴ霝CK͵.uTzx YYogEEeQ @ۻSocڄN<p,VyZZijjYjjiEE#F37vu5qq1uu5qr2ֵ--8q➃L)L;8qo~:@d9ٕ|g[[}GGF'%ݺyFn !ں2n1fp:Յ-iied쬯ml]\L\]ML U j>Rl,{\;g, >L*q8ͫWʪܷoU$-A驑k)`9h 7޽Ǿs' t t@EJ dBΨW߹MDPܹ~ڽ%UTԦ,hdx{[k#5kS?"N쳐P/ˁ!2._~lǗ3@mʪ̬ʪʪ,( FIP(̬̌JO/WT7&0q$}}A+z Or;nLHs'[UU10!4k8~ljD"q^'9(989FY[zx{y{xgܶkW'N߽{hàAFxx gƎe#F`. !=?gKJ PWWnckogg //;ȅ55EGDFf޽fn=iäI>>֘g>t dB**/_Nx197\{LM_ ''''w+{zyx{zZIJ΄͛ϗ7nvm @c۷w'e@@Br̊̊ CEEcwfAA &ӄ"22*.^L|Q]oXEFMTP쏮 k Odd莎F^^Jֶ|_~ ￟ꊆ@02P(ڼ9ĝ;g-_Ku90x5;:=0Cbvv7of)N`!!^P(z ԩ7ҕfp[t1uÂYY>>Vޖ@l\jߦMS$r`$B&gTT/Hu90\_&32##3qAAj@]H&J Lx7,,لZEFϙ1d[]Ģ8vzz9Nc W +apMM~X8ztB$]VHL,:qbŸq isQ%Upd0P7NAbb[Lk$ǐtDbqBB3#"d|ͱC1^mmK||Çqt]S[۲u/3lɅ 0xŋ),=sfМK tȨhllkvo(j3JFFf޼`臄7Lx}--W<>v,ͮf2MV5}Og߻[ZZ?bq6ۍokf6Tu{oOk_ k.\xZr@⵷weeUlv5/TT7pr2vr2rt47mywdGDu7 q>HL/b޽S_g|8CC z!%%qq8vLLafeo6>bDDܹ_}5{ 0|SSK/\x΀r@"xϯ EjjJFNNƎFֺC+}EEcDDZDDjJJ &8 [2ߕǃJhi9mCzQ|0)(&&ݜ ]`yWysA&td'i 0|=* [hDu9 1ZZ:+hdIzŞRMM)8it__P3!HgGSX6v-uu8ݻ9wֶk;MiN }vʕ x9}5!d >:w㰰uؐ v<*Օ&=dRzX#F(9I0 -1DEek/_>nEE9z9ݝjMM'LWQύ[)*8@(F}cǖc Z`H蹭]]RROg[̖jjJȖB& >AV[OCCR[p87 E>>sOB>hdyW O%K|vEu-@2-TnJu zzx) 3`&._~a5stQut-a"Q/(ddh֖$D]w:n]ʕ~ɳ$%(LI)YO>_OKFgɅ MMm7A~D_7LUW;vڵ~Du-:%>~\&''djffja3lXeaa/&tz͚宪&x]qwe&F';Q[@D"ŋɻvwv ?h[o$H|v&Mrزea?X,{;v\駥 ^B&ڳڹs KӎfgWgz{[xyY0&RTp8.$;_coopRSddo'W(++de}-//KmU}hi8p ++={I_WX|fw]̝qdSS~[f 2^K[[5kյHFeeiPRRXHvMK+)z{[0&fR6»wsiJJr3f͛-mo`(NNt!++oBx/tN…"DCCڶ;׮}? ˖ݼyJoF{UA!dGc/]Ç1}O?-};r8ݛ$%55zyY ۥ}`’ϝKhhh;f<]0j˖J g̞?n8+xQ[^hk&|TTݺuzhg^X,;{\5c;a!Չcw5Z$Fjj%w صͮ&Ldb2WS’ 5fXg G<->`CASFFr;RSSS۾}7Ofo~{֭CSSرRּ^ B&{8$@TԦXL/}::<|NL/1KccsBQ~~MXeffP("Vc^^7_D’]cD %K|ƍa(ĮZV},xo|nÆu&He파?<[PPiӔիAMWᇅӦ#Axu}v=vL'D"~1BQK> >LUUSw$N8v''?zTVޥd `Z j/]zt|RYYidqP(qJ;72̤sQ/Urn2`S]Q?|g[..&G,_?tÍ6n;!LW$ݷZ5~Zfff/]]] ;=@ӄBQsdee32*tf=WkkgDDٳ IޝR cNDgD"%TDu-IR)ݔR*K(D.";ǜ3c<T }g'7q"Ϝ L~#G,lfN]IH$F<< MxE|.pVqs*p? `<N(2ihh\8⯒{MrsWA G]~}ʕ]R΅NHH҉  .ns~~vzukyy vpi!! F(2BTWWx_}duu{<ܬ’b`GݹsGWWXعNNN[lҹ ;wtp&))*[۳dr熇;v=)F GSS+Zucʕnnn붶6>>7n )$$$(('..>i$:A444AD,=DYYY222]Zx;uvK˓-D炳g %%=vJ౱ED\CBnR#8 4 SYn(Efss3Nj/P]f7]^^{|hjj|3&&&555}n( ȫWP%=^944B466vvvv?_ѣG~u>99_z!CE;;;hz7kƁ(PdyMU_SsoQQ%ѹ,99WDGՙf`8Ped]ٍ~ס勰pn<<{20铗j>]ƍ?6l8chxԩ 3rii)Sx/U-->>kjht%F2!!!99YUUI@@{thmmmVV֔)S|}7//o޽= 122~HDD{uC n߾f{z^QTIKsKKs33S  Eiiǵݱ-"""_ݻwGhii177|Չ'iiizzzػ4ۖ _SScooohhXSS߹>}z)lK͎d;=DB0 \USSfړ׮":))L&w?WPP(:::]nv:::8 ##1w\î422RBBB@@ٹYq?;P=}є){k`p m'srr;>|(=8=kqXOUVV~ѢE9aNv *Ԥn] Kʕ+#[XX(++ LJjo ^?;0gǮ[7/0p5;(*\e3]{p2c͚SǤI\e`D~h 7gNGۓ\ttLiKc;N҂ǎY'&\ ,,Lg111؜ni!0LqgyCk/_Y ~$-[6wsp";N::..:w_$@/:lv iPd/{E_gl_ww=N #Y 'OF%"'hyᡧ!Њ{pII o M=8(2xyHC#5[>|em=wX@f͒xqӧ6o>A!:00jiiwqH45e3=r$=- m@ PwV[37obDMM**>%%=>̹sݗ$S#޽& S L[CC#wf߱#a"]D`LҒv׈..:nťNmhjjR\@UPd@O!!})2ݻ%%lm]΂)1 ݸ1*+sj6)ID3R jf^]|;++uthhH< ^c ˗GܹzDg祦ǰD'6߸󅇇M[7335MMY=F٥ܹ.e111;9-ƉvS?&N :ZG'zFԈ֧ZcaN_Pd0Pdu%%GILwu5617>AGGtE܄E&ʕ'TT/]--9t)glsߩ800…gwzS#> c׷oaa鱱υy׬%:?wF~g'ei3WI`WRδ7O45 }C5k":89E|ߓ99Y^G5(2(2Ǣ=y τcZg'/ 9IImʫWw4+2FF>NJaco5y2%'n| ˗+H4/Y`0+j::.F|]@KAA={VCy ( )NIy[Uը$od"(8p IDAT&sƗXXծ]F.]dw8ȑVV32R=nPPr¸x' <+?r$ҥ,aam۴aj0F}XSRR-'7plII*D2lܑ{ʕVRahx1)ɅOyy'%޿}^܃wtPV Pm=jA p@9<~^T>>vWW]ssu: ƛҚܸ""|zz3f%:[dvy37o pY[k/8Dze-,`pϟdP maaOO_{p . 7?2kocKEE}j디/+V(ZIQ^^OUWˏ"#3ghei&}6۲%f\}D3",aaV+W]|Z nۦs˕FgO2x9:wŽ8x0mÆN yλ`U44T^Xal%O2kjj~թSϗupXT`trVÇ;8e.^zKX*f];9BPd0Pd6 z렠Բ: uOOIT(` imm(HHIK{@Z`Lll-C2P(ӧ"#߽^RRvڵ@~$/Y"_6D2RKtFjjdtС5ffjԈFƼ7QRRma V/cǔ[޴ϛ'jJtj􉁁%%WTTy}n8p\i(/vv kS*zzc ̡ׯZrUTׯOZD?3$'DNNq@@˗_Uoׇ`ZW+W΢qQ$+WO|PQQto N mvz =Jদ -^pHa*'hcc$%98*L0}Xwoʕ22 6l|')aTc77Â]eSW/]ИvSϕ wo*щǐekjO2xI'>H\|20W_WM42RYF]ZZ輨exb.(_Q#=E?O+Z}'"b"pէFD65r ㈋6"Ǐ%:N_\;kqqMЋ~s0@wYRϟ=>ڿIyKBBNRRnss ժ'r蠻lڮ_uâehkF"3j@uO? JI VV6.Xdg`v}܃wvRttBΜ=8ULD' 9{uzx9:.A`Z299QIISHs׮xSd HJ _V=۰asOCBnYH ryz$Z5KVV vZ[z d0$Jrs^}t͚9^^a@0*|XSRR-'7plXO$s^`nPLl"Iy4Ee(( Sbjrw׃ s \Vܹ{֯( :/@ f*)=Nt"8`` dgP#Q~~iJkjCekoxx!!sutwSRrrXj&_&2_ӧhΞ0 HdӦ*)ID3RJJb66C\9+$JBCno޼PaĖ!QS  Mǖ! 1WW &33rRKZOz޽D臾 D';2R#5 L1wqhf.!ww=VV[ڞ)ZIw+8͛0+E  XXUv/g͙e yz06Eee#ѹkϟ=+=8圐[X+ Z{{gdc-}99_.\f#]rƌvvg~Zy':P4&(hEawC#zz;:(Dƶ5kEG?!:|,]މ{pWe-11GCE&AANNBB6h?~fL|^x,\FF0#bTUU+ed')aLe E]}jD oSّ**~..?~ :/0&okrщCTYۥ5ߴiqCCq `8`_B?ۿ?uDΠ E#))yW*.hdf yѭqN45]ԩEEU:8, #tG{{ҥ!22Bg'`cu}P}ׯ_?{;; qbaa˕ רO%:/0qrZ[]VO7l8#))`k;Z hξt)Ç2)Dffƽ{M,,Ò% ߲eiLLի/-, E&ZZ[ݕNMCIImq#?>>;' oz  $--9--sw[ꎎ a409sJH'$mDt.Ғן{eYXML]ZtSٌ0HPEffnSv6y*L@U ~&O Ғ N҂rs==oʟ;wDF5db2;!!+X{}dc#oۦSZZsF>ାWLMå&=x>>T2$**~W xvODzEnn6˦_110+&菩?͛9rȒ+V(44400Os|}Odlt嗄6UUICCիU'N :q**IYY&3\ڿ͙a*?42qRR.{{ɓyN :a|N7Ϟ-y5߿/ vֆUhL޾߾=޽? NNέjTR35md"(Etj݌LL}Yhoﰷ_Yi.2{SdrGRRɓ>|(WRZJb7?g} ѹTYYݝ;zUb`p$>~ ܢ  ]oر#ΝwVV~~঴&997.Eaa ss3D uŊ Gŋgdܼ/ emaoLM'Os)|hQcc70 _JJW5uJJ^N^^+BC-ԤPTTEE'~Vc;33:FN]}ԒꘘȌ*oٲtڴDxhzGnKJ 88, I32R1Mml" *ெ@K߾ծYsr3 \}Ol54 ~lsuPrzN޹r,BK>>پ.YbaWz;6>*| щUy]DAJJ * aAEcb2, ONbBtR` kmmOO}ANXM`X"=}BOVV1&DB$%J^qrZ[}pGl 7l8O2ѩ$.OO `88Xw6|9+?ǰ$iz̈́VÂLc܎ɬjtw}͛뱲B{0LdrǣGSRnz>ol}}%xZpaae}336Yѽs^`nPLl"I+,~ݙDpU)4)n,MMm ]ΝPaaP/>}m,[3%%^^sslffnN##e'W{zߺ?w#^}ijj#:HU^}IM}cXNNVճg3(xFuPdԶ}kSSЀ}Xwoʕ22 lm?{擔@@QVR֍$ 77Â]eSW/]ИvST4olGe"2cժ{uVÿq "x9Y;=DƘW_WM45U[F]ZZLUQ+PP;̌ʆ}|CBnZX̱ך<_p4sΝ>h֥xŔ?_ٌ%K O2>Pa1S* 54QR [^9s_,̢=h5K"7w5y2Kҿo1փUE&o˗AA&/: .<{l=kkcb2-!9;70pT eh8AP А4t;AA.wwWCC- ;AǏWIT͚%Wzs˖%<<18A ŋYY=֭KgMMmvvg> ~&O Ғc`ߟ񂟟SSSE3Ddfvם%$bLQLFF>fddxC#߿-Ub߾ULc8.g@ь}kP,ap&^^IIvvZF=WWJQQoj;޾ an[[SRn,\8`3ҩnnn&: °MYZYyB/ZZZD'ҷꘘ̘V-KM\WSEa#1q$kjj6;*NWw:ѹP+WcffLH؂W**͛758.^,Ot:`wߴ<щ "7n]IyKBBNRRnssիU'N :Q۷onnnD'B?;aˉ΢_>>..ڱϣ,Yx wg}h;V8قAqr}PNE&D562:zfJaןL" 3sH;f%$MtFH(8q?(t[O t)͛o))y?UU%wXn` Cz333#: 5aƅ >tk^vtvR[]8g|0z?9UU+UcaxYf_>}% d&I..ڱA@Q MgeJNvՂ %gbJ&w>Iimm73;qC%++TX,ǰ121^ϗr%(222 . ),LJssEE˖޻{yمdiuR1 @ 'O>P(GǨ $ׯDgA]S:9- [SӌK@dbzʋ>'[#E&,-OMMKsSQ':#@wzzKKkAQ(h|<| /}{_PDb#"6/ $$ڪNlY2aӑ#w haGÇtE&TmmW>`BQ6iiiv{*ZgH}XP H>x6ͲDBBA:ASA=?Go|۸\{{gbVUUrss^|WUŎ 0{BQjh# QQCEO(~1Q_~tϑ}o߾;v`[bcc---{%//NxxIrPލknnsϟWZ}v&&bn ڨ vņֆƶ00P=x02S>+^UU ra 111\rDkce\g';XZZ? L^^^//_=+W:?~B {hllx\\\Will-Q\\..WFFƮnÆ muH/*((L81$$%gLL N޻wO\\ɓ'z]Pxx3zF>.֬Qp]&ݻﵵtvR=g㝑]]]cbb888"## vmcc3pFYf})44ۻ A<|pqqqNNν{߿m{/흚={TWW777mٲ˗/vknnq.,6dEfsssSSSccǏ}||֭[mߺuo^xq֭۷oK-B뙙!!!^^^555uuu=*++O}%E[[ۇ:;;=z팢IMMM`˱("+Edrן>}aff P(υhVVӏ?P}% o޼~=@{.L&322}ի222}nu!=UcΒ?ůU|G۷]4hlFVJ32.тRUU) .d@:mr{Ö0 тݻw7oƶ|4%%#驪;w7_|&H$IGGŅ 33s=x ++KTTt… =! @"TUULCQkɒ%(~SZZGFF۷o}n|0SL~'O^^^v-z9kBcc YЎ0Vh:)սzu@(2[u+Wݽ%-[Ə~1_eϑe`` D>)Kll,/؝kssgΜɩo߾H$WW(]Qss̙3Ԃ{666] 5 PIQׯ_w0!---枞^:q1--MOOoGsXiW[[u\ %>>а:;;:777ޠ17n,--bdd3">7|]}E@VVV['988*1g$H΋Eebb A$7o`_6655yxxHII;ԤpqMhh\\HǏy(EEYYܑ]>eg";nrҒ#:!k*dsanK5t-P^^3A8{ϟ߿իW;v숉MHHD) K#;;;88˗/^~cٳg߾}jhh5kV]]P2BP윝/_|ݔA<==***ҺO[[LfaaiiiC1))ظ]YzwIII~~^xx H$]]Ć2\VVVYvOz?졪ׯbbb&Mbffpqq)..~]=T-/__ʥK}ڵkszy=Rd;vl̙d2Ek׮ Ԑ䀀)))NNιs^t pL&8q؉',--/_u=ϟɉmohhwttlnnF븸8iiiyy$2\NNNݯBHKK{yyΧK%%,[555֭vuumiisc}^WHPPpmjjrww>}:;;={?_{īUƘ̑C;B[[Qݴi*ˏ6vJ(#qq!?(6)4ybn ;44bGÇ2a?F ``8Fm޹k)S\IAoLM r%YYYlcǎsrrjhhܿЛ锔eee66ɓ'۷XUUenn}Olyw!!!l2!((8i$A3g ۷󒒒ܻvŽJNN1c++{ h"Ez\uɓ'ĉZZZXJy Ak3 bg{XFFFۯK.QQQXƮ!}"++9o޼>piii^^ޠwrrr&Mrvvnmms#:O3(~bfE&mZvNh~{999LLLAAAgmfnЦ~(Uqq/UyS!!!U(2yyy{cDQ q{{{:t6)K<100hhhHLL.;nAAAVV@ B'4h]ܡvol6߳gOזA۷o8p˗/6CiڤиȼzN7ztvR. qpyf9P"Eϕ{g2Zw(STv#gϞ zm=zׯ^W" w?+f/^(foo+#OA>|(6XӧO=rZӢFt0PdвȤA}=~c(R(cccFFFkk6(ё0}tFFƋ/ChPIq+,N7ܾFX/#SX]X'OՃz99FFall,. D,0=Eغup`*.ӧ#{c{nllܜ5SeKKK+=1/lٻִs؂hкCd/>| III]6677"2gΜݻwܹsiv`\5)JWwTPPHK c/Pd0%'皙3gjr0/j@*00kWKK˗/߿Ҳn QQQO>=u>}^i@QZb<2!!!99YUU.ᒒCs9 -cLCghкCd=粲2,Xɩm#k׮ZD"-[%kmI>>Ea##[;;)d5A i7_w663,Հѹ}vAAԩS׮]cO))Ѓp^EK4`kK?=ZjUqq[[[ggg7@n6m+Y__?n۶0;;{ΝlLCGhӺC$?v= BBBwh999mll,,,nܸgϞyxxt`nЦw;M ]RWdBPЍXlM^ظF^Й0&}˖ bbn=!0 dGTC&L --pB H ߵC>" SYYYu;x{rttOppp̝;{1eb'pvvZӢFt0pL&5Mi1h8DɤM{ NݚmsXYY/ Ǝ%%%666III///yЦvfM ɤqMIayٓKJ EfUUyt;5n'8ikk$:1ߜ:"iA"s(h:qxcE&m|^Sso{p~RϠ,cOqqꦔm> 㚬lQQ999ݻ~WFGG`_ZZZ&&&( ۷ٗ-[aaa>>>}Nق ȭ[rssϜ9sήz'NHMMMIIu`vX^ZZsʋљ^PPQ\=̼xIׂڱcx"6(2_?rr:WZ#6vc!c〰䚚XsҔa;kJj4F@ ]x1s櫮!!`#+sK~_c꧊ Ef7 Y??W߹H)<^~P k^M`k;Rfz333Č q8fD:NCѮ_ޓH,>sRg׮r"XXbǎyO75U҉S868XXXC^nYMO sݢ*>>II~<66SS5SS@w/b㌌lmZXx"qŋc3__T|4 Abbg5]]FӧKLg?LJVZJ \**** llmgff7o.cfv胹s' ?&+W2RF'KG>8q"1e h֭WǏ5ʒ 1jeee\mnxLJklձ6\^^^^^agϿt C`gtu=*~qT˗/[f@qo%#cf3gqSș)01eǎyG>,T҉ӧO<~121zh({ŧ(ΖXUUϭkQ똒 i pVU5ݿ_).ο`xx  Ojn K9zd''3&`52R22RBŋ̏g6m*lt PU8z! MM>~%`H${5hDBݯ޽JJjgRY%))2efEEݻcbrΟϐ47WwpЛmUUSzzqzzqxx=qq>ccٳUfT ;vX{Eڃ?K__ b ` '_)3kPaAi˖kjjUVVfYY!'~~6_ݨ$>k--X2>>پ/;8~I\IIKW=xzQyyM ?D~RP>z!@Y 55_^Q F2<1:zqW'%y13ϵ"xǖ~ IDAT ff&8Og'!#811;fT^@s|M..63mOAAEddͣG빸NSSVSS}_]Ϟ}JJz"0&>i>s۷梦8..NjR5(#y ٳO(b`",,wJJj`gg15U u|z_`= 1{ݯ&%X PǬ=K_e`p#ӧFc˽/^ٺլ闏MmrrJax'//dԐǃdee֖.jF2:rEɵktt䰎0Iز嚁6tĤMF%>>N'mZusIvv!$%v횿u͛yΥϞ`n>yZZNrA~u=~ΝWaaÛj|Tz53f]T+ܸCTd@]իPa]~~wBB R"в12;AAn''Ä_jp]srd@w89ٜ Ҽ/^\[[r侖^ܶN/yy??Ow>|_O/,,y0[k}|͐e>+[+V]9211 :!##gkk;5(WO&&Ç`ݿ?AGgEpP P`/s|g'ݻN5j@ H"mۮ?xusg<޽C=W(2J+*͛v/7ۄ8=ٻ:'o={nMbd9EEyt#"߾~}W,,_ML̇q~z[ԩ'ʮ(* ̘,(21(ܹUӧO:Rll΃!!xy9zny9L&.;;؍{yY;;Gvo9s""<>> =16Vٽ;~Μ\"q?`%oվTgopY]!<22& yܶLEA @QfLLvdjIXXjڷ/aYӦ 6C..3ܳ}]\>,ZtR_va!Lv @#fܣTDYY$!=/o88X޼PE(y>rPd {W8yT ,K(nrM\{0N//G̑"++f+5A/)静1c〠bP`}R؆ ,8^LIHX1-*ݻ.> Vu3rs/f_Ҳ4bjF!0AOmO`M@c8J+-{6riyy,@xyjh,mm--W=77?cbr?ld(2 L͛앗>زLCce*+ddG*<>>N;;]f{,,/_bD 4̬i&*YTTI~%+3G{!!u{}5 Ag,r?:yɣGJJ#9IPPqs#,+$7 Z54dmmZ[O:9x0ucc[ih[Xclin8xnt ++;_G:>kYNNFFJXbr|ZގG|ŋkL_ܭ[߿e߅"sz2xuFxn4=44dGe@D%qqmokkZ[O:pLﺹ,ejXXG>!KO߼PS^jֹrNZZ %ArфXYR '++e =+m Y#FSsܚ5F#xmm3 bb|#2Cݻؿ}{…5>>754|#oA[۩lkcM0AIV:supp:8=xqI칥o;-JNNic*?(=,hW4Z".QLE&U^?_s׮Xgĉ%%5GpEnuu8NXg[􌝝T-"[@{A<=c?a6,WT99Ih "$|7,-e1Lmm'ysѣB#ΑyyeXcDž ȀPH(LAGUUYuuǗp8:RTTd"h 0q|= W:oN(>a}&++&킂ܖaadC||..3?pk:akRD/0 ~Y|a7AA}6n0s1(2_ϯacc:#䉲2WϠ%[ED` NN 99ݛmneeӜ9i';;]fE&OB0'iix={,_QSӌubb͟y8766'n~E$0/] PDI`X7(2Wg'aժmm]8KDDjQQUPRjL%o'iiAyz/[~ѢOJK)ߨjsǏ?:DeƏe @e[͏={Vu>}µk'Mڲ9X.(I66f-q4pADB7o2:zq})-bd,饾L@>z)]|ƌCaa55?{ "G>tr:N҂=?gf `HGG>)K__q' 7TUU*415[EErÆVV'`p8ܑ#vNNoɓeha@ FFQU: /$(jL tY0 Y??W߹H)<D"G͐P/ //ܹj(\Yab2<,,^uaapad %%X 33ShE RYل ȴiOXSE$_W~r-1EwszyYrH&1NNɦ’HhG~ݺK,,| s"ZzXYY333iދhbee%KNݽ˨[P233?lxQO܄zu0 ({#Gl1%鲣[II y_ׯW̑|p#GI#H/4bbb(?{rpl plTUZTn zMϢ"lVtWGח:j_faaMBB۷op'Nц%@ FG&&=묨(u*0H IDAT@ۻo55U?_09 x{{;w,ZRjDkEcbbƍ;)6OuUUUUUjjjr1e3&.]z&5q`di~~z;ϐO2eݻݛ_w^uuuaeeeo޼>1##c #"r OH:xpێ0C75 *ܓ9 c@fffHzjbBo?>??Ǐkb#IrrrJHHHHH""XYY䢀5V>{ SQF2zvtgO߳gݹs;;wnqλwΚ5k"f99[\ssb4Wvbx # ݻҍ\~]IID":uJUU055ܝWS}ϠXXNXlڵag$%jjN1vQ$J2%99yܸqiii__i}uwH.gDO]t… xKz~eggwƍ񶶶^{o'WW;.Q˗&\$I#֯4"̚ud3wL*@OvvvvvvrJggjqqlE#""nݺUYYy}A>}Dlllk֬[tt4 (^pʕ+O! Xdׯ_ w܉( ˖-knnD޾9""̙3UUUϟgaaimmy-EI$#""PQSS" ΝC>==]XXǣ(F"iSptt411sAAɓ7Snѣjjjo߾Bs133cVVք (`{Bd7o왪WS}?Abcc< +$ƸqbeP<=c±NA %%nRRReee?d#`~dtLLVVZk^+:NJJjaaylI"}eU_ϢاQ}k=at݅h_]\O4ͣG!!\lhH01D4pZ֋`v # D"Yfׯ_Ibb" k֬پ}{BBBuuÇ7}޽$$$X[[S<ŋwU^^^PP`aa6``gffv殮.VVV..̬utt˗/S?LXb++/_ קXǧpӦM:$۲eKIIInnݻ>~?7׃.$dcXǡYAA cNY4|rssshhhKww<EQWWW Z;7oy<33%K\]]108;g@>}QV޹u5j_h+Q*zjkUTv8uEOj$% sOɓ'555P}dCCCWWׁƏchhx5{2Q =}e͛}#x3xxxȏ777^ZPPPXXxmmmh~:66VQQMEE%!!\]]z>GO6llnn^OaŊ’۶mkoo)t4:::-[ɤ|Ldd͛T_{2{joﲱ9zPNJj[MM3Ah>ɤI^e=_})6{iOѡ(zAEEELWl.]bgg/..~$'')>>?!F>uݿr_L Sh/KXz-O7P*z6lUYj7=LR:o^HV֞q㰼5doo ȍ7'?>>>eeeW^:zM }Kc--KjmLHpl(||n|Y2w7l oܸ0;72Ԯx;.1a,%H$tӦs眩]a"D }@%))Ew_B& tY`:::JKK/\n:Qr2"^^hWAV<ޅuHM0g*):ӧ.\X+.NuXXx'!w}FT ,#{L\vvԩS׬YclluP:"Sljۧsbb׮~~~Ƶ޾VVV7w.Pbjw\Tn~tʔq"++3d2#Ginn߿ h '"ʌu0~f͚ЀuQ)&&v̙ibS#>xq}x`oyXA?^T[F bjw\0 ޻w߽b]].էEY::4)oT\wY\d23C `Tzz vO_b (mڋ::>>V.gss;-@ڱ㆞x{{]@baabb7CSgi0Lv*sxuP=sf%:"=V\\`OomD+ `xw/3GuÆv磪K͙*%%a8(2MťK.BB44gKK'k0G۶M 6Ѵؠ0<&&ܩSNBB<]$@{_x쓳tL 鲀Q\"<|$ωhkk??aǎ PǓ`$x񂁶+VV׆CJ 0 t`~jKÇ5?9nٰy -N ɋ/ {=#!y{mjp&ȵeS̘e /33? >evvvdt$RWh~XU? `Z+l54p z%VSM"?tR===S)EE@ҭ+VLܩMOOoҥXF}=G~Ĕ-Dncή׃0 Ouϵk/xzZ`A-!468<]Wwov]YY7)\@ -[F,yyׯc^^\\Ǐ8r䠶։d]]xy9OtsJQQ^Ajk off&:ٺ"j)(ر㆞ށ'--5|\hԩ99Tj_UU*0>' _F~JCئM49'FFf8: z0v(R4gjMM3 bb|X'SPdwݻyy90ˁy`0?/{y-'YtY0x;,--,߾`??AedSWΦVI&"fС%,]zsmHc\?׬1TTTU]DǏfGu"0w##3UV: "!E&{yZZ[Xc?laFLssGxxAwrr"[nH;!$=AcceAjka$PdqV+de?҂߿7bP1* CE n319zAA۷76k),,tg@!+ extt䣣߿MHgwcglbn>y.5?}:EYYII):uA W@?YY##W rc'//RZZu?x<;nl3XgL@Y]] .]zjFB\Cc`?}aeevr2ܵxݹs&':tmFj'||# }IM-21Q%ʮmF~@ TRһSZBϓ`$VT4: CĄCU_w֭;nbJ^m+zUI_ 6;'N_ܪU}ܨKWwC?oڵ,wwS?o ~44yC&Ef۷ƭ[/^lY3aXII )o Mںl8a (jll z8m۶xgݺY 3w]]7ob2yysVݼnAA* ۵k~MM+' q;:[0:133͘DgMM3+tv֮ !huL$UZ U-qq 2d0 奡_?ŋ=nn& ]^ KI `ɀ ?ںTSc6w4_zFH?\ukײl1eccl%%H__O$s@PdkW|yy$ZTTu=~\`ˈ6p8&'sY^[7ŋ=fF]^2MK^$lxw^?iĉ$QQޥKG(}"Isem"?Pds򤣼Y&++$ 7uݻohwca,8Eq}}n<7;ӂwMW ]̙o?~\uQmΙ3-k۷؜m`QY@_767/!YL 6WrscjuApjjRo~:Xwƶ^uabaa"G` XgϦ<>sӦYYnn&ܣg'JK60PXmכa;vL>>ӧwzHc ~;;ݑME))ƍ8QʟFPdzIps*}%Y@]]F2ˏ3gvg}tuA9HhbbYGxl49wt~[f/<+/^\Z4wn>ݗppGGhhh 0 h#9}aLA$%]m@ 7o _X3&O).1(< BcGfGs/kh>};0^XPTߙONI` ))ؘOH]]+O'^YY..3-,Ա2drr’ٌ4lhi8p:ms IDAT:Xg#ll09}Tp X]A.?(2[Z!BnA#**ꩯ7Y L}aa3f8yCOccCaIGGLAXX<=-Ο_;+_:[nַo))Ed,  %--v=l`*C"`))ݥKOD2| -->Tad !;nL"ࠇueGwgﴱfba { cV 휜A6MgFFfTWGT=~NUU?a쀠lڲ嚓:Xg#ʒ\YYv-͛-FwX]v4fUΫˤY0Z}}Ūii77͟vc?{*2SɧA!EihR|ZCKKI*PلRTPFȸu{_yq}+W,_nYQQ1uu^^7PQa[0?Ϛ3gTȤd2uƻRq <7yƫW߱/Ħ'#`9DETLnG$6tDbSH6ooGUUqㆊGr‚/;qbѩSQ7km%a[͝/)9 00cΜo4m.-.2VAZXZWPdl<۱j]k 7o`Z{xx 1 L#&& HSSAH$Oш/'N,t0a֡81j>- c??/TW7b+ .X0Tj;Vݻ}(~)+;9Ox"ڵij*`9fmii}ƹNrrA``|II޹AO;ibr''7o98 "A3u#"vTU5\**:WZܨO܇jh$|E2g[zEE= *+\\ll /uQRVLHuG&S :U,$.=\O5>C^޻{9S`Ҥ**daa%$Dml.`(*GF~[qq_V>UUiiųgw+[_e{TtEϜYu&9SLVIu0ma&d2'qƌS߾=x ƏW''`$?2zِtai9:**ˈVҁO;eV*,,^ii- Pd LV=KN8p -8cNNNyq1 b m6ky0Ȅ"9`ΜG9:NIHp/JBBTOOF҈9^}+::8\R.5/48`U*bc3L}|JYY 0\WPdy>ŸClGEA;4iXTUO e,00\5t|Ağ?V""X>& f'(\~O`*.׹8/(v-a lJz:ue)/T:6oqvof8,,!$$0gΨȴc}#<˝;NBXga>AAA?avs}O=o"cQmF& QVV[U0xٟ?pAyDyxpȎx[۱X'W\[[1$$PgAAv-..shn:+K(2;>krn[^^ ="\QQO7n>s.YXKHHldD(2٘g .u"|\sg@YYW v܊dT*N]qMccƍw<`d48N@?iw Z[I{:G9s`NOa:XLnꯢ"g%YjυS?!..lu֒k:W[ر[K nVM 5kHAA߿%$$³8Effz>p#IIo'oۣNJTPSeein> VRmm3ɤ>~|]]%G>(ѠGT*oY[`夤jka,::0UUxۛ OB**EEiGGVpW#bf}u_vAaLzA Xu۶&&+Vc/PPPs!A^`/_J_Гϟ ;:0_8yء]R(Tɤ8P֍P(Tp /x x,sɓ5.m> U jii?~?T:rr``2A[CCSQG~Rs2J:v,KUuPBt`pa9u"((H}>ĉHp"2}==K1?T\iӴ4ɫVHH@Vv Sq#(2K%?LNN,Ҏu.vLt{;e׮9Xa))1"L $'̚u޽g.y`2|>ZÇiCA_ƞ9uڵǏa~W׮*\:rrAAe[s`og~, QYYɺuful,\8 *'Ν7m%#/K JK56 :v"OG/Xpy/ݖ,u"~e,--yA@22bFb'; 6{9Y8H^ޯs瞹kk+*Լ C6̙}%C bg$E&`22e޽VXg@kkWXV҂Rњ& hѕk^<8'_x ⽼:VG|ƍUkATThʿ6m1`0qѣM:6dʆ;$%:;d2AUs'[xq}"K,6o^EOw<)9+(*J5656 (I6obvv١C=S`+:L55M/`e5,eim~: <~![-$dgϾN~&2e.sn02En}uuSn}}֭&&+WwL6_%$DFp @TPL{Ç{?\lի/H$^@:(t8s΂99_d2zp5cbvu"w-=uڻ7eN- U^^\OfNsI a,)"˹sKh7mm0.,, ӔO z%*+a横j\;o<==DLOW;rd_: <~)$$ܹeZHFF\TT z2;45pB "KyyO׮:}Y8`KTCսV҉˖: )޽75=]ZZt$;sQXgay4td $^SĶTxMPg0$OCQt׮: G۲ef^/ O._~^WjuH׷44b(㓸dձcգv"//6|/zP\\zjz?ڵpyyyZ6; E۶+*JUPk+=Θ4iA='dq~~I_\\TT,MWWy\ӧ3weeׯ'́uiI:jjjsrfyjIIQqiii77bkkq?deeYK/!{n| ,,tb\JJѵk+{s"Dy"Z['~PdV?l6vPpwBCaffWakN:hҶ}UXXeeuÇnڲe?OYYٓ'OٳgwKRYK/+9RcU޽?6=wa(2;$%׷3!M2L2ma۷a; .73gd*Y8υaai Þd2 !ᛅy!!]u셅DAT˗uuu%$$hD{(#"" Ĕ:jѪ*qqtkdd "ꪠ //J"prrr'OwްaäO;+<<\___TTtrΩr.bcc544dddN8Pmmmyyygg綶ndxܑ#rcb22'jܼ̙#WBГ #&&chU5=VRR tC ;+ ܤZMm׃)TŹŋb9v,܄J^sӦmXaG{ʕ >|@Q[^^ɓ'Zzaa5kA~{=ԩS .,..NOO;v;,[Aŋ{{{#RUU(""r[n 666v\\k U}}Ǐi.1{윜khh:t{_?͛~)%׌յyX*):PΝ{둷n%" (2A}JPSuzA[[[IXɪ;ᣊ}6ou Ҿq!Cvz{: YdDUUU}}BHOOϯ;w\degg766R(W^ux .2qqq("h{{{ssskjjΞ=K$TjCCB|-E&Z!KE) %;^s n"^K˝^.rdOqraE1Pd2&9ҎoE17dC$eAߴuru2ƍX^[ԩK'L:UV6,ZtoX8GZZz6m={nAXX8''|ܸq~~~I$LO p8333+((=.!! PIHHxׯx<=brSVVFM& Ã%//mW]RRsr3͛g^_QQuy{$w6:gQQ9BMMSXԩZXD%%%/_655ݵk/_ts ---/vuuMIIz*s^~meee;z D{MBRjjj֮]kmm]SSCϵﺝJD$''VA۰aѣ,jJKk7mkcc|Y*&&ҲOh"'P'>CNi 3g+Wo2SAA,EMmPyy][ o÷kj*`Q5kl۶- >>><<A5kָĸH[[[{{pKKihh 7o^766ҾX`޽{ͯ\k`7{Ǐ׷ p~^Aپ}{^^^rr}zx鄄 O.$eӦg.: ]}VG(z&`̾"ЫkףXlY܇?`3gD_? gp9*-*:I\⦅~pbC]zMFFڵk6l w޺uӧ{nDZZ^GGG]]}ٲefͪN]]}ʔ)JJ7;z̙3njsԩ^޹sMEEܹs=ZL ֭{{{SSSKKKss{ +2E#zxeez{; uɐ;V#[[IM0\o G;PuGR=ogw )2dG‰۔]bb2‰(O]._: \W]u01O"eeد 4eeO?3v~~@QaȜ992/BIiGfOVG%Г sэ;|͛T`P--Ec  G/,|Dlv[:``fiH7n[KUmmbnfdGs0mM>.'Pd޵wzhlt) eqԗ-tURR;>\hll[f\\;N +`9II 6 ;ɓln?6Y;rCXg{QQ"-( IDAT“'ks0P#!!*)9թx wOG՞?cǚBAOTȑ033=XÇAOfg{}VmtXPׯ_AV>\ngFsz` uVr!!нYFs0,-(2A/RR_<eLZZRR&}.ݷ m0(2'?COO8`ռ AMjYYX p("ÇtEV+(2AO:Šxc=PoM_55>b_ڊXghÇUT77c{?RT r zKZһO>>/3fYL<?c.CO&=9}:ʲ ;vlavvO"YXڵ;fc &ha!bZx5--ŀbXK۶")o'a={7o 1u(5Yg_A 6Pv~b--E'NDc**_OؾLNN,N]]VP[u,yd0pqتUS_65a~jXĉ-@Os̡w,D2 {?PvYx֭Jv=Ag>wr2:6L۷2`&6j:dm0 #(6 ݸ( =NsA :t`=FwlLII͙3K`, /^\O^4ѣP0IWW);O̐ko/[6֥얠 8NjJHL}^=Ym2ŋqn^{io''$diPwQQ7Pd'M`u>uiLם;>}:pRR=z rIIMCC+kۡ읨 NѓOS ӯ^͓R_̬T͗o{;yyeˌ\y`9&N>rdHл/56?!Ajta.]'0PׯܹgXga#&M>k|􁎎99|OXX֭֮ c"l` TOA֭3>>m2!(( JN.pvnݴ5kbDF;TYYSd?}+wwEO]]/\0dzg_߾o+p!C|Vu6 Kݺar .%] wA@DRRi͛/ꚙ)+K/^<眰P\QQڵSjouB"Q2ӧԠ3(2P=AGZY=NJYYqvO$6a(ɓVVcƍS: qZZ |Oxxږ-O?p*L.}gMMcxv45zjIIMmm3ٲefqqutt1jkn()I_MnmmE"R\ E&#}ϭ[_{z.?:uN@{#W`_XJ::ɫW߷mr: `>>K\30SGG 3Eѯ_3{ffz7n0DYޯo0It}!}ZSЪEfA-E Ovv6ֆ$%%vgϾ޾uƵ==kj*`+)gf(uJN.XȑXg jll۸á{XܾFR KUI((Hh߭_?ӧ"L]Ҋ_ԇm`B>{1w~*,Bz2E&מ=JJR[b 'k9СO  7_61 jf\<)%{tgWeeuۼ6l2ku@gfwGݼMgԛ7W*c|𣪪¢oEfqq ^YYExA$0091RՆ#1{Tp̺W_l0% F c%n?g+0@(&fԩZm\WW ߭];52ϟD6_ݷǞ8D͗"#ut44tVQQ SxRStHS'Lu/<w劃ƍw9a>t)m8 \LDDP[['eˮzZaaT)ٴc¶0#xIyVEl׿~j|; @(XYAk`,cȾ}EE,CJJڵ?x1,}PZZzǎL JNdDbqܨqٲkn%??LCCL :3pt=W|6oÆ;0pZK˾m^ Hqql(2YaaǏ/8P,+CCClϝ{uzyz>SPrtug`A UnHMLY!ه?ΔEF,Y2uTp@gV0&(AAp5k|g=zt.EF~6LNW_VC(2ZCC[ТEjˍlZT}ܵk7ZKK{lFPn^^^8-^|U_Ht 7j}"!!*//Йم} W/_~}hWgKEG32VDpY_;v,{scqtn:K/N:TvqXڊbb_ȴ̃C^[E暚6nwok%%ᢚ)23w߾tF{ uk L\*=z>-)PГ(2Ǐ?9@Vv Y@On\㜜nHQvvYDD%,#Uxckys X]Qieu!))vm ߻31cwollAP6X!22}ȐA}=ACeY "({͘3XȈߺ&#pSɓFZZy8 CCϟo?qhy쫥9]Ӧu ߋLqxxZm-_voyym@FZtt>{VEE&|yIIѣ 5rKw~ungY2qCv0q0.7bӦ;_,hYkcc]UkhMo ]̟?VHH 8ԍ|R|+ڷoeyyJ]]ҥ]_bi?6GED|:KW'ND>cAxE>~d+"}ttO: ˽}|^yz.a>%=T@$/:3{!..bk;7(2M*ݱ˗T,OSR7Ns " . hWOݶ?9 ׯsraUxykk+bХmӦnnAOs:$]VM@go퍣[Ή7ntv!,,UYYzء K ԐHdȑp<w0@ -_~UaT̙hKK}CC5 c0c$%% }]Om5{(TZ[_LLy`[m)+Ku-EF b/_~~ݼy ÿ̛gؒU@O&à#>xѣ a+ +;0(hs}}MMmX M}*lm%awWϺqc$Y@/jj/|3/]:QWJJ55M=Cgfg3f|s_O|ཻ{ Y DF~$gB$_ ^^wƘfHe_5/^dJe>i"(./Y2v[e5621sQYM8,_{Q9tx4ЙIAAyAAaf@={]\1u`*kkƇT nn 1&/ ??v֙AAɥ[b˗߰ғ6gSh_3Emmd4 b:3;[h|AAejj1wu tqk H&"СGVet Z\\=ld2LmSvͳLL}}>y5Oc3Dxy/Y2ct/c'-.,gx``6Km;wq{.233}!::Jӵܹ*LP Oap]YA"_OPuƶÇ#p3t|}<~iϞ VיЍfӧǕ6sK`QaaLOIp8ԟ-X0.44LeV;wB xPjjqII "RX:3;1 ߽&eiÇ0BAAq&7Pd2?l _~aiÝ;o݃Y4?381MXXxRM*+K5Y@[g녅mφddjk{/3QTt ܵ*LPbcc؟F + E&BQtϞ@CáO: `+kk[~ܺտAS}ձ,wݪuHǭ[iiŗ/: FMM /Nq>%=Ȅά һ}s͞=A{XZg}\H + HAA'(2yV@:|t-[1,nLLКZu).>}:LWW ,%rs+>foouFHKtՍЙڠ#f]Kطﱻ)&`#)7byfEOPd'"׮ڟ耫MqӋNNLi֍x1tcb`Cea_( Vڠ]OIϤň&zCF~+Ϗ ?xp޶m xFD|XYB hh@/Pd ڥpΝXE௿4>{{7m۠ұN;w޾{wR!!hk#OɣGeebq22 _h#fQ=y2Ű-yu+[XXE&S'wڂii~/))u4qCC+mm/UT) 11di_PP[A?Ǐo4s̘!Xg'q|[Vs>%=2`ccXS}>?I1&((@nL  {+*JXӂ^YgI$JlnslN bb$ЙI3t`==4wޫ` @(jd+1l'?SR-(2D "%sxIokXt2dӧۤ^@ d2ҥx; Ѝ!<ga1*::_㳎_+blbrr׮GDQʕV s:G~O FDЙaQ%{‚>qWoVTڎg;yy`lAJ?P((44-]z'Ba{IoR\JRRn_O K%j`YXgfOt? ;e&Vϊ>{#Db3gbfALVd tf"ҞtiӴ<}bh-+a՟"edH&S 33=`HH9S;00Q|ycy{{k $ag+ϫ*.rJEQ=˗ ?4 LF+?:3ꚗ.^PP)++'8I{;9::ݘCO&@KRhVVk/ p,aa+WMwxSJQz[du<+AAVEfQQw4WT$P;Euuٸ 0z2Td"ݙYQQ7?On37u"$>>+6MPd\ӧŽᲝ MLOc$p8ܮ]/{ͦMwzBʕs׾ƀY,-SR V0cx:tڵSi 첎y UMmݻNcEh~[[/vfUϟB:kj*饧1xBBRKU EfA:V Cp87HH.&KL{w]B7{{::BӦi(&&~ (?~t)TtsvfX[_{d Sj xu4X5>>k|7_)**,-;K7&qǏ/XD;$d[qqܹrrtWԩZƩ1艈AppfǎE̞=jd v^Р(sC ZJEϟxaRZӃ:3߼ɳyEELьEES(T 7k09?(2[zVypd SnKYY³g_? 58))4gvv)ۮiJVV޽svEÇ޽vf n؂֓@Sgfttב IDATmR+\'$$e֬bo*?,-PdrZ%]o 񀀍VVkzztKqjY8qС?̞ˑHgc&hk+犠B2* pyr3=tfY?#>$QUM.S֕E`iY"}TD"Qď?,.n7b8wn.\sv繹qqfp {3{K*+ݵk~wop{;R8<3föii]ǔ9ML;3Q=s&Y=}R _?l"**df6MQ(Ԣ#&@j$,Y2ѣMRRz2 ?ؙYQQ7WVV'[MM{hl!$$#fo I4H|T-KAARRc߸TVVF&Y}!D&SMNΝ;G NDDjjj۸΅ $%` tc<ÃC""z`؝;oZ[IkL0xg*mm/5-^'S?W_'5+.[ↄhD:G pxVBCSml 5/'\Sc6鲳cυ :}=h++mofvO&}͢"|ƫU9z2EDuљ4W.x:gݺC||V鳿iӴ}}Qo+&+۷S'7B_Zs0--V2e::J{yz0#`U&3-?x𾶶iݺihz0DxbfGn̙3 }]2m֯_ 99,V>MQQ?^Y T`Vk|L|hm%\9AA80ҥKUTaĉGRs [&(ׯ',_n mldpLEO޹m.,c`CT}!22≉,)(.X0Y]uuuZZPd2RQŋ'tpNN÷DSӳ/^dctb_DbsJ/+ݼysOh5!Ssigfk+iӦ{W<\{9c7x~,()aֺz`N&s@ zD{Ŋ?8ㄅ>f?kH`Y\\qcgfMMҥ_~~N62}>z$$$ESSAWWY VȈPeEf^^c߿AqqիQupp8stzx.*((yIPaaጌ A:/%%eeeUPP@q8\^^GjjjPYXXdׯ43vB"/;\, y N\\dѢ ecqq۷˗1>yo ggZA6o|ѣG{mYYYiiWTß㇬l[bAi~0"g8@ZZO7N; 11sx+艣䢢/1I̘ˬi_555,Y壽θYE&uf&$|,]C ,)9{1 xYDb!)LeEɓ'zVllٳ[ZZQSScA.=AYYYҞ={:STTTRR200y۷omJvtR\]]i&㦦{SLL`N^pZ#=!c6uu lllcO<' 'k0k2QeFv}7sEEEMMӧOTVVD~=ma#\љ㓸rM++̓3Z@?q<"((yd 5Ll37e"(2TTTD" ZZZMMMT*˺ = 044SRRG0` XzZRRR'p8___]]]99'O޻woذaRRR@"\]]]]]I$wFBDFF"R[[j*YYYUUݻwvIBkEݻwTUUu~  8q~~~BBR- LjjhhȜ8qbcc=<4&+)Nɓv7oN5tRR.Ӂ^^=󬼼_o*!!~ɒo3x} !!!aaa))?E~]] :}4 d2jjjrrr+W}~$Q[̞L;3d}a鹄)Q;Цe%m~<{Ѣ LlHlj"P{=WYrcyy‡PIiiidd* ~^XXx͚5A_~({޽Gv|maaŋnODdٲe>>>,^A*EO:pcǺ{xx̝;EPIIɱcǢ('QQѦ&Eg͚>jԨCuNBuCR;jlleQ6+ jbr%MbNyw744sʹ4G~h.h""xMAϜ91iҤݻw^yQn/w NA]]ξgcl4.\xYS-6++PIiG^^+g֯: MURځu 6}=bĞfu6D"QUUU__СCGrΝo>ڲ)ʫW:j Ԡ|p" )))(wvNYY8O> 8}Ν"gΜ+ <>O0޽(3wP?vٷc5me\-(EDI%iisۗ[BI"Rl%K 5,ɾY~u,3sfyqqi|Tݻ#66?ǒ<`e-,6A 12R"UaΏ,}}}NNN4%~u-0kkkee5UPPشi }t2Sӿx<4 33:"'\^00u֤̕ sfha&Z;wyyyW$$$FKb0G铿?x1))W_>8Fٌ֭///000@CDD |۷o-ye``ǏSSSǿ߿۷ʕ+zzz>>> wuu/_̟?VZӓFGLn0w:..ӧVs`HGw/~l:ϟ}S`W^5 ) ^Dćc'4u~dpppl߾?5W72Ԁ?NR=<#SI$na:t^^ Y!7O䈊X!CaaCN&@prrJIIy%NNNIII`$ aXVVցzzzgT̶8vXmmmaa֭aaa144 C [[}UWWtvv233<}}}QPPPLLs``WV Ǐ~ aaalllxrrrcbb9/pxxxժU\\\z#c>-#w{??-}3'g@͛=k\9u,,noL BD{Y#k\#WXi kצ-$\s<S]] xƼ0#AAf,:i<{y@(3W9cWg5V|5'9-戓nu_#&v#e"]frݻ-Gt.DG| q88, Hv†v --D``Kyy3)f $D"ƍ[׮Uyr?'ASS:?“~lbbGhagg sɄ>~fm+z{bcwXH.95SSc6yzFJ`F0 M Wzf6˓(^=}{͛mqÞ2F]s-O00ի/X,\#6! Mhɔ!3GXzu{{! $//ǹsbcуB]v- őu9 ۷vvN/>scybeeYgd0eÆ ϞA%3XQ003&&&HQ@#4)(wЌI=000ʎ ]*FC=P9~\K.JN>tw33)0eVV&܀$B1yfiii...mm8H̨/ /ݣߏ%k,eqq֮.(ȕtPKk!Yyy1ϟYÇod:/-./;$v2gBMMnLҦ[WPlFcJm}>b۳0$$sO8lvAϟ?988i:ǎ#(jPIIIoo/OKK/MMM%X,v;###Gz755h(,,wD<;'OLx\ŁIbq^!#9xٲs>eo/hׯ =kxҥg_3YhbooocbX&&bcccGI'sz>b#ȰN&.u2+*ZԑϤ IDAT\$'wo㴷n$%uΝ@H0^ZГ'9P֭~lHޱc??]ƔM8!!!BHHc```‹y)\+^MTU ɟ!񟴴ot0==>>ACիӫץuJ\\{ҥ/^U{{'?o1kUWlwNN˗(5gYd׷HO/#Ib_-[vN]o3|\+&v۷V uuJ?:~G< CM͛::4v2/_oLLNrn !˖;wo7n=v*,,}cOyyտ?cW` Γ Yd޻D}Z2!00u/{rFB$$<@md()x j+h= GxnZ\]lL2p,uQXXe˖O>gggPC?dfVцڐrǏZYi>|J߈S԰2Ǐ?gm]]. 45.aꕙ?n!]\$̛Ǻ``iiԆL07~$9=.Vak|S6?dv2ÇoܸQPPpΝNNNg8^o>jjJ#P2=9Oؐubcb|YQoTT$##)c$oÇJ##EmJefVVgzx12Rˋ5Cm/ pBmm⺻y6DEe,%W0C`'`ff>|]]9t33 ޅrLJ*Rɟ".w?F"Eneg(ZuqY}⫦ܹS76629t  a`&Gv-.@CcAJ!mmVP[K燝)C$ϧHfGG_r2|?TV H&YL³gy j ~66& ;_R>^+&Ʒq6Z||Ϫa HI!-$q鯂VV~w1 uvIiAmĀN dNڟHJ @m)y$t ()ibaaZh>N& \ɓSS5nnv !hp?w: llo'Ͳ1ܩG1``pEkת@m"jGGמzGp8Bee ԆL ӰOI**ZxxYM7mҜ7|S4Ȉ@UNN& ̜H1%吿ǏU+VYSQԎٳW;w겱C1``-,46:tΝLM޼ 糲2SO{{#7< *+[W .)-./Oc*4d =F utAma``05UKK;kc.!BhG(rrkx~fKK%m+3in(l;tXcȂ))֩BmA"E**4]:-22P[A2^e %hkmiRVLrAL nm 3 ̌x|/$k44T58XC S|sWWÇ:DyH() WJJ'ݻҮ~kk- !/,,LږZ _.]zwa%]~zIjj99ؘO2sq spX>y yym LD"j+JÕyh*+[=<"p8< c@#]ʜ.Z$G99li馧Hf\'Oa'\\nݳg9J$ϞU8uJk5G88Ȩ`:ݕziiHH++[48PTWV旖X4X,uuD"YZZHUU9H gLB>,J*_$!ˉW_\~Zz:% F^^<~%{nU>>012z\ffszzS_n(޾m,(EoѰĴnݺIn OXXh}[[DbddeeE^8`ox^PEzdd~PV"eeMD":`OBTT jVo` ײcȾ[XX{jcxo_ǏmooMLjki阙d?pp ڭM {<_FMN.~CWidhlD1wVVf99᚞ee͠t;.?s`?͠6uϟo%ssQt;KorX_1mFFWc{aoa,߳GNU$$*_SQYd۷%55m͎ ?~:$5U,,L`e.M7,ŋq8B]O*Lho?a%/VH PRs݉ʒ ~pg==9;B--XYi]`6Y frpVVCm8+ $/fP[AX\\\>mJJЎjLRҵysPoP\ǢE6`#<%jCH@eeÝ 貲8rO4zI@ffSeQ5[..67kll̛ fPV֜INƸ1kk/D֯WXhDDxEDxG%v; 룢8SEE?{*q$ΝzaaeDDY꺆J)ܥK^^O,p}`aa ܊B]zb}=005>3??ǜ7n8wEr2\j[ǪwJ>Ca@ ]"o`? rsClB;as*{W/!,,W\ō L4gKbbў=/qÞ5'```8{v77Q8~f zݰ75$%˯OC"EQ(%JQKk!KhLv6J!#3 VVfinNq8`INPлzWQI6eөn~"&;a߭[[")ճ))_Į^r])"$ĥɅLxl.r*YJ[/_c^ékYee&`׷+*RJCC;+;:ʚϜ!$o(&&?( %%M[,'DsɜaaY'O>۾}ٳ{-ޡ]VCmTⲶֶT%'c p(ʴTu; ""(/#46vaQ64cff)''6-/>23ivvmV::ʪ Iwp@:8,st\Aӡiq躺..a/^웰a޽'Oƪ- ӮtOXNZ"VV=T-LMns (6#O?iiWLW.RR 55mTdvHHҲVDHȳgX,֖yvUU?̙4򚸄jqw7ddd<27W'$`0,,L%!gćf\dMݻ؎>qb̐d 4sv+BHXiٲŴ_4-h4&00'0-\83)m:)ՠ<?wnڧOs}QʕztUÇ.VV~qqRRc ̌;6lukpl^[[{>̢]ƼnjLL\v2_OJep+WTT$CYe0.'_[p8BVVő#6dg+)~e+.n眚i3<߷/21ԔP踂}ȾA__K7 p7xB~~ 59844CWidhlD&У2|Kee2@q;H6YYZB=۷_CBҷm YXx۶˨Vkps?~fmokw<Gd 7틼{wl>`ct}hOuXYiYY6R RQT_VZ4<UZm? _ALB"}SQcTuw҇OXXb 5b`\Y;ӣr?':<ܙr96m`bb&\dM#ĉ ?h 9t @@+"UU顝num55mXYh'(,`M)PFFP񸨨!447n$joٲ^uhyx=zjigi1>- ak_N4#>bs\yRRqq(ĴO:8W;jx˗,YF{*ݝ`NN5VH v^*PPo;15 1%4l8s$tvoR[wT[g{K= zz]]wZ@PO jb2v&&{Wu9&&d";p [:**7on>y,2Cd䇠+eg DPM?~6>DDx\\"6y!ܝ;)n#RR}MgLIIa|kk74hkO?zhh #DF~ؼy2Y0 T%LЛ;A&*+[99ٞ?UX!1^HȎYgZUUTULhɓGF++KP($Ԓ;'a߁+]]:ʚ˛Z[{9)sxFth[Zbb< gJ-[*)&-[6^ Yk..6 u}BB2p8XCVVDUU*&&o8X,n)ww2M_{`TCCkw6 _|45uQEVΕ UU.Gbbakk7%E4 ,!v2OAAc0! e!aE{6oڼ9(<܅ jȋ-˷lY>0̬@1׮?{j9J@&߄֞eXGq;zqn^M!"n{ܳ硐m+食8Ǔ'wgaᢩ)=/?4dѹ<@UU*6vmGsg0Dm^ _~ɍ=Q8۷VAAΨ(7A9jkMM-IIZ;DPJ(BW02ׂ|St:ʚ~7X *)Ih4x  =Yiaig@*?;sfx "qaaY ?^w:w]6cl|UGgQ`6|L|llڵ*cʵko}'3㚮.rf2ѤjF1UbcBml9v,&-,38vV]W+u +'m߾MWŋ[Xyd7!!.kkmkk!\NNUr2&..ﭠ Ⱥwd};%- v2 6}yy Hx0WUo۶:rdTtS)& v z}Yb_NjCfKtt0F~Rx|ytˎH$9q%ծ&tz>M f$/+$'ww"FFJJ˖-q`P'hGhl(/7öih(!F;ASNNhLDć aa++͛uh﫠nǎP66%KyxmݺbN=;"ѣ}}-iё$>{RA ! ѹDݼiomMట۷""/ۨA,=sY~$P89cff{w;ԆP)q֩Cml10z !H@mJN:g۝XHճDH+6vCЦMvz9 o4krrqhh:.HX SmI3O[ABpDvۙQNvˋMVvvSUɓ\7m47W!j,'''^Q_nmu裁-[KH𻺆Դo'Jʯib]TK^^SwwRyYYGF75uz{CvG0STJe m[ ˻w:P2[*KKn޴𼅅 (<d~zzrPPG2Av-.n|3cj'A1XIW9)%ɩڸvVqZ0<`oxmc'0TT^}1&} zP'NN j<%$g3TIIӑ# Zf!G#"v(@hƭ[)= O3233z"ϩSq '),cqԒoSrҹ dlQQq2FxQp6cce͡1hLZZWVDQ(%IR9BX׮ZZjd@Zg(&:uuD"}#4vVU͏ͯiC"E7m07W ?ˌx;m] }u^ V[D.^|mjvic3-LL+*_n!$dc3{FݻTT$/_QT'{f"GO޸y2mpq #T(\G .]z[ږY3u75_RR>Y`;_or|Ѕ %7'x{?},/ `+gC63 ot͟Ͻz d`0zS>?}:=7[{?ngmOxxإv"4О'?666mm**ffjjn,SOJWBIw˖S,MM-|rΖ1u/YY{ فDjIHH+gͣmK^߹eFe3񽽃GnغuMdz0SO蜳9pBK^GF~9ES$ ƍ7yy># ']};,E!tMfffSe:e`bbv͖kvnD̛ f6LNƸ1kk/D֯WYD=7=LxxUUFK.uu,+76=^^", D;)//`/)jjB%?}^u%˿ysGVV~FFVIHtqoj_Yεlܨq 4cf-3',,…ӧ7ìqdlZZ͟Ou+3ohE1&d`Y=Lֶ*ۇM#H?^-X x횝X/CC36nTp}6fw]6d8{~l@?nɉZҢ#M3x *dTx9i/=% @u9wŋ={33S|OϨt܈ژotXXɓ϶o_u&á6rpz{?rqY 94.'*9VPK__Tl/>53cEuƸ_N%% h晘AO2̬xsHH33LC[[X,BC10089PJOMMon޼Lgee>{v o#C˷o;,[xVV?~Pn<7ѣ쁁rr"Pcee60P00Ptɺ}u+E\@RӓKO/u ϺuHM ۉFcN[={C0100l۶Pߣj&VV~MbP2%޽+ݹ> t"w }<3%nbŊRRqq[-n;Lĉ/_t[Of Vf}8,,Lp6::BB i+䇪]AA;;: '֐ڶؽp?903S`uq7t33Mj6^WW?ٿQQQuBPW jQl2̈@"``ۙQNvˋ.QLǏ&%%q>4J```ظQ#66ȑuT~`gH;; hjKKŋ ѹ˖-~搂mDkg-3AQ~ ~Ϟ[" 7Í,;wBmlik덎=}z#T^jj M'kޡ8K& ##HmBvD"FC1h׈+Wʂ=9EDx6s2Y^\XX_^ނFcSx …NWrMM[hhFdNN6'U#>--))4 >>UU%P(EdBZZ(<%3̙tΟ-"#3U.٣a4++۷SXAPy,3qS hnNý@-39F''ZOo/˒*BBҸ lSTY\>-*ʕũ_g 99U CBvz`ݴ۷S΍\oOK+C1iie8^YYRD(ELa|U0 VxVVYcNYYDrrBC3^.DgeNbb#-s( O\400wΝ`(chw;wR3g6^=jLL+*_n!꽁I|}_ء{vSzfDН;[(}3x"(hTɖ-w޼ю>#cϺ8` ,8x $Y~˖ DDѪs2(,߼9 w>Gݏ63 ot͟Ͻz d`0Gz4N[RkTUvԵМH$7U `+CCE}}y))2VO`;NNV#G`b}}SN9MHH+g-{H$^׻fAA뗜:eI&М̬Cn߾󦦖:8dQnkn:(P zwJbn)evvЭYl⠠m==uh6PL#W>>ri֮鍓C 22ʓ1yy5ll̘̐&;@IIe@糮H$rs/\8_Ff0!7PPKk:#ɴXa}}eu{{_@@jhh:??[jfeU=4ZXhĢ={ׯ_r=MҨ o66QQn\!H?|MM-B"EQ(%JQKkTR1k4ǦMz =XS#/ŋO?pxp=a cÚȺ8|:ذc^ֵ-]ľVž\AQ#E@ED{o!HqzI}rgon9s=PXє_ cƘ;9Y ʩXRR{\[::*4w`" AAq'N<]znpZOݯuҒK_9 /gY#qϿz"!+E:E޿ߍa ?$VSz3hd۳e#:D|L@AADkdeH,UBB~4Ȩ662?n$oXvnWE+ˬ{BȤC$/y߼>˖\|>'"-$9vR$9FU`aauDďԘƾ}5ƍ?jpA >>'*>C.-uuRQQwv$q8ȃqG>ә7NpssmIZ#^̥K}I$v,j]];pJJj/_>jN1c>2vq{{ÿ  {<l #G }|"oߎ^l#$G/]Bph/V45lm\9@߽ y C!+IM-^%%ٛ7Wx.iiŋضm Zʙe˝򺀀4..{֬sў-5+FD쐀hO|Y> 2rnFF٘1Ǟ?bgg^>]M^ ȟE;6O|9E[fTp o]32RGi/{lIҥ/_߽K u hh6qI֨ m3>yWX%E$&-XpNobR"kkݵkMܿ-ߋ*+iٯNoR)ieeu**Fc1z9*+i1WD!`5kVW_(tH7$6YqqͩS/?[Yi3Sn83ϟ};V x=pJѡ1n s, ^jյ7o)Ǐ7b"FzbqĉΝsYO~~%"{Q>Ӡe|}+q113.\pZxx? &~{{FFiE_xG7 +VX't>SWiav~VZt1츸hJTTZRR>Zw#̆ 3aY#&QˑE#GX1ɚJF] :b0y̿sk`#M>u7?N=5h{}}w^HްaΝZoR_qBx> 7OrvvR~E\n}8t(ǏBNgXY>ujC6Ȳw⢢<%!]ԩuuU1_5aq왉މC -32RRor0@[m|> x! X܏JV=:<̌6̙vXL{x33r!Vftdqှ۬ٙRfP*]ƻwޥS(Fpӑ#M5Ɋhʕ+oS]]/Z4\VxzիquȅKffٔ)tϏ^EBB׬ ۵kƺu㋊j/(3fL{N|bq֯jD;b|͛RRO@ٜO3sժ1‘$yB&+\ V lJ>ξuCc#SJ q,N%$~Mx1Y[m>thaLZͭy+Qgμ6fґc?rr\Wg;fw)RT57l8b݃Dwem8CJKr3YYiorrF&ٳߋ iѣOVq&U9FF3SQQA&}11&&¤79l ''kl-L@bb.8P (bfdWݸ񾹑 pkb%㾖L& ar2c5EdǎO$X71RYYI蒒Nvuk 4aX{a4\g5>~,s'!hprr/߄#@ L6MV)(%74T34TsrF[Z`0;gδ)Lp!LJ ߯!};bi+3?>~p|د72R?ȍ23筛5MMҢE\\ikRw~@ G=}Mٷo@&8:Z5ȑ?jld4?-9D#!!m$pǎ=y-:rpȷoӧ3Sh$Ivժ1WDZ5ZdLfK9tIE-0pdjJ9X qq9zzZZ6y3XSSi,{!K 9Ǎaɞ= @ NzqJL;h9dv?~}PH|ٻ!Z ș3L n슪z12cc3##Z43fՎ|Ϲ-s  &:}vi{>Whuu=hb¾'$YI(/SSSU^Hk1;<-B)Eϼ*AdQݿ…0<oj1t!}G0O`6 AA=KZGZZIPPܝ;'Sg2l6岧uc"Ig_/K'"11x<ȑ8 LtM<?f̰XIPP\PP$~,9))_Dl游ii)kk3'}p8 ++>VOYODIgAXJJVYt UgŸ:Ν5Xk3Tdx!%%Y}4+ JOK+iprr*o u(>ƺuOw۽{ׯ11cǞ}u;66޿mAx/Ԣ'^tiy'IL >aK0̔#zax233rr*z7*'bW; -Ip3g^Ϝi'"slman <9))@$Ly͚s \rrSx8AN8q5r H?ȼy߼~BاODz6-..{X 'zRl}H$!C3Jɩ@߿eյ{(5ȸqetҲpȴɓnXmjɇc NI)p8=72 ֚57{tp,VӂЪE7B8NNN[\*+PFzƮ]37=PJ||`-'bLRݞfsz p'Z?|!2ro9H2g ӧJp8''Ǐ7=edkcϱ%f3z|rA\]];[BdddoÙHf6uT! $gc?ݻgܺzanNVX삂)S_JRwMk2Oz^p33RTIKS1@Vhf9}͚5㼽{x{8: 7=t琗NlxxEggW\dfb9{6tAffd@e%-#k!X/-+bN}=fΚeWMM1?22{35i파y"##={̢EF'j<YR(~͆hh`H_~֭[X!srr~VNCSoa##vۿGq83a+V<9^W RKUVWGF6t{'TjӥKZcr>,&hj) ZZZZ ZZ26mhh)"j`reğFllSg5H=KXk-|ݏyyL<?FfSS "_ϗ&qמ( Gmm-lnό57n(_4>Ά{'ׁt'N O~03+Xoݺ=޽{tѩBfff4 Aᡩ`0o޼׏طoŋѽ A'O 0@FFo߾7n@dܼ|d2 Ǎ :v0,--Տ;v ###gϞ 6TVVpm۶!bTTT>} HuuҥKtuumFӛ+vzp8۶m-//o~\Um1c ==Xfoob g]]\BBBϿ'$""iVmnj9fOx|| g{/;kj3ڷGپi=B5{|3MMLoff;ʨX ?NNMOg!HVՠ-f͚5q-[nٲ% @AAp̙츸}_<{,""B9rkϟ~={Xٳ<7 9s& 66PRRՉkjj:w܁{yyyzz޼yӧǏ{zz>}499ԩS)lڴiaaa%%@bbbccq6l(((Ӌ/^zuĉJl߾=,,,,,L]]!9F%%%jkkg1Ҷ&ci_ؑ#GY, 88ؘGSndc=|#'޾qRwqU QC4Wf gMfDDVE@dֻ+WIRӊ ˑ7NxY*15.Ğxpdz2#^7kWdj===p---סvvv,99A ;u뭪DWuu5écmm>w\ԧ66)55Fo߂]_`0ZF;`0nݺk."X]]}ԩiӦÇ͕oHKKPUׯD$ ɉSUҡ0 ȴiӎ?ϕ*L{`~Ag~k\߿ikoNH("ȹs[߽KZپ&o::[ہLD]w=TTTV^۷krsrrq8srrF---fffh՜9sJUU5"""66VOO1::ܜF1LUUuqq)ʔ)S ߼H$xݖ0{{{ϟ?GEE͚5>***""bR6mbbnnjj]܅*Aرc=y D$+- IDAT((h޼y$s, #Ç+**޼ys>!AgdWSSxV "**{1'E̲;wbw.R9?~23#n^42!1FZ`=J~~'Nm6n:mC_Z;:::999hKbb"7޵Vt:VUU\r̙UUU<7)SK,X$$$\xZ6mZpp0B8pCCCP#L&,tL]]JPBBB|||޽Fan[pI&=xJ2 "(//sy`0tuuu9L3mڴ/:88 &D… 7mڔg.A ;wY!s纻:TSSCUaGfX\xqg&G4[h)))nb@ppׯ? o߾VQQqСǎCvcpבvd_D͙)%E`0؂ii/yS #sPSӰd5/Xk3>d~۷oH=2hld&';8`-"L;v scD*~/{nd^x|ǎ.]rww>|XII~񶶶2(&M^:kk閖^b-AI .0Yxc}S߾b-ElDn^^/ ; t/ӧO嵵?dׯD?~ӧOѠe˖yxx4669aaahaÆ;|cwU+++ Ǐ߼yo߾{Ʊbcc#++kll|vLA&555&|д(9Mt`X700Xd 6})sss%%#G~FkZ$UUx ^憵{ ttYA ]EEECHKK_zرc׮]. طo@NoݺՍy҇?88BSSsӦMMMMoh|XTT34g#uDv'N\YId2"##UUUwե='sɒ%K.-))!?~Dh֎8 _A^zMW Z\\s;9>}: $i#,r84+//o1>|ӧO7 X_нM4Bƚ:yКW4C5n;^t/G>*~60V[ !![.]Z@غ~k!-a0X܉ZAF&2tKToݺ|m@' !HAl6tvsxوtTB62y@9 ͏16ׯ_lDڞvt m͉y42!AFf뺬֭KmK:p8ٳgWW|]vP 355m@kZ_x^Djf;:|u+-鸟CΝX IIy[?NZ>ޜ.N:@fffo:]P'o ݉<'gI@:sD%ۚ.vvvܷ666m5NQ!yyX @F뺬YYY<m+uVoݺ̝@---7؜/~뇕ܱZpO򖖖= m\Z NX "ifL@eoߦMWHK+Yÿbp8Ȯ];k]ǽNllL22YD.!헡344mjj*tA93O:9QJJ+edJKky>Jٜϟs`LyK''>}O>/^tvv䮦`gΜ111QVV2eJpp UUU/VSS޲e No$A&9j(EEEn40h8u#ҹ,B.azwepp0ړg#J]|իOZg ܴyMfccsuu5z#:uꔩQ$FkZ_d 5)S4OW?u|Å(t&EKqttTUu3~~~m1c4$$NNNNKKرcܭ,--UUUO86p.]V7nA`xxxhjjjhhxxx0 F͛7-^pDEEѣȿ?677ظqccc#FabDʥhA"OuB{uϓuu}"rvRAaΖ贎b˽I`œ]]]bcc~p!$&c-D9Fs80==ӳǏ?|p;vTUUw3gdeeڵk˖-gΜΎ c{{{_~޾/^|o׮]q/^|iHHȋ/y6B EZZ- Y0_)5_ 3!gQdZu-!!mw332rBuu,1j9Z$:2fh.ܾ}ٳ55+WXݝC@ hh(YZjGFZ!sν>ӧ#GTSSC$##t9mmm}}}wAUTT.] :yɓ'NxAtk׮?^__'Nx%~ĉq)((Pᡤ/2///333#Gj@$$>!0pve mHw:}֬O$117n AgC9k!m9{(3@LtI^^N훇.}@DSV! ϟ HPPмy^@3Lr3XɳzPhA@bMMM!qL" WhFiXA{/_~qmPc/>zp|Ik-mSVc#shuB$02?*3,'k!gԨQuuu111 -L>=y^]/# -@ A3SJ o'_F4SWW>EAo| ʕe#Gb-GPzx[hj`- =CUQ,b1>tPMMMn{+OɳD-Yh Fk O=ێ_;ٽ\Y6aB? ٴ6$w/Ɣh tcȄ@"0gΠ;w> 6x{{XZZ9;;7Yaum۶mݺu&&&N:y򤺺:JJJǏ=qDq3 ĉM6eOOv!+g&zcׯSlΔ)CQ0o݊e&x'"66yWEEGmmCJJ('%$oC]_F6WUm&M|inaN,ׯ'N<߱cXkt&X FfIJ%HڕLTSS&3Y[|T#S$''{zz^~299y޽ׯZRPPС"~wss޶mדɟUV"#9̟݉cG %+>Liݺk֌ZKPlm8.K"/stfr8_|[9w C ѣVVX, /K_H$`-? t.C Ν޾zP\*bccX ":8 hGeA #4g&H M*ϟ'o0vKK$>XqrGd0XYZ7@z-Ӧ80`qD@$yyi{{C{{Cn 1۴_ so|p**jhhB'U}}|}d9=*t $H2/=tɒ*\\._gj.0 k!@#X=NK+Z(+KZD2! F5G6gGGSrs+܉EgHIᵵU WPܜle$1iHO3`IKΰt?$4X,ξ}o9} X8U>l6ѣ FFX_ o H2˗qw?3X+ H$qƍdge''effWVKKK1,HrFFd -5CC5ss-d"g&Qf{>)/f%i>d.`c#0QQiW_0@Օ{?\P\\/Ȅ@$]];woߎ=zك;vLA&+;9);9YokkJP39AᔗW=z__HKKik+4; ՠ =ڙp٘ QIH]O]]ͺX8ׯۻ̙vg804[^NUOH< ҋizy{2vEI|<8B5eeqί_ RRmme2YIVVdW540rrFF}ѷ:.ԁH$ޯ\q ^^/?O޽ׯW;U gϒ6m`|Ru6s׭ktq=q)#G~ZM : }|"oߎ^l#$(MX,NffRB$'$$VVd2_?]]eeyeeT 4;@$ttT`-Dh#GFEz[vv: IDAToԁ-v<)) O$K5_3**i9sb-Vz1c,iĀ@zٴiˑ/GE/Z4lѢaXK@x %Gtr[K:)OrKQV77'/X0LSUUA*SOOUk@$I $ ΝAbhUhMoE^(* nH{@O&ҫmv-& CqqÌrrX@G`)(ȘhmlmlUk+sr*+rr*PSFFo_ ##u##5CCuCC5CC5=>p2D43s׮6tc۱cO f||J;5nn.,8rÇ۷߷知d2ro,Z= @DFs)rr9sd}Z_QQZo 0CB\]92WbUTYb6@#چkbRSLL!C{H/^\WVV I66?Nss2=mͭͭ˫(,f8eeyDcn0"dܴVm-U]ͿbN@ݻk߮$)(vw(m [kעy|H^F]4Ȅ@ <}<ٳ似J}>ӧLn;p!6!@)B"ZXhN;;ӘLvQQMs372'Jmԓk!*!"g5lʕe]ڪ:t3gu&Ν^nteǎ@+Whb-̚uP]hdB HN,ٳr--SmƏ1ۄH <+}5llPs= ɩͭ,-V %5>?JLC\⪬,]յkD&VQQʕWss+/^\0l Z Ljjbc3?|!#5A,,7qp06DSSbB ҥ"RZJE Nnm~~UQQ HIᵴuuUrOv@_gG6n99FvmHg]{\xpIFޯ||" {oFFX+,'Osc|~O$@#*̏bc3Y,F dhn/ɦKSJi)5Dss+KKkKKh)--eṋ& } #o%>:3mmӊ;Ϟ% ~~ч=6]%wq `&#L߾X t hdB R_sǏYqqىM 2vv hhoo(KG nTLTjcQQu~~UaaMaa5/? ii)=>Omm"e%>:3MMw92w¡8ڵ:(N[L`gWYY%Ld}<2YkE ..{֬s^m0@k-NL"$lRQ ڠAY[**`-,4Zh!Sllu[`255UEE5?sHAAFWWU[[Y[[EWWEGGEKKEGGEGGV}DD_ۥKKfδL{>m~?.n(<+|.cÆ))KA 8,##矿t nk!L T*=!!7>>˗/_x\߾llH$9eB EŔzЕ)=ܖԢioܜr* %Id!dd"_Mff;VoՙӦ12RjQMfsΞ}}lI֧O&Ir==~(^v;I^ vhh`۱cʕc,X6H$c- ~-˗#elj\JG@HI-,כm^1%$$ݫdem(.-(.)-)-(*.ML+,h%%YmmMM2jyji)$$Uc\\jtzYRR xu\qqͺu7Q%VIQTTsGF4 nj"aɗ&֜9Г @Dʄ$z;nnec׿̢ xTWLї% MRMMCqqmaauqqMYZTTS^^W^^AQ E,D"*Fb33'bĈ#\e˝p,c_m=uuEVV* kעϞ UQ߾}y{C̞}N[[g B ]z2!(,?tСoߊ~(NM-NI)| Ngx5kkKKm++++m5 N靐Hr t:Ǐo =KD"Ԕܿn: TQWQy[dhhmi)y[ZJh[YYu~%I$C*=wf640Y \QA{8ȑ/hM={CHF6s'_mۦ\9׆deܺ%ZX!=D,AC )ᙙYfs)Zjd - m4 "ٜo SR QS__?]kk‡`UWsMPnRjII w(HGLVnn6Q,=tf~={/_t8'Oy?q㭺Ɠ'L:@ /^|=qyvvp}(`- Ky(ӧ0AF&ii%JIzzizz)R_ ifF63#ȦdhvB$Sd--涶"+RKJ~ky֖RѠ\&vVTVAWjjdr/Pݓ4o|_Jf3462sQ۶Mdϝ ={6tӧ >e=3lwfl"a8C2C7HF&LLvVV9RWVB75d2\ wb`fnej B$)+kv ))jvhm()QD_VXaՎZHuW߽edH׀F&-0ҬҬzjPH$,B)AkÛրҦi6Kt+¢ (>W>YTED^PA"+xE}\* 4i$6JL&a6o{W.ՃgLIHńC<Af{f>Ȃd@ mtg&.0sulC!+4$?t=T_|RLLg;}`#N=H y.mݢvdu{ǎmp P?˅KFXBaP|݉CZ'$IrӦ3˖W֭|YkxpȐ}cںQƍH$ûuC@c@O&4ϓZA'<tyyK ^V'$$ێ^{_,&>" DKJL(>5P BיĴe˴6vdذ[L<89Y[ sn?ƴiC١;Nk+**1̙zlFSnߟ4i@뗘Lh<[\\Q=S"+Ԧ!鵽zEt!PAũFDT u1270:-W=:EP-[ξ~FDDȧثW'm7~)9n\iӆ@غ{1-msT(Dmd@3 P)=#O)3&FG|@g:]Ra+ZvvzhK8;ү.Rs^ƭEck|ܯ߇+V}GxFեorx!?9Jge3v;̙OtW_mHd@+qب՚+ZS\\K !BCyJHED("JTCR~'x:%^u;/4/Owbay^{N_]\zj..Q@K,%zDU*1}P̒ӆ 76V7HJ ֈN\Yr{ݺlf\x|~{lC> &w?9#|/[ҥƎ;rd&:[N4sA Nݞïц} Z(|)گRsVVq^/%IR JL agbbXRJ/$I 6KYKK-U3 R62@*B h۶O<4jT/K]7|ofͱ?d2BnHdGF>pTʗH˗[iRU6h-q׮igޖKO1}Ўڍe[ۼ1 R@mvȜ={ B(,L4}\N-S =  Ƥ.PFcjM&ӝ;/PT0B!ĝ8N*ohЮZZy^ۣGHSVf--5 6l0X;hnn H*;d2L!RuՃg''7sZwߝ7fժ%{~ںu:KǏ߱05kXq D0A^"?l<:2C]~gIY%ŐHJH*+bTe2~XP.<@{^{­JDKU#¢BۺVkc6BmBђ'Lƹ:mc3g $I{Ϟ=*\ 9hnŹhѳ& ?(uȐVSU]J bu駩$9}\d@<GFFe)aU?o~}6K~TZj;25zK$ǥ ޳gfϞm*dh^`UTt:`-+J\`WRt86΂T 兄㿡r_*~jQ>̼5th(.33oC3 ojԚ?7Xb ;wfwd{Gm:!tK_'w9sA¢[4ciČS'4#5o0V(Dr@BPrJ%HMIO=wƛoTVfqQQgμ緁=s+e%?'5r;6[ mیGmV @+x|V<`++r}`ۨ  N* HLͯ@u~dpٳgLƯ $IǿkW xz ծѲnᢧ̚2k_.םaBaХKOݩS6,gmۦ{mΥof_ɮ[p+**uJY"J H/JDTz-; B~rz/zQQyK,aϟ/?kdgkƌnq&;履HmpDk2x# XvdjuC#3g7%nO?n^\Rb:E5t/O H*"BPŸnw͞@Ond2,% pliwOII~>o: ZO%A|3qԨm$td`***+**m`UTTVTpw(^<^D  ᅄ\88$$X,N_zkZ+Βt(IDATox%@!˖:G/}/fg[Ի+1qEX Kwp}EyygYpe)A O^B~z++X5D\\RbhN ۫i.7W7t L8q@6 4:!i0X+*pYYVfAiEEdǁ(5e(DPy!!!!<ېO۠r:׮hrr4ٚK*+!*d2^ߓO&hI[[?z& /^\BV_Pf3Ǎr?l!6ѣG 0 ȑJK-K !LA^8xpNte rvśonx+A* T*1[Й3~"pod[4, #ptֱ3+Jn4ڍJ@TFc%=Υ"ѝ@T,D8YF;ݻwdޑG޺eHK_+ p4﹏??v+H=KZVfx|D!C.^,x|SABAJ?N{z+ar^ "#CCս{xVκsg;n_ҥ/@bXYyM8 ÷NMg4V"͜9 "NL(!SNl7ѡ^oә< }/<^T( AQ(& t:V۷Opb?ܽ;s#FR%<ڰa+TZj[Qo%'KI8H(++~!Գ/TV++?EIY,F.Z$ҧ>!d08~%9vEunwGGbbJ%lՙ39 6\ZAl[nRi $IVvj&jbcYf JQxxB!T**.A$-qĉ Y23KFNhư{Z @XF/EvɁ!lP$7/0ޏ)<׳gDI999nݺO.3k0\n@t$9Y'E+@XB$oUݱ8a!>xp}Ǐ'''dW`VTpmiRXX^ZjS7) л)if\{A<^@2gPqjL@\]2m;2Q4WRqJJUr( dኵ2:nyɓy:&raa nDDHL5#B%"wܶO*>^ތ A&Щx<^`ptVbqX,N*Z6bqZi2ً+V4UiH1cNP* |>'8Nh(x\). Yڵyvϩc]*x|ZP aBf|uܾ] `)5$FGK{o5#Ąg8]Y xO*:n}7a6HڍF;H` pX;0M/YoH>7Le=$Iھ=$'^~y1w j5ztZVk<|8p) +qJJ%VDJ8;boN=zql>Qvis?h j#j:m*͉f;A٪qlN!@/\W` Dr8?2xBo៶UTTx׽YAAA||!dW}?@|ըc{>5uƍ~ H$zwj۽w .LKKKIIDf7Xxq+Dӧcbb^o^^ާO+WD5sk͛7N:%Go%No]m/|^T4nZ=+[mO,L @Qg?Ο9tVK;w-W^^%\?;| ,P(ofJaaa!J5dȐ!C|g~;Pddd5QXXkGz o03YڞXЙM-8ٜLAl6!&7ƍ~ak#F$0ܷoJ2[&$$TVV"nyrL&7o.(( ѣǏ_xqddT*4idGBhjteӦM!S!888(( } ;B( `Æ ?ׯ_a6][#Ҫ#bkmǡ_WyḸ8X|r_####11Q&UUUո))1_L\ 0 n֬a۷[~ȼ1c=Z[Cw^wʕ |>Νn޼966V*Θ1nW?- 1Xq "bB1+"bR9;<|_Ysoz8iҤɓ't:\~ܹgYZTTէO #z~mɒ%ݺuʺr#<2wlk׮-))Y,f[re6m"I ]INY`Bhҥ॑$ϧ133S$}vnmǤC=e!0|𼼼g-Yƕu? ǎ+-:.թP PRf?GScǎ7no\xkO?d{jRO߃x ,X\oq]A&:?ܧPݷ޲_f-dpZMBJJJ#Gz?gee$gիW{UTTO>h4|>zk=55llI|QF1 &ЯE//ȬxMmǤC?~$I׋Eo?I۷oq%YN\sZuĉVo %$$lذ~ƍuw그ދdtYtT3f =thNvի?lOA$M:5''gƌ[n) HIIy&^*,,kv:zǎ;{lxxO<`0jfnX;c^2f'%%ױf3W7gΈAy&[s^zQ/juGߗxA;w Uh(OC˚۷aÆS+% b4Ϟ=㑍J֭[x_lٲr8>oΝSLy***jСC#G7 4MCowVrA-^xڴiA-wiF5ky智ώ5ǣf<Զ4B&::˜:F/QQ5LY-!^}շzk֭ߏ׿ naaaVVȑ#k^'N\hNǝ9s&5F>|ݻ-b\.322Fg-_|A?umIw'Irڴijzʔ)t\[o¥t:F9qѣo޼9gΜc[lMuovAAAff… 'LPJunLN>}޼y:СC׿8Zzz:u_^~e԰[ ڻVLh _r$?+ XqL2>ºu뢢$[op8j\Y kȵW5g\2...88G}Եܶm[ttL&KOO"~aN֭[[7xϷ5Ǔe2Ys79@,fA&$ir L&[vmCVZ     Ǐo놀 nB իW^m4{$ɶn@r:V[:PAL3.[$k? l l l l l?{9;IENDB`XQilla-2.3.4/docs/simple-api/classAutoContextInfoReset.html0000644001725400016040000002455713273140074020655 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    AutoContextInfoReset Class Reference

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoContextInfoReset (DynamicContext *context)
     
     AutoContextInfoReset (DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition=0, size_t contextSize=0)
     
     ~AutoContextInfoReset ()
     
    void resetContextInfo ()
     

    Public Attributes

    Item::Ptr oldContextItem
     
    size_t oldContextPosition
     
    size_t oldContextSize
     

    Constructor & Destructor Documentation

    AutoContextInfoReset::AutoContextInfoReset ( DynamicContext context)
    inline
    AutoContextInfoReset::AutoContextInfoReset ( DynamicContext context,
    const Item::Ptr contextItem,
    size_t  contextPosition = 0,
    size_t  contextSize = 0 
    )
    inline
    AutoContextInfoReset::~AutoContextInfoReset ( )
    inline

    Member Function Documentation

    void AutoContextInfoReset::resetContextInfo ( )
    inline

    Member Data Documentation

    Item::Ptr AutoContextInfoReset::oldContextItem
    size_t AutoContextInfoReset::oldContextPosition
    size_t AutoContextInfoReset::oldContextSize

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_func_0x6c.html0000644001725400016040000001527413273140074017412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - l -

    XQilla-2.3.4/docs/simple-api/Numeric_8hpp__dep__incl.map0000644001725400016040000000467113273140075020034 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_33.md50000644001725400016040000000004013273140074016361 00000000000000f247fa45c61fab19fdf538881f95dd17XQilla-2.3.4/docs/simple-api/classNumeric-members.html0000644001725400016040000010427713273140074017611 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Numeric Member List

    This is the complete list of members for Numeric, including all inherited members.

    _ref_countReferenceCountedprotected
    abs(const DynamicContext *context) const =0Numericpure virtual
    acos(const DynamicContext *context) const =0Numericpure virtual
    add(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDecimalString(int significantDigits, const StaticContext *context) const Numericprotected
    asDouble() const Numericvirtual
    asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDoubleString(int significantDigits, const StaticContext *context) const Numericprotected
    asin(const DynamicContext *context) const =0Numericpure virtual
    asInt() const Numericvirtual
    asMAPM() const =0Numericpure virtual
    asString(const DynamicContext *context) const =0Numericpure virtual
    atan(const DynamicContext *context) const =0Numericpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numericprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    ceiling(const DynamicContext *context) const =0Numericpure virtual
    checkDoubleLimits(Numeric::State &state, MAPM &value)Numericstatic
    checkFloatLimits(Numeric::State &state, MAPM &value)Numericstatic
    compare(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    cos(const DynamicContext *context) const =0Numericpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    divide(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numericvirtual
    exp(const DynamicContext *context) const =0Numericpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    floor(const DynamicContext *context) const =0Numericpure virtual
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0Numericpure virtual
    getPrimitiveTypeName() const =0Numericpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getState() const =0Numericpure virtual
    getTypeName() const =0Numericpure virtual
    getTypeURI() const =0Numericpure virtual
    greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    INF enum valueNumeric
    INF_stringNumericstatic
    invert(const DynamicContext *context) const =0Numericpure virtual
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInfinite() const =0Numericpure virtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isInteger() const Numericvirtual
    isNaN() const =0Numericpure virtual
    isNegative() const =0Numericpure virtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const Numericinlinevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    isPositive() const =0Numericpure virtual
    isZero() const =0Numericpure virtual
    Item()Iteminlineprotected
    lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    log(const DynamicContext *context) const =0Numericpure virtual
    mod(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    NaN enum valueNumeric
    NaN_stringNumericstatic
    NAN_stringNumericstatic
    NEG_INF enum valueNumeric
    NEG_NUM enum valueNumeric
    NegINF_stringNumericstatic
    NegZero_stringNumericstatic
    NOTATION enum valueAnyAtomicType
    NUM enum valueNumeric
    NumAtomicObjectTypes enum valueAnyAtomicType
    PosZero_stringNumericstatic
    power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0Numericpure virtual
    Ptr typedefNumeric
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    round(const DynamicContext *context) const =0Numericpure virtual
    roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0Numericpure virtual
    sin(const DynamicContext *context) const =0Numericpure virtual
    sqrt(const DynamicContext *context) const =0Numericpure virtual
    State enum nameNumeric
    STRING enum valueAnyAtomicType
    subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    tan(const DynamicContext *context) const =0Numericpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__dep__incl.png0000644001725400016040000000665513273140075021414 00000000000000PNG  IHDRpm.bKGD bIDATxyPSOU)L+:RaJ[jQ`[)c:оʴDa @[Y 8-BEBB/&!ﯛ/痜{&!jx0w$HHh>MMMUTHdrFFƆ "/_e!%,,lA8iii+W$ZZZ" H$$ DB)"9NddE'Np8dp8"F'x=:<Νnzz://===啕</664***//o1TTTLNN|>… x|~~^*Jҙ@*P%9sf~~^oĸ˴No۶@=W\IIIٴiV]]]Ǐ/,,Dx:##믿t钁Q(bz͛7YߥT*o޼b\\\:X[[k.;;۷.fׯ'&&:88uwwÇ| ( Z-Ji4Zppp]]N[$7D)88L&'66v˖-VҪ?""`Y>J[P( "77wffԩS|򉵵uLLLNNNYY٧~z-<111\.?&Hwӭaڵ C$1 ]h4Zjjj~~Çh4"54 ԤyM={ۛXr4??O \kA<8]r%""لD2115zOxp"BrXZZ.&hHd2?M$HH@"!A[j l`x1^bP(mmmHp?R¼NE&|ۇBP(io2w- "T*J%WUܵ,/0ɔ} JPϛr/"oJeTyyYV`YUŷ d2 Z7n _U*h޼U-Њ~RiFT*_o=hEVVTQkbV8Ë;:0w$;:gUղ;=JȫW{^z0ի=+_ ȱ1A_Vƴot>ɉR}ɔ:gJ&[l-?hB$HH@"!$HH@"!$HH@"!$HH@"!$HH@"!$HH@"!$HH@"!$HH@"!@h406mzN";Lq,cc;vػw _u@HH@"!$)rxx%NݍpHaZr)d8qYNaNr爥Y[[$ sssq\OOO+++f|i2oٲ`X,z꼼VZRZZ \I$Rqqڵk333KKK7nhmm})eMM/gd2 "99yݺu hhhpssX(SZ2x|GZn]WWZwppzk|CCCx"FEGG>|9X,yyyEEE E,:' "(??#ePP`gg[zzfӧOٳ?SRRtwDOͩ4<{</FwXHPf_y啒ŋ dw*o9@ RgϞ ΪT*-|>_Vr!e?ޘ㹹iv𘜜ķu硥EVd`8V&rYL&366v``ȑ#x޽{D/}F ޺ukII 'N6{- beeRZ6m7<<<5wX,|WoN-"rll$%%'' R4<<<99q(J1 z@ ]dĭkP(7aXtttBBByy7555SSS?sJJ$2L.h4T}H$RPPPeeH$T*`[jbbpOOɓ'###5w}{pp?6! cbcdvvk&jO?b\.ꫯ6nܸzjK.HZ}9[[[gg眜}988h \]]i4GMMVwqX[_>!!A*jvD'9g:y*Sf9M:A={M2E1ʹRy5P׀^۷ ߿?\qq{{˗/+7+((x[[[ݻbr\sYYr2Tr PRRhpƍLޮ3~~Xf *k`jj6ɩ.))4,`R:K$sss{{{&YYYIO}ZC2$-,,ԭ]*ݻ^:u*} V26;)1Dzw~n0 0 0 ȴ{Ꮡ+ZylӦMގbltbiej==z9%?Z ^gH$bGɠ68uD"w9^bm.w93gxR L `2yzX*=kmmoIMLz*~wWg="8'T*WL11"=d =?X*˕dTnmU_%cOFJu⯈33K SQ'Cѵk2r9R Q'##EQEEw/pu2RSd29qES7z%_&Ksmrc_Cag&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2&a2Y;/^|WRia2-MM=/޽{=GRpn<~կ~SO_%<׏ x0 0X`0]E_b,Pd0dG黊>1epppG%IXX= H$`0<=="""?>tP++;v^{Qbbl||rH??wro߾n(bcc @$EGG@CCV1|}~z @@gee7n\\\LQTGG0I1|ɻV]]zrKKK055U6Fwf+B0??_ #MFKK =xΝ;\.w޼y}~ 3F WWӧ+ wﶴ~Wǎ \gP~8b.^niiGlagt 0 0 0 Ȟ3zމL`2{s$ZOƤI-[&zOC>z,V/N:>Em ɹr uPؚW))EP`2Rz~}}~1 ">223K\adÇ\^M_oTrr+2 HMnbq(޽{-`2 %P.+FY,ӧoa(/uKwT'OƩSŦL)o$aHN.HT?55e ŨbS"%'FSȟ6z Q'#-X*:`F}B=y/ sg ~DFFIHȱOyjQM D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d D@d DۿS]]]X7 99Y߅<&9p.-[LT;3d2RRNb T**:a2&a2%O?e0zDEyy9P77!!ARRRz$DvRYYf{Rm]p@ W\zRkbiYZZ`0[>Q:]3f͚5gg<8q℧͞={ 44tܖss7nhdʔ)@655l6y˖-mmmZ<=="""?>tP++;vD*٭\I뤻:}ȑ#9Nhhh{{;H$0{{{&HvNs \>th>C///,XdP(GJ$㽼rNTAAA\.wԨQv(bcc @$EGG@CC{zyyq\7y-[(oʊumΝ[VVFw].;~۷k~@ HF~~>jhh(CQTGG|Tpyϟd2Wz4--͍^Kqqb-|>_ȑ#eo޼$X'݆m<<<=1++kܸq^HA"!!A**_'&&&5vrrSSSzd.^8--m̘1Ν]vB{L&>|8=VSSC[ZZ*֢<Ν;RW'(: vttT4suL&KLLܷo_6oL?!*'%%M>i:3JzbO_Suu5=\RRgin߹N}2:l6OVPUNHOs6a2>TL)**?xR9rNLO_|oee%ڹs(1cx<7mڴ5k(oH&www%KTWWN}=qŊ6m֢-[899YYY B5_I2dްa]H$ZjՠAlmm׮]ڪA3dt||r]]*uj=^HA\>ڸ'OMJ Y]v_~wfϞZ4!9p` 1c֬Yb'**J/sgf#o6[? Ԓ^nsUh˷~AQT{\}b:u\Z & =)oެw9E%'I$205e"ɀ;oK$^ HO/O%*=c =2<-:}*2O'%~Sc)L%+ؓr*D/ahoffv> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Ls'99999Y}f-<<>U0/Bw 1#99իZV,-;b, !!@1M:5))I=tt32@d D@d Dd0\ݶ;rĉT*UiCB\ͩ붤gۤKW\:tL&+++ۿy<5qeeI4t6.W3gܹS]{>e[l1cT*ULiiiquuvݠnDwk( #$$G333#""`ʔ)@7H$aaa',,L"@||Ν;/BXXX|||yy98˥K5myzzEDD?~|СVVV;vPQhhիᖖss7n:}ȑ#9Nhhh{{3usZZEZ[[S%y睚xSy"FFFݽ{?~BUVte{{{z_=;;ҧ(DXD@,EQx///\N;wnYYY~~ۮ]4w1￷d\!ᬬqƩKիWl68U9Eutt ew.@]RE͟??""BFQObbn5֬YMl\]]vpp())3gr˒ &O_% +@]?L&siiicƌ9w}ࡹ+ ynuP3(:t?Oaaa$tBa~~>}'2_Ekmm7o=k{X:IIIӧOwvvVLPVV>Q__.Zjaff&^Xx.;o޼vYWW{Y>>y[N P~'XByƍ ?7|Y-:C_ zb}lll^|Ńr8D2}t H$ZjՠAlmm׮]JOoiiyFenn{ǏSj^IjPHLLv-2+U[[[mmm\\ɓ']30+صk^~wygي _Q]c͚5Q{'**J/<%iٿЛo9R4<<\_!yf绛ʷ"FF 3&a2&u5?pȑ5k,_駟vnVSSs~^Zj>>>>~8C۶m+((=z5k̛7Ϗ~gzX,7o+W*lٲ/]i^T*ZhѢERgϞOF}E$oAyq\bŊ_ru'fΜ9L"ֺңbX,999)ڌ5J,WTT@kkkqqis___YXXxIzKfKKKS,xڵ[ƪ;8;;ǏwnݺYf]|Y&˗ZZZ>77wIII۷oww'X#课ȑ#}}}sssgNaaa~&NH\<55511qڵǏ_bETT潣Nwq֭3g̙34DEߟ:LLfΜIP^:zҳRivv  jժ,zֿo ^{^KU/]|ܬy>jkkpuԨQ,sΝ ^  lk׮Vl:gΜٸq#6lXpppAAqW^yE$ݾ}Ο??o477/X@ٳݻzjSP(a6 > jjjY,VMMP+IDAT_~)OV3f 6XXXؔO0A#F...]>>|@ _Ι3GúbMhjjjlllhh(--ݱc@ %T*eX0fLvرs*:y뭷B͛ jjj.^n:6|(r0cƌVVVnݺԩSʞ8qbKKѣG_`C._XPPP癏ǏWsNNN999ī-ÿ曨 6=qof*|||N>h"7np5k ̙3eXYf?^TyqSSSDrСG >|ǎKge%%%-]'=bccHƎ* 0 WqׁĿ%cҤI˖-?qFΎZC/hx0 0O]Uq(IENDB`XQilla-2.3.4/docs/simple-api/classDynamicContext__inherit__graph.md50000644001725400016040000000004013273140074022411 00000000000000feb110955ea0059528ac7798b1b39e3aXQilla-2.3.4/docs/simple-api/Numeric_8hpp__incl.map0000644001725400016040000000111513273140075017033 00000000000000 XQilla-2.3.4/docs/simple-api/classReferenceCounted.html0000644001725400016040000003244713273140077020001 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Super class for reference counted classes. More...

    #include <ReferenceCounted.hpp>

    Inheritance diagram for ReferenceCounted:

    Public Member Functions

     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Protected Attributes

    unsigned int _ref_count
     

    Detailed Description

    Super class for reference counted classes.

    Constructor & Destructor Documentation

    ReferenceCounted::ReferenceCounted ( )
    inline
    virtual ReferenceCounted::~ReferenceCounted ( )
    inlinevirtual

    Member Function Documentation

    virtual void ReferenceCounted::decrementRefCount ( ) const
    inlinevirtual

    Decrement the reference count, deleting if it becomes zero.

    unsigned int ReferenceCounted::getRefCount ( ) const
    inline
    void ReferenceCounted::incrementRefCount ( ) const
    inline

    Increment the reference count.

    Member Data Documentation

    unsigned int ReferenceCounted::_ref_count
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_43.map0000644001725400016040000000045113273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/DOMXPathNSResolver_8hpp__incl.md50000644001725400016040000000004013273140074020703 000000000000009c69ebcc706e4af8debb71154060ed57XQilla-2.3.4/docs/simple-api/classBaseInteractiveDebugger-members.html0000644001725400016040000003152313273140074022715 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BaseInteractiveDebugger Member List

    This is the complete list of members for BaseInteractiveDebugger, including all inherited members.

    BaseInteractiveDebugger()BaseInteractiveDebuggerprotected
    breakForError(const char *message)BaseInteractiveDebuggerprotected
    breaks_BaseInteractiveDebuggerprotected
    changeFrame(unsigned int number)=0BaseInteractiveDebuggerpure virtual
    checkBreak(bool entering)BaseInteractiveDebuggerprotected
    commands_BaseInteractiveDebuggerprotected
    currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const =0BaseInteractiveDebuggerpure virtual
    disableBreakPoint(unsigned int number)BaseInteractiveDebugger
    enableBreakPoint(unsigned int number)BaseInteractiveDebugger
    findCommand(std::string &command) const BaseInteractiveDebuggerprotected
    getStackSize() const =0BaseInteractiveDebuggerpure virtual
    interrupted()BaseInteractiveDebuggerprotected
    listBreakPoints() const BaseInteractiveDebugger
    next_BaseInteractiveDebuggerprotected
    outputCurrentFrame(unsigned int context=0) const =0BaseInteractiveDebuggerpure virtual
    outputCurrentFrameQueryPlan() const =0BaseInteractiveDebuggerpure virtual
    outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebuggerstatic
    outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebuggerstatic
    prevcmd_BaseInteractiveDebuggerprotected
    queryCurrentFrame(const char *queryString) const =0BaseInteractiveDebuggerpure virtual
    queryStarted() const BaseInteractiveDebuggerinline
    queryStarted_BaseInteractiveDebuggerprotected
    readCommand()BaseInteractiveDebuggerprotected
    regexFind(const char *regex, const std::string &str, int groupNo=1)BaseInteractiveDebuggerstatic
    run()=0BaseInteractiveDebuggerpure virtual
    setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary)BaseInteractiveDebugger
    setDoFocusOptimizationsn(bool opt)=0BaseInteractiveDebuggerpure virtual
    setDoLazyEvaluation(bool lazy)=0BaseInteractiveDebuggerpure virtual
    setDoProjection(bool opt)=0BaseInteractiveDebuggerpure virtual
    setNext()BaseInteractiveDebugger
    setStep()BaseInteractiveDebugger
    stackTrace() const =0BaseInteractiveDebuggerpure virtual
    step_BaseInteractiveDebuggerprotected
    ~BaseInteractiveDebugger()BaseInteractiveDebuggervirtual
    XQilla-2.3.4/docs/simple-api/functions_0x71.html0000644001725400016040000001242613273140074016312 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - q -

    XQilla-2.3.4/docs/simple-api/namespacemembers_func.html0000644001725400016040000000362313273140074020044 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/simple-api/classFunctionRef__inherit__graph.map0000644001725400016040000000044413273140076022004 00000000000000 XQilla-2.3.4/docs/simple-api/examples.html0000644001725400016040000000315513273140074015340 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Examples
    Here is a list of all examples:
    XQilla-2.3.4/docs/simple-api/Node_8hpp__dep__incl.png0000644001725400016040000006654213273140075017333 00000000000000PNG  IHDR<P43qbKGD IDATxy<,TDvm(Jni!mu[6B[-*u~{q9x33|3ad I Ȁ@dP lRPP@tDKKɓDG A@[HaÆH+--ȀcpNJt]ӧ': @d@ 2 i HZ6m'iӦqO}ǧrrrrrr!!![l6lXNN>eXXXQQŋ\SSsС޽{5-\lYׯU0---WW׳gϖr L'O֯_>x+V<|0**jՓ'OVRR?~+>7nܨ2xUV%&&6] B/\fÇ[(" zZxƍ񒪪*6YVVF"tuu9s <Q\\xbNyϞ=.BII !D" /++k(HZ#H۷owrr{.^H& 훲ԧOttti}9uꔦ&Bt+((3_~~>՚+" N5kBCC?TiΜ9STTg???33 \p˗W\'wʕ+I$UBǏ9r$Sfff[nmll1c~2?7B<-@H$}4Iaa#u| [? NgϞZ." @(((lٲ-@A 2 i HZD\\ hl61TT(\"!T>wlj(B..Fc^iz:$C& {HdBR$w~JKX5ZPUUTg!k0F} hG{YPP޹@7hI^^?R$X,6H$DPΝsX`{{Bii[{˗$)+˛51ћ8Qwahhł߾\BQ(d)))C_u!,32, iiL&!al6ַoωuLjl}F67lNSQee5n t=hżyF}?;GRTUDGox*)aao|)*ޮ54.\X7ϲXl<դ}H@I޲T*<*b`۷P 9"m{k6MӦ/[|IKSx%&]{}/>559=HMMDDlPR%"bnJ@%[gݦ!D&[t)N 43*ŋO32i:x1Տg2,L1'NR]7'bΟ>~,*2}C'dӏVUs$R)zz˖,b]Gnn١CwGpwQ YGlj!'x"H7>}ھ2B(""EJ?#))JttjRVw)$P^^ٲeS @ұX'O2}}x=`; MG^`6q#G&viH/?PSS1)i_*~wd2ic ز%}~B֭ĀEE'Mst8ol)% Ɯ8QKJM:o)oݿ姟;P'a˗~0P Fc?'v؁'OԯsI I<2򭬬ʕ ˭"<=#_0,r*qdAIHZ򠠄7jj, tv qpw^zP w/MYYnqVwEtt]>8zr,Cg XuuChh_+y{/;רdȉu\|#|Wbq0 7RR G9;FtP…8uÇof;w!ih4_tYrr:3g?~WG>luRL,nHm3g~ j"x$s۶P:Dt8zZt9|G2TU{;9,_n$Ot\ MnVjf61+U>D%@*+ Mzo'Mst,Et{ZϞR[K۽{DyK,nJ.X0j)v4ew<׎bbҏ+:zZƌz{ӌo/#+ ,:H zZ[ٳa\01@0rsn|__O=aKcADȸq=r?q"fΰ{Ҽ=-:b?yŋ&MQ΂"N=-͛oTurL&C@ܺIz>>K3P`hŘ1>t?~IAȀ@>|+++meeriJDD uڴ香-[fY3\mI EDefi:rlRDDmtccb>:eBtP)zepk&en>iCCM@Jn݌ 6o9֭W'[I f1A6ʹwg`qc ӧ11уA@8 &((n1aA O۷'Kû\S us vu}-"0SN X[[q@yVVVDG 8w 2 i HZD$-@2pKT}foo?p@yyycc;wt=sk~KGYYI&v`ݹ@Ғ^****((=z߉?rss9VTT5JNN.$$$11.&&|,**JKKӳinXiۧ0]ROMM !9uԩS:ujD/6]QQcڴiÆ +..>~ٳ jjjǎSUU-++SQQ̔zZD"^?˕LGtRO}>5Dr劁A~9rAg޽ ]UUUEEݝ`sرc & !t7r燿{.SWW?rBo̸KWWWQQ-ăg.#GFF:TEEeÆ 4oa'4RRR}i|qttQ=|u|ʦ8Eqhixkq_x[/ U!K3fSZZǏaXvv6pFUWW"kk/"1 ;zŋ~6z;vsYZZVUU]|!TQQ]gUUBǩvrr*(( D_󫫫o߾rH>>EEE~~~T*㷏svl "##544 YΝZhAյYNP(߿uuuddd[HZ)))xU<?|pȑ\SrYYYqh4Zfffmm-z>;ߘ=}0rH4MlNٴ744[nUVV:;;WVVǹk 3f '4q%)ʊ ={faagW))) 6|{qppXdݻ߿~˗/!еkתϜ9E;wKZZڜ9sΟ?ĵC={lɒ%^JKKۿ3gTDttCCBo Ǐ-7$%%ڵѱB ɖ/_~w~ǎK.;q޽kjj8-2a+V3K/oZ$LSuP999zzz< –mjUŋˈǵv 2 i&{^jU[ ]@MTTT|||RI Ȁ@d@ 2yZ"/>>"nft N/+TU|,BËt {\,+)<hꆥ٤Z)`Ph42AѨ4 XpDB:LRRweNV%l'NHtg }jj}lmmǍ]w;u//$ X,b7L&-\8{ CC6m1}A`k'"M!jj 0?en59@ ];c]nxx2B|1dطnB:[ BI&!u\xUV]FcMXz"oشBD"˺u3[X/0cQVV!j_bΝ d{B!'ϝ;:zZ_{16>$)igX G׋D"yz.슌]Ss%::U@d2: zZ!23]g_'I7LJr}UU…"۷HIQ w! NܺuNW,1]SҴbĤ[YwHIK%&?ѣ }}'l-9C.۷y2*--H On-%l6qƙ38 HN+,%""ܷ@6{*_^U'oZ`ݺ4m!2r̙ÉXTHԦX,ۢ}q ,;wY,ӏ@OKn|}Blyy…._^.TC̆II ##ߎ;HSSSEE@ W]yIPP|iiͳ?dR:$Byyի/ 5kih(/!&&C8aR IDAT?x FL&͜9鲲"CAs_V\<((gOgΦ rDn޽eB io>>)vwp +g;@ӄJ@CQ'NZXRa ֳ Q$-b?}aJ!4yyHZ@803g}\6cưMc :( : %jkiTT.\8YWWBW/HZ8ee5׮|9Ͷnt5>DF()HZ'//.0U^=V4uq1FU^^.=s'EKKqnsGlj=zH@IKYY@hG?|ap͓'mu mRVVK" i.b?uԯƃ^u/ EYYM޲p tfdӧϘ1?7՟"F< "HZB1$$UU vm **j!i+-~0 Y[骪0YZZ}B0 i |dWr3@/X0(}}'ﯴg%?F a+`=z<..kS`;+ј@(v@W!I [}=ƍ}1c6Aܗ/22TD"Ceeܕ+/h ܼy֠A0~_LGAZ.=q#AVVibOHr97 iu̢ DDٹ{ rrD8f2$: %xm=W;qvѢRRH"SD"038 #<2@}Xd$:%(s䔚 0v CD"0:v bk.u!CԈ ÷a:6 _f4 (sV|Zq=e';;*(0,3$HZ퐑'6""E]]a׮dea;@H}RQ](NC$6Ů~ℭ*U|RB'с$O~FD˫W9ƃiGba~ܲ3EGo3fA@;@tW\\LT(#.(&elvd~]P55ɓ'w# hl,l{X,$B Bn":FP͛ףGאW^XX5i *:^!$/oܫ ܭwR vgؠUٲo&sBC!: bܾ}3m&((~m4O'K1̐kkk6 HU,*44T NԖe2! :_ $ Uرŭ+C@ zbwnܲ rFgHZ nbbϜ9\,T[[6h YYY===V%߾}8p;wڻ#H999DG!M?K>][`KoõuxlٷoRTᑑ@Y QX:_6ٳiڝ֯_r_EFF#rss[zd  ۷ooa⊊QFɅ$&&Ĵ+VC\+իWE%EHQFڵkÆ ߿Gcڵ#F膥 d[PPPFFjQu]11T)CkpGmmmee%KTUUᳫz/_௫-[uֆ<@}}}EEţG6 N͍NGFFjhhTVVbv ==Zxutt~w2dH~֯_ȷ*TIoL&رczzz?s`` p.״6-gM=z=j('''|ʚYYٔkCȷly Jedd9M7Z'|QQQ#F4hеk)rl6… z6mZtt4~8+ŵ(xt]:JJDGv`^)##3sL//<TWWKKK;99GRkiiiǏwss0 !f̘ӧ4CCCOOO|8n6|˶;v <]tCp%OOϦ\222>>>EEE~~~T*+Y˗/kjj>x𠬬Ç-'-(x>T5Igzzڝ0 c2 044P(AAA[F̬eXϞ=[2tp0##]YY|A)?uuuccc .0}}"ÇGaXUU>}a~ 8" BBBtuuJ0i?dȐW^EfV;j"::om|["d2?~aؼy9wmm{=l6{… ё8|3߹*++?^UUfkjjX,VW쳜׆Awƍ~j{x< ։5w ZNdo F]]]pp0Bh{MKK۵k׶mx&ʚ3gΘ1cZ˗/zzzk *c,GRRq}}}II uuu[j"RRR|T9sϟB >|XfM[2?9-*W$GymC]!`|kBB _ ///葃8f=}ɓ'aaa6[MRTTMHHҚ2eJ\\L}'C 6g֋:5o_wQ }I 0{{{Z4{7jhhvwwOIInB 0`p{z(ԙ\RWWe]TP!]lِ!C޽ӧ/_N0aӦMkjjM"߿_WWRRR't=<<'MrJ|)JJJ/_|'Bݻ3fMOO>|}B\]u|mذ2//ݻwǏX,J55(a˗]mEL6-;;;11QOOo߾}| [^zp߾}:::ѹ=7ӧODDDݿV74oc [³%TQQQUU֖mK=l6{SLaXt###;;;ݦ{-5'6Gaaaeee.]ѣ>lA,^y}Y--Ǐ:D"!~ &c+xj{xXw5Ckk qv%rڝLoߎ7Yabb"//Ovɾ}jkk{{{٩pOi.nnn}>'giiѫWqWYYd%%%uu͛7s4 WXZWWwٟ~ uuuJ6\mwׯ ])lyvb0ǎ:th={:-3L///]]ݞ={N81~k~`E4mM\zluu5Dl[ 9%d29,, !Rs{"#--Y\YIb:uJGGO>s̉ׯaTPPςbM~nQ5W `JZW ^UU׮DNGb [I_ڵ޾ ۖ` 9ѩ Ç!A5Gc&5q;nwA"G L+W\X@G9::'$$ݻŅ蠄ν{i_VN!:.'nf{^jU[ Ek֬:uj-+mV__hѢ;99 V \tΜۅ A  8=:]GLuMy]Ӄ 0 ?sѣYMAa裏W4Qdon>rpMc&Quꋼg>T^^`J3QӢR666666DE#(2263P(=H$fF0M0O:M0:3RP(>pȖ+*'iݞ=e֯7x e\\\qq16l0P:XصkYD&sG2Ν#UUe;855ɓ'wxvE [޽{#0LCƍ mmy77# e޼y=zhnOVV罽.X0i0`_os/<=#TTz''{P(pvx.Jii ޸qmsH444gSzUn"Y ØL6BܹDZ;SL:pb~ yBMF&C]OT3, LLHd:tQ+!gt}$ڵ׊tB3gd?oa燐 X55۷b2YWLiiرK4y9 !:aҢ 6^Xx͛{RyטH@B{?m9MHcIK8khoxstK˱DB 1LZ>Id}ĉD/:zV.)65=bm}޽'Ha{ORIӦ %00rȽcǬ0b8=->sѳgwfw7+JIQ2&& ^(jUc{8n\23b|c0&&C Le=߿dĉRS%d2wUUbdґ#V񷊋~tS=16JMW^^d߳gPQ?cȑ}}W İBl6V[Ksub ܝ\XZ|SR9oٺuNrFS#?S9 nH(.曱dҤIZiM CǏ:It _ykB6+)0Ϻ_eѢUUgN;NB!feeN HMMcd+W>~,22vthi9G)@0+g8bN>xAr;;8xp~&'-ԩGMM8`At KL{ OYKݗ .}/71IB0 su㦪ڛpD$sGpߝS7eVzNĉml.DG hիӧ!cٳŋ!c5%IkΜUH[^n{BW_<󏫪 ?7l9rdc 11hD"$ a]$Sippb``|C}lÕ+Mǎl,-WW7ܿFlEvvs:eGt,BJ"BhϞǏH""R_df~k,^Μy|z͛g`0X>_TܻEYYp$-O֭f4cҚ[^}I'ΛgB~\}=?7C-m s'%*jѱ5I9Q(d3aZnFBޛ7W!z5c'N<%:4Ѕ ORS>-Ξ}ts!cJRzZ]\=re7n Ϟm8qdx, FNN̙^[^ތXD@d۵k8ٔXD%FOE ҥg>dϿ:FNkd.,썴4eQ..CO?D 67JDD-_ϱX LvWg)с /<((ƍ9sF` X'N<}M R t[[ª ZZD#b$М9#?)iT޽{۷9`jzy]Ѐṿ;2쟛[2VH\Oǘ1__9}ѱ qv2J^pd}}u"`͙sR^^Ν0,{O~ [7b$KZsOjyyYPn M{K 9sFHe.G޻t*0=4<<ƍU&ĤuC?oߊ9;XCx  "_~9h c^{WW8͘1pD$&SFF9 IDATn06|*. \\LMLH$8әsTRI {d ] 2DMGGEC(@jj}nacs':4 k d>O3:O{Z}@]zzÓdҢEW0z/9|RoyG;w-^:qfѱ MZ;n|/7=%%?ŕVObjf6 kKE?nc0 ;p 9"ܤG{ {gwz =00>..kР~&]$AC츶vߛ7W0 ۷/" ũSvpVP$7i1,#}[vquJNNի/_3,sVM>\@ڳ'<,,)6v:\Njb޾…ܤZzq۷#:qPSʕ'ZZC踀%%}8 # b؛7ߌJti٬YD#$:iEG]{=5u<ѱ\?t} F}=KOOUc:իxlbO*h{_J:,,EqI'Λgu;v܊~]Eѱe|5cV;]HBh2_Lt b?yŋ&OPTIt\#^ȶnbyyMPЪa%Ḯ]n!:qSippb``|C}lÕ+Mۨhi>?|_+lm}B7nwIOZu?g/Dt,⯶"3>Xc1DZAzl~ /ij* CG֭[nݺ";[o_Rсt---'O -[tl?d{VTR(QJ LhYYYYYYEGe,57It,B$6UG[ѳ'&IZ'-2EF~~~BB`{$i„ NTVPS`TB eBCCݪO?:n`o%D"DBBm ]h6pDl"IPWyfkkxtڷ/Fc8`At ð'cNqv6=p`u0i$ÇBC|}W(+õ!`l L9zjɒGAW]ݰcGXǏz]LJt8 ;l6}TloC#"b=< @p>"6p~P\\䤣7B"V&-.]-''_G}foo?p@yyycc;wtOl- H999DG!0o߾RWGDFFJKKm۶~7nÇL&g b;=f܌Èx񎎗LQCnlOiz߿z߿%oF ILLiRrss}|EFڵk׆ Ǐkzxx1!TSS3vׯ_9r$%%eǎfbX ڮ]a cсb{g[S/\X O- XH:B(;;'655ݷo_(p֭.qss333kW%X-ų($$cۺh^z̘1t:mL&3qmm}||Z}tڼ446?yIt :? W%- nܸ1f ֯_ʦ+**=z ::zȑjjjT积|k׮ 8w{طo%K^z[MM͗/_UUU˖-SRRܺukCCؔB\t:MEE_~nnnt:=22RCCzzzzzz򍍧tŋ5--m;v0lҥ˖-+..VUU}5ZOkշo fJHH[ 0iac9%&(++2>>o߾-\jwΝɓ{mr9r$aUUUZZZFFFZIӧpO˷mA`b .P(B<-L+eem.i5]+&hc"n~ӏDB&u`&w: ulB_=zFCC!$%YYYs3fL@@wmzLۗ/_!EEEUUՌ )KJJX,'BHWWs[Xx婫%gΜg֬YӖU/Lv|}}}N0| PPPӧOK M+)޳'|I{lyyϕ+qK; KZ]p_~sNhhֿx`mmޅjhhSSS:^`'y CNNNUUB>}JHH@;wl֭m H}=B(++ ?6W(l}a///SSSUVUTTo988y#GZ}!/,,,G\_2krlˮ]a{5@iQQ-Mt8y蝵 gӧO.\w]&yp 111ػK,5kVaaann!6ⱻ޲e B)..Ξ8q/b,--:Dۣ… ϤCXXX>--M__].~.pdvvv, EV2₽[WWg```aaݻ={ ]/((tve }[ϵSRl6…Cx\X[ۈw88ttt\]]+++ۮqƁtNE:::...jjjݭvJZ۶mTPPpqqi{BhjjM0(l2 wwwGa0SNUV)))_?022yGFFjhhh[ :t[SSS \Vpp޽{Y&!!9fiii]]ݽ{sJ{aEEE]]][aUQQ;r# ut<ΜI<6!>&oڳgϒ%K1娍^ԇ;zZZZ={ֻw{{>TI54Ϟmj[FF1ޱgO>]x͛ԤIz.wsFGoWEQ4((Сh QN((" s?njjz3f߰aCOz󯨨;x0zFh˖]8x0jǎ.%Z277NJwjjjgOzGQ㖚ܶmx"8ϟntHt?G M@?uJJrrɓK<(>qr uAQHRg ;AۺFjj}kN棋Ђ@f754=< DGsglTc!xΥKii[ o:S]]'80_FF @_ɖ}"-!E Y,۫"HՕq9sVjj*tPiiQ T=zo+x`0Xk E{ږlj' sҙj>DR4hy`&7z.--ɮ0:::5Q,@TTq94R(gX1wCk뱿MW))ٕ+?J}u bſHmdE}3Y4hG>>Ԙ_dㇷoܮT{y9,]:pe0X;qB¶!CI$nJJF?D$J̛gB ^Nsv: ZAA=w9⚱AҒ񞐱$ Vt5''Xjqq3g`0!;;cELVCCOwPf!zzj2 XB9{P۬;w~Q_@*)M}} $Ddd&'''}ݻmD --uu_I2qpeeYA o>XX~ovՊsxQrꔫbfiM$7؂SUxx&$ ɺw/G$7Ϻ|yTBIBWWm0##U@<aqom&yxz_fmb%NpI A|rrDDn!EE=Eѓ'=|xѪUS;S^^{n"=h`[[#{{#3aP]|nƈH$7o|Ryys߱f& cፖ3O'9~|~;֫íx ??ŋ' 8'NܿzurȒj*ŭ[iUJsuv0fiE;/'%H$/\8^Qɶ?I"q E>~i̮11I r%eIk񊪇޽yQRR=b`{{ELa/w(lC()ITWW|y8 U8~<. )!aZ;pƌZZJxGI qp8Ys ރ+waь"*5;**2YB1up'}~x1C(!A؜rXv:ޱ/ onf<@lAUYYgb[$<bSRCCr&&C.su$ Xb{a0X"#Do_DB« L\"wDg6{EDduLvhhh%-ldi#ZZOR_9ra<cb2D]].//:UĈOxG>|NL.`]=5576̘1PWZO'^/855ԭ8tzs||nLL6VeeeHΘ1= 1s˱`E7lya|H s[fgw\9Xz)%%Ϟ͛gY_:tb9_MMݻ9 --G;:M/\cc yy7M꭭LkkUUِMX QYI񡆇gZZ>|x2I1NZ>޻KCCƆloo4ap Us/^<xKS&&nA ǎ*+pBKxG\t;kN_vz^^"""+(艎øŋ'RM]]cǜ7m2v=&3\.ݵ+O˗OٽnV;Jw*2++Xb6t qf߾[߽.Z09.F?r$tssÆ|I+HZϤ{ݹUS8~Oe0XNNUUxSܹu;D𶥅yӧdIS01h6o8999s\Z$Z22,8<Xz$!UUWOW+$v iHN ˈ˕ Ln`ggdgg4p`ߐx98njjt:c2o;ϟyy9hku!0tKZZʐNoy+b1b_OzvيDűOLuuCXx n|N&kGE;" zJ⮲JͦR_-:U_$:zA$* ."ځ%*>}w/J}^4x^^|8n;`:}:[[#O9#F,IHZ"## V7ya<n u(y `!WWV-,|,㳰{렢.0ի)tO֙ g=@j`))qqMM f捓*NNxRqfW>=xC?%_"/?p֮.L (1mڈiF`^aa{{yELn`ggdkk$##;q#q24t33VNNi`,{.,--ɫ p\i1:)>eLLvRIIh>{⸲nƌߝxX,vll23MMm<D$v i55w愆gd+( h6u>xT=x7n^cM& $v i+?憅ejh(ؐxޗןĉg׮=c2Y [g < iI†GDd`<Ik={7n**f]t};.vΝ,٥K'Y3)r&ym^_VVwPVV6i$FVEEWG^oIK!"Fqrr*//n.%m/Cl- 7A$qȄ-^%>>vRXXOVSTTܹs0~K؏G3gNwfн sGo J+<<|֭mx{{akkkW\m۶fAG#2i$A:m6ؾ} FttVMM 7o1bDcccO[XLTTږ-[ZZZ[C y)J%Çzjǽґ#G;Vw벅3gΌ5JNNnIIIX@CCT!@xQ tѫW6LAA 龥qpiТ8t!!!AѺ[u֬Y999cƌ9pP( . R]]]hQIIINNɮ]P]|+***՟?hyE}}r6^̞=;///55UOOMΝAAA$ï NG]stttttjbiry55O>ݽ{W[[km{t:]JJjeee׮]C!:A:=899cw_B$$$'{Ңhtnkk+H|%cDD$%%a+`_"ȑ#˱ (hkkdI3NY999_M5i4_MM ͮgX>A=z(jv8VwpI-088˗'7o444XǏm?.Oz۶۾~%]ע iaA%%%uuׯ_]nff˗J-̕ dOV-.. ʪAEE׿zjӦM+lK__{1rH,69r$'%%jkk'''KHtci::BcOO&AJJ*//z!9oRZkpڵk CFFF]]H$b F;*'Ԥ"RZZzKKKOO^>8E$//^n;fh5kcםty[zs +{hjjrrrھ}{VVV@@g9ϠtoRZkHZ>>>?^lYJJJNNoviA$%%lRTT}rUCCb…wCNNٳglիn޼HR;o]}vXa֭{Yt77!g魭222q[zz۷GEEUTTڵNZZZZ[[rtwҿ e-BhjjM0!::F[l{SSvMs{`0N*++-VRRRRQQY~}ccaddڊhddFU gI}v8tPUUU777,N.p>"]]]))#GFEEu>h]{ZmuBZ[[<8l0YYɓ'߸qzO EQeee55|;VjQBOO.}s_ *vy Hx~SAhE BBB܃D$߰adG8Т8Aq݃{ 2 i HZD7fֳg&Ow3h=z?PYY !ށN;1G&WXw _Ӑw@I Ȁ@d@ 2RDEIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_48.png0000644001725400016040000000410413273140077016476 00000000000000PNG  IHDR%Ig{9bKGDIDATxiL]O)-e eiE[/.F" 1,$@PH1ZJHDc PZV(Dz>ݠ}yt9s9; ap]bK ua#F?d2LcUUULqd޽[F0:jҥKFF~  IIIFF|}a#.1l%İ߳.;::7r9lb@ll,&P&QQQ ׇb3fcߚ!.(g]nٲ,??||&&&rss7nHM#=$7o,۷o5F!"888))7~륯ˋ{xx8q꺻_DǏaaaYYYm۶z#)++'KXPTj8:: <1_*޺uܹsoߖJ<!11lBMQxzzX,.**5 HBBBVXnEp֯_jժ .@DD02k\4mmm6-2--ȑ####"2?>>>ׯAlݺ}eEEņ ܱcGQQ%Ԕӵk4͛7$YxMM阢*++F铏OGGrqq;,/ NtCCCK!{^ ***M۷uL竪jɌ+WzzzfeeMOO3[lQQP(<|0ITE@>*˭͞,Rɉ>B>|ppphllD98Mw ~>m!jSSS===}}} 3#00P.ɉi~K$ WWH-sssnnnh [91JáCY6܌|ރFp]bK ua#.1l%;]Zf0z|_,c?X K ua#.1l%u cIENDB`XQilla-2.3.4/docs/simple-api/classDebugListener-members.html0000644001725400016040000001125613273140074020735 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DebugListener Member List

    This is the complete list of members for DebugListener, including all inherited members.

    doFocusOptimizations() const DebugListenerinlinevirtual
    doLazyEvaluation() const DebugListenerinlinevirtual
    end(const StackFrame *stack, const DynamicContext *context)DebugListenerinlinevirtual
    enter(const StackFrame *stack, const DynamicContext *context)DebugListenerinlinevirtual
    error(const XQException &error, const StackFrame *stack, const DynamicContext *context)DebugListenerinlinevirtual
    exit(const StackFrame *stack, const DynamicContext *context)DebugListenerinlinevirtual
    start(const StackFrame *stack, const DynamicContext *context)DebugListenerinlinevirtual
    ~DebugListener()DebugListenerinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_37.md50000644001725400016040000000004013273140074016365 00000000000000ee39065b3385070640a65b83f7991314XQilla-2.3.4/docs/simple-api/StdInInputSource_8hpp.html0000644001725400016040000001024313273140077017702 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StdInInputSource.hpp File Reference
    Include dependency graph for StdInInputSource.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::StdInInputSource
     This class is a derivative of the standard InputSource class. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/QueryPathTreeFilter_8hpp__incl.map0000644001725400016040000000155713273140075021353 00000000000000 XQilla-2.3.4/docs/simple-api/Result_8hpp__incl.png0000644001725400016040000015151513273140075016730 00000000000000PNG  IHDR:/bKGD IDATxg\YI( ( b * *VlkYwEZP{Q,6DE@)ґB @ʼf,K/L0L=B29=s(:Lt"' k *$88888(s\@/innNt ())+O"v": bDFFٳ(b' k Ǹqx%$$LLL6l`ll .\gv횶vϧON<ry={{aa AhNQQQYYYYYYGGgʕ8rt:AhBR222ؗl6̙33gΜ9s3gl6 o߾8q """)((6}Yz5 fju>O>뼧yfѢE3gO}G*++y{{9sf޼y(2L ggcJJJdsJKK!RSSm\j[PPcˍ=:'@s+.\pSNa***={6oO99G޽{ŋ ,1bDѺZ{޷o_AH$RӍX ^iii;@ IRRBQKh=eW ޽f?|9B)++Ҥ2'L~~ yyyXFGFFdb_۟;w833s˖-$իW,JJJJ"QWWVȯֶɓ' }F8h4NFɓ˗/'H~~~%%%ZZZv풐 vښ5k1xٳg?zAC :w_7o\__?awwwlF~?H EKJj~*,񣪠v":ikygZ7{#P@meeªªPUTTbq!Hjjr,> @446ss+rrʲsrʲ*** ZZJڎ55tt5545i4 nnnx;'Nuu!Rj.EDEEV__@ROx7mԙ 0y@T4632J22SS23Ksrʳ˪RZZJ}S?~~_us? 8LfczzqzzqZZqzzqjjQnn9åR*j#F50PVzNON.˗LE99\RSSUSVVZQ4EKKTc SS5LM5hLZPP\#9 9 'A%%ssm ,'5(9 %ǷoEŅUHILLԍfͲ61Q_CO/ϥpl6A-,tfjajajN"D~GTӧÇ**J @A@7UU}Rlu,=HJR44LMLMM5tuVnH= FCffIjjQRR~RRޗ/Lf#J62RYbr(KJJ"## F|URRɒadcc4bѡD*+k?T"ҷAj맆׹%Luu/[JJV4-,t05U2D3mڴѣ8,I66w{iA(b2S[\FY٥&!1"߾})'..3..ݻF66O>))?117))/!!/7Amm!Ct-,t͵ VWWqF_VeK%%a+qzP]]ygju}׮c>ؿFo1l_/ctYY|@d8))?Ⲫde%--ml mlllĵ% _75Çs23KQr!Cz**8bq23Kl)))/98ܒ>,]z>!!u&&溺*-yxTJKK:4Bn(y>+..3&{AA%F0@PAJ v?f|W[ ++9taXΤfq߿p8\YY ,,t,,t߸\t͚/^h%%5&?~i'۷Ӈ<ʿ:.. ;5^L&S1>phc(@zwf~YJ"S66TB-%%QWǮò%u-/zu9^'޼ɘ?Ν?-_>}>M޲%A\'N˼(-IHȍˊLHe8Xɔ¶  ȟ@墩Ee~/)2>J ڙoߊ |ON.HI)㌍͵͵ 27VRj8ԩg,:uÞ8{f]>}GPWKY^U_RU:T;5ei[qqUUuR66F#G1B:ׂ"d~jX:}H|.rb/?tm>|[\`| ..7o+*j%͵mlL7EX@7@MNNyttNEE UUu?s~vv2 WN ~_~iʱNg:;VysU t}؉(9)|>+::-'J%E5i#@DAAq1=::*99QMMMM_ U*ӋQUP^†|eٲk:n26evٶ-AݜU'aة/_\T_X "' 11/^zVDQ 33up02D'M,V|aú`ْnJb wsm]=WHAAK'Oxmnw~pw{ >=zhu쌋lhȟ˫x"ŋׯәƎogg:bt7k&Ln!%LBށI`~1kI;;@/Qlͷ?NzWKK3?ze'ml,?' t@l@D1ӯi?KIц 3pr2d+(qt:֤"vSߞ]? y[xlt+"Kdn@Q}‡78yr?"$ t@ PQQOgJMbbigg4@~~eRRVs~YD" Eсwo/z?XUSS?~u.\?\yNg=:q @}qZ̓')iCMu (,JLKJOLMJ//g`M,,t{ ݥbac"zr"Kci봹sϜ>觟Ѱm[+Wݶmx_CN'w+)]p̙V F=)11yo( \ym[޽3-s :mV55nrv܎!ځb x<,MMũSX[뗖%7a>P/)c%y{_fW[0a*&#d򋥥5N-3?^ @O@Mիo3 А.*n0Y[eAB+::mѢs~}ѱt͛ 7@iӆdچA @WAzǏg#CC?׳P? ~߾p]3wig@$҈Mnx+tXmߵk1;van ; ȟ@WyUYY BBR>Dηof1 ZJFo:ӧ[r,112 \bmt-?0 ?'$&&%%eg!"!Aml(*qvzcc5ݗS>c~Ԯ_ox3,̧KkKEEڵ޾ؽ{ƒ%=P:veANЛAc8_$$&&&&楧sfc#'%|[{{Suee3KI[0;tYY͓'qYTBQ4 ~z<8 z9ȟ?W5ca,lDDq}H,Z4jb[--E8g>YWNU]6n_ɫWk̗/^}UWWE/ 3c' ꥰ`9UFb%&%?^[[i2 FJKK;8~`^^EXg ǎE<+?첥Kϗ1=F6k:v^ނNg&&e&%SVoo$Сz׸\AA ^|̙֢RV :,]z>!!u&&D#,gz'O.qXaϞ}p@A$_ x'bN2 G)> EVVUƍُq5W?f]ǟ-xZ|ouCp>! Odfb%%gdSޕ,jΜ+W-z7W,a0~Mӧ]_ܹ=c h :vQciiE >&$䦦\%%!Ct:Tw=uurчWXn4@EB?_cǎV#:(+c|͛1>.ٴi"@N :M15-c1¨}>Meg۰a~_Ei7eٲkLغu Q @@#Gɿڽ;t޼ρu%A*.c-c'? ݘ޽ˤә22Ӿr#==|Rϟ {ԩ۷O:+Z5_cofΝkJtt9r̙¿Y^HY򲥥sKDip?!9Wɔ[ެ%EEG}uvr1˼P{vI7zEιsQWL/ %%ǢE䤮\Y̿@c' OlU.96]_+Ƌ{g)s XbbGABښ$' s^=S-׉=j*Z9~/s87bz^˞a+>'>>B![Z[YYY雚jl%9`˖;_̝keQ\\=l^t#J15ո}{e߾5bq0a\w wrYb ; ꩼ?~1;9檫+XZYY[Y[XJ 8ƣG#Μy9l+\{? x;CBBx]!wZ̎!o9좼Kߎ _~7wa 36?uV]f^^J62眰Vi;zzjf%ȭ(,ڽ{`f i-ÇR3NNÑ#I?۷s"[?iOU2a'~+:66FB_=~yl]\zb ܼwZ{GdDCCaϞS=[رw 4O { 3E7:v=qXšPJJ2ur2|@ j8Zb9ͽtۛ 1߿pyGSdiiu&,_>]=@3l6A`&$.ZtNWW7d9sbb2S2& AN Ox{WOӓL؊Ԑ!z66tu뮧];a: 0_nFP(d//^w7**킬I.[ J%߼UUug{bqGgmmoYMwRݻ]BUTQQ/BC >R'Ҋ$SK(?i?7-:Uh.?\wYωzb…gj_8PKShڱ3&;Q^$ 68zt^~jOO&otNgXycݰKXL>d3rrRe|mb͛oFEz{۲e2ԫfe(JRP;oވ͛apF;>gL99)kk,gr:~ǎ{ r IDAT>ܽ{4BWW7??(DԼaJ:::yyym}EQ[?P#8 7ΞboC׊ƶK"!d2EQ.PHgNJTED:t?lhh}OUWW>e龾?OAVN54Ο3ٲeFffbp7o2֮F&nvpOt8x߸qct| @LLѣGفD"͞m};R}PǎͧR˗_:sc +7h$HT*r8|Q(dE>rڊjjr**2ʃA1KNNn7OUU?((zzݡ,Gj5k&6@~AQ?2AWQ)꒑#G1@={ؑ#iƙ f(#%/=:a Kj i--uuuuy--E55yUU9 z'KJjg"桓a~.SmmæM?NڶmEZ bXY釄| $BD"7J%opA܆\PRukdCL&hf5OMqH\\&{|efzy](+cܸmg1ٳ$iϞ227ެk\Ė0xIB#JJjj~*.UUVr)2P2<-"⋏uCC'O6A#>m ݻC?Nru%ϖ-ed$va9˖ +:w"?!bn2vtfq1QTT]VVS\L8Q@ w>ƙ|$6Bd͚ kW(Kl0nVFF +uoL\?sB.8x .Z>hGnnҥ81CjO> =i;N!lbΜaoޤ >>޽.^&: q=}ظY0*..~eklھ.!: rYxGQQwP TSSwޏ?>| NϿv %%%(^pիh///oޞϧAAA@AP=pٳsssm4lիW/]iNC[}1==3cO8qbZZZllݻtiӦlc۷owЁ)* ,TQ?^ bPv횹9E8j5ſC 5ֵF:tp8Ϥ$ŋ{WA_ƍ9:y}‰0ɟ*++utt,,,x/tssK.v|rǾpxٳ+**ж_3>>gؼfffO>:th`_~[>Vfl?ӟo666n'DQtfz=|G|};x ۆiD":?1ә;|l ϟ(:eVgQ)j)))|266VGGg̘1dr+#WKK A}A@Qtް7sǎiD#WXj*lKffСCy;XXX?DZZK b))^ Aًrrr=>dggkjjb899eee z{{{zzߡmO? &&&33К;?f789?}՟_H$9'Nt8⬗C&iHPf͚u޽gϞ5]˟L& >}zEEEZ}M4''{!LJJJ"(y?(Չ .':awIGG͛7c[y;4}Ed`}tzꨅסa8x_޽{+|kOzi3)*OէwcnOwd6vYSQc._p b ,@<݆סa8.\_WWse˖>…ݝ̉^֤C6сNIIurym6.\X|9ѱi˖-...3f۷7Q҅ GDqq$:O^^'V1;IKK@[]]7W}a T.Gow 6sر ;w!5}sFFF8&+))quOpfH$۷܈;wtZwҊ|.^Nww\f–-Eu^cbbotkժq<@,[[Or ~(-]WWwƍx> *wJtiYAAuסA :555yyyޗ$x+OBBq͛' =VV,ql}ްbcwR8;|K^n vᚙm߻w#^N[ oڪU㈎NO\.:~ժ+6668 =EEգGkŋm=FEE~F6tzEE-$ }$ k-1c_ QQvvp+D{kgg |ŕ+o I11664.Yb{I$HãfwoԩzxKKԢzWCCŋω\ȟ]woغuDDULQ|L0PWWշ]V^o|bO?^VY"JE k$%/z4\rb@3.ݴ閁ƍv0d2iQn5vc|cc[V^7/ij**+|@L]]9/R :z)ȟpcmСvx, ,NNQQۖ/wط/|ҤqqJt ) Æ;ȑ>ԕ|A҃m Wh ,3mЋ_d"ii͛_ܢ0c ?z28P;%E$'A<~/28P%$%g.IO/>pѱл@{6̐XhLţpݻkjs}Os_?26[T/rӦ[S)W0S_?5qʟ9thnyy@[?uSffid7oDGx-s(*8!~&2}1|_CĝZV¥U ;wN U<n:{6RO pGxtu'LHHACC=:?**WuG^]]Y?0SwTWݽar2Dt,@Lg2w2H$_)G?||ݣh~XD":42 ѱ ۷S(dWW'OS@|@5QQ55 ӧ%: V*~¨+L<(ąW~~~SϜ7_?44&: ~QP޼ܹL1M k>LR$: >p,~Y!))l9lëW۬-:+,Kf ee5B^66V߳'@?uʼnH:uсcϰazKCǏ߹:7|?ƕ Nt Bi˗߈qSdTW3N : V-~(Ǐ*|ŋID۷O;{6j߃" b {D;< .x"LCWW@X租,| #lm7lv:-`dRaxٹszff)*b.L3?Q' FYշuu#uuCB֔3yh|4EEE!?211O,kh:3B@P%:PXXem͕B]kWo~ HUU{mcnۿus #{ɬҳg**j5Lfcӵow5+.yU㈎:+**UJ6bс§'ٳQ"qYJ^pԛ7ۧMq9sNu˗߄'e}^`s8\OJ99)=| ^^Ǐ?#:DO}0C))с§'o1U&o |)*JG666'M:s}: =k„ZZ-NrPc'{(k֌'ӧ_" !{pbOxyaaF z'3N̝{'u< y1drA]f STVfgY[+ҪU~M:_gDru7k=aS}w{(~Vs'(IIj޴ K%$AA! S| %?@o'!CtmmDrFAAf>yIRO\//gDGED$XQҡCO=#[ 44ŰGZZ!((Ng " NIL34TQR!: V]ijjop` IDAT͵_{؂4uQ(T&(zӐ|2f$i4y"^^Bx5с ꔯ_ Mt@gjF `.>!Hs {TgnӦݾٟ^ PpP;;D+<=Ϟ"NT(XLϊc>T f:>a2Y?7%GQAtn+Vc9MDlm?BdrF͛Dc 33MbE0O<3gZʝ?/»volrjv>[[5x 4{bMP+#]SRS8np I`OiZ ~ 鉢lNnnW \O3n2~G)jQg@@ԱR"~qdϢEdҵk1G_(J"!Vofs"#ލgδRP űw=Ϟ":D O˫TPgp#'s^Xr?K[7a83%%il;JS\.zlիo:AbcӻnӴbﳚtqJ%bEO<˗ zuǹsmz8Tvvq==%ʆܚF^H$E~34ҰJJ,2'ʧȉBPL"%%wG7x΅ VV S+!xdP9ԩ箮{xs7??[n.(yMFSv 22We#;?dkklel$1a3zݻ\ȁu'bxVQRvvaA&fͲO :DOCk@[3u]]S *##A;rss.]ڙ={ A+:#wҤI+~A` ȟ:P_BO b' B^f;qBrGaEEŭ[vY3f=733SE_ jbP] /DXf ~P?٨F W1qDs\nyy9w[:!H$҄ >M&:Dhld#BAQ!)~hoW-.ihkkWVV"rMSSZ.{ɍ5˗غU;kp&/*++ӧ#GDDC[}X,___uuu555___ Dp€TUU^jhhsNYRRRFFFW^m6WӨpccc%%#ֿ555V7vӚ򊊪Et_7aqF6сqp[#-rg }xkgg.^ãH]]ݻw(ݻwǏ>A$==;|@%$$<==] HII .\zjO8p`ٹIIIVVV۶mCQA Atz`` eee CRR̙3ϟR \Lg ȴitzHH6ĉbccw ܾ}_uu FF[n܈f?u <BQ5z'wׂp( Sijt$|_QQqŊɫV¶dff:E#HHH9;;[[[_t `0X,R{7V$H$)+럻!Bњ=FDII˗:::cƌ&ɝ{ӵ # ,??1|^  @@GZZbR_14wIGG͛7c[y;$'wPd2|}}Onfff``0 &TTT999KK2,%%u[jkk9r չpA˗)Sو 99)33MX}$EA=xr?yVV,q$:V֌o)+VSsN011QZt'F"n߾:nJJah. @/,~QU}s&XLM5RS OӅxmz rFv̙lė: iip 6A a秖֬nB<&1-ٳ/޻7JRQUSVIO 6m;!/~QRYee _~~EnnyY2 }3b@xA g񣪸[SS]ZUU;iaA$% zz}Ԛ)ؖ/^uSgIJV`*''lh(m` gtX,iHI0{z' #GQQmQ?TTԑT L=ZV[[Yh1cdY\\hZǟxyYjQՋΝY *bcs=Ғwu՟1PSSSuU[ ;?e'RZϟk>aHҒ>]OKKN[[~hYU]ZŴ'pD|SS;1}kROOEOO%(hfNNi||~ttFXcH#l ..APKKv' ~ R՟>|TsmEEAx%SttFUR"#/7mrعUVh`=J57KH0qC+||SQFt5x((銰AdO p?L$=HHW]xJ kjii-^ jk#_]UuISS;djhP SWqr;t聍/|FvOtÇ HQTr'RUՐU]]c5JSU25رeDu--|x0*l<79֭8om+&&$EP2g;).xV"Qd1۶9ҒgA?ёXtO<m-L nhhV?Dܹ&$˗={bc7m{wWWSDz`1?ؔ޾-cڎcjyOtp8k\Y /ןZ&߾5H.ZdhyuuÃyK^rpmJL̿w//'TTT?t׮bR&fOt\] .\Hݷ~\Z0 <Kh:aJ+)qqa{qHxl=vXKKsh?u%0pǏ0>>00$߾kiuoH}V;HIH#9 ͋b|Zaa9h\DHUxP~4WIGyyE":Ӧ' ԧO oz#gg7Evv8q\ԕ;\B3-6؎ ԠRi55JJ++6RuG j|XuFV\\n}}_-pp/"=YDGUUj2GgO窎.Bx"F IH}+>>/66֭yy gg}WW} ..F Mvҽ{o^WKXaaH@[':69ܼ}t.hka$>`0c\UU)__[__Oj{{BI)7rULLv{;Y/0l@y' %,Y2%F[j|T"9…ammymmG??GHݽ…EEHL/>;"52f޼I\1 ,[fi"-V_ji1jnFΝ7.(+C)H۷sO5VVڗ/G ~r<S6Çfnνp!EEEa(0 ԋSg2:sf"ڢX ?qq71rG(Zq+7EFJUU~<0RN'hjjL9>iKZ,[fn }Y?uiNJGYHVcUG5K]ԭ[9o\%?c&`D45u rժUVhB ~e4^ZXM^WQQ% mm;]ow)Ϗ {)77#OaB&S^ bU*n*zO*ԽØ2541RWӍԬYC*I0CᄄC|Vdɔ-[yvͩ+<Diןyy66H]?#ne@e}Ԛ5WtuSS? '烟lh )jk#}Rk` FjYo{wVTԫ)SNz8,QYOx,aa"#ST=ڬ"6ǃpM9M+""%߼)PhFFjh ˇH떛[+Ԝ9&jjRhk` 0(>-~=+8xy~l!$BF oKO/RWVP`JڿV^^ݻLM5Οin~XddJmm#Ohk#mdIIRS/^>/44q޻ꮮ3fʊ'@DGgRQ|t 0Ozo߬\ "ZeeTNYꉠ '{wҥjjR'EV~hp{LX'@/Hmnd`î@SOƏW7oRppzxr/-QdbwtSS?煄< gdj0sQ_LWjq}sO|vwWڹ?˭i@Slm!Ä@ZVHpȊ.^\&p IDAT"UWoaaׯ zpnn:OPQQ7sɖ·7-My_32kdLğnHKnp:  aڿmnXJ[ ]'o~ΚuJIx:99q5b{P(TKUU_Ic/p8l`ffe"--T'9RKH!..i:?h`pbb]/3? ~jYk@?^°X>55+X/mqp0u; xDyꋝmP@ϟoff6 VYzmv'Na8*j%Jii1 e  >yr Hk{}TS)-K[֖ݻoZkPo]z$`@@;v.-y횷 27(de{cML4Phi/Zd~`BssZC)>>@EQ}۶0o9a/_Ne Ooo>vlިQ2hkzM,OVV:*z؟ ԩd "Q D&S?~5r7oތ  * Ӻ: gfik/\TPQQal44ee?lzL@[ '?hӋg_HH7ovط448é xpZڗ6''= J33͛7!`0BBpYh7PPT8~8Çw!(W_5JfpҢ oc-273ڵehk,O030PUSB[ȈPQQ;w.*^Xt_^PbŅ|||RR"??_PĂOhk,D"o-0Q23/_~2ӿt7 @TT]=ݸ={rJV^XzSCCOP!([N6vL#p*rrMF[ǰo߬ҟׯg-dPx͞4i* xJh `$ "{PW^tJhæv OMMII<{>hjjX|yeeett4A߿aŋW^z$ӟ={V]]͟?)22 sAO><{_m۶m߾}0 ߻wO\\᜜!!V.\hkk[\\\PP0a„{vUAF'D-Uyyy߾}?-[F59d9sן?_~9rd޽4i_wai?57w޷ްG @!&mmG>d$f]ƒh aѯ~ p8'QQB=%uO}dϟw|mm8B^O&'+=D[g722b689p\?D !o@[ z5~BX @XzuPPPRRLIII״2= |yժU---ȓ---d2H$zرc:ALL 1BYYG CCC씔ӧO'''<Z*:zvRcƌ!;;{ԩ|r˗1c@|rzPOI.:@QQ嗗kjj"uttttt)5'…5k"= ~e#FrP0kI`^h(CFcVVW A/ܗWTŋ'-TTT>}yFII)??~c˖-o޼9s G:q8(333ݻg###?aؒb%%J#""nܸ//]ÇK4n:?DQQ yәw ."('sg0)gA?8;; c#@^(4~y/LIfԀ DOo )h`$mcl=%B`NN'H0 ߹sGAAD"۷OCCCTTaرc***gΜ?>HDz?ۉߧ>njjZlHZz5![[[-^XJJJAAaӦM}jooڱcGK{=Txii)cOIݮtzϯ~,UU3;Խ{ GSS>@XXX^^СCȓ?~ jhh\ra)))zЫ򒒒RRRkoo'Ɂ***ҋ/{ :Wk9&2{ttرcDÇ{Jy@kuخ@>zhpAwjiiȬ['+ÌOuF9Q2+CG>B[#  aԷ !?'fc{uCOp FDDTWW_pݰ[nO3^ popn] ťϙcƌ'6w{r2c G>ZSv`3fؽ;m BNO~ 8?ef+(l,(P!uuu8ѣ4JvvKz5W^DŽ{ԅ{ntaAЋ/`R]GtKl?9_4iu8&CX<6UV<"pl O~`\zz*,჏vtt466FrkzH|yffujjjTs>~%Κ5/y-S'ϰ=G{_رcg$+θ};73_:8WScj 0 ?q3 Ob,vWb WW׺c kS%fkz ە^k( ߰!3bz89MxpS 2ih ],X.**jbbrTdZ`#*?  Fo$wᄀ3 >A&C0۷H$Bn{& @O*2=aCa###?wÆ EEE;vXhQ?O?v j."!=OO'8늁r~Bdee͛7o?= Xw'O+(l`>ڵ `  111G;v{`&H = =~J)>Wk9&GrOwFTSS^n=ۓ F? /vi9wb V>|ٳh a ]ӳ3vvv#ya[RqtxƦ&VAacZ B7??Sssmb10s'WEe3FC[H O]inn.//GHWJ/4Pq/+++##O"(Jhhɓn fVaB/A],@S(Nqq! 䇇/F[!Chhhځ QQQzGkdee.X@LLwfddܺukժU+WԬA㥥999 K. =zhDD۷oWZ>|mRRٳW^,ptbqqqoo<.gqfLo׊q55)gg}.ȋ/J&oܸqĉQF۷Y" ___APD.]ti]]Ç?z("""44t֬Y NNNuX111U}}=ѣG555'MLW듼p~H$ BFuuCAAT @!y]0LHܼ7 -KJ~ܹMHֿ2;;Ĥm$W?)++SPP`0 ޾b0Ed8 ;N,75-dh$& ZXh-:: KLٷ~}= ?D"ѣeX 3fuuBd2SB@۷C_DZZ ^__>"2Uu aѣw66p8,BauhCte c|>~NHpO(ŋe1c۷)"AЪU~ѿ 9999::n߾'y Dc-X`#޼+//a=<< y&p( &&&yI0=<47w&&nBqdʔ&6أ%`W89zu w'fPTT$$sMc  zehYƚ'X˃080?d.Zd "Iw:=06VzO#))WDZ ËWVVe',Y_ZRrFKKv[b^oYT/c^͉}-%TRRa+*v07MP;> ɖ С'@#>ha5e oS*OI)'BHa̙g n)//N ͛Ov866Jȅ( **gۍssP32@[40򾪨HJKMddV< O&APiO L]]o`i:lmmlIǎU8w+9_I9cɴϬl@ J`LX<8q"父i`$Ą-d`޽ h%p6oޔzUn*(;H{xus;^vCXX 0pFll!_ϿCRRm-,bЀ_B\| 'jMӠ=Z#ӿVɉU&k8q"H5 ZT9s--ow60PEQ;oc3vO#?)*X3ٿ?^EEk BX͡CY9#B{.=˗FqqOO㉬?۶e-\8FWWm!삼<iP#[TT))1z,*8ϟk>-tiB LL4bc}JBB[Zj媫mOvҥիY3#ؿfvvibb++yq:k**u)S4f::|Æ'͘an ѣe8`ǨQ2hl+I[[nB騸11>MM펎Ǽ"?|(PW {T[;@xF!!ǰ}q ޽-tr||Y+CqqMjn r@Z\CCS^+!!oz; uzpk#;dv"wY3?? ?ݸ[PLp!7v[w@颬FvӠ?^J6RMM? ӧ*+K:;-O,-?;{vǏUVV8 3 \Ț vO--G<`v2=::ׯK6ls~4(TU% w&N@[Ka@N IDAT? g jA~HHu#RhG:u~` M!!# ̞e?0 )u+\,8R m]?' 3al[=AJJ`IyDD<;m!j֣G=srʬdYH;p{]]˩S,[}Xc 6MO-,Μy2(h۷A'O. +`iLm{/ڵ̀ a59(&&ر7of{xOC[ӑ߼188~L#MM9ŶFn*/X`NJEGg<|X Θal8Eu4XtuU>}!(h 铚&YYqUp*)!a-2zII&O>{?[tV֖߶-D<{EE 9CGX#3G44 0`10P!l{*8΋ӼED2|5{kN%߸zRulŅі,XPyn̼<i>Dy}ttFZYY9s&.ZdS`А*e[T[ ֟ITTF[m! @XX`J .]J=}YTTźuvBhKc ݳՑ`V;u[BBxz{p ?\>y򘈈%ӧym!0qFVV)*fza8/)e=xmvv W {҉.c+&$$ySl矞=<<HssGttɩS'&L{f/R'/!`bUB17b46sN ̆+xDE}}m33w-_n/? zjznn mm$ lo'q{L#*φ /'//㓖|FCC6ki=A&S#"/X`.'ǵ[1#c׼yOr022]C={ɚ [ G543m!lJcc[ttGcYY7ڿy0J""%h 靦&̝;ojj׬#))sKVVqpp & T8|xNIKR18d ;wɁ|@olv/"hp? kf6*53BzB0 =XEEm-,BZZtNWv::7eJ0׸( #G0('2q?j i :yr_߾ 054аNMLMKKA? Ă/_j׬VHؿVZkk;nfWPٸ^VV|?e$J'Lqs3JO߉uO2]{?֭@`0=;{vǏUVV~O&On}E ;Y֭;w;6OVVe/_j||@$++pN^K-p:Sd̜i>p8~ ٳϥfϞΆjŶg:dk;ͤPhG<8 ,+U^k+WZۏg̦͌366uȝ;Mzz7(} \&##ߢ-7`n[_͚!zgNNա;BD]\/]J-8k!L֮VR"n̂ -7 |LR#\?877Ďm-;!]/8p8ܹ&3gd;llarvn@@G힑,0GW&&nf{˰ijj?*MM7C:1\X>mmO A$ /(? nҥ4o褐23ᰋ~'ؽϟ-h 9|xNI_{?%O? špi48+$ ঁ6__[`X>rrSh8;룭 HBBmli0 /]:m! f6v-ԩ7^/]jn0 ;;뫩I c<^@POMMEO͉kkoʉ(/o߬YDD04"<JҗN~fi0O.쬏 ޹ qqf?ؐk2ږ/B[!""kaիßa楤|{F LͿO|8qb\?MyHKELߍ!!~LLT@- -V<….<b͚+VXmd`ٮ]qVVÈ!̋z[,-4 (HK"++>gŋUU+ p.`ixzo5;4c]!.. .B 32v͛7),)##Sjk a˼6+VVZiÌŧO5 {*AKJ<76AIDmt!0 [[L<&$d.Jeg&$lDW[A66FFjǎC[ ϖs^DF۰~޼Iw[11>C:qӦ?~4GGf ^OjGG]Kzb KL*'E H~bNJSA[?TUBC=>ݢse.j*+ŭ[c?ollL^}YTT(, ༚<=ϖ MPh2el/N,ko?^\\I OPUOO45(( E Cnn%١-0(O\e5kHJXc޸zx fT;U.,CL&%}@J_?a³gHKpp/ н&Fsw7FEX*!!-^\\'ǟ65;V9d%%W'Ҿ0oq-ܿ?Ǐڒ^g` +WN`oqc˖]hhh;sfqvg0rOIZKh.A))IVV֡(M(,z_ġ(;H{xqs;Q̤ms޻.cSSֶmmªd9xNWK¶Un~݌ yz +&=A̚e5svG\-?1'""^i ""Q}*)tJyU ٳ}*2pJ917[ܼv-||||MM/?cXmm?x#]M~hvt<)wj,u` *bcsnimttԝ3g+XBե*uokkm45q/HɔHVT]YĂ yLMG޽L:9%++tEEE*S'N$K;9-0LMGŭillwt<YXXuoޔrdcc32($}L~F0{ ~q5h/yT^АIIk+%%(2sagϞ2?ҵMWBGܵkmai˗WTW788Evi{5s橔OX^kΜ37-f;RJMDDpB^c&&$7of!#h0gf#;^IL,[mmSxɓT|Rrx8 SQHux2:s!rǏ?aT!ܗKK{PΜy&##u co?#gVYY*+I?h%K"_.g(bkYP(P~s[Ҫ2fҤG>~݁a(5EL]ʕΞ}җNzjaT"E' ||ڸ:r"#gi?z[H**R8o׻vL"jA~HHuTHH??BP }۷s]fAPO{$ } oRQ:ulJg kT|||_uGҲ󏷊`mٲ 99eEGg9vݔjs'W g6M555h`#DDZ!uZ,$$İrk )Zu'*_!,8tYY _w@+Ǐ?AiX,Νu&(uz~~Ųe?vFA@%1qCjgOϳ},jI &&Y5h0,Gb0+ǓHǏGGg}3dB3uu>p82V\i{{!ڂ ?1M>}q3zlQwO47wDEZ'.\hazjɓX,JmYTZg'#޽ rzzݻvci5flqwM"__7h84kJ@.7|s$*8X,|۹vv/_^(JLLBl aݷS7Nn_=ac%*pb*KLF[p8Mv(ZK iΜ_KٸtM;RiyyW/'# Y]a8::nz0 dd<[Bb ;C22?\i ],6l󦜞2ƎU(*Np!er+qqaPFCCjh(j}}ᵵ}Otiϝ;^FY[GOzzo]#$%EkݻBEit.4sTR"8`?1 ##5++m/A(Ԣ"Zv-b%Bp}Q(Fw_ qp䉟MP^*œwÐE_Ϥ'1cq8]HbTP([os^S)jT+ OLd?2/.4ytɢPhus_?i(7;:b0rs˺fyyMhijʊ5HSSGBB>R kk;w SccG?UU5_{>d!0I*\(VIjeWmWU8P GZVE٨ eϰkB 履~s{o=9қ ȟfݻaTd5;LWbⓊ ҥcaa_ >|ÿBRS#6S1{v\ss\yT|yoog0X.,?yr8{QTT÷'0 @8w8m^xѢEik޿ B@ uH}}} BAAm<']sG NN&'}bcSfjfcAQPP'=ttQBŋ?3a!{{׽{wgP[^[ZZZW۞>@]=)MKb#/@I$ IEBTS#D--2@Q%d$"@ uuu]zuڴiO.*w^uaa/@$]6;mvp(daX_@__՜8Dށ(vsJ IDATX[aUUL Gu^h"jΝj(CLcKK;L/333E] TVo߾xBr.ǏE~tڵѣGoNV0 eyy.]z*?~cl*(GE`0LLLjkk1 ;s挝]SSa,+<}܌aX``q^~uVH?xx/GCў={aX}}fuu5?8":7nl N:>sQ zkȃdĉ.ɬ;y;o!yG0 ,󧺺:333WW׭[:88ᯓ/錌 /_6++V***?S]]kllr]m_ ?ggg755q ,,k|΁=}T[[b[.**JEE.&&fĉ$N|`$HPnn.w*??ʕ7n0ԩSBv_ hwb6qĝ;w~J6dF]x=[dӣʦ/yyoV'@ҥK333/__XXXhllL ۷o";;;|ӻJ__?55ÇfffGwHySS ޯj^^WׯBHEE4h֓'OӧN:hРI&!***\ -<ܓ'Oƌ?? ݅Yf]xðę3g ,b_ D"͘1w z< ' G$HMwYY,t'6Zށz?>,,FaX]]ÇIaa!}W[x/O2V7orrwրcDĉ F^^رcJH7o>T(|`$sΥv ^^^ONN?' N`fͺrʅ ?Jh^=KKeН%}RiV|﹡Hů JSٳgd2B`|922M[[{ذaܥ=8na$RB><ošgϞsNRR|ƌ7n,**񉍍j޼y~-~{ժUB"&LtdX***B7g0~~~moogX[lA566Bwgĉ>|ʸq,-----B***g^z۷o_zw eooaÆe˖ 2l0 mTȑ#9ζm͛' XO|sV6ݹm:p E6}_?>F1O㟪֯_ ѕի"I#q" 6mDMLLv؁d2FuƍK.999} !d]ο~ Y2o>777ɯ+WwLE .],^Ι3]0 ;9:j777?p9s( 7Bkדdܬ喝v޼y| 1Q(]F+NTp˖-`2"ql]V{pᑯ>&d/?ן;#?M4E5KD.`tR Ö-[6x`ðpcVMMMVVVqqq'R9Y.@DEE͝;W%9w25}`ww/aҟBi"߱6uw Jڵkuuugf~GG~yzztDE~A455w܉/1bBF^ݽ{B7$Gutt422ڹsɓ' i&|6AR)JDDܳgBH$#\_pYxxx[[[H1 ?- !UUՄGFGG;v,!!?8ԩS7o&Hyz =BYz5^R#w۷oGGG߲]t/͛G.Y"ŀ822JdQN|cI#{"DysR(˗/hΗO/L6JVaaxBW!?o]Yxk&L{𡭭-ľ8+& B(//D[ BDD!@$EE%bHE/,.)^d<ҥջ?マZ)g ͛Q7#¨Tjhh(͛7{{{ߺu+//zܹmmm_uvPeBk֬)((xITTTPPԄ8rHCCcޡ  _aa"uuur| bSog1ccyu!Kw߲ qcJLOB+Xm۶ 0@[[̙3H'S}}}%|&84D"111),,E]]o=zٳ?w_[蛅vKKKCCnf{yyikk8B_'焄___$b=H?'?Ӻu61RLOH}iiiwqo;&OzS#x[[[~ɓ'󳖤$www ԩSvv^/x/a P(FFF, ܹcnn~޽?oիWtQhhh[[Ѕ:=Rntpھ-uLnw ^ !Cў={aX}}&^W,??_D3g>|!TSS#tÇ޼y*99;:[!B)ժ R6 -,23U<#xڗ 3dl"@O}AEEEHHA}0_rƍ1 ;uꔷ7@k>}~VڣCJVEo y>\ ͕FΦڊޅ ++Kw !sQ(8w!~ìY.^aXbb̙3ETd?))tׯ_7qrr_t./nԪOrF$߯ *]J ?qR /˫ӦM/QC6#tMKKK"Υ=]խZI-?B{y>>7nO!8^"+w3L⍏ys7 {̅ o sq1w, ,@@4'''k0=C Ο? /]cǎgϞ}bk ]IsBTC99,]:Əw21ѓl_~rF"O? 'Ia2ξP87n<~CFFƦMV\)ܿE""|h4/He꼼r,UQU;%APtttR"##Mf``x␐OoVGGs;BApwB?M!fyj:TݻwǏ)fGWWWsG1Wܺ .> Zj^T*#GoVi߾;66/t~U@aBBJf mP IO]TRD~Ŧvmm54(%5W{"Nill{*7<#]^^yf{UUӇ xz ~ZrlX*}ˡC }}JA)ٸ1155(2ЧqoJK˲KKJjB::ꎎ&Ǝ&QQ ޽+wb.Y22rHI5S0\Y=xD6mE{%Қ4TU5} >w,Y+--.-)+ooM>Lff0(&&-:]ށ(3׫-^<255'4TrrnMk׍6ɷ~g&@RW_ߒSSSSSd"h4]{{]p(GGc:VwOdF ~i_};g}zS ںqn֤Inޚ׷8ڵzmz16MU^^y^އKŵ[YɓiFF,݀tw횹lىѣ>}ڵ3G&χ;w(<}-ý_ry**i3gqu5ia7P8?)S}Ygg Olow]nllO]"IJK ر{#{***rs?$L^omeHD33}:rXWWs[[ b{ϋ/?qO,g0y[Tԥ3K*<8q϶6E{8 =LfkNN?a*iBQ:t:|֬t:u@3 Uy A㏿}OiJWWsh{YʟX,ΡCiֿctԞW[[lDi::Ctt4, i;vL0looOijAaa{KrK;jmeWw*KvvT1chT@> R$sxu Ӗ r Ǹ\^\\h48 k: Jtf{Ŋ.Lmmg$b0,[Dށ:<WSbqd) @\?)--N/9,3uOTT0T 4`|#@pw-liHzpH{{1Ԩ@|E8:o4u+Æ 9޳FEGGҥ+Vlx̜7 "gKvvTx,OBZ␐7oYE(ٳ?ƦLh,0P8זl)'jڵgsa.޾**gK<Ɵ )P>YI hwo`Hq;;j`frܣke6WÁ)SMwHZXXW^\\a˖Lq牃OPz?)ɓVuښi#~))ٲVYxmۦzْ*ޞ6sU> '~ļeˎ:=12sM0L} SN ij%s- R*D"aS^Zgy,|ɒj++CFX_rԃu|`,RNNYUU#BHGGʐNEdz% dK;Lhi%$|=qիO>PS .TΙ3&K5t2#DӞde4=%? P\?)!sf:guzL&8v~x>--cɹp8⚼ Ess;BFӵɓQT}}-y PT?)aìw옱aC-E܂>ۻ΍ӦyH)mmE>kZZXx*6K mm)6}foOh;^Ii͛YAA5g~^*UgxRbqN_ЫDJJjbKxiJoogKK ?)-[޽]0>)iQ/XW_eg9:KvrQ[\]~Q? q%%!!c$&PPLf[ap AcҁXoNĵ?iSW.%@@ԇ|𲲆DIܺZFӝ8Сӽ{yy6L˗\czz_&%.yvȑ O#`SiӕS?VQѰ`˗CLB3gohh}hBh҄&T O!@(/ٲ2!헖3@hi`2[ E)jrspx o''_߁Pe? I$@@Ն۷n5墕ÑH$uu V8:*aaXRҋӦy_?1ۉ ʌ-#Lؤ>ܼ?VUՈaCa/_߾}Ʀ:G5pӇD"$&8L;"w۶%egG=zc7gx߉.mjjG\X49sYi8' vG.?X!)18#9af =]7[\ I$1661 84xII Z\z#ϟoߞADO~~M->yd+WGAijm/O} )(3 ` O3mw9BݹUPP5pB7Ο޿0~<)UuΝ7nkYZmmscc[~ KitjKBd++C{{ʕcivvT U9@̘qcLs$jia;vﴶ@E4w}'#͏?NjP֑mml"Axq%<%PVV{sOfR_ZPPYRR>^]ΎjmmdgGR~7@\J4.wDJ 'z`Z\\*cg϶kaaӧb=kDASSҥJs婾%661 9!D-ΎbcC6 KG_ŋm@=444X,yG!u >g8zOh D8iŊQ<"/>zޤIε5R!d``@$ '<\0:|L|Ӭ/鬬@c͚B]ffz?Z[9D"AEfwBq8/df~M F-0 F)D"c#t霝~ĒDP5.]]^^yFFɳg٥ee !UU,@jkKIO߈3fbrK\@blzw/^xĩ@9@ǡPQ(c8?rr33߷ O:hŠAS@yI9/Z  ͟={F&/^_`0TUU_|); ?ik;.@(((D g9)ù](8 OիӦM7o֯_ Zzu}}=BaŊ[l8p"{رcL&DӧOgee&61h]ہAn߾=ax55ܹS}!pÆ ƑR####fjj_\rzϞ=]ڊqH$xs; ȟ$ڵkuuugf͎R %""fWS޽kaae ##/t !ꪮnmm}Iyuu[#F h4.sjBBѣG;Uܵ²e~׮/1ۼ}~tt4h0 {{{ zv X@Ou> \nLL Nׯ#m;O>mcccdd|򖖖}u8`@ י? ˩TGv/..ذaC~~>B7%%e֭/_>|xxxxW[555ŕǓ䦦=zɓ} ]ߜoÆ ;v.aɓ'zzz{UB'Of2.]BUWW-L0!//Ç[nP'"55U:'1ݻ)˗KKKWᔎ;v, aÆ}u>~z}ObRWWgff*PVVNNNvww?_|mVVujkkUTT~駺:r߿iH$RPPJuװzǗtզ PZZa\.K0~ Ο?okk+t!&OѺNz<Ǐ?  С'O/wt˗y{{}_***×8::N>SSS>|hff6z{D755l}}aMyӧO$&&2 mllDM/; @J=tuuњ BO@48XSRRLJsQD&&&ϟ]m.^X[[PE_"ǁ tttBBBY (J\\8 q?|ȟ>O'!;@ P 0@%NKCCŒw@a; @/)Db#@@q 8?|g>tZ2IENDB`XQilla-2.3.4/docs/simple-api/classATQNameOrDerived__inherit__graph.map0000644001725400016040000000064513273140076022617 00000000000000 XQilla-2.3.4/docs/simple-api/classSequenceBuilder__inherit__graph.md50000644001725400016040000000004013273140074022537 00000000000000486d0dfc96944bd9615d4ec1a5c4db48XQilla-2.3.4/docs/simple-api/classModuleResolver.html0000644001725400016040000001410413273140074017513 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ModuleResolver Class Referenceabstract

    #include <ModuleResolver.hpp>

    Public Member Functions

    virtual ~ModuleResolver ()
     virtual destructor, does nothing More...
     
    virtual bool resolveModuleLocation (VectorOfStrings *result, const XMLCh *nsUri, const StaticContext *context)=0
     Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI. More...
     

    Constructor & Destructor Documentation

    virtual ModuleResolver::~ModuleResolver ( )
    inlinevirtual

    virtual destructor, does nothing

    Member Function Documentation

    virtual bool ModuleResolver::resolveModuleLocation ( VectorOfStrings result,
    const XMLCh *  nsUri,
    const StaticContext context 
    )
    pure virtual

    Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI.

    If the URI is unknown, returns false, otherwise returns true.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__dep__incl.png0000644001725400016040000000604113273140076021011 00000000000000PNG  IHDRp.rbKGD IDATx}PTǟe7^aE,gW k&QF 0STNʌ3Aۘ3Z氀 DB.Ċ"miw8m[. wz>8>==߻眽G40 Ɓ8;!!vgΝovW*DJJJJJ ˳]x<,,\"JO:Dv%RRRR&Ea߾}v2qwCCظqrG Y :rc#Jۗ,Y"Zݻ= rspGJt[>})M zꩧT*D" vAnN# ~aGJZV^|8yhժU V6662Ʌ lْW_@ooo||KRSS5#?yĴpkkkzzO81n񵵵/ɓ'_~.ɬZ!))IՎk)455eddKf58n#qڡ+WvuVOOO\\ Ǐ䔖 *NڳgX,hen4r N>rȽ{> 'JrMMME"N`mrqKK s¹Q-[VWW'Hcbb/ A׍QzU:ϧi`0x{{'%%IRT>55uƌ+V{ա 6]u|CIZV@V.]Z[[FksrrP b# N;VOsssU*n߾]TTd0Dž!::>~xdd$ˌg͚uСG.X ---66 |vg'nKHHjeBIzyy\RR͟?ŋvb-:rIݽ{wSLˍFcmmmgg':d2M6}۷o-?F0V7LVU./޽{q3IJF u\-,XN1|||VXQRRtRPf(@0<<|Qr\:+((PTfY 0+}eFm'*DbX;Ϟ= ڣQRR{uBf͚1N1QΟ?o?''?KKKKHHؽ{wII+**}#Gܹs'""B&y{{!m631gΜ%K$''wv򊋋F+ DQQQLL̙3h}ջv2 hL Q}4d2rAP{{{_{558. ?DaNwܹuֹ; k׮egg?111ך9s&;8&8y*OX,dk<] ǻqԴ ݭT*Ν{ڵb$;~o nCCCtt4hZW(;xQ. ڍd2Yttthh믿μy``7 77nxO^paXXX^^d\PP0{찰=ԈDhn[<###}||֬Ys.?xEjFG􄄄NZxb\^ם,r9Mӟ|Irr[jO>g`ݺuz^T*5YME577/'Niz…իW0oooGrHzPV3D"{1NϟkiF/jRsrN߿_SvVIӴF+j___ԃL)؎vjl3I?cnhNKKh4h](B˗/G0{l>Mdƒ:::""" $$Y777L#F N5y`3gtvv655-[l4Md2Dh4ͳ>eT͛fѢEZO?$ i۸qcWWW[[[llmh.--@R`ϐh?vgqCErD#;h<1j?*חczPP̛7/$$$77)7|3(((888++kppfsvUj4m0IPNj3b::)' )0r(!!qw\rW^q,뇜ñCO?Mes._sYz3GB!!qwCmH[TIENDB`XQilla-2.3.4/docs/simple-api/globals_type.html0000644001725400016040000000627613273140074016215 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/simple-api/Sequence_8hpp__incl.map0000644001725400016040000000240013273140075017177 00000000000000 XQilla-2.3.4/docs/simple-api/classSequence__inherit__graph.md50000644001725400016040000000004013273140074021230 00000000000000f8a594c6697b9009a8c236c4c9d9acd4XQilla-2.3.4/docs/simple-api/classXercesConfiguration__inherit__graph.png0000644001725400016040000001375513273140076023563 00000000000000PNG  IHDRfK^bKGDIDATxyXSWO% " "KEAc8BJ(VJ*f H+̈V4@pQ Ed;+,!qH6csN|s]r/BH ?bCGlH l7|ٳ)DT*511J~/))ӧjE2bNuԟB(VG! !0lt:v0--V*ҥK$Z&&&?ĉ7oތrAAA bÆ @gF%{{{T ^?jjjoΝ;W\ɓ?O%%%uuugQQQj|:ҒaߵkݩˈX@BB޽{̬z7:::p%Z<ooo5449::v`D"affQrNNNx޾-͚5 uB8mڴ|.]]ݻws\T+HUWT*]|9J oBqV YR7oDrrrlmme/.\!Ov1~> ?Tj[[ӓP';!_&LhѢUpQ##˗/={V.]BSgJJ O$|etX `]]l!4ӧ#邺{ eږx\;wdHhkBBaFFJTV]MMMƇ&&&Ywbiii зwE^?ݺu Ϝ9ccc3x|Eŋ$֭[P|^^^|_e;p8… ׮]@ cʪ+S1#b?1i&??WᅪH^9G9q+iPo{|+i^+...]]]Ar#6ĆؐU/*\#@5ʤIK0i0t+X ޿v큗/X} m>9S$֢.?HW r徦 ;B9sCrԅ}tbN Դ"?S,~q EE5+IMhqdY(Jvv/;RG;Nww% -X, BΝhJBjO)T c+ҡ7RiyyCkkF$m󯭭ƍG o R_~m/'J ]Xz+Gh/"|"?HcTꋯ)m,Vdrrвe4-D]hGؐ?bCGlH !#6Ćؐ?bCGlH !#6Ćؐ?bCGlH !#6Ćؐ?bCGlH !#6G%ggGjZū!22rDWZZZbS^De|Ϟ=+VZN=$C6O,ؐ?bCGl_uu5a\xGc___LL̻k``0o޼DX x "f???+++s9sf!#_B"++Ka|}`bl<ٹ޽{3fpuu7n2YNӋdߺukt:ܹs*|?~Bkx4440 WZj* ͙֭3Oh"XVVVxdEDDF݇U(˰2NBXYYatlZv33!8h"yd{?k,}}}33Dk׮6ۋ$! b06l@;w2 'J҃N>5??02Z(../H._eappJ޼yB/^DP; رcxkǏW_]]2 k\ްC̿q]?;vҥK%%%l6;77'MdffVS3%555*Zh_dɜ9s222P헲7\~}ܹmmmmmm, 3f )_~&үPB)o$ݿڵ9...44mߺuD"'v뫢A@]UUu`_z6>>/ssskllp8[lANP>۷?OGGDž MFPiii===+V"RNTwHS=222t{HEEF|>Æ zzz666]\\|||T~oɓ8d2QѣG^^^,p޼yyyyvuu2 ssHo$I$$##%K[„I&ؠ<)? )Nw|陙4E]h/'p=.OZԅɿz-k_M// @*lZNDvae㖖nM+R _ST"VW?8-@ ήե D'+4Gh7D"|[WQ+ߍ 7RϞzzԍ_FI$lmO۞qw{rs{o$djɻ`pl,M Q6 #6Ćؐ?bCGlH !#6Ćؐ?bCGlH !#6Ćؐ?bCGlH !#6Ćؐ?bCGlHK{ʕVm{IJyyPXi *'XMaZIvvnqqq| J#?bCGlH nnn.]#W^꦳3!!aaaaW\m m۶yxx\]] n?;;}|@___RRRPPz/tz\\\rrŋnz^Y\\O? T---˗/Gh?RRRb0-GzzٳO>eoo> e 9Bd2FFFֽReu?QaXlllaac ccc~XbŊ+V$''b4TUUԤxzz&&&=Xa-kBBB>#??ϣ+W2|;/_jժꮮAAA˖-;y$ <<g B_||MYY/ᔕ]vɒ%+WD?rye,/󎏏Ç?Sq6ҒgϞt?uTlllmmmiiibbbRRӧO333o*G{`޽;w~'P_ݿhhhJJJoo/#NAAѣG#""?~#zdaae;;̯*55[a#7RX>~XGGɓ'¯dZ[[VTxufϞ}…`kkSnܸAY-H!4mɒ%t:gB($KJJ[[[Ym4006찰s͙3g͚5Ghĉiiiׯg0kק88`,7|p޽mmmjQ(Ҿ>HaNn߾֭[?SNNa?ô4ww3%%UWWgddP(gH$1 D~I Ȗ<n;|ee#Gзðpggggg琐qڵ 944Tk?00=00㙺kho6%%,+..F&MtС ~{۶mxN ]x)Hzzzveddr̈{_}UBB[LL ͞9sʕ+ d G ^z.Bc~TVVd2mlljiiѣGSSS5J!YYYxvT'466n۶^(޾}ȑ#;^z```_4-jDJ ѴQCΟĆؐ?bCGpw wKJJy-=?jy*<?bCGlH_L8IENDB`XQilla-2.3.4/docs/simple-api/classDateOrTimeType__inherit__graph.png0000644001725400016040000010446713273140076022442 00000000000000PNG  IHDRZbKGD IDATx{ Tiw -BJ,P]RvW%JJwRJMR*hURRD҅JEc2qvgc0#ﯙ39gf}s0&!ȟ' m$E+**gXrqqqqqb0tL2,(z/ MHLLC\]]&? Om@@6?e۶maݜ-d2 J~QQQjkkI$СCwd2Ho޼! -O0L&Q(F'' JejjzAiiiqqqDDFwZfYYYSLy6MIIOb'@<{˗NRFMMMMM;}"4%%%۷f~&Nx߿_l6˗/-Էoߔ##YfeffEDD4/ܦ޹qu/?bL&?ؘ{J@aŊ׮]ß&&&ZZZjiiʨQBxA"444I$@EEEDNrrr$)** 2KIIKOOosWgf̘WihhPVV[h^bݻHAAѣGm=> .;777s;'۷oB555VVV!!!>D_XX㔔۷oTWWYXX4iիW}9sҲy6γۥK0 CݸqCVVvԩ<ۮ688[ow~{aÆ򫮯SNyׯ\|yȑw~doo_UUdWXA"ʮ_YP%@s򲷷f 8[xuww3P]]ݰ0777uuuakk+//h/VVVVUUŷכʚn߾hsWoҔxvJN \^^d5kuD@YNO|pq޴i#] ' >yׯ73'ꈀ@uݻ]Gp= 'u}n=z{o--%QGD 'YY>>ư={'!fcrv>lhq$OOo_}|׬nT{ !=`s22Wu8@0 vl(77@'? 䤤MZ5Y1ŠK#i{: `@iKI__hO"4$!a'=a]%{x><_ZV@\BB58e1t?衪j,9Uم 66DN UΟd_ch!p@78YY?|@YY61qmG4))) %1UM_zuwd+6 Zł @~=y"۠p"v]xQ08{+&n6SX` @v{֯*X@ߑ#);w^˗u,GaAAWOoߜsG:O~Xl6F"Ŝ>@Ӷmݻ9[d2ST*S}}}ί؎/%HCUPP޹s'l^#;͛AdWtɓB`F&( gSiiiiiB255E=x𠴴8""FYYYUWWkݻwjjj-/??ZMMóLbnNqSRR`B?zuƴO)SzuW *((|͵ڴi"h4ɓ'B4JVUU!***544ƧMvm:Nl:JE\Ӡl6ðxmmmzhhz\\\IIɵk״[} e׮D+Wr/JJJ)Hvv6Bٳgڔ?544|NXTdKKKj?`1LfOjjjx㹹ƹs⬭0lܹEFFr:s'~7J quru,!L&{}7B133kS#!ii˗tKK޻YTTy(`/ !))&5IRۡRÆ S-ܤSll|(}٬{PPvS NsnnnW^6l!O>!O~d򣀀+[pc?iii7o^AAeee>}JMM9sfaa!nQZZ.00!TSSW!f͚\#Ge_x6P^^>yׯ\|yȑ|}UUU``%KZmŊ$)>>B9dg11;pf+'///{{{-l6Ϗ']]]wwϟ?s^ UQQ sssSWWg0xxbeeeUUUOOZ~}5Y_t:}fff۷o{ZީsWoҔH/+fccxǴi撒pÏ OףG#DrW Q:*CXgrnnݯ?S?~>}ȑ}uHouW8m9, A@6ii+W~u8XJʋoR^=nz@(`8ڸ1ƍ<1l ѡC)>U9:ݳ̬]'b'""=>ɹsb~ðgw_{HoI:(  ^nԉEKSؑYCϞ]&ꈀh'b۷S^E$9_HHke溢?l6jU:vC|_kwL$x:" z?JEENԱ EEe}W/Ç;9Y¹up9zcAgϊ7o}…7N;n?U::/Y2VԱo߾܈Lp-QG b,%}{6K^"n̙V0ax'"vଡ଼׮mTV[/.3L؁@@ܺWSS]ðǁWe(o[[CQE  2 WLǏ_7lܿ_0oި?!++ƟŚ$y0,2 zz k-->MA@4.^̺|9'2rB3mݺ fvcOD/|)SLݸ1F^wl#v}Oɞ9PmmCRo^]<1{]fɉr ']-$$ŋ׻:y~oQ55KN5Nʺ/2"8}޽pe Х?.9Ν Nl쯿CCoLd2o߮[q%%%d2;вK.͚5SW׸fGwY5WG=z.(hƢE]|ɤP(])@ + @پ=zl.Kb%ׯ_7yOlYpӂKl6{ܸqm ~Æ cǎe2-t:]__?<͏O'ƍW>ٷoNݹjʔ} ƝQ!Ǐ366'%%LJ{*$$חgabŊk׮O---eeeBKtYY'O n,''G")=={d0$ICCC]]D"1 ꑑ̘1 x ͫX{)((x.p'!L&SMMB)MM޽{XZZ"̠JEE_t~~t:^!D$g͚gnn~֭Ǐ#455TwST*uذacccBEEEZZZyVurrȳzccg90:  |L?Iղ3tڴ>U%&ŢP(98___|_ ɓ'8q{c 0 ;z#BՕD"䄅qʸ\|9&&VGG}]mmmppTJJBx>rSUUC~bcc^:l0CCC~אo;PFn۶]52SUg4~ƳAf: 3.ڜѝ;wDϟ9[?~li~~J۸qӧO)))???..ƦIH-aٳ>}:rիWsW~/744䞞k^RWWrJiiiRRIiZ}/!̙w[azi1o=6m``ɓ'x͚5t:}СN9tuuݹP]]ݰ0777uuu|+dddh4w/t:}fff۷o{ZF-^XYYYUUӳ_a|PG(ĖѣG3g0ac  4[\WaժBl NHJ W-UQt'pq7o>W/s['׮ ȟA}=cKNN&ͤgnnƍ3VVVtO 4FUUm`P2"g!- Mx @G{WqDtMME4xHʺu&Ε* v !mt@æ㭱XؽcL3@C.]~MBڎ1+ϥ_0D(ቜ9s̙#Ha(-ݯwo chi[$))?jjǎ0dn6U_X,"+?EZ.SWzٳ/_Vձ;qvDsӧݻMAmz7t/>[ie_XቹJ;/޽ƬۛNfWj0*OJ t`DչK\*ǯ7n~\ԻCE?h NW%':򩲒v;c]{/JTTN2}c g֭))//^\Ց䩼fܣ WbxDjB2ILO`,%Euh` @1I }v7R\\&))RX_?r%R[[itsGǡ$$ ?hOΟjw oߖUUpaꏳ2>I|WJ~_,,-H~(?hWҾ9xpoO%ኊ2vv'M2!?&ȟͮ]dVԾ깹܎k9\^pcb4Z}B“K336mTC'mEŋYHG<͙sJ%⿼/ʸ~Z:'ܒn66||TŋWףC>T̓ꨨUTll rwp"1OV|TuԽ-[~iӉf/_Xګ`^,6mԏz'> Db >BB#xo܎ T;;6AV>~C"Qux]]Q~0$$0V? prqH239r֭[g`>}dDqllʔ=yrq܎5>GGG 㧱;^Z[XlDb70j~cZ`-[m˿0y*/9w~DD:Gu}}}&D"q׮]a @S,{Ҥ=溇Zrswハ]5dNׄDnǓ'?QRuulX @ 5JWW3bŋ Օ{#?h*> 0brr^]x𖋋}[(v={f:9YvM`9y^tt\-]:NIIk9ȟŬDEyP'[\ڴqٲq]R^ާ^yddzKbdW{Kuv<.<9eJȋ%MO߼lٸnԻ3TSS佑#H1VVSS79ROu2<~x;;;ccc!(~RRR|||'BBB|}}9O]\\bbbbccgϞyzѢEjjj:::6lGh={ FTyAw30bŊk׮O---eeeIKtYY'O D")999O饧# H$`pWڌ38AYYoyuw^###G)3ܹ4Z9bDͱ< 762]],,?~*H>}ں5`={z‚b 8~8a[l155mRɘG}}DYY W^ijj>yðjYYJȍɓ߾}kfffϞ]UUKF]t !TYYRRR0FIKK/Y8** !T^^`00 255eUUU&;~} |͵ڴiwu|l)>Լzhhz\\\IIɵk״Ix?@Ot=-~v%VTԜ>vwl6ߢ6=^, +֯'>'m_ɟ>|())#gϞqh| !ĝ-53UVc5eF"sp\\ܠAWܹaXcc#^yt] 5IxB6K:bRSSL&SSS3%%ðӧ޽0~SFFFnn.0ccRqrrwueffb6w\@ndd̙3ΟѤ߿7>z􎖖ҍ)K̙Vmۮ?9wni?a^TTvL~u t2d2WjS(333~555{]PP`iiTTT,[lǎM&>b A8w8Wuhi%OAA޸t~~t:*BH$Κ5+..֭[ǏG)))ijjRT;;CJ6 lllj"---K<:99<8!!CY‚ܼ}oBL&`|x1sGHJJXիBB"#ӏO 3nOBRcw9-˖a'EPBCC9sp*'O>q櫦lmmkjjӓg̘ٮA$߽{?}m~8-mcvQGGGP]]+D qqq|rLL?@tww >ۮ688/!W=UUU>W-66իÆ 344W]__LƼ@ ~,6bs2,ݻ~%$$6ntpqnA&}Lˈ>}z,[O5CCΚ5HOKK+//wwwǷ̛7/44Jrl۱cM>}lv||իWD"kĈݗPJJjΜ9>>>ᵵ{ tNl1chii,X@^^>;;5SRRڷo>Oh4gggN#}>|8Dغu[rrr^!}vKKI& :488_...ǧyUVH 6 4(((-ZT4FAJJIdxb5k_f{z8PEE)3ݑ#^=yS( *@˖-[EHg?64O-a0XUU3f|SW1 fB,_~9_@<&;>ާ'Owޝ>}z墎'qʾ5߈aH$X<&%0 cm 9S ;7o vm]7&ģGfΜ=aQ d @hllz{2))aɿf'-'cǎ6Yfcl6;9yBUQ@SVV-!t@pv`Ǎ)=}͓n7_Dd?|ѧsb@,@=4IMF oYXXYD ``~o-Oy ||ˇ_<Ç/ee8%%UW;hыa==]?3..@Ν{QG7772,(ҥKfub2B82_, XWuUTfJJ0Xjb}chL&T$h˒}n$%=$pmWVkFfi&CJޕ !))*-nDWWsw^sHJJ޾}I6O"ȹ( rqqu CWLf```΍Hܽ{˗]OJz&))aO_o߾s'ICJ7gK::ʂO@WJ߹ -}@'O)(Ix޽HsUuuUW~ Oeݺ|9H$`dxu+o`Uﯪ'bFJJ'Mڃ0仰~b^/Rp'@0LB %EWd}[ޕڗ?Pc6|yy)%%%ח|Hx͏z+@x捨w۶m#wy#M$^Z@̝;w׮]oرcK.>}+Bq퉼N8]kJ~'OXc7z RDDtN 9 jjjv1gΜW^[RRa_|_(BRR[||ԩS;wFQY)ooMM=P2nUed=== i&!6cU''RPaa1c!UUv(,Jll:>|XKKfҥKOdii+[h^^^څNz}$$ҥKxW#0 ssskkO.)S_LvAAٓ'o~f0 By9b ro߾!MM={hhhTTT,\WWkw8qē'OO\VVfAC헗.=NNc0Xwivecċ%/f}L$`={˗7oޜ2eJ~~1WSSka@KFFFFF!DB_o̻t;X,ӧA}ERSSXvŋ/^̳0ͦh-7xY%%P<[ѱ^xqRR#X^zǀllד0161ў7oBy1۷<.&"`H$ uuu`0F6/O饧7/"&&&***{A^EOOo߾Ar/]fO:?^hΆ 27սcX{522RPPyQ3žwڵ̶,[vOkzLB&&&}ݽ{s uvJig7<}x:tYE988}ݿ3gw> <~?2kiiqrʮ]v#"[ b͕,.. 7VTVV}R999yyy7o 67o8ڴTVVc~kGBBbر8p`vv9/phSt]$++hѢ]\=ss5{P= ))0ɓ's_*rnFL|Hc#-xYljsww>}@> ?\c /ի]\\v)##s |J^^{'O޸q!C8nҥ˗/_nBHVVĉ?ӱcǖ-[vɓ'8&<GBBbܸq߿7nv;;oڴiĈxަf#111si2+B(&&{#ž ..5DR?G+Wr.^z_1#))hm?uٲeKQQQtt[&qyаIB/JM}}wTW𛄍 BbD".QT@wUhԊ{ BV(PVP["h A<Od'ɯ>ǓccӪyL&i 9yZ Gl0u֍3UGX:o_z5sK.˗/oذGn5ϨQ}]DĩqB=zh,_n||/rQi!m,ή]?3Y;#Q.**məm-$z~&6㑗0 >bl-ڝ~tI[Nsܾ}{ʔ)/nuƩ 4r{)=Dzzڵk 'Oz|C%蠐?u`** 66yH'`0,-E3=bPqjii߿bU<0`S Լ%;Л7RSsRS_&&>wyUU d23JG+'hcȟj.dXLa G:hMȟ=j!PAgȰz;L&))9wݻ8~ŨLL&#..ٳ|CC CC=4 jbK*ON왹tm`sRY,f퓄y<}TT?/s'+'-ҧ(ghퟌ74즨('K 'hLMu&6% FYXw?^yыEϟ=~˷# vUߤ~$ɟ( R&b"""? |?r2226lذa5q<[.7`ȨOq u"#Ӎ{|;>+%_o_C楧 <&#è;?ǔtdndnn ZX]}GgTtjuZFhh>[EeꪉfT=zhi6bLFFŋ666Mm+++ϝ;׻Mڌ ;;;))IQ΀bM8QAAAځڵkyyyҎB2S_~@@]{˭Sյ޼&"!`2@oPS]{wEuuy nwͮW;vr1PP}O_*mmUmm=4LL ><`Xb ڒk4t6 9 k|dg۶ݳ'dP5kpIjjfQ_;Qo, 55|"vpqj X,ѣ$sM ь B Fvv47mCGyi܆ٓ@ϸߊ3a޼un QUU-[ԙB OiRPתWaii5zeYWqqE/^3/RS_zULEPCYy`k 'NG[[UlzVIInР?(OW_",즿СndgUU;Ʂb~nݔ[B]]Y]]Yt:!~]Eыo?/q+-vN*JQ72BE)S7kWkb]}M0̅ GN펌 PcH3N̔vD?t:lvWiE;,#C/]zk``\u5OK|V;󉼼w:@ aPUSïᩦ_]xmO}f瞞cnc2L&!pΜC=xM61۷ KPjKII!dddL4I]]f;99=x@ؐ`-N0`^W ^^^ R;wuqq~111OKJJΝjժJB۷onvA6l!f ^pw۶mKXw)++s80z,!!b`0-ZtYmMM p8555CBBurr^fUU:C|>? DEE ~- 3U](#&AcOIb1iӔKjje34tA|~t/6 ::΀^sww'L6ٳgfff[.rz%cmmr%w]xQҥKsrrܹ{yՉ'n޼co޺u"z~ll>wYXXEhaa_ѯCCC,ccOүᇬw&$$\xϯ;?^IIiܸqu6߽{Ν;322֬Y~[m) :/p}::30X̙wx~" \Hu]w$5nze tHbM _R=׹u떌Laa!EQɄ4 ?Я^" 'dff~׾E ˫Y,Çǎݻ7K(kK|2EQަbBHAAݼySSSn*h$555inn.:>>B0ree;wPF_`MLLBBBc6&i߫N%,KWː#GZ3Ob1왹jՄ9s/D^ӅTgnk׾1Y#6:t>b<OSS`XZZB><f蔂}VKtt4EQbwo޼ɪ޽{ pKq~t !DMMfJII/bjjZ_o0uttlS^^~y˗c!ȟ:#6[$dg==ǞرS kYӠ ~FCck|ǎy#˭TϏ *7=R_&ikk{)ȑ#ʮ_$,fXϞ=>}TOOO󇣭}ƍE+//?~G8v옙ueee?/_vtt/))?rvv]:tҥKE.nk.--'N~'Ir{۰m7 WxQT秥vvFm+..oKK+bapeaon.5{ Z"z#,?Qu=[[[UUUSS˗s˗/B+VYfihhX+=9rd.]Ěr+W߿͛߿_;lѬt޼y .,///(j…]trhz<|pzBa˟#Bjj66ƌ}K޼y7y.--%GIDu5wU`kҲGk z FddFi BdeY^^vG~-|`#tՕ+,*N#ބ JWWK ;8x_`2fg}|ܹvFG'x(ho?deY|uz1lX#8ڏ?^hxW\amСխ=.@?j|87<"0- +mR~w{\CmZYm +..o b1bb>}jӧYz '##M`6M}{Y#feqمm3:OSZ쩹{lcWmȭNL|fА?Xoq8v,ɓMAB֬}ҥa7o>mh ukmpW;;ﵳ  YYYӖa@g@@@gk.Yrҥ%m#GTTO6lvWDBa0Æ 30WMݼXׯoxc0JAA>|F7RR޽>\hkۛyx g0ȑ#{^\==u32773gZ` P;{ V1/ޞ8[W/ZY\`ĉ,6!%$9kS`Jg=\nՉ^ZZ*mއݹkΥϜ9|]*I;(x zǏ/kL2']|ڱ5Fvv׎d2yzKKAch;~Eє){tt=HEEkwއ nٌܸ %?|/م&Q Gvv){Տ]ԥ|kx< 66СIIYsZOf^ssBBƍ̰qqir_|a1w~t;ȟQ~5qc.|I&5|OQftˢ.wGM2}n@ wypOtҲ/()g:*jTܵ!f.3_~9%V̜y0; "bqgx\NNq\\\^^lܸݻH;4h,O|[9r]Z~exeIq/^L?s+|A=&L0o!+/9r]vUYY`ApRRVHȂÛ|VUYYy9>jKRSK**xzzVVǎ:+++###[O"Ǐ[,-7G{Κ8\"IıcǦM&C1zQZvQ[ORΟ_"| y9s%^EEEM>+!$**JXS(>- X,mΫWO߷l9Z'h=/^u*%!OI9n\7o>uumh9O cƘNڵǫxʪgl슢"I?Q K̙3{luxxBvv6EQ7nܐIKKkɅBƏw KBBB&L@l|?bRgUVxGEO I_}5o_o$OKٷoֲeKIgɊ=zT}D׏vMvwwo)߿?QMM p85553g 8PIIIGG^@ _NqqqY‹qvv^RR2w\MMM}}UVUVVB Fxxx߾}uFχ 6f .[]]}۶mtIXXﳥ9NXXXD1E={+mB{NNNﭪJ]]vs>`bbbmm}Luh:?|eh28zkt~U}}+VW-!={)ZfXJ&\]aǏ/[LGGݻwriӦx"55uРAW.--?~NNNXX!$??q„ /^rf߿%%B ӧOSSS~z!$՞KKKwBHaaaqq1!@qㆶvĦR2eSz&ɓ555u6 :vׯϞ='[zU?21Y䴻ڒ֭[222E%''BĖҎW^BR}֭#ox t.\B'%􈩩!233k___,ÇtcǎݛҥKEUWWv+ reMO7oԬ3*jS+m.\YYΝ;EXgsXȟ~r8ojj.,:8455 %!Kxl6[AA??o߾Aqss-ѡYʒ?~eHHheSSSѷ...E-޽yÛ{KOw-t&BMMfӓCRRRovT233aԾ:+))9::Ĕ>}z޼y5򥅅ys $ONN&(NIӧԩ{ZcAAA58ooH1L[[N=bӳ8tU\\|֭ WWWs޽~IX3rȲׯ;99 ˵Y,ֳgO>˯}ƍE+//?~|Q Qo߾I&w5www9uꔥq}͍D@|ч/NȟUXZ͚5r[55G)mڵk]1cƌs0lrԔ 6>>’:ow˹\D+٪t޼y .,//(*(([n?V} \|w^oΚ5KCCCGGgŊ'ѯkjjF٥Kb\ʕ+ﯤdffy׾"Ѵ͛7Rb]-\K.\.y<^@@@޽NOhQT{vGs:r+[~7ʵkyFF QQQӧO/fJw?ۛM2Éz}bccJAAfܸv >nȟum`0xvɓ-,޲dO Z?;|̃kΝ]|ƌlIIIɾbG[ssssrrKKK TRҨ5V555f(ҥtCÕ6v d150hs.\إK.</ wÇ'>KjI > 8xQ}CTT;ۮBZ#d2&M2=Ѕ |l?ljb5c֬_~$pࣂ `06ntcy{3f vD@3vݺ)s8Qeec| ?mXa!w͚ϥtxȟS7o,kh֬\`I&A̙eW8ZQQiT&)4'DM(dɑCA3[(::{򥁁AAĉܹM{wVHGGGFF>ڏ%li?QvvY߿ffz: ˍ4Lŋ:OI)=hܸO=믉:tX >(j%%nj1Ź@8 wj IDAT!/ȟ!ƍ' i:4OOO]@Obm;6vEu5!5O32<{v]?{&`;(矯lzzܸO*J;"hw?ƍ'Kݷoںpzrt'`'z ޽ GٹM[[UA IIY^^%%7:XI;>O <QLI;"&Ounwě7k~1 {鴐?4AeeCs:GssiGR w΃WfwvDЦ?4S|#?e,_nߥ#6 y]ݽ;^QQo܆H;(huȟZtn)-Z4v֬JJr Z'(,䆆^?x Ś?vUvP*?H۷]嗫3G̞=PCA!!!7޼yg}9f)>ȟZ '8>-4ƍOzИ=zƌҎ Z @]p۷kjNbŊ v{,@ٻwWY,/?Vڑt:AAA999@9M!tF)>nȟ@ hO˦M ۅ%^gus8XYYmݺծ&:ٳ 9ē'OZg{hЎPahhzj1775b5!DIIo]NQOK(++2d'|õk,KrbbbϞ=|~FFƮ] (jjj-SZ?#iii.\011!(*****B\.!f 뫪Y.:} 7n޽{BB-7 ,ܽ{wzh==1cƌ3~ذaChjj0Ni@;1zh;;;SSu"`0~嗾}v}Gٳg׮]׮]KWp8ZZZ':դp _.64Xhٳg\yHH7ݤJ]]vs>`bbbmm}}E-  !ӦMkv$?s}}}Ϝ9y梢"B?u݄/YXXcaa_ѯCCCX{8ccOүkw^gsww~畔ƍWgݻwܹ?##c͚5~D&љPnݺ%##SXXHQTrr2!$--MBfff%ܻwjיEҕ-,, !bܼySSS<55U?ݏPRRvͅq+++߹s(777__ muqqqqqp'"""ijj K"##nUTT!bi:::·]vUSSc)))vvvXZZүMMM.33W^u^gs%%%GGǘ~>}5377o[>TooHZu\zJV)..u!cƍ|>_X[ LEQ4i:{LL̩S,--knddaGI+h:Oµk=<tP==ŋ //իWW\2eJVVp3xxݺu@l-p8'Oˋnjcȟڅ[[[---aɠAz%]ټy?BTUUp,,,֮]///_#FϚ5K.u:;Knnb9ΪUzq~MG0Z{VO\puu%DEEIO?4 'A4ȟ@ hOM "hc7o>|d@2d褆">q8@` i?4 'A4ji$IENDB`XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp_source.html0000644001725400016040000004177013273140073022113 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearMonthOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATGYEARMONTHORDERIVED_HPP
    21 #define _ATGYEARMONTHORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 class DynamicContext;
    29 
    30 class XQILLA_API ATGYearMonthOrDerived : public DateOrTimeType
    31 {
    32 public:
    34 
    35  /* Get the name of the primitive type (basic type) of this type
    36  * (ie "decimal" for xs:decimal) */
    37  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    38 
    39  /* Get the namespace URI for this type */
    40  virtual const XMLCh* getTypeURI() const = 0;
    41 
    42  /* Get the name of this type (ie "integer" for xs:integer) */
    43  virtual const XMLCh* getTypeName() const = 0;
    44 
    45  /* returns the XMLCh* (canonical) representation of this type */
    46  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    47 
    48  /* returns true if the two objects are equal
    49  * false otherwise */
    50  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    51 
    54  virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    55 
    57  virtual bool hasTimezone() const = 0;
    58 
    60  virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    61 
    63 };
    64 
    65 #endif // _ATGYEARMONTHORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    RefCountPointer< const ATGYearMonthOrDerived > Ptr
    Definition: ATGYearMonthOrDerived.hpp:33
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    Definition: ATGYearMonthOrDerived.hpp:30
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/classXPath2MemoryManager-members.html0000644001725400016040000002005013273140074021763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XPath2MemoryManager Member List

    This is the complete list of members for XPath2MemoryManager, including all inherited members.

    allocate(size_t numElements)=0XPath2MemoryManagerpure virtual
    xercesc::MemoryManager::allocate(XMLSize_t size)=0xercesc::MemoryManagerpure virtual
    createCollation(CollationHelper *helper)=0XPath2MemoryManagerpure virtual
    createInteger(int value)=0XPath2MemoryManagerpure virtual
    createNSResolver(xercesc::DOMNode *resolverNode)=0XPath2MemoryManagerpure virtual
    createVariableTypeStore()=0XPath2MemoryManagerpure virtual
    deallocate(void *p)=0XPath2MemoryManagerpure virtual
    dumpStatistics() const =0XPath2MemoryManagerpure virtual
    getAllocatedObjectCount() const =0XPath2MemoryManagerpure virtual
    getExceptionMemoryManager()=0xercesc::MemoryManagerpure virtual
    getPooledString(const XMLCh *src)=0XPath2MemoryManagerpure virtual
    getPooledString(const XMLCh *src, unsigned int length)=0XPath2MemoryManagerpure virtual
    getPooledString(const char *src)=0XPath2MemoryManagerpure virtual
    getStringPool() const =0XPath2MemoryManagerpure virtual
    getTotalAllocatedMemory() const =0XPath2MemoryManagerpure virtual
    MemoryManager()xercesc::MemoryManagerinlineprotected
    reset()=0XPath2MemoryManagerpure virtual
    ~MemoryManager()xercesc::MemoryManagerinlinevirtual
    ~XPath2MemoryManager()XPath2MemoryManagerinlinevirtual
    XQilla-2.3.4/docs/simple-api/classXQilla__inherit__graph.png0000644001725400016040000000572413273140076020771 00000000000000PNG  IHDRp0d5bKGD IDATx}Lǟ"? K[pSb0WD4e[Ǻ!N[!!ja3 n"dfeS@ }{ǹ~m|0ws|lXB zt<`Oh=A銂pJJJf͚E_*--v 0>|'O^o$X,u{B '4`n jjj<% \.WX,L&󺥙bz{{wևR۷"g}&M&l6KҢ"r nF1$$`0;^.֟7n*J"{&''S{VMJJ!2C_RhVWWd!nW*"hƌJn @KK̙3 fΜE~kAZs=fϞ]YY !t8~wBIDqq1j4XM,_\рHdYfM6mƍFL&B QQQ~f6^Xz5)SN>ǽlBq'N_~ʕ+t:݋/RȠ))):N'&&*ʱj x۷߸qC144W_n6w;MR~M,Cl }Ǔo$VFFbٹs' --bTTTn߾ !|뭷rKt:ݳ>[XXHm~ccP(t8ªxQ2L&StttBBBaa0..ƍtssɠ:B8wܺ:riOOgڷh|'nj2n8+Vp8L 6|'ª%KxF"=n{M pΝ;G֪6tÇC_y/=A?ss-O ϧ J|>:S BxԩS.Zqw #G~@N}zEEx P2|;6,t|>|7l000r] M>HtRIo2.\@=atwwg,eZ;:: wp8wX\~=<<\VCKJJ"## gNgdddGGԩSɣͳ}#y"9sx/ڤRiyy/<~xrlb4bV%{ԫW={611wߥݴiSBB^ .\vXl6ϯP|>fUv/_<))rAv{BBBFF^^~3Fx?"8qĂ V^K/=FptF7`Oh=ǏF&(~;a-#!1& ANd~75ҝ%0T_pѝ%0ʓjwEFyjk088 v}}q ~"MF|o6**}EoW͛oИ顾-CoE"D{B '4vOA.?#9vؒ%K._LΎTTTY&%%%77wϞ=. pŋ@`L&,++[`AhhpiiBXܰ+Wh4[fdd?`{dee jZ(*++JKK-ZD# ''OATٳ* l---rڵk-[rIoÄA駟~7wܙ={lphhh4z,ɮ\2֬VkAAL&ݱcl"O$?fy-}|rF$xk'|rߟ4Y ܹSVVnݺBm6B.JNNt=fy˖-lptt0==]Vހ@ ۶myWiii_5TPFRyԩ~DRTTdɕp8N v]Vk?<=:tST! >֎@HHZd|͚5k233zq[TT-ry~~cjϣBsG6m:΋/Λ7/loo߼y3*#@D`% H'4{B '4>7oLo᯿7%Ɍ3.]Jc`Oh=X\F`IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_51.png0000644001725400016040000000527713273140077016504 00000000000000PNG  IHDR3LXbKGD tIDATxYLSǧVpC-RbT\ ? . D( /F([TwT("%""Xnwo-m,ܹseΝs BH!7HE ẩrXBb)T*uŊ¿ٸq0un޼IP8Gu:]lllaa"(V%TQ{T 7HE k}-F~:^S\\Le2wFFFpp ̙s P( 9z(Bk,0BDCH$ }cccccc@>|]P@<<<;nuwwxŋ߹s͛Z=33BXWW\`WZd\]]o4===r\.PVXbb%LEU*UPPPbb"099y֬Yx-ZjJܹsxEzTWWS(@MMVvҝAE|K.8qcƌA T*xBtuVhhqN`E"QDDĒ%KxVd2leWxx8ݘ)Gyyy=ຽ$XJe-fQx* -_|bn:cǎ!?BxС@djhhJAAAG J2lܹ|&MS?~T*[ne2f7Getttmmmyy99rȀF .ð*W"E;:: EU*ǏJN{)BX^^Nѐׯ_d2A jJ{y,**p8~~~EEEÇlЗ4HRT{9s愆?ׯ_ AEqb hĠS@ Oڵk999|>߄ 7oޜ={Ut:XC-QFt0m4&T#H?n׀P-Lf@@@YYً/gA3P[[aœ5'brʈN!T3gϟ?"##ݻWSSsART&BP(wE{Y7oJKKTj[[ 2ݴiSTTTccL& Ξ9sL&d ,HHH0 gSW2,))`ܹj YWWWQQ뛕5`h~~رcƍRT9::CEDDlذ¼<ӧ={Xh}L~yfWWשS{xx8;;|6K,\p„ Lo(<6dz1ŋg̘`0;)j*˗67;rt[=5+#hg88888C!Rc `hhY7iҤ$%WT,ܹs6;" < (6ȌPlh'O_111rӧ2ħT*g{{PtQѪ(SJg]XX(:::ck"/!Y*F#X,@ h4P(dL&s===(P(wqq9u@r܉'.XիWv^UUd2Ӂ!OPRRhll$pLR&0?ܽ%,, ,LԂs gf̘A8ۻ|=y)0|l(a--۶m3݇d@P\\۷{eeeKKKjjj\]Kd޽xlob|la>޸q#<<\(T*-@de۷O2511ߨH$fXiiiV'ꗵZmnn.?~yDE]c)Pԥׯ_o4 BG8aFY)# BH2۟0903pl_XBm! BbA*joX}E׾$ ‰Cjjp\h4ڳg83"Q{T 7HEGqIENDB`XQilla-2.3.4/docs/simple-api/LocalFileInputSource_8hpp__incl.map0000644001725400016040000000052313273140075021466 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoDelete-members.html0000644001725400016040000001074113273140074020232 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoDelete< TYPE > Member List

    This is the complete list of members for AutoDelete< TYPE >, including all inherited members.

    adopt()AutoDelete< TYPE >inline
    AutoDelete(TYPE *p)AutoDelete< TYPE >inline
    get() const AutoDelete< TYPE >inline
    operator TYPE *() const AutoDelete< TYPE >inline
    operator*() const AutoDelete< TYPE >inline
    operator->() const AutoDelete< TYPE >inline
    set(TYPE *p)AutoDelete< TYPE >inline
    swap(TYPE *p)AutoDelete< TYPE >inline
    ~AutoDelete()AutoDelete< TYPE >inline
    XQilla-2.3.4/docs/simple-api/classAutoVariableStoreReset-members.html0000644001725400016040000000702413273140074022575 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoVariableStoreReset Member List

    This is the complete list of members for AutoVariableStoreReset, including all inherited members.

    _oldVarStoreAutoVariableStoreResetprotected
    AutoVariableStoreReset(DynamicContext *context, const VariableStore *store=0)AutoVariableStoreResetinline
    context_AutoVariableStoreResetprotected
    reset()AutoVariableStoreResetinline
    ~AutoVariableStoreReset()AutoVariableStoreResetinline
    XQilla-2.3.4/docs/simple-api/EventGenerator_8hpp__incl.png0000644001725400016040000013136413273140075020402 00000000000000PNG  IHDR}9HbKGD IDATxy@Lk3LIJER E"[nYD$K,k+K EQh!l!Тʴ7͜nuf,_c:y-<(#X]suن ʰN~JUUX7~fp8A@~+M@/xSbt')p}@8.9p_dyGeeeAAAD"QWWu,,,,TTT HPP2k۬XjURR_~477g>>aaaqsbb}0 ]?l A'R(o"A&vںu CF#s4h̙30KPPeCG}jgG\HJJ*<rNWWW3PpcǎroTmHFmniiٹsΝ;MMMTk:N"x|EE>ϟ?3J;~y 6 ARFaٛVyf?jkk񾱱q}}}DDsBAɓ':u˗/>>>ݴ̸T ۍ7BCC"##\,uo#Tj[[@hmme\mlll@ XXXTTT|!<<|zj΂߼yfee͛V.k֬c0J L1e懖/_b gnneJJJ >< $$$99YNN8 o/o߾1?:h ={-Z'>>}uZH$N6ɩÜC 3]>}wss%ovs:`]p8܎;`@*//wvvWo &`" ;;޼ `-" 6MkA8.9Pw΁ pxëW0E/{Q1n5(X7UUrwJ$*HH!R[{-鍬m7de^76hO2V (ĉ[3Fm_.# uamܘ &i;; &8.Riy'NdySalf;:°2PQQsr ǻ "U ] dVUՑWO3F}a^w;w/.QCC rqԱ ZMMCXXvx:db 2%'?=s&ٳӧ+@@}Vy]aa֡!"Bpp0vp0~88ҥrfO_w>4wŅ.bT))QNn_W8q+))$x+_$] @kBBnGGߗ]rʲeĄ9.CyyɓY ]\&X1ENn֡Pw@{`͸GJJҞ Ll'.Cmmcd&e=<,ddıo \EESRvs3_d".CSSkttn`֥K֮g .[߾<{Ԇ 3m<,su%,,+44 C֭Zl2(u(x]["#sn V6Ѻ@4ee+*Jٍ'469s'(xzNΩteԄdžCw=~&։\1Q'9z447w%]0ḏcҼŅg\|UU֡ \4@h|Rkk]]<=HXGƮNO/ض풩 //+ @vnѮ]I_^dRX'8VVzff73RSt7NPp/g=!XFFubELL&3GAAj?؊u(]{jk2m7o*"#bb))":9-mCccˌoNƠn7'ХKMM߹f%[1B)5u|r+4D`wingfhi)$%1jq<8 LԩmҼ%K&&&-,bk{ 8`. ?׺-]>a°-nnp'Cáׯ{Kѻw61Eϟϝ6U񞁁N X%++1mڨ O={8p\Xj";爋ö}BX䬦&_UU=Dp]g>>q$x|pNp7&ys|}}pX ln"? 2''SIIѵk?|x!\|.(EswJa.`5H\\dʈVZ`(u"SVV`A_ddl O׍Zy֫k`U ߠp!wڴ_P=A'jEG߼"bvyfv>>VYld-"?ukƚO/[$LBBtyX-p( W6z䣧gTSSѣ,,Fau9c4l}:N2=ʸ XTW׼{w2Y(E YMJ;r{n :16QT޳g^ttnNN!Y?>-;F %'=.!!nQW?̞mdeys\KKY?Ϯ]{oC"uoQEQ~Yx޽|:uͩSY+V?8*j(qx̙ DЌ{TTH67b~@o(jPPƶmvVVO}tMZA?2¥TUUKKKQN&2D&2ҍ`Wh4_ tX-bp8MMa 7?rH.\9iǂ*J[&.H`ʔ#+ʕ;/ 뻠ŋOeexq<z|gPwAw[,9EY\p]!gݛBҰ@@?غtiqqacvm6oGtt.Ak- }[ZWwqHMMe, x ]Ѕfҥa%%=GR6LQQޙ/QRR׎ؤI={6sp"nkU֭ji;w ]Jsw|<*j"q__߾8gΜX\\,''7޻ s޽|mmYihmX9?P) XrjmmcBc[PwܙtғpWccMvRSS ȅ F@Ӄttt$%%MMM333^rH\\\YYY }&!!!&&87##cСvڷᢣuttdee< JJJ<}ϝ;)--}vT*uӦM 6mRtO$9=%%@TTtذaΝ}h*))iȑ ^^^---|oܸE"f?()Iۏ?~K{nHIy6%KTVV***>xEPK.}ի2~P;P(˖-+++Bׯ(>}ܹs#oݺŸ#oVSSs)A\p!B CёB"7E8`oo_RR?v͛7hٳguuuuuuWvuue~A:^__/""RQQN 뻌g8cƌwjiiܹCk훵P( =*bbb{苊W,uԩ!C֟?%Ԩ0EDD0~Feee1k}uu5|C5DQB7G1lQ***v;hРW^1?ΧWWWC:6M_+EcbboFQFxz7<Wpk}= L<3@ycGˬ"##rʂ;ņ zXKXXݻwd2yܸq7T*Db6jԨ'-C AH$YRRyd ?~TVVfܮleeÇaU}ٲeݜN"233sssUUULrޓ}~A/F/Z<]6mϞܻ-.@m=}*'--- >}7ϟ3(((辅&GGM6?~fZZLnXֆ Hyyy:~c՚aŗ.]ZPPOojjqqq˗/8Aw1*tyѽ{f 51Ɏ`-ɓOE/]jaLNKӗ-[v .ܼy3%%Ae˖mڴ)))2--m7*,,ԴcA꒒fϞ`AΞ=KPzLX__Oj޼y~~~>}'? %%UWW8nƌ  H$Gxu=zh˖-?Ǐ~M,|[^հ}Xm5JK /ZFcmHOwnjڊ˗[[[wڥ9h SS#^EQòjjjǏ_p!Da={dddj haa!J5334hn#;P($i+WmY(h4))>0Ecbb.,,,+HIIWr&&âsG yxd֡CǍ:KwzbBP(((|_`y'v$5uW|Pnmѧ ¼ybcb+@[-;!w袁) w=ۨXkPwȖ-񕕔PQўDG1dLj ejjȑ#K(Bv F >7(--` 8LOJz ` ƻ۷_>sh~z555%P7}{..҇yyJ||؈혢U$UkÊR1145y&O=<~V^pSGgȁc_6G\x"W70CQt JSp3]6P,y$&ƣOEAkk,&&MNK@$ ݾr}}K"9<gm*\~S^9+*Jc?UU|tiر}=R@a{::C\|ߕ+P]믆_W}:AgOݛkA襲9sFRG "ffii/tsp0}L=%a$D3+L2sYSaٳDDk̵AV־(//C6~չO'k߹ tuomH@,)+K_fs3fRio馦32|6lid'}L:u??NIyߎ22XgCwp8nhz_a9Aiu="Qm_99ٳyyE6007L}#A|vnnӦ`89Nsr11aimFJH#r/:qboN%x*ISS>;.Q/hI?_‡.]zv88x1(Īfml (o0'g߿zL xwoBCo?|رE3˝9r}~Yy\MMVWw@ۓ۽{ko:ƒyȗ/˾:W޾;V A@Z2رE#D̴9<ܞ ?~2e7(#F({Wu .:p @bg_bybh d7MMX.jab2M6 ?y07bһw_Xu|YuV;l/C:E_Ww옽u+wC&뷴P18HUT5++H6bb]]seuנ(aht_߸Ç\98KTs{rϻ,z;uꁸG8jdVnu$$M/,,N?SQ!C؃RSo~_A?~=;@DVCC8:tk׸柱lkWҼyAop/ @KP={RǍϡ I~~yAҗ.QT:NXYqb;޺6-͛F͜}nVAUUAj""r**j}}m{pP-.n8qZy.\]!II[^c#++:tPwtXSTTHXg^՝ BM9}z0&_ <sp0}{ ']\>:ԿDDK%^9.00FCWufgwhU /]zv88x1(aOx;PP p,.27AqPwrOɋsyjG Ϝ^r}qncm1iVzFN>i ։A%߀*//dDpGhh[ŋCK߶Җ-[jSNO`;%z{33}dd$5cDƠrW>'$<޲VXv-"F{ӡCi;̼aʔQWhjĬ:rdk/=0,wr]njQuU]pĭ0.%5L}n:Pp99~VVz~aɒSTL"A؃˥n~ϏfJ'(fk+Û4=))o۶L" n:ȀHK;HIjq /nظed8;$N4q@0AFW|2w}HHHEќBNa+2Y?3MK /3DyFف^^D?~4q;u#7 uu`{}PuD"MI6vCH]}pt{Dwρdef-\')w3O`.'fsOB?]WT62[ h􆕕^fx?~ .,E壁]h4#uuŕ+]<X?GT: [ׯl6ݽ{nj&{}Bljހ]m:+p={Q%=ZO&HXGc_5iHnY92.*JD \J=zc Æwdsssjj*0AII}f</3u ɖ˗ccc 6)x uݘ?H\0p^{9A,BL HS])pgӷLHS 4XHm, ٷt:%q7^9rߩSY4+?_5 y,lyfnvXС{< ԿhmmuX-VLee5^}fIkJ/+kw'/eU""ĦVV@?@QQ_v:A3FmKbb䴴 D/>dQQ"3lA T*[NNJJXg ͜/ uAGgHrKLlPL ƻcPwB|U,ׯ?PualkfbEK@' _bF7cUUY31ђ~ CՔ)32 EPwwO{zb_lQQ7Q())quu͑ AWTĖG2kxKK]#&NJOaidἼOh.](ak;gvGFF׷g%&&Ι3ynqqWw#}ܹ.Oa8p}III~~رc7oތ( .P(aaa8::R(PA}V__/""RQQN h%uZ!bkkKPk}Ō3޽{s.7ObboPX,zԩ557:t͑&&or,AŒq~˺[SSj`` zzz"##---_hYYY̲goo_]]) F`NOO744DQA<E[[[;.,,&uuu4}_n?B(2֖*,,dtkiiufvݚ5 IIZ[N4i;ov]9g̋e99֬a]+Wxx|qq![~L7n\DDz*J"uǏq8]t$%%!^#B"233sssUUULr<ߛ]gC A mmmƋQFu&'Ȉ OMBnn44at:af8 .fNQ}7]񧠠@7mڔwqƛiiid2cʚ655˗UWWuY\A޽{(?{dW۪G :8*jeD{&OuE47Sبz4Aӗ-[v .ܼy3%%Ae˖mڴ)))2--m7*,,ԴcA꒒fϞ0͛ӧ|2c`7cƌ J$Żk!ǏYn]QQѣGl͛fcczn!&s9++[|{W]=f۟&hmm齹8f̘VE/_\]]ںk.MMA?.USS;~… I$ T*lРA)+D0uuu99k655ufv\e 7naG|ŋ2CzٓLEQtPX wp@}};VUH[[~_1GGGAbccYAK~O!!):=>w3dXMw6>t Y[V߿sv6?^$ ]Nkkg/\h"%%;RRRy+#F(  k5T@SpbA|}²uӮ\yVQcٲXAa<{u .қ71D&_ u&LDd\ݻml<^u" rɓY66ꃱ_ZZgf* ˖yn~+}u?YʕSرCe`^mBDZZLGG9)i˗Lʕ= @;Ʃc 7c^Aii1Ap8qN++]wHus|滹c2YD@wEF"QHBB?~2eJ0!Pw9'*ꞤYFX|eD-iiz;^m77m0#(('h`#BҢsMEDo@ b:}?O H.?F$DD 0 3DL5. DefYǼkj8UUuNNY+&!!cP_!Ud>G<њR?z|ы+(أlmL8{IZˠ!wªg[&XXغ; `H=;@^^2, 앒/^BBv_OoiifeTG_RRRK"/hhh_ unHP;̙;sR@< ` =tAب̪Ugml nGEDD &&\](12r9_Tc#,/ ɓGTsg@JJl/aƌCi"` pLΈJ&ia]RRYXx,&A$^SJDG\jUd[/kkDI^]cc76nbr;ؗ lG4'&湸Lım] d$,##Wܽ[eK'3go:W(ݧS;~C,M񀀀v tt޼qXa=sH$ڟw,p?HƚGB7PST▽))I:4"bepg 'lwB9c|$++ޛ7m۳'ҥ'ב`هnRi VVzYYM3i޼o+Yɧ/Y`0IFWuAw˗Oa1 .kkw ¥| ԷyŅnMKF1?WPw+*ꞎY}\&Iyf;XZ.]W'9$=!iipWsuw ]&==u{>t`v1l|LǑ# SS'Ou-ZZڒ9:N:H`2exv̶mvJ|9չxƸqRpWs(ײo˄srXYjvw x ]v-רj$--US-aÅG>6qVVzp_뚚Z=e?x1!ӧSOL]yhaæ8a.x?L#0j; C}۞6 ?y򑓽u*+::v٘s#Æ C'KO/:))&XU?BRfxyEgHJJ˝۹ szD! QGB{**$!!l~ihȝ?<'pqqP6\PwY/>Ѽyㄅ XW sH$330-+8+Z[WWl}n5hÆ\T$A]{CQWda.So gWn*pZZxjfzX@v޽WZ[۰8 .]d(e}}Ut;L$8jFFC]u,4+$$D̴i"/Ç+`9.' IDAT))o>+22goN8 .+ѯ\y>w..\ovv[ڕtsV jk/f7zʂ!߾c p]V~{FXsXr}ի-]jfMPTo/hiqxIIIɥnyy ˆ]VJL;VcO sH$?Y h׮Ӧ鸸WYn&'7h8 jF諘 Afey≻v%͝M։{Ae7^r$3 sdetBibaW)Tp&o(&Sbb[ڦy3m~U[PwYƍ Xo s%%FFpPҔ {+N2w;$9yǖgd:` ,7i$As\&Fݭf%^YYKK^55Y!0\Tu oo0AsS..a?b ]֨k|%<:eG-k>hhȅfgzml]{!ȫ#57S?~6r2A@AA2 ).γ|_pp (8Fjj>Z[cL""/ pͦ._YٳR`͛ ; }6iVzFN#?}Zu"PwY'++ξ.\\ޙ3G ښ!zU1j27#MMW9ڵa ]HJz*,LŤw~2 p+^ڵkԩ^2YJ`W\G&;`ogkk~%KNʼ . \gmm ..lę+$?~0an M./T iiݻ&$)-2e<͋YSS39_LyyM^ާ9s86$_sH$qvԋ,-oyyMMM AX_ݸq'2-,b >{|K˃ƻvN )##nn>uD"I9t슏ZŷZ[?{V*O~]ttdD$ gd?W4C(xQ^^sTvd=ukBf0IFUp򬬷{pSN27!!!|KpZ~~,hwu_!PwLD|FCBixSqlz.^|?e:ŗ ,,tpRCáX`/++L_{~~_NzuDE dদoȖ- 6\O sH$֖6Nv:kͿCkk97 KnjQ:II=75u}s3u;OYn{xqkv6MA7hϟk|xI__59y"#s,,\ nt1EE 'UUR[..ef͹5eb=ڻ~$K>|ેzD'MKx|u3s;~k,ZYUUu(> ==͘167S]]éTΈ6˗vvG V 0DGذ`o O\!hQ(β|ïKuY X4EEHO?M/,,N>8L ld=f}}㊋{;VVRNX2q@ZE8S~S8B~uaey ݻml<.{cp}F$ _GDDaa!&a|ccH8n8~}^RRÛde%+*j#1%dERU`ILLۛH;}z;wA^}7͡8"8ogϞ]wφqkk7 /nW6c{::C\| o%?uWHa1sf/64w3RKJ ř%7fZHK\C&avzVm_33+#]\k: 4PwCX@++\wq8GDBBd4=H$qnXnt""b44FTG> #//Ç*sg>֭ΝaHA#1{""B8"&&>˺^ 0p D҄ iL6XH]0wH33-ZdR^^}%eemp kkvxxK=z_ N&N9y]wqؑJEd˖Q5NʷApAAN**-[!T7N|:c+H$ atFrEŏիƮf]Gxori(.?*G׈D!OO_ysgkkwKݼIYY| <6l8r ɶn@1223F~imRFV(,ZZ4+k3[{=*ti))45屎3 &&{3'߸Yzzҥ{ddıP{{wrSFBÇ+\ۊǻeee&&&6lp^@NnkCi4!߿HW(xdr:9AX'?++k>zAKKnp8w̢ J+,qclp3O8 5F"I6(=!Ą#"f XT|8ó߿:|Y0K>T:u}e艉yFFC1 ""Z$D[^nnС1Bƫ"Ap""utzcc'e;  .W<ۙ_v5~<|(޽{EñN>S'LdlB  ⶵы!8nQQ6_tsVIIɎ;N>xzDn>Ƨp̙B;688w\I'ZM@;J" "b=E=NAAA " (( #(bI {#!lff'3 %%as m[CHI ;q&ff.Z4i-IGի2H ·70dXSO,媫 GA8p@GGȏ񮜜ƍ{{UJJٳ+++/\;^5pGUUUUUUyxxp!Խ@-MεZ<;ZzÇ,&&&>~i}Z>i̘cF6IRk4.|gxWQQ144Wݾ};11%I4.JJJUUC*+hkkBDN`*@n`0Ԑ.LK[^`oo ~?g%ZǏhqʕ+H@A.}^~]CCD".]`0Œmllrrr0Lii)t III555y#ƍ ݻZZZ<`{!122RRR =eeeoR6lPQQQVVްaJwhhh t"x @ccŋ555ۻ(k (88ܼsXxlw:m.X … FFFh?CKKKIIiѢE߷Gb!%p8Ӌd.uqF .͍:h"__jOB|ڵ7nhjj>~7z@&x?~ (&&K2^$QQQwww2 +///((ܴiݻ!JMM ŋ---yyyM:ӧOG޹sgg%4Zf`UMMMMMM+W\d 6Jk`ͬFϟO"Μ9?|qAAAaaرcݓ3,Yx ֻv =@Wwc{;i!CSSVPrK@oQ !!!H;w2 qt:޽{pa͛.z .`hhXUUWenn ))) oٲÑHÇ;99bطo—\vMWW8$$fߙ]Xq޽{,*,mќ700v\ݻwcsov//Xp %%FF[-:Cё-Սo~ uuMH twڕOϟ;隚 Ǘ777[XX'T*~а a81ׯ_Ԙeee-,,ܹ #G3sJ`?>iҤƲǏuuu;vc\J 0tW@]]sc######. (YTT nS_vr˖cUY ̷Z\KAAF ˟۷oaaaӦM hhhyY6ww 6zɓL. AQQBD"߷oB^ ]>u'w-&n wB%L//Y?2k=uS +%A-%0v } o͚5.]sNZZoÆ ՙ6ĭB?Ԕڇ =w͛7888N<9vX7uXmmmmmmXv/_޾}m6///j MVXι 222MMM\zܫ0>>>[n}۷oW^]VV֫()̬L>z߾y߸r9Zٴŋ/H /?.K}ϟ?+*'53v2'NQ((ݻ.%%eccsEq}G6ɓD"^Xa]e˅9tc{L&,YB$/_{N566ݻ<lGAAAMMmmmmݩjkk߲eK.tQAN URzzzH$so7oFgu-=&L8H/Onu}vskkk*gKp3%`̯GgQǏK~̇jy=ߐ3[[f0H  F\_pMMMUWW0/^8qPJJjܸq=^%$$TUU8uwwP&&&bbbÇ?wA ؚ%뫠FRw1l0EEE{V: DY%v>rH993U+))YI2]7}o>TB-\1zO~ ^.SSH ;#B.]z#8јl 477EDDTUUEGG677wycw d1l n֐N]T$bwv0sL2k>}zIIɓ'OtuuA]N-vԐ~{3g5nܞ3 +g -dgjDZhLp8ܟI" FSSN dV[˶N]T$bw\wv AN\3\3!!K)dr  F\;#![&* ۑ- fƌB77qYTT[4ȶHy䉦ĉ߿%s<'&ƲK9s}qHV8P-k ];̫؞XYYpB))1c$''#"|˖-NB٪UlzLM{,Ͷ}͛diixb52SݻWZZbʔ)fff\jՆ uuuw ;kk{ykڴiNNN7op ''I[Z(H `$$Kx…drrݻ::wdd뫎^a;pww\rz3zzz]n8ۓΕ+Wi>ugvhjv_RY8k::/\P]jS!gƍ;wUH#B؀EQ`0u %$Rˠrg>vœ'}DD8UUYSS͌By۷oH;nN0'kUg bb"nM:p`>r$::/4t>+Pѣl+hjj&&&28…`%&UWw l  2 E> **\B+t+}#--.**"[4sfx݈aaw&uuͯ^!-22 MF GK(444ݛ6|#&P(}}3&&]Ii C*jgg|6.@`de%xfƌۼԂc{*ed3Y%򥶤:4T fqqNbׯg'!smLM5|)P" ^,Z4a99I,gckE"=<_ ,,'ȈI D1"|NOzV$''9m( k@$}+  ]Y\ܲ#_|hKHZ/A3DD0wnRXlBjw5`b7*>q]]39A$ shM5XZjoߞ'O6YYK#»wW͞a%/VS};82җ?F'U&hvgh40v٢.m,?סCmۮYXz<**F"!qJVV"3eFSG66lQ@{NeB$Ƹik>a͛(njj/,r7-Dvgt ^Ywt>de>ޅپ}VccK#Өɑ#T*Yb*&0p2龜R+.n1Ҋ@wc>C-DDcj:,(-99==>{7lڵT:>>eѢEg*ӨiSSǣGi;rsߓHfo]`))^´iKKk""]N@.m:1z 3>+P` ܯ#LX'}||xzF&X=#`D$HN~em=|o[^^vҥʧN-9L\̞>.rP7'@EE.hk M۩AAMMF%&>'xѨ䐍#bÞ9X]YSCC& ćqۡQ;)$䊭O?=Ν ..etO|Bw=w٢A\lBBB`~ H{ '7Rqŋ83HMkk^.uCqFJ5)RYٸ}{{>??;;m`]./OРX`( nnc9yG[[VV;]]Mt ާ[Z:xږڈJ|F0-.@w{~@癹AFFq=g.V8qί4#凮EMM.!!۷? Ӷf}&2v˗gϾxxX#:"44ۗnmڵ[QBDt=Ç+-sw?rH_=&N唔T/$TTdyOEf,]:A\(.js}=3wΡ/^|zwƛZQQ(ݥII/<<o掸'NbE֮g'DO;A,EZpݞ6[΄_'/O2|$C207?W݈_ yф8#p:{^99﫪~I斖aat:v͚i22Hkj~NʧmԄ'o 0AڴQNNBP`yyIԢ.d!`ƌG,K+VLE&.< ihyQ?[7שڑr“'R/]fҢݻ**2|N|$vgw^C-;)30--K7&Ϝi6c WlwQfN!vHX`ok'%%v[??-$RKVVrA99n:{{.:u ,4~hjar7 AA-,]\gͲPTU=tj Wŝ8/:eQFFnb lʟlq>&8QYYiQ9?= 8mϟoݹ.4Ν)VV:bb_(lgRLhjU|CC|>=i!jNzFCByy)II={z3%e~RҋٳOwg>#kaO^paDUU`rއVJk+%9…GAYYEGmdFp;i"Lvg @$^>޽gV`@;ޟ@8U_~Ŋs&&dnjjTBEEUdr-rp0} /_~-,+ϟqs =ys}BB&ҢxKVVQ{;iPzԜ _ @$7c0e&-(:`jTTT^mm Ą%Kb:: m)WŖF[Y˯Q)zRꄄ@ss-E񃔔W'=EDϟ;O)(HY߼}萻dh K˝ǣT1bҥK+ XG1Y۰aFF $RKZZ±~qqe@@$R+kNڦ9s,"|gt:q% Lnrrnnc"#} ik+>ai ^@FRdQAC~S;{߿ 6ϊ R\ܲ#-^ :,ޫHHPZ^އCG dJ'&猴`rȭo9 AЅ Oݭw갰׮40PX4s;BYP3 :όU/_~MK{sZZ ..fx/;;E˗pvs= kwss?|Rd@^TWWԩkq55ǏK##}"vgS dj8zĮ]߾U*::O]]n#{{cYc<׭(fʹ>3c7l<kh6u߿Ϻ|ѣ εW~TtݞAII(uƀ#"15fj:,(Çw$Mb>q?x̛KSSǖ-WxрI}{?jƻw߅ HmEeeS9?RQٿcѷʕ箮bb??AtFE Tho㐖6#!CPCyyEiiGlmf4st4GYW2m22➞Peeիs*(O9227*Ꞣ޽sQ˯ŕGx -DX#Q؉۱#JJ>ݮ |;;S1$$đVV6fggec"&;8nJ]ؿ?ԩpYpyPP7nᅭv/44:G$'Gv J/{7i! 0ܜS4II1ﲢ.mmC"ܹ.=Ͷm6ojibb&YTlI֬Z˗VU5Sի/;||~w=<^4(hҥY.t޸ i!B jw`e,O8""CԉYY(|LK?tΝ)Gkۏ3Jצ؋ƍݞ'[/g>;JI ;8qY|b@0द͙c!l`0XwRis2_#vly`rknnreY/'ed/.j9 DBc#]VPCwY;8'+PO`"aac ,)յ&O|꧟yTTQllW͋l:5x2OϱH n.{N5Ir:x%+͛yɓ 'O6doX{b/))k^sϟkssA99n:A%zH nE,Ts= 5)I(rz֭3>ܒqgϾ0ge0}^?-SQ??U22O2=5%.ikO^3gijm*x=۶]7~h۞=sP ׮:t-..fgc~bE&M2DHlmttЄ% \VVO(ĉӦP`iik|LvLɻ}R:1~nwIM~07;a'*ر$렠눎?nn}@av A;S &2wL3dU e?z edfe=~\**ӟ9lƌ|uٳOHI%%' EvvqPP+ T%~y %uQwLdp }[1}X04T32RzNii2ЍoBCo~jD: 7n"eYRRltcd% qw44˖MHH} 88xMQU|yE}}͛Q?~e^jgw`}7߽ @3` v_U5%%))xфgT^IBύqަǽPnxSSCo @.g^8v\C0B$|j'[VPImmoZYtu=~:d(^/Ā (9l8i4ϵ%/ʏdAD"ܙ/Nnn^$A/1H`9##͑::׏ҙ{&ZZOQTPttUqde%1఻Lde%]\̏*,sRmm'oҤGd6g9R9Ͽ[wN `0g>;b:{5X,F\].WA`0{ν­[.}K.X&wVPd0ni"8zUeҥvH $v fKJi9CQQiiq$Bqq^EEPMtqq++DҫWehMM`k둬Qǻ55? 6EE**2%ܿ?=.௿nAٳϰ_Dfqqˌ5;ciP?=o޼I h"dիW"@!Hށ5ƍ7y3LO7.b8yһ9wj;:h/?I"#Mhk IDATypp8Iu}ÈbD5DnlX[SS{l샕+<С߼\ۮpݻʬإH <ǟڵkCP`"%5 цBTTJ# g،pV?~'Lbb>iaÇ3N`0 \9eFmqPfQUyl\,8񢁁7>gOIY۷'w~qIIh<~V?$_sS XWZ#++Av,h43W\@&&(0wm(Ą Ӧrr2%))Ɉ'O>9XUaWeeDEEh4Ia|x[[իbzu8))5\݄g].ܑ`JK9ujjtt}E  ~3 ˖MHM]ֵkUV6_/_j%tFAIBsrp׎3aQQnFcy#QQAڵ5lw!=MPeցv(tĉ;#F(9; $E&O(8hk+NNK[WPgyԨ.T*}Z.IIRRXYiZ_zOG,V$"WZZ A.gmm-9,bExܕ+\&um`&(3y ;ꓓ_]qϠvE %Qf(q APDDܹa55?{[ FF i}EEE{h|x"""IILL4qX[91?~GC8{%BE&DGO3Kt:իI޻߾t }}UhË'O6\ju7m`EWqϾQ Lx(rz~;žk_?Ch )BC˗,YA&)--1uyu:::b0R~xDBcc+Jz 錦 #0 cgH[[>}s'ss-]8^eO~~W$Bc0  'GQQ)Fsc/ݛ(SRRfϞ]YYy…2 ׯ_߼ycnn$Hyy! 4KKKλyŋ`kYg/Ab0$R̙}kHZmqEBBqr3_YYW[57oޔMƵsܞ=[[)ʒR**R**x߲t~<}op0,ҁ<}9+teݽ}vbbbEE@KK(#.ӦMKLLdׯO81##9usfݎaøLi֮wFLL摕/hK9~~55d .uE js 3gt k?EEEعۗ>~Iltu"!!VRSS x񢞞^ss3A %88XYYYII)88B|pΝaÆرcذa>>>$ *_nbb"&&6|sADR^^[[A@EE޿?--\BBBUUL׌hCCCEE;wNGGGFFf۶m 7nѣG!`0AAAh499tH$FPPP[[[g%gϞ- 233*]]]a<͜93::nW},.$!!+7 (/WS2۷o ɩ[sii߼)[C^]-Z[]]S͛W^^^PP`iii&蘝sNccも±cwwUssXDDDUUUtthssÇ^sy_[ nUU{||<Ǐ<==drTTݝL&GFF ۽{3A222xB\\ //S~`;w$??`0V:wV{UUׯ_C())YWWǴ ga7oTPPR3~w hw~.i+E(iwT V:ϟ&}$ISStΝ̓UUUqVV9r/(( ڵk_߽{_b/k׮vV>|o.>~jժ͛7Cooo]^ QQФ/rrr˗//** d`0_|3FFFs*"MM͉'޿_DDT*HdVKJJbcc;p. ϟ?˛5kE^^^NN3N6uLX 'M~#.%&&BtwSw7C_zbΝ{ڵ;wxyy‹#~h:|830p2g~-,,lڴiAAA̓ ?w͛7888wg֭ի?Wa0ӧ'%%d $%%^YmGGBmmmn펓ɓ'ǎN pk׮۷omvH  6mڴbŊv]b VVVQgfggGvA"QA.3t&0עL}@jj*/,,?IIIY[[8pN҇a@G=>/')GZ`37v'N033=iI2d"|򖖖k겲Ld֫`#G񆆆l/P(* .OG6lɓ'===N+(**w^ZZZx|HH553݆YUoٲs: FU}, fŊd2%сxnܸ VxQC_.@}vUUU}cc: 2lhh8a„7o~!))iԨQ'Oh}oGUOko`nGvҥ1'~yS666&&gϞeرe!$$… }oSSS ׮] M'rm]]]"xW֥E_n8l7@~~~˂k>}zIIɓ'OtuuHny̜9L&'%%7mݵwi4)SQt5doi\]@vccXf8vAApuubޝo Ag=zqZ~Y{APBB.e<rss!$M=ɶB&<u[[;G3rrv*6?f 055\A~…W2o*#wM TG &?u+|v6чvVW7mG!]8̟?D"9sP__϶3g444233kkktuu{9!BE?'zz/^{C!kw;:3ggl!vC<1999P %G}f[T!SCV<(Nw] >;v7(貞xMnXqss[lپ}˃c -,,:_ 2ٖѣ5 >0eee .@  eUVee刈7v9p˗=[(|@XA8tlKjkkw(..8':dE" 994/ JyΝHk._!lKZ*$$;w-h9:@ Q;**HKL:j:{ u݋;O29ehh.lK\2((hʕ#G<|C{2e_[[Y״iӜ6o$ cE@hnQT>q‹9Q؂t!">l0333cRR޽{_~jKKKYb{RA97lQB1:"5^R>>g+__0PU񈂂͛7l߾}ժUHB|g&="@פըPەٳg֎1/ Ȱ$JhƬ ^,##Ӈ !ڶ-95u| C a޽{Z(^$TzK EJJ+)))))f~{FD#_N )PPQQyC>J>]N{;9g%rP3 E6]MHxz - E>EEE^.P(k/ܾ]nJ%1ġB3#)0dC:EA?$R_Lqqe|u-jjjH(x Q0R1&1 V((nѢ3II5‰];;;*AcŊs -&Ə At}::Ʈ^="H@QP`rrޯ^pjeeimF "`0nnc=ڶlݟfNr(-- 5’ 0Б#>>L1JJZ]RQARW[s ZZjXqTqqZ:yfww}℗iE(\]P?0rǏ{kk1ϐ+uu| veSP؇II-^]TWgfRuG,}݁ % :ό2򷖖|ff6rPzjwSQA ewD"#Bt\y~']("^]TTp8N owMM4i!(( 'c\uL4P]TV6aqE_VDA?S(CYn 0iE(}G RY*ΠS#!(Cz7xJ~YnwLTK3S&[jL¡+dOEIƻLE_wQ-MGo|ub tAjw# E_11Q <Ҍ2XIK˟4Wںu&EZʀ]645;P^%%.ࣲqҘ+ιgg;iE( jwـxnD"]ELh܉C߿NHX|IItAjw \vf.ve0QX}֬O_6;;ViE(lhGZHRh Ln۾=阄Ν [C3fPˆJuf!+'F@z\WSAZ A.**yw E_"ЀwQJw眜L6A}v $a0{]ERjj~%L~#-H - v |xk/Ehkߵ;YXh!- ߠ]a0ꟃcxYzD<^"AkkHH(%%ؿ?cŊIWOC,ߕ?T*}]٩SyӍ\\̑G[EvEd׮ԏk<<7lpD<( ]^1h}%EylSZZ 99rG. jwRQAbETޝG5q I@=}""TQV;UкGT[QK_Z. ť"VţRv% lHf?$Ȓw#̽dNܹw, RN_cc"-@=zZؼytiɓP wŽzš G,*=HL&.P6\ioIHX{r. (ȻlVTw/L24ԁ]s~El쒐 :o!& wiIJܹ3%&{=7xZ"Ȼo`[mm"tJkbօa8 _``~~}Z޲e~f ўw9άR*Ud4" 550B!s8--Truŋ )S\3g( qEǠHW_/WSbh`ggbmmH;Υ1+&&F߯lnhjhhhol @;! Nx<~VVŋj-]fM#Uq4.+YI0aXnp$D/'OoX7ˤkw\8axNNŋWx K}ўwB;ޛA tMJ TNWW#~妍N_⍠cI:sf}PPAE˗\𰺺\ }@> UNW)IiiNIE٭e$'?2Uj%[[;._ެ5MFCB!3Ɓdd%'?,.~ekkC]`~fDjhtߊ靯]+~yEEúu|l(+ZvPIHb}wuM|m\H@|U-ZtH<9yS@L:$iʔ )e~<{bBMM֭6ϐj9+4=×:fϟݷ@ >Wh ! <~ի[8>% w'H;}A7w_zz )h׮ed={VG{Λ7! RBg()K"Μ0}X6ݻӮ]+L"Zdɤ5[_GגӧA_SOO_~Zތzqnf&Ov)/'Nd$bmml`d:ķl9kgg:NtKK9s_^ B ytGW8e޺`X.Z=k @iAE!'1 Vl<꤬}\8lŊ߯]l>ׯQ(<×o?y^__kt[>Nv2LϜΝ oa_]\WNc[V0L Nux2{wVU9;Ϝw]>)Z "1jq,**72\ sr*44$; |{JJ X~gB0mae]T~@}Ϟӧ3Utt W_gd::R=CÅ23_*.ml"45)8~YB3cVx{47w\9eޥ=; ÙyyU99mZ@ԩcZobT|*ƍ3@׿4hkk9aooBg+*JK_l02XFF^ؼme8<3332YoUڥ5ich軁^^pC2P3q[VV0hlȨ ?B'4}rclvV]VUզpQjj3sܶ6ǏYU<F3sssrw\ ԘjR_lwwwMS!r=5OTT٭$I~0BѮEGg>>)UAAMAA [ZyyهM8~;CCa\#. qqYii,>|xP唕KKk%%,V3FF&8h"@uA`4z...ʕB @xvwv1OKJj[[H$ҥ>60Iw]>;|fjc 81=jM GF.Y_YdE[g<`7FoޭtuupuuqW􅌺$N-ZU]]s)ًgϞ]lQlٲG?~d7!1ӦMe$xhhhjjjGGGˈ/éujB0\t1OIikbYf!dhHe0, KiCH9a 0,bo޼ioocooonnJ&Y I|>_j&===+|-1cǟ!!AF-**";غB8 /?lzzz~/oܸ%cǎtnYYd-!!!---`:ð R(+VnnOy%)Jp<tB\۷o~x=|رuNMfk-[XYmu^vka>y{-]TOO/00ի_:::…i&ZRiii .$!ܜ>}]u\E8aOO5k "##-,,iwYx/ˁ6r8}ƒpŊ2 HS`6,CK¥g꽽s ,66%--X#Ūkii KdŋGz7gP[|[kѦÉhT*5<<[jAufsފI2y @H}3.JpÆ )Ȼ(vсT]@~ yȻ@G5{O" j)DN1_UOOUtCb`` AP̌LZ(Ȼz@. ?w_u>ncIENDB`XQilla-2.3.4/docs/simple-api/dir_c1e9a17863af1db543cd17273f791be2_dep.png0000644001725400016040000000524113273140076021410 00000000000000PNG  IHDR}bKGD VIDATx{PSWB ڸP|0kЩZ_ JɊ u#h,XC* Z*l֑ΪRTl"> P#Đаܙ+ofI5'hԱ7 0; 0; 0; _i+斑1dzz]"\3c֬U]__gVIwB_5wu;}T}ܬ)x~a`wva`w0Ϟ=8ٳ?j>CZZ??ϴ>ÃW+++M,~BByF6p!ܹKӦB/ :L $vt8lggG)(kjzPQqTmmMff*r^\]]yH5Sjcc׬Y͛T8V[PA;$%^¢fySeeMN:et*ҥsԸJ0|SLo_P hVE~='  "K fln~0 w !juHNxxxzxx5^xxѣyzyR(AA xomUϝgL&wW^jByǥ!5OIjN3qQ"Y#}PAt7*ULs窩> ٿZt֏ѫ_bSnퟓ4 5bdaUzñj:LQё΍p8={wT w4$$b/^}{ǭY _YnV ^R8ߟo_rkzҤ |PA{O_~ӧ>DnVI 0; 0; 0; 0; 柯ݛBm[${AAoDzWQQhrNcehea98]0; 0; 0; 0; 0; K^]]%tq=%%_Q|k7uKVV!̙]>}B)/?@M,V~7'$쌋k=e3gzݝ={iGG% ^loc";q ^O]ΤϷ tuhccKqAy蔚zpaar5NâwpBe?_|yзְlp{ժ|s1Ӄ2ن[~p[.ӽ0ǎ66v^4ɓ.\.vrMV-ص+pdY,VXآ5zӽHM!h矸pluu6yy_&'\sr2 J|{{aJJ QS'M\) _|Hngg-*pBzzRznc,UBHhd Bn11ԍeB- EV 0; 0; 0; 0; 0jnnfEEZ劶AOﲃᇛ'go/|y{т{]5,; 0; @_ p*iݛE"(9s@oB͛7ǛݢX; 0; 0; ðNNNлxKY4ɓ';::Vu?~vBE! s_Vu3va`wteƏ=jlln GGGBG 6mozf`y&00plv@@hn-1{hh(5k֌f?>$$ㅄFI !QQQ}}} r+Vkú/]tܸq  (úxp@ Xp!ԖFa !z?rR+y6/Ο?pK#fGFF899b-BR` x|Hޑ٘wBX,ڵk !'OfbtB[nmnnwAi4B|f̘1"i>333]sPc!ڵk4.HJz E<[0; 0; 0; ð OBBJݏh4vvvR`c.taM}ٙ0b€r ! z##LǰL|w۠ӝZ=](B 5Mvvwuwwmm1cJJJ||uAH$]\\@8,0LGŀ*awva`wva`wva`wva`w,++}Y+CswR9:e4.Y<0;IENDB`XQilla-2.3.4/docs/simple-api/ATNotationOrDerived_8hpp_source.html0000644001725400016040000003500413273140073021662 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATNotationOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATNOTATIONORDERIVED_HPP
    21 #define _ATNOTATIONORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    29 class XQILLA_API ATNotationOrDerived : public AnyAtomicType
    30 {
    31 public:
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* returns true if the two objects' URI are equal (string comparison)
    46  * false otherwise */
    47  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    48 
    51  virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    52 
    54 };
    55 
    56 #endif // _ATNOTATIONORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    Definition: ATNotationOrDerived.hpp:29
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/classStaticAnalysis-members.html0000644001725400016040000003657713273140074021151 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticAnalysis Member List

    This is the complete list of members for StaticAnalysis, including all inherited members.

    add(const StaticAnalysis &o)StaticAnalysis
    addExceptContextFlags(const StaticAnalysis &o)StaticAnalysis
    addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)StaticAnalysis
    areContextFlagsUsed() const StaticAnalysis
    areDocsOrCollectionsUsed() const StaticAnalysis
    availableCollectionsUsed(bool value)StaticAnalysis
    availableDocumentsUsed(bool value)StaticAnalysis
    clear()StaticAnalysis
    clearExceptType()StaticAnalysis
    contextItemUsed(bool value)StaticAnalysis
    contextPositionUsed(bool value)StaticAnalysis
    contextSizeUsed(bool value)StaticAnalysis
    copy(const StaticAnalysis &o)StaticAnalysis
    creative(bool value)StaticAnalysis
    currentTimeUsed(bool value)StaticAnalysis
    DOCORDER enum valueStaticAnalysis
    forceNoFolding(bool value)StaticAnalysis
    getProperties() const StaticAnalysis
    getStaticType() const StaticAnalysis
    getStaticType()StaticAnalysis
    GROUPED enum valueStaticAnalysis
    HASH_SIZEStaticAnalysisstatic
    implicitTimezoneUsed(bool value)StaticAnalysis
    isContextItemUsed() const StaticAnalysis
    isContextPositionUsed() const StaticAnalysis
    isContextSizeUsed() const StaticAnalysis
    isCreative() const StaticAnalysis
    isNoFoldingForced() const StaticAnalysis
    isPossiblyUpdating() const StaticAnalysis
    isUpdating() const StaticAnalysis
    isUsed() const StaticAnalysis
    isUsedExceptContextFlags() const StaticAnalysis
    isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const StaticAnalysis
    isVariableUsed() const StaticAnalysis
    ONENODE enum valueStaticAnalysis
    PEER enum valueStaticAnalysis
    possiblyUpdating(bool value)StaticAnalysis
    Properties enum nameStaticAnalysis
    release()StaticAnalysis
    removeVariable(const XMLCh *namespaceURI, const XMLCh *name)StaticAnalysis
    SAMEDOC enum valueStaticAnalysis
    SELF enum valueStaticAnalysis
    setProperties(unsigned int props)StaticAnalysis
    StaticAnalysis(XPath2MemoryManager *memMgr)StaticAnalysis
    StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager *memMgr)StaticAnalysis
    SUBTREE enum valueStaticAnalysis
    toString() const StaticAnalysis
    UNDEFINEDVAR enum valueStaticAnalysis
    updating(bool value)StaticAnalysis
    variablesUsed() const StaticAnalysis
    variableUsed(const XMLCh *namespaceURI, const XMLCh *name)StaticAnalysis
    XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020262 0000000000000072195b1ff23758622267967d1968bf95XQilla-2.3.4/docs/simple-api/classAutoNsScopeReset-members.html0000644001725400016040000000667513273140074021420 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoNsScopeReset Member List

    This is the complete list of members for AutoNsScopeReset, including all inherited members.

    _defaultElementAndTypeNSAutoNsScopeResetprotected
    _oldNSResolverAutoNsScopeResetprotected
    AutoNsScopeReset(StaticContext *context, xercesc::DOMXPathNSResolver *newResolver)AutoNsScopeResetinline
    context_AutoNsScopeResetprotected
    ~AutoNsScopeReset()AutoNsScopeResetinline
    XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp__dep__incl.png0000644001725400016040000021467013273140075021250 00000000000000PNG  IHDRP89bKGD IDATxw|euo+.EIq! |*@WPAāPe. tte3ihK۴#^)M4Mzq,t.$V+dzt`βerED"ƍ-@ht """"B233qOtwӦM=zx KG3!` rHX9$z1&Of͚bBHaa1cZ7lp}u`HFP[Zd5ؼy?wޏ?ٿ[z!uee#GNx3g삕rHXWWWwww+Vddd466^W(kJE uqqy`ֆBt:Ĕg}vҤISN !!>kBH}}CM6?WL .̘1#--m̘1|'~3gΜ|BΝ;7{)Sڵ]Ή'Ν#|6%@T655566}Gsrrb믇ܹs…[nٲe !d߾}ׄ?/xΞ=?0K/BΟ??s[nMII.\w߱wh]?Ⱥu~qܹRl>ӧnݺjժm۶k_y睷~L£ `ɓ|IBkV |K,`j544(V{ŋ?Ӊ̯{ABf̘aoo?aBȬY'MDhhnjj&MڿM٘9p .Dgc69Y:;wk<O.MMM}fTWWz___G??ru@@;=d,M6iӦM{ݾ}X,5kÛA(pH$bdc69OR[ꫯ^|E3q8bǢ>}0 \.5 U*^_n_~Fi\.g^0ق&6HX?Fjy| V\Рhx<S&fJ16o\XXxm۶%$$۠Lstt\pf͚5nܸUVݻ7::zԩ7ocΞ=vx ;;?cܸqsa~z !`͚5_~eYYڵk!?8p?~JrܸqlF)ڝ(Zvѣ-HVXX8gΜcǎqyIIIoLd%z I6*yC 8?o')Sfݠiƍ.^;}:',LOv:.6,վLq@t:.:xp!}E"7Kؓ.[5۪…KϞ͹x1AP|>WҺ  Bz!Dӧ^Rmq&Æ {[:ކsZٳ9O8>//i>^z=Ri\N߾ ϋt:FZyQUpPơC.y{/3=CDϡr9] @;0@m,:|8믓˸\sg<!=4b@e1vnn܆vv|LIZá. nDtYB..,f_PP%W׫yB'[[~<WOz-j33+h8; |7rI]ɼ|#$J?y{xzz/\\8x3(%F/-UUWU*JKYY7{y9{y9 m=F4M?K'߬GOQԴi"""!z=ZSx. Ύlm)[[ 8~~(QҰ R4˫d*&Lٮ3!`J-)5_ˎL#~~n<^##Gsz-_>o>sDBGOϹ>w5ԩT*md䫍*B =}-+PooÈEQCBB"" 6x,&fF IH@)-U١fֽB7Kj8qT*;~ZAA`ȐbD-c{p8ԫ>8o;|.?y֭OLׇqPŻT*a .'R%%"ۄ Q&E s>vJٳ9L49KED1UB|HRUUg9ߙJi-¼,$a wtC24FWTTTi|{C(;no/t/6 ̙lJ!%Qm-uB21L0thn6$J7G z> D"7./ T*iqĈPD711n(sww;6ו̎Iu`?~UPm$$:KS'&fWZEE=Z`ذ %%K*=zfȄ@KGA2L.p3)Gbz&{ްI}8;Y:v$[`k0U} VmGSܹ\ @Z˥""*@qq!xΣB2+]VrHG KH4)OGK& 8Kx:;\5C2jȥ&5!纻;xy^ 9$D`ctmNVlѣCdEV;v511#)^O3/&8ҡZJسIw$ T*mI@qտׅts8,m jj==B$q>>jlT8q}Kg(MbwBBdBBZ @sI_V3p^P'R= ~Lm3"034ǐph0U))YɲJ;;С}8:ZB2`Z Ԣ??1c'$DU<$A=&BGG<!wϯdfg׫[{QXj7d4``>HtC&NB;Yh$ $8$&@撞/,j>*:v z PRպ:% >^FɀL.NJ)?' ?/LM;7Bhbf0Yl55ϝMNI49KEDI$℄C80 H,Z…/gjqqH6z4Z @2$h~r)sh=Gh$z6FWUU{^Ei"+QcZ{ctmNVl1c±BH\׮ǥx'F t G[$ BB  cg.jNOx>>.wa/x<¶HN6zz:ŅH$#Id((:~ZAL8yrZ 6( U+Jf$:A2{i~˴ϯbچ t'KǯT /H"֤Q*%&f:^WLoڙ$ [6r.de++؜: Wۙ|۷e#Igf&&f$&f)cŅ84dURgd>q咒ZQtO̹S>M<2TC2i4[yTj!|>݁cx;AwV:vJ}m/vqttЭ!`z:=]$SS \]`&E;9tk&e*f$ Z! 5+ z>lMȍŅ%t/eeuOߐJeGdԺ;{oD"5ɀ#?Č,.9e//4}j% L$,H[ɘf{//g//gʼBgRQ}|nrL IDAT*nll0 *JvHB Gd9yؕFuT(!!3YƍsI&^Uqv?(R,9Yv FV3&Bφd@oƶK "G=`5L& JՄ>*:φ"Id^j6?~c. Z=i*mb?~Mh a}{{t$ؿLV0n\xBB$2`LS$tHmdo׺uVmY"?9g2?: X'Kry`ȐLhjXAg@2U&&6o-0ҡtIKMzԅMt:`=L}-W( Lm;bo:R9{6i.(*2O"NjBt t6$%UU yHѣWn2eXm,(IT% nĺ Id0%Q7f?$D`*@T*-`Ԩ~vz$J :|8.0cxyy5K$ M nJҖzT\:"||\?LmN!3KKk=<'T"_$rttK!ǶYYecdž'$DD>I ٨e@;`a SǠjmiŞ- 3^Q}|.S(5֖?lX *J aZ \'"'L ,@$ЋrKGa"Qv}¶.W130o]83*}z:;Z6rCgdJd٩S74X읐/ Y:@DRtرZҁ@CQ-HkxGJ$K+欌ñkg'c][tҍ7Z: 4]UU=7fٲe6mc+FErҥKGa@TJJJWʒZfdyS^$D>!!5003Uبfa K$ʌ m,<@Or 3*-Z4vԨ'<}-*ukhP]TJM-4~D"Qej6O]xeAZZcCCêU ;hZBHVV3EkPƀ^ovcew337$&ؾ}[o=`ɓ L@g}GD2sRL"޽ʕw^hѸdt1~ŊAAAvvvaaak׮U*;#&t+dkl&ڢ(*,,@/oeJ]X נA^~%K$$$?Yvmtt4!.66V(!!!鯽Zbbbbbի-~d򀥣]*RT*;~BrHě792YvvvlllEEŋ~g+W,YO?l`ݰXW[˗/8:99=ydPPP'}( S pW_}_~Yz_~K/Z՛oyQ.K'Nڶmۂ }]WQQ%ʎZXX`3xp%qLh^_YY믿_&xzz~'sŰ,t*lu!d? GuAĠo1<2%z @ رc7|;l߾}ǎ|>Ν;_u&pppXjծ]? dooRánnnUe~ׯP(\dJ29C?=YSZ*mǤI x}ѢRS?>>//y]SSSOG$XBT\ HJJZvm@@Oc[QK&0?P7߄{zz}]PPk,E(|`:z Bݻ[3K/DY~=;R^^n4gJJי=j B <3r|Ν= &TTT0o0aL&;uThhuLNgٽ{7K_yӷy1.+w&KGVsB׏=Xuu֭[ !f/[󳱱IHHrss_͞={ܸq7nHMM2ѣ֭LMMMKK>|+{ゥS秦<^j:{ko*_~P(ܷo_QQсD"]h)|;mt uڴiӦMkݟil~E4!ի/^iޞ ptRFC|lbC3g*m۶BOP(K;k"] mj`:q,K"<1=˝3g;ITTT|>}IT+WtǏt DӴNcf`ޞ̰{Pq (}wvbt=NV[:4ڗ 8vMjfJKZS|ͨ(.k.f\.7==g߾}Ȭ_~cfd_߿y8p柮@JkhSJdd;7~f&ߗ"SLW[עE֬YCΝ;hZKWRFo~!.\o} __~Ed@݂bƱ ,=ڵ+))ѣ'N|z!BKƍg8Kofi@&= ji6___Bs[0ErIT.%'ˤRYjj`оH"3 bX=ЦV?mڴÇ>W_]vUf͚UZZBBB9CCC/9h13sss}||ؙ]\\ZD8bZ=3[1j8!$&&hbK[*@g0yŚ6m7lAׯ_ 5"[:6^999[_yפqv -]*b)**Zd|v jgϞ[o1oBfΜ?3g4ӧ\… [lii6C LƜ/4:VOM-쳿g<"YJexW&%ZRXX|~g͚HQĉ\nvv67nY 3뛛Lt҆ v]KէNj T._̾=##}|SliK3`Cpf#G~̱(;ޒV^ıZ-:"R M ,7o!d^^^/f~믗$$$:tH&Ϛ5KTΟ?2U*ZMMMk׮%BmV[[k>YYYgϞ}̙cf"ܽʝ;S,62I6ܙy󜴴k+< 9ʎO<Č38}+V0p>?cƌ%K䤧ꫳg6@ܹs_y^x 裏Y&///55uҤI}2S3},^;~j 0/\{Ȑu>>/>}֭X\zB]]]CBB~7f-fȑ۵ZubbbzjTUU5w\K@#R\b̙3o6P(O?s=оOԾ#h.)K7Sq`Fkf曊Z~7G3[MiS[WP3l毶/NRR!>c!=hShS&*濳8#QnMcfmj `(ڽ{;pj… qqqLBHVVVXX.;ڳgό3`55ϝeɹ\*"O"NjB|0C;tgx4y.=stvY~2ެ3 uM7T揶gϞa˼},`Qw":<NgdJdj60C"/Z4vNNREjjAjjɓ7ΟU<iNjyfUJ2濚FOO7.yYߡ~+{ee Ju]V3©]t$#P_f"Wd%&f$'+C]hD"Qe,%xĴwb%iZ3v&\hhhDpjfa]Z}f*@))Y4M"#L/>QWUUW&'rs %!HX@+/󽪪T/$kjR;,Jeiir.{! Cq86ҹ\!KsE"}BChWՆ ssE6T<%";e%^YY*srʓ2..=FҵzFWRR[XX-WTV3ZFק+$wٸY^O(8:ml^O U(.t:NȸlZTZh1ᎎ6cDEȭ4CVx\Nǔ>}zNӔNGzNGt<Q4MZ^Ollt~~h"PTjjlly<=Gszg_wԊ EDnԕ+E7s=<=<4*ʤyy*B aRABgg\Mk(^O544]Ҕ#FtZ)%%MGӤwqQjNBڶQUeKqpдB BP\TJV˽pM<ޜD}|T*ȑoOc()&\.`ӮFPܔ9  TwRM\1B¶HN6zz:Ņ_޸g}uut5-ccIӯ_!խ\rICVVcF>wwe'^u#WuU*nQ#`0`p8LnM"Q>?kW[>%|Q!!v}s<<ݸQ]]]+q  CBaa^B Iwo/z=MQE''yF`ʁn=&ojbGv Ʀe022 'M?vwwHO_A<5czp8?WWzc˗ﮮnhNfE8 BPļVkM cǼU歭m6m˵k%PAݸ'j4:St{{A;*@ǎ]W1m ʛ*-MK+LO !NѢ(?ZIFg|>G'O=5rժY5& 8Mf>-ܼS79MTll}:v.͚ecJ5(;thyǮ{htEE52YLVrZLV*0zy9bWLXڭwZ;l؛uWxٳG8X駳}t]%=pٲ23 w>|>&/\8̙3grRS .]htIHllaAxz B2_~~ߟ &͇͋W!G7Uoɒ˖Mlz:2&v ǡi KNM|C56ϟMNI4 oذ @T6XNxKIjܪ&+{3zx8|;Mb!á6l:~|DilT]RΟ U }8aa^^y_}u|ߙ$y}vTvڴ-F"3g>a2kJ\)rڵ⌌Bs>~11(Q߾}sns@eeCk_~ :Zdio79EQLІ;: Bo-6 yx饟v<ړDDײΧjݺ_5{(l)Tٳ9))Y<'8X4lXPLX]`zĉ;wgôisxm2Y (!oܹoEE57(ȓgFW[_?9s&ޞr}<#iw䧟ڕР4)zΜ\.>cg\(CB‡62YJM-`K!x}}]n=^XX}as挸.hۃ*^-NO_^m"#EQQhQX?Zkm.}5 ͜7+CJ'&7z&_pmZܹ[.?:$NNےeC}G|rdQRR+L(˥dwojif`gg $ {oO0&E3+;vx՟zܭ[7^Տݦ\k EP4|xD"NHB* D}*305UTfg.lBBLAрNzsż'cJMbbΝ)R,8s3f gu=*hp8q¿v)n܊{}*ĉ<;cuMM''˘|C:Hm[#g͞=ILhMr+&5%̸959:X$6P^^a~:GQ<G|6-/.\YϏUS|]7q ?7yW^yo>.Bȑ#W$:=vΜFVk~vϯ| ϟ_ۦMUU ѯ+!@gj8qT*KJ*W TAed EիlRvvχYSS vL jnĨ9sFftIo;My$=otxӦCG>t_Ikht˗oyBHBB ]J2e…cTQj7n0ϞͩidjJCanL>s=e1Qw۬Y3ڵ:܏qDB _XS[pF^ZZ;i&Z>{+99U\ymGNҪTڻY ̙3gSS T*A11ÆaW` kPZػwjذG{啟/kg{ڄkkMf\N^އmB0"B\.'$sǎ{@;(gs6r"#$q|8..UM LVzZLVBnquu~w'!!93t??|ᅱwAl#G]atD HIyVJ lrtE&"׫~7H^-7OÃj )OK_B^zl80pA l-Vu6uqKJZ@;x՟իwtihPxy9>WOg4'|S=!W?GMMhի'h<tҥzjd7,˦33 '#هbbcc B2z0QJntnjM K3f 3ΰ_QQ;=!C5#G~e`)՘'OC*ۮY3O,ON.JI)(/E#O߀M(tzXcII! ގG,;4DOeeѣCB&N4[yӧTl\\lYZx'n&&lٟ**rqq.Jmp_9r~gJ*\B&H mm4EEvvzvv:=H {HAAj,-Gxy9E/2OxSs ¹sϱ-ifѼjϋDEeVV6 8aɣ9|2`e--'#5,,v;10]FF%˖XH믷1RR'80l pzlccҲA$r qqyՍZvv' a-Drd֤o ܺexGȠNz:ho (:jv*X/::'(."sً2w_'N\%"b*ܾc=y7N;:D@l,~it^ΐ.)6TSS;( (bD" Wa+66С99vw:TrQmX@||>ڪ cj:&4ah}tDCCCKdd4RMiN[X 1'͖-Qw uE=Jݰ!0 ` 3#,&Mc02vvzߨԶOY AG䯱pQFFD\UndxB;qX0oy))bE(h-66;%88QZZrb &1D^cc[JJqt4DOM-蠫+aZXh Oz+sΝ3V]痹B'-y`fe}&I/%$RR Amd!!GFvt0~a Eͭ"Kalvs))c';}E'OҮ\y[<鈍͹v-ȑE4,7|ӫW0i5iEE511۷Tj+@wr2rq1UWa@lTV6`bONeeyl_l,9D$,ncgwPn#P (!AXYhX€w?;:[<}M>ϏKN.nmPS4q 6^=ʕ7&O tF/|©SM:tPbbAttNiiMl>--}MXZ^-_'Ƽw;>O64Tqc=<\iz>7&:qFaY,-GojjqUU#%--G+f?as:_.yAqc  @D_Q]AYYdA&|MIHooaף  uizEm19$d6 D2 l<]ZZ@3S_T^ן8[<С8孢V@zz)b8;;][[]+0/a?UffZxF^^uӧo+$RǏ{y9o+@\ eJ%$ffZXa.r%)J "1HW36[[ "˓(PȚr0^JD;Xݾ'!AX`ܚ5NGNH?(ºN 왠`h /+JEDVC >>a/_f?.IBG~݂h$'>HM-^~׮٪by[&TX[,%E41e5jKtK,#"wk!;ڵg϶uC@<0hzz) N5j(aҤJJx@h4F~~56L.IK+mkuYB[ ,)͛q_v7D3[Vw:Y,%%qX^R5P KMbb&6.hxVEEmo.p᥁ѣn8dÛ> G,9ÇGD46mmYY,KTfeh EEFFcƌ^&}.'(ӧirrR r8<$Q{:kġCjP).gm7oVcc 3ƍ ~l5WͿ^O$B2 ill۱cD\Wkk--^L[+_ij3[2,Ї_4IJJaلDtE(tp |Qfhd={ի1™[zo'9K=9D&Jbi-, PCCKvv+nn%*)kþTVR>ՈT.ĩ3͛qn57_lcwP`&%FEe>S9xĉӧZ\ԒE.z{;<8XܪBcb(nn>>q{q栌̙$ML $RT@&ttYY& ͜Q:8%3̽h4e=[`~=ppFәeX<inWӃE/RQTTtZHHX0SzD1 ЅXv`Mf? m DEeDEe(:v3fͲwh}y_~Yaw,zXǎY[ώwsr*÷F?>HJ*\yjjHZ[;Je\\^ii+Lૠ3 8MM$߸>-@nrј YddHHPFQ]C^)*'a۷62NNF#`Q(䢚&KcǎzQYKJjGnngw%<7""crcc̱G&򺒓S!CHK+ݿ?49p"CIU/,2aѰ͸,\+׮Ŝ;${lww~ݡYYX6!lB*k1`n-( Q{;11=aㅤ o%%~Wqu5_Z˗W̛7V[ڑX-VJ$LM,@ wMM홙eJev66.%Ezoi9bKh I |W^^hn3w7NgFc<}5{Vrh=axa0޿iZk+mܸQsYZț-gutTo( cg;&TnxpxfQiiP_Yp[ƌy/ VJ !(cb2NNFg`@?ܪwI7o~hi> x=ݵ^DDʫWW%sL&^-Age^GGp6:X]HHc׭s621GkkGTTƃ_BQdʔ 1Lhs%%-Ztgl6X & I<|8\Jo!qc`KKgC̱񙧥 NgU%$`لJsr*Q5j.Ltx?Stu-[ftС"0SC sx?77={+W׳Çܹ5A׷*:889Mj==G@* ";u-=X> M~=aL ă*=tIIĉ^^g[n3AR۞=K{0͛OR:9׮> dcw,p+%x+w%ZL7nw,<VUոfӏ?ԴTU5c\VSX 3yyUwnߎkll9Bt}ݻ}$K=w'hJTTR!''mc-`a-~? XӨҔFKZYTSw…&66GMm#G0;0/^d9A ܏ IDATR&/_BCnߎή=ZFW+vS8TUx̓[܌tFTZZٗ/w U"^N~ w7B8-C0*2$!D*` ӳյ;v b:\aMP^~ժ"h[^}޽gϿxdXb ,ò1?AR ZҬJ[XKki@^Tߺn|mm3LttVX8,yc6nlfwP \r~bHH"+Li6ԤIϝ[w, e=^zsҫ?xzD6X Ǭ#N56cلHyyi33-lÆ 3OӐ;w[&L0߫mm;lqxǂ0uuOnˆ͛OmeTT 4#?{O&Ѻ,ka- Do55%ww+'1︄tt|zLVgKk:-X0:c32ƌ=qДz"s*˗WΛ7Xs˫ZqϞŸf54T.\Xw |GT>M9V̅FK_& ɥ L&͝ӵ3f$:}91Yŗ/NN>$ w׸r8xpޱ|CnL իzEE3gg#-+'/`**ʘ aladw/ݹ_WTY,%%ŹW3$Rի1OVXnꉰZ%AAOPTv\ AGD}UPQpD#G%m]* w,aZ[]Fh55gfaل ꚥ&&ñlBzpDt8Moa= 6픽ޱcxwosη' <#10:CIK+% drp0Pl_?TYYHP]BBlCW3*+ WTW7Njn$ bߵі.[~BtLzVw Y" KLcUAG,>87~PtuS99]=={B``ل 22 fI#de3 ܠUUmWrpOC>Ov*<|\@ի]E;2tVɓG:/K&TVR.kd!Snnݻ[O3Ci11+-//Ν+Wޖ͝;f۶DUוu..fWP--)6M9ںVIImh&A}}ٳcMM?~>2cܚ&l9.VǀЮ & !$$؊9$&$JS -Ӧ3fjcebb(-Æ ?^h4MMHXJTP(driRRamm3(=H{?n(H+vYU77kO񐹅WXDiiyc7ll`wP|0ߞTΟ?v6W\&'~[s"#S\\̎uaL&:vƍ~*ޱ&7ȑ/2E(ȩl H2$%FcJ]_D߽ yŋVpw&=xFtt-sw;1TWM(.qv6rr2! ,^e_ssm8+J7o~hnn9aDCus:Jmw/᯿ޖa1`n 1hddʯ>˫Z`ݳijĊvE[_^RKkߢɓGQ$'͙׻avL ]`Z3tbMҺ.ԡ  :WY9BJw\KI)=g϶[Xh {>>av1X' Ї( , x[L.P*+RSK:: 2jVV#Ek&kkEEe`Syz{xث n`3_5j/wu :nZ-[+) lGF@,EEe8ZSwSlqӧܻw BNg޹cEqYT$RO&ӕdFb (+Åt3``%K켼``g'N< K?w =ϚLh&h+ Л7X8;A gVJ&UR56ք%KArG tD~~7noo͝;輦 ;Fcܸ_!O+W: &a&Ƙ2夕Ո_!ГC߼ɞ3СcD44\ʕ7::-2E$|(Ue" kD }}5,. >IrڵN ݱ3yI^w ή9O?n<XDIuuc\\^L ˬϟ Qpt4tr24Yb-KTfgWP(ȿKi`a056q}ZZҥv Q;.M7oN&&x%Tpa9ށpaS l2є5ANNFӧPJӥð/T$9c9<*t[Gٳ+W&%ZXhX1ZNN\]]=_w.`AdnMR[O~knfm= x|cw,"?^_r!>>O7;" 37L.IH( rr*QUWW–;vL0w}ajwwcԣG6uq1;|6{Cy6V^^ZBR>}*ge˫b0X*Oѿph| ]Undxb/ 0X 22Rn0 |劷e={BOEğ`0mfY$~G܉߻78-fs㏰^0z4 %FTj[jj1MD*hhh63² 98+n hj:DϋV''RWW;>ؼ7^5p2¨̘Jzz)@03rr2rv6?^ς~lŞcn~z!!ID"aLŋma*3@l>wt4\ytS8GOIIMT^ŧ(10P㏕(2dKF\3ZO y.Сٟ.߽{8e?]& V240fHii>f:7MXZ^Oػw/_;R\\N߸^~Z`$cX U%SS.ki9Bkb>}窷p8X4EH@g. WYѱ9::˖{y9(+rvOݻ~ IܶvRҡ3F}}ٳbtvs'N,;-$phd{;cӦO"-+HL,k" :ƏׇIt >:\`ʕZx%&O>9uhxg ]?WyIׯwX00[rݳBu75߹-ށ'$9:><_'2l@rrQMM6ir1>D6(244`Θan.AW'O1hdVQL`032bb(є<erq1sv6 ૰أ 2+Fc(*ʘ 7602Ҁԙ"D߽ iԼycWr43 pB :1YUuxoV XvWRRܹ=y Jѣ!!I~~þ6++cܖ.;cEID]eeT@"%))4([o@VV /Ag.#P}[H'ǎ=|<[zo'9 X8Zl*UMm2В]$glohSIDKe%588!(CQQ #Z3@~y3֭vWWml`( Ϥ{x\vq1pa9o8;:С<, 4#0Oe왽x- ν{ ;wMM="sD]]˷N޴i: --X6FII ==5,##uN,6@g L3f0rpr2;(qvQWwؙ3x•c }cQMM117o>K[[`Y,-aQ%)ӒFFFF0UDw*ycVE tvzD?|OIww.[ƍsīWY)ûwլ].-IIb@ZO׮[]T?mH$R~jjIG]IIj{{=%%9c}@ BɵϞ6kj;:ب E"8{lYYY=:ilo^c! E+Wژ[KWO[$$Q+2b"p[[[.Àsh%>N jjrZZ #F(jk+a\! y@DEV44 Mai9DS(x{Abbb***/11ZyyIGGY?o?͆W}6$_MM^)rpC-2Dl6o.èxH<ڐEII__?pDI1KJ MTjHА4vx.]_f**ҚxFHHU/2355,m!!!x UUO%ɲzB~,]c ("#3BUu&PVIIIHD%%'Ix8E%%qN@$* 䠬<0DW[>>aFF{kxRCPmks'W")HFFGFfQwzzxU yNڐRRrr&xG!&xL"q$UUyyKn p˹@ ŋݻw N; Kdd$ {Qe%Kd {yx  8^Atݻw,Y“qݿNllΦMADLlӋxxq__@};-"⣋0gF6$WX 0ϥB7Dzzp))HDŋ^%.Ucƌ,Uiy JaZ&&;w ֺ{dlae%&I_6j" (~ ,Ǝo߾-[#ZXX hccĉ={͘1`޽O۪;vݻwI$ҥK===={֧Bo޼ H?b|UUUo~zV:z&gn޼9999$$ի;wD{SMIjH<K.DZz 055Ϻh*OyyyTTTii͛{zgA~_D X2lhhޞONRRbŊ $v4"1LHH8ydRR޽{o޼`ޖeǶ{AX633DB{;=""@D!PEޞ@7ȞȁvٳGSSs׮]:rȰa^zE$122ruu577߸q'!__)Sc4558s挫+煴"2rHATUUW1̚&|лRzӧOǍ ȰaΟ?bŊ .t>l&n5$~ t6l0 ./ 8To>}nj3""bҤIO~8pccc55-[}(>PMO/37egҥKX~gg碢"aWc:;raÆ\On#BvܩsNUWW ۷| 1~jOGwloݏH7t?.r{lWuo޼ag1B/wknpp;ڵk&&&Æ ;qč7tuu=N<._ A9sPԐA|9c g``p!/~{n9՚?&%rwrr.}왖ӧ )e[cքӧO䴴4{{;vRx[Q=y򤛛[qq1L7nܞ={P]rU***|.Wtn{E$%%pD:1eñseſz;tP=7T8~ ' ?(Z__///zzzRTlϒ%KT SR>}–˗_s_dl-w9voˡ=|cCP{ ^>m~~늲}GN+-aJ_? ې|5LQ>BgoLDEeS:{j/YYYMMM ۷鬶k H$c 500@QAׯ_coa{377y&[n!vd)y XKVX(޽{틽1 SKK;'o漑J9bnnN$@s^CCC333QQ=zϟƌh]]%O{EdBb{D>a{Lp앞bh깎u|B ݋hPP tph翱Ou9JJJ?\DX Duto0@533EE^>pQ.n`hOaKGg ܗ#8;[2-'%{[Ϫx_چdb/6e¥v#+~ _e]"'P}.4A@ܼy͛7^ ^TQQ辄wJJѣ{)MZZB̜9: {q]NLHHmiid0ؘV" Դڰ7aoϯА (/(iiFFrrҼ*Ν;( B|˖-Ovvvݸq#+g AOO۷o8qӳ[[[,YsK.^7oٳg;zh4:H^dkԨQfeeu~?vb) X"  ;ՃQ]lYZZOU8 Ç/,,NII9z(7?66 !RRRrӧo߾= Տ^e{t8?_tݷlOM^m/թs]Oo$NUhĉQQQ ,8_~}IIIUUJ/;9P/":::vntTD(ȑ#sssYʒ1bDw{{{gddp I!egR :obG\-/_~-' 'O9s&>]R1 MtֈP>Lk^|\YYӳ:.!QիW%'5_C՞N%YghGGٝǞ-/ζΑgxQpY3E7o wyo͔իԜTN."t: #*kYkF:uXVVVOOoؗe"`0 X {h^cbOn+V\ɞlv唗733kiiW+?۶ʮZ~Kl?==ݺv}GN(168ayi\oC:/ȫLa}= jϥ7Kr#222%% '^.TO?~y0q@U"V 3@@9@5艀; {/q?wn3aj""tZ_W;wuv>d2!kR dg(X@ii+ LJNNnii;x`BUUqPE 66gx=J5Ϝi1uRBCEj>((I@ڵezzzk֬ٸq#A=6/4Gk'`o R9 ~'ox?}W5u 7$7JGGWQ[W~kw77[n1wX(c֒%Kwށ#wx;7+~~8|{<<<\ ^[5` ?NZS⭯СO+*>}cɒ~) +xtL#G 06$W:8gL CQ4'X@ȫi zDnR\z 00IxNJ & +/R MٳOeVkm:CZrfqڃDt}ACCu7>?WNN߅>|x8y2+#o'\]"w @57o4aM Mz~, لw 23Hs7fqBAJVA YnZAT[~A HȌlkGIRR|$>U88#w+"QQRrh{{wH @`0Z *d0Lf3ъ LDҥK/D0( xr8A$%%=<<<<FccX[N93$l$%6(^# o7W6픭MӦO7D!L&A3O֬qھ} 7FFlzkI7OUSSSKv$ ǔfΛ8Ѱoܽ^{;@ ,Zd}iiAs @DJA2t EkGXi99_!/KyRc׭ (͛-]jt=V73ڰa…֒0Y BNg>zossܬ[PܽKڱ㮷Dy< 1N?v…&&DҘdaaɓGϙc5wYY)ߴ)d6LXof{zE%%ٴ4?lIa jkܿޱNRRܹ纼H$Ja˗k\?>`0VO$ViӐteerYǃ22ԩv]1 @dsRO ||{NЍͦ7w7}ȏ?nh9Ah4@A3/_~ϐA,6$@tczM z߅6i +*r8VU ݻj B"+۷Ol}98^á2i;w^?d@hh :ƍs.]z֦֮oIP]I[n Y[JCf@M x24$s*gOqֱ%?ŋBػwʈ:& n\w MG*U+@ D$%e ^}qkwv`3zB"hΝΥP.WyeԨ.N= h}v…;wN{`0g<9Xe U{bO? {mf(1QTKM "oJKehR(J" ^j .n1H$o>m.O{j]RʕG/?,-;7.ӓ++O~0;љ{7.JWvv޽SZ[RSL iϞ)xt>-]\xv_+Nw\**lq iv uz O hPQNNsO-w;ddcmoػj˗Ʀ|ٳ5rzٲо} X O*U&$ X 5 x=lHS+*BBzQ]ZPtA(ށÃ_Z*hVsK ۇ H_n4cFIC@ X(,JsrJ #Mpv`@Mhn>|?Lvv X' dK2!\ưan0,hDXϳFck pw#oOOu. ?tO?޹ڈ>4Z?/dz"QqVVqffHT]H$]vCvl:Ǽ{٢EŊ#'Ow8x2N ah| TW ;OccS~Mh4iwq@ݰGP #ށáx̼<1ށ4.>xqϟO۾J߾ \ <$A*U剳E|q^X$*Vu=|? (ȍɴjݖ-޿3Z"T$+8.ީSwbEH׊Cǎ 3@+K O /( J ;kw2|BC|ɀRJYٳge9999Ϟ=^&a2ގ9#M;ƕ$SRjǎIcƄVԩYx *Z"o Ǐ }}L9vlW//{d2MPk2A h:D}k>:e?mZV32PO &?_['-4'X Ltw8t3qb6m||Z[ү:o #JW>3sf߁d:Z\}bƅ _dÇw曱m%,ht *@OJ¼¼33~9iÆ;N3&;4hQ$/OcЦ88zx[szСۛ7aggsǐO>vx*Z ؔƾ} Ca(j{z2v7mZd/y@Ҿ}7Ǐ6gNjEEjIJ Jvvzx] 8INYtNN̙,ghX6qŋ48Z?lHػ`ˇbgC/ D ށӓ/*e2;8:/5w#G0w;`T,.LIbii,?EQA\'ӓ߻=<=|ww;l$`Qi|ӧߏ?~wDX۷wᄒqcXUUR"MHxp݇_FFM6l6*#_w,8ch11}N}ܹ={n F/PT$yREŋ/_VFG@ 8:r\]ym\]m?4}#:᧟n1iAxG*+ϟtȐɓ{ pEhmjݕ+ݸd jz^ u@X,ZUt|1T`(Rddhdd(6ԩڷw9!ظ@2ee/%%%Ң"IQPeeAAEihDRnnm\]m]]y ;BQ/-͞ BF#`1 ysޱ@+VhD{wTV߯_- ZC"QT#5Pl_ŋwL&$1+biaHRR"}RRV&7jl v2$K |Vo֯ዡC;Z5Z;w93c "PD NT/[]|q88xG,xz xGL1iɒ7nm?>}whrEyXZZ*D5/)+udɉӹa\gg7x˖K {_}{xDF_9۶]Q!!x TT%%..ѣC&Lw\T2 @Ce@]<<֍^tȩSww/wF4@ ZӰhiTeeUիረT-S zzwqrxx@uu~UT$ٶ:5W/?#ʕ+eȐӦ;hu2h/?gHAAKD;{{G/YKO;á2i;w^?d@hhC0T*mYL^^(,ˋXcl>փ? 664gg=ٙ۩ё-p\9*+}СNN~eortmԳ@f:9qYT*:Yrž}7Ldh}6hƌ>K @w=7n0(|m3%(/\xٙ&t t;.3W7`$X> b x aaaa޹&}ͅ;Lތ}x< FH$TJU%%)Ԩ\a0More89q;w#p]\x0ꕕl6}P @,Z،Ǐ;h2yhYqq.^̠)-Y{~TƆe+2ɉK+vߒu?4&{s.soyheeUe rEEUyB,VEB!ٱlv~~nݼX,>eggcgm֬PWޞ#'NyĤR?^=XUkB(,w}Lճߏ:# CDɀaW"j';ޞxqO{߾Ǐ'pΝ= VxL~l[$(dRlXNޞeog4DžݎMgZ5<:'45䓣*v pSz\ss;.Z,_w ͂]~>T4 ZLL{_x۶Cn m' fN&Sd*TO=JDeSY9eeR5#Ǵcx{;`| 6agl o ׯgwv\6m5 $%e=;5>ReBƒؔ{rСǏ!tdM<<99xGaUG޵G p=&͍Yf_%HiF#j^2\r..:ھc&h$:ܹݻge9|8jw츺ys< T4)V֫!H$bxxCfߎL&ggEawF&QX'lǏ d {~q_whVST~9bB7F#xLS+I.1XP pTQQuDIbbλwOihrrJ,86yr ʀ& p}Daѣ ///KE/*tH4@;&}6wnggޡ;Z' \JUrR&S҃%rۉD7%񝜸N5:Ф4/̙ 5:}UB3c~~uF W(ﳽ+V0 8d}PRQL@rpPRHo%ǜ\N}]ϿuVkGG2.,J%SI&_jVg?PT**AAb.WQ5g uzQ&$RИ2ZPt9L&ͦXt,}>4pJh4ӎ355飏zEE2T>/^ES*)YYۋO-*N:5~HJ6,Hu'Oz@)((HNN6?4g'$, D쇢RHl/o<͐+FVQj3e2U͟jlJs :BSsК;|D\0yr^)ЂݻxeݷMЩS>bjRxGQ_nnv Ӓ7 @oYԀ EQLTjJmUF&STZJ+ JU*RR)B#U*-֐_&SW@pŢt6b%Egia`hЇ'2?>p ǎ O z-ԢEyDѲ[]B$` ahjd ZP+ZJ'J JUؚX'<*N DR ɤr8 &dR|`0>Ǵt RK.-pЌoG" *QPT:F/*u:RU(4Zk%VWXZ_)Lejoq1b I,Ţ3T2LIa2i\.BS}pTUpSw98"#&O;. no_m:87Q@K%j VėJkizLJmUZ7Z>L3T0h42g3&udR Ě@ }ZѿΝKh;%" 2RPP!*\&ޱ@cUUZ FT2rZ7VUi!pFJF3dj jFS$>H`nJ%cT'Nh.?l:AR\.F#3=zIΜXrnnӧa7>w\V+BCCO89|dd;tYPXXdɒ;wknʕG~-(}9BS??2ݷO }}}0*X7N|G}ٲe) ___Hdڐ!C.^h:PZ WE?.ça\wlT)!^nVUU]ҥK999G^t)jX⾪JdW{:AԨzZe `TF#e NgbY:vuOmlh4N`yF<=LNY,IR\.F#,ocCe2iІPO9s?9=k̘ <5s W_}ub77'XNub60\{lBΝW\`p'JΝf͚ ŝ;w>|ɓ'l1a„<),,>>>\z+W\B"^'RuXc^fhtʯ] [ALU3Fөt:khOS::w(ߡC֦M#G`k:99ݹs<\MWVVN:绺.^Xz՘ѣ}|>A@(FqϞ=ڵcOHH@Ĵ|MOЩS'ֶW vx|iΝwpp?Z8# 'O7^z֜_ Vk!!!5؜aÆu7O>) Fjj*Zg+~#G8ΪUP,̣Nϟwqq>Bwm~Ĭ~rrrrJwݻwﺗZHT*kWrI$Uqq)11?|hw_/(J=+jBQݻ(~]-Zk/Q_uPPD2ݱ}UiNݷ5wwݻ׽[LǎyΟ?oL Bxxϱasڵk7zekk{ƍd77}&%%D[[[@cHRRRBCCJeII`y5槯/iA(J('''((200 ODRE"QDDDHHȡC@$2ɀӦ,lV%C fZ,5V[9_DFFƢ(7n8|(f3[h1{G>>\.355wd*$i̘1gΜ)//zILT( l6۴9'F*x<̙3=z4gΜ"k*W< kWe.=== sOuQ5g0\.Nl )Srˇ޿&>~9lb+.&9rȸiӦa+vXE{UUկ HnV^- W\iڪJ߮"" ۸8F{1T.X`}YfͬY25\UVV&''c\lNzz j{J23f>|8vuĈ[l1z=zT1L@@"={quu}!-呫|effiZ#>JZtijjݻG XFD$a?l, :a5(ٳgС3{%o߾}ʕQF/bfb5Ν=2Z<{SzfZW`Qm'( ~ᇁ.^>[M|5iҤua0a‰'6n8a„.E,:!Fj/lh"Q]׆ _p+W)۷O|h bb\L0!...>>>$$Ĕ"vE'N$./`zߡ(I&>|tCQe*7 @Qt֬Y3f@d`1cƬX"//O(FDDڵ_|Ç>|'.0hРӧOd2VKPL& 6luVtt;wBڵkw؁(,XZ͛7?|X,Ɔ7 <A#Gd;v|FjT*URYA\-R(kQxJu駟>}4%%eʕ'Ocf3gVlA/_޺ukϟ?K"Ǝ;k֬0GGGEPL.]4r͚5ӧO7ڋ@s7Ś2egϞݹsgɒ%F'`P͛ӷo_ \@3>:tFeeeܽ{H$š(*ɦMfkkgΜYUUeCZ^d ˝0a‚Rϟ7.77wܸq...l6;,,,>>޴"::;;;/ZHRum6.qyEׯ_|||^}mݺ}&LptttzbXVgxͬ<==ϟR,άD3scZ*rh^'MTRRR37o"k׮A1kbB^z"XUǰEٳg3 Lfߑſ|h'a!ʼyD-wٱcGVٳg+***~uPU(/ >>>_|E߾}Ǐڥ5O~1,lh3>/;3g[켰oߍ'$&ftCgN]see׬Q 3gX,u-U^{Ѯ`l2]W5P, Jy^,~V~ oƜ:u /Xձn.\pwwر#ׯOKK7*>}Wk8ɓ'1\rH+,f-lH$W93`@qjj_;vcZOզv-Ǜfx4%x~+DBaI}=svłNO (8 ث_L&ښpEPZ}+24BpŊ W7oAkŬ^^ii xwj~:qD4T*\K @DIID_=U(4~~Wޭ7B;:;;2y4?b߾[D"Ҷǿ{w/ x?W*F*++>}Y2S363AsŬ35q6G=gΜ~5[(( yh=JJdII"D2{/;:5;;ZA,٦)=zזL𦠛Vw@-?w<~H$Խf@3RiML%%22^H@޽!3oѿV<\ ( } \Zx2,K&S={Vw, L޻<9ٝ;Ozcv}/_An F.hReqL*UJ*D)RD*-KRJ7ֱ \o>?o *@: g9#t6mzzg MMVV*++*+⪊*ӜJeEEUEBИáٱllm6:y`b/ZL2}̜ٷwoa) EBɳge\.#8phI(RP[ZZ^TT(ޱ*Mjj^bg:ӓf~lF!(%yZx:[D#' cZD&-T$*Q@  ݻ88VyReIDfzi{X]8\.c:9qڶuL2y<Ϯ-_Ovv>^C"Fٙ;mZ] 4 MxSZA$ʒRG@@d! t V(9`@?hDHi4LdCx{;{OIyV8zǎ'w xK*L%d2`_&SIj?Y~Jk^erLOO~ǎKSrcxfXdb׮^vg rcM77m۶m۶br[P&k@PO_lEEUG k{Mh<۷_ٴy_;-mmmP@uvҤ ;g0HߴZ}\ܼ=aÅ]e"":׶ު5-/ % oFGlXR"--?==?==??_L$ڶu ڵM׮^xшXa}՚P($.2\r}[[&{̟BiM*Z6Zw`- Ng? ݽsg W'j.\x0o/j4ZD,_8)V-?{v>ށ4̢ ?zTh4mmB::HhϞ FAdh$$p}/فkמ>Ed2Ɔv}`t:Ó'EiiD%ޞչgǎ]xv|Y,Zp{N?5j\XK`+j[)XaptVL.nJ=BAeHK_2?%0SQQg;p~+7O֟=;A֭nl!Hz!**؀;mt:í[Y_}u.7W\ȨQ![).хPXqaUL&z{;baamܠ`0*jTUUQ(X}YZ_ܯvSO&W-9CgL[V* qq֮='j  T*iŋ\D*%(r8mL yhprʔiiy՚`0`@I~ _߻40l; Ju={2cgg#k^o2dHT\[el5yr)PMIy~ljBBzeONM+D]|yp@sPh?~ˌ~.Ljv.:kY+ '9XZ_P+R#kL/j]MqL6rf &eP`rwozd2' Z=Bjv :|l>Z…'ӌy<7ߌ={6L>&22lҤ^^8ҭ_pxnxx ?y Ǡ)4cKi4 ǰcTX9D1dSXBꁒϐN`w%O^,h4"?W?`4}_!d2i#Ft6Wv.8FtY2eիk[joNO_H1;SSG 11}W>J/?wv6 ˯IŌ3~BdܸMh42htjǏ 33 <)*, 2۵siιm[gw-7eM|SER6M9}M-l-T$*ꁧOKFͦ8m/ɃJk妐5}O \R"/狃'O1fLt'ZOmށҏ>:':B^k׎jNc?4D"!:wsdGGvպ$Q\ܽ3DB>mǍѡ}Z~ԨӦnP4*VyHT,D%YY99ZxxAsUUZPh |lB.W:RPTjNҙOXi%dRt M&X, NX4dRmll6aX,t V*@P(4Ϟ22^:!ڶuS5xQINx1yʔ\,''s狖8Z[,6.^ͳ}BFCZuhD){;6×gT۷O|vwa0yrbJwܸCCNh%*+KDҗ/+Ⱦ__ǀg__G'//{kEիTZRr^oZ^ԪT:F'T*Z RV 56!-nL&Y,N4:dX,:Na2N0TSƟeh:1t*xSP^o) D855O,V t+ψugAJ ~)ɓ"AQ@6zK5wx.=ux2H0^="NO_Q[ Ph/={6u_~9%P‚{iee`q㺎e<-tBI~8+X$*Pd//{տcsU&SF,eu:L22Zc zZ_URJ7(G*^oJU$> ׼ yS}*Mc2it:hnT&br{:;EQ.=OU ZbO-PXp_O7Mܣwoj-?եx6rrJ :p`UzB!YzD콰P2qM"͇E$66eŊmoHꖕU|Bss޽GQ};;9nI@e *)r*ZZWcUKRѠ`> @[m!DBBqq'@8%$|?W.ٙ{%%yc)ς@ך=ӧ[[lMMX,.H 2 3bDȑsF4Lx B< ! q?ƂH8q|/ip8*0;m^˥,R* h LqjB(FRYV-K9Q(dZVgYL&5L$<<75=V+kχl9vǎ+.6Ν;q[23Wu׿*)Kw_.5kǩ7mZ~>:Hl7س5.ξxs\KKZZ<۶YZ,YLc;-s\ڒ&p3th!YgKKFj;ƸC!1P2DOrr],D"ы3҈<tϖsV+htx>]I78'bEl4;v.tdeG/D16} Nbב~s},[63} Dbd^_|q}ly/\p8.\8)ǽΝǪ}iӮF~c8-#:{KimlT*1z=(Z(rJ%zDFx"r(BѨR ǩ !zqjD²*\FӈR)htLT*Ԅ:NJ%ZJ.1RjۥGO#\ (75kk4=pVIrl-)1"r!?EUՁ>XSsD*LZj6͘1e(0i5A/"Т7XKAGlD"G! Bx<󴅋ITe2Zh BRUBZ\.5s VJ:Z"!t{cRZtaH@`yd4=PWg.-ͧҼѣ ^֪キOB>l.5ԗ'Q )SVY;nHw_.ɞ=ug\56y䝓'+WVsτm<SWUuH0(Nl޼ >\>qY<@#oW'Gw-\.jʓ@^^~(_bh=zBHjm/ҍ !E !B&7Pz7xohpl^?{y~BVP`<8hF!YQQT?$` FOC֣GϹ~RVd*;vpn."Wi_ORpkʶm_.^vEEKWD16wj=A #;w|?;}F.FNnzxϜq䕗3l* 4NG_쯩te:4O.mмNf$ZZ<ɂVZH$\]A!?PP`(((( 3F=l6/ @q9Bՙ.4dHVĉ͟/~ѧ^|m{4/}͞Gy/'S/}ǖ϶mKc~a,Sy؛ns]$X,iy|BhCt@ h5&DBhɡzZ&Yk:\.eYD"iԂ +rFx3D37cU9H[^ohp!nAh;zhFnȐoFrEEx 7p58}u:Qm遱cTt?in|oiKgʔb|r8\mq̴iUTLR ` "P4BtŘAŘD@y>|0kŁzB!jUtLNJ =3!x\ժ  !DSKUdRFTj%a'xf[[}v;OV/k|AtAA'@z!"Q׷Āx`0"Kϥs䕕 Цrfjc|ѣݯOO3y{柪 ɓGe3gXV9p4|(b z4/!A唕ߊMF0JU. k4*VPhWZT*et#{[,w`z~ټtehD"fYQO#4o4rٺ<=觐 8:@m:uʖH$8)-KF̕ɤi'>Teޚ# <0_ᳳf#ݗo$ŋ_cǓyytw;%n0aȑ;L"l99PH x><kBt>p0( B gZ`%ǩZ(5h>(YVͲd˲*N0JQpQ<x2uhR)z/(0 2B2x>tDs2=嗍HT C&S1 3G_1WUٺuΜqF:pݯrvOݑo^ /l[SKݗnvuキ#KG6thvp"(χ| χx>}N~/E1֡St ǩFժtA6H_UwSZ^W\~KpNp5N\.^?!Dgfj33ٺ,mf&dsr̶N'tA2ur૯L&-,̠sLEf>biܻq2dƌ1o$ݝZ;w}5|򋒒tB쩛7]*E@A^o xA:m^o -TrAC^c00zFghL;y<~zWm7 OnӅp~BNXf6+/i?+KC $-+Ll Z98e 0Ӗa>СM ^c0h6+m$\$ @]-OtQMҼq~(ƦOaI8oRYWڴoܹ߯[[}۷?ѯ>B]kjHSK3Ɯ7e4BW~-/x"9n^?G-7i͇,yWeiհXn!LEfssrtHUՁ=:QQQfuzv5Cm% 0*<#Cddh33.I.ghe"` `P`0Dx>H ztKPZ˪u:NfYINRM_"3關rv)["5t(.6RΝG++}*/O=~)e_G'Mzix8i̙/ϛwsGb'OZn=qg8JJΙS6th7x?]kiӮƮB 4pN,wm\j~Db0hh|?@ڊ FƏ!Q B8D"QQ4A#<~8} b1,bFQj4JUt ǩcjUN T A2-͢cYṩZv: >'0eJ…f4}A7+p5kǩ7mZ/*Q47{oTWX ftni<Wغf. J#˟r @׸\/SR:!jF&+bCAhz|x< z;B^oPc~8D"Q7D}Q|( eU*ޡ|c4Fhz=(FA@Nct.bرs@D.K"6nqHVV*ߵH$cGۃ\vJw#-$ŋ_cǓyyPtΝǪ}iӮCSFo~М__(K|[|?|h4G"h0HwΥuh|ZV+t:R)jU Tz=P|BqJ%W(2Ui4*Bf00Js&$X,䮭g[[}$eʁN׭6}V/}P`ƌ1}m_^ضw^a_xaۺuOZ;G\kWmu#RdR]}}kϞubxck`kNkɍ Y{@_Ҧl_%M;:^~8H|D"AGӡ4Ox?C!1F"@ H$謶<l7KJQTrTRTgR 12e LUZM7V@\.5J%菐 l6/llxԥ4=PZ7ztAb={*+o ]w_Qݯ68y;~ʊ^8ܞ=ug\份pBTUՁ#8yHlL^)H$~V IDATfͮ9s&b5>8z<~'hV zx'`͞*`z19/(0! &xD X{@?G}/'p$}:*? _ LQI$Dg!:Z*j4JBRF)Jt:5!>Q*\V+T*B!h4OTөr)˪ < 0|ǛSpT C'0 o?VƍygOcd*ZpҜ9B=t?bcnMҸq׬YԧXn!LEfssrtOM͑'X{F+yn >:fp`5Fh䓕rYY}nD? ӅP(J_a+^^'#iUJAlo]Ne!-@@2`Krz9/I 3JJhz`i^x<駧*+a]w)_?(]=wQ͝շ}]'[޸3g%%yc)#ϝs?ȻG4w'Sݝ+GipZ[}6ps:+9egrs]V6/OOٺ]X,A'BhGt}\t=J~&BBh 4@}pK 3R+R:,1aJ\. и<)OrLJGܳZ&T*b,`OB ks@Cb4rt(.6J}hy֭w挃>(p7Ұ`﫩9Cݲ !/ߴ~m/-C\fKc~a,Sy؛n^uǝV5KH%Icw--OG;>G P,2lN.'fFgi_(<J$d -4Dx<B$xBͻtKZ$trZGdZFSdk mZ\.eI{Z^d!tX]}P͞=l.KK`zWrƍ'߼В%'ڿ^o`cw>q̴iUTL>ݵvJU -OklM]v8zQocR h BGP(Á@8|P?|}ot|}̗ͻޖ/E($U[]}T*:l.1cL?r{u{^n}v;oV&KKaY5ǩU*U*FxL"=feU*eZRs0 JqLj zUdR:0Np)H@WZkmbi:t!F#G"6JJ JwOa4VVݴX,~7,\8F'@ U޴iioc=uUUjj#沙3Mz'W>m/<ҳD^ojvGcriaO%H$B&K%I< k4JUijNqjVŲjUȾJ43^Q 5_hCᄏȑ#rͻi޼=hCW._^C3cm"Xx;v<6/bi:y`2eg7SLwa?ٻ2t'N!7<{yfZ%AAh/IJժ8818FQN8eUZJUq|H#$|ĉdz/#B!6,&L1c Fvu`02}z?(bʽ~nz+Wn۰IF\}k];yҺu??sQRW^>vΜC{=$ހ3gMMg]nh"!!7 a:`dfjssuF0#7^c00l?@ aʁj2tĈҼT4~Y8ݹhe]j w=o-(0t!|mo֬+VsMS7oޟy%K-};fKc~a,Syش|Yvyt 6jXVB(wK"rHasQơC)(; E %6Oڧ()iK{?!)x}^op N9$wgQSUҼ+nnMҸq׬Y' yݧ866%5|l6fm6oCj:B"TJme jUz&'Gg4ryy 2pY/l\A|?@oB2z @]-Op4d*O7Xh7"G++}*733 r<Vi4]Yl]csnmmǩWT($U[]}T*:l.1cLDfwKczg8<6\.+QdgEEY|CN7h!;[w/l}tGӳ>@A2IdzȑPH0jU=ԁn}6wS/\8["K~?{p/_i۶=~5{UU9 '4f4lO03Zk}}kc'#R$HDYY 2z3C9ƎUUxq{mf^d!hiX[k~O F{Kc啕{odei+*nZ;jjF7o>d;l.Pt͛p8l.={|N[ Oh9|W_;v8QB$Ѩ ̡Crs<}n.WXsNk[[}}uv\^di)jkm'OZO% ^C'bT=Vƍ׮m2-\8iΜ }{ZgZ5-Wg'OZn=qg8JJΙSv=tC 'N44 XrT²lvР!Cyy}N] Bg7mG^͐ 'N$Ǐ7bL*z\]GRi4cNHZaA^/N>#$~ers" BHj mѣNhilt;>?J%,䰅Ç]0vlѠAvxUV]}zFs}4DZݑmݖ@7C2`0R[k7n?>iҤno#:&N/'w[XQfgCd?~)SF^b项s666>1vsݰaܹsftw1r"B-RQQ XD*.}r̘QGWZQQ.@/C2.N[W^г   F]]D"9U6 K$+>V_|} :eى'~iFy+~e]($a0zꩾ5t?^lذ>7owqYggg_l/>N!+W ^#}~o&}yuY֗^ziH<w:{+ Ó0mٲeРAnxWuV:\=??!>d2ÇEc$ɚ5kFrw}wذazWUr͛7>p8qQ-[f4sss-[&bܹsȑ/…ڼ7>ck}ٷz.{<م?C!D"[nљ!r !$//W׺(:ϝw[tܹsy7!nyw۷oȑSw̙sYr7>ӝÝwƍ/f] 6tEEEEEEE ,ӧO[,nb6n_BL={ 7F!Ʌpt>e̙f|u=w]JvLd<]d@8>~ XwjDr\ ⥗^rxbɀ/"HD"˧N[Z, FQZZZqu>׿D,hVv}z9r!nF"LvQrӦMO>$&w< |ctNtpt>څny޻ @2`B & ~رcK,kǍd2u݂R1cƄ ~zIO>d߾}wv%v;VB Eb0jԨԷΜ9O5mڴs' !{68PeddƯ*u&Nl6[,1b]?rdpJ{;u\Tv5j@Л kBcck'k _&78vX-s.[/Xzur}2F xUUz衇BGsBjkki7);;;vy'<8o]/뮻~ߧF+++EQh4FQ&O4h]>o<'qY.zQ: Bsx E.]裏!-Zl͛VkMMO?u#p8(`0Bh$DrwlܸH$P(4v;p/˅ u=<3 eƌӟ!o뽂68P_bŊ={,o~W^yeŊBq>_ѣG/_`..t>1:յ^Ts׻\.zOO!ibU_}ձcF"D"\H$s 6eI&{9/YTTzv8І FT*Gy3o!C.] Swyz~մaeg Μ9c6 t:M7ݴe˖[.i;|QoVe'7F%tnÝ޼Bnm>e8$/^ mā<ϸpQ( 4 v `“<VNw/nlm޽!?Ԕ^ dEEE&Mꖦ***!ͻ馛 ~D">@œ|yiCgIENDB`XQilla-2.3.4/docs/simple-api/classXPath2MemoryManager__inherit__graph.md50000644001725400016040000000004013273140074023252 00000000000000d052422d7ba5b58437595b9b6f4eb866XQilla-2.3.4/docs/simple-api/classATGDayOrDerived__inherit__graph.map0000644001725400016040000000102713273140076022435 00000000000000 XQilla-2.3.4/docs/simple-api/classATAnySimpleType__inherit__graph.png0000644001725400016040000001346713273140076022572 00000000000000PNG  IHDRQbKGDIDATx{TW!BDJvڃE)ݮ-`]`+-]+[=}xD>6|lUJ"D2>0B0D" wz?sss'<, 3qsu{B 8 B~z^h0FO555b!aLO mTTTx0YdI >`Oh'OOz+ x7 _5{쒒b󩪪JT*JLtR+s_w;/Zzꩧ\naaaMMͲe=:F>u}ڑLP(,,41 ;V2>駟W\dO?LR^zohr**//rrre2\.3gNffU*tww[cbbZ[[e2ٌ36l@ZmٲE H$ׯ 62ycNݰ//>}R$ǎ9sL,5d;JA @ssi$ RNgppf;wܔH$!!!VALfbࠥN/^H C. lJjYf_zzLA$ 768{Fz}rɍhQRUWWtz7 ,V/Z>#(={Z- `mmmd}kkĉɲNv~M°9cF+-BD˗@V aΜ9W6sNrVVVDD\.呑)))V߸q/_aÆ pKRRRLLL[[\.o޼ ;v}ŋr>Aki@ (--U*eee'Oy_ƍtVWZ5~x>ofF </11x1۝ B/ yCݽb >A>>>SL9xOZv޼y^^^rrrBBBƎϒ#<,EEE_b &| '4{B '4O&8W>TQ_VTTp8s8j`,pcdddXZ%'G~Ic]JJZF}JQZCgm?4::a'޻ḕԺ::aZ t:]m0ӝ;NwY{Ww+?1H/wrsU\|ƅ s<qsz瞞;. F⩧NEENgV|U! C<:d3dc 7V CuukGmD/LyVa:rah=r0DRg&Ngؿ'P@8V gܼsgG8l?1c0G/0#7wE3]0a5=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=`O`=3 eFlp8>*E]vZFFƳ>@dR(1<ܹs1F '4{B%zooQ`Oh=O[n=pYl6z3Χ ӤGcLus,[g8<(EE?{={R] $3pEձ 6jbqKxjCU2UC;LT[hoW}ݝ]ZZxLtp=kz F/9xY&N!7~K0~9=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=}BFf<:{Qٳm'MqqCʲeh+t%KعJ`Oh={裏X,֦M\> ---,ңbeQc4{"B,DBzyj{ңRT*UUUOxxHvJN>z6X{n޼z-Ѿ>.{Y+$INN h4`+qtYYY"7sf$:xiAzzݻwBZlzG`4i _n|U*U^^tuu}:#^/,,ܲeK}򗿐t_ %%%EEE g6FnN8PBB C$!*hjj" bZl{N:{=Tf;;;5gΜ9+Xt `Ν6!Joo/Y&?CK{1 ZVVVDD\.呑)))ԉ }74NMtttsssMMMhh(@zzz||Bhhh3gի4\5aʔ)aOT6j"뻻WX322ēF </11QRQhyId{3Z^j|~jjj$%%=$N^cyİh4ׯ_/((aO5k *{0qҜΧwwwjc6N@0h=`Oh`=V޴Uxxܽ{ ]],[̞fv@s˷niϾ(6vwf][fZ[) xձ ӮO`t^Ȑ $~M1iԌ0SIIMRՋŧ3A/$;;uuW\0SMͥMww>x*-ju?tD# JKLRhM okL*$ZC; TRRE9ҠaOw:ZZC&x:z͍Ō Nj0V7TT499޾}.…[>娨&}1B &w\jHďxU< {B '4{B '4{B '4{B '4{B '4{B '4{B '4{B >BX~=g |'NFw-A 0n>}šX<&|M4&`IVV"˜cƍ&5`Oh={Ν)))IIIdMyyG}4e^^^HH.b```׮]111˗/3fL{{o!J6'DDyy@ JƃY\\ Jrdƍg˰/:;;_r/MOOJLLtl"6>)wҥ+W[ŘGvNJII 񉈈HOODlb}RNAOO>o~HT^^>.Ǐ_rEb1|dnqXp!喖j򡈈2qb{{{ttq+W[VVVXb_~IjoNxŋt:K1x"W`˩Smۖ}WVV*+++ڵk׮][XXiv__ujjj^^ޏ?cǎ~{F??ӧO۷Jr}Y]]Ν;-RfǷXK8… 7n܈(BqҥtyW^|EP3fp82 ?G`5kVaaO=z4))ĉCtR.III\.w…K6x?;vڷw'ONKK4#KAa-"[^^_ycT*4i],瞫~k֬h4+e[o}W))),+**z\AÚ .] {zF#s1 ƍEEEƚxoppPTg'9=iii/̙3yرil4o]~͠a=ya`ƍQ 'DFFU '4{B qLO?IENDB`XQilla-2.3.4/docs/simple-api/dir_78395f82a4cb2f249a968d7b21478d82_dep.md50000644001725400016040000000004013273140074021110 00000000000000c00cea648e5734113a1a1fcbab2cf1f6XQilla-2.3.4/docs/simple-api/DebugListener_8hpp__incl.png0000644001725400016040000003446213273140075020207 00000000000000PNG  IHDRSΫybKGD IDATxw@gK!!ā EUhUA :VsamE2  ʐHHrצBy~o<("  RH|$ d>E @?w!HÆ ; d> x&&&x"RSSΝ  011ٻw/QHTC@u>2d@@h":󗖖R{d>ׯGFFn߾˫I(((wiyy(d>'555uuuKKkkkxeee//>eX   g~ ' ;wܹs V~ŋϙ3ɓ4t%{EѸy˖-]\+Wttt\xqbb" ֭Cݻw-[6{+Wt5'PFF… srr: pvT=ZdܹsO:εP [I]]ݲ2l:**ٳǏȸx"V~#G|?Z۷CCCׯ_qnnkk3gΕ+W,Yrȑ@AyӧOYٳ`Ag!VUU(||@\`&L|A!DR򒒒Ç#'MMMdHjOMMc!Çn[h,Ϗ`$''ܹ3&&<]!c3;r\C5RcWg;TjuuuVVݻܰ&M\QQQTTCgΜ)--ϝ;䤠 HbbbKK ܜ9sΞ=ŋW^S ";m۶v)))V!u휷njnnqkUiÆ ؄>1rʀիWɓ'Y;9sO[[ʕ+֯_A̙d2OH+W\@zHEEe˖-zv,H|$ d>FLMM,Bc,g2<]]_L֦PdeGTW_f2q~, M$1iNJJe j[[~[[Q{{HU' _ļlwߍ]h,Qe]{hiio^'&iprdji9HA >nξvץ::*71w\rp0qp0a^.IJʍ}utԩ..#do@0TS-&&#*UUf϶cjro|B15|tS ) }Μ1l1S&w{73L[[ <>|55^ob[ryfdb`bf6K a),zYxxzs3ixf>6YQbb͛YC pp0qt46țBhW/^i6n:bX,YPPqp06mSTW7]ܹՍSZ5uW2#bLFd> oޔPT,]e6x+}14ݻ,13g2襇 i^=y޼o(i>ZZܸF7N`ccvD=ُɑtӧEaaO3x) a2Y11O{ƍc ;(|GܸYUU~4cSebne9}մi||F;(a鯙{D˗dԤIF0"H|{,/|ǎzzJ$!Gܿd3dL~ĂxAQ4>>9sl8|D|JTckm?|ňQE\ПХalxGKV1L&7_qt2{D̄ bU|w*y3kDß%%󘏫o?߼ #b@|'vLjwD1ӧطZ$d>ucP(;v\`$ 2Tjsrr^13fI5`@ ]XXtD_#d>~pmhh1.nϞ[LΝ[:~yt)#L@1bА8Pi{I+81lDLRR^v'IG͘a#b'޼)i2~rwu>~ILMJMO/"a#bM{<@?Oh'9Xd>1@@,ٟ#v옹l$ 20 &``0XgϦ9oa1$$daxG$NW#b R1@tO"WcDv'~ z݂c>1@ .=bGwx& 8~pٳ-aD 8|Ycc۶mWoG͛۷Gwݽnj0jΜ1 d~+'d͚KmNyL2p|⠭܄&2_t/np 첲:z 2_C3ovuSwI"Ξ'8G(+Mldo?i4rd2tǻDڄ'OGĘkj*5|}U}}˲e?_j8='L?4iV'oo{UWגaDٖ0.Lr@Z.DnڊKӠׄ'bKKkʒ|(%ﰰ3gS@ةiڼ9mٖxd>uU o\ 2xu++))IwEEn.,,gwǏ˗/E|yꕔ砌X2knn0~x*<zBaal|wtg*)lŚ>>mmmpccc55#G`s޸q̌B ><44䐐 ._x1$$DZZ-,,lϞ=$# ]v 11@UUߟ]gFXq㺩jrr!CRSSծdw*Ğj'jk޺uz8׋:EcA,\xf,y_oҥ˖-ӧOQ={FtttYY٭[tuu|Ǟhhh +V()) CE .b/cvv1cvGdggXYYt8ֺc~~'O 8QrN{xxL6ݻw٦~~~ƙ?~mmmpp0 555MMM222AAAϟjjj";v rv }ZUUa󦧧aeff6~]v܋f͚puAy4ڡwCE~yS]o3fܻwϏ}t+ٝ궐>)UC=\EEwا]Ix}1d>w=W[[kff+&&&!!!.];h7o4551͛GRJFY^^z%YXXpmzĈt^^{XXիW ~_tk<::8XקXT*UZZرc,dvXEY,+D܌fcuuuv VATE <PvGęF۪ ٝg>)UC|]tU''=|b`rTOCQt߾}$!++իW3666Xٳg+P̵i 9΋cb3deeQ(>}3;;B`۷ ?|p&M}6VEPeeS(vݻw;DhccvwBܶ'A9gh®֗M:lj뭊]-_9;''j(1vXޭgZ''='_V9K }) ~:8hР, khmmuss۶m[FFF`` Vߓ!O<ڴNqq16yA#cAuttI"?߽{7h lHXH*rJ*aEʼ=:y{Yc쑜/_>|; (nۡ3x6O$8꼩*v}p]CBO u:3gyN=9iSD/A;c2RZZZqqq(:tHCC#&&<>>|!>> A OORvC/..ʲڰaצkff3qիWw8ֺ]AAg كb8].^xڴiEEE999&&&3*6JP ʹ",k֬Yi:nff}Z__?b;;oܹA 5vE຺藿6ڡ.*c>zb/sv*ϝ;dO'j(G.))IMMuuueޭwUhGuu{Wz|N277N}_T*N۷OOOOAA:""wCQĉjjj twwWUU9s&gC ˗/WUU0`Wss3צ|||tttkkkZkܹsCUWW߸qckkk{{BT%K yf?moW#Gt aDQٳgD"1** i֭ E__׮] .D'ہk!OF(6qh[[}v?\ЩP=p~ll,.=>Qꪡ_{xxpޭS}k7dMرCuq/"W^ussM%%3tzFF6[p\Y$XvZJMM5jFbKP}2//oʔ)<%$_矫L^pSPPh==|^W())Y(v( B{p7g<qὯM g;8 pl'&((|@AGEEC||նx2>\y@qv6;8pիZ5Ajjww+V{ɨ(46JKI [[[ 5Fppڳi ͛7>^'ź:]aJHk_^`@7%##= jMM4s=~~K|w,ăG&x~8 ۏf;s&]ģIDATfl쏖C @xOnf0fؖb'de}7Nڵu66"hw͚)))o֯MJ򑗗A.rTcUUyۙϧL9|y ۷7z&!B$~ݣi Xp'R͏>w }θvo%UV6Z^yhi)=uDz2H%%HĩSGHDrjkg϶زea8lwclr8FZ0EVJ~*=`0Ym0USSAj`1錴vHQU矏㾴4iժIVMVV;()Q<. ,,FЇ@f#\Ǐ5iaadl(*Rq֭8):۷Gfe}JH؂w bd訮Z5yɒoo 7&qGiiw5w_z{}E\j=AQPP믉x뜜F8z{II&&Nt7"/ 10gݻml |"rccm/9eqz.}Կ7o#$lpSD?.1 MJur:p99?zݴ @8qbQk+}Ϟ 8:m<ށ௽w߿6mTB3x%(x,mܦM8+IOy+Wmd>QHOxGǘL…V6LT;(ᒓ#>۹siW |B(޷o.ށTeecp JDŽlM޴146;@G {ٿ?zSOo ޱcʲWۮX1IVwPb RHA>-TMw͡]\>ݳ~4 L{'~ޱ:_BbQWNNI@@͛Y#Gj?hܱRRjȐݺԩ66Fxd>)Y`Q cΚe.;=_I V_#ܬ͆hRR˯s未ktiUb~eHw 1p䔠(:z.ށ &';u76;ė܉FE? d>a.P7aiF;?etl-_ߙ7'M2w ѻw,jhw _6((5"≜yɫW*)Tf͔7ׇ&% .9ѻwҤ>jvkC 9?[ Hwo  ݻʡCHK{oޔ9_?td2 R>z뒝q~=}| QAA|}@@ݻy#Gj8Crv67o-W})8!*,׎?{Vl9WZBBV޽`8H{"p<99pO9AAX,j|؃fc&1QRx凅s\__߂WTH];^ 4I]]o4utT55,, h u+;~axno;;13g>whsi׮?|d2%AZ1qkp {د&}Plut##-\"l 7& Y %/ s@` YY t!g t:A"hC<x24t5 L'_?UKKY^.=HKRR@@ JYY]r"m/ה3~~DVW7]088 EѥK'[g*/@ySfͥ*AYۙ[:d>80&&YHYp`2Y7e'pfڳgSdcb9sN(LzzJmVS+ \H'˽B;$?ee܃D"<[/J#hŊIk{"-M47ׅE#Gj'&,]:ApWSا{ ~ 2?;ydl{Yn0D"10^/81cÇ?M1;wr ~ 2 &c SMUL/K@@Qڵ i k@˗3v:'s}q?Ū+dh?zzIHm[{韣S"4tZkk#$Ň"B}=t:mۢKKo|1}1 LVV |jjjrs;@UDUV'OޫQd55di55(JJ2yŎƨQz_OfffƼMLL~{;?[^|WÔ)S&\PC]JW(5JCC^''{Cʼ~[ pd@@ Y ,B|?~\|9 x ^dƒ䜜f___sss3 Gۍִ[Pd7w['㣧'++khhw޶n` $3ۿv9s攕ѡ_*XZZܹۻAuݻw466~7O>=|pFFƎ;Lf϶Ǐ˿$ؕ***RW]Fo:6׏8WUOO۸qcFF?~xm۶!CC9TTTVPP5Ğٹ9#BlPh^^^(]vرt:gҤI TSSӰaÂ:7@ ׯ_~-RRR***R[:6z-N=MEEɓ'E߿?d>Gsm?/..nРA\|Ȩb+**Z[[`'Ixy󦥥ÇjyyyYY & {'99yȐ!> @pႱ>{nlm۶ijjjhhl۶ɓPT" TUUu uuuO[[[H?|||,,,9WA2r/HK~ڰ={HHO^^7<<vVll#444i4Zkhh#%&&wY&jWLcs.˞;y 333 2|u"<{R`` L'OF;tl~s3 +lҥ˖-ӧOQ={FtttYY٭[tuu=@&WXQRR Hee%.\ EAMϘ1޽{\Dݽܹs544={AjEy}1;;{̘1;vطo3JJJcƌAQŋ EQiӦ{.;;Ϗ3LAX,;aѲWmǎ8p]}VUUuذjjj=ndff6~蘟???>חk@d֬Y ׯ_68&jұ-ljj *//?TSS_OCQΝ; qpp8zhqqq/Űلs'VWW̌ݹMLLBBB3\tF{MSSɼ>yQTۿevv6@Q{6#46ȑ#˱ ,,,^x@ӷlٲsNiiڣGΜ9[D"v 8#}}}y-{٫aX$ӓsS2Ǐ`MygqW^500s}ARSSQe2XH\ZȵB6g>\:vT*UZZرc,d4 xɾ}LMMI$Rxx8Fٻv.d>pQQQ" fffk NNNcǎ UUU.2rȮ(**"kkkc޿oii)//󴴴ٳg[ZZ8;;#RQQd2 JJJ8#<|ʔ)jSSSݻހZZZQLncmuY%:%%%|oWttt!NQ(&DܱQ̦]]][[D>{Zss+Wڽ{wvvΝ;kuSO2ߧOn݊ 4(++=Cmmmuss۶m[FFF`` V"X ?c),%>yH$Μ93666??̘1SNMJJJKK2&D***ݠA8#ܸq#((ʕ+)))Wѣ'O޻w5kؗ[<<<ߏFˇvww[睅~#vuM("+Db"##Tʕ+]\\T*= Eŋo!ӧOZשׂ?v._2d@Hq=/55XDP1 B^^^^^@j5w5X,# coL&+++D IH|$ d>2ҩ9`IENDB`XQilla-2.3.4/docs/simple-api/ExternalFunctionResolver_8hpp__incl.md50000644001725400016040000000004013273140074022346 000000000000003a867ad02b90dba9aece9b91a3bf3b66XQilla-2.3.4/docs/simple-api/StackFrame_8hpp__incl.png0000644001725400016040000010311613273140075017464 00000000000000PNG  IHDRAp08obKGD IDATxy T3,E(-BviQd IjmU*B)[$B*-"JHd0cEYv90{!  aA aA5 bTAA᪨8pL:&gaaaaaua /;;ݻs:fV\\ 5 aLٱcǰN~aA5 bTAA 0 Q9@ x񢡡ABBb\\\CVUUf͚^͛w羻a޼y!!!2224 :krJmm%$$}vʕM6ō@>>># h\"ذa˗/ Ǐ@¢5!z5U޿\EDDlXju{ff d2֭[VVV&&&OnmmAk׮999577n說yYYY{y=z$,,ɓ'˖-y&u.???SSSSSS??vK;;;SSSoooh! a-//-""ի{ۏ=yf/^>}˫2$$;& ׯ_˻x񢐐ucGG&X;u7o\vmƍ7o蚚ׯ_p!//֭[}_ׯ]߿SN~d kҊ|ԩS?~lcck..@111III@[[[bb¾}&Oܽ7"""7:99-!;;}ƍ}`eekhh522=zcIIIEEEgg=Q#w? yfYYYUUU''6Bpիs窪-Xn߿$ԍcǎ;vl>}RWW ٿƾCT?~033'_ߗ)&&p=7v'///_WW7Fa,A'O+))p8v|||:;;=<<<<q>>>6lp4<===m…ۺg{m' X Kddmza0~;&!!9 B4\\"AĨ` `6BĠ` ݻ kAĨ` aA5 bTg&3S`$co?JHHACkÓ8v bgA"WOj@XC Pi+,lͭD$Vwv(?Zx1@4O4(~^rKIIj$YS`ǎLeK矢L4└;;45N^lڸq#>A5 Π oNNM:95<߲GddD,how7M&Y(<);TTFO36VWQ҈ Xà""#sΝ{EY~<~QCcm~Ά}"mؕ^TV+V++K:.Ak} -Tuu uFFStZ1*2SXPP[۬*bƊ pNXàPĂӧfII 'gRp\wNNE}PZ<4Ua1 k?%Ǐ?zٲi.;v S( SS̓'Ve=x𶮮Z̴adg9}:1;|I/SU))22 2FE(y ѣwx >>?'|%KԬuи;` c-?~4> ~%''L #N\5鳌Q}PG֪U3B aմ|;w^eff>{&OA#>=1|9&&71D"/Y2Fw,e1@k5u7`߼yE ee?>܅t^ƨBB232>KI i` cfv?".. i0.ߡn&1D*+ynvdd_f)ksssb16XØD?3qmhwI֭Ix J&1Ly4$$ѣB^Q+VBt+XØ Yԙ3ofQC`h9eŋi3c1?#"#"+*55ꚘhNb1'_lٴa rɒhi)lPF,cA^* JL,5jڵ3Ǐ:/b1ӧfVXٝIEef>2h 9/~d`d4u]!u޾vғٳU\wGI]}.Cg繴!!k;8#u^D` c`?zz&%$hj۷L__@DD޽yybb$@ ׭ ,(̈eǏ̠MM:9U/XRUUᯕ$w^R!X򊴴Z s 0z]d/z5kh9a ׯV?gϥo_hmΎbRVLxl3a2FUXX6Z,%%uRP]ݤsTss1}ZZ}}Tggx bї'㋋0l5Irs鶵ӗ1wƳjfVqqY4kIA` O'ff͞r eN ::'LM5\u.a2@$=;R--;.X0 -aÇKkk+<\GGNJ{{ X,Rƨrs˽SSRO(iUϭ4R` Ri%$hh߿T__댆b̈́X'2(,U>T_7~֭D| jw_+*J.^|vëk:ejts,V+cW޽ZZZxÆ9vv3G:)YT@s Et,j|}SS߾`Y*+nxJLӦy[` ׯ?޲eڵ3i 'O:ƚe P]tӰ,AAuR4DYS666233= 4La?5((#5 ]fQ.$vy!ؾ=ÇNd-c55MV.[v1顭HZTu 8b,,ԩ&+nnK$$Nj$+fb˰*c55M+WzWW7rpybD @=<<΁!={ǏfY~qB$%彳퐐U͵CXXfzzɥK6~X=3'UUU)Ǐ&2;;Wxy T͵kk/]JNH(WQbйKaC{죽lOBQe˦߿o2CC)Sd/^\u"#@ B;K-sgRBB}ׯ8:ޤP߼𵲺&$ēz=ʢ*1MM߾5,`"|VYў ;EE--ZY]uR[8|Pb7I AAF/E8LWwiմ7)(H>lp!\ <z]]0ki04BİR[?~ܔ9.4jnj +;;I ؔ) Rkdp\cٳYNp>㰁Hk_~vv666LP`~1gHc$YSq]X炮Rxx)-@^<XQr/_6lc"~~V a ְ")7'$pl]]>QcNJM $((1~$///cA-w^>"##u.@"s|[bIї.ݻϞ}jdc /AD/5Xg?7srKH JKKK)a68908b~8 3:;t].^8MM.< ʘ2E S--8zt)((('GG8M ̙.,}᧸x$)-`M ?TMMMWWWddCv/0k9yφ sNx`js-ÀkBWgΜ}>'3'=ɓ'iDP77QBΎ+)vqcͭ =TyysD8.44TUUUTTܹsA&M$((8xw²'Ou466UTT(^ZZ ^^^iiRW__ܞo$Drsstss#HwMUUU 3g+(( 9rϞcjDɓ'JJJ"""O7aIII~73 S&&rs[rcK?8 h}Z[[GWSSWA}dɒOwo766~/##TWW4EZZZmm0_)cin&(*sȆ|ڵ?~z5 ׯ_w^uuubb,=rtt{HHϟܼy388ߧP={۷oG`mmx<~ߟ=ǢF gX|9@а$++KIIãߍ,,,,,,:SSoyyד'.4#հNNNOOF B&ְB俟4AD"Cdʔ)ݑ` ͛/ƏߋF6 kXccZɓw}5Çd2%̬ߧPM8899Y]]A@^^o?Xk<{ A2LݡgƁ 0AdJp+EŽ +*(cs"""iiiYYYsIOOgc'YRy̘1NNN?ʦLr_&uz nLF޸qcqq͛[|޽JJJODJ"DDj_QQ!--p8ܢE˩z>yf MBYY`ĉm݈ 66ܚ5zIIGX쒏O* Aj@P(QQQ ׯ766nhh[ǎ[\\>xL>>> .tuun)((ޡ/_-//իԍIIIFFF?Q\\X1++XC~/ R%%%"RVz`gʕW**bTp8aLL 'jmmP[nݻw'O~S8,%%a2:Bqttܾ}{xxxJJJ||<-..ǏIII8Hgg'H"+WiժUkaa9X[wQZZs5k [l[.HJM =#"b؝\C$""b\\\'NCD"#zX\c25~x!!!##8 ?R >aӦM#JKK744Ǐ+((Q/dp= A/]zZDDdҥݣt wpp۸qc[[^O"s{p@}icǎ߾};@wTI:y2^Ff7Zi6.ĠFGGSjݻ][>9kfS?!h\èK45=Ԏxy IDATh0ҹTXXf͚#G899a} Zd*\„rjk#Xg):ZnbbRWWuRtgnnEx800AA~7'aa^?? r,[;nkuE888N<7P\\g- ͔W:?ۄutJRRo0际vj^6CC<Ӂ0h$9::wj668Wž{۬tm qq %XgXà=zfiu"/..'LotLIyodtbaPoYS?v66u:]5 ꦌpf>ɉ޻}ڙ..aMdl-,,KToZ4(G$sq Ap8: qswճ233PJi89ُ];%4/﫿,;;ߖ Z/--u:7;[&y`ֹsÿ.ŋ/DEm5KiDCOAA{obc44͜dal4^^y3|kݺ]Xaп NL8yr։`Lxxݼ{+ݺ~LzU􎝝mѢk+qd/mm۶}<{j@keff>{&O:lun'//ky󝌌ղ=> **''\ZZxժ鶶x ׯ78vKczA}{hYχwa6jj֮ ouk\Ldd#Ƈ5ٱoZuu׮tw_ STT[9^u:` ߡn&ֹ` /遲C8;Pzr7hħ.JZڇŢ|66kԏrGǛcƈܹAR^҃F a(&&#{Q,tԔO607vs 1yzD7n JJzwㆽ9IK~733-ڌHM֥PkjjUTF bڿٖ.Ukn&<éBXa,kWƍsY omcMhٳ'rhaa˗WPf:?J__q`LLeeut1͛7QHĉXӃ5ļyej0>%11[i'Dll^CC…Xچ88اM[N_AA"1'EEXEES-&!8/e-Y2 y+RRB ;1ȉ֭ӏijj4jT-˗_VPPu^`b蘐Paíο[G O,dsTTu-|Xz''[xkhaaέKz99…7efYst5ufʊ`^v,??{nnN 3ea1֭!ɀΝ-NJ o\^^mJ::QQ[?}aiy da5EHիu@We߾c SzxϮnzDhNINsO~̝{vȺ S:U66v{]]_Z1&xz ˖;_vA|;+ڵM:hiwo։`BAbbrOJhmܴim G說F ܜ[Y05EY[qr߹DR[lg_WrGzzյGvOF_L[[իO_&*wr &4rpEEm$h8DVT]ݔgs|PdDIo 0{꘠  (7%/_;wKea.8ܷ5e-Xw)zUjj=~D\,)upЏ椤ΝLJ|%PLfXHJ DEmegg37 Á5P(HDD :_jh?.ZƬY!!΂ tڌP**w9t;_4zDЍyy[NW0k ,+-4'l13-/wo" ~bbAMM։#vv<~IZ<-q9=}a(XȹsFصDF@EEU@L̶%NgTTF")|yhW!)'OX3{ m7ɉN4AfT0Vw<|Xaߌ/ ޻=rrͼsg''QhsNN۷4jhg-.\x|+ڌ-XXELLLL4Nd22J,-N4&2r sioO :z7g΄7ee)SSokkݝ; GڌXXExkccun{02 qq~ccults3:x0zPjnT\LӉ` *lmɯ߳C7n{ 5ڰaǏ5^ap[.})5WhÝ?o9nF a,!,,KIIrqX'2tg$8cC˱Z=Sjk+P'S(HJ{K˫6a[`ңGKz|Yp7n]ֿ5ut1G? }}^`aAArrgI{WJ*N+`_DD6 rllhh۶-]߁5Ž%ZX'2d2eAA׮]&U_.=jDBAa˾?ve]GĢ]Zƌp|ӹsQ< %K2>eKӧnv;w""+մlz. 9j$++wodmm+=6}XOO;TUǬ\@ ?&WV37lno']럞^r&f-`$yk MM$pfn|Gz] +Q XØ\hh6B,.٪u:hd`XO__%.Υ◥Նtsw_5V}}+Ak3#ѹW0zZ[MM}jjbcO,u:253l}98آ-u:\lll8lhcbJHXZ^Fq]M ;++aL+,,KToIX'2(߾27]JJt0<= T88 <8tBBwn⵰g z:e.%%imxa 1' ȶ}~x FFn:pr:jhS pNp obcY[mu= o|a)-CuuCshT-`Tܜ98ػȍ8lX#"6nu4ʄ O2v- ^=XØSXXx MMǏ sfuaF OL̶1cաxE#ƍA]]Fan{]TC}ȨEKŋG5WUUov`ݻwfу ..F-ֹ0 vffke}9J9u^ wfڌ1lKհNd ?))I޺~d>]jjucǢ8idffFEE ;^ߨk23K eBZ, *-in3nDHF>A-Ǽk.KKK K<㾜SDMMe?$+Acxl23JKlIAЈزe:۶W4ĎNݲ% !` c6aaYtf짹 h>m1!88||TU55h0w<|XHa,4ԙ07nP!Q8vرc&ׯ?F|'XØJLLLL4N_ԙ_ ˜0o`CnnPZwi.. ` c*ᯍF/_|D0.`y} ۷oY~WP_ϬYIz&O9w;51!Ξ`cùE5yTU]:33_YYЍ ۷ou}ߣڨ/իW555555VVV'ЯzZ66wЈ/$iaall!*XØGxxN? t?s>ɓ' //B^c ѣG=ZYYܹs%%%uugW=Y5n(;wCbjkhćaLt[[[=jPQQof+##v{Lcc# <<\EEB 饥p&$$hhhJKKwz>>>]]]ѣKMM8͛gΜ VPP:ru&%%%))F" lll{dD@SSӺueee+jdA٣^__%}ɜ\\\BBBKw^ ݁ UUU=w]^^^BBbڵMMM?`pqq-/;}:!^!,̻w/<b wヨwo:l:df0C"""gڵ?~z5 ׯ_w^uuubb,Է}x׽߿߽gߔzհ@M|&Lwuw?f CdSdLp Kdee?ss+g_Z-,"f˩ oܸx-_|QWWAM $JJJODJ"DDD}ĉD*''gT)-*//yŊ+444^xl2@mm-L?~OiӼc**ш0ȑ{55p-EsjDUԎ֎ldaӦM#JKK744Ǐ+((酅!rEQQQ99WZ[[P/DQ_())IMxR|VkPl+cGXrrqPY8 IDAT]#RRR'?8{ٳO y]Ca ,-Cuu!r@t||:=XA#k EkkG4⛚jΟo_J}Y a ,,,KOoV =zׁb]7n??vll,&i+| r,Zk1ٷo_R|kkIIyAgRPP…X^~^zǏ˗/Ï 0ѣ+o~MD]\]Xa*22k?OB͛^^OΞX|& !wwyL4u힞ÏLP~Be433g*>|BA2ƍ?t(0FmnE##s=|9t%&&fǎ=Rn|w?~B&ϟ?" 0k֬ׯ_'ODDDN>=h\\܄ $%%]\\:;;8?,FN\}udd699Ϝ1SR;4 loիRiEEi?Çrr==rP0آ.]߭BߞAeJŋ{2C+x|LL а$++KII;^G5FOG:-[$Ɛm Y"}ر{_ z`^52%\DEE*3r<{ A23l)Vr8 mZÚ&O>t47LKd???ucIΟ?ǧG]7P=SƎ+..}\zmoPcߕ+B\yeŊ(-+ fWJ?yW7''{L6aa^دY{hq\{eߖ-~Ѣhau'IGz)`x|.Jxf uuKNxEA#ʕ="QϬ` c$qqo  "k52r FhLPPy0!}VT߻nnF_{R|k# Zd?Hdg_{wAFJIIrŋQ7 jtO$a gnn ;!wo˗AA땔$Ȯ]55M9(wu5jD/>5afʊ뫠={ࠥXXddD,-gxy=APLNNC=kc ѹW}+)Ͻm͛@Ġv\T[E/ϟ-7nz51$%khhFugzxX@ĸddD,,;TzAB#>1kk?NN;w67ē'ENNv0tu](CtuuN ~БL===멲A_ԹsVV3Ј_[۬{1ӵkg0P]ݔ^:;߶ѥصkHdM 'GXBOϟEuXYXXrD99U<֍PLqL ~ɎFMM}fT_V\\u\..v 6͕ JJ~̝{61q<ֹҟswXd*~Ιs-ڂ0 BA""fT**꭭dx^(qr[[]Lh))/?FKJJMNA/9wן60E>TW7ZX}}1cDnZ# I@N 谀Q͜9Xgr\\,C)WJ9-z7^AAb#~۷Fx|FTQQƆ31ܰaI٬YG]-ih(G#*'{{ۢ90VWגήu"#7KHz;DAKf:RkaNs,fR&yy_Nl2?-O?PaÜVW7 F"#yxF|- پ= t5=:;r?geuomF[ 1RcDD[p/Poj)*wK3XZDDֈ_qQ@*.3_[|B[ԩnqq. :e,/K΂p8ѹmhddsee?GDO͛龾v4hH +]\BZ~v^Ǖ+^gRz󦢽u",gܜaaY(ŷQ[OO/A)>5~eO,31;}:di#!H|cKFFKJj/\Xj$*ʇuj#@__D"cᲲނ,ӧk;>,ك;wo:`ҿ_T۶#璔B[0!%%$ /aA%)J--=* (ghѩhTjn.]vI޽woief~^[9הW5 b N ~R+55N66Vh߾6uK87֣Pb+k_zĪ#-3FP4srawm66/_VTԣ\@hJdd6avd66 dfx|G@ ]-6YG-6FЬYJde6Bw藕Ռ7oD)>5g))IN>n::H$9<|ѧ/_t?ܹ?yѢɬpI%"7qwQ]mte( 05v ֈ%4(5A4ر$VP"Fz) .ݽq}7+,9Ϗ:{̙=;3g{@gu40OIm).`䎖}zr+OW/36V`!ƈ{nz aoo,kd%&V[˺s$S(c$'gKBB6LHL|6sދڶRJ?'O.Q:g{y!6߸jmmuY&3|}%kE"~~N:(YQMM+(`ӧƏd`K9'ۣClnxu׼vnr bC8P(TXN }BQnߖ>}ϟ@SY%/hiY>z6L6嶺qD#kh:&'gIB6LOe7_ XO\ɖ6ιscDMz!6!Ćx-1AQfzc %!7IWPl6_~9L7GFF'g \Ɋ<=w%88_A£+__J!}JK:l>nks3N䧅 F^=PTT'8DFb2!34&^bss/^gj'Ņ <݅86bcj꺸>x3zt WPOݿ X,,(4&%^8pyDČ3d 2dÇ`dE`;^WWY }";锏r7:oQ+ Id6ٵbo +Â|uO>-1Y2q;LLI{|lptرzP.[[QаN'?zKsx-'O.RLϱ^B.R3fBzyٲ܌RIWD`-Q.0nzzx%+(0 y]Qгla.]zvA,Į Bl--%l\S0`bFx{AD2v55ڵk/$!6=@O`5ESqشi11VJ u8z4XPWWwr$hz{'94aj.l6w_!򖗙^1yyS1ɓm7O&|}rY+w1@KމNN!6L0-)7q⸸(x`m-С[ÇZ7}}̈́䣪 }B72;dJ?~$;;9Us8%+%.HhTO?p >qb6I]~矪Pf^|T=D"?zrhYw2#..UˉNNt6[\\)ڻ0Yrɓ=iIg$GDwb]a[bbݿcggiӤrK'8~6KQZ?.hiaw Ækk߼jO(L&6LfxQU{ QnNM_̪U.billIHx/w}}O\:v8H+x{55_6'R.&Mh4ʨQ.7nd׆: !gΤ37'>|`xD)EEǏ?s&L&MW#Md  ß?/~ ޽7O!rB::3-u25թz'F 0¾|7ߌrSWZ ٙO2 -"ZY͸ 8,\"$$Fp0B덌eZe̘8߻f$w1u!a"1yss[1ZZ  _$}VΕ+Mmtt npH3f^e;€C"!aFWWlq0/  0qt 0|SW~y]\\߿o2IShh:4ԃ?R)bN775IN4~SˀO"ey};;e,]&kS,َ~ Xxy.\1 D!ߵQ"F&&UUf} Iz~~;vĉ?4t4dII/Kb77:ճ 99a˖I7ofWV6qa2ɉnccxF(>\"B\.y47nǶk5l6_~9LƍeIӦz4:tkذ:L/1q  BrPяtkhاw2d̘7n@SSu  FS}GSl>qz0o ŋ+~3[^,۰ᬷ3n9zt4}:vѢ+8ov?Rh"&q TPIV6B8?U6fLԆ g_,E n)*߸=gΑ?YOd͓*# 6ohjo`&+||Su뵸jj!XVq TP`?Lp8a~I\\*q9v,BlE~EaF:޽BPd55"i $NK [`9%IBcqyuu'ji.gkkYB)(ٺ?Gr{7̽y󕩩c !TVV6|pdr2- q˖Kmm1{aIv02zXuuZiL0m1ٙޙ3UT XEE I­Q5KRܹsnb涿.4 զ&aa % `>":۶M |ѣfZzh{bٳ"c< lp55j\26ٳOlL&oz_~Ye?薖9qpT nkt1˦ӁB8o߾sAVVVVVV̚5k֬Y]`*Ǐ{1cFIIIffgxxxnn.Bhoޱckff˗/ Y-]YYyq*bV?qĩSp'" ۭTQQYxqYYY\\BqܹsLfLL BhL&ѣZܹsĉ8'&&jkk{zz8S55&nj9p;vk0guϟ?qACC0u/? l6qqq9 nn[K!'̞}X(0`E6mǎBJƍċ233qgg/zwݱh0vV}ƌ dÈv[[[_~b\ݻwy!3]7tTӧZZZmmm~Mh4Z}}}TTԄ  -\x_zÆ 7oƍBUVmܸ8^@Kq8:~-'L MpaҥRȚ5C˖-^bԔ_Xa+!T\\HڴiӻsNZZȑ#߿O&VgXl6[OOOD***999C 忡_~!3~޽)S <޽{wܙ8q"B۷\.CP ^DABQF޽.̚5ܹs8[H2Bҥb e/^yf``C޽U~822ٳgqqqƍr=GU~x;UPP`hh(^ra/^z3gn޼yU|7n,.. 8to޼XyNkHq]pdh4  ڶ477o߾!u¹κ3a„Ç6F3&66!D̙f͚¬-[hjj:;;/_E`(ʌ3BBB?*|"b#Fp8;w?(#M-i4ӧE" ¢xk1qߋrl![[[l2Ǘ/_>dȐ6➰0WbDGGwl@WBt\;x𠻻;]tԔa2-300XlYSSP̝;(X {{{Dڈ(a8oiiys*@RwڅxSSʆ x 1~7͝ii&.𷞒:t(Zu,_\]]d ĉ?nt7fysGA KLL433#O>Hl,N}mIɕ+--e%'q}M*)"=a]]]]cccy7]46_?U1꣐>&mΝZZZ>>>OF]% S2XUUU'O?xӲXЁo޼yȑsָ/ebbb W^elA] lvB[8ǏG?;!"$s[{Pmj.9Y  D·.555UҭHD6贓&M:~8rtv"..EOOo޽Da;1 ;rHgr\бvYi(sjSu]ԃ55RSĮb66LnAB 9Y1s_~!TWW'_~<))ƍDd,:G!H909<6A/;\Z)`o߾ ~=h0!݅ lyI9px^[Ă?U`J< daa =QbjN*)$WIHzqttBY.].;q⫯bXכy 3??* .c'r⢳3pB d֓!mmK@,,;~#pB hunE&D"ij @,K޹jժ 6$'' kex8G!Q `oTubcc } ̞=E߿?00fܹxʕ+CCCW\ioo?tvկ_=}޽}W555 ;v 6n(h*Vd23BĿqU]]իQFNbյrfϞ:{tRX]fiiN… vzy/u-"Ps2vlԨQ.[LV?^޺ABZ) |:ҡUUχ!7nG6LUUD"uW\6lS-^8$$b;Xti||jwk1MZGȆ9RV 9jvX8G{ee,VV7VX&JQYLq<7mjZ"0YbeeMej1,all!I:"x}{C`d3[6< 9ݵa FBlx> (p#) 0)4'KlZYd÷20Da@`Ϟ=ӧOr7 VWݻW9:~>ùznN,xyyɤ]{{#PQQ(0== ɪ Yk!#mRhk,ysÞ=׏oi$4VDVSӨ"i>DIIԚ35sVձ>| g *lnWP j33ŘJaЇ(.6r|␜oߜsU2aggTX( xgj#Q}aЇ(. CɤYkѣHIGj366"\Y`j+Q}aЇ()aHC[[}Iwl171uRF<a`P_d6І<4!aEIIݧٺRcclUlmwދrse;:lB`@Lzdؑ#""f\Fťb/!Q߿oc2a-lJJ(h 6MqLO/R2RpΊ0@ߡ\FZiooӜ:`HɲzY+%(([bUUBH6 %% 9YH숣!K23KGܿ?U ++RFijBaWnzƍ';vO"ΝK>IfaWVֵ +,6`P\\ke/k-F,]{c33g.RRB_uԢZ[[#) >ͭhf`b_>|555VJXZWT4tĤF1G)6 \.&kpw|y##F9tV[2oYXjۊkml{(`O@S,"H'{ܻWۗg?\!k$BH[GMM#jck}:mm5]]tfSWW xh!˗6gΑRDF+*E; aGrI@dr9~fr!Iffa**T8l JJݱ^D||8eŵd28l swQL.zlX~~l 0( #erqq1UL.t۷M3]j?`@!(Cѣ &vUUl6 lؿ GH3QL.tNCbEְ\6 y˺" 2x(n&:]Ζsrޒ${{c)k%π G>HEBk#޾MMJ5`@+c& ##m LdHn.8tl(?uEgrݭ\Tfg󰜜aI\LLt0ϯvr2J 0Pr8x(V&c~55lX~~5uq1J 0Pr{dr14W[X]NQ`-`@QЬ+@!2h a^U8:n6 κ" psYW$/ $W\ jkl׽~]1`ذ %GiH L.Z[fMMfJn_RE2j!jk&Gu*k3;w^9~:\87Ν ,-)@ D&yEF1oQם;ImZTTQd466#֮=iBQUÆ:G uő#w""a"F0!I|yukپr~~up St+W|9J&48pyfxQtl==== V 0P6RSgYGd2iʔϗJ MHxyF̛7.ƍ #ۘB!#Drna? 77 !/ϥ.˄ 37͜sFFI/3fB]I.#poo;A6 MMUNT*y!}Jtx\gr?= < /d2iɒHS=A"Ip^@ %ۖBi׍audBY&G/xM6Y!ݻ+Wn߾}РAӜGUVVL&ӓD ^nl(Չradd$'''8 %oٲАsᦦ6l122}٥K~nnnnFYYYIM=իWN:>|8BN#\nTTS~|}}?~_V||ъ+޿/99AOOoϞ=U7r効y}}=B̙3NNNMMM!6~zcc׳l˷nݲJIIپ}Qpp0oѱ4G`ZMMMuuu];pyB***'NسgϯK:SR]DZ|;/e{׬Y*Pǂy;wbTUU+++?NRY,Vnn.ZȵIDAT/^~BwCѣG䤥988k !4i$&yU{EAD9 ,211y1Qw3fdffzzz=?~۷wꚙaÆuVK8GEE ~ĉSN|Ëwj!<Bv/hp'uuuN|ڙL~:>Nq;v,$deeeee}Ԗ HQ F۷ðF.6qrrI!6,33-!!ֶ][ǹ\n\[XX\\\*++7nxxxŋħ^]w%p;>c Ԇ`_P( JkxW6։dq:88,ąцZ")zzzwIKK9r`KKK=|bbt&P\{{{(S )y|^@577cv9dɒɓ'3 lll^xgvvio^PNNu9Gii?L޻wo#4Z;NP(mmm477I"z, ]pښ Wjjjm~ $duCCfϞia{zPƍW/pu|ʔ~S2C77-\ZZ4v78Љ7X1Ώ k@ T~֦4@ X()) f2x=]Xg&&fؚŝW~W?{,66Sֿ'$$W%KVOY|AA{{{w:xbQ,!T;(**ӓ;S<ŪA_mݺx lk@}}ų1114&4tOr-߉d2l6Fs玷bb8v())~:"" @X,VSSJ3gN]]2y3WKKNG:mndd =RSSʈ󧆆@q={֭\OUUUz蚚.\k 755rС[:88O8s׼_E`0H$RUn/ 6?Dz׮ghhϨb?eʔgϢY,PL2ZxMM-@\Sg<c&UU5\L}ƆU88 ߳0Y>?hing l>jic #| HDBDGGO2H$bKKKVVV}qwwRQQQ6l0119x`\\JӧP@:%ͼjn>|9'5""W+')TTTZ[[A@ O:UU? ]Rp}_Ғ@Lnkkg̘wD/ܾ}@xyir@$T|SWWWE9Ȥ;43]YRyk..cV^ԣY[[KK+A ;q'N& M)))Yp!t9/_6W}LfR({9<|#?gsJ[Zꘒr֟~ĉu,))a2WWW'ƼIūyo@YY)ƺ;vޝѱX+ZŋKJJ/::,{BFKKGMMk*2~$oo\:9qNeA(##}d;C,}Ŏ8iiiikks$Ȣ;~77S^}G ٥Ҋ\2 &Μ9&Dr'O݅^\\ܿGPF1r]AEEeGE6#G!cN7o>}tww BQQQǔQ]߻<Ê yţ f!;?@o^dAW9N{yy?y]x* ̜9S$IORXlZNN(F444N8頹}D1+=sݵkD'?q8Go~3jhhX~իy4۷o˗/L&@ VVV;w6g0.]:zhll6RUU8pN%/o*x0ʏ"x1mn޼ H/_lmm>|U}}H_VQQYnvRRRPw:>~h\PdL۷owͧ[*))xL&ں=RQQabb>Ujkk?ftdQz|̙"rE+WA,--4eooF BZZZuu5gbqBBBJJʖ- 1oiix"$tü) )1744:_… zsprr:y]f(ݾ};!! x(ޏc<`+`hhx?ɓNUWWgddw5{+V̝;.Kܾ};<<ȑ#MT2'&&Z[[;!4M k6mR/_z*??`0&Nhll\QQ!/Yݽ+$/R(񉌍D"Jv:>p@:NWm۶9::Μ9MH$^xQUUӳ] wҏS#yPPP`0񚚚4+_ coiiQVVz|Db\\\ss3:K[[ʕ+999K.ȝÙC<`aa:WNΓ=s}ίjbb" IIIwנA.\pY B߄Ƀ<3335T12fX[[{NNNN{ uL|G Txw!HZYYq=n 2$;;[8+W-..֭[Ǐl37l؀,{;ؼyFUdǏݻz!eaa]fO׮]kbbf0tj(S#`{aV cMkkkaapKJJz\|ر+W\rӧ7o/Y&33Ctچ D/cΝTKK H?DH N:ţԩS/^PWWF$!!A׸pEAd?..D"u}~AKK,b"c9s?YKK˭[bӦMJJJϞ=݌`TTT^zl6{o޼ѻ$AFEHH5fff_]ǭb/^9l۶mԨQ3f}=믿:uȑ##GxxxH8+:GGǝ;wKvvvwI<yAє;DK'U(֭7o/L&lfhO5(--- +x Yf޸q#33U?+ٳ9133K.]v-""BͶmܹc`` >/MMM%%%=*%1dOtƆb  :~xSL&s߿76ŋ, +gMMٳ9f[ZZ͛]QFY˗XE"FFFVL:5]8ydq,c2/_ox7y|w<o߾oZZ͛lǏ!]+Rp`2Ǐhhh6~XjH$#Gz1BٵkW6 .Dna[r]_֑իW;::b2xhޮty]={A}3$ǏFFF^^^&ITdY,VݭogRanܸsCETǐ.\ۂiDDDDDUT݁zD"$%%I$zFFJw[;Ex^x"hkk ~PUU*&&N损̙3Ν[]]U`] |H$dɒoߺvc}ddd 6YD"*(7`;L&\tѢElvAAAzzzF?NRUP:-# HOO#|^H$jxOo01|p'2GMM3g`XηD"Q(;wfeeK~.[Y=RQQQ=6C' rO]fjjIT*Vׯ_yH = ,/=S@nn.?j#26Ƴj&HLP*J$>h ___ ͛---AKK+***55uغT===>]K~|*A.--~Ou㳲6nܘ̏){M0+.11X]Gdvw+ sdl38;;;Ca:!!ɓ']+++;::7ҒOS'OV޽{<wɓ'gُ?vqq=z?Gü₮ZY8㱲&%xyyah-77ZPKv?6lXSyHWRSSUUUlbcg _dGGGx l?g 2xa5H'RSSoP",ggJPQQQRR@o-@w@wrr"H򱣁LC4 :Kr<+^MM&6#--AUU.0A9;;ËW*PJ{DPŻdeey%Dh޼y#<f5"tj C,2xASݾ}[|!AP +P/b ۷'L h/ ]Wf„ ߿t{@ x>'b)^IIIЕM#GTWWs玘B444`0ĺIIWdL***P(GXIJJ7ni8QTq2xJXM0!995Gv}!R#***)]" V%Ǐ~ڵ.?@pcEqLl6l(**|$%% 0_~BmooЅ9pTݻ,w>Y$))I&Eё1 q2a„/^ޔX|p#Fz遁 gΜ߽{wttt߾}5557oތJLL:t(Jׯ_tt4.ϟ_~- cD>k tǏ?⌌{mٲ=~gϞ޽;88YYY inn\tiIIIHHܹsE߿VH$ҨQB+^]]IQ={ȑ#fff666{uz<00P]]} uu9sh4jjjRs̩븍IJJrvv{@'Ny$HII 펯)))馦FJMMS0[n m= t6mڧO?~mHV\kkk+JHH_LR[[+P˗iӦ m*D㭭xUlC&􅇇GpppiiiVVѣG{ ۟؈ũ5)y\2dQj{5=*tAӧ_|ېO>FFFcǎݳgOZ6l@=ّk׮M>] e&nllٓO@ IDATmccylVD&$R'N2 :}9s0\xP%KK[)ƍeee&B__Aoaa1f̘HL1'N?~(KZ;f|!ZZZX)hѢ7nbeP(++u… 1YWWG%x[b``On``pԩp-NNN<8qbBlT[駟14'eeH m'Qñcǔ5 FlcW}͎9+jl7A&mnݺ[իWVZe\nU|^*++9p@wwckV9pɓ1gxUy]]ׯ_5aÆ-9ܿ?---((Ha72xfQFakVv 7n%:\y#Ê///͛޽e)))x0 ^VVqƹرs2Ghhȑ#7MMMuuu2`jj*12a~D1=sΝ;wd/bRۘ1cW~b*`ff&&vޝvM1ٗr_~}tZ1QVVV0P\oᇠ |b6o?5+//ݻ*;;wɉ ҥK۷onMUyKKv|2dMB ikkۼy*^`|qܠk׮O>EDDυ믿~Iz dW5111YvGuuݻĭE68 JR --m۶ՋvZq;S{{;bu}ӧOdee9sf׮]UXXׯqE?`ߋۋÒ%KXTANl%K'wVe~~SN=yD+T9s&==رcoyyy ȶKJJh4 :tɒ%֭äQSSb LJC^^%+20LɬR7n/ H"n*1PBbii ~Ǐnގb6HKK;w\DD3"xaPUU522+Et:O|HIIyyMMŋEyގCRN`ǎ+I***%%%5@"zTF>}T]]]Djjj۷oю۷DN;"cIJ 5kH)@LMIIMLLEN0lrTTT477Ḳ/_ 1D"‚D"566?~ٳMLLDa$@ŋ%FZKq-X`ɒ%>}ߘA};ʕ+/^}ZċEuQ_wWWWC R%?KUUԩS׮]͛7)++p.\p'Oc$?}`ee%yǫfL>}:..]yiv{5\+F aRGGgٲe1>|XKKbIWd{ھ~{^`Aǃ޽{JKK󧩩i\߼yݻG.]k.O>2Jff^sA_2lILLDiiil6bEDDC j'99)99YPC%z9p}N Μ9Sb2_vd|u+]W+V|IA>dd2N >|@RA&Mrʮ-1ydJJJ.\/ȼl#Gljj,DbSH\"HiӦ jD"QSS311innRb%͛7C 5ػwoeeess3gź|nbXtk:ZYY48 ᎰBVX(y#F P(MMMYkmmTYYE S\D%6/[ S'a:@ϟ?<_:h'TGlL&{zz*++ dݻ\1ׯ_;88`7(7j$r 5gXj'H$ҵk9k֬NYN5kv]@ 0L???mmmAmʒB^#mmm$)>>^o߾mhh6NhDKKN ddvL&&&& d +Їϟ?{GaWRR9k^^u}+Y#H>>>L:Z]2 SN$iȐ!x<(USS… oP(Jbb|||8 NBbbb0djddu T*?2ذgccc|c0aBǴZP#,ndd${ѣG js\]]͖0bĈJqM^n޼yq*޽+))  B: ͘I$Bٹsgrr2^տ8XgϞ106P(a\|G ڝeee ѣAsss.&ww l6奜Goaep͚5Bof߽{^z9;; ݂jĉvLKKAhjjzAr%22200NЫpq ?_bEzzgϰ2 Ȉ#D)\__O Ncuu5BeGtlUPYY)2ߟ tL:YJ8qqqXY0WŖ-[)4rr prr/^;.((9r$ށ(O>O<;x@ptt;⥍Y1WJNNN=H=(\)~ȑՒ(ڜQF+6BFz>@\)JAK}d2vgGsNq@G>}| *0mڴׯ3 yDcǎ]OOlv]]]zz:@4iիW߿0v;w<|U!H*,,ԬEJLLS زt"ϊN(Jkk֭[_~姣GpppiiiVV;ZRoҤIǎstt$ƍ;w\޽{ +V(.. jVUUuAAA-jkkv&!!jb" x kkWJدց|}}Opuuu{{cٳֆι9r$FCx#G>-88;AAA΍#qb/tXqԧOXL@U_yӦM+)); !!fРAx 9W~kll`0OOOO9W<@1cFll,ށ?o;J9W<;777;;@hgggEԻwo "&]w =#G&6&>>bIA//—/_=m4) Pw IQQQjjL4@A KL&ޱ!Nի-B(PUUu]7tzTTԂ a?~P[XX899EEEqʕ9s(/_;ĉ&MBr xoooA SRR.\w @Ԝ:u*Ll0ĉ|΅Hs禥 3| DcRɓ'D8w\[[l4@ /҂w, >rٳuuuE0K_~5!!@d7n\@F7}t.Dh~ &X[[ l1B߿?f̘W^h Ȉ#$4P^^[YYYnݒQDųlÇ={G5kp IM~pnjjzA |||޼yk),3+ǍӧOS(JᎧ'QpD"Qv<(\秣s=onii9c UҒ%K?Ԅw,DaaaLL̦MYU-:/nkkT ›;vGګDq/ٳXdwޝ?~˖-2+xƍkjjN:w ƍ ĵ Њ722?Ν; } 6@J ?{,,A܉ uu@ ]v-ށHQQQSUU;̀q]X`,YX*|wg^z5^8t۷o###er|@{655ر@p|۶mAXX߽{w,xl2ccct X9*3K,qϣYCCoMM"Ĝ>[n͚5=ޱn;v.]̜9Ç)))ϟ?Yxk׮511QWW0aBaa!lyze!RMSS X,V׳4@ <|ӧZСC{ǏF#&HO>֬x^;wݻgΜz@ 999ؽ{Ν;|pCC+V`7mQQQppppp~Y)ﯜ ~zUUՂ444lذw/_cw5 FEEի'O#6d2۱)@L[[3NzҥK&&&Kuu5VS}jjjX SRRz5VxQQQٴiSjhdeeUFĈLPrI9R__L˗/1D177^+2\\J̟?♍d2ׯ_55CȚfϙ3f;wNޫHmmm___& !br}qccqY[[ן>}ZDcccen#'Qok*ׯ_KKKE\RRR/&M4iϒQ,ܹsL&sӧ e޽ZK~@ $''ظ%99q'6m׳캺}N8cpԩq (oOL&&&?y󦚚ZkWQՑN&ꄳbLMMQ#߱Y~~… 2B @ߞݻ=@@+ٳgbsԩ\THiӦ m655)%%%"^UTTT +bt:=!!A~~~q'X,f/^`0t:dlE]%_hqPQQ1lذ1@tf[[[QVVnii&Fj@ xxx455ujxHg?ngg`0:B3>Ry2马,͛7o~quڵoA8˲ T`DFF~Nw=d2SRRxLYfuLg͚%Dlv[[FڸA: D:x(utt::}(J d2HܰaCkkk.vHAdX^t)D&-[&kx8;;c5GbiIDATwMԣG6wD"FEE mP>ݻwS(LP֯_/Aebb222zVcEEg'H}Ex (((pss$9 ChkAAA B md޽h0aȐ!O1#..y{~ZhРAeeC?>{DBHHWc7 ; 7oO(\z:])GM<='vO »F%"j~pB-֤0 JU2\"[pقNM CcB xbQ,!T8pO022T355:thhh(砕UUUΝ;vvvj3믿гo߾ګL&߿b}Rݙ?P5,,H$~sJvDEFг]tff̘nP[;SZ'L>YP^^~ȑǯ]sPOO/??4h%Jcc㒒ȫWv]VP[[/L2tH;3iНQ(b͝;w111wMLLD{xxfee=zc/M6,[^矍4L&cIH5=v>|M._lddT[[f̙`[XSSLJIe^l6;.. իTGZ'?VԚd`VQ,!TM@v9| 9.{UU3gΜ9sFqޮ( ]HSTT{no7 sM3gv}ڵk]" 9z9'8qBxq͙3N{;v;D" j[nU*֭x[n5K.v]-Wߞz꩸86tSNy([|z} ô]v{7}ӧ{vϿ,Y3v؆cǒ|A;ѣwI}iӦmܸd2uqxϟ3gΔ)S ϳ:uj޼yӧOc;xP6sЫXŋ?+vڥT*=ڳgOSS￿y/~.\?c7nWNnyEFqϞ='NظqoYWWcǎoٳ۷o_r~۷q^{ٳ_~e_B>СCwڵe˖AOgO:tgы-{}Gr p.|iӦ{A >R^HII}QFa4ɍ/III .4o޼O>7nA bƌGllgKtttn'{GRcD"H>=.KBisȖ.6@|z/ꫯFFFBڿ?YoD" L&F^QQCP]]9R*ʳ4.P(R)AgΜ;wnTz28#km~ t3pmNK\npL&XlVnO0qĵk.YD"h4w}l#b۷o_xl8iҤw}7((())> "88 Ç}|Wtҫk8q~( زeKTTTWֶ6fYjC+t6f0XɀlnZfsZ6SP>t__:KӅ׭jʕ8رcqSO>oSOQ(1c,ZJ:wyGӑ{WY,֓O>m۶;v,Yɓ:̙cZWXaZ٭gddtύ?~Vuܸqs!Yvxݷ.J;@rVlnXlFhZ,6f4fd5>cn:='Ba2}iLfH S(:J݄t\np8vW[j%] LgR}T}/0/;;! s=v:괞[+rڵ<oZ FdҦӵLVj2Y ?Xz mfsh5,[kk'?-0`ف `?r:\ Avn2L&k[jt٠јvggei~~4+8,V?ߗ $7X<J}GYaFlv@HH gŜHnd$ {F9@jz}^JVdj3ȍVhl3Zt_&?8؟ `!vlqs:tl.zEk%kP(55jծ[JՒa'TX\6;F??_+ Ѩ=FmAAASLv~~.Ngnjla Bљ@'e1E"H eفN?>̷<^.:m,밑R}\.B3k΢՚g1y;d2 ?&3g0tBYͷǮotjscVUWU(tJA0h4&juᑨTJ@=(ȟpCC|>S$b_\.ק^"@9?9.Ƭ՚ZVk`oßLԍc <'#c0O^oj-͢ZT{p`?+ L>COݓyx3|FFFĵ4M*ceeKmZ5t:lmn6x.ܡPѨLfu'|f:<ϤP(w]XnwYi4> 0ƢјzK®"-TOј4ZmR Vkj-N!F  礤BB8@dzYZ;lBoi165T*S}V56j^j;jZmѨtB8Ncs(0;f L!?bз9. jS?B2hm\IyNPHHL`䇝`vsZun|RT*S &ӟeD%62{ f9 ;~tN%NwzBahn6(fCǍ:lUvzjWM tVNgqtЫPhMǐ@~Ng!rRiP**}Y'sxW섄_nwj4SQQզOfRLCg r%KH\044O]+ LHv/)W{ƴhT2xr{.݄,55G MMz<> xPM*ŨVjss^T&~$CPXIK \n0L6\g]^TVx2?264}9?zC6W\\L>p: `wͯfד܈;l$FBolԑjFᜌHhnhzבh̞=O v_/g;U*cS^2*Jejn6 ?gNr|>L`A>\ u.jbln&ԨRLi |> X >iwXRp-Nۛ. oVZ6[;,[7͡՚JCMjkz'5g%.I$\>)"#!!AKNھNg!#Fk@o|nj'ɞB'<{,\no< ry vgKIT fي \.c`3`[ZZryɓ.["feIe,Z =p Q'&ON2%#5Uz9u}tGv֪ǟѝ' bN;;ZvO׬'k57c&q+lrYXf{gxM >ni2 --F]Kٓc2D"6 dGvFJ 2%&/IG1" vZIܽ{/TWbν2%=+K(p57zBРU(MMmK C9bqHNеL<Ͻ01Zn9بkj75 Pdj'wѨ\npX+4AnB3 Y77}W[V( ͞4NY#EDһnrʔUgTki4jRR2tذh&351n;74 w)S"]ZotT*c}N765 mCI""BbϤRoZ$5F LFmSӕ&R*zBC ,Ifod1ء7۬c0XF]cQG>V(@ Y|>#,39<#<3BV@p7UUG6geIzhȃfفޮOr͆:'kh֪4 __0]HDDHd$7""D(du9Fk BNQ{n T[ +yXoLKZ^oiyFSkNA45$$H `I$O1'N啹vS `dѣGgeIaN>wPj1"ᇇNB~|UԨ+*6 h4jx8-W"oњ}9p)zM]NS_e[c3 cDl-b@$ [{^ۭPkk5ZumNyy}|(<S,fsXdK\x8;<3CT*rveAAHd w]b1Aj?rhϞǎ] O:eJ=$xr;2#:Mk#kI$ܘ~P_׉њ 9o۝:rZ}VS_65AtHb1G$℅BHľ\SniY??HnddXg2Ѩ׫QZOr(+KJήLۗgCCf BjީT& (P";+`oњ=@O s8LHOg8$y[8l!sn|ONIb虱l;9sN,=uL1SRD2Y1YYRkSRػ=JÈ1f t??$^`2߁=]uAKf]~@,C&1Z6!N6I>Ñw$a~v=_mRO.9\ddHd$#p\kܹ*JȈ$L B}TَcA@3{ldjuA̒EiF[&d cc}h`)Fkt -R* 55*QSӐ`+s)#"BC'[`hV_ϭh6ۈkH"XFWLm995ry%l)E+ cɻjn6~}_^RHKx3g7^HTUU-UU/Nw%FGP"O7=c& 4p54hkjTUuZ]]jm*FEq#"Bȉ"Q]ljUEEKeesEEKeeKEEZm"N EGcbxR)/22D(d!\57j'K ].Dʒ+##.zT~~ݎ{rM:w]F[G/՚7SUUN;:W"JШ(^ttT g?S:U[ij+&$}zgWQLd >: z^MZ.$gW)}|(11|L:ztȑq!! }^oٳ_t)11lhsڏǬQ(JJ +G;u|0>^(pII F]>a&f`jksTWJK8][I>QdDE 11 -U^|\\^ ڀzjH&ɤÆE3ޮz#n߾63/֩զʖreEEKEEsyysm )bcѼ~l :- ^|?\Q\U"ShAP>"G"aTʋJ$n/LTQZոnㅞ޸ns8\ ryչsU'Ot`LL&ɢ 0 '+*G[`ĉ)hY͞;?)Jǘpqq1?f#A \ !!,69Xe ϝ:qܹ*3#ٕ O.裓?ʘ;wOp0 --W~UUy<#>^''$8B>}Ng!vkeeJ.͋ A^aa;XREqqMEE/7vH¸8HĹC5@Rrrj*27nw L,z,i|+нU_|qfǎ[[mz9@8:MeeKYLYZ,+S x!%$aalo۷a&@| R_Zl?FM/HN[)K/]jh۝toB0)),11<1Q/ %R/W+ }|(11|L%1"q/o/~щEVt1&a߀ד? G% м{'`&@|z#Z]RScRLj# x/\YPP_XP\PTԨYg'%%%bbXWS+ٕj__dQV]fz@n%}t"G͙3 v]ZDA6ؕ*ʔ @zl ˆ$+ρ]W[qW7%%3=PtjIIa))İp I tUT@6ɝ:Uј))",z̘,?5\zp8aO?>N `)KK˛设^vd[yBBXrrxHe} u砧iŕ(,+qd 86Gaa}~~}aaCAA]Inw%'ĩx!Fzkmԟ;W%W=[a0XCC33%L ؠ73;v}jiڴO?=6))EAb2UV6M𥥊Zά>xaZ8%EtgGRhM;AnNC.̑i\YLbN|011,.N'4r`~~}~~]~~][OL KKHKEd@ԖS#WUgVl)E+ cn-vs߾{妬,3ό0!EA>vuōfsAOK'$}`&MA>ݩA[R|LIq921Q'HL {byBS[SWg4Z~wT IDAT| Ȉ̔dfFFE|Uп57Ϟ gWֻ\n%%gWFFr] r?|i۶_Μ>XAffdFFdffdRR8B#[3ٕ *'%ED6ɍf.^ٺ#E>;||MJ2tQ4NM%'RSE @њп!tT.5^D^Wq BBXRRXrrxRRXbbXOl`h=wj274dHСQߋAt˛ϝ+O.olSSE2YL&6,W /7m˷^/EpeH?&QWT4;`h~|G=h8 JndBokhME5զ˗.]j*)ijksP>RihrrxRҕ4.""g+>R厉%I^!?\yD^o ̔dR,zذh؂y#]8K,4+۝-dV_WT`بTc#|+5WA>R*KKK55jaii xAJ]4'O8QZ[IN2BbCC3Q7R.+|>#==R&*4?jjorlćB宪j)*j(,l(*j(*jhn6!RSEq]Pv`&s|ҥFJǥ y^tR?uԩ/VCHF9263S˖T2ͭ۝ 7+K*EgeI.khnrdγg7k0tpɠ!?Zv|ԥEELo Fk-C>7 ˗޸E~~][FJ'&76/ʵlO 2p9S~PO?46D"ĉ)ى#Ga|%t/-'ĉR2/fsL,]9hWxя?lxZ5w]DL^٘WK^$W@zJ1!ޮ;a&@C>Βŋ5995yyueeJ%032"#P GZ'O9R*)>^8aBʄ YYRd$ЍJ\^Iή,,w w,)Uz}`ޫWM}. */o&:Ϗϸ! -FJX[.,,lhm%'{ޮX,~*'JvСQ;RB]55j]YZINMrFq8A.j{sh(cժSdx"ΙmEE dV*':0Zkz|bMnnmNNMnnVkѨIIᙙqqc;oş~*c$<@ĉ\niތlh8wJ.<}Q@OMd2tذ&5Q*7Wg#֮6dH+ŋ5䨃z4dH԰aYY]њlv@"=^wx%>eeJʠ$L%MK軃\.U}EʔCN]9↓'K*@~L*EeP~ 7v͚}.TϜ ,oWpCl6GAAŋ5WJ7##sS&35a c0?_M.֠ ȡCKb]j˳|sICN,s]mfsŋ5ʶ6@ubw)\ב#E/mKqKNѨޮ(zjs nDʒ?ܸrZ5uV2hM Y ;ֻ\nO&̔FyP:Uƚ93kڴXubͭ%Z݉5MjoT{Çx"[d4ZsskkMΞp a&xnfsrjϞp@OO:4jШBCխתU_|qf׮yȸs4) [C+ʔ>>>9uȸp 郞V^?_2%W´dZ[mg5geIs 5!zZ.˫۝"G&5dHTJUNС>;M6͚5|aaaO"};ԨO,+Ϝ$'Fɤ2C_9R|[~҂&UgVi^en/ά_=3GvEwgo)z|̘ѣSSŷ3hsuvKKN>]~LFcf ,z ՚m;}lvy#z*vQM--Ƶk >>ϰ x ӹd w]b1ǻ@?TV{PC֭f㎕0 YKpѣ Fk\|TySsU j_m%0|}>*otZmѨIIa^KQ" 6,Z&XX.;so|}6͜0!UTpTegVLm3;;1;;q~?z4U>g4Z/\N=K:Ճr=k F/]:@@W[~]^FD3x<#̌ s_jk۳_yeZp+i+/J*˝8vlbf,p`&?\}v˛Ox)6jӯ;vʔJ}PL&1"b"xqW^eܻ-744\/<:nLJR\ƟsѨo5{ĈXo5…Ç.ӐMr}0k5'\nnܹ V zj˫Kǎ]˫R} 5*~Ĉ \P|ECv͚}?iVMJyjN57O>)ml4;瞤;^T+wS9׮v^l4ZŽ?vl:MhMC>wPş9.ENuWߟw@Riwߝ0aBw'˧=駧^PǍKzofƌ=SxWPP&1Bzu. mN](:ʕ_ ̭[gEx^p]X}Hɓt:U&3&~AX5O܇XfABP/W2yT5ǍKN D)C PN|i@S?`f\[rJ~Æ{0!W p<Aw&rJRi9IIޮ ѣl⎪C|圜:jTĉ',oW =sfs_ɯ̓B=Z,|a}BM?:-;@>7zM&֭s]@՚->zرK&S[|pʔ R0j Os ~**vW;h>KNX.O8}|ժ5571вs9[Fʕ>'F4Z;h@{mmᢃ XN0!%;;}nFk|/yOt PFN+T*'Ұa{/~H|O?=+22"mv9}CI#G#GM~ゥLfKo0ZTYRQ|=IX~s?Xxg6Fꫧ;' Zn )sn8v͚5V|?p/ƍ_|ErΝ;g͚u999%ɘ1c6onyCnp+>|211q+W6JsG]Ըhѧ:r:ͯ9Rte=xdĔIҢo_5ph͗^駧BSO=gp\Kv/YCt*Je2}|(,V Ja2t_&3#{ŪU{U/x%]@2w]sޥY~Å[ݰ@Jx ->^?K `]wϮGkԨ{hML >*[X~Nwu eqkkInfl}c;v۷XbǎqqqG]`_~9jԨzi}BYpLJhѢOLG B]@CQ;6lq|y_~y7~N2eJzV`I$^hnVK*?nD"Eٳf #?;s|#`믽] hk!t˗V؝W;_/מݻwٲe6mZl_>|xNNc=IF3Ν{Ǐϝ;'x2eJ=Ϝ9GsAUUUϟt?8y8 =*w޽pGy$??Zh73gnٲeԩ?OIܶmرޮd2Yڵ.\>x0>::ujԩn|NgjZE5tb,-Ujfl2?*(ȏ j-Wpب{6n<8{psJ[?? [ZZٲeˠA&NxbLF֭[_ӧaÆwq?? z=;xۻ8?>vP(شiӊ+|nŊ [p/`0,Xh"Vr].d_`#B us= \qLʕu+Vc;rf׿]ȑ#[iii]N>S&e2v;갰?f\`0hp;[oYf/ҤI:<Ν;Ghcvu\YYYLL̵lkk#?LJJJJJ ]N16- sssǏ~{nn!Clj ߟu뜴իtOO~B ,X.q8\44)坯"T՚-jƌwbb'Od8sAսǏ_|9E$yv(** <Ȋ+.^m6r?x}u}`hhhYYymV=summmu\_Fy'Lh?ܵkoas=k׮k9Snw}Ugxxxuu5 6ɉkc͙3gݺun9 fMɰ0+"p\O<﫯:z x'VXw)[l6Nomm]f AFロ:ujL&C=K/w}u P('Nܻw`l4-00s3557N߱;ƍʾaÆDŋ3GR|||gϞ=|ůU&OQZ-]`uw+//P(t8Ś ޼y9sf͚5n8FaϨQFyfE #33{IOOߴiu O_xHoڵJ;w7{#by󂃃/\yu/ĉQFEFF^-wC!ɼpСCWXzYf9r咽}_u\sν/V^M0`QOknn...ξsW^^wS#@HLII閳-ǎ]~]sӦףݻ}C/1<Awv!`h]𓼼O>Yx]1.V{~ ժİG͘144ۮFsZI'OT#6zP(eeeX뛛Xcin_PR-7n]7?7m4t6sA v+_bnw8k֬x=N#bAB : ?j%~^h?B͙СQǏ@?d|_ǎM5~v9_TT:[:thԛo4d+ ~|h1^ @ E"V%⫯7DgWW?~ZVG4? NPTAAAG;z_+t_&J%dff74GP&%%xT*eXWu_>p6n9w}.]]7͚5k޽E.?S``KěoYUUu_~yz뭽{\O|'+4w=H֢E%v9Bʒ#yy~{h?áCnpZOzǏl2Rlٲ;v_+QkYe6gΜdɒO/}yy}rzkk+b2&LPVV,\d㋊BCCޢKs8x𠟟͛7:o߾/-|K{˒^|yǨ7o&&&&%%a5;. ~QkklFF˖-Î`߽{~044LHH`uޔfz cBB>/z 64pLc/S@%jjzGG7a%ǯ^ uF---ݻww|JTkYݞ ))L&ӗ,YЀX_=y:3!%%%NZTTo޼aX<Çu{ ۖ^ح;?y_ZOIMMEQuZ:};{|}ŵ \ښj*xii@ t:Q-Zɥ .FFFl`+/_؅ Oq>qb9}@ ۳g=׃nAL77+kٳ Cl8~}6lغu^~q΃_aDZ[,%%gϞiiiM:5==]LLY,QRR$m}~zg1f~7F={ٳg|o\GDRR򓏻ZB/DOu~:3w{Y]Cʕ+7n033ɧAccg455KKKt6w"%%%G}ɏA3q8;w~wFbȑ˗/s]@x]o. /kX;|8++ A9EWX~l4{VZwUV(pB]]ݰ0A:::cccΝbbbaaa{MMɦM\]]?Ȱ[{޺ukcce:TQQK"w__g{{ fs_W1~YYYMMM+Wܹs; ?999mݺΝ;222ft55Г'OZXX|rڵfHJJzݻw,Yn:`TT͛7\]]UTT &QT>/&F;pp0wp0˫8}:m wfr9_}#GAqNΜ9sqmmmcc۷ocǃM&++qXݥKVX!!!'O YhƜ9s8}}||.\ Hcc#v044`ĉAAA_8@D89Y۷($$Tѣ.O7?}:}„=%%ux)((_["DHAAp7hg(**>.--"QSddd,XpʕѣG'&&|Ng?Cn3hjj""&?VλWVV~ ѱj߳纊9qo;ˬ˗3S/]z6{MǏ' vo98hׯ?ݻ>PEO81w\쏪 766>{ ;.))ɉNNNW\q㆙YgGy!hX)M,OHX1#3gy",8zkأHH8uM]\,.^ܠ$wÇ- ŋ͞=;22.bggظk׮իWw 6^~;w^y/z]ff5~~s/6[̋exgtCL`k;&1qrrCV1Е+Y\.hzΝWS!.w^8CQ4,NXXr@Mg >ֶ~E}yyy-Y$88ۋHII988\x޾2fԘ\xAkt޷[...3glmmurræY~rP G BB2-+Wqc3<DM?y7QQ)r),쎗%$$9Eyyyy F @>\Z\\hB:666>81cx? + <:w@QB{СCQ!%%/ɔll:'-͑ቋ8ON4Iyo?UPPPSSGaNgrr7RxB~o9@ĩ_n܈/;uZZJX{7S}|fO T,V˗eiitګW|>J$*P۶͡Rcj\*l2U"Œ,,TWww--U [44Xxct] HKs lii@.!QW'!#HJ򥥹22\iiСܡC\qnV;'M @Q5n`2ۗ-;Q]|Q4` ii..YzYߡ)""9..cHխ[3DŽ@׵`Ǐ=}A## KK}KK 00s(ĤޠRGhh {q蔐$KKg"Q4Zf&&?q9J%k0˯j,//+/+///,-.~QT!T( OGWxP>;z^hh_m; TT4;vg&&vuskM\.?+JA 5,-'Oַvp%1lNB.eœfGwrU鴌 %--mr$*leErwpxMXѮF-/hQAD EDR!T  4P6K.!P>CQtsEII::*x|W)S(sADпק}l'Tll -,tdN$%)+FFh LfՄ..{,:ox:~#觠>' 96;x,>}t.w/3kiy X^A&/+kN񘂻 ;WfݻUKK ,^yO\~ٿDݸSPP0tQgEިcnr1=e=K .eœfwh(ϯ#Qd++ʔ)lpuN,,"]v kSkl)>U…G,eHK+ܼСR/{|umKwq$l6wƌCO59s奯^^ڱ#!+tŊ۶4-A97nW.?o޸48Q&X^RROld> d_MHxbgBn˗eXkݫW|>J"XYQɓ'hjֆ;wjiFhG ձf;|WVCC]>16v9.Hrxx?.|z̙&MVl?\3&^g޲,@Qʕbbx'!iu+/11'+TAa1@snĤO8p^{s|}54F;ΧX/h%99DR1 IDAT7'SSjk+pxMͮkhQADQ(zzjz}r=hUV6zxϯfW_ʕ1_Wݻ;l6m:Ip <ΩSqf33Y14Ι3&8࠯w"+,V͛9ϟ(( ={SPT @yyuu`~uqeeglnny@|ww+AFqvjm.`>^fsD*Uk34T;c55Xlu!"))9쿻٩cvʢ6@@}=z ff#2ݺO$*8|(o9%::5((1!sr_DcZYX^_\(CQTi{|A LKJ||fo0 >}(>>xUZaݺ NgYgoG|t#׮y;\_Ǝwh[\zWG711ܹ'YYtuuE{ KR᱃,jbwb2&$pqسgСlh*#IOO55}bjJMMIs+h ٮFDQQnvDCCu2y4ޑĎ Wd>xMS(_}yE--_9r귟y󅔔}MYrtt>]KL{lסC~}_ϙٳ-L1_WN{;'(fLLeeH`s|}54 >-*bdf32J?~WS$##ef6J%ST7k F3`M,,-)y.E; HH*D=^dg{ xgx<~DDrxxfV||gmm]®~ZB‹**r¹#QXXkg{UoT{y],. \lwlا*goojxUxx1,0;UV6zzww32J23驩o++%T]*la[8^uuSnv4Zmyy}EE"(5avxLiiIS9rvv.;ˀU_ڴ|FFɾ}]\&}׹B]]'ܹ}갶>0mڨÇvS[g>zpzmpJz0o!!K߲`g],6IUUeŊɶc$$ao(xJ%=ꢡ1`KXOyHH~D@hȠc[hbG07'Sdkk {hUfE%$FPNGGBQW.[ ɓz`p LϞoxnPӧW}clGBbg߸q˗7YZ DA{;gcG:,>Q?_r0w:.::5>>se˨˗[ɰd! uu-[.Ӽlg.eœfwc0Z22J-+zzjT*ʊ2e,;lB&V` "))9P]GGE[[y0/@}N+;tt޽mmDŽ;]tYrwmV'(˗^Qѐ/ X))o]\/_<` gmr eyyO]=bҚ5˔$%)+FFhGxv /\\,Y];/>^,Z^QIʊbnN<`mnع6!&A)) E EkQcNA}NnOIynvzxLGh'#""WUV6Nz_gm4t֭-/UQfS?.;v?+nbnhvNP͘4{ ;s|}54FGeYZ-#$'H*d*UwTCmme΢VK1ꋋ߷v 0tHH$## sS\~ڴÇU5k;:k\}ƌcc?X-x.<<))[utTpvv'O7oY}.3f%%ٳgq8ޥKOL)/5k aܮPUxx1,0;*+==css滻[ gZ[;˰1ϟ\"QJZ ط?\5hAefG44TUl@}N`(-{V~~HII9B/1^^gӦ ipx\UHʐ1lNG?]b9͜98rU4MUUԔD(cj ën͎F-/hQADّH*CH saùww?p1eP H]J,zIw]WxwcY8r*މ)EcboPG]D]\~ttJHH~D3w"`4gdб-hZ ѣGT5EQQ+a:;ǏlAe(;8\oĤ+;{P۷=+eEܾ N<οϞ}/v:lll {HM66&ED8jo\wZZO|%:W$&ؑ<<];UJ 6M{;'(fLLFPs|}54F;Nbu|YF()px$9J՝:P[[ënnvX]yyrN$*` vXюBQS;5߃\ؑVw~cӦii΂N'ũ[E?]{6.n)xg Tі.=q떷Y8hii[D}=+!+*b]yr9ہ-/# Щ367< `tXkkGvv66K$*PXk:6[Sӌ5u fnh os=vZ5e;WMMN|8sf5*~Ycrbl!` 528z |44:8D_<|C(N_fᝥ)wsDR9~ iyysF:UN.?ka"Qxg Tkמmjj| C?vϘ1#?tDRR\##xg7"#kl~5kTls/]zu66; !ϯ5?xt0׳lmCΞu=؃o~/piӌ|8eeHWmO1W^XٳPUW)Z^QIʊbnN<@SNch4^d#"%%5avXxhҨZZJxgO`ի~޸:~)*EZ[;nm0xP{',YC޽ Woqo8h0#w휠11iFFѕ6j&qbu|YF()px$9J՝:P[[WgюFee1>~d#0tH.4a8|+YO;HuQqcc<~<)*MEaa]=VwBuk|AA͛[ aawwYT[ۼaù}L;@*<..JJǏs-^jJ_\?,Ή)}q}\ۗxIIkמ٫*wx<9ᲲC^GG<==ujEјT*Q op蔐$KKg"QDSmmLzZ-3QS8QܜL;w&dvXk30 tY s=al3׮wQw䠠%} VSdeucF_\/mmiB&LYFQ49qP3& "yѢxg܊y"BCxgǏHO=8, ƈᮮet,11(?e,V{X̙~TӰ6UU9SSJW]݄ ki>EHTd7;CC!C$N @V^^oad/Y4ng^^ej6)cT/.nFݺ5>#i; @v Abǎ5* IDATkײҶ@g-X}=3;Ycw$%)+FFh5!ᅋŞ= Gxׯ22虙tZSG9!$kk9Ԕ$))wF=6[SLhv (JJkjju$ Nki)~s܍С#G>(YٳcZok59y2@ p<33Rb"lMSTԃyy)dOzpTp'zիc:ujر#3صsnĤO8p^VVs|}54`rl?EE PɻzH*LRВ%ZZJK?tfWVVmM]A΢nh5(hS>vkײ=;ڿ)/[Լng:*_ܶ2r))0 Ho̘˸q7?;/ܿKs.ZZGE-BΙ?Ȝ9&v]Uxx1,0+ ݭ*\]O9̌cBUee%ԷҒZT.JГfG1JJ޳XHIIڹ]L#'} 9wv'"iɒ }wguzzj}w0-{޸v텘۷0 (:f_٫VY *|6xriwl?| ի'"hLLz` *|03r)!!ID ?OhTJMќAǶj%$FanNREErlWThkc#(ӵVG40x@}͘2s?xEg>:q~ +\.}) {\W Ma0͛y0 '$سg؍P=|XAYY.-m;۲bz:{ ز<=cY03G{{uJǓ7 [w@l˺J11JLb$w@s F3l++/,"]v BQ'TԠ$}!G{>l^l|onj>o]qG_.]z.옋#o޻WVDvvGTxg|]cc5g+Ϝ98KCCԩ?( bw++FF(A}ׯ5k]?b zSֽzU$ܜXs()m@QEe۶)[Ι7o ϊ= O#-- KHTP׷3g24T?yrE_K%$yhpxF\\DR9ř$@x<~EEN+.FO$*ꪒuu_͛ON#~?e ;=}y"ɻv-;x<Uܺ孩9Lw}p55u۠ŋҕ+O76~єm0Ǐ98D>+S5MKKر;"#,A]ٸqz@< R?mlkjSUNNNzTéS ~uLx<wܿ_m"X%@8eB_ϊ(y de3s7;ۚ. \.oxo4qӂ~ sgҤ}..<=ggW/]z~nƶ?gIP/2==Vp>uMEEĉjxVV3`n0axgP(;9cǵ{ ϯfn޸ U>JoX _5l6eUUMefq8|AUTd__ul17(Ǐ)S¾U!@ AA?M %Py}g7ͣR\Nz}}gjk>YS)ߧ"w >v'܄SC,VW_9}t.՗_űcqETHHHp8S`+JJWU5B}9eq- `ަMӿׯ_ - DUnjJ6 [j~XB6z_'''g08ա4s))o0履LsǏ'N\AGGypyuaÇjj C.  Űʲ~ЦP)u؜|P,V; rrw0VqKLC̙66B##"QA7ۙhKIIUB}nxػπ(> siҫTE((Jb5FXb n%F,+`G)ҹ~ؼnXwgg]vhLLLtMLti'& 99"l6X,KK>kѾuv֮͛+]=0CQ+Sgfrq\n:-.ycFF<qh[s&oVdtsff_݁v hb:vl1|{۶VVmZxCQQ!DGG?EYlʞ=ce7lUR›8[f=eh}. Z49 bbލW67¢dӑv P(*4%L}NַD3gIL:|8@usDo<C__v S-[gNt22>68؏ƅJJ%\xǎl׮Ld7\ItnKHH`Xb_͛7cǎ˞EaXÆ lIiW,+!!Aza֧O%Sj͛2> J7nܾf4vWScӎ#]̚U7Mf䉪'ʷ?b+N` !_}UQ%N#h]5~r4Hd+}}~%''+I#h`:mĘYKvZ/{R"OfMw>W|݄5k.,~ J eo9g8ؤ$ccc)/ɓ';&j,(@}36n&hPBhԃ))!!LNe4ꦄ;v\p3!>}-[֮];fgϞ{֭Zݻw/.@e^37o ~~~JYq۰NAy\KoczUU%:iMһwۀYĶw-PD9Bڵk{ԕ+WS~P(ΖBb^L:=a'BCCL@;)]]-BHAA î^}k2]NJ*Noxbccc: ,,,͛W[޽+sy{>7111z;$5PǕݻݻ_$!hZ_ dI_}j̵&:VxBr\ĉm:J6 G+){{X/==-ɶ|9++\Bȟٲeˢ"P⢫yZ  رEWǏuttʏҥ !|Νkfffjj:w\GaXsqq111Yv,Yukjj:88ٲe&&&cƌaEUW\qrr244\fMyVZΘ1L:CMܲP&!$?woiӷݺ9I STRیƍb'bbUgNiIdrY۷f͚8p@MM|aÆ?~|zɡCJV;սӼzΜ9ua͛_^lH+@f3j.T˻J؋@ ذaC˖-uuuuY?;wTcRnǤl<{jT$رM6zzz={ +c`B .X[[B㙿 U_竫7۷"dffD}eڰaC۶m?p̙#Cׯ_~~Sw}''˗X'άYnMɓlmgNr*/Ǜ7_^JwpjչqZw:E6#[|؉Xգ(UҊj]VXqX`!$((FBȫW͟|ƍɓ'CCC+?lذ'NDVu'^yhFF@ pttd~trr*ߓVPW3bE޸qBeFuw G* u%--VuS}Iׯݪ;u5tZc6m_+#~Y[.GUX){kK*sP/<SSݕ+R }nogg,҂{={lfճgwÇϝ;۶mc6^t׷)޿ִ%%%Bĉ999Ǐ߿NNNu}߿ݻvY<ݻwvWkJLIIa^?}tb[[f!$..ʫn#̄>9~i.NQIm3&bU;{xif&36lУGe˖dggW˫Ν;m8^ IDAT6CXl<̌f'%%1?&&&ZYY1+]J1f 9P#G֋]͗x $1)/JjhY]-Z8_|YZ=bO~}XE}*[w;wki˾[^GGI9P8nܸӧW^=Ξ}t$/t}F;E%ȪU=JR5L$˧T<\$o~ٳgM>l6{Ȑ!ZP؍v'.vZ靪1bƌ111/5jSAqFb/|HuoV"L[vЁD3gXXXpܕ+W7kӳjݼysmllm6rHCCþ}R'j֬=??رFFF&M***w}^;訮޺uP.[/Q~BOyԠ GGG:jTΙ3R__ȑui9|Ϟ=-Z066>}zII؍5| <2{'S(&P8lض=5s STQm3&bbfb:ͬ:84Mt444^~]%**JEEɓ 37nB~wfb\UwEK ;NE"QNNѣ,,,f͚XN~e3#ry`eSSSQf ojԱ>a'''OOOBlU߅Ds 9&YuYEK _~Q__744Ĥ=."WQ5{r;MeVݍùsO'OyAw NNM/l|xcb$$$8;;㯆= ;Ǐ1b>,P$ h$KY;v[@=;5{ѳgwl233_x7)*I͈ڶmH7nhӦM՛!@IH*dfccӡCSN=y-n$?cno Ztq1_R#5=ZRVNNQPcK8آ?~\\\|%KL0v(1yҥ'O>}\) M(fe#7l8p`vig%[<_b ))܉F1(G#SR>Ν \R{(С`u(8pAϞ.3[^9cggL; (甗@ <8 БbRL͖ݜ#F1bD㛒7jj<އ:f!9 ESY$▕6p*TU= 3q4gX7nHqBDaX/^xDZ%|5I/I= M~w㺶:p^+/;{qQQٷr$CE&݌';iռƍC7Ç2t}}m\\ ֈӎM޽zrqtL##mJeDqssri Ȩ`LBHdw7H[ݨ) .M$ٷo{{iG1 w7ȘVhժszz3gЍatcȳ̂{{5˺8|_۶ڹ?<|l<H$jprh[&=zsٳS-Y򍶶:$Ǐ?02!x_8qP}6!C[00Lxr-[o2ΝgС>U:hnzݮ PS"q7'pԞBɓus4D{́7ip#vL%VF}{a-.<*4 %tL;(5Ei)o۶cz?}*vŐ!i;.<۽ƍ#ڴlL;ÃɲYvݹG m5t 2tqsb߾%Ss/!ȗos=>fLA'㘟_A"hw.nhѩnVs,@]ܻsJ}cB!WtꤧE;SXX/[6nmuA'MsJקkPy/QԮ5&@sJѨ҉i!.ƫ/lG;|Y"ի;w~TTXv1 Wt/lzn~޳VYt@o;tsO }o9rqܝ;EE>}"Gc￳vP''SI(pժAw,etQD"\\oC}N],--g$yrrLv֖ȋwrg<9dHg 68dd䧦fK`tw.?߯唖_Ҧ PS|v۷ "^}嗮 Obiir ɶfEgJ,- VtpM.JT|bZB}(C}Nݿq_O|}l|96֭~mY]]͖#26nhQ#Fp6oTJJsx& PSpɮcG[Aqs..|mŊAR:!\-nզM JiMvƴS>23 .^|ߍv]%Ӧn5zpHJPJ7QE=xu3U:wr i@}N9Ѭfnׯ?D.,Xp/#Y,pwWQa#j\gl߈czO.?U:wr h@}Nq #Gɑx Uww{A;v,*4ߚJ]]֭->ǨJWB;(󬭛NIkHpwz!-)),9=iw^mݗ|>N,Cty}}as--qЇ:y򡧧=޽.]iL Μy(0ktL}IS{pٌya>MǏbPG);osvu;o<}fQ겸KG>_q f4Nҙ3}`CSj {* HPر 4glpq_Khjkgg,$baTQل )S㪧E;ȿ""s|p#V?Sr8Qʫt=~<}%g23 h&&7X[[] ?PS@ݿ(W[B""sMeeqx(ȲSј0ǽ{{]Pz+60 PS@/?ִ+%۷ݺ9BMl-[-߲p(-EGq*  {T22i&TWWv BPSH/|񅋺-<|͖v:\GlǍ.LhkOE |kKD;ȵ>xK##}}]iΝv_~u(;GE%SZz*]d+=p;t ^i)s /PS4׮ ▄gZNA˗۶ֈV!**I( =~~QQK_Y5o<ڹ@>9EsrL.rnBBFִP ;ޮ718 JMd!׮%U:P(uumhlh`[i6}KkeKF6zzI3Sƍ#nߎ%hƌ))iPVT.A}Nx>/˙vx,@Ʀ9 ]gݪ9$lJǎ-"#Ɛ 55ann8oﵨ!i 9s^NVGlmX,7Qp)ssizB! ~\ELtYs5"H g PS(wwDw)Ū^к5dG׮شi\,8{K;LU=zf8*BysC FF&uH; >m/_<_M{_HIIYC@'>9 ^LoޚvRR[P\nnƍ&Nvv<[20UKfo>ۜ)'۝7@S$@N> ^۵ܛ7-ZN!#VP5 pPYܹ::/ލ%:& [@}NA$$dMhO}R=K;~ mqKBHFF>26֥D 6l^-[R;<:FFڵ64.fV ›7_O%:&%hg U@2 D;Ee۪͛| u|YO ĉ'Nh|;rB_UVZZ.+cTKJT< !D(v6ʋfYΎvhJX, AaaY^^ ef曚N!]>|ڽܹ_R'Cq176m[;qDDDg㛒**"--vŔJKUtt:=:h ^TTp ǏSS[FBK%Yk^06n6n udjl,22I"9B%@@>X,9 x"`srX /10ТB^xÅ 7R7>* b?r9EUH12jF;He>)r}ns:| 8DF&a^ JEE0@}N|X%p+r}Wn p)JL̢@v%ANN5'+Ç{89@#h`=ٳ,?6))X y-=jkk{ر7(ƿݻGIm6S9bPH;!)2<|cǢ޿ϛ17 8y} all܀Ȯ\ҧOcBavv/_ܻwӧO֠Fj>ZZZ&&&SSSkLrPډ*+x<*v Fp:PSc?x %.ϝ;geeK?[lYTT$ ]\\tuu===_,Xêaaa;vֶ(/>}QGGGKK.]B͙x<ܹsLMMΝ!,k߾}...&&&k׮=x𠽽%KΟ?߾}{MMMV#2 IDATѣ޽{nݺuŻX,Ç]\\7o~zBȌ3Əiaa'Ojh[̙SZZZ[(?|>ٲe&&&cƌ˫"+6'ThhhVLMMg̘QVVV݉ʕ+NNNk֬)OU8<s'9>_h#GMڋvFRwuLA_|M޽g͚1k֬CٳgժU?s\\ܒ%KƌSs#C 7nE9|+y}Bȇ^v^t)իQQQk׮ ްaCPPPvvvQQѰaæNxqUYrȑ!CTZٳׯ?~NNСCCCC|>!$44ͭF*iӦ}6**ŋ/_^n]o<ɯzԩ .\~=..n5rBmv/2NlE/^|޽{.\XjSm, 9)- Bc\.֫~~]mlXCd,#o׮]ӧϔ)S<<<![lY~A,,,[s݈ٳ-[XXXB>}Dp_]Ái׮ݺu.]l;w.S\`رc !\.W(jjj;677gb_QQQiiiC ! <8666&&өSBrrru릦v-Bȑ#GFVs# w~]v+WؘbuԉR:KKˊ >}ǏW^5jT]adddGGGG''oʥ:;;3]\\ Tù.'!֭[3;1RjSmPTUY?8ژ1,, hgww{<|"҂{={lfճgwÇϝ;۶mc6^t׷E"H$e/Pxĉ?''b_رc7o.~رcKTmtذagΜ9~u]a줤$D++ZB9KK˔ӧOkOjNF||<"..ĊUn#B}BBHF:fIH(7nիWϟ?O7nܹsCCC?|pҥ HYYUWW/))Yl! 44tb/,,d^ <8000555::50ӧϩS\vžn߾9jԨfw?}6wW\9z:6¼55#F̘1#999&&fokѣ-Z3mڴԚ1s̄,\ϏTsbì;ZMU@i,B@ 9:)-mvmX/33}Y$^m۶eee͟?ps̙6mڬYW\~100شiӨQZnmgg7r^zT‚1((HWWcǎ={Сúuj 2|++͛7;vfWѣz255-?>stt:e9f|is57R-[ZZӧO>r}/lmmk=Us2Fջw}2Ğ؉'feeEզU !>Tihoٌvɓ#j[z{{NQ;9MMMw!6%Ff? œ'o>L2 Aѣ@H;ysBHNN -"8-@;Tp8/^a`bPP`$55ʕ~I;jenhEK`uu5PP`dǎVV_}ՎviaX;#\rsQPXȯܢ',ZԟVJ6sv ),5kF;4^zz -Tjj#Fx"]CP,{{kmm}ĉÇK#XSfڼ$G"蘚r?/-M$D努Rdc<--v DG>][[vjFKK=22͛7o޼YүlnwTUǣ:;k޼@(ݽP_ 1zQ#ٰ5~K;H"nť|.HcG['A۶};{=MVTssS{ED,ޱßbMjӦKx<1*-eeRWy"#))32>""׭k]86pUU+^Bu8ztݻ r}۷prv6#}91R۷= 2ҹJTT2 M^VV?իM@wrm3ee| fc/Zѣ~#Flk Tظ٫W鴃T>PH$:z4o=ig6mPk$>_oع/s ELM=pg͸reNv˗vl޼Ruk sݼ:%ȑ]h)!22vmOٹ_OOMYXL߾͕H긺Z_?ɓs~u/X7bX,z @s 9űU+sAdqx2=?v]n];J" CO sifzzZ&woѮ]ߋD"==zݷvaa z\\,^J>~~ =JIJNΚ9%զ;(hsO܉T5cUmׯi͚ ; :'P[b.nPHǙ3Կ fdK\6@Y„˗l˟ǧŧy%( TYfV4>L$98u_wP1**vg1F]]fŊ#k9aB~o[ΟdCEա-nkPH+!!3&hqx8O;HS֮fkk$'ObKhVjj.\utɓ}͞=JKyT(ΝpBB}_N=43Łv:8.F;H~]?^/3gh]{Az]ԅCHȄ;w{ja+WU5P;ۧf/A}"̙ǃf+ߋ-,, "#hiBьMLtWc*T[ᣱ7YjKFrpgŧ߿ϣ @1q8jj;wh S:@UϞy=`@GAhrwLiؼÇ)۷Rv_y{Z\xqK{z͞},%#\F[[Sn>hPGX3YBAÇɿl@ |Wҏ/B[[}ܸ7nPzhu+HD;Hsty~X, 4q8qqhkܙ3r*N[4;k͚ 99E2.Æ߼`>|TڹD23 ^2BA}B^xշoA(kBOO}9gK_q5wΜ44T7l(NHEҥ]د߯l  kȨի/hIB}B+\liLEn\_矑k 53ӓq͚i;xӧoduX,aa?=;@S| ft9 IBȕ+1J%!22v 9S4k֑a:F%a=<.=+/ 3 ~o~^:vOIOϣ$9)6}mi CFF~jj6 hl6{ŊX+=yz#Z>$d_243dHpTn7oV::W 8P /44TvuD.jhb˪N|_[צjԨ.V/:t9th3l[G.s'uuUo/bKŁzE45h nnϩ̂Kό] |-2 ЩSΞ eĈ11hh2ws'ÇOd>ʮN\Ϟ.UpI]] B!ݳ˗鴳ԏӎS呂Lڡ/tmLܹd>b.syx8$%e}XH;8wŋ7lA;?<]]-;K;HCtYOL^v(ڷoӧ'.Pewn! r^E%.99EKѣ,RQaZ5g4i{_~vѢ99Esȯ!C:GG~v@ݹL;|l9ƢElERYNvCv^lq1vbU su+p!k۶iGVV'N<$9PjeiUG1cCCl8BOOv1/_XX|vFQScy޻h^zk'N<DsַrD @>JD>_D;p}WXXF;MEN YnOhb;k֗۶E;KciiO֭=]~h~NJJdww{)䑩2/qa׮hgʊc^}A;Ĵkg}ԴG'}}͒%gKi G{޻I;4 sx ڳ/ /pihϞ[@>+&]I p8xA(8qaDD?aƗ23wA;L64qp0DNyx8"k>ԕ-0##b*I10^bmm }ʔ?22>@ȑMM5<IC}׳gi;ڲX,A䔃^dd" ~%5W? :Aφ]W+&!!BB&<}[7m0o ^Կ˾}lI[(wYN!:wTG%$d:tozzZԏ;(hsOž͘qx%%ܸIOOEp>}6޻.A畗W|CAP%UZKJlƒv8DE% "AdgPgg=hi/L~'"H *isIپ7n,5:Bڡd`P[BY!P%U:/tuDq8>g"#w_boxػ& ЫtD Xlb/ XQ{{CĆr6l**EP@z#I&WnٝyvLb_\VVYYi4Zs]AM'\ܷ 0Zw?r9  '޼"--ަ B}{-yy2%Y]޽Igi3799U11)r  Af/9E{N m(y[-j3@Pej4AAlD: |f`N:`-TRRf۶S]zz9ב#%%Ii$[W.TV.&FD$1 ¼%%6li(ZtPjjvPP 0AKT^^K>sujC芊ڻU+YT>/ĉ@>-QJJFS&D4XYm҃ϜGQQtۻgFJ04Tvrز冓Z,uu3lv{,P_AKK8 OH]H:_>f]]{34v߾bb :NQTU ҹ`0nn㙗Wbk҉NByuAP(==OCCt aeՖFݟ9Bs<-.^ d2h4E-A=&Oh߳g+&de%Vz/RIgzA}Z-Qzzs b7%JJʏ wu-//U:::4Ѥ*"bMiiGHg;ozRSS-G=wbQƀF[7/>%&F:yֆS++3gKK7EΞ*..6ͺ=?ѣGǏwY**Ǐ8r$b{c[h&:v?n{rr@mP"eeY)DI**=lUUCgUݻ;99;4Q}fhY,9sNnݵk @Vzz+ٜRiADN4뱩ٳf!03k?NrxժKU%%}#j8UUl%%ҏj>98mJ:#++_λvM8{6rذ))Yɽ VD:9hqrs)RP"DXY?}<={ٳg%srfox)8M%&Fߴ)<}``,[AWBQٹ;***6mjQ7o޴>fggg!ݿ} --|yNNH]MnY.sTTTRdb\YY^I:Hㅅ5o䞼mʕ+999E={#,,;c-sTXZZJKKkjjV񲲲ddd޽;EQ***Լ***(hG555UUUݴiөSڶmj*QW^577?uO}'͛JJJ7n`ccc555ww76柧K Q߾M@l`ee9osPϡ>`ffed$"#Hig#{4UmÇ0`ׯ_=<-##suǯZjɵ7RPPعs焄m۶dffRuaÆ'O(Ν;cbbܹsիWs߾};**jӦM>>>!!![n]~}vvvQQ[JJʕ+O^TTTc_<דqϏ9|CBB^zƍdW/POee!Cv CRR~~{Y. sTUq(; ~GLni&2RT)};n8+~4{;wϝ;ʊ(??-[5JSSs6l /_ijjPGQԵk׆ Rˁǎ۳g͛CCC۽ue˖M6r6]XX())9mڴ:j\w6d999Bw;l۶Аbmذӵl 滹:~\D.zӦYYs9##ts,~TT2#)<؜+**Κ5͛7snჅEu+..ХKǏs7VTT())r`JJ&Fhvvv(d(%%'OnݺO>t:>}5_iiiQEw!ϟk(0bbtOOcǦߺ7b_JJ4eeOWUIgA}~hԬu@DXii4ƹsQÇ[JIO>ٳg-/_͛7PRR2vX//gϞs7:88~JBBp8999(f}}ƌÆ {}j\w搐-nwuk 8pի/dh4))C={q׮[> (~^L&t .]0hB姸2%͞>} n߾}UOlٲ)+++///))Yf EQ#FqBѣG|166a޽uh.\///g2ҵ(:|0wZ,\0111::z...l֭.]Z0v՜9'W]@TjZ5l<'xdTTDs d2(D}$%S/IIwD:HFv܆gffz{{+))۷o999K,?ڵklR{#۷owvv611ӛ0a4gmmYZZ߿SN7o3'w`0j'Q5sqvv0`|||jHغuvd̘X D˴i6vts;Y@: 4$ 9Fp83wߺ$++A:̞}3K5nnI+W^̙s"-m' j߹tX޼8F;) q˭QWܹsƍENL6ŝe׾x(?nS315HiEvӦِ zogh0~窪0Y}IIc\b{.#7tq#ѱ ,޽݄ C:@}K?%""~{@HHbhC}$%ET_߲Y֭-EQ11)4ٳQ}+5={v}6 Cz{޸ҥ KKݥKmi ,x̲2?6hC}$)*((%Dd>,j%cht5/""~X+1 0﨩߿>Fss=thϜs[[a# r Pkn}.?bbadeVs׮JI1 hO:4C]۷CwA:@tsyyܹؤ@cJ痐NM\IQUX\})(H^H:ejII9 rK;ixXuVÆ};tȞ<932ƍHgPSømQ\J0tUZZySX**^D:H23 D:4gs 26ȱcԭcG-[F &[>$5NSV /֗Bz:sPJJQQ"0b}صkʕ֮ Z Ξwٲ/RIgQS9&F:˪ fst,cݵk/KK7;w?'árr$[v%%b e4>}"9F-^ <=>\q+~~;wcܸ}AA%%s:/ggK30P۹sSH: ԋ2F!th<FOOB>SU1t=ֵ^T=J2Ĝtp8.{Pа0o;`s|4tzb7)Pk==e1L}o\bgf?XNNtڻ7;{޽33 ޽k/.?gN߈&&Kiҥ޽K'1TTd/^,7%%tڬ];O)S cHC}aeepoQQQE:𞹹pz0AEF~۶cmCCwFnJcneب  Îh((HVdƎkf R۶* I ŋ5852 kWTTafdXZ g}.22OcA /xsGiFe't:gOATUl=ZqLuuŋv׿~#dI돲3))])2PII98[%߾\h{ @d}!Bh {ghަ2 uBL^o:4 ֭r!]N  'OVN= :Em EEyt:m8bq~KYYg~3dUt&F{3 H5wl6td2 ձ]see%#}ۿ)U8cQwG3x966FϞ}${ik+y{^m۸/Ruttr~~p.>߽ر~~RLڢ5Z{sQVVkWY@:W &M,V!0gN u ,/11'b @ \ce@=ի˗2 xHYYm[Haq{ ? 1OKKMρ;S3SkWxx_W 7_Q֬accz7a T[b,Wc#ջqX;6C:4s!//ա6&l^ 8¶J .2RXqM:J92-!!cKԆN=p11ɤEQTZaa zI08!OIC_[U%,āX,OPQQl%9spa[V}{i>ƤMBBk׶ͬ>ŭED ~Ŋ [獁vvx 'Ԇd<8paYYh4Z>Ƙx@>H,V;yy[ސ"2,P6ʚ0'IFF**Pӧ]6xg窩ɑNT_{EDs8s%uu͛62Ҙ<Є ߿ (j 3w˗_K#6L&c)}L|C$&&YXڡ>HL&o_cO__D3$% ݺEF&NA=~أsəC|n  i5QffwBQ⓶mUvBҡ(/Aݺ黺+,,#6L&)v<ЃX>}9 CDsgg㤂Z_CtvOByB++}a̬uV2IΝ/ܶm\DD#dt޽.EEe^^cAs4lʔ4qDLϞW<'0=ùy5 "co bb0e3b/%;U`ttrEEՖ`ӧ߫+J4NӠeJk ٳ9ʕEP }OrY.Z BFs'o OAAo_`Z_jFFW xDS^^t'k@JUfod))q"1xJADFFg˔e ~"Ra7;PO }׮ v:HX fs6o dp{+r\t1:֭rs'N<С+V Di_I&xzz*s9<}߾`ll1銊*RS7((HcAт\ h`Я]%Dd*** yI:𞕕~ddKJ_LуsəÆNLzTڴQn֍%fsAOOeuӖ5DF[zIJe. K:@K4p`G:wDsM5q"ӏoߦ"2&Mm: cbJnFYKKQ޼i/4OMMN]󛵵ыyy-5.]n<ן;:INpS{m`颢2w 8nn68lB: @#''9tư皪W/C==(ADF^OAs#..faE>EeAzlNd k1p8THHX1ʕw}b__:@dL{˖ ~)@ O^}&hYŔV"h4s IgcI{"BW`^E;vk7R%%#"H!Rm[-}}/(8"=BA\\la=اϦwz΃yz, BNuNRqZ _2Ds<,;|rVd&L`{o73ݺiŋT11zǎkvܶmܔ)A66rIzܹee?i ;&?t' ?|6rn#3~ ~F: 9ޘ1ݻVS~4+rr&&Ds&&RR|e?ۻwO?׾NRO:QT>th֭cOx7##OɭY3dt+&&׮-iC슋K#E2ر@P ssK. "C[[iԨ{f1Y!穖mWػѱ+bݺE}W&t ]\XX:`1޽==ϖU ;^QWWpM__e=x @0m`~=@S>3޽66 "c>d޸K:𒕕7_IUի:|e۶<|%_;*66FWک]x`f  C}glmۛ݋?@m ]nsҽ{Jg)r >;tΝ77mr53zB66Fqqi^};fؤs 'Y3iGKڝNes'1_;9qq={\M^4j0o^W>A}_ AD7oܹt559==ANqGiiqCCu>?^nK>u!RS_] ],!4h'_Wآi68FF~zzWާNͼ~1{ R``T~[ ;3ի/RRHB}tCozA,"caIIHa>(܋?p?Ng<9*vej犊҄r 5uuX& _GdzV4o_˗32 ۝T/s7^#6B[[ 33xO޽7n cc1: XY闖V bՓJv||FNW-)[YYeZm67x::§34 Ư_RU|QAVmؿħi{}|9ƏU+9vvM;2j_Eܟ:xɩ[6ʻv$j; @ZFu zRVusݿ?|Y7vm)%޾Mc2ރ~;u "c> R۶bGE%|/ť15j4_ߐ'OrkQFFK i?nd0hZɐ$B:G&M:ȏ{tӧ)AA1ݦ[գZjk5NJs?uvZt]zh|yCgyjY,}.&qKS\\fer.]FJY_x _cJvtf|AXv鹟?𯋸Vdq'O>ڴIGU[kNt3_?m۪^S"^h4qqiS GG^zEQLE(xVYpp8 /K]]~ދD:ho8&'ha0YD]LhQ@||,`ݻGA;~qovc T"11;HMM6mqqqDF\@QRRRzzE-m Y7СX,ի/v’%_9mBHϟ? ,..+7+C&''׳kX=  4-4΂֯!t 9Ai\VV9k։J68?Go5cƱ2Ya44ttZ|ˊO4m?t:m"{ަ?EEEoou#G9s&..{ Ϗ=JOOOOO5447n\-*>YfCC_MmmS{qwK~G\|{nn.EQyyy[fw7*--l6w ~AEEN&MժU+ggl/* '''<ӡyx 46XLU 9TUNtI{o(&ob/@YX,(>~̮jo'O>,//TiӦuM{{tuu︧ahhe˖߾/g;: l}{(o-X0<هiʕ***"e455.]ZfiaaqСG ͮ?=w\8ʕ+}i BL{ׯ%B}%00رYD}CB^=+&b>MaIIh4Z۶u SѶm7UǏg0ו+Wsrr( 022***b{155ѣGXXwZ Ԭ~h%###%%ս{w444Ν;<@vQSSSUUM6:um۶ VPQQ奮UQQѣG;wRw:d]FQTnnԩSUTTZndɒҟp[p8K,~=e&)..H?u;̙3Zڲe EQk֬UUULhJ#55*)>>CSsyakq`\\ǵk/q,EQ3y)SdddGFFr8]x1--ڵk[(*!!{C~~?|i}p=zԩ/9Ukznnwv_x[\\\]s_yu#źuWWyksU7ܑ8#q86=b5Nd2Y Zwé>A>>vvvk,u^:LeeƝ;w87mTwsҗ/9˗.=G:@a~K|}ML4O?{,"F1];5م@h]v l]V =Oo-]:ܚHQQq֬Yo޼^RÇ;ނx||C.]?XXXXQQT!&&&;KNN(tm?~JIIԤh4.99RFF&:::<<|ᖖaaaC (ׯUUUڵn``pEGGwPhӧO%On--OǏϦFgA޾öm<^nOx&ܑt̙{ݽ{?Y߻wCڷomiiY)((4e΋Ya0GxbVV۷wмii)n:ԩG.=#eA}0qq#Gs8#$$Nph3f+/$ҏCjw]]q㵮]7U_}iϞ= n~eoԱXIIرc={COck<>TTT>>suVxx8i:פ$mmp]zugϞ N͛_#ՙ᧧ZZZ)))/^ذaC=𖧧_MUU{K?hHiii[nݻ5kfϞ݈+__ٱcǚ5k^zaUUdmm]PP G IDAT[n9R{<~WҥKΝNv -Ӑ!LcCϑ"0#Z9~|ƻw ''VV߿%%e5sN={1< d͞>} n߾}UO]ߨeee%%%k֬( 88xĈ8>GX{R5x`d2mmm?ަM6mPd2Ǎ+W8BFFxٲes)-- kTg5iҤ+V~c畎 hs?mͭffѼmDH?pfϞmnn>c <==,X*//oժUk׮z`0gϞmeeVe]}Meeڵk'MTgмH9sNA}N(驜??ǬӏbLX}i7ڵv"ffZFF"22'ef7t޽w,,t yFJJJ={vNNΒ%Kϟahhv-[ވ۝MLL&L`kkw$i :.?Z~e;uyfJKKCQTϞ=˹CU٣խ[7{{{{{{5}nݺOuVjTgcoo?p@kkk]]zCvO~|7?#\NNNe%͂W5ޑN>7ovrqQ\y1gΉ ;vy4eذѫk^WIItXl4-00pرnDCCCx7ƹsȑ)*J?>wml|wv53ƅ;X"%%̙3ٙ'A]#,@4ؿ@aA==ϲxXVɓ{zz{w=hSZM%$JK-Jִ iAvDJ;YM F;2Zcޟ~IRSw9?>ܹ=nu뜳Bc9=7*K4-.=WJ'% kJJ 9STVV޸qc֭hhM\\}XA~K_!>;ž}+nٵnff ڱhjNm>jkYXzjl숋߾})33ȯ(Yrеk/= ii,`QWW߼y%KЎАGMUU%lXA~,_>9qP0^^[ͭD;[jjll,yyT(mgXNNȗ/s8޽ M:K0q޺:;/+*L87e ի_NC;gQӋlKd&&0?o7{?}Q9=' 5_N?ē ں׭uNjuIIIM4ICCQ^^?4&&rTYׯ׺uT\VUUb\׳&T$++'UVv"`lI9s&#!f<:;9ڥ%-;b˖==Adaa2;;w͘!f͹2 gDϡ@SsFi).*7ēozz0/:^477rqqEEEZ[[ؤQa{ee۲E#DGRw͛SS}HFCuuuQQQ[[[_,F_]u{#޼F; z99=&utt4VV8&..۷ɉXX\$EG$XXMLLH~~Hik‰ )VXXmMFr{ҥfruuݵkW``W&H#_ Bڵԝ?jd2y;w^SqMhŊ111}LLLA1 ^^&::37l`aa&~R:%% 66;< -EG$XYY80 [\~ֆ sn5kyGr%..nϞ=?~:߿oܸQPPpڴinnn===?wk&&w*((L<ԩS̟?A x<]XXXHHĀ999nnn--#LOO?qDE兄v;AeѪmtjk,,,~g_Aŋ>|}@Zz<-PVgg'e[[[ff 奎sss~)00ݦ<뾾OtqqכxPPPXXjӤIZ[yZ f@# ?7>L>%5EDW^eaas?buat!+K?{@ @:45vwㆽ3<(`bb21QJOj񑑑gϞ>}cYmǎ|||6l@߫7o<G._|)333QQիWSJL~mjj Hkk+```__Td7kxQ6a10P ^GGG#% @yi„ EEE!!!Q^w̳gϞ:ujʕ+V8v彿(.]:q~½ 0ioUhv@; ?7nOھlu.GG+,gҤ wnY|^^/A45gķo?{oچ2::@y(Q`0; 6lЊ˪IHPs&ThѢ/_fddP(--- .^[ݦqU?(Wwrvt\dof6wӦ M]"HGGaCw/GToa_h{w!fee{>>|֖A۷oqNk֬9x`MMͻw/\b=z7)44ٳB21Q{5Z,--KJJ~nn _PP̙3lll|g:;;:;;Ϙ1# ԩS@7~ _ܵn#D"(@a7p#UU7-[UW:{6ԩ$I=ۏvD ۲e\ ˶n/ʬ/z)-=ea)**ҒkrYY~߉PYY9ƞy-+ CeM޽+((>r䈃A00_A]]E;[O(@ύwlO۸Ddrpvv ÷UV6VW7Zեrs@ N<{ccP2͛0 T\s)R9T\abbbjj* e˖͛7S.X](''bm}p;sAA:}ohC/_bvo/8aPӇW?ԉ `sϞu*380._98''0J蚚:'Xed@Cll4{{ T\s W+EEAK' 0)*ʉ@ YX\/89z{d2@橯ogcc9t0*ʹVGӧhEzzloopt xH"ohcEUUbXN>>.V޸0W+,@h?DCC7^RwY+yEE?~0o|.2fv88H$2OD; ?G/DE%~--Y;G<=sr#rS,ΟaõCc A)(8𹴴JJDEF4gÆ_ k3s&%x< …'w~n ALᎉ̴vH uL>%)Oxqҥ3==.\1ChJw7 En^|떃 Ey>^_&,;w55u2|L&?~~!5ӧcccGo@iĄv5g4_^`UB۷_JPkM&&&  ӧz ӧz S}mm3Dfcc>}Է_D;X0 Ժ;Q@v\%$ ]]]8Nc ii&s? 55;\t4iGեSSm|ˣPWbeeͭ22Yq̓ kض+\\\|2Jr>~^11 3"g0;yr//o p.X‚[mE5=~Z¢ 6a)8i)"rr"&cDGL |WUmzFNvi\LF>|da!IK< >nn``τ /; CҀX漹 DM*ܟ!щ3x/-RR?>}Jb➳g3'1)mP5ԇuvpss;8u*_|}"mm޽ Fĉfɩ\K99߽A\|(5@pp(<H$rDDѣ񒒂g(*NC;"E"?|yu9 zz}`5_ߤ\G%ZSTOKK6**sc` L8##e9999!6!|0m"I199y!!&&z B\,9WV6&%՝cga99 UUrr"FFffjӧCS@CDDxw\26>O>k c"S(hM{{̙ٺ|O(-o_dIIΝwecci_5VVo}P挋CsQuyz߲|+=;:+W6Iex %5cXq3jj>۶ X?ء}ex\FFٳЎh\͢: tH'mm9jݍSTww桔Qf͚ sFUi7+""w~]iS7X."{}%%%/-*0Qrru33S^!//"/OI=xPp 11~}}EHԁhϵcG8>ȜlҤIzю/^NNKv' `#11~??s?TZzs"ׯg&ihH;g'"]ਣy߄<͛j#ox{)4E`b_ʞ~XwoDEE}z۷/]Ʀbcw,\(C5)ts㉕l_eEEHbeeQU sr/JOt{ɒ.ُHk/w?|S{ Jubǎ8J.!aTUf/\(P7.^K޳G]uFFgեM0:Gǰ;w M^^?hbz|-7jkXYԇ_o#8ZOoh`|6mZs矛=yqk\\oitb9<;W28ZZz c'<ގ"p%#nnSkMZSUXSܗ+/'ll,S`C;^😘kϼx1;(::77kb U..·-ȋܢ j23=OTVڽ[i ֤l\Y}kh@SJJGdDGLll^H* 䛾~Б#ƣ Gpp[/;fTDi}_XQ &Ưhd! quشO8K;t([\NsfވTY/9%H[[xl1,Ǔ?/KKsjIIo=> o~62Rvs[5{:WVA|iuqͭrv^JW'N| }{rr֮UQ[y˗QT,N47""Zs((ٸaKJ:;{KQWXg,c> { O\2H@`bth32ytǎlzQu55rr"FF&&sρvtge%jT` ?GoqG||Lmm(?+ sXbIIPw1H$rXSԤ8#8wY>o_$7on\ppK˖):e9)!ݸuDJAQn!ه}|LG/L ~m!",#''"))@)(L4Jaak{#"IAApS66GZt'M8p`Xݻ11o):33参DFx:TЀ1ݸu?hڼOsgW&))E?KHP*&;;ŋ멾/Q/^`lm{{L8ꗠW^>,)91L&_W>?{6ÇlennQB#AȪGndj`uu)88 ӃG_aYb&=6[[_feewi[8ıc OmAAi**>>fjjTjH$r~~URRQbbacc%QgnN[dXlzKVV-3{M(+;v A~EGyxDr)&&{{;OB^i,GirssXjkˍU G?oii9[+BB|~ssKw\1aSoDҿ䥥}WMMHX!;޽l=JOq9{݊ѾPO/>mj갰عs98ZѾPJJё#p8‘#Ɩt}NLIIyups/՝uAߑvUURn_ߤFF*'N<ҺH$rp2VP/YS]ף~B"XˋHHPq' KOt{ɒ.ُO1))EϞ|ݸ7ΜXea1Xϟ%%}}w7~\I##SӹЮ @Opቝ??s66#tK奏F C9'KˋOxM<_򸪪qYnn0 vX>>~Suu'-ETff׊ oB?kkݻWIM}mۭ=կ\9g׮**cv!RT~۲GvmܹhPIIYYgB; ?GΝ{||1.-"ɏ<{6FCCaJS`1cͭEI$rDD?$Nqkաtud pA{}G֬9/##tH}1B/~fk돸7nrr"ܜ55 [cc \zܩd?Kzy;:.A;jڵ˗g$L&'';ѳk[uhmR{{Ç 0ll.[ rvǏ[7pnZѣ}JJhm~ٳѹ[,211՝[yzqɛ7k[7},#Gi7Lvv tug&{/::13ZiEE#45TrBo/ݻϖ41wo55uzzƦ37W3n|; 22p>>.992),hHHx 0M4AVV\}yIIAIIwյT@rP Hͻxq*PٱcK%YHeŊY/fED8H`ie5j^Kˏ-[npss(-X0 svbG۷0PAr MR;|x|Wd2y4K썍{W=O~IIo8qB`qD"ϟʆ Z͔6ee؏~ER'''"//"*[RmIuϟ\9".>s`w=+vmҥ3gT$&ݾ{ˣɷoOH{%c:6CmKN.JJzW%,khld! 22w r&11~tCY@; ?G*+/>qQMMaa^ݲe9bcFw7nƌaa}(||~ܹl۶%#AHoo޽#G`0'ѾO؇2<`xb]w T\V֧v7taa9Rqrr Sw,tdn{в2;h3n%3Ӄx{?(*lmj sKbb{9Ӧ̵k)0`p7hn<{vݲe h]f޾hlhst +/pFo/!66ڵ VMMjӦEc9%{L{ttP HWҥL67 p\wU֥p읗׃c%%=p #0j"Y Ol`+/+K@㏎uwwp^zߤ:vv)S[ W:""hZ:ttNZYi 2Eu,H丸|?^ TV͏ͯo12RА;cNJzc5++LTgg܁w鵰sK}ʺu׮kx<1,UPPB'..ah?fh8!-Cx/? q]ak;ZSr,KkHHƽ{94֖C;u-xII/^B…'nB#?mvs.wt\ΈOS_6 `ʾ54t )%%HQIIHL;%CK T v[\((乺F.3g&ln~75^ʹǏ˗;DBbѣ˖)%1&99##e Eƈ|iݾvq1]v8`}چۨ*oK4X܉ //%'))0ٸ>{vȗjit-x2Ձ2D;UV6._~Mǎh[UU'O&%֖]#++vDݻ11 --?ԤThT9 d?Kzy;:.A;p㠠 7{|//orw_5sD"cbRS$k0Cy[$3RA^{{̙#",v,A~7I+)鿹#<fEZZ~̙sZRVرĒ:C 鸏H=Ÿ22CBlid;D>z4^RR9 @2.ү 0q" S'ޣfWMJOHͣ{2- HgXvxOJ"]\6mZ4vq'-}rrQffɤI,,4-m #ѣ}|L99Grн[!3c,.< x[S}\\~\ܛ_[ՌUy޶.CQQD7RtDׯVV<~L4 sH$h3|$ؼuvjjN76V54T,eՅ+fYԅn ym:7j̙;w^y5kο}{LH[,/`C+HAҕ+O 9c՜x<`kjKKpVVf11~J6NRR@NNxΜi#xOKmmde1ChKSSs2UzZk޽99{ݫ7NAhu޼cII{$ю041ƕ+,-A;*ϟ%%}}w7~\I##3KIJ[q{Fիz{ 7.rrZ2xbr|y|n״i}_*?.^̼ye^A~۷/Mi)~["* 1ķNNa.73v,TՅ{8>dLCCe=ټ\?td^͛ъp.<豱s!q==3=׬Q;HWRU[>m##ӊƾ "-=ңR7s. ǓccF9 J>L~hYj;L/o04TF2++{Nbb\ԘZQu Ĩܓ'SX\]ml4` e@]ll˗x 3#v i6?r` |'['0@~AyzŽyh4m)y}bbA.YZiJE!!nAOݷo%aR G Nkiai'*:IQ8DAAߢȳg])+;an~^VVIAV%%%u.. u%͡l\mm Lfggɉ1Fm9.^,?¥(yy^c:ZC$O6dff;w\ FOۣAttgDD߻^*(L=vLSN4}_YNNBJ^g28<ҥZZюЊNNkj s #ћpFEw7O֗]]9sJK{`)QeMM&&D;K(~lߑ'O>_ܟ]UG%cOz٩SUT$kk뢤(*pHIMQ)''".>8Y .:ֳ (w޿?D"#Ƭ&}'ݍ[<@VV8,X]پk&A"bc -WdccA;4@eoԸF~ܲolo{DJIځF9U_n`pZRR 2r;}?={V.#{䉛7k͙3ޚӧӿ~m51Quq7^X_qFFF UUD"IV[[tugY<?QQѸo 30aKJꚚ:咔9'!1jȑEEFz1F:Ic0oޱYX'L`MN;s&̜ ^[Z^rQVȑ[,޳Gw$vuRRbbܵkUT$Ў PS.+ee +YYa#( yᅦ0:1 B;׭RSӌۦN[b-- gO;wq]wU'fME;5{7\9r[ܨ `c6νp㐐sJ[|'d(2lII]gg/ \}8yy II7::zTT}|LpǓ><~*HꂃΜ8xq dه…''Os乿ߦx<1,U`CN +׭Ogض{rJJde--5%))YRRsݻu{{"OBnneJ ځF9F{E;EYZ_22Ӌ?|ػ(stiJGfWQ1X!{ѨAa k4bI,X,VTDDD"|G8~uAuÆ٠S1c,t5Gd2QCC>$d+oKK3g[>|~z|}}%ՍN16V7jaG{>ݽǖE¤9zɐ! N-21vD@86mG q]Zر~۷ȴԈV}}[a'? K54TݰaܹZsrVsSUuIF.Z48ZZh'Ox1Jq'&=4_._=.#RV'40PW:T?͖KDGg,\xvp"C^r ^[ l019y(I!!.Ev;.pC K]o_ߵ^^O\F۵k-SZ%'<066g,gëdk+d?11JJҳf-Y2fvʷmS/LٺVD̢4c1c#@s!Ξ ~zԢ G ;pr|xO75Qcb2"#DF~)(0@Zh$CeeDC/F}X|u=_Ll޼??|c21n``adW`01 luu[QQoKf\99W^J'jjrlܰaj;&3y,g~:9voI`aPݗ/%wY}ahL'/ޠv̘i46d2L1ھtˍׯ(%%5 @@.ŽBCSxX^^fկ/⚇?ܸ*e͝kϔuݺoA^^ &N4vD@ gX1^؁~sܲٳͅ }Z5f!!ZXhq-;<""-""-66Je :`1c%$D-V_7L&s173..—>tDڦas.DLdxSjކSq c*oMvس;wl>~b;ʆIH{KUU!RPH.3F[XqN۶ݽ?m~@ QQÈ' b~eH$(&FIO?ڛǵs/Jw3))ݻg,X0C-/_l0O?db_g l8KK>}R!!<=:N' %<'hi'Xs_[Е+'O.rr%p`jk%Yps3͛/11e \Jo#jM7nr%iY:HA!Pnn77#p$q>{gI]=Б#!G"yz:\9za>eu%/*c21 4d<30PjOAAq7o<٨'<}|=%p_jdb y_jllS"2y}+粳'Mb0HDԔg%KT(,,u۶MG%>yjn)xw31Q7b?=l||m? )@^k~87?jk+Λghј΃VscZ){ޯkqsko cnjjv\Z̛Q< tq3gBOXha/{::ruՂ߾5}ϜVPP)&F5jCFQ/]'#tXի-O7a;#Bh54zxl^0o\PW' K]2'*J~jS//\2eʀޏ6WV(-(°+#tuz80 ۼy*+\'1U`C;HDCCKVjk+ ,^k͚) L&1LCgI0N'W7 k׌1::8طo4B(88B@8}zqz»w\i9{ټy]" *J ȨWL8zWv @~srԡCVvɓ^ԆaXFFYLLFLL۷uu͊ZYӥL&fm5n,YY ǽZ?W44 _nȑC C(ܾ8DJJIj$$0 E1f>RLgQqt.]Z)/~c0O|27ȫ:eKB22+sT8Ḿ}+ jll53;wUzRϦM7kjz[!::zt:nKdL a@ DDUWd!ؾABXRҼSssфϨUlJ􉄄Hz4zB׳# bb_L_SZZ;a޲ei 23&M0&B28z|} ݼ'FVL&K|馨(-A-Xࣩ)"a@'?em;g.WIZu%%0s` 3%(..W׷Ȉjs`y]HIIg/^;z21Ǐ3g~}Ȑ^BnOF 8?!1.?'J߳'?BC&_Zޖ-=J蘌$IʏoI۷cލjhnPTl@`57SǍ󬨨A&lm7ȏ#-dʔcnÆ"@_9InnʕZ][kj!px&{uɅL&,3z636V' ={C s|C kUm+qCg,'/((ҥqྶiN;#b'Q= NJO~y;2Z+KEe@B¡v{̢ꌌSqeeT >$7t^8u'$ &L82}gwĉ al={.7m;vc2xH$L:wϟ Nud2JƍuiVO.^ i7p!D&%7( %0ד#:[H$l8ݽkS8'?O'$:xl3avokkr67S$G^RPPng $"BٵkՖ32+ڋCNk+~-RuG>hK"H$7{_jgw27[-"4s7*itBx!YS6^O6|puf-AU22bG ML~.++>ϟHDI|d?Ӱa|W&lD"!D@1̏ Lxq$ꊌ\bi9(,,!ZtzeJJ%7++wDQ(D##e AJd2>ShSF̽۟|ZqD"NꬿKTTTWW'U>a]ՍN[Xhh‘#6JAA^|G544;"Sv@ bӧ?<33}ϴ67nѣvG}:zk%%%EEVRQQQ^^"ʜo*+Llz߻wKIꙙwݜ8@D\YPSTSZcG$H$tq^\\he7Zyҋ۳g~`e勞 !66REY-_>{5hi+(H%$@~'=z4w[n ;O'3TWWGEE /4+//yss5__'=uuu`yyy]]LҪҖ64fgWUV6d..6..6m|TRRaֆj}}k}/x? ?w]dxBaʶAhlt캃nx-BH&{"yŊ >܃2}ݨQC6oegwҥFFTw̞m844e,SN]]]IIXDԐ! ::ZZZZZZ@O?!7FYssG;cZ h4FFF/%ii%ii))EJd2@@=ÆfTTii1;;nBff?ɔRˀ"SN `?~lmm3Ew6RRRxU 7 5f G"nnn!!''PMMͪUZZZE׌aٷoڞSGG{| \`6wυs`k׮lhh#/?1wߍ9X[c ρnRU ӼΞ}˗aGe  Ov !dg7|ժ 66C  1fU>uᠰĉ2vcco-!jkk#""̙ig\8DBAAAڬ{[M/^$;9v @V̛ÇTVӧ_@eee> (++v@h~L&{ TU}.Qu?7=juuuC6CCC233BIII]@O 7O_DDNN_/ނ~^q55%ׯOIIqqqamSUU%677nhh÷͛7RrrrD"m&''6H"""vvv#Fm4BB{Y`撒߿={yTTTdd̙3Beee CGG/[XX6'MtlO1 ðv[rhdH$|x=KKKuuu[IXRw8\)Gh7E ww묫MW@ a[7}th@=y򩴴vjKa@{<)_=!숾OKK~L?xdb߻ݵkWWK=zhܹŷnJMMG`-[jjjB7nݻUUUBӧOן?~\\\nn˗n*ۓb2?Dc#5,_zje}e4Bv풓pႳsuu5B'O655n[jϞ=ӦM駟,--555;oXJLLvRSS;uꔿX4 W9ZYYٓ'O.]p/0-ckkbmm?~~xᢢC q;!ݾr&7-C8|j|{Fhyǎӓ?~BF]ӵhq淒mmmH رƮU;kV_mcݞ\ve_]]]&߿Jf͚uVY|75k=ڽbݺNgLrOCpW Jtuw*p:Qx>a+VXreiiw0 t钒҃%%ߒcffĄs """vvv#F7644h4999E ;+FQ(vqyyy@ 暛KJJ>**jQQQGeee CGG/[XX6'MtȑN֭[85 IDAT^ b5 |[m+pٱN ;ov(ӧwjE .Y[[WUUyzz ;8\SBƬ:q}qd핂󵻗`PrrrD"FĮW+l/Ϻ͛7u2mK}cFyBl{\z ȶVe[4\pٕeqtt 0,00ݺ;~+z>x۷oaaaK.e{}_zs"u+U zߥ_1:ҥW&c2V0TUelzJsM:u55O>vHII\Cssӎ;Ο?o|]gE?>. O\UWW3feddXXXL<9444** )++HxvvZHp/^{ndddS(..޲e'NxAgg߲Kŋ߹sk]m7:Y8aPFFƠA<F8spXKI7py_ ^>}:@VTmH:--W4ő-W>mC5773̀kWUU݈uBJ}% NLLSѝ5;vnD7]/ĶgۀlKmU;vt:BGU,--cbbBCCΝGxqtt|{,--;s_ٻ^FFLX1]#"B)f4ݱcim8YSS=Pf2k֬ټy;w‚Bk֬ٱcGPPPiie*8hmmR"""D͙3 {{OJJA͘1cƌP(SLBQ( nٲ%77799y߾}lѕ400ؽ{ ZZZڞa&&&k׮Em߾]YYyO8PZZjkkŋ mm%K;BY[fee}ٲe\oCC˵ۼ!8l t54>|Ѝ EE5<k{:**J>|IݴiΝ;_|YYY/E X}ۆ"ӦM~]]JP(l7N:!t K,_|޽LK~~>BF@; 648p :qqm-ŶUoEݸqٳm&]YDrpppvv=zRuʊN{xx,_OKi4uF %ŧy3,3lz_U_Χ ;y5hÇx[wן?MMMT*a>TUURC 7nJ u0 ;u544Ο?xb999|7۵1TRRڬu뺺իW˯_ð2/w(""sNց/_.//YTmOWTTtqqqD"100gCCۍtttkmmp.~a}._y/FȬlq9ˑ#!tFW 6?kdk_ Fg0O0`]PP"őwr9aPпFر+,8\KK۠A xj|{Fh{t:㺺ƍÇU݈}8sl{\Z;jT*m_ðÇSSb}/u5ܕe} _zǛ7 nÆ uuu-bYRZN2嘆ƶ;_ UVkk۷o};lэB~dgэ||yRWܕ+WtuuL&e֬YW\a 633WQQ9z(7L&… FFF666 èTJſ1444E㣣#++{_/=WTTܼysKK ۍjp~D?z8?W8? 2?}ɒ%ϫ~)Ƈ\llkbxX'|[abchhQpCڷ^AAK+ """cǎvFڊffwJzz)C&LЀOqY[["33ĉ{쩨ѣo;vl׮]UUUlrÇO>ꊗ=}tnnn|||xxxDDkj'O^~ܼ]Ϟ=+WY!?>$$$88ٳg^^^6n$%%-[,!!)66vg`~kiiɹzu 5o7iʕ 9 d$qɒ11kZ>rx۷ct9sfɛ7Y/@[222΂?  F'66v/%wB($$d„ DEE?}tYUUU kɟM6ʮ\!TUUv3g;v짟~RPP:u^ڵkΝ>|666"tss;w.Bx ==1cxzzqs9s̝;W^^~ڵk֬pp{nȑk֬4izg0W;t:̙A%ρ^ARRtǎqqF߷N#>}P`KWWZJJJ/^!p\п͛gA1^HjA}}RChRE.X]DD$##nĈm 4!DP8왝mll*2tPE^^*@ ^ نHOPOOUF |}ւ攔7772,?4kk몪*OO.sR}|z'ρ^d@ɽ{gĸrc֬?^J$[L1rqQU(@$ml<ťjk+QW11105\ssӎ;Ο?߶Hl=RRRX/0 ŷ}j/&xm(**رg7NGر-ρ^G]]1'O\%%}.R$©SB6do J/-R)}}e" ,AΣGVRRbmommR"""D׳힛6mڹs˗/+++#"":gϟgϞ$;;;v]|5fgnݚ{wwe˖qKvvGYc%Xρ^T=;w64ɭ[oV 2%}}q@~xTJ\\DSS*''["deeO;nUPэΞ]~u]]+ H i,{\\lT@%#qzuەDY]]]]]]...~yϐ_x}555իW^ʪ:_gee!֮]vvv# x5kk֊^ s#sZ̜iw;wbWڼy>shj4ɰձ]vqtyCRTT:\JJJڳg ߿i&a՟}wa***ʫMC[:ј55+K&._~^Y+?*'8!ρB!-[6aիEܾqڵ?U]{ȑCQhaaaaa!cxu#F ҒCsJ1µsΦsVTThkkYٹt(@HIIv |JDEE+**SC?Z'J&z^U[@(dy EZJ $QQ-11=11T*aܸq(E3]\nݻq`Gh@P[trԥK]]-Z4LJ4c͚+?74={9frr8 L&e˭g>7NGM0~=Hlnjŋ{_v>k)pP(KV-\x~ɒnVSӁ@(F9]\QBeg 1?RVVT5)0#4?!,cb`H}}}}.kc2OU֭`(--y~)&۾'nX9ЧA~UR{Zrٳ7޼p!}>'!!r:G ?7pdVVx faauFF)KHȯl@mr&&ZXx,=4$$1 R__ef::u뭧O{5@@_9з;vS^89]5j޽FDZ$];8<|~bn::J| )5˗ⴴB24T56V߶ՆU^xZ MMy{{3'Qzzʼ= ?4cƛiׯyȈs׮zB9tOHde0(~⫆֭x<*Q\4tСr""bee m57Ssr*˳33Sf T T%%ECMMShhJHȧ4IIiӆۛMdo7l2o=ϟ@ ?ֿҥ0 [n?O0@W ~uԢs-xU-55Mmfg*V͘awrvϯܴiSED`(*"0z9sn,MIIMvvyvvEffYvvyvvyQQ ad2Q]}2_q,uu/^$|z D_`pHEEgφݺϜY*%9ChllVYn4YV7Y:'3H-}\gĈ~y jkNxqZFgRRS[[ZӦ 9t`aFcddfdW~RR_߂} _ijb FPHЏA~pZ}}c\Gyqq9k^SRpa9:];vKL, ufgW;wlwT}QNN݁od.Y2vpۨTw9/_$iiO:tԨ!O?45Qsr*rr*rs]7.;50N[[IWWIWWYGGQGGI[[QS27o?:b`{{y,奄茘ZMMYL!m$ρx cc+&,X0RLғ:~ڸFrr7 }۷""v~w3gB޼+O+{{;k ;~sCCS>Mͭ4Hvd#[a& :C1 *sr*+rs+rrsr H$SVvb0>z(O͞mRmՍod~].*J9rFÇ ;:sGrԓ'de%G-Z4FWW۵K"{ffyR--Xd`6vy,vݝ=JزVNq2(Խ{_{U f sUhknnbvKm7+jVs5TRI- ( 3W0G Iz>x8Ι1׼oO\3 ZmIIyiiuee@=o^vaaεfGG+ju--VcKVv{)ɸ8Ҡr' I⋋+Ovv|^=zyqzI&ONK((H½L0C>#?݆ o?`-6mZEtYSGzśRRpeF:9mݺNlxȑ&Rpy/<0G 9tnk_/(Hy啥<2+k3ZS:VSw}SO݀ag:+-曓.WW IDAT oi*+Ngkn hj\EX *69YLTIr$.N0J3Vcqq_nh ,-*+(H L&GCV[Shȏh\0+KVfe)eh 0sQo|՘,Ydœ?G_xa+\ꆥKP`\y]oE1q5YO?hx6lk~~W_]!'=YeHœý4:נ$⚚ v{7EQ,CMeF<5U:Ҏ7ߜ,..?rI.pCŽ 0롪mi1iu:EQ11dIFlL Jx4n9 'N~Չ ƒ)_x…33{)hz寿дi)=$/W`DS-/~ s>{??U+WnrzVZtqey$ǎ5WTtքQaaNQQޕW&C.pŵtNgEQL!ȐӸ1éZKJ*ȨH>?j޼좢IsNX,lh76u--FGQR)HMIdiiT)Ƭ\"s?8zi.II뮻b+  _\(/o}ǏΟ?^?ar pqn-w|3l>y}óŸjզ[n7r½",?pT{iiՖ-'ΜыDܹs&͙uRQx|jWGfqQGFBB-giiUII5N9xƍ>b jlntz(d(.5U.#s ѨC>p1JK++Y2^ 7&=սrIeey+V,FJ#gxzY{==vl-,<'|_+W^Y:sfzWVU;wV=E͞1o^…q ǫXC>+Ȑdpzl;NTf0fe,]z冟njk3:[Z:;L*c'%ID$ٖc839\F'w:vɤ_uUܹJMwJ 曓oN{MS{l~rd8 pAV3/oڵzk66>毺#EQL&=.Nښ21Q&[[\\m[4R-7>C!zFcjf L&9F,ǪTd#>>6!A s?~tY銊6:vsd͞5uŻNs>w0ZIIŃ~rj|BM/1#u86<MG_xa+\ꆁK ap:{|]] yQQޒ%SQim5 n8n""II⤤;%%UX&CƍGo?tLTT4馛D=TB8n&{H_JRR I5c2WkWFcp"LI=;c֬+P?vl[nw<.Nx]3*/*+pyy=u5RRh9hVX^r=3WX?۸CJKv8e032䅅94Zx~jjk3ZZd`bnB(!Apv R)|cǚ+l9n6;H,xd4&KeVVkm--FΪӑ [GE2O&%&d2LOLIXnvOKq߾}7\ng\ }a&t˖R{0~N|csUkn-?lj.W?6+KkNAm*5J%sfHCAgkʎ(*"P{u.8z^o'uK'&½RB8J}c90￯ᇆRiLAAJAAJAArNNMMS-QT4 omoSv&%_\)-zV'{L4^jk%%_}U^_ 9^;h5dFD`0j4^ᚚ v{7EQ,CH<'i\BB,J.߸hkr7<59YuNgVk5ZUt6ަV[jFcq0PJ@.+8BW* 0>!3_Yv@MG4Y,N.7rԤiR#"7ݴ(Xd]w] `W^wLßݟ|saCAYSiœW_]P½"ZZUG6٬3-[ XS-(4km5?ab8'DQeAb͛75DEEn-?=]ujz]`g05Cc0b1dr9q l٬> i @NwP#M7X,Fn*7Wp99qb-L]xL z`\xᅭ;vUR۷szmbq/2gNVWIGyϞӥUeetZAAJaaΒ%%[SFF2{%&RR 9Z[_|qA'\ ( %ZFsg5 )ͤ(br(e2 LG6 ? 9K>tpÍ/r8gH]ʅ '}0Nl?~ʔ>xygω.'WXUqsxbE3~[ջvU)S&pDb^wkF}W:ךo)\hM9<::|sȑ& yEEyc_>8t V- {om8MrA>0:8=mǏJ & w,u0D}_z>u뉇yji֮ݾ~W_u|mr__\\s)**!҆ajo7Mvskdrd2~BB,cI'GhZKJ*HV>?j޼좢IsN]u`>d흝.i7t:``'R1 _" g>9QIVV9ҸcGUcSc͛7aԤɓY,F cVn'^gnͯjM.WϪUs{PΝU'z{bh޼Td4v \0\$&.NR U*a|dr ",-*)ؽÉ??hҜ9Y#GKN Fc^o2FGZ!H$1 W$J$<'d|9::"@>0y~߰Ёg [ @@D#'G5yrB^^|n*-M6 #J{yڴ?}s10s;w>qqÿܹj՗}W{-SXNWc8zz۶ʦ&R)/&D|82lj2rp Fč@6kǎS%%ee YK^`Anx=VhY,N|2juLlI>?*!R@%~|`L1|srǎ.rx<>,8Q)Ȑ%2ŋ(?<[;=}姟ka?{7؞"}[NM `<ՖVWV e\{mH( p$#IC(brcH 'b¿xOwg߾Mn~N͞hQ…9HO=:MZ.a7եZlsI[4 z7r= kƦ;Nr9_.|~b4vQ%&LPfg+&(d.K_UT/xO ށgVno._^=VΝUd͚93}ѢvS-:5X G(b(sp`a\\ݻ|۶J{UiZ2N,Zju8Ǔ--Nsc\wg={jvii1W].h̵ړ'ۻ=L&=%E)ȐM!OL{0X,μ;ni߽o~/l0,/|y׬E{E?a4v]Cɓ&Mxr==^zΪHnԹZ%R D8z|~hظȎԩIEEniH^ht vdrLs޺L&e8XNl,76#q%.َH$<+qE"pY G vUs_Nr 3f 3gtjuMFR%s'LP(L9 0}@O?[7VV嗗6m: [Y,tӢEy^@V޽uU|s:5i믟",ũV[Mmmvs{n&E *PUdC 8v|cǚ+l9n6;H,x[yoM&2tRv2K(? 9={j9O3NӚ:]mԩ(!ȐgfE Wl9|ǎ=/~?пnGF?nh瞙+V,rceAYe22 %d8\s!8Ϗ>W KJxQ}80tѣM'z{jt֬S""FcWg7`OH$1"яob7+\~|`l7WgsttԩIgg̚q*: Okݙ3I$1Tizl й`rz&N|nժE;׷~ѣ%%ro'LPڭyy^|~nR-jfȓuuں:-V;n"" ?!Af E N}{f)x|{*ީzI(PeׯW^Yz5vV38 iVf"5OzR)Q/)I]d6ӎJKh`2fe,Xpzxf4 8L>;L&q BP cc"'˳7ߜ,..?rI.pC^QQ^~~2ډv1G4:xxɓ==^/jʔɓ&ON<9A$ bӒMM(T ȅDQF<#C>p g5o>nϞn'9Y8}ZZ]VpO8l*+VX]9O>-`(X,Nn谨ffR:td0IJT S* `2ɱkWuIIEYi?0eJbQѤErL0G5ԍ|y 'D'R(Nll0iӸXNl,ZKJ*ˏm.*4wR0f N8qĉ[ E%%IVɉr/k+ڑI<--Z^o FFf TT}wF;[N (tڒ%~^Zv>=WoMK=f:IJR #R) sΞ￯/..߾s%Kgi2I#[JdR&BL ѤQ(\wX,Ҫݻk8s0b`B><~ĉ'ZM&NKNrsUq*>?zf6;:;;FcEQL&=.N/R`}\nƍGL,T NޚwMXN=te/ХXZkGY ֪X= h'r9_|RFGG! ݻjǎS=#C^XSX=[#xIF LEo2.wA@,n#_ƞ~9aڱ)d0fe,]z0s0TͧN91?J(qC HicqqmnHE ⬮VԨkj4Z`Г YYLyBRJHD{9XlG6H3&PwBۇ`ۻ&]D{g^RTXSf޼~hXrcG?\3kPAIDATobVcG9_R QԧciiUqqѣl6kE. drj;B7G,EU~`^}K 7ٱ:5hM7MóTQZZ:ԧOkHnj ̴4iz,#C.̔'%/}^ook3utano7k4VI cJ~\P8;H~Р_'=70a ZmjYtVɩՖ@8+ BW* _. %TSF^WF6,"%nv&ZLLd\0=]* x( *$xc2'v:=ouW!KM{i6ח&ݻ'M}ѣM'z{F(oDQ # 95= z]m^W[mk3Y2?-M"MIISS*U}p;:jEvtXjFcQ-jMp"ILds|7}ߚ5%S;xMFDI: hiӒ7o~o7w{eE1]Ȑ_-P$oqjz^$>.QݞnO% {KrY,ճ}qqΝln,M:W^޺pᛤ07B-[|>{Ϟrܐɿ7OMNu0 Q񵵙Μ74 3gz((JN$&E DQb82dv{Zm0kVa1l` aP%B (-Čk0;|H}F6-3,'k/w_epd2TW1*i~MXgS7W`ILB2s\Pd`UciimMMR_L(,yͭaLw,Z7+6Fc?tVDS"Y ( %,Q ==^J#hhБG,C.XYQz' reT P~ìFp==> ,Y2+Vy.N {zrH}}dBcw'8|Ư@ Z]kI:dRDJ@.TB!qaynW.e4ڵZ[ggWg]\=cc9bqX̕xbqD#/ 5øe@ dk9is.WϢE{{S>ٲ=3 b2F%&MKO93},usێ3Nou׍7N[v:{HZ}f`k4VަX,\}wr\ΗqPϼ-Xnml6f 0M }[XYSeO:A0AnݽcgzjE|zb? `D B!>=5tki1Nh4A`YJ@(8B'J%Ϗ\ˋdtf0;;Ze0u:-]uw{\+q%Xnl,G$J$\ˉDqՏ.ݍ7Nh{2Fy>p7k۾(@ttԩS&NE]凙RAQT @|~y nbqWz;r[J8ujRhSJJ`Ї^mg x3==^p~q[Bf6?wxN|>k}F}Kۻbƍ FǷqUnL`0ROd ߭F2iKFr9?!4&62FwDttDR8)I[uvI\g4:vuu0#EQt:-ԝ8(d{Qw)8pv{7s&o~qO,'ceee?Fzoir9'+K.LK*s׸Ǐk`*22rƌd[[v{zE(\k6`Z: .#C>8OƳl!ΟM"^bb6%ev5ԍ rͫ^Od h^sknh4_^B?:uj-F/ wGYh֎sGEh4֎q6r#e2D#R's >7&S촓h2 m B!>-r\.ɺ`LYYJó1F/jmoo3gNssu>{2?Ngs-NO ` ˀÉȐgdR-fRb4vi46j0؃-(LH#p|;B@ɑ2/**/K1Ri)ᝍȞfflvãi. 9zm| wuw_T 8I$a[6%3?`&_2GX)SI'H?Oiv\6[wWWmm]]ݽ)aslcb<q<^ԹQ<NjbbFHh ?:b1#"NNP ͊dX@'*=z@۳̙X9pٺu:+ il`]Wi'R.\Ruw.1+C=$#I4d0fn=cr!CGn_Y,fϜ~0lT: N/YvK H=yO} fY,N;N6Rۀ(^_]]=zѾ~P?N<c ]zjm]zFi m E:lz'FrbqdY @<`b ,\jul?Ih4Eb^ x>zߝ xE]SZZR ;!\ 0~$m߾~8s@Cp|2ll9>gl63Y bYv>l6S"ᡲ rA>0rX /;, 'f#8:!1E|2"Lh>?\InxxDt~qV[%{L&G }_ZSUx;>n{mO~99q & (p=t:е_Zpn,Z]6;>?:&&2&r~Fז,6/OzxV+`ohГ/V ނv;>_磊+Xvvܯ~uLֻ@|>[o;tFHȁ[\npP(P-6 i hzp ""0X]]]]nlXήN};_!XExlp"\6fH.7͎ ;lVttfX<^TTf]tFRz1tDΝ>$cΖ-[n>XPPIQ@ XbEOhߚ5%O=>u;EE]/W]fڴ?MtzJݞVcMwޕW{w3Emذ!##pPx|IL&J|I@vڕPVVzꄄDrw[,rkEQTqqĉlvJJʧ~JQNE nO>({<G~z"/C;F{n'q 6wܙ& _y֭[333Rnw;a8_Bhٲ[Uҿ;.UZ1Ч[vmFFFLLW_}Сs{p}穩䡇r:Lxp-G[PQzX޽U_}uBzL*cJTo:n;V+:DvkrKkkkee)SV\Y__OQ_{>''ɓӦM{';+22wh4~!ZvmG~i  Ev/3xzʕ+)z饗BwC Eׇ#GNm(jѢE6/(g6U*ĉC󛬬,FCKKK'MD.(WVV͛7VWW?d2X7xl6~;[n1L炧~ɒ% cٲewHZB\Nw(*++ >W_|p}Ƴ } gdd_>x'|2@>LNNu_?/}-_FD0)r#,TUzk>̭ ￿ꡇ lnnV(4F655YYYE=&L馛;K(ٳ*kٷoN.# {-/PpyYYݻ7mڴuyh}>55u{'y(׷joo`'\ >C&MrĉZSќ@taKSb1(˖ظw55/ˊ&q8?zy=b8Xa6 GYjղe gg=yiz|ɭ[j۷?s?|zWLnK`D< pl{P(DO(J>f_|u>OYpa^z%@JZS3sL.8oSׯ_Y[[sa:iӦ~hv㌏;C |fmr ֭KLLŏTf'ς|` >9 FvU(vý0 .0DP?TpFHJUǓJ^-{ 9|` >K'PIENDB`XQilla-2.3.4/docs/simple-api/classATGMonthDayOrDerived-members.html0000644001725400016040000005045313273140074022066 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthDayOrDerived Member List

    This is the complete list of members for ATGMonthDayOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATGMonthDayOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const =0ATGMonthDayOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGMonthDayOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATGMonthDayOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATGMonthDayOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATGMonthDayOrDerivedpure virtual
    getTypeURI() const =0ATGMonthDayOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATGMonthDayOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATGMonthDayOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGMonthDayOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__dep__incl.png0000644001725400016040000000655413273140075021535 00000000000000PNG  IHDRpbKGD !IDATxkPWO ,A@(^@0ec0*c bURAڪ N[bU[)|2ҁ"~QtĖb|VN@r17`}r8adh 'W8A Uyiii2Pj W>kJKK- 17Z}%HOOן"|pQ_ 'W8A _bccU>0888Oȣ.cpp0 Pz|qHޯSNLLܺuk$?QQQڎ }ԣHҢmkkE U||rS 髿KKb(rʆ GRi^^^hhhhhh^^T*1F ޳gOPPPXXXII 񺺺]vmٲСCl6W5RGyVmۦC|@@˗wܹuRm-B'22*2:;;cbb?sǎNH$$ "o! s8u)VTT X~={vjjdر|󍻻{qqqbbb~~XCCCQQ_|QRRn+t?rrrX,Ąeee*;::SRR #DMMǏ;AgI_֯_O l6kʕ/^r޽oݻ-[cE6rXXX|m-׮]kff922 @bb"NϚtguI2+Vʪ8{ի}]A*:00! /Ǐ(k ֬Jm9T*uږ궶 ^ 𧻓@ }vgggRR!++,ggg$DrdJ~ȑ#555i 2L&'H.^ppp+Ç ֬QJm9UR{e3za .A řʇ'OP(V>/HTƠD"JT*U,3@  aX<͛5R/D*"qH(j L… |>_e믿 6oެ#8+߯P8޳gBY~}BBaiii,kdd)==0zð^޸qcJJJUUL&_f޽{O<!/TS\\LlhK/yyy544ȩz˧O*7=;lڴ)))ijjjƍ111ĨAQ^6*++lnn&hAa4mժUnkkkQQQ~~aU͑X18-G/++SDp+ܹs̙-[ZԢfNؾ}W_}566Z\YbYh `ijll`0 'ևIKcF+ _ 'X?•hmmնX[QdZTL>'9v;vCke~%eeD" zrĄ@UW0},|ARYCCP(6~_qcUHtǰ^t[YBTVvP~N#go,~wlL`@Izr_=R\9%7mCGcr_+*:r5\~oxx ̾>y2~ Ɣ̾VUq-~KW` H$2GgĦTc_/ܺu~Nwy^ _ 'W8A Np|+ _ 'W8A Np|+ _ 'W8A Np|+ _ 'W8A Np|+X@mfnllihCۢgIoRg!́r}tυϥ;B7Np|+, _VߘcB=tP(}}}k-WkkÇ/KE᫝݉'s%ZWW<:: 8wի|\.knn&1׮]knnѭzooo333WWע"@JPΜ9iooĉ"++ZѲ_hD%IrrFKNNH$lll?-紅rTL~;wvppqbhǏ_pNz{{l<ðbȈrISSӼӧOSIEwQQQ<X,ӧDv777&~ zTs|G<rڜ*AW/<<<<<|&vtooo9YPH${L&r X5112LWX,V%Zvuu)Mre2ٴ9U\|]:>>;11xёy頋trr՘SGea}}QvvM[Ͼ[wPprssq S(r.`0\lu70IbmooW@cNU.۷ܹs/_%''_t)55UwH$1   %00bssJ=p@__׏9|h۶miii> Os(4ϐg2:u78WWW;::r\XߺXXX+㙙//EŬZ 0Z@iJV&Zvvv y<ݻmlllmm|\ru_4-W ,9IZMC}]reBBr.D!=Hr}3$""@F~+ _ 'sz)1#6G/wپ};Gwh~+ _ 'P+~omyIENDB`XQilla-2.3.4/docs/simple-api/classVariableTypeStore-members.html0000644001725400016040000001563013273140074021605 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableTypeStore Member List

    This is the complete list of members for VariableTypeStore, including all inherited members.

    addLocalScope()=0VariableTypeStorepure virtual
    addLogicalBlockScope()=0VariableTypeStorepure virtual
    clear()=0VariableTypeStorepure virtual
    declareGlobalVar(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src, XQGlobalVariable *global)=0VariableTypeStorepure virtual
    declareVar(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src)=0VariableTypeStorepure virtual
    getGlobalVar(const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0VariableTypeStorepure virtual
    getVar(const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0VariableTypeStorepure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    removeScope()=0VariableTypeStorepure virtual
    XMemory()xercesc::XMemoryinlineprotected
    ~VariableTypeStore()VariableTypeStoreinlinevirtual
    XQilla-2.3.4/docs/simple-api/classSequence__inherit__graph.map0000644001725400016040000000037413273140076021334 00000000000000 XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__incl.png0000644001725400016040000003205413273140076017773 00000000000000PNG  IHDR<bKGD IDATxy\Tg6Dvd_EVq~KzT5sirnнvL}fjv4,,JEaGe`q6yk<9g͙Ϝv3gN޽ׯ\.}6!իO>d+lnnsT*Bȇ~XYYcǎ{_/_u"""!'|hѢ/޽{ҥdMMMoVDD.]r۷B9B&>|X*ܹsӦMW^ϴ7u唔5kڵbs 6|2I& Ah=  ;whI(9xb\… rJkks/_63gЙ-Z4x`GGGB?4~xBȋ/Owppؽ{+|}} !pԩW_}7,,lW\ĥK,\mΉ`Cp#>e˖իW5JZѣ7nK/7lAAA)j:003(( agsrr"iŽ{>\}D[YYٴi:;;koˋ"٥6TWWoݺuɒ% ;wM4.߿)33~[reǶ) Rihh(!ۛ{ ---O;!y昘5ܿC߆bq\\G}$J w=vv5UTbBAoPijjl#FYѣ+*׵Cb:qIYe`/nض'3JJjSJKx): SEzL2Ģ{2uVt`&AhN b / J @g%$<*jPZ[S J{ @gM2DVsCB$'-Y   ZI`OZO{[Z`c00ψ" x"Պ{&У"уX=`OZ4M{aBH$|n0JSOŸ9Z9`?Z4\\=t?a`jz)oٲڭnBVVaZΝ1b`3n͸w?[!oZBBT*v+l B @;sƌn@ׂ{ZZZZZٝ;wϟlBcqĉ 7aD@ox ѿk]9XB =;z)StۛXvTZZZzyZֹ(--=p@vvvGv5!>}СC:Vkoow}>>>`LfxMrBHHHH}5!`Jǎ %|嗑Rzj???__իW+J[ٳ!!!iiiIII!!!>>>s̹>]RǏ01,,l߾}VWUU9;;wޝ3}Bhu]\{7E".w'@swׄϛ7;88xժUr@gϞw}w߾}{vww?iCmOܰaԨ(__+Vf0Ό3f̘ls̙;wnYY˗{oڴiw2dȺunݺEygΝ;9lذUV[[n;vJw 7nԹ={0 Ⱦns"80zLs=#e2Â ݻ~BHEEMPf3f۷322뗜= 3gd]vBd2Ν; !UUUInyv]y 5DBĉe27|CH?~|^^ޥK6kLlB!ls6`!R[[<`hTJ_9sfРAnFF0QQQGf_k/USS#H>ZZ]__R->mڴ]a]dԨQ񠥥%''AR?}EPD7n9r$<<{@^JgxM7Тj4aT*w_Օ"H4^#jH{6&`bwݶmرcW\Nf^tNwyGRr\V:t楗^4iRMMſxn-(%%%򄄄իW_zugDo 5b!!!QsrrbqϞ=i1ԞM !$//}ZLIV/X`_~Ǐ=oQ\\s={7nܸqW^)..ַ@ ?~7|# D"qrrҹxjjɓz<<<!d2G}4{Dwqc( \D׷ DϯXƍoY5o޼˗8qٳs֭;]y !v3W_}5??_s"&ciٺu 0~m@@-D&͟?kѢE.WZ>sZ:]{)a<اOT+g}۰{xx'55nWT>ŅѺC{qu ݋͛7ѣgϞ۷o9sMP555g xr -|T*(:wz| AE]BCC/_ζYcyB.N]\BB!믿vC #""4N:'I xC[^.#9Oܐ9] B @d*u~{Ff$Q>QQ!!^mTT@n溸P^\ptֱc*+##'M8n\=ʹE},ZXL/j[_\\MquuA  c:X{;5 88{?Df餹YOyǏÍfULҧ7UB *酥`b @{!V^^G t󦴲ֽW/on={X;h]]wL֩S!CB'M4q@wAu K&k.*Ԏ18 \ۅ@ܲ҆BOhP/"vS  6n\Ƀ}|\xZX9Za:-^X#71&0Ѓ s-`JUAAe^^a;/<7WJ(4DF}̙ͭȑc}|iN -,ަ[!@WvvFyC_""wTVnnىgdgdt3&fҤAGGK$"k7(-,G(v{Ll:ot oj5sƽ3gjAAePg||cx"\,l(l(81Zfh<Νj1m&f?l1l1 O507)srJ!N43 Hs²jmUrcL^^YshŘ +G]q|YnnYvvic#F$>##cƸy 90bv ivZXv^4PUԤc}lFi-`^W߼)U(1e}TlA`e酥c]S@hSɚqXߓrP#z9}hau҈199 :bLTT/b B t#GG88tγAC -.^XddgVW?'c"#ܬX-`,e77^|7+"O(:i]0fzai|>ܼ)'ѱ4Z@7nj/6=p'Ӄ ͡+VO/,+'u˻~@ @;F=A…1B @=G΅zaS~9 }qՄWW޽bSi8[vvJ#]## W(<Z CziL&/*Aܫ7;b @W`W|O{q82QbKW{9  x܏5FFD >!0E$tABK{!t@}}sa_gcB 0f(t6i- EkaaQQݺ3B Oi:0;rNnnYVVISh8>KAZB !1 B '?{H}\\i<20㩧bƍ ^D{\iKKvGZK$ H+Bh1+sc֏J#ZLI wpǴ ͠fABe X k㱱A5|Z:N{a,g8lIx$ Xҋiǘ[rA_sBh0΋(Wv󦴲RsazٳF67<Zź4{dS1߷o `Zt864BBBC.9Cz HvvicHtt>Kkd8X i+Zo- C]Awd>qԨ(<Zx^$H/<8;>.-` +QC1 ?AedN_,[-]4ntww <] B ؕ?~z0;5 t8P/87x:u+zN&{ڼyOZI`ҋ ш1Ҋ c! (s8ػQ #iv!ZD$\Ooo SH/H߹ͱW/W-`34VU=qAړjmUiL#FD| Ŧi2GϏ!!^~lB }t7,'<^͞vSRs' >zqڴG* ɋ;Kk?1lB X_#|~&QSӸj#"nxN<^_ispgePo6ce˖'N5wo5!5Uy':To!^ EX,20t87 EX, ׯgll֯.\>8:rElJvX,s*0 0'WVʺwwض-1>U FkC6痫Ֆ1*Z.W.-Rڻ?̛7|g;*wa3QcHGGv̇aݻzTBtܚv<kZ?'Of(l{,x~mPߋ&MB*?DR_0R Q(Z _ ;96maٲ%K$ 0Lj돗թȑ_}ōq8::#۞^3َ@hŊq+W>Avqgd͝-;{=7Kg* MIfCit0vx'N\kNx1= tUIDATB^r򱜜@@S.啕ã.b{qw=Dz8>t ծFTf}}3!D,͘ȦM/XQ`^u'Of?믅NN⚚F OaFi11fĈ߾]I!D  7ߜ4q@  !啽A^K9qj8܅7 Uׄf製Nk}eC_/Ԯnǎ;Ӵ$ !MX)h:ҖV׽Ck:,l /P0Lo=uذ0+ BKW'ߴ釯, J_FGnubG{yEDEFyz:[`Q -ɓ}\H$k]) 7 Ӧm#|?1Q|7LP(3&fD7nXRϯu SXXTD"aHWpO?i/% T*'#$(i۶s~0DpP(8Oㇸ^%+d=eeu0 WZUOj53hPRUUEX9`9 L{#]]R*,?o~"a^xիPBZbk2jf߾+;w^hiQÒHDg?qfpuuutlinnJIU*_7ӯ%vW|Bc泟~yyZ-&32Jgl@"_?QIjtܝ^P( &b…Kk]ƹq],$?NkiQ Xh (k >׷oΞ{ ***:0 Z0_5*MX>2ĭ&B ʪv[xM 5+OM:ol (ӂjLR{W YbZniav^]ƹBL=z7q⸂ʛ7٥997nB$P(ji q-J"++$ 񉍍_MQ*UMM-FRbF&B--:9!dH~VOKK3U|Ba k***;O ;L(yٹDWRH' jtܝt4" Q@(,s7F$QTTɃқ7˲K23KrsMM BTZRqq+HDN_ ݺv+6ܽ[C_:@S -9>Xc9{99rLbιݺy{$B iV7# :͇;w̟?xů]&:NOMMupp4G58z5gΜJ3 bgw=3҉5v LRrww8qbaaaZfh@Knʼn4 mmn]P{f3afjѣS~YAA7}vZ}dC -ѩ:2WTTtuvmW{H)XI uUZZzyZخBvm6 kR֪͇ӧO?^矸O~w ,oz{{]n]@@5kjM>>>AAAqqq~mXXؖ-[, !!!<} Fa;v,cǎ3>-'Y;`]*TG] 4(%%_~ =\*(lWvl`I|..ՙgh;;v,((_FFF666BJի|}}W^T*5gφ%%%̙3! ptt ۷o!UUUUݻw^c_?M]vqB޽{ٳaÆ>l޽D_#Mk%KN} wT5Cߞ޿޼yVjnn&H*o UH$%8qbNNNi^f7JqHWW'|1F\pAc~$ok2: (0;v۷SO=u AB.?K`G7-^*Q^^?2m3gܹs._L'{ӦMsNFFƐ!C֭[w-B3aDuY֭#_;ѬF+֭[-No\'doRUUE0~K.'''hnܸq t#ܼyڵk ܿɩ-ʡA}GUgh)0f3f۷322G 2}ڔBHuuvT?cyyyѕ?!ٺd=#<0L&sppX`{O`tVt 7~+7o=rHiiɓ'J؝2Fh|~&6u嚤T*u6C є̙3leh18w ,ft}VjUݑR[[<`R)}}̙Aedd0 ulR555>U*JӦMa:ZZBApӝGw[/ }}?Ծ}ϟ?xQ|⋡C:;urBۢktuN^C Yiiijzʔ);wd3| Ԍƞ޽{;gFF-$BHnnFP-Z{,Tu:|A1yx5YMpݻkvy8~#dpha&|x hݯ_ή6==L=n3lJj;r#ݻwm6vؕ+WҥKt:XTTD;jСC555/ҤIjjjt.sF;XXbƍ#GLJJZx1~,vO&L`x딑9P#- BH^^Do"Ot£^__…3gHCS~~~"AAAP P Wz۹vYlW^!q4VeІ$|IK~xj0p^ַPn5䰯ʯ=gx) yHu|ur1[R;_WMMc+VL>6lذW^y O厎OrKJJzMv]WW7uTɠCvh.V'N8j(ڷJP 0`̙5ag㴴ɓ'߿ߘ[gJJ nݺuʕzKD`+-]7nٲe111qqqӉ:':@h)0/1c 233ccci!i!cB,TFZ@pԩF:xիW女;|ᇾGJN cOƼjҒWZ&iFn?TUU={6**J t18wt.fu}Vjön:p@zo =d2===-ZUVϜ9N^a!:::55U g6l}IMMU*ÇwqqaOc{v֍f0̕+WBÇͽkh{9k,dx֩yv|r\sbdh邅Ǿqiii?Ӡs"|t=ef^^^εk2jby=zs3gevV{)FnuƍO<{DLMZ2eMТ ިJڲeK>}SSS}||lS~2`GZ>w ";;{I~~PuN4^@d{L06ځ׷'$&MUKI[qĉ={8oY~=H|=sOjm|xզK.XpkUl-^ؘU |YfMSSӔ)S*++,XޚAeV= :&{ { tАB `ΏD(<0fP$P`-&=s7F>4Zx:::vr%&iN^^^Bag/,Lݽ+AMB`~B 555D IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_28.map0000644001725400016040000000030013273140077016457 00000000000000 XQilla-2.3.4/docs/simple-api/Collation_8hpp__incl.md50000644001725400016040000000004013273140074017260 00000000000000a7c8493456078a894135f951439e1d5fXQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp.html0000644001725400016040000001112413273140077020401 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaConfiguration.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/simple-api/XQilla.hpp>
    #include <xercesc/framework/MemoryManager.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for XQillaConfiguration.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQillaConfiguration
     
    XQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp_source.html0000644001725400016040000010572313273140073020572 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AnyAtomicType.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ANYATOMICTYPE_HPP
    21 #define _ANYATOMICTYPE_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xqilla/items/Item.hpp>
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 class DynamicContext;
    28 class StaticContext;
    29 
    30 class XQILLA_API AnyAtomicType: public Item
    31 {
    32 
    33 public:
    35  ANY_SIMPLE_TYPE = 0,
    36  ANY_URI = 1,
    37  BASE_64_BINARY = 2,
    38  BOOLEAN = 3,
    39  DATE = 4,
    40  DATE_TIME = 5,
    41  DAY_TIME_DURATION = 6,
    42  DECIMAL = 7,
    43  DOUBLE = 8,
    44  DURATION = 9,
    45  FLOAT = 10,
    46  G_DAY = 11,
    47  G_MONTH = 12,
    48  G_MONTH_DAY = 13,
    49  G_YEAR = 14,
    50  G_YEAR_MONTH = 15,
    51  HEX_BINARY = 16,
    52  NOTATION = 17,
    53  QNAME = 18,
    54  STRING = 19,
    55  TIME = 20,
    56  UNTYPED_ATOMIC = 21,
    57  YEAR_MONTH_DURATION= 22,
    58  NumAtomicObjectTypes= 23
    59  };
    60 
    62 
    63  /* isAtomicValue from Item */
    64  virtual bool isAtomicValue() const;
    65 
    66  /* isNode from Item */
    67  virtual bool isNode() const;
    68 
    69  virtual bool isFunction() const;
    70 
    71  /* is this type numeric? Return false by default */
    72  virtual bool isNumericValue() const;
    73 
    74  /* is this type date or time based? Return false by default */
    75  virtual bool isDateOrTimeTypeValue() const;
    76 
    77  /* Get the namespace uri of the primitive type (basic type) of this type */
    78  virtual const XMLCh* getPrimitiveTypeURI() const;
    79 
    80  /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */
    81  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    82 
    83  /* Get the namespace URI for this type */
    84  virtual const XMLCh* getTypeURI() const = 0;
    85 
    86  /* Get the name of this type (ie "integer" for xs:integer) */
    87  virtual const XMLCh* getTypeName() const = 0;
    88 
    89  virtual void generateEvents(EventHandler *events, const DynamicContext *context,
    90  bool preserveNS = true, bool preserveType = true) const;
    91 
    92  /* If possible, cast this type to the target type -- no casting table lookup made */
    93  AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const DynamicContext* context) const;
    94 
    95  /* If possible, cast this type to the target type -- no casting table lookup made */
    96  AnyAtomicType::Ptr castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
    97  const DynamicContext* context) const;
    98 
    99  /* If possible, cast this type to the target type -- not virtual, this is the single entry point for casting */
    100  AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
    101  const DynamicContext* context) const;
    102 
    103  /* Test if this type can be cast to the target type */
    104  virtual bool castable(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
    105  const DynamicContext* context) const;
    106 
    107  /* returns the XMLCh* (canonical) representation of this type */
    108  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    109 
    110  /* returns true if the two objects are equal (whatever that means
    111  * in the context of the datatype), false otherwise */
    112  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    113 
    114  /* Returns true if this typeName and uri match the given typeName and uri */
    115  virtual bool isOfType(const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const;
    116 
    117  /* Returns true if this typeName and uri match the given typeName and uri,
    118  * or if any of this type's parents match the given typeName and uri */
    119  virtual bool isInstanceOfType(const XMLCh* targetURI, const XMLCh* targetType, const StaticContext* context) const;
    120 
    121  virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const;
    122 
    135  bool castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const;
    136 
    137  virtual AtomicObjectType getPrimitiveTypeIndex() const = 0;
    138 
    139  static const XMLCh fgDT_ANYATOMICTYPE[];
    140 
    141 protected:
    142  /* internal castAs method. This one is virtual and does the real work */
    143  virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI,
    144  const XMLCh* targetType, const DynamicContext* context) const;
    145 
    146 private:
    147 
    148  //friend class CastTable;
    149  //template <class TYPE> friend class DatatypeFactoryTemplate;
    150 
    151  // class that implements the Casting Table
    152  class CastTable {
    153  public:
    154  CastTable();
    155  bool getCell(AtomicObjectType source,
    156  AtomicObjectType target) const;
    157  private:
    158  bool staticCastTable[NumAtomicObjectTypes][NumAtomicObjectTypes];
    159  };
    160 
    161 
    162  // reproduction of the XPath2 casting table: http://www.w3.org/TR/xquery-operators/#casting
    163  static const CastTable staticCastTable;
    164 };
    165 
    166 #endif
    virtual const XMLCh * getTypeName() const =0
    virtual bool isAtomicValue() const =0
    virtual bool isNode() const =0
    Definition: EventHandler.hpp:29
    RefCountPointer< const AnyAtomicType > Ptr
    Definition: AnyAtomicType.hpp:61
    virtual bool isFunction() const =0
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    Definition: AnyAtomicType.hpp:30
    Definition: Item.hpp:36
    virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0
    Generate events for this Item to the given EventHandler.
    virtual void typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0
    Debug method to output the type of the item in SequenceType notation.
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual const XMLCh * getTypeURI() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp__incl.png0000644001725400016040000041273413273140075020515 00000000000000PNG  IHDRh%WmbKGD IDATxwTi7C JEEE)JwņbeuumUvQ{AZiVEeWH BIxxL/p|ǻ 87@po@dUAAb1ޅBю9w`U=ӧO6lޅQQQ; 8Cvڅw C<}tϞ=xW87@po 3\pٳK,5kv&.._SNYYY;v,33H$:88,XA?3%%ŋJJJeeeۺuOkll}jjjҀ6~%##6?5 8PӋC޼yAUVa䊊+Wzxx`=zh͚5Ǐ755]hQBBBDDĂ \^}}}``ֲe O>իÇ)}1DR\\|ͥK9sFMM훭͜9E 󋊊lْSRRTTTzl?!.]ݻ W^~AWZuU& Hfffrru\ޅ 45592p@`0>|Ś:::οAdddkZXti':\\\\>}obbҦL4 c^^^z EQ4$$d؇D"QhhI&M*yْ%KF9e,}><--mo߾;wn%%%3fDGGvguɍ?_k=Fܹ-Bpܸq]"\zuΜ9G^jUVVV_W^͞={ܸq/_~v)))s̙4iѣGBa'  Æyxx|sP(,++333^644444H$CCC쌜SRR;VQQ1|7n(//?yÇΞ=[__ҥKN.~m >+ʪ_VKʾz{{{'$$( ˗/]\\͛׮][tŋ̙WŋNڲeKxx8N޹sg߾}{}v5 8б޿_QQ GAAA~~~ s8Ek?nBz F5k֭[UTT>|vZ=== e˖HӧOYB!RWW]tRgggiCH$֛}Ȑ!';;Aؑ#GbP|y{/_NP ~ӧOWQQqssCb'i4ŋ[8 8+..N,O0Az&>>^:K$z\^sy//' Ɣ)S/UUU BIIɡC>2211ADMMM[[;''M?cccfH¾l`ff?:ukD]a@PlF^YYZ_WWo&F /ϓHef@@pI$+V;;s |m999~ׯrvg x|>ݻwvuu M{ >pႳtScccDD4H k"QAEc$SSSy55OH$ "'HD>LVƾ~MӝhߧQXSSW[[555߳DFF4;exUVJ$O:XWWw!;; D" Ν; H}}}}̛7o6l5k3gttt&LPQQY422|޽_kiRS...<ܹs-?~'N9sÆ h5رc7nrι-l,=Ɨ|acc3kK44їy JJKH$§cOg><@pF!]_[PQa0lvͮgjk3L%9oՋׯ_-b [Nqqq ^j7?E;vlɒ%rrr˖-STT ߔg͚e˖cǎ5KEE%,,ٳeeeӦM#_6!-COO),,L`lb5['@􌍍lx"( O8QUUeii?XAC۷qFooٳgc>;ͯ'MM1%s>9p>F!1 ғBiTîAя44|E?>FHraXE)UU1b DTT$+uuEEEQю䰵DTQe0&SQ7DRTVRV^jijihihi&&,\8NVZZK'[={w/H7/KN9dH$X_(K9.Q,`p8 NP_ (*HD"A]] SWW"d%i"jjd2IYH&+(*+Օ۾Iz@QYex嵕JQŤJt J%ST*ɘBQRґJku~ |>+l^;pq]jR饨N P(*,~ 8fs"AYBRV&*+adǓjjғstnSY--)-)--..-䔕Y,JJD}} ==ɧc2vF:EtKƍkIm`ut~Q!L66f< Elv|nMM%%"QCCYSSECCYCCEIDPĮTV_Ap])**(`|JJ5|A999==2edկzzzzT sz.MM 6$_RR"*)iPmW 54jkuu\.kdx<>}Z<(UTTUUՊATMM)?^SS33;LV~fs8*NC~>6[**$,A5]$ϏS=n5=|C^lrs+~$MMKK=++CdfSIʤ)p9OY^jjkjk߽+nQQ!I>TT!MMX~ApC(U :A399L% 5ML(YΝ;ԔbbB{@SKW zlO]MM]MMLemmg@7P(5ummU EBQUP԰=@FApm!K XYYٌ X"HTҳџ< ؘB ]oz)%;KD7lh4MVXvbq߿/VW5W**$i򕮮::v eUz VH6666T[[}[[EŞƓDf u$/^I$ͬ'u]bX,^u5T, ;Xܪ*\*FUUBQUVYOs_W[[QQYY$z9:eԣbR!I9#BBbbnKzR(@v++XX꺪*^e%FT2f`*]]u* :'P(*KMǺ>|`(bcCur2vr99[[SaowxܡC>jbҁS/BBbƙ3\饯ߖs=Dc0l6;`29Y,@+ia*U WT*;PR5r@ǁs:MѿfgD E٤Ogg^hzz %K<7n _=a&8o0Lt3Bdr**8,X<&]Yɭ2lMWAtt(u ]]u##-*ahIj@8 8,/_槦槥I{5vv6uv6NZuŋm9E(߹fu,,t;u@O)&]Q)vE8ߒD"h`9J__@S__C_ldK*z8N_QQUjj˗yt:Akkj~:;Oy2ģ Fc)88&?r̘>6v~1 vEF:PCCgjJRff߻1@ApbINN^+.&\\42 /Œ#S(j׮XD޿99LooG89X r6.-a08X? e*~*CCMccmMF20ЄNm@p&P}!)y.H&+X h޷ ZvLҞ=wccXY] "y^n E**L&`2l,_֔"A5LLh4-MHX@@pmU))X,ʐ!nnփ[ xjj͚5xǎxIJ8 -|QnnxWfVVIV8 OCȦ)Ԕo${X,޳g9IIDzQQ7pDٳiӵ̤ջ0ԼC'']\WuĻ"hҚ꒒eULV22ҦѴLM)ڪV$bIffittftoKm<U@7!E)ުH "A__FF21hZ 0 NKǿJHfMM)^^^^[*]$t۷WDy 88&&杽eæLCRݘP(./-**(*(`a Xuu|AH$TLDDߨ 8u9 QD$yy9ggS??GwwX^ +WoFCkYYe'N߾fmM >yr+GΡfOaEE:l+ecC73!E >|Y]]GiaKnn6**)Qz7}&Ixٌ۷h4+gz2_Xj1UUX*+ŶV5315`=TzVV g\nc\\փqqY ggQz{{;]vorO2kªثW_h.Y9gRBiTaaUnn6zLL(66VVzЇ@ 8᣶>::3&]l;>_ԯq}ǎwixL>} ޵'^􏎎e\a2hɦәU :!G$*jJWv5Wd:ɹÇϟvG;9jjBG9T(NR_/}wZ\ptyC.?8ƂJW*;A3?|`64ANi|0**$//ѣae<7_]{%*j ޵*޹saa D‚nKxXDX,).ɩɩͭͭaX<AzVVT++=KK=++=ee 3NH %$dGEAH$;Ϙ1}`/ixҁΞM:u*Eѹs\]8l : BAT>7egg SHWܹVSS׿ٸq}'O{~._]"%姞$?>9$$N(Ϙ1h*o*wQЭDlYY,XHѷ3wp03@ApjO99oNc0ؽzM<`Dg=qxy/BBbƙ3\0⼼J:A3KtdfkcCur2wv(穩y4ԩ.&]͘=de% =pR@ ~eP;a #t. z2:-◙YZ]] JV ,N?NgDFr90dU@N=(fٲ7o<Zp#I zRZZ3au~x=Nqqٌwʲsr*B1`akkkhhhA-x<Ç7nJJΚ5:uВF-k޵O1cٴi$BqNNx򬬲A{eԔ"'}vyܹ{c=u`  d<H>8'q''c F̬2PhoohkocDSŒGކ'xggg0{Shh@fV ۶1˖ û.G"Acc98=a:n4lb,Jed64Dss]''掎F0ctN6^zTBiiС֋{8@9VEGo"JJ8 -|QnnxWy"۷%oed"UU޽i}ct=hGuH$'[@=sf+ˆ ûwdU޾xWBqv6͛7o(;!de,A9;g#ԌԼӧݿ~|ssJ(ܰӧt0uu%Bqzzy/^x4R(jY b(XN'A))/&Oc8*wEtJE<6ow-_Uܹ䰰"Qa%K~p;CXOtmɶm{l0BUUf'@vͮOHg=}n8l Rd>8~fBB)wwEEsg5$46Ԅ3q=ޕef~] ?tՈ}} 4rp GZ[Sֿ)W_l|xZߢ> NM2 (h&@OVSS!:: .F~CY Nt:c͚+>0m`;l=o̘>6Z@ AG!;E'O2SRRۨ^*PWWq3 Һ3Y NQQm~l''cK:5?x&dt:a"E"X,80 f>x$f>F9r|O6SUo˖e̞=xϞ@};mKGiކ Ա?؁&@WB9PXw@swwǻh ~O"|}'O7|=jG2߯]{YI石 »:>//C]K_\\a i .v횿?ޅ@>|Ν<2Yy>&4F.=L,>888z+]]HPГc.3666mUAWW}!s)/?=*)Skgܸ>Z] r/rwxеW'5BQût9{,^쑝͸};>hc?iRɓk]C?]RXu*y£3 JӇ9sN:}*-9~<~ӦT޵D[n޻ܹ3qDyyydXPǶ2dv m@ַI߾&wO| 62 2s ]]uBDpz2:g.с%;ok,Z;xCGGg{ד'O"##{%IUUUT CD_~ՆIMԯu󰰧?9w@u9r777VAjُgdKʣ۸wQMM 666uuuرcꮮ(~r***|bTUU<ifB͛T͛B! rrrgΜݿŋ544~g쮨('''%%% /~*lZ7h0ODQѡh6mjllĞe{{{mmo5h33;Ʀ>v,~CBbzKXC%H.N ],ޅȘiӦM6훗͝;w޼y JxEѓ'Oݺu4 A>`6}X,jNOO.v횕U'[ pN6lv}XSWߌϝ{*%zbd˖?8|xpR^^fA455.]۷''@"tȑ#9$ ZZ--ZPP```z뛟WWWGH$~v V||i4gRR|kL MPXzz}nܸ ŖǷ*)) [̦O؁͞d%K<:{vQcp_C/B1ޥuH$YRd3gΘ1 @sOWW=0 Bcǎlܸ;cdd-?iiiǏN>zhȑ-ߨƠ(ZSSoV H"##-Z4nִܸ]-͞=FFw'R yyy\> ?_{gEu1!Bӱd:ko7ظ˞ÇOy2__NnYE^T{LTT5!:D"Ypի#""bbbYp͛޽`0=zm۶Djhhصk \.ݻ&Lhzl;A&O}#G|`999??7or8@@$UTTZhm-lʕ/^F$Of͚;wΞ=f[.fڵ999/_駟Z8 M ?;'Mˮ]wo|3y9.P$\ybKR3@v b/3fY՚9NGӧ@ @Q_~177WSSsuur 'E9mll|3gjii=ZڊJP榦p8 ,ҢP(K.CQ4)k׮]$HvvvwM/_~F"@QzΜ9 ` *j755YzuCCC'[[Fat !44_ݦm,.=IEIh"dժ11.^\j9 ~=*>~.޵$A_ɱo@ٯ|:]/} ;w҂LvENע!5*+G<^ R2"Qa4mM"O˖w]ӯ޻uS!5zzޅ2lٲ֜;,>=}f_>|˻O|$,,!8x}'4@uAdݻ' ҽ@' mI])㷞81 ]׏tҳC;un nC"ACZWt1r|s]]۲:ûՍӍG̝;Ct۷%o»܈FFZ؁ޥ@ŧ#{_z۷w[WMMҾ[lF`c_q<`b{{k[17WSR2(-~_^^[]]WT$jhijhhhZ* :qb'CC޸j3șLرk_D];۶E>|6)'2Y Zd^{-G/#Dl&dr NEdWTp}} == J%SdSS@dUMM 4N6ZC" /Zഊ م./? <{䫪uu ֐$ER-KRTH6ۥHSS) JKkk%%5ee FmttfYY ǮQWW24CIiihFFZDB~* 3Tw;{}Ϛu&k]׷uHƍ33v8'ѻwW]Nwqoh TU)UW+s$yyW/k"**KKvkYY>}*ېu\nQ*>o(((۷(CCa29N#v ɚvRYZꩪޘ~8;oU\rZܹ;o;ǡ} @wZƍW_ߧ1޵dg3wŚ*>>^^8->v,СGwp0l|mӾ-l{ЧYYe..{ K;]/WXXUTTUXXUPp JOO61R,,dq4 P||sfPP:}:)"⹂eˆhZ?i,-.))**)).[Sq?mmUccmMF26֖CtCy[FWo>f(38-_~>55?6v3{ _C{N=ZGYYenݹVZZcoo8eJ1c4~vddjL̖6ĕws机sg?XxZɓOk/pwgX|`K{WK$(ϡkw7BqXӃ:9>k s7mQt-[FucF y=ݻXq޽]Kf?yyƫdôi.nn]yyC`߾& #=کkKO/Os'BQ p]v8lv}SAQQ5#i VLf8HСGzAA3vN"d̘ EE[dk_~77#Gf]KO$cc]E (9Nܿ+˗_HM͋$0۷%[.*x٥KD"I,񴶦okt:KS%%5b~QXXys׮]~ߣ!8WtPГM6ػSSdkYrs+""^ܸ⹹L:`2*tdu".^\e**ؿgyKmw<4?rPŋ=||rW^7&j?[//՗HT04lLM)VVTޅz. ?pUpl==u*S֭c/N%Ѓ ;-QxW}k'EÆ4$d޵t[NåKΞM./?wgdu+ Co-Dw{x\v6|*o$#t,,a OP`a :|ªйnۃӺuW?$$lSUt? OJڮ_AԩSfoGFlѴ:Bco˫<{6g$´i´m,JU "AԭzzTKK]ccm{,<0^xŽ٥-WFGGw@$%ѧO?q~ "II;v,6'kjggjN}MthCbdΦ5C&P|NZhӬ2ŋ=Fv=]Safg3>|`֢(J"}T.,I ɩ??^p޽iw'P@?g*H({{跿=/xqD0y*nRShjv۷֬lk.~IiΙ34B8/Ng`Odg3rs+b odGaKPEz8Kos]]-;Ng&}'1q)j =|ӧ[ML_P kRy\]]7~|u.EF\.%K)~~BCuBsTP:}:)"⹼郖-ALE\)KNgB V\4K(^}ѣM|_pjlĉvnQ**{-akUBʕ155us Yһs6QYY.{t7އ.^|6&f}{nkRO|Z^^x E.A(WL:},HB$*X[Smm 4EitKbd/>}v3g~?w++.| YnlKPГҚn0'.Y,ޣG:a )EG 21 iX,:z4ի|l-\/0%TMMBZJ:bEѽ{?kׄK=BС_'oy&;sfEDGgufGw9ǎ:A%`SSwQ(jyt0 F:U}9xA EΠ3Ohw!!{߼yu~NW<߾FJV%#FQz>Ϟ۽7o'Oe'#t̘[Gs;R\\}?.=ē&[ij,kJ.6/;z!'̹t֭;w ^lmp%\]^ms>/XZ]ɩ㏇QQ9CѨQGՕo\QQ^lggK߅߹vʡC/q,{1blt߇LEd%[[lhwo;{6y[L pm68=y`y*:ss;o]l;p+mmw7loGFl EQ?lm W K"Acc߅'&% w:u m6fea!*=83^ ]ɉd ~9;ZO?A _ǛٰjBBvb6UUEkD"ŋCEEcN /{ g<}Tj_Mt4XWUQUY`Pz2Ջֻ7ɉfjJN_~{tҙ3 ~Q NnnΟ_ӼyS>8:=:Zڢ{bʙ3uuX% ,}<#ے HB&+9:Mâ^n(nt G*8q+&&v?{D'Duk {Ϟw;|/L3/,wvښ5.fZ ӟ@@OO/&J}[($uq}a(I$,Yr655ѣ m~ηSCyڵ~$=ĥK~H ٷo Em ~~=}ȗE\Z>%:xZ~cbޙ,X6{`:H$ͭ}Sq2C+{fUJ$nIC+NKDNg]?uK8:^qyHII Q**"3gC^/Ęݓuݻc1>uw:ztY(TMͷdfV_o:|efv^1áChcPu;w<`gm|l } ?ֵ10WG13c 4*p<˗&_Nט0!!Γ;Эcc SS88f p7ޝ9/+ZMMD#a{6\ ,S[Rl2OKKPݩk/*j((RPP_XgAYYX]]TMMLMMTVLZvGol2pjizuҥjM2 `Y(N^^ol H._~򥻒% J:{UvYX2p8Bdkޕ~ёtv6YH?2HjΜɤ,<<9JV>{Tt3qaa (.]z 5a G&.\Hx1q\3gd&).n\܁o_t ٳ,"+֭ԗ/ EDf99\p@@/CCxvv:J^^@e`vq]ٳo"/ E*+ @_>vwuu1P]5{xXn۶\4-:>37JC+ֶݺQZZu HCC/UUD"Ǯ)%%& D YXݹHNMM]ھ (__ߐIKKSB)`~ Hyy||?}~ ?GZ2Tw0,,wMM]ffJ&rH*,_[c]KKVT֖ҒE:#P˧Nrt4+nJ9}eQwXTXXVZAnn 2i;v̬ڳgΝ`())e/^\kkt_;t(">ÇC Hgv1)ҥ79957XIoF#'GqpJJrrRĺp@9ŝ;iU ';+Wx@˛-,_n\PJ7Й3][ Z}uuHgιsOY ʼRX%88%2#&61 '~ԘUCU^<\WWJGGtp8QQL%?-tirK4nmmqq{)y y0|Vo`n ʪNJOE'nn>n~ړ|xyH,xo&J'8ڏ벲j;TUEtt$ut$ s޸?JI)OKN^^_^tx@qΕ9w,ڵu|efv^رHgm+W^fcc uA:bD͛O)JJB6Z=β5504--=YYYY55 D",.Σ#I''. 4뼽{-NFF,Ydm:}۩))^HgAҳg9aFF/;?C$Amm}{9ۦX^otݻ`Zqqchhӧ,W9;sz Æm 7WG||::3 @.]z}Bbz?Gpjn<6##Ѐ~m.uq1E: b`>{ٳ 6=o_tWRB:d0ljzJ__,޽۷-S߶m&%:9DQ !!.9.%k*:;YYtutu%YSfhohxR 9viOJKK@~ݬHL rC;w>HJ*=}nj]PGw).n\iݻGFfgei J*+kёܱÌ4iժ+YYx<B10][x*a7յgeUggפ׷c0h%%acc99IpЀ#G"?|icN^^%%_wM[<%?}fh(td׷_&-- P7^}{Z |,hYvϞQM߱ھ7OdP8]a8)ƍ䴴 >kksԢP( \/T3#*=Çʺvffܹ2LL`O*psO,\zzDۣXN>|},>owexBPG,߲~G["5t'q]])9==)PDt_ߨ#f^NhNsBz%\&9o8ܺun** ޾ y{@EC0̞}ZX=[Wvk!BijcR2GiҝUZ\KnjLRt;"v2sƸP\܀@_\y>WSSWׁ1cJN.'93OhmA6"F/??eogMIZ7X??|{2=ؘ d eO?&͘wnڶmVqΝTOG9nIIwp@ӧmmϜYP\i8""=LK]],(/qqM:kѻ%BqX摎qFll4ϝ[ ~ZUWמZU^5kܼy yd_tݾiB10^YY`|ii山at[?wVHg\0 ~]2j"m/*j03;葫uZZjjwGh4H{AD"A|P_`,@y `9%,9ȑ߱22|&&sʰ2# QQse²~p*/o`@xÑ*ffJHg!Μ?vl Y(}?WC '6ȑ||ڗ|޽ SA+b8e .JP ñJJS 'OJHH P(EEAEEAWyuK?ݽBo&DȲx=F1͙{8%q%940Ɵ=gq1Y(]PPҩSx (JWWX* ⴴٳ,BEEEp,FphǣX4πáp8433QD 1=}4,,,茀o?76v2ϝ+calb"'&F_aJ00UQ9rZu>99~d{bftU50r,XfB^D7 A0gBwwK͌zfz' uDYYsJJYJJѣX)٦&&FF`,@3g2Mph  qFضmAÇ#M;w΁6ZiOlNN[h^^t _PdYb..| %!!h4JCC|Be ep LET76\]8}Ą W625ϟ 8s&YȄH==Þ=˹~}ŪHǡp[AOESY (޽ 'VUUUus3OJ*}I'N37W23Sӓ޻%[@#ddT>pKH ܳ1ă.Z4,dB =<GFݸr&3޽`p8<orҡц FKKMf]J{*mXRoK7g`44PP秅)eSPxb"S M//o~f?AȄ@ 0.(4D8$!ãѨ9s_@˕̛'/)9'N"m(/_:RSˏڿ֖ e*~>'D*j˖y22|Hg!)$Hv{Fah4Ő7CMYQ( YϘA/XTYY)++ yU}}#G?G:֝;wH_?~'OI[?~ 444711 ={7jLGMHHVPPٿ?CwQQn''''A\vvMBBWa?_BTՕs'w쨿hcNBd Tĉ]̑BqϞGqqE!!'W5AT]]:Bmm׺us?.E:ΟRVVպO|N (ׁ~U+V~muun[[4X0 ?~XLL,,,lpZ|ySSA555s%= KJJ .hjjqqMzw:o]oo.??ӧ}||_~fFcc9ccmJJ_mB1ҸzK9lH@髖/u7o&WAAH!66nL\ oN}苮.]u!ikK._gS9ҽ/ CB6!&kgdT%=zHNNH$^|YQQ۷(rJ/^И9sSHXYYg̘1Z}}}Ƿo>A }ٳO:u=IIINNNҫbbbTUUYXXݻ7X/?~ljjjnn uXFǤo޼KKK|#յa^^^OOA<++}߿?Q > IDATfgsONܾIDdV@@y t(JQQy?$$+|[R҈tiv/)5;N48DcǏGOk)Mnúu֯_ϟ """~+""AЏ7011mڴ0|{ӧOjjjߤ===\~>ffk׮555ݺu < D"QRR0 {{{+++z˿pvv6ר'z#-JJJjjj*̪ UTT=J:U:;;o޼ AP{{;ۨ#Nz@xBffաC?t("3H$" P{>?MM]{ɘ (]WW!L;cǔUM0(hoN0 ĩ`_?bL䤹SDDDUUtðݻw2~444TZZG [[ێ1_BDzNGXD"@ <  \F* |e``興!۷# >: CQdeլ_ut߾'eEk !hra{ϟKtuċG2/]r26Ъi 迓"~~ƍGiδBPDѣi= }-O())߿߷oǏH㭬~qQtt3##iN$>}ѱyfkk뎎"aaagϞ{%r·0|%K o566|평eUU0m}}} ӧO* ~*zwx788\8][e']]#73%@V? )+ |{k^tY~O=OG<.%ppsCC'A HܴiΝ;=z똘6mڴo߾v?344b~z{{/_>HV\UWWWXXheeuʕ_FP .|YOOedd9sc:::kVTTxfo߾577766&''ݻ RGО/Nz$W޵kWMMMqqCífffϟ?1!#÷sy\ûvY,_~QGyVV5dB _NN,(G Uv +88YH޽Si'a/'XO@@o AЯ\tIMM 0sAA,+))f``Ch9N0 ={[TT4((a֬Y/>3q8i{OOƍg͚óe˖~+|&--ĤbGu…##H>pyF~:::⒖7tNG>㯿tww8oCEEe̙~~~_u˟|g`'(T@@\UU+ҡjiܓY5r>S^.?D`@z{ՏGJ?r JOp"MX𡬬,iK~yJ>c 'O6~ޞ[n)(( ]Hȡ{@PpOr)W((}}"dED =j?;Ndh }{ …222mowoԆ K<{l#Mp*)iB '`|\Y[X}ٲ 7o&;U)/(Zns' (%LL7j1‰ _oWp;㰰귎;7djÌAлw`&MȰN0 /Xp'x! 0A;<֯~rIQPpOLLȍA$KмC" &:dt=;v,11er]\\444Hlx𠓓/w[ǝ0wwwIח%i j u}mBgV*" fw|^UUSb55дN.?xpɯJp8\)dIߠo߾8p`֬YW^uuuܱc; tttTPPppp033=0||VVV^^^q5 OʕZ%==9:x}SSSCCÝ;wzzz455&-}䨪X/ۑLj8::֐_!TW>oީ^:,SmB߽+ܩ H#)++~*++eee 0޽SRRk{{8AʃM! foot1P җ0 ϛ7o޼yǎ#6P@*+[²2;: eW^Tm &sAHڵ˖o5ssqqM2-Ξ}Wt&TMba FM! uXҗ8n߾}|||puo޼{.i݊+KzЬYH{̙3rrr솆cHHH5kɓ'%//Ƿk׮17{AF{in760XK똏 e%222 e;p*CCN<888\]]?%2Z7CT,4BVVܹs555999]]]6l8|͛! {@ ի3gZZZr>>k׮幸!...///11v˖-AAA/^prrqttq#iFFROs≯};u\u ٛ<**OPp9Zb'\]TYN~JNp'Mz',})4 ^al...c&Duu} /-ʚ5k~r99P1Ҩ\dg+Q&Jh @LI)۲宨^55?/_:['  Jjj~xA^W 6Hg##ҥjynnfHg[NNN/9sÕbbb~r,;%\ lEHMM8X?F匍:Qo-,7n462E:k`@MM].޽BDd֯MU=p&0$@ҥj%%mH h4 A& W.YoO^^Q?5\r ,61:}@Jjrʛ/84HDd/9rS{{}ٙG2HG8thMvȨˆtN|Y}d沲ү}}C3f#l|߾}ccc#YI ZrW@@@ww-[tttv=N.\yoo?|֭?|0vvvwƴ{7ntvv\dl̍:p@MNN[uք^0lii>IRRRR|BB\h4Ԏar5CCӽ#ٶm1 wii11.̴됐Pr劓0Y^P%6̅֊o8BrKK_ZWV_O/~ܹsIDEEMLLrss ??ݻwkhhh[[ӧOu̝011=|pժU|9333ljjRUU}𡾾>A...p"-2E7j|CQPpEsFn"Qrrj< #)9[Jjl>A99~i4a{OEշl1UUE:`'DKgLns3sW#aq'8 KJ*믛YY>5禲ʖ檪o)׌ eeedddF5|И=Q2h4񟁎֪o5UUUF() )( (* IHb0`B۰XSJJdm[0oZuh;o7onD:#]priP#NΙzzRzzR[>n.)i,*jx,W0 ϙ#2g(2ImApp͛)7olll2k+ (zD$‡G.Yt)?/qgϮ#̌Y@˂ #|ܔWWWP𥢢@ 񱫩-[,,,& ~$(%(5K|/*j,*j(*EŋD"ͪ!.!!N.V۶(7n$Yc??(z!! S,7޽/:KYXZ늋lljj (zxXjhK1PPePIIcaaC^^ݳg9IHjhihkh'tA/$$wfl`f Ji~5e<AL%,T~J-p8BqqcnnmvvMVV5@ WQsr!&#QXYIH_vt՟;Ƞ$-##)(8VVlht˗ܻu 2P8t^`0],2.\HNW@vvMNNmvvMA߱fjkKlhU Wp0-pܹpS5Fa xP"nnV33%33%җ55?~ή I³tu%%uu%Qb &S''2.^Ly3yz]Agi '5+:7ԩA66f-- mmI==)mm Fn &gg{{7ݸ.,,sN (ꓖ6Fukׯ e.ȝ4+.Ĩ]B#@6-->TedTedT730ΕՕUn]]_D}}i~FHڵ˖##͘|UiSr(z;x 2x/WPSE: @ii))奥_hﮄffMK)-@fb=~^˖]Y6{6;ҹ:AMM]W_ҝ(cc9SS9uuq \t5&~~1[Ac= '^aKL?ֶ婩998A^^HnE2ll̓)`qO`lsDD숌16>cv> 3AA.[[m[[m+޿ ggg;WDT^Jj6I$''꒔Tciq'@Ѕ'WCϿڸHB,-hk21$1Sw'N.X8U+,͝+gGG)!@P(J@@?{IIpZ?8v8og||zzrJH'Ƃf>22vv`$]XJ_˗4bL@@|pph  'fg׼}[O211̟0o,tq` }֦90 b%%aeeM;veM<_\RWG$ªffJff4nuw{7MEE!%GϟȨMcׯ۽TM$47w'%}95gPBw|ſ^wL!|hhƍF 5 5BPvv:;w_K]\L4w2⚹bǺĒkޑ.,^jh( Qm-S߷驽{n:,9>P8С)et)F$7n$MѾǦU|Y88SQټx2i092ovu pqo wu+7o>]#KIbb<`aa42]Tj EEtt$<.]zWtZ>CQ.PV4+.'N~Em..H(Ho`DDƍﴷ?nSXx<>~EUMήA:@P(ITԮNs#@]>^^K}aíAĄJL$ nJs qh ر+Hg4ƍd eJ;1^SSz M^^5S^^ÇJ eTL]]+_ߨ n9:;b{BcE ޗPWx>JL~@tFGG_,#P8ʕ7}-E:ԫjʪ~x+A$ K""r߾-%acc9?VVsh䛁̇UHܺ `\98;8|ŋC1ccUyP A2fj]CQP843(譧Mz44geUxQ?dd${ꔝ K CB{zsp@: @ll4ķn ]KNN&88ftv~)<T *LL3gD(+k ZS!!.MMzS4 F;BTȺcVV{F͛0oBKKOxxݻAAINN&bfƜ?VNNV{zF]>31;JK66vc4gɓ7; e][x*_ UUѸBA&`8;pr  XMnԅu~BBqh[C9 9NG׶o_ //ukhKK͛XYw%(ZpNjee͛2JyxA:0yōϞb05\\Lee055ўvz NEGpZ`0ŋU/Vm{ ֭s渺+ !L):ze.>xE@^K굵ھ}lL jVpa@vv͑#ۃ eeaFF/HhÇ_l|#=Ksr>mWQѲty{"F:RT܉WTUՊt2@Naee޹ Өw0'vE?}mjzj{̘礤͝9 h#''PX؀t.K߻ÇJ88ocfƬY?2rL622'88e`t4z$&RiW(ꖛ[IѣiL4;#!x =OI fa fHUUDOOѣmU۶D+✖eftd_v!=}ꦠ hgNp>PZ,+/NB4"_t_@PTp A]^^)_] O$${y-:t%55Apۛ^ aP;Q7{-:*#Ν˛EGf` qVUYmNpUW׀KggEEAL/54@ ʕ[vus3M/:{;;)$PPCdel,w3gL&&~Z۷75-X~}0`!Ɛguukl 'Z:޳ ӮqLyyNN7=z51s M01aAc=,-UϟO }t`j( W<[EgWcҹ ݻ75|3Jōd,`A:˴˫gddPVF:_]]C.==TPJUUN"֬۳gODrrY)B,,cc8-]z~5H},,.3׮=t '0!nktr˫SRbaaD:&Ws󀪪k챰PF:uSU)*jSMDglƖ-w?nB: 0HӋ{"#w/^}\4-}}C7@P'OkōH >}q-s3_t:~;:`_Pc#m( :{vMi9+-,l[OwK@WЍfZ p|uGHgbpLoSUSZEV׮={.\}/̔E; ]022ܸahJ ŝh˗׮+)i45=C,EE7GG߼tA:!"IO>ii>Яk^vêUtr88fs,XtIvXX𗜜3.]zFRTy! +W^>w. 8@P>qΝf3FLL_tx4q(jR^|nډܬHg!VaaYgpKggSff9]de'k7?;v$$fCTWzɊD3 t=No؞= bjj! se=V?kbrlpqa.{t? ' ֶ]nEHg!qqSиe.zx<^B3%N#?!!.&&LM (DHKSS|ԏ:Hv4 tF餤xYX(? ̝h4*0pueekPPY(*!)ɻn!Am`;H"|yhY 6,HSh4JLq"UNh4JOO6:_9 oUI6Yrf@ +!IKky&*^N{͛'lOhkkA||pz0 ewCDEEAC;IٵH#˗jZ 55M,TT#"v;n~&5DTu?"d@P4,mc9w Y@ZNSầgزeB\q".Ʋ̿g(x*(́YYO\VVo0crrb߾Vas_QQ'!!}0EŤy.uJkkcEY>c4N={ 8pGyd[%ee*oo§OFg`^"+WG:7 h (/5:LVVJUV֡Aֺ)StPaF8ŋĄsϟK'O>u"4j #Ξ}:π 0?H z(~]{GӒ%D1 zCy4aDYzǎ=@0 F$$l9hݺ6hh *997#u~ 0# u^odmYPB3:6BG㹆pJJJq*{{ *0p' (yxxd͚o} w: 0Ϟmeuu:@BchQ7ҥ'Ť7AmQUBU56}Wnnvt\C@iii[[[xxp<;v}ƌQQV믬Q&`~Ǐuv>i6x{v\DD,1`:{F [7 uZp[폋?z Uku `lsiSu\p8ʕp@[[O73==OJq6Ԥlh|ƍqǏߪYV(8pƍSPa zzRSӴpKlj7`P 02`];v"##g̘| AHt͛7wprr*-----}a0ŋAAAuuuFFF55[zޢ.׏3&=== ##c׮]5:(wJ~6v"${2OO÷o[cfRSQ+(Sx(<}|rfffvv6c#$a20LRRRFFF^^~ҤIǏW{+))c;;;MMYf HHP(Ԓ`4 sw ZfpStt䓓sP+(z4}*02apНOsuc4;w%%P16 GM>}ʔ)[l)//߲eKHH@``8gWWמwvv6229rȮ]78::v3%%ð2ƏǏ/((xǏ=zvС]vݻw/++{cc9 IDAT{aao|Nbӛ?>a?Q8a]'Nܹs'666111;;zxݽc 555eeeq3003ѣG HXo0(@!s55YNx:QW˫@DEL`4:IM͓\VV:sP7PT|,`nd((zݍD")((ݻEGGի;ch>}jhhRO>eLӝ| Vii)q||N0t:L&wzS]]}DTjcPUUE3220 {]Ǘ)㠌EEE9bĈw2|c=.߱3:+++;K|RBB[VVVt:ťM;g> @;2mkJJ[##_\sde7סYQQo:n! eyxآt=Nֶ5k^]9y68`1rd¡z۷/>>%??cw~-UV544444P(11XXX(++Wv0qQ%&&8qh׮]uͶPo55rjhh0~׶W;NTTTFF&33sʔ*9zhc--~^)+Z=mN͍?{vuKKk׬:`̥W!%G`@ӧҐ^^|0*Gcc%/_慆]xo MQQљ3gLuVyyo߶Ç[hnn3gׯϝ;ggg';I$c _Ǣhnݪ^bcuuucQ԰cǎ#,,Nx;:~yr2633ˡz=߱.\qƀ^ ځmpo޳'_klLZZXHUF5@N{y5Je ,'%0 i;]ol:,o ژn^| 6>z(&&ð˗{zzFEEܹFZ[[d2Hlnn0>**ɩYv˗,;;gܹsL&ssswΟq(0}`{`ppRnZ`z6MMd)sB>>#F,\8u} *,. sϯAX '00ե}_u ̧O޿'=///矫9|7pZYYH-p_iՉ `%hhHϯ\2܆: \!B3Tujg>+,&(8XSc*^xQZZZ\\TWWgddTSSӗ'رcq (А_][0Q̠pC;PLy.5I"""TUUxHTD 0mmW%'l|q3`BP8SXXuBmv¨fTW׼`E2uBtp8ܚ5kbcc?R(OOOiii)))OOO \c%%W2͘1}V111F ?>JBBB橩]x𡺺FEEE1BJJjƍ]nhBG Z4,k> bKZQs3y$RcDƄihh1?~իW555K.^baG 6lco߾ѣ8]>]JJȑ#.\;v7oVZey&>>͍ܹsݫ^h… 3(-:`ON-Xq@gH|G>;ssQgLFVCtEEE==8I& GG߿z ð%K.~…ÇϜ9SVVvԩm۶MHHhƌH$#GhhhՉHS5}}QwBt=N`(mE99޽שHSQSSc<.,,m+wjiiu| ??۷G͛N& ڷwANN0.|~6:ڵ}ٺ5LYY|q gJKkQgW$<NN?HHHt:N"RRR۹;=qoߎ=zt{1Ӈg}]rxͨ'01aˆ+JJHAݷo5g>޲FA`Ξ={ި]O7}o8OeeeYYYIIӧOgΜYPP>ìYv˗,;;gv׈ DY|yfOOϨ8oooƞ=ܴiSnnnzzݻ-ZFV' FC3..ܹs%$.̱ 2!(񉔒{׭>},0q*((,^XPP0##}HɓG]#D"ťt|m}}}oܸsժU.p)SL:n׮]=lduD Úd@xVltN ʙٱo__E$6Kʊ92uTWKBBBW\rJuut|aŋ/^1 ۶m۶m:Ώsss1 [bcNȄkie" [?hJJl޼%7e jky{GZYD0[**#8ZK _pBa[ۣxmm9==Ɵ#xxL0zP03S۵k&8 '0iAAeP |XPطk70TZnnEVVQVVqzzwED P,LXXx}ȴ9]_H pJ+++*1 ԀS^=C> ,'O>\JYYu\>~,S^͗7o{WL5JqxMcc~0)) .e#0eeqeeqkk tzAAջwge?mԤԤ0 uj)p8ܑ#폹㡇(`[v2 5XqehYCCǏ%>zƅ´iLLTttt:p8UUIUUI''CƖڬbFTPPaKI+` ҩS;a= w316nǎ[--m/+-y2/55?%%/7N+()];HIOOn?GZZZaҶŋp8\FF͛mm41c2zb_&_F۵?\HuxT*m;z:::U6QXXwnno(IJ ??ȑr aLfKO/8sQUU5rرjPlmBRR!nckN`]]vAs)+lڨ촴bQWWDeX5!!^&Tc>>ʕ1 ϯ(|ŋWS4Eac ;V\CUUipp8ѣs'O/!q8N`HG>{][$$k`v$ccCC偺@ `5V0 GSPAf޼yڟ@&w]8u$$;~G`F>|(IJ~,{ǎ6eeqccɓD2:<ӧFGgzx&$lg, N` eeݼz"*:6P u޽+JMs~~%??q8uOO;ss MM(oNz*:-+W-]ʹkkk>N\Vmm_DyyݡP▖bbjpfOp@@ F߽Θ1*{maa^[AG><{aٳ S<8{Κ5kP?F\\a^_Q))y/^>sF a::Ʃ]KRRB{:mzsL#Fr@͛o=xGŽ]hjQ:jx27));>cyyq::u:B pp8@$ǩ;|x0,|Vs|,bғ'?<}7Jё_@SSu4/J©p^x.:Q;w:0?{m==]]]y$ϙnz}Qs@~N򺣣#?g ,---Xp_?|!&&իB^^n ?Y66RRB.x Fqۻݸz99QFen1P ,i{+-UT`yAUSScb6ýo3/_^+rOJmllϥvvzƩÕ#`^\H vD"a$I~~!$kccmce5n>;t诋V? <(݇%QQobc *edDf\>P~h!3bUq1)6mll֚5yFN6j$-\v9,[vի1cTPasP8_rfʎSQٳoral,/"2MT Ea \mm0Tp NVzIJڿʺwﭛU^^nFemˍ:#66*ݺ: g{D0C67WG Қج11#G@̺`^qqᘹNFFdr-+*ݻvݺD{{3,-571LJJرj3(jjKB§o?~)#]]'Lk l_ΝSPaClkӧػ n 6EDd\9N"--QG3Opw\T* ήtZZ>>N{ϝ[D^Ҙ1j@ ܹ&D"!$% z@?P(T/;Х~@A-2޿/10Pwvr29g\Fb篞AAOzdgw@1?yLBB^[kyNΝK&4t ?L3Yyy]HȋWaZ\q*!^^<=3N٩[B:h4:.LF9ǩ]]'zfTի32:[Qa7P8>y<'&&w&Rc5A|jŁe.ȈlX ~@SQ4NGBB*%巀 Gf@C,O7!DEFam3름 IDATeHY3͢P3g0 êCCSHMӧ\J]] u((*LG4uH$̛g:o9tZZ2Vӧ Oэ\ HP8],/?TtDEakJJH%ܼ˽teC̅# ?;y󍀀Vh//7hmteˮPgaEee'JQ]]sRR(A8Zq1iǎ[򚖞iU#FK9]K Ғ=ujarLL|kFsM-,_Y(@/byݭPLw8ZuURBڳ'@B§={'%^ܒ @ 1q2 n쒢g3'~Ǐ?lhhEqsmmu3Qa+P8zUp}fuNlۉyQ8Ť={"|xNRyLa&4 jm{'jzzp>|u݊\]utQG.55T}) Nw}Qm&Œy`<|>13"Ln;~<^P0Q[[n>Rk PA p-Yb>kSuf.GX3vZccJ<(8˗yd?_~Lݶu.oϯ45UE}|Ps̢E̶o@wb̧aJti zyM['G8 45EE32 pu0Tedht9s߼v$bJSx@47b<8~`svaX[̙Ecv 'Aؐ^]Eg&?){W:;‰hJl9wh,Nz}aW%'Z[ yt#P'a]O7B8 aNBB4Xuw̙cto<}}E(N-?q B%Nxhaq 13`_ 7tq9&c\\0# "\\9s+ˋ!ICi 7#.n+?vH,+˛ɨ<(8۷_PR%%͛o }$*޽+U@UД|28x(P㸸x1s͚kQ @4F|[ۣoNĪTǏ<(8۷EwwD %%oX=Khhh-*S^^x۷ߚ;ɓ:5bl'T̖ٳV>>nW`pE?tt<L[ MYYS:˃_{?.G;yyt:]CCu9y99nۻw|i Z`,oazz 0Ng0No))=p`vps[ۣ_Q'b18NEE2/u?pŅ׏ )M`_͍WP:+kپ=|`++턄cǪN6sQ0A!?ʕ}?LFFðojPamP8q(*7 t7IK NXJg|.-[vz[FAt9EEwՍÆ NN/>~(i'Qa^22"\\ZAXu^xxx?~u 6/-!-0D`rqXBQUUշddڷo5k\ g͂O,FQQu $$&''p v 1yy;weKN0wя₥Kp*..;v lka[Pa /_0iiqnn22"{x˖-fff :lohhmmm‰\^^<7ouۿtlff毽p QSS+??Ã%$|3رjwXqD`WL^RBXfd3NF<<  'QQ;vY3fhn~~ X/^(---.. 322v3fLzzz@@@FFƮ]Okkk*q7''/^`VssxzmVGGHP(4~NSSs֬YiiiAAAw㓑0L?,77\t6*z5yWW'2;uYz{YY {sAI c="#7HHΘq:3+8x(~;򣣣I$a4̙3BBBfffܻwАcPUU% ܱcb&##؁BxzzJKKKIIyzzR( p8ܕ+W%%%:tu={0˫zN1[fMlllwQ*$$W@@3$$?~.ߟ^/]ڸq+߼y8VTTԈ#6nf>|.&&v؝} {Ξ}ugg ]8[lrss4YWg'W2jkkQRRtuun`|6յ(*f _g`8oׯ/wFVv30^uɒ%eeeҩt:ŋRRRw[lla999ヺ:"|␐ ***t+W_S~eddsN:a1 3gN]]ŋ1 jhhpBii˗ BCCCc1ZEEEk*i[,--x}BB#̏=ޖ.}8B!!!:::4MvvvJJ޽{{n=شiܹeSݵ XLȰzuʕAS @Ѽ((xܸuv&+9* c>z ./:hw]GG'++ݻw۶me>lOK˗\\\!ۖ. 1bW :Eܮ]E ?ؤp"H ퟒ:::WoiӧO T*ӧusuuuOa*--e<700~NNsrr9B"h4Z}}=Jx,zSQ{M]K ӳ:UυS/fddd?~LӧNzС}󄅅l{'Otƍ[LkP8c޽LANl|9y򤰰ׯ_R8,񃷽#Fܽ{ǏwGvz??CB^h}0!Fɉ\W׏#vaۇ֮]ؒo``о~-l;;ѣG_zB4Naa,c8kk낂v!!! 7t|aXbbbJJ„ z=VNNZwQ{M%***##vGf6+''aoTwҡCW$_pʕ N4_|i(֞9sf/I>sr55a.K_t8 .ddp=ؤp***:s̔)Sn"//>|s s|sz~"QH^677h[nUWWXѱc;88t/.\qƀ< z[\\\"""-,,C\_b8k.Oi?6F~tHܙ3O?c,=6>pqq%''_tv%%%רN4rrrǙ]$&z\j'_P8h˗oذ!44ѣG111-_3**,..nΝ=7J&DbssaQQQNNN]x0k֬]v}%++ٳp666wܩ#?ӧ3g,((.j_Ry{{WTTXYYDDD˷i:XZZ.^M6榧޽{ѢE5X[ ?6F:x<uqک9rѣEEE1 vZ]]ݩSz=\>F]x߿~/_˜99P8 nnŋK,}?=&ؗ{N>=j(2L#""deedٍ7Gcǎ 6LQQܹs:ujQP(uuu˖-wsskll.D--(2XPTT\payyyv*%%՗Tt:a֭:::~~~MMMwz? .@wZf _]]]}%$$6lsvMu~vL;y0S9-AAQ L~q:UKѬۣEEEYۥZZZm&'''""2|ԗꃝޟ9-΀%ms70;,C+m'Uy޽{?W_j¾©~ 49-/>A0yplNg{RRoH=`f-ֿUUգ2ຢvrZZZ\j*YWJJgd7 KMSRoي nT*f28AKMM3f'NؾQXXx~M `-V,[vVwNY!`OM75U*aak~^JC05N)9N0a„N3)III]pa@ﲩlFW?TT$N~3`v (+?ٽ,qJ}BY$F_:)de75pbcFFʧN-ϗW$N4}7VKH`9BA0jENg>pr<tt^nvaW{YF p&(0,%%#tTPP}ɴiPÝ8@Xoժ` :`:z9sN1Ԛ)SFBu5//OâDUUúu'M^r<,Ǐ߾}uJ>I&)/'i­x|gիb?AA::8t(vϞ셓 C*>=*ցm-%82VBy9?L0 x:/oۓ%CFoB p<p-[N  (*jm l3F\\P_GeeAAwrI;#55#-w0@Br%ĉx"=}Ѣq;_ IDATȓ'9pQYZgSIIEE4ZS b0յl0jRsYJ{74{Mo335 Wss;ʠ={c0 +/MK+HJϗ nm3yhM>|_BB8H8}z+WWJ||"KJH枞ƒ0Aɓ6Lc.SWV46b͍=" V2'_ߨ3 tU8;ټf ʊ**KIc©#ii܊O칻cU[[v$IU/i-&bC)q'k2 oLK+1֭ubCv6mQ_?H)6yNhhŋK`[22 磻YZj;窭-;d65Ue@եեVBIO/x,;))ѣ[[)(tLkb spM=iӍ pP8 ڦ#G\\__!2r?~J{"Vw޺잢P߾t hh{jp aa>D/45==ìu`mlر11*LLza1SSUoH :C嶴Դ0*1sb⧃c#45e&O֚C4}*.&Q4)%ػxgVQ)TRڈ,[nhC(keDv)i}73ܟg~qsǜs^3rygyDʼnDnIm[#?˼xXuLԚC_&IEEiTEqf{>AQDCC&/LFu532XX‰IoݚwGǩ7[bMD}i=M԰a0v=}Ztc줥`A\ee'V0b9SWy37NDĉj'(jcs˗rYY͛F5K\W۷_xq Ypbݻߺ;b։ͣG3+4-NSyϟ{/S""Ոr<VE"Q6m1c>Y@ZZHg9v얠 ߾} ,1` T?nu DF>x8-mReeCVW۶] Hfn>z]zr"w!ff0c]uk2+u뫈ggsruл>W[ԾU(%~t⊨(Wdf߿뜝m`:] Aܶ|ͻw%wzz*!"!!dk;vBSSBBnݛ>bܹffa71~WGD\ ~R^^{wjRҳs8H\\D!S Ɂ‰}T~?H$ ||D9΋.^+]F}}KpMi1V^޷]R<)ݾ}^dn,@--0Ossۺu1F)l`GffF&*A` kk=}8p;O?2Xg؀‰!.^\cl<84hڕJoM8 )gU{)UVVCy*8fk+ӳ]LSRRzzʩ*X'a(\U8$Tߺt3F͘1Agϊ_? =az捓qPKAAlj㠠`/M3lxf &&~~ϞO KxS--΋=[܆ //Q^s󔆆,6<{ms`F ֓'oޖ s`x܄ *qr9BtÄ b}y=N&sgEIIΝWUlm'̟?KHψ{r}a` 'zJOysЕ+,>tN;(_?EQAxxBBnnQk*%%  o_nY3k*co70P?s)ٳm.y{{ jnw'%=ۺ5yKFF#-oa1SNBB|s6msr6|8O좮yԘG߿ 큉fNλ-[X~S{76"rއ2cSjj23=/[jjޙ3Npd˖O gԐLo_zQQ4Y*SS-/Y:ƍ7ݣGϝ;T@~D0xóo: `6(1uu.lfDZYY6<5l$ {n9z cnli9܌7ر[))X'B'©yŊӒ!!:/Pʕ.=OJz hK ` v6l0sw𘩩)uTP8 L9rѣZKN'khx6FyTRyTd|UU7$ӧ7o9sƉÂ99Me_.5: WjHKȈq1wwSwwK/]z4$$k$K tg:Sce5ȑ!!щ@4p ѹqtdQ'伃 /o?FO}^It<5t8CCTU0z֭p%%; ԓaQ('ŋ˗==ȑrsf?x1&ѦM۶]5Kv´i#zhx5&a`G3.0bki׼e0xP8OssۦMWq9%/++ 'h6O-rr:*փ22I&S=yѣ?~TEG9R]YE"Q#u^wpY;P rwJIJZghu"F8QC<)b4E;;璕ݼrFaa9f(L[@N- IԢB%p]BS_xss;#!!4fМwP8hDNUS?^4oյyJYYݻM_zgE9Rl]87nq{vK{ӧzy] 6}҉w+'oxþX4q.BC~ ٜz{dby S@g557n9thq_液NQ=[܆t>nncb:s 8ݱ/KÊUU '8r޽ Wu#'Ɂ p߿rs90||XŸ?6߼Y.{އꚑnDD0z#[us3^^2qǟdO?I9st΅ B&Sog>zԎM#j= 1O+/n` d2ETۿ~쨤Ӧ :+{Tttymm3 D"^QQ\FFDN T k7cƨe\>DG.\xiQCC+HP(^^,ox'))qhEaa> Gǩ7""ڵP\iH9YY>BNiׯo犎=x5@Soɓ"„ bW}ogDAص>\g2쪶36;p۶yVA{EGsr>  D#œ`5]]57wJd'޽1=6pq3ѻvYÚ0aӧEX SffAxeFqJT͵ d? OFRcT~W55[u溺,Ͽ]\"pa͔)0hg۷ϻqE;BAeeEӧ߳g15괘_.]8oXF jj;w^16>0&ޤ/}}[( WN mm'`3AAKUW7Q;`t$.y )8V_JKkwٳmH7SخLzO#װB3$++s͛N0ũa򰦦ִOuꪇ C[Ȯd2@gg~bii&Cpq1ZpW==c߿H]]\@Gg(!/N{ 7ޤx h._>)>I"OwJȺoVhT--΋;WJ}mbcue3rCC˺u199.Y2.`8.(ho[<)hqq{>L6t(44 vv~~F{q*.-v츲pH]}Wu8JJv p҄o|-,M!$KmE]WII_+8:5=-.=պuܹj'ʒw-%'N܎}q`>x1 `ڵӡƌ…ݻSo*ػw֡ ?NK cnUW7l6 BPԩVVCaV=v KaA6EmBd,SeH7\..g%%32$zHrj ،&.=5F pzo_z(7TMt g+llw^ ˨Qob0 7NׅZ : Urz]PP11(ydHySzy+"]>|(۽;D34Ծ>f?#J&#/t鹵8 nHćؙR)*TyXAU"QZeS[9!Ɋzzqh.'//v?8`ˈ|EE}UU c2EDWu=++D"H(tlrh6OEEoAǽ_|cM"uFrϔ+W^rynzm2C`Ĕzeevv$fs / ~}gf6@}ϞT++4QEm.*‰#q]TVVh.k~~"0c!A'N7ЫumBQt'&P23ߖP_#%%_۔DyymZ>Z2g?V3+--JEdd<^sséF ]H$JAKaQDDZ<{ΦM&&_4g.֡С hH\W8EF>X ,JCCfǎ۶]B8[%L][3ڵP{kk?ovf{Чrҥ}|,%-]0L&w.rE==c K:VM<<2B-&˱Z k oqr:ϋL|QLjȈ" Jyy""wV />{4􉲲X ]Sz+&?0'krr).//VUQFaVZZ#"Os:5m|yB )t{CQB!#Ν/li)[nvLٲk8[[I[ﶶ2747^gQ666X腩VVfo m`q9L[+YY_N +W^h:u>fdbUXG`94z,.;nٲڦ˗=zI&mmmڟٷ/ԩ;Ԗ%*Chm%#*!!4nܰctt&LP WzHfU‘.uѣ!!vbXbirr"yy_N ;w9 .;jɒx<.%SAa w_VDLAQTTT@OoرJc*KJ2pWX77Ny3g Z:k6֡XHiiml wß:NJ gj>^䤤Ѕ kXᨩ 7NYWWyPqM}egsؼ$-=Dp.*7 ?jj:?/WVu2t~~ N"(dd͛?/ s7LDEkRÏS :Qjj`\[P--wY.GE˗߰r @ pn A۷oNNNӧO8ノ|H$&&&?kAp8;͎`ii>}D}AG6mRUU>|;i)ьA]]3,>Ɲ}|yX7!!,t=F=.wp>鲓Nz4p1\Mzx \ ? ݭN>"2rAʕ+4)))c111??67nܖ-[<==qww߱cǘ1c/+..~UVUUUw9Nj/}vٔ__N:.!o`";ٳuNtxIgm;=ENjqqq!͝ -IΟ?ÇѣG栠_ŅbbVZe뛰}e26AH '-ǏeCs*7o477JIIR}m۶IIIQ/W7on̙3;Gʕ+ӓ622:vXjj**%Wmmd>>. ~|vle0N}`g0}[.b³g}a`;?I999999iiiA` @oj\c#ݖbk||AH$2AaaZyy1:HMMUTTBŋ#Fhhh@WVVVFF׷ ++KYY9''gǎԆ[!ϯ DyEE@Ǿ 'M M卌kc3>$ĞU>B9~֐!C =zФ7NPPP^^*zxzD@psiiiIKK8p ::ZUUUTTtԭ^A=#gllhlO&}1wؤuyy=WO .Au\ pQNuk>,;;ח9888::>~.\۷|===?"biiy;w=:??6mnz>>gΝFQz,{}}vٳ{NNN˗(VWW VTT G :qㆢ"?S\\)IcGD~EUUU>}A?>}ZQQ1##<33SCCӿaVVVVTTTPonnÇ\ ;w|7o޼ykeW\:4(+$'?:,y))/{}Yffa||⨫- m/ztү_^:tP99Amm-//?bbb7JҺ@( ȲejkkϜ9 ŋkkké'=W EUU5<<Eѭ[=]ϽwܑlkkCQ4&&f tz vvv3fs~~6d[hCw>=#]M;el #cxY0&/1#5A:z=i}|q CtfffEEE555N`:t{x<;/шwylllNN۷RRR:611EѾkhhC`[l8h#Gԉ ?ƣF+Vxn455ÓM( `.--oݺe zرc_xyy?|`aaI}xG]V cAh^A:+..D"IIIp8}}}A:t%666.]u떝]_vBUVVF&թ~-ISw9Zg>؎j//=[lbS`zI6 n)xxmmtlǏϜ9ǧI))V Bqq1{vUSSBILLtqq;wnee%322,,,:#H/~viԩS߿<~P]|9u6sAp8ܬY9jذa[XXHsW4dꗂ|z-IJM}4uEL]bYF;hjjjZx/N8A} .+=dr|||PPP6P_܋ ˗NJNdee —/_gEE^B隓پ/,\Ml*#o8pn)yh0 q[nQ k~~EhhhǭVXuVjSI377ONNmmmyJJC󵵵ǎxzo(Pzxxt|=@Xpĉedd:aaa%K\z˗/>ܴiӲezM՝um޼͛^Μ9SSS6lӧOlbooÓ 8MkǸi̪ 7%%4##:4---MMM;v@cϗh^A:޽{˗/c M6D"+VNogɒ%EEEo޼ٶm[dž^uw{Ng{,\M|پ 9X:cپwX_h8궶(zeyyyjZ'''qqqIIիW744tܼi&QQe˖UUUQ꼼)))47omm={v`{SWWCQmԩh>6{}3O&GQWWHIIʎ/8QQ_d ۔oRgNK@/}D R\0 EѠ %%'N,[L\\Oh7Ozh+HyHPz5kjkk{IPYYb IIIyyy///ɶ/mfN9;1N;wWAkϞ4`5Gp__;9Dr3ee>#mu8oW44NTlthGs睊ʦ/ ~6N89DpJa;[lY|9)z)'5Q8(zEEݻS}cWN1ld[ǏJAϷEcccnn]]]'^^bk,gs \ʴ @G_|9wܪUv=Vԩ}b: bIFV!|MYY,`6ohmm]^^V"""]_FIxy|TMz ֮]kbbuIdz=\M`Ѣ8aÅ!C==gbA‰GKKٳa HܳgϞ={LXXX_`N@˗8qHd.kq$ccJ6A3'p5 յlْGts3:- '>xz"..TUՀ ȫW&OUg+WNik#ܙ""¿l$0@\t)27.,,7AtKBBϟJTNr!` 0XV_?cngqQdh.%%|k薤_vvTUN^E=#lsxx~: E􌃻{XDD &fq{ssm o\T8!<Dzak^H׈ b@gx<.$NUUjŊ55X Ijgܝ6mD/p0)`222XGc55:8ni!(***8i CVWgh+J h7D"w݃9{yΜ# FFv*cW׈--^#))9zhfbȐ!XG3W..߿Wjh0{0@|Ə_BKyrrܹ_.[1z6 aXHd1%Xp5K[KKg:w</--TdGӧEjj2|ZIEEEEE b)۶]iܱi*~Oְ;[X4ޝzԣE߿Fq'mm]]#Fwq1:}]cpo^u~~7o?JGGIXORR?XLee5g45峳\]P5!RRR 6 C:YY3fɗ; 1 d]p] rPPA g$$< w40P>"UT3nD9si=+p-*U^~OK aS͙7rܢE{7</5u"#"6>or륣Zss1QZZ>>2,QZzC7o@-+WUUz޼cge+p.<,,, [Z}^`8p-5+z}׫gsk֜>]3;o]F.Plj__]R\]#jkpP-UUiY7>|(: A(+Kfa8ŋǏg:hd78Q M(4&Ѵi߽+IHp?vNLL ǥ}֭ٳ9s0CnnG۹3 t LAA>OIKLV&&#>ʸ`ݻnْ85;o ݔ)ׯ{KHYY''?c]srǀ@ "$0'66[X6Rsgx{׆Z[ɰLy'mm, ի^[Z09!#}>KJZ0#.H&4iYڻw, ڎUXQVVcoj(Gp[/UVVD[[ Ǝ=+23;tu1c2?#V#Ž.\ȵ m۶>NHxuӿp8ܮ] =|+'hhh?-(;V3FefB غwou[֭{Ƹoh޼qiiJJj,,^aP2e46B]*p0ݻZZHXgFee5ѫDE8i̙~*(Ill'+뭱񁘘G&&Jc^Çf06 IDATCr$LMXNcV{ۻ7-']xJeed8e%%<:c/u+Vv~a{<W#qqծ^^7oN9Srjk@ԉu3BBn`U|;wljKE镍?16>9&fux$c9ߺ*4tErs;svᢢ`©k ݛu`KO|Khm޼_1]j{S>>q 35:ѿm-XYTTaeu˗r:sp|]FXNڵ 9ݻl۷?..3gutTTRS_eol!--oƌ>nBB|X'W#mmūW 9ϪUƵMIIONXZM\W<+//zѿt97SVVr5k[YfemdGGFd۾r钇e'ϟu@OC-zt‰}6:2n]tUUCd /d:_)--oߗ$%;th1}?Cz ox f۷_Pq\ZvonxupMVVd˖9N: rHWRRs.Yu=^eKƍfe!,-u9jtxYYk/Y21;ۏڱ}1ajZچ6k FF#Ēcp5(z&1 +*+uu2E{G\ ">tHM35=K+;v:Q}"AVVtܣϟ:,<gc©3%|}sEAK 0ɓc/(NNv-Ga͛֬1C+3sX'Y/ [Dv;ZԠCq` ^~IJzu`-I>>wYD:T|֬1gΰ{>L~ƍ7QQǎٱMbo{%(:o޸+Ϥpj`IMMZOO9!S98Lٹ3ϟz IHxbpY/^e涽{ӗ- gf6DƚH.Y=:<<8`P/xZ~]]3A©O &`X½{K۲jQL;RXX6ӎH//_~33;SV ah Xv^pmeߩ{c ܹcH99` > ,x1, 7sǺ2ϸv-R&wH$Jhh1l?{{C +~FKóay\6%&&8nܰ۷ l@d˓&Jc$G3Gg'n=Go_͏͛-׮5eucS]ݸn]! /_~./aBt[TKK[`RFhT+"8[#l ~ؼ2'睧+W=u5k: m;w/.yC'&>~kQ4&x8x̜55=yň˹(מs-qp: t [ⴃWĘNQQ"S-Ntccx/p `_AA7=|挓YAMMz]pwA8/=yxy::5Y\\ܓ'O)' a;ff}Dmq3A=8`[P\zF~~@ܻ!8޽ uto6KrQ=q{޾lehh@zmP拊r3爻HW"kf-m4HI cp 8 1,]RS^^ce5q YرYYo~o -nnQ^U0C?ѣ u3t8 0 0Nt&,M-:4mK%%ՃOQQUÇ.\Xn zHWW݋u?x܏X\ '3G|>aED2([̑On|ci$$ėitؔMu93,?<<?5P81,LXg^};x}} K^mQ |jKa.5ml׭.,u&S.Cpeg`6+m^)׬aUz5yƚ5ӷocY߷jm%mxСs^ˋI>}N`A}ԗWXpOɂq{Y=tʳplm~DF6gܚ0H-xX/hi)E57 K]3 jVW\n˗/RRR H߱:>ax[*u 2d}=Nypb YYӧ?<c[oEX*K=BEE$ BlDHZT'*D,03?܋k۽'f=|NePP>YqgQQ\\8L&tTi]]_Έ'{WR_#/eÆT7JcPUUZ"Lm~]o~ݿTGZZ>S38Q֊sN0*xw?TTd98(]+w',< IJ7^sZq[]ݓ99bbTv5~~V._<."%))֬YSZZJ6t\iiiFFF^^USSCW |Boo777[oo/A(*!!ARRr.\3g++7)))zzs^pa@[(,,egg?~8Źzzz=8Hĸ#"L%&ޣ1b}}`q8ku)O~; zz.HH𸺪RܳP;߱ёrn,*⒜wر ooossoѡlٲ`Frrr~?zUUU=~LJ|͛> }'=e```oo_]]}A++Aۚ~Ϟ=;{g 111999ANdڹbiI@lj׮:;E&O/qqX,,t!yZS<AATK(..VUU]r%AAAA7oUWWttt/^ Ǐihh ss碢/^XPP@>p8rՇV<O$;;;---[[[ɣL#5ɾ}p8y1U bbbVONN %ٳACcɮ]@\xР2rz@ljhɓ۷{q@AAP##S/^FDlj׏*,|s5, ج߼yckkK>ӧK %%5hii+**Ԗ/_H>>̅ռ( Bmذ|Ab \@@`ݺuwEѣik| 4o,bbm%!!˗aR 3ea #wD%,,.jhaeu +67+r::pg ^ooBĪzM\gwFEEx7oFhӧ111jj#L䬬$H$K55P(UUv<bikAOy8 gg>۷*0℆EmZ:rdg?~w3f{zHKKT.\xP\6,̘,SUը#'YNN|pv9S5{{ x}J0W\\hR GlYVӤ{0811Cv$ c6o;  A} p!0ꦣG98(Y3,SVViS''s^Փؾ= xv=>>O|; Glj'*Ǟ;gFπv`vvF8M-}}DGdNWבwݙ6\ydbrZQQ;b,I)0\\T׮{wRk+`8p Sh,KlπEp8  SKDD_#"Lf;..墣͆*7{6.)iΗ[0EѨ(S4tπz44vq*ΫW>}jܾ,xCQ,, |lIKKO/_FF<%) wj >F s…~TKL{qqwTƖIǣ8 1'7ѻw'9cIC``ggD`ljO0::twWge5#걵= YYшm8w^?)1jkkҐRZDPuaGƟtB9+VYj.q401!njL`_r֭vvcc1iss3:N]]===ۙȑk))Q<~;,Y"8 ut[Z̘5@f1 =('vqwbgA9 ׯIRj$zݣGU66n\\8  vR_(Yٷ/ c 3AZ 4g; Ž_+3qL&2KKyku޾~IBCCIp#ׯTT ڶMb"wp!wl98YORܰ/Ih*(Pj0Bne`up@ 1`8F^~SO||O@˗VS DQ8#YKKמ=6o^# wwN$77kn9sf&>>ںv:՗ɍGewVhhyNP5<|Dn{OThȋ0Q;NBBD"˗X۹sw3CHh B!&0@D"2//:Y(ׯޝ;ϥ=:sf$/59-͞eK{IT[۲e qq99Σ>VT8q=k{(͛TkB88bb ^]\w&d`i\. wX+hfEF3GRYwٙƖ! ec> 0zxx!Y̟σw޿.pwW_`J SC= +)(ի]]xC,Minϕ/-ر-%%25Mq(--]lC0??%:ի/x{gNv%%yml{z8 yA Qe8Qz,͟ύ̎Ss3 x|KvV; _N$HJRj~||l c~ќ+:{ݍ5#NP(rrKH7%РO4m ̃; 4hljG0,ffAA7sP$mˆ3\h荚mtt"ED8'1󳧦66vN]zԇoBPujq17 ~~i|DD8N}0tĸ31Ysall ;(<]]=H#pg믱BBBLLNɉ&'[Siδ4fS4Hyn]@XX{^66멼z Hv#XƏhE؇1A:Nt!pMxupQllѣ9pgd~49k?f^ŕ+瘙; E;ww׮s&&kΜ腨(ו+v?7Pmݻ6_XN=///M*ɚ: q"#M\kjTQ9I_,0ft/@5lUfO:r$,503͝;A@ x BB >n>qˆruB"BB tqQ=zTY<׮9ѭ{;=}Y_?(V@֭AA,mq--] p؍餧?^xjCgӉFW*q[TŋZSBz#O;xP[D,v%" CWW5@h4JW͔h66IZZx^/j.^y ~%K~R! pz +nnZ[b>IMUR;8932xxXuuO{W7vuDGYsǎm))ٯtⷝ,MMq$_N*N42ffmorʊ^bgc): X̳gZ ͛jMIz55ZZ99˗g,, zzO|}z{ deK7ܻijLc~h4t͝;FFNN[Us--3(p2##myG*jLǚ]Ȇ/DO]Dd*èwoҥBrpgL/^jiEp{`_3 FF˖ mWVV1I{ykkKW`PljY8[UT D`{A;NX,f2D48qgg;}'PqkvÇl۲ Cqq+W?=61qOFݻjj/(+@Z䣤EE={.[ZESE`7ff>; #rVUsE {f#33'߽OCkֈ~ԈœMM`(}[U9&饧?619q㢋q86,,ex1$`_5452ecc,,wꔅ rNDKKBv+66ư0+W޿WT }w!ʊZX<* qkCzt`(g텅9<;0Vb<@Y11n>|h;Gtqdpg4w/˅ob1p v氰}RVSlk{^]=阚j`CWWOw7QߎhI~}66I66I?~ tn//-ff:Oϫp`CvVaa/-i`aa|f ac;wL H[$(@[Y :NTQ1ID"]~w|}ub@@A>D-F<>,[..h iiavvwpqʆ1I}-3qZqL11pㆆq8۷ hZZhh2 dntbi6lgll: , n77…|EEoDFF+/\ؕ4(}6 `0KKqiyi0IAK+ݳp!?q&MCÏƊ^z5S}KNׅaY66ζJ@8}JJ)x|Ykh,}1T ֮rnׯ`)OII>!,&M$2-ⷲ?Ӌbtg;GG+(/.~wNN*{x{gSt~;zX,]UkB_ w9vlK]][LL A'閖.DDR7/o Gg0D" 9%ΝMC(-1AAb#ye˄ⶪ**zn]@XX{aYw{7FD`F\X ;uÚ$)ɷybP&q `Zj.rbaaNqAAŢ&&7n\o9=ͼxQiiyvZroWW5zz'hkKٿyUW7f} #NfbNNUڳRO"&Y[;wCYp`_jk/{ LitII;7n\deqА**zeE<};tvUNNLȹserSlAvy{gjjl`Ff/~}/p-y '0zR7靬w"}N@t;:o;Nm2vvJGdOi3nΚ5G^nݳ|eg;\9 ܹ2MMfFTTtu7m }3q yK3A@;N첲b.S! @Q(]=6,1DF bŜp-]pf;8DwAAjpǙw+6l>v,L]jT@FFx7d_*#tMoGID37wҥBQHAaϜ wgTKm[U\k`ⴵ]sWWC45FcH))A@J8t(D"zyidz{ RSř;΄|hfv(VXx4t eo|#?mv%ffgݛr;)!a d8K0=t:- QVV w`l45tv d'ٳq<i4ԩ[vv}Dw nT'ZZ]e.#jm`"Y33lp8ʊ#A^Ʉ_QV]=wW wq"Hef>=vLuR ??{fbD">Ujk[~CAЌ-[V\_}ئ"hgf> 0&&k޺^QQ&!Ab˖nn]OHOwi%8=5 Q[blGr;8}[qɓj=Nn::Э 9r,, xqSS mj =o_ 77YL8EEIII^3Rhvi]ȋm&287.RRJ/*r;40_BII^yOߢd,22Œfȧ&'%"/,՝:uS ,c}IZZl)kjoܸ1iBr;vMK{fƐk(X]}͝wTddLΝk M:Nʒbbgς0{ٙ44SƖ-+< //4)|YuwTTf˖h9/ڰg޾=ry:2ϝ;RGt.|K˄?mm*+llؠmРKJQ'Ұ_l#--dd[VVKUy@1tP(Bz&cef:ZX[['y{gRk/^|wE^&'Ty26w<4>ޒ wܼP;ff:{Wr*|}~m ۺI"%%0hudoD @sz CdbNI0pBCCCR ECqqqTT\p вe"44G2U:t(k۶22s2ZJDDQH"qƠ]3;Q P/j{{ D ~wo ˋG.BS 3VWw{+Y3OIIlDm3ʘ;N w+&$]766dk77C. w"`ff`H+)7Ny42Zx|33;c֩TlO!!7 ._. w??KL{{ oP\\H)4 J :<|ʂ?)KkמQ]3}vyFFIO yĝEEo#jjN vgB.ed怎|Y{}__*$n#زʔ 3Z"zzQopuUCږߟ>5fHO# /S4 RP߿V (TDC257?e"HJ/?~<\#*Oljeٳwׯ#PMڱCʕGY0+}SHJ_\`YF}ꦌ )40'繼gaa.X rh/{zء>I:%O7lݺj Ŝ:e!&md[WGh45u"a6@㬀df&+"x}r4g=JJ#| @-FF+Xcժ}}g@59ǏO55ͺ]]=SeWϟm;{%JK dN4${{R7^=APcb}}Jɉ۹s-EۚY13ә'a +loEF glj}ƵkA 62$<8!ᮎNDmm ܉01[ܬƠ#0𺍍脼{MG$ CN'qFF dg;Fs; IDATF#}D\^9#㉉;Vrq@DC!W '&" A7ٙ.]ikc9j B"A%Tkܴi?,)8iiaD5Јm**Sfyfi)'?RceNcu5&&={6dd:x@B8#wqM޽mmYT]]#jf=̢MO$D"鹔R{ C贴4 51((( /ZDzx\ 6N$'eyy٨(D:N9%*ʕiaoe㣍3,5qqpw?K 1 *\?fd:-.Ns@8pPBDErsl$ectp6 ''岲 oBʊӈ~m(rqQwDGd< wTW7m=&\(*$dȬ;uw"ڻwcnwQ9w 20Xjܽ{S6,8,89F3#y˗ [gIAA>jc C"i׃ mm3t-En` ==YvOt괨!%!QH ZS~ug(CC wHS.(xG񞞾'O |7n.*z`@K;Bs(E5'ŻwuTh)~%$4Sɛ`ތ%(ȑ`otp;N4-Z   Ϻw\w77K_Yݍ߾=;54g8ee W٣JCZ>| aXZZH$SSSfffja -@ χ'X,ؽ{ioR3.%)^DO +ꪖTUոaÉp'qP( ^I^~ݻ4֮2[=II]V8C#lbŜ}22sN?lllc*++KWWŋoN9o߾}˗/Č0PXX;P(WW 7i'4ɺ'0-_.\XOAayw&Pի8褠 玎_p@ʆӧoyxhrse߿wE4gd8,_. w!ֶEEG:{vVVF3 `WvwwC$$$D\G~ ׳g hlܔ~Cb1f?HMm@XX.7sg:u$rp8(Ӹ8G7T~{>Һ@Ode󘙭; jjuu#\Dxr/|QѾ;Rk׮󷶶BtwuuĨ(IIIf͚R 5ļ\iiiFFF^^USSի!R\qqPYY٠PIIٳg\paΜ9z{{ܸz{{׬YAPKK ޷oA=//۷srr ۷ׯ_L"۷tҦoҲw= }ŋAAA ͞=ܼm=w\٭[R~(y/P$O 74[>w-{45#Tjܵk:''/["/ozf Kq~}ILG~~v tthh27wϼy\l][[[EEť%99)>>رcߤC__ٲeq---!$$$$))ITTt !yÇ<<}Zti RRR߁BMMm剉䃝IHH u! xMV]]K.paÆ*iii&&GݹsG[[[ZZΝ;544y/I=z~cǎ 6ecccee5Loy uobbծܼy(L.@ԇTh0DI#Bo q洪PQ܁iff~hswW>/^j. }i)ſ(L _Ĕlf;_޸qq|%==v D"12s?0QQQ***#/^͛vww=}4&&|@MMmK݀A/ NN>Lkkkyy9VWWήXlRQQѝ;w'nnn  ?~{La##߼yC#y@N@>W]]M~z#t7.\'+칸޸͛nf,JͶ߾]pE rq'p'ytt4QP/)M 3yxXwP;Οk95۰X qcmtHfB bD"7oɁ -;;ߤvwwBё3 G[OO/_TSS H]]=&&fժUX,VYY911QXXXXX ,kddTUUko$..~ݻwk9L32333//ׯ_~c|r3* mذp"')X\|옾Ν稰0UX1m˖mlZ[N4mmIK()Iܻ߽[QPo3-- Y':4[[%=4zYaQ]ݤ^^%#n Ki111챱666spppqq;r0BBBLLL$$$DDD[ZZst0T;z(VRRZd Æ ~n:deex{b^|4dw&kjj,ڱ#(-}l!))7^e:JܼIH[)(< w!~~\Nw!\蠊ʉ*47#P&X__aƐ-[&~wuMtC1 (1V(;AAsn|{xE%,-ܮR)M@ S{077ˢE%%.ߩm9thXTC ܮ>}+,x׮up\rCYYkלZ A߿ƍהnN)-ׯmf&(r܈m11%ߧt[cvōɔʸٳw?|N妕܎SccGDD,@}33&&44; fY[3g`;L˅]%P!..3gnSo '&7M%wz(+KZX$57wh15]`W:UVilrwN A?ܩ|FII8hn44IM}x&싚ATTKkr2e#c]]|nnjKv8L!AAOT{=M.4u沲J*-]*43$x:=ú42y.=~ʹpĻwuauum׮9-;P ǎ !!7(=;t ##semf *uP(TD69qԟ2L JJ[8p L]]܉9K}}>5UTZA$3D54`ۭ_CC~YY g7o=ÚGR8UWWm6fffLXb|@ XL9R|} YY)$JO  "=@ BP;(Dĥ ' j>lOտ>t[`(+W-*gf&qUO/ G1)xyË~Pu3G[VV zEK+1#Á 0srxC#("b||U,X<;Mصk >{.E[acc43=u֯_m^ KAv>,q>v~Cv bggJIkd 6?BOvjk[ׇ;;Ys"==v:Tkv70޽ڟr|ƍa wwrVUU⒒ //zgϞ={ӳ+&&&777'''??? `3ͮ]H$+!qs+EdAQ}}->G8ih8!ݍA侓al[OX2Sٻwci8-'PWRRpsB* !*-:9sfoݺ vH\moLLNɉKkFs)))s]x#G=A---ܹsQQQ/ ,(( ڼy3//:y@op988XLLlժU=8Ӱ0C=jk[m M nĉH$BD}}~.@2!A??{J.#ؖ0 GDqqn~}@Ztx@i߾EDQ9ի̈́zee7o=|X _03؆쮮ݻ<<߿)6 Ca=z$##φ0o>>? EP(jÆ UUUK.?AJJj ɷENLLBBB?ՠg]57w澠h+³TUĔPРɽD!8 u@nnB uS/Avc*"™G^5Sһw=]\. ~~vww'oy:--..~GN3]D_߬['W*= d#ޭx^iO[[;$$.Prrroo/###777?~|__A_>9NNJD"Z[[EDD^ߗ7o2ϴܳ ˶iԩS(ݐ5),04@ _83ɇw4Ukלhvduuacee$+uݺJs,-B6-nڂ?| Wc|}u40jjX,Maڵu,4۷oݿ˗ 999UUU~&&&lll?=22rwvWVOO/_TSS޽{[vvv}}}AA?FxÇGyzzspf^eUmEZZhʹm.h4+A utbaa;@D"Y8 ؎ sqXY3j}dwe+QȖ"Z6Z,&Z^%D!K"TȾ$ІFms{-13̜ys>}߼9xFh?:$緱:sٔ?J}8(aa*[1mm}]8a9ؾkkkkkko ĉwQH$~@Q+흼f^LÇvd*!..Q`{1ׯ;56vTΞM26 ' tt=~\ ;0s11ؽ; hiA搢9 --oM /)mK@]UU49҆ϙ3ED4lwttr֐w{AT WSZJA11a@i:氲қ*=xddÆewSa`%E)jlPgl/ Op8yĉu>>'N<0ӄfiy%a88h>7Bi[鵤ɼMFF%6n jjLHد*JM?ڣG;-!(/ Cxyy ղ͔m@پ];"phh l/2>C>兜C[~~6 t+ )=8O;.bb:t()e"N=3 SS Jbccܴi/:R)DZj=N==C@0+& Sik뛘JJMy2289.5 `d49ò~={">})|]:'O>,533̆IZ##~~i۶i-]O5]YY=: N5?H$FF]HM=lr ca[WG{ϧ ,:Pp|`  9NrӇ ^D"S/&$XZ>/@ #.KG炏O|eǎ s<MI)bʙ ȑ5TX]q 26۶i  ̜DYYx"δZJd_ND{͛W@mthn܊F8`@!+LIIff2A:;?vzEEoo| RR˒|PIIlwfǏ)YPRB CCgjД6tռfHqR|2>aeeۗǐ":H'(^Sccύh f.AKrtԱR|Uml~AK^TKKrL2A|}88hR\ffh|@ZZG<Qeˊg- K,\0>>ƆkpӋ-X NCsHV@"hh81'ٳpB*XAomᢨ!iiA--7ϯ ZP8}ԆZZż`;2HVTTD]EDBB^̛,3 `LK;Hgn~)n|{諫<M9uhRR)>oOL8qbu_9:޵U zD$cctu/65u%&|73×;{6i oK8:n=bȲ>uHK+G*|WXʐYO[oD[TIR= DJǏ_-lX>>II ~u᳔wzLsL̞'MϟOٴ<f %$jӻP;3| `d[ZCܥ%+) [(Q{ޅ @/mi鵵 vsݰaYV8@ 啸lYKϞ&%9WTxZWw) c~ iy~@KҒo-]ݥrrB9TEip 66hk[l/R[INI_#|qwÇ߽A߁̜Tŋcܼ\S76 !! mG9)K+e/_~3֧(YY ͧN!c==>ĉuT0p8Bhh$s,!8ؑʌa23]\lm4ҎTW=Н8*t!)Q\:qNNz))U@o ȿgaۋEDJD$: (,TR򎋋y'G55L7%EցO'QfCOO{QI{Uٰaٺunn}}#X_Gg)//Kb+J,NQxo-D";+KCCٟ۶i|2_*-}|ǎ>wssA-O@-ZZ##55Ԩ33Sc yA[e::N8ax S<+V,pNN3޹#(>>\_zLޖ99G.巷 jh)rņf{P'A<|8:<(}oxG|Hȋk6ܩCQ[?fb㓺fMVVN5BCǪ.:Ep8\|lo`U?JsjzR͛n$!.$>!iiAD"!GSScK X[zx*03cb[ ^}%{l!8ؾٔXJի6J,N!FG'Ҷn]I ߿~||ll(g34r~>%uhjKCW8."d_[hg iZ'uz )QP@ -[4hhP1G9XYqbp!'ԪKKKK 21-ۑ?b>;Ϗ,;SR #ijgG]TTVK/}l ŕO4rYAII T jx D$Sy֭+CC&'qT0G9XY!qZӛ7..~DJJޱKKg0'JG%$6lI`Y,HZqɣGCBrf'GG4Z~Ȟ+XZZ$%UΕ÷n%q@*6kvg]SJe)7qqeǏPhkOϰuXDX?5kFF&?v9~=ԊLN{{ddC)G+*ΤquECp=(o[,b-T3o~KKoZZ-,e'D"++΢otc08K*.~+%%#ղy8X3.n_X؎z м9./dgKH99E^}tkvڸqMP$,%%`iJ?}귰bII΢ LjӻIgώg񦦮lsuu3gzն;6v+g@FQQj-Y#G! J'R 2Ni%TT NuB\y{~42ܹS;ګWTHJߺ吒riaq6N:k9;GsӚ5rLd\j2@۷= M=eot)Gu5@痦}A_RppWxׯ}#"}z헀U@GYYxhh{wv6j+*zK5䅃T"]ZZR_}"^F5#FF:WWll ffDA3PUIH8gh͚nnϖq&zz'p2NE_S1_T]ݥPkk8!44OGby(GA&󛽼UUϠӓJJr&>b BVVzJJj҉Bg*L}};23,YZ55::~j;Ϗ{wga[--_rf^-~Ƃ7'N<>2xc2.i>~իVOO\UfcsSJ?6v;;#^]|Nn1m͒1LffKmP~~FZڑޖ⿕ 44pH &(99*ۿ 'Ft4ZF,$PSQQ١"+AGg):gLzz…22?;'FF99GΝ{lf˗fB!ml=\nX#ݐBZZ0 `ݻkM))%%ahJD˗)]殨譍M55H'ff J47`apuw_` լS/_FBtnQWW4XBs<g@GIIӪUrrBAAϩi\pq1/_B*uFMM lGfrWPld$#SIIB,YYϞHOwcd33 ؾNssNahiQjϯ̬_Or46VػW2^7n\IZ{IƖ}Qc.Ye-CCT[b||* %%c晛((x=UeǏ]u~!TdãPpRd۩BٳG?9F''39(7VV%K 4ĩy|k`بeQDBZZ .n_lގU.;9EegQTt125s>> 45%v=H-,TChIDLNӷlYA^WwmloܰZMMG3?]]c,,To*66;w749C۵޼醎DٻwkͰcݻIS*$|HyZZU׮mzpR lffGi ׫&%9z]lx@ RR Ԗjشi9##ݻT;K#t=HeZ[-ۑyi``ZSjj8fl'3TgeasVnB#Gڪcig^XX~@@f`;v҃YBص+\NNpӦ\MFFPUU޽B(^M$NNZ000wmP]ĉOkbi``,3>+9*P88A99T6@mVXX޽s+44HHe^-Z #"6Pf:8̼ ]TtbZ'V{`r*Җ0s&WWtq;BB44ͧާBdѨ|\}S{0,,!#6623g.^|z ϟ~`l|qAVko,vpUT<700vqEř#h8j8 GVVNOOٹSݻWDeR88:dST|ǤYXȿhi-.~gkYp7<<,>>VEE'hyod5N§>?NOO션͕YY<_t66/-ysr?ߺ훗dWBBJ?+00<@]̙$^ 88AYY1̇l^388gbKeӳgHL {H)I؎BBVMK>?NEH۲씃fH ҝ֘4쌤Am҇*}``HčvCCYF-2#˽ңGig߿~B[(]]PмfoǠt]bMG?4m sEDw~hm6reX"HK ҢAH722My}T軻D"D⺻޽X #KmmI ŕڥ;=#}Y櫩JNa( ;;R;SS;wc(&FF&"flݺk0;\̀˗.^̻aòY"߅F˓ŷachg^%tJ2 oJTU=F?|ROO*)ə$=,h/楲"9 ͛W>'n*ueŴ{ɋҢ3s 'qf_*!ipcHuV^$&Vhj;sl`0SyG?RWvqzlf[xǎfQQnrWy35},w0[ݧ-I.0>K׿ IDAT;"QDBf&3%J^6(?N#-HqIooKuuqH3NAFF_ٷOo$. 3a귄}KW DF%+^]] ::%LWˁ`­[WN>?VVN+W8gϽV01-pt))9ymeeEjjk( y[bbJܙD/޿vY?K ];΄"m ::CBϟ{Z%M!C˗rPi;v8{la " 54q@@Fƍlpk//+_Xg s~# 0 O'DVV{,̓::+@J=:WZG }`OD"֭u88(SSd#K8|9?4`9HgG, 27̬':%0V;p P͛WDGcOx\c-,N&$!o$\]ch?"ّ-PB/ _⼿WP}mwDԼ.x<de+$$aixH:/N \БW,^r1%.3ٳ ~(8Cl)+;uʰUճ..Q3_@]]<.noR3;;mw ǗϕJ /((,ڲv{{VؼYcll25&3N7YYҢk41L--߼풒Č eeシUU_-SPXH{05UNy=t'CV=yRӇ SW )ikS־{{2 /}:Ei_+ϏeuG+ցII0~fGD8fe hk͕PZZݻ;99l=3u^^kݣDOg,eaq11y/D"1%JOY۶iTM1!ff{x)+߼~jRsi68U (kP])||Pzz q|*SH AAk!4)9G2Hgo27htKӧv f"--%?O29>*jؤUkVTPI*MaۣGgvxuGKqq88XUU{恵8qbٛr'yy|rp=z:uuq(u0#Pp dd@Q$ë߼̬чi k)3aLp-stԁΦ OOTA)#T<@I|̾}hIpy{[T Y…'{ޟA}bIIp*%uuS\榊pTvvDAGJKs f{{ddC)G+*ΤquE/^ o0)de߽~W._Z?=l]] O CamVV'BA //Ǔ:r#=خIϜ(/?knll)iS]hARǏ'bG*0r%%ج-[nK$il 痦[Ql_NN,+πlsuu3gzն;6vQ`G!T `V>)xW5vсp~&uu23듒*߽bח:p@OO n[K 8++CUU0X>(*.24r噁4kq;:f(JD.HH O\(*z;:: !W==C;v߄yu'WV>*'̙$]ݥh%H߹oE8w޼y##>KW˝;gqd"??ۆ ˦ ==fxx+6HK>|ȑ[^DNٳ:7n\aL}n WZ>#>5{HDPv21A,)⢪*g;fbdt%-n) {_:6΀Okde~i6 Y׫Y8'AJ@]dCQ( \_qjis'…'W>V߻W)l߮9`d #̷o׾yÇ/4(Hz5DWk-zw'ލ>_4%J[[2#MJJ`kN1Laᛔ II~;; ##YEtDZ[<&ll64t$$$%~tNNzqqWrr^= ~~*Ss-wОu,SxZ7edԧTUThkKXԯ hW"B^~!5H5AsdAR\g&&,db`Wc*E8uꦦ`;ԩGKLLg8(ë^]]ѣt9cc%Ep f:ҢLMLM D"e˭GHJO())[^=pzaa;z"Qx&٘o>u*k 4ԕZPS󑝝PQg*iЧB@AAv99o"M {* ^YnZG£G<RAAv<XKOt ibHWV[)=mPT\Y ҍNRRe`` UFF恁Sڟ\yfn3pBҢn޶y-[Ǐsz[ܪo%*7v-Zmx<5&1խ[3|^W~\raSS{vQtG'TTT?}Z9p![,-U:;z̔ްA/R!!3Neg45k\y؎EOٳ;wHK6oġҥ|Ϝ6-D=Yvf@j*/?lۨy[+S zzڈG>>֍9]__JZZ0$݈+ko; Z}ޮGM>;;G~cc;;P(jff{x)+߼~jRsi6FFм݁33%8%pAɂȫW`{pȚ2>BB f|ǀ+qA/_~fmtYYȐ'HCҎy:957w;8*(ڷG`;u890()BcGY?Paa܍B!7oQ;1Ug'yXٛ7ykl coZP&&fI--}wڦ˖c``,>)B^k;554=ss8N]].j=$_xlG"5ٳ+WlR ,uq1tq1˳gYY ? JJ†22D"%%[ZzJ _^FNC[u̱{--oRQVV.]zz^ѣ Oܿ_@}\y66ٳGȢAß844ng9!a 憦@FGMMHf|[̰j$h(*.ba/(xd d-*r'C/ \4Uz 7zr0::矙;vhO M:ir~~ Hnf6c dfggfӓ22ՕB9̜fr\yvEvvVVT޿~ 66}2_~N^f[ttyœ%%^~~_X< ].,̙lA uݻu--o*=kOsϟ60yoȦMb"Z3c!yMM]YY/_00jjJ[F˳_|1vH$hiQ[<~=~C4ooӧ+NPS**ZMM(+;YQQ%%%'oĎah' [\|"?m=:Nc iHknnط>XbU::K4̷,X@cmfmVS12vPmHH#6v ;03@vT-73S~=S[#pxH-R,,ccA ::Z"0HQQ%4S*KwpX뻁}ڴ)xtt21YTWAAwJ}}Sff}RRw=\\Rb0da߰aNʕK"ϺFGDDf(%3(SKKt*)XNrDwЭ[9@$jj+ N 3N/_Fsr^ge55hjJhkKhk/} d.{@f6-]ݥԹ<ꆰ0WtӂD]]=|֭#Fq]Ps,OqHP>|x8SW?3DNN^^?~ E.?*mmӧed0 ȨOM2455U\L O0\<@""EE'oۍffQ_t6Ĕ&$ vBD$y@Gc8pphi`07DYY!mmɕ+}0$ H}UAɭ[9Vlٲb*p ׯWY*|holF " hhPWy㣣9Ϲ/\ذy$|nHMm$**"kMLԷM U~㉤7@ V\RTIl_ ^Mۺu NPܭ}Է຺\zq (I/[&fb:мDgFSs i|hhm~7PHŗ/WWaYYiץFFove5;;pgg78֭N<381bqkmLJr!yyxЇI(_NرԡS? , \ZNII8=D"1;ub+{_lnڴbHȋ;Iy/?kp? َmkȨOIh֖B幹z, T|bH ÐԔI`pdv޿_tjF}QQFmm#bbN%RR**"X'ˊOC…'GQU%P VV4Z᪪ee#" Xҥ`; &(SS%SS΁G* kjJi$)Ek߽]K7n `'hhPwܶ-4?͔ D'VV}}BO_$={5~D"3ytvO~u?]Ww O5Sջ"?ѡ _ԕZPS󑝝PQg*i )---=A |)sj,\l/CCI --}KΝ) @TR=E@LNfrxxɖ-P'sGf8t(/PV}JJ$mŊjj"Bro{,޿>-+G_ qcٳ;wLs񆆎oLNb ߔp_74t]Zx225_!F YYaJcbJ<<~[DWPмgO$X,!7S5xBEEKJJӧ5BBRk`q dwuE>Mddǯ@LLaa?VOof6PHWp8\NNceepd.;__5pb`36VHN"=@Uڨs_H$r5H$"$$wb3 Νw; p8BAVUտ ;;vl%SSkC Xe r~~iUU/44H=8# 3,ii[Lv[ZzI1il|1&<<ŬWl;}:2N0?8See۫W-ѥ~~(rb^yrrB J`7$ >o /_~02g/.8.2rז-_l \*n"==-CCcc;QzD 3"Eb{*v/)y(  8)Ʌk~~=ÓN?~j9Xf6 <~ :N\NL#XsJhiUVA!:DXk1yMM]ngAX\С5N0IkwWmUUmuu{{G?(fqSJK%,5v)ᐑqcyEp_N tQQNccIRM8wާOH+WlH1)$Oё:tȈ$C$Ȩ _VS@KRP޼yO0000?B%*ˌB3@BF_V"*BUErS?3N㘇_ݫVӧWӜ %$@q+q߾1(Ȟ_ |`"||lk{zDE9xzu&<| 0ܽ{E7RPRQ9z򳔔o{U3ߍMwMsMaa-_<}!33= $K#.2r0is$ Bvv+%Haou_QS_HH OCݶMǗ+GK.>66indFM`J~0000JwPIu Դ1DEg2c6<|rl q#8㪉D[(_wlBq!ll$>|T[SJJYxG 44HRB!%%yĸĸDEDD8ݷAQ_Hnn>谰5aaa[nMJJۣ[ ~5Hoݻbɒ%YvmZZڛ7o,,Y+''XA؜6mZB(WR+jZ$i8_ Ψ7A,S:bpC)89tt,%:9knz=?kvvFii))K/敐׃/Ǐ/''I FFÕr&UO+./_rqQ쫯#=BKK^s`Cb傂}T44PwS,VUb`b`f_Z[pfG H$'$& K齃 // kafFRREGGGTTTkk+[ R]]D?/okk˗9coߪ?e^}JK;!# XF^~¯ 54t45u~Q[۞P144++Ò%|K.Y'!',_Ҿ؎2chxy}q4zlUڏ/^9::I`I$nb;9pI%!.N*S__Bv!$0}Hoa||)99YWWٳgy77ذaojJJMjdbZpSmGzkkR-\DFZR'0//+IkkΝaW˺Qϓy{3 }W\}6.UU?NYYk0g|AUVVXBFFfnnn -"{0Wq,=""bᱴɪU=kkkEDD8y\߁dk;FMM.PQ"߾e|( |r;;"yyW^80TOOϬ,Ç}|| RSSFVZ!!ӧO?^@@6 e˗/codPPP>???44!TRRaBhΝCTWW9s!Oٳg̙Ĉ`[aaẺ: lmmL˗!C0G錬!Q}IAA!)) ðJ'MoǏS޽ySTT῎/6/ q= $N***hhhبWXX?P(T tuu###g322[*//'ɇ5554///X%N?~h?fd c1C޾}+&&Դe///2\QQ`aa%H$22rРȂB?fnCڰaöm0 533clgUa` YXXwxĉNo˖kKLtJgz Om|7cht--+W^f8 jjtt<ϜIو T*Y@SS3GghnYsAWwǏ8ߏ8c9)\YYo?}[Y~~yNNǟ +zقJH ("$,8_eKq޼.!!ԩffkךť\"!!vݻwS(o߾)**2~0Ҡzzz߿kk[nG/ooom۶l^[[KR%%%Y+((f͚ڡC2пLn***͛'O8q">>ɓ'=9s&BFiimРȂ޼ycjjo߾z{mq^;/r;a`$i޼y@Xz]Q="99Lϟ!:Ϙ?ĉ/8qmog+W0lҥbb=wv?$sPLL`ZZc]]ȑ#܌Xԑv@ dggl>+//ĉSNuuuel`VQQ忳MOJJJ߾}÷$''ݻVt:ƍV5kVyy9qqq3f9f֭߿?y$:0"haaibb2yd {l]]ݎ;lmm[w+**蘒H$7fQ 6~={0gKt韍w~k7OywyRzj,Y,/?`nw/57~ OS}(YXq#С{OM}:''DOoΌTT\].ɓ81&B0ψh̙3ΞN!`8dȐkb8lذ&|777cUmmӧ[᫁7{ډ{'@###RTTħTWW\RRRRZZzڵuuu̿777%%,^޺^LL MMM"\9N9"%%rŋa=UX>fXeeauuu˗-[&--R__VT:::^^^̇>^EEӧ,"Ο?'##K.رߡMNNNVVͭiG0@ b,!!qm ***줥]]]{H.\ Nwuu522*--e>۷o'$$خ@{wuk+ua{ёurrjhhxH gM--- }1n1D['лyyy-Y͝{y}Mc] T~N 5_*3a6dȎg` Kˣ۷@=|QQqsrr.oc y›D-里p=ʗ/5om]̙3rrrwo'fY9yzz"qj ,--o޼,hkv@z/_((('EgDDVV<HWדgU%;ޏ22 44?\ K?JܤzS߾}[E600 ap29sHK2i}ڹ/(0 ~A<^B(110rYv%%%o/Æ|0"""&&*((p%''3wk}c,̴^~~>%%%?-hg#}ĉu{')u!! ۶ln?NxWN֖ۣdf!tt=BÆ֭ᕕN\F"'_x:>x!/"yW8UUBD"H._gHϟS(n۷[өZEVVVNIIa쐞~,2&Lvpp(++ß/ /^|UŋwukBJJJlo[XV?o1D;€5k&9u|'!!6_xhZY,%%*-5<22 =21;s&166ĉׯslm2E?(o[k=%zˋ[Xؼyի]~~ DE,իWcccB[n)**gZ7B&&&fΜ9]hNxA߿Θ1#((!daaqQFeCBBZ9)s|988Z !*//?k׮"33gffjjj.Ya];ҢBmp6m~捗ҥK<?w\UUUy!~ A[[ﭡ=g!I4UP@XXOmm#y<}RPP֫'B(++E,XPQQqYPYY=Ϟ=WZZJPFؘm! ~xquux ɇCzsϳ7Uro 6l*+ļ( }8p˅ YO900^I|}=*ƍOE,ː!CMW`÷,)C0?u0,}<ɼu+7#+eeqJ:`iiKyX110/v;;w޺՜ǣw$N@6nܸgϞQ(s2X4jjj}z6|{[ˋb=c ntJ;F\xԮ]Q<n@),n吙M>~,w/ݜjkW-`ZRi6=e< qz44|#G1=7l)ؘb=D \K~Žt" ZZrܫU%w 8}w*vmHUUs+yW!TWhgwBIti͜9Cy9tAt666?~dO!$!!qa[[[===uuŋϘ1es{_uZZZAС'O622:p@֬YSZZ~SN1cƶm8K]]1Jrr.ciIBBd׮9.=K\4zww_~͝;TSS݊F=**R-tp8bܹ&?45e37W B?X첌ʜaؾ};3<|ㆫt }1m}ɑ qψD,9~~~~~~VNNl\5kٞ7USSYwC99MMvs~:M㑔UT1iMIJʽ{ׅ3;8\={-ӹ:3i*,( =WMMbSS3c2t/ܸ(pO*]l`+NT*μy U89C^^e='jj/_~~7kB8JO/)w,-X1'u }Wp┙YD9YHȳJww PYxv\NN_iiQQNVV=΂ wА=rdŋ^;fo( KI}}LO/=EYf홡yŊuuMkŅ4J G s:T7r$N̙F..Ӽn>X_?}ܺt. a`D339gF==E_9vB u3}ݺK?]꠨(Qa`gwlȍ9^ې/8>Ɔ!"x#7&kqS~pu]fMݻ.=PĤIz3FK\АadıYCO//<8]t!N6m {k:: J5+`Dހ+N#G.ZQ,UUB>;N+.IKyJ1+KLNdfA ^ z޷}{̥hFD"AWW!22 BGAaҥr[a۶Eܾr51D >ZX}kzSք>H]]իgu+bxx8ܲ)/I$ ffӦ qPp3::^ 'zW璒{Xmjii̍ŋp:.┚t5^ܹ\*BT[20"bK=mҫWO~}]rm>>Æ̙s<((!'jjҗ/,O~sXXnr+gd`ƑW !aΝQÇkXXrOfwffYSSΝQ6\7o؍0kB8wq]Zopt``¸qLM{N}z} z_;Fw,¢{60Pi+Hoʒp7Pdw=K*9p9C9y VV{6Q6xH(PU@U QW׸wm[1]p={n;;wR•ܻ{H;Hđ#5Gd %#4􅄄:Sꛛ ;L^[blYY s{ʂs {7Zb+쉉 J̘G{KO/5˸sC7;wFyy\b,;g{ 8`ݯ W;H*pu(&z=opu^_F"9 t &M:gϭCr[}} ԇhh~SW}߉;wΖH QQ]]L۰a g{n!;b^^ɓzNU0 }mnik;),!!߱KJJAW_=|()#Fsw̲e.A9ug{n՗ӧ&S(n}$kB8o$¾} no|v Cf6vu^US}+/+f?))XL %}kwګ͛881ݶPQQfM[ʕ㢢82ywO$D¡C6 [wfѢQ!?iGsCccUPZZiNvJ۾̙F'v+faa/<>see^iXf"#BY}HZZLYY2%%SJJޔ)ݏkåKϷmزetvˬСS>s5Q#G/gM8/&am=ٳ{o( 0||BBnnw%y,]vL7{32R)(,)u”< o__+{鰅 \\ef;:N"H:XpsX^^yPRQQ~N9Rqw145eӕ @HM͛:RS󍍻U;zĸq]'~bJăR(nZZrwGIZ{…#SSrpxƛF~ifGDlLJ>{?*TZwQUz))ݼO/ ^uuΝ NǼ"9YSFF̙GnY$Nݥ:#.n˗;l^Y찳;v°ajqq[D_ɹ|L&;$3qJ7N}ƜRCî'N??tv׺Ri6\rթSml8<㨱8s#""B [7l;6{H8wPTv24T ~HwuݻoP%%I`jjuyx2Dyɒ]ׯ+g\Ҩi<<2rFn`$DE}|b6lu"YrܣG7n Pvy-CC*m'+_IIkC_<%%7.nK7TVZlnnYTӐ!骅O~4n+ʒ7 ~b$JCC;}%'ؽ;& k.$Ny]TTT{Ƀ+u\qqՒ%gjk8{-ٳ,O?,\8''|oZL~Kk3,-/1Ȉ[KZ2]攒3BFZ97+x̿t,&ƙYSqq mlNjk'&z.Z4 AkW1I㷊IK Kvu^XXٵUPXUym||Ë~Wrry'DFn2t,4ĉ_.TϽ$N|PRrn%wn={dd֯LѻP ESRr1 BT^^{wQ4;ۖBI_ D-"bha?k_۷ߴ'NjLb8^L4`{55qػ97Bߺ4kֱ2 ""x]rrn``|u6씔/GS5vjkhB&޿*~o ޹(JHȈ~ke1 ;r#lƑzEDE$Y`pp '$ seʔ˗۱#W0yu*+u0Y__j}PN5n1oްiӆt!yݺˁ 'N,Hcܹ..Wg/k5u $N=]O+&!""x##M~k꺆@ >Foٶ&&ZHҚa:8y{GQ={:B:O|vʤ =0kWtz\6/ ѣI̚eLḮliieqqiWTa>|%ᅮɤ?J_ %Z߾P\\}ƋWt+Hz I3nܐW>iҁ]{J]]С.<~fa߾ΞyMMl&NuT}_Kر%DbWnRi==}ܽ2fLG֭dGNjG򺄄fi 559?%Jwb@@#]FLL҃,Y}3iiL[*855?![~-;W[lolf+fݻ[TT`qXЖ@8s.-78^MM:00aܸ}uL'I6L"$$0sѽ{o75; RUrtl.ccUNQÆ5]G.f?kz蓹D\5OY֬ 16V}tdM@³bzz;wξpi_H 9c]owQHJp￳s^nnwqlйsO/?;e7gçODEs9yrdg;]}Իw g9cxvpuEE >x۷)< uN777ErOo>KVө;bb֯l?}F %@YI?g{xVVvo|}:ŋ/+Vcgw:j֨Qʒc7N?d+) `\1k8Wv:7߈~sk'v\yidmn zv12=xNxM"'L5336mH.@YVVn$gg32đ\T}}gčo-}B|ׯsn|W_D f'#FB@L# ?^wpuii1JN:vr{\V0VGɓLM:uhEEUGܿv핺֭斖F|xڵ!_ln /?'jn3Z |RōIDAT}ZY+s$*aHMM: !dcs !aaK>e`hRS9sÏ6(yJ5X0TV zx))͛-Z4J@$N@l9X|NO27oz,+66z3333#4v۷vEg79MMd2C|\4{1*Lg|)޽!ĢÐUӦ qr ~O[@ "#7޺F&ED55ebc73߸142]@| a'O>ܹܿ&6 y,55 =9s&L&9;O oI&N0E0ܹC#q̥KkBBV}\djz1J}}S}T/LcLx[SȚHwxzZHK'YURD)( X @9j{R鵵 iiO{ťEFCyy!TSӰzn6ĉvΨ_,㩩i8zQgNw/Ūt:{մu`vvqb kO~at:9--o$_-:D0H$$&~61Q]L~~EXÜ9&5VV 9ϺƳg]{eƞ=bҤ2pwzcebXJn_B׊I7}fѣ.^|6xҮ]sƎ>Æ̙s<((!'eϵ|2@^^Ç2A  WVVOc.=n? Q##:Ls'!AAȈᓔ%ZdMd2iDYB),2H"UMcޡcQYSAA !T_1((aĈ=ǎQlmǼykvKȚz i~~g>f=.n C5vI8;EG'U<=g_?@ @YSSL&-@/A"Gzvݻ.VV^jgwpWuut:> JhQ/64Eˋ_bb%Iw ¡C iLKKJHJ˗s'9*.۷[~8҂T*-+8 _5,o{&GLE}K@u T-m3=@LnY&J.ZtENՂǍ8kg&OLߵ'*oCMM͛0 1Oc<0#}߾_P" a‘J^^]Q,g$-y꫊:YQ(;HʤS֖w87А-R[?EaZTg'NNa|p Y.:}z0LDVfdn8ECCD"h4IEE!@HC DDlױ1'0#x)iY\ܖ˗}i`ޭ_:<"w8} ܕ_XX>bJG$Ȍ)Ihؚ5@Xd'ƌ·?}:J ?6W$*& ((@&"Zv,rrrW w==tn2$$$4hРTZZZRR:CgֵD"aBCš?* kjk¨TŋҢ 2r0ٿzzn*QHYZu+$=H"5͛ѣ I~&&_f׏/77wʕ 7OJJqc{LL`ZZ7bnD]]}奥aҥK٧E~H,''GFF=%$$<<<=w\O1mxCzyy9;;WVV"֯_p/rfϟ?/,,ϿpBuu  Kaaa '7eee)##xL6Şw['0;dddSQQݝkQ$++}YYY9"''YPPp%%%c&OAyzz !diiY]]}Mϟ??>|ݖ/_nggWTT$//+|ϟjbb鉟*>100HMMMKK5j[[X,_|c:?Vj;<==B~~~zho4߼y#!!mɬaڴiwˍ =*..n'7NQ^^N&:TQQAkjjh4'0/^l'qJMMw~FBh ?62+,,S(cccSEWW7226##u+'j[ϟ_^^u5qb49sHK2/W (qjkt|K[}2k~l.4hˍX qbG^|9p'>}H?yyyƌ M[[k~wXvmzzu}333+]OO!w93x`++ZYl?v@/Q__OoܸQ^^jժYf31==/Bjjjwd9}8qbԩ222&/_ķ3}oINN޻wo[X,͘19fЏ?9 &L\X{:0 N:5sGDZ'#ϬKiӦݼyL&O"nSTTk׮vzsuu~捗׊+BΝq>NNNW^ŷϛ7o۶m߿OMM1cFPPse˖m߾pƍ߿oe󘘘9sHHH .]T]]}qӻ5988Z !*//ăCw.---**Ǐ~evFoOvޏ6mb.]F.bs׵bbb0 Rƍ09 `РAcƌnkӵk\]]hq7@##& âiB+W^vm]]T777%%,^޺Dmݼ‚90??? ---.;쿧wE!!ϟ?3~H$FDDpаXbkk XQilla Simple API Documentation SourceForge.net Logo
    XQQuery.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <vector>
    #include <string>
    #include <xercesc/util/XMemory.hpp>
    #include <xercesc/sax/InputSource.hpp>
    #include <xqilla/runtime/ResultImpl.hpp>
    #include <xqilla/context/StaticContext.hpp>
    #include <xercesc/util/RefHashTableOf.hpp>
    Include dependency graph for XQQuery.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ModuleCache
     
    class  XQQuery
     Encapsulates a query expression. More...
     

    Typedefs

    typedef std::vector
    < XQGlobalVariable
    *, XQillaAllocator
    < XQGlobalVariable * > > 
    GlobalVariables
     
    typedef std::vector< XQQuery
    *, XQillaAllocator< XQQuery * > > 
    ImportedModules
     
    typedef std::vector
    < DelayedFuncFactory
    *, XQillaAllocator
    < DelayedFuncFactory * > > 
    DelayedFunctions
     
    typedef
    xercesc::RefHashTableOf
    < XQQuery
    ModuleMap
     

    Typedef Documentation

    typedef std::vector<DelayedFuncFactory*, XQillaAllocator<DelayedFuncFactory*> > DelayedFunctions
    typedef std::vector<XQGlobalVariable*, XQillaAllocator<XQGlobalVariable*> > GlobalVariables
    typedef std::vector<XQQuery*, XQillaAllocator<XQQuery*> > ImportedModules
    typedef xercesc:: RefHashTableOf<XQQuery> ModuleMap
    XQilla-2.3.4/docs/simple-api/hierarchy.html0000644001725400016040000015602213273140074015502 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Class Hierarchy

    Go to the graphical class hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically:
    [detail level 12345]
    oCExternalFunction::Arguments
    oCAutoContextInfoReset
    oCAutoContextItemTypeReset
    oCAutoDeallocate< TYPE >
    oCAutoDelete< TYPE >
    oCAutoDeleteArray< TYPE >
    oCAutoDocumentCacheReset
    oCAutoMessageListenerReset
    oCAutoNodeSetOrderingReset
    oCAutoNsScopeReset
    oCAutoRegexGroupStoreReset
    oCAutoRelease< TYPE >
    oCAutoReset< T >
    oCAutoStackFrameReset
    oCAutoVariableStoreReset
    oCBaseInteractiveDebugger
    |\CInteractiveDebugger
    oCBoolResult
    oCBaseInteractiveDebugger::BreakPoint
    oCCollation
    oCBaseInteractiveDebugger::Continue
    oCDebugCommand
    oCDebugListenerA class used to listen for debugging information
    |\CInteractiveDebugger
    oCDOMDocumentRange
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCDOMDocumentTraversal
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCxercesc::DOMNodeThe DOMNode interface is the primary datatype for the entire Document Object Model
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCDOMXPathEvaluator
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCxercesc::DOMXPathNSResolverThe DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings
    oCEventHandler
    |oCEventFilter
    |oCEventSerializer
    |\CSequenceBuilder
    oCExternalFunction
    oCExternalFunctionResolver
    oCInputParser
    oCLocationInfoA class that gives records a location in the query
    |\CResultImplA lazily evaluated query result
    oCxercesc::MemoryManagerConfigurable memory manager
    |\CXPath2MemoryManager
    oCMessageListenerA class used to listen for warnings or trace information
    oCModuleResolver
    oCBaseInteractiveDebugger::Quit
    oCXQillaAllocator< _Tp >::rebind< _Tp1 >
    oCRefCountPointer< T >Super class of all the reference counted wrappers for Items
    oCRefCountPointer< const Item >
    oCReferenceCountedSuper class for reference counted classes
    |oCEventGenerator
    |oCItem
    |\CTimezone
    oCRegexGroupStoreThe pure virtual base class for accessing regular expression group values at runtime
    oCResultA scoped pointer wrapper for the lazily evaluated query result
    oCBaseInteractiveDebugger::Run
    oCQueryPathTreeFilter::StackEntry
    oCStackFrameA class that represents an item in a query call stack
    oCStaticAnalysisRecords access to various parts of the context during static resolution
    oCStringPool
    oCStaticType::TypeMatch
    oCStaticAnalysis::VarEntry
    oCVariableStoreThe pure virtual base class for accessing variables at runtime
    oCxercesc::XMemoryThis class makes it possible to override the C++ memory management by adding new/delete operators to this base class
    |oCDocumentCacheExpression Context is a storage for contexts
    |oCItemFactory
    |oCModuleCache
    |oCScope< TYPE >Used inside VariableStore to implement variable scoping
    |oCSequenceAn eagerly evaluated result of a query execution
    |oCSequenceBuilder
    |oCStaticContextThe parse time static context interface
    |oCStaticTypeClass that represents the static type of an expression
    |oCUpdateFactory
    |oCURIResolverThis is an abstract class used to resolve URIs in different ways
    |oCVarHashEntry< TYPE >The class that stores the values of the variables
    |oCVariableTypeStoreThis is the wrapper class for the variable store, which implements the lookup and scoping of simple variables
    |oCxercesc::InputSourceA single input source for an XML entity
    |oCxercesc::XMLFormatTarget
    |oCxercesc::XMLFormatterThis class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings
    |oCXQillaProvides factory methods for creating XQQuery and DynamicContext objects
    |oCXQillaConfiguration
    |\CXQQueryEncapsulates a query expression
    oCxercesc::XMLDeleter
    oCXMLDocumentHandler
    |\CSchemaValidatorFilterWill modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache
    oCxercesc::XMLEntityResolverRevised interface for resolving entities
    oCXMLErrorReporter
    |\CSchemaValidatorFilterWill modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache
    oCxercesc::XMLPlatformUtilsUtilities that must be implemented in a platform-specific way
    oCxercesc::XMLResourceIdentifier
    oCXMLScanner
    |\CSchemaValidatorFilterWill modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache
    oCXQException
    \CXQillaAllocator< _Tp >
    XQilla-2.3.4/docs/simple-api/namespaces.html0000644001725400016040000000450113273140074015635 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Namespace List
    Here is a list of all namespaces with brief descriptions:
    XQilla-2.3.4/docs/simple-api/inherit_graph_33.png0000644001725400016040000000335013273140077016472 00000000000000PNG  IHDR%m6bKGDIDAThKLOgYV@Z`E|HbMP[1FcUҊ^MhDZ9vLڴ" )d@S0qnO ?ffǗAIYxfW q^!fټ$8~ 2͟?^x#IRT9rdAz[n%r|ǎIwl6ӧO[[[-ŋG"$p\twdd0222ySWWX,FhZFtGV{N.C].W| d2Y)DQԲeBazjTj0p,sΆ VZUQQގX,EAڔJe0*.f ~n?{5k>|ZX,&BOMM1KQŋEEERTӡrFe,2 uB\LvЙ3gjkk7n8x Ieee/_wAo޼ )BhZL& 0 3kw`0xQZvITTFqvt:VB0Ž /_sΛ7o &"B0EUIzzz?}vggMT*Ճh6m%0啔AHwv$IB0߾}CϞ=S(3(fAM&B@H$bZU*(rMfB0ajVuAV ^_^^N_"fddBA_BKd܌8EQ@`٘1PŬ5ZF^/`jj ِ$)u:Y`ÇH bF ^ͦKm++V8qH$~@jS>%޾}R#Z}]_즥d2 n P;H p:š^4aݻD&3xAaL|`)6ϟ?ccc{ܹC 8͛7={%//cttk%FW^(*;;˗v}ʕ ׯF,-- 555jnܸZ[[ux***\.WOORljjjڢW^?_pWx/0SKU,FE"я?Pwll6++K,>}zbb"޺u0##cϞ=E*&lii)--EksrrйBhjH$*..>|0,--WǏ✜z]v-33b0~~~D"t2ƒPXPPp%4۷OF|jsj1ɓ's9Ex$Th~#Iرc6mrrj666:ujq\Io!hhh֭;yd]]⸞H1 zqauI0d2! h\W q^!,zjKjjYO<\߇:B\ N!=IENDB`XQilla-2.3.4/docs/simple-api/classXQillaConfiguration__inherit__graph.map0000644001725400016040000000103013273140076023474 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.png0000644001725400016040000001412613273140076024453 00000000000000PNG  IHDRY>bKGD IDATx{PSg7k M ⊨0*mmeADw]Q@xW5(눠0؂K!\Ex."ԊП$bJC $8N&KMgy<1WIW11t@P bǹ8 l۷ʼnD"Г'O֯_4c jΦ&Bˆ hsN{{["l٢Oxsԩ?]Yo:(Nruu )S ryBBcBB\.okkh555nnn.]JJJrsssppֵV!B Bk9uL&ĉǏOMM;qPmBHHHqqѧ$88Xu֖h4ǽݛ?qD]vQU"hժU,fd2͟9sftt4D"qksFD+WZreOOSCC5o߾..;sV… /^PX__OS'...͛73\T*%ŋ ʇø̛7/)))&&O}9s֞?>00P6dNNNt:x=WWWGϙ3brN{A!b͚5.\Ɨ-[m۶s܀ ;vlܸUh4RX<44`0,--+ uҠLdLL7uyf''X~tzPPPLLGGGGF Fhhh\\\GGGKKΝ;_Zgܹ "%%%22oON8#G|Y $)W^=f;;k P^J&l0PHkV$YTT4i$&YYY9BMO8aff/z駟LLLJJJHK.!222uTZ[B#>$)"##윝RzouYXXb}B#.|mxkcǎΓ'O⬬BGL&{ <3;'Y/0TpDa{# AX ( `,ǃπ7~x=NϠX,OaA>3=ΦgfJ% !N`_ʕVpP(rн  :A/+n^ 幧OO7J\ytL&7tGF܅ ҧԲT*x ۏQD"a'N} GO^y~XPbU|>Z>~H.KԩSʨko߾Z֬ B ~R9\[$ɡ!j\1$<<}:N?y$53Noii)++y74ڠ$B{{{U#3j Q677kΣYEdmmmppܹsG(a+ԃ/SIRj\~{fP$IaaB.k.WWW$y<\.w u'#-Ay'</==oͪA{{{}# qrqqFn޼gϞ᪤R)AG DGG/^X  WDޠ3ݻw]\\eB\$+V47?\`j}''':N]u=WW&>Ǝ Ak֬-,,pBUU5lٲm۶ݿdddWEFFرeƍs@*_ZZ* pO<\ƱiӦk׮m߾=""!w߉ⴴ45% B:***44̙3uuul6;,, !`0BCC:::ZZZv>„' DU=Ggyy@ IR,^z̘1vvvk׮P?d26bcc& q*$&Md2===+++G(z@j}I4t;FQ^pLA$Iн JJ~B4纡{1.z{ J%IDCý'Ȉ@Pab}t:a1*8kJ%A-+$sͰ3o~/ I-- ڔݺuŴޔ݆#+ڎ;vر,kݺuYfĉn:mڴr9IRdTUU9sFk_W/-ZhѢs΅jZ[[/X!:gX^^^_~qO>}JDrrBپ}{EEpqttV.:訹Y@@ӧI_5F VVV/6tElmm @P AX ( R/y%GJiZ_%p@P AX|F飢IENDB`XQilla-2.3.4/docs/simple-api/classSchemaValidatorFilter__inherit__graph.md50000644001725400016040000000004013273140074023674 000000000000004878aba101a58df4c3e357ee51e39ce8XQilla-2.3.4/docs/simple-api/classRegexGroupStore-members.html0000644001725400016040000000505613273140074021306 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RegexGroupStore Member List

    This is the complete list of members for RegexGroupStore, including all inherited members.

    getGroup(int index) const =0RegexGroupStorepure virtual
    ~RegexGroupStore()RegexGroupStoreinlinevirtual
    XQilla-2.3.4/docs/simple-api/classAutoReset.html0000644001725400016040000001745513273140074016473 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoReset< T > Class Template Reference

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoReset (T &orig)
     
     ~AutoReset ()
     
    void reset ()
     

    Protected Attributes

    T & orig_
     
    old_
     

    Constructor & Destructor Documentation

    template<typename T >
    AutoReset< T >::AutoReset ( T &  orig)
    inline
    template<typename T >
    AutoReset< T >::~AutoReset ( )
    inline

    Member Function Documentation

    template<typename T >
    void AutoReset< T >::reset ( )
    inline

    Member Data Documentation

    template<typename T >
    T AutoReset< T >::old_
    protected
    template<typename T >
    T& AutoReset< T >::orig_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp_source.html0000644001725400016040000004156413273140073020723 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGDayOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATGDAYORDERIVED_HPP
    21 #define _ATGDAYORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 class DynamicContext;
    29 
    30 class XQILLA_API ATGDayOrDerived : public DateOrTimeType
    31 {
    32 public:
    34 
    35  /* Get the name of the primitive type (basic type) of this type
    36  * (ie "decimal" for xs:decimal) */
    37  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    38 
    39  /* Get the namespace URI for this type */
    40  virtual const XMLCh* getTypeURI() const = 0;
    41 
    42  /* Get the name of this type (ie "integer" for xs:integer) */
    43  virtual const XMLCh* getTypeName() const = 0;
    44 
    45  /* returns the XMLCh* (canonical) representation of this type */
    46  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    47 
    48  /* returns true if the two objects are equal
    49  * false otherwise */
    50  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    51 
    54  virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    55 
    57  virtual bool hasTimezone() const = 0;
    58 
    60  virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    61 
    63 };
    64 
    65 #endif // _ATGDAYORDERIVED_HPP
    RefCountPointer< const ATGDayOrDerived > Ptr
    Definition: ATGDayOrDerived.hpp:33
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    Definition: ATGDayOrDerived.hpp:30
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/classInputParser-members.html0000644001725400016040000000465113273140074020456 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputParser Member List

    This is the complete list of members for InputParser, including all inherited members.

    Args typedefInputParser
    parse(std::istream &input, Args &args)InputParser
    XQilla-2.3.4/docs/simple-api/functions_func_0x68.html0000644001725400016040000001302313273140074017325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/classATDecimalOrDerived__inherit__graph.map0000644001725400016040000000102213273140076023142 00000000000000 XQilla-2.3.4/docs/simple-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.png0000644001725400016040000000336413273140076021426 00000000000000PNG  IHDRe2qbKGDIDATxHyw9m beqZ*Eκ#2j\%jeavwYeօ1(%.D7u]4MZL /֛׃۳8yzY2 o }e(C@7P2 o }e(t^4 ')s}v?66^`3olTc77oh4(C@7P2 o }e31d/L3|q<~iܷsղxr_OOz!@27cqq,-Ho }e(C@7P2 o }e(C@7P2 o }e_@˗/y>,,ڵknFchhhsscBCC==LݹSppp1f0F CK~MQѡnki1T5>}L ڳ'ۉ0uc~a:ݵQM=s{޷ iii{5LGh4 /Դ ۷o755={ԩSx6m~ׯ_h/]+Xe/fsocc͛" jZ :gaQ!;;m׮z4'L?ەJZnmm&fdpq%***%%c;wcfsPp l#cyɒys]uuM˖)7oV߿?qKk Q \a枷;ݮVkNNNrrj_匱$ĕG8 znrEcݱ#g۶+cLju:y>99KLL4 CCC6M.O 33+77l6{jTwݻUU67P/''8o?k着*& XQilla Simple API Documentation SourceForge.net Logo
    EventGenerator.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/framework/ReferenceCounted.hpp>
    #include <xqilla/runtime/ResultImpl.hpp>
    Include dependency graph for EventGenerator.hpp:

    Go to the source code of this file.

    Classes

    class  EventGenerator
     
    class  ASTNodeEventGenerator
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_0.map0000644001725400016040000000031413273140076016371 00000000000000 XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__incl.png0000644001725400016040000015517013273140074021041 00000000000000PNG  IHDRs6bKGD IDATxy@L3M"ZEdHH^W."[hdIJ J{hJ7͜uEj,_ӜgRs KPYKlX (&&&&&32e ATV0bbbUUUb iAeBUUu߾}X:XX %X %0vʕuۓdff|ϟ?GEE}‹/Ο?~'O{zz^zwuu QQQ/^lmm8Y^^~HUUU[nܹSAAgS<0''L|NNNmmmFGG_z!$$Ӌ/n߾=,, Ǔw>|~&(P`۷_|EDWWWLNN޼yԩSׯ_ٳ{L:UNNnǎ\\j <<<spp{{{#9b G"\\\? ,޽C$##Ԕ~xwwN>>>2--۲KNpNN΅ L2/^;SNATTA7x'&++av( A"6lذ|rȬ,gg!臁hbby_ nFDPgt)66 w}[}ûwjXYYdd%mm%%%p8mqlS3> s (-))(.(\PP}= JJJJffjj23gpss|{LLL&p,,UeaauGG/''ی244dNqaUYz{<(~k -{1 s묌O?}m" fM),ΊuF0f8955n~,2kXXhrqQx`lA154={VYy~~yaa5 n49stt,: #öQQOn~jnHEEP02|4?<7}UȖU: J<"aEEڤk[[φ.,*+}KnG><}SKkܹSϟ9F1@DB=$%\U0//ij99>|_S5ƍsN9S ‚QQ=&ٕ+][HMh:L^`L@>ļ99rsߕԲf͚1)M>D")#$,,>()IZY1 *+Mk,,}٫ 8<'etTY|ҥG׮=`/--u(TVC$kҊJ 99ٴ匍UMMg:t++YccGtӈMMg[;{֡?PYiEggoVԢ֮)S ̟/ VV2RxBjj\]uVЂ+8=-̑31ab*'7h`轲xSx))u֮`PYQQxޛW*99,al*"‹u4UV6?LH}RUeeݻ_VU#aJq?/(p}aa_ Ae¤ϟW rM73XXeH YY{\yKaL!`(㨡*>U¼K47X@&06d]]}ׯ?naeԩ0-Ae{Ʌqq/>|˱lƢEPPWVg55-暛7+(H` u̐Ho?MX@zo TV~Rb⫠/VVZ[.::>|hq#/.ŗ/ZZSf[XhTDB{sU.:%F/1O=$##Jk1s@m,,833 Sә/ܺokt~賎ƻwo?vIggֳ-Sce˨A:@~vxrgg/ڴH@ PPT֟5 ga &d]]}2XYY6lwuՅC>}z?n=#ZXhֆePYvgFD<޲~ THGrK$$֬ Aeii;i`֮\ys"C,,8s:#Gƾ5KRKk ։/07x˗]E MWW]%%IC@ΜY⢳l$s06$$+>(ߺuz pc !畔ịݸ` TVAg>;^,r̳`p8ss SaaN޺oaj:\DB^ ~}}F6Uۆ 3G56ݻzC06Hhb+CO+iinS:EBB̙5wxt?x0P* &ЌZCgϮUUu(ڜ9SSRFE=9z~B«C,u(F_}SNyUh++ǏD89UW` QbAA W' u:?xlcc7VT4 L!X1Jϟ}O?{6=((CQQ 3`l F?~ H{֔?X>gT}{M wǏ_m~rF-[98n^S9ж}-}Շ8&&zCYV{7kQL&uUXXΒ%^Uah}Vx򣀀>>&vvsᱩ ʾv?L,Gb$?7-yx8Np'|6^~1''Y C~Y}}MJ0P~=DqqꓰNw1HWPmeP6 _~&&y [f~fII!sӧNetg;>3((CVVJmmP,,3dRRb(zZ޾}ʒAAka?AgMN.\Yde퀲 0$--9yC|YXpFbH8n>$#caa=^+/]rs\Xѣ΋`lJ"p8QT{w[d[[։]'%޹6g@-ShnTWH$!‚?_>&f֡e7Fqp?8kd tgjZ:oefn hE 'ֳ ,ST<B"_W0(|OL`ˉu(MbeeYT 8LADʕuiqL]ׯX'̎>F6oI<Ь^U=qɒXa./^Txx\AQEgMMYE}֔BCc}}@YlQ >-)ii۔V~=8ytp\kه[/}ٺuɓ'NNNYAA_h?Y-33SGG (g>|oJ[..v D y+`XМUWWϛ7oV]'6۸PII+0gal#fCŜJ7oZLIIAQ4i )322~O9Ϟ-u"Dh:kWW߆ WHܶ (ёdXL(wW8##]NxqcTqqݿ ^$ qBC5#ڤI>X0k*%%kϟN9M`h0e89MOH [\YvN}esuaa-ڱcoii9pO!ݿ"o߾};::zN}8LHII2)i ٩Zeeh<ԑ譭 spĎ9G K"!ݿ"o_~ƍt!F0'qq؍S\yrƄYe}촐ORҖiı8qĖAnܸI"Ξ=?,0wᑒ1Λ7AIII @@EDDL0ȑ#W^ܻw/$555..S^zuȹ_(++Yl=IJ><##CVVҥK'++;aGGVWjjÇ$$$()){{{R?X& p!Xݻûz1 Ɔ|qxNNNO>EQ444T\\<..޽{222| <R]] ȗ/_Pz*CȎ=jeeUUUUPP0k֬;w(  CLJ"RWW1\>|{nn=I)F%tׯ_:v옪jAAAaaܹsm x|ll,}rS&&&߿˓sğ& #͛&$: `4Tֈ\ii{D+kKKnUUK. WҎ"C~1VVV!SVV#oihh( ˗/QÇfvvǏHv"8\WVEO>- PUU#uRJ>`pSJJJqqq䗕 l Hvv6D"Psğ&UVEI$ҟޑz B rݿ8n{qq'yϧO444^6SN988޿ojju%Ύ ,<܂RRR8??? C˓{! 奩RzŐÜtʃTPP oXF?*++WWWap-7n4شϱU+Y'gq!5 hϟϞ=kddK3q7o xmmm^|Lޙbj:šbbb!---yy#?wD"477577\,,,=pԌxHKKWTT_~}!QbM"{rNso^^>>7bb*kpp_%oGG"\\\6mtƍ$A\\\SRRv9|#}}}C=!!‚;::+WܵkWeeeAAsF LLLbccx|__;;;0璓;~x`` K!!!A\Ϝ93`T={yyyUVV ͛7޽{ڵd<;v,۴h֛nAqc:gϦKKDDRtu֠ uu>Eܹ#%%w999>>_~:+'N4iRppe2Jh">>>~<,,,,**ىJiӦqpp(++'$$ >אP%HQ/!!iӦ%$$ oRdӳm6iiiAAA;;i|xXXɓ6mMq?MޮqP\scO>?v,鴀[{y}.@;lmmu/SVV@L'<EGG*XgtlGrOJ \ e@5vs|Yʚ?~^U& ~p8\@t'EE?1 Ʊ>zTyu'E,o=l IDAT:# ̀9M!>}:KUYKKk]]×-S;xu@Y/\]ZZx --9ƥVV6مM:u~~W" "qeo*--6L^\\}of++ntp//6Ԥ(xlz2}'伻}{ c2GO<D"lk<1A>.~0,={L31u@Ʋ:z < bcc󳇠(hklm ~iNz)#1'"pUU}}=8ƓW^=gbᱸ+0i01[ҥ',q4H*.ygOutJH̙3UGGQ__yVC_{x\=IsHG$'r*)IRL@ \y}nnZ76oSll,G>0 TӅ -RX@^VVtu@CCϯ\ysڤk[[φ_1T[jbr\OO9Z76FzzɃB`T}ϟWԴqjjNUQ9S&H$efFE=,Yz"+_z\6YSS/0)-8-O3d,-gO=[nw[,ƪƪmׯ]844kR577] T<= v=čhׯY;L tO<(n]HAGGXUBBt >1%0,,7?|ƌ all}ڞ.~_zsz??Xe1%(+=UWd`!&$Ⱶ#))u(zU_f``iXg4*kLLύ ʏa&@wJJj/HN.(-S24TYXYThJVWzңkמttZZjܹ+5ŋh+k}}~Uc  -*NK+ii!ccŋYN%d}} BBKKk弼 UE/xQ]@,挾:8\lJMm Hz")ݻodeEUԵfr/: ;mPP'gϖ624T#O116V=~F978-83mlF(L?7]ZZqJJaccڵU&a ʋ+V=,᡿b8>aغD,]:p:qmM@ 9Syh@~"55e2Kgb^֝?RZZMa''|/+kZӕFnw]Ҍ޽r ̙u.D#8832QQmLgW IK4I%WZs͛Ͽv28\s2!߾<+d aQYΝ˼za热m+댌`*@Z[᷋(Q͛O *+WjL1H栠7**Jlbbfu"~墢L~37 IqqMf[(鴅 hܷ͛ffPVL$`'//~es3yyE[5iy)AM>u**SS}"q<<NN UUaeqx}ӧLLfܹLYY DbϞ <I?g!9`c(\ܹBZ[W~? *mm;w6EG{׷k;֡h1}d3gҧM_Tm\Ӏhn˗[f> ƊbrݻoL\M88 GAA`&C}ʦF 0DE=10 m=|?wXe-gfs:s2RSM.]zu?' [X4WTT4?q#gi9+8AEEPpl߾a#.okyyqsaCDY'88y\mef#Ynnp#mBQ4'ݚ5 Yg˗l:sfM\WSS֡ K#| M4 q켈h͝;m{]4=D峴;t0rezb,AA*?ĉfo~KCC6#/!L֟bccqs٩.x-u(jss}ѣ2̌:IFTW} ,,ia~'V/)!!7oz~=:pΝuf0ƾPPPW[c^Uꔓn, 苺[=zʳX'wll,ֳcc_0$U{hiM0m5!!:;;у==f:ke5OXne%IiiKΤf HIIKᱷo]4`f$ݲq mX'G⪪_b`໕ɓ%KfP3 iپ֒%.Y2j*`$쬾*+ RR N4V ھ[YSSN@4LС qYpScҚlk=qY{ۻbPwygd4QSWW_d3g98*p?@7;2ޣ^%$͛  '׷͚ㆇ31~իOx@ 7n4psӅ'O/--^5XCG**7lC[hcgdLr('''ܹSy36>okǦMFPV隬q\wM"c ok bKKgaa5AUQyygϞOA_ׯlg"..wLg8++|:66__Hb 3-X'3R99re}\[:c700E_?6*=:SAAP`l,_B᷉EGGQL莱>KX8NWW)7*+s𷠹Q[[inϟWd?[ff00P:KkDBa}7uꄤͳgOY&42!qƆb~~ygg/APϟpȬYOÐʾozLѣNN a/C|@vvVSSXn'sEDlbw]nꀺJ'O>bP?Փ'Y]oo``ѱ͇֮Orp6666 ||L.^tu+ x|։~Ʉ SNx z(T֒ZUUxzXppZZN77K Q++x(-]:o֮Xq4͜)Ӄ :}:Tkmڴ隵9ٵqᷗCZB@wC__>}Q]NFMFFի*S*ZYZa͏@Q4>KPD"֭[X tOO}q,,8' &NO Z3 `^ddlrC@;)i$<<wvʲv|lDa o4I,`ZZ&LrPF"'N<8y2zCV||j]B$vbL( HMM TVfʊw(*$wP޳y-n^" i$++ˊ3 Ykk[aheED@¬<&WZZC;wCؼҥX!O[[A5~;re/NKHTVV(n G^8ȑ#42͛7q~z 3p2Zhp> Wh|Cnnn)5vt"H$ Y3?&f8?։蕐Ў;~xKKˁc?}$&6^7[EFQ͛ѣnb#$-,,?~ HSUep\9f:T־~A89a qAo +bbb躥 K"!ݿ"o~kb#$%%%%%%'L cgg>z֬!_CYyS(!t^QٍVV>+'NliiAƍ$ٳ***"3y]MMM))=py$@ IHHAp8\DDʄ 9rU999AA{JJJRSS:uիW͛7􌌌8q8ܵkTTTDDDvuu%իW42-bbb222۶m- |퓕0ackpSc($7$..vTyyyaaÇ'/:KI Ys;ѨA$'HImG[y ͝{Ç`fė9:::99KHH<}EPqq񸸸{ ?o7x<KuuuTT _|AQ4""ի!;zUUUUAAYv܉( vvvx<>,, A[[[< HcccGG''gHHH]]]xx8Gs(J"BCCQݳgniix" MMM999EѨ(UUU4L#Cš5k ?~XPP0c @ ǎSUU-(((,,;wm\bNkLLL޿'//O@ A˗4 Htt/ vt􌺑qfM-ױN?51IUuo,X"##6GSUUҥK/|𕵷H$_Uss3CȔiii("KEl𡹹---$H$>yyylll(xAB`dFF˖-;r ~ }}}EEE/G| -())ő-))&YQI~MAA5?FQH$N5?_(UWkcs+9W׈/cP~QA 0iVJJuoo3F&$$^\\I'  MMM.]DA 9BJJ<ظA gee=|eȹn޼/&&ᴴ< ,--=AVV֕+W566YG!khh ӦIs# m+V Y}/' (++|9ȷM}o縚2Eʕu_WBh++ M.Ν憆:qq1gL8͛W/..n[[[??/_wwhKKK^^ވiI$RLLLssYsss'N[P %ܹs֭[-"}++O_~qĉ#ׯ_:thܳDz#,v75I߹"((:g`0sړMC?H$˦Mnܸ _BBB}}}JJΝ;o{߾}'$$XXXP|}GGycʕv,((055=w܈q8Ill,cgg|~e͚5|ÇlWZ]^^^TT JaϞ=EEEEEE^^^ÿۜd7o.++߽{ڵk|aaammmßۦ -j' '$BhPZ篿BC~:kPPz__wܑjnn;p_ {E'NL4)88NXXxٲegx%@Xhy?wvvuwwDQ˴ێ6mrBBB__s_d{$HӦM۱c0{xxpssDEE|||G| FOO϶mۤZZZquV9ɯ g0x{n{{{SlH1Pljtme']gmmȯgPY8{Gxx,: ?===>}XnYC/9++KpᅦwuJFD< |p ]<РOΞ=eXgŜׯ)65 ~~˗jk[7oN"\@ ̻[{ٳg9q5p&Cknn:( )65"YYP';'S}}`0>&޿_mͭ[M6l0: `-X ʓ'dd`0>f6lw;& q׵Ftŋ_R믿[xԓ>' IDATS4m|.*mbwoܸ 0'f'伽}k>|xʕX6]}[M!GHܹYY`06\5k֭ k۶eNrefn?xp//ð7&'o544eܹl1PPDXXeB$։Fysǫhls1NN`7oBCUV 1cYsffRS}1 g˥q D BQQuXg* 9oTl@iil߾ΝMrrN4f\qG~~ޑtxذ@SSvk,1Tj Lٲń~';ajɞq!tUCWW)l[]]_‚;uʾ4:Pu;"^^XX*)]ĉiiT~K@+(hMHݻo.=QXXu"7yݿ9UYbqYZZ%;hOaa˖HMuueȮ4ҶM|t"u"tt7oC: K RYI$D#::q"smWqeEQ4$${J]{{H6t: uO3gB~m:=ٶTXw߾x@Ǖ<<]QQ͒%yy__#t7WV6/:8r&)uff)Ymd4gx11槥ӷ/Zkl*uI۴&[Yt̽{c:zϞ;9-:G==/(6DG{cA;2s+`DZYoU:/ m+W(r߶;#qq^%%&&ߏ6>y2fFP{acFj/?֝ybe0,-)ApWɏԗ޿? eezj6AHL|eaqFAA"9G^YC}¼QQ~~۷禍! Kh]V֘| YXѠ(yJʕuup /]rKM-8CQ43;0 PF2^7ȠU0OeFFSR.=84vx!XX:Kuu+W}ӍW:2E,1qEk\8w.V)) Xg*kFFd^1UI Ο? 8Ly={̎qD4@X'  a(U `de].rByx83JO~ݗ/*IJz=] ID0 6 8c$##]eeEEs89v^@MmqmZRR[_fh8 `l>ߺWbg{֯uef̌q܏_iμsNNPæMLRha ۡ(K˙ =#G ^^f/;FG89]im[}q_mׯ-@G0g-)ׇgG^e:F#}}˗k{U/Yr۷pˡ#x_ H͛Jqq^Pqin |##fla1rSHk֬8ZZS<Ύ]baW XԥKɳVʟ?V54'%y2e; Z괋&&zɭ^\ zܚfFodo@CCMpkkWB r 3ӊ7vv+k]] 7mYTn9`*m A|KCXD-:ٳ/MMpˁ${/_~[ fƳVTE^'+ ""­Bda1Na SCufϖOJk n[00K[fƳVU5JJ2LNs@WWC؏ ~x0SI@dc3 n-4BQQ4)D,_c-r`fϞϟ{#Bp0@}1F~ӧwʎ6o0Ή@>KK?l0Ɯ'!؜;ڲ׿}6Ug u޲%JX…*FoJ8s&}P>ds֪&$%gwbb ϝKXXn-`P+Wjmn9۪p cx& 9I6Gs"pk kW TT488MK"fllχ[>]lbӧ*3SU)0Ɯ  u;;KHED}?Ғ|cA@ |B!gyxx?رə=|n!Z <+=lji~};; woD ߾}V5XPu8ze֗/?޿dtTR33S8''Nch!IaAPPɓ핑px<ϟ?TPXPu8:^? >2پ}w&ٱcaYYMN'h xVJ?>qbTꍒ,!!APLLBGG TRR&.&&6888A$*8GDDDXXA@ ]$$$tHYYY+:u!c VEᆐ!//w ē==={zz94V ]{V޽ ʹ*+K̛m! ")XLl;غ5 *r]G&czfNNNuuu"""ϟ?'wޭ$A?&~hmmb֭ ׯ_ڵkv!r)++?Μ9sϞ= ;;plllZ[[CCC!jhhhoogaa z*noo<ϟ)2ܐ e˖޹s؀8… 92|F!+loo8<Obb nqcr1<ƍ6\[_[g|ߟ3جBd鵵L Aׯ Booϟ?766b0g655cFnkAГ'OB?qRb8yyao.Y o||&sX&xcC$dVЌ޾믲aœiswƍeee6m"훆@55-`r333--v7Zn 111@ LMM_M...0̐k %%%͛S$IXo!B"L6x1}QnR%KԂ^>HOO͝p ȑWnn[S@/// 7oMWV6F<~WWׯ7F(((80/ljj*,,SmWWoll\~ycc#)cMlg(q APyy9t,]7ytuu/_~-@#g䒈g'NQ!z<nݺ[dee@n:={nvuu>|+V ۾xrʽ{񣴴,(hpb…wimm`0죌Epf۶m_|)**ڷo(7ieAAׯ?=rd8׭[M[[ yO߾RPسJ$eҥK꽽޽{bbbn݂Fg%ϟ痒 [d(-q8ܜ9s899[[[]\\6nAK:u\\>}zRRRoop7 >Zxx)Sn5IJ*I!8F[[(BAt>9FM?:݀ (4n!>s h4*1q+K666_E˗/ӦM#Lpř+@ oHN.ڸq)h>17X\ի#""pkP ={l q[/[ e=TQسg)ZL˚5z==}dur B <PZ?RWTeپ} BhdJ"` O׮= X#)9F |vXѳm-SSeP ׇXX5$${r0 HKKΝKYYií0Yؿ,7RRȾ><AnnF%%?í@-0"w3g(7TbXz{X%>=e#'ںƺkk­bѨ~<AZZS45^a xVŽHM}zHJJS6X XYe5 1`01"c Fh4ZLL!98\sCYY$O^p[55P ?:toysL@ϟYޛ7_l└T(!!SL#55<=W -;xrr1=\psΥa VYY.W&IdFk rݼ ^I*<+`(x<$ӄH_3gNyx׍gík49_OCC¯p)W իCCh$q5 eoUݍW O\Y {wk|y8 ^QQn]")`vvvʕ?|[bv`wrȅx6x ::z5h<+?TV6+Aaa90JP YB ||nnjSgKKΝ[Ր .r;WC˗JK+;:I}ƺ׷^@`螞n0ɶ?/хϞ}xq XmbrݻW?zcmB1χDk=z".G==}p:22nyS3jhwTU%d_'9a/׷?6_CCn-Ç7gʪϟ_l>u0 Asϝ{h`U0p4YQRvm]Zۃ­epp`%vAZZi}} \Ԁ9z`ϞAANoo3jMLuDD2// (ۗ`br&%nQel57n< }AАr<<11 S<+ ΝegڲbB*M۶25=[_zkZ΅ U9}&3GZZ톭岲jEQ5M/[˸!nYb66:aaR<+jj8|8@OOn-$:g?_N~` Ei IDATmYΝLv_TnQa)!!NQQA}}V"vvz&O&xH_~pkܹ'^xㆫ$ܢ v櫠 %7QTy߾eǎ%j*ǟ?#uBAAθ80mexgDFȑp /FFNig%13n߼44 s74rYNNX[[cbtg\TT4\mFL#--[D98=yZ^=qq˗R_jdtԩ]]C31 ,ں׭F""xcll. nQAUU2$uVvvŪw(uK66V?  [0W@; mg䰱&&䏝+ YY8z3++ׯ|ʐ?k𬓇'҆@ 皛_~xʕZ\Faa9b7[vΝt#-̝ *CW xIzi"ѣI&11⼴᜜=RNNW֭pi%|}- ׯZS !%%sV$b;&IB9uRpz^}} i?tqυ Ͼ|YeB!*O0P y3??sxg']xc9+AVV ^UP_9槣'00kzCOCCXqQQQ4+[Ww*GPs?޵}?.Zt'܊H Wb>jzJK TVYUT$Y>wSYVb0'9/uB$%Yv|Z R[Zj%&21LNccGXXΦM h۪V qfC`\݃sxnE$;)&%ëxցpU[[?R_\‚^ސf#>y,@xPfh=w4Wᵵr>hV]`ǎ8EDyxl)*ʣ'Y7ر6#^xdFR' q{|Txx.WS=[Z]hYxG9<+3s|(-rR}i@=++`@>3ao%:OnB!ٱk^%C^^DϺl %( LKUUSBBю iPgW:xyQ{8]Ɔ=p<-mgOOə~kEEî]Ҡ Z^Ngb]Pd:d8p P 2y=P}}}mwlҚBKKu\\ZZG~4=M{%RSf>v 씕%5>v؏4Ʌ ""Ԟ~Tre {['jkk /פXQPMIguŋϓ?hƍlmul}=>> oHiVdܢ~Y۷_P{ʕ87C`a9X1sdفD"|xxؖ.ɓf_6CJ{Gg hJϟ?|$ ^JzC~Z*HWw[\\Q֖A"@"T}#\ii%܊BCvvnE! g3gN1r Y۷RošWvŋUֲCpcJXTRࠟfn~? s]6'瓿?MjhH񧡡b5@l\%"mc3J?rT…5>X#yAP(ܹ }\VV-dZZ^h[Ғ<!-FeHDQw/]/R27TØJ/98M rnu<<솆 D=1H$bÆy==8c3p+NN׬۱#fUQQŋo$֖IM)#T\jkK Wkք+;:,ViA ޘ6M7=~?X͘!~uf՝JgE"KVF|?2mmݑ6̣Ff/_~99ϙf#h g4h*85 evޖkNee[`Paak;:z<=isi֬oVutZoRjh#+y\_߲fM`p0pƆ53S!.㭬VDhkfdxϛk^Afp-N3N 0oI&ʕ\Glp%*j#;;ƙKK-Ah:r..ր7'1m!f:w! (bB" LB||Qcc;p..WiNYLӹX Z\c`e0BB\˖]|9@:;n~Ƶ AҥjoVj߀O YJG\MerhV>}ZW*O~~@[||e44dfc~JJ~WS;GJ|~ɢIU R^^'&]v]<$(X fBB,Z JAoTu{vSss1az{56x c VWzK__>/"bb/;zϟoAz<+MWnn)h#ROO1..֐'kמ׷(@go<߸@ g~"ܹ l0<+*;6O)jcmY_jjzɓ0*ٺd[D}}+?_kw7 jBepBoytÆy6.jHDEE"=P!4V;;˖-T%`dWX.K|YQSL =<+csZcoHKK޽ 66:ff LNN@'jE77ի._}#ud&..ְ0CV>r"(XOOe\ 3>SV Rʨ~u. fkI)INNhjj (&&FAA*))qqqggg#~SSS555pCCA>zHZZ://o؎ڵkJJJBBB'O9x p566"Hooo߿APssڵk%%%(!Z& G`0X,g$IzC݀RDGG+))>}ÇKKK 999577db@ \] cbKJ~,^C-mR_s1ܸ< tf&XWtL ĺuWWD)k 22'13E8999;;Չ<@ ߽{}Ů[*** _~k׮EFFn9pxǏ ;;plllZ[[CCC!jhh Ngii̙3tR=sLKVV֎`ooollR#G VB1nvJJJڪ7oLB&O=J]jUSSӕ+W ϙ3gKKK߾}=1?c6# yݤd8e;)k\=}wq IYfiiה2te=R t̙%KPwܽ{W^^~] <MDNN[:Raw%6{G@ pǏ8~ee/1텅_I] +CYF gϾdfݾĴwƍG$훆ƿBjjj[b6lhoo$loop|| >}HpqqA`\_MMMKBT__/''Gl///_UU5X ?>ϟ! AP[[[RRҊcDۑ+Wܻw?JKK̂ ZdIpp.1662eʔ)S `0߿݁6gww}IcjW"ݻwlǏqu TM|RRF,BB\AANFFSʦrYYuee#]g}[UWgve ^ ucEL۹3L;X.]RWW%kll׿u4>+@8rs2o"@^Jm*ioGf%(@&2}/Q( q.d ЦM 7v tƍg[35Ǖ2tFOO_~GPY]:䛪lv-oEܔ  yyy)a??ǭ[..so$oɷ,ii;8-;@X%7ؑ:Uh\sP )^^vj? `\dzg08\LbFEҝ*Z^X[?ˬnJH(ڶ\{622 ՝1c֭[Ϟ=Ke<(ם;ۇ]c͝a|jȱhÇHoB! 斓3(%z~Č;U䲢 IDAT&[Y 液&cqΝm۶ sWGF Yǭ̙3 \\\ϟ?VaFF<߉'MJJRTT&_,&E_`gϒCuo>>UU6o$' T_߾Xo =<ɧtϊ }N&B游۷N溺i!(e˖/^=|ԩSXKLL,((8}ݻs˗/=zC={ԩS'ֺW۷o`6PYv؛@ !!wrrBh42$ĩѤ ё״u靝^ 38m˗bbkjCqK^<*`}BMudFD&A@!Rxg5W1)((]/o>ի)Yˈ,_ܹs}dTTcgg[__AՃM q~CΚ )ŁDAD;M)ܹEOo]H\ *k))~cbۺ (PǏ?Pr\@=APSݽ7X,UцׯZE-[P+#痓蘟_ZZzрbaBtր1R}pC[Ql۶m_|)**ڷo(7$Ύ w4ٹ3{x+UVsqq͚5+99yOW#Ǐ啓KJJ)̙Iw3gsppO< kj5qb>eAA[Ԥr&/ġ}!$&T!DFKH4׮=3ȭ C=ơ+Wr`2 yV~G$i[Qqo@@&E$ xVbزzXkn=+@x NWV6RM7׷cUU'O>4@ nqj0k[[7a%8|oɏ=.wpЧ*iҒIO߉D"/'Wac%!7cxF8  C= ׯ_mH>>c s畂9F}tFM9&&nUSTLYlooET22ޑ55ps䌣J 55MH~~^SRJɝ&'յ[7"4CXX8$$2`vm͑ΥSָ֭&G$~8z즦Mߓ+FΞ=-'9UR<+;D@T%;Css%yCB5L*)A~~VGZg@ @p?RRR=QddSR]{u׮ӓ'VX,z2COHǣP3]1Գb0(ϟaQ3 ||dz<~o%9FZϜÓ@ kUl ,N:;p>Rqܾy۶իC.\IM~~م޻Ғ$ *wKJ{}}w 31̏rg58=m?L#7ny*81ޞ}I>mS\|رuu-9q\zu5Z+\] \q{ӕ2a`7o~^MJŋU>|Gz,_dcϪ(ׇ͘Q䯭m 2p 9F"".U塔* $AϟU..V$'Ov/Yvz1[))%\,^]M0gv-9})Ɋ,Qkm"į|kk7ɛg`vv7W3 |8\_p :*psN«W%%?ׯ aB1RPݿG._vbels{7I9sJRgss+*ȴ6_OO#cIii$Z>]l0BΘ!AoUBNm)KGGOnŋ:tS -- 4EÂŢ5np} 22-Xp|TTAg+1:B))8/XZJ֗$Xuxʘ/V{"`vxА*)|A%r`PL߸Σ*xA<bb6M"Mûv~΄55+*,#*s͛c0\DׯW*H/WXDO 8#yVk a9kZZT [b]6@" 4g;W!4Թ^4G'mtٱ˗k]~krL-Yfmsg;EIK__ {Vuu)6%%{ŋ'돊*ttmACawp'=}Y.dΜyAzzlS~~Vl;vU]B39_lӧ򲃭V޳N*emŌ$UU#*HNΧrD49<:g47w^Ke5A ^^fGZO&r]nn-,f66v&&ё>7IK{;s49e_jf*&FV9P <,:qqrsZZj>:a@͛[~u0ڲcTGTS$}YKKlň) _UU.C33șUzc9Th4i01V7Gڵ4VgJ&GbǎE۷nj-,f%L]]KMͤHCoY四;*mTᎎP*O͛) A*:X[nlX149sncMĪK?͊=H1)O@ LF3fqтAtX"dePPX׎A)7zf~:(q~M "ݛ9gӧpK)R))[Z/L,.^)QTg|ŸXccΘ!ZaaDϊD"f͒}rĞdƄ߽ 뷶֡$AxdD:%%G\}yN=g"s8Fd{rsYX{W= ..s mvg%_[[ݜO$jk˾| 00Zi\CCżt:mSzjQQT0 J&lYY>;uu^uFff3 aaU'@ NmhݢE*||EX֖)+3g56Vy~((2gzƆחXoV9:6EL b۷/]on\*1V?pK.\\QQϟno!I{?thEpaOb0(K˙11I9˩-ׇTkX[OVw}eKԸ2 :e7+77jl1-Hb0óBtZQzz|4}3FqKQQRU 4N0 bNFwzy=:Bju:gBhGޯ_[Ǐy3BWzb< , }fzFFJ,RPU,-bڝ(N55c,:twoΚJ?=&oo~]Hkk7/47Wmi|))[>x1Д=+ zeAXMMO&)'GLDN$%{ E Dݐ@ӧ{{e`bE@TTCꨫKݻF g?z4yM$8;&ygg54ʪ*3g h2oVf̘!F#KK'XKK^ }nn.!:U11<8kMIJ鳰Dbza~~ӧmbcgp(hhHp,YML98IIVC llX99oB?@ &Ç7o*W֥*Le VŋC[}65=kfv><9 1)G[[s zD'V뮪*imLJEnnW'&{EUURSSzi4LKHrRRwOԤ:B>>ഴ͝ViS\"xVࠟ3;{j3g(:ll؛77̝`kivv% .̷vJF;!s=(zC3HrݻƕCJH F>}Zǡ$>ύR\"4FQQteG!rws/ubi  q27Wwr r@iX^‚ٿ+4yy٣G АOd,`Y!֩m!`bּ9sM ަrpvga_NQ!WWäcuM o࠿qcĘWXW a,mg?Jv' >!!. L3YuuFEPO 騫K1|_ŋsL@ߘlIP /ƅccyx׮ts@;faΝcV3GZ{߾NNҋѿ3qxVggdLڲ^U0Wq񏶶 xVF`1W sVzD]ދ_X55]%Jq bչD ',.kj<9&55)Hϳ.[NJhj3kl[[wyyB&ӧ⼲B犊L瀨BX];g͒Ϙ9wqQ_H 45b0(+*aQ(?[B*("A+"J^.pmlrq5`|>Yfg潙]ݔF4}uS~9s22ǎ-};ٳVRa%Bnb !7W_n͚) +/_~ҿB'00RyL? JHd $&~ɩϯɩx^JJ<+ŋwJTTd$pGUU|)ogiMMFWEec*?VᇉbbǏsgͲd_\x3'|7}mmœ'XYiG%@իٳF nݷGmcp{{oƍG2=|8+9!CB‡ׯ >+ [M,-'̝kMЂ_94%HBh`m&XYi+:˗VGG3vn']DjG;y2͎W_;d`1~~jj"HJJL<ϋQQd2uQKK~l3g(Z^N"ڃ^_D zNN%Lͭ?cي_mvv훷z=ouVV__;B5NJegI+س'9+ ))u(QX%,)'{xLrv#ɤʥK!**#006.Χ||'tvRP>ŋ6:Ο_ xN='9 p%%iSS/@_i.*뫿Mg'%::͎OZAxȢE* `:׮|uߏ67׼kii٦3g&N=r$A>>Vyz^%LG?nǀ8##a Ȳjhȹ؜9 C[L1𡺮UX o5TΝGI+oqs#wd7o&&߷= U"#;Ν8w#EQXqsKH~08^[L+,}ha$#YX ";;>m~`q|R s-G 8<\|uN\~`߾yyyUKsp8vLBC'ږ n5ꓶݻZ[;c{ef1A >Ʌp@-#3--Rk[[ׇTDD9  ©a&gر?{y]e0$Çο59ee$QQlT_zBg|ʹ?r޻%KDk\(;~^JED;JOcݱcGE)-H$I믋 g='lEj rBBW&p'(byt4$$ֵh?a[n* Ix&-wC^~Dkk'uPв ꠭te|ۛԗz*TRSuuUU.8?&7R>'N(/*Wk/!ܾ}[,H sZm||…cR%碢2(jk[t:JѶl M9`*...Ɯ`(~4 + 1ի>1~Ba .Ԕk)}v777aki؝604Tٳg̸7lxCAAJGG@S4\.z'IHUҁu Tڵ{cx]]E ޜD*b7/!vvϟhR}ZdEQ422}±=d "?{Uh۷,,ft4&&{[}mӥXEQgjEg.aCuׯkׄsԩٝb( VwɲyST^Nr "44䔕eXޢ蹹ο~aW\Yy۷KKK8I`&s˗={`Y<gi͋@X3˪ véS _{kM3kj^*x\Z,++٧p'-,4dH.Ju^rA^^9=@@`֔JUV6=cWA]\l,- S6|!.=a\blGb;;}u)Ztt…ЍrجD::.=˞/))kMM 8tUMMCp8A@II[F>;( ٿ߅JS(ThY/}9dd$6n'V+)Ifn;'Orf X.{za{W\\NKK ^| abMv FFF̳3gΌ-((022L–]`1p8LJ)J۷**ZvruΞm2callŋ/.#!Ry2F):LPhd2LK蠐ɴҪ\.k6092\}}97:;iX= KHH$; c*)){_0ff3'KH?O\nHM-#XYpkB‡_~YW3qqqwޭp\D ޽˰>tppvEѣGPlqt;wc KT!̗/_%~㭬9#!AÄ ŖD0s%_$>lllܺuĤ@PvܩsN RXX HBBNRRR@@+zDEEYZZJHHT*RRR#F8q"@MM ,˗=TWW?vVAW)++;v,88X___VVv߾}4i҉'$ h4|tt4iժUJJJZZZ4jFQں ŋ߹s1 _hYvWmᬘ5kmmm " P>Y=**s?TG_>i/ saaaXbʕ555)))X/ZVVekkk׮̙3>}zss󬬬 &+&..~+W@ů^(& Kd[]]-&&YQQ Lww˗/ZZZ.\ggϞhdd-޽hooGQtٲeӦMsVVŁ5tYL?($))ZqΊ_ Eѐsss:cyp` 7$&&d&&&vKeEQ;t_v~֫E ׯ];QSӬ㯿oبeiiyFiuu5vomm}P5jTDDv7//qݳD"[cc#Nommh슻H$evuu}𡭭F={aiii(bg ={4Lޱc?Hlll 5kV`E"""5>}b V7o޽{7!!!NNNtZږ^Rjjj (Κ5رc>CUhY!C _8y\"gړ'. *neŭSÇ钒b}gWsss7nH,))QWWGA''b,PZZjll-X])yy7ohii988xñ,FPYwvv;vlPPs#GDbkvHII>|޼y666ϟ?OLL={6Fbō``N:ȑ#؟,xw(m*C'shK FDD?ydٲe,˲*+v:}:A-bbQQ7Y eg!j ӧOa$*))a*E߼ycx ,%##JuttwH5k̝;D",NILnGGΝ;Ξa5=pf͊Ϸutt9fYUUUx|QLJ}YSSY߾};11][[[_|3̹9b/;w11 ^EQiiA{r`MHOO'pH11lv???+++iii;;GRTЯ~CX n>\ASS(艳rR^^ r&#ښݧiieU%C===nz֭'ODEV,\pݥYYYgΜa.|={lٲӳ 3f̸w^KK L&,GFFpֶL&uttZ[[i&̚5ٳ&L ӦM %Kx{{ݻOJJjԨQvڰaCgg'&xWWW///;;nf9w2KQlʔ)T*˗/sD99~z `M577oڴ) `̘1qƥ;v,--m׮]!!!3f̠hׯ_W6HIIuN@窫U_0Cǎ=#02i!9uꉙn mԩSVVVd2E﫫c˄---WWTT\~}{{;ggg{cc#޳aaabbb,dl:+Ϟ=2\fXSS@8tbbb~~~ A$i劊۷o`UGG?s'%%Μ9ÍVb6l1bDKK GMU]geg3{2{_rSpk]]]ׯGQtÆ cǎ(~bjkk;|Ok'8?ԩ(1qCCc{\\OW?}~YH ͛7hN2558qӧOm7u1bѣGĺ:777ERO<~˂+W*))=zƍzzz222{2d___eee___2,V(fdde{Y$Ei4K,YV@^7x{;(Ʈsy >}tLLdJFF56QQ!DbAzzy1@,-{qjHzm&%%=}4<<<22сjjj( ʹ7 Y=] 9SSӊ . l7 >D"ߗ&'wǼ_R["q,2\pnne~~P ^^ Ƹg|5ۀ//ֲea<[;~ K<ό ??_CCO7G+WNxP_/F21kdd. P3g ׍ɠΝ;###kjjbccEtb^[(zyyYZZbQ}||TUUn݊ݿMMǏ ~εkuuu5wl۶055Ã2|rss3>&CbKaa]|YWWWIIi֭BKKKsd5Kr@h;$$䩫qvYÇZZ;|ӎ[̤IzχߗUo nfΜ):Lt4 ިIWWWrr2Bl|={"ں-kĿ>2.?|4f` 7|BCC~Wv9Q=ѣedd=zp>)qN8###yyGEFF5JEEۻe"{111E'oECC={ @ֆ .<%A찴w^htWr8pޢE/]hhh`ҥKuuuFFFؿ/'嵵uӐO^w8fzyy ^D? 6Ν߾-ⷠ,MMĒf.{P]ǏDÁk9 C9-,,BCCe|.8AzA ~ ˪$n7or @zodݮ]w|ʇ88! Ἴѣ5{nc'g >|< ߗ-[fjj.˜6mٴia``௿yС#G8::ZYY/j[n]]]g-[6}Yf9;;޽C">^esҤC?pNOʎW?K(::>qF&SϟOR| L|%***##gxxם(`,w0hԥ O')cozc:Dӧ g[ F+_ڽ{MMM۷yfa+54A$/////O؊@ !L ?^x7F1iBD{9%yyUD}^Zng ׯϯ300x222=a8|< Q@LL[ d7P(4(>|HCđ#߽{ñu}[CNʘ1^m/ aaannnV"2LQD"??~>u D,^<͛|'yyn_JLAS2e7?dUnj ǏYCu.7QQ&J "aYWϘaau>9ḺnTW7H휷/Ԅ<8`@ XVA_*!!eK06# IDATFy  ,*A8mENJۏ[#BC \G8a7ՅEѢ:ccUya^Q[ܷ/F'1񧰰5d8#rRttok^tBQQ%.T*=..g(M oP;׬ve@ ` kk}sqgV[oǍU((U>&$]ŋ|ssÇ]//../3nc͚)3gٰzEE#].LAAH3njтdcW_\6>c4Dt]ˊ ȉ**#Wۮc)Zt4Nl-(0LccTp?d  %%i;S^^-nNU((Η N @"mY g.Lttwmqa^ULa##43 a@K?|>|5%eU@ Ne|(?>LJȫ _6fZ t4&&{l8` @5Se˴Mcbv*6Y|ҩS ?4KR!?βֶ̙YR[ʕs^d1ƬA~}5Wy}bW%22mU1SPP+#3BUULCC3p1 eHI_YYww)(H͞muˁW K(dXw݀d1h,+@OOܹB A@ʕn5j />pANGcc.ːZyUNn\ssgaa}g6w5Nj)*޽+aNyqڽر ENaBѷl 0_㊭8N6Cm?;88DYY:# v7+8vp8o'rrnmHm1up1 IfwWFfǏGC'xB-X!Űc8ᮣ "(6l=`:3-̼ gd," /6%'~F> FQ1-#g<]]ѣ50βD_B_cT:`zqkc$++g fho|i7d^^˽(7&&~w~3;D@ f8ZV qr2y`(Aq2왃W*\ɔ)8BG@@ -:ZUT4ΝGII=<9{6" PT]peZVvv!!}gͲ"h``,6llo<DŽ)@]]a~kRPP;k&vflj@ -o/S.DpYTT4 n2v"옘O}!vk5k_Ƿ0(*iJJ9ۻwjiia75uzzmm궵HKKˏPP!//)++!++,\[eeQ@@BBDp7˗/yyy"!͝Ə60P`N̬63S֡.ii6N!iwdIHde%ddFˏaZZZdddEڿ6))IFFF\\OԘ(w{[xH]]ѣUT@D"-|3g"I؈Б5ޢ?/III| @ /@ ^-+@ ZV@xɐeeeW5[aa!¸`.N ޽H@[bE]](zxxHKw?ŌC{zQ^-g %e}Y***RR_NN~bWۻ ܼiӦ1cOsf^~]]]]QQqڵ[[[LTUU F v Y7c tzC;ơ޽{O]uw4558q]掎0=}tFxcc7otlRCCK8|0Rt:ݻ$i͚5s%H,:;;3+FRܴ[*ooo6 ˋyS1Eϝ;7{l176c{vC^POO/33'h3C9d3J===nz֭'ODEEa .ܽ{wiiiVV3gK-_|Ϟ=-[JKKٕBdƌkii!D"QRReH9997ZZZN<,eC(eiif֭[4,s]]]MMMeeg,XP\\cn͜m SSS=<<8$m8<ٰaΝ;###kjjbccϡ6FZ p, Ƞ)cnYO:eeeE&Q:TҲzjyyyEE׷3Tuvvjhhʺ766b=K(fhh(&&fjjɲ8L5kb344&rQP(hŰnŃ?}Hy- w]kkk/[y]tu2F=._u֎_ΊC旇JIIIM4 6`zm===.g!PSN1*^ EEA}`hY!"##M"@-+_TTTΟ?M"@-+@ ZV@x hY!%OPK\\\ZNKK )@xWU\\AaQ!fB/WTT ?_ aW1 p \g@ @ @ /@ ^-+@ 5 :qIENDB`XQilla-2.3.4/docs/simple-api/StackFrame_8hpp.html0000644001725400016040000001023013273140077016474 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StackFrame.hpp File Reference
    #include <string>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Item.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for StackFrame.hpp:

    Go to the source code of this file.

    Classes

    class  StackFrame
     A class that represents an item in a query call stack. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp.html0000644001725400016040000001130713273140077016562 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ResultImpl.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Item.hpp>
    #include <xqilla/ast/LocationInfo.hpp>
    Include dependency graph for ResultImpl.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ResultImpl
     A lazily evaluated query result. More...
     
    XQilla-2.3.4/docs/simple-api/structXQillaAllocator_1_1rebind.html0000644001725400016040000000755513273140074021656 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp >::rebind< _Tp1 > Struct Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Types

    typedef XQillaAllocator< _Tp1 > other
     

    Member Typedef Documentation

    template<class _Tp>
    template<class _Tp1 >
    typedef XQillaAllocator<_Tp1> XQillaAllocator< _Tp >::rebind< _Tp1 >::other

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATAnySimpleType_8hpp.html0000644001725400016040000000765513273140077017465 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnySimpleType.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATAnySimpleType.hpp:

    Go to the source code of this file.

    Classes

    class  ATAnySimpleType
     This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType. More...
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_28.md50000644001725400016040000000004013273140074016365 000000000000006800c4b6cb40a6da804f72da04bcdefcXQilla-2.3.4/docs/simple-api/classInteractiveDebugger__inherit__graph.png0000644001725400016040000001372513273140076023521 00000000000000PNG  IHDR7pjbKGDIDATxi\S$MZJEU[*jHd\Q-. X-`oQTBEZ)nTq)$C:w99AQ@ 92Х] ;ХCiӦ:@sq`/&/A"2m4333 Laai4C^4jkky!)<WJ\@\nKKT#[[['$$HT{Dn)7H$dl;//I]]Ȉ_tQMM̙3X!͎244$QQQl6_XA~gicƌܺuEGG\;s (ʦMzzztuu/_<٘kbfccc``?m(dooꚗ ¡$dYH;i>߀^*pO @ff&*@III{{;,++svv޵kL&SUU500.555bĈ$:~ bPR555&Mںu+ʲeڒ---jFv?۷t@1{upp(--}_|(XvFF9EQ477ؘfE6ƣGtttDtuu-///**lbbr7n,"b/eȫ"PAT!~DQT򣥥===/_dXKJkkʾ}ڸ\n{{;AQtt: xƍ'\zE{{{~YۡTO>ܹsX/^`tGGÇQٶmF:hQ(O?MKKMOO,JC+JX*|OMMMeJ0RQ76^gd'pܗ}/"HKw3o(7- LMMwb r8) CCի'h"K8lvŕ+ORR>u!p@~05N( @"q\kg!!_}dA&_qXgK B DR*Jt8drקmjʕ/5|C.C1BƪuulQ}[@<}FF%H$ʑq'APAA?,@硡n#Dȑz%d޾}f3fP.u.Dd% IMm= 2n"A$D?>y=9u o9 ۲o~yydĘ5(9`=gڨQwf0,gφal_yfdh-G^ɈIk֨\`56.W|w/90?WdJk::.9qbR,!)O}(ХmYYmm3?(s{'6{)aaxˑGKqؘJMMUuz7kŋ#@Cw_R^7KE_` _TUv3V>qgF!Jx\!~|-2;_x^8/U` gUen(\Sf@*6/_PSSGɨUO7Eet&g NO55UVqz{|]E~S(nKn|@@˫W^2.P p: xefZ̚[vZa56fR*hQY]$UU9|qu9"(ꗗ/{!el\gbIE~YƲec>lGp w=,#TT$ DEX/<<n"yt:/::o!0oUWW ]8;;-"%HxwK!ywK!yT򸸸(Ck`0$ D Ke N_dTjjjСC999YYY[l aX RYrLTjkkDGGGOOO__422ʒL8@J7oZju<<<.]tҤ>l$Y\\`www*p8))) %..XCl6{ѢEEEEAŋcr˗S(a0oEы/^z…6m*,,tqqX8H09ХR =zh{{;fsaΦGݿqqqJJ VNѶnjbbsαcǦ%''3w%$$֦pss+((@Qѣ#FL2ED055mhh3??{i! 9sf~~~V8hBƎ+1PpKBԜ7o`Xʕ+׿duhhÇ'''--'Nlܸqd2q@kkk++-[888kzƌL&իW[nD@X 6٭YΝ;]vʔ)ړ'OV8hB>ՕRG__ 1F*mcijj2}Kš1bė_~YPP`iidэXtssx喖 M tADJ`bb`XX9Ꞟӧ+WF؈uʢ"a~W[[q%Q~y+?RWWgmm 5|'!o߾>VUUYja&x񡫫 ۘ9sfrrrSSׯ7o|lv__Dfhs=~xUUUUU/40,)SXSN-XW(Q?sǎt:Kt#Gח?~]SSpN$B=z?`2O<9u  M{~‹1cL0J: ȬYBCCy_AMMͰݻw9rnnn7ohQQQӦM D={[fϞ+(Vd2رc0 ,;wD JLLLMM]~{ $$${aڵ{X8hB>NdFv"B2lcc}{3gfk``@цX΀#^y={***zzz^xqɅ  ,[G?0 ##/Z 2R!AAAAAABG] ;Х] ;`?B~SNp8x o>{;p^ ;Х] ;Х9IENDB`XQilla-2.3.4/docs/simple-api/LocalFileInputSource_8hpp__incl.md50000644001725400016040000000004013273140074021367 000000000000005daffb4f517687e8aa12afcd873d5626XQilla-2.3.4/docs/simple-api/dir_f2fa734b64154a4ddf51da3a7a041eb7_dep.map0000644001725400016040000000345213273140076021522 00000000000000 XQilla-2.3.4/docs/simple-api/open.png0000644001725400016040000000017313273140073014277 00000000000000PNG  IHDR BIDATx 0 ׬ՙ\39b!9{|I>$#ߴ8/z/>2[giU,/~\ 9ٸIENDB`XQilla-2.3.4/docs/simple-api/classInteractiveDebugger.html0000644001725400016040000001417013273140077020474 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InteractiveDebugger Class Reference

    #include <InteractiveDebugger.hpp>

    Inheritance diagram for InteractiveDebugger:

    Static Public Member Functions

    static void debugQuery (const XQQuery *query, DynamicContext *context)
     
    static void outputLocation (const LocationInfo *info, unsigned int context=0)
     

    Member Function Documentation

    static void InteractiveDebugger::debugQuery ( const XQQuery query,
    DynamicContext context 
    )
    static
    static void InteractiveDebugger::outputLocation ( const LocationInfo info,
    unsigned int  context = 0 
    )
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/URIResolver_8hpp_source.html0000644001725400016040000002633413273140073020225 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    URIResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _URIRESOLVER_HPP
    21 #define _URIRESOLVER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xqilla/items/Node.hpp>
    25 
    26 #include <xercesc/util/XMemory.hpp>
    27 
    28 class DynamicContext;
    29 class Sequence;
    30 class QueryPathNode;
    31 
    37 class XQILLA_API URIResolver : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    38 {
    39 public:
    41  virtual ~URIResolver() {};
    42 
    48  virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0;
    49 
    55  virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0;
    56 
    60  virtual bool resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection) = 0;
    61 
    69  virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) = 0;
    70 };
    71 #endif
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    This is an abstract class used to resolve URIs in different ways.
    Definition: URIResolver.hpp:37
    virtual ~URIResolver()
    virtual destructor, does nothing
    Definition: URIResolver.hpp:41
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/dir_0d8d8d528984d74693bf008fd4d605d0_dep.png0000644001725400016040000003173013273140076021273 00000000000000PNG  IHDR)/oHbKGD IDATxw@I'D T,`ATr*"x 'bZXN=+6P-tHϓ_. !!lXW;ξ3; fv.P%9P%9P%9P%9P%9P%9PC,)-- g2X;"wH={b |˗O#rGZu(qpY];4v5`_s!8Js!8J\^(++8PC$@ `!P򂺺ƍX{Cĥݻ466RSLbΟ6m!Oy0pnIFƭYmm ƌ:q %.]\\Ǎa׮_}kזO*))%%] 4Yok;4#yxYWM6vSDDqww\pٰa#'7o>mLЭkXR@_PQQQ_DВ}(qJ?r$ȑRk! @PKJl nmm*E_H㜜urDWנ 'Aaap k.[bmJJΝ+.,kӦ =zyM={"Mw7IRhiiJ\\x600FSlذbE]~89qcPuuݻO32n:9_޾cGn| 9{dd2pw.-[BNԟ'(q8>n˖ 98u={ ߙ|I|O4ڂzM } پ}{7{ʺ9mٲ#F8*p>jTT h|4z kׯL@丹EUU%Y_@PZ+//|UUh45;^#G }}Rs~+K"JK%%" a[XWǮc߹e۶w!8J5||o޿qcPEEBxxl޼7woZ(HKK3a,ϝ;+*޾͛?-..b-[bm\ܥ̻7o%ׇO4mV[58xCByrA!l}$!ϯ]B5ѣgK0pFbb,(q΁(q΁(q΁(q΁(q΁(ҽ{'`˗=~|baT W\rv~n2S\% ;q㪋;7khhIf $&?~Ht:kx8k)!!+ vV-۵JJJKAA/4i{X2PڵK/hׯ}YcX;% gf\h3&ON 8:4tSUUEBBll`픬QUge^tH ;;ek3Lԩ_xvPܕ+wFSXqn.ȑ#cƌy1NI+񬬬7/JO4c\Sr_UTT?~wYYNBMMͦM.^8|MB?{tiXDWQQ1g#133JMM]~ڵknݪ,8JMMmii}.SB?}&nC~JFFƢ$>0NgHzd֬YǏxbDDˉľVgffoڴiӦM=u?.Vm~~ ޽gZfbFp8q⢦vo/+kkkw3f̘'NIXK?^8yd}}/^DFF***ʦKUUU dʵՕ񀄠dff{9gމhOhjj>|ӧ#FزeK[[HK666)))ǝ;wdVtkkKL~Ʀ566uuyutGP Ɨ/<<\Dmˈ#%%ѣGC~4JAJ-88x'N|ꕛ&n:R#+W{0=47cXg͚? Yf{n֬YrۜM999Cߓ1q䟤6lׯ$v&Nlc3TI#~ψ!ty0S7@NJ[*6fR]A~ċ/9˗+K<} <~XW\+WvN8QAAý.}&޽{wddO:EޞEnn} 4-,+$$jS}H$jhhZjСbH"OdL&_ݱcӧUUE<#:AP=/`zyyn9>>D"}Ax%KdLR˖-C׷|%V>*?jkkgdd`'66B|u cK.Ƞʴiӊϟ?O$sssQGDOJƍ4mѕXimm566駟dܹs=6EEEF?,iҤIRrI Fxx8@駟d@ߓÇI$ҥK۱_޽[YYFJ|ɒ%BҴkiiq&W^W"ܿ &|YE%3uH}ׯ4mǎR-… $Tcccll)S_昷_655577ϗe}FMMMfRTTLHHt4/?UXX`~WTT?::Zϟ'L&B?}4|p=='O`JJJ?..]D"k EDDH%:ȰӧeSbxIIeqq1־wРA2(b9r̙v'V@){',+22i&']UU־իWD"{۷GK8>%&9bĈٳgcRy^p$idNnnsSS4ˣğ?&_6* 7o`Rzqq1Jx1D^|5a„Fԍ˝ğ={6}tynlvGG1a͚5---%5G0y.<]]݉'//A[[Uf߯_r }QVV.@#SkjjN:ݻ/G255uppR E555lق#숈ďX7XOOOMyxcc7jiiPw:I˗/***{쑲w!##CQQqɒ%h' ;;;bKTVV*)):tkGIB###Ծ}&ez)ʶmP&_d FXd)аh"}}}uuQaX' 8Nw$..@ \pArSK|D"155kGD"//D"qvtss \]]GI׮]+WTT/_䕄QԿ[B;Kd2YyӇ d2D"W&bRxss6L&sܹR>|PWW_h>'&&&,,ܹs`rƘ w^ΑW^EDDp~ٻwo!onn1b$1x[[ې!Cy {nii;v6m0`/d$Hꦦ 6 {9_b47oRYYk I|4MnlʼnHH& S&$$`"SNקP(~HC.c$ɓˎSSS |.QPZZp@ D $dİPYY9fg/2 <7l6{۶md $^QQQHOO珬gܸqHsРtҥ\ծC)**"77=fdXXXb%d21REsvvf>>^EEE$)99YJHqqe!ϟ?޽[eEPPB!d2X#6,+""@ 2j*3zzz:88H7TWWWk)e!+W@87%%%:". <} ViԤcJݻaÆw4<<=w$$55b9;;Ib7[^WQ}}Ç;::<<<{=CVVnWwgϜ9gmm-Ĉ%ŋ<III>>>B.Fjkk_#999԰$UQ^^nii)bz%fɌc&%%ub%$$3$էIyy9B9dP.V&\x$"XLxyyYXX۷OH)Jٳaaagz@ C"֭[PWW])Jѣ ^B.$bΜ9b %%%)3gt@ZsNEEC .\|g%g:99YYYI>aܸqȠ?RxcccJJҥKaH$zxx >+"/]D U߸WWW󟒊į]6c %pvvVPP@}ٳgn%%QF=~y&tssC2"1c~ ]I@aſKZZZ<єxIIIeeQ --(sISSSxnn.E:TQQ… ibbI|m uu={ Gtuuuttº̙3QQQ.\033h۶mCrݸqcJJJn+W 2ׯ_wm'(Y,VSS&jԩ1&̔3J~mȑBPaI#285ieeUYY}J`Zb]:::y&֒!CeP mmm,+99. `֬Yuuu}y^z{nNz> Pooﰰ/^;v A#?" Ui,Ԓ"]X,iAe_rNwvvR(%%ŋ/o޼yMPPPYY eeeyyynnn111=IR"##MMM]zq={l˖-->%Ԓގbuv V511qT*l6=44Fr\fg:tRuuuMM͕+W"|A cccǎ~]DR 0@KKkڵmmmV7ԣM!/s5}:j(H[q<}ё8:G^WhnnჃ)t$̝0= L&SG O X===###ShJJb [nM2E)(qHϢ6. ɨX@ݻ]]]SNx#l)o $==AGGGYt,:IDAT$ kXܺu^ urssf̘](qH… BTAC0 #11qBҠ3ү_?~FYf.@XE&;;{رܾ}˗/ .VB{qxyZք]PPYcc㐐T B4;3vx񢓓D[Cyy9ǨXggYfɦ"vZ&)e 11k/РtqH؊ț7o߿-fuuu3gY:$>>@ pCB$AtqqYׯ_DtlcԄDGD"QEE;7&'$$_^J᫻cʔ)wqssklle-?~\zu)Q[SNdcVVVqqAGN:UHhJhYL&ɓ˗/j񑍍̓:::Əђ*o^v(Q.YZZ*K"2N0zooff6}tQ)ql[GΜ9sРAս?#l%7o&HIG+%moܸ1yiӦcވ1=j722B}~P8 IIIgϖS555gϞ }jt \[[MA 'BHX e˖mذk޽{Ԗ,Y"z$njj (++đB;Bttfhh/_y>Auuull={7Z gC@`06l r">>L&Y/Ner3G% ԴM\ zzzd<yΝSYzϝ;/^]CeȜ9s/wwwM 7#y{D {dҤI˛2eʷo߰v/~r{M[[[}E="oc=2jԨY ?F܊ׯ(2V,Wc=beeM"&LGƾ~z߾}ˎ2XadffO8˗X#nݺ588XIASↆ겑820 5иsΰa&Nx]ݑ_6nH&mk hJ`mm-#cVAYRӧO9s+WvGyY||Ch4Z,qAmmme˖iii޽0}eP8T*5!!X#_0+WN4G;(ǒqN'%%]|{, d>_OO/ @RdYH'NX.,, k/Wѯ_@d4r@ TUU!_ܹ3v^|AX,ܖ9B$׭['ukiiI+VC~#)ܽ{sy߉|| z}]]]qSRRAa…  ߿čR_﹈ED&9a„aÆuvvJn 166F:gNNNeee_=z4B~TTjcc#:)))3gNR_}nG!ϟ?G3ٳgsH|̙***666{522820$$5w召,?3^i D֭;wŕ(++oݺ-ξ}ttt8_y?iN8*?@ |W|#G~ExJ %իC2 b0&LkooG&s}@II L:ۻ(++0--M,/)..*++ C{yy:u ݲvޭ+m_; W{PVV⢤dggw,۷os/& 6L__?//4XIYKKł?NRߏM4$f.2XraE]]FwQxRRLᴵM8QRUVn[B ep1ݽ7o?Ľvڅb)WVWW///G&Tjٳ---<5jF>AAAa0`ZFq0|Wg  eѢEAAA%H|ZE̟?_TTTlnnY&ɽ7D">>>iX,֭[?}uVkkk ۡbJZwI$իQt/ɽhB7׮]_KP$qummֲe:::8ɞ>}9S UC&IJb sAq_$&&F?;;***oܸ!ŋ |8d6b,,,lR]]yf 9jl6ruu忌k׮eGFd2yĉ(^d'''JYlOWUUUV\>9,X827[^TUUy2R\\s ޞ3rM ۝PnݺJA<)J``$/^(Ɍ;wnee%f2&&&ׯ/,,\n݀GHHH์7oވe!77~MMM%5`%~H$СCQYd2$18e}d_ŝ2773..qi Dxyyq%:wR)]p!D(t'!"%ONPH$Һu$iI^WWsUg1Dho߾}H555"ȭ"hjjʒ&J ԁd2C0~xG9 dR~ɓ+REEŜiϝ;!{^bLLLE,2Z!!H @B___܌+҄f%##cΜ9D"ZhkkHnv֭333I#=(佬\1JKKÙL&w07oR(WWW23O<)YaUڒ !{`KK yG޺icֶF)(;j𞶬 LME/'%%xyyIĿilllkk+WCCCKK!*>TTT Tzna0GihH'= " _@{?Axu7$AEFTd$AE=ie?bZV+_~vv/ݹ+pYWZ4664JPIP!>}T*@{zzr.//d?:=@ӴEEE9;"jؘI[BEQ.]{!%hnܸ FGG D" ĭ!j4̽ FQ0ѣGfallÇAR/^Rԗ/_ĭP>22L&4l648uTqqVEڡ=벲ϟNO=~Jvڏ?uAFVH$x|@@aSSl^YY!IMg!VZ,ׯCFòӧ{{{񚚚ꖖLxwy2  7DPpidY9R{8ΫEQ73Į*>~kk[,dd P(xiOtr! 0j=A˗߿d2Ymm-˲n5\.D"h8"\ .ܺud2T*dbxa3gloo_^^sNss37ŋo^[[#IϞ=+))zfD"333NnChl7o.,,ܽ{BteSSS>ȑ#njwtj=qC677[ZZ>T*ڶ ,vvv#S%w(o;mp8r<)IKkH$HOQ24tIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileInputSource.html0000644001725400016040000010352113273140077022621 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::LocalFileInputSource Class Reference

    This class is a derivative of the standard InputSource class. More...

    #include <LocalFileInputSource.hpp>

    Inheritance diagram for xercesc::LocalFileInputSource:

    Public Member Functions

    Constructors
     LocalFileInputSource (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     A local file input source requires a path to the file to load. More...
     
     LocalFileInputSource (const XMLCh *const filePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor takes a single parameter which is the fully qualified or relative path. More...
     
    Destructor
     ~LocalFileInputSource ()
     
    Virtual methods
    virtual BinInputStream * makeStream () const
     This method will return a binary input stream derivative that will parse from the local file indicatedby the system id. More...
     
    - Public Member Functions inherited from xercesc::InputSource
    virtual ~InputSource ()
     Destructor. More...
     
    virtual const XMLCh * getEncoding () const
     An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. More...
     
    virtual const XMLCh * getPublicId () const
     Get the public identifier for this input source. More...
     
    virtual const XMLCh * getSystemId () const
     Get the system identifier for this input source. More...
     
    virtual bool getIssueFatalErrorIfNotFound () const
     Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
     
    MemoryManagergetMemoryManager () const
     
    virtual void setEncoding (const XMLCh *const encodingStr)
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setPublicId (const XMLCh *const publicId)
     Set the public identifier for this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)
     Set the system identifier for this input source. More...
     
    virtual void setIssueFatalErrorIfNotFound (const bool flag)
     Indicates if the parser should issue fatal error if this input source is not found. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::InputSource
     InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Default constructor. More...
     
     InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system identifier as XMLCh type. More...
     
     InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system and public identifiers. More...
     
     InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system identifier as string. More...
     
     InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system and public identifiers. More...
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This class is a derivative of the standard InputSource class.

    It provides for the parser access to data which is referenced via a local file path, as apposed to remote file or URL. This is the most efficacious mechanism by which local files can be parsed, since the parse knows that it refers to a local file and will make no other attempts to interpret the passed path.

    The path provided can either be a fully qualified path or a relative path. If relative, it will be completed either relative to a passed base path or relative to the current working directory of the process.

    As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.

    Constructor & Destructor Documentation

    xercesc::LocalFileInputSource::LocalFileInputSource ( const XMLCh *const  basePath,
    const XMLCh *const  relativePath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    A local file input source requires a path to the file to load.

    This can be provided either as a fully qualified path, a path relative to the current working directly, or a path relative to a provided base path.

    The completed path will become the system id of this input source. The constructors don't take any public id for local files, but you still set them via the parent class' setPublicId() method of course.

    This constructor takes an explicit base path and a possibly relative path. If the relative path is seen to be fully qualified, it is used as is. Otherwise, it is made relative to the passed base path.

    Parameters
    basePathThe base path from which the passed relative path will be based, if the relative part is indeed relative.
    relativePathThe relative part of the path. It can actually be fully qualified, in which case it is taken as is.
    managerPointer to the memory manager to be used to allocate objects.
    Exceptions
    XMLExceptionIf the path is relative and doesn't properly resolve to a file.
    xercesc::LocalFileInputSource::LocalFileInputSource ( const XMLCh *const  filePath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor takes a single parameter which is the fully qualified or relative path.

    If it is fully qualified, it is taken as is. If it is relative, then it is completed relative to the current working directory (or the equivalent on the local host machine.)

    The completed path will become the system id of this input source. The constructors don't take any public id for local files, but you still set them via the parent class' setPublicId() method of course.

    Parameters
    filePathThe relative or fully qualified path.
    managerPointer to the memory manager to be used to allocate objects.
    Exceptions
    XMLExceptionIf the path is relative and doesn't properly resolve to a file.
    xercesc::LocalFileInputSource::~LocalFileInputSource ( )

    Member Function Documentation

    virtual BinInputStream* xercesc::LocalFileInputSource::makeStream ( ) const
    virtual

    This method will return a binary input stream derivative that will parse from the local file indicatedby the system id.

    Returns
    A dynamically allocated binary input stream derivative that can parse from the file indicated by the system id.

    Implements xercesc::InputSource.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.png0000644001725400016040000001534713273140076025770 00000000000000PNG  IHDRy bKGDIDATxk\SG'䆠MHR[\wj]GhJZjnEarTTVU>QQI b#@=D_͙3ef Fg0@ 0@ 0@ -(((((0So%(((((5k*((5So|/fs@ɓ'盯~r`”XFF=zt/gϞMnܸZ0)~M6]V" =&&FP?a„(\R&כ<{-x%Ky$A;z2 [rlmms$#T*Fz8{ Nz1&p8gΜ---G^]]j J5niiAr)lmm'bʕVjkkcX---7,niiٻw̙3ׯ_ttt X,><ǛWW۷o+Wl߾X\.j"(**?DqkڵwMLL?&2eJGGٳg+++ȷu<Nߺu _޼y͍}PPPPIII~~)S{ӬX@Z622r͚5yyyUUU8w䨈͛7755555^Ν;Ƣh4ڬYRRd2vvvŸ[ׯ_֬YCC|/%20̐k677755%$$(3uTZuֈ91֗i믿~뭷\RR"JK.:tCtttgg'qBquup8aaabGqOOO]VVf"܄.fg/! JB&0 D"QDD˺ur9Yf J,aG8ؼy۷60y (22rւ@/ӦMDV?`((((aMtKK m52|p3Un./vv>.Pef\Dh4Z-!3:zbqXBKk^@F).c2L&X/` twAҨToP(TVd SUuU.i\uOc S\\gcCi:1@PTU]h4RVV^JUe pxZ%h4Rz0.PGa%r@=yXvP}jjsmmRezR^^P! h@=)(d((c倁EТ0A ---Vt3O!tV#_GNHf1}|o >PzK ^` ((((((((((((((((((((((((((((((((Aa0GbXZ`0jjjȞy.j:??R+'88c` z^zx T__`0 t9eee,!DFgϞMnܸ !taM_r9'9#e˖-b Dm6| !`0uE"BH(8A!tܹ֧17o:88tWWnܹs!]J Bȑ#䜗pB%$$8::nܸ!;sLT^^>mڴ^trrr~s(GiǏAp[NNN!]L&= d7e*++suuDA=Z&T*cbb\SLLR Ç>}O?>|cDD FQ^^>n86=jԨo Je07&ҥK ?gٍPffV9|Aff&m$B,/Ymr~7蘜߾kJBBb(A888 x<3Hnfo!C***plHoz%lK,yǻpܹsg``ݻw pfϞ}ԩ1cI&dl6;--533`d]v H$iL\\BHxxH$vvvʕ+$T*A3f̸y@ ;vlRR2 !&J8 JvTb"##嗜УGBD nۿJ///n1u>>>IIILoooݶrX@ 7(..w]KGD"&{nXj;::4phڹsEPjժx rrr{=cAEERMMMLqq8 R#- 'LhΜ93b c~w򹹹8cu>Ν;?55y榦իW߹sXF5kVQQT*U*L&X'Oނ&DEE!֯_֬YCC|/Ƕ$  YvmsssSSSBBBxxonRbrybb"B OYjUll'?~+cts /3_[oy#JK.:tCtttgg' "&&ՕᄅFGa,ۻDwaYYYl6ix񢍍Maa!ABזn"d]H$ppppqqYn]%kz / 6|}q\J5eʔҟ'e4MJJ'/++srr283=`TTT\rEwYXX8~x -:-[>cs4X_Nbcc<<<"##|90m۶m۶ P P P P&:88Ne@۷!,BTWWϛ70x JJJJ qss ݻhѢӧO ƴg(oU {stzXX3˗W`W_6lXh*@J~@Ν[`AGGBɓ !V͛7o޼4Z}=??+W:t($$$ 99Y&pQQQfZp'B`8nB?mLcǎs߿_Tvٲe}]K, =qDXX؜9stww9#G9r!C:t__pIXj]]]񥛛[[[BHZ/޽[.׽>oݻ_ؘ臷;;;;G?zQIIĉ۷i&pRRRd2Hk BFBݸq-2ݭjjɓ'7mTZZj, :ƦAWݝ4ydJug(ccGy"G&=A_|lrsSfdd<|֭[Yf8pz(aÆNJ`0lΣGBDD`hmmmnn̜9sjU*Zf0JZmL ~S[&d_a*--H$aaa cݺu_~q we˖hw}緷 ņ  >X,V|||zzG\]]Y,pD{n!BW&>}'|w˗3?4MXb۶m Zp3bcc c;%e7.00رcϠ_^燄(ߑ#GMJJJJ /SO:ggddxyy==/ @ӟBWi+_MIb 6f?C3ى~?)B{ gȧ&AyyG}4gΜ~?)B0 d>5! WZ/@ڵkzy~=|wyL8qҥ?./^h>X23;12qxͺ\wxKXG5/]$J볲h42~0OJ t<,^y NIIYpÇ/_pBQQQvvv˖-[n'wvv'%,9zzzz˚쌌 ˪z>q~֭[۷o ׮];x𠉃PB H\\\fϞZZ:ei!V ,a%@%@%@%fn J/ ?4> 5]O4(((((O~IENDB`XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__dep__incl.map0000644001725400016040000000026413273140075020652 00000000000000 XQilla-2.3.4/docs/simple-api/DOMDocument_8hpp.html0000644001725400016040000001040713273140077016600 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DOMDocument.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    #include <xercesc/dom/DOMDocumentRange.hpp>
    #include <xercesc/dom/DOMDocumentTraversal.hpp>
    #include <xercesc/dom/DOMXPathEvaluator.hpp>
    Include dependency graph for DOMDocument.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocument
     The DOMDocument interface represents the entire XML document. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_33.map0000644001725400016040000000041113273140077016456 00000000000000 XQilla-2.3.4/docs/simple-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.md50000644001725400016040000000004013273140074021435 000000000000000902f8e713e558e0772dc7bb703f45d0XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__incl.map0000644001725400016040000000433513273140075020371 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_26.map0000644001725400016040000000054713273140077016472 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_11.png0000644001725400016040000000300213273140077016460 00000000000000PNG  IHDR%vbKGDIDAThOLOgb@6$`JpAPI91p 1TIzJO4RHhmBkw>>995@ccT*H$@ɓ\@ٹ%-:?~D;wva)?ϟ={6r2EԬճgz{{[ZZP?A^~Yөꄄݻwm6ۛ7o?ŋ7oRjjjfggu:]yy9A!^~hrrr߽{o߾k׮lhҁ>V0qqq_~}066!Z!kjGzHP8Bp8uÇN'wq\$Iz<`0hI!|ǎ;r=Fs p֭^=2kR:ڒt:ZғvCM" Պ: hhhP*p+99B888xܹ]v?~ӧYRK$K.$y@\>77٘qmٔ`0h0< ~#>V*̠tff&&11QLLL<.l6|>$F鬨())q:T4LCCC+++,Nciiibbb~~ѣ6 |EVֹpjMIIttt{QG ʮ\bQx3gnܸ'rv Ê?~v~?㉉zewwǏryee%Bd__ӧ6zaT'ۄFuuuqq1$ILvuaSSSJJL&A@AAH$BNŋiiiwjJ $͆n˩iiiUUUA@ L&W(===YҢp\mmm2lvvqJУGJ"Ƶ ds>G$Id\\tC@hc1-11111Qaa;x8cx8cx81n={{i/fZv Zv7am?8cx8c~7Y:Pޅ/IENDB`XQilla-2.3.4/docs/simple-api/closed.png0000644001725400016040000000020413273140073014602 00000000000000PNG  IHDR KIDATxm @!Gk7-`&sts@k}2 P%_N .:0Dk›x" ֛)x5IENDB`XQilla-2.3.4/docs/simple-api/DebugListener_8hpp__incl.md50000644001725400016040000000004013273140074020070 00000000000000a389558c9ba35e13c52702824e0df0deXQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__incl.md50000644001725400016040000000004013273140074017434 000000000000001975f649b64c415cfda09e386656b041XQilla-2.3.4/docs/simple-api/inherits.html0000644001725400016040000006656013273140077015363 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Class Hierarchy
    XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__incl.png0000644001725400016040000012326213273140075020307 00000000000000PNG  IHDR 1bKGD IDATxy  ]R)[)tn*$RHݺԧ"rHJ)):D]r[;?aIݙ]_۴~?y=$EldP @AAxw (ʡC w(ULLLFF&A011@4P1MMMOOOSߓw` @A  0PM>屢QưOOOOoٲe s~_/////;wt뎚 TWW^M>=""BEES AA Μ9b~"..EEEk֬IJJz'''GG>}|188ٳgǏ'Ӕ)S6ׯ_=FEQ n85+))6@A eee=zMbbblll>bUWWw }||?&L~yZ&,,,,, HCC XCNm0g!H .ѣիW-YҥK]AŋcO`0&&&&&& A4kk'DDD-[ӧ䘛zm9ӧ_~}ʕƗ.]y󦅅żyBBB: ӧ9=nhh022z+LLLN>f={fii`/nTG߁QUU-,,D~݃prr C$>>{rlllQQQ@@srrBCCkkk+**ڏ֫{m۶w%Ovvٳg=zhvN& ȃ[B&&&:t?Ɪ4@ww&h#(z.!!`gg޽{+(( RWW9ׯ_߸q'O:jD"X,챃Ø1cDDD\TTA˗!RSS[FARsssu떡!DIUUuذaiii]l mSmszo߾A*۷cǎ544tmxɒ%-7n\g2{ܯ_´yQ!zzzSSSvuum/UUՖ`?~b{F訩6gAQʕ+&MB PGG/%%u ;lAYf]pa̘1-/_'_?6@GM9R^^eo+g+Ͷ):j_`@UUUUTT|ã AfARt:6^__MGDOO/00=11A+WVVV]cx%%9O0wGHJz.%|ʕSTUexx %,&3qoޏ5F펏_?i .uK511OBB9s`W6(=x限Wbnu\n__QQ7bĮuSs_jnfx^]]zDEaCtג_ ٻdP%tga;3իocc QLMWׯ7ޡ UW7>};0n~fγkj~<+j=(*2eYa  m1G\c2͛ WҥRyz5JC}Р.5wUHױXoݿ7`W,) \G +1?zIIg}]_z˗dX{{!Cx1J@sJ`s 3g$^1:IPн_+tu[Y̝-|nnz_s2U[~ pF#))bookA^Pн5k.rtwn3=Zs33*ꉷw 6䫭E}ҥ,4c0eCAAsef߽;w98LH[NXxA)11'(& ן3Gs3AOWwoo 4ϟ'%d2_ ұt~^Dģk$&ʊ؀gv_SS%!aĉjx'bB!X|D" SŋYOߞ={ôq zf.**2{Id2qW:t'W]y GY3]Pg  6]`fUt{eUUe3; kJH |HKXw.@Ak99gR~~mde{9^K',"P<)μ~=woK'))I @0dSopd]em=e{AÇ%'r!Cp IR!7hkikxQHs2F^?~vinf77())˨ރ3W2wɆ:JI<~[RR3gsьIV 9cwE3dySJtBկcc9;_:T)*j- h )-12:^VV`RSb72s-Ci4ٳx|_%%=53ӶG ~B!+(HƮ0@Ǩ&&g޾-lnflPȒ"wscpt ,/52ie7$;''P(d (#U (d߹;7ЂFL6x#2' t:#8 = HL|ב#UEDhϟa0WR($j7uP|sQsGmAiio23㒊(2 * Q&\o_O- L&İ:w C K?>E( O{R!ƍ?|x2f;,k .<%{ +W8ɘ pC|573CC? ",}{Wy =sߡγzRaff3 AFSR"Dda2YDE&P("$$D">( yo`ټy)OAԄf9;g|=|<`DGG[LȬknld*+ڈw(| 9'//JKKy#W,111xG 2D Ǡ DD&wzR!#(Jc|_|O.kyzϟSSr^z D}ze^<؆ rrr|&Uk%왨T L*t[]AE###6?BE>| Hѿ2lЃܹs+ͫg_yyym~ojj1bk֬7nNǞ ю;Z 3g yyyIKKgeeݻ(G͍;r̭GqٖwNWBm K ?ӽ65vĽEQSSSSSS.5z>CpJA._xҤI())!-lA!!ChgFGG.]JRRϯϟ٦^$ŋÆ =r (>\RRrƌW^e{͛222ji?))iС MMMl7v_/Ll#u̙aÆIHHܹs;ɉW3FTTTYY{#H!!!Æ 8pWA HddԩSg͚}ϟ?螺6?BUUժUTUUlقu#}6gG 9Hj]t ʕ+?~m<|%K|;vm۶a9sӽ455sss_z5q-[tWmmQQQpp0J=z(CBBlHز{m۶!yQ-++C:=Cp aaaG~MK Ut@AUTTRSS"ܦGAϟ_]] HYY־ﳲսn73cxGQ@@B|||aaaJJ*jmyP]]-$$dkk۷AJKKQvEo;E B̬: {/=0D,k(ܹSSSowݻEшMMMI#m~KK˙3g~!77wĈ{>Ov6gG5(!;AeeVFQQ8--m{:77EѡCc͛hǎdX555L&ݗ,YRQQv hb-ZDP!H^^޺uoߎhDDڪ`[(`0;b rEvA_N1b;ҥKl EL&WQRWWg}x_5ʃ=rP ǑfXXXΟ?yAZ&yݖaZ?c{`=TjYYz oitmEΝy#:NPZޓ{>O0m^+9;:ؾq E ; ^~ԲӧOؼ\w A>1ζ)l/2?֖NCCesBI폣ѣG>֭[]iSRRd2 S]]=ɏТ#:ʉ;:za[_~=s̬Y\]][6ɵ|K¶cGc>}>}myŁ:ګbTTT-XFFFa{W~6:;;=zT__ѱe[SSskh˱!Hgw?vu?߾}˶)ط A޿}u8(/L8RQQi}1K8[ fffnnn999~~~E{ IDATlɌKTTTK- iBBBtt.6>F0 TTT~##sbD]ya  ekkaÆ˗/ߺu+99۾x۷977׷^+Vعs'vy:{H$CCøj:NDEEh"iiiA.\P]]}ԩ]ֲAZ6{UQQqÆ OP,Y設Ц?~"..nmmmnnRPP-[XXX2UG֭[~rlNݸqc~~ӧOwaeeFGnnnIIIũ،N455t!!OOOAjjjZhyu~lWfffii/_uzzz c޽+Vb#؏@͝?~ڵ_91"/@?ӧO5 $/!!AYYAݻC]]]롸-[GJJ¢~/E $$$vw:>w/--=h l?ͺh6 Jɓ'd2966m5E ##A___9H9_U奥իWlݺTh9-3L&ĉ 222JJJg֏6/''aÆ;~AdAy#ueNݻw:::LN(#++۷o_??? og~סwvfаb uN_fM^HbŊ{VVV޼y3vqEkMΎn:HQC߯CC$''x埱+וAtyĩuxv=vر|rSZp E W*!rssrrr볲<<<ET*E!!!!W;Kg%'w%?~PSSutt^v#I=ǏMLLMwΰR xHh!7oMwWtp݇hsssk)fffDGG+2DD3P"PH4({ (AA<*_. zjIII^|X!6 @Qۤ a!!8 G!l(/c`Bmme˖ᝂXD=Sll^¥8X WESSSS>3"""F^&  peSoC/K*7)Sbc&9p'׮媪XYX1YR3"l ]tVU dª'O 8D[[- `efY4O9a^+98 @D@Aߒم,[}i78lXF0@n>g<7lrօyS.SP" @||ӼS `LL^򢹙lҢ|g? x _ DU:|q͚v-vLLِSZ(Ku-!a=J1554<*Q3AA'۶ź޹s6"3a@Ύv͛[44]\"uuklkh @D0d|}oe6G46w]]GZĈ*NY޽MWwɓ&][~ ( D=S3qpʩ6.`0oтijjG=~aj}-m>>7x;8w2[[=6+++?ۣm(*J9?;kݺAAƍPZZ I0dGO>wӖoxlFƻ:9qquf>}{ֹ'OPR1 (ag`R!8r亿'-r9sh4ի// ?|k۶y))/'N]XXK @D04oo%Ks QQ!̈́l. ܽ{azɓl[TeP" E@@7\be-^<ɓ_Vp_=zk>[L|`?`nP"I|!(޽W7Yr 6MCZZʕ+h4ʊ>ܹoW_N D-LCDv#O;p򚂎hG%$Zh++Ǐ=1NN~>yYw. @D͍`R!aEF>޺5fֹYc߼)|g=vV<|kֹQQ'L{Fs۠ Ds,:-QFγxIj2II5hrxNGi.<)SFF> (aC0hRR^_ngc}K]$--c'Ov/^mZOPTA< ((x7۶Ÿ^l"YDH:w F"LL>xsٲ[Dy< ( V*䝗/YsTe6Y~ؗ/~Pwnڹs~j ɚ=GBm-\ @PR!|\nm8qæxg=S VRNr_w.Tre 5x'@ CPSӸreT@J,NEd2iQ.e痦jnf(:d9#a$t76o xώs0#~ #rc'O <<LImjbX(&_rE3__^^k`pԦ&ޡ5*yy%ݻO\>}n=F673a0xmm7?rZ\\c' 8C p[d㐐',@t:Ah'\G٪&ofwR @PR!Wee}غ5eXG^=L_**2gZ'$dO~޽N[O?aQ(d|\no:{CtBm4"rwl8Qm2G!6(ATW7ZZ)KwnRrrJۚ' !//qO~6[`x @P Pݸb]]SH 8DFF{ MUï%Ο30jh8b0Gx'| @PpNug*>>zIJ:r,"!'糮Gx' @PR!ݿرݻM4,xիR(Q޺5fժ?jN`B*,rr ?>Y8l';Ǘ il)1ȍ(A {PѣGy 9 `BAў8#::ic|n: (*Csg|~~Ip8?OuҢv ̄z5qq#ĜmΘqɓ₥A$:i瀘.e s233ybbbEJJJzzz˜9#ǏeKҥ[t$8iڦ0;J|Vٽ{Q'Oh _bbcx"*܍Qx1+q3g9 52+9:tA]]a?`DEE6 )(**ۥDIMueYC !h @Pd2L*S{$}X WnZnƞ=IJJN @PT*nn'^=8r 6TQ\ܺG(كnrYU6]^| ZZږi4V~Eр”UUUAlmm} Hii)!!!lw>|xɒ%_|;vm۰AAAUWW RVVV[[+,,_TTLRkkk[ǑڿϯÞuahh,uuu///;-DEEs!LUرL&ѣקM;矢ݎO])*++UUUZhijj<MMMo߾e2wm{dɒ `444iiiG2(J<˫hǎdX555L&u_hA7kzfdd(]:u=!**J]] )0s55+-M_0d V*::vm ׋ׯ-GnyV- hܸqaaafNv铲2D"H?~ĶKHH B;w%rqbekkaÆ˗/ߺu+99A[[[77m۶uHSSNjhhD&))i"wb,^x?522e`dhhW]]Mi4h'}aw}6nܘ;vXYYu8de._^ckvm{4,h(3~~;Y?~?lӧO5N(\QQA;p@qqqK.!!@QGVVo߾~~~222smͺj޽{;88աft8**jРABBBIIIt:u_ɑ:_NNnÆ l7v6/>]VVKm$n ܹwrrBhNN ddeff'<>Rbt677E~]5,n%\2!@PR/+Vs#ޟ05Eƍ_:uY%**w`i xYkaa+7^nzcm> 1{qEE5=v%;UA ^#۷޹[k))/? ͜9|Ѣ13g=jUШQ}CBŅGɨTl"^-.:q¢Vׯ25?~@LnW^=۷ 2S=oG}ر^o❮KttĬ}̯8K } >o>}΂{W.^<.0ЦW?:]&?40qnlg<׬v֛3Nvvyy-~AKoB†K}KJ~ A=xojee{f2D),,8@Q?tCNZOOkeumarܯsӦi,]:h$2hL[ 8C TÇ VQQ 8k׆=sƊװMzS V#G̞?symm5ߟC)SV "B36>Sq@g e= wb%%)ZUUٌ._^cb2-H$g|<-&&% IDATlf6!.nӧSR^ZTr .%''NNNbRߏt @P= ::ꦦk_/\ttq}33m!!ʥKYo^n;֮ 0aD'%%FYYwExAA>>7~8zԬ]Yŗ ())4/&&lf&7=27$ `{.xo8/w}uҚ& &(A{AOMٳwvZؿoݻih('&:++sq5.߳8'|}C!O~;HH\䨮hn~6/8-(AI %RKdTd+͛7*"AB%]}Κ5<(o?-B+WN~ܪ?j-:p7&5ebb/: t/D (2 gHq_wE>>z:(?q~ӧ_ƒpA&JNޘwo1[c))/q?֫2˖u (lž0ч'Npw3x"Yx|鯿6-LQ>OHH&zċZh]z}֬0s摘{|IAAbR/_qLZT;,5xS#MV qvvzIIKKkx/.U:u-7 ͛/Ϝy4%%".9JI.[_\5(Aa'{̜O>><:g&&߼)_?c0XdT/C*=km0e| 022bQQN4ŸPi~Zl0b YxݻyN673^4r*.˗O:ASxQWW8{:=]UUWpI"''T_O:WWׄK @P= ض-FUUyAx:}* &7ӅrzΤªz/D++mm5p]Pн/Y[O_),LgjWg#HܾuӧoM| &)3 '86=]<0QOp+$}0pիic{{BCkܢ M*̙nnslၜ %++q@B/6.)xU "BYmzkùw`>gϮzeX.u EeRS_-];~{}.rpso7t.\XԯKLiW˗_E .2,0+^<=ݑ#|t/]fb2.0FHi}as337uf4D璒 C)zټy {:.uѓAAK`&6yy%YXL?~ Y8[l-zFͱO{{oמ:ukX/##9 唔ͽ{"d2i+&ieXS0B! Ɛך;vul5737l_iG+O*aåcK-/C['xtڑ#U/>å5Ϟs-VqPPaR۷߽{Y8[lƍ/wc+V~^}qs3`" HE^Ο1cʕA\ZMhD5WWCR޼)F=(_Bܢǎ`f6,PRRmbrgwλze޻ ŇL&UU㘍h?  r7ذa֮ M{(q Jss:D"O_<ɦ&իGT;W< EfB!WVBAU gʕS֯OIydҩS%%^x=}a#GZ;l2YTvŋ()I&$lPU;1oΜlHHpH{M׮ R}Ho r }k,e O~ZL:  rAkE`oXhnmo/Y2~Ѣ17_= T Oqx;KJ; zu哂lDDhx:j7dr# Vy9!m$tQvvp}o´]8r . zVٵ+nذ>ffx>lݻ7o6ܿ1 H\\8:ػϸ&6"HQ`/Q@ b;콟g?TTPQ(b (])COA6 燰<Bdwf==ޜA8}dCϙ^m㊊2ǎyDE}w/ۖ @%+޹>!!sީ!d/:qɓ:bt.{w9{ee8$h4ʹssgNNf6op:&qIDݻK;3gy 'O;|hk+F> vT*|}=wL&oĶٮ&qI'UUow T\\5uꩬÇ[կ][*%EAxG$TT._^SÊL y#]L P(w 78__gMMEci/_ ]\ֺٜx?[[d2DL&SRsbb>=ۖnjvuwۖ@% n04T; @#!!s俌To^w8D1dE/7dS}{Li 8h ܹ廝<9 @dGVVVݻw?x bm۶@]]}ٕ-߾Du-gOTqqVmHmrZ"\P(wq8ɓru=p::kO|IӧO>}z͞={Μ9EEE_Fܹszzzo߾oDt))#((/A.^xU=ǍɓB<<>>]]>pwׯӧэ111-~=PjjjA***dKdddFFȑ#cccф@SSBdeegffF:{7ܹs?}{yH$v >NIIٳg`nǎIee5gaئꀀx |`B1֜:xٲxҢܲI#"Vr̟?ʕׯ_QTT`ׯ,**ٸqF T}}mՑ'Nlǁ„=eʔM6榦:;;:u riGGG6jԨ@CCCCCCF1cƪU//YXXlܸqҥ OAQQF@HܦP[lIKKKKK[bEnnnǐҊqAA%Vmjk+bFrg#>|?Q4bg@Z׻-)EŒ!믿`0.//g0;w4668pk׀1=z{OPQQAoޣ!W544h1N7oŋaT*uJIIq;*//VUU^vm}}}KQכo޼D VTTFlR3m|OWGGGIIãBtp ٿNt=c3a L :r$fȐxGBCEffOWW7 !9` NWwo+44IOoׯٙ[qm--'Ov;BCg:?nMPbynxA7a9e "0!J%G=Kߵk J_ك(xAB"o6L`BLXBd׮;۶w۵kr-k4F9h=wj3 D\ W_felw M1eˮ^Kxzz/""0ٌ͌K}zbxJnh"!e 歔V / `{۫++XC :henZ*Q/cЬ*`=[-$+N ͎;6###11ԔUX?[j^99n~a%>7oMI IDATnxݣ_RrrG>LLfk5!D!IBФ*`͛ulӧlf% CBBNnl"HYȑ6zu!{lW0x".2,A#65'a y`E77 HAhjj~wcRRR~(D!k֤*`h1@D"ƌ/LQG&---QլZ5Ǐ`Jbb>bئD D\ ;vL1^N=^%#R nnnGh b2JX,ϟ?yjDbFFFu\zIf -mjtFχijn Dd `e"fs6noBhϞ=Ϟ=~Ujj;N8[PYYp:~ĉVPpҥEn݊PUU%իW=))iͳf Zj۷oda5c?}*M jETTl ȑ3 t\z\87**XDrrrMп;wpyBAvޭܣGH3IU@&$//nl^ b:tTNNnj- V\-dX /a̙gN=m &qݻd_ffnvҤ3H% H۷-Ű͗/iky& 6%eBX}ъ2  ׼L9S5 HƏx+ 4ȴ_?'cئ D\`.#71aEp8kPCQQqɒ%lʨTك6bŨG>Va&qQ(dgec?q"޾͝2夶rx e#CCCٳlf Kưѣ{]6%L Bg։ABBf\͛XD8&MnZ"WD@&cM"fx曚.24/@ą2g}#A5\l6qŋ=<IK_ 2/?aئ#DD`YBI".tP8oDEax A#Gb||BVgT2KDd}[Xh'bئŋ1lS".1!`2ߛ6o^8d9~~=xp 9w^_`hzz I@-1%AA~X7tǫ1oޅ.-( HL֗b߹6{ҵ3 C xA-B'!m<~2e8{d8?zU[ԌsU`72ݻ;ށzqwq638nnᑑ.U&qmPaiiOW#9~_zyWVuk8######77n| G>8zucbIN M {K{o6dnDBgD9 ɓ/^|Okk$L D{x^낋d[wΝ5ez$bzhhRppbNN&Ow\qs;xYbզjD;@Q:!x"#W}^y}ʢa,#1ٜW%ܿ*+6 `^Ϟ3N&&ꖖѩ&$i16%L Jrqz'*+fuR#QwGL%ooxSXX9xّ#3'L՛?&88q׮5ԩ]mL [~-ݽ\qlKݺu"ma:7`: '/^ f3;$+6Gjh`~݅!+qh³g8G`,7ׇx{ڵkJ_z.*åK/|)07Zf1W}TTbc?-Y26-,tiA0!iX*,/ xj%%Y u={._>jWuA巠Ҵڿ qA]B>&#,>MǰA D\v矱Ҵy0llxtoA’^M+߳g)A͍mf5:;t?AAK D\$D"axˠWD"Z*8&&̙ٮ}0owL&ӯIOg޼!VVxA0b%<>~..6V Qpr2?vannKac"4|Rx3gfcR^JJݯ^]*a˸y˴=zh,_>r G55?/HN3,.Vt Dhd26 \x1E;; Kvg^nNNf$R'_Adh4ʀ&/^d̚YB`cO߿σ B!u|=|"  K^ĉvG̔u~Uߺ&881'FӦӦUV $jCX8 V鬼|7==a"4*f;Ⱦ}w59 ۷ߞ7oȎ$q!B5ddlϟ۫.qAPG9:~L6ճ\`BL3^xٻ7'[.[66ũ2}**! HrsˎHd2(Q^p8y&9hQwx0v|ܛ K>uj֤I;[’kk{.9ҊBk u*Ç[*)IWUB(s=;y% L bG@5?jj FׯRYWtoR<**eٲ#GZ.DWc,^pKQO7ܹʕii?MM5/9s'/@bC'N~5zAKIIz`3gOϟ1Wɇ{?_i4ԩ$Ǐ l6PPP9gNcc?LQ$x, u3fy>/$d(|?vvÍCB~ߴ|( tn&٣4eԾpai13vЛ{U"@4}z#G4d]]m?~7~?gN]I$RAA%6,#C{;ɎZmb.d:9)*اSjccǤI9W& %%L&{$;Á24T.x;Djg!nkO&7`oo.ma."IKKȑue9W w 0U.tL8%K.;9Ĭ5k 2K`w8PS굵%%lBFЉu|P3g:~O8(ӦE5?FGDq <ҧOlUUݼysAA >>μׁ *#",,tp0ڳgԩ22]hMϟllCCC@(4k4rrJ;XɄ 'nn[=/`8M hMMȕd2̙' >>7 -<_ރ(/2f5z  Ӧ`dJ#GX|U[|Jӗe6e|cVeggܑv߹X'?=HB))Ɏc+dk(,lRFhk+߾RKK&8dwi۷窫@EB>ٳgaaokkFY,VHH;ށ@F"8$܎#@t1 /&eGi4ʔ)?*xwR::ʷoTuz"߄Dd2D?VM|U{8IH_pᐙ3qAPGu|\!CAx9JAANo0 l?~$t=cBCCkWL~GQ(d6Q;wpKem @'^^W-S H䌍^`# RRNˠ^*^V.p~~9<F11Qsg {wq*L"M._^壚g,gÆ۶Fy6`ؗ/_ZVVISQ]$ѦMB!s~dT*L3,l?[FP($ !Dyx XhjK rT&$ddA$jtz}EE\tb D\l6͖1;A͵BC >))o8B!lba @ׯ!' DQh42F֍J$YQQD"RutӧOEsbB"lmmDn߾=iҤ\i999>|'E/4 BQ HeeG LDQQQQ__@$=pA{w9-{5۴ȡCVuuT*EVK,+ӧFÇoݺOz ѣGߺuܹsgذa/:P Ui+$D#----- ( qqqo"`HrA]fffVSS PWWe0߾}>>\t }Cp8>>>})))=nTzoZzZ=͟?ݳZFFݻw[#:„ ca@T`BAfϞ=gΜ"MMׯ_80uԼT{{7:ƍ{ۭSSS?~Q555ݺu;{laa TjMM͡C~ūW"&F~ ϟǏ _www:~9@ii)v9~xA"##INNEkԨQzھ};o$)))kkk{ hT_~z= ܄yTœݻd2 #|͢E/H C;|8x &PęTTTl߾Ҳ}kkk~ꤦ"baa7ϟ?s7?F>|TWW:u*zyB˗63'+`0>.>>>..nb6ݣGpSSSc4TRR݋O~-ABCCM_-=Υ(ʔ)SKKK=z$2--vbqj541 `BAO<9zhF555[, vIGG'''ݒgϞp8n*//_` Rhׯӧ?恑dȌ {{#Gǣ &BgɼL]]]HPQQQgϞqF\\\KT]]ŋXO6}􈈈7o:99 ,rq1%%t6g@2p(7 @{*h #cmm_>}o>J;7?Xi:r3+W^~ѣGQQQ)Slڴ)77755ԩSGy{{oٲѶb GHcdžtAdee9qD6662 ))m۶9MriGGG6jԨ@CCCCCCF1cƪU_,,,6nܸt҆@PNdɒkhh`6dsNoooaRb2ee,GYTDhjv+p `;dÆ ϭP{-?o߾^* 8BGWVV޽݇N[ZZ:޽{aaa={1bjxUa{--!믿郎oFoy橨.^w뫣&(ABBBz!%%eiip޼G5CGv]__| JZ)))???nGުk׮oU}}͛yOwtUSN U"80ҥKeddt_}P3 ;D[{Mjj~?U[{M}=ۨ&"AmJƏ_WW'̞!z 466k,]A=ٳͻ&!Gr`ٻ8B͛===ߟPz| +؆DLܹ[QQ~ymm-9y򤕕.\߽{NVVV[[{R999?~l`` H/ZYY߿իJJJL&sׯg2455UQQٷoW֤ 544dee]xqѢExN4%%vM+ _%W>wFxxxAAAtt4:\:w"u'ڸq#{A]…WBBBRRR_رc322MMMщvœ/ՕNO8.ZWxjOlܶD{q{;v3g6b 4mmm54._,8!hi"u' Ù8q"B5kTxz qM@{ y|_O"fѐvw#`B^'SܸV:f5l!&xgglgeeq*nDN9;88ӧO< >ZZZwn^))) |z=;ǏBoKtttd6t!`#AͩUTԶآ6I\0!Yۺ>|'-Hf`ZСCCݶmے%Kڵkq{xxyz@FFt!`#"~`DVTԵ؟?+utd`B'3ϟ~Ȣ|'Rw,YfMM͕+Wu֢1c/_K<7,3 TENJϹ>|XVVɓ۷VSLǏr=. A/_x9eiiiddB^|\lϲezqСvޭ`gg7r>}8pIk-*))ѣ]\\7m$`#$<"%Em[ ::A_2 "^Q;Oٓ[rHwwwLPwӧcXXݻ߿f|uEk?6lp={乸{j#8Ptz C$qRSS7mteKKT˗ YY:F.(]LD_ Cm_ ϯnҤI%%%&&&_dIǛUTTlߍP;JAVV~w"&wa]{6 \^!(11BopP!AJյ Avv1L  m.2 ֦AuAu*mTU 06BWB&11X*~9]!.RsL j==cǎ;v @'%K"QDY]}YL?pڼ..T*o'"iAvv*҅0@x@˖]c.uGܽa;+WZxxי!*bq?+kM1p APD0ٳ =|8fĈ}C JfQln%x&A푛+%++{{ٳ1LzzzTWX,Nf/ @A6/!@(8uҚcG bABhdeb0X!j0! j28<46fxDa AzzB65Z%i`BAfe$I_;^ɤ=s]wƍ;W0MW>.06V4$ APij*$ek\--)SNΙWoHզ+>c x&AmWLLԯ\Y{nn[SӶ*>]A|FOL LS 1dylͮW2d_PPP(d&S /O}QD40! j2O1hFYphB}6m uu=wPDA̐RSP(dkk]QD40! jhWTTv|:iiĉ-Yr Y͛,++m9n"p`BA6  W/ >|6l#1,!r%$dh*x&Am.B`` qnj~tڵcϝ{:x[7ɭ'tzׯCHD+RW;HKӖ/AL׬>}/_  sLX ! L b gT:q+:zMCk̘ëVX!Pc^27TSl[0! j9;Μ!C:Xșx#-v&Am%ǢSߴp.ULA$ii?""mҼrFF'/,&h"&AmPSOcQ->}Ȯ{ Mrs:S^߾;| 99nԨ h`BA$,>bnn',\PPwP`uk1!x䋡8C"@ K" o1CIb1ec?v#>>Ŕkk_!(/}&kxD40! D>4}zW@)yŔkkedow/F@ ^![L΀Ŕkk20r,\ AP:ScQ x1Z\O}:ի~ &A-xwfYEEU99%]ȠSLQXXY_@D~cYII5 &&D"u H<5AX[QQQ>R4DPPDII '?ڹs=ڵCB( 2 IGGD"D5/+Pzuc#& ) ,'',- >>=<-C񍐰iC&'g/58_/_~GF"zqq_~~ů_?+23h##52KO( Z`D5dL6L1?.QI=4^],L1e6S^^aCZp8MV^g9Ⱥs'eΜ"`BA"[[}z*TAfI &A-PPUmZFLڷGxy͚S^*ׯjmI$ညZOϳo+հaNTs:.}A7$V ]dL'=~B3o~-Zt ɊCZ4IdrR$F#/]=J4@ booHF wDrs{|’yaow===[8o_gXXhu;I Alm LGYz4t&4UU&lŋ/^|.F(c2*;L&m:fu;`BA$H>܋4k \+UUuD/u!C,Xqt4>Rnnv˖`L QVVFs8+FOgrЃ:sǏ?:K ZbfuȌ4 d*=HOOp:F֕+/P(; d==TEEkk]tCI$$ -(h߂]L ZakkpH$ʕfuFFھ}iZX?2$-Ml6~̳-o(Qzp8{a0X$ ?钜AZ])OR%%% --F<`NOOFO dJ~-NO/0=I"A/=ٳMf FAرdrcuu `6YQ*%*ZX _~ &sr{OEE\aٳx<ٯ_uUUYYtzSno.bq~e$2)%eA٨h4Jxʈ(0ĂV4F% T11 @dZ)EBﷸIk{[ r{z3}[zWvt5{.J|>p ,ncj}`)u M| H !0p迆 j֟Mii\.577ǘp|}}cbb,7#EQ+V_SB ?<Ϛ\.ܹs=УG''ghh޽{666Zxu@PQQ188X]]A1T0:صkW{{{CCH$JF}B߯h׭VsرaWWFիQQQJ244T*3233JessMRSSEL&c +,,K,BCT*%dee1 ujEcSS˵;}6LBXXafffZ >|/8k^U*kj^a>5߿BBT*j%%%k֬1P((1}[vjX,f` O< a400plź£T* !#"".]͜NQB`w\LtD"B"ӄ \__cǎ/^0B 1Z{  F]!\n|||kkkRRݝ={ BHOOak׮4źάZV9;_KMË E]]]YY\._C(Zfeۉ -ZOܯ^/--UTqqqPT o߾5ܤ `ncZ.ʷ0n߾{nDb(xj.{xxtww%o޼|(uf glzz200`,SRRd2322_Hw۷r4+dNMHg ~',,\LMM._KBrpMMͥK,&H:;;ӏ?Ny̕^?qDrrrqqӧOC?GT߹su .Ч$N:c.uYryDD%}ڰ -΂s 8+ϝB;; \NQN۶mۊ+(d"q˖-;9s!x𡯯@ H$'q?dM;nڰaEQixF?66<=11jժÇj4b[g𩩩{2rB!i?cF޽3zjɒ%eee=5W>rļ-ia;-xqB˛;1,n1Jggk7ke1@Bh\2!!BBhk g  !$@AB=9p8?~T({ ?0?/XX`FWI/6111::G1'NNNsl/XX`...̋("!|AB B AIENDB`XQilla-2.3.4/docs/simple-api/classXQilla-members.html0000644001725400016040000003241413273140074017372 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQilla Member List

    This is the complete list of members for XQilla, including all inherited members.

    CompileDelayedModule::compile(const XMLCh *queryFile)XQillafriend
    createContext(Language language=XQUERY, XQillaConfiguration *conf=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)XQillastatic
    DEBUG_QUERY enum valueXQilla
    EXTENSIONS enum valueXQilla
    Flags enum nameXQilla
    FULLTEXT enum valueXQilla
    Language enum nameXQilla
    NO_ADOPT_CONTEXT enum valueXQilla
    NO_DEFAULT_MODULES enum valueXQilla
    NO_OPTIMIZATION enum valueXQilla
    NO_STATIC_RESOLUTION enum valueXQilla
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    parse(const XMLCh *query, DynamicContext *context=0, const XMLCh *queryFile=NULL, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQillastatic
    parse(const xercesc::InputSource &querySrc, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQillastatic
    parseFromURI(const XMLCh *queryFile, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQillastatic
    UPDATE enum valueXQilla
    VERSION3 enum valueXQilla
    XMemory()xercesc::XMemoryinlineprotected
    XPATH2 enum valueXQilla
    XPATH2_FULLTEXT enum valueXQilla
    XPATH3 enum valueXQilla
    XPATH3_FULLTEXT enum valueXQilla
    XQilla(xercesc::MemoryManager *memMgr=0)XQilla
    XQUERY enum valueXQilla
    XQUERY3 enum valueXQilla
    XQUERY3_FULLTEXT enum valueXQilla
    XQUERY3_FULLTEXT_UPDATE enum valueXQilla
    XQUERY3_UPDATE enum valueXQilla
    XQUERY_FULLTEXT enum valueXQilla
    XQUERY_FULLTEXT_UPDATE enum valueXQilla
    XQUERY_UPDATE enum valueXQilla
    XSLT2 enum valueXQilla
    XSLT2_FULLTEXT enum valueXQilla
    XSLT3 enum valueXQilla
    XSLT3_FULLTEXT enum valueXQilla
    ~XQilla()XQilla
    XQilla-2.3.4/docs/simple-api/inherit_graph_5.png0000644001725400016040000000373713273140077016422 00000000000000PNG  IHDR%pbbKGDIDATx[LMgm-"[5%541x)R-1" O܉B pAJU 6mSy/&fm]Ng3{hK@3nL$ ?`'a; Bƹd2L"  R72$?' RZZZ__hdI+W޿HnI~Nv00.'? ˗/_ACTرN4߾}KKKS*!!!˖-{:!FR'%%566D0v'AKKK̙c4GdQ;Zw%I2!!appp&@/^,HFc}}u:'T%j6͛m6^pTMMMATVV>}']:zW D1k׮nc<FtF8INZf PV;w-:J(nw)Jcbbn7{-YWHNNBdvWuyQQZdXT9s ș3gaURRV#""kv8Bȩ~J tIYl"hhhOJEE… bcc}E2>zccc !OCk{zzzJJJ[[l^`Ann.{ o޼ rʕ8lXzsNG;wZ$B!yyy[nlNHH8y$h4vzv`8$IH{@__fThÆ $I>|pTIp8p 33*Nq:AAA7o޴ZEEEBtrFNڞTWW' ј߽{X,0'  ߣӲsBNL?~YYjinnF~ЀbjjxUUUEiԾϟ?~t:ŋ(S3*T]] !x|Xttt455%&&:t31>T^SSԔ x Z ={r?&S%A;;;$ISva666k؈O;wt;;C WUqd2YbbF[reffvr?⫪zzzzzzZZZݻk.'NزeӧO\%K=tx9Nooxb855yIOOO.񼽽/"Hm߾= .X ..Nx#]RRmmmY, FQ. Emm\x Cμyrssb555E"@9$144D&K忽)Ɗ~&TG.WxyEd2;PR>YR񹹕T*J%V`?8(~Z*K׫%)щFEE)<J##2>M&#)*z(YLQX[Bl:'W#$ %PaW(R=D"_v/_ִ|{oQ+Xv݉C ojUW7)cV]$TD1_Ttuٙ/2̙/l`IXO));B  UxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$V{=ciDof='22 /HJJjnn&:K3Nl#:C )H< 2mœHZSL^x% /^Ptvvb1lllYTzakkk&yaT HVVV /^tvv633&2x2㿼ֆ~W ݻy&É'$$|ׯ_r'O_|>a|>_u5݅B!>]XXh"pee%aCCCjx#c3٘lǂ@ 333|@Rզ+W`(wbX<`"ؼy~rׯ_bj*ojjx?O .l!$Q%>?J%_N*'>@$ð T>%T}W5D+*mmR3(jT*J'޼*cW!=""RRv  C )H< C )H< C )H< C )H< C )H< C )H< C )H< C )~"۷?=inndggdTA?Jd26P(RԀ xdl6CְlN)H< C a?N"oDZլ,&\#ð,GGG6mF1=O>ƍBP(,--s,a/<&HǏחF|WJ#a;۰mgeeYfڵ+D=<<,--ؽ{7joou4g>Caoo%H^=<<.^lff TzLheecǎ.k1'իW͛d28088Jf26읙bP(SRR0 <==UT@gg[tT*0,33@m۷or ,{ NKKlݺ;%%ѡlɓ\.y{{GEEZGse֭[ɓ2WWW<'lS.dɒGb Bttt`VQQx |L&y&aNBBFT} ೹x/^T|yukjj8j5p\  B|aaaEtoOc˳d2)^`>bT*%ɛ7o***y\.wqqg]]]f^TUilltssç=<<<<Hd)(((//˫VM#8d2}T%骪/Bw9qm`0|>Ⲳѧ2@HC}qq1L~rɽ{o-M2dZ[[gdd{zz!!!<3&&F[/ix""bݺuK '|iWG͚5{FRUh4\$t[[ۃ EMD"bXfffbXGsj92iii*ؿ?{׮]t:=</qB1˫ *Q%^*_^qd2իUCCSㆣK4d}} D++eX dFjjZ{?qp{,##˜fL5 FF ~ ˁDDPP$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxHA!$RxH1"##$"biooQu(I=駟.AxHA!$R|݅ 222BBB%Keff9%_9Mі-[|z.$ɹs޽+ mF&Պ^p={Gׂ>1 p8L&X)7''  ۇOfϞG8}-a_l^pcaabΞ={޽SNx0BԔNFe>C}CCӧO9R[[3sLKKKKKKn!innniiI͛^^^033 7`/8.\077OJJz c0/>~mvvhz#xp¥K:::r81&dɛ6mڴiSrrL&+-- ܼy344T" H&-,,---߿hΝ6l޹s',,l[lRYY'&&%֯_;vPݹmVXXZ#H6l(++Ӷ?o"J?- P(BCCy}=zHq> zQZ$ɀ /]rE(:u2##cʕK.=sX,>sg}fllNSSSZZڛo9gΜHIIqssܳgOjjjWW^Gݽ{wII\.ںD"WWW]]]>}Zmx{{Vm+z@@[kwޝ9s5Va/^ MNN5^Z/޾zjիACCÈK1ɜ3gNDD>z߿2**jƍj;vx S/ F{뭷3f8{t:~7/x˗S(. (**Zn$IkM +8ʕ+?~ yկ]Gtooo/}p8r|ƍ%κk ?WNmٲE9+h4{wSNilgppʕ+\ (-(Jss_~900w:::Ι3СCxKKڥKV;wju477X,+8̙3}}}oݺTZZL&S̙-^NB(..޻w{x{FFFqq]t%133ꫯp hoo[t7|sرfΜ殮)m%jIVX!JUO͔o7x#>>^]… /V%ɥKbv5+z@@_:w\{{{mcbb\\\@c ݼPrbo97֮]\[[G8~~~Ϟ=?rH~~>a7o(--UD"ҥKL&seT*(~|W+%ϟ?n:;w۷oٳ`vj:::B֭[˗/=wpx 6|%%%"<==]gɒ%͍bk< w>}tXXDZzuDDD~~~WWWpp0B9x`RRkfjj طo^D"9;;ō8h={Ϛ5+$$$ ȑ#OV-cddz7n.8&&&}]FFFrrrkkm@@@PPJދ2CBY͛k֬ѱ}TT*o;;;]\\ݫ{# GX8?MKKkkkω2.˪FАP(,((P=zo/Z,D?F ^v !$RxHQ?!$b\ѠSe 1Su я #TAxHA!$Rd|)PIENDB`XQilla-2.3.4/docs/simple-api/classATAnySimpleType-members.html0000644001725400016040000004615413273140074021176 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnySimpleType Member List

    This is the complete list of members for ATAnySimpleType, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATAnySimpleTypepure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATAnySimpleTypepure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATAnySimpleTypepure virtual
    getPrimitiveTypeName() const =0ATAnySimpleTypepure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATAnySimpleTypepure virtual
    getTypeURI() const =0ATAnySimpleTypepure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classATNotationOrDerived-members.html0000644001725400016040000004710313273140074022025 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATNotationOrDerived Member List

    This is the complete list of members for ATNotationOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATNotationOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const =0ATNotationOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATNotationOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATNotationOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATNotationOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATNotationOrDerivedpure virtual
    getTypeURI() const =0ATNotationOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/InputParser_8hpp_source.html0000644001725400016040000002601113273140073020310 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputParser.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __INPUTPARSER_HPP
    21 #define __INPUTPARSER_HPP
    22 
    23 #include <vector>
    24 #include <string>
    25 #include <istream>
    26 
    27 #include <xqilla/framework/XQillaExport.hpp>
    28 
    29 class XQILLA_API InputParser
    30 {
    31 public:
    32  typedef std::vector<std::string> Args;
    33 
    34  int parse(std::istream &input, Args &args);
    35 
    36 private:
    37  void reset();
    38  void whitespace(Args &args);
    39  void character();
    40  void escapedCharacter();
    41  bool inQuotes();
    42  void quote(Args &args, char c);
    43  void openCurly();
    44  void closeCurly();
    45  void endOfArg(Args &args);
    46  void addArgument(Args &args, std::string::size_type start, std::string::size_type end);
    47  void nextLine(std::istream &input, Args &args);
    48 
    49  std::string line_;
    50  std::string::size_type start_, pos_;
    51  char quoteChar_;
    52  int curlyBraceDepth_;
    53  bool seenNonWS_;
    54  bool stripQuotes_;
    55 };
    56 
    57 #endif
    Definition: InputParser.hpp:29
    std::vector< std::string > Args
    Definition: InputParser.hpp:32
    XQilla-2.3.4/docs/simple-api/classATGYearMonthOrDerived.html0000644001725400016040000012625113273140077020624 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearMonthOrDerived Class Referenceabstract

    #include <ATGYearMonthOrDerived.hpp>

    Inheritance diagram for ATGYearMonthOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATGYearMonthOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual bool hasTimezone () const =0
     Returns true if a timezone is defined for this. More...
     
    virtual ATGYearMonthOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Sets the timezone to the given timezone. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATGYearMonthOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATGYearMonthOrDerived::compare ( const ATGYearMonthOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATGYearMonthOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATGYearMonthOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearMonthOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearMonthOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearMonthOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATGYearMonthOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if a timezone is defined for this.

    False otherwise.

    Implements DateOrTimeType.

    virtual ATGYearMonthOrDerived::Ptr ATGYearMonthOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Sets the timezone to the given timezone.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_000005_000002.html0000644001725400016040000000372213273140074015705 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    debug → items Relation

    File in include/xqilla/debugIncludes file in include/xqilla/items
    StackFrame.hppItem.hpp
    XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp.html0000644001725400016040000001207513273140077020350 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthDayOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATGMonthDayOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATGMonthDayOrDerived
     
    XQilla-2.3.4/docs/simple-api/XQQuery_8hpp__incl.png0000644001725400016040000076467613273140076017053 00000000000000PNG  IHDR nZbKGD IDATxyt[7}wy˱8&M{iJC(vfhنȐÙ2-}K )P: CCI -$q8]wa'&8k'Nj|yN\`pE,B. 0-~s{u\^By͛7W{qrsᴴ j/da8rƍwQ"zYl7n*}{^,Z/ 0-s ,B. t \z_=_>44Dnf2~[nꪫ_|X,~\n>\W{P57|O>yd2O|hhh(*Jq*[oZÿ/{1.;~f LXҾ)ʧ~gyFp _W*' l6zꩉ_cJe4>ܹ_ܹsOڵk׿WX| 7޽{{n_LvVn zkkzB@lr뭷>t:~```M7mڴ_d?{}k}'IwiC. 9-[<_v;ٙH$˧8<<l,#;??|GK/Ͳ*,urytt厍M<ޙvo`0444vm]]]d޺f͚>CQݻ⊙-[H}sEq;l7w5NW{%YR42^ET*7qct<’l>_ik-%lwE]~(\h;ʃkkkgrOsz:L&#]\y睆[tZ l6CYvTrY8%IQL"&BfT./ d2CQT"-Jb1RhPLf 5_)dΘ@,%Ht^BqrB<#X0C(lX(Ib.#"|L̊ӥiJ>aCГO>y}ؾ}Uh(.կ~N>uovK7xKQTXx`},ROXVjO2NݸqUV.E.qܞj|3ߟ_* iZ2s9rM}G@Ʉ3_6JmBqٝ<W.S%R!EQb-pXHg "r}d'5$$m?=}:$Pr94-IOD(~]̨TETHѴDn佨ɨua Ǜ”J.b<wP.o/~믿/O~xo|~??_5fJ"ro2(7߼袋^y֯_;H&=؊+*g)jkk+/oVv믿qF~ӟnݺ5?쳗_~,;g'ky<x\.G xtPR(/BLfg~k/V,6lgyR NQT.WdKR<>9l2 &?-s"dYD" J|'x<\qr1!0%|db>#rYHs\aҤ4rX,,7D"K 6 ŏpHTJ8ɚQҴh\99 1$rQ+ 7|s_EF>}y6lذaT*}g{t:o>|#<{-g?{iϞ=n喟ַ8Ά njZ\ ?oذcϞ^ve[nd2^zM7DOy:tHUrǓJB!’Hi"hM">KZ`Lr 5u?+ksb|T*KUtNr\D"S,O.w |$0 O3OC |dx\\$ D"MBL&"E*)BB!B/,)ivJt.bd2Nl?K:rPhΝ>*8##AJ%T*rB:KdtBxGQX@[,jKJ )?LK&FdDh w+M&PaR<;/ bR)U*%R)Q*$֝_!L >!H0L*NX,gd,äIƮxTCH""LDJ$:T*K,BV! Ye2D" C=W_}u{{鿗L&۴i< @QHWFhJ oJjULx(J3S2 %edD"=dl(IوT,i+_lpO}Hvc_**b#]*bd"A{A1(-0L:KٷhtxƋ=Bh( b>_,J|J`PtrQ `ZɤZ|վxX,biҫL&!n"- &Cm LP$MOE.TF봝X:EZJ6U+VhZrUqpR[[ͩ H|h4ǼäzqH7MU>Rt)U %R)=[4;r^IeoaҧSVN%"t355j4rIT\9q" 'oN[D"h4=h wJDD8kRT$FddԞ׹Ir֩Yْ#.RZ yu:}\kYTBѨ4O9u6zL0c@<LxL(ؿqv6@hhZ٬&RWѨ\ TDJ)=Mx&+$T*GrI|K.Isx&-\|.W qo:?ig{4-RH.D|\, E"B!Qeb1%"@" `:+dBT9(7M3Le`4ä䴹6RIٙJRIHl)?{pn,E6a\[b;bt;*LTRN|Q<"g#$:~%ߞZL(4V{uKL&Z̰lTI|'[/3NGҴdR QM&Nw"U(#'Dzg2Lzf.WS\8`LLf STRIɎ8B!J|X(|2Xzb"r"T%L2zF#%jLTR|TrY"KH$OM%5ȠVDHTJjWTRMmHRaBl_yJh2ѵt:?2t:B)[BUh42Ft&ː>~{?DْJU6F^M牳RK&D"N|4d*7e2D"g]t:NbL*V8KpB" -D"H<R\,R4blэ `GbZ8k54WirVr,8;BI $BP(D8,ߑJlleZۘoPe0Tb |Gz"Mjkk7m2w+,)b q~߮\rǎ^)ԖaRdƭ1m-vZdk4*-:gB)L&Ject:OX:ʥӹD"Lf|*#tܛm /.r9r\.|+{8 l$oZ'X,}ĩjaLɤVÇ<8~X,x+VkkVu8L|nZ=u{/>]sɤo@%+D"əh\bqHğk?jQkT*Sl2%%d6̆BI/&#$ä\*d \P(J'px_,JBI Pp8r9$dBYu:F#'4ٹ],J$Nر R?)R*&ӊflD}}ឞ(h;;آ*Ve2SowtطobQFF\& /|K(DC9C ML0~?0!r夬tE6mz^ Oe\%SHD"LfS|H>GQeřg(E"X,2i! D"J%awTJU*F#u0!8L90lPW쨿dV@ šu:'J@mm6Rpjk5gt4=ᇣN'_֮ooE~NEQ{mr0oiݜΘfb"' ɗO<WI"/8.CJ\\<K"LPrX.PiZP rX)s% ,I@ >1 L0z`0 D Os4-iVɍFZkrjeZ` X !)l;6Ţr8Lmm6²_#׾}|p<܆CgVp4̣|=\m6UA馧G?|L6[zas#SG6hU=O< @q?ł8y1 {N'jzB)RD(x3LaRpmX:imR)*Em.D9ҭ덑~~p`WZf0( ZWdC N'GM%h|<\ё;0 <V6%nj254*GGC]]C==HմH*v'[om۶#+<՛7wˇ޵-םw^r_< gK&bcc!c.v#lqdej[[Z*rc5sQve9&jAA:oLJYrL<3Da҉D&$Y1'Hdäf.U(4-i yS*ɆX+BTJ L:h3ww>lElER `@L{=rM0iRdr86T8G?p*ڵuk֟w^4;2L?^xӦGN5헾Mwqt;B){<@ DDy @:)zbQJIiu+ɓ/x"D4-$ɤ4iEEZUm2)f8Ux_<~ѣc&p"EѴlnn47'R>1ݻwh߾c&R}kֵXP߮]Gm-Ey+W]+ywxo\WeflI[㉒6ɓ ٬XTF#mM&Ѩ$* HML0S_H1'2#9F jUͪӌlO%3L*) IG)N"_ɕ U*I[.4irYb8` ^GGClN&VԵ+IÇ]LZѰZ*|== wu ;I^jU')|Su׭}kC;|r~MګiGGCKP'UD۩ʚ +`rѺݑ fblD'&`sbQYHP([I[T7MLfŏ\2\cƺ'rYT*vG|>/DyrzbQJ{٬"ů8// zzƝN=xpTJ)RVC25>"A}hJ&X:;:; IDAT\ϥ^;xS(?;z?/͍WT{-0U2 .?N^W& KN[W՞%Rh|&?UI.L~ ՍӪogT\!sTu-^g$%5.ZE%`!*K.WZ؞࠯T* <]fkj29Z^1 uu wu :4Ff[no۶c7{kr|=k~?^“`l+EQJdlkقanw펺ݑ|HQ%IMfS[MUSHB>_33S[=N2rN#X'p@ vG^Rz'Jf±^8RjFl NwvR$q99vlo"-x\]G®Xannj>vR`\75op65.`͓:/~ï[֭[V\>_Łcrar`YVܺݑBa[R)eZ8`V\>cj)$'q".W펰IV+Z6VSSjjki wdO0T+qZ`@. X6[zX㉒dg-zMK~XLHϑ#GGx^(^Qš"4?hhgW{ NLD%ak4(χIgH~wm]|} OsUL_}jt4whX&U9–lOk^Q;D,q#.W xxl,'ikj4ښժڥRc[Rbtr8nZ%!#W\Ju#hPIg6UeLvfXF#=OHd#qO#T*qm6ajk8:r|4-e-[n٪UE\S(u]7T{E%|+?M$z6;R9{_}tյ۷oil4V{Eg^}[,_]*]T9,zza66&'N`kj4j_HWXhd$82B _\.bQtz^"+pIkpxY5h\8,6~||2v2]WѴˇsP(tz+q8MM&ϐ&33$0|̴pd<|Vns2B\ *W'FzUgb{z\RLӒ&S[[ h< 3}$uq8+;6lp\pAP[}۶ >x^ڱc=w{ͷuQ0 %q#.Wz<;rh,&дjUljv"ͦ4,l~%2%cSilAc޳%3LfμY.$e'i7-L>sm6< FFT*GQϵXԵmmVKJ3O1l 3NN 4Ia9E{vT*q󎳫k(-iׯw_&\rR ߴGj^ќ{oزkXqO㉲D |ljQ[4F#KD,NA~a6/7,_nll4._nhl4jwB-B\(Knwdd$8<$FGC\(v]}NKXEwbipOG$ǵîYSIźv:E"IVNoܸfS#.vٶU~䑯\uժj/__eT{-ʴtopG8d[[H^;9q:}lYm(:at8Lh|e26Np`<Nb|/7VՒmZ`Pz83\6{l]JieaQ[A7X(P-u9gI fkmIsu=80JK$ϯ߰~c*~~,?O?|J%Ωr|};^yn[nYy-Ijk@;Z.^}hln676/7nue2ʘv- N&P"J };Lf]Դ~ E'5>޶mǞ=o\C,B|o<{?˖8!M劌"äɼՐ355mM@%҈J:c&r@XTdbalkY܀_& kشya&]t \|8>?xR(v}}PXB\UT*q:43~T*իkjVYf2l54MWZٙ(/۷oA^"myջVL#قLkT3K?da,&\a`GZ2vl,T*E"~c0esp]\!IFi?2 b>0iz<|OR[R2Uz+1dR)Zr "E"I/wl,D3U$vW_W]F8L{X>_iqSmj2%q|D"[W]q+/ -+?}fޡn>OfH$y?pW^KU{9p&N:vpЗJ("k$`@^ҐZ%}>L--V^YٰlT^/كI-ֲlk0Q rYXTH#,҂􎎆NNِ^XuuZbյhL b xŊAa_lJB+^k~w^,Rccxxl,41%d2~ȵZ-^/Dv`wosi]Sin47[Z,--zjd2ăx( @<Jql$"${Hj&R@krY `bA ,Ae`c'N'EQJ065pjj4sIP:~==lA.57[@v>K$K/m;-}}[KrW_##8^[>_ >_L6dd !/J>CJi{z+ԒZVWT{p.`狅BP(1`c n 1ek4z:lVj Npv!!/z_{{]+.dZպjŊ=ᤊR0`S[ ^/ǽި Ho4*+ZѨ4$hd}"Pe*I s:#tXT˗-/_n\РXT8^$x^coϾiS{Ӵɵ~o,N (k~X.W񋫯jVŮ]Gm-Ey+W]Y?s7^,]x>!m##!!mM&e}Nkz=M<' <w2)mk^]+LXb x"vb!lMr0o2)FVe2)-E-9\N    EQF2u8Jڋٻw^qdԛoٽ_r4-w^ݦM6tD|Su׭}kU*C|[{0U{9'E'ZYV %J)uc؎D"'Vb$cxfb"F$%qRhp <Ԓ6ķB!-8;EMy?NѣP(Aͨ]¬+XthםrQ{{ڵW0>_狍Ȁ۱72̶G *>KXoQO_hT*d+--KsɄZXXR_ľ}C?2>p8 5kj׬mokm.~_:_z_җV_y*Cm;qx㺇F&Cӹg3?  KϬu8Ly~8#ݣCCrl׮;ϯ_磔I)l^K\;Lf17rmd^;:Ac IDATTwrY%aZ9#p8IQ|pc[[Mc]e^s*tw?oDk֓5kj5+x7x'ǽkYse-K\.?^Oo߾eݺe^R % yrׂ kIRK:!2ϵZ$lZ܀κ^<75op4J+WZIu떡[g3#[6< cEuuZ/X,Nd}RY.54Hdjm@QbuJelwv[[m L&gO=l +jl wo6YEOk~b2);R(E( Hdr4(J(* /j/yi a3_k:H$2nwz<'rE&&lcd.6bQ[,*UmP[\rY  Itz{{ݑafS(75]mi3_rM]5\78N;nӦk=OW{ipBPzwvVSz> ?9AJZ ر RFڦ&Sm4C^̀NF,e;biDf[a5ְ@Me;6z?rMx`+ m:-"â\`A:i9B!$mk\ic]]C.6+N;EXJOuˮz؆8vغ>]w]zݗ#?]q'WŎ? brVee ˗-/[f0U^"W.|?=tzex .Xp&`r'DN$&*REeVŢZ6Fc0scxwtUO,@MgQO2al0`ʎpr]c2u8΂y?t{<Ѷ[{=X]Ǐz/L FGCz{]^fSZ[֖+z?th :4HG2v];w_5kjOz@&ߵ~RWn5.!^qcccRtuSoSOa߾}ݮ2cر{֋#/CCAq4(J".[oh0,_Nz -3#YT, wu q;"-;:;흝vRZ5#3ؒaRײImmv_| p8e4sWz.O ,@NquwI/q[[͚5u:&;ox67;:?þ@ey뭾_ K.iUyW\~/Ν ⥗\w/_"%⮻^x|8 weh(u`uH_?> [tV{- [tzN_eYH;5MM&z@WwXSg&l@ؐ0ÒѺg]Ϻں][kV[먶֪Gj!N6H Yd'检qޘܜQ^^ހabb|ׯ~T%I$ O <}㉚dvvVh}APX,`@||׬ys̘peVkksskEuJ H u  N_PPw^)mjY[YX&'2ҫWwy z@ BN--69n\=x~q9u6  Ԏchs۾7~7F--rłAKA[O$zҌ23jZ=dׯ7', לRjB355jauuSUИ`3iX,FG7lbєJT*`;333 / Ts8*<(ȍN'hd ^sZ>?mfs7͊DFz8S5RR?k47~|'OMN~cǏLL|#4\YYUƼ͛Ǜ&&r տ&'g~2@jZ>/*C.^^N4 mU C_Bɩ̬̬F;21S(*;II: j(ٳ>r} 4_Q / t F_kLi4:[[0*Zq&T #ރh5TbdXP*~^'zC 4 G:{vQPSknn6싆V,88XݺK{)NxwqXk-\Trh*` p>>.t:ӉF#>[XLo$32329*FG$ZÃN'h$W͟ A)4tⱯ:$[< eKK;\k@{xrWfded߿_VkI$"bbb|h4RŬ%KФ m^o9Н;ZxSKBB{{'rsyh"Z53P``7"ԑЭk5q8,t:rrum8AyYh4"~vv-(ht66桡T(1AqD,)23GGn <ݻ{]_O﶐@R(o}Ft2wwS1FW[یEW  5 ${fj¨P}97-ήB{mYeY Ar_~N x<%&',J vC!bAOyY \"MĢ}}! A b<(b\L(׫?[<(]|Ċ#7.|RS gËk c49~IfuxH$I+ 9;ۘ:jUUrzFc)t:NRx&>"~qD63xy9yx8Hvm ,9yJN`[TA uB}d!/ ڀ,tļ Hc}}]D,sl(Cr|<}mn;vkÆsO"#-y/d2q,bZ=`ۿf8:Z= AԈkj9ZاF#+kHhDP^ިVk!pT?T#D4u<@˂6 / t@"Qr8/EoD imb=j$]ee({Fdiid2>~ĎI۲b1 :Aӣ#x<N֎ѣ b:ʬ?F{ 'N,Ki44S-)EJZÃF#{z:b0}A TU5UU ?MբZVGOؓHD2َD"R(D AUUU7o>vX盕 6UiaaFDD<aΜ9.\d`0bGE~3f2++}xmf30/ ^; eeUegWTUV6!C""< 5,jŷnDrkk(f|X,966*6o 6stpttrt qq!;;ۺؼ< ׫jZ]Vh4 6ud_,ԁtooӧM?9~\( t:8Vk9j.W/n0D oo*Ff0<`g0 lG&1ǵZ}]]su֊d̊F)EH$휝mmlm\\lll]… &L𩲲2&؈ 5k:Ν;>>>HO?t酅O=uTeeeLƏ_WW Hyy899S? eqFFyFF9SSVkDp)S1^$ ^VɩsΝ \dӿG ł*`0ۖX+ܼKx}Q\2}t:Prv6WL6k"(rX޽3^}3m2-uEE:.F~ss 6:D v XXLxcт R@,H|@ ijKkBySL(7NNvvVDe,mmcM@Fׯ__;|J755?wwqq!/D"544vxpB Os sM &TYPP2|B( ٳ _ j99wܽ[Q.H$b\MbcH\\\L ;u.< h~7g"O&:]*6/68"H\>ӧﵴq8sH[p;uww0aؽ!,DjmCD(77H$ X!(JJ$bB"Q ;fǶ66f{{+KK%)W~[hQnnӧ7oޜemmh֯_O? wy> qܹscǎ)ѣGߋ@ \t)))庹mݺuΜ9ZO>i{cceRDZd>a-_I O}._qƢ";;˗]AD7~QV^nݺ=, NڴiD"2eʞ={Z ۀ,>B՗s8h.X`0H$"#M,5Ҋ$M\5o2>aaT𺉏;sғd2qa+Y,qD s8?\vM(Ξ=O>1w8;vʬGU*-h5fLxdgdcJӗ?xPfsӹbqMdҥX,b`(Xlgg5{6Td`T,/o(*UHDÃhd ^)"ђH`^'$EKZPKO3JrRд2R*UJM㭬̉Z++3"DE˶]n߾}aaa#FXhD;J&=<$c>ϫ}.&*kɒ}&ڵu]ׄ`xL^P{RNIu`kk j{HT!rUK?2E-R@ niyTBѵ>E#rtvpvtvprtqvGkGGk<n .ܺukJJqB4V Di=i/Խ{n޼9**jݺuGpwLhږ^oSI^\\ HKK˦M͛wgךqw333.{dHtiO!>?2Vuuuz<et83O:;DEyϙ3_?ph/C7 \,mn\,<+FdʥKOZ hp b1vvVvvV/BnUcYi|"ʅByeeP(C`0..6ζ}\\?|+V8qtvvNMMEhR77PA\^ Bjcǎpk׮5u`Z<,ndee~wm= B1mڴgώ;VR;v l?MGGGUB*..Fs\//{D / 1(px\.߸(vtfL\˫lBnDrHŋXP*\III@@3GܫgA'{UUUm޼ d[lINNT*u̙֭x=kkkW\yΝƠO8&0LAڴiXX/'&衞kA-e0<]_i%NӣZH(R>_狳"Ǻ9xz:RNr=zy.]x`cI&[nbx…111˗/75gΜ$oooA,Yk׮]#F8yAj5@p/ܹ== ?Ӕ)Sd2i{{D"Q*d2[[ۧήs*JV)[""J1Li>;9,+8 ֯_?o޼{7|\E / JUh"RDicc䖐4y{a.@.IʘLfcccq{{5k֘$nb3pe<޽,]299ã`ٲeBoyZo)22rرgΜzդ IDAT3.^8rȗū t k4D1gΑ!!@fAD,(˫ywnO?ht!!aa԰0j@@6lp86PD xjaU޽ҚZ-@  hL k֬!|}˗GFFbɓ'ָܹ׺urȑ#ro_8~5k}}}Ϝ9caa~wF# ђ8;;o߾}Ŋ}ٗ_~yyAHPRiYٽ=*J$Lg뜽={f͚emmnݺ3f5J 3#|s޼6HJ: ǏstRn޼%11ݠwuvvR+WT*HG/cAFj*j*F,e A"x&'j?oA46%6ow۸~Î;x"Nwuu]lJpI= ?. o}H :S|ċq;RS==!!D,V|  sٲS~gJJ^F`77Xib֮}ѹl/RS<8uj!5~ς~_vQ]]c2LtGʇtiRJc(.;vk6l:Tk:SGgb 55md2C{</ɊMѣG_qAL"9 HSSӑ#Gݯ]А.R|j/7Q13gtMbb;I$ Ç]]]ϝ;W[[{* h@"͛7:tgsԱswレx P>ؔxdׯ64HM#JMff?/[v*>~Gw~Z^o{.}CE@^@$ׯn~iܸ}+s xHZNN| ҥ'#"6S(hkV88s:zd)))΢^`PZ޽{۶m p?S]:Tyg' D<y`tO Ù3g;my6jkE11[njJ.W:js9sC/(mWܸW_/1uJo}B0,lsԩG,h"3.`0\AFFYFFyFFYudžRcb|pLc>IvNIFFN5 v2_|<-6֏@:!55u޽7oZnѣo~ AXZZj|688ՄR.\uVcӲ #q{O&EFF2L888 RYY!"t::m^6***(G;;gZ`rKNڿoذaͫW9sS'աg@" `|AZZP(춹W3#t8 b̢㿞7~Z`f߽T0ztXRTG{^k5@"ƴ GLic=#rsynߺUqyB4p`ȑC/t:}IIl6Ν&YHqLODc>EaEz:0LH;EKJdç.P(zVO>=vu9k35 ^E/zÇ_bL='''<< //#(iӦ={vر*رc\vmԨQnnnh:;;ʕ+III$ ÕRwwwt6/cΩhQf>,Zk`9sf`` {`0#GeRpv7nϞ=qqqƾ'Oh4VVV^}rhIy{Ӧφ~d?-99YYUU'Ob1wb j4+n*y cƄפ}\.߲e'Nzj<o0̙sLf S\\^€6Aq8޿_Q&(L%K})t{ˉŢ-^_˗y=ztԩ'Y|w}'֯_?{N ԓ9zҥK EGuԁ-kÆsYE|fܸ}6;{6IvlFbOk.=^dLO]r%jL}ȑ׆myu]`0tg@Ң塋22T*-Dd2}cb|L0jO[ZeeeiiEն?6xp `w._a,}B| ̙3ӦM{c_wo3/yq`S}^AANNL0u*Z>ۅt=B9q[8pٳMMM$ o˦իW[ָpիE"ok׮}mwPcR޽һwK/{}|\bcLhOAselv@ vt^tE_z;nݺǏr87.^ALfʔ~boOct2N:5A\𲳫rrΞ}gx{;GDxFDxFFz2^8;,X`A|VV?۾ΝvsY^^Nf>f<""b۶m hE]z5+++%%e .D8peP8{l'''K͛7Iך\(}h4R\ߏD":@Sܛ7 y 6;s&n=>lXʕ¨ t,:fʕ&L@D$w@O?MJJBm!/ Q(ԏ=Q|^Frbh;p @">(gp8LpQX?gA۷o߾}y)Pĸsuu=tг n[-Ktt1~ :Dda**33+>sotzOO~L@ 5ulm-,݁/gѣ92tŊQn <{{{2ݦqvvvttt!7E$00u2؇A^^ Z>?榧s/S^^N11>~:yȐ@wwh^]EaEz:0LH;E[bd\b  ϧJ$w=0SCD.WՠKiwbeed2>y;8X:^Эx QG^w#vOzT*|k̚5k۶mC V.wܹ|w=SqqqXX \.M>i,Yse*D"2۷O<8>@htV\68;R3x#`Ŋao5w3gpa#y르Me8`@ 011>4ô {0aF^翳X͟G#^`ӦML&sذak׮ݸqE[oyѩSur˗w"hgd,):>'֭[33˕J _|1mX ]`0l.]tniK `kggSg!pG;c^ Їyy9yy9M Dɩ((ߴR!-=iZ 7.rhƉwvv-[&aSćn޼yժUeee>>>3fۦ{w5kr3֭[V-n3 '3`c\.֭b6{nD$X7t2ut44H+eYPWlccOKHȦt>??3yyy0̙3gM$[Z.,uq5u8@htNuffEffEff@ !p 5:ڻ_?h$۾ٳivM3wu5]SRR&#`_wު^z~)MM-Y[GEyX,ZXJ@j2# vgh8<kAgk!SDB$*/+ZLF[Z*Im60R)HTwa>`4798ů y Ǐ"9y1hipNuvvF3;>\}ۃVk޲e @^5,&2*+ì@l3uЧtǍ+E `h,mȐ k(ʲ%?Ji4ؖ\n&f*V|[8;W `UUEj111|m GζooqDyyN*_fKK{p;vx{{:ާqo]O|L\̬{R4G7`?boAS_|7 ܻwSnyNoڴСCOK / Ry<=QUi0 !!s~^&6fs %%Dd2}Y,ZBB0Y0 *9^mH$j1>K ]\l)LoBBNbtݶڷ _~׋oHL>p`E#atNZBqxZAEE|._XϯiiQ#a Dc ŞPwkSE]WSRX,ZRҘs">~DŽ QxPTj Gۥ-\#F9vl^k7 yYelJIKIC3f t'>< J"Q՗7՗657HJAvv VT A\]mt e0<H=oMh߾ӧ~1c»5oU_~I:}ڵMK[\LI[>Y*U.]:lНn?d}jmVV>|XPY,ZgUPP;G,,g,PhMyYeew7|̀,mذ!zh ^ ][Q(C@vD%S<M͒HD†{/BiyNc IDATG.[0cFgQ(~~kNxoذtwFEy7|_I:~"^g}={80gܸHSb.+6aV ~VVf<@ y Ep^^J/cbA^Jw4-0-dD4ek媻wKҊl.73xXt`P_E:RikUUSEEJE@$Z8\UW J qA 54󿍒TǏ|041q٫\Wҥnp8~EEW.]NHپ}K m.~=رC:/P(ԙb8&8؝ŢbcI%~`S_?u1u8Ϥ: гŵ,o(@ʠAxzleOz/=(-rVD4bߺWU&'>B4h}ܒW]GnyYxׯ  OH:4j@lJIKI(S^^N,Ţ dccn?cͼYz\n`̿WH"\NJhTT6 b¨}F7ݶڷ _~S7pLFRRrI79s\at˟4;*))97&1UF/LЗHʩS-.,#x-x7 SS lLq2$p8hBaB ow slA^46%%/-Hh䄄x,.({޸L1LN ,/jTGlcP s4Hhw:ط{.gdv[AAwi|pS4i_% ə۶aV=sf, _3 '~aϝ[booep׈F{<505 ?l ÆtgY`tw+W^lc@^Bfds]{TZZ`=p`E>fgW54H2TwggW}<40a0v]vџ~Mx:Xܲ{?x+4}]uuJ- z!7fs_̬07$$&jf@2)ςfGG72Q|X  ֝_R%WwwwB"Q֢YX.WPPP謭\i44̵Gۗr}׏?9fLxYaxce쪷{+O?%%/))Y"Q.]:l)k'M?p`M@OPTĿq#+,m̘#ÈD S֗媑#xx8=RyY@ZZԷo䥤 bAhnj@j_88=!!8!!BZsMK cacl@\~Q Ϊu6 :ɅBG.[0cF[=;ۯ'&^ѫ2H.W}Çol6a@ZFw̚uxtO5u,?@|Zs+`06rdReeUMƍ,7u,^_Ʋ7oǹ0*o]}fsSS d2Lp+1x>ZARS#bAmknhm_ lfO:S(ha{;g<JK\>px]$CZ5e0@P{0d,֎ɓ?pijp%%7nzˠo*޼|II}bW{Y@rr?'%]hc@ ujjիRR$ExرEBh4Tɓ M ׂTLM-GU(R ><_?UCz5NWv~X~|^ CJF {zAj\hM";BnnD(,C^ZRt2Ff0=ngΜسT1w.kaD FΝ;w)-دϫ>#>ʷu`1ᦎO>t)-cFA"MZ/Go.fw,**߸wz^ffa#C]\zׂ+(ӹl6é4;>6bDh@сn55VTW'$

    D6`ĉBC{e&6êU!K:>e;weeUVÆy:(*&'3Z}pQ}:0R.WhoW77+KlhjKLvn.((iR]\wᇛ/^ aX'#eeU}숍]ٻۧv7mjc u뵊 _<tLJjٲe_pijjde߸ ȨQ~aa} nZ-qN%=yή / o|~uRNϊj(2Ku۷+# ŵOӳTݹY>0#$o(? t@Tef$'3Ϟ+*_NAA{>]Ħ^ίiG5Pw{+A Hķ/4 2lg\b LTW 6SyynLի =>͟2XF.{{fe[ҟg̘Ç{C Љ ӧo쪪j"z/w >Zsa钒JBÚ..nEd2EAA: ]&R(dth7@JK+_ӓjUȸqzs'cѢEE7j#8puc,К$-֭Ϙ/]K ;&Ĭptc0/_Ny͙3p05Zdʕ&,@nLӳbP8tE.WzUHg''332JLM:d%(ң^Z%BYQ!pl\UUT>|*/d tI++S'' O&H$wwBaMNNQdrsYRN=\ZbGS+Vfx֭5ݻc/^|V++St*ʕ={bkkW̟?Ht_XLqn_=MNf:8XMo֬]8`W[t))~(tM:=ڵW6#FhÆyWq̇5nnAA >XJ*s8BTkE~E◗ ˅J&NN6d2HFӮ6}GfLvn. VTxRv"Qmd#G,-M.1oޠvOJLM*+^twtاGulcǤý1 "ĉG<<ԴmAJu3g`XX33cjC\Q;2scq- 7l~4oh?'HSS yyl ޽hGܭFWkv՜̼Ʉrx29ݞV(%%LYشBT BF@HO';vC-hѐv5Џ?ގϺwo4r`ܩSIϟoݻ}nƦh;wNrs6j޼0y}B0 3 s޿C Ϙp#|\@hemBm<))Nϊ˨Q(P͗Ju:4{EE\:=Nz@.WQ #Y+:bzɏy%,\\l--m:bJFFD*ˋL{bgguLzq]P`APxv9DMWrsY?f]^n1mϙ7/p/` ի=ó )b.D"eŠ rEr²2~EſE^MMDy2n>}L&|~k:Ym۵ LevΞ}~;&~Pc@+/='<8,e#޽w?c!8؉{@)̒dfRӷ*ۉFN]c]թV4ZUUJK+r%fDd2H;9 1bqm~>'7v,HƆ]:YX//_'[[7[?x:=+(y8*ZO@@ҥu ۳g緦stz֖-W\ѷ61ّ# 嗹&` ZL~ѣ #Gv_rT@@*:y1 o@^Rݻ R)c@xx0^:o0.0Z[.k>eJOns8sMߓ~hqОXGZЮ]7NJ:}zȑݱDTݻ_۷#i4_j%wX(t M޼P(tI! ͡P(JY/_F ˮ !-rE[' dC yt4X,?܌~mΉbHRYsڵ.|ӿ;U=xرO~/lA^<2tC ˈ}pCz?@p'OY UUծvCzQ .552uUWtTa:|~5#T_jv% 2lcc與bb&dRS ++ w'N%::ZXA9Aa;p;wVlKRVzl _ߺ*Qy唸ji]`bh ӧo,:=ϯ~J[S#cl6ϗhZQ!R( :[5{:;b9Po߲JofaNRJM}~+.WD?>4OvEs%&&XL^ϗS+͹m:°u,"KL)J:`IюF&SDE8tP(Y (<|$TPt)eKm*jԨCnnN-m-b[iAA>>Pt]ē&544zuJڵe#viz0W.Wvis:,I˗SoLc 94ʔ>]8`虊 у9 ى>(D>ʴ^͹VUI8̹^ʪd2zUu $ld2EAA9e0Z##wwY؀7ܢQ*Un{r~k֌8~Sur||o\Y獷ǏFD\0cFu뾀#F{b'L8heK]u`qОXGK3f':,!7Ӣ_V؉{(Id2ŋ>+5P]5v(nH2*qUky300ի2rT*͛wro|y0 SMf0sR\A 7 ȑY]:bQ3}Mdm?aZ@^(7uJK/˅TkXX{98Xa`ϯf0UUΏ>RzyccC##CLv{rquÕDè ahX4 B YnHKp˖+OoNJtt^6sf~=zl]*dm>L8͌,*:z}!HON>|Ǜ_EXX 8y21""sg*\ 3f:4`&7w9?4s8i#GΝ{6@ ЁV^…垞 Lӥq@ ky|cbb4fLɓ{Q`t;@ۤ.X,>/QsEF͵5\ s D"HxhWL:=+))VNi4!C(z!_2%o߲JPHPhC~ ŭJO/>tP(Y (<|$< !!am:o[Δ)*+uR8/'O+bNڶ#\0hJ)&IM}7sJ?:`dd0l~I`hS^*?MΞ]o*JwuϚ8ֱPeh^~_ 5CPgnnu\HmXV4ZQ!R(Z~MWoEa W\U!d0-,LhdN^ F **"B")2B@W=bΚJBϡÇyW4vI~/)<(-[7Rb↖xELdޱ0]*d֬p lhYYe!&(yA8E󢢖zy 3uju yY6[v2|i\] ʫ;sl-y|#ָ;`2@bYJ1={vvtq.zUT*W*ެW!!D.ݺxqdaၖ;s8°c\q~~ge?s摟_Cٔ6D"j"222۷ktrLk"#'+kw _=mo99eƦl;vܿC5sg{# ).>LpṑAg͍_މǷ7`N".Xp:-Kzr:mUvz8ցPec F˩׮ g8I*}X5z;pe%})`nkk\IiW?~Ggg 77 ;t 츴ͼ,OQXX3_ٷK<ҚQcݸ C ŵsLIyN_ޯ_QܶZAAy֍i#fyqo3 QCC  66ENv-pqhϞ>݂u yYſy3…99eݺƏ9cF@Rh0šs8asL u֩jkk**34!!޽촴FFzw9;L4 Ħp?S(d DR($v>6?n@&SVխX;iӕ\VtAH[\i`;thZu")^w A+G-X0@CRSy#5Tp8zZT*=DAA+I$4$*ƍW cuA^Q[+ϼr%x){:Z+*DuDϭ֟/uE"gݾjpow0odr4 `ggŵFFD/nVXG :q ] RD577|2Ȕg pǏ:/'ʗ,LHVT:_~kW' uDwf[PPR!**2+ jZ_|~GL__іGz'޼ u@[yY@vvٹsO^}Y]->g~4^rr2jh}vҥ/\xScͦZy:.h:Lypfq A lA&fD9FmǤIGwg䦯Ri_Q.Wnv֭Q|vĄ@|wbch4;&ѐ)))XGT*$%s*'!<ͧGC +BB͘ǎXQYY4Dc? / @%Hcb^;ի"wwٳqtn`ccc\jf̘q(9}ѵk/rRz|]+WL%Wk(Hk2UgUќz@@gs&pCmjTr23"۷y׮ǛcQfΜyEghaF xu,zL'~ղe.^&(u,q8ž=]|c?A^ҥz*׎c/֔$\.6mZ+ g6mZ^V2"..̙O522^@(i fNzUs>:- mlxs7' @0G;66Nmyt?Σӳ}p ܾ)ʒJ&MuQE@lh?Z&H?Q0xԡfUT~>Jս{w"1bt';;u^QAAw\|ѩV̟?ȨM?4P(Nz%zI'8͛_1hakk /:ꂼ,mB}qdRj;wwiC;!ق+WRQyIYS:VVS#B66nnffffFvpx,7ea~#CBzxz 4V-K,Y2B!HzF&SO˂add0g{=zo?|mۄX>ٞ=<u,ZPO>ehš矝>\ZZwA<`SAxQpdR\)'C oVu:+ZZ;uR@]$H=ʣӳY,հa_}5d0okk3'H޼fa|B2q"D&n+RTdk7o7kV]b;9b֭㽼X>D롿/f kk3˂6`{ٳOϝ{*+&Mx0: ax@P}l/ܖ-iSS#33ޫNN6걂5Y̤ӳsrh4=\ }Πbb&B  )(l*յ[7ړt\ eҵ ?~sgLp3Y3HzcɒN%]bXǢeAyY0e2+VϞ=_H߽#(8\+VX @0713W{&+_*ӳ,&eii:hݓi4_ ut@7re~>d1,ի".nX*q@KCS8 [ufݱW\ hVVXǀ. IDATM'm6/+A^9P ziÆg> {S@qGhS-Dk֬ڵynݶo^S7/ hS|:-MXG@]7*9/uDecc~O]'Nlx>fTO<ڵB`2իWFF j*((ׯ_EE#  s̙3cbbBBBS'=CC{80-7u^NJ;RedwYPXp,w*(IHȢӳ32JLM=7l7rсWb߾e+*kk3oo'*uԾ ߿)\£y :!lڴiŊ4Ɔ/]t=z@D(׏H$۷#33s֭t:N ;–,y-oS~Ր)Sz͛OJڲ%48;qޑΝNxxxQQQttkNNΊ+x<ѣGuhi={vvt~ X266@_Jս{ه( wo7jþ}>uxmfTd2AN: 6lذa?ӎ;0 ?J%U}Ç:u {,#/ˋE^l$_| e2@Rj{lɆFzuM4@,QdHx .K00h/<`:-[\vm'NذaӺuevx}CCCA(JHHߩS,Y6Px(.y-?mfyNQ""&8c>o\~=..W^8::9rdܹo߮iiD CCC^01-KP^w k##0){ƍN:UVV"r "Jc|||t(@yf@@˦ KKKsssAbccTٳg۷oܹy󪪪ԭ{zzݻ#֮]K"Dڵke2 8>>>;{l׮] ֭[U8oucUU\\\֬YSSS5f=9hxۨn 0A4y Httw}m:ꬅnrLLH\bEmm֙Z?9MA Xf0;֮[7o.ݺ h JJ*ϝ{dIENgf~=<5u۾}Si4_H\B%>7_- r%A>_|zGTԷvM:M?G7zktY?N7119sӧ9s]ܹs۶mC(KKu_cu)D^VZ9.yxO26j)vpŊlA} E?ܹÇ^k4ު#?vU#zΝ_ՙ!Coʹ6]Z픛: - r˂GhJ2&!{]]W\y / HTTT̛7/dX$*ĉD"իeeenrqqA$//=Dԟ&&& .,))9w GR>}ٳ*J$?~ÇH$:p/߿5k17N DGG#RQQR~)S`kÆ 3ghiӦ 'Nk5B^^HIIAgϞ=r|5f~3px lTXXXeeɓ'rmߏx]j 65OP6l@d9e@yyy]S;;f1M-wףYW0~5F}#^ݻ:u255h(,,TY ~.LgQh1e6 Qvg[##jJ^ŅJo#}}}Ϝ9^ 22GkkksrrD"BHLLTߥO2 xMhV=0~P?o޿4psӄűSN߿lٲ}u͚5cfkSwǶ#a`` +B 2u9ZԫWES8񨅅I\ܪo`RAcǎ^өStYYY HMvW^̸ѣGP*/_x- x΅iii{Q7X~HeegݮFORocǎED"ԩS1rAJKK эj:tHsd2 5 >- DLо)JСѣ7`=ˈUWl$)b'L8> bѢӱffs*#c;"#ZzthhO( OӥAW5f듲+V8p`Ȑ!۷o_dٳwڅvBd̙.\طo̙3ؖBx.Wتyن5¬ܼy뼼杜>2[7Mg~좽ZMjCz@MJ5kVFF# Azk@KCj / V,YzXTĬ8wnqME(ʅ _p!!!!66A ]6&&bšP[[+JMLL$ 111hAp8ܨQT*566;w͛333333/_^TTKLdSCm,\kx JZd J]h W&Hombh4ݻwLYjjjOcK Hr:a嚮fĉ//_^KF:n%6[mHZtHc]_V_6Qu 4VVV͛>}[ ݻmll<<))݌Wg>9qݻc7m/>3kɓ ӻwN70l} /Zt*mocZ?MslѺJ~l6mԧ=Tn*jnnޥK׫0oʹ6] C@bb^;9: -/>x1ԗmNl,G W5`##;piӦ}N#o߾֭VZ?̠K.2>k B:=;>>3/mkk9xp!!~x9с)ʒJ&}BS JuR])=֑$P" 5"Q@  kDV$jZtF ߎڬ΄iFV*ό E7J*zjmVWx}9xQ0qW"d-&ݻ L8Nvvaðd?x[T-]:믇}}_K-J)px9ofeejiifmmjeefoeejeefe ofaajll/]*Vd-&&&:Ov@lrall8gPc<x1aa}:r!^@[yY>˗E۶]e0Jfzh:<dɒKgYO544}Ŋ1cX 7o>YX$?P(L}|ȡ=NffXG 'p"O\Y)FD\sj@"je`ml,xsC ?X4 5UKNު- x>`y sU֭:(:&Tl6С?0ݻ;cQKlOP"ǏoL/rg YYV'N::.6faLvn.+/R DYlڭ!bqmyVO`ՉXL^ފB!X66Ymlxt MkQ_xYLόf D\AL&BOS 64ԟJuR]I$H!`Ff l>/A'$/H XhNlwD&D?=\-ll̉D< &8T%//rdW]nh'Oy8Ӫ@ ,}s獊 axx7 75+.%&YQ*Uz-_>"$':6?B;fdȌ vuR]VEvh[R*/ l>+ \QEx".W$+х -D%t7cNN6XGZJP7oA~X0(<<<a +6o~0wҤ^[5@/):=Nf0-,L<8=$7:ϯVgaoJۉJu:/Bٳ \ uW6[=]9AYYzxauWW O"=<~{{kVp={v: Ђp8\hhѣ{DE?[t_S-CpC55_~w= `|YJʻ7lС^W mllutퟺ@,QdHx .K` [$,'X*G(MD"ɉɉhM"r]*\bUX*4[0WlH: ⌍ "#];&,,u=zܴ)j+V {/\;k66ـ@yIiif웩V~-_yuXV-bȡ2Ǹa'6ݗ/Gٛɱ}^A_x@r.m03L567WЌ$2o^4@/hnnrBѠTjBTjzzGGOd2`|T.,TUbqU[Ѻ V p:,1VA( r}[mAoDh4R`!T'Krö~a2Ytou3MeDח@zzxKO8qz`F3օ􄃃/o4uFcXk4jﵵfLI.kggU&R=ly~ɒ _|8oNxv IDATb)wax AC Ah4/PG9p_tIRa]E/hm5IMAG$:t*uNIuGpOtn@sd5x8zL{ȲA. Sf͑";/8/|>%l͕DTizzd rLRSXt??cF._L&߿wEuu޽_^xatʌRXRє:8¨11L.>fLP@75|ZP(IN,gF 11LETVW7"B&\ٳ#Y, E]g0 Mee]EE]EEFyyN׊ڠJ:ctr;3LMhڊh ,: }dM&||O q# U63V|vT%S.\(28*ÐͦXggLD"  &MbƲr 6.X[z+(p 9qb=qX`gtuOkk_'u9::p˖CBXW45]^,IBZ6}̘`ڴ"^ ̛Sa]y`ڲ܏?^zћ7wq靎k]f{**Ќ63,7Wr\:(gNUEEP( %%eHQ3fpTOK :.$yKK;ofSX,2?jJmbAVTUVWVދ`jDr b0 //*4#mmFJk \OǙhJ&?&] +߿4>>ZzكImIIdi4RǤ6$[Ozׁ7nL*(B ӑ#۷_hll}[oMa ݵn݉wegμu!ƙ3w-ۯP|u!~Av^u!euRڵǴի*2 PF9/O.J¼we8ȑΰaeڌqq>;zԈ'+*-_RRu9sF 7q˖,aHssD"G37kkдc0\Y&9;\(KN-*RHn'LJO6ºN/(P)T.(Pܜ}˥sp#aؒjY f0՛ ;hf]q0iW_Q[XІx4-,DZe[cR`xXdY}3g\օ[o~dgX1b @ٓ»w`rYrY06_ԩ[s{ǧ*G**D"H$rQ`x,>5r$9-;w'oJt)Ŋݻ0mժC7oDk܀Mt:kFFYFFiNNU{@p \L "PrBnMM#IH7gfbHmXD׎)lH.y(BTBSz$1|E߀i->b5p3&n,}O~;&u-V*UAЩ,FIR~_`㚚wBU.ϻ_ܝ^DCt `9sκu]\6m7e`+gZZڳSShсgUvXֱcYxi#ϏYO~/mtvQ[>GkM;wQ}qa0eVTnjCod+W Bɕ+fe(FB'!!dR}vEmmrA,oa]1L2Y}IIMiiMYYMIIMYYBX,v4  a2}`1 3xp3gokX=,7tLjԭI-Csssb,齀i׮+rϚ senܸ II`rYrY05]{Y/]~{ߞ U))TizzdXر8Z{X7**\ŋ=̨:Զjա ~+1ɲeՃdZ⪌vww0*ю?kBURtÄ ! -[[-rl6ŢDGHnXWj[4 "F"`Y,2aN ׎3֙feɹŋkBCtLj+* Uno䁤6<ֻOݧOzܸ1 #5!^]]ӥK))y.巶GD~]+WaA55)H]XJ2Ybqtģ+9 `|$ۍJg F#鯿2׬9N'a]ˀ)S[;%~]3aX|gǵA";bӦ׋|֧ b]yvu!t `KI[/lhJEEH$WtzÛgNUw~x6o?g_G2wiEnl6q޾]9s7ĉCh;w* um'Pu6읜,.wt0ّh+9x(kǶTJU. i :Tjc2}AP}q8{fT?sח5ć6b0ƍ0sfźASR@{;%lCG5ѣ+a LD"_Ŝ̜mؐZBeeӵnؐn<dTkk{VVyjT$UGƲ"Z w!I} FON+S#UhXmBHj |Ŕ)[SSu`X,II9_}LV`op}?n|驢s~@. @@. ֬l6o|BB luBD(ܼYnd('65vlCպc24Ntiĉ!}\mYt;U?V-iim2-˂d{E}}sZZH$x1_x{?gLJ?%{Ο^~y|_ //}__:bOcXm2L24xJU0h-nj… r33p8q"84l/Xj? lwu'j./O'͕)JKkL&SHͦXX%x9X,, ˗P(47ϟ3g$ z!3,5U*I*XbN믌;/643&]UU?|Сty+WNަ;/~KxiyeXLA۱Ek **22Jn;w* ˥xAс'-7\\ J\)0-F183fpL)t\SnӠ'aA, 2Y99UwTuV{{C r84*զg=8s+3i4Ґ: @͙m^-4gΎƍu:}yy̓I-:cR;|/L_J͏?^>p:Lx^3D o?ԵX,,jjW:Z;U|ZH$t)_xyM糦L n˧NݢPKLx tܻ,矟޳GW^|q\u;j!hm`0kTZZsseb,3,=f11̾ U))dIVVĉ!fENA ٲ b*DyQ o6ݹSSfMx}H%**˥s8԰05 FWkڱח<_wGÇߠ.u@t:}EETzo[-:ڡL.o;7L+<\zDUJJYP,,ΟG<%GG3{pFڵ;/^ZF]SI oq~Xڼy>ֵ fhfFFYFF)9**cr11LOOמd2gg yΉKKkݟz*tIضtJe{)8MaљXW6Dn.*R[,]ݣG&݇VպH'0͖|Ѝú!b}eݽjnNI-i/fSl2@ee?\>S --7#lϞWbc_@8pO\F#a]ː`4KJ33ьV&a0cb\?phmLimmvH(? ={vPXi).SXXB63,7Wf67Ŷugtm$5p`D7&ee'ܰe(k1⓿zsDV/:cR[RRm2LjY, \4BRRȑ#8XW't:}h^2%ZЯ [ LArŊryW_͟;w`O7dfJE"ݻ2''|L 36糸\'9rff֭]0?p{jl/Z?1U]d0Ə8cb]PT]ݘS&g7otnnNT47na.]OJʹzh4:u -&IaXvvEmmaA,bQ o+NaaTfST]S(4JV *N(ju0FTO2IўW >r@jmm7ވ9$@M$ZJjx{1 !`?<|ŷ `pVOº+eeaXmؐcNjݍ:TTԉDRHzr~SSNl,'ee}EP\fĉ!RsϠLprOu/\꫿ocd..2322d2!$XUU_Xrtģ; X:-͕[bD zꚲ33o*emNNzTT@TTT@POuQBRiTZA)Ft氽J%D*ϏHTB+CPdɯRW68`0)4-,DZe[cR`xX-=]y׮kgFE`]Qo;p/u!W- 55VJM-|&zt9OB{ҥvO08KdIRZ`xϙ3*!3np: u/8P b*t"a]V b&F2Ցá͘Gzy=iuJv^䄧PhN' +">8hcb,Fv MaRUvvy}}3 b##GoR7o޼Y^RX4- wt4sPZm5pE_? mm2`x__|]_zzɳp{ȪUjݟu!cR[QQWXH--Iji(<ĉD ss|0áa]Q5P.p@9t v6\y͒uf/]u9}h4ߺU.DһweNNfl,gAsM ѣW6igz(ڲi 0WYY, %%v<^@5+B^[ ځQQ*W=<x<&؟XJK Uhl|L788L4rOJKk22Jo,y4fLс>>O S}}5p8X.o0͈D׎5 ! TSlr|օ -/b]HRA<z:Q;ֆQ sǺXX,[)fΌ\ffKGɓ\AX؀@A. @@. lTZZʕ\]~yɀd**D"H$|9Y|>k䰾 ZJ֭ 裙'@kkEKKk[Bƺkhhxi˖a] WXJJ#UDkl,+>>|ڴhF++*R[,;&f#G2zw٧VbMabYqllDE8:&0n(paaT>1nj "\6J?\UUo6{D$ޏ] 7:ח M!n;xy֬իa]HbRו@_@-[+fΌ,mo7k3gFb] t 6b㥯;!7/<@Ҟ],INέwss?~sBtRussۮ]wiӼ^cS+ FeW?>CYAH$^kץk 6hybbٳ9*N'ŅԸMIx{6fS/ HuucNN%nv^kuss r<sʴ.EVs v)&."Tiqww9p! 񂜜ZSi+ǢqtēHd2r;.|Hx  =7/rkBJMwi d2L&,{:%NjjzHRf~agg'pL ?{6gs&}5sf rtS5X~Y`[z׋?x.6-2H*MO/1t>;6w2L][! o+mb^ɓft4rzAuuر_|%K&`] նJBIrrNg(G alfUeehc+x̘fddvd0JKkV*Uݽ+hZp8{:bQ#G2w,KAuܸQ|ܜ*+;.|U(sha=w:11ƍʏb}LJc]-BvX|Emm@R`xc] g6[Ξټڙ3#׮8 뢺vQ(D )/ @@. lȍ%˗ppߵkɨQ M7nDRPV||<Ǝ 8VFrr矟Q*5[Sl ys;v˿Mu-fc))yׯ}sϟMO/7nԩSFPX_MMmyyr4.oF'FFxyLfP\f v }+W Ҥ7n599}|$+o__߬Ph zKW:80pm MUUoM>xزM))kéX20tJj 55ְŢxl^_}LV?gޛju'rseOu!?--,Ųg/L/Xќ' %Baݻ2nHҥ|>kz?(.S/ CkƷ m{~0\9?O^u-OEEP(ILU0qb N\ ;oV*UgeD҂X\GxNI"a[-H}VTTu)%餾 k䰽{ER Мc3D+NImjjauu# K`0Hj{QӦ8u7$O՜9#-+ ;s6U` ثo^`ZZѧyU>u+zÛgX11H4/-,z[c=c0"J֮=fʹ^u-F#=ΛmS|mluܿzL:bժ Bld2d R M|N%G4~,% [o{W.WݼYzO>9yfHyEVV֡ _U*Ǝ<켽ݣ""h\? _ÿ5w+eS*NNxi`_&eu΁>Z!98Ϗ;wnZjU M kBwL`] rY1۝>vTTt[KK{vvyj499H8zt5ӧNª*Ѽm.8;n]0~-}7_p̻&`]KxYOGa]2剉9II9j6 [ $$pƍnk[bqD"oii탂|l/rGbx{w^;fL0ZeeII9z94ԏ сVm:N]Cpuupssrwwm2,4)..46-i̳f֬x<毿2I-_\\-X,pNAk׊$'tz2{v@r.t:}AMaRu~`09XdtA,Ѓ撒̲RXVTX, wL =ȑ H__lFڱeoW6!ΞXû!\|Bd2W33*Ì przAШTZBTjT*\j*Dh4B#h$GZp_`xs6m7fL#;zk }JҢdg.׿㈔F}YYMEETJՉ9ɐ>nq #G2Jgu~XT..3Mgۍ XiPЇ~ҥKF 3ꔔ.m N`x+&Ņvlի+^}ҪU 6>j濯^-<~|'ֵF"|%Yhgd XOйɒr%6}ӹXm 67WzoA,KmMag)l6Ң-/OYQkוКьOԶ6JEWVVu\Z]݈5spyyݮ<^B%P(Āoԭ"+W DX_!!"$uuo{ѣSRlp!.~ѣXҷwz@łfiłTUcZZ2-YYeBa޹soo ]rJ\\hoKZ h +JJM&SX̞ͦ{׹;xA<^Њ j6#,#L,:r$`0zDFc##[[ QhGDט&B7|N'=aBII sҊۍ\sEO:r$\Al6 T_l ^A9:kԬA&Bd׮&Ţ <aΆ%$p.]7L-CIX9h0?ЁEN ZڵǎX|ڵ3mYEEP( %7oY,@Ynرu͛kQuyU<%7E.Xú%Z,d~oJMڌɒ;jT cb9]RA2bQ[odbl,ŢTWs*+ޕ)rsW7qT*Ϗ:.%?Jh''|L ?5kV$zűWQud2Z'Jk6[¤AV$v#oO:&!!dG tԩ[_}liigں^adzSR$-)**ɏ,g\*E͖Ѵ8aXW75J7lx6>>|@:~s{L ?|M*u ]2L˖Nb]Kc2}bc٩[hk5jmѴ%&޹p!QbQ/'p:N;XJ*UKfy\lVq԰Z}UhhjjCoG O0L&Hm55EEꜜ*BبC ѣzsD^o,KN=RitR\\ʕSbc6ނ 6eO?|dkK` ФVРImaJ$նIj oAwuInsGY9sF4û6o;%%oΜϜyɟ'Ν;F̚LZ['LZg6겳]:e fdH"49Y]nggpA@msɹ~xblܬYXm|rȑϿu-`0oWke;qNGl`={R_1vl#nY_|b^RRΕ+fe(Q3grݴ* Ubqݻ2c2})\.}`hj[Z[Zh+:jy% >?FC̲RXVTX, 7˥l r[Vd0F "0j>ĥKii!CӷW7mڈafܽJeeݶm z\VRX&..VrϏaQQ6|it:a _ o毾ޓx=Dx8At:}NN%n~AmquuphhF;np:VU՟?ܹex|ȑ0ԋ/7QZZĉ!X2)Ze `x =FY.o&eڎeRk4˜:5D%ֱwocc7͙3nz7MFI̝}|(I;xFh N~eA/+-E88"#_{[ѡRH*W8FGƲ|VLU "tժC-[6mV2yֱcv| ZCfvXs։P(Y^o0Lx{gm),T%% *OOp3yr#U=駧J]Qfgg.VqAX\Vs%a\?EvvcCCu0TjL`]3L$Z]ؕB!d2WrffYnl2Djd*;YYΓ&͙[*aŊ)6l^?2օ B}v*+<)] cR[QQWXHؒNImx8gWݺU1kַnn3tilןtOQu&8&sɓ,_ IDATo=af\]8f ^I t 䲠=YYeQ+VLYnc~#BCxu"T( xNBg̘ [{,ް}~4sfMzw1dZlFF٥KxzN'`4oma(Fhgtx=BܺuIl?Gog od2+X Z.@jm,;ֆQ:6#G2V>b2q8;}ݺY>hѮ7:fwp<Xˤ]./yx܂[` [pXlӷo,yh֏F{we˖/+=ڵ"HzRBr0!/2%7\Ciٹ9sFb]Nϝb!ͣmmCn!T{:}zZ)|EWW7#DrEG s ! %$Gpwwx+BՑ#Ǐߪsr ֯XmffY[q̘  k˲hV*/k/| 5w>;}Xoa]`Tj## 2H&|=ړ'o=4 {TM&dkz}'\vQI)vBgɷdcʕSKkj#  ,5MMm|rA俯Ύ>;j޼玚L;/mzUJJCo#E"ij4=lp8g-GG3>b6[>e+9OOY)5LUU X.c,ݨ__8+2͇ܰ!d Hk.]ʯi͕I$:A9ZL W&r8 Ggm~/64 ˟DWaZ2L|^ ;II9ryCpf͊ kmmenUhH tțnn=f.ݽrCC]XXW0D@. zG~rϞT3L_;w/C=z4󣏎 ;r$h4]\PTvqq?>xqq}`…;vA0G~n^{ܻ~>k֌lh͓' G==]A$Eͧ*e2Errԩ\2_"22[rM7-@sDl6{`0O:յ[666+Ʀ!Rktt^^(5hW>aX}{ٳOCBv효R|Ȑ:نnx+VMTE iiGo nB!;kI@=z[83MZU,##Y9998pĉ.sb2K22X#G?)ؚTM_G@ XXXY9:Z89Yb-W-fl?vlA^UّDxP̶sgtvC\C=44ȷCp @^#/bX,> W_y M(;vܻ7Xr`!xJS:nnnntO٥99噙99eݻ4eU'$0_IH~*ǫ~@&SUښ}>i?|Nz*xH}B4۰ӧg2'' GG&$n~/>:W/7cEEP!nӥ}^h|p8B}]O$Jj1&uttHٺu^*GhхϳnZ"9WǏЂQrA:~Yyjݱw(YMϟg DO(c9ZӧJ*VܻKZXz/^8xwkt<]i4ǫW_B^EV`ݻ۱c<,G'NWV?++7or_y,Ç"L^Y);FUׯsdáC}Z/ |]ٹs X4^a!Nm$ee033433;6|>}:?>Lֶa_{W?+atCв(AAHdYYTAᦸ򯿒t!xqA^pĉv튎I3ޱh"/ Гhhh…'Nyڗ{ܝ1ޱYf5:[ff&Vxbb"H~rzddvU{Ĉ!33FOJJN=;ﹺRΞȑt:MuCvX2Sk\}QMYMZ@=YYx޸@4^U99XkKA5QFԝ(N6Ĥ{RGs*gY_thvw;4[vvQh{0\ Ah___;^pAmArcccCCÚk6#wٰݻw9sٳ$I9gpppxxjDDw}ʽ aaa{pႛL޼y3TÍGsFFF*xxxXXX޽[666K.*'6UV KnY: v;Cp?mSPަ{Vzqw޽~YݶV˨yncG>o,_kܹj#\.߷oJ555o^x@x@k44boD2*&&xmEWWn͉uOjnKo/4zv׀FwMa-pZ zA\zEP( JQ_'NܣGu۷F%''O>VBQ4##3uΝ;oݺaĈ Ç>|^kO3<=O;[w,Hӌf, ȵkgƌ3g,))}6\Pܺuk݃YR|>___ĉ>}:}4H*aaa.\@?o׍NT.n:AvY=񣝝]bb"FFFddd lɓ'xSN!A_EP/h4CV`Fx7nV!((d&$$xxx(W[kbGV9ٴUe <aՌE8ԼܼyݻNNNq[9(_x<==ٳg^xARTU[eԌV7L,Z&ihhx̙Zۭۈ8PsUWmԔ@=yaoSZZ1ށh;}xGMZA*9a„^zک ^(/S޵ kN؂ Pg? s瞝;,QP[e/_DQ^^^>}^3nݺyzz޼yy1#Htuu՛7ozxx`3$''7%vV͞}Z$K+Hd2o^3Ꚓ?prry}[y(|xZ_~EZEwSSSAz5_#Mh&LyfyyyllԩSUPG/{\ʉSU%x=s.]6^N Ŋ5bݶݭ[7 AOOd>gϞgϞ&jjF+Pŋw?(FTPPr &hMqz\J.W**pre>FH$>9S4BgwusfXw68a-ɓ#""z쩼ZR^SUTT$$$888bMJJڵkWfggc?fee9::bk]g(y F9AGQ/>r1gN@*((߇rJĺ06;;.U]]P(_p̙3zhr{ >f`XJEEEMًZ/]t߾}[l7oͮ9`l]*G ŞGdbw.UWK ݼrUE9&ԠtRݶ; ))) :$$do߾=v6n[@eco[:::gΜyɓ')*QToSƒhw*)&$d*,pt,V^4J]}ZKffǴ4"ܔP뾇ug6R /۾UTTlٲeʉ&LX~}^^^rrCCCOqFŋ3c#HI&-]4''Ç6mS]PE#G,\8pZ]hhD"_TP̞={ɒ%W\Ʀ=k.U\w)t 'HH$###ǎAx#G4Xꪹ83g +W]dIuuu'N8o޼޽{URSL&۾}ӕO:r^e233_zaÆiӦ50}Hd Fҥvy GyIU IDAT Tٳg^:22޽{ DOOz˖-TUUl,(W3Zoa?lDϯ?sAk|Nlvuxw I* / p0MԮM~ɒ%wɉ6mڌ3yvM{ %PU.I(z Bmd/;w WNxfͲP(s"hժUd2y(J`Kq8ӧS({{˗WWWa=L&..+IjиY 8GڵD"AQ֭[FuʃYR(^v]OO+22Rdȑ5۹s;VgϞOOOWNy򥎎NDDZcH"|*QUL4xVԩSVVVK,Q_V&xiMm1c#ymS"l߾Ĥ_~/_F_EXZZ:;;;vl5rZ_Fk{v|>DBP6"Lo>cc~a^^ Fv r#@4OnnOyxMSZU5+S;4zٝT*ݻwAǎ7n܈? OY=lt-xׯru]w*̙696Q7:+--MMM4hށ4VFH˓+V\L`hk׮``6nܘ{ҥ&Ο٩SZ_(*'6*<<|ҤIZݤP_DG|[^ΧRFB;/"myCԂ >W&l6GM?ޱhO3CwXY *Zs OBBBP~=EԵk/7n+ށ6{vر @"ZE*/Zt!..<-dg]bϞ&) ԇH$*.. r ޱh_߹bT305q`ɠA^ /*1ށjzD2O477" H$s_`S H5ennF&8b&A;mD6wO3.^ۯ;ᴑqu;2^x1~ |Q{33y5eKO/s'ƍ7TݴiƎa P{-Ztښ&),8:Z`\)@i6;;my<@ |DRPRVVU]-\Z"Iy<ʕ d!PАdjj`lohglgbbM$ HffFFz$SSfD`d2.QP@^#2d2ł?ϼre^^nxFrsˣDf8p ҥlllN8є'+7n-jct;.U=&@Æ lly&)*tr; Vi6SSɘ1ݿh,S[YY-cYjX,^eP,aD2>_$+Se]6$SSC L&'0&PC(v>^܎83e̘nx@[+/GFyMbbycvu;.ZK_8jT[ /e 9ΐh֖ܼE"i-[]+}e\nu^[+l6%Ɇ0תϬR(Y@bccu,uz,-`۶ȈWaam/-}CS,h?b{C~)h`o 儜2銊*):4H2R\(WU%ZZ]-|@ |ǫ@UWUʜ.VlG&Z_陛雘뛚ꛙB(PBX(TP(,PGk˝ӧCCK:t(ٙD uNDDPҿF56;4HVV&.w,EJGG A"FdQ[fWj.WIY_r.ךhmm EyY / WGio|7o9p`2t-=Ν_糩TK1;.푮ȑQQmrH$ur,farX[@\U%ºVUD|xeeU99eUUblbUJttdADSS}SSSS33C33I@ Vϼ,"8PC*eeexTbX__?ի/nܹs}񎥭<|ܸ-΄x $$$ ō~:9|ɓ8>4m*6d\娞<2ct?YFS'[cEE@^ׯB˓H$70hڧOB##"Ue [*$ּN\fVU&tDee|ǫ~[lodC33C33CG332Kc1Oh=UU"uկq7@;yY-O RRR 899Wyvef ;VY) v\wrr:x[j8"*MW稧l4"HxA~PmQtRdQclf6@x-N=='##Ze?-º]--J$%bqX/&D}}mmw[<X4@aa@'!!!xҒH$kc$MYEA[cf|X9 DK8O,PTJBj dr+e2Tʖ˹2EUZ~^\T%nyjvB˭展yj#DźbiZss9]efWUd4V (hǷ ;v$3 exǂg'iup}E|mf֭˖]ΎEgϲ]{qn\ [R&.%eii-w ƌ9gϺy:kƦ>|ѣt6okK4s`/q+mtt#GFG'A^)*ll̠$h R(ẒG顡˖{pmMߺvɒ11||ڢP(y4#::)&&ǫvu J=k^nm3e2Y-gsP%t̩T;*KhP I\aee5+r++\n)l6_&S\V_kdC,YK&Fff؏P/ < *4tژ1񎥶o=اOǟw ||E,Qzt2V|VqѩxFyfMih=|qʔ?<бuK}t͛oDCxOԛNAD fM8[zĬYZAI 70pߨQ]5RA/vuSCx ;ͷ>͸ ށzm8 @P#̙'x̘n?Ɨ(ř3srr͛\#޽YYCx鴶?ssLf)Ob A[[ҴvXZK(EQ,G[Q!rJ)+}VHFdCKK gdiilaaliilnaxݻoqcq~xR[PA6l^I(ɓmR65ݻ[uRԩ}nײT<ȷnYz|-Htׯsܬ. |k.WkםKzuW o ;;}!?po:ӭ7W+յߴid2۷ Fj|<ҥ}}[@ߟڥܧ}1ӏJ[ hɓ._N t{/^hkkau뾝6W9~~nm]]]޽;qQyyl#%::izzD??7:6zt׶@033uuVN cb5##Dt`uRp7F LjόuíVV **줤 AEZ\JWWHŒIm% AԱʗL@ AY͛ ~_v…C7k^<ѣu @͛܅ /D҃'غvLLӧ o+W^\VtSDG'mpHٱc¨Q]r+W^UPI*!!HMؘx鴁= vrEn[hQ ޱ ڵTcg'N<}?2o>Q R%RccSOtD鴚ISpBlz֖p Hqtsux{;Q@QYHXܚUKKjgVPY0YYQhii)4]TTҢEas=aB˃@^&)+6.]Ξn3:GV ǁxǂ3E uֻNN.>;?hOZC*߻Odّ'L9{{Va Z\^{ݺ3NySS6@( ixV-ErEJJQ|\ˆB1PL(c ʄB1oPg'N|(d0RԋFԡC} {y==]͉,AjK̒WrHnn X~@mmɍJdmEkOO/)+bؠSSkkS R(&I@TTT$R\}@ и;⣣X4~Q{{cǦ=\"s^b0CbNv+F4ŋ찰N4>i`Y}LfɢEC.~c]oZI FbՕ2t(-(֧OGx-#Ⱥtټnݷf ;5uhK 6%"#f,[FW۳=thʄ =EΣG FÇ Gנ ڈ;ZZC**ҬREAG.W-= {El6-,gRC><͛<__iC JS cNxл޽!6xG P'((Ĭ21;a?f3 z@iT]49AxQSW#8s&>,@ 3۲et59jW=ˌ_qǏ FJLL WM4 ?B*Wbb=kҊ|1ydlZ64ق*6R --LllnkjeejmmjgG22Qh ?͢EX+guΘ@ ehW=x~}ޱ3s+)+ZY6ᇀ6qGCCuOeJJaa/'TUƌ>{.x a >_q㨩SU1 7lX~w,_&?%h=J]])XA~^@ J\bRvRHqWWʾ}!x@+(<I'8Łfx$%%wm4ZS:7orԿN.PLiCxk{5U`j32XYYL& A ֭öS'wwyhTf9^UWa R^y9_$b3:VVf66f66ffVVd++;;)4 %: =lXgcQJ]m۸ɓfuݹsށ/**os'O_411{' Z&ܶ-kD/'ܺxl[[*,o׮興ףGw嗉 fkK޿aԱcpqLoڴ~r"%(>rr{wנ ?K'ʂb`ov^֥>lNxG@JM->qoׯvʔ5yo ;:{wݻƍKbcSbbR,8GsiGwՔT--;=$3PD +Lz{;j;@}|qI OEE>Up}mLLlf5P׮.v |J]w\ ePƍ˖]}{I^nxǂ?@LmI'"(>cGԐ!އOUfXֵ+V ;w ޱXvl6> @HHZ&^=b֬?}Ҟ=~h]yyxf|<4>_JS 66րh?u@OIfod;Z#8s&>,@ 3۲etww5ŭΜߺ5ciaǏ FÇ Gנ ڈ;ZZ+JeLf e2Y, luu`]\,57 yyll\ۼ<6+,vUCvu`%]])66f1,7nrJ]U*/nqcq~xg / @mUU=Æ ;p~8]ӋJ5/^'];r!juqb{VH[Hd-_doowPep]\0t98h_Eљ3OedbbVi#2\#5>}>- OI>'hvg6z;|d0V_s˗H$ދj0R|=}t}v&@ A^6myP fMxJJݻeeΙs?>] >yrUn=Bи*}/bkJ7k n:;vL5+|r~`w,m*!!HMؘx鴁= v*!!k„ߟ>]d2ũSfJM->qoq)}~7,]z)&fޱ.\M._99e^t:-0GʵpB7m^P$9֛hPLiiUIIeI 'nI SR+ȰyL-----f|SGG0` GmƠ=,IK4l}&g\kW;j5'gg"P@{{[DҰcŲ0 Ehyyu?~̜:ciӧƏw,mM.W3?f&$d)(O}zrSK2\y2zQ#Fc1x{2;4~llƏI$j؈ͣPÇhqci;%)11)_t:NikFI$r,Gk?2AlmKyzڹP5_I-*(,((`|l Z v\7ki6@T{pذߞ=âuyYB{DGpvRGQUݺ|?Rd2ů7mZ]&HxGT;_جeǧLop~7oV2'{uu;IdݸƍΖxǂ(_|t:p&)*$=OUU"A ;tFuqPv69Hu$?i 9j#bnnlJqurut@qq8:Z@ @Qs?DG5}<իc$&nU8=,u߻R&5ݝ;,8MQ^_׹wKUS3nY:iR+õW3% Y=4X,9򠉉͛A<66pbՕ2t(-(֧OG$ s+~:`x<w,4N"EF&>- YޣV=ECRK7";b0RX, Nu׾sf+.deffd23Y*A6:vdaagG$糱>bāÇ+V ;R\]MO$z13>ycCC^:Pt̓drųgÆu;F[Μ {"njvzt65P\\j`ޱ2V( #FԡC} bfޟqp0wp0TNDeSˊN*T<Z9Ann2M^?X,ֿŅҡuǎ;ڸYAb0Rmm|#Z Ah/ =r$MVV01@Ϟvw -/,,~t:С)tUz?)iF?m"=Jx۶ț7 L|6}(ǫvuSyi/jnذzr۵K ٚwޫK@pN|tr{@(4{vX^^9FWcc=hPun#G:8HdYYe,&u,Hd88{xRXZ*Fb Kbrrʲ 92 Z۸Rv9`Ύ{H,PXߕ x}w̚5`xǢF$YN2n\ciIR|ÆW$];r@n.)m?ujv4c;"X,ޮ]G/)v :%(.n5i\HI)gĤyC5(OI>P7vݹw}|zQ ǎ z ށBjjn~kooLkd8>U:xM0'ޱJ!V8&'RtRMbqLVݡjd#WW 6T-} QR6f=ˌg2,ʤ_?*NC4Ó'̐/^lvv;_dܸ@˗١ccS4~|O"·U[ʳg{}d2۷;d ѣ  or%dm~>;/ C+1kXB(dgegegb/23KyjA͍<=~T-P?۶-xٹsO;%e'ށPe@8A߾;-/Zw,ڵGddњkOf&3gxyi*]bwvhШBϟgm|3#5c7WРA}Z&ݻ3_:?Nzȑ)'; ^13!!K.WtO h"Dqǎ';M򇭭AK=t(&11mC}kcJJڼyYxǢSׯs HtiAAmlLM#qBl@M&d0%%ṯ-ֳS'[Cx@3X܌ VF+=$34=#bjji=n~xҸm" ޶mXGzy?K'#?ߺrELJ77kcHB͛ܘcc=t^xG233'H_Ax;Dx0#7<0g2zx1mx&}cyQL&ىNix$YNN9zfeؘfXYG,MT|&&;PΞv;;ZXꥸwaaԷ1 {?A^wWm73'XΤI̵ǎ߽)}w효.PTT@P=ٽ֭ctfMxqqA֚&ȾT >jǎg3vlB)4ڵ^^EHӧiqq"II=Ύ8dXKOxMć.(.9ɦ E5oލǻں;”o;{6W>Ꮀd"))Edrjdw LQQΎ4e\Yfd)%2+YK$j7-A kJKKRR LDVVTb ccuF?>vcs[ޫl Zu B"Fctuٵk*ֱ𝦦6"q۫c+/_f^^ұcX5L&bcsp|[>Lh 7'OF>=%"#@:4kTK;04t1FX"l*+Ԙ559{{ޞ ut1Aݿr8ww!i{޿Ϛ3۷pbEJ^T\j…#a^ji}xƌa:a_M&ɩ 7meߩoA{Ӣڂj*E3FFj0AjiQVVTZF07ױg` {ru47:nZ(&@|e!'ORSISo46V:Kʕ7ee%oZɷJÑO$ϟs==xxQmS~~Νbc)nn#[weٲIIE/_z)*da`0qqXJ||6iIÇUAaÝږw`BB>(+8LBB齃4SS͵kfδ&m0w8뭧u,£%.B&xH H66k',,a2qq1--E4GY+%%uh4FFF߿~^G)ƐA{n_rڵk"#`HQ:ujց@PG0/ I.:~IVfg@xWѣ._^"//# ',l|!~7bǍ39~uXGq |w3=='Y[a_ivt<9|kbC-Q^J/)_vc;; MM۷:$=(Nxv|v\tbb`.1n# Ϟ]u,B-"2I%%u**LM7DButJV9Zgmvv$JV}`~$ήHJ*LJ*JJ*J[X 51:TCee#F:qbyXҽi nXA,$!Ξ>2l.qk~z@~=ʕO"Ľ&M:cjo(K6l*.=|x @ܗ\uB)۰a¦M$$>d>=_ WF~~5#66dl6b!|; w+fT*=""yr^^͛IյJekkhkk0b41 #=>IIxvp6r6`^]W5>SW..//}ցo޸OFSuu-VVOUՊF{7lq 29u׮MMmwOus U4cƌ }'cRAA5}6|d IDATUOOΎhgGtp0s$Cg&ys9ց`bM+65oލǻں;cx2mkll ER߽$SS**YÐ97mF:rYyy@^^J__5I->AP{ee 9 qqrIIqD;;K.\ӧmjwt7QXA,$?CB9(W;xϞiXSՋуVcXqyo;v}(ֱ@PG0/ ٳ/-:5l؁ի֮u:IL,**rAA45w^HYuuyS:9s;6Q HppCO=~u8#xAAv|NOOyII ^^7mr:4V]}V\%&&^EߨQFvvD Zrrĉ_nju,HO/ut<8% 9bbLM5׮u9Ӛ@#`#1`sottu,"-?LN%S?|HfSXcihh˫Bբ}j j 뫘hhZcculAWQ(ohlI$jHf$`[[CCމVP:ihij}Z^ C0/ :[ۃ7o.wv6:> ٳ fͲ:x~[[?E.δ>|$챪iݺ[߾>=t+^tXo)/\SYXXFKKϷbXJ||647ױ#0} b0ffwczu`V$ &y2ܹwwG'pX-[vL#~P[یrEJ셍XYCϼΙZqq1Z##58W$Tz||QQ)*'[Ld1th~UU5uxVgAY_=j( 8wXAx苜)ց&u j* Ci~r֬%##Y4{6K1.Ęj>{u#MMmeV{še1 Ɔ --/_S>[499ZZ0) 6*x<9/qӧ[ :(_{L?'<@zJJӦYMfFOHȉN}苯KmmMI$qL$$[G#//ea1}gngj>00S 4 ɑ#?O˗_+Ld>mБ# E 䤖-u ߺ@D ||\Q:a ș3/Μp޶p0WZOwa/K ޾~II֭k׎\XfM`YYM]*cX)& C|…;w@0R\\@ SS𮩩mt͛Ia֭޿ϊ ?Asر$ĉ檪bR鹹UhoZ <#,+fj!(=NJK+10P]`(LT8yY_!H~jfq!DN^^G<0fֱY.}~oTw;IP[S'ﻦ--TOo۷Orww&BȑNN;w`v2ʕ%:kGIN.$C*Cqqy$&% :9AG:H{7^\j(׎(+=޽Ӗ-:ׯɩof0a͍͜ձ 4#'mVKK&&$23򱮮ehEF pLdї[:b~SB"͛~$mm ׷Od]]˲e7~( Y7j@͹s/kF_WYٸdɵš&\>ov=$W.:pPK x<6pt:t:) okkhkkl&S}}_9TMMބD2'*(`)R}^lu,S9yQ@#-uxW o) :( Kǜ9jۯ߿_a0xOW-hѨV*: #G);99;edD\\ CLN{`0;gjML4%%gH=w׮.`?˷[~ۭ[ _,N/_9y+ݿ;,;@ϯ^ȟJmQ.]Z<}wW HPjCCUnP~~Νbc)nn#.''uDBܵkoWT47>H08Jl,%>>D̴$ x{d)S,w옌u <ΝUw 9bbLM5׮u9EMMч׬u3 QQ)=16Vuk%֡A0/_r%%YGA$)|fgW0L>SK$j!aWƟXA__렸f„V۾}ֱS;իXAl,$Zh4].]:X뱾/:~_ҭ[Ԅ Zo,^sg5K^Sukr?.n |w3=='Y[akhkW_֬qصk*vAQWׂDUzII]cij±!ll|!$d-ց&]1|v\tbb`=} Ο'''(+%%:.T29Ç,11!d6eq2LmAAuFFRG)J56V@JGD$?O.(?Ķm.>- \--^ved=|u B9s|߿-4 ș3/""߾݉u Uƌ1re a'Ompܺ$w S_EI44JJiNN.Om0a&NŸ"#mF0*(drjllF[5X߈p-||NK;*R?yspv uz[W8xfҰau`|V11<p8 嘬$֡A9&&-&&6"QD2#BFcԡ}jLmFFi[2zzD!:E$tfXا'[6lptwwcxd.ֱkoחa_A͛0)ۭƟ5lx͛N>̙{Ow&N4Oѣ/֍֮_=p |2!Rs@uu)KKB={6ﵭ9pViӬ$$2ή,*Q66F-Z4OڧO8ʍÇI$3"Q APXY54ͭ ?'RWW(B4kjj>֭"u]sCB>hR HNN!:F2%%YWWWW6zBBNttÇ}}_(98Z]))Hfڸ8ʍe?hDHT77ׁ !G 1cư7bϞHAlK:.oT ڷo3ZvvD8wh4S͙3Xx='cR\їMl375oލǻں; "ܹӧ_xŋfI`wed=}LNKN.3ƘD28\Ud$tfqqm> L6%񳲲]x~o)>rZUUhC(A4qi{{ݻQ?e!FOO/Y ^k+F}y3m\͝ks޴?t艿 fͲblo9c`1cZ[iGD}6p`p+G6ZV~~NyYhѨEF18Jttݻx+.VVVo(#;;"dmw.iiOKKʕp4N+aii%wLMwy{OYt ց@pRѣ8CCշow[r|}_Ĥj]0s5LnY8nT˫WbZZI&FE%WU5);99;e}Ν,-uПC}NgVQYG)RYN1ʠA&&&&*[ܗ/˗Tsgwp!ԩ3X~{^hXAl,$B9vGrsp| c7GE%_xd # ϓ~ׯ `RV@L|JeZ9}|JIct2II]YYڿ X@hXGW22bbRcc) \ΎhoO9r /Xt4:u#G"32Hj{:!huĉGzp8+LܹwwG'"REM@={:22R((G /ydrڋYYN0D2?~P~{-XKKHΝ[0u%&1Ca㤤 )..f`{56Vp2CBz«t:5XӥWҗ,_3V:^hQ؀yYHxzUm:0{%SS#GfcϟU>~̹ysرX!pJKlm]lD󞯅 Ⱦ}၁Ο_/D-NN fbbx/j?pйsbϛ7OZ[Z_EGFGJmD"98(>vTŋ1zx>~2ֱBBBΌ?ޯu,PB[޸KAL XTT7e-,`!ݴ)A&!'R~~5J&~%&5$̦NDލ,p8AfͲ>qb.\thJ4SKgdee311@3{ގg66z͂8PUU5-Yr޽ffXFjjY&O8{vֱVjj1tݻ]Ds!IIc _0`B]* A8jzEdϞGAA\Y[ "&YvyyǤ,`V޸ U22vvD;;C3(qqCl~_OOՄ Sh/y&1؉sgm_15p"ͭ  w?}}: 3?ڵeSQvD̙TT-]zJRT*}3&H)\ir}eecLLǎ=;p rĉC$% t7Khk 4pGLL4LL4XKrr*22(r ,(C~~5@^^Z__HT`baja٤"@bbIg'Oطo:( ~_9[ceuDQZZdu WcZ73AV`^4##lX"heZ=r<>/2WWO&e~=SQw[ P'O>+HISt}Ng0LwN:uj aC_?I]ii%4ɩ40P]y3qq0/+:ϟJ¬rAr \`d[=!!'::50][]L Gu`0 k\\Nʕ=>'{оkCChoZ rUU@AAHTG;ZX蘙iJh4ի6mr A"++yΪ5kn^ \?4ϛwٛ7WHHC¨AZZ'2(8LR |ZWײpҺ6oܔ)w?H\ܮ8w|\Pϟ'_npW ƈN]zA {{{{}@iiݹs:|SƏϽtiak ?JGrr*0eB`nt7"kWmh4ICu<[WJ3 S0#)I@ٷoVY`߽?6emm mm YKJJ(R ,9/TDSY_qб^}}?-+&a@EBu.v+ _R갳,ĿW$*p81C g_nzx#L6)S,'To0OO F 0벲*6n 0 p::gͲ>yrnlU=8 MMŶ6S4=T:cZii%XG#990/+h4ƊO$ve{Ó ~abECCmUuD_%gWEի|˨ `ng<y7n,?۷lGә m#Sy6$X:8.^|Blii.]z)4tLR^1BNMMN8b&(pEE3f\Ra\]m 9IL,Xy#nuY`56\Ŀ @{bV"9PBs̟?H :GVVzN:AAAezCCp8YKBBBp|?Ν[YYK{1677{yyYZZ=zN߇ HLL0-&A֭wΧE$SSͼ*B!W BOڒ%עSwQKJ: #%%. @O( IDATOٳ1̌ @LLtFUUY|}_vex_FFO reɈ]II)* ^ɩ|`2Va􅊊5.' $*JJjL3=`0x޵˫3WQQ&$dJfE85jÇyyUK^=ر9<7P"-223/ZFFDԴ"^UURPv;vյg̘Z7''ֶON5/gABBBtuuCCCw܉.?JKKGF(++޿o`` HqqM6nqvV]]0%%e޽d29&&}ٳ+UTT0@p8 8P(ey!3իWvv-/[ Ģ΄ 3gRR_F&JB IԽ{Cjjdr=hkk0`W-DbJANNRR@ JHK)(Hx mΝk! qYMGGݢK<tDii }}A ULMmlz;H F \9sE#"6)*hQQWtB9laqq-4( K0/ Qb`2y4lNN9r!!0)M6Α(Ǜ_N3׭nZ%--UxAULޓ'O֭[t޽'&&JKK_|׷ѣ&L466[ӧOݛyfjUUtVVȑ#eeek׮۷o#tңGp7n}֭[CqA<Pϙh!3V kAii'92;,lCr򡌌cw]nX"LBMCC!(huZZΝa<3g^Px](Z:yYH$Pf8l1׷Cvvپ`=LsmZYKS?jnX_|n:[[[ N81sLMMɓ'9r$%%~MMMt@zgϦLaŀK. 0`Ȑ!>>>QQQr///9994sN99e˖jkkT*ljjZlYmm-G gϞ 5kVjjjJJJJNNN^^ׯhZF?pȐ! bquu6lPTT\t)x<_>>>Ǐ-E eecEɩA&11ͤKnjm̻!: Q`jy| xק;z懫СWRZB e!A8Ln1Hʪ3WWpj駏L>?y gnnMK7 (**^:55uݺu蒜5-,,8oABBBX[[ h4=yyy8ÑH\t@\\%%ׯ_7...wWHHNWQQptDA;vL0Ar1pC]؞"VTTT[} @ԗbHɩAAuƙxxL

    eggkkk]؞"ޱf1##5Arr*ša^  T[Ə~necǞ9ܹb>)* }`^ h^VZ)YY]16V^#++Xε97;b JH cYYYY8(((@Ǟm ƒX#""$$$677o߾Ҳ_~ǎ诚<== ':?p,nm +L&s7nw^LLLdd$`^^^eeeQQQ;w休6**!!ں~@cccDDMMMfOJJrqq6`Æ**...##~_qqqnnng…{vPYYYVVVVVVPP3`UUUqqymڴ)777%%eϞ=nnnlTb{d߾}QQQ?1b6CMғO^СC8%!!!8vbơRp[ 577{yyYZZ=zF{_d kn>x[UWWYB]m}FcNzLAAaԩ!zkUo_p! Iη8ظCkI&ll{-N ,{}g9~.@{QJq8 p8ܶm!\lii̙SWo-󭢢 _yYH$=Dw1H_ZU͝{YWW֭U22 E] X(**رW 1䨨tСCwڵiӦ:@}}?d@cc?~x_ܹ3((kqƯ_>|ƍ^^^l%._\YYc%%+WY}֭}T__555;VSSÇ:aKKKnu֎;Ϝ9*&&~_!!!jjjU 6pn2=zL~ړҥKZZZ666]-d|\O_|>|޽{,X@&%%]Noֺ}z m_J̌s ڽ'/_x{{HY޿_ZZZTT0l0)^__EٕÝL* UVRR[&hѢ_D5pLr7666B/)K\~uF²v$z'G*|d.\pN  ~r W`^457`,.1t[8ص+LKk޽~DY?p0eʔx-^AkZ[[ST3vvvt:VSS _}VWWw ^~]^^!|{+ =4ǕM<7UJ;#J f͚tƵk:|CUd2b{}ZV\Ձ}?z^L;EB4:%y}}=C|:B먾UDLrڵV``IXPYnKQ;%_IIIIIIʦx߯lQV,ɭ ?Ҿ퀻Q>I$,.FL??h4FC9""DMMmӦMmmm=::HIIرcuX AǛ*nW1ݼysРAǏs玁޽{ѵ:WD࿕ $$dܸqNNN=ʹRlݺ}ӓc(;0sK]]wuí]ٳg]mꁁcƌ*mmmJJJ:`0N88xРAG`h9^<9!:'p!IWWﳾ̙gmlO"7x`yy &<}u/!eqV=9]| K)E% {֢#?UTTttt<== : t&@ESSqꦥK:k`*! AI[h4ց -_q㎏{vY橻w?hko?g͚[Xzpɒ%K.-++SWW# W^USS{QIIɳgttt@hhhX|yQQQPPA7o޹s455IJJ޸q@ 455uh :ÇYKÇ# mmmIIItɼ<3{삂aÆܹ3B722:p@NC@UU۵z`Yx_UJW]l;_,Xpuܹs^^l+"俕400z* w633pRBBHKK9c*G]]I^zNܡO:WGE73D$""BKKF]̙3:y8vyI ܹndz ]9~7֍˰?|_\VjjnIL:DBDD$[""}F>RV!Πn֙:x0۪_/VGG‚ulff6޺us-==`}2{욚>PSS#..~ԩZ&`0:<b2񇘘آEL{g:Asss11`ӣ)kLQ2lee~ )) ]jdda/7o zVO6_e!,^u|A**"俕O||<@@+/_2ۼ,JuDϟ/((9cVQQP)u~y>/˹zd,++ 󽽽ZH$v.ڵ/y[:5]ó ]9411y߹'X?w^UꝫW^ﶯI@;ƍC/:W=zXW:k]E ս<TK݅㼬PI[k_ 6l@k *Add$0Ssssu]Vв8/ _ze[,ٞ|A)R{$kO`HTyZ: tk<TRիSSS׭[.ɱb}‚$$$(u`` F)))u%%ׯ_7...wk-߼yիVh}fjj1b޽{vڵ}Gp8DE?uv%<۵ T)]*#tQuWHHNWQQpCs/qww:tʕ+a{cz񴗙9p6vu?#,,922rٲe]^XXؓ":@X2VZZov糊AfΜZlzwU ]ZT*͛7h'*W=z Q],.{aa~$e5JԩS~Sa}ڵkעEׯ_Z]-޿_ZZZTT0lذcǎ%R:*mE~_qqqnnng…ǡRISN>}ñw{]}***233?~eeeo߾9sfnn\[[˗smڵľ}Og_mJ<u ݕŋ޽=??^lWo_(**n߾p…fUAp^}Ly͚cϞ=2 ExLqFwwwֵk'A?1Ν;aii9dȐ7P >>>.\@QT.h4L]$55ٳ/BeڷoO&=<<֬YӳgpE ņ (۪Uߖz `ƌsD'xaWWWH}|G}jUg "Rz~zlidtM ]tT<`#lX~fpF]nL/d厎L&3""媗7ۏEM6X,u'Ce?3/.ħǛxI#?"\ϢȺ_(ϿݹsA}Sc *]vyxx0A]p֠=qS|8ʾea/m^4o4LQ2e÷~wDmwu]^R[*ĉ^^z;e0,?87)u٦jI]VRXΝךM˲'~|mۮJ嘤j MmRirrrKм'ࣚ*ˢ(zԩ@mL|r;;;[[˗d2O֭[ȑ#[C$ JHHh b۶m^^^4[n111^=<[A2"0p,jܸK7mdV1h/\>}SzluSa֭m'Ljk%׮eb 4Hҥ )@yyyoڵ+??ǷoNLL隸cǎcǎ}W/#""/E~|ݻo߾u֜5k֬\ W^}ّ#GV^]?.]t-[|f! rv.,F?;z  ##cO>)))֭xj|֬Ou%*ܷﶚK߬Y3HcR}[(|:M:r޾}۶ uSGlf^mbca ``̛7O#jު@tt޽{;tuk׮oݺwT*Uë?~ ӧM|xTTԶmF0dȐ_~._N5 A.^}v//Ν;ꁶZ..VRBխyy^^lo@\rȑF5k̙3tUcNÝ< Hff΅]{.2ߵkKN_޾$̝9}:e64P(TףG#;ϟ۪OOO'EvvvQQQyTVe޼y᡾;o1L baa1rȳg^tٳgzL& _`GGGAsW֋?|R@ autuuFfjuC:VV P:o@M6mڴk}@07 h/e08񰴔nXmu.}uYֶV@> Ќ[^ZdI9szbD8 ?jݺ--qqiL BQCUiccS?,MIIQ/'<0""ٳ/^ ~p77Geee5}P=_ 999 $XѰ\ PFݻش~y"(~JVVIvNA]E_}|ĈVu%*v=}zwc9 cи򒒒w=:??ҥo3/((4hо}>p~a̙ ?~WXq…k׮OX{a>K,MKK[zɓ?`LpNNV}ciIb{jăųX=YW`R__Zz߿e׮g8}+ޟ[DDꔔI֭Ӕ)Sh4ړ'OoڴNW}ߺuVB$ƍW/\pŊ˗/ܸqS3gNeesN4_~C 4h#j]TTu ͭH$;굵BpB%_Js/.W۷rE&gFG"̱cr&uq>>αvM6LǠG=z~S~0M<#|˗||;77AYf͚5냄 .뜜rSh؛7\+W26nXS#\f،xƍriu:=Y H۶0^O"OvD&S"*uulZy9/ U qㅍG3mӠO͠ M<~xS|D ^I@$* &[luKShXn.glޙJ\쓠4 +..bo!AGTA^.[>ѣ;[7~#P6akK:_uY@3TE1kfJվ}aaAV17^tI]M# ̉k )`0͛ט-,, H]^($DD CL QUEqsjUۤԐjj(<@g&LZr48**ju?^ޙM!HNNN-_쓠4!bgg M}trrx 5 Q|׏߶c|ܡg6/>ȶ˗Ac`. huݾ26kOO$ T81g0ȃu8s&Pd2<;;,4naaaؖf U^^EFFQFFqFFQVVX,ZϩC' Tee]n9f~cv23kZ}u .nsp`T(#pr:fyADoD 7O b/:RxƋ*~3B>[׮vooYL˗%};"`. hC;i_t Eѽ{oݽ 'L0!*'^{ "+߾/ľxQ, sww[??]H$lޖԈȑ{ִ͛Mo۷_X1H 8:)+M]67B!je$OrׯL}Ŋ S r'̓F˄A&SV,^ 4 eM꧟.^=lPWQQSPoWW?L[vQ$*Tc6Bl@ pPzݻoeΞݳٵᤤZɠA4h-7++aDc޼xx6ul7 ?r˖+.= >p`NP(D\~ŋ\秙heMS`q:-X,9q"{wϦ{pu:~UCf9H$}_nnRb0(~~N:͘ҡUbYtt޽8xq3C[6~~N0lQϙ2JKXј7o8\;w^?v쁇ݩSziuHHHj6;++ AhvҤCm:n݊|@r)xvHL|5p`{ϟJҦ}H}S'+ccSw&JO`PZN y3sIёY^nTe‚N@c?mzEB׭1}zHc[\Ғɓwn8}AP4T5ov ̻/ANz`P jNa٪{wSR. HJJFd 8lThn. Je2Asܹy|J^ysBi)/<99xYֶXwcGKtڒp8\wfX .<۵ƶma!!XgI vwoH|̘SR-kCh丸44~/}h6~JZE?;vߌGM kusG(|YR?(l6yn,,XlԷ[\II qc6Eqaa08:**JJḹܥD<}ZpН6m6dF&fbyux]6T* 4||˗K=ǤI]QZKL|u'"}07$K#rڵKKo׮O?;6Bыի/NL q۶'N̝0'A1%d2ŋ%9b?/|RBlf@\L cԳgzͬPWkW_88te4KPUUm8`J.=?z4[EEM2O!<=٧NhjmɓNܰN@@]9>O@] HzDwkܹ5֡U^_aEbC# U^^EZ;qqNNƍܽ7(55>r䞵5mq&tuՌ;xllUUXhr<ެuk[Uݻw~D"q2į]V:uYRSC*4kV >trƠA5Y:"˩S)Ot誩umYY%{ܾ|9ǎ׉Hw5*7]],mD"ɚ5Dܹ= T;|0PzݻoeΞݓD?/:.h!.ww>0‡sr_,-!!^7RyX, <ެk@PYx1gZh*( /FjݺXg IDAT}]d&:> Us瞴icsѣޡCw=$2/A0ϭ[/{& f`kKu)׷c0\r23ɓwiiii|}VݺyZ5[7OjiIrX sbLu0PǾ}AN9Mxq:mޜpҳ<LzÇ7o\Ȫ(|yE?T&SDF mGަUic>eJ@7BRB/_N߼9b`[[:$o~i41@3ВN"rݻ*/ ZJYӋdNܦO rpƪ52z!))gPSdPɓۯ^=/`4?zv)_%uРN=,7"?GsAs4 OLyaGJ#&fnnܴRAqrr^I @0oqРAAp [^)* ^t=P II9OXMfmM:EV(*oo6A!pE99rA\]܇ voōD". HQQ۷^X &@sD3wnO<ECBc.^*mQd'O}SP͝s޼g?߇n S~ԼZ\]ŋⴴ|>_Lu„5 %%lt)+dPnn6X'׭[/H ƆrNWSǛHz(TgdxQYEqMùt֩C'??gC&DKrS`ڵ sg\8@Qȓfa5r}}--XyHMll ~Eѳgo|Y(̙s^Σl餥Kbv4{vԩ-IɹyErɲsgڹskoo64(5-WRRBCoX_ˠ(zˉA(ZS#bXgirww[M .,;ի̒Z oooߪ]VF0qH`,rzf߾{)0ei {ޜ;HK5?ѣVƏ{WsCEkמ{pҤ.˗a_]رT^%6eʡ;˫ABGyy))yE ӮkWϙ3C;wnHlcY᯿޸y3+4ե8:+7`@;PON\]-4ܺlvvy60,I op^.k|At7qȎ۷u$ X0 }y\׹'d{=ue)3gmr@9aܸNv߾AƍX 9aa&L_fyZIJJGqffJz{u]ٽNze0i(.YrB!3^Ço:tpγfE{Wf PVL}ժ!4^wmnTԝ+Vm :5o}cl0Bz$))޽Μ=k׍3g9aNffZ\U%(Ẍ́ e* 10¼ʷo+*޽˕<=٭[7*ǔJoғdw_Y3 4e0iG&%%/f0 ~{AΎi+W(+gzGEMk̦zbÆ l6cƌ45̙F퉈믅L *=7礥K wwPɓvee7GMgmMۼy܄ ͛D">$ X, >PyֶXMS^/(~:/RB!nma;t]ֶ0SJdeH6`@LS |3 0, *+kss+6l faaΜyl@ltFP:tgkZY<9woĩ/% ]=',lxxԷb[[z.?4g6VX4`Bرw"˖ =a}yeh7B:h>˾|YiG }&+ woTI AH$u`۸qA[::_Tty@3ːN4H&S,\,q8$(]ۚ4}t0<ebss9~;{uR~}|~}:Ks}}^X,+)fg_wޞvX3xb,::iDY̙Wݔ[7 EX, cu)hE[TTS? RXYQl\\suvuvsaPm!Reuٺ:ٕ+}7 4e0Q[^ϯys1UD؋ŭ[fMWWn|xAh>`=z{av.ÐUҾ6oNq8|6tinְwH$ݱ̙1aAAuRRNRRNb+HjfͰ=Էur0'ո-R/oޜPZ ^b-PwVVv-бXԲRS4@ )-xYmJ%%RbnYOP!B"[trrqɊfF]R*UxϞMݻAnѢڅc4֋%s_ܟAk|˖ˇ߿֭Cwe2WŖ,-!!^?0O T]gMrhٲ3vE_)]PMHHߺJQQMxxҥ J۷_aE1e_.EQm[4\r8jG D"ba׭'tuvqvv23OثS`Jwd"PZPo:h*!o߾ζH"Ǎtd…}=7hg ,9l <+q<--XgE32oJL|^dfm䮽z9<$+:zGh4Mct$%lt)+dPnn6X'ҀWJj`2 u~W rבzrBPZ+)ᖕWQQɪs,GG~}HL.B!kA]rӋ>=O*323]]AS=t~Nmt]`L ծ]յ3_={nٳ{bb[^&&p}}-9~zٿ ʕhݲJJJ^h}}N17ndZŲ0e_.qH$G **\Rijf3:tp6ŚfL''Kh>lL.{C)"Ah`BjjDO*m%3ޞicCF؝:$`=}zw>{zPmwo̺{7[Po4yruԒ_!~۷OXqѢ lL>-7ofz_ꗷnׯ4Q0,N&*'6^AcD^Vpee|G]^p|TBttd-l6C=֖WcuWJ_(ᇑX 8%.L&|0,I۝ 4Uffȑ_~Ç4N~'Na(S:6N$mD"s+n];sg\[1#T :E08EE5{:};*jX'Җwq8$$ @h42 " MSZ`, RVT8AUUmYJX^Sb+*c^ skk=֖fӹsk[[Ss֖}k@=/+ԝ;daݏ `\ʕNإW/HUa2L&)&&y>4ƻwUfE9xpHTߎcvjk%or%#1D"}kV[_H$]2J%"k׍3g9aN}AAp%qRI4ͫWe@]B*UTW 9AuZXUU[YY[]-TDuٕf8ٵcl ֖sD*&7jll*7. he0 kמ333[:j EcSt;r$e|͛Yrvvm5qtJxLu#xoJHH{7[TuwC`FZz\| }q&tos(޻=sf(Af[D24eZY2TբJAU*TW$ ƆfgG98mlvv 6akKgZX\! hTP(TTiN(?pܸNp00Pݼ4:ziud589Yau//vNn11PT~Ʈ]7ƌ ܶmI9rB ymfѣͦMc `cCcsۭΥ)Bرw"˗3Wc%3 @3 vl)41H OUT|~/pWTJKyr$ޞig`,||lif37X,/I=iRwnv^^šCӱfĹ$L@  ,9--t:fMuٲ3f`3Oy‚ا=m`m&INԩyNub,::iDY̙ ]߯aQhL n~ׯ51hD8>_[y(Oa bYY]\z5{C!1u4р,F/( Fa4Saa 6eՆqqi0OӦ/. 8vCT>mZwMP$^">{$aѣ wov4{vԩ-4߾\MݱP(>=$2 QWzp< vO܊Ea55"?.W劸\QUq+)*ͬVV4-Mn=sX,`l L&)&&y>ffpR޽syy92Ύu]˕~w.VVJT=|v Dޭ ZӦL94qsyyNa*zr +ښ~ HmӂC4F3lnn\ 狫WXWAdҒjeEmheeΎamMY[SB`LLpݷ:uYBZ= : hš=1uʔnG$ݿ̂z11k5x߯FԄ]{5T._JjՐQ:b;wlɄDD0!*>~dfp > [^)* ^tNu^JuIT*ɰ~]F {zaM&|3 7}00Ia,:urg/L L L-);d۶K`[q4)*v, ^^ dAT*GG'\9$2^zܧO[''f`i:iӥCcb溹`cwd8|F$XhWJ=<s2ǫD|~'AB*rpP᭖Tgg+??AVVTӼƨ3{޶cu4 ]GF u/6yrץKOs86u%Lxk^80u`7Glң /OLזic:`O7v쾱cGfd͚uT@q8,uJM}e˕P7:bH/XF ˗ڵ:`Ƕx/EQd0(>;H$53ÑH&Q֩Mᇑp&02& ZmѢ~X-RXX +e><`Eb`F$ΙGZZc1o'mm{mx=eeݽ2hPc\amM;}z{VT* E& IDAT֝[zsW<}Zo7o zu7o8^|4J%V]6+%}SR̈́L&ŚŢɴg0X=ALX,RI&Һl 9<< hsép%%\AnJ"Ǎ`A33x>PYY;y!پIZR(Tqq'NªRz07&&ʕ kkjXX]J mpp`͜qE/%O&Lx@ ?~e8n)+;| ;-)))N'AhdU]-pv_r8>_Yje(66tss"IMqU0&&y!`lr5 ߯/Y@KԈtקN~H90ˬ *-充ᐋ`>1_QY)|; :~MwoÇgIEnf8{` /歫Mt07A -^A={n>ˋe}?޽ݽil7P# S4Vff &}Iㆢ@PJ:/fR+ebQX,NV?&`b ku: $ p]ƍ MݶJMHOi7?p{'2զMΜyAA ennEjj~crzƉD"HQoVxY R*UBǫSSkk%BVR[[J뫭vBD.W~*DtN,ۛDխd`Pp8D @]L&`BPݸbHV!Pxlx1 e0rNNՒzG$ݿ*ĉ--'O΅l=Hz^-aܹz۶EC7t#'Oue~Bpt6ףn2 f6]z[݄1PBٳӻch7_J__ u`DQ+X*K$VV~|Y, 2`o#\4ʊTB*Uw]gEW.:ZuYčII9G5Ƅxz$C]ֈ JLuKBj3~{Z/uuv̘SRv^[+QWgpG&];\sOeQ*U酷nw2yɹ [7Sn dDbfewwh,DA%U"K$XUWXӲX+d2oS\\Y, L LJ&`$+IrhOJ6m4~|pNXg@. 1P(T7_1" 85Y&q5].=lYɦNZt|8gvv}:8]8(Dz‚8{vCFE%JJ\f݉p3mGUY33o.+ߢUUZMb蒒rڶu" UsbH&IBPcU&ID"_'IBAX,$L&P$dZPD*Dl‚HT"A6 59DN&mM_$5ðv0&ĉ1 @Pj~Y֯K[/Yٳ߾tv֯R*Uǎ=~J޾=<,,SS,'%%8rqA֮ HL,sL,~=93ȑ(T*uqH4&S,lmɶ[[J@¸B1{{P 0))O\!+d2A&S(#^,5e4_bL, ubNlU,D2<"L(D2V"SmxmT N Q$kkZ}F#hdBT2Jd2)T*k@3Rd}>-8~oMa킺,O(ٳ{A7"Jr6'!aaA11 Ti URSϞ]au=q~]ȅ ۶\eO> at%33 K{io+tzZQ(J%O)\J\Pm </klЊڜ#5Bod<2Dσ(|Y:bWXxͦWWRE]ϯb\,uuu2X&JBڪC]\=zN^WUAt‚DPIl6Nd*H-,,F#Q$:DS`N"rrٲ3ݺyuN?n*ŋahX]A ElM&% ;ť><,y#::K&&|QAB;~x$A?3<<\+|9:u1Du٢}{S/ y4*4K.WZ*D"uUVW'WVὲT((I)/B 2`-, @ 2{j{R Z%*D~<{*,}h9#TV=r`&SFUxP5OwiӘcE/(3ge kWDXXЈ{:mD`2YYY8M-?tTV֦ CJ"bD!*$9ύI5Z bYdRԷt=L LI! d2ɤ0VV4\?zB"͐[{ 0aL;}tԩݰ4O&S B$GiӺGFƔXXg-A7ߜ;cFYBJJޚ5*xq P(MO/=fn&7Æchz?Bu/x՚N'cRwIyػϸ&Үޤ(HI( 6@{ R\4t)AzoˣH I8o? 3ɜ9d^n`@@;46hjss{{;mtN*Jok74[j3ZVXXHVVRJJSIWT64T4IJICa@0X_tڵWU'aʦ;vHJpDg0۳GAAhgQ:sŶm3΂CbM5E*0,[[tyyU66heSFRG;ƍWWV6pœp[[ihvMmΎͲl6/٪h޽v˗9s۷{L _ ϟ?3[rrr \ss-))C_76ԙBl qT2HGIHHXZZ={+{{\npL&A3ok_vSOb-u, ] , aMM3fyyOA]~u399 ơ N(v & ,ھNzzitaä΂Ԓ={sZLeeԞU)m׭~,v/QQpǽ{ݡYV A0Ÿxů_+GFLp[ȗ/MGLQQl4_D&O6v7/_f=޽S4#8gݿ, ûlhuu:Anܸahhbeeemll^z%$$M3PlljjiiiIIɎmǍt5-[ee-[tA.]dll<|#GDDD޽ULL^DDw322aԩ#GyfGN!!k׮6رc[. > =z???%%% ͛7:^ w^--Ç/^T99CEEE)++[JӧO>ܑ껡~6>ϼ{#*e1z]e3ȋ/:<)wDEEVH?8ߝh:A:VUEl2z'6aaGz >>63fff::JjjY)Pd ǏSUU7h ̙gFF;Z[h[a`-(( x4怞b{ɼy6\ܼy,^׷@ |f(++߻wÇpުEccIIիWdٗ.]rGΝ;(%%r ,hllx" !!!TWW777?۷o"""͝fY,nHH޵kid޼yuuu 555_VTTl6ի,A{ SLkJJʨQ~BǏ755MIIIMM;v͛;\Q99qrrჾ>'@/ww껡~6~85AA3g+C,++SUݐv:zoS ӧO%B8t>Hxl{d7gOO1P(UV-Yq.O[]ٹ&7G.t"|nupIGgM U iiu?LCcIhjS]˖q.0A] VݷA-A] bb(I[{sdG^iiNxdƌST*,]py5˖r+:ڵ||oihhu\i555 x@xxxWթTjfffss3|usv ȑ#}ٳgcƌdͦh}S[[+**zĉ:d2;fADDs=)) AԎիWd0***/^`3f8rHt~ 4 åqy=}}BFFFl5wU99III<͛]!?l&9wClq.kcs`U†FU 䧚7w Ax Sg΁jwngSwwdddt<75l.]|DY=&zuvU ڛUU7hj?~4`Ff>q'2>~ 0ct3F(*̘a Wo]QxZce'my`mHB/(miZ[p1eW\N^^ޘ1c:`ffbbbVVVaaao677tZAAc~~>~5 ^჆Û7oWdd$PRRBTjjjps̹w^uuϽ{3GEE1OKJJz|  8_Ϟ=g9dȑ?{a;-P?&TT4Tdz=`}ٴR=z4c=AF݆-~wlF?騒,_߿ͻ}t97?~JJJW>|cڶ6uڀ77b27o{l޽HDEE:͛72pœΪ]g0_hQ/<QQQ//u秥/X{hѢ]vYc ;wA~^x]8Ͼ &&j22<#@ uYh \r̙3=&8ޏnNgnk]zD6N*p .^;'[XhA] 4S0f}Seec@='54tuٲG];,[h/?gۮ].5ir1۹s窪mۦ._nk֬ٸq; 'O9r΂ LR[[cK*>vrt3gZ dZZ#"Nbv. /jE wjsD?^},= Smv0AׯKOv ##>kex;{6\ܺMX*EY}Ç |ጌ2: =[^VVvҥ7n;[>}*d0X/;$`L^` ],lqPc )*Ͽ3fVE;EE5w[adc w3;wޙ3*.n++¦KKPǏ'Nvt/_+w9+29OCCAMMT`.5VD;=Ak'JI)^$tڴчC; Fs3UJ+ bė/#"21QҾr坭>YL֚545mvzēD'8\22LLԸR}}}=22~CqqJHeV^3 𠍵}T}Z?y],BzM^^ ^[[qҤh;>zRQрv ^=HLLbW?Pll3wnQA#<&b?.$xb! :8-PCB}}$)~^ swq#A Hqqɓ7lp22RA; }Z9wnΝwo=r0円 df56H/;`Ngfev@|paȤI#CC%$Dю@] ]R==Ihbb"īW3,d[ڊVMF;1g_Lz=&fÞ=222S}uusmm@V/++ 23t&=K4cYp"KPCBCCc|G+)ɠ-Z4 un%y} (ss;}5k)--֠ .9ggS)@IK+51Qn6} n\99Xԉ^(/oPUC;E?EDki 5@;kp9?JW]q#11]5V(+;|x…x>'ˊxyyyyy F$>m"$gZ_E<ޮ-+MPX#"wuu-EE\@%'[Y頝AEETT/yAzXc2x r y>80g;uƶHL8 xO?32LL2TxZrA~O~m% \TT lq׳g/^d޹]znnc칯7ސ[45^=e)YY山wBC U̱wTRRWUdaC f1NN.%`}ZO&}W\\+""L"،]G60/&&kzzGii8}_Jjj㞽e˫+џ]\̱y?;=5W|hg*㹣)_7,YZYrx}R(f0t:s߾(wwd7mVPPx9*jȑ܊adbd䜒R|v+'O>14T7H ๻;,Pp8Qx rs+?46''ydr~BB~{;07$HzD(}:y۷٫W_|p1?0D@]*;;SYaaMJJɎ.hٵ[<]nBB~T:ǏyK^VV?~nZ-af0ν!2r:qã/46vCo 33M33_uOJ*s'̙?qs3gc PZ͆N,1NI)a0Xc@O֐ybsr*l"l"QАc-*۴ɹO[Kyx/\xkoAB3{ty'%%v"ekll+)z? DE}6Lzx(ӓt7o/vw3;;"Q to:5_R7 h߾Rq pu=x֭ 'L"Hz6'..+&rb\]g0r&Re!,e)"EEuujzz)__*%%fjhk &B&ݺp//m-s8|0A23֮VPP}cю,pel6Ԕje􉌌y.uRa23y tG޴iڦMN)/o9i߾(ee<o6L:<{~NWxIGG71& U_V65Cę}0εF;  VFF)ג:au"QFBC{'ΙT`eý\ɩXzffٖ-+VLڝ)^:j:),*'u>R:lm B]vMZv F:M{fʕw-9s qGyy)ڱ \-[nii 5˒w۷Sbb(UT\\̉D]{LO/r`8cJ}}kaa&AxB)JI)&<*1|1Z^^$IHԕE;#/֝>tݺ::Jdܸ!!\ǽhC미G=}v"eKM-qp0B;EEE}vueے%v`AMimzzg= {X+ʶP <]nnŅ 4…23mxCSSJ{ UU rr*??x944NCCӓϮel6[L&+72%XlNNЈff6H54$ܵk=AnժgR5kT 8 o]qӚ5Sk^(@57S7mv27q/NN {E0]aJJ2h:wnTT4"B @@յ13Ӝ7zL ee 22-[v  w| H0:hTaJX,6'􂂦HFi .57Sw?gGpģM j7@;wY\ } 44n`DAmsԓ{||l"h>L5My$mλ[N_`YV_ߊ \Ԓȏ>^(zuٌ\ Paa!IDW۷{߾(KKm^յTT4@D1x"Q(Łh:Y)ľ[],""lbN$؏b?>T||lN~rϊ 0P(EvMM- ,##v">u>XZꠝo><8 pӰaqn;z0yڴQ|RL2e͵|}m97d`>}*rݩS8s.^[ԁȑєcL};/TNNrTo> gf0Je aaob]]%<^ Q)Ē 22jvHrrp3g^cfgϾ=* wc-[-ӍK* @yM ȍvy2st3S0(6m[}*A; HEE Vb <4D5JCX+/ͭ;w( +WN>T|W8Ng޼Im+VL\b4,% A]+wq9 IDATwr&L0D;EUMno׮}ؼ,fu:Yvv}Q;4mXk#99/=p`ΰaheؿvYYohLz=h=uu cc)} 6sɌ`egNȀ/h 11f)]P;,bskjEEqjDՓmldP &X,vPPZ@ \sXWPFc\18yUU…6nTPPp8 }q"=(nqW[n*Ƨ jk[Əˎa7nv^imw## ǡAXXܹEg}|.DG磲sPsVV;w$=PÃȭUR 5n  Ή8;Jg{hLI)&bA 4WH$G\¿ބ +VLSa`@&//҆ Njj0h@0e1̉4..&ܹ̞mvKgo=ڄ FWRFS^κ{w^s Ѱ@7ujII1tʮ];v$&$VV:nncfͲx˗ra(Z Y4;O $$DGͭLH'RRJq8#I$]33M##;(-;z5k5+[;91^;9;6ZDs^46/Z4~ժIڡP zRRUN "䜜F]kc3W**{ժɦ{hj/;jܸhgAQT 9̆ 7s1? ),,D"Hzw~C9z}Əן7zt3~6vUjh NeOӧ1c~cbSS;R)~&##nafnf:vWc;wUVƯ_?/ O[Lσ\Q] ƭY3*`V>El6ŋǣo ac <<&'kQ(E<=HNNr'A{;+ͻv._?Cvqt4ut4moy}N7n5ay_cGw R/;i1W*,bJX,"y3;j?ޟ!Kz"5!ˋxģ+W⃂cnۅ K%,UT䛕}"i.JM-)/o2 }/&&2z4?ƪNv>V]\^0jAzYvv™3~FXPZZwܫ͛vq#Nv5uu%KЎ3PmCCӧ鱱AAwsr6fđl:˫rkhRR]ܿh%Bw9-bFWO?^.BaA]]˯>Xhرz٣آEޮ^=N"伳g_>/ns @EGS{"KJ*=Z; ŋmڽMAA,*-A5QgͲ@;Hߴ2n_s@c{:N3ЎrrRDbyyCllrL /T^^lLBCB=yo N4XTSRoN?y򉡡y\~~G4UULP(Eg֐y dr~NNV$uwp!tGҀ;fZ훅GT00$5e ٺ6Θ>}[lm Ce@a0X&: 44z A4ao.?5JhΕ+44Z,[H:{'WOK +WΞ}ƒky<&ii{RRALL:|0`(kiJK?qf淪*_ߋuu-RRbAAlm sQX'>,_>qegjk[}*A;ҥ[ھ&oHN.s'Ouu-8b_݀,T*Ӵ-[jj++LMO -Z4[L@;?)(ũbw;wFbsV,}6rK <{LZaaM}}gw$\yEFFm̤I""0űkme"29LOHooZDIHԕEdƌml/@Kzzip{ݵџcl#Gݹ,*n܈lUW7YZꠝkmm?vAl7#";K ֺht 8fdbdq+WO|bf9o̙ʰz4ki" ] VFF)ג:au"QF_CC1>. f0l2ǏS]\oMt;&qiEE5jjӦ޲y8}(0A]6ݻIkNdY}W9{P>NX4,/JOo8YCUU-NgN}bb"l7vkbIB;w ?zCC ^N%,,D"HzꞔTpN~ۘ9s nZM=e(b29LΣRÇˎE"D] сHL,\ ӘpGGӐPϴ߼~8Ӵf¬YΣ5ab2ApnR[O/76ֶB9 ]ӦvhgMeK}w&..BB]kQQ?| >{vт?|gwhmN\\VL 88ϘaK4A:6drs+SR9T lfosD]CCw|VO$ ~Б^_5qg˗O3'8)J,dŵ_gyefK Pm %An$v A˂ '7O%Ўu--Vfx5@;@IIq;mmc<=Ihg2 s{ybWQѨ;'EMMIjll7mh:oĉ#{\^49:~~3jm""$$D&q &&jv=Lv= bb"Z K3bzܸ!!\v&TYƛ7))RRb{Ob*v:@]𽤤ԒC EEqݚ@ǝ:-r``]CC z_|[j2AJVV X ӧ~Z9g0lR5kTc묗/3Ⲛ*S=D[k߁O€31QƝuu]`%=EXRL2e͵|}m9GG޺$Ncc{vv֭y?hod vg0 ""0ĉG6M#&VMv\\Ǐy4C[[qTCHz0 O[H?sZ`c]'x1klnlFF٨Q01)/ɩ_g={~Ɗ0ڥK!v=|_JRs3Je(*깆*AAAAΟ>FE}s'Gk̚eyv">0ʔbb8ffD"QАJCw|meb-ƖED,嗳O_ .`eg}.ۜV9ӧ*,cWߴəoJ*-= ˼ ',\Yflvjjjʗ99:|g22әrmYxdx`+()MC;p~$y;KKmKK{cbϝ{YSL&lYUwpbׯػ>ꆆVQ)Ē 22j;rm[,la$ITPQB."rw%)hhA(l?ou:3sό3W\\YZiP**#&LPڴi΄ Jjj2|kB/_a`0U[Xh98gs]{S@Cuu-yy99%n0Auh @[P7!!TPH$u!:Lùnۖa5^>>.)~KUUuER$ێ `F]][su`}ZZ0 fh]JrOEdʣGOԔep6{݈?CVV+ nxZGG??H~m X–-WZ[pDʊΞM8y2k<}V +-+ӏM\&(-^ldb:n"buYNzM\u!J†hsZ¤D ό_>a 4wLCCe1 ۾=M\\`1sÆAA; ~>yyuu܁DյX[9ztܹdd_NPY0Dprr e/.$ρ>_z UP4Q|³,zY?~d ,`2mM_!6/{x 'NW IDAT4F_77J5%,Y2I\\u!e 41!!o*\Kd29f~m9QuY%%IYϯzU|;Ko>DAAV]]ĕ+ XZj3$]]DNNn !GEq8KA"QH$o޽aݕckRϞ988 t"W!..2U0t߿w_tt43GuAU8Q%** {&V={VYy~~E[[(ߴUNN=XZrr樃 IHvuZlrt7 mmPgaFD"gƯ 55-RR̙OIJ p6A#)!!&OV9syaӦ9mmݞ II ^w7˻p@J}% +!1nnWd9<>nWIxyP)b Vk6-YPڕhkY 1nibݲŲ?NJݺʸqŒ<_(¨0IIA[[M+" z>/hUU}nu#Gtwׯ: 1BÝ"SR#(t)..^2%%%{nJJ _c)ʷok.?yR!R=|!>> Q{44dLQʆ,@$*laaןD0U%Pa󧀽}XdVH<+0 OO>zr#aeD2''II sWV6P qq9φʊ^xumok׮555avy55 r MMM!!!cc㬬\dsu===~~~YYF>>5220LFFD"188XZZZJJ*88H$b555GwӧO+++lٲQWEE?T4Y'w3f؞={szT```OO/ohnFr#ь_ +W&ۏG||ssK2CmJJ-Wlm6LoӦ*AYY߽}j`he 3mKSU^` 4F"_~hkMu& 688nh:Aj˖+**#\\Qa%#G^׉̄(jGm*|}Νkaaz꺺իW9sF@@ 66644t%%%[lYdIikk?KKK<ЀaXzzS jkkȑ#ϟ?wnw{fff^^޽{CBB_^XXx۷o7ovwwZ4Y[^zqw8yoݺ,SD=EEPe9!!888wD5Ǝu%Hw&'orzԩ6lTPPpÇ!Qmb (]hJ P{?|sZΝO3F9cl5%"cU[[IƠBpґOHݱuf*}3)no?CNNEyND;+$ċ:ѯc)'GˍEEEwؑwKyyq~܁@ nn//v==ۉDXQ+++eeeHBBBqqq3abbbYYYGݶmCBBf͚5?9ð.dQUUACCi`O~=ZJZZKlܱLL[O{#11w9Lj-,! ;RKK^@7NͶ:JNk˅ ~9Ld%,̤dwuqBwkk[6nwSRLM7/|}yP'YY jjhxت'NXXXm*''WPPw蘜lccӓa۷dVV֘1c0 knn1p(JJJJoomll߿۵?ښR JJJ v55u~G샅d#g ܜnn&QQ+WZ 0 8Hmm [c=LUW%\\ UUiA9u}|xUgg#*KIC / uif PC#RS;;GvWZ򅖃:){@@3331 swwzjmm۷7lAzzzz{{mۆaX[[իWmmmy͛ӧB++p3fHMMmmmg!.aXlllX~\,??ƍ...8D--]49uu|eY>| wekD"E `8ji+}x|F;雩Ëֿ{{BQeS۱㚔9 Aq},l)| 3j,dB۷II {yTTF\{6[ɉbA;ydCC빸"""|||&OvZzꆆ/^:tY@@ $$ilURR>E}f󡲀yhk˧f 9ee11PaCcH;8ttoމ/*Pg@]]ˏ*laauYYBUW% ԤǍS9IfTQpН5kf*)I20'SkiEE=8~u0\ȷu-ߏ7UEe,IEeի'''/g͙(w5&(3lѿ+?ȍCEPZr{sw7e]aa՞=׭=FFǏ :z),")M%%|o;R&ͮ낺,`:T*uÆK#||Qg0//!!#G-lYݽO@ L^^% ,AyuY$;1 c'OddDF`Out0Ao*,yyXq-("\^W-,*.ɡ".:@P?~l 검?ѣҫWN4{݌ټu0,r#MܹPgª伓']a-)pamXJrEE)gnaJKI׷b&%%E>-e_HȥKgmkWz||Ν޾)*.*R\L ;RGGi,>uY\BCӽ͆,0 Ņ_ĉ{+WZ =Q/^TNAc u mlح̜FJN^hQ))ˑ7`kmmᥡ É3D|Ye\!%%?5Eb4~f>[kdp9aBVT4Uy0mm9kk]--9mmQ$ ~`uPeT!! +ALjɒIaa/yzNA ʗ/?'trrr^AA՝;Aa$%SS.^\.0:y`ѢckhhgYAAU{{Tee͗,-Pga"..G9wPg~KmMGG!//&bL (*2x ,`"o_/8f*aADD cb. ( fC[[}7LƎ:""s 45eQ%巶&9duٔzGœ/D" }*6bCO={QBBp\ H^⌒dH5,EP(6;]j?֓AA)55iq<7 검Yt[``f: LJBY||NztV!` 2BJJ(/m!Dd8=wɒGǓȣJ2i_,''#Âϯ% |Kps+AL"H81tq۷ xtʕSjuksQǏ;ϝ 8nݺYnn/_~?~bb=DPs?8p+0R\?W8q%ZCC|<}<p461իO=.>l 8j`4+_ߩf~ g0@]WWײv%K&M>u{de}},02Rٹ7\ E >}IT2ČZG޿us0eJw_gƍ@ 0ݽڵV55)SvKfN>};y ¨9:kXXHY n"2<~iik'L@6^T(*ei/]^^,4~Jˤܘ\wBBh 1._C21~YRQ|t]YXsw}{Zp,6ąUuu%@,ynbV@{̓ Y35U}hYc4EE wwSA͘}ϲeQ ȻnzLMZZavv;422V/*M]]a_ߩ .=_؈Vǔ rw7| 1LiІa K))Iˋ1f90==$oѣl: +Y[N= : .1%P:tۚ۷pqQgQTh??Fa%%Q$rrJX.SrNٳ>̌G_`AS,Xgfݺ5-*ʍ}ޑCtr25cҝȂ'N[ֶbb!!־9ǎ l{gp8 c-a}!!܁_uRbb4ؑXHCC[Qї/EE_޾RQ7xX9mm ed7e'Nۻw4~p+$8bf~޻Y"iSلS5Pg1vȴ@Wٳ:婥%ǘuw\0ٳ [-&&;!!pt4 `XLONλqpq4?@_l||NttvBBTwwSR.*Ϙ\{{Oaa5K~\yyb^\2EE YXǔȬ˗_а}.qIIO߰%63egqv6FEboIKEFf98L.@W3fh>fYYQY@LLvuuә3ި5J"=}WmXx̙ڌYwdUGGMR 11..Ǣ|~~S̅[JJgNȤG]O_uv2ӄ 661ID16Øo}PvE?VV:$IIA;YM$H$JYY]Qїꢢ/EE_Z[88p**#\]'kiɉ N ?PFPr<u1 ?srJLQGɓU-vs3Ae2Aw ?ww˞ 6Θuo5'E?TyS}K͛m\]'18iVVsrJLM跊/S7%a=~\!۳1oDmm Qgaa>>M>u~ KWW/'' oeC ki N O~˗W0mhj41검94-bΝy '' TToOhܳgfϊŹݹZhW~?#X[[EvV!LLDFfѵ.Gu6""t64IJ2P[jb2߿w\)jQQPik~ [RR] H.cc3@Ud-P^}>xvH}}%Y`vT*a0; >>殮1o֌;uf NnkbK?|ELR~~Fl] hs_ߤ11K轢lXW…;Bw#w_l`iiEۜ 3uƽ l4{݉Yو6|ojxfZ+~+2gx~cxqTQmm M]]KII݇}MuT*UXO]]@6. 7T uXJ Sh4M55#GPgRB\RRK׵11KML8:F\]M`ɓwgdo8'/okPe,]jBP/\x6brŋ~]VV}|** 55M1`jnn)P ~\̙';|fB"/^CH#v#;w^+)50P>xpaV\_ 45e( `~Y@_==$OiiQg?%*?,WWc<z|ST Q6ji-X0u@*oyy%Ιs'kk];g v{"<~f[ Ci5 cb-3Eݼ:3޽7-\h4SZZdiÇ%&( d[b9s0;8DGgN0D$ z{I<# cAAUUNguY@_6|֭pv?s'VV:5kΆ )w-\h:Ϯ\yYyz*8ddDRS7o흴|gӯdႂĂ/]oi20PNL;LޡNztF3.pZӧq`׮멩/MW6f_eeEJ>|a2S0auPgagfO?} ]/&S\Çׯ?d!!^ Y(uY@GRR<$Qg **#O검~xMLM}luٮݻ/Z4QOOu@_ܜ;+mܘ_*+KD"9-ed K_r4MzŜ%f"DDd1C]f܌ 'Nd9^^~k3\ _PdJd+eZQQPoVXO&SyWUS&W4uY@/O|ܶʚ53O: , _sw'^? u.4\4.<:|n{{OH5 A.4WI8:;{ϝ{fk&++iSkҥ&!!syh3jm}ɓƣQgN__sggȬc2Xۏ3_ЩxwYY{o<~\(..: 17ċJPT-+P|2jӠ e]TU}NZz,**=`lC׷d'$RRB?VTm׮˗>{_SU/<} QU>}Eff{׭KzzHMMzycw7q5=^Ssdh|ACC؂#^^ $9..a0NNw)Zf(?8L%.,z󦺻( 3vHAe-/ _mbc&&[,xڵЖ#"~mpa$qtӏKG۝gdkk>hx~^~~n"ر޸ZOOV+ Ows{gxxzydc/)VV UPg#Eœyϟ6{akkݭ[2Yo ov%(hܹPgּs]{5Ylyy0 5J@yժ<˅:&e 45uˋ* C!*ʿxQTwwSq ɲe#"_/7O啧NL`XY V1㠕NjmmX@J]xkZZ8*SmCw:< tnjoի4 ;IIJK뢢(`!?yxAAD")"M/bL(==8q/4ZddVPϝz'B|lbasܹzwZu>99/4tMo ~JYspQ,U8Q%** )%%u_zӫWJJdq s**6A] ɮ]_=뭩9:P(T+,ffϘ: `O'hkEEeEF2Dqoos:M,ݻ#Gm8Ÿo1ssM3#"\'LPfL ml}|̏|16v[;;:xJKk]lͩ3f\hbHAJJHCCao7.)*Jw{|ii4,fTW/?|@P07Xzq̉e&&(""رœ'R.KcHM>6,,검~XqAYycVܵ:G`c"/<<~f[ CsroIc23׮Zun޼+WZ^=a22"9w!TmN{uu,-YbrĽ L@e@Drcc?/*\ҥ硡n(\zƲel\>0a IDATa9F?3fh="&&{~GYL%%%a`leC £ `B0Hׯlޜ~lV9'ˡP,=y\igQlk]EE'ܛ7.<۶NH1+&GP32mlonLL\`l Sn \49UTFDE%'56Ϙqp׮뽽$F iiY9 Tmm B冸8 ''~ΝW=?=~gg`1V0uq1F ùOINohhÇORRlbkZmlt<߾0gO)*P-˂+g?. 8: :u* '41~(CC{sMMIɯmZT*u+Jvvz^ 0?"?mK] z5RE95VV߼fd` &OVs'h&\K˃xҥ&_..:Ȁ|ڌaȑ"vwzaa>k룁g=*%ɦ0>|irs54T޺uk  :u㴶v:t-vM]{1?@P8xpaVwv]dei%*ʏ:/eo;xqTggo-}uw9Sg׮hިT*Jӆ{ޱ9t {;wa76a?AuII5V__)#cͱ؇tOfYYG7ĺu= 0FFnj: R[!))ƌ: ?MIɧR9ﵵ$%iZ{{[T?vuMD@/D"*6a`Ys}.8s //ך53JK޾&4@]]>`Yx|~~}:/ё [ V+*/qba1V]]&*AX3,=qss:t;0В~·s}ɒI tZ0;rs{zNNFrrb83Gݾ=j>>>n퇼ةS^׮ڼrnniDzb;:8qof^^.Y~IFFdۏ>}֬p={hhvviL?vjaa>q@<wvYª^0.$..:#X \l SSӜL&H*c FHI {psCQeiMzUuu,mpFDqCn֮E%BC}}ۮ] wFGgϛPeAAVo lm\׏=C)h"paWW[oPϟ)*J ¼o!3gڲJGǿv3UV6NI׶lS!/?1$%GF>`2/vNYOogrrJepZӉ( ?uYПȬCWH$JEECKKב#NBBh0PTzDCvv㥥0f [<˗O{F㗖l` gRSS}Q>O++lbh3%%oj~P{)L k3g~&#Ny tr?<.i_^ZJ,B)!"%{쩄Bd)"X JB73}~i;v|j9s?Ġ >,7^ȟQ)#3o3F*:1;wMv֭.=y)$ģ)4A\yb9s837,1 މB[۷ⰰW:mu-[fGEm:왛%N ,VMMcX+2B;FoYbqq 0DPP'0ڵו x-;iO|߾QFX[OfDpz33R"O6o6mO3==yX@OII ߹iMGP_߇̟酭jpsaay'3319>X|?2. B;1m%gvv]|HH40Eߊ|ݻΝw.TU%OW9wމΝwvݙ7裸++,мz!3;-msutFrrŠq }QC&S~?dAA.Y0t(cLg66ܤK^H6W5}#?xٷ̠1כ-kkԨ؊))sK3 ''cVO׬X_ҵ3ñ[/\xWO;(ZTTWw &o3f|Zپ9%%1fXY8:;w֭";#'B%8@wl555zmzÇNX??{uq3k`Ђ[{kF).@Q5tͱj^HHR[O66S{OSʄ;~qIc&;;vxx ºږl_˶c{55=JEgELVXqaҤGX k3f=Z;9(ل 7lw^ E%%񟽽c-SUu_/((LX1%<|o|pP qEFnKD"k:}h0_֬bg7 \D"l1rsn(]b<4K4:JKUwj|gѧN-;VYMbgwqAA+OgvՍkȑQK&|d_ GK~DowErq17Ocٳ];vx9aaW 6Y[vv=sp}{''w--d ˓. A؏[jj^JJnzzQVV1Ȧ(!ma"/˂.("ckfT*|`;aa^+I +VL!x%Kyy_]\戋 ?`?V))mGKRŌ!x;"9ɀ9Mqpg͚)YY]]7^p]D"񷇚{ׯ>p R^p!6v w̑T*5< m:|`kGJJnJJ۷MM||jjFFcv2QEB. _aH$rpMߴn( eiVX˘O;08ٳYzz*g]qq{t *SS. ?_Na89O^.tfǗrqWf Vqp'e&orV\\\PXX)-= 66+W߼Db\ {ԼH'))as->3O޾'T*JیAMAAEJJnjj^JJ^vv rr" utƎ`Y9"!,EZnfZ]L( P(IZ@3 )+o[YUlxAb֬H),\ۢ,ڵW̪Kӯ\qxˢE~~U3?ɓ]s|6'G}-މtǏo.ۥO~ [߿>kOR7F2=vuPJ--Yse͚K q!6J]]3y0H44< =z{oӦz~ eʠ. :z -Bqss8;}UdN EQ< NN_'$|;0g[RL5gY,+(K H$vE/]zܺzO} hk+ܼݻUBZZOgOq k>SXXAe;KH44cf637--KCkjq;gϮaz&`PRRa'Fr75=EڶmNTԦ/_EGo>xla`s ;"???52AEDbחח{(落H$Λ7 Q(6e 55 }}Հ ˗O>r<<}{]6mnn~q`'B$DI@$"%(!(!#w-$GQQׇ-?sҒܰdIu.ff/]JNK1~޹tTXX5c*VV6|Pm<,"w%w수9ʊ}yǎ[g^w.wmnvFyy(`ijj(=(55˜z&fʹ)S`w [uwwy&Y EBBs)چw͡xg۷o/^,eۼ Z۷ύzs=G6RPL9JJjӋRRRRr?~,lm% hhȬ[7S[[a8YNNֽu ;P(x'@&y`hBQ*Le]] /^,`8po **#\o^^ 5Y7"AQFxxD䔞:IǏxnŊ ެ݂/YRsynk0.igbmltuuN``BYEm%%%+++Q~r}}=B9s挪*ɓl(hjjrss12KKKEEDD.OD$$$DUUUTTW\ >յu'N@Q@ (J&bccQrqqijjjɥKBR]\\ƍWVV-`޾}~!NNO>юcׇ碊.L($$t!ݱ%%%a ޼yO,JJJT*IHHΗ7+egg~}T܆֮veu{[bۼʕbHi5̙'x'+{c@~/)51Kw_z.qê:*++988KsAQXXmmm{쑑]bEUUUwBO~~55~J]]ܹ'&M:XRR~do",PE33IHl7cVU5lw_ꚝJJnJWnBXKIɭ.<;>"Lի/7m /!EVeΜ㞞wKj;Ap``eQ]rmqq7oP=w_ IDAT؝;w~u}iio rpp!RZZŋ^V#zܹ DA-[V[[ emms)//GQǏǏ߹sϟhttQ}-WCC߿OOO;v}gmiFR]]]555^ڿ;w" >|Yxĉ2vImm۷7H&ڰG7nׯ#FHKKCQvgeWhBddNP4Pe?Y򂪪ee7Kc&%}knn;A^|]JZZZCCc߾}ؑ1c\֡=@lii 6#296e ND5@UU]|-_kkm<<5.oh0T*uѢED"Ʀ5l?D"͘1˳7ع.3E)J#555nnnrrrhXXnINj+C&GSE͛wȑ?~GA]YUbWRr;މƎP=|8VEegqq :e]UhUeffZvNX]6:MLLlGuYff&u㟶6Gc%`/痫{XqL0[w\0O&NOߘk\\<^rrJ {b?lۻ.މ⥮9)۱c--]%$hjY ?~Aqv8{/ ~Y!!k߿?>>;KA #pppdee988kiiaڄ-CUU1H1MMMMJJIRRRbb)))P(X{%%`RSSgΜyС˗/w]ٳ9s,YdѢE/egg+))t&)) ؾ}qjji-,,###,YΗWH$.^Ν;O<0PP(6eaa^kɁ +WN+;}zOef6Asyxw;3*ةqϞ=vvv^.ok ho@YY{\Aaѿ~9{ȕ+™ 9 F߿v*^9`]yz.W@EE-^^1NNa _Wp \9u>Ss ]7(RQ99mmkk+5 ?7am...))?|MMM۷o}`` v0..ظSa]yUUU_fcc7o^tttVVg͚@'߿j &&&&((͛¯_6o|ӧݻѱWu'Nݻ7&&&88}QA==/^ǛDszHﮌݻw#""(Pec,l`PSw"`5Km*=w[?~T woUzxêYjϟG!Mw h tנcp>x{{2&~Cl t){k^]9=vdܫWqA2Q:|[CCh:d?x…U&&KE$'g^bf6A3s -(~VՉki۸1Çzzʗ.~F4T*nӦM7nxILL vvv۷o...vTAKKKkk+GSS޽{n?'&ŋ 2o޼I&H$˗/!B"6oޜimm9,//QvܹnݺoEQGGG 5k "..iӦ>n4޽_D"QGGGLL쏗g2ӦM#XbRTHؿ11~++3gQ ~{.nݕ/[Ĝ9=aU{= :8̊+vڕqƂ:U6YebrRtjb2dҙcg99>-Ln.>z)#!!Dǘy4]yy9;y^<; h?Aav~у?~^?"AoKg= ]VC߾rt UW߭sར*3 };h Q```YYٳg\]]7nܸuVeeDHH֪˖-300V{ Ҟ??֬Yƍ Qss32eJkk+6/))={ٳgwazoʕ+ϟǦYH۷ok8^˖-Sk}KK/_tXĸG2RƵ Pp 6n4(-sމ=0pŷoś6]317sa0Vu尪3iiiJ$}sӓmLjj[x,8%no0vƍa39fR ZZZ;r$R'QWݴj޺uWvH_|3F8 V@a!!!77=+**M=F[_}{w=׵k233Bjcz8]]ݸ~~TԦ/_EGo޵d4..ҟ#Ж\c5DDD3NNN2˾MvϿvZopۏ C9wΖ9֠ ۅ 50EnnR@Lf[oyβ`fŇ?ؘM`hGVVVjbeҏfDP(5k.}E^kҽ{4ehx37,Mm…~n^2*GK?o+.ԭ+3ג%/}^;͟*[nqssmmqڞSt3`B&S33b>IDox9iTƎA`{/ ,zhnnͽx񢃃޹רTV +s"JK^5JbϞ_NFd \y-wK2O$HH\yufd4=.斱Vːe4KNbtw {eAҗ.AQݻ'%%UUU ȍ7TTTT??nbb"n jiiHHH9r;X^^ˋel5rȫW"2ydAF9BWZ%***--L&+++;|+WVWWwaڿ1!׮]SSS6lXkZtntǏ+)) >|UttQ6o2^6x̘]'Μy q\ܶNN2P`ep fo޼8q̙3FR5ˋ;y1*`ۿ?J@;2r(åV2(eWyy9V.l)X/[Eѣ c3EE-S(-_~7A??|ɒ99ыO0,\p֭%%%[n >xCv޽rʞՙ?>;;رceee,X NNNvvv _FLН7<|ѣG>>>N}KC_=ĎGEEzͭs2t]>|A[?000666&&ÇvA45<:fl|"88}ܸm>?w~ 0P Ҁ0eƌ؇^*,.n]D`v𠙈ŋv߿} U?t"#^p #...63uߚh|]QQ~1e -'Rm.gPJӧ׮ mh0~:+%%|#//' lO~ٳׯ_ ļy)Ǐ~~~222 r}l.Rz..իWWUUuKХ7o>}zȑ ÊcǎtҔ)SzȰ1/999 "e]=mՕOČ ȱcǔ'MM;˃o56&'g?geuVMm$!!'&A-``uY(*c g=qԟP(Tzz((  {uSbb[Z?S5jDP??}u`d4ѣ &+9nuٸO¼&+`o7y}Ӆ]TXMaay ||P/!!k~yؑ\Mms,cc &\|;X__&,,]aaׯ_KKKϘ1#99À}.P(EEE #jjjfff%kIIIAH$RwР#tJ;˃7ZwE~jjVVg##ߊ xy-~f7Vez?eeΝ툃WVN&ERQ"mۜϟ;AxzUVV9cfG+gq`.EsVTx?V&9S%'O>Nct_qss̜Ryyet\ѣOgagᓣǮ$a韾r33\7ovQ{...))3~455YZZn߾8cc455Q[nUVVYf昶%qqq"ߥ$%%#>|&v@cbg z^2YYYXᶻ; -_cMLN[Y>>-TٳgQmmmuuu>|kkk+Г'Oddd;d($$t!EQQQ***ÇߴiSsssuApuaÕիC]/56HHly8DEvwCYhǎ @肄Ė4`u>IKou+vv! fĈ/_l{]UUekk+"""%%Ԅ Ky%"" 8֠L&*++M2%,,ă%&ڋ}:^)SMLN1::^fZw{Ҥm.[:贑#w,]z\Sј1LM <~_}55yeĖɓnvˢJ0P}KBb˷oN/,7uzl)㚚GuuuǏ>v옻{YYW^UVVv2$$ɓ[n=yd^^۷o>}gCCC:dôڜؘ9rذɩ,BAag'Peql<V2Y@QtϞk#++/gfnXUUA>>>YYYƍRRR>|#uA~Ab쫝H~~~ǎڵk׎; %?ܭ[N>1toAA+W쳳K\]KO~iia/riatX,(XPm_MLN^heuVUU",l-'pF&S ZYUS05=$$8%emX))a30PIISwH$GDD ;uTl ?~󓐐A- ]<}9sDEE 8{%uuu8츏>/oǭ\]]MMM;vLYYyҤIܑ>`ccu) D"l3eq6mĉ g<;doktλ܃~utF=jp PEvӧO9R]]=@::|)((LBBb޼y2, a---yNffb\GbAA+}sܹc[&/L^>)?|@ K4Ԕǵ`w p$55"PKK5G^^(ʂ!D@@ѱ7VWߏ37WVv36>N;߉ IDATJJJQw?wFWZn/_~'`Y\d 8GVVC}}}i5$߿;v,ѣu/!!A;NL}ZL; 3,;_w`> ,6m2 NO/А;HD&OtQ_km)yy;vDTE333oԗaÆϟWVVR(E{VRR0ʺ4FPt#jjoRF'`ADbb.;J_j͜s缃)*70`L\'f gghi%gTe=SovZʒ%gؘc~__򂮮҅ 25􁒒R9ĂzspP?LNJI{{]]ȃO"++woߊUU%ڠTzzzuuu/^fZ`,--oteK99ϟ?|{!**m^hUU=.g` ݋ V]ǘ ;;~BuwFFc44dN`ԩmnnz~vcKKk/241pǏ#..N$ss߿^dA~>TϿ?;&0GV`qxn\gd4BX+ud`aaլbBclq6bReeǩmJJʚ?gq񢝕W._ɽ?{usf,CGAAEX+Gбcw89i^yBQ(Mno8TRƎ:::bbb---MMM{E]trrڱcǏ+**ۇ4\x{AAAzzq@@@h윓accA:_ l; 1f NN3nw'1wذt@ X^CWve)ϟ?_b˗/ Dڼys^^^FF W\czE1Һuo]\\g% hǎݻ2n&K׬T[Ġ.h߽gtG&%%?7 AfP@$9bw]n3O3W16V_A")/X-vkZZtunܸqV\ܶA-3{x/YZZnܸA!!Ǐ[[[򺻻/[ظ]7LްaCyy= ^^^ZZZlll>>>~Ʈ̙3iwаaٲeB|Ằ vvӧ3EEEDxEDEDDDz?XuY**8+?ʈӧ ;c : xݑAbcceddƍwk۷o{yy3lNNr.&$a K" 6O\\@DODWL {'*ʇvy&Ƽ>+:ǮcJː38WWcHdۭ[o$%TPw.Hh?G>;$%.\C̣GWDF:Mԇkkwn[VVV7^`@ copIEE5t0Sի<=0">͡Ciofh/K^S^^UelVV1I]]ZGg*'+xCQtƌ#zzʇ-;@| ===44TUU5==}NNNx'5PՋwdXSX\\[SXSTRR[RRS]TZZ"xBB<ܴBB<iD' A.!LCp׏E?yٳ6窫kFQZ[35߷, ׯ;:{aa`5ӦDEm^₉ɩk2uui gjjX/l{NNʈy8JEPL0mJT&k7n82dppҾ}QիW8TB]Gk+ZE @z:ghoIK+HJJN0fјttF2b^)=wDt`ǎeee#GsttXq<8 [ss[MM#V-.okjJJJj**djX8숸 f2uY@PDD =>N|3P\\?A"#-,4R`P[lmMLN_dLju,sǎ[jjGK=>FKKV\\ &eK貈qlǩSXz$7[ZWdEOxtcO+PfaaK *jZN* (ˆ,"B--ѣ+|YtS'74~'aX)==e7y&`f2@]bҤjj`&^^^^^t^RLL,((7KP\\pԨn'(t9ŋƖtKw|Yx@wT* KKӧϝ{v`yVVC]]tRR-KJ EF:XY0% M\\Ν_:{EŮ] 23^A=񟝝}}~ihhy쫗b422"#,-ZXDDl1m{Byǭ.A fKK޼IfqqͰaӦ)O2c(FN&S]]o̟?AߐTl^YQFLul]]EE@$;$>s@ މ.0In^37nGפ[XǘE(eYDttqg0 UU"8zc߾h11kg%06klDz칻a՜:oN$̙s ;{7ߔ։3">erCJ0Zccwi99ٵ֬6mرҌ]׭G1{YYϟm4I@MBB2DDuYN_ϓnKKk m{Pe ,f {z.1 l:Wee9x&76ch=݆[7o[8`Ŋరx.zl *.=|x ;;=דpaN=޶m#L>999(.q%>ddbb- Z$ "b}w&i\/o\@$Q(ϟ&'g%%e~"''bh8f.lвzOO @wh3>w5//r6L!wv@_{WڵpAB}{t~ll2w`cV0ĉG6??D,K# G} ׯ; }`o?]JJxư?Νex{}GSSv,5:FpqNUz3C%51޽ݾdm}͛oQQw72|W`g&D~mmnd4Z\ YRuu;w`7khhy!^ERW^x*'+HDLzxDN,$`soڰjU陰0.Dz^zzSX\ܶ~%#1G7u/'dH~̞E4!XM4,-E{Z:]ڕЊ6rB>B%/cIcyf~zs<f繿}*s|-{]\^}_:fiixOh͛@x?ߑ<<\sζӁ m+|OJJBwrޭ:3@ 45E`2qR^|bҁ6co^D899 p |%;_vpJ%0v8/ Qc`=PC T㘍啒b]2!!~2Od򳿱 I""**Odǘyy߼rfʞ=Vp0} ˲_ Nپ}ѸEBBmk^[ykkW[XX?˭(F#.TQDXZUlLG*ux`(?yX|3F3wlx.U -7<|ҥg ]Ǭei1 IIE㚗 CDStv䉯̌_g+9>$\FFp>>5/,_*9Mӧ6bV62R \ia:ƶ#54f{y LƾyٳgϞ={(]ssotFFWuXǏ^4͛VVp?xE/VCهe USifbnOLhlM|S֤YX̙7EE lLSUDY\\2[]mU֮Ν BB֮5%I7-V[SFdۻw".2e x=>5-;??//-&?fGEm w,0Dp!ܹDkk΢S^9c)%vꬷwݻ9$(8ejt}p NjSSsC[=w MߠvdT*eSJKOKN.eyz(3?͛cyI+j EeX-4Z '_=(/o>xІ?ʁߒ򘘬G>_TQD 0ڽ oߣ΋ 1e]x{Gy{LMZDJIMKL,lyy3c;:޽+9uj6<~`%'+qq>o;=|oߣUBB|M.,X[P zKΒT Tqw;X]]wdQQ}@ēɔ.YD""6XqԩmƸk͔3rq1>y?n߾G(K ;C`I^t 3xKftw,7: APw7@G_a[Ed2d%Ht"roliϞߤ[zzZ$>>Yh46 VSI\SL HLLɾ|9^+YYi [01A={:{!:z"5CMqc={ܹݻF]@ϭ=L+å)+kEllexR+W^{OQv},틀jiȨHMſ}[9cG07Wwt")q괴srILL]\ؖ8Ziiuԙ39630@ ~wSz_2{tꗥࠗ[@YYRMm9cXp\c^^n>6cAH~snA,dvյ,""Ҏ_Ʌ}eeMC~mP**RhS7P(?LK>lYہv9}0::}˖H ˵׮56RQ~sŊuuǾ&رG<ח73SxxSS:LYpHiiXV~K53IEE NNWllpu7:s+8\m&)JCq}}ޑiinmXXp8P̪ 92`wP IDATAA+-,Tp쥸a͚׮ T@^E&okܱXկ{Wh\fAP@]YY78b_qJi;:'ǘeسB]jdd//3\C DxXy^`TUV6w@,T]ŋ}|,h 1N_=BḷoOtO')SxXm,V㜨Z^g}|}xw0e4ǾIvvL'""'\ܼ ۷VLLmwĦPT_ ÙPvnc0𡽽=KedTͭ$IKO32R:rXi,`bϯ]dD'^5@'K 11YĪI%&ɬe[[{ 똻ƍ˖wo ycqqn֟wAQϜ`)odvnpKJյH[R?|(ٰVNη?zO:82ڲ,jkmb|Swvv:v`""%5gǏ11Yǎ==z..F&&ʓ畠[6=[0)'+>>z3xkf|yy3Da1D?31.GWy̪̆}P5@b0تMê֭F"Q_%|RMQ98H W~$+oι~}=SZl@^v|uu (>>oӣGm;ݻb^^cc%& ABOxy0Î t}/GE[Rat Pɬ'Kf / "\YV hΝKh .3f9p 8 va󼨨OW̑zdJAaV@?cSHuw'2e/ hFSR8e /õh--]k2+6DRSW s;v =_SSɥBB::rLMQL]^^ $rFdgBs|ffe^^ Hzh=yҥ.& G5[F ޻ܜKG:u٧N9n~OCcg_6itXJs{zIJF74q׹c+^^&@_UYYc>-Xľ>즫k`އ ;ܹvutƫ|b'[pt*(;wp{붮“K|wUNr?d2זJulRSSԴi,˗N9[gw8J;g?o߾h׮%#>4-퐢"~DYs-!or~jtFǗ/};-+(A%QQ^ ΅;I@ )(썈ظdh*i-- n``aʒ?=?>S$w]nkyd2oVĢHBzxƻdfVd 'rN^]݆F˸L/<://ݻnKKXY"m'y>>Qj`0.bddaܖm m]@ܹӧ 5-˖urd}lk>(5 KK5iipG7TٳoΜy9Zo/>+*3*3OH\i FQ00P w}k]_qㆻ p`5xARS|c%%rr3/) A//˖wo{R[it,.^}{{ Gl`T( A܆nPt\**J:&ӀآA^^nEE 4y %'OKMſySxfNIB(>{'_-Zbg}"N'))2;*66رG<^DD}6vJŋ]nn7/pF==vm͹sFssg^B}}c,҃כLK֞;~ۍM>gӫ# ,_ J{{oZZ9햧7r!r`ÇN9LZ̪a({R FAC *ySc=Y pcDG"Q.\H lOURx+*͝+}O3gdsSLMQ(hXK`19v6 B$(8@&;2 AAlٲ 4 kO.4cPyy㉁ 6Vk3B"IkF()Ie͛)uuћ6+qssX1~ŷVVg,PYhlwh8pq1rq1bb#">;8($F n\~>KWF'%tZ@5""J QH_FfdžHH11Y}3e.7fӦ;/_5t\C433C- 57w75u<~mBnT;7:'˗oyy11A==5k 0EmmS _躺K\u8,|{C))WvfNۻwFFsXp.u jQQ֖eI9S#ӹjkfY#10R)и2(͛]5f RVF7\ւo5qssbX-JDj{ >>ܻ.xCl//s;;  B$۷Kcc}|X-wlrAt<<娤h;7?:deu[^dSJJΕfl!eeM wiIICh1>*+qiի ?pޫWݬ x{[gajaWsƇ={ǻ 77wf߽9::qp[J#9={67w3r7$,{!,읯""DΚ%} 3** ~)j zV/Q(~ʈѮ //~}xzoLpZ>}}MMMQ`h萗/o(\۷@;)%H""R0]]3&;_[yWo߲-[ 0 Rp&og, D$55oaʲBgm}NBB4&f+P|gg߯c͓O{CMGxui]Wkk}$.n*֯niy\*%HFFA+Vc@7S.^LYp.zHKz՝)PQ2Ԛn`84 AH`fk{uw-ZZ>޾=`ebdbD:pɔ%K4&w?- y[S>tO3w1v4"//QUVdiy*2sѬw?#r-EѣOb`cǽ ɓ/;vܭ9w ]ss׼yǞ<50P;v7B-?XYt~XR! l͚AlRܼlWWiiObi5h$ ֖QxP˗h+ObħODE}ͭA$܌`{T4{{]77cMSFћ @Rׯ/+kJL0x,;--G=61A@?U>MLL/\X;eΊL}xgU3 𡴫k`B$}bF3áDjrsk|7)i::r::H`Yo_Lm?%[,`\ˎZW}6l0=zԖ5AAodyi^yyE>f!,L?:u mtbw>/-=o@SSNge"`Y (J38xxQ zz<}E~y١x|sYYA!J K+eOqo<{] "#?=}BZYiZgn*'G>w|e=,Ve;[ssˍH/MM$+,Z(^?~jiv4ɥ]Cà'G5ݴt-[kŬ:66[aK1'=kj*>9]H_GG6?e)ꉭ6Wx:ጄJVV~˫˫ϯ-, NDұ,Nxmiz#c{@@ͭwo ,1_p, uCqGbj25EA޽yyVVg蘕Npd2 nn`VNuv\n-//of쨐ɔ_[&< 򥺭 BbZZKξ'_m`:yij"CB}K\\YWqtИ wtRVF/?pӧw?8r䉭 G Ğ<ݼ9bKW1wL0W'f:;cF{BZZ2ɥcKIMm+WEV)yL&"}}Tc}ς:sg阙 A$(/ovwIPwHοڬegkoNlkF#͓k`7D"ƍ' ^|Ĝ|؁zYzQFFJ/I1:-ffd!P7 _M"'=ֆmtF/} 'W? _6@Qp[ks a7ubzY"\Y-,zHkM6MaʡC/^䧥|۟>r^FUwee>g:pin͢}Q(IGG5k ٤:ÈD߃gϾru5f`ׯw+)I3g^߻sl3E!L֞ӻu֞~]na@xL'KA D0|$JFF INn&mX`OBoDHݺA\\p??63˫{Μ\#* ))( YSS֭>>zYl~ڵQCo N14Wqss]l9/;qq>`ةJrqqqqq,Y8qXػS:1HbF(*A<<4l£Ì7R֬1$Ɍ9VUUi_!Suw4 &.)i (FZZSZ<͞=idGD|]0*jh[n~79۽(G=zoߣ`2}>z u]]7m5s%+j߾Gm>>۷/fO?~~ߜ9[C}qKzzC#cPН <#w[98q<`ݻJI]>I>%';P5_9v//k;qqq'  0Qii(+#`[F%%ע N.^~8ڢt+&6]Zڀ$>>YNjh4RS9Hu-49/zԵ15X5BIbZX6 MSt?{璒FJQojFpq5>i==%KNˋ߽}rMM::o17uc&>~' IO8i׷o9y҉`&")KA"߹ɔ[Z32*RSo75uΘ!4)\"O~{`d47涿"(EE]]<hDw3SUѣ0KqqâE!ǣ>` *xiEYׯq-=n[Z++!P(Mp HH^};VFf~jaqƍl<  ^.hkA$-kaj`7pO .pp[@wvmp_kk{QQc0|og"y#=/no54 ]m 5G+)X|0QHRSW180V7| V7H0|H?ljy닋 닋JKI||<**HMM$;W[0W$?z5kV6w<;=$e'55mA11>+**ZllYYi?X8JE.ڴ|쫍UXXd)(P0KBBݣ7>?TTMm7C$gΘ!{7n!Y?v\ݨwLʪzf!!,P]@UVv"i`TV@Zn!&H;vMH(8~9&4mBMwggWy{TRT5C.wwO?z~ jjKN.]9;:9]!ϞmvLb0blr'7iQGLʚp_)-C⠥% 0ՄOHܺ 0v /_11YĪI]ʆoN;qEQQ0{ySq'\]ᎅSv͝ˎ޽jj>fnh.[v6=۽RVVg%%Ř22*CΞ$opo?~B;L[[v֬Q^t~sr-Le"w)ӵtPm]]C,PcO64d$wBRD܀qZFLJͱ>@sG1N]덱t)Yo/AE˖iWCOiE? @2+)e2["`I W2y 0))()w'MtP(ԏˣ_.:vw\rSww@{:[VW-Yr՘==uuPQOH(]VvBH[zKOg)-%%>{"vz_GMM''׷ ȁ71dclt˴i#[75u4447|L$h}ΕVWVSn0fpY+ɥ ۶-\h.ؕs.,rsk#p!H?~ ;---mڼ~RRʟ#rp4Ԁ\CgO6E5? b:PIJrxTǏ_?z9S}Ƌ˶l~ڵ5Ϭvȓo;߫nm}nR  bϫJ8rvZ'?xVPPG ~` м?y@uծ1v=dV@$"2w,-@2),=~UtKϤ[11AIIQ E۶EVDff%@(.X HiizˋM..yyyLO`} ̛'w߾8=bժK+q‘_[ى3gV;:ӹ2 Pd2u׮%&l#dhd%3W65EYZIKAl /~~UZ[{An9sJJIIdXѣ̻w?WU}Օ0bm##$}Ԙ{WWWp~ݻb,'ݣ8U7Wڲ&pa,,TˀNshӳ~XS *L <90K~)#i@lQQ}_ //ܼӓol\(drcG@ONnnB4{t'0vo~ZЏ?}x DQVF̟d`0G__H8??/j74t_nw26|;moMK+mi] ر("⣕FP*:;ʚ沲K}k6B!45VH P(ԏcbymm]>D&]^D\x\VHT#߾ZZ,,TPPAT-?W$$M#~~Ka};̙ׅA+ZcZ1a0յoXk~?C`[-,:wn)ڣơĴgSUT$*)I6f3\ }Ԁg3-2L?XPPeeU NQW(b0 zzӧ}-/>>?2caa3 HH"ksqZÑ_L ϊ տCC-3~;v==;`ovwTG=b\ )NN.! 53C<Ǐ^ӧ~S 0,lIImj ͅUQ xJ ^u`E+N`T>[y&`_;0Dy/y(%%v力ڵDE^|Lo/v~6EFEm+grm>=3F8\-htqwW\'O:[GW v ZYTTO67wA@Ҳ($ %B!FKt223Otyَ]kᅵ>ݎB-/oήʪVU +R~8\mLL9]]J..FVVpm[RgϾ9{6oV#̾} FxYII…!_2 6A7ozß>7kE$>xevtamxxʟ>\⹹5,3jr-岲0 QdT@ G0azOYªJٙoڴN[[ϥK.*>f`Tߥ<<܋;8YXrd@& :p VMMeWXݡC_Լ~w }pJpfr↚6CàWvikˎe1G>hbg0 }bbVVlbb^IY1_WE8\-(`Fo65u՞>GUUJC!TSfu9&02nn.FP>9;_3GngOgA r/^\{޽ͿO=zEsut5(]ebuRRFh}\"Q}!cqrrT'YWYQkkOzT|rri}}"SS=zGJnw,')?`[**75uB##3c 竨H)+#C8x0ɓ޽t} ]^]]luF( &&flnnwdŋBe IDAT8Hb+)!-kncnW|]]yCA,<W|ވD2//7G<gn]݀7[Yi#Gl]\2ÍjAr?Rt qpJdJ]];D+h*Ғ|ʮ~CàMwbbϟmU\|GLM[Yi8w,nG@RZj  há54fkj"gkh >`?wv+{D6N A@uE]tU\׆,`]+E] E4ׂ BK7B(JHٳ'Lf}fUUMTV6\D  };Nde2Lf_vo~\{LAALLTVFzuvHVV/Qqqm.^Z^^ol<{HWWKeeI^AWC-/KI{>7N7(hat-M_RCCu/33,-%OzOlKJJҥ.YމY%Y׊˜Lh}&:>y2رg4HȈyiw~xʫS?~¢_J:rnz84¦fd|mm8mmy, k`8bpmm.^l0piQ֒IIo+dlľ}qqqq_5447bXEl{TW7_3)nཱུ  hII̧O?Rg0st* ie ̙AMM-ϟv%))vm 18xȑWl ںnqL&ݭY5(zʟ뼘9/pꦧO7ޡ|WtB.,.[v7l&ԅ¦;w/L&c@t{BQرǎظ 6gΙ54d W* A-`0}A1'=u5k%$5[uuͯ^bJJj{[ˢVs'}(^PPUPP_WUPP]PP###-s/_SHHOxAAքg>PMLTg- 8` ŧpȮ] ә'O8~ŴifsŇ:~dExA̝;ҥ,#"ow"%%8w7ﬖٖQUX >>ʒ[}ZjՍR@i)94􍕕V^^enn%_瞲BO"@؟ꦱcmdOfnjjjƸwɓ1 㽽8Ngfe}Ό(Cdp3'N3F[@_^ fFF6ck9ؒZ֋2NEEJ]]L}4(4_MN߷/$7:EAACX]]sLLVTT˗_LRcf3r 1llNNֲg.XFfW^^yGH68UUMzϟ<=/=ZHH ywVDbc<=/$&sog>n>iǮxrp/IM-qq9 R#2r=Sii~~Ҋ-SV񙒑QQUN tuLLTLLTMLTLLTOxo/|9!>|  ZehvvF ZX^ At::2='"/DDG@i@0$REXX'L}*$Ndb`m `zC1VW `Æ[x<);dR2A.\cP'eo~ys2|lhhKL"XˤIFʒaaqj}}EA23$/]R`0޼yʕCcԑׯu>ױn֌}Ve=mm9SS3MMUGP_fY?С'׮yq@QQASSWH+9CgRm@ Aq8-7D˫RVF2rzz zz ::3LpWܶmM 9^}CDDh ŋ' u+W^ݺ6..FF}L\;&8%C}B4XPl c0lg0/ uMS`EZZDKK6%kJXXXXX۷Ŋ==ܿ?0cc2@ODDu,|d9b@c*(~aa+njrx? A?i :ox]im#E ygm8EQ/@$$DPP00FwnK?VLLRrhmU7Ï%%t:ǩ+ȳVCGᎎ++K }TmΜQs挒YN3o|L~<ٸOy]''b2Q ZJZGGD`uQ(vܶ~<;{v@\]Zt&;m옑 k7;|ժ99Ol07W﹖E$RzzqhelllMLTW:MMΖI1;NA\\\[J 44d ml=hxG#F Aje?|(:s&άlGRRCXgJ --ӖQg7ns) : n>4A&0b-4VV$$\ HHkkajՓW^& NN&㬭floG/7m=~Mo! } fd\9:hhx*Dq:""oXo)(CNf jhhL&ZRRcGxllv3̳g~ J$Il 33kR)1m>41Q߶m6Nvp0u_MMٷoŽWc+44d45eE~:u=qq{VbAqDk+5%ŋg>Z͒r<'|bAЀRW H* fPP'$6qL&  `d{Rm oo h̙3-xА<eGҌLә\>nܸwv˷;wĄ%%E$%%%%%%$ti%%++Q3̮fd ğmtϟg8;s_њBBׯͳiCثW'OoXXPG6H))(Z^^_PP_WYPPm62Jkkik*hkjj*+tkC{25U;|Xm>xyjj 6?6;p & `]}}W.ށAQEA|jk+agj(((c磌0;xpŋ Jv537WreYGTU͚u )ڈ HXXIY1ŵޡ>o\$>>ۡؒ _ĭwst4擕2:im9u*94tŤI=ﯢ"[Cv[YPYو -)!c3 IHcEƌԔ!"B71{7JTTVWHUX"Aw|٣6lp ТE-˷˗_ݼSEݻŵ//p11\P]݄:~&SRR `DwN=mrrbkuuiV9n:GmmŽIYnul1[fjll$R(msZupQ }s,(֥'%|Z'""hiv)W?zڿO662(+-}] IIa*B \RR[VF..-)!++$.>LMMZ]]Xy55i  Y~1/_~ٸ6ׯ{A4dc=^"UU5IHΝ4HVAApsڿl%pt?>xHϞ=yˋ>1؍o}V=b0Є2yHN66FFW:~|>7W~yYJ@`hdhqccck~~uAAU~~u~~8 [ K?lK3 CFgcofozw6&gee=eZk337ijjld+ @PRքvt4:C(((aP };}١CU! ?~,NL$%%>.ccwwǎ{A_eۼCE%T*CPoc?c)&]{^bbPyy}f:2anB3gbOF= J[h}*5J# 155cǞZe5sH`A**ʬAT&S}|(rD"^HHҥ%r=/)ݤDt:͛GDFnxJuMpS=Bivɓ1NWFc TQ((70P IWSSu'%fSSۅ : ~DJL$}`0MLTml}|Ϲy <~߫m TP>|ʔc 7bb4GΝ[,"2 }|]\|}拉0̰dmCB^o8NlgOD{;ל] ˗VϢ45e,[GY A;nAD =7D,)MO/{Sccf&䦦`i˧Oӟ۶M߸)"ŋYYD"FceJܞ IDAT | B?|(7Ni~;dDHM i1 -@@44dBB4fgiisuNIv W#GjP||ndv#Rmjj~'b۩l (]6 2jjjj2MM';[mmC\0<0p.kn  &(rt w> K444PT^U\ $ A}}yGGC;;==׳]JLLLH j(rDuuꁫH@@@Bi1 +K|y$3Bْh5!!Ǹk]^HȵzLws퍸V RRRk׮˗/{zz>|B:">CNʕ+H$S>{,77WWWdeElb.I cb27oʑ؆Ұ?sAA2Gk FәL&F#󫓒Hd&E؍zRgeovDffV m? HƂG'$VWxkrK//Iu%ܛUXAAb'Oa^:(--y/j*קOn>E]oEE"\1Qf0u, e2ZJm-R]݄lWU5P)12YYU&LtsUP,]_%!!1hi(Πј EP faaiffkp`|3T?~HII6 <8188ֺIj?ל<ݻn55͟?fHNemO\I4޽-AvOo{WCQss1:S{ (ˢPvv?|Hff&<Ӧ xUUUYYY/v?Q /|z'`deE{Lxn>!9ԩ؎Žx",,ׯuA)v k0V^ѣGO>]t"QQkZZEE?EM'$DϞ?,n~^vzp8DNN E[Z55M_T`WŅ.^\;o7?:}S監n;c[䖺fu]檪ƚJ]] Үigǽ~?6o޸ϟӰ5bt(Eѯ_45e{( [eVT5 U11Y[Q绻u8AuQ}!kbq++-[\FP7AGBԃիflK -&){葊J]]֭[i&yyM6h<Abcc_|k.uuu99Ecu= ijj*$$} Ng{xMMȰaƎ PTTtիWQQQJJJ؁\|HNN. ƍZZZ;v.q?~@&q8/`HII=~P__ʪu+EQ___ss󚚚~]V{͙3u^^ϥ,---[IP?}o֊G>g9BBubc9v?62Ru,4 ˌd2ll{= [BH`l/=>~Ғ9RxΜQ˗n<9-_ܜGoѺ܀g6̙XRVPzXVVsiuu))55oE.V  >D'%9󔑑kPH{go{yM45UIY ΂yY%gyd4}oQP0AΝd؃~aÆ 6l ?~0%%%666..nΝGvZBB?~O"ߏfwwիWm߾}ҥ'N`{xdd3o߾TTTuss=r䈟kշ䀀??}aK5w %66+11x@jjj[[ۤIk֬)++KNN~:1 7ox &P(4@CCC\\̙3Yvw{>ۿDDNDDDhkkFʈDsXqbbyC0MμJv$M{@-Yb09yGFƾk׼V3Fg0"f WL"#Sr\YvbiA<9A 1ŵ60?\\\{޼~Bqpbv_YYf)j\TVVO9?jUՍYiddʆݽTUUMMMwhhh7uttynn. ==EQpݬ,Gd"xȑ:&`0;͍L&(ՅmXo{{{vv6Ba0 \E?~DQJvz5QQQ*qF"XWWYuuu;F޼y3 ''uXEzj???ECBBYFNWTTEQ% /@'tp()OJ"q$PRZ_P}7uu7: mOEezuuYNx}`9_t:Ngۙ3F͡І)+oشNSSÁ  mm}L%LMw`MӏEF}}3 5#!hԔ6ӧp\ByxH.kqGGG6)))~^-FFFFFF%%%ĉ]vYZZM: FII_W@@D"-_B`#VYD"y}bbӧcbbMd0:::eee#W^ݽi.rk`x<~ᦦ111ϟg{=A8{$R_& 펺bLLood}D X#"">ܼyf333QQQ++buCԙj4 tt`^޿/2Qi Ae4#=Do1cZX^rttb`\lk׼||mlaR */[PP-a塡YYY)IJJnٲpyԵ20P9t:V]ĺk5d2.]v[nDFFbgϞW\\|̙Gyzzn۶ Gq͚5 T*Hf{xDDDǵWjooRv4554ٞKpp1cDɓ^ .,,ؾ}… +""b``uֿ)x77+VXYYU N߳gg_./enלo|O!#JKYY圊j0jkh#Gj:"DD rvy𡫫렾Nۻаjժ]v14jԨw|q֭!!!NNN ׯ}'5yyUڿz^eǎfIK xiT8t ѣOv=>gcAA1MMm_s-uwm`>vAP*/d2kkk9RTkk+@]]#9YYـ 8j׹6<_ٚ"%%psi4**88z˖-RRRgϞ]bE]]`߾}bbbfffxӔ)S>mzеk׶l٢rر;w u=Fah{VRRѣ .444Ԝ?~Cl;b{:mmmSTl,ʣGvrrrrr[)̝;7;;$Eի^æ2nlltssK==wwPu335eeɧO?s0A膆֭[+AN!/^prr7)o.++%Ynݪسg\\\ԩSgϞ\XXxşnrrrI |QQMm-bP~8D[[J;~|~Xj}}I  ꨲ1::g_451vիCrwߒ+V>B6mxѰo2oֳ|0L33ꎧIII!3kbtttklcc }>|/''vڶ^lpno[# :ӧWS۸}{xcc+Á ݻ ֮ PRZ|Ey!cyÇy̘1(R(AAs}ҥKuu1yyǏcnDQСCnnn%%%閖[nXTmllXtiYYWbE{gϞUWWGGGb.\8ytݻwcL:5...55EӧOoll>8Ƌ/Νxy=f^ba[ulPeKK7nfv=1b{SS/~ίoPmmmWTT_{TOoKuuODRRZ_PPÇyE.LxX ꨏ-E-^BAAݻw(?yEME/_| ufok3ktϞ=ӦMCQ4""B\\Eє!!fowL&ܜje 6ž}X[D^*ڵkQ5441::ܜoXi+ZP7oPT<ϊ0<<\WW;$==;/_(`0X?~DQJvzͶ{G˲Pl6l7+:]^ ,~~a#Gf'Z֣G D` z򥔔'J:1|g9T-/EIi}||6_W[uuuû)_dDQ 5/5#;fviJJ(Jݸq?H tqq]6/qNNYa23g/ _x(޹sGWWw=]umFpoeС')j`2w&lݻL&AAРCIօnTRZojcѢ G, &а?w=|*z823L1}סbWנ noqw  -9DoPgcӧx\XXcm[\3edcYYQ^ Aqޏ%שV&F&-[6c 2(MMʹ4֏m`}oiqEkkܹs7mNjhhN PPP|u{Bt][ї$n=SPX|ɓ-\t ;ѿZ͟?F[[?]*+9矗_ wOvppSgϜ;kFܞA)sqq HщX^wΝ}v|||S(// 8q]VXQ[[p½{bLϿuV@@뇅FH$rz@7 NUq={ ajʝx'/^:PJJAAAРQ^^EƱcϗ.le5̙X2ׯ} IDATr "{Y y2A4~,/m6lF5kqrr~cc#J% _mڴ)""ٳg;wn#`~~~gΜrT{{;Jhmmݵkի7oŋڸݻw#B$͛]XX} Pv;צR_kuņ_b@5D"X($DD"ikk/XN{ nݺ{xx|ߩ6ԩSMjOT?ݕ\|CAUYyŋ/5?tk9oյk^>!!n:mt3MM!ߨ :89U+*++KHH̟?~CCÈEi4(t:=00PWWWDDdܸq`GQmll\d̷̟ˢ(z1iii55˳e0ǏёpvvCQL&{zz())mذzWEQa21a姮;7חE](צ=+rо]t/p!ASӷx R9X`Y7@ >}4d2{/..H` sM;kyy];7!u?ˮ^}cԨ[Zy2 233R(>x@IIL&S={hii7͛e.M)))laW 6fjɮSE ¾}Pmnnؼy3>(ڪ^*((qdw=G cbb"$$m6[[yuc>FVŋ544dee׮]Pm߿/PRZZrJq㵉vcm.$h ^GAA|ӧ7~~aӧ٬^]gօ^M^cc/M Wn_|ill,//l/` >EjDEEa?޿߾}>}`QUUegg'FcXYi8kVV67oݮ*sܹwr %kUk׮ݹsӧ  D2d df~2ٳf0}."#SWn991Ƣܹſ3rPJJ̙A.-qvH T &P(4ss󆆆Wb+555yxxDEE|cٲerrry޽{˗/"]طoߥKFrJǏ;wĪ;zk,,,:EO>EGGਨ(2!##i#ķnu>pk/?zaƏ}Zx@?nx _^AUpޮ.]J"pnn\@ͭN H˗S(NXD"=MLLXc/?$!!4*?^wZ;ʵzyںիWϟgmomm;wݻwg̘~[l455^+**,o'تbkI$n#DE}}[p+ @pr24T_CC;PASZZZױWyyٳ7nVP?p`ᅬ!`F j*+X)؜̯--Tx}}ccQQ8)1AU0/ ACm`Y,gǏK^~twqUo{qE#g#mV,K˲if6,-rKfͽp" {ݽqFuŋr9E6q e<D@jl6"h6?cAz#-_Kr[n\MX_xe˖_^Λ7/!!aѢE5m۶O#-Zh֭jz3fx6ΝW֬I߱cγ>v̘nfmPD>MQ{xmƍ 7zQ* v۶s<_|'ONacbD)) h!0ڈEfmؐz vP/+ﯷI/&Mڼy… kf7l0}tlٲS1B*>Gn)kP(zϙ3AիW/Z[nX,v„ ֭s8ɹӇ b4Nl2tjq;1))ߝ=7p-)=`@EIO`&*[Y@C*oj;A0|ݩ;.q8+M֫nƘͶ"yq}YaHvju ȉ#dڴ^:!an烳gFGGlju޽ HΝ6xL;pU8q❎uwO'L߳}oNyûY3S}}Y)) y6cҥ&iܸqr<,,W^?~wd2#HH[wtnl6;\$9x壛TZضc5HXXvY_KUD%5:}mΟ9m]L.&ܧϧ&%ck֤fggby6WϜRJgKhn̙?OzUtCo|:?_psC+hFZLYV,/Wj%!!(ߠ nd0*7"BH_@៾ Uٳ|,h_~{_iЮ0wb3f {vo=E}D4]yĉ;NKM}BYn˖3}2l9Pǎeˋmi`-)ȋ(j# D">8#$%%!4c{dA. @[ĝ;wКX,o/X?8z׮ytڛ3{ۥի~?Ca׮٭=|xܸh_/[e[yy;.{61ܹIB!Eh`˕V-/Wn7 qGčppA-,mћo=p kƌի_hCpMfӧ ;t6s8M?p„6_fLhͧ%} ]F4̛}РNv-f;ٱҕ+Eaaw9ujOMzLYZ(+S*%%j`0P~h(oNaapHKkAt:iґw`ƌ?ČDi~8_mh?|NVXRK_x!~'Nm`XS xmx埉D_O`y-+/Wݛg a{ڿd @+%쳉ӦO1+g5O;۷+ϜyNhDn7w8q?lQKZcrvz}>1eJϙ3Ú|pUU˕h(. VA?;( 7:t5f6aO>?vSr{. R;v}SR6۷s'll5VYMǻ]KSq1L `|g!6ݻwVi̙}֮=2ztY)) oK& &-)\Z~kǎ9h\7f>|cy-'ubxX@]irJpa!!`Q/78e0@,m;ܩ:}z 6kO99?r^36n<Ö,rv455?osto־ƾ}Lb:>juŭx^{mpc<k cϞW@ڛ͛Oi矧L!.7JKaaS{$ƫ4ŎJO[Q`__Vp078 qCBxl6ۅ eRnfNzݑުnw֞ÇoY3q jRNSvĖpFXn=c:8ȑ1t:ۥ;w^Y<%O|y.,k렛'ݶ'>s潰0~@r׭;VXIE*#΁YoW>&996!!Ԥ՚jFoTT\.7 ,?,0}}! S\60N|'2[5k~[ñضy^d˗ ~֐!^X,'簾f=bF=:ij.{oX̡ComNNň~GFrYЯߚY.[6]hL xu)''z2ezCnܽ[%0F;6Xh\.\+/WUVk6VW?AL"D>"Z2eh\.1_zΝW>>}"6m㵵9JuNc\Vk:qnz3gQa:'' ؑ@y6=?|Ҕ)=CĈ6l(4C.dɾ3g]F Swryh}NɓwO̽}ɤ 7hP'X>ݩRR]WTWY2l8vPW(d ,bnP7(Zehrr*FjYɫj0X6m1`@wiDӷ]慇 ]N"ho.e=)%%_cSk.,emί[wƍzesr*ロ9vl&:C"ѮZuС&XjS_ YΝ;yT*cHoȐC;@f6**TJueJ]YPd:t0L|9>@N` G$8\.iٳ VY,{ {aD"޻4ܽ{pveyR}mt4ȑ1ɱaޮM1II=\_Lj[5IsY=fX,G2m7ٲ4XY~T^ZrB8Ca3@sR* bRƮhZYR,50'}Ķbx uȐ/:tܖiի7lܪ^xccE? Av9C~$=KJAA)Sϸ>|~;t:Ϛ?L7~&e|}Kbɶ{}wZ7/X0h!$R^#T._.p…2%J۷Сk%4HJD+RD[mX,*:sX `2U`CBxL&Ż .?O>yᥗzAT'Nܝ>7Qƨ6~ct۸q ̝|IjjvjjTMN81!8Z3ŚǗټӷ;~DDCezKRg?}om;og꫃'hwŋ/\(wOau ?X8Z)k5jFuRU]jM64) }v} e IDATNF,۲cowZHKlY*_diXѶmW5MˮXqK7ڌΜq'=ٳy8v'8#\6L4)/\3?_r; 9bSGܚ7o { kh{ޭ-B'ON=:h UP v-/WΝz KHahV.[0HZD+hRĊZX[H$?+חg ,τE֞;Ǐv-\#Gn]{R5vl%KF"R̙[rΝ:wv9Fc:y.:ɤ 7hP'<(dC{^=}=LS*;#G-އk\bW𯿞XЖ8kJO=~vQϏ Ӧ {R6'2'"'23D5Q(.]C{ uY,vϜa\)he2]unwHx__g԰gPȄ-G}̘n$-mLv9`;'cv{碢|XPv xvZshNZͬ5ztlrrlBBh 'l{V|}Y{hذ;|zsYt  O_%@a/\(8ynF\2srrl8 o0Xss,  Ĉbb₈D|S<hVFc|xWTWHs8TfB!S(d˾BFN*F0n\kS]cLQ|Ȑ e\^6kֶ`s\zV^LKwofQ, 3bDה11"o\V:nܦ/4eJ'o믗W9sӧЮ@. @'  K~\Fm6:mZ3<9gj}2}w߄ =b2,eT8vC&GF8̿Efs A `ꓧ/_zlŋwfs  &O޲s;5|oZٖ]z| wTb0ΝLJ3.xֈ-(K $̘Qdod0&F)u ^U*jf\wQfS=ӆB&E YkrY5+?T9?ԉXٹʮ]WJ!/wN}i?}砉8kJn57n\w]~lo֮8}z'lVP 4={'%E(<"Bϯ4pWZ ʘ]YUrf?޽#'M6{wVk&,%k׀]t ~h<+z2W,$LNtKtWvflЊ@. @{g0XǎTjk;ٱҕ+E씔ɓCBxsӵ|wf̈́34>A3姥0~8.ҠR \W* 2^&yyU( 3~ Q(d )0y<˥ L w@,A$+$%eܹZ^}ozgo饗~*(1'!!^՚N~̙{T*qذ.qvl? n,;>H7o㶱۝=z|>t>r龾,F|>C(d6eи ;ff5nx.{Z1l: Zr8\EE2O{VI:ĈbbcbDBw.H˕iAb#Ma\n^*ЖX,vtThL ZY1Z1dͦXZ˻_[aCW_ǗFZJ,>|СnUx#>|L߾5剧ObQvnjWTUS~0oՄ\.)[Ro?Jݫ-[^=.;9+k՚ޭw:7W['Z4KXQ\\Pl($v#՚bYqHV\,+.WT\.7 FEED|#"RVC1j4fϪ"XX[<ۓHx6ZY,j]}|`0@,?>菝;/ݻg6N*yhNNNI: U3tp쟺v L&ًϗɱkצDB5I$:OԪ՚`=+ aelݮB!ϏE$p8@. ;Ο?xhoӘ*+ǎ=UB""4hP[.9dHoQs3KRSSSRmdorr =BBxޮ=3w~e.&mNO_ܽ{pwې\V5ل +W4j҂I^$7*?_bxlxS'h`.B4,Vј!aa0> мt:RiPLjQ6T+ʨTrNglO \:K\.LJ3x<˥ 4=\P1ckA4-mQ` 4>\q篿r/]o4Zӵ$W+A\.wvvIZڭ?PbbD'3@vifɒ}G:v>"By̺!vL&pnBu4?_RX(a<cG6F",[ELQZjMNh(/,L. ㅅ Xl_yBVڤR J%zQ~:.CdCp>>4A|O˄1K~ k;^-:}y*سgX^{8 ZΒq;=ٳy8ȉ{ѵ~cl|zݺ٭[ßݴo=S:t}/zl|c߾BY@gĈɱaޮ._.ճVkV=|>֟ I6v??g/ݻlr/j33K.\(,)(ppALL`L(11K@87KoREdorraa|o$6dloĈj}W~HGԝ1r~~`PDgD>p)Ng:MXZZmhZ]MjX, C}N6 /hDꪰPY$ٵkњ0z}wMzZA,\Vvz99$wܽ{Zndz4MII zGpӧPV<~|I.WǏߔ(>>;y\ܹS?p}#]6p%%{EE L8ɤHčGV B!+-Vq}*=VZ>eϠH6qfwl6wߝZk ^|Ts.pd99YY%%R-2>ڄ X=p%iiFcIN7;נaڍN0 >&&p5ɓp~a>~ƍ~~~Pݫl9yŋ~3:vCoggߟx06 vsРu]g% $-H+6hk K'1ta0/yjhj:Ν;wݫϗHE'2RoR +ԶvUUcn*eVK yNh.ЊLVD  YϽ{_m֯?n{ۍ`0HeJ4\$ѧOT[P E3ڬ_~h6ېFC|##}!m]8s$͙TP IK|` g''vG99s~1m7NyZ4̞keP!jAfS5SzƏ۷+q8U`^\mVkHtrTQ\JJQ.׫Tn2<3=0 шl658,|}Y<-<\ة?G0FvZ, V5aEicEUdLeFEVـbQl M#~Y@= 䯊>[Vy&>7o#;v+YK]6&LWQRK$:T+5`yd P4árt D"WL,;><2WšכxA"dg0><%l6L&0XA. 5uW?t* =~=¡gKΜ{d09ǎ>EE"Yqeax ,. 뀂rgg:|\M#99N(d";&+Yr%KiG f"rZirמOٳX1SyD{+vN1mjI6*T'bDu>$-m nGUbcގ $@۫WO?d<@SCsrLQYR( h۫Fc2FqWopX"G"i4Cc?K(d!v{V9bq G^UED"X6`L&f}@\POr~/UUx\Y șMrM5;w*kEG8vٔS{R߀NSͰXiѼXY!p>!!ܐ^p0ƒ%Zq|~Zʹ6/s`>lWV)`#][^Ȗ-gМ& TojjE=/60dڴޟ}65Nڤ՚4FcRV*)zʠVZdX,Ea@t2Cri|>ח\.LJ2-zFLO>nUV=#g{V]d觸\>rY@\Koc0H͔@͞=|;j#pvsyzqM2*ʔ2EiL!`0B!m yn4Qb֬mO98ۋ ǯ_? 1έ[Ϯ[w A <v%Ǖ}K X {!KgŊC۷_۝X, ?7{vR=*t:FcDV$kd2BW*MjAVfڟ`H$>4tpP3@&jutf-U3lNt U͡Y,jG70l&jun8t:EXR$ɤHxt/RL&BA[W &B(Fb0 B!6@k,1\ɓwq:]Æu޾}NϭXqź\ܹI/OA+Oss8\reEBUYFod:4-P"H DrBko#Zxϓ8/סp;w^Yls?REzժ?9~혘ng饞Ǻ\3~~={GF֣Z5åә7֬Vd2LW* * '|zxL')fJxdODzp'niZ$hto41  >)ZURN"d:Xs{rszB!ɟ|>ߟ3B&G#+t"wĝ#Gr0~|<MbŒڵ)=i:F+ڽj4ZjJe Q53u:h5mhXe9:.AO$H$tI:6R8*Cx N 2Aɰry:nނ :A\.tS4EWBEӚlCRmh]uIO 2e0H8dR0Ţ`0t!v깇ɤ`?X!HQDt]f{pU_LOg'0 h`QK^P *]䡼ʠD.X!P\) TQH "PrSb*A!?%oii\^[_jhp9܍Φ&q:-->v^,RɅ9nݷ--ZRDpx^TW;vNoCf+AO@3<Cbb f(X&QL$S.b.gXd6 hDkcɣDt力_} :"bʲryj(e`@@aY.W\.*,zMv4wQVByސeh4L/@AR-Tv%((Р%_BDp|t5-NQ3J5u:E4Y4`бdZMɦD,j`(Y!:¥D$I&")mM ~Gy=%I3gMX@V5)}5p`/yĉYu۹ss=S۳ Ȇ?3f2d$IMMMӧO/(( AYѣG 8yʕ+|Y/^qƪ(Ξm**:ժ\lnC>tFh4f3Ƅ^QL0dZMɢ$$IELHM&>1Ѥ]k)<fҢʲ?F>0XK`HH0;&H}uh?P-PV@)R__KϔK{=ZzffJ?w_bOIh=kjbʿ߿˖-?=ڀ رcΜ9ܹs322fϞeHMMMOO']=xlHԍ7.\pxz `vݳڵkڴi6mӦMǎEoذAU՗^zwީ0a† JKK׭[vzUVdQ<χo4Y/^>NE~6FcqqqwnݺG<Ϻ¿M:e ~.^ 3}¾;w={vcc /PXXxܹFA|3 ܱ~((/i87 RQsq+Z̖TUu8(Ն'zV¹Wc{7Z Rrrtj.%'[X*v)!ɺLIDAT>}544;vnH/رc5jɓlp[JX"Isp>m۶3g{3gܵk(DbŊӧO=zʕ+Ǐ_pIh޶m۞={8{~ˆ,XV^qݻ RgD!zYf/Y{hnom=" yƏ>?go1cƄ7Dfz˿ђPxi--N˹d]Qx^Ϯ'9H;Rp6bX ޺S"JJ2i5 pPbVZZz(x_lYcc(́@R{իX~z":\?~uۼys=BEDRU5In|tkvkll֭[NN[o5ҥK VݻgO8]>jԨ5ha{-J6Qez~رGSU5|9rDwg-m,}ΎبFU^^g7キߌ׳fed֟',>t^odJKKʺuc}7:3ΝׯaNNNv;`ADr [$I'O6mx̙ 82dӧY{>}e-}1bD["nÝNBk2խ qC}W[n-))9qm={~w&9#OBϟEVmtNnge%⚅B0ړVe˖- &M6lXCCCpݻOڇQfciDtɬZN[͹s>'x"//OkLIIђ>X;;533̙3|qEo߾C/Le"pB,O2ŋ3f(,,4hPAA)So£/LUիW?38gI[njEyyCsrs.m-;rr}6\qܓO>m6x7[t:D4u7|z߾} .2[^^ީS9?~x"ZvmSSS(2qM6,e?ݻy^gLu}.e󩪺cǎ vD0afKNN̚5+333))_llldH-|{駃dIzJܞ!0dxqq t[?V];nj=ʜQ'lkfeeѿX4:zUU%vO85СCw}wZZZG/:uíĉ@|:unoRX{ V)Sbi֬YK#@,/e qYB\ dq V[[K ѫ,A8;z!׉8H q\EEEG/:nݺuqvng8_ /e qY?ߌ&'h3IENDB`XQilla-2.3.4/docs/simple-api/DOMNode_8hpp__incl.png0000644001725400016040000000747213273140075016701 00000000000000PNG  IHDRp!]#abKGDIDATxyPSOb*<H;}⌂Զ(`2,CeqV[(L[,#UJEk[F chPZFA ?{]:W׹_sn.A`:||| 2Sg2󳲲L6n(HLbWB+--YX6>0up   ЉDa}}} b8!!!$$$99̙3l3ρd2N ɂ+#)rZmgggyyybbbAA=Bɓ')))NNNIII<ﯿohhd2w @cc#󺺺իWO^&,f}BYfq8%K9rBO>f.]bqOOŋq???DBvu5j硡~RټXOT FXXaMMM\\^0,k555pժUV\I0**=33S'|;::jؐ;vX,D"H,fzի"(;;{llLogc>!|~ww7BhppPT{@ >./^XV߽{!444t˗S+3̃޺ug}P(bcn޼YRRR^^^ZZX\\+qs/233ۅi߸qɓ?uT?VTTddd|7n8{c>M jd2/x{{;88L{{{˗wr=<.+ #A3R}"jٲe088j.))Yt)~T*mhh˃. ϟ'''&Ip\]]։GGǯ/;n :;;pf%קT*>|x!\qF֭[U*ݻ뻺\pxZh64 MIIo𡵵uPP.eరܫW*\9 ɓL:u744s,ӎ;pE(̙3 bqww7]fMTT JHd|+W444]v$''ج^:::zll,77ѣGھ};B(!!!''g۶m #000)) !t 2Uٳgxxx͚5xw|l1 ~LS[[;i8~dbBCC'fw=E>t>t>t>tb3{{{7'AKKS@!D{XY9263)nnn~1 _xaa>W{OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO駺[:<d>I(tc24mh(lv/ϑ3 __sg0%3|2Fx/SɈ18{e#֭{ݔ =$DE VV̀i1sI ZY1BZ-1wI?Xk!dc|-oScO!֮a\̝;wp83_Յ )FFF̝KNFܯ2{lz{{'D    Vkoow j_ںWVVJ^{8Ba>A111Shoo#ɱx***6lp8f8`%KԾ>Ǐoߞ=Mį]&˻ }}}q&z>sLKKl'@䔑A> ,pqqIMM$T>mݺgΜ97ncǎEDDܿm;\|9==˫I*ݻP3fb\omm=88xq ߲dy ٜGR/tj͛l6QC}RA_pk׮mmm~@ HOO4n<>T*>/ -\P.rMMί  |іJT؜8qBRiځFcyDDR$'9FՆ[YYPBFL擡qPTB FǢODii@ $BOA|VVV< #,9::YŒJ"  5 eS:1Ŏuuu,bzFٳ~~~G'+ B:AV`cc# OΜ={AC>)*8Bx<^GGܹs磏>2JVkڲ2RT*6~mjb!L6YLhݝzGMt#"77wݺuGLOsG!\SY4Mpp#GJkUUFFFvtt466ر6JKK RT*._|۶mZju9Bbj1112 /?~X$!R400@[͵ZW\7QPe˖iAr@"nϓ'O= (SPPP[[[}}y>7h\_/}ŧ NNNΉCCCiݻ9::nٲERn+ JKK===mmm.\XYYhHH5GlOOJ<؊+ &4/**1cƟIFLs^Ԉ6;wntt4DF{8uԫpvܩVˠSҲjժg^}޼yT4o0g|;4~X'N'N'N>IwppFZ\\\7%8|||?ΝvXIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_31.map0000644001725400016040000000036013273140077016457 00000000000000 XQilla-2.3.4/docs/simple-api/SchemaValidatorFilter_8hpp__incl.png0000644001725400016040000027442113273140075021670 00000000000000PNG  IHDR#(q<bKGD IDATxyxSe?4I4kfito)JA (qTqQ_\ƙYaTpۨ#HeK١P[;?rE4s:MO'!MN~(4D`C0 .d9裏>D˗%z 0d磏>ڶm[yyym۶s"${.ѣ۶m[g~ Y<B0 .d#[fwqUW͟?7 ?k,^?HOoX,F_n_g͚q~Y9W c +kL?zG2._?z%e̙_Q q Ò%KUVZR/III{fXE%IEE#i&:>)D"omv 7,_vWٻwy̙KڵkΝ;wܵk׆af͚_s=7p{_q^{oAk׮E]}7t{G.={w}Fɷ555t~'1h>뮻_Ǐ?u.]JQԍ7Hvp+Vo5kArێ9wjk>7{#3yl;v뮻Ν믇B~/xkٲe曗-[L&r}˗\cƍUٳnݺ'|r$ ?W^yeo&s߾}k֬YxuvڵaÆ|wq:^w]qqƍ|uvNѣG)joo1cEQۿO>?\x;s]w]t]z5EQt'W_}b]_}?~b~/N$9u}ntL;(jӦM˗/g$D@RC0b]|~᫯:~;ܲe EQ7o^`AAAA~~SO=U^^N_nӧO(rQ_>rj{^yEy|>ꫯ&p86lxG222r9EQ(@0uo &HRN}ْ%K322LBȜpx֭?J*((ŋWVVr\.\xMntL;(.++[p!=~/[F&߿s.쮻z뭷֮]{嗛Ll[nnnnn.}-ҽ`Зƛn6--l|X,Vm/|>g~~۷ϙ3dzX,EEEgs]FȷjbmFCqFZE^{do6ީ-EQFԐLXOF!5X,֬Y^{56ll=Gf6ۉj*^___~+b  .` "^o |A/ =`8q:9gs'|wYn^Jfͺ{)7o_l:u<0VZh1c;ӟ/'OO/of֬Yjժ>7{ 7B5k]tiǏM7}E=裫VZd ͞={yίRS_~ &нk'_~9=>q`H< %F,6 !?@ Coȶ$|s=7w. ^?|l֬YYYbTrYb1e\6y\.;5-nJ$\D-A,,7ť \>$B%_dgz\l IJ&Orna/rCB`a/v#h7b1Ҹ|>'5%O$q8)iiiiK$g#ف礥.IMMC  x`0LN? {<r# ^o4xq:?9"bD\&!LPeSHIWqx)) Rl!9f\ǁ֤6gΜ**үG= NXr:}P󅺻^o \~rn58Ba*|>9W H9<G, U$xl/U$0!!px}><< dqIST%rty/IKXLd2b S>?Tx0$?~6)z;YC@a7v0]pv`w:n yӝRy<<s|y|~*Ov=I/pi!٢ ק޻A../~- OJY~{Е ^xgN >y5ltw~WuDytg|/;K$<4 `8` -)zOt/hi0 (:Qr<  (?_FNqIM+>b>rhCq"Fp!ql.WPN |!v<pЗLΖ az'KRb@ B!W$xȇ, xA+ѩtN ɗ'z ʢB!5'] "B <lx|~* SIFk4:fg[[0Ȇ`B\sBjWKTbR%!rDn(D;Gl/7}ʷt' SR 0 H \~OOu@iiii>?U"gf dii"rOJr߁ m&`p vɡ-dB%ϗMRVKx`0c"|N]3PH"+bZTJy"Tba'{^QZpx].rG^ QvNX\Ǐ\.;Ix"]\#B!W, <}r{j.~;fTWVH T3X2|!c4:fg|O BTVurR)EҴ>':mۆPEQ `l<~FyVK J%V EoR)˅tB_rܛ1lGh8,Gi;v [d ) P87ywJ04`W0h~ ,k֭gٜbS B!R(D$h2$X'y|A+rNRtu8|Nt!e[t ;X%q~ ,F`0pN~yc ,q:tlJrtjkI$|zt`Oȝ_nLWp7x$$%Ƥԝ6?W^oVsgΝuD"%_ziѥk]_ʕ_u״+nLBӍOxΝM;w6byD"ޔ)\R4mZay:)^{`uh!OIadBZ-U$YYL4@O0y;Br^S$'K*ŽId|Hz|@Ru,S,)oK: b1|"ѦMwv 촒KLJ%Qj4+KRIH:T9 G4lްgOK0ͨ.<9bJ2?{[o,\8c0~EQXl˗o;wK/ 9;VOZZĉ3fL_Y/)P,LgFiX:ŔE/|RR%˅W,?K6ټvng2}21}|d-!a~j>X~ۧ:B73Si@ҩ,.׏jk4'kŤYG ܓZ|նaBTUUP]]2kZ:ɼ`+~& (j˖c_GryFOpxOqYutXIK79FDY",wmlv@GmϲǽR)Sm!d0Xzl6jov/d?t=~Dߖ F$CgNC}Ze> HN_SӠvnvt>sfiNN <e(zmѢZ[f34wh2|>gҤS GF./XnoozR~t9;tmzz?J؅BTF7MO:Y4QQ0.^otuoFVDm/3bkZw;~\8eJ!iASZX[͛ 7 qy?.]:g2-㧜'U#X(zq[d Ҵ -HOOKO쓩@~LN?Dk <\". 6LuS;;m9#vFcZiApxe2iE'WUGf<;{4/_~O7zOf,}y A;w6uu\m]]ve'ZCvvzvWSC6XCrphYΑE' XdXsx ZizWwvO8Cb1Ҵ3D[tFJɏ\vNmmˊv[U󃶶Vz*1|5_Y,]n^UM43j|AcyYφ! *FA"ӹ|fP&<m^g,`"3I S;ƘNAnC~b+#/ dL0Vr J>j٠ڭ[wuR'Nv;G_|ի.XPs_zl i^6m;;˟-KG::t)JrHI8>$úPޟw)"CB!ʒ JtDg4:鶧gOήRIL$JT:|on6ӍeHQ* JQ|'#ɡjjX⋇{{%o<׿>g΄D_}uG--U3UUhr6BHWc߶Z=VOOOKOOEvfn3Ρ,`PR̝B!$`0a"f9r99:tf drj-d.=~|vEݫ[m ƌQ%z8in6==5k>89>|1dXXp!;\FV Mh^#0@j b1³ $5d#twL&X\&m4ڻflv|A' DU*L&Erl 22 P(:;?VIE"^NN:E/1,k暚V`dcǪK+fݸq׳~2cFɪUb~sfnw;S<9s;aE.aʅ谒7}6;%+K"[Vvo0X,FכN6dr鰞bf L&Œ B!xELO{wq_~]5 s;[ltv3<; Тao#-hLIa\.;<`׿,]:gM XlÆ?kxN72")씲;,F2zP8^:D϶$df`AT =cnm4tN&Tb;pz[8V/k,h24t\nwHd2%UUS I`_譆㫯'z8c׮%KyWRLp_\>~EҝI.fMM&=\`4]dvN_D22 (3S!P*2@&BLT Y<d7>a?L5u|F_NHvgS_NtT 1'o~h'(,WUWW̜Y'vn~E"o,(.V$z8`/^։ƕ+ڋ= kjڐ'2zz䨘Io!CD"QRYo0ػ]]v IDATi08,vF|J%TLKPS0dN`m`ptvZFN>R'k J%V(DYYR\RI J%Ac\H^>_n,MP d*,Ѥ"wBhf{j-Zn}btD-z꟟|駯YtHjp{zJ͚5wgf = drj-I(idFcf^F|uv:;$eSjiv6YL[J rr 1&oɒ CHxRtmm]]vp8d.VKU*IV8;;]+dC2zP Eki~ӓ9RczCIfeIU*J%VJX#p6N`PBim;v'1Z-ΖTJVKjJ%a`SH6:;mH(o҉DuuzSr QUUY5''= Xl+V|qu^~6 .r/|㍓^zQTlvLr$iV(bfdߛ=pNMfmFjRL>/(,J%Q*j$3S^LDO;:$[$i^okoZ,h4FQI';@3kyؽ`jkimv:} DF#ߵZ]mN\.2mxSO]C'z8C=Hׯ@rypH'(/WO_U?sf)^ܒHzV&I狊|?A0<&3~z.kNV6F7YY6;%wdp.Q>IG 0``p)-lh0!4EIrTώ2Pjug%=I/'Cڌtt@(Ec%7=n%GP&M:$bhk멩i _v7#C0qbnUU~uu٣?o~xc^^ n~?_]cW!ˏt@h{6)pX*U߳X9~#}ɤ>1=]JӫR3iRތ%'WVb~?޵`@xݺ&MMp{[W[''z8ک|atB.?ԹNgkehBbWM p::;㾅t4hS!HzĉO2 Ɔ#if );*,X0#km`$Lwj[=<g8uUU%S"ؿ}'>?>W.&z8Q8}/-O{ᅛ:% rs'NNuJ@O6JKU G?oczZ[SWs 0J!H&`dnj276f7HQTzzZqHQX(/.ʳHEO}Tej%u@#kjZ]Cb&Sp8r,Xle#9qߛ=` ]A>odXq=j(JMe)b:'+j48d _OtxWSdE"єfNNzqXQXYT(*KXJF&2/ĉ=B!0B9 ݻv5+F0ϐsbz|i-+VrmUNrhj26g͚{.(IJ}ry$>=Y=9Ow`PTð;;t?N[gU vr,VK99tB,`"i]dZnG5R^T$/* I)($ߒ07jge꒪S BnHtÆ]$;cՑ桇.Op?x}G R,\@ l40G?aXDf3.uvI`0LQTj*+7WF/ntr#x1w64IzC0&5hi #O4mKsEt:vW(D2/rى5 ;O`6:c0ɓg,x`r䓽˖sܵkNbWo]9s&mHL.;p@ry8]u}\TIQZp~'9DAY<q:}GM@dh4eeR՘1ReAA&ja :]wCaSs P}D 3 ׺}{Vr`{$;W̘Q"@ ]zҥ~|)vlZmaÂbE3 _ziqz:ryG ,mm=:]wkEnm겓>3SXX(,,$ɰ 7yv,w'Cp,` GG(LP^./W(njQ(Q #hh0!;eiv˅/$/woVۢvn"<&c· +W_\]]ŋjl4\y5T$z8#ry)BH[[Ng[Z----fRRj 0@/NǼU-w.VKY,q:.sÇ;j7]E)슊T p!M{I<*?tpGmn={Z0I&Oί.Q*٠-^ JK }_キS ݽ̞ YƦO*./ ] 0YlZN?EQ,3#CPd 0H?r@u?씢"rqj4`76MM&Ks`Sfh4ŊLza*yǎkjHss3&Oί*=,+Kp7zOf,]j>f>}꩏&M]-*^UlfsKYnn6t>_(K 充|Vj|{{ݯI$j4yy|WL Y<9q8~`m^6;e8E=nzJD;:&`lj2\~Ҵ"yQ0P^\I:pZR(DUU%]6&;[ @g>CҥyZ^ͳt;w7Mw95à "fscBZ\va.h((,,|5}CCi'Bt◊?/dgKq _\[۷Ge2Aee JMeF,'z? >7a QIIo^R(+ g .H$d4| ӗ):_hM(v5/YX{hDW'ҭ8X^op߾~VF.֩ifH,'pg6t:Kkk[[I@"dcr)3S!$x&={aeS.H3iRne27''=8iՌ^o(aʋbEqP&Kp4/ݛ!81*dl,sXA^׿s=Qo~܌0o.OV5kZYp!B&ssL6l6EQ<Οl (/( 5 7oi1Xt[KyxLeΦ.;)/WWU̘Q2yr>* I\~BwRnb+/OFIڕo<Ajee%߇'l|駯Yt6SE,\\3J=ryfgy2RZQh I<'ST BF70#xE"C55 ZmKmHiUUSVUb!$C>1@^QSRhґ"V۲cG`OKK877.퇕ht]{wuuI3y<'pC=vX\~Ϟ`0|޹۽lQ g)46Ldcs P% HEIXQT$B5---fd1EXt2/|+F d0utXo?w'jjR)6pʔ)S JJH'!B cS))5 90zom|>gҤ<22NI[/ɑnذ}Q/Ƽ<@|޽3gꢋ~gT*ɫ9}zЌF h29) S!!x< jj2tfҀ^,e)HצbFZ:HF`d"K۷74>q.8 a #aFcbEIrUITս`(LNa%/UUUUS"b[/7=5=ty0}x+~uo_ܰ5@.?cFFAQ^hp)ۮz|B#hj256MMM'=p4%dk;8 I&sK%$k*{ Xsd"}~?9d2923SVW\qXB=vp'Odh4ee1cTcƨd} ޵ILIa{UUAj*a͜údɬ:rasy7Vڵ\ziQbG /ei/pI|Wll4WW>=F83f׮;h#NZh4:vh L&#]{E/xKzzZ A(in676HF EX,f^weIPt86'$xHVO`_~ydc.W"_u8);)~'DReiTR=Xzzi#G:LFy,s-r=@8+6^525ko{%%uYd-"g{rCmp$%SVd3\SaR_hGY8mt_ĆS}! XLZ٦T3DVOCtℱDiiEErtDOJ omr,O{^{Q^,CRqᎆӉ@ jEENIRIXnw6ѣ \=yr~UU̙cD"ɤp/G"Q at￿/1;ֵpᛁ@x5k%X2_+1`0\_o8zThc.OQTNN:i53vl֘1B9t7n94wxSUT'-hb"/~G;,<5 T'vlp~%d< H|'>J˗2w!0)+>q{*.V(Ǝ*+;6Ki$H&.t℡\_ohj2wvbXj*yn+ǎ*/WeŸN^oǴ60vh/8Ůz5T̞]s=4N]Nh#&S(9eeYYcǪnjQbT[{]>e}ZmV۽4/.!_ 5}b>+eʔ>Xdd.%F/pX}tnnFG۴i89)) AN=Spt.*Ј$?L]ǏEI$򬲲2رR%NĨΓ[Pp`S),+7N=vlرY纠 /gMoS <` "6_zƊo&Iq8dw65n99C~Q-`0__jSwGtoo蓿_zi1$&KO=g2>zŲeX3Ʉћo^-2mZBLH3tuuz7HQB!"X6橫;f8vLX׉P(JK$袜y8Ж"qWKf`ر۽oQ[;s'.^< 5A..kꔏ%% t{u_}K't那GHci ù'WU̞]%Iaso?]-xa ׯߝ&Ao4ģbN/3S(  L&lh8|r0S#b\w݄~SA@sNzڰX̂9/+*` o;pGRY $(-UowBB !} Ƌ/2h4{W-xLdbq07xY|H|H';~Y\!TǎB<$7xHO|cx{o3\Ө,ΎMݶ;c_ѣ;le2AÕ wp8ZW߷u߾}{LFqbļɓ&L+01o{N2y: ImkbG$ܹέ4)O}7qHT>I!anȲ>bX[[ɾw8~6;\=aBEi.(bXi3nw`}RRJd,5k)*D>ܱc:+j7iU*϶AjYYxK/EPϤ_GqELbŊsJ49#,/W͛FQ<~P|obXnnĉǫ9~⯽{[SRR_ٲO_{}G7b1% $MR)V*jlS4a۶m%ݖ-VoBȣy@b}T[]|X<7'(r55 ݶf̘gn뿣(ꡇfop] |'1t8-%) T3ftŋ|_\yǻ>7s \H}ZlE%%%P(l2B!˗-[  Ɩ-[4Ͷm۞{9Fywvrk^?;E~ݝn\R͛)SYYU*U H$D(^z{!;zݩSRT*v{d?QeOw3^{m^M3޴݁W_fΜ=ue/>?? #sp8BQp8{nӕWrPGb0?~U}[[nӦG^{mޯ jE(" `pK7i1tP[[c}6GE9n^b(XQUWUf$fO{_|(ZrNۻw/IE+ow}'l޼`,\^_~r-__,Xo\fMW̙CQwO+ 㫯W]u馛ϟg۶m'C^{׮];u,Z~{bH_h4jZsw ywD#䱂F(VUTU<thۿP$#C0qb1ʮ.E(7 %M/vV?5Ajb ,S$%z0 AٻghѾH)nY%]%*\_uI\rkZBȞH\P[IJFӤxw~93Mۜ_Ys{<6|%P<)((p< ggQ98&+H '8^Rӹ\(0 _zo^?eÆ C444433B︸8 lܸM+qs<dvm޼y***_xq߾}=xJJJO>533SQQ1330Ftsv޽iӦӧcfddqƀ&e'Nxi>}0 [v?jht膴 BGO30T?v.cBL8˗]]]Q.YnСp___})77Fq}ӧqc"&500PTT,**8p ao߾511d ѣGw?h3ߟ u5[PVѣ7Ӹ3-ٝM:()3 q v[nC ٵk_[8.c&)hKh_uǎdjtZOp@}}};v9??+p8<1}R[Y,/KO5_Ԗo_JnncuqʕӧOð={NKM0lժUgϞ]|={VXadd?'0aӧ5Ϗ3ҥKghhaرcǎjxUUUdG!K^8v?ͥ7k2ȿ/_,_J_֭[dg\\\YY躺~nɛ6mBsuСC˗//--ӧɓ'u&:;ͮ666毂Fyyy;vlƌEKKk˖-gVSSuuuu-ZbEFF;vl~Ȩð;w.YF͜93::?L aN ^bWRRUUڪڽz阘h062626ڪAI4qypӦM_|wcʱΝ;wܹ={._<(((++K[FF233+**ȎBZ_ɓ')UW3_*}WϟK&--ظcǎYZZ2L^dd$z aW^533\z?NGK (++8lٿ|㸎a8 7'''==NEEpƍhF oeeqÇkhhZJ\`Çߺu+UUU eٲe8s8-- .8NtttLLL-[V__/ _Ky<޲eM@my^NNAQF6Aiޑ3 »4XhJlS(9h :DsK¬00l׮]}ڰaj6mںuvޝ$uuuDT4@ZGA2T*iA Z8a #110ooog *++ [v)SpOKK2d<֭[]]g?~۷o fH\T*ut:r\q{zz8D3Ɨ/_2L.{ z|K3@4X?+WRt:=>>~h^EEEKMM}Fcq~x}0$aPn}ѓS'K( >KrB{JJJ]]]zzy0PPii)eJ3opC.I3 A*BDg'uuuMn 1j¤EBn|DӒȲ`O:5|𤤤}]zUBW^EKh\'\߿G7d@!櫣P([ gi!uP;w0a²eN߹sŸqqq1jyU__N>]]]&:˗]]][__ѣQ40ɓ' 2dܸq٨Fi``XTTf`$HzzݻO8) eeeG zusmm͛7322~G7qÄjP)Fs!Rn~뛒rCi);ӧO?xBy}w p?kiiava}vi}(ɔ~2#svBRn<~BcccOI ¢>}tիWK]1o744hii]pqblիtuuwah t:= @GGdٲeWHV4cccw1KKKJ;vXYY>@-nggbhhqFoooYtOJq0,99J[[;..ϟQVVݻÇEmA 29ΦM,--G^.B9$t0TZ۷ֆ ܹs ohh lydVH!wf@!g2N fwaCdoVVV7n<|ƪU\^?sV*!/S1<<<00VEE+0%+CC\W[[[RR>1@OE`d2/,{;mԍ@ff&)@x?D{8.lpK>=zaeegϞщlaaPԩS/߳g9sTVV -R܉k{:wjʕfjB@Wdsĉ={jl<==߿7dȐ+V[[[={122[ٳǏۼAYM0iҤׯ >EHϙ3' ӧOwq|Ϟ=eee/^DcI3 9rEtOJq0lƌt:}߾}UUU s&{+)),aO<_xs}axp/.s֭zEpEI`M:`9sðJ4KAA;w,,,]TQrρZ<  C d\gwaCdח`$&&b`0كj2'l霄J0 qㆎZQ6+,`t:aLHpZ4$ d^2v45ks5 ;{%bȊ+0 CZLJaثW ?~ׯ_UUU+++%ee'v"͝F9áP__[CCwU4թݻw3gFGGv++r9##ή%??}zfYQQ jaa&˓&Zt-{:))?C$_|q?ߢ{R}8ahX,|}^]]MR7oLy<^mm- #77!n/._~?al:aYYY8s\ @ץRWW>o<^\\lddDP(ĉ߽{WRRbii~;`ӧ -haaJ&[]]]V]]-md{pu0 "ڈ0%v`vGIHE!q $t 3L//gϞ:u )).%% æMegSl;&hP,!kq2/{iXS7Nѹ?$UIޙܳn GP(ѣGƆVUU N\[[{͌QB8>k֬gϞ)?p01{U;qpOx8:o.))suuݵkLL ߫ŋ'FcQTw=|ժUÏ?~t >}te4,FbV[[ΟFtObRs FB9s`X,**a_|P{[тD8eXX_zMƖXSS#9%K޿ʕ~~~AP([-0AoAH ***#G| A ?*&ٻwoKK؆b۹s 8ޫW;vNϿ\nz.Y8_;OB.Y"MҋKZaGp֮]/Hð߸q?777//_ݾ};cJDxŅ$}-֑6 kꨉ;D ׯ̶:P[[۠ Ö-[f``.4EEEOOaÆ KP]]}Μ9>>>/^,**͍W[N) &ƚSN+}w/k7Cp QWW|M 7oNHHH]]]CCCdd/f;;;utt.]Z__߬e9^;bp?{Quu5Zvm޽՝;I/[,!!W[[{ɂ+ݓ]}~>?yd߾}i4UZZ @eƨ%}}}er8x 555'''Mtze ~F'&&KWW7<|7n }9??ر\ΩS|||Ze+,,+dAx@[p1 ;uT+A(mmmt ͛7Z 7o޴==ֶ[n}9ra'66gϞzzzs+FÁP (ʁ 9rwޚ b(FBB\ѣGB$''cg4ˌ3t}0 ںu~jjjYYŋӸ8OO 2dŊ跓&M~XLhSNe0gΜ0MRPPp 5k6~^]?~py+vٳg?۷yyy w'!M.^9rq&{+))1xkk뼼gϞ9::FFFDNt@є #110ooog4!?*ee'vb7nq˗ >}\E#K|r|/++K[[{ʕdrLG[0F ;J2.3B+uL(a."BW?4iu\GjZ| > ҾƗ/_2L.{ L`|ItA`X_~IIIe:tHoeeU^^>gdd١8z?$'OZXX6N/]/H]]=??&$,KQQBIz/!COOO4*quu5Jݼy3Nx\.h|gÁP4G/k߼y#bȏ p8wYvA=8Y8>}E8~qơFEkWu$\B|$:N j@-KĘJ3MOu,;p]$E~JwmEtxF̟?d ΂ǠRR;;;ommmVQ\\ldd?aHh 3X9 wo߾^:00W⺙P'r}EC!dlmmm ô333m;dȐI&w Wp;ݻw ~\ KOOrttttt\jUll?k֬gϞW?[I 2eJ]]ѣG>}:}&DxUor\/rBJni.40U &o~K&ԕr466X,V__aM^TXXXTTTZZڧO._zj <<S(3g0 ERUUUcbb?/^4U&(‹`TsxbQQQnnndd/aĆ~?OƍkrzAWu E YBuw4|A?  AƋ¢-[nѣYBB3ÉPSSsrrBr ?`0͛RWW'4:2?{ꥫ^__O؞J^t+xQ\7$:::FFFK.w'6쬮.yQu+~b&O,rɾ}h4++4"##555}}}t:ЈPqS ~jkk Ep֬Yckkbnn|rtLeP#7iN/:^:w۷SRRϟ|С͛7޽{??Тw=xׯs]zuPPa[l9tk/]㌌ OOO[.\P]]秣FZjD#)uSйOt5PӲcZ[N%L<̙3\.j1>~{5EE 6ҿ֤IԈ_,ֶx<<%ݝ;V C߻11v4bc..FtՑݻw1 q͖_>&&\tnmRmK}AC-NKSSHЭ[7RVsݻosr ^FGG}~cZj, 6|~S nƍc?Z7<|Bk"3ԩ{^wphWW*%~ډݻi@՜9u}HK??ɓm^Y,F_1 %2,,,**JSSɓ'W#::z555!!!K, 11K3K,ٻw/N_rFYRuMFƋoF lʇćt_l6޽Z455刈 ֥21iv 5-2ҥÇsiLGZ Xl2{l55h___WW׊ )-Zb"##mmm;6|p ֭[d{{{OOϸ2 ϟ?vXɵٳgO07::H# ˡ8Nv ppZkORNN?~.O{45U50hql1w֙m@QoT>{ܹ=i]?5ف@'s;oިklRwz%lB˻~ebb͛ougr=IKKU179xh[Pt!>/]ʻtT1cO0pmSq|n3uqǏOD}9)։w9݂`,0⁜Z<-:O<(VQi9uIlՕٸ\ފ)'NݴwlVt2##JAbS%%,*2rEP;0x m jNO.pie%s`iM31&;4YHIyl >JJ doĜqcE8*A+Z<@}953߿2rwww߶f͹ ƭ\9EWrym4d.cϵGڿ?f1¢Sjy >}b}}S 6q6\LH/ƒ|?66d uug>ڳ'ݻ/h(Q H~g 'ZϘYd-_~ԩ{>>>G7?wvX(ف4_sښ>}hl1ȁ;E'O&رVC]]mu9X,΢Eׯܷoq wyghy^^ibbsGhh:-dSN_RR5xôidE&> իO;8&;̚o/$o#7KIIUbbw-X𽱱AZ<@F9Wzr@њdj6W|;%n0^*֩S##O̞~pZkˉwEJC7s\E 5  -W]]wݣG{ePs??i:X%m+11;6…bbKۨk1bêUndҾ'&$\bGDL';(t PD^^7ϝ{Li#w8_᯿2ccCBƐN[JL^>֭cc-ciwl6ܹG۷_}޾'A@A- l6gɷsr 9kp^O9`dlGܲŇXdï]߶z/^<~DkZ<@*?מ>}5 lItet}}ᴋKv-_?Cc{v$$dPEE܁Z< yyii55U||ibMvPIMͷ?t9-={ؿ?XHQɮ]yzOy?A!Cz͛fG)WSQ={OUUݱc~HWw|w&;r~޹jjCSgpR rja55ߎNu5s4уTTRR뻛JU<~<+0/]p!Sii޽7suu :UG>rc,TC^^^S!=z<~~mG7nٱGYG޽[HȘݺQ Z<ܹGFFZsBvPXnnyy@2Լy߿ȈRPWb={QU͝;2$dl $Z<]_sؘwN,8@x: ƎWow'//*U:Y6?ַ>ȣ#GrWJqc.ٱt uuII7w츦pAAuT+sluuбcs*,[MMP##x.1.7n&ӝ;Ȏ#{PVV@'A8w M),l,-۳g#GBzP#;d×//4ȄX:ttԗ,8sA@d6:tsǎ ~8 ƅo+E(ƛ7u@2u8OjrrٱtH?hOuTT<@-s5ʂpۚ>}ݻEAAm:jt…L0 n~ԩΖdQ}@߾=ĉ}/[ԩ)Jӳ@n@-Oi%>4tlhݻTgsK?Q(S""&$%ZܹkN|R4w7QOPAn۷g>\Ȏ҂Z<ONNڵ_,f`AvDO͛\.0 b}ʋ)';'?e޽s'O%;ի?r!Cz-_>ٹiP#yWo͚ 0";N̙ ߽HC[gV HÇ%qq߼Y0zt66dGI@PVu۶+Ǐߵ5]jS_#lʾ (Gݟ:FڸqYK瑛[aÅǏ߻/_>W/#1 mۮ8pD;:zʔ)0v{KL^'|yP(ݺQϞ]lkkFJ`ʕ).=]B#;N%' 6۷}|EEMNvDxsuoY<v-w˖ϟ06bk٥ ?xʔ xytCͧ)(C6oPRrVPg>/3`ZZ#6oouY<yo~rt<?۷߃tQenIQS/VGtTvtrFq-Bb#G233%\Hǎ'&&4oM؆f``Bb0gϮiš yywNHx8s[/@+Z[LL{-8sf5ˆ^ͼ'C:V))9ort@;Y<@y>+V6mhJ8F: ѣ`Z(([;9;wsp Zf=ntu oYϞFE#ApMz^Kkݙw Qf-gjj{Nш0fLEBZyc]\It\;wΉ>~*HG7-,BKM[Z#沶F ,Y;l>ֱqΝ4ť9ke4n>}֘L66h\6.lm5?~ A:6wDkrv; ~pXa07oz<0pi¤gEFF|yn^^h }=6<}t~BCCzFiKh~ݻw_NQԻ'''ל3zu31PYYKYF-[6uΘ3o–5Y<=xZKkCʲ'**'$$y.(..nb~Avvc233srrnFiKhܹs^z%&&FQTۜ?׫#G.Nx4._画s"t@Y<;WokB IDATrNSs_N;wkGGGKJJRuԩWUU1C M4)%%I;Ǝ5J@@@BBˠHPPs_;qDzz@}}xϞ=mll)hbbb...AAA ֭ۖ-[Xϊԩ;돧O:uСC=Fv͍( 333w^|>}xbQQ>}X[[%|y7tc~Č?}ONRQQQC ٳEmm$$$HKK8;;n uXr)?brN!%%b`vs~~زy&]g0l_ЦclllbbRXX(..~M&۳gϳgϾ}}(ٳg?(//355}upp0EQ>|`2AAA>u޼yYYYG޴iy~~~E뗗RUTTTYYݻcǎTVV~{,&`0 d2}CtuuKKK=JQTqq+WzQ__d2X?-K044TQQyyVV?m۶_/+ٳGNN.++&L݁d=F]]='''==]ZZ/VyyyDDķU-kѣmrfǎ~44{I:, ^8޽-׮ ..l,O>_Ƭrrr_,6;;ʕ+3y敔4C{u;11qȑw2̺n?{w޽ c1t"&y> 1ci4FxK> Q!Egԩiii\\\t:]TTF3oݻ rssϝ;ٳEEE.]244EX޿0h _~˗˗/eddXeee̙{N,2tPVo.R?C,\8CC:sfQQw']`]US흲vJ\܆1cHQ^:t萪IIN=z 666wfEEEYg3_VWW333Yf|{Pa֗XnLQ޹sXrqqqnn<?.))˗E޽Y333~,)aMmtٝzsw>|C7kȫWML޾m-!zz^n&E1 SSӵkמ:uҥK111EDEEmڴEjkk)n񕕕sε{eVV/i4zDDDyyy]]//JKKსapgϞefflMEEE:cǎE"k```aaŋn޼iѢE>|5k^|dYn]nn[퍌~~~eeeMǥ~v'5kȑ\]ϓMM̙/^|TRrJ5]~f䜑ĉeK%%ڹ5y{{VDD楥k֬ٱc[Ӌ :TJJj***%%%?C-%% !!]F}ZEEgϞ_2zA_͛E{ ݻq~SWW1cB~~>bhh h]lǏ>ďKNA]%M4iPBʕ.jjzEѾۥ&S6moͣhP}},+##Ӿ;88燄:it[?,,a WVƮot(o7n zvuj !΄~KMM{WBΝsZy&//ٲe[V:IqtԾU|C!km:'EC' fvs5G^ٲesk EwͱcǚN6tKSڵ9[ot)6҆ 뭥5)NFmL)%ŶG!-NNuutQ{4쳓SlHH0gg޽ ưe?Bd^,VRrvu՛?B+ I߱#JRRcQHpS11 Ή|}Mt(Xp:-h4Ѥd۞=jk{nr?>/0hDAA…+V9sxjEFeeM@5!g9}zӼ Ex~~**{ ˢ-:DE)8pӧϤ[hE&''oիٞ%`̙NN1k֨[#EC[Z;t IIӧWޭ{Pg^GE$ڭEQ={.^0a=.jF8qb߾}IS]wqqg J!иW^?eW ׮KH mճg׬ ~콽"F#]@mH7vNZwv.HqfdҊ;w{\OT zBBu\z'Oz Ftmƌ3f 0bD߰[}RS#ԣG'0LW w+( ҅t@kyСԻ(*޳G_RRtQS~雥USѹ3[_+OSS~:~nnul ͰMN(##N%=EHm-}^| fqedmpbن)眩:::3<֭[/$%EttFO۷;7gΡ#GLw=1?H]} Zlva0{;rd1h;oMڵk."VYMP&yڳZZ#ϟ0~A344ĄNZO?y2}ưSV(*foEB%K׍ӟt Al}kHIh CsZ-#Isڭ+2BBƌ225BP6Nvsqʕ'_ϽtFLLm(*"b `nnڣH8)/ٵ+:$$]Uux7E:F\܃Νygeb2ENNES]Va_bZMmxP2lXā22tt:b![=;w;;U]׍LCGmed2vԔ'}P|byFF# 533w)){:##o<;,Y6`#7oJaIxW__!Czh)CsQ7ttF5WDDtQ`0\yzĵ]vpDV |…AATT55w.\6wWz䝚ރ utFnv*((^ijgϞ=t@,ڹw_ZXU:9͝7o,v錠/_OE\KZuu0;wL+~_tU㭰'UWV6VUF:o`mUII婔u,-gpqX),,;~jp9sF)q9AA".^КW{3QQ/ۊad2g'.ZCϞsŋcCtիhދƏH:~s92nM66"*څtԯV)*:ۺU5sۈ||[KO _=e4hqL&##au++ 9xhc ..TU۷@XXtQ|c))%K-܆.ukiy'Wuک}jߒ3i++kbc׷ΞE@ɓ鶶ff@ffpE}XvmHzsGGm33ELa~_}}C\܃ÇS23 ƍ`:myaa|}MZOQ`]ݱg&Oԭ> Z͘h N҅ڐ*{q xh3n[>ƸT﫬=}w> [Nmp:ujO>Oꢦ&whyoSRl18.]z|y8`M:0ȑ+zz^'kՋvi>TǍ-K #G.~prGAXX`׮Nݼy3`h&͂∈ۤC 1OJzlf_SSO:p^e+nV}ãF;~ܬsuz;θx_31=@aaKzzd'/>عs' )Gdwb-xW33%OIJϤ[UIs祹y S'b2^^IGG[׃tb2s`xYF|jj̞=REe閯֬Qvt$z !$lpCa<¦Mދ:w#]ġ fLLz>*BMMt;8pr6!ꪟ(!!kNkת9rݻO[#oysax,&&~ŕ'MD:C7DFL/62({⣲ֲeSI4b۷SS8d([EEEt `%Ko(޶m{@DjYޤs8uV8yw'v!"֮ ޻w>77'~g4mD|h)xxu5G --ޯ_ݻcEDFO:?0Nq%K/(h9h?lnT_b=q""ZJd]/cǖ۝tK^^tD:GVV"6ӧf$ ֛)v~ {GKݶ-r ..z<t1cpftGd2׮ IJ>~,kh`8:F?~uu++ 9纓'TUU7 U11!Qa˖s^ޝ?u\DlQnpED!d;TVV}];(ϟV |BmQs8k TQQ`Ď3(*;݌{ϟ@̝{!:ڂFn9x %![*45=ŃV 0b>|019ZPPrIp꺐SkU{lSO >Μ9G}`ĬjW$bl|O m .+՜9,Qؼy gOji++YAx:|c„]ZZ#_wعsNW}(:F3$Iw>}D&ߟP]]GڸQt!@77M0VWEeرc12:U `i^UU{U!U>"&&S*+kI1]v>p0.AX--Сa'::_KkF|ˈ3Z?Wlrr+&oTffw %%48ѣIeeIW֩&Ml-[n xh%׬ 22鹐ݻWm`p[qqV&Rl IDATRuNjk酅eV)hѣCW\TTIHWBBx泤C#QhM֭;in>iFڣZZΜYld2{壹h׮U%׺vr#G.Tnͧ :ttꪗt tPCJrp"Bƻw6n SVv}8&fҤ{cUUwwp u ]9"UdfF:[N/_bm„::nnxhYqw߱Cg*e-|)vʔ))OvMJ5k$(NqK.|I{ DIj&%KpPbd4IRRd߾x!@ͳ>|(?q:0kWgB33%-n vel]%,,`h82%''ztf xtt8CKwv֝;w VuKmן2EUKKuAA~QٳEpuojenkn>2"6F\-@GbxhU>}1rYM&z޼)5˳S'x {"ŹaTG̜95i`&GHZ6$/C,ffJڤ[Z8}:zӚ/~8wnm`R))QQh4ڒ% g3++@|Lҡ=ttCsM"i؎ 30𚢢K[p IGA:C\ee;VJHիH@GY<4Kiiё>}>l܎/J[s˖MMݤ;lԥ 85kTh>>I1\#Gs'ttvx xe|sZħOl9xw#$ԉtoͥhhBAA%K~:EQ4-77%r+>337oJfwvz2-@رRxKL&ӧ a?~KQ966c3 mmmY:::_'*RⳎ=-z8R ST|U!=33==I122/_ /DV-MӃ=NNM 牳˟>+!!A]]s Fqqq }=ַ21r"!2==Bŋ۷o'%%%''oݺuK222\\\bccٳk׮⪪*==իWo޼Դcp?؋/޻wرc_s/E4z'[pN۶mc#''E={ٕ W\a=dΛ7ѧ :ݻwۉ#Gd5߽{d}wٳg%%%{---e0 +|2lhh`=u,BCCBhhmi>S̚i`pt@7HH$΋?Mqna:'XݔG˗/ʕ+Y9^/''GCCc̘1;+++EDDxb~~Fhjjj/^`/$$DQ//w)IIIIOOӧԩSҸ~Xwݛ(.['##ú1tׯ_7q'HH e-RSEQTCtt睊75]ׄt{$%=VRr9y2c7ѫW:jeeźGRR_ѣW׷{7θ8 (**R֖2</))1335kVIIF7gOQTNNkX;hѢI׮}eh :92@K,~ݙcL9TVyưEʕMzz㚸)`0k׮=uԥKbbb(255*,,۴iSӋUWW;::RUQQ+++Y7Νkggˬ, //_h4uu:^^^&QWV+1[.77֭[FFFMFӧԩl_~Çcbx-G^ e$%%J bb2;fk"*څt񣭭ÇKKK׬Ycii)##c77vww744:tԂ TTTJJJ~<\JJJAAAB_صkШQGN:JJJzxxrss7z,e˖.ECCCUUUMMM ;;&d#..…n HVVbΜ1H@DWnzec3s-Um+O 'n2hY$77WFFXXXߗ{ѬY#hh]^(*:1x2h={[̞p^<۷UT^LY fp Unn6vO\[C}v_h}?בnvxhJm-}ٲݺ xz.l۩̓'ﴵ="LL._'03t4BP:ǯySJL'ߗ-]z|ڴ׫np?uꦻ>}DH|5fLq\cM޻7t+W `<"F;wn]t4f3>-$fo1ڵ]XWk޸g;FJJt@VT?$5lXogC,ͼn=|x-&<ʞmwwxZ$((/$4%Ess %Z\`lSñh4ڦM&$}|*߄!7Ê^xz.K:9s;99[T݋QO^+ b4559-M]&xSO^SfTSSi`pXIܹ;OysKhYFr~OYs,]Ղ; E{͝{/jz6q⠨{C)kת0L!ІaWNgXXHKܴ_-Mʕ'**jNX2ty yASS>,lՔ)ҭ|ӂnpssDD;:F>zEm;6{ۣjq bյk5kT<<[[{{y-RP!>W.($ԩ͵q̛̀wV8hQ_OOJzL:bf$,,<h0>|0kȐ^[W^^mj{wƍ3CB:eqcl_@h˗mYAisBVaa yP55 5٫{wɓeM ٰaFHHz~~h0օTtK>|qNɓW`嘛#8kG?TuǕ=R^ܹoH[{drrvy9.  ztIwD J_3[g{-|Fs(*J}P9…GܽrĈ..::;u%kEE11..ķ͙3gt߾"ff93CЄٳGYY3\5wWs:vu;ۣ>}g=}BB j_QQ:yA=zt ]y'A9^'++1{l9KiӆFE#0gzÆڣfI嫊3{Ĺ8`9#gn|#KK۷wӷow],2nIId!ѥ @R  G]STTI:~AVVBGg-f`LCsyCzyyMDĚ1ciquu{>>)ƍHSSM_;BB}B)7YYi.-r||</f-ZYolm5O&;GF Z9oiyJNN2<|5G*NVYY;g $IG5WFF^ffΝsI4FYYiHJlu>//7_ܙOUuXt=w9_߾ݍ&yxϛ7V@tm\MUvvg.,K(dǙ _վ^88D#(% nmݷoA;S*/ߗÿ0cLcb2kjI٣nx}5KKϟK%mfퟣc$77ז-HPE-,Nzz&5i矪מ|>5K:wnWX?~G.ZZ#HQEF}My䢢2IoYb:??CIC ,= 5kp-ԣGo<ʪ)(Ȑiyut_cd7_]]wM)m +*jO9;̞=ߗ_䷰PO{t p:۳ݻϗUs5ccϞ}`Р/ZJK$f 31񑆆qqfIH3gnWUN"gqj:A*e IDATWOs~JIiHN Io16"!!O:8fݻ/nۦC|rODs'/焭rبIvKKLJe&Ge\3g4߫ ))rZ~~m/^|$ӸNxNY|me5#<ӧ[a>7XY4iXt::t޸]:9i?o 7&Mrھ=z„Wl:tHVVtWKM}n!ILL̙bbBsï^}VQQC:~˜9cde%\]/~f-OĂ77}ۤTU՚ovG?1RGgێ F;6i yC@hJ))Q}}`z\s]?ZE@}cb N(5kʐW6{k\\CY\ɓ~crrd➌Kǒ$${y۷B4&--:|x?,SG&N=Zdޅ^|g`07m5`2$%ǩuzT*'zCgj_.. Rd˗_*+KO2 l **rryysݲɎԩ>DGTTӧ d^|gsr؇..pÓg83(h#مՅ7chGFtqTTr]x **j}|,iRByȎffj"#ZPlC &Yudg[7yR~4qb7WII] f`l=tzX4ٹHs*`SϞbo;-?8OUrp0';vw[/B/SٺڵH;)؂`Dib>}dE&&ni9LZbiJNN{5F_|IIq8&puu4A/ K:yr~n$B6nr儃P]?..ơ.@b$RS}{Mzz5ydo}}UU՞a~ dSאx zġCTmӸ<.pt|E#<:nzeޫE3FF{ΜyZXXUʲecY~}EXX޽dgפI>fݺI …dނ^|ggL1n[[Ks]*+k9`hC>xqHMCG^溊d8CCS\vrY &&~,$;d5k&^ H^gn[]]x{ttkƌlA==#F?NdooJʆ<4 دV]1bEEFYsLr N @t&qOdg^^<%hժ ڊ\f޼sIIw8Y#fmk{y@0'KYYqC*A/ $rrJ޿JJ*nڿ1ڶRN^IPW;z4 +Ћowߕ~dXVVp۷99%W_BBAA/\Xܧ,١xTqqe05;#qL' @y, [lO@/ED|wQQXPP1{k^^: *2v,>>di%%ULfuᅄ DHKnHHt~}yqq 7L&Y1Ż/4x: DOSR۶ݞ:u3bQQ٪:rÓ'O>vģUƇn2e ى@QQ%`~׮-R ++K_7g$?^ŋ$?' K23;qsRC9ЋW!߾;;ÕU/\x{ wB[˖紵^trt4R}(((o8\HH@QQgdSbо;w> 43Y&N+*"+>|:g?~z% z|);5qjO. WVV3r??{AT*=%55kŋ(,,(( --ЫH| ׮-%% SK,S11A0Drr١;|z._> cUU-^|)7^M6;N:ի'n0AD@PP@TTח?ރc)fu:21nŠ^e2T*u<'Fn6>!!Xu66|׈/+믻fݳؓ'͸uJee5APVhk>"**r&~U\\IO?:tߥKtF}d +x>SQQ{少#59=Vuuͥ<__{--NAƌ9t{WWk__{ y+*^SCPחڗDGAA3}AeDCgrs\h7 os&DәI @/o~aJNGzK^=k3a.G۶HKi ǧ5،{ݦM6 qE++(H~F/ =j(y䓆|&IPH\5jܷ㞞..A̙>ݐ[vv׬`g϶ra[(ǏKMͻ|9R(ud<ߡP(7oL B6kki99.C/?$$|۽{&GG Iprݴi-O3iKnni@޽0ى+АwpYq'L{6[,]:̙yF.C/P'͛7BSSs$%_;wT΍neeߘ>0(hQAn$U՞{psq)dn 2g˗   `Vx>pF%kךrn2k9‹k|^iJ7YxC~^}UTTI zzzkˤD94J$&LvڵW[\h;x m֫gΜw//N4-~:''''''..NKKk޼y-w3vM1; =F8Q//>>>d11᏾}wk3nݺEv IHuuS;1R!!o۷h&yÇ ڵe**2d'jLNNm>>>߾}#BMM8u ǽzRTT$BQQEAA!??_^] S;wC~M[7nԻgO/S0טܾ}@F0/ݼf a۳C ޏCCCAAÇln6ݻR\\L͛7+++ Ihh(BIMMmgt}CCCQQQ%%}AAX= `uYuBBBÛB\rEOOW^~z߾}/ T*u˖- [lR&&&'O$H@@`AtQRRbkk+''׻w͛74Jªd27ol``PPP޲"5fOh KOOgϞ...AhݻwkѢE%%%?߾__ھ}Zaaŕ+/9TFx8o3.*~|…&}:/;1 s~z:y<__{{{SΑ>}I6nܘqFOOO111ww;;;'''_-jHyy9sRRR;䔟OD``9AA_rWjjj6{!AO>:|=zB N<ٳ]vM6-$$ p P >|PSS3a =ztȑI `2[n kx ,߿߹sUnXj]7=Qm۶SN=x 44499-g;+Ɵ>CC42zvd*Ν=nߎRUk!'W1L]ہJ;ԻKTrb [>w{a0`G W^%"%%AmmmbbbEENd&9gΜg?kB ޽{d2=f*qq񺺺M6رCXXѣӦMc]+((ϺΝ; oݺ {ful]p+@' mx:::waP[faaaaaӚ*/kRS6Ĥsg8.h3Ok^KIiC@{n]֋QL&ܹЙ3TU{8ΰNݗ ~;|^fدwXl,IWXw'Oԟr˗WTT&QQQARed_oGWWgHHH!,,1KFFRRRRbbbaaaO> ˣ555&a?~GIDUUծ]wl-?;AYYgffjii2w۰aʾ}WOPP@,JJ/_&]F zSRR59Q~Dė˗ɉs~[}45=ZVVHn# ,WWI&9::֟ӧ+TWW[ZZnٲݻwgϞe 633%rk<,..6mZ@@@rrĉ}Hݖ-[rssorں:ݻwQ^^0cƌv\ؚسgvrř333sss#bڴigϞ1bG>}Cy֭[ZiY111۷Z[,//h!/3?3>>>>>!33M_rt ѣӫ0ߑ޶m[[9sfOKKcm }wײ߿{yy%$$,4^v^֮][SSL *wvvcڱ(p9=D[ML{ؼyg>ܤuxHͩchw%O>iҤ7mܸSLL}עEZ.R^^>g##cǎ999hnn*++-,,322viggWYYځ 77U888dggGEE=zȑ#N{Ahhhrr2kf4...۶m+**j lCAAA߿|;={AAA=Ef4O5AWR޲mUZZmgwYUuSO%:>/ũzTRR選|qqq޽:2`^J8/6115ŋfϙ35;V\\`0tzׁ dzs玦Ν;wXGX pd:> yNhXge"L&N7:[SSك)UM0/y v#$$lffK={˶Ǐٓ&D0 IDATfݽޔצƏd2#"pz !--bŊO>^u$--}}+$'' 2ÃuJ޽{7˗aft ֗ٙZZZ#zzzfYd=f ,8Z8M+4zoGWWftM?gg[[&ppTQٵk˶Og{=~yu߿/\P]]]\\|ذaw%%FjjjK(Jjj*)y뼼2$##ֿrZ&++uҤI#***'| Ֆ[lyٳgY7InjSTTtRssF 4,AA4֗_|QQQQVV`kf&qyS-Bن}'5 }=5[n܈46R`cǃlubc֣_ܹCV)FJ ~QXXhhh(**5 qeWҪC.Yr]*..kذ&&!ׯ)//d=...^xcuuu:2L <==uuuedd9d2eee PPP`PWWyfyy^zm޼Fhii9ӳKAnnnkkkkڵ555slٻZGg[[Lee#2wyLf8*]^^ٳD] &yƛs!®6ݢǏcW6޶DY))QR2𝒒\]]݆Yrss*++.\(!!˗/_lYddVnn.'OLOO)))ݵkcΟ?oll˗7[6((O<3gΊ+XϞ={"kkkYYYVFYkntݭL.\xtXέ %**bd'<<=F'BX7򊨨 U;*8[p{}v*c 7Ww 4[d? *z֭ӧOoРAcM]{{{iiŋhI WWWUUA9r$88...fRRR6mڡC-yf 3gQ\\:x1--#FUǕTpt/$%%W\ٚJ`y_L+V)ٳ'`qFi`WZY]};…۷. =@FFFAA!!!aÆUUUt qMMM֊Xz5+##CIIBP(ɓ'geeԟ셬yb=խO.BQQjΜg>c0>F藑QM5MMFϟoA^SVVM0@/'PصttK|۶il)ziiӧIMwaæL2e'''998::ڶPY]]}JJJ/8 !!ahh8q9r~˖-7oܷoߍ7Xg._ޔ;B$;H蕤ك4y͡g_ϟ"&f7w.N@>>mJ\] :?J$N]z{0nXm ]n$]]%|+t:޽ڊxʕ+[sk:u`>~lNSLKK͛4ǧ݄d²bQ对uUU|P:Z\W&/^<p z${2Y/~R:^5޾ͰcY^X 뒗?|kvM[G<ܲŌCȌ/2?qĉ'-MNMNKNMJMN+-"gO1]]%--mmE--<˗{d<FJbwbx#x$ѦL:1!! w8tƍyfݣvh…'N߼f ?bD[TWciiប ))QmmEssE55>}d~W ys#=` Jœ,((nĈ~)R\\o_ţǮ`-pw۳ɒ1{paD&.r?\|뛘hPwホlר?ɓ(jk+vr X~1dg~(7xO&*eY/((m4jع+rYKpƲec'<8 f{q%%޽e޼ƒ{ff:::Jv꺕+n8,23  :z%œ3A)/JJ`WfUTԮZu52˕+v'XI8ы'X͛4NTnDλRdbλyye+8h>}]zd [EEv>pTήx[jcs}}U)-[6jl/>bDݻT ۋ/;u޻Z网n|yINHLާ(_x0'OvKKŮTJHncsIJ:鄄͛7o<.KuEWUqyhhsQ\■^|oh4'$|l󮧧,'ס 0:-[,?'$$|S";t!œ&::Ǐi]ÇWΝ=ۈЅO~zijʷru#YZr{woŰ#G,åfj{547mm޼6YT t!f8ѱ;67BPFx˪UqyOߪuU-,ik+".ލ;C'&;v.Lvh:3`d.x<~#8^˗- ={\yi ;+&`L2pNѣ83 :$LDDhBcOψu&ͭCBZs&:\…'O.hQ>|e0Z )ɑUQ0a^.'kך˱7Km-m͚kϞ%?܀Ct2yy1^^{Μ9ӈ4|ց,Z4g5tzAAEFFA×[qrm伔f:o,/߸񆹹G?]f2l_- œ#4Ȑ!}w=={^=Xj,qOH^=|x?N iׯS==#DEMnes ܧ"cj#Az=~o_uއ kmm;G1LOQnGZ~FF'}Ћ'GXXȑ""y{x,֍??ʭ/KO_u+ŠQonn_m:5jHak;j 9zzJt;F߳ǟhy8/>͛u'F1޼}dxWR;Ǝ՞})oo?q QC󇻸> ڵk1db'J)52s3>Ωk󮭭ئMTTd޾@/\yq[{#; 4^Ld6~sX76xsţ% Dnn_gDff}f2bs#tQ T*=--5=99/))˗t:CPPNgddެ!C߾dKrhĜ7n:zY’(&&d.xn{*Ngն~ ܱoоl `Ӧ)fl,ˏT}}cĺre2ٹ8Fc`VY]XXPYYZ[[qututuST?ȨϹsX~nJ &~Cjlms[XXҀ*rrm[pM\\֣GZNgW#&lɧRSx{Gy{)*5JlpoRhX/y֭뭭Mn)(H+С_ɲ&l7Wa'GCBWGvЋ綰d3AmСmv]m:s`;55'O>yzF(*J͛7bѢ==eRNOvSS fλRk^077س'֭7׳m>۷sǽ{}|b\SQ!; ڋIEEӧ"⹪˗#Gm3g2-[سLYYoޫGǖ%..3wT*}ԁK'N]iZPWGKO/h޷o/Esڊڊ3gg)~u0@یYRZQeN:,*~~1ÇT Ћtʐ!}ZIVVavMEE ^+{wR ҪXڊ6L^gO1sNg uxZ f،t),,,y]v2D=&&]gh+W^۷׎\8O{ ;tQsUttR?PT?W^^s\ UgDp݅g0tv3|xW@@#t:ˮ_^^geqޔq_ڵWu=z&4u@`ZZ~p֬GXeWfҡUQQÇm_hD}+<' @ X$j|!'Ν׮*W=xpCDEѝU֋/+O"&;sNY#ׯ-UTbK!CԩTz\\v\;BB._~yB y@k].!ѽo^ &jjyoɅ /?ljڟ-UbR 9yQTTŻZJ{x2@"RNk^^iiWudĨ4KÆuw_ҽpGJ񦸸,OψwQSz{=Z#:xҪ†B vYsUU{Q) y OvV=qQqqe( EF~9uɾ}T!; %KF4⹄d}yYkN=q"xQ}j^ںuN6Ǐ{߼a sl+. C*V=3a]R:jj=;;.&ֱmWCC5&=nNǫKiiڵ^'ڎ"; ͥK/ ľ:U%%喔Trg:'V6Mi+z իOψ=zOnx}}Us+IF}=))y+G IDAT#L罩k7"7mj**2Yų ܰ&.4>˗l̮z Ⲝ;:up3m˗; [%qq٭ٸ5;ƍCv֞{6Mutd2$JNy3zH $;WA3bSڨsN~~9ARR}ȢzC߼ɖ^?~KtZWVYYko9dHS@=SSGvԉ :rmЋϟshe4--ΝN-loϞ˗sqreyzFܹNgL2{Z/chR{Bf:ڊ ٙuΝCf}.;;ΝKmvMMٳ Ћ玸,1nj#GjhϜi΅8o̥K=F{yEfdnܹCEtI/>/힙Yλ=QQ o|Ö7}kםի'`~aRL^<7e9^]gEہUՅg+*j&w]]^y FxyE{idԧVp!-:ʕW54mFvhMυ@/Ⲇ 9?86Uvs qv~p%KFw ߹֭!C3gΐ=D5󞔔 {;::zzrr]:ȨO7oaK/ǏREEf{MZѦ[QYǏ==#S%jee.GvNI{e漏}W7oKО=3ĺu%66 z䓇+WW_-yŋysFdYYȑ/7_n mλbeeYx#991RCzcޑ:5uj>plpsBYڼ{جGs\||v"?;͛__}#yWпOgU ޭ#dd޸?bc%UA1V֫ľ}3QRRuŋGLv@/stt[ظq:(#]]CNX`i9MنdFGe0S ܹ|h->t:#;vY**j +ŻTQ]]G3ZUH`SR:Rg@7v z`#S Pn q?(ZYnnN\0wP6dR_/Ȍ}}ս{gΜi04D1}+NN힜W]L}v$`o3>LcSSWt&=ƌVUsyG ػ"/LAA]:/!s0O{y֛gm$%{19.99O|%T~y6I;M '6+h-J߾أP,,]z;РA* ӧoRaaŚ5،$; غ1ӧ? YUyyeJ~7&&="˝;)|ݝii7o};b(盛t.Lv.մ󞜜[SC%t-*ʑ1 .^| -yYZ;yqXXĉz.")CEE:>[GtL&sӦ[G-tBhj ysϹAlGML45~YѠg:F|m-xOψIK66&jj5T*Z{SFF}%(ktB ԛ;1d{vt|]:sBCCq%; Gffɓ7lӝȅ^>1~~1?;zFλ1KQR qCH 2cG8Jox\PPʘTKa;vVIIA}Ԕ8YYqRϟsx,s.5^Ng̚eDJhy޽8Zg&MPzj*h EPc(wSMb(DAED"R(4)8K`v(ouװgﳟ33{䤚1[QZZtiŋQm~ڋ%$o5vZ[֛7trII1I/^dļX(zcOYϧM~\LmowӦ Æ󛃎奦ҕOuUލ~|kkmjl֠A IܹMIQx\QQم l!4ٳwr}GSS Z|3۳'NwCCU]]^ssg:]۷gU}haL*..RR恁7o=nay م.< L{։'ZHfԨyGN+nSCQdTfSN=]P-0~hhܟ3bҀ!C tz(b:CaWU|b",KRRlx <9o>O޹|bssmzهAcWm\.?rp0;whǾ̰ʻ8GCCHHHXX]ɓ ~())=)'[n\rXGG)HJ3?|r7n$FG{1vix!x|8+˹N\;==E}  zn:AAbxL{Vغ5[ytVyzqq΄ (ķel6ٹ߹s=Zm`]EEՒ%MLwPvbnMH=_5ۃܺƍa ee86+/NrdoYnժ-2 ;jj]L0k`mn-i]yOI)qq*&&vp<L'zLb}^Joлɓw\^[mWVVkkSod{x͝;ֶY=j_>K>߻bX,2non99))Cpŧ3yr#M}m[PYY'ndJ10Pig,mj[V}?*-OL0jhu._~`ߑ#-Q\\>~O]J_M]j,-{ܸؐ_r,EB("uGS|53O,>~k׮ҵ'~ {wիFFj+WM6[7ڥ-`ʻ65S@!]pqٲRXnh*))j?{x={ O-]zܹ(@;Z|Љ}C7q8,>ԨγX,%--Q\\^}gKJ^hUEܹOݻ\y!%%hs~ϰuyC33򞞞Oޖ%cܧ`!e:NNV[\x>uF,c|ZUU-:*y#Y쉈M媪]Po~ffZ\.Oի,aYs=qv#P!ڴ颲܄ _yXOKⳳ /\xrw>iE>yrٳM p8RR˗teԩgΜa:RG>wqj޽5_ySG{DxZJJ,W޷R,_gaS-nYYզX,&,H>FFj7߫~}JJؤ;wd]\lMܔKRR֭nHdX}j~m-wCCFwSx...Νkr$\]]y<^֬cyJXnj~fOվܽrȍ}\ѫz偳gLgj7?eee?}*=ztȣ295ֲ,"={*{x?ޜ\Ҋ nzSةSw{P:rd}jSɡCQ^^ڕw 1]]檼tH#F]dF,71Q/-VVklB^^ɲeǍ36 ev);p֬?&21PoVV=_gD|{8;sucWU ]zzhg~V M;[4.*/$&fm.ߎKɓy<էUyS62R1cNwTa;;;w5K^ׯ?tZܽ;x6/oed%'y[L24T36Vz$===9ΆmppҥÇGFF2RPu˹}Snlmݰgg,RQwm~;v8ot@UCԭ*1ŋOw 9KWii|c3㸸OQԟihhXRRBQTee{eeerr2!1116mVRR9sfAA}ګ(tR߾}%%%N:EQ<77ՕݻBTUU)۷,,,t颦k.z!!&&&JJJv:uꔮ  6pR'f)*((={v555׬YSVVV=ɓ'F|5ksss ϧGƏqBHrrr]/W":y]tyi?'mի/44Vgd}/_*45WGDķD6zz{F0ر[:A jT%%xƐm.5[OQԬYfϞCzpϞ=޽Zn]3f̍7lһw/^ 0ݽU%%%GJJJ't'N>M$$$͛@#EQiӦ;vZTToBۺuq( (ɓ'RRREM>}ԨQo߾ӧϖ-['y!绻[XXлT?:ׯ(t^^_;UCEtݻs\z-M@?'ryffڈm?pJGj|>|/\.,ih(4'jZ|AAٖ-[&&&>|GEEYXXxCBBg_z%x\{U~~ |~qq1ǫk3}~Z811`xhhċ/KKK===eeemllvUUUEi3JIIiZϟ7oϜ9s0z|ҤI^^^j̙ׯ{,[,##U,k.\(**<44QtڊJ ͛7BrBOgر 5j_=zA2eʊ+6l sccu-Z\)p8ggg777zS֐`Æ ںu̙3//>*SSuB-;aY8pu ^^Pk k׮U/^trrz}``WZ"XKO{Ŋ?&.Yd}%Çw~uFݻwÿ5I*))51__ܵk***9rͭ}v999KKˑ#Gٳ*//ѣGwCٻw/=^{ڵk555<$%%U{9˥VAAӧO711՝6mKz:vvvÇ' <(㣡ѿѣG=˫[m۶N511FRի`t"gg}<~~il웯Z$))umSkWxb~#%%^lh(Bڞ=.˖b:@KaQ%Ǐ^1bDbhhHQǏ,BB.]*++o-^ߧhxxx<|0&&ЫJKKn:77[Xd8QR#LkKBH޽xWWWBȹs!+ׯOOO lv9qtE[όZekoHSo-A11gСi V`t_tISSd̙3FFF|>TNNnРA111tR---wMte555Zuttܹ#t!:q℩ݻO>׵k׍7\4hСC!l6ݝ/_L9sk$LQE^^^S HHH8qb׮]'OtشiO lUo}Pccc+VTTT{-Fwk׮(**ڵKآ}ZByyyjj',Xt2i+/JKϑZRRQ[z(ķ#_TΙsWN-@!:O0v999W9vضmvܙqYf>HqqUrrrss !aaaق%700rG޽+<<<>>~߾}۷o!СCiiiOZZZfff[lGz'OINN_AEEEbbbII ǻu=(gg3E,$<} &&&>|eaaYY[\\`߾}cǎr8zIHHA$cOOOBț7o.8wttp83f̨BjSRRj&❭fU? xB?7oRHB:(MMEi:95%aa45WUP$F\boo_.taCכEꂂcdž&%%YYY92***66ūr8Tz۷o555'=zٳt+V۷oټyӷmF_HN6mڙ3gv=mڴ}Df !III <ߺmp_c @cXo;f L$w k==eqqNiSSXeٲÍth3g1bIpRee9y-_̙3ׯ_ #̛7#444;;ʕ+֭}J ͛7BCCC!'M啑oooaBرc}}}  ..>j(??=zу"..>eʔ+V%$$lذa+##cllnݺEW?ϟOYfg7mڔmggwդ$}}~hf͢\2%%3fhm !ǎ+,,B WVAAAll,y3,$/*%'w۷^}EcGڵ+V92SJ_t$_]]v#G ݗ-[zjCCí[ݻWA80}t]]iӦ5*?? k/q)}u۷o9r9}cR;;ÇB\YYI_O߿ѣGU=l۶):u***;;v,((… yy<((ho{+o7?}t[[۱cӧ&|uuuJ`mcR{A688XK'@]&M{dž/14T'n_/ӻua: ԣ|ƌOo׬N3an|o]ZE#ln%?~#Ǐ?~8YXXtEMMm׮]U&&&{kG155o/IPUYY^YYISׯ_־}vٳΝ;[/^hdd|r*6^{--7%{D "Wy Pw[Xl`: c/ZNL2dHII ݦƍGVVV|5ŋ߻wڵk<~:zjzCҞ|pߛ7GΞ08mСCܹE_~N+++suuxo%5*Bg˗9%%%=EQ<qnOIJJܾX ''KvFRRLKK1)]޾5==܂|]gCM?XXX xjm ݦFEEE0^QQQYY)!!QVVyfBHqq#tROOk׮}ƍ&MȈ?|p;vL .+WLIIy3D B qv_Ԓ_-_OO{}on L'h7P85RVtY3r{?~u,EE)**:[ft"vF)_fffpp0)**xSKff6)JL=nYH+Wډ\^)l6gf}zLgrR:}$kKCǧt6DRRRQJJ3(Iyy*Sj4#\hw&&"+BRS`-bk˖b:Kg͛olq Qh$;xNѶB~m6S=J=|뚺Js>}`.L`llCCD╕RS?bjhݺ?9~ Fjrywwᆲ5(hСL'hP触|^8ъ,W@UU2]EEPjv|S89Y?ryuMUZQQ&5ckh)ee[Mym6dȎS}|f\BPj֡|Lh]P$sRS.+񙾾3t`6Ig?߼Ɋb1 COXh7llmlSSsOsg?GM:`ajj]ii)ZZꄆƍiZ==崴LUo}|wtKEQw x޼a˗t(N@;V h_^έkrj*cOJ,9mowLe (z5n%6{{(2]B+0{Fb]zTSPg9־}{j̘CS~) #Pv ESU8P?44 zz<?335SюIbZM{D];_?V޺3w/e_~E""buPb33mCtv@ǁV98Եk BTVm۷V,]zFo⑭ogQ)G&O>S/ Xhat( xxJ]HDmܣ\QQL6՚v`|>b̘NNr8Zb`sZ 8:ZݺTZx?44g|mځTT1cI˗WۀLPr8숈x϶f->)){ӦKٱ ?tyN޸%:QbLh t++킂;vo::Z.^޽ 1**,9mbn u`wOSXX6yreF*1 Z<t"t+ 93j-ekۋȽ'LX4 /DIISJJ*> ݢ6m++ڵ5ݨ{Ğ9a,Y򭺺ӡAPNn%?{1BIDATѣÇo̙s\WWiܡӧEt-ήXDDYk<ݍߢ˗>}ȑY::[nŋ?uSuuիGϜ9D^^PPFF?55;;wsԩ֕hͬKQz?]RdY}j87{GGڢGD?qόcpx:I+yEsrTU嫏KH)+˿{Ro/ZtJUU~fڢC$0ݏF}²Az2 xB:A+QLt|1gΐOtjZ=/^dFDo-:/{bblWW }]C-:p+.]$lm{ծkkwlZݻ)GطT%ߑpx?52R۲ٹtjBtV ,],[vz8i6;OϞ}XPeԨ^AA5ZɏKFFyUݧ݋ϧ- ߷oJwGDw.3eʀY @GZ<@=:L+yII1;ޗ.=]2?[7SBBK51;>~,cg[Lt.hA4Hh%`1oމ)T b{jqq5ںGcrř3oNMfʔӧUb:Nn%&rr   jj*r8| oQTTxC ܆?sHN9wٳ J 1`pWw6PhJbΜYYZZjS xaaΜY"Sk^^bbq6n0hP6VZ<@SV#Ftnn#ݚ~]7OʕvÆ5PO=yvи kk;de%C-ٴVF-̦ͿW/UF75b{MvxsgfXabә~+y3FII]~ff~NNQNNavvaVVA^l17l+'( ܒÇϗ/ǟ;(! NS\(b:N8ת*gZuCu Ut+ׯ?V\.byy%_(..',>D`ȸq>GyNYݨQ葰g:~|}V9&]p;wrq?t!o+e.SRYkf['&~|9Ŋ|Q}'DLcaSß?9kֱ {{GܹC;v!/QQ/ß߼f}ѣv@SxѣTy6mcT J>0𾌌d뷒['N$!!VY#Daa{}j_?N)mdbJR~7'022!"o#Fgw}䤘 jş>ֶرf22LG xNdc11G4T@~Vw隸c*/UUo^ׯ=KHэ>pddxyFFjMI,3|JD?DDGD5eʑGRܚ h,BܺfڴEV[j4Ծ~o~,JJ5dgFG~Iee޽5FegB Yй,[p3k_g0 j/+|s9EEVV=}#k!*߻-t(s8l==%_Y}h6:RԉnDEwabY>>3 od_ڵOKJgg{X3 2@"thU'Z<WU'Nf6%!!ֶՖo_VVn66;ɓ~gFDfS5gЍ$$ʻw/_bGGz*'PKKq~fHS܋Zj&]JB% 3b:o+˹GN&;۶]|;ax|>_O蒄rr ?qTT||f سq6UUů8+5i4j?P8l\ޱc"ZeeUx4h.adx'Z1,/Xx<ŧ5n u4uuE={!DAAZOOYUU<11vgθ7B|XسavݾSB 11N\\F+ EŢM+۽ !GENNNJJ, +++NQ'6B+?zfBݘL߬:4*+;vRS"'3NNN>^0Yڵk :!ڢԏ?M3%$&j-TTTzrogϞQKRP .EQŕUUЏ?./((}٧O/Q?,$MnnƂ/_=ݻK͜ٷw6z.},S\S㮶fB|ǣ'p8b@j˥(N.ݛ .߼yW^***LF*((-(RPPも/>|T_b\QN_WF3u.IJuUSChpVZ<@B-eYX,?V 5RB޽{7wzĂ㡡/^h5՝5kVnnE͘1CVV&:T%%TPPXvmKftE'''OUzg喖+V3!pɒ%7o۷o%޽{>|:ydQQDzu:>ӧTRRڽ{wKftڵѣG }^;+Xa%%%^n:uuuOOK]~_:teeeVBPh̤O>M8p !DMMgdd$''7dȐV_[I```Ϟ=/^˗{]v@QQq׮]-{VmƥK455 !gΜ122*--%p\UUU.K:::7oܼyY}^EUUUBtҥ'x\}tH"!!wĉ]v8qʕ+ׯ_߶m[ qqqǏn݄ lmmW^zꀀBȡCҞ|GEEYXXT CBBg_z%x\{wT7&,|GGG3cƌۢFQTǏDNujPk R"Ĉ hcbb44uNMh={ޝc Vxgeeh!Б;88Ws/_q4JaBHRRR=jO݂3񱵵]f`PIIIpqwAAGBw]H6 RIQ :8I&*(Cn,Cqт"C]uPҨX %i ]#5ԫy룣 {- Q-,,lٲ%š={l޼;j=zёdoߢG{7OOzhea---xs_v߿ۥ˗/7l㤷8Qg׮]NsϽ﹟s4!{ܨNH`Oh= ˅>ݻTN K7(H cѣGE'4r{B '4p5O pwwH$auK3!!F =\ h@$AT*PVsܲ2b` +JOOOT*&rj g]vȵk֬mqqqd8phKGGU*.""BB CAAoAA`JӧO/^{޽/ v ˗/g2!!!iKؖ!W\a0`2IJ555fٰaCMM kuԊ+Db1gimm%޼y,F)ʧz/PTfyrrd2otJ܏>BkvS"#`0XR`ׯ_'Z[[-o4Μ9!\~~=AO Yb,R6M$J,rq!MJJ򊍍r6}ynATz9bKLL,2lQNGTbe}Ν;sssݻ>66(]Q??uYUU*խ[,ǎ#ʃ\d555!|A]]Ng L]UU!ڳF߿ˋx{6%0OxqQfurIfd2YO>Q*D}^^^RRȵkbbb{=D$D"YjUvvLQ:b577߻wbtf L&`0xsΨ(>oUo]7V۷oK${Zy2~~~iv{mmmĹFyw9λX& \.NII!Ol "(,,=22A󽺺:&/9577[s***ݔITfddp8||rرC<Ԑ].x;?ٽ{wjjoo'̜oۍ˗W\zON'..NTβ<{B '4>$̼*88tfmѢ iA$AӥKCII[:p \W;> MT2iSg } R\RoMN>0nmmWNg.q)O--W 7ht33\ԔF㟇Nݤ69u<8!%)-I`t:=W:0MJ'Sp6.$ L&N- }t.7_(ܸqՉ%0{B '4{B '4{B '4{B '4{B '4{B '4{B '4{B 'DcDIX:_Oul8827\l^b^QZZ*˝Ըsclٲ<-JKK8>>`Oh@Jt:]]]]OOROKKsww6yŞ:P(;::zСɼqƣGL&Smm[o(Zp Saa@RRRaaH$R(f\^YY_ ?~~ [lZ '{{{+**rrr*++'''{zzAyyXccpʕ+E"/_O?9sX?~~~999---;v숍p8111۷owвm8Q`u4dzBCCCBBv8*<.]ZzuTTTTTTFFF]]P(o޼h45V Bgنg +=K,Ydp駟&>F{;FeMwVT*w=<<Fl022B6e2tYcN[  ; *=kז7n>|LjBqÇ_xQTWUU,X8yTkk+ٸm֮]{ȑ;wܹsß_?544TWWd2ooo>uVbնm۾l+tTQQVFYY޶m7|ؘ{…& z/LnO '>wF۷ykdn'|H=4aOAAAgs6{G=8:N}N]?x_z%'5`Oh=b`c]IENDB`XQilla-2.3.4/docs/simple-api/Scope_8hpp__incl.png0000644001725400016040000006324113273140075016521 00000000000000PNG  IHDRqb$bKGD IDATxwX'  Ei*)ElX lwʝ]T<*`EDQPԣX H' -mr9B <>>a3fw;} @ k6@ j*@ j*@ j*@ A@ ݻt: OHo} >|'''~`_8 o@||mz*@ j*@ j*@ j*@ Q@֠zuu'zyyIHHC&LP"@M@C?D".@wޭZDII6 TDyISSUXXN߼ysǏ'd2ĉf|2B)//0a,Y2{ .PTF ={ٳi4{?~1cFHHcQ B „ϟΝF $$$?~̙3hsjjjSSSCCC'O?~رcwEKrʩS>|Mړ^cǎk׮1u!j*"L1",,ܹsÆ {E^~ 622244ܹs%FyfӦMFFF+VAYn&xbFFFk֬IIIa}222cǎHΊ,y%Dhhkkდ%K'NH tuu D"`x<~@X~)Zee#Mee--xEEUU}}U v@ p HmIJ2by9@h MUU MMm18 %--!C45xet–u b^vHg02byyCYY7ĦV%%tP]YYKA QFcTW7՗7+*ˉLTPQVR>|<0b1_Hm D_zzg_ Fuuy}}UĢ?tQBKJJJʘC"H18--E%==ssK<^YGG ŽԐ!ZChuHoo1琣ҋki 1}}U5##uCCuCC5]]X PS! e> PTAw wsG;54X8(XHJjvZXBɓqq:FFj::JpD &PS! G-땖֣cz SW57vs.b0߃ؐS[C7bMlll),-*)*&){hh@ ))L _R %%uUyyU8Y7y2?*p\ז[{qq5))3]O -R+ICm-PTTJəjkkhkB*G-B?WV6"bxe:2S:ӧSs|}cܛҞ>M[VEře!!>r8II#<S) AԆ W552DTKJJB>[UPP[UXX]TT[^N--E yHVVŹs1Ϟ}3qqu}T͛Kop%t\PPO((  KK DL kdafefW T@ U*t߇Ū22Wή8{US}W) O4@h!ojmbajelif*ocE3g^={L{ӭ皊]Ñs #6 XsUdr;U65ղҵҳ37p5AJJ33˳*KKʲx mMSS-SSMEEQWV]ѣOCyѣjjHގ>>.Rzi["ISSׯ))e? q:#G۝M5U`>}Q_ߌz :r& ޻lhqD)Jk*JbbO?~Ωp+(.Cү_K)С# =߿W'%}OJ*LN^VF`0  bK7lCTJ K }F_/q :KZR\Ԫ ``doohm5U`0ܪTGI22#F:81Z_A*.eecKQ޸qGMEA=(eۢE@(.KLKI)LJ^VF:ooodoo0jp@3 SS޿ϯo377rp0rrb``;456mr5EỦTU5>244w^%EE5))EIIߓ ZY98p*h򔔢ԢUU9TGG4536‚ )h*J^^թS/Ѹ27q 1)Ta Ǎ2~} T}mNrra[USSqF 52**._ .*j"PwӬ9s MM~[4#PMvEE1&NNf5܀*TWs߾MHȭ&Ȏk:~@Hlt).85NK"zHd]y א?믉yqqdrfp|NgdfegW2gZƍ2libjkW_"vWST6 .Ċ`\C>FMI)|6\f5aÌm5ijjύ|&@uD .Y򋰸͗.]V__53Z||n\\v}}æLfm7ק_HN.i8qM:r`` rrk8 k*JQQ͉ϟ=jgg#`\C>` ?dx^XX*7aٌ6NNfs%ԾeR..NNC+D˗nHXiqRR6ME))Eӧ[3rsbc3_񇼼C\\,&O6V 99Ϟ}}<='RUUnҤӦYk20D7뭄ڵª(¥(11?)/'¸Fqq]t/3RSİ 2eԩV 6ρK*+##RSC$6߸z{;JK Z0j*`kH7lq :W g϶suާ.Z_xrrRnn#nj1{wETM^}+&[n)j*Jss{``ŋoTUv2wMFijj{"HL2єa=Ng儆&f,GJCC X1vj'QZ%jMEl8sUhha{=z0-pHlJ? s%J^PS{Bqqݽ{aa)BуϷ2JNNvA2֭w.ޢ("(UGFf9:8nno )* K O%F2ZpԴiV"05'RQQ_Mz@CCa޼ :L5b1+W:Z$cDFSQz[` y~[ ΈϹw/ի iiq+V56]=jj%߹uu--5a9 "47 xCӗ-iD޲(b +V8n g:o~_\\7fɊc,qjjdd߾8OO5k`iUӋhBMQDOSQZ[)7n$^+--}$ zMҲec.En@uV@Bss+͙3\C--w.\mm,[6vFCT5k_Nq ?j`0/jxmm%~-v@;Q>qNcǚ(HTӖKMQD[SQ k?{u{g o ]WSC5vÆCz0W` _g<Qbu>-67S/aRS(>>45ht~ :T*ɓϗ.#X9Bp_S5^8z4v,M\iK(ZxxS$R…||\Ё(̸K,\+vA^vdt~>aΜ[ TKɡC))E3fX9P$Z.i h ?h W/0HDėSKKϷ"hZSL7ܻw--h7z˦ET4a@k55yPX<M"m'zT*_'OF1etkx#6>y޼۷OTQĀTָ5 5PGgcw& ۹ywUaU3g^֒Ϸ߾}"89]ff0PVF<|iddPO?+,Mmjj=r$2$$icVVVr۶5|.޼KX,f4˗7% E[64\d!okj]y 7n: ^ 3ĉeePMQ_|̫[il>i A\]OUh ,d/Ǐ巙ik0,,ezݻs/XUǏ7 >@jZ0!ˆó.ȑ5knݽ/+ܾ^__uݺ RRO/6L'YY//Ϙ&|*`0g,;_M%%w~`Ԩ7OhOF@?^Lfk XZԊqbCҖ/{G[%\(?&b1wrr2a]!CCG!IWZl_-*b0HddӉun[X$$re0c PhLjoƖsb;*AAV[_ tfϾS5|c-[\p; Ǐξe0IN[w\]W,gOݎJsJEEv(~G9ue[W Bͻ\TTVA"X믊N4ӧ,Z4o mMMN=+Abb2'O>bu##]W,j2w+kk+z{2cc<xx踞Jb (k״3mMM5p HI>|htqѢ ,p@^^ΝU$Rʕ7i4FU$:{Z[)Sz`mm ?^R>LL;zٷoe..;vLPyNFFxrJ^A `0m?h2bAAMaam~~M^Ng`0 `0ƌ1tiKIIumvvVtܳgz :ڳgjRpj(JT@K _K23+M:{v!fG 74T/*gkqq܂&L~[1h TVF*+kjl$} а[ssCw?fIEY K Z+O@W]>l x蓣ɹsuh@cٳh4J ;:Ψ999̫w}|Bw*+Qxjmxl;7錍߾e_ޠPhPP9stC LT&A }<,{Ӿ(\4٘m'`0ϟ ^75aA,,t^ _a IDATy…^SkjHׯ'l 6#D k'O>sT vzbZ5`at:C0'~!2}}tA=C5…XyyHwA$qYb1¸r%^d 2f٠ӿÇ }3~onMmjj Mް " zKz(+XY鹻߼مUT7_RRRbŊ.+((@s1,HKK3&--K,^XNNÑTSSا{zڟ:hb=C>x 7ϾYi4ZᆸtF&Noӛ*+iYYK~lݺӽ,Aeml?}*)y[2QTTmB'O9(,,())ܹ{>H$ѣGϟgEEEHHHqq1oƍ7~mʔ)ϟWU{O-looWPP}Q[{lolrիs5ډ'gWWWhii555{߄.Y`A[[[\\؆ ֭[ڻ^t111`Ϣ2qŭ[yZ S„!ӳdddddd~#..@ zA޽kbbB&P(꾾 %??o>===55%KD4\<}tذaoFJr^SS3o<AкDgt0ɚz$3; ;z d-={Hiii--ǏDs]xqJJJǎCb 򃂂YfvӦM$IZZϝodl-*\\bup!vi4O傚 PS{Iw4AK.[JSS399M())IOO۵k^SLý,--ӿ}Y.2,))XYYyu1112r~ƍ;w hjH$D*//_~+MuX05IBBۻ,88P]]ͱh9ӧOojjz!FST'NX[[G=zT\\|РA$b۷h! 3ӃF[XvrOE5nj*Hյ:p3̬cccNzz: C ymVV3{zqq'ODA"tzg=<<s4a.''epD5=;;L&oߢ rֱoccΝ; !&@YY\nn-Fz5 SN=q 7ϙsgsu_!EIIiՙ֭c&C[[7ZTTMLLssٳgwKYY9...))IWWw񉉉X,cv2LR;:&! c5kx{{w:V~Q$$$&O<| 4c3ѯttt?QBCC-,,jkkSSSF zjll,kq8ܜ9s=zT[[3nOż+]>bT/...۷og&1EH$&%%?~)iiiG,Wkk+~}}ʕ+g̘Q__1{ttɓY C} ˻ Lddd/_ضuy}ҥKDf_4>}###]L4h`Ĉ;wnllbǏǎ3l.B'4aԼ*qqJXÌ#ZPcx|DPedd8f5kZMMMϟgLr(((H$f^N{{;Bhmmݿ?D"ql&썍{=t萴tp޽{mZGGGvС%Ku߆cl)))Ux5?7x2v=fΝH'+"qܹ'O߿>jLUUeݡG SQQѝb׍݇c.*Kg%pWzjo!;zkkktǏ%ɦ+V(++^>mkkQTT\p!s.{.A,!!aff1;B:u*aGQRR}ZEEEOOҥK .޽)j񣘘XTTTggAkJKK7551sq;=; #;ª7/]zhOiiZZZxUc/s1quuݴi3}Ϟ=Ǐf}/g,B9%gϞEӦ9pa'QO>D"jjj`0GNr|왭6ӧVVVVZZF߿____]]}ҥ  ˗/WSSmkk`0sss?0j(R~~~~~~T*c+:bXp}G͟? >g.Cddѝ;wzXYY]RO vvv+WDsd/_ءv!ChhhsLݝ9ޮ8]$/ S>7nZ_6HPxSO:Cݚ @7ǩ^nW\xQEEETT>wc8xee={S=<y{uv?yE2vSSٽ,--ܺurtBX8Q(Ǽ,=zdll P( ZTc+:bCd6l@ѣh"dž!}Yia5\k̰0ccc/#SSeeeSRRY`ݻtEz9^wBk̙}uNG7{ʊ{ X8:>x`4ؘ$ CwGv8//dž}(}q;i$G8v8̘?DAFFf֬YppP,Qp@>}:|pj_$f2rAvܻwqܓf???kkkyy#G;v uE7VGj $USee%jcG/7ooo??]vq/G6qqeddPu'##eggg6džtdpڵkLoؼysAAAjj={/^%Qppss#g ~t f͚z|}tU$iĈ>}ڽ{wHH+NG_ūD2"BWg۶ArrP(244=zݻwTKYY3%Kjkkoݺ߆p f.v8ϟ]ƚopHW\N O]f``iӦVgKzj999=D Njå~A@^OΉxL}}}gDf L4hիWeOEFE}㷒mH>p=8"Dj*k c֮]!hWiiitŋǏ7VЊpD𰳳?yݻkjjЯnܸٳÇ:sLQQǏ_~͛}544TUUnDARt>ŋ/_\~}Ϟ=̗_tٳg/^`zsLI޽=z0JbM-+ .#Fvrr~.5kt'IIɯ_?^[[[OO\?{ѣGѹ4&7o 6ltttgcXf̖wwwa'Od֎:w(z饎*PW3 -$ y>(D(?~|k؝DKPUVd;PX]*++YB=****))iii6|p6y&AjS-,lI@.niY_qt:t먴߿71o1^/&JJ<{鍰jbF>=A [ۙY˗/gh8qbttt~~Ǐx<{tQ odOEBX5`mt %%SNyyy 4h…aʕ+]]]O>sLP9"//okklmmPPPӈ#lllݻp˜IIZ3\\\N:yݻwsI1?`0Oa]sq>|m5DH7o <<x=e9YYY? %&&&CB&23>wnm=JcMZZ(ii%#Gl^tJp r4߶t=zhehLO~|Vv\+ĚjhSjoo`.w@h4ojw" TWKiib"EQ"..ѣ==={_N|oCx@u뽅]3/`В7J/^W^!2rr2˗℄´*n`:r5%p%ݟ%>чCKZYYYmP}MI)JM-:y2UUUtP],+"PEFij9ޣ`0#-X`7߶Y7mrNgT%&%&54Ig:rO=Ct9BRIIIIXXʎS ^SGDFD|ĄijRԩV- O@Ç: $$~FGillLKK ҧw-Lٳ(hjY_,9Ӷ!Q;s97VvRR {y9QZZbP:緁'<}~&&}T(h*`/u}耇@h9󼚚dd$mS\\Rn!.)ZXM +(H@-h4 ^}WhǏE3ggĈS8 hi<}꣪*os 1%BWa--qLy(snzoow wf8_m"jRrwt oeX,f` tر&ʲ6KssرǦO9|xvV$:iچ ww3` ݎyxPv@jk_C،210PE7co!Α#!!I9T1aMΕ /=u}HjQ Wz9Ku>~W|8gϾ:y2:0pv@XC''H ܹ[Z(QQ[!Hi* &o\o[?=t}Jo NI)!!02r~?T'R Zjd`KLXC'%}!!>Ooo]Ow 6`IkosabW0ņ/[(4Ԕٳ__1y0~O`$ @xNEGEm:o6lR'Kv`b7|Tͮ'toe/T@``Qo02R- $h4ƢEu^m"4cҤSʷno[,iCC OlEVS>xz^re:201Ν틲_Hߥ&ˊ0X A ,_~evqM%ڜ9ҥ%o CC,_5`Aի˧N-} &01D$۫- غ54..;>~nـ = %%uQw|99I3 4(0p)m1h$[[׽a$H!!BJy9㢼Tx:A؈7 4==/:`|{~3`$H_CCYY #G"޽|}` ~`$H?CCs/JKKܿ^EE  (MRg_RϞmK?01DpLAJS?~Ժ\䗽{gۖ%A/ S6K74}7WZۖ%A o._~}`[~*ʀTm?O6hmi`$!101'<qcŋqc@vڬYTgW , "\rZOVp,;a$Ȁ h /^xѣBgk*8mڙatoU, A!B532NZ0k-9@jj_3m?`IG`bŋo~~aJJ2׮039? xwXl 31<c#, Xhk=sG?>WVoBPS̙WOvmŤIC?b1{utyD IDATڵ}O`v t XxIK+ٸ1)t@Mw?O _}+ApV뻘}NL ga}ڸl, %0@3ŨQϝ[oz@1.byfdd$>>G7۷ p**]v C󝰰'v_ήU3E`/7\l8Wy6Iv^p4@ɒbS 닺 63f؀ q# ޾ c0HΝ xmmꕯ&p/t:cG>1 F]]>.e} ή}*>s78ů᜜ܹWM|*# ,`kkU9JggWp AQ>i) krћ [>|iCf{{;aTΤ;\Ī &>~'OeddI`@WWߦOn=j!J響EjjrD\`&[<@:wvTJ"j*7 0n?}[}3:+aee%}}'/_>:h4ƷoeII߯\%/0^oauk(e`m&NO] HLLcQU11zڵk}T*]L a7nt^v@ (ijjqq&&&-ZtHpt믢|;4`A KJ[:/_>7ݺ|k,n~8uubNa Ǐ<,?b-3M-gΤ3p8 b,/#+//Qq8ԩSyGSkjj233{_` ))x^8ANqqxgM444,,,mDYp{xX+00cӖq<].+;FѪJ6%Çs}9M꫓SUyP<$33M@:Ϋn Ka &+ki)ik+o F(@x˔)TUutEu m@ @xT@xCjjAAJJJVX ŋɄK[&|ELL o߾677رZNN"yji`0~}Kuutk`0&&&N29 &}JJJ;w\O|/mTaa oYҝ Ǐ_2sĄDAX qqqG+b~´iZZZs$b!AۇzjA֮];|p HјdA٫l{&npj苒!OOOOOO~[s0v8ޡ5&Ogf)SC'Ý>5Ɠ~zS<O$ # \^^~qqq8 glmmeddO8&JKK5 ?}k}}wq̈`nܸann~ĉ;w***ݻ=JijjjhhQѣG9sP__b}}}t:]YY9** а|r555]]]__߶0J|}}mlljkkY qo޼$.O }pݱcGHHHOXhC iooﲽ&&&_W^+++?~uz!8'7K||՗.]9DFFZYYIIIݹs@8fg-]3{١-.̝;-Vts^V\I&edd|sG?*.]tٲeUUU\rECCѣGQQQaCSSwYYYpp0A7nܹsyʔ)o޼p¦k׮͛t@mm- %%%vvvv:tдiPPPCǏRRRxyyM8C=p%iiiTZfڵ pf zt8J --_:򒒒8rӧOojjz!z9VY\THq*pOXoXZZ׷\d2YRR200bbbd2?䘝K؝tMrrr| HCC :`@@s^?JR d0~gS{D"QWWʊiePP[nql2L߾}<<<NGzz:ϟ?#BP:|F033D 񣜜Bٶm۞={ʼnD9uT4/cv=266fc@nn.&0Yfpŋ@ʇzp޸<-X@$,,ظx=Iȱ@&PS!}G75B8'!C=z~̞^\\ɓD"`H$:Yv.cw5!bݰaݻ vuuEX^[twٽh4--ׯ_#2u'N} ())^:33sݺuhJaa +++%HHHM3mRRD!!!3gDw3 &OKK?\XXJcmcA?///;;LJ>{Uߘgl9P(&M駟D"''GRePpĉnϧbs 7˗/ѽh<"%a_GGGϝ;F_(*''Ғ>QXXhiiyz뭛7ozyymܸQ[T6mJCP*3f̘0aB(J&y{{6779ɓׯ_#']n0Fʢ[x񢻻ƍ4~m \c~sW74tKKKKKK_e˖i%Jrss333TDٿss3K= :u?5FTq.v=P%˅BTg(vϧ&&&=://Y$dO>dذa;Rcǎ/NNN OdҴeB!H$/ BzϧO?|P ]VՑH$Z`URRG\\RSSMMMO^xļ fffnnnׯ0aB``-75qeѭ۷oȐ!QQQRvttXZZXz.r*}roi>Qƺ 80((H,g,777@YPPL&S[(ڼy}ؖziT]Ԥ:BKuO/˗K$UaќS{$wnd˗/]BCeffxVq_'JC&,7)m=ohܭ(NwR`Q@?T]]}%-0y!=lJms#"}Ǜ>}:#S wON.__=g_}d.4 c8 =z%$$|bb0# b%fYSc ##Ο\.#M` r*@Caa[k,tr={gEEȩ}^Z/k愇O\~Fbmm\^^{]F oKN>yk\9IEԦT>,)̖-?xҥoSLV\\uPq ֯CNN|uaBB@P+C]QQŁ!oaލr*@CQT||AJ/G@xVbP(Ve=zoM PaÑC`ƌ,FP(ccmϞM{Hr*@_P(cb2.ԩ1>(/-3hΜql2f ѡX3e&d;Bp8~sW̐˕c;"6! ~ǝp϶4[:ѣŋ`;" Rlɒ׿e; bclؐ'+-v8@N0v-_ZZ|WjŊ\n||AkkUAN0jI[p755Y1j t#<4..#Y(8!GggGv8zY5 ʕEm0p 9HݿE=t=<9sCm[es 956&K+\]͚5fer{>:2Ύprv8O̙KLs|>?]9ܹ#O2\nggv8=UキoQvwYv  k# -* IioN~*qn`nWWCBIW .iiK-,L`?(־YB%=8;;!8v-O`ߕ+;fKLTV df0,+.# ya))!8Bss#[wDyȩl:wb޼'ڷoig /= 0 95O/YڴwZg2hmn \9wnRCar*;?>11Y:(7{vbM͟lØgk-ˑevg}88XegGX[ϝtV09u(,w˖γPivvprKh`; TZ/k愇O|/ڕyffc@@ryy=~ `8g7o>2۱ThW|}رC!HRҙ-[Kd;#CCӊ 7n<%`oUvt( ?֭ǿ2 U#||<=P^ttT*c+6َ_YxSeeeu3fE[cGP`؎xxw}fӶm.nnBBHuٳz+SttkugyH.Wlp$5={g;:cq*oe'N֊vI$RBHbbGƾLz/J%!|hd/C3Js32.88X55 B]lG SSXXVZZO'TBBhx5Ig7Y3βIB'TB\ܹȟ ??=vNJ>g+H"V\^,-gr*3~ZYYBTTR?sPUrΝyW9Em~NRI[O U_'G]"RR8$!0UT뺓p\汱S p/@OQ?s*ˡ(40ڳQҖu ⇄Kx˗7Y[ȩ=BVU5* C1vߟ2CNr Z5y3T׿MFDLtf;~HN,ML<}*r*7ob6x:ן,);sw}ނp D(:88'UZz73K11oGcN9HcccyyyϧgX,&lb8˫覞{vv=Wu9YJϧHxF1SfcZ.\ Tf 09ȩ'ݾ}{~ᨿPUyAA@ (--퍘;:t… t|`KKKۯb"Ҿ^]{ @/1TgϞ7oӯmll>mnjBHsssDDĦM^|ދ\ݯP[[{D2vX: 1S_źiz r*IN2E]ԕJI߶m6lu9;;]ע>|W_}Rj*MKS@/G}b1!$##Ç5k8:: 5ktttΜ9ZTTi&WWW vº";vl$r߿oaaann~@OW^!899-GT ! 555%%e֭HMM511$C,_Qm:ujĈ[nU-#G g2IDATvnuBP$$$xxxXYY.\PiHOOwsssppQ׾:-'F3޽{Νc .|޽xps̹}vIIرc׭[WYYI6mٳg㽼JJJJKK_~XmZ[[MMMа~>ښzJJ) U-TUWYn!dꅽ:4!=^tFwTG1cD"9|0!t SLqFqq#5]v5ݟч>hرcP(+R]]M\r>VK**ʜH2sLHɓ'N\.'3N룣|M6_{CEQw~wtNӳM!7nܠSBcHzU՟E>!Ct@ 9T*,Yqcǎ~XSSSRR2uԤ$Z ,X~=},22F[-3eʔÇK$Lfbb2` f͚EcccC$Ν;ջnmm8Ey{{Bbbb 04MMMwޭnݺzj}z}uҥKqqq: G˗Yݻ'OܸqbbbT\ho=YѣGd2򜝝SdŶvvv>T?2p XLwEQTVV@ ,((X]&M>]=͛7ظчm)񱴴NT=55몒/rϟ?޽{HtMmt 2d}TTT*X{c0TJHW\.OHH1būJk;9tPPNuĞ4~ XQilla Simple API Documentation SourceForge.net Logo

    Here is a list of all class members with links to the classes they belong to:

    - d -

    XQilla-2.3.4/docs/simple-api/inherit_graph_37.map0000644001725400016040000000037313273140077016471 00000000000000 XQilla-2.3.4/docs/simple-api/EventHandler_8hpp__incl.md50000644001725400016040000000004013273140074017713 00000000000000a6f8128e4b3e767710f3245dc7450c35XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__incl.md50000644001725400016040000000004013273140074017712 0000000000000029c76cae91884ded131afaa9054d4d13XQilla-2.3.4/docs/simple-api/classDynamicContext__inherit__graph.map0000644001725400016040000000063013273140076022510 00000000000000 XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp_source.html0000644001725400016040000006142213273140073020772 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DynamicContext.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _DYNAMICCONTEXT_HPP
    21 #define _DYNAMICCONTEXT_HPP
    22 
    25 
    26 class Sequence;
    27 class Result;
    28 class Item;
    29 class URIResolver;
    30 class VariableStore;
    31 class SequenceBuilder;
    32 class UpdateFactory;
    33 class RegexGroupStore;
    34 class DebugListener;
    35 class StackFrame;
    36 
    38 class XQILLA_API DynamicContext : public StaticContext
    39 {
    40 public:
    41  virtual ~DynamicContext() {};
    42 
    43  virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    44  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
    45 
    47  virtual void clearDynamicContext() = 0;
    48 
    50  virtual Item::Ptr getContextItem() const = 0;
    52  virtual void setContextItem(const Item::Ptr &item) = 0;
    53 
    55  virtual size_t getContextPosition() const = 0;
    57  virtual void setContextPosition(size_t pos) = 0;
    58 
    60  virtual size_t getContextSize() const = 0;
    62  virtual void setContextSize(size_t size) = 0;
    63 
    65  virtual const VariableStore* getVariableStore() const = 0;
    67  virtual void setVariableStore(const VariableStore *store) = 0;
    69  virtual const VariableStore* getGlobalVariableStore() const = 0;
    71  virtual void setGlobalVariableStore(const VariableStore *store) = 0;
    73  virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) = 0;
    75  virtual void setExternalVariable(const XMLCh *qname, const Result &value) = 0;
    76 
    78  virtual const RegexGroupStore* getRegexGroupStore() const = 0;
    80  virtual void setRegexGroupStore(const RegexGroupStore *store) = 0;
    81 
    83  virtual time_t getCurrentTime() const = 0;
    85  virtual void setCurrentTime(time_t newTime) = 0;
    86 
    88  virtual ATDurationOrDerived::Ptr getImplicitTimezone() const = 0;
    90  virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) = 0;
    91 
    93  // XQilla context specific accessors //
    95 
    108  virtual void registerURIResolver(URIResolver *resolver, bool adopt) = 0;
    110  virtual URIResolver *getDefaultURIResolver() const = 0;
    112  virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt) = 0;
    113 
    115  virtual void setDebugListener(DebugListener *listener) = 0;
    117  virtual DebugListener *getDebugListener() const = 0;
    118 
    120  virtual void setStackFrame(const StackFrame *frame) = 0;
    122  virtual const StackFrame *getStackFrame() const = 0;
    123 
    125  virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse,
    126  const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0;
    129  virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location = 0,
    130  const QueryPathNode *projection = 0) = 0;
    133  virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location = 0,
    134  const QueryPathNode *projection = 0) = 0;
    136  virtual Sequence resolveDefaultCollection(const QueryPathNode *projection = 0) = 0;
    137 
    140  virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri) = 0;
    141 
    144  virtual SequenceBuilder *createSequenceBuilder() const = 0;
    145 
    148  virtual UpdateFactory *createUpdateFactory() const = 0;
    149 
    151  virtual void testInterrupt() const = 0;
    152 };
    153 
    154 #endif
    virtual ~DynamicContext()
    Definition: DynamicContext.hpp:41
    This is an abstract class used to resolve URIs in different ways.
    Definition: URIResolver.hpp:37
    A class that represents an item in a query call stack.
    Definition: StackFrame.hpp:45
    Definition: SequenceBuilder.hpp:31
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    A class used to listen for debugging information.
    Definition: DebugListener.hpp:34
    Definition: UpdateFactory.hpp:32
    Definition: Item.hpp:36
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    The pure virtual base class for accessing regular expression group values at runtime.
    Definition: RegexGroupStore.hpp:30
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMXPathNSResolver-members.html0000644001725400016040000001051313273140074023560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMXPathNSResolver Member List

    This is the complete list of members for xercesc::DOMXPathNSResolver, including all inherited members.

    addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0xercesc::DOMXPathNSResolverpure virtual
    DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlineprotected
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMXPathNSResolverpure virtual
    lookupPrefix(const XMLCh *URI) const =0xercesc::DOMXPathNSResolverpure virtual
    release()=0xercesc::DOMXPathNSResolverpure virtual
    ~DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlinevirtual
    XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__dep__incl.md50000644001725400016040000000004013273140074021415 00000000000000ef7e4315d6c717476f1e6f42be1c95aeXQilla-2.3.4/docs/simple-api/ATAnySimpleType_8hpp_source.html0000644001725400016040000003422713273140073021034 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnySimpleType.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATANYSIMPLETYPE_HPP
    21 #define _ATANYSIMPLETYPE_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    33 class XQILLA_API ATAnySimpleType : public AnyAtomicType
    34 {
    35 
    36 public:
    37  /* Get the name of the primitive type (basic type) of this type
    38  * (ie "decimal" for xs:decimal) */
    39  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    40 
    41  /* Get the namespace URI for this type */
    42  virtual const XMLCh* getTypeURI() const = 0;
    43 
    44  /* Get the name of this type (ie "integer" for xs:integer) */
    45  virtual const XMLCh* getTypeName() const = 0;
    46 
    47  /* returns the XMLCh* (canonical) representation of this type */
    48  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    49 
    50  /* returns true if the two objects' URI are equal (string comparison)
    51  * false otherwise */
    52  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    53 
    55 };
    56 
    57 #endif // _ATANYSIMPLETYPE_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    This class represents the atomic types (ie, the simple types which are not list or union types) with ...
    Definition: ATAnySimpleType.hpp:33
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp_source.html0000644001725400016040000004174213273140073021727 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthDayOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATGMONTHDAYORDERIVED_HPP
    21 #define _ATGMONTHDAYORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 class DynamicContext;
    29 
    30 class XQILLA_API ATGMonthDayOrDerived : public DateOrTimeType
    31 {
    32 public:
    34 
    35  /* Get the name of the primitive type (basic type) of this type
    36  * (ie "decimal" for xs:decimal) */
    37  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    38 
    39  /* Get the namespace URI for this type */
    40  virtual const XMLCh* getTypeURI() const = 0;
    41 
    42  /* Get the name of this type (ie "integer" for xs:integer) */
    43  virtual const XMLCh* getTypeName() const = 0;
    44 
    45  /* returns the XMLCh* (canonical) representation of this type */
    46  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    47 
    48  /* returns true if the two objects are equal
    49  * false otherwise */
    50  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    51 
    54  virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    55 
    57  virtual bool hasTimezone() const = 0;
    58 
    60  virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    61 
    63 };
    64 
    65 #endif // _ATGMONTHDAYORDERIVED_HPP
    RefCountPointer< const ATGMonthDayOrDerived > Ptr
    Definition: ATGMonthDayOrDerived.hpp:33
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    Definition: ATGMonthDayOrDerived.hpp:30
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/index.html0000644001725400016040000000261113273140074014625 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQilla Simple API Documentation
    XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp.html0000644001725400016040000001317213273140077020445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XercesConfiguration.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/simple-api/XQillaConfiguration.hpp>
    #include <xqilla/items/Node.hpp>
    Include dependency graph for XercesConfiguration.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XercesConfiguration
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__dep__incl.png0000644001725400016040000002641113273140076020762 00000000000000PNG  IHDR2ebKGD IDATxy\g'-r(r*cm ި`Qԭ>nպm= VuEk+(h7"" " ( rfc!@&~d2<Q@ @K 8phRRRmGMNY ;fAv̂@;rss "saÆB .Ɋ+ T\\L/@OH(  ߱c_ss󪪪S >yӓ~YYYy޽Fvttldىrù|…O>dt 7oޜ1cƈ#ƍwaBܹs !cǎ&Dݻw3f̘1wDrɅwI&5СCzׯOvʕ+!wٵk̙3{}͙3<z͚5^^^qqqsٻw۷ocbb!'O$NBJJJ?dddOu֭{._<66Vz6loݺEC @(*((`ϟ?{fwn޼٣GKKF>}_eD/.X/HNN9sf^ !&L055 &L8tĈJCC}-\֖_UU$s-Z}֬YiiiEw3̙3}ti g]gffFEEEDD 0@l_~Y'..YvNYYD"qrr_:;;ӝ:u.fjjJ/-NEEE[n|WZZ:n8K33ɲ%X,ٙ...ҵ+  ּyfǎg:u? wG߿}ҥK׋ .))quu%xΎ~K6%jkk׭[nݺ s)_***N|~yyZQQRaa!44hEQ?'|B پ}2ŝHkkk޾}[.\Ao^RR} :I BHrHt1t``޽{_||ӧO5!$::DZÆ S2ΝhDž n߾~ˍ;wnPPPPPtA%&&3~ ϗ}yҥZhQttٳ ͛CllMC_Ͻp!ܹU\i&bl 8_WC7/?&=pB]w2Ug3-;VSS'.``8߆  @kx빗/')XXXmȑ='.\x߿sE.]Wޗ'(3T6eJˏ.-P,ݻ={x84U~-NeYn޾.lvh- @Kyݵkׯ][XXnbbط[qqœ'eO Ůi%~֊WDσ}5oeMLݡեK+͍4ҋꪫT\~kהѣ{i/>vÆQmоʗ/(xp||&@+J$<|X|jΕ+9nՉ茤o_@TlgCX[zZ6pXO/US4IVV'l{??LTN&+--׮͛C-T_we99\.[?{)2E!;PF,i=0{Kͫo$NoSO{Wmooѯ}KڎrrJ=XXXacdgQ"e8&%-rH$䓨GJD"1žII""[5EvZw *E %=OG^NN@!;4#~=ܨW/נ @=\X-4uxʕ >>;wNvugٓ7FF?Xj~+/2dsmhѳf gW,Xp݂}ԗ_2pk-r%'--~6նo_7tN!d'ЦIo;tqqqa>錄Ʌ˫/>rٳ-_>RX, ;#u䝫Ws##'f!bdK7CЄE6#D{$Ǵj: 9eeO$o zp.Չ2׮.\xaGGk;dd̟l6q`m4AEO*f*M<+@h4mH.uk~ϕ֭'<^y^( NtHF$%[X11[澜3i~mPP,d'^$M}55u߾+(z 6=+> p߾}?r^+WhѰŋ>OOZS#tp@A}iN5k4U.^|߸*B&y< ꃎBv-EiDJ㯾:lllsg8VWT![P՜oQPt Ф6R$M}SMIԧCA}`,d'mHFΝ{>%AII""[5O_NIA}݌  h6X$M#vꊧ@U\\`w xfCA}`&d'mHZuV#ᇞ?8U ق/=O?L"i!ewm22 Ϗkmv~1堠>hPE4H$ㅨ #GmʚUNʘ6-p͚C)o32CO- EZo͋{xOOv8mWpnp C@vҦHZפ )lkk+7)C!;isP$Z+fe>h 6EZSFFy뢢p{vIoFޱcR~_Pּwoԇ&@vP$Vƒڅ@4CIu}9g/搖MIy\TT![K ىB4"cɖ)}ֆDHdeΝ{σ},Ztp>}:k;Gg*ejQP Bvt(LEw<}$<[*/>r-xp\d2OtᇞZ &B4w@~s*+k23˕B @4]tTUUmFFdԢb@vM([pO^}ͺ.;.S+[Peju-@4]Q Bѣ峷ٳd'Etjy {}~qϞPV' ;iA(fl2777//kԨb^^x*_X,V^^Z"p䨾GZgwQ]gffB49rPv؄50EQňE=TUUEDD|}E"]c}Jmسgݻ׳gOeEEŕ+WoE/\pGU/:TPP 14 #%45ǯo߾MݳQP~<-9ى}9DӧO?wtw۷o/M>Sw Bׯ酃srrRSS===׭[p/g!$77WnI ɓ,__umٲ{YYYXlPp44f꯮0<=E xPgzO5L%+]o۶eeeɞ H -JwUxxq޽KQ۷oMMMkh+w̨x?8pwVCQQ|jkBGFF:88z˗/RݻwׯF^oblG҅===Tq8lɓ'===trIzÇiR4rΞ=p44f꯮0>>>>>D ^(_"`V1lHw___nݺ)t ѧ2}Nix(w4騨޶me{%J˫cDI܈R5!UXX(ՉGСCffСCeӧ 99x4Y$,,,!!̙3}FFt*TQQg(jĉߧ_XÇKjAc@  ȈQ6ϟ4i?,b/R 'SHBHNNSX۷p8'O8;;;99={wߑlF5U nhOivJVvuu}tGh4>k׮%''go5ugjj:cƌQ IDATW^sFqq`DʈR5!չs{I_J7I֯_OUUUmڴiĈK Zs4';)+++}=?88bڵӦM.}4;;ǤI&O=;;;;;{UUR}( I}) X6o޼˗_p͛7/^\nЧvCpƍ7k,U&(dIG7mԱcG{{{kkkB/o߮zQ2M~ٳgGDD$&&?~͚5k֬yՐ!CΟ?{ԩgg9s(< UfwB9sM</9sfUU P("hݺu~~~&&&;w^b@ hA )l׮]ǎcbb^D$hAv^866n@L[;g'Olkkxb@PSSl2'''++ zu%j[{1#~xMS ÖrJ)b8**jĈ ?\w3(mwBQTJJ !dΝrU^55!E"і-[<==OWK.555޽~[]]MU(٤0x=x4pW,BTw={633S2!!SMZTf'>(~vhYYYթ_*O*ˆfӜgvQfRe&˗WWWgeeeӦMj0tq(k,+>>>44TvA#;6aZlqWlرc9̂ 0 `gvQbMUl -B я +h7o_vgݺu<Oa}qׯMD]VVVÇ>|혙|,??Suա7 PWl;v ޽tKF'immpi𾓤{s粴 4f' Y,B;ڎL߲/ynŔD"uIii#? LoIb]68ٳڍJ߲b =-SǏk7h*N={ CHEeg?}Zՠi*;9u*y'1fЫĉ"{[Bq||fП$;8?ro<(JH >a`?sTFͣ' EQ'O  ǏK$V@_IvrγwCC?NYYeF3m*j;pu[`IzSBH߾nK6j)7 !fLٳg&ӓ+;7 ;fAv̂ 0 `d',NY ;fAv̂ 0 `d',NY ;fAv̂ 0 `d',NY ;fAv̂ 0 `d',\UzjiiiKAEEEǏk;&СC``>EQ.d`` Z! BmG}*]Dx4ŵ 0 `NX, 5lY,V^^^Uvvbmmb &7ىƍ hf3g8;;WTTB9]UU%H}||,,,%ʈ+)k^LMMgϞ366vww?x y ڿƍ_,_|^Xr[VTTH$JX,dddPUWW'7K/E/)z׮]KJJ={)))EF۔|!;}'3g|9s9={.秼CCÜ#FtRjjˀ^foaaA100'vJXԳg龆 A:99BUئ@ e'C]t)=޽{:N:X^^^WW~z777ss>|(vu1&&&,,AxCCî]&&&ʭNdnU?M/jgg`@ :/llllmmgΜYUUNr3oaw Ţ( bLJyyy] iٌ;6a-nr֬YfKtvޕPWvй NY ;fAv̢3;"i˸\P(vUe/t(m\#t`d',NY?}E0ͼ\IENDB`XQilla-2.3.4/docs/simple-api/classInteractiveDebugger__inherit__graph.map0000644001725400016040000000053613273140076023506 00000000000000 XQilla-2.3.4/docs/simple-api/StdInInputSource_8hpp__incl.md50000644001725400016040000000004013273140074020556 00000000000000b75a5c38f2a36f0597c9b66d68bcca95XQilla-2.3.4/docs/simple-api/Sequence_8hpp__dep__incl.png0000644001725400016040000000603413273140075020204 00000000000000PNG  IHDRpYbKGD IDATx}LSϵP԰Y2Hfdn PeƈqK%1n7Ml"()l0B\ 0`Boum]=s9sP'p@ 1X۳gEQ&9S*<K hmm=}ʕ+9L1))iF@MFsb  IMbX ChhURSS|>'*rT,J=:<<|Л7o=zd2eggs|nt͛7/[L(dlVI97*$2L(,,LJJJJJ*,,t84M9s&--W_ݶm۵kr\..eOw\.OKK{O> (ĉ)))k׮U*fݍW&&&~LZvƍIIIǎj@P B 3U*է~vĉگ*33dӦMJ%;_|9???++KRL&RKKK]iii)**Q5TUUT*?㖖o8Cgh4Gy/\ow!Z[[+**{+V?s,=ݡ}ڵ/2$]v-_ݕ@L&4nݺU"H̺: `Z+WJRtƍŅV [`X~I !!!?H$Jpp0 W#mɒ%nb1iK,Jij>{9x400077g6 ޽{K }}}L(x<۷;WppPdd$GmذP~xezН3!LHH裏t:`ggXbEQQ7rrr^yǏkZ/^d{{!!!AV9r֎T^^VW^b!䔔 wyۼy3A/BVVǣ(*??dd ((((--ݶmۥK5TժP(Vk\\SͫÇcccG /|`ZM%p܌tVķ~Ic^ذa]mbJxgzIrFR? B  $&&N ųg2FN@/}1X`3ɼ^&4+MMMY@ d#~~~MMM=@Gx<_K}5oVm4cZm7\ PYUV:lqj|iZwZ,6XX:| PY6oy)@EUo˯"Ifennv: p:[L6'ٳ" DMMfeeW>>q:鲲+>cvEzWf3IWFFb!E3l7odd,<|? deTi>>6=  ,b  ,b  ,b  ,b  ,b  ,b  ,b  ,j\bV0>? uSC"q& v0O??ҋ{뭷mVsb  %@OO\QƳ0À i5%Bp׮]9,n rСp05Ξ=+F#ԩS>˓J .ohha|MM͓O>)¼vsd2<URR=_JCDFF۷Y]]cDl|||\P,^X$) ^x1:::((n5 M bFa_xӦMiiiCCC/niiiZRD?>= $I~ڄl?~aa_|g6wITd$U*۰fBBBWWN]?uݼy㩧ڽ{9^{5$+**&fd=ښFQ"d2˗3N<.f~l(]0 6Nd2Q&@[[Mvݭ kvtt0388uuunhlli.{Ly [lܺu+ܸq#66 M9ZfO?]\\؉Р$ɋ/xҥy\p!̰߭l2Xw=Zzuoog?0]1Y S@-͠E,N%99nZPPؙb8β2u Bv ꂽ|FNt:ydN3==}NF+ꡡnAl6neeSA $Iv@0;vr޽{ᾒ oƞ={~5kj=, M }8vOsLXX` 4Mg- /((X~H$+.]cbb܁˴Y5juDDDHH-;InPPPpp-[FGGg6p2 O"n$54`pࡇӦ!׏b°Y1X`^P\\\xx8„6z^wz/hΝx XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__incl.md50000644001725400016040000000004013273140074020447 00000000000000ed1b4e848b5d46e9d3c28a4c36776526XQilla-2.3.4/docs/simple-api/dir_0d8d8d528984d74693bf008fd4d605d0.html0000644001725400016040000002205213273140077020621 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    context Directory Reference
    XQilla-2.3.4/docs/simple-api/classATUntypedAtomic__inherit__graph.png0000644001725400016040000001401313273140076022600 00000000000000PNG  IHDRQbKGDIDATx{TWoHb , Jh؃bJiP@|Rmqj}c]j( $3BP"d4p;ϝ;|̝dp y '8P7d2VANn|*))\r%++ZB7Z5 Op<1X,,,q|ҥVVViƏoeeoFMM {y>]|Y.rDxb=s=ZYYiX&^,))YdIdd3gs]]я`oopttܵkC[[@ ٸftC'11100055|WCYѴ9A05*jӦM`ӦM*jƌ«R/]t:z]%&&/[sBpÆ ԰:D;;;WXaggꚐT*?AgV&NhmmUc2N!33SF'Ƶk׮\|tΝ-D"y?jj5x zzz7  S('%%H$T痐0P 1Ќjkk%ɔ)SlBZƠ۽{@ DMMM?icN0++Jɓ'r|iӦiddĠb>@uuID"Ѭ,߽P(tNf߼yDz ^^"Scz cYXX nܸa^,--WXq-yfggGZT(Z Ԁo`fhe2Q.//߶mΝ7 ==]RYZZ:88캺:Ņ(chllƠ?~|EE֭[zv4#'ݻ"6ׯ_&***֭[gDArbbT*JWֳ{kk+Ϗ.**زe ԩS.QQQAAAuuuR端jkk:tѣG ,I+ "F߻w@ ͕dӯ{81c]]]+W;v,Ϗ}#<@J2!!ٙEFF8.œ|ͼO[n0a‰'xRT3gδht Ò<==G[o# ,Ǐ1<kP`By '8@y t1/1&P~|&,l_Fw,iק2Qg'Jw*1%$~ prrJǔ0ʓPX0L}Ls<=y71eSY:?1hZ駟,K(Nc<9ff~X|BcH&!:;VaZয়tdZ)/O1SvuFƊF).mn~DKH ZZtcYNU&xIak RƐO~'8jȴgsN;S„u Op< Op< Op< Op< Op< Op< Op< Opi1hr؁SOOQXp~=D~z39z?~̙3ɵn֭֯ڜ9sNsNz39]習p.^H[[[l O4'8@y '8@`d~ڳgOvv;QYl6|3Χx c8>|h1x,Yo<(Ǐ_ߎ͙㝞Kw,dO&A$pBXL <UefQ#a ̈́4j$u8~=Ls<56***4g)tlVn zC2!$,b IOYYjꛁyUU3!xniz-Oԝ:I(岵*U*uFF -x*UIcrੴTب-x^Ltd9Q8 F DN1} )$hi '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@*ӧO:<2)..~( 7?~ Ij# _xT,YbB8p""" \ '8@y{׿bvA{'Z԰X`颼|D☉=8料iNf=:o<\./_ ?g( Cː,ٳwh%b}q @8SFFٳ'OL=X,ѣGmmmwX~UG{zz,--oܸԝ+VsuuMHHP*`亇aXbbe:;ܯ8N81i$@~ObCdx>i4ww8LJ|P(<hoopWT8h4=hGGGJ$)Slٲ,5CRRD"J~~~ Yh 3NMHHHUUUqq'δz0|2bC.--Hg qJ:h ;vzl͛7MHaҤI"ط,hy'F"LJ@gZl=ɔ떑aj9e (l… E"s爿A;!hiiQ&L 6===c"+W;>~XAy|QQQ/gӢ^c͞= Gg %%e8@k Opr|;҈[fZ={~NJt(,XL ӮO`Դܽː tVc}}8cҨ0SNNMRRgd\eҒO8Dfli*+OoH&9JJꛛ\.IKs Op0$O;Fꢦ&00{ᡱ100? 1txAA@ dP( cOtk!͛gtxsC*22r߿駟ԐiQ_z%[[[[[[s FetxsCƚ"g褐`ԩӟ G``s/_>w܌ ڵk .|wDq@ooohhhuu5,X#tc` `h222bbbuݾ}[,Czzzv1o޼d"qr```~~ϟر922sZZ{jË/?{zz;>Fz" @@@u0K.߿?..=@$fϞ]TTD$(**rrr$ݾ}_}U-87ߔ>|X(fff9r$&&L6,C֖sk׮ KKKccc#WWWoogϞoذA xxxŕYf֬Y|>Ϗ\ aʕ+Q/ DEEYZZ?}Fߐ3 j5b+Eg\:dffff*,,(--ݸq# ͭ ܼh"ѣ1 #?P(H7 pqq!FXZZSTZZZǍ7nܸ3c'F#׮]{9bXO l@@[o_x=YO^|>㥧bX|ѱ܅Hn,Ǝkff&ˉͦ&jA2} 'H ;c+44or\./++۶m[HH?Voo/QU?ΐ۷Ν;`֬YliiOsssΝ\TTQRRB\14 ory}}C ?V!!!{mii1|_*Ƭ{:̛Y,{yy ײe,,,[ZZ|~PPҥKꫯ.Z333g7*ʠhU۷zjrU*Urrr{{ ˵kŪUCoذa߾}k֬rs!F1hRi&R9c xmdlll\tIj(5qO.tBpx}v\\{7m4r_hj8w|NUicc'@y t XQilla Simple API Documentation SourceForge.net Logo
    sax Directory Reference
    Directory dependency graph for sax:
    sax

    Files

    file  InputSource.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp__incl.md50000644001725400016040000000004013273140074021126 000000000000007cb789de1180c04890029134fefef7ddXQilla-2.3.4/docs/simple-api/XQQuery_8hpp__dep__incl.md50000644001725400016040000000004013273140074017701 00000000000000c13100e9dfd16864fe2d281df0101301XQilla-2.3.4/docs/simple-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7_dep.map0000644001725400016040000001360313273140077022002 00000000000000 XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__dep__incl.md50000644001725400016040000000004013273140074020504 00000000000000be768eeed0ae56a03cc34e40f4a7912eXQilla-2.3.4/docs/simple-api/Numeric_8hpp.html0000644001725400016040000001436513273140077016073 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Numeric.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for Numeric.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Numeric
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_23.png0000644001725400016040000000406713273140077016477 00000000000000PNG  IHDR%c׊bKGDIDATxiLSKJ[ Q)Ђ-B\&&$ M b\E14.#"U &I@6TZ n}އ̙990AZe^P!e^D"H$s"… ˗/'aݻw(H$i lذѣG$a3QazAazq10*ܫlV>l[n=ĵŹs0 +--u ןao߾=^Bn$Dl6;??5"(((H,/BIQp.dg,V ]es8>l;;;㻺e8)7aϞ= h4ڰlo2rssrssM&^| jjj}||.]g544Yӓ9yīt梢 .jDZ'000''grrҧH' m1bZ[[+**"""/^iӦ ݻ\.:88˫^)5NJ*FGG/X $$ڙSO'))))) \.(==}߾}=ą.^k׮/_(kמ>}lٲYvޭh:bedd =x022Bt;Sd"I/_P(׭[CBln޼GPDEESq\VUUYĶj q 22 õk?RBCCvn߾ HNNt?~PƜR3ѧ^?~EE;w ^5+b1yw>%F gdP(իWCBas҂haիWpbRy\~'ئn4=<d.JLLw3znJ$+V;v-@ С!JDf` 0===QQQҎ-Zd[؆؋---2,00066u%%%l6[ SdNNJIIh48e 4___m0i,"V@ '[,W //z.H1$X,,K(;N ܽ>nR\.u?~  CMQ(kkkdkQ;}MLLl߾]Rddddee͵(W@`0JJJJJJZȯnI C 0 C E?88(6HDzZ x5)00: A/(2 A/( ~^0FIENDB`XQilla-2.3.4/docs/simple-api/ATNotationOrDerived_8hpp__incl.map0000644001725400016040000000114513273140075021260 00000000000000 XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp_source.html0000644001725400016040000003444613273140073021061 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATUntypedAtomic.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATUNTYPEDATOMIC_HPP
    21 #define _ATUNTYPEDATOMIC_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    29 class XQILLA_API ATUntypedAtomic : public AnyAtomicType
    30 {
    31 public:
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* returns true if the two objects' URI are equal (string comparison)
    46  * false otherwise */
    47  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    48 
    50 
    51  static const XMLCh fgDT_UNTYPEDATOMIC[];
    52 };
    53 
    54 #endif // _ATUNTYPEDATOMIC_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: ATUntypedAtomic.hpp:29
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/classVariableTypeStore__inherit__graph.map0000644001725400016040000000041613273140076023165 00000000000000 XQilla-2.3.4/docs/simple-api/InputSource_8hpp__dep__incl.map0000644001725400016040000000144313273140075020704 00000000000000 XQilla-2.3.4/docs/simple-api/InteractiveDebugger_8hpp__incl.map0000644001725400016040000000113513273140075021355 00000000000000 XQilla-2.3.4/docs/simple-api/classFastXDMConfiguration.html0000644001725400016040000005057413273140077020560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    FastXDMConfiguration Class Reference

    #include <FastXDMConfiguration.hpp>

    Inheritance diagram for FastXDMConfiguration:

    Public Member Functions

    virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)
     
    virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)
     
    virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)
     
    virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)
     
    virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)
     
    virtual ASTToXML * createASTToXML ()
     
    - Public Member Functions inherited from XQillaConfiguration
    virtual ~XQillaConfiguration ()
     
    virtual void populateStaticContext (StaticContext *context)
     
    virtual void populateDynamicContext (DynamicContext *context)
     
    virtual void testInterrupt ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Member Function Documentation

    virtual ASTToXML* FastXDMConfiguration::createASTToXML ( )
    virtual

    Implements XQillaConfiguration.

    virtual URIResolver* FastXDMConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.

    virtual DocumentCache* FastXDMConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.

    virtual ItemFactory* FastXDMConfiguration::createItemFactory ( DocumentCache cache,
    xercesc::MemoryManager memMgr 
    )
    virtual

    Implements XQillaConfiguration.

    virtual SequenceBuilder* FastXDMConfiguration::createSequenceBuilder ( const DynamicContext context)
    virtual

    Implements XQillaConfiguration.

    virtual UpdateFactory* FastXDMConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classRegexGroupStore.html0000644001725400016040000001271713273140074017660 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RegexGroupStore Class Referenceabstract

    The pure virtual base class for accessing regular expression group values at runtime. More...

    #include <RegexGroupStore.hpp>

    Public Member Functions

    virtual ~RegexGroupStore ()
     default destructor More...
     
    virtual const XMLCh * getGroup (int index) const =0
     Looks up the value of a variable by namespace URI and localname pair. More...
     

    Detailed Description

    The pure virtual base class for accessing regular expression group values at runtime.

    Constructor & Destructor Documentation

    virtual RegexGroupStore::~RegexGroupStore ( )
    inlinevirtual

    default destructor

    Member Function Documentation

    virtual const XMLCh* RegexGroupStore::getGroup ( int  index) const
    pure virtual

    Looks up the value of a variable by namespace URI and localname pair.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/StdInInputSource_8hpp__incl.map0000644001725400016040000000051313273140076020655 00000000000000 XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp.html0000644001725400016040000001120213273140077017567 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventSerializer.hpp File Reference
    Include dependency graph for EventSerializer.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  EventSerializer
     
    XQilla-2.3.4/docs/simple-api/classXQillaConfiguration__inherit__graph.png0000644001725400016040000002110713273140076023512 00000000000000PNG  IHDRIgYbKGD IDATxi@MdDž"jzU/+Z+EMHŪVkZPQU+BE+ * ;Yf77A)3$'fI&Cq(Nvl@Mm 51.`IMMMMM% GGGGGG`7dWBJ>={ӧɮ '''K` 5A&6 Qqq1?ɜPVVhfff].4h=ZlG3fꫯBo޼YvmhhԩSJJJDsܫWS+xWaoڲe B($$DOOo͢ .ߪgffΛ7*A?@e/33"N<{ﵶ"|~ppvpp0F;vl~~~hhرcnjNlQ%BeeeYZZ*))'&&"*?VPP?zݻ;bDOӢ4T%hGN4i̘1{ILL0aڶmۈ^W244 >&liiQQQ).. '8 Koŋ:::Ѹw^{{O!!!![[ۼ)S͚5+((^---c2---ؽ1&&cBHHB(<<\!]]bׯBK"z\)66!z5...֏?.-- ϟ8'%%M20Ű^\eXXܼx=}t]ZZĉӉ{q8s\ ÚBaOݥ0lٲe Up@@֭[qOJJK,ZTT8򸢢1wMMMş@ q|{ykm }ӷ~`0^|)jQRRcRSS#<ZVV}9{8~u#F̝;RKv%%YN1??0;;h\,KM!N4*))?}׮]P__PSS!\O .ܴiQKKKrD;q_UUEܹsgΝ=joo0,55Kr8600p߾}qhhoCC sinn~zvv::: O!xӧOϙ3Ae0//u̙֝3MMM<b͛7c}}}---W6mYnx= >$HbVXɓw~7...];w@ ozJH[zxiӦgϞp88755yzzjhhhjj;D }}}55+Wr\{/SRRLLL322t_q||)iiiu~~>B(22G.$$uq榩aÆv~~~MMMጆq]!\)'_uUUՉ'z33tp6:::jkk=zIk8okdB¼y8UP l&6 PK볚YȈ*/v_VQD]H͞=/^ڰ#bB1pPFY0΍\nvFٵ9l;E,bAv-@ Kgܹ>_ ϝ+]sx˻On=@~ Kzz 34-00ܑsO( XvrrF.\(02rFΜ-HZmR.Znެm1 y@bnBΝ+6pz[1 OM5yl 55 mKJjjj ԅ¿;;!EſF76&> pp뛀  GO5A&6 Pdjl@Mm 5A&6 Pdjl@Mm 5A&6 Pdjl@Mm 5A&6 Pdjl@Mm 5p'!dW! z!BdٳgdW1AF9::NᄏuVАzުnٲecy,Hɘ۵kע7mtMMMgggb#""t:B_~YtOVtر3f7ᤤXYY~!!mmmZ_kx+ ÚX>2d2CBB.\pĉ .0vww'MPRRrvvɑZPPf͚E'''W^c㖖={,[СC<!`>ԩSk"/_q\z%K6nXPP` 8X{@@e[bEll Ɩcjjef33'OHYZ[[̒cbb;V|Neeeb >w[nb``нN}y lt:ӧ]&h3oɻSPP $J|˲ //oݺuzzzƞ$;;;UU!rgΜ󳲲RSS9s3cƌQFuS^l^NNΝ;w"""\r QUUuя=2Gl~`2Ϟ=ۼyŋƑ#GjhhTWW??N.a>n``P__O<")e D딨^lXCC,--=<_ 0Lw1P[[Bfڵ޽{ !&`ɓ'qqq .}vSSSqqq||nݺ;w~Dkii[YYY999EDDZԩS~~~jjjjjjl6;**8:uuuN|~?oF 5ÇmmmϫW&&&Đ[D;vD&TFUVVܹѣҏ'$AW|MccҥK. dt`0l6&/O5A&6>h'O]k5tv*,UUY^bޮateW^{X"8O6lh#^Pime)+ &Lx)ÅWTh|b uu۴۔2\x3h t <c(.v RSÙ3g/d26mUf-[6c(ed{詫kLOر뵵L&C "LՄ3gd~$b!F#>DGGEX d{\t7>Fac ŧ2˗\';wwm-W([d*>)S d^O!ӆ?::4؄c0>>mLN斻IVŢؤI7~d49|6\P\0{i4嗟ȯk66SL >Cݿ_Q,;l/X`--4nH%ְk=!d qk CA?|c8[N&1mLy``h=t:MA;zy=4裠d0%۵~`~f/ջhnu'|Ed~8}I!8-i4Ʈ]犊dl/_)HWb+M!EE֖-(Md2BL&*7wc/)5o" # Myy!KM]kii8q@ u F =d뱲pu í&ĬVRb-[6ðnll?~xljϗXX}d o>A5JYAYSӐ?b"BF&&](*)2x^ yժw@IDo?aii{&=͛O Y #M]]qϟscb<xl:mJJjll]Nv[w"/޽+V|@v9d{pz;~{^8pkvR r5k̴e3r+#xÆiTQJ,=X$'nݚfk;]"j6;nhxرd3 ÓPy.8C)l̙.^ܤyǁ\vdk&^˗ROdgۻy m25zxľztpR8k/..0>$6i+NKK5!a ;65aw5Eyl#+ɳg>!UT}zu+!d;5@q<22 `#,, ~Q. ˡ2n(OiSJFFю{z!tv 6m:Yc\ˡ&pZY=g同8{/=]  =@7kc𼛊 tvvZXX87sL'qE}۷oM]hW_}%!>>V+ `Ŋ Zpa9.-e( kO{n133sԩ&L8~8㚚!Q۷o3]v)**IYQrr̙3ESLMM1 #Z>Ӹ8Q/]]ݛ7owonn&+8r=<<455 6mN,3))\CCc޽] a4iȑ#,XETrrr]%ޗ'gy(y<^PP1cx<+s۷iiivͺ%pkIcپsN>Ԥٳ$ЫWZZZ>\WWd2[ZZ$ Auم[n>x@WW-ollTQQy5ы"8NOǥaaa2\nLL BA(\x>;;Txu$}yGj್0{iii"ʄM2l֬YAAA=8F.:;;߿" \B<b{.aXssP(m Ö-[`0\]]Hz+**n݊xRR D[.x<{.gzz) r$ʼn'DKKNN>ޥ8K|$}yGjPNdggO>]8qbzz:1\{/(kB1zO?UPPxEfΜO̦qBCCy]vN'N奥eddH_~1554QNyy̷nݲjkk{P(-Ԕ8GX.|ɓ'w@sssėH~GJOOɓ'D;TWW-&M{%c->noowrr .**5bplҥKjkk644H\Zdx9s_mgg'>>ۿKUTTttt Fee%c~GE.ƍwSu}c ϟ?/D,,RRKKK=rD;WUU-wٹsgOzzGXK Ϲ4.K.\ںyfPQQQ{{RZZZ}}#Gۉf1 O͛' KK˕+WV$ ,?? Kk׮4i҂ zJSSƍ%%%aaasZںlʔ)wzޏ:x𠡡᯿܉'h47o[)/!>s/˓>RO.}(JJJf͚_?PKKIDAT>h͚5=a%,ϓ8p`FFFQQQ+W&ibb`nn8ϟ3g*񊊊h!;NOKKcdde#"##WUU࠯?r> 33SԝḹijjmذAtr7- #""LLL-Z1fMLLQ_"WC|^'}2҇SCCCSSǧUvtt뫩\Rtܽ.Ec}% ++Ν;?ҦONb==!<9 eu.m+--uuu-**jkk+,,ܶm7Ec=~Lcڼys[[]}}/Ec ~L&3<<<<;ggg,dXbŊ2Y[D=(n3tgjm 5A&6m%5̪IENDB`XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp_source.html0000644001725400016040000005571513273140073020757 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATDATEORDERIVED_HPP
    21 #define _ATDATEORDERIVED_HPP
    22 
    23 #include <xercesc/util/XMLString.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    30 
    31 class XQILLA_API ATDateOrDerived : public DateOrTimeType
    32 {
    33 public:
    35 
    36  /* Get the name of the primitive type (basic type) of this type
    37  * (ie "decimal" for xs:decimal) */
    38  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    39 
    40  /* Get the namespace URI for this type */
    41  virtual const XMLCh* getTypeURI() const = 0;
    42 
    43  /* Get the name of this type (ie "integer" for xs:integer) */
    44  virtual const XMLCh* getTypeName() const = 0;
    45 
    46  /* returns the XMLCh* (lexical) representation of this type */
    47  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    48 
    49  /* returns true if the two objects represent the same date,
    50  * false otherwise */
    51  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    52 
    55  virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    56 
    60  virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
    61 
    65  virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
    66 
    70  virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
    71 
    75  virtual const Timezone::Ptr &getTimezone() const = 0;
    76 
    80  virtual bool hasTimezone() const = 0;
    81 
    86  virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    87 
    91  virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone,
    92  const DynamicContext* context) const = 0;
    93 
    97  virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,
    98  const DynamicContext* context) const = 0;
    99 
    103  virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
    104 
    108  virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,
    109  const DynamicContext* context) const = 0;
    110 
    114  virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
    115  const DynamicContext* context) const = 0;
    120  virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const = 0;
    121 
    123 };
    124 
    125 #endif // _ATDATEORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: ATDateOrDerived.hpp:31
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    RefCountPointer< const ATDateOrDerived > Ptr
    Definition: ATDateOrDerived.hpp:34
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/classXPath2MemoryManager__inherit__graph.map0000644001725400016040000000031513273140076023351 00000000000000 XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020576 0000000000000012034c11c0cc4ab28139eb006f49be4bXQilla-2.3.4/docs/simple-api/classDynamicContext-members.html0000644001725400016040000012520713273140074021134 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DynamicContext Member List

    This is the complete list of members for DynamicContext, including all inherited members.

    addCollation(Collation *collation)=0StaticContextpure virtual
    addCustomFunction(FuncFactory *func)=0StaticContextpure virtual
    addExternalFunction(const ExternalFunction *func)=0StaticContextpure virtual
    addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0StaticContextpure virtual
    addTemplate(XQUserFunction *tp)=0StaticContextpure virtual
    allocateTempVarName(const XMLCh *prefix=0)=0StaticContextpure virtual
    CASE_INSENSITIVE enum valueStaticContext
    CASE_SENSITIVE enum valueStaticContext
    clearDynamicContext()=0DynamicContextpure virtual
    CONSTRUCTION_MODE_PRESERVE enum valueStaticContext
    CONSTRUCTION_MODE_STRIP enum valueStaticContext
    ConstructionMode enum nameStaticContext
    createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    createModuleContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    createModuleDynamicContext(const DynamicContext *moduleCtx, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0DynamicContextpure virtual
    createSequenceBuilder() const =0DynamicContextpure virtual
    createUpdateFactory() const =0DynamicContextpure virtual
    FLWOR_ORDER_EMPTY_GREATEST enum valueStaticContext
    FLWOR_ORDER_EMPTY_LEAST enum valueStaticContext
    FLWOROrderingMode enum nameStaticContext
    FTCaseOption enum nameStaticContext
    getBaseURI() const =0StaticContextpure virtual
    getCollation(const XMLCh *const URI, const LocationInfo *location=0) const =0StaticContextpure virtual
    getConfiguration() const =0StaticContextpure virtual
    getConstructionMode() const =0StaticContextpure virtual
    getContextItem() const =0DynamicContextpure virtual
    getContextItemType() const =0StaticContextpure virtual
    getContextPosition() const =0DynamicContextpure virtual
    getContextSize() const =0DynamicContextpure virtual
    getCurrentTime() const =0DynamicContextpure virtual
    getDebugListener() const =0DynamicContextpure virtual
    getDefaultCollation(const LocationInfo *location=0) const =0StaticContextpure virtual
    getDefaultElementAndTypeNS() const =0StaticContextpure virtual
    getDefaultFLWOROrderingMode() const =0StaticContextpure virtual
    getDefaultFuncNS() const =0StaticContextpure virtual
    getDefaultURIResolver() const =0DynamicContextpure virtual
    getDocumentCache() const =0StaticContextpure virtual
    getDoLintWarnings() const =0StaticContextpure virtual
    getExternalFunctionResolver() const =0StaticContextpure virtual
    getFTCase()=0StaticContextpure virtual
    getGlobalVariableStore() const =0DynamicContextpure virtual
    getImplicitTimezone() const =0DynamicContextpure virtual
    getInheritNamespaces() const =0StaticContextpure virtual
    getItemFactory() const =0StaticContextpure virtual
    getLanguage() const =0StaticContextpure virtual
    getMemoryManager() const =0StaticContextpure virtual
    getMessageListener() const =0StaticContextpure virtual
    getModule() const =0StaticContextpure virtual
    getModuleResolver() const =0StaticContextpure virtual
    getNodeSetOrdering() const =0StaticContextpure virtual
    getNSResolver() const =0StaticContextpure virtual
    getPrefixBoundToUri(const XMLCh *uri) const =0StaticContextpure virtual
    getPreserveBoundarySpace() const =0StaticContextpure virtual
    getPreserveNamespaces() const =0StaticContextpure virtual
    getProjection() const =0StaticContextpure virtual
    getRegexGroupStore() const =0DynamicContextpure virtual
    getRevalidationMode() const =0StaticContextpure virtual
    getStackFrame() const =0DynamicContextpure virtual
    getTemplateRules() const =0StaticContextpure virtual
    getUriBoundToPrefix(const XMLCh *prefix, const LocationInfo *location=0) const =0StaticContextpure virtual
    getVariableStore() const =0DynamicContextpure virtual
    getVariableTypeStore()=0StaticContextpure virtual
    getXMLEntityResolver() const =0StaticContextpure virtual
    getXPath1CompatibilityMode() const =0StaticContextpure virtual
    isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0StaticContextpure virtual
    lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0StaticContextpure virtual
    lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0StaticContextpure virtual
    lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const =0StaticContextpure virtual
    LOWERCASE enum valueStaticContext
    NodeSetOrdering enum nameStaticContext
    NONE enum valueStaticContext
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    ORDERING_ORDERED enum valueStaticContext
    ORDERING_UNORDERED enum valueStaticContext
    parseDocument(xercesc::InputSource &srcToUse, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContextpure virtual
    putDocument(const Node::Ptr &document, const XMLCh *uri)=0DynamicContextpure virtual
    registerURIResolver(URIResolver *resolver, bool adopt)=0DynamicContextpure virtual
    removeCustomFunction(FuncFactory *func)=0StaticContextpure virtual
    resolveCollection(const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContextpure virtual
    resolveDefaultCollection(const QueryPathNode *projection=0)=0DynamicContextpure virtual
    resolveDocument(const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContextpure virtual
    resolveModuleURI(const XMLCh *uri) const =0StaticContextpure virtual
    setBaseURI(const XMLCh *newURI)=0StaticContextpure virtual
    setConstructionMode(ConstructionMode newMode)=0StaticContextpure virtual
    setContextItem(const Item::Ptr &item)=0DynamicContextpure virtual
    setContextItemType(const StaticType &st)=0StaticContextpure virtual
    setContextPosition(size_t pos)=0DynamicContextpure virtual
    setContextSize(size_t size)=0DynamicContextpure virtual
    setCurrentTime(time_t newTime)=0DynamicContextpure virtual
    setDebugListener(DebugListener *listener)=0DynamicContextpure virtual
    setDefaultCollation(const XMLCh *const URI)=0StaticContextpure virtual
    setDefaultElementAndTypeNS(const XMLCh *newNS)=0StaticContextpure virtual
    setDefaultFLWOROrderingMode(FLWOROrderingMode newMode)=0StaticContextpure virtual
    setDefaultFuncNS(const XMLCh *newNS)=0StaticContextpure virtual
    setDefaultURIResolver(URIResolver *resolver, bool adopt)=0DynamicContextpure virtual
    setDocumentCache(DocumentCache *docCache)=0StaticContextpure virtual
    setDoLintWarnings(bool enabled)=0StaticContextpure virtual
    setExternalFunctionResolver(ExternalFunctionResolver *resolver)=0StaticContextpure virtual
    setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value)=0DynamicContextpure virtual
    setExternalVariable(const XMLCh *qname, const Result &value)=0DynamicContextpure virtual
    setFTCase(FTCaseOption option)=0StaticContextpure virtual
    setGlobalVariableStore(const VariableStore *store)=0DynamicContextpure virtual
    setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration)=0DynamicContextpure virtual
    setInheritNamespaces(bool value)=0StaticContextpure virtual
    setItemFactory(ItemFactory *factory)=0StaticContextpure virtual
    setMemoryManager(XPath2MemoryManager *memMgr)=0StaticContextpure virtual
    setMessageListener(MessageListener *listener)=0StaticContextpure virtual
    setModule(XQQuery *module)=0StaticContextpure virtual
    setModuleResolver(ModuleResolver *resolver)=0StaticContextpure virtual
    setNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0StaticContextpure virtual
    setNodeSetOrdering(NodeSetOrdering newOrder)=0StaticContextpure virtual
    setNSResolver(const xercesc::DOMXPathNSResolver *resolver)=0StaticContextpure virtual
    setPreserveBoundarySpace(bool value)=0StaticContextpure virtual
    setPreserveNamespaces(bool value)=0StaticContextpure virtual
    setProjection(bool enabled)=0StaticContextpure virtual
    setRegexGroupStore(const RegexGroupStore *store)=0DynamicContextpure virtual
    setRevalidationMode(DocumentCache::ValidationMode mode)=0StaticContextpure virtual
    setStackFrame(const StackFrame *frame)=0DynamicContextpure virtual
    setVariableStore(const VariableStore *store)=0DynamicContextpure virtual
    setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0StaticContextpure virtual
    setXPath1CompatibilityMode(bool newMode)=0StaticContextpure virtual
    testInterrupt() const =0DynamicContextpure virtual
    UPPERCASE enum valueStaticContext
    XMemory()xercesc::XMemoryinlineprotected
    ~DynamicContext()DynamicContextinlinevirtual
    ~StaticContext()StaticContextinlinevirtual
    XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__incl.md50000644001725400016040000000004013273140074017660 0000000000000030d28057e2ce69d71c4dfec4ca1eee88XQilla-2.3.4/docs/simple-api/classSequence-members.html0000644001725400016040000002744013273140074017753 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Sequence Member List

    This is the complete list of members for Sequence, including all inherited members.

    addItem(const Item::Ptr &item)Sequence
    addItemFront(const Item::Ptr &item)Sequence
    begin(void)Sequence
    begin(void) const Sequence
    clear()Sequence
    const_iterator typedefSequence
    const_reverse_iterator typedefSequence
    end(void)Sequence
    end(void) const Sequence
    first() const Sequence
    getLength(void) const Sequence
    isEmpty() const Sequence
    item(size_t index) const Sequence
    item(const ATDecimalOrDerived::Ptr &index) const Sequence
    iterator typedefSequence
    joinSequence(const Sequence &s)Sequence
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    operator=(const Sequence &)Sequence
    rbegin(void)Sequence
    rbegin(void) const Sequence
    rend(void)Sequence
    rend(void) const Sequence
    reverse_iterator typedefSequence
    second() const Sequence
    Sequence(const Item::Ptr &item, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
    Sequence(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
    Sequence(size_t n, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
    Sequence(const Sequence &, size_t start, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
    Sequence(const Sequence &, xercesc::MemoryManager *memMgr)Sequence
    Sequence(const Sequence &)Sequence
    sortIntoDocumentOrder(const DynamicContext *context)Sequence
    sortWithCollation(const Collation *collation, const DynamicContext *context)Sequence
    XMemory()xercesc::XMemoryinlineprotected
    ~Sequence()Sequence
    XQilla-2.3.4/docs/simple-api/ATNotationOrDerived_8hpp.html0000644001725400016040000000726513273140077020316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATNotationOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATNotationOrDerived.hpp:

    Go to the source code of this file.

    Classes

    class  ATNotationOrDerived
     
    XQilla-2.3.4/docs/simple-api/functions_type.html0000644001725400016040000001722213273140074016573 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/Node_8hpp__incl.png0000644001725400016040000020027413273140075016334 00000000000000PNG  IHDR2]@bKGD IDATxy|{䜲nݔ%$$80G56"FVWIss#V!dbo|MIɽ{)qǍ3Wci֣cf! ?o~2r~0K-TZZ>1mrrNMMCj&VVJJ2dGב$%>kG.]jѥ RH@x46ҟ=+|07%%7+볬Ԑ!=m-,LFvtn0a *x{ߛ6mUct v >}HIMHxaNS{w5;;͇7?;&&GuuMQQ~~ssKߝMqq e ?OHxs_TUnj10;֬kWk2ᩩy~~v4bQJJ/2ggII}07-&&#GI}ЊFF<v ]y9ɓ|65#F?\YY~2BMMk?zhcWWK;ޤ< G?b0̏ oSRr_"%%>l YZt 2{ۻw%K̚5XVV``ib~JJkkU-,,LllɎÐ~%(qx3/]:iܻwI c8驒]PVV{Z_Je%uľnnCQ9>}HHx٧1y#IIP&Jt:3>s23?m2 7Hw*+RSRRrߖPSS5ɸqɎw0-c!Jܾ2 L4Ē (He)80GAc@XXBJRe(x2]Wt@ -_ZIJ[[3X T<@{ MIJ tZFR3@Zm`{7VJRN2(:ep$0e(:e)II:KP*&HNKRNX2(~ eS\,II:OD'i^=Jn -(I'D$-#@~!@AIJ@.yyig  J\yJh@8AIJ~&Re@e%)(e(8 $вTCdd$Ɏ 2@ ҲfT @ZPRh@Z ]˒VVƍ34 2.T( $p=Tɰ>±$5c$%AÆfH OH%)E,( " -JR2H~ DķP*@(AZ(I)9IZZ𬎎J\Ll?( -t.%)Ǎ %)E={Z_##͔G8@iS@IJvРGRR|vJ8@ai@IJ٧>-`2f)ʓ';HJ@!iwAIJO7ok6`&&F۷ȊJ@iW@IJjkE37JHK-ȊJXAi$%MK߻>ŋ?54IJ5+b e6@IJQ^\y#&F5ڵUF% ROiP*AZJR07Y_O#88wPrP*AZǒ&Ptw+11/ &BHRR` A~iJR^JJz|!\\\|s?dG$T %)) o]?~4P( L܏D{[ޮc6Q!**j Eeʺ.]~*(I rrRo%- + hjb r0Ǵ3@Z੯gtpp3C4͛ @QPP=t1ٱfРAFFFdGRaa78NPOp `23?Zu7mq7(Inݺ5e *5NNv >}zTTIDZTRN X 0 ܹBgZ%)EllCCC ȢhѢEձd҆&FTs?o~K''%$ пreׁ>bժ˯^}f/)?Zܹs*iiϟ?<55#XBBB|yԓarjGK6 <֭ YgGKy CX[ji)'@(w))b0?VLOx=IM@Z_+/n)5&unbb0y)a1kvmYW&d ۯnj;99Q˜ !``߾U 9PMO 1Xuu>/^20i#dٲ*!TQA)Y` |EQQҥK۳#b}~ r!֖P '/_dRUUuܹeee?{Ǟc]]g B'OeL(RRR&RfII%)L!71UϞ=?|@vL5C1 p !Di(| #ikkE\J "[QӧOg[PP0lذN}q  ۶m!TXX8j(5BHMM !cǿ~n:wwΈMÆ :|avvݻI.(((**qq■h6Q4*^[TSCQMuu&&FE};III9=DžLP}eڵPC8AY_hh`640 ZF}=ljtvOe>q:i/SWWgyjwbVQQ ޽{qrssMLLB!*f?\CCآsa{{NMиwjbb2a„>}\xՕ455)**wvG}G~ΎG8IZZdGHGCQQE]]فPCCفT{:&&k׮8ST&mjj0bĈ$P^^q1o񸸸jkkLlNHHhӧ^u떒;… o߾v)߿d27BZ& -2.-Zx⒒--O8~9MMׯ͛zzzӲ)))/_\r!TZZx@@@PPC5kVQQQVV֠Amۆ8Bѱ!4wܚs!˩ToqqJe q Ν;Ν;͛2Ǵ˗555߿f%sNNN>|ӧq#{-ϫ!4{쪪 . ***BeeebNMM"z4iRRRq\@ZpH˄ e@8@ZEUU^~qss@.]➖555{fKNNf<͚5k--355-..&^'$$ 0qPff&4뼼JIIcǎUUUaV[[K|ްq<--MBBϟ#^~~2vJJJ)h4qqlbׯٓF6[WkoB'ZZuuuv&I >|7oެZRPP0`ނTnnĉHlRt:]UUˁ?~!7n\aa!]QQ!$))5BHUUiiizzzVVV)))bbb e0 e6M̺[;߿3LV={~F-"tڕUTT_|,/_255mt2S?񱳳۴iEWWիW޼yýszzzfff9s?qD?D2TUUf WVV.[޾/&vĉmܸ1,, owif99977ϟ?jii]]]Ƿ &#i߾}Lk>|u_iEBuuu[l߿°a}̀)###kjjh4{_)))NNN Z`A^^^fJJJJJJ>ܭ[7 IIy[0;;{׮]NNN778EEgϞR[[Ç겆3|ND /^`=z5%+9Jݼy޽{'$v*X8l֭xL8򊎎f55[__B/.....~1B_4֭[999{a0իWYM۷YaX[[aC=~˗/IIIzzzUUUeOG:-kwGttt*++i4ھ} Fzĉ]t֭ۙ3gUUU'Oꅵ'N3ffҥjjj˗/OaaaFFFRRR1114+V?1 322b>LLL_~iiiUVV.\PMMMGGgÆ r#{ϫ[dTM#''gnn~zss~糠`{nmmmrW]]ݵkp/Y祥_v-Ǿ~A]aʿP)?8eb׫W(JBBB(''ٞ-ؼy{CR{8BhŊ]tai- .4۳%0KK={txHAZu֝{:e,Y[ԧO˗8rm]UTTX:팿M>>fff#G>1}ƍ!MMMD -g2G511QTT=zӧO9wٳѿ6bbbzꥩnݺ&:o> ZۡUه{ RRRxb`` k+ҙ3gX![ZZ~e_]?ۼj G\hҥ A/^lϹs? S={LEE7pboq W%?qY8BSN$Nt񹹹iii={dl#O-P<-g8^՛в_ ČIKW;wJKK7ѣ?~$vh=WλMLҞ ="~=~X]]gRRR***jܹs厸e-g?|]]|zz:߾}{kh'B859,,:Tx[ -"i> 8*~q0qqqggg_qg0iiiӧxpp0ގ\:71E,zef ]v2f,8o.wZ7rrruuuqqqZHh 066fZFxYqWuf[~?x )))""u%#J>|YYY;vزeK˳hU@H˄,zrrrڿ?k!GGǫW:tё}711/?˹sp?{)S4pGGLj-ѣG{~$88!:D6K|p܁Uf&߾}[nѣG---ݻb t1.Wr,XZGBL0C]?ۼj} 6ob2L;;WVVjkk8kjjFGG߾}UUU Ă1Lgg_4;ؾnݺٳgիWÇ'UF\ohh(++;LCC{_;322пǏ^zر!ԄcxYׯso,Z;w" bׯ=Ÿ^D IDATm dTWWƲoll~^^^?D .\`u4lllӍqc?y|HĖh!/ob泀-`6uT+++Fׯum]/^lbbrƍ>1bx;>Zjs˄Ji,zZgHFFhΝVVV[\1 7n\k}5#k玷{#uĞl ˗+((WMny88zhϞ=GIiu]]]ݝumo ?'(Ϻ/p/B ^e,hqlvU>,]ٗ=JOO r%g0G~dee{uV◫֮ZBZ&T:d2W@Q`r~ljg2 | ^lcc#//O|ioo_QQAzŋ%$$8{ȑ3fL!D,:v옱/bpkWNhH#VU!; x455}}}۳KKYYx-{{Ekh4Xt"YkWNhVD <iׯ3f(,,dX9s?}5qӧO㫪+WzzzĔٳǏَ;l@PMLϨQݺu|9f<<<(&&6k֬Çc#RRRs ={6kcå3BLvssfˑ]]]ۉ[6vPDvp… @,;Iv,#g݁󍍍}~qȟ-ZT]]{`۷CiFO\\10ZzI]]*&qqqLBB>Dkc-RmNFi`Y屦&?$q0tt>?|P64!%l{oN>|PRLLTT:66aյk׵k )D ACC0HJJJWWpK=+LO/HO/,*346`PQzꪒc8>/jjv숌tr &먛@hମ)=0#ٳO4eeC{,X0b0ed?/""M:wr)%%Y lis߾z!!i}5%%ܴt:SKKi0mۦ fЧFNNIv?M4GȔ)'=<ƭ_?^\HDz955ѣg ݻm8|(cMMEgzzÇvHkS{ཷs2ai"%%^]]aȞͰ4W#;:`8G)ڵWƏ?gȎjLU<|QyTeeQl8z6ёÜ3ux˽zi߸رmq_),xS1ަfe}2Сv';@~v핢uţGyׇhgy>zhAV\yAT,Rbg2lGBB]Nά&!AZ*bժUgΜ!; w -NeeII{S[hd9n\c͆7T=mѢQQMMW<={ȡCs` kG)4qʕd-pck{d„[Lvެ\yyC_Ŋl 7wya&16";4e˵/TUŸ۶E()ɜ:4tz!s!!iKqq|k&M:1z]ԛ7_-SVtɵ[. dLRS$$Uq̭Mv=t./Y6]MNYf˖I0 :ջwΞf4:vp8տ}:`IPIɏŋ~ p6c`ʿwf lYWC0_T}pe/q/""=ķǏϟ1c,'%%Nu:mm׮^4wٓ';x2Srvۯ_,ggں١ g66fp+vvGw옺lāa{oOJxСzODSSG> //1k^ݮ7 -8z֭[ 45'LcQzͯwNkݼ$%;yr<6~ΌN,((1xpLRRNgvlb00P߻7zP`HZNNɍ/_,,,S0G?!K}|IABBlӦfW=:wľ$̙ @>GZZobsqUeg.@X~}ql˘ejKv\BhǎǏ?g+(H K0y^mBvPm[ zP| p2>cyTTfl시]UL6p@}Zt:sV٬YcKv,u+k˖k^^ F0";>}{DAAzѮ4tВ!!+:NNdeW鑳<?2UUļ0ui bЁGne-_kWZ(/nnJX>pQQzz˖Y:;[u۷G_ө|^pڠp?HHC1s""2_QƏ3{kkS zZhJ,<َ]||aBy\wr+Z}qd5 +s`+@>SIYիOozUWG09qbIUU%%;vlفjΜÆ[y3KFFr޼a) Boߪg9jj .v|(Vc`8'&Ya~Nt9s -#̝;TAAzժ Сِ>ioa0[^;ŋ:4a,,u""2S9sa2e?|@"ʊ9S",k^ 2.^\lY=:~?OH?۷j[aa,,L vVSt%<|#Gn߹ 0 W/+upx"SS5OoiXe..8;623@:H~ڧOW< zaV14 ;(^ne551H[vk^?ӜVQA |B1G\i+y@FkllL̬$ ?'z;1>^M&̟?\QQ fkۻKyHff:nm8v,~۶s*T'(><>9$$MVVr2  6 @ץK׮,Ŭp  Y 719c0O'?qׯ?>}p/$-qWDQVԩ? jή7, ۠ˮ ^:rd| ӯa2'NrƌA/61&;(^}c #dʔ֯CAyXPPfk;.cdŧL&e1cL]/8p`&iE}) Kad9hPw]])=x۹GufTjSh3g**]1_du•+/m>}{DAARYYߎZW׸kWţ N^|@ljjI}}|Epm|pC}}]_JJbΩ&[[:~|H _ϟcTg22d%`<-C-]jQSӸcG"ADӲ_BB п~}FdG:QmmcB›}Ɇ 1{w͞=d%x NNJHxcn{38>o dp1Jmں5\EE~ҤdȥeO'%ꪞ=hлya|2G̵ukS5 ;(@yqݗ/Dxg`00XmΩuuW_zu% :et:WLwr ㊈Ȍq̕d_L0MΚb͖-$%}ЂD4#&慗WǏ嶶aÎS9p`Vy9u(w3de9w_j걫VQR#-o)فMM˗݂~8i1,,{UUӦ t@?EL~#{rYJKk:ϣGoO:]N9ANֱt`e!ii˗TU圝4Z~,;A3{owtϦM!'< !ttT\YʙN!iYii,<{JիtfGu);~I[L65aXOk֩pOHxpjtk1%e4tze!33۷_q4dHyg;aqȐVW!ʊ9Sk^ FyBб'-b˖ky ػ3D<߰a6Ξ}zR={6_L$۶҃'3W##3W|࣮էj=|𞀎k׍4ƌ1!; >2Ɏ<H5yxN?)i˰adGQTTb,AARaN@@ o⬾t>-8 v?xhͿe}eΜnn7^}X`INܿ%Ç7$$JL.rsK޾6k,WM?<_M%$B\]RQ?{ׯpJP(]ect ..HVVj\B;xq@\@@Ş=`&ڵgzz}Fݼy`tj/|EZ98N447쪪& -:9w. 3 ^^!11 溉S$$d45e>7h ###]4qq1!VR[:e'xzN"; =-+,,ss ܹS';0 Μ3ghm.11q̙W!-#)sD6 !: g2VdayYOooOEv ј? IDATNYYV #5uZvNu Ǐ}>}PgwD544tv_,Z(:@uuQt G'$lV&; `wnٙ3I˖L606vd"#߭W/mpGpeCfʭ^rǴNgnp۷O9zt_H}; +UU hBH^^ܹ%/_8qXỴƍW.kؒ$iӦ $;@UTξ}3NJx=ٱA_iYAAWaayt;~VddU/MME^YY(:ș3RƠ(-{0gҤwn27%; `˩ |⑴/(**Zti{}D_/OP:;mvH#p7BCC)|cP(ؠPe,VQ[&LsŽ\¸q׮RSS ; x3%&LCv BEEe֭?{TttYwBtEq<44T__?,,wqܹsׯ_͛7Byyy/c555RRR..._|r B񀀀 >}6OѣGͳ^~=|͛7_u1Nb榥ٓ!4uԚH5Z-\޾ׯU::32 wxqY;\t{Z;*d2q5kVee%C넄8qF5{WYY)))yر* jkkL&{_8IHH8sׯBݿA}='O|!F&~zϞ=<V z~:q۷oY +qdeep|c!|7oެZRPP0`ނTnnĉHlRt:]UUˁ?~!47n\aa!]QQ!D̦bRUU~ZZUJJXBCC :Bf׮]9sL&UgϞ_|iX>}dllL6331c8BFLMMZ{clB!$:71 ˗[ jn]HSX"!-q|Ȩ痌kݻفpg;;M6[tuu_z͛7[hhh;wgff3g'N~:1xUUUZZZ644`^YYl2{{JLfXX؉'jqư0М9s]6fm /?|tǏ/__o'BV{X3[6FW]]GPDILvbb'}矻d iفq!!i.,ށijbܸjda...W^MLLCxzzĔo۶{#MMM4MJJa޽ژST̙3oӧ'>}̀)###kjjh4{_)))NNN Z`A^^u,,, ƾ}.\FS7o޺u w>զ ܹ3;;;;;{ڵ>}8 Ϟ=۱c3j%C[6FGϜ񘾾ڎOl.48=љ<yo{y{{ߟF8SYYIg``0rȐun'NҥKnΜ9訪:ydV/=t1c555K.UUUUSS[|y]]ߩi 322255h}Xba֭[4rJYYٚ6iv .TSSٰans?ֻظy]*++;::VUUln8}wﮮN o,ǦZk;[vx190 7ſtMMtc[z^^ ^^ sDK76CCWXi'??ؘsΏ?HفMZbm 4<| ف˗*kCWݸqٱû1d_p<@Gŧ ȎAShhi)iT7mxTb~~)ٱãW0pDAt IӧC qqq&;n8ƩbŊicSؾe!77+[ H9tuB,|#2٤I}ױJVVVdG6qjjjvH5JdGA& #G{] v>ZVTThх#{vgDǏ噙EpaxyyHeG[[Hv,tnZVSӸdҹsEYhЩ"#3nj1!;O(+e00-#l6NCv tbD3]]/VU_*зʜ9s0-#(+yzN{SBv,_tGڞ=Q^,Q^h(,((Ud\@haQ{Ev ػxwST֔UlQvB'[i')EBJىPTR֒Bֲge);sgy>>9y=C.Uqs*'7]H)""WJJp޼ 9hl`faa@;Y;gU2>l4A;1++CwZ-UE1A(f@/ےT&Xlc__z$7hG:/…UU90+@, 3Gi}^`!444"##IW<NOKHeٵˌsbW>?ji͝=~az<'IAgӦ:())aJ;yRw+O33SF; 2˲c¿oKN>JOOxAPDDsfA1PTUbg}U'Mwt̑W&&&۷ߜî^-[gkJK .0PN:f53[dl Ns9{]X7͜ɋl@ٛRll UWwKH;yRO_sRRUuuMZFaa-38w^ѣ~w/ ʐ,˪ZNܻWUKk 1HGL[$Md~ŋߨfgC;0A|KK7[6,tw念@beY@ooJ&ؑ]adF0I'"Νۢ$44s/_ڸ)Pq8؄XXlmU&(gmPv˯h'W[ A|<KU,, @YðS0ב#"22WWW(ibuӝ;W'%ϟ/v)fd[|ζm{9:d da^,plB, ~Uvvf UyySq0Il0 gJL r._> Ԭkǎ=۹-'mcWKYXمtuWMϙ3\q133޽&(ug'Z$2=H Ϟ+C'&&_EjuXI6\\,Zgd|QSs*C;ATSӊBrA;)Õ6;qBJ [nnUuO,tu99ijMN{w禦:.X0c˖NNa~ hmeٙo_ š )eg> DEIJ PͭrKJÔ>e6+TWwə{56vAYgwdd.AR|Y˯.Ѐɛq  7n(nnIgKIqԔG;);KI nyRx<,.·v $ih&OC,p8K -{KKKAJYYgٳp9w?owD\BebcK۷`eeYpۊ'tMÊ[HB\,A :ߠIMuܽ{ ډHܹ*% --M/͂llh d ɔeX,TsC@ɟ2d47wYX։}h'"ٳڮbm DEeeYm*,-W%&׷ ɔelm" !HUZiiӧ)} ~Ç* >Ҩheل/f}( L,a;x(k \~~vP~'ݻɽxt) Z%0wȦMnnI8DTyl02[.{({ppN.?5ڪ# ˯`å)ͭ^zbG+SVV0_l._nhQSDT[_MԶm˚:_vD&\ݽ~|!b?jiC;bqWz̙ß椭=Dd)־DԩAY6Q|K {vD&VeeV .$=\ݙFFuqP5hRu-,|]KhHH'dIrGpo41ݴU- Nrs6Pu?.J ,<ff7߼޽&&^MM]h'*_6̘LU{H" MLLAR@YVWW+KfYF {t45&& l޼$:P}}I `d3ik{AR@Yɢ>xiwϞ+NE&AG=<<\yD-} ND JKAY6i ?| Qe0 ߼y1xHǗ/`sB߯_BP0vv{,Μ1pqIܹӿDmp[ A(ڵllIIx˲w*ZLL5 ǩ6ȑۗGE9L* {'Ohk()G;nOBD7޲,44g|sExٳ㑛[S#pIAs8okVZHCW&OGgwhk\eٯ_[Kedgk70pca޽wdeRSWD;` ۷e]\MBiiÌ<,,`䩪21? q,/{E$'//*+ n!MWWmЅ 1iZ𰢝j\h|{2lmz{NDamS̰jtz5βhZYnnG ,P&ӧZZnoߖ?~^rXؾ7o=oC;%))˦nZ٬R,v.z{23K7ɼx㗡!Qx{}[""\))WKgYlvlA72 7Λ'v&}%A",KOߏА'A (**o9\h!G===7 A^F<#+,WLBB߰A d'::PR7q&Ǐ/x|~~5#ؕmhh0N98׷o뒌NNNLDʕdbA; @ce͵kր+DF檫q~78p!S("Oߏf=Lأ \]qZZ44,_ V/Ve?~-^ r] o?x`u.ܿ$.&A ~~VƋ KW+*̞sA,ǜ9$KLgQQy Z\UHH8nmib:c._><@GGsɾ}jO=zvǏg@;@~ nH$?.LBtt^FG=836^48tt7/B;sShASiiCWW…jW˨(+!`4T ð[Ҿ}MMu+II))0qi IDATJ&"O=u*gSFF:I9^*8Ӷ>77_vt<(-ƍ x,v-apA(5o_o9s[[5 3KmjD; ˲f̡‘de55uQQ׷[Z}bKqMnݺrW{Uih0g>MKe97z*)1c}ٴi RRhg!1tqI|v),bq,#̌<55? oA̚Vqq^RFO==zz  ׮%ܾb>uFYNNNGlX, #,300055[v9u*~5$w* mykjZN oIJ]H ZDz;AHd``.$6ʕM+F?9///$$ؘz[XYք (''o ;W3g0l߾P}bh` *4bY9>5$__\]Hz|i ٻrx3xu.AMG?g׮5--llL ?|B;goiB;2AARFB ҚvRl63cbMiU7<ƨ&vb򥡽ҥTYemm=||e\ @Kdd|j]=wYY׻54wƍ޽@; T2Ɂɉō}*@Q/˺zxii='ؘ 15ftx~>>6(`0&r?~vɩXXv"l0 B;g::z!e@DϞ屳3]+v""dgbnۂDYܡ$}OyyqS F0njY2""rFHHys F,AU~0;w̩#A)//'FkyivΙ#eZZ頮Ǐ%Kf3Aӏva×eӬ L# %%uƋB,mm=[MK@qqq9;;OYϞ=344znEEV"v:ff k^^-[65Q]uYYe>SB3e j/cӕͺ:bc! bzDu =I }~ݑ=tvYYKbf쉈P _  5"a8::hzĐU~;??{|mkk ($$DZZ߹sGNN]YY9==0x7@d\\… YXXVVVff._ !!! X,QPPP@@B`^Yfqrr>}X&&ٳg?|~OHwx$77+WFGG:t؃3졡{춲wׯWF;cdW˨C;Ϝiokߏzk~ECCw` +N++߿CðÇ} k6nXSSSTTt1!ڶm[gg/A&&&>>>tww322z{{uww2D ]]Έ .֭[WZZ-))yܹaaǎzzzc/ї/22 n6  OD.::†/˞?$,|۱c**WN_؝:;8˲6111A^^> `˲nˡhƍ>@VV8%%EQQa`qYYYkk+==x|WW/xloAPFF 8p" 2_.wx1v* AӧN laJbq6-F;G_7]rqqݻpBQQPPRmmEvwwcXnnQXUU%,,`0fee%8;;;A< ;===;;[LLLEE%33f<}M@DC~RRR߿ X!yv/4LbE|'N033 >ia*I#>~k*)e@R))Ts^G&=0 ^^^wݳgO[[Á줤rss355ضmzkkߗ$$$VZ%,,Lŋ .TSS[`k ,**zƍPZZaB;G?TCCcÆ Ǐ 󏑊_EMffARaF'KKJW-؂}gG;TefZ[?PP뻓H[b21Mi7r)))0gtXL_ܼ=&&T&&^--11)Y|2-HH8^j@R+WJQHBCsiihئ @33.(em_yyUrh 2tJ dܒ}r͛gcϞ=9Hb6eeMǎd22Bv A ď8^[{>A&;~ffG$ؽ5NAs$%||,>,Vd,peDG穩qqdIݻ榦hGΝ~YF_&L (im*{0{z}32>yb84r䈦|[vK]}.A ::Z edt˗A;0`07Z[^%""\h2D汲2dªztwGEE;02Y79:ex/^P. +`Y2;rr*2aEEffx>eC%Cdd(;< b>23\uu5'''ڟ=|ǎI ^GQTTkg @@YBTT>ڵh],oƆu>!!!:::SSSw= $Η}}S~ξmB*hpΞo'rwVDv#N]H}MHBB Ú5`i * P< 1 !gݺy٠RAtR, Wjhn٢VU;xxV<~HQO:nܸOowǡ]މu**2uvKH(Аԁ lTTmi`lAA͞[aMIq0$P0>>uuo~d?NNa hG< s}(YړSaA <^^VeeIWddÏU.^4cyϞ@}}{(>; 'usr8:,USs13UvIaڑl@%&т,.&&__!͡CQ=}Zd=.ũ^+)6=B˂pp0ب~}j``䮮͔b?PVoQĞ7keYXԀ2)URRk`>xuS;;'u΂_<=_(+_pƴ4g==EC!5/,l_J(kx{7 A[ZZȑ&*#PY(EhS"Ϟ5B; X\p[e勷nبysLRqNŋG>Yrp[,v񢧧}۬W1?/ HSXȠڿ-04T"@7˗/\0QA; 0-yoߞfb"҈JVV4+넆S+W^}ׇE;׸HJ 8:wsK.)G+CbbʕR-PD[]UB#G߼rV+hg! ?_,3󸋋 ZH\s/^]rhhE kٳv|1;Avv/8PPD'))@]m-[>۶{˖))>>3g M3f\ݻSsC55~F;hiiݷ}R@~|w ep\\AFАs"!TK˭7"@P5|A ׮m8&%%ha᫧w+'P8xP%'Ԕ`&q@@Y˛7 {/ox~D/VVrʦ#1̞cw𶅅oee3ڡFt萦촡ݻ cE(bΟ?_LJJ { gNۮD24ff44~+.q 4tmk^sr kjB;0i^ݜ%>dFF沱1UdY,%$\రOG?w*YH!?޽A˖~ɓIVNN|ycJU.ݽNh(+ٴi$4""WO62(22"ϕH ٭;xP,DWW~#]ݛth+Y[ s]K^p8|dd"072yϟk@WwA#/:xŋ޶ YZ:3jzzZCQUSRmlT\\ oڀv" zz3gcc jKzmۖ @Y /::J)~~vKKߕ+%]]PkMa;||n~Rbdsvސduׯ_O"[-Z$qB x8{Ŋ9f @Y ?-6\U|}_^}95Oϝ+vBNN8:>>7JJNDNNDOOA$۽~]VUղu+2I!"Wפ^^;-G; RRUUy{8lb$ډ;}Cمq|({"q0sebc TUe98=z֭WW-yhgAL}}C,,|^}€ѣ::z_#ZPkff%DZ`X,_DCИnϟ{u2;u&AJVV+kӝ֮E;0^""\OZ}3g5&AANK˕^^iS`>|kj*og2111h`67wYXΟ/vFc }&&^22BL ͩSzwx8{f.Rnk=v :W @Fkkϛ7eރ?heOGG뻓']px_Wk^>$=K.C0&p}}dž > Y۶-L֯?s&/R(dӡ8 ðChiiC@nVb … U/^8Ƞ@ܹ"vfNK+!Y77wMeڼݻ a @Fll>.]:` e+QLH(~=cuuo8ׯ54\y~TA/Ѹ;OGc>Y[_866vZ[  Pӧ=XeiSuBӧ45 idTn~u^^6g׷wzz4425 5 t.Xn*55uYZ.^u0 WUU30p7ɦ[=x+::);u卩zVww@kKU` PSC%*#VV~ >>tt\Yټq͛deذADIɅئ}޵˿}ihߺ2gfx+UDJ( 711**^GC**vsr)>>]]}vgU:ef̧}>_Y:}}_YX/\40U11' n>~l;k?{'>TجurZOK+//.\r%0Wla fbsƂ3BCnme5 .fG9ѣvb逫eյՐ~ٌ/nn\)I⮧jhvt۝<;j2`kˎi[̟/64߯uy~~͘gb8ot3@YLItt>5$]ﴢ6Hn,-mӻydΝΛ'v"_8 &&KH ˋ>z'3.'֪WKϛ'z^# IDATƘg>}sϞDJ@YLILL ӿk8 :Aup " ,@hVqqNE[[ո꟣==6o^"&M$ eUW,*N{0a im ؅zKדOd۴iK`fZ%eDB_߫QΉ-y:20PͲrztwۂ"ZZn4)){PrOC11YJ~k6&={GhvZqv[[ϰ' ܒ JH#o, قa_ݟ?o<4=NEmmƍ7n$?AIIIMM<Em.m;WمV}33e::~7,,槃61`t,&iֹ?bkv:_$"1ih0+VHl?of̮]~?~!8﫿װq#t9T$EG-_N W4Ϳ`[ =vv&ٰ֭6ܹcfeE v^+**=i"#2`bc I0IATUefvq1af ## F[{>;;Uuuo\HH+8MVDGed7}ROLܒn$ᬮ>DdhaTZZZMMy&5 >W-ok[sZZБwp{"2`2=Xd;i ::>>WnߒDkNN&x"P==Esaȶ,++"N_<vԀ ]]Ebdh ܴi1Na33Cj2ډA8?o$.ηC,l{~]^XX A͛)VV [K}YY+qgafzu3Q;_G}>zTAQԚwޑ29 H^3&& ,B@@@EEe22Xhj^HBիE˰ z}F0!2` /&Oړ22Oi~~޽AX,.<|eG?ٳ$EuCbbB.hhhz{{F,f?vlÅ 1sf صiimۖ!21 +UiiDr$y{-AǏ?=tH#0КzDuB4sL"":K <rqq)--mnqo"~bcc<ɓw>TNד\4td*yD^! @"pp0X!x˞iii%Yz x,$dmkk ($$DZZ߹sGNN]YY9==>dpBaaꭥy A.|̙3}"zÇg͚yi X,QPPP@@*++CJCCA掏 ҒOLL$avppPTTlii%899G?}ѣGrrr<<<... ={v̙#?)\)u\( Gsݽ{N鉈p~Z%6Lа&'>ׇ%zq A3oyrn׷#;ƳECCw` N++߿CðÇ?s}"A۶m Ĥ]qƚ"%%cǎ?:::0 GGGspp())0&&MMMտ}VTT4o޼s0K dC/Ǐ#L#;z>M߿Aϟ?]]]勊>~l2{tt4AcbbGr',,fl|񭁁A%s/N4 qqh2`\DDRSmժ[| =<Nc -,kkkSPP8wሼ|@@ e%%%8˗a޸qckk+<\YVTT4!˃ax``DŽdee (**~m``ѣ'NokksuuݰaṴ>}"<%22RRR$NNN}uClll?:He#@0 N222>~xuuuQQ'A6lZl==z@@8A[l9tPeeON:ejjw222ǎ%ppptuuuwwi:`ǎ'OӧO8P]]=#VΝcy˼[lj*'dءM0 +))gp8͞ѝBdܲ۷o/X```ᨨ(aaցg֬Ylllʏ?F[7xxxf̘m6nnn¤. }' 0 oH;;;wkccCNGGwE{zz:jmmݱc//]ooHz{{O8K# 8ߑx8aؗ ""ɹm۶Q>-#})!0M*EE)iIH-J,fl|{߾ };uLjۜޝ;qN@^c-:wDH'^} n< fe C7(˨ܕSPǏ]]QTDmy&@q2 a755?=̙۷Mǹ\ʕ`iY@(ˀ1$$10Э]=~ pb={"$&qq&˖J0[.}{f Eg_YTtqEXZ e45噙i騖۷PYaO;w/|t 3L$<%݁逞ȑuaa9߿~po.x.b ~hL2`4=H݃IX}+*+btu5>uƋ9||2CϞVܿ10Й*D2%e0ttjjrSo)t6Q6DDؾ}9P۷KHH-Y$** nI >t9 &AɟnLxx\ɵ&(ȹa/ a,GO6ADK i2W-So*,}RllTxqOݺrTٳ-!;wnCC׵2s;d133ܹW~dflf6wZ[ >ϐ c PiiiGb<Ԝ;v;Ξ}{e9'RcZoo P.""ÿ9{q{{%C__C?`0=qqq h NbX,ùJKK\ݻw&|$77+W:8tP"cVVqff/\0bkRTV ;X2j32<?*+KrrLC؎A*xcƍI5%jooohh}p8Аӳ}vvva7M"x۷o>}jmm{l))w+++?|@(Μ9# puoo˗[[[lbbb~~~JJƍmllZ[[xyy 8HNjd稭mIHc`@=rcBBDsA23"O=ioD?VJ9 k{"ƩMSU^dv6I ROkk+ACa``ӧO/###%%%G1 t³ *++csYYz㔔EEEii退APFF 8f'YHc3EEi;דi @JMOa#5h6 &Z6ed|k@[{Tmp!f~Kg#lLU7p8|Re뗢qss ~ݩ߿dɒ_~566p9sg]MMDD z?WUU c0 YYYY[[j)( Yi"<J5 %KjjrH@u7X,D.g b$'?lvv!""GNuEGo5سg&9{bYXXiii+**ǿ}&**Jx<88AЏ?~o|||C{~eggKHHP\\<J<APii)n +);p xe;vصk͛7?!Ҳʖc Jgg/ALh6ڔGOI)^~J gTܺ4`vsKڷrP5k5Q.]z;޼ySTTtyK.ADOOe˖CUVV~ԩS\\\uvvzxx~wi?~H[[1::!))̙33}}};::Fo߿?qℙ(ۏm,q&֬Dq11n׈ @ڰC/ϐj  ;G}kt UU-$ׇݻ7hL'Oޑ !eUUU6magg_tiLLзZ[[w+,,lggGuE..9sfG΄ hb1]j`ggΝ;yyymllzzz]]]%%%YYY |}}<;AMut]SUkYg;~d*>UTLowqM]o+G!h*(ZŅ(u*{m+** **"25̰;BH:y?{9yYn(Cػr%֭wF+9ˁ))E^w:{yQ㨶uDbcPЪ~0@Jaaiw0\tty󺺺$%.Ywyyӓ'nkF"u;89xpʕF$F?ܹzj]۽03]]dId0 իo>.OQrs+gv{tx˖_BBm5+//95.u K[d򉆆6uu0)K(ÃKJϝ{s M6Pllܹ?al|E^^~bG<~2u ~||Wefq^>>ۻ>2C#: ez<[OOҒk0 ahq׭ 7ΝuRܾoY9(.]z|89kpv8 ߀ieBiд ٳ* RK:} ?{/Oׯ'>}|?~]RS8r5`$ꍌi߾ձĉu9X/2iӝ?|y钏L֝;~wǪU?ˑLfsSXhj*FDsjH.P!LbQYPEEߟc[Z:,͛om\{7aވ{=n>䃕dLT"F,p#F &&jAWb2y֬Yh4vEG9sf!~rFO?Zo̥? gO=,d 55C4eKm-)9#WSTT'++J`L47V80D=Z|ĉf ʕA44WyrkZtVBCd۶An#++ 98߿qd_ `OQQ:A8\ IDAT-kk떓P{<[NN_GR]] {C=v,z}foOc^^P37o=6|RՕU1-koȿK Nr@s̜9}aɧW$]"+<$ãG m ={<&N4巙*A3!Wg'94-up8'Ok<*99Yl#"}}Հ*+klhhu W0e%..G\\l"'OƐHGxy*33_~q,C񉉁nsddR?h+~ذGn4၏ByW^QѬđ ,`66: iB顂LfOl.-=VSp閖Ε+V, {W!66[J ;wS^5|T*eϯΌ,)ܵkEc9PiwfPcfƁ)S,bbp^ `]ffޫ -kk Ԗw ΞFM:J߻7hB'C$6.[vF?yKd%2˛x',p2Z! ZWTTi7oggp8/;wr -b13fDGsfu'0,?L! -ko )^SiӬX?ڵB˗-]ͭ)q|NБԸr g`븆Fmյ%$zDťNNxqhԬYO~ٹc˖]--m@Fв+خ2ô 0)Rⲝ YFlx1nv7Ύf{Wfu[[7ր֮~0 9V@7Ri";Iѿ|)OH*/+B\3~ɞ=ӦYpv8HMh*e˖i#ϟd6bILGQTP(;v~ʁ8MS9ٛ6ݞ6iii%jVM\E[[i4eDbcR!)HhmTS<|ӦSX#/r&jbb3m>l4%&tt4-#5̧͍O޿͛I=ZrѣI ."#?htww7a w ޽+o&s X,-s8A4w%%(y"Ƶebbh舍ͱd񍵽Nj8є#waŸ_dյEG{7j33;ܗ-ħ.CҙNh55>%'$'˛ĝ &O`jkc۶rA&/_[Ǚ<`D|%x ,)/_-XϜyM9xpf2Dw/ܹ˖5VV8 hcqZZǏ%B ֞;~$3gg#~: B%$|H/@ =i9HFͻwt:qZEGnneYY6<8+<88%**#uWy[޼fa,&%%X]hp℗pUS][FSRRS?~,owpЛ3e?w*tq1Tӭﵷhۯ:|)iYG!8? F߽;`bnm *(wo/(XB~B'Alu*&peT*=/ǒl_VV^gg##qqcb+Wt#ESZpb7ȯ0Aqq9x]dIL3s +7n$WyyEEe=='OVoj""M!5 /piHhty˗K>~,pF3 mlttmO~Քeƌ{2eܖ^R[K=Bn20Z&*+3#[Ν{y[U99Ǐjj*jDꎎ| ccM~\Y4$&JϯJO/IO/MO/-/o`c.Z4POFLb"#iAӧ[ݼðp[Ofsd, 6 FDB\\8+ -JUUnv1%h667n3ÇtB=t:emmݙe?geUH]Zs;;:;rd"_AQ&&'8oVg<ɩE*gϲ@sQA0/66gT!b љnᲲoMn_=Д<^w߾ :qdiA2*[uF1#SiQQ= NNy:9tvu'kLȯw -f0) זILG"u2PhDΘaf==z/w…B\JE߿/ yܹc][im7(/ose]]d <^g,-msu5"gdǍ3P(رE`ry􋾾 x'`%z2aիo˛Y7{;xUG$waa|lll0…c$%BZ֝_UVRT_߆x9sx{{}Q# TT 8AbN*e\x0e22 -~qq93/n[W'O>ݿBw^Oŋ.p8ŋ/? N .ntREEuii%HXaa-px.@ ĉ]8ƸqF--B&G.u~] Ɠ22Kȑ7oaG޿1a+fδAћ:ʪͭ"KJbxeff8@98h/_YcHҚyyQ''N4E Lb 3m+z0&˝;;hJ$6z{ f}[]hh(,Y;rs+;;h4̝;3FЏ>--E "G2rs8r)7o޸ׁqZ"Xii÷o5Ǐ{1W~I̧M^^^ҥܹ'p[ !V>~A&f̰ ^3u%a؈ðX9ٳ/  22ٜp[n`ZF H\yy)ggƕ)B+e ck}om|Kppr^^)nvK]TT@am]/cIkkgr$RWxx=韖t!fͰR…ի]UdRA..FR w bb`3lj <4/*rpohhhQլh4:Pkg;򫉸[ޡѨ%Ky0o"+`E057w^_/\Ph׮n}r/i}0ΝeexѣA JZZ:VaPt11~QcaReX,e#I矷Wrd@`P -N/^)S,*-my3رWxws{C -66;""=!!_EE~ٲqLt:\\\ljUSރbx%lw8NRkaA;~W`JM# N"];ׁTL e4޽|y9GmPuuKd۷ߗ7'Nx-X(--BM,i4zEE3Pav?T N#B -KK|llVVQl1SxK VbIv${r T'@{7ܹ%̻h;EE} ZfH!qq߷TW[p8U4j(ڿM+SŒ۷:66:|99l(&vIT@/KK͘/R9>[EE͛GD7 -Bqq9f;xcKKE29F֭'&֮~0 V=yy9999B BҶ^Fal/YXXKbq&&&XL={ݡCb0ɓA YYiBW5 )0Z6\YY}rW >e\ -e&..[IIѠB;~O?ٻ Z O֯u&F} ."#?htww!luѯ8˗6077kdN:yL/[񞂂ׯSZjJJ/Ȱ0|@cxAZ"[_6߾UϜi;e٦8KI{ψWTWܿq+uSS7㶺w|Zmfcezhrr*kXsyLII;/K^VVZZ(K23bcw 0`ezz A>&%3Q(e0 {lN5k&H].ܲeQO?}+W^ VVgn=:47񺒒X^G:cw,,4_ʑK)(H2Vu>'X[k:/0HUFA.dehΞ'b\IёܸG>|(ZΝ3g0ʕAٕov%%XUdp℗-'d`4F+7Iҙ5Fko)kkjZ9(8sL}e䆆v55P+ddh4|j$jFFل &ǢPЅ qh4jw*R{Յ…NI ss sؘ1zWyL c y𝥥B+*oDGhHΒ۷ߝ=X84`@D$6?'KZZF -lk]<yO%9)<|G۷wSH.f &&%m%ee%pȤyL,3u114P3LL cF?f>X -T#gYA%%e7JCS{K^ji)>~mVM'N>B?䐖V'X֢@iJdWyy۷qo^P 2x݌ (p8> g>GP۶MgFOdnYܽ{Gtdm-)""-44ݷo…N6Und.+RRO SJIyyIssM[[//NJVTT޽JJ87C1/u쯿V̜iÑ_%(?%qL0b1jx5cm-#Á7&BCCysujm-gCbbh0ZDuuoEY3 To 1ii%##S)Hxo;3( 8}ML AcŝɾW`FήzdQÇGJ5BMVVEffYh@Fr Ԗ ]X>8-C馧.[6n8 FN2b0h,ѣ M['b>>l32ظl&hr$ut:ԷTLо~SVC lfao*{gѨe׮%&%6:``rt4x,k4C8w%& !fbb99 ҏw, dd$֭v$!?}"XqL%J ~igן<Yz;;kll HMMJkXÕ+'ZZjqq1MME"q="jN~s {{=^A2WWK^6uHZG1_nLF Uv6n6}ٲq|t{8ct:̼p9%xxc"oi|9!052ȰvAOlh:v>bhȁ==T Dжokmr%@ K|vQL&DDWWA&ij@dn?鰖g϶b1C\ԋP4B `tNGGf3 0|nˉd2!4%)RވX,VQqָBȑ#7nXbǏۇBSSSKpM ebbB Κ5+66d i]CiYg<+,߅|A2,3eŋeee 6/BϘa`yaavUU%UUPY\etggM4E |e񂥥))Z\b1X,ZB#&bX,Z\cl;ܘ[Zz~BG[R(Ors[3i$4Z@?~O?UUUټy ץ_|3f ͉ &$"==T))GBB~` '`H̞̚߸vMMaqFm*㾾sٸڔ)SF kfϞ^\\_PP[TTWPP_]RRM Š Аå/^WVVB'0S@>}zxxxoZ=yϟ.:\[KR#)HHv\m0O1K/1sw}Ν; ,555]vADє>} APKKʕ+UUUuttv/0 ڵk̘1 }-zA\gDD… {_|/אυy`k֬A.--ji)hzH.M -[H;ױfj{nn?#޾}[SS3 7@kk'׿~F:QQQuuu1?\SSRSSgΜ*++rppػwoAAAfJHH_]\\v5Yׯ_koo?woܸq{!޷Z\\|!!!0 A7D h$ի5440 ѣgF^%yyy%%%;::`6mZQQQVVͯ7LtzoN) Q}UCC0 HKK#[AAèXy.{왊 Ba8$$((/o%=t$Y2h; IН9`WvviYZZ/>跔 -(e:::x<_=haaQ]]|?foVV 摑ȿ~=𬦦&,{f:F;˫ f!oooho߾o ȀaYkKOO%;wܿ?mnn>wr.AN411 ݻ![ 6o޼o>CBBz3j2d`T*UCCիW0 {xx>}w槴L|$s$ǩ۷_wׁܾd''C<^788r0痛qރ( B -,, "KKvׯSRRttt&OFNPF+..N fΜrrra~_LZZZbbܹs_~={ljkki46+&&&}#AM2ɓ2| - a &s20 `Ȇ/_0|=QUnE;( ˛6n3oCl. } ]׹b'O2t@H/(++[j ˗/߾L >,&&[ APTTxvM;::vmgg'++|)* 3 *,,qOyy_5}tރȈ )))q$?*--Edff8qbtzxxxSSӚ5k<==;sDյx +WF=<<ԩS a0b"mm o`fϞ#yISa 68::d1vBfn``8Cп5:$}4k.]dgg|=zFHUV)))utt})wڥ܌x 766bx:LFkzŋʺW\VWW`5ZZZĎ?pGGݻ{oԴb MM;vtuu UWW>w A/_f%! 6l"HL ӟlN&Sv<{?UK)ea܋cȴ,**JKK u]SSSҥKƍKHH@:e}4_l櫟K^c:/>r0$]K/y XxS=uu,}c+e\zU]]=22ӧHD"1\/d}{ @ ͱ4>(++A_}d!+ϗAs!H>D^pL `[WWWQQׯY<~Nl1oߪ55Q z+~~ljZEvtup.JZ6upppnݺ<-lyaNϛ7,_ ؛/{yi߬|<@m ނA2mo޼QRRڿ?Irr/m읞RKm->3kʔ;:zx XaCR0+4CAA-p>Ž۪@_~ ͛My544233^ 1p^>@ۗ¢;---\LM}{s >@eBD X|a؏-ee;;SFFp4(pPw7nTu,`FZϞ]Zνðիjjjbccj*&.0 _#p["zᚚ778`ddlٲkײk A۷o/,,LKKۿY|z-(ԴǭYfOg8D)*Jc0&6ӲVdM\xZnoX7Ylh``0C֖1#@&=jhh(++;~wBC췼_IIIKHH-;#@FRR'O^dɰ^ާ'7 ZPP֭[bϗBL8QVVɋ5[ v_&D 111dHDSS4(,H~Nܼ޹-x\LLK/vZF"u99f eu?|w[q_LfΜٷJ=88x֬Y O$o?''/\e˯nxYJJ={:@x c!''_cc&4gPQK~Eȥu~Nvdl٣ˋ9ߴtLzvҤS\ܓMÞDHH*-?|{W,Z(<<~3L!Fz[0|dQQM)VVV[!Wzԍeev6ND8INZ[;](rnc3- @E;w>"3x'NlkkKNN駟z3Z/IbH}} /C֯52ՖUU@$܍(_piiCXmmM`$O oK8<`֯_쬮{} yݻwx񢱱1!!_E,-=xe$i[x FA)S,V^Zŋ HQQ… >>>ރ6mߴisΞ= ANjggw̙~W[n]}}=}||O1s}19NAAB&S{bMM"qM!p@/ro^:@h3w?zM^^$&&p{ 999&M7I7\꒔dB!Ǐy-,,3Ã~N޽+\rNqd#&y޽ \ `޷/",,ƍӦY:@22o3U !5Q(T~~~o !++k߾}nݲ:t͛yAmmMˈ33 K0 <z 'iAJm?_Ć=ƀeXݻ;;;z##իW_~䗕xᒕ {'4 8d!!^yL[^?Τekܾvɒ/.ny" ۿ?~UWW d 0\e RWG20PNPr2`qr<ڵ  Y:N T OLjy 30RRX =IL"B h^|ԩi>cfBH wA]]^ZZKQ&<ĕ3m744eǎ0*΍[\"++1IL"A8 `>p!^X?V]on矕u!`xhiiPT`UUU:$;:6Aaq^k+݅mU) `DPb_kld_F]*$x{M~e>%nme m۶? !b9;=|yŊkxaKKͱc mmu,,4MMq22\5𜎎ݻwy_Rƻ0o(.3 8>hmzի22}"P(]]essij *+)ڨ-3F/*jkL̗G'N*7XZ#nvvU;w֩D/>-c ED3 c= IDAT;/83 M`ŮӏcU1!=ÝήXj"V uoX>O2jd2fd'N^WWE__EOOYOOEWWYOOESSh"'L0uZh6.:v,G?ޘq iY}}[uu.WC/r6lWf_Gqqsd2Hl,)/-m,+k,/oz,HlD`mm%=﹚2.!]xwRv^^Y;6_h6saefP([[A\b^h4|ZƐ)xkk'H$6"3DbcR!JBBLCCY|fB`HNObcdv$Ï\]ONسLf!$$ݬeYY*\ #h4ѣAAwھݍ™ FAA3NjkIҵ&dު 6@uf/^ucbXlAP(-,ʟ:;ɛ7yK> 8:`L2Hώ~,d27Q++kLJ"ܾ]߻/tMOOtHl`::ʼ1,v$//Nj_رNNPȇ!h={<ֶ7:H%..6pA HZYYcYYSYYcVVyUU RZZwm@WWYGḠ"QSSϛZ));6RC͛wiÇjk+:.@QȪ!UH]*_ qq톆jiٰʪ:8;ޯp@y2 ywcXf`*//ŋ'cZ;2rK||C&O>q[Lze>)*JsӲׯnpN/(h%xȽpµ3H[Rk yK nnSXܺgaa{x,Z4A*4I"# JEƞ9k2l&tM__EAA;@_ee&:A <=.\۱# pfeF e0 l۷v>ܱq㝴kVzxy H`Zߍ@f &Zt|9z4zē[N"3bh4Ѳb99IkkQukܤo&i``55Bڴu(s̴iVp|lXX#ܬy(VJRRƎ5䫽좢>yN՟x H`ZO "?:>><@^^JWWYGGIWWYWWY[[IGGI[[ @p(++,@8@ZZӧsѣy"'1aNI)\v4$~˗_-_> /H˄zH֛UT4gf?y򥮎,hk+|ՐM]]>BaIKK?}.u9|y_ 兪1!FG}ɩk2btBbcÆ?%μ22XFК@UZڐZ\QI (+p 38<'ol.#UVh` TiL^acёvp_j|tCn.U'omթWߠom AX,TP6Z ՝;$6B4PC$6N(`1XF-;cͥKFhD6h!S̄?h"#?< YBeɅ di{|Vw~ U.oQ^^Y;6_WB'1t~LeaLܷo U"e$%[ԴՑ-)PYL!b1ZZYZQmm!MB"uv 2LVݺ6)p#WS}.&Ƭd(4i٨ظaí@_O1 8e^w|`Zm-))\у<EYQ##u&JK :WW/vݺ11_g,[6Ndži4avBB0NɓffBe -FɐkH%%N p8yuuyL6b0he^2z]/^|o_Dhc;9:aN߾aÏJ9ʕ//3gII~ U -x)_x_Zmm+f8|BQ%PhE̱c.u>|Ѽy̱;|xb󕘙e SZfHUV6op۷˗(FH5XAo6d2x=Egs kk:hҤӛ6et xץRiLҲW򴵕,,4G3މ˘_%  `?(+k!Ցo׷ǿ+C呤@Mځ "Q$)n;{YXX=uPCJH`ט/fَZ0`) -`Xe`5ӻQ _sE:JEE BχLaS9GZz:^hnVmYYY85==?8!rb AXclL bH$ "\$J dF.岼{zy1y<ۻ'ݣ38ڢZn,Vrrb$&N5kM[_}5=(&67 BIVzco}uʔA[|.#;,I!JɈP(eϞՑyxz2\&דո\XkҙP(]O.y0E7nf<<=ťK7gg_}4fLc6m{`Ƕm,Qŋ]꽘82:PCɕlsܒgGoPFh4DIR8|>ߟ;zneRE7&4t{'Wb{ `ilQQ;n.O(YLvҥXn٬^'0abEh4L329S!==Wo㙙7׮s`nk {(Rg6 ,]S(:]ԯ.jSS$#Wԏ!t5K` ;v\R*u?;T ʕd6ۥŃsrϛwМ96 BeGo*|$Xe36r[yTd[[v8ξ`ao:i{UuJС_!1qG '<?^8rB9Qޭ"& h4ʨQA} gFa9 dɸ)-.\("b2J 䤧G`O ,Xу7sye&qpQ(XSB`G.>:JuVoL\6͟v,^||jaw~愀;v\޲'g457w{k ] V :"J;y߿RclpO*h;sGǿmګW7\y1 [~F\\D[ʯk ^Vpn|>}!Nr̜= ˤ#?x֬=Wܠ(aa%v"]<A#e2Kt ;3 ô; ʟ={%.Z=H$#׿}ȅ ǴoׁD`Uy͙vH^8G=)d^l<J=0l~3gDE }LB>z+0<7""u52@;;@Niicr*P(_Ų*H$dϟˉ>$:d:J$hTZ3yr:jjqQ޽ʢ"ыM!RB8}ֺUq80U*?tDDLCo6'+WFaR*N92 <7`{mklT>~\۫W~ oWxx D:˱{w֪h۷<+g's,H nԨQ=2.k,i/oXl0׍%jlT # t:Uh4o 2e۳rZyzQSSSWWѵ]e;!Ba FPT*5Î 2=uQG `'B..}} nwĐ!;wr8=:"J0z`? &tjڤ0_&Qί2..Ì?Ν;4ĉd@ `0߷Du`Z|~llD"1q<111.ZVVVfEL&sŊOt̙(oi:ڟ>x/"!!ŋE^z7n<}T$]ŋ### k2ʕ+܈-%%s.6rnjէOm۶;Xwo۪` , ֭[>}9>|8B!V]\\Fy-:233l… uEqF^՟tY.+BG lhh@)dT*KrJ޽V^ݻwo6KvBYR^SSӽ{wGGG%t >;&# FFFƁ6nx :nxi0 [`獕}]fs;AAA ͽ-4Е\v{yi4Z}}}II u_>}^^^!?Ǝ[\\|Ms!}]\~)PMMMo&sʉ3gNuu5ùuy3gVVVW:iҤWYf6lXRR\9--`9rj^\M$I)))k'Zp'30Lg'5V6ۉ(!22 ׬Yc0 Hrssjh;ZZ GR)NOOOd˗jZ2000##<СC&²Bcǎ !Zn]dN92ㅄhlӧߗ.] վҠӧO>|[?v6}̙RomXFf'h4iӦQԘ-eN+SLM X <b޼y=:??_g@PJ 1Q3f[ 2?x`…d'O<==Ǐ///' /_~ӧO7`;^__T*Y,Npv4ϞwՓ'O \>;2 N7H$2@ůB@jjjh4'NJ͛:uT*>߻w|=bZ\D owILL$.LvM""ݻ6l0`;̞3qD튩T*X,6*tWUU%$$5j,wiq|SL1}veoB"n3@  "##O:% Nwrr"ުG-X 99Y TWW䤦(-11/B>k4s.]ѣ/_&g̘pĉv5{/hɒ%rlgiӈrL&Br|ǎڧ&>}q 7oB(11,] F,HbkצO^^^l2snLsnO? cbbL$Su1???ѷo_@Rpvvq\Rw}ĈDe?#wwwOLLlnn_`d6-sA) dz<==Yr<..bk C^z:k,LF ~vB1yd튭_d?ɞᅮ)oߦP('O?r~Yg7Qۉ(a߾}>>>nnnK.mjj2hNal" 7ot>\~=((ttEZ4 @g`i555EEEFA` ,`zoN"62}Ϟ=$`# , le6X\./R5| Zb)  F`n*6:le62&IDATaMP9_IENDB`XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__dep__incl.md50000644001725400016040000000004013273140074020551 00000000000000b2ae9f4cc8524dc7177dd79aa555bd2cXQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.map0000644001725400016040000000046613273140074021567 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000006_000002.html0000644001725400016040000000373313273140074015710 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    schema → items Relation

    File in include/xqilla/schemaIncludes file in include/xqilla/items
    DocumentCache.hppNode.hpp
    XQilla-2.3.4/docs/simple-api/classSequenceBuilder__inherit__graph.map0000644001725400016040000000057313273140076022644 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufInputSource-members.html0000644001725400016040000002727013273140074023575 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::MemBufInputSource Member List

    This is the complete list of members for xercesc::MemBufInputSource, including all inherited members.

    getEncoding() const xercesc::InputSourceinlinevirtual
    getIssueFatalErrorIfNotFound() const xercesc::InputSourceinlinevirtual
    getMemoryManager() const xercesc::InputSourceinline
    getPublicId() const xercesc::InputSourceinlinevirtual
    getSystemId() const xercesc::InputSourceinlinevirtual
    InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    makeStream() const xercesc::MemBufInputSourcevirtual
    MemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const XMLCh *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufInputSource
    MemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const char *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufInputSource
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    resetMemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount)xercesc::MemBufInputSource
    setCopyBufToStream(const bool newState)xercesc::MemBufInputSourceinline
    setEncoding(const XMLCh *const encodingStr)xercesc::InputSourcevirtual
    setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSourceinlinevirtual
    setPublicId(const XMLCh *const publicId)xercesc::InputSourcevirtual
    setSystemId(const XMLCh *const systemId)xercesc::InputSourcevirtual
    XMemory()xercesc::XMemoryinlineprotected
    ~InputSource()xercesc::InputSourcevirtual
    ~MemBufInputSource()xercesc::MemBufInputSource
    XQilla-2.3.4/docs/simple-api/inherit_graph_19.md50000644001725400016040000000004013273140074016365 00000000000000f776393827f1cca61f038b0f1c3f5b06XQilla-2.3.4/docs/simple-api/XQQuery_8hpp__incl.map0000644001725400016040000000426513273140076017021 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1InputSource__inherit__graph.map0000644001725400016040000000175013273140076024060 00000000000000 XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp.html0000644001725400016040000001605613273140077017275 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    PlatformUtils.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/XMLException.hpp>
    #include <xercesc/util/PanicHandler.hpp>
    #include <xercesc/util/XMLFileMgr.hpp>
    #include <xercesc/util/XMLMutexMgr.hpp>
    Include dependency graph for PlatformUtils.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::XMLDeleter
     
    class  xercesc::XMLPlatformUtils
     Utilities that must be implemented in a platform-specific way. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classASTNodeEventGenerator__inherit__graph.png0000644001725400016040000001324413273140076023701 00000000000000PNG  IHDR;HbKGDYIDATx{Tg( ` qV+VV-qDl-xY ]zN׮ .+v$+Ȣ"/U* cl ! $.x<3oygf~y3C2 A f @?BPjkk7oެR 2IeGqqqZZ!Cի'O4T6?h222 yQ/_nl8@H !~ $C#G)裏lmmV^BCCǍgkks)QYY`0٣ D"b>BGpĉ;wBZZZmllӋWXrʋ/|j6y^|;]]]uǎ...GopWWx<؛ɓ?~k׮ dfZBL<`XVVVvvvBwqqp8 b֬Y@7>x+W qĉI&9::رJeBBsvvo_~ʊ.;!!t[[[DDذaCwwY@{oJڹs F Dzz`@iiiGGGGGG}}u"##5n߾=00Çbx6mN_/ e2YӠ T---;w|7bqyy̙37l_~T QXX@ oVbbv}pp;.;F/# Ν;W'N(HK.M6Mg   ;DErMݹsG3wVJzWG.3[nѳ^^^?tp&LpQMc;;;?̚5K󪵵=vvv:[\_{ .//[]\\ Êg̘#bvCnȑ7oS?lll"""n߾Mt\a{RiQQ"X,rE5rtiim޽:* &Y]]MWUUJ)c7n\YY&ۄ_ mlݺ̙3? Ŝ9slmm]TܹkԨQgϦg-lX?~=##| 1}CAH !~ $@?~=;v777KKK~0dהJ={RAA#"| Sb.9N+-gP(T997ɓ~or"ݎ8uꆩ1ЏgdeݰRuKnSR* ;zz.7pB`de]7a=uU*Px K2hk{z}RHQpBJ2'~df^Wu/"ꢢǏ$aƍZ7LFnnYap#;PJk-0; mfSL泷p>x\n\rL]0/!~ $@?B@H !~ $@?B@H !~ $@?B@H !~ $@?B@HC=@\\rX[ѦbPxxxaf͚gaիWk#td_;vlppqP8 $@?fC׿vpppuu]tiYpufJz9lfѣGP(<<Ǜ;w;xN%ήͩV[Z?{۶ms9t}pnoo߾}c C/K.\[qpp@Pǻp8xB ĉ&Mrttܱc̚5 4hvڥ?Ȝz#+++ F^^ǻrJnnW_}շ6aÆn z #\ 0 JKK;zCQTZZSE9s* oCX<}M6IRiJJ TTThVNGϩ7 jժUuuuԤ] EQaaaJ,[d2a[gߙz5jTqq1EQ+Vؼy3?qDDBO_tiڴitHDQ\. R__OSo$ݑX,(ݻ2LRD.3[nѳ^^^TTTxyy4,Y$33sgϞy&^[[ '\.X]]]+**᧫REs9qD~TTL&ҡQRyzzҳ^^^uuū`+Wyw|>f2EQRnw,,,7F9Z|y|||IIɁVd2٪*www fy7t{'JVZ 7oXhѢ2d2zb۶mǏbqii-[RRR4d9ɑ===rʪ+!!:::+aX!!!111555n/^ts#^rAmkk=jkootppprr줓hB3gf@0f̘'d~r~ٳqرXr%ѩ5<<-..K'?|˗@FFƫhb}g^@?B@H !~ $tիU3Gb0=zdq+fw;vٳБ1.dd\vIѦ\s@~=Ե 3ZZdtn.E3Џg`ZMef^3u9'C1_ "=R,8}iK2L&>J>yO1ɓT) ~Qrcd&PQXY٤sb=[jXLFBVlz n(RH9̖ǍR/XӧK\18{aeeJ~+ςY̙3fnOr8o:m/ܸsa_2B@H !~ $@?B@H !~ $@?B@H !~ $@?B@H !~ $AΝSX𡨨U q=~vVVB̃+Vh+T*@$6lٲE@?Bb迏ȑ#QQQƮG^|Y YYY ?}DEE͛7/!!x>hdrW1۷o۷Y,ɓ###=== ދE B#HJJjllӟä___óD"Y~1c ??_$͟?WGsss3lNDf͚3gгMMM.\9p~3;`%g痚nܸN~ʕ(>ooo?uԘ1b=8%,^kkk!H{{{޼|NZޮMMM2eg}|~:wo;zJ  o;BӚN>``{?-ɾ%K`wޥ#Jerre˖-[L_/BXxqQQQIiiin: %%%#]V7ﶷ߻w-Zd2 I.]jkkpB9SemmMtB93fÇcbb8tvzηͥAST(T%KhZD"o]XX_rҤI&M ?zhrr2}e˖]|yΝtT*U՚7{ss3,5~xzǁQF:}17??ܸq)))$l6ђVVVuuu>vtth"y<YWWk׮.GK;xa?jH$Zno~ȑ#"(22[x=777..NӨ}|"izzzgϞP(Ο?ͥaE,K_W#buuu#G|lRTT$Hn߾}AСCՕǎ$G* Riii)ӧO+ѻ VBpT>rE"߸qSRR#""^(ŋׯӳ[f Ś?~XXB8x`KKGz n߾}QQQ ottA---͛7oK-+K.YdEPaAZSܝ;3wgfsWK.Da'q_k DQCg 0Y:qZ)~L0HV z-C%g68%wUϿ }? ?3 K@h aaUe s~2&&B*Alji*˨,oƣT,d[3-*> LɟfkҠw#*AEjKUy>&{8m5Ki jjD*Nigw7DmzK۾M!k?o_lX#~XӑR*EՂדE;6e"Q(=Ezæ5Kؼָ_ 1zBJ X96jL^7{J1i@%8'7M_\Q#Uy Wo x8sv|Sn q_m >b[JX,4[T{Ratjjzz'ȶiIws KC^Y%6ꈺ]vhiWvh'̂|[^YrD= XQilla Simple API Documentation SourceForge.net Logo
    ATTimeOrDerived Class Referenceabstract

    #include <ATTimeOrDerived.hpp>

    Inheritance diagram for ATTimeOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATTimeOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
     Returns an integer representing the hour component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
     Returns an integer representing the minute component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
     Returns an decimal representing the second component of this object. More...
     
    virtual const Timezone::PtrgetTimezone () const =0
     Returns a timezone object representing the timezone component of this object. More...
     
    virtual bool hasTimezone () const =0
     Returns true if the timezone is defined for this object, false otherwise. More...
     
    virtual ATTimeOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Setter for timezone. More...
     
    virtual ATTimeOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
     Returns an ATTimeOrDerived with a timezone added to it. More...
     
    virtual ATTimeOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a time with the given dayTimeDuration added to it. More...
     
    virtual ATTimeOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a time with the given dayTimeDuration subtracted from it. More...
     
    virtual ATDurationOrDerived::Ptr subtractTime (const ATTimeOrDerived::Ptr &time, const DynamicContext *context) const =0
     Returns a dayTimeDuration corresponding to the difference between this and the given ATTimeOrDerived*. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual ATTimeOrDerived::Ptr ATTimeOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a time with the given dayTimeDuration added to it.

    virtual ATTimeOrDerived::Ptr ATTimeOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Returns an ATTimeOrDerived with a timezone added to it.

    virtual const XMLCh* ATTimeOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATTimeOrDerived::compare ( const ATTimeOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATTimeOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getHours ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the hour component of this object.

    virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getMinutes ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the minute component of this object.

    virtual AnyAtomicType::AtomicObjectType ATTimeOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATTimeOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getSeconds ( const DynamicContext context) const
    pure virtual

    Returns an decimal representing the second component of this object.

    virtual const Timezone::Ptr& ATTimeOrDerived::getTimezone ( ) const
    pure virtual

    Returns a timezone object representing the timezone component of this object.

    virtual const XMLCh* ATTimeOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATTimeOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATTimeOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if the timezone is defined for this object, false otherwise.

    Implements DateOrTimeType.

    virtual ATTimeOrDerived::Ptr ATTimeOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Setter for timezone.

    Overrides the current timezone. (Not to be confused with addTimezone().

    virtual ATTimeOrDerived::Ptr ATTimeOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a time with the given dayTimeDuration subtracted from it.

    virtual ATDurationOrDerived::Ptr ATTimeOrDerived::subtractTime ( const ATTimeOrDerived::Ptr time,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a dayTimeDuration corresponding to the difference between this and the given ATTimeOrDerived*.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_0b62eb81f5697eac1f344543267dff7d.html0000644001725400016040000001121713273140077020754 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    debug Directory Reference
    Directory dependency graph for debug:
    debug

    Files

    file  DebugListener.hpp [code]
     
    file  InputParser.hpp [code]
     
    file  InteractiveDebugger.hpp [code]
     
    file  StackFrame.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp__incl.map0000644001725400016040000000241713273140074021163 00000000000000 XQilla-2.3.4/docs/simple-api/structStaticType_1_1TypeMatch.html0000644001725400016040000001044213273140074021334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticType::TypeMatch Struct Reference

    #include <StaticType.hpp>

    Public Attributes

    TypeMatchEnum type
     
    TypeMatchEnum cardinality
     

    Member Data Documentation

    TypeMatchEnum StaticType::TypeMatch::cardinality
    TypeMatchEnum StaticType::TypeMatch::type

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classNSFixupFilter__inherit__graph.md50000644001725400016040000000004013273140074022162 00000000000000afcafa905302990d4547005698b21f45XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLDeleter.html0000644001725400016040000001144713273140074020535 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <PlatformUtils.hpp>

    Public Member Functions

    virtual ~XMLDeleter ()
     

    Protected Member Functions

     XMLDeleter ()
     

    Constructor & Destructor Documentation

    xercesc::XMLDeleter::~XMLDeleter ( )
    inlinevirtual
    xercesc::XMLDeleter::XMLDeleter ( )
    inlineprotected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATAnySimpleType_8hpp__incl.png0000644001725400016040000012600413273140074020434 00000000000000PNG  IHDR\@bKGD IDATxy\4M"-J҆"fV(-Ji&JlBdh:3?ƷK%334skk>9(  @`P(AQDu֢Nh ڵkĈDpp)7~x)))A͔&''ؠ3E_D"QWWu @3#t"E;(wPF@c'Oo&eeei oP-Q(b)) 7sӧOcVWWrJc Äz;>|۶m|Çh~(>ŋW^UWWwO0L899{;\tm"""***^^^/_0LXXݝvo?~SERqqI勋==B'''%%aDV##ObǗH#d ޼yZnnEBBB~~Ittt+/_hiicȮ0KKKKK˰N!{k?޼yԩSEm~@?AQ4C0LGG?>ҥKGojj5k˗I$a/_^MNN~}}ݺuرcW^Z|y\\\w5ܵkΝ;]iiiuuu'Nk""""##G~@?AQ4ѣ>`/^!s0q„ p8 Փ:4q/Z׾lmm 1 [haMMM,_\NNNIIյcsssW^-%%5rHׯz ci[KKQ'hD"w?SRR0C$$$0 J]VV6r[ny{{cv]]]%%%%%%GGǘ0[q7999yy?G޽wcOuW>OPm䒒+VR9qDIIO_?uuu#FL8QRR0 SG)q8ƙ3gjkkGaׯS#hאߟf{zG~@?)ʆ3gNmmmuu5 QQQ!HQP xyy nZ^^^WWWUUuر_O#44͛7=400񏴵#""޿s??>5doٳg[ZZ~3E@SLO=zLIIѣiu穗!"""޼y#**dɒ9sx{{Q8ttt<<7o*m[733IS=a=6E` ZS~gwP(AQ4Ξꪣ=u(E}򭠠AQуsR#&,T{Ǐ_u륊0M"QnAQ޾w/795ky*JĴEۍ/ΝpsxLnԡ`PW>W9s͗<<-Ѧ& (R}%:ɓx(LoAQ,?~sAekQQ~}}%33YrqJQjnnOJZng7} =iiԡ`aPܝ;23+rs~]/++:oyTNU~bH[GBBc%>5O^pHIԡ`IP˗oedT<{AAAtV,T̊C ^db2{1CQ@Qd+_~ϯJKySaa^SI P u"UW9+"4=zP ۻ˻s(ĸ#F䰲RT;}yg>>F22p߃d͛/nffVvN2|+ )p>͛7hBN]jjkk;XBbPϷ෠(&'_ʪiʔ&O;gfjd419}Khyý7)ƶ̊w_!ae`ϐXbo}8qbHH!''~r=7Y0_AQd 㯦"Ȇ4F3Eђ ^^MPZCCKRS>QEe4KK5!!#.T_ݛ~KEe ԆNȤ**jbc/gg洲Ұ>~ P`(T ̸r噵ƍg#K{{W~7_=$ n??M hoxTς͛3fܱ|ʕs` 0_fII:T竩@ ?em1G9R^{5l3(]<"^Ji|&`<veiv )°"ʊ޸#oxx8eׯ׭Kvus &ABPG_|^=c\X< |Towl^I$9KFONK2Du"w\11.||\G47wQoYXTT١Cl`bTWWSDA^zܟW=j_?n߾޽oڤI#?HJJΝ;4̀᪫i_?uǦccۢ'3C55W[[Ò]'""~?=*33¢ϟKHH!E}LP哓`[477r au72aܮ^}: l:y͗'n: ԯr7Sj`bb۷_{.+((0kF~D׎0 {)'D"q`ܑ]ySlxx]"ĉr^=odgg644`8f̘2$((YRRBmc/''g|||݃>}>v :N__!CHIIvvvbᢣ$%%w ,,yfQgΜQQQ9rd\\O}QLJJ5k֜9sƍy;uꔒXPPa^^^...?mnn}v|d 999߾O+00P^^^RRr_uI9Meee;VJJ˫'FݵkWw}11oy}vo4qAVvM]]$Yŋ޽{7dȐk׮Q(p))oߞ={VNNð_O466rqq-]6>>ð>P(踸ڳgիW*++LOP0 kll0Ʀ1<<ðO>577sssEEEqrr677B!  % @YYG ì"""0 ;;;)J||2Lނg*++'Le˖߾ݫ\YYy޽iӦ{sR_chhɓQFQ0SSӧOꧦzkosH~}ȑ~oM# )$?UNn]D`gQlhhSQQSVV~AlllEÇ$… 欬{|򥴴4J/^P0@ 0QQђr99Yf]x㧾$$$p8a? _`AzzO I$%Fսgo[MMѣ,--zˉaXw#ƍs_I"Kx.nob@bg'iUƺ6x9sx{{S{n n׷ѣ'~D MJ&SSS]\\D"%''߿֭[LP/ `F$322RRRcſmjȐ!x<={&++۷MFF˗wٱcG߯5'|ð'OPK]>ToOқo\>>cy㤤efEeKZ*11̙3-]7++ݻwyyy}7aXSSSVVyonn>X` jjj*++98ӍǾ.^{{{YhӧO秭յm6GG~6B} ŋߴiӏ'pp\j7nظq׾ޞdyyc33+/2SC5nKmDq6޺u&ҟk!!!&MP(۶mSPPLHHHP/&&6lذGىwN---󍍍΢---qrr"׸q㲲:::~H&ׯ_G˖-mllm#?zGGGqqqiik׶-tmmm>>>222vvv ~㔌rR_9|p UVQ _SÆ|^Hq!Զpᱷo$%-;v(8L$%%գGfC# ˗NB7~I_MM } h'BY+yy22"4ibS۷_WBEh777Y*9i/\$ KNG)(HXҵk՗.]:K_z)$$A{l ~~(Whs o)D/)y\UUufDSmO>X$r.kGm_ؙ"BOϿ `Μ^^qYcukVJHgMMEY c1# uX(8q)",$~l%Y;rġ..bx ?yOFh99wƉ:@TW565uAajm"ƝBp榫Wjjjү}-ў74I~x-;䠄`Z ..֨hE5 IDAT|rÆ m2`mMrrMkV@\'UUI#pr2).jCD⑏(vv^?{v8y]dÆuu_֮5aaNU\7g/ C!feK{'OAEy)c#GJmpEg+;wҥ -0HK8`r̙^z`(={ĉKwa!7УNұc%ZZnݪIL\vL!! 87^9>0l@Q7/vüE͛_ߔŋgXZNA07ڽ%Z~̳q<AM .eűc7o@*W>;u|Nkqq0 òw69ySI%%'O_02ۻP'bMvmR[CO(vx{'͙3~7/S˗46V)*:m ?$,lqjMC}բN)8< 1QQܻ7ynkAztu.^|d~\HJ #|9:T8 4,ΝW,E7ecZ7Pbxqԩ Q'YYcRda'ԉXի`P f)۶eMCT\p֬݅ÝP'/sw[[ܹWQ'ba8.(ȦˡCEҥ7p> I{{3g.):;4'g͢ES=",%!.--wr+X:)rƴ+23F@=11FG_ :QP2>|z!.Ǐ_hm\m x >~.-G?hn8 XYFEks=//D()iم a~~}*LA4Eo/C;`Kohh9{vEQamZZc։ ,Cp]$&Xx3eD"}6l֬yyJJҨii4ϕ+lɄ;v̝;64XRTf* 7!S>>2PjLkQCOG#8GE1#X]x=z LdΜ><&&Ξ:S3bo!())7Ta{*)y4o!!u'ˣddD22V99inޜ;ji'f*+_ 0FddJC899LCBmm~؄:i}J5U1(\>]zZ&a,#Gyx " eg{yhEE 8LjҤaꁁpwC"B̼M$jppfl!zz꣎3)+;v 0g755;V:`^ -}14NUTonn[g`:%*ꔻ_שNԉǎuZHHL(N]'N 6DyzGD8?H<\b,II{aAT3¸Տ,-C?xpzt|7J}^[NNVq۶TZZ֭-KC#";cb\'LU2#=שJɓWPAOBBuVhhׯPĝAEIpȒ*+_/X:rd| 8?ǝ[( !C'AA66mޜ.[s1Q 6;SSVt "e75=* =kNru9xk$vv~qVT(-o4"˩qp85:*j)77'8t`dj[ZNvB$jǻݳ?Ԇ:J..:|!!{ ƍʀܿḺcwy覩9JLð.qN[{Lf߽ dssszy9yrMgYz(^Re=6iҰh..?G91 6m$8$dn~8,Z4]VV|Azm=Yœ'llN {KmmmΝ#ꊔ`3a& >: ihh1ų",,'$x kh+f=u#vKysJrzw^mma99Ѥe}MHHOObX0niK"5Bc .LLLO[[;\\NTTs`L̙wءǎ-FĘYYt͋ƺ]1 0v~-:ľyybc].\vcZ_"88pk9sѣ:YJ ('ǒ *MMmwuOff/ͽ:c=|nCQ߾"''ʀu:9E~Дl%j9stzuF^m}N3Ŧo:{yH+"BHJh_O̴>tH} ]c+V޵رAUwe`^`0cؙ"E{98'΂IHH޽O744>L&L} ]c q/ٰ!L,[j**J>\:@ag0|\ΞpA~dgg644`8f̘2$((YRRB6c4''g|||ݵӧON>ðC;d)))__N p8\ttݻ7oL=̙3***<<<#GSѤ5JTTt׮]ƐƎ+%%唈k).rpV̬xup5\PP%-}fH Rxb''w 2ڵk %<<\JJ*==۷gϞ0ӧ~}ŵtx >|@Pz}VWWc_>}J~0 355mll<}4. jԨ-[d߿"H$Caa>>>d2oaSmܘ:`4Ŝ;kHA%{eʔ-vvaiEANNNEE[YY9&&}677H .t$++7n\]]qAA*B0Btttӧa߾} d2D"8~0 +--P(g>}J35jTO[HPΞ+/;Xbt#|޽c@>|J"Q0 DssqAAŜXADDݽj>\UU***}###55͝}- Kiii ^xA}^PP0c DEEKJJf͚uE5~%##a~5G>7n\mmmOҕѣ3rMዊ*C0#NkLׯ_Ι3ۛݻw_PUUw 666G>gddgc 忟J&SSS]\\UV=yZ5{{LL&9si0EnnN_~C0A$00…Gn#F0h"L^tU Ϝ9aҥK}}}޽{w#\\\555eeef lذȑ# O>A /0,22lz7nlܸ'tґ#'N\ܲ뢓Lsu@ʺ--޽ߊ"#6#5ŐI&uttP( iim۶)((hjj&$$`}^SP(6lѣGDEE{~eggFgggQQQqqqwwW{{5nܸ4PZdd%$$VZ}"hrMGYY [uk& dNv܆:`(Bqa>\@6yot Q>1E U1lغm۲h,iH2A:`R_j,}̟?kݺDi8"..`kq'x<\ob;fs_|sv8Q.(uDŽ<<<$66 JϣBGzo4 =&!8Sdgd2e.K<8=αCIIIIITlmd_ŞCÇ*=Zlj: u@wPپ}y.=X%..: `[vv;:H7vvF.-37?| Y}AQd[UC:" ^(OׯOqp:_$%'_CHIYQXzsjq8 ;vXegߞ>}Ǒ#Emms1OB2<.nNqqѾzكoQtEMq|AU[{_ԩ .ƺjiFox+WV}P̙;㯒HdԹABB !˗oQ]І%%(8YdOPAas*!s2f8=uBi ~~nOOW7lܘ6{vNrɰabswa 89i>}ӧfAAQdyMMmקfEutt_6mOW7>l : lnYR~8eNb|3fh|KO7n<: mX[r%%]CE{َ@sALkkѣ[l47|?AA622"s1Txә3!NN/^|DL81СYhk©qqWd@QdmUUoNhBevugy@k6":M2'N|ݳqcǏs w MLd .۷[";L@\JmӦt#Pyy8;w^${qtQX۰(g,uuSSڹBڙsT1c&l(-]/--`ASCƄ NGeUDDvE\ʕjcQUfIjeeD ԉؐɓnkj>Ϛ{ǎvԡh@Wwܞ=ii7QgO$j EE|^Ww銨|ph?''>۷[ δlhzem]7Xw౛et._Fe g}--}:(ѵk}|P{n/LO_$:Ѡ@ ]]u6̙3~Dk#l_@ۉYo#$f̀mEVg`l xq$!$c` #, " )3gĉr촭sŊk==WHI 2w@CԲ2]qk$.Yԡ3:۷خ.ָZg^.Evן\NXX>JH >QQWxQ[{ב#E2s`_qu~S̼: (L-$PSSCnhnn^3a6mdau{s53N(wXb5NN33Ք먃ȼ\xժ9 1%冕UĉrFbXa~I(6o`6TW8} nmGV7 Eu`2f1tBۗvmNL+t$/LO5{vPqCԉ~ozy&0:UUc6, "[z&ק:T{Mfpq0ހSR~dy+V}؄:T_p8\p¡C"zZFFEg' uǠ(2BIcczw[sTz襎3`*RRaaNqqn7oۓY:Q_cc]WN`zԾ~;,"N@jk22*l}S7o<.5еk t())t\{edDEc}.ߟre7:Iw>^jm}tQ镬ii7 Qg"3 +Z@hk{+;{t틙={7*@ yyȢl_1 050n]M̘v[uu knjji9u^Y[oؐ*$ċ: 0|tZ-[K5޾`A(DNO_9+"aff x<ʊyvinԑ3S14 77oרdGvAt/rqq.\8~]y`m}#-m1>N *L33W|95ܼyi#]\N|܌:Ky a7Ev8qEN]|NO_9d`p8kkeeE'MHȩ+8:ܰ!8 s-&KF3MDƍ/ E撐Pڹd .bj %_X 0')czW>Ϟ'1u EE9WUپ=u?sFPY E&E/]pUCC…axÇv@"TFb6}),[z. bs*ˀ{zj..'45nmlHTP0-10?drsNJX:+޸tԑnޙԽqھiKh#NE/(;!J}^K YJ!B*"BO3}y4Mܙs﹍9yγruu=ǤI>TEsLfG\lFCV %pNׯAeΜ!1/_~qt.MnTj99 %acc~z..44 A!))رc]106vwؤIO^',"''qɓ;ǑJWP׬qH@g.^nH\lS' -W&.\8BTĭ6 +Wl=g ڄ@X@8ỽ|>ljUmk, WPho(VU7[mB bPX_3d~g->_jjQ st "ߠRi/Ϟ=O.XǙ'Osq te>>;vDyz^Wܹ?~TFE@;&M*'@"߈N񣚋''K Sdee7nZݛ6mZIIIXXϟy!נC@KKKKKK \]]p YAAAuUn^ȇ7O2DoK|74#GII e@"8}:n0}++m!::q7.nO[ɓ'ƍkllhii@A^+**> <ɜ6$hVڵ7X2#FJH<@J_ʭ,Qu9҈+ v7nhSNHIIp8拥<WUUΊ 111 wٳgZZZ^bX]tDQQq׮]Օ @ P( 6(+++))mذBڢUUUx<@R>|Y`oSSS;%hZXXTTTB!H$2,##әfXGfbbҧOZ[[mۦ8o޼g+bb|h4d„/_~Ŭ_sxԩgw28rѓ'pUAxLTUյE3FJkK\LfX \7(׮%jixz7sq&hŋ/Yem\~ 0.bMHkiӬ8oׯ?  )YYe˖}iŊ蝼< rӛ1oL⋙::80$$YWWGPV166"D"F)((PUUEA---%$$RRRLbii7qDϟ?TZ]__Ǐm=z޽ 5{zz.ZvC]@g611>}:6<|ERRDZLLj-.N^#I  h17©RR9oKN:eooQWW񿈫OOaÆߟ>}+aEVPPPۧ7ox''l++cǣFQYY@ sss*A>{͛7A\\|>}BAvԥv:+e55:--mϞ=, ""D'c/^|_iig''<N1n\O _ LFS"#4̝˅P¸/ivM'ssh4ڢEoܸhE6lUVVi&477m۶5uT6*"{ƌ7o.,,LOOwtt 899>}zȐ!$.$$D[[[[[@"\]]W^uֹsvlVBBhӦM˗/ojjb>ii?1ԥn@\jUaaacld=<.=C 57 |pLBB66=ѱmmcr2?φt gb[Zy; 66/yS)g oP _uOK+*+e.QD'4wS9'MM??'"*++ѳOÓgϞc[SPN.6L?&'KMm肴sOtsqCb\\BFHuxpҫi,8i"88oSa`϶mƌ|i4Ze%I !wAtg:}v O0@ѣSR%xv&9<7{nx0+d޼a1+wYm۶]x,i$LRAR:dhh(%%5lذo'p䉾ܾ}FEE)))^M?8Ņvk\Ӓ%#-_~˜G|W^|<7 >fIH6!kE y~vG:Km~t&eGM1N`ҤIwTTT͎7.;;͛7tUnriqs--%K.740~Р_]699!]{|WUյ]So64tKNRi8-Um|XUU&-;bl]&044 /Rmop~ǂ bIN0`?:y9II9CB^v:po̺t ϗOd"\(ӧs#"ݧO[L*BNNNYYmoX[[7440ImHlDd hN066bx%ֺk[[i&GY}ϟKxE;F66ύ &ׯur2dփvqllEaŔ)S9ּR(qqq&-Z[[mjg1+@:iOdggVV֖`'##rF,Zcgdà/+(JHzCANίw ̱ᤑ+*||sK0gϞ/_zxx$&&رĉh:$-deeW^=qD3b|@ђwaf͚-[3 aIIK-Y2jժ#GbN^ IDAT[^' X D˗%ςtgMLuG EnF-=ࢪv"JAAYԤ|}GS[ {nYYY==(fO]6 2|pIIIf$חE2l5: VPP'hw>zb^IMm]D;^4g /ktaU~uGFKK[{I#?22\SC7%a1Ü!˜HD`" /_~122V@yر&jjlD"pX=Ҟ܄puuf<+t3JL01QUSۊFO[UUU=k [rU.DPRR:{,+7!"''q抉. ?ݖ1j14FQ^^w;D"ۛ㱒 pz8!ǎmqm7P;~F>4 "ON'.NfzyФUƊ21@ /W_/_~kpGg75Dp͎eÁlualD2UUII9&OܹRR8B gg0Χ:%//y؜۷S6!--fn4 ,]ViVkGhg׏55 W-&D nIs1c=lAH+ .X,$Ġ/RSMĉSuÇ~/X! >֋ ddm>~`ݿy%6*pj%KF93/44ӓ h?kyym>ڜ_\o:XE@߾J=/FW…NNfU^͌.N[SӰ`w:h0adPτlg TUeqR37ג>#5h%.uSR߿/\lUAkm[E&O_3z&::Bt|a0eeӦČM\FyC!66z_CO02zzb=z4_ZXh UEnC$y}}%Im|y53@?[YY%&p)SNp|s%6:Æ~GQVnXVBVViIIl-*X| UA/2D"88;7?99pժ vv&tEYY=occ)SN)iiSܟ>|n nPSS1ۄt fԸ>}$4٨*Ħxta//ׯW*FZZn[:,!"W.7o^0Ƕ wŊ1\|KmE>QҒ'={ŋ#G]WvѢD"FD)ǍaxܴSJ]]ό/(Y:3H$ yIS6L02RYrq8Сp[`&ZZ=(64$'籷vD!o@Đ swY?jqPs+GG 8u۶wy!$!(#7_=ᖶ ޾̓SRIL̡PlcPWnn6Ң.D"Ji#33])&Ww7D3aɒvunKHGGa\LDlcW_ߜ vFQO'/*+KwGՋaw9)2GDro9sЭ[Cqu=sv   ?.^|Ff"b}}%ɷo8o {qRRȑlTv-qX/8 )Oz~ee}|nZXlso pp0sݻ0p#Gf744Źgm-w材Q45UollYQ[k>BׯB=1$=OI {꛽?uu+R+2O1QAA!7r嘛!C޾S;hl**JJKZz3!5FCt[7RcưR xh]@-yilvoW{OT֒HI?~|ӭ|}kj8Mgcӷ۷8|3$_?5.RS tuUf#1 "OK7xp߃]>|رk׌ W3#G zVQ+9,::3f%'wL<ɡSSuii7o *uln!%%Z=W5Aا)r>qq>gi =XJKݸVoOv{!TZZر>ȉ oe}mFQ33ߴҊu[1,,iHC^ @m˧ad>r@QQ҅ Oxݭ>rMp82/)LfssׯeXvk>.oQ,-8Sl=ի66lԩ'BC؎ap.KZ*ݭc4 ++IFQ__YRR/--ܭZ7n??TAئ)r7[oX"r߭fne;OXJJ1Ǐ399[RKDWPSa))::FCn|:L&N=zC"'9 7xν. //cΝV ݼ_l&\$Z(b~=lomݽŗ/Q={IpB<(+K{y%&Ĭ73ؿ嶞b}5kwR@YY zȐ(bF\ײsTiiMIIMw3%to x<)v33̓]޿߱k׌߮gFwHLII qG?X.qqnϟgݺ^CxkhiEP{LǏE8L*UUm 䈊Z ._~5dȮ1|AxԂsϱ~A `q8}u!lQҒАKL_YܷT7\ܿF$&L;UN  (ra@{<((4ԊX_|[LRU]&Kʨ߻wݭ>bkCbFƏ1Mܻѱ$A8@h$ɶ|}׮++톆/_JR a>Euu9M>߰pgL S"yԒ%#=Y?x_ZZn@YYFF3gL&81Ç˗ՑhjjB!݇?6?45ʊX۷YY%pT˧o C\jj\]Ϡ&HH.:TtBBvMMW߻!(xF DW|i7o'C3s89yx\x8W;+_["(f*錌yDE}9s``jLc '{̙y+Y[4"̙- ytQ$᯿>|(r]XYiVE55Ymmy̨i(.a}]AAA\;|)A9\Yt'O2ǎ=(hJ Xq5<eH44ƙ6Q{jii51Qcpff( 2f RZ[i'[b"J޽~bYYq/kff~~X:}wLbΝkw;t9672BDhdc2 84:: zzJϞ}H+R8&&CEE[GB0LS__B ݀D"88;7?99pժ vv@z;8y>zr毁SDDH;vDuٚ4Opp +o_%2%G2&L0lk" F1B"f̰;aAEEkʁVc6^0t~h貸%K.0 $%%z;Otq fF*(ٙa@VV1KEEUYY%y- !f CP'O۠'NMK85+ȑa.̐!}<߼]Ã-MfqF&혛k7R?(WZZS![AE/ӥllx- !266& RVVFXswY?jqPs+GGa9岶ֽ}{3\ݽ{JݻY( jHI+(ѣ(7Uh?pp0ٳPk=33])&Wь߿zW|R~ck>;wNv-[SӰ~ͅ /x}}Ũ=7/"PWwB|R8E{ޯYsÇv>Eg1ColҒg^.yL7={f}R#+2HPѥG֛kZvoFy]ϝk_%,}{Tv.7nټnfnIIlA8d͚{S(4Ǐ;LBsBC=J<|g6O+)I߸)''2g99^pPEE67Ѥ: q8ܗ/{-| w~BVV +Ǐ?e-lZDv!#F;7?%%pժ^}'w)ݽU^LII6}BT ZD2`nY>}$E7ɓs**#aؗ/]P_뇁$:@QQ @P'M޽ee//Wܻmfm۽zz^IHr!뜟?Y:bDĪ߿L9ZcRӛ[fPh""D11E!E -%|)52R۷ͣFa -x@AA &*x}taǮ]3 *\]ό?(Ygn3笽++KM2A w\ ,FA RGELlo/:üyC *+몪Y1/^|W[!-_Ν;"XX[[[ϑuwuwΝӧ{P}ww (h4ag?p䖖ŋ/}PJXHCCb~~EL'˗_yn 0#%%d;8|Ӱ6nnn7o BBb`S7*Bٳg߸q*ɓL4#YmG' x<A||lm޼ II9mIpH5o_EW3 ߸.D)L%$D;cŒ_dU.,wY/_ʶn*NRηn@B?'O<"/ƍo'9|p# 2wѣkpfݙ pmRϟ?l(ׯ5p#bO "BJ[إSb\\L鋍*kUD3rܸ\FF,,,CpVڦ3=QD"ۉ!mURi]fD. !(F0eErr^w]0&7+?^:tI3@U1FKIwr:ZTTY  [;e#ۙFT췾҂;M7!"@FqIIшŒ_zzPѣ@0&::G *yLZ05U?uի-fY8A3p8xqq2ñ](Nu+B:JVv9S|alTA  MbJovv>}^?utvML1L&;ef8~H$p84ƍNx<@(ss<6QXZݠ(*jii۷_45߿_p! )999:!p8A;' &pxܳ RPPZT*-3)+s IDAT)oǰ}[[iˆw):Jn )]Ÿ/cSr޽iӦ[;C@ >~haOxI-999?~ NBZoRiMMT*hnnѐ*A}SdeY:mi++Gr{zZn28(ׯ^x5Ko_?^!C\YXXP XF0kٳqSXk%yyJJRbLݐ^m^ȓ'On߾]\\ v@^߾}n߿?jԨGOinn_ccce B$Ѝ@<Ϗ @L|٬AA$BFY t<ӧ?0JKk44?xo! غ5bʔdF8;;;;;3/VUU iiiURRRTTmiiӧqqq hkk!r^zA °zyy eeeAmaa!&&o>"ŋ z֭[;fccsQA*++q8 <@z>>>m\|/F|||J__Fw&MtEo:{\]0KKE%#&&{ο'y;Wg;g=̼y ^\ 2X|͛7oeeeo߾Eo8p`̙߿OOOڴi0aϷonjj1d__jՉ={ŋD"СC _tڵkȿٶR2hѢ?~~ ͭ688R[[{9@EECa;w8q" QQQVVV#2w\;;o߾4F@{i;T՗/_TTT>| HMMxEE(vTX ) tKQa#"ijB3~]3/co(00=\ŗ]uu7KKKX ͛ QDDϟkUUUHÇWWWh?PΪϜ9v4hYYYuuuT*˗t@C---JJJ_~˖-$СCNNNh]@GDDU^~Jn!}yfABCCr,] kmmUQQy NNN "G( )Hd;~ iOqq5S$jjJlm0˖-ӊ+7 TUUq8sppG ;&&&ӧOﬖ\\\ܛ7o444FVP(rrr ElGGǁ- %% H;fii)!!?eKK'~IRs]HP%()))G޻w/OCpvv}6 wܙ5kVۏ:{Lҥ00cƌOΝ;@z!hEDSXZbsskUU:1ʛ7!CznEEENTPP@g3TWWy ;iii{Vcc#F}vUUŋ'O\UUŰzLLcg.666lذOf}x''l++cǣFQYY@ V Jttٳgo޼ϟW^ҽR?d&"922֭[Ç`)A =A4ٳde{Wo!QRR bRRn~jrrh"oo7n<}4::?cƌ͛7;::.Z;ѱ7nݻwkkk[ZZH$8QQQSNeL&766n۶ Vp8NNNO2dD H$WWիWgffnݺKBBhӦM˗/ojjb80sLOO+)_V1uΝ< =&ÇD" "?%%%o߾Vs1[#Lv1Yeq^oUUu-sR;۶ ӆ"^ɓ'QHUUUtKv…rrr˖-o뫦&##FwX Ap===2lllŰzKK qOѣG飩yi777%%%.]g ݻw#R__O&UUUyxx˫[QUcc-[mh ZPP+ sa(˗/ei^07n܈yّǏ߻w]R.,,d, PQQAsԨUAjkkGݻ3fLkk+ XpwNspAv-QGǷJPbn|^uu ,Uq^vc˖-sa`E:2'Nlhh`$a _l ˗/8p A___t=^NGGٳ`(,ueh2}LuKP£^6LV rb( aK.-]Zp}uuj7 i4کSLLLlmm%5&%]=xa{ͷmmwS]DPaMgL D88S" )B^x!''e֫`}xn?Og,qeggyF__ be I&޽{} _&) _uQq;I!PDF Ŏq!!!W\an; WaqhSwwnے3w1Suc , AT**a o2l0- Uu^M(/$٧_Z[õS tˣ 033cpŋϟ߹s'**UTTйW[6sC鸫Gc3gllljjj~QVB@EE]>Z|PJ4HCE O$8Jzb?~H/'-0 Wyq%%%W>tȑ#mYYY~4w]vS+ۍ7Ay< ;;[MMvMv]0:n'O~e^SYY ٧))r**zXgX0]hц bbb]4&0 Waqxzz-^㣬~XVV}Ι3iɒ% 1֬Yewww[WW^t]Lnv뭂]v]g6}<s[*)L0SEG /rOa\lKKΝ;uuu%%%mmm_)"UzXkHHHd<uuu>>>5jk} ?ZppwcccP(Çd _& JQQw|Ԑ_6=4dŋ BdX,]Thh܁ЛKh3gΠcƌA"]JHHh0((HOOOVVv޽ȿ/{***z{{7551SdAS(C9))׽`a QDdٲQ@JJZ|Z6-;ƪE&)Ϛ5… J%/\S^^b M*V!h!"IMWU]/mn0$] ]e!2LR,1#Cڸ3,ٿD搮rcuT#qAE.跣Q$voO 3p/PQQ'--F&3~\Z$.dɒ={K/]ҲmưdnnnU^N228RuA8%o())={.ү{YtTLLFaa%_ziE,,?v&aImm.YYYXk1NN**2/'>}_0B:Kĺ=Ò^^^~~~O<|Qe&yC  4FH/\87M^[('' i4RcIveee92w\ccc77b\rʕ+:tAݻ,--ǎknn~v-]s;999::n޼MwpB._[8p? K¸ /JJ< ذ@%q [-:z1b$~wiq$ɗ_ˋ˗NJ:Vk13j8ry1QE;ޘVuu40c7Mz+ԼmXmņأIIy:3kH{/k4 H /[4U rozN$ :Z:Xmſ?##$~ H 5UWi]]}9]۴X׮UEEemtZ$r*.BtiT t8; "":38rB!,}xȟhaC8c !\vjbc64tZV[RYl|zWw8PxW }IDAT0ry0?}P70F:v 0!!i8l$I:ƍN1jH-<֦Ò8w+14Y`0"*+| `Nur}:0F G77+?' |ɷ;`GDZM7ޅhNvvի_`&Xq5k!"`Sl.(H6Ŕ甗7w{p+E.ܶvv}\~i<I/g~#<,P2;hPD-Zy0_ZpxXSZ:jX12rbgǍbltD|M?""jBI&`r̙#Ϟ:;۽M0X YΟߖA=޽G쵾x<Λoq\·.JeLњv|O01\.q\Lʾ6$I i;jC(!adS*ccյ;x>KQTa]cKqiVk5LbmEQ]]]jEDŧ_ggIIoׂ OIQ(6v 8>> CQ@suu3E,vtw'R*gdoo{{{p__GWWcGtĶH4ꑌ* ƲTWe6VUu~nnȑ2ggH4mƬYYEZ ,0sW[M?sH4*(WWWXrքjBs9gz瘭) =ڼyҏ3r.\` tYoIq\\˯{?F c0 |MLLD"- ?#c_|Ž{m۶edd r[n(^z522WD"n",迃wVrss={gDDDQQÇ<00+>/Oa<ߞ9(~J!TPPߏRiiiD,j]RR\B]|988ܹs!Fc0{gg@ `b_yٳ`Lv=sϞ=5r MAIIIa8˼zj@@P()))CCC{Z. ZmfffPPkvmv^&??m֭O>կK ݼy%>>ommH$oߦ:$=zTQQ^SSZz7߿pŠڵX>;;'O>}eff~̙saDf{D&;#==!tvxBMM Ʋ2Phv[ce!U*եKBt >,-- ؿDgBeeeee}x53ŅB<7V\tKzzN]=<,b"AQTzyyhJҖzڵkK,TTT`͛WXXH[]]lx_|R(W.˻D"FQ9N\\xXAXt2B%%%cVKn?Ihg]쟗g"(eܹ:u) -[TUUmݺIlhhpwwPtT*E566)ϗdrܼyk?#Ijݗbu&g/))qŋ y`jjjMNgeWLR'OL$Z1{K,a>(----;aՙǏ=jժT&Q$1 +R:hhhS~>X.\ݝnݺnٯ\nFA55z1:ٛSRR233-[Ȟ3}0'֮]kv84P} z!7X5g|}}߿|4>[|||w UxHQ|\PPp˗/鱱{ill:v;{キo>""22ҥK*jxx͘1`vB~zP/U*Uvv6꾾>Ύ1NLL NHH@J$d3sGGGkkkSS? w9ڍyԩ?;v֖ݻ7..D52)P(Z[[\'(-55M60漏gL1''g㢢"wwwzXNRm޼u˖-]vyxx̜9sÆ JNυ1>?ϗJ `5kְvPOK:::b!"칹vvv r$/^8݇swΜ97nlkkcZbve2חt NDM 1ElgاF pppxWKpcc_X,NMMc`~([T[[Gc&s # ("gg$Mhbɓ'Ǔ6"0"0"0"0"0@XRRb+$_)AV}ZcK̕ҩe~xe)# (# (# (# skcu6IENDB`XQilla-2.3.4/docs/simple-api/classATUntypedAtomic-members.html0000644001725400016040000004662513273140074021223 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATUntypedAtomic Member List

    This is the complete list of members for ATUntypedAtomic, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATUntypedAtomicpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATUntypedAtomicpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    fgDT_UNTYPEDATOMICATUntypedAtomicstatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATUntypedAtomicpure virtual
    getPrimitiveTypeName() const =0ATUntypedAtomicpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATUntypedAtomicpure virtual
    getTypeURI() const =0ATUntypedAtomicpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__dep__incl.png0000644001725400016040000000614513273140076020621 00000000000000PNG  IHDRp$bKGD IDATxPTeǟ.˯u(Sp!i"[7 :9֬S4"c2ɪâ!!BoZȫ h m{w]~< ss>grF@@l'x\ =l===&iD"HD}|H_~k֬+zdff\Fl@z.pQQQJҖ%ʂ^{?vJeTTԔL;}0|rD"ccc'O0y´W<'((hNz~X,69YO(JRhnܸh4999oH$:v^b~gG% C\\\kk+cprS(׮]vʕM6}޲eK|||~~``4NvEV8gaaaLLd=U*L&ꫯ ʼn'ZmVVo}-[jZ_}=Tz*~tttSSyZ18_ZZb Zmmm{j4VUU߿߾}mmm}ęSۏ<ȱc||||~ZZT*]~=A8s8Pf.k4/\PXXH֡m۶dkגA^|=44A(X,௿: 55uٲey&&&zxxKҸcǎ (r99(͘4sP˻w:㹹GacdzoݺuW^^^yy'BBB6n / 怀-00޽{^\.wMMMOT*o߾b|' AdhѢW}Uzb:)M Ǚ3 [ތFsYY̦3e\0LBؘeXzq8z\s. `T᳝z5WAz.p \ =H@z.p \ =H@z.p \ =H@z.p \ =H pŷ-X,&Md$ RFKSΡCz{{6˦)ю\ =Hv=KN1 dx~)bɁ9 T8GMMM``$$$dttl6K$+WzyyEDD466绝g|ٰ ,[ԩSðǏ\?''ԩSK.]hNyVWW?|>>t X,^x1ŌM냃o+M?ٿ{F;[&%%-^ LϜ9ssΑnܸAFP'99000`9FrRTRlFCN gÆ jZ.jL&ܿ􌍍jmm ʲ֭}vGGdz>N;FoV+**ƍI3ڟ=H$144FSOQ|}=t:5djjj"-tww?x لsddd2P(A=-oܸAzvttPl{hhJ"ϟ?N.^Hd7&hlxx;v -7o Gaaa#p8.PsQvo[[["##/]FO @vܦ.r[nY'Ivb@q=ܹ#H%00_yQ^gg8'$$bBAu&flpp0%%%..jl:q_^@WWϏ:#V4cL;M0;w,))駟Ξ= HNN}}}uuut:^ppI0 Pz}&ڵ}޽>NFF! Vr|xxa2ƴ3$^&R?~i^ODee@ _|ҥK}шAġC|||{챣Gnذ['|rZ]]MXmS./YoΝ8[Vm뛚:::LLN}=##Ƙ 41e=.\61p ])$!!`}S|..p 1M\|9""p~<ׯ5O͑P \ =ҭzIENDB`XQilla-2.3.4/docs/simple-api/jquery.js0000644001725400016040000031436513273140073014520 00000000000000/*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 },lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av); ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b })}})(window); XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp_source.html0000644001725400016040000002065113273140073021007 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ModuleResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _MODULERESOLVER_HPP
    21 #define _MODULERESOLVER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    25 class StaticContext;
    26 
    27 class XQILLA_API ModuleResolver {
    28 public:
    30  virtual ~ModuleResolver() {};
    31 
    34  virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) = 0;
    35 };
    36 #endif
    virtual ~ModuleResolver()
    virtual destructor, does nothing
    Definition: ModuleResolver.hpp:30
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    std::vector< const XMLCh *, XQillaAllocator< const XMLCh * > > VectorOfStrings
    Definition: DocumentCache.hpp:35
    Definition: ModuleResolver.hpp:27
    XQilla-2.3.4/docs/simple-api/inherit_graph_16.map0000644001725400016040000000034313273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/ATNotationOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021157 000000000000002e7dde103b1100f97d505b3e5b84e906XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp_source.html0000644001725400016040000005340013273140073020765 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATTimeOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATTIMEORDERIVED_HPP
    21 #define _ATTIMEORDERIVED_HPP
    22 
    23 #include <xercesc/util/XMLString.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    30 
    31 class XQILLA_API ATTimeOrDerived : public DateOrTimeType
    32 {
    33 public:
    35 
    36  /* Get the name of the primitive type (basic type) of this type
    37  * (ie "decimal" for xs:decimal) */
    38  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    39 
    40  /* Get the namespace URI for this type */
    41  virtual const XMLCh* getTypeURI() const = 0;
    42 
    43  /* Get the name of this type (ie "integer" for xs:integer) */
    44  virtual const XMLCh* getTypeName() const = 0;
    45 
    46  /* returns the XMLCh* (lexical) representation of this type */
    47  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    48 
    49  /* returns true if the two objects represent the same time,
    50  * false otherwise */
    51  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    52 
    55  virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    56 
    60  virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
    61 
    65  virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
    66 
    70  virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
    71 
    75  virtual const Timezone::Ptr &getTimezone() const = 0;
    76 
    80  virtual bool hasTimezone() const = 0;
    81 
    86  virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    87 
    91  virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone,
    92  const DynamicContext* context) const = 0;
    93 
    97  virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
    98  const DynamicContext* context) const = 0;
    99 
    103  virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
    104  const DynamicContext* context) const = 0;
    105 
    110  virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const = 0;
    111 
    113 };
    114 
    115 #endif // _ATTIMEORDERIVED_HPP
    Definition: ATTimeOrDerived.hpp:31
    RefCountPointer< const ATTimeOrDerived > Ptr
    Definition: ATTimeOrDerived.hpp:34
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/DOMNode_8hpp.html0000644001725400016040000002167013273140077015713 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DOMNode.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMNode.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNode
     The DOMNode interface is the primary datatype for the entire Document Object Model. More...
     

    Namespaces

     xercesc
     

    Macros

    #define GET_OWNER_DOCUMENT(ptr)   ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
     
    #define GET_DIRECT_MM(ptr)   (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
     
    #define GET_INDIRECT_MM(ptr)
     
    #define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
     

    Macro Definition Documentation

    #define GET_DIRECT_MM (   ptr)    (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
    #define GET_INDIRECT_MM (   ptr)
    Value:
    (!ptr ? XMLPlatformUtils::fgMemoryManager : \
    GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
    XMLPlatformUtils::fgMemoryManager)
    #define GET_OWNER_DOCUMENT(ptr)
    Definition: DOMNode.hpp:904
    #define GET_OWNER_DOCUMENT (   ptr)    ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
    #define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
    XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__incl.md50000644001725400016040000000004013273140074020303 00000000000000efe40966851e885b78eada4b9b75094bXQilla-2.3.4/docs/simple-api/classContentSequenceFilter__inherit__graph.md50000644001725400016040000000004013273140074023731 000000000000002f4d349fa52165d142ea4c525ce9a481XQilla-2.3.4/docs/simple-api/StaticType_8hpp__incl.md50000644001725400016040000000004013273140074017425 000000000000004368a4cfc72d02413f26384ca56b16abXQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.md50000644001725400016040000000004013273140074021335 00000000000000c038f4f430164111dd6e7ec68e8038e6XQilla-2.3.4/docs/simple-api/classQueryPathTreeFilter__inherit__graph.png0000644001725400016040000001030113273140076023472 00000000000000PNG  IHDRfK^bKGDvIDATx}POH'& P"-ՁN{Plk}Eu*%jӹ22ZǢBPJN "jE`(.hy V CBIqmHBKr,'>=pHdqsv̄CmxT)***** BpppVVsRE#;;RTJW5v#Ji)?Cm&Lje"L#7oޜ9s&5/^KoY$l4L}}}DV^eN[YY "--mB0-- ),,;w_ff& ::0Ɨ磢|H$:rli4=:gΜS.Yukuuuhh5BABBBBB¨޽l8$I;w.44d2$YVVDI|ͺu~w\`={"ׯWTyyy>BaD{( $<<j*LQQQ >|(ռ< ã%55UVGEEobQ#22zt]-<<|TL 99Y&/\P,iӦ$IJu-`lVaÆ,jݻw~(5R6;*&lO<lSTۺu+ڵk322=z$O88U__OdRRRFF\?<<\T媪HX$I^P(z[wQQQAc0R_p\>qpOP̞=ۢZJ&EDDTTT477D"j5ooopww{/Wxx 'W9DrrL&+//_pX,ӦMS(R:#eU2'O ũT}mݺZyڵ='OSj\}9F D je```˖-dppLDll@ 0ozسʺ/01{ 6R)s]2R411=*Oc`h 6`h ?@`4r\Mts7? Ν;biӴN hlJ*H)<4^jY7n(2ݤ`f86&k5$ɆGJSg'bvRݻa2=唖6;7C_II#ˁO™!WTthsIGcgDa?qkkݹw9X诸ݝkHsꝒQX鯑 ]]* 56>R|ݝ[Z4ym**Y3Ml*ߟ#zRee3|B3l (hgn>tv`ECm?Cm?Cm?Cm?Cm?Cm?Cm?Cm?CCC.\0m?ܺuKS8;m,Z(,,쯟'c)..vZ.HJJ2W6:)f8`qv`h 6޿ghh(??;,,,666))˵ky뭷e>?>|6Z̘1j9xyyyS7EAAƍkkkǎ#4͎;|||$Ɍ3O>x1g=qH$"IRR:u믿>q5JF*dIT~ԇ^zi[\nrrMG9s';; ^hі-[*++W\Io>???]4 Ϸ^d2 ) jXxH$æ5Dppڴi6eʔ+WtuuQgef͚5k hSSSbbD"̄kjx8ǬeV77TWWnݺg>ڵk>裕+Wy:I߿of~[,߷>Zo=`dJ?~xSSӏ?ۥR={RRRnܸܸqC$QZFo_}թSj4{₂;v=}4''PRRBuzSNz$bfԑx6/=Z+9Lj_8E Iv/fgg m۶D2k,ryTTԕ+W- ===B!`p +|>?663Lb3jjjFxÇuwm?@ں`Vw6Yn\-]ڵkfjll/5-C>uvv;vLy[/5PmF)u.őogΜx㍳g~pr{{{MSgx7:6o޼t:Cŋm6FsIlF)+ƅ#_6o߿k׮;wtvvDC{O ._ḣK=~-==ԢFc~~~\\ܨ0 <OC{ˉ`3G 6R8bKIIݸq/|aoo$%%秦ܹW^ٶme7e˖i4e˖@ رСC6m |͛g~jr QGo`)eͰJD. :u/t9p@@@T*Zh\Jŋ} l۶mŊQ5C_rg@80 6`h3'gk!))a_Xyay_z6`h502TIENDB`XQilla-2.3.4/docs/simple-api/xqilla-simple_8hpp__incl.png0000644001725400016040000155541213273140076020241 00000000000000PNG  IHDR{bKGD IDATx{$Wy.u{Ƴcc b+&X$$ACāq:)tPა C (s"> H`6e_x^]}ٽlόOQuUUk=PAAAAAAAAAAAAAC] @AAAAAAAAAAAA.)Я            &WAAAAAAAAAAAAA             u7AAAAAApw[qɟ_ AAAAAAA.5RBo     ~=izC.Y/>Ͽۂ      \j`     rr 7yz+.Y677__@AAAAAA.M؅AAAAAAAAAAAA*            a~AAAAAAAAAAAA0A            r_AAAAAyGo馹nG=g!      *     ȥOy+_y1AAAAAAA.%Я     \z7  AAAAAAR*     /}K1!ߞRӟ___ͯ7tӣ>zM7-Z}׿o~^O|b}_|m}s#+馛>Ͼկ[>O|s{+_o[o?̕u~[o[?u=_W_W/EAAAAAA企~AAAAAʍ7>}3>׽\4MO__qs`00[oo׻ޕyk%_> o{wq?h {|;_rO~G?wG>2_瞷Їs!      y*     z~wZBȧ>x ^pȑnu{58Mozӑ#G;FI\*Te|nk%x+ x_Lۂ !B;g<{|g?>vW_7HX%       Bo     JU4-}J8nHhP¿ֵHr_˲z|QuQEQ-zoU%l6ku-mp]PceUI.,%cU&E1gɢhJ<}9e(%Alۖmn6c=?< ׵ZU6/__=9?яk,Gyߝeӟt=n/| }{?O~#9qmv 7V5+`)Oyٳg?:ue/{~F9rB)sK>h.IRr<` )0-,q.{Ss=uIY$e=BWs51/&Bm h;8ݮ3{aZ$o==kSswE"1rlEAAAAA_AAAA*=k9-/:VЮ(LӲ,^,IVFR{+eRj4{iYU$ݯDx!V5p.{@3iq;A}A鉧==;ş?>r|;O}Sa}{P]wu]wOtUUga{w_G? M{{c?cx=Se:|,γ_I׹a:`="ȡ|/ lѵʖ,RA§3s?Ce}WibXkc,k|C)ݗ"MUn:W|[(([G-BO DZ`9gBKm%ƞ~?X pM?]Ǻ]_g    \ _AAArx [>Iʹ«J$|!h͕Ty57+@J5ͯ,H;UU k Kq>[˫_2X ý+=;2muWjEt:E=^[ UTUU%lϺ)eYMBRu-[5JEU 8 )^CY_dYQ(%W9kAS)a곏1/)R*R7!J)݃16,z,CdSJ]_[n5y͗o%/y>0 g|+k˲ʲG?JIө+-oyg=YUUYNx79}C??o/x=sw$Iwk}ӛ|ggf,_/rQSJ -/"Qh{)%P)*ӳm4Ȝ3f2Sow]8Brbł1:f۶%?tVMc<.V=RE,,ۇ7I}%mo7RS.UzBȱc>[gx`07XNsw}n{ы^ַӟ%}gΜqVܛ<_U:{k_})/| 7Bw?^W̽+%5cwUXP&L\Hэtb!Ff c<3H,fԲ!1jY \7Q!lscoOVK38Gv̭圶n/9oK^:ef5x?v):2J~*O|ۇ}"^N!ОLk1$K>GKJ /Giu\Й}9-L@(0tg0t8gJ:J)هb)l c,캖I2uSs}shNXԣ9,$IJx0Φn2'+lAn3ZOpd8E)쾝R:o<2    6   %ˬ2&yL53LH 2w=YmWcmsS@E@.8 , Xt;lZ0ӟ>(iqs.di>2riYUuQ@ H꺑ٍǹJ \:Q8BB˩Ҵ,KqJ}8Ims)hgRT]KbBH!笪B 43dy.uBa*LSNnΜ} K{JdYxm]/[|$v*: BHUeYu,+XEUIx{U#MwsRiZHG)UUB'u4=oƱݠ L,4'(gNicmrwRRJ6W:g !]KZQJZXBTtvUE]bgO48#aYcLJRu]˪Jy^fYEWq1eYWU$U_;\};裏گs\Es׹O/)p9qN#J5&@! )%XфP0daPڂT3}nCR!\q(1 7*w\RuLⰯtK3#1d:1ɉ >Gב&V|i;̸МAPʌ >z0ە11QPˢŔj$_gkiɷ5cBWRׂR k 8Ja[5 ]ױ,fYm38f,eIR0KOΒ~:d[ೞvwsJ//nlQ]_^Qe 1@fAAAUAA' QCfai(TfnY,hFŹ=(f?YlJV*|0K-n+"m~GqXcz6AfqCS 8ZŸ$\)/AHU2 kꂃ޶-e1փ. $BԵhտms 7m6m/k^D !mKоp,ieAJmNM?!eY'II)ZJ$j ]!vkR:B)Es/56"=m*})%}! wPsS7E-6C!$a@TKUtQ,k0,kHUEQUU$y,+JEYUQ<`TR7SDKa'-R4 ǂ2RRUsN`U*GZU,++ 8/K1eUUgYckQJ,˂tΙRs&qlƘYVQJZdL>DZ8msz 2n׃cl(`Ea6 qY`>l'QǍ e<.Fl<\ׂfu-7:a<7BBx<&KJ}ՃUjGVE,k(\a'[I, n FS!'(l Jɺ͋B!eYtrzE\QYp"%qq,)msB(pJlMB{!1!`k W ᔒ4Ty^rdYumJ <]E)u y .ߜsZJ l-ʶ-J!4k)RjvԵHRpOLbmkU 1YK̗R4Tm%:3ڎTpai=7idZ>'4`J{'`]:f1SwZ7B(՘yt.cZ)t0a!-sVJOXUn }åh5%j5e# 0qm}i18[ӳ2/K /-zZ?X2m1p L`u={e{R;:L%ҢY#!{ Ķs9R p$JpRe Z)eVZ(\+f-i_$(i2I_R_U8ή=.%ƅش/S¨xѴ\z)S] (P IDAT J½ $8Q.e?`!u-P]x.J ΆIJ& ߷ݮ"߶Yym(В ;ceY)e1,ky^qqegIRE.ɲrS3 oG;gRRz}>* Bdn#-aOkuzv2kmnLDR!,DODE~G/a<7x_~wp {_W/pq>fQLQӰ@g;Qu~t:Ny )bJIHQIRNT`Gf- p=}qlre1B($GAFGY Ȳ*M8.8aya膡nnQ䅡Qu:^ݮ4AYQTa^"8,gbuc4MTJiB': 0ޜS3E|#`8ƋA_rHZ1ԦwheYiڃM1bM73 njL!tǦy79ٮ@4[?´azlOa)n3+5w*(6PIxw&+F?9S|$IQU;`u&tfꬡ pldi' ,AAAP`AASIDž.'9b;VL,i f^PU1urKPoA;օ֘Y79e~~l r`fiZ938IJJ pm]q T!hM&Y, n}\a WJy-nWJ( X[ o"P^OOv)DF.rֵ|U 8[   ҝN[j<׵ફ/um)ط1P\#Z]֍"|\N6R)4;;ٳy^A\;Z+ CQ9zv=Xsa40ϲ s&>I t]ޢڰ}(ϳK!1Jx0nMo"d1Ikj|$Cdn} !{?|_ֲv67]%,86| gBJSp !^sN zBH @`X]7,+bsIԁi/ocM@Ӧܼk5Z7xf3 4f!Ȋ:{ !17-+i1]7-ˍPc2G(L;ٳ$uaf7~/"f6.Je Ma|$ؖu:dLMbQ LCi3t?;r!$}0oNLmaՋ(]e°)mř52|#NcſF]Ͼ AAAyLA  .z\+tϾ.^gs>5@):%1j#:0Nt9kurbQkie1rhun<1ʢ5A-2u]$% Q닚65azټeY9U%@!TiZLBD] )MR8$:1NJޤ5RJ WT0k-BbͲ-s !Z b z] C@mOz1m ,X7:020O @ s?zO4BOw.V)mERJ u-ˢYVH||PDý)|8 pt^K9hEIRyeEQ%LdU E ;qޤuvCt<3ȼx2I'P~6dzN:+pu~D8̠MD&'I=>s&(]C;llD^I9z] mp}=\qIt!Nݳ̃F:;YV&I-Q6f[Hr0Hb\M\톡׵,1SaDJ"*y?؆:M8^hqцE!|}"/c·fV_†<8ΊBA3HA+ &+JYeYE$B)Rn;DmuRjYԲ89EmbZ+)Ğ?sjXB(ܿFjVW!b\!"EQFy]KEJ4-,(j0V\- 9s&81 0t)eg9v]w,zTRՅյBB[ǔD0w+5b/%u?^)Rq)D.'6⊵Ls*rjJ p``vY 擢3y^ߋs ]B70?L1w&aZDOd:6ӽfifZj2h7sZ9o2;`F(suo-\XL~cvyMVw 6xP@!ԩznn^tdR 戌꥛H>?Jm^y=vqefsFs`K9gҴ\]t^[%yLǴVAAAG AA.<^΂zZvV1[D-::deQm(򠳾iLCp+% ~fI)Zmt<ϳ`0t׃N;rOzRYUAe<.[!̌ v_Άt>~?"m-<~hB$ϫ4-Flg'I~x[(RP em~?\_oB'.5~sxyQ N:lIwv`Gdg'm)آȟ;< {=ӟ11h;뫞6^jsZsK}E>机8x)! l0HJgUqkA$Xt}Z5p쀭eOӢ^; 3qQTq\qQ`e]2M˪G,<,:ϫy^U!ro9nܱ@ bR|byQXVcj"RԠFD)wpkKuu]%,+J=WAjBDJeUU%B;b:REQC <aB9ݮOнXbDj!l<2Ch9m[퐁/+wT+ɴC-X,E- J}o+ j4dY5ePr<Ρ xE=zbɨ<FV@%r(A)EUP^=I,+8bm8vĹ N)6+.f6شX%q69A@.^עeUy^6t ʼn" p՚)y6ޯE)(ON;;iKn8~䜃iJYb4jtssl =g Lqc"W(?<<{֝wy7essM7ĉ^{ĉO+Ggf#o,rB8rF,8<83=ǹIk@.w9o\RBeYgYe-Yyyz[-dL @I4-RmH?ZIQԣQex%dUo2ϫZ"RP61j,Ωm[kYRy0t=<,m9rC%uHG1Gر_nTr4ʆâ(8Β, |IRm~ ql$RbIfYI)Re_Y?h-ԡ&ZE>$pV}xɠ>ɂ`-,setI#BxFq+: :tm"ϭCte",.щC&Q4-|)PB_;Lb"BHn}eiݡbLaa,|u(6ڞO72c'1uY=ʌ;8i6v( a@=ѭtY n>34Y2=L#B(p@1L t#u-nm Jt:qzLݘ0j[=GNWݗOƌ!37@L51  ,* r1 AD=q6]0{{A@2K0buivA =7PȠ .wU/ F*ssKAcR_ % h .ԧ˔€j 5ȼ(Ki1(zQ_8oϙr"߷u--[*H]K!˲,^uY֮kU(,벬IRUU#ꪪR&YA)Y骫.VIYЌ Nln6N=N-mtGt׃Zg#Nv߄/ 2Rqp3 mnE>O߷=/%` R*h֊oZήnc闗]U\ UI QZUbk+Rj8̥q.K!1],y6clfgl睎g*|ÓTSJг,O^pG7SHgc$HӲ,kmr(˺u7}Ƕy:|9sumΩeYg:- HBm[uJKɌuK*ՃExybHUb_E.Vy:1<6EVytXʞ{u."ޘXဩ&U0,!^%^?') -lI?Ւ,50! 0T]!~u0W8ΥT4QJӢ,]YFW0 N]`!? 0`W0AAAG_AAGrI/yB8d{Wa Ȥ@CҖEƚiL& UskQ3uRCP3[T_ @J)RiZ]"kϳ)2͜-oʃAF *XJRRJZM)cL)E.fqQIwZկzAu^u.z>c,<RTUQ4-F=|00~[  oOv-(ڔCA)NO"h/ 7鸽8CI@Uxss|l=JΜmn e9%LDя^DkN<ɓC_ C{_u O=v~+^wwW̶:Ώ9sP\%% 2]W$U>4eߐ\ p]ɓ'NB>΃zS֩W>O9q}xW׾oYO> ؓYpfh1zUIid_>7BmBi6biOFC:ޱdbW#<1~;͠1|J{ ҌQb 鶅s%di^]+dR\d!Ӄ 5baAT $Pkbrn@946=].@}Y C϶y: Xaua  ~A{6>{6h2XSLxZ}Xښu7]BH?l*[[Nǽo=뮻bQ>}zDm_?zx>7c<.67cNμޱc.G;5n,jfmopFY`k_m[a #G'=kǏN8'c1KF6<36I/z&8AyH6⸱,,pD8a1*mRJYURʽSe,9cQ*ƘR)"RUU-*Y"WI0t{`q.=~?Ppw:ޢCEUh0Ȃ@{.l @dQ!^T`9*<^O9؞o$0YR?͢|9s `Bp'Y08hran4Y1c ۴Qgp`@PY=WpRb  2vP,R8 K! $Li,FłAEm0JxP ^ϰ%  8*  ƅ`^1Ե$iJ]9 %|DQ*Im.t0qN;QJ@ =JP  5Xj9AdP bi.2d=$0Z&c=eQ= 0$M /IrlC,b2<͚Lt)n|d" apv p\h4L.uWڜxfY]v>rbC`ȲK ڄ j :júUUq1a wvSt:n@Z5Jw`(8)>eq`(Ob t`Z+NLz$āxd 4ϫ,F,M8Onm%Qq,YU+/Xע޳߷m{ ̽^F0tNJ"4ݮ8c]tV:fON(r\3C45r@9lnϞə3:dw:Z4DcY_`>\O[ S#m}ч L=kQ>B76z_cpB˿4P,C/ޯ   @ h AtpFYU$)bpka]q`#Q>PMH1L +CгNzv,ϳ rٳ,(RJɒG5K27t!U.*axє%;mbsG\L=)z_^t4ʒH2Ie>Ÿ$)?IRvcttr0nAN>n6 E77-yNCS͵d<It` ǽ8I,%`2(r9Q̇efNxQwzƒqNv}0t:n5^m7)<d0a&,8NҴ̲*IeY-rN-;K0ښE ǎER%2$ٙJDǻƶ$e~"1ן q=on[[j;J$$xXM^?W,W~[`PW7R]yHPp5ڑ,-TU*UJ-iwOOmC L8dž`pNd-V?ZAsH x8ec<zpsXzk©ݏl7uOO|׮Uac?]!Ril N&FZVcV5 ]1q<5yyj C458P_!xJguYjJ4Mӱ v=}Y\"BXQRI)TP\TUD z/@@Dɍ@4@nq Pq,˲d"`c Ý0^01} 軮^K0 Q,+nCxear$ PdRB"1UY}t#A~u! =xB}2CR2 ȓL:-y$b"/%Y6)dy0Jr<.:xW 9B@a 9fHx0ݮ +ԡq3dX:=0,G`08R =_!g/rG"J6L&E'3 Do;L].]Z׿~49}晙;~^8{Cv t?Y߼;?2/'^җ#}G@핕JڵK7o{ǧrRya!G+eA6fe1DN`x,B,@ fwkk۷Z:nijm^3`b6&yVUlVqlp+c)$z=l6 Jv]\7 Ŕq|]]7Qv5Hl2)b"K8H/Acmaw{^ݮmIaʁxq,l&y6N4Vn$ =#"IşwtObv)6?򁻯ngv!@љǨ#C1DAGcT#H/Q@  )Ė+  , 3I*[sxMhr'L1 Lh0 2D &&b"4Qef&HO %PfC 2Q}Dn qS Y&#z}i q83&w~GBAAA` VpS0 'z@O` ։Q!BUQ@'o'8)((((=ɢ96?d"&'Cm$Jx {@زx5?d!3y0e,L\?r(|llmhժ5 DD/d2¢(rD8~jMىS}f25<%oo_W^t=9ǎ&V/]Zxŋ5 J%*=wmo[M_z>o~?Dž_ɟgΔȪ׍|?s_x~}w,.TWW[~_QǎM--KK巾uXLR5F#Jth $eXTnlwk˨VjUtX5u^7P0 Qq~Mb-BްPLkzB+D #ؿD$>'mg=*Y6N'[U$.GB?DI#7O}yv򖇲spaeb f-v4quYv5'8i:qTdD{MSAQ "D YMW>2b? _lǃ1&2YwFYPN $J t2D!"(($(IzQPPPPPPPdP Ih&f$aۥI&&HHx?G7Vyx\z9tn( Ao )XLp>̾wI&!Ćd T8i#iT`AH׋+=.L0 }&A=$33O\G';"GGRQx<"[䓁 p̉BsUMIE%a붮)I,'iL&]EU!#% ۓDzTF0IʄPֿTRgf2tǰmOlMuttlðu}@2MGmp ÆSH鴈>ӐTA߇ IDATKE8ɲ\r5Fò

    Xt3td >uV Z chdKIePK%XLJ(ūomi4JFlm %\`6X+ǍvzT۲,_\z{&zW_}-X6~dn˿_3=˗7~'Rӟ~ 0a//~R.'O\z~a!wBӺWn^V}kתWnZ_*)<3\>sfzyb/z[[5fTͦA*!15.BAV4B\>(,Y4\NJEQY60~϶=]ǩ#)(|7M*CPtݓih~9CŹ(rz%l"c s/‰̇D"btg9ešaAy=mY EĚF 3=K29=8Qio0V\?^1;pM܆ !T@ S&t]Hʲ ~&fv4]4ݮgOTL+ăL/T'EUDbm*OAAAAAAA@*ojzDTlg5;DH)(((<.gmc?sRl!ďCb7 a0\O;w;| -0M[ߺ -]eYx/\8~;qow?oٳ/rӧK/soK\iO~Z?ܸu]\V|ynX,-Jϟ>]:h `" ITس*Agc^77;kVkh,Nr)UMarH Ø+uD#|2b^GJ%u._p=/0MDz< tFv=]Qi|,5A, ~Ay#Ioge9(B:-RTGU(rH$,c4cQwV*G:' AlWiune9ĚwP)D=bLz ? u D ~''. ,>{eO"O6$e,D|o0Tr{pW]{GׅBSo7) iexH$ReЩQ/.m0"c" h]d|#̜_HP[ }a00nq$ 30,H0 :$a cP<%IԒʜίKfP#vb1ecAߡd$FvNQ(h$ rYJj.,K^ݮiN Q.Y3\AOSՔT dae^ȣYqh`$4‰&ɧJض8i $J|^iBٴ oN!?\N.BAexDX(){[[FҮVjUE Ii,e:*&EAOJ} ?9ujU6Q}ю P7L+e:/WrZ 3?=߳<^*X>j:Fryj?k-^h ۠ D4aa@eƑ"&M> CMY nSî% cUUD~4`35'l:-PF t0U]%BĢ!q1 G2~6̐-C2soJ0΀y 0$qdCWۊ@B`2S%#8X*N*pqwfۆhM&~$ xJg]YQD@& |*' nq|LӉxء5.tiNS)^TJdWUK;4 ݀U(((vb-˳,GEJi;{$EQD&u2TusB&I2;U<١.0Ng=,3v_1.H~GԂGu+ <8#&NW<Q $((D" @;*F{sT*m]h"?=$XQP" G 𠔜,K dyTmQ!qb1&L"gand|D6IEIӰ=%I}AjzԪUR:JgX,z}bq]*)`OAq|e6֖e4fu5J2ɁɅBTRyPHPgAm{uUZ76ڵVj[[jOcX,1*bQyӪ)z]brY-iTRfg1ӂo/_ksǿ}ٙf߻zrW_h6Mcyf_pN~'K~G_>ɏ=;wG7NN}/g nںtimeR}խ-aUMz4-r:dN~ 9!(^ypgf2SS陙Tzzz3W~_NY_oU*JSuBbv6;3s \Doۣ G}V5(yDF\:A/i1S%8$Ĭ϶}ٶ61,II``. aȲql8m+i[iN4zl%PP<؍M1h=ܸ"}i6kZ&. ^O6@i ;I,l\ [J-$Xe!m,W@΄ "~`ݎރ8R57$A eYdR gUzXlW?^7Fa2ՙɈVˬwDD&Ry>ZrY]XC8q1C]˸0 =ӱ:!(5"ql6RQQL&yA` 61L,lBmۃ (RŸ m{JZRj5 jgkDeTzv634HCKt|8_Q/ZM4(4RPH݂֭VQG_ql.'<xgf2Ѝ=/hnڬT:$ ~A|() A_/_~nPgyAA_vo}kJ T{޶pTSkk8wnS>N\ֻuw~gnx^K/}k_p4{ZҥkK\7H$'N ,-rJze6K!q Ţ2;ea_vJeކZk}cgf2󹹹x,xojY5b҂Fe@򍛴r>?p;#?Aٶga8ݮJG[-kkˀ lwq zD 0Y6R)N:f ctR@}yMӺB`E5QL卼bwΜBv fWaVU|q4F lYbT0DZ+&4lg YX6.IDZ]Gj'z )vЫLsouq[P(q41'mϲ\$^VUq$) -"D"x]TxgjJA` }PP&p0ȖPj:Qj5077f4H>Ip+L.1 PjuG!XTڄu% 7C1Mwc jUTz]jzmaD">51KPH ^y|K_Na..ggzƍ޾xY6~d痗#8 G}G;ox'7o.|}#Ͽݧx;Axf}e2 RshQEaa?ZMu}sS /a\N Kd ,.)y_NZM_[kZ䱾F\nn.?v_\g!t[Z-`hi, B:PafABO'j^iVzaZVi]] uul;p{AAXc! SSY)eUL /VxuZ6honjv&:$H|{NMCh/~pW N}g+0 cu[n˲/^pwSU߽v/LfwaOOW]7x+'O? ̑Tu:˗+oQzuʵkn׋cg9sfٙgg{ɨo+B汳=z]_[k㱬676ڸCQcbaf&&o{!ѷj &='L CqkCA7'{FlvD+c7BIPX(șL BE@"%$7t"q`u}]4\_kC|;!FUQ‹Bv3$(r!Lrl `grv"G5K'r`H䍬Qƒ'5Hz7IA* ,U$+_d9JǪjTOEp#)Hl,[Q:3z8_@zsELBr}?ܹ? (xԗ$/ D2Q;,v^c[keyhm.^,44tɢe9*sKRQ%aLBGI&XH$o~s쳳/'^/ }ťKk/?G>{޳ ˗7xc+W*0+J̙g9{v3gʢHKZ:Nj5\ۄ>@,33AѾ{E;whSq\W+| aGfSf2ҁQPPPPPPcD"DE%nAAyI=E|>}Tzݸ{qvcm9hW*r;;r쟛q.y:3ɯlPHbQ]R9~#y;G̨pgX{fڵK.]RaTRΟ?~niT^Z* Zfʂk=|NH#Q)-ss=;MΝ*,ww4k5aeO:qx': ~eZfeZ֖4XoFC$I\(ȹIdSS /GtQm,λv;f A8.ǙA$DyW,eQÖx޻? vDsH/%*Mx1ebk7w8}z-9xm$آQ`€z8o^Dm'Ƌ, K$?bBi1`8x(3]OG343&J b FɎeh\[ec,mf6-f_-RcĂCU#)((((((_)355*/V# :)TSbɛ&GQHiȒA.v`&n'F.?k$VLr'paiR0~v*n[n5nݪߺu͛[D6dYb~~>/nkfl6vۂ JeV֖jYu'FgX"z#, m\hǢ狲gBaدT:w4w(^BQo&ϼٙ'Jڵ~(RF,aW*JEմvU*F{kK'bTR3rYff2岺Q/ 67JTޕ*HdKK2 =Dcěe$@D6; >-z0["ۮȫsL2L? ׃9GEIin#@*ڛ$'pHym{ݮy=baYtƫ~ t^Vʏw=Uk\Zwҥ_߰m/f w3S0omjUT*jU#+LӘ%~^V]YݺUG$Z\/-ppT .iW*hqE fB@@bmViZf݅O 4FߕJLEBnI$XabAЃm 2WeJN $#:܇@;) qϨ}5͆KCu:d=Rݮ;ѥA(IIR)!UU$!TdRh Fcn1v`^B^/4MDzTR4uf; ƍd-?8%>dnwi6 ղvv=vX+M$X21r9CpEϺv]bc}Fƍ۷w6766#txaqpX±c쀈RjJV77;PCQ0(llTRs9icew6#?ͻwJ}8ˣ@Jyd m*qY[ka0G#\Y0Ógu)(\7W}ٟ]z 9Qm-߾xOo틿?{gOF?|~/'^җ#}E}zp}RtiҥuU0 -/i,bgLմz@/: S'*yPtnںyR~vzVI&SNJx>~|QDEH,>oh%P E H0 SmC$MӢ, $`tG U5"P8Bh!Ûb7Q_Bx({A>fň¸DW٣Z CzvOR? gY!_ H_,Ez,8BINI oE^ިEd"nΉheT`a"8!M,V|^JE ȧViX9F?Ia\ƌ4 \PPPPPP]:}tTb$|z{u =zhL]w õm'_aٸ(,od0S&;wׯnܨ_^qvFݲ\ar9Sǎ+;?vl 9JVo}En 1ʕJ cZ}Luݻ x\V jq1zգhCIhj hC1(&G׾Oyz,K%…=w…Qݣ$ ߇"X?Cnv6_?cUzg.~X]m>YEe]qJ8=sfٙggyfܹL^P(vB\eHZ}oJsFmeۍkkk^/8va!\>uxɓCQٳIKԼg$jBAQ-?k5VF GN@nrRyz ̰ѯQܷ2To019QA43]Ɗd:"l].+aZFFJlViͩpQ.d\(+b| 2qZ,=0`Ą$GC4nEAA#2n[gY.s`D߰v06) e2)QD $ KN4x1@fbc;3tPBEC7Ve6Va4lfs  DlMrR&B!], EdsLMMxL;yv8 2PPPPPP0B{nlժF$sVrl?,C/lvfF]\, JR{ xcʕ+W6!ia'OO.ԩɓ}!a^A llt[JCInn.;=egf233iun22lۻqպ5xܺUG]Q6+81uTĉ'N(<9s-U*_ݻ;wĎ/,qɓEIxLK־_ʕ;w~ecg?|޶@J$/>ϟyfzw?O~W~G>kj5o?ɯUڻu#y.|,մ˗+/ooܽþ>Ξ;7{t PR<ВؙL8HKyZRݴ$Gky쳳nAHk54 Z Vӷtƒ$R,*ŢR(岚˥R,|;œeh0Bk$T ȲP,*&J|X&uI#Z glV(yJ[Fz!-iv H/ݮitp'&be/H5jxuBGK9zHn`Nڶql*%B2ɥRHq0=@yUEEF"e IDATOူH$yu6 ᘦ붦퀰4!*> /qD(( u: 1o1Mu{fu]0]4bhvN) D%YNDKT e3b*%eCm4nwQH8-ID8 ( y9 !"Bڠ4k5SSia8(ER*)|@(@OB1Qꭖf2u4uH2 #IfN<QG+(((#lxWc@5-܉9Cz e l$񩔀6X(j+He4°vӍO0Hr"d-IӢKZ) DUt) H `"eDfDxR2 ||ڥK.]R,7f;Lc4[7mU*f2mӲ<}?)b DZ<ϥB6+j (rdAP^7\ٸ|yʕ+[AR3'ON>]:}4?kJj5kr9 qM)::0Mx^Y°qɓœ'pTهSlhCRz!s?/l^v)zƍ޾x |1`[ߺwЛLj_/oO~ˣ7˿w}܍^/o}+_R,*?я{fP( ,˽y~Z!aDZǏO??sfrIA1p[2X[knc $ZYXsX|M^WV^ݼvm eܹsfCsдn:\JBVӣ~$4|V\B4ijJ9 ?rn'3E!U4ff2tq|W6ᷠݶF*U5I\*#/R.' {%U`XZc.\t݁ iC24r@Q$0x/DC1: eߨZRf`N@l"`=d5 (ehbkZWm|28hD-~KJUEA!O#|n-{^@l^@qv= qj3) H,;]XdN./,h=pcmgI*-rfg;Ŏ'^ffsޛlޛlNYlq7uR%v$@A~)Y$(988H }!hT00LA.3 V.J@7zppXZx9BL )>PT~n.07GcRwv*Mc6+.R"Ss"E\ P9uʑLfR'D"קLJoU_s{n_?Gzh*V?Iз^Z<ɧ>Hd|у/^))\aZ jjՠbm!L,|qEW[yWUU'6;ONz''}O 0@b2m0%)z*<]zV|)6\6XCv(F)phR\5ED@bl李iYKzyt} ǹ Ņ !R.˥*L7zUbVrYt2C}a% bU R6 ۵pg0ϝf0J2B6[lvt>~|~+Xf~ ~j6»6W.v@g("tF h|)+<5a$3\9)zLa*8SH 7  bQ(Z.AQz)K,V[D(H- ~\jbBp'HB@ 69Hk ?D$p8Hc [(Erq@22i%A?~ 7#p0B.wD.GŤ,G $3$[,ocpX8[aZsa=F\; rmE p9>N*B\==fo=n\DjUM2W(^yeGΛrtp4vjy6w1!"A'HX"J.̀Ąwrp+X նD`t> `t 4K$jǴtl:]f pflp\Ҋ<ZD« dk қZ,!8%J6P(Ef5NRz.U*]K$2`2NB\g0 SAF"@3h.HYzF#h$Jp @zL2LP%j%JH+"N P>⊸ųPV3"!XTO\XdZpqPdoHq:%G8kK6[<@[_} QW./_ЉG 8{56s{<7 v2 65 a3$x,I$L./҂1  ePLR:h͊u[ Ukժ>{ǔX,BХvuvXXA1(@`=vF+u 6-OOU3-fb]oWӣ3zV~8a ]M&sX NڠK1 B ֛b<3q:_F)6ӣ۷24d4:S'"Cn=iXXy'mrٳ|_o>/CO?=S'2m:t]RIr33:'/j+>!"/y<1;J&J$3dFdfN'ibpi υ֞7a4#^d t` At>!V2e@\#!-)HF"9ڴb8/hm F#˅*Vr*e\ؐ _U3 wVTz ([@ʒHd.T$]5+C, ze sM,D5?!G?AQyYE6[ET.$dL!)$L&Nwr]"D"б 5˲$W(yPBT.0ޔ1K:qP[v8,@ ^XB*E @bIfsb>_|-W r"W&T"Tu* yR,f!˾}ժ^jJ-^ȱ`M&$7dF#<ˌF @`F:jb r&vwz{^]w]aYZ @Ӄ\YQ/Jt Dl%gd92T70.HNX|#2~c{j4{÷8X;/}K[FowfoK#|<|đ#=H Ԕor?5回QTd+w =Flty=HMN"l6h)fE[M֦0s{ϳgιΞu-.ժ^/ݽ<8h4 !}=H`[מi_6RZDi4bЍ@\;02bncgW/>+3iL @F"L@B`D(`aĢT@$C|+o:OT.-@-0& T*m܆V]W,6H\Yq-R$K\tI7s%c*jpr\.8sV6\vk+ K$[MJف$3Dl=}RګT82@ ط+pģo\6(J|9QT!NI`eqGKM ^/$z`5*sb '2 !@'$4 [ZZJF#hzֱhb^څXs^iT*P(O|q?~<J{8NW$ZD RVJ6P(K'`AL& BPx %C"6".ATI$2D&SLx< k"y8hVTss\yH$Hd(jVHԊ|JVFbQtt.g(*qhTJ~FyNh']H씅`&S0fthfQO2j0^Z`шAcG{4*hv{:! pXZjXz?4PZb R.WBΑDh(l5-J>_o<)ߞ=;w?é^B!ljG8wk_ޜ>|ⷿ=[*?Cnfk7j RV]Ąwj75囜$Tm}H<ߪXn礓WιŰٴwM{uvХC'68z9Hfd@lle /P(hLkbBJJV+Q*EPB_ P2JF"T @B -,JH+BN\$H$T*KX6q2%\*uGjfҲI$|zZu kt/6սr^:퍭&hnP\~J!%KÃ^ \K.*"J$  Dx)"@,p*̖|"I.ye,ʥD"NV8x 0TJeȇ[>_Q*E] eǪ%PO>_V8ӓ=;@ W =?-W<}GĖޒBaM.W.?cYl=wzRP˗hbdxiD(FS`2r"fLPmJ/ u]YFRy#cO^Kj5>4>4dj]t @.,p %t*f ޖfq'Ab0H;;VZ"$+=:qbĉųg]\y&pݽ|ãrO\3rE".W&9 ØLF#b6ˑbUgϻARTUQ0?[_☛#96$MAlC(*?6ʩSd2+,P(_{cd}}fmvZ~K|sCYc{O{n\T*scO>ytz?0`1t:ov쭧܁]ޖuQ'>o?ѡ{myw n79b1{39۫kFm 쬟@ l6 YR:)e?QrEC` zժPĔJ.f륨́@b9Vf%ANc="dbt^@$ԩYVж\!h#EJ AL^B ]蕰D8]8O$.WZ!߀VD5 Lkm<̥@5 WrMjSL82T+E}XVPȑH @RL2JK2hW|-ez~TL&C Yń1؆ UB#tCG n"Eaf $j%HH@\ԩP _*BeAMxU9ŐX{)p/BlK"TFRp H&ХKP$>"6+tZgfd:ʗ2 X,36}|4JI$;8ol&NgET"YY IDATc<ǹ2`veWzN#xF\+zW~{fVI~#vU}QZ2)+ !q)*q:Ng)bQX,gŢjh?Dľ*Ǐ/Dс@eN\xT/8>67<{D^ɯ}fo:o=ߍ߬ nNߞ# nFBQiW̌X,Dn- 6 j ȥz(afҶ6E[T*Yf3|pdyԩE7b1CCnhp[r'D8D(=- j\tFIZV+Ȫ X[]cvd2~"$}D P[ 2@h?L&{(,+c[`%<+ â5-R;T.aJR>1b.Wl#ijmeq.D\.em^&SH*MéP(#DTe+BZRZ #ڳDH6[Xiɸ\@дak FK8Mb1@w` w=;JAA^ZxX,MzaY"W.hY٩uuiT*QS>:%xc7g)\x[nrMyX,tRH0h$mm Y&okS22E\)JujwرQ'EE"{- E".a@ba!ZXB *+ڔ:ې`09>q8Ο %!},v޵W(yf'?y~{g?{Pl<7ߜ}衟}}l/L?7{[y s]yͦiFmGŲq'/ :Mcj sD 6$@XxbVVaVժpXO_G0CChPr$ߟH }8A@H \h`ibFKQT\e9;DJ.W Oy1''a5X TDۭ@PZך}D"MO*K$XT $>T RRD"ْd2L`?Or+ eF"O,_^U([8 AӒ R } s"Nj;ոF#Qq^)M mw89RǹB!UbR9bKy<6ŬVb9-d.HmV"vUGibk*I ,,ΰ1-bQ+;:T'j4Pp- X,c4X@ree4h^ .R4AX:ObHF)e,??8OBS&B\"rCZ|U/J%XPۯ8 Xs [oͽğ4bŢJ5D*.---,r Z-nkwtl6 t7Ѹ?Z 856b2CC[nˣ~dD+lf3-%D3rDl`†up8-߈vEd㉝>\ZxZffOI=4rEKNgnd2l~|sz@b| bRI5dfVZႡ\ &bxb@1\.dR2I&GX[KLHX,]v\ NfAQwZ.[Ix$m0 d-+,"!H, Mhڌ7ԢK7,WpAڔF R|q#ZX..C0Ff3FYgSe2jT*°Llii)J r2PY,NUg֦hG Z*Dfv6v;13L&4hkS b3@ת̭G @Y( %RzQ( b D(P*+ tYf*"VP4\5qa\.D:b%O=뚙 JR`X0dT*X\0dH$|7d6Ma0Hz^/EꈵR<㯽6vG ۪-Bp8a# 0 cNLxtfvwk ]ٱC}k:n' y~>0 :%;HdR]]AGMH})iYВ KKdRT ^E 6:JŒCT2Kơ'j]]jdؿH&sx:O'`UjVT**iwB/ S!ڝMP(5(XNn#̦g30a*&g@߲1p*J 7 A/$ T"VJg0H!tK&l"Mhþ9bfOQy pgi; }d2H\p)*cYy62aR$ - @l~^%Y1;K asVmwΚ:BE br-b4_,Qj%U92@-']d2R)ɄPZ@l%R"w"PzQ~ZP^~DC *BR SP @6T:zT4B!B7p1SI8Wj\0bոŢٴh .T*Qn>18huKLۉ~ժ4kj4b͙#^{m:}zL&$8T㉹\Q D)[ &$GF##Q䤷RP}!K_\~Q裷~qd2\.\.z!6'_  zMʄ"T&eAŹ@j0HM&9dm! 9Ghn L`L;ݚnmolV\ `rz77G,-E|8A$c1 Z[Z0YT뭊\6 Tz- H$B{h&[\RX?:ꜚznjU V 6{cՅ4k4xKV|D".*k"rxQ[|DʬU}CK)D"T ^oO狇)zו8 P(x< U$EzztfbQ)u: j 6 Ϟ~sAZ;u]`r~>p!8eq1`V(ѡXJEGX>rߍL$Bxl>5rEl[t)&jtu!)33~?Rl6G;ku{g$_{?!$ T*G}bd _ikS4{s6__yk==fo˵R.W_x챷_{mZ?ѽ?|@CE`D"^0 |i)~+Ngxbpa"pFپ}zڡ[l V`U*URrzTkNшu: H@+"狗JC_.Sp$R/.bxq1p#I(lmoWASѡZ(q1.g!b0!|HdE,^BO>ӠfD դ\ _*_{NޘzOy<`hve[5MERul`zrE**DZ4Aj\pKbϗ烓W^< * aL&CaޢK٩B2~b%`r|32q?)Jj5>0`gٵ˴&~'?yJ賟}CGw>|ggO[ T*;P}/4{[֌SO|SDfG=fγLNWP<0`D ['O?O;}84T*;;VSmiz;h}ٖv &@ R4Ʉ@L`$BI0-J%n0HZV+1 RTa~>h!$n'r"0VjKQ,L,FbhYjX:Ibx<]nmedB\RA[ ˽oL&Drnf&-)XےHx<g\T*HԱ+ݤz[Z809,XD,R=t13㟙 LN=LM]L&ոB@cwnۉN Ä֮.uw]Ӊe2QRYNW$d$B3 F J\[*"Ʉ "U*@ĉőǹsX;Ɲ;BXC*j$BE`(T0]J4$\.[]T@޵) 63j5 rqzi4q|\H5\.E(&q}P(!Q$^/QpVшjN'Bs?b;S,FrEi[i1HZ*U2/R;VV9V[ftuJʙ3ǹO|bxp쏋؎TW^Ϗ8dh4Ġ(!jՀFq"6Ȇ/(=83_Z@04;nl66*rea!4:q{vdtthM]$Bo>[ sCJMc~CfoKq|#?|G>ޖP('7>x_cJb4D{&&\Q hA El~o̾PTNib&aA+H!f24r-^o|q/ƽX0Z` 2A zݵ! If5 vG8݂(ZИTVv:D~bn.vG+*ϱ4~[k'GT$B㴔DR(BT4J}J菫T"B$ JR) H M8Cd -$%2DQZ -Vt9fpjptssP(a&,'m6ͦEDs)+v{9ؘ{l=7(*rppдsipдw]\S# -\QlLV50FYXY .$sbu0)QI$@\UN\<~|)Rfiڵ˸sqNS{56ˇa!4d.s8, nR*bm :!~X,`C޹R.1F  RTbF4}ާs~$j\ h LM9"0 qnW\EE\gOgo-,n\v@QrzRUL^/ٴVl[;AnrER<'N%YIO *A Vcc.:H&Bayh20`n_`'JїF-Ɵ4`6/QJ&sP2 q= `(3rj5JJC ۝IG؏\Q۫fАex=#cQ.ީ^YP*q$&4}x:]@A2Nab~s?qrEH>_< HLqzH 2VJt:F#HWdŲߟGH~?Tz$ 2X6$'HMNz'&|"X̷4V.VF##8GSw~ n?b!v;.,l0S,+nAlNP)_&S0LavMƎs}{pb3sr[Tj|hzW}};'<*[?ȋq21u?'- r{6{[֋|?N>ۣΎ=f.iʹsb\|emcb|_~s`jy֦(JNg+p/*+,C]Mz4ЃBEשY&hD b}K>_z=^o j?Qo@&bXK*+J]94t[RAs?b[Q( %NEH$ %RR(ɐJ%ՊrN'Q(0VU*ʃE\˕x<Ӡc(o I$|B( rR)˅2@ IDAT.Bx\.nwn'(؜(Xs`g9M6'N\qF :DRVIVU$qٳ1 1 $;v ;vFb WzXoz衛_b=(*>_[ 0d2ɭV sPȅQ6{[:*SSX,EҖ"O>yO LJѠQm6:<~|!lfO*w~`/ˇr_49!ͦoWG僀=oϖJ~GgiF!L09=3 āqN]&tUT˕'~_'=mw߽;RR:ͦ1彽 Al$v_85K}ʱN'+dxhVX_<-ePWwAf|V+ [:;zh! DFhDjP( H@*T5ʲ{Z-FC띆"×$_ӿ}ympм[kĪ$9HB@&%2LD"J 5ij*XTR)R(Dr UoC~AX,3aR@RAV/MQqI\(3iCltһqM#LK_˕i3s\ccPR$Ad/GךLfm}LJPV\Z=Vftuy<If~ןx(OGC .-EqNBNjcg==ʹ9G?~wV.:tߌ`09>q8Ο %Sgٵ˴MW_97O }G7-)*q,xn~۲R{ɣC7~#QpE姧}2>V|04ԾwoGlʙ3K>{2 :RrEi?7MXOXw2A>_w|q0C1EaJ h! 1dNNΜqp"Ű 5b1|vVŗ]D" % `L &w/?.,#> b4Hd`߇?sWB $sϝs"bl={̃]L]]j9h:|8S'Nt5w/$rE(Hk3ܭv;jpYB@ ʏ^}fgg\.`D---(j0H59bR.W"T("2~2Ia,VZF#V*E[ D$3AݱH$E[b`z`ż#G ֛R22xթW^\Z)g= ZkDV3gFFg,-,ZZZ:;UY8`]?:̸1; "&2XL&y{bQ+l 4~۳b[lwܱ=bKw H0Oj0L0L"ӷX*"VR6`-ʲ~Ѣv>( (~N|RK^KX'i+ ļE j5n0 `J(*ccޚ;zt9wPh714> P9uʑLfAАe`88;Kgfv;LF[Wӣ5Y5H^oB޲s^o,a`@ 2XF$35劾K/M>lmezkwZ$$dYp8,Nb0z ۪шDH$Ed(A'2K{`QIY[JrŎ<85_\ e --X"d B!"RV H+BG}+b #^xܳϞvP=ϜYu:sU*~mCCF^o JBEѡXQ4<4YR(~?[v;ק{#IĚϗ  RO DPHFl0HZ1}'Hz ^/˕g=ϋ>x﷯oucO'bN'1z" N'Uqր2R9\߇~qF 3" 6! jKYZ$YxC'"-PU`i)[so5w|*3e7lnٝT*OO}cz Hd Zedfn9bb›/';T?W~"zP\Z;:Tg<0`7\-ϟַ~f3o{a4؞Ȉ&'JUƇ Y Mf /'o+=n .~{-Gy @W!McdG^~yu׮G9ؔ&zS*UCpWKАMX,'hğ>uJu ӂqBR *:GP mIf"I{Aqq1N1 c:6 X/OcJ~ uR r+s"al6SL57C.MHP HR>IG LLg hpR[\xϼbH$tS׭v4D$Y RoᰤR>xbMTǏ/>|⥗y<ΡC7~!)9#Gwo֛o6NTx13pv:^o\`V*Mcil6 %h^%+G~by䑃Ȫq=Hd@BS#J`ZR^It:V+$\.K/M?w :;lvx[^o=abgU]]kI$2Wӟ?懅BdeF?T_F)6ӣjWhn?z}=ۃv;q;NaI֫F\,Tx1s8,V UJ\yE!;_ ;'!{& {kDZkuG{*:qZݢaA3 ;QB˗${|zܸhSZM()Rcp::Z)+\e\n'r<q8U؃Whfvv贈ad1\҇h/,V9e>{kh7n\7߄v0L`,aA{ ՕV+8F(4|_;\(2ECd(]Y/_ uW_y ۯRbPXXVTTVXXꤙxzR)6//SS5UPq#e;UU3fϞݏBNB&BQKM2)Kokkfnn^!ARR ޽c8LLygU3FE!m277h2{LMSHgʻ"[aaiAز"\|h,2>_ԬdJ~N-TNқ7Eo'é31oPߐ%W{eݱc7n`fNKv6wҋt:APss9l$ qw[Y)'}Kv6oڴ#zzC²*]F g+[s" \,x,XQ2{IL~`tϞjd1TƖHdXnP@6;5k?y3qbիcBZ{„&ضuۢ ח{u~<,ᢹ7߄FG$D+hRNJ*uUT_Uw *QvJѣK X`p^.JlcMz)0PE&Cx*>ƻw̨>>ǿƮׅ'Xx\V;"T MSX:hGի?s@:1r9_\TEFb 1GK֛߮7O 2ͮ=z?ԩ^h:'OܰVjzcc}uۢ)+Wޜ<6b?Rs)4̩,Tnmm`iWzpِEѿ>tqbbAXC;B2RRR`,<z6XF -ܤ|'7_XX- ){{ ww}R3x@ZD&C.]Jڹ> D)^"xShcQ#[4.A46Trp01i! ξpŋɆ >w;,4+)_e(ɂiA!]FO~f~H7)*+k;ΝOsp8\Gic.W`y Ne2 .0> .0N5j HAzs?kd BԎ\ٕyyU1jސGgEMђ%ʳ6~wA %%%%%'edp%CCCBBC|}i/fjccݸ.""d͚r,!*F*GFܻ ZˢE {mR\\~ܫ ^ u{Ξo`onk"RRX))oSSYuun=z8hOLvۛo4ێ6}[cs̯(Xܜ^VNXӀ;萿]; ZL)X Kk$}X5?A,([wΞo떖1 ?K1N,\\0׆h>ͮB0u&\qu%ZXhfpNQ;K^HO[7.&F9D*+kSQII]dVx",XS6:8XB ·Llp׏~2ݼrRRv6Ã2mZIzhxTUuuIKc߽cT8WWrP}PC6pUUPݽݻ_~P]ݐYc.W X+77+źD''',K8h|6<{@nt&SʋʱX ''rrPDE<{jeASm R_PPiV Kʱ..V֮Cմ2 ΉD6|f SWwtđk.R) 222>կސJ|(%K<=m[Ϥv}z׮1B$)z("sssWWW&bK/_>\ဍYϞNvM V[8v~ܺ7msl"ˑ{|`T*_QQC"@woW-y<||eЭ[6.%D- uݯ> %'ܻGq'ooz.^dDDzxyeH$8{6<^S:Rˑ䢤¤"@X:8loosn]a%`MHgyqlnLL#ՕO(iil:CJBlG,/..g2+X\>!(,,i,=<(d//* "(0WGS1bqCaaiaaYaaVj FFzNN͍ ׵ pK\=Y:Xvu%Y{xظXðZɐ{pP={*D"c2+ &1闞|BA -runXm3))_ݼN"7cFxϞ5Vt6IN. Fr*So@ m*<ٻvM8G^ ҕ)-dfdds EMMWSXYyE^י55p::L -fo ٽ{-@Q\\q{^.G:3l.C1qwSX*Q \pӦׯ#2C\`ҥ?v@ 9 ?7Os JrD"P ֫͵TM}lblհ0׽{@6U|ի5iovL.>:I$[Ԯjl}M@ sgQk2t6rIII ަM\_`l%Կ݈ ߞHN.{wG!aҥjB>@ IIEIIiilDF&a::Zk[YY/WoN2u㌍acC:'N´Uwgσ'f n A{0aBUF-…s$ÆFEiD.ʒJMAAMƌ;6"ɞ=Sg>D;@ܹ͛1X^Y!h 8`1銉rael#3$3r@"Pd wotu$=޷@&ݻFD( rrx\!UV <=!lfh?BQT&Cq8^g|=rrYY% [xyxyQ==mmj+/_fѢ!SbJuuԩy>ҙS#S9B,n(((e0yy\^^^)](Dpuvs#Sfp@429=pסC5d:yŭ[Ӧ93J5UQ_L]Ng{LIa{͍h`i" HUkN=\^^}\// dV{LIafdde Xo&?]LE.=$+IIaW`i 237RHAЫW߬_C$j_qȑ}1Jii5Xӓၥ.qH+.6bt6gV7') m<=oo[J,U_\\'|q\\4aihN|ͮzuSrAIhlln\P+OzO]@$D"p8TR j_Gw@ MɐS^n|G&+Կ tt$X?$ı{w=;_bc6]~c͵ڀuM ^\֬N²/]ݶht:dC}g `߼)NN.JN.*..ש|x$71߾}Q/wXqر)!Jt:7o1Duܫmhr9T1|\6!x[[3 VFWW# 6PQQ3n~##+WkݤQ`yf2|e)e "+iW23K8*7חkhgCT*_JBZPW'0D,|6R.GH$%&_Ȯ0<|7k>}܎9]ܹӧ7.h޼Zn-t6>)H$#ְ(JIIɇd2… |HMMcj*;۷))MaC//U攂]*͐Hd997eJO`{+%( ZKغ;\ /O/W'iGv<^gϟF3;~|*V7/ ƭ[ [_zMEK.G1SYR",)*)p|Q]0yr=Se-+_TRRVx"&{޽hD"9rOnׯC4ŋ(dɰ1c*(ڦjj-xnjAő#O7ne qCEkTybԨ=}y^nL9ueV.**믃?k}ZZtJʪn{ʛU8AG غuo \O 2'͛7orszxPzv svxHJpdgs ,ݝM 'vQ\\>v@SfkT,J$tvv6@hf,GG33(\h"Q]F RaP}`}PCP=@űc̙}ׯT*rjI$B0`8#hES:(Rƍw=ᅄ8!C|mDt:`12s,- Y1iA_tJAۖiɬHJ*nQ,T9:88살F OiӝfeUҭA$۱S^S7wwz2h\-[~uۿQY|ƍٹs߇Af5i.L6V.#&[EW^>!ZV&p|؅:¦ѣ=&ރhuu={:>߰aBLkulveTQp7u2\\\lH$x{ۜ9=\vn'OܴvjoZYʭ\Hď4cF71\047Azh71iĂOl]]Һuc33H$ի%$޼ybttouZjk߽c>HJ*,u q w1m}S__/<ػ㬅h> K㝕(*TSLW,5* w&2Zݶ(EYtNgWV8GGK?? 06WHJܤ",6/O(o%TN sƻ Ϗo4ͩ,Ry~ 3U)jTU5!y2/:wOѴU;E;Сlj ddV&, f֘@ Dz6r/51'Nظ񶟟ۋZsJuuCRRw̷oLA__нJo}$Znɓ'Uc0 3&66 EQEoܸQSStcV}@鶵 %U\nUUUہ@0oK̙Jxx+^`MM Ҝ1@+.p4$!::xԀOޫ^$y8߾Ve8~Ҿ}&ME'BhפE ^/_~?~щ׫>Ukֈo^b9D8S(f[UUu=@ r\JNgOq|w HN.7n"VVF7odkO mn[֭ǟr+'vW$ع?JxJ3$ jdiU_n mݿ˗m _ӧ93f ۸qmi޽=-Y2tM( NFFIF'=94oo͍'!7H\aDD~B(Vj/\xbASSuunZ]^^LJ*R$U"CC-O 7n?^ .{9&|755]bYDbh!ʁD"xzZB\ H QTG HYYJmP(,//y2 Do@ ((L%! F٧[SbU#<0&'re~HʮIʕ-b/zMKyMC(۴Ό_*V"`l%O~Ȗ-wg L{@\~ t:= Wy:۷IIIIEνR]>Rko_d>>~~4,Դ .%'$JHx;&::@E!JcҤŋ,mNGA& bʅ Iv5  rv},DAqqyV7'.}Icvۀ@XXHoɱ R##@P'luuBAG=%Ki{|̈́]ԩGf<~6W d2٤o_wimmcN/#sޮ^}[_/!dZ@}@#!Çׯ[fLtto+AȀqqs66_|i ӧggd̙'K6̷V8 {*ק` Osۛiicgg^!HP+&N<ЭK?}.νZ"TZ.G  T#tsq u ߚσ._h1%%%z}Gor֭_dVcaa!Zςc55e  G# N"UW||||-,ᄇ,'H10 { -**/**+../,,UTp8Á"ѧr{ZN.͟Tv]?gΩ{,ZԱI^J"[%˖ur!쓭fs_7mpzx,sBx*RyeegsS(derb?_806"7ܼXH#r(|usO "ͩk`I…%;j@/l!!1c]8:%NNNMu\.[Zh?=u)B̬ۂLJu)?/ν"p޶}J$Odp8Ee29/?y._>"H3HMPe2+L/|GDy@mmWOzsgJAȯ͞}?t lL&/ܿm IDAT6=JIa9򤴴HĻSĒx Baݼy/\xm[Vr,Ty8)0>]%ڇ:886McA\k?W/ ?~δiGv@{wr9RTTU^OX@"<=m<6e|}mݳߞ Ӊo}~T&CJJ >VWշMNNVd;ҲK8V4JuuCdQpҼnt&Eο~] 9I$˗yNNVIIEIIE H{{ۆ8͟?o_'. oߎe0T*u2lÆ 'O1bMMM=z4s 5k暘,\pʕzP(>b إ>ɬ 밳e0G6ڵ`mHk<9j͚kV@99={Lpo_kt5F"``W]PTT˧9 52ݝNyxP)n>_EH?rsyn- XYudT*oW͜éݡgO^\x~e t'OHZ }7޽{s :uTBB={v߾}w؁1rppߞ>}UZZ*`;w=z>|8qr 1x5ڨ(>iӦM4)22(fga(:essC5}m۶[n=zt͚5իWJJʜ9s8" UWW[ZZ6TW찰7bdd&CV%)5(cǞ덩S{mنNV߱crDDHN׊|M×.%/Y0wWWQ-3h\_?PL֮;fLZ<,\xE6sdVŝO"9p tZ1Ǜ79r$F`2+^`xx4G"aěB$xzo ɐQQQCsӱ8H6SRMhݺ_)$AGbň3?,c͝[SZɐ\޻ww<IpCJ 6;9;[3{w |JRRΖJNQQ"06޷/RNHL,<2~|] /MMe4vffIc@Ϗ`G ~xccu}M[vm ] En-ۜcӦ;Q~e4&"CKn.QF$mm0 cqw'XD( OIa^#t8EοzUдJSJJRYܽ{?H$AjjjfΜر-[N<8q۶m~~~$--N__ -[fdd4~x@UU˜J.\HKKsvvo˗/l;=z(Ŋo:tyBCC߾}_ ٴiSLL'sP^@ #ʗ/tʛUF͟?HW7g|fJ^^Sė/'o8J> `lgkd7n\ @ 7K^X`#m syc~qЂutV*2~|pdrGGKu 9s_"a'\(֭DFt ؘw\ ͟4`u֭ad(|1_}WS!'y3VB$UJ2_o$$ھ}2__u^ wHFGTW7SRII|~s AⲱclMp0a| T?ׇV2#"MnxCC]u Q'aa.1c֬ 16@{xP<<('Ryn.?-矼FVz)2"-Zts\]aaFȧp;wN4<&ݻ,,4b߾Ν-[eGv:d l(#!%%U {iyyP52srrw'yxP]C %Νcfv S˗ߒ\ hb:iWHR333ٓ'O^zE <d2ܰ/ OOO>|xO:%>Ji@ ]\\Dӷlr]]ejjgffΛ7{00)0?2g?@:%BaݴiI;qb*YY_hPNm&kj Ǐ?733HOb} \߃wiD@dgggdE Vz}H<:u&G]]ѣG+¿:>{\__ ˗%IBB˜1cJKKTjqq/ 55ݻ$ ;+""ҥKcƌillN Zn2sum3&66 EQEoܸQS%/}U>PmB+QPPL&uk^]'zpZx .& 5}A]{;eJώR}/3#G~Fƣ㡃5IO̝?iRHlh,>| pBEH$ Q}uۗB`"?ztիo,ܡV) <|a$Dc xCQAnF(mq>ٹ+Q}V\8q7 Np8WWWt1-: A;.3mUzd "Q̙'N ZjhWKp8EV2J)&o:Xݕk=xjհQ|UhD011iO vM4h嗎$&od8Gb2v7;0ݴz89=ۈ&a@&~ DSzDn:QJLfWYsRqDWGe2$30 Lr /\\UeD(%.ĉY_֦Me[B"Ə>rOϟnرcmal߳sϞΊW8lnn.?3ÇHr]];ۛE577PH]3ҟ~:7iR>20o޼gϞ)A!(ffcx==oXѧOs/]Zz#[իW={ܼys۶mc7tгg_"HnݺEGG:::~G,)DGG~j###@MMg[hј!H'O駟իWGFF'Mcϟ?{x-Af͚`{{{߾}{̘1fMLLz왚rg:FçO4ܸqcJl044ps1̎0K߸+B+3T8cqgg'2R߬m&T &֑X Ǎ5'mѣ,ss@{\ :H:H]>_4c@m۾Qz ,Pzw33YWGOLd$&bɒ%vj:On.Cざ^wDpux:Gp:Sׯ∵x/Du[UY|ɨ4`U7 X\\ YUUsR #".^L<9T0 P6bI~~)`U8@Apx<￳ 65S `c wn_-̔l{QrrPYٸ};*REݵkܹ}&QR04]t}mgΞMܸq6,͌F32{*  >9=nd;;9 ^W*!SW'1㸻͎ Lp½{*Yr˫++k*+k+*jj**j*+k|V,72ÕhOg`R RJbON>b 6|E==UV6vȑ۷ooֈ]"## VZ5uÇTWWXpaHHΔ)SVZqƥKn޼yׯ_8::* _pA$JV\\\YYي+H$ҡC̙l2LxⲲ2??۷O69]bQ/_VbTTTE~zEҀ/}㖖[n"K ZNý{<;`QJ6^`$$>r$P^zMڵP^I)mٳܯR:H:H]:ɴiGLM8mGdԖdT*cu  !<<\.)!!NڡW a$3Nt!pt:r_iM_|YWuVOYR\z0{{ 5Z(FSnM@ܻw>7550636717276^46SbZ111Q)*Q kSӧ9xΝcb˕wĄ/_>vVB"<<(MKK%99R9Dps#{{Sinr%meɒ p8mncg…Joz2j^|vԻw>{XYYYDD֭[~~~NNN(JҵkYZZFGGWUU}={۷)ʖ-[P䏵(...7onfjUUU111K.o~, ׺y&JDQnnn555r444իǏ?|臟(ׯc 8ܻ㙭իdr wܹՠ|Z & zX{_l5ؓwc)@IQ87/wuG,QbٳJvPhۊeG(={P8!ʥOTPOƠ(*H-[fmmmeel2D{Iهg&USO~#Ǐ{zzZZZnٲ%>>x3W^wFQ-]EQLfjjzN#fɓ'1AK1ƬruuEQG>~8~{aAAAfŽ]IHdo>B@F'""nℽ{\͛ⲲjuP(0`kd44x1ħOsrsy6(iRFQNgyST64Hm DItL+,,Xb%4yu?y?f0uQ5ʊ U ?N$kjjvC{l2sĈ?x:::fp8gϞ6[lEQѣbիWMi1 EAt___(nA"""Ν썣(:}>O&_~#G]r޽K>&?;w@@@PFdÆ[T;T]mW䵈.Wa+mlo~;ہq3JURVVmcŋ4g )tcǞ.~$.;?xA.4lA:*ԫ-1(n۶mĉ,N\믿}xVC%Gm߈(`ԩbرcX|aۨQPy󦱱qpp0o޼ӫE?4b3iVmҾj³<-Ϟ-^"O(5*ɒ%DBH${(lmʒR*Ӥjͽs6;us9{޳92 IDATxNNNCCCꥥ*xܰWA.{wjjk2O9wCHLܯ@PGOs/]z*-RhU-؍/Ϝy( "W}]nE)ʤիLMMիBiUܼ}5oݺo_Y(+IVۇn/گ.hbҤIؗʔo^^^*++:u|vUfFFg޽M 6! 99BC***fffb?lllBۿ߾}kjj !,//755utt\nv!**رcAl#DAj5)!}wmm_E O47/?L9E+߯|MAfگ"HJJҢoMJf4--|ߔ4#hH6^]͵ AkR*0Bhoog811I0~sQ!Q )čB/"\.WK7,--MSS.[,$$DYY<""bԨQ4h,o`|i_`ʕ+!nnnV-X o߾ !5jTxx8݇w/^|guNT#nAUr?ݽo߾KQf@q8)~DsA>q%Kˀ2O4:sd_Bxccc[^JW,dd|3fٲի}fڜLAAiB³)S"C+o]ԱcziQ'88VWWcݺE  i+SWWIJJJMM555uuuBAA-s&L絷dee1gϞQQQx$ xc)..nhh~`|HnqFFƖ-[bccUUU񺴵}}}_|9|L^^?(b!Ϡ]E SQ}ʔ?:sf=2|yرNGwg9ݻwذa˗/Θ<˗$ gPC@ eSPu]?W$$,ךAKۈ &Z,-Ո|4H[FTVhj(@@Bu~l^Ea `ii]RRB T*pڴi?Å 豍tqMIjmQ[XK_pV#0"{yyyjj*vDg\C@b( a Fѣǐ!CݻW! $$$߿̙3IIIRYY8~8DU2 T pٳg]\\LMMג\?V0mZ2'̙3gϞ=ksXYYچԈ-iSQgXBȑ#7!I Y#0T3j W;v,ɓm>4'| TlTS5.|C_D._**))DFz7^bڑtM_IOgƍx<޺uL$XӧKIYi#+-0mTBwXUƜ=כo \jA ҧOKCl[*.!YII%"Ѹ*׬0mZ_;$uWX\/^n@"dfsHHŋ+**߾}_CCCuիÇӃ *B,-`UHܘ4“'Ozǻc,kϟg\.WYYY]]}ƌV\paAHemm-UQQ TVp8X }֭O```|||QQ׃kj5ӧǎ]EE)>~>||L B^^:hÇ23tjD>IAcFKKE(@(@B7Nn2?8. F \\3|.@4!^",ΨQ"##飬}09-JOO?>ӕQTTb(//w6K!Ʌ dG}׭c~˽i`ɢefBz[Xni>C/]_"uEm7mwrm֎XӗttF@mۦ-XDk]]W8wb/hҁaժݻ{r5/YDbH=z2)&Mo|mmm׮]}}}!ٳ'`\rb3W&ʩIJJRbi{Mt37HfǗgϞݻc .q 6XYYijjԩSBV 7 !XĶ)0PCR^iq~mrh-\nEMB ɐÖ§KUQQM !H*5#s_& Ao (@jN~tf۹sEH#4v&),X0uT3Æ ki ~&s=IRfNZ"1|JxD/z(VҘ>E@lYttttuu}}}PTxŇBQ.q#ącB*** UUU***AAA|EQUvvv!!!B1_{rr2`߾}T[r0͛fIn=޻ϝ{lj͛ϲVGF1Ԅ%DŸ $|544ggg/]̬BOv]sssvtCTT#F 犊9r$Y"I *d{/.Ѵ8 ȑHWa.-C>_k߾ϟH|Of7%S$dcB̝{9T5EbFG#K:en=PQE1aa &&ӧisZ;UUݾڔ)FFKsS6iӈN%'|S *kؘSlmm9NCCÞ={555{ lق,))2e v|ҥnݺZYY?~\(;zzz[l9~e۶mW^OyE;;:,ZF0; СC@@?7OLA!iiiJJJ7oVUU}#B"## @~Ul,[n9;;`)+++Ӆcs ڛ7o&/I"?4W!Wٺu+nڵfffzzz3fZNDX۶m7Ƣ 000n 3Bwǎ¯_X˗cu}eayy̙3uuuMLL/_ΟC,9z(V|ݻtWAPG[6|FJnA Se1uu S˘{-s,o? * +T#Hk$Hu$a,??ec|;8|& 26/PoT**QGeF'6aC @&,P.?xԩ={B-ZD8JT ԉлgeeeAA5&?aӾ5r5k$K(V2Z:z|)iݯhL6bb7lXaY+C%&%;?&|LI8BPPTT(,,!ޥBI&tI@qIII3aoע:&:){wxؙ1c>|е_EC 8W;>~>F|#3[x& 5CTw@(PЮFBuj4.:*~͏?8vX {OQ@.%|mu``"?@HCtQS` %])3zDvPUbYgs]\6w|Yjo~zaFFK-,<<"iшY|o48=s̢"B8WXXxSSS@f| ȑ#'Nr8UUJJJBQ5ӓf:t0e6}@ii)rYYY666֭̾uI&>##G$4OL|0wɯT:r;w\zUWWBcƌaϟ[B']*[ *'O.//?x ׯ/^ӧO@@w!yBG `0#y!,Ԇ F !o۶m= iiimڴ>5t܌]ٳgDWO*4AU ?Fx<֭Ww]b.~ͳg|5DMf9sD,r&4_E@ #4]Hu$>f2DJK1ř3ħ#Eؼ@#g>21?6 HD!Pܣx K!KO>~X[[Bx]‘@UJMeUT`c,!t֘ Mۯ|nܸ]j?ZsK"YlxYuuuuB2WAHNuuunnaRR,tɍ/>-A cBFĞ5Bn?Wy<իV^ݹsgx UUU77|XЀ^naExEuMq*HmtӧŠ uuR *P)`QՎ@,߈sr̖?& @npиP_ Ԉ*++!R4,4D7eʔyQB[UZggggee=zH|K+T]xO /{[ڵ cc}RDE܆d1*K:HAkޯ!pቱZ;٩jnXX }a()ti``L댌>00:MC Ys&'5gMMMݒCTT?cׯ_c;z޽Ǚ4i6YVV}rWYY :Rfdd`cbblllf111I払7㹻+**N>]SPiggp(‘=Ƃ7G2Bijjre˖(++GDD5 ˫e8(([qw~dB* jTU# 1ˢ"{q"i&Ќ* GA+WJIXE@ C~#䤥bbW%b$:}3 OX $)9)& y(@b:}ӧN׮@: 34< ; ( E<%Iܒ8~Q#x$8[EX'eee'l~GStY%Y^5D*ņjGBBaĢD~ DUB= ~2zNoC1&ddJIQc) > |B=z? aקnذk׮'O$4%g&x'⦡ {%\ZT86eu `nnnPFxRBq X(^Q5ҥzH>%& x R4; H8K=߷o_qѼ_0fծ]ڶm{!{=`^X{|Q|QzgQG~FG!!'`gG(ђN(3z*! U ?ۙ;iIA66+MA"xO m:lXRs=saY/"a7gǎ?`ډbz}3yyyNNNTTTFѳgϨ($oh:::TSSSWW+(ט@YYY蘏-v`oou|󍌌X,rss{/4ɓw܉W!}A={fooO~U ˂YPTT8qb\\\ii[Q*$,[+= ܹ D=_BfX`čP?w޸q㜝ݻ4zh@qqqCC5Ɔ~Am޼9G԰Ѫ@ ϟ'Gxycߵ+q~ff45GMx3cccf͚%*%a BTSSG1@Bc|ss]eL l 1mWʹ-&HC݄d|)!dggc Y%azJ0Ǐ߿YcxsLFZDrɀBZO0f:m=SkYY٦M6D$˗HL|^!<]Ep,/SPsB8mڴiӦAΜ9ӧϚ5k222BBBOcg&a?H> -W"ׄٛTxxx3^ IDAT;wB;yd**dBN ?ԫ0~>&h@-}#I2[)APt{'##c˖-§96.<LJ1.\S(G tbDŽf ׯ瘘L"ezqcܹk͘qib99LL ظy$.~Ŋskw:tôD#t)=޽#dmM޽{ |r쌉 ^|I.zʔ)鑑ׯ1;wlcǎž(},] :4PXXx∈}qFl*ឞb>}"/ B<<<.\pY?X,HR"t gϞmճ%+_  ֓19B)((5*>>>++GC ILLw_@QQ1//˞kbb"h FBBϜ9D@ $۷Sq~~nnLǏ+g¡̚њ&366ҥK={IHF~Aq13u_ #ʫ)R A ZO?wS۴w~hxbv@$!n2Al J# Qq~7uuut헨%K :Sm%S lVט6^r _lIdRd~ZIǏ|!|pB##E䔔`{^xaX?V -W"ׄٛTԧ1\\\*++SRRǏ/V<)`|O ji ̬IMDR)R4;_9ױc:u-|c|XAAѣןiT(Gk,a)-Oh4С{_^5;OS%^If orͮf)42>~I^^ɐ!nd"1zz?;6'33ln/]]Mz\u &QEw D CiNP,ZӷnJHH]~=88\Hmm-UQQ TVVǻc X,ϟ?f\zcM]dINNǏCBBO.xiĉ+W,((1bľ}ĚG.Sxٳ˗/700XhvuڵEEEnnn7nرijjj̙C~U[[pq6{ne 0~Æ 3f}eaaaaaPVV:uŋ߽{zjoihht)88x޼y55rϚ5+''0R'QY&̐@;@ZJظq# LplmmCCCϞ=cXR^%8XD oXy5F -{8q_A׸{wdڜwٳc֒59Ç/// !O)  #?kƓy]hW?:h{'f%@RK5 uHIWY{UTmÆK Jz؄>G7LX \ӧOwޝ0a»w-[]" XjDTiӦwΘ1ׯ߽{76#Kgf2idPT$NնD_$$lR'd@~`XB ^G)?AX q\ }7SC۶mٺuE455NzʕH#4=3E^ ^foSQPTT4i_޽aQ7 {z$O jBz[F;w`NΗ5<.-XIJ @ssquu|xdTHOO'#!vxbIIɊ+蚒3v#--$x.];99 _ɓ/_ܽ{{ .~ϟ?~pݧO b D$}QzB iXzZS9Iس疍͊JjAQ+___MMMC_Euuu...I+L̚u/rFb'ׄ{^G_d[pcLM$@᳐ȤR046Q".zک\Y+³sNccc4< ; H4) 2a)Jfff^^^ł (J0pį4Qu!ϟc/++>p '!X"uI6uTbB^/ﰂ2Rۺm۶uԩM6;v\j}iii{VWWݻ'O֭sttTSS\b4iyf<;@$P4ޙ7ďQNը){KNN۷K#; iqHB!OSv, >~8_@OPAI{TrC߂t @/4\Uj!,"v G u<͍o? (O ?ۼ}2'&MB)C›.*8ŵǦ,g= . Ǐen<+]Lq.]V Lۂ ]}ɓwz 6 @Dڵ~a}}} `4evM( *BBBMF==aa%4_o,r #UFw T4>Mt3X-x?bvکw577' k߾ϟEiB›2x-JxŒ~'\"FIê1cvqħ6s琭[Z|n:`ˑ="}Rw۷_wcS$7h! DEAbhlQDYv ԩML>̕QPBbiH`+DZ#Ag<8;HiG+lrSS*#F ៉9r삄"?HF$55hYVLRD*LFfVPAի_dE$(G4E4Wa W(w|} G]O4}&9ԃ B}}Сf:L.).fOl\4h:>q_0#Cn;to>@ЅK>s򋋢J߾}%JNMMM^^ޑ#GΝ+uDTCCCMM-''ba'Y,ɓ';wܾ}m۶CCC;t]QQ!(D0/!""NKK> q%rӧ쪪x<޽{;wկ_$%˗ՍÅ +*ABB#u'N!^̙3Æ ko۶mddׯ_% _~EOO4 Q+:rHΝ;t~ ++vڭY;u꤯xZo޼icceQ+PChm  $&ܹ::LNLosv5+Ǝ@`aYP𵴔#>i@(H( ^`~)HjXTMʅxٳgcG]]ӧ[U<4*.aCߠ޽;2k :h$١\[[ϴzP0ٳg<'O_%O(F2wҥm۶C |2CJ,ظ}yJJ4\O8x͗zhF `js_L@ y!4C6AMY" +V~Ez6}}hߵk=~L[ xqQW{ :U!Ӧ!qϝ{lnWZ b_Oe@rr@XX jXo,r rȑ'N@_N<_FDD888dddxO>P;v׏+,,r励1v~֭&Mz}FFF=̀z{{Ϝ9Ç255fUTT|||>~ 勠GUUu?>|UA;y<Ձ Vrpp'qㆉ[DDD~~PDvvvVVѣGxyy :4777##k׮֭kTͥ'>t`ʔ)l6RLóRSSmll֭[G*cƌaϟ]$[5ZCCR$KGff˖.=UW'wߙkk}hty!+?hiZڻ&ʑ萘铂ٲt%7YH ,!iM޽[WW!vppx&*BdNy<޴i]\6WWseB,- 2BV?aG--Ξ}$qv:@mq0;ea+7o>}BXQQ^ZZl3MLL_^RRhcc#*Ěȑ#ܹ#.\aիBSe.899;::bFFF,b{N mmm__ߗ/_Ο?;G(J***YYY#FٳgTT tttRSSMMM]]]߿>K3gX={bbbUUUgΜg͚5!!!AAA6Yp9s5Y\\`mm#ū\c>{mooh"N]&:Bs^W7oj!1c[X2mX,֠AII6 cȐII,@(P!jXT!t)**N81..֭[^^^bK-NhFWVVƍ K ӂ)Sjô!<<<Ν;!a?---?8˗/===SSS޽{ |r쌉 (QTWWO2%000===22_X<ܹseeeg;vlYYXA 111;ve˖`6mհX~ *(((=z?3yyy\KQ 'YYYؔ(-av255̟є}f̜ٟisII~ܹLBѣG?^o, l;6iCٳgRQ!6ۑdʐ!||BP$qD1 "TDa aXJ$VDž Ξ=bjj*b_|I /ƈD!?`f֞iCTVV$&&?$>XXX~_QBBӼ•fCw츁V! DfX+W6@ ¬Y.m۪EFa5bŨG}˴!41qbחq#G} $H;8xtZ+F]_ŋO}[Ĵ]V~ė۷iCfͅ-BH9{mS22>ׅLۅh@TUZZ<@vɒ%ETOIIi XEѣ!ڵ/p޼y={rXl ?ñܿ? 1Q9$6Р]2>|JOO'/#5j`u v\SS`llܮ];OOr,aaa ~aYfVTTgϞݻc^w##2.a+++MM~:u A;(vѾ}{33HOOOA-˜kkk{{xa]]Pu >\P dz^bVu9::YZZXZ019|㹹Ӕ͘1CWW߿bVUUPQǘa[hQuu5oP.t"ŧ6jr뽄"w_QF*‡e&&WfЦQ5{d;㟙9sQ4X3ʕiϘgS$d(?/..7]_nnw Kk೅:MAR$o3a aa^P7oZ0 (P,i||+;w466f B MQߺkt>;wBҥ(y(:OwQdvimmݮ]#Fw <+ø>.x8)l hF,hʈ{.=%]{Zc:oLIHHYCccc.VZ ȃ,Xp9##-fr|Ď]@U}s>NE9LWsΜeo?w:9 Ӷ ý{o 01P]w%*PRRڵk׮]W|`)(x53ZXUBf_}!Lb[.}uuYGg4WU++־r?Օ],Y$卄c3 $$$,,k׮Ɋ"'''ΫW&^YY9iҤӧ_|999ygС&7nn% jdd˗ʦOp¢GUUUM6MKK o;v}NNNEEE]vӧ&M%TI\@H?̘i'j2m<y4ujoeeEm!@(!F<==~7u uu~ swޥUTT/k׮ݲe ŋwllܹs̙jkkE yyypLW6m3eor߰B(@89;; UkF覮dL" foڴKUUիW{xxڵի>>>'N$W'iBfG)ݺv!69Ӷ =555G9}4Ӷ0S;{[[k1m?())X,Z)(*j))SRURjNQQ|8a„4H0jh񲲪h_jmddIy[RRS\\]RRKuIIMYY-Y,Jm~qr)*r3h$B 0@\ii55u?h#u{702hߪ_~]uaªE՜eXB ZHk2ʢNeO:M3H#gIfsW=s?ޑ3hd(M+fn~5"kpgu:-XUkRIʶCTX&ctG:Z굑NY!QAǗtG*+͗m{„=ߟ3gUUV-%8&1**}i׮=X_{ŎH3G  FЀT|URqmٲeBF-ǏKΞupNʸ~4ps3a օhn{@rxڙEḰ3aCvY]5oX'7ܹG۷߸p!}9s4? @?TYY%KhsΝ;wfDus!1%ODkb̶mW8yxʚڻν{3g )>illZBGwwY\:w6槟? ^ƍ^VUq ,-6,۷*.^Qeoo{lСٟ={fooO"_EE%++kܹG66ھׯOLL<-_yrM066mRAr 666_߿t7Q&B!HyӖ-;3n?2JNJGk>!Fccct钐S|~~?^ * ۴iEAX-//o߾}ceJ=$S+u=~/Fδ-ϿvZ+=44G+W9r>ܑdʔ)mvJɽE^@d rq[~Vl&-ݖ.m۶4iR_߿mQVVqnZ@۶jz66CtdhmOreCB³̿Ϝ7`KvvriHy>geed|*~(;BضmN:tt3tt4up0ݕT=(*ϟ+=vʰa]/OO*'[ U7{ܹV>Y_gxGy33!y^^ [ϭO 8O 8 ,-; ݹ[73&]r4kzX짰~L %%%yB2 ڙ>|G~IpB^@>hxy۹ƩS:D2:" K8y2gڵr .F;Vϡ%;h#ČHحoر17e"DSQRR;~|#GͣGSFzx4 @9U x{wE޽+jGneȑ;O۱V ΜrXʾ}wR~Obb`R#GGGh6}zɓ{iB= %K-Y2ǃׯg޸իO\n@Qhhji~ZUan;,ںC> G^ׯ1p sqqxyymܸqРAOOqƅXD~uuػ&-ZAEYPleky^Ulb[;PTA%M Ǹ}~L6̽ .TQQq!//K9sFxaa!\J`0;;;MLL=]0FSmDElpu (Ī_GD#H\|APPТEdkuuu>|ojj_5F===?~ك os{—=_/~di7lXÇ(\sӧ?~\*˕H$/^ΝyO\$)))UUU}W<ԥԽ3@ tL||FttC!NNHCBquuy)t8G ,clinlJ"阛H?[IA ʼnst ss+TzAիJO61" Ɇd!l"%7"..,<;aC̴;esiس#j͙[U5};w MM 'Lpf$'qK  Jϟϸ~Uq1D"FQhȑNN Q݂^OLuڢEt~,^,G: @ჃDE ߬ VvѩJ+P-NM{gӑj n^ѩ`F砬  oߝ?t k}kjaÆ566_>44TqVZUVV{/Kvu3gά\277˗7nmZ:[5c )M^Jݑ66vҥ66ݓ.^/7rq/_nܼylg$/?4lՅ4Z~V93zΜX&NJ"uiÜ9jjqqa4g/[G&*)!HUUiXާϺ9sN߸bq h'kA:XZꖖe@[aaC[]F:_ŭ[c0;wv,Y=t#qqbXcdyB//cG:j[JK ~^@:,-u;B˗X nҤ#wO lU*~֬AAO~r)S\7miKbcĤ3$׷wl%%ŦM@ z4))#jEEY,C@rB:=?%D+ggK޽M ŧONNNͅKzcبϟ_~ٲeEEE&&&k֬IKK:u-[>wMMͽ{N_RrϞ[7iɒa{Ǽx131Eqq@ JIIIIih(gO3up.V$.ӕ}"#k.6h椓'SBB\lu|JR7m[OO;cA t@՗ 6$HII.^|iS[m tPB+{-ܶ IDAT:/^TvvwL~o)g/#=TFF3~N ջm={vGwWM/ʢ}ܹC| U({w혘/6|,ϟNtϯwDD MzXlhccH"阛mR:@,Q;~.ұ__5l9{e՝X,۷T*[u5$f`@PdC2ـB1֗{Tv\WW=$dttԺp3gF3K;k@6?ǧyz׷XqΝ?\nӒw_յ+G֗7-ܹ,ZSͅZ~Jf@ߧyR\\3zA;;P5_4@<{F5`V:-cKNN߾ÿ]*+΍R{L5GhsR"''Έ@R`` ԩH};o33虦drn~l  'Y?!IhZ"J#PK} /_ 2}̽{:80yRcǦ˗EG9n2|8sSJJh ŌB1OSR [ r Pq8Ǐ8*o_|8UA[4@H$ٶR(w?~65qL9QRR0ɉ)Qul--AHnA(@>M?""Νj) M: '"8o!X"VW7hŵ%%55%%bBkZYmߣ,OѩT*H|݁vvƃHR\\CҩT:DA*6666/bx׮e8񨰐l9ϏoȾ݁8*>::.͘qr'<zb֪URRS,,:Srw'7lyiRRN\\޽woo{ LJC H,V;o$H$y-С H3o~rR b_{S衟0/$x@3gfFF D҅ mcbUȝ;y33Ӻ{wYnabE `j@O $-Ζ ~ VyvV+bIee3gΤPO [o^ȴpFFF"v"{{k5ٳo+UW7! BB\.=_S ;H$ٹfd䃀;'(+&wAQ4Zm ϯO-E:YZ%%-?3~ለѣ W qn|ƍ+ ("ԧkF=* :V s yիG~K1){7t设}I]~]bb…gGrܿ?Sz1zqJ)xkcchnC"H::rޫAA=}Z2nܡP^H|ŝ;yї/УK`0[N,*bH$R,ciɆ$]]c0X.eEG1LOOYwlɩw~,(/f-]z~d׭[G -:K DЯ_]TTcdimﶟKQYpjkEE5<>b1=zߌ:7Tp8 ⒓W>Pp 0oaaCGk\yǫU}HN_(^OOn~޽Wt@ˉ^>pivU.QVEw &GD$bw$"|;o޽rDjݺ˓ubdÆhpcӧ -OQQMBBf\\:+N ѫWUo>,xN^ SV56BݝlI&tU­~WվܬF `Fogg{w "GWME߯M=|R[WМR.&&mkϟFpNzv尰!֍;6bBhu| uuG]S,,nH#GF.\t,W"摑S:wd;*QP@ͭϯ lH&P(f={(n܊lMM@h!՗RRzݻys"#“t:sիG ĕ׹ڪC;xxb>XSqߖ7nA "2ŵMT*=y2uk ]#uҤ z! ޼y?\]FOO$8pw91I'$dŢ:>{{{A1̞K&Ą.?gh Ʒ8l(g|I;*Kәs )Ski<8GK_kΆGG=X, ={9/v-;**իJkk]&OvfޫW7n䤤TT4 "\FP8B>_`bNGfCq%@ ^,^?z}S-};yI(%I|}ji\0[V)h){f6,\=Pc9"I6lr𯮭 Mpzx傮)(!!sٲwڂ&nǎ'O>z揌#KJjT:J7HR"QBeE3݉ϋ7o) (ϟ{xg7ГΖ'O?D"=t=#"ĮJZVVٳR e//&x<.=ݺm;A HTvq4mq8P{|s5^=r7M/yzbҁrjĈz {iӹ[< ={F5ӧ33G{JQP@:>}:Zpb+/fMqXKvUBBH@W mXK}bp8gOP==zmK ĉGǎÇΘ1HYddnnE\\+bCXؐ޽M;1r.Wpn~BBfNNESGvbPJ!XB `14ŪRĕ|*6QŎ +W^ۢG$pդXϯ>|֭!!_TSМRn7ofde ?Jݳgb@@O1I)FEEXCCERS+pwm}xc1cn0e`zPw|XZؼB&H:]9Rhp Q7A:((11?23gdCIG.'bҤ}GGϔM7>}Z2wn2]@eeۯuu!6^^v#FlFNb˗}|&Iguu__/ڻcoDB:"#{<=mkҁr*>>c͚;/(-0< |.ı[s!Cl@@kwSE46CC߾GE8P}oqzβe ǏO{v2|~77k 2Xbebq㜺4Z)'D"Il,}yK ?66{8ܹf i0KLn]n8N'H ׯ}[%hTY(Ihѣ~K8x% U766|_mdɰK}G͞}`DpդXB!JU|lI:sÇ+Z<;;[IIhڊRZZ7hжWZZ7mZ`"QH)(S: A16lB"XY# |ݻo85[f\{s"nP첺 d)6666F?e4DqaTTʽ{I$ɓRE:bӧúUG(Ә"-*پ}I!ꦛ7sӋ0#Q독P(NO/p!ºXY E (YX膆<;~(C%%k^yFiyӌ@G_sl>nÆ(V%w;vӎUU㾴ڥK}BCݻX@7 :J `cbf"<ߺjHt9sb {L[W_z"JI M$*g9pv HH!"N@nľ}"ЅRƍ'O1K[vPܻVCjR8h4_~ _ ==w[[_鞨NףG333)Sx‹Ñbq+*?.7 F" "TU$.B"隘hw(w ھly# k\|Ç+>m!J޼~weeuTUovv&FFD2"w{B։:|8ELgMGN1O7ݔHs'غ5tO0 __oh6#G-uڐHӧ߿`D6f8FWWͭGx XBn~s⚀~ zYZ!جZ~tp׼ykjX/t ?>-^֬v\}m2ێtK-]z>'ghp.TsͿbߢEHt @ysɓ)!!yP89m={Ȝ9H|ţGAAGtu97PbŅKpώ ]Sd3g, fn^2**JVƏ't\ +VqannT*%tDBS—H>dP(UU6lH761~"d+W:s?yR4~'Oր 3$ -Mt,VZ50HWכdz85NP)/o`29P(- njqֳ57]8~&y.#ѣpqSFv _RRSP@ͭRyyUl lH&P(f={_ӐW0F9 qĉ |MY ݼ -,tOnfݝ!55q տ1}uu:CCph}}kQPV ?bɕ+[Q0rd -bcǦݩ{7oƌOgjt,ɓ3**'uW?(GӜ¸۷_)+Fr5k0l?g/RRԼJ eooҿuu\a!#/^$P(SbDe]]5 ]KK=++=I\Xbraa22O 2p:Ǯ]^}n{7o rh胚*_m 䔕՗՗6**$)A*$'QSw7/+ݩw80yXЙVyneB2 EE DNԃSS(S{{UU.;XT*|ca}/..uqrW:y2@ݻys2ȑvϊJjh`81}HȅvUHe`Q>mܘi͛vo]l~ǏO˲\ynccxwkj/^<}IeeA=CB\}}{wCH]]Dž))Դ4jEE*~Z IDAT$v]]KVɓj&RW'h@ 2(jbebmbndnlY@XܩST3a?,1[[3@Dq57soZgSukI>fHӼU^^ !ᔌ4uH$8/Dұms(-?ΨN bfh}[ dgegóp ŔL6$ )b0qqN=fCB\_FFqۛ RVle ׯ,[pWU݆&%}#prw9FgB,<N;{iZZa]]H$d Bjjxkk}''[O''ir"5k׭K-~-yyUÆy/ȏen^t reO]Xť7r̉-* 8qq_}jđ/^MzR766L[[p.f-ON߱c|P6_YZ.?uja O"#tA_6- S:}zV?2T~~ծ]Zzڭܺ:aԩn>5JMK+lld訹Y쌪23iYYJDnmmAP}=`qP(F*Db::D]]u]]55mmU}}:{~F@47$7 |!Xڌۖrr98h}}K|\[[#4\v;}ƍsB:>Mlt,5f tff)ee%%5--|X>ss/?%wGٻwurr*LVq"JV9* TJ$*VW7X̒'Se7CCi"7sUw.C:ի#NNm4_dɹsv 8LMnْ_5bDիGH:&o~Vh`@ 7cƠn$_WRSRbW/SggKKwwE,IO/jTRBٙϺY ʆƊ TQ**xF! El45q?]NW44?l𠆆:vt3o Pf\@ jAH$ii~6-;Ll)sO8%%ͪ8)nJU) ݦ %EȨp**OfUU_iX4`Bo^#G.Ky>BNgP(UUT*[Wx  !82VI F{ h4 SRBÉ7*0|JIٱ9ii;rPh+W^II?J0?,udrZ' b`@40 ʲS:EǏO Z?q]>pֵJ$Pt*}JYY=A*dbfccofx{N4?BˋS?T$;̛:ʕ7jk"{M|,8m8t~nfJ[X3NWtut8@Wϯ6- *BD P,6iwPfFh'mY /bh {S^X,FU7UU'nX_Uc~/ʦL9akk3MǙZH> tKRbO =gpb 'DBMWvaWXpJt<K$De<_v<^i+={]믦W#VT4ܺD~Ao޼ݻuk@H+ұ?vRe8Ff)$E,DD܍Ho$HW0jAuuٳs$k[A2 ",ci'KMP _WaaVg%R I$ɓL PDcm`@kxxgZZNM4vl_DD-))I"xyqvBzZZӧ%oV{pvm .ni۳AϞffn`=Jc3ǣGn0yP)4j` z|ΜXXr4'' y/(訡AHtwW.pqB: #.99Ht:9cɲSfOǯ WQ$ii99 ]^֑S0℄̽{oOpDwťR-- @j9ZmmsFFqj*7M}Iɽ{2ܬ,ڳg%99rl^MnT]hXN ^VB/'J()O$*P%4=~348@ oC-׎Cd`--|X,n'kXֹ(,V?n0ǿO" p_듿uCuu HA 6N`P$xlY HkoXIB{=gN;رiW${lO@ Y,@ bl6|X,B" FsV<^ISSn?F  MMx_П PDiSb||ƣGڨkljh47X6bUWW\ .=xZYw⒒Z85J4CڧP(6666F-&-0$n Wmm N=~if 򲓇F̙Cm-Ϟ=AA<%K6lHN]dؒ%>rH$Ҽ˗֙jF$qEF 2^({wUUM, X`()iikYZejekbedn?VW7yz'TDJ  DF:@b eݒ%†  Rɓ7_`fv한EHto2_QbdժK=ݳgĉ.Ht.Wo p6__II@܉K߸1pҁ@ϟFꪟ>=DSp11}OI 3oaaCp/M$$d=||z#yk>5J}ݝ/uA<^SZ2=Z?uPQXeE[ve][7i%KG`>gh^,^?fL߽{'Y,^ffԩQOik|6U>_dla<x4 iu+K (C+&&2cMc䰞kg9qQDDr^,]inXfc#g29mF` y,jjMMeMM*! k/;iӘ3A@~Q~~b$<;F"l jciT*]•+ϟb))gL}}$ 8q%))Jkkj}D"IUUcyy}eeCQQMA!EpUMM*. ݛ].#ر̴CC'NtW?bΜX67@q399ƛ99s GgG oQ&7n̝{իrG!>|k֌D: 76_`::nzuA f͊`ǎMC:ZZgRR ;o'\]qܹ={0wsX2lXYU&#(yA9:ɃrD"IqqMnnEV-3VXȐJD+ggK ŴOY/[++g0vee,IW24'jaf-oݏ@>|۶WD:5f37_%oinXܖ>eL&>44pmmYJTmmUmm5]]55ж[^߷o ȕ;o9XC;&T*+b A8TLM%eO]?kHg2IID~ujTzA=7!HVVdbfcchgg}jŽ{̉uw';6שQZZwlF||FK ׷7]ƒoBBG:%sNM-re;LzB$ƆuPVV2+e'+m⪪za!I$OGoiKM 7/`Э{OX,>?H$i tY'm٘ Z]A rF=qŋϤRرN3f jWebw-^s\Q%_I[oB MmN^nW_KL̎I{.7nqky0%ZPY٨Nps>{ϞұȋfV PF6;,meaAX:؍c%nhl1&yMUSM1TbZ#4FgA> cYXkava9"023QILr0rwNgat9SСbܹCCT*_v 1ۦ&C/ib0XZ^.ߺuA]iQ_tN'6bDj'zs7nhnPIzTYFӦ%G,Xl'd2J%8 `,8#w?y#[`AӋN'b*H"T"ϞK?dڴi =?d᧟N v ]=c>ҙ!%Kl92mÆ\Tδ֫he=;xpBbOL|cg| ر&/?f{sn\S_tPȺwmסC$~ʔ~O>9X,nO=Р+NUϧ3;[&0ZmyBmqqSqqkRӳbve;fd2J*FҤTd2Z& "NB!K(d HG Y<ǣ@~8|dPh}Hw8&hL6 @dk2M&Fc~a2)8&,Vplt7~/w^ C!:zgQQ~XD&wndpKzm ɤE ψ`JЫtz>MZzA vDf-rᗃH0)ōJ StR\\8dfҢ:ߟz/~uiEܝU-X0l̘^V|3;hAI$\^yPu{wGxdÇKvr=:4qܸ1c2[~t9|>VkJ%RR^4qr= H -&B!h$&bQ8*K "3d&dm;NjE[.AnDY,9Yb21fsf,knv a1,K#<gl I,C5? * @QD @  2g21d0swO /BqH~@ ]ysՇKK?VrR٢EycaÒο3|'>t`iO֮cϞ.,v ]#VWƹs7ܻw֭aZZb4RS޳lqbJeNk}ST$Yh[Ϟ[ovڽjyH:R"t:˞=k C}4S^_YHRX(9wKOeg J5hJK uRhWEZLfTL Q0T\nPPFb1<ϧ$шM) M `vW7A ] ?_yS]9qr֬JJVjE[qzEj*Ih4f Z% h!p<-"ҀS\DC ` LV}'<…[ϟݻwɝ5B Cebʔ iiQ۷/D.(R: t)@$={hujɒ  }:ȭi?ڸqf;Er M).n,+l.,#LXLTq8ܯ.ָ%KJ Fujv:Mg޼dalR]{("nPI|d~ժ|sI[/?pɓLذaIe=HF9].`5rFUWɌzU5Lv{|cXXXXl^ H:2OT -4BtJPd2ŢP(2@ LhR~C"@I}8QQHvT[$bV(;yV>w!CW tGvDS-yZi~?rgH= $>p1 59ss3\䮱]7~-Y6tyT8j%4)pwӛgG"3J0aaȭ&xl'}oMK˫ k].ٜNEv EF 2dPgppzx8˥tU>ko7/~ZtjjÆ}/.رt{^|}n0UNSOm&|d'gޘpA11v\/J$ōd2_Æ[rW4\PRp RޱzӫWtNíR*d[B'qL33X,@ TFu!rwL'T]ڱcQ߾Xx^KV;ND@Jj4f0Z@D0Z,x<6<B! 4EE(dݡR9q:=O>}II݋33!;S~)[%+Ngˍ fd2LfP*MGHĉD9P$DGsD"@ ù+~MNذav`G oce6 O&3H$&D)~?ANJHJ Q'Ȓ ݸ'Fv8 {HI~٢"I||̙gzVĨQkҢ>|fVn\Olp.Y[o)رfJXX99i'K- :Z`-Vj^oEQlw8N'`ފ0  }-H[A2@&dX,J$`cBtzKN0 uVΪV@xј5s"$3QQ,Ůn~رb @ +M+}bq.]o]]7x aog֡NJzgN7رta._n5~zlTWM:6cB´֫ ]ъ=ٽo\Sqg1lm|~ݺYԢh۰?y1T}(!Css9MT*ر"hh%dgGHi˯\iz5im ^{ʊ+Ţt (n4ȍZ*h`^.7*86,LHVʁ@ H'A6?ķ&}={NDZdű}`ҕp:=Jd@5}u>ݤ~W,Zܹ~X}4lӧӷowͅG 2865r\n <-2-2E"Nd$+NiwخVky'NTxJJ"'L&ѣeǎ;Vry?ׄ aӢ%nXըLf *YFzXp\w{BX3`!w'vsT_Rd Cp8͕ 7)vfsNe:l65`tIa)xlv E`nڜm9  ؆@R8I 8h.&`0!Ap8L!N' WJvWzzTvxĖw@2 ,ޱZOOrJb8^_@c8^r<@[i:yIEHg0 _ X䛉B:nhd2CcIe2Cáha:pE0)F2 JeF{Gl,ccyqq=xQQΙ@ N«HT`rHm,_}5k`ضG(؁@ڙLM䓩kSZ*>F=u]w]ÇKvW߾=Ə5n\VDDgTufn@Q;ڕJ([ +M&X>Na ptiVԽ4ޔE4-7B# | p,ap8l},6 onKKXB xL󎅅XL@F `d17?w>Hl~Kkaaa_nՓHV7S2O7A :&ry)ݵ\Q˥ḾݪMKL&v8(jZ]bi>m6hGQd3`&W8*C˥ 02_Hg44@d MMX LFx*WJǎ|ݺY"Q__ӂWɆ KH'& ] @ ז,QZ;{^|}YY|3s֝=EEӿ)-ÁC!?v׃HL6cƷ ;ѽV3u<m0&$iCһ1'/6mz*؁g~1c27{J{vrرY˖Mcuu;ybq;].J$%%Mvat!6@QGeź _f,ӳ'hWk'`T*FcV*QU7MZEi4Q `r4.*0\: *Py<:π 1*+3g~_҂Nv{^'OcL@Vt 1Z*dHf,`&..ZۻxBI^ނ!CdYˍslRL[/.tRL&- Qxld$ /)Ma+poN߲hܸO?KBts^Сra0Xd劊 yY,`()Q))<^Wz|8v7\e&L?3N߯~Ɋ yfftn)Su~v^x!'ر Ngu.o:wƜ9 BX;"jurrR'Owޱ\Vju V[ZdZ&nnw9`|q{;ۀ`D\X A2D~`0x< Xv{f2F 8lx.`$2,G+?ry<x<ހw.p8\{ >*Ndx H$Hēx"GDoJޱ]v{u:JըFcVP΢Z4Y k`c"pǣR< ]:~ @ -r!7wcjj֭iE|ĈO_" v,+RN*K&Th`.Épbbqqqq< }ᅝL(tVsg+~هՎ*Dɤ 0 DGsnSrTV*}6_&I;H9tx¼7:ysSRoeC$QogC0~uʔ~71 k?\;ªÇKt:X1~|ĉ}:EVdZ]6^o3ju ].Lp@||>\^p)X,\"OX, G g0d` ,B N'B!XD$[YWV jPfCd#QԎ4' .fsVW^i¢X,2n|t:u L V0$ &LLXO Iײ[q8& T0m&]BU*d7mj5*PbyMB5Kv{4VS_i@NjŅ NhSU1b֭srd{بHTR"QVU) nF(==*#C.9vt"ƍ"==㏧;vFhQZ[7S㗮Y3}ʔ~ҞLw6o#%qC=u|>cŝ?r$+?,bW9Ӝ_4(A7ygBn`Ι Eyy󳲢\s'z IDAT͛D½ژ3EOqqc~ٟƏhmР+((+((prL_ _p…RPiiQXJ9 *߲GU< L&E `0db&X#0##95t ʞ~zۃ&}.yv^US 1uNv)Kc,AH$|\G/w7}vG`47o.Q_}%ZJeˍ I0d&sx8=2%ؑ(P|>ۊy:ghXn#t L@m[@Z,%UUkp(Xq_+"dWǶn=3>hC%;v9SiSc11A3g> fw|:؁'NTΞqժs fUU3dڵ8!^_߿Zm•{ rX,NE(j7fEEOv֖X, Iш,L NbèTzrA&3jTB7шt: XcNz6W% F#R$vLkL2Fy1pW<m„ޓ&;fnwl.nvX8^~.<`Y, a)l* f(4p&:E6Mj5T Zj4@Ax8< ɊD(6좘LjDjS|z|$vNe:BjuZ,`2Nvkd2! _a(,ͦ0<܀מoh_~\S 4}]ߦh V[ 8Lf7kZ\PriL ވ`reߊjrQBJ ULMM݅ 0cb8 u,,(kjF-(j3  !!A#]N))i3oyr^F)0k}>?OӧG߾}ʊ*C+3gx`8>ؿeKѼy˗O9tμҮ&޽;СA7u&w>i&MZ(ؾ}a(tsЫq@R `N%N'mؐ۷o`D|}.]fo2b1"O䳀T۱ΝNSOe?;1R~a{v _صkh>krK}llO5AthΨQP\zU1ުY #(F 3p:w}(jW*M^/25xp K #bfZ,@d0،Fd]T"GhNPHaG{ƟoWU*O3vlVD^>Npǣ3IB}Ԥol76e2ilԃSE$DG7XD", ժ*%NVIILłARRDB_$b;Qp'ox|}=LvJåKuWHU*IIׯG>}a`>#-XZ…y2~cf;vcŊ_/];x`ig|сhIc~l6a2d%dPL!3SmۂEVWYx۸qn0⁴͏?^\]֕3&gv@A"449w]E1jj2 ;h.̮R;VVX(9wKOeg ?@/VLX7Ԩ|kX,$88΢RZY ebŢo\.˥r8:T' qA ]z/,XlÃKYIF6T2FU]VJzA )_'%EpaQ;ҥyp8-[LJ;o**ڵ9s#iu:=J) DQ*Q`;Vz7ɤܔ0bc|>XPDlXx`:/u׮s}w"B̙._)$aRRШddB֯;}:/tAAYDsΜ!f pB!q9RH!O<Æ}-^jri ȑkƍ䓩߲0e:g3q9UU˕ZMd$k̘QNx[Qj5 U*P(rl6 c0H=zp33cу;ryvWzVk#:E1tVtzoIL&x=Ǝ;6K$ f?c4Zhh')RkJbb81l :TРנA<ɊrccbqX!5^0lJeERQU@HLHL XNvww̙x)Sϝ;+zl˗-㏒&Egg~8.H&"  0 .33Cnp"Yd\l5n c( 1If2) >bQL@ r\ Ͽl۷f;#bcf v WU)%Te}>? OJxu׶/Ji­UU/5 ߽z:z/lC lJ }*"ӜPņ]yc͚G+!5ǎϙ̙GI]Y[RΥrDD `( OQ,tca\S'NLT*S~ټ3(j=:#7wPv8Auj.]0aݑ#/gfvhz}С ~͓=[J)S60{x3jC}{ nwJYҥRLwk p";&ÉLJŅED5TDZBaj́"d,0EEBPHwo4 ry$UeRQQ!T*FALJJ099"%%29Y-O;?3;ѣ?hJp<ō/7={ZfSx jW +|/.9rK\.ʕ7o.j{@>y'+/_={BB˓Ϝ4oc 5 &}]VBKfvج? @:mUV:PT$ dɒ6+/o~WslBQG^b0X?h^Lʕ􉽗OS(;w;c4NX`ȑ]tȼAWT$)((+,r:=ܑ#FJ80%,gyykJ 33:++v"'d CMK(Ia-%.,:=@ vꞟaqBQͽz-߻!C $lUEVTVj3 \.-%%20, wy뭟v:do9q@:(XOLJXw!nW1 U*M IBe2RiR("t:I(dEFH`FEfw+m}p8k7>P5f#tF.3=.S$%Ш#:}Jz[n3gJ MI0ׄ B…͛.pSxꩡP(x=W4`,]'NčI={hױ =ZvbM1 W w/+:Uyh+RAD"6K C BaLXT$ gOHHu:peQ*M=F4d¤P53؆@EFBfT;2%njoD">]}#GJzkZZ$& :l/ϯѠMMFҨP}7dT}>͍bb8XP IR[S]x.Ah4MKxϞvvv~TPTT(4&%E$' ))B!l}u=Vuދgμfw>_^.?{̙ve ILI;@ ^_x{Y*e 55~:F'Lp Wl/-)iZK&Mlل{45vG-*Ņ?3<źBIQL&c0qNNXqk6;**Ju^bvƬ[zVkj-:Ee`F#xt.P9jx8˥EyvC .Ydɓ6=uwiDž '~u 8iNgՕʊ yUnwa0a11 QfftFcۑ3+V2|xτ?Q_}ߏ)1"eŊ m8]0)Z nrw z~i*lyJݓ˗_xaVk~ Т 6ww?tԩVƍfDYZ*3HwO yYz-76;[# sBa5+Xjk5Z :,#Db(jTH$*e+sB)J<݊ӧgfNv7bYT$9}`xA99i#A  4sV]?`Rco9R⋻bb87&닏_OtX.%XGD;ФV3yhΝOw7!P].]:G;ӆ^e>PYA &))os v C_%؎\_wu< ޺=GI-nhT•SXEv8;[<|x=PM&Ю\X\$bgfb'niiPfG`O If(L&-E !Hcr4?a~qgυ7WS /dҦ&܈ HT;#C)edDw[CKyf\V鄜9SlaÒVhҫTh}EͦX.ψ`&ψF Ng͚#~{b05ӡrԚ5G^}mڧhxX,șL6 &i4zpbh;Lr+N'acT'jY.746td3~ I/7jv:c_N{^?젺?x\.K v,ŋu?պu&MWV*&OސcB z"?thqY> ǐ=wѣeeRϧ?h`PZ%(tnDGs 1Qܻll56R=Pt46R=b1@Y,NF&0#5V1]Ju F]}N.7~,#{x~d$+:=LfH *$%hTIIb #CԵ9nDy2CMMLJHB ifhyׯ7:UydՕ+~?)>_9yrիRZ I}_~`igokժvMɍ)S6pJVB;z}}6crW=/N`MK{+JoO~ٷi/a]v\xTw'z ./gdfԷ̆P IDATNL{fdi4z΢RlKx,BDl;. t" |4kBz}fl.m4 b1#:Í㥦FEEEw|7m*<}:6;kf {wY,JWP ~~t;LɦLzР7΅݌-,Yq'*p8lvxܸѣ3{RQ㏒WTرY&/VU@Mfs]0vTiz5 _iliU* ܳgO~L 74:n\nG H$J EFFarcb`θzmU2pj*&"LL,A9^O*Օ++rTz}$^,HI&% SSIIB\x<FRT*N'2|~X4>lv\mNx|(jGIuڝ`xB f]jx8] `tTVkٳmgr!  923d*wQRݠA;1burpwO<݄ >l %xDРr#ALX,HJj!IJj*0|RqSR:n &,6$LMbpoߥ^عs!P ɓ'OV ݫW#d䤅FtQ6nw]fΜMfsyztW>-Yzsύ|cYv>V*s!cdư/-m**JΝҢrrRsrt%++\ID, +}p^QC,dZZ\4sK k$d--U.<C T7cƷxA HsR݄ Ν{3wxV_X,?yOMڿ#^GI?^Ϝ?{p1M6m9CB ENU?^~xNg:xpBKTUү_qzEV΢[z`7XvW-8(e(L)MpN` 5G!D1[>`q66+$ĩի 2z'v޽c;Ov<^b>|f|wN\.nx ك'Oۭ>=w;γpԩ7(;:y~s˾߱uuv_;|pYiq **~_44ҢM?qb;A|zmqqcIIxEQI?;!-I%aFV{ϊjֺW[wEъ q[`KNV$!XgmN}qyyl..хtwtjFIEEF6Amc'66xc{{ÕteSYQ񺪊*&' G"H$-*9h$=@< <իivLN"t7ЃMpeʺN&?.IN.RXv9m?l=(&PB"m:z4jwkyׯ_~{II]##.g=}Z}ի=ʗ;t!//nS'>'=}qHrj;D# x՗X,ŋK.I}8dۧٽ~RR~x=3vPSŬ+WrY,رN (S+Ӟ+ej^^#'MrL&Bç):UQQjfnd nqG⵵uX,^G|8f󻺄參&X? g?@ѢΟDE"mھ}ܹC PRRB/(7754nn־^^#fBEE7\R֍P0m1)oz֭ؐ[' @o׬T]ݲnݸGS@obP"Zkk'gGmss+WrmhQp)gfRh`RH)(dkKPCC{BB+9;GG.JWΙs$.v]0hƉyC1'kmJng~^ǥwtbi{ X-Nbq8-,VՂ^pZ@KW@ċ [>m|y٨QvH ]L&L#JJQ(++C`RP`'KM=z4tYNN&HWۨߘOwF-7O6Dyg R2773"vv5,-i˖]co?XGJzzolRZjSڵH$ّ#ɇ%Oo߬=!9H$2+ <hׯ}mbu~%{=*Y…۷OETV2L92vѣ`rѠ Aw>_wu!H2^_~D(?zKKgzyYCTW\\Dl(GG%-˫KN.{e`0,4. bOe.c:޿dtl3(ΜڜJAF~~VAA6wuEM4n0a~#CP(a089&ECM ` WX]>ⵋYt̙^9ZNή ݝ8vqW*UW ^\L$vvFpy__+CC.D" c,X[װ|/zq8m}7p8m=7hCxO7n͕(ݻg 22_|q|m'kkrskKJ!ru5 &yytQ4\s]Ty(?SU(l6kNS0o.~infuu ۨ cc=<cdVCc $6$޸ [b3|lrP$3O;|Yf>bD[=kdr{rjʌ11ACg`ܹr%R:c`23LI …۷)*>53fzːKwxc{րG ܿ_drD1c#"\}|,. d(ի7o %&Λ?E,xJaaۍhzyYx{[Z#-.)i,*ъmrTpr2 8RZTRBdRmmuG7S2Ab)(+k.+k*+k*+kp(b֓Hd-p4 GT--GXYZYHx_?х¿"]\L7W~qʒ%`goWO K|L'wIEʕo 퍑.yx̡Cs.c~@Y7';sk˙3i;v9{vѸqNHwUF>0q X&/;b88֖y&J֯vNmmII)ۼ9[7nѢ~,K&מ=Q ()KYR\ 5cf"[4/>k\]͔x<>_b5r6y ::ޤY fal6qݽ率tz+,pХS73壷nt-;V%44= Ԍ *BRB &9;߻l//mۦ#]g`8 mjbuwjጌD 1Ç}3E#ˏ{ v^;6lxq2mN"ԴOPL& ,VD':lm vvF'=rΜS?O)8,}a+VΞv+>XQIBBvFrܹX,>Ar 7oB6oȚ4鐳 d?(o33;)"bM'JK++9s|"#p=#J&גu4Z;rp0s3SS={{cc{{cGGcSSkM(O%[;B'P*xWW3773s''DG0܆?VW3b)Axt(yx_~ӆA[,-msg5҅}-\t!CˡC?nH߼ ޝW:Ν ի/߾R"g*JU%Hd2/|BV.ӽ{۽{"ݗ|ѡCɧO?st4ٷoY?=PKKLh?qܚV؝ IDATN;4.<14n ׿\VXHc29(֖ s8|6[L.|Gۻz?C&Nbq8-,V}͈P'N<ٳヒX<Zs2I).ށt!&镙Ul6BBlCCa(.ov;/n-[&!]Rp drL㽙 <K$0DS AūV%̚},?_~I>uꙏO?}aa1銀fKK˛ʚ˛TX,USS%ltp0{%#cGS= ꫰( Wu~266d"үlIt)G,RʕǏwt?EU3,Csgz{͜e6o 5n*m51?9"rʸx1ڵ\H:nStp0o['T\Y[XY|bڶ0🵵-LSS֖`bkKtwʚJJKJʚx<P~LΟCH ۻhaObͼo;;Fi6PASFX[}; i EEtx-nm5 yEG5ZyeRRWG>cGssa˖BUk."6̊o?,+nnD{mv̋ X,<ڡмrP{w^%&&:ztȵRgϦo~W"o/\ wZrE{{㸸H=5mtxqȺuoJT*{"..=3H4T ޭR+LAp݀t!1d29B+yyݝ8v1FHWRRʶmĚ??oc0ZHW4p8|8gdrifvNQ͟q,С?={jѢӧ{<8[v8oy|Ӧ.֭V' iJYYSs3Ç988998X[Ǧ&d7񎪪ʲe/QJBť߹S Y܁~D[]d2>+V"X@ZU?hy_}ر= ܽ[TU40jjF3{޺Ŭ&{{ gRpdr\G&b刀y$把ו[[;!RWG[Y2cZZ\nweBZI ](j{xx J_!8~Koo {MMvM.X<x<܀H403Ӈ/a ),^/, "NpuU;?IO\ĉ.GD6ﯬ)))&9r )Sܔ~7@3甑N5+VzwwsPL))e11q{*Yr{{WBR rd2?{*)i)MtxWiyի/q8 b )SzUUk惊 ΢P*A.'%qVݻwp55-WѸqNKxyY#*.ٳ(OV"ww '9|Je-=ӺrH4pq1pr2gEY,>??{~@Tp8mN[OOtX-==d ntp8-p T7n? q~MԴ\BS ̪rcj7j]xg*X,pšC**Њ,-8X,Ꙏdr{B)MMRDCCN5 ">X̙^ȊrjkڱNRR~D3@ӠAM,ֶ{TFii]\H$hߕxBǎE}ޗBoޜTZ4~ƍ 'BݻO?//ovq19 lHW_u@*o?%!ڶmt;{_ `TYHM-KN.˫ p5nH>Ea!_ܾ]pa1K 4եSsskE" hL 128\Y]R[Z]ͬk$pff&&2nhhfdG>>JdM*UU1ŴbzYYH$ts39\$p ii~ii67[[;AffD|YCCN.kyyudrmnn-ށFL-\\LML@X9=}Zx \YЏ 227n|"KG=xO;vyur_ <Ṡ UWMN^dt-@;|8911/+k+҅ Eb4&&ΝՖ`LrbFD?Hkѻ* @dcI&{Mb>X,ޒ%狋ǎEwV_w}۷ fھ}j޾]YQfx h@hB \\vnakk'Dw w@*vZ2.?^  aoocc|Rf,2<х wV[z%[ʷh8%ЇD"Ɋ={uQ.gY伪ʩS1H}gST~~ZP |@ Nxz\Ua*6~"I^AFk746z_bQ0p@^~qҥWnxkؽ{E7'1abJ++=kjZR!w":9| ɓ PKrkkrwac OW_vRΥK|ꕣ½{_AU-w7'gemCD6{L&ѣhړ+ϯ`""8\AbbީS NXCllHpp.txB2ŋ꒒FTnkKZ+悎T*;jk[i:G{{| FSCC].xB@BMBBl# ;:xmm],P(*fCC{{;O(azXC `x 5577LݻV%eDtu gk<"BKsPKK},ؐ覩$YNNÇK h0y۴iVջTUeee3DƒU-+|Gk::xb}54=8g]~͈p"E.^\ H}3Ot!/))e))e/^TR//I\ E w8…,,VkH_eڼ{&RhNtJ11^tyګ'Os$hS~a a1(H$&ʀ) BcH$Dds'O*?wIO\2)S>x* 0`d2Uqq驩x<&*o`}S ĥu%J$Z fh/Xb;9vOhld=zTW'NF#I,>zTouΦ̚=|˗T2&ʜLI!!$__Kx3`px',+k˫#rsk\aD x-n.XҼyvM}ʕDrkkgP)2ox'@JIIq?mȎ3˗:u*ӓ8`;튊1H/#"("7eQuu[O|Zwxw^̙S8o|ե;w $Y+o\gTI !!{&:4I#\n3F߿omLL$_𢹙h?q' iP+;llSOaa6&_4DÇyxen΅-mm]=an!N :- ~2GG0cfi$ +/NI)񄞞##"&MrCuguu5XAt«kvs3jnf77s;Z[;q4cMLLLpFF8%p"۲%U_!] Id29۷14<8; 銀%m陠RZ$h-f>b=yNx|scHr࣓'Nrl%&LDr\\:d?a H"nΜנP*XVrnח_lHKɽ/8S/'O*RRʞ=@UI' G={Oll S Ԍ *BRB &9;"E4ӨTF}}[WPEPSSH|]P::& h(8u DB$;;]]BX,EqD) boT1-]]M,V bu}}==}aj}$Yiic~~=_a29jj..^^־w;.[6"GTqH$'O/_y՚5;2 ;HbmyJ.=sQӜ9q2B>`p<<~}+14Z)G /]Z)%\t2uu{w^5֭7|A,..}ǎɛh4*0ʕ/JW.[^|bdrskׯϣR>s ><&K"""\gV3LP蹹tzrp0 &XS' `[R:i3֢jc0Z8i+[ڈ9wNk!8H_2 B`D{Knp ##]a29O?OHVUU]0h`aHFw)MMX61DRAL"͝{Ç+ʏ"**^_iQ~;4GP4L&-gT2Ѵ5k7B6?o\U\b}}?LPRxb֍/hԔ)!$颀7M;[)]ͯlњ>w1sH/P(ay6.Wf 7#\ ½ʱ{A >g)4uA8G6lt!0zW:;?w:Cճ̳g9A,vtt1܆vDS8>| 4B1x<'bjN)ބ ?Z&JO=z4짟{͑'Kkk[):ʤR ]3S@"]kb ddl2[^w7L27W6"@obѣ ~0Pq1Sǣull|kk;?2<*4֑#槤ݿ_V)<<nS+{4@ļS56&MrY2tkJeJczzezze~~D"75.4bP/wvv|Y_O&6xB F NqAkH!K):_!k[Z:==GZYyz<=oF6BbArV#G"LqG!D&gfR/_yd0͹s}cb ͛jjZB JV H$@Ҳ˖]N/N~~.{~~WH]yjlg͛B:}:ڀ>Q]2q/sm>ZJvv͌)&Rxͭͭήd@xI Zqm -pޤY!-״wI$@pp-8[hjijx0+oP9sNb.]Z ?Сӧ{"] ܿ_q / 9k8'I2˗s~-xqpp0/s8|x:Jh Kwo'Tu8ʟ &'5E^^ݴiǎ1 ZS~͓bb@)\ի׽&ЅBxp-DOop7HH޾NeIHd۷9w.c͚k)6&%=9z}llHPM aa**^×Q(kǭ];ْI=drz''/=I.ڀ *SR>,W'2ɓChV;"R /ήNO>}ZQSӢL=~h{apKyy99995::^^#݉:Oڼ:2Je(oo  stvv@vE0ܘ&==G"]uZ /ف6!c8H 5 큁eѤR|scCCڵW~yNyrٌ;Y? |҅ UUR3왉t!\fuݽ[W$ R\ Ww._#-z{w^9,`dg→ HWXRٮ]_ IDATΜI[bM2%wb̙>rv6/HuJU?=66dk@ɽr%圦&v@ՂA&(>6O&fg֖4dr;;@ ??+ F @ɽ N@z"ZtpB& nj HB+IIRǎu5[q6hJ䲳gӳmm Ԝ Ha29=єfX,ojB`@wLJln6(~1jݾ}LMhha29J#B3*4Z\.bI$<̚pa1xWh{jjZ!RUU?̙9pE\. ho߬Ç%/Dw8#z^ѣG%|sر&ɵ'N5j'ۃfKг^!$$dox=2r9ں5bٲQH~ur_!] ƻ*MM,oAتU)@T&Nt9yr>(ļm~u_znҦKGm0aOXA~=h?a?޳Ua&&ʳE&?{VRfkKزerXEOXPQݟ}fmpP({K*-8(sUVVq֧O(kitsU~~VH ޻WH.-m2:},ossz/Ѩ)ScbM  % g@JԔnX[Rh1N @ 󓵵!8ryRRwhԖ-A Kkk[t B//o񄪪(SS=OPqq11HWڿf:aa1F׷q!bPAW..fO ,4Z֖pj--5 xXPuXӧOn[P(IOw(9&Ӧyy;69֭SSŋC @ĩP(!ku hfLl=$8ckkhk*,+!ɉDoo >53G;uvȌBIH޺FHhPjk[3^͕Hn˗ m{ҷ\>kg|-LFURҸlOxDtP/ rD"ӧc&MrEsٳW)). Hd11=^k 4Rl_LÇk.\JWDtQq% omUU(-m38k/JK.<"R̙ZZ8v, R,5ts}Tomv{pW T??w(*ϞbeeUgeUxQM2TmBBH#ŷoa" o-jjo>\b'%l'> D]]k`NN&H~zl6?0&&&p8'd?RYK #%4/hiA@ onjod5636ƙ㌌pz  J/'fGD yƤ &ytWV2z&ԴHa4,- {&8;۾223bc㭭 Ϟ]qh uʕ܄nQDۗ_݃!&9y=Wp{gg1ymJe/_߻W|nakk'\swرԑ#GD @"nק7n[~xjQ .al/J Aݻ, sL&gܸ,"] AW妦Nsf\ҙUEuf&]GG# l? \oim(RӍ|s%*`TT ;}6v%K<)r%ɓr##܂~zzoǹ/jlhld57XMM,:drb)Ah4@ij1VuuTh}doh?.FFJKZ~x>IR23t-DT{{}f}H"ԴP *A4ZZ:!1$g ~(vu mm7_;f۳jHa@ή5C*YYmܻwwBjNDғ' ׇ`{X,ݼ9IqZds2vkuh$EPrn˛]\̢g̬??P*hj\¿oGPvv  X Ԍ jz:Zx~`bp8.Wf{.7x+ܢhpZ̛@ ha0X6h￿|['W⊊h'Zy_ ˁw}}ۅ /\$3fx}Uاp8v&driv& @Xss"X"DgG/))&"`L3+o(̙o^JJJٖ-7֍[(]ggwEE3ʬdP(n14tq1%HwwÐT6SF:e\nh]@|U~gqce[[׵k.hnfDGO袠L&DPy}n+64vB_>}Z1oo[?p}۶׮>}%D&ݻW  <1"ۢwdrUUѹs,`3g_~9jѢ`QYHM-KN.{^]m8y++}3'&#VIwhi{y !LQ קS32***&>>F)̖ܚ jJJ>|up0ih{JA-ڰ!bɓOo.02-YYTB|VX c ׁWړFZX\)h)k1g)##KK{JeEEʴLlbjez[gg78_蹞r<8Z2-o_]Oxg[N^bt~CQnni %ugmmɱc ٹ#]Ǫ[BB~`t-ChT(j߾`$'ָuk213&&p  ȫ@D&.Yr~a-V~zw9u{9s}&;>m:wϞdfeeUUG oٳȽ]NNrԱfi:P$jCO fۻ_.{ӧ%_ԠB'k똛 ZMNaacx%ǟ?4>9֭3߰a6#`ІXAQ;v~r dI BZZOluzu./uL:Za`;i0.r6MlxeX_eG~~\*k/q5/V{۱#LYwo{˗_лio3VU5-Y5bhJF))Q^$|[׮.i+000KW@f:45څBϗ #,"",--EZZtH ,|=a` s>!ɴa"X/$H**~'DBvvs`)RRT5\^I.NML$H99 Թ) Fxth,C^s獪gol vXN)(YR˗n0JSSXQ10PXB ĉ Zp%J)_/_~[$*'gB KtyVVƨ~g[ݻWD ijװ0@}=>::;>ŨQOY-(pJRcacc?wu\DǏO<~%/B*:ff:W[ϟ|]NNBJBGFFΣOWߞ=+.yH3ll lʵH䘘LGy!!-3` P^g֬n{Ա't~!$"IKN:qb%W+=el<45^2B`Lܼ>$N[[<o`+a039f0W7ԩc&WAU]]ۯߺ8OW[wB^.nf' NX!x6ENI&%yKHLD{{%ggWW7J̞kmoie6?{VB0B=I$@i5f߂c0BGK _< `P]t㄄d2a9xKSSIWYK jaQJJңGKJSfihïP($[L/x?>vf~xb^+G~nS* #Ĵ!ccqFQ8ruuӵk*\ǟ+Vim@PȰECWa{L8qʕSZw7ᘬDrp00_zX P(&&\`xNmm˱cތ3Ʉ׊XQYAܹCmۻss33آj9s ynP )>U=}Z] Ξgegl*H R\\]}PD"Lcmoc?vh^6߾^-,JKKqqOee%l]b l |}ݺK Hׯٟj8A=@ P($HԔ;V$Mx>]-$LMX[gk!0;{6@@y!!EIdʼy%%E_浖 ScG:5) Lqӽ{SM"#e;44nϳgݭx!!NPA{f.<:ڵ| TT4`EXled2L}1cx- FikPXXuʺ5 C.Bg'饱~b.T Fo9(++9KKR]}B``ϟ11O\yaj]]5JBYYFIIZYYFUu$$mϟؑc-|qG,#>c4 IDATSFE0!MyKˈ^=Z d2aai☽{8:"~A[H,y6zdyB!ϜYt31svv x#D"1}# Qϟ 3ؾ7vuYVV@Jz޼{,9|`xH[[~v>ݏffAA}'46=zݏoLM{'_?巶.MM9KKKKݙ3o ŋR,('Kuu̙Zfi XgJ=+TWWS57׶5Axnpw45G<wY੩i>~<3)رmwHvh9D;Vٳ]lP(KyH$ cƌ^t|q㆝࡫k.G77xFа8lgk!0=)+ W$I&D uؒ[|*6c\c^k0Wqw??bS&e(TVV^xi߾}ҢP(=2b033(] z;wDiiq'aTIII+V?3//^^ڱ8&W|ٸ񊪪ŋkye)H޵Ƶko_EN~]@  Lajv()]8J__)!k8"udggd|); Tx- F0:\]c]y<:p_utu{yHJbDD04B_IJJJbDDx?떖aC_y-fЩl%%F",* !MMfQVVRQVQQaqL=qڴq'O+Ǐٳ#JJjYh7x%ٽֽ{/_M\ 7b׮_x{޲v_߿[JJ~Z EP7L*(@>*FF**qKhh !ag.sV-Wd ڟZ~M&DrfPXQz:;6go4&ؿHH#,즦?### RRR\\\x)ٓw]]݅ n߾]H/c ,#./op> &qV?fȑq2[:QQedĹ# ˫

    h^+07'zUi <lpH$?5)C_ԩSϧ'Oϟ?G=tP4jrKMMM՗/_W]]RQQ_Ǐӧ@eee{O@ys7cǪ5UQQE1֠|;j:Fa0(QQ!qqaqqZLLH\-..,**$)8Qq#C"ȉ' l [ٱ9C3f@iivB92//:FCS$ɓҌW{ZfeQ('O:t'O 3f̧OGBm]dhm20:yrf Ɏ'h۷F^`U1dicOA HAaY͙3`l_z%+wKKZ5- aȡ֕]|~AvvqkkܹƎdy-mPhll"dfp66s-x|99ſ~5)nncegm'`^vM?zN9s ^&FEe:U<~|"o|遁soOv/**ⵊRWidef  FM4a$194+W((8vlyߒ YP:'nv\bUWyl=^ˁaX3gذaA_kk[)e(+2}5jy rrr Ç׏xG2@.!ƨwnޜ|\9zH䖖ps5Lqf(JqqYqqٔ)y<3~Տ.]򬊊̎s9.?A'aaB+))Qkky[Y鱿8 =M˖!7nT F!/ϖ[,L; Nlllyim:{d",HJbFHH`qQ))Q8t U BO<}UFFs4`~y︢v"B)D.Dn`q&&j~~I+W=p`Uu$f [R|G8eq ˗_U%%_VuvQr*^^ ff겲V TV647_*.YY!jBo !%$D$$DxF@ 3:k ۻ(\qhř%%%ڠ73;uj@YY{eXVaQ@U퓓{䝢mggghhxu $gHH?yu*BBcǖ;8{e)yC!;N_yw DCPq4B"$EDQjFA$8e+66VVz))m<=g+"NN&NN&ħOK/ K71Qstl˼bHq>kXgJ➊gв5WPV$PQY [L"17;V(+˸MwsIx4+sb Qsϝklj6Dw|$0FmmK@`-'IKۜ{Լm֬o3jc1jj2/]-//%!jW{ߢ&Y Up)) sI YP ,IӀ;F-Krr7;rTyy+hHvHKK铌̵kBCC ®]._LP8PQQy圜/vtt888:u ڜ>pzzzPPPII޽{W^M$Oϟ?⢢۹Q?O:P[[p7jrj hjPzz޽#Flٲ%00@_ML{{۷ܹCBBp8ܒ%K"##i0"qq۷_ϯ _s$ii1/K8\ɓ+y!%QRRQa 3f;qb'-91~۷;TT4<|)#뒨(Zq TT4,_~FDDM6=@H$bE OQ\kjZQ\=Q\0a!(f .-Qe,!$$H'Ob˜=[wz˙3L4Ξ͑ݔa`8-P.ba܊7o0H@(@"Q9gٳnoO))۝1B^ Bljj;x *rrkͩ}~QQ訨*CCXYYLMoaQghF qqqG珟rHHHcc͛{,,,llltuutYĆ "##!ڱS9NRZS&$$\r6x@@@BB%u:ի3gr:kvB«磯u뜃ZZhko!8N` >~$ldggCǿ d4ZFFrHOxlNXXŋ'jhFNBg PQ第SUmm !.-\]utt?^= `kk`k?iַ?xpׯw槦EGgJ̞dbiW,ÇݼkcUՑV{L,,tywo͛\bb2[(9U*d&[Q1(QaxheeV@[֭{wP*(H$sS ;8;;߼y7""7--M\\p?~#$$dڵ'Oܼy޽{bݺuGaj...'O?׬YhѢ3g0LLׯXHmxWZ%":zS/^ݻ?vuu]v}5+<,xb///YYƛ3… gX2>@Xkk+wBIX99I[[uk\ذ!Yb.4>41rX]]ˢ-+ݻ}| ssG5 kgG$&zȈZѧ.tu[Z:**ZZ:Zq=2uq`1#D!~/l.;F O|.VSzUIKͥM9q&gMMs.6/wӞ6+[R]#!{--[OZTDg:>d{7n5xq='RII-RTT]T @" !%tcH.]zqѣG%0CSs٩S幹΄ZNNtâRׯ[nҥ׮][~֭[1 C:mY %)) Yxq?UZZZeeejfEzEMeeeݱcGmmI&&&>C1}23͵^Sskb6mb[_t *_r6l|ʫ{ #Ǟ=!ǕK^DF>W,$xC uu5kfY3q#GΙc8ëmm lm IoFE=RV=[`ytFGGAGڬ"wb66bb|D|eD}))ŋk1">BJ +pt>(*J:jʩw"Wo?;\ 4L ?^.P\,sl#͵mloƊ+߿ZRRVe?/\ ++smlEEq;߾ܶm_iRS7%' K= ,0(ArPhM$ ӣcc3\ RDZZk޽X,z\Q1ۜ.1K%##sĉP33;w:880LJ dddzȣ7Ktܸq5kּzuh& F%%%Wkk+uc3ՄRRR xM0ztuukjjhb"\@OO㝝O>xDȠ2yWׯXq/رH<8zt<=/ܽ65Ǖ 痴}ukk ll e000|ibb1a^v@=>qqBߢ@[-Q\:;Pږ/_j E0sIP($Dii7o*nѴDa`GX5a:dz6mlbիϭ]{ŵ% L^^'Ndnd=b<آݻo54XmdF-To~))$mmy!]G[{mÆ7Zݻ׊`߿ndll:fjf{ZY%%%=>&Fe%%%QFQsNNNJiiرcՎ͊ 2VZZZAA!???C &@"*VQYRR7--y#G2pR00ÈSfdlq}xx[֬5&. NO|MK?r=w&Odd2j5rj\ʆ",jm1CrEECFFÇmKھYڎ&FRRย)ccК]|ǿN@fi/Y2ވꦈ7n5K;:z?b)FIHK?teh81 ̀PVA ǫZ 'p|#""~ѣg 9oa:Bϟ?O>mccwQrrr Z84ŢT^^M ߻w/((a2}5'':322iD!!jvjAǹs( v¬vѱtׯ;99uuu]x:H_͑#GG~d QZZ mVRRbgvmáC7o"0 IDATż5{MHxb*?iorYY WiӚ22 o۰Ჸ8xB3p@000Xl%'W y=7z0a FxnWX8۷,N#漸)#0Lqٲ=`7Ne]b[^kՅ~JJC,Dj*);ʺ:<@^^XXU[[>$?rÆ.."mm]37+++q EEEs`hfa{K5Czvv6,|ر :o>O r̙y1+ ]jվ}fϞBchkkزe ' ֖/-e5VX-[00 2ь}RSS?kkkŭ'vw?NPJ,_>ҥEEa{jh;pʔή|#G/[6ҥYJPnjh-0粲3SS7{;fM/8۷߹ @ ǿ6-,.YHsNYL<&+遁)Wm"!g^^PJJ xjj*.,,PWU)) @b`iv(ƣ}2O떐@hiiX@|-1ئϟ(z͚Y x<7 H"Uw!##s̙755$%%MMMƏAjΝs̱9sÇ0L||;;`F%%%(QFQ=4444fΜ |HII5440\jƊ+V>z -׋s΂ X4M_SQlڴÇ7oެKMM ` z bbbo߾]|+>|8Z ^„ y8pZ>ݽ}쁂7Yttt''ᵐ!BIIy7kWNkQL:޾~͛--#ƌ>{vDPw~λsgSIɡǏwĸ!<㼌3BB؇edx+<^;tah}}}G3Lmmm\K5QBіdmm=zhj33c&''y銊***W1b"0[))܉'XŊ ƍ.+〫cG;~aAOf;HLM;G6B$%%>ϯy%_ /_x"333knnfV;'N|]DDDnnΝ;mmmI$}*>tBs))\""B11^ K25ݳys"[ćATmootԪ۷63ӈy}J#k9h0q|~?YzzkkWjj '(L8q"spf?|%7Ks:;;srr >>˖-=occf~N*{nap7fܹǏ+))q<[=P @?8P(3fزeKuc}n k9 mt7ةS+*nUTܪݷ_K DLM\쌉IhuuÇ[Z`朵P~?\1{,zhܴ4p>Xl.J ><7N?", k3eh9dyHHةYZ[[544bcc{9 ú 2ceԶ}uee%KNJ`PSVݻoySF& x@ =y% hV+G3|ᵮAnntt7mJ$`o72]nB?--ӯvvʾ^^~T00 s%%_uu8^ˁ$S/gWWBٰaÄ D' .&[NN*`8LQQֲ%Ǘ |j5G,ZB֦]'\tk9x??[6l;BBHI07\遄Hlǎs ݁fv Clnll`ƌsԩS p`=RSSt54HLL9r$K"B9{ݻw5NCO墇.ƪ߿q@k^D 0F8p޽ y(\r,-11EEҶX1Ț4eee(Xk״dӧ$%%Me1{.C%jjjrrrnnnm-=<\4}VB«ٳ#+߿ `edġ+o߆Qgbt+?88Q3<|Q^ޫWkjݛjbiSbbeKeeĸkhpqq\HN^+*\^9f2TzFK.]p/^t钰0t;8: eW# ivz]z[MP'3D}keK؃ש7n,Y-rPPo)z4lNa_=|{x˫-9=cfK^3 CP.ecs eȞ=w?+<"""gϞjmmu>;88dggS,Y hhhUVVȨbƍc:Q k^++}:; iiynn**tuw$(A&olKJzk-0Eŭ--|3;|˿yBČ=֭[~w ~cF׬YSUUP(.\r B9r䈁AAAAaa)SWZemm]VVVPP`hhg .J}#"""/^\YYYPP`ffȰ=RQP(*++9r:NaXjw]vn֝#y&ϟ?s)))yq U mK7nGQB*\xuiwR3WXΟ?Xt)n aZW6EWY 09-8 8 BqsuqHL{{Y6-,--bp7obc$;;WTܪgaqhӦ'oޔqr7z *ꑊ6,+(9ٴpE]âEb\bhi*0NO~.吗Wz9EŭzltP;;AIw[]]^ˁloarFAh3cC|_Ç Eŭ<_Y**(*nϯ[20;դ u2N,@ [$Ö< ,&&(`~fKjkjj\¾s˒a_k}N;$J`p_BTU5:8ەSr{@&7oN=2>5f>``"uU55wyyV~debԤbllLg\tzB||3?|@=3T.ûaZW6EW3,9-8p_%+HQqׯ5D iiy'7nѣx2`mtt֦M |tv>{~XM0!ē'_TT򺤤x<3wt@3hYY 67rsx09à ( L?> ruuQ^':{ h@44**n}+p_oϪ^W2:W|-¼%dm1 ヱ[/eu zԋ-K.<3f{k뀶ra$ 3QV}{ѪU#<ѣ&N\2oCT~ZEEٳgH$&EWW K VVVfhhHV__p$Exږlj((~|;&L8u*k„=k\bH$2~}|ZZ͛7r`qq@{;riii//"oooMLL'FO0ҥKV ##҂-\o4vXq㪪=(=(//WTTD Ǐ kA $)S vڵ}vv*3޽4iR{{;7NTD# T1 ¨s,_%|44F%&BYC gޗMn??{4Zh %_޼~ԥKLMxx%&$,\hÇ=_HMݼBIƪ¨3tl`FJH|R1\{mxװt1l{YdէrٯN3T I!!ȑ55Ǐ?xC0EhP(+))H$5 @L0ܧk(-- +"--?%??L(U\LLl7nhkkKOOdϟ<~ #^]ۃ/"΃B!--uOv-* ;}ڕD"_(xgJ((r1/a󞊊ޛ0a빔w]Y IDATyU_zZAA7MMC7ntPcnw4m[ĉ{CBn3׬_ocsY- 3qr2bh!#?nxvQǏggg߸q#55:D'10\p#%%1 IP(@ F\nvjRz,}2pttH%d%%%Bܸqcɒ%ヴ=PCꔁ|S"q,xjikk ?~I8@$ UBB> וбc#"\Ν{uDNYY\}='XA&SRR׮]᫨G]]be_9'ObKKP@ &O,?od.OϸI9򠪪```إ-Ҥ :`(666~~~ee?RO0cҥ>|fddCˡyyy wxYY22>hSȺkV BYreaa!'V! kpvv57$$$111n֝A'PRR)7._^W^ްu5~A۽nj8cOjׂ O_5f @ Vv_8Huu͉'DXSV:; yyWܱ#e޼ځgGlۖ7oo˗Aylbkc0bmm]q҇0;@hk+0\qk}m{T`K  77zv7//ZZUUW9Ex>Ӌ/~,|1l۶-99O#8 r̙y1;Yjվ}]$!"""RӖ,sWXqƍ &Pgkhh89<`ݺkk[xhP`L׽}o_\\lٙ)S-/ku-doot[QQX\qqd#cEhB11߇ŽϬy:aaԼy\z>{vVgkRRA?۷bml.++!UՑooڳ_]jii"k+35,d=kG177 ]~}CC`{gX .le%"P #p.[ujRzlZ'z"0@̜9?.XXb-7P:e 9R|L;wP 2'{."""77wΝ$ׯ_=`Wi7ntp8Ν%鑐r/|6h`3g͛7q8\wwUkkkپ}{fffCCCvv={xk(Ғ C (zɒׯ{{vS_LzzYa` cEE7oLk90=Eچd2y͚56mvZVVVzz:`͚53Fcj-X˾Ң$K zI{$P(%Q*kmPY2f1R~4kƜ3s/}?{lڵl޼>>> 0auuuGqvv,c_l֭[wС$imm:`899lŋ\???GG L&D2ͳ`gΜy͛sssHɓ'\BIO"##LسgOMMMAA4iPT[jjFB j< vΝ+W4_m &{qI_ŏOTऻϮa&/JP\jboqq[㽕+?_{=k`EEUBNJ*-m_ܫW7pq7` q]]/SQS/)it<ؚH_:/C/77}}}ڽ3ّo`aadl161Qس3lHӴ:#ϕ_NNN?:vvvuuu{;v"55ӧbbbV+*-[nnnckرcGή qsnҥOA s}{pZX[GFf$9Nnܶ햦B ryx,~f۷W҈608G::@ w[\wN^Ebb_0P33}yZ[r0GPy5HT2?mFDOOOuu۷`}!]vf<9o\! IVf/ff& F/ՙ?M:iSNLo&4wBinH֯_驯/$$48cItLS~)u_V/ Sxy|\j LMMq8ؖ))7oR& Cuixx۷ٿa59IIP{iK ==tc||y={F$GGGMLL899D7ǿI?YYYnnnkkgϞ EEERrskDD~ ?pJhqG; IYZ^01;{\zUCCħOtwwcSNIKKsrrݿN^'!!˻rʱ rss;::wwwo޼_DDwhh8W_lDb__+///??YbC$q8܉'ϟ/%%uAҩ'h“+TώH$oذATTK__?))i쟨jIO$22RRRR@@`׮]CCCnD$FQ٢ϞQ!!!?:Ԅ6l@@,2i~ fWcg958LˁH\hў={~ruiSg6 櫫URv5>3֛Yy]b/>'*+"…֬|ȓ~m :x1u}>|#$$fWC- >k~5սwC}W;)C ![,fnB ̎;FO:F@޸q㝖qJDlm]P@@2E=i=N nhF(&4===-[69YYكϘC(j_oODD}TUUUTT `xFaD''4p .qpp 'ch >t葨ۭ~á,V-%'%C547w_ߋ Jihۡ+,yCΉS[['/`R_ߐx@ e Oxb~~~ @ ~܋tw5<<޻3B( D ~ѣP;ztM}}g|G[;wZteaawܹ߿Bu ]6233={KRp)1222c0Xر5khުh: eT98%'C|. 㗎*+=*8zC-nnQ `011eeOĸgmcp0e GGGVpu5PVVZ&//7!!!uuu>}zMFFƱcH/^ED"z}~ʕWUU>|FԴKK R,Ά ?Q\:2o߰AG1]]R>ٳNNO-ZupllSa``ӓ>wξdD6vy=<~#?))ÇW:skkC9\Gd@@%aaEYXll4SRJ9s.C}ַooOKXJSS74GBc`hĽ 8@:Dog+sskǃ|022?ⲵ`===AAAgΜ!-6F45uYY}XK<}7lvko߾`22..iX,4Z-6ÇF|44<~;'`l u8Opp.*`V?~t#c``xqfXY՞>-*jO07?_[xo`0#Hd)Ae+ ʪB ྾wUU;BJPR1q]0/W}rQ8*{I0Oݾ}ڵkjjjϟOMM%m?92mll>}n<ׯ_ Yrٳg'=/weeQJ!(ȡ7$t/6ӧ,,77?%ꈨGFFp>뼼# ԎxzdeU5ռy+W߾ԁ ((8>L)4qݺk225H}|qBBBׯ_Ym..P3 pAGky/6ꊊ?i\N^flRի}Mݻ-Yr^Q:ȑ'HdĩSvϽ{wgww3}}Q/ jo |U4 Ս _E*I0eeeI?׋rHξvڄ :MMM뱫O ilRQx =thuXXFYEk_HYs~/^qBOl_Q##•+'N^ֆvp':..F~{/V {}!<9dtE:q¶ŋ7YX\@ )ԲYY5?ӧYO_(㯿~p4*ʭ:x+ ˖D@2 l7.fh~ jpff&Chvhǡ.}G ggSN311`0ٳg']TZMM UUUP[n:}: l|ى={핸8O=!M^}hu8si';wrΞ}qBڵZ۷-\8Em5۶Eݸp`%Fpq_`:|ƍaps#pn<Z"& utw|kn𡷉/JJ%?644c۶[RR&734XBBEONB]HwT`89YyxA aaa-者R\GsMYǎ׷deeˏ=*&&*FFFssO~gϞi6n+ciyƍm:: @AASGvv!''DͳA>>}HH(pt4:EUU,0p#k>̼̏wʕLL8_zzG/;i;

    |xl㏻{yy߿رcGсIUT|狊Pt AAnxcA0YZ*gd󋷷ss3=zf7~ëX^o߃cׯqv6TRX֯]^Â>]Hh 5:RQ xQQK*XICq!33ڵZf Ν̗/og93 IDAT|-[͸Z%ٱc؎]}{0XIH|:a}ant6:̹3*ᅅǏ߿mm޽{YY'.۹cǎ%KL?"lii`:F >`M)){w튵rʝ;:|`b.7իCBC7[X(Ss(7m2Rnj۷,Xu!ut@?>-6=fvvV W |uw e  L r2[Ф<s뎎%l!lA I\Hq%PZScjYFF"*-XffF!uuqO% ºRPH$ų;g{GغuQxWV ol@I?HHHٳGKKqϟ7o7l0YYYX_kk a`t` ?~Օf޽˃R/WGP:||QQn?ɩ u$0\r: ՗Ppއ,mmI''5k&-bI7,޻wyNNull]6ljΝKRS""ޯ]{E]]bvS[[m4GFpϞGGg4*+:ekgNJJ"}}EFfFDxbi֪ al,֭+V߾]Sskn*tH$@45q{4an|Binnnjj22e悚yy I7ғ<-- D /]J I[B-(Oͳc%$|:th9ẙ뱸KNֿ~mUȮGa0AwNRUa֭#WPciEW3~oD-Kk)uB#W_baazl7]J6tuadj@{׮{~~K[*`eT]\)cΝܦnuu  tX>~LM-ڶdcJU#hҥJf&&{7hΝKA #;w̬xqӺu:PDb>\C}N= _fCǏur2}@L=KnnQ d9#P_~##޽evgiy!,l.* ϛ⨤$÷`GN2tt$A..jm(bh(sVUerrBgά;thՃoxwV29sΝ:wsԠb GH( g  :qQW "(挡?cc=oGKXς`ll8)>&&(/ xxF \p8F BYŻRWW\GJ~y-nnvnA+2UfKU B b>9>EX[H3._ӃvVf~~-###nWU77WڽJUULZZ*FUU[@@=V\]M#JJc1׮ztNv_Š!!ݶ&̠>K1m0mg0#n,+#r*+ak@BB/!aoS/]r%%YT.''hGυ+Ν^^_bcJ |`e1-f` c` qk''Cbb:hrrIll^AA$T;b믥;v, Is'gZ{KI'@89YΝ{k׽/_Zbs@h>\Cc'.'it[o>,Ie"HUf89ȿy7nݺk{X2J ;b==;.]z>$B,xxxs.77S/;MMt֭46c&x<UTڎ΁any ## g(2e#_+&b`v=@⸹p8ag\7ssիəjb7dzq#?5Uf ՇB!M_1~߄屌e033tu 65uu6ԠD"##ÂJ %,sgVx%K%/\HwDOO###`g"99p|1ZII-S~1E;}2e/ñ*]rxAuǡ3MxF[REcn#ǩ;wZketنf/8ňTn R/Wuq1t} h111ZYXY޿!6o-,m[xBzzG.r{.А~J388|^&& _`A?1($$mskj.r$\xj))~Ǎ].9Ο?Y1j1*`Fpi1(<ׯzz>>VV*t4z09ѣ:))ggÍiBzv/wZq 0o jhYY;wׯK}{pBacCLlox5kM?u4 (^Q? XWhW!A" oθ?ILvViPtԩg/^ ?|8FehSCCWllݻ9s8ي ~~Omݳg>> A_gG}}_~BUV!M_|`\]]BAAXA.!''DbtQW? 99NNGaҔ>>]ݓ۶XP"Ty=`3F a 奰 p.\(.al,"`Frsk++P>AAŋZY+qrNwܺ58]FBA7xBMM{AA]VVUnnMW;<1}}}}iCCY3DsdH$ l.*jFYYTFF{Ν.mmI]]Q„.c ceea2ق@8W>>N0 euvvW/^Dtt{gWM`*Tfū9xp)B 3rӦw찴uh)>=Nqqll4tusH$ N;rۜ\vy95KTZm uCC!㥤_a?mF=|X26sw7T n߾?x7<\I1Jϯ HOPU۱cu:.X\ZZţG}eee^J^H8+W^w]wrPkoڝ#XXX>St'HHys3{6XŌ.ۇ8B}*획*0l``Ǐ898aK\==S>,T>qb-(LLFm¢4͋[V*)@,u'3 P쪍?>Nw5#_|^ ͮ,($$p0Om`##k^_F^QKkǎ=9ndg64|9ݍ} $$$%Iy)<ztQBc_…פ-p!!D~~_.fhki$##pKӧmbLsW2 m7 D6gd`cc09'''>^B%%--Ull4B %}paM~@T^ޒLI)cr5[[-cc92/s׭Ӂ:32KJ*{7ӧ:iiA#ߨq:'$DGTWwXb]G aao^*2߸QǢHdӣGzz0::RzvvއK.]Jm]˖wPW:TU۷=2IK޾l*Աӧ5k:Ν{R?PB@ @fi ɛ7YXML|ܚÇv.r:XEEE~btTQYfic' uP@nnQō;tuuA\lslIf4zQ^$,JQCo>liݻw 0 ߾=.\HIN.[}[yȥKϟz{ߩ< zr(kV`9;8aK[O J^᱘}aaZEVVUPPjAA,S޼9uoh :K__BKP)*j`bb1*>7iO'=~\hit-ݻ`HkxQusڎΆ>4zhtffFNNy)rri^+--YFZ_WW_944*feba!2Oyy˝;9l1vu5%㲯%%UMX,ːJHY*ǟD688XE.VPVW\ガ$߿^QNNh660Lw`Ofמ@2>;i //;////;;DQXXok{5(A.Yr^YY4*ʍHU콱hѿVZ\SxLrF, feU%' Tlm)bo*.nq70H xٳjL&z7NH.-<66/+JVVh&}''C/CJ ]yw[[mO%Y9}{"( =j t)ԛM5Wh=V`@8С>=L+<=cDbD6ȠoHQ?.kPMrX46>$Ա!W_܋*$%>bgwJ{{=*}huk"q&]E9ϯ x8 4z9oEE08J?FGRR##]WP#AOĄO'O>7)ի5rX;JJ"6 FG(ToEE+TY62:k+322啕TQSUҒ[]:uɐOff++jeTVTSő~C{{ݻ9QQȚ5;wZ,\(LS aʚ >~7, %/'%D3P_߰tv++˗c7߾..6EE)^bݘ𷑑vrt4JG'ThAP> =KW̖ [* |W~~.ؙkG--/HK ^)Ço7=fǎ:@H9 O襷H$-yyMRSnfvr2<`mԱг!lvvurrIjj VGGFs*uJ5Rz{7ou2|=1Ӣ]]i5kRğ"MgnDv1=A"bc>-˖*@GDB݌n5G̬|˗ex<c`aaڶd. :EZ J`۶e  @YD"18ŋv8|n SSB@U#`͛oVWk%"oe1Ա!W訨YQWW}vwZPӧ>-23S8}z"u~y IDATܸQo?_|β`` {:~ٗ/E""<;v,vv6KsG{{cxÇII @@f]iOP),LHPQS71_.;EXR7"!]#lniN~j҂-h ՇBaYQf*+k^* q%..55=,. H$=4&&%ua0ŋ\Ix4O4:_XD62vZϵk.P?~~o|:xEw7͛ϟ{l'^Sx5.t]_We   (Fì^{}~6yyr+211j*)p$)2231cfY4rsKSRuu5k4WX1ck,.[qo[98X]>[jWjjםU/]rs%CU9)A= 5{%'xz47azuӢ/||ڵ׵+VeNΙ31:OJ**.nTQss3sRgqժo.\( u,菌̌&ann9@۷vp>>8/~~jgcsY[[I۩02++k**j,*j(*onaddChi- *3]?:;V}0󿵵%I[NH>򞈞 57u~򽺺BC x%%H,DA;xǏ?j>mGucc)MݻQ[[r2ը3O**Zbbr=*bsp0pu54  _G*RVL$%%MM)RK/O|Wcc|JyyKYYsW~&/^9󼣣t. 8|pliokkCX'El2>ᦿ7'Zui|'O|Ӄ9'?yRx+`0XvvS\]M~+ĸS(y@кnfmu,Ӄ16,7`􊼼ff&SSի5\lrvX/6tSׯw$$|[."TKKgLUU[P&Piz{<ȿs's"[M~  wXL9NcTml4tdd^54wCXXFw7`.KZƄdKK Y؀+W[2j[7B6ݫ46>SFry7!@Jw/ԩʳPB@ PEE zz>>A%JH4ofV&E 54Xxz.:OGGg߸ndu"//sTSYٶiSϽ{` bcc 2~#iaZ$idih,חVWՕojoHJHder 7VLLL,ڳ~eY0΄F64t}[Y{]]gk+3:0ff&8|>_Baeeuu Y۷_x800rj_ Hd77`V1P}119hꜺ13*?qt@eH+ rMaʪrpG"O}a,+k& h ^ǂnV}k LyTGGQ==rJKo((ĸSx8@5ãov[LX?wK YY~3@SsRYrsk6l-)9%$u,dkCC3+TUvX~.˄uviiL#M,o;qq^P o }|"PdPZtCQQ8&f K~R^-j:;ed%8ky  OK(w7HkBFG߿47ԠP]}k0򲋈p HK󫪊 !f!lppZxxg>'|PZZ#.km| ݯ6JkFGe %o7զܣAlyysAA]ffUAA BN: !EE ]]LLBE⪪┸32?NZR@CH-(T 72`Kk+-r-kiY众ג}y6;2[cx/+(ۇuv<~3[)hʕ!  8BDŋK_u,CeeiiuJ66K(B5;իr/+/]r÷蜗/Kf..Fs|N'f^W{@J! ?ych( u,[""=yR mngCe/ՒΆ..Fc{{l HTU=ՕzIRH3:ZZzQ(toЄ)## \J_AAXUU\FF@JJ-u=@_f:M6.?6-4?@RRFCOOgi HdSddfbbƮ||.iƒ{z0ڒ2zz3z@*E*RXXݍaddC%SBNNM`˂:++Y*^?liokk_c[_lv+,wvPW44us*.nb/_RQttαcORS)+RDsѢ\x!ԱL")|髮.u,Tٳ⚚v~~NssEhTH>,{y7B޼I  >4vܸL5#bc󲲪de6mҟ Ú%%ׯ{TBAj X,.'&5,%9"fcic!--HSqJVV߾;8߿BP, _SSC8 Ӄ^tsXh#6P}5m}M7)T!tGT "ذ+7PQ, T)Z $qF8I3@ 㑐><-35āen55u?}apkOiw2**.:h2˱yF6d,-OΛwkXG, h؂7S:==vpuf3o=< Ο_*,<,@~aV}}E޷ޣiE7;QccwRRYRRYNN-24T0;Wo"Qד-ܲő;VH$Jh臐&8&.Ct.s†pgAAkj]0|6~wBQG3?Ͽr%cmcA ~>߰L$P #/ȨH*Z*?: jj{BBVq܁dEF8ZFFԩEc\@ZZO' !dm1tua6|{;ڊ` O$@ Oc2}}:@ y$TUeUTda) Xvs7oRR|}~~6{39[CC9e1̅ lGMP!?էW de TH3Wt\E.(0־؂X-PХw:*,[f>;4R>~qþ}s5dkk;g_Wx8СQQF+T{ffj׮-׊TƳg._44tٝ ^|30@C?PLH]T*}ӦԊ;wV;8̀_0ׯ?]Zٽmf6kklysدMqǏd*; IDATQQD_trRccή] ^ۡi*X,QYYYEB|Wh4Ƴg[:ʊ](-m9rennJJpWp"q`ٲЦӧ xxݺI0lW&?{<w!͟@p{P/'n* I{DVVf2KAV^(..3/22, )(8 78njp7RNzqܵb}̬Frrj{{ddD,---5'Cã6fmuϞϟ[wveȝ;i׮%Q??-[Yrcc7K%@[[q$:F@OTt #>>ɓ%)P(EYYZII6Y-SH͛7g4^^_8x)ܕwիOn}ﴶ ur7VPJTUaJJZ`@E____tfyy+](x41ϕ+Gղwjӧjjr69,ZdlG[:: -_ZlUvՅȜ疖Wr1`QXvaf]ƾ+<{a̻nmYXukܹzp'%efի(fdT%$Tci8DWRa)[1ʅ lowwԫWi6H$ʋ|iSZp1Ƃ ^𾤤Tll~x ގON.OLQM1꺸Ԕ˚Zp!wywIJ*;r%KGn #wVSSg']0ν}pfo>|HL w!͞}v<ݻaX1̻wuu`A@^8KȺ{E&S]]g._n ץJ"q 6 22VMMy2_(3fnmp.]J<~s[k~Icc7Qʪ암ҰִԔhw&&ӎjLt)14ɴgس'3&fӷZA?õu(:C `Ħn Ali1L0qq!IIaa BB L.D Ќ99qq()/$4aP/?vL"6CT|pS^luL&+3:,,=9|ڴI~~6¿64RR\VJ&SPyؼz4.6d ͘DjoH[>$ãGY[8 7:iiYYq99qAA~B')8LB(*JBqƴi/1Tbc ;Nru~L+E8qgFF.YbnԩR?:x *?~Y[[NB뫫/<ӝufM{[Zp!t:r2G룄޺QZZd޹e<+(HC46vGDdGFHWי*p5rrj_Oዚξ2)?{.+H3_OAY wQ #]AΔGXX] H$ʊwQQ X,޳g/^l w-ٱIww/vؓ'z{]0--*JJ#"cb,0Cµ@+cbJxuLfp};DEmd25<e a0w?-ysży1;feդUPU>CCMMci|#DGo>R_a0C^ySap"v觨n~~HC*ы n}tt` JCO>$i8 !46vd)C)JJ҃`,A1 ]\fJLe(:y~?=y/Z00f""uq燴@  u`6qҬYSf-xңGЇEEMht=]WTD1TTdLMULMUoR= W0#7cX89$;N^NjǓq8GOHxe` wEcngg;~`o"11JZ@,OoHO/nlB BBΝs*d(d\Ϸal$tT8~Urrc x 92r坪*盹 x`m}d ڵxCCW]0L SYy[ydTU|ٗ;~ȫ#MolSZi4 ~O/˫WP7OLWw ,Ō[>^I q\_vD iӣw.,/?Vu4cƌɶZ֚""oS?wIbg.F"઄Jp$h.JU&88Y@@cR:;{GPW57W6oQ(t*p :X^^\^^|h:ESS .r:&_TMqCCTcbuOZ4e %h4ƛ7!!JK[E$$X"L՝MPW.^|H$Jaa#]W(*%++ѣ, ͛/6lij޽srX?(KO' ރǓ{z==P+DTTPZZTZZDZz0""%%"-- vC^Ϟ}BUU` Um6L3/Of729s.MĭTEL􀻖߳ysDiiˇ{9@SSwbbY\\Q~~D;NN:sŨ**jZUyy۾}1 ?$e˖ǩgx#befV˦N6弗46vPUIIeiiT*]KKYVKQQ֭ON,v75HnN0z;.Xm@yY[۱r?/z(._~#&fp%KBTTdg ܅deeX/] 0 of-܅pWd>~AfjjŤIKsի˜n--ŋM,1Q^ZRrb$!ݼ!!!}9\1`kll4.@ Rff5 URގD"gL,9]i@@xmYҖ={m/R(t A"(P4ыÑ"+(H(*JN$(%!!Gim]#%%R[A"Qa)**2ӦMVS+~!89zx蛙Ujj]]v#b %%-%%%%- ==$>>^QQAkg7}׮9f ­[֞7,/oE+ ~??ڵv66Z\}XPPl\ܧ̠s?0@# O& 2?x'@ә䗔PBBXRRHNNRS[S]z޹\&Uۢ7};ޅ~LN&i&+.xy]˨x09n Fu5v쳷o;WZ~Oe%&9,1,/^JJq6羡Ȩgiq*0•X,VLLyyy={-ڱejvBlfiǎ'X,12r܅}]0L-2310z͝{܅pW҂z kem>o>\gy11^}"FF*qIp%vkג>̜:Uz޹0H$߽ҖǏT.g\c0ee(TUbbYAA$RYDu,VT;:a cHwg=DCCnD) {"//m-++vd\Rm\a)Pʥ{𱂂d2e*tԩRy~b4|)>wtww}wwQ]|fc g8ЀJQQSgg/ThĉD@T:,,T5 v=(7ϙsanxnĉVVht}k+N@o E$RL\ d_v88;}bD 04B C===$1 v!! g@qP+V)/oڨgZνt$,}ׁ1^PEeh [ӶϞ] w-ñv] XY/zSMMڜS|Ym[…F{ ':ca~R/ wzja ϞoގwtټT~ߐ^F}b!~}Q1""K\\(0n[Aaai&mmw)+K9QF$,]z/6v4qBEii.#֭`RRWSUuz^^7O*mLVffuDDvBBĉ zy`50@KLWRN34=<˫3gܱjk_Iu6yMM=O15؀F$%%&~&TTdH-$RN[\|d:^ް0?7Y8lom!Px&R%? hi1L!(ȯ  ya +V).>F/ _*liij/X`a)?Oֆ?sMLL>uB--]c;D/mPF%/ˋC335ciX-^XXzrre~~HXO=ZMIQQunb ht= UFWWcyyyTH-++ B߱rV|b. Zgtv`(_= :j<IO p(M+٨2&5~~l;0p2=:x06#nǁlg2Y?$%=^5u,11zҏ}v9"5OY}}WP8w/*j'**c 35䂂==5k OB7deUgdT5h --MkkMkk 2uv޾6)$ ֆ Q-N>>̙qqEHֱc__D$/^|w 6v 6ӧAAg.#jj{Ξ]x)܅~Ǐ<. p-W|~Fyy%Køq`BU{W:0@&,X`@jhuuus]v0.ޡDbT0\rXϟ[˓ˊ4tftcck 7ntv}@Ǐ=ݍd2ً:;{} !@N$*'' !'' ݖ,q̚Ç_`W޳g< :;PQ68Db*zzJ&&Ӥ~/sqd2uf`)f:ms@C?I| |dTTdLMULMU0df,^|ٳ Hܵjٳo߽+1c4d!C l*o$%:a2Y7Gɓu=[?؄]]ן6lxJZF B vsܵ ߒ%!'?|B,(h+/b **2NN\b]ĝ;]vr`L[>;@eqLWkl{RrYIIsXX˗22b˗[JHRpo4>;"//nfDj98PTïAi|~~6kՌiĵ^Mz4WUUvfǿ2JFFՑ#E]\%%8]WWߢEיLVlfݡ0nPUKKK {+ή^M~$'; ܅n߾躺ΨpU@^_AAÓ'_R3.5DIN.+JM֚nn8nJPׯ] ss;N.dIڠ``WXmI{;~$Q{{mgg]{{mvuCMM(x ٷ/PUыOJT!22bP)mM1PSzwXC@7N{O|نٳ::<1U`qqE Ž3/6фwz<,kv??NAH$JYY`@dO@PeDH/ QzzJ˗[.^l*(_W̟u֬)0"&610IoHF4b&\ IDATG(: TLu̩㲸.dd4:]䤳u X:: qh@ voepXڷ/f(^[3˗[}yb;=;9$Å YY8xܻw(~55Tznn]bbן:;{<=*!a'܅pWB'&~Ȩrw2ĕoKh3gNuvgf}r7цBU=tٮ]npWpKC=[//t\RRYrrYVV Wrrurҙ9s ۾wTcc8  РX,%5HIht"q`$R$LIOn/躻wQޕHI,Ybz)Rt#X'`ׯ<~---ye&QxFcTTAdz,**hhbfjffn_8ț7Łvr5ȏ\Woeua| Ǔtv2߉ 2k>σ?`0;|x\5 .'&~&јmcd2uYY5ovpw9h4ŋoHҼvmxhMp5ǎyz{=C߾ `;cY,VU6;63:;$%%beamic1/8),,t' vZITUa_O->]avNOԐSL:rd. yUNNٳ lBWSs,kbVVдip~~Up˗cb32]WywZ[q/_>}А[p"xτ(>T$%Tp$UUYWW]'']33l]ff7st @` 07oOGn: tixd:EY*+1ee ' h:;:;pDF{PG.d}Hz G0LIK hjj |wFW(:CJil쮫뀞B@OQQrh.ʺ #/kw/ n}\^~JT\=M?59<&&/<&]t9JwwÇAh|JIIsqq3J=yp c\Kɻ{0# vT\InNAڊ qW1/ #/ʪik M9sgqg0 ?::7oQ]{jRZZ֭N..3Gc%8Ñp8x܅.,,ƍO]Wy*+111莎^==%//OOIDa,d}ܒTT^R,!!lk: ML|L Z@1=C=`n`7װUR{KKK11u1wJ%\]uѳ`i ݻҀڳx'c06|G Nmk#tuh 谉6؃)ޖԩx^^ ŋMt4 ԍ::锦͑a)ЍS5νdh5088{+ ^ PVV^^&sqPv͛'⺻nuZ֎_"`m 4S(tA<;4 (Tʕ־#zhӦG{BB>< i\nlF렁6UU>>^uu933U$RZz.LZ>V^ŋ©S/\4 dz@[; rOiZ$%3LkaCƞ>rwR紴~tu?ڊ=w@;kG__><ǴJidaa0:77ޢR鑑uz 0<}}={^<|x>g O^^=5a ()i KPFFtr5kl+1thnn/&6@VTPMuI$ʓ'׮%իm6mrJEEˉړowY+YY5Gl6߻w S^_׭5nZCFyNǓ8,t;}?BQIΑ#/]WytfZڗ؂t:aƢE&NN:oe|,9 17Wng7]GGMX,ӧ~ԚGuÍ"۷Z% u+W15U e†b,,obʡ?펎RSg75ֆ`  ! РÄ'L,)++ !++6yw44t^hcRRY@ hmL!(ȯ 14".'"2Q\4׃8;<1`U|Yg2jipܹzB~~=EBBh߾ye̡/tcӧOZ@}}%}}%}}e55Yv ,)iȎ[pZ;MMIIeVN"`r\;:zz&"cjjfDjqAy`PκO{]Xhhz8ѣ,&i4]#迃Y,}#\. JKȈHIHKgZICa'&&mcBC?;躅 0[~YYkZ>_6!|tvusoKe%$"#)(p \`EGtMR[۱re|8$RssÇYt:cB@{ HF4G(*\sT~Ԋ֭N\L̘1y6N0(\srzoPwwK|8`\  ]w!0ݽ~ZrQq i`=WW ׯ6n|tm߶s"W?hIIe11>T!ZFS߂ǓSS+Q>YY1$Rv<̗ιܻw.eܻ<Ç=wVN}{;R(oߖ~PGӛ:gL--KS4 aa~nn`%b,ԍ;: "//"3_:q䂃ے=p Smmy:1q̙Su+Wީ9 in*|͛ׯEE]\fΟohg776v'%%%A]TTdH-$R^Kt&Lu`x0'NNIpv=vsڴIpW=7Oe_ ʹh(TU\\۷% H`\=EG/cck 7ntg!P@54t1&KI C99qq99qh䟜Q^,\A&GRTB = RSJN+W<,,<+o$Hcx<9>8:://^QQrBc__sUUYy55..:zs v4h4FEE]_R\RR]eXzzJffzzJ1֌`U͆1&ʕbmmg?kmh-yyPvHh`lkejjhol(ɿ2:th>ܵ`kԩ0bB`嫔Kgg/ ?((HɉKJ ȈwZβe~r_ xu(:CEijƤIn@L@:,1a SOWLɉrޝ+nb#͚u=0[v$QʘR!!hrn?_Quvooݻp&a055P:jn*.>Q__LUOOH0g W22R_\umtŊے"׮-OWBUeetwA;TAsn=WUqNTneκ$58@|rZt XДˤIbl) Kxx_SsN-Zr,sQQy;w>yj/Ngw?:5uܵ#kk;$'%&KI8:`yg:j͉ *X,͛O^?A f?r <\PPXؘSc_`N\h.W;LQ||,)2ا R+YY5G5GݼzT|h*ww}k~͛&L8ҪUabb__w!0=~}pJ/_N#UwmmO$%̙a`e&X,1=2#:7[@OOO\ oTg2:hJUWGg4h*naqr|G/}`0YY5ޕL215UoJp$<,8Q"<k*"++q:Ͽbl<=grVЕ7'NY$]T<K;ogky(JL||ѫWjj:ddDg1b.^|bΝ.v]y޼)޶-x۫1gㄅ=y'0755X&%//nf-5`İǏsVZƖVGjEeV'M|u10~QСYϞm03Sν4m$kp Ӊ33k8 )0 (Tҥ! ohn+BNN:s̚={koUWcyxړ-,LMU$F22,Y\|VG&SCBRoHݳg 3ݸi# 4'!.$̟o5G:=%@0O((9eԔ)RPe)99IFZWW_ccwccЩ) DZZdpR$eeiEEIhY}}}1վijCyYZ[q/_>~ХxfU[{PW&cι}{{**JJZssk;:zxt q\4GDd?^iz")\~ZJ~~VV_=<22g8d%uht}^^-L&KEETLVKYY+<u#Z[qϟ<_]US/ELTTOPxZ::_ o`DGAY$$c- _\Fd?PL̦Xfexy݈\go=f占Ns]kw-j͚{>F-T*}֬CjW&sKwaM-3!apTŁu+Uuۺp.P\UCM+l0H ~\UL.(}=K>ͭk72ҘلsoN-YoQAp><4Z۷EO䤦VPs}Z[Nxemk ⑲fskjڲkđΦ}(h7+* RT O*/oٰwϟdgΘq>;CCAY@yyHJVV k1HD2shv,ɓ/ۻG4 t>Wo/Je sZ>rii"Yuu%JoNK*Aa͛w?Ϊ*޿Z! ɓo߿XSرŋ?| +Xe;4Zσkr.[S[@"QMM|}LNhhĻweWZHH+tp0q/-_fsʚss몫`67qu5sq1usXY}cEޅ 55m>>6 :AIJh&j:+U+MMc^=y=p`#DWo/;( H$1hǃ1g.5Eرߍa0[/_^$X>o`𐀴*,<>CWP(҄R&b:i鎢6|ߐߐW)%%enlddboo(/xx˸ѣ-w, pL&GUu>t(!U0 '%U<:?a{NuC:;ŷٵ8\mVV5֫lqsÀ)=ݹwŽEq8ʟ?ϋ+ә#Gb%t@tun N&)BF' =DQQ^CCISSY[[UCCISSECCICCYKKYKKUSSISSYSSe`o\.o[9911~RR…W_UY,7o,XCw7s.|Iy s׮ee X,NVVM\\Itt^[[g`,PE YD|`V]{c ;+/oY Unoo,(h(.nb8** #Gb\\L'&?[T>JXbO+2RRVΟO@V~mܦU'1CBWRPeea|ہeƮ[7Q؁߭u?-\S~icCffZn>*Gw7ݻׯ ߽+f::Odk' H$VXHͭ#鲲҆XҌ31% MmAjil$\9nF?2(\޶m<ɾx1RD"56"Y[XHԀr&C$R*@Ҕu) zzOFjMxbr/A,Q hdL6hk:x0\__Ç.1kǎ͛78m''Ç(0IRZ!s@cocñU^^}f799u ]NNAGKKKT`әd]򾽽kFF걱͝c :AVUOry%%M8\mvvmZZ%LWR3tw7ƺa ?{|&T_B30'02Gq7F$RԞ-$DQ 2fs7VCP(%uuOnjkfax˖/^=z[ngͺ$)Us\ϟ'Ov,_}/ vHv;:$ ^vJ >&&?.FETftE >jl$_aݿ+|fsCC#J__:q8"h52V"DNԀ\tw}t]BB5gtn,ѣSh= JTJNN H֭SƎ˪~4',,nyG-Ɣ @J w̕S:YPc}^^}^^HD;9;9:;HXJPP(?Ly3,X0jݺ 0NKxP[[eKb.ZX?>O M}}W]oh萕5tsøcƎ?*22c׮iiA +y ]]vvSOd?bC  L LnkLwt:YYiMMe eMMe--FrQaѣkj*kk TyW?|_FdfVCd[ ⃂× &^^G&O߲erjjeLL7E , it0>늋/ \ m : ;R˖YV?{zZ;!z˛A mm]22H DRV|?BB,^2ov,;qqWWj&\\L$@Wh| qfɓAAAGX,Ά ߼):wn_B/.n**"4̴LLG0uW>"(W&=x)++=w$"AHpJFFɓ32[L纺v/v߾66Ž9 ?|sӦI7Ov,?<'.6vۭ[N).v ]dN?tߍ* XP\ö3ut4<Hi"ԴUWUWtB$++XxHSWWUQu߾牉e~~vaaAc0X?g~~Cd*WW3a#jjڞ=ˍµt"HgveB)}BR1vzZYyWLKϟO?~|`>`9i6{wo>m2/A&h;wJJGϛ`(#l6Cɓtҥc7lUU*.&kӫ::FU 5*VVz?,';nHHWSS\dʕӇySZijh(dy3oHNp5}W#@-os0GZ Ң"$IL,]ƍl;M2:;{Z[iD"JJ x2(4Z RD}SH/EDdիŽS[<|()iL'&$%0Aaa%%ݣG[>1ԩՠG'N>>ҥ0eCb\y{ut"*EE⦦& Azz(GGc@DԚh.]JPN6M27vP)>L'dfV{zZl4ILUe|[K?DFflC@']>a|G_Ǘ&&nv m}ja ide3ԫ0LWMCCy^^؉mD|' VuukMMee;;HT$*(k"+(mmU}}4H.%:/޴OYY' 4ZOpى\6p1b$5VWWmΜH\--+@;;ۻ;j}F 41.;nƌs/ȔoZc~lX/g&ہ5VxX,ݻ+A<} ð]p^ t:դ 6{ KCT1nnGG0Zp /]zUfhϜ9#w@uukT.22`Mlh[TtPK daR]ffVwujk8;"Φ ,.} a"JRR))xPcxq㬼p0 XAA9Og޼=zJe4dTKg'͖*{`Q-JhMMMxYlnLF:/YKMsv,Dy(>$#JVV he7eW~ur2vbҥÇ_ׁ3A1!08b_p2??;a2._~wP~=Pb2ZXH(,l,,$4vAXXc8/^;_Wcq⧾ ͛'IH Wsһ{{_~w |@tg'c͚񡡾`uȑY1~c~}Dm <4mt+2T;+?Y @A[p.7w848PwK+LݤIvߛ>%DH0l6@46 rc#@T"`Jkiii)kh _JJb &6{Nɓv>gH #^ۻ,ooZ WXqӧ9t:sx9sFN "K-$'QRUEBeQ모L,F|֮'Or#'{n>[R63аar|M,v=~̬kwp09Eл>>4_4wRtfIIS!*rr266s0C`|PqһTah?drnH.*"@pPաVtp8&6;65B+++c+CǏlJI%Eڒ啔4<lggƎeK]]{`9GG[V|Nii~csߨ*A"H$ڿow#gaώjAE]]QGGl[&O>u1q8?$'WܿzpV`~ k$">>'N9sf 0h:JbbsrTUgk;mSa۷OS1۽iddfXlW ;v<:9Ϟ}ܴٮ'OTe7pxխx<'rr(vp0vu5߉<Xzl\^^&4VHpJII k֌=Uv֟;}4p ߾-z| p3/iqOG=:W؁~DМ9# 0HRS+ͻ\R!K "ԫ |==˓ʫ[nj>~ ffŽ?x;=WF3[Z]--Զ."D B,%%: RRQQPVVPQQPQ:LUUAAANUuAjjRJJrr2򲊊Rjj RUU\$B?}:Tf ;"H tÇkE-nph=w4YZy% 26Dmkikmol$\P(% FLOSSm6c͝R>2Сi#PQ O\MM&NvDaѢJJ ׯ/[Z:Gj7 M"H$*2J&Hz?`AfP}-}7Q[s^zrs˖0 ''ﴴᜎ[]\La QYI YwĄZ e]6w%33' %N1`֮Zd̸D F}[jwwsa3RS+-9fWCDܜF)+k)-m.-m.)i*+kf2966#FH^ddGBBgrCdr"#3.^LP׭ 1yee-W{죥u?H>,}fa l ^me;FM5o(pw?2fza O?X|oz_r<W@44t$'SR>Th=hVd{e[o/BS( 2N&)zww/Dh^:E/QRQRRSS=Ԇ}Rar0 3 zar rJ5Pkn3 IDAT!0YEE9%%ImZTDg8\O?(FrP99׊{ڠa85222͛b3pqցTT owO"|ɈX%P\YYm CB1 D+ Gx#'72"iݻ鍍ddO?**~kJ" MMs⣢LMrsdz!*FYk ;ءxw\|]]ƍ~l 2lR^vWٕ][TD,-HYՇ fos28%}Yw7o= ŢAaQ˖,,l|oOsz\\t8|eTK_} LGz% Q-f䦶j_pOkܸjjJRRR\.OZZԩ9v{>u+yRRaaY,΁/=ETTcc_ȫjR0Ke*}v|R^/ءPKܨi}{9Ȉ\y;+_쬬#FݺBfxp]]{IIRRVH Rշ571hp^Diisx?뫯\9nѢQtdrϸx2k%4Gb֎xŋϟ40X{ɒ-DEE}gf;f#uv2M;:*(6[OIϯra}//v(o8֭G3Y1OzzL&2L Ja`\&pxn~,XP_xO4Z>t> y !  uu1^O_x_B)I+++ -ȼd| 2 e6 RPJa8::?,,FٸoqC䚍ةj7ﲎt"ѣ;wҪ[.(7v6[_Q]݊ NmkonD@ttT̴uLM0dp@bjef!']A==˗ߝ?dr\kk}aG4x޼)ZV^W .^ur@Eo(CD*+*Z`B&E;;9+B!ҥD q92>ݻm0 W߽M갹s->;/j,!eѢl6ѣuήʪȨF<<=<==-X=0VԧOC,3<<7Dv d2Φhލ|Odz[[ OVVZSSYSSECC6r8\.@ӧǃFnJIAzzm>M+ <\\L/y4Hc#Gbg㋊Bb}Ѣk</2r4&tD| EE kFFK꭭m  KJ `azCդq +W[t }ٳy $f%{utTW)vxSRmɒ1۶Mكg`TVN2مŽ+:F 4[>:vEIIۅ0x=ޱqMqa"Q@ b`!sW22R^^XooQBO?s& `0Xl6 `\^ww/eL6Kp8 --Ԛڶ֚6 Ca0ڦ6R"n|]RS+ͻVݻh6矽Zߖ-+*Zbc7F⌌=#,޽,2>~…B?⺻Mٵ8\""2bc M6nvC@s'޽4s F |ۿ; vEEeݿa }U\LήMNggutTL+ΦPTWz{}{9xM d(8;z{c^)De냋grG0udx배قmp0Nz,x<իf|vT BP(ž)3z"++mn{ 1:mryu11$T. ]燗 1\}XrDΝC "(guu?^7D>٫ZϿ:,*j be'vi[R ZkqT[/_8񺦦ߦa$z!9l6֭3gem:pB}%#pqŽ`2ر v w@+!bj޼+g,v {7رW%%aDzL{{wFFUJ ÇF;\(cc ֬SUu K6K3*dP(LG@$%%Fiij YH=|8ɓ??gQ""/aѢvvoPV`iboEDdu,D~|4ZO]];RRQAI55(55E33mE[Y陛 4 3d 5>bj%).4Z;wV}?D:IN@ӡC? 6wݺ vvdh~& x<89RmmQ 20Pv\CW]];S[YI`SS-WW3SWW3[[Ox }SƌVCJIISxxRttڪU.5hGխ^^G޼`<VM\`sH;;JϒOMP ..ɯ9 [<ʪNN9Ԋx++k̬̬jۻF405XFK9s.[7q۶Ґ>쐘}Z}|x0RRˋ V[[wؖn22ڪ_ꮽkד̾U2ŋSKO'~c UWօ8}rG>ɸ壷o׭兽rex ':a褞+</*j I$*O Ċ bqqSOCQQY.%vu.X0jݺ h'O).nINN&?H$#"2/^l@B?}:4ssݻD0.]J΀ 66w ]pjRn^a"Q@ b--*#*=D*)ɻa<=-==-LVEq„c[ml<%}ȜF":;4"rr2HJ4ZTKWWMOebe`_״={w_?14 Wzzҥ7<=-][:/H$jDDƝ;i cD+ǎ>p6b_YArr2&&ZXRbb)HR**55AL^F͟iӤA{Ư3R9|!;*1tɒ{5pS˖݄ ֭Kh7x^3g "rrjq.Y''#1#GFkOx0IVweW~HM];q AkxdժS:;pH+0ϔwʐ9 h4۷4_R]݊2(2/S,-u4YWH"zz(33m33m FTLTKFWAЍX,NQZ_(4miժ6eVmٸ~MM[Lݻ(-=$r|TX_R3g,[ec#_!Ng4egpYY4Z0''S{Bb||ن ]?^򾼼 #ޟ~<!{'9rr23f8/^<A$CJjR77іVNy3%'g/!(yy yyyy EE:$`ldljdvL>ә祤/6|o$Bwr{™3]p0|Ç_JIATl4_΀tv;;{gF0>Xii)YYS\]hjh$5r;]]o6-4==ʘ7o Y@R?|g͟m5O~{t͓l"p.]JT46;vWOƎ=^T^2zeHȘ)SF|ԴN!UU&|KjN2cih #G˟ɘj모b* 4JK9.A7Ob0Xgą9رv{Xm|Dqw?xq2xwvj^^~Hٳ]EsH$jl.n-aį⇒bc ll7nwU+?;**$aډB y<1h[RZq+3gǵu7ߣMM0NŢ~'X,ہ`ϭ[ ;\^UUkaaca!11Ʈf g`^njj˗ 7.22?I_We8i BJ z`wGlnJIA0 jXZR( эL%E((Ȫ+!Q(EJIOOMWWM]] RDQGvy AR<lm.(vv2Kbc >|ry..NNn>z=6lݴ~LLѣs.%pk֭V[J|yy tsMMVzr}{{ה)#֬+dx<Y]J P`F 薖hssmATB+M$ 99LMG+*z؂.)))yyJ92g"'>d׮ݻ-5DxhŊ[99{cWL|ѹ|ڠimw/Nƴi!!cFvPCBe%)3:+&+"''3bȑfHF@qʚϞ-ߴ T D]]͛)gIϝnuKdӧ<o$`O//RtǏ8\ 2zh j{_YY (U א_H27qt451FGr}TZOρ=]A][DNMM)KV#px{h?V9}z&h$JdP=oҚ;׽ 5-(SYP(%uuOJ\d2}{))O˼y.--mg7emmAk:رݻ,bjkזN`ә'21ъ\5tN]lˮ^]h!*+I/Ihk 3X=,me?tJzD g5an2vDbgg^Pjkka,+xpbbo n }w+~ĕ+lj p{7͜y~QbD߼ APrNKK py#**&䇲RRRl6WFF ~~' a {4H`yz2]U][XH`殮f&vvvL\TTVV Κ֚ڶ֚64U57`t,,tu5ednlnN=y򵒒ΝuK4Ϟ} TUEGoԽu+eϞgM" 7n$?x)##=oڵj@Db}}GEEKkkAffVVzX,35b {l$?}1ii`0ڦZFF}ˌ糳k$Oܻww2Hg/_8>X)C]{i(6xlܭ[yy%ݴ'Oreu{ǃʚ3333kۻsggA.++kr_bzkN=۵( ͔W 4/^pOw:3*qNddFEpBٳ]|S/8^iiRd(8;c@600%--ð>>6e #F<8kpNd%Kwv2""VuxWPxnϞ+ ;?򺼼ݻr ַ`kege SDWsTM#A5=Pjc$k7FxbTC3_NKKe۶sx`ժ;vMǃd6nۼyC|խ^^G3v,q8< m#FʌmvikŁCbmy[ΫW#4wKr* Q==Fv%7FQP1X۷Xx0/a͝gDF22`zZZ%ܺi×\.oȿҬY.7o;c* APaaϞ}44Xclss_  RbVV_bLL4~X^ A> ߂abed!I҅Ӧl'')?7Hi㯴U a0Xt~miՌ_Y))x ݐ1Eb啔|&=qv6pm6\ٳMJJFFm׊8;8/_%>{Wvo!'6223&&M8ǘ1 Ł\^UUkvv-WQ Y1ºc<<]Yp𵄄 ywz[ V.`nŢQ/F3g^Xl=;iDOaҥ#G^"ddO rsmٳ\껌4}BSAzGt: A B)JQOí+&&Z'NQ~~ҥ7T[ ٸgcc7KH #ڪ۪H55mH',"6gn]RҜTqЬ Fjո~)I4'|Y`dz%8?Jo fKANKK3qda`y󃘘|&7B7%ep  ;wV|DYY.%%9ߔxޕ-^|=/o?0DDdLʉ,H;-?PAD"QqZ⨩ st4qw88iB.G?>\ rsQ ' bUV"v͘rl dq7GP()ɇ70s[tthU:RbjŢml TU "&JQ$$XBmncakaF "Q{_]诪s~^"¶mJKWuyyе=|۾Ǐ45Yudd ڵ1cX-aE2B!%feUh*//%ċ=hd~\'hh7H^fio~鳅[̨WZZ:}|l7l񚴐Æ]f~]INJ ^__}lא1FF| roTV,,t1nn1cKN'HKK=xF؁UVRRT\TZTZÒDZ[azCj?mk<[\K0g%mm%Mo`?Cl6f7 x ZtWWQ_~REJJel6D!%.}ZTF[[W*(|E RDQhZMMo|u!!7/\Xć)^. pw\TMM B 8<<fqATWUW"ڑ?{{PJ:準mw'^=˽ UZٳÇū[44t\|~ҥc/VWat?뫯\9NTT¢˼$ 7o!|II۱X pֻv_df˖O|VLxbaE| ;`0ֶs?WWW;~W-+kFjW x< SS-77 ݩ]\-_~$g⫻YYI*/o$xbss'ARRR:cXn|fsGkn?Gl֮ bYYKFFUCCҡ<mi>maŢ}v-]FFRZ\BafF&?IQUVQq_RTD?tϕ>\ɓO};s<r 3fW{\XX̫WW_qڇ,99 F-[6DKAI6c}ZZezzUNN10P05B\K 4BCQsttT_ IE O=uꭔ|ŋq!|n{</(cbϞ?_j}aL3fxp)#' hkojq6a@TUw>>Ži\.)_).&H4TUah++}dz$ח tOjovvdtG'Z,?:, EҍH (r b\ ؅I (*JH  l1]p~g8g9o\kSSJKc`dVSSUº͛op:gȠ7Fc[Zxrs3'75X--5!!! aRRX0+()),%% bBRRP_ݸ񺘘sk1)=YzcDfR_fk{r #GVp[55\S**qdURВ+4K;xp38NRRp›'Or&LwqqrO5x<9,,ƍTz;fjKo##3DDmq4!!^n+5(**6n7n`z@&SyUAoq4s<=qE1ߊY?_ǎۊ͛Oz$j@UT$̯bgwX%8xT/ɓݿAQ{ݻw.TO*0000H˫|W23+:x&M|W !#MnZ(HB"ueeU=:+Z\Fc$"'+;aҤ ]ܻ7,RQu+_(-ŕ(-m^&IҍU6m֒Q7SdI0#('.wzut޾a&ɖv r,]r [jg|hcs<~8s<>Qζmlmm)҈i4_]KJ**!=QQh&URjijhH95ٝ;gl1恲ܻAT[XҥfҥFwێ,Gil$]Ν(j˖i6M! fxz`^^󜜬Sn-[nzUjj𓇁ڵWddDΞ]mE`#=ۊݿAQ[= {>ĮIrefؽ^lg:shL~`_`rssrjrrKK Ɋ$RWy9K!ğ<~ eeE99 HK+۶֖GQQ}qq]mm+ₓ&(@Yq`.TYPSӛBR_(./.GS ͩ%[[L^z7&;ϟO}=ڴFRrp'_MI)4oޭ[×L1VsMw^ֆ͈&(illOl%3@2%pz rAݻKަ9k"Cx3r0`qq=Gr2"--liieae9\8XTWϟOɔSHH(dFQc 32&&@ Zq{j5nU````N{;%/{nnu~~ODX!==y==}}y==]\n|YB!Q(Į]w~]ĩSBBBi ee8:)"o`RQWnJ=xq*`0(ajs56|/*+*+.NghkN8A[[%%} hZmkK1n~l<m~l?G):Aoh|}|{oB`0Y&%fA3L9dɑc8!|;SSU7ٶ-45ӿ&$p A33Ukk-}}q|yo 0J?8 %,R鮮?h/ek;u:5&.4]ȹ*Lg0ԼyzZ; 132#Ç6~~==y33533թSƓ0‰ a~xrwF(RVƪKKC26 @EE{)+#'O߹s֎3(<9d_[g--5XF tu66!'ζFb}}4-++݉EFFDT/DFUӵfRXɊ?1$$ɓuYM6eʔU(͛Ǐ_l!MdLj\SqMVU/EEERUURUUJHhFo_('47^}w{$buxzc27oϟOήg{>^}͚ck9(˗sL ^0[K0Ng9d=a0(wwAك2Ǐ?OH(~ƛۊ ᆆ6Fmm]`~C%&c74@$'jhHsQp8Q@`2@64}R邂ZZ2}J=\PH11}Y3uvwsD>q~vuъ/(--mә""|L*͹B75=ǷJ(9kDww[SSUn:YWZZڐ=?6?;G ݚ 54{s&$Y[k.悕G2}n[a,L& u0eFFfxxD@ܺũc/m KO?ȡ ի/PRrB~? Ptºy<<ɏvʇ))_0ShO=q\ 7o F#=͕p ֯`3t[ ȁֳXa2j+ʌ . YZj`c- QTtiPUUͥ 55R\EE#L@DOEEJY򱨩Iho,\",aɩ^($)iS_}ȺuJ'&Rs3ǓI~I&:X1+$))$-- a22722"BB#\TTauQQ;w^~oLϯݾ}NXaпJW'ӵRRC} B Դkj55-x<* ##* 9TPO]VBǍ׮ y p[)vQqbg,_n2 *q|bSizݻmedD_t}}[@TU5Ydr2 Ԑ n+36HL,=ED23aĬYh:ۊ(&&hF͜s 5?0000cq@FcTT4 ğ?b0(UU):@AOOB׷0̖}/^||l].5@kϠ;vMH(>v̾~DDؽ{ggWߺFЅtt@FFC׮%/[f y ҥ1t:۷FͧF#Ԥeׯ00P]Oo΃66ڜga!**Um9TE'QxyP _׷UT4UT4UT47>wJ D rrXeeIhC#o Ow=)鋜|;yHCȣ%!!(!!)4Ƿ76x2Djn&2GT?V+()),)),-- II KI KJ II C^.l>|YvTM<^imf;m낁4ԍ IDAT;w>w"d JCCȑB t@Rjj𬃺V: =II ;iJJXeeh5kx =g̘FTTcOxʻM5KLlx}RRgĩSnn9??U<2mG`rn+3LI3tƮ]θί6yP[_tfy9HB55Q($ Z1`o~ٻ7\Tڵ̓\OP腅u?WTTU5"idddld0Hیe.ܲztf蠚nm͖-C4Ȩ񉲶 :oEEu GWw¿qZZ\HH({N_j؞&.oɓMy99Ջ/^54T(`k{Jh2L"KwO?~y8yf-\ήKOfmhdőwk7=,?g} =>0&&/BB|Oް -dJnnuFFEFFeFFBWT2mcyr8 f A1}khWUc\ =DDsbQQTRˋ=@rxxWTX9/m 'O(_}}D̙\L8FbC@lh ݼrrbT_O9tSde\Y ZZvίzWio yM t1 '@̛bׯ={khN)&" 4 ȈBy̠VIIbMccswbᅯۺwbGuC]Ky ]@g[LՁ B{Chh"Lqvٵk_\hڷ/o6/p[#||AAzz^0000O*/;7̰@p/ \\n %%0Xƍ'_~7=޽>N: _mDEeD}zt0l ԴFGgyS3<4`+V/g0fΝwwt4I/_33+32*srx2@2YԔŋoOxA1lHQg gH$TU%f\9gx<90iLLJJJ`0ˠRXX;}557x+LZi<~?%tVooxzFDD|A //pO|yhAw5b0L&(!!hlxN]zݶ^faHo}=Եl֭GNjX7H$cܐ̀"έ32z-QÇYF1TT$?|g--_40ݩ5\D$$/]mE`Fhd+/̠U````F}}۔)vN9޸B42H$F̟8k<3HTUUL2i4Ƒ#q׮%,N_ Z.( N8@L\%ƍY\(׮5_#iCGGG{{U4cs$RӦf@`%A:xQGgE _8}0*ô{#q3JW;h4ҥ lH ˗ttЃr(CH#@@"򂚚"**ª""c՛wѢEH$g:L9|M8ZQGU_CK,9TECĉљq1a0U ũx4̙4gΤ!q";EhT]Mnm"i--6 Dc0Y@"H$LJ Ϩ"]T@ A/ +F ,9+wȨqƘ>]~x@x2??ԩ? ,}ñ99F f𴶶C X!ݚ|CzA+(ˋ+(H((+*J((+(HʊsOP E?yKի/߿ FY[*嚚 >笚?s֭[Ǡ cǎBDDDYFFF666ObbP}~С ˗ѿH¾>׵k~W[Z$Lnn&76xrSU-++*%% II KK KJ IJ cS"P(v]deE2wM'''Od(vi wwwSSpf汱ݗDDDoUA 2 (--^ݫW)adU9qvZHH"BYqAH*+c%MURYC\g7{kL=vvY@^+.!֬1^+T*=66/_~,X`0Qdyy},Z4yPWWי>>vf|~4h>PGnLNG@k000!T }wl3D !;}M3D)9 $Rށ˗Q,-89 3 GaKeˌ}|㥴ҟo Hkj c0c3PRRܽ{çMӼxq6h4Faaչ55M *())mt7h4JD/ `)ϟ? _!dϟKZrUccc꼼 FF ԩW.]pɓz{ˌ W&͘sZQQbϘ1#99-(||||mm,A\|! zyW!ӧN*BB\I46=rcd ~ʻX!_߅Kq4W̸=-,!(>HTVN;w:W`CCCw=$DP(A$RBHA2SWW9~~}.d2.d2)LfWo(Vv`<<C|P>z"wuV&--hk'N^0 (ciiՕ75U53SYq=5iٳ}tfCږֺV*e9ˋɉM &''&"E~|[9y9MMww%K~:cJssS?KϟWVVέ033knnfJ}ֵtR@#PN@ee?X,χTUU Fiis粳 ĆL./I Hfff222jjjNLLD=f_z5…7yy5:ih ]{9OP@8uǓJ3(-3qVU3LP]]4Jý֠vڗ/_Ν;O4xAp~~~}ԧ @pss{MWW`=h4:33𓭭 _rqUʠX:sf#tz\<{k]GGJ7#redȨq#ŋ|EEu̝,'FBB88NMMҥ h̘;P}vPdF0lJuxxhj.[N 岠 )ۊw|]wlv4AJ ,_xyEbcb!ј"I\lMMmmY%%,f16annױX۷*(_`wH/_k33+ӿ55,D"L`, rssGgP(?@$v<֭T$cCA("N*//z$Td~hںV]]˖q'0]s,6nBCBB%fPWWfe'4,p*r7LO?.>"Ǎ;gAn`QQ}bbQbb5h4B}ΜIg*+c{#V Ii۽c+VEEQQ߿(_ol1[|aGȨȨ̬,,e2Aeeo%;jsϞaKA,-߿ֶttP2 7a$yyyq99QYYQ` /(*JV Z,VhǎY֙ lWaK-q.{U]W~~a||9sJJJ/Mo5z 8cƌ3f>|xh ޟ>}JJJby...¾>UUkF!EEu6\s 3-|͚K@;諫Fá5J511rʎ;233?~`^Z!>U캺._Fw%""@ ϟoll }vdd˗/Gc[HH}55ersk- se_ `wLiӎ^faaiL&;zO4!8xEbwYىg=jzT] l .Xp-gvʖ-7bcsnܲk9B!xѣ얖M8ӝ3' }fի/otX9-m|Yg0`~ӧ_MvlS7nBq ÷ob=7a`؂,,u;jjR?~<CKK& W Ecz>9nY0(hW_ao?#8QSfAr] 51QYh׮ǎ߽ݻ}'| ~G06V4IYñNNfk?M~|ժK{<8yeXׯ sr4O#hssu(. 2`S)88ndr֧O˷d2CCC'N(,,laa@ y}왑+Hss ???\sssdeem[FFFZZۛFA͛'N:~ݻwUUUEEE<g``ǧvuA#""Onkk@l߾to8:x捒RZZZwoiw mmm6mTPPꂪĉ%$$/{Rw^uCASSfda^_伶ll{?F(/aFLL--`Ƒ}b?=l-,,Ξ= @KK `Cw ehhJL<<b2,g|tСeϞM;QQ Zs|sgfVr[a1yÇnp66||ZZڹOQQ|g~} d!=HK 75 J'&ϝmE`` ;`03tS),̧(c/ M3zPPGF8q*jFLf[ڐ%ʱc>޾XCjp*|Pg&w˱c}FLԩW%Y3ѕ<<ܙ66֬B~xWta; ^xԈ.4x({YE1._N:{6^UU*6v)lp`0?~E˗8Q]]z +~w0!JJX,V(/ﻩhi kk-kk>|quYYѕ+88LҒX LtvR j33+32*OzE$v *h)c0*ĮO?>ۊ:DE26&fF$RW}}[}}Gkokhh:2BJJHJJDNNDExrg'DH^#d0o K[m ]dÇ{ĉ{>}TPPիAAA/_677ݰaCBH$ʕ+ׯ_ٳwޭ_YJJ*..nKkjj644@Ϟ=[YYmC&㉉QQQ...Vwuuݳgùs.]ŋ-[XBPP{] FDDrHu[eN>}m eeRnnn k׮ɓ'?~ٺu lhh044qa```ڍ~iC`~c)#PHٳOް2(hŀUHH$-;(B[{̙:ff|!!!>t# ׻+o~ =l,X͛{ '%%箮3g}uuֱ4>>>o޼y  ȑ#zzgZN&Alll2eDWxennnBBʕ+m&&&VRR[YY似gY 3;*../..%~Ŝ9  ӓm-@TT`&M}k|$'&&…7ZZSV2c~~33533]Y^ޘYZzg<&ɛA+ݭG-O tHI9ΝKή~ro,,̧-݇W!B8#jk[p8"*re(84.G1cl{9}}sر _˗/@NN.88xƍHSTTWTT@ HII=ڵkx֭$YYYEE'Nx{{C6lpqq޼ykkk+e2d2oͫV/t+##+W`Ŋ= ‰'TjYFEDDA>>>ʮ]6nܸu֖II>% jg{$RT72P(t/?v)$h$D 3fXZ A~-=l__hd77'O%%%͚5K@@nye@{ԩYA _|AP_~" ٕ}5-[@ DѣG#""?~ DP+W244|왕KU`Hw3 `0)))fzӯzPȈ.X``t:.;*;:=[}}[{;*6m.8񇭭뛝o򢂃W.+ Z9{6>22ly`0ŋ /6~zgѣ֯pvvCAmlr = O?vDznb֭a?n<85 HKM19#Wa366II_X%#3~v``L0$$a#Υss5EE'Or|}ٳ/'&$xK]1 BOI)IH(z'ki:9Y.]j_(00P|Z uuiO{ʪ:w.S-<4JB!!-gdTdfV&$]FʛN)..m}&::@Dۊ:󿇄<&ϼh%%_h8ĉ99Ջ^grxyy57^(7 ;Pbbb۶m;|pBBMEEE(K)--ݺu+Lf 4M\u*9\EEy8@\\<)))$$$ xvvv=ꊈ]>"##_L]B:::?k~p8Q[[ O0{3dee?lkk]ϟMLL>2dfV n ͛oTW~n9}02!ssshttt4Xc{{ɓ̎;FӁ^1c ڰw@,^lQ6 HH(>{;%$708yM޿{nY7á>3Y[YY}yJ?sw6e  82]5~ $af_ \LJ02:~?5tS@Y`_޽ۗ{'SS;Lt∏OTtt-?L ̨s] ggk6(+cINSSUlht'Qxw@߿ 􄾑c(**_BggUsrr.^}իdYY mgg'Ɍniiqvv^xqKKK Fdd3gHKA/]YC@uuu݋Av}6OdddP(TEE۷oda.uYThoo?q]8Mvv2xU9i2UXw;kk-8sejAaD",XZjll>Q?~q[/6=|xYv%Ӧut`|CUU}װ0oӦ~=et6F-?qw7^#;HEW~o_|Ѱ6 "##}x ׯ]VEEEHHԔt ~z!!!3#1|"`B)XONyfn;;w~>eg'0000SEE!|XSSsƍXooo6V7`P.m7OoӦuYb|ʕKm70PV}]HEE KK GG3/ϯ{|OAA`U"":hokyUUO $R׺uWHDTN))an1gs7@C%Hy###???ww6Ν; HSLsrr|}}ݻ7w\1 i ٳ/7ԔW0mʪ)8M74޿[ނ+Yc زfu5.+++O\~3OdX+Ç?~#??_SSё^ NB&OVb2⺁>xyы޾풙5ll>z>."##xaPW<|9c"Òo﨩S\]o_GљBֿ` p㶶spb ZZҒil$hrr˖?៱]/dnٲe቉qqqlٲ;66իW P(T*3 =Bwd2tbŊWWWϟ?… ^1w܇D*`וظn:YvmYYـfMMM uuu˗/@LL ;w=Z `+++ 8nݺ8{W^=~xԩ;v*o#_/'x(ᢾ{׀+vv/^:u*={vXX20n/((}MAOOOݻw=fw W rJWWW333if< ?z=qőj5VR鉉Ewܧp޽xLyPPӑfL_('ŋ|NR{?ϻ|9IACNn {x0ǏC?{hO<zz\KK J TUUx\1?s挄ŋ׬Y#..`V-4mڴiBBBD"qX,v۶m9rDLLL]]=66PKKKwoi---NNNX,VNNn޽4L&{zz L4ȑ#|fR\\/''7zr8r$NNnρ &G>psض#G êwVZZZ~~~ݛ[R;~FF}k`>t/;.\02@l߾H$ gͰUAK<(;mE`Js)UT76j E**SVڶ-,+ {==#FgCCۢE!86q5gg=kIv%{96ˡ>3>(([㯝ƎՏތA2Nk.l/ ᴹȘy\|b66=bcs"m7QΟ?ϏSXX;d?* -x@SSL& HRT*JLLTTTLJJWTTtrrjmm> O򪪪޹sAMMMV{`\\;x7߱m }I,)Z*-RRRJTJDoiQiDҢ6ZZ(ٗ1fƬ}yc03wp>}3;>s<222;v"ˮZ̔bbbׯX22AH_MMMۻZ__?oܼyA>~vZ555III?~ɓMMMwԩSΝacF,`_~!cyUUU{򳻂ۘ!Ekܸq_~}ꕱ͛;%0|=mmm)))WWݻw?3gرc}gaaV_A'Onllz*A555\U!_nB1̉Bj/*.]E&ȜNÜOugynJFFڥKϢ^~`ݫW߄vFמ*855?ܺu+V^>>> y{{766uܵ G:쳥*F V˗k4UNzC$NK+.u23 #iU>.NBTSRatyVwerm/^|cM.nG7gD"e˖osc3VӉV3hnJ)/GcECܹӦ17 ]t%SZZsru[55W?>6""͜z θjՅc3УY":R@ ŕ St^7*~< |^5rk(e*CP}#t3^%%华^5ki:m_'@Z42Z ɞ(YѢEutV[Znڱ#:%4DbsT5 -gNzz$tbk<#`tmo&ܑnǦ*Zjoqm w,5y4rly_J(,8,W\`0q}f,`\ -b8s #88>>^[[ݻՙ]+*//oϟU+kuQ.aL&a׻ߕ(~YCC#''ᆆYYٚ`{myOD\DYB"0Z]}}}---[fffqff52f0<`TBqVuuu{쩯gXD"dOh! IDATslER?}>~jV~vWpDѐprr1/*0 3W^mٲB\\HHTv ʂadvxE a'^a2:uA2hB"䲳a5kVXXR{ n`/\@1^lաWP"k׮::qU㯲hРAgΜaWHLL=]1~=~ky̋m8a-U1 ,C\\׷cŋ***]c-PJ}=<|֛  :#n]ŋc|\gGhMU[ӊtUʰ % |cM.nG7gǹqwU[")esCޜϟAv돈HQHY|͜cB45W uݺ˗iD&SML6$$YYYJJJ7nI7U(ڀaqqY]r#-g-MH$j|cKM&&2 ]n[[Gjked3L謎HMǟ(F )+UN+pGWj۫hժ%Mx}d.‚͂x+M4>f,`\ -F]]A>@.\quG?IV8\|1[VEyiPP2KJJruuesԔ=x[fzgASy[EA'RTT\xqAAҥKم  fff %6mZ{=zի5ӧbbb755t%%%8b_~uss:t3g߲ q- 򘙙!C?A$ҥK988lڴ)//oƍׯ d!5w[߈\&`qf"-!++ᑒB"K{ . &ν 8f/11 ߟkq(m߭,--Qu[u"//Z8j̿V?>++Ç)))7n`: $IBKrss\DjIҐ;vܒ[UnCH&Zgf)(Ȣ"Udܸ=c\zXW~)<|҉BPmCGkζ0l)D \`*s3.uF´a|ST yޚG68ܿ_0nܞѣcbcYtΡnu봻wW=9y_T]lo&*001)/}ܾG2N_Mcc Wl'L,dx=+m>͛X@"II/]\^G[N޾̨Qm&3JKKNdu;8:$d\hhʅ Ж؀/^&%6,:6.،\ACCaݺ oF]DLLl[mKmxe@7Vκv흳+Wޠ-QkFpNHC-6/'t!]9rrYn}!M[kˉYI,5y4r_}))ooKljDY1.CIII]]{捝L7 |r[Uƣԍ 3g5PUhg2}s^ AЌ3\pJJ`?~O8Z S`6 aXs<^.|ϟ믿֬Y.DvGWY@x--R$77ӶBaXW\[p{]]wussC 9P(֭{ѣG߲ c ׯ A os0 Ϟ=Ǐȟ fH}uuuqq߿#}M[[Km`8Dp"/sqq1c d?|||RRRn޼9tP7Ȇ˃7-*9<44eRJr~axufr@Wh?|PPP*CY9(چޞg+Uϟ+W޽{ȑQQQGsٺu+gAŋwZԒ!_jӦ)xOݖ)StfZ3|a޼#dem3FtAE!..k„[`M֭ іN2Dh9tr_quƍ>m~}E@Ȇrd1cbK8rAvw:{/qq@#"*ڲ&ł!Gs@$5`99)44#$bXXʆ +--.@8qp^ޯ?DXm6\v=ڲDNN*(h7AA.yLG[. ..lF//K^;8l9XZZ.B[`03f={|ժ~~?~Ԣ-a`llyݏhi`teezG6??}$!!Ӷa[l{tx> 𸔌(, YQWWW dKY ۍwAД)Sbcc[IIIt:]VV#8^oӧOc.>o<:o@ݘ`@"?\}zXXXYYY^^ۑ#GZ;wnxxx~~~~~k`ƍwF&)))++˱7<<<~8R4 R((D"G[v#o޼ٸq"AgϞmll3 g}qcʺunX$~ժqJт ֭[wƍwrP1vVT.J(>[ p``… !Zf+O###+**\]]ݻWCCٳg777tA=SC0yZs0ɍoqkχ?|f4*+W̛`oe߾ Āo7o:mP}8Q-p~ dDmu#y&'87B <& B;?Oī a nӧ)qfy WPZdeAAc~+V%--y裩SϜy,6ӧ_T~**/^{{ Mr@ysJۘ'+ D=z}}}??jws˱  WwӧįNQ[4k[><4mqz Ĥ DIz4Φrr،<9&aaG\y^DN*(h˗N޷rz4*߿|AK{v!a(k+JKkƌٵo_H)*ʞ?ap=(pW9;(ڞCU+WX^RR___???))qݭL\Rr+aD6 ȯ" o7] *A۶m{ܹs_x|yf R&VctYebsMMűc[g5y)g```K,iyO"##!:=B`6 oStȫW45W}kۧŽΡCh4 ׮]Ԭa_IIIYYy$ nDZ577]VKKKAAǧ)o d###,kffv i4ĉ[ ֶ {ׯѣG}||_YY٪+Eru%$$驨XB0hdddlaN;99p89ؼy 0 ͝;WYYYSS3$$|KpE]&xy~NIIu)H${ŋq8\SSl̴}0Z>inn~QCCC/+>|_K+$>pNDž#=A3Q`ĈpT4m˖-8… пap׿3J)))u[6f@q6-iJ9sFJJ˗/l11Ϧ5kXXXHKK5j̙cjjjݹkH$%gϸ))oCrrayPSsUNΏu55W-^|f vf_}~~/gD.* [ mW0w̻Ɔ.LL&/))AqnBrNt(3̳Δ%}u7{…Cܸn]gEL& mܹ+V$o\z؈ԛ7s[ϾonN1PA(ct`!+7ҚNٷw zEyy_>|ѿ;6l9Z?Zͣz{7xpZ֏.S6d#U%*6LADNNGFt$AH@i|b6l&3mYBmmSttC7?RhK$p|)H0 LWw͢E=#4СܺmqZsD O56v`#F:5%oWQU[v0`axxxE+&lmknpVMcG ?>vԃGN/]zvݺki?~ѹs/^}{fΓ'_^,GQQeiiMCI]oO;vW`%|oN@KKKK^^͛x[>f2322RPPpssqㆪ*ܑ[KMMYkp 4+NSSN'(":Q6/e"++ #G*o+ؽ{#%AٶY^FG}Qv:9lم߽{7$b6mp.\&Z垞G,-'&`;QNNNGT˗/mll}]<{0A;MSTPII Bv>NNNf?A Ћh߿6!_4߿ٳ#˵yԨvyw7~bh4Ν3&LDFc<~%--ΝÍl'L8׬ueاה#+o֭\TSRRF]{:f=ߩPYI..y_bb##5{{;;Í\] @mϞ}qWu~~hnHTp maxѣGᅤpvSV" 0,G-7ow/S7>vl`q1ې!CQ!JLLLNNs玈5<|]Ǐ[N2N՗n9>mqBMMS\\VBcUU+]grC[(B>\*;ҬYf9hk+-WTV6޽pᕣі-:1<__$QVVI33M4Eqrlm;BNN'v#ƒ4:A Pt&D%it:@ LF&Stf{}pRXYY)<^H?rrR8/#++%++sCnD>Y%XYY!^z5:::'']8·ìرG{{zS~r]Ezg@D;]GRIIq-xaL3#"edfR3\y_q^ R0K^<8g ,, Y~g͚{?-mnO7aO@1S/\xlKhD`;3fرcGtt42HIIsizzM| AIJJ ]~=ǚ0 ǡF22Xoo;oo߫/^|}}2F0uwD[@Ψw={ئMƏ5!4tx98޽zѢDwLI 77өTzs3>RH?00m) +Yic{Lܹ+W?xpN/^f)(ڒ%g=+JH7]ad_|ee+zYA4dFF~rrvBX.r#"R!} ?t:3+sz{򛚚_v0M冖41QīU 4˗ܫWߝ UC\\С9'̉KM]njDQAKKqiܸ1%>c==m{%CCɡ_(NJzfͥV;PX[޼2%mttZzի; hկpcc3#MMT&E"Qt&B1$fB[$qǎt33M2bD*"a"(OJ`XqYY4!B)(`0t3f!myDUT,K2H$*ԌıD"B%)ϺB @!  h eedcAdeed䔔z}-@'G3ffd2yԩՆ ,Y8wECyѢQB>/ Ĵ͜K'>΢Eg**iimݻwvF@2Ma IDATᄒ'\\92WƦyyyccc,T˗/mllK@7/211@:27(A+%76dר#Č3p>~*R^7<4t/u9ujڢ &]iZڇ6j[yy)-sH:v1c""'UO˗))o++ *>}oUrt4iK޼)ykCYNNj={{{{C{{C)v7z7mJsgAB;ر\]q~hnHTK ۷ 8ѣGݿݺuW\111 T 6{v\YY+ut-@/61Q 7yU !99ҥ?jmm fv<4V{=}ZHx;;}d)Jet(4VZZBZZRJJRZZRJJ@|V$;l,RAPjҒ?)GJIJw89AX57 rC@ 2@iYHau5痢,ʢWWdzTPQPUTQS,??>ŋp}}^ۈ "1i4ưaѓ'[m2r Mzgqɯ"0ۢ@wXy99?lltіg;|ط^@GQ;g :ld0T*cSoߖ\z PR7o@[~ȃC߸gcp F:6Le LY͵>}"̀&}[3turW}\cN@H .*|$;{rrvl=IIM ]0GMMӎ/-`ՋyF!STTdddjjٌSY&)))iii9995h 䜂CKK 1[?211aׯ_\ { 'N4MMT?ʫWo. d**Nn[QAؾ==%孫렝;1$%Ž퓒^\W“HԬ!CVkd+  ҪliRQ>}zXX؞={ŋ삃9v2nܸpvaK,YnCnnndd$R3!!aƌ  >qD}}ƍ}}}y"m xdҳ]dkka}_ WS/2JhX,BD=p~zeeC~aHIzBNNBo ^CqK=<HN^6pdII߽+ݱM##6ȿRcHISɓYYX EEYUUyYYlBJ8f)Sm@Ȍ;npw gj viÇ[_cbf9Ey@ex/mm%UU5kkI55jFLgWVPUUũȫʳCY44 jj C !%%!+*@IL|^]M  @_ĥd QL6d۶s^_?mYa3xpWΚus|3ccz{@aڦ QD55hD=vYZZ//ur2mܹÏA`aJ*+33 Y3 TGgv#X WAd2;v&YMh Wz*{UUy䫇 D_=;dӦT*&oekoolja_Zpd!CLه ѣә? vA0|p@GGgȑ޽cGGG؈yzzc'X,vƌ.\bm.%%E֮][^^niiy…aÆAhѢѣGsw3g_E"|||~ն/7D&^*"uL{0|ӭ[om-=|򖅊s̑ qsslۜcrlٲGG]v@< GG?-E@KK19yiO;ĔС))AO~N?>v$ImڋA>rH L;ZAXEW};@ ge;f@re8Aw\\vkn 420a!zWg:eRee7N ++++UUF\]Md`2 bSVSkj*B 'W[ۄ@o_F`Ж+k BҪ473Z/1XļyN'O>Y14TMK[r} Ç-QϦjՅIӟso 釶8`N+(}V @2 ^ޥRk֌}i_OOyԨgϾx̂wJX ggӭ[g&h(+TU AJבNb3e xKZZΝ6mJ:Tzd+\y3GKKq5rv6E^UX;;͛ÇnۖI:8?͛[BP٠TOOYKKի#^a.˟:uԩScccvqoAڵk׮]J=... h… .l%!^xٳ-gH?2G&U[Km!VWkj55OjߎQFq|kBBBBBBK{1cƬZ )z6ԑh|R'..Bb)q^ydҳ'NWhPL `0I$*0 )0L&L"53,`(jFFAzz.'-##I2tL8VRR\V+))!##RJ((HJJb%%88`0 2!2 1E w0oׯ\=o^CEd011렱coo_[qKC-:>!޽sӦ)3fء> ("--)-ޮ5Fcד*+jJBYYӧ_i`G0JIIhh(54tu/%02WΝ$$D ;)// A ops\ܣg/[c ?]CJʀF^tuu?W\yxĽY!_O/s~%KI$իQ4 J2D/>_8pӉ!)A&77q+)jatzMSӫCde-Y,2:`$M)B~u(HHtſ3--7!þ_a޽jwZʕǝqF,Xp@UBz43޽Uɹ 2PN >81RXl 3:߽7DR۞CmZut )2WyT.A>xxEJHYZXZd2YUoޔdgt);6 B>Bv3J- _A%wOBC'!^}[윸Xjr[[aTFmmSeecM TUXS_hJmmSmm{bII~p**8uux}6mP} m&KYEAO\vm޽BcV5553DF(J]Uq}=yPq,ؙLKZf)A"L}/7oxqq٩oai;u l!&qw4ݏǎ=8hkkt- ?b;o]|Ө(A'!8uo fPWWPWWlmaPQA󧡪ϟ F RMRRҿN?r ~:"!h &jF[G'G/_*.\xg,IϨdLJHjwn,s"[(*ZUL???MMMc{.yL{I bbnYmmH2ajjJ""0|0d۶t[[#G|Q_`0X11}8{=%%ѕ#ǎl+&TVF,+k*-%4c0)}}yGIFFMJK}#~XVD2$qCڮߥK}P;w!CSC\\)] %%eggVCB.Ο4mAHŅ 칛EN/sMM_ED NB^hn?}53 ##_mtt4[O >5d2WK^1rpP^9=azNҡCrrcLuuqg&i?~EY؁+4/g<L>Tt8yy?KJL{bh APYYmv7oJ23 }(&12R7pv6>XY&s}"aDepp0ں&My)VSϟ?mAZ`

    w8;n2P;u~ QSWS<O)ڟ? ?j/Hlf7QQ߿_P#jk;rijB}cItMo.8LmY1e+ qL<&ʷS-J+,L{.\=LX@ou&w`V8ϟ te&3` ::J'N{BHmmSHŬVC=pMMSPй[NG|z:_%?~L63D2D_MMSNNR97TWXXaUkk9r;q#gŊ GFEyNUqĽK=&˗ߜM'މwdd|C**޻ٳ"5tnn jk?|ϤIG^ʕNoH\UE\_Ǭ_?A46QշW_*.wFp'Ow/@XYLl5i2ڢivuF˗7Ï쒧Ob`==e;;dv*pA#[7aɒ(k1o@?{7*y>}ѹQ߿W\yϦM;>57++++ 9hhTU5VTJyyq %%2 MA44 ٿݻ \lmmϗ<<kŗV<6)(h,ڲtGN~rW ) HSɴӧ:@BBl1-Z"--֭<5r//[7"b*..w//yPq͛o|R>i: ǏڲڲZ䠴EAAVOOYOOYWW%ld&'Bu`Cj껐?F}+gqvޢEg][noo,RZZ3uASS |ڽ8oGUU~aG>."^̈ơoO775܀n:ΝEL/&fƔ)hK$ꤥ冇_^bP}Ł23 ֮M};d@-"$w^ޯ7oJ^V]M34T?cz˰J]RTTq0#~շ6\<rA`0˗Ph;vx$*P(4iiӧga8+ˡC_6f٭[!66]ߤqs磐\`2Y33 23 ?~%%%lutWAȶ ׂ$%҂4yiB PᴚٳΟuÇ}AnK͵tfqq<}. ))>vر4 IDATL&ݻҴqqYi\] 8.|8a`!y55y$A$%6R aUl칫 z uuu`{ٲ妥hY\yqU]~nji'BSjk\ KKEEuuD]]AKKXVXX=Ӈ647m5A@gxV{< RR^,6(h9GpvvBh[Nz`sd-Lb@˗'XΝ3S#\LYY͛]kL&+--ȑG6ysmw'7uꐓ': t?=y򥱱Y__e Z\ HM}vmѣsyU Fc0I퉌 :+QXīqq1{{C{{è(/ȑ::o`zj>BiiMQQeL erv6uv6 Ng~ G q8)={{{{CC`oߪ._޳g3@ jYj8t%2>񗔔 QPhuu]|cpӧ6֒jk[FŪʫ++8*^YYNEE_?9/ m)z$ 8WT4[ A1ID w('(*ʆO^ȑqqY+Wi7Mx̌v3fؕ7ܺwr̙Ǵ[넇,^w͚&&h']jյw!z,ϯZoF_f(Io<_RҊaXammЩCΎVYS¸BVXZ2<=ml>ykkG'Ra'u먖)YQ*u{y=D3g^:3~S+e}t:Zi-'ٳg2_ ={ݻ]nΨ@E g_||֭G/8rd'\"k0ؾ}L>+*x.w -##ӣx\P+$Ľo_ Ck bαT6]aݭA7 ݡII:ujZHc H`W WA~ٲ֭vRjk]ʧaMP}ɤMM&&Ry3)-xիjlXHիUj:w^>^+ ~ 014= ߽AF{f,Uz423vk|]AZtJBDDry9Ų4{Nz1T*.^H{:cHH{ EתĂ'GDQƏ:z/P %%U99%%8;;3KGVέ-]\, 5-a%'m ?sʕ穭%8 M lQ(Ȍbbr_jΗ*?}{ 2 f} ??k (ƍ}Ŭ]SK劶m :_R[+TW֊4r8+T76|fWN\:b˖;Z1l袍@?ڵkŊuk>m ֭ p!wv6 5wD:E@Οٲ]|Q~ˑ bnP(/0+oXr슘蜲2.BرcN:3,'HFFI\\^||ޫW a`#joYn׋7O:x~{N0@vcǞWI[JM-6{N@unO*TYfZZ1.8صGWo-#bhܼhEoo#G&ֈ;w6W'/]z‚oOO-ܴb}0%e-ahǏ޽[OiӯghCkڜ?r7o7i@ MJ*ˍˋ͕ƃ6-sy_ T*eJǓ@ $0aNLÊB&LJC㉿I2$KB "xaSJٳ̛7O] {rU ""yt:9,3,ͭΖ sqa00;zG e ʒZ6,3 *dؘXkͭ!4]^[7g})/u}w,(֭_=s`W}ǂ;֮yxԩS{tw,(e\*.xq.BAAAi ;|ƈ/Wt('N<]{78E7,]zf^Kz77˫:5hѢZ P 7n޾~IIIpQQ츸蜒Z*nؽ;ߑD$_(ObnN>*:q"66w֬Q(cǦo:pϞeNr<4}߾[>A.G,|j޽ nlvٹs1W OK#Gϝˑ—/_JHȓH`{{``n\\JC@6o n0Beٙ3㒒͛gO}X#xqV贯Ê/K?ۺq>{rLL\,+H)TGv H x?`J |+, D5 $6 A,KxbܡCY~~>>vhJ} G"/\0ՄJ~ǎlDo'7… b|I~&t tABn3?qbꏴm۽_AXC$%@FP | P*#0,y\X$ٷwS(Ib14 DOB T"}4LƏ &` 2zOB$)&'Avۛ??ӐgnQ Ri풒ѣ/Ci#eܸQ\y0OK[ J%BtvnbYXΖVmۚ5 'u+ʕ|ܧO0Ϟ=5((((sr%=D$pX˖ŲB͖ bg ~FIO_Br:gӦEwp˖;>Ϙ_{;FD$Rr:d9O@eL&?% E4ByxjRmD"! Q/,)@f^ȥP(x+RDfD"Wm)jNQ.FFz$!!o=׮I߱h2v!2p4}P80uj.K؜=>y0o)ن6H`.W2BQ)O#'b$ؘjdD52S(FFTcc\1ua|7n?رg&K8-OnjJ[ t̘ q8w3^ Ηr/]{_(gJD&,QCX"RA Lb A4@L& YP(D"a@y [P@(%$~x@XJnnŕ+}KP>˻wCQs?.mvW(M8~p b'߻&|} 0p~aEnn%]fꜜ !pmXV@jbH)ŵݹG ww-8صe򡠠4? ͛৤ SS{۸Xm%K&M w -_~9%Ξ@P4a PSùsK\Y~ؔ)#_ҫ=~w62 ¿&,XpŮVwOj`}ǂujk;v<8uꅿúun1urs+lұݪUOT{, srj`JJj_z2+**`tq͹K'k*qqsVV9qrjLTus6_|_w/mETIll Gztۿ*Yɩ:Dm_||j͋.\rݺ9Oе/=-l|\JEVmԔkj.۷SǏOG99AA>\x}wJlqqͪU'LHg1XƏ?lfF߳g|B( T!2'V*!U2Z\]fUʝDUR@j@*#=tWw'ŕUQD.CL!UTkN]r*N @ZPP\P I--;ڵk׆DWf3]8e0 D J>^1_7 ^:dyG1c;pJ\JJZcjJ*ϟx1k8 J7aڟ~7oJ عqo##|åF| '@ Oj&'L&EBa2)p> IDATG+>\0nrAg1Gs7-/yH$g1}zg +ƍ;TPP}"` 3HR>^T*?~ٻ  JOVi)u ðBDWwTBdDbv2d,ǁ*0->Fx,W@d2sc"^ewxܸ7oQH$;y2jއ~ɓѼH3Ó#J=$DRFo*E<֥c0UW]>TV N'p`.^%P徃\:H-HKSe8.\u P QQ"*niwtǼy knܘ@@y9/..߼)Fc,ڤRDH HS PeߪPjW *fjWCDniu"˩Ek9h W>aQ?QWBb7^ ] FuuzjcOh\+D2oVJ0w/ ,-Çw<9@_6o}?5~}3NlOT\ ШoN' Yg~ Gx\벮 b/|Q*)7FTTN ;vQyA$~gr`CkaE\\^ttA^^6^^6*ŔJ) AP J nFbL&S ^L2 B!q۴163-Ie(T/ WħΘD*!__ɩS/n^߁4nJ=+V =cAi& xr3[[%KPB%\y 'a 6l)) ̲p#dXVvvu"vEP %QQr99X 9Ê L&ݭlml\\,XEŐ!{l׭Bs^'ԳO7o&͞}ȑIx;q^ڌL ZfcAKzm/^Ax ܼ9A߱ qZ;o,ϯ]{K ΙG Gt#GhEY=ص+211?$}0]+U$866wQQoKq8m@K` A-J_.P%I$CGǮr%~ٲ:80ѐ@&L8pԦMԀ\y~ۺu?'5ҥk^DҾ}=&LһJŎc0}Ύ`((Ru23K%-8 T%v4f*WN'jAllnBBH$eZw(!z:!~RѰ)-nZ$l_y7#CBYZ2׭glOE툦 A$ؘ<jj468fa9eJПy׬uޫV I.GϘq4zßEBCկT4.GP='>Q@}Nb?h8m&"I8R43cj<7P"nE"""R&M Nu]b0.)*)* Au#Gk ˯^{}=H3NoEXũS/;ƌXP%%wG?mbŠg}Gd2)7oС (uy98wJAȈbYZK۶fvvW^AGR$[bx{UY((( *KI)JM-JM-NO/JT*׾S'{;C^nLrJ%i̝{ִ2drr*vejTRxfԠ_ ӷ7~NO $+OKrFH6Fuڵċc߾-uvn5fL#b`iRR(vZZ1qw bZ-\xEDPtܳO۴iر]rllO?MJZEOl՛7N ZjJɀP(<H RB\p"B.5a'V(ObT@,F" $N'pXcc*a0D"B!a3ndBQQʕNֺI`04@ȟ/bYBBwrLMi.AA=e`$$ ٳe..ŀeii }'66Ǔ}|욍E!!NCaX!}a;Lw 3lx@} Ǐ)HD>B >_ :DIrT* " T?@ZPծRT*+!08A RT"1 8~ƂFp8,zBGa~ $J2+Z}DR\,D)0,qd2Av}*Xݩ4BbХT{VLX,yrLCF"U3oR12P.m +nx}2Q~ie黉.[6@[Avyyn0-(ʕ+=Iyj%B\\С{V ZdG;fŻw6ݎL b`}7T•[*+@2xOSs25KiE ##JbYmkڰ%'L\XҸ J%յeb5Aݣ>3k>ozh˪El?ہa]ZXu] J[[S__{__;;OOtOg,XpF@Z.0kѢ_~ w,(dd0H׮EH-c cXa%RtpXcǘa|u J!)p]E}PQoɓJӢ} b=_4W QQ'O R;;3 ?í-+Ww Bė/jjT*߱{wCO.\C.(T*6Hg)+oɓ/ʸ.&t 2:)n|Ӧ<'bD޸sgGDK$2H SK>QQko}~ۛkeGԿNssիzQk.JrkgFoߡ_ׯQ߱4+`X1a6hQ*)6.)=ɒt}P(۷SO{cmmҷG~]85Ѵ0O_ ,ՙe$pVm9t˫,/UNmmMMڴ1dؘZZ2۴1b"%PXg-#LJ#PJaDQw= p.`'t:0d` !Ix<*\'WL 8f^Cx`غk(zH T+hAjWU-c@A@l]\v &ch$0&bjJ75,,`Ԕިe tRͭڕRruűsg.]QCBu{=Z@Z.q)=Ghlq/h:D !5hԨ]:921dW*>>v~ #[9p3NO/= euLS}o|5dϺu?}$#u+ʕQGkVr#P\ {{@nݜ-,~?0' hQPRyMneÆtSL4Xb2d KTQH(H!pT* *dR(: B$ L&XP(g2^YfBХ͋;ΝcDGgGE=z[Z154|QS^΍bR zvuF5 v󄄿1w1#G)/^pR0TO t&T%P*HE")# `&JyW_[Y\\=SVUBӭZ662nڨM33 ĄY Ra @="r+$@."d2/D2 &%p8bH8 f J$?nhD<i4Fp2$, X,c|OKB ?5p8!\]15馦4ZV֭mlL Rշ+--`յk|rDj/`Xל9mËYZ|௿w,(͛Q=yrU6pW7\m̙: 2o޹Ăgϖ53M /ܻ݅Z,K ՄUU L 3d˗w|PU=P=~<uKT>~|_ٺu#STTYfddgr`0ho#ρŲ`ZJв2̙Ҋ7n>fLg}Cdd5ꀋ33  VcǃS^[Y3 ^d3^Mx(Džy˒B)ݘVD=z}oBgbbA._H4 P:,]z uy H %\îD +FXюz3L@n(HH Q 0$Uo'%hΜG4W7Y@P@AAuT;22LTg53_Є /IN.| `X1cD;$2 IDAT9o>xo,\ 281G͹T*æ]6$䝀'xb ;|~ F#4Z]U6m*dlLi@7=zlnew>~TE:ڰǏOmAP8Eg1mZ&Z̢e˝/X+W).rZ[ڵkݖJǪEBM뮕֖/zBr_A>P WhQP~IVV Vl N\I"S;)+JI62$: ~3d_ysfь!WH "N8F6?sWfoBg[2 eVttNJJ\8;͹[7.]z~YpD/w HM1Gss]cl*\`Uz,eRX,r"L,ee/Ztqڴ K ]gJb4>rci41ئi+BR@Qh4 L~͛oGEhrHv/HiBܺ5~R0y]~~˗ũ1rȳko8154ԣ1? m߾ ZiMT.^|ڵsfv(oHsiƍGw ͓Ԣa q9SYߵٳvvf+V D @Mѣg2 cGP,ˑZ`)(,KO/dqeq8"`~ 9Qml :gN'Hx`H" 2J$ B!Q$A#*I$<诂־1fD}"H`hyH q dee/jk4}6;;1-wLT*Zf>vkNoEvvȑmmΝah~߄]TTٽqZ\\{sbX,AG5m!5JT[eF4*.ZtIJHEH$r!%éP=$.T pV^X UGB`2/_f'&Q(Pɓyy~R.WԭƉ-]_KI)Ht]@A RNY(XJJjkʸ ukc{{3{{ ssW憙$JsQQwJD|NAA=ܼPqٛ d3F,yyrI AЂ{s"{{s}ǂdgW]S+zoK{%nn͡3 ,Vv;bjk^vhXYop8?Ԕ6kVϟ֨[@zðb̘ї9(=س'21vڴa|^G,=~ΝG2|^ݻr8"w+[bx{EI.<ti\Rɩ1‥%Y*wG?}KlE?<<ڵĤB++~8bDv4vUU>OWW] -xƌS2Z#F췰`\8KY Aolrf C,.WtNI^eS(0#:4Pe%?&& OK+b1NN@β-_`u0<|NbhXlrP\sO)HE"…MձϠ*+WWm[}&@)||9Y=A#Hr_ʎNK+kk????{??vZf ˖-w]K]@Z.ܸ)??nݜQg*rbQxbFDO%@zIrP0xn̈́aD(}5o hHh4"c04' Dל0d H&L D FF I] ʗ/Ξw/B!aԠ&W+?*8x 'L誳O?Jo/4Lbݺ[ǎ=~ vb#G9F#͞knR(-8̙WmۚΝgN:inθzuv4UW <=W??G7-6+*~}<]ͲNA_Ϝyul?f;ˊbPDEW]1z%LAIIݻSalLի]hGnɎpj baRI$]]X,K`qvne!(((MVVk]^PPY*xc+//̀tՑ鑑119J.4=$ĝBS>!+<8x'K$ 3yq\q }=ynģV 1#X߱4:YY#Fwrju *hmJ|EAP.Ǎ2o^b). ذuQKCTΘq:..߭vxsg_YX0f1qb7G>pSK0=o߾?~<ڵD"7vlɓk M ObCԡC۶md2yJJQaaz%Fh\t__&~GgՌȈrүz|RE"W&ܻ`]0ƴwaMdmjH  U "`CTDEcCl(]k]w! "6((zfޓqx]!..8ɹ!m~񨘛~99yx\ ( ikcX˄;n(\Od;2Oxtq8*Cd]]]kזO_ǀ KxWj ʪޱcچ b7XʰaN^@$'))mmL F\D2}zjhc<NiudrYFF/$p$#VH$^|IB jogD": l>rL&W Q,PLs|Ń;2s ,}qh J^^ɨ()*a0(4ZA^^T++ILdX%9 FQIIAIIA)(ph99YNIfgLv޽5*+dJgV/+kMp*+[\\^r=3%9nrgߞ;d޼˾.,lr%ٳ4uuxb ,J+WPWWٲe"~%KVV| ǎ=`/ .BC7?tMһD5k÷|C #N|d֯iӔ~%"FoTsWב3FTT4† ?XKWWNb16^~G%%yyyyu99LttFfcgmgi9LJsZ[11QQy4Pltѣ5BZ[||s?)0ll>ݣ~vt3g#/\xE_$IW򺮮ҫپQBB XAvC?}O7|AMM۹sm2wn?mׯ LPQA_?qqD輛7?jŋzP 6744-::_FFl`F+5Rlee9GH gϓGȾv1@`Դyz^b= I}0X ] 'x b66zΚeK]JK(f9++]{{ñc mm&̹ [݃N紷ژ](7QǽdUU1r7(LTOH(]&-o]ݞ\vOJ<=/ega k+{g.`=̬ ߊ@D$5$'''TTT4Z$1ml@ʄ5j۫]\:\O>%'s8VVZ.9>1:aOX|X{G|}$: P(y%%E%%y<BmJAU o|}|/%%y%%ee\P՞Jo0^ؚ\u60kU},P3 ]\.sgG#$?OrjϏ\|\< \l8PY( 0;wϟRT_~d;>M}|dBׯfGnmeΝ{QNNٳ~~Ͽ .ĝ;ŢmxmTևEohl==)ŞN51ʿHB(,l(-m Eڃ==u"`a1 8@@ͭͭȨJOPrrD"JFwD@D&ySZH g̰ts3,oĈk;:$OzE6YMMz5 .\xȈpZIV5zUMI)&A0lqt>̙E)RS+ϦBM[Z9gN4{ѣ' ijgdTeeU\U21bici9@ηt?ܣRX,Ejʲki46H$D5d Y:#aC/d2y}!b0B" A,x6=(##tb(YYY1"'' {ʊ rh"mAb<49eeE|{obM@N]׷Á*捖E$QSSFyYvjjeL̯DGv˗c}qؼ+~bqTTŋ喖:W;Ν;Z O p rr%~CanyOj!]x1:;po㍐V"#޾). <~є)f#I >_XW;X$,ZD"LBfedeUgeՐT*KEemDv0]!**A'O6uw0qaٳ22okk^ 'XJC5"b$!;fѢ&&ZwA-,{|߯p`XA10`{ QQ;@E"zp IH " IDATk<55m׮޿(\ 2ҥ<!V_ش{>+(-\Hv>\GY$GFf߻Pfdd 6lرpV 4x*{۶__oމMmme7^%+i*^^?g~ƴԙ=zl랭Pgyp$\y#32:ޮ LJWrv5wR'99SioO}8l6رc+͉s^LM=0d4}hVV5[RBİr{uqbǎGEE78!0"b#=u&9j((ȡъhBG9I !RAI&AŢ󿩉>f/틫YYՁ !!)B8jҢzǏo#bZ[&pt4pa)R~ӧߜ:aooǟy>_vRLq1e3'GG`)G'Ob2y+W"ɚ؂o;Ib1z[PP?g΅ L._^֟~q.Zdy3HbʬY'L0|yXMHbɓ3ΖL|ր%2272271T,[[Mj>}f@Qmm`l),lͭex"`lbl2/|2*k'̘a)/e>܏-<<3,,A$j݃kZ 7=L.#˓x<^$>?ڵKJ~C2X&hnf0Z[mm̶6Vg*FU3hrԔnի**\Ylb?U>RVF?i9?L[|߃}UQյ 5Jbȑ=#=F$lx H(1x'A/d2b|\Aq|Q+AT-"?AKA#cOQP`Pgˇ<A >H RU@]>{BhE!-xJbc .~钗ĉ#G¯^=rcժU ÇIWknϞmqd)?8NӧP%Kn⢡MII̙g]]-Ν["q9 Κ[OJ,o{/ 7%c7mDbb…W6ovپi-H||ṹs޻׽6 dZ[y tԩS[[yoBP(cX tŔF#x]Q*+[""2#"2ӫ QcbXSI2vIQ`ϞvSψ+Wݻ ,As2/c޸J~@D$:~tɰ|6fxV PBׯ~ \OpRt[k,_~q۫]og}Ӧ)k:#-0hlgfVedTefV46!Q679rfFii̙g/_^neӱNEPt Y_t"$-+`;vێ#ݰtQTP HN eeA  ,V ((a0N / x@Y{@x< 999) jjgdTdrYFF/8_3kyCg,FZHUqd0&mEn?X,~"MMtoo͛t\[z>_S۷QQխjj'Nbl 6uuŔbJq1ƄqZ#FUA-!bq~~}lldr+052yٴi#uHi K Jh&3>I&Lz'冴+:7x;>Դ{J/1qɥK*9 W ѣ$ gCCHAƜ6﯃rO~6WבϞ E֯ OMN``B\\%K/mȨp(u&Ln {7V \!!?ZځH$800, OO+ 'ˬׯst̙8{TVedryQQ6ҟm{T ۙl*E)Bfk+s( %1@UU754T&da񾩉>jO7k# %.^( yI_/@Z/AsD"Al6@$|As6;7: }f:b2y$VPSVVRQQSTG|aQJl3 :?deep}"**oeaAX-F, UTl  HIItdvъ(A222MKkjbG%}+C7hj[[u{T 4:8Pæ`pΜiu\tMMt~~S  湺"pnSe{ݻWWvSɭ[qohh`Wv\|\I+⨨'^Իڳg&"}%|%W++[^E¡.0;w6(.D8ƍUӧՁ &&{sGZȀcg} 4zZ>_xǓ'_n:u_zʖRHlnbb>r0` ͌†X\@ RVF ;XD:x1.fJcc ޾ͭj!Ӧtp0BjQ,'%xdr==̘a)`޼&&CW",,/09y?B؂ol}4z|G;WٷizzeD6 As\bQEZ%'v֬spkz?MH(!CGΓ|^daaCHH gڴ^^ucnsCvvX,Q<@k74\`iADˆ˗c3毿t` \f2?V&BPCBRnX_`e?mӚt:'::ի<oc3|Qnn?i6DyyV&hnM"HcJC}S[x|n5k^çRY BT7/~a VUh!CrxL{B=orΔ4nXT԰gի=!uaa*L&W v=: t:W$up8$4[,B&uJXGsH;v0QhEB:@JVD ,P$++*ij khj "Q;>()}lu:TTPz$>d@" w?GXNaM't̙clٸ#o`՞bGIήqw?7evW|I{;kJvv?*nzrZl^^ՎsW_$.53gڹs;>M}|PD}e=36m ;wɓ /G_%$$eǎGEEAHen}Bi-~ ~}(zX_|ʻ ֮uVU\Vikid (>NHˑR ^9ٔ}1ݻuuE.Q8EBFjQZZoaBs*˓JҪlX΀D73{q^§O{ Hhia473--Vfk+`2Xps},VI]]E]]YMMEMMy V]]EMMYMMy e PF,I(O@aaKM;\i!?@ :wٳ3g8}'^CZHp8<.s?Ņ ŽO`pH cH$ E  6gN$]"A:B?de߶*Nh0N%dKhrrQ$x<>`P? ʚ(2[Z36+3Xleu`ݺ ~rh@ߢWBBimmPGG"ogg0@N0/*]i!_Bsoߎ˫#-SQAbLnD6)(uS:~ ZzGG"ZenD]#B L9Ӧ\y&$'8ӧGGBvF!CUPP?i_;{O!V[VV,ڵ3g`0gϟoEdh>vEDD̐1.@ r߾MM֛:ŜHBZZcQ %OkSӡmo<\qw1VFzp0Omw 9o$(*j89;K.9sC/ I˖;|xn|M*%%NN_RGAԩ'G \ i!;=Ȉ@OdrCBR⋊F_?q$#/F}Xbmv3,{:G$\NP?96Α̈\AК魭̦&:lJij77[Z--/lD] ocPQVSS3SREJJ5Qlƍ05/~,?Rz~\Gp8|Gб 8xm8N+0@aP(y%%E蟔J@䕔tDq<dz .(*jʪPh"@ ^٨T֌gԔ<8r8|]3eZ(խ3gv @CSS+w{6ohme¡+yT*KOOёbl<~@T[7l),lͭ%p__PSij~~ ŋ?&|ibða};o'OlBZȀ`Ϟ=R8Pg_PSS~}[~綠{g"Гtɯ"MM3s>f}4?v!u xx\8/_na- AA ,o,'[c_<jx//{UU j N~\[6f%vV߿jnfWdrYff5' p$>oa1LVVQ'O6q*G``޽Oϟ_#~ZZc#-$d 砡ٳ, *b8',5y間&vÅչ+vRRYuu&okoo?OG ʂ Je W(1&,™$6|wh< *b(YYY Eas+(()++BSJddXAJJ((͌ kk/5cc-c!CF gd`DȨ/22|>|fl>}mۃ`pCCSkdDXvn^>v#ETT7=CFhSO=x3={BF9^7< ,,ڵؼ:KKի̱xԩ7/^d9SMƙ3ϺZ;i-%==SJ`ƙ3ϸ_)?yi-rO>>N#bGhj{{;n"S7@R_(::'O68D[{ M,u xzHQEgBBR#OΡ];w>2'O6۶m."J~?Ώ܁ɵ9m28]dx~]D\}Xsz IDAToG*-Xp@]F(99h2kwu=ek i2/44^^cWrJ;d ?l8{F4ŋd2\CCs̢Ev4%˓˳k:Zw]!44Q\dʕA}`pwxu˶m`hŋֶ=~K$jټW㋱X%OO[kk]\A||]K Go 7=L.ʪIJ*8X.GdkߕZP(2o##+{0aMRuum `J^K 5щ//_{~NΞ}~(C<}""2-S:~>r=wXw"JeuN#R_P쯳JZ[|ǂI:tN3c_bMJa†ؼD R cc-"0r04,LnZZ%\Wo4@Zcټ9/2@ga7U:;iggpR_J9SwȨ= g &~L&wlkooQt$u[/\z ȈmTww+Af8 G{d-X֬q̈Fq1ϘLL e@yƆ wOe ޹W _\/C;0mΏZ'Lhbggmz*&UU--)*O&#Fh0` E11AAy lj BCӯ^}WX0qɆ F g|9Os4DKhְ͠##?/^<i9~n(q%%#Hk|Xxݻ 6Lgin1= BcJ r**JcA)(h9eeXáeeex4O ED"ޝ;Zy?/h1(|PNNVWWDȈ`b2Ȉ`dDVdDyyqqE)RQAY[i;;>b=tح["2:+x<5#Fh.\HZdlO GG-[vU3fXJC{*~#σ7"S~*} LHOeV``BBBСK"w=uugϾ}0ip ?)捑{>_dʖ/MDDuwI,3'^޾zd3Ɍ(Ues\HO@!eW}_,4WژOs'L AQZZEdd^\\Qvv %okDtt$ZZr@0s&խ"XAAnPUػґ |^BMM9Rb:.,,׬qFI ĝ;qi!ɓvb ,x8\ H&geU^/yyY33m5nuuh46Bknf46Қ--FZs3DiD45q**8 55MMV]]ESá]REvv-[miAA⠠BMM\5|?&'`xT*X|Kl-9l6v<G@0ϙ'|X9 ŢP(ee WQQ` JC (3`;l'rr+&7dt߽Dmp)FGY`tMSI]];haM"HvvBUQT2@hia\{7,Zd'UΝO>'{1c 8nJ7m ==ݿx&g*!׮SID:zÇGF溸D&zllATTއET*KWW68;p`> JKB ]] 33mz@#߼ɹr]JJg@<-ʕw^eil4i|T]{$<VXxi!2 ۬u2>>IIeo~ +XN\\7tկ"F_\}|z[:t)ܹȔ_п6܍+~j[oseq/_fih`ƮZMH˫};>$$EQQn|ĎgҞ=K-,l>\s̼yc^mjgdTdrYFF/$p$\[zZikƏN^>~V{}oP(T"Q}Ԍ{W;}%\VV֤2qĉ]\9Udr54T,-k@hp:Jc#F(Bo9G8EUC +r<=mU.i /_^'2+՛7ѿ!-g(*jش)y^^Q,&bX,.f` NX<6GL.>\4ZQTQA4Zl,JJ h J^UB+))p蠠ߥ6m?<&7H7^|sKѲ&8EOON_11bleh 6=-drܶANNPՔZ,?*q\۷9 qqE/[xl^wFLxbܸ.,!z#Gƒw͌UU<(Ϸ6֭bbnuٺu7Kx<79 n޼1+W:hk<pZºu֬q6? u{T ׬q$9̙g6KrHW*;w|zU:Cslmm0q tL.G,h쐐FNS(Ghj߽ΝT*BOO=1,-r ռy8\T\L lmǎ5Qb8**7Վĝ;goLmmۺuw)'O.twBZN@,geDDdgTV =F]]9>822#'';E1c[)KJSS+&D˜1K䗓  nCNК ޠ673z(--X7x0VS<PQWW_=WO'^^;i׮۳ܹ^AZpT*MT6pT* P6fyysk+EN%%l%%%%y<ǣxt~55n/x~ҿX6'}{u</,+kR*(S!CML 9@_YE&ԈDb==u[[}oxp*)i| ǥ^DFXqgnur:ﳼUg=!#͝;deyo\['UU16;w΀BQIIcrry\\QBBIs3V& H$}If#mԖ-.ff4]BDEm=ƍÇk -Gĩ/_fԴꪻYΙcá##s##sJ sw8d'5vl.ͭ^L}diC";8c7E*M(*@G)ijⴴ𚚸!C݋hc0ǧM8~ܳ~'@n䲿^9i9?79޷$g`0t:F0:Csh46e0L&RlϞ7(*ʫX% (+TTPx_x \\O^E "3((!)LOO} \/ |#by+VIcgII̙g]]-sw?ϟglpnn$<49_/H ?))垞7nӑ|wJŋCڵk4LD"qVVullwiiM`dleΈ@RT@ ᔆN$`ˈ9:uuWwhRS޼xic{۸q#߼_xՂy?ع3Ç=+F2_~yqZi|z†KaJAA@㶁UʚƏ?G"p% Wt@Z ]ĉK#1дw?,]rހ䇆GEDM=__WD&'%h쟿6UU-c齥Ƈ'2iFJ,PkL5Jg޴JwsSZ ٽ;$$$%"bkolV񨺺u^+:?}YY)Ohl"NSU7m$Y3fJg_ $zర7owR/{ߺ却qm\Y6k5ZoSWOgx m(6v<hdl ʪlM,U,+(66UXg/RUr'OR 5pt$"$5OJMyǰaRM9s.f{-(ۓhׯV;;#-[V,_~`ݻ>6_ [C v{5{Ag3'Nrݳg~~A=K󅮮^^`0y\.c%+̬ߦW B99YPl`hڵsoog]szw<٬g#ظ10)^^mxthEEwdr@ О8Zݠy<ҥK?2LM[Z!m~]HRY_RG< tHQUEKF,{z^bx fQ:ׯАhBZ[Ko\*t:FhlNBPv6g:EVVEh,V Sb;6p84w{X%,һxka:w;e7YayyHFO֜ڜڜZ8@[X fnma.un9ӧIﴳ3/_f]{xft/]:vB;O*νxМUU5bxΜ r!!x<ܹL[{fN~{;I 74PMl|%W++[^OF㘙vu EHm3GCZK}Abh_kPddT<\>o}fij饲%.(.(6N;:9,t:sKiiP(I,oHiiC##sOl]} &JOŬiNwp ONzr|wH>_{/&&پ&L0|yr*{>IH(kZƏ?v9slD"7 _..Wm͛ 5-"-Y2m4ܗ/\nYYSrr9\^\L14$mmG cq``˗Y*+W:hk@=/sɓenjxS$%_VysPH7ortb+.յ);89:L1ׂBdryVVuFF/3FL/lnյ76ڛf:Bkl;7| IDATR45qUT54TpX8#E]+~ԂcÚZ!TR% P^k`vw׵PPD@1]J.aX Xˏk]8gW9G:}ֱE,<q܋ٳ7Yz[CǞX_?Aoa2ii%D"l6O:Y(jRa]Y\* %xJ_F8cE2xL߷bŝw}_y99YY9999< 55E++C[[#[[}yΧ\hcAzkj1cQ鱱[ jM{7͖yGF;""bt]VDjM5b1ggӿ&u^}ظ1i;k3 QPP˗cΞ=@vb] ϟ?x0>~|k(ƍBBVJ_ϸ9zӦ钒#Mw癩z0`̙Π>_ D3/Isu@ ȣGo};|"7\mZD+Tڳg9ii%0 [YR(Φ'=BqQQ-V]VI,MMBd"Zbfgbeaa>)@oZXX3gΠ FooA8%7i`sLL~>,,Dg~Hcђ%7bc  pr:u۶йs]v)?W_}͛M{/&K˖˫~|h* lȑ' ]*IƝL~>=00Ν>_Tqqݮo޾;kl{~sRu5Ν7y^?~֭! >>-ڶkCU=aCX:5DR:")RRR\Aޕ'&J$z>޾ǗG<^sNNeffEJJ1&j=D޾aT*JCmmCm-Z©bRX55Zn.QWWMWH&Hڪd2]mBCC޼٤NX|IIN6ͱö,b4|BUUIHTRWW"ՕDGcEUUUTG{@?}lm̙YXdd=~M885w8ց|Oc 7 `y,/Z(H-+FX %:\\R]! &&Z={Q&{k⨨,t L<~|)|MDJJM9nP~ɩ3 M{{[s͚|(D렼ARi{>ɩ=vӦQ=z`7w?vm=gTU_ܼysG' HϞmu,WXQN>)$z5h͛G눀R_ϋ˧Ri^}d( j`s߹DJ?+yy!")٧"cc-鯣.E(;TMMȑ֊TW J:p󥭊 pMSy3~ǎ`fo{_̬Xү1A;r˗:\D;w|rs?zxukСX@~3Լymu,Yc ,ݭ[饦g:ա]0ߣe*8lccV_{Iگ :G?11њ5y 篶e0۷oǎqRӹ544]{/** ͛I$HvvEttNtrIɩ:{&訹yzZQ,r L1BD  %Knݸ#e45 tZק˕L,A ==.-uue|`vv&u,TͭZ@ zu~߾V :X|6g͢֏ÓHJD:J"Ֆ3g^"#>|۶={@pzÑ:~&Xvvr:i11dd Zn/݂yۺ59)KM:t(B^pdssRRJK66FS:Lп= m+9СBWW㬬 臼~aΜ˛6^l(ֱ7߿ߏU+^ڨޙ;0<++..c.?>fQl? )iڵk"h.[>|z&/&&/1QЫ:INNghOE,>T6@D$*uﮍkQ(z{ApV]/ӝvamBY,ޓ&aAuu\mAAIUSA(:|~ocys\.+cܽ#+kDjnDDd92mT0s*mRv Y.55 cIHHڊw.\3nhq23TggWnͮϒ޽+KK+IO/MK+e2y kk#;;{dw+.Շ7n}jE /QtNi)e^SSL&>]61v^̝=o;ho9˗߶0|ywPЯV%(, 2邺ʓQH$ee6hvYJ57pQ6O1*6mڅ=`X ׭t~I˼;%? Hr_c +"%898)iRSS͍У_?/6m~W& nߠK7olΙ7сr!!iWߕgeUT>>\yxڵ^qバU?K۱QA}t>} 3bcI$1clԧ8-KOqul<;LAA͘1'GsLc!#GfSdLp 94`ٳ1 c?XM~DTT֢E3g ֱylӝ6nSdH$IO/~OҲ+`FԻQzCof"F.+GDNߣBPLL/:^ttΆ  9xpʈlj؉U ͷz&tbw$lLkWt:{K\ns@SS][ڇ՗/k t)?]W0eʹͽz? *>\XJ{X|ukH``ǫAQW Jw/F67ן>id[dFFffeU8EE9. Ǚ [jL.944- 1#{wӝF9yYhhܹl*9p2M5:~L:lH$HFFW^{WP>tu |Tw`!C 0UR&.Kh괴ҷoK b`noή{mlx&VDFf/tu@w ^!;l6SSéfp˥ :][ |:!,GA/iX߲tԒW6?P] NE=5rY8&t gY,^FA*+˷*AQRWW§UՕI$%5^ʿ~z] QU$3:rrǏ,{]pta6cÄgaH[bޕr8F=o2: XRPPRLyVVhCW_w:)iovZ,FiC H@ڳ'5ǾΜyA gΞ0{oIثƖ<$}Y;,PP<} fdR\\{`(=I)=TIIzD;WW̽ǟgoq(:9bG:LVRB`ش2&&oƌK.3ۣGoW]XxVwӧS8w^# !A ֆν{89&VAlv<~ɒ!yY`ϟSt:[SSDK^PZʨf*P6P_tl++آQww3?-h[B|شɓԒҔwJfUU~LzЫ_?dNN.NN.nS21BM:s^ܼOU]N~=Z|=mŢXr# )) 7kOC8Ym @ʪ? 76ߺ >n\߉P2yT{I=z[5f,6߸AHHZXJ [۾=4%82r 1444 zں[gõz]:@6sRMM!8x JTII݁O?~ikׄݵhh J{ӄpuxxX鑰BGZRZ˫ɩHXd"@'QQ\ĿرuD?nϞ0[[֑64\s\ !b{92X:̙YCgu~ #F9}_WIN.0LT A 9ܯ3Iή^=w8ֱȌ&att DooY|N|R yyB^&739/X6l|0۷JKh΄ UUAYʕ&&Zv[H8tJPMC(b4/ՕnN$*$efgf77DE[[cG66Fݿ8ƪ*ve%]UŪd9l6STUFw,42gƌUUgւ3jj2z^]Z«W Z6~鲒ҿJF?|- EyDn8thԩXǂ ʕw޾-]kҡ]zsI￰]!5xܸ[fJX,ѪSRJRS +*} 0ur 74޽+%'ed "4_1:zW[ƥFFfjjL:Gҹs/744rDGװvݏ^~65(P|fȑ6->MMOgeUwS"A }\(#j OfO&=Y`p/^|}+=gpeڵÇ:zݼP/^Ǹq0 Lp`߾XQС)X?-66ǎЂ9sm0k4D"h/` [t6FTG AlbRBkbi7Hf_H@@ҥClaܪ Wv\bSfMؿö顥11H&ICǎ=]m׮ 7t~~^Cw?|t4t`bW.U]nzƢa,E!R|nRxxP(>ͬ wLKKIIϞe'%}0 l`~[mw09s՞?YoI$HjjqPPjppD">\\z6$I8vOEb$'J={VÐBii/hFQQQ|23"%8!K zutQP?:d-E)슊*vu5 HEEPCOO20P%d1((m՚C$D")HJ "MM՟ /x2s}1B1;;X,xÑNNNhCGlnM@;x/23`Th=#+MMu{R\\zrI3 mYY))ů_ mm~LУt" Jq#G:P Bx׮G&/3""2.)#o0db]2|||gD0 0wyCEs>>oA}[*I ڲe̲eCSSޅX|=ѱ'??5ҥC(]^0gMF/[6X~EIIZDǦu|$6=̢Rt~v Yd0ց?ٳ92uLgc&I* IDATK:t(A_h9(-| -$&FЃn++CWWɩS6,]zcҡവtbyy-E,eeRAjj=zE,hK^=?==b.Tt̬ѣ;hދ'O1B{^YfÇmg$\* **iStŮWbի1F=:P(0`޽իFEeGFn+  eJÇw$Q(zSOόJN.NL,qM0 #B$*o2mȑRuR1s%HgOoݍ⇄ݽSٳFFjT]^FVVOw:RRRb*$Rmm׬:`@/WWʠAx#~ݻ.8ֱȘFA}=2zn}=.sQ$4555U(ZZZZ-PUDk^*ٳGwpmO ]u X(_vm-g~Ic\kW؞=5tOO+4]/\ximH }ݻb*]! -ЃnȺѣOշIJJq\\~}=OAbDiӜFii%cǞ 6m,;K3g<b*pv-d[߂x<=o$**kʀfP(64HI^Wǝ:\AA ZAPf0rrx8xp"cxf3gK,\&C]B!jVPP3f#:5~ VV~#ii%iilvcB֎f]\Llɚ| o9tֱ?mfW8 EE67b-, {;+_)+c()wwsRV mgD vl6h4ZuyyD ڕI,2 /-d+ݻk/n\_#Koq#nϞv7o6n֬?n·11:i#kѢ%%u/4tN?,VVƸzuXH_Wp۹c9syL{ [,?P(_$b}|n֮va?z.((5-DWWm„S8XZroߖ&'%''% "yyP(a\~#FPж jߺXGGGUaz}=ɩ1픠%$.]zCUUR1l XZll~\\~ES^ 8F55EggSWW>/HN.NN.ήll(XZt0Wn=-ͯS¦?եTUUO9 rϞ$[?#(Y?3yA vNgٍ/J7$q($RtX4))?jmmåKB v=;75 v:fS4{IQQzP A BMs<~|zl~~^$ "/O]ƦnU,?9(!010'R$MvqB8$4;] 9AA)׮VUttk p=1;_]?СPutT>xyG~VFF߿(@99̙xӦy}@+)߾XM 8a(/ gӦ*6{a={M46 I熎ڵȮŋ)]W/]/֫@U OBe} 1wweˆΝ{A$k%&;X_Aʓ'd>N-NN.NN.NI)F{* 5* ji5t4O))4鬑;KTUnG)IͼffyyAA6j=#AWw?:yr&(c95 O$*Dↆ&]w::j /;2==ulKnURYm}({w-my3W"nkrr8ww7`p=z4R,6n*W-edq/ :r/11A_X;}z֗ o|A~>*-Օ'<gϤyNN^0snD+隇x?mNI)NH(RiٕY[wsq鍎^}@e]룢Ǝ]LqzVV Cz{88h] _Eq8X"AF=xl韂 ilDPQQ,66-W Z`2l,~AEsk99[08/>kR@ pZ J{8CeL1?~!o?̙KKk0lk޿q@!(EEØ& cǞTQQ \I֭ݻh0a>Slȑ']kף;w!pYY{Z RJTT0,pQ]ZB^D&{R<<,["ͧP$?~d,$|zc 2H虘|*b17Y4̝{GVprlOܿn}![i sٲ!VC"_MH >7 Ͽ\])nnggS/ۨfwJKKe_4=}O$*kmEDÏ|Pz?%as8MWDGl8꯿akjBHA0ۤ(gii4Z5Ad2DGCCݺ(O>lhhy3|@,FZ3a82r OϿzѣmp͵` nmme0uuܺzg(*ZZ藮 GZZq9qbƴiPq;6$ ޽7?>}$;c wݺϞ,X}ֻXK J;?lUG֔URR7pྯ~ ME6gxXq99ܹvUT6_mÆݾl%Kcsbɓώßq{H$iʪؾ=4%x$;?q賈ŋaҥ3 qƗcP蠕ÇtDZRZĂV#"'C>:i 556Y~zx{*m"?>l'gNdu, WR sv6=sf/;rrra~^E,tq}Д6 B]w0J1F>f7~dǾ2Zt:{BQQYw&&%4n`s|c >,t:;9]! ƚ{䪫ٕBB`{tq``woX=?B(~!88ٳXF?e46 ٦"Y:ҚD{2;W @ijΜnWp9&Ou%U l6_N H$q X JJr::j&&Z{ HgD y$ĉg>TA4vlKbTW!CBBB.\Rmل 7o3ͷ(IjZBsuuܪ*V]K-AUTRVCQ45UutT:GֶRYtu=$l@+*=}ssY$'N<=s湑fES(3'O  Moy8Ax<ĉm4/Pxy{ I[P(VzgxCsE" !nytʀݻ',\}6 Ț5R7BZvI99BWWʎ-- m,Yr#2# +WlI`m8po}=u.o,9L/>|8">~ H~Su5AA [?.H2}*UP0 <9c Ptt_]tH$ C>4tEqy Mŵ $XB 5(= EDB! ^d͟2|c0<|5>pK~Wif]FF~_u5nBBc,qŮ M_ znNغ58>~!3,X::=uꅢگf`sٵkB /4K$//+WX,/x %22Q ޣGZWDYsG)֏-(II)NN.JJ**/'pdyy|MMCzz)Vus3sw7sw7ee Oϣ3g:1c$RiAAQQY8f6fѶ'`ax۶q!Kwl@͞=`~.x¨50$$/XAAN(lvc|D7o>}[(p|(׭SO++C%.s8 5{`rB郜 Pf&DJP(~ g, \һν8t("$dO57X,狍^`55 fGAOKTWW&d2L&sC??.yY&8S] 1 \򋙸_l<^X5NO&pvMC*irV|:+@2b{kjШTZff IDAT]wOO+//k0Zp8aa^˫FLd౦o+z&ll5|xD#̚DIm'՝cE3 `0پܤɍ[0٭o! p0">=a͍KPPQWWPTUCWN>r$…9c~ ЮvxxJL˺2ű>6JٲeLgZp}ڰan-ȐJX;h%?  @4p>OOqɮ<{=}Dֱ?A(:#ix0h[s^?REE,8IuFW߹ 0ºu;,63PR"ji겲ObA^DLD&jjGJvUS0z ##{|0l m>ԫ 5`@u5!!i[hi=;o_cڅ@ ڳի1 9^&XzP)7#JC稰X|M(=kHH(f7Q\])}tLi 2yY1"bMPp>x*@{zZy{۷YFdd&: 8wn[-+c |O"Awp%$!cci{0 !tY2gϲ_̬bNaK$bՕ1tpѷ}w tUY ueMQ t?X||XhР7 bA$ xzr10a i}4n޼eK0ahJ=:~Y̘q1.~ ZB!l61in(YoH?NpzGL0 .yؓrlPrrytmV8-[CCgrޱc<K(*=vl1XȌ߭W ʕ$%mkj{ֱA%%ukOL,Vo\j իFDd1[1(=/>O|b~ttڵlPAKKnDd2ѱJ&(͍У_?Κot:uGQQk= d<| %5HT^Nc>rrx2tBi8c8lzz闥b0@Zz,ߴ)8#ݣ)S>|+Zw @X1,'2!0;G@Px  ,oeehccdcɩVAUCuV:Q]FA^bŰkZ?{zC{͚̪*vUYUŪb3\n  >IWH&4>3Džׯ+ټ9(3ɓX"]oq+Wz_?GN89DU~6 ̹rU^̗Ds()ի/_ӉDa,F2Wq8Maao_V}ugf ej mX L#Ad'ypE< 9#R t7o> u;}y@/Z}{MH#Gʪl}bɰaO620WRR~] ༼*I 9doĉX̹p(iUee _{Ʌ z çOϜ<̝{뼯e\\zߺ7~VaaMpp.Q[[Uek.ꇏ~Φh VCUmmADR-E,t\* $$ AA9YJ)N 93k$; (.1؜9ƶӂzߴo_͛q11d"ֱȰw۶Otb9V]_&p׏JH(x:6l5112u7GǞnngN縻?eQXIyy}XۇTs?Zq8Y`/y3~˖o_xHlжYe2yG>q#õT0 AڳFd{"?3 . H UEÎ(SP@"J`C'z(",Elt aMaSgfggfbH޽͆ ccclaC_" NgFE9p^u5SD"N`=}]II}IImqqmYY}II]EE.AN?ly,qvy꫄ffҴA"#_{yEEF18JGϯ7.d˖,Z_}aw,m b`= 4̙sṄ ܹ{>کom@ NJaaA;w- _*+쉻qHdXuu}v|\Mf0\*(rrď57쉋}G$\DfNI̝,MTYbVV[- 7yH-e77vӢv蠦&sMgOiMh`"#_{[0 H02:@[p" Ȉ$9\pZo{bjnjeb5**uC1yr(E/w# ;wȘ1]ޛ` U'l޿u^ҥ#]!QP;v}„ϓYOPМ#CCuYK `ƍ^ȍ:@z;ndf\9UQV.ˋ]CMVVp""Y99۝;RRq@ EO͍VAgMD~ƌcIuV\Jmm Dk*;9;;$mY0xkS] L&3/boTM3ѻSzh7nic..ָ8կ_1{vX~~a͚֍st4*䫼D@$99A9H_ҳ_`odϧdf1,99"@4xޙ{cb͙3:8;t~&.v1turϟ_GYXH$`޻F֬` 2nmD 7J6Gq㬂3}͛i6lΝowC堫7o 6m%"߃U RG]]UWT`$YΊY,3ё1/4gOI3))UU CC+WV=9XSS:fL}N%I[Qxʊ Ĵi))& DoɾySVVs PUU+77m{gΙ3}'t t*J @0** 66Ƴf ޶mʹsSR$%_/d2Y.=QZEcOw{޿{/Z͛T*UakaaiLYp@077&&MJHH177|3|&?#ݻ"&@b2RSwb{W1eJĉ] хi(m!F`Jnb*364+ Ur(*GA^Og88_*t:}ڵKB2hZZZE&@"!Cɵ_$RA΋͎;:ӧyyee=ʕ8(**=z5< iiI}CQQmSrs(*i s„ :ٯ)CCCu< o߾7;@@w]vnݺ}9|ހ߿ctԨQi}LfvvѣG33354qhEICCСC􂃃훕s·>zDjT7sĬ[>i4jjk` UYYi``гgώ$JJKK544:A/_gOGUWWq񕌾󳵴$pU?r[N`8,Z\>@wZN=[)Bgi 9lEةh4&:R)G7)..޸q "##!gHo$oU 1VbڪҔp>‡kKee_֍31t >>.=ƦC73,&ohgƦ];tV&kǭ];ީҵ{7;Wnm젚@P- IDATT溋;quثn@ ]?F )mYxB@ (3Hu5RRRWVV_VV_RRWRR[TT[^2dHuƖWV6זTVRG#G<}53HK'$OcP * ~-/,og*)++P(ͭ t@tv.{޿clb*kkܣĦ]$lو3g=<&()I]|NgƳA%q (`]/BgJ1>L6ml_Q?M=B/ H`*VV&d++r~2q(DvI[Ν;ĉEԁ4`cΞ]֑xh46vQ]Mݲ%z$mY:dr7OS}\كgܱN Χl2IQQ:B DUf^,1et5T`.tr=|5ϞĬ0a%N^^{uJ/8dJ?:wIՕ 2>c‘# _ _3%4t~z%%oEG wyu떡amm-ׯ_cc#N{{{z{{\hbbɓݻw,^7 >>FIIo߾/_0 UUU=zPVV>|8g3gϞݾ}NEEL&E筬ttt._عs'?CCC555D" d2555ܹ[tWKK $hxyyڢuΜ9l祘ٳg ̋`FST\6i򋝟ߌ5}~eāW_]\kN6Ͷ.-@ +ug3n碵>o^/<<\޿;}z8U{kLqDL;b8qJMM1))@ a~`A;;,D>@=z---[,aը)'YDmDDDڵ4=zx{{GDD`KwokQJ@ cѢZ_+mAzzꦦR;@ &$IWWͻ.!|[r劕U^BBBЇ`|*EAA`!vM^㾘u;vL={!ի^V aÆ ŵބ7][cwEڂtRRL ]֓'>JÇv-5<|cY'ޤ|50t{c@ 0l1`zi Ah(b` m! ''?-Dms(aK! Ϟ ~kK,)++{5088x֬Y߿ȰߺukNN`ҤI?󳶶6lPT*UQQԩSΝR ~˗/#>LTAAaEEE AϧP(gϞ̝;B>}PUU))SSWWG۷JJJ;;;edd 0ϏStb;pe˗/߿GNEEukJݻZZZt:AkkkK=iTjˁ#PqVt:CA2r~?⋿Ly8Z"Țkjj}pi#VV۷_!m";, kʋ_uϟKdqQT;Ӻ7n())szivAP0^ADc> էOӧO#}vkkk,s&lRSS544ɉijqF+8%n_zzzV w1{a{]\TWˆAZZWJ$%%H<^߽kqu̘ tjx1gNҖ8JUat^)W{ ˗1c]|'o`ٵgΜTWWf|!>Q[[ !Q%lfq%wi;,̙&&s,-sSAWTP9@C89pZ݁!O[[-F*FFF666 ;eii)Ç xFF qO>󆪩?x`mm-jhh`2Ϛ5WAmmm3Je2O>eo!BѸ~/ [UUUyf___yyL< K" 7n077eׯ_޲um۶ AcTmM ~bb" 'O D\eeC2%ߘE3  ~[')U ~eeg<7.L=:ĉG  [=I&{89;q$޽vŋ/\tI~)~QI:@xꕜ;@ff&g+'" %֦˗/96iǏ:;TUV*Gv*P?lJI2@K O8J@D*BD]]溌~•ęA܌/DU |耶:q!%j/{2dOGw}VE&{ G0uvJ[مNgťMtLX4Z݄ڙ3xBCC%*jMJʶu{!1?~,X(vJ~~-1`ꘆWZ C[[@ 888U&9+'?K`p444ѫ&9IOOGk.##͘uMM47KKKٳ)D(޼oi;9YH[@p_(lFq!.#`_\5 L2(3HS b[TTS1P(-=d6nmi"44:֭02Ҽsg+mmM-Dܺ~ܸ*ݻ<=]D%tM⯢2i@ 450λwߤ-Kg˖-k\+8={N:ez_,\PUUUĜ@ rss?Ȼ%%u_$mA$.-rrr׮]c?SPP M4IMȏ?N81~xOOOC&t^իWst}o>~Y,ֵkjjj~iӦ`OHHpuu'$nssܹsN<)|y#'Oζ7nÇQ===344%>>ԩSIII0bĈgϞ=|pƌj3#6gΜ#F _Jӯ %E1pW W]pCĤwoQ_LڂEGjcGҕ@,R{] @Z G8l$QxŐL7!)cccw{NXB_!Cۑ@1 =:Νk׎}%#GJ%qp0MM-pv/|Qp `E:ÙɌ:|p?l޼9** 9W6 ,5!irwwg2jll fg\7on$g,+.+ﶊ#tBì0*!sԼ,^씘V|IEJJv߾:FFv:޽{ BPPIdd$ _ BR gNNNێ666z{{4HMMmȐ!g0)ݻŋ+++309#M{6HhqbŊ?~TTT`X/ȽyO֌/> .bCm/#FX(*=yUb hE(f:WiC}`i[[[i4Bssݻ d3;'O>ya坝/^hjjjjj 7oƍ v؁yQI=uիW`fD"͚5kժUCmS*#ȑ# E)2|ٱc s]يESIrkr]eF$'gUH[Hm}DKKQI;/WW5\PKEEilּx}Ÿ2Ǐ?0mڑ9 ?Bϟ[笭--m2lX߬"*Ub)b)˗/+++KHHغuH0vJE0P4|8JIIpwwW EeeeYYYqqӧO 6oON~ipڵ9!!!'''66vذawuJ]]5+ji! HJt1HO4PSS%2grF'm)N@$22ĄӧxP 6TZZaaa1o<} NMM ~ݶmۮ\¹G+΢ .P({{{tRM.tv!r HhA߿`˴XÛvpɠ/Dr" \wi¨QSREWQSSOIbc7k@i(kdfmxeȐ=/BB暙O3&(5gC?.AƘ1㘓Ӿf@ ~P-ƅDH["RL2 O999(Cvpqq0 E`&M0Ykox"ǃ?2o^qKimm0`ʕ+YzFCC]xqҤIlB9j{Q와W?>h cccdrMM  eٲeZZZ+Wlll|---^^^={?~mm-7 QQQfff qqqi4ɓR Pիɓ'ϟs`NNN. AF-[YhL޴iSss3?˙ԟH\[ZZd$ E(4;}qKRTTcm}ڿ-z#dDŽ _K1*TTP~&o暴i.wbk{ҳ,K A ?jllv qqq&WZXXPTAh4FCG'%%ڵX[[{ѢE Ӽu_!B1WVVΝ;aZKK @aGx ojmmm Hmm%K ===3_hΝ;gii_[]]}ǎ"q>i3ke ,,LCCc7oׯΆ ZZZ0 ! Uƍ =|7n)}VNNnh677g'Nz9vE ApS[|9fCCrZZ׷]6v~C$ }["d&&d5Ѧ0,<~?~o`)L]4U/cCpIq@Z'N<[cc+1 c[2 vyM=""RSS388W$ZsEݽU$S}k!` 3#IL4X,VxxرcI%ۂ_B*sv!XHIIALվo:>eܸ2cܸs;&?" ~FF=y{ܧ;vlΝ7 _2N\iTj˯\#oBDU_o"x*… bG9D*BW=; f F*F\ #$$BUU`>D^ F(,24${7pSu5Uڂ`]g?ٶmۘ1c5昁_ 0,FAA=fÇ =z4WW^uppW7mڄiiiи}6fp~*+Ⲛ% o#""o߾ګW: 3`#AaWgE*P`N9-xڒr\ܳg9dGyppAv+RFcL1w IDATzdܸ&:ii߼jjrϥDܺ7%E\sA ݜHM71{ƍ;w ^G,տ\.^J\:PfVu5wo˗_;%P1_W\qb%5 M}ٵgΜTWW#<ۃ^hsh͕v_E߸Q/(ͅ*ޑ$f+|YgΜ144LHH|𡹹9*?_E/Nv!X2T; {{Gy_E>Fc/T_TTo_{ vYjESStq/$<כHOOǴ5x;?'W~8KB$U0G\m>9300`>DHi̝{rɒ 1?:bsiAonmm͕e , ӧsZk.[Z@ee%ϟ?]J155UCC_b*H4 b4k,j*] XUpņ7n[su"/_ _jT:.xr-1-E.QQ!^֑o#FuB'''W.M/?1r'UV6H[()+_,z UHIhӧ_$@xI50tSI D"-\3hEZnݶmpqqA8-o.BM`'&&"2y䠠 9jH'Ohjj# ڼ9o-/^Hcx"K. ^G,ɵ!*/sCxxђ*+q@YZWG d2q-V/`+Y`vc qyƺ/9b%"z(+\YE5l1KcW\a sUT6~70_B}WAP/_~1aA2cĈ'No@.H_jTgrssJSS3))իWFFFGNII!T*NY78{.F=y=BvvŋG^^^d2~!,C3.gKKK̘;/T-ʕ+O/bH i !Gdd$&(YkD-`XR {mqժU˗/DCCC__=ȜtT0 Pk䰻!cbb-[/8?E0`]ڜBߺTp~a+,@ "$PpL:'Ll9ԖbBMM @456QPSVVQz}} |E2xzFZ5zʔAҖE|ZvPӾy fy "i* _?m@ĀfZuȐ>˫LdŊѻvcGŋϥ- _~qĉ{zzAf|mmW$Aaa!$===7Tss3źvZMMo6mڴ 1 @qq0 .sz{{ztPxxReekeeaaÆ?TK ԩũojdԆLA$Oq]ߢDwދ/2lnn.f 1^֭s޿֑#n`-BIGf;X-U~f{{@Ndz;|pECEE:66Mb)'O** Gڂt.6d2>7oEF5\K-***K.#TY(MڲHOJ8:6sCr򶄄 :(m xgܸ[رclXVH_E^tҾ}u /)Ldժ1;vL۾Kb/_aÆѣG3gn۶۷oaaa-Z}_(0a„ׯS(&//<..nh<B;v3i*Jw hhhy6nXPPc~>`ҥ6l}vAAAbb… /^Y/ke8{l}}DT__߅  xyA.RYjo۰a$i֬YV:t.aȑ# Eam+R"&Ig,0hΜ>8`/_WVVuV`vl%)*؂!ItKᒛ[/+V$S1_7:VYYYf'9~~vժ.z(+~av$1[CXnݖ-[ HTTe\\fp6ydN444tt#TUUa x.{EÇ{ell|b&RSSh"---2iӦf8SMCBBﯤԷo۷#8k efhgϚjkkoذ-3CAqrBפDZ72Ǐѣ-ŋ_~e?y HA8*Փ'Oaaa;瘹h!ٔYz2Ba?|y חŋ&ME%H?Ҩ'KϚdK"=!h}QUUuttz*`'O_խkjjrj1 '\2)"&D__o"x*!I---IIIuuu/QrPBnB~6d Ɓ{b ư(r bַ+W$.ǪU&LGeff+0A;W,`L&S]]T*s***MMMsvp[.WT+WTUURS!A!Vôyh###{ʙf~ 0n>FEDh[ڜ<[%rO|!=jkLHJ,Z>}+RguPGǀi"^|)=zsak{oX,i2 6mQQAi;"$ꯂ ȏ5~ӦopA9xÇK.I CCd ̙v-plT= Rd __ ,v^p9sssԩSϝ;ǞUVV d FbíƎ Fhz葱qJJ aaafffG7oׯΆ ZZZ0JEEJFcXqo-"Oڔ-{=UZZgf%<< ڱ k0zq]LHYfEGGn߾䤥IQQÇǎ#zO֭Xd ͣGL8Q[[{h .8qx cуKB///553fjkkч6lؾ}г=B"uիz#mq  ǫ+{Kڂ@d.\!e˖ӧϘ1CKK~[|y BRRW4dȞ'O83ߨ5Ӧ˓wDȑoj6iNgSF){A6".E_ 8^p D,R(K.4iBI=+W'3{<\\~ժiUU ?~_ɽ,Gc w؉1cF)..F|Ghm7߾}ƍgϞbM3r/DFlY ֮=~a>y7@x|`rSf;HXqv x@0!r,)ioKEEPDР )aCݗwxt`Ac Zeevfdp'sW}٣G r }ŋw<7Æ%^Ʋec`À %>E_<}VQgƌI9tK9sˮ]y(!Ĵ IDATNo߾N> wjScjwmӯZ{71o޼e˖{yyys)/_n6o=aDDD͚7 BKK N Bjjm dV!䶠Pwޙ~啟fO vDGRRRצּk ۳|ypn[cM* 6lذ!؁컌Riڿp׮mms͉Me,[6n{4gNδi".ǂGzj_ǫ˖[OLLw؉yKKKjs9`'"1=B^yejR㥗~~}۶\yOM B͜9իP!Q E1O/*_p ]+^|rχ $xOf2 ZdM_9t9 e&q?K&cgZ0 ?36_p ^ψI.'؁@ QFL/>}Tlk׮]۶m[Mn0ʿNMM XR>t+W[mD}}=X`>(jo1]{ jǐ~gMm6gc@ H0l6f'Nd;0ٹI&=e;I".^:3D!{a̘UPP@ Jxx9sVXKp8N322f_At=vg}vժUNh4gΜydC=f͚֊Snݺ}c~x%K͇g _}؏?^}䑯L&{Á@nj @Jeں#[V{)+{g))̮02=iRƖ-sf3|/tlm W^xaܱ ؁t*J.Ks͞=_Nɓ't?O?k9rD.8q⭷kH78ző#/'^X Q؉'* N6%! @ž}E&eݙ"1˲X!vq|6lӛ6͟7oHù;^_Ed,bc ߥ0m">׳fm)A 7a2 ?gwOv}]e@ H]X{'*13~4Vc/x0LHѣe{Sf0jTrDDxguo<2J;3bƌSRRc'Oddy3w\<**t"hϞ=Æ C`g;botoy\eDbL@ aʔ_~XnfAͪS3@ }@ AIUXO;d߾9sr"#v{<3>Q"|>w , v8wNgx FÍu#cǦ`G ]^߱cwT2=k"L^ Q{\Y&o֭K)@ AA,?JO8~fd&D* >!Qd`w[z]Iفg OZTpŋȑrQ 8p`Æ ۆ[S0 vѡ_k-xio@$Zy\i;sZApGh^o{nФW7<՗/ Cu n?}Ռ N6M__KOg<^y˾bg;]~y >4)}Ҥ,. MHpw T #T/D_Yl߾A H#2_x=͊cW~ 6 6AaMf`"a=wTUfᇿl~v])!LNF`{qoh5kKMMXnݳ>  E_$ͦRPrpoztpAe:FNN{W 嗊ɓ3f BaT(z`)F_j-.+8v7:'/ '#!v^|>ց (-DЌ7ҫѐBh\Qn_ƞ]F-q`HߡKWKTW}wv~zjԮUtHIM t/h/_ڵ_6fLJKJ%!M6tahS۳  ǏbwS~vUFm޼x7r<&[+tinM[Fxe˺q * bŸ>:b)3E "r)E.ȥ {muoUVYYfT'xbŊ[<C݂cv~jCO=E "{"!79-|4 sps]pAL*T:Cl ZK XlN[7 {pD"qݺu r 4#٪rg1+Q0[r)\.%xsܽ{r#25 H`҉x[vk<mx nygh!|Ghsٷ^x*_јϜ9z|Sf&wҤ3ӴiK{NB   vϞ_|qfNU}brR*&  aaa]Axx8nnnHH!\> _#l„ӧWiiQWTHX0jI1Rij-ZO PX K&DzXLX韾~TDwdƤUxLrd<F aQ""hz q#a(CP?hw16H#ApBRAGPexA&4ɃjvpT~z$,\8"CΞzرo><1誛 y+t"/܊+/9SslMYY[xxXnnc&LHJȝ~OOM~KuPNv{w8qa?l1ً !P|s ~Y$R+wBB +bX,ŊfBH B!3)޿*X#6LiT)R]EE{ee{e]2P("q"/+K$;y !Nk{33;v,e0`0qʢ¦z#c" Dgfr 4HG v`_O.X$|CJt8\cƤ̞=hԬبvpǯZ,TVV }ܶmgKKv p75)T&UsIRAø\rB-!~R\r*a>8GGvawc8Ξ=uotxڸqƥiDヘ<2d! 6oF6mB`_Uk<䓣a15$D/[rWy-'v\\ [6( -6)rh׏B1B g0B Db a0l6^+z]::{WҢ4H`AC > H$ڂkZjj:xp29F ssr239 4xRCdp:ݍFeSFZ]ޮ\^ ( 2 0PȄm6o^4gNNp:ݓ&}H'חW<,[Lڵ&;悂3gjΟj-l6q„Fbo ^}vJ6yrK/MA]r^PVsjΝ5kPÁ@ ~UWxkΘ7oHÁ4N[,Vڎ:X,ok|> &2)H dFB^=rt]92)ر@ PY^Q!)rAध%9.pr'v;ihP._S6oݺ$!TZZRRRRQn8$&ۋErsrs b=Gw(صk9l!>./ĉʰ0Ԙ1)sLu' ^QYYLv4:,9IKcefr4{ztbMڪimՈrˆ DSJ ϧx}Mb4t΋552dٳF[X|LMAAmu,""<77~ܸqRX= 駫w߾#Fq7?!NK\-[No|zh', PbqddA$5~{-;n΢ߔ ?KSYB$b '0B E{\.OAAm^^3fdǰٜF\n0mn uJTT@dG`0_P!b0X[[5uuJi]]G}R4Q_)PB|p^pӦ}E=ܶ'm;s*>F^KKc6_q ~VUI/\:UUR8P0yr¬,.dAݵo_юiD/89=>LUX޳ʌyg@ `Ғ(TFۦM'v0aBpHkZ}^^񆇇xdFr2#)LJ!Jq,YD=qe &5n!=Ri\.].mmU{>NOddpRS=<Nvb8^yec/8饗L>㭫I**$uurG\^ |nn!"7;k>v[zTU^^ŋxE]Y^Y)VW@KKcgdp228ii$ݿ$Dr[@@kX䵵&AH4EFE >*Y=Ȉ,n:*yFcqƥ%92?MUԩWp2?!KK!RT {FۇΛ>=;@ dѢfG{N[hW|㢣#T*Zmj-Y2h Kbi4 4B oS_طhޫZe%Kam X,uCڵjY[Z4;.۰0TLLfeqGH͍ Fd6kZmmZy0*O䤤B!D !g޼ԙ3iA cO֬y`Ŋq]Ɇ eWó]pYo_K/My2V͗/7>]ut`)cG *Hod[uɌ`իΜYJez啩O>91A c2M&h3nw 6AL&X.nw9.mnц h|fZP(D.:<< DE1ب(40Lqh<C `& )U)ƕ+'<8÷AР卍ʆBFxZB->&Pz}_*Mє)~(ر@ꬩ騮VUI;jjd#<<,.NKc''3RSY{pr'vW6l1"OL%$8*iEp=/xض'22<3ټdF?];%K߿25p wL嗊*+l,J]\]-J}DFSRVj*3)B?UnRijjR67ͪfUSp#chqqT`$d9RweB!sɒ b{ʝ_o/(+(-)iqh  zAΰa fCtn6f 6n2f`:?Fbc##"£#""#LFP(`cP(@GGGtFD8W_vA^(L& >b0ؼ^dw8vdp[ ;ap(!L(,X&dr Bjý}٭[bW\8 w^_{Q%ʦ&RiB$<Zp` 2^ UU:$닌D@,)yȝ :y_>ܝ0udB=S6]k}=*3''@ UU%ڕJX@F IDATt=8KJ|fs.]U]|gSRrwɏ-+nm3SCS_UWKdb`Q HIa L.BWG|>L`Q?͉ Hd$' >*P(|>E 0T9xNdѣ gٜ%%- @2bD#G&̼S^xa? )͛x38$qE"^r2#F/\Y'^~yc{xho3&WZB@|\nQQh"1-[苇kwW)~+L DkkӴi%MkI%@Dд|>_X@ԁ99q@t^peefRi2lu`,!9!q x*4_Y4;Wv2zph i; }n;w^|1) *ڵϞ9sUה x<^ (zUj~Yo6#iᢱ(,6@F6 (,6{t^&X6ZZVk cNLc`b0!niYm;qqԵkgK͎ۘ9O* A4:% #xd. m!˂| n!`9rX^W!+u>/::0 Zg! wT'E $%@KJ'&C_|qf„M0`G .AY[Q]-UV[xxz}al61; _67vZ'F^_qqs~~t:q3f xdreU,VbXrAHp @O#Bԫt+VukM[0x \)<!xd6}Yfkuir2c!?L{nޫ{\U*'?ѣk*+?hKzܗ_fkxjY5FڤX Fc֢Z:B$66D!c(,K"ŒH1$RLX<>ͩY53/(FܠTrBa  (4'x$R阍ʍ痍-|뭙`GLvEبjkS'Ax|'vF^g/(=x9x@Q_먯Wt44(R=h D:XpHwP L8#ܗ.K9 V[f| PRS>¦_l??+Xa@Z]Q[QU%-+kkjRu7D P2$n„W,Dze;KJZcacot;W_/nwؔӳOl׮2P(@Q^ `*nw0`iiH$c0t(\.%߻>t'*w])*j))i).n1m11ټ!C<8^{oO<7p 뫯W^Z[v{6r-_;VryTvX^U%j-UH6,B!#X-1c hm \n4nPzmCfsvZ`  dt<޲X{pk**$'Ort SPPW|xEllُ>:C ѡRCѡJuLtޘ%cbc0ӭјN t:X0BFV[OnoUUˍJLo0X<M77BH0GR]ii[MMGc]Tu:P(Ma|P%'| TBBptϧ?\oZl̽g۶37/(XݷU|>ݗ7lȧRq~077ڪpA|T&M;6@}r႘JΛt Uxyyş|rR4.]:_Hb|\.VkV ATFʤVJZmPL&BɱDb K&vZ!bVOWzBaH]+::nB .>GA{ÿsUtΜO<1֓<Mޮg'TdG@H\.!Dfl1^x{szg`]pMM*jlT55)ANd$:> 2Yy5oS)`BET2}:vkh4EeSju"B $&ȫQjO>[8gN2( zyIIKu]g6AB,19!q KJHoy~tXWc4O/1>x ;'32wv{yZ7<јYFD "OR2ABx$'綿|mmjYuZV]-*z!&#NKcSR11=KzDufǫNYt$!&]1k4iΕ\R`K0so(d2L큒.g=w3όcAn^o_޽WZȑK :5 ^x!̢S cG )"0\:M[!bBHꔌ N(XA wRiKkjdjܠZ `0T*' [*Œp_C*u46UҨYFPHTTMlbBXb$.^ߺu~=+FH b$g>7=6g~Ο{䑯Vr@TUIzPQQSO{թjPo0X/]jxQ\PPҢGN?>uT ӇWTԜ_v56aBڢEC/s!ާW\ݻ߲Wٱx'Sҽ?9 JI.7(F\Rj^DGGh8:GRqt:B{/+1<\nmmZ&GG"D_B=cavx   OL,=Hа]mmD+۵ZޮULA0pL R"x)h{䑯O?='Gd)Ƚ[Tʦ&UsU֦,P(/:XL&fNCLojR66ͪM[k(OqqGeTpd%K?DM&.QUPPS\"rrDDɱ|>%=-2x< xlAm'l9=|xG-p !?&vYryv(غ7.u֬ASdp)PHp冶6MkUAp6SN,`g~bh--*юE LJbry''u#F$͝ox--+W kj:Z[&A0YEQ:7Kjً/?瞻O(d>!AAyȵ573gx񴞏\lzޮ;* Z;_ohbEz R@N.7+d#9"M'7,ݡP**;{a t`b1552NYYqƱcF/><1S,+*7""<>&qANjv6NO?=W328kN5JG@ HW( M 6oJS)f,JC 0oD̽ԘxOE" #űo;bB{K<Pxܗq::叩pciqBa|axDrcR,rƆG)twt3VMG^&;~0H bɌa339RWIz Jb7 1$R 鉉 N\"H_8PGQ(7<1p ?XEE\|lSY?__yej [l9sE̘NBa(,l.,lf ѣ+At̙'*JSj*kӳ1һ*{Xg%C?)Sh4f(ſPAqt04"tL&JN#p:*Kh%Je+"Ӡ )Cb2 l6!+S[QZVVVYبj$RlB-)H#h>ىFnJeJu2 },aT*%X[  'ĉ#GJϝCGJ>[`?1.P XNƬRVuj 8i4fҤјlZ0K~; '8ZB 2B ˓_ԤZt/OVuݚvpiNNofAyÇ (xYbmm].{xxʕ/i6 ZmDgeqsr C竪5{fX,"ܐ]YnyNg9zyիj966jมCgdp۸\L h`*G CH@0ukEҢimUdz@B&QJ\U ݨ~ СkG\l:4qSSSY :#(_U%Zadr,Dx<>%:2buŰ>]7<衇v%/k6 8; -(R":ϫ sP8'}q|wƻ;p<yyǏWFϘ#32`,D_yHJub(Q䝍Ԁ:Ǔp x<^Y;:*I2L$r<L/F%$ВZB->jCL[O:RjNDDXddznF @ᐁ,p8 dݻ/e2mZ&;Vw BUO&~nҥO6MԹEE;v8Qᐖ-hѰ.NXhl7aaDzf&G$ ,x$46* ._nz1Cz-nѱ44(V'O]wÀ@:s[Ucbq A0Z.]pA|tBa㣳 0G04\ڪAPq$FD֦VP(X咸\ ?_rѣeEEDb p4)J'*&Mʘ;7gܸI+fD/koJ:b\2hhd.Dd_*Ic b6ۧNZdQ]n_QB2xA`@<oCU(CmlTÍF\rQQ\n\lK/M7Hzi~ |%W}>ѣ|pL*-Xj4Xp@yO (7t:H!0B +2;5uƍ3惱cS}wv_Q_طhޫZe%KO~T(*I4*FaPMJI0j4& (4vL&J8&3R(;q2@b*+:_e ))TgE X\.* Mp8 ХަP7-2SR]v6SV >,JQY Qx<&::Ck-ph-,(Adl6%ل :_-?{D??Fr8^Ҕ_zX`<9Fyף>ڵ#Gjӄ i=6jؔ>5e?pm`SO6MtWY1nW"tɁFYv{#"…Bff&'+MOg´aHpUU¦W j39xpرqR^.^U40qbiݗ@p$~ $R\nL4:F&fA:2HMìދQ(2N&gթVR}upAI07rB&^BahkӶj$ $жi #ɱ`Nǻ [S7$ {+,H$Zp (T?z} ,.nVsrⲲ"VAt_3\.)qt:.::R4H$v]{h㑹ܛ@zt35W6zoB$bnyKv/=;w+Kڼyqw9s>?}U(L&yy.lك.㑃Wd ,ܢyC9](iPvT_2v܂B&t7W6kfl. FcQF^G :R:E0ި̈DQO5Rf< \n۷LFGG(* A|bqVkaT*KKSU44(Ϝת˗#&Mʘ9s}p.,l:qرrҔΞ9sy9w xڎ+/Ju3,Z4iM~a߾c*^ԩYO>9:''7S@ /b9v:Z ,JbqHC8dHHąىg*~ åǎU\܀Fɓ3nw=%d2\nn,h4fNDD8IC&fl"Ar}u~,zMOH4+8&HapMpw{\FZ PIJ#Xh~ XlC$d2X!b)+l<@Q&)Fp'R*.cb"Q(1ZDMJ'$x<2P /!=H`0H"!bioى|,F֌Ee4 ֱtTԤ**jzAxxLV$$=ď~{ 97kʥHʖhZ"$Y%*Ɩ9cOgs83{ǞQ"-qdHYHI4l5+̬q.@K}qP2osMLĮ]ONeY5ܡC L"nүZ͡ 'kRJK N,x ITMc>eJ:1 id2A22qxIJ%ڵ ޻zh6Б#C"GNmςhyj*iU$Zّj߾FQWw{*%`٬˅laKB I+x3yNr8rLn%`7ֻ>ͥh?063ok#|<-R(٬J鴐͊J ٬L ٬- ;`qT |4Xy] a''gFPȑcI1MrR:-f2b.'A٬͊VK Q^/3>8M&U$IǛ)lnnx8Ewvz h@J Y(BNL>vNh$& ϗR)ai)D,P P qsgB^{m&тx;b|ק^}ꭷesGϝ;■dwޙ /uvzyȹsGOۤW]ϧw~4-{oOgp|X,-,d󙅅Bzq1 c>@$1 (cc+W^rJ< ӧΜ [ zD>/GWñ7ޘ!̙z~@V4Hi$J (2R`4"`4fRJ*%@ qt8r G.XCq>tz~PHKNϗQ-A8庲,:q V`FHT&TJ(dx`Fh(J^o^tWHJdٰA| e>農fl15R Pn/C!W,V[OUHAz烃|͈rڵdbr2>9XY0(X  2R;>&( , p8zoȎw$ \{{bR^}*㏟H8|{[ "z,.fDnnkVi\xZ^o hTΜ- Z9x00kQk^P1mR-,dff33 A, @P{:^ʲo]I=ݏظaUPlC@OA ˒.eIu ;DӸxq3zzz[A9~>g7oR_,-eGF:ϟ?yI,( fAi!d2zNzp} p0W$''٬DΞ >xpaȲ NH2IZ}>磽^}>(~!IkStra! m0HM>uXyK|sf@m63 KwIQvhj5ZhxG۶}̇K~[ b0wK.'o\%ȑ~tΞ… o=|>ntJ/\XpaI>xmar2OO'ϟ h4iau5nY Nɀj|諿ߏ11D*%LL'&bW F ǎu;uXѣ8{^!O~2:3٬RC ?p0}AxO&xNjH$xdl[ Oi`8j{_?E`3)31,f2b"#lz) 8g&d<qDӪHMBA^laY4M2 cgYiiÐ4mgl,K2 P DӪ܊3m'Bv eA7 0С01 0[ډmxϧ 5{Tw07C !ZXYɭ2rU"|zf&p8`,i IBzz98>CCwہ^;· ռVtOo([0 972ҁvzҥŗ^z{߻'zΝ;ϝ9VM$é}D{kIW.>η}Px`'G^Q*qh`e-WS"(rGG/]Z*5vP4!guuy7UJ% ;wtv6h4«8Z 9ďJ%d2vtaצu?$_<;8FoU|^d@ EiLFyl;!RP~ҸQhZuh/p[ɟ+JS/xWƜNsGv{n0,@ &tr8C\$޼+AP2pr'h;ᐼsx8u;R^L^!| XD =8 7U1..f"!!xaO [$H|"e E( B?YGae:=%HP6XZW׭(VWz a0LZJ\tʻ.ΦL&#H̙-Rʵk[paatt!=g=ݷXK/\X]\Zʚ{8{Ϝ{=GߛKB:xW Ӵ*uJp0fgRfgSx|b"*PuP{:/g2"2 AuzDq|>9ސ)|Ų(A$P#(*Wi{ K\0T~ TpFX(Ȫ>>Da 8:d=ގ7Q(<l@KmWJ dLS]]N1VV* B0`!Ikѐe-q>h]6 Ӟ.qc TƢZ=0q;4ϟpLMA SpȑbZffccK ѐno/U/~/Vo6Z,iQ0mxeYE"-8h՜;9?;y#Ñ}틛WIfgS?. ?ܹc;ݷ5Z>3reʕ[JTuyTٳOt4)^T($i=r$rtӽ[uJڏ||P(Gdq"*'CL0{JIΦTRZC‡ >g fz=R]xqҥw]E;ydÑ#G"]]Ôõb2 ߛ E:2 ~? ;NN`0PE9 N pr:Zu|h u|ڌkZU BYEJ\aK\hFQv!is:,뀵aeY0룪UQvq1XXen0  ÅB.DQƢd@)-жjX$_A%->ei)t,,Xa64*Ij>/%ESV/l?033_IE Xցa(O:-s.-NNWVrP50 h  ~?] (?՗_~&#>w>v7cz:-vt,h!/] zu^ bca0@RD2/ %s9by)Y) ]2x(t`My<[950g5nXw{E6 tj=nC4ɀݭزCPh Gq\"r,8ج, A29]ML$eb1 O9v񮁁fJdbb"vZlb"69(4zHDZcǎu;},_Ӣd =yhױcG@ Vg2"D8=IӢ6MM&O::<׿Ak0VRssi$Jd2vvzCCxl1XrL%Ю,,dji;p tpȡC~?V3e fʳY)21b6+ *O"\%L0@ n|vg`0k)tSpIlVtZ@7 VWs IDATqneQTdY,k*jXe-(i#I+Ð4ms8l[Ht(v3˦񋋙\2)@_A}k_br:m㜁 iE8(ӶſfSbB4Zh8?3nf ݡ 6cP Eٽ^a5 Vr>/u îd@\7X,A$Xƾ>?Ү܊#) rd\!j5[f(+js-yygUD"*/t`ԧ;wOM rkX_1Lo;bfSzkg8:>muqttg]kZf34M;HR.k`. 2¢iZ?/Z{裏g+?B+}% ӓkfbTbb">5OC5` :;=@WK[E Q<jg^~Md}ʕellgw/jG9S}#{MQ*,֝r>/6h(x(V{~f芫z,Vutrf&55дb ]CC_ q aBAKJȲ YLJGF:瞎]:&(DO&xBLFD5yR֫IZ'O/

    9H$x nB ol4h07^\,,d\R'nдb17RIAX} Zz?dz|Rvp0O{b؆!R%|2Ydf6l$HTl$`YU6d\Lqʭ dw]$8t>wTZOkU&2m:fi4Dqi) =Ѕ|>Ax<ξ> voz;au5Y\#`za!g[`-nwJOʥ&ed>\(\(Ji LF1k(q66>1 fպ>Z'eYZYq:QHv;bleT$ b[n(w)˲ ]*JE5IRb= Cfv-vea[ rG``[ݎ~b6+e4 &`0u}bb"^rƆt`qk~KnRAVc9 mTP|,%xÐ.$fV0]WF"вK/*1ϗveb">=,5#ؚ~ѩVGЮ,-5/-ex4˒6V "\Njv:$2¥2>{9n/n6znq]l7f^x+^^o<+y<'8/Յ/nL_8:06M5@<}ԩ޻4LtZH$DLiɈa @qt8|}5#UK/]&P8Cg(3œI@² @3l^FG/g^go/W5R Aj:p 48#P>gp?_g׿}ݧa-Jק^|+9s~>uK@azPQ %-4ANj!H)RI#"`@[]4^YzQ,x P(%Ky( >"`0\VOv;xtnjTJEJ>m T Hv K МH4%(@WKϸHQvPдۂPP ġl$:X(R"7EaE #TjXai)d!33)YѴIS૳ӳցP dC1 Gju~>=7 BG~XttwNc`C.DTq-._[sO֓'{WIzss)Xnx8C~{@7ٙ`P9(FyPbDGƺAVȩeecYMÞlpg4b^t[[VT  TR_eYUJL-"Jɲ ״`z(6*^Fv,%`0{h")K&s=}$_qX` "p*QAQJbsQ,(A(E=Zhklf%I `aٚ BQpaHLVY,flcѴj6+%E}RB.'gb2YdlV[7LՍzQU &_qH˩[;X,ŬZ) f鰔Qj5,Be lPhC):\.b4AHN &z 8jf}:=P* ^= !mFӤGl6V*RIR6ۜ1G,,L8.wCV뭹^+Wrϟ'G1R72<G}pR YnѼL_<<=xF*U]][*M>wt[^ P֙ːxV6ӡi7ߜO^{mri)Kvnvto4]1͑Nl"F3gv:mO>y39V(ޫm##{:r.C {Z(FA6x<ħ7y쳿O[x~#O?ٍ}l/>܅|^~O;wnK'L6ӱlVhf#N@p&ܝhpw1MD / kt A&e v=,`u*].L=0~?ԝ<]gVXafWss) L~hn:= A6}>Z,f z\r,Gލl-4 I,u_2O>\_叟{l^Í&*n?Suw@& $\fϏT;͝QӪv鴈 7tlԉ`i)kS>_̖J<3}Y՗strj*V f 0[@&#~?7~Q.kϟ!BXt~>]rjU,w( m'=wZUJ.tv;{f?ebO7W򕯿6iw/_3~į| 7LmL&c> e4%8q6P^Z9bf&9=HENa޹rX:IX,C ,{TNKN45ߦK/2FTQE8:)JmML}sK|X>/\[,-vXVfLFL&H٬N J hh4pB XRvV[Wp2i  f3^I V dp0pWIY^έ斗s8S:4m @oo{K(02fH`6+fb.'g2b 3g3qt&H9V*Xw/_^K7>߉='N:34c[hIX!B,Vu,V@dс?Iz~Uvj]/!IJV/+Vմ*Tjk;!a[Х˒\ ;)(YZH\&$*jR&PU=V$UӪꢪAP*$)pUeY̱b 'RIմ peb(;IZfiyM8:Vf$iìE~!b9/CVij5T7FZ++MlJK FׅZg2B,VH$d1-$D2,C!d. \p'N:1m](/-e:8bYp8RUbQd磼^:.h8='0T* W`qy9G{z|B&TT案5n2~&bXIL zJ&#RX@% XYj>=[}ձxR9'zNnK1ZgF?,.fI4vblX`0n\ %](RMh["N8vvڰ;BG#YRX#c`i0& ik `i].Ðj5 jZ4:c!7o#rHl2Ꙍ$ DH8N @pXv(anBAnfk4ESfc::܁ò$IZ-SAT*5Q,gMlVBeр+>6u,ws(d[o̭"婩L$'&⹜D8~Юweuv+鹹lje%W֍FCgg`?8bbv& WIaX? S)!lfpRm(p^ [VCCgv _8Q9;z?/z]G*U|K>Rvd?~vOpRir>_*k=,xMG!E &@? i>e s+@@b,,}((*hݖHFae0"Yki~lfcHPnHj>b|"Cb1BN$MiRAvSYP.RI$ErY+5AP@[eʲV*"ˊ,k}6tZÐ cw8lN C lStNQ]:2N_hb7"C $I8]h_?FD"NOOxAv7`Oٚe/F%|[^_IЁF H!;%*^i)R]]pؽ'Z7-l2R\NJ` abPHQc._Vkbcc׮TJ#G"##Gvt  Ci4L" 8剫 IDAT ,%qîHDܑ+q: U0 ٛhZX :| Ow1AfʖVIthoo/PժhV*(*JV/ːrR.kS7xTEQմ*TU~ A4m7,KLF[bZe7 ۠($A& SfA IZeae2b&#rr:-d2 )Ux4לzG;Vl2 BTA(C:UeAP`64IQ6AN鴣>m fav>Hк͖ iWpHh1}͢-ㄌ.Slj4ܗ[Jz\ݗnG6~ *"tr|<'@bݽ?Ԭi!]GxdLJ(jZT7j,kdOF}>:r|t(|L(zn ɗ_WWCC'8y@׵36}1QGK Ð6tZ|o~핕HSOwM_K  O=uwdsh(G ײ6ei¹}@r/H{X+n,˗FGFG/\Xд*FF:N;yS&MO'''dp& x;u 82#(^Ijj5j=Z xZM<_Dtdcv}̶O}{{O~m;6>ЪTj>⋗^ye鴟;w_~HdсK7H|zr<7|ScLSZWa|pO jeA(*e(U(mπ':OW,tnLj$Jnu5_7aH+ZMى,z (*EEUXasu ܢuoxt+ *$io~Ж@]80O:;2qX1<D玶6_Y*irb:x0|DQPgqcqfUo^KY+ Q~F*ccQ,^>7ֿa L90}ekCM>RU>yj4SV\YTj C=ytHɓ=ns_$k<_Z2b1 Dp8l]>8{Ob47MͥggS|V78}}~ @^Bm2Ya!os~m*B‚@m57]_O+0*# f3yٷ~!U/^|%A(M͉^LFtEi"4.:Ң5*{#`i߆}h׭o`)MaT@~W[sdّS[QLOw{pۺr;T%\zz:1;JΦA$i :ÇX@YCPLe}C?-0U0 l"mmD"ujԿo @{j#jZ$^@h42c@uQTպO]Ǩj\jmy-t^uihdh4дh4Pd2f3C (aL&#,IM duL f/kSQ {.-Jؔ#Jj\Y8Vl:$-#I M@B,IVffe8|&#& G ]tQ}u&*?1J,3HHd{:-ӽj`QpqT$]Rϗ`JlqP*?j3 v;@ͲXh崣jF#(.,d3 hЀ:n ^Z vvzIa,V3!yZf ozE|`QB{ ^rm`0W`0 ~ 4n(].psm:ipyhMڲ4B{Ej\jT*,kH"IJ(zsD2AR7@B0!Z_pX-[l63IZ 2AU EM&igfÛ .EXg77A^Y,&JZX.4EH~*rR.WET^1D,0JNSn:Vh}.nkmȍ X lYfKt xT(8aV;dbXee%`<'Jbyhf|hCo}Ehaw5ܳt;`iCQ*͒KL:I٬|){Hd[h4 SfㄾK,Q~?;L_~^rb0~SGϝ;ztvĮӫO@ XbHDE~pe~>*܉(dYFASzGF:GF:(;fiIs׮ů^ϧbHgafwF_o׷,7Jm5&oDVۻ}3ϼ >'(Yw{puT*5d63qIIpX̅B#SP2h4YKp׆&ڳY HDt@qPN|^ftyLd]~bmJ[_U+m7y$M-J[bZ?!A|r9њe.cW9r9iqY#blhk TCC.0w@AlӲ hh<(z)aAW& ` `0]Lx2Х߶AIHBv 0v!Sw/ 6&4 an=+ #b3pдZިꥒV*ijEQG Jzy}Hq0y%!7Tox!,@^zGqAIm^7sשoˎTjd1B"|4ZDexnDܡ+f;:< փt[p͸u``tPDQiW_ko fͦFQTд^/L򥗮|;CCs>ɞn^.bU>7HHF;~j4$^R)##N޾RMO'^]^:;,4gMc$Iή곺jr3MqH%J$5\%AÖ k%+,dXX / E&EqH !e"U}VUWQy}G7̬껪{(DFEfF}ib.',&, JE*FNNj6k4r{y^\_'ϗ:?_:tl ?g먁켆7DoW $Iz̕S_$ |s=Ľ~+y!P33|1*|#};;Ç'ջWY~[OTa.%mn* {;ԙo, 'O=6sC^IiAhNGN=:UZ}bTT %͊c&R(E)iŞ Ţˉ4;[)T\y$`,mD!mNn6 9A&V**xBU*Z$:eF1& ȠKiL8 ll rIJ%J%RѪ;= @TƆ bn0P@dK&h^(q:[l dk 2$)ki:-Cs]]xh* [sAbYruw,^QxYTK>/A"@CKv bgd-H벵Ѕ؞l -XY4IQ4EiJ$I$IM$ϳI'p B%? T rV\tqBpm8AD0 ',#X] $IjBUg$WU -'!Gcd$U$޽ 2YV<0`bux^B֫ծW`Y 1&&{%ܹw  UPVo`z-KKg--WW;;_2CXJ빭hͦ94P$I2O!zTLa2K%>xǞ=g^x'ʟS]`{x*0 xK_zܹ>wM C'I HiFEƆ9DGjRI)TMyy"4u' )RF/$(Ң@3&"0+Tu)PaƓ` )gg bӱ]9ݶ` ӱmd"P$:!^A Xq@=ұI'Xg~v:^lDPE\N,s(n?`dAGQ8AF-Gi @$m"ZgAAaAiy($I" (^EeiY)b";4M(Rx8`(jHhEhRU EgGDy!]GCG%1} hQUE$i殪 Ci_XI84>VBڱ7u;vc w{4O<{ qK^׳!?++m-u:+&&r%tz`ùt 0 vҾvbF3܆-*H߫g זZ EXX8r+fejtnnZMoNu׶} 62 -Rfg4M+?~g=sOcw=ìW9{v__?4O>kwjYͦFe-C6@X躕JrrBu^-5ШMSUArOcF61\Ν;X_[̡CÇѥZ.+?r/b$|?|y\ٸ|ys CJ,J;g%ݢdHRC,[ CUC W[?ϿzZ'>'>Ҏ,-Ar\mqhAhpcSGN/}gss's?qon3sTEbg|NPNy>_g+c nW@ ]70M϶} 'u,ϲ|0\^KQxpAYܿI5KQض[ A;xc]w0p`~亁eaKP}#E8V1#V8Mã8$Jg^u}mh^ }mq4Dnf0=.LOw52 pt(otX>*Myo㖐$)plD!k ժ>Qzn@ u: 4$o" vRQeT Je|?_yo4ͪM@28lG.l$˅p&y U00000000 2߲<`Z]9ݗ@ "2/˜&2m'Ԃ$]@ 6fmZVew6g?`Mӻ1yei(D YJJAM+ g#zhX<ڄpw(.FUű}0Ƿ,#>Hb Ma#7-^A ђIDz m!EXEDe$ C*oDyvxKeZ&oղ }cj6l6 6lPpJC]wۈ܉Wn hYr336r2*>1(z< nr} \xaR}q~Bciqbcm)1U92q#C{=ذjwuj8GAhi@40ggKK%%fyw֩Sg4M?sOp{ !ԫ U~p|SO h\z]rs­67DQrRT^}ʛo^KtbBC *'NC)]/^l,-5.\hj;+Ճ+42r=43~ҾrecyZ^n:݊E+H2?_E`:yեe{>/nǿ}GR ƽC%kk]PZD,KOO&=rdB-@# uAVd)m<*"+\.'b?|cN0TȦ &QeFzNnۘ@Br76LT?$d2?_Be94ENdž؁un]$IJrۻT(@I"nA֔MK|"`uNNjN29fV02%.bQ)Ei"I2bHjmPt:Nce,Kɲ ,ϳ,KItA>z #XF^Z(@Ƅl2~øV뭮^ץ^vno_a߾lq~t`^u+۽Hٌ+D1H]n z A5Ԟuunoֳj |dC|^,=C ŸG@[Hk< iժV(ȒCG,Gjj~8Xyy9%1{پ6a h8a0\A4-Q;lY>@#0,X?EyFQA" s9a(E!"_d@"s9iQejzm6f fiUk9R ȨX.r^*)QF"q0Pj'@lu'`1낖zO$.BAW @r{qg kGwI@'`wjڵZ)m0'(ґ$ ̩KT.^]w}o}̙y&=Tz,wǏ{ {2vyuDiEζZwB=/eGAw+=w5؋5\iaaɃ2u4{\ RQӔ I#h._nC*qA;3?_ق4H=*DAd.aEg\7_7^0As?;p8,.!ec$"X!ߣNJCݮpꓟ|XTNPY8`:G?n[/dt^]IM~ԙ_:~|s=ϼ++@EkkZ_Zj\X[jzE|"4i٬ƈdʆl@uuL۱@~Te7oVbEs1A0BBFl 6 ʨPE0oӹBI~ x!ANnq BAJ~ࡁ6 MS C$$)IRzN@Kez6D(J)""M4M$,t2:͎L ųqce܆.(8ʡ J‡q/1]u- v00000֫````````7|;+~RvTQCTáf'( ei7-"ZmHx;! $.>+ܒ6f!d e(FmL$ C{^H$EQ4T8N0"q4M-ˇ5M/b0ryk 1K"q 9!Y MS e.ő4MjHӔ 4Moƽnpz!_Q4Ƶk 7 v`k[A*"\_A4]FTEAfˉ([$$^U>5K]^n/.zk |F ݟQ6/]ZMu]w]n]e~hisC?~ wx*k&?٧|YA5p5uʕ^i !ID |RITT0}x~Iu/_ܚWVW;0%:T9pr@ \ݶ/ 6{4Qf*Il%qz^ `+Y&I" 0aσgd,$-0v (yo|o N8KG?"e,gϮ;\Ac`=<EI 8Pe׌M \_=˿|~㻆0Nʲp;~c3z-Fc=P]s7+4%˼$ Q<[$vZ < DQn$7P4Dn?\: aAP8s9eiId8ZD* NPTUeU4e; AHDQE(2>طVp=twz:'w;aw `9 1)hMmqLv  []8N{2P%1n@$|^u|^%YaP\7t@nax64&!I4%FEI *B^QUr9IQxU TUN3-vzX[6zKٷ~jʾ}JDŽ'8N08{gp>AE9d4PPȹ_?D WxؑuD:u`Yr@-qzܒ {Y(!r9@ӄBAaU%ىizI~Ai* Jh'I | d tMzi&²(J 2`u$5M$4'GKO$qiR0tE~qL1R$yAiyAǎFQ⺷a$4Mr"E-"p-IsD~ ,QdYm"kv%]Ȅ0,/lX.eƂ\Umv8sZ֏ pZ֧ έZA&_\iaaȑz hͦXU鵚at:v$ITI iR.'htCEM:4-ݛ*(?ǿ znQ\<{vW>}F$8qg ʆ?l<` 6ʈ&Cl  ߅Ndž@ H(("I `Pqt~nxhCD_x~- }_ǏxлGvU,e=Ĭ(b>Hh躋z=0\0"R.pE xD_TR6k/Ə~owW5…WWJcG{'y n \(mmnມ,ϲ< ' >$qPA9Qde~P$~߾±cSGL=:SsJF3G3L 5E#d t`M e &YQ t)`1:Yrf֬jn\ p3*>Y|l#Ny ux|^D bQ-5N>:]`%rHQ"L Ay{y^yGhʼh 2_*-gEc$I76Zhkkz]6e~z:+VXriz 7HHS!AiNaT0000v^q.@,oPfvC52vwݮ4-uDClEde->`wo/a,M 0<0 qt C,$)MS4MQIQd'P$I"M Ҕ4(J8$ 0vghNC}2x8 #7M߶}t?/iPERѪUXT.RQaVkkFèz{hzeKXNLhSSycЪUmrR3}t'p0r`meXegr$qIˉANDY2,2i"p@z7 ɽ܆0N,K8P:|ѩ]MGøӱ!2Rҥfe:"+,4M$$iA{^E7A3ϋn"h7 w`<^Ų'/_yO>U~ӧ>}7y^(#L?ĉ~[]ݮn۝5PJ5]'[9e(~ݝVAIJ^Yi_܂ (Eq8iy<~T*)ޏ ^XEkf0[-2MݶMsclN@$IIX|^VÇ+ǎM4_|ԩ3/4=ԧk}Ep 9,s1B:pnpjkq~쵥b44G.QT=r 63d*]SLm2k5PҩzCN 䡘35ff ժ65Tԝvi0 ݶ:fOn :ӱBQeUe/!; cP&=o|q{v8:$9;w$"%H H$0((Aaq7!II9+,󠸆RIVJEUUjڰ>7a npUh`3L>Hʞ: HwwT1{@>=` PXo۾myB3t0\ \7\7t0<CPUAD't" A%QEV\NEsXR+ƮɺOV,E] |ײ8N(m a놰Y%IO\ 0<2 ,CJ 0L R8%I2ADQ?01Q~8JI$IM2Y8Qd hPE@^C\ rE%k6nn:t> i*I>hyϨYnVDll֔͢] 4Fe^[Yii0LlK ?>}}Ny7Hx;N8pPݶ j ya*I%!~ׂrZGoQaRPU!E=WA*a/@Ν[^[n,B3?JC1n$Jr:e#A!1n6vβό (*!0!뉉L>tz`UQTIm2[- 8J9 I8ZbQU*lС꣏NW* NXQH7}ok/6E~w~G9n'I(Y[Ptˋ5ߏ)`ǎM̷p1Z!ɎɇNA;>JV+_9ŋvs?o>G;_}8XvAAABpn˭ IDAT r|O0\ߏ'moH s(P4YdYyO4 #&<{1/_n!)4a \y n*am#&CzJ.uяv **iz ;Ru)ݮ=- ZhП !4 l1`qV2l&J iJ\b }9 b ffCٝ|(1Q43H'I 0ǐ} ;~' 0L0@P+`iZbNNK%RQ+AmmlfjzXocÂ) MS TnbB-Z"7k*fݞ㇁}` X{l}3o& ybn-ͦ91V}P\n% %l CHAzf3ɉfihPd,iB4Y9yYe"+I3̋"75s@Dv3U䃂GL:rN(-OO1u Q\]74] # R?eq~R3#wȞa2*Rƚth)#[{tc9'N|w~#_~۝‹_k_kC?3y7YPEt\kbDY19Vt EuKם4%t$I]gusrsu֫VHSHHn$N9 48Ntݍem$eUiD@UEfbE8FQxf_?u`nlZղ66Le>/dsVU8a*j7OlsDM10?B t3  @aY_ $dBQFWn] mI C1~w8fYei$ "M~1'c$I$90FA4%I,PPEXT*ej*č1POCն Ţ Ԭ_\ifEjYikYe`]8rNDU~t8ih@,֫`````````<؆6}/ A4h]uΨХ׳QX(lAw!#ϋ0J$8NdA7!e&9f98hA8M9.d$e|^"BUP)T2oXr?۵[-^u}@$!HxٵżOD9oWLM?Ǐ4dn7([;Q ) A`Yf aX=rhӲm$d-rk߮o}\@ \Ne~'.4W/8lӊ>OrgWϞ]HUcǦN8xā'/wu:Vm9(m+{7;8PE 9LӢPgJFM$ƽ`8N^]mt++z1d)LO秦Tnj*?;[뿨0;kus|Vܒ$َ49O/+낡D;^z|RO<1''9a_! `x$iVrɹ⃽D:hdlmk7VƥC'BA3,,/я>fov/>wWaN axAٶ8>K\7x C Йr"ݐm"ILA&)q n9&w6BK6%mnj#BQ$2@$h{ǿua$33N 4M{=s:׳{=ݮ .Bbhr1BJ%80D(sh10(,Ō X^V1dxĜ eٶ?x]߲rRQ?c?srҝĕla&YaCKn:_R}qkPҜ@$vS*!EJv"Lі[(a'chYw10v)nIv2 z*AW ?j(<@m\=|xС wEm0~|vzsn-[f%Xp>q ٷx`6SfrTΞ]} 4M8ztĉ'Nx&g@(:;>pbvMlxGCci6ZM 0Do'+;?=]w`1Ѝ &Y["}6FCy,ZwZ4`DztJr>/"DzMSa~F5viXW**,J hD w-vЕ^zŦ(rO?gv_xٝAe/ȺًmۡS$TJE3 IUm`hyj $jU {=7$ I?wW@< iJhea h4=]w u4|D0d?Y୅aw(`vmނBV&\&C.Y|kD׮u0Ms(6M v4%`};o%a*Nw0@7hohq4E$I/rVbg믯F̙ݮ D(Aeaabo3ɺ}}pzFEr>/`yq3A(CI i`=E%ƵkZ eFÀ0RQeuz:W.SSJEU*] øVj:Xබm6VNi vZ*2x4BfcCCwB//>}?P?-^\N~<<<,lz:aӱZ-ղ:++ $.P,2ZVe\VOhR:Zſ6ӜdlqRz000000^`3 U!vM2BDi 1hH*$.N-xAUA^8aʇCԽǀ-B'A˶=HUaاIQQAq'iJD=蕦)IdFE,,3l@#22p%5C!3A7.X^nmkeIӔe< ϗ&ydwv#8Ac^,˃+>}WtgZ>/:၊l_.'4WDd ؍ M##J۴(W7 {z^8a?чl?ݶX'OA,}Cl3^z_~par2OMMtuCpm;p}{xvX:.Xq B8zu(RUa٧FUy4p2&;رJE  de$ X)`c(@ßlqE1tA$v*CD+4M,Ka(JX"sᬕQ6--︻MDz`Сjd)`.3$++C[XS|geY8y}챙;{ ]R}i&B Ǐ;ztѩj1;ͦjYͦjfaVi6Fm!9 P`N19JJUjNLh:1[ۙm]0007e $el*ԂdR3$Ii)PaEQ^8,A;EI,t&lB40MS*4I"4(J=/CQ<|FmD Ofntz1Yg\OG02L!JܟJJ=m ?Xsƀ)@9) H#TUQ80U9 e"Pp<}֫``````````` ն0u:+! ;mizq'P0 2M[g*X]ٮ׽5M I40@ o'iJQQdyѴ~ ⃯Feυ%8E8FU~CCP ΛM3{X!}cX&Ii c0L:k@("y'$ 0u}cìzVkuȵh|^eZJ%x@E^[-{hFCZMGQB,KWT~j*71 a GLSbv}pww: AIM/eL^p>$Ns99=k(˰,r"`' >1 ʪ*Ub M}#YyMS4M7I$I,C|)EN7lg`6c]`wb}/~ĉǷ^}9+k_1p_|7#G&nsB_}+_yӱ#=ɓ-d0/_]ٳז WU y/,Lh e%YnV* lG6 e^kn $ ^:UH]4ag mc<Ȳ'm:o} (˸n`Zoh12-YdYNY/MQ$II$Ii&aAԹBhvD`[ Ib 6E,K3 CH (80 1ORQ *}M'0$u !A,~A E۵&T( k,r(a%'٢*;lEw`bsVſ ֫```````````e )6v٢̺`W AEZ< D2EyaUlrL2=DdJ_>:<r" dyIBȴfmSVuqtu]03i A~a$IHoA[\!1ICPPJ6˲$Ip ֌} EnYLvv_]]mwzA,=5;ztjoİ ,.O:Msaa}=1j 9'NN/~G%Zַ7@nm-Y` F,~l6 Dzlc}cclcy < =f @F/K[KڛZM|{223~-;6E2>:H|ߞmbZ^ Z[w>'n5W{ۮ+ e"(ʿnG՜ϟٱc^/Ex9G9眩ӭd3=g}sρ{9p=;ضE;g߾sw޺)VP`?jܑ:mdxDBtUq[͆דh~֊B ߥsZ:-zMFl_='|efMÇZ2?[Xmԡ`OM?=]m75'MÇ;G|rynwpȑ#Ç; }}lmkm:9^#./B愔+>ht=MxEk}wށK}t>Ifӿ]^w߾sjK([X胲,7X1Kl3׵c1FM}Y%y^ZU%,l(E`-Hgp8^w,6* BHBM1e1dz~uR U-&M1q$82C)~ob' /|O*-9Ͼ}ݐ507׻ Q /~{_S}O{?o>c^7;u_wPU@#sR*矿eϞmwo: :)H{1?;r˰#G:է쑀j֭;'v4IvZl`Pxi7FշZruGc U B0Rʢ(R(2edPdb0J)Y?&H5ZRJ9RƈJ)ʲ(jYT5Fd}+rt eӿ6بJU?{⍚OLj ^/ɲYV~?ANcgy.ݤ(80+ZxXhCf $Fb```````````! |XvIY0L1IaiQH1bVɋ p-Z>c9gkV6`d"4cժ1FsqBa~pDag~Eiu1<^wulZͅ/ƥ Ab^wa Y |c9#dñ-T_{O>XGƵTBHYJ)%wBz0E!I!]by^*:DJe"MsTe8˲bE|ѲRQyB"mFH`I9JmZv]۶:hkYhx & =uW!3|KϹh;ͦdT̷({sqWM?OJ8g?pWmX E!.NJ؇>o|s2 lD",jﯠqR"\\ `e]H"(0*Vlz9B!uy9"LO/pv\}dlzO!cx8K;vL޽m߾sN9˲TEdVFDӏ^/ECbZ -FUK2G`n8Kˇ"i(J1j~?E,j׌$sNaCD[R8ΥX Vu&e)qN1g 5A=,"DIҴ(Kc(k18VT贇ȩ28eeOMz2u7z݅ql5~,e)7ɸߺ;/F3000000,^)|LanL*[rR!d,K2ӴQ\[C~J\`u q*nxpN>2r0L1QEQEY.zk4\HY kVs"]<78>H`|DNJF>ll`6 =Pjpz"S4Ua*;Gs=_| zRwiBn7!nYSg*#axKK~?ʞ5!fЍW{ÓClf3M/ 4,e.-ssŰv;/,P)t}r2 ]Ts6+ҹ|ȑBxHgapwawpW0p4Tm !q+ìjw !1xK)w}٬5nԑH33صkjf5ɵ/Kdf ͖zх_x#,//GV˛;9@z)ue7\v]XmiCnBcI-Py^r,Ky,?lqF5 B<ia~;36oعsϘia@xVƕh\s͇}ts7˧NUС嫯Egp^}U'^?α,v~So=۲(RGӋO}OJ[r?M}|nԔ{9s?|$M 9LB{={ٳݴV')U.-EhtӋ\61QmNO۶[4psm6Jl)(RێLNg` BxԂadmhA6۵yp׵9kK)mۂK)$2]uA[lzc;DXk4a6LZ-shZyS|h Vѫ=4M. ʼ{_L34)1֎Vڣ}#P =60ߪpztz`xEN=:gOWY})Fg\X9kss~|Y+@6liLO׷nmim[kf9O8v0ꜥhnw'WLMhx^ hpDJ)ܬ򼜟Br8(0! =IR S! u-׵)#O2hl2dvVT[/z$c+vrT?hR[_˿2Fw옸ox]wDg>q\hWyjhBУ\gg۶MZl<~*,EPFQR$I*3F90R,yms߇SX[4\w܀chp>X#Q8/a#zƷBsZ{C=^5~6߹sb˖[wX-eUɥf\Lw bRhi)jvRX 0ɶ9cTY"j7O׵JJIYʲzAPYAeyMoO(K--ةpy9F<'M/⺶Ze6̳iQu6e\vnYL)R0BHJyTS)B!YV*E0DQ 0rM !>Dq BZ- 8 _:|CL"*+6uj9.xI:V Bݻٳw R|*朳o_rVo'?ywUK?_ַbb/|ᅷ9yϧ";<5~\׿":#?~;W_{9CHlڄ:eϞmwos3^r!4OOק-[ؾ}bj*زuksfqFQ6.A1ɷgk#KKQqz)8X29BpΔ"J)JIY ) LV&McDJ{QHEpBqBeq]hC$RJ)eY,+x%៘Nc0"4Sn7DNz>8Y 6sMR:Gz;vLvyӻwo# }/JB]s%;E*2a8 N3:aBHY"e%  !G)Xv0BB(%0Ƅ/KQReź~+ "t̴mv]?ګ\R IDATvQT6yÿ۟C`x΃瞃s;߿9{ֳf;g߾s;+;jR\]eڻn,(w5ӟ/?_їO|玻eB?;x9LWCQSJij*/lC2v\rΧ#NGK]u:|nSb'ty&N71b$(g2-A_t !]H,~?E0+Ke"M5Ra QJ*EҫSJm´R1InB)UΏf((TApkUVo۶h[x֫5x<+~708I(bB? v;JiQaEiZDbyˢ(W|_TF߷=Ƕ p,ez))%V b*õYU N+$9"]^CR",+0dy.WE ch6=J)x{unZb08wWdVuO-4?д$wzD]0M"IN'jGfq|\lb}}GTYV"lÉ T֦珟6~Z8['f3]Ǎn7>rWc5m` ALi[Z}tG}tGydn6vvg>s^p .?8zZBU5}zU+6 Gy;_gG*dLBo- 0,dYA GJZJ))HqKJnCjeqq7V\a8l6c<f<|\g7E aaiess~?tMfQ%IEYIs!ms(RJ,j#>f'@I IJBD,+9gYV*P2IQr1Qk6`rgxw܂T ݸ,ef+)_ -*X2ZqA *uqj>ʖnw k 4sqinY;BE-ZR{ͦYAF9EUZL<w\lQ5f]%,KnG^~e:$ 8Γ$ cGI)(eYV0FhCaV @(]sJ)dQCvqm[3bRJBJ)R(<#βj51L0;-8!2{9x?w{'X$6..;ιsNN R%L@T!s&/p޽۳9k@sݵk=yk^fO >vۿ>-h5~;PO?[<[jb|ۮ;C)| kh?<B] ݻmϞm{n9 ?O`\w:Ҕ;&N?u;KdvixfpӰ,V3ulVTEEI"(C~~?-K&Ia'IUIeyYY',2J5"@-B;?(rePBua!mYRBHJI i  s:M]ZIbYͦ(򑯤i7p˖Z ˮ].xm.ᆫ~_Q]թW]kUB5]OحW?%eN0>klt˖z H'eyҀ4C3B() *!J#\ ,3m+`zbb@\d-BAJ*i1z-pɥ …RE9/R,+z4 3-,WjZQ!$c R,ROeǨC)UJ1F7&P=Vb!%W AF Vsm6hZ h%(J VQ- pk4W_~ ;(Z !G..;nib0M;'{u)% /~|lN~=).w~w?T+.hx{n߻w=vvEۧ'n{~ev>lRhi)lbi w}<-.QɢmtG`feKWybx 4@~wܚsQODA#~vZxy9NSBKKQ@[q>\2ҢYV)RUrMZX#ZT2 !Q!Fwig} JT kmC/_&Dڃ Y>CziZ$IlczB)#D)-# u-׵|<^!_5o39LMD\ g^`a&0{R۪0/ E0\_Q9pxaӶZt^\ 1 z+A꣔Z_U@yaEQ$y琵$I4~?EZN`g z85x5 umG÷`"q*Pr4nZJ 5hxVpǔ-FC$. )>%;{#M -W}*umZHe.\x3-[Ambٳm%uG[cm,|K~_|.?/zBn>F-`8x ? 7e}7:HƘ#u{JIBHfe)|;HYs1zH%vd4R<H)ɬz8v* 2`'08,KI#`TK)]BJ,K)RrΤe~!ZRJ(L.E(v(*t"_լp]ϳ ǦnnB Ӂm[Byd%y-JMLU $2H~HNqףWx69T27Leb#d\2ur1׭nYNd@YHӕuw^cl!~kK)}Au<[JSY IsN,Kewh[fY>ĶRԶRg 1"%L5LMմdm|[^]KKr9zFÛ &'k5=NeÝ`qw޶w.~;ݾm[k?I~[hxo| y_ZB׾yϫΎP}O^яq .8W꯾]OxMf݅w\y]GV[̲?7']ŝw>O_⽌Ѳ'AU2G^VS86" N'`zF!Z7.8:`t.58qAwezq0,(ʲ e)8BEQ.LB),&rkwdcy{c6 Y&Bs~^tcۢh?`rߢ A ol.(`>qX؀YEm- OQ!$Kpg6. Ρ16 umΩeq\LN{4,EY wE!mBDN |Q HY,+ ,+RjJF$j6 /Xy !dS HF/?փc=]YFSdeE!pqVv5ʭ: Ƙ.@j5~gC9eZ+F`Hb5¶m[<ϱmNJIYZR vڤ,'{תw9JQkp)E_nC]QEdW+'EuȲӉNgANjxyvE!]} KKR<WzE-?3SӓZRXv#g,+;v=w f~e;w횞 N0_},eq_~~G57<ѶC^Q؟+NzE;O}+9Bo^~ǽrW".6mfY7={ $vbl>9ϩ) /я~=' ?_~qry9^Z q?Y\ 4s*ǚ 4= \ ^V d\j2HIr*>AQ՟(R<6g1]Sr~rEE: /I0L 4-BfY^}2MmbArNu2$\)9C)Pža d(%JQBt~sy64\JYYk4<5Ji1F!o6=3]~P5>z##xl$e#o_Y[VR)F8tjZq-ƨpBZR*[G O^،,+#D/+ZR|;x1X|/Ŀt 3nP8Ad]w|϶ZᜃE)(_gj&M7L|h(IpSclm?6j縷\noE*9!m9+ A)Az !DJiY cy!bA$ɱIa~ BH{GС1"fY\ \y .q,cjm3}\גR !)e[_EQI~EE!^iZe(DYJЧpY #akʹ&XX+d4*ʲm J(L!Rl!ܾ(j° p|q]uqɠV́JZ~g(ʴ|K:x@yͦ71MKHuP (ʺD+[hDlz # fb69YLTz{ba䓝ÇྏZmjkJ>3 ?_m7t_\Lβ;8kP !?Q%QJ8gO_rɎ /_ĿL\oj*؈8prڶ6,S]B/䑅#ζySw_݀v|WeuɗzYq=21QY(F^6[aczZp9͵"0hh5zh4J6lldaDe"8g,+B ,-:˲iZ*%T2 (lNllX ufPPHJj^9XQ5W1000000000000008!XwWW7eb6hȀ"8-J)ygQHBHs!Hȯ 0_Al6=>' IDAT80\1r~S )UtIqEYeQ#x+08alj! ).×NUDqpmI|bݎp~nGKKagf[4t1?_rϾছݺyw_σ]B)R]u;/d=N$"\ڿ}O|СNwsΙ<VU;?9ҥViXk_}Ue*jVzզz۶lsE-[`N?dYI.$NY1:! XR sNm,RJ!TBHvq gpA !Զ9T1(eSu1bBa*ˁ,%0!Ҕp۶ Q, 9mdZBI8g0גZY&:$J) &6-p%%%d"0B l&9XOqN-"XsnYq,'9 q,qk5u um۶y&'OI'I%q'c-߿tpoY ;R$)Fnjv~O ~p#<z[_sHzxbݷ,g\z_}Ϟm{n߹$ Is>xᇏ8 };yogꜱՄͤrE=^#5Q tp!(*8(d 7ʲq !(BKWD3@6 ZCC`$jipB(J7'cJI(%Bi3Ơn4|J}ߩ+Z>qlB$dP%3~= OgiФA M{<"RK#))z|fQQZBnT S } "h:|FD=!zLPJYVX5?kmV}-Ak;5U7rg^̅)' rZWڋC!b0ԃXOY&65nyeqƈ9RJϳ(, `U"υ*IVGk 6$.S9×,<9m6øXc.G 8"Wb+rGB][t띘''{:l;x~7ٲb88甒g%;)un嫻woݷK.q%;;oڐ8Yͩ]Zڧ>o"/9{ыN'^Z:xy9Hد0QF2&Nʎh!MLdY04sa(^/sQ",+ҴBhC @ \aRb(ĉi!ŴjC`j[JRDJED&, Bc{`OmnY1꺶pJZkqj5%Z5HQ̶ͦ2y4ciMMmqX*M J*@mr$,h5 x=Ƚɐo2c{Ȍmh4-0M :@}M  z$ f@ق9~EB5xE9cJQR,eiZq}K9CC`L1(`i)z#<2=[8thj֭ͩ 0~//GNͰ,69,-Ek+R^wEo~ [8Yzn7c޽~[Y0~C~#R~u'wWrbŝx(JUy2l tjW}0r ,e܍׋R !KKa8΢(/K%dYHy^sL/?֑@džT3 $@ B62JO>$ml>"V;"f;T徺HDքd_5<|MH!kz ST) b|BfC~HE1eK5(uYcᄏe &R)ts׉jP#O:Ӊ0*(ʋB١*,' S!dcj6}hc8&Bœf{qF&e`Fb```````````````0@$:\,Xfwj baTFBR*!;v^{BQ9oFl`9HО<%bd\n7Dg A"#KA.G3^j5.C3uZi6=ӿGYv;ЇӟFr+ 38 eo.Vs#AmYuks֦ 50L\,-ai//~y^cyg/+ U -qDlը'>b۔RXs$ !C6$U e)lXQ%Z!h/ܤ8!xEj6vDS0͌RҶ-˂̆) d@VRmB>$JaJP.MRxhd= k:$m3)Uų6M )UiZEe&IR`Mj3zWiM9AT2ܑ?ڙdBa$NJ[~?[~?EpޅXh|U` 6,fYRhثHWմee,/GssC:O<t۶yM{Ԯ]ӻvMMO7uDz8N[ ީO|-'Eb`px_?- OL{eՍ~$@o|&DWcOFfNLUF(ణNCyIX^RDQV"0RUsH8REY SH xKA8ɰRB ɦ*$V!U pAHuZCP_Bd뺖۔ fDQlI!IJBH;P,h}ȱ:DDvkDl ł#pN+RQ2L!0R'l4<)d&ò &N*9$#Zw5@ ᘗwnBqB$z* S!}Ku)ñ t^AULP@jF?..U\ 6 W1000000000000000x 6FRqy$IQeڬt3dW,˲(Dzm8p׵|uhxH2F fӭs@( s0?Nz=\(z$ z,N'ke^E-\i6|v ߷[FN9a~#_#kY,ZW^y׿+ToY,ˮ`կ>S$dm~ZZ6^^w1Z-_/ QjЈvR^ӉRiBByǙrh/ĝ((J), ! Y4ěo71,fYt5"jh߷2k6}DU7Ȁ|HhIᣤ42Ŵ ! -/!H ǖ:QH%~Dghc$Ff)G:BC*RrTU""lg!&C-!c2< "&kFV0$u{7&wtr5h5 tӄ2i#7000000000000000x 03ڬ6&M,;4ˊ(JӴL\J-0J<x !<06HJ#u-۶l6|w?K0aBџRJel@ ]w,z z݃+ADvժ9Aa2w8CMq(DQE97/yocMKkfCC}Yp60 gs~,품'Cݣ'Q^MւpЉ:CH$Hd&yv+SUQ%YYEC%C;))SVU忲].β|\$N"4Ooh8p4wF]ZJlB/ldt͛aÆ{w̘1%%%,wfv6hϞ˗_uuSU^]fUx|m""Ocw~ׯi!M SS0t45- oa&EzMÈ@G]ᢏ.,X(X,Yv\ PNN*+5veYti@o>W44hol.Ce{.Q'Nz@{bl?32\B[|{&eV\ʖyHoԼ=C2 2VDkX0Z= Qk5QK`G :ły ہ3)mLÝ1w88>Mc`cc}>ޯiz}ϲ1ϧz0hPhj C,Yn@ !Ӵ"McP8%[M.I%Id˒$(2*e1-͙?\.EEY$I0 KUP $I Q ب״O~7s羙X1*Wz믏}]tEG!|݋fϞ=}Cfff?~7MYYY;09cݻ{|癙++VO_2Ŋ~)\p"x&D1ͨ~"cyK\L4M]7u ^y˲@$Ă4C$rTOUTUĔ~ef#mI].Υ'1SLtpE}O6O[KzSȳ2|NVIĴg=g=ߑ<733-S3I|nj>{jOkbzɖ;fS=񾧸2{b~VvŖmmxy4-]BXi1k ò,+b V @N`d7s\-z饗jkkc]uU ,֭[#|{YQ,y=O쎂 + .wӧϟ?37n܌3tr7 K.ڈ#<}ݷn:y-,XGe'bYVIIIEEEEEE.]^{W_}.--]bW_})}X~m܈+Ԑ-=Ě7&JȪdYTQDIACIDQeA@ IwGM3xcv3"I7ۍ8RT([g0iiэSrsӣX5?xLԃl16!A]TI]U, Ɖ[{9}0~n Cb[ykEӧE ? ^K-Gl~U4ߥYgm\..3L. ~c!E4jcnݟ^E>}n+f'>ڨQV^=cƌ'|rƌo&gyf[nx<կΝ;uT"z׿~W^~ ſ.\w~nzFcʔ)cǎ]xq׮];rȖ'cv8p<0{ ׏oSc^{|wپ}{yy 7pw-Zn]}}ĉsrr&LwOQŋob N 92eJ -{<ᇦ%4Y;5 w ڻx>M>O6 w, >~@5ԤX^CmJʙfii{5okr)5{"9j|!N&7v;Ԝ!'칹QdYrU5W܌ӣM BaaO\{7ӟ4_~yРA۷oVCC 70qumڴiĉSN=묳xhDW^;QEE͛WZU\\JKK$;v+͛7|[o5--*l$DdYViiƍ7nܘCEwQoKQQ?||FƩ-/:߿-"="S k r)0`HU%YkEȈJw֭ᐣw"+HEUok XQRTUp!e:-/8Or{c(G/[ѱӝ#oP~,i&=,1e/LebK (55YUPd/FuLrsg8%-Ȳ8pOz>Kپ}{ZZZ^\pcǎYn}ڵ+UTT;w z㏏3˯->SN|)))}7?9+++n仳S,k̘1֭?~ϷMOMEAo֭[zرNرcqiAشiW\a$IDODV3g;miUUUEEE~^Q / СC$ I^oN[0a~aҚcf(fj|{9^cԤf2L;}' dY$I Oel$֯_I& /_>i$_%6 u}߾}=zp\}W\BZQm۶AUUlxfɒ%C 5k\pÇ,YRYY~`0r>?|R{FUZZSO}w;d;ǓuVUUU5T7{޽~R$׿eIGD^ǣ IkgQtSڹxr$LN\'R} }^YYY>lYYـz뮻.`#rIN+6mGwl={LL֭Eձaݻ6ʓrԑ# G,?_xcuwdeˊ?55fۚ%|}F7It-nyq}, \~y^ڭI>Hl߾}n!^xa#{_׍EEEleKž;2iiiD(J2-[|/bEEŇ~XYY9b" P^xXFlٲeȐ!=زeB.33k׮;vc|ߘc.nL1Wے/כjՖM2M3ė TT W$ΣgsOJz5O|~vKSu.]*++Y㩫cYbn8Я_?"ڱc̙w/ooʕ+GyḻÆ , ɲ|Сd"jof .0a "I?~ԨQO<ă>x[bqf<ߖ]ȑG4iU>IbbHt?~?9{Ϟ'_~/>{9eʔ{gʕk׮eǎCnll{"-˚6mڅ^8uT"9sfnn=6SWWwС>`̘1ydɒǏ'(={lٲe'NL48K{W<쭧}(3 ?yv,9÷m+[~Fqd72eJIIɚ5k}Yf%>iʈҎ ;n<3|E]|Ŋ\}˖-'"EQnӧ߿׮]? bvӟΚ5; Gwsέ:t v}z뭁@NrvrL1W23SngW߽uܲх=~U'4g۶mՉy u],7˫,N<9+++'';|@֭[FF;eY={ڻw5k]Ç`̞={Yn0RSS-a Q/[p||͛EQ֧f5sG&LHzc2vaɒ%]t{~ܕ @ PYYxlewߥ.xOf<[Fb?sNjj%\믳'=/X?!;;G-?~|VV=4oxDxg[' <"# ,|rrrf̘cQ;oGwe566Μ9_~NgϞs̹+nSzVKW󵇵'}[%ҳ,?n_}O8yy(.^h`g5Ķoߞ֫W={D84M***h1t6Q3On-mZS}m ԦNDzDT[[[SSs%$ƲmfͶ~i~d@g0bD= 8 UUۺXa;z p&;zVӧMJhEq!8~oߞ֫W4M***txJmmmMM%\U5^ZU5^ZqQM:zp0M ߿_QtNW1=vXG (榤t@: UUBPGruY= ˲:z y=TP *КP3BIENDB`XQilla-2.3.4/docs/simple-api/classATUntypedAtomic.html0000644001725400016040000010776713273140077017603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ATUntypedAtomic Class Referenceabstract

    #include <ATUntypedAtomic.hpp>

    Inheritance diagram for ATUntypedAtomic:

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Attributes

    static const XMLCh fgDT_UNTYPEDATOMIC []
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     

    Additional Inherited Members

    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Function Documentation

    virtual const XMLCh* ATUntypedAtomic::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATUntypedAtomic::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATUntypedAtomic::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATUntypedAtomic::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATUntypedAtomic::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATUntypedAtomic::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    Member Data Documentation

    const XMLCh ATUntypedAtomic::fgDT_UNTYPEDATOMIC[]
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp__dep__incl.map0000644001725400016040000000046213273140074021331 00000000000000 XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.png0000644001725400016040000010275013273140074022045 00000000000000PNG  IHDRq$QbKGD IDATxw\2X7ZG"RV ZEq,WVDEEd0ǵ$!_==wa8#59ȩ|@NFvШXR۶mspp ;YAN(۷owޝ@9n߾=ydȩ ݻw&; @۷oBT@> 9ȩ|=J5q ̘1(IJJڲe^`૮n>}VXahh({u?uV+&XG>y򤰰~ӧOR" >\⫯Zda>`K>|xTTMN IIInT//xPaaaPP!ڷoeee{ݳg͛I ~ɒ%FFF-ɉx](ѳD|>?///>>~…Gm]]]??_prrr>}vڬ|PSSؘF! MLL\\\.\BVǏ744 ׯŠ._,>1ǖ-[d`…|r*@$%%}W{OJJjT*Ȉ\[[}I&8pf7V(r&O;Ϗ 7n\PPPFFĵS &}">9sfݺuֶ0$}O<۷cbb.\xĉ0kLJ^vmxx8 Ϟ=m۶{O r*@}dȐ!!C49Ǎ7̜9333H\.7))￷ܹ9s_.PxQ/_^byΝ-Z|rsssP]]1~;f 0.\ᡥ%!q2w!n޼9vXf(ϟ?x߿SӦM4hB(\dm׮]ϟ/X] ܣPyIII<oҤI[nuI\UVZ]YY󭭭illlJKK% /|СF߹s'_"k!]]]cc㬬޽{ OեK⳽}c"??_xgs玃Ç>\.Wݹsg1 0 ..X] TjnZt㉒[n͙3G(MMo&<<ȈBv!TPP`jj*Px w&24q.!$$$$$ӓm$ȑ#?!bN>-p,00{޽NNN]t97oޜHL+1 9??yyyDmP_jKKK5jF%}ƪӧOhÇٳxeȑ 5xÇaڵgϞp8\.Flf}}}c̚5rժU)))[dp[$첲/_nڴ׷0o߾G7n_1q`֩SbŊ}-^N1_by۷o 2dѢEK,ٺu3׮](1CEFFXYYy{{t)a:tHpW<25hC޼ysСR~Np8(//wttܴiҥKB;wٳ^F?X,ooo)2ˆ[@ »TZ6cbbq~ @:t0aY Tdhhj*Y T@> 9ȩ|VRRrm?QY|>&ր P^ فEKnU\|g~::nÙ̌Z LOѬȎ`%P'EF//q4ps\R,l6!a`oN~+ @JK;~all x<>Bð+WVa+*޽7x<>!qam- !qөns22?'ҩT Ƿ7 i`#Jȩ 7 kѢwfh'>FYp?[7xWpa i˖yW T#$&T#%W+͛'bqg_ r*ȍvl2mmM^!T*emTqzht:o_;QՀ9ĉT*E 37ן5˫Mk<_ڱ55aL9lǩS ERq|mz8fpWFIp@Nyq|˖)%xJtf3qbORmm͒%}9ȩ 7\.cpGVyaBϱc{"8P{˖ ÆJm||ƌ\.E:42((oڽٗ;ȩ*3f?qb4+zzZdV @˩h~RT -?/E*PB]Z;}m-k„rr5䂜 -qwѢcW &.03۽iiyd&/4㡡WCCmͲed* >~СÇʃ ׮=?gL܋p@~`zth4ʮ]ll *UM.ȩ ʺ3?}*OHrw#;y0脄-*b˷U9&|T?APPTee2p=ЮT'nTQQ MMuG(ա5#B',S@2Uա5`Ds JFuh  ` a6QQZFhȩ/5ա5`DANǨ#B(?hn.Fuhֵ~.T@{Guh B x>ЮQZFr*jϣ:8 h`Tփ!AN;0AG(,Zt r*QNxDv>"T@{:S0"TQϧH|Dȩu:(^{@9"Tr?" Q;y>}ɎA?Vڽ{7Q4JKˉcp8%rYFKJJxd"+W |~*% j*Q__Bh+Wzzzz r*|||Ȏ4aHllH 9ȩ6a3{YYY&5eðwak-G r*mĐhڇLMM[~I1E-[lذad_Yb Smkʕ .j٦WfX<oǎ]tz11%Yf5k8xE׮]srr222ڶms\\\͗/_ ׀0`BH%s Î9ҵkW33۷8qSN6m/zxxXYYm߾!rfΜYUU%x !͛7{5o33S[[;22 >!TVVFT4zd''"e K6¿4x#!`0B :'&xE`0444Ν*))ٱcGzj[1_t%xTTT|k!@NDr*OM6MR_zELԥKG f?v1kaa!Qx={Wtmy<Q)QQZZ1ALLBY~E;̩9B(55q6-Xx… <Ν;... ߼yC|Ab ނ\.͛87n]5 !(((!!a#Jy<#)??ð={ rww'>ZYY ī :Y%s===N,{'''eff.XÃ(`Ctڵk׮"Hl!gWWWJ2eJBB78E6 P C%T*Çl/_ z5Ԕ8^YY,^g6B(3386VDȲed2}}}׬Y~:77ŋ~Md.-,>>>gΜ4h0 SN;wܵkNO6m999^/^f͚s]reSLY~ǏƎ#ëWbŊ'Olذ! @J! F6el FnܸիW^ H [Ȓr@A! S |>ԨQ#OEEE``ʕ+L&ݱcS<== cΜ9FFF&&& .YgޱcGSSdJ,WgРADy 9.BCCgnnbV^mmmm``WYY)x ŋ /Y C|/wZ!tiTVV!Nba0 !~jQeqܓ'O8^(PI,ȑ#O&;Tz_h,@E=~O>s6lsiÀ~*@=RTСC+**;W6 9ȩ|@NQ=y:q .0>0r)|>Аel̒cUUt:CljM1 {{8UyM$=z)\9 ?fsF/pbhU>Cij[Nѻw:pʤOYUiD,-45yzkBHrJzIcnݚJGr*9FSc80 PЖ-S$Ǫ/]J{0VȑRpx^^W~?rdxy9KK]B3\j03#;fH=lPrL&TPTC*oʐ>%Nݴi"B73|}7gh_K AN4]i4ɇ*l„'hªw3y<>Jr%'Lٳ'GrK!kdd7}:yܸݛ6%j\(ݻ[]sg3WQQ&ant:U!޾-X-hgSn,:xZr* YY%vO_֯3Ytp!D`#FtML\nbܽ!JS\y%ˌ6M%tB|>aW%U?줤7\ 8~tt*r*@26{‹i ҥeF<{|̘)8a={#mIT#&ûx,\''3N܋ۦ/7LHե?ɲzvVT8(}|n8p˖) @3gZuZJ09oh7Rj8 @\Izt{ ϙ3PRR>H~"3ӧr{{&O߬[KPLNXmjtJ0Eb3 FPԸS @{[vdrL㊊://ϯvol$Xq*!cT*%$dҼy2yrÆmkreQǙ3ZFFגg@fUU=zl$ߞMSӷց~*0+*ѥKizӦ5Vy,_$1"x<ݻ2T 0 }AaNשSd9zSc !޽+lQDShFF/*V掩8W_bqyトVNN\~qqkjXN-n@s8mxi==I!-- uRSPo|>{cjbǧ_`, N5010@ıOZ !!h֬:vl ua]Z TCCU z*.{z؃*//ǎ!l`,JO00ЉY5}zXXQ˽ #.ҭr*jE1|9ȨoO_it55iaa3ׯ;ȶmS<ۨ" Ó8 (.f=9~a^^E߾[;"Lv>BR÷cG~-.DZmWh ˣU2c +Wҵ5&N9oK?& ˖y]{FP<T JKkΜIzco}7uj5hk+MPF S )}D#G 9zc{.9ABTTFuu /ff뭭Av\ drcaDR0lnҐSPiiyQQI< = IDAT͚Ma~\\,3NFP &S[Y  /mݯN2 ! #:h4ʤI{w՛3g,[#B9>gO:ydww_~v^:hR`2ffzTA aC<ѦL6B": x< =ӯG[R.JR~Fh;L&ANXM ܹǎ=xʕ< tȎK)S0"De!T%ȩ&&rѣ6o8xpRjJr v!~r* U[pla!tL eɎHM0L Oȩ(HffQlӨGL&{0h3CY)ù_!R]0LWF44p]{޽Ν͂F 06@v\GyB & *I9yQ}={%1m m!&Lqzz*|AN@lիvL;u2[lMLtɎK8fp4BjjX~qr*r]rtrM k1#㸲S 0"TW3U_9tLoii0gΠYBTX,b4e̩Fʒȩ\NNSWU6s8wBiS>U JKk\\,ɎU lʕtcja?}zٳllȎK)_aӧ72dqJKkt&;V @3斝<󸢢9,l_h1msD?U%RԘ1n0"D˔¹_0+*ѥKiӦ5:ZÈ-𪫙~#T)*yy@蘒x JS 0"Ds895ztrq~&d~й_YJKkBpR\\رU^^8vl:Jv\*T#B4GYY-Br*Ocjd׷_@gǎ1UL&[CO2ϯӂ1Pm%%5)Ǐ?˫pw۵kQ4!ϟ+?ȩtL\I֘8yCTys5bqTWEkANNii͙3)QQ>~,wwN}v(![7kh-ȩ-77ɓ'dG2X.|LOԤgaaP rQ ܯR) > S*:n8-f\ϯT{ GGGʠP:b>MN4Sb2٭*۞Bؿ';6?e'p=9s@Μ93m4P=ž`q\٧/*rj0h6 PL WR~*T `2U_ EvvIdZS*@OM.qt40r*@@NUo٥ȩ&a̙dմ3f888711 0,++K1sdpW| G^^^/^h%Μ!HѫW*‡LMM_=<<<<ڭ[;w3$ #KK?¢\B2}JSa@?=0l񵪪j٦WfX\.788l̙DVg Î9ҵkW33۷8qSN6m"&p8k֬077_f 1a'Oڵ0`B8 !WX!vpppDDŋD/j!1]dddm6)!Νsqq177_|yCCVn Q+|h t:]CCSJl~.\pwwܹ')M2UV=Z|D+y󦽽EbSvUB`MOp|||||| !{'OBBBvѽ{^ g 2ӧOiiizZn1ԩS+++>*//^fee%BBa0sϏBHh #>>^zH"kLd."ѣGgff&'';99H,-bbb`k=~[ ^xQSSSSSKΙ3S7ZMMͰˆV[[K7Itt=qܹsG‰Y뤤$b1Q;G4 u__eXZSl6J}Q⒐@y,%LTZXXHL|={sݺuKxJeVTT *++%Zwbv1ݾ}q'=$5&2^ZZ1ALLBrj8;tԣ.*LWW͛7-RUTT;wVVV'q&uuu:tHIIq|ׯol"T׵Q;oVN??r'Vrpz#BBNNN?~tvv&Jv:yd/zzz!:.򙐛keeE9jԨZdJ### 7o>yo߾cǎݻѣG3QXHB puuϗRhi)bᶍeGA֬[hܹs[)śѭ[mmmz= "q,DGGgҤIqqquuu.\3gNc ']]]%Ʃ <--G[9.DS#87 ,,,Tζ%J^xo %ՙ /Dn,bĉv>EEEq8&f͚+%fg I'?BB G+%{{{gK222h4:::g~xmrJd2|~lllEEży&LPQQ!q^_\\{-Hxm"%hUUV*^}Ν;'O!npӦM[|yNNΫW~g7zիWAAA?~D"?`0#{SLY~ǏƎKoݹs'00Çiii˞={Lf544Lfpp0BFb )<}bᤀ PvpW]=zխQȩedB aNdG!OSʎP:Jv @߾- $/z򕜜ׯفTc2!Gb*w:*-q6EhQ(_k@uhhȯ*>8R64wd[SSB64:WCv,2i?|V'~TUm۶)Su-uTW955lU0 RBqD9s&:dTVں#G4=wȈ%)m*7v~Xm@RǍ'eڌ5k*,$ŀںÇܽÐd8s!J9p`_ݻ8:xЧKS۷"[SRbMv8u[*2p3ف\OM>>1 P(͖KBE=E*~H. *Ma/OUf  ~2wՕ94MOOklƞdP0*1{ȥׯ?"ԳgSLҘ֞U55L-:ZW@vD-eѕ@r*ɢEQP0`h7yՕJo^YR1/*޲<jGp%; m-筬D FS "pOHxŌT?Z(BޛOxtkrCj[2 tQÛ i?0saog{x|Q ɓ "SRr_tL&e0l0 -_~D5q曑#E $qד&>kWkpjH!NIHx&K@~%5PUU'^xppbvR|H-1`c r*@Gޏfs,^<ƨp|ss$11Fp_S9ŋ/oj" ?7 8-;~jxoǿ{7sdV kyy9u*Y[>os79q[ x|9]$Lέ[o+P9,Qb0 ⌌ww;G\ϟVv+#[gϦZY_ҏYWb29BANmz*YihlOc{ֶsKJ%)魝9فȩNJʇNq㍫]'OM)ŭjgJVwHSBL&! !sg.],]{vHRRzK^͛oǾ};=:onJ꫍x a!C}@pgy0?631Qii͕+^ֽ{ee^iCS;{6u߾%.\XѻAI``Eⴷ7QKDMXǡjR^ǎ&OVNMJʠѨr]@NUg яUVV3iór00X,B"픒Cv͓驶O cryӧ_t!A~߯};y.$C4߽ndҶ فJퟢ!@NUa1yO}v:vl=@1lS%qsQKJj^.Xvف9ȩ*;|Ϟ99.^W/9"%~ӽMx]#޺ARhSULM +&&ᅮ**j'M򈌜ƣ|˩pf23wWKIINd4SQZZsÇi/[6Ҁhs,GCFst4x곒T.λիǒ"@NUek/X0dd`R)_&;&|`0%9Uɥ>|'11x  hoEoRپz9ڵW:"ZI qs >eJo8'6ŗdGфߴ5BNU.1W_#5;A@&xy:VVUW+틛JrrJGn/1ȩʂx8,ViiͤIaa\\, (IGtk Ɏ /wnckkDv 9M=z?"x0հxF:SS=PYYRT>r%}L/Q4ȩrWqНS ;wQ@؄Sk Ϟ3ƍs';E*7:{6po +ZJEWzrZNfjT9<jkɓ{hpC/&ꖕՐ._N0'Qrjsٳ}v:ztȑ0 #;. ҂S>Ҙꕗ+Q??u; x̾}7K] "q8<.~35Us/[ZiGv $< яUVV3iGxgg @mXNWW(ҥo}*cryӧ_tݹZb29!JAUSm֭SScyxݓ'jΟ?x޼!J_ FSBl.Qҥ4cu&;r@NNLL1ڰa|@'(q;t #;?bȩ\[7Px<r~QotM&iȩV'+Qia['m^mhhhp۞;dZrٲׯ⸩HZZF+VihNRm t:UIrٳzdB/^wS)e]Ϟ%nne 쟗{n,*66ѣGrY\]+T>k˦DGG~9*GWݧOq{K蔔'өJr=…'zX]r/)ggΜ6myy- |,lYhJO}sffѮ]rk5dGΞM1ի#ف r*.F8~‹ɓ{ϡ jkhhjS=˫^A:ȩxs''nݬ tΩWԩspp0jB}֫Wu8>sYfYXX<~X䇈@?`#ʈG"PZiir2%H?44lccsʕׯ;99mU|J_TXX(QHD~T5\˺'8nܸ۷K\Jee_ϟ4iJ .?Gz8WEEN߹sgee%ϯxm >©ST~=c 3dY&55uRhmmK|~oF|8q]w(caaAR?|@gggc(~8^YY۷oȑ#GYրěCB>X򰷷~ ##F JDwppx_~dWDX B3g 4Vbe /_cǎ!C/ZHXKgL&Ϗ7oބ Nj[쳄;퍐!L|>,<=d? &ܸqcܹI277?{laa˗;wjrCV;.3HBDo"矹\EddP,Ǐ:t(qf+!Rc{\L&SKK+..СCZZZL&>K>ݻիeee7otqq0!Q]]M// ~=<\Qoι;nn?2ܱn6uRjWNΩ\.7$$][[᧟~"(3h ]]]bPccc;; O h,k~~~crssNjmmׯ_?"***MLLV\I ޾EBb0s122211Ypa]]޽{+6xbbUEE\+](<r8?Ņ{sƍuuuIرɩCD/ojCV;HN4-D ~Q| CPZ[V=zTSSݻw Kk=Q拉qttpuu=ws*۽{رcϝ;gff֭[ Sܸ2dB\oNN]&fʔL)wVH>% ~nP:T)Z۰aÌ3d^ٶ[ʹp‹/_;ݔ ޜĉ[ń ͟IJJ jb}ȑ# , ;iiiɛ6m?>A)ti)Mӧ9gR|ʬ(a-Pz"?~>}\ *`~N Νw>z)^9Tҽ{p E9ro@'RnR~(%''5g>|`p8| 6h%.RFkX9.|l;ܬl6!A%;et=파62"#)RENݽ{ݻɊF^:t@IxMf+hffqG ÈBCyjY8ekk+֓˖hpMDUV';EhVVMto~h-&@"|ݽy#}ׯ^yapg0h^PP% Up c,*ӧ'*J^̐yBJJ~{ ѣ,yyK's3ӁEPc* !ֱnommWUwoy%܇J[ZN$~\Kѻ*n_FgO{WgeeL׬LA ¥K911h){EE~]}!GȌ |)dWpJISWuΟi IA\t Ԙo0l 奧bE{8/1qwAѣ˛ھ>\W}Æ--* #>!c:ݿW-yyGF9;G!/_Vc0eUqq5oK'-n\{@QO~tyyIe:@ EL55;.0(H$ҎsccwH /g spmn ^}v#ydhP(;wZ`T'Gq4=+ePP&G51Ѽyڵ&^gK>WJRќ1b#=´ڲeֈR\t"qCSzWSf.]6k6ԃ7RR^fҶ`70Nyyu=[Zĉܞ+8q\VN!8 K;ah[\ oU;~qWp<|?NkBi vp3ht5$ITT0a|L+>KHxqq, ={Wa&Yכd2iS8бK#1?Jkh/[6y21cFlWkk׮=OIwqqu55ն87- ӣGoEEE21Ǐˌl<ĵ_Wqy<{y=UOO(Ovg_a׬$T\oov P[BC)BBO_7o5|0ONd=>-%$ĸ̘.!!fi9Q]]!4}E?hrBix+:1ye!myٳx] :~}|u9F BvG0OL_|rrހ~kIH뙛뵵Q)NN󪡡4ɧO/\o.ǖ"ܱcw˅SB |ow/v^m4%[ǍgR +.^n T++3ŃO\C?wټy&F2b00wxCCu#N%!4q0vvg Q[*99?-li9QIIe@]piL.]PPq =}BNE>)4ݿWc1K?.KN?n2;|.)WUOtF99o~ɓk`HMNIxNg5)ǏMxp]tOMM}4N\ь>03;V-H]/_B1<Ļ/\7s-^ҥs:#OϫJ*Ng$TA/gtp[xIc*6/XnG3~ubNpz HNEp/'\)2򾩩/r-.u_ٍw6h.JSҥ 8Ҙ ݿ\ "BƒǞלٳApKJә[t=Ngx{h.I~tr\G&'GFfəYYM462{Ogbڶ͔dds9፩AWSRf5bD## x>>+%$8Kh[^$$8”#c>0\j! 9!a͚MiiNd2ǽxQh{-MBNx۩ }}hmm%m z#͟ W x o~sm"&OVstǡ,Nc?ݿS[prIhh Aҽ.4m&rqq;8Nc*Bh"W0|tݻ87xYYk֭8`%1(:eWI6lO#54F[r( Fc*-&%兆f++.ZǏˮ\yi N{y%Wgd89`#Zxz4U3IΙcee0g(ܝ14 w'rJjrrN]l2A; [599?>CՅ ą *329~iGg@@6OEE'.**Rphvvv߾q4r޼q2YfIrr6{d-r߾}Ҿ֭[Fhk̡[Zg]x{;CY1.VUUhXb+<(*^H311uumrr9Z$~v ߐLwwsdd8 Ng'nmmMT9iӦyKqqq.@/RS Dٗ/?:jpNzKZ[;/745D;r$u:H|T_?(VOϥHySS]8> mn(* g#//Ix kW$L:yr mܸQ^^~ȑ...mmm]mڴi!%%%(*ꪨJRTUUBQQQƍkiia;͵k״ |# wnoor%ߐ  7EFF>|LwxC߿ŋ=oe޼ysѓ'Og'9s&3/I;R``gά7EBqک=|PVVð۷oQT "## ~ʕ+Ν;P(>{R( B9{,B+(((,,:u axvvv{MAA <==,[رc+V(///((W瘚a~юEAAreoጩ cɒ%d2yڵ̕xԬe޽{=o.v>XywĹb*Q [Zш~/1))vwAII&BL&/_˵7nܰcbvЉ/X0""55)))枬ˬ޽{7vX|YWWwٲeaÆ)**C##ϟ?t!---(lecSVVlnn[֭[?}{&u³W| :::ttvŬD|R^^yyy:::=oe]̖ g'/^T& }qY,^l@lʠS1 ;sw}rJll3X'a5immquu}IPPfRVV/y{{ˋ/ dARC QTT$ɥ7oިvY66x А믿N:effܫyo V6w5kǶmMvvv^^^xmmm|}}mmm!?W{f^]OXw<+8CQQwrܸ賚??g|bS[}gi,Y2rO>[i4bxx8!_%|D" y;ɺ/,,,,,o{|>|5k͛WZZZXX߫].MMMݻw\,??ԩt:˫^II))) yԹs瘟IwY̙3$77wرreoae0t:ð}}}[[[|kcc9s_zRPPhooy+uhhhcc#'` }\A??pⓄQ.<>sύĦ 4j(;;LPX)?>|QF*((t')ڲ^C-++[r1p֭SVV޷o_kkkP3fHJJ+)ʦM &''u֖_uĉW\QVVg;7o$$$DMMM^^~׮]]!l15""bРA^b_677;;;O0ABBBSṠzzQYYYMMM3߿ y/y'TI-=n`02 gcY.ohsBS}_{x@L{^t=SH5);՗w<³~*++¢xU: ֞9/ (={.ZX]kBl))Ǐ_3g#6e@ =&)SϞ=Wem֛휇``ٿ?Fc"6ق카y %6e@,SMMMDA{𹾝p QQ9))yNSSӸqcԩc^B``8+ @YY;ΘAdlKKoRR`B@QtG1c\],9:FVU5 0e!S |ѱc|YLlN|]]f 0--핕jj(Ս55Քʆ?ex^ ʝ;W;=jLLnppɓkLL4 LpTb QFBH䎖%EET2I0stĉ.DĤ; Ԝ71!PSiee@๹5o)& 81x̡P˗BrO2*R[;<,k&-$W66&ܾ}fAA22m22224011&0A@3v$))G7o>lfn"\@0~i u„CzuqV]x@܍E迳twd5n Ng؜yaL0``rr3g>]k4M--"m#ΞtSΝwUi#FH!1L&%'}) l3g2EDH4!A36PSSS6B}Д_674&&Ji127N˹m27 kTuHRQ{*anniio:A;_EEσD"\B$/|ި7o> 2⅏d=--O-}۶6ĉ&Ij0R_iii??- ._vC|NMNspԩ˖M&*#GCCl27#*MN[YYmQQ%aϞ#?_00}Kp𭀀c C͜9"FcǃkPЭCMflwVBBotaAo??N!M4FѲxիj' P}|Rϝ>sf=TԿ8qĉ fy>{-xX^z6vbߎso–׉jdal1cXb_%)驃̗""k?=Z. `<4W;!-=eG>} [  mƌKKkϧ&w*4śϞU0̙㌌4N3z (t QQURSUV~ru{x͚iKn iSh~~yF3Q׳ԩml !{ .7]GgHSS[^^9~}𠴣(wkL0RDDX.J_daaȍ.)듓⥤$m.}A?1?ԩ;NCH>>AA'N胂"իOȝGK#_D8clkkGaaN@@:*%%a`0;uqq88BLjonmf@EYYLy`+V9Hׯ??y򺯯5!|½ӧ.^< TaOՍ]n1BӟMD3^{^WV~~l Ƈz@=|!ddw!m2k)o`e"/F577V?U[wNFfpr#R<کLpZ[500#8֔)ꁁnj߱W+NL*=pH##~(--AH߂b*7({'蒒gs9Y2OcMM'TΟ-$$S}|Va}e ?Ldg>Q&IOO5%eoeVaBqcࠠ t:w,XB ~LNLs<33=gh [g߿ZK=0lK{OҾcDžWAA,Q0~4xc1;wg0WVJJsRO?%ff4i4 ŧ~95-06v|yaÆڦ˗wG-l ~G&hk+ik+]2G~yPP&2""kMfd fwC3 l3ݻ۷_PPJI !`QSSS'be"&&Fr<<޸Ռcy](~矯❜y5 BCxy%-Z'`SP27grfe+0DH$ѬYVvb))azE8_rKKStZZv T `ST ONswO~gł8~/P~U>yrMbai͛jk/]6c Ob*@"Gm2 2(00FYY̚5;>gBQvۇ,o7_|׮HuiiNp@LOMMNMʼnu;B>ʄ??'87{C|5q קt:vĵ5ky{ ALFl޼JI]9Xaݽ[CMKUU}rt|q[!#z1ތ21k8## т=ʄ2KˉsvvFs6~kii#FH?^Lܻ2H#0pP}UWOiG&Yl 0G}[RR# L<~%ɂs>^1A|Ձ۷_?vz  AB8ʄڵk.痖c*Pĸ{xި f|m@{|K!1 4.^d\^X|r~!h@<eBMM.&fŋ9^^IOuzBim`2i"}N p2A"֮517omdg7%x]/hknp%)iOoKŸ&:s&s\]U\($SeBQQ&<|srr?߾Tׅpt,.zuWo}lϞKMx7_+-``qc1cv(wS| ++#Gmm |}WEbsrzv;mjSQQ;Qb(@L\-F{{Hx}FDl=[o~ŶS!cN Q&N>gf:bB%'<@&=l 0`(Ӧi޸r~OK+QU݁Ozww9:ϧL3Sݻ9}7&&С+;oѤ~;ܹM\ @@L@p ]]g HOK+<~|>ߏq&KHx8hgM p=Ν;ՄDD#6nFIIi̙. Jc߷6ymSSU\\D]]JSSTy`"kMMkTuMu=Ͻ|xy6h؉UUUP}P1ULLFR T*ץ|**:\\\E\\ULL^IC践002Y!D7f[ۛ.7 :Fk|j0# HB j*࠶r8!'b*@ 1 ^L\fѕ+W5+װz5G'fp8T:!\uuu&M2dHLLLnnիmmm322*RyyͺoGz&++{~N8Js _?: `O`}m}; 3yyy___~NR;5!!aϞ=k<<mܸQ^^~ȑ...mmm!tE]]Ç!MRRRR T*5))IUU!5nܸz9M&g)11Q[[[AAa]yѣG߽{799Y___BBb̘1.\2k׮iii 6ǧ+1SNJIIܺu ;5%%RVV2Rv H0]]#F^pACCCFFСCCEfJ87PLLL;͛͛ &xzzɮ\ܹs;vlŊ'Ovss0l6lVTT|alG!X JJJKy8`aaQ\\C.\YSS3hРપPQQ%BIHH@vWwYLL !2 _XWٳ /_mIDATLMM9r$^kXBD}5"lmm) ޹eccCPΞ= J5Nq##A&={|[ uttׯ`0rH}}}9vƌd(((|z11D;YYYtwʖWwp71s%Ӌ`pcj{{/t۷YzSU:qB}Æ STT,**b]C##ϟ?tMMM|VEE2ٲ2eeeD"߾}ݺuϷo]yتd5vX|AGG/gw֭[999#G455s玈H9N6uΫs%*--500`s ,044`'7BJJ SYz _* .]O]xq`` kRC QTT$ɥ7oި]<3:644 SN9;;] ߊ*..dw`o޼ oT缺[ :W"UU|ϟ?9VWW'O13^ŊRL}uݻWPPO?/!11UV޽۷Ϟ=zH_X|?ݻ >}`ڵ+**ƍɝY4vسgׯ>|v/B",,,(JGGؐ!CB!!!_js^ݭ(]V"{{{WWt77iooomm@7.0uW/JuZ pCQ/`VVVrJ)))cc㤤$u)++۷OO_R3f̐WR(M6 6LNNn֭---ĉ;::0 r劲r}}=Q_i]+ QSSߵk^hjj$&&vδryuWꋵJq IIIK.bvÇ5*((VAA-zj*[Zٟ4Ar܋[~^}+pͺU 9 ޒ޶mfg P!HX'H111666+66vժU`iPSb@L1 TSbp߯F#4DEE?!\5N?8a 3ک@p= TSb@Lڷ*OIENDB`XQilla-2.3.4/docs/simple-api/globals.html0000644001725400016040000001235113273140074015143 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all file members with links to the files they belong to:
    XQilla-2.3.4/docs/simple-api/classBaseInteractiveDebugger.html0000644001725400016040000012245113273140077021271 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <InteractiveDebugger.hpp>

    Inheritance diagram for BaseInteractiveDebugger:

    Classes

    struct  BreakPoint
     
    struct  Continue
     
    struct  Quit
     
    struct  Run
     

    Public Member Functions

    virtual ~BaseInteractiveDebugger ()
     
    unsigned int setBreakPoint (const std::string &file, unsigned int line, unsigned int column, bool temporary)
     
    bool disableBreakPoint (unsigned int number)
     
    bool enableBreakPoint (unsigned int number)
     
    void listBreakPoints () const
     
    void setStep ()
     
    void setNext ()
     
    bool queryStarted () const
     
    virtual void run ()=0
     
    virtual bool changeFrame (unsigned int number)=0
     
    virtual unsigned int getStackSize () const =0
     
    virtual void stackTrace () const =0
     
    virtual bool outputCurrentFrame (unsigned int context=0) const =0
     
    virtual void outputCurrentFrameQueryPlan () const =0
     
    virtual bool queryCurrentFrame (const char *queryString) const =0
     
    virtual bool currentFrameLocation (std::string &file, unsigned int &line, unsigned int &column) const =0
     
    virtual void setDoLazyEvaluation (bool lazy)=0
     
    virtual void setDoFocusOptimizationsn (bool opt)=0
     
    virtual void setDoProjection (bool opt)=0
     

    Static Public Member Functions

    static void outputLocation (const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)
     
    static void outputLocationFromString (const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)
     
    static std::string regexFind (const char *regex, const std::string &str, int groupNo=1)
     

    Protected Member Functions

     BaseInteractiveDebugger ()
     
    DebugCommandfindCommand (std::string &command) const
     
    void checkBreak (bool entering)
     
    void breakForError (const char *message)
     
    void interrupted ()
     
    void readCommand ()
     

    Protected Attributes

    std::vector< DebugCommand * > commands_
     
    DebugCommandprevcmd_
     
    bool queryStarted_
     
    std::vector< BreakPointbreaks_
     
    bool step_
     
    unsigned int next_
     

    Constructor & Destructor Documentation

    virtual BaseInteractiveDebugger::~BaseInteractiveDebugger ( )
    virtual
    BaseInteractiveDebugger::BaseInteractiveDebugger ( )
    protected

    Member Function Documentation

    void BaseInteractiveDebugger::breakForError ( const char *  message)
    protected
    virtual bool BaseInteractiveDebugger::changeFrame ( unsigned int  number)
    pure virtual
    void BaseInteractiveDebugger::checkBreak ( bool  entering)
    protected
    virtual bool BaseInteractiveDebugger::currentFrameLocation ( std::string &  file,
    unsigned int &  line,
    unsigned int &  column 
    ) const
    pure virtual
    bool BaseInteractiveDebugger::disableBreakPoint ( unsigned int  number)
    bool BaseInteractiveDebugger::enableBreakPoint ( unsigned int  number)
    DebugCommand* BaseInteractiveDebugger::findCommand ( std::string &  command) const
    protected
    virtual unsigned int BaseInteractiveDebugger::getStackSize ( ) const
    pure virtual
    void BaseInteractiveDebugger::interrupted ( )
    protected
    void BaseInteractiveDebugger::listBreakPoints ( ) const
    virtual bool BaseInteractiveDebugger::outputCurrentFrame ( unsigned int  context = 0) const
    pure virtual
    virtual void BaseInteractiveDebugger::outputCurrentFrameQueryPlan ( ) const
    pure virtual
    static void BaseInteractiveDebugger::outputLocation ( const XMLCh *  file,
    unsigned int  line,
    unsigned int  column,
    unsigned int  context = 0 
    )
    static
    static void BaseInteractiveDebugger::outputLocationFromString ( const XMLCh *  query,
    unsigned int  line,
    unsigned int  column,
    unsigned int  context = 0 
    )
    static
    virtual bool BaseInteractiveDebugger::queryCurrentFrame ( const char *  queryString) const
    pure virtual
    bool BaseInteractiveDebugger::queryStarted ( ) const
    inline
    void BaseInteractiveDebugger::readCommand ( )
    protected
    static std::string BaseInteractiveDebugger::regexFind ( const char *  regex,
    const std::string &  str,
    int  groupNo = 1 
    )
    static
    virtual void BaseInteractiveDebugger::run ( )
    pure virtual
    unsigned int BaseInteractiveDebugger::setBreakPoint ( const std::string &  file,
    unsigned int  line,
    unsigned int  column,
    bool  temporary 
    )
    virtual void BaseInteractiveDebugger::setDoFocusOptimizationsn ( bool  opt)
    pure virtual
    virtual void BaseInteractiveDebugger::setDoLazyEvaluation ( bool  lazy)
    pure virtual
    virtual void BaseInteractiveDebugger::setDoProjection ( bool  opt)
    pure virtual
    void BaseInteractiveDebugger::setNext ( )
    void BaseInteractiveDebugger::setStep ( )
    virtual void BaseInteractiveDebugger::stackTrace ( ) const
    pure virtual

    Member Data Documentation

    std::vector<BreakPoint> BaseInteractiveDebugger::breaks_
    protected
    std::vector<DebugCommand*> BaseInteractiveDebugger::commands_
    protected
    unsigned int BaseInteractiveDebugger::next_
    protected
    DebugCommand* BaseInteractiveDebugger::prevcmd_
    protected
    bool BaseInteractiveDebugger::queryStarted_
    protected
    bool BaseInteractiveDebugger::step_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATGMonthOrDerived-members.html0000644001725400016040000005030513273140074021424 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthOrDerived Member List

    This is the complete list of members for ATGMonthOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATGMonthOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const =0ATGMonthOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGMonthOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATGMonthOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATGMonthOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATGMonthOrDerivedpure virtual
    getTypeURI() const =0ATGMonthOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATGMonthOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATGMonthOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGMonthOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.map0000644001725400016040000000114713273140075021360 00000000000000 XQilla-2.3.4/docs/simple-api/StackFrame_8hpp__incl.map0000644001725400016040000000071413273140075017455 00000000000000 XQilla-2.3.4/docs/simple-api/XQException_8hpp__incl.map0000644001725400016040000000007113273140076017641 00000000000000 XQilla-2.3.4/docs/simple-api/StackFrame_8hpp_source.html0000644001725400016040000005213313273140073020060 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StackFrame.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _STACKFRAME_HPP
    21 #define _STACKFRAME_HPP
    22 
    23 #include <string>
    24 
    25 #include <xqilla/framework/XQillaExport.hpp>
    26 #include <xqilla/items/Item.hpp>
    27 
    28 #include <xercesc/util/XercesDefs.hpp>
    29 
    30 class ASTNode;
    31 class TupleNode;
    32 class LocationInfo;
    33 class DynamicContext;
    34 class EventHandler;
    35 class Sequence;
    36 class VariableStore;
    37 
    38 XERCES_CPP_NAMESPACE_BEGIN
    39 class DOMXPathNSResolver;
    40 XERCES_CPP_NAMESPACE_END
    41 
    45 class XQILLA_API StackFrame
    46 {
    47 public:
    48  virtual ~StackFrame() {}
    49 
    50  const LocationInfo *getLocationInfo() const { return location_; }
    51  const StackFrame *getPreviousFrame() const { return prev_; }
    52 
    53  virtual Sequence query(const XMLCh *query) const;
    54  virtual void query(const XMLCh *query, EventHandler *events) const;
    55 
    56  virtual const ASTNode *getASTNode() const = 0;
    57  virtual const TupleNode *getTupleNode() const = 0;
    58  virtual std::string getQueryPlan() const = 0;
    59 
    60 protected:
    61  StackFrame(const LocationInfo *location, DynamicContext *context);
    62 
    64 
    68  size_t contextSize_;
    70  const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_;
    71  const XMLCh *defaultElementNS_;
    72 
    73  const StackFrame *prev_;
    74 
    75 private:
    76  StackFrame(const StackFrame &);
    77  StackFrame &operator=(const StackFrame&);
    78 };
    79 
    80 #endif
    DynamicContext * context_
    Definition: StackFrame.hpp:65
    Definition: EventHandler.hpp:29
    A class that represents an item in a query call stack.
    Definition: StackFrame.hpp:45
    const LocationInfo * getLocationInfo() const
    Definition: StackFrame.hpp:50
    size_t contextPosition_
    Definition: StackFrame.hpp:67
    virtual ~StackFrame()
    Definition: StackFrame.hpp:48
    const XMLCh * defaultElementNS_
    Definition: StackFrame.hpp:71
    const StackFrame * prev_
    Definition: StackFrame.hpp:73
    const VariableStore * variables_
    Definition: StackFrame.hpp:69
    const LocationInfo * location_
    Definition: StackFrame.hpp:63
    const xercesc::DOMXPathNSResolver * nsResolver_
    Definition: StackFrame.hpp:70
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    const StackFrame * getPreviousFrame() const
    Definition: StackFrame.hpp:51
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    Item::Ptr contextItem_
    Definition: StackFrame.hpp:66
    size_t contextSize_
    Definition: StackFrame.hpp:68
    XQilla-2.3.4/docs/simple-api/StaticAnalysis_8hpp.html0000644001725400016040000001106113273140077017412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticAnalysis.hpp File Reference
    #include <string>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/ast/StaticType.hpp>
    #include <vector>
    Include dependency graph for StaticAnalysis.hpp:

    Go to the source code of this file.

    Classes

    class  StaticAnalysis
     Records access to various parts of the context during static resolution. More...
     
    class  StaticAnalysis::VarEntry
     
    XQilla-2.3.4/docs/simple-api/dir_7d7a68009c713f027cda8b1a802087bf_dep.map0000644001725400016040000000046013273140076021312 00000000000000 XQilla-2.3.4/docs/simple-api/InteractiveDebugger_8hpp__incl.png0000644001725400016040000011433513273140075021373 00000000000000PNG  IHDRx>//bKGD IDATxwTY wwQA@,ر+ذ-6TPĎқtB{1XJDHΞ=adܹ0M!@ 0H4cu{|Xp'O ںu+AK,Av H7o\xŋo޼I"G鮮 񇳳ҥK=zALwٳgFǾRj9rHED"qV:0r pBdoի]\\.^>Oaŋ֭7oޞ={8/T77 P+5k/^|U"8F|&0&|ڵk^^^n@2_={V[[{֭ .߻wvcǎoٲ%00ٳg_~={ŋ!W,˗/6)))4*GUUv_>wٳgF[D\\\fϞ Ao޼ٹsWrr2}ӦM&LsΎ;dee zꕧMLLzʔ)8?:;;ҨjddqAyfKKKIII&_~ t/OA^}zQ͜9F[M`,RTT7nҥK_~ AІ  5uT///jC Abbb[l9}ի|}}z{{kmm5X*>>iӦ}qڴiԍ+E{{{#/_;w޽{{{{g͚b >> 6\~=88x۶mqqq/l޼oЍ9;[==l,.335++-[[=ލ$>>γx0FD3MN.ML,IN.kmԚ4IB\CBB)Ǐ*fnnuw7A@H`id˴#=rVsou._^(ڿ}+ڹDpaL994%,9a YKK-++mKK-}}4fmRW&:: 3($H̊oߊKʻbVVZ:'k jWg'>/HRS[[ÀĴá;Qw-[p=|8<""Iw-̬LN.MN.KI)% [Y;9MzdJccGuukMMۊŶb-UU-XlKg'PUVQQUVS55@H4Poߊ/JH(+*JM=y*+RRʋ)XCCv$I4,, 8r(O:&s횻2k} >n* (%% ))eɥIIUU-H_++-KK-kk55VBȸ把把f)<!)'!!h&{˛~|/ni钖յճQƮ.|nf˴.d^LKK-33U]UUi47w}c $onݹQJJَ3vE9ۓ˒˲23+D2-4sN&UxR]];5>lAނ|HIM@ hKLI) XXhNooojJY05HI)R(0- 27Wya>.ؽ1+n66:?`s'qT^uԔcuDE S ÉkFJJ1 T[޷ijPI@$dX $0؂؂ll``da9T#HȨHL,MM-KM-ok73SCOFK0(x˻wrII6M jZ]np7@mjjih ,kАn3hA /~.V))S RAA|з+J*z{'kO9iyY}{Hc#-Y2O:5匞h;23+˒Kx6ȓh#RQ\Qф<ol@v@%dh4SgHD jm!ϟ ƩΜi`hn>h7>#ί_1_}_Pr12rfso&Oֹ|y#8Ν(*GG#V3,$%/֙PR]clt2EWE2Tw7:Y^POCCI=e9(0DsLl~>7&&71B'NX|\3eA${\WLbb H>ǜ:U_]]񳉪;B23Y9hp=>`G4hW`񺕕nP@о 55iO ͱՏZII''YL P༼8̷onwOSWQp71Qau8#L~FKrYGJTTXNdeŶf9BOI:ʚ**ʚ˛[ޟbrZZrrZZrl%F/_f֡s͝;~d큫QWV6Ȓ%++fkgogg1v[.iiڻ7ݻOOGpz,uǎ;f=K9aH~3b0uDm2`  ~11љ))e22F ;8/xRrrׯ8LVV0~-ܹ1ϥKmmuYP(ݻqbdKVډC54tQ%ʪI ǫsd[,A&SVj'&<AhlMUS_FKΛg`V9.khϜi2m;(`yr1?auuK-`u8G$kn͝Lѕcu\ƲfdwYY1jꉼҒ#k&z_YjbbE\\&/9>|ȍ-(/oG02,Xȧ'B! }Fo`'LS))) 6>|70PSY& )O~E"QM3Xy\9,q߽ˎ-55Uqp0rp0M臋)=hgdT$'feaJq11 4&Oc@ 656"oDUSQёQE*h`[ xyy5!!ݓ'k/[f1ox aխ11? s͚e2w< ,\6JpߘC :YYiq̄566464tu!EutzzhUUH49UGGoTTƣG+WN^xby1eT 989;::AyF:ӵkkYkKQE h 񺥥ք cg,]XXTMMf_h mmO+zx._n)&&`@{{'gq~~+FtQ\\&:nCNRP`p"++-SSU?"\\\_XXWSXXWPP[UA"xph2UOׯkT4ZLxyº3M6njk c1NaawpEEӱcFL~t VUO [tLN.ko46VFYYii8׋tuyyy卍MLTLLTh VG $LB R.\xѻj3đW|(+ktr2 0T T^u1Tll=._^mm &?b,2R\ܐUENÃQ@uZZj(:F7׷gea&!!l`hf44TuvM#ɡ.zVbnԱ|HzcϞ_9L`MM>>O>}߼w4 ?~T&'%'feU$ՑAYpނ,,SIȜJԡE'j96M"W~lk^vʶmN Տ?|бb] S99wldO/噕-)i )BJHO3350 Ѥ',ܹiG.D֘ii:{Փ'I&&*ǎ-2Ea D"ʕKbM3_ ۃ;:zϟw=۔Ntb0u<:: HN++m YV2Au.J"̦N@Imm׮} &;gs`~,(AAC-^< Wii;q'N,7.)iytB>>0ZqDɥ?~T$4ZL 'D"iʪB )SN]]0b hDsŋ||WF@b>>O/Zy`u#H[:9pHH㑆ZZ YabbBWF6g+-mBv66+ R{QKK wȀ%8@˫A>ll~~ H01Q?^\\]KKtF$Tzг-[msDD:LQQ…&i6Hnud_d zlNccǞ=|)p'?P?#G?xD"" (V**))eX54d떖Zhp4"\PPQ[M$%$'LPGNssu0u<0|  ݻ7e3K.oXddY'pժ[ˋ;rdQ22WOaa޽oOG+{xLٵ ɉ~rm::z33+KRS{zBVV?Npt$(.Gf*>d4DQ(pxxɓQ|[ܒO 7kiz}4ݚ;OLyMMU_QQ- ;sY0|HF 'JJ*j9Zg;w/)`Ƴc0uQgBRO $';{lڵ2&&w۶J롤e׮K!DB]fѢ M}33xqՊC `g"p"dstdtnIN.uq*""p[0 Ɛ3- vd`fVuuϜ~ F̙Y8Ç]]Ξ]2ݻqGF lQ(/UTY0r{<3>~8[w7!'<{MM-omBƚXYi#RR~?")<<(SSUL&ʚ22*2323+sr`v33 4,,4'M˔A ߋ}|tt:dɤ~]/\x~^ݻg*1n֬D"y17׈@sfGs==AoE||wn סCI$J||<$ELLpt#''%K&iHMOP`~~^o H$J^^urrYVVUbb :nWJ''s疃$Y99Xd$/.Zt%5 !^^MMKV H4Gmtp0sؐ APLLw[i4G8|fM ra!CC%GGSu@~Ѻ iizB)JZZ˗`1ڵOgϾD`>>^zzڃ2:I2z[TTX;i&"H;@"ˋPի'?Dag DJJ!8\K,4> s/\8yW&754tLw{{7/Dvr2vr26,I•0؂KD D̞mzV0Ͼ}aaaCɆ P(j  d2KI)OK+OK+/-mDP 'j((H\||pΙwϦ,ƍܚw|h?%Haaa vl!a""$ObݻwpUnVGa.^8r7!>˗/ ݝ}13[Ȏ<M8nvX{p8ĉژ 6K4_z-G6by_Ϟ Ϟmʸh]߿5k#af ?q807C03[Ȏi͒6q 888<\[[.s6J4_ز偛͵kk~w]OS\\& ;***=~X__B"O+h<4y DDDw&QQQaaa2积/..nkk@$ۇFG$!!!:::[l[55 7o466ptt|%ZiQ(THH̹sEEEE(((رZ5AO\ AfGuuo߾EGG ikk?|p]j|ٳgiH4b΅7?~PWU[[ۺuTUUK"?.//vZjS v3p~2hpA(jͯ^b\}/ iy !BPw522>|%))yQdA)ẍPSsmQRw ]ãF'%%0|-W^BTTT6b5440|݇0߷@eeeҥK+++&NxLGGG K݈DK}Ƙd0M}lٲ@f͚Eĉw#RTfffGG+..^dPy9s>}T__/((x;wuvv8Ȼ}>|APSS鷑|˗BCCiÄ o:;;~ >⡮"*777'',SS'NdeeeggOF[K40$xMnVcccAVpo߆ hŊ8֭[AѸuA8XI4##<9?y[Mkk511>u ڷf<I&|B=-]a}}0lhhX[[l177Gʢ֠7GSSӐj=BS+=F~ }`]L4M2y[KKK ??[[[)JGGLy ϟ?0L&y 6Ҹ `'LaOGkL/ӣcT}UUU̘1٢KYbž}ӯ_l|3ZSSsߘ[[[60霐Nȏ}W@nLB_A}P(Olذa---4PŠ==A7 &\x0ԧ@E* F򖖖"?(++#[233Ϝ93T/y=uhw\QX0|ƍy1_%ڿD4Bx m4n{PoE7-]j1,}!P(۷o!ܷo_TTT]]۷o8@<O zzz?APGGGTTԢE6oܷcǎ!ۗ,Yr,ggk׮!}||SRR:n:)))]]]wQVVs775k>|yP]QQ1T}ў塋+ w3:ŋàHE䗿D4Bh ƭse5uuoxD"ߋvյիǏ'0 ?\II@ :uJKKKLLCW 222jjjׯ__jܹsH$???]]]QQQ + 8nҲ6mB|䉦aRRR:::QQQ{dŋutt$%%V 5R۷544o3h]D"NLLl`Q; -FEE!:9fd΅7pxOWVKK˚5kdeevۻw^eeeIIUV@˩ ,@`[}}=_[<<ؕ,%*$x MnIA>0*,54݌sk=z]LN4G`MyCCǚ5w`Dz,wwģGnܸA6n\8꼧yΝt8v!Y...ڞ^^^Uナ= z \st+F7Go\\yPLAɔ磻EGҒKK)9weg`+V@6P(Thh(R 0.fkhh˛>}:=-d>VJ֢y_1OnW APKKJ#*|01qmm풖cc JN.=r$bϞ捧oɽD Ÿ$b[7n7c=^8 à {zݖrmХXsd0*$*J$rg"׻A(fd 666*ŋϞ=WiBA)TUUѱ4νz{I _X(/;e'!!(XԴ{#**Xjʕd2Do]H}(ϫ۪M{FbicfIIpbde#{VU74utP\d,_.E޽ҥ(&H7[*.lPSS˷νf "ʪ~dw.RIC~~(!yʼn8)a]9U d5zH0X8Y<]yy5ǏG5slS"%%&=NqG[37**ϜYyܹDjiZ_.^\u܊/4BB۶9ܼkP/>H$ʦMĄF$WRRɓ͊..W0:peˮzfwPFG*}qM1:zȊ-PB988lokiglV$%%*X8WɫW?ww_ɩ3ǿ!2rsRTr]==ٳ57w29UN~sS\\hIH?zYMMfKؒVq*H bf62ƏWKxT&im.(ȷtiJV Oxkxy{RR"mm֢pڄqܹFFJy{xx…d޾?~0A=*j +߽˱;{Wi6]N`׳gnn-B[Р|ϯ ZRkkwX֨:/PTTϠvX$y܋79S.ʊ1.YYF4YYUa&8}Ǐ&LaaἝD9rǎGnn6Olc|e|Ovt'6!S^޴sgǔ-[(Xq=/l+h ?,%(h;Uxv6D0뷕vxwh薎9s.zxɩf\u0JhVT4;kSUjeBE '8:svž:8=]Pp IDATiT~!͝Vݸ͛ks1\?>>αFFnn<|O$]cuuҮoXv͐ɔ/2lmϨl\^ĪH s.Y44dCB61sI80o:[U:QQAAss/pwMuu7`._v3gBUV}…xS}?HYY q.&f/]3&"ysЗ/AA2^`Z[ލu볐1 سg>>O JPW~=jϞي,8i ʃp=.f(X9/}eeU'<N"g2=vlMJ*/..n== d SS#G"N=e F/44Ǽoff޼uõk6w `N|PзW?9sÆJYeBÃZy\dddWW+h4H7?^O ڨ ڍpjg'>22l®]3lFՄIppWKH0<#̜iboKbǞ㙀~q'NDm8J޼v׮w:Հ1Mw/.  ǴM3 A%s1ҡ._n2144]xx۷`P`,D=zՌ, Tɓ$&`0uO'f6=rd]0xr2a`?O6ɓ͢, %j{nlSE$CC/\x)!5i&I7.ɓu켽Gى̈́'On`ᯄZFF49UfqqChhrHHBw7al-vvzt_ysě7{44d[8[A֮ O=}:::uؤ@u;|:֏k otM:FH$#kj\]||h ֆTjj6nz{q׮} a} v>@ ͘᧩)㶠 ߿cfݻMZZWO^r2#`s'ԩy_wr]uN[WثW?˜< q9oػw9qqYtP0 9pyƳ:1 R߯RgoǠe讫 W?xzڱK+0F{z\hVM￟afΘ'O=JuvǠ&LDW~Ϟ'_g80w6'FT+,߯n͜irbn%^>Y&A(%<<<7?tiҥhlaÇ~]XX;oMrڣG:ܶ޷-[<=Y>d>lhӧ()~C[[ӧ jkqEmHQQβ<=64=bg,]nsSϮ]k\11V doYK()Ԯ])xrKVG4VaNͭ7o|`:mmyVG> H_ܶijw\p͛3yN(oI"Qv~2i c 7NUNN,6AfYYGIO$uO{ڹsxyk|s B<",̿g vubuD\..s?f0_9Etӧ|{{}ϤE}|ׯq#…ww~۲a͚)`a.2 RXX>lxxPӦ~\u#%of#Mhʕׯc50 _WO[Gݸqҥ<,$$?3y1pLc5˳gϓ"ƹKϝ{_lon33VNAH:1%##z͛߼^޺kڵS7O8^@uuv옩Xݏ;;tyZ^ekw9s̘3sgHLLZᐖŮVǎ=_*X._aۛ.}axz;VU*\ɵԊfGII%xJ(++v|OOcϜ;v\r216M4Oz!''F߶sp0aӧ '2_ud[UUi:I[iiǏikW2_UU˝;qǎ-W,$HBٰa*.δ jg~ӧ|}}EnD$矋#G">z{;Z5ѽĎ5SRʢ2d?Ңֺ_g,ѬkOw[]]kքI}{Rhfp+WRkLau a6' uX$4V ߽|cǏZTTs+WbziɒI ~fH$~+V\gu {7NWwo/qo!)_nt_UuGOhb\CP(TTvJ @_JJ2X節m۾=XYyjX*+~7bv!UQѴo_^ȠP(7TT4))튋ð:Ƣ~Fӧqg@IIJQ:X,`C=z).ȁ" QDP(Ti[rBdWXnf6ofgg%vիouuʰZ-OZoffhk\Xex55zz.!!1 IL4QII khee=(k[Y/ZZ;Ϝyu 5]Sx%0飭Tj'Z$Wff::f̐VtmmөSQ6L54g8ih(߻de|,]VpTee+'`}'#㇣cʸ{ѣ gsW ׯϞ} \'&Lt5xܞ=wX,y6ሻZ蠠8uuǗKnϿN:<=hv۶y&#C^hԺuS 6N&ŗ[m+J=(͙lvvxk HWSZZ2gggEEp3%RiIJk黺ΕQ !u ZbK en]@]];**W~ca-['$zyÙKvYpݿ~CcXhhsj-[IWD$^]u /qO?aX{ |2ݻK78U޽˒!-Zd`adu\xݺ&uQtsWvGYYǩg"uOKp۷77ӏ_֓hWz{ S7n֧X߳M3`ƌpļ'-w|"d'ϙ3X:PWKc˖-##C:ܽ5Tw<p.zL{`bS4d/0פaaNE56֮}L$e6ffaa[rOxפә'9ǏZsg9 X%eeug_@Ĕ` ǎ==Yv7lqA/$=bv}$MៈDŦ.o_Ge'Mqqs=u뮒HCKW^]ɏ-2o͚5, qݺfv=VHnm=ZNsĉyx^??ohqq Pe2e(w?_WSSӧâFJKi$?0[1y񰰭aH֭ 25kkj$" /^{y=d{5f3f+D2CNͭ=B:(9Og25JJjš ڄy'&p {iNHK23KLn,rr/\xq2ΔFc~懭[g;_۷/. 9>*QС))2ny.k(,,11N Y^}i֬a.أVW7Z[/*ILtW"66ȯ_{UcUzYN޿]`+hyŋM{Q_ߋ  Ar JRR#ao ~oiyjΜ3 y;wZ%'q,'U--t4$ Av7? JK-~೿/,h({8~ Sй+O/'{a0XX%A|^e&LˌmۂtfmmӲeY.:N͜7/jh(>}緦dก.^ooOVZZu\p>Ѭᜢ`r,8gcwFQZ6znyzm3y߀n<|ر?ois Fq'';C9kj>}ߣ+7y )!D2.nGFΘq":L||nAAҥcDƏ֬_''Ng0L7MXGի/UV6poBBmlG:*jk9x--w&!M7cb:e9n72ǏyΡ--t âߣG)?0?XH$̘ѭ%%))ZaaagHL 28qŦ߾zz>JM-=ZOIIL; ŋ/LΝDԴ׹xUEE=g*0q! />K1Κ>}(>}߻54wRWOpuǨWʊv@kY3I]]1$$'DezJJEG#ꏭ ml@ L2ExZZ);K df;nٳmN};9͚9sGGL$/ѷpƾcÁk،zu8tl߼y#η `ă-}}U?5[ LtR;VS׷,][)g 6Ҳ&d۹frrWn46R\јMM4αJxܲecϝ'_*Bk\B ୬Le"rTΝ7ٝ&Wyz>^)Se=~x<T*շ" L*  =sY& DGx䤜fO)B?mw`Id2Hl}c0X/}o]:>ΌɩqHڵ22dkXS^Na2[XH``ɓQDuHM ͟?ǡ54PWmjhh9vl0"._>6 IDATkdvǷ>3h֯K4KQh1a,-cbizXG$`_^;a}}ǎYrrD"QʹkDڨdl]V{?k ODxAAqkN :qq{,rܳ ^8*DhVxt-]2.<}N.l8D,\@/vU$//xihT#G%tF  ed lNZmؽcؼʕ>%X%0))}K;;Cq*pEc5Y,߂>y^:Ao IlݻTS0@zyy6{)7*hKԢ#Kt1yy|~r--E("; wEF&N"Hp8UUo%X,ŗ֣54zݸG-f#9pޭ[ꜟhYvv ˗3M&&n~JeNЉ޺s\\Џ%]Ҵwo8 Ӧ 7dd2:-2d/|---&S/_Ye83@ xhdddk'wV8HM-aF11w +Ϟe\.7…g vǒCBq8GsM<GOOy~+_eԝ˚(ׯmnz09/ul|=1Q70N4P蕕--UU把f&`9;'ޫo! ? o#&whL.7f0Cq%q8,YZ$#CGZNܧL>22[kjvbnAn(/ow.o$.BƌєI|7u.rn ne̚5@UU`}K]ݾajILMEE5L&P4!Wt,^~-撧OO`75L&sŊaaaXA܅p.CjSTl AODGP: |l##-c $y&A;weiiQII& H?NMM-ڵk6ց@&I$~,X0r;1:VZZ9$Ϩ%KLML$L4!HIܕ8@ $)n܈u.ց@b -z* 7/((_;|M?&of/ iiiˆ888A{{{yyy-H~ի'u,Ҷsm糄 `zknnn#G777d0Tx455dW`ddxAlYrܕD"Ǵ]mm횚͛7J5Z[!Zrrr222umhu,d29000 ի$ xhmp͛7:iuegϞ=344TVVd!C999QT -s}U>[k`XFFF}0aBtt4z7/+3gm[^1nWk~nh@Yׂ:D XNN-$$ACtttYYҾ)))__ߒ+WĆ,vs}Urr2{9`555/_TUU]|Y[[ɓ'ϟ?744l Weee:<neXDDDhiitAN8lٲѣGٳɓƩiiiƍsqqA~[9sfNNNjjÇ9O`CCht6|aHDCCCEPdcQQQpp0A-BA8\B*++y'r")LVXXˆ]C3ٲu҈ Ú5kJKK?|.l[8KÇPkq-\+8 AAAϕÅ8z(B ,=&&&*)); ` ht VVV񆆆aKBp~_aXbŊ+:|[秦v?~hGVжCt!SM1yN%>Ͷ5800k׮N4ۻ2sѶ%/<(-h@SDmF\\ T}؞V :DAo._\NNK'FC$߾}cʒIIIaoMAVZ ''.,giii<'fTiii!qH4 ۉB$""bɣFBdd'D55wp{Mh??& -lk ­s]~ѢEkZOɹ:*((HQQ1&&FZZ94[-qƘ1cxf`_<9Ô¶[D̙UwV,h"mjLrr2?<MەUZɣKد~"ܒ [修ihhxU>>>'OF:>Ixumٹ>,֭[pauuu۷;7pڗׯ_fddt* ޹scƌ4hPEEAkii}orrcZmG]]@ hk;&0(:[$ڞ+W&%%6^DLTQf g͚̱օ ]j("ڶs]ɓ's h?N<9ewwM6q> Ck y6v DZZZ< IFƏs瞹VꎄmNIIa+WVEkIhk $Ohdk修9r͛7lmmy@q;mv.pVVV FH$Ykh۶msss{YUUکH"XYYԸ;::.]t޽s̹xիߏo7D"899}vvvOtH=QT*Ffwww@}ܕhhldbo~/^DFF6εګmZȹxbt;JJJׯS(s%lڴiĈ֭8;;o߾]8&&://$キM:;gooc0̝;oaEGGGWW׈'Oyze,[Ik $'ުʵ@_:TZZjiiLUV_}ZS8`{uy$C@NODuk׬u, 訖?Xͭiɒ%6m*,--,_ܹp(nX7o2}H)(( P\\nQ(ͷooGz*}b :Y&HLpNCCQŊh>qy^,ф H܈fJ Ҥ/;]Dӧc"?ec &T7"bӿ<}`g'&M<(**Mۄ.߰iCm9!H"Dx܊fqq׭8z4rƌp֣_=0Dsp,#C>~ AMrvfdegf~~@F際뛙雚HcL4 &u]K RUO,+8[@wZi4cxee„:LL`uB Ma&AUZZwO&񇵑&9W11{tt!ԛ<usw7N:I_YJ TC-'MԵ3b&MC˸ݻ'Z4c̓FF.rP ^^&`$@ic h L4! xh$ܵkڵĎ}U6̜9LABܾ=ɓ4oo Fbhh~SK5>#GJR.D klF_RWXO>Un yzx> I yÆ䂫WMhu8⫬.!!,|)bp06hB$yy^^##--=6m v=xl4C]]`׮&&:$s0ܕL&k߾>z"AB⩢o}6w=oGiiE;\ u.l0ф c\箬kZ>ɃaKD qv¿ Pqc @@2]p'VJfZZZQbbxYWoKss}ssss̐0DS` Ah;wezk ӧxq5Pϖ\cǍ:k}|tx˔BvKv1h L4!/,.Y9&\b0X~~ejw*XG9:\pP;}8]]^BBMa&Asʙ3mpuL#oD"5{]nV8`gskH$lia1XII!`)|0ф HLq]im=wf{{\hn<fXӧmU&ڗ/v!BiGz(]RDS` AXc]ׯzzoVYY2B<{.VT''. t&p|)@bIDAT)Y`)lAbMYYkCU>|d=XYYǃ{.auD?ϯJHE[.xjƏؿ_ 1[4!ϟuq 74T{`+WbϜyҷ#֖XG +'<11/663..AFlbmnn`non-M$IK #ڵ82pزUc$0S0iϞyrrRs p9e`33Qtخ=L4 &I<{K1ctӆ=w%$==FEcZa3Oyy}JJ.בޡNdI33˗ZYϞ,ee3g޼?hzp3D'jk+8a`&Ayde8=w%qA|ij]{ yy;lmlj/^v%r8 آ)l0ф H1ÃߏgS>{Jxә NE566omLiiPHMJOHE˖jtK33}SS= Ma!`kŘ1v=f ޞ?zpDQQ<aux(+rvgfamf?x:p A"M$ފfCj_5?e׮2a|rbCŋgZ[ ݢ#.33K >ߚh9b=v>:hyԓ35{lC:\9v&MzǏSCUU/^\C#ÛA3O߿WΟ?eΠA`YY]BBY~Rb!hKtK_aaurrMm0ujj `YMz;ofaV^e8pa˖6KJ vO͛/_fv,v*"?l6:vĉpTkvd(` APτ ȕ+GFmpʛs瞫ٻw…N |W_߲r[u۷Y55rrRÆi? {$7x5WH%KF*GՃDmۂKK뼼/Y2&M2k##*Ǐy4sDC Ö,IIo=JQRup0QUrvLHȥR%$Tt:sJ n4uQԣD~Hd`[KKcOeJ?:t7%pJ :3@?ޣzѣ]1W2fh;8LZ|,?;\!l۷n}ә+*ʤ L4!r]\B(s-oh8}}Gv*(H= ӧ:pQ{c#u^:JKXX뒒ڙ3_?b03ļr 9;\N4o_9Ae˼[-$[IH=L4!-T_{ꔍj3?i y3N2LDVک(u?+)&'{fZQQ >䆄0EJdg7~퍻N332~f-MrrRG뙛r ;\BXAdeeV

    D"l<}S uDׯxjj}LLD, M YYr&!:  &AAPD Fi_A{{{yyyQ%<=ϟ?۷oGDD䴴4F77#G˛{zz2 ХFPG!-A;.lm ...222 rwwoii0 ^X5` A())޽kݿɒ%?~ 'C055ݷoSmm-n֭Ç׏;Ç^^^III{ b2];oqqq%?A檨qa lu_%S秞n߾=)))<<ʕ+V ͬ,~󛚚y'xD T*dƍl޼y̘14 }`0`__߶l}LAx{/++Ɩ! Sev:\6yS%%x*111|nf˗/_n-u׃kjj7ohub߿߷o.7@rrrЭYYYeff>|Z ,P( 纋l|~ \:\ %%[RRr"ЀWOyɓ'jG(tl«bۢ M:OYSS3b800k׮FR L&3&&Ӳe˪nT+h^o:thII ϟ5Ǐ4m׮]#H555'O7o.@`_޽khh 7b/^L 9O ;҅ƣeyy\0L4$ຐ`)0,tD":ub3Lzb0&&&!$$N&9AqƯ_nٲ];j(F{ d2933sΜ9cƌ D644teee :Q}8_>miigjj*''͛Ey&::z2&9p@tuCCâ"HPӦM;~x{W^ݹs'""}5446BNɜvcՇBoSTTGKK -j<B=/ H;ZQVVљ:ujll,糞666޺u 0nܸ۷mV{դU hB$޳frvvFhkk<+WtuuMJJA>ydΜ9f\WRf`555x<~޼yG1c߼y&!77]=''G[[3Tdd[?N<9ewwM6;{9rm޼yֶ獷 mDdffjiiy.x,z]Qbݾ}zݺu .泞"j*xd8njMb9::n߾͛/^8::FDD>yJhd2P__x.OK.ݻwo~~~jj9s.^7oϸqH$̙3$)//˗/kY99!Cٳg--- ȦMFn::tӧVjiiY~}g cǎ}y :.x,$h. JJJׯS(s.p8++p BH$,T^^ѣGqqq...?W ި HuG… #GDwfuu5Fח0a7X9so߾񱵵UVVF;G⺢0"\_S(_UYY_~7nD%hF2Quuի맩sjnn\9z%6CCCH&A #F0`ݻBu(T CAPaÆug#ك ΢hIII)#O.iӦ 8>3)\@! 8n!Lv A$<0ф 6m$]`$z|Հ!@nC@[~ b:  zhBAABM  H(` AA   i$b UTT`**%%u\DHIIax~*RRR8Ù!:.FAAP>AAPD   hBAABM  H(G١mhIENDB`XQilla-2.3.4/docs/simple-api/dir_edb9ca93fdcc21e6038ca507797536da_dep.md50000644001725400016040000000004013273140074021445 0000000000000081444fb8b7c17ac8fbb8d85834276a1aXQilla-2.3.4/docs/simple-api/classDocumentCache__inherit__graph.md50000644001725400016040000000004013273140074022162 000000000000009b71226aa0530150da952bd3e4031074XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp_source.html0000644001725400016040000005734113273140073020550 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    DocumentCache.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _DOCUMENTCACHE_HPP
    21 #define _DOCUMENTCACHE_HPP
    22 
    23 #include <vector>
    24 
    26 #include <xqilla/items/Node.hpp>
    27 
    28 #include <xercesc/util/XercesDefs.hpp>
    29 #include <xercesc/util/XMemory.hpp>
    30 
    31 class DynamicContext;
    32 class StaticContext;
    33 class QualifiedName;
    34 class LocationInfo;
    35 class QueryPathNode;
    36 
    37 typedef std::vector<const XMLCh*, XQillaAllocator<const XMLCh*> > VectorOfStrings;
    38 
    39 XERCES_CPP_NAMESPACE_BEGIN
    40 class DOMDocument;
    41 class DOMNode;
    42 class DatatypeValidator;
    43 class XMLEntityResolver;
    44 class ComplexTypeInfo;
    45 class SchemaElementDecl;
    46 class SchemaAttDef;
    47 class InputSource;
    48 class GrammarResolver;
    49 XERCES_CPP_NAMESPACE_END
    50 
    52 class XQILLA_API DocumentCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    53 {
    54 public:
    56  static const XMLCh g_szUntyped[];
    57 
    59  VALIDATION_STRICT = 0,
    60  VALIDATION_LAX = 1,
    61  VALIDATION_SKIP = 2
    62  };
    63 
    65  virtual ~DocumentCache() {}
    66 
    68  virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0) = 0;
    70  virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0) = 0;
    72  virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context) = 0;
    73 
    79  virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0;
    80  virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0;
    81 
    82  virtual bool getDoPSVI() const = 0;
    83  virtual void setDoPSVI(bool value) = 0;
    84 
    85  /*
    86  * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck
    87  *
    88  * ie: to check
    89  * xs:integer instance of xs:decimal,
    90  * call
    91  * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal")
    92  * (except of course, call with URIs, not prefixes!)
    93  */
    94  virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0;
    95  virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const = 0;
    96 
    97  virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) = 0;
    98 
    100  virtual unsigned int getSchemaUriId(const XMLCh* uri) const = 0;
    101  virtual const XMLCh* getSchemaUri(unsigned int id) const = 0;
    102 
    103  virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const = 0;
    104 
    105  virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const = 0;
    106 
    107  virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo* getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const = 0;
    108 
    109  virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const = 0;
    110 
    111  virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const = 0;
    112 
    113  virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const = 0;
    114 };
    115 
    116 #endif
    117 
    118 
    119 
    120 
    121 
    122 
    123 
    Expression Context is a storage for contexts.
    Definition: DocumentCache.hpp:52
    Definition: EventHandler.hpp:29
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual ~DocumentCache()
    virtual destructor
    Definition: DocumentCache.hpp:65
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    std::vector< const XMLCh *, XQillaAllocator< const XMLCh * > > VectorOfStrings
    Definition: DocumentCache.hpp:35
    ValidationMode
    Definition: DocumentCache.hpp:58
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    XQilla-2.3.4/docs/simple-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.md50000644001725400016040000000004013273140074021311 0000000000000095bb9e082257a94de97456311ff544a1XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__incl.md50000644001725400016040000000004013273140074020173 00000000000000566dffbdca8433999038a4a9dc419368XQilla-2.3.4/docs/simple-api/classModuleResolver-members.html0000644001725400016040000000515213273140074021146 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ModuleResolver Member List

    This is the complete list of members for ModuleResolver, including all inherited members.

    resolveModuleLocation(VectorOfStrings *result, const XMLCh *nsUri, const StaticContext *context)=0ModuleResolverpure virtual
    ~ModuleResolver()ModuleResolverinlinevirtual
    XQilla-2.3.4/docs/simple-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7.html0000644001725400016040000003115313273140077021341 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xqilla Directory Reference
    Directory dependency graph for xqilla:
    xqilla

    Directories

    directory  ast
     
    directory  context
     
    directory  debug
     
    directory  events
     
    directory  exceptions
     
    directory  fastxdm
     
    directory  framework
     
    directory  functions
     
    directory  items
     
    directory  runtime
     
    directory  schema
     
    directory  simple-api
     
    directory  xerces
     

    Files

    file  xqilla-simple.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__incl.png0000644001725400016040000012703013273140074020604 00000000000000PNG  IHDR\@bKGD IDATxw<8W ѐBd$3qDTa4$OKiQJM-TBY?G|q;uΑv_}_B @6"/((bG;`,[l!Hhx<"w&''/X @Q#EЏ #tܹ ) "/((;{Nbbb"TUU @[~qѢE^^^oWWWxxѪUΝ;(?ikko߾L?~j70\S0D HBBxٲeԍ?< ^^^ D#!!aΝgϞ`0}ѱzjaaa))wEGG߿?$$_6drmmcbb~n^H ѻw޿_UUUWWG)""""""$$ (##jժo߾g >|x222?~|@m͜9sݒiiiFPPo_(!***1cرcfggg33dABCC444|&b켼?+??ǃB...[[|eyy͓'O`ʨ_p p"yyym۶>>*WUUM4xر:)))?ZZZ~w/--?~["##ڝH$x;a„~3"޿|2F@(?F&׬YcbbBr̙b~;.X?~ũ%$$>|A{,+!!s Ξ=;sӊ]]]III%Qhmm-j0>Y__~)wQRR"Hqqq ?~톆={|֐o9;;777oܸݻuuuׯ__z؏ZZZ?~`mmMfddO޾}5QSSkoo522fffNyfSSݻwcbbϼxj*,,Ç/^d#` pXQQѬY7]PM8QJJ+S ֕+W!O:'QQQ]]]r𴶶ӧϜ9^__/))^^^JJJO&uuu [r%hll7 ;;vaavƟwpԩS_~ \f RVVJ^zzz>>>]]]> 2`$KMMI **Ǐ۶mC;ჃCZiΝ⩩ç444\|$E?xbeee0^^^SSShƌ999h`BBB7n"/(( .())F)oM=bQ(MuN'?T"IIIvv;wmw66iNα"׿0 i $;(:-=ϯ)%CNG] fk^]ɓ:66$-IgOd?6;ܸtkn>kٲ3g@֘ 0Ξ]{uGޓHdyQgzz.֞, v@**ڙ(.s'Nemfg7WDdNG<^_TŽ{ҤIϟ1Q]]NHLG}Vz}v<^mժhAQz+W5 jhLԜ8j脡"՗/mwcbn|ܺp$C(#?Yaᳮ.9(E*88jLwq/ U_ߒ劲8V[{J |hGC^vR(ʕNN88 ݿ_ŅИhb2p:??Egbp  HG**jyuuLM'sp0KQjoNNVmg7wII!CĠ(Gge_IZZx+͞-Ŏ"UGGObb٩Sōm3ׯ70/`((ƌo|71ad$aɧ3E*U~X~uu E&F;L"K7n61ae& 1oQ"aa_ZXĉӀIxyyOX6}}X pXzcggTPrCy jRRp_dgewvfg%}ƆYx]TWf؈_Ȕ=OI]s۬Y6o663 w cjlh8=%C33˗/փoSd&]YYIIe׎/fit,YYp819Łtt9s=4zʕp7?**jngd< 54&3EɓQQ˖ecE?( {rsn}EIi !.TM^x4f**NȠknXc㣡D"P)Pe凐+W<:U*,dA3yuŇ< s3FP |Fċ q!55NWτT!cGGh'VHqxpSw21v0i__˰y泻{3gV*CE= ٕeeo-:{0̠(OxSL̊ӠVpBa%7юpӿwر|~~{C0%$޽BccʕګW/Uھ}CC _ii{9so}chtW`ϼ~iٲw3Ɣl޴*"[d@̦s#%%vR73w6`j0>|56ƴiYYkdN۷0'Hffhb282++¡ #_#%\QK6@Ed1VVXl?vM %6޽cƈdg{G;119sʪdji@9bقܾ+4NAQWmmOrY??CxgF<^ A,MSsډٶTX'00Bj_~B;WkWpN:eh'02RO%Id2R8SIE;EiƤ;wzznܸf50BsN{ñ-Zӕ ' fǎ,A.F6bNCT))JJcЎзtJ^||0swצP(vpq`0*ʈٳm[k::ю3̮]>2 ]Bb'' ц ydԆԻ]Oď/֬56`q_CCHLMME;2D;S:|p]]YZ۷yy9 7"B?'&z-v"hG#KZZU:S,xxc<2YYެ}'ɑnnnF$))iҤI߿'aaa ѶArssgΜ#));ݻܹs=z4 oԨQ~~~A  ..xYYYAA@^.\PRR0aB|||_&''kkkM2< s9`A]]]mooy y ---˗/K}7DbPPرcŝZZ̤ߜԦ'O,!!=իW充כOSO;36o6 ʺr)M;Ю,2TZzömD" ,#E'''gg?5Ν; %""BBB"##ŋ222|cŊuuu |B Ձ,--߿_QQ1k֬͛7S(AZ[[nmm@3<W^SAOS?9Rڴ)ukEysȑ>EYFFFIINQQ166 qqqϟHRCsMMMB5eʔ|eee Hyy9BMMM8СCd2D"B)++cggollP(<@ɓ'o!R\\cD"qх h7KbO>~!//˗ɓ322>{1UߜTTTĩ}c HII B!H?@bOrЇC"çD"yݺĤ;a$$$^YYzjꖷo*++>AISSrppzPEE%66@  cuu$J}}wQ#}USS3Inݺ{mݺ]@`XScbӭSָhoOLj09:cƌ )))ӳk.YYY>>>uuDds """cƌ9y򤝝Qo/$|||...¢߿n~qppL2%;;Ǿ<<< ~|d2YNNnӦM4j*nn_6%4559::JJJnذ/kn~o蓓qƉ]`olM ⏎:fƛ7iu P;.DںlD IDATmO׷$'RRB&ĬçQo^Ptuu}6&&fʕhg v &$VL򨮮~n($/?&'G;`JwQUU]bł 2~s xxx K65 ^^h_bSP\<%eX0> ig˗Gg8ox[gLvHP6oNzilTDF=۷g>},1YQܹ3;5nTYtk6# ,1SQJJG ;~KUg8#zhgaԫFNv2Ke) 3/n}:И驻u3NJiHW6776>*&Ɵ98lB]aD!1uu|Ƶȴ :>Qnn?1R #MSCԆvd<ė/myy>||X^ ]xmmŋЎ׍l9вa;O HImw63SS蹟_*H:pNCC!}}#GXSܱ#ɓgWBE雷9kS&_Swo,\P\iѢi+Vxx57@RR{. 8;CEgؿ~S54=xP*. I2W޻NG+OQ R[X RYXB; `D̎qr"Y8LWwjI&i..q--h'bAAA6$1 t(UΎ-cٳsgaM&uw!qqss8PV&:\ÉA}ϟGD8sqo%%y2pHSJJc֭ ϟ7F,EE#"J8qYimO:!''Q\M v_2=w::^C?}9a݀hbkk_%3x5PCco~(87IIfZuVOojIq߾!`gg si v"(ONw7a. Fvf͚ -^̔ [>*=CׯB;7Ntǎ%Nݿ,0VQ}͹se{Z]A$'т8pzAєha&AAD"9$$ ViH޳'%F_&Mv"f"))fO2 >aaހ0,}spHbi}A9N||| W44 l55Md Ys@(=~jTzt+C/^ܰl\07 IyyEDGE]C;`0YUV~HJ*C; `snϛ'(J>H$mlµ'((HHJ {zyؑCc, P>M|p:":dCÆ:VXןNplG\E;`(rvv6##%w ݻ/ff_LiDOoj~/sހsP(LMyy5T\b#\yygvV&%%Y=.00Hdk;gtLFGNJZ<^9jqX;;[@Ih}bb/_NĠ0{ZݺUG`p.wedΕszz'ܙyщ\\8 Kxbhx8 jƌ1VVAAYpu]"Bzǫb,ӧo/?Y驋vHQQ '^4,1n?֭mm]N0.Z ѳS@k5ۻ6+g=w?\WD GB:S>}vZ M.CNM]?9mtnzXu S72ʕxϟc_+Wj<a(~da:nѣ#~~)ڰ3낈ve ]IIv/0Mu6 f|?YkkWyy… tԉ6$yx9bǼAc 2v yyKO ajz43) YJJcvF;`D,+)yA&S&ӭG@#$?uKLЎ̔؁"ϬS/ $&z88Jس'cB lnv뒒hg ~Ex!!h%:#AL Gyh""~~0^bgg۽%W[5wܢEv!`+eeo45'ѭ;@ mm߯NN^JZZ| bttqꩩknެ27?^_߂vFmiUTXbKKM0Sn46>vzUUY '##%g#XYg͙3…uDc㣏G;CGt*R(%1 ׯ?YX pgg{ޭ<<}"crr'Omiyէha7~} Я(JK ѧ;0^hm}r8Ѵ5hǡKUDRl+؊W< *gΞvi~ցv(T+*jg̀DTQQti؄ \hǡ]ݩ?B$R.UA1[oْ ZŲ r*iwc޽wxIqXy/kb2wS[eors:zٛ'_<=FF?EptkNkhL^Ɏv[t&Bc-,f| +۟nkB;\]yBC =ן2e4UUǟ:塗/ D"iɒYhǡ9MIYYk>-YrǑ;A6''ٳ7kjE ÊÒLٳzS3fq`cD*,RAQQ9s&͏WU}F;j-+--|U󮮮YZZPd^}>9m3vuu]tDb3R̘!p|:Y>vhvs%=Fkn]5 'Nv&zZ]55u5;pr*nnHȰ[01Ԋvafkk4w;;{\]ϔWǻ LA vç7o6rpP]/999$%%M4d29,,LAA_]]:l8hnn̙3yxx$%%{kgcc#///77wsEdg%~~~F#`0qq Rp႒ׄ ca鮏W ۷rvvɓ%$$8ﱰ钔t/uE66nVVymmYJI߿wӺ#>0˖i$%%w8999;;qԨQwܡP(/^A~~bŊA>LPbbb݅߿5k͛) vvvQQQX[[FDD c_^~=,y111imm=< . ^zUVV&//cǎ~7Sx\O"_$cˬY; ߴEYFFFII[QQ166 qqqϟHޚdii.TSLihh>WVVP(S(>_~Ԅ:L&H$ҏ}Q.C{ HII B>kjﹼ|)}QP(/>;oŘ~j|D 3n{\NAHHݽr'}roիW***ԍAXxI!%%%1 u;??? 8cAddd_;} III!ĉLRWW7F22R:y1%nPPCݲesx=>ޤXW_0jkk|||[?~[촶+//?y$uc^^;577VN2jjj;} {bzh ȫWUsfl< #.rrj,~( AAY/VO d+֮]TPPpAVX痝Ǽ͛7HwwwOOGgggPP mmm>`ҥ[l04445&G 8Rded2+H$>â{N$$$g#Zllfd?T͚CƉ(R֬}MqC|O?>]PHi/M{lfWsc^eQgg]DmmSV1cDЎ3ljkdl ,&cu\$;C,PdJ~~)CϞcyvCZWa9)/oSNOij Q+qss=RTmh6cƈNv@+PYDccM꺺SWRJ]M}..\\5~ꜜwO-15U.-ݼgeNùs8QE@;p%&bYWW۷<{Vv@PYi<<۷dRBmM}g˖nsИvao ZxX{nHdsу_bGKKKtw78CSsdt4,&(٥Kyy92)-ힶg˖l:rNN.Խ}{֭ M}#GwXSYh"kkڴ) W֞v?CLH=gn_ oo;~^VV\"*ʷ{Eq)S$W:kjz٤Ioxuy ++Unn;h"ۿbO1( "U՝;vdϼ{w{pڹANN""…u%KB޽v(ښ5k\xSRRٱchg<<oɰ *+?={+(Ȝ.$ɉe=r䪍͜;wG@;͚5Yպ IDATy3g\kj.Xp`/_X*͟+k|9)n~wpPk.-}v0̘>3ZZw]jǎ쪪O66}}KHeMWx?\HMz.\4^_&,kh88ENNB]].!ᖎGL,7qY],0 Y~2攌pIɦ`kTllSS咒M6>]Jr ^` Lqv~3q AA܆@QdV%_mbv|痪ss|ʜٳ'%l]X'*gaUSP e;yQNNOh:ǫ;W2"ĉB//Q?"YšC *iPaHIYW-}]hN\\8We᭭h:'-p +Ȕv=~\kfv.X[.)dmg=椫W}o7x0[tD",̛}Xkbr  EI]z s\C#00//G~L:ᰮZnmTٶ-pYC cE=zBzhq^A\n:(2;UUeMLk vOCcon#G<'Mv(!(ȳcǒMK9;G6jxL&᜙ȑhg"##%!!܆u@Qd27nujf# qd k׶jh'bAgϮLIY]SU[{=߿wj,X0|Hȕhg ǫIYE&re)sʡ_ ]{??ڡX|߭[MΞ/-\Z[>w.azPåKy6ի&&GSS8wC1 胇# $/χhIFĬ|IH{ `vfE ɔ#G*O*J umѢ|_uTb_:U*+k#v%%/44EE]c6͓?p{hgjjLzc E \ˏ7s6=n׮l77tϱcEQ~nغtΝٖaϟ3ߵs֬Yr+++˗+Xlڑ"8qx*l164ܤaf6\ `(2g uZ=s22yy>36M:';$6+\Kk_Z3Fasrb4aAQdtzzSOg]]5k7lHMIY#!O0^y)'-_]_߂vG$2UVVoyV9(2۷ܽK64,YZR"1gyz' ΁Qbc]}g11hCEs##]99봴&ӭ_@sL((۸_\n>&&ț6;նmpq$^S\i̱׬ P`0!!G :;G1%* AQdPaaFFJ%:#AL Gy0 p9UvrŹ55[3XZ|+,2#v~5gf[N5;w|W=AW>Yaeu˛6g@sʥWD; 3PQxxҥ*4ӧVS==ĜuNjѴ/Fvk8.=> ¼,_0ןqcm3enUUe7lH4i, Ju˖Nn?ç {rUtNKH$rFH*S(HOX,Ғq?v mޜpAoV[R',26Ɩ @Qd81198mmЮNa؁2QU?Л@ ,AEA..\@IVښ::n3溆fsLpu=k;Ye`S1(̙4ꢦ%^F R\ZZxƌ1:UU|_G[۟fXp'bE ^ǫݻ!?X:; ˗$֧OllN𦥭U{YXZ[D=dz…Nԗ OtKeݻs?-"".*3@DrDDﶶX,[B-`R Rrr}@23R"F&[Pgohc RǏGG_OIai/E@Qd VԢEںRRVê}YYbA4i(ahpf/_~9y Tl5NƖP"*B6=*JR$"dM3}_c1sgFu,sg39OlG^+?LVaM}c 'F7"+8<|}--9h4)foHJ|܂O?p<wDX9IL "|8Á8ѣw劣K@8Lsp2gMO`?ᠲ#//1l p%KF?zbomQwp0Y| 7?|]wp+4'?ɓ,//&VU/^|Zwm4Aȑ0T=Z2'|p~WiС.TSk-h#\A Q=Oih6tdժPw]^n/sFJTQ^ #44#,Lܾ}_loz +KY[*(H>x}P%TV߾mt榫͛(YYq%֭[V1V/$%%9rbFƮst}[ff66|bhv_x |K)W$.\8JDĩ6 ||,εT+x__=b݇;9YZ'q[[*)ITE^1S W&glN ɱ~zzJfP޽N/L <go?(:E~EA/\3gX~lÏ~8'S%BCoy7^ijg=kD@ͲK~-3Q5<;99ĉ۷π'@xqcerrĉKx"C[[ĉyaao_ꯨ( AsQOMlʩHV ;ݚ# Gnn.cx߿/\A777 d2t #FHOg ֺd&#ʕ7nYm=~[@^,^l Iҏ׭*222WOkݽ{w%%%aaa>}0nNLL,-----sqqa)УfyypUlo55 ƍ ]"#'L0,.) Q NōAHkQQӏs${ݻ ci3SSS\vM__Ny]GH8z'pALT{5E7nNHkK\:tUwrrrrr=<<ʔ޾} ٳg###KJJ,Q*aӸ700D}au&p(\ƙ@/hbP^^eXw{^ 0.bMHkii-zϟ,X0{ m,[Ǐ+V@盙Ąy BBB999 AoSTYYYU ")) HQ TTTPGP;;o߾O:<>>>..nrV'할;jIFsѢEL$urWtU@UU k##3f(ܬ#"V$%Mr t89bbBV]UzdYY!Ct""P(o<~柼yiiiNBowyd3ϰ"+˷٧7ox ǣFQII@ +A>sALLl?~DAvԭ*jAAz{n`nL:aaÑ/>c֯3NxY0a`lG*+&@)w6ΛǁP¸;w}k̡-vӧO-Z~}TTTYYYLL̆ 7BPn wTTԴiبȊ3gnܸ0##>((pԩaÆH$------Drqq[VV֖-[͛׹Yqqq 6,_~]__DR{T}YYYYYYV*,,QulPQs{ā烂!XjL9x0&!!;`o?)9gBpO=V };-VV;/XSin;pDQUU}"ZZeWܻ:cFrbDFǦMR%X*))}͔KKF&-PMH mémy* T1 KK5tGǣ߹ԋv۶K]t`XCkWp(JH)? `"''v --?tvjhAaԩS:޼RT111&-Z[[?~hTՁI$YI9N{, '']݄kLL4f8qNzYn!+W^mj[k8z ׍0Ot(]ܹVi…z_߉R%޽˗۷o?~8aj +W?mLX,_}2@dpp_D^:777%%eӦMnnnLnBXDBBEKY*С EUT"vH}"%vɳ ي**ksmavht[hӞ=9RPP0{lUUUIIɡC޻wΩ-ٵknTTh!J9rzsdqqqkkk4!æ_`---yyyooﶄnb؇;ЖXcc?|Ǎ;u {SEEeMlGnwoP(m9rqo9xZ.) Q, D"|kyFG#uhӦd_?x{oͯgD"`p!Y]<jjΝ{b8ii1 @G2O~F2lD">{<==Y :: ϚuٳOW ӧgg9`d*,b~UUoUuuCBBCn׫V٢BQQ̙3܄YYWLlp$60رؤ<ζ܁1c Q0rrL hkkv ǎJH,X >D8r&Onc3`k\;Fua8S 鶶Ąث^Q;44iժ""c!Hlur嗛9vZ;|xNs3% Smvfp `c(X]ݐ~>g_HJ2pr tSrrG̽y3޽jRR^A{0JJReef-| 66ث^[xkOϱlN4!?#Vrt<[75j#GzKCX "SRRp $:k.ާ@L _#))2cƉ8u4EEIo0.e1BCX &ZSG!WUտyh}QF׷',Y23SpM7ǓŅH$bQ JJRLL4f:ڞ"**]s/9`,-uDDHh:X|UUeB?Hث~j"N_xgU1aϞ=3gĬ;'40ɩ?y?,,䭬45?_ 20 —.-޼Ew옱p޷9h޽F0Ç  ~꫋ '~@zFQEEPRRklAwt;;cN[[/&̝k6ژu<|xA\\ɉB !$աCNNC\]_@D&+DWl>g̤GxyYjL:;mBz ˧B߿Waom|&d)ee,OZnbnnOY7tѣ<=/~N-_dӧ燆&zzr T͡Q^^{}kȑzu?92u0;cW&ZZrU͌Ι;OW[۸`Cw}:h0aPτ'އ=,gj)))}Py FFLV{4B[JJ)) -qUA Z[iV "")S""V|aowNR] =ϗOB"ϞHN\j|BB{áI}()Iݽmh@ǐ usY7faPs mn{  u͛o}C(I$BP{^ϣGpJȑzoC)^ԄLV7T*` JJJ =Hh}Dco?yҭ|KwdG]ϝ{v5 iko2tZ"o(eg##%%V|(ǏE; A#,LD97̚5ƍwy3  ''/Da9LVx6MAәb~~E_u5NJ=ZW&ova]]͛Ҷ]\FFV>vvƷny{WvFwМƖۣzYZ}˙y'`g՚(uuM_ #z57TACC2؃@GJJͫW_mm 䨯95./1{%pv-G6L:s3*""t7RS tB((HfJ 7 gQRB96ݽmbuAxz^NHsҠ)ݿD"8:c/ā3fXE6MUƯ_(HT9HM-QPTQVzDD+Dz nrz=lX8S E33/_ʰ|F6.3 CLm^mts{7mĈӦ Mb;!:/]:fժs^{VnYٯ?<'`jd%  jJ7))Q2YG]{+--:q@.MS%:: olvmͷͷa8n˖)6M޾=%%Eq}87gk  *`jx}5%RGGo]\ ' Bboh HN'c„{uoxy9zl͑= 9Ro7̈́BBD33MhkG33>6SLMfiٳŗ/̙3K O l7Ĭ31Q߻־ly܂ի{k) `lw=lXhkhjKY9S’tz <{iiwYVQ{))4`o?(4tǙ_dKLL1ϳoHaat+xkhnILE8D*  m 䈊yIL.]z5l>1r^DԂyβ~!: dp8VF]`m55es1Kde_AR .K' & *Ho  (}΁w_PPki\32rշoNNXOKi̺uXRF=޽+iEHoY*䤤>b33 4pn@qqa.IO#^"$O GJJ%҆ߍ(wz5͘qa!!CssްѣֻwlT 䔔o--wq22Tc5))ߦO$H/AO݃EN*eM@D --͛o[XlYki젩)wD>x~~+U,,Vm]6Chȑz--ii&PQW6I;֐{ @6cߤw &N<4v쾠g55dk!o{)*J͘qd[~~ZZrk\ Vc#RB؁FQMMVC_bW,E8nũSH$TAz H\BQQrɒϞĬ:TXsm!##@e֬ V~ }K =H__YJJ$5MÛ ÇMffF?1Z]N| rl;p4zjq1;#..tp]gS 9ݖ76V,.833-耊%<3 zbOl"#))I\,wE,qrX3_@ $D<{vǏ-cG&+[wGChÙ"(G ;3/f сpA")b͎m=}ziʫv?ru֬!˖ܿM(p/b *փ@ 7FQUUFKKN3jke}]AAA%\;)A9._^t'OƏhJ FXq%""ya##U//2D}3QPY&#AֽlI#{4}xy$%mi 07#9p۷O_nݺ ];AC,:II1gYƎ5q#_?q^i YY?%Y)Lѣ=hgrrO畀`k{`X-[R80NBBN\_VawsϞul`X0144ի3g?F?^۷S׮>|׮8cǺ&==˗twSMLܬ-ilםim42Ra' ˋHsDDH/_n9spD[k]1k֐'CCov}!**tӧӻmp@5WPFq㺺攔o<?)V##UV ge E~f!4/V)끰yw.]Z,##u$Fv6KqS͂޺fMxW ÇεڸVD>qQ֖U|5ϥD"LVdpLLtH`pK^^BsE@"ϞHN\j|BB4gvvaae\yk`TaaQݶfj "6(~6._QH%G2'M2jk' E1C"fδ,e戈Jwͷr 7>,..{ɒK @"9ݺI7☙idfWQ_F87o=8 .54diC:;~ %AzC:oP)Sx6h ӷN.uq9=zg؟ 3lX07o-`K[ӧ[׭&&혚j64R?(_JJS[AE/2Dt- K&FPusY7faPs mXN,-un\w7s swIY jHIˇ(c (64Uh?δ39sPk};gIfWЌ߿zZDD\~wqjR2ommu.VHē QQx4~YׯLq(w玲^v~;+И7ohj1/Y]`jxɓM A45z`m)pׯ'߸\UU?bCL1!q߯_˝Oijʅ.Ao66R<=C&O6}O%ϟ?~y_xݳ?.(.ijp@HHХG֙jp[bCCˠA;wΘ7ϚJX$,,i۶=!]{q]hիMRyyÙb_F'&憆&=z!..2e# `)Ίm~:9RTvSVV2wYYчWV˫hR8ی+Sx ..lc3޽#XRCCeV+?8f%ji@GJJU_jkO U}۫ⷳ钒7sii@wG *A-TdsC xoS&&VV F°ϟK 9I^jc3IN1|$J9:E?%%i//W6ݽmbuAxz^NHv!r/mCGG!2rկ_SOM-@hȃ--[Staa0 좞KqҐFXXaϥ{6e $A8CK? <7th߿߾ŝJӣG z_=ck{0#gaJJR2e(c`}(Z~b bT,uT{DElmDG?8tCUU}uu+Fŋ/dV78< %%*)&nR[[*/en:wnn֓&9Q"#HMMiϜ8pd uHU}ypxhr/{UIIZmڴ㩩[UUe?rӱ6ׯ_ B\|psWB9s\v*ɓ,4#CܬcA< `ݺ ݶ6ˤmp1߹sf ..;vm9\|1S ?|pH^kaF^O11!n,wYٯϟ˶l@ќnܸk!ٙF} &Nb6eY~~ŵkooL>}ȑF䔡ePÇQo܄|gk %囇Lj1c ^ޔ™"=E0f+YTxK^^BNqqBB+ب@ ܦ4#ǵk˥E’:?7nkq t IDAT 3@$28X%عsfI*{QLjSW./ N@ 4ر?w}ASR98.*C-: u08aaRdYYmY/2Yqm;ZZr]M7!qF"iŒ h􄄜c @0&::%*{|&-<զٳ- \ۤA3p8D11!c=9Q&Nf~F2t F/,vVX[8n6 Ƅ&1Cim5489{$&nqw!$Dw"*>wCXH$p8]ZZ쯿xSx #pv򥬧A?QTTMLŋXLA a߿/\A777 ^ܮ:!p8^'I&p\x3?RPPZ&>>wҸKnnnqq1U߿)66ZT^_OAF77hNG(A={QedX:m() G{zo44(ݗ/?_x=[wޟuu/^!̤ (/=̙,ǒ EEI))Q&e~j(Lȓ'On޼&:͛mF޽{cƌyq))) ~:VVݖRiMM"nСfT$K&UU$2663BU?QQZZt^ a-Sc^&&&SMmmUU=6z2QQQ#BP(ׯ_O>Ј АwwwA[\ A{ 4HXXXGGʕ+PT+**())!Ҿ߄h333QQQee={.\044߳gϕ+Wlҕ0++Ç#RUU|}}imm> 555rrrjjjMMM\t 龾ЦL&t􎣣 _~qu;-ZhZZZ?'v W^^EA9=y^`…/̼L`[,~͟?ãLII۷}͚56l@y'Mm۶gdddff6ϯZgΜ)--pH?p/^z*!DoﷴTHHhѢEš?"puu 8;;՝={PYYP؎;&O HTT """ ̛7&///##c۶mk$==@^Ugee#R[[+&&VYYf;be,̅=|PNNJ"jllf{9h!|`wx-#'ڹ2`#eWSSnbbm۶ull͛ Add$Oڮ;ת&Hh]U5k:gl~[ZZi4˗/۬ Q(hRSS%$$(ʺu6mD"jjj8%m_񑑑d2˗6Tׯ_6n܈ Hhh]}KZ[[={ ޽{@t6}`"&&|;^ ȏ5Om.Lf,[Ǐ+VhYPPp8ݷoB===􎑑ь3%++uu1c$$$xT,ChBBB999 i_@RR@":\w%\\\<%%%>>~ԩqqq'Oh4]n2B*AIII;vpNNN7oD֭[gnRWXF fΜYYYy1|?EaaԩfZ]ݠ͛<a}t'OݔGg3Լy~;wwU&:~ŋO2a{.\Fmjjrvv^~}ZZکSXcgaxڹ BBBQQQ S(t3bKׯƩS\]]vt]]3V[[K$wڅ HCC[Grrr***k׮ms쬪I__ӦMоw4-((Uݎ0˗ձyϟ{Qwfg;v]tISb8C@$ @YY窭UUUE?=Ç_|}ƍs$&&?o^^\W}9`8ڠ\W]/ ׯYIAMmmLL&z ǦMΝba4m(NE˗RUյ_/}y{2)`g'`((BXc9.8$$˗ŮUX+ t:}ڴiͭlILLD{ܘ̩:YG HDDLfq ?/^ BPI `xam)@__RʕD^ ߊR]s%\;@8@a&&&[`'\^x[nEEE=@eeet՞P:9glhhX\\xBUUF0Ǐ3~ZׯX [[ChcςS,>@X55>#8ג=z֭UUUK۹s':^vm޽=}na rrrTUUYoW0Fq3MUUdW*+ãbϾbOa\E֯_UVV1ajsEd___%%%ooo2;;ǏܹK,aoe:zܔM68z"88ׯnC`r0_ovgaBi(רkRQYyvW;b,%q AS۷ 4iྦྷ8n"øX c kkptO*++\CBBo7&''[n8PDDDWWwcƌqqqsk>CB[ ҒnjjvT*uȑLr5. hRTTΝw<[ʚ"t#M.c#QdbtQCov.IO>7t+!!  ]]]ݻ obه?ʐ?iiiIJJv/; `_4,[2q! HIWQY֙/_JUT֤XG $?ٳgԜ?PUUŰbbb***bccd2<7TB.y(BXEMEeMrr>1?4Shk;:8l4s&I29N]]$X]G:fJ =k׮]m{^るU@ ]"`3Eϥϟgci]]h> F@gTǍ3eSTTtM^` B򞢢" Thk;HԩNsp}F]]͛hh6_ KH }RešXvX[[ZurἼl *WS &&Ǐ?TTd&o>20SUt31cƝ?::SLf~ȓcbqjGhG]:` 6 yuKdɨ%KFKK3>r@Em{۶.76RD|t%66EIIqoĄ.tخ@ !˧(f ֖?q)W{illvJrsLx: Έcb27nk-" >aFy~z%E@ DKK+|y @E"~;w}TƩT> 99ee7ӑ؏, //ڨ(#x @Eԩf8-SϤ)))$*vfʘ1{.,%暼@ ,wq8_9``mL:LVbRiw9ǏiCBx"p`m{UlJmz[N&+q ԩUUӦ{jkZC2r>DBBΨQjׯdN/׷\ɧ-V^^㕕y- @اšCo>\˩M m(%%d6XSpbBppFsqm(kQ[Ql0yCe:8pA*D#)7'˧0A8pԩf{>0a G0SI"45z߲`G͙3/’Ņav''Fqѣ%yx}kt:4_˵SOϝ{(//iH!7܂#9sph @NW90;XvF?}:-VjkӶN;A ?>kV9s&M!YXX5+WАy/TR[Eŕֺ"Emյ\>ZZ*{]֊ + @Ifðbiː?3sUVwy3a͚oO?][>?;/_9;Ϡ; xc ˾~iiH)5#_P՝ 1)?Zpst8즽`u'&p_!!?T?r9KK6[ ț7/-]tZ^gΝj՜-ɚ}wJ-g~JdɴÇΜF[a>G=3sgD-.bv]3Ν@i_)"ll,o_~cj?{{7N!daA!mK׎0B VOVw3f3rMgߛ7mhJd2>՝MJPD ڷ/7?MH'I! !TSӂa"Cc@A!ti^a{C.qf#ް;pVPGF?x0/8xfi}kN0|1%.>>ȈDOe2;;{"8I91?PPPws "`…KׯOj#OO/ȸ{w֭ߴZ$pg00 I411JNq-Gԝ"IZ"0pTڭ.""j8*ϝ;y#ώUPP6c}ffDp,Xb|K)qwq0ˋW9')HT1J=S,#,̏dh) ;>VtkVwUaa~nY;mac11]*#kpZG#zqÃ`H5C ؾۇT>՝Fp,Wah2o@' +(~eNQIz؃YH4RWi--"Q >, ȂOsyy q{H@I@H%_x*>PVP8˖Tb2˗{CD\P]kb>Ĕf}ʕ"o۶hSY^hGD 8}'($@N0,B3f߸碼X10p =Ȉ>Q!$)WUY  ,-ZX} 0 M/^a5ѣX,sY,5dl޼p%ΐcMZ|7S & aL&C HYd8k;]L`Z0$cϞ5dr;X 6IDNCM*$G&S GmמҢP@KvvD\͝_ lWWnuu3A$%w ވJ1a, KLLX&::Z98Xxf\D~cQ*l$SX(!!!j?z˥9)9sKP[[۶mےgΜ9z-{n}}/Ξ=+J}||UWWwixB?%t7ׯ_ T]\.믿֒/r`RRmbb⨵Z}@@@nn#G4Յrr_OooG{{{DpႧggg'BH&%$$| ɨN7otrr*,,LNNvrrP^υzsBr\mfSSS=.ヒAn)#lvVV֙3g-//Wnb>,HhooW(C  VZ`0;F5Nh*!TXXHBꢷ$ɋ/M$zڞwgVVrl-A-'OV3Ee˖[*mmm!~aUUDTԩS\VVVo.**rppXp?2Ju1^:-g?|aa[._, ԶM{AI]|l׋/${gV4zAmP?~رK+\dDRTTDSO쪫_ruuuqҥ֨+W͞Do\.G־&*RSS,XM3zֿa$I XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - o -

    XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__incl.png0000644001725400016040000222704413273140075017703 00000000000000PNG  IHDR pNNbKGD IDATxyt\w}:wFYdljcA&IB PHOCY+-OKN( )m4,! qgǶlڥ;sg뙑,Keٟsg̝;w7$ AAAAAAAAAAvWAAAAAAAAA-.AAAAAAAAA-.AAAAAAAAA-.AAAAAAAAA_@AAAAA^lG>R*zEd>я^~    tŅ     ,G_麾rfcǎ5k֠Ņ   r     vm+W\83ٺuB   r|؅^AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA~WAAAAAAÖ-[xڙg>:AAAd1     hz9w޾    AAAAAECǦivr\cc®   P؅^AAAAA)Ї!o{0 nn{0$lٲG馛ַ~??y~u뮻o}BHE7ַ|T]R/|OOw|[}˖-;wo/}K8]wݫZ{;vx7{!nᩧz{{ 7|_xRAAA-.AAAAAdo~я~400o_Ν;~~[ߺ[ww4Cu]'EEmUxo{?я_W9ԮWՑ{_3<?'o槞z*"BSO=~9>~{?m6?O>s{*j&   A AAAAAY<#wqGKKKOO?۷oQUkwKU뮻R,a[nRl߾]hSSSKK !IJ~@OOϊ+>O{U+~??oooy裏EzM."wE/~q2 S@`/J~흝֭[֝   ,v^AAAA9c ȶqzl h&b t xж-Y֌\@0:/٬QUQNϰqu%U p*w1M~!to)|ߞw &TU%<_5My:::n﮻rgժU0ghh211ҥKώ",{W<===>wY455B/z]]]fDAAA;hq!    uϛz Nk.I^X8N_=qR,2yщ֊2T*a/8Nj v8NLGQT*ͧs:`2(?8nFKSC${zˠDQ$[Nm) $96'%$IA8&uU⺗~ZNjoC{kUB۝ Y_7~+_T*|. G!455 Xy{jhh`Yv``G.Y.UW]~vw^sss{C9rh^S͜vt4ڵ((WeÐr;AAA,-.AAAAٓlIyȲ0]rҷ꼟BT蘫իₒTyTUR}$w˪/<̲u\N0 IIES:tYj秅4&ֵt]k,R`0 Yye3:+X]_r/e&Kum?Br㵪C?&qrT,d6節7mq+JEi}uUOϳTo,[=a˲Pe_% !)Ŭ$m#/&@R}w5Tƍ(w{뭷ҙ?UW]Erwybq۶mozӛ9 I"?C4`E9xmyer4Myq(r&s˲ DZLvQe2-×eA}>_QDI\sio4MI   hq!   r:;QOU󧿑ng&7r<'Ie2Y$ y̥\?U T]}gr㵷( P) c8>5yeyFQLjh4AQʲ (X!qx^,zq<ö² s8ej qҁOIvGQ62U}2 C""$TId&Iǚ 9Ma'& CHQ[*Y e0 Z Cig8e ~$ϛ$Oe(J@!q² 50NNqeH*ay2yN D.R80 q\%4+e8+[y0:џ^%ga 0 (0`GIRy@@؆"Eͪtߥ2(UŚi[*ŢgYn4,sʕ+NOCm688773\=yϯ<.\8.8aAL7کת帲qU/(J(Nd<$$qsDŽhQqN([L8xSj9by4iT2hP=:Yߏlۧ^ea *t`Xt!m ZH,O$ ʰ @1$ 01II )ɄeY!$Ie!!$0EH93Bp!qOC$M3$](uIY)SKN@K0iQ'(Ä*a=GN~y6x3 qDqaľ nZZ'nRw3)i㢭I&uC CaYԚ$^Q2uM-@J%PpEײbqr\Z,fg0dM3Y%M8r&W?66#|ӟ^`@җ߻㥑#hq|܆9,q&$FLm ǟ(y^$ |DejØGAFQQ(jI/bfL'a$8aH~$~Bǽ_Q$IqJyWՐeqʙXμ|s /Qëy`7Ha~e ,T-6=d.V\UExDUaVKrBYsݠPyPB)lx Pp`&XWJ\NfUxs9%jU+<٬**lrJSSe޽?Gٽ{?鷼-\p̯iڛ\2Yw `߬Ͽ^m͚ի6nܰK6,]p]܄9:Z1 ţG EKJdi٬Рf2eieAJ%bM èXta ,0LZXuY9IEyNQA8V$!qlƂy^q0i:QJ^'NY-qȁk(H"dJbr.55Mmma(#@?!?J)\ s]C1GGKIs 4FàJt^A`! ~ ?ep?VE%=  rƃ   ȩT(]~0?:0fL*UeAP3(]ځQ% NfwC nS`*MΙk!;`&vAtm):N8^'##Eȝ Bxx^EA'IqKhU$!_*I$)U >,r!$=PA\"5o C8e  |cuzi4{ HgGъڋM$UEWY^S x^i:q ee0!!q| mDp_ <²L&#]@$ <0O+YY &[Z 4b5MXtL-lHQY隦Y \N4 "t]ddPtȺ.әi2-9懆`ah7t=_8[oU7DZ²,AaIJe 7/ߴ{nGzO8 FFHq` ?2R:zt@~tHɲޞ[4Ѱtin҆ΆKJ*V]̰S*XpL}tA,qBn0dYE4 EQI e]F1q"~bnٶ纁m B8(I(:(˲,p\QX7EEddE5EUPYE$A CyVeH;ٞiIgGF;b`0`C0o$I}ӯ|j@T<^]8>S8hOÀ efyͪtx#  Ņ   rVse0dqX 틡\(n%tf0 ]4MyT!|wNRETP}RAU#:0M70v4ժҎK%&F:A,/$I8NN0e)O1 CيBϳ&%I< ЩqLCR(0L{{9hD$UlM .`Tؐ`S=*( н5^)I8)0 VXZ*4<;Fo&*װKk~q4bZYN4E7wE'GHpjid2ae,𴨒4&%ѣas`@wķe[[mm{l%d>H6m?|c';8aYQYq+\s嫪ܜinά[^{АyXoА{C#s3UDggh_>_N+؋Ҝ9zQ>oW]4>nAa-`B朢 ;RI!.X(K%'anoBв|xb ( N<|E8uyU5M49D!L\NQ,Eu  CTº,h9ŇP% }Z1|n9opPU6 )KfYj"A>t]ޘA 1}/@EAAfq!  6^:U$5XE*3, J7UUM7*+&p,:@(iNPŢ,J7T|ˆ]ezr>D\Tj;ѷ IWTa"|a㺓=WB`DDhceڬHKQI⡩Tz8Cr H'dTMH9WA}>2hR" Sw>& 7=iEF*E^XyNXc(!* (0 ( 8N(r(I40<]WS!RuL88ҪDy^9c5Mb2x g$ ЎDo$khaT$A`10Z,h7 C0$]. v饒iaw*0]@'ZֱT>UhOG-Ju8r9)P{ ʪYclOPw"ZZFWZَ{ڻwp߾W^9:6V"#jekִ^z餫#GƷo?}'wШ(r˖557gD+|&pմ|yK/_4/[CF_{m^޿htDEysZVl>tsdJ%Bڶ_(ض۶oYi:0]*yիapچ, °,I$ gz$ d22xР@uKăNH"|T򠐽P̰tж=Һ*Y CѴ%*P#~"("m'8 nMPpxE7 #u2ny; #5M7 #K&#i<ʲ@#|E8y& 2q@EIa84e4ȁ^iLXX qH\xvqBm#K%qʣюO^, a(O(rP8\NAh$d$L<󘪾vUIN:54%6:Q_-W0-iApha0K[Z]ǹwu{>r%^·[n Եw/j^ݶzuƍkִ^!O>O{}\NU9==; e hQk%+WXӳd~*t^{lt80k# ñbS~9-W]۶zu <"J%Xt*]m4]r- h mPp:T@ҭ eJcdܜim5FIojF>͕X!emUUTw.44hBK%/"t[m^J8AٶQm'LF$AӤLFLF$AU' Ce2!Ȳ)/8  H-hq!  ralY.UBt!j,XxRɂ- Li)*]v brH%Lb@׀*ҕ$ +UV9%AvwstaK邼R ÈqSEF ÈON(giL4 VIT# "kwS?HMTI `f+ﯘ(.<{޽{ ;xpƂ\ٲzuK=w --޽O< ڴMop5ׯ_JȑCF;thСуGz{`QiYy <\q?k?o!%fM;I[tt2HT-˛Aòm ÐlEPPҥ ˖5tv6,]pܕ*j=F% {iڄ6 0p|X42Sz܋V:O^u  'AAL&b(p쫪^Jt4@J>$IlU3rLZVp`T,Et+(<*g LB1A|?\S_oҿӟ>{MM|=$ܽ{`ϞݻMB,ׯذcÆ澾_r/pkm|ϩŒoG@:xpo<a۳==^תU˖5cf`B]Q8a1djϟ=2R/AB]{S CxEA9(fLKK&SuB=:)Ţ [(8<3H,_UU C1 &u]dLFBMYEtf|oJ`uB&*Q=4i$˂I٬iI*O&dA;$}na7A9A AAAN/+4M7 bхauy@ 2A~4M"d *IR9 p L|E-+] *dNߠ7}} zuW,w*۸G5t)-˛koo1͢DQTi:UB9b GV&lf٬br.#Ȉ ѣ`yb` _E9CCXil40P-=- FF Ir9A&!\0AnG};@:%2s f.C1 b94|)t,OS(*f2aȆ!g2 4?f**rPT@&L`@jrV"r=t-˫{;B#۪Hkc&#rjZ,@A9 A AAYPqĶWcc%(V1YRs}?|He9y9!,rN!$cc(aHFA3 y~p曦6gN7M%_0Vag5}\:\(URu襹6!X(1)<(+ i0Q).)_Z,ЯQ׿JU%7!h˥, ҡBQT2VyH&E=4PUI=i2бX@5QӚc,Pp&&씛eUݪ*fj.r064L9Ch[SАYUxѣyͪt V}8sRˮ]GLR=wr/_u-W^s?nO|nμ|%o[ޕiUW}o\dQ#/pd׮#={).mַnҕ+V4޷oh߾ݻ78>2]]MֵYӾvmu+V40lzͿb۵oh@nڴ{ /\aC3#9g?{w&t]6umԽiS\68N۽{`Ϟ={v>zhƢȯZ Fڵk׶/].^8sgΝ-Iƍ6o޼yiBPm*D'|e[ZeiR`$8R>Q+qi &@w?mUذt>ZWD)\NKpi hqߺukӾ 31AAN+BA9sm?BBH>B0,8RI'p($D) 0$U*,8NPѰ?œbѱmuHh:©nLD]Dł?X)s9.&b4]K)84 rR Mt+d |KXPxfpBqSu 4*0SiĄqY1BtVՑt vNzҡ3C: vZϢhIaَy 9Hk[=;:Z8a6ж.hE.4Mz;/+Z[S_z?7Cg>sԋS~oݻ[w߫W?ki4۶=kp;>nBVh޴ 7o^~s|AtȾ} շoIfM;9Pa۷ܵ_sE+3 iy@~`00*GG[3 ҒikG{{-ti?1]+=c`*ɻ%Q8^Ԡꑆ‘EQUc|\Ni@"])^r535A9٠Ņ  2qR,:bY^FIB#e>)KW!4$I0.<2M7I(+UX(U!TcyF$IDgY&Y(&$y#!0 c  F '$qS0dEUU0 UU%]L'`rZWzƕmXVg \7EuMӅL=EeY>I CVU:Ge>RDSUIUEаNc=ߚ2^,zl.˫n1H02rDU8ee2PH'뺄]g 3W`"lДQ'lEde?ӡY<ςt2Sfo8wa!ZT:3gHZڹwl>6 IDATqʕ-`lعaC'MYpo?oxᄡʩ;o /7ߛOǎy/*l嗯⪫xmWyug/pOSUW^}uh^t4MڴW\tъ͛ϋZ(ػwrK/R}A)~} 6tlйvmR{>{bJmy7o^~%= rhb`4Adjhڌl[[hoϥNzNs]Jϡ#|ޚIXJsPv_fAq9V W4 .]Z#2U6?r@Iw6T 2_Ņ  șT0縝U˧o,`@O9%2 CAFqL8 ȶ0|?r]߶}ߏ|?,u} k 2"=MdYYTUdEdYSE 0}q|! ۶}K%WY) 4IxE.6KwdYP!U$IP0SqNxJϪ 0șbɅ_o CSu$]CXRnd!́GE+Rٜe22,ȩaOЀפ!js^R.ض?!(4eh+2<67l{{9Ϫcǡ ٞIm:]#A';׻w\tъ|kY_U^y~mWٴnoR{ѷ>߿_Zz2at?98XreWWy_}ue+[䒞y x>^yey<ϮZնaCH]6tn:~tE+.窫vv6cA3 fUDU㮮yμyb®NS)_0)3h$I`5&&٥t"!ίZC]"*^e0t; ThT3g`A9A AASATFMUFU'~3Q9x^xeML4= LY б=Ek}F O偡@ap0ߟ?z4Y.QI+jmn6״3yJڸqi~in756Vnm˦M]'v/pMoHϷ,oݺ77_P{;|ﭽ( a?OJAA/w>{]wk=a!gn~`ǎC/qGG%\z׿y\ !"ny]s9vǎC۷ؾO@ % }}}}񾾉!PUqٲƎΆe[ZN'|8sR9P*ݜXe?.VIՆu.fftNK:ښmm5_d۳xwB镯9;AANhq! YJ]jzGP5}m{UgTUJsW$ɩ%_,:U"}w̓SǠxdey¤bU(80aY.-(4MŴd*8X&UzYf_x{n?>s󟿴vmw\|}El߹g9h~kk o8?VX1F!d` kWs>^8l(qݛ6u]pA׊Kfqy25˖5cA;A=cP|4'\c]]Mb̺q*v3E;bX?1a[ccq *a~ZRUAkjFAkhPF66j۵gAANhq! i$DQUw ?a VŢEqDFdN$Jq۶QFp 1s&P0$U!""q˄M8V%BH&#,+*(,Pq*U u8aXX$YJ%TJ% bj|ۆiϲ wIuOZbw7˟dgGGÇ?|;yI;_}۷|Lmi\r+X}E+֬iUJw#uLF^}e_KW67gfw˶qw{ Z|ese+bu]}A(L8rd~b\˗|ySUo!dbD8TCWy6ݓiTզ\>GWaspPk=yѓY͠٥Ksk.&HN1~q@AN=hq! q0M7Ib ۻq㲛o6ӡ!oM7Sҷ+^w>_u.02Rm;n,׆_vt4qǛ~;vrްo\sg-WM/?zMdٲƋ/_ܳzuc錮x^t5^{\ҳ26V6F* ^c$I|wn鮮ժj[QG1-Z`2Ir|52R-Ahql_os.Ioi46MMZSdI#y!|ކ2c3'O)a +vCCc=ݷ~wAZ\ "Xt8>2U(8=U$;ʴO2>IJoPe]AVOw?uu]g]`׵( "jNw'y9N $!\s39sΙy}L*OF"T* 7f@4ZUi?,e@S(\&`<;''Wl6CH9H5"Կˀ)d6lV*/*Y@oA`G4   c~?e,>-`cDwJ,2 >?U}1i+(A MO=Nlar.e7F 'H޹d8 x<CI4A; y4nwԀ,bhRLƇ/rHd8#ҫ9TE2Pu$:m\WR).֌i30ا| w?q,yAˊǓ%%>… 'L{-ϴK~6n+u&׫쳪!CT?. @u\rZFnwdД$'IU@@CV%y$郢 {a;ސ۬o1CtO': #UdY xRUWf nݑnzO0ujIYwUlHAL{XBsϝެF%3-+ӽ-r:dzϮ'}G0%H|Mj7onrY:xytJ'Nw۾a2ee  +* ++%75ٸ-(WVWVO^eM ]ǏyQ4Y^jZY7M>wgt:VCZ}e (Q(r@+BVrR)TD+loO?Sc}DM Tq! h@^Vx2'p8LAGw tCX2DXѶE˭- HYJhV,ȧ(tN; sD c6{,/Y,^k2yZX RVш#YlVQ?Fm|oCQe޸fƚ͛k 6KʦM+i֍;w8kW}]#77T{EC&N# >#8 Yu,xn[jڪ R- Kh|aQAN6Y3JFr&cR)< HwuS[X'? Z>M"fdg4fxB N'TK&H 6jj7%)SZ- ά[wdٲM7]y؞C|_|kӦ i77bss;;]loᄏu6H&꧟b~ヤavTz߾ƍk6l8o_I2hgkw4Usgݮ]3̰aS+*w 6l8iSh3gϙ3nhp56:Ot\>vV g3|>dh-U9B!No1TA0@/+sBvNN@ %L? ~?H#+?W"[=[W-c#oo M@!T$Vڬ1".GmDX9 a伂rRh4D£4h|LgLƓH5Gz?pUR?k\.h-埲Jy|>({ 66l6D"L& Ii4Dq~ %`0v䈩5!x=JDSbu?b_779&O.ZdzhͿK=w5TvT*]^λQ̙Z2];>l|sGq#4FK$R￿Vd^0}zivl9v<D5g=|„}=B{!$,[]'l%8мañ5kUWes玘1 o vXkkm`U[kFQGq ~C(,~;A#vn01J%r9Xr9_*ŽZt:l~6(KzTd6D$%5>L㨯٭.^k)LƃF#,Bd%x(tJ5G3"J3@$dzDDz'xZX8= IDAT,(t(fYCKT lT0EPŅ H_h2M h4Af[ݭZfIwE^ޑ0At>Lރʊ,#۠bIMhN-7L}D8XD,_B,W 1 ^oQL6EAXeK$);vAOCӴ;'L&i4Znn1Ǣ: x˲cfRд!YVX[*ӭV/5sFH?m6cEu° mi E I =zԜ%yj"j_ 8r{[bP&/ZT٫t=~ݺ Ri޴:U9k͘Q߬5u?|n+utb.թ]|Mj׮=ٳ˯bСtrVBX]qℽ51|>{PUI~yyhzFmuDCn.v΃tZM&(`jGLX,V+j8iG:XBA~>aH[^-e8H Py\RxAB(4b-A$ Tq!M(Ǔ~W>_(XBxR(D\rQ(B\W`\ آ:%żVm"cPo;f9lkȼQU$'fҥ?X'L(뮙fd2=oK,cŊ?sebɲyk8>_y?VUYt&=;;gvp>;~Wxڭ]zw7Dٳ/;FsC# c]a%;N^}^A:w+;fL;x~ZHctg2&^X,)A0]T1RW+dN8~3h\$p.VT*J%TD @ZR %-/v57F1FjtzF#6yy2Af0H  XP{G!Ta%8QF1AH@bWH"Ozx<$H< p,MH$nx2x[.PZJ2~ pb!?FlZ,^CRN'$LkAIj**|pMJ倖m\য়\l1wqIY<K leK…ٹѼtӦX;d2j+Ww/|̕W)+ӝGsL.1hu]T*ts ~=pl6_8-srr B!hKibIh+ɲFdr-.y/Zd0Hz ϗ$ϗ 2to^S3`f~lf3nܼj= AW "D( b/$V`vB$Vi|h4&) l!p|fD\6|<y&8l6c]iH$^ .x>Fc0rbD“HT݉D;7HߥquHx%reeRW-/C9\ڃ:vV7L&O99?"} CuA@,`!B Nm2yL&/l~؀at:V+TtRAR^Vm-$:Yi4U5fLB!]448~{o+fh>8zz%Sg_rmwdIZq κx~{4uGp9___}q[ik/Z`\~>2ƵkYs!ǚ>tQf l-w/ϗϟ?k*HJ9fh4]T.) ӕǭV~#`΀ꇖRuJjHTBVJH+B L^u55/~#`A cAb ,0΍1=Ym F1 6 }Tq!H@͖fbI<̙E-YޡTlpbq|9cpl6S"iY XdZar8 ߩ,Y*:i5 SkhIg:wd2p]_dEpHYȩ+E*側#H$~r@V(|BPؽEb v>p` u^I|,R(-g<߃t*X13HY,TzF Z-$‹ 76]p55] N1BN*@"2~l AGm[ߒg~#ŋ+~b,E&bJ_8|gۑ=g2x믟ؑ|w(~뽋W>T&n˗_<'͙3(,ڵGV޺8ɘ9lѳfs$3̞= +Vv{`ȼcqC|aÆovaaÆD[`q?ܬQ5^dD i^/^k2,9,\r %ǜwZ `22Z hD*s酠 AZH<p8$h0eB@L|aXȚ)'.b,0rY eqL#p\& 9,C `xl<@w,2Ff_.ҧ5eC~Qbj/ΰZ:tFŒ^o덐Bgif\[o6(EoO }h4"ׅZ}Y9 wbYixzѯVb|b5k}-[+\E>ZUrmNٌY-X0nNRO._{ժH$>mZɂC/Gc,xɤ*{HޯB$);*P,S0'#pu:I:ijr548xFxСEE!CTCt vl6t: 8%:B6T j\.T*JB!P) U\H"B`0 H  BGX8N+(P$p,.%qy<B!<"Ox-[r,"'VVβ 9 .7s '%"B.dR<0Ye<+k0%iZta#rc `8Ad+  +BR(Qu/HwCnw*tc*? r*P|J J%| Ї X |HՄ~@T־}NgN50P"a gUz7sf4#遽Z륗>CnmY7CS]{&=ʕo1zǢExe_x^߫>dL4[^v /st_7{wJW\1fcwj'h._{.5wȫ0i4A.DZC&'DXSP #EhHbAX|ffL^CRJ4N'jXBmlt;'N0[шU !CT~&Yݹx{69ATq!t:D|H(IV0" FX #` ̱n+%|P\.cD\p8<Yb18ceqLF '1"!CTx#ӟʶvnxB Fd[#F\ue6XW|7tqy5/v͚?k:ΘQcWt-6nzJ&h(sɍ{L&tO? 7L?\qxr[:ʱ6}Px߶״|+|K.)I\RXMv~n;4ujɵ^4gpCE^o!#ĠN%).UZ6L?|aԨru^2X6)X|&^tzR)˓RBb1rrh@LZ+ j@WZŏ;$xш V+qFAS 0G}#^o*ھzu5Ǿ7[(#qe#tP}B:k H_zs϶,r;,@zL26B蠱U[N$J%R*B!j¬C$ VV%%@bu*I>RooU@'ROaIfQ ,)"B&aVsm4zF1= R ^/5z` 2^*؟I'NAU]|)3B%ʶP̙KL,:'bܹ/젲㏷?GUYnr_p܏?So -zf|d}Al٦͛kuSUW{{o+}ʔ9rdލ7NZ`z"hUUSa}H$6fdmXľK,rd2 C(FÇJJteeڲ2]iN5{[,^3pȖ"jXh4HlG4CA~!Y,o3myh·B@ \A;?Ngdm,5Аho}ly~-H&H~<tBU&h4#\ \#ٛŒ^or^2VCjU=Kf"H9 v; 8A\T"(B!T( ]t8*p8Z1dr\ r9RRr/SVsf6=xF1t^j0@Y'zDb!bLO<%:td˶Fg1Ԧ}mٲdꪫz2{yk4Hz;D~7=ĕڵo (*Rw.cn #VV/]py{.3gDO%U-۴gOða%K^y~f2[O|~8(peB IDAT⦛. }8|@suuh4㱆7?v젱c t:IO&uonvf7445ȝKnn.EO$RT:77Gi'L(4i CU9'm}d(.D> P\Av[&_sbI\%h*yy/2D TYO \VV I% LocZ[4(8aNIR`E헪bGc6S_#8 Ȗ$΂Jʹ,to6Nl9j\.PZT=įZOJ|§+r$ PfMR "BpℐDf D"šC77$7_xqT6m7^~$#y_/Z4o?}>𶎿$L)Syξr.ŋ>xK.h?c,K{U{e現@ؿ7>Ot|yl3=Sx9sF`8$ZM5X[kMjh̘c Ǝ-92Lf75xℭI;'&rziIfܸA'2D.d2GUxXu8DPNwVLV !HoU\=O0WVUV%y{]^+)k0Ngn=l٦kneo;?y|3oeuU[o_۶. Қ?ߵmÝzoozy\" J<Ώ~:eJ$;fy׮=rļaݻjjf7JtJPYX4姰P f/xwl>oxq8D q4 Td(B"U\]ȪUqZcR_Az A!mmWhI$ d5l~._~N"iU`wrFbjY>g@HtZ|>*ZDh"h\.g 9j TB,"j.!66ցj-dɶhdze[EEj8[嗏Ι%%>§>)S:K.ԩOsNҝD"q3h \.Wz_hPlL& 2H C2@*ad $~K<%XzkjV2#b1R^2YF9^oY6lf2yl6mLR) tqIjoi3#}H@fjFrrr B! P(*P*hZ\`Pt#PaSmZ]ݼS" 9Zmᄏ㏷khɒ~|=ny# -q?LZ҅ EE}ŗ^:S/ܶWn_ЬH3ɷ'M҃G&.~$?ME<8wrrrkES!d26,[qÆ%S"DfUUݰ{wCD"ш+* Ǐ/(6L3T*}}׮͛kl9xx!}?9 drQTZbt/d#?wXZ9OɤSRxH2g C! Rh: Ah0H^D 7=6JW3tHxXR)j[4[r9 #=馅W;BkB_:]8aMe.Z4eѢJ,D D"u~׮[!5nܠŠṟcOl~r:+(rL)䒲L䪩Z]ǎYFc)JJ4buIHݿyH$HAR+MM.p2=d * 3 T\O&ZR[K 0@n+=%F! .W$+h4b.4HtAzLċNg\A+d:`0FZJbdq?JX|$Q04QEQ)HCD* s:r˭T Ag^/h`_H_':\&Zx"0YhS&?F9j8/O#˓ 2^B#dɶN[RAVHڿxԊ{_}ѣd?ʺի킯R_w_piAoag_䓝w?6z'DjѢk?u6||X}Ə/ál'\{g(}ɫ ]ޕzS%]~t A1͛kv8i4z8'{J&mv|c[Dee3Jg*0 Gq[]I㶓'sdCJJmq{$HA?X|f :=WRVшaA 2JS]@l6}Y_lnvLfrX ^Kz 5dzDti!Hw^Ts 7s`>_Ekr#mdA"ii)讉фR.ra"#W.dRT !PD"nE~H4 &hnvvNHE1HMraK%@BfF7}vZʉX=?"1" ,o-8{UҷGd[b1XMd[%%>ʊ{/kܸ^w:sfB/bξ6H &w|˚W_648'O~}ڴ9"B4X?vU*=}84=p_u3{,'~'wyw_z.p8';xc?w,/u"H?ޱsg'w8f2FO8xҤXbɪMj7onJ3g͟?zҬOxk2AÓl%&Vt:^/j%:`jZmH_'R2l>#pZE,|ރ!"-"2<)Yayy2lF=vlq[&QE-MA}勜̬Y{Q η';܅ +cN'K/}`}]nr|¥;w>'1ƥK.v 䯾zc9w@pҫt:nݑ_\See;4TAOQs'L&})S&O.7n.WNZUb1ˆ7&O.:S8LLZkmJ2ЙLzaDŚ|^E2|&h@Y,5"<u:I^LD.ogT\~_0#G.WFX V//.֔hd'+A:K:q:.Wb37#t]`<$K|q HvSE7xuP-岴fbATY1 Gj-{dgj7Z- #POv,܆r@OC*Z- jY>2vZ5SVz)əŏYW){-Xj;rc,ȶFWzލyklРA VUUۛW74馛&@E=|vuҵz˖?s9~:ro;L}w3|wS(YTQ1xٲEdx@mG"uOF57]om_s4d2?|8cF=\B$Oto?ysmUU}m.NZC[ : /T F rHqBw:v{\!XnM<11R(*P&(BJ( rJբ_7ihpD ܙvfinv^VzF#w4<|5k_y ,bk(BVՊ~@_Hniwc2yv?`sssJN'VD:],|tEz!%ժF Z›**(ܞA>_$AU[khT!D 9駿'E]&~.^gOȑyZyU_뮏yge 3LEœ\Sq}s0_ի5*5<&,>c@Νv43x;7ԩ"v3μƆkoqK~{-[OPxsLkA:As{[ز'GZ^|￯ᆉn,4ol̪yr YC˞暊as_\ar$dzȐW]5 /1٩SK+n=oyF'ӕ+Ӈѣ[o}'M- }nzܶĤIC9_<[v F͵7nz傋/ZYY|55(:O5B5ҧǓЇ@.؆td)b RDܞ=~id2m2yZ./ rʶor8e[J/h8ҽR{䫯pr`'ro_Ŋ{s:3s?kO^kw8߼uCE64I$R_r*{!<؊{K.t: ?{ャ{c(wo?YYYWq2b۶ظfƚ'<kҤ!ӦNԥ IDAT^:tWZ=p{rd2ƽ{oDb1oܸqM0hDmm6s~݅GH3*~8|6dŠٳ˱xHMQb@xV-Oh0=`G Lh>lz5Ws`0荍ijhО !yG5u!tP`.(pq* Vl(*XP.kADĆj ˆ$D;}3wfܹsokDDRXXJlR   ]# b܎dO_C_h4FC_/+.]5"C^ "AݶRS(X33Aݶ 3RSS@׬`#%9vl0q wM[?ϞDՎE07!:z]2wy{O^QxI ƒ&\`x``uDw-,ܼ~樟8Wo1rb?.>v醆"1iILzKRRNSSرf'Z\Iqmm;s ˫yݻ4#+elmcC>|aFff0Lջ x ߄ 9{6q<{)p gtv++dt\WR]MfwPTRU45xUMM%mmemmMMeQ9C }vjEESMMKEEcu5yJx*OMM%܇|PqϞ}Qmbk_]\SCfjh6:IHT#TI$u>[,TU:9 a4O99N:@k^` UAMKKYC R]M.,-*+(-*C-q3.+E$q20Ѐ m+%zA4.KZ[;=<߿/b LMu?*6EEu..GP( ѡr^7R\jPfi疶20333++|ҹRL&/gAN10p#xB3+*QW+x:iX--eږmyyY##M##-v-]]|NmmH|Xݶ>|(jll8n[z/|"#3N\Rϱ籆MWV$M (^m۟?)((L6|dA98$d;z!!n">>Q{}tmnfeu$$lSnCS \ϫVEY3~"Ng޸G흞Vrg "B( _>yVKKƤI֓'[i _~񹞛[ aNzFFǏWWedֺCH81H:YYڅf@ͭ @P54D25jb[\\/Lyѣy|EFmPHFc\68XIjf ،FDd%Ag訰#⤥,˫x񥧧S/d>,./*ejʠ+"J"|śobbCkq8WAjJIӧ͜iǫ}JJDCg `nVXTqq( (OǏel-ڞ'&8jȋV '-1bRYk{vvUNNuaamKK`rofcnCCe[>\v8oj`0srP 8ܶll:|";p31m F+_;v@|Zċf{GȜMC\fx ]|@IanT$@鐵nDJIRSKf>cnjkKZp^ʆ v%۩.$?"u)?6@߾ӧ_L4q% =B3rؓSmBC5ziiÇE?}XKUQw!Cta E[/*hb2Xoj71VV(ًqq0M~_#G80pADܻf =gL&l**/.c%(+khh'H"H$ZOO)%ŸÇݺ@& 9E}=uRwї/4MؤIVj Sɧot:fkk+|o~޽/?[39 ;Ng` &Yˎ4OWt:?007|dgg[Yٝro DUUg^\--55 [րFFZFFKB U"*h4ƅ I?RRn f^^ 곕Qsy[UFkdecC"N-^}ܹBpii͛]Fy9ԩ 3h.9sh4ׯ_ǫ߮阙阙; kiI$vtkjrs=IjKKX[h2Rqq=q~~/ɋw]=`fgW_PPP ,`2 drdeU Ґ`7 k j jPl-- 4 1WWUa!imxѣi.<6U[yy5h8z,~wիoԢ_HIaJVәwn[v66$[[} /_*vq㤩S Ç&Y0w *#--m>>%G|eTQ_~qرȑDbz\ի+A ֵe/_*㿜=Fc`uP?0++%QKKk%L&d" ߟ\M#݋پO\n{Kb޼bYA0^\993kЗa h)S2C>t*h̼i4FEE{v*`˄8b<""fd8|@*+>~,(9rDž@D+eeE".]: ґ^cǏ>650_TT4'/.n`0wd4IZNnk`af w9 gN*drǿQ궶+~x 47#B ")((ii)VX&IM-]ܶ23::hn[vvm47\yaPC__{khh0,CXHIatuqDg7Q(0PFbbOk%YJ sRg~~g.8aU"nXgooKDFIJٳ瞣A1~~.0#<) ssNMHz(#G[Z]\MnmP|yI1ǫJP4є)П--_VTggW_xBRG ǫh阛khHPlD HIaP3IVh jgɩɩ(teqq=@UU ocgncf<$//zqS6m<\Gb@oU9{&X>sy|5ד8b-igF@[8Z&&FFZjihB{kv4O<[UՌF }h; ]r%;;5K<߶3g΄!Pmm\B$))g׮U kذ0+Vaa갥4H ]nhp E sꚚbbmlmlmbmlC$EGG<әt:Ε17Fc(*ֵ! L31'2/n bŅ'O6Ěfǿ`Azhž5ms-E(Dx>~,=^[(!ŋGJZ@1/?VrގC1\y}c lϣ?̷o=QfEE-G0H$=tݺJGXز1cL$-wh4ƿqksrPܭNobBԠcQ_O˗ʯ_+|ɩKKKhs !-- _l WYYqSSիkDztŸ>` Wh"Дɨk"~! Աof^p,V`JKKЕ+[@Hߕ]ЋK?*'))߽+⿅"++ 27ׁd!/II9{ʪȂd ق)>o~Ӧ 6v`w #q >R>sF6o.+k^Ə4URADBPP˯KZǏ7fmm NQ[]?;!If#B nXTTlj1@tFw޽W+iq)/:?&':?}:SQcyt꺺899IK :YXXkgĤ&-UU۽{CyҋP sٲpuuC.HP:y4t?|N3pb1EE߼tiΝ3.5vt'Р׭Dž `0oZ_Ppu-XFp̞=;==rԩS1L^^^ڜ]0CCC}oF"Z[[Y^zǢSi!WjUKYdd6LB ] HO/7…a99US1Lh¯_?zs;57ׁ.\@AAEar ,F\{SSw%rjYAƺu𻢵VYYyذat:]>ϓ'}oQpUT4%'̝k/!ʨ3\Q![L%q[ޔ l2\gӦt:ϛDPPtiKbMEE~YϟoUfcƫ-=(l΄nnC̞ȑAv}@A4 ,ciwݰ!]!ƍ3_|oݻPLGG OϜIpw?;v쁁paƍWp܋شj~ ii)SS̙?dey錆6/..GSSK)!D{_&ٰ!ӧO{C0wtо}۶m5jԒ%KVJTWWP(Ɋ`*ڿ0?T@hAA~~.lĉBv׷55||_L&_7%ID^W,VU[{ztͥR{شYz0eANX`72|p<2pO>ڵ+..ӧXwm^^ƍW/cD{)[CzzL&co1cL.]zs5de]4s;w> `:q}?x=Y W͜y<00f߾bHյqqw=v__~^c`ncn3Çشϟan3gܹ$NBYҒoWN;{ !#EҌo@12\QXQќ^Z^FE*ZZJ::*ZZx ,T*599+Ϟh>Adf͜{hR!bÇ0`ML̺uknOeees]h|wTW4WTQ*+i4&X)&:uꢖx򪯯ދLGG" ҏioX^ZZJ)-md0Y{8%+//ݢ& *Ǐ1O?1wر+WXKMM2H8ijjP(600,> ?7VTPh RR 0ORVV#׈A;w\B` meefy))SW 1D^Wmuummtf -<{g1Kz0eANX=؍hiiǣ>[fffSL4hPDDĪUYl47-[vTС"3gʊNN1 ~4z ͛ST42`Qvut4P8D{۶AA1&XKZ`eE|/]\?|Ȑ~򨫢"gmkmʦrUUs]%+>USQq)~p m55Dtall,' `JII `h`8PK_gh1n #.):;;h4@zd"=_"AL&CCXq~}D7१@z؄ U``@~4JK= }ng@"7o&o)~Du>Hlhh@ڵk `JJJ#GDC8p-]`{Mk<VRZZZT*A-,,4558peCCC>77Kz/.A23 j`G^\MM#Gr }tE I$ Ɓ ŋYЬ|tvv~d<11e7oM9wv\\ 4Jmhh mlld2--- },A޾}+--?~d2hv-o߾AHgggV9Jb>Ν;&&&&$$ !yѝLutt OӦM;x{uc({\v tČ bSZ>@/. {ļZF9HpËLvˋ͛7kr>HwG";:he2Ç52llv;(LϞ}%%+DF~:O҂puԨ WyHto2Hff@ TU5'Μy@[Z i  |W1{DH{;)+299ɓO7nruxxbhC;3gwt%'geUUU5A~Cϼ \4L&~}$ baW.jjjk֬ٷo_\\ZRPP`ggǪ`ccÿYYٜիWS(~ -P(4 iXTTD X?UUU eee 6%$${2dۧN1VTTNd=h ^b#hllTWWgjժߺukj46Ĥ &w %vvu?cعs޹sӧ} c꘻}-Z \OI)-@ Dpj+H)nttt&MOZZ=ͱ&;|Xs}ժq  m6̙c/nV& ȑed9">DTst̿ ܸqյ3""# 555LLLMMMUUUJd2o޼IR_ZSS3X #::ѣWFK`)%% 9988|2..Y c؂+++@~~.g% A¦OxgluL@Cstu 4t񾒈B @ Z ABNDv0a,!!!6mB"B5Xq~h]f;w>XZSxaeE6[Nۻ#Ԓ8.ttsﯿZ0vŀ@ ,,-svr}ӭ[V$j|%Q޹Y'^]K$IZ~mm]P׮ƶJCCk~~ m v/NQKKY[[WTAU#Tuuq}AY4 }{!C DէC-]7PRR|rAj :g`` 9x $** Í4@NNq8ٳY +zxxLV???[[[eeaÆՄQ͵ 'L?›"5uT!uWsxRH&b OOׯ?}466b ??WUU=zh۶m;RhJϚ5k} n̝;w...NV` 3y۷od**##>VRRRMMҿ,Y$77|^߿ʕ+[nHKK۷o_xx8Λ7oڵÇf,\pƍ>}www3k*//OLL3gNaa౟cǎ?3%1At+]K"6aoDjmme/++{Ua~۶mZ~-ņJя<--MpW,9Hȉnw]SSѣܻw1BWWwݺu"7P:-;)-qT]APvˁfII9.Hc)~ǎے<^wS٢q-f6'JӤg`07aϟoN&pATwyР{nV?7n0> Q]iV@onnZ^QQ!@%8׫ӏJ~ 2ἀOd_-s :ngʫ[ yA)((X[[q/D{UZ?~I$zF,BB0!DN23OD"HN'<$iA8a03f>}1C4nDKkk1. xO|2dͮ7IV|aa#99_Ҳ@DM 9=Ìsf3& /z{y];~<.&&ӧNIKoimmMHHhiiIoؠm[ ˄ >~XSShkka;Nʽgz|Eŵne]55zq&]>}:jh`5vYfZl͡OL&sܸq*P(5E5bπ^\ c^xqԩߪ\ ؁'W[^dHرcǒ%K,f/.A:_^\,~[իW䊊yꕴtff08/~$Tr^*RɿUp^5 8vmhCQ/v9sYDD)d'L&s`SE"XҨQA4I ɗ//_~%iA^9,,A҂ wtuo*-'O>><@W{114CB@tvV00:gR酅 _/\xs%KΌD"]{,9{ǬJx zq%x\{eYRSS{-gbb>nk׮UWWU䅘D11N-R7mll\~̬d L&ٳܹښcbtttHIIUUU?[@K@߫{bbFC$22ښd'|m-gW^xTS>{B~co.**J__ p}"ԵѣGُ8H3f۷ot999o߾511ٻw/B'X\PQ,4bSSB]]K-ݝ322 b]cqq<)xq8{n bC̱-[<  $|uo^}bW9G,>Rq \AUȷ%p>'2Ho#X\O|9vq q c-dr{ CUV&lRȨdCC߶6sRPahk1"pڋ; QA--A3gEEup!/6CC_/kG!8o YY11=oxW\ o߀`Z5 eǺ pvv>|0^Fyy:]xm8%cNdT\ȑZI$ k/QҥKuׯ `$&&{khh‚-.. HIIAɾ ##d2[ZZ X}VZZ,Cr V /{%׹txAMvAt?syFSS)##7ٵ***{AEm߾Ws33GCNa0x2GGGp-Dx#~/.*QtvvfST,';wC HHH` } 1{q[|x={]^u \M f/.9Hu.P *TrNj8noټ9@dҤ>>;Jii#oHNH* GGmHZ.<}@z1% IDAT IeeN_hI >}*sr:dbŗ37kP(/81@rs;gxЇDwDKI (+k{ΝL9C x oݺ/ 9!% \I-Kt:۷ bW^e#UTTJJJXu:p5q KgT~u℻a1jjjk֬uВ;;;V=丸_x-P(4 iXTTD 0 qvv.,,D˕222[蘔$%%1VTTN`0 tttPmlCC&ƼbΝ{ΝOtttЏPIKKCXXXt;"\AAa֬Ynjmm]|9楥qԏRJ? ojj ^@wssy&  KMLLX]P!xR@ D[xtih"S7P+ *y*9W%pSTTlY&(ii%?/Y2`ǫ`0_I:Ho>ݔ>wvr8r SҲpAGG!k޾|#iYZѣ^^λw]LEE%@ (*[󔗗8pܹ4I֟ټeǎ;wގH,]]C>z䓕u#[Zx0z1cYA 6(Zػв1bĮ]222vرeaÆ~iժUȿ_su ee bGƜ{qQjոaÌz܉̿ >}-|葋 Ʒov+m{{;ɼyfCCʕ+]]]b0Gee񉎎F)))''? Aӧ;ݻ7nppp@PB֐_G[/uVLL=Kѻ6744sMzSu PTx/_͞=UXlAA3??_WW3tU!xR*++6,88NwaãV!qhkai? /-::^\v{>T~u.PPɻ"]ۉ@ Du5y0I̙eB}{̟kޚh,ddjj UUzqw!%iAwד%-wO:umm} Nml0!$2%@ >|K>3dy*i-;9 Б ((Ȏc5ʕ5?}{6第v.^|?$-lP\+p&w+e A%Kdff51̔)S㊔TDDīWXo:bF1){EKE cҤI :::111kkk߻wÇflll`0>lmmE]RRR.]Z^^фlƍ/**JOO1bĆ .''w֭?SNN},[]]͚98ae˖Խ{2DFF5ׯ+++ʞ?>k,ktmmm<Einn677wtt|aNNΝ;wnj!7۝8Ԕ=]Ǐg?D{g XM0!77ݻwwZGŜQ*|DQQqԨQ_dܹs G!1{qAg_ѡ?8uGyCC?A CUx)<)ҏ;ݓBsX10q E$?Դ>8-[%%ZDez|sҫ҆9=h ttt\paՒ@ MMMUUUvvvvvv pȑK.O]ǎ+,,C||gv͵ŋo߾  SLĉ!!!999;wDCvÇϟ߱cG}}=Zx>|| !j@ "$pU} ȶm<r Ǣez{ vUjjZDĉV/^dh U,- sAMMMrrr0`={M_{\H00>11 n;7o Gtw}-||lW+ئ&L reZRRH2i o"#GUW7ݹ@Fn<ɓ e>vvօ:NٱO?ILzX3c?mym_ߝ{>>}%%%fffmp,;~x77.Z7yxx9AHSo;99^UU4xq00`z7x+0+A>9ɓ*G9{NV@_m67seҔ>1h'4+VV'?2<JQ޿O][Xgnsre>ؓ'g}s̕H$b80/ y|hX-[);-c+V\zUsPe赸[Nݰ!ʕW~<̈́ ׬ 7Vvh=%[亘ӹ ʕq8 @Oa֬YvjC 8p 44ZJ3gΌ3QI?uv3Sv,bXϗ/7cnj9z;Tu+,6lޡeSG@?e(ŋ/V*;@/EDJO]1|unTT4(;.@ftNu3KK)T۷=}ݻ Xt:JVWW}vĉd2y&Me zԩ`{e"""߿OR>}}v.\`0Pk֬)--MKKۺuٳ"@at 0+ܼcq3g+GHr XbzlEWAɓIkD"B9ф y.K˗ 2xW0{J+Џ_qcfbϷo7:4㼁cyd(; 8qb̙JJhQWGOFx:))}۷ߕ .\:"wflj5cƌ/^hhh̓ 2333gvFFFk厘oo@OO|Guu)SֆW\qFGG]v\x1N5kֈ#Fe˖oP`̊{qq7ieˆ+Grjk?ٞl*&&ի2 P"zKiisv_T)dx3 CG$z҂-@eU@pդΊKF\\rdulc6cfnwϊwgBZ4pEP|bP˗_)*}:R2gfnBZeU~zܛx+WݼzӃ{ÅBBFDzx\WW3e:6*j…C{x!Cbb&99WDO{q/Xp֭@ PX 'FF?C6mNHYY Φ^XNZӧO'+Lz`>( "Q_"霏%S_ep"pt:%"h4," %QW`0bmmihL3o<{{7_2'ʊijڝ4o%ttlR}!XdB!  )!qFK45Xkj 11#R@?$$dH.[tiG^iVVVg2oY*ZZ84q8 JJc[Zb10JCCY,b} I~ߩCeD"dN^s3 +@~;*>l:А'Wc#L H??Z@0qsk+*UK$BZZ~?Isf~!ϱc[aD"$ %p86_]]O7YWwoX\.SԸ\4JihgIᨳXjl:JhgwJ%#5t DJ]hSXOOzG􈍍l5 P|E8<&`V s͛7n ].D];V`hYUT h۟>ʪM\qq1 r*4W*T۲eap:DXW~rmy3%%%SG1'^?tI(b'dzI -'2'LhLkŘ뻹okoobfbh E8yɦ&Çkm<9F*Bd) !?Hr h-`aaccdmmlhB;** ^l>TW\LͭͭϯH$BKKBX-bF{xXzxX55Ք%g&>w8vllŊh4yeYP( ܪ4r~~D"qV<Η]|Xw F<᧗/HOrORӷwdŋMnK$$ {yYݷ߅SD@$RDjeeD"USC9;:;:;,5h4|SHM%gds55qvrwOEDO,a\Ǝ=ڣ ;V~}#;2Vy||[;WOS[ 8\55|wq1UVl*ˆ IDAT8]W|ܲ%>2rԚ5rkP( C=sfرJϞ׬ ^ @V q!&fț$ig9}){c<IH$;ww~ K׭ Y @>oϙs~0 n&&-]Sd(55#:JT\{}:T$\),kp}nmx8l6gd76*S$M T"J4׳!0FZ VnnhmVFۛw;Do'$d?y"fq㼻לFc,Ztzۍ*H$ҒZV%3I!"yyY^^֊˫\tml=fQQ-.о֭_a 8 dܿѽ{Yd @f*;v>bzleU23)aa._^Wٱt+W^Ŝ;38^egRܸqgNX?"R{ _=﫸΅ ֮U5@|W׭>aa^{wk53?z?ї.-pvPq.W[UIIO/jv&S'2؈}r؋;',Z4T 0`wTԸ(VƏ?ikDY5J0DRY 7qq[ħnqʎK)ǏTdv,\xŋgS[ۼlٕI3gr7@ϣf۶K߸1TŝU;x@(,YP(paU\nED&jc܂P(>ܼy)~2 ON׳򬬊ϟkɿ_M 57׳5vs3𰴵5VS"7~Sdmyȳg'.\XлJ lUVVWPP]S˹HT*oA>f}Z T\H$)+󹹕|Fhc0jLfKS Xl .w&ew3, SZTWMGBb2yZZnnBh@Ƕ"InL9xP(^2pa]c6p` w?s'=99J y.a X,ؾfM%d&@"?]s ڸ1Tٱ|P(4hOhhݻe59Ԡs)e[B7$ǎ=?zI>OT*O9xpڐ!Nʎ'!H.F~p47sWcѣ3&Lp}w="wvh4tصk|dD"i&23)dr}m-DH]]y6}j 1yofM<ɩ1㬷ŋ { BqEE\OԓD"JmO J$E"zz33}{{meX T\!P(#TVb F ǡ(G rwrM+5kb#3] siid .6jccgKm_Z4)}n4¦MHO'wy9"/"[q`mJj*972;B(U,uhJaŒ&2N"H$:DnHɖy'[ !VkRtl9iLC$K|ԫ 1 ˀSTrj* >kk `lc#$x"| PjON=vrRs3@ص~}R*9e͚f.a˗_ilr 7>zczz z=g;m-R\\Udy`͚8ccvqq)Ph4֭OϚ5NGWO0y)~Y!KbbΟc;er(器j޹ o⒣C;_+feQ&M]ݲM&VUHu55͍sP--M%CH5%/j.-TJ4Bi(/'酅5$Rpm߆D"F}uM |}NFyyqS99e8Ls3wٲ+))eS, *.dRS))VE!NC8wj 56?|(IK+'i4)w۶`?Ry J(@<,Zt)-|₀g>|CJJU)۷ɩ ۼ};mƿ (: v<9{8oe%MMwL5kc*$}ǎ͚8Zh4/[v&6vjNBB֭wh}ᡡNJe}ڵ%]Ȋ qo޼!11^>INqog6g)a+={| #yLa*/hʪ˫,)474lP(n} 00ga]2Fc67o.޵8;^X) 6_Qgj$R]m-Dh4RGGLr@oShl6[[hjpDJ CCV]ݔJVb DGgPXW5|~To_V\L-*Pb: bjlڧw-cƌy?mb<^ F U$ rjPb}E14f& 5_rX,Ҳsvf&%+"3Ma2[ѶFZZ--F6{xX*d噡ʔVZ^^}ٳU+%+&BgʡPHK mmѣ==lFcZaa\\LRRHlh`ojge+_je!`KZx[\L-.e2[ RWGVE1tv6[P(&%tςa@`/[nJ+)!_H$?_`/.r;@%ZZYY?&%(", 9 u˲+yHq%GQzz[MMh>e2ߴ)kr8i"Q:#֭44s8RHw9s~h~}"ck B ^tڵ!ʊÇ=xf~|?Y̛wA ݸLفêU?}bW_Ƞ}& D"ɁO~=yρS\,(vT{2N $7rۺuc<|r)Sbc*}ho$߮3`v@wHnn[7oσe,+8s v8|x6lJQQ-\_UbKiH$Q4qffz..}-퍁* pOx5(,6팣իKt46r볳+[=x_D$R?S pp0qt4qr;889Z]v^ݻ&&4 TڷﶈEmmeWrr*#"B-IX%'`uwnq7##mKKMM5:E&[MV`;//k,!'R\]NM"9+\#,'R p|_?{6ԩ׆ڑ}e2lx|T9z+23wt_Op3g^Sةffz]nJW?}*MWS%nPVV&vvpyĎ[Cl+7hcj쌗զ܄4֘1~~vrzUrUgg 曘t)9< =;۷UH$êB+EsiiikN )bfnLMK#[XOF9\ ?mzӧm ]"f:ی#67s}~'ej[](߸TDǏ<}UjvUsb/wɶ1ck;Uӧy]JNWv,_J0#Ζ7Æ폍:mAٱt'O֭ammp|k޿ <q_ښN+ ΝիΝE ^8Сi@PAzx>lU4$ L~;6S-;xQw?T*%YYEEJCMMbZZZD;\!B.XRڰO3gg<kbE*.^|99ѣu4/))Mzڵ%ywlJI!UUU5,6ָ BhXZ88knaongaPdj!CA'{uNg%'5HD߾~~vСNX-VZZWY(Kh!j}5x0Εczy/W*[(cʯDzbRLLűc3LWcTU6ziW@1ii䌌*Pup0b5`45<<|}m}}mfzR_^ƛ7.)2r\ŔTWT mu9et: ]=g0eB}={ݺo׬ ^6Dv,6ݾ{7õ]܎ȄW -4ma)ʎo""nT?~NOA^IIĨ ]68NPssDjEE#ƠX |q>zNNxGG \_`gۿ\"Bbu45Ogp:*]\#$%MFشi y3eӦii}J$RoŋKPni>ĀZX-ķyyUJN.jBFZH$Q($R͇ HM engmmC&qVj*઩a`׷\Lf9cFhhq㼆u݇]iަMW0\ Bi()֐H FX14axq~V^^֚jeeu?2>=..L;;N;cr!JH^Jb&''{oiŤc=cctPPĹx1IҹsKr^}}@s~VѣϝKLIRugAU:+b̘/_FuW P$11 wfF`ҥ*rKUU{1_ٱt>_y[Vܲe*/Ѻ3@;qbvGUpBqxF~\'@Ex,ѢKօ_?Rٱ$iыf]j|Y8oޅ+^:زebBqc#ֲH:VS֩FCCMWWYX8:XYꚘLMqFF:* =YH$zx)cc7=X[\L+)Q( -- B!b | d IDATCzzXss}8xݳAA{L2U˲bO>UtW!* q)I1D," RNOԅwq1utķZZϟ߹g4w?C:{<|Ht'IΝK}mo3TX-f?{SUWǔJ13hjP]8 } Yj~P]Q4rj*9#ru5.=ͭܵǏ}w Xhgg:5k*+YAYʈ`A@OI r튊xXQPRB#p{x?\͜@>kl ̰{<=<,S0W(~]tNMښ .VV6;7O@.o2Z^Ni3?]HOsoo>}̿%99IIH$b#܂/߼I.1nל9SweԨ#cx`Æ`p/\HpT*YpҥÕu»;͟cxJ1-.a$cӦ)*#[e ,^hU#d,@ސH}ׯ/>c&kgXźu7߾SfڵOzg>'NRoEYrs+W=rdzHQujjCC|P.W~ܼ93gxu87UWrr٤I'߽訊oݤ-.n8G<|ݓ]FcVW7UU5~L-+l>mqgcdcax]Xׂi+}5kWOp| ݻ'*1)SNp7o.W^6.*|:P( <>󅭧inoee`nYZ뙚v\y#JwzF#n;e>^hnw,[*;̤|Q6<ة &--J16D$aee`h**BC,a6팙oɾ7(*YzeecTԸٳUqEjII!}T\W%I<<4TFQQMc#"H++ aÜ ;Uަ`+~Zs3СiNWX,)-.iid* n==UJrGm>zy\\Ut;:oor~֪UcdE'O<~e6GLkUA"ZU Jz:9#}[drr*a :B!myxX)=.7{28>>aa^&($%x%ccܥK eYZs**JJhJ}]S* HDvb pN{{c++n&IIĤ$gt: W>+۷+3xSxoXJ/ J7㬯gop31hڐ5k;b\ܹ7t  #I~N\\Ν,PL᧿.%eL22ŽedDɶun%$my3~qÎ+ɒ%8oTv ߢn/.5RTҥb/.]p۶}Vڲe÷nC3q Ç3llpe9t/kc*]|YP®3׮ Q@_yyU۶Q>i㍌dY|GWU5VV6VW7WT4+*kk W"BD"P(!$ɮ`]^8<^B_5+ձF>`rRGXU4e)--Z.J: rqdX,9{616ñc3{<)̖ Xb[߯jp8gOzmh9J‹_Rʿ2~N;vl),Y6~}2zX*mlq `L[[c4znf%pHBZϊ<Ⱥs'4,3sRAWcM;#Bn-Wv pvnnfNh_ĉh4j-&ots3wK99g rk_l0`ҥAjb88xǹK\ّ?88//F7*==Zşlwo4c?jp@};-2gQAjr}]dPeJ˖]IN.{t7]]*N;vLPp@deP|Bt'J>ٵղjUВ%{h B0Ƥјd2UWlxH(D( i`maglcfkbq&&8##VR|QxzGTD'Q]4ei55ԭ[+xu]?" 44@QRT 1<:%S@TL_mjbE!Nz*n$KBB[Z"eǢZ] <ܼCosvZzz93s4*0F xWWsUT4>rdmј m8HKKC;;##LÇ7o[ZH$~PzyYoacF653s_+G"lq#eŊ-[ T\uuꦪƪƊz6[AbՑH'APx<ٴ?Bee۷/^{W,-{CH;w2$IH qR;iAAuH7Tbŕiu.9}:?h]2}9m+)͛wA ]\]tGRjjJU%Pyt̯\o_ >}l[ȕ:ώ rVRc#,XŧOe'LHXcXdH$9pӯ,kW/Xti!pRtɒ?SSI/^D=:@cRwou]&Wq׳==#Tb@:?23w(SOp'_YZ1^EvPHh4/lv  F#%)/ĭhx Җ1ժUן?`JwkjOP%4VҮb*Tuu:jT*#% y<١6551Z[u21BZ"54q+W ,l_ծ[@ z8>>< 7<\d_`qq-6!p*&Ü˯Sb0<`G/&s< %D|XTTAP>f!F., o_ rwh\A~~UZ;bZEhle thQ˷IHȎef{IP]-4372725^ 5\] {QDWVV7maӦ P11 wdFuq؋KviRTTn "ae~f1P\S[Bi l>Ajj(ssml Me^pM(H42lWZJH&&8]]LK_=<"| >>=1U q tUV1Fŗ%:=TV,ۂ P :A27׃:emm{WeW4\ohc=}}smmg\Bi={ ;;RryoX\zAtSڡxJyy}9Hڅlijme5555p}tt45ՐHH$V+/MrXbfۅ}'O:pK UPTZWǚ:H$_〯EBHTW77G]`Ah4rW^^dѰd^ɼtYϼ7o68g+RSI2XgG B2+lG0lɾ͑*.Զux\[ggSGGf}EAb&Ev.o_S$<85$D[%i^^ջwIIT@ rq1 p1bxxhi:9u>"CC03 aϵ#F<{v ʊ6meiip^R^^{2̷n;|xDu»;ut8ʕ))Q&pNN^], WW|ܹ~~<ϥKI=ݭR'۷3fac ˗_ILԅˣ[h%q^W qPq 72,lX?:7n$GDܺys!NʎӾkӦEEV|@dmxq<͝;82r 2 v_Z%\ZZ::X b>_b47s[ux0_͛waq7Κ6 ÿ}{2 ^X,|}luڕbak%8ilj46i4fUUʠx񺦦x<,1336֑GƚC_?< +(OM%_^tu1C,_%BEKO +K == eRi;"obu7j~%hVϰvLf {-[[cN}b_p`c=%K.T#GsRRt}ʤ~ӧ_?IjhѥW"~|U\AAwdȐ{GDRVB?buI>8%+$uu&JcUUƀ}tPO)Fލ@ H$/DlvK}=VA?.uuԋnnK76jt?M"sӦfZn^ic\=ڈe˘kSº.8UYQF`"TfM |0kktVMMs}'nfתڎÇ;/ HL,b5LMulA 8i&+/oSs-|Ulnci)wmk׆,Z4MɊ/ #"RSC=:s`.ILD,/btl6@R/ѻKҰXrnU_Q-/畗s˹cFqv&6UBV*WFNK7+4g߹0w̘}DYΝ E{lii3f,-ܽ&11?.;6~7Zo6mJ`Es;w%g!O0Ð5Gܹߋ 3k֭W\9dҤX]w7ի ecwĉׯ7ws4Rc mĆW8TJFFIDQӧg?b~e{^O1u-0M _S'StEŕv =}|`́cǞs/+k A U^,5ӺuéT+1 5+Phnpq89IT*FTZR|iUhlC"88$ up 98I$,xjoO@:aaCpfx7k.YSV]o֋1/),d `ϗ kk'Ӯys;3-N/HM/+Bɹ~~]x5y\\P(;,,`Ps+,:@ ;yrz͌rUe%Y@`y,!{{#ŅlgbH$BP Rť` Z((C/+EDt5SR͛7oy@@;|x=[;WVV:5_SR˹vÇ; ֡~ J'O&{,Z&?I 7qM.^|Dke 8"gg֭E ?۵s5u-5%ڭٿR=ڙFfժ+{lU#YxQ0k){{3]]mM] L}1~a {l8@V?~~4*jرIjǍ;InZܤ\åZT\Ǐ'ޝh&Bŋ5nnSׂ@ Z666=22AP/^<`ڴn:1!2rʸK!]7/&SYVV LKK Lq8"GY,%p2Z cEh4Pp Oi@ 8HY'&d;v>u*wV[qq1G\XX_]Xt]ՅFAoHt_]-,,(忽F#4cBzCll;oXaڇCӦRi޽+ONMJN.})P( ݐ-Z8`><~<ի*0Kc?~?{veA}~‡sA(8K^Zps{0ή1Z$HIɫa־.AA̓eݺ_;%KbnxpaEHviAg2u-_%(hԩ gwXXҥ |Cj;v0mZ ~1u-0r>wwk{liZ Hq1{ǧ (+H\[m6nvlݻzyٛ&M~>O[MԵ4QjQq-]z:6vI 1&ReKKϔH=ܻ~˖74uE0FWoTԄ/;d2ey9J\3J!XBR f#lkgGpq!d$lH%l%-gkk^q #%%옘9Z9eWDXr t%8>T2c˖?ޢP@G%,۷~P`f ++,HP9Q( *@'Px''2'̳3C11_p␐z]tzajjP('{v\͡H jHJJ8@j(Ŵi`5|ڰ᚛eժ{?ϳ jޣO>m˹7oILrŞv۷mppF9>qMǏ 'F0}E1}'-]Q(TdYYYn $/͛5kҦ2S֭nr_=]Zʹ}{O.G7'ʭJ>0%"0nnO-77Jzk..QQ~lǏ nzy.ݷO~zy9XZZTݦ3Py To^G| _X,Qxjի]ZQ*ա{DBM|)Y*֭))+S+4tkdhcdާOU3׬ѝ֬֠4`~=]6lQ~-QD$BD]B6[効\ +/r8bT֋D"u]D"655Ǔ̞ݫm[W/2نBNsZccCCoF]\]]߰Z&ڵWOl{x< )`DUU|Kd LbhccmoO#4ёHD*onX,~/_{x&L;6pԺ/sgRtA"Va!u#kF|M,,d;* A5ɇU.;\,V`0V7ƍ7e  7p`͛P-)|N/ 22JJ;50 R&SFF8q"),,`˖0M1MWm N/c-Ȭ}f&4bÏxH-`Cti)'$$ra!|YCo¡Wr^56kF/-,Yyޔ)VRs d[ ɶ:vt7UeQ5tma4ݘ1ݻZ}67 B6T.W-]sϝpkWj| r98GGёBvp 9;h拊X2x/ ww'ݝAut-L, Rsr*}|nj 0.޽Kzue%];װQ:j728!}{QHf:4[?{׬rK:Pݻ=9wwſV˹!!7l1eJk}n0ݲezÄ SSW] _ϛv%'oXW_-Xpŋ5NNdZZ]wwJ ysXdc eh/)(oρIfv7 EպOj׽0bѢ K昺ڹw/{+lhΜ 37~%EbcV(T\ҭ;» o}9vszdJ ґv}{qb6[CLqd lC&dZf8_Dn6ƜI]|[-GwZGH>_ E0>_t?4E&)$&^C&c ^}P ҭ[ cE^V@J;tp Ǭ]*{?=:@PUV?oTUq d"ȸ0t>TݸqzǏ ׻wk 477}JJX,uׯX,N/L'7۞O%Ex; N_e72X]-(/ )Q]xh LbPT*ŋ/v츭P3kVO3Y۔wQ*<]oEhDqw2Fo+0T*wxR]PP ޴rZC$b[tT`d 8d?[tUoޔ**S0++yӧ,)92[7Yn!nq5/_={RRil!jMDi(ǏƦ߾ic6I] ghSS^޸!)i=~|p>y'#dȐg۷Vj d2^XrLyxyo4w= i(39{~%Kb><{o+$աZRnneOnUOifxj۶]faZR0yr&dILHHC& cp8QTŗ?q㵄nI?w{>*.@֪_ݻj1&O?ۺƻwY*Uqt]>|R%n8sfVϞ-OW*U0j!bEl:Q leeIAP#RqvvΎ@?@ ]̙glrZIѕKT|ǎR$W[;:\*,FŬ"vQ[Ã7 Veo-/纹Q<دukݸwr Dv0''xZ- sy< ^PPhtv7ZsowgDGG;KWT4̴B:lCw1P+ɹ]g|` iN.=k jhV=ޟ|ȸ~}>`/|~ĉׯZ`R T"0Z9A[>>uBΝOɉİ+ꜜ p OIcEP"jPgHH C8ȦΜyFß:5-J BCd UU/c,i4FmgGtt$R2FċPŋ/޼)s-)TVT* ͚Qܨ͚Qݝ8ZǏKbb^p8CC'tR.W%&fƦ?|cBC#"fܸC_zo[!w{^֬fBjaʔՑ#SL]ټit&rqU')ٳ~&WTTUG܇c暡ihcdDwY00E(n?a`FMWvvy~;7UM0$#dਧOWyQQkݺe62r+|eز#wԵRVTp ~VzL!ZΎ@I4ٙL ǎ%䔟=;;8ɔ|Ǔ^ ϗpF0k E"%ld엯|jk^?D]?XJ5#p 'Wub2lH&SB Pp JQ O(<ҧoŽh4FDt# jLz1Wq>/o[]ok2\UP5 ~/?y+W^ <دm[W_IʎCC}wp}bvrr.^EAi)hw!UV]K 3j =+2|z\xt( ͊ҍvÆfu%QQW#;o7oMa\zٲKh4*0Ћ}[&)!8 j¡qU@k$>R07,,wz jtzazza~~56]zx^ZBfZ5X4ӂmZbZ`47.]x8`` j͚>d^V,>a4  U+6k>ɹW_)+{y~%؍pٱcĉM]K~<LD#Drv L_ǣ ,8x!x<zE?_)-,Yyޔ)VdOm焇^ $Ү"Yj- (LrE@JׯM$2koO4~>Zr.:i4+-[n޻2,Vݜ/-!!'r7of^^doO:?4?(ynnUBBƥKi1cƍ ֍ɩ?\i)g͚a]) N/zoːHt]Ct%''ҁڴݳ k;]ʭkPP@F#|14S֭nzLYZ))apPI οH$ٙ > Sw: e >>wDetz!/@j4iӦu֭9wו*~\\sEE,p0! \qzzQzz;Ă4 IDATQZZaFFL#z7 uFp3My<];gg[K.^̴TޞhgGpt$Qx''wp v%e(%`Z]]mJ}}i0_C+/O!E5Z-^COHPԡû0VkI;qb~lTVf:[gOAufS4{$FE%i0 ߪӖ-a;jT_|Pշ'7GQQ OfI K_UZZ{SRVո~Q(T eCG, 7/9;;^NNd;;L~^$_VP('d"\*UX$ph<M$~WtU_CHX<c V{\ \]mw`Vo&a޼/?^ܵApWJ>-*bYZZP(x Ɗ 򟃄O)k4ڏ@G.W <9p`@ rUQ+7P0kR$YX ۴q874g}ƛ b„媝;>G];8Iu~]L%JtBmۺ;<>׬ mjލz$55Μ+ -@oi8FX,?|сTe#Jd+JK9@V퉎bvL =)i>{FJٳg5te[/_q8bʢys{`ھ}w+C9<2B{7+66ѣ?yr 66mۺkmFH,X"KfSh D"$wwΎ H4ΎJjUrmJoo _ٽ;VqJޕ+/i*D"ۙɹ͛MSWq2gr_/x?VV͛UBg^PP_Ϟ} 5f8YTĺwoiOrL1zζt-0w||KWBղ_۶5R?ν|G3Zvm/M] LydԨ}f\rk1/ZmDRNb Ƅ,YU 5U\QQWLNTxԅԁ*7^v"2r4pC&qqkoR3GϜѭ"#/(_nv!jH$b\$/b `"\,D2P.HkPkǣ`_@_,"?K\|`KlV`2ݻo3…1IlQL =:yQsg.CCB4DራoE 8[[[[[[l8 L68Q@]rrg9*7N2oQsܵZmRӧ?R(T*N.W3!٨3)(yppsw/,8f"#G`ؐHYYeiitzg%߿i(5]|ᙙeiiB}h~~n>>P4/رB7ϬY= qW*ܲ2Ni) l1"177 Fqszj4޽z9N8ol4D76!,j!$~yGZjU͛׬">TƦ_IBBZDDt81vOd `Fi)'tZKK$su'HX tb|Ӧ++Sfj#kUU^(''R P;"n?72*a֭fVVs_dAEDtgN22$dX)W_ׯ޽?GLjcb_v7$ANPFxNz@Z_u{efm0taڴnFTAFײm `Ll~eOnZI_7.x0B`'z5}„k˛7~}A@kiBTq]Mk LU9tѣO^^oBLJJޚ5W',_>ᆾ5YZ ѱ1՚ /ܺy=Z~w~Bd x,b ,ȼl!6X>^T*ё,l$+e2%'K2R&SR>_^U2LU Z BH$,c|@0+ E"9Q611{DwwjTD7}|g߾QQIIHO.&vefFG?M>ôiۤVk E-bE<x.Wሡݟ(/ RPtϞUVll;u j޹ON n̙F_G|Rڹs;8lX{[[\Q+:ŋ/YnZ9pRNQ-5Y3 Ptaww; H͛o<*1..ukD}ZJx< 'r%`Il%2Rq B, GT0(/_Vݻz8$$d,Ztر_)r_# ):M>CfhOa!Si׮ \<99n.ܵÏ=[_I"}rr z99^҈2O*%TrJ"Q2\)+D"LH"L.W0\)%Ru@E&cHb0(,֚@`0VX5All  8E `P( <me2ATA=56K(]ԩ99~~n]Fd_A&SBrC>_ v+)$=ԵC|H"a zJ&cTB=FBCSt7̫WCNM]ݬ+@>hϞ}~~V&F :5jaq1UR.*:8uu]\Zvǎ K`&|Ș;ߢ"ڵ#"@`ӕ[BYi҂B5s_E${W:6D"P(~[˖z4Y23K7nׯ_ Fxx9K!()adJj-ЂIJh{{‰ 8aB^BZVWթGw|>_y#:yhhmƘgFMJp\jbbc5lX:ukZOI8 I5jqbj` 8 Bhx@T}Z[[V4$vN?ԅ¹s׭AD>};v졤fvǻw&#gΪNӢVk&O># o4Lt}R8tTDG?_6>#c5u-0M*YNPF1\q۶/\g['L022!66G͛ۙ"ɇ=jSb$j͒%1W%b0L0j!gDBhN<HhgGDidL+A"Q?$**ݝxqGG&+Q(TX>`1kk;6 `c6 {L97֛?Hʕj&4Y=۵s5D?O`#]9(ꨲ_c^L֐دŤBGޗsXk__=z崥K/o3ܮ-Ȯ_}TrNN%C3شӧUV@ՠA~uV(T5=B@XX 5=wV`K7E՞;n֭tzaZZaVVFuwz+)XVk@}E@(KHW*+yQQϧ[7N5NO@@f2FoOUJJ^X؁?~\T'.}$(ꜜ :lyy hWqe.i4-[ NKUU ^\<<ː!~X5P5ʳ>˶$Oͭs1je?{MX>sm3n\:lIuRBWW Wu+3<ڵM⋯j ۃZ_^of:mi<|xWy7)) "=rn'߿l!`6(h1˗6u-?y1&SpL G|7;'ׯ9ӤI]}}]ӧ'N$߿f.u$$dh42d Z4,h S$~] D]tz\]׵Ayٛ7%tzPnx@ 0]x9]z>wP(!~tC*l٠: l3AN%:-c^R".nYNedlj9TOrRG$bZt[e M)ז-au<8\qjj~bbvff]f J7'8@?.J1rT@ P(KBD"@0qEUǏ =v:~112uFɇӧ>xޞ8mZI~/?ٻ;Ǐh:Vk]O~pKK 6[xŇs~W 0ڹs\j[5ȡٳhڣGzEiiÇ}dE^()awf%(||V=:u`?SCDF޸vUj&rq%Bl3/^><!```ɻwCDy[޼wo ܼ1SPѿBMر<<۷5UA0&ac=dlF~54_Cƌirr*4t7~o +Zvg>rdGSS OK7Ǔ2*>/  HXH&c,W QhnMBLRF+HU*X,W(TB.WɗB@:lZ/jb\dJ\P%FA"-ll?ɼ,llH$ѣ:yláQ(K &C,qbx<b@Xka`~eD\VTI$R>Q<=iv4'Օb*3C j.}R7ZYYڀUTqXniiHj% #(;BZgQ5ǏOGx4O|hyn#Ft7<,kʔ #X/ݹ5aB̙;?2@v40ѢC1fxE1}I|sB:ϗA5 H9`s[xjj9PO87T*ŋ/v츭PgޫW Z #L mrr*eٳ3mcUDmW=0u]23K33Krnm8_aβeJudCLB%ʄBp`B(iR1$2نHĒHX@iDoRVUnee\Z9ZUT֭N=yrz,&SM Pa0];Wmd{?}ޞ޹A藒3ΝKU*cΚճVwSOr[d{_p.]&NjU,mϴ%Z*ƍ7ׯacc\}s-gq֨/~Z9vlWh;tX=΅; ZUVNԵBHQ:@SCVʕy;ćARi/|2}˖..#c)%4jF߲a*$lv/7u!ڕxTr׮ޛ6iA?Ʋe^}ub//{SbZڵWO~{ѣL]NэRUQ3̫xԼٳ{/]:Ie RV+U* ?0̋ϗ"&*r0S"ݻbv@\T` rJ*U/5k0D"k++5$xZ[X D bW1IիRi@guz+KJ8@qv0ZW@nK d z><ŋ2ʬHIɛd66wI\RNJMii)@ie/( /}_DؠSSO~ZTiD_< a_Lq`.@\UUu}PUPT4/%Ex; hT_O.I.p h23rs;50M_pb JuEKr. -,Jzxy9Vui׮z3V[=#lK!P*ǓJ$ D!|DeBfWzUTjVV|T,%x>c8FML:zIjj~6οkȎZo[;!Μy?3|<VkΜﯷ,j?_t9} *fD!!{Ѣ[7/Z$>=u+_O~Ύ`e.T5u!aõ۷=P GL }ٲK#Gvܱc\Xgs_bǠ]_66MhTqMxёkxSc CB6߼CF%͍8#L]Ymۭ}6z2rXUeRRnNNŠAk sqwdAL }ɒwl֖c͚գY3*s/B"+jB%*A %djjg1P(p\%hXXX$P4 $E $HZZZ+H6H$CXKK$A,x4 eY[YYؠ-ml :`w\y@ P(6m\CRp G p4t 6KK-FÓHX,֚3HD׮ޡ==d[[In&JS^έaUTĂr-AC˖u\7 jG۷kϞ$cZ]@BL @i߾YP[`'I_`b wMQɹ[7^b͚;wަ㡮lիb6[BY4ond[$?߸cG=lTRB"QDrP&%P(d@%O| (x<)8@,豀܊@@c?2Jǎ rv,0V(TwfM4E Rf0ܲ2q˹L@ ,--nn77 Օj [+\Uş>dQ*.f''QWYY-{Vq}ZΝXa#"M(*?{iD"뒤f*"74*ȑG۷;*j<3lJJZ z.{J9l٥=}!2ϙsVPNjK"Qmj1MvSfg>ךZ8u*fem2u!?JQk˗熄xӓaS;z?> 4 ypB寋D{[pp{M] LSmneem0Fkʔ$>55ZmV+׬Sҹ\-7ϝK MD<8 zu|عNTTbdSCL]5WvvyQ["jÆg84=v,)=eѣ;N}@nnUnnUY8~X[ggB99TVajH@Z%/j|DER )jLֈD2J#U*Vhc ~VX5 ȼ@$Rd( 4aD"@{h{rrq=Z[E}[fal%03(ȳgϖD"koG<>z12/$F$UU(%ϗ{[[.lC|Pp@e̒EӋ,e?Uk&#՚hr2^.^E?:g 6]"ic"``*vaa**bZ vb`H؀uGϻ"cx>9dz|y9ϟKRR^JIEFF@2l O^ t0oUa0h;;c''K% Zk"-/gʻjVE \}!#8~yx3ڵ#zJeqٳ=r&[YJJ^rr^jjaE "],t2%0p8=2"u9`0UUZX?kX.q#Xڛjei ɩ|9t:o_{__ EONCC&ML/6mȊ/z.oܳizyŬr  H;HmQqWS\y[Uqss5ztW5$"(+8Ƃ 23˗-a9sp`{nU>di^^ T JeJwRSBsői\3Oge ۵k Q >}*1㔥%…y B*xU}n<}'͛K{ncMZ 5U\VwS'ݻT]Hsm ׳)HXңG?""[ T*C0h46ʪ`VV+*~LX,``@0530 %FF2US iiE#G<9zkL& ~Lƶmb^GfU33p?xXK _^]zvqaӥJ ;HNKK+JM- ƺ]E{!alVZt",ju=;MM`緱1Z/ݿ?V(,Y2h޼|ڵo7sf_†[߿Sd2!BʊB\!W]Yfuu֯&zz::::Zx&|v|GǏ?߿ݾ}5P|~os O3y )ۄOV Ecc"$5]FG7l޿S%bTfmmlj #D%ɿsk)))y&T{\dyy4>Ǐ?mJO#Uץ $/ur:rdz۶5V8}նm=oAnݵ۷?ΞeXŊQO?A> l}`PǏTNs.$q]ZZ-n/ӧ‘#&&nVs~ff{>]ۡk//P,M0++yQ(L]Yɖ#q?]##]2o`@02" d2^ }ogWFF"'OvwobGlsPkX^v6B6kʊBPby \v/ _DyALff嗲)͏] g26ܼal͛Ǩs\`UXX ?LҊSR9`d$Gy<]ƞ +99aXMzqںVNNŔ).֍l)t:eNJg{0\pr8 e0x4^VF|X  P( ky ޓ'/$!lmwV\QܴiOFEEU/&aú̘͡W$TU)f y `%IU#b޽{hѠQ*~Y,O^e1ڵ6 H*{ƍӳ\ZsqZ<0:XdwUҊ׬p^޻lYW6o׮8:;q߅7c *ٳpǎ)9 ѣ Q9-"4*NΛ^]Qpu ֟;7gN|V6hоwVյ ՜3NRϟӫA@@37߼}3PPVFسleˆիRoXBZ?5U\v݋zp BP۷ܣEE+8w`Z?_up׏Ru-˿>߹[Oy|Ѯ]Μ=޽ 3)}(Ejd8p =vD ##b;hlw]s_zx7]{w묬rggٳ=FtRJ, 赅 645ffz@h 4^ʱh"bs%K"xeˆx"/l' t:O^4VUũdSlF%c C$jZLtuq܅@x՜jNUNTVr,έVUY.Ε!td<ˣ&&X[.\8}{32Y,oG@j5Z.ׯ/_~I"M4CfߥOߙzPnW`ͽ '|$>-д;$$diU8@DY,>pl6|&SMСiFuUu9A\0#X>BHr߿SFbg 2'bĉ硡޹E?kVssUpŒѥ[ Ńoif> V;o B@~{ e8UFp8o81%>+@@۠ӹnn\>wȓWr%9((&3sOBhqTq?x11)i BP?u͛ <48aFFW,jz'_ĉ;vYfE-p(*kITY#Y^ΔσSɛ'[AǏػ˗B0##""\aF2MAބHst43Vs]߾&OvENbPGd1ǎ֭[D`~@ .ȅHDsFn1.Yu{UT0I@RU5,j$92Mx\jUTZj$Gp0Z x.Hg?'-+Ӳ+~- %͜@]a&OА4EEUVymd^M9}Uaaܹꟁt~-?#KΜdrjgm.u֦_?GggݭwBG11==Yrٽo^ 5MU&=yGCt O#lժ_.Y2xٲ}ή;B(6M o|#**iɒk׎hy5,Qx׶40 :4]i-=x1Ç_Ka#G:Y3BՅB~{Əj0UևM! H$Y¦q+B8vYXأܷ͊tD"ɀ{u o>Z"TwѣU!!5U\11VEƌZ/Z +jȅ AA1V lIE@o_l>vM33SH>P# N^>"Րv~CwX, 5jĘO|fh "WMVV9„~hZ Hbk6̈cAi)C*B3vs6gG֍Y^,UTCõiCV/AGpgkGxyjD21e2i9!eFj8`yE 8ZN <Bp]D"ή8pǟ;w6Z;ò<~ő#q;[wD'_۽uXT[ۚcҊ"#cba}RZJ/-W2 .X@в YX--I$ }ss}Ƹ{ʕ]X:"K$Ҍosrs8V^6..6Չ9o-*wI EL IDATo_{__WX}rsۺuZGiiCt\jX׮-X~AK˰ uRY'+*.t`)aL̻uufuL##Fl!?6p5kF,Z4H)OꅅMUZ? E^^&{xZ7ΝT]HHM-1"4&ېdaao_4fLWG"QHD"N*rJcV(OI&㍌td<241adkh/]&Q(|TU!AdN۶FM6m S L&?5D%}dKK++L}X]YŦwo;"QXtŊ NPpy+FnDSS"8mkG,^vXPdɠyJ,O`- (@SK$†SOO(@ƫ6dx1HK+NK+JN{>P4psp0Q]C]޳g[%4׬|RreÆu.*.,zL&OS+KV>Q~oW Ħ#Ɏ{g5@ .^,,D.]<<]\lS`pMpMFFԩ..AL|Qo~d2ǟedxzv {ӋWˣ[7r~p8s~Xx޽lZ4oYNoɒG-t3uq++h;WFP(ԉ3U]H-̚A h󏯪 i2e).!P+Oں֢E#hɓ/{V$u')ÇZ6nj\GhTqN>d$iDlU@bNNŢE-ZǔVçO]b(P֬`Mƨ"ɢm`r+RlJeVVPJNUJeWVr8BdH@̚d<# zv?kVD~>-.nuݏY,+'O(-q~Mz8?U^GLIv֘@P|/}\_T*;ueH#K"?;pa^mCC.s|Po_{ N}, C9XXRXSB$D+<==8lӀ  a*%XOJM8dٳn2N~9^*ŋoӦ>KIIG(60 xPiKG,TLfmmlL.y`5@rr^VV93vqWzR#]QGG v}_vmd򋋫65ճ$YY--ɖ$KK%‚BH$Ӂ򒗖VaFu5~|f3 +?SW^ ˶Ҋ߿ϯ`h[[c`O~jR\]'N쩞q<T1襥t QRB/-1`p{#A..6ݻ[뛚YX[p8K=gϤiŰmۭ7? !11RCӽu߾v={U꽙Jeo|v-޽T ̰ajv-e۷R>cq̘k֌k?E\ahhӯmڶaS&I,|(1#U$pᅔCm\7/]uRggŖ|&O>fccw2ݸFrrn\je6hb)׮-Vu!retE3**@Յ4u뮥?xRՅ)׮^qݵk_r/rzm_`eCT]zG8pߎfZ"BB?|:Uʩ‚i/];[> лGν޿?ƍ;wNc]ҥȝe6|yT*UߊRYW_yk@kGQ @"~'l, (L䘝My`pi46jf۷0 7s|ZDD|tt?G@ұrڙkg*P(1 +33˳ *SR򊋫7iCtל*Z%\%K"߿_sɒ!~rɒȌ⠠qr+WvStp8^}W^\X,ټyl򧪊srT oo`h4vNN_WKC#E"mkM"Z B b6[fyғ'Rz.JJy3Annw+?mK8Kj%.-Z,m3&y<>_D hu`>thG~]QJM-LN΋Ϻt) ٦VTWsJK%%eetgϾuY*!F,@;e޼m͖ҼjHK򨩩Ed>_(_(TF :u05RH--H==NJ /Fc@F>}\Ueq=`@gϾK 3(H,/gVT0 *)ȻjcgdDxU.A;th_j_O ZSl.iQ(`P;Z8;۸ߎHVu /z+Wv0aB%_a6(֭fhP*1 :С㳶o 7lmmm|6kh-[͞w ̱c~AA1VNL_` AASpe%{[f AXIΞ/*"+iF@&㫪8vd|VVh0uJHLx{;i`6Њќ>ODīH <66Fg3" (ß"YyZZrs*A88ЄBW=.8βeQ^^v"BCR,9ӭƫx~,ϧu93)Hy<@ S0K~ɯ,^NOOERLx`X%J\y{懮]nׂ.L&۷R;*A`9w.A/'WUq,0hP T N&DR-gg,+;Wt:ӳm32BCGMsp0Q[S-/_f.XpʊJh%cbB3ۘ1 `}gģѨN~(sTۛR@qFddߍ^^||4$ lC$j[7q/p|x{oϔ).WPK:{ġC;]Hi z߾W_.Z4HQ[߸qaPPLApXfP(B{z'qO|wWr@U\D6kb^6iR/Uעxzv =u氇G@@h:sx8ѣcbժ7o~ }kDUׂбD"*oDX<BA CCÇ Y>pާOt`ZTLbbNPPLaaŃ.wښBxӽ{ rsǥK#܂'V!'ܶŋ ӧٱcBKLQz7:WVF䋶&aBtuqֆBP,J *|MyKF1 K$ihãGL3$>bÏ|F[[cٲAA1Q~`UN QN5^rjn /AK__HϯBHx>_$q8*NYz2 Ɵ_=fMN].'h4405m%'%'禦 b"׵k jxXK Pg\A{wk[[ŎhBÄ-<>L}HVJeG8S'/_JA(ƍ%{~ 9t:y8t:H O`45?jFKDm0!.+V]K hv/^j~?f |) @'m8ÉD= Qjd<\S{N #3fW\I^ʓ'k}5!HׅxOZZ3mmnl*BD"ÇCյHr{wԿ+yf޿ϟ0 c,ZZ.^|ǧϮ]Б+3|Ѣ %%!!șGܼaȨwϟMsl8yee y[/y/X&Rc@R #+"ΦpBg),YRfw{s… /z<,#Xw4}"#TWt%'o$jPݔ)3Qf͕\KkeXӧk3&Š. ޺!#vyD@`0hD*K|1gt:ނ1А`jg`@06&蚙` P(>~3q VɫLd2(#8-8%%/))Jeah[[cgg''+GGU]$ivvEJJ^rrnRRNqqCs`RA0֚2_ݾ}FwZ-P}غVD+}F,\8WWs8[]kHxIDc8u3`~~%(kk= %K 7sJe11 phCKK+ΦH'ݺ+IǼ~AS9~|F ʨT@,)WT0襥 Q\\ j9LT&*$<|''+__Woo_Rҥmnmkx.],[Bxݺk11֯x`U,G%$fdCdooʏҠPw~Nۻԩ}1@UgѣwMFE%9'K/4*G+6lIHXndsߚ^nժ^^y+d=?6c)@9VoE 1hc٣/T帺.Y3yL̻#FDw|ZBq5|xg?nSu! =$=}'Q7Ӧ㵢򈀀(8s#G|K((0hEH߽͘nzR,y?چ? 23<+6l  ̌tF 9{ֿO{ TE…yE@|P1"SPE@ vt\/KhhA墴}툈WLEOSUVϞ};M&DPԟ".,ӹz<DP$$|H X|ppEE\PCs Hrp]A HNҒ`pTZ BQ66F;a;15TRZP::vY5 uB {yGh1cFˇ6Ӊ=5hݺii]]YWD\*l}T(ID\vf@ջm {x߿޽*3<;Px’:,+S(r0,)XɐD›ML-,~L+KJe]| AG+|Z`w[)˜3A䩬dK*jG77f5H ّkkk˫bG*=V:k qgμnӆyXǧNl4$ĻGkɗύaa0fE|V~>}K*Mz@̜y@B>ZT\߾ /.nuScZ(矓HU]zyӦ w:Xb||֓'kuU]K&Mkrh+/||+VT0CB}}]z I0JVe%,s-I& x ǐxI,fƌ92jT lFFIVV9ɧd"wF>k.kh`ݗ,PvUVJJ/Wt0mJL̙40޷o]_RR&L8*/=APO& *,`a V5CBR{{/cdD43ã+/gИLΘHġh6_PP;8hjbj2_U~;w>H$wWYɧOBJOOQ!Cl23>|(ͭ`d24kegW?Jeh4J&n)HGPYɦR   IDATJ; 㵞< ҚCB__\SHye>PNrp **AMMlv.Ҝ XV$ a-]i qASe6 F!;9A2$?N(V_ך:y}2,**imڐ¦u0kF5sZgΩիox^=\sf8շS.+ ˖]z0u=$4͛K[C6'M‚t䈏Fh/_fNv۷=DEG'mz+++DՅ4S(?ϴ%RU=YVF|yaʕ߿S[BT*V}lrÇ`DhVjQqI$RGǠ]&N[%5!޺1>>HՅ|(<ѣOLBBzlԑ+WW|F"gϾΙsf„SZV۫IN ɗLsoPf)b|\~L p@@&d#/2dF@TUyի ۴1 ''Od0xyRffJ`)Qw+L&}X,A]|hC\Xѕbu{iw]X=>r$hL6}zm5z>#0 )P(--'klmF ɦN=#tA/^_,B KK2/-/ eadҒdnN22%1+P}WQQt:0L>.9xqll:(tL`*@u*On}41HEr.Whdۭ[`ա9+غi7,,q8M )L&>[#flݿ8M efFzr6Ϛc~- =zgС.5S NQ~AΝO_ޫ2<ƍ?m6YZ4OP__-[ƩV rtOKwϜ4=^)N|S͒% lHtn>6Vu5PE!_k5_w$ʕVN1əUUX& T^dcoo_w{jjшajh`09.ܔgHcAbbNbbλwy\Ąi`CCU+Nܺ0u,cggQ$Nܾv45Bm[Äj+iiE2$bud}ǏӰ607'൵5|QUJe)>_^2x 2/"$K0,jiassiyyT {>ih`F Ȅ> d(g綞 e[T&X \JeҊ ɩ(,`q8}/0椙3vhn`@02%L9~+*u =s{pFl=$$fijb7*&=xګ5O ih[[c`Gs'l99Yvn=kGuܛmn)-נZի+R0WOxQVF<ܹLvmaA {$iHȃcǞ-Z4((hTQOC%ONMJILNO/nn}ko`eT*{./&ݍ%gg__צ A*y{WUq> T΃,LvnT֢E/; $ܳgʇ?Mv{6=$$AP(??a"#緲CL&YY;7vl?hnnoXBWcQ߾ݬrW_yQT]HcM7s!\uA(wq>>he\jw!-qqg<Fh>jWqs4Đ/ˎPAA1\pժag{ OH$0H$woE{fώ>ѣ-KtYhŒ={'L@C G:]מ3go:ez)y =r]eXH&Z)28:`0KX,1551׮-i&/(iyyԂʼ<*h!:y7 F[0`MWD7ox$L&NsDwZL{^|2ih`b/B1oݻ'5mԏrO.\ bԯ_;Yx?AP~8揚@ i4Ve2zQQ5ƪ0J/FQ8-mm PLL:GPuk5lmmmD8&pBhZeLhZ@1@}?۷R,#J2 Yn-[v̙֟oΦ*tnhshTFXL&EPưlk6M?4iϮ^M޺uu,]]w%8xb[:-`U^ߊ VII5ƂOzz:ffzffzD 1L n'O̜yÇ&&z.IT;ҥ$,=yCYTTzY܃F5N7rtn@)&);WU4K6[^,ڷ7usspsspu;//g\.**)?d˫WCo0#G=]XBW=&۶17yÆ,j"Gzzԩ۵3xq^sȺp!aÆ++P(y(PUc͇@ YsO*)}]6mIzza6mkZjrJ sr@s;w1{0-HpϿ=;_v.ӧ BԑrkG Pu-O G<1Fh.jWq={TjnD"Ç#u ||=ա+R1;w9ÇƪegiB.L|GG}_th4#"Bĉ=.hcSHK"zz$??WE*WC%b/*%/Di]#LO._~zU+WUUq 2ƘU^XXYZJGPAŢut.ɓ/mOާU8sD9p`Mײٳ#Bə3vRu9C*.ybM\\l\]D"iϞ}ōu,njGjjرUG0w{{77;'kg Idvv/ks9sƦ)7`Nvʕ n:۶z2u*i|P0z-j,22q׮{_Ru!dȐ۶ADx֭ǏhrسcǞl}7K aϞ.$$&nD 4+^߹LU\,cǍǎM5!CFvUtO ft_v:ɓ80UC?\Oͅ\՜+?8|ɒj2o#?k͚6{@ paS:~Uw<f++0bI^$^  wZ~yL&vs]۷?;Z~H( ǎդAo=zTR}O^F޶8\bYn.7ׯ2A2 F"5c,lLL^||&v5AΎs>!|9˗_~eNpʢ߾]P\A`ڷ7ojM$jk6#sR= l„Xž1´O*ss VQۯRBEI$2 `PFFmMMuff: ʸ F݈osgu{ϿbhpbGѣ81bW1cm>f0 ~"l Lvo>ӯ 0wn?G%$dQ(=~ǧ֭ZJw\%K";t0?ujQ*Rqf >~,u'_T&Aag77Ǿ:d m0**@X>nx=#d F?rȑ'ڙޭߑ]}Ԕ@}cqq#||\/_~V7YTTջW*ɓUϨ>q|Q*CRSwFeĜժ.!֮zZ?"}@jjшa^!~ f vy{;#͊H$ivͩSFtRu-> ;qXT%r?'H#"fc,ahoogUWl*+Cwv9yrkHJ;5hPpr}PpDz옟2jCAxG2ڴ1X`A 8^:$H>dj.ӹ_:[] fL\G B<^K__DǓ:$^__H7۸0/"'%m_}1F$a0`Hj˞={~ LԬ˙R&PhBI\ 45cLҲ @+𲪪A~ےԴjibsZ!'dR O ȗH~AcL& kXdR6;Nnb`IZZVQJ8JMLԬU>LKi+"E!ʃF㴴lp8 ]UuKm펺"M$ŕb1M,faHhGjk;B$ HB5Ѣnݺu۶mIOƦ`0:=[ϊD*N ڷ7dWT_pg %I ӧ_Ʀ+9u̫D")hqctuqSzdǎ=۳}v㛛U\L&ΝO/&{zvj ;"%%/-Ewhدm¢E߼XGDzB¾}8Ɩ-cǏ *Pd'BwTx{31!^HTwʘ1GrധO̙s˫׾}JkU*Itٴ~YTRB}HL̙4j>qũS/߽۪BÇsMOa5d۷ߎ߿ԩU]ߎH$qpXIz5%"Up݄ff @@h(:mZfrk|ӠAϟ#ɔ0RAh?w"P(gG+WF_{C,FZ2lժ z߾ɪ寣OZBxuŝ; Сiy&ׯwos#|q9}yDh4y& ^a'yp蝝GԠN-i\ pd[?O}}w@FXXh_)$+*%%2 r##c3Hecӧut.۷i}#Cn.ϯHI9@bqqņP!WGGC˗ ?NQQ(&JWWjnps3j^}5_ԨXX]w;wWoP}}goPk+ZZzI}}gp3vvlW~?b+Qz.]zx;V[Yq7$!A $Ղ22|22|l=l?44F@MMFCCb([%#3A 4<`40N?RVVJ?))yFHII7ڿ&tu|ccq= rq[v  E]uu55msxAlTN9 NPD!de踹YY鹹YYI \ɾߖ& U,@WIIE-;sf; ;;}DEffɅ߯\٩*m?uXZF!߷]N8KHccy뀃 IDATW ߅ FFFӏa+*h$$_^ϝ{0::_ AKZFS.rrңGuRlm5? ==`5iʕ~+8hLMMώ,_FƱ˗>m- u(<Ŭ7** AeZF8>+[UqŕGSP0NuefSP %_߃Ycd5a]zG>Ѫ)]qq{GGǦ A4@QǿX1:l[rp0-_Ύs-<6tFGG"VP@]QQ۷ҺW{22!)gdUQ51Ycc  50 RZ: .BOpu``$$ف*X…%ӧ4>v$0iii ߵk oB;9ee3gw ۾]h& Esr2fg;Mi qqvXmfVPu¸[EKK)//&*r%/| CF^-x.Y&&//sttߣ~~Fspp4*ƍ' wX7aa{lwۅ :;9=݁45##---#8V!!A@[%92E1\ԆQPSbTwbwz*S,b:44=88@[X*NAvT ɻqի;#ZT㳅`0wlu몴'N-ƣ 9f#''22++5sy̅ FD8Ș}, rJJ6ffVVQran ݼYʕ P%YjP(o|ZSӮ-$+ˇϝjmwׄiU.)_ںuFGSRޝ>/{1QS '' ߏ_ܽ{-h4[,"+~e,ttԃ#p[hiTTED~mDA ɪ]ڐVqZZQQ--820immdz^J?SV (+** baPR+pF%j?` m lj}… FLL4 ŬÇ5Y]%$mMLB,-oGEñ̲xqqҒr1r QANr%o^W`!TT-g`Wq['{55SI}}nn[-Ql--p?ɐ::npvog|`s@OO T_m/(/o`آ@NN*(ZY uE1,lߞ=kΜIQWRu> {jccOL!B>rt(* ݽkcfnl춳mVVj `io66voݺ*2˪8s&%;i7_:ח53S{߃44/^T['"//8))bl H!wWDDqa`5` mb@<< )-{󦦸' Cc0>ڊ_W@xx6! ZNb"y&l~ jH&j,EKKeSzCe奴'}?\JJ2KKH8gTTdN4%%;߼>02zNSѣڻ}{PVVYd3_hLQQM+ -(8eoߑiYWT\pؿ}k+5ijOUU3g?.Mn7\]I s%㜱BTARRիM KAA >ަ},ᣒ]ܹ;w*MdhĒ'@w^ QB֖ll !ؾgpEfrٳʕyޙPg"lMm{;\>2RR'iin^R BF̦ײm||+wwΒ"*ʑĀ^[__̙C<=3hnlh ,KH8kWȃ ӑkdd…bss toΝy(z׮5Z8 bbdmڴr-W}[鈽ԻoBpݝrr|߾ A l(&,vLLLN11MHc&888?ɓOV+ufjkk׭[M;, ˜DŽ-MzÆ ب%%ٚ5k;:nÔ*/oXN! wF'e%Bg_0>ofv-;*@wDze Se$YV#|4TW%$$&tv+(l߾]mdjի|XTTye|k QUSSSR^s-vx33elŢk 7:XJJ"+KL6o:.)* EFZwĉWwM97ӽ7X[dMV@~~#9LG}%YY>66gϾX a=ȸPP,-p`׮5TT ٭PǁehIII&@24\Pg!22R u 1ڵoԬ['0`@@{8!(z͓'_NJsw7رc"=t۠ _BΝ##-]SU_im]W[ŷn=Ap߾ZLL t ׮zy-asS\\%ii-o*MM=-kjadVQWW_ŵ@S^tiMJJ>tvv! 3'''<<<>p&.\3l͖ƍl9<{36geF }#NN={p6M!H{W|˫ |ZRR#//of"dt& K/زEkLK{|_Yyyh>mx |JN~WTTdjw2??)k _yeQQep3**rEE!551UU1ii^"‡#DE9їȢttT;YKB03S8t(zY&uUU9`eEGG5TP&L y k!WW^{ BSSӯvvZPgM{quv/L;^Z%GNl&OB8r$nppwb|g)MWA iC_4JI@FlHfފiVEDإxIaaѱ^]]S\U u |]]h{=[71_Q[ѓ'_a0p **^}SZzm˂p@OOu⊊[)li(`rޑ۶׮5/޽{bbb &((HBB^YY9??;3VZECC5^YAKKKMM=صkP(vvv `cctRll##Q222TTT±l>,LRŝ={[...qqqٳg>??{?|+V;88p\fff__ 5b)lXߨ||8qbxx;~||IJeEUT49?V EX-/bVAϛ6]ۻUZѬ,-[dDSS>g;2!!{JΝ{V" --ɷok{z@GG Al'A"xx2_ #<24\޽7ɋ[()zhlڴRZ'  0"8QSHдKˆF{{cQw_6]wFAg>~^u>}jt36900Q(+<<Ǐߵ ?Yغ5@6 o˱ϲ\\3YFF}۷7oހ ΞC^^^D")((,--hkkA022266v‡`m߾ϟ򮮮 {n$) 2,,ddd ;BUU̷LLLE6$ŋ؇oڴ)//N NL8laa! A0..NJJ `ٰaCeeׯEDDΟ??lقD"SRRa&j%&&6231qoF`LMM>?˥/.;vuS9 O[8 ?h>=7n<:GnD#4/gkj8 6Wq!Cbbm,-+V޹D BߺU(*zJYٻqfdxm[ }lAJf0mn14!$ )$r{PSB('PM "ϩۋsq9[U[sGaCww7//x儔Ttt111STTT"۷wuuM,qqfO<A߃ 8::UUU]]]W\`0}}}h4uSVqMuTUqzf_pea899={͛/]4xVPP cƟWq&*,,lڵ؇~{Wjj* ??cΣ͛\\c7+?˱khLF55_*/0w&qsnY]ݪzqժsKn>f^52o->>'q3.. ګYP(Ǐ?;sq9]⒐a ^`yJ6/SngL/?BO*7q說֙<$77?o!f:egg""llQpas:SS<-#%%566NMMx]f8,777$$PH &mT徾ɔh """/.vۘJ[Or5[έ['BKKYPmP(tR[55_[;\11V+W.dHhQSSmIM=R[ۡj>}U_?6'YN'![||F-/o*%u4###᳷NH`e\yywdU.]CWW ,S)-35 ٳ':;xX~>YD:T.ݻ?֟?gOdp^2EOpU`YDsy]82"ڒyy~B}P@SS%Ap@^^:SMV޺u 1Z[S!aov y07g++ |!!Z 88bb~rdqqeTTvYANR;-hmm?*A08ٮ]W =|x\B W!a~i~|G.77gPQYY>E ((Hf+/}qï_ttt|q|/_L=АCBB7M@l#+ ݯ_6IJJ:x𠁁AWWA044T__3IeffvlK!??^2OzZLLLUTTbaPYYɰ IDAT5ٍ790XYLL Ͽ555c?*&E=~ݻ3g 4>PP)+/K=~K]҉ ϟi QR~euO'75aqs@"^mxUS/'瓅ʛ7 rP; UU17-99Nee{edx%==%''uAFFFFGG)((Ν;@___zz֭['\ӧ􂃃 @ 6lؐD"GGGihh^W{{{KKKcccaaQmmdQgٳmmm999UUUiiik֬CzZTUU.\wo?vXuu۷oϜ9cnn>ٰS{n$ĺIӄ#''߹sCmmϟo61 yB1.=חQPx)GѱWkz8z`ak`0! ۖեjV'Gmlb>o**Ν=&(Ț`ޒ@۳\]7SQ>ӻz磻kk#&3TZZP֭ΜuUU\nl쎉JOwPV^>LLFG7^MN~ÜP!%% +"nhheebh6.\35U2x1+<Igg?ӋKLSPٳPG[W//|a0τ 8hiIKJz{T\))fbbIC`0|̋yy\\_6uF"s!!4||h`p=o8ٮ~殪UN $rh}ܹի=߽G6Xgg+bbAAOFN4  w@A` YYe\\&[ *XJ["" %$Όg wwy󦬬(iii\\\]]].\SVV{.N9 ׮][l_HHݻ7o<%Q( v$iaabmm=00 v]&9!!a飣 G>>>33{>T ;;;KKKHIIy{{<+iLÇSSS#ߗ`ee=zܞ l)xyyMLdܤXFo@ڻw/ DZ/\- bc_;WWN(ᩯr,.A֭B9˗twOmn:!Fy{g:ݬmC7n*)VTTx$ >؟*)]rܸjl~vLh? zjj" pqZ/##(ׯMg@f~rqIuиq3{qkA\ ;w^ps;JJuw_i|\˱ ̙d]PGVVaB|H:x@hee9 --?GPXLFG=&~8x/Yemnb:`r;Otrr3gMLNaiJMMu).25 Ғ:˒ԣsyU;&[&, "ݻsTU_ta#YYYCCC//y'lṹck¡0wllW4TpEQQٺUs۬VD8|54$88胃P(]k&̉{Ǘ/jjڝ6jL0'֛75E1DEY,dܤw^Wءg!nVG_.(^PǏ6uD45Qm8cc))ɠ=!!/99޽{ ӧ_Sߺu@R曞"?zID->ކ//Ð`sCU'*w ՇPU{n~,A& )vC7vcggqcAVVG;;/M0־qɓܾ;kxׯ&'+.>uњac\:'U\PD#km=q"aup X=9ׯ.iG",,"/\HwuՏ>pVwի9QQ:%%ڋ ͛eSGGǠβt{Xs禚1mxx9EE9xx *h DFF:t,0A x<2vtԅ:20PGE= ;xP۳^^FiII>޵./o8y2O;}ZJ'Oiڊ cd:SV^NNN|/lP]]'<\ 8#- ϨW[,L: |ϡ`32#J<<K#ttuuiJ}}}WsP(A˖Ѻ.a|9{J}[rΰ **}+9Vlz{/^RRy踡wQ[",]y> Gh 7jh|g:b͛իW[ZZjhh`cc' Ö۷NLCȵk׬jE:;N;GNNjo4<ѹ ƌߋBOH8u*Z#,l ۯD[[_Dsmzz;hJKXȑ8fIag71Q wN޽RRzz||JJj0j'Y_il|&.Κ8jo\+9WD98;8 uuBu00pSSKCBҳg llb޼*橥PSS() ?^ uk$B?!*.֑D<20 +,0 @IIvZL̋a`0fq܁ %m #uuPX֮] ' AA{W_U޸a &l))};wNVȕ:;;CN'$bO׬{^\_L[[{β}pj Y`lMM~vt)ބDDDzWW7d P7i@Eyz +u-8744|z{׽|NKKYRB' Çǝ7^mM쁑]B32>ܾm涅&4STTicyJG--UhXYNGHIIddl?~WF75t۶22661qq{ ֶ11$&HissG~YK7 Ur?RRggO|54 [Fxstoww7x1+73>֋@ \٩+o߭ϟyjmE`KuuϿ;CPKIKa}k:34zuWxxի9Pg`0#@\+`0fw0[@c<aaZ|`غC|W¬ׯ f#$ўASӐlQcc,[; IIvtZ(:.>O'Po8{{e.^|u%gddر sAMm))IQ|5 ȋ99Ο߶`nϥKMM޾=涅vzѼ>?|7Y0̴r^rwt3੬VTT Ʉ?~mFhG=<֭kÇ5 i+ JJ df-|YimE)5Z[)UTl$(\^^`ɦPKK/#).kA`è^¬⪬l Ru!!6ZZ/_Ș*^3 zz]ܺUG0 6+"%%9qB/=o)d]W7AAֻwmxQr1.AD..&'x] *||RR æ\]]{GD7]D') ff_rsKՕzm ԹpYw;o|s GQO ::J%%!,> `Z`@/ ɿI& VU=u|6ZZPj qqc7DD<صb'ԡW_pR۝;C/*xᖞ`ng',VVj > [Ƚ}[sgΝ-Loߚxy%&AޅN4rs3()9ko=Ürd6Çxye>+AlٲXfʕ.m,'w@Z޺elfڊ*欥સ CPUՊPύRRk]]t⥫+fCWפ2]]EUF1JYE ^^d{`SЄۆ.+(^YTTy3,]x\w*f%(كyxwZCFF(*%%ЩSIaauG Zlnjs@_IIv?DGGyͶm{`\kk/6;G **b촠**)(Ȅؠ'|iח:IKs )X (Ԙ{55Ł롎4..&}}ِ|cc8 #dŒ@ \\68pÇV#@  ! rwKcvvZ8?UgŋՑ B6l9~Hp9\޾x1VGGMs .ᑧ617W: pt}֭f1aGeeo6¼=V}=mmٳmmߧ2&?r$sr2HUJ^^ŋY߿(:;oؗIL3/⚛#G ޹S }}wOցfIiiMIyCFUvB&6-~~ssesse4KcQQenw_#))]]I]])iiޙO!!{!wUQ^D]FF S;EIIn]"}Y̴11VOL~}>,[F`khhnOB =@lk$ăjj+\\G Z}k Aii8wJJ)|aۂPE0nn)$ffC Ç5xQ`l.=a{yxfdձb"(;GG=JJzg~`8:n՘0BFj@Z{ff+Wv%\WV3 ɓ/bed(ŋY29|suM"%%2P+WS|YM8g`0l 'ktt{Ň<7ڊlmE~7>_-##サ~yj~^U\\*,!=ZZϞU=OMMm$r8-(6}}M=|4!|cߓegR޺u&`Z:HIIdddd;:?^PΝW>fc֖X1Po??w*.Auh˗YYŹ]el@ UrRqq1Yݴ}򗵳s`tt0440_Ғ:Rk4p; ApLT{ODZg5H80l钑[N$,`l}}wlp%!kqF8hh(jk׮]uXYm uti pR<YmmV#<RsPteeIHHipR=6_,._(/ϟh" usĦW<1: 1{uv$Y\ q(* zciٓy{{{{{..l:dd0A f'ӯ'%>2&j69+랱v jC1!'IIBFFVYYKII)(x()y xgslm5g[ZMNN:::6]**b7o>L=kCttofRشhӳtj6CC Mۋ-rr ,s~/+,lnhwffJ^^Zt L"*Ykkk 笵ujdOBP& IDAT^TqF3Dt{o AfOg@Pa奥o ;A+ hmEwb;x取^$߲H 2ffF ,LStv_$&XH-,l߬΂Y۴0,CB|})\l:a\YMMĉDCK)9Q0ہwZ3T0"@ yy}ɓ/SϢ&+b;'iA7͌,<fg嗖֯]jj+8QP얒L] ?ȑ#qyys~ml4}k>r$.7//^7[ZFrs3;8c3 ^2"E)>qqNLS`2ehZ!BMM˴`0ltt$8o*  u foXMwӦ/m&8t( C/DEij7qi`hhC}}Ww{9]KKddIIp!Luu GD;8޽ RRҴ#S@40$scgJٝy~Z=%$BB]{ lhXs#77ӦM2JJWyyCUU+ +Vpq,?΢ʒ/z)yĔgo(SBiiG2GMڒڏ (W䥦e}aFF흄[nniimiA65u"zZZz[[{IHll\\L ]\\\\L ˖޿ƍ'Ǐoe$FFF\\,APWW\YEEt>ׯ&'+.>Ü?75PQ^-+/uu;:['9GG?ܼ][[mEE O~犎>W678p֭yGF >xp5/]]v,~= SlaY^~J`UX}/8YٳP=c 11-A $Y/ F4/o(}&,bw>s&۳ [0|dzzӧ8935UZR,),EEPM@$uKNNll4n򷈈祥u99Np qF99*ss3Q\ ''cZQcd;TF <=v^v͛23 WAܺUvu!tt{oʕ*.H8V>eRR%+,%bb BBlsZIIxo [UTT]FcŹƋDD؉oZ^zkJIIBe22|ARho;^\xƓcM:H2]4]HKR8(P"{e}s}vęzouuϫNg^9BOO+!B" O:Iɬ|0O-P·|k[[眜995MMP(.$9?2N%LN)-qHi}ض^ss_t.l~ߔk>>1W7m:uʊ<- } >Çy--}pp@Ն *gB-- . kZ0|.x1}xVSg U6onj=t( e[ 8h~COϹ|LK+۶^SSO%nz58<ƍWWf~pXJK[bc]]0:繌NuUWw4%%-SS%K/[ Aa%%)V_ߝ5/w#̚+V,Z&//H-ykTT_Ӡ?>UX000@'.t:ԥ,G1;__DrrIvQRv7ǏM'NĕJOLL}?k՞k ʎuoV#;//ojj wa6#Gb98$:#<*}nW^^Vss%'' x puDgdT_YX(n"Yxh4_p7o|p.L{EG"]s"T8,޵N66jp8O'/^#`8W׻LL6ֳn%%a0m\\"nߦiDOLu{7;$$l| qsC= vQ^\ql2QXPO21bW TT\hij(GffKDMO5{}MZ{oF\ Ǐ۷caat 5į_;4ZK%ɫgDG眫Α#]FcPdϹD88ܪ<=hkK]`ccSl>t. F(1褪҆ *BaIҖ4{G C995o|imgbZ&SW0%bq>))䮅D:;  ̋;IIAiiy )/>MQ# ."źS1Sጝ߾ ~?vwc0XxxX#_(سGCP`XT{?ի߸8tv"˝N\O]Iw|8.httr嶶jk‰ Xyy}55W]Qcc9]]QFee6!ᓀަMZ ޯN ?mCCYbbj }D|T{OO#S=~yLLAjڤMMu''{ 8 ..=^KB^'w\܅1DYY+0DdgW;:.+; Ɖz˖}˖ʹX @ W8s3-Xm).q~VaAAuDHꛁ7ot@p8Q@3?zDz**&@Fϟ֖ ](3g/_V7HKWş矷g _>"!1mBC3BC3)cEha>7weswjfXXVA vnr]DU׭)UFc𡮚ցIK)(4bHz==#4t `TN k+W4] |<,-m)-mD,u` I# /2r;y+@ c!!KO\z9\ tu |69>PY>88> !$) ! 9d؀{r5!7{HdѣVVƠ YNf$v))&78BUVֺsg-RRМaQQn]]ܪU҄zp_#"33+wXaBmB4xùs67kvEVWwl$= ccssdd"%œx⡡&$'QUSV|͛/6X!~uji-#w-?21 Z`EBcPET\+(W1>>iӝ "$&'w! 5565 aqs iiǏwY3 ΝK~8Py۟7\~~椯  {BjXX֟B ״'O> ;3C&&ABB\WYپvmȱcvE|?S ;+9<;w.}Njjvu9xДHO/KN.y ˉew>5@ (m:L"Jʓyy5}'EW֖TW_0kAN~W\܌BaÌk_>BގX,.&ùs)44CnܨE߾wjn{/Z59ى־)#ٙ3BlP(;~P7kWdqqի֭ǎť:9ͪe2a0ؼڨiieLL ʶj$5X\ H֖~7w [QіYYYVȠ#ed$gh(;(sMmm_ Å{x;fFwjpp0GDg{qЪU7oq`KKyЃn$;pٳ=::RO-_~ʕ֪oR{/_QZIYYםp)V7Rno044ak{cdd2!a?//zR\_y4X).RVjnzꔕP},~ #Gb||ֺPzΗ/122BxvzPPPƥ 9Wf1yzoڤEf ^nW{Gve_˜,~||}PU HJگ&`8-ӖǏ[.|\q66&}``,3(dd$ka/CC]-CÅP6~ԘSmMqqՅikKjjJP A} D(?{qp0KʢDmASeeǎŕ4;:jqr.!]P(#G~-~ppc臀Wsso{ ?.6|]D[PSm۶ݣwoĸY|XCP41n1uu]O<{V;*fgnmJ t`s?r$6)GZZ^|"/†򂳼WWpllݻ9#+{x];شI9y~{bqWfYY\dOׄW*]\"._'j+N"QoOC󏋈psceu}2`r7 L|+o$h`pPחr%z{G/ZD^)jR\d`pre#  X0<< ΜA^--.&(-(\;mmL7_>[䠠 WqqEp-H[FLSR.ecgfcs3.c+:{999pmՂB::R'N¨zy75|yhaVZZ_=AÇׂ/ؾ]/<ݻ9^^Ƥ;z{@jj)Ynfha.NVP(Ǫ;.$$$$Al0 w?ꡡq^^VMeFF .7A܅P(:|^~xN' Ĉ NUWOO?(##@{10^UYZOW588o]?bmmh4vǿxKHdPHRg/xM-,V LttmatOჼ||+DE):gPwjLCA <~KXUUg||*'Ǐ҄8MLLL䵴*cݻ))%+lYI75rv^t)]ƦBB69P3]ka@"@v^?JJ"{ST ݸ{C1[$]GOOEGGٳrWϯYݻZIIޅ]I\Unnw+kO/ȳUP[W8gA#|3 L/.FcCQ,07..,, o?+)ivq5@ZuRYrޫW`0y6wB1O+'ԩNÇׁs>wd}rBZ̮l HSy>>kgإ ݴaoAppݻ9XYSӁD沴TvtX 7&|inօo;8\XJ :Cޑڜ7o33/RUӃ𩝿뽌KLL ? ccssdd"%szJOšw44$TU՛ Hd`;vVJǟWV%|k:15҇ ג鱌||l/aa.=ŏ! pr:{ֆسe23+@pۚ*+-mz ˜ڪ O3 z5ʕ SS 9';33+KK[ٙ` ¤EDd6 nٲV LA^^Kdx9Gͭٷ1ݭ[[TUňPa0X;4o/ I ͈Iׯ|8??8o4OqB2::)#sƍ͖JG.ؑ":sS~܅meu}rGvC03ЋǧTUgHZj1b#X TV]rB] ;?}. qI\\K9ZZ^>B cp8\XX)d{> ZA3g^22 !wET,$$֭99|| 9C h4 bƒ [֮U8th/;wFvt %%92ODQ9YX(ڪGdee>IS]Q\܌BaXX|0TYY{nUU}UQՅZ%(B#IF ca? t'O&DGx-)3@h-P!8\xnIG_vر˘dAk,'P(L_zwƯK,ZD>7 ^jddr߾ׯ\`I3ȨJ.^g Qq~cc ggi [`sؿ? җ^Y_GKK$XR=l` 榧 #ȍ-[QU{wߛxH?ﻥ',ww@tzzyb~"ϝv@twpt.e&&PҾ`}[qm Z822)'w3ѣ3g]vk_f+ 19$?8hRXvYYooKR`rr2@F gFFr{>zVSs IC1 ;`Rg/ъ!!O|ÅijJ"aYٳׯ;*sjFmm׫WՅmx..:vv7KK[Ey˖ovuաf|~~澾fEE HdId+W2TU,,THߧeƿ()-mʛD`8.%jjb{ʒ~r45 [Z*JW} .f~ fr IDAT.%%"?w.9*ʕRwʾ|9VV R\ tP(;7 TkkG@[@kk_kk[[QQc{BlBB\BBg/nW{qq{UUEs9`cctDի/?on7B}[@xQd bxVyyhs/32|$$\nnznnz}r%Çz,/ÅęihHzlx{Ӧ;;ͬї/߂5YX+ '@V[[Hw rhjݶ^jQ'v //XXXR\$CR \gv0."@ QQ;orLҎps,&ѕ+nljqՇ% feUEDd ?on‡ eKIA׭)TO)(ﳷeok{O~NK;8s5_zلf"k^ٵǻ񥮮PMCC"'Uu(s$/VJ t)+ !.QQR\CMM֭-nnYڗ`ϊˢރ񺻇44$q!jAֵ:z4654;wb۷_]d/%%wiܕlɹ$2r]-ъ8.>ә3q"8';/^xvijFc--$$'ؙ3wᄒx==sIFfp"32/Ϗ_&&P995DQZZ--"RMM>OMa0>##9==ֲ_: _SӁ|7JGG+$ s]b ~^UT_X]YZօ._b0ڮ^qee%K 3MKQ=uʊOllnQ LFXF?c0Xȯ3 r#"--) 7_z69:qN}>OJ*-,,lXa&%=w.EBbkddx*lۦC~PVZ> *mfn\YYA}}}'=?;rгmtOmI׿dh(@UTYZ^sq_Owt nߩ;wFVVْJFإK|'ڒ 8hmJZ?& XHDEKLo_TA?o{1b#7KYop޽mt ~}X ާOMQQ_w/[Y):Ν2;OX]]<<|+Q .]agw&A՟hێ^T`m￞NY^~8mrBnʪl8H??{{ofg~BJllxw`5|8?>=-HHnpp,#"9'NYX(Y#CfyyYYU\\KV:sHb::Z|h}>@ P(>R +),ͽZZ@W&6m geeuk a_xh{rh4PWIIKdd.̯^U|,`ؘ;##ϸ´L־)cٙiiiƴ)+ffVr/%^ǗYZzyVK^xy=IN.tOOM`wp8##w)jgm^^Ƅ pwj=KK+caaܴIk֕?mGGG--#98!sXX??>P# ox;&_20!?r钽]}ffĻ`P#QijJpF}}r~r#EB~5˷c] s56G֪CC~~q\\K!Tm:O|2&w-1R\D[[8 QQQXUUH7Fc~ ۰ϋLJ:?o23+X$""OJظQ9oarQek``,88=22JJ:"J2))m.+.7TW~) F|11ᡡS,,mlTݾ]d>B@ZjT[lgng1\Doz nk.>+-m}/>5A eeQgk((/ѯt"%B]0 GT $&~@h͕]B0;wF"sPutt[TPh/,lؘ44$44ExyI)ӃQ]W+pƒk^hjJNg_""\$KA2>\Upv^1lo^8\8 J\om||*$$Νʢ/'e .|,|JKIK~~r7o00ЭXA)Nlm'wOlݺcXvvu.N"Pb54.*jܽaFANNkK踹Y::]@aaY?kk)=qyT{ })ч8ڪ$piB§ْʅܹ_44t+* ȭ[u<ɩYJeq jJ񱻹鹹鵴%%})z/(ij`o GWYeeG ˊ!!rCkhh˗o\Ykçju`Pz׈-pOp8o履?7=4-h/CC3EKH,Wm_ffŭ[YX,Fq**DחEOl.*Y3OMu2|s@ CCmm}}mmUU23+q8abZ$,%$)"%$%"-"%,EMM/}BB2MO/tW茌_yyY͕6mҒ!L+3/nhhm DEHOO~NrrstΔRs\OOos qĸ[[ܴΓ'>|?|mk* Çݿ7󳨩ضnZ6AׯRRP^ ]_$;ZWF*~͛/ 4ζ6PGٻ7ɓT1yo޼b` KZ 4uIb12 ÅF]LLuuaǏ[`^{/v,9] ▰ӛФ3bgwsj C-Aܯuu][ ##aOLkly232?*)ʒucxx}zc]]eee\:X#)Kɇ{pr.8CZ(ɓ QQ;IsV]]]qkf~?.uuqltBRQ9^|cqVI߸y6#ȧWKK_ss_KK_G @ \DDO-oCǏ[:9i}PZ[W4<<-Tz*DQn1rRg砿YlatO$&~̭lÅWlؠd 56~δn|zemmIJ~'.k444#Pxmln\?x֮7ŗ^lO ۓ'~~ϫS Oܿ,kz3bq{軻!w-);ۗ܅?`w~S> .>܅,4vv7YX80` 6b@ ,oo I?xДx7ZEˋj} ƞ-[||8!|G.{0>pB Qdd$w^ɓ}TL!KR3$R ::Z99˷>,@ٙ3yyDDEE%%sHwgf"RSK/__dqrr >"%wpbq<j?|xΝspMקOM#=EE9\9?+4v=94t"n45mjj1]\o9g"),߳'k-YRVm:3#Gtko|>NN>GDdJJ:8h89 lghmOK+C" -,Gg琿<YaozOSS""•?zML/ o%?ss_EEi'#w:WWrײy{?JLOB~qǏ' #^vvʳKfoxxdbKY]E$(FEt` 6rtԬhz"*P)(ݻDpA }}od"?^ !xE3PڵMaylev̬8v,nxxtՔ<)(9:j&|T UKJ*̬q'Qx uy$==&::pj^^$k! ::Z (]H(*)i).n œ[hر00IKIKغ.|#$$}```4)w{[p8(nJRRJ|}>>$p=𑒂P(C]}Bʢ/sÅzE,䚘@Mw§rrj<@ tl||ߧ=>=}Z??{Gǐ4q;PS?bŲ/ͦo%$|˜?n#Ep^MMYT|nڵbqQQϝK`N=~OLhF Ofdd|>,=Ą}֯W~뉴4߻[! !J#8\܅,|X,.+rv=r/^]@ $ @@2FG^KDl00Y[>}ZpVe"ܩS뛚zmE1󃉊- ȑuLL--|jhxAݻ08.$$=88}vY΂! r?Z=u0??/ʮ]{ |#sBC3ٙBC7ڪmk(|Cmm llT99แ4=xд#98>ݻBB׫89iw*>rه..:GVUs8v9y+%UEX!FϊO[WT %sZةgpFFX?QvKrB:_VVܵ3aڱ~;"sƆ2G#QhŁ\8\ikЃܽI<=(>NCUU .zuHFfV뒻v=ho@"*`YYU>t|U/^~]544!//hb"oh( <>>e%QZZ==issu pҖ! uP(ha?%eڻww֯WrMG޽ݷ/u'.a0ڮ'^ii$esNj`hh":zk&u|ʦMZgPO^{r^Fc8YX0,Y emjعs/ ufI;<22{{2BFEOK+cbbϟLL3&fcfiDY&&PWfe)(]dtBB'+77Jl |@ IDATQ= VV*Oo MLWys|{UiYUu,ŋqqE.GoCBPǧy;ztJr^iiMk669 LT$*`YY+W6u H4(73],@::xBa|}c e@ tffŘD&tu F44YBO#}ŋ/,Y|횓2x@[DGHlbϯοuk #\21-*-mee%}}99۷_߸LZ@oHVVUrr۷ VEEt>õk37YX(YX( ''9 U31_'{-ippA"KBB2p8`|ϟ9A_%%-[F(;z5ʕ SS ojgiiÇP( 4?>%##pJ$g(GF&UuƍZ.g:;Ǐ{`0>Z45nmonmnknmm[?^^VQQn11nn11QQ^^*kWn׀oC=kcmJEJJ"JJ"'O˫-<}:ĉW/77W47Wg[&KN. L?ujίYY:YX(?ɹQ%(immI'sNyy  # EEa,W^FO CFF2CC*@8]0+pnNNw)$TAܹӧTt"""ܷolt;88ǔd e@ CRRPr۷_GE$x=qI^U^d#ȕv9;ѦxSt\R--m9r$}׮՞TU𷡣=fÆ/_VʒrB9frKKR򗖶88hڒ22;6Wv^Q3!!NrMMHdqQQ3gMLh z(;CFcc9 ի/vvf $CC_5995`53L/J}6Rسe?jjbׯ;oaSSÚM0TUg/N? ] .$BuC Hccݞ'OvS3 y QE%[ۅq"z ?$bh뙡""GG'{i(Z0/w_D}ddl*3"*}nW(F'tua.'N٩HQa.7omlTms^{88uu)zVǎ%%'}'Nī-_>ԣ=UWP*FT[[UշS]ȏG مAl]]C+%CC7zxDAl۷Sz/Ij``RJJ,GW<Сgl9 )fzzrW3==ED uMgFFr~~qmlT7c֭qsahE ԕ+oVS#yА07WӃ-;svRRP*-m7o^xx'U.^Ls +/o̬HJ*k|wJ.lF-SSӧh:{5ooOj'?eZg"׮U v֭-Ο//ocggWQEEBrWedTYC`(֪o3{I.]:P4lhlP;25xy Τ'M9a%wxKZZYTN-)ijJ9ܵ끡 `>y2Q;k:o&\MM~~q_Q=yr3X9<< \ذA[eeK]]uHySEEʶteƽ{;vo03''Ќ\ooV244eEJJɛ7Փ(%%LLI3n[P窩@"?GEXnaWl辟Fc꺦C]ccSlM_{. _nF0;vD64t'&<̬5Xd}塡]ߧ ;;JK[O󺻇h-iCGQo+*j@ >bXccwBf003S~jfveՇ0 P(L{ew_FF&!q4'`@@m},&$|~ǏP(_QFFE^^mT{13/TrqYI_JJZ5}}89_>2rym%6MJ|r p\lcGvUAAJ(* QZb{aϯ v w!?ή 9$t)kw78N}7tt nz7)逤$utDZ^ٳÇגR48wbq{lddA. R/\ё"ԕRBYsIII䮅>yxDєp '7ڹs,GG\DQkfpwS87c婩oVp8mmuP(^yy[B'$o2-,¡ ?{ƾQŋyxXԩe1z(+]۷7ܵk uG p!%%5ܶ^mm׍FFrmonÅWXY?u*ATYsgxx,^L%.#&T\GLG@c>Ѯ (7؜ׯݶMgլ)۷DQZZ--p<CD=p)gwvEGX,0ZF63 54~݉ IttѣYYGHgRG}tu0ioPS ߧKKrre.ŋ;@,>Ӂ6ՙ@98jmON>&& `DTg&'&~?'@P(KDYYkb~ d=wSSw`Vdg*88jjb/;/s65|Rir3_r=hi۳gFrW׻qq{WXFZHgddRO^LPnvݿ}?ys$ٳ=ī Yz) efV$'y󅆆FSSHJpO?!%|ʖJ˖Cǧ;:jFG_;?S <%%KLll[6[Z*?sDžFrw7>>UP088O q99A"n%##( $:#<*}nޝC?3=*kdBl.)D iWIJ*ʾ˒--PYuco3yq3s7Y^g +>c;>|q6 Ș!m``w.!!nAAnqq>QQ W?)mxx<$$زejN_˛cbJ(* [Y)S.H@o|ZD"LL7oVHdl ,..'͌ί^lx#77mr'\!!S8c9sccld#)y40p4T&)y#GG5 on u!ԕB Wkm}\Bz{̮P (=lp jkVa4&*P 9Y[߲g./s*/o o+ ّ#FTp‚:~xݺeQwԁ6~EG\55Y2V9>%,p͚%RbJ#e9K/]J;f Wr%@ V) _ffV}*Szz=@ o! __}sBQQHQQk]IISrr٣G/_~*.gb"nLsxQ3>W} bxMmm{rr_0!%.GudVZ]t(s祷wƍ+Ϝ1~RQEꢉ}xB}~aٙ,Y@.^Ko=''ukk 55155s߅]{e2A'UdoL._NݱC]54$<=M/ 'Lj)9VV[6]{g{K޽(]HJ*!<?r|sNqѣٳCC^ۺǮ AE\oɒo d̮bcݩu6UWfĔ~ GJ逃Ý_{33= 9i!!y/ 餭;á .vccKNNB3RD0H45uji>nƷKVvv+ )EW7;%ApK˗/hm[](IimKK+ʪ*(gddXJXPm 1Εc27Wwȑ7߿mR]];|8/Aǽ|ED慆n%{{'N޿ﬧ'*+k`pfHJGt)-00MQ#n?\몪ŋymlC°#~6-ffԵ/_ 8k1H*(6.^Jf==޻wFv٭ɓwC_`iLrLyysp𫤤h4͛զ4'rskmlT0\3ȃ=yGRv?;:32P[ (Ņ )ii~r͕+EE'P=ClDQEE;FkI^ ¨wXZ3:z0 jaqH;kE97n<++;Mi4S\|kn~cl?Phhٳ?/m0&MUU 2>}:t(~f#GRƍwhЭ pA]qϛ7>#;sIxׯM%hfv@ $'~3x8e3g}{ji3e۷?o cҒO,,(urkNom<'Owv粰P uiN٣rDB]_~ZǪ[I<0)a#&C_]sv }&+ m`xUu~O \hEwb񍍝[qqSUU O UTD/em7XX(ȩ (==++Uh aag<]1>uM1H$bjIqq>LF!!nk_t߾"" ;;*'',NI)KJzM#R %UU1ӠhY޽|\rAAX,VKK_Z>=M{u *{8#/C7d tBa Ru=^Awϯ{0ԅ@A!!A͛zx޽Z`0S\ޯ줯OuniNq( --7hh7#mJOpve8qLFF0_Z4ktH!yy..deij yM55: ̹~=[JjKVrr|  Zu@KkЂGcCl!![~%㊊^w ÇV]]߈m}ؙRZVQ񕋋M__HNCC|\ﺻq.KKͭUPZLxCCGMM纚q̢<\ -TJv ݪ%IwvtW_iK7=2MI)Johxx#o'@OYY!nt߿ !q\ddѷo}VVllLVCfgWmذkMI[.sw}}4畐[^sխn=OL|7> V22*&Q66324<+*jsqѰV7iCCӔ2EEaOOc*}uv]{EL',l<ށQ_N+/_׬Q< AiiOgUTB-OF?B IDAT.\HNr0@\ G#D}x^cƮP2YZZqx9<Ҹ׳/]J۹Sȑ3M=#Wltwyz'%T:ulRشM<LJ5]MK+=y>%ӑۧjnQU=Hr~ŋw=RRJ߿{f5233[rL^IN.ȨWT6171'>jAPI{Æhk> ͵mM}}#Ex  K!쬼ukHi關=ln dgg1CKP^;vhAXǏ߈`eeRS[|C͡ X}N;:IO_q#tX͛ψ=hhlm8BQRr緶F1ֶ}C ȅ g rIH q.}JxBzzE``_TUܴ$?&}WbLLׯW!55aݻrwwm>FnzAC %5ݿ{dBDv;iiYXPTw;SV13S06#v[Aehh<2M@@NOϐٲ={tEEyΝv^ c7ǯ_efzf8}@Uܑ#k۷>--++3g~ؿ?˗XwC99_iA3w '+{r>mVC] 6oFY06;aS\?B`Nq(R\ֶYZ,^V66ZBBNKyyuցaa>A޼i

    }Zao _NM?FgeU~?} Ø}42䌌ܣSzիW5A,B#(y;͉6:$!al,gd$T)i?J֭Sܾ鑑oOcŏ@rL81U^L41%++@X,^S󢜜[MMQQ;fϞYWJ:ڪOwt ܹ㨪E?o%%z{'v_L/sX,ŋ%O1oڤMZSwv;V_X,Ƴ p8?_[sݵĮ]= P pMl%!1c44t(D")hL:>{cJJYVVeffsAU3{ccب_[ه7!-[V/и}袂O.޿?")i&jj^ח9v̘:Pg|YYsr &̮iW<(.>9ÿ# ~B`>`l|vT0%).jz۷xyF6c).\ Y[ uҎŋ9v9ԅ&!![ư~~AAW|zPWDm uE ƺ5>F^l`QS;aÊzDv }dԵ#?2 ?)PGG^^φB~ xۯBJK+ǩYZ*,~HJ֒&hȹsuu횚=;$%6RΦA4M\%K?007իd;$v^} ʞv20r Oaak-?C]EEMEE-ADdżm)z3RD:%K==~w.gbppP;tȀ־w˛MM٣oԵ@Og<< I6c #pGe=rYBb($8Yg.dի-vv]߾ 63kZZR3v%9lS\ԄdeO)5 IWYnndput np+<|LCΙ.''S a+48CC+WlYYqˋEJ;HmbbqRR ~ {}LLqqqȼ͛լUPkh;xD%+..6޼i C g{ϟ&>HvQ74kI-jjjkj'#d<700]|΋>5!![֬YB b&>xX ?|wf_ZÇBVVԮ]khCVVIӓ'Wf O̙þq[rթ68ek-K9{N|00$|Zcc?<!RY<=㵴$MMJC>fnJ66&ⰹ>"ebkhhÇ򯵵m͏b񤜍8oNĻq#M\blD"i"R_A^^4//zժ=200Q[VW^WמZԃ|bb⼋̥e'NzTW㙸+.n +HJžڰaBB_hffUJJ˗x'L e=] ɻy3oެk''(WϢۧq_N%#gU weg;vhS-%# 0g^=_t##91]ͭUPlG ]KC] {󦱽DB&KO`pP=..Ւ/Z<- 0`0Lcj*xw`Pv23wМ RxCke=p@v-^{lmBB.xSGTQQmZ[ڸ8w xc`@?o~ͬ*b; s[9GrB]dFFrT++ʃy۷k--6DܹR\e<&89YF32*SR G"rKi9Aff#t|yb 76vr6aaccXDq&ʂ7MM]{fxB[{_FMM$Us>6II `p,y{? ^eFopLLIxxammBoJ]wPNNuJJً PAAq3e3sKz{ AUUgeeڽ{ͦM9g$?o)m$~~6::sZ&eev9##.+m߮ÇccIzkk@i Ȧ&8EOZ .u!%&ԔD\\cPW# Vյ89>`0zz$''kjj֭Pf Mq3+>~uGD쐒c$h4k?܋TU^bG}}~~4xQֶFY#"U!!y.MMGfehis⌦DԩD ào$9Ϋ~TҒdaAedTnڤ::;kܽ SSy ^kk_Bؒ6a66*8aBjNNVbo$="9#hMM y==\c~~?vw͝K7Q(4OJK+02"-!ddؘnFYV'^q6 ''0w.GNN5cNNuVVUQQSdQn_311[@ֶ45u͝˱|w{@y I** ϙ7[ H_= %K= m/ Rb;;8<47W$ $-$MZ]ZZz|gcMM[b;bh4q#1%.'(8@Kr% @^),l8|8bbhn1ZSӖQ^QVƤ%o+Jſ_im}EXX*WW؎7޼Y3~Æ+xy''+v66ޭ_u9iGDII)]J12"}|MLEGبܣAsC' ŰpO.񄴴r2?e XP&Ǫ[2? &TTD)L,AP_ߏyKCCO K .4D`99Ⱦb01Y[≏H;4Ȉ$H6[ZkkkkSRʈ#89Y$%ͺ$$ϛ7khhgHQ9A TT|%@o+2UV~K򤴮}vmm;tt˧O]円Ѭ;vh~!![23+==㵴.]dv-#;:=|"Z[%,>OLz77Gtuͭt1 F!sڵڵ,ssE~~I O$?3<܃*k鱗Ax&8-#hjJ8LlݪaZ,Ya3;1Ε…ӧqu6#3JEE?:00 'io//sy`Qyy+-rBѣF3VVB»袂 B!/H bx1- ٖ-^^fd?\몪1177-kk~Bfb8R IDATs``G HQQkpplhh|˖/^>>OYppplևqq;>lzB⿣P ru҄@ g^G}]]C55m 55jk{z@Y1nb3$ oiϝqbZJJi{ ٳ+WQmT\*+[yN@`&S'ԩDJ/ZA4~hbZo4Rm$MN.yze^^ψ̭i Tt)? yMJzc -> ޽-Wly`0Z!ŖRcԵ`>WXYBB\v}4؟Q89YGqܹsVV˖ME~H$bƕV<ebru6 *1ݞ=ᦦmӅz=n߮_wA.+@ 8w85iGG;|&k11UU-YYP3::KSDXJjAHHޕ+vm"NP.8r;^-)%ݗO\ҋ23[68 ϟܵ Fi7%YػWo]bIf?=<t)Wjj?verXXǻ}h ^P N::spPUU h(+%%C]pp0,IHx?NNꞞǎS.2|֗ZÇV~*+U..;rĈ:u~IWWZWW%\xx+SX;'Mzoqc^^.ԩk``ox*!G$.;#Wnl$7n؛\(W R vxoxxw\LM ueP ""H5PH *׉N4%od}ԅB18FF<}Ј@oVV!<_$aax~bQUcbJΞ}Ķ[?@gc $.O-mm?ٟ`ԲMMh7Օ8bh Im[}T_R{BBTۨǯRV@ˏ#48N1!=;;Ӛ5ҿ~O/. Q8_PЦMa001|һp!]`U4ܓ'll_d7Bo羅/@] RS;97ήڰaũSfizqJoѣF;w@] dʚwkk2]W,-p8|\|ڛu}}yqO8oR\|ru**vuػWBc%yyu&&rJ"`p**+e{&'>}Z16%{+/_!=MY ^}IEeֿ|Xuu+)mЁfbO ul!sf8?+W257[Wps氏㤤߽5߾>g=gl UZWia;X eeee_*+[q,,(bH˗/p] #|В[[PPX02AxÀD"XY=$g<ڵWHٳd|gZ0>;o""ZZz1䖔/!'%5_JjE>u?e}KKekHhhykʺ,]O0ܮ]aYYUoo; Ϛ8aŊ3'OQs͆l>N:kgC] ڱѷo.d2ˊB>>>!FG1>tBWhmM 6%::e/ R_ġCΫW3ccKA]lڢ^\$Ϋ,rs{3 jaidu0?tffԶmӼo'//:$dKrr#^ZǢsRnʹtjFښ/@58>>O>tͳs9bbܬ--cc633֙3W_z8IZ~W[[Pi?4͖nuf??)ʪ@__&$dՒSdbbtpPw/](EEsyy%** țw\Vևke'>22ͭk ;O5EEe?Õ:jjڈǏ1 痑\Ju 23ߙ2٣]]UՂk"˗5))e?ayaa~ee7bbb v ͡ XA9SUOE匎ԅ S:s:u*;ccwnMK+_p}zk|9;ߋ)-KTϟOYVFD}}ӟ>-yJg`_0 c@(x)c`e8XB&-VV28OT3AZ>򶘅`Ӟ̞=#|Mts)yEE]̮nΔltBQ缽Ψ</{Žt)ҥߥ-qq%VbhhAu^_p̽{p&MT&ׄ/nn}iob:nHqqܫW5ɥ/?%Ź~7ΕY͡ 4A8W\tt ffV[x15lA Ig02"-!&$$$.ͦ5ccB|(YsCå_3u q;g98ȵkY#\D8|i?|!191@ ::x16r66fSSMd\˛HgS`wPlߪkvR?TXYyC X,y-ߓ|628%;Ke% 1Kb q\WW8QwI_(/_?|hjj)`virr "U\`NG5G9; i߇<==* , 08ܹw|T{C ~~w7nn &&yѣFPyfiiIyJVVz׮emڤ|>u!*.DWW:pwj)$  *`ԀD"nܸnݍMT8m%<{Vmn>:I`0ZC7w'&ɞ͛޽r%XYQ`(_geUEDlg`qUML54ϝKqrgb"%-' Qool`@7Ȩg߾⦭[W:dH}<<"#[XXZބ\3{-_8}:q2!z q._HP;>S}*Kˀ,[F?L)Pw\\4"" ssk54$0*`ff8WvIDŽx<Ϻ`ґBVVI$XSeI!~ׯguuM| _͡Zx&..UT?oI/,llT=NO U5O;oxMp pXФ2X,#*6db*=y2A\DB7 F޽9q<~"B[[?qH3euuѤPWhhA{{PitEWFF$G vcze;G!uQQcw/9x0dH$}}#o~4d־͛YI VΛ7KDd(\!!gϾ/.Tɺr(i+qI_W"\\l џijz\sA4dƻwc`@^-qFH #d jbrmǎGaa۠iڣG/m^SLygάgffٶ5K||mVoeÇ[!CQv:x<-&?+6⦵u`t4qzCCJPcxbԵLمjjbS}1Ǐt* (Se.X,vԷm{s7(&qw_g*(NSD"44&x =eIŋ=6is맺akTTq//ZV_Ffay׉^b3:9x{]NN֠M?rqI+!]aaX ŀⅅ癛+XY) kSmPkk@77 ϡ2 KllL**H"åͥ_JK<~1D"y:&JJzSJi@{{.<wx‹mmw:[wʕ!b0ps{LSǢH++7S67v|++۷_To;:ן+13cUgϚC]-bbbS\3ȥKVGRs/ kK==_֦6 NhoB :AA:8鉸1OWHJd񱎋sԼZU% uQQ;f`ի5k|++[ݎ3  bc݇ǭ{{)͒Ya o'cPc磌9bu!bbޥKk?'{Uܹ/;s,޿?cMK.k*l F8g>twzg _Ϯٳ**"z#  }uǏWS:--a_ˋՕ޷O}碢?^HLF4asH8~hh+QWrQQ_@i+VnۦȈD 4z]yNH  ٳ96mRKL &Ej}%Mryf̃#\01{6}zz}{]'U?Kpѽ{o44t|魦M_ӧD" Y :evJƋaZY~[֟_OmefV ;q20 Z\Z^LMS[?|}ʪZ:'Oރ H# h #OTqllTWQZZ`0}C/]ʟQ u!0l)."'Ovյ^ט {qA' g``t~ !+Vfg{88=q>*02qp[TCQQ[8ܹ ndg{vP…cc݇ƭoAX,, ,ni$!W+aB&&FGXLL- oU'%޸qz} ȍWQ釉q͚%Wn8KYY\ +VIKXoҰ98rrT} ߿cM,**\\4_J@:֭peב#F prv|JO@",,WTx99;##ߧ&La2>G IDAT҅ gWА@A()>snl_yG, 99+=oӪ¾H !yK,HO@|I'K; ~lD,E$2*QVIQIZ(-n-J(KJeKdɾe[13gjwhq_{הA7SQy,Z$w1yɞ30ܙ3&KJn,cc?^ !j;E/_ھ7ݦ) wiQ}};I<I7hל9G8}Mj= "`h(t G}'d ==92={k5^kt%W<~i>=},˗}ru]O6uuFFr7:9457++c{;e%"!#ѣ]pR `Eř yjŊ۶ݏgbBj_:;JYY,L[Ӫ ^v=9}f܉ IOO=mofׯDZ1ڥw*hh|w/^z횅Yeiy),̎v߿5J^^06ց?:rz \3˖-AACBl:;{ll pxKJ>{IDՊlڤFm'IŋJI98o޼\М9&&J)Tx -::؛7BBswFGgGD|?ח14eaaU\8>8Mj Sffɕp8VIKJޚIGGGGA@̞$(8dp^mRXOUTP//ʕ2 FF$= GpBHkpp^PPmrr8vdGEDD]vhlYYjCC/c<,$$2TebbR[[ APyy1As΅ (55UTTtppƍʹDJֵ򺻻}%>>>!!~͍s̙srF|!c a3]XJԆmE(̌bcc`ee`aa`agaa`fefIUq2޼ekoD(MjYtrOj%%!,II^^^Ӡ4ݻu2ӧ\\lZZBP(^Ћk=% `ʕ׏ ;NF-,<76|[A wlJ8}:˗*3J.j3!tPCuuS`G77S?y}=16tqYciI+ 6nm펈8@2&յ8R,o! AAqPٳA!LD]`v?_._.wݹ;>AtCpss'5Ivi{~P2۠FGg30Я_m`uuaܹSeK"̟7>{]ttv||~`G$.<WGn,QQ JK=>|p~xKfTU8~r\Gr/:*99.‚X.&}͚Qki_H+|{ 66>p6x⺺^]~AFl1A f8m'Nru}?u劋ik:YT"&Ɓ3&&8I70nڈWLn B!#"ֶy~$̺uEF %մTw幍}}# NA$*nWսvpc rԚ۷ D;r+V(7|NߤMGCϸ< MN>s{(fYLLϟ-p+>>~z s˦88յ>DNoXX:Mmy`L%3ԩ5J55k_|5rrll{hš5k >ׯÇ?… EEE...[nvSSSee+W899CzAuuu/]V^^͛SN'$$]t):::''ˮfffvvv'O/rQAdiixC_SSXwww?zxx;vNQqd baa+))MEEDF7P(Oʂ>`ժQQٰԐEWWv2$$*:zz jɴw`cc x*oĄ鲲22Tw?``U\3Mjvv`8559sXA3 x~*;ܢq8*:@A]%''jB%%8֭KnL\~ByygO}BPR{ժ롡iV^^TU@(䪩i޼٧8ps@T;mb\!/_X/[&w[j!{@%&/[&5Vs:8wԊ$lg`EEF а  51AIII>}~݈} pqq!hU\\,.>=?zд55|||#f&e9a`@zzR~IHȧ$#̬ =W"8pŋ슊r FTqMXMMsjjƍTW,;0N!A}_ )PH끁A[qefVʹ5h"R׾}wZVT07huuq-paCM,-Tccp҅g߾G=Xy@D Dc~t_uu%()Ν[?>>l4V;Z@ LMU3]oi@3޵0j ZT]]m``@" ס'?CwwcVV֭[cbb08rqqx<LXpaaaMMM;vXzuSS} \z92{ox۷7 Ǐ!]GˋD"SZZ* @xLG74s:oA>JJhΟLJ'x!9;>aY J]]L&++@5 #"44$;GjBAAN_r $A5IBBa:\BBҌΝ)wnnwffV;P3i TwRAТEW_kn`ܒB!qq22*NX wGhqIO}M%\==3˗*#+>>~ ;_<}jWY`i fMM+<<<j|ݖRDXvv ߿B\啗׻E++ٷ*${';;}>;kʅ"`| 22hA1[s6ېP27aṗ/VQ9SZ<$$$MCC|*5XY%a*vQ'DZctĉ@ںo߾ӧOVQQ19%/ {{𪪪GFF:::H5X ggcccooɓ(lll###bbb?>$}}} ݧO =22dwt띜*++srr0͛7@P(z߿---gǏo߾]n]yy#G  ( k/+%@P7nd~K,ps/̬?G$ lDmۦNSm?s Qiϟ˨Ca`@ n|pgJ0'%iUqAbɓvxVW,zz$\u8ʕ **pg&TTlY{Nu[Zmo O II7oJx{{/^iK% }[xh }HK YY~*}+!ql*-,^===lDFF755ǏKJJvtt>,͍b!JHH7o^RRҩS͛ŵe˖fl/^gdd 777}6=;w.A7p zz .022m CIVZu} =NHHh֭ #?`- AP``F IDAT4'';poߖagg%t13A7opRRR===n'ٙ>s&RRRSg-?PQQ3jppfcc[dɛ7oLJǢ.^H8A8DHKKsqq]x1 @DDd֬Y'OkކjR &g",-}V>y&ɝ{7ׯUhzNr5[ۉ~>z4TCÍF()Fwp` wquu; |%Sep}}y;/(F",@]] t6sO54[X޻F(O[ҕ+N1sp;ȴ%(xd;?6˯%\YYTTΤ|1:[Ogg/Yps()%(xtJںĎu,))CUM5E߾8:?ɓϪND^I'YZ%}}BBYSǏ%N=WU=FRR:ma_T%Ç=B4PjjcL֭[xyy )MMMrrr?N X|7oΜ9#++bxΝwtt\|yT}Ƿ444_+ hhhx劊IEaÆ{Ax=x QVZAPCCa~##O>IHH9sfԍA@Bvyϟ?_|)((8~W[[MMMM`` AAE[[/Ammm>>>36Iwoi ?RUqefVчRRO}I{QJmm }(-':ч޿ n, Ibw*葐8;\F O+==wSTG[ʕz{TqQ3W'3mFprضͷ84|2 ?""رRIO/)WkkWϐ~M*4t$ܺ^st8Xy}pg.66wR'Ч>PKlEo_7q` mp}HS½{ogH}gOOg A37w_~B4vZXX흰f ~;044Tptc31ڼԓLzssiiZxEEEBe@NN?g?QMMM(ʕ+8}pppᦦF;Uq 'p&&&H$j%y999@CCCQxOΝ;'''D"FME APRR#L.''GNQx ax|HHĨ ?Tq$D*?V>zU\&^o߾z?z@vQgm8T҆_:6ݞʧz>|Ŋ8Z[Coߒ9\]uRzoz(7}۷P'O> 946vd{)Q.;@JKϟ1 Zqc/S0U\A3عSɓW|;@}}`eFse[H4>eìյl|-;;?`.,6DAe۾)~jG ,$4WUUIIiieҦݻlmm6VTTh@ ۥ!$lYnX899>}$((;::Qwttsrr'*͛OFFFxYXX Ɵ388 555'N=zt'E#CB_ G{['--]SS3FZ1Tb`UVV8g```(**`0***>$l ;X36gIw/0CX,&#<5;.-%r`bBAM3ϞeZY#ھ]311T1(2 I`a;~۴I M} bb^^AA?wtVVE[[An5 АNJq]uF<+0cSSAf&&]]}־M{} WvvѕtBVV 46'zp (IcbL}h2)~~ oذ#JDTZ幒˗_˧:N*4eƯ_o ԒAQZFA$yAAΝ;BBlzxspRQ9\!g27mR%c`@YYQ]]m``0kJssO'\篨 lvsskTww7 kjjڱcիFvm``?~LU\|YKK{ill|MMǯ]vx͛sss _"cccB?Z1BXX8//o˂я{/"4ځ Pf11֭['8dG@P0e`% ס' [1++֭[|&;d߆/ O**"RׯSrbbmm=8wPHRMcjhRe#/,؁UU5oHuRϞeBjB?gd$w#hkt ؂vzy%]UQw"`N^7,3ȢE [h?x٢}p"#<lb%)]LVV 4tׯkڳG5[noOO??>!֯W M'R%z8>>>oZZ޼)prZ ͥX""¥! $' pq22?~4v) ''b~~;?,[vQG-:-T;=<+acgcccooɓ(;99UVV`07oeggo߾}mcB FFFmmm}}}(eᑑ&&&y888  hkk뎎/٣cxyy?DٳGUUgluðmݺuƍ/_,++KMMbM5;;G566y̙3o=x`IIIzz')++Ld DZcQV666uuu111Ǐ޾>ӧOC>W@ɾ '_r&v;; H֤DE!*/h'p13#oPG Fw֤FӭYNsP8Sͦ5 #|^jYp x<qe66}&bpDCU=EAA09 L7o!++ׯww{>}JwG4CKK.Af&&ԑ#Fmmݽiip'"ݻܢ좶~$$''b]ec C gfvwEֽܼ;ae&ږram;""FEX>ok݆ijJ \p]52SRJIuV}}c899o߾gϞf\]]ٕ.\>|a;& pՐ&&?ztruuuppPVV޶ma&U]B, >|yAA)jhh 7o>qℜŋO5}988۷O\\\\\ڵ,-- VX`pss >\LLڵku%r&eԃݿÇ%%%ϝ;7t, _9P?I GC09P$;푟BVUQҁ--]͞M*ii喖D53[TQѐUI$A++#A K73SZ~޸Q 4Tq㣣Cx{[133p 00Ý4F ޽aKK'q+SL[==ϝ;LofvK^ׯU#-wZEz%%/:|; TKK; @FY32*4_m~~4?Z} p8FɓŏJJst )*#߾hQ_߀im:l@L 8$5X k\ymlF9aoŗS_.$Y&q1򥒸JOO/++#l EEEegg}SEEſ",6LJJjoo?^JJj AC{<~XEE𸯯psscؾ>w2!!a޼y~~~憎Ç Czzz888G>00!))Ʀ7ospp\p_DD77}OOϨ"TTT|yL@*pwTp!oމ:65up)(w4^ٳGOرP$CCsRRч3gu:s&bժkp]~qO?;0өs' CPԵkKΨjH=ii円W>.;0S֢]33*&a2)P``r}}#״fOq8,QqY6mR%Tի^ޭ]PPc)iSA߽+]bbbF=<̧JD@?n YXTT'| i,98`bb|xF[yykk ],/<<ڵ8cc9EE5cee';wj,-Wk322߼ys)vOOO%%%—x<XccQ{yy]rݽѣfx/_߿ĉF[nEGGGEE~zب`07_|3BE ~habBqpL}'OҬԉcj(22Ktv@zq)$$MEE=q*h.5q8 +W6޽644,zqQeeٳY@;.H TqNKk~|SR:mbR[2teffbFk11ZsQkΝ;wǎ666{YfQ7=o+ӣGutIr=fҒz( ~X#=!ZZR_T/͙jfgAۃ6s\yrVG3&'!99?vjS zzzWWת<,K ϝ;w&Uqq8qEE&KKbbbΨ۷5ZQQqh¨!I-IIɡԌqQm8R++쎪zqJKM}A܃6mRd%z^SC1=Lp^_p8AF NԔ wZÁ*.`\\(+ D30A}}ƚHضmiR1&&͛)@z]]}>>;vF\vy{[~eTMM,1J={' -/_޸ED| \adr%svuرcq-ah*Ʌ _BAPpÇ戮幚y7/IMupa(TQlx;IjddT̟QQy{Ϣcaff049blT`' %..ʆz<}!.3${87f۷o\%Wqq1ӧP#;ZXX<}ŋ***CUШћ֌Z]\\LxPTTD(k#()( Ϡfbnk^\8 IW9UUviMq h _ggXNq!!i+V(P[s膆MBcxb1/Ǭ]UVVw"`MߵK 3o?$zx^8M?ޓUu'S{ޚTR~ 8[X4(h۷{ʝٙ_Ts>zomTcc9&&7#t[j<~99ij^HHsrZ~y/,X?&J$' ԨK%߽+&S)b`_Lu##\v?**g {ŋ)7ݻ Hf?~}vݺuG!띜*++srr0͛7ǚȨ666Cw^GGȺSN3h33#?Ex(44mCp8|||ƍ1߿]ݻ;wj^h$AOOy'O>ɅzzXN@Gg/TbbQ5ΉG~Ze߿[CB&͛ݻ@bh4ZPPp˖-lllg&+;;… ǚ̬vÆ Cnggb%$$Ν;c3wU_{,-- VX`3ͺuׯsBQųf1IKOʽ{uI@SV?.ԧvP5ϼ.;HO(' L7n]4@84@$̟}`m$> MUbљ(vv+W6NO/HH'[;&&wb @Gi@\`U9ڣ!ϟg6{%_YY^Nd#YL|`XXm!`f|^K%--]114s3/Τ d_ Ƞ29nʼysfb>y) 檧gLNNDjsM20@`9TUU +;;|||XXX$$$ްC:p$b;::RSS3x H>ޱcGEEE}}8`dӓ K;E-@"ĝ;IBAr11ߨ]_յΆ;5Ϟenܨ:`KUAA-v~8T`ro޼ȑ'EEupgf~B ,[&UPP8ju'N_SSƞgϮkS;bmtl)){dma#"H'%su}u ]J(ߵ!++ct!II^P)55ݖ>?jDyyA s^Ms'DIPh˲eR<<ϟg9bL vi&$C{{OHHڭ[o;LL&%Gld`$4COO&00u͚VSrr!I.1ف,, |xxm l`RR޽:==qqy<=c͛=PVGGdeKKӧΫt}WW_3Jo/%&+60@)sΜf2o-S1..$IAglnn M,][J9)/9ϖ d񐹹՛lѰ-+; 09Ʌs.xÆEwJK!9kժ11-ZLٵ߾}bfF-]*ih(kl,>4 EonAa0DPp f͚gϞlL ##Y,``͵XBM\\pI YY~|mn,44MUU>fDFf8`w400D*.`P(;[1Xl5XN!ˬYL?*.HTqy#}{u2@oNTw!?=mWlT  53eiٵ $I[ۧ=6˖I=|> ç,vSKK֭72Fs֯Wwmvvq3ܩmaq'?C~$GDdͶ7زe)g|d8>N<<]2/[&7,,C`y؈;d 98`޾TVVpՊVVꬬd-/Okϝ;w&qz M133hiI~M*2:\--)J꺞 djjP  ;ik뉋ss[w^Y^ 4SB9n޺qm_ߔ]L͝qrΈE]]<%Lc1xnwq/ٳ_Յ;ȌPVVoaqgyoo%U%..luk_VdZ"45un|>>Ϋ@ iipgLL.֭rrNE7<+2[[=ҦE Γy,LK+54sSjI;;}PEVtt %iZ ~CvRXX:Oົ֮U9ͱRYPpTw3~R,0ЖRR{Ⱥ[wvM<<7$uuJd?Ff#={IGX+&NOO? ICCŸFÝ.^XXKh0EkP(~LOpv*`9N eBBsv00Պ XիESPPnz a"`R툈rp\ ܹ>|RnJDDo|<ѣT}}uCCmL)Rի\8w.T:-nz6n`yCCY311GH:VV}-\xj6^|ˊQQك).gSSv1 $U0uu񾾁JNKr-%r)vz#ږԒMB@0Ew`kn=O,C|\wpٌ4dd/^tv^}vsƖ<ZR4"߿7l,8CBl/\ī792okx }갌 ::m<ر0ZiXLĢEޝBUl5mP!Z(!9JJ=J YZ Q"&YJ usޝN1{_ya~]NxxcS::+u{zD"D UT vz*6${Y[ݸ 7PscNUUdA\\1BQfsJi)‚᝝7nxe}4u{7}f [588yԊ%KR9iԩGB+W*RRBee4_>`O|͍ڨwV%??AP9H6H^7)_TUgk<VV٣G||g36Ġ2 [@SS6"0*(ƂF)N %6]qtJM SZ oW\3IhHl)uJG CƓˌe*+s:ZUU!?Zޤ |>VUfnL:[7551ߏS/nUӓ2KK=NFFBꨑL,GMOA/Vbqt;00e/殚5k Y;=jN:u62ZP^+З/4ni*?d;U4o7{^\/]Z_Yr,,L< bXFF hLAa^fW`-,=yu"4}: G lSߍׁ2sݶ{ϷuDqΛ Zv;GChK))aaYPghf\  [[NBrrن n?ܿ_ǏNCC %d-Y,/IK̜r)@+("7oV@ODYY)*2M似Z8fkpgd<_eέ?ooY\~QS3l`"0|:N돍~7NOFJJ"5>/--CT?12Rnc _eeENXI56Ǫ][[7vc"c 0S'ⅅA22RxSo/ 0=PE{-y ի/y{'uwIpZ :LF&]Qr횗i;/++@<~drrOۋ_RnnmbF??+?-Y06v]RRix8(9<=קW5qv&|o':~ӧs._ wuջ{@ B(? ]l_yC4ZΩ#+W򟲰 僃ؠ?HdńObeepp8}/r 8cg@f,,\]Y˫&B `0%ߣOd#^z5E6_33kmԈ ˏ񳲲8)KQћ_V'*Hi55r##..PM(gg/_LxAA0QA*`VM"z߀]h`M(Fۦ@]eeKV?Af'W'&nё팎~᫓'EEhrK/2354$i&O˖-Yw8 "trsXX`e_Z=w. JFF;쏍-JN.a4 33vH@wwӧ=~V,`8++U,eo9'%$lɂ496v޼Yaa: y^^fCL}TT^xx L+2uiE47nnV~cejj@%3UH,Sw9s llhU7(TSRPT IᦦJO4ѩ=|GG/ W}}ݩHPNnZJosxx8޼5~gҒ63FZZѼ`07PPTʥKOo|5#h ₊[Vup#}nؐXY˜L= bʏ ?}{ S:jU V2/-a0էO p)+[XѦ~UV<}sL@ !ŰFGǃm Zư9/0pUٳի hRy3H$`1prʢ˖!?Њ}͈2?rrA8'>F/gekm7WQc^\;;}`꣣ݡ!py.[v&**/48L^X{06^Y3)`z؃흜mc~IP2n_<fO4xCd&+,lؿN`UPg9r$oksիaa..:'Nf+Onnzd290 " 8 8dfv4.7/KL)Fw`cΚSaɏu0>Ibb0Op{nbaC"EI <ƪU]]j`ƅXYrZVGBC3<ŀZXc޼Y.,3>je6qDU   LAhŋu@X,^nnv5k ~kW/k_''oP:帹V=uQPPzbbIHo#‚@"H@_ $Fjr & 6/_GmwGGyisrvPL>x𞮮,HMM#B/0 Tqە\\l2M0]*##NNhmےut3=dO}`22Zp ;h~4QWqj sE@ҥbqssЃ^jk?lzU.[?\\VVv27^em=$츸'{.ٱMOI$ݷmVg`u~=Çoxq4gc\\춶YY'>}x(9ٜ9|mn1ǟ/,&$?F/,[fdlju?a8mm)W5FXɬ..:4\zc%%H&ӫ]]hR"##"#ca42B(/WTXT&9D\TQQlbq%%{54$̔r ?EFF@wۼyqtu.PJ$hܹ|zz##11<&&j < FFFD\\U\mmݲK?_`j#K YY/[<5 h='P^cg~~NН*]\t~vB/_#2 m|D A/.>}k-55 F 0 0## VYيFC&FOXX^^fXߺ==>~:0|~ucޠ{֯lh(+Y~fnR\RLػ6?:n$&bϝ[JՆǎݏ): @~~V nx6g/4NNUUUU&& v(-l2%\0 od^i_`urJK:;Ϟ5xˇ9c]JMk)*+{Gܸ1F޽3EEѸ8۷}D{{'}dC""Blޝ|º=#Llee =Vnl,Ncim۬(^a``С{V,\(E`E]]b``Ǿi8p/-ovYcuݸQ(K&qq*."#WȈՉ1ceIIPŸPEzqM7QQsֺ53C:fAA˵23}_6N\\%OVVF, IDATQ:~%%gak_ܼxi&H:p77ƍ(Tacc _陰nϿP1-rzcfy y,..$%"#WP]ĉׯ?Jnp/ki͇: _?|B)|澌+f߾G^R03/VUUY׭3^ΘH$bqaaCC(  5--}%cl+;Bg3{ ի C/Jͭ=r$ئM(kz4ʒ220 GFӓ;q!DO"]͋i9QSf#9i7TTp7FS0Nn,G"54$?Fsr^-:ӛ`; z4‚2³gNsB)MJzassC544\gɼ7aÆqҍi;~4 vN[2fV={N}{{Gxvv0B7/&!!p8bbhukkʏrsk{{k'Tx3vvV~~?eb_L|UU PŘطZZ24_y\[-bb^m(*O)@$ |}-z D4C`aA Hlllٳҷw D 7>Njh81-@ @/^u@jUVx{_b*F 2&8ig0-ر徾7/SM D(S4sr*N\3]( 75}QUe߬{FFp_SK߽ڼZW@J33e@IBBq7l (NS96QwiiبhnH)⪩iD")<0+..GF::xhFF6oCCIIlni{cb (/]P@>>TqAe*M̼F2L еP/wr:OAjL=S$..v}}y}}y??@}_QRQr|add.??|0q UWXܫW,,p55Igg33%CCz9e/$RSH;wXllW2ؽ{ɼy|@YYLYYϪ_ZxAhuss )V5>NULk MV˗)lGsi;8h6dHH2Dʖի N(*)37o>={< fa66! + 3gVoؐhduY}'!!u ttdϟ/ 3uHR B_ow>> UT<ޞuu4__KOOPKYY,;{&%%1=DOA zJLL`"W'--!'EWWNWWϊD"76~./WU՚\vVV0H$W%%M%%MUUmQEELy߾aHx&TX# Dڈ쌌Q;vy&Hi`X\rr77"F;` .knUxkkwo/^[[&MS6mBQ0H;R _Nl!))5866@?ח:C̬ qdGE**` 0L`FB7l0ݷ|>YŃLAWW7|{{e+" Q`ZZeTT^nnm`5AtHSs,Af^/(KBcc۶%76~ wJN~faq,$\prL XFG߼YqNB!!A@ ޸Y| wrҾ|ɁN<赵Րrȑ/P⢓V`3@l=p`:#/73xq@tiQ؃uK,dgi@$$6mB`΁-))ecc-Z4___NOOnѢx]]XS90gтÇ],-UgSVCA!pMkk+WWڮZe0XX`0=%%8 >$$c;R('nj4SRcccilL*Y%h$=K$Д~|Aeek^^T5bbd2kǖhkOpLtf_|ܗq7nO+|| խ7rrvT{nX&p;;kMM20bcc0_t䣠g]]j LFkW >. 3 ? ,e\wOĦ/nmӓ4>ywJJw: 38~ D޼ZBFhQSR۸-PǁD˫=z4^ww={̝;!A..:ǎbqȑ={*:\T\V̵d55mx4K\\̙+t? uΝS!{+*ʕ(?>q!1<xϞ%La009sxU&-accuj %TYٻkמxPr7%im&~CF K-H,F{d2ƍg^x\>ȟG@/.`zyڞ9p o{8T.\(YSӶb.Y`J rGD8_o|y{Eaa = iia;P9H$m݃d(_&7|F6UUq lB)qٳkuÏYA$^J D%v^\ŎBMGbqeyiٲEnm?_dJI fe= 80%|6+j(,5?-|0ҷRRB22Seŝ;Ue_azOO4!p#)a8..v]]Y:߽몮nj-,ltD"kjҒ֞DgA$?b\y;(##bml/?˻6%+*޾+*u!$lzcn~rIX&fQ(禦/>>B07eeϴZҥHZGc՜()din⢳ybgx\ kBFPA0Mde8sh-Lw]rrsA7f#i3)`VLf6PTMMti˗-,]P8::u(`RFӫ7l0Ǒ#ōWlov۟%Iyy%\?)?y@-644sl 38訵yҷP(2<U?>Rz`עE//_EM$//..:ԬPI{99/׮5:lǏ|~Fsf5AfMXZ۷,*(hز嚭ƹsk'skLZZ8=ҥΞ]C~S~& lp떏|oN^!vaDDƌmYիRRB/oXd!99iޝۋf%KNUT$0%V_|SQ Ri[yFRR|i(.nA"'$D 6>NzCUU+zK"EEHi$R 60 bgϚ1Ǐ|',cbVMyI0e7X<<\\t^N\wجYch;pddDdd<3\VP:&0M&tt|UgGGSpll7+\٤(CCR588RV|4 GSS˽{()Ν6\\Q19ASQ?p fV%`2>|6::L3]]ٚ6S@RT~}3;pQ շpZOG==?~-)NN'O|dmǢV:9i5'0%ll,^}-MMP23sq-]`/ͭ=sQXrs@LKD޳nŴd r:*/Z$+_ ab(!!xnˠ2a8SShnf^uPvl9cII DE]i)RL IDATdAaeE(+)+M'yS]]GUUϺYX &*H)--z6{$,WR+/G"%uh5]]9SG99/wH54TtsF3nnv??+tOz\@}TzbկKAA}~~u66}}y33%;  ) C/Z&~򌌚W7QPz~ƳC'IPސHd @/5|lltuL>//dž :} [~qEŻmے1=ӿ `.ov`0p\ttdϞŐd㖙 쎎vmjz4&pllP uvc074@"xx{[pzzmgά`ས=z7oOaKBF}}U.}:gwV/]hb ޽KJ޼ u. 99/̎gZePVgE. ˁFee=~-[?zB NN5d2,Wo/3TO98Xtzi4ntt| bee+Tn̈S__,.CUUa/R=v쾓yUտ·eWp_DFyO==C99/sT|AAhׯ#>l/J~L&\_R͠w{x[ņOPee1??{:~MPꨑL,G ЋPG7*`EEH)D/!!~~66S=6#&((}2G6$VVFϯ74 0>N|ɚ5 Çoe;wNfppTq8zԕ= DdinoS{ ,zq1=gg))/spX {􌟟k2$AfȜ'O$%BWKCB2|}-)^-"RuTKϯkDG/Y"u"?}U?;oyxݺUy/hS_qٲERRt|trs 5,YPZZ81LlXMOO,Tyy o½XQnxxlU\Qj$%$%`0"u|凪ןssK`<h}X,.? kixyPJ JS266vQPǙEE<׭3ȶ2ꉈ깺ꍏ?o`_'& rPJ(1HK S_UP`mN7ǼTUY2c=z_f6F am(C$w@Cz/>g' ^=MKgq!!n??glz's/>:8E.ʊ ##u C|K&QQ}}_(̠}gxfźu r#ݾ]uRskttdB#GBCn5~5 Vػw MÙ89ْ֯{玟ԉ_{ZLL &xDډ'r䣜:UU%}F++5~~>>Ԭ‚ذɇ{-MUUBUU<#TqA?G07?v|vt=ѓ'MJJbS.|⽰0zmXX⪪W`qһw]uu:>XNŮ'O qg:\\ u88hB&JLfII[<-R uА:׬W=f!A^UU޽VЅ: dC %'NbkJI)?p ٳ.xͥ5د_( u"gd29+Ŋ?ёuu=p R|?}:ڵR ;wLLLyX.Efe= ]ktr(!g`eeFFk_$%Y訩D*ŋ܈ u,Z$M< ceE(+)+UԕW7<}''1I r} UU [\Ǔ'WA="noEwD/AY{ӧ8_yy3y&\ RuuNf>@WJJbqqGF'{5\Zjk=6]Rݻw)Y(G&CB2\^A>8aqՉڮP5/iiawmmP~VQ}οQpȅ ӟb.FS6E0Q|EEQ(G+*77?}{JBBIeeN5Ve5 W R%-ͧ!2)kFSJLYY9%\è4h臖sr^͖hjj>ie _LH(IK ww QBvKzy͑#!!S:ŭ]gez*K"Lf*½{/آ P?O6c0!!c< `0P@ : ̀: p/ L)]W\_`̱\VnnmT}3{.{JACç۷}܆6m"*ޤ(JN.xqҥH:EQQ4779ʚOpӹLMݺjŕ+cPwk%UU۹ȑܕ+u噠S5i* I#cbb/YBR^^fWb>/] ud*)A H4)g=TTĉaa22"66ꆆ g)HK 䎎^އ?{|{}J]oo)ormR3k~8&j3u߿:;bӬRW uC$2hussXC||lPfsN^nessm1~mř R߿0%KGgOgg2b)QڵREEi2.jLRigbcc 37Wٶ-ɓzF`29o~qʘmP'`0lll<7vvz_ݾ]yཤ$ 6U^ugUT/ u$_\+3vT)]xb₄Nxx'Yfee1n&q#*""֠GVEEQ!)WuHdMMPDRsDF1s/V2PBhL&:ԩ]lnF縸\@rVV([3UUo|yѫ!!SSEkk5uncIJJQ\u~o6$H;:ޭ޹ڵF+ygׯ0ƘvVڼy|Pɓ-l7ܸQ u{4}wttd^PS`eet7%YYuu@Sg>66Q.GNu0ICCׯ71,$=潬!ȻvJI)|yK~ё߽xg޽ ??׭[[yV&0aggz++ȑ  l:;tQ½{qqqvnk~lY\[rt$ȏ:ȬSVld@X_u@=lקXmyDEh   ?DJWT8j%/wֈmf1*Apظs Ν[J)}oZOOϐM޽E9VV|p}IIPYYΝ6}}wN;uú`99t02Bذ!]iJݪ^-ݱ#ѕ\6}eeͫV@ruu ߛDCߣxy)(t$))L$0W:8E&ž`h]]A`2kf*+ Y :ɑ2p!Hs/"@NʖȜePgHڵff󄄍66yj>>s^>7/ pzr_:~''&:y{EaaU<2B)D9ujUnn.#`0)"^MRzzr2O_ *n .x ȑ54/f}O295<:azz?t)rG\֐#)驣9eŋn\XTZu𙠯ﻻ⦛7X u`P(.x7:ddD|޼9r&$R*9{oq&}kG$oΤ$)yy]R: DΝ7ssk_23̎˖޾: BIDmߕ+cVMOxl666۷>-,/_~.44Ν/$;55g9srv.\aiy<'%ԡh#ҁv=t옫 uubq[<4y}+-r ]NN6G:|8'= mFk޼qqN7^KHWS!r`ʔ0Nqܞ=:ŧN=vnKr%%=G%SMmqBBD~IfS33Ú5;vhe(,l ?1=t(@zrݳ~VT~c}OXh>YbS7S^[?F,QQc`&1NNV#55**Z;**Z}16ccc^h>K%++8E4 )sq^jBy\؎]irTGȻw_ٶ{vKKeKKQ\QQS^^}ZZehh6Ric \\*)yyr%ڵܠMlck{cpp41q/mtu7&楬ҥ Ϟݿ s~qQQYWoM" `9op`V]&.K{z ``@VTL5IJ_nDXX\ l;Mb %7OדU*4t+n GSO 8IIT7KKݻ#N4IHpmׯᲲMLMӧ-?.ͭ`D$ }|LSSݨd췓U"{5enǦn##+6o^);:jD"+klB" { eeDݷO7/+7ɕplY**bY=zpC~~ʢ>9~%4Ktxx^~~L~OuVSڍͻ~ُ w G{zu#NJ{ݺ슊3s}OE ]xtɓ뭬&I0KZ;mpAy.tvc0e۶Ø9H]Z~:tf6 a?"P! %; 7o>,[&w `XX/歨 RQ{p_TԮ~C@{oW} t o?;E___ ,A$RR*B,33ٽ{](,l;ь`: {vppxU\Z%/u#,?}~V^bjkh(M޳/cbbx g88XUl[R%1iOE9>Ulh\/ KF +*Z W8uDA.XWWzYwiȈ೴T5{ȥLa͛ML gZ[_]q;~ IDATꮮ1H$ {o$~#GxpV*'""<8[X\޲zLn66P5X|VV>PDI…'rLG6pV~@@''˵kvkd҆ J7^{k Z=U\gnE^4l^T[V1|-22 'W--Mc3hNOӧ5Ϟpxi66RdE^kkIu]oDYŋ1޽Q5o[ wQ66抷og޾]zH$항L tw7ͭzzC4O__J_(}(c\!<ƛ7-jX*.dk]# kkkםwhBmm;A0Vq%&~:dkWja'kty_[[D,3E{WvP 33[׬ r%g>=0(.~&&6 ,]woo _rzݻC+Wr23㝧6b9rz6WKÝe,-/۷/8ȑ;vhU: &6/!T Dt]d~U]\<(9s&dFRZ|Pw]:{결uus<(9thڥeaq S_ 8YYA4/1TqM178JW\ppRY٪$266v['?CQWבUQ]RЈ ~vyLz;8<Ӕ4O\ @Uxy9xxkj>*.&Nd{ yq =7.;س箎ݻWe2336ZX(e2Q֖ܻ7JO|pfMM CDK߿ʶm7qʤ*jb"w+'Ok  ȠMߏg,-BC W$Cs;4}3… iZZpg[LԓbLb*bCCd"~ L>Y^W7<]eˊիF!( > >REWEEkXسxy9t RI[͛1_@R?*jWAAɓut7n\fp(aanMͯ_33/_9}:YX[C/Edyf"_f A?7()زEQk҇vdaaZ^tchh_ѣk_Mgg_TTK%c@FkkvTmm;^141쪫bc_]J:cxhQU, H$"8xy?'^~io0I55pfDihEEy,YعfMRPERII'>&'޺ܓ3g6CeeѬ,O/Mo߮cNsSҥ ✬l~tjki d25K}d'"£ X ˗M44 Dl=9n?ncdDMxa$ @%-2-ի&uRzAR?;:0 "ɊFuN*-uk8od''+P-uutZ{JJSm4\]fL9sXMLLLxBuu[ffuf藤)RzzK3LLy02aa`+{x<GDE YdA]]njU\dhhk gr-WjjO06;-),lx1RR7%3ޞ=:799gg&RTޕ_g]'*=pܹIR~ӧ-<9 'GpUdYV e5`LMpYYoB[Gt7i۷khhUUғ,?6\cr% MSꩋ3QS`iLuӊc&./^[Tt/IHxA ).~$w <,676GϯK64 [a(#3N'4R]ݥ\\lp{54_ wVZife w788ĉ//\3(%%ݛ7_wvTZGGG_UUۡCd8I|䈱۽mV{W/VV&SCxxص$''rX3;?477xrrxqbbwą ::RN6?MrCO`f <9OH[__k%%QcLJJJJbUUmUUmIIG22 JK HI Lrѣ7..*gZqqۯ10ttoSZZennxbj_pwϯQGgI@5}z*,le6O8w.DNVvf"Յ;˿|}wv7<<7qӦ(##ި |,`$$o~Zh>_:0UT ֬ 44ٻW^gЭpD"X qYZM'.ln Hww+we+jfQV}{mGl`&p ,23YXW'j6(ݻ.|* /}}ss:jhɒYX(A]v{EV[驯Lɲcǒ}ecc; )*zBKq>mwo҉<ׯCS50o= 4`0eU#h4 }}{]QRRRR*[:;**Z+*Z**Z/] CVVPVv1GE>og~~âE_۵kՉ/+=j ja!$$$$u|VPАY}Rh}})-- H(ϯ Gy!gf`@vzvAMLLLLH 33GE2\)/* q8BSS;4cJ``xއ)++xӟ?atuPEB \Aw7<Dht -(/844J鋲X,>((cϧD{ד'157W33궷o?10A7Q(<7.ȩױc/^4f啐ZA$33AyARji?=2 sz7:#݁րP/P P)44ꊴΝuÇFFf16}OZK%J&;&r̝vΎÇ^h *"wDKK۶dbb8u/U?/^4:D)66Oc e88sL => MNviQLL/"KA;wRVq\\ljj12PE^;[ys\]IXg==4ڷZ[UffVC'N70tE]õ. ݻ "!7ެK\Df;f{@LD $$lڴ^L TQ#47dgzxpΒVU/O˫xq34ZKEE=ʊQSSuvȈZtAlDv| +*Z+*ZKJY/PPW~Ϟϡ|}>. Q|X?gO28wXDCF$zz jn)+k17W;mvt@;:j|*++St6OR9- 183+[##?wV\D[[>l^5 4|L+"ٰAOdYM]]\JJ|L\vہЕ 0H 88X7UM»wph"gϒYWWn]sl<`c JhӬ IDATfHȖCgyx sRP8bmy]-FFfa Jމ::02CQ);4s9}[c?܍H$>{Vq&'y (JOO{{I_02DEybc'XH4 BBb\6[ەٞ Bok} Ѳr##Y ۷˗V؋AA_rŖJ:dGFHK pPدS01!wZE<0 #QQ#P(dAA2[mmʕLu#%%@<PLii-YY22 cW<GI<(fSSyt`n`ccin $Y&'ZY(܉f##Эn_w[+$MfrݼWS_<,,̝wYw6MvڜWEXX44оfʿ|b}}C[~HՖH[D"a_S$10,9s#yyu8ܿ?B (--mNbpFFB AAիjzSSw]]1]{:6wv֡q˗^Z*.Դ8ZM \4yyaEa(jM8]f~CCgu0ȯ@XAyz(##jٲ IHl\/9$$nΝ`QRfWR~#77;Y@ܷ/ݻǏ fzzK9jCh0{LL ..zpǡIO.lQ}uHBbObG$ WmML4@XX(FF8rĄ,/gϦܹˋ#2dUW`֯W; ()y'w 26yaި"Y}ڤ2sDRRʓ[[]+gd$+''H[!I@ /gDD8.]-_10 f/.i)w]i釓'/1] \+5⿊HM#" ݸa?bex2*ŽDK~×/x"LJr`H,}$I H%%ب)ou.'l! P("ѕ+`r?~3oleeWiozZܠ;g]CC;pg mt;rrBnn2͟?gvOP'ZАǏ8:F"T񄼼:"><҇/. //Ν_*33SsJO}YXPbbs FiΦd(qqq99II02pǓ͛k%J%Dk ##* ,Je=3o733obDjCKۏire_i_ԅЃ5kdNǾ}F@ JIV(pnWwᄚR޿__@~&&Ɂv*sӛ7/]ڢ"wjqkOSCBLp.0E6;v,ޞ*vҊZM(XLRĉGy}{;"EETqAdkvRV||1좞!֬9t(>3\,@ *(-/>1qlyA;;fn)([P(6`xy91׋Ӄ2'*20AklZR ypp߯L v\(B\TP ;;/f['o \D l˖`sWUSELӘׁ?@"{\)s.8x3*3۱C#=Bl:T3M~~bz Ic,,}}89g|۰Aĉ2xfP {uoƷɪ`"Y6ΣJh''}<$ߡQ觊kx+9۲e,2ax'ȧOk#"\A㛳;;**ZI/] cS(xecvМS0\3gp8ʖ-[%%/faabeebgg`aeebccfck&pj:uݻ;\rr9ۊӵgccG.Ael@ymމ{tu%//s*Ј  H5˗/rt~3@xvn-䑟Ȉe`ZءyznO8T&&Zl 'LL 66*II/_]Z^^hECGG6ht))%K^jrq޺Um׮UpgR˖ fdx>u53edDޭ588dawyôvl`ʼٙG\]W~‰I7.'˂Z11/srjfu>*Eqq) D\lw35n1{q|K!USSywtx.2rʕS˩9~I(rѢ.Yم 0 s=~cݻ/||Led ~JJJJ@ND"16%]3ŎH=[\]cmlTA7sC~$YY!1~^ܽ;˗MX,u"#=aff8|>B.[F%P,(KKO]fgliӵsArrEBGZJ֖54tnvs*SBٙ/_xqSl+Sκ=zwWm-&{ᶣc|G>YzzKJȵE$žkA`"֬!oBxBYEEŋ1{! h,)O(*jypbK[yrw7%\3߽<%\?חrw7p(/?͉[, \Ktxx^QQ\BB$'bxCݻ#>~;Л߽{׵e *{._vw7Z[PS[e w o_Xh֙9pp"}Ȉܵk77h~9ss[@ Տ`߼o0`bnn-BTyH$AH$BJ ?w@/.~H$bek.ͭt)ꊴn U܅>xyŏb7p0qqP(pJ,-# Ξ43 ꦝ1Opqfaa\Z8Ty:T;4gK|5Y_̬c~imn}+$MwڴZuuYEUu'ԴeW|--]Vyy%((ۡk:I/KڤHsTp^5edT'%DlmR,kם/9Q7BB2{zA.D^^}Ǐ'ih]鹆,C (2򹒒4>$۾]bGvv<<^PPgu{xy9@)+} (jN0U(pENN}}#8 ߠ"w4`*+[tuAA&;v܆ Ń*.~TqTDKKRKK-,,5G[98hRՌFFpjLYRқwwNQ7Qw`fύhW__޽QO֜=k .LG~6s睛7rEb g]+G8JYUueH%H.ڢv/\wGH33{{0؁ &&Ԯ]@xy9V#Pyy˷op'&/'FGg) &@8H$rqΛ78P5.Rwkƾ~=|]ݥ..NKZ~Caf2/f`0eѻI30pv26:zAD @=axx.<*jL;-;uu+We_QQ&&rYC$? %Ad9.=ٴiExx^Qɳx%瞞kȲ GVTIM00\'ZHD)sW{jjھB$ 0Kh*.2#+::j#ܹsgT̝zիpU\Ucggvpд[VyzEeeQM##YXWT|ػf bb^;SEHI) LPWGÝωsb?Yɲ&Gk^gXrkiL׿--hoȈI-:WH KJc0̛4AceaanT 'D?jK~&"#"cjo枊ee- 2,g9!![O|~Y;\z}_ Ȉgaa!=@ NCueeeMMMFF~}}=  RiE?o<-ZZZZZZAAALGK'O7o^vv6f FHKK߾}, OnݪFǗܹcTB ]\FG;A@tv`j)&煅'}ho?_r;mKLL|5Yjmm577߸rgfO>N+744BUkk+_pp0AK ̛Bo<==NC 9 cWmmo,XপzƍgCCpl @Ҋ{þ**Z; tŋwO|w:76!!q#YΝmmoLqS7}yHv[~~׼).?[zA?wZ* lpv#~օdR6.wy{' {JHr“3dRzJD/n^jkk!*++}=z`ϟ?ĘqqA<%IIIvv+V@@:D"ɱ9stcww$u%allc#ݼySRR̙3"""ޤG=~XFFYTT422cxyyiiiDIIɓ'|>9 EEʉb;&((óu/_b?/33ءV"-++KPP0??7s}}}ho@;wޞtwx{xQpTûƈzÝ|}x4O}06钹"OI ׂ<<+\K&=MPp'd8Ӕ6KJϞ= ӎ9,̾)_/, $MT׼# M]O[?.HOO*==7! LHJx͍jjC6(RBR#ii<뙚鹹uvvEEE~  .xyyuwwC`LLL˗/! 1((%%%999ǎ#ݞUTTtY//䊊ϟ:u۷o۷o"6m "..n?qqy<}?~b$_~萓aA999ҕT"""'QFFUee޽9{,++(s8j칛:<|8qAɕ+9~~{0!D"17VGg A*.5+*:fo޽˗rq65u74tqWT6F`m|-x2$s!44jG-gFFԍdd6mFgBcogggptnn66ӧ;:&wt:Ŧ/kޭԝ[G5[FɓJP;9ENA!.XWUNquXɵ|30y$)i߫W>f22S(cc_o(YYA͐-jj98hBtz$$]\**ZK bdDبxm޼)?Sw(J^z A!!!Ν333722eCBB! (%%7}˗eddH{zzΞ=T=vٳgo۶ /_Yfm۶˗/! ssꪪ~I*t!M9TS<|=$I_kkkG~gιq9~*]^e u -3 i!.Us"-dXf6??WVVeyyӰ;` cBԴܸ/UTDccwdd_3o< SNxrm #eLA͓ߵ "bkNG4q'O>51 QU17? _ߕozM&}mK]х)77wǎpIIII@P~tP( ehhXZZ sssC5A|||o߾勤ERRRC"Q(Ԝ9s F8B,//WR'0ښ5k0Vc=򊊊fe5feeAnyשּׁ ec0Vyy] tt`@kkdž W~~p2ri0}}__k//_JH𩩉!-\\ ֻw_w"X"4!;HXϟ01 Bzx 3ٳɯ^ --IΌ/^/^jk{ĉ'S$URoÆÿY>9(SWdccӆY!x|ӧ{l={ ǎ=^I̒%jqqtiyyAYYTQQ3Tή$8Aa`@ pnr888X!jo嶺.`[Y]:$##%+6zzI.9{|^#"ch8$6vG~ɷo8N]]*'#vɒ@8bppRrrnss;zCBNNUǏ]FFA..wqH-*++/\l2wwwDBB";;Bn OvvvZZZzzz~ҥKpaRR  T*JbpAǢP(onn޲eYsssdrlllHHHۿ۷/66RS˗/S\\ 4++kpe덍ͱcz"oAس=091xB{WFFc5iǭ]{=3fH -ںx.]!x <4=sSS#G=SH|011[77:+(-]$B|?V1(RqԄ߽۠фut{|ݏp䤉rr \>$׭>ў] xxo̘7kag7>  ̑IHs]ZZ…ǏǏvP({쉎~Ubb"A uuuIIInyaivZoo/*Bp8{ٸqcaaaV}`0uuu߿_fMii}~sӦM?ݻU{wC544$%%>|P[[[BB'^|^j8c׫+Ο8E^~65 P !-D-؎7eQQlb***RscGPN)A"++f9]d{zzjhhpsskii8qD"{\YYY;;; 3!FfI3t@s3`-eeyy&&^x=p'666} 'N@@77Y.]8`66KHH222+&&@XXٳM`111IIM6qqqeffNXeh4:33sܹNNNfe2h`6{hQ>4Qx8Ç{DEy|}㳲qEZ@߿O[=zh=mKJJGAǂ_SԘii(ssϟ?CT/ӧO ϵel`[[ܹs333ܹchh;`[npٳg e}5Ly>i6BZ=?ˡ=LgϞo߾WTT%$$xzz xx{D`J@ҥ!btwK[^c{Ұ{}{M(ʆ Ntu2$%K tv2E"=w{0%  M_Zݻ_bb{ZRL\^ZR]] }bde=^}Gn'vEұNIt0 e֬!!/2KKpttqq ^!-dCP}}MMCΜgoϟۻKS>#O 38~ (++keeORRjF`0mf޴LB\JB3v]S:s湔ԾׯuCρk(G0SSӎmGceggPd/#QۧYeee_ާa E__СC44 QT]]Ϗ.]f*M3[7&@ϻޡ$2JKry~便.Dߑbc6` bq&-,,LZ_{>zGFF=f޼cIUG˗KFC/))!!XY28T*=w3r(Lk^?mժsa@P+&f;D޸jkkrƚoʥEDЃ֬i<:zᕕܱciPV<ѱYIؘ7mZFhAP˖M{'B&-8MMi) m (AA.Z&1܈\\#M{M6\l>rd;,,F9Лw;e  Znn@'ONJbFݹeݺ **ދ܉JϯRHK@k޼/*ʳ~E+uH玎zb:Bݽ;ܹ `YۻnӖ*x[)/-zc , APttr{{;Bpႚ77۷oM/ɓYfqppdjlldggi;|DEE D"SDDDXXӓH$BBn޼&$$tԩH999­###YhѲeTUU8ZZZ6o,((())'}60**СCuQQQ>yǏ Boݻz||||p3g(++sss/\ׯ4˗|||'OMq",,Mp;yN>Ӭ$7;w((( ر?in/X Dc#>3lBSF_t ~g-l߹sGMMbKR\2m44t'OJuu-AAϧMس'*7zm_).6.SUUc2T.^|-% 4Taٲ3!erRQ4gSж.)vvם꣯ϪI߽;j􆘈v{EF~cuu11_'`S,B& ϞHHMOn}>ݷmu5vL[oQ((bӧO7Hu5…W' z^Z^WP\QqQ:à˟V۫rRP/v `!LrhbqMqF)f㉲=└4,Y8sׯHkÇsG*;;;{{:_RԫW ?x𠦦ӧ}ñ8::VUUEEEA@Ro޼I L``u***rrrfϞ}* A5qA8ի566xVV+Wֆ111cQT "''wU*;}>L3FQVVV[/Dbj6669993f8rͭ6%`0}G|IDD|7ox_t^^ͳ^ٻɄqqq"HyHHHΜG'A+Wp·522*((勢#GhyHC\`yR/^HHH9sM~z,{u_.!!`!+wX\I& NؓfH$qțXl|C[ܞY!%%_JjHm6+ݳ'  JK1S5hβ.zy#سg9n"Xs+ҷ={, wdžnOH 08D_$*ƚ$]KJϟO~V>GMZ[;K$.k18>F36m6ߘELO/rmf:,&B&SK8}«."Ҋ2JypqIKGEOVDGL%UUHkˇ22z Hb%%%{nsN>=<ϹEDD |;//Ǔ]n]ss3&0$OONNԤR}J> X,Bikk#ɽǢR_|abbjllR&t!11@`dd'\4z(.TAAAfNNNQ əFR7l>:!zJ%ɽGsll"B` sӌ$];F~>i5a7m!H_|9v،3ܹC3ao߾-rƌpsw+ Q0`e,zY::hw,Q3Ǐ|jlvvr"]1,19UΕbV4ِY^xsdkǩKBUvݺ /ZlKƓHkae5/3}ر$?B: ,,Lzz ʪj!b;9{hi>{#(6)99άYG1_b}iyV+W31+-c ++ܹr΋]ۑߏ9Y`q C7.^|VB LqBgm_Ꞹ? r_&5G+oiAZ A//Snn;MM͞ RPP`bb2gΜpD>v~YY BPp9777A}^C/_HJJ.Z(%%X111$IPPB͙3dszʕ=דdbUUͭ //(7YYY*TU{g>988~׼r(_1 ?JJJ=WUU P8&=ӌ$]iXovkahoNI)061`y@}///i.x,..1cڴiLEeTTT4B3P(TQQH<ݻ|xսu-qqހ7 5Xz~ڕ+O[0!?\]@14Ԛa\<-PYYy…e˖%=rss۷o.] LLLn]SX,˗/P(onn޲eYsssdrlllHHHOn}Ǝ ,""XRR-..}9v5=00Gm>P˗/o7{9szao.++;8 A +11wĔ7ohYdgB8qAAիct0<$%{Ƽz_M#@ vյ7T~XC~bbVB[R.^|t_^^vaeu⢳s<3e?u={vKKP߿zga1W[[~T:p~EEsX#4`WVR[bcsMAAeqB8::ٳ'::իW9::zzz&$$%%%8p`N  KggÇ!jkkKHH077Y,}ڵ999&&&/^T0 222pX))) 666\qG33Kiiϟ?lllhnu Sؿ{Ňk޸quZTTckk;@~7hNr^^^n߾Ο?߻wwo|ͽ?`-Y (Ѽ~2 ...;;;++O|ں!k.///_655yȑ# D`J@)ҥ!bP(ڴ隄 ۨTƍWm>u,p{0i!C˟nqqH  /~˫AZd#-DALAZ(bcsu} ++MMC?z UT*[K޽w0)/ow{*}R(=^^'`V:ri3;; H kLLy -[nR(U ӻmj9qq7M~~+#CH$cشiuHk1>=$+!&WS ^}ZL 8yN߃*l]]Ki)&;"5͛ǏGGyÅ NxrOX'M_8XWĜ9GTU}$%?qq7UU3?illn~CS{׽}"y%B:thlF}XD_YY^y[SpKK;:Idg dzW46mzK\<75N,Y8u~ h#_A TÇĚ ±c丸ttt޽ ւk^!!!RRR.][bE(=5D.\۩=\|¢@ zldd{)1wM6 uvvjaa>HRx3888O_C[oRRR666=Qɉ МD"9sFQQSGG2·qㆌ={:;;iRGQuuu??yӌ$UPPHHHCbbbdeeݻ{Es{`-b(GޭuN0ڎCY`yH#G߿?nI&CCCxxxLLL `%g(GHh苅 p):c^^ˑ25޺166|̤'O۰Ai]"ld$&{3ZkhdfhPW݉,,3HI)f͜`fܵyqO?ܢ]o8#DmBpқ ^-G~SN =w? ok3d\֭-H "}m11GW#Ozwo/%ǏK腞+NN᜜kCZ3gJo bX؇>mD23ӌz12A>Z[;3h4;͎F14, fGٹXYO|UU/ر֭[o߾ ]\3g,**mٲ%##CKK+::ޞf󎎎ӧOY 11'OÃ{aX0((HII Ǐ.>b8r|hnn.''x䋮/X2hp#@ mz3'2.nׄ4 47B`rZ߽uĺ0Xz5wttjW"0>..` ޼35UYaaRեlmu֯;A^^䄜#-dpsoL9~0ZpWffgϜ27IFp7h66feHˡ'yy5<||>)"NJrWV䄶n |ff1oSS4: ڲEڵw~rgٲi_< i!㗂ƔNRvqP W߼9cW.bkOdĤ_?>>+ v`p>.߷hHk:""h33M33M߿Ʀd--y-RGV*@jj777457㛛ۛ .KZZ1_c;////$?>-^^>^r #-Hb;v,547mbaoB (+<+ ..V>>NvX<<<n-x '/_LHmGuwoP(۷(Ŷ=p^us֌\d'һwϘ!aX rP '"`kŋd2d 8`y)LLLH ]_RQTZYD 4VV'-$,,7gVVڛ6Ќ0HHsaBmR]uuiκuF\=v|or`aE"=<111ܹi9tׯZ55_:L3(Ȋc]vs3z ɧAAVHkXY[1Υ(ϪU\yka1wJCi׮//oC ;EYy:!aKdCoޖ[7"hʕ+v˗311ĤUUaD8087/o$LhAA.C鰩vtikϟ0ݟ%&57㛚16ؕԄ`MM6<>33??4?Ƭag$,zڛmm][l\||||baKK+={6i[jaAJ|)VPP۷}8[[[jjjΙ3Yտڵk54 fKSs™3gBTPPۼ~W8ɨkuwZTmRE7$&NG$011޼8ad'ԢwϞ-Lyyǩ\\o𡀓u\ޅϛ'v~Zx˗,\dkaBH}h9RDqr ;zt Ztw92{F矿z~\VX[oo'>nrCnn @JIyv] CNNÇw튴?c`llѣΝK- JI)Wc̟/'wdgWN.1$ "dys،[[;E5ܰAwBIIj o?oS4I*=Ç.0L[c#؈m`;XX99\22\\Cf;z\KKGCSځѳ`XYX""h//{O,k(O ^=;,33fdrI{`0\\\d2(44411hڵAAANNNZZZ4;122b)|힞<<…zzIJ򥧗h`@&qB+Ẫ8\pAA}ee_Ʈbff=[ԔWHKTvnE׷v/Z놆6RВeA𰋈"ˋ#G֮rJMф͛7o)QTTi5AW^z!#w?_Ae˖-[QHpҐ{Pk:fCjj׽{ --Fi1&3~i)f^; ;d2e3m IDAT;/_FFn.Г-YF#-hSVXS2ğrrB+3JH겚M ֮3,?"6wA{{kI++MM23ˮ\jWGooSrN3 )N=t鍮Rjjĸ,{ē+90bb *Ʀe`,z tПe˦yyOM-^T i-j)hofffsg#11;"Snn |ަEEϞHJ?|m æ FUT4o[[; ; C-Y*" ֶ|V^QфBAJJ"s*9!۳p8mCC[]]kg' -*F%hNAAn!!nNNV:z*=%Gzz'zz.WZ*޽7=U^^C( 146Ow/}B0YYA ŋoo[@i9AHwP}gP nn݄<:O' T* eӆ$e4$Mn0vFF*4]~贵 .]1Ғ)Tg'SWSWQ@?MF<c331(//GZ@O ͗/llRCoβa YYoxLFgfILz.?>~Ou=qDAdݺNN˗?`Ҋ&<~~fx|֭n2Lᙙm,/oi@T=<'$d> @Z l0NCC07DP۶>ؿ^#"3my26deUlhw8dEQQII?ؘg:Zԅ V߼9,!$%]]D661 _bc.\x}Ih j, []k233%$,Q畐wZsѧOE_T*zB gw7[[Z]iihhm`Z16w$,-*+$5m>8  {llZ`2܌te)vvvJᤁ@ mzKT}Qcm}eLP뉾)j||Ƒ# ,,LgZ_?woLٻ7:)gDօ pIII988x;ZZXKJxOode%^żLL( "uuuu,,d~.~N^^}<%cڼyҕOlld'Qmh,.F7rrGOhnfC .."K@Lvve&ƭ CC?~ #vTTg'cWsG#ld?VVH]\ gnkcmkcnkcfD vvP'.:NEY;@?DE;;L$i@ 16i!cږ{vRPްaކ ?)ao:; ZP)4i-Yζm[&b0!0"=+ rQQN%M@^^CJyqt;#;:)[G||ĽfM8=&ijvu5ܾ}1%H۸Qg ȩSO=Bnn-@Z\͔i55̑ZvNo{V+Vhi]jCàA $|RleuyΥ@Z `Tb˛`VU[]݂Ŷ`8lՒFHD ޼ZW  APG?XXxDEyDDxhaan贶v\ڵwDAE@@@dd䟆~ٿ~B·$Q2ֶ^ Wl΁-/_}}-ܿń2z[uu D9weh+ԃ4%َI7o:S^ޔQƬdh8xrC ?YV֨,jfaa5$%0٥Kov\z kMMϟRS>}**,gbbА^HebYd`KY@c Hi T\PPWPPWU%)p(+(+((#6pyySZZINNUNNevv%@B54͓SW;Wv~AZ`2aBVcLjjц #遛VV'?...7g$ϰ{`|rl2i!PWipMؘͭ|yҢ&0 s6HQ7߈1ME_kW؍= c9_}|>uq*LMXY5cc´i°w iϿ**j>dgWN+ KqssI11^Ky:22C$-)wgަp *-ŀ9{JJ07/ ]imeeQuaaI~}r657l4!q≰04ի6>`hde5S~~䟹Lz޼;z4t?׵qU"|Fbxߟ;`b2*j4$lz+-4"b ȡ]dämьݻ .UF$9!X酰0,sY5{ݻ_=$(),[6mٲZZrLLt !!7HAD1l4H1lNߵk77HF$yy5ii9999UT*UD=o4 8u8$G0..m}r[EE& ˧O,,Lbcnxl:˗^$JKٍ׮caD^LE]="jg?xĽFOf͒6M<: } p_?ڵ6-уa"ׯ#eSE"Q45{tCP_KJ-/oRW5ua>an>СK[QQAR1wؘ-T*SR)-7caÖ0 |A@k$#f֪llnl.TmPFF@FFVLV|PuOFF@OOp +Խɓ}7oWW;o[7Q:I=zGD=COf$64ܹd. 벳^PPclhw{{=xwЪxrqF"Zݯ/E4g& d2ӟ?A /V `j1hg=s#:EEaEwTPhXec22dd()ik-2J!Ȋl<DZco8ǹ(LãG>s_K{$۷/_ӫ3.25U07W26Vᙓ>H$Ǘ:8hF% 5D2-& ZZN `K\|-"(/j?[XDRnN"**)(3NףM'#/[pz@@~B~~86ddN>v"5*22繠 E ZgAQQӇ/vq ׮%>l ,\9? 9>}Kh]Br?qv~>Euu ՞ "UII7o~ ru-4U[r1~ӧjsse2. 7֯W<|(c_KyyK(dO'񄌌ڗ/ 22jxx8lY-++ߋŋd£׮ )%/=;(/@&'qHd7]_U_B"z'&&ᐒspД旒I?B-b[$li %%0}o0CPߺt~>2+ `ё2235U *쬽a{/]J ]q )VUI?vw(| e^_znشr鍪Fkk3glDEӺ088c 6vxDTT>AGDx}oX֮[Ve'-:822֭([HzzFP',52E@$oN};}uP#l쬆CCٳzҪӫdbbՕP 7?^5ς .4 24xx!`0XR?")ɯC9!44͛oaa;9!///@l ԁH$Һaݺ6(?օP= {{cǨH{^1}}Y5*'VVw9|iX/!1ɇ[**v Ol&5{8.n?l4d GD?ZyW$]ImsB7IIg100x횳yW޶(ݻ}]GǠгaa;̔h] |l .ZBbc#"PQ5NNZ?@llɒE{(X, JN>Tq犊 sdZdgݟֵܹ,hFFHd7U_"}VVfQrrBRR|RRs$45ܼ{[[H)!\\좢VH[I:cAdecLMLL !ܓͽW$'&BΟfqㆸ8x y]^33Iܒ%TTDTUEUUTUEWL5htbA^^{_|RI UQ9N[[ j[_ >ZwDg9/Օwo Yba6 _f8@,.nJLHJ*GIr.{{M)Y&KW55ڪ;:j962>peffիN7뒥T144QVQ;6ԔVRѣoa_ûH-`ElRWɭgb=EEM$֏9ڒPC; 599= %LO?n};"wbbssOѺy  DŅB DE녢`+cb32j89i{xݛ7ߎJO?:MOZaƵk>~@۷/W36`m O8;?A#\+' /)iNJ:DHtt|3܀yy9p!$%eÆ[ZZAA.^04bk~ !'H勝uW뮴ۣUݺ:#`cc9x;2m5 ~ ۦ Ӻ;kk;ΚzTg @ B22䙜564565؃B ,"\BOLlrQ?e[tYC IH͕ !**" 2/wnެ{/}/P((uCLMMSSa6}*ćC^~%*"[\U=)頤$D"ѨW0 Ȼq#eEGlزe5C}7?bccywv* wСW@'XWאF`BsܞHr.@fxRREttQqqҥ\VVP''-),lxE?`0/v&&&صˈr 4[$'sJH("ra0^bHHjh1~}▖g^3e'B @U\ 3`JzU[{y soQQ==#͛u-,T)?\T.lCC:dNZ@ "aƕ+׮9{Wɐ/ ZB{cc_54XGrrBdلjm]FF0?|X]}API$)@lm^WYWY[܋-b[RVV]>-G CD S  )LID\킂=ۮ'"p*.J@fQq[LUUGbAր>}~[ffꮮTz59<<|GR|f);?;$KVV0*]]Cxx8AMWgi֭nn|%jN$%UZ63D"Q_ƍ*gn"ޕ:35.. ΈL()i;~X,>Uw IDAT%22k^RHMMWXׯ#vd)$m@@H}HI9_:dbbdff[RAaJ|,,~3%`p)! "$.BZZ`~NtU4333-4? /;qF0D"ٸ/=jNu!(((3RU]߷/2=cO%'>_OijquVm!6\A( ;wҬTop>',==IΆ_lrn9!ǗNL`d,-佰RvpмqÕ3w%?VpxSSGG-33,]5C[?Qκr%/"D! ĖS#44t3' %)='^}Trxaa9ׯ Dm TqPP2ⶮ9͑^V[]VVEE$֮r4t;}r% R9߿@tݾfmJr{{QLMM){oJk@aM; !|d@ Uݽ^UncvFJDLRĎzz2{2 u.ب[Ph}ZҪbb33kmڤ䤥-ɸwSSB C BZԌazZy℥:BQFG1))wJrs/fRsu&%lt.)/)ßSυҖv,t)ekAvtFʋFopt_V((Ȑ 4 d,=y玛k`/Slf/KJNNcc7_0 &'q/&ax&z~b3MM= /^N Gxb/Ɣμyv-w[_.8~<:5_Qqᶗ:;ut.>zʊˇ3M+.\}\uNN'OӺo1i]Ȍ!yy));;lۦ'*|똘\R=zM nUU{nP\g7L =3<kn{r7J 9K<ȨG+=j$LfOLL;w"z#.(ii :;?zՙr-]]CIIo|.##`k z΂?|}[X]!,NMWJRO;B=40Q@ 5_S\]!++涺{(6$͉GCCwccOCC8lRR|RR|RR|OVT47􌰱() [| S-RkWŋ^^[app\Q>,c@(  AU^jiy'7.i&22?7.noxdrg&ǏGC"y кOSW\*.",lt+0XS;<@%.n¼%]vduȑ {we)>ͺu+쒰6"HBf@wHtt_%ef@O/hf֓‡3IĿxk(wA荶~ rlu-$H$,BEI-YtUSBrrB%9fd~Ts UV13S43SbA, II.1޿=y_A W)){`p;(zz 1MM ggm{{+M'RSbbssyx8mlTj߰{wohY S'˗\\yfT "w..9VPpSZb!MMqZBKDs61Jkaag9?Vrroڤsڹ7紴ܹׄ,ȨxiZff]l>eev7X lRi^,XDbCCOYY IU]݁yyf7Vmѿ4[rrBE+hlN"=:-{DLlibb244t~~~6Z100cGh]]WHWCl[{zFD@H@GG hccOXXnTT!GؼYDŽ%x<̙w.{yк}`Ϟp$ W8;WV֚x ǢXO5QQVVPgg==iznЄI\V<&Jffk圜(O"#OR}{3xK2oiûTkk_ee{ss/鿘PQarKVV~UU$1z~>wYJJ@GGR[[4KCKbb+޾[C17oI Be@N2RQ ѹ +5-.n)z59((\ITa̺(_zs~=pEUoly|޽TO44¼=<}ۍmk.TTDlY}|J 6o>%QQGl ʻv~U' $ Ufe-pWKKZQ5Fߗ?{ wAAA7bdgVPX ֭O޿?Dڵuu))Ga55MEEMyycS^^P/ްX|cc ֆ@1͖ª@fիUU5Ϟe/]ehY^qys]Aʕdϟ1t0yA"n}@bAd )0:9vMbbŚ5R\\}|9vJ^BETUh~oK 32jr|.?tMwR.V5w'}}gg>EJ&IM:t赨T >w:ǢX6nTٸQehh<1":͛uA<@,.nJL+Ԕ rU%;y2:&IK?uT8"y55"]}$V]]vvV >99!66Vqׯ,Z#͛/_.夹nyzꃆ[?%$k*OYY2o@fB25nִ.df SS+cbsr+W.upX#.>ݜ{"i<~I EFO9cAf72Eǎmtvvp7:y (;u[>}EֵcM$VEE$NPG[[R[[RKKRYYx[ՃUUդH$ sr+(TRVRex|;5*-Y__f _'3 %%glO dv$&;%++M z7㓷oo&u**jgccuSk(6ŋ>RƍPV>00 DEDxkkKҺ׮}x0Q5gj@}[xt,yjG7jk;##c08kk[HѺ(w%%GGA B66..:Ԝڱ#78xՎ 2;XSj-rH$2 /3QNNHLlrffq ,''q ezxqv֦{l S]A7ʬ(-I ~ Hܿezz ˽~=6hKP Ћ  011DAxx8oEEgɺh[ZByJJ(+kMI/uIIϟ%\ {lWP}f\p={yy9%^\mj0o\j)Y*.:qX*-[V?z%7X&w V& $bbƴc|C /+/oUT\u񢃽ŋ(qI;;o6:,Y۶=/ABOï@ (Pnnׯ MHd7mm{cUT`mms+) *8^IIXRr! sGZZ`^ӽ{M>}IOp!ԩ)kkUKK/k+jjb*.]Jӻkoz 4cٳ6但Ang*ܸ"(kG.0a$QTьOMz ;bggm77]ii2X ͽOBb߿<~Ƿd||rl C"GAaePsiiU!!vv6oqw_3~IWPRREbbyQQʕK--:Զ,*jڵ+{x@qR$bKK_kk؍_] !)Vו7̶ѱ:z_"CCs~-֭==)li+,l$i41֖+PwK&++8443 2׷o ω,u-sgdԾym*I[OO_zp8ºuסP{ܩ_4A&&TU=FZ@(О=++ot>< :'OZ7WmB?Ԕ VVwttm@ݾikʕy}MXbqXN ِ/ ZB3oJgz2?<Ʋgiops{49KL<(%?EPaY@033]deu'1|&uZClY}xT_dj1޵+)eErr YUS1pX A$ss##SR`˗/޼Yˀ x<'Pܪ$M!O`aa{|Ç_ǖy w}֘thI'KJ99v&&&%%a##c6O`ҖV+nٲ UU]|1 XLLirOOϻu+$粷ל;i3U0 9;kuxur!/rJNr;.ݻ^99]5J?GѡQ#{ڝ;iW:Xw;H@ׯ=)!,<<R O] #ݺZV 8!00>,,w^~"OJE$E"[--}ZTLlɐ[> Dccӧ^?eO[:d[[}A 3z2**jj'$-__p\TUu8U.yxyQ d -/**Di]9XNH(.~,rvru[FcM߶MWG2AdrcOA(^^X,nn-[Vb8k˖Ǽ{g&==#w*{\Bk-Q;w..6dn#la".ٳ+WȻ2 Ojh]TRqb:!,$$BEolgA52OSQlh&meo۱㙰ғ'~8ͷow]`O@ +*22j|-/o#+e7JOGWZRR\VRUՁ;:jA"bO9ו+N%%͉ɹlm5T(/$[v0faa>|؜jOɪv kG"QSPȪUK23[-[q52=9;~<*6IK?u./~~ϗ,xt%AO$$5>> // I%--@9jXGoQ2?H/)i14߆[::ڒjjb{ Ett|0<<|9} *ʗ+P0QҀ 2LLLVV.%}[xҴ ߻944G@'2rV{Khh޽;v.YB2..vv$g,xNɦ!nd$&joy{UU DȬ!f\\7NZW zq N5sr!!پEEay.} %'âyUmlTHJ߬^-VwI\g[܂;IzTDDBJE@h:odff"ߦV]diygŊ%4''Ҥ|X}җxB/^YY:J  *.?ZD":U\S,ZjcWPа W`e']qxx"((@EEֵg9BB≯r% NNvZ0=itgOċcUtGG7\>B  0?U\lۦUx9.$uU\kBCs|}M-ŋTU SU]qc^vu +GE50f@ @dQQl' FO昩=$ɓϟkbc-[6hlv6<%2=LTt޽?2oo۷¦z /RWWzε::`=aaa&IIm ߽+y4Ν4==GGsq2\\̔.]rSiМ37x{.744olyyP㿘7UW 8:j/]U]kKNݽN$jiI̛bmwOVVC/F+2 )IO5LLLkʭ]+e[7nieD'3h46=:&˗:f33o W~xΝkm籔pVT jmkk'< @ B+֮@ Br mGec$9elOhkK?oG _Խ}+%OC PCCCصN>%S1̣G_v2:xA38+&8*P&7qnJ`g\LLL~~VEndzg^5/NC^ul=?oO׮}8rߟƢ*fft挍$8d0.,,22W8feO=q"HZZQf$%?ߕ8s東{M[0cc/ 3GGѻwH$fe=̬^ommciiUhDVLQKKrf͟3Wuupdd> KGGJSSVd|TBAaճg^L  /XYcc}@kq{@{ <<ի33%__Z]_E))h4VOOMW++Uz{y^X[i]CJEûI@t|%Rut$I-YYAzLMvw_˯$9"OE%sq+)if "RyGk'NX,£!޻N:D$Ε H$Һaݺ6(?օPǣ{bbh]s'̂Kb񙙵11iiL*FFrll,ԯ^zPB=::Z[>jd$Gr,[Ct]QfP>{/ϐkAСWٿ>WW|[3W0X[FyE[rs..ڎO=y wf b^^}HHO5|^^nn4t}'hy^ęׯiK$&$zjZ:[[`O'ٳ皤/_OGss[[89ٵ$V^ZZ]] J(ʤZ.EJ66j E#"nHYIK􌄆愇p-[V۷,C#qq% ;v)җ^^]P@$ml6nT8 5 ?[{zFXXH6]?eGlc"A֯W{^Rܹă.! ))Od7ijJ+S4]=BHGfmw/P,CUuAL4ЍDv# MM=,Y$%% )'-- -- %/)@$\\98X?"DWQQSIIsIIKCC7RRZZ+@ &&_sp.fz =zǎӧm||)z (+{eGWW\ܽS{օ[1?ûCCOfe 66ssess塡bOϐe˸6mRҒf;00^VV H*<!Ç70z:xmeX%М۷ȫlk 8}￧k6KrYXz*.odeɾG[[j"֯_3! h4r##脄'O46ˆ\^eD" եk QӟA2o64ttq/J -b35U}{uF0-وDee;33ڵ)Rjp8;k;;kwu %%U$&{z ZYبcx{Q J:tuTT  +i]ȿwDErssc}߶fMM)x1ӧ|F|\Ƿd:mFFr )ݴ1VVf)D]bv;]oYu9 2:9tUZZfGl{{{A/YLׄBBw ]cI?;:K߼)lhY쬳e$NbbïE>N%1C9ЍD (xcH$2,חٺUOJ_Z_PSݛ{#">3:)/o),$)ы/RWVԔX׻Lꖖзo ]e۷O~|繛.%\033IIף(} FۋKQc h]5q#ٳ³}XTTaUUǪUK7n(+ Sϟkn}㧧'Cc+O߻p>bbbr˖--}")x11El%{&#o^CeМ gd) pu 1LLLo}e'""BBJ||/kdnn54t?{]iH[cJJg| X즡sX,3=.n@w/\'-(՘LM+򥎅\NX_d-#63H$**2050JѕuB++mk뗗_E.wm7P_ Ό-^|Νkm'nxZZuLLqnn=//$}Ić3._Nvw_<XDEGA)!'.dTY KH_RRXbxROCCg<}%*66jd殚XhN^ռ @( XŅB DG%־.8+)<:Quv֞Ri,ojz]Aa')>4),lܳ'bEϞ퐓70a_h|~aex<ȑ7 e{nؠLyy=b`+W7x+,@H׿lnhG33UR@yqvW.%ed||k6>{LTtj5s54cg(wi}x__0::\508 ||K޾~ %%11X qggm;;%KE7&+ ?rRyy==]  ?nnFFrtH cc/^|e@{:^[<11q}}ٹțFG1>23kGG1bvvtRiiA ܺ҆KQP&R+cbb$"PQYYAj]4DpssCBB%%'O кA" jEOy!!98~f megcb?~dff27Wvr26E(W8RZûTKK_kkЍ!I !99!1bbvlp_sr M\-IJ]])Ԛ{+/_vm9,}wqqQIexn۷gs89@( Xŕpq mI{8/ @,.nJL+ԔQsp$_^M:I!Av튨~}+cq8|Ts23v]KX;{—.9Pbqzޓ'VV xnӧeed7`ݺ** 2 6?rwbŒ?pRX,>.ɓ/55ev6^NQ2z{Gг3U}̙88O!H'#Bl쾹t@ /8.,ֵLΗ/ J55%56mR[6E536#kcaaё41Q01Q@ V[/ F\'99K?rڗXm!-)ɿe݈Db]]gV";kHoܨbaB5Qxoh~>2'Y1x" k!(T:5LTqPP2汊+44֭K.⌏O^ܶMر9''qYY`8HZZu}}w04FdjjÀ[0c~:C"#wkkKR@FFW7mR@C^ge\hs]]C<غi_.8y2 hC^X©@;5zcc@|nB %%vv_wQ_,(.nsuձp$۷ƴꤤ jHLHqhh|hhb``|tFcI n||ōMb14GFġ ҟ?FGzQ G )p66.Eŋ11$e77333''ۢEll\\Lp233qqpr.]JÖ[SSϻw%ovvlhȨ53S|ّQ MCC66ͭFG-[lh(kb`nD#ƂzUGGa7Ȕmr!/rJ<UwoY1ʜüyQQիή:.gZtvjj2㓯^<|7jk~Ȇ_Ha QQEmmc䤥U o"'Ih7ZZ  QD"Q\|#Q${>> Gyj}@ ˫ >kj_#3 *.J@fI7!{sǦJ5k>,~b`(@8ׯY<|c**e%u άY'޾ӗloirbdڗ5鞞;fvk4\իpx֙3֬t視 9^^P[~LիopXp0aBo=~).$)ҖɕD ج۰?<[67wMvABA !]:_**IIWY' s`*q<)e08vv'?~(d%Ba{;Fbvu1@VWBaR(TwWJQQAAD X,))0?ÿZMdr8s. IDAT^ϟL.,<>_Z#PLfx|bq|>[á1"WRBP áרB"12Ab0HEE"1/ZW*/]z{4Z! !"bСQiVڢEދЋO_QQL"(++C6%[j;ȑVFY f UP}}Gvv799UUp8lP#,,{ ˯nu{Wq8D]}ll쌉IHH=>$ ӑ\IܩSs&Mv-6jZ[%Ks}BssݻEII9>4͚6dT 3B0!ΝwMs޳'XK7&[FFx1C(˫VTT'Swqq#W| ~ LپNJJhsgP?V"7%&|ywbq-,~?u*gw   [npx'O!* 8jt]dJZZ͛gQ2qTa ~+W;pA3fllt'Ml54UPΝYZd䙋i[dt-Ç;BUHFll2֜S}Lֽ{Ejk R. ( &gggPPP*.]]iӎ'$'/T vNKJZ$.6w:ssŋ~_#)7U[_?atdylEtVw7C2i4fxT*\J#  h4/ ~;L`r_~>`PX8*P8Ţ: BP]PȥðX$BH8~1l6G}R`wws8a?~px Ng<: p( ((*"UT0$TRB)++p(p%% y O&Sr^;t鵣ѬY'OvLv mG>=nxvMd!/+?/"uwmltDݻL{JeaHggY3''c \zv<{V'yyؐ!'#L v@ttOw|,Rbb@ (ziYlE}}WxL=ֿ>\YFv!$R>23,=99̤Yܖ-#ꪀSR^PRBC6n 2~^rFFڵc]J WUVUVV> B8f`jnhbneaݿDKCCgnnM^^mnnuii3/00Puu5]zwgϾu"@[[СЀ RwoVRWN=?t(D.P(rMMw !@^\?:tÊ㣣GJr«MnyAGGv7oy3Ls^bbkj22 ;tӧ ?^"T*s--EZ%%MG ӧ#,drpaqCD۲, ||UU1ׯ/v-n s_jblY?2SfN=͆:ȑDž[{.'ϯsu59i]MM]..[ӗ9;i۷,~l\[>uk@bFnnԩ rv-N?/T]Xf_S( 03RB~„`F䴴P::>uwv2::4vWNg3.&r|"@+X<C1 ^jjee C#h4BI MJe Bh4Y` bw7n6+"/YZ[)**'F+ VVPRBJE`pl*I 1n6(Uw}()!A]B3߽ɍ& fám&]ZZ(;vܹq[N􁪪W*_|"-ƌ;vA+ NE* ,, 3pt4"̬u}5YY/+>}`NN)`F Z6:]R E]NNA]8;cz&o͚+ƯX1?+ A ܼ6>aCCzSS@ 5*(ea"6mQQg;:'Nv9߁LH>[ee͠xQAADCM,,_ܝSSS_!/33"L]]M774Tq tW-[NUg?:~}3!S$#8*5 N02R߻w =}Eio=ླྀ|Og$UV\O\d:Lߞ]ϝ}~Aʕwߛ?Ec֮>_CBBN46vĚk0dfʕ7ltBl옯ht:n?N'O3tutu1:?~Bim67wZZ(`\ TShh`0jjX IYY (*"1djyysIIsyysE76V7322R34TW44DfS{!\q$nǧPJeq{}yHA3::ʇ ߰!u„}#|p83)h4Vaa۷uumm4 I Ν;Ǚd2L"H? B$RRVgذatt jk @0[|ِ!zPw, 4 u?Fee7<)ݲeJTtLĜ '&F.hi)A^\ohl@'15.ΧCffML4~'tXRqbiփJ2رϟE/]zQ07>hQP7ήT<-vvL9uKB ,=&fD8pv6EE #Fjի Ξ?3h/;wޥP%CXO]74txefgfѣ?޶?accguu[UUkMM{}}GCçNWWTsp NGGYC7T VV ?~,+k.-m@SSZ80LD@Uv0H\>hQdrL.M@WWNgh, E*( c {lɔѠ C(Pn @CX\ Yիorrj45S[[}O@1i46Ƭ_2΢L&F8B@Y`_=YSq#o۩oW);BC0JK>|h,($ B}}U'' ǸShjjlll"ZxNHpKKmkk##u \.ÇƂv999ssM''ɓ[XhkQ,+k.*jͭt58\ɤ;+l·gh H%v**ȷoܸ񶶶׉1}ܹG>u`Q珖zyw4={J#*(F]]Gyy D(/oO0}}U###,xm~VZaa}NNMNNw\._[G $tP hp8 ^EFzy8##nkצܿ_oLq3jնmҭTҭBF!~x]v!bD(z{ﱳ38t(TZ5ok o|pv6wp,$DJJlC@*(ȟ={ ?YQANI]FFqLL#n*7{_\gj&vpu]D::Hq4>gΙ[AΝw+Z+B$k}go;.11#E2/uo{`eodm}isT?J1(((11zA~~1cAڵdd裛قDmԒwZvgg7K:$)YTW54UWUUUW<0ffZjjjjliֿ{W}VP2DZJF{R恙=/nXLo~#䔔**o]=~BKԴ]}+>_0uSTw y<qy`w 'k0P5^**_`8 V@p8DxuݓBijjhQ㩪b LLԍ5LLML4MLut%I&S@㨜%Sgg55d*$'{ȑVUUmշphxb0r͏+7mYPPLڅ @dJzzaze__`a ަ}X1><ܣ*e.gfl3R2;ȶZH2 |k:xt`'uu99չ5995dL'{˯ׯO(>g˗_RY;w8JcʔCZ.͗ٳOd!n O0PU\6,(KO_.Bx8FOڵٳwg2NN~~ׯ뫜?# ~y޿o8x0t00S$RKrrmo.o.'TOr` v%@bbͷ23v>\y57w׍~]x$=}@ :O*,**IBqrڜxpk(0=Z[Uߌы9S˫5ĨQVǎE> &Mڏ o܈ؤy= 'Lt8#q Z fffnvaƒf6@4-,4͵͵5UTDUxvyycoo`hoohc} hʛh. #oZ`_˼@+eeE0E}:D~y'ri4֭[N= Č4ML]kQz޳ Φј`7 |b@B!p84`P(bp8LEEaH$B!0$)30if>}* p9mme]]e--egxiBc54XMM%U}}U==]]U #~xݶ dhqu5rr'Mv-⥼LA@qÏj gN<:p[DGG3g\\L\z":ӑ#@ԩee͙qҝzv{/^Txy]a^^MJJލoC7l*>_PQA.(ϯϯ%|@Ckcaecge#Z)xiiV wr26yp3ggk89(B^e(T&mޠuuTjC ~qáX$(RRB+)!

    _UerrY,ž}3}}{s'LKdyZZJF ziԒ.EE;/[sTVHq@xYp`h@kj!4f w ŒW*_i~ A$z{שaP(ĪU֬I!mƌV@> ׯA"> "[&3{鲲E͞=m|KI 9k_;ΖC0܎~~;H D\&6v8"sZr]]2_E"hh`{s\~ZZ#++[ǍrRWWSV(I@g djssO='bb!!׀s߾KhWYZt@Fz;WWӞx:]"** ޿oxիʜj:`ggmjD''cb ¢OK<)+(LBC=<,ok?SQQ7fݭT0AV[9GQjQPyk۶t33a ttQ( Fوh4VPQAP 2A"HyU͙I2s/a;w|%i4&g08L&l>_t:ԁbq<ӎ:I'b7ӑ IDAT|> |@ aB! x}Q"v:0B0!ΝwCBog17uu+++"66v)z5>4BccuWW?j*OɓF2D&~C33.0i?.튤ŝ=T{;֭?lC| pVi!}!0P(dd4'k}lci)Bիo>~t|##O)u+޼shhm ɹ d0w++s}}'&F[XhI"Ibqg>SRҔ2w6o%c_1lEE<`4}ͷƌ<gdxA9꿷Iosl֖-SD,'ZU qh ^:rL 9)| pX~~OO^2?$r L֭dX콥e˭۷9;$%-{a55mgd%%.NƺOv(+kׯ+߼XJXYˋK~Q^rλ7ֶkh`-go+ڔYVL3=V^4{x}ӋJJ****heeE>_Zdom04ZA*)!p2H<1

  • hD^'vM |h[խ4$RhHUDʚH/Ε~ʍ|ջvM _"7o.64Tv9ss͚viW!}jN[ `WK Ν½{gf< 0>u?~\rN^^x??^0C@HWWVEGpC]xrQQg^n[s L&xn]vq1t8T\V #N77 ^쁝Z^biggADĈsG*^!DE,ii]PPk߇ъkYQHS.dhj*; T9u^ePw4by^Uffgf|IM afV}[wvݻMM]Z';u c/d6wzO;||/kooC&bq)&a24NgT*,6Sc2,чt:ȞD0Bꪜ?…::ʠwWO0 Њ1q #p8 E)+1$ ՕP?Рl oɬ{B0>|h*-mzcee+/PQQ3ts3;w} -bq__$$58fece3}+<_q8<9GˡC{ܛ9mΠO i.?$tu1)LN˫UQQۿ&`&ڽxy>cڬX1X$& T*S R(L@@RY`  y|h,)i*.n,)ijl@M ckO$ڮZ5m|'=8t(TLFOۅ /{zD]2&8oߺujT Jrrr4i"ټSRر'۶_r˖dd/Yr MJZ0x!ZH\^UxC hPf+'offa%#cmۦ;G"6#cܹ&8yr^I?ܹWWSiLM5_ϖvRPQv!bNg_fⱲ)tr OBB6ߕsYi ɹ dg9;_5>~ 5kR23K._oggطF͎8;lAryЌ;gHI]>5)ikxӲX̙nO?;wl=ZZJ&&RUWqK^0͛ ~8='䁋 !׀رMM]׮IBٱNJJh{\夤#G75uM|XM_$=yRVQ6M7nO,ɓҫWdfшɓ`$B@00d-'pu5u'ko4BccuWW`ב#)NLbQ../ܼ$..)$Ě5bcE?*S{鐐7o.8ȋ ۾=]$@./^h811ΞJO7mTK SZtӛ7 Tg~]^\"uv6f7JZO"$47w>lKDDP(x֭tuU^]aɓW/k/^|u;:f05ûu'$RӦ9CLC %'>^OOUܤbs^s֭={%o(il,)i*-m..n,.nm`@鮶:h4t]+ZCJ3NWQQ 쒒FPԕ^H(.''=ZS~䦥-IǚJ퐊[[RRRRrd*l18 --g lޜ6z%K-^P#")w[ 5Z  WDF4i3..hxt 3f1XZڒ=x|٥Y qZI %r$ADٳY/^ad`:i}BH%*M~0Iɩ>zIffn|̩Sϝ{WzXۺ_[rv6\s;uj$lrKSSio쮭z'OJccƎv-{]]!!cdNK˿xuQG+++'8H̎~4kd#u%kcH#^8uaoogaâG9lܘcG ti5 sdRRAXmvvun~̙AA.vM5]/ZEJK~ rq1QU-yy--nތ dZZJWMM]]S\ܨ:k():cxyO~05]AIS_QW &gfenk-,#*|AeeknnMNNUhСD~nnfݩlRZGqg2"ǧ#]ׯ3TcѢ$R˙3QB֥Čv-?BWWBTWf#Ā!;MMeQ.tin[Vq犉ID Aw.;,VBHeK^ Jص+hL7iW;rϞ[L1 6h 1XZR-pt%>p`Ɔ ҮEXZj\FL!} zĿzUa! Dj2Db~.;x0#;@0p!fnli-dP(`rؔɕ+ BCO̞}(ȷߑS}c$Ӳ+"𤤅t"qo{;m֬ᱱcdwY[~7npx~~[N限 OϜy g㥭-CoENN]&Nd^hkNQvmuBC?:]^RVT^RVR^ j,TTmltt|}tlltey(*hvc'ˮFJJE]T*!7ҥdC΀@0sv65]Z|u7||8}e~ HṖ?xQáoj*k piN۷ >F$=g/l}>ph <^[WWfa}\L]wxpժu;v_Է6XwQmC]`ófq#\.o;UUL\ϦM.66x9qqd6N87 _ j+3Gu7o.&zca!DݻE"i8%%vc!!'.^G?L$mŽ/;,??ݻo S!ōGڦ|PÆ G^zbdɔVyyKii@YY׶9)X](&$<ٹnHl$a08>4<NͭaZZJFcCGo pxBP(X,niiyFEG`ccwފSS|ytEEAA}di__m]K03ӪT\H1inC?ɓ#]}]mmsѢmVGG92+2ҫ;3Ν˯ɹ';pYCNNnժ+V\kh<~a*ή>t(mlts*.ԳÇ˖ Ġb޺U_vDG\Im=ϩ';%Wl옥Kͮl H-`v'@ VV:ֺVV:fk@Q_߱lٕ~YpL.DrkQׁ>}ꖗOeoo$Пhg6YHMM%j o|pv6پ=pdH1r߾[޺u+`++ֲJree+@__B(8㵕hK/?}ZgOpHpiB{;='͛F>_`fI &&.Win|c@ h4ց O4NZuulrrܹS>{6K4ѥҢ1$䄻Ł!X=+$* u $ Uv!ܹJv!A >9y\+TU?sQ(G33Kve-''cq@@Gss9s?>¢?Y~]5 ׭[o/zz*ׯ/2pdًfLS(dvݟ. R"("0ҥb?~S y''K@(ff?,,兿wowd08d2ō$'\M((3F$ ZZj߸;}zBppµk $g_7lΝw ÆuG-_~JwMn%&FTDjپNFFŋs%~xrݺ x/X-E DNu~=gϞ{W3w()>zȑf<|!>~LiF{Igg7D ֆN͵,-Nu㵭uMM5w5~ }};w-]~ ꊏ1E]Rh67w߼ JT,/os]JJ^]]L04Tv]}Fcm %%{p@[븹GDmlSVVdrRSwďik{WSEz37"L<<,dʴilr|\ s8 # ,Yr9<ѣaҮTU38yrP IDAT϶H]U@@@HH1!Bp z8^RRNdl^ddH'LYYs1/*so4ggm}};ˢ}}=>niW+Hcٳg'MM5][0m Ο: {{36mmӿP3g|Y!ea0\T͛| +_ Cdz%{>qܸ!ﯴ7UUBP|t16V/( 33['Lz8)i4H>zDB(?4qЊ 9Ϟ=Bvz[2Οanu\_gҶm}#,Op`_=v-gF)5|}\9!6v,w(FyyKOvU}}G]] &&VV:3f* K`~-)#82kF)*#?E]995995EE-b29@0uu53ԖrГ8LiK45 Nw7ʝ;rsktuU&M1$\V\QAf08rrr\͛Jff?Vfk--hP^|몪VyyǏ ALNNN#,RA G_c wOu55mAAG5ΞA`dF *O-J`੸n*P!!n.?tܸ!x$wF+D-yݢC2wdc7i$炐ʩ"#ϬY3IL1p"L47`*/H8/VmNp@z >}>|8sѢ1zzq~Kq#o(GW.9N.LUUL|iӜ%fM :s&ra;87̞=bǎgGiffҪ\ƍ˗GڣG 8ɩnjnljjat,,D[<^B[|GiΝ5k1drrˑ>`J|**bq1!zMD]/_VFG>>fzЂjHVZ[UOOg \P߹Si"rxի'zzZod%%Mtxa ] b?;Vtt|︸ь]%$< }{,ҐYdjNNuV)' ?zoeá]$hi|󈜜ܩSs&L!_5]UD%~3^2߉t밳T\H13ձ.DĜ;b$;ٴ (*]+h__{__{Y{EG<޶-Zwa'6̠_te!)  fysZMMΝA2;@@OϟA$_gggOpP'UUL\ƍ.66.G섅]ok. V8El !XccodS ̨mpHHsZe`.E$vvv6޽@ ]==%3g2pR"p B8r$D,\-LNLLUڝ;BCNg~k55+V7ohun3sz?EE]1B@H###"#=׭;"bO*0rrraaҥWĽVMSw=֦.P 47 uukTֶm/]zsgP@p8JJgtWxO]]M32VK(_x%:u\tOPU3cDڔJIEH>i])iUI$ow3||l|1s{ܙs^ܹO7YF`E=٧.X-R\\xx8EDYii?cd("b#`@#"H%% w$nn6%u))7($A<-0xM]%)))sjSSMTRn4[LAAmAA-%.77>~SDϋ+vW :Ÿ{˖"[Cc8䤼)#7o **z[Ε`jEmmWP(pDpQغu1 ̌[w8keu%&ƙw\zYa0hQQ&A@@DŅ0ilN<#{> ik]wPSIC h&--9--ÇUQVjψ캺˗̜yb60 2]t wOJbbJ6j`0y+WHNNVg祰0~abB>~ dς;Ɔ13 @#7AA.ׯҞCels璩n4j z) s~B7󃞊8;;Kff9-v pﴵibr޽3fLzg<<66hQ8ciy=' ftishQήܶN[[\XV?ŋG܆@#l55}%K}}ʬ̴s2i{D,[veTF]ZK 򯴴 `вBB Mc8)\|^YనN/11MM5O4+QEQtɐwKCCjK!:u/^3i[o {O&bL$,g*eevv ֯8^I"E]UPP[Q A_p"-߶mIL̹/2C5L*)i[+Z^p?~/_rGWA 6ͧnx`3gJdf( GtcWub{>9 rrxPCC?~_[[[aa:D"رw{xŠOZn|==W-K)3.`^?;JKz[eeeeMmm -!/##0s$?D ?lm;D(\$͌311`Ab{~Mu=|G5{Kx˽䜀Av0/^с?Hhi=~˗2aa5kԍalQ2$ՑE$~fKAAv^S]W;|h˖E(H$> xy"//cf~+/oJO/(y26-‚ BA \bkb2Ďzrpj 46b-,zz ̯@EE3Q rF44tLhx/XlOD]4-->g̐W163>>{?~1yCa KHIӕ+g aQssS 6t$Ç<}}3ͱK-D̑ @#b`+D5Ff̘Ɔ {hzz3\\y1Z+յc=HF~^)U>`sq׮pk[.NFS ~;u hݺ+ٕ[٩^b{c9;/=xu|[yɉ^}~xRb7?? Z8Avv7hhH{y%Դ΅u yfΔXF]JJ@QQT^^F9x<>Qll'02Yض..־aD]squϯ>^JE?%pٷ(+y@w7!557.˫Wh4jh=\ Ruu+EWmvvUqq=DlS4[Ӧ UR?>~ץK')-ѣ YY7nl22Ҡs0Cr6MMkkm--9DG["ZnH("I{CM Ԅ zvX(; 8Afx Sȏ˗2_TdGdcw \s݄ܻwߟ?"--|ܹLKy~&/'aff:yT^^+k{F,wpXW ps[ͮO 8ȢI Gį_?g>CwF,۷Y[7Lm,`0hUթ߿WXZj@FF-R|U]]reנ@t3`lWݴ˂6zxYYXP_<0r^lC!?/JyK7mx+:z;Ts rCD̰2ZbWoݺS.ֶ/97yySQQ]g'(E$%$5С*" kt)uliwX-l2e [_QW{{W~~MvvϥRBB\D4xyQ+4ޙ5KJCC:'D"n`Ћ+?qq_vΟ?x>GkY\ܗn,WV`gyyչ˫.*'H ZFFPYYHCIITYYLFFALnnzzӝB/?'$4=#QM0 ޾-|77yg̐`k\PWF P׮MRGCtv]\"8tua`JS"퉋))w8T@ZZD"#DŅ0ik; QQCqHnm=~W㱱aUUϜYkYj'Oo~#.λtt}}%KF zW~]iB:G0.ppX8mSͰRk6ov,wU}ںB&y`xD5bb2OH8дxI11KiQJ**7o|نO$+_/g&}[hǮfIQ䒒nn>3GLf:w΂5Qvu! ŋrrBT466_m//c>23xccEDYU\R`euɓpŀP?z7 ř3^̻tiMSN(ZMM~ՖS4,߾U23 'vGF~+WC2榕f(ϫuumiiy'O>bfFE Sl(:EEMs4˲͛Cn!IChGmm]ϟh4*&&c`~}ͨPS041=ևl:@ Q[?nlDEyTTė-Sqqѧl1x?uu[;*+߽+|ݻºv..VyOSQ7{ҥw3qD~>? Ůq&"hhǕ+WLr{]kk֭.ӧïH::wM @J@ ֶMw,0Tk"/DF~c /))?*+'\D 9|xͯ_ϟ>{񑛛]WWqr}} p--8K7/:vl-l`a"Ť=6ZݻNt8܌"ohc(ϲ{Ӧ[zS2DxccpPO^ĶfcØiرCF_`'1E55{>Pҧo*|}ykiII.sRF!9mDDG\73*. :zt-??cuuiuRV֘y ud֯VR`n>$\9;wki޼iO;ϯ厈W!!~VPfڽ{Ү]K71#7A͕͕卥m݌ 771f]l#-=,_NĄ>Q-gFEeKHkmؠ-+gw7! xܹgK?:)!؛nYȄsc23&ڣ/ 22J j03gJ_?WWWQGG~C1a [q:Vtttƺ p榍M{). Qq! LZ¤( ~fLۻw)QRURݹsYeesJʏcU4DD_EYK&Cз?ߺe?QR}tk^}{y@ mJ&or`L!t +쑐0 *?&a?_Le" bc3/88ݻ"Yj< y6ƂDOk |}<}3gLl h*Y߾ӧ;qq>M8q„IHiP ;X zs}++ms:z嶶7UUCBXa^._~Ԅ52R7.ԩGa/^9sD檪^VSeesUU e :OR_^^x2ZKFF}Y'O~^eKǮ#_ )Driiý{mmXZ^ w Rv+OimHvzE]fI3RUM IDATn9ztQ  ڱC3{=m0=_"ެ]]L&&/oY~ܹ#t{! P ,g^̫i҆;A(/oz 8x3܁II~GG]GGݦ&ljjӧ9O?矤9sdXXL¿yH$_˖;wTް~~{޳~sPѣ _߿0w8]"(ȅ/pК'O/^L9vEb2h` _w>\cQ66Lvv%MU\55.<$''|&J=Q^;/AAoV݂)S\]#qg-sń)!VTxy%ov- jOtc˛7ZǓ| 663<=wM_ƳOpv^Jyy9,,޼zԨdvvc~J33JGto#*8'AS%PYY+Wbr7ZZXVz_g׮>xWoݲJc iӭXgMMHKnedw/>5+--8VVYY#e ‚y${4a}}UZKX[ZZ C׭i}Qii'FGttݻ>ڡPf"h4JII {@JK̮IHݻm h&%%Q%%QszE]aax"33H UV6[Z^_L\\ѕ% /_~WUoxb8(ii?("ԩG8\,?f޼E ACg UQwr 508&:|H$\ŋVVfmmyGG%KO|uu˗mn UPٺu1}*<)!a(`Qq!L^p8<`b =~@ ^͈yܟ>ni鴲Y. z( H±cklYtam3u*֭!![>7\Yw>uK)22w:_zzzp3>`bB>mz ˕ cja=]Qm 3xgLD"Z" q|2coe9,KK?#g紱 y K+ÇY..D"y(g; EGgQ]ѡCqd2蛓_Q7oگ\9?u)+kܲ%="bcNMNvsugiyi3ytr47^KMNyyU[#O]814T;thɓfΔ7jfs66Lt7:>w&/=$!ҥqXUF1OIL̷ὂ(c^98( .===AUeӦ[k\ *'G5,>HTeq TW ޲a "LE-FMMrIZ\u IhBZ/--Qq55ɮ.|qq"Ǐ9KKV MJ#EXx":{q44*\)@FF01q5k.FDlSQȹka5::̙czmSI`ȡCkHjbbO+'Ow츻af{J|)z`iŻwud2D áCk fJJc~yyaGǐU.9 S;!<{ւb]LzHss/ 0.SY¿Z 33!4KX2jH L@H٥vvIvzF@O?>>koddtm{Ю]ፍاOqp… w_rb+g|ɓ RᎅVL.)F*.mK֭k1dt()2TQeɓ ,,V’QZZ` a'0R%CDED;>~mSӫ[6ǸʕPW׶q㭆!!okjRS3?H?c]SF)*..644z`4Uh&!)ӦY5kTJCڵCB6kiQ/?r ##uׯQ7ozzz<+$d?!">{QsQC7Ubc##[iT> ",0|o>D2g0讬||kQ( Q3  md2X? #g<61}P(Νˤh DgnϥϞ&'" |`&//u}cKJJiuQ^C%%%ݫ266Ο? x,Avqqٽ{wTT-#ZZZ"""rrr?~8zhjjhvxQ(ӝ4_ZZ^ =n|!%%APeeq" DŅ0y"&ll}};wމ.^g#Gx{{S=*A yBVV ; ʊac!Ŋ@cI\نGD;>~s˗mƺ Q(?r !!4fKQQqʕ3f qttu\\k\}rOBNN EEѻw,7!*. aՅ{WBWCC5\^Clk; 註e<## }}E$Dxx8&nppܾ`k;ǎ!!oRTZKRO43GZ''`Ӧx =QWyy=sz`9s".Z "=o :GnypiܻxÆy L`&CIIÚ5?~,1 GsYss%ٕ'kk{{y&xygf5ZZrQSNmiiDFF***p82|ӧO2e޼y/_DPEEEìyѬY888z^>)paa >}OXX,ѣG)G=|PMMMNNW[mTTŋ/_F ;Njoo/(((!!62h=E(*""bgϞl ?vX_-NNSdZZ۷cYΝ~'-bskm$. Wee3܁ $V L;c,5~^ij w ee w 4{&G$:htݲg=cY,-,-w 8 uׯe _ᎅVaLM5#">Nz_P?QS7s|^zxyg++kF$bh&sWO&dvFD|غu gsll,P6e <QL@w7!99g{3g50OHёޞG[y_Rk._յ5<<3((Gݴittt͞=ӳ~V?~R^p˗/iii/^8ve322|||<===z}ܹ'O655p8ss;w9rd8_]t33p8Ç7nHپk׮O߿Çgzxx477jh7ϧ>;wf͚5vSSMkk}˩杖aCRHȖf .W]MT 260yO[~bbׂ p2_-R; ŋց/]]#Ŀ㉎!""~~4 PT\8g 7BFΉۻV/-m|FL"#?hTFUu*S^>,@ 0t767 W¾:eeא"`Аʪطo /oC;qOpp:=$䭣cȆ :n92~[FX{AA0p֖zp! dE]]Wܻh:SNNo޴ص+@ Q=ȁ0333u* geezE-ҥԱ1DUcHii߽;ݡM.T.]JKK[bŎ;/_>{u O:5| ߿|$ իWs`HHիW%%%gΜ뛜LBQ@hܹw]6`0{>Ү (*/{\y+g}s2VVFyxhm;Аɩ[3-|[ ]]7/ڵ#G\]W:eĄ*-m8uў= uܼ:88= `…pP[۶a @q=ݻ---:q#hA={#$d$ ЃM?d??˳g-hɇ.HM޽ ~JJrٱCOVV^^ޭ[ر%hjjR6bX72LLL BP(}}R)S0L>>/_~QBBbLLLꊊ"(JSS0;B pK. D""?mڴA7߮AOqq ^VV-ee?6g찲2_bkYHH y{wM .^fff9P: &&/񪇀@L&9҆U4 CV w қC}apppɞcRW[ooo ՛G,Cm[#;; v 8>eʔs>}Hdo2226m5#cP-aI`XUccwfdẅ.XO&L 3 sGG75<ܩ#'suHHϟpB+ֶѨ|..VtX)L0YWqeeU] g-HhBwYTWp.eeMk^j;ʽ{;;7/ű$#牯 8YY!}jG׼yYZۻllnrro`Dp8wwwuuu...--3gvP(y__Cڵ ؝_b=tsuUUKd]{0/#ÏГ~j#T#bxaԜ:(&�n|ꤓ.H(ʟ<_?Se`_PPJuYZjݺ1+*_VS; =+"2r&ʫW._͍eԩ߿!77w,,,8@٘l``0کJ?E&ccclbddܷ.?=rq''z4]RRBSqqԩS8|=E؜8qy |}}{+5**w/?}qiH; ,\Q&x穩AT\DŅ0y! +?ё;AjLS#GݿĤؒAAZ%NEyMI.%%wqMMMMM5CUUuC)5fgg+((XZZڇ3gϟ}}}~߷Я̪ٳgttCSS:!aWiiu U˫ٿ?z= i//{k[""<[޳,iVVꒇOsf://MuIIhWFEExx.///@GGGRRcX SSSOOlk׮1` bŊv<`888֕^__occ?6lPXX8ݪ BBB ťǏGtcߢkS4T$ǎ_lYrrraaabbԩS{޽+DM^E'ٳ;w.Exqq6D@@@#fҳOjܸrpG1&V߷/ (A\ŋvjKaa!bV^9XZз߿PT_9h2@߁[PWW7_hHܺukdcF(4< ԂFg**,8]RR?>݋62gdӾ[޾-r;wP ])!/63܁Њ'jhxkcݥK}d2=?T=~~rr|$FΡCƗᎂA)(g5,]{# wܱ33*+VeeC>nmSV>1.ҥgW&D޺5TYPaauKdeeQ ُt ۶m篩iCPx{{+**ҨZ /8UKSVQKZO#9]C;uBLl99m!HhHƱ\!JLLknn'N7o޽{(_~??.~~~IIɀkkk>>>CCZz$ .looowppغu+}-//¢ֵm۶+Vm#LO/}gۙ>~HSssƍ\]]طA X,6c UUՓ'OR.q#Q.[J7uOܹ3LZzGTG>|({A`(.\HY6FDcDkjZ\)\H=x`ԩ---HEEEG&^:})S̛7˗alW=z4k,11^FNNNvvcuttDDD8@ (*88xBBB>>>aaa<<!===|||N"Ν;8eʔ |iЦ={lڴi|||gΜ7OJJRRRvqqtߞCj!)!!uAmm]nn;Auxy9;nY`JX{/̜)ak;P ;7khhOKI*o_W]!(+7HM]z/_z0NR桨j; ^{ ,rd q43ys;gAЍ/MLfKH]Һv3keeM ;z{z۷ڑ5G$r&VVfb8}Qrrέ[vFq:GDDP޺*++oݺ`o8h؊Aێ`AAA$1qWc#:֎\[. xkc<@.##aP߆ ::4ԏ~9lmmؿwwaA$6m4#88/G&:z}mEףzgDjt@;ouTV{p@25A֡CqMLznOed^`eڵ+++Ĥ=zsL6TQQcǎ{577>[ݓ9==׆jʔ)͍M7젯-,,zzz֮]`uƍm\fyoὐH߿kk蓏ݻllln[w(j,''_NNÇ)ӁU|TQ4C;aaN, I&)!L&ו+utbܼJI c:,\xر12BM6֊| @aaᄄǏKHHa|l޼*<<P__APpppXXؠP533Ξ={!X[[,,,X,ƍ555offfb} L&BtaUU~MrbCׯoiiupUUU WVV%%߿IihhwDDD(Zŋ~5~wp1?~J)Mx/ `͚5񔏌R+ >~8mڴǏyqQbOMպn}j;v籔i|҂1ȑ# pB+6laeuU^ iz1YYegW\wݽ;Fc`P JIhq4d2/Y\GHHNw;S9s=SU/JiTq4$$|wMN΁111(|~P]>Cd÷bж#=a7Iiiך5;:iZۭz173\F[ CCXF YlYqqqvv3( {K8wjvvvNN~=hwq`ע'O%%:O0ݾ}=wFxc|Ç"u ϯ+"S[>1{{\jc3##O=ukHvm[O]q-xyǏRRR˖-fbbVBB`ZZZ5D4033|ښ%n[ 7EwqqqppOLL l,߿ @UUOR^^;nwNN͛7?|?==}׮]ڽ QIIz}}$ 3XY-ڳnr1nnϗ޿5(??gW 0,$d2ַÓci){@"KT`*uIIs)ꊊ"n\ (O\SO--9EMa("m"''N40-mNr[nn?jk|vs[I./_47Ғ{M@kW:;5&̩x ,vW׻ƚ^^kҀMuٷo߂ }4ף zPtslupP!Cݽ8yGrƍeѡ?EKK(HIN~S[[KPfjjJ́(%%MQ+V=$$0;qS}=g%= îwOJ3r@ ةŋbw niNΑo;fcКvIS@Ak^li\ 5ffEErrBԔGHHAcGA|Y 3/_pg MLPźׯ^_"))YPP@ؠxmv_ 333ׯ_?xcSWWǏvpp&%%uvv:::wvvmktt411ҥK;11qwܿ2{ţG_?00pDGp7nظq#?މ[YY=|ZZZqɑraï ?hBpaff:}{\ttΉ]aff=??gw7p8sD77a* #`0X`ŏIIB~vXrSb0/j.[bs3JD7;3Ӡ ))E`055 uq-12ٸʏ:Bin|;OMeby;y]lh {^LJ@||޻w\1N!vp >s dee++111ݹs'''֭[;)=v:jjuwAGô@ 얆atHə8"4C PBTT geed"!!QSSg݌n㨭ر#\CC2<qeca MŹ΋koPjݻ=}>> r qCF.8~ܤ>5o32 -,-&(Mem_c#₀0.cO}}%V۷ߍFFuppؿ||˗/ppp8p@ZZZsssffC&dxxxdduppĉm޼}}}fff-,,\~}hh_`k&''􌌌pNNαmeggZ[[s;vO\M``0ӧOܹPhoo'OTWWz֖h p*rUVeff?zhѢEycikkknnn IDAThhxiuu7+OڵkN816<]]]^ǏoBT9ϟ?9rfBZ#G6'߻h!%5FzG@u36ֹ>C"jjvvO?[ ٱCo(=ęm77ݻ9kai߹ 99!wՃ#\\44N]]' d,]3wdQz]QQzVVrh{ q{ݷ/fIHvG$KI;:[ho Hwr2ҒE苎v# ?~y͚5ϟ?/++3gΎ;m)//2ɱ(tP7O*.%7'rQ+ (T?5n#x43@~,$Bzp{uuuQQѣGF+;w/*****ڷo_mm-!o::lln pGE9+~ݻ===W^ksH:;/I*ڰ<3@uv'%}7[[{ޘ2)m.}QQ"@xy9]CB ''gkkF3tuTCLDMMR7 }ppdW""v؉\\cm\ A9kGF0**"&KU_vGFFp8ܣG;;;GFFN>-//ͭonL:y/]$ --feeϿaB+-h>777g׮]8yDVVVUUմm]v1bXNC.C Fϙ3Dp}}}>>>s |HZZں;vqU9;;sssM;x񢢢"~_ EFF ߿pph!nRHHss9~^o((de{OU=='|i6vdKq300!+reǏ8.;gkk_Ahj[RQ".Y\sFG` 4z$))_8q…'GF0l|K to5ٿ*p::7LJJ7TZZ ' t-[fiibk֬ӱrD3g.=s18z4EW43J&f)g!}$y܁&B/ttggΝ;ŽpCCCVVV]]]voԿ3pޡuB/>B| SPPHKK#NK%& 3LBDӦ="❉?^lm#W@@q)T__͛7KII~56: Ϗ{;<As3JQ`h+B 3,)u[`9 "Я^\\SrqvA_ܩSd\Gٱc*4.*j~GG۶ܼVB+88:BAoqq7KL$!ᕒOUtÇ%%kB~>|(,,\mmrrwP &+hѢ3 ~Cmm߃oGPH׀gEE7""IJz$Pz^RQ9?GGօFSߴJB+#,eRRQQTh\7<< :\=8HڏKJzݸBֶKIy?}Z@LqC |usadceq Aqzޟw賴!'GҦgօ{i/ho?re`ww߷h5pihhx8VA.pc$ Z[ߔ?NGed|h| ~=QxDYYLVVl!)-ml52B-b2v mY\'`Z[{&l6ݻ ~.dVm==#GGG`k!3K*R !!n337B;QSnkag"ap83+!!nAApNNWK﨩4Tadԯ;wF -|bq֋' ?…KDII/.n8|x#UN3gw~۸q]``lYxٙ3?Q~+"#Sr X5qq.s-RQodtѣVVd~~Tu#-S+V&&~ёOLW5O r'&A1 A 0ӧ?hDEEEDD8F9_z%##χeBNa~~~| wx񢲲2ҥK򈧥RTT?<ċiii***"""D qhg==vS\ܐoӦ`u^@@@PAzs*5Uٳ< ʂ-b2򴵵/_:@RH#Qq/Z57ߜ>1DP Ǐo64Tqtjjg4޿l!Z/%%wrMݻիkBdXX]ݞ$!7nVP͐nIIE((7-T֯QYjdtNbtr1f 1197nn߾6hhHH8eĒӧ_?nJ %m2t׃Ȯ]{mceAA%*#׏eJԩg~DDϛ'ڂN/i$%}޼˗45eUmoГ'Ν{t˖kyy֋_<3gL kf_lsIIs4h"%%J˗/WWWիW_>~8<$$$&&f?Cϟ?\nݯ^XVVGTógϾ}v#Gttt ž|!E baajkb&&XhN>>N{ۃ#TF(+99?l-df6O&D/Wy-嚠#^(^<ƍ7zPf "hJ)ΕX\x$<ܴʋ`ºNGGIĤ{w$+w##߷x{).]znbDJ" ((Ǐ۷xxA0m~ܟ8zds_d|R%UU;w^3F&XHo/gݾu?hHi73||3#66.r޼c{ܭܿՇG|שK̼q:{{C=ܹs ėX qGGǗ/_caa!{xxxPP &óeJJJ-:{lll$yy.yyǏ=$"&֥C@BhlW^î+u7B! DS?V7vPdTf^ 6dAd䮄O~~%" %l11N ]qШʟ]vl:B abΝmuſVMM..1Bq" tv-b2%(oJ>#yQn[NCNNO CyBe~2 _47ޜ9c".]ڎDJFde;8} od܋:Xl-Zz] fN |ijg,_pvvx@Y~ɴ4w7UNHplx]ZڷR!+((?Ԉ`0 f͚j|]8997o]vi:MF"O~IHH&ܕOR8p!!.dHK `0NNV p8wc#₀u-bj~]Bx%#}E@@(߾ddD+ba'C 86弼77;Jٝ_>8ؒ`͚QQQ#WZ0[TJ ]7照Z S88X3qumrȉ풄ϟut(60PАq͍jAG\%##t_ EQ\\lTPH.P8N\EӨtv pe \CCCԩllkm~~ͣG 5`csΔ}/}=3:6:)Xܸf U I73o_ڵsSu3ߺei?vvn25]xtZJJd! ŋÇst4[ Eɩس'S/EEUwǻw޾-.VU_fn`^~񢥗W[p7nlܸЛ7onn/)Y5qw33]\Lo<6?2<}}nn޿u(EhIIl9#!₀̢a-` !˗ūVѠ Fذ̙3CChj{@1c [[{Pawb,66>>N^^N^^>>N^^8ٳRR==IIp66833ʕjNQ]ӆX\x/V8yrѣ)s战@KZ`l?sFkj̟/C9..==ꐕ\+4H~~_buu:$^98m<)J+$#($$X\48~5ӣ!PAAdϞaDDxVD%?̝+h߶ZYl1}pdݻ%'L((ߊҺ_(68! f??WL?D's! _zjz@@… cc`˩ߊoK߾-jb[DUԤ(Dm)+kMX(@ssOSS7[dqssVTT\|:=fffFP:::D+YvmWW׉' wwuu=p//E~q yxxܺuȑ#66626w>ܧ%de\\". ₀@..z"?f``D__ l!!+pvv^Q)x-_(X7ϟ}}\aa;;q_22JOOcgrqpӋ}GR)k~YYgFXP mm:-BBjd QQ٧NѢ \FWW _),Ù++[$$4[5t/'XB5#>r;wgӪ?=ٳ[~[W׹m[++gndC &$;II+С bq?6OQuu ##媺45yȦgϼA>LKKOs3 ҂jjniil 񛱳Ht,Y --mhhOpSxxx,Xi֭D+aee377'Nܝmdd׷ D-^ݻw/_|rի>ϟ8,'yxrrBOzIILM0)AA* ₀'rr%%2r4z@l! __5[\ ŗ_CCE"߼)ͭDFF0A/^,_c @$%__5սN6lur7 =􋜜늠 cS28ZO?xiޕjgvt4 ~f6L3}?onmx!"XXde++[)$B46v"&GII lgǏ=\\bllu6؊(K\G66- '~USnaϙ)2{{nzG :32 _!ciiA?d (:P]]hҒUW hnJܼiu7 VGǨ=vdgeg}P/ tR@٪Uj4g ib]dZT#|H֞fTkkuuQQ OQQڵ@sqpsV'*****PHegn޼ywwL\QQ8D Q+Y/gimcgI--,\ׇͭIB\73* ₀'>|(@\{K]]BTvYXXX'L'_'&&Nff.4 \U )%$.YmodoKo/[081#!#P;<1#BPX4M))NgynÆˮ1 {XXxxyӏCCwl͵u /Iѻr%+66wjhi9v,ɓccs N R^Ng.f8UUfU>>]NHuwl]O{`\KK݉a< ccbrXJIܸq>M@`aa@S[Mfرal qp%qpqNNb4ez50`KعsIqq'OUggySɪ%w e ) qs8mp~D=%g##ڎCCCWW8BLC?JHT 3{AAvX<[yy󥓓!"Z[{X]! ₀G}mc"{k: ]ZZJ:!&{ĉ={UU[_YRu|ҥSVXAj/\x2AUm]\b89YϜ^6l(zh=.cmm>$ 5ч`U256#BAA+));+*gO<}gӧ߶ZLag4**ݻ_+VR nn6A|8g<NHp54TIm ""6܌مcQQ{;*f ٳfsJ9\TT (ϺN[%+*Z-,ܾ~Υ  5;޼)MN222@i_W IDAT,ea8\nӺuZZQMs3RBkbmm!.TR3gZ="׃T̙YY&&etvv-cvw_zzmYJCCgvo6xp73qq>BCx(qgF&%Gsut 74&))%e`֮ʞ[J<<4$$>uuNi3م; F٭CUUmyy?V}XYWё]dRZZ OS_-n[[S -Cbddb IccНmߟ8se˦>v (,KJ%=FFHW"Xօ޽wo7YR q/]Ok..sssUI]]k/~hj<|hd4o…l3caxQ|hJPPz{{}V@v0Kt]]8l-,++k)+kϯ@TDJI!Қ2oߖrpʃ-b\yѩSz۷wmO``&pALdxg`.FB>U}RWW3@p,Z4y2~Unn]ۉFc=$|o 3 phBj vpg>vp08qbBQQ^eel J`$DDxhke}  h1Q,Q`%2+Vi'˫I\m72d!cp˖Tb➙%k㹸ئҰἼ_߿.\(G0 {q\A4,88sbR=r=2nnBBkJK -<≋GInWW_|d*uʵB5__u;dCTTҋkt#..AAfݻС d:w戉^=PRXX}{LT^(./oyӎ22{'޿5:ڑDF&$|#}v30bÆ˻wGɜ(fuu[JJ~bWH]L3ZZf&!kc?|`9m!Lpty`}v-1lyyr`Yofuhʖ-׶n:~|$16 H'(YR]ZZr`kPg𰫪#:ʢ28|'O8"l-g޾]7..k-Ne*o5<~ի/.r p~~.^^Κig}2} E/50oRU;pϟ aa;yy95# ?+6!7߮Z"FSd5:pڵl ddZY-&}..76nq5 ZSd.;g!66z5YY>37sr^=75+4z41SPPXhHy˛GF03./^']k>cx"66՗!!ցniA<[ee͵-&nn+HieeQzDm8wlLE"hhII11#u%%]]y{{}ξqajk;ZZz{z𛱲sh!bbD||{x( (DRCjjJ'&!=0rdƈNQ`07!z,rqA@_Ԍbipx˖AO8y7oJ헎-0+*jpqNO[G̙#k>Yj۾};p33͍ܢENN $aofv=..w If{$l`x3?e{'vdcO,=|^wC;\*3󇱱&Zٳgo~/X CV(J~~w|s31 !bĤYK  RQ uc۷#锌¾!=%/j[zzS WǏU 95>|(EKPѰfl:];wUUŃ-]Pv$Y01 QJJ۶l߾HPC%.\9:5}k绸Ĵs@P,isOZ[{ _@pF8&XLLtVmm(txȑ~~F۷/N 9?QQ)mnDJkj 3ݠ/m^^(H WSAA]AAKJ1,  ZmdqR|H߿;a&o66)-++HSDAԣ7|3}}e--j[(==C~~>-\vJn==E89'Lr QQD{{/* ₀khS!.hbVT;y2ux36++Kd䮵k}}v(OZڷoKSS1ЎOJf[h 99v,7…e'QS'=(>T"1# 58<Bb=86#B!!i/64Tٸqcf[R 54$#"sxF__).΅ed\W2 geK̛'䉗s?.m݌}\Zo ;UԮ]K(#sj/YHQBGyyK^^U|455]S흠.!''HFF.)Kh렠g˗k!,8 r!?9~| k[RUdcGy$]vTZYY||֑Ft~lPQPaBE͛={n߾y++[ IBHZ$RJCCWlvw8:Ғ;xpj01YpTLxX\EE ޶UPPW\04dАZXaR؏B22`RUoBLRKLWFFPBoս{W~Po߽}D @33y-KU۷{MJڻxrrjkegA..RFB..#A@|ѡŕm>U-ZDs ͪUj&UV|VV7uu猋Ae^++d_lhǹy3Usyy!tK D+(WVSR%L)#/Q!4)'&vkӧ^ {嵖l'TlmW3Eso,?xp, _NB~~W|KK֋)@VV0;M>vv877B HBAAw>ʧORޓ'S]]=jBwΉ߿;rs+cbx1yTg0%%-gAG?>}ڔ9XXgel:DGWfu..1{P‹DJ#Gge溺Ak[[/&o bs_hw=9FFfRe*ϞB.._{\znnrV*Ebj7ΝKtsyȑd>>$RSngtҹs x +*ZX8)ma,)3 ss7:qc累L8yE-bqmEE  ~fee;WBSSFo|i%%Q  {uVP6oPch pYm!deuuEEy !neb]jfţG^&o!''lhjZ# 𠕔@@vxxx̙lot{+Ԯ\^[ Ⱦ~]2}g""<55t,̊uz}l!bq~~F` |**b_sqĉGsJЦp1<9|x#%*ww_B a_RMPyyagܹeeQ^45?mlEk`dHG>>N|@/?%%/vva%X׊j22Rtd QQ٧Nm\+ddh<xys--9*K,-oܸa;s ~K *+kwDEbnn+HieeQZpS oEj s-qMf ;%1MEE EE%%p8Ҫc=m}{*$Ē B1(B-C qlH-&-II~*/ ܲe!폸zxxxxx/|3B?oBO[]LMu fr54$o|3.- QDE>U@wF:wHGGl! bq1+Wee3QREKiq+GwwB1e2",^]ݶtLgLp7lׯ9p 1<܎,\ ;;RR|RG(lx;; BaaLaN&&AE808i/M>Uyzwv[ZZR]AjN^aa H7UU cjp<)';W߸s1{(/oߖmih1!`wn6دsrKׯQ0/h rrBnY[B" ɥ(>>뽼'<61Y`nM/= YojI5kU цr46v_$z ]}HE[!Ohly՝;>^Q!ffwwO`++[ Zʚk:;E H0x 4KϟiG@R*Fuq 6⍀~5ԍ`DEML4H)$RO\]c8922$ȥRklCa , E%++("磵К5sML4Lz {ѣn z")9#/YJ^4~1/IL 䉧LC~jhHb0_{Ć, @..:jnn6ee |yy<<EA}VP {w_LLm֯gxW(N>bq~~I mFP0,(Ȣg6"%e:_(`MM;Y sî]d<藉`˵k5_CChBbG;:0츚Qf{W((3u۷/ LKFѥ66zWd߿r4z4883,ʕjAAT###ߝ3mmBBФ$--PY (䉧OŽ7ܰwJڏuISJ^^鎩 c /-"žzz TktZ_+1=ݲe!L#8`tT̗=&&2 5^!66WIIt6Aˁ;; [#K{ݴA 8-Rx'## ?ocb*`)(cbihPŅGYY,)ѣ'Off8}ڔQ-/ݽ;coÕ$?~ pfyya$Rs-)!E=GIIg'/ݱfEEY*|7gr*+Ci"JJܬU]꺬!4w> bCCaRKFFdnlH-))~>w|P3zN4zxUVٳBrUnniizgᇩ߬:, b兹؊ _APh(^`\\t@~~͂4'J[[A]]y..ll&~yæMW3@}ys ~gfPz^5;nZ[JK?G̙#\UF֞:% u#Dzhќ-[+qlbDZQalƯsK5%$Ľq#2::..nn6i3Bxyy˾}-'N4 IDAT`bֶӅV2 "d|@2lᶷog9皫Wwx|۸p,uZ&>U5\hI_gsg^T{崱ѳ+,KJ:(FFH*g2bTTT7:fh-?zVV|9 B/ddpp$**ڵW,,Lw^FԷu z15]jŋ{}ӹsԗAp8ojMrNPg𰫪#:ʢ2PIpt!u \LENN(>cdjC55V/|$RZYYLVvj}}>> kgFG;;ƅѪhiinoω"v\|D$?(2 ! u옉OgGG?₀='Dggmm nnF54t@| ի/XܟzDڹ^^jjа;u y54S=.e˖kVV))n4dRTj#cTa&&صkk{xEG;By|}ן9xVmj`gyy"1 ^)"@#Hgc(&ƻeW:3m ??#pGed:@@:PFE:C^^866lTebgϼ]\b\hijlEDt(vZw$oZ7 fẗ́&`/gQq A5::>- c\\l11N{gU3:m e(-BlUR"WiѪRJD%h%-w6-Dvfd;fs| ~G@" 92}#nL>y#0Sq] U\00P'/dB;^*F"'L] 籴$ujxߝw*/oq'(;EHL~ʿh%:N[˩11'cbʩaG˖MIL|eKrb/ص~]zÆ$?By_KőG~$_(m%++۷?mؐ$)JN^ml /zz4Z<` UW*'7~q7/zU{?Jt}l55LtaFw%&3/bMM}_QѐÃ`xϕ+P(=q8ӧyx54{yYrvC ^n֋㳷lI޳' FȑŤ}zLVV#0g<{F_ikV[yyCccHAk[[oGmfc[2ikxپ}wML/ IG" yI50ІDRS!)ŋO^D"q$=}+@WqQ42ʖ~Z#$$nJHeՑHb=.+Ri?~0s:AvuVVcЬ1 u=Glj<˹SdJ`ꐐ٫VMNop9x%>:mC8"➩fb4&RUiC -*$$``FZɅ%JJ>oߖ@Y3dtu$=#A%""tܲٳ=ؽ;MK BtB9jU!{C )Tq0qzHȜtCC<.APP`߾'?|9|ϟjZc`_=Ѩ_,bYǾ""ȟMdo8O} *N}} ; NQܽɓ_"99nn Qa^Wտ{WnZ kxc8~ƺBp XY0ۼЮU,-uΟ6tϜӧϟ-,pAAc/r׮JOysrff?@Ja$~Fe2‚ D9;X|(8Q*`4twLL4&N(ᤤ7'pw;VөPY #Q_v000Vq@']EzzKNnaaAܴFg'B4KKkgnݚb`07G ܽ;mƌSXĉg.Y켪lp,+X2aıc ml] M(lnYpXƶm`2\.r̓|[[.nYYXTbbZ-lGJm!Q@!++~~,(i2=Hյ@H~ 芊z  UUaa龾qYY#"\|u=<= kLz{{CH)<gǃNzdk-0%.QC[Fka7;Ho؛7# p$nVU<< &q$%QG.tu==4\ U_H}}ktxӋӇbnnpqtzrP (.e)ldJNNiCCXsr2"pxyyɚ&;Hŋ/z.DG/K-$$lt렠YQQKͷoT~Fe#c(τ1ctupGS߿ײZĪƞ4FHT{*3Lv5cƸcܥ:̝K26&NIY v-`^jT55;w2VϞ}[rFz>}o]>1#`ry)XYhB ^\00 XiںJK UTD?rpSuz޽+APЬW;qTEF]`m=v~琐81ŬBnFEG/?S1?"##:wd''1cޛUTUe>窊 +^ݰaP|/,*/oغ5W[rb~h퍍ݿH{]%%4Tj3U\H lw񲕕`W&BaaLnկ_9z*Sxow+,g &ڬ/*sD0PR//,"/z Y)/L!;;;;))9oH$DhΠɔ)f603JI(l<22SRRtG77SHLfnnܹЕ♙iff>{˖={ LL ߲}'CUƺI] N);&< ;oѲ|E@(E2aa!&}oxs;w>8w. JT[E&St6D+ G$bx`0|y3@QDrq-l׮MY;͖0{Z?~,z"+eE"ؖZ8,X&BCqK l2rի-v-KMPеꐐ;faaCd>|(k?(5HKhL_^\00 XiƏW*:p)S/gpz8ݻٸ1omͻ B~4 Rba7 匇;wy4pttHϟB ǎ-1Pp5ng$l3Asc ŋ'ED۴iW==͏HHxz5w**|}dʉ:0<ﲾ>\ki,C_?NIccw0GUUdBEDinܘ\MWiZ0pKDDN)A-. @pۋ+!![YYFի )ftv6..ݲ%@ŋoϞwE&SLgA٫ݻ 7|s@ Sn~sŊaap{ Q\\[A&SdJNNiCCXsr2"p!sg >P|y׮\7o/絵%mۖTGAA/5tz/@! `2 m mlK- yssMV "럂S`˗[lnwqs<x#G2\]MFa*ۂkx#-e׮/^| ItiصGDܛ4I eҢ4w0  (a]?W2z|\=gx.Shŷzz{Wp^Ս|HxyY]HHgGzzys t45 F<u$׏Ml͍g#ص WW&%ߝyLSo\}r빪_ _ IDAT22+V vd=h흝=,YX_WggOssGG!J?ERRU6؋1]]=-Xص@Glj?8C9qOH|))9&i >d2̙%Aeb07nsw7RXXnU22,"&&xW B[VVfMB^^m^^ Ih deh ` ta2ŵK@N(PY0AJJDR}|*.wBzZQQpG IIo#"\A+--cg:KQƩTqu SS۷42R;kYb[ح_f_ RR ]|r_Xa45 줇ǮYEE4J9(Bpڻz,+gkjiY/hQ )"%pTV6*p))Ǐg]{ӯ9pp΅ {zII,c֮{.Ϟ=jk m w22Z>\RRN}qB'ŋݾAIɏ7QQY$q"XSARuk`s'MҊ̬i2(|F=t~zGccBjjN2< B՘'O69t.2CFkgkrs+ SRD"᜝D봴;v8pIÆNޝϩGBim&k|::"Bb ŵO07di=9ϿȈ߹n"AyyIGGӧBKg>\ɕP`lLmMss-(0̄W;wy*evA@qoEUUS[[o ,_ XX? | yGOZĽF<WU^ I];V'ܞ%(h.߻B!=_b|oϞ--ؿ?BTT1g_/_j||bbcfy"K*=h|LaRhhWWO_ӯ6: N{dIP($ %%@eeĉ`-HƄٳDG/TFGG1mlÇYkK*CC L))ݻW_YZ yW;}. <~e.$& <{ݺY/^|޲%9,,Ɉ/d7cɓ'k4ؘ ,,eFMuuӱcWƞ9dP28p𡬷1q؅ QQ-[͞tmAA6VcRilL)+"-,V$HrWի5k/3{ض-ݻ7IRTWVVW^@4׷΂"**jjuu9==ՉxY]ܹG<=9qXNyևkzz蝠(EŋgN称_}Ȳ7Y""ȟc  IB 5,-u> Y&֭vS{.צf{7\kJq^0+R47w\EPhO|;%F*_R^VXԥK+?aCґ#n`1dD "֞)6y||6TN>yevaaiG.SP(*ߗNWSS{TԣsKn_oߖAu/@> aٴqLs05k \Y9~jNH=Żv8ܠCA[L&..*+4Z{JJ֭ohY[ݴv[jj~ H8 u]FF~||Uq RNNFf<;;lْ~QC&&9|~kkҥS֬ Çr&WJnnBM Ǐ?7ND9;X<ޢ--1/zA{Z6Z,K:&8uѩSX75 hyyI1IIꦶn4 !utx /ˑlM Fb47+) I':u0?ch718uSquu:t?:1!6kT]%0޽ۏ΋yy/,,W=HJ fZ@Z--)2̒:a˜i޿7g!#Gyy]LK[#* NC$?r}mmy`2vt(-dɹ{AnSϯ\ rrJ׬I~ݏ_Tw\EBBdvxWWS0pYpl[XTbb'K;w֍x YWSS;$u¯_=65occc}=;;HqX`Wi>|>(蚳)_!!s.c27߸}Sl슟52"`Rì0;{4a h))nyq|Y\ZZfʥa%>>[HH~~V?VOJ30 HIIL|E"<='cO?pܿrie# &yVV6kLڍ `2Tg+7LJvvRii|17  :;%==3ph6ZeeT*1-JaR22b>U(+˸措F2RPP:#855 !VdWSӤ$ͽYDWWϖ-Wڸq..=-!mIPе?p^Д%D >foy+sÈ8v,Ғxߌs 8Qq HHh f{)*@N_]IԄU\SS'Z$D11g M:qƒK0|{77&f]BPPԩvvKys5=I5%=oZdgyԣτW_m|u9)22֭..\hiW7l6-[N9yғ{!//% Ph`[ۀ N=X[di3f`#-B!Q(!ۀs? e7FyȈ_蕔v䬬'O.Ht; NZ4}z Eh`vIHp˾Νc*(ri|eŽtw7NN[hj}DA>8xu^ƺ Ksp0tr221iPW[zơC\^SS^JJz~;?V?!gX{W*&&== 2J&SrrJbH$30Z]|;= S&~}))P26V_W-*u"ZAAJQmlLPT1L&Al,-[mfNzss$4544LL<}66zBҺ+.VW7ŭ v90cƌjj;8C:GdDG? &&*+ؑ}|ޝ6}n ߾QWcs""kb4ZUXQ;jk[ x1Ѐ\a0\ؘ xvP8Ӌ<X]]+؅B4 p?߶^NNi==~~PHib0BB׌**JQBggcSSslbe>(27# Kc2qcpй{7qɒ)` 11K]\N{xMK[˽P# ZXiO㳵..Ʈ\#SSuܹe=@H?/Y¯ӧϟ-,vE!'t\񞶶ZVHbnnE^^eg'$I$@IUOOxe,fhorr{'5}\y ~Z}[}ݸіZ<z7gg6} /_L&3!Վc(ee@?TGXX`0y )hQ8Qfߗ00#Z Z\9NgHJƍSyT\XZڱ㦮&IUfdzA9hhȟ9ɓY SLOvlT}׮>p= :\}}?P(422X+h𡼦itΟfc74cN!**|  y3`~44ͭHJz("޴iNNFsFPx[tff̙z>c**Nxx+&i]'y*lVQ $JWWD9;X`/p8U vユYpBCCpL._~yԣ#GܦN^Ik~\^^_]Z%bX sNﭮn*//+󦤼WﵬKM 3gǨas@>xQBB==:h.(`pّ# `2D;IOHx5c >:|u))99>~mmKpէO\9=4tɕSnHK^\00x @0+䇖0Lc8!D3 WA0|yٱaTuu_Zq FgqU޽wy3) a߾ǎ]16&H\Uqi~XFB«իrӧ_W.Aȋ퐕hlnKYkk(I/ؑ-a :;{;X se """B PB vwPZZBJIz8 [k^?cơC\zshkg.[k'!&aҥz46& (n%y81|;3X޼~?؅YY{H/ +GD‘H[22WSPrr20{}Ա7ز%yd?800>SR7ç5:ILS<^鏰:n߼*lɔzX)"Q‚oE"D_vi>ureflޜa\WW^UhsُY ,-FAAJYYEwwOM >3(/h`0@̙,D/>wh.07nݾx mKyy]̯QPsk>Uqeflؐ`0Ξ]2рaI۷ߜ6M^ 7n!%JIYmdѻf --FAw%@EE4@)6LM5ϝchȑẑ[@//oߨAA״k44X\ҵ˩>>.435!xMnlf//! OO󘘧Sj³;S&:DVV--ǏPSਅ IDATH F~UT4;殮a zN`l`]]koPhQ )"x#0A-#cݷ-;do{U.98L WQ~.60U|tz/zϳ%qcdЉydnQb<s?XJTԢKXXvv%%?RRrDEeH8OOsGlj,w;ZZ=y2+4tΟ44Tc0U}s瑑{8o~yy3]O67Lɔ҆6X) dD" ܻd]ǔÇr_8775k@ }- VU5h1R dR(VYY}YYݏ- Suyuu>W?^*{*g_ N@ ,0|vPly?NRRΝuc(]̟pr2ZB^ږ-[]`HK]ټGrdΰWf;w1׮0j 1``FL:Uֺ7%3f qMBBeGo3G!:X]]g ~$,̱vɒswI}}ӏx<= x4VzƍIȾ/Iz5WWy==;RccB"j.FvIH +EDDdҾ/o#`_ӯ6v ?=$_(}PVV".Ӧ醄\>x򤇑nssͣGs)+3+5n/_ۃc9n+|F-*=|؍#ÀN}}kZڇ{@}{xٶ-%<|pA>8xu^eKrXXA s,NNFGf<N%`2N=ڿAD~0aƌq>>/d޸nǎT4ZڵUD+$$DvgKNNƓ'73uWX(&(AIITkk'UXQ*+ {++`/ц6ի!TXsw7`y#?ZRR82ۑHes򺐔{5|]]kUU#Ciw>~}y9/dٽ<B!L^YqVQ=,gg_~45~P~ܲ9ssБϯ6rBF!iiA -_Y`]#+QDAmc\1!(誣+,o*}>}d撒0̞7DxK=.]z!**<>s&O:~2Yj‚H}uq1vu5SS,[6ڵ;w^3uu~*`0~Ǐ-,G|Yٍsͭ,*2LIIsv6&xUUexfU_qv ?\eU^^ϲkUYvkE"0 3V"+SC5k<SאimZ(F\\ܹelr`.7aڍ jhh h+,.f@͝KJI WYY}h/μy3fݸ1)++d_{]N>'>+f}  . TT4@p!v!0La2kޚ536oN3Fg^|ALSIIԂF`1.^ܺ5%"…dzH>X%%%zkFosȨ˭^=vv%ŋ'=43)_?.9qۻI$W6-DE:22 \%;.Fwvha0rK{˃rrC}>Ν‚g,J=cGv HA##MSn2ff̜9nh/(Cg/^綊KWWiT3gSq=}uKؔ\ `0 PVquIJBhQfȈCS&8dӯ?=hTjsg'} i?;9gq FmX2~ pydxF5A oo>hć,iiZ/ v!eɕ !! 6$DmjjU If۹3"B4+W^1L>r)ۻ7=;xqg.=-B(.ͭ d2%'umrr2"px>d}^ٓUxǘ1Jw.-m-^V_Vmm ۘzJaLLX,m5G%تh(/lh`m  XjjccQP }/;v޹Z+x4Hwii>P\ { w5_ϯ:yEUU&0ȑ9t~tc ʃJHH00XEZ;:!⪩PHobnEӢ_@q9G/%'xg.Z4;fll@s_36&}[ljŷ7a aapG7h KxzFWc{w,ٛ7ߘ7ݝthqAٴǦ|M{lllEڣXkkWGG1ʊhas7$--/QZZѣBccGr޽+53h"A}[BBԁ f8\l\}eei [̫oqc[!;;;;))9oH$D>0mځ%K~#QloﮬloߨOOhlLHM 01"]4vsںk!yyt$R@'TmH$U==VK#%K&[Y 2{5kfp|۶O&% JC6ZlK&¾HKEEfI he!ZYe,jia?uѥK/Ξ]:q:ص ii3&'kkw\n)qa VVTqg>G"23`W߬Z5=5WS ׬R^^o=2KOC@ %' ̈Vq@p8P(4~ ,VJ]]TqF?XXXpͭ+!!s*/>xHl^cc•+::yP#,,ak{4&UxvbicooeKY8ӧjh_2<|W' <=uj޻iӍk^o<ϊB YYq۔ک`8B Tcbׯ;:N@iv,*̔:~1 k#-B!Q(!yyw:: Z=紈 .T-lGޕ|PwwC""…B-Z@ !䃃g[7ŋo,4C''#-[6QB _R ⪮n:v,3g]|Y4ev4Z;[[YTDe0(]]% lL$b #mwMJpٞ=O|+/_ΎmUVV`u)(++βb[ja(2*/g;lUT4Z 8%eoO{ޱa\ص ''+.VW7&)ޱmW. ̚5~MMj) Nh jtXv3|]?'>q㈈{ŭBBpe@@fRY(((-L VqZLM5^*Pc(?;n @$5=J`g@DEyΙstժKWtO*@1S ++]) ݻ--<:Z Xh7nʕ^mk׭.^S!ҳ64@Tҥ '*1ⅅ`Wg3:uQvvqdQBC]rڵ6,ׇv -..֞Fy=JKP掞-""BAq//&M0Pܹgǫ$Rܹe]\N@ ,,D==SllmmXu6IIoܾ'HJ_R {Eܹ9N˙/_jBBP4fLJD+ G$bGi_@XaiaA\&aƌ|}HN~wHFP,YY,Vyy=+}ò1׼̐4Z;;lW"25tp1jj  s|+Jfm=VRR4-#|IIo7n~ JwP}.-$h DD*}]I}iSXY2cܹhν0rXJ]__q.Y2~׮dSa,*Y6۷Y=RC',[PW*.?T\)+DKII-Pq[&Lœu{gܦltYOOq =jd߾P$BCW̝{" u6Kt!"efܽ+25's$kwoʂ ncg7 /W0kGVV#dIrkpuvB/*f3YYFaW!$&޷ΝH ΡR4MPSQQZؕ ]]TĶѣK~VdWUշ˫)/*aѴG̙H YMM7fVaa5ׯšj$xRduu9uu)Stddo-󉼼Js& ޿6|@YXm[bt3ggP}24bÇР|m-D͛礦?yƍ? pTԳ;T226 $ :FCCs **5\RB72$ tƏph-4uׯ%..|ƃ>}*<~N؅==#G{yEh}3f˗=X,ffG]k&2Ѓ/7m)r=dqr Y557n.dq[]RW]CRDYYIԾϳgǺOaq& :>ɓ'㙳W\uMyMMy#4b1bhllb"d]^&?5t֭TWuz{wrFƧ;~OJ"H$uj+jnf٘WXQQϝ>AГ'?D<"N"Dt]>0@1Z""H^^*6}mmCVS(®ExKKCKKqq/NCi-\8="{|[ې;w>^vxF}}3ٶ-SWA7MAc9 FX*._pjq~~\2l}PG)KKU4llP 5g--7y^_|`*Abbx bEi(+ǚ29?ĸq=]77JJEnbnny]هW=0RMM9[{LU 9CccYYWOXkFkiɧoz oLLtK-e&|]bb VÊƱwvJd bkW\jAAhi^\]ERAP}=C؅AT\Chͩ 3r7y$%]䥨@ ,,_. 9xFpe&ݻyF{"W*M.?|lلۭ㱻vͷ {zeeu~~q}qsgѷ?,o@$*rEoΌ8P8k,:WfH˗_M}}ClWX|"-MWV.$⨷w ^`&)I|{TH=~Mcj?ycޛohiڳ皙0M8+уĶm9RgϦɆ?ޱcڄaرc2֯klTV̟?ԩ;66c*D$%hiaq88aɶmo%'{36mkeu7k33 Tr$  {lǒ3fIH[ 6i;ܨ 3ͅKZJg>|acvJ`0 ч._~uCnN:z̬Y4AN_}Xqϊ[0 [ZX\rrC&-U\iG cnn##W\ϴiCZܦ|zuDF/_FF￞].,h7c3.1o`0}͜y$*ꙃ0mzQ``FB«+&G]M١CUL=s~TqףQĄ E4[ܸԝ;盛we coo4e1ܦS۞*Q+>}*ҒD7ܭGDacMͿ._:H{]c22@ӃU?]_W_mkzf93Dannyb븸Nݡ4.~_͝{'S^]%ZX ^ p{c:dUU}smRI 6!00= 9<]dxђΔҹJqtMCG+QZYYݗ/[Ik=No˫l{YQ[ۄ#&@,tugGbjjRRDT>C"Ĵǎ.(NK8h6Ϟe8}q<) _9;Λ7rzsac,- XUɏ;绸)_O1BÁ?}*22Ŀ^ne˕- iwȧv͛3ѣi6®K@XlR7OFUQQR˫& $:g(7oѲٳNa?@ yye9 `f<?ވҤ'O~} -svH2374$Abr@4w"p::NMaSSʕ޼6fLǖ/y6_'{:E6@%H ǏQK˗T*ܕ\|j)v] p WWj*$jυjj Wi`GF^=R($D+*^ 5yf **ygUUAT*FӰCijo_ ܄ |ڇ*DqAD)EyxJ$٧ucј,"oͷo%^^0; (,^G.{zI((H]ˋv\ZPbרQ<;P2EAAӧB>p߾E5Fgx,;<|̙Y;;( :A8}0:  aҖ& uUȑZ9*Gkݻpzz*sف'T*Z촆L?}a޼Sz{<;v'?4ƍq W ,_wǗ rITԳ7"-NN?xt2610P;wAp+HJ ]ET\:#;QEi))tܸYM^%ĔD7vܮrV75]Ex%C=6j &7رôzK ?=g >>|zdҥg/9buuƔ##BxW_#gD%MMx,_~38a`YYɪi h mjjY_U;bO-3ZfsJJ{$%ax4]; ]<9;c$pڊ4u3i4uxؗ־y7knu2U]UDH1ݐCDEi(+( 9^977jj+ ʢn4p9=*ont_̵!پDuuҥgdd$BCWɯ <kn><%T\0 >ڳԩCO܄dǿX¸ϧFCCۭvL5Jsd>bd4̙0 }}'9vnڴw׮5n1BG\\lǎy66&M,rICΟ3WmmӲeg+=T;mu17ҒQ"$VI xq:b|f{sRRӧzbMʕ>)5{KL]A=.F``T=WFo_`="^=FYYIE9@UUf,`"G\lWg#WP$^΋}tСT*yyaa+zy22ekTa0*oo]:x:L&{Ŋ61&M7͚5.&}?\g290 ΦFfÇ?J9XZ4t ac3VGjhٛϟbcX̽rr]<Á?.V-Vkցi#Vȏ'ՈW'-D[ZJ/+C-hi+)UUexnDܹK'[cjzĉeu*B0L'攔}Xdi9"*innvo`6ݼaZ3T #Odrs'o4I!@zvmLee}PEƴ~ l4{s/^pmY0L&xqu" Q>LPGC G :J"޼#JVC&K_O7-]:^؅s<=#326Pd~t1q}Q6d44֯7?tYH[̞M35u[6\WW'Ki\LYYիk"Gp#,Ѯ]{Z!)IDk"  =6(},.~}]o.KK%%NS.cc_9s;7.KF3X,W*RuuBτ_m;I{ VmmS4"O"Hl'dxwu tzc|MfF)B}i'а0g1GkkGy|3{v`L\{4RR.Z7ބ؜rOAA;.<7~<83ɓ {\zuM;[>mْPRR d2oާleeUB=xzN4tt<3}\tĭ8bCTRBﺊÇ_S~bUZZ[PP nm5v2qR)jj?M1슊ڊzYY]yy-kq1%&WTFdF@b*(%Xt{zz*AAoܴ)6xvKC-l63ǏdoUUaGPŔ,\*ƿՏ3x05")2g>CMIY7bD2uHLLt=;1c:w_KIY+b$@"O"ꨫc86@}gk;]>`aq'}F%>zݚ͚u+"6փdÇɤǏР mk|}㒓}Mp܃ի VoߢUVVggR_ߜ9`BW!p+W9rs:3/ 1tlW@BB; hϾ})MHiw~b:w؂ HKK>>~scǖw`=]&*qX,WyyNMM'UYxWB >N{lZE"DxL dI?Z1bF|%KB.=s+ E :վpa2ٿ~Ute[5 BMMYZ&fsrr*D5w#v\p'Q]gǎ;UXs=26XǏ[<~p8KQlϟ23 ?.epXmm'w]YE^ }W<ο5ÆkHJxҺ6.VQ(H`Kz?[;i~UH :m^ݍ>9uueJJ/\pFad&&:۷_},;$AT.B 8v,ZJʻި._~iSFp>{(444+)Is ,ݧKWTAAՁFcћ7?Ξ|9xqu" ~d"F\Mڽ F|BEEŋC3} Ǐ8!%E<{qΜ'NZޜX#fXqᰁK,,EF>up(r猣G-- { `0㤀~~ddQXXmkb֨tcͱQQϼf^CR*."DII"PqW߄ =Z]͛<]]`7ffΚumyeT+d ?M#ވZ="[~UU5Wpɓ.|HF99)2+mիklm-; "LHxMdlMp`6q:tӧ"D_>SÁHݽ[L LA~ 5UUeT J"VV#[ Õ eeȿuH$2EQQZInx%Wa"d֧ndf/rflhC~>DvqW\\LΝ{' C X؄ 0":M")Ill*4\6z[-{𡠻~0 f)CoO\䴥rr ͥ[/.d=@DA_0|GNQmiW𫹙`0ڿڤ=vp4_gM RJL u+DF>ML|4y,Z'6y^C:DZ A09r$-&沶vmoǐ…Kx!D"s%=nN'ffp@HH$$Z$$LqqȆ7O@Oii}ԥqBbb<7HJdfEEt4%%t'7>ٜIdWV֗וVV6TTԕUTWTԕUUWVsEZ8VAAJNNJIIZQQz*JVPF[T*L{޽)o#"\;LsF㱾Z&Hpr )[^ٴivJᰳgRRuKŕ?^GG9#%0 b]+7oNۢEw^гQ)@/pరG{ vֆnLkh9:N L…W!tzӟPquu ))40T*͛|~ ڷoQvvS><K33 wZ BPöffG""\{|C55>!W11<"]v흕2FF l2ipq1 |gssSRB_8DFF.):uꎍ !,aޞzbC ⸺^`9!!yGYCC=8VIIGk17'L˖4: S5uP4.}ȈG:`vZ&ؑ'i($&z-^2o^PlG7ϟ<+##4ިC_~]pLFFpQWc10 q8Xp0!6qu@fca#-`<60"XXWebbl :hxޜ*;`0܌a AX, Ap8P}=Y}ZX, ..cxOL|xчtzck}'Ӎ$LEed"//.]zrZ{ɓܾ'fѢ׮5[n&iOf_7ZTصs /]z{!?믫O %^B)+Dd={ر MM5o斯]/?? wi=Y,&YxիB4fsD轫%>Pq!%F/fN#4߾@GiY^J^Ɏw雈B&>8~Ѕ y۸|}-xlo02t-[&O" ޳k'O޸qk*(L6SqUT/YrĸrǴ3߻eƌNJL#0:HxlCo w'~W9_8`f?~ÇontYOOǩ6~b`&]\L}Sʧ{5 =H.رF%%rrҥg,-GGB70Apuu9~ĉVjj:(#Fabq rrʳrrʿ}+.G ZZ0,̧ŋ}mj`֖ fi)N7kk/##ARIA)qeemiйu֭WlX1yy]BCݛYɓ8g~-vv6Moޅ®E RTqrsW_1>J).g96]˫\l@(88Pzz=tt|a:' {őn]vb @).F3&M  h(^tEEpyHݶA?Bᤤ7 V:=fH͵kv6~Nr zNls:BAyVw|޳Z`k2JJ~~w_[ptWV)vv?.j?5[[۴tիk{С*S9s?E66WÁFpʫGiXguȗ/Ń)rL&ٳ9={g  ˛7Xaa5 ޽˞.M{J{p`3Tuuߥ=R($D+*rTS},L,~9:N\gx (LԒSdgB9ʤ};~8П+⡅h4 qDUW򊌋06w}o/ٍѭ1=<. 33S}{O;*pX33U\7o~ҒOO0@=*{iWIpĉϟ_ѭ>˫\>իVM˻ի]8\m};9.[6a$o@uu!xXAL~[ZX{>s-x;~duuC0jkx<60ЮvvLR~}oSVV8$䞓>iܺeNOP őDU p`c`>~%0cEdfntYWWPD W20Pդf-1ΝɇY EFS+T\ϞM{ן5Q:d;gN`R[;:8Lڱ#iӦ9 &568:++KLڹsMt_bg[BÁbǢ%뜜Ώ3`9m˗'򪵲qFD<8y9h-x⪨ pY˫LK BrBˠemT\/ncǂjƖזּ`f!6vݕ+DHD," 3 HxDE 3}^WjbEeeҥg44BBz#{,?~ q/_憄8q0LGЖ˞d&SJJed|rt橂jwYY%O;E@tzS';otɓKNؾJZ$7W\Yzzx?aaMy&z`PǏfxePqbwn.߂| 2Y\]]63P^۶Y~^bEXZOWf׭)BDeeʉKO4x|yO׋yΫxS=_]1Bc2;f^[۱ވyf)A \vvٕ+^ZZ}ڵ7y˨A]u 6?s@8Y d_!!<cp:>rb|ꨨg{\}6&&hb10/r*+dd$9G9uꎺ,ږ{-L(+uu}_56}8~-#w@`0؏ԦW~>|u_!qL&' íAGK ٳݻ>GCCҥgXLd*ha`zuܹ[$|^S+kjEL ?e6*hjedl)?B&.-kjj t{Pu}޾JM10',rqp]'I2du80 @"gFu0hԞ B , 23 #=u^\z%#{3,K뺊06%Uū6OVTT %%-Ϟ}Oa"|l7]HWd77B~-_=d}YYTV=y˨@Bʚ ^\"!vCAx ݞ~-aXOOW =7zpKvsXUTfQleeTWWO`v옷u]۶%#!!S "?uЃmw{Q~ݵ +Vʞ={0L@@@oI#mw 6!b:[νs/3sٳ˖Gg`d}nll2jftdW /*pπ ގ֯ijjU" ~~| _9hA_#WfԿvm-p,m/xn4usnnup ?+Omze 㴴\k1Ǐ۽{޽?Hadai ŧ.o ++9gN`tt_S#=8uËOv-(BFFbiiffGY~@7@QsC?ĸ_v \7o˂5S0lXc~w$`l60:8FT@/S@HTp>\ϟgmOf EnUUpa"z*o27oxz/_r}Qa"d0޽>.|*Zv:|HJhoot܃f_;"% #8 jllqwql>u[>p s;VqAD&:d{ϟS՘.ĉ[{Y̕+^㽽cb\܋;o>m133qンsٰdo>|x޽ 666?ܶmsCCC$D;;;-Z&T1))ӧڸqcUUurr2ł (99y4%xyyx͛KVr+W޻w/++k߾}W'Aׯ_OIIy&"57o|mhh-[UowFzzEnie__%K ;<kq۷?Ϛu/n:3wi IDAT®uV_򲥅f͌eb® z W8G-\[~ xJ;qH׌7|n՚+M^S~HT6FU re6L53P(]c0cǖK9:ojB2[@b`0G,iܿ?Q(G{Kx<ر%>!*kNH]؅gϲ\]JN~[VV):uO(Dx W_"ȧOZ.˧.8z^5XRBWR"w#p..&m=Zk3(`xE7HPzMYY 1de%WOt sĉ;w̜9cܸq:th***g\]AH|}PPAt:9str o Ç/،[\߾G&[ZHL|-ȮȣGYf ԑijz=x0N} w| v/{3c@`8'Oޞ9(k!D)OCYp[7~" 0" ԅA$E 87ee#ctݻ_Pkv5l}RJK®EȈ5?!߅]o*Y"`v GHDD#~==~VO$/_~ܲ%^QQ(,̂x){xyzm3wKDCCÇ͐BZ0#::K֭[I-`y콕U\hhA`b)b=Yĉe{yp"M׮=@*!?U\4IJ.ODĢE bc4V"JK[eeBތd|<<åtu%߿w'Iނ"yzzRKD X[>uʚEMMiBrrӊső=HEz?XV@Ή\\,S?^Gg͛ǎY@?lddL!S{ՑBP(VrSAAy4իWgΜ?p–o<|+XZZ޽1&&`II_ uvvp8g¿b333?}hhhӧLOOvJOOVCA999ʼSYٳg?>}t1 ysNс͚'^wGII+UBܔ|4lm}%.vSV )ɡ^Db=66甕ENڨ| O[(jk/هt4lNDDhhBDOOt9jbb2:~$ MA:R117I\vuC0aHH͛ؖmIp2k,(fwMDSXT@K 1o./ $Ĭw > ?>GOO@CCNi``$?\]5jk;nެ11 }- 4 p-;FKֻyӗgڇ_C  zqZZKcZrڮO"n:88xxx\| ݻwݻϋSSS>F߫ݻw oӦMͿ[SEEo޼y_|y[[oW7ookkkkk۾}˗/|9vаo>7؄?y=HmZZK?N&LNbSR"^+YQHc`p270㤤"X0Gjk)(aj*PV]Kp#hȲ={ss=HdfK+R_x L55=pvV71Y)d?x5` EFn()iξ7å]ihHg:ˇ/…=<##˺?"&'ɟ> mcf8''u DȠ"*) 5u99Od&^/^|m"A#:4 o~P=9I6@/.rtwj"d6d/(!,ifMyΟ??66>>>۷o ",,,7n}siÌaaa LKKptJJr劖8._\HHyu^™3gxxxuuuuuu]f2_??ij^v>/?[n}y=H_럭Y#E$SS3" h--W]FjP,!}oe˻ )}M(?d+o((Pjj`"Wo|vpHM䤊lۧlttȑBc _E:i^- qfM60MTTBBO 1&>B()iVVE:,"j/i/utÇ=06SU *߻wYysEowx,\CGGUCÓ :Ǝ|}6 Y㞠;uĈݫWadut*+8t(?3!4|r~{<4AU!'ǯ%砠lj^qq>~beH g%uxM ?#uppiobb29.<K>uÇPskk_N^FmmoH60>qqHhhΟwpvN`HBecUUQpW"7ᑊN ?188w֏@JYh4eXEYC1YT WNr~22bNLIc۶%/_K{z0988:ë\Q{{ݸ蔧gp# 5Q2QOEţ;m8t$>.#I5gFGG={uV QiiLgҔ[ћW 4`h(SR=<<}83288iY {+ E8k׼~YAAUUčvM"77͛7}A FrLM WV(` A I?铐y*.88/\pjhx~P>Y 0;OUUbnl|9* 'U\ c0BW$ġ dl,o#&=ٱҶmjVV+wjq񃞞~BptTMKM bϞhxn p8ܗ/3rĉ7o>QVMMM?[A/.2U!!%tYheEE^}`ݽ{wŊHg_dbbrvve_.j|SUSWGD?(VYYdӦIo×tW[03 dz{<=6ldܳs.5517n< k}c0QPBB{рt :U`˗0iVV jF2-oI= rpV544☘i:B,,kkey$CA44x񡨨S4ԟ8lIșD0/Gjjj>}:rA9988~8=\ UuuDv'q7n<޹Ҏ:*Hg zz8Pb{QI'O]h㐄oDG K_D`0ح[&'[UJMMa 466UccByCPP&1N؋khh FFzq}4!kD:?4DrP((@199}E ֭F:lFK>~1˴6 MZz)wAʃ evC:T(fdt]I5?nߞzKED8Cjj:"?.*VS|SGxHHzeERyC5;=kʀt)7|ŋ@m([iIxڳG___)ˏƨTUE0,FA:qb˗/ ?T _ߵ44T y λeBTN)c!jF"Y`lD7A^“^TTlr]+WYo9҉}۟Es٦M ;{{]8@ X,5H!9l;yry\Jd++&۳'QrV))^ ?Eq855o NQ87/|0TqÏPgGCF("m.ٝWQ%ɼdk'H1ӇBDE}_Y N8p`T[w Y 33ݡC&Ƨmm^L_ &*ϟ/_A5k}FSS,ȫӋ˵k^NNXAUUU?i$S[Xhh͛`"ž={onk++=**d>D(APMM77 k"#7hjEDXs44$[U ^!!fjjGnzzj#a~~m!!EaaDnxx5e ?uDAAv-%U8X\\%8sׯWS">|aggMIKkHMV^5nnZDwRٛT7B:\!^^'<^ҕwtt!0ׯ&&ľ5CJʏ~bq;;::z;:}vgxx NNfQQNN11%KJHp{ H ۾=]^'#qfx$c^sN?Ο>u1K#:UvDѣ4[GEEjk; Mށ¬{::KSS[`.=ZϖCVD3'z{>pU\ q{740𕙙/ ص늈?5љNЈXY-khOڵR?~aee D<-\8NR##6 AS-,VXA_q8=ݕnۦnaMSBVV u@N g߬1S%uǎ_tw޵+L'^\dahh…:77i_f!)!5vPP^}'7JH`ݻw3 QPRS//} 445 |c R#8ϝ}]]33F)(P/\8ŋ<<},ȹ~Qz0Y!,QP3<:(r_JK}@nPM HgAXokJssw`Zp}4OZTquaaSS[']Sgv4ӥVHJ֣Wf0QO#V+{y]nn&ڦ#@1Y#ier߾sPQQTT<"D0عh ۗt/͜$F- 'On\p4$,)0! `?SQ\O Mm. 5dB$jj IDAT(#FG' trRҒlaCU\*)Ñ Bm޼̇yhدsrr Aw*K^^wvvCUյY=~FyyMNNX~/Z@SSU#"ªpg{{hSS`RlOg4riGdf6{75OW\P{ʕHgmR{dWݩlћa,pc?~vm, uu'3_ qߏP%\?rP_?[ovp(  fw--A~-(xja{xVST&v@p --z}"==صk vTT!!fUUHgAޡCϞOH&==wg)Y#9EmS/(h~3~EˏD R×={26mR04Dl͗/`&9nYT5>>{3m\022Peo |`z<1KJ%FDEZu("qy:9rq1û]v/(;f NNfz..mm]==-ZPW}EC#LL(j߾--Hrsdn,lbBvMNvo23~n0-WnUE0&&&.ؼ9^]]x7,˪~S= ۷ilUU{A$$ݸXMŋBCͳ݅fI+o8955%22 Tq3Og())m訷n0>۲U_L\{z"@H57_/UU>44J`[RpU\A: <=u/&HuqIb 0:˲3%% e894sp8::@cc 009Tnbb ۣyn}Jhtu]`K :8%B(VVpZYy{H%O|}3ee5422gd:{B@e/\۱㒳Ƒ#fd56|򣡡**gܸJߐ3iEO7UW۳'ߩ mv8ji-vmW^1 @"޼lfXd|5ӓeehZ  ժG朜;\ٓacsNBM_|Emm۷H`C:o13ӥ8uvan99"l|,bkzެ+b_'oË۵xyhdddik뫘3FS)]xh4֭j.J ).UV>>s"54s/I,+P(LU^''K45É󆁚 b{Lٳ7mlVsp0"<<,N+++)?_M5㘚޽|Enǝ;2QV!7n` $%8M)&ea!Izk[jǭVz൏OFزelmN(jw=y1Q__oYNPKJtf&ܼ5B>(W\ܪ}|pp5/gJRQQ()*٧CK+?Br8҉溂fG;$';֔J236! fJXd'* q=kwMNb^tgF \ UTDsrRXX됺+tєaaOJJZ]gOWHH|-[Vc/W֊ɷ$ٳxz ^A>44gd{q}CGGWW/+˷ysUlg'ao]@ ZVVC_ߠ:A_32۲eCkk;Ncc6e6lkn޾]͛+W ?%!!Enn WXز~_@ sXXȇ +)ٵc3󼼼MΊ=윜P]_8Mam9IɅNm#iv39Ijv{&&-gk8:&,).gTU:#;F(.^F(7ƹKK!hued#@0SBB/^|D;jjb ,%.Ou\FTqۼyԧNm߫ja!?'uӧarin"#~ެKs5ݠE[eAff:K˕Uʄz10*%$Tmۦ6.b,kΝ;u ; !7<<,QQ+9m/.PE&'7V9f>MBC,-cTTD~iDccҶ1IIޭ[V3;x07)62rJbn LCcׯ?he-[_66<~xpp-%++˧ r "<88jcsi^bÜ7Xg׮+Ϟoӟ?spH440G~%իO[RC9m~~YTT".LLL&'ׅ]`JKs`㫎/`!'Ǐt"17_zѣ%K`+@ܜBXcbbիOH  V_lo%/iDD8 >TOY˨  ^(*,ɓuHgA^`щKZ,aׂ9;3엜TFa/\q+d' [D"*V^JJGRRnbRH^gm\qӋL#/==Ӥ۟,)GI]Wⶀ.,(> ::K}}צ>zRU74|N'$) }aI1m_SS4/ѧAYݻDd9[•٠AMMUZM.XتtTUC®yy޼ Jԭ~C{NpA$/5+أxAl/@8P(TWa"$L\!+!on~%-hwHB:66]p)>ZGgի  ^쮮aaz{΂3HHnk{3jk;͟||::Kϝqagg47A ͛ϡEHX4PQQQ88ܾoi 0 DEΜnb\H,T{lwJ7 e KwpH|>Ơ{wu*v/)#뛚2388a럌%TV>INvRWmBCmmGorBOO"qHnb_`@UEòu8,˶勏%\8.!sEb$29khxNMbq !iiw)(!jprJ;zpm>Ej΄`ʺt$}V N1U\11[;㬥$VV5i]uyRQQHݯ9ccs]׶m!!}}1ܝXdI{(ԊZCΝD i888^eJA$ ΋ ,_NDž ݼ>88:!,Ozxh#4r&jȍYajzڵիOוC44kjnuw"[20uÆ؎ޫW/_~K%ccVSS)N--ZQQh׮5%%ݵXѣԎJKpvNlJMG"֊۷>~ ONSS7hE"x]\4^R+X^O`dڵK銮wHgA--:$<7q#&ϜzwASQQ+ޞa)rsӨxK 4Hg/ f xPRRK4r|:[[M/+(h:(bIii[k;tLYY49٩oe eem?b ^|"ZN.!!t:dr y泱qLnqs_EE ?^z钳 ffQUlBB {:8$I{`+(!$njz4Vx2FD35u ܁hbrZ\g*$[ۮ^-zpp NDG_WQ wE\ܖ WqqPрkO00Дx{QSϹV,#*.i3Cæ22| ϴ=A-[4uXx{gݱTP(cc:Hq*bb\S9ih[#&={TDyj uBoARQQθ8Ў fѽ{,-ő?@A]..)'"_^\$'*BOOrx1{`qSSPL {exztxzܷ/{|x##7(+PPVӧ֯r'&&ˑtt**ܽp@ccNJ+*޳'_o_9'!}5i"t/98$FG_>~ca1GK>|bm}С={G0{1_*/vĉ27} eN@54"#7de PTfTYYٝ~BD^C!B)ϝClׯ?H55թSSagfoNQRR[޽,7 ,;|ӧ/QQS<qoJiVV+ϟqP(ggWz/&88ollSLN +崇"%*ʺh'55igz@zqݞ,FSʤ޽`kUlEcSw8wN__>ttpp0] 8?+(hA5kYmlϞmm=f` "%"̙Ш9zz$'F:(8xp}hhў=S|n8| == 5v%mO]E =ϧCIÇoLMٝ_J֭)xY;JJ7oZX#Y#×HfTq0`7쪸 baKIqzΝfͨʼnr˜ !IɅG>p.]*B$#gc;0,d?szggTknAEE[};p"ef11{@nu]|74Ԝ,?B) D ed_ѫ3ʼn99yLGg4h;c oa mlHl%--LL ed!c{kH11"d:E |"#7pqWik[2?FNNI?ncf#~rz]v͛띹V…`#"J6l[RGNDzH]]')922eMmqɓea/ xWbb\%%`"yU\ P(߂n HH#1ѡԩYGG/55??dN]NOKSlj*WXOHľ}kHA8o_2GFƏ)ܸQP-Z'EAh4rJJ et]ݥ9?KYd܋{**ee>ɹz꿾.zzPER*+45uܩt?Zt38}ں%VͦMg&~n$ܝw>=6 IDATڵ=;;^úYXD ͭ7o>h|<%%Gz>F:\`SSo++yXPTUծ~uoE:]ݥŭHfTqc%^\xBG;V8:;8"** JHˇoxL`bb7LIu\o1<+ޟٽ[8ٶM޽Dk% ŋso!SMB-B)0PV- V*+df6`6IͩS嚚|HkjmzzUUO4] eho jdf?yr˚5Rܺ5IR2`ݺyM mtVCCyZZ4R1h`RUE:ĸݵ< ؿp|U9@qq7wNk[t!Iҥ vєw>^33_0kK+SLƍ uu)%Kxv DHGrr2+(^z___hbn"#~ϞR9^M(-h<-% zwǸJ??Ǘ_,'\n"ddY}\ x䪧̙;wr **(ш8&y::8Q}O4 U"FFO@KRQSQ_,7 &'7n~ξuk©S@ Y|泅|ca-$qnݺ[I o | GzRS%';.RpS]!!ꕕk())!>pS>I,9JIIySvv SIql '11.ik]㱱۷kuoQ$Z< i_30bF:i]]SLMV>zSPoT?u떅OJ 2&^\\̦r11VVP G-/n&_ީ`⢀wA"$qoO,VQݿPJhDEpVם;O^ݎtJMuHQhe-[OsvNV 5 ((ȸyQQKqq||~L%%…^8WJֹS•%"YZ- t_|ᱹ5B+,l ۶M# >}_[{Ʌ ||nttfe%eaC: 0$}" #, Ç!NN2.a`piݺS,z웜Ċ*.%"¹{~xx 4oeW%*.<=sssl΂0##2NIK/ӓD*%%rDD&y]K]hEC]]^2Ӄ`]FB&L/Y5Qgg:99Ri` wŋhN,SRVPB:0#_6&%>~ܳl٢`SS9B[^]]\]]Gէ^Wa((P||bb\bb\<\S}=$ʙF[#H:;ϫ9bjUAA--4X}zY##qNu֤F'ZZ4ҡ˗1?W;88`D.9 B ҏwkiyTll H' ,wҝÇhN8GzRAuuI#P hѢ;XXĄ][7ttєdq\Q^35?۸Q2ѣ%Kx#G̬ZZԔ@:BBՏ;w تkj:23Q($SY[+8QvU{ shi-U\@vΝ$G--ztt(fDş/ SWZ ŅgnH]rrݕ+w1I]]ɣG#B,?29ێ'OzKKbc+'&&hJAAv11nqq%KxKN( 6vtT%K"? Ů_/tb>+(V(JFOFߠ9+ɓe\/@$6yad %%?ss Z[_ |MIq"żpg#"J.] TVCgfW~~YٲEi޵#IIւ*.rxpsPP޾헕C:L/>vrǎK6)>AAvro΢@ԩ l @E IQT T^\haa )i~4~B]/֭'"IT =uwǠP(+YYqpHA&}Y?VTqbcV;("c?_8DА0B(#YvD%#22"##BwJfHWq}2.:v9Ev# P9qb֭75}--`"ػwСC##,26`0btw׸|ӧ΂0JJ}slٲRB n۶:<OUn~^_ߎjϜ%LL40.@=44:>Nvw())o_Aƨ ΅oe9pƍ`xC돌++ݢ,E=GLL4"vvQQ=-%xddLX;>BB⤒y7[ ! XHuqIizjBY@A 0|Ll^FF'+ݭ ^{_UU33<, 򙅅.-VAA0<70mVS)=:P7ou8յ8pUBBcP" ީ9jd$]^~B__DLRr1DomL2 BPAA&}}SݘgVF9\\6-ON`21ٰaSY&--d` yF-"T=k-+^\QQx 9<~0btuC.),<"#Dsl/ KÿOzoD߾iOj Q{{C^;;CAwwMzzjC8jj̪U V"E|ZzqADCC͕?cs6`.dкt?^#36.+k6B||߽St<5>>yd4YbȥKx F߯񨣃~JIJHhh܉t`b*.x$,,qp0;MNN.QY77\?_YyAtvȜsrJeqqԔ`HRytmmKj-c--ƍnn7n822F: -3TT\ {ny{ nx裥rp ozwoڋM~@{{:v#KttF=(fN F]TZH@@gmmsDts766}OAѣii`"HK Q"E6T/.^^+W,NzI%eΩ߾ **b\\ FBB*~~;΂0VVzCC/_ 7Ϟa/IVV:Pw?~Eaa.##M_WVqAh||.""66W/@4 +(xQ[䤎t޿Ⓐ~?aa;w{#!rH/CFF홙׮ ,,tw=}z6-퀔PD]i::!IIUUBtW0#dݹ#رm59KXm{dg/[).amPVVOKqcCC)YZ*_Rxxv߹\YC+IJ.s1>>X%+Svzqҡ 7JJ II-~sgAU\l>G:#"?⪸@/.bB ~'`0h==kOLQW`;~< {33M||}Cg 쨨0 VZ &&کO## A󊉉F ҥsFaOXXї/$x ')&}}DgQDW+?22ᑵgOq^j!҉$)NGYY-nn׷lYY^~N t(jlbfen-*SZzY|_MRr1 =zԄt`@66QOEeg>>}ꡧffC$0k<<̧Okܫ|'K޻W`00wMVV-Yu[Iɛ'4_nr8?ٔ[rX,69{0 >tŕ;9mabA:̰} DEl!CAf` gRHB%Kllhj\uٓ'΃ͣ54ZZ:KK-KKKtcNxvŜ!%%إKfO=yRy ֑2Xüi2̗7oUT\9LL9RRrT]]ҥ!\Gn1ͮT7xMG'w¥}!!wS#fǏ[Bd:̢ JKM044io[[oV}B%??a %Kjk`APg A慕55ӧYHJ>|78]#zkd=<2ɹ{vDDɒ%vmQ.UkiI,\}{13әDE% @ڼYMM'So8\ S(VVVq,_i{B@2/ϱƍ7WNx`suÇgkk"66z]ݐW>.]]NN){nʲ'2 P5ãaaE EEn<,#PAP]]VWUU*+OXZ*j2qYɓ$֊_lp~@򲘛G {gı3=ժCQu IDAT׿--UF###͹s;RStYKNY A Μ:B?el,MKKWxyYׄMN+8@XΞY~֭H ..&::`\'*BӫYnQB=0Cp0gv&&&/\vr^{g]\D,%$΅?O| HOces2ԢE;رcϿ6Z"%1JYyI 77=hLt>{VɓZo޴kikh?(`ӧ  --f;;Czݲe tuC ^YO4Ìસ)<)) ceXQqt=YjkqpHھ="?[70\Zw ̀*.6ԴT:Q:1q޽ݭik\RJ]ݵIIU~bi۶UGہɤ*iZZ*#JJ˴$ܮ "GT{O*[o~..~WUUNB:,qq1P/_bdIRrqZځl Ԍ̬y:p'+y\ʊ*7oo ِ΅W .]+d@=[pp0<]]+OQ'0ss9or{`WFfϞw~…lGJJ ȇĺŕ_dfd$=訮\12(-}KBXOE_tZZF```f-`[+B44HMQѧmPvbb|Hʕ| |< : = OTf|ѣX,0/M799y_Xݻ55Mx3oo;Hݻvm3gv} .@*oݻqtt<5>ZWIiixx1`:Xl@@u!e0̴bfY%)ae.%%tTo[^04 u>⑞B=Kp!L} ~?[55|} xyI踼21ܴiyl9xvYkttB$/|+dWRZt>~j•+Q[3^9}nrRQqrq1n /oG*دXY "#K'񰝭檪w|͛O>#dNmb+鿫-YVm(zc|[/$yC@SZڃNGGЈ #22gYZ*}˫^"k FFa/611gOpq1~ g/.FbfK2 Hee_+/?M\Xhd$-(Ȏt2::X%'Rk׆j7g-ds۷@\_Xg^BB31xZ ̃qq ^nH \jIIG~~gn߾,3FEח,*rIKf:|gTT FLM#ߧˋ¾> :sFQ)RןovvWI,XFcPA466X%/\Y\|s88$mDMMqhFDEy^nC:03 cW )tA--Hg`pNjjsOKRP3n^Ѩ_Pt|xH&_(__ڦ'۷ -m3++}{0k޽ sS rp0tv܋0MBm߾%.n߇]**~ᵵ ϒzTF:ݚ>wtJ777 2‰;{ˇbO?7UlΤ*VR⪭رt#n6,P/*zy5GGս{7"eNE,O+)y{z;22_x6rvV?qbSٞyo67\Y]#$4/^|G: ^(*]Y[UnifWCCrr^55Vшòe<--CCHfJG>U\믃 ȑԦHg抉&4Դk?>@s纸I?lMxo􇺺k~}s۫zVVVo_% y{'cc.60B:\-\o];;;#++ P(ح[N#A s_4.\Ȇt0>>\-#s,mmjgu99ɫHhhяqXlWҥab9ѧ"տ}\ pkݢEi˵k=`::v ?;}[}|Ë=t,\C788d OXX hƍyyK/`\H]R=hotLY uUUnOpp0  wцBvvW^"'k ޾{kId[299IISݻ/oذ$0B|`bTϠYA<;uuC&&iݲ!!WT;1'>~ JNs-`e#ǡi۶~6mi. F]-[SntSiI` rPRR R DOO30%i3JoxxlϞXn]Сk?6ᖕ]W`0PScLJKߤ>@:<ή]k)@}܎}5Mvv>YXhIl FccFFHg }p-811MU*ڥdg۳ЙGy-HHH} LHg!q;vlݻG==wrs3# C%?קbX,o_ jjFvÇ]6{t"]\j9΁]""IuF__XHǏ۷DgA,,tyyY{ꮍޓ>q}<&&&CC$IfV3rgF~kA"ʊ8}֯_`y玳3²k0*n3<_\]6m:DZs *t|Z(4FNЈ@"QGFԼ7j``$1B4zVM֛lM>QQ(ԦM23fgQGW˂&&6'&Z30Pû _faãp-ee}hiIoVXP_NUX,67NQܹ;UW(9}`hh4,hFW^^z.**+@P4N&RzzꉉaBj3zzٴi_돐M̝C:`ffa| `'Kp-_;'ss3n +zPjjJ,\vr)ba34(!@h_in>V{qa0hEIIAGG;"# ]89I-WP::}B&""{pΝ#6-C:A -i"CA~Mͩ PCc:MLL9vzllb.9ZSt͢EHA ZZreeZZijJ\ᢖuedx⣹9 \X,6:E>>BiJ/11̣[mm?{VP4>>X%+{.4!J7S 2dojU\HA 5K11RtrJ~Ѩ@^/~6S`0[hy^֭| ի\]&' z~@ces_Nc<dppΝHl|Q(=y ?U\8˗*,twvNJL܄v_RF#𯬬^M_33ch4AW%%U,KKn@\cjBByy[ڳ'i 2cciVV̙˗\ɇt$IJ.M(f`67Լx,s>J)(Ș@zxI}oju [fCaa.?"d^׷[['33޾iN2mu5ee m 0S?YAk>0 x3-e`g3)~ACC"&`tvқU[kk_F|} =kzP&fIQǗa/vMMK8}A 0| 3g/.XXh{{w⯖. URrTJJĉ*FFo0BGݻ/ ߽{MA`\ CPرh^ EnԘ@c n[X˧~XܼҒŕGE**.E: AX~qru^# IΝ5t,wdnncaŊ:LMfWukUUwde;;)PP.yԪz\]ӔZZ:ڊu (xeǎP#c3$ps3OLL)b810zqܞf^Ѩ0SvH揦Ν뜜R>-d ?4! 6T/ʪE: l_KHU˗ZY)yyHg2ZZ* w_n/.~ (2mHA0.L ?񏉉~d ŋ&ee'>-%u&4t޿{93رmHg!}}Nڴ|{{ofKZ'WVNNbikjN-]ʃt05pMmmNM%y/UW'7n<8[DšQzR%&ZP(SӨQDpcbutLƵ)ZNpqq萄/67ww Oů6o^>ӽ[<<#,ۧ066r{-_@IiiXX1zA'*7 />>֏Z03!SŅ#(ݻeŠׯ?EEuy""ZZkB X23ked(do:z{]]qq1!u Bijյ\$5566JH%[Y)Z[+!@['3;eKuBc_ڔ UDp55͠}۶!!wz -11Qqll"1J^;9yKE S !;~>7J9;of==CwG}ۑbCp\avE%&ZM=67=c˗޹sDP4h11Oz,`A:,MNbjΟsp~h@ ƖHQPKd " AH ܗE8?g`$$V̓]{\nRRAKKu񢉎NHbbGuۉI{ذA.2Z[+]RDWw|%++nݢ⸸}W>ݻWhtyip IDATF__!// ˂^\X2,af{+)R\.;EEet~1!Γ\ mxxҥ¥Kyrrͨ,UUUu ś7o :6vɓYW:47wߍt9ii41xф ) RU۴iyzׯXY)|&W׭`~LXBxHϞy=Vc-EII/y}?m\P\3PR򺼼M eg;dgA`((О;G'0K\||[#d:;LL"98ccQQ33e**\\ŕy&'WOLLBuN%%ōR…#,̕qiϣ땕^aJfF@ XSӴcGa8??[qkd9("іrrwdA bd#)$Tq0`(HejccS_TUoZC`F.^4uYXssȑ<ɸkD򭬬\V`eww׌-i)Ԝ>7VJJ*ѷ=1rr@K KK˗df֘Eׁ+ȪQ ɤ$kFF#jjRuԉ7o ) vͤE',̕nu׮\FF/*,<"--lHbł/?!b:&23A:MNbss}ܮUUiBy̴uL~'*.,;66דff\\RG0OxyYΟ׿z֭g+ˑ' }ɋ/]*F:,}{mÆ9UqAd` )++N+V,PPt U(F)3< &˙i dpҏM?h{z;))|E8?$_SGW׭H!JX,6=;Ϟ&'[bgg@:@@nȰ{NȧO=H! ѥ44FFH K˸V\\H!n,,tnnŮ,,tyww--rt ޿q7 e ff:7"jkquMۼٷ="bwn!%H mm5?##Mo/  CA&pMC[{NCcSJkk=^nC:DD]]?y,I\P޿|r),ܹ1:r3::\mn.OMMʣ-e5JJ NNƏɱ ndd|dd jH"11>gyyQs d+V,@: y)%%JJːN5krsOlY+qB kk%zzjuqI}1)ɊFw_4mݺYS3C͒0WJmS-[UUP(gCC)sQ~3'+YR[ESSPAЃuuC",*-=i. t(yLL}} h*.fdҋktt JʿߋEPFɳbmaaa(򁑕C Z/`eRs:uƍx؋b>W+GffH_VPg`+[c;13BD[7$dWes֬9W1,; `Ī-[rwפB:}7?LeϞ=y B}v>gG@='AXsǎ—HA^llC:,9UejBI37<<g__DyAT+++}zŜH'"""㓍_Ѱ"s׮U9^Qqt΍%%5Q;EF\;::1SZ0`(y !/SJJ=llvE 9WԘ(J5}HpHgիa`g,(~u ^,%%&!{Y)YKӈh`Jùp4??ٳ{߯]+#s%H炾}x`n9AAЇ`;uuCܮ;:޾,!!trљ*;;[GGk߿1׏v.9f۶U{őwF&&ZFXXQTTi@hq;11e&vv(##OVWa#1g􍊊SS CCvvWb ,Y‰aS*99Ϡ33٪*w;;e**R4L,jkw lH]&/b/aNLzӡCYk` ⒮6>|hhD030Yko3\A 8}]+hj# (^%'/xRq``$%2qjud2hJ~X{q|jD'*S/QQa%KJ qs#n$@Dp^8pUZZ"_Y['{9"bwnҡEII;Pg;2˖u뙏McxZCy}FFÇWP(Ԋ|.IE9w.egASSBP=,{qp0JEDso]]LMe'pտ.Z5H-或 C\FTURSmov^9EN3,_WP mk o;:%% ;77 HRQQ9|pGGÇ飣Ϟ=U__{߹sڵk?rss555|fuu5AYѣ'O/,,|>}wܹA}}};;&ww{v/XuǏcbbN8 .]ͽu">8%cbffXZƍW/ꌌ}JHǏ[llttֺnE: )m bdsɪb%%GdϞQWPSӄ3b恵3HdyRRթSH%$%RU]NG'…l.H7oڭ޾ҡB^\Tq0Cde w8? 2 +-\>PSc,޿x1gdd !zz0{Hg7oX]--G?9`igcsECcuQRI.^XTTfkk+%%APpp.//m<==^ɓ' . 7on߾}Ņ.\P\\]\\qcǎcddܳgAݣ444{^E9ȨEDD===xpHNzkj900 dXX$:46~17,''riu뙾+Lq==FQ+v[&[O/ X~}@㘘{EOHbDD߽൦Wڬvb-]ʃTv$݅G45%Ol`:((Pw*.@lɓY,, q|ΝHǁOϼ?":DE咢j55G3o!sznn<% mꐐ"bi &%UIR!O88xxp!%%VqD`wsx}a9k넺3oB6ۂ4TQCj?XXX^xakk{-]j+PQQ׫[.>>+TU5MMM( B666gdd ?CZRRR]]ϯXVVFՂ B˖-kmmAĿ˔::z񰝃moFI ]byyCccci|oU>y(( Ո m?IUq02XZ*TW64tl\P漼'LJGR.+)--.vE:ÇPggg#|||O</r|bxxťҥKէ~!GCCbݸkrr2==k߾}]]]kvoQpǕyAX7;۾wXW7mޛ!kbb20Ν/D: }35NLBLLLg:}K45%ˏYZƙG3'\\}+ 9W׭OHM}JX ByǏݮi7y;/QUU jj AeӧaafEE U\3gtǼ{,,yz\ɓ?4wlLž{YXx,`qqZM/ϜɑRS[ ׂ}۶۷ 4&{vZaaann.A{uqqqF{{{~~cǦ^ddddttjxxԩS߸qC[[aǎǏonn~zXX_P(55ׯRRRM (::7 r zÇO8ajj:Ńx#(ȞeI0ƯHov=hBt622ngw51%3gWsN )6%Ux\QvIH5~gYGG5[MG=adf[Wg瀧gWioo" <qxshV\쪥%$@PP/]2458lQ`(2/xx ]St?䘿-SX9er Ԙ3NmMMKێDA'$۷1|;tsjA::z[[aYmb== œ# iӲ4ۂ#bb MVGGW{aɓnHKKu-[ҥK_|9z(++kxxuww#G|v!""MGGӽM6uv%^__000_&7 pZZ@$bbUfϦF\D"io۳ED~3~K\Reutߺ`cgc܍ʿ0:J,_X2BPڵKݹ sP-,PYŋwݻAmEϟXhA4(kO/@!-ͅ~oߦlMLmǏ=7BdcDE)x""=QI]&IpL9И(p {l@76TE `33._~MM娹)$萚=k_cc"KQC'+llL؟h Dbb>榝Yr-mOQW--/C6044|'nɕ+3g6o\WWG  777@nll2A=ivww===W^kIOO_^^>0iSRRzzzXXX aXRRr?gkk놆zsssHD ڸqcSSSgggLL /He,22kVUMN99--=h(roݪOM8w.O/^*,QR⬬[o;p IDATmmɱY>upnxz Sܹ ?88WdIhf?\\jUW7::&/_~%%!P\ P;,Bv4b>zFM 2'XoŬY|..gbǏxiB4Xnnɓ!!24Myvv%%/юQbLL8*#Сk99딕:nnݪ_*vl­j-/? ?vvImm}oprrG ]\Y ثK:9oC*!!1"w2+. ;~xݺ Fk }}\ns-0DBTqfKKTQvlR P~8r@@s9hg{9p oúoeJok.. wl223?)]FGNA3XY!` 33HZ`ccGkf!5u,>ߎ !dOYXYO/# }II e,`%_..(ڤFF22n71Yvynnn"[Z*nܘrs &+ӧ͛2QGڀ./dJN.[\F+'' E{y]ګs8=Fџ>$8peK RF Н<$--vmRk+2qqޮ%VwVfOP);;: q0 0581<~|Kϟ(݈k33knDi0ǹ.{NdLL c^aPe;ALLn`TkǕU%(ȩ&IFIIŋVDDD1;/$l;}FdhXL{֬Q>}\^~wƫWiSB$^^ I+Fr9EO}r"~~ĉ|]ttG\]SR511Lȕ+wdjcv66Fڵ+o+&GPbuwuuMA_iAA 6o۶c#&&Bj //ڵI}}ߐZv:eC"ϟoeSŕM(]w??tmWxkhE;{_*. h 166F5<чPn``޳g?yy٨| 螬 ? {YY)ss:UFSa?L"X(MLGYE".Z[+MJJccO}g46b 1ئi/̜dZS'4tӧuu#V)(#R4st ..p*_uF]45u#` ]eo-m tJO觕F\ [wtT˷kss>Eo=!(43ѣfmCTC߲%Jdggpm4,qq^C7HpAA%Kܽ3$Ē䌎sskyz.*ږab1sE"x4PxzXX( -`#6mZ}Ťuhǡ;UTfa>++ն ]ȑ#ש?٩&$EpMΞNq''388 CO{` e#Suuc[[ߪUT DD9kj#ڜ9|o߶#E!Mqp++ڭ[\\,g55&'Ж׫yebX\V/quME-FO(qpX*$Ddz9X6$dYhXSS񆆎7/_Rnёް!% g*>\^:-%"š9!p}곛[O밁bb"77Ok~kٲCg.{wgL8 bcKoߞ:,0-e"QsA/.@`z۷\>FKL+ffr69;oۖy+ډGGu};;lzz׋ ֠ fmO:_srj׺uKx|ZZ`s?La xyYGW?}^f-Y2z7sPx;}VVFx>8[^RgD~f/.lmU. %Rs߿ⲶV+L/=u.Fqr2 ` '' A}}B39N#f66ƶ6WqWSz#[T=" EiDEFFz"DyZ4Б#ϯ_yyFFN m۲vݺ !aHY NuӦhc==:XO3юCzbnl,[Z(*9?``pܹCizɒ9Ǐ۟;w?1uvuⓩ*/ch|zl;wv&%9R!t55u_RQ9ViVM͞KAANsG"ȶcl98a/_;:xq0ډZHtٲy))LLN_RS вtd@qXX"hǁؘ#;tJO/rwwmjnw^^zYYUW()"syDһw  oQHA(#+O<<[{yUT=xŋOBBPkzz7m:ǔ +V6맶oŅ~W0z{xx0W86Gzjn\Ð˙dg}U 100dgpZ ++2D")$$ԩ2_~~+-&0W^WtTV6DFrqaccח,A1rmm}!!bb&&;}e//s'OZe"#m.;iٳNݽt鑘OP(`LiXDG_xL{--=hAeׯ?47wdbg td7m:3>]CCԿ6{6G\oǹDZX(ĔHY]axyٺ($yxX;:@DaABB\TxJݢEfM[g䬨@`|ćDV^02 t2,qjj߾ɬZ{KAa[ZmmQ_(KAJĜQ/aczޯ_ɺbpC~D˗3?`FM#;thCٳ0^n;<<|kvVGіo'Ϟoqttx??lV[55x@CCYѣEF/許eKFmm3*h_]ݸzuM;;ii. ]Ս+VDze[^J  d0WxBMm'JΝsMJZpĉRoo}s! EGYXظLAV4 21[n׮ 7 ] 1{yefV]9Xс2W4>}D":݅V,]*y~֭dC IJ~TGچǐ\t:w%$fljp3g̎ʊ98Y4} _H49ٙ 8%%%0 ]YL84)7D;o,]*Y\s~؀c//]pFƃ}.KI oG7?lxWT0X&.;<<{ՍG\hԔvOѩmddҥG'Oy곮 6A;< ^Ћ )3ǭ_ae^iiӧ-ZZ8|Z~~ڡDHNv߲%~c##c$,@w՝;\yLIJFGS[ .kl,Cٽ8*i8@/yA~$$F'XuA##YB+.|id:y0_#[l^\?t gg 1:8m r ,GVpbAT 74\/p QNN9oKKs!l}kk%\ sEDX߻KUu9}#SsĿq+WʻUVC;oxZPPk)@vp@@;RS7JK &46f-*^^g79rw]ɻv9;k^z Attu3f;8v WV8AGGWP5;ۃVSRwcnY@9WP0U0 Tqxy]6l8!(@zz2b ڰAs>>RWDEFFLFFz}H}|uYY=nn/.Y\^fJ#gGGA; :v6!!hӓI,И-9ano\'qqަ ??; CSS'A~4V\@Q aa?_^,&a/Wq^\ԕr/ {`lltt"RS+rٸ1ҥGOoXn)q0QmGQѶ4 G*q22ii.>ʼnS1x܉JJk&54tn~U^f.3,-MHa'vۈ[M""S4q}}n~`2wE; Fp8nN#xxMUW7::&kh,-}hKaa.sl O/B))n߮ v`BLMKJ $$܆ @;yґr!Y~o&*]RPίqp0oYu>e 㳼:ڼYͣGZ_X_ mm}CCbBp8|o߶GBtt/Z)WmwXT)UVuax<`B,A0+g͚aot 7o ͗ x#urRN_7[ĚYY?I`~7-e"QwimT/SThn9қ@KNv3&PDRhhuuIܚݻF,ӧUboC;d9\U՘ZUge>>rFGhG8ᐕURvho~+hnו+sN7MFXX@pBڽAAfOXibr,+F[Zz͏`,`Byc66 Lׯo^T뷡)uѣ6/B##|'33CjF&h?hhh߽ ƍ~~Y۶-wu]vSUhh96F~} P@@c[kkϧǯx:chю{^}YHP*x->3΁"} nrLL/ 4h =ZttY[JQ@#1ΞwkE۝; F ݽ'(wК(Ynݺ޽7MTSڵ*pfxsU\8.ЌP[ PWI }:ii#Jr8))/Wqagv.,ҚEݝEE,ٵ난ހ/?Q"*zfaq@r{~㠯iMӵkS~ T<ge\QctG]=,=͚۰s v־|v 4@;UT498WZ[/]*YPUL8qŊן<阔P((odCzffr^^皚Q]XYPS-=yҲuy%iiF;88{,ot:_>;*&lϞGo jv"! r pixThhURE22ٙ3yRœ9uPhIcee㩯~tIK wwcn꓌0 5|VWע'MiEw \a"ϱ;!DqOXDu]`G +ߚ"fK9ю5kllXY^w) IDATxOO`f8//@MM;s̢SďAAΌ ׯ?aѣ7xr\]gd##hg1c;wnn& Z;g_I>FZZu_iiիc1tM EEJHX \d  ,hFF.\xhjmdC3cG;&?U\@c||hmޜ~kv{,_sjQB W>fK*zz<##0v7/UTض- 2?onFttxwwܚ*5gc#zqA$-Rشx֍}A?#2"gB[1[Մx;}<=2FGԕAjjodg{]k&ddqp0M[2##}aOvfڎM~8AAcngee47\4R8sfÝ;BB}~lΝ&hg;ţ@o?cʕ1ׯ?KMuټYTP[l`pܹCΝs^NN4<??Agn SQ9p)IOrwٷb%E~KKsPT~^aan,| ܽs&CH*Dܮ]_).~Vgw>psW{zmmؘ]YXhl `+MԔߊHGjo36>{ޕϻ qM۫;ΝWVVi槨(qꘘ'hg ..~al|9E@53g6.Z$:_ jkjiaxx,7FOaԛ7aaw2Ћ 4}`"dgq66 --=h;;ӆ N:uNNo߮]&..g1q`` M٨ Қ:;:4 ,%% 5.!Iϟc.f)(?zԌ(s{ ڠ'K%% f)0Qq ў=fZZ*Pt</We/.]reLzz%Z弩;v 2E%rê_c`0>aXΝnnimm}hBzzCB ,,,CG䑑Lw..t6mJ=|ΝqqhmlWjhPZEkEZZ_43~3%rNGǥ۶ebđHpAAagׯ,^,ppvЋ nߞ#)ɟ]TAv4ƈ@Q h++cFی66 "º1+ ۶sXXԓoFG`: ||쵵k.Ysand]]3՟98/SFFKh(K<0lWP Ʋ+WWW78`IH^^zO߾T>kW^@ jaao _sV}Z[{ED HHHOw=ufçNݝzCCWɉ9:&SuPb@P7n<ԕ* vaj][|f//=7o>E=Z`trZ͚w7y zi22"ΧsFG5=<Ο/tδ4YY>@ay 梎H$ݼᤆF+t=ڗ䨤4 h֍0ؠJ hSF+q&~IbNٙ22\֮MjW'O}6Bѽ1⢵ϟQ(ԔZdαc7x~?p6 5kkNA3s ?А"ad:|9==oFo sED>mfa ÈהD,Ϣehh4,JY^+<|Cڇ +09.4,˭[ (|6WoŽ{԰pWT+XݝΚaa/_жraC 'Jl7H$mޜ^[۔>g?qhˏ #yxXVWo#(//[^˗!L]R֭##cKg+*&%9JJWPgЋ Imm}E**!6++w{y @i_lYYD".˗oh~Cw07懯 r^> GT͚c˙Q"6g5̀#KUUoͺv;-}kjNAK-O=͘&%%@~E_`zK!,%--T\udeEI, *.G"aEqq}}v4A1޽{._"++weykaq= c_v0sg;;adXX!5 (55um;vRmK3f{xPmljaxμii. 6 ==ϭZI[>|趲 aK[~]Gcc6mZ啞xe! ER] fpp89LU5tzz쎉5PP;Ħ ./斦\'}V@V",4dtHO oM rywp89*++pgg{|нaC9_'!1#;ѣfw4U̘Nkמ^㊎F;.ww+ɤ >88\_߆SThoc/Ah>Ͻw-R54ttu}U\|›70==`F|#Z IkkKH x"š'0|LnDPQѶ Spݻ  +B,uu; *+ߡ\Cqqfj*8"ZHhغott ŕ.]fc}RRhGh@e6L@--=Shjغӧ̞͗GwrCFF8%eí[~~Y9snuuIkk]Pimq q^tD)Uz qqTUaz=J5\z45p8r-j&mٲy/^#sSXYA_חim}Lff9s?oE*`Bٿ?k88Ԋ>~XAa[Zy䧦ދ[z"iႂ:-7kiIݿ+$r 6s WqAu/|ϞK~Ȯ],-d(џJI)u,Yh ?ˣ47w[Y{U5_iiauړ'fb҄w4ڭa,RV>SboVS'$OyxX{{VjĉR--[98a0-cc$Ћ (p5Y23ݟ?Fu䈈pب;vt{Z5.{NQQ̙ W>\*,8v..4>KHBԅdb YuTZ7m۶$$f?^VUuve; ,hjJݻ0K[{ޝ;7@/SPPjUUg#tt_Ǐ?`ad{q$ H$88\hg 66Ƶk$&QV>`oFFĔ:ft᪭mId.*KJrv_imaeff@;03}{̵k||G;p8\T- 9 5 o;unP o|m[r77mЀ֝sɓk>t[[ڕQTmb1mm` 7׳}R)vvӧkkM2qMM];v*+x60Ф:ϐy rs`pB=6..gZ|ݻ;ǛoomHfN@RSR6ڑ9 "mkv\ihH%%9^Xwe*gիBBVfdT"2??33Css7"\nŊ;vQ>f K̉An5oCҒ%s64t &"45:;Ȝ 7X ?23yO~^EE $BMq =jJ"ڑJ8^. BUEkh%AЁuuSR61mْxqp@@Nu﫫DEa?'%9l{ޑJ̍S,O;?y|_ ޱ#w"QL$޿斶vCЀ}-^^z>\zzG |L߇RAA,?_ZHGGauu8NVVTS۲e۷YDZZѣfR!DBx Ћw0~gZ[i 愄vYYU߽\?bofieK59p5wwa$SCCMxb#(A!!F))hMZp@\ҥ-Ö'P/eff=0 078-5ucI2Ǻ\\'>m $/Akjb|(305^\|05FF?^Wvx{tvdgk;."#m/ -Z0 47svNAp ˗Z q֩)+ڶ-U,&MTZdX$_ptuo}5b'OZB3VRNf&J03nlo'grr34.u̟kEEZlUqDi~T_W!3}hgAXH11 ys칼{.1)et^~;wvʌkmB;KKGЎCCpsxz%_pENNf_刬FY_{ޑ7ohlbs[pݸb py׬%=388ݻ61612:JͭՍpr:͒}劷J<{q #|^i`p0W^^03=Q#E50eYY) Vv࿄T/lmUccNse<w옝rIK 75uag;vNWU.^,f` "xEmެWRc2##{" R45XXPʼnVU̹5^'OZ@-{v  IDAT _ !|/ȞۍWqM(":{Jy L.-`7e]"rǎ\]h -;taJv{yffrFG4݋/3g^Kw+6>4mXY6"'O""_|]]_׮Mb9{օSKJhfx .}#==>AAX;|íY`ǻIPP߹kOcdd,7fٲCRRn()͢܎ܬд56F*)yrFVvOHHB@//3NL;@ij L;vu!3Y1U;.,,bcPCMttcLL;:"S%##L$^LR2s&ѱc7_j;v?gH__f"x/Z$zzuh%W+ݸ;A##ٳn;~ Ǯ N+?yT5#;QM*ׯ?:dE+T&AXgyxjzzܹ4ur:]XdxWℇEDbI>B$FAx??˗9\ZDpH`ѣ3tAMKkR.D33ǧ?3nݩn+**[J~~\/::q?Y榭:gtTJN.SU پ=GII<0)q8`600dk;ώv*/wݻZ8ނKO/-~ϞAGG#Y54vvDF)+8r亩\UUpLY|T 2ݪV9|RAEEXYNLwcci{PS_`ɦMZ[S֭{z33~H33dꀀ\*TP NYȅ㤥>El%Hۗ/?:UF޽|725]V`4utvnlrXPPhm%f̘j%5̉##mlm::Nx\L}g@XXV\X$"š Q'{=DEH7čCC UUgݸG+Q;-,N]r py$8UPQԊbj ohVRڟ`V}!!T︸X|U\cu>o`vGM͞ S h#bu `skkW:4" agĉ߶ `Ars^^9SXB.%%E)ר|;{6ߪUGf":99m*7g0gtƲT(J\\4?PS ?Zniq=i_jςdUTPmN"JLT⚞\8<|.b{I?bpqѺqyy5ᆆQe_ ==w_\NM[{>%QkWssG;F}нjUlJJ}41ul\|ѯ_ }V{vШu<ҍeWV`iUUimC _]UCO־\E"Ս9熆F##m?c)E a" O/p8ܡCk 89%6 < ח9y…ԟGiHr)*Jz600`6JزE\l*Pzcz?1%-%EJJd/d+B%QP(),YT[d)Y"%E"$d_>g _^sߟ1f\s]zzb 0FGoLCC8? N}SCg+DDGFA:ȯTUgHMԣ/ZAoytEDwvc iF|e``FGqnnY**n@: ahr+WRSSի?z䑓c'(ƍffyy&Nqqopp;zzbV7R/_89g8_p:01|mL#iS:5 g)pvvI6'%_z1q(TFF⹱1\IQKKYLJc /\ssB",::MM8sF! P-` W Xmw7bes$͛55ê+yY͹0:H>7f=Ps7ݴiǏ? ٙ%CBF's֭  n03!Cbb8'~ߦBֶ\JrKIMtPSS/p)B}ᅥe5IIZŞ 3ɾ}rZZ#b11:{"}뭫k!zAettԔ3nPi 1h/ϟxxD: u^bggNNL_U!SǏgԼtO~߳'FPpٝ;nns',oLm~옺OM$_P__g & R,E<QT<.RH 0g&CCC+W.B:ߍ.\(UQ ”usSY-~ͽ0%oWHOiCCM_999_sVV4BG==1JAGG='[ottyjj\]ll-m3Yfhh d+Y' #!cdtҋ];;6_iS]ldCM nn׮(l,]ZSw4]qW.88(wt%&Vzݻ7bcc²7BjXVDVV-Aq.er,,dz7knnŭYdLٚ5KV\TPX0TqCPib1smO.\(upŵ,ohAMMlD;si 32lO8 WUvPI3MM$ Wmm骪##c/-]:>1뫸 BP+*^c'҉`|RFΎ*jC<iS..44TAACBeeWϦ `. Tq`f9B.q>\UP6>998ΝF~(SUȑKʦz4_u*0а  &Nipp42YXȎ!LMɩe5͟Ϡ!& 3IvvJ߾Lnʕeeaa&Z秧!l SSv^w:UdSVr߄zIIVIͼfYY7 @K 5./o"eӧ퓤7;VWBGKy7zǼVWo'6מ(A44 B*.XLdAeƗ"gNcgg65 +R{KYsshi={tacuLwNܲoll|:5q{eN&gOx$ Aмy&&RǦ͎II$I<yfu@Tdd9\rrjjn +|wssF\De_DEX̃O sG*7ncPWגr hJ//zϔ˗/!$tRFF 쏷PW?`ܚNN*sO SU\10DF+:TӝZdѣ/\(}OǼ|;AYLl9[jC'OjK"ee**:YZR~hwse~~;w\LMNDB K#@D\k_Nj8JPSSkP{--e);zq55z{狈xhjݽZѣSׯ[ZΈ*Lnj0@Qx ~%_\H:thkЕ+wtּy֯_~N!e^˗ˎ˜|E;;˪Uw"i6ΟAMҖ``l,ѣXV2 dho6('T)57<ށ*i{BbE::>|HCqq#7![?~ PD3R֭$F ZF/4cϠ C *,|D1uǎttEEN1y{{yT= Asg?P(Jpի\L ͥW^ʳ1 +?ϲjIsqQC6 ߿?>Y__ ի#GE퉏N0stT>~<ǎMehB}YYsZZlvݭ[NzzbVvJCJSSk@@M~LM7UV//wQ &*d0@"ttW[zŦV] 0+V=0,75v&IWW4*<5](ngϘ6::d۔a常{wt#66&]] J naa(J]he%WZoH1g(G:˦!$xţ4ijn쯬|M <ҋC_jΌt̬#!<;22%'[y8;o曱e!"Nxbb_Y`HNix|l˗==sqwAкu'$%.:9@:#'$s祑QT_ A?|؜J>f Tݺ!Bb2JSVRQ\MͻxK//-[e=122]6 |$xQ޾ݘmmݾ""ْBN TqFGGgͽ(A@ (yg'RQ 6<{.1Ѫ2vW]~i|euɓ;!HA@B :FFK^x 8s33|dީFNruU;qډ׈h@6oMI~gd1RR,,n='C68{d6vb1..YY I 6vT!h3V+(;;wڑ2c00+]r.Lw_?3669jKCCƍ^D_BAME)VffmU[oodHl콠"__= adprZZ^n𡻣ff6$s dkk}Ņ JJzyi12ΡA+XoD/N<[fIAa44BgWWաo_9{&d1=zon~E]][YY9YL˗(ݻv=FFee.22|H'B6ge73 pssہFϞ- h|_\``pi۶^^'/C)gO]-I3E˗/?ju|:?DEPxFDvMG'+q}01ݙV12,%塩idO ِ%"<';BZZO|0QPX3h_ljh[7WzkIɋ/b6'%=@tuE\p{ŋYn\]U2n/U\Ӣ%7T^YX׬Y[xSPٝ/]O_ggW]DDO IDAT#~YYMM?K\bbݳ)EGWֶYYZŎlrpA)20̹6Ylؘž?'Сex{ENډ`/ҫnbCC<޲LpD?xKB+( ,= [TTR#0W^\V@S_o g.)W=0NMmCnm3cz|ff:Ur^YyÇؚ͝<>CC W UDPǎ|Cҍ9CBaYm.ѱ*XV:nFFǏHg1XJzz5\J>,۷#vP(66&YVLg$OUTq܋u:u*A;t=wpHQ>ȕl*ER`u5DDv$ vC!ͣOI9z]{"NRvbBjk[.]EGGTw #֯_aJ?m[@BB^B~vvfEMͻmBCKlmotܰ̏ Zp7ɼ/^|`P+\Ҭn#!Ҏӧr5`1EVX={E(SJFFh#x hk_x#q"SMKgAa&&;B(6ؘ23m$$VFdgMp?h& c'ȶ-edΞ̓erdeeسGҥvG~::D:L-f͒3I}'*ff'ֽ`ihߺ|`_͛W=ǏxSMifDŲYY>>tHgYe+xccQǷIײ255߾jjn遁5`%s/33 &ZH&1qfL0O<#ʕ<<49 s%.{FGq.jjrp޾BQ g=[K+lƒNN*DDCB\VM>ho$#s63fX,fE$ꔜ?~E<xP÷a^ [ۍ##c>u>D$6ylK55 Ry(55UdYFF{t{z^hfX_^`eeHJ:07qU]|`-gV>A^/7qpQfʕNDvUtuͨ'J;ΫzhXSsKᭁfYd4 AT65RT/8H\mҥ  ITwt.bMM[]rW@#>c@~P?-uR1o'@6ثW-%$VGKZ/X0ןB<~AY90(q{ h566]!#5-@h, 4nJE oDE==xpҥ\?bu TT4lE(ޒ>+/PVvuZu}iy &0<<RU\55UTq0&o7rݘRSS#FZ'?>8(= ۟+7~6';w8**A))7xxy3 cn.p\:t={޽~~7 >Ktwde' gO˗_r۷Q@: <ã44XS`"TT`#Q+<2x :~\׺PEFEQ:10\lS`k84>(D23f&/*j~4Sefyٲ7I˶m/מ=K^vv,,O' ϟ/z,Z5 ~y0U\0RQYOMMuSN{X2U\?wqr‹x'T{eB,66&o##[Zmɂ;; (W`"@r_`0}FF %N4' qm&plJQΜђ={V𝡡ё1ff0Q6Ԋkssڵedny VWq}򃃃/rʕy+d \fKz{m՝8mHHHee}˂B1Ew+ ,\)5jX,JJ'Of; ѝ)-:8sjS|8[mذMG6m:mOotũVV h|3fko%$Vzz撴 ҿ:6˯qqD'$)*>~|~,10ap?}10PVG^ҥY46z[鉁.`Thi'Of ::*#g[fMU TT]?!)iE..6ϚW >bdtEFq׮Mzz=79}uZZɰZ**7nsF[N/>Rv-[|}} ΜF:ˌp!cpѮ]Qrr54?jjttDSKKؘ3hi j8))7>+Nib0MxiBjN)zqqrζ^\Ǐg-^B/e11=+˖^^6녅 P Ys=XS`cxnP-o| G|ԙ^  I%6֢Fȇ H3U;$wE͛y6euau85579722F]447Bkksn .dԌwk$ R?w!ebupHCCЀlb44҈''5I&!Xgg?ǬŕY[Z"0j061TkJaҹ۷,.\EpGR'$۱ȹW:::UGG4$xll݇F̢Z-wq7<<xK^ޯu;}J.gd?o~p'']Rm;aa?RR MG?._.D:DDml<=77a;[[EVVNM`*U>={;;I wtL}=)jC޾K[bB ÇoSSlذl *YYw -) gd= 2ʢadd,/OA[[:[n#kc_ o=Ȩt70t+--ӧ ߱Ca?mhh, 4_zGZ.vuxym*X\|YM-80pf}Du44T^^ZF##c--ߑND$''>>Cq8wźkddԒt08;;Kep-xN&&Zgt}/_~E:L9W׌'O>"XLt!XaR*)yAĹk^JhdEf վ|1mA dhk̂~mm=99V#7ƽ--cm[cͽD_LÇx<ԔA2m!P?ۼys}D*&btgm}t}| ]r$O[in=:z|@Hk O~TW?斥/^ZꬨDyΝa)**+*͎?廷wƍ&@oYYyFPay:z|hh?_Lu46~ -QW?/(>00|Ď:r77@7%U\OH+;ۮ[K+HǙ^$iǼ%mmݤۋ Ŀ}UV~ 1~ŋɰYY>wlҽǍbວS5dg N\fa3tmͫ,-c;:?̎*]J9s,RR U⥣s T5666:˗dJ<=Hh}{33m(:g_  4 5͛2ճrrr455|1#ׯ_>}j* Jg66xGZ<]ѷzKN~YYOء'6s7m]#.q[p%5\ORrjd38>-zyyCCMl(w(!aSv p"jvy U\EmI77uy=^Zz̉Z[Uطo .BXss{dC~~7#GZ > 5ٱC*ZZ,`hh4H Tq0],YYllZZaϞ}B:]]=j!^BB\n9 3C H=*jOqۃZ5eVVrbb+J#^||6{{n^*55ՁW6K'N^hcHQ?1EEݾc\0o}t<=#WPmmA+Jةm"u&?c076VCJOϐcLǏCCcׯsq-@:ίed m\NNή.RRRP(󅅅,YO$%%!Zx1م\\\(ʕ+-MHHXb ;ѣG=ztttTJJ*88N4}p8++kAAA?~سg… .]zȑ_VG77RSS)Ϸ)ϟAةS-Z{?~i}^Ǐ}[[EkkyVػW&'q{{TO$pݼ,!aߦM>־SW?HpEq-H'Hm;U`'T55*7KKY4ldd,7(BR+9@իnSgpq OTx4<}zܹ3gttt@ݻ۷o=]Zzվ}߿f8ccIWW5a`ILڠdB ׍O,B Wkk}Νa EENڔ<9]S3-'ooy5ۼy;_TKvԜruU[l$W0()yKL>֮غU l>}JL_z4Ƴ񖦦R,Ygpp1>*.0i ~~7N[7{#7(͛%K74|F:0P}ſYY/_~ڵGHgsp8='ێ>ujiqq99722F}I%]TshhttwLq]]H皚*NNd+)j2/H@^㚉99a\. ,3L\=jxӧ,9]7mkG:Ԭr%KxsΜ={]x[T?]Kq)Anjjpׯ?׮u 8q⯇uuu-]TPPà ׄw pccc__s`<| N Ǐ55k|`qqPmm-##ȈDZXlWW׹sTUU b0ڵk?'!| APSS?W##/9ߑ~@|W^}5a/^ߞ>///>>؏RRgtuGGqY:x<;OH_lmWth3HxxɪU.""Ll##cQQwfJڙhhh47E=Μc: :; •pb'Zoɓ798Vt׿uӧN (1$0X롳?)K&`n tim"e6™鄅rɳ#''kfNl]O?g_qpP쏋GEvsSONy''HIwpH"^-uwƓ2ؘ 41NxeaB h틝Jlѣi/PA444 C*7rq-ʪ%\Eŵ G߾b.l hB{^_̴aee@:ίޫݼ %ŃTy߿ښf!!xjjW^7::S֬Y b|MҲd Bn;aaa aaኊ2555p8yyy?}s99g&jx|޽{'M?߯Z5??$>&Ƽoы{ndaòKvOx^'9xtgexKinMኋl .tC:Dde}|| fDӏןM7>.΢M}ͷ~ĉtt'N\+6lX&/RW˫O8Y+(4.΢;-R&chhI*.BTΝ )vtL!hqs}Gzz5vDQR%%GYY{{珌mwx3[XȜ?_=AЖ-]ddVE;; ̘??QOF>|LhɠqY__=.W(R61qVVdȜԵE{Ic;:~}2&\Mm YRYY.\؝ʙ6VV?uCʯa>7;:U  4TS[CcQ`0,.sFY `026~`N[ST(4 q(?G#aag!o~ddgD" ecctiotYN;UP*..gozA5璔\latTfW܄@ ^-"W=Ò0wBzO;`2 @Ec;A2::Ig>ch(@q'R(/EX>tB FL`2MMMCCQ(!""1 ߿}RRǏؿ[fff{{{^^ѣG<'Ko8<==+++htDDrrr(JUU5>>^HHHHH eddX]]}{sXff+W=zzllOmppphh!5fv 255򪮮knn&dLvSSI74beey1,W~͛?}͙<_R)9FQq9aot ج,<<`Fsn } =>!RPp`?wi>>K.LNyVs))04=vN_yGMV_\8Fߺ[w~dEfUU~6d I `P@^9`0 F7JI9\[ۦ[)GFgrqzB~77V,-hkŽ19rG$QC/B㳲2߯a9CC_ő]#HK/2KN. }v, Ekabrb*cb"; sC uu`E5Lj,Y2ړ(+>jSE<@ߗ-!P5bl,uرLSDDW꫑610070 0mQQQVVVvvvNNNO {]j={TUU{zzIzwϏUZZz֭811A,E/++o|}}غ_c&i"OOOuu۷+))-YogStF\ o"HDR yE䖮]+pڿW066if[׭&11ȗ˫ 79gRS+ܺ[+7YNn)A߾]PQ_GRm7??ݪ*ߘs=uJ@8A)~fio?GDEIJ>|vKMyy/^ 4`XXȖW  `P@Q[\`F h||G޿o;,0%Sܥ|FZDuu ر)!!DE=ev<F^n%Xԑ#~N|^˖oXS3 Ǖ]bqJ>#EE)4~oﰨGxcX@*L7n;ݾ]v gtts$Ι2>>nɯ_{j/q%wT,Y2N۹sn 8x<~R{L03,';88v ӁMtyX~d׮+RgǏ8>}==+V h+W=vTvniQPSV>O~vF[?422nhjձ7ofןYYo.uٳK8NO9lll2+덙ŋWtsKJ~~/>SaIII\-YF$ߑk:R嘛%RsFtןad =+/_6ii/( `0,tXk׮:Ù;ll2U‡X6 梻{ ;ZKÔ/6YC; IDATBq!""'T01EF|S@v߾}ǝq``P.&g9.lmUUMi#dab`oRPXf YH]`UbbJGG{A..Cߧ g::xPUu5@fKOHmm}˖ʎ5.\! KN.06;_ut=-NIP`0 }ZݻgKK~;vlF[[@e޽55mwJI-zFM- ˋ=4تjkE统<n{َ@ ~vrJ?ng@TYe@իRh-[Vyzb񔞋T1>xt2jk"#Dۿ>t<cn` H 644 ݿJ ":,. `ɜlu޽1O# IƍNb}97htdi qm {wtss7(NF@ׯ)=΁KSh|-ثWӓZlff?ё9t(+ر& F"f98z{G~p--rϞ_ #;; RnGkQ;bssәoUPXv,$ߵ+͛/o[!v8sEsdÁOSSr>eO;MM]ׯ=,, wR(VVMM۷~;ldy玭UZf3,qԿwwOQWjmq/}q⇠˗',w%$__݆Λ7K0щfm gdvrJ>z>*Eƕ]+@mkR> `S766Y\0ʃ`0 Q==mdw[$={.]x}c zCX{׮G[]]C Cӧu߾[Elrغ50&fmE^~]XmǥK)1>'' ;2 Es>FF:؁2>s"(HVVd說ÙM.dMME"ԯ}#Kri,kC/^4|BrBښǏkv|>>NNEMx<)IHmرm΋\ ίtuÖ.]( v8$[|?3a:qBKX.5x:ut.3,X@#r}}A}ȮwV\DѩU:6MOONrDDDڳg?vSU] vPXjjQ鸸gG?ߵ+bBd*R/Y\@KKΥ lFȬu[߾lc{tYvrXb񉉥~/>\Reb@ O(*sp)-}-mV^+..vt쌦 Σ,_t'&yӌF$& qED她aR$[GO&`0 622D\ၑ=H$3BK9aJ >KV32}`.~Hr> DΜv jjk <痽cGȫWTZ8G5FG'pU-(`Լ>22AhB Thh!!߼i|㳱1ZZnyOVt7oZ~Jmp퓓[gO4E>>;wl''q߾QmE$"01Pepʙ@h'%|90 d%!ԩjxcbb|`Bg^Օq r™39)aaƳ.=jڌYXXdeeA =D}}=(RǏcBCzccMM^ RSsp0Q! ad!-ՇtthܱnAlxɓ3g0):u /4u]\t>}Γ528zt',1)~=6<::QTTF8AKdҒ.-=hH1wRpGy=Nw@Wyexx .88 F$1+JkL-- 4_g::Z XA44H)x %_^EaZee U`H~ԝEK+& f\ܳ?&,̝rmQ-©ۺU\ԯ_{(:NNgޣP"C*H$XrQBgM`1 E\QT+ 47sdd8 >NIXtqPQQݡCp"L˷|А!$9xSSڵ)k|xk:aKM`BvDzPְ'&vv11.qw Qww4Srrryyݻ=q`ظem"vq'=K+V޺eJTݻFuuyx޵eԔ3:://wvٱc!^/vE-^h`!77N4W%.>¦bb~722aTݯj0Khiiי$؁fE|d0pr2'%Yc0R\ χ`.,"###}t&tv,LJ?y="?~ػW^FF=.ab왧Q;>'t%R lgm~8beeWXVV$&<5<"2ch8$lws`0?..ʊھxѰovi[gzᤤ2RcxSSׇ(/p8 [xxtV[[K{g CC]IN.zu p~;ldɇ[ eN8e˖899իW|d<=q`B !!GG'||{gj"1ъ$mmH$RRS#L=STx񡩩^.k넝;/񄜜# pV% RR*cddNKK{⸛ێJ"]^5eeCoSddN*(>`{dA * O׼5<<? as$?pZI&&p]R;*l`$A@xPיxf/> NU@|P{P('O?oՁQ#Ŏ|>xZ1؁55OzڵԩL=Zj,O0xݙʕf6o> N==mxIeא2TZZdhO:"#Pb|KMO)18jjkKOȠ3B\l!++'rmk!#n"&MJJ.NN~y~8kdd8,799aUU '''YBO?=k0bnl`.VU޽k}ZUccfh{{vƍrĉ+Wgaa-((:66sß@ n޼)&&`@XhqI777^^^77Iw+Vnܸi>\|9''ٳgLrJn$5{pq:`bkA啪'Oj#Vm$!om=MMϽ4@g߾y{oP]mvAG;8ܔ>B ((,ue%$n͚3FHJިlٻW>/ݻ11&&  Y޼πihPb\6C##㌌P;B3 eP0<<a/󃑀A1izh!X B Ӯ e' gqІ K?v]GW͛`3[٩22)[iz֬rޝZA/.NN\\,Sܟ948-ͮmF~lYΥ}JJ23,-7qqͅ^^/]zϛFF&sTT)(<7bohi@C FjeTTVrp0ee!3 ;MOSSh !hfqI222GQFzz8TV(g ןӣƠ,EGG `PDη3by󐝝GQxydnn;nxc;ر00-,<-뛵}{pQQATX'))S²ǏlloXXr9NMF"}p&&:{m׮GՕ D.ZZ󆎎jy`3 ??=wǏ{yݥi // E3%%TWEMسGÇooސVSAa9S^qa⚘w̖,§Ok#"LXYۙ?wNX^bi;pjDē #x c899yyykjj~XQQ!++;22с-[Fܾ|򖖖%7&>>>@ ~*%%c >8,?W_EEEXjՏ~q73_sAC qqϨ05@8}:ĉ oo-__]bvYT1zxx<.-/o GD]VభV 4g_{""lZ__ȳd ё*O)'TV~72;gOtQQd36ӘА̄t=54tY\Xg8꺻^ЍLrₑ؄{n@hhDiᎊEB 7 }ut.Qfܳ{`,`{c2#(#o`_׋߯s! S={Z[o5~TE'㚿M"s󍼼lAA0+sr;D"tpQh#'$hށYbco.31%44EI9=FҡuB+W.JJzAңP(55j4Ub3⪩i͊Νc:acۃ߾fgi p~USӦTYْfgbv8VppXLLL444 ?~I77O@}ⅰw~>>}DG]]16+ZZuu**+tvS[Fѩ'&667^-2cex_Stv o)*74PQ ͕ZO>25U,-=nk [io{&'WeXF}Yes /BDD5 o4:$.??Ghqeo^w֖j,a]W\k^kl\t!Qf7Atp-.u 003ϥ(4M:ӣZ\`EJ @|Fpxu׽\H$[TKĘ޾==sQ nnin~`BǏ**炃@A,"yk׊(hͯ_WnP(tJJy]e+̩v ~kn}YYo. ͝{*`Nɬ,;.44t}|AANRBB\4::a?'{HsroHe/;:(af""P_ v,ZK+t">$%YkiISWLk(((OVV IDATtPP˗>^^L`&'q~/>21Qx򄗗(Rs N q%$X6lXo]eg4LDCßLL`߼bc%/.ё!o?)EEQ^^doh`3?>\WO=u l{{% dkq^xy% 5NJ(f"^̅kq0{Nffo:"ƍ֜8"%%Ѽ<ӂyPHfdpaOqqI}PS[SPbAGH--6yzޡtٳ d?[j_``.y͛Wݼynޘ1JO7 kSRWUEvu lf{G0Вz."pXlw.ZāzLސ6CCqlNλG~_)\&'gZ&)H$ԗc;;.]KCs`,s =u6P)666nk{c׮u6P.e .|vIixx8??'77FVRRO:++֭[%%%lmm\]]/_~[n%%^22B1q--`6XZk-̙D"wܿ_UyG'ye]ڡlunPVcO!_g6eOKSPXgO4yktbc袢:24qr2!"##֭b~ ͰOYYÆ Kܻ.)E@'رIwqt||qtY`-۷_TUϧ?f!!ց2 Gׯ_jkk a``˫^KKi'@X|-**OXVV֫Wtuu011и~ihhDNN8?8F6yXG[w<<4d ѣ[әh EhW>ܒTMsEEu^^roPN }ai?l--^^,4g&ʞ>w>Ӆ {޼9aFт 57w'&ZY%]\vxBV]/_hoٲAd\\E#֖#e/(S/唕5pp0lv{U vƜoFF&0a$`abq!3baaW0(?eۈ% ^`RV^v~wO?򄄸'$XνboSNۚsKO28).EMZN%?rSL8'(쳼2A\MMտYWW EdtH?? ?qff8xFNN޹SXf|z.יV#8r,`vsntW9u;G;:33[['LIFD|>-JJ+=rW|zͼ ??<>{E'֖66wvNFޑ=<4^)5:T򲧥 qQ\ ỈTquMqwO3\D=3>@V[M͋_L/DQ En5;sͫ8Izzzڼ* Ejq5 yMNll/Zvر+,|a̒\+۵B/^|驙dvD0jccc93<9uRV^睑HDpQmm[lļ9)m1k `&vLL`SS+6o>oNNdIHxNщΜ%!8 eeEhS2lyJcK0#hh^^׮|1vDښw_pF-, #"L4RڄUQqyz;mCy22'R<}ꑐ`׼7ppSI,/qqA56~k1yKN[[skx!BB\վyy^^+dh!.K UUƁQM1 ( ؁@PTT?Flv۷MVotwqsC#dUV] gq OL`Z\0*מa$X'C̴3">NN&,\U,, ' 7%˗Sys@q'#: %AA΀`2kp\.ssEUGܚyoJAAΘ#X,J,ANre߂L&&}vssW||1zzHSc@ޕFWg6 753{THIJe<3"ҒNI9\ZZo` 5woz$uTD(<{)&gdpg!z[^v,ӁD"0gN?pmssW;NиzV^g^5!߷Z[o&ᴴȐ/_6ݼ9jaK,xEFH$r ?ǦThj^ܾ=ի& WW4T>!::FG'?v3009+,x؝O!Km޾=}9*L!RR'lmoTV9WVĘ(0e.55/aggZSŦn!)-1556}RR7N`G1;x`2 XaTţ6 ,``&PZ\} v 0cee~X,f.9+,Z~[`Yؾ}ӧfK#ףG57{{S?qqDF=xPuJTS[SXxi۷(g"(H\\,rqx[2O6vvF*W`>} .:Rs)bccW=~WVoLOc۶Ӿ^BB,Gexrrshi伛s؞=OԐt(cd۶muv6^ؙh} A1 ` 4;ߨkIM-2 99TTݽ*(];WЁ( Ç< [Fc79i\FA_,w YY%xzqpv nʢ`[^s֭;, lF*QYGG``\]EDwJIf&*x轃Mq{D|[a_QKYyH_#"򍌢ĎE伕69ₖX<֥Sdi˶m[H]EilSG b0`ݰXmйt)7QϟZX 0* _`T͊B|6wzqp0C kR!( @fq,4Of£54.<^vD7`2#(BY'u((Q27Y=l ΦS_N_?\₱ofҮgt^^ׯ2IH,~UX[SbRtj?PpqAgd8ֶm im9i%JJ+c'& !x``<_,`NI9lade0ns33Ý;/IzTii=zVΤWEE07//;yC"s{%6ւr(SS+vH𡫶4W}wX+%%gώmTGʚtu/]z|Ε+88Hn3w{xLq'Ojm |)-=l FO'YY%(+s=cb̕W@QV`cs}r(3)%`Rs81c_mnV\|KsÆPN]sswbbUڵhtHll!ׯOhHE+V,JL,D+:;f0:B55`JJ> @1Ǻ{hR?WT\v w6Ђl6AA0h88!W fkLsءxfdd}Fg̅kpSP栠<e>>Zk^o` 뛽}Z(=tt&& 2ŗ.ߺb~%+-TXTS}Çzdia1 ྵ7J||׮{)50RO/<)ɚrlY`##aa{P3S[[֭NNIe)Z91йs\]SZNԡרu|ƀ? U6WA! 9[[TWo/jq͚g M ōc卉1OIACo]_shhg`B/^71Q.PRzhll"H$& pȰ@.z-++Î!O~D7u˪^8J]c55hiǏcbbyE٧!"=oa0 `G4`0R1y!.c&##引_Ϯ]33:vc;yLL:I(Hlp,ъ߼i\Ϸo}7uu-v,͛^lsK")\W6nSh|R55u<W(&Ʒq#\w6#cyyFF`{ ( XY7n;jqaT0Ohm,sr2 ysB3kruL SI OIiEnsF뀀ii/uuelmUEEy .drcCCEتi88<=w|()<::r"]]ťD!##߾29[gӦ2 ɬ!TflL9rrKoܠ`F46v!ʕІASSSWz@Cz #v GKC,vHyz14 O FF[ ΂ l2~~z ~~W7DE!sBxx}@(ΐD"a0R#"lAm:!C[SS_fED 9qs:->8.Yh#--#G)T䔴r%$G /\xx mmig픫y 5Ԕ<~Mg\]wۧDK'"" >tϱ.ooܸÇolvzr:/HK;}:fII.ە,>=޽ʀ9WM.(ѣ;UTV9rks;%##|^;RLvɓ_ n ڷO=<͛Wqr2efS%o0X,nzo||˗7c{v,տz|ȭ΁s LL?^l˩h?:;Q@cF݈Q8vP`by#(%#Glf{^Gl{>ߏ?\Z笟dmh{qc\hjR9{撓rrԫW9$k3qn3glYt Yxŋzs!/ oQ)իT抏/ߺ1' FE .Sٺ"[EXx-5Qbaa}BBEBB2A//;++e6/)aFסфs$l266i:9='XP-}flss'5k͛N^ܼ+*b&uJ>}B9vEII# &@gPnnGN@ @ 1|9A&ׯfGDdyKKJcpA!ېXS>*~򚁁Y?< 2,[hnW BXH@pslڴI3.ѣd{{=={ --~e=||<ϯsv~䤧YQӇ&>=fhgfx򤥚UP@pu ++(''C{x`FF׷o>rČuJׯoVUeݼy>Io2'}}#OJO]cR||E'21A};TC܉*A"qqxs(/§T/\8W]]13$ ̎!OGǏSo]##wWX|0K[ }@``˗d2eYdh\##_Ktq ǗGGU͝ck ӓ뱶ز/_VXnfuuN$kqEE4ټYX^MMc/g&֔6T]]۵uue-gʭZ8"IF'8O^^6VNA8OwςC TU6xx-hF7>>.?B h! 222`-ph45$]L7>*.((Y/'#mӊ++ccD99?86C׿uBXh4!:$B@~Lf&ŋd mKNN[[g0L,~8mՕ=[[8sskH$㮮S Hz.Wcc}H$u#Ξ ]e"Hwdƍ.muNr2# 63E$tvyz~JJرCҥ @&&ȏ%=x*v6NpS> $F?r?Y'@:pmcc[Ko\FgX_P@XAb2Ed˗.66I=qxxBIM3cEb[Oۻ N[bCC Eײ  x 4͛ RPipo7GWVVuo…sUUŖ.SCݭ]\1*bYd r>ҥ-Z -ps\ɎFʾ~ŠPx...CC 660μPǷǗƖ6-\gespP74w?db\XXSSST0>N^DBMLH(N2Ŷ65wsqq JJ0l |edxha5׮+mfvLٵ@ a;w>9 ׽ 3Ça)) 449Ŋp 3[n-GAA@ ..5r>$䈾 Z@KK㚚@khj:Ɂ]`7GPQqիZ||>WT|r h! ?@zl٢䤧hQP_ml|…@ka-4 ¿yTd|GG;u\#/ݻlxP))%`0?۲Ek\h1=;w>?|ۿ=B >+[7 g5kks1K8IJ}]P2??Kc& ~~y͛bO+}'NXء'Z9954DIi  54"R,44<S7uqH |QRZi ntܲEuvǗEG16[X(s:"=:$*o_|o.0>N` x4nb,(B"ZZI9e:;JK1&4PPP?6F\h0!@HjhHX1Si II,ɩ b[#"bC&SedN߹l}&$䰞l}z@Ӻu^;g΄SZdcs7<!y36!<)h! 2iϞ=v.=0 *% ?JIK{p`pNzh! oT{ZN!?}:_388cguihH89_6o/кʕ+QffzqT1 A{:9nެɔ_:=Q3wwֿx_lcbTׯWDuw 3cE7땦fyz+ cѣf9cnn͟xzpL},8iiw@+Ideո^CƳgi&athhWԪ?p5odR[b 3ˌ;44.'&&zB|SdLMn;j;q"͊ aG_x,m^ׯ3߿T޾]H`WP%hgg{0xy6nۦf5͆kE¢E<<lKF{>ҥ1;`0zRwuwxxnԘAo݊}2CUUƍ-:GfOfCSSѣeegϮݷϐ {d23ƺ0zl'}t9]xSؠ5[[8主GE|z Xw L}0?AMM;\##od>|z4pdd@ 4ß>߿%nE88h(وOr20Z io!/$$[FF`537? '$dfV ,ټYI˃c/_^Bm>xXTtswABBoߎٻyҥJy8ŋt16lw8TRf})ldC޿Ϲ~=Y-[4|SYRZڸ{3 ΥBO8p=Jd Jwl]|0[{BBK'hik{ONNYܻTT·՝OKO9qW\&[ \V7UUmӌoFGodP(ԃ7tu ֢PowH$O @Ғ%4jiIzxX3b] i ) +ӓqrҵ);w>kowgݥKNfgpssK+)plFN(ݬRڿbB}}Y$ja8͵3† i|l quu MM 55Ef!}ppmF .BP!8\E Zs糼sLE@ D(̋660oqn܈P'88<߱y3X 2]N ϯ8OPWܻEza\*{r;"_@ ..I{Ώc&ũS::Z<NeZиkމ@ \a557Z-yl7B@F'GGLLgw=/kj:=g 8\{hhAHs ڲEsnB`~=- u}60nۆRf=H(Olh63Stub#GG<ҥ {66Fu+245%or2lddÇ䡡qggѣuDQQCF—5ϙåB;C$|)z(@貳S9v\Yy*֥ottvGDt*(޶M{F]&&7ϟ_ₜ+32ꮮ!~Ex|o1?UU]ZQW0176D8S) UU}7spKK "+PXl+@`"p()DϺ]X}}k7Yb c3~EP{37 ^[2M=rڰAh-I``_**椟0<Vmڤq:=VT|'lܨq!Ytv]K- ""˃g΄`W| /޹S F߆B>þ`i@x>rl7 ǻ+(ZB$|.\X eddBGΝ:g=B@f? d*SSzuB@mm' 3h ~vvp\N h-  FxqÎ:@ka!O$%W޸h! ̧WLTTIAAųE֯@""Nn<ƈQQ% 僃P/:G'==RIss_xxї/E֭SkhH0]_}nPP5Ic^^Dw9xx-$EG*(޳`fyx'?Ny0YVVoӤ(ɓEEWxzڬ]ɫ69 m۱ϝ3vF@tvyx''cώP43**߇~,.4FFSR<+/)i z |9Ȣo0nn+W6]~tzz߼|"gFKJ̤̬_'C/LZLetUMfii rz5VSz+g57WܼYX'V͟ϧ24ko#"1x3WSSSU@VJJH|$%WN16eV34&In3qPuu]Xlkyy ۂŶvt B A-sk֐H~<ombýfr(TEP!18#`&egw}}#L2ŕ,N@ Lã} 8nd=D99z{sINWAyp>wĽx37Uܬ2]\ Sҥ b&BPeem޺quƉŅ6=ZB@8KۆrۓPIi͕+Lւ5R^X]u짢K@k8DrffullY||Yw RIUUrJBBOp?cڟõR]ZW% fcחeH$GD?^Q"++`T H)Ķ~33} d3QVyzdd v߽[Ab9=iƅ ٳ)AbPPٳkdV4c{7k//OhaӰBBÄ߿YCHH3y(QE強=uee-ʋ$;w>|?4-DٹYMMׯ'?z1_i@^uu =j={0zabcc|P$,ACAGtdd1H݋dJ7ƖǗv/TV64aPCCѕVkG֭OǣOס;?PPPF\::zz2R>MO(+e]accM(( lzSCPn =}=y|.+k-!UQ~HW zȻrrlWRiAA/G\MGYv--}Of/Y2#tN+flXPPGee\JJk[ ́7o2V(Thm۴8@ɕ坝C+`wх@HOvXlG6lP?D64wu 񨨈jiIjkKikKO-䦩W[78ۯ&&ō41;E $)MM ] 0YH$JMM'^YيõWU56hK() +* +)QTGڮNgBΑX)'' AB22{0ٽ>-u\wDqFprzdǏԳ Mƾ~=9;f@%&W\l|fQ} ¹P833PVݵrJ@T>33E0w຺ϟ9.)551|Og理ŧOw|ܾ]vh!,ꎑtĊZ2"jfhn̬2v?/cOK+22pd(TB#mЏ!!@澸:n}}Y33ESSbb0謬elܨ`AkTxx|;v892n7ccЂ/Qx|^8<mm7o:|\TtqәNQQúu,wv@X"&&790j s|8i4M] 1sG˖-x|B@8W׏79DnYZ*>m `'*bc1LL-,䧶VVw<=m`#ffVVV54,]jl,g`^o|BT ILHNfdedMM?>VG tTvtb"ᠠܷottoױO'Ci +^^mn}%%FsݿC &mϡŅT*˗›7c 2]eayyuofݾ7g&V:6n^^n[d={ NNssk7n|TRr`3!XU@>~9ׯǼ{- ek,㔈b117nuk§W  .A H/Af%d25=*<8>l|d`ݼYάQbVVur265wٲFFrff,@QQQ qqADDVHkiIΝ Sp6uLsaa}o7ҒEPA53Fkn鬬ll#rss_-'' ΀`ц<1>N@ K.B/\fҪvxVZziG]3}˿fB;{BAυ odə !T*m]]ñ89`ΦMBx#3jp21Axv K@~7@|9"%jv`淒=<$ F>RTtqŊ@kDJJmmMYfafv iړ*22995DMMRB IIq~{ qqw|jk;SR*SR*Iud2S3B"QhBjjer2k_h. O1*_h⨨y֩_Ɣ4*UW6o-Z))?00SMMlf ԗ/gE~Ztbbo=JصK!SgYY5[dfZ?_V-ټY1gxx\;98<񠡡#?KR6+t~;(~'XUr#̫Wsܾ}{HBC |}#||Ah'OR32p5[^f;:: moXh! FEFjhH88۫1zq?e"d2o/.n(*j,)i;(˖-` ío̢VTIF{{Gʚʚ1& KRr &f@"QZ[v<kb[GF& ҥ PA8\TNN TRZp! 7B twB2>*iU22RR[QEEo30dZ--I@{}RDUǭ9a w߽֩d6pNÇI_dأ{uִoLdǎgBBK-'>}:]oΞ ~}d6Fmp҆QzjthhAAyZT9w:t h- ?@׿IY"$EIܹurs˖5kZ^tRZ ήIK; eSӛ ?ӜܰSqwZ'B&S (>3B J/Y2hN+;..Ho@k L?{lhkK!KΌٚ r~~]F>3"PĔ(jvvMDDq\\Yo5*:k†1mm U<=6:JgeU/Y2 55%Y1NËn܈ڻQS}H`{ C["N{0s,/or%*#DB==m44$/,%;g9WWVZX~`ƍ<.*)1>e}-F6&$3?Ny I^~fu_g0቏>Mmo03S>YYAYYAAii42bw-;4BX {{77 FGMiiI"򜐶)(O@~Ieeƍ7#rskrrj; P!#5S/YY$tuuuUTĦ6@ILŕv/21W52EDIM(!B;8[Y)ϟ7 \Zõ /WWUSc uV(q6G0ŵH$=cf 襊(?pfLVV  SUcqR@@GRR7nlԔdTBe$m֥K%%챎.=pMs]F/GTھFff<9;2BTS§ͭͭή?OCC0>44^YيŶa-Xl+oۖd*fk{oE/G!#HcbJORU%z1N<[0IgPmmg]]'][YSC"Q ȪUVII۶DEWpiddnW IDATjlnhil%d\ [RR+%$V /g}))i:-{yVWwTsHMB`y6{z'a?R',~l> qzF4+wYYՉZ{1(,ߺv..F4&dz&7SꓚP(\ff5}o> ]]i]]5)ָŋə* Nm|XZV5g7 ]V 6-=:$| H߾]S-#(>=z>vC&0Т8*uy6Gn܈ɩE"kpQ6+>{6,=iƅ g\4#tw\۽[WSp]3Kщ0`CC?KKev\) ՓBٳaxGG-{v**Z=K(^|gG[V-ёF"&&@f%x|{R6) [P@֖| Apܚܺڮ MN::ҪS4ƞ6gF-Y2OAAXQq .2)ֿil6A4G(l0m@˲yIลmiU8?{Xo]}}1bQQc^^-M(,X|'$+'P?o7Gʓ995D"EQQTTACCb:nLL &;jk Rr:s%" fi#QbPP)==׫ZyqTZr2?QKKQ3ssErJTddqn&&VܾW^bg?uʊKE.EHOO۝;u8-Qcx~JTjWWwƺNm_h/к|$.,쨮5Y oDB>qQ')&KK mB X@R򫝝 lիs(/§T/\8W]]DBa0\djQQ}b"6>sVVS7%7hB~>F $_ Ou~3Ba##DPp =g BPA&~XyY_ߝȕw9sXBvu tu C A()QTZulXIIc|43 On#"BFF@Zz*))iU~D5755ҿhikik͟'&V-qq~qXRRSv|1&ׯ3 k<ǏS^^{)Z@f >>rCBhh_^|}#΃Ȅ]A%f,#4#@2-_ɔQmLVTu --}\P8* ǿ릙3[ZZҒ֖ƈ5)))) =K.02(Mgbi``4!WLzzBёQ67W]1 4`˫;YX(Y[+͛;eDݻҷ~کS9Lo. NN7~ԡhqqoUUYX(8a֎{_B\3L2jeu[T͛|pNNMݕLa_FVU^nތ-+e͊͛~uy4-:ȡc0fϫ RYad$w ##EE 첲9sA>P{A@|yKKB,, 2S75 hBUUB]%!@H˯4RGӌǷӝ[55T*myPAsKYYd)v^3Bmmk6ܩpUUx|[g=6FHH4672֖g0>3]C$MЃǷ ܹ'(THNNHL͚圐>22ͤEmuvR4x""׬Y."\Tt8JpNUUrrBr``Ε+QH9zzW7lPKf47ٳt__$r@f ^ΝkUccD?ؕ+‰9.3:!]Pp Z@~יc0@ -]\ ˗' /\932%rw<|YZq%-۷uB<@f7eeotZKmjHSȤg^~>a|jbUU18\B Xѣ[bCB3BcMwC&|pG`qqCAA}QQ4:J\x8_tuV2*, ԔԔPT\3k-lebbEFnb,.ΏDBSHN)MM27W27WԔle]]W\\YllYqqüyFFrffff ,C"Q>}B?zҷqƑ#f,l{,˗+k; קmLΝ|$FKJ>xXX@3Pbo]ׯDE ˗> Վ*4TDy:_mjՒǏ^& ۺec8\͛}r(+k\XXqs ~&kppv萉*d2m%R(TeezX~tQ(|F.- 1l$jd$gl,/,lR(-m*.n(.n(*jhhHhiIjiILҥwk۱V,}ddKBbՊ SOo11ona&'GOwceee\JJO62?;aw!^z鞧 <p``}s;::; ,,C9^?O>^_gfNKKOȲs D<]Ah9 `G//#G̀(o= :ͳgiWD}p<>L!/;h!  dZ.?nȬ$S[ۉD}rL[.?}Ύ4析RFn\ONZKX_KK…@ d >mPPP3g~\hPn|{S2WK <ٸ4?rtrSl(Ku]TOsmo(3{88mժΦ|b֤J̙?éǢEg˙ϞmU?8"7w{'''O:~Enwo رǏCtJԩGϝ[MxAM@nΩ=$WPP{[rmm-f]0*ΡRh@In*tD/Uɤ:ccà !^{ߩP(T$3'C˫`)*4޿ˀ@N`XBUQ"r&lĺZDڅBmkڣsjU%KLMVu.˲  .x^Bhl$P:֒id[a-tf( c*B|9?n>I9Wdn|rvAZY/@,.Yr6;ZB|ܾrիGlk=֍ &Nr2iܿ6m|P].eƩC|f@*.iSbrr?4R 5vl-u]H+̙󗱱Kt]HO@|tݺmf7o;z4v„=ϝKݮ^ڸjQk`MvuDsR`nniS̴i= *n΍YZZ;h3ӠIKN&798X lzR⳧IEIIHKϯU*D":"spvJsJ),j iMM2KKFCE @EVii+[a*+YrR `.>>N LHDw}% Ӑ^IyJ IP1B:]P[˯働.P(Tj<wtաCUSNh|:F{W9)5avX-k  B!!;⢴r%sӦUU=ۋ,ڵ=yPC.<]_ߔo_']p^⢶mZ:k_Gu5wCÇ\]^6o^^LLn=*Q$% vsn~Zf=T}v/z+>zVg=f u-gx,nO%A@tbzAVQRQSh[c>=d)Z/K&>寿޽{]oo( htpv8__vڴKL&Shddϥ_???S{h7oHiiUtxA<܃/Dׯ_*FؘGFz5d}'^iEӒ/J33)2HDFzFFz{tr$&fMbW=F949ӧ,]: Q?|ͅJ;Bڱc+pt/Y2diklǿg..['3>ծ]w-{ C ,D뭳)ͭɡRh"ؐ@@8??'5Oʌ ru5Ĩ_?0BH[p0`UU/^*OMlj!&{{[u5M(df&97Vú 劯\8}:tР ׎6cX.^LrF7/|`/zHɓʗZ.հ3BfR(~N^Tqǎ^^?3J*&ss7m[ag:t޻m,yZiIq1} j]_E&svqј1[N윰dfON*6vЂ𶓦&۷ fdd%GF6`LJAA-Pn6QQįb?q˕d2t j i r ˕\M*be%%*`0k&ўh"C$;8D+H 2C&).!9UUlO LL\\ ; I ? >zORS7wSylffƧO`0.W5իo) fkkѧ\*~)T*5`3ºzCd LH`7++3''; `vh4dJaђ:ءeeCbbWnmM0˗?|rrbnj 8thfC:/XܹavMEJe\\ t]~!KM;&5'%Fw M,\xʪd3@*.-Ҷ|rIP}\#:7h]G>z߾EE;?e?Cg%tegW Ɔ(!ܯK;w9uի+>Mb=޵kZp"QsQ^\L//gJSScooGqB8?n`-o0* DCC݂C#_r23UYJJEAMR{{c=##=;1 7bذӊLqfɓJJt7/b.ʇ ϝKIMbf 1# :d}.J#Mϧ9Z h2%hٲގڪmI[&UU,\zDihѣ;mB ;gϽ/J]`rrw(ma!m֬xooKU_tsR퓢Zl=biRRӯ˙΋EMdBURBON&~MJO˕QQĨ(!z{(*vV%3Anyh[H[XmJ L2) wdA(l*/glĚ^y9Lf (4D"SEs IDAT||=f N{-*G"1I$&&P* -y"1=Dk„~M  L-r%h_MҧԤI*4`v?dW r%/F Xj V]]\h 3WW{j ClHCo׮Lnmw쬬_zZD"S̊_" sbO?%~%`6%޸FȔ%rr޼ee[V}ƣa+ӧD=Mׅ@|@*.- + 9qbZwoYX,Qh}fm2]sl}}'O.u-z4hgbp]עeR}}ӹsu]'Pd2^XH/)Ӂ&qúڷPKMO'߻w]!Ǐ?ߵ/LXlhLpk}0iբp`&OD7}[EʢJ$r2(<;$U))))u؈0BbLt7ɤ Kdccn ]JJٳO[Y6-x0}^M&sn|￙ F}P~)S,, gϾ99ۺT!+r^^ q[x1=஧Tx,[tҥC{e۶W^--ΝwnCn(;v ߻}VN7n|f;D~~>D\yJ޽U*ڵ DvYG"1ϝKMLR*US-\շT*/9$#|>4 Lrf&%;Yfmݧ_?PPBrFa! <*x6z$- 94תܼABpDbj,HS e2%rh" Du!rFjkT*Kp ں! ;J\9xgWVESAs B[" ц@@YZMp@@ St ڥlvYz.W\WWf P$j;:1-wturEX-i{`i++Gc/N~U~ K4`3G[2>~N%jzǎۧN޵ky.cDÆԩEزƥK//85{UF/H¦]5ku]KW0ሓm|<] %%u#G?{6.:O׵|~JLJ}ld a֤du]9xQRR?,+-eҺ&zSS/_@ȵvm )+c1˙%%u55Ϗ{]0 l--DfKfQ,{{+$ȰX;4j%qqgMZѣgzh0Ŵ[wH;>:6vЮ]S˕W'ܿ_矱.AR/XpƮ~N۽ǟ>7rk$?];jH]E ƁO|{uoƏ?&nE . hq57ƌ9@X^ R9}ׯ@mr웃B JP8u%%tUP@`0#OO'o_'"쌀.] Em>I2UV eeJ6&P&&F(p&xzb<=QJrYZZW^h fiiF$Dt߾^^4 Uy9#'[WSQR*Uh??/l; ͲBZVD"Y߾N@F%%̤dfR4 ,$ĭ { 劯^LHHP8AAsDlʕ+Yw744D2%(&&\uu*رcU,^yL2 3ƿ''^:FΞ=6nz~?y323ipݺ+ FK>æMYYOpşѣHlL._m:;d2ţGE/ySL Z0R+Keկ_46ب(āVK/(ϯqO rcVPEH$&p*+cd KV@U9Ԩ&hDB˕uu-ˣRyH ]'A wqb:w-憇JL\n\c M,ž0{zbwqss@mp! -:cjj|№dorކ٪v5+ƦO@bU СYG.Wdْ3gEDկOo ) jz׮/=cFˁr28xybzuP|VVw̙n#toYwocĉ'N@"7m7~O|KTӁVFY&SڃT!CzB,d6Ðt B$Yfhhb n*VWsT.ʫ恍& fddڹx=a{$eH$rh&Sd 9md|윜ldΞ=w' 69|SS7noݺ~lŝ=~^ɯ_^҉z+D7cǭRR6vUee{B[<|Xd??jh $`1Oݑ'rwGzxQR|Tŝ8+޴^.WVV+*X fELfK  [hrݑnnnnHkk}ZDr&(+c9?8B#8im6y\Nb^P@ʢUrb^ZB**vV%3^E @@HQabbvJJȑ>ӧDFzY$ꘘ?:-hnq8 N'Y*$ 6*$B AmH ҏ)""iA]Jve%T p8$Phww'Tz .\Xgb&z,/gh]`{x]3ʘ̲ b@@X[ ҈JJ=V@I*KɡR 20]sϯ˫bb\+jk*¯B3Ss6ZM [UũdUUF ֧&8twGZZɜ"ZQVXHo244||,2,+I`j4ĕqXT^f&yPHD]b \'O gem-ѣ;w򲳫DG;|?ƣGEqqg^c&$_=g8vl@})>~_?ob4:z?cEΟY~48)8ȑu=#FWZs;vLZQuɡy'#,LLVKBAAm>&Paa8[Lai)QYɒ˕&&F}}|]qRG=Ї}ЃbmMLwnL`72 &&FNNk5T`2$`dt@Pi $M( \kT"&SQmM&#9c)VtDbNc2{v%o% LfH$쬩]&pr}RV5k "+df&9/F.WEWH[Tv4hgl젮K#(hŃWJ~X,oӡ-}Jmp%-jٲ7Ѯs-@иjUBJJž}3Ou9N+pO? Yw&7…%Lq1}))w,2jzܸ?,-ͮ^F׵t1c]L?%<8"bCzllsDɓհ7zoϧnۖ39J?3y]sС{L7/Op̮`UUq4]NNx<Lqx>6o>ܹşDNpd%9d2Lfsb fbb/ 1Σ ¦B4ʫ`57`ٌ9˻Һ"zYQSS*U&&Fh"ӷ#mtq*K h,(eXQBTjs??/@sjS.W1MW^^ T(T΁>>XT\QactA} IDAT|LL@LL Z{PF :K?/*zذ}~~أGc{J*5Ŵ M&L;0%%u/nxK$bVj \_;aM-[6?/ŋ0lmΜm**XC*4Խ5`0BaÕ792wno߃w2>8X;cj:5ʕ{ T*՘1fFF;#ȳ(@KUaب(Pw|!z4dE"1jZ(LGGY]]=VV82pOOrt2544jj55hlly3svF8:P#5TM  )RKuo-J9!dd2AktZ66 ?AWmͅ% FKV]F阭9( 7GSm|==(i]-_'k7B.Wo%/[c8Z4;Xy9RMLܐ^^0L$b>4S[,Od89/ȋhyy5d2GR[Zy{;"MM"PD$bƏ8qJ`0=+}ŋR##P#}Ǎ 7 U^AWo&%JL̺|9LbM 471-Z4x޼p=\~ӃݽAUZg;vLdSӧ#P6գ:*7w{ueΥWav>СνqwG[7j~] d _NHHӃgPR*.''A*Uh2¢Ф&D;a4Y^,(UU+VV}̌y<1vR(\ &aiccnff"Y,!ʣP8 4-XVkD NXº:!QO 4J2C`v8!p8.|j6q}O qtz]*Ubi<x\n)ۺ$u266:~>At'O?E&D׵@|@*.naII9^`Z:۷zuEd$Q׵B9deeRoJ gʔ.-槟_*ONI~*bΜhCf>ъy3mt{{+ l^GKJՖ-7.^L۶mbӲ>\qu5_Sëjjuud2sqy'`JUߨE"Iu5a3I$Ve%]BH(l+*@`_V[[qsC[/DB`ӋhBH 2~~8__f-%b$.4`0 SR%*m}g ߵlvӧŏ''$y~~#GEԻJ1w__3Lʕ+76=N 3ƿ;[N|}B* etAz5ԥRg:A?~Hǟ9$'g'Lx$ _[{{3X-'kk-uVC$>_ظqi]%&f?^jeg#|};ԘJ%'xK(lB"QQġC B˕ HJ6SL@(Hr311:kk3SScJ-ZPD::8ý3no->Cbz0`NN@p''Ήee,irLX"6[㉙L!+dw(+k hHk$A"m2#*뛅& Zh Mlvf΢e!isxh3ծ9\ e͚3zyPtEDxv.BϞmQ;yC1DQ;% 3_B,<ԩfy{kpVJȨڼyEQz>1Lb..ϟXqfpfΚ5.KRqAt MMa;ks7޿V?{Qyy5>p`֌]Q:sK/>C"#wNc6%2n\B trm6 re]]ƥ lh"LM-F/=zٞ=⢶nyd )ҕ[FTj#Tnu5JVWsR wpuwt511R( Y_K&H ȍ*/gVTZՄӽLcgRVȠhL %1#GW <9qӧ,9o(߰0ntnLU;y n`iӂGrM_/ҬϏXt27.pVl9eAms(,>l?(h K:mΝJti[%3ǎ=WԫV 'ڵ7ފDp8 Uɤ/tiP~`bT_!tX,dUT**XUUrfM OP`vp[[ SS&9@r{!aimm8r@U*5 311b휜lX;vNN[h1T*1/M&v^(M>#rC)ii޺soD"P1ڲ [[ 87TRekkDt]:fAq.V%h|"Lrf&%= RtA|tYYWm_&*R,2"֢OcCR5`Pu0IYJz&S`3Bͯr@Xpc0pE7˕<,AG4gMقHHDH˪O*z`hBJNAg>]߷6=;_\N:fFS]!!n_}v .9\9CSwSV[{?zTF-*h'd2gӦɤ3BlooY >$z;!!}Ԡ={ +((C\`0Lqʕu]DpSӷ/HэlpOw˿v崴ׯ!*F>DDnؿlŋz".M0իDFz-aEg~=w.Q:ujҥCD~oUթUrss绠 |cʕ˗3~}]FF 3441_JDǂ.Ռ8{@ >cq*>~^k{o.DEOܼie*޽={邙3C׭uHׯ>,477>=$* UI %4}c[d2¥P8d2]Qd M0O;; cR SMLs5Q}-:Xj1B6[rN(*[K022''|FJ#j94_1!FK#rtؘd o|17 |~#+rxF>_`0++3k{{K B"˖u7jzZlIe׮)gin+&_-0}h?ʆ͜ݻky'twHy9&& AFi|?|F ~mZHHgB! ŋ d={⠒ .!(t\W2?ŋϒHyCz,;{!nnm\ŋpskks,T\HSlԨ(k+_`1=~;|͚h]:qزe%Ct]˧il.^|6;ԩCx0sf۫u]P8]3`kO/_~~PGcjnUZz5u.ר,-ͰX;k!N(|~ҥ>bseFppv##Æɷ^|11G\]ϟOHjߦ76JoF$s Et˗ڴi!`r2i[eeMƵoUT*ujjEbb|PSGk#R+*XYYdҋbT܊fDC&Sd6̭\2d HP57XXM')4Z% "-$ [ݡn_ܓ'bO`sk+#,)4Cq].ZtFˇ_?7 ٳ1Cl[-jm=mKz(5us:n\S{yJ>p<s=Y[IV]sb=\ܟZPG/6NjT\KAAׯj]y}v/~wws#GܹW\dի<(ܺub\\ˁoV埁OVn(dʢ,\xC"-$Hyt:z 100@lp8['w]X-G"uU.Wn|=!!׮RƾNh5p5Dr7%4JK1`BؠH##CssS0,cFF@х;ڻ:SDb1**Xd2a00/rwG!dTgJ>-),ҷ e,b1kjxJ 4vwG,HPOU˗e^s8 66"#=#"<0ݤ+zd޼nJ*5ƍ\ǎ pqw"JRq'O}|,>=DW`a?`JWصnJJ\`?jhCݦJ t2%h@4/¦_ Z>x>zݺ!ɤ={׎q$ΝkײkjxD"f3BHNRyɤdқ7AUxL ѻ˕uuBdE@edddhS*UWRމ,q8[h(GGmJ%9%b@;rk6W {-6A3$ȳ0 ؂hx{R,L(lWLaDg{jzĈ߽צ?thUoI47˲?uxYg(ZZtaq/^aEv.RX,SE EjMw/ER<}&;$sؑP"Ϗzuߟ~*1~ ֝;xp{bM͚s۸q)ZdY,ڵ6Ʉ JU0G_UƌnựjMt…xվz+/m[}^e|-ԮgQć`vm&(=0Fe˵yN;IokX,VZJnGݔ%>~WoU{ci? qqe2=.׬B001qh͚!.ǝ u{'Q<EC_AAwܙQk:=Hj?Pp,;EDaI/zQg~d|d )`yb0f0(@i!!`Vkɑ#2:Tb P^  Q&޼ƍk^ɩTb:aMD6lXDB^xQ)geIJ˥9],,nj272J=ԫ^~x}=7 '&x!zNօ O/j##:vѱcMw!>}Zi +]d0X,j !<8&>sF 99Oiq8fCׯܹˣ^ZXb Ab*&&r֬_i%N|tûwmVN k$2&&Z Lp`6[99ׯE _ɔJ=8pǒ3x|K ݼbC|ʕT*uj+3nx8V [ D|$<D^?yiANL& wi9`:YѷRЉD#:-D#RTu|)C ` t;=`uR D-pS(t`riG`A `8tZ5T"6Kһ0yVic͛/Y3dnl[u^ow/֭7^>x&}+|1~ ɓZnޜ6l>T_DK{ժ͜!&&a|olݻoi:ݻ.]э,^|~kcSΟ2i~qʕK}p!C Pb֭QT\ܱ*;+)e3< ,Y'Oŋ|bر˙7k\\#OM:KRRޯ@RҳKZy,11y&3gv^W>02@@0*,Tj4Fg~jq.<>ݘ1-EcrK`8jHD8Φn,@zP+ 7o \/0m"Bqx!!<6EE&[99R\ACC l23S^g%̔de_geI]I>8Hp+Wv~nrԬ׏UX0jԮO \v;z^ɓΜI/,Ts[9Vkڷ711Gs_NMLW}:d2;,18͚Uܷoԓ'[/sy~nlԮ]u'N<5j#ED"Z#U ϱXlÆmx9ܽ;ǣ;6^}ȑՃ'MjݪUUl6{jjh,ի/֢E=jUEeڟ=+q#۷37&&2&&iJ_cMT*˗[^?~#9&`3AA |AA??WG#hjP,t:':TM>>Lh!r  2PG:t['[wu˖PX**RX bZ(TIpͦ7g/$RXX,"Cڕ#(d23J%xtVX?2/,O"VDqXm(D" hlv6ԨQ6md!k23~egKss992 AL ㇆p>]eRSoμ{7[$ D[7fϊ ɑ6mWBB?52 oΜytLzn,0ӶmT4q\t֬.cv;jϞ[gΤӝcتWV#"sMFFQU*'jATjŋS![wPt~a\pƵ1K;QDP!F#<8Ƒhǎs#͎ #Ϝ PjՅ.6:2T;r[2AЈj߹3f|aoz}3g5Cz]ܹƑ1z ˬ_?"&&eO|0872>ʒ)U*`vv0 x*Ђ *TR% 45I:I"рB%jE"X'>3"||B!pL)˵2V.9AɆ\.XgxwZt3\۾7ˡuCìh(sZӧt!ew5k5ki?b5 lD"5@ x0.**02O ` >&`^yDB S}X,/+0WfPԌ Qv$?_/J%a0|>ߟ,jEe2MV"P8!V-NP^p09 y rBBxPX(W糄VEь ۙYwd J<W_ݺakթ!OWcGdRRgyGg>(b2MVjٲJ˖?]Ի3\U~޽۴'GɩSF܁o%v _? NMwl+>.]?!7m7_Akk><]B©M.k 9|x,_{DB.^z@?O2$Qң((!A^ƍqA~+##:vѣGϢԩY7nd$%=+*Rq8uz)k>yMnL(T)zl\"0dSFPʁkXee2\,L YrN&ӊDjLk4Zg2ϧ/RӢPD"lFcpd2B6P.׹|aC|>ZRR**"\Hl6á4.zhl_gޝmvD招48wv~۟9s A>8EQC A8$VUQذaèQJ}Vٳ; x6mV\4rҒ_ :ub8l[әoa5MuUf8hi=Su;?'G:c䌁ϚۣTٺ| .7h|yo̊buyRe!T\ߔ{޼.C6t-_Ȃ'wH>{vr dV[=?>޻~LX,͛.[v\9ezլ0Jޮ |X9{v ([ti;`&ޡ~44cQJ"{+qP ZL븪$\.] 2y<@axo+Xg+1 9^ ؄sv'.j/OjA(TB˗E|\U 0 Fl6F#lL2CAƠ Np07( 0\*/Qڕ'Bu9+˗J"UZZNZZNZZnzzdphu֪ZNh͚!%4c&:t9?yyk^^ڵVZV-Z,&Ȥڷ|y(z͛DE5֭ΐ!n| x ëWڵ,O`rl0 9T*ݻݩߎ>27#C$I\ӊKٲ%M..Q:bc-_kC{~'^ (4qb>}8 D!m\.y۶XBV aE:իc\KIy}nvzzLW/IȘjՂHA3bW,W\jMPApd2Ţ0#"ժEGWZ5^9G( RSrI J%Z,6FCGZpghj89<]˗`ڻu[ϜD&<]Nh4j  OydfN=x^'|D{i}z O \a`|N|8m!__5Qn̞}|y5k/c4Z\FRbZ(T: JgyuZmRF$R;RMQZ*8H@eAa __&0/: ,T͕=^yQR&i4<@ x> &Gdpk3G޿}Z޽7xu۬E6Q[J/AVkڵ+eZiРc[`9kҥgO|]JpFF|IGjM&e6nRnʕ}3Ԩ1G"ϙ30o^q;t-_B^UeU_k 2k5ȑq^7E,]zV7|Ĉf_鎀QƉ?v˗=]әVxqlY[ yy LvԨS0lر{^(6M>YT+x\t2*T"K  FXͭ:v!J5F$z+R`Gn J ՚%Ϟ _ʄBDQ :jCIdL&RDg0e2-x???; grg.RPtx,00vr ΧO5IO{(ѣcG2;pG7۲j}l=x0ח A̙sb0\_ӦA( t<8 >h.4ApV+J&#&t֬nfxm99 C ޽3˱Xl~4lذmݺڟvJNH5uj!Cb+ɓ>|xWxOWC0<̙{{۶-[Vt-_ի/̛׵N2B^sCBx{Ƭw}5k\{lry(4hf۽{ (ƍW,9[eU tEV}Ӧ+K \WNII>]Dl.|}Y 2 uol7Y^ bqE<Iŏ(ED"GlrBg4ZC8@#@@p8E& 'W` ߟ 52֡ϗy#Wxt `@xמHJOOOKOϿ?W&B@ IDATPTTPVUW^=ȃ۷3w-+W.s_ҥg.=zNg*<ٰa@%h %> uwrwdM/?_-_?|ClxtifpCܟv [^7k۶Mo07^(]p8AMV$ gΤB {7ϧ;_L0LTRÆbb"7lQJD5R6/OUbF1j&N9>lB-~6kמ߾QTTX PCcAjVmZmq6nqxM)ѠnѢ6\vb ۠ww\i`9[A|FƢOw+ܼz͚KZUqY`2YptB@!bRv;?` فPnL__VPnGr\6P&s||Xc0HT*DBH$ Qf2Yu:Ng0]|l6$@@ǣ( xX*%P&Ӻ^d2L&|$ʐ0 B\٧[:ni3=Ыx0>>N.<|~9zkfMgڴYM+KHm{M62|xcdhܙv%:zt#}CәvH^4Xx.\x 3;YAZmZu͆XH+!T\EYsskxE#v޾y䄲/)c}p0w߾^* (7W|cFhڷoClc+V?~|FJkgϟߵ_<] FE}nϟͦΛKe)Wd%==ә@fC%R-sR(tKr}'*u3qt:D>L+k2V;{20PAv'΁`r,__Ŋ~~+ >.z [Ԯ]Y:~Nx0fng3 TyQlĈg>>-h4= "=NS! ޱ#?CikM|nkW}K]L8~J)9YYf[6Pz߳gJ!ڰʂ']zix@) 8ðD)nDϨ&Mob9tPAPjA.nfY@ BPJKi[ t2O^h(Ţd"Xl< ȣ]T"L 0dC6lfY 9RT*F#HD"x Vb5-ZQ6,rh,6.ձdRn 7n¤n+*Rծcb+[ LŅ)qcl8mhݺsiʔ_ج3Æ%y#;~ & pOl|!Cb hD$bb8byзoNδm 0iȦÆ5ޡC7I{~Nnu [L<Vݿ;~3ft-? Ó!)+WFKl:T{D>r>p =«];wޝPϞǍktQnnG߼@7nONԩ. s?~ALLy]"#<]FVdƌCog=}zptq(% @f]LV \C;.v2@f$/ >xQ%ZD"R_*>J%庼>LAfDԠBUaR$RK$9IjarU|}fCo22^,JOlvr"#"#"#}+VX1b~0 C={֟>s\c~~JrYƅ >E Ԫ!Wl4H5(jxqN=rIb-jA޽vH0qsy3kօ ~i x׮{<=ELLx Μy>555lҦMdz@OAеkY \v# 3X ??חn4&O>єF [jÇmx> &G)&ie2R3,@b`hL I@E"!x<AUY6b4u:FcPFz`|`]Zh(Ə?t׮a-[VqKM,嗨3;27޼y}cǎiZOWT2_PB5`a._|FF m۶Ν{Ue%2T\Wuzp=]::(^5ox˖mFF?Y]xiժ#F4֭6 4ӧ-Zt@ѫW)S8_S{jq׮X,Ûєɤx(ϣR-;cGrTT…=>!LqΝ+V`b<ƛ7̺uE$2~hOW񣀩0< ^ٝFjr>\ױjrزӛ){#A޿+ ]bbrbbNgҥv~?թ0܃TmjY۷8yݓ41Cf͙sٳ[/UpYق RBBVz"՚JKT_cP*@r"!`DjdbQ]LUPEEjgmHTR?Xw1d-Vk5Z,@D$+EFFF*U'2N*Ո,I^"?_&id2JjMcf@ 0 A8R͚5Ij!**(/O.*jE c. 8٪V%M^,?_a|y |+UGK ApEO E ޽{vF~J8nG]D*T*F#Xdf R.U Vj`XFj n4ZA`l3lfbwT%<ՊZwϞ}Yf۹v;z֛FB`U|)mݺ‡G ҢEyU\7t__?חN$STٱ#`g2YRDZVj`<p(Ͷpݾ(-l6\.[.v~TNts'N/PA5" b1d0قaN2a0(4Ţ`TzRt8L$xP&0@@LJǁyf2L&^oLɉ a( c9 f{N qqzsKk3gIK9wn[Z+#x [nPPPnnnHH BΝaFݻ5k0) ^㨸N>z4ϽY 3fw/')itfܸ=_2<f۷x8?::rߕ!Fj?~ yy=O: 颾Hu]R <8zԨX7,A(>|o޼x<*#|DvB0ܦMڵk'$$vyg8*֭Ure7ik׎>鯿fbb^ݯkڥ@QjΔ={nՆk(%f?np@ѥKɓ,Ɇ WfS k:`@c&Y5ܸ`/ <ךY`ݻ_|B0<7^x5X_F`Ȑ6q>HjU߲ljUr|~meY>z7wj۶! DxB!xs+!Ԃ:vѷoz1RN5jWh(Рƞ.axИSMD`׾}k\ڿ͇ kZfϧ^M]g.9ںOO|bhQk4& hZQ6(rseQ5TP\,rV9;~Xw$*a|ʓKLJ5^2@)rˆHl6ǣxtmbQ5k8yxݮTrH~FVX"Z.t&b6fABT8@H:T?KRIT*DBp8jEu:HվgϭS۶<缵ncȐEeOylCik\)*OߌA`jbl((j H$Ap8 Z{]jXj>`2@$"D">t( Y6nۭVZsjjMZa`9|i8( 4n\Z͛][W/nG߱ E-X2>ܣGgςGK|s_>^ϯUֶm j>>>)))j[?>yR0E3R{#Y&)(۩Si}uX޽ ՖHe޼o/dΝk;뮪IMڶƙ3遁Y:LtQeO ,8yVYӯt1000lx еkm__;:uZ848>Uӳ!C%&-sa\cǏn޼n^')ڵCk;v٥vv;vɹkfd9>},_~~׮[{ oJ%۲Ok&-[vnΔ1cZrFʟ??e[K=q￷<]W@s4.AOhLr^)32&hRy^A$B&detL&H0O"<ȡv/\. 2dqeӧׯE|yQJ.תT\g  f4"0 X`2),%$~l6#ܩSmHUXH4J^1fj2YjP,Hßdm6ێ3/Fi/_?}E< n;{q!jr>`!xǏ{PnmCʬ Eׯp~.\d|7|Yt#GggK[Wի~j @Qt„}?9vl|.߹ukw b` k^ڷ6M5y\\#FJҥvN)_۷jU/`ә4Ng2zY2fZ`jA7 Xb4B!h$&BL JRT*$;Vh$ HL BPX,aْ,IN4'G'˓hN$S( fOڠR_ 8K{vDB@ 6]7DjDVt:`2lfk0 \*1RUk~XOa<O? IDATp E!n~p8F#s8Ti42+Έ΁7N'aC00~4,[z?cFomܸ=rn߾_TTJeTT֭[||-rew_zŚCRm!i۴HOݒض޽?th tQ_ȋw߻f[:CT J~ݺ[^Sѣ.6S1`ߘ+41 `92n„}}n>{J={q̘6 (v0 287q|ƍX*Vl3eJspmۮWתUV֮9 `^PqРNM>)0bDo$&o0 ?;! 7nlٹ5k0w}YljBBCc/>3hжڵCfذ!@ٗmh| B%xx\+.7sD0+@C #"U*}n,7W ,<{&|Ff4ZwoP^L??fHߟEI$D5ؑrȽ#Q$mZmJj4c/!*?qݎyGݎD'D"ɤ4-bp.+@2/ @  he˵[}NŋfG1w܋/:VRJtErʕ+WVʕ+V]޶m7j蟊^H$fdd >\պ2  UF{׮]t+Wo Hdʕ{{U||Jwm֬… w]~c Nٗ, wȑ#իWOJJڴiS7;&o߆mv$sRɈ|\x͛aO޽lfSiF隌Ťnr̙tI5I.K0-'N<ֽܳ{aa[{hn`0ovcK$ߥ_ev(sP͛_yѢӹ^tBS'lϞm7nڵr:Ռ ];w+Ws:hK<e?\YJ^ǁ@o4CUm:xp .6lX5k.5¬M00Ɯ9mnؑfͥ]kC""6 LK]dnkoZމ/jߚ~ˬFd $_ZjDjj0Xt:jS* VM+!t 0I! @@X, naD"dR>~qqqǎjǽ|d_.?^z?AN;w333TҵkשS"[*opod2᧟oퟴ#w:4ƽ5````80њ5I{/.W6U^ZmxJT[j֮]?O2e`%Ͽr 8(JG!TV >}z̙%ne0vCf;v(KܹsmڴPu CϞ=}:  l  YWԧO &&ʷn]W=Y͕lRҶ+ΟY4ކ 3TgP=th![Zlx DLlfnj't&QQ..]]â٩kÆY/2g""|;vmj!j3VM+,P!6vKjjmlN؂i~~.$2Mк~ԁuvvS(u`d2kn"d2@ $=d8zqrr99Q\H>>.4k~~.$ A n&$ă@@\ 11rҮ''իϗ.ç^ D HK JJ KJ II =HF9S]STQ(,,<:?_`A]]]TTTuu5M!xyyY[[ wttlڴip 3118v옊Jqq޽{1 k%%~VQQabbx A8n8s`ϟwpp>}:\pAh4z^^^/߳gihhmذpC@P...ׯ/0jN`fff СCǎ _4]b0%55m[9슴{6W>߹ɓ"4dp) ̎ /_NlԾ#NY[s?b!x>AAnn&DzeӖ.~=k[|KLuw./?ѱ=++mKK- ԩ[ۓ66:6zxy9!짳NpD*CҺT* 'T)dxH" <ad2'QԮ_ D"x AsqqĠcЏ/\7A>n$\IA\OD" {!ApyYѪBڵ̃J44t67;pMM8˒f\ssJ7 17:А^XR^JJJtttmm-A'NdT0 >ݻw_|OZZz׮]:OKKCP^zupťFF͍63S73S?rĥ)+*F/ikZܽ.=9Z3 7}:bc}aaaMMMwFׯ755 ޶mtqq9~x]]]Vx<;888q^V7oܽ{oߔ߿d2UFfv'Otww_t]CCÐs`Y[[XXX@4c Op¶mی999,Y;wa?~~~w !mٲe8Q iIo޼2G¥K/,,4$;lDīٳ5G"}GJ45U37`쮱YOO>(y)` ``7oɡܾVQQA2SVX ԉ}wBjWqi[ZIH0;(`Tfi~7,p<YYYEGGVq%&&ZXXOXXŋkjjtuu92gΜO> 23`rr޽{˅mAPss͛߿/&&"))Y__oyΝ7D ׮] innݷo_kkWPPAd29 ֭[t:}ŊG177wssnmm Rbbbsmoo߾}{rr277%Kkjjz#9t萧'N;wLMMMMM=tM6СCͅ'u HZZVVV}mxxݻw_Wa}]MM->>~׮]mmmK, x}AqSNڵ.}6~N#FFF ?}ZԜiK^ӡ{68Ǐ?~03ӟ!Q1W2'99矋2m Ƅ =DDjkk ݾ)^4իOo>4yŊ`_d2ɓnz?\l*蹹11'M \u|*@Zd8[o.//ds|||?gf{nzō7ϝ;',, AIIIX,VFF˗/P(AAA?oޛZ}s_fI8+uI.\zj8]3Q a(hdrʰd*Nwv)Ǔd*Ap111䢒Z==ykK]{ Q(?ԏڗ7orrr>~wbb"ߕ+W.]4mڴgssqqHNNNOOXzxJo߾USS[0tɛ7o*((!AqqqYn݀Gy Οo0Fyi}}'(`]kqNKkfN34T4}g8I̙3I;::"""(= Ƕn}ǏߩTy%?7LlGٱ WƲvnna22ځ;w  JJjl8`S:GJKo7>J@Zz~r6999==Kttt"""zWy&A>}3 ? eee]]]T*5##^N]uQQ B{:N"W;< QЇe P(RRRϟ?ǎ1B0SېtL YYؓ'jѨ <$%la;V~h#(hԩ;v/)xq4b APUU_  H$ D]]Y]]ىE򸠢"y GFfvDC Z8kOZX`uu5vu5j͍͋|.bdC2ϻ9ܼڵ3gRV236Vbvh088\9/za^sMA @ZXh̟o`g7I@;77qp֭;x TTT}OOOo899Xڵkzwuud7Ն0htװ*i}200̼pBjjjff/Ν APCCJUQAUUo$Yf9r$""bCJOOOKK]h(%%UPP`ii >pFEhLMMpjjjy"##AII:baaNx2m nu355ɹs;,Auu/e/!1N'RiYYؼO?Hٳ__5gp>}޽~m:U9sk_[ sziia=G%J|m@?EE߮^|𽬬e˦~L3`. N;+K>p IDAT~ȋ/Μ9)SM_<0<\]]6`111-_ !5(9..NOO/55، `'(.6vsYYݬYѰ 燄yx\ik3;!̛岳;u,B1;"&STsv6 Zӧcym/..\n]Ĵi]ܿ?:x`$J<~BΝ{ MPa=+fv,0)*ڽ~fL#ϟ?3+X'y˗;O II>>#RRBV1|dW^^pe.԰{C^ށ66  p7N r%\=5uÇ[,.%\55mWfΟnڴ&&J[ss-41Q%\ht dp;SN-y2`sP\"~ᴃLUUÿڪFEGG^ѱuN4Q(jku3qI){%Y`Ao1DÇ"hDOOs33++C^PKK૿UY{yE]e="))Vmm ϧ1;OZdwkjژ zzAA o53S[i{>‚?fG !!O [VF #ʕ?7?x8뻸A@@vvaa|x`4mժU[n{njjjRRAVڹsgBBB}}ӧOH$H$NNC=8 uuuQQŋ!rpp :u*PPPPPP F/^˫xϞ=?ǧaÆ@ׯ_zj|}}%%%n w߾}Ϟ=b˖-Yf͟~SSS۶mϟsrr<<~"/>YƜ-&Tї/'Or`K턓'8qM[=j~m K=ibr9Ll얢'@րzzȷn63;yíϞ QU.bL˗oٲW[!NFyyyܼoFXX[nuvv;w{s ?CP...ׯ711}@IԘQ(C-_w!،Y:#0TNNuu͠RigXZ[, WPٱ Kee}H$ aud2.::xW׋edg8n]Ĺs_[h4x2eK[*9`92X`{h cutnLI)XO911-LF[[;p}`DݻNF!׬ر~bb>@|͜9>D>nmm%HRRR>};w?N0a|XXҥKEDDzw;PBBNûWuggux[Fff0nrr:+-`hӚVf}k '22o HQ)88IG'pD߭[#˿3;q$((H]]}uEM;رCFFFHHhҥmmm9WQQLHHps7KCӃUTTuK|$OU\zz:A/^<+5d.kD lÆ <<>6E};޽N̎Ƶ $) 7mjfm3g0CcKUUͱ_4**-X0q4+O}'0d\QQQ%%?X D"~ڴi#Q /@622`9ѨuueAo.//gv UUUQQQ\!| 38..__;++{66'w_b(NGGv۶;?7-WTcvPA gT7o//k//+pq9Lrr"rr"vv/qʦz,`q KjhHKikz:޽q-,^%x˖HuuŋM_ k֘Yc^[ۆ{w̜9ZS(KQT+/ON.=s&E^~骠90ЉnsK4]FEE.,+U\ld̙]]]'OHKKp...W (>>͛7111k׮]f ÿ́k׮lܸӧ+++sssW\o>xw'Oy󦁁A}[P10p>feEEߢs޷ 7fv\kKJJIRRANN0Νfik~ ڵcc@zzz_~]fPϞ^G9G.26Gݤ'O|֯imzЂKY=}$G%$?zuLUf~{46˿}///.#Hb R2R~@+WTPݼ٫W=D/9;hjJ#IVVdʙ+W$)'O>;*,kfnfnm-))0نm~~'>pZΜ9Zff_V͍zԮ]ϻ3;= _~w1 5:rr"g#prr()}wr_ ɓ''''Ϝ9STGֈP^^G^^k+VXvmkkĉ^ٳ'N СC˖- ƍ/^?~Ν;*ǏO4w! `jjj>|800p|8&&fѢɉb׮]կE Ah4z5|ۻ6JZ7~<9`xւdضgO;ŋimmxs0Xl=s -JHx QRSӖCS-24Iq ܨ>)0o-[,gMΝEEߴe\l]0&YXXV cþ@0()GE`Jc̎ar)+_!(__; [f>~++mf5))s'7{;==MXFA"bb?A /*6<|Fyե&N0fKFF8.nk``76m?5KP(+/^OTT$TT$֭ HYY gbfPаPQ`veNfea_:r$k%ee..y~{iiI~bݧ>,!wԔw/QC255p/_`0/_]GGG"xƍopM===x2؋/TUU!jooք3`ӧOp., yj礤9յ2vqqٳ{@+@0Z[EGV X[ka.ͫ⭄ϟ--o|w]rr!;W/(h!Ht@ uLM҂{w䈋2ҳg;cW><<^cnmcf~[dh&'b eeupˮ&A""|ZZ?&aՕԔWƹ8BCO<100E!!^f5~~۷99]X'^^N[[].B ygOԩ*ff:̎  ::NvtL߾ήz{3..ɓ'Nbbll`=x{|ݰӧ>,~QQy&_򏫸d}k||w*_DB5D"D"qrrvww^j:bbrVU5sq1aيF8+<\O((}Y99.x2;!ps}}휜 b?>0+͌1||\&2Z[uXlǏߋj<H YY]]Y]]p1]KKfݺ{3;HJ FE_7׌b;`G =II)nlMڊ5똽  Ǐ.[ RYqVBMlkkg7I^~CƲǏ?.ϯᴴrpзf⭢o kjD͛k>CΚ 嵷՗,jg7 Id}o.//gv O 6>kk3^DGut̲wDbc7GE JLL, Y v+z..II eEEE7o,**ڻw͛Xֆ߹%S[A_4޽Nys9ZKNe#ז ͛(33 g] ֝[0*AAkku,,-٣x˗p-EE ӟ4Iq?|sUf3;.7ph Ex88"#^^P:::zqHCCɓ}7i܁ML`:c=+vww7#G%%<$- IDAT@SS Mpo%% F))ə(+N]6ݮi=|e"#f3JwS*'77W(ZAAuFFyFFɛ[Xh)b?F ʾUV6UU5WU5WUtw +D$$%%A6Y{> inÇ 211bv E2e\OO?|Ѣ** o4SQ(ܺuIYYs{q߾}.]r!ڵyyUyL\\֭QwgSt:}0&1pd'`J ZYi[[̙B޿~ٳ/_%$&98͘fS_ߑ\TS)"7wޢEF` |IHg<}pTDDĪU@Ph-FK1QP(!eWW.c#FBxx xqÇ߾7O?0pĉ,סX#'1;z?}jXdnQQ0)KRi_4|+,ZP𵤤DpM``0P}Чis8ˎo˖]VWys k0ΞW>ed|(n25U5Ks, ` UU-u5WU5յ77w~璒 `euCǓd*L%uttCC!CM&(uuT*n(O Hq==d"AOP{G2B ~ 71@~A.bFQch4 ͍Frqqqxy89QBB<\J2 ޽`/(~|lc_[RС jg7VX bMLIjjiKK$##%HGɅiie||\66:gb3V@$R23cbr>B!u-25Ks'mƕy>|-)jRi\\hI$R882|Azzr"",] TqTVvއM3sN{AA֭ >q#.REccsds֭.L--+(ZPۧO T*M^~ }nIK+͍>ޝ}_4\VVu,wŌ= lfiM"--] ͸;;:;q~p BQ\(^^NAD\\?:&rp ~d=',"TADҺ~DEPhPr(2 ho'@`Q(T "ɽ  ^^NNNA||\(yDPH~~.89|CprrH$Wo㾇OoqXwr2HUw7HtttHnRggDOxx8x/ZEDxEE2fHd2JEEG[yly$%m34Tm/\x~w@\Tqfg#à+W^!5u'cn+*tg6!MM􏩩quu)GG}kkI@ `䴴t>^CՕֶczzLILLnzG$anh$pKkDJFĂgϊI$ʬY NmǃxΟ, 8 @ xbKKABB::?je44%TqLq)h4c+_E4e'f:;{ΞMz5SII< `.#~[W1?:'2/*/`2 t`Jݧ?zWV6-YrNQQ0"(Zii-S 33uQ4_EB @ HTw˪H-zzHpoA),c޺( cM~~n wB"SpߩU¼99988~tF"_1xLAPAׯ?<@SS/o|ysyy=Ғ>]u թSYcOS.((1&&qcXjmq㭗/?;l\}fh>dd?^}5:UJZ[IIxAhl57w54t47w55oFuxʊHTY ͙}>쮳gʔ!OTS}{6 @0VVBC(}7ΜYjllB'MX G]":zS5YYؔ:R0~קdfb߾Butd9٫54%$-DL"Qcl ?c$a|>DTV&)=on7@ ð[z7~뮻^ }j"388ԭ87tԶmA\,W]uH$t:c2yz[w5p1 # 6][ʴZV+{&}ƋOth0ADM-[t}_e~<8 s88O}Q[o:4bѾņ[om_sE5[aNiwelެ暪kapL-7&狦Ri B! ,JPQ!]\ZT$Bh"@q^̛oL&u~-[tyX0;Ωro}]wm*/.uf?޵Qpwܱ.H*9}'C--d2ɮ|K7XO嗏;Syrs_;z%2˜h4q^uU[Vm٢"b~fol vȈ}ta2y1 PHG_V&jG}գW>o @  ^x_2ztEe26mVyVӹرcFZZ.WH(d/en~f:p|ݗܴ}{m -XEGtjV_{mͺu()I$RfhL^k4fd2g *,pjQUlÆ-[t󛂉@ dq!A:ٽ>:&po޶zFmԮ]_x7P'r] GxꯩQ^{m555ʥnb㭭cG92g&Zx͚իee%IqB?襗zUW]U*T3wܱN(D80p@[X656oZyJЅ@, ؘSMNlz]AdTjeEEBVj%gǟ- zëW׿-4}Kc.\.7}O=gpz?|cqh /~ z}hxB!i4:x]55*B&&\7:/3zX;wߞG*!D 6i7o֮[Wq_˙ [ǎl~`ͦM7{S:>je;wzZk&'݇ `m[umjy'HYIw8`pONM&o:0D"T*NgDDhDʍM%bف,.b;{M4efm[VJy4/!:4[G"5k4;vpCB[}6LE{l~W]UܬAy+/rh{xG&8EūWkjT,#:nn>\λU[V75/mE+s_D4_6֪="DGq߾}6_ `^qE99"ʘi64d1 ø\FQPԥ$ ~O<n{XH A s>_m?ccBG煖/ǴcG~p}id[lvW>JeFGFpԄ0L*UWWX_H;o 7￰uQD~t9n-tw>ztu,MJ6o]yn2]G,vmE'CFN/Q67lެ]diٳ7bx-MUUnWNݿ1'M۴I{Օvr&^c2yta6&TJ:bnw02UUJN[Em!dq!:p``߾~PԥRNssISYSSʓ x>ܻ/̯\ `.u>l6mڻw޾>3H֕47][L|iookgY.J1Y޳;zo;`͛u[ڹ\2D?s,jp۶;뛚4h@`f0ĉH$Q\,/@?I][IO6PH Oi2ʤ_uI}[6m.[@ b}KG>2$ik{=Ǐnڤ}챝hrwN>w߽?领vw .a>f(^xbk;'^s}L&;0`9zt@ &7l(۴Iye!lnawv:thH$lެ5]WB·䓡C`Hx5^[t:pXfhX,@ LJRB qǝo@ dq!N,lookkk0q.TfZ)-}Fe2>rdc#l6ɯ+bgobIqCcJ2Z<а ##d2MTUɫZ 9 XԤil,+\ޓ'wڳd o~֪5kE4CKad|&ƍr2HD #ML8.Аmt(N'+*tr'>·r˚ԁ@ IJ 45+_YCW[<*+ ڶ̩S_jOKI#;֮-Y!f˳o];温@ :8huh`XɤJr%nq`c wKEȰfWmެݴI!FUs 0xE IDATG|yJٸ|ǎ뮫eiKݴ|$I><ȈŢBUWU.=+xgdK׭+]t" L8FF##aȈ}t&0 ZTRR"zûvǓ5ܳ#1w~{dzL c:ûvwU ݶwۻ{wWCCxƍK"lI2?񻯽vG?m}1 wX| FAcc1[S0'N;6r(k__veWCC}ko\Sm[֭UX;ue[jiџ<9H*+W^YqUkז!I3Ngl^g4zf"CS*PJR/,p8_zmheL$R Iíۺ:UM {{ͽ>ؘ3ΰٴ*V+++KʤJ%oL@ 9i2Z,>P\,/J](f2pqm{l6M &%9Ɛ0\\,djHE1LL@jkmT(TTW+jjTʊ H}k} ?',֯/]FР^0G[[GTF7575i֬ѠoLbŐfM&ȈC5:pBl+( 75_{mMyT)ũX@  cl̹i˿ξlVwܱnA?̾w=|pΝEb}[70`yٯ]sM|m6<Ԟg=pW?td64t:Ï?WVi }͚b(zɤ.u|&&\z"KQ($ËPQ ى@ gsjϝ\'>}oj`2yxTo߱E//wv ?:l6k0xA~wZu3,Cp\UV*Czmsv٬^o?qbuQO׬)ް|%! 3xD{ɓx<%׬Y3xloCOdW^Yukj?;t01=,u2jr#L;gVZ6d\t:aH9J%O*(|'s BJ9gymp ZYQp 0cŅ@, @tb1B!: iREEb1UCݺ!0L"ak0JC5>2< LX%F:1=qsl1>2pq84ZXT$EEBZR 8f woyp?ؘ3LBH]eeFшokok6BCTht @@ahlo7d2BX\__X__X^.ۯ{qil;kde/:4d1lZ킠Z-|;/MVcd"@$[o]/6䖯J3##ѣO%67kKVL"C>6Q=EE¦&MssIS|Ir'|pK~߾~/6l(۴Im[TY`s̭^@VnڤݼYn])%d Mi Of;i6}V*Hl-Z-T(xաPߌbdnDNVS  c|i0'&\X|L0QqPTTgflؘ֑BjaIT\R"))RN~^ER;96h0* 06TʑJf#L8&'=lE(sNBt~>RĄkh:2 GGX0Z\,*)4qIXD|aX46 3lhȖLi4JeZY] 3"6~xg&je}}a] ^D V^oW1#uk7q]0>^?Uzt1 REE[:@ .gتU?n Y{^&I=n=ܡ_D$bohJɲmz#?o^3_u:=]޻o`0) m^o0)s0,k4z#8M[JyI2m&ZUhn.in45i櫦D>D[[ǎ9vlL"4W]UqUU t/&'|ǎ وDBurÆ֭+e5a1GUKϾqGNJWZ!yb@$IĄ`p 6= SX(P*A1+c2y@7].PpJTʕɸJ%O*BK Gp|999n?qeVJL.gv(5.o,#a [&AnBɸR.fZI)͏_WccP(p J/٬e 39q:PRB2W&KYFͯ,do@8@,+BD@\R3Rjeg.4N@,_FFo'm6S _hܱ|0v9>ՠLT*aDhĹ3:jтF b8p`;_8zbgط߾ [FW^93I$_uݛi4R7 qqdٷ:_O ~cАnoM]?_O^W;;'4h46iu@tp WݦQG: aׅZgb`,kc h5k4 Qa Çmmcp~ AErT"6>:gn__aCڵ;K*IX>-`,3}nC (LƕypT)|Ppbd2=6B̑HL&H g̈́G  E(:qffrdfL0N/P*yxF**\%rbBDd^1fMRеR(x*T֑RyF6dIrFH$.rJ9s;"+dxV?bL3 I*(|#p$T:S,fϲs&r.8l3*dȇ+g'/Y4`62s;f_6% ONI]EE"Zˍxy?[v-Į]'yf_47~\/ǎc^D+ K/[ni'kkkmokK$RVחYSL\gT위L}UW:(2!qcx؞f񃡮p~hxɓNM\! TWjh(^tZdn!M#,uf T\bP"ӷ&$-X@V# b1;$&Ll~g6V\0glP E"DD,uILnO]n{6d(WRU*JW* O.CXA+>g/nh~d2^SK~޾''TrSf۶믯`  C]WW֕|:;'ow'ND,.1bI< \d#2\:(Gb5w tA+3p|&CH82-2K(dUPP6uBnw O \pf2l,;tΐsnwzIhKׯ/]l!&Iʵf/~Y,*H]" &9A "gtvGA*''bϞZ^lv߾38hXԍB\4_>[B!󒛒H|gL[niwU>I&==ӧ &hꢆJ<ðiG?q?f0g|Hood2fT꺺U Wtmuwv?@(.nhP-Eq/7le[ xZf7:/T% pZ Dr0w>f$h@3B h^Gin \ν ĉ\A8xBNga'dW @{ }Yr %@ { y ÄBVUFY]+,)>mhLQ*tc@#T*XX,tBRVlLƕJ93l-RH2n^om;MGV++*Zi%X @lވ=8F_ 疓0ͦ3πJ ;[#PbˌʆyX1ORWu)@ . 6f!V@:;sk6z<]"dr6[`:1.q^o s3-N"#IGjloV?*JQd2LU(x [C9H%g9@ D"5>m!^oYt:YQF +lXvB񶶱GO2R2Ɇ eח[W*rDj98^F0u8&#w@1nx< /|d_۹sbk)ik{=Ǐnڤ}챝nH&[s65ix`5TKibGV s7}E/e<}p+uV.ZZ]R"mO {Ͷ?ۺꡇ[vGFGtŢVV*t)^WŲfF~ L^ H*1zl}׸0 C5ɮ.UԐWS\"d9#vVv:v{ 9E6$HĒyb1[.I$S?e2n>B~^o`VHd55J>-E KY\bds.7h?2qá % FQ^n7ErM/*A5Ǜ2/M#9OLsCnw e:`:1S FA2>_tr}gHMQR$b ebY`az|E:LU^.'be$NhkkkomK$RE%4_#L[,I7/ɛNg0 +( g.3D1^ģ8s|:?M߾n$:eկ蛚43 d2Yro3G@5*<1x`&}p<; /GPn6CND 3ιee0T*D"lK&ӱX2MBqT0 BHĖHB!k:!57n.QȈ`pɸŢ8Ҷ|0ܧO:: OOCoh(V9/w N*Z}&dLNzL&5=9BR*JPT*By*|k/? sOܹ߾hZ4s_<2bO&tz QVW+++tzv`B mL&>daT"d\ZTl:@ .P(^W_߾|vsjWb6lX|W_=&qx`E#$˂t:st)?aCW1o} 7Ie0 p* po\zQJ,ܻwN:4H;֭[WEy!7F|5+Kg;[:|\Q}t16q;4D,,TTȵZiE\Z^.]1ڼ ǝ` ^q76rm4pGy)$TX\.VFl>$)͟[T nFg,.q8n;*f0lF'ayELRQ!Wyu ~dZ eX $0R.|3R)G" +k?;r_}En_ e`5:{k xtN$ H"D}NT2hrZB"8VSVn5wE/&:bEAW5-~}F#D$80á;Ţ2T;X'ge*[ rkQ}΂8˂,F+RI4ZHH&dt DBłc&7 N_˥ L3x<\),L6b!elB1@ h4QW_q~z{MEnؼ_y3'wo>g "OH&ӭ}O}soiuIWóU&'=lB!RiXU%߱cwoX,yО=}DW*;j\6=p|tԁ{]h4A&KJ$`ct%?"tBFF##Qcdtz$)+ H OĄ FFTV&))K"V>8h탃V8f|fyDDlAs \Rn1+W9h3H?pMl62Z)8[uueeF Y\Dp+Hd`&X$S C!AQ("V@&H$D"L& _[t&L'X,B Je?ẎN/tzu&jw`h4$B@ |E"S+|H$>2 @Q/ \.h^T;aϰ4:Fp8+(Ġj(o rܯ˧PDį,%)~( X2KBX,H$/%$0 DPT$~tPȒHS `) Y@$)Lv^@ )( /P5b@\: LT*Sj=X|v{l:o>3@YR)W&\T%BC3bAַ_r#?"jD]N<̾h4oAyK =p`࣏z 뮫ٹsUE|[abhȖDl: \AzU۷lZ9a+ǽ{>Œ o\cGJşfs'ʌ:km:}r0 J9ʊΫ] d NsV|;@&Z}n2bF#)hD2w[{Gdexn0e HL&J%a!OBܡo&BP"K(d L#0e}-9mz>g9@ Y\Xb$.?n֌L#7HR\.BH"(20,aX6I2t6FD"Hd$?g|>_uN t ԰!NObX, 1Qnw(:w>/JnesCG. 紏5S}ө*go*B!SL,J$RD:Kbh4d"St&ɜ'@B `P9~x %q$LƇy@,4Xdl>o6{m63K!K)=LOc~>><3&& Dm%Ta[ǏV*p})> 3gs~e|CO?}XL4fr@*2& IDAT Ù]XB` ސݻαӛJS` $lq305ml, Q4zw--U2M^{DZlV.t |*a+8t4>{v)yO^,!31"ö=rZ-4rв\&,R,5M6M5M!Mu{ݛyx(h1,KCMAx^뺞m{?NM+7!<D1gpELӆ2M׶]E1Mӵ ZԬ+n|DElexL,S~oEԕ՚W0(.>A], Kca"=w]u}]׵η~|bi>TL&HD,s8_G =LY\(r{qrEvp050LJ$^phfVՙK33KVjp&w6+OLs56rI)L8EрX.UeqؐLvF Ʋbuqz/>/_~O;vڿ]^n_o;E 0}͕DB|׻=]6łVd &Ex{ivyC|إgWWUMXԞ=u[ܦH iE xNQTJF[cc|~T©p6R} rXa 1JD~|,LT*ԩŋ+A&8[%@ 5E ȵd/rUt%OQL uq>3Sk/?{wNA~'ٟ=knRuOqsM?{KLL}~GX:Fm<}o~R4C=7KKMY>ԁ>t+eǏ͞>HƞycM:4L〰QBٓ ''4Bhf y]O/ZMSW%'^\l,.6ͅXHGG3hfl,;{ C1 #L N<= !z_$DL`R#E|b+rm~UhuirZU@\nG:^٬\( q/^Ś_|,R ,K CCPSSvW/EМ 7/R)Y($_@~#;|_/O]?~qK< ָXssϗ+ DmMMu\5/<Ǜ,O;˗ u-?O>TmۅpkZXNKl NT`Yzh(=>۵+kWv|<U`m?_.(nDž}924f6MgiU.VVKKMH(9>NdFF:d2vsqlV -450Z-=:H&c/a!Ibr{v.TffPk{ݻ{??)><"VS@ @OPQL tcIUmm4vc/"ٶ:bYcLQ` ) )!$I`YqR ĀPxT(0 e 1 L[.9ۆQ$ٶ6w#ۆjoM C'"Rߵ8I`P%m4%n-vxr[nwH׃(x,m: aY!hSMQ(\ u(H`AT c>G3=6O o=ڹ4:[?̛o.#=?>w…iZYYi!$߻85Uڻo}%j/4sļeBǦ{l'&śl̴mĉ^9~|YU }OL?pO;0 +qa1?__YiùăkW熇3 sbeuݞFӋ,=>djtP:-YEVVZ˭r^Yir+ Ubbx8S*%{mz$nE$ 3T,%b*K&d2J0Ҏd7L8ٵ+}ӶgOl wP~ք[$a@,.@  X 1} +D6a8igNm:oYvB!EQc1-]tAhJ&EhdYZ8@$g:hoF;i$0펙ن8Wkz"BA:Iw <#IE(B/8ZDE-"ƲtwG2ͪմ*kY{j:nֺ\'l8ZXYi٬kWvl,762 *z˧O/ZE֑#IA# @ 7ڶg4Eij~(fͦy^ez(a{o@ZLx\Ah"K4."'$ , I._ߨkͽcfj4M80裻}pn2Ka-=:~G=2A&l-,`450BxZ 6˃<0ҖI4Ml<={ ?<>zt7s"]{}Vh6V+44Z-NKT,R:ti{'뭆4A~cc]䌬EQs:|xu:4LᾁX\@ 7}`a+;ni8.8a9纾m{ r 0 8eeL/c1.deP^ . z۵6 Au21&H4M]`۞ÍQ`Gb\`,4 WA3EQ8J&cDB(,I]k@0jٶgWb\7z<[-]U 1 [muݶmu}q3^ 10h! p( oTJ\B%E\a 2=]ƲH.h6:=8r+y+xɹ\gᯜ<M gCw]Ņ ?7^ǟznZvW^}uEvx8LJjb-HVEСGw=:~8|4Q['O.81ɓ b,G?[:ɬSrG-8rkaZZj./7u%$hfd$;8ϊ^WaxVRirkuU+[ ղYXL Rrp04=%rYNZ;ey;tuVX, ]7*++鎳uE@Һ|ZssqZcc]rCC{pځ ;8[N-^P ;ٳC>X\@ $Z6Rƒa8jYfVa8AeA\ 6u #( 3 04M<0ϳG"Dz, ]KD8?/Ee)kd[n@Ze!l:z,> Ƃ 0h$! LXA`YâdRD%"X8X %%"v-\ uMU-]8RQ fm϶]p=w]ϻ8wcLӝl,0 0 =/n3 LmegS)^~JA`c1*u-2j5^uuV^递CNWMY)ɹ„rժZ]UWVZ=m,RP,J\NvD]Xk*,Th0Q|W D6+}@ l#?{n~<0z<8?}k/OL}vp…ɓ vg.^AHڶn!Q-FTid:%wf="˱cu&& 71ǏϾL"o'gS^J#}q (1W}$8ivܮJEY]U+Za cs$0R)VHhToܩS g.+CcXkVWվS64]S(848! ֊vd266`aMKr% e'ONƲ[}O p @ f0ph4uGniBў8x8yzIK!AGcLqCQEi*,XeY&_eihГe>$IHbk8M9fg)jnmPIEjC+t.z[vߍbA;+i^ٶWEZXwvvcإ mG( )#) + 0BA~h ${Iqe3n/ѱjU)p=ۉ8=^,&pLջ\._)jDkRJDH:^|bZjVSu\FZU =rBe2RБGY9IY%7O|#uGYOv?q!['bGr"bns/8s噙U( 3 8>Baݻo g P٥7X:uj/]Z ph(C>8Cc߄lg,:i[ hG=rdᑻ|}r^\lBb_VJRÙPjp0}AG|zV3foRl2&6pݝ^{_>sfTDBH%|؇[h9UeaZZj..6Z vF<4J3iж)珀2tS O/Zۛ*75U:th(&C!@ (2훦]|F8 IDATLㄵۖbضk.iM mqu|?p/ AaN`(1 b4M,EttaXib1AYPTat:&(u;z\Knhށ-1XFmn~'&jFl{붢a[88뻮FAw:r!q1 1<c8^0s- $ C'"MDB( qp"!`|U&\2)b]G(Hѣ4z5F7zaZeXh1n@T*șL"YR: E1vW*mVWnpVS˲t./B"R٬J٬t/q+_Ffouc2 a '&?:}{~ܬenS?V@o}~ X_k??\.=s?(i\P|饙7\)׽ +#GFslm2feKg,90 3}#GF Oe..f\7p- jeܪTJ4͆;4LE ZCC=$ C?׵jUVUƊ++z]]]qR2 .-<0⹜|& ńnjVRQ,HUU((m Cqt.Ύe&& Gq ڢ˭(O,.6l-meC=KҎS/^AHSSlMNo.F@ %"@ kE%TTU[U!K̆0p 6 4Afr}?{vX(?pЁ;vRQ޺JEYZjzGՂQ׭IF;+ Q_X-[HRU݆edE(YbFRD<.$b"!&тL ͺ;4ҥeh`\7ȝ&2Ҷ\\lV*S;2~Hfh(],&{~Wux=?|xF_ s @ % Cuu}qV4M4m\Wu}Mmۃkz^yz^y$y^a.vs5Mc)bYab2 %3,K2q 6$Ǥ1gi3ɤHwvتO2 ]!MU `%!̪뺃:VY`XGmP7G-ꎌ/WL@2mPG3c c ?MS̻Tj4tMM4VJ`eybAhym{uC? C߇d 10F40hAipaaxfRn4 nu]m4Dy5LxZFTj!T@ۈ {z]P;+{#8zY@QdLz^nMdz]zzfR2z)d@ט]}gnR)Y]zԳϾ]_o…b'c>'1r6(;o˗Ο/m|bQdGSJt[g/\ʅ tX޻xСC<8H܀kŋՋέ3++-P&#80t NMZajJVӖkTzp>H tH J`.*ZF5Z dZgh ~:-eR&#C*x䙌'7ڵ 8}V~P2X%Arma&#߮}󂙙tyz =P79Y;lQy~=Z m\׿tiSxc4v.@#?<͒C@ l bq@ v:ARUfS7 4fS^W}?T"ti;m{tӛb#0B1BhwXNMS CGIc C,%,Bu"$LXVyg QycoWw_2Q$:ԭkPF7kv_:I8٫uFJY]As%Bdezinm躭iڶۆf~`NWs|?,7:b|IØ@#0D$A <]:K(*}Qؕ1s}`Ǧ( LV* )jj7#-0S` {.dTJqȣ Ms>.aoytct/_5ߜ,/RU/_Pc<?+D_?'?{˺nfgk.UOZ<؄Obb[޲'ޫFC͕sέ?_XLWڷo`jtо}wSm…tEZ]XhaEm80xЁſ u\VՎX^Z.{%KQ`kTH1Z-1 \.В29Nu34 >ZbiZ' TUKlъrYINTЬ8>oVT*mp…Jd ,-~AokUeiU*!⃃b110*Rvmn :83S@J%[?M X\@ ]l$ðunm,n6 P;dAeP8eyA8sy^!|;M&!) !( S=]QB<41 Pp1$2Q8Dž(1%IyF8Qb1>!-Y1Bf{^c!E0 , ̑&Q!na+Amfo.EQDCP0sMS >x`c7$'"S`--wocLm`w$WkZa8jUX7͇;q]#&7d!u]7ErŠj2 k_Afg0^$]+' m틮y"*_Wn(-ŌY"d@zrD^Jէ.M@S)1MAk44׵ (l6f2TJJ!/0H~D n >_q4O[9 QD>y4?}>=P+O}_q/`YW—V8zn7}Sfήj/VffV[1g:۽;ȣN:4kWn'lT* .^P9| iRJ NNtu 8[yzĠ>sVVVڵ}]]ZQB(Jd>\NH;۶jk *brp0y^i* nX`]Ѷ\Y/KYqA3L~C[X-Ξ?_q, C#TՄlrS5OFZCC0: S˗/Bbo5@iE @ S!Em !jP 3h8x'5DٶgPO! Nj*![wsu(>4i1hBnahg9GeiItV"+ϳ٬Y.gY: s$fu (C ðݎ\1]Bj~A],,]=\1Mn(I+8B1ԱHH?,ŢJ f'p0T^BU%`WZ8Uն,2LQ4]U,Q l۳mq:咶{^ຐ% n>_m]0:DE= Mb`w1ƶ!]Ƈ1P*O؀q $E[Z>i]0V6$ Q~jh3{uE,0#<\ ̭<mDUzJ2 `{s2P$h5M$:w0x߷J)Uѣv鵚mFCk +Z͛Jnm@ؙضwK,/0׎Dzڻ?o]_O/p/ 'Bc>m '8ԃAٙ3NKYj˗볳KK-,<·$~b" ?09YKx3333ՙŋUXK/ٓ,W(yͦ>;[ҥչڥKUJ-NN)N+\HxmZkD>R:#Vh6VKo4-oЂJ&cÕMrqӿ6XYk?.Vn~rͦjJVӪUJ p5$IBض]0h?x#=4_r @oCtVˠijx89[G 񭾧@?!@ @#MA; O7HAp@':+0}d eA ibYhx(0S CY,KGS"!"rJB?xZ Ba}|ol!o} ߩYo}?<ֻFQ̹Hغ|%Amq|, {槦-80o_麵A kf ^ `^bwoqb 8mcvjWgg_ αaYzt4{w~|<{wab05U jժRiV.+P)X*9P($Y9 lV\N.B|j]@uzRuEQ39d-P ,0`eaYchXb1eYű/ Mw .J$A:\I*PL B-2Rt݆ LӁH jLؤkK7|QBAsdG)Ica0#uaY 7=/9M( CdZvy!<.HeMo .+B)( ł A%<_p&?s#l,KsMQMÖ8a~yGȉ"+(r˲  H`ɤHg2r*$NXO&E(c]@ؘkJxkC,&X\[drV/b4`bgleivKF/˿|c_'#ve Wx0שּׁϿGwCf\mvlAqv'hPHLMƲhvt4TRnvn-7v:[|caЉ5:Be鑑q۵+7<{pumuU*k5 }uUOpi)s9PH@$UfepkY/;،,I\:-'3,@zq" &hX)1u{8%, 'Wt,R| -JhVrYdtiܗЖJS rAiu]X 0ixo>[1 W᛾0:uj…Jd ;0)/@@ @ nkӭj5ͶPiR:UGla8S:NG Wq<7FBu\H%0Rf,"c }h  ™(r0_(Q Cb<<"+IBHx8ȑJ$pBGwT'* $[7N ]/Z׏9QC< 4M!bq"0ю3 (ʶ]1ٶzpa8na8AAb@)B)!!DQ( ca[:Aeihyeig8eY:vTNxA`@$>1 ](1bҒnZ`w!23 ե{( ]av6tNʲp?_]cwB!dX*%X¶׿~g/}~Ȼn?ɿW^eAF%Xn߾(AMLnø/rk-P w6B癉ž=={]*X;?_o,,:r|FYNx~׮ݹ]bU*B}a9?__Xh7KKMAg!۵+{wf3XEZMk5{u bu^lVI+3lldhm%zG޸a0;(r 0MCP Cy~ރ,M֎áK=%e>SXY{=YeHp'!dYnhӺ;Vip |b1' I+ lٗ.U#Er{㝦J<0 m_?R_zfv[aoo7 -'&; =/:0=].z]C4x:&'Kcc;@"@ E0j L !T 05:Lۆm!E1@4 k o̲ Bz^r]nك\u IDATu}( vx]4aa8OӔ(vfy}D#A@\*˝iD"]ʲ>MtZvq|c0Fq!l Bs`{{Ykd@z[d0D@]efaa ib8| 02J 1A!p;aB7+( ,1y\1Y( " a&#c m B(1PRE"bUx!َa(h܋>NCQv{ ujL5 E^W${A#Rj A\vd&JZfz+Z Hr2 O[}/ yxۇ*~|3Lӹp>eT⥒\,JT,JѸhK+W[h5) e''59YVn˭Y[Pd]@ʍrLFZ_(Jki 9[u,=4ɌdFG##pXL6먪LTR ደObX٬H'`! D&#mJnP2ot *_ w 0(r< Ͳ !0'i[a @_< Tϯ/ g@,KG_werPH˃͈DlBqgVWUO|=9/viѣ<_e~'?W'N\,jWwkߺ7iٳKӕRJ'ak!@ @ n3Kzambn8Xy^6`AmpǃG8=B}σNTUt6] b) A#ƈei1M @ PȲ4P,KSyeigz3Y Cq4(GapKuI=7Mh)p( 43c{}_lPԃZa(B(:k&*ǼQb1c P9] :OC1R C6D5<_ ) Krp,Hg( <Ŷ`﷨Gޘ$JHI=U4u㥪0Qٚd~ y]  d <0I%K$DQb1n7s]+_qP\R^ FWte\A`_}kgm[Zj.-5[bc~҂A$񣣙hbFF##{ ðZU[++-rkq@tJG3:ɔJ{+BP"74 o}ҙNKt,i)´2W PUVԴλX2wg+ uK^kq5(  <_wȲt,ƧRb,b\,'exex QH0V0M'lFu=RzXd|>HJlg`m:t(~{Al6?Әdshaǎml۾x#<"W+_}epjBeO|=#gNYp7!@ @ g|2L^c4]pdP고}u|o;GԣN<lFCGfJ iի2-HTdE-G-^v#E55z<ӕ'Q(* w]/ZZRt2M;)9ԟZi /I"u]T]W"uEU `m#u]4n9hT% fZ[3l1US'-'y5I+sr_ܰ/عo_zֲ?"I"c4rwOך5_Lo{$;DB3A-Jn!2a`#c,.r9%M+332l0)|H>u,eIedW[[[¥S"66ƻw56Ƌy/V:m Lfr*@YXLuUeYAlu]϶ZV>m۱mWc ($ $F"H&bZ$"ZWgDj4t k"o֕%Zmm;=+WQ }={_|)⪭om8:|m8PL G&%[~:cyLfizc>Ry7;MӦG#f-zd`y 8yLwA E|= _+̄dqC`:ir= zeGzLAdY8N8EyA k CR. Tf21q^]%Id3Ba(TnGOcScK2Odd2ضO& # S}*l;O-om7]*|:mU\4J1dYu9QdYFU%,&IB4 kG"*^'v=VWihʆq{uWJ ѐb8})@Z>(lJ4Z4XLŴU m'#ܺu_5[sN+&)^U&]xa|R ?^S]a%9/(ykk,\r8^1gRkcXkk&Lf(TXtc}?uGŶC6=Ϸ|Y>_e|iN }K|9C Scю<4QA5b1Mx%b1x\qĦ,*\< *xǏIy Cڳy%\Dn[ tO~ Ϩ|htݏh^C%+ FSpZfTڲT1溞zT.qh$s<}v>xnۇbgz`,<´bZfxK  }Re "ph_x$,faGy4wprbo.}zkZ[b OXYWQDYQ*Eu0Mjjt]W"uuXLI$xp郓V[[C 'ԡ"t?kUjAkhW(467h=5fEZ{\E|pbj~ѿ}~۷^Hx|:6mTr+unĒ-lKj߶ПDw]{1:R\p|wl>ݛt]ϲ崶,:ؔ$Y2l۵xoի{L˗/3fLOmݺuذag%Sv!CO~_~D5kV'D_}q  :{"(]/^}9|}[Z\ƌ{GqI8q<3ATodYeYu$FU]Wu]EhT[k$F4J'|ﺞ q8y<P>cA(u0 >W,44^~{t?C GF/1ײ6l;{s֕+Wu]6lYdɬY֯_o8ӧO_h7tӓO>}{oĉ-Zv… UW] /PT$IZjՌ36nسg{l„ |o 4-<%*X>|8cqϞ=eH3dYo;|>},\pݺu$ڿyϧW_ccG>p)SMF˧Lr_۱cGT/2r}>Ov8ɜ{㙦ETuy4s,c4s:9Y6Mq WDeIQEXLE0*u9 .|< ("ҧdY*ii \}g_yݻw<[r\x̙3_?|]/- +et 8!p:v;SCRԪ|{NB[:[z< H g> @(ض]u'DQ$ Oe!hU(OA)gg\WU.\s5K.}Ν\0 s=m۶uֵ|3gμ[c?åK^_O<ļy裏7n^{[ou-;^*U mIDATN>jjjSY%_x=gϞ}yOKwDSSӖ-[:ef5|ׯ_f͚oV[ZZƏ_WWw7_9k֬ O,^|˖gy{ǎ Catr]ԆAG#c,*\9}T*y^{o1TyBjYyXU~K DZx\cE*.K@)M룬xy&SZ HDEZ4P~ԇ/3|v[k]9slPr˨; ഀtQ.;(B^.H i)Y8n8V"Ck/h`GyAIm^9fS,X0hР+⮻6l\pڵk{=w܇~Ns4h]w5gΜAі_}UG{M2t:ĉkꫯ}կaO#%_ ^aONlۮ=P43f cgijjb=3f̠W)oM.[drv-[/I|eYՃ3R_ /ɆS >fmrJ3p Cq peAX}} 2X( %Ƙa($<* C$^UNZԿO?u]ѣǜ9sn馎Gy}䖁a'P4V)hsɒ;qY~oa_cǦaH$n{l͚5oGbo1AHk9s9jjj֮]Ϛ5kСӦMꪫNǩ)9*'P}|W^^{m'iӦWcٓ1|xep*Ț5[qʷ{-PƌHD FV~О$ ^JӾcDXxD]eYV F*<\XE4xL[eRcǎ . p޽eoPR\Pr&1oc67_ԧO7ZcGUܱcǯ~.lɿ]!ӭ[k011$1ֳgo~gW1cFٽ٬yomK,[vwyg(ܹWQ]y9r֬YwqLj#䄾ڒ}^~V%UljjӦMT!qFzfʎz>xo\={$IteT"n6}vӇ_|EgUfg-3T%粽{N|?yɣW<ϻ[%K{Vcǎ6m?ѣG׿5a„3flذaÆ {;ڋ+bҥdҶmIt]/+D"[hQ2|_:N}!}߿;L 'Op}uK۷gϞ;w~]wݶm|jzG|W*4i͛׿N>}VV}Z .5cX,E(T}=;|WXgϞwyg̙6y:7nPo2sS!|ј1C;c9ڋ/o߾SJK/QgUMMٳ'M4d盛Νk׮`iӦyWӟ駟RU_:u;?AU;Eumٓ'O~'}e˖13bĈ=zRWQE֬Y)I^}Ç777777ЗF_r%лw#G~_cvmF*XoLӼMFKVVa o̫?+ׯ^eyh'T>|{l~衇v=x7xc[o3̄ (1\-*r%ݸqϹ<쌤u۷sN ͛J4]YA&O.H$۟/]~4~pғߩ~*$Կp"eܸǍxU\W X,vwTu8~X'ݻլʐJHqt%R\]Iо}2LW\S8MlٲEO翸0tqqhFWAhll4O(Jcc)b0|sB@WB +!ЕJѝхIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_21.png0000644001725400016040000001004013273140077016461 00000000000000PNG  IHDRpXc;bKGDIDATx}LS V u?^2E%wFF;ruԙ_2[e2w1KTQ^0؍f#NHu (˥P]iyo9OO/1FoX:  m ܆f񼺺+x%%%ގ13;wx%] QfyJII|(o0pH(pH(q1f8NVVА["-] e~@bbb:6 >3_~ET566k4s5N (//W*/_h:c\TTo>\.J{=玎(ZtBhxx>^T666_[%&nP{ 7Jo]~wwXPPݻw1Ϸ7(+8c,W^m3uUTT~:Bf39 ,[Aa/++KKKd ѣ:nÆ  999??ΝHS,z(NB6d?<8!!!!! d2jMMMbbb}}}kkAH$r)2g'O֭[gjOLL8`ad=zTP NLLdeeݿŋFZR9rd* !fV%("lM>nkkOSSSoܸw&lW_}+8ޅ<}@ B4B|* 7SϏ=8`PryQQb0!VKDzzzmmFL&!/ɤR;K't= _>|wyG&YwkV rssM%Hoo[eӵӧ;;;[ZZÇlЕ+W4_|Ano={yG}DƅRȅ9 $H/p\X,D #>>RѼgʕǎVs(zK/lI`={v̙(V1Zpر`L{a 8؅2&&>}zrrc\XXfE"Q]]`(--D,kǎuuu69  X8 6Ӛl\@Pwy|T*=x%ɇ~olvZ` gώٳghh(66677!xg_gee!`Ŷe\ U Nm__̶mf30Aek~tz|!t5h ([[~޽ADT:05En@P̕+$APsw爵<hD!M!T  ӮkF b=s_/l$B!D+W~pa|xcL4Vl>, $:`=w ܅Jڵ+00b)ϩS`Ye) ^X PtNL N(Z-BDU,>xg999 yE`fddZ&H BIA!DP(τ gc#rLfwDP  N&!_ PmT:=i!|>-0%BuFGGe2)Ț۞>BD\_#deI_M _`${YUVc FU(F{zFKK~De0Bx?.xa|8W Q 'dZj]- r6nՊn``T.U(t3%kn H(YU* _AGDGDDodl~q|P88(IP<  XR8nq8,_aoCY-s Xq8y8̡y8$,@q82 oqmy8IYGk3J| YԼ tiYs=IYӦ& 2Mc'z]_߬Afى#]'ھL"XFpb4bbbbbb<6X8cTBh!*iuW鱶wVʐFrBF- hpV2qWX[ /H(~ϳ !?{5 n`L+X<^2.NT5Y~{)p?&&>culg#$ÓV{ 'O,gwy<_QͺoViSx-[ȏT*bQƒo&ׂ[bts`2{y󿋋G]Ja0L 8!+!SSSSSSKKK?c"sAŅŭF'&_miFߋGP-vE5^__{UD1:d-Tmx7x߿Dk֌+W֙R,pQyΌ<[Q戦]t:]@@@yyR|2FtsöJ9ޙ*mX>+ѴJ.\PFQ 9a[% 1H(%UQ h]3\Q1$Hx<޶mۚH ɺ-]񃄂cFZR9rd*b{!YVihBdE5ML^[[ht:skN3*mO^_9?b⁊jֺ$bX$1:-,,lmmV<e%KEi,[>z"WQ +hBoҴ.y  m  m0)_w՝;wRRRvy eӦMKLJJ T5̣w6C $@B $?)?IENDB`XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp__incl.md50000644001725400016040000000004013273140074021332 000000000000004c58ab3f1b4eb75aaa1ea19decc5b15bXQilla-2.3.4/docs/simple-api/bdwn.png0000644001725400016040000000022313273140073014264 00000000000000PNG  IHDR5ZIDATx DP1lm rj.e D[ɾ|6V3?Ls'(}>+ Kch` ^ލnIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_31.png0000644001725400016040000000314713273140077016474 00000000000000PNG  IHDR%bKGDIDATxmHS_׹бz, J1Y$^@(H$$ ЋH#ʨw%F5䢂N7S1]\n[Us==ܻ;"F0RJ+RHխVj+`JqFnn.VП q8F{0 b9J+JA}HFuuuZmzOj{yHS9rvu|MBHϤli|>I۶mXzf8.,,i4p8kjjer Cl^wppa:zŋ[E?&n;IN'[;NsΡ;qƅ<,--$t`Xx9j5kt:4n4ׯ_NӴd 6OudP%h9TQTۺuh8XYjfK\b9$WVVKKKݻ &Szx<999G_]]:J_8pdbqX16kpṹ9XYYA$IqONNr$}NײXH$}-644aL䜎D"eeeҝN9hƢא``痢w;vQΚ{!Mh4T*˅ڧ7oތ|x<\S))rRej5dggرnlEccc2,$,### -//jyy˗?|@C޽988X__oIvZWWWgg'ꪪϻ+Wz]]]qa#CK"&]&&&Ϝ93<<} üxĉh˴l=[޲VWW322n7̬p8ATTTlڴiڵϟ?g/7=z>//ٳgc0P鲲2V+'X/[r"9"(sN^^̌`$ǏM&l`A@h&?>:u Wˤ0 0%i?AIs1IIIH!Cfe?+J+J+޲Ax0Jjj7oFWRJ+RJ+o<IENDB`XQilla-2.3.4/docs/simple-api/classStaticContext__inherit__graph.map0000644001725400016040000000063513273140076022360 00000000000000 XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__incl.md50000644001725400016040000000004013273140074020426 0000000000000052fb86547b0cf9c40ef4dea1f96a250dXQilla-2.3.4/docs/simple-api/MemBufFormatTarget_8hpp__incl.map0000644001725400016040000000052713273140075021132 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemoryManager__inherit__graph.png0000644001725400016040000001102613273140076024347 00000000000000PNG  IHDRp"-IbKGDIDATxyTW/IADְTeARZm+U6EZԃ* ǗZcωJ#.%J_b(m $m~iƈ4ν}~sg&EAa@7F h.H=JKKJ2I 3gj^2ʍ7, 2`2j=EI T(\@@p4 oQTjDDc*ɓ1fCl777C1c5=^}}3f^(|>PSS9<< H$ 8xD"y Jmjj sΑ#GBBBsssѽ)GCDGG]t JUC(L&[/_兵JVVV[߿ҥK+V8|0588cǎUV^"H>ǘ]v=B/#aÆ AAAEEEh%J^nʕ+D/\b7|ЀF=<mڴ$2E( PSSG}S{֭􆆆Ǐx<}z{{W@^JPG#;''x:rѦ+Wh|>ŋ?qƢp9ATӫXN= MMMIIIVrvvF++++7olaaaoo{ >&&ݽ&**~֬Y)))sU% d2׷BOO… *çLb 2@ ,^]\]]NSb`` 300|DR[[@Pׯ__UU%'DjiiTWW*L&lڴ0446~3g<===<<֯_g:+-Q144;v؞={ lsʔ)hڢ53f̘1c(##<qȑwy',,>Poo~!::Zaנ@"#ɬM^ ¢EX,[lقG Dܽ{P(Tx PӧfB3c (Ϟ=;{Jcc㼼<_ @"LMMє44tŋݻwӦMoҬV%$J]]]K.U3o"Ok}l6{dd~;|82K2\r6u]vpFF˥P(˗/Qƍ痗kyP"OO=\@@p4 *.f?D5go  M D"X,yoGG*͛ hiK\pUDk\@Dii.QWXZzkL.QfdDr|X,7'Z$o #hY(ޟX= h)-m"hHԁgyQ^WW~DH"UU'VLF*7h9Өaf8!b&!(?X_ϖ^ZQd2˟(U h(/ r@oC@@IIG2RRrSz&!(yssL(47wtt7b+&@^" O|zHl1@~2.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h>N@mC&SdD60Os$&&.\Pk!ڧ!//OF ^zTA&x~^@p4 (\Qn߾M"JJJ22 БϯuttԄGrhTaaΝ;J2g622R *'(/_<}N 43 ;w|{AG&:;; Ϟ=CsxgΜI$6-;v?>}6 \.;w_---njj*:Xf GB$<<|ɒ%>liiqqqF._ŋ¹s,FehTpp0ákIeO:ncc/VUU9::GL9AyN{FdV" ^^^̍ܿppP*^|=Fa2*2 ̘1{7!RXXl2Dn=svvBcV4\$)lH$"wEJKKQ---H$++A>;v`5Q8ZWW'/@eO'N`ǡ=b KtqqB̙9ATGNJ~ A\KKKtFQ0^YYL& @͊b={899~ҒbM2G>ùcetEwZyYuuu4O>)Fe*\TTuITr R5AyEGGlbii9jddD$dP_࠺m۶`D"1(((66߷ LKK{qKK/F5/]]ݐM6߽{7##Ca,ZH"l۶-22RI 9D7nLNNtRmmmvv6cH#0ڊrQ==?q@`0A{N>nb?644ĆVx]rE~'h4=xכ ܿB瑑 %11"..N__1bW'@T*spp066-++377Wฯ(v$===,,LkUTTܹsd0k!mmmްamiihjj׮]ꫯ341rxooo ,{{{bcc344z\L"rrrrrr<.3 h.Q {= ,Ӛ vf'rד= ٍQV^@p4 (\!'FIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMemory.html0000644001725400016040000004545213273140077020176 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMemory Class Reference

    This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...

    #include <XMemory.hpp>

    Inheritance diagram for xercesc::XMemory:

    Public Member Functions

    The C++ memory management
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Protected Member Functions

    Constructor
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This class makes it possible to override the C++ memory management by adding new/delete operators to this base class.

    This class is used in conjunction with the pluggable memory manager. It allows applications to control Xerces memory management.

    Constructor & Destructor Documentation

    xercesc::XMemory::XMemory ( )
    inlineprotected

    Protected default constructor.

    Member Function Documentation

    void xercesc::XMemory::operator delete ( void *  p)

    This method overrides operator delete.

    Parameters
    pThe pointer to the allocated memory
    void xercesc::XMemory::operator delete ( void *  p,
    MemoryManager memMgr 
    )

    This method provides a matching delete for the custom operator new.

    Parameters
    pThe pointer to the allocated memory
    memMgrAn application's memory manager
    void xercesc::XMemory::operator delete ( void *  p,
    void *  ptr 
    )

    This method provides a matching delete for the placement new.

    Parameters
    pThe pointer to the allocated memory
    ptrThe memory location where the object had to be allocated
    void* xercesc::XMemory::operator new ( size_t  size)

    This method overrides operator new.

    Parameters
    sizeThe requested memory size
    void* xercesc::XMemory::operator new ( size_t  size,
    MemoryManager memMgr 
    )

    This method defines a custom operator new, that will use the provided memory manager to perform the allocation.

    Parameters
    sizeThe requested memory size
    memMgrAn application's memory manager
    void* xercesc::XMemory::operator new ( size_t  size,
    void *  ptr 
    )

    This method overrides placement operator new.

    Parameters
    sizeThe requested memory size
    ptrThe memory location where the object should be allocated

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_79cff32a5bbdcaef902b8e39ed326038.html0000644001725400016040000001062013273140077021163 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ast Directory Reference
    Directory dependency graph for ast:
    ast

    Files

    file  LocationInfo.hpp [code]
     
    file  StaticAnalysis.hpp [code]
     
    file  StaticType.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__incl.map0000644001725400016040000000702213273140075017662 00000000000000 XQilla-2.3.4/docs/simple-api/classScope__inherit__graph.map0000644001725400016040000000042213273140076020627 00000000000000 XQilla-2.3.4/docs/simple-api/classStackFrame.html0000644001725400016040000005274513273140074016601 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    A class that represents an item in a query call stack. More...

    #include <StackFrame.hpp>

    Public Member Functions

    virtual ~StackFrame ()
     
    const LocationInfogetLocationInfo () const
     
    const StackFramegetPreviousFrame () const
     
    virtual Sequence query (const XMLCh *query) const
     
    virtual void query (const XMLCh *query, EventHandler *events) const
     
    virtual const ASTNode * getASTNode () const =0
     
    virtual const TupleNode * getTupleNode () const =0
     
    virtual std::string getQueryPlan () const =0
     

    Protected Member Functions

     StackFrame (const LocationInfo *location, DynamicContext *context)
     

    Protected Attributes

    const LocationInfolocation_
     
    DynamicContextcontext_
     
    Item::Ptr contextItem_
     
    size_t contextPosition_
     
    size_t contextSize_
     
    const VariableStorevariables_
     
    const xercesc::DOMXPathNSResolvernsResolver_
     
    const XMLCh * defaultElementNS_
     
    const StackFrameprev_
     

    Detailed Description

    A class that represents an item in a query call stack.

    Constructor & Destructor Documentation

    virtual StackFrame::~StackFrame ( )
    inlinevirtual
    StackFrame::StackFrame ( const LocationInfo location,
    DynamicContext context 
    )
    protected

    Member Function Documentation

    virtual const ASTNode* StackFrame::getASTNode ( ) const
    pure virtual
    const LocationInfo* StackFrame::getLocationInfo ( ) const
    inline
    const StackFrame* StackFrame::getPreviousFrame ( ) const
    inline
    virtual std::string StackFrame::getQueryPlan ( ) const
    pure virtual
    virtual const TupleNode* StackFrame::getTupleNode ( ) const
    pure virtual
    virtual Sequence StackFrame::query ( const XMLCh *  query) const
    virtual
    virtual void StackFrame::query ( const XMLCh *  query,
    EventHandler events 
    ) const
    virtual

    Member Data Documentation

    DynamicContext* StackFrame::context_
    protected
    Item::Ptr StackFrame::contextItem_
    protected
    size_t StackFrame::contextPosition_
    protected
    size_t StackFrame::contextSize_
    protected
    const XMLCh* StackFrame::defaultElementNS_
    protected
    const LocationInfo* StackFrame::location_
    protected
    const xercesc:: DOMXPathNSResolver* StackFrame::nsResolver_
    protected
    const StackFrame* StackFrame::prev_
    protected
    const VariableStore* StackFrame::variables_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1InputSource__inherit__graph.png0000644001725400016040000003742713273140076024101 00000000000000PNG  IHDRK,xbKGD IDATxy\0d A@QDRAj*HEV^{VVzťzU ;B@TQl1}sSəy<3y30 U'pT8 *DRu'!!!!!AYB$w5tPF8: VΝ;ۡ*0yϫ: >l#POP'pT8 *t@(--KKK%WL, draaa666mmmݾR@mcc#B"6lЛ9O0͛7ǐDKK˧O2̃fJ(cccSS?so $_₧g+RK.tspphmmE pfbb.t+++++cc@6&JMMuvvҲ=}4BH( | ^|EXXX[[n/_}rE"۷:TRSS٭d*\ff&aX||]g*aB0''gNNND"ٳ6\I})"0p>ð۷ĆI>J1|>>P( ݻ=h wwW* WDUUU!x<`hii)6%%mرAAAr+#w:TϟKwK,((ҒDvE\.7..N(bmt Wa/V88裪:~zI䇛bd2!dnn^QQܹSQ L&sʕc2;FrcYYN-[xqxxG9+hHАkPII9>- B555ctB#@5k W~_kaУb+BBBnݺ/\pӦM cه زeKQQQQQի%AF//DdXiׯ륐d__З/_mݺOn|>BxPKKK}Ě5kJKK6oﯯ9Ntt\.!{ʕ찰%K nqg`:3Jy1ccY/^433c2q8 CCUVJS%KX,]6 ðaÆQ(#F( {> w 0&`hhhffvZ} 2ȑ#K,111(ܭC0Z[[;v6lXJJ ޿@ pssÅBaddСC7l pvR$,^!oQR{{{u'RPOP` Vu=* 8&&&GUu=*z @=ApJHHPɪy<A$*{PP"!!͹=LL6ԴP(:uzD2334'{ΝwK<(Cٻ;L6\OO[ VjjXo?s?_45q uLwwwww2TuvWA{23ef>+)֦Lh0rrʦwK-zfmm9jᚚp WxI|VQf`-wwO>1}:@ف*hjfd>nnp6#a%$]R.>>^^(xa [:…gTTO-^<} |ƍsܹSBj/Zђ%G0Su^zLf)͛7 p85t_ TU ̙IIDb//'pm$迠Ӗ̙O֎i…zi֭ۿ $)##]άwt8h;4iҺuzgu@]-^N,p D--m))Oɓ{{ڵ^~~{>>>R0p@``)-m""ҍQVxW̛7AQNj@(((;v,bݹsûζ0&444$$ܹsr={lee凯TZyy ޼y LLL|ihh($4439rDRN*9jd˗/722 kkka.PnnU'--׍u׮LUg||||||޹X``ei4ڃݻw/ZիW eƍ/^@͙3'###22rԨQ pĉaaa\ѣG?N"\nTTp6#;z왩ǏY:::ދ/Zd ÉE-^;v !|ٳO>d[Z2-݈ƧY,VLL B _˫$''.223޸qNkjjzzzFEEUTTHf͜9`899)}&!xG>_p_ TTu±X, ggHI#鴴c? ðÇ'%%s%ӲQL&L&ݻb▖H(\|6m0̙3T]/>ѣGxT=== .33Ss}aX||]g0L(l߾ɉH$={H$$%%)}wpoͼGkcy>T'+a۷o' -ܫNRN>-,,G6 ð{y{{4իJFVVX,^`c02#wtckkΝ;---bt())L{t;0 -ˍ GXm6:aXUUt Cy]E׽|z۶EDE]39'g۩S_ GmUUU:tcF###/8d2Bܼo߹s('Lʕ+͛d2+r޽ HRm|UUUxP(Dt&\CCO=^lB%%%ðK ¬Yi4H,//gt%ԙm *!5Qݽ[lYۮM>~O?}1nk+V uVjj*޾pM6UVV2ٳg>|X:* `˖-EEEEEEW\ !E 9':::›sfqD"qѢE&L/ P_ݻ---B;É~*e͚5yyy7oW-E^r<;;;,,lɒ%!2ˢ[3M]F@|ap)3Xܶ6|ٿ>KBQ':3Jy1cZ/^433c2q8 CCUVJS%KX,]6 ðaÆQ(#F( {b B>|CNRJhhh8;;رC__ذa)))cccBBBFn.. ###a$ 044433[v5)RPm|Ofd<{6jjh9oZ[?|pt4Sm=gϫ:T!,@:;U<ٲ؜2Ho-b0bc襤}z'ߌ^x<ޯdɒYf8qwZ >[?9;[ D“Sۨ1ܸq6o驯wEDD=_`رGuuׯ澌MQu:K]]7|!а}vccW^EGG6Ih4ܹc FÇ幹3 p[mذ!qF33ߒGx.]6m *>_xFQp)'m!!>]SVuRX,p8CCCOI 飏l~[QT㯿~TuFtTK.tspphmmE pfbb.JKK BzzUVVVDDq`` /lB(55YKK!P(7_4B9yok׮'NѣG'N]`]\.ޛl+Wzyy-]͛!H$7_촴ӧߺukٲes$K_|ܮ;… vdIsvvǧ\?<|_ޗ @Օ?cڵ k׮=s̠ABÇ322~|_~ԩSoNLLrJfffIIΝ;Q>>>}EE֭[WXGnqLL4Bhaaa7o޶m&L2 322ϟ/hCnݺ?oڴ #**jǎMMMիWWWW^vƍw;wG)))1x~cD,Xpf!%OU?xfX޲eB… uuuǎ_=zt |oܸΝ;vڿUUՙ3gQmmm ,8w\@@={.\ 7\__?,,Lv{>|888رcxmF%''ڵQ0ukHOOo'L78qСCG޽{ݻwO>=..~=zӉ'>cEQ|>_,s\-- +7J~W! Þ>}J$={!"h"-/_2ed 8NZʕ-[ȍxb8!!͛7QQ"QQQSNvss>Pssskiiw^ZZZzhChD"|ȑ2:.!??#GI~04lkohhTT4Q(.u_꽳h,(_ŋǏ?r͛F*~|p\&uа!TZZ/7],GFF ͛7'''+ $ն*ɟH$"o޼]ð;vXYY6555!d``QWWWZ*}I+N,X"$$9rdjjyB .ܴi޽{WZfIT@@-[?^rΜ93m4>O&utt777'$$i Â;֯_"}B 0aB˦tAL&Ĵnݺϯ2Bp?sg3$j9~/=e$ӧG 0lϞ= .\`˳dwwou޽#F>򊍍555E8p@p٨o&<<|˖-cƌ$ISSSQxkkkVV>8)=Z~}KKKll.B͛ӦMxx>^KKKQׯӿ{ZZ_&V2(ŋ>}aȡC]]]6ma|Hw!99$0c}}m~n_f,Y2xk۷vcʕ:::_ڵk ,B$se(ʦM;흐AP{Nw>>q &Qԕ+W9r믿={6ѣ%o;v3Ff###<*k@#p!x{NٲeKEEٳg;B ݾſ]+ p!""BߞSSSD PoL>~S~xgD#y<͛O澤R%O00԰^We{`ϞbB*\/y_|v6eqBhРAye&+yԢA ::p@m@%ӦM}}u֩:RP. >_H"inC33:M T8ԜXTcB!}9MVVF =A0D"ձ !IyE&t p9"55%8HPDS,1arcMFӳ664135ZYZXobП@`@pu9sfՓ'5Oի IC XD"T:]Y[..MK{؂i@̨Cti]]MUl UUUI; JUU訸X)'ob$P#EYiɏ9͝;lmhTV6zT_ildd>TW_,2|Z]A45IrUYֺVu5>v ^tJIم, rA#G{z rok+Wu:@@7̘xܷD"$sI*dҤa5; E&8t(~@raaa666mmmCJKKR%KsB}T8zرVII ҒHc.xHرg?[AHHȣG_zu񔔔pPyyQ_ygdOAW99SSkDX^=F_?;/;TM{贴'p3Ok.ccSFGG_t !$T:$(~ *ҥ54liA4'gfnV__gnnbc}Wm}ХKt:B988"Axx8F311 _zzUVVVDDq`` {B:;;kiiڞ>}!$ K;L9rDR?NZYY4iB!$_zPg*a۷o' -5OR\>-,,G6 ð{y{{4իJrqqqB_X,޶mNYTwci*x<XPP%ޒ $窪* ÕZpd2q޼JJZmaanݹ?yH@СCׯ4I~Y,VNNN&BxK~~Ν;ExL&( onn0{ʕ찰%KHro&<<<%%?C75k֔m޼___!s8h%dL&}}}CCC_|YTTuV???%ƭ=\n3f.ON{wR>~ذa eĈ)))J垎0L(FFF:;;kkk:tÆ (@ pssŗ4hɓLfRvZxFFF!!!wء?lذ|E(0&`hhhffvZEvy+׵QJx{Q{'%屶6uժiCT|R{{{uys`~2:///"$dkɓw 75ab2g>xĉˏOó."==`Ugz0J z*+kwRɓkL}|>Zt U@gAQu Y'U;@tJKK[r?)(5^x¢EtUBPɓ?xy{Ν묒 RP*+D"qvviBByy9y{4}#ϑ}T8/HIH{D|~ƠGii y.}<4p^b^\r--̙#?y̑pPlMO/| +@8?32Uuj@@Lsۛ7\\psHb=oyhzN pkiiuUFFS>_b5sST8@33ݼYkmm9sԤId T8@_$cEEiiOҊ nnLL:;?@u^5ݺU|Kbl3f8N>ɉ/J@\n{Vֳ̧-ƃM>}ԩp&*_lJK{$'L$;9Y;LgT8@߽[,3iu5Jՙ:aTww++CUgT *@}6fd<}YNN9:<@!P\\\snɝ;%0mww9aT8@nݺG$`)Z,&GFd}xϠwt!*"&M>|"9dH;,nAϹɓϟ?߅XRgeڵ/Vu@>@pT8 *z@(--UB=eʔ|%? ֶhk7T@Uήc0sWyycHHȣG_zu񔔔^HGJƦ!SS={hׯ_zbqSScrr]\\𔢣LQ+;|򐐐˗/|2==?00PSS ZZZ\R:g֬YSZZyf}}}pץ{ʕ찰%K dohh˗/n秤ɝܢ.ڡ4Qʃ3x񢙙0ZUzT-,,ܜJ.YbQ6B1"%%EISS ={ > s˖-xϒmDzzz/_̕F 9(ellQHH>c}}aÆ777]]]<\(FFF:;;kkk:tÆ I&`hhhffvZEvy'+!~8@E 9若^~?F)'p>􂃃UE_ԇѣGUE_z @=APO~8@ߕӵQUU%!gw|(KKjUgToڵB T8 POP'pT8R J.6IENDB`XQilla-2.3.4/docs/simple-api/classQueryPathTreeFilter__inherit__graph.md50000644001725400016040000000004013273140074023370 00000000000000463b180e83c18178cf5ae6b108afee9aXQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatter__inherit__graph.md50000644001725400016040000000004013273140074024021 000000000000006dcd8cc120cbb86c934c96a4c75edfa3XQilla-2.3.4/docs/simple-api/MemBufInputSource_8hpp__incl.md50000644001725400016040000000004013273140074020710 0000000000000025d912a64baa876d5a09877a14a1a0e7XQilla-2.3.4/docs/simple-api/dir_78395f82a4cb2f249a968d7b21478d82_dep.png0000644001725400016040000001346213273140076021225 00000000000000PNG  IHDRflbKGDIDATxy\goD9)X`X9*X_VP/?w]łUXP/-?nUETjX(!(G")ș>11[/?^_Pk׶:BJGG޽1I`8]ccêU뵵uvߴ)+,[":w?%% 'XZZڑ3g_ OHlc~-`rw|~#5tsu|,IcP`'WAN,0X "`!"0X "`!"0X "`!"0X "BƗ<{V#6偒;44Lv6l$WlvLLĉsdCSLm8JLLtuu0amSN-X``?yeɪ`_ߑ}X,D BD`,D BD`B :uU5*Rνzz̳MM L"װt!{17/::<3,ӵ5,D !G*/'<RC~}TV[Y)Jyי-\O c 9T8nޖ- 㠞;w;::MMMD"QCۭHrcw`m=/ B  **T(.IMO?nooan-Qʕ+?C##5ӏ(X v-o (*7SEQԩS>}*e,'',55USX'Oڵ \]]`=LII׏=~oP( 544400 }L%vZ!<:XUU=>ܘ(z~~~vN-[boz5ƍw|V/TlZ6D\nm֫Wdg_vǏO0e߾}Ҭ.>>>--Ο?֭]v566gz.}؈̢ݻwGGG=\bbbEE͍l3>?HIIol7iMqq-=}\֔)mlݦܲFcǞQuu]C+W~Zj=rG,f+))͞=;--H<-9<ݻwKJNQeccS[[K/eoo?`|]rt՛_1?Ҧ'444t.:7&fcpp'̕ JJJ"޼yS(!ƦgAAS$9M42m;kkkZ1yv3n[FMYY>]$)/o\t&E{OћlD===(ޥK|/nQ]]QѢE^G&\pŋ?eesʕV\;]YҚv8vXKKKRRR˿z5;-\0""+9y DW׏ĻoԜ9?nָ~[PUU;t(mְɓMRRUUe$sIz/ bXA,X,''e˖ihh yzzz_c```KN8>ܩ Ptt]\\۹2nJJ:))e޼%g Yg^͔܌'Ox---nnn>"R**&'}bX\.WEE%;;<hL;0X2`/jjjAAANNN֭{.57AmN_____222ĉ3f`>&`JLL xӵ 7RSSb kn,"߿FFF˖- FWWƍKKKkjjtE EġC=<ٷ/B\\ʚ5k.#}9sNpkmm500`r,… L2hݻwo۶2]K??~mn5tL'mmm&&&Lҏ7oիW.d(FcIIIaaaeeeL+7n0]Ȑ0lftvvN8qLҫ}r(k׮-))`w9skט.dN6c˙.._ nb=-_ѣGL;.../^d)0l&y߿.]jdd4v/ŋPչsX,}?A5EQ?O%%_~5k֬b?LJt="nѢEWDhVo@ PRR*((Ϛ; dgϾs͛2PH?#ZIf(rvv?~o˰0sss=l6Zxߛ,_h AAAD2l0Xo͘1cΜ9fO4ix>>|aX0cI~3f͚Ey򥱱w}goo/^=eB X[[{{{Ky'f9tٳO.~_ z߾}jjjՒ3;::4 oT]6moov˗/9ᡸlWΝI s\.}VEtKS|~```rr W#//˗/S{.YVVoM>eʔʕ+Wҗ[IxI/99>)''gǎZZZR.88800pҤI, x< xG ܻwtƍ*c!<<ӳZ( oGRoooZJKKB!yjkk92{l2ELL:yVzVdiiٳ}eee5 +~Kz2YH$9e"arrrzg"`=}Tfճ%ٷw [:::r4E*X3}tE`~3f̘˗/{{{wE(d<[G[[͛...2Y`ٳgQRR"|dp L";6W_IfAxv8΄  oY`ށf9rx(*[~H$caaqƍ &H߬`Ŋ߹sxL3y~HڻG- V_~Kuuu7#gI# ʈ>w}i!77wnnn2MGmJcD}SN|ZZZK?{'Aoݺ,N>t חc,D BD`,D BD`,D BD`,D BD`QtR S0O[MMɓ'er è̘.duruuw:999fff7ntppPWW722gX)))Ǐ޼y3P( 544400  ӦMKLLF%%;vK900POO4$$[%tEۿxbطDI}ENsͭUQQ zɉ'=z|}}[ZZ> qqq_|ůZTT}yQHQUSS{5EQ|>>غud%H$NU/DG'c,(**(?ϫW~G(++( ;SIN fees\ @aÆHԴ{noool6[<ٳg$+7n%%%yrQw=$Jiiʕ+_z &CgIN*++%/hvpp3f̝;w 8]PP7o<geeJhwܙ5kΝ;SSSlF1VOtJ}}}CCC޽{?]OO(jjj*,,TRR(--utttww*((ehhf|Jh/^oO:':0Xouvv -[@kk@pˆ"///f8tqqp8p/^nݺnڴ߿gcƌ_!:0XoL8k Otpppww9sttt̜9]8`ll[ @F O^xHzED_ -Wc`!"0X "`!"0X "`!"0X "`!"0X "`!"0Xx] [nM6*~gDXK,a L6MnV#*$?FT BD?MQ֤|AIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatter__inherit__graph.png0000644001725400016040000000774613273140076024146 00000000000000PNG  IHDRpDbKGDIDATx{PSWH4j cbFXȫJ|H_%g_@D|2WZIDĨhCB ?v'SH@r8ker_: Ih ИZxLZxLa#;O8e̎UUUFҼsۄx7o^^^q4իWH1Sh1SbQ//^fE"0 7772-[`0=z4Թ ?cƌ]vEGGd2xͦMф'OKҊ :+<ٳnǎ}v%KҥK&rp,/],J 77wĉJ4 sppxѣG t̘1cƌ9rdhh(ڋzjCl3g233Μ9cnn+?//OtzSb0'O9rǍgeew^%ɾ;;;;XZM-̙hBp8555 }Fа;w }}}>}* gΜW__˖-+++SN "hܹ EJJJsssFFR(.zۈ8ؿ? cMM p8^z)@\W婩+$/^  M_vVѐ$3uT މDR9'M܌ӧʅB!I|IAA}%H͏9"J hoo6AXdSH͛7ܹ$ɜKzSB$Ivuu뻺Lf]]*((0a|VXZZJW_}u~'Ir߾}L&U籴+++TyWWDߧwI7o6l؂ ]Gxdgg[YYݸqҲPGRO0 T"ޔtzmX * 9B%|$7mڴy涶66-hN,|… #""^~M07oP L&eCC3|pB^^]\\}O, Xn]TTTnnnII˗ժU;wljj ԨݻwmٲP:\.277p8߼yNT$Ɉt=m6(j>L&7"">]^c΂ Z}BBBnň.6ĉ~)`.\prrH$$IknذAT^jullQR)"I~?~<͞4iŋBg9s⯿|]33|Ҩ 99}z$%IHHSLLJ憈裏rB/ r߲E۲ݻ;ϟ:$_+*+ ; vSeeҥW%@pOGA }>&#bIm OdmX,=`;ٺ|g,,^&L&=_&ohDDaN4`ic -b`O2ń >T{є)S14&>c -M@>ACIS77'N̞={J2))),,Mhiiihh0az^[VjKKKwUXXh(_>qDddGXXXbbbm!ݻm۶̬C|⅝~|>޼y}/@X'IСCVڻw+++iii?޾}{aa!5+==رc ǫP*bYXX W*W^a$:իmll?.\xɓ'[[[Q&I(Z r?ؘdɒ-Fj, ;::АJM}/@2,00pĈ111GEWg111ǏF͙3EEE988F{G;w x6m(\&9r}{Ƣ˱X,WVVVQQAM655[ljlݺ.22͙3'((h@9|7߿?44q۷owtttwwGǥ.@y?>>>-Q^^?R?yh1Sh1Sh1Sz?etÀC˗>4gϞ yV4ȑ#K߇ c}ZxLZxL/KEdIENDB`XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__incl.map0000644001725400016040000000032013273140075020646 00000000000000 XQilla-2.3.4/docs/simple-api/classUpdateFactory__inherit__graph.png0000644001725400016040000000705413273140076022347 00000000000000PNG  IHDRp0d5bKGD IDATx}PG7ɑS` +2RP;mmDCU bЪU" bKvK"V*^B[(-UӤ-8@ 4P$m?'O$!^?~w #A≇liGD OD 0]v XJ B pO0]pzzzLLJBD"  ՅaXuu.J BD2N"_>ZPUU Ξ={!###l6;???0KY*Ι3c`'@NNݻ,+++Kw4$$D566Z@TCclT*VVVzyyd2Rd2T*===s-X%77w n2 BK-ZtIJ2Wa !r a4M(7yzzjZ<%""'(oooGGGsI77~:''/dxxx˖- %##C.7ٲe۶ms޻wֶsi͛l288ގ'8p **O  ٸP|̉d2Frba&>S###8݌kkלodddΜ9wd, -++Čܹ! q@ x`0T*GwѧaWWW??<]X,ƷϞ=tR\@ >쳵?Cm%Jmll<8<DAh;;;I'ԩS/^ p>_dRл0r>~ r݉'B$988;v Bp gjSkk~zX|Oxĺ:f=ztժU1-4MHHG}$Jwy'::֭[wܩ/t޽~~~BP(X"11q(\N|бct\.(j#""5 PTrZZs=dn,ɤ7ۛ6m yP(5IV3L''Giz>9rdɒ%pcX֭[ FRR*L6moo`3VUUyxxPTooIM^8qF:d2 G5qT*MHH`0,+==]wu)))uȤV9>شiӣ7'ČP(n߾}/ O/mV\؅dvR4 A  u˗ # Dri0 cXZt0 ՉC}VD[ZLbmS]]'WXZLbU>T.+~/K˙Iʧ{Fji93UTSsZ$˕V4cXOccM~,Ϟòfo$,SM25##c4XO##cZD -%ifm2J>+ϿXj/"fkI"[&oQ(u%8SmmD7)jmu/+,XGTiؘF( j m6;ݲvRK Ia'|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'b|"'0ڻXZCӽ(YZd<QoWE"ц /^lCطoX,Rxy=b߾}S A1@>1@><$((B 8eD"Q|||KKcnإ=!2b8%%alEEE,ˬU2IՎ>4ܹs͛g*f^D"QPPP[[[BBBdd#GT*V=}tBBš5kvݍgtRbbbXXXTTTee% -- oj5ˍrjzKh47n\~=ÑdUd[nÆ JoBggƍ><\. 9X:WVVTUU%%%:u*!!rss***RSSKKKGFF>s@mm-^%%%}Ygggyy9P(zh4VSXX_QQ0СCCCC\.gΜ޾}{[[FX,OOOseT+ovYYDJII/Dp8T*1Ld27(p޼yL&399&&&g+((x饗Kow3(_V?֭[KJJBBBIIIZ0@lٲs΅m?IqqƏӽg"H!q |X,x<|O|3{&1xڼymqqD"a0iHHHFFB0LR߽{cϞ=iiiO=Tjjj~~-,>ؾ}{QQQbb"D HNNHΜ9P({=B+UEEE)))666VM}8d29 0GgL$i޽45<  XQilla Simple API Documentation SourceForge.net Logo
    DOMNode.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNode.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNODE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMDocument;
    31 class DOMNamedNodeMap;
    32 class DOMNodeList;
    33 class DOMUserDataHandler;
    34 
    139 class CDOM_EXPORT DOMNode {
    140 protected:
    141  // -----------------------------------------------------------------------
    142  // Hidden constructors
    143  // -----------------------------------------------------------------------
    146  DOMNode() {}
    147  DOMNode(const DOMNode &) {}
    149 
    150 private:
    151  // -----------------------------------------------------------------------
    152  // Unimplemented constructors and operators
    153  // -----------------------------------------------------------------------
    156  DOMNode & operator = (const DOMNode &);
    158 
    159 public:
    160  // -----------------------------------------------------------------------
    161  // All constructors are hidden, just the destructor is available
    162  // -----------------------------------------------------------------------
    169  virtual ~DOMNode() {};
    171 
    172  // -----------------------------------------------------------------------
    173  // Class Types
    174  // -----------------------------------------------------------------------
    182  enum NodeType {
    183  ELEMENT_NODE = 1,
    184  ATTRIBUTE_NODE = 2,
    185  TEXT_NODE = 3,
    186  CDATA_SECTION_NODE = 4,
    187  ENTITY_REFERENCE_NODE = 5,
    188  ENTITY_NODE = 6,
    189  PROCESSING_INSTRUCTION_NODE = 7,
    190  COMMENT_NODE = 8,
    191  DOCUMENT_NODE = 9,
    192  DOCUMENT_TYPE_NODE = 10,
    193  DOCUMENT_FRAGMENT_NODE = 11,
    194  NOTATION_NODE = 12
    195  };
    196 
    216  DOCUMENT_POSITION_DISCONNECTED = 0x01,
    217  DOCUMENT_POSITION_PRECEDING = 0x02,
    218  DOCUMENT_POSITION_FOLLOWING = 0x04,
    219  DOCUMENT_POSITION_CONTAINS = 0x08,
    220  DOCUMENT_POSITION_CONTAINED_BY = 0x10,
    221  DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    222  };
    224 
    225  // -----------------------------------------------------------------------
    226  // Virtual DOMNode interface
    227  // -----------------------------------------------------------------------
    230  // -----------------------------------------------------------------------
    231  // Getter methods
    232  // -----------------------------------------------------------------------
    237  virtual const XMLCh * getNodeName() const = 0;
    238 
    246  virtual const XMLCh * getNodeValue() const = 0;
    247 
    252  virtual NodeType getNodeType() const = 0;
    253 
    264  virtual DOMNode *getParentNode() const = 0;
    265 
    280  virtual DOMNodeList *getChildNodes() const = 0;
    287  virtual DOMNode *getFirstChild() const = 0;
    288 
    295  virtual DOMNode *getLastChild() const = 0;
    296 
    303  virtual DOMNode *getPreviousSibling() const = 0;
    304 
    311  virtual DOMNode *getNextSibling() const = 0;
    312 
    318  virtual DOMNamedNodeMap *getAttributes() const = 0;
    319 
    331  virtual DOMDocument *getOwnerDocument() const = 0;
    332 
    333  // -----------------------------------------------------------------------
    334  // Node methods
    335  // -----------------------------------------------------------------------
    355  virtual DOMNode * cloneNode(bool deep) const = 0;
    356 
    384  virtual DOMNode *insertBefore(DOMNode *newChild,
    385  DOMNode *refChild) = 0;
    386 
    387 
    411  virtual DOMNode *replaceChild(DOMNode *newChild,
    412  DOMNode *oldChild) = 0;
    425  virtual DOMNode *removeChild(DOMNode *oldChild) = 0;
    426 
    447  virtual DOMNode *appendChild(DOMNode *newChild) = 0;
    448 
    449  // -----------------------------------------------------------------------
    450  // Query methods
    451  // -----------------------------------------------------------------------
    460  virtual bool hasChildNodes() const = 0;
    461 
    462  // -----------------------------------------------------------------------
    463  // Setter methods
    464  // -----------------------------------------------------------------------
    480  virtual void setNodeValue(const XMLCh *nodeValue) = 0;
    482 
    505  virtual void normalize() = 0;
    506 
    522  virtual bool isSupported(const XMLCh *feature,
    523  const XMLCh *version) const = 0;
    524 
    540  virtual const XMLCh * getNamespaceURI() const = 0;
    541 
    548  virtual const XMLCh * getPrefix() const = 0;
    549 
    559  virtual const XMLCh * getLocalName() const = 0;
    560 
    594  virtual void setPrefix(const XMLCh * prefix) = 0;
    595 
    602  virtual bool hasAttributes() const = 0;
    604 
    622  virtual bool isSameNode(const DOMNode* other) const = 0;
    623 
    664  virtual bool isEqualNode(const DOMNode* arg) const = 0;
    665 
    666 
    692  virtual void* setUserData(const XMLCh* key,
    693  void* data,
    694  DOMUserDataHandler* handler) = 0;
    695 
    707  virtual void* getUserData(const XMLCh* key) const = 0;
    708 
    709 
    726  virtual const XMLCh* getBaseURI() const = 0;
    727 
    738  virtual short compareDocumentPosition(const DOMNode* other) const = 0;
    739 
    781  virtual const XMLCh* getTextContent() const = 0;
    782 
    794  virtual void setTextContent(const XMLCh* textContent) = 0;
    795 
    807  virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const = 0;
    808 
    818  virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
    819 
    831  virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
    832 
    848  virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
    850 
    851  // -----------------------------------------------------------------------
    852  // Non-standard Extension
    853  // -----------------------------------------------------------------------
    869  virtual void release() = 0;
    871 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
    872  // -----------------------------------------------------------------------
    873  // Non-standard Extension
    874  // -----------------------------------------------------------------------
    884  virtual void decRefCount() {}
    886 
    887  // -----------------------------------------------------------------------
    888  // Non-standard Extension
    889  // -----------------------------------------------------------------------
    896  virtual void incRefCount() {}
    898 #endif
    899 };
    900 
    901 /***
    902  * Utilities macros for getting memory manager within DOM
    903 ***/
    904 #define GET_OWNER_DOCUMENT(ptr) \
    905  ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
    906 
    907 #define GET_DIRECT_MM(ptr) \
    908  (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
    909 
    910 #define GET_INDIRECT_MM(ptr) \
    911  (!ptr ? XMLPlatformUtils::fgMemoryManager : \
    912  GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
    913  XMLPlatformUtils::fgMemoryManager)
    914 
    915 /***
    916  * For DOMNode and its derivatives
    917 ***/
    918 #define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
    919 
    920 XERCES_CPP_NAMESPACE_END
    921 
    922 #endif
    virtual ~DOMNode()
    Destructor.
    Definition: DOMNode.hpp:169
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DocumentPosition
    DocumentPosition:
    Definition: DOMNode.hpp:215
    DOMNode()
    Definition: DOMNode.hpp:146
    DOMNode(const DOMNode &)
    Definition: DOMNode.hpp:147
    NodeType
    NodeType.
    Definition: DOMNode.hpp:182
    XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__incl.png0000644001725400016040000012712513273140075020504 00000000000000PNG  IHDR\@bKGD IDATxytqws|0 `PAQEm޼ްX&NvPO0̴i誸899 ¢EN誸 ) "/(FGΞ={+WRݻ=#"":;;ccc޽[WW7qD kkk, V@@;;s޽ziiiMM}ikk;v̙3??` 񒒒n0(`(JaaXQQQoQ\`FZT\]]%%%߾}#G!RRRRTTxbƦrssƸ~PP5F_d2󮮮ѼCkccCw>VUU>!,,,,,L=wYAAsJIIijj_xzɱciѣs˗/Y+..+tvmAQWXX8sLii![jU߳1NNNkk|AZZ:((9%n߾b```nn@ݨ}e˗'$$\z(::D 333333 #HჶvYYUEEE  fٲe?kṹ;vܻ=**KDD:ߩdeeͭ ʕ+ immE6l4iݻw F&]]]g͚9{Y?~KKˋ/)((000k׮;wF_oYCCm".%%f͚A67ڀa*,,155RTT$##yyyfϞw{UUt-fff׮];| 8\mm#G:::qssSwǏ?PQQcU[[+!!.///!!QTT4)TܧO>s̩S>| **jggWQQ]vGZroFFƐ9CCC]\\0…  !x<<==/ĔN>;Lc pZZZZZZdD"ԩS_~ݹsu9r䈲roݲeKgg-u!?.`tDziKpͧ )QOp8TDs111!AQ n޼W6EE_PAQ=}[hkp'Og}P(E0II_\J66nvvIivvINF<Madr;B98d+::^P(gp88@h]ee׮~eEE-FQQRSs…̙dl2}mtKٱW7kO}a}k^޽ѣ==d9sxx,Қυv@**ґ(6sZZlS-" Ϟ>+*z~["gq khȫ rndLޝ;WLʹ7o,*I(!u]YafE.^`FEׯ6Mbj ss..v#0J@Qz˼ʒ$RR˄r8+?EWEEm\ܭ8AmEBhAQz+W*jkx4455')ˏv::aHKkJ?,^fBMh5AQHss{^^e~ӂsR8 ,TDbOnn%SRogN 1ͽ08(W]]snn奥ox֔KttDDxю&-{uҥr^Ur Eqyի.<''^CCx >>N1/TuuϞb55ŋ99򞖗 ((kiMag`H֕t'44f޺uhAQdq,|QRRhK*͙#Ŏ"U{{wBBSE 6nԟ4i ڡ`JPYӻw 22^,#3x& 3E*"'3޽k02e˒ɓǡ &E|~jeZ7^ pϴPUSZ똷(RH䬬ЂW>-]T^~,ڡ`p=tu]{v?7eSq^h*E;7\Lʕ'G.^H y{HHFEɔߦ, Ξ=a>g t 99__CQQ CȔ>KNUs-w cbl`0#9#32V҅oLZZ:33K?8Q\uŊ22pHbk?}|O#(̡&>vzt;;u y}X(R55}?y(2d>//+籱E?( {RsnyEIi\33~~!.T55_NO4~**NȠʪccofg?Λ6MPh(TOdܺBuvѳ t꓈kᅰobc3&#o4Tʝ;3, nQ0FG_OJI41QX2P)jjN>yĉ-`F0AQDߝ;o""J\y2n:sGM897/sgթ+TLnjC;(~k=j|lEBB0*)/oo''M76PQ{#:ׯFF3kp`zz9gOօ @QOZ""Jna0GG 0S Uod=>>KZc`H'vm^^WW5k p RTpacxxQ`匌cl%hڵg,_P߻eTDp86+WcHdC@[pHC\d4P;c0Δ)㲲6944nxaC@+Mϟ׻UW7zu,I2wNKv"hGWsrO:.,lLɓl}뛢}իONC9jb_Y1˗D;# OH[[Wlڿf.\8(o|ɓ;w߻&0.RTԵ 奻z,/.\xM4FHQnެZ,??WDSю8/>޻BCCbX8p1$A ))t.:Gb.uunn1ϟ 50vW>\;sb[ "2g"X+9tt$$ׯXf͙|w6`j0=z5&钙dNF؛72'{-SF#㱇f̐?_YYw ''P )D"}cl.]XXb,5eʸɓ?Ss).~N 8 !0WW- gO6''~G2*uttؑ..q.㌰k׮p;ÆĜ88`}6m4'OJHlJIK yuq?8OG;ȫ'H)))ha^h`JG|wwo7oN04TO0~* %*_PS6nډh@ .֭==͓u*~(*--^^ z{/7>0ȴ43N-3ڼx5{zyBEEll;+W~ 2*+O-GD77w3#QQ22cN5xQ!ۗmj:+-cX~;jUD[[q@.߭OEE]矕`TUUQD ޿+{9j_?ݻ>^QQL&H`kkӧ޽{ȷÇ+**ΝүsReii5l_?o~Mə"֭)&>|X''X(R6GD_,MMMRRRJJJw111;^={SRRohܼqCNZ__O}LP)++P(^z9rL&Bp A*** HQQQI$Ҹq (o[bO<.''7[maʔ)c>}g5`N>彿qj?ؾ)..P(===}Skgϋbw7rM"ç$yÆ;a_$((ZYYNee˗***111ԍmmmD"QHHh߽{'..NROO۷|||~****--Һ~:$(QQQADX+mmmO>;E\^ fff|V?ˉ Ho#SNs`cF9Ht~X(=g/]*]c`P]]-[PHJJ>~w[谴)++;y$ucnnjTZZ:dڎ2lbbطG͛) u~eAA+cb7oP|oĻw隷=zo߾1'|A/_RKݯ|^!m5~~8Fo? 1}Qvp~ERZ-)had2i.\@'++Ǐ~~~7 HkkkVVQ_Xb۶m'N20?|KKKww7?lkk?+W| ijjH={b#Է㭬޾}ɓ;v='OUWל>e80++?VUU3!ݻwΝC;_̀M }KKKAFj!O ~֭-#&CbSi]ݷtO`:;;߼yv0K`EEVKh)"Ǥ22cЎҝ;wTUU-Zv mDlOpDE9;2g O{zEEϒݕюÈFj2ç^ym1ٙ"BKzILӼvxYc_Y))w##eoo5Innhg,37"".^vaN..bXR" we1cBCsr%&=ÆC;/kh8K,Lz(сcg'c^ƝB`0۷oӮ} yϜ)=m }蘨(_Z:vvzݶmۨ *d2w„V)5R[+"UV=&5pwvЮ}L 57w //:E"&Mhƍ۶o޴IM Maa˖)>I!z"S_߬wDOO18,15ݻ3+*jϞu~ӧo^^,-OM4ڵm:îbbKLwrvsmjN `pMJʽ ~:;Eg8x=Nihx:1qmlt' swﭶ+W)۫5->4Z5l6Y#l?^\ZЗqљV\U_c[lss;ډXP@1|6%2 t(=kמ7N`hg rso7`;zO-:# QQ"I Zy.<܁vXn~w$14 45ՃgSFRRa_x,u0bQ,,|^rXbaqBVVh5 0hYwjkzNGތR^^Q+-->>)˗"HVC yyO##cc׈3Ӫӊ}Wrs NGjW]x,E0\Q.=fhm͚3-Z4gR|P@;0շoW~%ډXĄ "w/?uhgۯϝ+ݿBDJ ُ-:XQQ~ډ̢fI[[ڕEB;+XrޢES7mJy臁bGG-Iӆ1`=߾{ysw?khTPૡ!v!"{갰UTTԢ9bKkP@EˍmZ/?Eׯq dY.MLnj32  ,f8㰰Gޣ07F)O|k)s@FU"̑).ުv"ZJM]kiHH!5٩khoؐO0JQܳ'KYYf.A ii v"`0k,reKg'qɒh'bb &0вCż7^i0cgFH;wfG,X _T䫣3 D3eʸ+WKusmi@;?^(44,Y_{zϜ3gY:^hdr񕡡v,#\@iRڻw{ ډ**lI_J߼mA (J|KWl17WE;44&L&in~b߾Z66ѣUU""JEG88,`,4498Dnߞnvfĉh'B0OLѣBȌ =|z෡\O. nܨn @x1-c,A A ]dɑ20OO))ϣ04ۻ,fiJo&=pᔂ_<ɓ]@uD:D(*z~R9YA(&$vt5Q謺e a(~df2aȱc+#>>檇[p̺ =Yaa?Sqqv/EY3}:̒nO~_d--eeՋ+ЭG@S'NlڔlüAiiQ"7HK 9ψtiIb&&22`034~Ϟ,FDd2e)tHO7Kю-SbVfzI@;!ng}9bp f׮e7n*.~vpWL[ۻDG;G;Аb L=Ƕw١Cӧvt7Ovɒ{f?WKK_kjN[w[[ݿ.)i-+hjn֞SOIYwff0;L>?T߿oIڻw FFZ/^ܨ*vdhcmP UT򌸹s']ddtѣhabsEq BQRO{ꓙY(??WV=zͮد.X]]98Q4;kʔq'^}vyQQ(/}#ŋ''LIM]7f qhb GmR%[J@;>\ٳЎ>QQ5kBC }kG; `t*53gi"S*/Y"tҤ1||hǡi}Wn!(+VFp8@ˀmv̀[R׮byP6;SSft[ᤊʄ56;ˡŲY1gonܘH$ }XQ*z>4")+;!C;ͭX1Z!p8oa%Z|knnNywHH>ACGQ| SC_`WUU`|1;::ʞ  ]Юa7믬}rBWp8ѡ(VFGDD.^nAA[Q˗/=͛74H}Bu8upT]Y|4g3vE r aٲYhgADEE~l={M'bQljjRRRVTT!66vٳޚdnn8!TSNSVVP(Q(~_z؈9D&[[[{zzEyQFw>+A) uW^Q(//8oϋ"BxRO#MoGӞ 08hk벵= N~eeo˗***111ԍmmmD"QHhI!޽{'..`0۷o^#"$$TTTTZZ*%%uu66_kxHBBA6j/NZ[[;F24T:y>9n@@&Cʕ=>㷘g~~ 555[ln|qaiiSVVvI\=kjj*-Q2lbb+}  xazj ˗/Ugih117FC]9;/[;Y@QE2KJƺLH d/\ OVVǏssso# A֬,SSokkXbŶm۪ N81d` n<=H_ ߾ ݻ}v;;A6ҁ'Ϝ{7E &&&Az|6+롸FZKBbSFƃjW)̜9Bddd766vwwٳGFFW]]=!!"B9zOW:99YVV}ԩYYY}t7Է9aQQwtt q_Ĉ\S+++sdLL։v@'PGgo>~/ %+l{dlu$ߨkhtux-\uz]ֱl٬N͉ fЊ% Xw⚛g̐ D; mnnnjAAaaEAAWBCnn>45&G!8Sded23D9}z5E;ءAFXY!>>)x<ˋ5"&LW>GGMڵڦ{&v@[PYV^^yf͒F; `q I;vdprmlg䩩ɨL +"kmJckK7…Ghg 7EWwwmb@845'n>ujUEE恝;3F D\\gϺXY8#fxaih"hhhۺ5N]GgYؓ|WSc''>%e]~:=S`LLKJ3~8o޾' :;h~~΄X,M+ݜyOh"KصkAH쉏y7e5hSxYY^*&Ƈv"-Y2]OO}!%垻''\4ag^W*$c`08DVVL]]6>TgL,'qi={0 YVVVmnjeuJJJxk`%TD*66rqMO.ޞʪr>>s֭-Yz^^ǏFEfMڿ?@Pe_kbH\o6..vk׶(lۖfd| ރ` Mupz3qLn݆@QdVaa_nfv|㓢}s\Kvל9Ǝ ,(53 qpvŲÐׅ ܙ҉vɉufgǮ\ҁv[jA]]3nJ(2}.qjd`,[_S\R z2MWzڵ,=nO|kcw"kĉF ESQQv? nnn߹3(=/{^3&dAXg煷nm77Wٱ#hikCii8G{{'zڱ۰(篿TUek zOCcNΣ`TɓǡEp޽x55hӧK;dd<va24TmXE&s[ 1˖߲%LڵmډX̘g]ݫjiܷ/.CE:D v,Ác 3;˃d,Z4u[*6v >+9̞=!'gcPKw48;f$&6L"sP(W ++9[Wi [Ӫ(Pa0KK[vۺ5uߣjDDxcb?:\ZZ9wnazPåKlقė/?KI{!,AD0nnv-8c^^皚j8&OtrEP[y`vfE ɔ&&ӦIBDF^[$=/N`HӦIdf).~q 231ܡC))ddƨ0%E&p/>nތNW={֬JKA%E @Pqc*enݛjm=wݺ>>7nD;oP|&m(2' f2ALEEޥyXgϵw˛I$%A;wf27mF3\]c߾e4-`.]zv0|P]A:5q))-3>]2;+(:3l4Ɔ9~VFFtժHfYISOOFPEFR;m )zvI\.nӦDubb| hk~Mݸ1q꨺fC*\ts{{[,wuZX޾{V[sn~}OOzvZ_߼|yHq-[O,@H'8&=/N(`'Ǝ叉q{}KDEy33 E.Kϡ :7,\8n:;wR~}9g1C1ӧKb5D9%.A0AQd\JJ^_KSRΘ!uf991 zx q/[ΝLԆ:ob-,T߼,@Qd\ǎM&E5 rHMk,Y+]61AA/,,|vmjt jF\,=e8݆IAQdPUU/_.߰AmnM矼-v0fIٝ^.˗VC Y'dd=h " ͗chDۻDG;ϧuw9ŹܿV[PffډmÆ\۷vXaP[۔QhI듶6{>4y;8y1c/]*(!!訁R4:љVRwUO>l5n|"%%daq[$%͓MKv{(2"11+Th˧O-VVI&Ni_QQ[A}A"xX("o7mEa°3ܪZnڔ8y83h) mZZ:~ 2IIw֮]D9W!{抈 2tw~Ř33gR~|?T; -[kSFF3ز( '::;;z.ǖaFUu>"gQTgf}(>6cks粹s'9; ,ׇ)ߘE} ggMuQ]utϱcG{EDXXx^.))4sxGBL^mlmO3pX,[X*<Ͱ7yjegH@_PKBBiGqjZ]雕)aauJp/3?~XKK5:<Ø]Pbb)ډrwo6Ypaa `@Qd $9UP]0) YY~HYlJL~OcU*(H?nu=9U3{;fRRJR]%ZF۾UBiQҢTRBD:cc1f|{y<4i44|DTTZi鯥KGsyBAfC[AW60AK~CD05*˗q~䵢dŊq6cզL1,h3g^Lj _P u[e9~`t#D%k?~ko?#'kEizKD0|8Y^^}vX`F_xǏ?V|2aA|}#×LҒ31Qk;-FOb[I-x! q'OHŋ/ 4 ( AAǍ38P-={nɓFF*o/1{?n5x:c [o1m'HvիK8lVN7Ӎ5Y^^ ^ 4|O4'sa *=Æq8hk9| [dGk(nunp~Yx*0@{+BCٙ>ۧ_?~1'B'UY2xLee۩۶Mgnz߼ɋg^jݺu]illkBRRґ#G-6j~lzo0Gǣ7OY+,"++~)S9מJh[A]ڎZ "p!^BB!qO| Kvjhh899qPi aaˎ}}{Tbb#syvj7nefic.ff/\OOZ ̀˧rJ…DDHj'r\+N Xw[ۃx(}Ua|r\AQ%o#8`k+}ժjj2{TH>맧4kVPpp<뤩oT@qQwQ4…9sͶ>8+ljnzB =E^^"4tQy*,L<{֣&0Ot,;r^ 0E^\\㿓Ox} xr 87V&'Ox(;'2O<+T>Eqtɦ:iժбc ݭ9 {p8L… qssA&cAh **:bĈtfQ?`m^MMHx8o22\9~[<8qYa4իepAT*رyZ "##_ݻwO^RR'n6Ҍ ===&>=jV\OXSkl8y0ŋ/<⒒Zʀ0EpT܈d ->::1WnO޽{{Zɓ'&LhjjhjjrAA^+(((+++++߿?''tz=j! <ɚ>hV5X2F鋋 =y_9)!Fdg|SY"=<m;s=55ktɓ'$%%p8JqqqQQQ+++2wٳg^bX]xHAAa޽W^ё@ P+)))**_JZ[[x<@dee0##~߿ںuVMMMv>{ 6K#&~ fK='au{GݢM; ΂#pچ̲e>~b N~~MLL $$coo?xf}}=JeXа(@EEu훹xJJJ||ԩS&O (//hhu2\\\^ JJJرcﮆdA<==-ZDR!wUM@WTUUPOO6221c:"bERRޔ)ǰLLj#&&jU^G2Dn+-(b c0N ټyJꖢ'Ow>|/nɛׯ_v)fLL}G6_ +|}y wppɱ?~|lll||Z=//OMM3g\~=..,XGdgIj x/wfQfXYĬ&:8y3fJI9㑜ĉuځ ~Ria4rNZmmy%s 11޷:h"ook׮=}4::hѢGEElذy#--- EHHi֭߿GEEM6Ȟ9sƍ 322탂N6lD H$o߾eeemٲe޼y700ذa˛AJJL$uGP7oޜjժU;w'N~>(_F@crꚒyy6,K> cohժ޷bes˽o='NR(AܹR]]MPvء#!!amm)"r~ihh:uUVVC鼧Rv .\(+++''l2ԕH$ڵ A!!!TTT֮]ԕ&}}M6B%h4))o߾val`8f???UUUiiiWWך&ՙ=dqɒK&&ee0=c Ó!́F;rUT֤;o(+}S,:tKnH HRRI};A~j9{V6=gCw`/[)v\0xyoôKϟy%%i@xο[$̶D/\XZpX,u`āEE՟?b59(bď511oA릉/8@8NyvマpqՀ?0ss-EEIx*"F<ٴܾ.-`׮x?VQY' 1nܾ^6EEeMB—N)r4eUۉ۝*jk)DI*>>zhGGǺ۷o*++f'L2ܦMN?-Y"s]{dɥF.F6 }**k1-\QQ` IDATYSS}} ϿM#4}C8=omgtIj N!DI*;' Ah4ZfR[DDDtHvǂ |bIN4h.\uu!!Ev S!!"\|Ž{3f*'Fd仏l)UҧOLIIllld@$:9DQQ+@f;ݖаMÛnԉ^Jwt (''^]g> lpXȂ=H#G\᯿nr4866֮=c ޿/m^3Enk;@LLCCV/"8tQ+W^/_~cpÇ47S"9fgƌ1@||6FQ2 II>{H/!? ''˰0/NN8:%''qܛ7S{ϩ6; %%jj4 $UViVkhc3굵W+*Dc9R/*juY/Gǣ߾Upq ݭoQé6;0rޫW_8u0**2%%5ΞO?ٱvzB}z~hh'B5uw爼W^^-CX _1/_p80f{ϟ`%YUA ̘hĉy \:tL1 LHqr }x3/^Lr"`dd\G-qq-,D٨--pٲ1Wk "B2,"b˗fzt*#QQ>eeuӧ3OnvB$⭬t_F`duubBBرlNϝ{if9x6GAz Hbd߽͛vb1/&&7Kx-@C5DDHSٳID#1B\v3Ų_ -tKKJjǎ5dnQQuLL8 S|!$YU'$?ԷzݻކSқDNt{SxNW[ +qqhQ788^EEM!|h"^^6_oXx|OXB-o-M$bv@@$ Lx yFD"^SSFJrr>{kIt:~ `))Q77Xuc=.膿pi[Nۼ>D"tMMd>KƠ!!\]D! SD<׾LL4v'ݚ˗_ܱ{?!z K>zܹk^c-S8J%+ n+쌢n_6/^|62RQRiG2Ys !xO9D4#>~ìYCnH>|7S8Ppr ^aMM?dEyyo{ 0)WUW㤤ѣ٨xjF0`hGUܼ1-m۵ked|}mӟagg|׻wlgapillپ=zp8۷wBz vFX[YQWKС=>BׯYsC=1$=Qgzz{ۼz@?+\3N1Q^^kr䘛at߾S>;hh""BJOXz3!5NG,,{Z1À}>;F77wF=m$cҥcV =weOo>g[Y閕IyFLVO|%zTڵҢ'*8^k͖kז++Ko||>fliۣzOXRRǏzs0bF PSR ,-{t)\e{ ')@9&L8ho888^͑#gm٣#q?L($D43ӄF{{43c3o=P|Kqq͜9ø$ 1o@II&1qsL:{o{Ζ- KZ:GȈ_vÆF{6_3JKkKJj{8,,JWOg+lLgh}Ιee\\NСZ^K BC=~xEֿĄs}<ƍ6L7?6T*D+~PLLYR]-ц=@(/4ҥWÆ3#GEDLM-7,xHN,@(Қ&khCΝ4))ѱc K<jYxܿ9Mz`Cc zVSN&(yԌ'XLg%f͵@XXh56R>.eK)x`d54%&~žkΒQQ:ՌD"pOm%%,L̺Cu57&p22b+ Tf by^УDRS  90|8dfkhcׯ%pρ˧o Ƕkk]\N㨉=¡Kuv>mycc5ۿ~+ 33ӂX3]G+&2򝒒a=E OQII''ˈ/_n1co BBijg888>>vdu{:d6)b ozJә=󲉊z?k(™")mӧ狈Vji= o#G\glYݤ"G_x+ֻ*,b=KxcUUe:0ǏZgTµS.4%Ky$k|ȁX`W""62RQ!Cq8<|>\/!A}m22aΝ42YG3KOާMRҖ@s7,P}5k֭ϼڵ44_ch 0Z3xaX7畆ސCIIJQQ4=::cUAz} g1j_.]z4Պ߾:|}EDHw~n^vBWH$¡CsM;~FPVZ67zOQgx6S;eJ@/.56fum~Eovht4qnMM_?~V׷Zןg9,,yz^W?_l}P ZںNY/VE PȊ@vv>-''~|^ Ǝ5ܲe +$$mUpw?Y֎^sCC^,=skh㵮};ukw횉1vkjS|yI {W8e f[qqxݙVznO##?yο(DZ0GD写3GD?f 9y=44fWB<})::T#p xi'L0kNIC 쑟Bi52RepV֏߫QgfB1jmObɊ7;{ҥ22b^^WMLodgt:,8x[)kքw;|8y\oun!,L40P3^Emmy]]g>P{|\J$dEV d*+KTƘhɊ %-,41W$YU'$@9xlggQʕWN&mmk(b/"n@lGj`X}(s$ |P4=$aL ^^6_oXx|O+ǰqɡⲗ,D0 $))oӭ[Ots Fff1_yUxlmlss~փRCC6Kr[̞=J2Ō'z lr?>/=}{`RӣG z0Æ |&oѢ 0}_ݪkbҎfCCKnO)aD>ϟKYy CJJJے DIIʊa(//ial))Q77Xuc=R͕ws;p9w׮4￙Eq(گ|";PbCCKQQ5FL;;c+J 3gh%vg01عsOtkn._~;g^@DĊϟKu{O|ǎW&-6[w} meD<GZO[xrno)zf g̟<mH4hKSk\ѫ"WyzUU#F͞=d3\h2IIfc#3dd'O>~TY7=璌쒦&*T* ]hei(64 syyE’mڵ77%!!6H/Y:4*a;)Uh4zbbnhhңG"S.X0r&/陸)EEk͸B8O66>O.54Tfc@(@89YyQgzZ5իrp`?]]۷**~;;.)qs;y׮{T*A" LM5J6ׯ8܀F0eibbne`$ аT*660Ç)(HT#\#PRyjݻ&&[4h億n^-/g6tt"#W8u4 5J& .' )|a쌅fZK|\j`moZƌ1@S84q$MqC߿;w,(tq9=zޠg]^q332zV$,S^]2A'v^ ,FAz RGGTTv@tZK7TUWW7b_B&+jius RRRxj (y-^k/,--yHIYYRvVSq{>>f=i %24NvY GPZ/}!+a!++]]]o*ۗG g\6(Xw[y))ߦM;UUUyI#Go>alzu^/77x-3gεkxkZZZ2gg/_zEEJk_я6… qss൜.up4iͅ=#*h4:J zmvmҥcDEI>.!ƮGѓ$_lx M&+޸bbtk>NݻwO^RRVXXk9.((კ?kjjy'ZEbcU_OAZi4zss+ZZZtBٳ灚UFF(/8MC}ŋhٳuYWW 8LZ2ٳ-Ϝ b^{,ϯPTeRׯƌ"oo[TIg_ާ(&bbw㵐Qkk]$a̲e>~bŊ***8} ohh(,,C͘1Zqqqo޼QWW3fLBBgXJ2+$$coo?x$%%$uWSRRNjnn7yd@yy9F&m.$c tMAnݺ5{/u[aa̙O>7o Q&Njo-- jjQ޼ Ow+**:y򤭭oMyyyt6 HMM͛7o跳jAAz'==}]jjj7oެ^x)SVeߦ&ggק:u1vrrr,,,ƏE%%%Ov^^Z{%(gΜ~z\\\WC9r߿_z!3aNNNwܹqȑ#YJH߆"`Μa٥Z |7`8fN/ZڵkO>FϜ9sƍAAAko޼].[jU[DZ8n„ o߮P($ILLaiӦ1WBPn 7+d8SN 6D"؄hiiiiiH$Ϸo߲lp%..n``aÆ˗7773@5kСC/Cf+FںcwwwV }&D"͍%$$ojj*!!1t={i`ɲ-;Lp'*#!ዊn66n E'N~wQQQA.\(+++''lٲ|~~~Үmk!+$$dhhŰ:BA7P:)t~ihh:uUQQiK5CaD"q׮]444 uT]].''v6'Ϊ7m~{GтXQX CY|h]KXQQ_!uavرcwE 9%0 :AZUUU H]]ѣ>|˗۷o0`ܸql<7@bbbu{ۇ ի~p[Ljjdbp"plڴiܹ,OFɓY)[(D HKK-[ xE]hU__}̙]bd:wpA1BHx$Gl$%P/^\t)0޽{jjj555k׮744'OIJJZ[[šKjL%߿onn.&&w^fee@YYx3MMW^1.^hddwޫWHKKT땔ׯ_OR9~~~&++@mm ;(A[F-BBB!!!/^ܳgϥKBBBڶCCC pzfGEE(**Nj:֡Hg犲a@) BhORRR~xnOWoڄ rrr޼yC&P.Vptt}6vULSA|)UU]w(vv"06bCBB \|Q*\Ź"BӧMF ?6kݞDԟύɜ~DDDdx 4 İ 76؆ ---u\I(ի -?ZZµSto;`bb¼}25,,ŋϟ?uVTTTTVVF^IOOo8 ^[_mqƆ,+TUUx٬]0:|m8~x>d6,?(tUSSC[?2oajߋs-))9pѣnYUU4o޼;wS+kAy< ''GUUvM]0:nL1 >`TUKvjJJ2<))d.ZhQQQeee111.8WA<==MLL/^ URRF_ ,++{qNNNΝܼd_QQQWMIIٴi㭯G/f:ԡ &7{V~`{(r&5ϟgwU`޼+V\R=E}{ߐI&{(X)2P(;vёLN᪲},5$$DXXvcrr2ug}}EDDtuu7oft:Өq_Hw:( Օ￑h޽&VO}-N $nð 6H Ȳe!'⡀|5IoTEeMzwUq2LR,1#={vMMUUU K?^MM-&&"66L&ZscI%+8?"uQ:TT$'JG**kZZ _ OY^ $?8<Ò LAti.7Vg\QNyy']ogH$/1#DK1q˗/fddxyyZTC ^!0˧(K..x-IJJK( :ӦM>}ŋ-Zf:柃TC )H3EϦM3g$5IJ20 ?~Ԙc Ѓvf5.((((((Z%6S~\y65KKvC` h!/ xFHu8Ó'a#7KI10Err]0B D<X|lo3Ee@ } 4VV:Mjt1S^6w0G6V1potv3^6EEE7o P(4!!x,)**Ѐ }A5TNz~;jhh wlo޼f8Đ'--Xv-, hie5%@ \G O8&::}55QbbBCEEFнl>nnQ]]#?U KN=c;<FLLh1K!|2k`mm'rƖkT*-7̄[;&&s))"B  3Ed**r*fdO٧ԩׯUQټypaa@B AGgbc#ETcOJ @]6jԞWׯ7/Y2ZDs([R6 O?.SaNVO˶?~,9|xNBF77k"Q?o=Yljvv=d=<'L8[ř3>sr8/&0/|%x۷SDaQlX$99'jk/_^ߔ)fXf@  F0c`MMCsq UXI렗 s8yO޸2*Θ׺ KQ$OsݧO%oJHS00Px_}:hox 9R׺ QLj6`82Lܟ"JJRKСRi7ow 11._^bnk]} w ` C_dE+*vnڑ#O~6<$d1W@ G1ֺwߏ\fdh)oNz^UU?myxL4Mjw r3ܟ$ASS- ?~Ԝ9",,I\\fw@ }>h7N=zoXXLj޷F#O#\[[:ܹ69Yt%C$jpƍX ("BhEW>o:~Ѕ(DMՐ g,Af~M·0g d C} ;2 s`VNN$BB$EX Lj"B(11tɒ#]$j677r-aCVw]WP۸qޑ#!!ml6{uu;{VwŔ `7LOd2;:"ѻ8Ii=[rs-!" `F{޺;icw<%%75}!۶R;&B$j`q$I$!^^v..c8z<̙{YY|Xbp vb IDATTP)geElz`A +N{BA.Zw[~Y:B!6o0 $`%%Ю&5͛O}|Zhhh -8VX`gSY"DZ{n|O3BA ?$IZ"(hTڥ.""j8*Ϟ=a#bAAũSwssKNuJK kY: BP8;DD1^^ܸ[TELATUQ!Y,@0dh) ȝ;?V57gfjVwV,M7MVٶƸbUUSXɨN58?~\ߓA8ś?{Ǖ*N##$d:s0tȷ23?$>=qѣ?.vH}$Bo;a%%bq_"5 DZGW[7G/"eZX,w|CCkCT x[+-<@gg2̌U\|̌VFq])"Lٸʽ2DUmm-.wcjl[z͚3ɈBu 9#Ąt4+&l/DDE@0]\S6QX('*WL&}b]N#"q>~r9øSEԩNo5My-#bPT++3z 3<|0/" }#"BH&SX  |{ZY| 0 cͯ\a5ɓjX,ƪUY,5dlٲ@ IGhɲFS>;CCX,7"#28ckּ')!96oKuIGXɊFLvf3 |U`Xd \-Ƴ1 = tȈ#/kA;;; PX ;WKGGODDFy0Abffq]\lmx< kwwDb KKKSӑ~]WWW[[0f1n9BB,z7@ޘ!KJJJ{N.5a7zz~~Maa}IIW_}hk;y55m'NJAD"///*eҤI|>_S.{;;;/X_~q\mvLfc/I{q}_t)//ݻ׮] #shjVVV᡽vˤ.T>R6˗Z Q=ŋ3f(R[g0/^8y%Kbcc\.WD"ϧҩ'sUUUTovaM:;; zjKK͛WXҢ6{NNNpp0ar!TSOdIJJ?~BBBdd$}Z߆$y̙˗k22N*Bϟ?5%~{ӧ -}ww uP$bӦMї/_}7}DSNs_];vD"M0 ~T*aXcƌQ](\* [TB]г$yfPll]ttX,>ϯܽ{@jTٳg[[[*wY^^ѣkI4DZz:%Ba}}}NN 60bjj{zzHrppIҍ7،7n֭7]]]{qtt^vD""Iʕ+l6G(ӳl2z:p<<<;$IdyYXX}dOOO711ߕ)8_vmMf˺u-^2ח}Ξ=r;;;&j?gr<))|Μ9%gNj&!i?`Qƨˋ|3MCo? zAP4FVVVIAx$QbߘFR  DKm.9KKKSSm+Zz7@z03EEEEagJIENDB`XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__dep__incl.map0000644001725400016040000000030513273140076022402 00000000000000 XQilla-2.3.4/docs/simple-api/classATDateTimeOrDerived.html0000644001725400016040000021551613273140077020306 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateTimeOrDerived Class Referenceabstract

    #include <ATDateTimeOrDerived.hpp>

    Inheritance diagram for ATDateTimeOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATDateTimeOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
     Returns an integer representing the year component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
     Returns an integer representing the month component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
     Returns an integer representing the day component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
     Returns an integer representing the hour component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
     Returns an integer representing the minute component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
     Returns a decimal representing the second component of this object. More...
     
    virtual const Timezone::PtrgetTimezone () const =0
     Returns a timezone object representing the timezone component of this object. More...
     
    virtual bool hasTimezone () const =0
     Returns true if the timezone is defined for this object, false otherwise. More...
     
    virtual ATDateTimeOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Setter for timezone. More...
     
    virtual ATDateTimeOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
     Returns an ATDateTimeOrDerived with a timezone added to it. More...
     
    virtual ATDateTimeOrDerived::Ptr addYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
     Returns a date with the given yearMonthDuration added to it. More...
     
    virtual ATDateTimeOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a date with the given dayTimeDuration added to it. More...
     
    virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
     Returns a date with the given yearMonthDuration subtracted from it. More...
     
    virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a date with the given dayTimeDuration subtracted from it. More...
     
    virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration (const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0
     Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*. More...
     
    virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration (const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0
     Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given dayTimeDuration added to it.

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Returns an ATDateTimeOrDerived with a timezone added to it.

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given yearMonthDuration added to it.

    virtual const XMLCh* ATDateTimeOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATDateTimeOrDerived::compare ( const ATDateTimeOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATDateTimeOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getDays ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the day component of this object.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getHours ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the hour component of this object.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getMinutes ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the minute component of this object.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getMonths ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the month component of this object.

    virtual AnyAtomicType::AtomicObjectType ATDateTimeOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATDateTimeOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getSeconds ( const DynamicContext context) const
    pure virtual

    Returns a decimal representing the second component of this object.

    virtual const Timezone::Ptr& ATDateTimeOrDerived::getTimezone ( ) const
    pure virtual

    Returns a timezone object representing the timezone component of this object.

    virtual const XMLCh* ATDateTimeOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATDateTimeOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getYears ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the year component of this object.

    virtual bool ATDateTimeOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if the timezone is defined for this object, false otherwise.

    Implements DateOrTimeType.

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Setter for timezone.

    Overrides the current timezone. (Not to be confused with addTimezone().

    virtual ATDurationOrDerived::Ptr ATDateTimeOrDerived::subtractDateTimeAsDayTimeDuration ( const ATDateTimeOrDerived::Ptr date,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.

    virtual ATDurationOrDerived::Ptr ATDateTimeOrDerived::subtractDateTimeAsYearMonthDuration ( const ATDateTimeOrDerived::Ptr date,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given dayTimeDuration subtracted from it.

    virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::subtractYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given yearMonthDuration subtracted from it.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp__incl.png0000644001725400016040000001516213273140075020033 00000000000000PNG  IHDRpdbKGD'IDATxyXYBDeS .uy ֵrbҫDco-Zw#b"jEP>ʢX&ܛF2YlW8̜󞓓73 0@>}D J@%Ǝ;uEd2;(SoD">@x} pDiVZ5w\]Ggeff߿_Qk$JP%(D rssP555nnnKqH:thj H@{VX?^^^۷?z%Xp~~~ꭟ!`q(P;H{"##WXjժ~D5kxxxDDD[>|pӦM-LHH@}> {-['B-==}Æ |O?$˫>~˖-gϞmnn>y$BڵkJ ?nooWN_t:?FI4(Vښ5k-[0̱cEX |tÆ illD1LdĈ#F@Qh.؃:BxUUjYYY!H$t; #J d2xIyy9~9s_Www_lZ5HTUUgRy@@4777IRnnnǏ<… ϝ;WYYYYYw#P(R|>?66!сr #W[]?ϝ;`@7P䫯3##믿ټyѼy󼽽I$Rgg'1c?BNoٲ%<<_~k׮?~PPPrr===o߾-]lj hSSS;ܹsvBDz "Hp.jjj|||222*f ^_}z(U)%رc*@% Q(@ H,87\%%%/K`b2:~hlMhiϯio/@HSF qЫƴqk۷oin߾i@7JK_kQ Ȓ}QDgdFEqp`DGqqrϞ&>yR7Zdl W@@Wb]믷;w~F$F,rOa0̎]G: R(p8QQ6cѣ:"TUsʁZXuDwD 4"-e>>3u;RS J&YjՇ(s͛˗>ieEuDZZ:yR+ uD@AjaXrr^hus~눔yb]ihX}}])XAQYt%7bݻoT)8q'FE=z#%x_?L8\u۳g,֕j?LL`x$J^=`TWwXy[={8bm=UNH$DDb2-u׷\s牧=,-0(AO= N E{6iiOwJ}w Qoٻ۷<=y 78nTԝƦ//D TaإK9ް9j֬/7JiW`{D Tu,VbaaUZxY% pB}{uV\O@G*n wx} @)H3.s@E( ܹVz} Q(- sjj>.H~]K@@4,{Z z Wߟ`=tA˫d۝;?wR*p ԲXOe푬rp`DGqquD Qq?..QQ`n|&(JN΋ \:" (_Xo޴.޸qLuD _?2`-2rܹctP$ʾIzOdʡCahhh zH}PjjAHU*ҥu ^{wr[oϞe3H$8k(WڕU=o>0눀\\.ر_Oʘ6mѣ qq=|SuD@%Ձee[ X`dDuD$ʾӚĒZX ӧ31L, b4.EYYסR[emM_AAWxXaa!JXXcJ$%=9CӦN)]~޳u>zT,2r5|~ڋYX_rٳY/fZ9:~~qV6 `{fٲo| `[[+Pss7.X|Ȫ!Cu&Pփ~!OիsDx"##[Ǎ\U(Zss{TCG(Qf̰OLܒZ{wСϖ,Fܽ[{w2ӹwro֝R@Dw@j$J%ckמ. x 7_yG܎}`o?^J52L:ʕ-peDy=pH$dlLf8y>_(=d֭v^ #ɉ|ҍaH$~9_WQz5O$w b8&njj24(ы [^D`_(%%=zeg''@ "_'<Z!&Hz~Y@(Lڹ3Sݸuv :A޷1  E ]D_0 TUIJPT*Y,ZZ:^n~x@^nii1*LP(f\O4 >/Ǐ=z[D5p#OQ&/H\^qenuud2JB6d2i׮%۶0>zvi32"4jYN~8jt;K]t[qevvYyy#a&&T>_H"gφ_הweKKKAAN] PZʶ;jh+':(c2;hjGttJK?ۊf''˽{]uTA"\\\;7Px9;;k=0BN Ω%x<5|R̆UH$h.O>243h1 &61D J@% QLp>PիW{n}PԤ$IyJJqqq1g{{{PPĉti"""B!ѸJHr5g Yt3yDIQҳqȑׯollT}w_ڜxLv^ׯ_𨭭tRII&4 &M hnnF|嗡ǏGN:5777222???888>>~…"g㖝].vZuYD/BlQej>-ccc9ɓHR__[YYސK.PeKR! x<޸q0 ۼy)S|>M``YBd#G:uJ *++{>) ͵ɓ'OO=$E.LBM21bٳ'o57222K}Dy 6|S{{X,;vfΜ+8yI?tH͛71cBhȐ!w޵}$… cǎ4hPddŋGenn75x`b̙3[PSSL DD"KK[n!?skkk&%;M``˛7o266pBDDDlll\\۷B{miPPХKz0nzSRRF`0𵵊(yFdKcfdff4h%ٽB&Lhvvv/^D B%Hz2H˾:EIѮ"H7o_\HK:7񤳦Gׯ߰aׯaӧ Ƶkjkkoݺd2BDxƍ .\pEŋݻWWWG#Bˋ;w!zjsi|`vOOW^M<988K.0,%%lhv üϟŋqƅIGRPPŒ,G+Dpp0B(<<\R Ç؃qCKޓ׶pҜ0K8B˖-p8W^ y*#Jٱˆf9;;O>=00P^mmm&&&N;F~|Ȑ!]Fɓ7LŚ.O^k4M֏*--p& Ō5.cahŲa؃V\ijj:k֬۷o] TD$h0i0eŭK6&S&Q"bbbw܉J6x\իY,V~~ɓ';w,ZH.U}f999d2yɒ%)))'O7o^ZZZVVҥKBP(/^zԩ~)##C QQQg -/oo!//˗/GFFzyyuw}pA6LCxQK XaÆ|/)((8t萼\X,NJJjjj//_D _7VSSJ/Tl`KA8ēΚQD"ww655 2ƍ>|`\~_~QzfH_~_K񩩩[!|ϔ#e@@ʕ+_|YXX8} ð$:` tk׮?~EEEqq}Er -[6gO0 oKKѣܹx7˃=YcᲲG9::D_ɥϳg677p&䵫6( #9] &G6m˥hɍgΜh\.pwY/<<|KK˧~*=Bv> 55LjZVWWgffXdJթS~ĉ?QF3g&$$(N;vlÇ?y򤗗%~q'/%`0ckiiiee\LR+AAA֭[gee5t۷s\yQq\''.řH_|LNNNlkk۹sqh4={̙f͚noO^۹sFammm6| *@ puu {wviB^ h3QF4s300pذa^^^l6/'ocƌIII!ܝK" -,,SRRv.'F;--}N-L!߿T M5JP%(D J?vhIENDB`XQilla-2.3.4/docs/simple-api/xqilla-simple_8hpp__incl.md50000644001725400016040000000004013273140074020115 0000000000000083b88ffc2a8e50aef2d5ffcb303491a4XQilla-2.3.4/docs/simple-api/VariableTypeStore_8hpp_source.html0000644001725400016040000003057613273140073021453 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableTypeStore.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _VARIABLETYPESTORE_HPP
    21 #define _VARIABLETYPESTORE_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xercesc/util/XercesDefs.hpp>
    25 #include <xercesc/util/XMemory.hpp>
    26 
    27 class SequenceType;
    29 class StaticAnalysis;
    30 class XQGlobalVariable;
    31 
    34 class XQILLA_API VariableTypeStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    35 {
    36 public:
    38  virtual ~VariableTypeStore() {};
    39 
    41  virtual void clear() = 0;
    42 
    44  virtual void addLocalScope() = 0;
    46  virtual void addLogicalBlockScope() = 0;
    49  virtual void removeScope() = 0;
    50 
    52  virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name,
    53  const StaticAnalysis &src, XQGlobalVariable *global) = 0;
    54 
    56  virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name,
    57  XQGlobalVariable **global = 0) const = 0;
    58 
    61  virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name,
    62  const StaticAnalysis &src) = 0;
    63 
    67  virtual const StaticAnalysis *getVar(const XMLCh* namespaceURI, const XMLCh* name,
    68  XQGlobalVariable **global = 0) const = 0;
    69 };
    70 
    71 #endif
    Definition: XPath2MemoryManager.hpp:45
    This is the wrapper class for the variable store, which implements the lookup and scoping of simple v...
    Definition: VariableTypeStore.hpp:34
    virtual ~VariableTypeStore()
    default destructor
    Definition: VariableTypeStore.hpp:38
    Records access to various parts of the context during static resolution.
    Definition: StaticAnalysis.hpp:35
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.map0000644001725400016040000000133413273140076024556 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_30.map0000644001725400016040000000033213273140077016455 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_39.map0000644001725400016040000000032113273140077016464 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_15.md50000644001725400016040000000004013273140074016361 00000000000000be9d65981aabde620953582b635ddf1eXQilla-2.3.4/docs/simple-api/inherit_graph_51.md50000644001725400016040000000004013273140074016361 00000000000000b96fd615e64e8e042e522059accca2a0XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__incl.map0000644001725400016040000000133413273140075020733 00000000000000 XQilla-2.3.4/docs/simple-api/classEventGenerator-members.html0000644001725400016040000001257413273140074021135 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventGenerator Member List

    This is the complete list of members for EventGenerator, including all inherited members.

    _ref_countReferenceCountedprotected
    createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)EventGeneratorstatic
    decrementRefCount() const ReferenceCountedinlinevirtual
    generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)EventGeneratorinlinestatic
    generateEvents(EventHandler *events, DynamicContext *context)=0EventGeneratorpure virtual
    getRefCount() const ReferenceCountedinline
    incrementRefCount() const ReferenceCountedinline
    Ptr typedefEventGenerator
    ReferenceCounted()ReferenceCountedinline
    ~EventGenerator()EventGeneratorinlinevirtual
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/Timezone_8hpp.html0000644001725400016040000001336313273140077016260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Timezone.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/framework/ReferenceCounted.hpp>
    #include <xqilla/items/ATDurationOrDerived.hpp>
    #include <xqilla/mapm/m_apm.h>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for Timezone.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Timezone
     
    XQilla-2.3.4/docs/simple-api/classScope.html0000644001725400016040000006115513273140077015630 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Scope< TYPE > Class Template Reference

    used inside VariableStore to implement variable scoping More...

    #include <Scope.hpp>

    Inheritance diagram for Scope< TYPE >:

    Public Types

    enum  Type { GLOBAL_SCOPE, LOCAL_SCOPE, LOGICAL_BLOCK_SCOPE }
     enum for classifying type of scope More...
     
    typedef
    xercesc::RefHash2KeysTableOf
    < VarHashEntry< TYPE > > 
    VarHash
     

    Public Member Functions

     Scope (XPath2MemoryManager *memMgr, Type type)
     constructor. More...
     
     ~Scope ()
     
    void clear ()
     
    Type getType () const
     
    VarHashEntry< TYPE > * get (unsigned int nsID, const XMLCh *name)
     
    void put (unsigned int nsID, const XMLCh *name, VarHashEntry< TYPE > *value)
     
    void remove (unsigned int nsID, const XMLCh *name)
     
    std::vector< std::pair
    < unsigned int, const XMLCh * > > 
    getVars () const
     
    ScopegetNext ()
     
    void setNext (Scope *next)
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    template<class TYPE>
    class Scope< TYPE >

    used inside VariableStore to implement variable scoping

    Member Typedef Documentation

    template<class TYPE>
    typedef xercesc:: RefHash2KeysTableOf< VarHashEntry<TYPE> > Scope< TYPE >::VarHash

    Member Enumeration Documentation

    template<class TYPE>
    enum Scope::Type

    enum for classifying type of scope

    Enumerator
    GLOBAL_SCOPE 
    LOCAL_SCOPE 
    LOGICAL_BLOCK_SCOPE 

    Constructor & Destructor Documentation

    template<class TYPE >
    Scope< TYPE >::Scope ( XPath2MemoryManager memMgr,
    Type  type 
    )

    constructor.

    template<class TYPE >
    Scope< TYPE >::~Scope ( )

    Member Function Documentation

    template<class TYPE >
    void Scope< TYPE >::clear ( )
    template<class TYPE >
    VarHashEntry< TYPE > * Scope< TYPE >::get ( unsigned int  nsID,
    const XMLCh *  name 
    )
    template<class TYPE >
    Scope< TYPE > * Scope< TYPE >::getNext ( )
    template<class TYPE >
    Scope< TYPE >::Type Scope< TYPE >::getType ( ) const
    template<class TYPE >
    std::vector< std::pair< unsigned int, const XMLCh * > > Scope< TYPE >::getVars ( ) const
    template<class TYPE >
    void Scope< TYPE >::put ( unsigned int  nsID,
    const XMLCh *  name,
    VarHashEntry< TYPE > *  value 
    )
    template<class TYPE >
    void Scope< TYPE >::remove ( unsigned int  nsID,
    const XMLCh *  name 
    )
    template<class TYPE >
    void Scope< TYPE >::setNext ( Scope< TYPE > *  next)

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_8.md50000644001725400016040000000004013273140074016303 0000000000000005b9aa1ff24da6c6efa9038b4bc2330dXQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.png0000644001725400016040000001324013273140074021305 00000000000000PNG  IHDR~kBbKGDUIDATx{PWO( D E֭PGQF]B NU\u:[ug*P"ڈ .V .M%Bu!rHP1!r}bŐ<3q9yKN0 !:1 ! )HxHhoo߿F!*A&=:c 5~%KX9-XsƍիW*<ΡC*ܸqxHAC Rbbq7LΞ={ԩ۷oذTVV9r3''f Œ&*n֭>>>ҥKunnnKJJrttEVOD!!!ׯ'noӧO7mTUU5DXti^^ǨÎQ aXee% D"ю;2`ԩϟ?zqիWSRR233p &j;;; rssGիWN|h޽qƕ+W_VWWŭ^ĉ*ʤqohp@hh萳Jmr\Nb^|}}򒒒rrrz{{ªj&fe2X,fl'O kEŋE"Qvv_N:ezxx͛7mmm,X`zAAMHH8w\\\\VVɣٻw/ÑJҥKG/kkkucI=zyhh( 44͌T*0lҤIz F;ydJJ ϝ;B|@EEEddXbDjx9!!!((H`ܹ`̜9311d?R/QQQ*ҸzII{ 6S[n>ܘb?r31]eeFTUUy{{LфB!WoժUU x@PBcr؄ܺuk̙۽{7Y ̟?_?@ 5k^E@wwwttwydu[[>͛3f̸sNNN`jP4sL9 .bkŋf#bkڪO>dŊԩSUUU[nۑHO?Tg43A`VRR Ç>h"J[-Y/1cƻ#""Ξ=Ο?B1}-⟬d'N`ٳf҉a\>{k{{`'( 23|>_",[l L>ڵk٭̙3籷W,444D"|Rj5BQ*\+@@@F9sLdd.Ȗ-[$ɮ]B۷t4dgϞݻҥKׂ d2ӧ-V磌bq]]]nn.yʕ~'<##ӧ=p8˖-3c#񕕕{UUU&M8>>>|MVVVII N_`7|c`0{|OJJ/&OaÆ{؄OR?uTVVVWW _v-J5Ni۶mؾ};D MLL1y\ %,,aaa:qu*R/_}'cǎ5IDDݻ7n܈F3 ֭[&{Rքtww?88x߾}sllT*p8T ߿ߧJJ4->>^(?cΜ9|>ޞ={sظqcxxǏ|ܹs>;|ᇕ]\\T*ayyysjGb TZPP'Glnnaٺ:.;-xO$@ܙaT* x Ç2Lܼyw={vaa!_~9(J2؈,,,dٸ0LVO6-_<==ݸq0)W---dVgΩkv&2qpp SLPT6my2,((ttte*Ϟ=h4>>>K6- 񲟟L&Y0 xqwwؼ6Ӆ5is;w lڴɌzXjR/^looۥR֭[\\\+9~333ccc ={bcc%qb8..Ņd~r`!a`ItnR&Njk[*˭#*KƧ/0ܳx./]Qdc;J.*Y?Hx TT*M~~V 5D߻+J(T*ŋ>Dyyѓ#tݺ `7Ɔo!vxDR𐂄$< ! )HxHAC R𐂄$< ! )HxHAC R𐂄$< ! )HxHAC R𐂄$< ! )HxHĸ}vwwY9D'2MbPT*UV[$b0(JH( jڂDr-ص)HxHAC RƣD",a@+T'H`mY(_-`< Os _RR!Hϟ5kVV2eʢEZZZdggd2My倀I&͜9ܹsD";w!--MY\\<{lP(TT777jr;ڵkl6ѣ1R !7p6o޼e˖n77Z ò FaaaWWו+WX,O̸ Ji4Z||P(<\ Lfkk%N+VJC40?{\.גzY,0H$,+ @ws9}̙3W(>d͛~bJ;vL"hھ>Fc <0LT[ZZpO>;s\6_O$@p 4͐1 Ϟe蘐Ԕ[Z[[u#h樨>}Zg'''vmc2e Ju???L&okٲemmmI 5LCcUȈؽ{7nhhh9455 cbbRSSy<^ffήrV۶m[rX,ixw477*1F"W7@1LCcjϟ|2 >>>55ի3DP(J&:w HRTTRT;?,zΝ6mk͚5QQQ~-)5LCc 0ĉy)J ÊLX,V*E~`v0ӧǑe0 q\W\\lP- ˸'r\T*ݺuKBBB40?xq7$"1G^!Hט:ujbbbEC#RCP0 )HxHAC R*&A~BUYY9~B56mBPaAs< ! )HxH?"d~g?wIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_23.map0000644001725400016040000000033413273140077016461 00000000000000 XQilla-2.3.4/docs/simple-api/Result_8hpp__dep__incl.png0000644001725400016040000000547413273140075017721 00000000000000PNG  IHDRpYbKGD IDATx[LW-- RłF@K4^ƒF(*E "BmB[l-TU\z9cfR*31:ta@c &;Hd 2f嶶DJej,22sL3%˗/7&ES^^MNRRI,r#312Hd 1 SVXATב#G8BaXXo=77won"0^TTTTTt-6}Y^Z~  3 `}uvv~ՄjX,6aBa VVV666R T*5kքB!q(lDGG6nܨs555֭#V  ~B>3 dRT*ݺuk UXXՕuշod 6燇d2322<OW^egg'$$p\bG)..NIIp«W޽'8c޽hO:͛Ǐ Ŋܺu+aRJ,_ژh%Kl6^]j;X0{\.}vjj7Y? "6mZZZZaaaNNٳCBB4wwttH$ = LJKK1 {>-- 344/jurrR|ɓ'U*LFs֬Yh  lcc#HR)>tb_QQ1<|rWP̽h4X,h={He˖EEEQĬ/_%%%QT*{/^htqq7o^PPУGW\Y`EK'V:vL&[rehh(~ Nd7|d ѽ{<IHVXQPPeAׂ 3ج[n,A30G%h&_ $2HdȘD[3&5TTTXYA8&h!`eeUQQaLu& J=|dK=ZjJH$$ص R(d v-creiiBR(Tu29;XOKr-*p1K㽝2d,RCJ'9kb?~T5#*,R@QQ@)H,O@_PU@aP*AO q :sWc4'Oj7H,L@GG]]ZCauu`^4t +?00ݧ@DDdqqqF BRBwvvfX Bs#)++p8)))DI%%%,+&&F. w:jP(J شiH$]|yΜ9|>ݻw~~~qqqZhCCCW\Ν3VUB0::zΝD͗.] #_p'42]V,z{{׬YX]]puwa}n-Ot"u.@u̚_ @ onJOr8N9H$gΜٵk˗/Ymmm\#M23QQ0y&ZP~nnnmmmxesvv&---dss3VlZh L&Q0 D?<74Zp\FNܹsG,_vMϒN?x`{{;1khhHsI Z__鱿nppHqv>@GӇnjjzɓ'LJo,cפɹstgII L&sss߶mH$0LP,Yq<wtttuuJ:sJRٵbxΝ{t$\.wƌL&СCRTgPa&'!:Gl=øF @ׂ ;; 9,+33s,A@ @ !{Q]]v_PllaWc]7~xo @ P ?IENDB`XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__dep__incl.map0000644001725400016040000000141713273140075021127 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_0.md50000644001725400016040000000004013273140074016273 000000000000003022f0548ae5372a4126eeaaefeee47cXQilla-2.3.4/docs/simple-api/classAutoContextItemTypeReset-members.html0000644001725400016040000000713513273140074023143 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoContextItemTypeReset Member List

    This is the complete list of members for AutoContextItemTypeReset, including all inherited members.

    AutoContextItemTypeReset(StaticContext *context)AutoContextItemTypeResetinline
    AutoContextItemTypeReset(StaticContext *context, const StaticType &sType)AutoContextItemTypeResetinline
    context_AutoContextItemTypeResetprotected
    sType_AutoContextItemTypeResetprotected
    ~AutoContextItemTypeReset()AutoContextItemTypeResetinline
    XQilla-2.3.4/docs/simple-api/classStaticContext__inherit__graph.png0000644001725400016040000001303313273140076022363 00000000000000PNG  IHDRBbKGDIDATx{TSG'$ YiYlY] X趶k[*Xm"(DE0`@yio!@|3w2{w>ܛK c5 ~Ox@<C/KssXBЇN'''{yyO|ISS$EéSM˱4M\x '<4O #''),,mHW_ho\ 1p8rBrߏ^0ZL&sppH$I \Xxٳbڵ {n77xՠ VTTp1r /\.W&AO<!TT|>uĉ|>_RI$ٳg===KKK<==Y,VDDI7!,**>}ɓO8!TF!!W\a0'1m4Nj/_~OFSBQ>>>,+99ĉ^^^&Lسgډ\.d2;wT*?k֬(Բ޾fiކ "##[[[l˗QC֬Ys}H4{ݻwD_}'%%D"X_TWWmjjT*`0]]]~eݻԌG͛79:::?~Lyx PBx10<<<00Ν;"OJJ?3g0LZ !~~~O=r$G*rII̙3Q"Bs Bשr(LfmmGrN٩j NL_uH$۷o_ !/Uo4%**ʠ,HT*Nv ӦM?}FpΝ;!\lߧmmmT\E󆝝3@ŋ!!!ƍ[`3gNNNeeevvv'(H.\+WA=OFSzw}艨RD"N!۶m۾}Glll~)]]]_yU*{\~ Ɣ)SQFuwwC{{{tz{{{r1arr2Fg5 .//7nizoJp0Oh<ףS\/KKK\nJJʒ%KNbDZmPPо}d2)**B;v ill7o[ohbbX,Ϗ/JT>zرcvvvJp'N| jZJxm6__ŋMɨrXXX```CCX,KHH0h\]]lvffo42O}ٌ3pwssC~ bƍ...L&sӦMO>Os\'''GݰfggO:ǧpp{YYY?sUUUnn~^pbFSԓL&`2nnn~mٲ^P jȨ |l. D09===ijj.L^+*9rѣG xbJJ͛:;; +J>\SS?qΜ9)))r<%%o<́y=͝;7;;ȑ#ӧOΝ;g&##cǎL&uӧO_WTTԔ)S&Ok.???h4ϟqss2eƍKJJK+Wttt|W}ovuu2e͛111555|>?88g2 xSQQh"_____߈ʀhnn裏J;lkkVԙ4iҤIǏwqqw҆y?#G( NrQGPb=Vkk\:n8˿Ç3Fp hFh˓&%%_رc;d2|m4ϟZh4[[[+++Toܸq3f̈p8ӧq֭߰a o@f7oތꝝ;Vcbb*++??շ~bmٲ%... <>>...B gΜioopgddX'NxyyM0aϞ=P/juBB'Ŋ(TTTy=T呑L&}ΝJhnL&fQJ'N*d2t]]]Q#gxvvv1LZ !~~~:t@{{BjnnF >|Sx!}F  sH$z瓒f02:f͚Dٳg޽BaÆV6}exݣֲ]jŅf_~]euuu@@@www[[VEyMl47K/t]Mn:mѣ\vm~~ӧ_|EjoZT cg.؈?|+V8|0:@Vl6N˾s玻 `X!+++MMMyPPΝ;ob/\с^h4l6;33S?:UT4o}i||¼i…M akOx@ XQilla Simple API Documentation SourceForge.net Logo
    Collation Member List

    This is the complete list of members for Collation, including all inherited members.

    Collation()Collationinlineprotected
    compare(const XMLCh *const string1, const XMLCh *const string2) const =0Collationpure virtual
    getCollationName() const =0Collationpure virtual
    sort(Sequence data, const DynamicContext *context) const =0Collationpure virtual
    ~Collation()Collationinlinevirtual
    XQilla-2.3.4/docs/simple-api/classNode__inherit__graph.png0000644001725400016040000000702413273140076020457 00000000000000PNG  IHDRBbKGD IDATxPǟ4-)mLp&L )hNEa }G,uI#?EĔ!NPSJxw(c^q {yj.WVV.\j$:( {VWWS522jkk{gJJJnŵZ-BHȈ@ t]-)) ÓUqG7w~:Ommmtyhh? ´(FbȈF\ T*GdzW}}=\._xPWWBhxxnW(...W^ez1Mlp x511ԃbQ544X-bP(CiRJ_|GEE޽b >l0\]]Agg'KF#B]. c,n OE]~!400@W?hJ{YMFrFF?T*JeXXXrr߼y=!!%33!T^^N/nݺ˗wvv* |g}}}۷oY1'tA{[߻wD")--UէN w'ޣ(d2͘1ڵktu`` ))i֬Y)))CCCV&{nzzT*ˏ)RTRT$-Y̲EV[o3g?~| Oaٲennnn4e2Yppӗ.]Jcўq*(((+fjk00{0`={  l<fzꩧjb魭% >9t3W;1&KZZ<}ao4Y؄oקc. << ۷]:SuB$tXq؄WH !d4~I1<d@Dqq#y؅?>3,;wFx:;a|_JOTB {'`O0`={  '`O0`={  '`O0`={  '`O0`={ ƞ@`*ceD..sCdmm-{>WZZҥKrXZu8'Phh(sy|}  y"̓qijfvzwnAyyyܱcǏ?8{lX}v.O o B(??>tMwA  DzH,Omm7oZ 'N؞?~{{L&{;v|w\tC|7o޴4ƪ'000))lӦM!!!))q8uTjjD" ܸq\ /!O4k֬dtN3RlY*00.]>} >)y"O?}wYf999꧟~!! ;::>*.={"z=Jh|||}݂JdDD7|V]bŊkZ\nZ7<<СC7nOJKKcxYzu]]]cc#]MMM޴iP(LHH I`0߿_m߾}ggg'''/oܸq<*elll__?|/< `={  'p?B p.>̽'̣O0`={}ܱR~kfIENDB`XQilla-2.3.4/docs/simple-api/classContentSequenceFilter__inherit__graph.png0000644001725400016040000001053313273140076024042 00000000000000PNG  IHDRfbKGDIDATxkPO^CA(8`GXSAE[:ի3QZQ KiGxk^CJk(EbG{?N"PNgsK!`0zF -o0it6fu=c…O]|l6^)'zzz222tB7`͚5,KYX,VXXNS-oF MQ.kn.0. :??ג:WWٍѱz/_nwCmgggoo?1R|1\4  Ƃ t:D r%///kkt/@ˏիW}||`rLDr%K̟?ڵwU\+++kkkggBLo&C˗R)A%%%" 'N={>:r , <O~x<Aæϟ?/,,*c>}Nx񢼼%R u֪*Pa?0L]1*?###捍A'&&===|>\A }+}?~X(J$[nڕc.Y.\P\|m߆2x}tϞ=BGB̞oooٻ˗/WH6OOOuUtŊAnd4 e0͹o)\xqkkGBMçPv@-[900011m˖-999" )OLL&%%LBB())~ѣGVVm$ߐ8 3ݻwh4Dv`eHn: FӧO[[[/Z(777""N)O8:Ϗڶ{U/P1-oF -oF -oF -oF -oF -oF -oF -oF ]]\*u> %ϟ?=x )I>##ԤݧfѢE!!!de'{-oF MQ~\Cd]]Xz˗/5d166>|^"~vcJ)i.b:dji4Zyy9@$1 t! ҥK^^^___揑0K9RYY\[[;=d\.^q㆙͛MMMUUUGA><44ק.X,VD\Npႏ?!!!!!!SssF |>.WTTx{{ ALLLx<Ǔpeeeu+M]L&=o7swwWh433۾};YtiYYYKK lrppfii &&&gioo\\;ꈈp8+V<~qFFriT{``o2_ $%%EGGV LLLnkk۲eKNNT`zM+A,oH\\P( ޽Fō .DuYXX7*Vz)R5@M,BCC,K Fʞ73`h}7Z`h}iIA"PQpOOYM_Ŕ{=<^ڎRE֬YCJjbaWaaٵ&[FȮE {pPx._Jn19ߥ-PR)#}o6 ""^AkkT*/TJqq %|ݧR)p<H$R6!-l=xi.T`bB-+{@VI!\n UQ$\HJ="DWFm=z{*217@wY(I$R.߆{bӦ&&olIIʕNNV%N ߏGmMv!F -oF -oF -oF -oF -oF -oF -oF -&allڵkڼ444ȮBZj %.nW<9&6,0Z-oFoopp0//Kddg2m=|MMАƍ###MMM_6)7ܹ.贆O޽ߧZJ |>?!!dZzeeewvvvϞ=z;}Sdgg;88ȷPԈ-s0 ehhdN˷T*nj^++}o+++kkkƸIAٞђ555AAA-QQQB0--m!!!yyy??~-**j۶m/_|@K,رcǎJ̊e{gL&S]@ \ݻϯW6/kYD"9w\XXX@@@jjP(]%I!Sإ9,,Ç07BphhYq޼yt:.gff 8q޽{ lɉ?s̛7orssEEE]Ϝ9sԩsiӋ`4773 &/+I9`yy?{ů*55UfjYéIMM),,}lllT3,ȑ#plӞiץP(*UUU|󍃃ݻ+**[7o(Wt[|||cc6V\d2333-[vƍ/R]@.~z?866VfjYOyyyttÇ?Cccc?C>J|||Ν;ey=ϟ?Fuww˶ ɓ~!33sxxX*:::v''lkk 06VO~077X]]g}_?>??ƍ*bwwwYB@[EkYO… ᲋NNNI{{{U)+Qbd&kk׮e2ɲB,ϙ3F|/^; p_)c^A;vZP(V*++So?>BWW,D"R/_n=666}}};wj>ԅRwhf&k111ǏQGGDž hll痕;;;M6i5:ׯ__PPqС){͛7?99?z(//*nݺ5//Ν;CCCgϞXXXn޼[ٔ}=?cggggggffbZ3{fJf:{l^^^RR訳sJJ/|w &&&6lT~ٲeAAA׮]dggٳB|:tŋ z{{i4߮]TD"y ;fii[XXw۷o뮲ȱ1166+[M33t|E.vvv,KւvrrzsMoF -&]_dU %<<\kH~Obh}7ZyɸIENDB`XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp.html0000644001725400016040000001240313273140077017407 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATTimeOrDerived.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/ATDecimalOrDerived.hpp>
    #include <xqilla/items/ATDurationOrDerived.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATTimeOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATTimeOrDerived
     
    XQilla-2.3.4/docs/simple-api/classStaticContext.html0000644001725400016040000037667513273140077017373 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticContext Class Referenceabstract

    The parse time static context interface. More...

    #include <StaticContext.hpp>

    Inheritance diagram for StaticContext:

    Public Types

    enum  NodeSetOrdering { ORDERING_ORDERED, ORDERING_UNORDERED }
     
    enum  ConstructionMode { CONSTRUCTION_MODE_PRESERVE, CONSTRUCTION_MODE_STRIP }
     
    enum  FLWOROrderingMode { FLWOR_ORDER_EMPTY_GREATEST, FLWOR_ORDER_EMPTY_LEAST }
     
    enum  FTCaseOption {
      NONE, CASE_INSENSITIVE, CASE_SENSITIVE, UPPERCASE,
      LOWERCASE
    }
     

    Public Member Functions

    virtual ~StaticContext ()
     
    virtual DynamicContextcreateModuleContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual DynamicContextcreateDynamicContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual DynamicContextcreateDebugQueryContext (const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual XQillaConfigurationgetConfiguration () const =0
     Returns the configuration object for this context. More...
     
    virtual XQilla::Language getLanguage () const =0
     Returns the lanuage that this context is for. More...
     
    virtual ItemFactorygetItemFactory () const =0
     Returns the ItemFactory for this context, which is used to create XQilla items and other objects. More...
     
    virtual void setItemFactory (ItemFactory *factory)=0
     Sets the ItemFactory for this context. More...
     
    virtual const StaticTypegetContextItemType () const =0
     Get the static type of the context item. More...
     
    virtual void setContextItemType (const StaticType &st)=0
     Set the static type of the context item. More...
     
    virtual bool getXPath1CompatibilityMode () const =0
     Get the current XPath 1.0 compatibility mode. More...
     
    virtual void setXPath1CompatibilityMode (bool newMode)=0
     Set the current XPath 1.0 compatibility mode. More...
     
    virtual const
    xercesc::DOMXPathNSResolver
    getNSResolver () const =0
     Get the NS resolver. More...
     
    virtual const XMLCh * getUriBoundToPrefix (const XMLCh *prefix, const LocationInfo *location=0) const =0
     returns the URI that is bound in prefix in the current scope or zero length string otherwise More...
     
    virtual const XMLCh * getPrefixBoundToUri (const XMLCh *uri) const =0
     returns the prefix that is bound in uri in the current scope or zero length string otherwise More...
     
    virtual void setNSResolver (const xercesc::DOMXPathNSResolver *resolver)=0
     Set the NS resolver. More...
     
    virtual void setNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
     Binds a prefix to a namespace URI. More...
     
    virtual const XMLCh * getDefaultElementAndTypeNS () const =0
     get the value of the default namespace for elements and types More...
     
    virtual void setDefaultElementAndTypeNS (const XMLCh *newNS)=0
     set the value of the default namespace for elements and types More...
     
    virtual const XMLCh * getDefaultFuncNS () const =0
     Return the default namespace for functions. More...
     
    virtual void setDefaultFuncNS (const XMLCh *newNS)=0
     Set the default namespace for functions. More...
     
    virtual DocumentCachegetDocumentCache () const =0
     retrieve the repository for the grammars More...
     
    virtual void setDocumentCache (DocumentCache *docCache)=0
     sets the repository for the grammars More...
     
    virtual bool isTypeOrDerivedFromType (const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0
     returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck More...
     
    virtual void setXMLEntityResolver (xercesc::XMLEntityResolver *const handler)=0
     Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents. More...
     
    virtual
    xercesc::XMLEntityResolver
    getXMLEntityResolver () const =0
     Returns the entity resolver currently set. More...
     
    virtual void setModuleResolver (ModuleResolver *resolver)=0
     Register a callback object for resolving module URIs. More...
     
    virtual ModuleResolvergetModuleResolver () const =0
     Returns the module resolver currently set. More...
     
    virtual VectorOfStringsresolveModuleURI (const XMLCh *uri) const =0
     
    virtual void addSchemaLocation (const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0
     add the location for the grammar of a specific namespace More...
     
    virtual VariableTypeStoregetVariableTypeStore ()=0
     get the variable type store More...
     
    virtual void addTemplate (XQUserFunction *tp)=0
     adds a template definition to the template tables More...
     
    virtual const XQUserFunction * lookUpNamedTemplate (const XMLCh *uri, const XMLCh *name) const =0
     look up a template definition by name More...
     
    virtual const UserFunctionsgetTemplateRules () const =0
     Return a vector of all the templates with patterns. More...
     
    virtual void addCustomFunction (FuncFactory *func)=0
     adds a custom function to the function table More...
     
    virtual void removeCustomFunction (FuncFactory *func)=0
     removes a custom function to the function table More...
     
    virtual ASTNode * lookUpFunction (const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0
     returns a function object with the given uri, localname and number of arguments triple More...
     
    virtual void setExternalFunctionResolver (ExternalFunctionResolver *resolver)=0
     Register a callback object for resolving external function implementations. More...
     
    virtual ExternalFunctionResolvergetExternalFunctionResolver () const =0
     Returns the external function resolver currently set. More...
     
    virtual void addExternalFunction (const ExternalFunction *func)=0
     adds an external function implementation to the function table More...
     
    virtual const ExternalFunctionlookUpExternalFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0
     returns an external function implementation for the given uri and localname More...
     
    virtual CollationgetCollation (const XMLCh *const URI, const LocationInfo *location=0) const =0
     Get the implementation for the specified collation. More...
     
    virtual void addCollation (Collation *collation)=0
     Add a collation. More...
     
    virtual CollationgetDefaultCollation (const LocationInfo *location=0) const =0
     Get the default collation. More...
     
    virtual void setDefaultCollation (const XMLCh *const URI)=0
     Specify which collation is the default one. More...
     
    virtual const XMLCh * getBaseURI () const =0
     Return the base URI. More...
     
    virtual void setBaseURI (const XMLCh *newURI)=0
     Set the base URI. More...
     
    virtual NodeSetOrdering getNodeSetOrdering () const =0
     Return the ordering method for node sets. More...
     
    virtual void setNodeSetOrdering (NodeSetOrdering newOrder)=0
     Set the ordering method for node sets. More...
     
    virtual ConstructionMode getConstructionMode () const =0
     Return the construction mode. More...
     
    virtual void setConstructionMode (ConstructionMode newMode)=0
     Set the construction mode. More...
     
    virtual void setPreserveBoundarySpace (bool value)=0
     Set the policy for boundary space. More...
     
    virtual bool getPreserveBoundarySpace () const =0
     Get the policy for boundary space. More...
     
    virtual FLWOROrderingMode getDefaultFLWOROrderingMode () const =0
     Return the default ordering mode for FLWOR blocks. More...
     
    virtual void setDefaultFLWOROrderingMode (FLWOROrderingMode newMode)=0
     Set the default ordering mode for FLWOR blocks. More...
     
    virtual void setInheritNamespaces (bool value)=0
     Set the policy for namespace inheritance. More...
     
    virtual bool getInheritNamespaces () const =0
     Get the policy for namespace inheritance. More...
     
    virtual void setPreserveNamespaces (bool value)=0
     Set the policy for namespace copy. More...
     
    virtual bool getPreserveNamespaces () const =0
     Get the policy for namespace copy. More...
     
    virtual void setRevalidationMode (DocumentCache::ValidationMode mode)=0
     Set the revalidation mode. More...
     
    virtual
    DocumentCache::ValidationMode 
    getRevalidationMode () const =0
     Get the revalidation mode. More...
     
    virtual void setMessageListener (MessageListener *listener)=0
     Set the listener for warning and trace messages. More...
     
    virtual MessageListenergetMessageListener () const =0
     Gets the listener for warning and trace messages. More...
     
    virtual void setModule (XQQuery *module)=0
     Set the module. More...
     
    virtual XQQuerygetModule () const =0
     Get the module. More...
     
    virtual bool getProjection () const =0
     Gets whether document projection is enabled. More...
     
    virtual void setProjection (bool enabled)=0
     Sets whether document projection is enabled. More...
     
    virtual bool getDoLintWarnings () const =0
     
    virtual void setDoLintWarnings (bool enabled)=0
     
    virtual const XMLCh * allocateTempVarName (const XMLCh *prefix=0)=0
     Return a unique name that can be used for a temporary variable. More...
     
    virtual XPath2MemoryManagergetMemoryManager () const =0
     Get the memory manager. More...
     
    virtual void setMemoryManager (XPath2MemoryManager *memMgr)=0
     Set the memory manager to the one given. More...
     
    virtual void setFTCase (FTCaseOption option)=0
     Set default full text query case option. More...
     
    virtual FTCaseOption getFTCase ()=0
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    The parse time static context interface.

    Member Enumeration Documentation

    Enumerator
    CONSTRUCTION_MODE_PRESERVE 
    CONSTRUCTION_MODE_STRIP 
    Enumerator
    FLWOR_ORDER_EMPTY_GREATEST 
    FLWOR_ORDER_EMPTY_LEAST 
    Enumerator
    NONE 
    CASE_INSENSITIVE 
    CASE_SENSITIVE 
    UPPERCASE 
    LOWERCASE 
    Enumerator
    ORDERING_ORDERED 
    ORDERING_UNORDERED 

    Constructor & Destructor Documentation

    virtual StaticContext::~StaticContext ( )
    inlinevirtual

    Member Function Documentation

    virtual void StaticContext::addCollation ( Collation collation)
    pure virtual

    Add a collation.

    virtual void StaticContext::addCustomFunction ( FuncFactory *  func)
    pure virtual

    adds a custom function to the function table

    virtual void StaticContext::addExternalFunction ( const ExternalFunction func)
    pure virtual

    adds an external function implementation to the function table

    virtual void StaticContext::addSchemaLocation ( const XMLCh *  uri,
    VectorOfStrings locations,
    const LocationInfo location = 0 
    )
    pure virtual

    add the location for the grammar of a specific namespace

    virtual void StaticContext::addTemplate ( XQUserFunction *  tp)
    pure virtual

    adds a template definition to the template tables

    virtual const XMLCh* StaticContext::allocateTempVarName ( const XMLCh *  prefix = 0)
    pure virtual

    Return a unique name that can be used for a temporary variable.

    virtual DynamicContext* StaticContext::createDebugQueryContext ( const Item::Ptr contextItem,
    size_t  contextPosition,
    size_t  contextSize,
    const VariableStore variables,
    const xercesc::DOMXPathNSResolver nsResolver,
    const XMLCh *  defaultElementNS,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    ) const
    pure virtual
    virtual DynamicContext* StaticContext::createDynamicContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const
    pure virtual
    virtual DynamicContext* StaticContext::createModuleContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const
    pure virtual
    virtual const XMLCh* StaticContext::getBaseURI ( ) const
    pure virtual

    Return the base URI.

    virtual Collation* StaticContext::getCollation ( const XMLCh *const  URI,
    const LocationInfo location = 0 
    ) const
    pure virtual

    Get the implementation for the specified collation.

    virtual XQillaConfiguration* StaticContext::getConfiguration ( ) const
    pure virtual

    Returns the configuration object for this context.

    virtual ConstructionMode StaticContext::getConstructionMode ( ) const
    pure virtual

    Return the construction mode.

    virtual const StaticType& StaticContext::getContextItemType ( ) const
    pure virtual

    Get the static type of the context item.

    Referenced by AutoContextItemTypeReset::AutoContextItemTypeReset().

    virtual Collation* StaticContext::getDefaultCollation ( const LocationInfo location = 0) const
    pure virtual

    Get the default collation.

    virtual const XMLCh* StaticContext::getDefaultElementAndTypeNS ( ) const
    pure virtual

    get the value of the default namespace for elements and types

    Referenced by AutoNsScopeReset::AutoNsScopeReset().

    virtual FLWOROrderingMode StaticContext::getDefaultFLWOROrderingMode ( ) const
    pure virtual

    Return the default ordering mode for FLWOR blocks.

    virtual const XMLCh* StaticContext::getDefaultFuncNS ( ) const
    pure virtual

    Return the default namespace for functions.

    virtual DocumentCache* StaticContext::getDocumentCache ( ) const
    pure virtual

    retrieve the repository for the grammars

    virtual bool StaticContext::getDoLintWarnings ( ) const
    pure virtual
    virtual ExternalFunctionResolver* StaticContext::getExternalFunctionResolver ( ) const
    pure virtual

    Returns the external function resolver currently set.

    virtual FTCaseOption StaticContext::getFTCase ( )
    pure virtual
    virtual bool StaticContext::getInheritNamespaces ( ) const
    pure virtual

    Get the policy for namespace inheritance.

    virtual ItemFactory* StaticContext::getItemFactory ( ) const
    pure virtual

    Returns the ItemFactory for this context, which is used to create XQilla items and other objects.

    virtual XQilla::Language StaticContext::getLanguage ( ) const
    pure virtual

    Returns the lanuage that this context is for.

    This value cannot be set, since it is used to correctly construct the StaticContext

    virtual XPath2MemoryManager* StaticContext::getMemoryManager ( ) const
    pure virtual

    Get the memory manager.

    virtual MessageListener* StaticContext::getMessageListener ( ) const
    pure virtual

    Gets the listener for warning and trace messages.

    Referenced by AutoMessageListenerReset::AutoMessageListenerReset().

    virtual XQQuery* StaticContext::getModule ( ) const
    pure virtual

    Get the module.

    virtual ModuleResolver* StaticContext::getModuleResolver ( ) const
    pure virtual

    Returns the module resolver currently set.

    virtual NodeSetOrdering StaticContext::getNodeSetOrdering ( ) const
    pure virtual

    Return the ordering method for node sets.

    Referenced by AutoNodeSetOrderingReset::AutoNodeSetOrderingReset().

    virtual const xercesc:: DOMXPathNSResolver* StaticContext::getNSResolver ( ) const
    pure virtual

    Get the NS resolver.

    Referenced by AutoNsScopeReset::AutoNsScopeReset().

    virtual const XMLCh* StaticContext::getPrefixBoundToUri ( const XMLCh *  uri) const
    pure virtual

    returns the prefix that is bound in uri in the current scope or zero length string otherwise

    virtual bool StaticContext::getPreserveBoundarySpace ( ) const
    pure virtual

    Get the policy for boundary space.

    virtual bool StaticContext::getPreserveNamespaces ( ) const
    pure virtual

    Get the policy for namespace copy.

    virtual bool StaticContext::getProjection ( ) const
    pure virtual

    Gets whether document projection is enabled.

    Document projection is an optimisation that uses query analysis to remove sub-trees from documents that aren't needed by the query. This results in substantially smaller memory usage and faster query times, but means that any subsequent querying on the results of an initial query can be wrong.

    If you are hoping to perform further queries on the results of a query, you should turn document projection off to avoid incorrect results.

    virtual DocumentCache::ValidationMode StaticContext::getRevalidationMode ( ) const
    pure virtual

    Get the revalidation mode.

    virtual const UserFunctions& StaticContext::getTemplateRules ( ) const
    pure virtual

    Return a vector of all the templates with patterns.

    virtual const XMLCh* StaticContext::getUriBoundToPrefix ( const XMLCh *  prefix,
    const LocationInfo location = 0 
    ) const
    pure virtual

    returns the URI that is bound in prefix in the current scope or zero length string otherwise

    virtual VariableTypeStore* StaticContext::getVariableTypeStore ( )
    pure virtual

    get the variable type store

    virtual xercesc:: XMLEntityResolver* StaticContext::getXMLEntityResolver ( ) const
    pure virtual

    Returns the entity resolver currently set.

    virtual bool StaticContext::getXPath1CompatibilityMode ( ) const
    pure virtual

    Get the current XPath 1.0 compatibility mode.

    virtual bool StaticContext::isTypeOrDerivedFromType ( const XMLCh *const  uri,
    const XMLCh *const  typeName,
    const XMLCh *const  uriToCheck,
    const XMLCh *const  typeNameToCheck 
    ) const
    pure virtual

    returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck

    ie: to check xs:integer instance of xs:decimal, call isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") (except of course, call with URIs, not prefixes!)

    virtual const ExternalFunction* StaticContext::lookUpExternalFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    size_t  numArgs 
    ) const
    pure virtual

    returns an external function implementation for the given uri and localname

    virtual ASTNode* StaticContext::lookUpFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    const VectorOfASTNodes v,
    const LocationInfo location = 0 
    ) const
    pure virtual

    returns a function object with the given uri, localname and number of arguments triple

    virtual const XQUserFunction* StaticContext::lookUpNamedTemplate ( const XMLCh *  uri,
    const XMLCh *  name 
    ) const
    pure virtual

    look up a template definition by name

    virtual void StaticContext::removeCustomFunction ( FuncFactory *  func)
    pure virtual

    removes a custom function to the function table

    virtual VectorOfStrings* StaticContext::resolveModuleURI ( const XMLCh *  uri) const
    pure virtual
    virtual void StaticContext::setBaseURI ( const XMLCh *  newURI)
    pure virtual

    Set the base URI.

    virtual void StaticContext::setConstructionMode ( ConstructionMode  newMode)
    pure virtual

    Set the construction mode.

    virtual void StaticContext::setContextItemType ( const StaticType st)
    pure virtual

    Set the static type of the context item.

    Referenced by AutoContextItemTypeReset::AutoContextItemTypeReset().

    virtual void StaticContext::setDefaultCollation ( const XMLCh *const  URI)
    pure virtual

    Specify which collation is the default one.

    virtual void StaticContext::setDefaultElementAndTypeNS ( const XMLCh *  newNS)
    pure virtual

    set the value of the default namespace for elements and types

    virtual void StaticContext::setDefaultFLWOROrderingMode ( FLWOROrderingMode  newMode)
    pure virtual

    Set the default ordering mode for FLWOR blocks.

    virtual void StaticContext::setDefaultFuncNS ( const XMLCh *  newNS)
    pure virtual

    Set the default namespace for functions.

    virtual void StaticContext::setDocumentCache ( DocumentCache docCache)
    pure virtual

    sets the repository for the grammars

    virtual void StaticContext::setDoLintWarnings ( bool  enabled)
    pure virtual
    virtual void StaticContext::setExternalFunctionResolver ( ExternalFunctionResolver resolver)
    pure virtual

    Register a callback object for resolving external function implementations.

    virtual void StaticContext::setFTCase ( FTCaseOption  option)
    pure virtual

    Set default full text query case option.

    virtual void StaticContext::setInheritNamespaces ( bool  value)
    pure virtual

    Set the policy for namespace inheritance.

    virtual void StaticContext::setItemFactory ( ItemFactory factory)
    pure virtual

    Sets the ItemFactory for this context.

    virtual void StaticContext::setMemoryManager ( XPath2MemoryManager memMgr)
    pure virtual

    Set the memory manager to the one given.

    virtual void StaticContext::setMessageListener ( MessageListener listener)
    pure virtual

    Set the listener for warning and trace messages.

    Referenced by AutoMessageListenerReset::AutoMessageListenerReset().

    virtual void StaticContext::setModule ( XQQuery module)
    pure virtual

    Set the module.

    virtual void StaticContext::setModuleResolver ( ModuleResolver resolver)
    pure virtual

    Register a callback object for resolving module URIs.

    virtual void StaticContext::setNamespaceBinding ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    pure virtual

    Binds a prefix to a namespace URI.

    virtual void StaticContext::setNodeSetOrdering ( NodeSetOrdering  newOrder)
    pure virtual

    Set the ordering method for node sets.

    Referenced by AutoNodeSetOrderingReset::AutoNodeSetOrderingReset().

    virtual void StaticContext::setNSResolver ( const xercesc::DOMXPathNSResolver resolver)
    pure virtual

    Set the NS resolver.

    virtual void StaticContext::setPreserveBoundarySpace ( bool  value)
    pure virtual

    Set the policy for boundary space.

    virtual void StaticContext::setPreserveNamespaces ( bool  value)
    pure virtual

    Set the policy for namespace copy.

    virtual void StaticContext::setProjection ( bool  enabled)
    pure virtual

    Sets whether document projection is enabled.

    Document projection can be enabled or disabled at compile time, as well as overridden at runtime. By default document projection is enabled unless query complilation is unable to guarentee its correctness.

    Document projection is an optimisation that uses query analysis to remove sub-trees from documents that aren't needed by the query. This results in substantially smaller memory usage and faster query times, but means that any subsequent querying on the results of an initial query can be wrong.

    If you are hoping to perform further queries on the results of a query, you should turn document projection off to avoid incorrect results.

    virtual void StaticContext::setRevalidationMode ( DocumentCache::ValidationMode  mode)
    pure virtual

    Set the revalidation mode.

    virtual void StaticContext::setXMLEntityResolver ( xercesc::XMLEntityResolver *const  handler)
    pure virtual

    Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.

    This affects the behaviour of XQilla whenever it retrieves a DTD or XML Schema grammar.

    virtual void StaticContext::setXPath1CompatibilityMode ( bool  newMode)
    pure virtual

    Set the current XPath 1.0 compatibility mode.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_36.png0000644001725400016040000000233213273140077016474 00000000000000PNG  IHDRh%!;DbKGDIDAThOH:[ǯOI_E_ɠ,"Am j,%b" M$Ѧ, ZD$!"" C4!*C4bO]z^gu{|̽ @q|W( Ft*?UͿ:>==]\\qfy}}h #icc6h AB  %$pa f(+zD@gtehhrmmmlᇇ9QWWwwwYF@Y}2D&ƒ?~L`0| v{21]h-0jFFZ'MMM. %;;;555yyyJ8|>?''G"<>>BAD";=K>|>(>F---UTT(e@pIP($x<˕dPB+((`2*tz)))}}}777+++[JUYYiZOOODj|rr" zvǧ b]\\tuuyޅLggj#A8Lɪ*:#ˋf0`0vP(&15225NG:[ַRA1P^^v,"+0lmm qr J666D"TJbNOOc$ZZZ{{{kH`0Vc}?8L|p>FY, d2Zm8d%%%:tX,SSS( ...L^pHFˆl/!==]"tww:ш X,8`xyy )))~EQ;;;;;;$4P(|+L"BrVk[[hpfţ~ P(ؘNfeejXr G,{<&eee(&q S$q^W*ffffgg?==At#^8*$pPAB  %$pPAC~;<uǠcPw A1;uǠcPw Nл-byKGL&:Ffmm);cL9q)V[{5M1;uǠcPw LW788Z$t2nWvvEL1z\܂_ DGٽ;}hhmcnŊsC/\d|s}ccYYǏڗm`` cl.鮮V^~ر#KK-niitLeEťyNmׯᷭ[w ;NԘLf:ݚu.To2円T z~`0i455UvSEF)Rr=k~rvĉϝ+sBsLHM~SVwFq)EDƘ3kVTF*Kgϖ?~d;}m6kYY ]:5ڵv{kkgUO:M`͘_s<_S/^x<'O~wVGr6 k tMMM?˖%Z{cƵ奯N^q^^V[ݶ&޾_S2L[SWWaq&gO6oqQ(z_&%%d˗'kzJOsdž 9Nk~}\.-1l r80=ڋ۷ *I7aPw A1;uǠcPw A1;uǠcPw z萱O=ǃw kC%њ3w[jKb۝1eUEk4cPw A1;uǠcPw A1;uދOݻ:Bc{Ogc#z^'&jc*UKtʯyCR.u7j'n1fY+AʲON.|%PO722Z:5u>K ϕ zQ7vc˗ٳb/Qw A1;uǠcPw A1;uǠcPw !WUW}[?#r>kXmV\r/Qh<$cPw A1;u"%%}q8A%}hWW׍7+$$$>>/; 1;uǠcPw A1;uǠc :ޟIENDB`XQilla-2.3.4/docs/simple-api/dir_cf50e6b7905ca68e8eacb67c516ef759.html0000644001725400016040000000707513273140077021135 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    dom Directory Reference
    Directory dependency graph for dom:
    dom

    Files

    file  DOMDocument.hpp [code]
     
    file  DOMNode.hpp [code]
     
    file  DOMXPathNSResolver.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.md50000644001725400016040000000004013273140074023075 00000000000000d20de36e45b2096288a2611148f8f2c5XQilla-2.3.4/docs/simple-api/QueryPathTreeFilter_8hpp__incl.md50000644001725400016040000000004013273140074021244 00000000000000b27c0edddc402b03c8f163ace526b33fXQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__incl.png0000644001725400016040000002740513273140075020672 00000000000000PNG  IHDRt)bKGD IDATx{@Lig._T" ?,.6m"JyWMElE)JR[Q.+W$t}L8Ҩ93y}L9sH!}Bt @2 d Jt֯_D&lmm|0+.4rHSXXd L3HLaa!!^{ L@ @2 (%}6t¶0lǎ7nܸtL)..Çmmm666SN}^^^)))383U~111VVV?pMMMGePTuu3gO}smm 8p Bh-jkkqWWBعIIINNN666qpTj@83_d6#Ŋ_hѢEY,֚5kB_~ K>xs~~˿⋓'O"lvRRҥK.\Eф!TTT4mΝ ,pwwc0xHwɓޮk׮}x]OO?<55͛7-Zt&) [L_gg'NMMMgϦP([O=t/'%%>^no߾}ᰰnvvvTTԎ;n߾} @)A2U~>>>/]t)K.[dȐ!~~~wVWNNN6XpJpʕ+ 2xQ$I`_X,իW͇ bŊ<}F;{ԩS ?S___]t֔)SBx~kee5bnT R{ʏ;uȑ966{%l B|뭬666666ª0pBO>_GR9^niipna;;aȐ!+"57*@)A2G]\\Ο?a݋Z[apӓ %CCú#***nݺ%ɓGNX,Jmm-kjjtbd2]ag‚߼y ^|)ݾyO_ƳB2~N:uÇ_xmo3gNBBBeeeee}ET_jwѣ/^=z4++!Yf rss߽{ǽ*qqq7olnnsΑ#G-/\!z111O>MHH={B̴166ҢRZZZUVĬ^D"M6ϯۙ]/6خgggghhhggĉ oEFFtkk۷O8nݺ 2sLOOO55UV DљD&붶^^+ 淵]e0HiPUU577': /_6n޼kjj=Zb_P(d) Nnmkk$#"2MbbG,?d ~c簰)˂N89q`8kԩ05Օ} ?d `EG_:&:zWU`` /_͞s>$S 2k_{{O?MM9q˖ZZjDG $S ykNzmEt8@y@2DX޾m7n H@bka׷m;7f̠p)@Ha#<xA20'8?TcM}?O_0$A8?dOX4$~ƚ  /0$8?P5 <icMHƚim@@JuunnnH ƚ<@2UZ0$o)A r&94mGGŋc7m:dH*k"_dYY}vv*(ef~:#c?̇L*=;U;^3S%cM MH$RFƚ?{c2&u΋Ԯ.aikRQ! ST\+<kRh|2$//t8*<"8#$$dh|~+fgւ'{׈,ҥOÿSp&`f]Y=-":ʕ |83kWn~ѭ`m~#mC *m?IBX,5Y,X'E@2_g۾ʕMM4nayy=zcN~Fݝ;9B&bq<޻fJ)̗S55ӧzLV6mI$RFF 7;J)/ŋŕ() #[8JD"ED/.皔J/**zI^㦦v55U`***&& uu5TMJ.rR!uk .EssG``*]$ C 3uq`ADd*/>WSSe0jj>uq:B"e\HKu}nii7w>3 2iի+V`奣Ct8BUTT>oB$iС&͝;D"UTT"Jx̴&KO?N&88 #qLMMBlv͛5DF0+++{Ovv… kjjRSS7._|yq?TL0 stt$*~ ˁ55a{^~EtȨFY[[No]_Ϛ5+##LϞ=;}K.`< 0Ç>|&''¢ð'N :Fa`0BBBLLLCBB Fyy9B(??РA7o4hwKK 7Z={v>vaL&S`%K`fhh2550ׯ;wnܸqfffQQQxEPbbQTTԱclmmuuu7n(,'ٳð&a?>611QUUFEGG ~ȑǏc&PZ55+Wy&%%![ BT*5!!!d*z!Pccn:o< rrrtuuǏaݻw544:::0 Ϟ?^ZZ:jԨ-[FRRRp8!!!ƍ[ӧOݻaXkkVcc#7G%N_DvECCC&aXJJ#7{" $S dL[ZZƌenCmm-://oܸqolii)aÇ}15f {fUwssϑ)nWWד'Oh4;v7+!/5`wa0ׯP(---Ѯx]2y#_!={=n.QlذðٳgsFc_z b]r0WWם;wc2|ѣo[KsssD"fϞ]YY;88 g#F,ZHX-[nYYYM>***h4&i`` 0H]552 &$''n0`BZX`NNNEEE_|񅓓SQQQAAyBl6߼y xƌ;vww N>xb޷d}102_fee566{zz <~:&&f֬YB### ð[no˗/񒒒۷ E9NFFFssU>f/_",H]:dɒп?0WWלϜ93//Od2ŋ---y#;w.>>ɓº0eʔ7nqGEd ̙3N2eGwL_4ݻD䨩=x#,,lر:::|ITTB:n$A$)lArs_~ JKK]\\bccyky{{툵kr0"Hs̤R Bhii `vuu1 555:joozO?B|g666666! tҠʇnܸQ);;;vL&}'&&&=F%8M:bmݺ[Wgc<}xo o߾lJRH]0lӦMfffmkkŶmmTôi.^ٳ̑#G:;;X^7Q>熆ZVH,8p`ر83g[~T*uŊGgggHHw8avvvjjj9993 f%)={ 8pРA011,Xkk*PSS 6mhhhnnwqÆ o녅Xq/kjjRTџ>N>(Λ7ݻwlI,]0kԨQO0]0,$$ɭElmm'J)#e<ODD_-Ʋ:{eKK B(--mذa'&&fĈ 4iRAA~'bNNNZZZ;w 555'N233C^^rƍ+H#G1xΝǏڋAÇE'?~QQQ܏[@:;;_xqȑիW˨I*)tCdee\pb}ARΒSup0&p$!TVVfaa!fx[" NH'SV\SWWwe.g): ƌj*Pppi`` ͛fϞᅲ 2믿]އϝD[8""Kh4EBBB[[cޭ  _R.Ux/ Źg*p:غuutt&Mt $)7K@ɦ%''Ns玊ӧi4ZppQ444~ӧ/]?Y##@:cL)StttDdkMkWv!;fliiy円<`=1/Hɾ^DLmsn9jԨTn[85#48yT;)~ऱgw&&&oB*www۷w[zjEp]FV9r$5-_%/–11[j 'O/D1 "l: 2 ,,,77 +xZq;'&Hȝ%KM) )7wߥY33 3Y3zJGGclZA2@ܼYw ɾyT*= ฎא) Ւ%M~r2ٍp<7QzG &$yEE…GĉvD" lV=[ic5Hȣ={~?tp~>It,faz;vs\c)Hȝ䛿{T 7\]޽tˇB'ȗ̻7fFD?c齥K?io'A2@4  /]XOb}l>rA֓X$S'? IC?Y)nY,' a>HI>֓_Oynpva=iP @ 9_XO{>H@!֓%^)@ I.RA)d L)zҠ|A2@vwa=i:uX\2Y)2 Iܹf>e{p  I,SA9d t)zҠH.' X|Hٳ%o-yaٲ< G**='O_<ٳ:޷n~ql Q LwEX|2W1,' ]XL&(_K$ 5a9wi_}2Р=cjW;椦"::Qb8&lill0D"!H3gtN!˼2ׯ[1 !!tk B&::p~c# ?-0aXMMC!WZ1 3)BҥRb)}wU$ C))lpZiV% ölɎM"8OLLbd @7lv`ǏL JMHs̐!C+lc:YxMا/=LAΞ=kii҂JKK6lXGGBd2Lʕ+օ˖-vB;wn̘1C 9~8Bb ب{}=qDr}ǭRSSKNN>rHTTTRRRrr2BƏD"_pA~x%>sss G#''g&&&AAA]]] ZH7y͎6l؀&O|m޺>T;;;ccoݻwmu;\Ç>qe˖-_x]^zUZZ:~rܹs^eGG|!!!jh4uuDUUU-#G?a^}c!:Wxx8Bh۶mRarE+lBϧRF|s)++u떽-[&׋F=G`7yÞ={LLLjjj.\`aan:b̙>wkp"~Hɴj̘1l뼼q_R ÆckZ e---f ܌6r8΂ do5d*uD>yax[cnoo/IfT`7yðaÒ=zTD2z?$Nda֭[d2HCC*GOO2 a7nXxԩS/^(z{{_|*++'V?~\OOڵkٲ&(8qb„ [n,pBeeem{x544̒)&ASS{D$S}?\~:&&f֬YB###׮֭[x9~˗xIIIۅբ'##yժUyss/_vqq b!E555AAAӦM^0,..n޼y[ljÔ*++ïn޿GD썷666"@2=p8+W LKK?w^_nذ%66?]JX-4gΜL*`0(999 ,:vJݿ?o4M`Gxc7f̘UV!MMMe5|ㆆk׮-Zr.l mmm?uUTTGDDxyy($C999uuu/_޼ys7 ׇl(7q.80vX ̙3mG*b CCC__ߎޫΐ ===avvvjjj9993 WWWmۦoggd2L]u3nɝ;wTTTN>-a64h OOOkFѭ'|5##@:.PA|Y,VttIwa'O511 z:\3#XOUTT :B tC2$)8w /NjSz)H$SH L@  Dzmaa!с<~Xw@O@wDGJ_/j D!J$@2 d $]t(KB,IENDB`XQilla-2.3.4/docs/simple-api/classNSFixupFilter.html0000644001725400016040000006225213273140077017260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    NSFixupFilter Class Reference

    #include <NSFixupFilter.hpp>

    Inheritance diagram for NSFixupFilter:

    Public Member Functions

     NSFixupFilter (EventHandler *next, XPath2MemoryManager *mm)
     
     ~NSFixupFilter ()
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    - Public Member Functions inherited from EventFilter
     EventFilter (EventHandler *next)
     
    void setNextEventHandler (EventHandler *next)
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Additional Inherited Members

    - Protected Attributes inherited from EventFilter
    EventHandlernext_
     

    Constructor & Destructor Documentation

    NSFixupFilter::NSFixupFilter ( EventHandler next,
    XPath2MemoryManager mm 
    )
    NSFixupFilter::~NSFixupFilter ( )

    Member Function Documentation

    virtual void NSFixupFilter::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an attribute node as an event.

    Reimplemented from EventFilter.

    virtual void NSFixupFilter::endDocumentEvent ( )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void NSFixupFilter::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles the end of an element node as an event.

    Reimplemented from EventFilter.

    virtual void NSFixupFilter::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    virtual

    Handles a namespace binding as an event.

    Reimplemented from EventFilter.

    virtual void NSFixupFilter::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void NSFixupFilter::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    virtual

    Handles the start of an element node as an event.

    Reimplemented from EventFilter.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_func_0x76.html0000644001725400016040000001127413273140074017332 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - v -

    XQilla-2.3.4/docs/simple-api/classItemFactory.html0000644001725400016040000030416213273140077017003 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ItemFactory Class Referenceabstract

    #include <ItemFactory.hpp>

    Inheritance diagram for ItemFactory:

    Public Member Functions

    virtual ~ItemFactory ()
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex (const XMLCh *typeURI, const XMLCh *typeName, bool &isPrimitive) const =0
     
    virtual void getPrimitiveTypeName (AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const =0
     
    virtual AnyAtomicType::Ptr createDerivedFromAtomicType (AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *value, const DynamicContext *context)=0
     
    virtual AnyAtomicType::Ptr createDerivedFromAtomicType (AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual AnyAtomicType::Ptr createDerivedFromAtomicType (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDoubleOrDerived::Ptr createDouble (const MAPM value, const DynamicContext *context)=0
     
    virtual ATDoubleOrDerived::Ptr createDouble (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDoubleOrDerived::Ptr createDoubleOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
     
    virtual ATDoubleOrDerived::Ptr createDoubleOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATFloatOrDerived::Ptr createFloat (const MAPM value, const DynamicContext *context)=0
     
    virtual ATFloatOrDerived::Ptr createFloat (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATFloatOrDerived::Ptr createFloatOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
     
    virtual ATFloatOrDerived::Ptr createFloatOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createInteger (const int value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createInteger (const MAPM value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createInteger (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createNonNegativeInteger (const MAPM value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createDecimal (const MAPM value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createDecimal (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createDecimalOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
     
    virtual ATDecimalOrDerived::Ptr createDecimalOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDateOrDerived::Ptr createDate (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDateOrDerived::Ptr createDateOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDateTimeOrDerived::Ptr createDateTime (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATTimeOrDerived::Ptr createTime (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATTimeOrDerived::Ptr createTimeOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATGDayOrDerived::Ptr createGDayOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATGMonthOrDerived::Ptr createGMonthOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATGYearOrDerived::Ptr createGYearOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDurationOrDerived::Ptr createDayTimeDuration (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDurationOrDerived::Ptr createDayTimeDuration (const MAPM &seconds, const DynamicContext *context)=0
     
    virtual ATDurationOrDerived::Ptr createYearMonthDuration (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATDurationOrDerived::Ptr createYearMonthDuration (const MAPM &months, const DynamicContext *context)=0
     
    virtual ATStringOrDerived::Ptr createString (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATStringOrDerived::Ptr createStringOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATUntypedAtomic::Ptr createUntypedAtomic (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATBooleanOrDerived::Ptr createBoolean (bool value, const DynamicContext *context)=0
     
    virtual ATBooleanOrDerived::Ptr createBoolean (BoolResult value, const DynamicContext *context)=0
     
    virtual ATBooleanOrDerived::Ptr createBoolean (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATBooleanOrDerived::Ptr createBooleanOrDerived (const XMLCh *typeURI, const XMLCh *typeName, bool value, const DynamicContext *context)=0
     
    virtual ATBooleanOrDerived::Ptr createBooleanOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATAnyURIOrDerived::Ptr createAnyURI (const XMLCh *value, const DynamicContext *context)=0
     
    virtual ATQNameOrDerived::Ptr createQName (const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0
     
    virtual ATQNameOrDerived::Ptr createQNameOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual ItemFactory::~ItemFactory ( )
    inlinevirtual

    Member Function Documentation

    virtual ATAnyURIOrDerived::Ptr ItemFactory::createAnyURI ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( bool  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( BoolResult  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATBooleanOrDerived::Ptr ItemFactory::createBooleanOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    bool  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATBooleanOrDerived::Ptr ItemFactory::createBooleanOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDateOrDerived::Ptr ItemFactory::createDate ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDateOrDerived::Ptr ItemFactory::createDateOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDateTimeOrDerived::Ptr ItemFactory::createDateTime ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDateTimeOrDerived::Ptr ItemFactory::createDateTimeOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDurationOrDerived::Ptr ItemFactory::createDayTimeDuration ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDurationOrDerived::Ptr ItemFactory::createDayTimeDuration ( const MAPM &  seconds,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimal ( const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimal ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimalOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimalOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( AnyAtomicType::AtomicObjectType  typeIndex,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( AnyAtomicType::AtomicObjectType  typeIndex,
    const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDoubleOrDerived::Ptr ItemFactory::createDouble ( const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDoubleOrDerived::Ptr ItemFactory::createDouble ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDoubleOrDerived::Ptr ItemFactory::createDoubleOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDoubleOrDerived::Ptr ItemFactory::createDoubleOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATFloatOrDerived::Ptr ItemFactory::createFloat ( const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATFloatOrDerived::Ptr ItemFactory::createFloat ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATFloatOrDerived::Ptr ItemFactory::createFloatOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATFloatOrDerived::Ptr ItemFactory::createFloatOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATGDayOrDerived::Ptr ItemFactory::createGDayOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATGMonthDayOrDerived::Ptr ItemFactory::createGMonthDayOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATGMonthOrDerived::Ptr ItemFactory::createGMonthOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATGYearMonthOrDerived::Ptr ItemFactory::createGYearMonthOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATGYearOrDerived::Ptr ItemFactory::createGYearOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const int  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDecimalOrDerived::Ptr ItemFactory::createNonNegativeInteger ( const MAPM  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATQNameOrDerived::Ptr ItemFactory::createQName ( const XMLCh *  uri,
    const XMLCh *  prefix,
    const XMLCh *  name,
    const DynamicContext context 
    )
    pure virtual
    virtual ATQNameOrDerived::Ptr ItemFactory::createQNameOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  uri,
    const XMLCh *  prefix,
    const XMLCh *  name,
    const DynamicContext context 
    )
    pure virtual
    virtual ATStringOrDerived::Ptr ItemFactory::createString ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATStringOrDerived::Ptr ItemFactory::createStringOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATTimeOrDerived::Ptr ItemFactory::createTime ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATTimeOrDerived::Ptr ItemFactory::createTimeOrDerived ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATUntypedAtomic::Ptr ItemFactory::createUntypedAtomic ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDurationOrDerived::Ptr ItemFactory::createYearMonthDuration ( const XMLCh *  value,
    const DynamicContext context 
    )
    pure virtual
    virtual ATDurationOrDerived::Ptr ItemFactory::createYearMonthDuration ( const MAPM &  months,
    const DynamicContext context 
    )
    pure virtual
    virtual AnyAtomicType::AtomicObjectType ItemFactory::getPrimitiveTypeIndex ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    bool &  isPrimitive 
    ) const
    pure virtual
    virtual void ItemFactory::getPrimitiveTypeName ( AnyAtomicType::AtomicObjectType  type,
    const XMLCh *&  typeURI,
    const XMLCh *&  typeName 
    ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classStaticType__inherit__graph.map0000644001725400016040000000040013273140076021643 00000000000000 XQilla-2.3.4/docs/simple-api/MemoryManager_8hpp_source.html0000644001725400016040000003470313273140073020606 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MemoryManager.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18  /*
    19  * $Id: MemoryManager.hpp 673975 2008-07-04 09:23:56Z borisk $
    20  */
    21 
    22 
    23 #if !defined(XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP)
    24 #define XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP
    25 
    26 #include <xercesc/util/XercesDefs.hpp>
    27 #include <stdlib.h>
    28 
    29 
    30 XERCES_CPP_NAMESPACE_BEGIN
    31 
    32 
    39 class XMLPARSER_EXPORT MemoryManager
    40 {
    41 public:
    42  // -----------------------------------------------------------------------
    43  // Constructors are hidden, only the virtual destructor is exposed
    44  // -----------------------------------------------------------------------
    45 
    48 
    52  virtual ~MemoryManager()
    53  {
    54  }
    56 
    57 
    70  virtual MemoryManager* getExceptionMemoryManager() = 0;
    71 
    72 
    73  // -----------------------------------------------------------------------
    74  // The virtual memory manager interface
    75  // -----------------------------------------------------------------------
    78 
    86  virtual void* allocate(XMLSize_t size) = 0;
    87 
    93  virtual void deallocate(void* p) = 0;
    94 
    96 
    97 
    98 protected :
    99  // -----------------------------------------------------------------------
    100  // Hidden Constructors
    101  // -----------------------------------------------------------------------
    104 
    109  {
    110  }
    112 
    113 
    114 
    115 private:
    116  // -----------------------------------------------------------------------
    117  // Unimplemented constructors and operators
    118  // -----------------------------------------------------------------------
    120  MemoryManager& operator=(const MemoryManager&);
    121 };
    122 
    123 XERCES_CPP_NAMESPACE_END
    124 
    125 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    MemoryManager()
    Protected default constructor.
    Definition: MemoryManager.hpp:108
    virtual ~MemoryManager()
    Default destructor.
    Definition: MemoryManager.hpp:52
    XQilla-2.3.4/docs/simple-api/dir_000012_000021.html0000644001725400016040000000402413273140074015700 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    fastxdm → simple-api Relation

    File in include/xqilla/fastxdmIncludes file in include/xqilla/simple-api
    FastXDMConfiguration.hppXQillaConfiguration.hpp
    XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.png0000644001725400016040000001331113273140074021567 00000000000000PNG  IHDR;HbKGD~IDATx{TSWOH( D#( h( RRgVlAP*::δNkChTQF,AF @^ǵ1MА Xs={}ss A 6 p>4Í͛7kZkeX.rGiicf͚I;wB]d}`Kرp>ǡCBBB9C$u#BBB;$&&5x+V\r?`0EvlBBBzE0=Kw dqƌ!$H2Bhذa]ZRRRX,B=##cǎP(FWZꚐY[[oCt >>>==899ļY^ 7nDb4:88 ~Fujqqq![d+WO<1v!]vgف<ٳ]d0?X,VVVVwqvv.Y^꣠`ҤISL5jTAA˸\paٲe;vBh_}WTFDD4C*Jц b+??ҥCŠA-ZOѷo6rP(+))!75 Ǜ?y_.SNܹ/~~g#zwﶴ!jkk_;#o&F  .!FFFFFF{ϟ~(N# »={vڵL&sر f?_~!tň*j=77wʕovWStt̙3BmmmqժUl6?{Do֧ZORXX8f̘^0 LA^|yر7nX~n|BuvvW{1&LbhDǏ'ˣF#bӓ,777/\PK?;88̘1hW^ݷo_Wp`;vBF6o#zNWXXϙ38pp]_b8k֬G~ALfSS T*dGi𰰰C G՟-R "77wڴi䦳~K*r ݽ{7?~>S7nYlfX,&H +c" e2ٳJXXX,6|]Z7FDDvD"MW$C iooW*-[&>RX|ʕUV1 MOkkT*}ѭ[m&H]{7nxԩ3uTBqH}޼y{-..Jdӧ]'IIIijj{.ϟ={6#z<~L<%,,,4띋]PPrBtݻÇK,*OGGG\h;p{ rfHLw}GVXGQ(GMF_x188Xo4ujz޽?7nܶm>c_oZLOXX;::BCC/^L&FF{WP g\|>y֭NijjZdY3k|!;v[lJH$gϞկWkaJHHxwK?`Ȑ!s펱E4iRnn7|'1[?}8@3K.yMҢ €˗/wua`@qqzsaݺu?\*z=|0/޳v.?sd_o ? ZBɓ+WxFaaU[['BF;yӱ@nhv!F{PTY;#B+5gˎNM~MF} йs פ E (b>!r;juUVLF}˗5 йsߏ>PnM,b@8QJJ57b'7nԙ@Rn}J6@GvvEW74]VVYߦcs 仵!VkYavJ}Ou<޲ys }8@}8@}8@}8@}8@}8@}8@}8@$֭vzƠATPkglEϠe%MJ~0ڵk~EFr-`}8@&APD"+fʫ ޻|^aЇ3sUo^l:/cĈƏiӦ!VV'%% >d&%%jBIOOHNN>|1cmۆbBfFXtikki|`6lD ŋFiiiGn޼fZqqqb8##!kĉBo LsXxqhh{Bo駟}݂3gθj 222&NL{7g\.$%%%GȈ?nǏi}H$OV BR ӧOwvvVUU) V[TTDV0aBvv6&ˆ9T**ZYYInfggs8P($Bь1ŋADFF&''ݥKjd8~QX@0b7СCBt:ݨE裏 E@@i&˾F.>jƍ#79X,&>>>!*`l?? .Ø)!;}||am?`0@L&+))u(RTQQJ===͛7?s#ÇS"zErܓ'OfffΜ9fm69` Iue"BA,XyzPgϞ^TTJrؿoF95kVVVnݺuF5g}7'O^ۆk׮Deee[lYd hM,:{tVgΜDr]]]>}jXѐ]v92555&&dvttlذ9&&F& JcccY,ֺuJ" +W}:::_^v-**ҭ*Z o~pMXV/ lw+v.bȑӧOh߱/df/GGߌxkb+9_dV}GчH$P(f /)H$u[V-|-7`0ɶdG?ӧ:.%%wСӧO/,,$gxb̞ӧO 4hرF (JzzGrrÇnjm6}͜ &05ktvvWIIIÇg2IIIj4s8WWם;wv Y˽v_te˚~u ҘLfvv~G6!r}\\X,@6P(x***PTF嚚P(H$oGХK 42⏞aK||;wVZEZ߿#""LrA+%%%l6;88ʕ+vv:t(BNx{{Xlbm͞=4IOOOQfcb{Ɣד//[;wJeTTTRRREEEjjޮ(JN%JWX1w\T<7B^̰a %zI,і B}8@Âh+dѢE n~~E_iA}p>i]y!$IENDB`XQilla-2.3.4/docs/simple-api/classMessageListener-members.html0000644001725400016040000000574213273140074021276 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MessageListener Member List

    This is the complete list of members for MessageListener, including all inherited members.

    trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context)=0MessageListenerpure virtual
    warning(const XMLCh *message, const LocationInfo *location)=0MessageListenerpure virtual
    ~MessageListener()MessageListenerinlinevirtual
    XQilla-2.3.4/docs/simple-api/dir_edb9ca93fdcc21e6038ca507797536da.html0000644001725400016040000001205013273140077021103 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    runtime Directory Reference
    Directory dependency graph for runtime:
    runtime

    Files

    file  Result.hpp [code]
     
    file  ResultImpl.hpp [code]
     
    file  Sequence.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/classAutoRelease-members.html0000644001725400016040000001100113273140074020376 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoRelease< TYPE > Member List

    This is the complete list of members for AutoRelease< TYPE >, including all inherited members.

    adopt()AutoRelease< TYPE >inline
    AutoRelease(TYPE *p)AutoRelease< TYPE >inline
    get() const AutoRelease< TYPE >inline
    operator TYPE *() const AutoRelease< TYPE >inline
    operator*() const AutoRelease< TYPE >inline
    operator->() const AutoRelease< TYPE >inline
    set(TYPE *p)AutoRelease< TYPE >inline
    swap(TYPE *p)AutoRelease< TYPE >inline
    ~AutoRelease()AutoRelease< TYPE >inline
    XQilla-2.3.4/docs/simple-api/classReferenceCounted-members.html0000644001725400016040000000735613273140074021427 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ReferenceCounted Member List

    This is the complete list of members for ReferenceCounted, including all inherited members.

    _ref_countReferenceCountedprotected
    decrementRefCount() const ReferenceCountedinlinevirtual
    getRefCount() const ReferenceCountedinline
    incrementRefCount() const ReferenceCountedinline
    ReferenceCounted()ReferenceCountedinline
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__incl.md50000644001725400016040000000004013273140073020061 00000000000000e86395971d775efcb4f00589298346fcXQilla-2.3.4/docs/simple-api/dir_79cff32a5bbdcaef902b8e39ed326038_dep.map0000644001725400016040000000233313273140076021625 00000000000000 XQilla-2.3.4/docs/simple-api/ExternalFunction_8hpp__incl.map0000644001725400016040000000010313273140075020715 00000000000000 XQilla-2.3.4/docs/simple-api/classATDateOrDerived-members.html0000644001725400016040000005716113273140074021114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateOrDerived Member List

    This is the complete list of members for ATDateOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getDays(const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getMonths(const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    getPrimitiveTypeIndex() const =0ATDateOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATDateOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTimezone() const =0ATDateOrDerivedpure virtual
    getTypeName() const =0ATDateOrDerivedpure virtual
    getTypeURI() const =0ATDateOrDerivedpure virtual
    getYears(const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATDateOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATDateOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/RegexGroupStore_8hpp__incl.png0000644001725400016040000001673413273140075020561 00000000000000PNG  IHDRpdbKGDIDATx{aիW׬Yuև'kzxx455!ܹrʶ6PAA;DUw-[ !TYY\PP|򢢢氰E-]ĉ<_/%zxʕ+,Y?wtt 455SSSE9>99!#|ZDaH6M󽼼.\x9i!IQpr`ikkr9s樫oTWW$>>~С666eeeǎݻwq__Ǐ>|FuttTUU >/KR*… AAA?#͎r!!!...Zt!իW3#Gxxx7nҤINNN&&&oo˗/'ZDa6S=:ygϞ oV2{@ir`Ynǭ[/_.zƍ7o?t钟ɓuuu'N#mMЦM -Z4j(0F\ň*ݰa)ݻw7mdjjjaa㓙)}]nI駱co+VsNR|>_Z-x4i,_\SS!D$m!r`ݱmoo?sLxx޿.ZSKK1BDtl(&BH[[{gϞT*bY[[#BMMM_9B^(4tlj`յ:99ڮ\2!!!66vdԂ!i"į'H$c! QP0 ;v Ol6{o߾VKrĉcbbB$i„ [lՋK WSS/BUUUFFF L&A£0440,$$D"&Oީ2jÐִN:Hd,}z\ZZZCO NT*--moo/..>s挛@ Hm׮] MT--- aH*'pO(z28.@.@.@.]X!ݧw?`0*++E ,3V!Ufff,KQpOX,L_8h-y%zzʎ (\dfܱ#{HzzΝH;w.\t}$Jjj8w_xpʎ@ccC幸 :TO RRMt̑ʎ yyo &s# @1Hw}[xѣիwpԤ*;nik8~NTq#"9DU|.kk SvDի*&BQky0|%,3X[9ݳW|ЁiFF×::(;"B QqvWvD18͛/'߿X__%̗AA)|`׮~8&3alH4u[l`?8nDgͲ 03ˠ Q0ܹj9tѣr&3_ %?f2=[>_{;?:vTQL##PvD@ Q.@@{ QYSd^y"(1Ak~/ tBx=; HD >3_η@^`5 %@ 3A@ Qt^G2 OE}Š QP[rRSٳJzz*T("u-ySV=r`kU^c( |itNxRvDB~[&m:S(pOD9 W1/^TndΣRaYY##;8+;" Qs?ll`rׇ yyoVv rPvD@>|d&0oрڷ/m`ZX(eG e$>',fڦ))0D_PBBqsp۷wHinn߹sT U$~ݻoS5u);" ;zVll֗__fiIWvD@*H/LHa ""M8\n)*b$l8:Y(/+`O_ "#oZX##TL= Ҹ\ޡCP}sȒ}q쬬FF  풫 سg Sv />E[6ipwZo-52}$ssÓ'ss MWaC[սxQ`1OAw/!zpFR9sY:d:t{3j׮m3rBATi ..>_N:29;R)}j\ܹScG ӶkB/+Wfd}N "AT]B!bElnn/ėHfHYYop\KK#[Zֈ>IF\aAt[[[cc㰰#F޽_dt&1mڴcǎ!lZ@@BH _v !аf###)7M@@ÇěR gΜ OHHPWत={7\KK+00ܹs=OYFI񹵲kmm-#nݺeee*eV +D4rĻ%;;{޽ƫV.IBh4 D',.EAZѩ-rm$#ޮnnSqOn_ϟ?ݻՄBԩSe˖q88|`vwww=|„ AAApss0,--MGGg„ h üfϞ͛ϟ3f߾}"B(Kъ  -?uuu:Ç=7PaaaǤ,|ks-))˳ڷo_7K8B ,p8.]; iʠ#JɾˆFx۷EEESL VYCC#66 9""Bwvgʻiߓ'Od׎+m7$({( >;; gϞ(_z,ݻ'Pwww6 ϟ(*((0uz0jԨj|<o֭xY2,t]|J<u`` Bע -"(rsszo2%wx+0 KNNf{ B(;;0@DXB (8QJF4r2r˗/^KbꑑBI H+.НnUV;D6oN0d2YAO=}Tv0,--WZZ_Jхɂǻ5FO"&M/\]]?aXEEBy9Fzj|5&uuuݻGRSSEˇ rNuu·&jڳgh4Z7K}PIIxVAPZ8_WVTT$RݿCKKkׯ_V\;PMÈ'N(vʄ' (B...۶m×={L˗/eo.[d o޼9oÆ >kM x|(`Vуzk8Pq5𲳳GMEKUJw$GGGWU(^0o^@)>$J$J$Jv(M=Qё(> ?;0pN$H \.@.@.@.gVw|IENDB`XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__dep__incl.md50000644001725400016040000000004013273140074021272 00000000000000e67fba50b2b8b60d1a7bc5b4908f1bafXQilla-2.3.4/docs/simple-api/classEventFilter__inherit__graph.png0000644001725400016040000002603613273140076022025 00000000000000PNG  IHDRw/bKGD IDATxi@@6AEqիAuE\[˫vժ֪ھzj[`E\ ET ,~8͍I!ɐߧ0̜y9d&sf8 `he؂, dY !ZJ":&nڴЁ4 8----**Q4%QQQiii,9t萡Ch28ChJp. dY Y-ȲZݻ~JCݻw h$%%C-|~, '''WWW)J[&\1;'555mڴ9y$!D$8;;D"BÉ֭7|C4h!D}ĉ}ZZZm޼NT.S"lݺfȐ!W\Q(G96z=ٳ.]O`њB͛70LTTT*e&66]$1 e˖ɓ'?~833_~+WL2d޽\+0LYYټy """!/^PY۝cbb>}zIwwwZlEʱ3ܹsBު֮Z dYh4ϲ*VTTXYY1 3}UVv3Y Ӈ0Lmm-|YVͲ555w $99Y6]L_rl,@wYz{{+L0aÇww :=//M6-@,MMM5\`33 ¾}/Pf~~~>}dի*ꊭk׮uEZ: =|zΝ;Ӊ\aT:DWUU5mڴ]vKL// ٟ EZC˗/ D[n޼y'MjժGeffܹSMB޵֚UUU[BUxk*Р@GȲ?&:lԩϞ=2el毾Ʀo߾{޲e2*.vvv۶m9sf׮]BCCTιt0oo 6 3h СC!!!p8ӦM3t Me؂, dY Y-ȲlA` c @OC,hnnn<`iًRYi@x{lűjrCCC/, ;;;{{{)J]… /eo͚5vE"Qpppjj*!D,޽{ĉ'Nܽ{7}Ԉ#Ν;~(BȒ%K!&MR'O(\IVXJy]t,o6(AIuuu՛!#GLNN/z!~ٞ={mۖ~ZȥKvܹhѢ={ SZ$r$ KյC\s 1N})III?曻wvٳAAA\.ryѢEw^`!wޱ=z~ZkOOO)kر vQM!$""Ca!CRRRKN@a }@?{_߱cǂ 8ΰa-ZLWWמ={N<ԩSG^z-*:t($$%?PiĈӦM3t MY-ȲlA` ,[e؂P?HRYYSZZUUU[YY+I#?E!&&33^mmU~~~Gjb"%pS{:a8p8BLt/JM^rHxRT-+vum 5յ")iE.zY5@3sYh\]mE"H$!TTȦx! Cڴvr)p - lDݻ5![U t͵"55\'gU5!*gnݺkh e<ػuVee B8K\9nOٱ#W3g.`~6rւB3-YK+W>v,* ]=4b @/رtz:Ԕkaa1 5QQWLYYD8:\Ԕ[Ԅ2~ [,x\D-,,wvw㏣jkb 115g>QhM$R}ŕ539y)b۶}o[RR)H a\G%B>tD"%a.\{̘}/dk]fppz01^ܻ-eO<}:V,?v"TJx&+V]t~6BHVVAPvF6rM$puR%~]%qWòVLLkV[\ BPUU{Rn\3gnW0Fc? B*e!\I׮}rn!aɟ<+VllZ9 fŻ*/zpRf͚%K+bs+.]cG' wbG~~>|~0YJ ;1ٳkj۽,/]#K8#Vz[?H2{O/Sey< rcvNx<}lZ02V,zxIKBlUU׮%$dTȘS,0G"#Sw;fLOC)5>߿  pi@cIIRAvR.dذ.|oPPOGG]ְS,0̚5G?̜8izŋ9 ׮噛 ]#FY n0u̘^MiAM%R ì]{K:yrCWIIwo'% kdO߿ , 6mF߿СiiXacӧN`pt"{C||֓'%VC=[, G*e]{(>u*×vsncbٲԎg6$$dcܿG۷}`o``Ν] tȲ:A7?/3AZh)ں 6nC >TʪdtpPe-բsnqrB3HԶm۷'|3t,G 윜B[[a||{8;{i~!˂~]I;>UUU[^c^IΝg ̟?бѣ"J__ F, Q\\qm9d>}Ӄ{Yv:q',XoXXWYY{2yYvtnӺdYIAAI||׻YeYXj6ĮX1vrci$M Z2ߋ5懟@, ڐjc߿˨Qǎ\ӌS,o)V @C^,?ݩܦ{wdYh:񛹹S,)Vџ~:бFuՇ ٧Og>}ZJ_H_dc%dY^͓'3^mf螁{7AZh!)kŊ?VgX 섄LMv6'(,V[+rABBv\܍/ʛ W-KEE] ^xĚ5(WnUc.4,An뭲j:u-:-0Rǎa[vc1"b4==O p+7ϨQ}mm- /dY ׯ+o={ZDvo//GCfwbo|AČ6mr.]hN@p[Է1lVT$sV\x?o2!)VɓK>m-["Ѫ'H:3-l "mՇȑ-- @UxOַ߆ j(?89@|W,p[,dr=v/0U H*;wg_ƌ3[-=v-/!!Ɍ׎ÇwznoeȲ͓es{kg#8wpFR=o/=v옅Dٕk̸v}njСe w3gn|Y.{V QC_ݟ3go@@;f*.-ϟp[c^Z d株ҥܸg*/ y{95CPjٳu׮H=p!'>>mX yԨe-lVZZ)d8|W"җ"  iifiРN*z0_|C]!6=O;wĄC0SX-\p̟ ͑hp^ ue~~>~D!6%$est4޸qzm!AZffyZ:I~nffِ!tKkCG ,k8,GOR Oݵo-h/6]#?vٳ-?dYc$2nG?x.  R^dg? #6z#=}>7 h! '2?緸ͱ )Vn~N#"1 ~x157 Ё;7 }ٜ@}tVQ=؀wϧMծCdB"`^ $&NJ#F4FY`ʪN*+ko-'ձCkbYr)SvZlg7 IՐ!t.^bHȲ"16}'87^*XV=xrʔNN6QQ۴2t8uҷo@;:YEKlA` ,[eآe}3 pQ!P֡C Ν;[ hʽ{3e.3uT{77JMcּk^>ݻ7mڤrWq>|ݓn޼{xͲzSs=ڱcT*Ma}?mɲEEE}NKK>}zhh3gTȃj-[~ȑǏϱ -1<{݊+ѮfÇUK}ciR3h5O)//߿+W6oޜrʈ@6_|irrT*5kV]s[&L-B556ԩS iQSLQ\&3=A~X=>;kҥ!!!SFՠaKRvvv?===Zf!_٦iW3*M:\]<-"-jK}kѸ7iBv Ų)Bkz CF> !_V9Bi }7&C3 =ݿ|ed~u\oMfŵ_ IDAT[9=r姬[KKK}]GGǶmۆK'22[n| !dРAWWWH$ wqqqvvD,պu]v? ѣ J;v֭.K0Xn:OOO''9s攖Y\% ]ٳ.]j@˱?ڵ… 1jK%Y?~ãrA G?v?|&]󄐈kr}g}~.?>S(ZZZ޸qCyt'.77͛7Z%$$$x{{ifӦMj6GUJu:/tiͿ{lmm rBBCC>,d#)r~J"d֭>>>666C rJ]*4rѤ 'ȧ\MIу]qqq]3̜9sȑѣwʔ)%%%{%)|}زeɓ?~ٯ_+Wjԙ3g<<<|֭[ggg瘘OիW)̩P*t4Mz&4gJuTy]UZVVo>BȴiCRپ Ô'''3 sBAaGfwwwB&rQh2t|,[\\L)))QZ.{-gLL7m$:=+lX׮]eA>}4YaXaÆ=zpȺ =pl_UM0.]n߾-\ mr uA,0ۺuǏ+lK]f)))i۶m^hdfYYDGGvFy@YV>iQ)))(]]]Ϟ=0رc7oL甯ISSS555w $99Ye%?az#AOeն>e$Mޡ ]Ñ:ә?Uپ'.]a7Љ#s\dzȲ ø\|Y~JZZZ+** !UUUtzfffV޽{W}OA۶.% <(J*~uhaaqM/srrd5UVYYYUT?Ejkk50˲ߟSmQXkڰa}eke_FFlkg 񻬫kbb]v :T\a,Ytҗ/_Ӊ*듊:th>}{==YV>e$Mޡ M5]Ñ:T~Vn_:áC\\\b[og٪*eFeQh2t|.;~m۶1r"""D" }~}DݺmSIIIjjjK1 3cƌ,'=zl܂rųeRO|֭[k֬9ssBȤIVZѣ̠;wֻ9sBBBN<0Ey慇ǯ\bggG~*4g٫Wu֭[>< =֌С÷~m6RO*Λ7oٲeLLL#u7!dݻzfI]nͯ]9s&''cǎ3f̨~M6l={v֚UUU[R^^N%U v45]ÑJZl|w>裀''z痷xb#ڵk/K^, '_˛2e?.Wqqٳ>czFO.>DCZ[[Ӊeee^6m.\XQQRbxzZbr6lС_}]Nbccea+,SN' !nmee5x`zrY&S5?O4~WoŝK~J3v޽Ν;7/8ΨTIvMOOcz꼼HKh;ZRMP/333SluuӧO嗃7*o u֋-2tǕ+W?o޼Ç:5.ggݻw:ߟ\-ȲlA` ,[e=<4)`Orx<^HH쵑 ڡtr1^GAƳO:%{84 ҽ/^N{9yyyW^ս` ;v»\#pp`(K,[e؂, dY'k<IENDB`XQilla-2.3.4/docs/simple-api/classATDecimalOrDerived.html0000644001725400016040000030710213273140077020141 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDecimalOrDerived Class Referenceabstract

    #include <ATDecimalOrDerived.hpp>

    Inheritance diagram for ATDecimalOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATDecimalOrDerived
    Ptr
     
    - Public Types inherited from Numeric
    enum  State {
      NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3,
      NaN = 4
    }
     
    typedef RefCountPointer< const
    Numeric
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
     
    virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the sum of this and other. More...
     
    virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the difference of this and other. More...
     
    virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the product of this and other. More...
     
    virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the quotient of this and other. More...
     
    virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns the arithmetic product of its operands as a Numeric. More...
     
    virtual Numeric::Ptr floor (const DynamicContext *context) const =0
     Returns the floor of this Numeric. More...
     
    virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
     Returns the ceiling of this Numeric. More...
     
    virtual Numeric::Ptr round (const DynamicContext *context) const =0
     Rounds this Numeric. More...
     
    virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
     Rounds this Numeric to the given precision, and rounds a half to even. More...
     
    virtual Numeric::Ptr invert (const DynamicContext *context) const =0
     Returns the Additive inverse of this Numeric. More...
     
    virtual Numeric::Ptr abs (const DynamicContext *context) const =0
     Returns the absolute value of this Numeric. More...
     
    virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
     Returns the square root of this Numeric. More...
     
    virtual Numeric::Ptr sin (const DynamicContext *context) const =0
     Returns the sinus of this Numeric. More...
     
    virtual Numeric::Ptr cos (const DynamicContext *context) const =0
     Returns the cosinus of this Numeric. More...
     
    virtual Numeric::Ptr tan (const DynamicContext *context) const =0
     Returns the tan of this Numeric. More...
     
    virtual Numeric::Ptr asin (const DynamicContext *context) const =0
     Returns the asin of this Numeric. More...
     
    virtual Numeric::Ptr acos (const DynamicContext *context) const =0
     Returns the acos of this Numeric. More...
     
    virtual Numeric::Ptr atan (const DynamicContext *context) const =0
     Returns the atan of this Numeric. More...
     
    virtual Numeric::Ptr log (const DynamicContext *context) const =0
     Returns the ln of this Numeric. More...
     
    virtual Numeric::Ptr exp (const DynamicContext *context) const =0
     Returns the exp of this Numeric. More...
     
    virtual bool isZero () const =0
     Does this Numeric have value 0? More...
     
    virtual bool isNegative () const =0
     Is this Numeric negative? More...
     
    virtual bool isPositive () const =0
     Is this Numeric positive? More...
     
    virtual bool isNaN () const
     
    virtual bool isInfinite () const
     
    virtual XMLInt32 treatAsCodepoint (const DynamicContext *context) const =0
     Treat this decimal (must be integer) as a codepoint. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    virtual const MAPM & asMAPM () const =0
     
    virtual State getState () const =0
     
    - Public Member Functions inherited from Numeric
    virtual bool isNumericValue () const
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const
     
    virtual bool lessThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is less than other, false otherwise. More...
     
    virtual bool greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is greater than other, false otherwise. More...
     
    virtual int compare (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual Numeric::Ptr power (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is this raised to the power of other. More...
     
    virtual bool isInteger () const
     
    virtual double asDouble () const
     
    virtual int asInt () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Member Functions inherited from Numeric
    static void checkFloatLimits (Numeric::State &state, MAPM &value)
     
    static void checkDoubleLimits (Numeric::State &state, MAPM &value)
     
    static const XMLCh * asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context)
     
    static const XMLCh * asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context)
     
    - Static Public Attributes inherited from Numeric
    static const XMLCh NaN_string []
     
    static const XMLCh NAN_string []
     
    static const XMLCh INF_string []
     
    static const XMLCh NegINF_string []
     
    static const XMLCh NegZero_string []
     
    static const XMLCh PosZero_string []
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from Numeric
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    const XMLCh * asDecimalString (int significantDigits, const StaticContext *context) const
     
    const XMLCh * asDoubleString (int significantDigits, const StaticContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual Numeric::Ptr ATDecimalOrDerived::abs ( const DynamicContext context) const
    pure virtual

    Returns the absolute value of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::acos ( const DynamicContext context) const
    pure virtual

    Returns the acos of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::add ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the sum of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::asin ( const DynamicContext context) const
    pure virtual

    Returns the asin of this Numeric.

    Implements Numeric.

    virtual const MAPM& ATDecimalOrDerived::asMAPM ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDecimalOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::atan ( const DynamicContext context) const
    pure virtual

    Returns the atan of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::ceiling ( const DynamicContext context) const
    pure virtual

    Returns the ceiling of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::cos ( const DynamicContext context) const
    pure virtual

    Returns the cosinus of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::divide ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the quotient of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::exp ( const DynamicContext context) const
    pure virtual

    Returns the exp of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::floor ( const DynamicContext context) const
    pure virtual

    Returns the floor of this Numeric.

    Implements Numeric.

    virtual AnyAtomicType::AtomicObjectType ATDecimalOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDecimalOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements Numeric.

    virtual State ATDecimalOrDerived::getState ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDecimalOrDerived::getTypeName ( ) const
    pure virtual

    Implements Numeric.

    virtual const XMLCh* ATDecimalOrDerived::getTypeURI ( ) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::invert ( const DynamicContext context) const
    pure virtual

    Returns the Additive inverse of this Numeric.

    Implements Numeric.

    virtual bool ATDecimalOrDerived::isInfinite ( ) const
    inlinevirtual

    Implements Numeric.

    virtual bool ATDecimalOrDerived::isNaN ( ) const
    inlinevirtual

    Implements Numeric.

    virtual bool ATDecimalOrDerived::isNegative ( ) const
    pure virtual

    Is this Numeric negative?

    Implements Numeric.

    virtual bool ATDecimalOrDerived::isPositive ( ) const
    pure virtual

    Is this Numeric positive?

    Implements Numeric.

    virtual bool ATDecimalOrDerived::isZero ( ) const
    pure virtual

    Does this Numeric have value 0?

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::log ( const DynamicContext context) const
    pure virtual

    Returns the ln of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::mod ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns the arithmetic product of its operands as a Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::multiply ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the product of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
    const DynamicContext context 
    ) const
    pure virtual

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::round ( const DynamicContext context) const
    pure virtual

    Rounds this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
    const DynamicContext context 
    ) const
    pure virtual

    Rounds this Numeric to the given precision, and rounds a half to even.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::sin ( const DynamicContext context) const
    pure virtual

    Returns the sinus of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::sqrt ( const DynamicContext context) const
    pure virtual

    Returns the square root of this Numeric.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::subtract ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the difference of this and other.

    Implements Numeric.

    virtual Numeric::Ptr ATDecimalOrDerived::tan ( const DynamicContext context) const
    pure virtual

    Returns the tan of this Numeric.

    Implements Numeric.

    virtual XMLInt32 ATDecimalOrDerived::treatAsCodepoint ( const DynamicContext context) const
    pure virtual

    Treat this decimal (must be integer) as a codepoint.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classStackFrame-members.html0000644001725400016040000001562313273140074020223 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StackFrame Member List

    This is the complete list of members for StackFrame, including all inherited members.

    context_StackFrameprotected
    contextItem_StackFrameprotected
    contextPosition_StackFrameprotected
    contextSize_StackFrameprotected
    defaultElementNS_StackFrameprotected
    getASTNode() const =0StackFramepure virtual
    getLocationInfo() const StackFrameinline
    getPreviousFrame() const StackFrameinline
    getQueryPlan() const =0StackFramepure virtual
    getTupleNode() const =0StackFramepure virtual
    location_StackFrameprotected
    nsResolver_StackFrameprotected
    prev_StackFrameprotected
    query(const XMLCh *query) const StackFramevirtual
    query(const XMLCh *query, EventHandler *events) const StackFramevirtual
    StackFrame(const LocationInfo *location, DynamicContext *context)StackFrameprotected
    variables_StackFrameprotected
    ~StackFrame()StackFrameinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_46.map0000644001725400016040000000035213273140077016466 00000000000000 XQilla-2.3.4/docs/simple-api/URLInputSource_8hpp__incl.map0000644001725400016040000000050713273140076020301 00000000000000 XQilla-2.3.4/docs/simple-api/classUpdateFactory.html0000644001725400016040000010655513273140077017335 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    UpdateFactory Class Referenceabstract

    #include <UpdateFactory.hpp>

    Inheritance diagram for UpdateFactory:

    Public Member Functions

    virtual ~UpdateFactory ()
     
    virtual void applyUpdates (const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)
     
    virtual void checkUpdates (const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)
     
    virtual void applyPut (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertInto (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertAttributes (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyReplaceValue (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyRename (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyDelete (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertBefore (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertAfter (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertAsFirst (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyInsertAsLast (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyReplaceNode (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyReplaceAttribute (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void applyReplaceElementContent (const PendingUpdate &update, DynamicContext *context)=0
     
    virtual void completeUpdate (DynamicContext *context)=0
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Protected Attributes

    DocumentCache::ValidationMode valMode_
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual UpdateFactory::~UpdateFactory ( )
    inlinevirtual

    Member Function Documentation

    virtual void UpdateFactory::applyDelete ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertAfter ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertAsFirst ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertAsLast ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertAttributes ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertBefore ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyInsertInto ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyPut ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyRename ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyReplaceAttribute ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyReplaceElementContent ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyReplaceNode ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyReplaceValue ( const PendingUpdate &  update,
    DynamicContext context 
    )
    pure virtual
    virtual void UpdateFactory::applyUpdates ( const PendingUpdateList &  pul,
    DynamicContext context,
    DocumentCache::ValidationMode  valMode 
    )
    virtual
    virtual void UpdateFactory::checkUpdates ( const PendingUpdateList &  pul,
    DynamicContext context,
    DocumentCache::ValidationMode  valMode 
    )
    inlinevirtual
    virtual void UpdateFactory::completeUpdate ( DynamicContext context)
    pure virtual

    Member Data Documentation

    DocumentCache::ValidationMode UpdateFactory::valMode_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classQueryPathTreeFilter__inherit__graph.map0000644001725400016040000000044113273140076023467 00000000000000 XQilla-2.3.4/docs/simple-api/classNumeric__inherit__graph.md50000644001725400016040000000004013273140074021062 0000000000000086e0004241144da5bde55071b7791c20XQilla-2.3.4/docs/simple-api/QueryPathTreeFilter_8hpp_source.html0000644001725400016040000006501513273140073021753 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    QueryPathTreeFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _QUERYPATHTREEFILTER_HPP
    21 #define _QUERYPATHTREEFILTER_HPP
    22 
    23 #include <vector>
    24 
    26 
    27 #include <xercesc/framework/XMLBuffer.hpp>
    28 
    29 class QueryPathNode;
    30 typedef std::vector<const QueryPathNode *> QPNVector;
    31 
    32 class XQILLA_API QueryPathTreeFilter : public EventFilter
    33 {
    34 public:
    35  QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next);
    36  QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next);
    37  virtual ~QueryPathTreeFilter();
    38 
    39  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
    40  virtual void endDocumentEvent();
    41  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
    42  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
    43  const XMLCh *typeURI, const XMLCh *typeName);
    44  virtual void piEvent(const XMLCh *target, const XMLCh *value);
    45  virtual void textEvent(const XMLCh *value);
    46  virtual void textEvent(const XMLCh *chars, unsigned int length);
    47  virtual void commentEvent(const XMLCh *value);
    48  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    49  const XMLCh *typeURI, const XMLCh *typeName);
    50  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
    51 
    52 protected:
    53  struct StackEntry {
    54  StackEntry() : matched(false), nonElementChildren(false), attrChildren(false), children() {}
    55 
    56  void addNode(const QueryPathNode *isn);
    57  void addChildren(const QueryPathNode *isn);
    58 
    59  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix;
    60  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri;
    61  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname;
    62 
    63  bool matched;
    64 
    68  };
    69 
    70  typedef std::vector<StackEntry*> FilterStack;
    71 
    72  void checkAncestors(FilterStack::reverse_iterator s);
    73 
    75 };
    76 
    77 #endif
    std::vector< const QueryPathNode * > QPNVector
    Definition: QueryPathTreeFilter.hpp:29
    Definition: QueryPathTreeFilter.hpp:32
    xercesc::XMLBuffer localname
    Definition: QueryPathTreeFilter.hpp:61
    Definition: EventHandler.hpp:67
    virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    Handles the start of an element node as an event.
    Definition: EventHandler.hpp:95
    bool nonElementChildren
    Definition: QueryPathTreeFilter.hpp:65
    Definition: EventHandler.hpp:29
    Definition: QueryPathTreeFilter.hpp:53
    bool attrChildren
    Definition: QueryPathTreeFilter.hpp:66
    virtual void endDocumentEvent()
    Handles a document node as an event.
    Definition: EventHandler.hpp:90
    virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    Handles a namespace binding as an event.
    Definition: EventHandler.hpp:132
    FilterStack stack_
    Definition: QueryPathTreeFilter.hpp:74
    virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    Handles a document node as an event.
    Definition: EventHandler.hpp:85
    virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an attribute node as an event.
    Definition: EventHandler.hpp:126
    virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
    Handles the end of an element node as an event.
    Definition: EventHandler.hpp:100
    virtual void piEvent(const XMLCh *target, const XMLCh *value)
    Handles a processing instruction node as an event.
    Definition: EventHandler.hpp:106
    StackEntry()
    Definition: QueryPathTreeFilter.hpp:54
    virtual void commentEvent(const XMLCh *value)
    Handles a comment node as an event.
    Definition: EventHandler.hpp:121
    xercesc::XMLBuffer prefix
    Definition: QueryPathTreeFilter.hpp:59
    std::vector< StackEntry * > FilterStack
    Definition: QueryPathTreeFilter.hpp:70
    QPNVector children
    Definition: QueryPathTreeFilter.hpp:67
    virtual void textEvent(const XMLCh *value)
    Handles a text node as an event.
    Definition: EventHandler.hpp:111
    bool matched
    Definition: QueryPathTreeFilter.hpp:63
    xercesc::XMLBuffer uri
    Definition: QueryPathTreeFilter.hpp:60
    XQilla-2.3.4/docs/simple-api/classVariableTypeStore.html0000644001725400016040000006047513273140077020167 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableTypeStore Class Referenceabstract

    This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. More...

    #include <VariableTypeStore.hpp>

    Inheritance diagram for VariableTypeStore:

    Public Member Functions

    virtual ~VariableTypeStore ()
     default destructor More...
     
    virtual void clear ()=0
     Clears all variable values and added scopes from the store. More...
     
    virtual void addLocalScope ()=0
     Adds a new local scope to the store. More...
     
    virtual void addLogicalBlockScope ()=0
     Adds a new logical block scope to the store. More...
     
    virtual void removeScope ()=0
     Removes the top level scope from the store. More...
     
    virtual void declareGlobalVar (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src, XQGlobalVariable *global)=0
     Declares and/or sets a variable in the global scope. More...
     
    virtual const StaticAnalysisgetGlobalVar (const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0
     Gets a variable from the global scope. More...
     
    virtual void declareVar (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src)=0
     Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made) More...
     
    virtual const StaticAnalysisgetVar (const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0
     Looks up the value of a variable in the current scope, using ident as an qname. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables.

    Constructor & Destructor Documentation

    virtual VariableTypeStore::~VariableTypeStore ( )
    inlinevirtual

    default destructor

    Member Function Documentation

    virtual void VariableTypeStore::addLocalScope ( )
    pure virtual

    Adds a new local scope to the store.

    virtual void VariableTypeStore::addLogicalBlockScope ( )
    pure virtual

    Adds a new logical block scope to the store.

    virtual void VariableTypeStore::clear ( )
    pure virtual

    Clears all variable values and added scopes from the store.

    virtual void VariableTypeStore::declareGlobalVar ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    const StaticAnalysis src,
    XQGlobalVariable *  global 
    )
    pure virtual

    Declares and/or sets a variable in the global scope.

    virtual void VariableTypeStore::declareVar ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    const StaticAnalysis src 
    )
    pure virtual

    Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made)

    virtual const StaticAnalysis* VariableTypeStore::getGlobalVar ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    XQGlobalVariable **  global = 0 
    ) const
    pure virtual

    Gets a variable from the global scope.

    virtual const StaticAnalysis* VariableTypeStore::getVar ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    XQGlobalVariable **  global = 0 
    ) const
    pure virtual

    Looks up the value of a variable in the current scope, using ident as an qname.

    Returns a boolean (true if successful), and the SequenceType value of the variable

    virtual void VariableTypeStore::removeScope ( )
    pure virtual

    Removes the top level scope from the store.

    To be called at the end of methods to implement scoping.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/Timezone_8hpp__incl.png0000644001725400016040000030507413273140076017246 00000000000000PNG  IHDRU2bKGD IDATxw<l3;P2ЖHwZ[Q( * J eUv}}]EQ x ???v)0=H a2YYY@?pwL`    }ѣ?^?|Ç#"" ޿_RR@0)S<}Aʍ7bAQ0=`D\\\\\\tvv""((W...`H0rSSS쵩7oV\9|P;;ٳgbo H ,X`'DB4vԩyܸq@ `퇇\rܹ>>>looommVX`W~/_Ēoܸr֭O>_޽{---|i& GGǰ0m1c X&7@}222AKII9;;E`b<<<yZhQyyy|y[hh-[]n:ӧVΝw.;>Ă(10,Y @褼|},EDD?~L`؁_?mZ[["@[۷o_"X)X FZ1cdddedecJpqO3, `kl-*.;իvA88$%G ˋ qp20"LhфWZZ:+./)/.ϯkIIV`(c{F Eyyp &?B[[Z[[ŶԼ [ yyaYYaaQ) +Ȟ?R("l@PF9`1Q( ߁pFDDd0ԔԔ}XTTW\\M䔗7(*-- (( ("!!@!AIII# '7ʈ*mmIͭǧO"556Ql#F"Z MȠP3fjjjj/䊊ܪܪo*Rjk[d;V8VQSS3r$_>08z$DD|{:=<<{xY/%5t=~񡡡m޼6+N֮Ck%˫~3;;rrjF;srrseU]]DAFrA,/TQWTegBZ&tI{2یȇJJo݊gcc]`Æh$?LkkףGnE7NlbnBYa (X.S[URR2`Ѩhw0֮7o2^CP&OV={̙Z""#˗RodHJ^n'QPﳽcc-sBw7:, jۻ!'' KK 2M  &Drdgϒ߽$)ӦΚ=c7fd;6<<[[[jzٳDZoz_r?OY,1pq*--HEъ꼼ꜜ6AFVRUQWV2B K?յikK/^.*:rkq ='gcNJojc懡##޽I\\66MCC$ kA,#,(!)쬒{6ijJ1I?Aqqyz6Bc j/RVxDHpp;f̘S8Ǐ}}cIacc@*(wannUaa-HfeeǨ+)%9 ! i${3gj|ekkו+Qcƌ޷oYڌap0D"ی7kiIXaxa>J$)cl[ 6kL$98ؔDUU%ƨJI qSA=7bܹ:}L#O~>v%@޸q5Sm?=KSGak;qj#8V07*=5˫FQtHnyy1mmc54$yX <|mm'XTLLն{̎`cSSz^۱]VVZk֘L wPYS^[UЎ ?6e-5vر\\ =~oޤr[[sr2}mlrZ3T/ mmi''ua#&.=-".##8t}a޼YQ4e哭,hj8yۼI-u1r#1'͛tAA+ W2bT{16F#;V8-!˅w|ZY2DzeA(~>zˁs.c"TW7߿7{\uLijήʯ_+rrۻYXXdd %c45%ee`?  񉎋WVsr2YxTY+,uu}pѣf=nҋ7nD|VM /X7*<EKJ~۷d  I8fְ%eWNlbn7kkhH:X[[=IׯӅG._>ijc&J6e^^^UA`ggUPYA+ S00QLJyod,m񰬬uUFL1<SWZ^002RVoљ/_JjjZǶ1/AF/Ȁx+ LDDFe]]yzF˟?o+//BP?L[[wPPwtnnɬYll0)LUU͙YYYY噙( hiIikKkiIikKA `)*r%ٳd11~ivv1%xuunn.ԟsC#`|óee'-_>y(Z[+2322I$ ?mmP^^M BNN1cF;;88Re:D|9)S/\X:J_Z_؀xVVuMg/KMm(@g!.3weolnmCO͛i~tf\!aee T@w7);"#,=4#۷J"˥)'(:4`d!+7w!!_TU%֭px"vr%%Qj5!azO ;:Qk$gt0#˥ l% CPiiի JJ۷Ϙ3g??ۻ}Y w9_;wYv4Eš3>`ZZ H&10P00ёZ?0TT4]aMC$/zZ˗Se1|? v֟WdeeL 3"kEbbU('L*qr۱⣶oh3?A=Jtu}2n⣨8nBA߿UT]r#@ iiii%ii%iiͬ, "::2::2jjJxh?O̕+۶X|2?D{۱3}ϞYCx,{7ɓϜl66kNwPUU_trqkiIM 7f v L Eѐ/'NԴ^mi9??7{ihh_/%E;kkPyk{(7LX/TW7'&a3'*;FY%&ed=F22Vegg]6]0zo3n݊HSSa9 ZG!3 DPXZƪ(-e`/,%f0`>ǎ<{ll6viYXXw<=2s~^:j[ۉW BJYYcr└⌌2$ +;~ r#GR`&D"/7||{βѧ]_{.Z4̙%gQ9?SSz^ܝ;q--VVZ&x~Vb&)(1S{hpX8 wz''[-hWE ]}V41A70]WdJJ׃˗ĢBl:lՠ UA@uuBBXYi>`J{gNoZZɃ.zzr4aARppgׯؤzCH0KIbb!6SM9q&L?իW9wVCC=tXq6 `cXBׯӅ/z1=ݤ/_J ںy'NT4Iq$Eu1T?yZ0_+7o~PXX}utaek{bde;9d]]DAzqp (.:; s_?]MMMɔ\l //ĉ }0,!(׮_:aܥKˤiGγrrt葡|^7eʉ`aa7 ,o*}}yggYadhh+.ML,g< ?(ldNg= HvtIK+yt㰭eeu>3B{EKKx5D(-##|d{~߰>;;+&LiZϿr%5SgibC,&)=yQ U 擄+ GlhiI/  ).^faqQ"*888h)a=|s# 忟,/51!Ν8xvvyƻLSR;(l!!>CC%p^h?M8`Le 7\\7]3.M=U``8 Rtq͛MSpG&S23 ;:cLjl"(%u@ӧ;</,W\\?scc7do>gHAXov;aBA߿UPYhٲI<>1mVVZ˗O&H:::Yx7"YQQmddND׸.2 ` Nxeo?ĉ츝|+oН "Ç1G=@tҀ)lRbmm'Oךuw s߽ϯ=H\RUWDGaG,\ ϿzĢ+ %K cHH(~6CH7+ 0pU|JKnZehc$ s22k>0ݿ'^=: ++˵kK`aut²²EDFN:BTe^ 5NN>|ol77K6o`Edggjw@QBA^uuT BBBAK߿~,PRs MqQx h ?@Mv{8sLd7xOO 2E=|8u~8ʢ##cUmm_߿>v}Out*h ?@(^wNN&qbоukk|#܉cee7qC7 IDATѣ p KDd@JH( =y򕬬 PۖL0w;9ݾzŋv S#GC~~>68::Geaa9uTϕ'--jkk?~{{]ƍ7rH}}'NH$jEŘ^H%)''[(޾a="Kpr= 9O6Um탛7? "0oUV6\]QIA$"[pp3s{ݻϟsoaaA]] /5>y޽{ͫD{  ?~'ɹ/_[xz?}Z[[ N>yp66z_VVFvЫlko'uĖ N$[X@Qbaa5jcee֖֖ޱ ;eڪU>FFs挛1C u>_Wo sljA$L~f8OO߽F{?󕕕Qy1̙8bĈ>R7JOO QQf %//OI(N6mڴi?]"""zvMM;;;jvSII,uuuQQ8.?Mey2e̙Z̚)O22;V҉w,qw;voUUkccccc3{njЀr[[Lz*ߤI>| H^^- E_|3bqq'Obkkk,YHsNQQQ;wEQUU>yݻw8 ---...yyw :m4EUUU9{G==>o111?>~'Bccʕ+$%%wى~}UUѣG>}{xXXX=<v쥄Ovv̎{>wppXreUUXBB^^^Ϟ=xꕔ_KK ''ի߿ HMM ӧ-ZTRRw^EkiiFdɒ%---^^^յqqqyzzVVV EQ "//兢544<`򿤤$to̙>| EQ{{{33tMMÇc/^֭[766"R[['811޽c3 Fg'͛*)푒ncqn\]]+q_ew,L̙sqΜ򳿱QJJJ[[EPиsN~ FEER-FVVVbtttPE$%%EQu^^^CCǹs)Jkk+Luuu(&''#@ $RϞ=SRRz?>}$,,ܻAz@[6WV#%i;.? ~Oqqܹ+=4.ozKVV+::NN\+++==;w`ڈDѣخ[ "ȑ#AѣGGDDKIIM:5&&O_>$H,,,zzzUU՟=~drOJJJ=*ƌ1=QOZbиr>=jYYӧ_7wt]] ߭/|ux55νٰLEE}^v|ǎII/_!++k:;;,Yk׮ׯc߾}kee5P[ccc||/P( NNN "ɏ=pB۾}Gي7fϞs+R^^mXKLLcAA$/{{#G8ioo?}tϓ$S^% x?0x{hkKmh gϾ޸ьQ(իWoڴ) <<˗^z׮]UUUo߾3 Ayu^pkqqqzz/faa|iKK @WLLLMM=[lY^^ޏci}VUUGEE-Xh`%`޽rʕA>~'pppn޼(33?СC555fffo߾{ĉ%%%{iԒG|XXXbxISS/]9v쥮+Rx88 B9w 葓S)-=00/گW7xs pyyy>>ɓ'#{AAAiiׯٍ=z֬Y=H$a[ZZG-$$ގR~_?zHQQSUU588@ kڵB(**ٳxz1"--moo{Աc|_TT~sCCÊ+$$$mֳGnkk۱c&Ʊc:::gs_mm-g Cu堠 j0xx;0ѣ˽ݺ?661?V<~m[W_ΜYbkkw8o{v_V74EhhhP!^$THG#MM!!_G͞=nR IF` y+1lsC;xBRR۹NP]6rɓ'GDD`?GBB:^^^, caaUSS9uԽ{GusGZ*DPbGz*/o Hdd$/^:8ܒ>vMGGP(@i0wA˖M:~|J ._sp"''w, {XXvjIYmkIP!0 UU՞ʋ4[q,a5#Nuu)IOܐ`g7i:u{3g0r Çm6L;:aENNv\55$n !%O~ȉ[Гu޿3&NԴjժC999!ry???AAAmvvvw>< ˻wxxxf̘Ν4iRjj5߼yh"CBB/_.$$"6XX~~qׯ0AF p KKo߶-H$o>̆ ,Ӎ%%% `UUU+++aaa:::f􌠴&&&(tRWWןݮc!CSSR?`S]]vZv1O%:/cD"ی+nJIm:pbt07|(z» Boܱ㯶YBBׯ߿Qy=yD]]˗?@ I55-E0Bwt&**I.\t05vv34gЬh  +rL-ggcPc")w^v s%ijJPqٳ? 666c,fggɓ/^d?.''7B$T#cUR!_-_jkkˣ,XPTT}v.\Z\\neeF,--V^s׭[׻ɡCwF:~.66V onWUؿC`w$8:<|^OOp~ۃsC!BZZ$99gرc[l?~<++EN>]QQo#666/\\\ئJmmmI&!f͚iӦ/TG{{+6"U 3Wo}G_[YTM \VttV(Xˌ :yY,YAǏӢa"??_YY~/2&j54&HuuuQQQT@ So܈R__d,m6; HKK͒g6ISVָb!ށk---< @Xu[֭+''dlkk˅wt8pܱtgeeSP&&M NՕQP;Sk׮šMTT(_C ˴i7}ډ!|^]݂whBmm%׻#--w8H$kkںbi4`hj$.[6iݺiN`oF盘7C$2[KKP }߾04MMh& ++%5\~9@˗Oq3K|)>̚5w~~PF$nr$7ޱ0U|gFN|t*u?YHСyNqq}bbaRRч_+*xytueMLTU45XYYIV6޸L@CJIIY V ;Wo;&>}iSSZ#72|XX־}O[[vrt4b1ܘؼv>>ҷ`DGν&o8y*󭦃ohm;2''{PЦ#8 /\sށ0u""vΚuQEEҥeT I~Õ+᪪'N,ӓbEqqy?-&ohddll<jR0 utnAHoO` !"dOFF$$hI;ܿbjw,$88QsDȗ/G~Pzaa}Occs.;|x /uۧ:^TILQTD/\x?n<&s qxOgutdbcs,vDTt$ޱ0OϞ=Ti]GOJ}e}իeD.ɍ΍/ )R*&&* 8%_'$.X{𠵘l o(bsl.w,wF͛Q89feUpOg'ujgܹ)ybM;%8::7&&7=C__60|yжu5S98h 1V &)yz: Mlp5x4=Jܱa`ɓW_֮KLIK+^hL㻺%10&&7<'W1nnA[ƏgɲA$zz: Z47KKBCwrssPFEĸ!!kn8wݝ;'N,;V=Zł ! NSEg55-{rtde͐1z3..Swcc_Vܣtwೠͺ4^jeuŋt;##IFFÔ={fQq9#ۻ?~ ˊVVehdaaj*) d"D͛gϾUQ;~?f--]_o#of89?5*BqqY''{gӮ sI;gK.PЧO?sp7Fn]GO鈈mmݲBjCuQʷov=dZӝ;2 [0/HOHK(z׷}x{G>:-͝ΩISSnߎ14T:~|={nRbb!X0#g17SPP?ؓ'_tNOO cNMM'=ztޱ־}O~||ށ0:ʹ>~ӧmlm hQ ]]W;8Lqu3dGkk[ ²ó:DDFNhnna0UT48**iLi׮gGEego%"2ǎ = &&'->ݹܩ IDATk{l#Ds'7G,% !)ii"# #cfff) 0}JK ^b)W1*s.-[PXh…z۷;n{3'}bb\E][ic 񊄞;s##s>|Z],&?}S1 [5szS66VY̫;pHkB->|]3F(=|Toߓ od#'*<<4ޡ~ EQc^zxq1蜥K=<`hw,4IPTC̆ttO?gNz8)).F$Μy-, ͭZnMM˥K5LfΜKGܻw PZ0qW gϟDEgEEFF'[ UU58g ' zd2%+<,,+,,gp>_Сt3fO>V2kpdjRSK/]`d %-& 㳚]Lll޾}O˛tf!\""gGF~km풕27װԀF`L%TMMk}΋̙sIP5xB'O2BA/qqq<}MϞ%o꟔tHLVU?w'R||Axx_jGL6RL NUܩouqDZw0x?槤o6v׷ _b33OȜ9Fy0mȽ "7֮m;(Lս|r?/R)t]a 7n|x:=ؼ$6i"ޱ)ٳo޽АGé!`TMMO==#_Hh@\ ꥤ|x1TMm u܄?&d ;wޜospݸw f۶Y ~"-! 4..oB=wGdmPҳLݻlδiPMZ#(w?~$e{*j>xee1cAA34Q᱂2-))Wˋˠ .^y Ö/Rύsׯuv,-<pa /'L8dɍw?64 mϞY+WNٸ~||7"qqyy!{wV4:Zg;-sl=K66>wDLl(۷23]|hw`C^'t }U>_VY Õ}aOV>܂Ww hQZw F?"b֭Kϯ;(5wx/YY||V >>rw``X=EE>  wC NNpg_Guu۷'2 >=U 3fL۶mixV{ֶw/<К5pW,6-LHxphYDɓy7oR3sRW$ܹM{Sf>fΝ\9?ZT[.++w !5Ǐ-٥{Piop` ai-//D" BQ_Cĝ;5Q?bcc13HHp$M%]Yliy4qLc#0 vvYZګٍWՑjjG;̌/VڿNN>{ qՓ'%%%% ^յb!ƆD1mڔ|O!!n2o_ݸǂrk-_w.,"hh$r?Zyeb$BOOח)f#&&jpg!v=c~R;Db==h< A?71& u1)) *]+@ UׯZX FQ1&PUVV[Ç~7?)#&w19jjƪp!'KPϟSJ:$VM훎NVbh/ܹVJJ˗|FLMg^`mPHyEuA\9kƌig>€bx-@vH$eeMN⋋ 7 3(׊NZZвc0s1_tefgfgdXbٳ% @nn-Gs~ H\1Q|[Ssҥp! /\`:".οc޹˖ykfvrΜC~ka9c~4D"Ƭ֙ }2P[ނ RS[ގz1JJb_a?ƲjFjwGtts1x B" 7A(eժBB<ࢨ(jgŏ{YZ?w~EW&0 >4{o"tu¯ }ܳ Fwu@BQ/=ݵ,04bڴ)?04 ߱JF6@7ed]{@Gs~L:4D0Gӧ54$vK\cYMM i<0=/Dpp𖔔XJKKG~)%%ekki:s֬Ys=zФONF\sϝm{{[Z=Q?&01񩫫Y# 0/mrss988HJw!Ez\^^^YYkddTUUAA<\PPE\\|ŋ/>qD@@L%S```AA HAADMMҥKdi89Y T T ڢڢ'x}*,,Lmٲe'=߁ (55u=u ^{cGҢEGEEwϞwT^aᇶ6,r[_?xFP]ݣǏ߃;MrwO;Etvy>;m2W$$$:Dڢ?CBB@eeeoo/p-~1!QRRjnn&= yH$z\]]ىFûBOOH| ˷o߈Dbqq1A#TTT$m =U,|X=\@@[YY?V",*t;EEwVRڿjթ2^}80;&Ȯ]{-)w/ pq\eÆyp6WץIIϮ]{MGR[[1g`eerrr={6icoo/ozQQ/yyyI!BѣC'Okjj,[lT[)))CCC#ղ900 //ORYYYYy%jycbDDDJKK gTii9sHР)SشeeH_vtVT|}kEŗk._~YYYETTDO$wT //;de7 NAt鉋>bb|kEFc0s}j  ((̘1mƌiDbQqp 46v?34D$ 9 Oa<^^&]EJJ`ŊYN囙iPmsε{{{ϻzxx n" IDAT Ϝ9344tƍ㜄/""ښ@GGGLLlԞRRR===>|x׮]gF"ׯ]8;;{BBwSSLjj* n+%%@H迟555eeeSSSǯ,X@z0}t==ѿDP}}}&&&}}}˗/ c~}LMM>}:Oqqgmm՞={ؘk|77tu[?}jmkkSFZMF͘1MJJ`iSIu)S>jrƼFפ<-͵͛/ϝwrsңGF3ʯ[Tlyjjj["A ̣W;:;[[;u**)9mƌiӧOWʕ'\=<0 U HYYH5"➡ #&SSs挑;_gccMM )&')9URR`tӧ D!!kzzFn!H$ ~EmJV{Qݻ- w`ll,ģwu:Sy͗/]8 VV ӧ'!1UX'P77{o\aIcхºpBCo<rrr`H\\#7MMMMMMHIu!ӤfayB!Gƍ7AAo߸fݺ9pgD"DEDE&$ --Iaccϝ55m|hn"@4m))ii))ii3IK s1񹍍''+Yh޽G_m8,3iii<_UUu)MMr>>?M0h4JFFPFfUU ; ;߯ic ))aEEIɩPí[oڰ B[Oje5ĉ\ss-VV|; H\\|ŋ/>qi2 S> aa^aaE@ 67wյWW~RUZPPISQQDMMBMM|L yyaF}`)Pŋ-9}Twwξpu֜җ8SXXXHH IIxROɚ5kC:d``t_aaa .,**3Fnn??c "5($$s΁17R5UppXt{pYYPZvOe "od35=陖𴴴t) 4ÇpE< "#6l ?}DzLZ~ܲe A SӂWDDw''ɘ GEE͟?dxiQܹSRR~zgggsݺufڴiֿn0*)ó񄚚aae}h4JYYl\immi9p e#*;+499dpyxAhTGG3;`0F"Gny鱒Rss3q^^Fuu5AeeeD"H$qqq|H$nذw+((W&!!7y D"'(HLMMs#^ (55?!UU-))E{9kוk^bH~{ p8|ffrGNڲE̙6-;eUWWgXe}}URRy''ի322TTTKJJ~wࠆuu135ϼp?g# \mi Au}qqݓJJzz zzpp0*eݹS wmRp!A(H$?~Ŋ/{^xAڎFGheeq9s d.%%޿?f1`: "ñtk**$$8~VV< wL?W.U|̌}%11}; |Çk׮̱n:2SSӳg$]]]7o[njii{I{~}vymllfhCaa||Gdϙsh¦N3%P}i<gg}nn,X ***!!iӦ)S_=|077ٳ.]:k֬ߝ477opWWWOOO99Wtrrjoo?MMM}||p`FGەm8y2o޼ BHQ"XƈGE٭Z]KAvp𻉉^s\MDJJgZ~ď (--bܘ˄#T@ RSSI f=umvvI?Xm~Q~{ RbZK mPMرc9p>(}}Ű0pˎ^m_t(Ï?wD"V{ ,Le"fqpb0s33ݞ<񱲚\4o^]ly9>6P$'?_VNN DWW~\yd BBBQQQOZZp^<}\qqܹh"oXCkBQZ{]줹'OEC@qvA˖=/0eeQÇ{z~,,S/^xopgh 06VޝF,,a,<PDVV2;A蒷!Bdd>A:@xbP Numws4dMM]b%:;>^z6AILLam-ѻwsuMTS;`jzȑ[W  ݻС5ŋz3g .EY TBlm&%JHpϟ?g _#%/ >]]}IGsrޞ=[ɪ#h0.ugHN.:yJVG? 7KUBP(d`ڼ`tttr~D wvR!DqPs*KF6lV<<˗c=-) 8v̜ĉܥKCg:s? w;{~G\.:'/dڊ}{н Vu ]]6߾Ya0 C`dٷzu *33ʭ>ajw%aa f.3'}>#5'' 71ݾwЍ?kŋCe-v194wkn12 giAdvfɲe3&NTo^ӧ?}j; Epxg/_\q 9+ϟ8bP fnt]yyPjE]{fim /`;W:/CYYLF< ? /_JJW#QO^^7 G wH*.ON*##o##tח/묭gj vvE AAk_}[Rhgf MIs;n٢kգGo1CO0J8-R;`aAZ; B8`vUtt=) |/ {glFPfϖܰaױ~MDĽKDE)Evp5kN3bb|vv SS %MO7w@0٥6Ptw()iQfx<1,.AʕǏ 6_l&YF%(Ƚvpǁ'37! A{̜ AƶdRj/>99]pǡP~\wO(,.R9&,ak{a|RCQg8:mۖ8EHA73ӭ↓]{z£'N~w:<Εvpg!?Py4tvi)HFFpn:;XX@ Xu-"aaGG\B+f?7/hȤAt#fe1Z/8}+(WP;su5ڻ7 /;L@?RP]͡""45y* iӂ-[yxVU@QPPal w G˺"LOؾ==)əNeB& B.ZmWVKAGjl;0I~~ŜO@.] .R^``Q|[de2y̹@Ȥrܻ77tfr lU¨IwAAA˂rpa^^˦Nw?;}:gQQZZpgW̼@Ȥ-) gccqsK 8v,h_ LN.ϯ; yʅ 88X,88X,+rre<٥!!<!F/WOHp|Y?3XG簥RpK%01Q[ng?BE ?wpﵮ>qd''}Epg!'@ȿqu5x7*ʎHnp3g h10k bHm_UT|С5,,d .;p ,Gh4jYii=ڷl3g >~dg _={Vǩ$ w~7KK?X[LjGE١P6 ! YYCּ}leݒ%!WGfg0`wŘoL@MϞ,X D"Œd?p8s|_@|NNF%t!хpǡcll,88Xn,LsD`7ors埀 O(*aᅳF$W8 GH$@%%e^::rYA'N[i+ԃot<7|Y0/nn'rsMǏ߻qͅ bpg@y)*Yzu~  )kjZP?y,/]]MtUବs+`6m޽^Z~NقGvC3ܹ YY+f>]@Iqq3:rj^^OTyevv /@%pq9;?~ <ܲA]۷Mp; ?|h~ h?y^KK fYPP76v8:^22RYAiX BhiH\Css'6os15 w`:;:45g ZPn=?ϟzToCod5>@Ց`B 3ss=RR|76<ѯ͛u ?;d& P_ߕnnIT>@ &vt&$82l/GZ DH,B!)NHpb ;ʯpbFBB<2++k;,%% T(sG>mNta!ÀNX#p7$:툢_,,H F+9L^y3NUUqOew**(#*:aDĆ9s@h 44@mKKZ[cieA`?Imsؾ=q``rzU啶sus( ] P03(,wʅ ;Ý) )+޺E[KPN`@A"'NX57wP-[.({z.P,B5,,Hkk/:&9Ϟ-pb|+Wj伥KI*+ A*h11<&{{cyO~',B5h4FɓVVBCݿ_ w(r嬶P$UT|;06KKmݻvw i [RGGo|0w!3Yot< L9’ ?&EAAx߀@ vJ5yC\qq~rIBL\?2:#õI, SqIiM<}˗儷o;w1s0wr!ԧ#{Ξ0;wuu4ko諼LRMM;hv:t],ΝW6lGliB?K0D",->啶| 0y-X K$_Y`@ڊž=&ZZRI>Iw-[.I8`Flw ܾ]L1d]y^4줟p}*)`hbg'vu\7OP6FΜYvND݁AA/+t nT7dfuѢcIINDfΔm;D&SRr)sКӧmzy"{+}۶%khR4{~d 88w"1}Ǝ߽P_#͕ $?zvӧх~'c۶%+V̢z4D"-Rrc''}NN6$@ wNʃ1!sa?}:*6#㵉IDE3 a2!փ@ TptMCC{yppNqq..c>GFFweii@p0FJJ EaL#/σsŊWalƌiWP_koNցw[.Y@nǎUDW?wn x{)Sllt?rEOO@xBhkd'!:0GHBn}{ .Q؞=)11vҶ nNA)\7n:Y :v옔%N‚]-sղ{R-+ 9mh \e ݻWٳ۾fkӟ?gKuxi5tѠ/);Wj~ $2Eye1= w a`ww zFqqL7 ']<th5i˺us} l4tC0=-!DMM b7wsKs)& ?`PCC03;pzk+6:nTGrqC|||{ԍ7֬Y3|lmmf#EzJ~5 Y:0ѣF F \E64G}y4% #:`==*@ppkll<|,@ԊXH]\\\]][ZZ(({q~dBwd&A‚A Ã?V_3Qtߕ?ujo^}AlTpMqq.™3gutt>IHFFFp=H6xXYYLMM̙Oۋ9^TT@ ##:vnnnh?xŋ?F"kmَı"8NDURRyyyyceek׎ B"JJJ?g#PS~}GSSƍѽq9fk66:͙S.\FeMMMgΜ144ܻw/i۷owxgﷰ|͹sH޽kjj:5"şo'靝[l133][H$ҥKO>}hh/_?FY#B$&&V__Oz\ZZzȑ16杔?H6 o661}}Q) n,$=>> eeegϞc`all|5,;88F999iKZZ:<<<""%A/_blnnڴݻw޽ssskhh mMڵիWﷱg#}pk&Ps**DGqpՁzZ۶%P6*;w\{{7??]\\<<<CCC? _DDAggURRR/>={KΚ5+$$䏁ŏ?Blk!鱀ÇݫiooM0K>~ֆ˗/755g#ݑJIZUպyEfLc!HL=*n*?\\ ;hgDw00vޟ994Aii:yaMM<A9c“{Djj*GOk?[X?_&6b.7KnMAF)0`r=W4&WAr枞;w^a @93gJ\qOY?@ܶ277Gx応GX+O%W6𸸸Ld#=[y"GE@#;wQQ\\lx*--退nzi9S02!!ldFFG,R?Y*N/|˞=Š"d9'0M44txy ,^ 0AW9sxڣG׫or'i\rKǏ-pg@ jk9}cICQ8<@3cC 'OnTRݲ"80>$&>  qo)* CCQ?~ ؑ uwh^=BM̜)jkUU(455Ý&(}ugNݳ8 0"gO ;;kP:6dnURҸ{w̙mk$$$is*acdg>9N5h.X^H /B̑:th_tCC0)p𬠠 +*,fΜ[\t[tq"*8p?[ju#7>}RFf,p8ܢEwt͵v0*P8[ne#KXX11(rCC`,%$<ݾ͂Hk2Zz]F~~W o;Wo##U/?!`"1ӧ&Xw*//{1犉.(&egdl۶ȑudijfxÇ<<졡QQ99e^Ց9`sl++Ok0;UU-gڠ(j;sĉV\yNvH6?eG33 54u*W|[I&2Qݽ?, .\ OgÝ'.<  22߿1 aiyݻ/nzznNAAsƘYFQQ$'vqIعJ?BA¼ǎ_YoW%';f>mx6gڰׯd)8ر1vvtP */?1r@vVi\9kk?=,A<_y{8&uŊx<ƍ22lYz;aŊYwd]djKjfc6AA:;{Ϝɇ;t+jj⑑֩E.=; (-m\n|p옹Kzf̘vN{{={RIGLBH{nӧ jk?U~~Ej`s|+BӞ<87gTzv~~.X2pr9յfn4uY|;wN%+(QONNAKXOouXAW~GٵhMWď[B_cmcb236ց$҂aaO)g7##|VVIĭ[oy ]Qepga|.8p@ >LCW~GB  "vv>\dǎ$[ۅNm|c23ظq{rSS8_B%:ZB&-cn 4P@gd>zԜ,ƒ@@@0ٳd%n((hXYY֞:[[TK$_ٗ ,;lLԩ\ _Bx¾}CC1{l+*FFqgss]--MM#z%,co022BAdĀ5pHWхpgwuMLIye J-PP]yT^IIwVQ{wYg_P!ps3/>;#$7o+ݼ{woBaǔ9dAWWWa׮+煇ҥ^^<=ӼU~rrr?w>XJr@J۰a)_e۶%vv oO,.n; lpkg23;{UUqo@GEEn zdkII!o{:E<|at:7fqq)S=K ,ji8v왋xKKmYXKZZ޽%% 7ߥ X}}˂R9 ւaɓd29 20߾?O: ͟o-?-{7}`cTTڵ{G?{ IK+ ɅRR +/_~:K}Z3?;d@a-<c]XXݤIZRzx\OPa B۳'Jw|SYkٳ/@g[BBy54dCButz Acc'O48;_CII55Ya˵k1߾5z{/e,noߣwタқ7or.9qEE9lq;wڇ )]]m S]x\Jp XA!UUMs4,`Zpu~ii堳,$$yZyLw/F겷n}zSOnϟ< ?yǍSt.?0ĉpyy ;{yx+ow*$U۷?qԋ9lqkL MijBaV^^,4tz\JÇ=Ѱ Af%&DFf8oxU@UJJvnxA޸q'Sg,ZtHqdѣ;Le\@a*IH=|ISSjvv%*mr1++/_:! #h4VV:\@?|A+oEbŭvrPWttP~sѲeHTAh4޽7M: -^l~NBCAQQ6pq[Jjh))892 XA jOr+E>XQѸ~ߢEW?~,t:֭>@7 AkE޸1 ,,,#ZeY_j ֙.Zt-+f4I;..A …כ6MАCd||S|9@ IDATRssG0HUϘ|uJ$_Fɧ=Fur#u=BF,[njQqu7?Ŗvbb LP/ `_*+<99pP  OǎU7t )/p"[)ˋȊ~Ϝy rdDPP"+:D|ӧ~$-߽^GG7>||ZZr99pP BBRRSN^@gYYQc -((n!!I^ps{T[KDS8.-PKKJʰ:XALk+-FR[._^~{{AxxWHԐ7zà ܹsrrvʹ&O|: SUZzee+\pw`A0.DHԽ{gQoib2ui4(LOun xx//Ғ{ d h4Sskyq\\ ʪ!6 m֖>p8>ii'ׯ,?J9߮].\5':?˖(qVw}JJ"XAn&ݹ?WWWSG:'jmLPw…ʾB3xΏԾti֭eeE7lfi_ا$Q] !AlF:>j*KuĺH\J퇚 #͟oZ]|x2%%oSp6XAVWttPwPP!yԺ:޽▖:lOMMa') |L^8rd9FAʼnĎ_Ƞp0XA>edD׮ :F__WE.]Zj`|?Z/ #D XA&Տxx3O  ([VuX4 !A 6~` 0CQQ?ŷoV^ݟ+W秞8{(mH7AAAdddHI |6))a:.ܜ b7orm2z'!!>ٳg|nII &3b~`0TUU` [7o^uuuuuϟCE(ϲǏS: 2?xo`A;=rMkk]1dddqϥ?~`A8;;;??Ν;kF-J *((((("._s2Κ5kƌ=ׯkߛӃhll@qcEuua@ Pw~F"QƎ=v`>u[8tR)-'?\_qTĴig>DDd()튈> @DP8 q{>Ѻu+oAttt_tpJlRQa 3h2Cjk(3Xa sg#WƬ\9IAAta!11qܸqk֬2e ,1ƍQiǦPlG_Vkk˳A8vl]AxABG?lnng̿ӎ+Y[[766Nѷsݸq{l GЊmeQ#(w2~~׬ :E0HcV$++ : V^w 6jʠp_Ta?=|ܾa5 r?IK`miQv蠳@ l Phׯ[B^_BBfPˋo7oƂaAQQA h?N%n<tbvǏVV܎v>>Qee @` ؎  Dѯ^YLEs3a0px<׮AE||E3ư'ljE֞=Ao}Jx[ZZ:?CEDdز6]\\PlkTW YrptNNN_y{" //%))e}254|B$v NA`0'z\c YUSS DAqΝ=<Z[w!UĎWr<=7uN>}4\1L!&!M/5X+EEe} vXtv6VV8x0NCi*3t~ٻwW$ V[ZZaq+Wb Ar>|ݴ9.[fA$rr*=JB=`,&#6|}(9!t`-pPRRJ .e5k|3\8FVAhjjC1kMFƷŋA)Sty XaMs/qqXAU5@fU˖ݲ=BNMx||PL8|%J[Xh20'O.,(w/tTӧsv*Y=,`Ö8 87n1BjѠpE)뻆}-- Ǐ8p.7orZ@; y :EV8ICC)7ivq!##rz!!>]bw_wɩ IF ((qdee79gmoz_^t$~!DbGGEN8_0? 6O`&tۏNM-_b҉p!H?׷~qq:X1IEEy8sX!w~^jt.D$v,]zL>~L<もfB}n,(H'OR*@gյ !i*ؾ|$AP{;y[uuĠM,9բ);}ݻrrX NZp,3gٳ/Ayx>@4w : ~QQ]P&UUi%gj:Dgg333B 7es/ssV: 0EJJN8EbbIVVŚ5A64}))lQ`i_K<שS JS42: u5.^,50IE#AÓoHUA ps{Аuܹ&Ϟ+._>ԩ"՝rJDDGfo0QEE t ꗚ樨lx] Д[VώTL>L@}6 vXAP3uK^? h1g(..8g \W,g[NNԈ   ((v4 ڵ>::.`!M(4ܐHԇVYo]9wk((GDd lfltWPPP|DAP6m(}}b7XaEk+ 8‹YͿ/{}<{#ٳ=KGÝ>(=68_߸#tAAߺuVaa?A XQYو  pg;;mJ7 =~rf\ f'EjAFV^IZ[IO^m@gA…c%% :VÊFA/}EEu\8JTT݁۷m2 Tq_d~,:q<?T:rǻ|ĀO~AgXQY$)),":޽JJ' 6m|}f ^e~*..tlp! # ӢEŅ@ga+&>MbXaEYYv Д+&ʇ.5l;s{z.3ɩ2X H\\AQQݪU|ȡ9$|NJZ--y) Db;Snnղet/\XYe' }yy9{B~~'LW, >`rS@P݋1c \1DuK42q ^^LZZjyȘ1*˖Yxz UUMyVYrjj2AAI@lDVU5ijʂA)*KJ*Y n2$ee ]SU] mmG}TH:qwE3||Bw?Ȉ̜9tp..CCSH$*,;JJi4:0ѣ$IA`55..7ddD_/$:4I/rZZy#B>} 2lDtvXج#**t` uxcƨN8qbx-ɩJOz5jƌy:rÄB i--/_fm_B__XXIU|ZXhQ(oM3Ο$w|U07Wu#"2@XhZ==EA "#3tܹƠpu҇7(%% n & A[=K[ 5#͙cW"t`^iiC{;y(.\h!!)1d ۣ輀#@ծK;-Y2h,Xh Ln`0bb0xyyyxp¨Ēp Muk?<wcjjӧiONw?^=Y@: BƩ~b-XK|8BXX)zp/H_߸+W2&&#kk߿K#,xw>|AY흵^lpw8xyy߹dIg̚e8LD IDAT6իoH]|ի19;8pؤ1cT9̡/rB~N0,X[յ|R :B/?>\aTyy8aONE.Zts4?gϾrtq6 ((U !ww|΅ ϟgVT4_o :HcƨȈ{km%UV6¬gҤ'NgBݼ!qO͹:: Yt\r3 Әx_AXg0pxy{E""2Z Jڞ۵+pi[Lmtt{xcJJgL>|̬/AcNAXY!!!4b ԃsM@7unG~h[l!֖/,%K&?\JDtLLFENZ,+h0baaw }\SE Fko'ϙsijʵt44rsTKܳ$5,>x;A0AWWATT 5 ?22qƮ0e֬YcxIϮ_8Joi7OQJJTWL' }fݾ= A.\x5v& U~? TRRod ,l>cA0>&& RT*c Bne,ƌQArsbc=t 15Uq'p; :Ae vHnz͟?w SWRR-q^^K8~!ŋ LCLLTZ[I}_ q XY!++j y*fG? JPh]pVV_zuG!(QS?AF?vWGEeibw@3ht ϟJf :FR;ɼhnŮ{(99Ѻ:bz %''F"Qv8`P(̊qFA=W~ s4w`[Ȉ;w%%,J./ֺڠ` uu-@UqAZFJqwޭZe%`(+"+2235Ã3nU"'' Hmmv8 HM-ԔB c?9 6yyO;~PM.+RJ;rSW襤 zXq!XR6vHA_Ə)+P2k88=D -Ǘ5;tp"p+Rss ) ;:Wd_QQs?ŷoV^ݟ+ 8]"\ x7cQM6ҥKVFLL5TWkdeU ؿ@ٳw>DFUԙ}u}݁U_*##2**Jlf{&tSڵʎvp~~^:>X_$(gl O0ݻ/bzz ZFF{z}st?X}u}݁U[Kd͛**<b$T|ƍ؝;KI  Xʇ 6j̝_PK WVVnjjB$00PGGN_rE___TTݻwq^411RTT,;;aASR(777yyy999777 חwÇϊ044иw^Bn^~%))yituuoN"z|p0??##xN\&;;L^^lKA8J >BJJO/Gwwܹvݵko߾UPPp+VHKKiaaG}}= ]LHH@ŋKKKSRR޾}sIIIYYYΝ;y?ڜlRVVvС5kִ*;|2==Ν;ڵk/_,{|-uuC Ȕ)z PrB`RRY % ?nĀثAQqgBB1 ` A聢ΰt)mΚ>88?!MMM***ǎc>b``ߟl@@ ~D"緶h3/f0=>IOO7o  iii L&w@ 455ֵ/f Ck Hll,`QXX"++5 NNNNNN_өMQqgl~^'jj{oz?vPAҦM;xuA8̺u~7Nl+*>->N0(>X[[^^^f%$$6lؐyf#%%%Ɲ_AA3Ǝ|BHJJIJ2EEEJKK"B } wTTTx|\wSRRB7gmQWYY˃ϯFDGG~l8ܹX@ړ'axȍ`n Ʃ zcbPoʕ+{a>yAnn{;;;]v`TTԌ}&##y9\g_t:=$$qڵkpI~0 ?=*IIaEE7c3/P44z{?_vuW0q"p8{{P"H& P/} ;An߾5;v(**JNN>pezy QiJP!rTOp!!={cZY^*+3ǻ"xd,*>a]V__~IIׯoܸi޽[nݵk'Ξ={#ϟwuuSSS[dɴi饦fiiɓ&&&666FFFgΜ3@@@/\c_t Yzjkk;k֬3fxxx *rsFFܹ&'j< ϹǏS<=Sm <qO&SA v::ƃN'#N)\ѧn(z|qDQS<{k!VV.\7 pԳILJl`Clj/&QXbҩSMMm(6׮TT4zy-bsqc_;Ծ}3xΟn+)|Gfg}c_?~~^??F Ac~b]k쓓qFDKLL>͊ ?+ S^wس'HCCv)8ÇCRkkmET+TrفZZrrr@} FF#eOZv8~?II!7&-1d8 !/_f q<嘒Rh~m1* 8ؤ#%lT4OVzB? fLfgWW>Y7e 3C?~< ƾ}ŷoc]/`&_t. DRRBA*H$qj@%$ZlK{9thD| 뺸w/K“ O`&o&)) :'BC:jddDd@wﳉ*L%%wﶿy3헕5xzofkj:Cw;wڎHJbIM-7n0P^$,lhn`|S++]fefVOc- gk; ÁyTT~Nѝpc#<(aEEuɥII% ŕMQԷlz _WDP0uΉa;YM'<qʡ),,ÍI ,mޤIZ_("YII #_[;Gn|99t:cHi33uOυff177nn3́gϾHoX7S,d)S=~~~av[Y V!`Z Ç}f©45[~Ic866\ *6i?JK?|(G|&i3KaN`0C45XulCOSyyd[ޓcֵ38v,A,mm%_gj:I4|Jv>( RXXIWTF799Q%{JU1o}X&,?j' t^|BBqdAo>{3);e?~^n@nu:~|ԩg?.g0vtnᒊ%OV4ee LlUad H[)-?K;:(rrFF5Ld$V[KܰaP;khȺ?sży&[wpᵐ߆ SPSٴiOܹ&wW:n:;Np8|a!6[p55͠ I]]KBBȑB1'8L]GGV98X\\p+wiӦ)hٶ_/v M~~~>ǂg_=:B +֞::gё/(V`uc>uNKJ*-(AFo:+ -Y%223**'0pkyy/_~bi*xxAAݼeǎʦMΝk d2qX癒&MDOOݻ)SVlo]'}\Gy&ν|b(蘬E$v9tbsևn2yxFAKO; Y5 L8pzy͚; >> Xŋ,{{켽r(#-߿L,<)z9'y/1H쐑11iӔ;ZII?ANGEA-[9bժIgO 3L~4,vv>AANglv󝂂G!CUjjӿ- P c$׷dd|cn̜܍yޙcƨ>/3jǾaV||q``+]fNj_=bTtttVtTYU;}ytt^`&UUi6ǃ n?VyyrSsrFVFMLyy߼rȑ66g??|ӧ[)Ǐ?/z?E//{8ssk1׫tyP^#. )$1?j-6,9q…W;v1Ϗf)MM9W /'qSgg3ss Y9/_f_˗戈X ?|MǾBҥט%=tݍ9._#slk+۷})*o:=3ɓcp z0j G> <} A^Ȳ-W}Z̮]8MB m# FFT8}:6RnnUrrɥ &OټyHT~_`|Ahm%hSP8q (778$ucǪ\1ݹرC:7nTP߱…W1B l<C 2{ IZZpDLL>o(s7'$'Ts_ dQ)Ǐ/a''lmGaa:okjw9lY7OƍS<=whm`OlmG µM Ld0u2_aa-Ԕ37W_bD-eq/^d!rsxyltႋ y̱y3vN%oY);Uff*-hҤϟ)(7ztd>zmm6?;+B)MS)ڞ=AZVVti.qr2Hض(Jg^1YY=,: , wpaaiBB|pg3FEMM,Tvrvv%&_bb .**`ldxss5@N[[A_k847߾5]M%y{WP~N9{Tz^?'L;@j=K5ː=7 gfFDd<8gpOohhMO/gN̬ |{07WnBʒ99U66~5XO+W޺('súu~˗[9l-223$$9 `({(fw>#7oy9o{A:22*ccF׮T IIݘ+q8DKK9o!(3F%'r(-SGk={̜֭9Jȑg/^bڋƽ{W]H Ʊcaq/vqߟlnrtKuXɓTiiIA~#TT$?:/!n̓'HHg$ZcZ::>x#8~|ǏS)J߲徒ıch{Xb>eeR^k|$!7=>=xΜِ۬FRRիϟסr_o0!%>w>NƭW 77l^^(OO/fذa1L'%Cn99?~f`;7(tŐw[mTT4<>}.. s۷:6)>6(V>|֧--ݻwKH8!.7lm5==~QX,4[SaaytpϟoTѽllK Ȯ['(ѧy"UO?iwbd jBGrwߡGutwO.)tj$PQѴwFFēM/Y-[ۘݻWMfTHap…DcF5z{1EE& ^Bرbrr pH9x2LR/lYY=q/?k]Nn#L#{W߹ud-dɎؕ+AsRuu { `mrݫB t^^;v\l۶SɫW?>&}a%%?l޼r qqͲUp!q.ex@e0 t""IM|.]zq8}տwꘘ_xظq1KDFb% j^^v..Ntt۷r,ෳC`l=-3kF`@@Q;w ;@}'jWmm=ogSy]^ ;ԩ-깯陪T[6e<y(&樍ڵR޷o5-VXMMkKK72Fuu -t:^AAj-䁁ݻꤤI݈__8lݠ˗M|} 8O|ZF}=# HG mۤmmIO!ϟxg  FFXmtqrW ~NM}VCBa h4;>nld99ݻW&vuO.goaa""s(jjZ|3>8ݥ($Z?ׯQְCtPk!vp8y;<WEai-3388X a/>~3fco[[prA?7(n_540_FFzWŹzB@!9kllpP~ddcrB X4ՅENlo/X (122`AA-͟dԖf@o0/BE[ׯ_9Y:Z_8aSRRӋVPG ɹx1IGGe26v [,SS[a7- ([ׁ[ݿ~LLw%vVߕBaȼ>NNxYյ H[UꞞ)̠T74T|>31"S=r5 sppr >PkA@/#q`dZRL[{EooHP[P0 (+/ z5k$@|;F7 [|P?g;Z(auuKx 嗹y65MSS~PZڧw- *ki7j-'NlS=Tٖ.z*U@&'tllb6lX'ʲpc6>ml󫵵mwKK \mz{Ϟ[YX'^0A?ƍ-q#B kJ}[ Q-*J3Wf׷{y@-S ekQC-$XY*ppz ㏀574/ut -,VW7j]韴2YV j9`r]ݓւ;(&=ٻ?u~DDD(zܹ>lܸxj OT]+ ЀM;yrEPk6ܹcl|.*ꐄf83⮮\RIģQ{p-rݻo\ SkyY]#&&fĕQٷoYSS??~~>|||~zɼy$狮.&&& HZZZ@{nDDC544G]vuuu`dd @[[>>>?~(--?{III ASSS55˗_pab&@ jرcF"Jc sqѝ;w;wo??e˖~IYYo &&fap` bqoܽzR'UDžP 64}CH2HV77ݷ$KŋV1=C-]̂]XB1neϟ]]P /:H7)h(#VСC/^ ^g`bb8x`OObOO 7)&/ۍDfϞ ##Djkk)''VXXs/^dggkii܌ʼn%$$+!RXXa//QRBB> I0$o?~]]$%K,Y2A4| io'jjK9a``?ZX8;';8hB-@tpx[v`-JM-qp}؊e]]OGxQ~ѣiw"()-ёuuM\n33, ?^~}666+?~P^^[ή͛ċ͌zD%n F߽{GGGTQQ!//iӦbOOO+!rfggfڿyy9}?%y ϏUHHshs*+SRܡ7/`pyy_O\P+_?x{5!gܹ00DGSY̧O?|}cMGU^B-.L:#'N~EJJ vvvIIIMMMgϞ{ b]]]NJJھ}; 7NDsJKKoܸ͛7,X`O6HMVVr[RSS'@DٳQ~4}}è{ȑ{BB)8 +B3zѣBc Ha ´?/]J:EuOWUAOYPtYY=2Fn޼3C-p'," !!OK)izϿ| OssBK ߤof#@NFuD23PyO`܋c)Bp#SS?FD~;UUɝ;W::>꧐G /xa~" +m[i'8A?i++ӹsZ+)Au֯_y `}=s2$(Euu43,w`XFFvv<@N61OG޽*&(?[##1$$$wE@2;v+)-tqI򯥚ڒw{z0\thn}ak.*J]E_,$/::Ț5fsw׏#o'-+ii߷twA=HFT>>O{ւ%ׯݻw+**&$$@"cwwA 涣.1nܸ@<nh]G 66\gbr!.JQQlwm.)sL4>EŽWWƒa,sXX+h27pLLLAAɮ]={6;6$f˗ ('Ro7MYyaz''04em`p#1e“{G5cϜyx䃽{U⬄k Iiٙ""r?~  00.!S ~08WW׍7(++/]ĉS@ { GG3tfgQ__ssץKO(#3j-TǏ۷ &&Xpdo3]?""իo$kj־`33';wTTsvN@Rh,캹`08ُ&㿸SN J|ѱ~^^y ?BEEE-YUV @088hggggg788fϞf͚=?.!!}ҥE-ZwI 3E77֛7jjZLw7[roM< ssqͲ *ؘNo.%cgC)G ϟjk M4rA`opJ_GGGSS&_?~ --ٳg>>>c̖ND+Wjjj޿SQQdoo?iiišC7oLMMMIIIKK"ؿ_ULlT& iit RYѬYLPkUA|qqΝ= I8=}:z׮UII'EDLE4CZzŋPkA4  #f( 5/+U5>>^BBo};&@eeŋ766_gddJII{KxiKKrR5"Рc;+W88DAwAӿ~tvɹ9j!T"-TT"t``,&% YggM|-s('G{{ҥN)P 5]PtQQBFrVʕV1 jj>>O_?nnn~~ϟcVXX܌ʼn%$$뇏!$$#6EDP(j˖-555? ##3i핔$XxQ/"PUUI##EGǝ}YQCC: HA$j2lUwJWWNKK>v"jh\faaLK;y nn3gz9!dap8xb0.ڋ EFFΚ5Vp8O5"D//P/]4;QQя? (//Q-m~TTTĿ]D( h8$G킂\p(F˫~0]NAo'kzzёݚx >)po/HobU 7WwrZ``Z QNOOW^ݻ777ŋ022-Zih@ CobԖȎ?`pGFܺ}ɓ>?Add˗_GPQѤ}˯g3 ]dSĭz&aFqsAb$ Boܹ>|`0O>MNN"~BBB[nݺusxyy=<}x ZXDFx<̼{WC(|۾=#%崤$?aЏzGt.+kغ늨Cș/i rYY]4NL0" ѽܰki`D- QÇO"5ٷo3ПCWW ]]==h|1 ew{ٰaGxy٩u{ouu qxaaD VV8<>۷oO"5CWU5Pz-99QQޤ$5 dsRm~SHI @OT;ؓ'7ߺ[..:Xs􀉉Y'!(/j-Fŵ r>>$H0;yrzuu ZT R(q_@2?;X!!.+MP (ydjc>(-sM&&z@-^,i \\xZamCA8.Ǐ?"3'6/^,pXOokh@*C47w12CUSM&04:͝7 kbb+Py<k\/_=p`S\}=+QQ00**LMF?ݵkUU-׮ePt˅%$t?uhouwOXrW4%%?կ`0gRsÇ;119Ο>~<ٲ" bbs-,TBa,>ףYY`(YB@By(ۥM[[6%#@#.~~hXY5!Y<|cGҥIIZǟ[{WaubI õkub1gΨ333A-a,{xx`WfЀr[Z?ٿ_uEǏGL*66v_C% Qadf~NN.2`gg9;'XZ  ՖA0$$GWs22֮˅mm}|~j1iGD!O8FP~oee3|#'c``ofVdecC$ o50vs)x%qq(`+lٲKSN11fNNԬ8|[ɓ><2RSPXpX)*14\ zcUk!LڬTT4O/-Ԍ)F+<=CVD9*>}jgeePPUQzzzMixG2l楔 __rwAˆ.UUǑKR/\У%?,))-{Ac";dJ::ԕ+lyⲝ'(}夤b==y  `uu*BFK$& ¢OEUpsljX542RRJB pŽDz{1==j ml^-a`@m? ଭŶaa54 o\=<+ii8y2 ggja^@-a$~џTT4@} //痐o,0AF::URrL 4ZQQyZ`eFF9MA 353~h3FA8Cvjk45/?^yhؖ: ]]uED=z- g+h4 k}?~ʎRf-ɍ߯ >ٖ23e"׮e((\43 II)2q}'O>>x@f/3rU T3nn}je|099/v޷o5-*ۺ?"⭷ad!~~ΩlVU4 .赴t@-_pK+) **~Xv$$&&8LbȧOAAGWRrLmZQUWV@ޙ=*,_>}z+֢8! }YJ,Jݾ=p|쉀&&uuss;-%&ed{{hzA7ndy{R魰fր׮ۣ Dy3g@SJ3j! n_q񏿅YuÆEAq`ff6 εQw~2yyLdt(xÇ䝖::\]Q]ᴴO[ww<}jM18{^мyܯ^ˤ1`=~<@@M ffWqq޽6Ѐ&@XP }}ڽƁaѡe"n_}Ff[R& %Xɓ]]s)]HGrtԢ*9;'8pw˖ii֋ Rg݌M|K|| ##Qzͽ5neQt \\}hih`fW^կJ,?33# '={T^KO?nݢ7. e"!&?_ZɣPD2[p4o\ f}[{/k>.-ZZWbc nhDE 73 QP}Ƒjۍ22ϝyC-uV\[St4E&HMM,s[nn5Kve˄8Bq gr!#3}GqD2\F.7G98X45e~F Ckg)CƔ :ݶm,,۷QaEnݥO><lFV݇߸qɑ#;:pSBRbW*E MEE UHJihȌ1Ɓy:N2BK˵ūW{_@2Pׯabb8p.mLLKJ~|\ ><.v~Մv~z6OKuQ(e@3uffgP TV6ê.1nU͝+B{BHJ-/|LQ))~y 'OF~]A!5+4Լ-\s^-.*[@  |Sh!$$YW@ NuT#;- Οad--'OFܘ3s[;; Jɜ97oMKD 3;;ٳZ%g6gWW5*KN.^\xot! bH`iqggݯ_oDZ[VGm, 4{5mQ(ңGkދBȟΜy({*ON! {$azW9y{Wb{ TTĉf_ ˔02R73?CKo/,$?i$&& A,y6;a67/JI)Qm45ex㒒dp׮U==dkwߺ[!2]ÇC IDATBB̃ͨPMŶmnnɆJJՐoeߏ} 4x&%j-3aef~ٲe*mm=ZZcH7.̌3-o\-pr..p^D|iZpt^F2, ||54;R ʕ66`7]=,-}y}ܤ'͛{:ϝ{ FFfŋɈs>lfbb?ɻ~ӦzABrr(ÐoabL{Kujj3L \2@tpx,&6ȑ䝙TV6kk_q#],MuǠ3UMͯwd䡰bbs)" s}$LQsz&Bfs)qA詐U2qRRJv\9H|aˌ! AA.++\'bkw׬ > FDOr{{Ϝ9d.x]nn!*'y^hw 9**YYp kNr|Ǐ4ily3j-3df~^ZV;qqP__aܑH73, /qsQ[fl|k:4(ҥBW z٣ my#С dc '.&II{{x޽GSSلgl[F2h@ a\`c*oH3m[A7Y88XQy&;A]]:,ͪUӵLDGG^%1#|S)ӣ>L]ffQ''ܸ{􌓓6E) k􂬬"|yyٳY(١Cݸu}02һx˯Pk յIJ¥63 cՕ5ٳz"o?!]ys/ c+VN3߬S([YELVyv{NМO|3pjk ozyZX}zraʭ[odaaLO 6[.蓂kf_@QUԔqrGLP_8AFfBɓV-`d‚ Fq@L=B+M_WlG,&e"^^+V73 !jees^^+8{M!#ܸaOw'nPS# 4ldt.^kj{ B?>sp9 5ON.xoq$ff!G$SE@J[22\]O2FFȰoߝ8-]*`F0 G_ fY,/_ut٩\4{Q65ܼɓko*j-0ѣ/_NonZ4ӧziy01}ko/FSF20M C))-5*.il|KUR@@z}= psݿoY[詄y UGFyx蓽x oTW`ddȰRPϟ6x_sά,{]]Y!.8rrI2Ǐqqy iNiOii))-bq9{x.2 ;#`ٳG%)˗2oWr2qq0O'mEG\X9 98<ڸq"/ ZZW._~noxBB#5kLרg* Q(Y23[󍴾RSTSZ3 t7v/_cb۷&kի=32/]2FF`#CLpp P "/&}ÆP /ל >zTꕒR|Ǐh=*ܰ<-9dRIYȏᆡ3g@2xb=((eZvLP::˖3q㡣]WF9޾uLO?$vjL$#V,seQQm̤WٙMMWlOZdfFIi! O= khm99;=ak#++pʕ%]UUI Ц&ҭg,JJ utd]]qrQXXͿ_:;k&!CEE6nG_F!(E``&uDWgbHHddwqٞVC8QIHYYs3Vwr]HHNrr$ :;IsvNwp$),<ɧ'7x &zzhj^=x0<.Ί3WWݵk/ݹJ j-4>;w2**o[Iq"; /@ARգ9w~ %'G?N䂝PPÂ؂[D  XYa`C99Ymm'!(ȥ)sfO:;98&gPъ@޻%ӣ.]ڹ{*r;_ɓ66w'LsZZWb] CPJՌ;W§ERS۳G&󲥥NQӓ]::, Lqq>b7#NNqrrߡ.`r['~ב#|[=[:;99'wߏut|+G4ɔսfcPOO>'q .&`۶]ڶWw:< H@\}yرMs{zB-),aaaG|}`}zIm6%@"LdZ<))CÕ&&d fw-+VWV^?/׬x{z&w4퓺k*t=xNEEsŋ>gssgdd^X؛uuun3ٰasZnn US[ ZEpSSeehrj5"ﺅs@+W*;;ˑ#2 ή]?B22aG||--YZ+-wZ_v\!C}' 88VYy!u:>yqzo?׿zuv{PMWO/w@Ia6Kvݷ/ 0q.^|*߿BPVVZ ///:hFBa ᩜ @^XXutdcb~}tUbb큑yCT}ܪqѡ\p`nnUggߟ&n7&{G40~=iy/_:ڪOkMMKŠdeddئ14Thjׇ=r>$o'HL.$4 #UU-Pzx6 !i"*reߙ3$ nnի%,-))-^޽G;''Ti' ںuYee_yx`X:%))V6,Q}lx򜜊&NN֚ll̳g[4?(VVvv[,65u%=mÇ7L̓72R46V`==]`U޽DEYYIɏ>|L&&Jne?|Xo:::4񫅅5߾5P(zz: `ddq#@?:.Hw4(_L D DIl@TLĠDL ,ĺؔtq K[_u_p<9{>;3gF!cOPKޞ:e;z MMY}mm%d:PTtȉc{bc46 [9cpÌ=40pƍեylٸaXPWY,*/ou#6/ @ #Pu\5L=ې@؄ ?cbޜ;ȑ{Ӧ鱵LÞ9czuoX,yUT*`(UDIL|A:WZڀ3{j2Jt)Ck9:]TTkeufx7o Ž9S yZ[7m2_jJ )))""^>{+//fg7~ŊItآcedDBﱵ/͵e QS[sCPPȢEcyBB\Yfu!JW^^lpEa7#F۷=g:e"D+5- mPAxl`]2zQlQYIŵ3wG0uff>h4A~ ;#~fdFFάYǼML32vAegܽ;~(u"V~{ιPq-[̭Ǯ]{ {X̾} ?Ͻ#sH<aƏV -ׯZf--G p66@͛ggǣe"YYV$%8q񈈗ݟK&SҾ~_wҊ#T.bE0:iKҾ'&?pN}}3J!}cQTnK VLaz ԾjU?ӏ}޿/>teemOȈgr֬cҾyx{r33Xn`16Vwq .)v:1c-gOb{;ddJ_y.^LҮޫk D{~82J&S?<3^VGG7~h "32rRx7nd]\.[ 6nBP><{ÇtHlCC`33_Oi4k_PJO6eʡKz۷Ed͛Ycnnslo'ŭ ]Iw+t3yyUtK?vU##_?7ddxxY7"֡C{ p;\tqkN0AYY?.]zgBֺ2Ȩ`aP]]{a⎎38R@k8Ld߾\| ZZKw⊈x`V_*))c-_Lw)ZZ7o{,K,7)/5t`ᱱoc Xc:z 2[ 2 ; R/]J:T*(iܑͬ[I$ZTԫݻw˗McǪٳjt/paastq Zӷ"8q"p%CNͭNz($<[ 6nnj:lRc\! >>%NWnqqq-v\-u-:q C{cxn::ts…g[[Imxׯ]/nCW46  F鈎~Mu anjQrŹb炂yN56,81&&KLLk1-B;t1 22">KJbr7?.cg7-1z;1LN~P'n[/.pܨW;v}v .*+M\۶ܾOj6Y?[N#Ln+Bam$ FP1Be׮yhu5WeeE5"[ ZAPg>~Ҋn6N]"(jZڷQŔ^'""gfOQQ4!3}ZY3}v֕/ZtQp8lJ͛W" @`<׊!>n|P%={l?B077عsP: Ptu僃]oO ZӤ V0 7N+piia{{.KO'?A }^&US>BSVNNXnmĴ 9rz={0$<W^@q,qΓݪ22r_|ι=+uuM=djE/Sa_ff̙?2G8o#F^2t?;}DͤIZ'Oڝ:0, IDAT9s雚۹3?(#x˭מ]вiSFlx?(({xصkn9\ R]vgq:<7tP jzT??+ZB@wHuuciiG<,qgo߭m>WUYa3DD>W_Ll2[WWϟoĭp͛wgn20XTPP}+n'»|\VU8u*wv9r䞊cAMXl 2KCbc#^CCg=88\]G% BoАQVyefU#=ѣn [,9g=3giPn%6ƍ۶P mm?u <=gY[S)sI\irНzUYG>ʊ(q> md/r%/N3b PA ,1={7:4ŋ9sN0I,|F3!! B>y6mǎ9 Aϟqo4bd2mI_`,a\\P+jll[\^^uW@ >+,5h|n \bB")j)`oؼy??NGy䛩p,9||oGGvo{yYLž(A;;;# ,̻nayyy]K`0mmٳgc0>se|Gޣ1gx̙i4:cgT*MDdHTԚUrZ[I>}*?K0&iٍod:sт"L&%k+#4aa\˗2ns44_D߻dg|\.1vںu3h0,IHHX`AYYYdddQQ % #=ӹ'+)0^=n"HiihH{;BR(Dik<=9ÇcO0-!ၸoRܲe=F?JEDDLM>}JoѐJ--͛)Ҵ^M~ ҂"򂲲B²҂8G"vmb/;!BC%{u4`0FFFbbZv괃70ߌ]{cG\|:XHj7,3e =f̙]:6p/h"5.n7= /%%%&&tz 3g_RRԩSݻvQQQn'w{>AhC~7ɑ# ݑ-t<=maaϒ)mm?ڿRQQjtqqVMM] V2DOU5=laxL+][ }8̛ǖʓ'_EEp8=MHXḌ''tcKGN;ILLTTTCMMMH$///YYY/// x葊Jjjc}}=[IJJ244WWWz* d2666HIIaldd4dyy/388XOOOZZW^USSݵkWW?b0OOOA(۷_|gkk+c& h#GfzVZZZ4 m;wnpp0 77tبQ\\\# ݻn|O>}%]A '55Y `>.Y2Br;^gӦc77s;.qu su X8*fhܹB"Q&Nܿn]2UyC΄CirrrhÇ/^\\\=z۷"cO1nyy9KIIIDD L[[["x Hx"ib{3g GF͛7Ϙ1#???;;ߟ1>h4Ь}&//{AkjjsV{LF$""B__>{@@=USڶ&uۏD͛BM߾s,"ɓ)[KJ8Ne%o+y>zee#F>|hddlAtuuoݺ˗/םϪ#GhT*/^Dvh_655QTt]*(D=sbo޼&H[lٱc@ Dpts----L[n|~藀f HDDiV=^KQ(yyǏ#biiyСT Jc |TQȻʆG8wqq-a_`1c{>7him;}Co!(VV'MW+ǂq!ϟ׮]Ko,,,TPP`0 ǏhH[a.\Y^RVV:ujFFezzSSL`6/''b̘1aaaB]%6j(!!5*===55uΜ9J*{K---zM JVVִi8,Y Hll\KpEݺuѣGL'ss#GlNHreWU()IۗDxǏpb߾$iiaWiK7˗Е GϳgΜ9ӓ(--Q!R__ossT(**->|ؿWgh+WΛ7߷*I4nkkwΟ?kLLL=zÇQ''' 󕔔3AINN qFjjjW0ygϞ=|^M$dɒ7oN>>EEEΝcڵ@׬Yp8ŋ܌eee{̪{z BٻwcoXyb0h\$߿D>>??677oݺuȑP(O V]i@Sڵӷl1ߺ[o 2e_!wf 4{wIڳfp,(#weai9ӱ;O u9sfȑhi|||H$:;;KHHHII6773kkkRTTv> AhMMM>>>==DH$tJ_?~\RRREE󶶶Ê^3M ǷuVz:GGG)))͛7l;gڪcK`;w7Yx-'f͚!CnR۶mCnx̩SЙ"V%rٽ{|  ŋϗ*:Z?NwZM+88ۉt/>vUB|˗2N[ƱFX|رήGoΜ9---9t!z "f͚1cƠBzg555u&9NF'zJ.ٿ?YOoGMM#uuM**[8%Hl9ro<"2RW4aBy\I׍X! $$dΥKQQQ:::4ٳÆ 0aBjj*:',۷G%((p!FHHhȐ!Ǐ˃|gϘ`BBB &##sСk׮޽=L&{{{z{{ &8qPWWbT*UBBΝ;+VHKK+++{yyuA%BBB<F_-$$u>ܷ?c'&&nذXzѪ//ҙ--- dBta|}/]j9gƍfCnݐNιmQȖ-HLQ`gn;$--MBBbǎt ':yEYY[nݹs\<|EA$A2I۷3 ug˗}o>4Xho999^BݣzsLsĸ83 UnlBYn£f))mۉ .;9]@ o ܸɱtTڵWuts }뤾~XؿL뿮 $ 4 9880@0eŋh]޷nRvc1^ ZZZ^@ZZ T*MiL; (..۲dF[y )--[^; L93,W3o :N7JCS3A"ɓD GGc罼o(Wcu]90̾}޿/JHx\8_I$>g>:0p)'- Pž_رeSr8t`0!fϞ;࠳뤒?C? rHmذ!00pʔ)~~~nnnۇlmm:dkk{Z(**zgw4B*Nut%`g -o_Rs_P޽lccu))NxoW9h6K55ic$)]qr8tg2>ӡ뤋wbbbEEo rH"6bĈ+W<==֯_׷999vvvmmmVWWWWеE(`ƍyyyYYY;vppp655/\ׯy4Bݳcǜvٳ (=x4=lʕ&ȳg6\_j4fN)a0@,,,fϞ IKx'vIo1u$H{UWW0aANfE2,,qiׯXlll,cSSΝ;Nt?ogvʕCJKK_%ɓ'O&_3 Un8PSsy΅|gAA?*)m./o`kt-?p #iko[&J啕[kiioΝ;788THNN6222dgEDDIHH>|m|$Fpj,2}ttA%+++##E"ЧˣGTTT222:dx9MMMqq @MHHёY~}[[FNžax߽7ioo%p4DB1H$s|n[TS+V\v"k^] [Ciko;|.b1K;-? l7yy# ((zvXamm]__e@mm-#/_tjiiv^MMM2d?/䏀re֌=7ɓM]Kk[h3|IsoǏj##O57s2n l HDDNJTX"ΣD O @#*++8q0 uȡCcA7wA57߹ps \=#G@ ÇbG˪׮JJ q;n2yeŹ"Vߒ43cʟQUU8 ?悔PT.gd!@ ##[֡V=X+ n==-._~_\X@\ iӘ[__ZNɩ>'''z@?2rIIi4dܓ_q;n4Q[[n[NŽŦeywy a߿/^lL8/ui׫Kϟ/Nkpgd_j4TNNevvɭ[o[ZH991mm9mm99--9]]y!K`0**RUUӧ:3qwwӓ'S/LIMZSӴh|?g:hiܹs\by IDAT+L_ QT||Q=AϺ+rr*rs+V@-@ } gÆi\\Ddl ,bb.m0w\TT8wjAtPGG~@ @xCCeW03/:8׬wǏ?_\z&:Q,#[YȪ>;pJA5dqNNENNeFFNhh%DC;ёCu!;@+mY>bs~~Vl5mܱ#vٲqzz N;ȉ7o6gU4n]DKK{|:v#GvrϞ+WNay\?1QSPPW_FCX$ZnѨI++Kou߉իϟ'deE۱+_߄7r;sV twv 65YYbfy ,ԩvJAAU~~uAAuAA?ǿo8%% uui55uuiuuiuuI6mL@1~u3g9~vN`{XY!k^ʬOg<>rd !VQXX|Z?_??~0a뎋j*H$Jy/㬬D!I` @(5tÆȹsOzyY]k:X eeE<>s<p?dTkkT~8p;=='.΃*7NȂAHa(,.ȹr:Bp8nj ֭93vR@_"q N_""^,\8F\\DGp!I1cXoRR>mp_ J%%u5eYG&Sbb CJ ~ =C={׮AkEEqn'b LM߿GD,q~U֭77n4[,I @NL9~<~6 C eeclnp>~5/y5^AA05@#6cMLnbftIb߾ӧ|4۹@xQTGTЮ),Y*t,// V%V_~@;2 rrbrrb#4R^@)*޽M #''iYo0@XÇg>:r]+XC̛7RB[!6ݽ}tpIYY);V_fM8$&n6@X,FIIBIIdԕqYaJV8X1xOO KˑG]]y{[lbرId+F}Lbc=XbȂ HPPڡCw&N:{AJ5~Av@7tWnju+[X3-7QQ1lBR_ٓxnv`߶FC"#_ڎn۹3Ç ,)k޴zZڷ6oB `P WB b1Lٶ-漣m,_ull#"^ǯ^xKIIcߗ!>(**3<|KT˗װXL\ܺOt@p#TUƾ HJJul .8ĝ;sJMLt44dvz\ܛÇ,45L:ߓ'Μ9 AY¦ߊ#(!C bm=rą O[4u.;#FX[O05KJ>~ҊygIGwKuu^Y\i­P?FXp;Nt,<%SBYYQyyQ8  yzZ,Z4/6L? `$#;w319pOO٦"3gù_\li9gN?Y>BXXΝM{>aB>tiWe%~VIdYYQ8^X\:##g׮[Ӧvw1C@ ̎occIFq#sŊ}pT..`h|mH\zW@@z >igZqrZ5؆tq?XA7&&:y? wz,yc^=5**3  ]ckٺu?֝3fh|={N=hј;ɱٳ`ڴ/_N#.=6Mȹysmuro bwl60=B V^g_qqmNN_++h@DD@YYRYYBEERYYRIIQFn a1&&:))^w_?ϓCMMzGܷ-)M~-<72ڷ/֭.cƨ!hmm>=onm@ < UQ\H&SKK닋kQ]XZS{T* ϏWQTR@堒,3oatÇFF0]j*??O?O7m2}sC/ŋ::rر.==wαof1߶l"p11c>W &y}7LkW(?^_:#ɉɉBBH!pyc?ߴ|ɒq`]߹sMmmǏqKnLL|ޯ }vxKFi_ZnZxޅ""_ust栠q;w ђdTvA ]I78Z^^lF3U,ZtFC^zcfer(46ͦMwndܻ'>>,lA2 8 @蠥' %%u%%%%u%%d2@ ĕEEqEEq.1(- Jv텬ɓ8;O޶m矟nݹs.$H]n͜9L 2uq4mzLŋ0dXZZ܎ٰ&2QQAAՍVV֭a”$߽a EGG>-m:<]:/vrxgH`Xm߾-t)B8%%cǖ(b# Jۻ7sc?/^mSZڰe5ӡa;;Knڼ90SED6B*+ee B=@@,(֠H(*+(++K4C&Sޜ?mڸq]|Jҥ[9sf tv[Ppkhh14T^II-[nd18xϞĶ62B RTZƷ߽{W E%% @UUc@@Rl33v+I<ن5(4Xx,R@ :7jjv2ZVրZ>򥬠!!}BYVVTY&sl8>?x3#FN7Ϩ4hCC˾}Id2Ǐm,{oUU)Sa~f[*[2@\\Dٳ\Nn\RRוۻwϟuʿN2 L?_E_#gOŋcc'/_^1g\,G_wZ}LJ9~JB ů_-DteXYI,)c>LR⼹ ;+鉉&:; pb ,X0 ~!9v)`0=|xxǸ77^/`03g-0!sv[lر{txRL0e/sc͌ROO!?j꩞xPzp_wܽzu(8KAAN\M @X 4zBCYYQt:]JbDċgʏPRR>xرaaDE7cxx?0]?x%  ӧ`||[7n|Yp8 XY!&!]gc 4@f.h˖xѣK.TayyCCC z * Ŕ$%ddDY\SXX3q~Q7Ϛ1cX?(8CUU1Lk,xڵ&W7/_}=PZ6% L߉V1}`o\~&? /[6~ݺ8iy]z`$mqq `hn@ < ??^MMZMMPGCtnvgԠ}+C)/.qr-eˬsGtdˮt*BhK^8}ڮO% X͛o$& c ]yFf!beeD*/o@1̶m'JTȈxx̰/(gBQ_ P]hLHHPlA _ ݼdj]]*߿Wddt(C\ܽyMYY=Wyx\ۻ7ix J?0hTkUUSСRN=DӧRF GGE0 _4 9mm NPh4АݴlQhyЧOnnqx,JC @S5j.G fDbSӧkd̙_WǤܝUHIIa<}@16_Pj32rk:KCǢZ<K"> epիl}eUUb1Ah4¸+)Rovv+-wvmm1qqA hkDq%K 'NFP\jҤI @$.[v>/,,̯'o`0lihυp>>>17 YS] ׮}5KCNRedd? >5-WXXK&wU;;O~#D Fio45۩픶6 JikSZ[)X,)3!! dֶ"iC-^66;s ̟ٱ6Hl,++&&&%5 f~ rA҆.++D@@xJ9?X ~lu?s2P aIDAT|2m4n'w/@ ȈȈ7u#X %T*Ǐ_L.PA dRZQXT*mjkkk|+B \? NTZCC3@Q(Trrb&iil-7 !v@' M\\HZZx$mccqp&Bs0 /=YB k?KMh|A&{<zx|LL =11ǏȹԜg: p_AA4Έo۶@ K,XWO_Fڱcdž ~rww344d_挼x񢼼$44H$=̈́)eee_|LnZh^Y:KKK:t@ KRRR͙~]Q}v[-+))M>=>>^CCĉ] PUUXzH%''1B@@@CCڵkT*500PGGGDDdҤIv6ԔYvmKKKX)))ZZZdUA #$%%)))tttd2[NNNVVۛL&Ǐ899:=( kjj xf|1]D?rа0U,`05kܹs~}vx'&&nذicodPZYYMMMAAAx<)77~?.++{֭;w(**txajj+--۷w;w.H?|;99-_BNN.33m<|ŋG}vI1{'Ogggqܸq^^^]9k׮! 'ӣFto`ld!>g#feewmW}2q`nnN3mPYY1<ߢѣGi4Zcc#Je|'脅яFeggEGGwHKKCJv~s-|+++1ڻP8g3ؚ&"jd *$\ Oeq+wą )!ZnqXSfڲ&}.;;<}{vhnnnZFFR,--gFg;NJl'rݥAAAC#|F|]xRRg@' bsssww7...''gggG*}w%##0--gdAߝ/?~4\xrr L#Kh4 ØfOWYY,:řt:___ Ňn>==`08v~~VN9&g9f+Ayzzr6f_xxxyxrr30YBB ?EbzO0**sn8]Ek2h```WgL_]]-,,dOaQ|Hnmmjߎ|ݡyO266V\\̿w191WPI$ErCCCSNaNp{{3^efbb,]__fffWVVhl6jjjzzz[ZZf,:řn0JKK8ra)1445nV0^tphVu{{򲽽ݟӟr)99rzzI҅>4ju|||UUOw1y1abb"!!!**J===qy D$Ŀs[[[**>bpqq 򻻻3x~H,Bj ?J5>>OP ?qA . h4@Op`@ӫ@r=T*R N2,222г<'p@\oSriIENDB`XQilla-2.3.4/docs/simple-api/LocalFileFormatTarget_8hpp__incl.md50000644001725400016040000000004013273140074021506 00000000000000464e81256791142d8b83e43754e7e90dXQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLPlatformUtils-members.html0000644001725400016040000004532313273140074023406 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLPlatformUtils Member List

    This is the complete list of members for xercesc::XMLPlatformUtils, including all inherited members.

    alignPointerForNewBlockAllocation(XMLSize_t ptrSize)xercesc::XMLPlatformUtilsinlinestatic
    closeFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    closeMutex(void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    curFilePos(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    fgAtomicMutexxercesc::XMLPlatformUtilsstatic
    fgDefaultPanicHandlerxercesc::XMLPlatformUtilsstatic
    fgFileMgrxercesc::XMLPlatformUtilsstatic
    fgMemoryManagerxercesc::XMLPlatformUtilsstatic
    fgMutexMgrxercesc::XMLPlatformUtilsstatic
    fgNetAccessorxercesc::XMLPlatformUtilsstatic
    fgSSE2okxercesc::XMLPlatformUtilsstatic
    fgTransServicexercesc::XMLPlatformUtilsstatic
    fgUserPanicHandlerxercesc::XMLPlatformUtilsstatic
    fgXMLChBigEndianxercesc::XMLPlatformUtilsstatic
    fileSize(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    getCurrentDirectory(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    getCurrentMillis()xercesc::XMLPlatformUtilsstatic
    getFullPath(const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    Initialize(const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtilsstatic
    Initialize(XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtilsstatic
    isAnySlash(XMLCh c)xercesc::XMLPlatformUtilsinlinestatic
    isNELRecognized()xercesc::XMLPlatformUtilsstatic
    isRelative(const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    isStrictIANAEncoding()xercesc::XMLPlatformUtilsstatic
    loadMsgSet(const XMLCh *const msgDomain)xercesc::XMLPlatformUtilsstatic
    lockMutex(void *const mtxHandle)xercesc::XMLPlatformUtilsstatic
    makeFileMgr(MemoryManager *const manager)xercesc::XMLPlatformUtilsstatic
    makeMutex(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    makeMutexMgr(MemoryManager *const manager)xercesc::XMLPlatformUtilsstatic
    openFile(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFile(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFileToWrite(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFileToWrite(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openStdInHandle(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    panic(const PanicHandler::PanicReasons reason)xercesc::XMLPlatformUtilsstatic
    readFileBuffer(FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    recognizeNEL(bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    removeDotDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    removeDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    resetFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    strictIANAEncoding(const bool state)xercesc::XMLPlatformUtilsstatic
    Terminate()xercesc::XMLPlatformUtilsstatic
    unlockMutex(void *const mtxHandle)xercesc::XMLPlatformUtilsstatic
    weavePaths(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    writeBufferToFile(FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    XQilla-2.3.4/docs/simple-api/functions_0x75.html0000644001725400016040000001643113273140074016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - u -

    XQilla-2.3.4/docs/simple-api/ContentSequenceFilter_8hpp_source.html0000644001725400016040000004120613273140073022310 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContentSequenceFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _CONTENTSEQUENCEFILTER_HPP
    21 #define _CONTENTSEQUENCEFILTER_HPP
    22 
    24 
    25 class XQILLA_API ContentSequenceFilter : public EventFilter
    26 {
    27 public:
    29 
    30  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
    31  virtual void endDocumentEvent();
    32  virtual void endEvent();
    33  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
    34  virtual void piEvent(const XMLCh *target, const XMLCh *value);
    35  virtual void textEvent(const XMLCh *value);
    36  virtual void textEvent(const XMLCh *chars, unsigned int length);
    37  virtual void commentEvent(const XMLCh *value);
    38  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    39  const XMLCh *typeURI, const XMLCh *typeName);
    40  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
    41  virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI,
    42  const XMLCh *typeName);
    43 
    44 private:
    45  bool lastWasAtomic_;
    46 };
    47 
    48 #endif
    Definition: EventHandler.hpp:67
    virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    Handles the start of an element node as an event.
    Definition: EventHandler.hpp:95
    Definition: EventHandler.hpp:29
    virtual void endDocumentEvent()
    Handles a document node as an event.
    Definition: EventHandler.hpp:90
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    Handles a namespace binding as an event.
    Definition: EventHandler.hpp:132
    virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    Handles a document node as an event.
    Definition: EventHandler.hpp:85
    Definition: ContentSequenceFilter.hpp:25
    virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an attribute node as an event.
    Definition: EventHandler.hpp:126
    virtual void endEvent()
    Called when all events have been reported.
    Definition: EventHandler.hpp:143
    virtual void piEvent(const XMLCh *target, const XMLCh *value)
    Handles a processing instruction node as an event.
    Definition: EventHandler.hpp:106
    virtual void commentEvent(const XMLCh *value)
    Handles a comment node as an event.
    Definition: EventHandler.hpp:121
    virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an atomic item as an event.
    Definition: EventHandler.hpp:137
    virtual void textEvent(const XMLCh *value)
    Handles a text node as an event.
    Definition: EventHandler.hpp:111
    XQilla-2.3.4/docs/simple-api/UpdateFactory_8hpp_source.html0000644001725400016040000003770313273140073020620 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    UpdateFactory.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _UPDATEFACTORY_HPP
    21 #define _UPDATEFACTORY_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 #include <xercesc/util/XMemory.hpp>
    27 
    28 class PendingUpdateList;
    29 class PendingUpdate;
    30 class DynamicContext;
    31 
    32 class XQILLA_API UpdateFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    33 {
    34 public:
    35  virtual ~UpdateFactory() {}
    36 
    37  virtual void applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode);
    38  virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) {}
    39 
    40  virtual void applyPut(const PendingUpdate &update, DynamicContext *context) = 0;
    41  virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context) = 0;
    42  virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) = 0;
    43  virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context) = 0;
    44  virtual void applyRename(const PendingUpdate &update, DynamicContext *context) = 0;
    45  virtual void applyDelete(const PendingUpdate &update, DynamicContext *context) = 0;
    46  virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context) = 0;
    47  virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context) = 0;
    48  virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) = 0;
    49  virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) = 0;
    50  virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context) = 0;
    51  virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) = 0;
    52  virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) = 0;
    53 
    54  virtual void completeUpdate(DynamicContext *context) = 0;
    55 
    56 protected:
    58 };
    59 
    60 #endif
    DocumentCache::ValidationMode valMode_
    Definition: UpdateFactory.hpp:57
    ValidationMode
    Definition: DocumentCache.hpp:58
    virtual ~UpdateFactory()
    Definition: UpdateFactory.hpp:35
    Definition: UpdateFactory.hpp:32
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)
    Definition: UpdateFactory.hpp:38
    XQilla-2.3.4/docs/simple-api/XQilla_8hpp__dep__incl.md50000644001725400016040000000004013273140074017515 0000000000000068ba50ee767c2debd65c486376a5bfa2XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.md50000644001725400016040000000004013273140074025170 000000000000006c58360cf69839cde0c8bba34913180fXQilla-2.3.4/docs/simple-api/EventHandler_8hpp.html0000644001725400016040000001521213273140077017040 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventHandler.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/ast/LocationInfo.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for EventHandler.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  EventHandler
     
    class  EventFilter
     

    Functions

    static const XMLCh * emptyToNull (const XMLCh *const in)
     

    Function Documentation

    static const XMLCh* emptyToNull ( const XMLCh *const  in)
    inlinestatic
    XQilla-2.3.4/docs/simple-api/classLocationInfo__inherit__graph.map0000644001725400016040000000026613273140076022150 00000000000000 XQilla-2.3.4/docs/simple-api/InputParser_8hpp__incl.png0000644001725400016040000002247713273140075017732 00000000000000PNG  IHDRpe_ bKGD IDATxg@SAP(@E h-TAdPj+m((8ъ< j%a8@q`Aa$!/b!} 9{!  L: W0GCaAs4Ave (>C!<<|hQ%$$dee:MVV#$}```"(>7YYY GCaAs4Av A]𜡄;wNGGG+((y{{kiiI!D $=jkkDEE]|B>|A]v*6hr4ˈ#F9j(}}}__NYAt=oݺze˖]x;ss{\ȑ#, ݈x'''%xܿÆ VVVϟRPPbŊuYZZ%옘GGGGGǘ6Uj𰳳ސn_!h9z`=z+66 xݻw?|ͪ=EGGy[ N쬩9tД)S;;;'MtܹM6;v}Kǎpŕ+Wݻ`(Jmmmll N:I&uÇǎ;~8 :DsrppPRRZd 6mD&M~tZ~իi4ڎ;$ĉޣFttt߸q @@NH$++dyyy' ===//Gjذaj_b¼y u X"~&q566Kmq^YA$Oӻ}7n@YY922B:ujs9;;󞬨FplAW0GnI U]]Bs>d2CCCCCCX,yB?L& eٷo zjdd$ۛ_՟AxX DEE{ŋǏPRRuvv@tX,&]]]r=p8ܶm۲;::X,HD:ϟر7o]z[ɩa"d#Aߣe`>>> cѢE$iݺuΝ޽ 3f̌3]&(%%M6 >}ѢE~~~QQQ'H؆mm퐐Xn]TTԆ p8܂ }߿1o D#6 յk{333SRQɊ:ssUBgu@aRhgg'($@`C>Av-U#Fغu lZAs4Av A]0GCaAACCCVV.H< $EE&~7)ԅ))p$-[3x}geu *a(ffd鍖DnqB/.ammdg7sΜ 0YCP ܌˙3gBXڢ)$%y l%䑧O_|YRxJ7dڒ%3\]̘A h9ZlŋSI$b`lnRRMgRR~61*@99\]ϜٰxtqC44YS(o߾'+A<77GA2st]QQ;w:OxRTti zR^NNȑ=)}+Wv¹h񥧗eeˢ+y/]񹘖3mH 9n+.W@b߹29ƍ:5k` (-}Qip@-77/P ҥ[/ll܇N9]pL8`:chlj;EDU qv>fsT LbqfIJJk R0GE._߹3HX[SMMR黥KFF̖NR?\Adiihgg CsHAnn`3폟~:ޫ!{oyRғƶɓ,_>e  G F,[fLill?ڵ 68dh8p0GꠠǏ+LCBe{5kNyx6,\᧧75aHn̙3!,i\C99\]bm&1%K#O^/X`ݽ[\Z3H B9^0<|C7s{ V}}5F9}^p 5dGNTgfnKkkgz:kIѵJΝXY Fծ焄`nvz.oo oŲeR*WUup9/C%G3'JPٹa"Yrgcǎm ޽@2 7ǭ;wyWs8ܦv M;޽k~k>fLx\H C"Gqm&-[-…MVSSi,ߪ☛14$ĬUl~/vU}R*Iyy 8g_n4(hFn@9w>#?l뚚mX9=?x&x<~Æ6Xfsmm|Y l6@ ]C|?<5wv=~グh\B P(aal6_,e8iP .`x[x 3fݵko"r7o"堾lSMMp9$`ѯ^[[Gvvv-\8yۋ.U}܀.y!PEE_@sٞ=˥UoZZ:RS<_t_9AS(T꓎&:a'D0St--L&A;wnz]6LM߽{]1O8pq8QwU{ڵbL:#>3/u-)ԩufbboǹs_ٵaCܣGo-$e{4YhA(~o*) ^|c&""5&&m;;WuXIϼN3li:-60t9F >Ղ͛~sXVKqA7r4 ['%=a~pիLpwse^q..sslϟ׸67w;HGD,ww  Fy)\sVV3+eep882;8s2r7s4D"޻#0cƎ6p8ubA}=mժcϞr8nw@\gdii00xdL/\HJz9}[dPS[ۚTH>),[]]iʔ1v D8zt%2A`ؽŋ(&J7~w1c"?l̙_~!{w*8=29UV6QObc3ژN'7o6 E(uUU1l6W u$t$Hkj^ JUD"8˗uk(?^Ӭ\. Uh4Lƒ$e6Gl[~ MA.x#ii>X[TD˖'&:\NޜIHʒk2 w-^ŋZiFI܍D""PR6cy,]##d]QXEͯ- 66>LM߼U}qq d8#v3Z`}&>|PXX߹RI7bDU'L[V$Lf`88L^|lnn/733g WVVeee>pƪ6c^DǏ+KpVp8g*&M>Ad2Y__G9d"b`` ze`,-rUU+$ w}Ç ٽ|LW^f JJ]_H[&h[LZjj*bm۶MSSSCCc۶m,f7nѫVB?ZK7[[[d___ƹ}qrrę7p wYqs#pӦM9r޽{L>]EEoMII/M[0(((hiiފ8ɓӦM=ztDDٳg'LcٴwIII:::--- .LaҥƒyӧO?GDB.//S[[{ " y...---ǎرc:::7nhllLOOG}~2BQ(D)׮>a@H$ڵkϝ;hhh@Fю?puuhOKD"UV^]WWCAbcc544kjjRSSd23='O<{,[WkkkbΝ666PTYf!?lذSGrFk? ,,M:#GmmgYZZ=x@__?44T <4h z;::=z w}n:ujmm-8==xʔ)gϞĮ. (11Q__}Bqq0zk>onnۿKK mkkp8=WhhvuuocCCx^ϟlSA|y{{;ùs w c I9Gd###{ ..ӧO ѽsss3"(G*vJJJ]]][n kiiٷo5"}]|v^P\.ޞ@ xzzwO\uuu1M7Ξ;Q_^ ++ AD^X <֡`ooOP:::׬YnBϮZXXTTT}6mc9ĉ,[bԩ} leff>xL&/\ݻ\[[kC1} YꞇD*++2552?Ơ#FlܸtӦM7oC{{;RSګbw`}abbl2L 1//oٽ{woMȠP(T*ׁcƌA+,,f强,/M:}Sw{;tBFщs͍B$%%G? yc<֮D[XXk׮nhjj7oׯut4߫t:&$$477[ήFmGꖖ|ģa@]]]mVPP{IDAT-%***j>>>"w@ƍVV.zs_xkkk*ZVV6k֬o6===;;"cbb.^ٳ 555[`AHHﴛλۅ """oY([-L[[Gz*l89Ҳ%$$dڵNNNo߾-..:zʕ+W?[ޓrrr+VxiPP!p/_h]]]rrr ~KKK{}FFFhh(=&E"tzHHMm7.v-[\p֭[kn۶JݸqB`?PT{{{1^(J=:::zܹrrr-"L3 & eddn:-[YXXܼyLOOݝ`_^766} P?Syyy^^^``Ǐ>V}KAύ7*))ӣhk֬QSS5jƍ;:: [KK ,k޼yJJJ諚W\9j(--_~N I_'N$HSNR9>|?'22rĉVVVT*uџP&H_Z: 9xȑ#ǎ榡ꖞx#GfΜՅ ȕ+Wv9a%%%333qUG?ގ/V" H~~~ɓ'7!..N^^ѣGxgI}n0t-R;^ 3ӳ;vs>W$ 0 بvZ///YA-~ B"-`XX$UQ@ihhH :  h 9 ` . ?9;h4JnllTi'ΪD{Y `o@3}=ZEEECCC!&)jˣ `ӠihhH 0 GCaAs4Av A]aVSIENDB`XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp_source.html0000644001725400016040000005623613273140073021460 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATBooleanOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATBOOLEANORDERIVED_HPP
    21 #define _ATBOOLEANORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    27 
    29 
    30 struct XQILLA_API BoolResult
    31 {
    32  static const BoolResult True;
    33  static const BoolResult False;
    34  static const BoolResult Null;
    35 
    36  inline BoolResult(bool b) : value(b ? BOOL_TRUE : BOOL_FALSE) {}
    37  inline operator bool() const { return value == BOOL_TRUE; }
    38  inline bool operator==(BoolResult o) const { return value == o.value; }
    39  inline bool operator!=(BoolResult o) const { return value != o.value; }
    40 
    41 private:
    42  inline BoolResult() : value(BOOL_NULL) {}
    43  enum {
    44  BOOL_NULL,
    45  BOOL_FALSE,
    46  BOOL_TRUE
    47  } value;
    48 };
    49 
    50 class XQILLA_API ATBooleanOrDerived : public AnyAtomicType
    51 {
    52 public:
    54 
    55  /* Get the name of the primitive type (basic type) of this type
    56  * (ie "decimal" for xs:decimal) */
    57  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    58 
    59  /* Get the namespace URI for this type */
    60  virtual const XMLCh* getTypeURI() const = 0;
    61 
    62  /* Get the name of this type (ie "integer" for xs:integer) */
    63  virtual const XMLCh* getTypeName() const = 0;
    64 
    65  /* returns the XMLCh* (canonical) representation of this type */
    66  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    67 
    68  /* returns true if the two objects have the same boolean value
    69  * false otherwise */
    70  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    71 
    74  virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    75 
    76  /* returns true if boolean value evaluates to true
    77  * false otherwise */
    78  virtual bool isTrue() const = 0;
    79 
    80  /* returns false if boolean value evaluates to true
    81  * true otherwise */
    82  virtual bool isFalse() const = 0;
    83 
    85 };
    86 
    87 #endif
    Definition: XPath2MemoryManager.hpp:45
    static const BoolResult True
    Definition: ATBooleanOrDerived.hpp:32
    BoolResult(bool b)
    Definition: ATBooleanOrDerived.hpp:36
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    RefCountPointer< const ATBooleanOrDerived > Ptr
    Definition: ATBooleanOrDerived.hpp:53
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    bool operator!=(BoolResult o) const
    Definition: ATBooleanOrDerived.hpp:39
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    static const BoolResult False
    Definition: ATBooleanOrDerived.hpp:33
    virtual const XMLCh * getPrimitiveTypeName() const =0
    bool operator==(BoolResult o) const
    Definition: ATBooleanOrDerived.hpp:38
    virtual const XMLCh * getTypeURI() const =0
    static const BoolResult Null
    Definition: ATBooleanOrDerived.hpp:34
    Definition: ATBooleanOrDerived.hpp:30
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: ATBooleanOrDerived.hpp:50
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__incl.md50000644001725400016040000000004013273140074020036 000000000000000d3ee7bf65fd074851e1ba296592ce47XQilla-2.3.4/docs/simple-api/inherit_graph_10.md50000644001725400016040000000004013273140074016354 000000000000007d5a21a2312d89a5ee0e21f34962734bXQilla-2.3.4/docs/simple-api/inherit_graph_25.png0000644001725400016040000000226113273140077016473 00000000000000PNG  IHDRe%FbKGDfIDAThMH2]TZHMVPFAĠ6EЦZUM-ZTDAPDZHL7 }ZRhc:Xou=s=b χu1x ^/n$^ADLR(H 8::Ɣ~.333,#h4~KJ?2^7>a$IF76LJJJ}}eWb\_2,rxxt:-K(jooUnoy; BOOOLAPP%c (akkkEEE@$a&>ߏ%<$kJKKE"\.988,..NJJ[YYANq\e~7<<<$&&zӹzhllleee^hΟX__Ot2 4('^XT~P0μ^o0X,Wq\`jjvB! QTN.))aU,tƂ4PTU J%Bݮh˗"T*Jfj*8[[["OPr,NnG?S|ҢNNN#BBA.rL& oZ^ $IK$X^^(jvv6r}?iZ(|x<0 SE4-D"hڡkͦhҿXcTY 21 366&HM&Z:TWW'''bzz:555;;{~~ qV[__ *d2!#EQR4--~2_?|^b+"ǜ/ q^cy7xō7ocߞEP_\7x ^/nۗKbIENDB`XQilla-2.3.4/docs/simple-api/XMLEntityResolver_8hpp__incl.md50000644001725400016040000000004013273140074020713 000000000000005f49283edd17bfb0bde8c6da1be43535XQilla-2.3.4/docs/simple-api/EventHandler_8hpp_source.html0000644001725400016040000010771413273140073020425 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventHandler.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _EVENTHANDLER_HPP
    21 #define _EVENTHANDLER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 #include <xercesc/util/XercesDefs.hpp>
    28 
    29 class XQILLA_API EventHandler
    30 {
    31 public:
    32  virtual ~EventHandler() {};
    33 
    36  virtual void setLocationInfo(const LocationInfo *location) {}
    37 
    39  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) = 0;
    41  virtual void endDocumentEvent() = 0;
    43  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) = 0;
    45  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
    46  const XMLCh *typeURI, const XMLCh *typeName) = 0;
    48  virtual void piEvent(const XMLCh *target, const XMLCh *value) = 0;
    50  virtual void textEvent(const XMLCh *value) = 0;
    52  virtual void textEvent(const XMLCh *chars, unsigned int length) = 0;
    54  virtual void commentEvent(const XMLCh *value) = 0;
    56  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    57  const XMLCh *typeURI, const XMLCh *typeName) = 0;
    59  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) = 0;
    61  virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value,
    62  const XMLCh *typeURI, const XMLCh *typeName) {}
    64  virtual void endEvent() = 0;
    65 };
    66 
    67 class XQILLA_API EventFilter : public EventHandler
    68 {
    69 public:
    71  : next_(next)
    72  {
    73  }
    74 
    76  {
    77  next_ = next;
    78  }
    79 
    80  virtual void setLocationInfo(const LocationInfo *location)
    81  {
    82  next_->setLocationInfo(location);
    83  }
    84 
    85  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    86  {
    87  next_->startDocumentEvent(documentURI, encoding);
    88  }
    89 
    90  virtual void endDocumentEvent()
    91  {
    92  next_->endDocumentEvent();
    93  }
    94 
    95  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    96  {
    97  next_->startElementEvent(prefix, uri, localname);
    98  }
    99 
    100  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
    101  const XMLCh *typeURI, const XMLCh *typeName)
    102  {
    103  next_->endElementEvent(prefix, uri, localname, typeURI, typeName);
    104  }
    105 
    106  virtual void piEvent(const XMLCh *target, const XMLCh *value)
    107  {
    108  next_->piEvent(target, value);
    109  }
    110 
    111  virtual void textEvent(const XMLCh *value)
    112  {
    113  next_->textEvent(value);
    114  }
    115 
    116  virtual void textEvent(const XMLCh *chars, unsigned int length)
    117  {
    118  next_->textEvent(chars, length);
    119  }
    120 
    121  virtual void commentEvent(const XMLCh *value)
    122  {
    123  next_->commentEvent(value);
    124  }
    125 
    126  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    127  const XMLCh *typeURI, const XMLCh *typeName)
    128  {
    129  next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName);
    130  }
    131 
    132  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    133  {
    134  next_->namespaceEvent(prefix, uri);
    135  }
    136 
    137  virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI,
    138  const XMLCh *typeName)
    139  {
    140  next_->atomicItemEvent(type, value, typeURI, typeName);
    141  }
    142 
    143  virtual void endEvent()
    144  {
    145  next_->endEvent();
    146  }
    147 
    148 protected:
    150 };
    151 
    152 static inline const XMLCh *emptyToNull(const XMLCh * const in)
    153 {
    154  return (in == 0 || *in == 0) ? 0 : in;
    155 }
    156 
    157 #endif
    Definition: EventHandler.hpp:67
    virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    Handles the start of an element node as an event.
    Definition: EventHandler.hpp:95
    EventFilter(EventHandler *next)
    Definition: EventHandler.hpp:70
    Definition: EventHandler.hpp:29
    virtual ~EventHandler()
    Definition: EventHandler.hpp:32
    virtual void endDocumentEvent()
    Handles a document node as an event.
    Definition: EventHandler.hpp:90
    virtual void textEvent(const XMLCh *chars, unsigned int length)
    Handles a text node as an event.
    Definition: EventHandler.hpp:116
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    static const XMLCh * emptyToNull(const XMLCh *const in)
    Definition: EventHandler.hpp:152
    virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    Handles a namespace binding as an event.
    Definition: EventHandler.hpp:132
    virtual void setLocationInfo(const LocationInfo *location)
    Recieves a LocationInfo object that is owned by the caller, and will be updated with the current loca...
    Definition: EventHandler.hpp:80
    virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    Handles a document node as an event.
    Definition: EventHandler.hpp:85
    virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an atomic item as an event.
    Definition: EventHandler.hpp:61
    virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an attribute node as an event.
    Definition: EventHandler.hpp:126
    virtual void setLocationInfo(const LocationInfo *location)
    Recieves a LocationInfo object that is owned by the caller, and will be updated with the current loca...
    Definition: EventHandler.hpp:36
    virtual void endEvent()
    Called when all events have been reported.
    Definition: EventHandler.hpp:143
    EventHandler * next_
    Definition: EventHandler.hpp:149
    virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
    Handles the end of an element node as an event.
    Definition: EventHandler.hpp:100
    virtual void piEvent(const XMLCh *target, const XMLCh *value)
    Handles a processing instruction node as an event.
    Definition: EventHandler.hpp:106
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    virtual void commentEvent(const XMLCh *value)
    Handles a comment node as an event.
    Definition: EventHandler.hpp:121
    virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an atomic item as an event.
    Definition: EventHandler.hpp:137
    virtual void textEvent(const XMLCh *value)
    Handles a text node as an event.
    Definition: EventHandler.hpp:111
    void setNextEventHandler(EventHandler *next)
    Definition: EventHandler.hpp:75
    XQilla-2.3.4/docs/simple-api/Numeric_8hpp__incl.md50000644001725400016040000000004013273140074016736 00000000000000f0773b87426b867b924072a0097cf1d2XQilla-2.3.4/docs/simple-api/classRefCountPointer-members.html0000644001725400016040000001245013273140074021264 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RefCountPointer< T > Member List

    This is the complete list of members for RefCountPointer< T >, including all inherited members.

    _pRefCountPointer< T >protected
    get() const RefCountPointer< T >inline
    isNull() const RefCountPointer< T >inline
    notNull() const RefCountPointer< T >inline
    operator T *() const RefCountPointer< T >inline
    operator->() const RefCountPointer< T >inline
    operator=(const RefCountPointer< T > &o)RefCountPointer< T >inline
    RefCountPointer(T *p=0)RefCountPointer< T >inline
    RefCountPointer(const RefCountPointer< T2 > &o)RefCountPointer< T >inline
    RefCountPointer(const RefCountPointer< T > &o)RefCountPointer< T >inline
    ~RefCountPointer()RefCountPointer< T >inline
    XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__dep__incl.md50000644001725400016040000000004013273140074021162 000000000000002d0325377d1979418af54f6ed3d30808XQilla-2.3.4/docs/simple-api/SchemaValidatorFilter_8hpp_source.html0000644001725400016040000011721013273140073022252 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SchemaValidatorFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _SCHEMAVALIDATORFILTER_HPP
    21 #define _SCHEMAVALIDATORFILTER_HPP
    22 
    23 #include <vector>
    24 
    26 
    27 #include <xercesc/framework/XMLDocumentHandler.hpp>
    28 #include <xercesc/framework/XMLErrorReporter.hpp>
    29 #include <xercesc/validators/schema/SchemaValidator.hpp>
    30 #include <xercesc/validators/schema/identity/IdentityConstraintHandler.hpp>
    31 #include <xercesc/internal/XMLScanner.hpp>
    32 #include <xercesc/util/RefHash3KeysIdPool.hpp>
    33 
    34 class DynamicContext;
    36 
    37 #if _XERCES_VERSION < 30000
    38 typedef XMLSSize_t XMLFileLoc;
    39 #endif
    40 
    48 class XQILLA_API SchemaValidatorFilter : public EventFilter,
    49  public XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner,
    50  private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler,
    51  private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter
    52 {
    53 public:
    54  SchemaValidatorFilter(bool strictValidation, EventHandler *next, XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver,
    55  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, const LocationInfo *info);
    56  virtual ~SchemaValidatorFilter();
    57 
    58  void reset();
    59 
    60  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
    61  virtual void endDocumentEvent();
    62  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
    63  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
    64  const XMLCh *typeURI, const XMLCh *typeName);
    65  virtual void piEvent(const XMLCh *target, const XMLCh *value);
    66  virtual void textEvent(const XMLCh *value);
    67  virtual void textEvent(const XMLCh *chars, unsigned int length);
    68  virtual void commentEvent(const XMLCh *value);
    69  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    70  const XMLCh *typeURI, const XMLCh *typeName);
    71  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
    72 
    73 private:
    74  // XMLScanner
    75  virtual const XMLCh *getName() const { return 0; }
    76  virtual XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool<XERCES_CPP_NAMESPACE_QUALIFIER DTDEntityDecl> *getEntityDeclPool() { return 0; }
    77  virtual const XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool<XERCES_CPP_NAMESPACE_QUALIFIER DTDEntityDecl> *getEntityDeclPool() const { return 0; }
    78 #if _XERCES_VERSION < 30100
    79  virtual unsigned int resolveQName(const XMLCh *const qName, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &prefixBufToFill,
    80  const short mode, int &prefixColonPos);
    81 #endif
    82  virtual void scanDocument(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {}
    83  virtual bool scanNext(XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken &toFill) { return false; }
    84  virtual XERCES_CPP_NAMESPACE_QUALIFIER Grammar *loadGrammar(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src,
    85  const short grammarType, const bool toCache) { return 0; }
    86 
    87  virtual void scanCDSection() {}
    88  virtual void scanCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toToUse) {}
    89  virtual EntityExpRes scanEntityRef(const bool inAttVal, XMLCh &firstCh, XMLCh &secondCh,
    90  bool &escaped) { return EntityExp_Returned; }
    91  virtual void scanDocTypeDecl() {}
    92  virtual void scanReset(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {}
    93  virtual void sendCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toSend) {}
    94 
    95  // XMLDocumentHandler
    96  virtual void startDocument() {}
    97  virtual void endDocument() {}
    98  virtual void resetDocument() {}
    99 #if _XERCES_VERSION >= 30000
    100  virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
    101  const XMLCh* const elemPrefix,
    102  const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf<XERCES_CPP_NAMESPACE_QUALIFIER XMLAttr>& attrList,
    103  const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) {}
    104  virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection);
    105  virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {}
    106 #else
    107  virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
    108  const XMLCh* const elemPrefix,
    109  const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf<XERCES_CPP_NAMESPACE_QUALIFIER XMLAttr>& attrList,
    110  const unsigned int attrCount, const bool isEmpty, const bool isRoot) {}
    111  virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection);
    112  virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {}
    113 #endif
    114  virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
    115  const bool isRoot, const XMLCh* const elemPrefix=0) {}
    116  virtual void docComment(const XMLCh* const comment) {}
    117  virtual void docPI(const XMLCh* const target, const XMLCh* const data) {}
    118  virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {}
    119  virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {}
    120  virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr,
    121  const XMLCh* const actualEncodingStr) {}
    122 
    123  // XMLErrorReporter
    124  virtual void resetErrors() {}
    125  virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText,
    126  const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum);
    127 
    128 private:
    129  void processStartElement();
    130  void processAttrs(XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *elemDecl);
    131 
    132  bool switchGrammar(const XMLCh *uri);
    133  bool laxElementValidation(XERCES_CPP_NAMESPACE_QUALIFIER QName* element,
    134  XERCES_CPP_NAMESPACE_QUALIFIER ContentLeafNameTypeVector* cv,
    135  const XERCES_CPP_NAMESPACE_QUALIFIER XMLContentModel *cm,
    136  unsigned int parentElemDepth);
    137  bool anyAttributeValidation(XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne);
    138  XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *createElementDecl(unsigned int uriId, unsigned int currentScope,
    139  bool laxThisOne);
    140 
    141  const LocationInfo *info_;
    142 
    143  XERCES_CPP_NAMESPACE_QUALIFIER SchemaValidator *fSchemaValidator;
    144  XERCES_CPP_NAMESPACE_QUALIFIER SchemaGrammar *fSchemaGrammar;
    145  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer fContent;
    146  XERCES_CPP_NAMESPACE_QUALIFIER IdentityConstraintHandler *fICHandler;
    147  XERCES_CPP_NAMESPACE_QUALIFIER RefHash3KeysIdPool<XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl> *fElemNonDeclPool;
    148 
    149  bool strictValidation_;
    150  bool errorOccurred_;
    151 
    152  XERCES_CPP_NAMESPACE_QUALIFIER ElemStack::StackElem *parentStack_;
    153  unsigned int elemDepth_;
    154  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix_;
    155  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri_;
    156  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname_;
    157  bool elementToProcess_;
    158  const XMLCh *xsiType_;
    159  unsigned int attrCount_;
    160 };
    161 
    162 #endif
    Definition: EventHandler.hpp:67
    virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    Handles the start of an element node as an event.
    Definition: EventHandler.hpp:95
    Definition: EventHandler.hpp:29
    virtual void endDocumentEvent()
    Handles a document node as an event.
    Definition: EventHandler.hpp:90
    The SchemaValidatorFilter class will modify the incoming event stream by validating it against the sc...
    Definition: SchemaValidatorFilter.hpp:48
    XMLSSize_t XMLFileLoc
    Definition: SchemaValidatorFilter.hpp:35
    virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    Handles a namespace binding as an event.
    Definition: EventHandler.hpp:132
    virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    Handles a document node as an event.
    Definition: EventHandler.hpp:85
    virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an attribute node as an event.
    Definition: EventHandler.hpp:126
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
    Handles the end of an element node as an event.
    Definition: EventHandler.hpp:100
    virtual void piEvent(const XMLCh *target, const XMLCh *value)
    Handles a processing instruction node as an event.
    Definition: EventHandler.hpp:106
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    virtual void commentEvent(const XMLCh *value)
    Handles a comment node as an event.
    Definition: EventHandler.hpp:121
    virtual void textEvent(const XMLCh *value)
    Handles a text node as an event.
    Definition: EventHandler.hpp:111
    XQilla-2.3.4/docs/simple-api/classDocumentCache-members.html0000644001725400016040000002713213273140074020703 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DocumentCache Member List

    This is the complete list of members for DocumentCache, including all inherited members.

    addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, StaticContext *context, const LocationInfo *location)=0DocumentCachepure virtual
    createDerivedCache(xercesc::MemoryManager *memMgr) const =0DocumentCachepure virtual
    g_szUntypedDocumentCachestatic
    getAttributeDecl(const XMLCh *attributeUri, const XMLCh *attributeName) const =0DocumentCachepure virtual
    getComplexTypeInfo(const XMLCh *uri, const XMLCh *typeName) const =0DocumentCachepure virtual
    getDatatypeValidator(const XMLCh *uri, const XMLCh *typeName) const =0DocumentCachepure virtual
    getDoPSVI() const =0DocumentCachepure virtual
    getElementDecl(const XMLCh *elementUri, const XMLCh *elementName) const =0DocumentCachepure virtual
    getGrammarResolver() const =0DocumentCachepure virtual
    getSchemaUri(unsigned int id) const =0DocumentCachepure virtual
    getSchemaUriId(const XMLCh *uri) const =0DocumentCachepure virtual
    getXMLEntityResolver() const =0DocumentCachepure virtual
    isTypeDefined(const XMLCh *const uri, const XMLCh *const typeName) const =0DocumentCachepure virtual
    isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0DocumentCachepure virtual
    loadDocument(const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection=0)=0DocumentCachepure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    parseDocument(xercesc::InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection=0)=0DocumentCachepure virtual
    parseDocument(xercesc::InputSource &srcToUse, EventHandler *handler, DynamicContext *context)=0DocumentCachepure virtual
    setDoPSVI(bool value)=0DocumentCachepure virtual
    setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0DocumentCachepure virtual
    VALIDATION_LAX enum valueDocumentCache
    VALIDATION_SKIP enum valueDocumentCache
    VALIDATION_STRICT enum valueDocumentCache
    ValidationMode enum nameDocumentCache
    XMemory()xercesc::XMemoryinlineprotected
    ~DocumentCache()DocumentCacheinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073022370 00000000000000a88161fa0a8faf5129871a42b2e35a59XQilla-2.3.4/docs/simple-api/inherit_graph_47.map0000644001725400016040000000040213273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/DOMNode_8hpp__incl.map0000644001725400016040000000006113273140075016655 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.map0000644001725400016040000001043413273140076023177 00000000000000 XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__incl.png0000644001725400016040000002713213273140076020026 00000000000000PNG  IHDR}ْbKGD IDATxy@A@@@@([PxcûXUŶTQVT/<R@HIEHB +Lvfٝ|nv7$ #+H 'H 'H '*ZzuII QtuDGwn$>c0Du=y199@hHt]ƍ( 9A9A9A9AΜ93{lы10 HKKSii [kor@[qϞ=?2d^qn޽=zee˖+;$ vu#F&l;;;###bt]%Tv<CxƏ5@yu۷.]v PiiӃ<<<ܺ:B֭[K,qvvtp{{{O>=11͘._`3f:u !|rз~"H__;vl[7آw7oΛ7o֬Y{inn[f И1cLǏBo߾-..;v,BqÆ OHH?|pmm-^%99944!!lVluzԩyر߹s!!!111}ƍ}:t~!SxK,y&GݼyG֭WϞ=u-[ܹsG@l! :iggwu{{{CCCFe0͠ x__߾}⯿;͊NP0 c4QSS_C[[{z===gff/\]]tIv)R PԼaÆ]|ٙD"^Ex%FLLĉ[.X@ :#H!Əo\2;;{x!J-))ٹs'w6,,, Vݽ{wjjj\\ח_~umZ4.EҠ d1c?]XlxěR&8!4j(s/^{as?RҖMMM ""SL 1A:::^~Dք*..~&tM@Bijj=z޽Æ 300 y<JrqqqF[D"ggg744477ST!XީIR!;;;>Qggga g$$ٻwoii7H)]ƒ0aBFFt:?22[n^^^&L ٻw ~̙k:t<<|p;象iÆNݙ2nf7C:]$PDl67:ҁWn>ܠ#{yk}m %3ߐdiݺi>>i޵3njٱc!!a (P<&y>![щ^&W^lŀ ,#IHH BnS57=kǎڵˣS#$P0֝<7620&:>- wTͨ9c :6 ylSϞ ԙsO߶m_ Ȫw~look\kk)^FƓ5kRnS%: ܿ*00fjgdr*11gvp75':" 69x0sX;XXtɳ If29O'F~ ir9@@,뜻r ĀRDuoπ| |`_?ہDɁWn>܀舀R@̘LNd9 ۷u޽W**AA/"| vZ/Yׯ9tQ“'#G޵kn߾&DG h'TUڴ) ֭wlժϟt2@; mfO4p 4:s` # xvm?8WYϞ <_v@;?|Ȉ@%`'Nlܘ޳g]fEtD@~@ޛ7sr,vTmm}!88^^$P5eeSoР-}z5e aw=e\)+n (H5~:ѧToy`ǏK}}CB&ATEE}XX_{{; ]]-[.=^0uHA : /X իʦ&~yyvf˗73OH5k8\tt4gfcczPѣ7{66E1lNgFFpx`Tmza߾+"H &&W,*+ ;͛Du>}Pii+>1 ' Lޝ^_>QQs(Ҧyy&B62ҹr%j 8'JLbw* $Pt79./#տQ ,@"!c%%5jy4$$Yi2тsRs3Ȉo\ Ӽx.1K$d'NzNxG1 =n16[£y;16_rޫ{̧(<@xVJ%{y9lNlAU-X{2ڣG|Q7.۷n,zMSS3Fw?vsIt]G .77R*!kdh lgEZٳgIIɧC(2fJYh4__YyԒeqqB(VTT*i^[AqqB&$DZjըQ72|hjۻwVn&&-ĀBEE[spppw]b[x$P$P$PhQQ~bR}vѢE{Cx!JMIIh|φC/b֭<ɵH(jm"HEEE]Ϣ64Id$-T33Sϟ _H1uFY$!`4x`___ Ö-[6b./4f'bz}]6Bϟ?1I#%Ǐ+)PRRBYԚmѢPIrqq ֊ 0 xHb[(AN&ndiii׭kUWWkhhܹF |Iե|d)eb;R׮]aXBB7|Ag͉̮\aؔ)Sm&vc)iFa# |}}߯_?Qx${9::nٲE^.\fff>\e\o猄}X8NII!?GJRR UuzjypD 5kZ999ƍ~:L[]D'{JJ a-ߥ]g͉DP۴˗/{{{(yhqq޽{'NXXX~-9s?x`xŋ]\\$U؊RSSC&L^XX8|gdddgg ԔB| Hpϟ?xS233[, **jر~~~>|!OOϓ'On۶ӳM F8^IĞmхB!v]9x9Z_~n޼YR-6-RRR,Y2}j[JKKe7z7nddd_إe"9s&99yfFr'N?WWW;wð-[0gϖ_m!H~-$B>>>x/bR$U>N뀀ٳgm|+V0,%%N-t:V8R// &|2??vÆ a٢CӦM7n0yzz 0ŋϞ= C17|/c֜?~oذA O>|V ۅ~Cx 7sZlz;;zҥjl--]KKf.:*++Buuu)h=Id |A999(i&}"a i\\cfF9={ :̙3=zr6mӧN5jԉ''P âw޳g{zz'qRU a2E_RTzCCF vT]]=o<##=zZfKf؄!>>^SSSݻwdrjj*' )&ّ?sjk5M4bh :M&}}I&M4I!u>W|]vM~I9>_ϡC \\($N ΁22,Y7{{|zDQ(>>_GmWVNUzÕ+lM&+DE56Ν3sE@@-8l8DڸѕN\dCCӢEE sحTMS^/iק$Ṕ烂\VrVv_?D"mpһS;@P']ٲBD̥KuL˗ӵRJUG@P;w^ܽRdEtdE֬I0L\$Pa7^E=JGG3 iN|WB@@aOg/nn# u8B^"l $PT֠_8y2Mn߭mҸƦ_UOn@uUNǣ#G;:$:yh˜ 㣡A!:"A@E57eedHN΋e 55,$PT=S;rd#7סaìbckii1 rl…yy%Ç":K<=ؘ;N$:@@444-\ٻS?̜pPX〕QBt4H&}){L^pw` Jjj`&'/5~]Et8(DzuVZڊNIDATNpؘ~z={p(y ݤ$;'N,2vwi($PqY{z6JI@pIOOԩeAϙ mmѣK{zzD,@hw3gȑtt:auF;vl_8psQ Ht[||~wt?HCrɓ,v($P:Ε+އv߾y]IT*_Ӂ(uحTM#:O֦%74pn,|*H(с烂\Vr&:UH$҆ gX,Ώ?j we˖ 3.Gt,e::֝nh9$P>U^^vyqK-CT`lT5)85͇F;D&;H|FA2t} 0 ۸1=6zt\/Puy{ HlllڼٍD"!^1Ww/\[FtmB 7LN]0a?t&6/xBl}%&愄۷fdrLN| kklQ[ARݻӿKZ0i`S廓_WT0y<BHO*@~qqB<ڵgў=eҤꕝ]XQQgOPccӱc7 M -R)`bKT`jׯ?x|r]]PP@N,VSB_VV8:{"*~&@4bzwdҐ!=Ge aSW,OD* {#66nР`[-maFI%͍d{[}=gĈ,E9:gδgkk!7o>>pK D| \O!I v_.|I ISbxSS5mw}qp60$LMT*e*g|$PڇŸ`-_>AQ}\./=ΝKJd2/@W.s8d2!dcco߼w7|XȞ AQ?ysmlB sĀ=ЮZpǏ/z}W_|ћ:?SqvU{uḼwhkk\'ZH]QAAAEEQ%>pJX:'6r5۷SZS(_b=Ә" LLLlmmD-MDt-++K!{Z}g <'̟΁    EXQQ >R)))t[ ݻ+++,aN"ED6zb)duAٳbz򥱱1`͚56,,,, !TWW|!C(/rQn*///))c2Ç#,11cbSYW:I[_y p%ggwC >்m&덍Yhhh=BBBuK&&&fffNNNgΜ۷ݻ%-fBVVVjݾI w9 ɓ'mllB #88?\r劕UVVVxxWk!Ο?oggշoǏ#x`$Pi|)|~TT_}Ѻ-~bbb~LLL<ߺǏ?~ϟ`wޙ޹s/ܾ}۷osɓ^akk_Ib455<^߮]͛7yyy...5o޼u{+Vx捤Z$L&jhhhkk>sLбcǘLo&5;-Y!hjjrpeewJKK]6k֬W^^Z%SWW'}SEEE RH8)߾˖- NOOŋ7l @.\d[]^+|d9߳gСC3g?d2-Zdhhhdd zp===kjjֵ0 KJJׯF8p`zz\.wʔ)EFF/==ﷹyt:kuעz||gτ%w%ɩS|z-z<(w)m [[[իʕ+lB铡#[Stx(kkkQFO:ջwoԄ>8N->b ʒ1th(Cx$P:-===???Y | i1R      H,jo)((PgXp'RWp뉎###2SX\B!J @@N@@N@@N@@N.yaBIENDB`XQilla-2.3.4/docs/simple-api/structXQillaAllocator_1_1rebind-members.html0000644001725400016040000000506413273140074023277 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp >::rebind< _Tp1 > Member List

    This is the complete list of members for XQillaAllocator< _Tp >::rebind< _Tp1 >, including all inherited members.

    other typedefXQillaAllocator< _Tp >::rebind< _Tp1 >
    XQilla-2.3.4/docs/simple-api/classStringPool.html0000644001725400016040000003047013273140074016650 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StringPool Class Reference

    #include <StringPool.hpp>

    Public Member Functions

     StringPool (xercesc::MemoryManager *mm)
     
     ~StringPool ()
     
    const XMLCh * getPooledString (const XMLCh *src)
     Returns a copy of the given string. More...
     
    const XMLCh * getPooledString (const XMLCh *src, unsigned int length)
     Returns a copy of the given string, with given length. More...
     
    const XMLCh * getPooledString (const char *src)
     Returns a copy of the transcoding of the given string. More...
     
    unsigned int getCount () const
     
    unsigned int getHits () const
     
    unsigned int getMisses () const
     
    unsigned int getTooBig () const
     
    void dumpStatistics () const
     

    Constructor & Destructor Documentation

    StringPool::StringPool ( xercesc::MemoryManager mm)
    StringPool::~StringPool ( )

    Member Function Documentation

    void StringPool::dumpStatistics ( ) const
    unsigned int StringPool::getCount ( ) const
    inline
    unsigned int StringPool::getHits ( ) const
    inline
    unsigned int StringPool::getMisses ( ) const
    inline
    const XMLCh* StringPool::getPooledString ( const XMLCh *  src)

    Returns a copy of the given string.

    const XMLCh* StringPool::getPooledString ( const XMLCh *  src,
    unsigned int  length 
    )

    Returns a copy of the given string, with given length.

    const XMLCh* StringPool::getPooledString ( const char *  src)

    Returns a copy of the transcoding of the given string.

    unsigned int StringPool::getTooBig ( ) const
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XMLEntityResolver_8hpp__incl.png0000644001725400016040000003326113273140076021027 00000000000000PNG  IHDRqwbKGD IDATxg\WP:7Eņ"*F`l@5` c(D}lg]e]f;gسg 0#B @!*.": BDG)$***--ܜ@Hdee! @>0DGDbϞ=D58!p A_3}4vǏ>}ussimmmly$"Z̙37mڔ+`_!)>5&&&nnn'O3f|ccѣG/_nhh/PZZGccco߾tSNikk @IIGll,BH^^~\)<<|Ϟ=.]"HCPAK.URR A?#ѣGsVO胨To|||DDD||/BpԩiiiCF߷lmm/_?\z!aЂ ǁƓ'OݛrrrڏLPT_qGGGGG3g0 Г'OV^moodɒ|Ɇ̛7mmm1wtܹs={sp<{ѢE\zuܹ|ҥKO|xssǏBI:k=zR__޼y;gǏL&BWTUU;wNJJ +::$$$ ZZZϟեK ?^QQq̙|222߿—/_Ȍ;ׯ_511ϟ??{mBCCuOLL+Wi@0 +(( ɟ?zL&O2?dS EEN\f쯱ߚ?̙3B>|8JMOOG%%%۳ײp„E{oٲECCŋt:ðfiii8yfmmmCCÕ+W&&&8q"F{=B(99B_~ݺu#G0`&,ZHVV!T__7_^OOoذak֬ag# 'MIIIo޼9z W0uC^ZEẺO5 xQ_aÇ {ʉ'89rdذa\#Vsn L&ŋ ''2ygϖ}i۶m111$t:JPT[['N;wnƌÎ;!,,W?oS޽{jggǧA_իaTφ L2ebGشiSSS7Ҳprr믿:jҽ{8C⢮.++KdeeBW>uڵkI$Ҕ)SݥwR^^/--ڲe˩S<<}:{\|@8ץ@TTT]ڵ@͍+AloϞ=ׯ_vVRR?gcwwYf r]D;w 38zۈ#n߾Mt¤O? 8B @O0O/ V[F(" !];$^TTԞ={Q(rrdeiMM"ZfwBVQqrS?MMLx=oM,Add|9{~Lߪnn֮QT(u_D,ŵO##WTllM3Rů^wA>a~>\wZGѢ Q>X9OӿF;7 -HANj@'Z[#3o4~A L}:e$7 RRvVtԩ&M54ճ"@:yڋ#GUW7駙ZZJD%ZP. W&򚩩IX& qÇ 臠>dEF>?|n}}˲eׯ@tPZprPwفq>U,[6i;55y#GP.ٙ2D >(@ATZZwȽz}z蓠>_.\xxXm.C"Cb[pr P]|? Ϭ+k@̢;߾bL%%Y#\\ >Fk9t(>,ặooDtD} @BA}Зݹv׮,s\|' @$}SYYݎ7q?`t:NN?  @PH .gd|f~Xpr&$ҽ{[\UwDp@z~㉋ \0`\\"$oHM}:p@orJV> ]9rd_SP.$Crr,,BBV# \PH+WF99 rWPt >k9rȑ~r : ֠\=jmelx9))ر":@}P.@L56\y.=˵kǍ3$: y\]8krs;sՕ+DC)Nyygh[6#\@:9SW(>(@{Pzgߥ" RP.>UU ο2nܨDt8b^@P [6C2"@mKTW7ܺYOOp@qwGFz(+nxy={)(Ӌ`Z@ d_9?ڵ ˅/^vMLߓ&]t\:~O=g{?Z ,sCR v,.^|L\\NMT|2~=e߾;!!˿~ѱt:;oBss?8NQMمZمB$BےP_k׆3><]0XJL"qWƢY'N4&$6`ßSWW[G>,d2i±[>{'1/$:1d,,v6|WIi`FF 9EaauDijs46rE&'L0:~sغfͅCOt,B!;:RJ4XfAmbXϟ3hqqmza^^Wc4\q$,t:ѱ?[]J%|`UΜy8+J?sfv=OG3F xŵ|`0X-`~xj t|?US۶͆!H 9s&J,Z{(P~~˗/8`JJ1Q(D"!DBaakc0XL&k?,1;&Uc {O[c֬27onP2ЇSjLIffMH<}ŋ^*dY$LAB"I2$D"HT2YD&Q(!܏?/>JLdƧOwddɠL׉&suK^pvK;ˈJ%;;%69}}Gt,aL&~c0X$8 !88@$L"Ȗ9"KMppL}i8;%I y ѱ/@>;ov сHyFbbasZ ϟW\btd _RQQ+--"H&&&\3-g͚E"rssH8iҤ7o`CJLJJ޷ϩ7'ojj MMDB0}}}~yӧOjjPVV޾}{GGY[[۰aX~~۷oٽjjjAMM|ڵ֭[۷o ޶m{3fDEEYY[޾}&>>lZZZ!-- MM͊ o\t nE]vM!s5a:;;;;;_&66VGGð+W444`֖JJJOMMԖ.]ZSS־ao߶2dȥK0 |߸q?LMM޽{wjlltvv޸qc~~]VZx1ΝQϞ=CvWѣG{{{޽{KN4?dTWW2o޼NUcccCCCCCCqq]\]]eddM6}ŋ;x|N]۝n7 t[ppѶ2Z#a^`VSSgiin433+))_'&&ZYYX1 :t͛7wٯjjjX,V}}=쨻^̧b͛GP8!q;v`nggqT|vv6s(Jff&͛7lWWvW>% N%Y3ECCXeeueee_ݘ߶B&&&x˰a;ꥢ3===dt ,<˵sTTa  *vhlltww_jsʘL˗/|6{[@$.]zpwJt tYaaSf̘nTSScjBRRR!|͛7#{577XիWϝ;gw:8|f**i \݋===:4ewwwhu}}G;YY+Vdee?pMMM 'ǏuuullWvA>6ٳVVQ#:#ĉBxBbVZyȤ8};v(((HOOwpptҝ;wffffffnڴ^$ƍ4MJJJVVgXA|eeeХKh4ډ'8WsC8cniizj͛9P(NNN}]9BگNQQ.%%h"OOϼL$g tåK.- H?~<&&[?~TUU_WTTl߾8/gݻwkiiS&jkkutteBT*^ղ$zɓ'GOMu떶6~F\REEEUUuݺu?ooo%%ŋgoYll,mmmg ,00PYY?ԃaNg&##{vˋ/drtt4KKKC ?6~L&SQQ1//KaXuuҥKUUUnsch@ ĉ{}|zQ.qojjG?FvÇ[0ѣG!ؽf͚@@OOϟ֯n߾[SS455ŧtMMM :INN4hPZZA՗-[_ɳB(..r/_F1 +++yz!D\Baaaϟ߿ c8q$Æ SWW?p˗ {nWmm+[ZZ8بQ YYׯ_q$$$߿Clmmح>APfO\y e˖-_TSSx>>j(___YRRR322ƍQ3gΔ;wJ644:tg_|@vw6___H{{NKK ?dT[[+++[YYV/^LBCCB...4-$$!TYYa?~>|=_t W-q6gv |X|{{><{ؘ=,Wc PE]whg0Ok8ð6999|&{`hii%''c6{aa?m*''s î]5,ßA>"NjDj&:'5OmWPP@!g8(ʂ n޼YYYs+tttBdWP}effg#44޺U'5OLg gg[n]~ZOO8<xA0:jyI@d4#&*%ړ~axyݘs82'Of0ҥKٍuuu߲eKnn˗/4ay∈lBp>Yxo!Pg`xy<qLd=<<HnTG ϛ9#TTT߹s'...>>Lԗ0QKc"CZZ Eт(++swwS>055 c_x&bsL9\nV1!>2ѣucMuuuW{ihh9sFFJ%+ZIDATLnWRR_s8/b\GcSxܾf!Cԉg``h,EG>b=d˜3gсxxxƖ޽{}LK;̥1۬b=InUUٖD@_qFooocc_~ʕ+x{``ȑ#M6bĈ3l```mmyN\vmEEA\]]g̘1{l;vi$L l{:_+H$ҵk\\\;,8ׯ__hPN_ׯ|(m&O {7cժɢѣѢK)(ЉB"/ ן+*,>֭[%hZmmU.+͔`_05VRjnxO__„ DGxPTTtwwQR@>葔l]]C>#G>f/0,:U@@€SmldɓOlk\a@Yp>G%: q_hi/ NNa2@ۛ'$d %6O>3vс:lk{-(''ass:6ݗ--M鵧H/s;|ަMjF;v\bbp|}?h@i m{ޙ=LbES(S&&!#D'waO]kCt b!99{ǎheE8{7h͊E1~PXXEt@,s@>K'M**vtsuRSݺlmHw?}#b ==(qMe듻ܹ P17;vDKIQs5Kat A7=z3qqMU۷G=zaɒ?\(Def[7AZZL=|ݐĬy ]'Ak+G(JBΝs6솧`Aؕϟ;ttmn$ 9\ pA>蚜6yhmۮ/Xp@}ߍK C2Gff4H@ 11kԃe;ҥ*DG5"]]4l_\VF[Š笭MҶ;;%: .]U$0 :eW=NpUQ#:n .]]aDGMyyοE|3y)\ pA>PNd[ ΝWGYYiP!9?T=dсt˗y>> }|<肼 =o$erQbb֎MMm8M :Q~X~A^~YY鼼q  F^~@++1cnO~VYY=kժdrA$g>.\M}[bazz߼x pCPkj쭄L2`oA뭫kڻNDij3ڠMIld;wްXӧӘL!deCӦ y?-+d2%%VMnV\?T*9$d9#˼ŋ45IIQt&B''70:dkk[2sZuoVƲege,n/,޾=NNQY D&HiMA&b (8!%%Y WRe&uޕHhՍ! :mZPAANpd 8mm'tp|p*{Jß^dajllsyc m&8~g, 7 M! (L6(J54H~7Yy+7?TJbΝs]7!\ɛL&J?z\n l͚)qՁ 2`יj0~NFz {$IV (ɤӇQ%ԩuJ&\\vu;wޞ9N*aںj7_;~|79B9N(+ZXHHJ`t˖oIIQZZ&"PR Yf2YLh霽Ezz\ҺKZW}T^^.x֮~HcccyVVpGI(b}uS$x477q"|B$>|yʕ.dk*nE\H -[$annn򂏟wf4 As?bbbϟO>ᯕoQ#Gyzz"6loaa!9=y򤤤˗/.\hF#᩸8""";;wbg?b:I|>HHHujjj}׮]jjjGmD57uuu---]]][[[n=zB ĖWPv `r>}nMM B(22Դ!D}||455544|||t:^'''4(--РA˖-cm !gii9`CC˗/# rrr<~=~x(;BHZZ:,,pBXXTGA q#HgGpnc&$$߿7bccʳQ_^~K9w|x왱q@@F  R]q 7o:::/ML___uc=ם|PSSgiiyaffVRRNLL1 :t͛7wٯjjjX,V}}=쨻Suu5|cXͣP(nnn+M:ohLN4 ØL&.1 v횱1FqnfIIIx1:ujƌ^^^F555רgϞQx|͛7{Wss3Ŋ^zܹsyv{g` !TTT$Vpu/.. N<9bĈ6 nݺh+WTQQQUU]n]cc#ݖooo%%ŋ{av5###iii33XfϞX``~0:nmm-//;|=,,LFF/^hQo-}}}WWײ2v$gLvU5>Bhh6o̳/Co?xm)珘`:tXNNn„ x!Whhhxyyb1]G&&&שg#pkN@A.H#|ihh9sFF@B @!D~ϖ4bbHCC烐Hr~X_],Ӧ)(( 0 %e?@,RO|B.uf]IENDB`XQilla-2.3.4/docs/simple-api/classVarHashEntry__inherit__graph.png0000644001725400016040000000773113273140076022155 00000000000000PNG  IHDRpmgbKGDIDATx{TG4 r{PDm(k8x7VTZ*Z*XXkK[Gn `JZy@OJ%d?wߔKx~g滳ѥ!`-0$ > 0)ɛ6msB0f\IAff۷M(**z&d+!F3% t4440̒*R^^bD"h4>`BCCi4>ZI,۷o߰aT*Ǐǧzyy7o_D G?RRRn [lk~~~fPOL(P^^ގ:~GWWBHP$%%9885*))IPb3fLuu;ƌcoo-HpmY ///6=v#G z{{uCho#]d2wfE"f ƏVq$<<bqp֤I32296bĈ\D"rG޼yL&lʕ+qN++ׯ>zҍ4NLL\~… oݺ% _}dϟOKK "')).6}ւ&gLJyyyۘdHOOf''emm#ڒpҥK;::`ɒ%999#вe˂ZZZBɓ4_YYr{{{B Mҍ4Օ㥥QI&sM:wP(DM8 _m^xa߾}DVwvvT@Vϛ7`,_Obmۆ*,,|뭷NIx/> EmXP( Fcc#*++?~fJO? ۳g^h!3Pym9r$B(>>~mmm,ۆ4a֭[g<\]]ޑH$7nм`7xBСC 㯿/?޽kggpttij7ߑS*`ذajKB|烦&}+...ف>PTvjoowrr 6,Zߒ$$$hvDjj*D"wed2SZZ֖pd2Y:j:<( 1uxe1M!jnC a2a*L&j1ҥ-^wEbN,}}_̭ŜXz{U cN,7:;{ɤcN,N3tP*UBLanEfr}ݭ8{Q|,Q;y%?4׆4ԩkfc^,N] J>TmFIfB} v V*՚ADd^,/)KZAZ|fd^,<:A_D]壘R.)3$'GPVL)bYbXFpqI

    ` !> 0@|@C|@ > ` !> 0S4? L_a8cU 6CQommU*GJJJܹqgD f… }"d}@ > `3%cǎPDEFFFDD,X@oz@@@aaѣάTќ?~׮]qOO=zȽ{bbbnښmذ9766zyyX,nkk{ڌ!++ w^Z[[׮][^^{)\sBB:{ĉX}W45#$I~~'|1gݴijjj(Oھ⋆Tl6fL&M { sttljjˣ&TJ3MJJZxqww35DY^pA~1ZjW^pǏݻw_!ډv:\tiժUf͊:{,Uڵk˖-3gαcj;wnQQiۻw/Βd!!!bXBTӣɓ'8p!`c,I@2$c3:::֭[oߞ9s&twwرãpݺuyyyR\b^޽{_~ĉ9ȜVĘ 666oFuu5ǫ:uX6O<)qqqƍju3 L&cX!!!xkkӧ@gg#tVN-ϟocc3{}"`jd Boo着Yf \P|J5w܍7ZYYiQQQNIIs>dzzz~Gڻ6mZ~~ӧ7noO6o{O ̙3i]L;w'OK/Q ><33&LOGQX$N1c@ 7n\}}͛>==gƍ'N4 88Á}h6NXbuuuGꫯ>s|"|M\^UU҂HIKK}5SgzOOZNKK;}tXX;;;g )x-}zVV-*J&P(:Ժth>?2eJoo/Rt=z[&iO<OR>|8..G333O>;o޼ &4P}}}yyysssXXXVVq7n ((ܹs:lll֭[neeeVX/:|mrrr>|⒚b$!!O/NNN^^^ .쳋NϜ9_cnڴ)..̙3;w/ lqmNmmmqq RSSM߾sɈA{7Ͽ~JJJBj` *m Y;w5jɓ'yBz̙h4 [xA_nܸf͚ЩS-]kDL2*2csAL넿_47ŋkFw d}@j_IENDB`XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020743 0000000000000029c7cdf11d74593a4a074fab4bcfc10fXQilla-2.3.4/docs/simple-api/inherit_graph_16.png0000644001725400016040000000446413273140077016502 00000000000000PNG  IHDR3^;bKGDIDATxoLR)bj35W=Un&YLV=(44ҵenJjmKF,Zdp~w_>9o}=Q q@@j󺻻mV@f&y?Bȟ$''ϒ6jlNLLD 'OLLL? D@@!IhIII*jZHiI]]]$ߎ^˗/s}xϟ?Μ93w__MKRϟ?DtA߿hFFFU,?t:󋎎...nllFYX,CCC3׷ȉ$o۶l6dZeӳpqqa0h!22Ba ]__f>|M&SNNҥK FNNdIK"Bahh7n0LG7o}^Ą@  驩[:-ɟp9t"@^|9٨'N BCO}ZPاňU -- :]={:v…#GPT4۷>N_jnntD %uƉǢEb1[nx<8L DhOFsQdɒQna6L6mtfb/f||<;;by{{x_(6g 7t:=`Q*6###E R9bس#6~ qEp@ׂJ2LTjJ6pda@JJ˗o+<EEE<&o(۷zJ.m? 0?Ϳ-=Nr9N~~-[guvlyn_h4J$B_&L&/Ls8B"? D@@9[[[@f?}^vٿ. 2WXl$O!kB"rEIENDB`XQilla-2.3.4/docs/simple-api/LocalFileInputSource_8hpp.html0000644001725400016040000001031313273140077020511 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    LocalFileInputSource.hpp File Reference
    Include dependency graph for LocalFileInputSource.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::LocalFileInputSource
     This class is a derivative of the standard InputSource class. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_32.md50000644001725400016040000000004013273140074016360 00000000000000e0edb5059e547ddf0b427708399a1f0fXQilla-2.3.4/docs/simple-api/InputParser_8hpp__incl.map0000644001725400016040000000007113273140075017705 00000000000000 XQilla-2.3.4/docs/simple-api/XMemory_8hpp__incl.map0000644001725400016040000000006113273140076017031 00000000000000 XQilla-2.3.4/docs/simple-api/XMemory_8hpp__dep__incl.map0000644001725400016040000000510713273140076020026 00000000000000 XQilla-2.3.4/docs/simple-api/functions_func_0x62.html0000644001725400016040000001156613273140074017331 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - b -

    XQilla-2.3.4/docs/simple-api/classAutoNodeSetOrderingReset.html0000644001725400016040000001757713273140074021454 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoNodeSetOrderingReset Class Reference

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoNodeSetOrderingReset (StaticContext *context, StaticContext::NodeSetOrdering ordering=StaticContext::ORDERING_UNORDERED)
     
     ~AutoNodeSetOrderingReset ()
     

    Protected Attributes

    StaticContextcontext_
     
    StaticContext::NodeSetOrdering ordering_
     

    Constructor & Destructor Documentation

    AutoNodeSetOrderingReset::AutoNodeSetOrderingReset ( StaticContext context,
    StaticContext::NodeSetOrdering  ordering = StaticContext::ORDERING_UNORDERED 
    )
    inline
    AutoNodeSetOrderingReset::~AutoNodeSetOrderingReset ( )
    inline

    Member Data Documentation

    StaticContext* AutoNodeSetOrderingReset::context_
    protected
    StaticContext::NodeSetOrdering AutoNodeSetOrderingReset::ordering_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_7ef400d0cba7660fbeba32656f2e8856.html0000644001725400016040000001106613273140077021023 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc Directory Reference
    Directory dependency graph for xercesc:
    xercesc

    Directories

    directory  dom
     
    directory  framework
     
    directory  sax
     
    directory  util
     
    XQilla-2.3.4/docs/simple-api/dir_7ef400d0cba7660fbeba32656f2e8856_dep.md50000644001725400016040000000004013273140074021357 00000000000000ad94ba7f76d92043ec4879b9b2bb9efbXQilla-2.3.4/docs/simple-api/StaticAnalysis_8hpp__incl.png0000644001725400016040000025107613273140076020411 00000000000000PNG  IHDRNbKGD IDATxwXS{#j%HT{:뵎Uj]U[K7*j$,eI:?νQEDNs熓(oA$VtƐf@ Aæ'Oto@,߾};003<<ߵkՉf6o,\]][hΎzH=MqrrQWiL\\Ç+ lrԩM4SgLMM `0M*ߎCiii @oV$nݺ KG mq͚5|ɞ={РiQQHcB`3nܸ$}޸q#66ܜzBXfͅ rJekUz r\* 5YuݻB~k1+J2fK$_+*++y<=٪ZW.zʕv߱#\__] r,8\Uϟxu;EQQHÇYl??'-B2>/';G$aa=.ne2ŦMw^`Ȋ21%U,~}Ǝqf[.::9**)::Y$x{x^<N@!vfAnDDٳ zS 1Xf>a/L auR.]zdɟ;wsޠX,?32Rxj{{y qCC}f;?߷Fyy]hϜ9֚&$dOL66F\fKrŮ]1?p]~eA۶[qz*/MQ(޽CB!!ޮm{!hWHDbbCNz9a{3f nm(|YG{yO{ͧVJH^p}}-jK44Hnz ;480@;YP׮%EDݸe3mڠc4qk֜8 cU*֊W8_ 3fmF{,+>"#=+66458+4GE= iV]֊O߻z~~fNd2ʕw͞=J}'O_򴳳oMuv6oegB>_xsٯ3>ܗ2YUoߍc2Qzϙb񦍈Dyݼla~Sp0ftE++o8Z*@U';vDGE%9:N?<}hO:4ϩls2_#l ټyN]Q)rEPPPefqz}q] ͪFvNM-s5+`p_-WO?zzZmge2۷O߿{Z%>x4ȕx6_x^ iV9r{}s!?Ҋ&Mڭsq.hEEǢ ZEKeeu11QQI׮%Roo;ϋR@4܈gLLtߟ>DLHȞ:u١Cߵ5چ3=hO>yoÆo=V46֭1cl0VWW+'<..Ʀ(dގ!!PxixY%%Shhƍ7o^qԃ/<>pݺѝowؔMMΎSUX)9:szdv4KuYDD\TTٴi&OƛUNϟ?oFm˪vcqq_|[x E\at!Coߍ͛'LЯb_ܷ/nؾ7iQ)|YPXXekkqvPէ lHd=ڵ+&9i֬>eqUa$/?yD#Fh K,Y򧅅Ν\-弁Ԣ(ad,--ΠA<7$BT l{))=|ց7kkš>s%IrŊSǎ݋qr,?ώ<~7a3gʘ>_xz\rmy,xٲEq"~Ϟ؂Cf 4U5{-*9rZa)-]X\\_/d'cdgB>_xsٯ3>FF+@ulVVپ}7d2F=wn`tJ55QqgrTA}79m6hHd~K~N? ;Xee͛\[+vsY^t҅￿o_ر}7n1y$ v\tHԢ(ad,MM񸖖t]E'I%c(.ٶm˛9r{}s!ִv츶aå顡>t;h? kkj I 8xp6ѯ.&&9**ڵ$Xmyx\__{KN3Y w„] :*jiӧ""ΞM01 t]K}S.=;5f +'| R ؼyĉi,L7ҨkLx9Ԩj+'}̘>?0Z={]{Ub0eNNt 211IAN@[pװa*>AԋzY>_8{LLl6˵-*>w{;[ͭ1f*%pذ*L./b5-rr|allBA yr"8Ǡ +Fߡcq=s_A  ԩ*ꥶV^}o_!<7(SOOSy~daI򴴢C/]ZqmK-T)U=07lgO_}޳'㡟rK"&ADӮZiee\WW@3˩Uyb1s~kmm4`r4 b>6M%5K 7rL&s1SaN1c?UM),KlL&'bMކ .P]RťROO뤤pVVFHP5fR=1A4S3ŤQ(2_?g?IFF?{&"&In|tZ  ѣs=.MQl~ѣl*J,`,_CNrfܹHc5-;s&ԩ,C__HXLTXDDHZVo1]]3g>Po/ܲe U\SISXV_r͎ #Gn}0-Lx= ;;;$ Ut$+nD&&g$$xyy:Q tg񅅅z!!Q w/#0pa$m2^nn*@ i)MLtM鮥[̥KGX[]KG7#ῢ_*++.<1e 700#j %%%tЩtn@u泍/ZNw-4}y CGGCS20p8 E@4K ;g`kҥ#Gdkiq 54غ::3KJJh)T,r…MM~k*:uT ,nz(źtN؂Ǐs~%rժ0//k$ ''gr]e uuuK,qrrvuu]zX,~Z<~]  ۰A6i6##̬]/_wJ 8uW o>rgϞ5jTl?OHH8}tNNξ}Ν;tf_B-#G;F IDAT޾} QjkFm0XP|lƍ~bũ/LBuz\ddɓ'[xe gϞzj޽ 077ߺukxxm^=l- mmmmmm j}^4z .jii9;;>| $y5] ѣG===MLL~ Hܵk!C.^urŋON~ϟXX]8mee%AǎsssW(۷o0`@LL 58Oŋ{ꥣcmmeeeT>l?/```sNe ~%/_o" d2իͧNZUU]Zh̙3uuu:::=:wŢE JK.XtT*}Hcc 6(zW:F_R/]D4w/UUUM6nɒ%bO7o.*b455wUXXo>6]WW3e;> ::G'bر{%|޽W^---.../Ӭ☘מ+=|U'ߴ$o[[[MMM?feeQǛ MD?rӧO{%K4'/quSSSTJ#G\B IKK{˚5kHܴiӘ1crrrA޽n8A#F9}4Aeee6[Fĉ'^{k IΝnwٻMz?+Y\1f7DkQ Lvvvʰrw l9666&''ׯS'$9f̘W|(2ݻk׮fXԇKPi̙3$NS^ڵk$I>|ƍ?I߳gn8A$IԫoYGz]]x$?+VP_7Y"X,e=sweHmFܽ{n7n`2i666Ap8tooo^^^oTȇ~mZԉќ9sB#={Tr iii}ߩuuuRU'ߴǏ{}`ʕ˖-kM%vuu{zz=Y,|̙ɓ'+R6ᑗGDVV52|ArS:"tttFyԩ .(~nݻS_(l?YD ɓ3g x4edǕkP(T~F_ZiMw-j&77w_}uɓ'~%Ət҄;wR^ 7m$I&=}` 6L&fdeeQ?~߷Ǎ_矃 ^SC ҨjffFuM$YYYyݗ[kvM8qSΟ?ߧOe^}n[ZZX t[[[q?Ye0!!!OH$GGGzZa.\lٲ5ktUd2W_atlf Ō3>cǎEEE]p 3f,]ܹsEEEW^[nQ"hhhDիWQ[[{ܹ#Gpk?M[ӛ:u .]q%KL8QYf/ogQ J_&]6<l&Ȯ]K믇|$`ѣ{s55U}B8]iVI.W|Orut4t!!tUT\\V X,Ŕ $@[7:rmmUfXLLɻϟ_Էݵtf%Ǐ?~Onaa=?.ui4>_xzL&x|d`w;xvwq99O6--ɐHduub꧝Yn?## !ٶtܣ GF.򲡻Φȑܬ˔)U.vT3*)dbb5<--ΠA<TH$jenZZQNNy^^%ÔJUUR CC{{&Sz)6#) Գ֭鮥S{7}W>55՛:u)T<6WrFڵkIbߍsRqȯSϞD lG*U4PPih |fnº@#6sݯ>єZ:\qғ;>q֬?A˺AҬX,?32Rxғj33@;dZDnHM-"nFFI]]#A,@adFXFòyq]e77+--okAmr" `xkQ{bݻc*7/W/jcfJM-FF 2ZU}}7-F&O>h̀N09&*563"#W LM..ZqٹNN#o}!;Ҁ  5PUհq#GmFwEiVg|02RXS#RC߿{XmQ7'<+HBb$A}b1 ]]--w7wvpr2D\Tf_qٍ+;bHzo,*l˖ȝ;{tظq  תnK|~Ruu-!ϯ*,,MO/y8?R&Sf @fyyvnfnYfG͛']z0V|eȼyA,VۑH'+|* ::xܐo S;T(*sKJjťX,B Id黸X{zZYXb2 i-=|K{&]BTNZZ*V9q{]|WA}G [Q3lkMvkh鮮JUiiE))YYehhpll ]\, feii@W ;ZqϞi]j9yܬv ɶl[Q(Ew-*̙K٧]ba+!vԢ(ad,MM1vUWmΝ񙉉yeeeb M1 \\,zr|}77+==^4t e2ŦMw6eʀŭ4bbܬ~~N r@wV@VR\\]S#VJ[cnnfٷS^ݻ[[0ix)tBY$$l5k3 .G]!ͪFY||Fdէ&&{k]FqqMrro<.S(--L&&r8,#S#7 ȸU}QxtB+WΛwpp_΍4|!/s9Az9pCC}w4hF0?-85H }$W"ii559Zj.KOvsrq`th v-iԈk/_̟hҤ?c/Ҭz6L;:sCBwRjD, O=}R(ʵ5MtlH$ͭ(+#BKbja}*i |_wK./>Y 6mLҬfIccA\ {#ʓ |+76 }}Ld2ynnEZZqnnIZZWWK*ٺ[Yۛ i c@#.QQO۸q,l@MW(޽CB!!ޮtoC&Sgg>^P}v6b2ԸeYdnE-1fj| af[{3BB<|pӧY3Q]鳦UΛw]%CUUÍi|On8ΡѣǏr*+9m^z9+dZZQZZ@V[| f[ʕgx?ƺtqǍ9zt͛']=z[||+׏6m`mK9ƍ4 P' m0o, Qfn߳C~NnvEiiTɩ IRCݭ-@{@m.4i6+죏~al6|WGYBwxh^W$;갍MQ(H.ז񸾾tJ" eܻYS#24-:Zu IDAT{'_S#j&k99S'S#_lkl߿ڵ.}Vӧ?ѠΠ;Lqh [C֭\RR`q=0P(gϊόϸs'=?R[[۶_?~t*ܦa`jaeiek`͍^iUenn_o:y^teGojp SSt𽱱)rAu1cUt \!Sk\]y<.ǵ4:h%wfܽ[s  ~!%P(,n ˆ˵qt4d!ͶJBBܺɜZ:’%'.^||]vs-\xlp&]UAͭ~=^*ɽq>>vqQN\\Cл n~zzJYYk܌t^j* A^zz\wwrmML 4*ZbrG,[vriÇ]Kg#IUbTyf)UD"͛Ϩj;;@;xU9+눈ZHM-ťQ9qnn*H$IM- jjD ǎʷ>>v5!Ͷʒ%'NZHw!N( u޼e>iC. Ξe06km/S(<*>}4ȕ{YY6=S*{xl6fm0v„~t oF|FjLLJllJAA.=7"9@(,x4O -("מJv!]ll4ȵoZU{w#GXXĸ]O?GLJZB/tA)QQInnV<sb0ׯN: _9xTSJJatt+}}nXX7]J lm}}|||}qg:+S(H7?ޏZ3t=u;T*^U[+&f>(PQ jkגkx<fY&&{|گ3[+(|Yp2MLt?τ yzZES55└ʷyϞ$hk߯]W2]W=~Q߾NtҎ^}:sÇgIw-'G 6]jedP ml,$Ir++W^^ɓOU֣كzZ_fݿA֓'"Hon}tsZC}7ƏM YT^^)4]KwN1 01}d-^jjQPЦW=d2uFY-$8x֥KOg 6mлNTaփgV>}yr=m4z^Bj iGg.^LOĴ;suYY9׬Ew9NoWd2NpX~䣏؝[~~7|qppAAU||멱)5ffzBcdPHv۷ӯ^B˹s,8|*򎬪sk;rd ݵt?Ebr+"~iNNm? IY~36׭[f*+駫GI..m{i$ bcSbbRϔw9׈=8כ9s?ڵsZWa͛'pZiiP(찪:҆O>о`09sf̘1mRO{`2,-$A ⿩f>E$)/+;*Utpv>cǎpBJJRS/>{vZɩ1..G|~L&p9aZq9w}A^wntW^6o"KWӨzvDM]øqtWЉ$%%{;2ߧ]Du.HrCC--6@[WWS[02`VKV?~kGxxX_ݻc;>]rTB9*GrTHt(ҥ[R :DQ%!Hh{c'Wmڙy8p ޽7'O.$\\**mii7ntwe NOoܹ0jlus`#ag'c0XX\\ fTrsdl|tvvô/662{޸_ndli9O' Tn:Ű3qҥZX0 Nj=xѸmۮ9b>|aҰҨm͹~=sŊ0v#j3g*0.<)?L Uyyad\EQ;;;..ڽ^XXԗr!77A'//BvΜ98ꃮp]Dkk߿1c7} {}us޽8!H7}Wz!@gׅ wwh܊adrH]^^FFO}.>˗/ׯ]!]kQuH$0QzTTTԠ7F%}$ϟ_QQQQQ3A*GYYovJ/p8ܚ5wn/708MgPQYY^uߵ붊Ccb^ThmmG@`nzUQQ2 ѣGMMMHIIag0/A;vH$mDEEn4CCîwn޽;WEDDDEELrСޞa$i(oz Ǐjy!낂mǍKH ""?x}>>w::(#YYiDE2 N͘qرR`L(ӣGoEE767adDGgIHl.,*++}˿}&,, C-Z4''gҤI۶m# syݻsrrrss555=<x~Z!![nJHHP{L&x~{N?8O0 "##r={, ?~HIIhkkCQŋ t{ } [zj^E}ݾJZ6Lnm7oJw츥-.i޼@5ۏע;:(X e֬Z pjjj EǍw-u>}<Z R__-A{ĨmiiohhHIIZeee(1 {%Wkk͛x|mm#GLMM233}ʭ[Ǝ5 1:[KP(gffz̩\\\oߎŋ.ElolW<<U fRKK[Lk{RR7^NOD)hi Eafd}nnô}>>5kּ{nڵ KJJDEES+**"gyyy%% HLJJJOOOKKcbbq6"cH~ BAAɓû>AjSޮ{ ə:oAEE-x}Rv8i{tիWI$i@`13SpiWp)]dKP͎.gOPR헕w.$HSmmmzz:u9RULL׾DP_^SSj*ss󚚚W311-$uMMM[l k=itttAAIf͚Jf;ʧOŻ& zjRR/ȑ#zzz>>>NNN݆ѩI|||(z겲*vA~:K~YP ҈sqqJ{-x}Rv舊͛7GEEuѭ~C׮]ѡ6w#T}|k ^[\d/>IpZ{r9*I'ﶱ9 c SP͎"^*Y~nR(_r%!!!&&b?111 ֲe˼߾}[WWϟ?366y&Lnmm==Ӷ&A2{|9AAAx< <<|̘1cƌAظ}vǎ]u7nܶmۜETTTCڸ wPyѢENNNSN߿umaiiC$%%pL*44ϟ}odÆ ^^^vvv},=[l[\\sz<8o=u_iiiUUU\tҏ?1_n{{={-[6P_?b9~?z<~rpBCW^n]dPcbAAA,+kllu"c c .::[Tt#)ƺuLM@%:uJUUE۷oR{+WD5k466v!&&˻dɒZBQ4**JNN@ (**FGGzkk+*U}>%%%,Y"$$i{ VWWB@ lݺsG555˖-ݴiSSSSopVV֮]j322nܸ5Xrr2 O&&&t㓓g{8>#NNN]_#Bcd2ߍt{ } Gnn9{;q`El7gϦoڱQQQWTt"#`QC5n4{sDyqIv߿hA^UU7cƌFByynB=.P׮]oA]RRr%[!|kEAk׮}ܼrff'N,㙇oGBA>xz{o12Rёc+4-2xfssu[sssQQѹsV^uKΑhєš{Mv01tum_gϞmlN L}@AP͎W[ZNb:4vxbʔ)4XǜCxv٫7 ҥKC뛱?v;;G<4}SLgAK~0FKg --=0 ZZFk-##ҸSA7`aa˗9G`C޽7/>(&iL:,Q!2٤Ic]` "n`eD_ wSY}\Ǔ&vrHK+_`Ԃj4>xkguؓsg}sse }TrrBy}~؜=XSӈu4# Yw~33Ӽy0Aqq;q8E@e%8bn6%eۜ9*pF#f߽{ofR `~}33e Tf()9000 ;fyܹ*X@[ENCZZr'NīPob 0b:^p8C a@=E Pm83/NjJϟ úqp(vtwUC/^~-,. qÅHQ{"yň|ncszD+u,Ɔ:!3gY<AǿBP$`X^^޿Hss;::$RW?חԗ45S89YddxtuE|wϕ.;e6rk~SS6JhhhHKKc nta*p,x󚋋mM{iRRX0d]W-&8xf*Y])>Uefgd|)($''"1upޏygq_Z֖۹s#zIIWoꆨOOwt34O @ Z32A33^,ysnnYKK;?? N2EFMM IDATG&7:xld>$ȓ&ݸ"`ʰC]H\..kJL M]"l[[-[[m>>^O%%x>U> &浑rX4ihƆoitoڴ]#::agqsiigd_ݿ( T B>>h=}##(38%CYY ~D ##{jhluu90OMZAАYTK[[N]} ݵBlk눊8x0A;\<]d{ fǺu\]/ hh`g$HI aarNֹsis2EQTeH:P2ʋEshii(JI!/ICCAw4yUUIMK+صvQw{[ll&78YXQQbEݻnrrBX!llŋ5/) Muuಳvp%aHE9P2/drӴiXv}#- - ))e]]77C}}Eۇ+NL72Rpƌ *LLAAn(I[硡ij..3'3!,czDRP:ӏii痗::v͟1CQBu!P[(<55eGl01acGD8Λw͛4))oon:s&y֬::zip-eLϟN6 H{;%/k|op8ee ')hk߆ݴuDD<=zKjpyvv7ˀ9/^\3oIgsV1pri/]+ddH+Vj h T͛2WWCSʟ y yii~ +Ϟ6m,''MO ;||TVt7l0d[VV7ːIϯ ڿ?'NWWAWW!/<<}`e5uڙbb0`Yeeq0(4',!!/>۷_::>>gTbĿ{"33ka2oQM,}qDmlbcNj>luiTԋs\dzS@5ˀrsm)aY0Z46|HHKL^\hh8~9ӧѬ|Xܕ+/TT$c~%ʊon brNNٶmEUU%=`j;wCCS:UyF T ݻD>>0jkm?ojj0A~ĉiEȑ\\l~~--ec÷S((\3;T::, u@ X[kX[k<)884i͚ Sfлw0qqor33xf=qY) y~ڙ..sʂ HKKè͙v˗GP֖֖+) KÇ/Y+,̋u4`dP2w.Z4 s<+02j̙Jg֐7ovモYla1\XDB[Zڡe`||aaܷ CsI{.ܸ(|v*k EOO3xfo~=|9]]]*:zcN ~B76~ɓK׬PRz$ n~attS 3g20訧u4`4P2rEǏjзEߜ9*GhhBёz\ɓǏ/.=`E `͝|[:$+&&rNNYhhW{訷t%Ç ֌#0 /]6::+**JB8{DssQx'Svvϝ ;w:Q89f[F)9s^| ͳCB=~4]t͂j|\-%%u |n;Y٥<機.VT8{{()\\lfG "̙'ׯ7:}&8`}ٵkϟa.A5hJKkqdrÇIJ OظxLQޗׯӧ$հNgXYYXXETT$%!u訷lٴ3͝j0ayYFSZc<:DG%%õk"b`0>8xx:(͗1--&WtyL88Xhz K HXl31 YRUEab:}yʋ+Wҿ~Ғ=|z\-Ev߾oo+ti+NNܛ6n4~)Cwnn(4iޅFF>={6̙k t>/P2F~~:t>}qqyt{'fmsmNN6xbbٲZp=qɚ532"#Y[kl`$.N: fJmm#ȁu 0TVq jTT$}}YZNacc}?t~Lk]]ӧ)(`hXX[lY%++ 0nn6GGK._N Iʘ?_hXe,`0PMK+8wIbbam=VKFF\_ϞM3F5f)ahqsRu Yv5}qQon H9󐙙jP2Ffjhh~=*mmesL㙱E)W8t>arϷF&7a`,5ƍWaž3LHL{hhxpc؀jO0))t)MM/?^ P+-ΧOUӷl3J#j ى+W`uNQVp}s2 3:: T ͂!G)445!!OJuҥZU{D'$)?j̘Q43//;L(bo_8YY0\tutu22/_Ji -q,C`ȴGGg:PXX!lojmeF]ݯcFDfA(4&̙V y`SD#=rٲP23~lJIܸJ;&&ܡCV}= YF5jMFԩ{Z,㠎ýY y~HUUm**XQ?~4,]сv]с~Z`(*<[Z,Yf+'Lرz @eP͂=|ƍW45eSSێ LUR(o ~ cmh$.Nu n+=ر8ff =^Q+3"ᜤ$GǏ/&autPV E~lHTtH䬭{ˡCVII}u_5ʕ:PT:-٥˗Ο3߿)"QII Pt`ǎII{00##>q:QZZrkuO8Ihߚ~ڙ3)Zς Hk+T݇ɓot֖: z,,LExfYYIǏURSV0'-#9KJc$蕏Ǐw5YNN3ΞM L(ڵ3a.͂ƌZ½ѩر~8pCKYA?^VV62G\݄ ZZߔHKI&v`eeeǏ2Ơ_(yyw:GgZǁmX,{S[[GTT)YY޴i54u׮]:@?BQo.?xLY@iW=}:ر!!NN3 778jvB11ܱLOb[D"g{;Ə}wq18q"۷XgOkcy}CCSb@#e{pkHK+=ڵ44d=6a: 0I藫ĵw]6{k_/>Ijq01 0>{*4??g|0/֡/"A:: ʲ{۷=+: (QQ{>y5{;nM 5-[P2^^vď}RvimnFE)dD,ٳ'(y{߄r58/f~=De(||?6a F_{::_. {w "[XXH}(--]r@Bˍ2}f,{-/\xu$$[''oSQܴ銱чߢ(u.,CeHz#Mͽ7on߻wO]]CTT譮dgg\WKK Aڶl",,,$$e˖6Ap8ܹs甔<)##˻sNZ111***lll5Ր쮛G;H$8p_sq p0o l` fWuWECBl`ee 9Su(CAEE7bbven~|XfMFk렼 QQQ}?~߾}~!!!BBBn*//@Ǐ/d˗/"RUUs"##{\СC-*--ə4iҶmۨ,YB&CCC&!!!TWW744WTT444tu ?~~P |||k֬yڵkK:BAAɓé ڈDb+p8gddT\\L]͍ A".!!4} nwC_߫_|c!窮/"g-,&,`*<|~۷_nz'֡ Y""WStBAcb^<~њ5ϞyiPOeee%o޼|»wBSS-[ 8p IDATLLL^D"uMOO7mSSB~zMMͪUkjjw=vތEZaHP͂2'XC gnyMjj澭[}^u.f„  .*ʋ(I/=+46>i`0>=} ~+W$$$ e˖o߾m۶&A룣ϟ[YXXl߾999&&&p7o$ɭx<} ۆ  333X0H$_mmXtFDwj'aLlƃ3[Yil2{ WGgcm <ȃj ITA fi]yyse(ob,I$.CuwOOO"xi''ZWWM6ٳ}oرcK,100(VWW5kC )..㾆dw^}?d},d$755P?j|d KܸxMe#ٖh2Ą)/:Y|;}ƺ&'{bX0| _ ;;mYYbٳg޳f)yyݘ5pLk:@#++=4FDT7hiLs*+NN˗ ''oss3P@2v<evޛ"a'"{uRsOb @OV|PE/^|w 'G ~f#ԹRNAp8 ޽1X#DNN($dylFV+@o~:>@5NNVA뛱2P|ҘvW̛uzjbV}qX'`$H\05YY 055kFE%f>QRRu(jtlmm?019 Ç{. ` B"qýY7TU%MMUP被p`wܺZe%Pl?89Y ttY&##Gϟ2_1w3g}|GGoPR]B"qя6mfcݻX# ÙnKI0}=2 \Zlɜ AXP M51#X>twpeba ,{rrBkkibb™lۼyKϵ}ϜIqL#FU}]IJUU%2|cÆٟlvLڟ:/==b@ Zt-==D⮪M@<?X!^POZT^^B7BK㑑ghxׯָ8ձ3) y..'\2s^INtw76tKGGL ݻ9|0 ժ,YX4dd;wևw`kt4`'`A5?YYA --_~]bEbc7b\ ݻL{:OOW|N_/͡ڠ6O Y08֬qL g)l][mX(f7fNj!WuN}Ǘ0L⺺_/>?Ƚ{o>}uz]aa^KG%"≵T!ܬ4]7++ g wio Gaao75049wnςxf;;w:y2~/>ooF ӸBBt4(_~~̙Xga@uu֬ . [il<8C=%Í/rgO0ё{գGJKkV-,44d<<^. YNm4 uXcSöj3)\\X4bx^^7BCSga 0 }Xu?,fCIIܹ'ucR6+mUU}544<͛= \"b`$''4L_`R\{MM˗ôFwf => v pݻ0!a4)b|A5; 'J~Bˑ{b^^MJJbX'N<Q.9-X0.ZM_^7{;V(6vӤIRú/$"a[R'88,)(u˕Ln26>E00fd bt33) Z+$čuA*)hUU/IKbb6lsw7pA8s&EF0;f ]ib.@H͂!4=" AҒӏӦރA`HPĉmmt4objM^( RS|ى{( V{ΝlGGW|N<dֵk벳K- j<0nNN3wfc+&&Ƴg;V;v졎3QZ@(.yyOX( uߥKN4~cԩMͽǎ-XɥJJX!!&kjbADSS66vcSS|311by9T`II ̛ <{=sMWNdfM T@[[séJfeuŊ066ŋkXӫĩS',X0S]拊akTV}訏uwoy0Bfʼn_`0&ª<'"{ rr(-u(@A5rsۓ&yEQwϟDD8XY}}cqSsTU/_ڻw7ֹWxSձ/W:ϜdIYXǡ9|_b0&%%QX BEEMU_tuyLPi)4- .󏚚FЍGbcߜ9BFGnnn z/44yFF.ww^^s ˗ӗ/Js} enn:m'~Z ]0qq1(`)l]tNv ֡}jH\R tӮI]} uvbb^8w99!C!۷](cvյ aœ?~t"͗y 24T8փQQy`; 5| S˺`ϻwUH!Su.0PQYt/>jh>}saj҉v^&77IITݖ/kt `6cd߶muH?##55e|fdtzC?j$;-fٷw5kYtcuụHBXPh;;5J(DD8?OOOiӍV FHh޷o5 zO@tt>AzҖCW Кc44(/(5+K}_X?`vv~A6( $C~~]li鎍u~݆<#,,oj%A-<|߼y&&7 AA7 77˦MKoJY@NN(:W:888t(F5;6-l.*t)QU]`1>IK+ 7nRSK44|2)+#0|~2nn nsqDD8 37Zaa0 6Gǵ-H\FQ oi5;bܔ2ؘ]B73 d阽{-[6 ]]}>ݺgeyܩF>+*&{{u'{ېCjBB0 Sa-PS[H>+c2qδH*PŋX, Sv4p8噠 :HexXSRzzip@[*EvRwfI"CCps44#8 pp,Qٯ_?7aew^CUiZE)֮]TZԅtCksБmm={<ܶ-HCC*#㨞K55-1ؘ>udeeEU99233|f[^VTlKII46ׅjj炃3)(hN8'Or2% i32`c7 "zffCBّK΂38dBHs10Й45C:`YchhP۷ED|@: @hhP˳{VGGÇjWcc[i..0 Þϯ^Mti3V#iii֮]oM1uHg!$QQ.BPihkyzAW#`( :Y|8;jYaccܹSΝXJ_J?. AX>>6{{u"\]>' z%B :;]v2T8:N~4aeaHqΝj446h~AP˳< <<" ~\t( GTHpw`%ٳ g|yy5qqO@G1޽_x"1.A=ch,y`ל9D_FAP(իV44̦U@DD)y{_/߳jd1Ug'4,aqpݳg]@@JkkY&b`ܝWtǣ54Q6(3SGMMb\z a8 Ƅt"0os`mff;Hg!qq1@R44[IIC488 PL~R5Cwڇ H2F:oIK;XEeY/.sqdWb`4DD8-^,y.?ȴŭ[wAII5kb(-44tB采Ao$hh̛Fg #,--={68laғxh,?'C:Ȭꙩdf^F#d`m}?v,*?vfS6qrE: 4&[W qF:D H!uum..^28498$a*߆؁h fnnb'A]nԄ>>@HZok#Y3Suu!b ߡ KNNŋVejjcʁ,ӺFE׋ HJ}F:! 'mݪ*.MؒaCUu!a mZtZfPMM9 fXIAA9A&bd !`>Y%;>8x'X 13e nnş)ܹs*+Ak0ؘM32]sv~2v)Y@PΙTǓﶮ--=H! {V[ӧ9~~DZ$&k6dz&ZIJdS^!e|JJH!5-ݻ*H ff[2L\oOdf!eF$$xA,o1c}`1@-@kN0}; yrB—>2moO ÷o,Gb++,>|x#(j߹s' [neaa!Ei^Aj&&իW<єo?ed#;t[f3>}y?&&ׯ vvvn؎B*+7 ӄKIjvv&ckO{5Y"aݿ_+ ǏNX &%"dRRJ~޽evtn4>իV>ռy9gxbӦM?~xIqq11߾}XPP ))iaa~w19w KD:IJ׷ P3JJJǎsvv k߾}^^^/~n'YVPPƦ ~mm/?A#33swP ްۿ}[v <f=К%ݻ{zF#d|\\,R`[2*pxpGv111ӳ6lA(Enk~~~~~~IIɋ/Dc4 ,,ti'NpssGpww9 _ (**}F[ iorss݋_KKktpll5>P mm#[,?s&ڗ/ H'bYb`|"1k2ܼyYzziKK7AǻwU{%` ?"عX!!={&%%ۋn޼)##ʪc6Ap||33hkkܹsV\ A???v)))㞈Bݻ'##ѣ糳{zz`0nnn|||nnn FUUvWWWX,GBBA;vvuu_2 îo[g```gg]w=czx䉌 ''ŋ!ٶmg+1)+**)tk yhBPꙩ3 !!!;CBB4hii!  JJJ8<Μ9#--p3g$&;<<<|dIddH9&0'd.]joo?ӧONM_22?F# _=VV>3tq JJ{7 wh9G ]BCϤ&>f۶m۷o'as//ott?!Sf``Ǐ!jnna޽{=}k]]qO FCe4}Z[[apႩi}}}AAҥK=z}}}cbbؖ.] p^^##coo/ 666ׯ*((?u$8nv>}i]Op>@OOϯ/jffAP[[ۥK ~b WWߕ?鯇䇈ȡr"HU+N1{z ѣG!:{_͛7/[w̘ 4ኊ ?WAAdii)??O`dffƷ+**XaNɼ| rrr1 O'6'|-&.˖-nnn?~ ĿSO98#Ou999444zzz111K.LNN?eVWWO/..ۡiii33;uic1Oן?bbcc:vѣ7uB&Qꙑb'g~|% ///GGIs :!ʕ+^^^qqq<<<ݝ<>ASd͟?vbK4zu."f fIB]j]U|f Yan<**oh¾+.s֭RZFFÇo/\0"Hpvvvٛ7o sssgbb"~ 166ƉSyfWXAOO~111111-,,kjj O81wsΕ>z={&66 "M=~xaaaaa_UWWGrAxb_$%vӲ3MP0dHۿopUWW3gJg䧴***~,'><<|[[I f::̣˖پ=e# fWw*(h@:X‡bc?!Ϝ9r7A3hkQT<M6ƍ CCC0 ?\@@}hh̙3gaaQUU})4|6\)""heeH|95AwhΝ;988vލ_nJoo/ȅmmm\\\_JJرcoaLX,M ?4Nq?00*((nee1ɼYrYY3)::z"dȅfXτ̙3g>DFF¿TAz FMMw78򘇱#! 29'g&&&4==&E+Vx/\~a,q`:P0EB8ljz{իCH[ۿazx7A +̖μ4G5ii3/  e˖RYY))) >_beu?!ŋ=Զ@:l ?^[[ɓnaa~afL@@ʍ)|bH'?F ϲ HO/&99߾u+M~ds\nC,QAAC\ܗ%'UU`!( ۵kYd02>9󓎎^CYR[W 7sp }tz⣬4N'5$  HCVVHʕ8%uHHeL~ٲevvvk׮E: y޺-=tݺ 5]֬X`ϞHg*O`8L11Y:<<"yx؎3yQ'!!psөnt? !K1bfk֬iooYr \\56}g!?nU+5 矊>#3Rrٜ9t 4>ҥK(K(>?D@@ϸG0|mYYY666MMx| k턯RRRRDEE$@dӏݻҥD+uH'Q`i.,|(+ jhh> y񨙔pNkMM " 0?sWUU˟:ub 33 F .,]ѣW\华GBBAh4:** V|6l(//ɑI5MBZfnnnnnN+L }?0 ?APii)??O`dffnmm F300}577?$$$Ғ,!!s~UnjjjOOϘR0Hl rqs C0 à>Bڍtldt SP%-d%vKK{\𒀩~EOuttӡ!ZZBFGGKHHLКMKKßӚ]hQcc#urrTHH<50]lAATcޜBo0{a$/_VV6!=G̝<<<`~%%%===X,6##&<^3O<ӧOuίӘ*eLZ)MhR9^Vׯ"`0y(KzzZggr@&7ӧz##FEeK}ITx˗/kjjb .js IDATĿ/!!۷G]s߹JOO?jkkP( ֮ihhPTaK,D|44$%]zѢE#}٩zUgA&'--@GGS\ 077ax0cree吐ѧ=J^ſv¿hѢqJ r(Bijy f;;[۲+ ̭^-!''t.9$Ubff^T=4s!l0Jddd7]c GKK[]]JHHzxx߿.j̳^;::rrrG\ZT4VUnArޤ*FFLOnxs͟SZ ơݝiӦlѧ=RLLlt=SRiNy/^T]ݢy!88 fҥb/nr%).3Y 4>76m0 ggKMO犊&&K rdddھ}ׯ_ ٹĉ666̓ Çh4듖Ӄyf={311ɓ#&][mm ++Jllȏmmm\\\a>{y.\7;ҹ`XXXo;wrpppqq޽wxxҥKsUUU[`111nn&I>#ƼYK&xwjҊHxRL?tƼNNN@+++^^^7ƯGbX NcSI4u`,""ND:@]P0L5< kiyW\88"/ͰYS)M]xxl;``~$;LCCD# ==ۇ{>B|j-'JEe4EDVU5< R_CFFᲲHEAA֭[?~חt(=P(֭B  5KvxxXCBrsk|}_"X)((|ϯUQ?^[[h\9::NMcnTTA&!$4LHxӦM\\\vvv7@k?~|! fɑŋ恁1135Ck~O1[W(. `B&/_ jk_KJZI#UՅx͛br^Ç%%Qzz?=޽,,o:br(*&O{}M`"`lxpB˱cn!@k|ܸB/6l?#k-I}}CHdHOoI\SLBVVg 88h]sw@:0,Yb_PСPz0hiivP F#wYQQOOw/k`coAT@jjZzVE(CkKI) L=t(*3ҡ&'&ٞ۷zUC|\(@JFF}{k;<<`e/ٳk APA7^Dt;;uNN6AP.@{6k+xx諨Lg_aw朗 ش6lSWbd$u-uuT+W^{y=H(蛥$ǏG={><|4C9Wװo+33=n~P]wTXWm8Vcc%_z`#)y֭m S<׭ҥ-DFq>~zK#GF,3<698+o˖kk,FرO_:l IK{ܼikdtP?!bcc瑒ⓖ咒◔-$ǣΟ7۶miŋ66.$+ܹo G͟O?mm=%o kkjkMcv a\HHo˖JJ'@@k `[[cc{>,/ozƕkk_NO?"%?S^,ص+$=$QQW<}z9@PaThgw3 /['s!AkTgIɏAٙ W11.WQQNjPM8^awώ(EP``͛)GΞ~0D&==rrǯ]޴0СH'Lщ*}hP*-Ϳhm_u>ͣGI?y˗3jppBN ww="}ߒ cVWҒYH+0-RH'(hR#kwڑxmm=IyK^8:߿61cp|3gb_k2I=ݼ/4mWZz ԴۮjOy;wyEvvmՊs 3h`p1*i1lX؇K^ ءE&~zmrrQNN JEeyĻ(&/_*9c2o3҉rZ*?򶶶܍6k~Xg`p52i*". 9Ʈ]!0 ZZzbc}\䋏k7oV>yҘRD:l_s^Ov/ W22";)mPSCC;,2,%ŏ9,%EǏu6n~?uu{nxCGGw:5^ 7;"9))~mm9mmm]P"wOu:,ήX+R]73 C+]{AOo4CUl`-5ܹU>m"++t"?Ha[PРs%%ŝlIc0XIɣ/[-#E,T_VWA8"RR@IIM;YZׯ ?ofkK5::zb9p@j ~?|NJ*zSXcErk.kdg=y%{ hRۃmlT}|6VV(+r VBիS܃ٸ|NL9v,*7$-(ZPp䋼͛O0奮۟eaYΉKKϑhGFiB []݂*Í7\ĸde==mT_ ~E9sbb1?).Աc 3OM-ILR7t=%$N54:aϞu`0fg8aH0 _I^^ub_դޝڗedH|45u~4GQQKŐN;l[TV&ߍFM͋@jk[,2BM|`07x|?qQ]ݢqkDD^^͹s 99URN O--`( /]J\XBJDY#88Ņ [rQQy..22{ȇӣ&=29?}_19gf UV6srԔ14T!$O>#"yF@kv ʸqcQrQ7PP8eo1aEE/ k| 'O kRM޽KΒI;p"ee?KJ~g&11.aQQN0 a}FD[ԓE={TzuHP+B`>%vwܩz66&^qRee?߼)JJ*˫eccАҒ[2w.,Jm+O&P-К|}R,lYN p .sg;.144<{pN]{֮x ivH(MڗSRH?щ*6\Q?o&|õ;00<1( î/^||d7a7!ACktt411SYpݼBANNo۷įEUѪK(lܸhgϜfZ|>҉trzW:8OJ:=xo fgTSMmA1 ?""-] N҄RQtԋ2OOi5 x׮%eXY]]}p[]]A t# KIKHNc'ۃ7m wf<ҥ-+2}7ntճg{W u}~=ٳ|.. 뀁LVVy\礤B4z@JPPlPKKGW_mlV|l>c 3y- H%uiiQMMyt+UGGV}{y6$$iӦ;?z6TANN Tn71|'*;0K1=r儾2ׯW~꡺FP!"YYVplIJ*X;wr}ąͬwvs.5ffGBB ͏޼toĐ݃V{(A|pFFIzz1 5ihȡ#eib矓6mޓHzmiiaOXPQQd=wGtFSm4#4t?){[!! S֮Wn%bVV0,2]T m023KHI>xAIShrrʧN=y".t LK+7d<\UrΌ99'O M27!~C1kǭF*@QQߙJzzJzz:ki4WG1+Bv"kUmcsf!ׯ⓹Ք˗#ox?hԶmV B=QWrgKKS|&90JKk.J&7?|AKs=nnO^Jq_f_NMh9U8w|wׯА;|x>3 >Ass+ܕD*ϯ7J'**ѡzzJ*=xjŋo8Kjn=ݲ^yyÇ?( E1="/߅{1}ZllҥW< Xܹ7~2DٳGIIϟ MpqksO+s!z>c׮G TOEs‡}fGb3 7mueWqט}ӹ3MW1H``c! c"5Uj*,b2"ì\[9s=|`{Ç=cT_do>8xJj,|jԱc!n9++eXw{gqaa¾'%J̞=r\1cnP;cB4{H8OlF4;9%%:ͭz5Ç=~'ݿ<>ǏcUb]lEJ0QSs`xpFcyy-Zآ6;lD<⥦&Hg϶ u8رW)/_b_g߄Nl##5#ꎢ/&J̜ih(ss G4/Ef:;`6h[xdѢQ\YgCug;'9>< .6vΜyV_3KzޖW<44iDc*aԋ 5WWT22hOW􉫮,V Ͽmˍv遭ڵj@&s4ׯ 6oin/XpBi Οr==þ~͵4ػwְa *CC=U<[ ZcB Q0 gμ>sΝ3v+oxӨ=={pзoZr2OR(WD^N]]} -zNgUCii ]44䰎{652rVtv[MM[*BLdӦ;l07\(*93jjͬbbHG{֬VW磿`]QiBnnGP:.DEtqyD3Nu8PlÇ_ 1:~iK3ӽ\YlzEK._LJ:‡Ì)4c?V+Ru4#'*̚DFW 9e99Imϛ7)kLMl[l^JM= A xk'O:.Ztź%z<yQQv]hZ_PP4g zў'O  f!]맧7ϩ-^nrt&''ɱdUN^ܳ,wK޻w5WE32J &{&t@K(FF Z<̚edoo<occ#GX^TTmn~|5̸ĉ灁&L9rd~_n6CYE "hiɳ 5ih [2}ĉ:t:۷\p-gb qqyEc@C/wy$[=:CfPP«W)Z ͙3PRW>=uLP`6 TZZbj??Np-o ~~kwspϞ-8~<45ՃO44P;⯿ީ twEI:<:m񪣣(zSvx+ցi*_"鹈+=l!8kъ㰎47mm/5=OEE.Q_߁s/˾' G0LH~zmx#GU$Jͭ@sW4?T*Hī D S^ Tf8ma1@8C}i6Li5-8xh4HSڹsўk+gu,]Qr$ss-7Yc :".+* J@֪7a4,?UT xDzecIH >Y_l7D4kD= p={֌}]Ӌ¶w#kl޼s\,!ͷ*'hR&a/2j ';uƑ#gDD:6mpLn{w]g^ b"HJ}ʾ2zsv=N ݮu,][WǏY':4аx QI'quJvv,)44i'RR9훾 fPNJkV-*vmոqXóg [ nlɷLuu_5!13;8nǎ' ~XHuuÆ SlWɽEJ0QSsȰlI=ᩫV&%w|&9;OsuӪfNPnmډt` [:9󤮮I_߭EBk3g z[s6 5WWT22hOW􉫮,|- TC'Na>-yy ba1{k/_=7P5Hyy]K "/##a`N)+|>z{ċ_/pq鷈t"`c3bѢQ' q^WPk0:D_^v͚ZǏ_66g._v;ׄ0;lP/-31qOH(?^GUuw?%$Cii?3ȑ9gtfQQ5:mVL0:U]]mK^vmցic..=ӽ#"҄_r,QHHƍw8^HxIImv@'}p_7Owuf_N13g^6Y3q˖}isg4&*)ښۛP7Vm~?>>oVg{,5!!;v<46VreeWQ :&..]{wOYZU25  MXXYY.TW/GWijF?.--gL;;ޢ99Pat0TDFW 9e99Xb<=Ovx_f.lT>ƍӾxq # >))L&Ƚ{4xXq܎\Ye@ҥoo޸)hN{ :4q]u缼 tbţa oG*/°YӋiׯ5JwT:x#~5k&\&9vvժ v|їv>D"d2f9~|wv(<<nl)/|a$=c,00~·鞽iWX/&"/1c8#rͻz@ 89MڲRZN)={>M]]n۶/_&6lzC2 ?… ];oqkbmPPBc#m8Z[C֡n(ٶ>Tƍ(ރ,M۷OݳgMYi4g?q`޾}uuh`م Kƒd 8N__ݻ.ee2D_l?~:܅  rT[ۀFH%U Y44{|kS=@8+-35=|iӆ~HH!BiURR9J^LdB'۷)4{'"mfLuX* r:JLsf~֭?edıPl&ARz{ۋ ݃nތA1ի'ѐg<{K55/__3ѡ*rgpOl;~g[ZJK||^=xHff]]jQdD*)-HKjjʣ]::}zzim*KNddz@@|e%?DD"AEeի+x*,;փH$ d5C/^pvd2+>ܧ;ל;/C*1{ַ]{MkQIImX(ΝklooѽfKL,ض^YY݁s/.m4Dyy_5F(`6 HDDwܸ:;lŊ'JX[KK իO|d"4p8\Z~ne-xGq _O]ԋFcܺ޽3-՟+(IO/&SICC9.۟ϝ;BT-[MJt/7ZPP9fG[%l>pwBB:9kѾ}/ ݽ-gD"aɒѧNaWdf>*,컩޽ UUQ,,66Ə׾woMN.  J}lmJIE.>;I;YYo|NgpS-ufPOW_UBi&[BBmĽև ϷoysoNQQ]*ru8%[:yMEE>Fcנ[ѧTo&4qS ] iln-[,3tyWOهFPreE,]_dlD̚egM[kl044RRR45C0r/籱u3b*᠛7ctH6m؍:Q7oR"#Ņ,0[t vz|'w$L~_so@&7ښ] Lp ᮰;l₆~>, 7y ;lٲk5 v„[v  FuoqJJܹ盛iGbJy 7[I_F57{c)0Z)?T*Hī D S^ T$IJoߓ`g4`<֨sssc0:*W]ݩE2bD$-lԬWUU=s 7|.p8$HuȾ~|;{H'vvYòsKuOyy}`?ee-]:fS))Q@]]ȑigc,uuMv=z"DXkzp0ԩ.&Pׯ]  ipr%p8ɺo`- z5mNc\ZZ;cOu5=& /\Xnj/ $(ν{w]+5UO\9YYL&^d9N{!t4{,~buaa{Ǐ/^ή?*3xGm IDATD&L!!SE,*Jobd⚚ ?Qhh ͭk׮}TA/OzYYIo`(6lv'rɅw~z1ccSR<=XcCx܊=~̲:xmmׯ]Qt:/G `OPDd݂MO/>ݛ㶺7ƘLn=lnnEߋF.ht&3s_- 5TWXEuud? <-- u ݼs䋔.Dz/_PDDŤDedĤD/N?I/m8v,/u!%}'H23KN=*AGx oNK+VPB,8+++WV}ȵk xm y,# &xUUQ ۭ\\YKgO}ZǏˇLS~-!!Ϝn1әK^9eJH0m0??ίL$00К qKz { 2@FF骧>zURS7tu+6!R-?3(hK[`@}?|N|qqy_~q-]h?{&D$:w+ [>jN$͵{)#dƌm4qҢ{yyRUU HP ܹp++CVCK*ZuT8.1=]pٳtA__99Fcc:]vހO*B1^N!"/ĐS ``0SSЯtfQQ5:mVLȰ!#zhB3g^ĐN:55EEenP1z׮E:A+{8N—/uA={5q` N$GNgəݿFc i4PLLn|ѣyWgTUQ޽K{:ݻ4*N ox55wvz/)utQ6xXbco)W1~'\~_,zxaW;<"( sT*ÇoޤWx!^*!lYY ;;s;;&ZL ͛ϓkj4NgV>9()Ʉlݶ4jj6lpZZ::T*.,R*"% TTadjhbfce'Nx"#v jL9HOOI[[A[[Nz…fGYzڴao,)=gdr Itru\\ca1!'ㄅ4ufDAʕ7PSSjժA655]3 컀~ǬK'O,Zu9LMMF& @ 22(>J%|ɕFFFreU`kiiցpfeГ5|Ç#IJJ0LV*bШ~ HMM8fffr3~`/^hܽ{Аdrs!ۛ?\ o%$ؗOF,? f!O0SvtzZUUìF766FSdA>}~7--uwUUU >}d3޾pª*S6n9==L&3߳B@BB h=B,>>^RRJܹs߾}BBB3gDK XO>fz qcUffM{k9Ǩ:ܗJJJ޽Cd̙'NN,G0eYZgp1Aի'5a ӧ74`u֥nܸ0//o8YYY:::aÆ-Xw 8022Ϫ'ON&i4+&Hfff/ LLL$$$⢣Νkbb9k,@ii):t(vmm_~G2e'_`gg HavӧO+**޾}l2 `6?hGAAիY|$/v݅D"Ȫ _ {#GJJJZXXxyyqppkO;Ჲz}N oժ 8wցp0rԛ7^͵ta+O7h ! ՟?Fir^^$))mdTUU999͙3_zemflk&LP__ΪuAnGg{Ǐ'LyE3gne?7v>y_ejg.q8\h666hyf݀w7ul]011ٷo֭[Ѳ(#F׏5˗/'NHHHػwݻwg̘`0w>~S999 :!E\mWx)&f͚-[KaoNϢ\۞%mċOơe͛b@ՖYf544tj'Btinn>|uٰaJE_^E&555\z ܭN uqWII._hTe~Uu흙yuő#Gd={6x`tg]]ի(''n: ꪬ,##P]].o.4C s|;JE'Zϛe}̙3jjj/_vppPPP@!P(aaݻw6TUU(''7x;v466Ucc}w}QQQK.u&P6lT3rb=\?ҼY.vl;[]}=Gy,:\z .h׫*Pp*ꪠ //JRnjsA*++q8 t:}aaaTWW\RNNNEEŅuF tqq9rdyy9.Dȏ?X˕[˗/O8ǭ=?,tmAAA[lijjp[HOnС dbmm0СgƇ%*v/^A\o߾Kvb_իpmmmty'O4Ͷ8 8ﷃ,űDžHGMtvn?Tg{q<쟇3gΰ_p*++8.D>t?:3=kZf<әluCCC nݺ~6Vok ɜ7o@X|9x^#ZJ p}/y葶v' @C 9fP7;2b2㻤<l?5p@xe6|:S >޽{߿MlYyf9(8.D:jեs8ߋA`G]]"m>_3 ;sq۳޻E`Һ DNN1FFFcolp޽'Oz?]RR;yPRm`5W'-}Pt|!m<8i,״On^,5F{3^S[z{{O4}跖-[v1'Npppqkǎ'm R-6B"YY[._(.:_?,tm7n4hЖ-[;_6aIIv2khkfn JPQّ @A]%00o+fD"ꁪB/F;IoqM#Y`={vС222HO9txoksF۵k®]h4ZVV{zlll߼y=p@///`===[677s\GN$''/_>ݻw)s>>>n211i˗/}}}*Ir尰З/_l ؽ{yϟ/''f l}eԨQk֬#޽pt2. IDAT 7 AB=TWhlwoցʕ7-ڥylc6j["dla]<7Wx,qY?f!=xpΝ;}:7$::BrV v: XM8c Sn?6A`6 Aul45Ѱ1\X(j!N%Wrla ލdž f!>WXqq BB+׵B 9c SЉ?6Ać`6 AuLII9WDb?51ﲷOOOgf 0`ϲe5559+]\\}ԩA<<>--=dn0[34wWIII|%C zιqdr4fΜZja!/ʯ_"JUU3@FFXMMRUUtXϷFD}T*$_p >^ :y3޽ۭkٞ`2 vv{ŏ?^x1}zEyZΎgaAp80pֱk_FDנIZ&&0x>+,','<+,+Ng 0tС C*oSC)7oܼKҗ,<`6 A>>޿4^nÑ#A_RPi]-}_ҥcʘׯ9%%"&N;|j_, 9+JS~~%°0QSsZ^j` t߾a͚ kL8P렠,A[n܈vw:~|UyѦ&1))E]Xbz3ڊwﮃ- VfCi45հК8Qw6 *[F[㤧ii1MArrhmmEqqX+W"=KPU4q\ܯl ]/ϟ\b8l>vǜ9GyFc,^wqq͋;deD23Krȵ Imnea3~}⚟_.,b2"2ߡJahhطoӆ ~[[3@0 zݥK۴iyE?GC>~/H=vz]OO Xb0E_QWר 5zЉu͵XP4řrrsrʲ˩T:@NN-4d,,$U}vo汖0`0 x֭^=$*j|ooƒ.{͛c ԻtfZZ:9..l'OSS:@ 9/"'<7"7<'<7 "ji 2D^KK~y-A**W.R΅WLnj=b*AA<Y w޾M[d+WVv)ieuz7Vz[aa͙c][ +ׯ9t 9ss- !Sꫨ :mFT\k 滊 a">rRDu5e\;fKK`6 AԧO٫V05ոqcD6?|.g[Fҫ=J9 |HV11Xjj%'FG|ɡRr$ ti~8`%hUat0+qGK WEK3dwqM]oA)7j5nh붮Z{[J[[VVQkjUEEĊ !H#mD $_pO47991T>hA {ڸ'NUVVoLqT$ɹsܽyRY)wIU(TTfاO]7RkV\9Ыݻ5Ғ5}zYlm-  Y0WӦ-**ۿf.w'Or{oӶmSGxWi$6\ܱѣ{3t,`**fkg!!lu矡Tm8~T/󋲲23 bBE}kG2M+CG :S8  =&(%&,J^lḼˇm塡ƍ5.wii/?pˤI_=бIJehzr}mkccaL&S E|~_,eeEb*qqvԮ-lg{S}Wt6{v1cE9hІl _Zurܸ673c4%y:5F%-vfNlLn4R&S痦]R-,q*3i:jx3?p=|-A'd`xqq͛w];ݻ?pl޿ZMJ:~n դIrrJ.]Zr>wdAbb2BC\`?kklKK+WRK5 8S7PΞM޶/ llِ]:d`>͛9s_UbϞiݺq's=Zϝ[ڮcf,!EbbVRRvf6h|D_(Tafpu6֊p &WXX6rdŋp ;d`,ʪ>ȕ++W_p:{x;׋?Ԯ]>c<^zbbVzz>Id={Xzl7q fd**AXL[*_ tnK%ܱ#N&SL<~IlI;v\_ȑ]'wE*߿ݦM[}IL?~g YlcM$$&fx7ogg[X:vtr}4 \R&))HUirrngF?AĄ ŋx @6 F'. -rk֌>hK 2 $IΟ{~gGGíAUZu>xpݍr8 ykiAA.=]VLY0j.=^(cs4}kמe;{÷i[92woC-\+,z¾l++sMA1ߺ\,.2+,,04-K|^yA,\?ZYaoߡZM ;dzfqӦ6`BVꁇG7JG5-UUn^\Ohh`NH`Z㏴M~OI \bh> d` Ut;~'}Ag [r^"l>2v~;P1@TVVSBeAqvv@P]"+ hʬV//G~VϟȥVz m ٳ[\l1̅,[/^|ɤo<)$$-{;ptlҮ]=ybl͉ 4aވ\.WMS"Sp85[9&SR?yu3:8/44Gm8hT#GqX:rdeˆ::(h)).\yҥSGEz $INSNNɕ+B8;XKXU*5_ִ(Iv ŗ.-wp㵠9IX(Tj lm-9F;wcnmڞx鉉Y /ʪ8.7440,,LXq4&޽ϬYa Zd`D"ID7͝χ5xѣw#"=:ҥyt:M&9xp}:l))94mN[N9Gw]u 0922?z%TFSIͶqv}L&D;ML̔ɔ^^=zp:@Ѝ/ڱc͜9L t"Ir[|[@gڹV;gזA0aӧ/KK+J5Affq㸛6} >}~2tܒEED K` ˗e"QH$YI;%YUHIIJʺy3L\@- pq3t@Og${xY`GqQY0m/^|G-t`eeU{-..' -]\R*UF;;Ǐ2zH'?^S(̌afƌUTU)99%BX(OMjoӳ 5ӳG+t߻OL̤*** 'MֆH*ׯh WW_$&fn~';͞w̘wn f$yphi^Xgύ>O0mnnII2GL3F [PհJK+%/H*4Zlgg*kqXd<^zjF̶o߶~cl*]09s~ǓlZP 9Ń8_fٻfjߘLF>2G{,ٳE~y4O֑^yPKP(T;Z;IO7Nhֹ4LYVVt{jv$A׬Bv5&͈qn uJe>~,i:dc t+*/T(}347gZZd2m-!fW^U鴅 ~FR{w R;jfXK78KϚFRMn5jܸTZTTmU7"޿~AW7lgl+KYTf`ڷw r}tt\UԱ[#Ek@ecn󋵋`0}wնh!f/O:tg2 ucWk4oƒϟPKmc;tpz5̘ki ZM2H[۷_//)*G77U3⚑!afhӦ5coRXX"11+))K; r}__Yzk6\0Woaa?fg|۴x B6 dzgn9*AL&̙%5K(~_"AT JђV7lr]iiEN5i4Z۶ロ2KHnmrR}1BUR"$z+gs`?sm5Y=kAm }'&f3tMf۳om{&Ν &ng& Юn eG(\OAQ~āYh>23 ##O/Plaݛr}t۵%Lyta:, G*ռ= :IWHG4ڵ5$@A6 ! EéT$_YgEBa)5y}V KJ*cc?alPի ;;[-_֥KXQy3w8< ̌DM rW;;l F!3?|~NFAAYIIYզji7lO͙4OrjㅅڍL{{KggkWWW{''k77;_'B6 occcnL)UEϞ99 JţGyoz $_K ,8j32YIŘ>=$*jTD6?-[G9:3 kk'NAAAZZSFjȑff KGNN͙2L" lCG7]ݻ4;vl؉A4s;ee^xQV,CTL UN A//)9s 9"A:thS'QT64Y:AH'%%J:d2R:$IEVB%.x.송M&lyHH`HH ɂ۷3aۂ2FPwd04Y`24R;NXV̲% %B6 MiA=ʩF}R,GG+GGk;65њͶda.@C6 Muk޽ @DGOX~fY0-"4{3fxa4M<`2'NдƲXǏ7Fдx{{O6I:uU}wѠhc0Le7W޸tYhnΞ=;j}_233vvv+W]Zjɒ%^"tk֬ԩSEyyyBp[nT$:|Ø`ߚV@˄l+W 2Djuqq1quё7Z9999;;̙37oJ <=xk\0oMu eB6 oܹsnnnb #GP(VXpl+ 55?􌏏_fӴi45";wnժCP*:O/**jݺ4<` ZiN'b۷oݺu133-H=>h4ڼy.\P[?ϫ}^r~ݺuضm۲%Kd2}Y@-jޡڷJ ӧݻwϭua???''WTTԼV;!'>fڴi|I~~>ù{.ոaÆcfggt-22A 6QQQ:tHIIyqϞ=#""j;K*ڵ+//f2R4::Z;tIԵF6jN׈$bڵڍH$WLJJOkSAD"9uAEEETC IOOOHHX+A$} @sU׿;Tlӧ_|yWWW `322ڵjo?QA6 QlV,wY; ˣ_zK.ǯ$۶m{iiii5*))133bZ.++ST>vؒ٬tZ9r$:umԧF.TKm}j#">>$IJE]K;~$;ﯳ> CKV׿;T :Yǧڵjo?QLc;;9sBuuuTÇΪT'N())9s|PRR˗/:T;0RIDnnn}E_|dɒ谰5k̝;WT=$s#F}uJ=Թ5CDzz:!Fhޡޏ=ɓ'u}{zyy<ൻ4dj~x#G\vT1c @2t۷k嗩-Eц r)D",--u;rH;;; <(Hnݪ}iThNܹs;wzػwŋ+++u6J ZzkޡoMJ2::߿uֽz&_Զnѣl6;<<\&?[J-V|||lFPSƺOSza1d@̝;>F,l6{׮]i0f ӃlLY0=LC&@"h4CG&@":+,,4t LYx sssP( sssC`4ɓ'pi$i A6 ,d`znF IENDB`XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__dep__incl.map0000644001725400016040000000370213273140074022012 00000000000000 XQilla-2.3.4/docs/simple-api/InputSource_8hpp__incl.png0000644001725400016040000003151413273140075017726 00000000000000PNG  IHDR<bKGD IDATxy\T̂신*KKSr452q/5K{Uvoj]VVJ3 Zf⒦WŲ* .00if93|syΙos3aX%|%uAh^Ch^Ch^ٺ`믿~m[‘%'''''ۺ` a>}غ!)77wĈ{uCw#Fu+om&@pO B B B B KJJ*++3fe2>}cǦl߾]P}/mAh{$ĉ~׮]{w222/_?ٰye!=jZ*r<{/흘tҟن. $%%={O?7Bʒ~3gNnjjz&N+ .\fggo߾g4iڵk[[[&O==}[lB#20 8I&;}饗_x'Ngdd|''OBZ[[O:dɒȹs xyEFFkŊ G}W"##.\onguuu:t(!az 'u!"}aaaAxxxuuX݈\._F?s;v9^Vg`xx8!kCDDDDD}\QQ1ennn%0 9L_h}n߾MܺufBJ">e5ks|}||D"*//1i|Ka^^^v:}ӧ:Du.{%lܸի[l=z;!wnbd2!e̘1os$Inn>rHBH$JJJO%III֭[GedԘ1clRRRRRR'pw 6,==x 9r]Gdd!;tFo#GΘ1i6mڵk/O?B7eʔ|;w$%%͙3nW_ݸqEb?nhf̘!SSSr?pB|7n|y?pz:"LkO"+30V1bDPVVri5Q߳gYfak-m„ n9=";L 88oo_֭0'Gx 5555L. wyyynêu+ -w^[T #\U[7Ǝk&@empf/Zeyz[7 i^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^Ch^cXu^}@"i뛋x'O06-G!u9SVV<χLϞ~-I2mڃ"IY5ZS&O~UaHϞ~o8蔨 aDb&AhΚ6A@ڪ4iM:kҤAjZs@k&#Ah 80B @L `,F:sAh3x"@`N '|111̈́RT*io'OgeeZ*<<֬Ywܡ[]rСDggȝ;wBZ[[^SS3{Bhu[]0B!ݯÇ8588]h>&ܹsgΜ9~~~aaa˖-'ٳ l۶->>۹sg^*yhPǣ|||֮]m'333666 `ҥ---z<h7Lf͚5{슊Ӆ)Sn޼3hР+W^vO:uj 999/_2dȲe ԭ[4DuVHԴn:o۶mΝ,}х6r,KnllJEEE<5/J͛w]vB1cȑ#_ӷoիWk&BӥR-[!ӦMJ7o&&]vMsKs"BƏ/J[G1c ϝ;ŵYkaBhiAh0>,,,11Qk\\D"O81`y7''eӿquת~a}}ZnllTTV2eJ]]­β]bxZ񠥥%??IR9sCEP+W߿?**J=^p>Y1uCs"BXUT5/##Ct8B @{y{{/X 77^ѷFM"BnܸMO>>O>w\XX'@w&R<b\BP(YYYQQQwrr*,,7nן;w.CBBJKKw}Z2LVݻn&Lӻcƍ0z JYY)Gq2lڴi.\شi' bׯZĈpQE"Q=Li9}O+Bj -3Bh0'Z=o޼%K|:D?3o7rrrƍgi5s̿W\r+r Ck1 3f̘oV** Xw̉'x{{BHO?Ts]EP899dUVB B,?K.-))r[o5c E͙3gɒ%.))9ydJJʬYu=С=-[444髯ZTTo}ֻ])lذ e.88"JΝ`f.reBBBO^__OŲlFFF޽233P(|I͆YۻwޙtJrС΍H(ͣ㏻wޣGM6M>= @.3gk2L {XT~t?4s[l[d fF qO @0ɝiӦBc놀 EGGk]4.l06OOυ miii,Ch^Ch^Ch^Ch^ٺ_j5Ewd2qPPX6K invɄ~~2ʚErǧE lc2յUdW Ah0UrrrRL$E2]\.R ggeISSMsm\.tskNhĵš,;w\JK=ur??KcSy[k"]]4t&҉\CJcfI`]b±Iz&XC^-UV6|B{]*n$xz#G p O=z\4(b„ Z mh6pRyiin~r_-Qh>)(/ojj!xyrvI YYW2$r脉{ؤ=z$px^8{1ڂJ1z!@Tok*e2!$0bcm |Dqǎlۆŷ[zŘo`p[!S*UՅʂIKK+3|اO{7[7jO=t(?J==]{,fԨ>O>Ɨmzp5b te-Ph?o7/::Ņ/S9g8sm ' m4?p^8b8\'Fgg `~-`t{sD/V+Wn8wCC}ƍ7fL#DDvvWnGng8h/ZݼY93юnbD`cc(nZF/i"xy|bsg"HK±imUkƘ \ItbLBB(@hۣQ"/_#w'-H/5n? -`}m8L?9EDLJۺ -B ҋ&rs3w>!?#5,nܨzUPܻc8&!Bz4C1|1 tguNsLp_ j!Zj4m!n,]BhO _Bt ucLs-6Zf=`}@ϝZs_b+^  ߘ]  69᱘ZxH3ŢC^xBq^^ymmO klTyI1 ?`"H%C]h?9њC^EI//׈_͛'cAhpϯ8|f50+"# &_'ob2gΣVnbGbLAJ0180cZo7o=<{_JaaD`_WثV빚ŋa$BzG}={#ƀBh7?^_6ґ44*B`ذ课ZdVA 5^_cxoLLPtt F;|DFycED ̙YYWU*Ba>)S۪UH/A*v֝1B ^#|~&QW׼lYưa1s5LL23/NbNN5Nu,_-[o)Ryiiu|C5B PDBÍ8LqUB* BC}3!!wxK^xaGMMcXLudr%D$m*0 ˲8mܘ2n\?4LDGפ1vm(*TcT*LĤ.-Rڱ0g+̦W;#sZ#9;u`9,nogBhwSsOD]9r$Gwg 0۶;m[ffzJ'LB*;wتUOcr;Pp*dwrMN}'-Zo'D-pe33/YsAf{,o^2}uG vrˆQk_;v$ .c1dwD[ Wsd(|۷傫P(80"=}N`m 9\gq/$2+V<ch{hB ի1 C?xdgcZ.VTVJ.bGsk޼mUUZDx;V{EծFTVc" snXVeeÑ#9e{Y b/mFy11fذ_^M!Hh[oM??F#ZB +>),\K)#|rFm^^ym-󌄼IDATFBv71 imUuڴON+~yE=9먬lHKڼ9KOB!CYŋǥ!鎦SP iiiՍ1с..N_~  ˲!C"mx,g-]Dr磏~B!T0:bD\mmӵkې﨨@+::0&&jjjyodB,Xŏ[a7z}ʔ.]zu)WE `F߰! S*UEEU׮Ur?ȔT+*POk J>h5Y>I jhq/bY;+%#!k-;w[EE"Î{j~RV4.X0|InX˲= AA^;vϣ]R*)9S%>~DBe{'0$ТVkkkmݹ͛϶(v™3z$COpvl卍X{Lbva_W x4v/m5'''/Sğ)9sGOcF,Y3a>og#vg c_ By?muo\\7 ^gY--*FrRx$7l}tS\\\UUɍ%lڔe˲)))oȤq]tV(^bmҥw!444,^xժU\5/۷oJ -ѫ|::WZZz%nͶrޣ3)G eBi]9sFV%ͳ]u۱5ڻfNkCnjOn{FV뭷h\288xk6Ф.22r,!<N5J󻜃2>-'M9v0HUϺ 0`@zz/"\ *(zlWvl`M|.ՙeVZ<Z__Ocbb !J2555000 55UTN<jժpYfq?#E9tPbbsddΝ; !zWqsssqq{B'6?rBvرm۶kn߾}ǎbP#xhYhё#G mGLǣ|||֮]˝؀K]hjYX^,>{|FPy[ZB!/!tuu ./7 C5ĽTuxxx<ϟڎٳZGM&橷zO,֧OOO\3=#\~FjzOo|_UVCeeӧٶ̚5kϟ )Sܼy3''gРA+Wv!'8uիrrr._]YYi9\]IҢgyf,JR''yݾ}{׮]*VmPkuKp߿ȑ#!!!t#A!?-W&RrMR}T*z{izzzhhcǪO8UkZmM1tVu -aaaH$' @ۗòlll_ǺkՉ?^V766T*CO2hqSjzĉB0%%Ex-zhl[CDUTRiV?m?˲QQQzFY9t£//o,k׮ѣGcOh1R3ZGP(B!߿!( C-PZ98djX,>|8}[ZZ󛚚T*ՙ3g4SlzK{ٱcwڿKrhi5Y&Z&Y˿y:tHo3tOB;۷ݻ}}W\eiveJh[zOԪyB ˲P(ܖ^^^} ˺]eٳgN:mذa~iX+,,44WvuggXX}W_==Y65B 5E K.9;;]5MV-l+R(ӧO¡,K4<ʚ8qbXX؝;wLٻms[ hतk׮o?.4^ -^8>>>))Ik9SB\ 4#eY9rdqq˗h!!kB/-Y_Z9zhss3<… W[b^>䓀H$GFFFrIS^Z5i_Z&-i/-'͝nذ!,,~9ydll,0v]{,ݖ)?k`'ɷZ5C 6ߟBw~Rtܹ>>> ,hnnK{?=z̘1CE2w#_O[l[dL&ӻx1X3t^,Bg}FƧEB\ 4-Gʲl]]̙3}}}_{5.֤u ՚! 5=?޽{=6m4}i`uwĽ[.**G5j6QS -Yz41= wR֯_߻wo//qeffuv[ ezOo/{f4O_UUU^^ވ#tO(8"P.4k;`9( -ӧO@@@'ۃwH0WMP=z߿?~fzϕV{nşZսv|r…w;w /`FZٺ` .4e!e@ߠ&c/_~I&UWWGFFΛ75s{t]@0t[A0vx x x x!! 2L! TUUr蛛Y6B@M`yZzߐjM;ɍF@/___?,˫AMB`yZB 555\!IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.png0000644001725400016040000001021213273140076023025 00000000000000PNG  IHDRp1=mbKGD?IDATxkTGg ! T(^h hT rZ ҃PUTV,b(HR!mǠfIBIvB1ce~fɳ3.l# ca/HHH_wSA",+##G̴ x GGG|}M[[۝;wLYg@DDĔ)SLvG\.>3!$ $ $ $ XhΝ;bvBfcbbfϞ Z]tN~ƍAAA> RSS<|0((=W^W,&8?sLllѣG ZjՠA\\\ݻwȑt @KKKcc %Hjkk_vիSN}e2zt{{{1nܸ۷3|xرct:=##fXl66rPcǎ>w/R(JPRRP(*flJƚ ޾};77w…;wJ03f,Yjo7S1aͫU 'F[hÁ)Sp\͢pڵɓ'kpwwOOO׿G$Jw3ǿٳgYĻwHtO?F ANNNzzzMMMnn.lM6֖ܹ333^ "55544vݻ EAAAw:_ևb=z JBf9X5j\.olld &h7شiSuu˗u۷fUVV>>ƼJ%Arj̙.\tAw[[9sM0abҤIpոyѣ_{5,+66vmmmJrڵkL9NQQQ|||``lll=Gr~1̟?_Swww@kk+ł!C 2Ę333 rssdc=&oooݠa)S^h +--ݳgϺuE$8?ގaaܟ>D[[ٳg-[@]ff+{Z+KKCKK˰a K.5SSSSU*UIIɖ-[Ν;g̽QTTǎ7nfP(N<=HNN.//C655}'Ν1cÇݻw޽}0,))T&)JKKKkkkc2ҥKeX, `вeD"oݺ|UV1;\5222t`2V:}4ZZZ}W^ϛ7/;;L(޺uѣ=^fsΉŋ[ZZ&$$ddd=z111YYY+W0lҤIqqqHBP(]j999mmm...)))VVVb޽{A Xf ,8::A|>v/OB,rum >U B,rs7[~,3w"槟.c A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A H A hܾ}?7%q 111s {9sjddm4L6sLeĉƍ'44(JSSydĈ'O...{naaτ  wqAAA߼ dɒiӦ555x<[L޺8rȓ'O@g3vD"f(!vؿ1cBpY&) \|Abcce2  EbbŋE"{===FynܻY5EFFjnAH 65gǎ]]]:]rбw\(FEE9880̄\n,;vtOO\{LR8qJH! @ A H A H A H A H A H A H>fƄ/>_QQs /<+pssy. A!$ $ $ $tP`DIENDB`XQilla-2.3.4/docs/simple-api/classAnyAtomicType-members.html0000644001725400016040000004610213273140074020725 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AnyAtomicType Member List

    This is the complete list of members for AnyAtomicType, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0AnyAtomicTypepure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0AnyAtomicTypepure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0AnyAtomicTypepure virtual
    getPrimitiveTypeName() const =0AnyAtomicTypepure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0AnyAtomicTypepure virtual
    getTypeURI() const =0AnyAtomicTypepure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classResultImpl.html0000644001725400016040000005606013273140077016656 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    A lazily evaluated query result. More...

    #include <ResultImpl.hpp>

    Inheritance diagram for ResultImpl:

    Public Member Functions

    virtual ~ResultImpl ()
     
    ResultgetResultPointer ()
     
    void setResultPointer (Result *p)
     
    virtual Item::Ptr next (DynamicContext *context)
     Get the next item from the iterator. Returns null if the is no next value. More...
     
    virtual Item::Ptr nextOrTail (Result &tail, DynamicContext *context)
     Gets the next item, or returns a tail call Result which will give the next item. More...
     
    virtual Sequence toSequence (DynamicContext *context)
     Cast operator to a Sequence. More...
     
    virtual void toResultBuffer (unsigned int readCount, ResultBuffer &buffer)
     Returns a result buffer of the result. More...
     
    virtual void skip (unsigned count, DynamicContext *context)
     Skip ahead. More...
     
    - Public Member Functions inherited from LocationInfo
     LocationInfo ()
     Constructor that sets the information to 0. More...
     
     LocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
     Constructor that takes the initial information. More...
     
    const XMLCh * getFile () const
     The file that the query was parsed from. More...
     
    unsigned int getLine () const
     The line in the query. More...
     
    unsigned int getColumn () const
     The column in the query. More...
     
    void setLocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
     Sets the location to the given information. More...
     
    void setLocationInfo (const LocationInfo *o)
     Sets the location with the information in the given LocationInfo object. More...
     

    Protected Member Functions

     ResultImpl (const LocationInfo *o)
     

    Protected Attributes

    ResultresultPointer_
     

    Detailed Description

    A lazily evaluated query result.

    Constructor & Destructor Documentation

    virtual ResultImpl::~ResultImpl ( )
    inlinevirtual
    ResultImpl::ResultImpl ( const LocationInfo o)
    protected

    Member Function Documentation

    Result* ResultImpl::getResultPointer ( )
    inline
    virtual Item::Ptr ResultImpl::next ( DynamicContext context)
    virtual

    Get the next item from the iterator. Returns null if the is no next value.

    Examples:
    simple-context-item.cpp.
    virtual Item::Ptr ResultImpl::nextOrTail ( Result tail,
    DynamicContext context 
    )
    virtual

    Gets the next item, or returns a tail call Result which will give the next item.

    void ResultImpl::setResultPointer ( Result p)
    inline
    virtual void ResultImpl::skip ( unsigned  count,
    DynamicContext context 
    )
    virtual

    Skip ahead.

    virtual void ResultImpl::toResultBuffer ( unsigned int  readCount,
    ResultBuffer &  buffer 
    )
    virtual

    Returns a result buffer of the result.

    virtual Sequence ResultImpl::toSequence ( DynamicContext context)
    virtual

    Cast operator to a Sequence.

    Member Data Documentation

    Result* ResultImpl::resultPointer_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_44.png0000644001725400016040000000611613273140077016477 00000000000000PNG  IHDR%>~^`ꥆ733k.?== 43kB666"1KG*Η^:'Oj:wO;t@FF>|0~dX,6X\\) _GX[[۵kצ 43B566JR@UUc=677h4...fppB www&{nFGhjjVKXWuuuYq)JII c2yyyׯg0Ǐ^2_wrrriii*po&P(#ŋAAAvvvl6;//)Jee%sppL0Gy.^|8^wRiZZn$&'z{G0 :^VVVRR[ZZZVVfmmMؓJZ- Z͛7X,޿>77hOM.Ɋ?3냧즦bp\'˿ @ll\.SSSLJ €l9~ð ^oQ\.{ܾ}zEGGKb4abWWK.MNNx{{B0b@MM aZקs8\A6ßfz,1r僃۷o'0 #\RPQQQrjb1 4ayyy7nP-9ϽT(Tr|~vv6n햖@(N(bS__Ox{D"R^tMogffbVQQvq^ jQ[,j*zuU__m8GVbZ[[1 {#Ν; B]rWhkk3@3 a͇"Prspqs;dTYz֭[TjBB;uhh(\d%]X1 ϫBG̑#G<<<`[b^,nݺ{---qddf 6|}}ۆ x?Abt/P( ]8žCCC B300`~f H$UV 6g/5Ž>}駟 qtt4bf Yb~~~QQQSSºWYFtSNI$)))M68pjY |H$zꩤ$S^Jֶnrr?U*CdkxT{Νaaa"ĉFwZť7#J)w}777?{2eس~SSS>>> b8,juCii՞ěPQQQ:0Zpwû3% 5;;NUUՀʺ%gCnܸQVc_lDa\.7;77g(NRq8'J}E}}}̸a ǵ+d׮]l6;55UT. [oؒ|77O>$..ٔ=u:]AAhhh`2aRi''{xUHRllln޼[zzz0 #ZRFCC3) eݒnvfڹs ߏ%b"dso۶B' C /gmdaY\yT*pIIIRRҊ * z{{绺?xc06;a5uS {۶mgVlÇϿ˓{ٷo HJ MJ}GyUe#44T"4-'''''gE5u.@TyA @Ty!)72I"B,#]]]V/Gutth=hKrabrBOA> /B!* /B!`IENDB`XQilla-2.3.4/docs/simple-api/dynsections.js0000644001725400016040000000564713273140073015543 00000000000000function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function(){ var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp_source.html0000644001725400016040000017107013273140073020366 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLFormatter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: XMLFormatter.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_XMLFORMATTER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_XMLFORMATTER_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class XMLFormatTarget;
    30 class XMLTranscoder;
    31 
    41 class XMLPARSER_EXPORT XMLFormatter : public XMemory
    42 {
    43 public:
    44  // -----------------------------------------------------------------------
    45  // Class types
    46  // -----------------------------------------------------------------------
    125  {
    126  NoEscapes
    127  , StdEscapes
    128  , AttrEscapes
    129  , CharEscapes
    130 
    131  // Special values, don't use directly
    132  , EscapeFlags_Count
    133  , DefaultEscape = 999
    134  };
    135 
    153  {
    154  UnRep_Fail
    155  , UnRep_CharRef
    156  , UnRep_Replace
    157 
    158  , DefaultUnRep = 999
    159  };
    161 
    162 
    163  // -----------------------------------------------------------------------
    164  // Constructors and Destructor
    165  // -----------------------------------------------------------------------
    178  (
    179  const XMLCh* const outEncoding
    180  , const XMLCh* const docVersion
    181  , XMLFormatTarget* const target
    182  , const EscapeFlags escapeFlags = NoEscapes
    183  , const UnRepFlags unrepFlags = UnRep_Fail
    184  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    185  );
    186 
    188  (
    189  const char* const outEncoding
    190  , const char* const docVersion
    191  , XMLFormatTarget* const target
    192  , const EscapeFlags escapeFlags = NoEscapes
    193  , const UnRepFlags unrepFlags = UnRep_Fail
    194  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    195  );
    196 
    198  (
    199  const XMLCh* const outEncoding
    200  , XMLFormatTarget* const target
    201  , const EscapeFlags escapeFlags = NoEscapes
    202  , const UnRepFlags unrepFlags = UnRep_Fail
    203  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    204  );
    205 
    207  (
    208  const char* const outEncoding
    209  , XMLFormatTarget* const target
    210  , const EscapeFlags escapeFlags = NoEscapes
    211  , const UnRepFlags unrepFlags = UnRep_Fail
    212  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    213  );
    214 
    215  ~XMLFormatter();
    217 
    218 
    219  // -----------------------------------------------------------------------
    220  // Formatting methods
    221  // -----------------------------------------------------------------------
    231  void formatBuf
    232  (
    233  const XMLCh* const toFormat
    234  , const XMLSize_t count
    235  , const EscapeFlags escapeFlags = DefaultEscape
    236  , const UnRepFlags unrepFlags = DefaultUnRep
    237  );
    238 
    242  XMLFormatter& operator<<
    243  (
    244  const XMLCh* const toFormat
    245  );
    246 
    247  XMLFormatter& operator<<
    248  (
    249  const XMLCh toFormat
    250  );
    251 
    252  void writeBOM(const XMLByte* const toFormat
    253  , const XMLSize_t count);
    254 
    256 
    257  // -----------------------------------------------------------------------
    258  // Getter methods
    259  // -----------------------------------------------------------------------
    266  const XMLCh* getEncodingName() const;
    267 
    271  inline const XMLTranscoder* getTranscoder() const;
    272 
    276  inline XMLTranscoder* getTranscoder();
    277 
    279 
    280  // -----------------------------------------------------------------------
    281  // Setter methods
    282  // -----------------------------------------------------------------------
    288  void setEscapeFlags
    289  (
    290  const EscapeFlags newFlags
    291  );
    292 
    296  void setUnRepFlags
    297  (
    298  const UnRepFlags newFlags
    299  );
    300 
    305  XMLFormatter& operator<<
    306  (
    307  const EscapeFlags newFlags
    308  );
    309 
    314  XMLFormatter& operator<<
    315  (
    316  const UnRepFlags newFlags
    317  );
    319 
    320  // -----------------------------------------------------------------------
    321  // Getter methods
    322  // -----------------------------------------------------------------------
    328  EscapeFlags getEscapeFlags() const;
    329 
    333  UnRepFlags getUnRepFlags() const;
    335 
    336 private :
    337  // -----------------------------------------------------------------------
    338  // Unimplemented constructors and operators
    339  // -----------------------------------------------------------------------
    340  XMLFormatter();
    341  XMLFormatter(const XMLFormatter&);
    342  XMLFormatter& operator=(const XMLFormatter&);
    343 
    344 
    345  // -----------------------------------------------------------------------
    346  // Private class constants
    347  // -----------------------------------------------------------------------
    348  enum Constants
    349  {
    350  kTmpBufSize = 16 * 1024
    351  };
    352 
    353 
    354  // -----------------------------------------------------------------------
    355  // Private helper methods
    356  // -----------------------------------------------------------------------
    357  const XMLByte* getCharRef(XMLSize_t &count,
    358  XMLByte* &ref,
    359  const XMLCh * stdRef);
    360 
    361  void writeCharRef(const XMLCh &toWrite);
    362  void writeCharRef(XMLSize_t toWrite);
    363 
    364  bool inEscapeList(const XMLFormatter::EscapeFlags escStyle
    365  , const XMLCh toCheck);
    366 
    367 
    368  XMLSize_t handleUnEscapedChars(const XMLCh * srcPtr,
    369  const XMLSize_t count,
    370  const UnRepFlags unrepFlags);
    371 
    372  void specialFormat
    373  (
    374  const XMLCh* const toFormat
    375  , const XMLSize_t count
    376  , const EscapeFlags escapeFlags
    377  );
    378 
    379 
    380  // -----------------------------------------------------------------------
    381  // Private, non-virtual methods
    382  //
    383  // fEscapeFlags
    384  // The escape flags we were told to use in formatting. These are
    385  // defaults set in the ctor, which can be overridden on a particular
    386  // call.
    387  //
    388  // fOutEncoding
    389  // This the name of the output encoding. Saved mainly for meaningful
    390  // error messages.
    391  //
    392  // fTarget
    393  // This is the target object for the formatting operation.
    394  //
    395  // fUnRepFlags
    396  // The unrepresentable flags that indicate how to react when a
    397  // character cannot be represented in the target encoding.
    398  //
    399  // fXCoder
    400  // This the transcoder that we will use. It is created using the
    401  // encoding name we were told to use.
    402  //
    403  // fTmpBuf
    404  // An output buffer that we use to transcode chars into before we
    405  // send them off to be output.
    406  //
    407  // fAposRef
    408  // fAmpRef
    409  // fGTRef
    410  // fLTRef
    411  // fQuoteRef
    412  // These are character refs for the standard char refs, in the
    413  // output encoding. They are faulted in as required, by transcoding
    414  // them from fixed Unicode versions.
    415  //
    416  // fIsXML11
    417  // for performance reason, we do not store the actual version string
    418  // and do the string comparison again and again.
    419  //
    420  // -----------------------------------------------------------------------
    421  EscapeFlags fEscapeFlags;
    422  XMLCh* fOutEncoding;
    423  XMLFormatTarget* fTarget;
    424  UnRepFlags fUnRepFlags;
    425  XMLTranscoder* fXCoder;
    426  XMLByte fTmpBuf[kTmpBufSize + 4];
    427  XMLByte* fAposRef;
    428  XMLSize_t fAposLen;
    429  XMLByte* fAmpRef;
    430  XMLSize_t fAmpLen;
    431  XMLByte* fGTRef;
    432  XMLSize_t fGTLen;
    433  XMLByte* fLTRef;
    434  XMLSize_t fLTLen;
    435  XMLByte* fQuoteRef;
    436  XMLSize_t fQuoteLen;
    437  bool fIsXML11;
    438  MemoryManager* fMemoryManager;
    439 };
    440 
    441 
    442 class XMLPARSER_EXPORT XMLFormatTarget : public XMemory
    443 {
    444 public:
    445  // -----------------------------------------------------------------------
    446  // Constructors and Destructor
    447  // -----------------------------------------------------------------------
    448  virtual ~XMLFormatTarget() {}
    449 
    450 
    451  // -----------------------------------------------------------------------
    452  // Virtual interface
    453  // -----------------------------------------------------------------------
    454  virtual void writeChars
    455  (
    456  const XMLByte* const toWrite
    457  , const XMLSize_t count
    458  , XMLFormatter* const formatter
    459  ) = 0;
    460 
    461  virtual void flush() {};
    462 
    463 
    464 protected :
    465  // -----------------------------------------------------------------------
    466  // Hidden constructors and operators
    467  // -----------------------------------------------------------------------
    469 
    470 private:
    471  // -----------------------------------------------------------------------
    472  // Unimplemented constructors and operators
    473  // -----------------------------------------------------------------------
    475  XMLFormatTarget& operator=(const XMLFormatTarget&);
    476 };
    477 
    478 
    479 // ---------------------------------------------------------------------------
    480 // XMLFormatter: Getter methods
    481 // ---------------------------------------------------------------------------
    482 inline const XMLCh* XMLFormatter::getEncodingName() const
    483 {
    484  return fOutEncoding;
    485 }
    486 
    487 inline const XMLTranscoder* XMLFormatter::getTranscoder() const
    488 {
    489  return fXCoder;
    490 }
    491 
    492 inline XMLTranscoder* XMLFormatter::getTranscoder()
    493 {
    494  return fXCoder;
    495 }
    496 
    497 // ---------------------------------------------------------------------------
    498 // XMLFormatter: Setter methods
    499 // ---------------------------------------------------------------------------
    500 inline void XMLFormatter::setEscapeFlags(const EscapeFlags newFlags)
    501 {
    502  fEscapeFlags = newFlags;
    503 }
    504 
    505 inline void XMLFormatter::setUnRepFlags(const UnRepFlags newFlags)
    506 {
    507  fUnRepFlags = newFlags;
    508 }
    509 
    510 
    511 inline XMLFormatter& XMLFormatter::operator<<(const EscapeFlags newFlags)
    512 {
    513  fEscapeFlags = newFlags;
    514  return *this;
    515 }
    516 
    517 inline XMLFormatter& XMLFormatter::operator<<(const UnRepFlags newFlags)
    518 {
    519  fUnRepFlags = newFlags;
    520  return *this;
    521 }
    522 
    523 // ---------------------------------------------------------------------------
    524 // XMLFormatter: Getter methods
    525 // ---------------------------------------------------------------------------
    526 inline XMLFormatter::EscapeFlags XMLFormatter::getEscapeFlags() const
    527 {
    528  return fEscapeFlags;
    529 }
    530 
    531 inline XMLFormatter::UnRepFlags XMLFormatter::getUnRepFlags() const
    532 {
    533  return fUnRepFlags;
    534 }
    535 
    536 XERCES_CPP_NAMESPACE_END
    537 
    538 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    virtual ~XMLFormatTarget()
    Definition: XMLFormatter.hpp:448
    virtual void flush()
    Definition: XMLFormatter.hpp:461
    EscapeFlags
    EscapeFlags - Different styles of escape flags to control various formatting.
    Definition: XMLFormatter.hpp:124
    This class makes it possible to override the C++ memory management by adding new/delete operators to ...
    Definition: XMemory.hpp:40
    UnRepFlags
    UnRepFlags.
    Definition: XMLFormatter.hpp:152
    This class provides the basic formatting capabilities that are required to turn the Unicode based XML...
    Definition: XMLFormatter.hpp:41
    Definition: XMLFormatter.hpp:442
    XMLFormatTarget()
    Definition: XMLFormatter.hpp:468
    XQilla-2.3.4/docs/simple-api/VariableTypeStore_8hpp__incl.map0000644001725400016040000000027713273140076021046 00000000000000 XQilla-2.3.4/docs/simple-api/dir_cf50e6b7905ca68e8eacb67c516ef759_dep.png0000644001725400016040000000343013273140076021573 00000000000000PNG  IHDR}M*ZybKGDIDATxkLSgЮJ u*A$2 09@A. TDk`A+WXlXQ "RIE ecqOaSRh*׃)g͚}⍶ߩu&E;װ)ɦ E^Onq`d `+ .7*88\(,jhTWWC]띙"t< Y_RRo@VVjkG|~bOOdS #8دիFFL&sLA\gJJNuk :p k8G==]SR] OOD~_T9Ж-d277.j)6YJ%&&rrDl6{q*郞U$0; 0; 0; 0; àմzT 88K[[}߼&0N\ima1G(L/+yŋB|9yyq8w6ĄS뉉Q}}d mm.w?!ҥںkg||^[^K\mb f]$:7c' s~.KJJKwH [[['((20]|vH+.%<{-%K%n걶!bXmiw(< ̙3OSSZh[55lۿ?AWWa{!b-Ɇnذ L?v Gx^'J=< !%%ŸsX/⒠iwMMͨxJ8!D_Vaa;S/}Qa`wva`wva`wva`wva`wZPp,N34w G{тin8]va`wva`w  >_5d2U*~;k...j]0; 0; 0; \IENDB`XQilla-2.3.4/docs/simple-api/structBaseInteractiveDebugger_1_1BreakPoint-members.html0000644001725400016040000001026713273140074025555 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BaseInteractiveDebugger::BreakPoint Member List
    XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__incl.png0000644001725400016040000041314013273140074020321 00000000000000PNG  IHDRh%WmbKGD IDATxwXB"EEEwe]컺YWw]oQ{ W^!i1nG!ܗ0`6EwAp/_ wȷroʔ)SL t CAAB@{|2ޅ'ה)S;v]_ |'XNr'N,Zhƌؙ_+=jccS^^~,"0|kkkaÆ.P(...˖-iCUMMM'OLKK4336mG}O c֬Ym(' 6ٳ&&&m~,׃@g@Q4!!011Q rUA*++W\#U]]b //}!rիW}ZGGg߾}hL&Ν;^/^t) ...}533KHH遁 3˖- jb?{ ӧ-9rd`` ߿g`ȑyyy͙3%iӦ1aÆO:͛7(###'N8qHXwFmٲ-"hܸq>]*^xq٣G^revvv_/fΜ9nܸs!5ٳgO8q"œ_':6NA///D؇@ (++VQQ Hcc/bkk{e˖=z~С?H$<~J:eccSZZ_|yӦM ȕ+W*++>w'NxϣGPE$--D"xիW/]x3g̞=;22ůGݰaCTTN^~}ݻvzœ_ݻw^^^xyyr=EQTEEpؖcV^ohh HCCC޽ BFF e}DAAA*bNj/vssU9w ,Yr999 4MzMMM+'[@HK+"Z&I$Ԕ?=rRm%@ǒJ˗/;v,vĉ+i>}?d+Pyinn޾} $dYfN~z:nooq[ny{{zZtkx(??VNƦwK觟jlDO77ZXyB,MGQ|z`3b)iam-;nhhHR}sMM-| ,S)++a9 H|2AU۽F"χ$%%E Ap*JJ$"QQMeE˂ D"eFY4oddIQD"''$$ýbmmm[ Nᑑ7o$+W] ;644tvv>r'444-[sNUU3flذ!&&FQQ޽{T+ڑ#GN8YQQAR}||LB$?-s-"p,ZHAAkɒ%,ů@ :Cv"(:T[[kmmu˗#zp]vmSS̙3ylv%%Tk;b}DͲ<ֈDyS]\E 67+ Yg4 MMMKhX0eeֱB$44H**DJ (ijH$ QSS@PܰIm []͕^Sc2955.?::jjj::zzgtuutttԔ ۶mQQQL&s˖-xQ ƬY>/ڱc˗۵@pM(*rRkJ<^3E&H&% ߌB"TUUԔUUI*ʪDmm5,kijhhTUA ih+#N@ vEE=.+L.œH/LhjR(ڮEhc /eggoݺu񮮮xҁǍ5'A7-A&ahjq8l\"#+r8 8F,047ޝDދ!ڪ::jڪj**D$v..WZZ[RR[\*/gca{i`hIۉIjw滼 2T|=I6M|~37q8;5q8xM-.ARWWzT_*ZZXd L$a KJ%%%%,ln:dj0TXDXG2tDZ"bɊke?l\TYY#p\]ج֝#^t*1'[URR[ZZ,(Ɔik뛛nh~5]ijhji-}8T_>r8Xr?^^Ej7 O]+`àA:@ ˫ͭ*(.,~ BAլ &Ncee`aA67חm uʪf-lLY`,507oʱd[aI.1%+5,Yanh"&7ͭu%J:ffZϝ;G23SPIN-/^)I;a{սWlvCnnl{ƺ5 4dMٱ:r JђVf&ݻܪ슒Z,&Y[销7:bgG57'|۷o.jDv uu lvc]Ũm ]lP]D&kzzzzd&A&k`AN 8$z23-#3";@P Q'LCedeeěDGG]E;SV6VP 47vie /Ҧ/_#F]]6\Ji2>kkuu 55<@䮮N00x5 4d E@gn)"`9r2LFV#+wA7vt4vt4qt4[ݏX, ?#,x$HXx~;l_pUWP[g, Z؇D%2YB206W72!5 5UUaqv@$EeyyU(R(ZtnLsv6nлn43V/\xk>}ÿiI1@O$VUqUU\;NX|ئ6m}ﱶNOh/z.XWJ4'R,驻гTWv-Z4tڑМP(|9-,> p aaAv݌H$axUUܚ^M bz_]ͭak"@&kkR6mbKh8@@+ 8,NcZZEE_ B55e'':t}+W}0)iSgu$ׯg0nk[Y drX,~U[Sc29L&TTeH*UB215262ҦRMLtdnuڴ¼*1ՌN7f&-h„QQGrֱ_TT3f˺u#mm)_jn3l`ii-ɭ2jny9[6P6\}haa!DRZZQUHTrq1swߪ_? >%HGثq2ːJ[^{/?aΦ8D"IUSUa0X?Uee=ɑ-YJj뚘hzz4. Tt\W}}ͼ-a;кǓwCkAR(uX cռjnee}EE}u5`WTԗ 6ElG隘h4l ܁$ߊY祤=y_SR4v^`m}}С<=v]g?/A)&f\䐗/S, 21X`KJXŵ%%bVqqmiimCC3 33= 9BܜlaA63ӃwTD^͛ree >ܾ+6nwo1޵|Ccbmm)˖ 4/ QdsSAii@%:ESZZxW |U ϊ}U]33CPN?-rrbbi4+|Mz2>~+*]]uW\Ɔbmmi  g<^SBB; B77QFt%~Zl쫔gIImDăS: ={0, 2"RB1 kkC++M9f7ǿ׏H$>}Ǎs3ƙJ4S{WSNw-}ógɚKxϚ5.VTUqrsJJjsrLH?"QXN7Ӎa~0S'ϋDݨQN~~::jxzE'Ohl޺cwZ\wȣcǒ44HsY~WrkR99ܪ*@;iN`F661zNksɹDޣG;fwiz?]fw-dʑ#D=-*c/:/:/ rD"X[blm)66t$=ʉ X:thc]FvVW']fO1Z:P]]ÉG&(:gΐ+C.|?.W<:(-ggS:݈N8;Bf 8?}(6uLƾ}-ƍs8ޥ 7ϟOzzz>ԩH2mڀ+}(-nE,+sr*߽c}[QZZ+HUTtQ^T^.ԞjΟ~ʋ*ĉ}{Rj ۳}y]KihhpyDi+V qD"IaaMn.37QVR0z2rp0Dn>ٳgTԩYY]-9pM Ν8|B(_v ]\ݻ*lo+jkP(Z ~z'']ˌ~q3G0xͬYFr-8A߯,9uꊁ7" ; mx:_y9ݻw*+rryyU"@P4::8:M34ĻRރ<^ӍҊ,- fc.I4tZ k㋊jƌqYn-FTfgWfgW}(/g#Bh9:mһ7woss}/۷QQI7nBQtX3`\;G>JNLR֭{ϯqXv)E@o,󆑙YUQPP-HT(''[[#: "H<~<ɓ|:h!}ag GJJjߴi̒%xHoQf %QQQD3ٴKGG8tN_5]z#=dmpt13wnTIIm\:"Q Z?^n~([+2X_uYFFeYYf:ɉblbjiIlApbֱc/>WP@&LhPԣG9ӧG?Z@jjah轔\ww˕+}Dץ_~]]H$Rqv6uq1ǼO3(aѣ=17_s*x@Da$2r.޵ȓˆ~,Wf#B8+ׯK4/J*EuǼOs'' 2_R)zdxx{8(*K% +.<<ѣM4.޵ȟ/SoXO wiiEϞE++CggZVt:/ N  uGWWzOݫW^w-r,;СĘt[[ʲe&M @~ԦzUMH$Qݲ+S-飽\֮A]fɒSoޔ'&n$x"rrm IDATbbi4+|Mk o0^*IK+JM-J}[gw Laa v@?Y[])%%/(Ӌ|}()xps*UgѢgP FU'5(5(-(3\*E-(D}=YO NBԩ&7Θ1p&&0t7btĈPSS']K7TVVwȣgɚKxϚ5u@77zUZ娦&f޿'wōizVpJk^sϛ7dɒaE!"# xmytXi!{ -D =+xk0j mzB zPpJNכoVe8SS=+<=w-\~(kjk'O9HT?cѢZZxH$괴ܔ<6ACfEwwts3滫^.ؔlbI{xh] ^685{٧͛njwEt3&LSSexs544_<"4}+ibl ݉D"b$'&%>^(5th/-apJыʄuFL {۶ǯ]KO'/_N bBBFXX?cȑ·͆RCCgɹyUY f?l1o.G[pzbӦ+S2wdž `+У7zx6m-іqk[Yw ._E1c\""fAv;Ohy{ f?t(][fvu'856 >h{dWW3+mp̤-OEE5cƸ[7֖RYY?`NX QN΁r!rrYIIϞH'ϡ_?KXܼk&)..k+ x¿6yS>zt_͘4/޵7 ǎu%o N|lNУp8IIUUqdIxWKSQQO?]MJ m[EǏKQQU0ZJs;'J0c8<'BQ4;211%%!Cl{;R:xW98Dx;;ݓ1ǻ"ps/߻);w9 B``s=ݐu^&D99[;xX|QkӦ x»'񚼼vs$k_no@ j񳐝47?λ?,&cl8j0_p$G<ܳ玫YXקgں5ڵ))uu|={8&EEɓ E7oϺ?338vW/"Q z9 N99+~iyO>} ޵"nlWQQa{ )/g߽&6/UTcǺ It( N(?sgl޴f]]|~?EѨܪҺ vs(K$)vf֬A1UT߾i>I;e(g HPO>_bbb%6lݑ`bbW:{8焄](*()ibAKQQAXs"Q 5v!!!BUUqn~sg '6^6#9N\yVSSeY}«Ckhh=|}hTk麂BBB.-$QIĻn"((ҥKAAAx߾2-HKKuX`#SZ#H7~۞=A ͛]HWgjj:e:1g9sWVߺO`##1c\ƍs X N,ʳϞl>!8 rZjm>STNpWpWn.W11/KL'0ʟ.RS />rGGٺ5`!x.N7ڰa#Kcb^8zw`Swr+nu)S߽ Oݹ&1ow }9)=} KuuCB.n[\rrn_+Z=N"䧟?l7Il|IcǍIdw-3JJtOO:S60m4.v]]Z7o:~|?@""lw!=Q~~>ҧ(--?\.^В+Wt-zmmYݿ//zTTA;9z~l;A㔟_=gQEccӍ..`}&u!]"8͟Ғ|D0 KY[\32^vL߿GGGbJRUUE#bdwP?D"6~[q1ܹgG>ڷȑNf :C\y1yrʕhERRν{;wNRVoyt7o411a\pN744Hkjj4(11EOMMMJ RWWWUU;p@0#֯_OP ׯ_/QPP8~~KKKmm[bw:;;XYY9s棶>W SH=~޼yd2F[ {s3?r}]]ݻwjqF^ W^/5:YS񠾾*22~JV@'=6mBQAӧsܨ(A\ÇaX|>D"EFFVVV;v@ ے?lJAAAK.>9sOAAAFFF޽oߎ=l6ѣֶLYUcǎrW^*j}왍[<ſeA.]|(#lڋVVll6n]PPwE388ol 8\_ZZw!r+ͦhβߎ'O]pԩփSsssvv6ϗH$=.FQ400[0vvvq\\+(* ?:˫#l6[*xDGGgYYY˖-.pvvn ʹ#G۷ɓ'|>_$궶kqq1JV+**kjj"B$?:FDWW711ٳg4mСɊ_GZi222v} HUUD"~8Myy9vlllvxdo$앒Ӊ a`?4Hwi$HW>vit~ȝ;nh.[6B];cbbkYYY?A _>==ɻw9d2(~R4::n…ƍI3g:u EII@ga]Lbs'tEE??KݻޞvEw{!ӟ:;8I$5k.ܽyTc'ɓ-'=r䑻o^Uor3Œ+XYmHNv_"d=Ӧ»y5s" QRuuuB?ƠAΟ?: E}陚m SVV&}EѺٳgSQ |3[9**ܜL&ZJ xe8@r,,m]^^{$gߞ>h`iywȣ~MLheew-r)((A˗/smmm;&iOm .]Ih_" ; mҥ(~常g,Wwo["QiG6N}k%=uRpڹ34ȺsZXuuҪUxn,Y5'OkƻwÆt邂jj>0<|C'4@eqtԔ @'344A10_bC2 cݺKx:<8;44]:- 嗘!Clƍs]¸q#"f?~7p .X|j]w7_ 3gp6@7s7o[w!t+.\DJ16T2Y{ȑN.睘y<~OCwi߬SNscƸV~eoOŻKK *Q󮲲;O"uTm]cc*UJզtT5|knHT5kЄ }"#~xʋȫ8GDRG4@wiS;oR^ˑnȅBqe%SU--e2ܒڪ*Nu5H" )- E;yb9Ɔhq  EE͇7d;,,l:NغG(TU50h$p[CB"QTR~(Жjyt)uݺKӍnjjcɷoghf ={jս:> T*,P@eaaCv=כׯ6ߧhxWԂ NNo=`EEeٶztt?] /MM-Ix(#z6BQ45U^]M>R):b^SS|OŬcǒ/\x rrviimy9~ܟG隚Ɏ55!P 7l\YYys=Zhtzzo ݵ+pAxήv-tmoow֭1ѩW!8ӓ챚L&GC%[N*EC%;05j/2[D#Gslީ]jńv NN=/.|)S"ܦ۷"u+ʕeTAANN4jYRRgk566.H$҄xQlp }pm45TZZ[\*Vq1Y \ܜlaTr';rڋ+W^EOpaoa6ܸj37oз9޵\NYWHIRs2ö+/o j5bȑv^'#,**t}}Y-\;vSAii#):ҫf8Xw][[JXtGGGȷCpZv+CA߷o޵D"/&&fJ& =| ltB†$˖~<1qcեg<={X,8ϢECԠM6/'Ty9[""0 ' ׮Uc,ﻙ+.,kۼ.=ٮ]:8)i3w-=KAA ϯ\Icɓ$GBGGYs̙EÇJKk~߱cܹCڥׯ>f`/__ܕ׍D+,v%u>R6655e \(;7 ޿W%CׯMk0,o?np޵MM79Yjjiņ3(}ǎ _~~=ɓ-RQQIɹyLOEÁo`? EN7`!1t)] 6+8I$RTT~}5h f>R^ξ\ wŬs]k<ߨQO*EXwC+xp8 ef2N~?8ǷA+x&lߢšZ> DʊL]2;7or >=3&l>@Z kh;'[!oxu`BNrJ$d#rsU%%UBU(ISvvН,]z} i͚))ymRWt{ދLLNld_q1Ѥ˗Sf8wN~S*B IDATQij^#ɓmII'}(‚<̙UUaA9& &?*?:? B$*aQֆ6666kkXM6\vMWFRS 'Nh֘ 4nG<_$xyš'RΝ{4eJeˆôk(JbA 5ml(ֆֆkkSS={.**iǎnS;a'Enj?--ՋvDMt{ ƫE߆ǽ|Ylpĉ}qV$%L~8<|F``k7F?z >:cǒkk#G:-^ {CwcUUltoT^Ft:N7Ӎll }-%&[촭-%*j~GҖtܹD눚ޒsN=t~ "K_O?pA~~U|.qEEІ$a׌mD"鑑+-Fv=Ә_ϯaU1(*+}zRt,I ϯ7/Qx޽M:oN"}gvPMtc"gn/{f J`29n+Wt>.=ZAGGĤ^}.!a-4Yf azHRXXaTK$RAD–ݛqEN~]zd7'o\jxwg7$.wax4fͅ3guN/TFFRq1ر )**L:`Bs+uI2Y"DIILޞګΎjiiFZ$IV:{nCsFr&-8555 O{U@R]ܵdwHkW"glvكWMpTQQgP{g~sMpuU.]J=|aeeCpg-D 2HRTT[|ݻbX,%lm)zciFӅe'$MW.^|:uo NǏ'g϶.gҊ6:mx `N2'.AAY,ݻ!^ F92z4!!{/^akL満|:/?J*E54HVVRa~x h(um/ھ$I ߿wg@-#z]ڶ:p[vdysлo=?og,Zt v:}(#,**t}}Y-\ srsٕU2߾k@D__ޞګޞ`lgG)."]6l~oN?ۼ?ðrD"1b/ O vu٤I}7lݣdf2ƌ ۸q4.}(jcCӧ=T,LgѢ]dY q}9956 --Ǝ&ưr̙'6]Kx368IACCWǎ%?76X[]ϯ;xzҷl? ţFTzu^kplvvT\ &|~?,*268oUU((FU(ҫLsrk'lٳg̙_; ^X,Ǯsl<ZC]]>Y^F[û"lN6E}}ՋzljVR)ۨ\y<&Oî@xMX(b46 eˠ;;ӜMa]Vhݿ=~?kӴiJJ -&iBB.>zI]w-]X,=sɟ!7px~Vr+&&nw23O?NT:u@p',kD"-,ήddgWdeU0A5z6ݛDsvCo']Ď7O>qboUc>>=ecƄ<8{x7k>-زZ~~՜9C6lwErÇqu5 $K&ռ3g?<~b!#lvCV7o b R66x (oθxqi~ N?|-11;%姞/m&2ڵc+LΎ7nx5l3 ^tjjaB†.@\LL璒6.BƍW&0-WO`kgda޼)ojJظ>w> @g'^,{7Ĥ;i~fڵR}ӾjEYBRl]DY#i66J+EBv~M4313缦;͜Īٻ|۶> P;w:6:#@#"^<رQ{Gߏ(*x<𔞞-Y YYUϟڴI^LGiHsQf!Lo0ht\Ipy{݂cܬ;Po'Տ[tssk7l\ N|619ck3^3w9|8:7BV?zfݻoillo_M$3ܵݻ~(eeaZcs ^0=pZ.&&]p/b+҂$ Ҧ1f+( Oo\< KcS8]ȇ\5a  &/\Hx1u|3gl h(-mZ܁Kv0F:45}]tiW{Fgłtg>V 'TWo~Tq!++,p%#ËtL 30 oNlGMd93g{B0أG>ݫ"tu-nn۷/Ma0ŋϲ2=~2'gySd>߸y~ZFy HCCҦ↢EE 55mͪ&..,D oW8ܹuBٿNԢह©S6Hg)`{7رދϼYE۶EDGG: :;vYIlGmgQ޽ov26C:(.laqRHgA@PL̻Wuu_ MM+ X,ݻO55u() jjikKhjAquY9o~Y8:UT3שipkdtj|s΂wo}˗n3>>+VtBC323+7n_ZceҀLڛWW_WZH ""b}>0 ]U|PC:*/vhJl/)*:ҥ.fg | 5cAVO.<}2''# gϞMټر`8._~왫J3p^ o'`4/_ _u+k!^| nibiAP]ׯy -+'5o ~:[v0{,WnOn5zu $>+ 2}AR‰ƍ?99>guRSRS?ܺBo&DZFAg-"xuі-~)((̙WRh?tlզMHg邂NJF_m@PZZWn dapdw"L "`ŢX4`8 b A>ѣH[[3:;23+_00u}3oE'N_G_qjoW`mm}/iBUU þqgς%h&~zhi0 ݻ՜bG32ivq1!]]]I354gpWcb}È5214חcҘ5P&)tBSMMARR<7ivc GܺueҞn߾a >OGb @yӁ6n yRt2Y c2222NNFı|))eh4JUUd"33>0/wࣁхϝ<'y /_95kO8t豾B"x6A~ZLL WVV^pAMMc߷|iii>}Z\\;5544` U`d3060>~ܪϟؾ=8| 12$>|.??RQ9rz: ޿op}-AHyG\|ff짴tRxekkxҴEFFN>7Ʊto߾0X߿GPUTc9AUUU?CC#GL:?Swww7_TTx jo{0oӦbb.]s'ҹA 2Fm=Ǭ.C54VPZӳg[utrrjZ2 @|++˗/Q(Tuu8ݕ>}:k,>>SN7333311 ?VGG ^z.cXnnn, A ;wSn߾-&&M|T|| IDAT##۷GLMMeee###ׂBmۖA'>|xŋYYY??t7n%((>88H<ݻw̙O;w9233ǝ;wFO@89Yll46p",l쀀$-- N&F: 0ӡP(YYފ0Ƿ7%|C ?{ྲ&L;k11D8Q?45}HSՆoذ'77ᐐnn/_$$$ B7onllsAmmm0 ݾ}{̇>}ںXMMvvv@| ZZǂa@ 0奠0) <,^8--?`711)..VTT\X[[wvv"YYfTbw0`Fݮ줣 "}}}x<~`ɡmooa۷|SU8( CCC3-))I<˗/G>_No޼y 7$Οo1ȔRzHTMMQ vv0T? -2`>xӧE`0itv"dqpplݺl-***wPRn"nbg׭ӧO|||( BBDGG76Ag~eNNQff&up8... A$FUUUIHHOVVWOLx<~x#&//oQQѨ=`"64>F3/nÆPuc+xADgi`AE.lc^^llLHg^'N<?%Z588)W6mD|3#N™CqJ߿;G!ϟ?_|͍E@@w(++߿x]PPqcRRo!^=L,ЁK^:dTZhgz+:?Ɋ{ ~A0 {y=VPʁI//]_L,7#=jBTTwH^o=OiL2Hw|OsT~O80Q~7ҥK 'Ouvvb0___111]]{Aqaٳs ={%K2|O,BۻiӦٳgsrrnݺu``嘷###%$$eeeccc1c9;;/Zhs$9_0!!!{{ ??? 1BG=}nnt;;;NNN>>>WW߿g͚G^} 怀D]]?>FFkjڐTkk/ޜxOyoiL7rÃ?J|W{ ?&&FZZzܹvȮc0#At w5D(`>N.yZ_(_yheeobunCoozǑxOL, þ2 =>o/|GӧMD,L aa7_; '4z׾y^###"?: 3A^a8~"&W80ll|x 0A؄NN7<6l}\rHxv" Mb$X //^IIOJPS;Y BSP8.]z5pߕ axGǛ]]w:ϐ%}~zٳg_zٹ}ΝRRR#00^VVVTTĤsd~U#{{{SS%KXXXxzz,Gǝ0DNNN?՞ZV~G͍7oUSS'$o[Xom͚'Nw\]]]AAAwwƍ9ewngg@ #+NAvLo6Z!:tt4˖) BTUUIHӧO||yN!++;!fZbETT||||aa`&ژؘg$tsA,#xk_BQҍ]w?7$䥙¦MRH~qҥ{ Opqo XLӧv.4 իW.'W@SWW.f~~DPs阋cAKq{qrr^+V\ܿ+/㋊?bNP A.-(8zCGǀməspHG8tX,77EvɩłtJJrr<{Vc1Ip8BSSWCCGEEKeeKEEKy!&&dׯ,,,x<8+AV ٺu={ɢE=5o۶Ã][[ȑ#{ _Ӟ={]5r17@8\uu_kkԴADK#.>WB[Ll887??YBu Ҧl/h8s (jU_@i))W8(* ^44EޓpS]V]VYR]VUZWţP(!9sE֬ђ"e?5| !!!CC÷o0~~~{QUUE֧O˘;wի7p ܬt=,X0~D\dl``ӓ80o)L߬ŋ?D=| Z1sJJrIKN)* ۺ/&giuрu焇;"e17 SYiXZZ?\ѰC?6WTTWVT|%N+%#)-#+!-)=\iF-[ tvֶ|jjچph4JXS^_VOFWN_TL{]hhFYY +0~^ljҾb?QSMHb{]vY>>+B^z`4ӳgNNFS o-ōş[ VTKFFCZWDSF.&3y1 -x>>> [{IISIIcIO.^L%9sUUUTDTUUU)21b^ڵkw4aC:@""^6#d}[99%`YD;+*ZKKp,, Brnn檪"`:1II*+k*.n,, 00 QQ.UUaUUUUaEEAj1338:igw/gF=9s@i=_@u$nݺ@V,S =02YJ,,_ZZ<(*0_UUXR,$ 033(,/*j(,l8w.kF^_CCLSSTSS|@uv0޴IΝ7/}66&Q2P8TҢw6C:p!N[ ; >׽w6$'qθΝ;t ( thfyyuu_ ޽ϯ 44ĴdehhQԂAݜS_O߰AnSVVЙiZ .%%^Sۮ\I;|RDc]}^^]ffeii#pjj-Y%(HLgTWWFS w`VZA~>R/vZ---t抉%.*,l˫}өS }},, btHֵk]{kƍ3Ꝗ2FWm[/ /蘘]4+/FdZ[{޼ɩɩlA+(ϟ/%1F]]:: ?kpÙóZz%KWT4|˫FUUDOORWWB]]c J a\ji&Fp "yEE(M$1ӳgj[GGvvUffUvvէOtt4JJBff ޖZZ"")&67-N(tt4gϦͬW (99~99  jk̬ͭLH(>w.-//`` %#rQ9stt4<{6Np+o庺-wj }}O?۰AO^,S #>lJUee!7LnnmVVeFFey4"be#.+ȽxQ~вiJ ٳy&}QQ.͛Բ==eё8qXnVX?_իSC"P(++5ssŀă=2#@LLML䔔(죓j| Hu+KQQ!-FO: IDATCao!!1U0 --=ii/_~̬ZP%KNw뭅 N`p3=O޺uT³g%kTTEihibbnn}}_W߿4w. Eg?negxŊ xy-cg*+C pCǏǭ]Fiܼ߬EGGi>ArRQyYJJYA'ZMM]L H\XС:}}) khGGCSS._~a}Oϥژ VVFssEssE;RSRS\\nȢE $~>+'$0&AĩP))%nn<

    9( tp4//-Hz0 ?ynj TU>~ӧvii^''5kɺ{י#œ117ncRĻG͞L|~8>hÆPeT ;w61zu=-99p(MFFErrݻ~󦦡c*u$.*JZ]V\SEZ͛P8S[eeÇ+*փog~~p`₂?Gcd$Νϧ֞={Sg0lj^ti18}HQ}}44|֮ ?w{ߋ(j HGG QWIJr8zDh4JKKݻc'OZ|߶-BK븟_|UU+A?x=/§OH'B} ԬvR/_~\t`a08}<ȵ>˪Uw|I<.(9ScMMk ++NL̮# NYXs t$ݘy4P8'ecL/>y?UYrUc..Q(ԍzy-4X$%ASr`033mްAoǎۡH~$;=g~~O(--}Ёt4 =:z6orq8"76>֭- NOF:05xBJJ͛""۶-դSS),l@:@hJ!9ǎwf84`QQneI98.^#uҼ'O&TWRۜ4= G8t象4Q^ ]ԥ'~%ʛ4AJJB0 fMqt4dggrw XCn䅇yaJJiDm"ttxxؐNGv0ݶ-TԻN%y3HFii圜, "ҦǏҢWPur2A:”z{;ah" 9sn .^.--z%K>}j{7ƍsR,,9;/+ !D>.n/޽ZK7쵷&a,.>,(-|BY0Ȅp•+/-Z_wB[P5A @GGS\ 31w-[0q?#*嵬6UU˖ JM-#`Q)99] nK55mH!P8dĉxff]L2 >!3 ѣ|#S;vf` wLKۿ~Y葎6S00JK7" ::oo}G:h׮NK~f|A:5按leu qHNy{Çǎ3:,o` t`:;TUyx#Nɩ108ksQ&&pG%%k)v@?st4C:aAU޾_.Lyyŋ^=|t ѼC$e` !**̙$SN'+PX把fcc B 02҅;[RQAU+(ruT z^sLpif*,lppfiy~``m+WNVV4H\Hg23SHNvysׯ}]wH tnm海inf KMwx{/gccD:˴+,lQP@:/˖HPJIIN"֮޻wwtzzY)B; -[v~ݺ:sQ>FF'vYօ|C:@~`VUVG: )32!Oyysi@MM[pff H"oJJ%%` Unc3YD,> 'Xqq͚MHpllwnڴ)lhL@~>ϯ;~܊J:;6)) ! ˦M7LM|wt$ YY&p(ٵ 7Qw䀖xdA7i×}#e 3}}N%_?_YZjV))SP/_hQ@ssϭ[[=s51G:向 tBGGsơ!swLϞ/+k22:^CQ,99k6]tDt3ICC8wH!H^C/\Id9wnj *IJllL<;;mNmWzzZH:e z|jNaP5M+ު*P8Ȫi$::&VooG: 0v0ZNԩ O#ҠPllL۶Q XP8d#.]MCCEۚ611.zʈ{ƍ7TU8H@JBR[Fw1X,aJU'ANZ¸g]:th^jj"s}͚UUh*2^>$Y8?5kEBR_'ps\mbZs IFc`U fffr!+,$~G;MMx{?D:吓wsO,/'p==XtRn 0Qѩ=z'1Qѹ׃$r0z U"w"?HgHg|T5O548Uv4QQ޳.G:_@>}j yb6Zcc')(\ii\ic ??==m](HCMMdK@dDvJIGSgFll432<\][Y] N 4-(( ,NZ^ o Ed⳴dǭXYEhpʼnV@W8(mm1|hiyyu# 9smP("pCH"{_:0%'xQ~5 mk NS<} ϝ)'LJt(j'&6ӧSP+F5@^ >>_!@@tsMMdfV"9;/?<.fMUiQR֔d=KUkMD-"Yo;VM2vJ_3М9#''v@4 ? 'kTjw̙&ch΂kQs(\Qe۶Lnִ UU|q8cjH\ ԩh#͎Sd<+i|y.lWUUPl{ݝ;iy$(>fϞ騃QVVCFs0̠&.)3KTᅂķol<9:`0<'ꈋ N/di)dddDc++?Ϛ0Pt[ԉؘݰѣս#A(~QΟ۲ŚkܗHI ~ ~Qa!e޼ vrv6` D?jZZ8aDvakkd2g:98>xHAbVVzO찶wq \Ŀu"v鐖ߨ &++r8A)-qz}M~5<\xAz !ǓBJP UW7ˠNw}+;wAɄ$9P\\:.ðcǎvψje <07$6-̦MV7[!S..֮[k+ ;eeN=ruTQD&aa>)Rffɚ5WjWN<uS߿!9n޼ٓ&O֋k]lDJJ80pK >>QO}"t!114WWKYz*c;{ [7uꚅp굛7SmmKH>zU{u :`jsqCu/aqlmhh>u"Kv+Az '/))o||f mXmm02 Mk\ݼ9x7nډ'fbJ3޽fPNCݽdݺkwߢG%?~Cp8B3v=v)B}}3 빷o L9EZ(n))Iʊ~uSd???\z+'see݈UU%ICp8rR_YBss F©]{1}I55A$II!(n  N+vvwPL9[B =cppxQQQ1kLЀy0 0 zݢwڹƍ\Q'?o a u_M :|Ѕ_.['{:ֱZܿ?@8tP7nt8gwzzz\^^2=}ذa"""hiiƻf`Sq?58ݻU\:k}mnm Łw6n:^ֲ 'qJUU…ǒ[m+aa>WK\\|ǎ}Vxx3Z+%%=1ɼqㆊJHHH/^00 {Eqqqaaa@@@MMIUUC#FHMMKKK۵k_eeeE&_~oiaG〓_fCᖧΘi\Az ' oxyMIZ56R1 7S99e'srYog7 uh4:_=@JJmM=|ں c{ӧO.]JOOdm0Lxyy1 STT8qbXX{ޢy{{KKK?~F[[{֬Y)))}~;jjR4C \]-VDF=,!QQ==,Az 'ܽ,8B1 :PL!,I!1 kFHEEE aXppv}}=8s挮Y||<@zݻw[ !!!=09994]VVVFFݝFaF ._+--}Сk׮ٳ(CCC~~~uuk׮;7n?~:::m;z@ Y&::---^^^***άoQwUPP'礐{PP(?VQQyyo_Zե1 D""6UTc̨Qlt Nד޽+zӧOz|@ccxi?4H '+CݿECCz֬/^d;299eS7 z}߼Py%%U F߼ۥKPg}/;T^~ǏEyPVn EIIp޽-zzzW\i!00ð,Vk?>hnnS]]N)kg&XYYSXtttYcccL&a_f2T*㬬J^^#GP(Q[[Kd&%%H &aػwھv1Xeen*..Y!CܹsǏmUt>X^^_˗RRR222ge2NNNNNN2mډ={pgZQ-k^UQu|IL̒\ZZ:H7GDi4E?Cps:zA-k&$d^r$]q@cáz۷/66%77mwa-UVյh4 .///?+;`ƺc $$$O8ebbk.[[vǺqFKKKY(BBB{^VVFg9X?vkūk%...''>yfJOO>|8뱎N^NTU%~67%=HAA|ݺkkL@/Xs)ȰP8(襇,CPo^˜5P5q*[)((8sɓnڢ>|u sqwwsXcbblll~"}'Ba X ͛+Vl{,:rرsss a26ފd?ή MOOp^ׯw z{{Cϯe`}ENNo\@ }3||" gzpMa2 Sqr:  ~I1 ê=;w֛ 뛂M`0/_aÆGEEEa|rww;wvHss3J%ɍ^^^FDD888t]?kϚ5k׮]_|Ȱ9{l ۷kjjT*//`c%$$-\P,Xu%%%EEEO>9sf^^[g9/^߯_˗;vOOϲ2KK˘QF)**]W9YYђ~jp+ǝ8͛arAc?uUJJnTfCԪ2qZn{Ν;W^^c^^ϯ^b۶m---[l)//7008| hD\\ѣ .ڵk---9x` yyyVi&cccGGG??nر@]]=$$H$VVVƍ22.8nbbT cƌa=PVV7n\ZZZs)SO:&ow&11uQQѴ4///ww\55绹Bb-- p?m \P/^\" @F1!!Yж022}͚oz ?y؃S:: N=x~ٲK\GVVDDɉWSM]}{`J++;hhhܹs}Lvv a;s0,44';Θqq~ћ7_/CGGU\];͘qZ__g )(lpa ߗ4inm>ubVz3fVR.Sn{`0nsX%<|cNN9#΀櫯gw*YY/'i7h,`01.>}*?aa.{`#p27o~Z`Z T)z{B^^C-\8u\>yy \Ԕ_㿹 Ԅqz$**PV2k /Z}u O޿7Q=(_|7r6\^^fggH-_iIH `-hiɆ-_ڂ: \D3t(uYNTϞ}VTT (EX]x񢸸0 Ĥ'O߱cGBP8>%ݻB@Ϡpت;P8{ݼyH$bpqqAq@OZZZNNNQQqĉaaaǏh[))Cw<.$..H@µk6oκN`W\m(,jj,HܺNZZup@ Y&::#Fswwqwwhu?VQQr k݌3Zרmnn`t-""bnnajjjJHHxo߶>Çp,փLVeFv8oߌ㇬XPTDA '}:{-JJ0 {Fe7}Q{}KJJ>}:s̼֙f͚k׮/_ddd؜={F)[75kָGDDxzz:MSSSw޽hѢ.6;!!斖 Ν[,%%t%]p+\FFq?*(\FScƌWRRZxpZZZ<ccI& 6ϯFdSqqٳ[7tWWWwwm۶ijjz{{_~U]xw…'O:uͮ]54p$VWmtɄ qq׮"?Kŏ: 8Ւ˗/_ܺESS)mcvŋ/vt öm۶m۶vڶl VXӯ7PM ݻBL_$$ćaX}}@G\MEE?͛wܹ8Zg)CQgukHYYndYWkj ./:eQ^^С ||\& aVW=N` i57PyXmqNӼ6 oo`첌Լw d9ԡؘի{ *9Y_wB'xe  :5W::hAKyyɓׯTUDǏtsba: ׯy͛66R S7NT;lLFF… =و[**iea˫xݻŒ D" a߿סN @8rd1WנD"#/ޑ""kNBKMMWݸq2,5XSJJ)/e]*M6lH5==EGhh( _A]]Z]]:#aҥ#G*ҩS;a= Լ;w6jǎMM-/@+.z2'997))';d*)I];D@ n?GVVJaʶŋBZZ-- 99#6|rO&WUص7\Du.{t:cZ| {~*))aYϯHJIJIJ;//He~S32RAp AAޡC.40їẉ:gPESS5CCѣ5 8>ƺ 0(@߻z513|))lŤI̔ܤBY__hHѣ5DDQDY#Gr8 rs_"ʕt:CYyЈG07RWF7pI~>qԖqCƍa(!!ٳ;B[TU%MMFT4IWAA'3}qdd[p\vr`@RFFg,2Z..㍍UPglݻܧO? njtw17֖fԩoߦ}2|oҥܻiachlhj"6FWU;V{Xm - ^ ЁǏ?t}f]p}`}{[`ٽ(A~wɣG=08UUɓ=g͚կǏ ''e$ҿET}}sRR΋ϟg]a֘1chB=萌޽[ޘ98P8>sF۷l/G11Fv**^NHȌXZZ-))ր= j?:s&I:'ꚛkȍ F[@1n:g(~]mmS|jА4Ic FBD"0P`'8T'ddD9wH:)>s` ^^1z02DnR (Aָ?_xQQY|Vu|YY1Y'O>~xo:bX{{#mm9H$: ^áz"yXDizoݷ aED+55j:ȃ:^^" wl!C\]- )o3֬*,gi9tڴa'mHٵnٲ˯^: '66v옊:gNHȼys7˔ 36VgC$P^!hx)Z))I^=a %%eܽ ??/E kk}SS5?{7op?//޽3$%Qgr=KK]ssMA@+.ΈJOM͓3eܹSSLMNMM4oٳG@0h˜ _Yr櫛7Sj }|f98[<;V{O?zu, '3N~Dm:Sbnj9Ru𓪫nN Nh`ŋ͝FH8CeJ__Q__>11ݻoyZ"3 -Ǧ6nt饬R--YY8N׾|~\Νvb|g2]RJJnP˻w<ӧ9n [ 3~3xxcj;w^̝{^UUtQޙ. Ir'Ol>~Xc]e,||v*!!:_{0>;6޽pk8h!,,mpe))׆ ܿ?rĈl}d%TM܆Da^/0LNёrHK{Eј:@̝;L&D3Aq^HD'n47tEFF*BBpS8"8\ &'K77-Nx~# ՒS{pp\ܷoUkPd2+iSƳҚW$4:¬g\q:%mh&+eAIJϯ7o c)).%ܿ1hҥA D!zqLbu@_'Xg1沲Ӂ45e|zN}~/ڻ7BFFt͚< I64T:Tu 363Nɞ[N E$0L6] I$rES;'N,xk͚ #Gz^u.ނ˨Gӏ8 IDAT@z󬨨to||K ګoΘ;w$ _+W-,,[vINN<*jsLۢEf+ ~Ě:zNgp}>RR®II9eg۟5Ll&jo>ݘuNgPнWCQgxAg4A`UV'?PO7zu PXh4:LC uL&͛7j޼QϟgӥK/ȹZNnL"q Z?""}2Xz4u.5q{p(@7||]]-Q8u;`e:**6v쁸O{LOHؽ|XAA&DĠǩ7]CʃgΜ/>5uuͨsq#^^)z騃p(@W^ʻuվ}3: t&: :pBʞ=azСى+W#2$"zzuKLLmʫW^M3  'ЩW__=u_YMM -|}Ç$$7ō~q©id20˗͟?ر57ɣGk}Bs@:VUp} ::y ~ tAK"lh:OSp8naq+|޼QIIZtE\?AVVg֋ffO,-4yuwɞp?BAAe~~:p'O>O~}˗yxL@ p[4qi ǏϏ.!!pj ԡ8xRR.  '̙ܽ&\KJ!I&&p%K,)fȈ8Jik]rC۷~^:g9R=))u  2 IIO/8p@eAWsT`Xkh=3q_nnyP˥KB p2"P8hj *}`Xy{όygaqsFX>W2ѣ5߿/42RAA^ilD^oTmSPx{]nnQꨃpv^hBNW0 ߾QZU6aP85~i 3}IG^^¨sqmmYqq|(~ vii `~}Μ7n$];@ӿ2LT([cD"ΆAcBgi;143spt𮮎ć:RS~}++^ȶ8'w QP8q5Cq뀍#Gb@޿/RV4h\l+#AA/<=Y?tD+7DJFta#IDz^|9sL#N} u"gh S‰76nTjˉ-,F Ep#/)/ݸ/'2;V3C3ǛTl5Tz}3bb[cG@)3:ۃ‰} 5:YTDټGݻB}}%) N7˗9+WˋD"ϬYEWNnP />2۷+CC%:c1 l 'mAmHDiiW|$ *甖V/^75}dDK "#n :evY@oa"ǏݥOޥRV^SU$geמ~ GOOѣm0#9LNNҒEDEO{VV͛_Z,M$[8Z}}3`**!!k|ʔ_Q'b3AMM:'ub0?pC5 -M`[KTR:;iھ=t@KKݸGkN6sI0"gL ^\hGܥEO?aE^А)CAĽJ@ -[/^\ϋ02UUI >@zٳ'N{}`SBG II wI3!΄{ 0(*'oY;:),taihBӯmA<<p,f Q@@Jjabb:lP`(*Jܾޖ-zz:E?%JJ C/{TXX8zh777A8PSö^| 5Mn%|ec.-32RA_ PP`oЕ 蝪^^"Dk- - Nź^A&m)]]ݴdg< <#&&PSӈ:{ ;ՍSH]]9cZhSTD!I_AA.Ko|`4 i%&&X] /az\n©U~~Œ%55Maa`X۷*q5gC*W=::z0T@wEEQS ĸA7ر9sL Q[ۄ:z0TqWᔝ]ezc 0Bvvv.//݇ &""bjjzvܸqБ[n;Y@ dggaG ͂piΜGkܾVB?b3SMWꃽ78 ٥3f%HMM4)wN;vg̘\))~HX_xQ\\\XXPSScbbRU=IU[[;bĈT??]v_VVVt:n/^0Y==n A1H$nzٲKvvuGuƹuVHHH?G?ktu#"6R3N䔡//FwwNRRR>|hmm\~HX'NZ=I---cmmYfM@@@NNNNNNZZ0wfyyᢓʹй|+9;<Ya3ի]]]KJJXܛEE0T(+  %%tеkzVTT!??kla͚5ѝEI OOO"K^!!!ww ֫{;|ھ{ݾthƍ+V`=| XC ٸqcsss}𡦦[ckAOhtnq:{-[ 7s!N=lٲEGGťdm_/ڞh\jKEEEZZٹ8`niRVԷ͂ ))Hy޼_A  _l#"⍼f&899^wyɒ%%%%L&ŋ222w[ttaYYYペ2|  ʘL˗]SX~abbsN&akjj1 3gNMMŋ1 pBqqKH$R]]]cZjSSS;m*i[(++zm\\+̏]ޖ}$Fc2AAAzzz ufffRR޽{n5شijjjn߾ aS [8}dY:p)`0ܮ_: '1 zN=dff tmO4[LݻQFm۶~`g=%%W^~saaexC,]?dWQgA ,,MI u\qq:E~<qHDP [?%\ 00XssOtӧO[GG¢S\\zkddd21 {5ɤRgeeUVV9rB0Z:X. v˗RRRgdd .^`goKͶ=~dN:СC `O|躅9s渻~ܹs111666]?]*C)JRRRi ͛7+++WXaoo_YYL:ړT .n;^}}_qp^-NNNaaa!.,1 d5{ll#?:r$̙'N̟1uqxxx㏶Y Wu{n;(((vN>33KdM0XN8pb0˗/߰aCppG0 [|{DDDIIILLΝ;nJF/// jkk#"":ܿ`֬YvKFFٳg L o߾]SSCRyyykk<|';@̝{勉 -[^ؽ{ ZԄ=S+~-/>Ap 8`g=!!S^~oYmmff>;-˗/Z u:e<,sTT$a[",w pv:;(b#FX| Z7^Oﰩ>lpe.Os,|''TdeECB~ZfU::5n)X9N:0~v3)\pOﰩ>lpzg?ԤN^3Nv(8R+?ڽ6,׸phj-Y`0^]% @F  T(8S `0ׯ-~}08HL̒QWF#;a۷Oݷ/"99uSP8?Ξ}pyh)S;\p ,VRZ2b;AaII9~a4M:wĉVhtqP˗/̙:@khN9It>:/o? #uMr8YbǏuc2  RZ*H&3DE^ѓ+W%͵~*`3|/.?qP=Q uHEAXs6^SCnj║f񯹙TZ*H 0"*IWYYl`07l"xN\Cqܖ-[ Q 47DD[J>&GRoB55d),LokvyV !!7Z0H[925Hu#lP8qOT\\u7Ԥ}}mMpŝ;k'Yn/߿~ 75wdeA\vq|Q\\uرcPG F}â"֭6}{;n~-4tS6**^NIKM{H$ 8vq#GӏI$c0-3LRRrnahe}pJɓ22GstOW&D}Pd`㟘rۍ-%%mK̀҆*ad2I^^m)*.#,̇Ey}|W ftCP{ IDATV:8_z`8ШQ7n$76Rk:~))a{{#V@qqUbbvbbVd䛳gfninilګꀀvى[vS{HNus y?,P8!F/_N8q"L&zzN_h //+/++g-:GbEcgS  FSJJ04mlg7lRsYθs'4{MUTo33 Wss;J={#0 +-NIKH믗~~ƌѴқ4IWAAۦ/%% M܈L&> p+` ^^EEggsww[Q~B@  &8@STjKqq+W1 %*(RSo+;:{99e#6o!CʃrطpjKVV'*;,>S|={AՕ8QwDSS|KhhʹsdXRC*lhu`ILpBۂ{SRf0ysĀzM6!{C<|XPZZݤcϝsՕCΑ jjhjʬZ5YfBBٳÇҳ1PRt`03r: 6mzæM7)@4ЪypsCC j`ܸ!t:ŋ)SМ)[UN@"HC=JyJ]]8KP81HA͛S^~\lmuܘZmmwZZXga5kbG_μӯyGjm%޽>3utҶzvvФpmEE_,P8Ezz~@@ +MLF` SS͝;S[[ =E$n/k)|~tOhm%yyuTÔw%%噞RZ2։9R^X?/GNɥ57o aڴӦĎO''?k;v\Woc36KdKkN|е{c` 'Zxqc^LTn[(8/o?6 EQA <k*EEq wodNU;cr70P;}6)-[.XXX{ j.;w%'?ݼ9e֋#gi9]L6lwq1>I 7o޵+-6/(,|{`jv&kCu_{Ԟ=ܽ>23)UUi잟5--itӦ'O f2ՔLwoFqqYǏj7H33-o9//2/W䵰5{33-<ۏ ,ѠpgϾxz7GFЮddX@{԰aDD8S{)L9vh_p2ؼGojjʥc*KL|=qEֺ)sЛipիc>mz&x&LP} 9~̞L{jP VQӧ_7_{y۷HHwj<:ɨo%.y{9#dgϼCl l8cx## ^n:sO8JJX|[{*$$S2222||ؼ F jMvV)hi+9G:،:?DDV0Ygc \]ɱ Iv"$Ļ`+WNeoAAW%%'drZ:uuiЌuasҺ=5e^]]Eʺ@}ڸ1Νma]h@ĉF K u`=₣G} `?qq'LPT5!}=UP==emmcQ]q8Y޾-ݰ!ի+VY\#d=҅S[i/sdZ<<.?uꎷS-~EXWVa/UDXX޽W֮0]?j^Xmm\w7{rgΔ57!tO@"Gf93ƍ ]kr4qZ^gS \cc呏GEOzShLQ\\sLWWe˦Ljt` wZ WWޟ XN=9r$kwuqa GdT*+KbxŅyׯU(f0uTzzܲe1Q<'qUW789ŵ,=SHEEj~{??{'O hUSo-mi9gP8q(}ݻ\\`rr޲+OnQB,+뼙ٳMM:wOI QNdӦEE+WsN;'gJXn9ْ%K"IMbo%$|}-=<>~c3_b ٰ!ƍBWW[g&(+K>z {>\=txl 6|"$ĻrQJlc} >ceBWY3 ,8^ h XgaSSͿJmm%rg_C03:?[-sTTԯfÆIH;@JJZ=i:q0c`'SCl͛SF/f E ,p˃5KwF+551U\23_ASrgG x<^N Hz?vrS5|q~tO}VE&w=5tRss۞=g޵=x^D'Ov"//lhm%'%&>:͞=fL˗dPU'NHx\ZZ{7fo,-ŁWwQU ⪪Ropl}_O{*:ן?vO)+Ko{WQQ`gu_:a*YzRVVCٳ,~z\捳KK ajB_"XG#  }:jT\T37MX`yF6m$AhS bfwP uUCCBYYRNN4/33NyyV>x<ܹz66c\ywoFb 'ϔ`)^̉{D;wAޠpLJ..ggT32^yy@^ާ۷ߖ? ޽{G*..uFfw?w{JRX,<=cil/&W]x9c=JED8;:qdd??+XxCCo(ʜ-<.ۏ: fﭩi HL ٳ}}eStOUw3gʚېneݙƍ^^qr +aޱcƍINNT]ݰdIxSSkzzdC9S pa]3##Ls]OOm ,OCƩTU5W>Z슣 Mv:[p8C%줥+LqvO!,GvO1 -w[Γv͍gEYԒ%/]zqqzеǩYVVG"x_BNW߽/7a"|?0x77y+.>Ѿ}ԤttrsBĮ8p~uz <`%w/\mi[IWwUK fgϖ75ReŸk*55iAA,вfMlnE N9 ^dbH<jǏ?-)tv>}I<ؿ?젓Yvnn7?]qhܶ}yG`)i{λ?kׇpPRST|cK=mkild!(C EWQQ_+:;…=-6#5fj'JJ~~V{ft-)IDZǏߊ{qb޿!0p֪USF]n,ܳg֡XۨQ?NC Go4l2 B@e!CaU=rJ`AEBd S卍H7JSٳ/nng$$23}{HrJٍ/>{5yyzMp~woF(TM4Ņst46Mk۶ˎ'wˁ ȑ na 'N~GDYIK: Uzr_$QQQ(yt9SZ{oߪ("]޿/ߵ+T3,̱1f>U J"!.=xX__KN^@ u/SP˗Gʦ6RbK NNNԩeYYISؿߞ÷0--? P|%N,[l2Aό¢2"D$0T Ξ=ϟApޕXS)+Ku]egjj/8|Ғ_[$O%"D&Ax |innֺ͇eA]\\ [©66Ν||Xga:WXӴiATDz+|hQUk{d84I__RM_II!%+*: JgŘoߪPzmNN');,wÃ'Ʌ?޽+҂ez;xp̙:6$߷oYXb%CJJ*k-q IDAT\u_Tb0)uuml q* A6Wիaaz]i3ߜTF@MFF̆h޼0H۵Q+**X5qsI$2qkiQ3FI]Φ;SS[6n~y(;;}[ NII .8pjm%=tv 'ɿfX*fcm="5Uɓ8eȐ!||p`R_T"™]?Z\\Nz…&w}e3_/+hh (|i[[\(>є)r3g*q6P&I߿_^T#Ιڵo8á(%//,(((-ŅC"xQ.%<?sLf >x1>>-ׇ.>QR .8pxY[۴t餞BDbN..#ĸ**VWd!--=rHSj.8MMMCď՗.Ғᙁ1Cn[?Edoq҉bf8Mh+).n񵵕jk+'~Ehuz&bggu^iego;u[.8p|fQ155eD&fekkuSXXHu'$h>_/ktɳס$>11{3NMYpVc3FQGGqxQjg8iSaf%!!mۥ?:ɉb : *jko~wbׯ:λ OpqRS˗ʶ6"'( S3Fq% :n spc*ZunCf:.+yqPᔓA {8Ǐ.zhJJJ^|~Tuu;wz󔔔_9s&55ϯSK@iC3DN[g3g8͍Jk(-p54fh||RBB€OH$ =666<@F5~]|_֭H$rpAA(N>''Ƕ߸q‚:+))IK÷l"))I]mܸiӧOfbbs˗/۷OOOOJJѣiiiH w^xy9h&@$'筫뙙3uBB3<`Xnfի3g~`'zI~~~YYYYYY)))Ad{0smllc#ͶbixADAaa:99QHKKSPPF…  HKKQdgg+))n߾]IIIJJɉұC(AuttTUUcbb!T8'""++t3pAxxxΞ=o߾Ȩ!n'ϟ%,,|;/_EQQQ q8\\\AQ4<<|ȑfffTLoܸ.&&o߾󧦦1BZZ˫=H߸HתjO&;5dCCÜȮn4cǎk 6G;{cbbTTTDDDnJ9ok H||555;um{(珀/z8IPSSl2IIɡCnذ2`ntw㣊jZ{ol'p7ٳ$':{?{;Qǽ@;HM}!'eG7srrz}sYỴG(8p`޼y_~-((  VVVnڱcǨQ ^ze``aÆ//oxxxii3gŸ?o={6&&EQʵ(퇷 @dD۷/^@QF@@A>P@ׯ+((򚛛%%%Ly(#ۯ8SN!SN)((dffVTTdeew;L9ں.%%AJ-,,޿c'ׯ_b+VDXu *|SRb >-+pذ ݖ޾קum#""/^+W :vjcquu{ll, ~B5G EQA/^\WWwiA,XPWWAiAd2YEE%""E͛75]۷oKHH(;j(2I:iӦ}@[[ݍꅨ쮵vD >|Rilo̘^}: ZZgf:Hg𹢿ޏ8pZ6T©zС:::HMMRYYYcƌ4(1ŋ߾yGUUUqss:tL&דH7o^UU:©p 2lcc;^g5k(knnvN(ļK[[QMEy:> rrmmmϟZ8(J"(GuŔ555,5w:tݻwϟ61[4];]ͽuVrrrjjj'%%(ڗqz lݺ`ӦM'MuDy:G}OxȑTOE9?:MM߿ `Q("%KO_&fb칸'޵1cڟxxx޿oiiEyn+C A)77ƃM}vرӧ?())R]]˗P߳gOwG555䤤*77ٳgWUUQ=<33Ҳc0" ȏ?*:O//x&N2޽{YYYݭE%KPV3G͘1+z;ݮ VXXEEETOEH|) )0WǸLٷo>n׵WPPhǦ =6]uw[Z] E"LJByBA{{K.%&&N22.דPϟ?SӧO v75'E־/o,MxrcxXN)02y…7oS KAAeXXXǣ.]yfʈkRIzHIIkmmzxjj <;wѣ//(zxxP&xzzv|>7oDŽ ;!!!'' ^r<ذaŋ{M՝5klܸƍN>][[֭'O6mà qq7W]nc-#& _jjjYYYff&ejhZZZZ[[yxxoߎ H}}} UT u_~988ߒ%K>|>HFFFD"ZtiOBy .*..~-[:vfsRtmp7<mM@L?Ĉ\@S1;z4pwCQosBCCuuu[[[Qt钜ex]]Ċ+:nnnްaŋ)w= Eф555MMTΜ9cݻwQF١(6e!!!NGEE{Ǐsqq%''0"FyaS׿]D"qǎ:::MMMݥBqj:3D:|ejjgvrӧO6LRRӳ='  XѰat}֭"je h/s6!eesP WTT<~ŋ:< zn.wNEH&{8ʕ+z=IPUUtR 999oooJcۗvMSZl:ǩg{ޝu 0>W.TIɷӈ8`g[&''w;+{ 5pih=o7_~At!z5&lڴiɒ%X]4 Es+(xڕF;sޏsEqÆI:GGϟ766mݺPZ!gG>3glP":jnnٳg/_uJNαt餐%'O{, 2j77ŋJJXgqF[[ۊ UUUWWW^40CqӧŎ'̴jУGΝj*SSSjNp7pȺu uS '>>n--OKllb @ؽ{ݻutxxx_`g_,068~܉@`!{%*A5' [{ ̼y[6mJ%xxb A Tu =n@o& wf гe&wH[x"q YXh~ %..wezz'O:ssM֮qcRZZ8p24TvAtKBB**N-᠑YNN==c>a 粴}DX?6v /qk\ m7ȒJoT8!jC{0 Q]]ի/D +ED1..\hҥjk@pMMUOcdp8 X4`[MMNNZZ(3x<>>>s A|Ú,meExm#9C3Yq9:kaW׳`#`!vrwȢR--#!!1j(FbȐ!XG=/Сnn߾U3{}1B̦t %%uxJJ0\w?-^>jgx<~̙XpTр䠠X8p1C[KKСkgθv...)))FNF"==c<)NJZ* ȗ/)p!Uem]\!mmu{e]i'O>?ܾ}a&gV8v=rH977c'5 AgŋXg(tFsutx%$|u.T^^|ZSS.'xU 0d NZ]4mߏyg_i +S :СG%a-#ɧO12irr|ZZUU >b,\#d۳'49}+VDp78pBdG[.RL̃Y% SǏ?Ϙqh׮4g)999[ii qj'%5$*mwmlD^<N&&# Ղc8׍7mJٸj9R'|ƭ[/޸y5/`7Y {(p8ի--DKˠ?'`-BǏ/u(*YNϼw(/Gu;J[[۷*L EL/##IIkhFii 77^RR&gCDCCUo{ Vxy54̀%LmsgګW߱@O8p0AHX]Y={uȑ \\Ÿ6JmmC/XYs'~< Og(-7%5725;2kY֯0Auꘖ"YNz$'-A88D)LuI7eeIy`J "I.2{4FNN礰:T:$,,L᚜ >(̋ 1cOyUIQSӸhQd[mƏWU '筩[礥VU~Z佒b:kӅٴ:<<Y 'A^~kkm%ijjϟ%aX=awx&+CtHJZmƌ 9.58Q'酓޽ ovejss|b|8ujYx^n0jvԜ9GOCfsExxY 'A6o*2:ڿjZڋSiid)amW嵮gW<7ufNY"Mv#qq~~;wG53[**R3_u: QR0 ʬ: >xp>2a蚊hlC#}oߖ&&>zATTץ}֬Y2CSGݱ# t t^X>> NQ#!))OyixΝossac\pB  l]ٙ3u||f@3$ئ6RXXepK ͛{Xhmɉ&'qrm%"&NT1C{׮4 tumu`嵎'G?rd ׿RednzClbsC7,]=z(3c>ont|} go[Wbc/(v+W^bACC)HWL62+ 'A={2lmC%%nܰf46T IDAT3~GsMO_WZZkiW RSvt4}Յ?hdg11p~**R}%2vv #||f458Kfll]YYu`m{澍X$1(O`+nSzz tt4G}$&&ƍ#[ZzɓuuMXgApDVVd͚i7k*!qxxnP"CC͞=&-B""YB1PŘoڼ:,liJ3su5p@ժUS:Ǐ?'yyM?6gΘ/_~|XHiiI_yiaKM*.>sq :9M:}L wΝwXgo7GY::ʒii/hr6?mߟ>JJZk\AA^•+ޢfgr'X 'jF[Zj%B.w˖9zԁU_)/[ʕ笭u7r#=`m_HKxLs=:%)! {:AD޽ꚃcXD^&!*]@g^pBEE=o蔞?uwJ:hP8u oӯӧ`׳g%6_o>g:]JGH/!f9:\…rr3~ǫkii xhJ3SOTU<=:YRRu`FuQ'̠Uxy DFc!iiff?|sv>>n ~ʒiiddDf>'$<%"pꅧt%%q?~zBtu=#${3OW* PW׼qcʕӦieem7ND<@|J=a yu0X>x+@ nn|PТO%00_gϺ ZC͘1i֞~S\::QڣWLmxlT -J)%&Ր]ZpꝞ0';v,,s->\1Wtw7~,9쪹mϞŋ:Q1"._nzuLDD.q,X0ՂfSK:0wݛi#vQU]V^jn~(&'O.:@0p[޹:ٳǴssa%N}"$ꘕUxBYc%%ѳgYڌ^vիޕ1F$²mmˋ;:bhy۾pw7 Z(QQcݺUuX`[^8QMEE 8V7HEEEY:Ǐ:rd __^67ZZeƴvq͚!CE^"..TQQ'%%rb"qqA薖E^ЃVd]Eq8KXNqUn[//{Bk Lɥ5>֬1[LV|[/JeemPS:@Hwpss(BY ~޽tt1XXhGEin&;H ݜŘi8p𧶶YǁxxǏ/-,qMN4,lVllnaWuuk&,ZdE&A$$DQmm%uAH$WT?E01瑝f"6b1 22"0Z` А uu] ={gMa k:γg%|׮x é\'evj11˳֬a]935N|kcZ R^^|yjqjj\:䠠L[Б#sr̴ND&PV">>3&NT]qVP;S?/EAo8С55wc-({3L6nw۷y;}͙3.,xWƩH\jD!ոous;J:諉ՈD˗_8N!++rsdebn˖?Μq:?F ۿ AALvƍ P[Ҋt?t2$M"/G4; i!"/_~:8P8 ̙:vv~~ : Qr؇F:y{{ 346zyy{_pp0re27~jǹ44dF[qq}GYt ΣXP`4(n;W`W?V6={ Y:fxҔ $aem$z2eN11a[ Ӡmۜ۷ah EQo uuMaaL已תv6?/,^<15 -CWW___ˎ#؉={8p5.R e)|Yp&WW#[[=OزZ̈́ff s:KO֭3:t1׬Y^-vgm{(yAp8X'#'I>>Xg=RP 0N4pQ =<{e+L:K/ ۴ܹ 9:14T'p8g׊FkX&"oS  FD8yXg|yUS' 74TO45_~ ˖MIK[:?^H$/X0,}ΊQС̆@) <=FcLF==c Ŭrۿ`T=77c˗nngKKk{hJJJJJJy̵DVD,4ۧW\\PKO99r[^^@Ğ<):,D3vv |OO bTUVz5O7yke2Íy6L2ݰr۶KYYXg ͸ͯ‰.|}gPV2-): "?Wf+ceyZ…hhMW׳c.^\+'k_oagfMLQO 7ap(Å,VRwv> Y]]ʕ&Or%kԫIWu~Tk+q ^ uBO#e?ׯ...}yQ .,wc?>d*BRiT${d%I}VId Ei{"J-Kfym͍;TEGG׷zw ?]6lXHxc0ޫ%]G88ϟ@yD;0yX1'8(:$3 YPY訲vYȬ`㤤7^pZI[={y(ڵk]|y]]]!::ZJJ ŮY4Emvyyy222LLL|||&fffFFƁkW^ A///鄾>777nnn77>P(Tbbٳ.\0g666oooU sνp ~O5% RTT$&&q +HHHpss;;;yp"?шDF?JJG@9Dv66\]S> w_uuU; hk/56^wvzIHci+sYCSGGGUUť%%%9!!㕕#ߤ`ٲeUUU!!!?~ (77W[[3+** jhh gxxxuuǏKJJJKK}||Ho޼À/_;vСC]]]C5%f ={vYOOρbccrss Cr7.ruUsaЂi%%x{]+am}v[L/_Z-1ѱcXGǔAkMq={.9dDῄȒ555;;+WByf>>> @OOŋ(>>>!!!~ AP~~;w.::ZHHhŁnnnX,a;x %U}hmmpʪ44j[k߿ŒS "..j*޽45u΅--,#(t(F}Zt #߁R]]}III}}}#\XSSLJBP(Ԇ IDZX,A fk888***׭[w]4=&!B".[_| 9PpY 8l(P:~:Np®Ɵg20ossbi)+wJ/"MlҊhn⮺hUUUWWW/^ (vww=}466tP]}\\\UUUD"H$f֍@HOOoiiٱcvKKXښXsqUUEee%g5A2a`9crH$-⏎ w={Vw%,0*>(Pazv> wپ]ASS6)3Nk̛ K`mmt7oBdmm斓PXXxoۋ躻}}}!C?~򥺺zLL̨Q(ZFFF{{;`0LLL#5 JHH <={>|#OOO33 ۋߜ HK ;#/(P&'hq8PZ].6֜aؙQ LtINN,=ݞB www8[[;::=z4((h䛰JJJ="**GcǎaXee%K!99]@@ ,,,--fȶ9vEu1SSSUUU uuuu@s돝iii #aJAA<<"77J8rdp}םqqeRRń4D"1&ASzzzz{{Abbb  Ņz`Ԁ3iii޽;p&&&&&&~ |mddddd%CaJ_Ύ;v1]yv\Gǔ}""(:F`uOvA+ȅ'`*55u۟\mjPu32r[j]I"CJ@8@Ft ^ }6ZX98\x,Bӓ~EA`*`dD"5.(h.#/]mh(++;ȑ͡7rs VVV[[۱LBշo?H+0h !ڴt%--~,f"]mx ++Y(Vdc=b۷˛ٷ/ݻoSAr8̳&'߃1dGlj #eРcc65={qaee qtt4@رk*k̃; 唗WnŒ"&GcoOhi+0]+wO֓'Yqbcc@lj0Y( 3 6}#Nԥ"*:;ƕ+LMO+)I^bhXİX}}?&| f64ϰXzzzzBKKGXuU&qsc 69//kCOX˗;g]\f4P ۷6S !j۷ߟ??0P@,d}vDGGOVӸzM$VV 66O}$F _ťmZMMdvBD"aܿɩaC/ )X)*k0Bmedstǃ1`8FAaS2 IDATO||OP˗VS FQ8#YKK޽6o^+wwn[^9sfO&>>:zzv:՗GawVjjFyNH5"b??dn2U,Z$h]R&)gchu0XYO|ɛpg`j 8'x-5OJ* ); 3~~_q"8!0* ׇ;03;8?=}cBBB/ݶTu'jCc8,%9yo9kwH$%LϟryÆkמMbtB>>:aa7=; S`M i45n(); 'AANUb`ccDQ--p0/ET)Y+!ffrNY20`&y7 l8Ev&Dp Ǵ4;iqWNSYF~'%oYZz`"edmٝ ` j Ha iuJ}=РYY[[$kڵk8Y'9yԲc2ݲ% &_TV6&|ښ3'y͚ySYG~7>oTiiyf}^OÇ(.;D7+pg`w9 /-~sZOOMo3gnÝ, C` e>>vww QOOΝ9jϚŒ@K޲%k9pJpUUc|En1V`/uHyΞKGGw8͛kL89cc _]\w&epi\n wX88fGE3ZUw88ŕ>zTk>yk/O ..4;<`b"(m\M7m89c###|}Zϟ7&4Q8ZfJYP'znnO{Ʋ]`x=", E`lj;p7k,X0%~LMMsfʕdWU.Q,r47w{RwCC٩8...x!RT_Pc՗uww ))>[ۤ~0AC:olqB -aa7P<857z۟_Txn% !?-Ϟcd'}_ǎ\闑aҒ}nܬYqBtuen>租L^xb~ZNK>yҬ%00,LА'P2σ; @Q<7!2;JVpaa7jk["#{.Ս3ɍN@#-ǏN33itի=%$x]gɆghc8AA[𰒵t1212`8 7n>xii6yW~nkᳳwΝ; ]ss' CKR|KKk[CՆ MLV{x\E^am< '$ёIH|'>rDepsK;0tIZZZD}QQS[t͛owH;@FK"C S^TS2&鵶v=}Zf,w?pqdf:|~7ꍉ)Y/RZz@[{o;U;;))ܽWht,,JJަ?; c5ti9?~tݜNNNO?ķSX`.`h=C2'PXNo|)9tH{Mҫm֎#7wp++cZ$~̓''|>|J99={6ܻif[3 G(35wxHI9;_DnV͵R$9ʰ#NLLt)%Kjk[fH~¾}K [ZÝe*xQ2}y蒒v,[&m[|yyx/'3啡#SQqA //ٳnOOMNNwt0&Cw0eD .Γ靬i;@rrG` qGxOn+b%$\G0FF LMOgf>wVٝ_Xo3++#rNRSS'''j;wv,wڀׯ&$XY uǢ Z7m>aC2o33Ӈ~%Yɰ' F^^-%HCMmpѨsg%}[uSsN>gƚ)gR;<~\eK OHIyxҥ 77Ms| ҩz_/Y\`-1YPAaWF{{7YHOUTWuw(< ISggUy`3iCII #.:NCd"Y@ggřՕ;X\$3Ǐ͛Ofd84=GZ5"""?m,1,*ʵx`N3ʤȁ-;YJ%%L"d^j.rb04""\DV?;:R7n\`5=ͼxQeeuvZ oWWu'Ȥ;yUO/Of)f{llϝ;l0/ut }r΍Y['w`45 gYwN1>YewĖr]T  ;9{3imJJ66?~ L̵k{*+44 0*-%EERZZ Pw& ^^Zp>Åk3)>07?ml'"2^^Z rpP9~WYٿ::Q_ݍ6ߎ ٳ66K=~#"0{1u44YY; @ eee֎,/;0>ZZK:;{X^^/2i4ԩ[}Dw nL'::Z=e.U jm`2xxزTTlx88ɉgd Ał^_QQ.Ǐgd8Z58D$*(zzAa딼,'uŦ}׷յ 5Uw[tiwYٿ1--MEzz>a MM$&޽u뽒$YCOOMR'LjW3Ė-+Z[88H#--JHHacc{ZA&$,*w z'5֛ aa[.?zǏ#"LXYA-0{6vTYJJRRR|pgyyg3zzQ/Nfq26n\,Q\FKK;40_B))>O"gH-33Ǒfȧ67%"/*՟:uS,}I::ڜ'*5w{{gm2%Se;֦?{Vqchb$$xI.p?:ܩ|X~X %!uǎWW7]p  uo|iXhi-r`옘6n\t*"f-^,H$A})A H_X\,g}hQY<w<4!wܼP;fe9{Wq5A_Am}X $:OtpPLdbdKJڹ~YX!23{{뤦 8o,++c||E{yiCeDHestT;$$ٳ璅|x u-^'WBKkuݻ0;QiCN9) :Mc˯]sM]=xtcmۚΞpVKompbOKJކmkSB_l//m?(5M/金Q}޽ali{*~ςFCZ[)Q[Qq*  :|D**>^ NJ#0[ojdpݻge==wn֭TlOjj!7U -_.w??KLEEo(P\BHZZT4 J44興m oO //]{Fv |bbJ< (]vщm;0ڵ\׺:Ne}}u)\`ۻ˫RSw,;X@G rܾ}Ui[~7HzRyye|P(j(da!O--::LNṄ "%g`ĉ|Rx(l"'&&:gޥ\TU\^VC5!`h4j+WQfV׮^xcP啱| 155MT407g&. qh/{{1>x<&%O6ٺu) 9uR\8;ljD$m&X\NT+0ԦiΜyy{N?ORWb0˗7ƪUs Ϟj"s/N0zzQ]]YYNԲ۶ڽeep'JYVGCFP񕕍䕗(sZE0YЛk IDATeR/joXLDK>xPڵ DeaxWW7DMLV'$܁w-6AA?GG`u[[%脼{MW$++cnQQ.'Ĕ()64q2@Jf'vf T%'ŕ(//AJJx`b,8lpqM}FXTSS#Jf;YY_MOD"H$ؑ鹔\{ 74@RRt25AExyySmtu<<S&++Jpp;eL G45#!w0ĸ],-}|tz8> 'x 5 O2__PW_t Ksp]P`=<rӤbbZpPO]hiiF++%oii`]emxݰ`#ʴ4z$BkFٽ0F&/WFj{Hymy9#^=ի/0f}}xw%6n\wQcklb*6&h/ kkł} 񆆆Dj@ ົ?~5Bݟ^NYYmovi黩ytnnpY?&`CT0%i*bh([Xۧ83ҥ $@B[^^cj_VWr;iw+8bJ]'')?(Ӣ 11B44E* 5%*"&Ɲw&i[#Gr-N8;WR~C(JNNtFkkdd,$&'!m//-i˖q 4BP[EEgqGhԾ}{MAUۗ 7@t&&))45)(_\:K8O ^^6[pOpwObdgwSn))vwnpM0gZ76{zfPEMMiII"4tP(TX;Cɖ`dSS IHC$PJa+>**J?yRWquqC:I!>Å&&3?:Hٳ!7w$܉=2rە+R9 ⢖ݻz 4yM0aoptpP>r$p'-\( ۚCAAYzCfPP;кq۷';~㌤RM-U{hiQÇ9~1Z+++"hffB2{!PaddD/Uw?x0[Jtf44"")SIcir%7Ң]]ճl\RD3 :p`Sa+W:)(̿{tVu6A޽ukgvkJgX­[WS\_Vv܉}Wegg_x[H߿۷o߾|R\\xiTsB( B彠L? f)8ѨЭ'NM=j|HQ~E Y8XBQ** V㠓;:z XUUOa;׏mt\\8êk׏)=|X̙llLp'W@@x***RSS HXX ȎHgϞ+..TYYǰ]3ohOoDꋤr "2ԩob-m ^SƝ;Krrx<>:>-!kn CmӋR(3jpOxΝk)kZ[[!|󻺺Btt]fMYY yb^^^ @qB?)DXX| Q(Tbbٳ.\0g666ooo }}}nnn<<vXss3AՏ?.)))--()) ŖA%%%|Â7nDFF "x..IWWWgggggg}}CLMMIwADDDddd痕UVV|rزe֒}REVH6n\dPX r73ݔo޽fͱ[x”:}}BBno;Ly-?KqXZ?z4goooN3ʷ;nܪU~NN)pӧ,? wa}֦..|onhhhhh8i҇&YpaRR UUU>X~ݻN<mD"3^|r !z)Hp^NK.}1 ۷o'imm  ]KCCk%bbb'!>pA߿xo2ow' yѲ߾Dff&鴷oMRss%{^ƍW._@[acdc4yϣg||{N1*9NO,!&:9A--mSNΞ_[SRhFXDhE'N0 ))IUU54Qid)iiD6UƱ+V^h2ghCںjiV菝͛7vvv#>}Zt #߁R]]}III}}}CIJJw!   zMRSSG*paÆjffGݹsGGGGFFΝ;eee566y.IH=z~ǏH6"ekkkmm=BAoy w??oծڼyL-NN@hP0dDI#22Gl q洪Lpqhswx!?^j.++CYٿ(P_[cc\\6Noܸ8!3G$Ȉ̟ chUUUWWW/({ܞ>}K:XXX>%n@FkhhTVV.[LYYΝ; ͧO-P񣀀IHrssSSSI3Fx LLL۷o G4jA; ??MM `mܸHKk{_dv7o!5~vy#NNSgK+;ef>;4'!+x@1EER ;mEv35] ;:;{mlJLfes@@ X[[;99]|͛Y[[444XbNIۖ-+.&vh:ssTWגN QVwݿ{f::ZOLLvvh({¢I[;KG@bccgkkں~GGGqqG=44TRRRTTDEE4l\0HcǎaXee%K*=lذgݺup8pItt4??p7'uF~ bE5N PSS۸qOgO-7ĔTV6~88(iL YT6/XcG"( RVnٲ7n;t!-'74wy)WT} ,êh!U຺ 47T&Yb@?~-['QwuM%wCAEE/Js7o=q" Tgzɒ7yyq+D7+`TpsS ^.úh@i; ( wZe"7+O 7ٵkq(VNN5gAAFAܿƍn^9=ׯdmf&(rm'w[uagg5?uƍWJJ`dr`cc:p@ٻ>|p** JJfnǏ"aYpg ge=MJid$ w!twOYoHw"J˗hk/ׇ'kCܬg&k+03Qb+F]]={6x{g=1ii-{CEE26DӍٚ 2(ܮTmmsUU#E?k,, p  gapN˶RpBssQlZóg`_4bbbD70"///_ZSRٵk݅ )L9 a榮dǎs^}Lacc 2JIyFAijѨG7WQxLoRaNN晹''5Ocbؤ헱qw+W΅;޽ovmb qءzܳ01ѝ;WNV`P BEFncbO)CUPV*+s߲egN4}Y뛍SQWk!w&lhll70#;iB ͷzz'yyJIm&**"++K>=B>|Kg<@ytLLtVV gaĎR9lC9RACsy󸍍E`HX,L&eH].>>:߿SxMO46SQإ}5cʸsӧow!kkEHiCP'hh({x--RAiIoo?A6_##]Rz3`-0+77𸪯 ||*ō?)u UW`ukkEO^Δo;;_ dMxWII)!!aժU ,puuurr &KeڵB={3˝:u E b;N8\? A8\?;N==8ގA̩p0^^Z99mmB/#ձW5?b-20`֭((xIavoߘ'%>,\(p''3akNdi˗TC222__߳gϒ^m߾KPPp===O5 x񢔔'''iOիWCK:͍ͭϟ??C&,**8q@999νC,ceeعS):جoorY[-- q~<T10 q =#á0,[&RT^9(躺zӧNDi}|t22<|bn$]^^E{h2ͷ֭<~S R^^ׇ+//w* ))AaaakGG/_<|ƍ#-;;AAA---5444<<%%%>>>QQQ!!!^^^Ϟ=;{Vlll^^^nnnAAA@@g]DrWBa52Z_1F[}Hzq#"qx맧G\ǩ'8H}'#_dCoƲ2ٳڑ0!,vbU"BTV/eב#9s޺urrؑ$&RR+* ֌ ip%RSS###ΝxGp7vvvKKKZZZs碣/^XXXyf>>> Ҁߏb jmosHHUR ypaee45]p{:+յL"=44h<q#N &#sdNCL --]q--` (˻-nw< }k,LsWϛ +o|{.wp`n. i]]w'{x\=p`S\9?*?zHVVׯ_x<~޼ybbb_Ǡ;a0|PSSLJBP(Ԇ .]:pnF8酤@!@vkn{AVDDf--%k+0Ez)BqݸA@>UT+3n}hJ.Xһw=e\\. ww'oy2-/.)yGN3]_['W); dkjtt"ޭxAiOGG'44.PJJJ__ ͧOͿu!qqqUUUD"ZQQ!**ܿy3t!UUUpg >>MOEU?H`ACFh Ҟ^Aу9|8]Lp AS̺vmщi7 |llLz_[ZHyӒȁW(3}Ӧſ~ޭ@[p9߽u Srx\STZ]= -*r]%U}_|yȑ(0suuׯ:djjA3j}{})ȾFj"{hQRJ-TD+ݫDQQȒ5/.df1׽W3s_yg9<<돌skiiR]]F斘ٙzi+CBBywޕ8qޭS]ի$&MQ+`D"!@ C4<<S!c\\,`;2! 9%?ehemӏ:;ܼFQ3@"ک3WMIISVиoΝZbb J"O_vn;0]8hS^^>99immٳ$ccc; IDAT7oTUU]f͚5k<<NJ>(z nqf| \\12U LM:Q\l_` >t<|PdO01^}.&K[AA˖yLNb)jE@PbbEM|gNR4?x0BX5%Lkkŏ=~\/?l/z<q) QH$::~DQ+啴v/^LCUU`;2mۂ]\"b*o޴ jhۑ;`d7A3N$XYccik/ LL<{CCw Ʌ`3d9xPXĉTej822e#lQݍ٩]vMIz`*Ck >-j9@KK$V:OϿ~rIMno bƩwnn(fئ< ::= 00dPvi_FRsHќƸW% "TIiCD.;;u*ܺ5}t^)ebfm|pba@i:氲2(>zddÆLwQad%E)jlP{l/ Op8u)'O>0ӄfaq%gl"g$PږRZZ r2o^K} ;Rij42IyhN// P^^ޠ<ceSSeh &(j02ML`b* 8tgr _ 8/k۷:(h[TTݝAx)tY'<|whΒZZʽᱞ=҆֯WǾx҆IPFWWv--ovu ;KKCE͙@ [w}#2`{37Xj)??[r2Gע&8'e0ܐ {!X@ ;;Bbr׭K25֭+)+~33͛vuѥ5˲bXR`,~ pD\i{-,n:!ÄE8f΀D"LL)miӦwOc<HQ "8uwSss`{1־ ߔ!8 --rs|ڥLLtxxX,-os?NA+v>u g*edԏNR uMݾ]s2~mj47vD"1m`12pzz$ZsH{EE!8yӁD"$$^!}c;f̶mi11H=SFF-;%8~XXHN\^eeS`GŪO7EEccAdE[[mЉoLMu#9E56$(Ⱦ~­[/yrCH 4:cV@[-- jخAf:mTz.==͟nVU]|d\EE͛v݀2ZZG ]{+W׵7>ܺ >p@BV89hh'$T*Qu{7qIspb؝;!R\˒tPQQlwfŧObcc) YP\L kESЁrs 9cH8l_f|C Ekk ;Ԋ{ "3N >>7Nvv҂w~w/#--QJ/qDD Z,[g┻PqsX@!T)uedFo}Oϰ{Lzzݖ-+ϝ3/pX2IC^:D2pb00O2g…TF޿'"EQCRRn_!&&q %Kxvd* (+p7Yf"5 '6_٣Hʉ_@GG\E@]][||ɓ멣񾭭Z@VУ&"]s3>+69U8s +Wzl]qCtA,CCjj$؎@O>QsrVVƌ:*ڷou^^SMg*آ4J*a RO>}heP[YRR0Ǐ=a3\\QQ{N2p!yӦ ##w (h[ee?H DHRݚ52S|.8>IQQxlDgݻu/^z}issmѣ6,tSS<=/?gaq3.Y,Zȁ!p[>hiQyyMTLVV((( ( 33PN5<<A}qTjj>R#Kյpi4α#pt~xh_Q{=(|y[^hhDG#$ؽ,BBr)'eieի?Ph}Yt)A0& kO\Os?#^NHp9&#%BN60/N=5HQ)// 551ݙ@gEE#䤛\9fI8؎qX,_DZDD"Bﹸ,̏9yrTU]qTQqu3 ++00:9 LWĹ֩Qݔxc_^iNm1Xok}h23N\2tkf//yX,V]!2S,pN, RI3)" ( ++J!۷]H$BL *cI~F"RR`;/DbY+C:Ϗ&&99Ǘ-pwU`fƒ%o[暋KDWN ++cPж7ofQb}++ׯ[)8MݺuE/'"II'ODDPP31>پ=$+Çh91c16,Y›}Q{ >)::(P[faq5&fUq8BHHNaaM5yzƫE?~+L}~?/9MEv{՗դ3Ƶ 3T>658edӬZ-e?V%Kx޿\3K֬tvmc~[ 'CXYQUܹD2.iӊ>~c\YjcsKR?:z;;_[wBvNqm͒1LFFKm`^^zjꑢS^^jjb 44pH &(YYJۿ_?;Ft4ZFi31 #TWRPGv̬^FVp!Lv1kkMM|#aP(j^ի6YY+VxPBRHI o?ѣbr)))( MDJĎZZ֕9Kp.(* WTP5pZZJVV(05 . /J7y>6QU] #39o24ۑ$'Wr?SΏ Ιeb35wp S0sZZj^Dž uV]NBFF{8GƋƍ+>Pk/ҏ{3"u[60 qZB cc˴.Tm/!O/$$_^رX**%&8:j>CG(* յQ9g^RRess/5NNfrPoRӫWͬKBhS~~8V_ZӫW߿ﶱQ~@L̾W_qr km)9 --N11罽S 'khqk, +#ВmٲJw بݼiGOF+zX[DhʕDDx9٩ssCeA%%a,_WNMffJqR(Y e(/oVVTrzzB~~6QQ?i'ZZG|ҺC^0 FF:GGNNzhhxߺbl _D12FVV HIDܽ;00vZ2av\:0Rmuzz^^sWA'~WQ9w9:T^~aX#IDq=cx\:bb<,, 55iB::jGE@'&(HAJRYEEl/ŧT*ȿTmڴ⧯}ϏDVSFF& f꺶sׯXu֋bcc{סYE88h}7ve!ך?xէNP!CII~}%%(mLL`32cΘkTIHp.)r#;'(@ $%-հi &&lw &{8uu -_. #e q6ΓC27W ʾ};'.Ց#kmm1̌agg0޳G޽<;vhڥ 9Ⳅ$kWM+gȃQ&q#Htȵ`@@3gv&ۚ?ɓq55mpw_7Lcu/^.07W< " UWQFF5ۻWonpqTTT SBkUŋqȿ.10?>?03=.,|u&&L9W^dop=f``1򳩩G\]pDp8 Л7ԟs{vg F9qpPu(*z LM3>IK57Wۑ[T'$oxxX Or^^Iٝ. !O3|:qb 1)2>z.kill_ '=s~[[g1X,--ܦm11{!c;ԼΞM5j轎||`;|CeL۶ieOL`lz6pq1@b"$nhhle޳DJ9HddMNbv_XzZ*q*BB^^5_t4 agg"Ow>TisCD"n޴dRtt466E8\̀zK3b`RX,~qqn߶t1w~~ڵ>>)j/_Zw!՟|}S.]  OXʕ`q %%@Ka"dd$Q~~nHL$ыz[]} ؎ǯ$X088Sk4fZgz3~O8(LJJ7ugrr Tp8<8Az2Nب޼neb uwqq1C!srrev/btt d^;8hN8]蜜tKK=o޴ko01cZ"X|fҢU_<~uk&?n|LBzz10b("cӤSFFۺ Y JHp${_m37pW]}I~!u"kf//yX,V]v?44Dvu ypa{@||9(Riڜ RuK>Tղߴ l TH$޾~_eb䒚zd2'V8 L904yHB3==MFF~/qopBn޼22d|C^~ʥKon~ctt2.n?yE[JKOoݺ޽|s..3_@MM,&foB3;;w Ɩ͕J W/ڲN[[VؼY}ll2%99 3N7YYҢk41 MM7Č <=UT]._H{01QNy=t'Cִ=}Z Ӈ Sg )z}ikSm0\D_ߴ~<>? >>VRUUZ[$$`=&昙yTFF5JK'$$wTҢɹ`˖;3[eYNJD\LMMlBMM788I$+uu/߸}fN1  lFF{syyM* %%Wxs<VՃ N ׯAAtB!pDƩk͛N/׭NWWݶmrrEF:-Xt̙N]HI o;a` 희v~Leaa=66igwgfw۶iTWSI*#?mAcnjfvxU' bb1188ѱVs{>PS[\Ppgobc˜<VW9vz551(u0#Pp @Q$k޾Ȩчi s)#"ƣK),,gP0@ ;_:o^FFe4/h5BC ק\AjjMe姴4_=WG<ںu%I;%66vlܸ݈ Czz]JJeWאa 8@  *+A~Y(}}X:=D'gZZJOϰ3ozP/[5=~СH ih(arx7W!}{ͻxkϭ}k ZQll0A֭ScD"ڵTcc_?޽O\?{7>~tYrrDzQIIٯ9}0o+j'$$ eQ ii{H$17Z_dffӓ%%kAJJHʕgkBv'EHH$vt 8)_HK0z>=p \lG+aNԆPPf``,%*6lll+lذ\Uu1S0PCTm]LLi``hݺ3=cwFD8ZtGqs3+߾yJJ\+:nKGd<=ud^n|RD]ԬGe4+>%*'@ *+36V C/\HE}mnʪ#_ե< X(* ߸544G&'W) %XA @6 o"7nd*BG@%.T{h3٩٩77ǿ~<܇9|xMUէ'O##H猌9(@K21Q41Q`߲s-[n?yr@B:GIJ hkKܾӓ'>ܻc'aaׯoQ鼼ӧ?|ٶMm;SR*32ꫫ?3H;:j^-T(( (.++TWS$iOX+*Z 8z}ɓY) ;I,KKt al@SZS9-,ׁ'HAaѹs,AAի e5?]LQ{ Eݹ}۶A\9jn-[nյȐM_nm:<m{#>m;>୉ƒ(#˛=XCWWu-N -*A=f JJ•`{roؠja ӈG{;'pKތLMJhhylG{ܹ;f7Pd2~WWt^GvMVTW&tqȨb`;3 ?vv6iӻy파omX#ƍA')%%nĔOssr KIz`׌ϟ#h߱D { EM،:w%37,-UKJ<\14 *) Pt}0E^n #GvvFG18\qĊ+>_Z:'2=J\8ARz$7I>D^}<)AɹbϨ=,, ;vSQ97?,, Q(A;:jǿ >"q#k""?Oyam GGg y{hi~}Sr_100[&'pF^GNα'׫0?TD~'ڪ?YbIWлw`;,\ȱy?H`p`?}uRbi|YY¶Ç׀_T=^s Y Rҥ....>}y&3GQQQ@Z__ZFF7/HDssoDD{7nd]+kgEynn76n S(+/?{1#'>,ddupBի0{^5b삛{ϠP G)1ж?;!#.'4q1#E;>V133^ 0 XX.] :١CkK#"y&ܟ>} "}؋B!.M!=ͦ,NgƎZ,ȧ4CCOoڴB[{&߂ Aہ uYYo::uu% ett$n3%%Uܹ󲮮M^~ g1[ZdccG o/{iwfd,s'wttBX7-((G_˅9ܗ/?1B!n]{Msiŋ7=ٴ)wѣ=Zl@$SR||Rwrv6 W33.=իfFFZ h93CTU--jU.X_ۇܹlGΜIHJ(,>V+xbc[Ytp䤳s="H$rr+*ZJ"#Hw$$%V+-;ׯWhm(LJX%&V$$vp"'||lN0mt٣GNn\ut \QPl~ ccɕiivvꆆ2ӝ 󫘚*zy%B!MPCZZsA~[N/ "Baa^PL77Ubn nT]).UP=&"x#FF:ÁӼEDKDDN55}H$iiIZTUu1C⫀ĻwE߾z-+WA-GxRefKy##,-o:8#44WPH_cPRRjyIɇoߋ8KQ;$ D{@|Yw" ח :{uw'&p7nd:eɠ쀀\\/nؼylA_feէT4Dee7u`&jj>D t@ V--,| /L׮nݺJPB'(QQ>`pZM.^nor$Hc/_ll :ܜxgFCc)i|hh]^[^PHii+VSSaYY'֧քm~eU;;pge՟<헑Nbb<381bqkiHHp!MxЇI(_^ԡs? , \FVQQ8-D"1+M|mV}}sӦX,/wd'] #"#'Lg;/=.9FKK f00dBK u+ CBCC;]sfڥak~~oDEo@ .^ NY,)),u*/o~0Z;/^|zZQ/ `eeDh9zz++[KK?~ +b""\TU/[0`BK21Q41Qx<4 0:-OA >vo^[۶qcC ;1DCϸ!yyoNH$82Ifgg $}?m'klս#*tt O~u/MGgŋOmpsCOQTtr ++HGrv6`b~BccgJJeFF}u'vv&iGGի2h477{xxW>dr̭kpB??? O+,|+ /(7u..;wjAQQnPJHF-Abtt2)ܚ [C|bgO"gpB`xxci釒ɕ8~~+*)]-٣WX.EC44!)~D"֭ukk` 8x0EFFfר ?zTUbm"={†&b 99 ˛=ӓtu] QҨ(kkE ==NQ #ӧOP8ddj!8`aŧ/DDGG'{{Goia(1[XPW._~ vxlWÇ){\t IDAT4 `XXV"5b0._~>44NOO#'HYYXYYDYY AG=*w/oժ%_{HvO74tlN$R522AC)")<|-wJKx ?LL`,_[H$X! `ƍ)2}$033  L P(7M9#G_  y6/)#.5wDBRPZUu1~gbbbvڂ_]+^c8}f^^gT{ED@36fDM>nч<~*,̑rwp3::551551ү]]KK?VT`08^^ayTUM ^[P6<(15p"*޽ONpw_?3srP($I+8.;UII8<|]pYǯ812'%Ubd*m1/$aF$31 IBPIFuMMW8!?myywUTx))Ճ!MX,~rh9g}]hY_OJJ`KΝKLO?  4}˗/^RFe:^n9~ܘIw5+TT9p}}iY'Fu`|S]_4 d BYY!9 I%R0KrrW>^ܳt)RS]_~֋GР|}Sw32҅ڲΫWKBɓ"ׯW```hh|l 66j׮"FDH, /p=Reݡ B!\H56<ү]]_VV~A ""\yLTT --CX|gкusN ͛v /$ýxtbd5vÌLjut$DZؿ>'D"lmW\jC xHO xC$"xHTzzEMpҏVR7ZZ+)Eߘ|66j>>OڴQQf*ϟq<~j^=r}?_l ._!=$(Հf.ǶnqDSugCCwnذ=xPymyyOe!WDEg2c6<~jl q#8㪉DѣBB8O||Rݽ@>+8C6H2}|2Z[sM72xe҂l :}$/]׭gHᄧg|]]/V>.24w4;!'ZFF={UV~nhhag]]4Z?fcglY~fo_Xj6(0篫lxx[/ PH!!v ŋ/df}oñ1OjYY}aaaa`kn!Gkk3gݻuք=>޽W߿@ .] u֥}vRJ ҥBٌI?sӦ +r%$ERFShh X8#" &%}XTTI``fꈡÁ \L[{I\SS7MMuumyyM3II HJ ,[&d 8/5l/~<~h<89@ O^02}MM(+/_]T)(ɾ1#Dپ199;w* -V.(طOY]}! hm}?be{IIN!!Vf!!fnn n収ND"xB||1;JKSff$$$GDDL UUU_ssVrٳ栈_(όgDTodxxJ?} sqQ1!7͛7i+.$ݫz]Iɇ:dH;8p4rr ~}d``͛qXY.[wR>qq>aaReuuuv䗡;Sgۭ^~gIRNNb''qI8#NDMMq11jWq̘:ƶ , !yCz bccNIII:::ϟ?ϻ }|R+6mP=}:~vMQQpIRi,oss/rHHUKAe u򲸺oyoGɼ>LV-upмr&)ɥ|l'+)tvqOSgwK}|R=*.*zD,gcc`Z$Я%a` mbhalgm۪95$!!~=z$!!1:: ussussb޽C YYY999gޝCfؓ}͞%HmӢ"-*ZJPTJ-ɒ5^ Ye̜~7`~}3yg49}!ڵkƌJHHbaaz &O紴1G錬!Q}QQQ199ð*QQQ7w'l)Sol8 ||nAq_ m:oޱwx^NWx՗{rr 67M{gѢSGR߾~[\\鿎6 .? q $N*++ `ddب_TT?P(&&&4 g333۶ 鵵4ͫX%NMMM>|h=bd wa1C޼y#..ܼi&2\YYdii%H$**j̑===B>}bnC^nݖ-[0 377glgUi`---YZZvzĉNgӦ%KNOJgz Nnx7chtmm˗f8 jkuuONو T*갹yPss GghiZu^Ooˇ8_c9)\yyׯ?~kyAAEnnGzقHJ *,"_eKq޸611憫Wͥ\"))z;wR(Ư_*))1~Ҡo߾[РA jÇ/___SS-[XXXl^WWGRX+((jժ!C0Я_?Ln "&&Ǐ;v,!!>1cBFikm̑^~mffgϞfʕwnu^/ri`$iܹQQQFFF _@XrŽ^^\3}aaϗ-ïttyT=f]]E | ޿~&2b)+W:ߛ`#ddć՘7oÇ]ŋm_>(zb_._~~u޼c[SsS88nCC߽͛{w m`D"2666++tҤI x⤠@"rs]J***̑N:uՇwcǎ})BaTE;DGGGDD;v;tiMCCvݩW :: %Odg X!: }` ^G|} ćtЧǎ-5?_F'ЗHD)o55߾T|\+)BEKHJ((tUe快kz{_]h /{HRR˫L!CKJJVWW]?@֎1B^^>00P[[۷oP( {۳g455p41bc*ct:eݺuqqq3gD͝;w˖-^z7lhtҭ[jhh ֯_(޶UPPԩS&LL&EEEY6ݷo_655577 644ܹ!T[[a ,88rG&ɓ'OVWWWWWG 9s~۶mvvvmvvvNMMey$i޼yNNNӨ:>v7n\KKˮ]3~Q%KF_;G޸v;<)چBmmcII *QP߿(ݽW8716O'fvҳCΘa̷ x}o ^IIMZZ>qˣG)۷G]{ddhL9r̙G-;qݐ'wz[yg**nK'ks!gDgƌ?dgO B0 kjj`,7+'x0nVp NNjy?4͛l:r0(@7TUX񧈈Wg< sq ?3mAl$7#}RR8eJPHHbBƒGUVV?]|YGG/..>jԨZ}ggbb"""w^|cYY-a222!FUU'Ol:w޽{/^!!!m6|fyyy999QF:tðraXKK[0 tppQQQqwwg|#9<~,t:ظpo޼سgPzz:c"o'ƍ׍׭ԅ/ -&&FWWWNNťſ#5%%%H@xb6w֭7LLv46RHkt::x#|̄aΜyăoza%))y!4oܻ}{c?[^A꿕+;mYӧOGEE޾}_e>V¿/ϟKKKwuCW{,Sfeexbx6vqq;>E^~BC;  /[[{zF` ==o|?,t2KJv7,9{Kϯh/MRVrʕOwֽN;l[044Å :NګVcFgϞM",Y22:fϞ=çwu綿,0ڵkdxY$ h4!Xnd!$NJJJaI?O||n 02^]";F6>{0 {拒y1C]]q{ ˚QǏ?ihxl& à\QYٺ@@D"@ڵ5ϜY6w`e322֬Yo511a`ddqxӧ:/RUC;ers_|a.sxp!Ȼ " []UUЕ>P.кu\%+DZZLFkxdf>|m*bvtR\\ʱcK:. =^=y|-q' aiid/w577FoW\IHHC9::n޼9668>>jžٳgw!;a}6}Ǐ#,--O81rHqhhh2_|y=;e0'''##+V \\\gwQ\\lnn~޽,--ŋ766\{_VVV__nÆ 999_Yd [WgϞ5o5D/@ `5¢,{"mL$';Qغ5( J:Jvv o=r2hĉ߉)Ofc5~oً63?vlIɚw;`9˲ͻv=z˗QgUZU+ceCCC?zH$FFF?չhjnvr '0 hOiiiffYi4TsswFQxa9D7444p|LDDĂ z@ L>Ԕ13… ׮]{nvvB@ HW9OZZ&Q8wΑ߱fŔ$o^;s_&&bmnnSWϽ!BnnW޼7o&7͚uH$޼*"lP2V1 kM!Uv@ODDD0>GFFΟ?[ "**o$ ޿{{bv) I&ݺu 8GR7oެ //yf*C Ԟ>m]ڻw/B966VOOO^^յF.rb@ܻw)N&?NxAut \G]EE=oƍ7Sx5a~ܹ|ɚnL^툣GzaքЯp[Ajw%%%NNN­z BǏzUUU?~@eggw+++Ϝ9*//g3gTTT( ~cbuuu"Ғbr/ ߁78`_Y* aغuƌM?7^rM~~1Z7̟*N%Np$N [n˖-3wW= 'ZՂ`"ҒbrJJj{߁@&O޿pIHd()m*ROuu9"w\l:?)'(+/W^\~ðVu^wQמ垟?F]% @ܳgY7o&fD|ylnAIuuL:ߵ>.uv8we`8f{{Y7[x Ǝ[[[S 2gkưS]]y>ڮoooy1XRcd4`ÆT*߱6b֢E#w숮ipH fgs+nCݻiqj%ntJIKHdy90 x2ܹ :V+%%>ĸLevq88>nݺjllxƍNAԒb/z؂'~wIl=Y^^N&:? NHOxOd-Xp25u\?wZdCMWnt#G(-:뗶ef.]zFLL0,l /^vw@`KKK۲e˅ Ҷo߾n:~8H$:hʔ]bwpZ ?i'NNf\@V^MFF|?.eMϟ~$u\yqн={8kJJta Gii1^s8g222}}k׏+@o9s攕iii9:::99[ GUUNNל3ǔ딠pj2B(#㻼<낐ݖ@}0 ۳'nX1cr>xy]ww2zaa}|"-/9r$NHwߎ@@@@@@g?u;W͜iY!C{P..SR<<]{xĔ$33O)#}RqF NNfi4ČFņDff!^蜃o+*_Ov0l˖[RϜY>l&7h"Kï_zuM_ʚ\qиr ]nLqv@,/ %8~ԩƭA"&&bƌCBIչخ]օYYpc"匌ꭨ8&>j qW<{v9Jnk\П#Roytʕ][k~[aa_С~g=~<172.loH~sZZmtdfbƑWJ !aÆiZZqOfѣvYss];w}0kB8o~CzHLppر{}ի\N}zu vk/; p=*6WpBE9B(*۷_wÍ%NN Nܷf!5JkWl~[:1U}!Fk\\jT 2377743:ennkܭ[o[xܵk/Mg(4HH$dfq*FfwVoڽh֮`8ɮ]7wǃ۩B $NH$Z#Fh[T|V \RRt8)S ,,Ņ&-[6뺨9eAٳܹ~5)ɋŅd22 OedΜi~pG&44P==-8!CDۣ}|f,[63kjj ;wp|>==E=$ݯzzF$ݧ544HDf=wu@93!__wdd9!Ct;wnnS׭ٞ[)uv_qޓsqoInX%--+/=rʋi )$kB8 {̟7ocȭ[_Ӧ 5ZuONid4 ?IHkhp`'O(;pvի/7ndmLvJeeU˗v_ܪo[LH$8`ۯК5l.BhϞy'=|xG:41QCDZZZQ[o̘aSHHZc#u9D"?EBB88n޼/ތU JKk}055_RRTUU'aǧ߿>"b g>?gmkGq鰕 ܮfe{zZ8;O$~+.8tA.&`QQAWǗsB׈Z}}cF%דU BZZ)ݜV`bң ;166ǎv'o;M˶T'XB֖=q۷z-X0"-ᬱ' ׯkw]6sIdofxzZ*]{JIIQ55ܭ4n>'t'-F֔Y8cyzZĸ@@O)OŶMUUtwΆ=/-w]0tz|&"heWJJ#!IG,*>zîzR)7ȨӇE=ٺժ.Tںu._~y򤽭-g55<oaqHTT(1qu{fobJJ11.FF11¶m3}'v3 LK˧ӱn_q1/,^<{=0ټlل̋WZYV޾6u'zzZDE}q_PH_ua?OW$˗}anedZZZ[\\ؿmSS)+Kvoo՛K+v]WkAOf{{_6(v9;U~b.^\ieϥ|AVV<0&xe-++v%ލFF(aX7;cƌն JMM##IIuf3gu {sD$NvHO qTW N;vپݻoza# nju͛3g+qO;'tjEE}WNMWRTPp۶E ljC::X[=wQX~nmiyXXLx[w_Ezy1 ?ttV:oaqœ'rt}}%+c ٥FFd2ݻojj2za]̘w+WðC:tӦgaXdD"СLWz^[Lb@۷&Odov۶F*/G_rIk\٥dwuUr!CԻԤܹCNܥ5k.';#YӇs]>Ǐ}llC=8vѣvNGE6`u@8xpF߼9mMM5oeeCv-qRivYw-8B'?ti7z`VUsǎixm%${ '_F*&1s !/ꯃWddď_~ʋ.5:T_"{LAd\j]+#5qqFjsfT*-$ɘ1{bb;?6vg='_^LfxCCӧqq)wU477477>\wdHED Q;.ڞ?!!2c13۷{Wr9e:LZnr|&!!3}iHݰkEvfsHDv'':T՗?|xYÇ-,/޽rf}*u+BLK˗7Nw #qq\ϯf֭3亜*#66yK!!Ӧ flP2 Us&{zFdg:Wr?l;g#Gj"5zt@DĚcuOrFu:9^QQN]fO11ozc~~Epp/Ul*6m8)}}]dyygP(ϟH N܍ #P(۶E׭Y3՜L&q$`fnnW߿ﮪ*y G:!'ի7ޤ744AA*eỾ H$#ƍ6LCFF!D h}lll#>|]A; ۷+^yR33.Zqq1-UIDATC^}!y1@֯y3}Y ]inn@/b 'N<8v,q退&q0`Pc#uƌDD.X:˗--t wҥg $@@--tF+k/_~aPPD0 "lmO""̟?tɒ66'||Mjk<0{V=xaݺΞ]y Ǐ?8wƍS.) sm'7tYX|2/ihh~4;..]]EssCss5w;vD'$d39-d2C|T,*mPh| a'N<ػ9AA""lKmmٳON"IS[ a~S&ϢqΜ! 8^LBCCU+>}*63w>T*mܸY1iiGFmljjadM;wR-ed?*+K!H,v ڎ9R4R􂐐'=ӣ"||n|Xm\}wlqFT^^}{tUO6>|HӧZ5mVM$ߑH$|^C!Nt:;[UU_މH$HM4DPӧBC46Rep$|Xxxbx iiAחžļ.)(6m0;ם .~*C4vI$U¼g];@ <~7@@^^3\]tߚ)L)Ț@OtZLz{y!!gL'OHضm&xn||:I$Dpvyæ&j۴ Fwt ijjϯ5h !TUsWvO hi5d…##H$ZoszW_idޓN?4aB'YǏ'VA$.\Xuꔽd2T@8p`#"IxI=<`))1P~ ۩Q եorۺ*"գGYRi%AAw*+ey׹,['w7o0BJ͚zNz@ m2#)| eTZEE…'[Txy]y3g<}eҤA]{Ri6Ғ۸q>4?c :ߧ͛%"@ ,AxWr ~QKYYrWg5X^^9A Y[BJ:: eryyTjKۧh4 Pj%$'NKHDPQQUff!55eI$FcNTU"]\ UJ>QQd:|[:sq ;8KZZ6otiu|FZ!u#|А?#}z :އ@@[D1% 0 [ǟnLǏCɤZat:))⤤$$a9cc|{:#zx'^R4@ >>D"Z[6D"dB:^P^^>_@cccnn.jY/[~JKK@x;"@ca̺ӜH$,X`*YTT{u~~UQQm]]3B98pFFFAF *_OIT7 !+A7ofԔfd4IFq99=|)%%mfjK6Ǐz!j>|(!G+VܨofDX,--"''&''&##&++*--*##د[qqW^J ZZZ0 !H_BMMMii++'nhjj*++ĉJKKkjj$$$Oe"$ ,L  D QLLH[[f-EE5Ս]4?~!?7\9\SSJQQeҤw۱c F CHU=ܹ$ݳ7+-- 8L333~Mz}~EА_\YY/..D"Ņ`SRR<QQAQQ H8@' q~S999?G"J[|yw͓_+((΍[!0а/++` Ö,Y"..>#@e)))x誘9s|nƛ2յ !T]]vZ__?{3{YQQQAAkjjLMMHX*,, MlM8}N///ggOYY@n@Wݿԩ,b>;ͷm&++'WJJJ\5999EEE'FGGkii>|Bjjj< '322ҺtBhԨQ!EEEF ׯߘ1c^|ܶ Nrrrk֬'jڻw/w ͛7UTT*++BW\խGQ͛7+((o޼JLbbZRR=rJVՉ²?DDDOcӛ-!AAА{?>44L&$-|a>.6l~㏍ӓwuumjjb 0z%%%>x:!!SN;wN@@.;;C壢 o߾bI^x1p@ooVc!jjjnܸGo޼ 9NϞ=D"-YxzhXgS{[YcwYn:3U#>|ŋL0ɓ'D711ahddAo:::S] V}ի322֬YW%%%4/_o߾1ΙAY[[׊ʲy]]JjaEIII<͡-;;[[[ql..((`#`:~+V̜9y TƏ9RWWoC%+??رcSLqwwgle\6|)W|KJJݻkDe<>>~́ Qj^XX4~x___''';av3ft<:>YxfFH>@ L:ƍ555d2YTT!y;vtЛ{NNׯ}||-[:{luu5NwtttqqrJBBB\\}ܹ[l[ZZӏ?jҥ[no\~okDe<66vx?/=zyhn9aNNNFFF+V@+((ʊ#kk/_lڴ득 %Kt؜#t5mmmAAA}}X èTرc1 kii 8pѣ/ۛtU yyyww&4{3)88ظðh%%%|PMM˥dddV^]__<CYY-ķm:Q6onnd, @RRR[[n<44THHӧO-^">471OxpYuuuYYY;>`3ML333~Mz}~!ܕs>ˍKJJ200t$U:}; qO?u; qN@ :tB]eeejjjWSSӯ{"G8!!!^w '%\BqN@ :t9NIENDB`XQilla-2.3.4/docs/simple-api/dir_000018_000007.html0000644001725400016040000000522713273140074015720 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    runtime → xerces-c-src Relation

    File in include/xqilla/runtimeIncludes file in xerces-c-src
    Sequence.hppsrc / xercesc / util / PlatformUtils.hpp
    Sequence.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/classCollation.html0000644001725400016040000002101013273140074016462 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <Collation.hpp>

    Public Member Functions

    virtual ~Collation ()
     
    virtual const XMLCh * getCollationName () const =0
     
    virtual Sequence sort (Sequence data, const DynamicContext *context) const =0
     
    virtual int compare (const XMLCh *const string1, const XMLCh *const string2) const =0
     

    Protected Member Functions

     Collation ()
     

    Constructor & Destructor Documentation

    virtual Collation::~Collation ( )
    inlinevirtual
    Collation::Collation ( )
    inlineprotected

    Member Function Documentation

    virtual int Collation::compare ( const XMLCh *const  string1,
    const XMLCh *const  string2 
    ) const
    pure virtual
    virtual const XMLCh* Collation::getCollationName ( ) const
    pure virtual
    virtual Sequence Collation::sort ( Sequence  data,
    const DynamicContext context 
    ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classAutoDocumentCacheReset-members.html0000644001725400016040000000622713273140074022541 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoDocumentCacheReset Member List

    This is the complete list of members for AutoDocumentCacheReset, including all inherited members.

    AutoDocumentCacheReset(DynamicContext *context)AutoDocumentCacheResetinline
    context_AutoDocumentCacheResetprotected
    oldDCAutoDocumentCacheReset
    ~AutoDocumentCacheReset()AutoDocumentCacheResetinline
    XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__dep__incl.map0000644001725400016040000000130213273140076020743 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_20.png0000644001725400016040000000321713273140077016470 00000000000000PNG  IHDR%bKGDDIDAThmHS_r +ao]z B m% &(alD akr9t[N\.7[ߧ]ϫ9{wsȃ 8~98'[3^ٳH$VjRd213]6~n%G+**%566ΉKcccaa$` ls-pN8c߿xSU"srrݻ7g)vnܸAQTVVԆ ֭KHHhhhl{j7c eptslll.\[̰pBfFo۶m:c9٨<N@겳Q z=az> !qfY&cǎ 3XUUժU-[, ʧ3gǏQLE"D")))A"kjjJX,6nq|ɒ%ΝbŢV-Zj4^fYT ra8xBHLLܴilIII(.//߳gϧONgVV֙3gBoݺrYV $Bǁ@ IttT2$RRuu@AAEQ׮]bχh4$IVWWL&aMMM====JOOgJMVv:,˗/J}6=l]]UL({ j655DvT0.F'.[$y9ӧO+VܼysjN.vr{޴4+  GRիWBaJJʻw]:::rrr`ooo$g'X .\8. >>rggg2{_=]ݭVk׮ĂEaVUUm߾5b1}Ő$iZQ.+33pg|-=rgg' vqek6ՅG"LFFF N>m+++,mpw8tϫOcٳ;wJҡ!tɓ: 68qyvm6B0˗/wF^zU*?ydʕ<B't:˗/GYYÇhƢܮׯ_Y5$I2<<\ZZ ~ݾr a---2k8 NK(СCBP$9r&8aXII(`0$%%f4o$K.onnNNNFz^F.֯_zDSN{8!4L˖-ȨjE ×.]"b7nD9rbX,^wU13K{p:`j?ñ5GDRCJKK]L&+..>zhEr k!1]w [` l!Ν;sc^A7//^ٵ"Jǽ {N 98'+4IENDB`XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__incl.png0000644001725400016040000024170313273140076017633 00000000000000PNG  IHDRC`/bKGD IDATxgXYBG:"E( P kò*c bPwXPl( vTDWRcv|BK2)}ƙ;gs=aRLt VH+"+++44%: )/^DEE 4@BɵdrY~=!ȋ7ԃqr 29iL@ZA&2aÆ-Z(## {G^^w@rU@8`dd:sƍO>M"ڳ'|39@ȴttttttLLLsss+**ڹ'|A&BQPPPSSkl6cǎ;vÇl6Bٳgf}:uԱc߿}9BVSSS]]]]]Ǐcǎyzz***vK.9r$<<<%%ĉ5556l3fLTTԩSwQSSڻwoqqǒϟ?kС=0 !ԧO_xqʕ LJJ?/_~Q:ovڶm~s DB6{lkCa[nٳGGG`޼y_0 Rރ RRRb?v>nƌG߿;>lccs=ooo ·Ç#ΝۥKqN8QUUuJ|MLL8z(~Owdr@OƝ9s!T[[{;v777=zSF :LhiӦc uuu:eʔvWUU骪mY80g6o<*zȑN:_J"/^|EE!CTPPpwww;ocKJJk.Sn=< .^8q˛2eJ7F6nܨEa(Gw@ZA&QSS5jTK6QLlٲlL@ZA& VP?>l!uu0*Uz\"}}}n022RPPظqcv')*+)QfTqe&hkreRVTQ)+)ZhذaD `~-~(-!ӧtzMNZ4wnn]utm%:/&\d۾g??`0j3?~CUdJÄD"SɬQSS_zu;}Ӧk90 |?NKL0dkkŋZ6ypAl44}&RQ;i̘/?xbWXH"3!!->}a!]OOjqCtIXZZ͏bW_0cb drdPUի,45b>gIHb2kMLZTadQ|Z"ԩ٢ drd}!ϟpvv&իGEIIf1TU;vL8PLkGQ@fokrW7ѣtzF~[54$::q`2kUU3p).k^qwڒ>Y  }JKOUrs]ta+ޔčUWo39ܚ5osE29_t!>}|wrI$O/i"\UU]OCCy#nj5`b<}#Q˫USSp++k[O:z˯Vw/Jd@7).|KBBڽ{ut ^ݽI:ð6$[4hC/E`@<  Y/_f5Xta~vv&dL jP.h/]s#{ZZ 4  L!II,. ܭUVyyBCt4ϝ;ʕ5k?/츀@&@xC˫5-l7th7X߽jPm'H gl웑#{ ;4 &6%%ii**޽.".Syy5Bn޽-&LaõmZ5H E<=m7oۯ_2)UGz۷nh!>Eޢ |۔).4XT@**/_ƍ1&R29Bٳ>啩)9 C>]՛>}IW_R29mTSSaXtA**6q> onj۟~!x@&uǿEfm-ޢ 6DG'w**gݧ?^A]UTodrWTT%!!->CaazV7g`QQQݶbrkz嗾K Aݐ:y4ͭ֐8UZZ'3wgo"I y8@_?˭[{xtرA˫?wGQjyN͘h&f@&rI:PU:9/Z.H.c0jջ9g~]֭zz 29#l6Ç:O30 uC^p\oyӦ7n=zp[B>^Ç*+[t͍&9@̊+Bzzm׷ϦM==m"LdSI #11#!!߿+X];͍ff&px&/L!r7G>z@ Qхos)Rc:\\DA޻240 } ,trwro ]4FC]e%%ڪHrtO?ݷ/~Æ1hdr /^dǿwcYSOOjqCtI耘0DѵSU.^aõ3\:@j_t!5b>  !rRWWTBhG}gɢ; h@5XtٙVٷoXtAW뫋}EEʊ?-X9gNڌa1hW7ѣtzf߾]\]iDG$ŨQ{{qDZa6j^mmȹ; h3c$Ei)t[nnB@PWW)ITRR'gr!jȟ>I"=hHl67%%+>CBBڻw$ǧ,Z!L!Կ{mbccpLIoW;l]Ku>x qw*Ёlf1B_UFz{{; dr.tz͚5/]zI&+UϿ$$ݽBGGmu| 11g@6h.z0;viK&c9 ]BBZ@R&BaXj˗Y ]s3߈=JJH4KuС;yO=sF@[ԅ߉O&8.^hiibՕȌv8bDϝ;o fHRR.+0y3yyeUiwJS WJJJʊb;cPа!Cvܺ:bDOB]?nB(ŊAAh4ZG"rR.߶/8Cq^=mZH0Ĝ!ƾyAS qѣ==wr|r8ZWb ȳ.ŗюwra(cٲe$ ZZ֭fs0#`C 6 Xl8 ~`;CxgfݸO qrȎ\gggHD dWU̺*6Q`1jNM 'Dvp XҪwޝ+쨁ϯR絰=Fv DLbjjKtr˫ʘULn݌ZBttb2Szb{yLڋL&#tz Q۱!g6ݷ.drqr)((GuH39P`GJJ_ O~~BȈLWΖ#*L>ʊZZưp?} u |VZ̘1%{~.D_U|gцPrVqCv3>ta9iiiXG]vm̘1c333D__t… ":UܸwVV с/m߾Gyyyr?~At =o޼ \H ##b&7zΑ#D~A&|~qYYB4drtMCCx7>XGGGUUU###^WRR;!Ա?Յ!H$ǻu릯}H :]?ƍ]tlp.˥K̝; IpppMM ٹs'F0`@RR޶mg6&&k׮|7{ лPsJ*.$:yd/>\LiӦM>0)) ð#G\r7o411A?"T*u̙gΜAavHƏګW+Wb4iN?z(Bh„ t:ȑ#tcǎ)((0[HOOOKKSQQ9qD :˗/vvv6lؽ{wԩ3C9N_|?WZZϭ6lwPwۯGDGaV]}uxmS ;Z [[ۓ'Ov8uLǏ }7D" @|AAAcc7o{-TWWO0!$$$%%%""xmooo0 +++{yVWWsYf5s'N<}?R(L/_ޖw !zMm@(B&&p'ccmoǏ?&:yΜ93 w޽qBh̙!!!111o^rFjkkY,J^~=B2&&LJ 1nܸToo60D|2NgXeaak׮pKEEʼn'~ݻwk֭֬ѣG+**x⌌UVM2EF"7LMMز ̜U9D"]KZ߿gϞ, ðWXM6YXX;w 'aݻuttLMM#""&M=|pYx{ 8P]]Ng̘;w\& .XZZRTU\ 0zzzB---:uҥKlΝ;\\\gom ңGvYOO/  kРDGаa!: CH & .^v222CK} {D`ٲ2fd\?QQI+VD''70 :9+<9u@ drvkF(7Lr;P ';:bL^(Ç[ap!OP^^u[#Ҥ^WǑgr!##=|! ,$7!$B';?}UBt 29@dgPRR04@t @3::@dr4afK&YnD((wT Kt,rA”W&*CZX VWSdVpZ GD Wbb Q鐕UbnGt9GD!݈EA&nuu 22%խP{~թSYe[+7Ww Kr}*B\\\*;ѱ3Qbnׯ_ Ol~ի,dkk477"miMc`SX,Νߣm?)DYV֏c& PRS':uB(;GBBZBBڣGΝu]]i477ZB[Oi+fxs`YMMCTeeM׮sNt,98_ѱ8_ee'O>[ԫWg77-Q觋N^";o]qqe`/k֌5˕DqĻwy^^B-- +WF?}JЉ _vV)_tzuHſJ]s/ E5ΝwXן{j)H-GH)_ II^GrFij*><=::yK_gGj IDATDL53%:(Z!;sg.&Wߘ1$%eoEt,2 29d|Ž[4JGG%7c׷OϞڵcѣDXZtאɉdrH+bQSS##LW>bG;+S A$7o͟'IAz$- ଢ"%"bjD@C DVUNEt _ާϦgzy LgS0 _8_.o.))a,Yrϋ{.]:L)༼vu]fсژ1Jt 2s@ )<ҥ>$czd&c pɓKز_" Scgwモ dr@y)_ ig^ tr_A"fvׯCwdDd aii&#:!pr2WQ>{@&t6vMT!:"ӣɝ;AO? sD}V`Ht"ɩg" $L8<۷ "߿ϓDG]]i~?77ڪU:4B蠀)D"LAVDG!; 2:O[(6Mp#T6'o''s|im~?7YS2сǀ;v܂e29 #Ujjn=~\.nnqh/āSpwgBիs\\̘@+}ۣukh~\A&$tH~~…gRRׯqZT>|xzttʕ^Ύ 5AK};h Q_&,L :OE*.ҥQ::j7o.׷OϞڵcѣH4^hP>;; ^,Lt޼ ;A=3ICuys֭}櫢B%:( >|^WǑ=Lv]^^ dr@T|)?]߸qNDPVVܼyso9th,}BmL֣1a hMt, 29RLfwݻ|*t_ttU ₡~1gϞf Dgժ-hݻ<;;c2YGv00x2LHrׅ #ss>|.8S0+WF_2s&L&&W,ڻ7nÆkII55U Hos{6': Qь BA&bw}}|_X,6wt͛o矮9}zС݉9(Ȼ_.g=~c-6~{'wC'c 86ek^ㄅ}aF?UW!:F ^e99iifftUe߿H8H$Iژ1<۳Ǐ>n6qΝwyyeaa~~.DGDBCC9"bV]{sFF!}fsӋ&:F Zeezu&:23-%: ֮L.+++44ÁeA}V s0l#Ε!|}}}}}JMoCI$SrVpҤC$8޽qCtr,сNNdrҮ/^DEE +@,2ѩҪUSSRP(9LdaT!-PGm-{Hoqh׮[Mubwr1.CZ ELX@,RR--ՈDtsr~tBŋ@\.V^^UQQUVVU^?JP Qmt='Gr86  !$0 ,qpʷnݲe!1Ar8SSn0N4L&Yxz"(,,lԨQ"Y6m׿whaÆٝ8qb0}}}[[[Z KtPTT4p|}}$fg2){Kmm2&QH1_~ظ !tyd2\u릡L=Pll/+))QSSSQQPuuu!!!!!!uuu!tnݺo߾=22¢Ck׮ŏqㆽr.]"## 2**… }[(?W===6.oD:{lntttv؁o =$~# g--s~τ@RҼNi49993fhy^~Ro߾ſd2˗/ٳz߾}m`0-,,TTTׯ_`|d{CQ՚ThϝВ=ۯ]yfTWTT/1DŸn1̐={jhh~;ҿ~ӦMky=ϷP$&fiDt ⣮dB>>|ǧ"ƍ}f&H^^^/_,KQQQUU5yO(...((((( 355WTT8qb``ׯ_߽{f???7EMEnݺC޾};==ի366=4j)g333jժrPEEł ֯_ߣGPeee޽oߞr3gxyyYu@@@JJ˗srr;\%UHto~Sx;={{ !tҥ6Lj-<䰰W^={ӳ<Ϟ==qNի1iV۾R*1񋋋Q"|B'={X, î^jddTZZb6mdaar9$paw1554iygYWW7p@uuu|;N1cܹsL&G*.\R666111,͛U\+S='ϟ?tԩFFFK.滱~|[d`` b FPP-[F.kj$_#F߁6޸Z;;sblQ iii =zdffU/\?N=wP͛7$)>>!{6C7oo@.0{6\ۺu_|/_t 䊋+;uZz 066BcCD83N:NΝ;gmmOؿƍ***;vܶmx„ v~z=,,,N>a^аq |RAA~SRR?cǎ .-""033iӦ3ikp.l``b vFiBZZZmipTKj@̙xޞ;!;fccm۶ӧOkjjY?5gBCC aͦM\u%ЧO?j(.ےko*^;0<ݻ Ӧs9995xu0 Yt)~HMMVll,l;>X[3צ(Οne@ m'grӦM>}zAAaRRaG100ro޼ibb"7NR3gavȦv`0JJJ?v옂hpZ lٲEa ܹcllsά,| ?~|NNNjjj^V\啖s+++}jhh~>>A&| o49}]]w]'~5St \hh[{N63 ": )h;1grb(gwiܴ`r}||(ʔ)SX߳gl66mP(gϞ}@נiP;… VVV ΂z!atGğAaf%ݻW7 IDATSS3''k||U%grj^L&SMMŋ/MN ݇kk&7`-[n(iҩRb☻,SAt@҉ l8gϞ}/]Ë/666L&_r_~k׮MMM]j_ESu666  {TM  oYhٳy?cT,p|%yzcs%&y Ƈ%D}(rr~df,EHDdr݁oa6(;w_~޼y6ơ7iҤo߾}ҤIM}{m.iaءCF!qO4ҥKׯ_wrreW777o-!Q?)m.Ɓ Lj4-`6o<{{Yf! ]n]AA;wҺt2y䚚ٳgO6mĉ7o|YpppYxqFFFrrUL:zhEEQMmP'^jŮ]\{WԵ^)//ѣGcǎe4ΗWYYgΜ) 6oFIP<|i@k*UAY֞YaTv}||LLLZrlqqq"m 89i^̥Aa^EjNqD l UTTWXi~Gܹ^@@~ j 7$QM5%Aa#R6\.ӳk\c-.iT_aa!^ܹs#Mfwiee?k2Z?Nb[[8yI11LNjBIԙж {TzrRz'_%9'L.!!hIVVY,2vH$͛7/BBB BBB{|sí[^~?~s#""bccKKKL/`#>455͛'Ńr*<ГULkBzW!$w¡Tt޽" IbAj;3ƵxաCESw~ƍׯ_7u8ŒE$T%с$/0]@"=|REJt @*r&H86qڠA0H,ajj+^/-[/^H&ǏwPT__sϼWRRbXΝg͙3gРAd2'M6(7IJ,/%: d6.tqǏ_:G9rB Nfgw#_66F]V2)B">|Ht ڹBVkRdbSY43*mH$ qQ&,̻j5bvۉ! #uE_bTpFjo۶mܸqBiJde1^,~d7L]' {;lI)+ݼ9V{k%%(I e߾/'h d``plmDGgnnnnnNtⓛ[r|RffyCƏmn'3]2xKrt0gΉ#G81@Dɧ[RMMulm@h;@˫bcDG'|e`1rݿEӫاA3g=zCݻ".(<|"с},#::֭55u[5qĈ.[F"ے!~}2q۶ii;wNR7HܺdNt @DK^^tŊcT-SWVnM,X0h?&Э[o PdD?!dr&Lh#WWGQTll|RSb55YDҺȼM/y -m] -&&p#F9}za۔Ce\9@kW&׷o_~Ñ|E ѱDT@Xb2eLJQjNظRWFCf]\\|}}}V$QZ.7 1}{٬Y'FsдC YrVD^29ss +f͛w_ ֞wlŋGUd^ۻǼyzLthIBլRPG"-- .=W~%%9fWA*\vI+*Rbc R2PMMٳݦOpZFOٳ݆Qch250fL/SSŃ ͺv-ehZB!?.3f+ع@&$*)*R|}ܻڵ--UӮێ}\]MWWyyՙ3>>|]qhPq߲]ɩ+ cdzFДnjEt @F3o&ڵsՕز$BY|ē~ݻ7_͞jh؁tR4rs:tP(KNc=s{0ݹ˯:uҒy@IOz"7ܹyMBd2 $b]o<ŋu:}n yC[[a֌?z汧_pZ:A99S\]MraWW& `a1!6ADDyV+10]}=nbCuGߝDVV|׮l뚓Q(7ހ]JW)WK D}V30PعsIr{F!!6::JHGu #D&S'Ò-Hk!))EܻwVXXVk܍oS||,qdu_‚\]))IͿz̙yZYMca1hxs54i4=qq.))t@9~ܝee06xqͺuSA$$$HT*4[r{Xqzd 9NN&| p5_0B,xXvv|׬IloY=yyos)A^;rs߬_LʞaI$(|@= M;r$ժYfbHu #ĄiAĕ\mmigW#8XMJ$ 8yy֬ԩVVӧk[Y[OBd%``88jLN]wd9"rƛHxUrm+VА;&EE!"! LwqyuLի㵴||==DD0H̀1,Zd(.Ώ;1`ЊRHsq9\^^YWUr+VNI @|oIqq! AD6O{kb}rx{wg:ǩr왧#s/ᵭI.]*(tgqu+NSpZZNߎF `:;A%&EF>섄ƻCB.VT|C:X|L=suU>?qL >gǏnOϳ{Ajjդ`+8C`x8m[࡙zݳ8 jnnÉ+>䊋<LnW;#"TUkO?|wsF:8#I 5>ޗwWWHKKa^O.pቝycX-XwMgffBPЅu&&\>H6[x'Iv]y`kWOJJkJϜ)?1}E hpI`bq!bT]Kq99ņu޼Yr*”gjHgX[[')xvq2ꘘAAƎ)**t:1p<mA2 AAgW;9~=DZ7LK+\ JѣOw_ _`w|oo'TnP-S誫?xsm2-:`# 'KBB8%e?>> iiABB //p;́.4 B:HȈ0G7Ax߸q{:=ճ/]*25rFs *VXXrq]%YXoPqzA>&G,אT3?|tp7?Ǝ?q6 )}AAA"4nW11--#OE/1,By hD_w3yዐ3 SE:G8RiWl)P`[ L_|ړ'qq&MR[e`DJZZ _ Wa8 ^l,'V(+K^=855{tpħyşC$k\AbńYZ5ׂ^a,"Jv5<ٻw ٯvX<8%XX_3''ϟ㊮:H"\͐}}aWC1Hge Z\\!@=*c%O 98(@N*@/jr7]Vi%bm=iƌ2pC ]PUYSS8Ph/\9d< n,qc;@%<%%P?]VZe޼qݺ ! }kT*s֯O/zo:~S_B=ꦢ"wtݹSL4C:w@"QϫHGF cdeU!..i>ͲgXqzTͮ.Radj]]ҥ'\ 楣{֮G>2zZ; u | r~Ņ.<t ̟9c@R]ݜV9#++r4Z&22իKP~m[իڊHd m4ٳiS->>˖M:yo\1cN8;eʘ5k"{aaEB/1X%wjijjѹsǏWB*SʊJcM-##dj)*ao\q}vmHP;OV9:/[fPQb<^sL __uuC0IBc55+If2c>|hܺ5}:E  Drr*be8: F ,9c cby{uwqQ(4a z\ll[RRt!??=qrwAs ^55/2;'xInRX&?RQ=Tɽ{H==ȷo&%=tƕ@%7*LB]]H9zzw^ uѴɔFHKKC L̀B tX,&%((U[rMuQPJm[ƒ%FKLeiGRV&##v횣ccX pZZfz:ldҥK>} APξ?H϶;V~3g ?dEg>0i|@k+ovvˉ NYY TrCQPP``h۶h:Zo~!>> 5`#~&EEEUTTTTT!R m>s6mJGc" \iǻw;**qQVniPf}f~: ҥK&LhfffqC\qԩSTUU{˔qqqQQΜ9 drXXRXXL B%$$+**sA"Q;MX(. 2VZ7eebccc\\ *++/ BBBX,6%%f|ݡC/_^WWWVVfll}v!rww'qqqXZZZ:::Ϝ9/((ѷ/i4vll, =Bϝ;APkkÇd2 )))`<<<>\VVo޽{_Ç}vƌ[nүsckk[QQQTTC0A!++o~M JOOn(fի/n~)/Y kk%%=aV@v+UMHb7n[MwQjjnz Ai044600HLLCRRЕHCGGJ}!0 /_ :==Fw122aRI$R+++q89rhT*o_0  0K޾}K+ 6HPTTTݻE<8t#}F߽{G+Wtttz[8q+W}}tsSV'\zz:=Ol_=xa*7Ukh/j)֯O62dJkG$25ܨwjij~:G߁]|UFF& |ڵ[z`h8yABBBvvv&&&;::dP}jkkUUUk3mlljjjKJJBDgdee 444Ν[XX( Я4 BLLL {UMMoh4zٲeW\iii{HkjjRǏQGG+勮.g}}}'fF{b?ynX Aڿ9 ڽ XI$JrUf 5` Wr4?s&Vr֡[߼y{[vuu +--=u|;;@a Feffp8???׷/*~رٲe }~~ A...W^077_J:eee4]]]MϟՇz~}9#gUTT병<znX c0hEE^; aRR:gdܽ~M]Zwy{fJ0` WrIIOJKksLԤH`7aÆK.ݽ{7'' __߰o߾o߾}FD"D?!joo^tlٲ˗/eeevvv111FPYYYD"a011}677{xxHʕ++++؏‚B_^^^#l+`0+VԼ{nΝ}ʆݻwenƍUUU%%%;vyb~fM v#R8uuYElmsr2˝Zvs%K0+0s/66M}my{%!F2OɓSL!H0 _zUUUÑHK[[[BB,55r ǎ3f̩Seee-ZK=dv#+++// 0iv>~x!!!==lԷ@[[۾#F?~|xxa+p8///yyyUU͛7www+>===[nUSSvww}{7Onō;VAAaÆ <65XCx."_W/jrs7#i\]]!e;UUU}qڋ/"dr2fkB_~cϨ;tZyɓ5O<=vw]:((HV̼Eիw/2 MM:)v驮NHHXf Y-9}̙mˠRy >]kɊ`0Lh4x׮vv&ԔomiӦΛ7,C0T`` S)& _mB[ǿӧhi v8 JN~{1A)AP}}>X{sp\0;`N%%3g0bbȵttw`&LPYvyK+(HQmٯ"#]:1gL@9|8BGG) rcQ(ԗ/:`$X<Acƀ1Amd+%%z@rCyyeLX ƜJ.* 05n$"QTS@Cەa^UHsR l&Trm?޺u[^ uu`L$axee)Ps t\܏'0 yz!0 JJ^^FW;VTr Ń#gW_\y9H$J||,))Q_55\UBBL[<45rsyXLS $׮=WRa$94GVvzvd20l ܾp!`;v=N?# 0On֯BGGoOgex%WXXIUx"&j**BB`K9nD&Scb͛w"H4IƍM "#󜜢JpzA`Ln$$CBl54ճg_ B$\dd޼yzff㙘 44dyyNc[cNa0Cda08GPꠒ޳O'Μ9t"`?|64ԎiBMM )jo tvQzp{@\4i'jNΦ[_4҉N$DD0H& z&}O6X# FϭLL(::ʟ?kaׯ>t%)ɟ3צ _ouV( 66GA&Sp.,,w`dbb?wU͛`*!F*W? ?^ yÏ]۶exz56uĉ*99[~|ݱoyjB`6X'ֶܼYbe#\TԝS5tt::MMymn~ΝxXoyy 0YYŋ9`@`[`LWUAɓƌ[P0"\UV6ݾ]f HGG&hj"x{]dd22ڵ$!Xyy҉΂r`0 .]*.+|$8؊f~zC--$de++T9sZ*+8&#$ Zf{aҢ?y.X uwpN0Oaᙲb˗OC:ԯUrmm]W\f=0ڱfM)S:s&/웣~׮%Grtt"yX, 0Oa zʙeeX9C *  ]\A(\9ǽ{ﭭyS*..t"APsn %)G6|>[\]2A*U~K&Sxz!*}8гm[9SS;wUrs7[7ϞlMM?N KKIIq=))ό&&>+. \^^Ys3ajs֥zz߾;{?w;w''C: a0PkBjk[E: ,&ɍƹs!t80RPɥ<CS '0, "kULMt"611{V[BCӻHH' l <=qqMNHxt"Vr_>}Z{"NUUFFFÇF[#/8sfUl8҉JBB o,8 67`[ш{4?? VE #RR))IYZ4 o8Q'Pɱ qq/>!%%z#!nᚚr'ͧ2~2.}&ٺ)# FdDB|dʙ`đWcr{׹ްڵ H'BdJJ]K Lmn&_H&SBVUf)\aDݻ߿`uޠS#=ΛwʕP;eGIvvH}=ݻNVCFH=##KfP_`0}ee43#FHOO@ ;9Kn^LWUռx񼼷II{:a0hq!!{|_ϗ/H'l ̀=òe&-oԳ1a*˜y&' 7u,Á3&30&/o5 ޼L.Xp p$*"ro  itKv_5L%w;KK}QQ0 {0U zzaa6]rwqobkUpQ60&KunSsr^]N6T%G fܝ;lHs|ƌqv 9L=0 ᘘ{>>YY#UTo2msLL=b ZQq%D򚥬,=[[OuS`.,? 1hd=H>ĀCnhO ҉xs8aŞ2҉_S_SW@!;v[g97X 6h%W^c\jAS7oejk[y*55hz+  ~UR;KC? `ȑӧ{xh@ٳu%%E{蓜;ee)uuRP bntce5)/o3L;q%q\ZZo?F2C=[u`4>4gD0\?cKK ;'ƭZuR/;;CtV<q -H'\9WYt>h`/ \9s&9 :ulii-)DY>Сw/"K\\Y͛8eKm0k:))Ͼo ΞWVQֲcc͖zaCcjj9~yؽZc[jj2Iko?h@P7uuqq>22bHMcr!GG[ڜTğ<20PgE6+/j$Ǝ鏊 P ˗V/+W'MIe Y%RJ ;{E''?^ DS̰0 B#CF?=N;)C5KL8˗Ӧi7 o21%%fdkBxCɄB`> ii)뫲?(+K]a܉nn33K╕AvC-ь%zjj310ׯm߾:u,o`~&yx]FBB8L4a  m"HXX)M.w Kpܰps[IK3>s$5  `8ܻwX eh8ix85U_T*mǎ{dw=yqu@_B9:NE$sPPGW=` baF0ĉ*eeJ2_55xcqcȩ!zz>>%qq>~~sd4-ɓ545yg君ی?XqǏ.NSӏ'7ۊCp 4@%cO4?I:Emf ~C:L:f(WFb ׯ44-njtjhرfop̻w `vit1/jTw]Bۙ˗OtVqvws#Ú0A%7wAKD " 0On0BBoK&Oho恵k}SD+9"R[h cX\F:nmdhK& 23QTD0(+Kge+)I9:|8ALdd3s[*Դ05`\Mw H4q^`mj"jozuĉ*Ha-99qsseӐR22bk ԝNőQ(/Z>}vZm JJJD^^)}ӿၕPL$ 6M?=㜜NRk6hi) /0Ah…Ha-11$++}/s7o!a8 pT"#oNڊ`L,Tr`*s͘13TU5;:r%!;19KK}))Z400ҥ",,wXYY}~]4z)rL7knss{EEAا餆lfzyyF}i/4ZAu,n8w!q x0N2zsVY/穫k Lfh!--qO+/opu=m`/&6u-[?~mCXXSZa SL߷P(/߽;H3rH9,7{.)8~X+4v|CF;ѿm,D04Z`q޿bUΟ Μ9s˖-^vH`2WWơ`͓޾=Ǐ{g8uupuCnΜ9ܜ5J;RWr "#oR(4fLuu=f;3Ņ4CQaa0 tM:<~眜h\QQ%9W8Bo[ƥ`Kό<{max<`>z4Dwli`E.8Rix؄ ***ҏWE: K2h, aC 8 f}(pu7޼}{+ڗ`--,j19 PɱȬY:>2%K|ӟoۖΩd,/--݌B;x𦃃ΒAPrr`L(ں C( PRRCF:}q@66 YY/S(>wEX$WJʳE,EZZǏnv?\Wa@$R>#8o:C=GA(]eXZ_xNypp2LE:INFXXD nJ`/hBMMFOO#A8dddQ׮]stt}luu> }qYtܿF v!fPTy͚DP1ګ#6AH^Fe pTrW0R{m-\UvzD ְׯx.]4a„N/))iffVPP@87nL:ULLLUUkii}̙3!RQ42F&!BP LNN֖޵kQ999"""ƍKNNWTL鮟۷o8p%'*))odgdLM]T\y͚Dp)djs3HwH00; ƍת(* D8q{B#JMw#?O)aj*ooo߾)++0tʕ_jhh@TYYII@b)))5770?޼K$GpMwUMo!y?7kj;_k//>JUu)*9lyOXS0řecssՆAbbbD:::TÇ{ ˗pBHΝ;FFF0 CTZZ 0Dsee%`0G4J c~AWXX 3̦1Ā=FOLzOTuwˆ6gIIuۭFFF& |ڵ[z`hh8t BBBvvv&&&;::dP3jkkUUUQ( .)) A3AEEEs-,,I_u3555[W3(X7ŋk^YGʼn ?KK%}" rH)*F:/kips;/] b֡[߼y{[vuu +--=u|;aιWPPEEEæh8Í/ƺـpUTTKndiӴSS=n]2gaX,L hϞ3YYMB:8o@%nR&q *~ h4__ 6\tݻ999egg-??C7B$I$Pww AP{{{vvҥKGǿ{/[KYY]LL̰Q(mVV@ H FLLlFAqqq?~>7n*))ٱc7i/>xqݺ c X AP^/jwp@:0*a0 lm nzsBʕD"%+k{?ueeeO>nyf]]ݿ+22rFddd=ᡧnee~277WUU:u)S:4l`puucǎbJwYCzѢEvvv7/|\1l Ld of?hT>C(+Eg?~t6mO]]+ኇa[7531cC?EEut6]g̘ɻH@RRMКlx`۷ߩnK0y|^[ y`Rt3fKH}|4{FGyLx-o٬> `U0&0P!ր+9*ssZZرH$%%8aa1!!ݻ5d2\9󠳓bt Q2.4s3Am|JJUF:0{!C)))9sf$7"e1 Tr@ll ʐ2'NݏtG: /\]/ڽ;;#,.K]o/d۠yr .MUU,jά]XatX.//zIrRpvtis cr3gP~>g]`}rԠAA;YX\}砰 n em^۝;\~ux`CAv+s:KFDسgϞ^T* QTf׿CHTF tio>wro#an+ {\73occtQ_kh\RRS_C:APC;nƌqGNVpqq133cO_dt]TIJe,fz8\[U%SRX777SSv\pGN/o˒%F %**0?)/tmHb)SƜ8邔gHgX,^YY w@H@\,A_ cwkJ齺{hh,:ᄇGЍRSgA:3a0hOOgv۷ΝY޷Ə]Hb%K6lz ,6{kffɮ]8}k0aCqUUsyy"%{#f {+VqcSzZcHbz=iӋOk߾=HbEYs,bqcQ%gO)c.tU.$*9kji)\nݚq/,aŅss7v חgvnh{==ds1 :~][[aժslR|-p^Ǐ+c ۶F̓%P!B9;OzA&Siz_EG{qg>۟ps;#//%=}ԩHb7qq뭞>6ر۳gON~KkDD0 .0_ϧihI%G&S;q8,Ddyb3Pqwx|]mmˮ]Wϝ;==ǏV[΂@yr񅍍mξ#gD c "yJ;J#ʘ餥/2;356mۖacs'%u חԾ}˞>02;oog056ms^A: 2GØ\[[WTԝ9QQz%GA:ps3w=8tONfYLG׾}7f_Pw!RW$"qr:֭tD: X< IÊ׮t0f8ŢEbbWdi//_>سq8Ev d25%噹Ԣ4/_cdyX,n܃۶e|ݛϡP'P6] sX,NAA㨬lxh{IIuȵkf۽׬[ ’[pNؑ#+)5kѣ\)##v nX,_,wؽڄ *..ӑ*9bŌOySϢoll;~܍2w'O"m[3@@2AAN.8p:b'P{|YtmPP?w*11|R+>6 "A]kwu_h{{Ovvȑ#+$..jI:k^pvP =[7(B[on1 Jw…-,& `aaAa,fYY/ &oO3MMyy1ea83d֬ wZrf-Cee'Vm&)66CB.v  NRi۷_F: .\xsΝHJT1Trᬬ6{8UOn|iΜs&C1ׯ?' qqyy99srJuwpN'G t=?G[d!,1 |@r))QGG'L\{{dd^`<]]ef"B]W쎑HMQQrrHe(eg;,;c_5#!yrǏ߆ hFɍ8yeeӳgc?~f310I5"hRQTJWRQi_t)*MMQ(EP)V2ݘsĘy>q:yz8޹=~eN܂ QQ!ooapg֯n[ػwMpF[]__<^n-^#,imK3FhxtC;8a9 7 I..6mjod,QAQQ+23K`ϟ t5.3$ Q<~pn{_[[n!b 2G.5$}N?p࡙8"4Kcŵ7n=tq~K 3fyjǪUS̙O~~܊BoXĺ$qW_b& =Ï̝k ))n;33K*ST;^^S_nn "Av;{ݻ57-";:XQ`dj<K%Ǐ Lbc(*ˋP(ԣG/X0Gh3f={c-$67n Ztnp+QQ@>­[ ֶ7-Oe%ǧ6>z /TW7pPG(/sv;p<4j܊èlMJnbz=+!,,.wcgl)//l;KOQQ;s%kHN~rEEIkc4KǏa0(ANN<$ʕ_K IDATTMz,22F߹v޵B8B<<ܗ{zN[NX4]e`/kL͛o,\{N58eH+.qɓc*0F'&.Zdo_܂%%p+11c =yn-DO.5[||΁A~GXtf`/zz*'j=4 իIJrC y}7oڂvyoihh1ĕ+o9ؿLmgwn-dܛ1ch`U_z/̙(s T NZPE뫼x3q"(PlƍS~tS,YrnEpzKp"NDDh0M=t)s!`ɱ ++mm_wSTTuV8τ&̽pa`0(oo7Mv,&& nE=![Z9pkD"i0%6=[fڈ`*nG jԻw3++|% yxsU3ΜyDj~d+Hg| bVV-}M  +\=|І  p8Nvo e%88IK.]Je+WޮZ5MDDN\m֖Q { c][U:mڱgV?P(d`?M{87􀀹zbȚqMB@@ff<;Ϟj.Yr.890mmywwGH$))I!XG[[^pi@`ɱqqaO6JI),(}ϟ Wܹnۙ?oƊẕ<KYpsw,~s5X'腫g}ȑ(U(As K\dd*/ŔΛB&޿AWW[!3g=[WT~jxkZ%$Dm}BJQ@N}(/MM?Xh NXXr/r_wwozr99嶶dd7a;`z:;iFHT?ޢ!xppu5"v(;w-a%0V*, I:,=ci(vvWys F A;e6,zapW}c{=Q<B>/ x;;z~Rf׮9Æ_p8`ɱ 11M3/\H)) Lny3s2RO޾rnW cx@0iHIѨ 1\  smxҫW99{ &&#lltwYC@}rt:Θ1JM[ `ZkKNps&sSbbɄ7[xQrjtd2,h4I?FI|Ȝ9n"j طo^M A|H H@-7Ӌm@KN@۶;w/KR]\x34!!ŊCC݀W3P]6 gb2F=ъ[deIJ%Wz䳟?y5u(RAAn74:|X%jWYXrj[\nEo^^Qg>?^M^^A9;Uʊߺz{Dllw߰ 9qB`$/O#_p  Oe%'3pøWffef&}@ ,ƥP_B:xӦv""B;w^.'gHrشxZ' ,9VF#!'Jn`AAy P7ҳ_@Doup˗߬^λ* G 0V"N&ht? U$bb "YP9wBE ~:9;.3zANNpk cbYl@;/3$>>7;(xm|D<|^|SIM 9>> 缼C͞ˍ55%KΩ\LH?[D P:;! .\p~:i{6,^ś&zz*9?kX>JMO(­ 0m4 Hbbފ l6>mnnQ(KΡNpppy`Efmm u,*iiin6׷̛w7|}gWT]m3ɭdr`8@LLh˖p T* X  Ech͛:;O00U reԯ_la--[8%0`CUu/>;wnȍkx0NEEz҉'N9_]]'2hdjwSt:ǏWx \5@{w= 1o y yk$(:;i~~w&Oic KNx1z\3:8tȱS?J/GBBڵ#G,z^ZZli/kka Db >!229- x0׷-D_Qܣ\?229"uH`;p8lL*CCUgp|[jЙ3/kSP]p Fzd0EɱSG8Qqk,fËi;w;lŢ<'LUսDE6ouRjionx{22O[@ AbbBd2 `  -g-_>M»wĤ`m,X0~:+w>(++[lNwuu*р>q !!""bnnǚ׬""b@)){th<^DWYXrF|Ŧ}K8ztQVF#/\Xw` ##sс^3gBʱn,q ײZZZ~ۅ}Οw0A%<;{͙z[3CkkG]]3?yn{II]e` /^䗗-]:s_3c6]-*u*n `%%%AеkFLΜ9#..nff@ >z@TTTAA૭155 H^^8˗/UUUSSS{@\xQGGGVVѣW\QWWؽ{7 m6 ''m6 bff AP]] JJIICT__!##C ce:㣯_[[e #$$$!!7IzƯ"66VGGGZZ:00΀UUUYY٥Km}$GHXU\@lnEAff `"A}\yBn-FBBqq6|ɢEg, g%K-,Q9ԩ窪o|cGA7nKWWWsݽ{2>>^YYo߾1,|A&/_N$cbb 'Nx+WzىUUU^Aŋdrdd$ANNNd2ܹscǎ9::رct:=..> 777t++ܱcݻFF2jn*;;bڵ@J~} M,X@"""" njӧ &m~<=oZ[;ό۷6ꃹsC\]qoe憆V*fgw6JGxyEyyEbpyU>z  ~%!!굵w:3_61cɑH$eee]]ݽ{23&*}[r?njjR_fLYr}\APVVNq¨Q &$$uttlݺHǏ0EPyyyK޽] 㵯/A_~[ SRKo'0zcӤ}]i]{o8bsC f^aXNe\ZDG5n}qB `q{vvV!x`pB0KKfN;{6B5k̛glEq III//5k0C__]~ Z[[EEE1655Q()F C`zfPRR(#1cFqqXFFFrrArrrRR-A555T*UC1D"SN=|naGUV-_I=no't oTKKZGGgL B/9;!sc KK}}ӧXIr55'Y`@BBT<۷3.5G"iх֭{(ȣb3gL>ۛqDII)''Whmmurrڶm[VVVXXӧOv .Bf2H$һwHM\\\aaeBBBrr2Ò#(Ǐ+aׯ'%%} )_=$?%%%هbRWcbP(%\ʧٰa'7 -]w%$D6l ABBT< ` 7ofP(EL@9WVOt֭׫., | 6\vŋ> h۶m~;^CHH5 Ƹsp!3vYZZkmm AMXX؄ 0UTTÇAqvv޸qcqqq^^ޮ]\\\\VLLL[[{ǎWnkkx|cccSSS<_t@sYY746Evp|}k뱣F[3>(**x`V'ǟLvl۶~zlE-O8ZEekJJ!'Lɝ>}ZOON߻wOAAc8իPyrt:ɓ***aaa/b$13OG=.cr/L&/[LJJjذa^^^z4}A:,$$۵Q]]۰al7U#G~ =t*㋋SR;e^oGQQQBBb$Syr).5n.7 +~ &10O[E/Op`ݺ+p '=6-DUAasA G+/:RPPCt*4pÒ?jh_Cqjjaqx櫜]vttt*)my(^o}m p `q "`*:a/''aC J cժ(  뫆e?+P,+skEF.@%x,9>!!RssrOJ _MOP=@>}tpIp!+;8)(H%rvmi4q/6[ `!!! AH(`1_s[iiٳi7F)5gϞ{4֭/.1Ozqf`ii1A"5-DB^:AԲe#Ozj6kXMf[  OH*h * Kn`ǒcXfڂFǏ;=tF: ӦM0aѣ7lp WhY x56^}3_NN&.$sjWm89O AT*q ii߿V!`ǒc>>mmmc_#Xii@LMM!g@PmF mFPTG)..nnn^>\SSSJJȑ#]ikkmܸ׃e &QQ+l~Sk\9\N-$T*|r=lomA4q ))1'7PS2TKfڶmT͌61Bm['O+WWWwcA _:==yɒ%bp۷o\ݻwZZZՌaٳGNNĉᦦ?~\re>yǏ ^^^aaa=suu6lCUdƍS u[⢶TU6s${{}Wc2BK.3$&&-4mذ(AZZ8H6 |I1#|Zذ: IDAT\Lnqܹ!lnČRWWAPȩtttP::cA^T*[qFY.xӧ_(+o}"#{WÇb$Ivʔ)G]\-_AKp3sCp0z<9؉MgtfGS4_=KJFF.#@(((~0##ظJjhh0kjjg[A{wII@ 3f(...//GGWe+5KU]_o5wڵW _m„ϟRC$0,CNJ v[B!@t{HK@tu;BO=AvvY^^|Ru9ZG+/t)5"O0boo&P(BqHII񺳳K0z ##5D"{NMM-''^/5pATXX0vНEZZ+.qsǹ $%%)ػ~\NUuJ *( $%EXtMM\jƾ"N3v…;gݻ};{ z۷osssr!0ƍv")) A˗drHHH75[os\kkիWo۶-..ӧ{amӦM߿suu ;X,…--VE`g///m@$^J}}ot) (qiiF,9!'l47?xm">>z*̕+Wo...ӧO޹sg= 9Rh4r24u 懶ɹAAHF2+0ӁrGޜ?vmƦ w;tvR'O>nfNh6Č#/W<"= )8;og(*n: -ϝ{Ubaq8()o:M'NŅZ..jjΏ`P228g糠6WZA@;w+.YaQZ;%SFmmSkk۷?|YՇЅ`ixwr#YҥTeӦJ\\8&feg'uٲ`f_ ''A@`0g[m:ZZ77DApYr$Rq&&l} V1p̀F$%"]] Brv6agC{{gxxe€PW.-uu=9 CAA2<=>>…dvqw7OHȯ田^!P($WwwCP۷;FJJT< |g'',j2/^׷88͛+W8HSS%%Kkj`Pancի8(OD`P\ݥWܽy<^ ""NKYՁӒ1BNHK,j2neXXTTd)Frr2f!ׅܭ[g0(ٸqW!rv6IP؇H$RԾ}M{{Y~wAAXC;:@#n!-%F#54d~H͉,"疖ֲBSS%%\\1T Ţ믰ݼ9s9s1FvvYVVS9%IKpk--[TTT8@hy9}H؏ɬ!q33 ­(.\}O qqax4w"##Ap1O/ ;koy3@8:o{pӼy[\sv>[ 7v,ΞMSW[H0/|ƌQܺIG]k)`興eMhmx(ˆD`}@tttz{_73tr2͎Q|rCFAPm-Hc^,9&L} M *~ذ:6!I:&K-[UT'ڵp ŐZwEF&>|QQ,ʊϘ1ƍt"ddp""B_WNxZYYB cO{@ݒ35,x@||*+dgV/YbAUbd4sY]aC3/--uƍS[S:y?kָÇ zJ&­_3G[^gaJIZZQII-g%+wϯ8w%%f "'=X01_}r99e9~ܹeժh !!/rӧ[zzN~~Ι&Y*p_z1!;~{hmkvt}]WWy2 n4XnnU."++><⯖hPТs٬V)ӧyspPˈ99mLIigz}sDF&<~;7.4NIyү_--#?~ H$iݻEL<ɭL!H ۖٳAAP~@L DW8<}&h<{)CWM0Ҿ74X[5hhef\\YYرsr:&)aar3G?1ҥs$$íʊ/uݻ_eooŢ8aq'O>۶zHy2ʰab Oyz 9sLRgPKzuD !^1ɳgyG+>8ẕnyy/^\./߷/NWwK'pnskZb0(p $1cƘ- {n&Cdia}-İz IH IҶlj4.m1`*W';;g5˒ؖgjT*͛oSby:Y,=cƘ}OHK+ ~a0hфOO*N\F*눉"##N:Kz3++K(>}gje-Sn++gwK 11y.=pℳЁƏ?kVPPO|ii鈎~9YTGm!;KHKUHH!Wĉ۶Y- WD?eqq`yꋂ+$$+)IAU^82rY~WvYAzz{6n}0S!:M{;n!004G~ikOBv6Sq|\\ m;f .! j9Џ%lB&xQ5CWXZ갳BbgKKnŢ'My=Onuw7zzz{<=/ݸoc zBҥCp͵6mʤٺp_ܗ{հ|PDDZZ%Ex!~ yKKkq|-;|,@"5斳+g{vڱc-Cýӧ?xaj7zne9!5 @?\]pSfWV?^m@EBP$sÒ&86ڠ^ uv@ɉ ,981O99eT*ؘɅH$\EEIwwU?~}i:ߜFsv>27gbh4zXX…Ɗ<۔:#憇'{WFO|bDUT8]mtuX%//@)2 $OIlltEEs[2Iyy WxꋡZ˜IF=}5;{ѣ $%EO~im}젯͇d&甔ԮZ5"Cdג%:[\c>;׀J=yz$| ⪜DT AhDU<䘤70f786Ujh8 NGNN|Bs޽~\\5Ǎx&8yFF17¯aa66ZZ<8 #wnhh=|83%%EMu IKs2#Iع  䘇G%KL?| rr TY^t 45رÖ ^"6wnnn_Uhhh5'|:+ _!ǨW]`RrHlheu]]+&qpYU.C kja7`ʒ30P52Rxm5C"TSCf'm7NѩSK>|HK0WJJW3g5jgWRmΜy9y geVȯ n3g>Qy9 Wo5!!K@\OXr\DN_SC>|oo/)Ϟ啔rUP +Bc{Wdb2h\]BB\23^3EOot֭̓.KM~%4Jȯ#Gh}}cm *CB^٪rjM  AjWlhݎ8րԥK\U3)֖g8Yff4@ G+zyM|yχ>ݺ|EuuZk?\gμW`Sg t~} F>|baP6-[⪜GHAPy#A.0;B?%ܦZG ?~i05\PH]]]]u(}OK+ڳ^[EQQLLTcĈ8-~>}yLLF٤[?_A-m̜9v~~'NԐiffqq:JUUs'wӲ >H7[ay "t..t:t{ RWa""B yk` c5o^WXxӭ˖YɭYX۳jUtdd2#̙3Ӗ4#t +g!ULP9bef%UScH$FWƀUf%Nj,^xq)큁O֭ ]]Ot1F~"}M岷7()8ʼn:د]miظ񪅅)KA܆Q ``YY׷ƦqI͠7B$9ƏW_*&ƫp|--:1'GڹpaO?s AG~͘1FfUd#I JVϦ½{׷:D2? d`ws3;}Ek+f?~Ar)YY Hh4R]]&/bϟ:rdl||[ĨQ;n(bLx_/ jgq@$D"IIIʹׯƾ;rd#=%u< VlBc䶜ŻwmoW51Q76VSbV0F~yxX\>,,7sl2ϻfɉܰ32R{{3g^~X|H"UyF`*I hd_?桡/DDiS\jZw#h.X11xI#'M APg'"=8#8<աC0g- z#:u*aҤ#z޳y}}o>}kرJrf3oɱx,`* zr%+kZtDEḚAOUU=;03@wbbZ[)}(|Ov8llQfcw , /qSYY]h˿cgA6l |·sIJC Pt09%^X //>5D]]3˅55䒒ZS`@P#"^ Ѕ݃ma]ŅAX$0F~|Yps[`ccfH{{[=oc۫^ԩ癙%F++Y̫nص哦MaJ!. -}tp@ Z~:;'uu,۾a0̚ʕle O4ƍ5_yp֭Ņ\y|v(?{<}FN)|//)){{_6jC IDAT<MtuYY- XJ*CW?D;7 H-RR,&Qedr9Bkkǭ[6IFzZ552rYv>wOK{ #b^_H$"0)7{ɜ99XDA]RxKTry<-a=wyo߸14UJE܇%&&i̐mӦ+&yzN𡤰&<ܝ{;sϙAciVVivvYTԛgh4r(##5}}UCr, ~fʹGml1DvVĉX: 9P߿\vU MhdKKٳIғ&Q$/%''m}y {.X[TUx\XhhhEbbC7ρgᓒ%F#[[]~Sܰ8fk -Xfږ-3y0e55T32ϜyQ[ۄF#GUf bÎF~-_>֭?imltϟ]XX71dr+|\jjK!!K@\44" O_8SD=zԁ%!(BY=CΦHʕSv$-)))%>{؆FVSSS9R~5ert2j3 Ty; t;u^A4b;|̛7ߞ?{򳱱$BLc\drۖ-g87"NQq-c,NjvyypI6̒ .30>i4:cǏecǭ'O>%'Ν͜9TXXN`PT))QFvv J^?|Fff׷AA;m=uu=UڵQB'F(N9R>#Bv]HPIob KDogw^Vt'0।|&s=LT*Ja0 @_O8٢bd?;|RLJ [M8;TW7 &,"'' -uu`0bb޶wv2 # db2ƍ5?BC=<.zT#nZPn}hmm!{P7t\`0(F#A/^PH%)˔)v𘲲;{l`zP:MLF^a#~~v))6mzz0X,?;NMff Jx8HuuPH$b'LaFvW5JA |mj귐%IM-ܹvIof&Îih4j2 /EAߎ]3?ځ%=ttM\I#4? aanAg&_oiiQ'=0Off ǽ}nnus=MR<K h:4pK^]˫~}|I <&قȹÇC5NLF)Xѣ3 ۳t`[R#;tiL.+d֋GDO>V:sٷo_qqq;Plb ss+%O4;æ#55/})ܹ~qOb%&>|(//lUp?LZ.A@%q{oSSMG, vF`u~,uRt)6ii+J1~vNd5ljwH?GJ!##o}Z[VX[[O<Bt|ez|55\ 6JKKz#ԉ $?20ؠA]l Iڡ#okMV 69}΍ro , VNE$BBB|8a <|ܹ籢`eKU`ŊgG4;R~׬ ;nnV0mP޿/pw`NB ǎJ-RSS\]]aܬI ӓl`*yZZ J CT_g_f,~4(/JM-2 ۲\޽Ӧg0Q7q @`0jZZꦦ zJzd`P'Nrp0k|~ɃC99fgW CґmŃRR -:q1<\'!' iiũii1155X,L6uul JTEEyڵMӾyF`ҊБ9Gf8K)$'@q蠚4H ȲeCĻ X,A7l )7orP`0+W_A |`0 9/ii! ee5mܘRpYC`dӱc=\(#ckJʦ3gQ_;uErrAS5@T]]ÆiYx8=;6>_Z8mE{bfwDd<_ Mz0x=ݻ͛o˺/L6˫lcpjjHCDHH:[h舨yoބ6H AATڸq?[RR.WT;ibē@ JN.綊9 ѣA}]F$/ DD"C$w& -.nm~yA)(/g~T"bPzzpitjy:9g'2ٴK׶%,-DW(,,ܸqcdddPPЭ[l#NvvT™3g0#J\>rGeee9:vኊ :..| [߿ɓk}}Ǻ֭\NdWVlFcl@$B޿ϟ?o j(Ƒ&c>_S0<^at{I烖~;ux0LVOJ'mmuEGG:]IA:QM9eEǢxp8$jհaooڿvp0UQu$n7n\ii]PPp?~twwGS\hNX,A.99 tvpb1Z666ַ VV֡ B;|8m:FE]>kWb.C$ꚙmNA=x:pk DGGyo߾rWI`]Xl˗Ǐ%Xjxv6_>x913#jVƩEFCT %%%xȐ!b%w*.:B u"D(eggҵ)l`F&PQjt٤^F^ێGllzјod<9[}5o߾W^UHBܣ66ƳgGXT`0[[܊VVܝ;w,--.]P(uuu>zj"hffzj>`>}jccqFSSә3g|MhݻnnnϟWVVhii@"|޽{;v_.]رd2Y__o.}0XlXX@(޿PSS3{l++0(WVVJɓ^*vڤI_j\ZgϞs~57f)))u(wwQBB{V|˗mڷŋ9;THA:7oC32ȗjw'rZI嗳n}sɓ'Onu3gΚ5H$}mܹsĉ SSS{vڬ,ȑ#={iӦnݺy{{58~xYYYDDgٻw{ddAB%-++SWW...pN#:u*:}4 00b8qPYY)5?cԨQܾ}@ Awijj!2}䤦nڴI2>D"X5:4/_HAjjjQ%5Kˁ=xؘ#r…nݺf?~ʧO>}ǁ@څϟh4Y2`+E*΅tW4y݂QBa+_<;ͮ^M m9fVVVnnn6m7!~t*55={TWWDZP'NB)9_.g6- _x!DdAx<^M{.[jԪwĺƍ׬Y_7)Qeee-^xݺu\paСvQz.&H$ӧO رcG7TrܫWY+>~,i/DT%'U1..摑_ ,/BޢT*d.=._~%==}ѢE|sss `գPPP5CK.Ǐon/CCϟ'$$XYYcXl>ohh(5H_uuu*:bĈ^z={Vr===Zᡣ7vXϟ5 @фBeʤh$(III ضmSlݺD"QtttUUܹsnjSUU%uG1 ~W^|ѶcXl@@۷TjϞ= ɓ8TD!''R2w?~ϟ?o_[['OsZ[-Ж&O|ͫWʪWI@I}sAdƌʛ¹%=&n߾YWWf͚=zzyym߾] niי Ζ[wHQQ?|3Q%ۻ͚{`0M-F;M(FƎزe܉NRT ɉH hYN޾=]E"QppҥK/]s]}„ ֭+((HMM1bđ#G$ ٴ%KB` vuԴ~~h\.SWWohhظq#-)t=6xgԦLlٲO>Kqvv^v… 9Sp'N\`^/T@ ?rq_[tȐE`=/[ b2!!!7n޽;wo߾ݱcGrrڵk/\0l0P}e}O*77ĤY;̌0fQ%$M!y4wo$ޫc?gu[b[6611 CL|dŊ-oӥWm>`(:ԣG ͛7e^,kΜ9ƿK]]5faa?uj^\rA]]Rwx5O۷ѣSN533C$V5Xj`555x<~˖-թYFQUUUPPʕ+B_^${G9ҖZ=CYpjGQurkzM5jT}}}[T,-D \._~Ad…zBߧz]Ͷ;~x.Zh!.urt:L^}K-:97Iƶ;#FX~xgώ9Ry4$Dի؄>{Yȓ[t@hiΝ6PvaӦMkTro߶@-\x _9t萋n>}={~5"wuwwk IDAT"H۷oG+**166D^111RwDDDl߾ܹsvvv!<<݀ㅅx>}۷A`BCCCz֬YƖbFr\D"Qhhh=***$Oݻwx<~۶miiivɓFѣqݚbGuB155]t)i|i#`۶mu\- S%~}×B[޹R_DD--z=|Æ &&&AAAMBΝ;ݻw ΝCK]|{KUmh6;з8m\Y!nY[[&I"[QN% P( 9go͛lE"'^,hÆ R h{[W=z4ź~:zv\- ;%_icz\[GdDGjKc[?VGV!",8KMI)Pt,򠼜in">tsiim< TrXCCCəVkzӭ[gϊ7jY5gF\lD?1cHk4[Fs/Y rGG6 P(DCڅF#;%7mrg-myw Jl$[QpCfx{OJ! $&=0 Ae!UU8X iz+.hpsskRh:ٳk׮ݾ}[|I$:%ɇ$tvUWS"Eť,?;hQμys~jx<^)([E}f~K41i$[]YnP55ɓ]]-M;s;S)!6-(9Mn&QH:M]o,--%[>T3bSZZlٲݻwmܸq }j'0uK.رcԩzZFE)JZXX|CI.Zh'(8}4l7ꢅFyr󼼊'r>SsαXJv-Iw?)VouRVsL9.9#|EFFg33W|Rƣ:9Ib'Y urR]ox<A&uuu{EZj#3CCbsY %tX,ڵkl6;44USS~2e7]7K bG;}ҥKZ=_>߿]]..}\v6~́L!etbMm{ Oexh˟9w Eǎ=l^^Ex%7gpCCÝ;mH$:vX.]$EZKoɵ:\.͛7E.Ur|pԨCo-TMOH2g<4B]l//iӎ{pdq˔:+ߠ䁏F'XLg鵵'NٳgVV֞={֭[WQQ>u֭7oڵ_eDDĖ-[ߟ~+W߿?//ݻwO>}ن {FEEyxx4Ç)))ׯ/8z{޽;vuu>}(:ˑ#O?}*9xpNѱ@9|E/ʨ}N=ќQur8~ӧLMp%%J֠k^ w QQŋ̚5 PUU%uڵk&&&C ?}Ϝ9sakkݻܹѣGhΝ;(°0===t,jسg֭[Q!@X`C-\o?k׎rq1WT e۷{0`@J3ztSw49s8w>b,- ;'`fSnoY׮]-'7ET44ނuB#]%uK[[[IWϟ?ZNo %@ A+/ƒcR> Elڵk\ݺig)qqTOY[uL%\x۝#nx5k<~`UhPMj"%@ cǂ@eWr(޺ucvGsbC&dg| s#?n{N>nԩJ2$$$444$$aݻv211lٲEOOcРA=zعsg͟?_ZӧO2dH@@#֭[B#Q9=J۽㼼 `THݼbŀ޹quС?82>:eʱD"4N˽{{y-[a֥ڨ}bw֭b@~خ]6rm;Tj1FoX{?!b0̕+W[B*{΍8ٳsuяB hz{?zTabRSߗm"55uݺuQQQ...ŋT: (?ee5Ӧpsڹsci=fCgnݾD(DXk!*)9˂Ns!Mя2r\^ AÇBȚ5kǍWQQaoo. Jhp444***Z  ;XSNQf8++F0FTS3xch.??ʦM$P>.!+WvWt,JD~>ŋҜSWǒGG.']{zz7LDXϤ/={ڶCsr99lzV-+MX,5AEQm͑^rD[$Y>AA>KRr(O/]qDD ʕĤ nroބ+*0e`͚n%߹\udJA#117))/6Kqq^i 9_9{vpn,eʢVdgӲ99jAx $%99U"E/11ȑg11]/X0`^< @Trsg*z(,d5*jސ!]%?~,9rߣGܬb9s&oFFXT{"JM ץ/ϏIVjIJʛ;7̌5}|aii :IZP,򥬶V15P XUt>_Qѣ>~,$/Y2xȐ{J1\y֬  溓&׊nޯѣ{_?Z!Q)osXlcQ=h4fbb^|<5.ZX]ZR}8HGҥk zRLf=*רTZa!#3<'.D"kTꊞ:KoO-+<ʕU/aASn۷CMMQ+\nKm23Ov* `SUQI<*\Ry{;U/D]w[.]|#H@Z:kh2# TTԞ;x@ *[*CGVr(E <8 P=<6-]:8$dd{JJQ?su";v,{Y$h\ %K.0 wZˑjϯ,(`PT* m\5tB!Y[ηVٺpᵞY>ʖ]}frp cpY~gK*Eg]sc',Zt.>>Õ66Ɗ#C׾}Vbu${y -E@t]p4rJ-/,d0jj8 TۺvPIml}a-S(9u9;ik⠠l?|OSR6ֲfϞG\o_E҉MH(g:DyʢZu)=4<|̜9rs+rs+rryyٴ >_ Mffr9*[ƼI7/ VR]:dg,*)ڵkرG:Ri11ak; v^w}*`Uu;(:@Hghb1F66ƶ~ewPUUwRqcǺ/[6LAAڇNP]ӥKuǭ O$GG(r NNWՉD1:PddU/k+(`4׶6ј}:._>^ +S.^LPSNd "VPtR%((`,Zt.;qOӦQ*qEG/q7"ӓo_, M;^PxpÁMI)6Rud__ i; YY@__f{hkk<{[gg'[ 6t^%v=<~=Sgڴ*95pbºu޼ 0P`l2b߹K EfĪ.11ÇB>_(Vu>>N|bTIVG4lO񾕕CbΝ{efF 1qb/N_*h'OһuXecөJrrtVx3*:|\6l؞o+'2qb1 M\jcf*m& q~hQI+z7@:B gϾ}z2޿GU۷<@ MĊꭲ !d;;{{ST&3~[q$==9s|HlA mGFƏcI O۵3/_\'}~{ ppw.&O^ZZqRR^\UuD"חG=.WP^l4=ZTT%!h:O`KEOݼlee8w}8\S*"#_^@К9߼y~оs2W v 9#q:p`j2oE"hx+LDaH\._UIVBIDAaaA$JVh,sw?DE|gOEꛂ&4d;3PIjذիI1^=J zuQq}M u_PlpEPhCx8u}DX^^\Ib9Ç+5U_V5TZOk\`07;CQa̙AҞ=[#UWoɞ?΍ܺuY>xj\5))K: ZhRi4oX9;stG(~}t\LLaҤs5MAl<W1xpeˆe Trb5̙}v 7 5;.:Bxԋ~R൑,ژ1TEQ Ī́嘙y{;xzݻ[AUG1r$}L\K˶fʂϟKnL4KPPA@s0g_9*[@%&֬ZPXxвeC_H۶P+ާ:> `޵kaI.w ޾a8z}tU'=*9ؖKg[~yFk>.54)ЌF*ӧ.^LR:ϼy~& /zc}[[]{ghܸ|޽bs ݻFBhST*U*$ļ/2Y][///EU),dWT05hQCC;;cct $57WƩɺ:Çiׯ{2KWWsXIzmүHK IDAT+>uŭ[]H+@%mW[w-.:qb?o` ʡC̛Ɖx;wbxn\ ]+!펤2ƺ={~UuVʼ6\j8uiQ;;oh|u8~~&=%RAˬӧ|<.Tֱc++k#$dPoYs&$dŃ45d#8pW@۞=ScҤޛ7u 1buDD~QA:"ECU˗Yu::={k H6 h[@$-8&&#&HM _8iR,ڐ!7l;w:>~s烨yuQt,Mh,Yb1ff س]͕|Yj;RZZ/ ^N.uFBmu4aȐPB A]{e]O:|Μ2$+)6laevzxԋOWˢ 6KPЩM~R6} HMϯd V%&&%=ZKKϏe!T޾}*+..3;mܥ9 mu.[6T^Tr2wسC:9sJAd̞}Z\Heɡ*WH?4J$DZ-K T~).Tݪc::6!!ۜׯTחOTSShȗuuܱcݗ/lAdTr2$;a/2Gn(Yۿ_=xq#ӧQo4nΜ7dedsbuu }`~!>{Ϝ9FFH"C9Oor7?2(ʕw >xs烓'_<}ZBhӟ><|Dk!ArbFchJ ȳبXS Uu^^>}'S Гs-Y C~͛VVs*[9<mvΞ\wH ޹\[[O__ڵŊrn۴VTԫ7PAX2 j EEUU\Y'ecc:Y[ښ(ܟX%&Q咪N!]tzmrr~RR޻wE\HW/޽z&[C qt\|<{wy`-~,07AIGkwwww[}\x3Ovv&):(H'*9ŐC߶Çi>>c{c޹aѢs[3ǗxzQYY`zII)ӟ8OX,i։G]\ϟlYmQbq MMH(IY,Η/JnnnnVFX.W hnlA Tr$9`˖ 9 vfܖ,-?xgϣ'f]gPl2ٳg?{W}[>_PSih>x w`lnqqUQQUqqUqqx5[MM=H@)AǫX^TVSR Хusp0"R|})hO?}*IO/).ufjj٣5ncǞ߾bho| QS0<~k̲qz'Mm_c!aa#Z=cc0uu$X,_?WK|5#nqjjأGg.]@Y_\\j5n+.C706ֵ2612'"(U` ϟͭD@$!777k C~ &N)uq-Ҝ9\ <{Q`0] c_F56;|P(ڿ@b[P*"MVe%]j;΍ɦ㬡Tj:IJ23˙z++MM5"@zeEe%{Ҥ#YYTj 9El㔔BOOٳsa-LZj8_VV'02daʔe.XfΙ!U2>݁? 犢b˫J|`Y &>3UlTjyff^ L(3B!Y^l67% .OX$Blm}})d__ tmnډ0!9tk}]cǞTu={*[%*9Mk߷Қ)SB$::I,Κs55˫@W5qcYSSAdB!2`/@C<&266FTDUyyYY,eUUu}}mggB!:;bUC!/:' TOp~lb0;*2%˟0…x@ >_xJ &b.#t̘|!jX,&%esۿ6*<ԥxfܫݏ_u'M&N-ӎh@M gdzHZZBRY !****P`hcoobNE&'KWu9ZZK/Ũa}g14S*9fӦۑqMřT1W]]sO+ݲe¬Y>?X@"ߛp 윾ǟGFs8|oo͛~|-A9?N!h4&JTTj9tȓB!IΓʎzhTաnXY}{ڽʹ1l ̆Fx<ɓ0qB@%X=7>UFoԎ::B$I`0{ݾ:#?gBh;wN3;'bO E0xncۏ +Z^ΔL>(.F>%kE+lz[XX%uL6!MLMDHosy:. AX_X== CCM cc- ڔH$z0Ztj%G322u@~mSZQʪpq!:Ƌ)b18\KbN]fȐA #&VVʘ4YVƤY%%5t:K}*F3T+0TG\%d6h,lD@$~~$AbaaGuuݻ|b\.Jё*:nuu}EEmeemUU]y9]YYK:ZZꦦzz&&$~V:ffSS=cc]I ?qqfdW[99?O[`)PA ߏxetqquRRޝ;)%**e8>Y_Sd֋鬲2&hz=D:f`^ ,bX,@(8-33"@TrHPZZss^WTZ;vLVtDmd60 2`WUUWUUWWIJ4 Anچ:FF&&&&QU:$H@HMLt_rbccK ( B =y~/2iۅA5Xl`}(uCKK]__PHHɉj4cc##]]]813ߣ( H[JN(,,ܸq3gZ,;; Aݗ-[yҥɓݾ}{߿]ey$kݻݺufYYYkܼԩ $KU&pb))9 Ѝ v#StS__[__@D@Kܢm`eh }!GTއ@ bܺukܸqR򪬬~e˖ :dlܸQ2d2Y(R3--@²ҿ@> /|(-*՛79xA8ܪA8>:b544,VCCW[˩빵Yznm-fKq43#88hiOhZJ#`mVR!a2}A 1Pɩ?H$b0c;v{xx͛7'N]|͚5 $ `ii9`߿R7nhh-`0]K{ZAK޽7s8gut445tu5tu5ԵPen54 W,vGJ(% ؂U"a4F]G ^2&DF0^hAM b!I "D@qFBcKF6@=i>y ;}s8]"m~|%3g2Ul||\V3RB`ֆfbQ*|>?((HTZ,^jmmj://O,x4HZ777oٲᄅUUUagggOLL=zcL"Aj;00!L҉ׯ_좢"Iujc^kkkmI*++H$\.%<~8"""((H.8 2?~^ 8/.g7QWW7M̽Aj8>k]sΚr9 6x)e*9ݎ?~ĉ/_`qqqrru:]LLLnn.99;I9{lIIݻ^Ikś0Ʒo>|0sm:yO%{g t YYJ!6k6445 aAngjIDATgJzi\'OxRRҥKt:]\\\YY=+--ʕ+d\vv6u ,h2,uTaGUUdy&kg7]c333B "88X.'&&Ɔ?חNڬd_P|Z 2~9v*Ç==={]ꁀ29ci4͛7*J|~~~X|~yy;A@%੠TPx*<{d[Q MLL,(XVgr~~~pCH>x`C$q8ŗ xUmU&ѠTPx*<տWŚFdwIENDB`XQilla-2.3.4/docs/simple-api/InputParser_8hpp__dep__incl.map0000644001725400016040000000027413273140075020701 00000000000000 XQilla-2.3.4/docs/simple-api/classXercesConfiguration__inherit__graph.md50000644001725400016040000000004013273140074023441 000000000000001ddbdb9262605a7ee3e5b9dae674bb13XQilla-2.3.4/docs/simple-api/inherit_graph_6.png0000644001725400016040000000372513273140077016420 00000000000000PNG  IHDR%pbbKGDIDATxHS]}ß972)* 022$DBBd& * 0DRWR"ԖռZZV{s657w޻}/}츫B,[7; I~NqԴ,R0+@p…uy{RSS( ŋ sOl߾H¬Hs0$ ?,Iϟ'ŋKAZf<LMM%bhhh!փ/PBcexx'A룣G~Q*ΛӧO===j5 _#H|}w-/gϞL&DZ15/IFq``c$EQeބIII޿?11qkR)fGDD\.jl``l6/=5/IIIIޖ<|x\.G񉉉CIҨSN333WsssFF]rDFFdhiiټyLḼ[H`kk-[ rrƍ!!!vjmmEjY y٩wEFˬ9 ݰaCXXXYYǏ2D"X, Y 烢_~Bx̙M6 3!jwI=޽_NLL!.]JOO I[n=}󫬬4LBpm6X,kMM `ttj͚5>4mmm* .!4tS-ʙaZu$Jp8Fno߾=z4;;>.._lZ)n5833p8n'OPZ:$һtkEƪс愣M$Iz= ~-G!Vy]zȯ?h4%Ipn:;;U*EQiiihã߳\hh(+###((hΝ<@9Yz>!!!...;; ;B?*$֊Ujr:ɓ'Osb_]zȣfgg Eyy}'Nj!'y]޻wOT4;;i09qQQQ Z)!q@ X,~~~ziSMݾ}.9Z*hwժUE**o!8`ubNO>js߿pph4J$͛7m6իW=B"(++رc}}}%%%Z#sssm&$ ?`'a; I~޻O_IENDB`XQilla-2.3.4/docs/simple-api/functions.html0000644001725400016040000001317613273140074015536 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - _ -

    XQilla-2.3.4/docs/simple-api/classATGMonthOrDerived__inherit__graph.map0000644001725400016040000000103613273140076023005 00000000000000 XQilla-2.3.4/docs/simple-api/SchemaValidatorFilter_8hpp__incl.md50000644001725400016040000000004013273140074021550 00000000000000a5d780bd679f772fc01110d0f5e0ffa3XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__dep__incl.png0000644001725400016040000001427713273140075021375 00000000000000PNG  IHDR$p8bKGDtIDATxy\S' {(X ־кث" PPBmUDy ^}@PKŢVEW [k $$qMHd2sfsΜ#Q|C*e /dד `dd4fΝ;ϟ?yfEkhh$#AVV֬YÑ Nϝ;w|&9T߆ 2T& Yv{gΜAlsmm-ѱڵHʭ[:;;!W^_n]^^O?+33[d񲲲֭[-|޺u]=$b;ᑔpm6/99599ݻׯ\~׷G,+BYf͹sr___WW3gp\rh!B ŋ߹sYudmm}vBBJMIIw}7eʔ\ى|aRRRPPPZZZeeeFFF}n\p֭['OlllX,1aQtttD">uԟ|K-11PTT$,%%%%66ѣGYYYϟ3gNBBBGGGBB·~-KtᅔDGG=zJx b駟j@yyAZn@Xr%djjjfddرCww7KWW a]]]ggg$ArJ@@դI;c WX}}}?sHHDڼykפ&իD"ʊJ޿ѣ={ X3E-X@Bh4L>}-[HQw61ƍb .u떕Çw-Lcjj +<t 6=eQk”aQd2y:ud|Oş)71Z[[EzzzzT /a„ BgFBM :88 ,Y/ܸqvرdbީ;wj&&&HF :.zJŵkXlKK ܌hL71 sss+*****._ ۋ̙|E455!FDEB:;; _xzz"_xld\.s8,SzzzCCCCCéSڐǏ=zɓ'EEE[lxGGӧO444ddd,_\Fl6 ,\0-->""D ĸ8pÇwޕu?߾}+VȈQaۑHKMMEW,hѢEɰ@ h4ڑ#Gttt6lذlٲA:@Pzzz{zzT*oddf'L%|ꆆkhh,]BH5nnnnkk?n݊`-ZDRKJJ:;;}||x|XXX\\X'N E*˗/߽{wOOϲe( 2hd8]Kں~xH] 318::tBQadp8W^Zپ@T(yJ]j}Yf01?fΜYZZl/FFFFvL$D d@P A (6% P Qw4X%W7}QH$<!e;2Xx#=::3޿/g}1c4tw4C$I^ ETU'&\^T hj⫪|M>_dɱvԩ4lMM Pl( _Wqp8*u-fLX,``M \hnn(MXUژX,#gjJWAV|򤩯oxm 3g"iaa̠pTl,-MJJBXׯR;(6?'O&n]G( 33âc[wٳfe3:b<=?lsT?xttڴi$7x`Pw?PR-$=}3*T!bS 裩OMݴf_?p‧,w?JJS j.ZM:33@ 7\+ xj!6?rs~nV ϟ$@&Bֶ *ۋ!yK8'B [n6?&H̓tɓr1k.XOOϖH]R/;h?~<fddwޑlPMxݬYtuut}||ʆdtGh/ ȦǎՄHGGt'|zĉ+WP^.fhOR @~~ԩS|~||͛WQQf̘%YR;X.hY2 &L}d/Ն]NW UUU "XTT|dWmm-b\2d2555rssEX,--䖖 <b?}||L&rd2))) I{Y[[l<<<<<x`ܹ>|hkkx'OF⭭#/VBVdǐD:MQ$빿,666ȵ؋ =d566/_|H;ɓ'-lOOG%&& mf| F``5k;@F/_"*Tݓ.SM֮]+ڳsss\G_zeaaK!R+Pc E˂#ًl衉痗_|~ҥmhjjH2|`.^d29 {7|qFѯܾ7oTWW;;;'$$߿? 2  DEEݼyݻՇ:}tTT@CCkǎ 555P(2LX,$ YR;X.HmQ$Yvz2Z(S3g̜9b`08οI&yl ..n̘1ǏOLL!bɓ'kjj\tI,;H閖!!!l6[4;ܼyIPPPwwQ{^~~q祥¯ D C|.`DJVԎ! HF c$mzAI:ѰZ `QRm mfWC 2A@ J`SA$A8tOOϏ JaaLo $դO6ddPlJg;y :(Gkp6k*u.<1r矋ƨYHA (PlJ(=2!IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_22.png0000644001725400016040000000251013273140077016465 00000000000000PNG  IHDR%bKGDIDAThI,s]Ǐ TQ!v,"D]!m$$ЍRIŰ3`!r5$:h 1WRZu\U}&oy9M (H@@dr,PN`h4\w߉韕9??%?֩T{QTeee$uO @9A('Ȃ/NwetE[vo'oގ`0deex V6hnncsB|t"222::ڛʷ7*ߡKY,Voo{baa0 P*OOO99969N\frD[[[SSS"d222BCC9=RpGkGGGllldddEE+;ᡪb|LL 333 !UTTTVV^__]AZ-g___qqA---hAaaښf0<>>0VF\\\LNNnoom?q:\1@rr2A2 7⼼<^APJJJgg'aOH>:0 TTG'B///#p8Zf\ 4\OJJRGGGhL8pi44VaOH>ZV |3 TյL8h4r8NP(t'\. $$hZ͖NqnL4D"p ͍劏G₰y|tt4??be`A؟!0*^ZZ* _y}}\^^b\.h4AOOglvPP`@z]VSSS__T*WVV(**jmm5L}ˋhv,Z*%I[[Fh4uuu&lSF.T-__HZZ@dnnX,әεZR w9LfLLB(//Gsww7',FgLrtzyy9 `ecײX,$""4664{o76pNdr,PN @9A('Y x4;;:~w<>\lnnN' r@dr,PN > zDIENDB`XQilla-2.3.4/docs/simple-api/nav_g.png0000644001725400016040000000015413273140073014427 00000000000000PNG  IHDRrcf3IDATxݡ O@C0:B%#GdLrERq˱/9iDNIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufFormatTarget-members.html0000644001725400016040000001625313273140074023713 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::MemBufFormatTarget Member List

    This is the complete list of members for xercesc::MemBufFormatTarget, including all inherited members.

    flush()xercesc::XMLFormatTargetinlinevirtual
    getLen() const xercesc::MemBufFormatTargetinline
    getRawBuffer() const xercesc::MemBufFormatTarget
    MemBufFormatTarget(XMLSize_t initCapacity=1023, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufFormatTarget
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    reset()xercesc::MemBufFormatTarget
    writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::MemBufFormatTargetvirtual
    XMemory()xercesc::XMemoryinlineprotected
    XMLFormatTarget()xercesc::XMLFormatTargetinlineprotected
    ~MemBufFormatTarget()xercesc::MemBufFormatTarget
    ~XMLFormatTarget()xercesc::XMLFormatTargetinlinevirtual
    XQilla-2.3.4/docs/simple-api/classSequence.html0000644001725400016040000013413513273140077016326 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    An eagerly evaluated result of a query execution. More...

    #include <Sequence.hpp>

    Inheritance diagram for Sequence:

    Public Types

    typedef VectorOfItems::iterator iterator
     
    typedef
    VectorOfItems::const_iterator 
    const_iterator
     
    typedef
    VectorOfItems::reverse_iterator 
    reverse_iterator
     
    typedef
    VectorOfItems::const_reverse_iterator 
    const_reverse_iterator
     

    Public Member Functions

     Sequence (const Item::Ptr &item, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
     
     Sequence (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
     
     Sequence (size_t n, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
     construct and reserve space for n elements More...
     
     Sequence (const Sequence &, size_t start, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
     
     Sequence (const Sequence &, xercesc::MemoryManager *memMgr)
     
     Sequence (const Sequence &)
     
    Sequenceoperator= (const Sequence &)
     
     ~Sequence ()
     
    void clear ()
     
    const Item::Ptrfirst () const
     
    const Item::Ptrsecond () const
     
    Sequence::iterator begin (void)
     Begin an iterator. More...
     
    Sequence::const_iterator begin (void) const
     
    Sequence::iterator end (void)
     Find the end of the iterator. More...
     
    Sequence::const_iterator end (void) const
     
    Sequence::reverse_iterator rbegin (void)
     Reverse iterator methods. More...
     
    Sequence::const_reverse_iterator rbegin (void) const
     
    Sequence::reverse_iterator rend (void)
     
    Sequence::const_reverse_iterator rend (void) const
     
    size_t getLength (void) const
     Returns the number of nodes in the list. More...
     
    const Item::Ptritem (size_t index) const
     Return the indexth item in the collection. More...
     
    const Item::Ptritem (const ATDecimalOrDerived::Ptr &index) const
     Return the indexth item in the collection - takes ATDecimalOrDerived. More...
     
    void addItem (const Item::Ptr &item)
     add an item to this sequence More...
     
    void addItemFront (const Item::Ptr &item)
     add an item to this sequence More...
     
    void joinSequence (const Sequence &s)
     combine another sequence onto this sequence More...
     
    bool isEmpty () const
     Returns true if the list is empty. More...
     
    void sortIntoDocumentOrder (const DynamicContext *context)
     sort into document order (only works for Sequences containing only Nodes) More...
     
    void sortWithCollation (const Collation *collation, const DynamicContext *context)
     sort as strings, using the given collation More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    An eagerly evaluated result of a query execution.

    Examples:
    simple-context-item.cpp.

    Member Typedef Documentation

    typedef VectorOfItems::const_iterator Sequence::const_iterator
    typedef VectorOfItems::const_reverse_iterator Sequence::const_reverse_iterator
    typedef VectorOfItems::iterator Sequence::iterator
    typedef VectorOfItems::reverse_iterator Sequence::reverse_iterator

    Constructor & Destructor Documentation

    Sequence::Sequence ( const Item::Ptr item,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    )
    Sequence::Sequence ( size_t  n,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    )

    construct and reserve space for n elements

    Sequence::Sequence ( const Sequence ,
    size_t  start,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    )
    Sequence::Sequence ( const Sequence ,
    xercesc::MemoryManager memMgr 
    )
    Sequence::Sequence ( const Sequence )
    Sequence::~Sequence ( )

    Member Function Documentation

    void Sequence::addItem ( const Item::Ptr item)

    add an item to this sequence

    void Sequence::addItemFront ( const Item::Ptr item)

    add an item to this sequence

    Sequence::iterator Sequence::begin ( void  )

    Begin an iterator.

    Sequence::const_iterator Sequence::begin ( void  ) const
    void Sequence::clear ( )
    Sequence::iterator Sequence::end ( void  )

    Find the end of the iterator.

    Sequence::const_iterator Sequence::end ( void  ) const
    const Item::Ptr& Sequence::first ( ) const
    size_t Sequence::getLength ( void  ) const

    Returns the number of nodes in the list.

    bool Sequence::isEmpty ( ) const

    Returns true if the list is empty.

    const Item::Ptr& Sequence::item ( size_t  index) const

    Return the indexth item in the collection.

    const Item::Ptr& Sequence::item ( const ATDecimalOrDerived::Ptr index) const

    Return the indexth item in the collection - takes ATDecimalOrDerived.

    void Sequence::joinSequence ( const Sequence s)

    combine another sequence onto this sequence

    Sequence& Sequence::operator= ( const Sequence )
    Sequence::reverse_iterator Sequence::rbegin ( void  )

    Reverse iterator methods.

    Sequence::const_reverse_iterator Sequence::rbegin ( void  ) const
    Sequence::reverse_iterator Sequence::rend ( void  )
    Sequence::const_reverse_iterator Sequence::rend ( void  ) const
    const Item::Ptr& Sequence::second ( ) const
    void Sequence::sortIntoDocumentOrder ( const DynamicContext context)

    sort into document order (only works for Sequences containing only Nodes)

    void Sequence::sortWithCollation ( const Collation collation,
    const DynamicContext context 
    )

    sort as strings, using the given collation


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classLocationInfo.html0000644001725400016040000003234713273140077017144 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocationInfo Class Reference

    A class that gives records a location in the query. More...

    #include <LocationInfo.hpp>

    Inheritance diagram for LocationInfo:

    Public Member Functions

     LocationInfo ()
     Constructor that sets the information to 0. More...
     
     LocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
     Constructor that takes the initial information. More...
     
    const XMLCh * getFile () const
     The file that the query was parsed from. More...
     
    unsigned int getLine () const
     The line in the query. More...
     
    unsigned int getColumn () const
     The column in the query. More...
     
    void setLocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
     Sets the location to the given information. More...
     
    void setLocationInfo (const LocationInfo *o)
     Sets the location with the information in the given LocationInfo object. More...
     

    Detailed Description

    A class that gives records a location in the query.

    Constructor & Destructor Documentation

    LocationInfo::LocationInfo ( )
    inline

    Constructor that sets the information to 0.

    LocationInfo::LocationInfo ( const XMLCh *  file,
    unsigned int  line,
    unsigned int  column 
    )
    inline

    Constructor that takes the initial information.

    Member Function Documentation

    unsigned int LocationInfo::getColumn ( ) const
    inline

    The column in the query.

    const XMLCh* LocationInfo::getFile ( ) const
    inline

    The file that the query was parsed from.

    This could be null.

    unsigned int LocationInfo::getLine ( ) const
    inline

    The line in the query.

    void LocationInfo::setLocationInfo ( const XMLCh *  file,
    unsigned int  line,
    unsigned int  column 
    )
    inline

    Sets the location to the given information.

    void LocationInfo::setLocationInfo ( const LocationInfo o)
    inline

    Sets the location with the information in the given LocationInfo object.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp.html0000644001725400016040000001311113273140077020065 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATBooleanOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for ATBooleanOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    struct  BoolResult
     
    class  ATBooleanOrDerived
     
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1InputSource-members.html0000644001725400016040000002337113273140074022477 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::InputSource Member List

    This is the complete list of members for xercesc::InputSource, including all inherited members.

    getEncoding() const xercesc::InputSourceinlinevirtual
    getIssueFatalErrorIfNotFound() const xercesc::InputSourceinlinevirtual
    getMemoryManager() const xercesc::InputSourceinline
    getPublicId() const xercesc::InputSourceinlinevirtual
    getSystemId() const xercesc::InputSourceinlinevirtual
    InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    makeStream() const =0xercesc::InputSourcepure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    setEncoding(const XMLCh *const encodingStr)xercesc::InputSourcevirtual
    setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSourceinlinevirtual
    setPublicId(const XMLCh *const publicId)xercesc::InputSourcevirtual
    setSystemId(const XMLCh *const systemId)xercesc::InputSourcevirtual
    XMemory()xercesc::XMemoryinlineprotected
    ~InputSource()xercesc::InputSourcevirtual
    XQilla-2.3.4/docs/simple-api/classModuleCache__inherit__graph.map0000644001725400016040000000040213273140076021725 00000000000000 XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__dep__incl.map0000644001725400016040000000046413273140074021523 00000000000000 XQilla-2.3.4/docs/simple-api/ExternalFunction_8hpp__incl.png0000644001725400016040000001645313273140075020743 00000000000000PNG  IHDRpbKGDIDATxy\0%AE( n׵j\**p Z(.j hAJW;J Q6YL ,d?΍$ $ps3'(!}DUv0$Ay@y@yДwﮭUvo sW= >`0Ȫ---Mف>cO(ۧ@uOdOdOdO5RSnڵJ:u=%%ܼBCdOoff&˒ [n$H8l:ݏS}ʲ@ `ك' ۏ=[n߾ގvںu뺻oߎex<^bbUVZ݋׬YSVV~ 6|G?#^Ν;[lYh? K0xgϞ]fʕ+;::Ba W舉Ybw}rIWTT|T[n[nժU~moo/iaw {nB]]]?b?x"^1##ĉ_}Uqqٳg򴴴[[[͛7?wĉp[[۔m۶%%%JK ^ׯGGG555)))! |MsssbbÇ߿y6WZXXt)6333:::**@ZT dOg-y^s +VۋW|_|`0ݻ:;; V\I"lӧWH;;;C4KJM6YYY?>88QREsN333++7撶)^w͚5Ç9s&BH۶mpppψH Kd:lٲ"+G]]]%Qhll 0V[[{O]]YdB-,,cǎ;v,*B,K =ܼMqFFF! "\HҒh8~gWWWW^JJJ~~~~~~vv6pI1===׿N<O---…"z S̝JmhhǓxH ӫBb {VB~_~qmby(Bh֬YIIIUUUAAA\Woo/ǣh\.NZt:!ouuu_pSN=|Mccx8~رϟ>}z ">>ǧNZ`Bb]}}"%4m׮]G4iI<<<~W͛lBPfϞ'r`(No۶Æ O͛/͛RRRvq IKtwwvwwO>!$6/ߺuܹs}||$5{ȑ)S&H͟?Ϟ=E o&`~ODP"""`F|/5۷Z9._\B { '}}ݻwRTdOdOdOdO<-***胦&eG 277OOOWvX:3YSTw{z^(frvCkx͚ӵ{3~tJȕ Ŭ6Ȟ@x!cc#"Kj?8t@'Owdh5g#z;wֲv^N$ Ȟ5a#H{.88ú!R_=D-n=_~ш:ʎh~!5:^% Ho.]aƮvq7I46V] {QU55hjj(;A W[=ظGEyc숆^=Ao W7=z޽}+ tP(Ȟj 1&&gXծ*)dOUT<(,pw*:b.={c40~ W==NnnyHH WU=ȫWmaa\y)<Ҡz {bJ{͚T*LYb {낂|}S֫ Ȟ=fFն@W=UVnnyh腎wp):Ȟ*svvS06S]=U11^s);"n0eSu_++kgƘῊιui]]k[[ܹʍS`˥ٳ椤ߕP"CHtHkӔ:9cee#' @^~򵂣JTP_J)dd;w[Q9Ȟɓge==ҠP˻JtR BFJލaXh{ZF͛OSDRT 'Рٙ͘a=u3l`$ **BA4˝T*EOoիބb@DjkY ĵq45<aiӦYsr p/ݫ*-Ԥ >?qEv0e{+{@>U+rrmm mm  um666Ν;wzzz޿A^h{YY|drvL1Od4=***@|O0lLFMMv Ȃ ==(NׂYh$9711Q`HHԏ9RƶlrF SƟ)^|qF ֮]K¥l |_oll엦EHH,!hѢPVrrŋJg e"K ٳgKZy`@⣱Ǟ.]277gXO0S ;881bƌ!_~yfff111xaKKaæO255E_v͛)ʙ3gLLLbbbΝ;7~x==/_700pԨQ #00wƌ_5BdRԀ700A~"~L" !--3gDGG={699YS͓))){RWW7(((55U~ʲc0K8ҷ֖#~7hbBz ҾBd#G[ """,--MLL֯_OFBegg;99XYY;w!HHx0ſ"" DyyyagddxzzO7R(TCCXI oݺvv8ET*7lիQFbv q fkiimڴ6%%!Ԅaؙ3gΝ;7x⼼Ҋ!ooo6})իl'B--->|˗...!!!_t)aYYY#Gtqq0HGG0y={tĉ‘ :hM DyzzX$ׯ{}}}}]cFy'Ųprr"V蘜L,KϞ====;ѧL&#R*"1 r"sssLRTTDӹ\ݻCCC555Y,V\\ܒ%KDg]xF8sPPB?$@ Xbڵk;Hn߾mll,GI(ð~F% |>*H I$(8{F6r7ŋo+**ⵘL#GX,@ hooK"R( e;vػw/a))) ,r|!ķO)m"/g!}}}__m۶%UUUSL!prrނVeeE\]]Ž^**FJ?㪫} ,x_G9;;_~=??ҥF>ommWw}77(IZPPEt)~4'Dq G:gʸ=!D5DV!p +񑃗 bVZ%A~~ݻw-,,̙s *JZ]gR啞a‘GoO|LLw_M:"*++G-JBzaKdR  Ҿ9x9-GKJJJ:$L&s˗/g2ſluuul7s7oJ/RGh1c%Ia}CGځm*t( rϟ&ijjz% â FfffCC˗yݓbQ(˗/<"׮][WWDRELA'|ƴi>s t:~K-O͛WUUUVV.) &p8M˖-3g~~r߶ٹ_r? E1O,IYxkOEҝvԩcܹҷw̙t:]J'coYUHZ̞}n=z7IO?dmmeooEZ "  XQilla-2.3.4/docs/simple-api/Collation_8hpp.html0000644001725400016040000000571713273140077016416 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Collation.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for Collation.hpp:

    Go to the source code of this file.

    Classes

    class  Collation
     
    XQilla-2.3.4/docs/simple-api/classExternalFunction_1_1Arguments.html0000644001725400016040000001350313273140074022364 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunction::Arguments Class Referenceabstract

    #include <ExternalFunction.hpp>

    Public Member Functions

    virtual ~Arguments ()
     
    virtual Result getArgument (size_t index, DynamicContext *context) const =0
     Return the result for the argument index specified. Arguments indexes are zero based. More...
     

    Constructor & Destructor Documentation

    virtual ExternalFunction::Arguments::~Arguments ( )
    inlinevirtual

    Member Function Documentation

    virtual Result ExternalFunction::Arguments::getArgument ( size_t  index,
    DynamicContext context 
    ) const
    pure virtual

    Return the result for the argument index specified. Arguments indexes are zero based.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp__incl.png0000644001725400016040000041305713273140074020700 00000000000000PNG  IHDRh%WmbKGD IDATxw\67 jZ=pj] h,Ҋ 0C!ԯ""G|qxGg)a8e |'N $ @] ӧONt ̪@)))]lپ/^$Z<ӧO% ٶoNt qO >|L@8u.\W_{~$?kƍgΜ133k[ÇotPxĉO2L oo3g|x|Fgɒ%zzzuEEEppprrr*>'aIII4t˗/#d2/_o#BP-[o>An߾rXZZǰX;;;!{Vd2/^1`ɒ%!!!EEEG}޽{o(]|yѢEǎd%ڳf]hEEE6lϗ/FRT*,CD:s挫khh+Ϟ=+ǽ{=zU(r[>ԩSzzz0`bXn`===*jhhطoߟNĴ]]E}n@KJJӧERR'Ș:u=,Y${=r6lY>sΉ'N>bAÇ'$$̝;w„ ϟGdҥL2E~gfϞ=~?_۸>sÇgdd̘1˗%% &RiTTɓ'O%J=xO-[8p?E"?‡(z9s._<''ٿ^~ӇΙ3gH$z8N3 >>>#H*++MMMMMMczTPP HcccFFСC555QQQvzs< 9t#ʕ+W'>yȑ#6lr|>^!Pή߾xM?|! ߾tvry,kԩ򧴴=]MMmС߷zё#G>vT*})Ʀ5`0w4e93LPU1jj$ {;= EK7syn^NII_~ך5k;?*^|ٳk+++3L| JI(;wNc>0 vڠAaaax~;;;y~@>E{qqq+_ x*++ÓvkZsdkOS$usߩP(Nmm5IygjigU;WKK LVT\52YA2? +33fhh} ܂ /_Ç>|^{۷H$׭[' =BMMM>4wŋ~Wtǎ3448qbuu{744hhh(ZQQd27)oo#G,YqϞ=NNN ӓ8q"88X'LpA---ggcǎG޸qWޢլkx耀vWC@,H;Q,>)H)?dfvJ( 2;\!>6m""<ۄ?+JB) (xּfj:YM'`*$ FRVVQSQQV'UT! 8P(p M[U!En755MNNn!8چGEE]v3<<|6|𸸸ɓ'ժU/&#F={vw111quu:u͛7?VÇ?UYYION& Bccc77Ç#"".\R[[I$Ұad2Y"_d6TUqLũVTkjx Fui4]:]WUZZZǏoN_xD&@ nlqM6/rMM. b6[Wx(u 55ummu==MmmuCuu E㽝_Btx (GPRRWRR/*-+)+(#]]MBQLLt-- h4EYʁ@OO/445;@LVl bO/.jxF yCQaܢC5B0[>L,ٍ MUU\FQQ-b5p(gti4 > ؘv&U@w2 狲_|_-F^NNtggSGGwHȑ{ #/I##Sd2o-f`ٳFQM W_X[˯55:|Q>DHF5616h##] Ub_ESY'ZŨT-WWʐ2A;p iϞm0踻46Ν{ gl/]ЍQXZɩkiF)#|Rh3N=ZII]zzaffyff?J$2]]M+ <.vNX,xiXZĉ}CCGA8Tx3^U'ʂLV14ԡu uLL(FFcN32ҁga32J.rnn ~,=<,i4ԿG[̓')):D" [Q8#ml`@{ %UUܪ*m ߨ f,- )&&z0 SWZZVV^XXX Q~}Zol +ӧE&폎7fkO EE5cYn=@BTUq+*,TT8 55<LDNףut=SS=:]DWUf aMUZZ'iiLfo_mkj+33}`nS7!^U<=4> -;v,u vvDׂ(j߾;.Wׂ}N?`76] o?:>'VRR54tt-||<=ؠF/_}5]HM۵fFFc쉮Zb5TT4ח֗ח՗&CCmjnNe0 }|ܜ|EApR< ޤ楤䖔ii lh6XBBBvj hzz=w<^/ @DRSZZWRRWRRWZZbq[2]]Mx Fٛ ' ӋRRrSS^,G Z, 4ѵ$=022)>>+]c@(*/g՗WT55< E77ZYZZZ[ZZ0T NKo|M||ݻY\oYq$:(6a$ի"<^ٙ;ujXtЍ |mms.Z }$YaaM^~UUܜڝ~}:x?7nx@U4bq}\` V:{}-Oxp}2Ye< )t_D PU'/)|. Adkk#GGyޞJtt NH,g_,))LV5v&XDE;Fktk@Ǐ9a_]lL_nϯϯ*(y͛z UQQ67;88;ӝ&0\ t':DffYL̳W74<_t$D6sh4 E@"K kRyy7orsYLV1rr:9ѝM } 8rv\\Ɵ:8'(h,wo6o]Kil;$22Κ5hٲ&&DݖTVTXeyyU*ttԭhnn掎&..0-P/zŋϟN1ujgg:uЌٳn +ƊҋݭM74t!E@ jrsYyyW*h| 77]U]/eӏbc3Rtxij̀.믿^|y٠ADBDv=qbիG]8o[^fRxV]wf9855x_}5H_ M( s ?Zǧc[7ޞFtQsI$\ׯ_8PZ{3\] 77(@N'?…?|,G<B[GOMF=o(vƋ{W];͜ ٍٕ99/_geUWIzf(egg{@pjDv'O>z(8xHPgO t%%u;7mKt-]bYzn(4Pe9޵OCCŅ޻7͍naooB"A'p8ӧ;ZW=uΜ!CAP8sFǯ%5Zk͌OOxy]I$}!b3f \  YΞ u"^gϝ<=/ EtE>A&C33233323D"͍ONt@ApjFffYttJllCBh]m$ȆջYT\kQ$酑I[X[YYS?(h~,=<<<D  O|||ɓ=,Ptp&X ?/OHHxL_*`ܸ>@x/J=+(H..fVY²~5 8!ȿŗ,X@tQ&{ʕ+W]ɩ}ZI?DR2`̀փ:;*+èמg'DvBzxx|Uw֬+V 㠻s FDmhܹC-Q'(O*E_HO/z7lvZ߾>>{3 D=(8š];2n>׏!ăÇ*y-\8 0.55/55BT#SffqiiټyD&\G))@#GR0 ˖$( EG>PZb`oO#@Оypb2=n !":ܳgE'?|xر}E'O>LHd3g\܏F]΀Xvvym216HQdh~iò'@Ql0]K(:wIdd"'5kвe#LLt?vpqq9D&C+RSRR<)xu 'Dv}(fȹs*D@'9q?^MHX'K/^|v TRt?6DF΁ME7o EaXttJ^^Uyy}ii}e%[$OH***RL&C=w @_׋Iaܸ>nZZjD )Fprʕgھ}*%\břkVgIt-]ThhhXXU|oHeeuQS"!D"%%%y{{]*͛7nxP]2~|^Վ 8=xflޙ.D@W(1b=3 *++ %0@C&n"((… AAAD'Ǐ TL1dLr]:J7H3m0wmj|X ͧONt@g02ҙ;wܹC72cbΘqؘ2n\ `Ct ޒ%22J~=F𞢢``Mt-r./ge={{ڄ S۠Sd+-..g֫66Fs %ti e~K(ri=say=2}}-6@jCnLN~SI- FII_fdl;yrM =i)$ȾO6ml L<ؖZ`d.ڵN~4qbI}gdjGt]Wnꫨ-_ fEF&lGt!=Q~~>ÍΛ75G~9^ϟWjΥKV%%|B|䍣G?`g8x?꺢5sh%%W99щ..}@ui4]k6ngN4I~naajkk;9r$DhȐ!6 ~ݛߏ[~;Y.=[wuaǜG~Kœ|Ԗ-WLLtχ &&&P?@U4~ug<>wƌq; F_/yyٟ;R-HIɽs'_v_"pbqq1Ng (*z d2mA ưaRSS[sp ܱcǥKdoٕۦ𳔕ד=$~;t E=8xprƓ'HsFʕ=j=L?uCsgpofdd """׮]133{얯~;o߾=zO444[c0 ciii Eј?5,gϞ}I3330RXX?,((?^5(2 A<'Mwн~駸`/P*ݐVЙ@qI$#vϜyBUk8߿O>bðWzXO?Y[[kkk<ٳHc0 ۷oJ577?pYw)H\.w޼y-jll0 wPǶ/\`kk'ׇ߽7'oTUUށaX}}9s t5k>-TmiiihhbŊfw'<ȑoXbřj+(JuNBիݼy¡C:(Ç66FDעx^'??޾~`fϡt%.]zPY0eǪUVVD:boxq|HMRM o߾;KLV5kÇGD?{V[HjjOm^^sG_b?х@ Қ4~:'wgH7o}tFpcRg {x8&ٶm55U @'366jN]tw,)#/)&ݷm4a  (աCƏo(|۷FD|Yx8!UhБ *|3g|Y~: [9wܹfft.Aj]tOJ&;υ {:}7xZFtiSNNҥO\=dkh}sgg:ѵЭX[k+*rs_3 ~55>kfojG >Il *L8~<5<>cttMMmc0 >ҹ/Ύ-g͊ t۶mOt]!-N+Wƍְ ð)S"d2,.nt111111w&R]z}]#۵Ð,#MM-5>}jڐ23 yvN%SD\:/ @O }|vTk͐ϋ_qVfeeN|}U1vlƍKhY.[w!1qI^xh͛ ~p9sP(mT&oz7Pc@%ot,g]~i!5=S}}ȑ{N-TV^F|yf}}-kAQ,=Ռih8;:zkfDX,3f>EQSK (.=z4ܹ4堠!! U+rҺrvYY='v?*Uܜ`P }ss|[Gz(˖+%%u7.XE{o9Uݻ`V>W^+ `oM={0ѵrr*\Ɉͨ`;;N1vlf' ֭Wcb6!$&3Hll OxBC?? |=H$e8*ee(!;JanNjo2sICɿ~l߾Y4+O'~b.G>=޼lq#ҥget^`[P+躚;k֡N߶+DׯjHd24))ggϊ4] PǧҺb͛ѣn0˯@Oҥ][aIt-=#{7ҥgP4\OrM#FvwdgWoڱ̲ @g=omrp9:XYh4@''N<ع󆕕aXج f;'D6vl*)6vb @W$6lþ}3'HdΟOON!TF5eGW5/>^ 3ɒ%^,ONgLIF]KRPP}ܓKM?z tsOu>>;o4wv=|(66С{EE5C/Xҕ1DVY~d޻QΎJt E#Gqcg~KS~~u@6 mAk}}wm:~|k)Bɵk=^hf?s怠T< ~~yn>].Wcc3=qEW)y..|5mZuur|;hwC@gz|S+BjRٵk`D;m0grݻc+.ϴsx<ӴinjqS7(߾^ k׎n +ԩ11O) xh}S<_ baa`kklcchmmdcclccH]2;E7_|zÄE)::矯ݹɉގ5Cܹ5oK\ Eߜ9LCCAszj]WED$s5..x>X/1ռӧ;Q4aҥ#WBrUXXSPP]TT[TT P116631+&͗mmBmN<޸1}k';Ct-t0 >>|3Eћdz*Ǝ ۸1p{&С˔r bi\$<=/OH//WURR_%ggM99UUID P`Ջ*+yV>`(mwLLR+.=r$tee4w1{X,3f:"8>x}a. IDAT蔄WVVy͞=HC~(0**؅5U,A2Yo53"I7nxxoܴ ;n\v n=lQh My3LΜuuA[^IOH`w%ooݻ:TXXs?|2}%K° kb) :vv4[[c[[c{{9-;s͗ƍs߷of'6ԖX``q⒎ noc_7@aXB«K_t>};F$ٰa; A5ЍI$2?&'=9x0Lwr?(JO/LJڠ=Oǒ6:^!~`3gi$YaaM^ |"7UPP-$>OAѻ7^54BBN>^|ط>>tNᔔ,- :&Ľ{ܻN"]oߝ ׬immDtQ(&N^9(8*jn'ܮkM=w.MYYiƌ!!4 (H›XŵLEEٙhDwr[[u^fdڵcc>p`N`[GSSxȐ_ǍsQ [u5QDע$ٳi lv9C-ETY{P:n\xB:g\*x d6,X@tQKHdEE5yyUyyׯ_3kRLV9:8;iЇi'0 '3cƌ~ NGߵfZV^;,]zӢM0r#^VTg:'䎢XPЁZۡ0_acƄYXPnz2gE\ &.=vϯBQL[[_ZJ͏bð_m&.\8}/I" k`[g~ @^8yrıcߎ՛ZO||?VT'Nv.'""qϞ7oqq얟73.<ޕYa`˗5,Yr*!aB,>bc3WTT3t>.0|*Nffyff޻͛* (uGG:޵͍ʀt}N=ڴ)'ϟ.lmp}o\|/wcE17u4GG-[:]nF6 wt80>bSRS\\Lkڴ 'ɩCTffYvv@ Ops3QRtYaaw} ~ZNZ =~nJ&--5kRG~KMwM믬[ RRrg:ԩڵ-;N>5ʪ8uaLS3.XMuD@GšʬJ vf{3\]nn KKhؾ=ر NEE5^^;NZylذ{{`˖+U_=tÆ1::DWD .iĈ]adlDռӧ;Q4aҥ#!P lvcvvūW̬/ RBQՕG);;c:0 [B\/K*8mzΝoo{> b*ʕc X,qqqO{xŋO&%m"]r))waXI,OO` 虙e@/˅B bmmt&D`gϊo\%k?q~V'dZ'ڙ37otڮ<3;j~f-k}߷kDJm%u-V=mZE VVȒY/lܟ+Ib<q95.|"s3..֣GW,ZD##v~p(*蔾Y ÙU/^|޴ALOiHIH QJJBfC^/p\ܮIp.pwQ..-o'ml4K}rrj7l0Z N|65=cg5Ӗ˻{C99cPm۷3{@gk}Bl }ōwtѡ%%WG02b T2XʕIv4t4 /vvf88ƍg$JKQQF:D.?1qLƃutVRYt)aNHHFGG弭[hh" 9%%~so ==4/(S%3c+7o6Q8hj^~2&ZT^laN ,3Naa}lb H._~LzlR^ٳY2p8ӧ]{]^EKKhbe L ݏͭͭ--m;k(ii^5 S…g""JkQ8^RT;.LðL@ #\rbg A:LQZڴt٤CZZ..ƻw/B:˴ͭ xXHh_d͏*.<4gccde -[n'%ykQ8-Z*B"#<{[UU,3HUUΝ**Z<<,o7Maŋϲ1?~:'ePd>dz,ŋ4mG>>O"#s_7ѻ|nbt7{nSS''#CCC.*j((]}kk/SWF:#\oT]~rՉj)$$̙?zzH4ر̃sPTIkk۱nNN݋Q+_F,vPtbb۷h@LM-te~~-+W(QA}L**"3b]89{y'9|.S_eey֯t!+5|,k++y~71WU ބt ij?D`ի)̛*şӟ>}訷e YƄ?|hͭ#͏lx-%:LA}} ёxwNxa KTnݺ} {fLa8$$7Ly{0~L۶֦qW;?xIkO> s[<`ml,-͋t(O I789gihHQJM-wtyyyO go^VNw`⊶m ޡ#tuvȨ$3 ۽;&&Hg ş-->z4Y?_}חvr223S?M}z>7NYYHKK\GGRKK 2hΝ33&rᧅWTIIg:PAΝG: ޽wrvm=+3_t:vl%Y~۪UYYÝ"~CppzFFƍWknG]W fܺF"'蓑o`pb{X?- O.Ytu:}[^HgAҗ/;?C$vvA{(q͛o~U+-m ϊcccZFɐcs`?"bPC:*7vhFj/%& :ҥϧddx p̱ 5n32>}j_˜΂ϞM:{6yfãGWY^|e@@ Hg OJUHɺu+s``hrM55&bd s!en/WY5¨ --+ƄtF28CÓff 'OcN{xD`"֯ЙI>mf6qfGw)-mZiPhhѣOϝ{ˮS1,SZQѢ%c)iWrskx" C_~eoͭ˫KOlh` 2FF2ZZxF =cNF~9mzm骯/td44tl5YCC 83͛iWxq AX,~ll̏RM߱[NdP8Ma85ƍ*))++s璇ԢP( \ /+;&+FFR dp}J'NicNgut$(q2717OfW<+/nunn0_AK+*j@ g^^K"#s_75-pTyyGjk޾38 # B9bV PRoJҝ(&&y󄴵%dtt$@P۷3?2No1 ',/#u4'w\/Py$ԯ_S^֭-`h==ߔ0A ܹl--=.c[[{>mvYf~u#8quu5^FH0MZ[{rs22**>dff֖Օqqlnnf?{JKXtfjK+/fՔRfl,{z0}Lii?g mm(T_N$h47X\֭ P8LhhO:B g :>TJJoTgeU߽600QGGBOOJ__zYY>ggcX䲰,4&h 1*gi9!V©O H`:=y.8xӬY Hg!"x8 K(#2deUm!PYY>mKMfȇf )]]M;;RS_pr$%yLMtt$(.70)`oG˗nNpD |l` x< @xi-,n2 c0t tvVi jmhpY^,P9sXV\Z@ Rƍ4ffz}}issEss^^p2\\rr|oLp$W00Y-/_C:]'$;"$'px45o~ d޽ @ asgZZEFFc1=#UPT3@YYU?n??(` ]]I[.A: 9 WMaaNғ`_-6 khljBQ..tt_"j򸸸_,ϊB.\H9tȊVFZZZ󪆆#Gx{{t۷o<~ÇO =1 >.VX AP]]I! ͛7… %%%:N[ק{i R/^с/4PPq벲/>xap 4b77+1 3o@it?'TU߼_7 ?yRtr ;vܕؗQ')-----T"^z:';9ݶ4yASϪ*_Xto~|tyߣP**F/DÇ'ߩ!/&&vt jo{(wӦqBB{/ݼs'ҹA$޺>j89gM{H|)bگMH?/ b` t[]CZւ vuuA"xeyyy666==W^Pq+={LMMm֬YN"mloogaaaff~.A||\p{ٻw/ BݺuK^^~ܹNs玸8UqqqLLLwu,җ>466633o ڶm[||<A#Ea IDATc҃/_dffGӑ{޸q#77 pݓ3g?w=|țK,,,{{(֭[?|8qf!ھ  L,.t@`CPrr-ad;wr2B q[!=eeMHvxmccP\\~Rf{{`z{{_AP{{{?##kךCBB0Lc0L$ů_ð⨷;N0 qrrz7xaԴXIIѣ^͛uttJٯ_J;褷?  ':zCsrjD"р5WGmgbss7?Z2{@I鐏O4A@ܱcʪ&NT '}X:cL䤹KHHHYYtðbhh/ BZZpbcc9KH䚛ISRRTUUI߽{0> H$ǂa8;;0\PPAPIIȷ2p!EG *BAH^0 8YQXLںuɥHb[n-++۾};iKmm64CeeFhh(ic?={n>}GP(ܼ zzQ!={W322hc=|sssP( &1ZJRRrF~J w+%%Hz, 0mrrrCQQ (RC󬬃{lmrs6l8w tF`Fjji`` VVнc;YVT~Aĉg\hh8CQ'NM6#8HpFF2LQϗ/_633 m|ݻ DK_\! W.]tx  iHuΘoLttt/kjjIlK  >}zWY#ee~?=ٸo輼u+@>r>XA'@0XQQ+&^%eTSy:_llB:Ȕ!7ovss{/ ڼy޽{cbbZZZye``#G 닉YbŘ'=XjW}}}qq+W~B-ZǽX,~֬Y#֭[WUUݛQ~Ԕfmm]WWgH{{{/^8?ꝒӯYfΝuuurppYÇ&&&VUU=yDGGGPPp LYBž;w׭XqQKInn-dwt?×>Q@߽G: Nps͔y8IgA~K; a,[B-.]RQQb0 ?y򄟟ݿw gϞ3gpPPٳ,Y2|gp8VVVM6͞=k֭W8""BRRANN.&&Ŏ<ˢEFG"())F vpp)))3o訷3|rgg_qrҬYHz?9 AOϏ񩀀6CdϿ;'f|xQϿ{```&TU=w/)}0G@=((u:v>)&&F@@4aҤ.]ceeMMM)i\\*333ɓ'I~jggGz APHH77ɓ':=Ss纹 NdWu1Ma r劤$''?3IN0 vUSrHf-(|7Ө s|璉k0}jkDE=oD:4JOCLp"CgW<8""b-8 0#AkI'2lor &&4(P848|[\|dž ϟ[T@ +3r2C.U@/=LC,Q>t ,6z>vXJJ i=;;;6ycDZZ@NNn-8NL.̏H N6VҸ|9ךgS:*ȈYDy徾Ēgsh]#+ˇt@`ʠ(mD( \__GJJ. Jl<HHw $UNwf`jj9y@NllLZl? )tӖgӻNLqbB(*"" c@PUUURRR/a^` ;FS7*u?nȍח^Zs2ffsA@ڵ ˗o5sQQ͛ 2-ΞMJH( L ؘh)BmOݻg޽84˗"""v+Wܳg%CCCg&Ǘ3gȰ#99YJJj'OD_LL,Ν;H RR< ޸~Ϟ||TU" ~~q?w" )~11#;NAvLo6Z#9t˖<}Zjt*QUU%)oO>o-遜ȗ̚5kŊQQQ qqq?{9jc6"ccnqLL㭱F46vݽ_+ndh` t:'/]zk_?DW;8!$d3 b2Oڑ2h&L W^]߶I\>***66VCCcbbbYBm!c.2+y{ }+V\ܷѕ+/⊊?NP!!,?rcGǀ]HG8th ;Uvή͊tFIqq>^&&MM] ---_e 6_jҬ$rgZ+ g֭ZZZvs'-:r䈷_m۶{rpp>|`[[;Zcڵk׍7F.26޿_EFFkmךҶ>0 }˗/cWXgssuuu!rvv^`i{{{///Q2=/7rS"_Q^O71s%$抋ϕ⑓㗑ISR\EJuVceeaqhOt)cfvb^`2L:Ndau37GPpF }\QR]ZQRS4嚞N\|4,$Ϩ\s /MgspMUS64GQ""\ rr|bb 6,ɻ&M,Y V`Z]b^SMHbD"s=YǎD0 jkk{5? eٙ?/vv6H|h).n,.\\X]J$ 11nYY>[[M>QQ.YY~껙 h9s55ŇƮ>{…H*eeddxedddddx/K 5k׬ͭr%߶m WTs׾\]M$$"e?[nVVFcHHH̝Km[{37W|D kk5655C$$4[QQJEAAPQQ@DO0"c$ѡEEDEjkJƨNؘ*+ ϝˆlx`&֖֖(+k Jxl‚_v 'vű2Q_瓏Y&&&&&&WLKUl;~l <W\|.ipPaaCnnmASYY5445ut$45Ř L;ff''#;;7^߸:""lFIKP#W-ڶ-˗shӧn4+/ĘB#@6=odgdgVVѡuu%ϗ֖Un}}_t]]I~F@ڵ ˗"#e$033}jSV67W֖QQ.q񹩩pFsr28{6yϞog?JCC\F lؠAP[[_NNMFFe||s ZAAPF[[\WW Vs:ddtlk^,SN<} HgJx<+W#N߾asrj33++˿(UUQkku]]I ] TMSZ͞rO/`c|\6sQ$6++U++U߼~&>+/Iw eeTUE1pэq99\649vl%B(Z<<,2}S; L-<}CFFeFFe~' +g` ob==)VVID>88KP, m<OZNF ??&A--=YYUoDD&1͟/ed$kl,+!1T wNM-󋳰ܴlphBEEKxxɓl6m2F: @ ߾NI)KIm\6]]'lLLjXX_7%; VP H8p ɓwg؉)1\Dw'x{?aё4417W@:)05LL䍍e>}ӧs' 4hW?wc޾=De!@Nx<1/իW>~NOOjB 䤥y6c0萐ӱs`fBsq5yxDTT4as9h6xbQQ}ZZezzEaa=++ *++ SٟN- )44SII!%EOήEeׯ޵TM$z1#wPL{BOf IDAT̟/5ݭ.?q"30A)* >{;44ԩKר `0hMMqMMq7oSS< L;DTXh~bŅutqpG rCǏǮ]NmWVnΤ۴ %hy,9,?##FKKPFY|ELLͭ30&A{|  nc`ؘ,,,, HI)KI)suC$ꢋ)Z 91II+V!b rϧ|Zt)64ڴɀesrjJ:xx-Rrs330FdqL.iip~wD#G} Z$t(*'*dd))eAANx&&mix9 g$މ;yVH45P8ӧ7ӎYŊt)aNO &^*ON.{Cw7+,,TUE?16ȨB6@P(e<Ls'NY+W\N ߽OI)KH(v5B̒%`eagg:~zrս{ڳgѶm @_HbD"|FXwlffU\\Ń8%%-[ /WN'uVFw7NN0mQQ!!ǏǾ|uѡĵ\FWt^6e*T( %q II je%@J^x -험XS1Ao0:`Ӧo'Ǐ[OLa9&H!T((&fgccY@JJ҉hi _LΜ/{}jsv6ZFJp^^Yj "wƍ!mAg*/_?/+ڰ!}2U{{c`d9Lqǎ;W0'NIOHJ*wυ ߾ihXJ ļ/)iശְѐG:b}NTa`9c"|PtEEsPzp|$̓iʏ IWWZRnS=}}nnwW|Ֆ-?Y #x{G/[pYETT<57 ᬬw&&01[X(yzZSٝF==ɷoNPGG=yy-[B/$,<DHJ߿duQQ~~qG<56f nnֻw?rXLNNٳki62;˿45ucTwѣܛ7Ӛ][d2_ eeᄄbA&`89qp0{zF_7j094<ͶmzHim"+˷m[xkk͛YXhw%(jpvFuu͛2RS˹XB:0yMY`0+Ԝy0Z VkgС!ŋ`K(/YS{!!%[ZsqYVBBlN˗_wo+ ko Lo HgF ʁA&'\yiѢ#GVUAtşP?SS]^(۲G:{ĸ9}ڶuٲvvA))eD"t4%//_RMMqN;q" Өo0?|*YWaa7hDN>y{vu99>/:P8?,T\d!zKZZG?nuB==={ 7kCX͕"*  'ݽ1kL55S×;HN.Z{{K**}}\ ' [6?{Vàvl\\{X>ujuvvI7{-H! aaNBk^ NH^, ᢢ55>h*(_ٙ{RP{Pڵ QQyg$" {{̃nmh61߰!| }XȺu+*j@NCmtiW_98L 7 =x-%sJu00`Ac=,,ΟOt`j(ssŤ$۷|ڷx5k{Wt.DEFzs3u7TZt^rvv&Lzz:EEAQ^%lٲ==œbbv"R)+ @ڵ:w/NK@: 0eP(b|0eί[w=/\ԏ><ܙcֺu{z!g <0 Dh  %,ڵqqEٔJJT{Z._ukǏHg|zlӧnqŊk\--mB:cggwokЦMm4P8ѣǭisii0)lbfvp/R}GGjjΡ BΞ](y-FhkKDDl"% tV||>|ٳY( 7xTUThnE:{47nyTPCV  @ ==ݍ..X܉:<~&cS=jmE:ՒqcCll͛iHgJ H{z.F:~ooA:vՕ+\\ٯ^I#:ɉD,4ѣ/98/]zIRXy{!͍V]>w.8@PVV+?yR]i);;3Ѩ}URӓD:@I*+[BC3O3,dR]A$X>8!""̙ad>34D6oB&oGss.jHuuQPS1 mkeezVƥK/<޹|&zz:Q;LKJm KJ@:CJXN^ S[#(8 4'%lޏ/W>j i%+WU '2Y5DO"sQo* wHgdg{[{T…SSˑEmP(T`Zvvmۨd,(?ۚ6qqnzˈ+(qcHV`HKVV"VHI9#\FD3ȩSYYv<Y.{[]]nYs |M%6676_,Sw_ܚ5Hg!گ`tvxxDXq~G&}}2?jc LRR,,W8ffVݾtL8.^t쌏ϓACQyyKr '2?}%H!6P8 ÑyƧRS?;g7hOfbbs!=dJu"q::7LUUdE~~quu_R))k<)02::N;LUUEvG@POگ_ob^^v[cc()\ii=<\ek摟'Nd" .:GHd$nnfҼԙ([[t/ssEw֗SFn JE:@||ŹׯG:}rlz{:z>LFF%҉(>>G: ѰXoRHgAiQsP8M.{랞˗ed?<3=5BB$]V6*{hz텬2cf~d)ud||edDW:2u0N_ɿ.*jT^^P3991^YY:౱04i.8xD ||^ȋ{: @LDׯtÑoP'bI#F(7Ǩ (N%&f߿v<<{[YYӯkhZ:L^^ 07ȜGbfoo : NboA.7,>~یk^۸zCLgII酨NTm{{uPgA^JJu hM8'##J$r ~ᔘMTTjU@AP?3323N'a&(ٳTXZjr| }Iq198 ujk[ԤQ`U;w޾u땛۸;d?KRRh(--mkk  aرcNJg(U{FPTƎ|fFMlD-7k\9րUS[++K΂Xcc/,);luAA+&M:- oqr7on&r ȕ+srf mT* ^vŴi'UU%㷏7 u$$p5b7P888߃Lnsz28faj 'ݰa xQ_,ǩ;55M lN0x_.11۷YӧOon~~X ƍʡ;899xð0ŋŁuuu55}[zޢ.׏5*--?==믿55/_qN.]Zim[ضmapӏ|Az ' EaawOI57S0 7*OUܹa8 R4 ez dޛ^z𡭭msto ݿb>~Ǐ/]/++++++%%aqssc&%%%++0a„p55Ǐ)ϽE]ڷoǏ촴fΜZXX/w*IJJ8`3:0pyTԛY-O]UHJAp錝;o::΂# 0G?:800%)ل a t@&1 jllgΜ677OHH ݏC{\{PUU%((ѣGc&++܁JzzzHKK{zzRT ˗utt:t5UUUQQ]v1m``ǧvڵNbxƍqM4I[[cS/իW(g[[ݻ\]]}Sߢ_EX`"IAAAOO`Q?~󾾴.IaVPщcFFnj?Z 335u 'o8 :b! \]:mw))aq@aMhiӦM4i7o ؿw}#999GGÓ IDATb qd ʘ??~իW?anQjjC޽~ݽ~[lYcccc1͛70gg(0 Q'Nܾ};&&&!!!;;y?zǘjjj ;fhh'GK!P8>6LR3g~"uА˫@DF`4{w8 ''u|Ri6]WRt,md0,z܍L&+**ٳEWWʕ+;al?~lhhhO>e`0| vii)q\\!0 BtzS]]}2Li4Zc1dTUU`01 {mǗ)~sذawanqf]cOgvVVVvz򥤤$sY K1Mzb׮;vJۚ5WDDF_r6ס9Mo:n! fqq<<&;CP@kkAW8Quw9pabbbnnn{cna``} <<<+WlhhhihhRU,--nֶyJ}}Çϟ?FĎ=`AAA//yY[[wsСrrr:wƍFFF\\\= ھ}{QQZhh(Hn?֍7]pX]]=44ƌ|4v$'Onll2eÇ{L]RRR"""wWUU7o/@- ##ZUUFgf5d2<!&(2+:vFEe^kd'44ZY/zˢEhk]R@kO)D3y.,6{Yѣmۦ_J>T/+hӊC"#7e 'mL22mNW)GDl˫7>g4BBp5@%'; DtمǏ]1B)$dL!p{Lns@CCM/_ϿX_cOSu^k2Æ.X0u\>_АX 9 Ѐqzl$"_Qaak-\u 茧O޿&'9 _8|7pZYYH-_iՉ `%hjʄϯ\҆:\AB=L uSeefv`/^(---.. 366Ķo>8Nijʄy-(3(:y2iAN}0wZLLuГUPP0aBxx㽚VRRСC P8~#ʤM3or89ssQgC3݃ BC((k }:ad2ȑ#fff~~~ldudr#mMfwoۯPgA J޽NNF<ڳ'"!cXZUU)YuuuB99V[[Snݺ5|7o а}A1 wG/..f#z``Y3ך-[BUT$FRE z`8{6uG.=|9&&pz; ̯#))`0 LNNNfnyݺu+**jȑO:thfff޿e.g9a>fVV?'0>nܰKJȨAׯ5g>޼VQ`Ξ={ϞH//i {SYYYVVVRR3f0sL//ϟ?geeٝ={Gڒݻw/[}O_zgdddYYYllsπsnܸ1777--mΝ .f#mmmkkܹEBK\؅qq '0v{׮6m5,Ԙ1c-Z$$$>$WXXhĉ#FQ#<<<...fj===nݪo߾ׯ3\re .X`ҤISLf#0M& %(f LP pXϟgd^hll]$@NNȑ9S_- _|[444ڟ1a/^xbO0l֭[nc;?0l9:r#}[-כy1 kllh)+Kҹsϟ;0\˂F0*+S05UU`^1{E ԤԤ[kQ-Y.cjjbj`4ltZ$"KL9~\pD '0 IX@o?3˼ (nlfDcce}}EQQfa[-2'7neeEG:jȑ*Jd>>\/BXu4}ۖ| qJII!Y(,JNKNKN77Pyd~S54TF!,00їVp̣kpUѣՕ ؄۸u>ʼ 2(@z5);m|)+tĉ:b2??|6MPh|騳p(@;w5J}Vv%"1u_]gϲ1 ;{6^EEb$݃g 0<>>3g!p4nnoؚE9ׯ'c`i9fƘ1E$--gӖ-7f064o$NܸYN!!`D褪츸Bch`v萋8¹~O{~DPzp Z߼Yvbb ODR9sLoJ۱ֽ{k@Gmm1KX.: 3gdF&akgk SJpad,2n P8~SkIGׯ5{xLEQ\L~S\O躺 ˗[9:jiɢE"qhP8A?\'jf7whkkk9Ӗ-v}7j(b0޷uuf6EQ22E!GÇ3^*㶴ik'--:HRa^pqtBiKJ})G>cVP5M?` ""|;w^JUWpP8_:%%?:zܛ:,ʸti)L9>~,w/3&&ӧRII!;;}chΑH\0TOD.$S;҄ &h:ό z!,gkkckm=ns<;tŋQgapA~ICCoa}Ɂw &OC K"#dTʊ43S#PGMz}E &;luq19&&3&&kBBçN1a6FވD.//K/zU0j*8l 'KNxLݾ} _=;11Mwv*""DFͭPR`0H:YC@pj(jUƗ޻un>>nfecǍ:#z&&ntGA~^AAe@={KHС{:WZZV ..`pU(Y +..deE-Z̪>6ݻk^౷ן>J zS$': ; ~.p9 _?ffzSmmSDě;w_*2\8{zIZZu21&&ʹ :uĬYvbn>zq7n@4p?)&&ɓov' ǩS&NWD6zB[^=xH䲳[zxm:N}{zC\\pB _GD~9t..&CJͶsOK+01; NgP틚5kN^KM͏X:Ue7oy3@w0\:N}=N:Trf͛m߽+ O I9q"Tu\3BBge5rӧ]uO?"wt@ΩSqch~Rmm!!)ߗ *h(ee Թ"`!h4,))x{;&%ܼs;n-\hni CXԆ ,S): { Ν߱AFFu/]Yk]KJM~yn&5mLSS#@S_ "XYiYYi?ΝaasWQpq17LNN u@7& WS x: { OeV x*9~6 ꚣ2UKKv˖   NgiQDE.\ӧ+W?pҤᮮ 5X@X7zǎ)₨!ӿNjkWXV~mF'O[CiH$. `:mmݻ;pF=z4u4+s𐂃_ž Jh] {/I$(A@Z[""^_ݻCCe??g''#AA)sHD.gt:z&::::W>?uꑝ>stwf!(@;kMHjA0J=񬼼.8ŕ+Iuuvv~~0k-YzFs%TOO3缚Ԓ% Atm1,))J uvҚӧmh4u;Us皡RYC.Ybhiiaԡ^HDOPޕ<>y2ut3 #^ S_{쉔Yz BCS GΈ{xbӟ?;p`VJϖ-j\t:E&BNgԉ‰_ڽzS}VF t6ٽ{YՍ(@<o ^^56d͙c:Ws3ʕ$KK^/0 IDATp9 1'Nޣ|uro.'f</M3%EFF{wIQgxEf0F`UW7$<#M3zu4PטΨTLKt:u4wܹfϟ%K.ik˺[OfD"q^ddҥxL ҥgyyuSQQoƏ9+)!;F*%KZIJ X2r=6'XZjZZj~Tz\M\9nBs>>n8ڴiK^.)!+(>+ЃOTSBQ]]sbbA8Zq1ycŽiU%fK9^K ֖;ujARށwMM=[W׌:0AGD޽,A NBB|֨-@CCw :q׮i;-iAHD zBi4dɻf6x񉙙ZQDɓu2Pa+P8zUp֫{uEDP8]-,tĝsLh'(zw"$no>v졅Łgmsqѣ?>p]i:r供xmm9Y~>\^FFuG҂_ZZ믗[LNL9g) '*Vkk/}}Ǎ;}:O|']еH\6ؠp-!ᣵlNgDGgXZؽ;b\ݭ Џ`:P` ##; ossuwk' PbsZ޼: t␐'tj8mAٓ'&L_.Z߼ V*84yyopr:xq@aaPlKMMJ^^,99u6`yXe cY%'𐌍UPaOU̟QCC̒F '"f /Ғv-4tMqqqm u(dj: `tfd8L ;))0f55Q0??28ҥeCJs~(zFPa~`e}fƾoy{ߙ6ݻ$$PbZZ2bbP8: toHYf\ed|a0)/)LjD[`9;0qbhkƌ]Clju6*u+Wxkiy0 Y O opht:G= Ӂ{W4dUII66G_8ݹnpyԉG;vdӍh {{AB08 ݄gtÇ<%(N-?q JPNxhiy !`޽+Ӄ~Iee UWNHؾbX.. ..&DG  đb ̡z4@ ;r$pAXN-3Kj4iX۷zzS*S\L90 SWχ_=+3}f...b@-[Ц,!/B]]u @۝y. ;͙c\@SPTqz=n !dŃ[[GFA5KT2O‰see1e$`KEECJN>t*,,̙.,emM'$ćaHuo{۷F(Ԕ<{5W7l &*VYY:k‰sPhD"G#F(NXׯ50}v>|ggw M1Ø@ h Ogg\ѣ`ʊbk 'E?~a^TFԉˠUȔ`Х6ݥK/ a+3q!)?ⶊ Lz",, u"բHS!.. '`=.+ v׾~YǏ_O^0s& |b1JJJŨS ) ))@D~0T_o^ow}|`qs%$JKp*..=z lgaQa /_0qnnA{hhx樃 :}lohhmmm oH$.o!oXU{K^8a:tkpo0 *]b׮;ǏAѣGIs>Mf)le;c.-54TF_ $P`mЕ 蛚&nn"DFumsj]1ﭗIqJGG}MM3N-O5NڠpMmm?8кl倀g,ھ<yxHRR_bbn[lr` i'**P[ /az\m©]aauu-aXlyy15kϞÇ+xz=::z""0T@oZEDP)S z@',/رٳMw Q_߂:z0TqVᔛҥK{c 0BCuuu===G!,,lbbrNܸqЕ[n;f322~5@Z,>GV}{Zg#:@{I YAnpbZrs˧O?KZZS6*ĶogEDDL>c1x񢴴800ظ懳&U}}Qӽ/q7''/^`V?جO R$yxt%?XǍ:#:ܺu+44t{s9Tu ::r(*PADzgN>|hkk\:۷Hﱘdee&LZIo>))Ǐiii͜9355000nRRRO{=6 ,ů\IZ.":ZݽlϽ9xPRCXҐBӧ:2<@XzuLL̏&Upp%gpp0=~XYY]?߽_`aÆ˗3744yyaÆIKKoذ>|PCCC\\;5AoP4Nq:{͛m7s v=l޼Y[[ͭd_/:h\lmRRR?Xڦ%!,Baak =gq pe"#mb su\]]/^\VV&##`0.^(--}Ν_(**b|?YlYqqqpp0a ׮])L_|266ޱc0l޼yuuu͞=ŋUUU544^pҥK$㱘-t|iiibbb?c*i[$##|}||<3ݿ-]6S *`0uuut:s[[d ={tl{Sݾ}˦~~7Xߧiժ+Q@N{{VT~%,LNnSdTG0,44}xxa`0~w]]ݬoߚmݺ`g=55_NnSqqu/xC-Y0l؎W QgA <<]Qu.]qs:E?ID& ?%uuu\ ((XkkǏh4ӧOgg.¤]ZZ|ghh`00 {5P(TWWsss9rL&zXn .G˗/%%%OWNݼ-]6&++c1eʔCӞ'44TCCfۃ=y`0ojg:5S;~ 4pe-wf_8ɓ"""_|M׳@ vn>|he>}l~NrCIKk'G0T011177߯Y%??а}[ζ9r+WTxw1')((`n0yO'$$$''+**7.11c䨫(jdee.##cȑݾI mH9s;w=z`lV\\f1 FtPˉ'Owp: @8֭322Zb5C;m@ϟ?uttf̘ {NN ei?X2f9tilR89sfҤI[lanQPPlݷ<{lOOׯ_;w166ή'2ke(LNNN1mss3Nyfuu?8Ï&Ղ qF< }z[\\\,--C\_b}zĈ `UWWS(} _~v98vؐ!CΝ;7o}lOL̖+xV_bc󻹹oUU=,+m'%??+WD%'yzOts: @EFF$4t͗/իW_\‰ ƍ4 .ntuSUUĉy\\0038 `Ri_‰] *;opS '荖t:Օ<p!+36V9uj_|9u_P8?tƺuׯBII9RRjjR0b۶){Fp 'ٳ_ .ݽ1y^v~UW{XF p&(0,99#tTPP]ԩ#P@ 81_D *:={ٳQlMMT)Gc#OaQQ@8QUհv tV: @nBg _J zAxx""Dbg+I ?!!ދ8:8t(f׮i|{:`knY__JTiiᖖnf񯵕T^.@t 0",Ó%Ng_L"q<9p͛7N:,*nm lռ Ds?9xULUTUDyG=~6l`C$ N#ww`CCeGGCq@9SiioHQU:uD_Ý;\||~do?[j****p!e^T11YbǎC;T*-"KJNNF[ةH!oװ@jx275 -b"0|رZj?schј~L ot-[n(o`]x/8xd\PPѣsG Еھߗ+D'**`` ``qckk[YYmR*11;0aINNc)"&-$ċEy}};WtFLLC__5t@Lƍf kM/))h(-IJMJʉNL\ IDATzsc>>QT-,4,,4TqTVVAXoڳgzJJG͛)` 1*vrq<͵ v7n^_?9!!)/.nMNγ:wUGGnmfƖ jhHkhH\9VYvbbٳxFjckgNguT p7z*?ۏD"A^^l|a.ϟ.. cw#Md䃀ֺ66zpJ;wZMv "UFXg؀‰.6oN⍍]md48TkޝJoM )"Gu{)U^^K8y*(fk+ӳ] SZZs纺JzzX'b(yaaOU8'ܺt<<3F͘1!gϊ_]ȑ ]aֺ捓qPlK^^t* g/M3n{gi~~|cc ?gJ&Of%A.S--IJ΋;W܆ ANs󔺺 6}:wmsEEaF Snܖ u`p&(?~iZf QQ;ˋ\\8dvY?{V￯uEOOv8X,-[7#.ɑ#_u(h)=զM bbWx2dD⪪R99EP8q2^~,kpsy";T?bt99Q)X(3`VY+W1kٳwN Ϟov̬ uWP{ܽ.)֭۷_24pxs1gqcӴYD00~f{FG?Zp eo5rrl:`:T7Oۗ؊ Ƚ{)6OJ3`yg:M `-[>-3ؼy6S yIWHa~vq 715(nx=JPlܹcML4xKgk;>,,;(fHrF‰?]_Bk//: `SÆI Hy)0i:~ָqJc|\(}!{"tg.ꚗ/?#!!lO0?e.?k\yqg _D`u8nzSw(rX ӠHGo;ibDRRD0y:77޽ : `aTZ[GOEDjhhAYWEE~C>~u曳g,Ojhhݾ}Tkm*=~y}K[iժꆴ huw7qw7yҥ O&MR]DRs3e?c| 8 NWUi^GG5! 3qJNNNxx1z۷*2橡C"5 Ont v`:WKN~u z!Q/J._t#GG7ovi,-[ Ӧ=pq֯7󛭤$u8P8 P~+#H$rr:}ёɓ9pC7OEF)ee)a6O^E[}}s@@ƌzeU֥xϚ>N4BPݼ9155/2uh 7mڈiF6|x)uuŋ'ldܱ];s= ~ukɓ=cc{ ~3,syjt< F tn ˑc;֭7'64aŊ}?^gkk]۶]r LZ77xKtÀǎe.X0a2G-x.'i]6c_A?m7_{ֆ fHNNN Qmjk#Yөy…fZ䐋yydz~**opݻ.g̘[ 8ay]=azzvzƒ&8:Na eo>vw7: `?NNg?}q;*pFF#rr<y*((ʕS2222#Fqc6IKO&Ī}4iۅXf?nge5,Xh*'O>;w+v׮+;;OcNDHwѢ QQWߤ>©JJ*NXǡcc/7瀥u7zj::FFSQQuuM[uGo^}ViSݻ&a<ѐS ьqDVPв nyymdègܱjBÔsݽX,pꓧOΩH GHG>bc{QQF|o?~TdAxy >\dݻSa^&NT'OY1 EѿJ=s/bdedD6mذ4%ehhάYڊ..:`K]]z$ըP8q(z7L+8؎: 34' '~bbMکjB>nnӣ>sMݱ.%KB+TT '8z} Vu#&O`~~ u`qyy/4O߿lf&(+K>~ ?^9txt*6|"$Ļz˴gY(ܵceʔB׮];,8_dXgaccJim%r=`K7n!hb͖^Zڹy*"WCC Bm1a$TT`F)#'OV:fU?u~~ukŘ:dE^}ui̙i*x.Spb{p㷂o-]+56oN| ;qL>8O?}"m:T yim߾YZ>l+"'MR|EK oZ[~~ OͼgNps玝=[ʕAAƇuTU͵㟔π Сk{稪 AEEqUU"(hhhyCc6}oOSRzxTTa{WNuպP~3Kϟ_x<ׂ㭭uSSn\Xg8H~~B{{:_<=/Y33E16)ڲ ݻH3f:-ѰyJAA !!f`ʒrrpzu`F7g׵w,^|(wr:?kVDErs?ݹSTVV{$0x3f A޻…f)Iaa~jÖ-s܌ؾWL'Ǐ?=yRlf6zs!H䠠AAffciiy|L|~ Gǩכr#I"4 A.lH8v+a..ҥ>lm%RO:w{s1XRwRmD"#<ի#I$rrUDH$raa)]٨Q[jjx.2`Ϛu_s4(w)ֺaaaa9II6m2_Xcorh]Wu@/P8!mmU"xx?앶P~uvvѭ[okx)=|H$ XQiiͧOMuf橨fA.1iiaY+Pa&h{ތr<xӧ L&_ xx22cq㍷w`zѣtx}|ܼ9)< ԰ŞF~NlH{z11ы_]]x.͔~;=yR͍0Z S~&RÇ0L]5{zdgn6oJCh(#uN{A!ID$3VD뿫涿Jxl٤={?>nv-yi#y(S_Vh**kz岲ZGdz߿WƮanWkךp:()IZߟޱG$rlc3{V_ݻ/5)+]@Ç_P5` ;۟۳g>3L+F)ܾ]u @/X8Uk!-=,LDGGcfp-uLFEEp,tH9SZyoߪ("]޿/߳'X#$ľ>f>U J"!/t鹵8sN@ 33 /SP+WFʦ6RB“ tuNNN̙~~ӧ:xЖ×0MM? P|%N,[b A2"D$U ##<ϟApޕ:;XS)+Ku23%%ʕ^>ijʻOJK EiiOprW<b2b b^w Hl㸸S͞Y@M,Aya֏gFƷ׿p8(774?A(Ze˗:,xٳ",ҹsz{ǚ YM(}${)]pVᔞi=ĜFqUT|CZZzԨQXԕ QN pF;?/_^)+:># %"b ݞP%Is˧ZZipŅKIݗ/mmDO"QvAӽ{tuUmm2XyeaJJ11n_o6 SNxOiS% (O`ND9qP))Sc@/M0a.zm\B;ܬ@W OI<˯Xa:C#R[ۄu@{R84~[OO W''^_GA_|I ۟OIIy5 8nfGp?~?lܸQEE;wlnFJF5Ͱg{ݲea#cbVۗs <__tXٳlO&}1wؤyy_=gO Au\ rrPvuk><;;ח9888::<~C,X|]]͛7A ۷oڵk_߸qcw[󇗗744ܹsϟ?7ϟ?(X'd6oތ ޽{;> HQQ˗/QDÇPtt ^^^SSӿSǔC .>s >s挂BFFFEEEffzÔ,--꒓vdϿ7o޼y=ZjU)PRIN~u 0XrrRR^̂a6QV[0[[[[[^_&--}ҥ?^zuСs`sl:gg߿GGG#/ v@QAK՝={AEՅQNzT d2YEE%,, Eѭ[=]ϽwܑhkkCQ4::zd2tz vvv3fS~~d[hCw>=#]M(;e,˗JCc|;Y0&'!#5A:z=iݺh3}|q CjkkwNi.'-05j]Q?NCC=< XBI֮ZT![..ƻ?>>OJJJTWW?7 %%%gVMMMd2911eܹUUUT7077H$"ǏN644ܹs[SN~fffwCQtٲepf͢NaÆoaa!]Q-)_ "{ʵ'L+5{2`v]O gxjiѢE/^8y$ɮ'𮺻|W"H񁁁MiӹA[[˗/'$$L:/םPϟ?SӧO v]75'E׳}_>X77>(hʕq0M9`?R8q75Q9`d2#66֭[iiimll|onnq˗oݺkݺuin̒Z[[nbeeEُ( .\;~xC9nnnڔ>>>222_,X6qDiiN{(@HHaW^Ç7nܸt^Sugڵ6my߿)c(Wg?~-[$C\\8MkEeȪ 7%%,##24---<<}F!㥥;2))pޮ^Y>3((XXшcbuzΝ"e6\lqr^ rlٲl2SSNjhu5A9pBQ… ^{ǜ#/Νb06UXoooŋ۷b @K<<,gg X° @G͟?>ʕ+V9/b `AFVƿ|UII,`6mhmm]QQV]_FIxx|&TMz׬YclluPIó=\M`8~!C<=gbA‰[SSٳ+qXgG ݻw~m%--ڗ'njj<~˲ea#Nt DDlȨlPIó=\Mf-[$܌qJ ĉ*|: VW7 7;ɓ:2yيSڈv -]: 8 ]̴ K?}u2;0]]ӧX ʕFش)15Y`rT8IJ ] %!!gi3gVpP؛)ѹ@pPsIJz xQ",JP8ZڳgKxII%Y7*qvC0 Q]]kDrljh l"|F?BCCn$ճgN6p8Arrr iii#ZδQgAx|\\ρ!C jj2QaEPLfq;?jBAO/؜ڴu%/`7Y [(p8k^--Dsԗ'`-B'O.}0">YN;(7[ݤM;HKK۷*L ENz ==ѥki5Fii 77^RR&{Cdk׼lm'YB=0iݩ_: =iDiF:t q޽+sr:odo߂?5J WPFaauWŘwmm'p?ɉrqr+^^ž=Ý ߼eUݣZZXg[[8!?")- 5J.,̑n<ʒ46ٓjn@$22|^4dHhUiimIaf7tePHH 59.8xYEE}@GNc*͜9СkГqɒPpLT@vv祦RQ~\佒jzCkӁٲ244;?Y 'A|}-^~km%:9kjjq/^|)aݺh;0]ax&3Ct2KL\m֬˗L9qzᤥ`i? 􅢨O۷?##]ee{襯w}gdtgά uB f۾WUQ7ٳw}8 p8ܡC ? : Tpz ֭߾U$@G^KM}y MM^_"%## O3GG}$..|Wf`KEEgV@˰@gP8!JJnnXg{DË GqU<@T,LFMv4!q;QQV[vF\ܚgϊ9ZXXʘ M9Rv׮N 3xa">nޜmxľoel<ÏMM ƺJmْ85;ouݔ)ׯ{ ZZ%'?c\w[ǀ@ "(?'&&[X6hݻ2gk{{׆&&Z[ILy'mm,sի^[Z09!=|>MJZ0#fǎD"#M6k֞=$utw츌u`G?vl׿Redn~KlٳbS#7}}ͯ_3f(3c>ipbmtgo۶WB/(vѧW_aACCpg̘1*3 'A}ҭ%%nڸv 63~GKK[_ZZknW RS78|8fӿGK IDATٓB: 62uw*/Z)"2I fGuAfc9YYoFG?:x61]EE 0t]45_>\&8>Z$ؖS`jr,p[-++rm߾JJɸqJ⩩y4 Z**==c/?;}{{x9z~Gbb11\]b7mJْӧsꚰ@ԉڵ3obXU|М%j;wljKEi?12:):zUXc1ϵueHvva X'< EF>:SWkLط/ <9sۼyc|}b!5}|,gbu0r>?_7%ųX4&$0ٻ00(:޽{~rwaXׯ]\gkAjk+*+KXBZZތ+1q=yN/~GZZ Wzϙ׳+Ꚓb(cn@7XqNNNq;NWmcwsNXnŊsW_4Ȏ}!-=%KO]8,\8!$60u/k u` $yڨꆈWylSZZ޽+MJZ{"~'6// M7oNܾ2̉՚5ӿ~}Nu22[9}:'?Yq4ǥ(>yṽڕbm_p8SE65A6*5kw8Nݲ74I;&9]q?(h"=lorShhj}ae5.!=7ӼyKKkhcO|AG©[8AO~={,?/ٲ%yyBB|l5:5/ Ma۾0A%-m}KKu0jCÑϱ8N=QUyHFII%Y׹FL=~G%,]~m晘;N'Lm_(+K;_ gc©3}}9sEAK Sx<}/(NN~v-GaMV1C33s*X'Y/DEV[dvvq`-Y_VV!80S/Krs?'%=: 0?,,Gc *6k֘gY{t{O?tƛHj^1귽p7o܊gSR8h50*V]vk©wڕ IHx|p//^d}җ. gj:DƜ@ Xr{TXXq,Z4ڵfSM:0{ߟe̙vP}}UmmlV^jjz$*O:@0귽p۶ݽRK:sǶsr%N}"$lYuXII[ܹcM|uf\];`D"9$$hv։W WWÀaa~~<.7nۅXuf}ITThlluq WTXϙ=bɓ[ׯ׭yMk֘0ݩi\6j~yyyy/ UTII {XD_\\-- ` g4`b~EQ%S?ldSy88RiiMF7&3hpkM6lݰɿÊ{}eUU̍jjXAnn.E(s@TT߿6]<33W's' CR: 8pɓ ~?~ ,ӧ$'? Y$U++]EEXU]]ڵQ>>K觧o`Ѫ A !QE[[IW"/^|au:Fĸee].HEX©Fݼyѣ7XtZ'gϊK3}1MW`;ϟCT={ssN4(S &C pM2\GŚEE*\6mVU8x$NP8ʕ#׭nhh: 0Hyyʕ&& ǫI:t A$2G31: LBYH${{bxZ4I-:zۅP;5_(IAo8ȑ55{a)({3 6mw۷ N8sչsN,9xWǫH;\::jD!}}՘Uwom%bդIjD"իX 9rd 33 tmۥ9 actug `W?|}MuΦLQ73ھ2V ?;7(+02uN+\C__ (J޸ќZ0A%<%--od>V'xP8 0+Yh_bhuÆ6ĮX155u=wd",*ʿh0ΝVګVE@3:TǏjSžS1/Su 2&i8A[]\ i/_~/-t)111110ڊGYR; ?prqqႃ/?pU/yyQSP{@-Z4++0ƣGΞu:K?JY34n]da=/11#6W]!'V3=y򤻟rsϞu kfd0G'Xz 08?\\Χo:Ͻ{n۷@[[,~iJK?HWEѓ'ooi9ҥurr0dž f66zkF: 0}})‰.p8\PR%%qGdz05^}aʔWƪMqqq!YٳVh4j׮>; *+|}T֮;uqRRG8䭞I<v5V._<.-%%b׬YSVVF6t<&&&>>USS333##W tB__;77{__A(*11QJJjف.\3g\iiis^paP[)**8~8srr$$$]\\z{{<8hy"#M%%#q``q";CCYunnO~; z{.HJ򺹩Ý\ܳp;$$ܱLՕra, Ꚓ̜رJ oa``lٲOO?~@5443<<%%%7o|a``g^^˗/O8q殮.CCCGGǚZ[[wuu ֔4-((xٳgN-((7ypmܸM7΅C M:N㣳vIn-0U|}|i`hBFGsscR5wtpfp"##KJJW\ APTTTpp͛444F==/ 'A#\xܹh!!ŋcXRX,TN++V(ӨmMoo>,KZL5pBHHURRRF8H{l\k9P;^~q4ug;;2y`_\p?(PH,Dwu: \hK)vvv7oۓ|iҥ'HKK|::Juu˗'%%vvvqpppaMM  BP6l&ba0A!(++\nݻwhXښXs [lIJJ~eBMDDfYZ&tt@H8Q++Å Z[ Y(ARG;<4AK++/o7\ꢣUUUHG^x1p›7lmddXBuQ&^rqqUUUD"JY7j[!==eǎ---cikbm/UUUpɄsUkke"Hֶ@?:N44(O³ΟY=?F@}O; wپ]ASS6)3Nkvϛ K`mm|7oBdmmPXXxoۋ躻 C?~򥺺zLL̨Q(ZFFF{{;`0LLL#5 JHH <ݻ?|#///33 ۋߜ HK ;#/(P&'hq8PZ_.6֜aؙQ L|INN,=݁B 8[[}9999r$88x䛰JJJ="**GϣGbXee%K!99C@@ ,,,--fȶ9vEu1SSSUUU uuuOO||t@s돝iii #aJAA<<"77J8rdp}םqqeAARRń4D"1&ASNNNNNNzzz Abbb  Օz`Ԁ3iii޽;p&&&&&&~ |mddddd%CaJ_Ύ;v1]yv\'""(:F`movA+ȅ'`*55u:8\mjPu32r[j}I"CJ`8@Ft ^ {7ZX9:^x,Bӓ~EA`*`dD"-.8h.#/]34sL++XR &!۷Õ 4℆EmZ:rdg?~wH3f{{HGGT.\xPR6<܄,S]CK+gnnyy1ݛ7x)y c9HIBBqqOAؑ2hhбq8ⰲ2BގG::N FPSt5''5kr+7m bwѣ҂۷'t~֮سG7ɓpg,81BDA sh AP[؁'OpvNrs}םiʕG$\qd M|%OKO)ꪶv|;V q"=03ѬY,.66[XJa44薖_p .ů_4% ^1/^} T FEG(+~MգEEr]ӏς4ʈǖtt!=x.*Am))>PO8p ᜀh4j.8wn/̠XB`cccs2.,L?šP(,8Q޼yܗ/%9cEK``B`lj/0:Jq)Wϳ[uu۟Cb rXd6G \vv$F]]]z:RJj#l NFFK+ wŊ9Vͅ;Sfvv6M ,OIٺ5|\ ʹDƎq'^ rȵ?:RSP67wrqLU $&ZKJ$HO4:NY>|X}M05wƚ'%??ׯ8FXuB^RT>DCP!!˗nvz`qaqPPSJmn5k;N$|QQEEquaCȵkϦS1:ii!__UÝ)0ĈSC4KBCFDĔ Gss'*11ѨNCKK{"*ʔ ,䕐p.L)K$М>4Ȏݻz[d(ᔖf/-=ij"ˈ襤-KK/Z$蘢-R{`9LCt:Aa:wX~b]!NGw84++ck+Duu-YvSP; Çs7Zv|XT;zz-[b`Eeemjׯ;sr\֬7MuwFE7oy=~@FZݯq$_Νk4}|Μ w³P('qr2'"=<4BF==};wKOtv+)^?kKz#--z˖;Se+**'-rswxQD".su^::=qo|Xdk^X 0);NsrPÒQW/;* ,-X֪F F(.ѣX[C?WT|JMSW_L&XxI׷E^>cX֛7ݵ|SSdM+ii?vojk\SD Sk͚yvvJ>>YP'znnO{Ʋ]ht=", E`lj;p7zxh,X0%~LMMsfʕdWUǮ.Q,r47w{ؖRCC٩8...x!RT_Pc՗u}| ))>[ۤ~0AC:olqB -'N݀; @i !p~Ra;;% !?-Ϟcd'}_G\韑!Ғ}nܬYqBtuen>ﯟL^Xb~ZNK>yҬ%((,LА'P2ȃ; @Q<7!2;JVpaa7jk["#{.Ս=ɍN@#-ǏN33itի=ܿޖ eZ'=!a04rܱCRPI[x#M(ӷw&b8Ͽ~|`dkN0+}EBiAA;c~5.GGXxYȢ)yyVVJ6-*ʕP[lfvMݻmk«ך k LLtnny16ChWjhH\} h@KKLLVŕ= wB,@Q^};8zc&}q9kBݵ뜩3g`)z!&}MFF[csn !֭w[=F`7~~(+W:UUOdQC;yxl`ml'(qց`#V8.FF:FF: GAA Ct32]{<-!3 +WM}~`L/*50]DG%$J PG0aK xQw?pP(0[vIzꈊreݯDF8awHH3+FM|6Y[;gg;'';w69N..8 meRw4= p 5y/#NH#`u?)}}xE8!y*f,fS6HdeXZeJ~s۶pkz# -1S-ussORп~#fKbcGo'n Bp8(}wa莓絈 Eۛ7ؑw,nkE&( +<9$dMkm26{6-^YY 8bte;]oSf_;tv45!wwRR{ ׯ*/;XX#"MOwjʕs~9!ؕ+O~61ooձ-\ȏ<{eN޼Sr4W[۬GGnE3VVƴ4{II>}'O>O>}}rr11wowl ٷf8 @Qffk36sqrWkeIsLaG**>R8 0^Kee9ֶE56y'̒% kPF{S.;TzN[;e01%%XLx۶^N$Wg;CGG⠣ ,GEE'^^g-nWI)9^^,p`L8a04˖' &@\'';YSw,ݿX>|fݖWJH]atII;UU|2 ޭTW?x`yfVVF圤NNN"#mwx*)Is,*22҅߼6+)YݰV/jp9YX6o>ؼxZFӧ!" R۷%Zi^FcS7.xaâ `h\\T/zuFFqqLEEN@hiBnr JJyy/N4,991KK3A=@a;NrrbmH[ gllF~'5pʕs04{V\2\]//Y"}YLBݻ/YXGDl`h3(ME*ꦗ9-0v}}x gލ5W;Τ/NOw|f˖R@QK%%6-;47wADSY^}-[b|||##Yon0*,(/Q, 0y ɓ..f\ӆd]]KeeAG\t(TIoa++EL^ 3%%oϟߩ+w)|Hfӏ7x{<::Z[SSAT=Uw\\,II;MRSщ;܉ p`Xtz{ Ҵpӧo^F5`ddD88KJ@lj"#$͛O﷬,k%3ey""L:;_bn>y#kibdcd;T24yݰ!$!-3?ѣj0:N<< X` paWA+SӠ4@C^^ YA:roQQ7И#p=  g46ܿQի=^K[z47w".p]pu"PVrsKF٤\SsI^ދ*vDvǏ~{R=een8@wi@ ߟh5O{V_?5+Y@8SSx[ fd8ݛ㓅S(~;v իϟש~DsؖR0Q:N2--]_~4`"rJ&Ν; f[RR矃hhFH[.[&@۪ͺuE23[FH/^|`aq9;ƥiz8 Xj͛DDfiiE$$܁;9Y cXTkbgI//[v'KJ@D*ɼj\ԫ`hDD@lj_wrRYmYYOMMOoܸ8!jz,yNG'ڵ>nn OёIOw|櫞^Tm-} #NfbIIW޳Ro/"&ج;wCp`џ_, P57.NLM8ijJAβ" wb:;p*v psʝS,,##l!vdiiE!!Í,_.r^fÇTi&t A{xh$'q㍾Ɇp'hiчݸ<KI-.u#)wpPvsK;r$zpKqi"WbںvYQћ@Czz+f= &LWW5v@_>!Κ5G_m۳|ȗ丬\90ܹrMMfFTUvu6m {3q K||@@;Nrr.UP @V(C#.<)鞹DƈbŜpłuu-]p{rLMW+(ÝexGz``C77uLݻ6;gn., 5~ ]B|}/P--]c1۳tA4v?|X3gnRmVml<kvWV6hh#p@`TZZK^#1A9:M$2A}}xG ii-LMgR>}an~8NDdu rut7mv#gmlݛz;;8(GD#a $c8ihH2?&w2-ʨY^^w`|tv"d'ٳl/_dycZÀ66&LDWWř[ާkj.;ĵwf))56ge9''ݔ$a046!||ss'A3a h4K+2r۩S.Iݘ:Nttzz.]@dee9,ض->1.qqe@ʃŋ_#NS 𸢢"E]?:߽p\j.q&H$=TP81B)y/YYMMOTok APssA3jlYq]Yٿ1--MEzz>a MM$&޽u뽒$YCOOMR7LjW3Ė-+Z[88H#--JHHacc{Z=A&$"*w z'5қ aa[.?rǏ#"LXYA-0{6v߾TYJJRRR|pgyy3zzQ/Nfq26n\,Q\NKK;40_B))>O"gH-33Ǒfȧ67%"/*՟:uK,}I::ڜg*5wdm2%Se;֦;<{Vqchb$$xI.p?:ܩ|X~h %!uGWW7]p  uo|iXhi-r`옘6n\t*"f-^,H$A})A O_X\,g}hQY.<i| dYYȔ--[IK*~;0,4eb*5ao/:-[&BLW//*A'!ݗ,,Mk:Hr呂±!!ׯ}n-)(+)g`qҥ <AOI}#hhrrbP(ܹS a04ZZKޅaIOOFFF8 M0`|rtII`i_~˷omaO3mtv;r/_Z}k;~ZR6,l+=XŽH$e{{koFizO?b]Oc㕰'MsrRx{4rpJ؊{prR/ hh&ZZK,-(" Ҿu_Xm頥(7-\(PPWR :!qqscUU\p вeGjB{޶mOpwYjlowqĔٍ]Q(ԋu}}w?ڻ7I#]QiFM44--ݣJkSV:|8Q2##Rb]PezcggJIqwW?t(bOO܉!UT|"G`Є;Xpvv糲;cVj*'5NN*{/;Ο_V%}}7(.!n$--z*tD6U۷'P~R ׮=pLd> LLt11%S@.OII;D6ÝlZ QQDk]y~~I0aqUv** 3V"тopsSGږߟ>"G$B?~'k 8` YXȓEjDK68y"HI,?~id3gv^ee)3ǎFc j~³g?ŋ b}mm^TWWoV3smί_/YVah( wa9:y߿iy44h 5hL_YHO^yy~;w%k[Ts5 ?Q]^^6++5 ;N4]{jLLtQQ&m IDATwuu#ZNduBxax0?~t]UNȻwtuO2;xBLLRPCϜ(SHH::df:<)iJnnVhiiHUxB\\Y몉rA$).CKl~qP\\)Zd+>7mZ,+;?7;ۙ*gh(+##bkMUj7LoVV w ^,1X4^G\cf۳gAFwk볋 &&b3Woݻ^iL555=dE.mo޴~N$D ^^Kɵװ}C$%NOO'STWQQq?xFW7jH1e"2:98Q`a!NF&q =M͈FFȝL-11|W,KkkE__-g//4<<@CCM¥cfDkffz}TTw7ttC>}}xG ii-LLVg$?~t6۽{CnII>3??{d+W=@s(U-7Żwh)~%,| ZYYD333J -@ ##G'x.[@۷hhHKIEDS-RaJ0aoFEggTWذDI[8(jM`\餠0]qZXXQkkpZ{{֭Ϟզگ]+waBC n_bNq>Y9p'vvv^W__ŷo_N[ o߾}Kqqqcc!P΁ 98\b' 榞24᦬FBC6?7U"EE[X$dp` E,XzNϟ+bUU5>}S,CC_?93ir E_?:&!3g1\\\㽪HMM aaa2";[ ={6/////xpppeew= &.μg@%/ %rnȬSnTe6HOqc({Maww,ɉKHvP YO/ CJ''zzpv\Kv]& A˗ϟE X5kP(dddWMMM̌W Iq%%%C^BfϞx…9s氱Nswwvww[fMxx8A---h4z߾}x|ڶo%((o߾AIHw&[tiSSo﷌`؆A>WqE)))NN`gϞmaa6'Ĩ8?w֭ {_A' )nd$-}j Pm{YX赴"jܵk%:$["/ozfD, zz'YY834'ʼ=qSuUUUWWFWWהff愄cǎUVVXXX|e˖UUUxzzarss! ad11!/ ͛> {'= APxxxuuǏKJJJKK}}}544JJJ *//beee=GII ''/_<|ƍAAA' H$߿@Y__ASSSzzziлA;!;;---eee#ߟlYdԟ?-Y"v L7lwYst8<07N_>8ޭ[[3S<^Z\֏Y8ۓ펪js A OwÝeX߾ii{>zZkkCHG.\4pBrr2AUUUֿ_{߾}t2H400hií/_B>}J$q8ܠפ$%%}FaqqҥK?~‚`Z[[O8AפK233~OBz~޿?d,,,o߾8HN Reee} Lio߾x=#HKK7%K|4;ݍ]_B&&i(G99bTsgX,CL@ur ZZ_*)<;ьdƍ#`SRji|S҉md˫cWxe;**>u҂;;͛7oIG>}tҁG]ee˓H;;;88蓔B, ATnÆ 222̏=s玎̝;w455!jll#].&&˗ߓLkkkEEɩ\lrqq;wH'O[GߓǧfoDĩ w~~ϟL5۸q_^aUƍo|%wC0ckFF+/ ==VvǏ?֯|wiNBWWW&(z?Mc04 AO//ێpw:gj&2rCw!tv$9奕h @vvv|͛7sss!vwwihh(,,=ެi֎x钭Q7%?~xxxpppڶ۷U\\ȑ#bn#`gg 555511QQQiii!1ׅ# RѣX,VFFFYYyɒ%J6lYnArrr84D/++9IE߂ +++XpF<H<==6nܨ ,,<Su߾M11% =9/>};B5U xؑ E[쐴ύ2y{gHKIu ?]oޤhu -YY;kO߂;˰**>.ZtPUD]] cqQ *rL,1qc-ѓը !HC%CNH97?Oֆ~dIUv_*YJ/a]HE;uu-2bxӧoڵ8CKIy`d+''v횋 BkxР xkr7ࠜV63wYrnd-3ƚ:ey+% o291߯qSi%%3GGdd,@p糲&%42; fzxج`d;LE_Ó!CCYnn3gn(||2ߴܽ멢"ei`k wl͂nWEE"5e@Hse[ee) (6-ٳVZ/j111"֗/))}ڵ…wwW\cǹWPE1de,)( ZUuAa+'K^^LSZ46Dޑpqp[=lyy{\۶meaaʂ%ƇDP>|%ٽ{OLH <:&&:++3a0bGzp6!B)q 9sfyq`"0$,sfSuurPJ$.Q__)<}&'Oj)(RR~p>n޼$Ov3g6q#11%۷'\w"jnnabbJKK{֭[MLLnܘ/>}}1beeܹsӷۻڐ"@$@ءP(qxA44=Fx<q ڴAS.)i i0ʕs{z^׏QL >>vGGƟkt: ̌*+(躵"'^}֎`ggtc7z{]\.] 6B&秤jժ 9;;La`%2vZBϞKVٙNGֆEC"R'A\ o T>c8)0VNK[/5~Hugb ȣX u$ ^RE؅ݠA;I1  \ o}ڪYZe{GGPݻw~ٳmmm۷oܷo_OO~B.^(%%IvNswwvww'N?>LXTT$&&qFsrr$$$]\\z{{<8YʰsSdtY}#/ZZ04vx q c`@`ǩA{Fcgga,;#XLhrpuuЧO?Ýdd c2SF"GE>OOSw72:N pNFFqmm`P fލeegc#]\.a&CCCZYY ŪD- _4Çs̙u*3<۱#QKkIL9翥<05=%//GT,RJFFFΝ;wGIIIn얖 sEGG -^8((0>>>88x|||۷A2搐qqUV Lhj:!trpPk)(Ezhhx9..*"H$[[[+**DEE_ߗ7o2ϴԳ ǾiSݐ,hh\MC+::zX8g !hY׮FQ::Q55MT˗uCC =aZRٿ e&oڴ/ݻh .ỏ\bbJւ+p^a0EEnkֱjo677˗/>A166vqq~MMM!:|{{{TTԨέϟ_|cggPXXy TسK!E5JPZDJiEHMҽJ,PY#BNms{-13̜ys>}H Ɏ߽{WVVvq[[<{{NuW>RԊXPP6E`++#^L@ qqTzzP(䔈h%.ne۷]`3PSKO?lpFODmk\y~~6%%O)["CC~~;wj0+H$:p3??ݻu`pN%8852EHl*<<<哓VVVϞ=KJJ266&={ AAAUU5k֬Yӓ󮮮۷oʢa[ IDAT?EIIi .]ڿѣG.]zܹ(+wY[n500022Bў?xDYYDVV(2̬҆ol줴!B! XG8P&`˗Q<Q~<<,SE>`ppO)fCMAÇE ʕbbͽTl$V=yRAQ̙D)7vMIڷ~5qqGGXYYYYY|T7!NLL E}w/b1ʙ AG)j֮ۋ|# plGbg Sy]@PCC؎LD##)q"O[{MГ'`37X'&foX΂u, s? LMGF&^l-*{^;;1a))U26VRehxZZ.a HHxMQ+bnǏ_?9$&~7 B1;773N||lSJMP6GG}cch(]ϟOF9hNCKec|+J`WQMJ!s.[[u*ܶ-}L^)ebne|pba@i:氲2(>|ddLwQad%E)jlP{l/ Op8yĉ>>)'N<0ӄfaq%gl"O'PږRZZ r2o^K} M;Rij42qyXNoo P^^<ciSSeh &(j02ML`b* 8tgr _ 8/k۷:8.: <f,^;,lgI- pt\HKiC+c_xCiCT$Anh(+IM6JHp3@(ZڂtG efnjR~~d'Wć)EAMq"NP8aFG'!857B6@ vvυ w[w ڃ% e=5֭/)+~33u115˲bXR`*~qp'O\sin~C ]-#901Q/!66͛Wܾr>`d#E)b|@ =3NͽsTZ[&&|Sh`J!Ni 01yzgg{lpcϞϟv X!kɓ)=KT)#~ttVȤ_˖ShSSuVVǏS EWGF&RR9;@☛+77R|(=zi#@- КD xx 8}+* ͛$!!1+k|5kdBϏ?bb}GpLLPb*u<^s(҆70)5CO1`7RD)Z[١VK !qjh萔qBUܽ; }^^~%hiQږ*鞞"#-/_ _b2~7u.=}[L( OyxX5c.#n04Z. `+--{zcn]y97V Y[[qM.b44\ݷDh$iy= .4Z޽>.y 11Ōl@oE-Y #SihDhŝ?@YY$-UD4 $2P G̮;9Ob=5FQN4|z::* OOXO턄׎ll5ĘR ._?u0ϞM\қgҥƎcbbORS˸'vB| Õ+2fdQ־}jj>S!URATҀӗE(πϒ_ݦ>~쑔N bsɛ7߂v#j'\A"[/\xJ!LLtk~C)Jff}^^өSØ,OG=qb=khxw819 v2cc:H99/&[[#EE'-@tgaHhh@nrr<Л%'CC`;/YX_`~hv b^;3?QUuqFQEEVVO'Rf@{aq[՗33ٸq GPb}me, )8E )FFNDo$_ߧ.z{'m߮檢"?h\\};+/?ꊞx<BhjLVWST-$%lQzz::N8axqS+W.pNN3ݹ#(..LOz -=-㷳 o)rŚfP'A)?z8:>,yox{\Hk6ܩMQ[?fb㓲vMfۉVN5Z[BCs<<񱬨8䉋6Dfj遅8??[A[*"i&EFREaeeZ8Tx DAel:H$BJJlGH,+bwHD1'زeVVp X-}ck\uq)0aee +)pF%ַTin}SI?mVQƒWvvkkU)EE \ESS#׮m.,|66⊊'O\~.a} ++ 2NPqjjZ؛7Kvd*%%TUW9?񱆅 G1xf^B*.(8aars]KOT̹ك@ 7128NVVCCii]B\􌅅q- ˨U`kk_B3XGD)zRGotʜTW8qb&@ z`"$!*M6',-߼bNʲ2 C(p HaNhi0 j% ,e`^ĶmܹׯNU-Njj8%9l 嚝ttEGwYJmWll=le800V+/uZ'O\Ο"Qdop=v``èLjWW4gS B5ȢjknMMEHdeY. qIEE$%89ȿ(*z788f`^N$-⌍w:uu9./[ge99^}tkvڴi˗mmP$$))`aB?77b΢ L̬սIϏ(+g,3553gzզ;&f6+g@FAAj-K]+K! 'R 2N55h%TX Nii22B\y{~44ܹS;THHߺe|in~&͛k:;Gsڵ ȸ&)*zYeJ wM5iglR@ VWKҺw)88GD+,l7VV>Kz$<44F;;TVET"MJJR_v="VF5#&&:WWllDB3PQ?{hګG@?[Bĵkh8՞aJtt)|}SttQB:??kl>.. [p\mee##kJPQ9F?zJWW21љ$=*8~^s!:: ** / I'..f k$g|V1uumPkpȨY Z՟~j;ϏKwogA;MM_rfY#v'N<>2޽ٳOȸ+Z[ ;ٳׯ[<=ɾreeMII}Ld_~ݲnɎ99Ǡ7K0u..rr^66AyyMꩩGNz{[V3'!%Ңde*+:n~6j%\\h$P]IA١"3^[{:gLZZ…?;'2VV=15ի`{3A֪yyWXgeկXK nH!%%޽ɵ04%"xMM.sWX'ff J03 `aaHOwus[GOOC5˗Ѹ2{P);vmiss[W^~:' P\''QTjzPP j%\\ A/_F!nz}l lGfrdh( #SIND~,YYΞ5OK;Dgjpl`0(++ռ<7ddԭZu'e~ 9ݫwx</6xzhB$bbJ?~0"u[20 uZB ʴ.To/!O/44,@^#ˊO8:j>CG(* յQ9g^RRess/5NNfrPoRӫWͬKBhS~~8V_ZӫW߿ﶶV~@l쾘W_vr om)9 --VıcƱ||R khqk, +#GВmݺJwY[ݸaKOF+zZYD~~hʕDDjjmmչ!t2K0kQ33E8CBri,2Np_7++@J9=NNn!??؎RIIYٟ4v --#AAv55.ǒW. wQ;?>7oÀA"tvE(B%<Rw :k>xPx@Į]:/n5Tgdt&=U TT])_H{01Q\zE<ꁎ CMgjE%Љ@ ++#-- Rz+/oVQۋb))U`;/&&))U7+#01Q|򘏏ezzyIð0-)ڲek+Vx߼btt}ؘqo;s?03=.,3m浵GDۇ*(rw0*/?z GMT#P!yA);wja lw@jSUL Ԕo1㘴ZsseͽEEml~" ADz-흤zvPRT\hU#"p8ܛ>Ĕxx10r),WnS;?iZ?_++/AO~~ZZ.爈p|7KӻT_;?VV KKO=NHX=[ f`vqɫWm**Zut.ۇVUQ[C\- ]rά'k|I\LFFhݺY%lln64tWQ!oSȨ־{( ի(dh|2Wfo*%u|ǎ--}nnOx Tp8<8Az2N[[޸neb uwqq1C!srrev/bLL5d_;8hN8]蜜tKKnܰmo01cZ"X|fҢT_Tղߴ l TH$޺~_eb䒚zd2'W8 L904yHb3==uY@FF~/qopBnٲ2*d|C^~ŋon~}tt2>~>6E)+^X :EV-q<^q/gm[unY/&71љi;WJ˗mzf+l٢>66RE^~LYǜOOZZ,-iiQd5gonn붉rr kb^^ **g.Ĕ/ w$=(Bf:ppTbcEXġCkZ[>ˁHsŁNff@KK_ff| 痶~ԯYJj?w΢꓾+ \3C33FkiΕPZZԽ{;99lz{fz뼼,ݿOU˗Xȡ:SB^2Dbrr3oPM1!fdԹ*)67״aJbsIְ8U (µkiP])||P!q|*SHKAAu 4))G2Dgg*'#*iH%3O'66v\EJJ0 `k^qd5sser. CdI[3(/oTF~ۂwF3;꓅ 11} Xee{﫩-.(8qzг7cqqeNNrr^w?kyx8^MM Al(Bii!Pɿro22@aB"p?pȨRGGml4 2B=dXWۧQw (;9Ea 堠+/\x O||l?|ٻ ՗HHQ)lf7##8c%::Tjk@Vp0#"CN yxIM=^D` < RMϯ,[ƿf{n:;A3>z--Or' " d!=zc38>?^^'&:/aR54|[ eef}L"WTW{utԆB9 (6 22Bx<ꕃ kk۲ހtX }H$.\ mHw/Vl{]nm6]?;CD;fWUQ$'pӦffJ,Xp_YsUUu<4UTDyo"_UV|ك3?%R ef0p))9L3Yv b|+I]t@8?uwsq1I8+ -zBLEII,H_\__ ʵ3%"$U$AA'.yb;voBB^ pDq8989:9閖~,I>s&QGg -H0s '++w`";lYҚ5Ι<϶q@koV> RSk*+?ꁏ:rm7 d{ƎMVQ_|HOKI20Y|1Y \BAaQe%ȳя364Z;EPotb b}Z{##y]gg22B4B񄀀 T@}g8 ǷpD=H K=zuP 44ٸq9 >Nͽw]VVj{ꁾ5AWh66FC_auG^ڪS1"xjݻx'N?\,9RKK"=ל>ccɕiiꆆ2 =}ZE$ؘoEJx233Io5 %%`d$ke!"$A$;:@/$%?}ZonHNln #°gW'j@kh(ch(300RW}666n\ʩp!*m.64((4ZnnԞQOOぁݻ"#VZ:͕ͣoٲe%%.ɕ ׯo|}988bXb11.=#'O88hRڗ^\Y^LGG%cFQ2:r^^ X,nO 9p.JJ"D" ͑ ~33˗+@s##פ%%U*+ /Z T56vnۑ N=Xjl0u |DE^s𚪪OGE+*.sP0Ӂebhb'$uλ[zt֖u%Ǐ?|{w4_O$ ]lm:yyMN%|cg涎 BC))՟ٙ W}* dkv)ؼB ¿'||N=־q,ρCP$mmjjAtPZTi:?06Vr-vtPPXYsҍNbbE`` R2zzR恁Sڟ\ynf=pBҢn޾e-'Osݺ[ުk!*7v-Jux<5:![FF3|^[v\RA[wQtG'7''W={V1p!Z[,,T;zLM++[޸Q/B!!v3Nee41kTq-؎EwٳI;wjKI6oġȲelG"%+WR .uq1pq15?$22D"$${##Ϳ~=kZY[[u--jss3쵰iSp\ܾJEYZ.tF O~E ʐ^fSONFG'3ciSS6o^=oĂqL~ی7̺2::Th7LN⒒*n~YW&/VRʳ7l4@+^8U|v脰0gq_Zpp׻=,B!j sfe/_~cBl۶jn &&gϚ܋o)z;yspoÇ{~؀H$Ttwءl@ޯdccgff]zzݫW͌+r,,f# $m=ZZԶmΟ_0aoJOOsv8}:1)?SH]Y\\|Iqwb$BBrNB99 99S4f q02ґAڶ} +^-LRNC| ==ju"/'YYڥM-"!!7lmC>W$$8ST --_ H0M|whDbO0Hሑ4S*=>VKx[Zpp䤳s]"H$rr+*ZKHw$$%V+-;ׯWhm(LJX=yRAKDwEE9qrk,7g:}q1pZÇ%Bqq54a &'WOHHڪOwv0 ̯bj 7A iiANo!8߿:"(00z {A1 b[`tt2QSuWPD#^r N.u[[u WV֜ט"(##%jRUp_ uGF=|X|V[\Z8 Tf _7*iÆw @ ʕ(@ \^R.RTp>k֝HsM^~ݲ} Y'O|}|tt288;0 lY9DЗ/YY))U99 QYYm0 jx<ĪUK 99 ;;ի۶ JTv1\g௖vׯ[/_: ҘNA"447'!!wp4XJ/,|6=(RZZp +xxXv|.=}5E۷eٸQVYY'NB!׬UTNKg2Hzn:7or-AAvhp8)y8?xtc[[뒓+˛h$||,h9nn CF,,Tjj>XR0$44}|19gƮ]:^ l_FT;;v[ZNQQŒ"X'ѫgC…GUQ%P VVF4Zgci,/"¥XMMLUue`; &(EŎǏ ^hhڪr$.Ak߻砩k浵m6c0¿C44{vnvJD"H++dvv@PH҇/vqzF]?"La A_OYvӶ~;; 77EA'𲲏tt(gg&-46vTfdWWbgg20vt^Z,&`~Jss3O&'i/_ʬܺ . @w`@Krs[sD Tdt"!FG'*}u:'&{+(,rvܑN/<<,$]>'>~()\99g[r" =z""Ti֕YYoHA@ش)Y;x}} 7&'op8oik{?qxb{ gKKO eH ୭_G!uobddkB$"a?5*bDGXY.?iϞIXBNN?jgϪ;:8$]]xԧ4:: d*HAOSTfb‚S\\'!!ZNXX(piDn} *g[ZxxX@i1z[XPW.]z vX\WЃ)4 `XXV"5b0.]z>44NOO#'HYYXYYDY*1 IDATY A>,{7oժ%_{HvN%44tnN$R522AC)2)"b֭KKx ?LL`,_[H$X!0p)2}$033 [[ L P(k6O9#Gڵk_  y6/)#.5wDBCCiUPjHkccv\DD%D)3KyyMԟ]*S9pjnNX~5^ D^ѫpGݩThHvu ~,-XQVxyY/RU]N6u|#(>|xmAۈ'O^OQ'zwu33'B$ツᲳ**Z#"vچ}##|RR%)FFگF_B"7oB"!!9)ΐ(ٝtUwmpߖ]P1{wxEE R=8߄/ݿ_q K$ /D__'G0#A@oԴK٨LCC-ǎS4 < |Eӧ^/M9+pH.c?WT~U痆B!,ᕓ[(++$'PVv!D f~CaINY6HkkWmHxPP?#"ZZ$K_gnߊR@O]H5><P @ܷ@ W*_<ۺurƑNޯ_ ۹qr w~-彔ۇ^<9ݻvEp8B\\w?>>ys;\SXyWN8`̀B!D"RI/`dح,L" @C47Wq*q҃Ci^W7 ho,*:>>)qqeߊҢqp,PS43?2Dw&X|RR[i?_\kx:pqsCݽ#""=Դ>DEg2c6+8C6H2}|2Z[sM3xe҂l :}$/]׭gHᄗWB]]/F>>2,w4;!'ZFFl@={VV~nhhag]]4Z?fcgn]~fo_Xj7*0篫lDD͛/ PH!!v ŋ/df}o߃1OjYY}aaaa`kn!Gkkӧ޽m۶đ=>޽Wݻ@ .] u֥}vRJ ҥB ٌI7 s +r%&ERFSXX *`M,.(xtb%AA[#N0s2me_''qMMot45uյ5uv$%% ))l%|޾:e1#%8x$8<eu(%%9XX/ܼ?::c IJ_z+-MZhnn;3H?777WUU)**~͝nvwJgΘ"~_۷:2?3Μ1QQ *47-X@EƄ7o:_ѯtv?wv%%{t!Z J-[7okjˇ`ee\W\oRޥKKz@ڗۑ_:#p /ԩ5EE&A'+KͽˡV- ꊦҷs5kd'f3ZAe$sqq_$9Vc]MM%Kut.::MyYI@]Dk2~@ݪ95$!!~>|(!!1:: ussussb޽C YYY999OᱳdQ$''300=x{{{ޝCfؓ}͞%HmӢ"-*ZTJ -i[r+hDZPZn{٢B*dN1s~\Yg<3h>syDDDFRTTD1ٳ۷o2DTTTII) oH BBB $''p%MM=z#GBD"!DѤܹ\|ZDa ~,gmll"""Yzdd/>˗ci?0SSӕ+W{֊&%%q ))|%inL@]*M"}]ax8}ZU]k_>}yb!!~^}egwZUU<Ѓ5FEۿ'O>IIiI;8۽;>WNr?zQ>|QpݵkpٲeEEE ^7߿޼y^^^YYY! 9ݽVBBBN*,,}4Bϟ,۽{30 0550۷uuuM<˗/e$99!DYSC铢bRRax~2*v޽+##CR1 344;'Ǟ>)#iʮ/_~oÇ pSpy{1bws3~-8ГZc#u޼Ç*)=**zի:m!==/>T;"VMع󦧧eO+7lX؋+$UO/IWW7!._~Ic|B~~ܽL&~t_ %'}}4z C56ȑEׯr{N΁7ovFEm ۷˗_]7bdcԃg#|yvNNi5:g-BN3;>aB@X؋&NnY>hGnn+0 [dx]c!))I@@1!#((XWWall,..>bĈ}577.nV8u"<;~)Seee"UTT|lo-{iU}}=N~zyyʕ+gΜY^^βy\\m~ǭݲeO81H$ZZZdffN4B @[[Ç;vP( k555p41bc*ct:y3gD͝;w֭Zf7nhtm۶ihh 6l(޺U``ԩS&LD&EEEY6ٿ666655 ڵ !TSSa,((rŊG&ɓ'OVWWWWWG 9snvvvrrrJIIay$i޼yè?v7n\ssݻ3~S%KF_φ ;GM޸<)ڊBMMCqq5,VP߿(ݻ[07148;Ooo'fvÇΘa̷ x}o =^qqujj~c(;vD[wddh L1r̙G/?qཐw料~Sygn**Kgks!gDeƌ~bgOj'B0 kllz0(@TV}T爈g|zhsCll} UUU>}ʲ!Bܹsx񢆆ݛFua a͒o0^FFFEE͍t777ccRC}V@@`޽BBBiii튊J˿'N7n\^R,h]]]999gg熆z ֖ܻw/#C5n; qŋܹ'۶01@w -tk렙32ao?s1:m  aÇ6%'f8g**IDr~ێQ|sjjj.,|K;YSV eO>-//UPPp~vjՊ{YcBƃ'Z^x!--݅ !\_mަNˁU9^Bʪƍ rm$N勢"{y_t }@XHK0`sdnmx[[-^|8*#@SsK`=,1񓆆땞Lso-/4IYM::V?y;uYdCCP.\h?qjZq/+saN={6DZd =׭[ðk׮ 8ey> 1 hxH,`e 8*11QJJۛ&=<1t/C#hGUU=􌰶n*,TRy60ۯJJ^X ;7/kFtP@0L q9͙Y ҝ2mBxxxbbÇ###cbb/"~ Yrr2slnַ1j1LymQVVF3bv6L0Qwpv\^^߁ufcw4ϟ=JffBHWW!y0tKmQYĉ$ׯsBM|B"wuk\QU !D$𷺪ԲeymոqZ uYdZq+s\PP8~xGGDz2);;;??? BhѢEW\ XhQg_aw=!eC (*_zZ[wϜyK U++(b22\_##ѣOS=ӧcc_~ay:ɓ SODAA80͛^knn(&&ԅe\rppزeKLLLQQQ\\>Պ}||B555111gBCv =55u!KK'N9/sںׯ_?|NㆆC0hʕ!777gggٝ;w߿?33SKKk Vᗖj㗅۸qcvv7o,Yoٳg[ F[ :::o 9 yH,g)x~²e(lqutB\%+7K=J4HiĎDg2?^g7ŋO?dM;w )Gβ,rSSݻ555G}eQUՊzYP!!!O_&nnn޶mۄ ,XЩ׍q,eὝ={V]]]VVٹRcǎoEf 9_`~!ӧO755e̹pµkݻ5p@"=$n]ΓfIutΝsw,,]{19971ыkΜ5uuf%nt<(5kBg0=ZBnqΚg3}!CDEE!<<|РAhkO N:e`` !!1iҤ۷oT-[lBR BBBڳg-}߭WYY)**OPVVV;͟?̙32{9sFEE%..BW0V+1//V[["B.-). °a AA[xy3 ^ϟg+)m**_i̘=T*9r_Msի ͯu9TG@ԣ n݊aXXX9c{;U몱sጱyZ,"B.-). ZOo} T*m وJ&"LW׋K>}*TQqyQ=8`rPPw2:zU01 kq^;uuY˗3Zooky1XRiq#,aYĽ{=yyVoFėWVa=;x0NWWʤ]˗'s]| ca}wv옵eG,Hmر555Ϟ=P(salogi =ՙ# l%ze ظ2Jw,-hȝ;oVW`EECffr7q޽T nm\򼎎|`-jJ_v':9x. H$ҼyG!//k,\~ǃ>|닧@,W`cKX$1(hɗ/%ǎQ ۷Ϥӱ;<H$hks>DVV1Z=C544-Z4}tYn:77uikk8p@VV!߯_!CL4x-z[zuiiiM2r[nmg#, YOOˣG)ɹ%IIѝ;g_ݻo<n  sEE]qq7:G%'gxzZAyxDzs \*k렏 'L2]8gZ u۷o?޸q?)SP8XO't:`?kxtlmOŹ$ߏ8ӧ LI-'׏#,8Y_Ou˅3;x0Qʹs+N-fK [&ˡǽkb b[npႾ~jj;֯_ÇM{w̞=NK'M:ь(Ֆs8IO/ǥŋ/Of^7+/w|gM/  --ˡ'LFF~/qi<<<~5gΜR---GGw+!!ѺJ#rrrs[yySNp̙&ϟg{y]2D]]g <%66ڵkk7GJJLII2#ĉN 8'.66%))]Wntΐxa֬!7O@h4oLHS//Kg)<8@/kuuY' MM?dҡC _r[dh^>TZvv!8Q;s52Rx yyKmbz"n`ipptK~߬ A+ :,'7߱dj|X_R59@9#ÉSffJ30Bd +=<,93Ce/;22έٝr99VV߼lmݳn,Hz'MMÇ^<<ci{F";v*_7qAA--c_]]_ի'  ٞ/?WWFBBKaiyѸ8!Cx3(@k͘a:?DDV42F,`?8~Q 6lmlk/~\t劣$FaaXppYsׯxmC([[[~R@@ܘNmZvvաwB'ϛ7+rhm )'&&ؘc22 8~^^^yHӝ;gqBmWtu1D 55 W(t?+VW9#FXp!Y>|wV\,&RVTY0IUUՕx@ :PQQbժovCÍΉD"gCdd9( b%Kl8 ön};̙Æirc>}*<׫W '}ƕ+WErVӅ~ieS(/^dH N;n 113fqr@"Υv^>ʄ(Tou])55/&&i{.Ukzٳ+TB7orm`D^)o.PSYjkkw8`+,L:wc 99PWti?dyyE;3h+@%#0_20PHo! v9ldp;fgnnȍ555qsKs~fM'b66OOK qPW J;v={n~éOϿ!CN\vګG)?7xφ55 yy-#@EEQzݷ]pcIӧ﷙={;o!?:("/?pgy n@"""hnnhnnH߽.88a)33}ssC33C憻wݶ톜\ŋG;Ȉ]ҴipADBFFbdd`e={nٍ` }kϞy<-߹޽/ޣ@މD"5bEo'S(aa/$%EǍӝ2H\\acj== ΙS$={ݻnnW=9XaO\\HMM&=`?[zz̙&wX|}=ÂS2DDٱ㦷psf=?6""\ q@裏7m:UYLmZ}}s8D`&M͟8qݷ\n 328PON]q'1KFF#2ܼ'sK.啟8d\sЇ@1 ܶmVvv2˿rÇ9حʇH22 h4:jD.]䑑o]\ܦs\y9m!aa2G&>^L@ ;޼a!o;M6x,7kUU8էрn+!!Ξ>ͤPwٹvWڴ鲣39m uWGX1MgL]zl1 "pm~Bk^]p$#B{M7ȑED !of֭FFj/GҶm1c zYx OkNڶ͊ݶiƍtK'MĽz&H$9~nnjjVX@CGVWQJIf┒7yA9sq~~EXؚwp[#7o62kll>x0ɇFHIqi 'T1 OtMM;?YYN06VMMNMŮSɏGu'yxXDEm푽q߽PHoa_MW$+V} aʖ.edZRRSTTؿmSR)+Kvmm՛_K-yy`tBCСN=;VeG)vޛ@Eo1 g){6""@ 9xҤvv##U"ׅ)55˗n[7i +.Ztmmct3g={uϚ@ FdV=^MI88xqu||__%YYqqi]ABBXCCkӜRR8yyE۴[+feϘĸp0k*.^ D GB>Hx*&1q~|QQA 11I|hQnn +փZ UW7|^ֵ7nO?thPoJNΝ;b ]\0a˗9w o~bʒ7oۏ]GD7wֲ]]hndڅ"))u!q*/۵+~ȑZm@ϟlj^JJ0KK˟9mn،xċE&z1H/&q}Z_HLPPر{s q6snJ9hnn<}>997(( MLT:vJJDg۾=JHuUg2?!zs.PUkǎG58@qCGuG[wЩSw!yKAA Ǐ/Hc9AWOo5u $N=]O+&!**xݩSˢMvk꺆@ :FoٶZHҚC;8ܤRiw[w.8Bu'<|iz`VYkΛӦqqnJHwϾ 'F*&1s ./CV ddăť]S U޿N&cCP(׮޷otk9|hIIulQ;ۜJ y:f͏5s&I oz,+669((aϞۺÇk,u/}|?;fY&qs0M6[S ck~ U/P]]90KK#60yuŊsϯlsfOfDRl٘-[,*'^L1thqt͙4rGaɒw666Or'\BOOqݺKl6АӜ޿fjډ"t 7]r1ct"#7t'k.Ŷ'UU?󳆬 q [LBOOu&cgw:?{cdRpܲݻcoebVԜ^~tm%%EُcMwu&u$QN U8|xxz^Iz=˲=b<}:1((>-͏b+W'$xkׯgkkCBLLl ð{c6l r\qbOۧ8%l=_d2iqqf8g&v!ujjNNٙebF")J}P vW_ݿȑEgM}8ҿh\[ײɞ9ա&&jOn qCxVLB__):eǎY?:95!!ӧBIIwv-vt4;Vp:{ɲeg&Ot:y~lbMн{'N,UQl' V=z{A3߾vӧ$ɧ}\tv2')):n)FWu=1Ͱmfu:U`GLLҺuBBMH(+L*>u͛_xe1vv66RG9RKEEjhc2let:fc\^^N]&w옵f̈́c^^yPP/Un"6m8}wuu}[.Y2[^zܲ)/I$zS…(ۣj׮bN&803W+qq*CpD}}ӉO0@ z !@1/C ֬ gs3]BBÇ=ܽtyUU=D$Ps3J@gmo?ثW_;$Q4 C2![ۓ!]d oo+GG3F?Ξ=El~\>lgWw\ĂWpsHKm4u‘0׆? qK"Ⓚpz`I}}ӳgYWW* ٵ߾ܹf||޽ښL&:;EfRitƗK }aB,: ]9u`g4!*jí[aa9`d2QTTXKK66vs ¢ٍƷ`v}̙ch+""4=D22~ % V0AEs hb/ ]sG)M-Risr2iKs3=2mMMCcc3#k ݽe)#ӏHdWYY !؟DbvȑZ2J6凄>UU虈DԤIͬLI/^|9}:14Yjj~CU]]JJ+V% / Rf\_ {>+8?bڴ\w*(\Խ{-Vݥӱ\\񬦵-[,DE?hN $%/]ZU|#0 ӱiiy'մpɦ&aD"!1񳩩ڢE+g6e4,-JH($Dρ}59x͚ _,]:̙'[իkSRvVLw8Ç57ӎyp³Aw=f#vYaH$,[6v޹an~rB(:y+RsD"~~H$ܽjUhW ©Sf49t(رx)A:ӕ.ЩS̅+iIIKuuς67n0M#43o!I klRSYjkkw8`+,L:wc 99,[%&~>А ^d`ིZ}:xotaHJtצdҝ;} EVV$"k"I&ΜiMaHDdbvnʹ dΚ *g:gMuu Ç>zbg7͛۶YA'O=s1qqTSL%<:: 5cݺIɓ>>1_ht揨2ccܮ56R[_헒@ D]WPQQ/s+ӧʒ#GL"dZZWb )wmmyЏsW3Wbt:FWz |i֦̟2UT ka1Fhؾ}w-;[YkxbX P@'f4ytϟ5y!;Q#Gj1*zHU߲~rrgťHD"H'N=jlN0 ht漼YȚBL1|ztȚz8H>PEKKL&.@/A"G~vݻC_johguut: > NhQ?6,E*(H\ԩe"kɤ;wRBL&%$CCe?޹I]]mm۬""^?~ViA*Ux7y#.΢%i qy BT*m֬ wMDmmhL&,Gk.<"jztG9ٳ& "Jy߆ZZr6M'abxaÇTW׿} D$‚#(wccռ;o_RV\pĕ+**XfMt:[FwxP q:kkf:BH__IGGLSS.7JmnajQ 8;?xÁ?ԩed2!TXXQ?adMMYDј'UU)DggsCC|#- @TT_ǖNǜD"ƍqq/]Zy_=AugD[[OpWZZ~aaeq+H"3$aFaW3;͜iVsz!2_1N#%O”$7n4gl@caQOl=Z*& @"?ٳg^Rg[ܦHDk렚ךH$LB@j9"Ghhh^-U32 Eӹuː;pSiiiII O$t ! Y~ TU% k~˫,,mBR1{.Ȉ3눡CݻIjF!!de5֭z|#@ 6m3;G2DLMU~7Yw !$"B=Z?ՇW%#~3nuuM̑ EdddeEEedD}/*KAKKKX`![.))RVVtue8]IIIuu7B$QPD"aaA2("B$ ikLܼABǏ2DUkjJ)*3L4PQ"n;wNחd(""p()(;wp~B"22Ңb{d%%%8`'7PRRaff@w(+_**ŅH$lJLL400w =\q<"**(**~:C vqqDUUU[?^̞?^XXjSSS< 322x`$N@oFSVV6 Y<:u*˧ON`F۷ɕעnINNNQQQEEeĉ7o:rH[;#x`$N@kdd$,,u%ШQB!ۯ_1cƼzmõ֮]/ʃ(%%o>[nTTT \[WWR[lQPP߲e Jϙ55D55599e˖1.nX,SLLLDDdYbh ٷoCCCdr[ArZ#NNNwibG<===yyyF=-B@W\\ѣ:uTaasjkk>|X^^>**Ν;!-L4)33˗j1Bʪƍ?v?~>|C-[޾HAAիWϛ7/77755 ?U,,,>|khh6rHwwZ}$NoģL&^Qd]BsfРAmbyl^[[KRZa;GѺyxxxbbÇ###cbbxsh,cnt}|?2^N_~|ʕ3g,//gACC#%%czzz;_N#233[ar;~)SeeeM***^|og )++ ߒgϞZ}:s`?~s-?ёu`y?=={V]]]VVٹOČw($##̌߁tߟihh@weggrc 9o n@@"!!F>HUO:F>H8@ q@w`Wii)Cj~H$No@HH@ ૗@BBBx@ ;ЩŃ9NH8@ q$y,IENDB`XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073022205 00000000000000fde6f4f96bd02dd07ace655fe7fd386fXQilla-2.3.4/docs/simple-api/inherit_graph_14.png0000644001725400016040000000473513273140077016501 00000000000000PNG  IHDR3^;bKGD IDATxiLSMǧBʪe@1!%" b\d\RbX5BLD4 &D"Ę&Hje_eKi~S>M3;{9aÆ0iP| @œ𹯯O$ĚgϞ??IHHX#mܜZ|rqqh *P| 00>hZMLLEF2)h;K{A6oޜJ yY} ~|qddϟCCCgϞ5,}05kkk{z\.25`XNNN'$$744Q>4䊚e27o4\}~ӳب2?l6l1 /t]]]@@M<==={;lv^^,Fu`׮]'''}s>|Y,Vjj*ŵOCGsssvvvo߾]l<++ RQQrY,֩SJKocVVVgmmV__OH; }i $9MOO߿^z0\naa>44sBظqcYYȣG a|>ȑ#b888ZĽ=zT&&'';;;5Z"##FFFtܾ}{b˗/;w0L,ޮtwwh4 gg煅ȆD"[[[jaaaB $(//wqqihhhllv. p)t\{{BP---pդR)NsL&h4j0h100Ӊf a?!>t-bXooZ8۷oMzafff,--?}aXBBBaa>RA^-[;x@ڹG1?|:;;a*ʒ~ BG577xH@__ zqvvtR ,Hoݺ}}}}}}@qС??ϟ?S;].K=Wt쟛׹ ###cppp||\R嵶*JTWWKǏGEEIR9L& ImR'R1}}}vu 555o޼ٱc~-#ð8pz  𣇇ׯ_q:\0<>&&&FGGGGG|ŚPT<0==M_z%t:∈/ӵB j bRRR.]$H$ə3guℇd2ws dxxýVߔ.HtŴ4[[[ӧOr{ӧO{nrrFv% }ccÆ B~u]{{{77D6 m\.G rرcvvv333^XXؽ{> \gggDLaYL+++흝>8nnnIIIcccS͛7윜9 î]fkkrV\MDD@ `XY ?Euuummmǚ@4>PɭJR(^rĉ+_C~~RLOO?y$а?ߝqqqp0e /*w|@_]ۋ{{{:e}X2KKKFINN7<`Vu?YuQQQ+U.[[[뎤.Xc}L #M2z!"(44ƍO<ؘZƓ^^^CCC1 ,2؃_ݬ7iRWWWVVVYYL̬~vqq!O0}և߿?|P fISpwAAAVV,*:ܹ^Dr夤BӅ1ì'gTm۶xT@PAIeppz $egg0)  @ *f(߰:IENDB`XQilla-2.3.4/docs/simple-api/XMemory_8hpp__dep__incl.md50000644001725400016040000000004013273140074017723 00000000000000923fdebced9a3061355b8eb07416f5f3XQilla-2.3.4/docs/simple-api/inherit_graph_36.map0000644001725400016040000000034413273140077016466 00000000000000 XQilla-2.3.4/docs/simple-api/DOMDocument_8hpp__incl.map0000644001725400016040000000026113273140075017550 00000000000000 XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp_source.html0000644001725400016040000004230213273140073020537 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    NSFixupFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _NSFIXUPFILTER_HPP
    21 #define _NSFIXUPFILTER_HPP
    22 
    24 
    26 
    27 class XQILLA_API NSFixupFilter : public EventFilter
    28 {
    29 public:
    31  ~NSFixupFilter();
    32 
    33  virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
    34  virtual void endDocumentEvent();
    35  virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
    36  virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
    37  const XMLCh *typeURI, const XMLCh *typeName);
    38  virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
    39  const XMLCh *typeURI, const XMLCh *typeName);
    40  virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
    41 
    42 private:
    43  struct ElemEntry {
    44  void set(const XMLCh *p, ElemEntry *pr)
    45  { prefix = p; prev = pr; }
    46 
    47  const XMLCh *prefix;
    48  ElemEntry *prev;
    49  };
    50 
    51  struct NSEntry {
    52  void set(const XMLCh *p, const XMLCh *u, unsigned int l, NSEntry *pr)
    53  { prefix = p; uri = u; level = l; prev = pr; }
    54 
    55  const XMLCh *prefix;
    56  const XMLCh *uri;
    57  unsigned int level;
    58 
    59  NSEntry *prev;
    60  };
    61 
    62  NSEntry *findPrefix(const XMLCh *prefix);
    64  bool definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr = false, bool redefine = true);
    65 
    67  unsigned int level_;
    68  ElemEntry *elements_;
    69  NSEntry *namespaces_;
    70 };
    71 
    72 #endif
    Definition: EventHandler.hpp:67
    Definition: XPath2MemoryManager.hpp:45
    virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
    Handles the start of an element node as an event.
    Definition: EventHandler.hpp:95
    Definition: EventHandler.hpp:29
    virtual void endDocumentEvent()
    Handles a document node as an event.
    Definition: EventHandler.hpp:90
    virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
    Handles a namespace binding as an event.
    Definition: EventHandler.hpp:132
    virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
    Handles a document node as an event.
    Definition: EventHandler.hpp:85
    virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
    Handles an attribute node as an event.
    Definition: EventHandler.hpp:126
    virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
    Handles the end of an element node as an event.
    Definition: EventHandler.hpp:100
    Definition: NSFixupFilter.hpp:27
    XQilla-2.3.4/docs/simple-api/QueryPathTreeFilter_8hpp__incl.png0000644001725400016040000017715213273140075021367 00000000000000PNG  IHDReݗbKGD IDATxyu>sfs("tAAzp"w[n---;D"رcG; @000PTT;w ...x`pgggS~w~p"E ԋO[[ۥK^~]^^>zh e˖DޮeƌbbbFFF>>>***=\6<<\UU5%.._~88! AwVի;vt{K1jWx,&t!8ǭcǎ=+\j"W^C :LAQŋ?njklׄ H$Rff& ׬Y8gΜ+W666۷A!!P#F`.lnnҥKYXX }$"""všV_^MMM__͚5111\&x_+((055e^PP0j()(^WVV.^8[D@@cƌIOOe`TZZzԩXFp*m9b㕕q_V+^z˗MLL˴iӮ]?`30 "XSSZDZZٳXiƦH lccsѣG?^AA{*z?~l=;$mWd+JKKnj HII VPv5+p>ʕ+mۖVZZra6g A[ZZ/% *,,ܱc;idd`0.]doomv:N"h4v_KK _ؽ}1j mS=xzYYهBBBd2^z؅ OOOx777 GJKK{zz`7/[v-[ƎݡM++++nHHH_ʶ;vPVV?~<\tmSNjhhަɓ]]]L "lllwA:g``UTVVݻ- ӻg̘1#""Ņ"DuH***?~43Ls&[2ٰ"+ccss޼)& )*J E#--w|5غuzE119 *ldw4/5WŋyLlTmJKNΏɉήnagghoo8uXAA"^%\J$ L޴v z`DEW)##ficgg0kx))0Ay?"#ʊX1mZ{QȮ6&&'&&'5&hΞm4f@`zpab׍^dihhIJV76<={泙fX5}!##dd`0Ӌbbr?<و3fɆ3gꋋ  /@hogܿ*;;Ml4 "GAyӋHffd4^L~U``ׯMOظVWF"Km-%.}lln\Vڸqjdl8~^R[K K Mjog,[6e:UUYCu4E9SUM]]ZL6уAyԋ{_?v-UTTpj KYYqCq6LE&.ɉ*>]L6tp///w:ԋK偁UQYuޡn"ď119 LT~/P/oSYf‰$ޡ7EZJJ~LLӧ_ssA&ߠ^>a2gr#&=Ls&5DԋXDGgWʊ[Xh88GȀ E%lsb M8P Ů!e(0y2hH0Р^FPoxW[K?v7U_ߜg2`8zCM ҥ䐐$t f MP/J0::yy =2@Lj^). y~K +Yc%--w(zwXyHDDBL6$ A.p!޽jjVnn""x>66ٳܶv#d@]†ȉ14T,C|y=))EqԨVV:04|"茌/ff.\C\b!RZZJ`֬qRRx7"FGF[[~0aޡ_W_>2ǎU;E@ijjx}|\}}y&?H&ѡ^߾`cttNcc+''I45wp>0UW7]Mf*)I 5bNN&NN&G``0srʰGdfȈYZb/%%w:0AR޿ϸwb+VL[~}v?ӋƌQ~TQ>xpN@oIM gG@"ccsuuׯ`)رG=C_ii8$2ٍmAy2^ n(;͛؍vv0dߗڞ_͛msHXy8ؠ<3gꋋ#d@o@=>.?`&[33MC  9~'$섻n֠]L65kGuع*&^/?3 & $qf9s"vTQQ!zA`j:**'|S'$|IHd㴵:̉񁚚&"728xd Ezud?%**J34Tݸqܹ&$ ʄ j"QE+WN7]K -%%?&&_{,qp8L"  eIE_ e0PbA"Qر%x–, HM-:H${wH^^P_剎ϯж3((,Zdz3 3AÇ_D9~#Kˤx."ⵯ &%,-][w"Xy`T"*z8U2gv8{ cKL&?_(TÁ( Dƈ5k""?}[]`0φXbǁ \K*w.}ҸkWD 22::JJ**ؿ#GJKŤ3g>t$ob/xg4lr̙>6RPPPZZʓ<v߬{E !(dL&* @8uj2A5Xiii~$ЯT4>%VO)'"..()''TZZjccf+**t͛7yqp;qyT*UJJJ]]M F%%))&&$$D!II I‚D11!11!qq!KKN^>WRRpԋ eRRR xܹ \]+>> |mÆ ?rTTT?yc򘘘͛7w5'{zKL&K^^߻Ttt}aPPPP_ 1~ڊ ȨQ޽{屿TTTvΎmL4ĉO, "ׂ n݊R=B}JJJ۷oooo5j;GԩSa VWSS۶m[[[vVٳgFJNNi+9xj}}= ׯ_innf2ݞ} TTTXeeMM(©'{WH>2223f̕+W: ocpDZ:`0N<#))9}W^uhs6;XttcǐQFFF***PT{Q㎊t ?B8B?~wx z/^p+WhjjJKK۷`gϞEN@@`۶m0 ֎oEmfbbRSSGCHH(,,ŋǎ믿Y=|M)۷o/Y;"qk>i QUUU\fqƨQL&#GlooGQĉ/Kffɓ' 333Lm6EٿC\]]mmm?}9nܸb3̞=;..BpO[UU7ʕ++++^zhPPݻw=z k;hll(-- GEы/^r[Ky( Ȓ%K냃es ",,XQQJ"Nf HFFFB6ǵ`]ǥ:y9r${seCdܹwA>///55UKKv}qvvvvvvVvvvvvvuQ? ql¾ފ˗766 /:thΜ9(FFFJII(fo AL&X ,~~~>|}" >|PVV~ bbbXʼnլ>>|9tjbO;P/0du[/677~Ee˖ڵ WQQ111ս{.6%77{5GшD"ݻZZZ =I;b}}{0,,5åK׋T* `$&&~,^ksOQEuuuNg2MMM C0FWkz^ܦ瘍 HBB =3k戈λ(6;hw]q)PWε^.۷ok yFBBFmݺu݂'OtttD{m/o ELD{c6n܈}.d2V&vU/zO'<KLLlo600z6HEE54J~TUU;v,zzz"##?`S MLLX3qoAHH(//oڵ e„ D .++ع'{ 02YY~v={vkiiuX18uc/ql{w k_@.bzzz]D>yGEbKq܅8.yb{-))^*؄ Ҟ?9s =IKK9zhXXMzjBBB\\ܬY,Y2|k֬9rHOF>---̙3g\VvƷ9\|۷o?x`ĉoyyy_#G,**7##ȑ#QRR"؏>}RUU^s)2pTRRoggMQUUe#2''{ ...۷om@@6ɓ'y:$>Ǧw5!ɼuV]]S]]]\*w{cG]ejSS IDATx)vA<mWD+v^.qq^.5w 8::FFF噚Μ93&&Xo7nwބr'OZYY8pۻ-\MMM111;܁ڵkKJJXOa7:oϡ^`X?pkEvU\\p+Vٳ;Ci&?) K.svv޽{]]]q؞a27o~zlllTT ۷o| vaT*F 8pAH{qsY5Ν;4MPPPLLCA~Z鼊ы^8uf6[HHȷo߸ ve"?ร"uEWKq܅8.yu71 `ʔ)aaaHmuuu֭[ƾ (z{{yzz"뫤a"xbooɓ'cw0˗/'NPWWWPPAˍGzn91^^^Q766^ZVVvĈ^^^mmm۶m9rQmoo[bň#TTTlsh4EݻRWWG:)!!ann~5(9sFNNN]]= `岲U,{ޓ>G2)u>;v^dd$F>b .bҡ9IO<%..nnnVa:_F١M!!!7of&ri5/rQ㧕Rh]+.c݉,$$c֊۰nmmٽ{7& _k۷oKHH@sL( `dd-xacFFFvЇ|w? 0$$$t˘?UWW7o.]l/oh/eAn޼< wCC>;^O8 z'%%ݓ ^C`b```O&0x~"E ԋ7hү_❢GT*[VRS0CZ! A@Hu8hjP$%it7]KsssillࢱQJJ} ԋ Yjjj-Zۙ|jҪu#tryI1D"*!AII$%i`nn$e }0񹦦&jhy\Q`iyl۶Aeן>geUKK++33MA0p^ AUU^缼JIM?y)cDt:ߣϞ^hq!!ϓw+(HצO(++ɓԋ!!-sbǒ:AAȡz4aݺYY/ᇩV12ر%!%%ŋ/ JJDD'N԰֛1C`$@; "`1!˗MbbB&iN:f4-QC» .KI^J___ufmAŋď_6))IϜ?c8 E JKM-LLJ)SXXhO:x`aP ;vт'N8(Ν͛{]Ǐ9ϟ祦~b2QCCU2ـL6?^ :EP\\G*1RRg } a1Im-eӦ/?fՀ7=h޼?reeal`0yQ&F˖M6MsCԋѣ̨w^ ۏ7F>gmr}h## 򨓓ɡC 2|55=yu|eeE&] :P/Jξ}MB"QRg\9sĄ6'>#ױثW_u;&f;<w?V޸Ν7uuVV I$ԋb{8F-^<Moﰏ+O\:|7&ut<(yZAvFllnxďJJҮS]]]S`Ёzн+o~svZUUKKkk .^(Xի3fڵKRꚧO^8}"K55;wܸѣ-xDMMȣtG=h'EE|OϋձF?zyrʫWc(xzZLΏb}"#ƍW:;O8q4裚ʆ W e9qxW; ʿJu덠 uՖjjxԋ~w/="uiiE.x`Æ"Ggv-ŋ=22bxg]jllyuPPBEE5V:x ԋ=2>++K-]:yhys (?ٳ?HI(ő '80,팿 N|dԺu35AO@VX唈Y-bmK$H{aa;ovR]]l`۟=Z>4,gϞt)yE_YNN&x' E7&},駙%:۷;L);rUcTQ/&yxX?OPoH>묬`l!ӧ_}aio߼qTNԋ V{LQQ,##uC YAA =@QD"FEhl^ZZS5; qw./oxwx^9~:|8*#ҥSv3bމ@zv򋀀e˦_?FRW_g>Y.|j[3f觤>rd1ii9ZJXXDH${>OxgNXs'(ɧyHx/w23KJNηzz*x'JK뭭v<- @@QH֛7dcxwAMO9aD]KHEE']M;# }Z}Nwa EѥKSS X  &$`i;oxIIGN8lKΝ򼼬 7 ߾Dž$)8w1<G׮n $@bbfwr2у{{aϞf$'"{qGéA EpF3/_N9u (u,77+TYY9VoژDccycc9]]"qʖ]}k6~~sx >>W߾-޾apY "xpZ//͛}~G Mi A!HF.G>||ORAD/^LSF;nP/¯'NA& PG """\\\ 7o.])3gjhΓ``矒Mkj('O#OzÙ3UKh`$?w^X=:w|/ﵷs '8L&zVkRu1cޡ d޾}wL85L ?|_͛{IIމ@OAIN'Om1˗{׬"Pq<-\hV*>{x=wEE5ޗ\\%bbB))U G::ʮǎ=jniXŨt]]/99?Gӧ؜-remDz>yjAA6c\|e=u~_&O{oܸqIFF36دvtRp&..E.$^ B9 3<\Pٹs.u -,,;uuaQqƨQ"""z F {r/^@_}Y&##Cz^mqw v "y3{YŋݫVM'&//ߋleLfmmm?o]묬߇fddA} 9Rرx|a9w]UU IK>}{Bii[TUU~Nss3ח477N_r9 &qqqQQQֲSNEDYϰo߾]IIIQQqŋ Ǐr劦}DDDƌsʕ~qㆵApU}}}99_AOOO)ػw4aVZ%//m۶n7t:FRPPpwwohhNq̉5CRdee;JաxĽ{5ATTdllމAL͛_ ###+++}^_OO$ ;pΒ6>ybm׮9J[``A;VuYY48ԋtTU窋K~DC0Kldۣpf`0;v;˰"ә!!--yS &Znɓĉ.{7?b2@{泽#Gg ]ܺ,;ĉ{waE g )+KS ''ɓw\{zZnz==, grnS(={溺N^>!((HDDEuEDt(+ !d6hCDjogfg98p7dV &ßF;"Z}ȑx'FRRRee%)xD?~UUVV=H01!))._qRR=v[WWm}0$)++[ZZlcn $..w!E0LEEe}D"=xx.{򋒒:##u77 L%$xE`0g>#))r:Nc2bcM|& 7YN;w!E0씔y+1X\Т2nxg%%)ggK'۵\xHԳg;kA*xFRRΝ>o%'VR; kVpS2A&v-#Nt6M DC_^^[o^}L[dF$k&+V۷>T8:ݴvY<zJ[Y>]̙exgرG.$<|*Y,p}Ŷm7||>>v0wP_Yj?^ԩx'23K_޻1k877s ˖^L6u#(^}1;46v^[o ?h OYZ;Y&SO?].۹sMMm._N.R\tS" F=MRNN@_eeΞ}&(h9xg..{sn ez Y(^z} s\ Fhh, K|G NN&nn&NO? KHة.^(pq 8ujeS;_NLQAvAFb6@-[~clZTzdK߽>}ѢRR"fƌ۷ްa&<|8*,,oGl߸,Q(3Ni;P"2v츥$?u!M@cP1EssCC>|?{t##5̠s S^ctMQMKL={ʕ'젳@YAP=xH2(f^{Յ &/0/"*7n%?FKqqQ'ی3f=E%&g:NN@T`֬i goi5ijj߻7:'l^}b~zNDijN KKy(Ukj 4ё&;vUT4m+8E$ 4<01|4D<<%ٙ@ǡBB-,w쐛ߣ8\ߺugBCAgA},| tGNƍ||QwjlB4p}NNq&ܩx%,ǢIWOJ*U;$(t-^^:gKZZÇAgXY]]7޸:Y JhsbbAV"DY~YY]%c5P낂'' p[Y)L Nlؽ[tع3[VnS#<<o : D"#{z&}MP&x| ?ihb;Q|sp^LI7??\w++IVxz&X[d0oMMMm/f2`u=+F^&֋-ս8gݻfC *BUU~Xwܶ]VL/o=p l',Ss44=: D88ǿ*M/Jݺ貂xT `qh(ffjiս;#YOoŤ\+Y_(,CT9v, t9tH [ʂϟB}`cj*b6N Rܰ܎aӧ;ɉEB~~;;qZ CΝyyAgꄅ[[={: D֮}5 ֋Hxw[G;رM8)8of|޾p˥KgEZ?]:H֯$ߏespPabh44]]7PX/B"0\tJSq ޽qqOQH\@h5,;rD>.teCDDO@MEe/UUMPX/B`tjkKCq*E66w.Y2+E/TqYLlɚSv2?_^Q d9LYY@2^_ii{WtʒSyJQJJt(}o߰liI߱CnBAYCA:Çﳲ>Q.::9yd`[eellii{΅BOAA֭wLJ . %卜܉ǽǏb\\A..GGհ솆_Lukֈnذȑd[dnnyww/ ֋YUTز%p 83Aǡ99euu/11*Ei_)"haa5 ==}'OY'1#Ti.yz|3**tr))IxQ :5"D> zzvsqC vNJ-==w75 6^t"zfϞnep=[??8q"D&6m4gΌhvvؑMΞe&y?~~A ͦ&5۶={s x p/4kş?z"wj%$##Ax%?օ%LHvP_ $߯LullNNׯe<,Y2ӧ:x z"ok vNbpǏ?8ZZR t!!Kpp0o޼}A dvQљީ@jɒY}}@^HRO/pr0 &&zq>9왇?M)==}eeCVp^K {W :TGKK)3O@HDAƔH-7|ˊaaSva5k|Ν01Ywnݔ}7~W\\ fZ;w O/,XH(0 "+++.,\(X\ ű"D*_W0(ȔtPMK+ZGʂyxhrp{}UX ޭaEwDޭtN/@ȑ#:UUM11@hɒY^;X/B$cU9y/M_rUUݻ#W왇>//7U(02]bI@Cc,A DD\̙{]@gYee1_UU5m`fSXǎaA3gr<|rv!!nС(QAh::iX54E4J/r/`>UEaoO +*Mc2!Rkheh>Y'}ݺ3?nܰ).:jllkhhEfُ\xPDlA yChhve%BYa0롑z".c㫴4116T "'w2&&!Ǐ_?t(W Mc謭nxW',bbZT4A D?m+hjH gbr#%aJ Svpҗ/..掖NV, ܹ-ՉFFԗ{pTŇw+3'ZZG7egRP BBܰ^#x|"~+땕qqSrwjn 40={zv۱csLf쐖G+Ԝ;wn W^K]NVrrbN?w^+x|"~}ԫWUnىC ƾXH(9ٞۧO 700y;BC33K'4//eeߛ7_܅USPx|"W[V BrZO>zG["eekr@A53=}nkk7,䮭m:z[AAo|q\YH.%卬쉋:8<b* \>7QK!xҥ@BPuUA`ߟt +Dz#̅  y Vǿ"9zTΝyyAg#ԋXz^ 0k,iA!/_ocGsssݭhi d]]݁VVV } I;z IDATq˖eˆ,附ßT{@QEc~޸a=)q!VRmllKIxш tq9ux:\<O\o!t!Kg堃@:rD>>t0zz:A."4n>>_CDd B$3tZ=*((b7o^GGdgg_zuVV<ӥYXXʦ&VVVff *ؽ...3guqqE\vMRRrƌN3g''Ç JKK[x1?9hSeA222DEEOCDDbOOχ>}:PmٲyȧHHHgffJII2(=.//onn?{,mmmυ_/N`?'O(O؁0Eq_qqqCn0z ')~B؟ڕ+ODDt *GCc{Νjj : 1)+FF>?rD޽˖N4 ..;wTVVJII xG```(++SWW_lYxx8ac{{{oo/7HkWUUc0 vvvvA=F;+++??_HHhڵ999444ckbI@@A|։HHH֎XVDF>Sssy4A hcEhLz{mmopqNMZ[74 7/+뀹U]SS~z'''AAoPZZ:]]]...AAAWWW<<<Xl~~ix|BBBssVssXtוp@A2BA9F"21Y{ӧ>241tt4E/^TA !JpH &RE%!!V\ }aZZ ...)))wuuy H[[[JJΐl޼ׯꁁ`08er:ABCC5>{x򥻻HTWFD0߆u hNCT#9P@`_J$£u}-2.]Zd CQ4))y{{ϙ3m111Ȉ/(?mڴYfm۶{ƍ +''Fjnn=};wvtt]}8㸸s200HHHp}OL7:{l{{!7IIg__kOH~֬qq@`;No7 =4ϟl}̑#MPu땗W2''<Љ`0qqq3HEE=!ߜ c}{zޭ<'B$vg<AgM@`_HNm|44 k|Z&} '[,ФH#4n~ :Q.X/BBQtXlիT__>0i,3-رM,, CA`ppp،e#,+/*&tXpq88gbAg EhX/?{8 t+)q=ۿd,ЉH;t 2$ll1 #e:q"tP^uɓ鮮Ag.W ̏prR꣤Ф").AFQiNIySP{@` :\QQzZU/>3qqrkJ-ok~t?*(Lu O^Q;(&&K57jE]݋\WMb3gr*(̃)ѣKJz :QX/B?~s@13,VQCKٳZpCS'O>64Ǽy|||;;q@e,;xpҥAgEI7/3ETt '~|-N8@]}++Sb+c:p`cjNN/Y AS Og'NM͏=>~7U<Ǐ6'اO?(8zk5kVmm-g`簰`~L$r==U8߼it;;Kˈ؄jjj&tWׄ'O1DAAϞ&( : Dr_QSMڡC/]2b1-HQTEŏ=[,"RSSC՜xg厎1NںڱG>Keiifnssi4Kl7"1R0k\N(< Νqq׮YP5]o~md$s.=[^GGWU5͛Ƿw*6RuSAAu LLg()I89TΙ3X )@#F))aYд75]bq "Pa$tZ\\MMר-e?)*a?u'$40^;44{ݺO[Gb+!ᕕQQkh,yЅVMIx*lH6n\,''흂K AX/BC4//6,c{pҶmWup:5(!zMc~رM tꘘ b`X q'&14\eo3J+؈yyդ(< !.d|Yu#33+.b;MAǡ,m /cb++ё&[_~|DDJ&"@IVVlޘwj^!,<4ЈQK ^kOq_yXBl 3"+O. rge<)Xŋkֈfd8߽d 9hfdVW7ˑbp5Ҩw)6b\nn!!O@ `8utEʊYZʃ23S̜ :Eh_Q__ TO׭;T/쵴I49-bffHK+۞=}: GOinopa;YŞ=Qtt4n٭\8߿.&&?'M_mAc]~~el Igad;{`ժL(*lFwȆNMmaJ++Y!ڥAg ũ+34.)3AgV_ᄀaҥ™ΰXlhHF渭 < 6}]x+WΙ#/? sHLSUsFod 4 M#!՛7S&4zqjm:x0A_ņ @gV]]˖-Of:0x<,trmV|g%E ɛ; wT$ہjiiDDf\LOKIIdZqNNfjԪUxz&:T)"G2O~XlݻWLkkWTTi# V=29֭9i11666>>x<~Ӫ/JM}[(7oSQFFIr789)AAOܹmBEk_HIJ57&t::M_6?J۶H߼IDth  NQQ{@S<847wHʙ3t,`ӗRUnnG|})XDΝ?~h[v/^Tji]ҫxx]Ҕ]lA  X/N9hii<=@BQQ >'&~+yɒKH9>}je:HBCbŜjh{ $CKKqb%1VҥY&45zqj]Z[??C <}S,[6tleu]Nݻ*_xш*ބok RBq/,<=5usZ@mmᅲՃ Vy4ӧAzq xJJGww}wzx%ֲ$۟Vu~Za^ޡݻMcm._~pU爕1,~m}qGFf̙ JH_m ,Dn~)33áCڠ-VV׫"#)%_OIqXbPΝg? I+שSzttW1 FCcqJJ,аttsNJIe `8Uܾ66 ./ﳍM=pdKk114zz+wRjßqp0PBޖ vvQ?P ::׮|PG6Ax{oڰb %@P__jhh=trk׊?QQykֈ"99effrr'=zQXxرM[,p}11ffgݯ^Um:Θ,_."$M_N) mٲر>Y |`8%&pr2{xh^[\]5BBLg(*64 "#=sRWTIɭԗ.ܡ}˗FqF`45)FSS[hSA |`8(={֐B _6].U::z\y*#sKg?~| 6v)44[KKtό4Gnn]KgtUUMՂV…L[:`8ɵv{z&A9yJss+ݸqq^ޡs綉E4yyKKYZo3*;II͛^gRR""<#峳Sb9{nÇ $ߏo/Ν{>QQ^qHǏ6+_ϵ{رM3Q>]LDZZt1aaaqJVV 8' tQhj.IK+BQj]{`bwuՈ/.u)֋Y~ǎmEGvElٲ,2ҚlRj:|8iJ}T <Թb32J˗whh,11z;qF (6mZlw* Dxc#D8\ R`tw::޻W|V λwW>MJ*5kڡCZk&kײyx7lX :D\d p-zd"!Y`0//- SW_:dVΝ˨k6ϟ;v}#:z`O.d^L$4\Uu丗e]]7 lmiAg7ZZ3gٙ";:mh FMmAgFtM=,9J x>zr.(豛+窪tt.66dbnnmBUS[8EA^vv( 1!7n<gh ߿^]thti56AIGLXPT`ׯji]`NK;n)(F$1qOtsA"E_ٺu9,eo2,s.s: 's޻NO/prD3A W^KHKIq:"',-A!*qII FOO,Ejg:NN[`8|=}=,!44-˯^5{GuYŖ))ϒ²$%@!6ڥZ:`jj^ln?|41^l<REsw01YmoY :['IGG{A1ٺuB^^ɠ@P97N12S>*2yp"ml"/47wDDX:O[v+44[P{b`:<+#8(++E`0oMϞUPD,^~33 ]ii{UTX[[[,-^K" )=M%VV>?jj <ՅeDq>Y >vD:> `_: C **J?44rrSQ9[_+2:-͑_*AHsv%% s@rAnhh :'ꘘ|//]/кeK-ii{-!ى |$/ɓ'On{wߺup}>>ϟWGsWrp0 F:tt4 \ih: ȌRRû??Νk֋A?UՕ&ԕsRež>|TTޚ5ϟϴQ|x;:.?7>ں5PQ͛/y[]ln.:i^nlbrtA5%xAڳg33M6SKq)=2/cݦMf`OJr! )SS;ᑨ0/:=P൴t" hy'8GXqq>vvFH)<ܲ&|*Abeetuxsʹ֋TǏ3gޭ,&6~ۺ5fܼiJΩz˖`!iOS%D܎ (hWDzeGML䔁NGZoܰv tDLlܹq7u[hM6^zG$3ۯ'5QQ;بӷoXh 8\_r}DPׯ.:ѧO?{x<,lz拐' jj ݃]u [ٳr>L`H>9qb Qy^pTNVVj*9C<}u懅Y00XBfbktt.ڰaӧff`Bjn\ qw02Z $ޛ/kBCYV Z{ akϞ}~kRo߰SNss,,iiISKv>q9}}^+٭ ::+Wv`0()IxQN-~spPab gSSKܺu( A@П8w\K^bn~MEe' IDAT!U&LJe^snqPIbII~СFSSIKKictA%$ĴY`$Ϟ^ ˆܒoAAedݼÇoZ@GqSY<'_22vx` UY|ڥw 9o~?FKK(qv2wRR'Nl!>l ee}PS[H١ah*,,{۶?DỐ7d4NT Յ;r$errMݻZcrrM)Xox.#M::gSo] $$ꔔ|ۼǏX@00Ж~ &`JP) ,C s~30 1%Ì#3tSϽt@'VόkFFx"9}Z1p񙒒-??54--ǩV(׾X/B֋Tʕ'nn3grz-Y2uK Yʕ[Y)Lѓߏ`D;fЉ(++KϟW\KKby& 3|E_ oPt+YBĄ=M~}_K /==l獰gNNN}={< ,A66z ǏCV+VJK ;99sO]}93Ș QPlACOoů_]%۷Z(,}{H}ϟWMc?~&| &֋8w.Fq֬iocmML ٖ<S?RR|}a\]7rszyy^eeG`W*3o߽{N|M-/"ux@kox{fe}qÊ2Bijj߱#ɚLeD@'(ff-oQII/{}>}C᪀U"hhh fo׹䇆fX1tLؓ'UTμ->~CZ~64)+KjkK9;%D|fxJ0\najpTWWׯ?Aq"x1ؘ=t''$4xR=9pʂ/aOnd}}3.^̔ ٌ ϩSo߾!",,L\$Gx 3fCw̙C> W={Un,xI%{ *3#߿tijfc[D鋬~]- >Xlfm s\5, #_LIIhnnFQ4&&FLLҥKlll222?F(III133A0 'O޸qCDDСCp83//3q8??`0NNN(qqq(b̦O.(({ׯ^ wrrZdIcc/|knnf``.z@4**JBB(zzzΚ57zzzzzz6ȕ+ODDkj I#td0wF&:~~ǔ7䜑Jz%,[v#..qbb?~#s^w|Ϝ9ŋ(^|߿s玐bkk+EmmmTT ?~@Qڵk+K 6<~n'"m۶PA[[[/_ HSSO޲eKuuuqqҥK]]]544PMIIXt)^bbb@Qhݺu?...^p#G~OB;;;KIIf%R}m݄K3 aB?w LuV,{UA~y̙ {nժUÍ?Īo={ suMذlӑ^X^\ml$?<}dZҊUONHhK e^zb)իOm#ɕ_Wyz&߯O@Eŏ]"jjLtuŵsΣGfffTVVJII xG```(++noo&lloo)=AzzA 2SZZ˗>@4= ˗/O8>K(//E"//oH^p; n_ׯ_%%%%%%44/[&rDz\-f ++h^guEd GSg -*\IIr>U>1 /| KJJJ}}]]]G100tuuyyy!֖3'%ܾ͛~Z\\ ƍVZEOOnݺٳgϞ=Azzz/_:taYYY]]]w=Khkkkoo!ҨǵGIIIIIɞ={~:sϝ ,zq8o5iEE 5? goT@bz_ݾ]?c}X;; e6K5661`0ђӦMdȟ; z-C;HFF(77ɓ'R:88 q Vh {#qUSSVq1I}<'&v0%S#"4<ڼ91={od Γ7;322ՅѵԚov<u5ܘP=JEsAea fkkkbb" MMMTUUEEEZ8O(/ڣ8NN7ee} [+)qˣGPR:]Q@IQԋyyD4Ey2FrfzzgbX<?ԚtP8d![`zq1ѡzԋv} O3izH:8Dsr2{yt*+55ϿxQkkgT jOqqq۶m{ߏgdeE- xDrrk3NJ: FUU511ӳ'45icccox:d47%cn_Fߴwފ/_rʍ:>!OQQ5?cAA%Ǽp!slwj8dd60 ~~yw ?BV`ݻ>}#h).w|Ig!.]Zd CQ4))y{{ϙ3m111Ȉ/(?mڴYfm۶A;(7w\ E{{{afӧ۷Y@@s۶mX,vs z-q/z<_؇4Bhhٳyxx8/?p%dzz˟ .EEN!!Yp\x|@CA}..q8\ PE߷}ŚM>]PPiC HTT77ӧQ>}: 3g$᜝yyyg̘|}}֬YC=sP<AΝuĉI͛7c {{!7=#"֋x<^A}Dm8 <._~BYȀX<]ʐ~d1+f^t>^ MPg'.%卓:tioﱵ!++sZ 8.~uE斟>gdTKKK}}ڳgO}}}AAAGGG8 w-kkk++|11z=wܗ/_^zEh{ِ7oX[[9{޼ye˖;w6777O>jF(rvV",44Ϟ7A@__?G׭[/ڈ5K܂ p**de}^"#@(":3S b#t@QTBBRRR;ɠ )[iEUFzzzS5^}*!O[d/Rl?;yl3R/x HL|(1}XW|ӧON5yc>Ú6O . *UĂ((PlX ׵* RPQ"HAzBOCϋ!$>ņ3OB;3g.cl>:prMHH055moo)m5P( ,,,,--JwJc(7|+57ggW\!f222^^^CyӴtB{Lyȋ566gIL@سҥ66oTqΚuxŋ/_Ϟ/DL&CT^^s(m5'766~MEEe(Ix8;OC~a!tt Xwasc"]y#& ϛ˔ Rӧ1e!"({<Ϡ;-ovU,@ߙ3g>}״'N\~֛V=z@ \~}r,[iiiVVV7oܼys$Gmɫ4XmAgiw~$ z$xX g lmo?^^ykс _d觃/~HK2EmC9*,5D>dL*!!¶شffo7/B7@$b::XXK x[M C ""#ZYM`F:7̰L)lPֿvI@F)11177<8:ijʚkx{ǰ(/c\9㳁!D"ގmoLFCR[+/n`H¡&Of;]Dʦ?_0qۉ,]jB||GhX\\?P:Ԕ dǎ=ߺu%sLQTTA2ȋC"^bcDox[RzVO"LL,tq"zii%$hv~zBԾ|cC3fgWefVvA}ҡhE޴GCo5ҵήSRt!E$EFYXh 3in=XUO W殣IZZiPPbHHb[[׬YZ^^k96Q(T,Lb7WW]>LLTHQ(Բƒz௿^YnRRJXNZL t̚?> (h23+}r,uf?#<<ѣ/2۶^Ҍ'r:.59u*x7֙4I^nd AL-/o/TVwtuuDD@:d/_np 0=c%'kkˏ~Ed|#''.d2KK]VLl ()x͚ZZld!x '&'$0li{bss nYLpO&(goo׭[g3L2Fƌv-JLLo:45U]z*HlPW׺}ck뉫V)`?-lO.޿9?ۅ'::kXtTW7'+8at1 P"\\̽c޽j}Tuv 15UNzz ;Q|.9 ] 0͛@n"Z[RSK֯uuWٶm4 Lػ.^\ɱD"Q>~ NL1wϜ{'w`"2TTf| vyN:uӧ젠-,~nzKg;NAHM@^D@llBezLms^֭Z]~~ӧڦO׸yj"wߥP( w\:=..]]ԪG"Q**zʮ.2VPeixĉ"_U]݌ÁiHM-x1r&&*Hcxqqa & /" &&[OOe?~%xye&OxؒM,82GVvʕfkLţd*ݑ{͝4ѣ/ ׯ)N[# :9z"{Ѝ@ؼ*'狉vt4C .">~̶1^T*|`i0s瓗/ܾxGjiiqϟ'||Ϟc(:`3RPPSURR?vн{}|C<^ Ģx<.)Eۿ?N\hSU^ha-ȋVZPTT7spw͛L,q =ha1xOss{D_*44p;wZ:8" EN99U5 iS-3qqX:엉JbbSѣ)O0&t?f+ :uȋSʰjnnpՆ 3UISSݒ[$+P/AA /^̟wؒ3HZd2?J||yyq<^Rw۶ٚrXvKO/g-:]ή:q"lǎ ӧ3pn11ӦM++ kVs)+ktt"Ϟ;~j I|8^__ɥ1` 2Zrr1tu00Oءuc--Y֭0Qcc[llˠѰV0 >u23+?rŁY +ut.ի4II#')L} ƔUbb׭oay֚֮ȴϟs֮(t]HPhbo:kr3g^&Lg֘&&*  Hqqgtp[%'E$$,*>wG~M|__5znuy,D̟xf)ڊHWn--ݫT6-%&&hccWK^Դ{uYDl+//qbk*$$IRRed¥K}`Y=C\9yѐhq<̬ewtt2nuqp~@,*-4+&3ki66'%0gx4\de{/33+"#0ϟ'/[f2zN0ȋS[RTTgj:;;I.^z*/;C'<饼}j7BB|;|d5DFHWLCO8db2^OO+򢘘:.%E!+8k*)8?-g V /h4Xe߾c=t||>e / ]Y}}3g/[f܅y _$:C~~Ǧ~9:N9u*%c2gA[?J2KmmOll Vt-0~Ғ͆GEIH(Ғ-uu^^o3H7o;{6[撦D"͛3DW0]juqZet8f4[z$Wþ/tLDhh+snj60Px5 ü}=Txv_aaW"] 0 uuϟ'9Bȋ쓐Phf6 .E lh1#^ը'mׯ9q8SNNUPPiGsgpr鰸vPIiץþ/6cb^s][g;ƌuȸڃEE-3A."tvˇk˞˩0 ?v+WxIKKgXXJPPBBB¨ιN=ӡoPYy0[zӧIIE&&*#MOOV "%'_u lIz99i$@^db2ě]NPWaA7B IZpcp Zg$ :o3RHҝi- (K}Ux+SVCVxG ":ly4c~F\ۂZ[ֲjtyMRSKpC9 _عZWol-F455-)O|ʪew4EBt)v_+kjZ RQq3gGa:תUSO ?yrS^20PNM-8$U]u`3HGE6t˹;\G$7o~zssnIڷ3εkN6fP`Jc /3/CeLN  Kvv6 ""RTw"oޤ?}p:g ҅p=$-t>| "b' ,(h2#pgϒ||TT4MrM@gfPzttUY[ !,gV^lm*(UWhYVVSw 5{H /Css{II at)R LĵkffVmU`PD:ȌqXL@<+ffVյB4v0ԔԔeq81VVQ>::?J@^vC]!] 0l?K^ރt!Ev AFFLM-}cwt]\jk3Z&bAA 5ޮH#@^dR}A><]uaN\nNNU`V-- :>l:Suuy{x123 @|g+.]z%KF G__100L浅٣3`!] 0l]]˗89M1EvBz5jŊIZNII}P6[]MNVTT+&3g\` =fgWuCJKLLTll 55e奤D- HFf̬YZO|y^40P VsוN@kL(q ҵ񉭯oݹBxȋ,G t?i|IIa jWiiCPV<"B57.22MXX`bûw]+U۹CZ:|WJϫ[wn{ij 󧥕8\OGdeU~1Y7n]~8ҵ/Jass4Dq㝓Ӕ!: $>{_U<}66`E&&(pbxlw:ёaQQA ё Nܻj$`0hR[޿v \R.BP۷F"edKKsˣG_q@ѫ;g"GE[|SA32ۉҡ)Q?ԠGb+VL߽{oW KUU$WdGG_._v;Lvb&Y.+Ν(]]yb>BWmmKp6 iiAA!!mm]fi8 Pee%%LI4>dULJ-3/vnyVMu}LLW8QɓoYPˑ` <ljjg>r99Uto55o>~Uhhvtp04Ok(*W~$M&SL- 0fҸrKK]njj:> 󒬬 ^zzZGax!{өS= R0_45nHGsw0 [X˫I$ƍ>߾=}АR/AA /^̟ggg:c F@鐏#//Ֆ55xlي&Sӓ0L]t d_WRyә6lxBua^Q =O9A[B:64FFNZ:PAEGg<+&&ڸH^o4yR {e;?,%"",YTT7d* 7uO&Rጌ3LOIN.X^^M@OۦO׸u;::ƀv}Y]]|Yԩp Wa Λp^Uaׯ)S&06.uDxaaݛ7oKN.>p dNKE35U-+kuU_||!!vRFT866{Я0|jo`vr~֮ȴϟs֮ K KKKgaamqq.@ IDAT=H#(gҵCbo?yժ;5&0q" /B}'ƍUmٸg ey=K J-Ab1UUe(Ok}`PdϞ%0LJ?vlIwiq=K&(lauuX,3#-vSUZ@: bba޸Df^}߁!??VEEg:1Sp#]=nglMMb)h>%sĢ/v\78ooWMMva|BBKWXX@BB#~Çvb}14??fݺ;vNBg]NgѨʦ˗-2`Qgi*~ѣZjFF@EEulK{xYCC堠Emm.rqqӧ\'::`e4y%LMUiwv4 ٮ,yLJ`0ܾ}رƒ"<~]\|K7&\y[Iikۂ"JG^c0( 5J)ߝ;8mmmzzEJJ1ws3A"[盞4Aڼu480 0BB\UO.B$R]{B`&̩||CCy[[ T[[;CC4fAѸ"EIIɱc߿V+_^^F^hO(J]]=''g'kkׯ_檫32oԲ7uqW\\?~pҒ M|;G/==MMYb"--b0G6 ]`b}}}FFRɓMMrrIǏuqF7fd4BTSfm=a|5ҡG6"K֖b1 %$EBBX %(`BBX 3Bh)-%&S(T b u3T*511Аeddttt8 xmEE_qq10h_А111ȕC[ZZ444iyWKK8zumTuH [G^mmkDNIIQ~ˋfBe\wW2:faUlJJʪʪBQ(??H$0 A054PGEECt9=s ΋UǭXq@],u_[[Jss X`g}4wR${YYAA۸n)2 CQ**R 3]5g̜A(JKu>CxxBcc#Ax< ddd<==I$R^^ zǏ;,--f͚aAjjj? L&{]]Д)S  qccc_xadd$,,,''wyڎ(ϟرc92PaSNz*A h4z޽Q( /_B"%%w^Fax޽uuu=vvv?88xŊ5s_i[ 08~Vhɷgϒ/_vĐiϏOiktVp>|`8fzzzzzǡ-6fk֬YvmUU=x…˗߿?77 kk?~\WW7--ϟfff{hV//{a֋/?~ 0X{ݺueee0 A#@ ޞ@ ܹs~ ;y… a 366a811QPP UV͙3'???--MOO=+IMM Jv^OVUVVlJJ MMM´XoUCy. {ꕤ$DaWWWJ2} νϿ|sÁk<}:Ba#k|MQQh4[[[I$Duhɱ2111c @$$$,^(&&Ç . BL0zYYYJhf͚uY삂`u1΋L ZYlYhhh]]۷oWZɥ.5io'FEwG--aǎ=++kZLJA`H$ƍ>[ r6ca^% :JJJ\]]a^z(EОBJJ APXX??ϟ?iֶo>QQɓ';wL&C n0 BpSZZ?̝;ãA)))90}F{\勊h9sf:::TjPPPCCmllVVVI;nGGgrr[F,Xcll<{蘘Z^p {~~BJh""">}ÇyKKKlllttt}_d:Rݳg*q>))Qss<qjjZ9=S|ѣ)+vڵ߾o12a0/ݫg_~0V=##nbhnn޺uc&NAPKKˤIϟ?~__yQ(^_VO@JJcr*nݺ;v}6""e8P\\feeu͞{9;;:tv|ݍoB͛B D"p-Y~]]]D"رc it,Xp-333>>9s?~\ݽ0==ܿ͛;;;}  fnnn'O*R،3dɓ'peL޿lll^ZZeeU(UT4yz:;O5F`~( "yqE`5 eKdѩ`۴i Û7o611!mKcֽWkkWC j@:tj`9ƍгghMz{;vccc#{00a~~~--~w'4}/vʕ+ƍSRRu떣 Ϣ߯- Ş>}ᶶ6~~}uYRRRNNnUс<)<Ǐ!yP/fBBBO/0֥G_{bXQH$͵Yηw!] 0 UUͳg_05=_t-iJLۀH$ݻWFFFZZz޽D"qʔ)W\aByxx0L&_xpccڵk%%%<<<*yPTڞO&11Ş={V@@ϟݏFGGzmoݺ5c ^[?,hϟ?;v>]~" Ϟ=]pC t\:| {<4č}e#[AqgDBaͭ4鄅Fkab߶#wܑ x%mC cmDhA -_7n8^7RSS[~76ڼyrrr}Nx(Ϸ-Z@ ^~1qy`XGGG~~Яp$::C^~wqqݰ X\E=_.= \oE`žmGtuu}||7x!8P7k#0J]d Yzu;Wntfa|0 ~ Ǐ0 S(ZIȋ>~(!!quڵW*ߏ'fQIHm14z],^u=2ŰbmG֭[VUUkڌ=:cmD`vssק-bvAѣG,--߼yٹaƞ~mmm{@sμ^zϷm_^ @B444'X[[sNKΩ11QQU )FYٱbb99%7:SFf ҵݴGEEu8X AYggg؝{- ###aaa99DP~~~ƍ믿a///11ٳgx6D"yzzp8OOOD[ݻwʱ*RWW8w*455eddݻ}ů襢"eh<54p99\?ѣ)7na0|;GG35CCȭzld.:hV]]C0pQx=:++KVVvIIXX\:7WXx]ݻ _#kMڳfkkk Ykpw?ޔ$**]NnWs B8YVVھ_"]0cJJ{- p1vy177w۶maҲq:7il_hZ٫B>髶EIiOXX0 EEurrXZtvfk+D"yT͜ynß? ] 0Rz4p;; {]}֙Q[uCokR699~藤 soKCBւV,,$$ꊤht#"pss󖖖h[[tr=fffҾۚ@}7AMδlɇCFԤ4/FD_ꨤ4Zuv twjC" @^΂`/_6ydLJ|-m۶o߾?~mM,FD^5j x<bqqgtkH/3Jxx6X,< gff A˗WZ8zHnuV[N0ŋAO3fٳ .\k7/xժUs]`Ձ<0yC$&_ҒDl+//qbkðoܢE~dzÒ"KxBII!!!ONII }ݯ5k~=4~&ퟗw:=8kzoݳ7o5!?"S ,0iiix𡖖VZZڑ#GmۆtQ3YXhII>sIHF)66r>dyy}rEs,L r-/JJJ\0ј1/s۷ֶVMMmݺunnn#VLL8>^0$$qhyQZȋ-w?1Xr2ҵ ;޽K?o'&&tEh4R:O>aedd ˖zT+;&PWё K6Mjjee D"CO"Q__B}Сkל/G5Gp&aa?"IDATM&..nT^8_bkk|ӧ&M١oޤ?}y8ky%KNX*#VFz4x#0QIɘ~0/ #B7uT;;;`K;>Ρ4 )YYNE=t- YXOO/s}{ 8>;;;L;w"UH K}CJJsBAAX9,,elzred8vC]!]˨Qo_`zz5X(,̏tEEϏ3}~;Ņ]\ "]/X822D3μEС7Vc0/2 "(SKAXF4yÇ>>0{ٳ/&O>űfnut޽E355Nˋᩁ (t-B}g#"R._vƙ[y䩩I:7 N43;Yt]JFfԩRo*Ay3`!]hk}tIl!{{S0E"BJJt۶9/]Z^>g_K\΀aҸϒ%F--tQSjno9$ev_EECleԩlrw[⦤hTS^@^Lh GEFUUb鈬;w\u«iΤn آ)tQ',P'MVPPAٳ/]vp0[~XKc [Xhi* jY[_gz{\椮.l%Dvꛮ. ׭Aa'0ʁp40aK}6X9_jvwbX5M>Ι?c׋=6 E>`j#ϟb^L HS,cHJ*^􆃃ӧe/%%tQy6ܹ:aatAիo/_QQ rr\]LJ}Z)ȋpеq,1˧ʨJ#x~1> ̄]T AAAgUZE__ ." LmԜ9:m*][B k"۷񇖫9>J58kҫW߼-ȋp7040A"vbax.*v 4f#G)igg X:0q K%'$H{{DGg\JBB͇yMOz:**_Zz* #/S@^fԔHݱcnbh$dfV=jtuvݸ.88AFFefK,<LmŢ,|KҊJKVO[[צMǻ_deU͜y˗#Gtv"D /F%K33+rr2[MMn9tLQ7w˗bcn00 Sdedžb@˗Wptzd;8xYZ^˫v}SX-FmF4h@wI+)+/oP.ȑP77yX},F"QνER7zj"`)]FF̊RV$(@$7mQS9p`KZ[cM;k/vnD.`TShS7n K}Ü9n>g\q–󞚚Ǐ|!:&=TEF ecc^ODYyx|MbbыkÚBB@(P~x]\ @]z]^,-h .*Ջ,,Z wa Y1DH>ɜsar̙ۇE*~+|qRRfUch_Trj}IIUޡ+-ԩ/8 $3gR]lm-ĉ噙v"P`|Q&YML*+9BW{nh]75k{Mb?^^ 0@4H6.\hID1 5Jnyinore~~.=omPr} ưO?gS`r0HA=2Vm\hbX/JM%&&z]/d5/RR^>KNEDD=۪%A`Mm67֭,|qh|j͛/""֩Z0,VYtN޽ E5ejի$ҟ,'mFFAAͭ[/cc[Z]駓njMXU*F.$c:BhÆ[ JVZ|*6m@Mm*NNfQQwds=kjM۷ϕBy9Gfj>_~RCUMNWY/Y1 T__쬂 6ZSl8m>,%T*Ð@ F-_>q٫'xQҥN~룥 D՚Zˉ{q6qTsH-* G̴4ZZd?NKK>;jj7շogŽ()ǰCxA"w(Rl쳧O.\-*|3T8Yݻ}.ѣ \\Wh5 /.ovsIB A&}?"6޿S/>iJ|tўce/2ujHiiBL&aۣGUQ. ׷oJKDfa?oe@?P^^nxڹ\ {{;zT}33]W5%D"es8-UUyKE石?/Ѩӧ;vlقvC"@M"B$~ҡNdB`q8ƶ6Cp{ӧh@ ZTvvP(e$077K̙ÇvhB!j;ɬ'*WiiCRRnbbֳg::nnnn6sXs4Pg  Iގ]R)>>!YTbj'_;,'bΜaɹGGgxm+~HJIwT*ܹ4&dҔ)r ,[dBy{%c ڕb<+44ٳL<~իYoV,\"P+ϟ/\ ;:QJONMO#>I\teo .dzgS;T%kryݻQL3 $_0]s33?~+s"hykn߻M"a"Bq|Ӧ;w.PJ%% [\*FXZD܊<LKKy\Hz>nEKAA̙%oSRvNL_W_Ðߜ{=xcc˜9GkkK&#ɘHkhP6n{{*B+=I Bb2ΜY`HzȌpD¬iip 77)S`./^ƍ3`}[nnn@Bd.ٔÇt"t{zIJv>om$hٲ),V![>y%rJWW{ǎ֦Jcv,L&(%+; W}=/>bՌ-[te=E&N49pS20aMenC©T21 ХJLf:;y1E"sׯ"="jQ$ b q@ R3e۷__]ؽ^|}@޶ Ǒn8~n@ BrLOlѽN{{aӦ--m e Ço30T\` --B\nUnnUu`0 d? d(,,ʎB.΍\.mڥb<99oժ3^GE\kk-}}-+7ϯgy::SXu{??|/<P)EEE]zNߵkW_zQ||ŋe~$}YĉٳuFPSS_ppmE.UUU.]r&M""2222//b"*E,744teK}}Çu<%%%͝;WG]ޑTꫯ2((hȑ;w쳨;2000225jٳo޼iffvIy"LLL-<L/0%&& 2ʕ+S"B"(44rذaO2'H#444""".^xСK.EDDPTyAuaئMܹ#bNT"3[|]=-PO8`Q ǣhUUU.\P(<@{} WYYycccd/\\\322,,,:rǯt555Yz5k dRP%b8::f[n…l6[zSSW^ItqA3\sG%}B}}}  ʉYDIVVՒyeVw Eꕕ[n 1cFppƍ]gϞuwwW;mu=_>8ԩS8߼ysȑ@.뫫;bĈ 6477KOkkk۱c?3Cw:'ҁtsssR2vA޼y#)y)D]z|+V>{WЦhcƌommYLa"P{޵/D\;Qv 4(OKKf0quYXmmm^^ެYz9>  |ٸqcW  @@e1|("PE@E7|(>sr"FSd*;h O <("/E _@/d-{IENDB`XQilla-2.3.4/docs/simple-api/dir_000015_000007.html0000644001725400016040000000431713273140074015714 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ast → xerces-c-src Relation

    File in include/xqilla/astIncludes file in xerces-c-src
    StaticType.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/classLocationInfo-members.html0000644001725400016040000000773713273140074020576 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocationInfo Member List

    This is the complete list of members for LocationInfo, including all inherited members.

    getColumn() const LocationInfoinline
    getFile() const LocationInfoinline
    getLine() const LocationInfoinline
    LocationInfo()LocationInfoinline
    LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfoinline
    setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfoinline
    setLocationInfo(const LocationInfo *o)LocationInfoinline
    XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp__incl.png0000644001725400016040000004335313273140076021245 00000000000000PNG  IHDR9h7bKGD IDATxw@SWF"*ⶸ QP~\UѢ։ TčU8P Ȇ}7%!Ix~;sr!s 0 5D/@@v `?޼y3&: 3.\pB1DJ={,>>~ܸqDd۷oBd'RmDd/Bt 6 d'.@@vى ə8qbZZѣG'OC1}͛7x[՚6n(HHz"iى qss;|p]]B>44tҥz78rHRRRbbaݻ[;Tqqٳ~Ϟ= ,5kVpp0N˿}Gf_l:J16www 'N N}uǏ/fgg Z4,GΝ{a&)Pd'29<<ҒƆ?{VSSkhhضmMllʕ+O:U]]}1Ѕ >}ԩS6ld29&&o߾~566S_|9j(qO8q/_>}/WXqԩ􈈈+W]8{YYYXXدg{;wnӦM˖-{i=zں`VÇG=qDmm-]WWףG MϫE⅗.]ڻw={>}M@wى0,??L&[>>>ӦM>}ҥKt֭[B k֬CYYYyZ2lllLPN>>> ,fyo~Uhhǎokllb{*766gϥ~ϰaÆijjrǍlٲwRB߾}?>G2L*cddhll\VV633C1cܿW^/^=cko,**횲^A|aҥhuyǎ;v9r$ɼ~Z|}"Ο?={4ohhh+hhhIR]]]eee""<{@< ĸqゃ-,,ﯫ+J0B*ޢwEDDL46l6;::7ī`T\&3gΉ'222tzfffTTgYW wȑ#Wxxɓ@w}'2֭[$J]~U[KUUuʕ=zXdĉ7lؐؿ_vM^>}jnn޵koݻwǏ::+\EE]TSc1&+[$+)(@. ;U@Ypffڢj͚ =ꮤDkש.;6ǣG0ŋO00sOV=Y۷ bi`2lXC-mld Ƀɾq#;66z,ܾ%qk/WlWg'g;vnA`aӥgl -ŻU 651UT퍸B3֞?,2aIIĉ>>G۴weKR\ܓ;xyX$NpL&ҥ ffdkkQ",%+_0,55%;;Cnbku@vڐU~?99SCpOQZ8N}}_tz=&Ox$yye'گ[À;pL&;/zd+deذ^ yɓ^ܿ |gDJJjOңw] tׯ ƌݰa!M 7or-p0IV4U#:Lhd'zl㨨GtzS7cvTUU]abґ~^De'\|/^|:'v5{WMVrrJ0_ʐ!={& &ΥK/T-=P|Lý2 ٳG臘xI3f G=`Zf˙aai98\pXq9s,y$;ySx+W^mrsP27uL_ Btkg~ΥK/-s^gN㟾B![Y@vM={,mmU71ap kݺ˗3w'%{$ŗtٲ1s ڼ55 ޑ_–NGGImv=MV=gХ ;.>.{Ș5kx{{#˗ 7uu115g'8 ;sQNllkYj#hiu /::j;?ا52a kbىܪmJN>S:t݈7c hD&|0RspEsIJOSv%{$ۂDƔ%$>GDٲ%).Νs;d'8y]G`Zdd'(+ <~rrFgឞ/:=+> N ىa0X7o9yދ7qw~yWIIRztri:e'nddH?NBI =6qT#:ɩ1cl !޿/8Ąے= ;!~ҥZZ* u׃/?`%=O.wu=pbcWXY,o3gf&&=gDPh23ef旗w|~ Lk,)8qh鿉BvW''KM|ι^^#vb(UE-Y!ʒ=YYfpPB?}-LT*0Oћ6MŇ,FɁ7 bcϟ<|Q&&ZI͜y(+]N&'ݳ^}6-E!FY|-3 dgo0h$(r]B6RZZ*[̄dH@N8#0tw<*yɓ^ܿ |'Cdt饿LODwT(LM  dŋ/MLdONNɸqS}OtRS.]oaX ijB' BL6MIvdc]{L%^%%QQF'nn#nj%:jjb\VVpB!9+uܿơCyoko!0Œ=Ϟݼd#H$iȪo9rhy!D"(, 0]SsodLRRҼy:o|yq8//>qhwd BpWk'ss|M4yѢa k5wwSL_ C$ys"Bg&M"T qUUU43Ӷֳб171766JHHXh!F"X,1Hz|F::}ynPRRsm?5A! |zf'zvv Fd29s$l01ڽ{~UUÕ+x/6HPd^SJ\\B\[C&Đ줠r£5Lfok&cر)5A}T d2D~ߏmCHlb`н{lP~ƖDGMWj&(hD Ö.EHlÂ;@WU￿͘j8? CgySR܂! :nB!O0piϞ@UTrg0 g=@F} 0777UU]_,77^I !dccbԩSI$Rnn$ԼzJv76VνN{*+TThꊪ **4CCmKKcu={txܯ_-N;xeHI,4b|پoEEő#Gv>n--J0@#--"+AEL2EXuuSEEceecEESEECEESYY}EES]]3TTj44`b @"2K.͙3(...??p:ϯ_8UUU'.줹ð}euFQPR QWCAC`sszY חZ&%z^/[!Lvyy]C ^o߾mnn&G IDAT: ܺu󅅅!333 I&?\|yرׯ_'.()){.&޼y9.-ݻwKJJ:PBB *++1 ;s挍M]]a #00POOOWW700` n߾mjjzm۶踻WUUG ð˗/_QQ?0d ܽlѢEikk#1 =RRRأG{raggw?B]]}˖-6bĈbVQQA"0 cXW\0jҥ>}Rp8 (++7*kkk̘1#""!ZsY 4߲G/_u?@v"H >IJ <<<.]7}}Oⅿ|5xM6_SNsΎ;훕=|STT +..Ruuu!!!wHB+((x{{566!TZZWŅN#-ZDO8*//Ν;OaXrr1 PRR0uĉ?~ׯߎ;x#yB8? o/L ê˹ TEx`׮]f2ۗu:;H8RyAky%줪aǎB;;bujj, z}wq_UYYI_UUpjkklvkϟ?N677f߻w5{ Fedd2uhiӦR(߄ .X[[FްaB xT9997o0,66vrQY6cX'aӦM۷oOjgyp+Vxʕ+?644$H$iɟ>wԤB(??Egܹu'O;d2YuuuL&SKKy>|4dȐ( B44h߿?k֬AݿݻӧOGl+++|wkkk#nx$ϟ7nϞ=pc`޷Zkd!ui30 2o޼ .߾}U`{d'Ĭȑ#&M cVUU_FFF?K^z{jllp8ϟ\l̙3+++~ ''ւظhѢ׿|رcב?02 }Fy]_[yyJ=x{=|Pmȑ#CCCBd2900!f^#CqSV!wӧOGEEqon۶B***6l@ܻwo==5k3 o~ vMMMyyy˗/YySQkCù:uƍeeex(1A}'3f̠IIIa٨qBHD`C /kknnnBH@z8x𠞞ޅ ^jddXtTA}'3C8q^3hs_0i&ax[+==gϞh7ЫWj ?ڔ)S>|kkk|  ;o߾-ڄ r6ag ͍f?/݄#aðkkkx  N^'#dh8BǏhooD-08AJ0}nRB5WAAw] CkN3C Wk^lr9C\\\ZZڝ;w h``Fz_!!Ľ~ڙ?zRho߾{$ o$9O6a Q[s'&pZL`!Ј all,^xLEEEk֬ qttܾ}oEE]ٳgvN4蟞-Ї:GB D"` :uٖHPC7lp֭ |$ oDl("цs*<99۷o7nضm[kC#"pfooozOZ!b0 uppXlB( @__۶mɓo޼Ç^z-Yǧc/++oi<Bk׮}yPPmoS)\?M߿O`<x.E?4{fZYYihh899%''b"f2GVUUvX6 O#ZDi+LfjudX!!!***#GĻCbm5pn 3C0;wZZZ9~KŦ%g3=DEE)**>32XWWЯ_?%%%++yرj7naG 777YzucccmSv^!s'!'''g9N*_EɐHB'1+DRB;#C5ܜg}Z kkk3f̈)))ѣ޽{{iiix!i1@===]]@Ro655}A=jeeg쟏ҥKWnjjX(VN^'b~j2++˗ O<ٺuU" D/5jT]]~sΝ;{;J@ khh/ZI[#ab1zڇΙ3[.dY"sIJsΘ1c:;d'b0X&'ӱX//\AWNs';6zu\ff~l &!*|Wa_THa7OM}`**)Ѣ}/+)K2ZppO1J§VSS:sƗFUW7H 7OH;tu${BS%>ޯD}$ƕ 覢8psg"0 CC̈́U^^,#.\xeKRPtwYX=뗝]bqxvRSYjDc>}bcWHrz DC RTUf@t8 D7-Y`~DCMMLUUqG `@r29ycnzwDY0fa2>>?~,G&r5ԻwEDYw@ٜUb:~/>,vMM%KN|TLp:N 6n<6:R~JJh}}ŋJJDq)??ys+cRjjJgh NȆo8vID"zTovu=Q_Lt8 d0*с7]0{ ! + "Yr â( ; ]RR^seV%II[$Mwwdٳ~م~~,!fs~)>((q׮dk ]&O}LS5)R~~ヂfy"شi?֭7l6D"=zdaCtty4ok Lknf9;۷oA7Y|XynbKAhQv%:VRĉ4*  I}75A13g&bҢ֭7,[fsLaw'00UVV;k֡ϟ˹ d= iBipLҥ/g*(>=ӧ2X^,vDZEz@v@*5)LFQ(g϶jڿ@ ySH$ֱcm9s &bgbsjc{#h4 ÉzDt\-A MMM : ٳe唔7*gR <éYYw^,PUU{w'g% ;wQk>"&OѺK^#HcǎA޾}ݳK<)Z? ;P azzzD"cƍGt(--}]珃'nq՝CR ;tHN勗WSp_IRϟ?-ONNVPPΖ s$eeeB0MUUU#RY{ @ d'}]tiΜ9_kjjnܸ f͚jPMMͪUo޿Ǐ~zi:>x`<2XF~µvtNu֔)S;Ǘξ}e lӦM6l貨[500066?~ŋ{ƍ!33[NDƭ @vsecc㪪*ٳgmmmBL&szzzׯg2xiff}v333]]]n^%%^z X,UTTz]}=bj?;BHAA!***22r޽Oh)ƪ#H~~~W^m8nݲڲIDATڻw/5{f͚f^_Sަ`!!!jjjFz)-.8+++]]ݕ+W644Eu@L޽[RR"|K~M__ӧx᯿:/_dee |x```k{)**GDDPԺGFF` /n;צMB]Z5 B999g|vL^3f$Pyy9~)S|ɓ';vX(J()){mD!q֔)J wwÙ={6BqssoV k+;ixIkJKK0fðkkkPN֔)lmmGGG Nxiii\-ցH+޾}rJnϟ ''O^nggϷK3wҺ{'OLLLƎ2,p:&"99۷o7nضmpDk~7| `0]xtN{yyiiiikkX@### */ 쒓`0MXpp~S0&9zhUUUﱃGEE)**ܒgϞĮP 9&Dž5~psssիW766 ,r%`}TSޏbX[[9djx ==f@$L[ڔfooGt شX(\iiwƍxu@@v( ;AOO/,,LBa@@v d'.@PDzݻwȆίG=HZZZEvb@ljjj QɃp82 ;tN ] ;tHTtjZA)IENDB`XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp__dep__incl.map0000644001725400016040000000236713273140076022225 00000000000000 XQilla-2.3.4/docs/simple-api/structBaseInteractiveDebugger_1_1Continue.html0000644001725400016040000000452613273140074023654 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BaseInteractiveDebugger::Continue Struct Reference

    #include <InteractiveDebugger.hpp>


    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classXercesConfiguration.html0000644001725400016040000005755313273140077020547 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XercesConfiguration Class Reference

    #include <XercesConfiguration.hpp>

    Inheritance diagram for XercesConfiguration:

    Public Member Functions

    virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)
     
    virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)
     
    virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)
     
    virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)
     
    virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)
     
    virtual ASTToXML * createASTToXML ()
     
    virtual Node::Ptr createNode (const xercesc::DOMNode *node, const DynamicContext *context) const
     
    - Public Member Functions inherited from XQillaConfiguration
    virtual ~XQillaConfiguration ()
     
    virtual void populateStaticContext (StaticContext *context)
     
    virtual void populateDynamicContext (DynamicContext *context)
     
    virtual void testInterrupt ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Static Public Attributes

    static const XMLCh gXerces []
     The "Xerces" DOMNode node interface. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Member Function Documentation

    virtual ASTToXML* XercesConfiguration::createASTToXML ( )
    virtual

    Implements XQillaConfiguration.

    virtual URIResolver* XercesConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.

    virtual DocumentCache* XercesConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.

    virtual ItemFactory* XercesConfiguration::createItemFactory ( DocumentCache cache,
    xercesc::MemoryManager memMgr 
    )
    virtual

    Implements XQillaConfiguration.

    virtual Node::Ptr XercesConfiguration::createNode ( const xercesc::DOMNode node,
    const DynamicContext context 
    ) const
    virtual
    virtual SequenceBuilder* XercesConfiguration::createSequenceBuilder ( const DynamicContext context)
    virtual

    Implements XQillaConfiguration.

    virtual UpdateFactory* XercesConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr)
    virtual

    Implements XQillaConfiguration.

    Member Data Documentation

    const XMLCh XercesConfiguration::gXerces[]
    static

    The "Xerces" DOMNode node interface.

    Use this as the parameter when you call Item::getInterface() to have a xerces DOMNode returned, if the Node is of the correct type. If it is not of the correct type, the method will return 0.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classNode__inherit__graph.map0000644001725400016040000000042613273140076020447 00000000000000 XQilla-2.3.4/docs/simple-api/classExternalFunction-members.html0000644001725400016040000001310113273140074021460 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunction Member List

    This is the complete list of members for ExternalFunction, including all inherited members.

    execute(const Arguments *args, DynamicContext *context) const ExternalFunctionvirtual
    executeUpdate(const Arguments *args, DynamicContext *context) const ExternalFunctionvirtual
    ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm)ExternalFunctionprotected
    getName() const ExternalFunctioninline
    getNumberOfArguments() const ExternalFunctioninline
    getURI() const ExternalFunctioninline
    getURINameHash() const ExternalFunctioninline
    name_ExternalFunctionprotected
    numArgs_ExternalFunctionprotected
    uri_ExternalFunctionprotected
    uriName_ExternalFunctionprotected
    ~ExternalFunction()ExternalFunctioninlinevirtual
    XQilla-2.3.4/docs/simple-api/SequenceBuilder_8hpp_source.html0000644001725400016040000002273213273140073021121 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SequenceBuilder.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _SEQUENCEBUILDER_HPP
    21 #define _SEQUENCEBUILDER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 #include <xercesc/util/XMemory.hpp>
    27 
    28 class DynamicContext;
    29 class Sequence;
    30 
    31 class XQILLA_API SequenceBuilder : public EventHandler, public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    32 {
    33 public:
    34  virtual ~SequenceBuilder() {}
    35 
    36  virtual Sequence getSequence() const = 0;
    37 };
    38 
    39 #endif
    Definition: EventHandler.hpp:29
    Definition: SequenceBuilder.hpp:31
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual ~SequenceBuilder()
    Definition: SequenceBuilder.hpp:34
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp_source.html0000644001725400016040000010305213273140073021255 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ReferenceCounted.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _REFERENCECOUNTED_HPP
    21 #define _REFERENCECOUNTED_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 // for null RefCountPointer instances
    27 #define NULLRCP ((void *)0)
    28 
    30 class XQILLA_API ReferenceCounted
    31 {
    32 public:
    34  : _ref_count(0) {}
    35  virtual ~ReferenceCounted() {}
    36 
    38  void incrementRefCount() const
    39  {
    40  ++const_cast<unsigned int&>(_ref_count);
    41  }
    42 
    44  virtual void decrementRefCount() const
    45  {
    46  if(--const_cast<unsigned int&>(_ref_count) == 0) {
    47  delete this;
    48  }
    49  }
    50 
    51  unsigned int getRefCount() const
    52  {
    53  return _ref_count;
    54  }
    55 
    56 protected:
    57  unsigned int _ref_count; // mutable
    58 };
    59 
    61 template<class T> class RefCountPointer
    62 {
    63 public:
    64  RefCountPointer(T *p = 0) : _p(p)
    65  {
    66  if(_p != 0) _p->incrementRefCount();
    67  }
    68 
    69  template<class T2> RefCountPointer(const RefCountPointer<T2> &o) : _p((T*)(T2*)o)
    70  {
    71  if(_p != 0) _p->incrementRefCount();
    72  }
    73 
    75  {
    76  if(_p != 0) _p->incrementRefCount();
    77  }
    78 
    80  {
    81  if(_p != o._p) {
    82  if(_p != 0) _p->decrementRefCount();
    83  _p = o._p;
    84  if(_p != 0) _p->incrementRefCount();
    85  }
    86  return *this;
    87  }
    88 
    90  {
    91  if(_p != 0) _p->decrementRefCount();
    92  }
    93 
    94  T *operator->() const
    95  {
    96  return _p;
    97  }
    98 
    99  operator T*() const
    100  {
    101  return _p;
    102  }
    103 
    104  T *get() const
    105  {
    106  return _p;
    107  }
    108 
    109  bool isNull() const
    110  {
    111  return (_p == 0);
    112  }
    113 
    114  bool notNull() const
    115  {
    116  return (_p != 0);
    117  }
    118 
    119 protected:
    120  T *_p;
    121 };
    122 
    123 template<class T1, class T2>
    124 inline bool operator==(const RefCountPointer<T1> &a, const RefCountPointer<T2> &b)
    125 {
    126  return (void*)(T1*)a == (void*)(T2*)b;
    127 }
    128 
    129 template<class T1, class T2>
    130 inline bool operator!=(const RefCountPointer<T1> &a, const RefCountPointer<T2> &b)
    131 {
    132  return (void*)(T1*)a != (void*)(T2*)b;
    133 }
    134 
    135 template<class T>
    136 inline bool operator==(const RefCountPointer<T> &a, void *b)
    137 {
    138  return (T*)a == (T*)b;
    139 }
    140 
    141 template<class T>
    142 inline bool operator!=(const RefCountPointer<T> &a, void *b)
    143 {
    144  return (T*)a != (T*)b;
    145 }
    146 
    147 #endif
    Super class for reference counted classes.
    Definition: ReferenceCounted.hpp:30
    RefCountPointer & operator=(const RefCountPointer< T > &o)
    Definition: ReferenceCounted.hpp:79
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    void incrementRefCount() const
    Increment the reference count.
    Definition: ReferenceCounted.hpp:38
    T * _p
    Definition: ReferenceCounted.hpp:120
    bool operator==(const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
    Definition: ReferenceCounted.hpp:124
    T * operator->() const
    Definition: ReferenceCounted.hpp:94
    unsigned int getRefCount() const
    Definition: ReferenceCounted.hpp:51
    unsigned int _ref_count
    Definition: ReferenceCounted.hpp:57
    bool operator!=(const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
    Definition: ReferenceCounted.hpp:130
    RefCountPointer(const RefCountPointer< T2 > &o)
    Definition: ReferenceCounted.hpp:69
    virtual ~ReferenceCounted()
    Definition: ReferenceCounted.hpp:35
    bool isNull() const
    Definition: ReferenceCounted.hpp:109
    virtual void decrementRefCount() const
    Decrement the reference count, deleting if it becomes zero.
    Definition: ReferenceCounted.hpp:44
    bool notNull() const
    Definition: ReferenceCounted.hpp:114
    RefCountPointer(T *p=0)
    Definition: ReferenceCounted.hpp:64
    ReferenceCounted()
    Definition: ReferenceCounted.hpp:33
    ~RefCountPointer()
    Definition: ReferenceCounted.hpp:89
    RefCountPointer(const RefCountPointer< T > &o)
    Definition: ReferenceCounted.hpp:74
    XQilla-2.3.4/docs/simple-api/classInteractiveDebugger-members.html0000644001725400016040000002651713273140074022131 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InteractiveDebugger Member List

    This is the complete list of members for InteractiveDebugger, including all inherited members.

    BaseInteractiveDebugger()BaseInteractiveDebuggerprivate
    breakForError(const char *message)BaseInteractiveDebuggerprivate
    breaks_BaseInteractiveDebuggerprivate
    checkBreak(bool entering)BaseInteractiveDebuggerprivate
    commands_BaseInteractiveDebuggerprivate
    debugQuery(const XQQuery *query, DynamicContext *context)InteractiveDebuggerstatic
    disableBreakPoint(unsigned int number)BaseInteractiveDebuggerprivate
    enableBreakPoint(unsigned int number)BaseInteractiveDebuggerprivate
    end(const StackFrame *stack, const DynamicContext *context)DebugListenerinlineprivatevirtual
    findCommand(std::string &command) const BaseInteractiveDebuggerprivate
    interrupted()BaseInteractiveDebuggerprivate
    listBreakPoints() const BaseInteractiveDebuggerprivate
    next_BaseInteractiveDebuggerprivate
    outputLocation(const LocationInfo *info, unsigned int context=0)InteractiveDebuggerstatic
    BaseInteractiveDebugger::outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebuggerprivatestatic
    outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebuggerprivatestatic
    prevcmd_BaseInteractiveDebuggerprivate
    queryStarted() const BaseInteractiveDebuggerinlineprivate
    queryStarted_BaseInteractiveDebuggerprivate
    readCommand()BaseInteractiveDebuggerprivate
    regexFind(const char *regex, const std::string &str, int groupNo=1)BaseInteractiveDebuggerprivatestatic
    setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary)BaseInteractiveDebuggerprivate
    setNext()BaseInteractiveDebuggerprivate
    setStep()BaseInteractiveDebuggerprivate
    start(const StackFrame *stack, const DynamicContext *context)DebugListenerinlineprivatevirtual
    step_BaseInteractiveDebuggerprivate
    ~BaseInteractiveDebugger()BaseInteractiveDebuggerprivatevirtual
    ~DebugListener()DebugListenerinlineprivatevirtual
    XQilla-2.3.4/docs/simple-api/classSchemaValidatorFilter__inherit__graph.png0000644001725400016040000003403013273140076024003 00000000000000PNG  IHDR=[bKGD IDATxy\0*MP6QA+j{]@)ťbW굯VWW҂E@[-.! C ̼̽ ~c8sΙ'qd8 DI򇲲{D"EE3P(N0Aс;wRt(:ʺxB.^(F~RQ(ǏCtѥK?aD"):fǎ~PQ`8`8`8`8yENGF"Uqq1 O1| 'M.us?ao3gBǣׯ۫%}D#GXYY3f޼y]s玉Izzz_SRiSԩ}2 A \B\\\n!rrr8oqŋ&&&8hhh(p***L3NY,Vxx8BHr[A8fTOUUULL B>;Fӯ\R]]} CCCc#.[ݻ\.ǡq\(ڶ-,pNHxʯO H/sw"nCy֦g}w555rJJɽ{pD.>pH#Vgg/\H$\O++(qK%dj}L꒮ oI/Bv{NwUTTdaaѥP]]}ժU SLINN~Q^VVf`` FшGYY[OPM6q\{{{&] YY[[ˊJرǏ e>MTSvܝyK//۷͜9Ғ(սwqhii%w>K.XU]0aBnnӉ d&p&}(?b++LVM%%ٳ{hz/|pv?9sw;歆MMMҴ oīV^wޣGΚ5ĉzr]zT*B/i7o hgTm.I(lvsoUտx<>B &02b]1՛jz +y}뫩)y foذA[[[GG׷脸(%^]+.9vظqƏi///:mBȑ#s@o_ߒBzLG?n0!譻3VoEVV;-zK.]84i$)..Nlv0\ya1L0--/BFd(A|px-@Rtthh$'?9 o ,=1>>N>>N8sԨZZPD$7oX55-MլFH͛gUa*ljM?WW9e*UD" "?% ܜHP$[ QK9/R.ད ::3-{|(y !DUUxҖuZZjYմT 8 !yBFFƨ}peeB+V͟o&fF&tuǬ_A&L13-&jkk((p[;~E®@%%w:9mcUUUBvq1%;vVU$S2e߾W.*}0? pSS''Y&Λgih8V0Ht Nɓ6Bagg"ڞUqqF*aYQP [ /_[a8TTtH/.ɓҌ 4Ir 2 o0<`믏H6Հ4Os$j|Y&Uy ᤱ+ Z_67=|X^^TZڠ4kq6}x n--FzNffɃ|󆥡6M:y Qիԗ/32J|є) X/\h=kD9_ @ oBCI)q1ɬTS~ggKk+::{^|oiXh%6g))0`2{eaaرKL Xkh(::0JAJEEӟdd$3gg˧F-@߰XmE))7oqVV+VLwvy ::iin̿}kflʕvӦ+:40A/.u+܊ tW_ndCEF [U9/UVhblL!~y 0 𴼼r%Cqa`aIiRR΍9)S Wwu71Qth` ":99Y&\ҎFSWth`T"Qq|?D}4i˗OWS*:40<@(FG % !{/U\\l<sCK2BCqf^B"Co9&*:.`C]IIŋYYܙ3'xxZz:8JA=+..RtߐH$;;;m>&͛y% ?s֮7wݛ`gݷ^-/oRthAԾ}tuuك 600ؽ{x%K$ƒ>#^v3fӛ?Ǔ(xlm>iVwKnʛ7O39"@@#))Ȉb!bccB ((` @P\\L"ܹcbbbbbn:Vd[[[UUU33hP(9 eIT*5**ܹs<|TTxǥKS G@KKMM+~r~CBt…ɓ'7r lzzz~o֭32ݬyĽ,VCГ[n #33(***L3B˖-{nhh ˛={v``V\.WEE%,,&22RII9r---҂B,D|R__ٳgDꍍ" ֭[FFF***G)++#ʻ fSTP}}=ѳ; G555*?\.Wo޽{uuu=BG0!?&?JA=ebXƶBkk뚚b9%%Ύ82L'Mtbҭ=b0 p8"HV^0lժU e͚5DZںu޽{qqvv%Uy qPSR( ./^r"=߻wq>/Py #:ѢE?C蠀L@zp߿?B<&Jh4yyyHq<==]CCӼi4UUU]&.'rCjjagϞ-.+ 1 ohggaɞ_z%B+-Y23K|}ƏikUU͊tY/VEEN%O_Ňx J%''Ϟ=IjooOKKq3**B455jo޼ Fcc# B`ihhGy9yH$b^`0d}vD x<^=/?Aޒ!FF;֭ OK{aeall۷իWݻd.]ԩS֮]7yq۶mč ݶ"H.../_f|>_YYY]]]Vֈe1lmm7n܈ڵkCPP+ASSsݺu7nxGd}N>ORy<^HHBi,x ֭33=sf]GNf@}zsuĉӧTW^500hnnqfoذA[[[GG׷M򴠣#00АFyyyX,\qqqT*:11QNsMt{"|q<++L&'$$4SNu #Pjkk6a„={x<9A;vlܸqǏ?}Nr%`>ͭ?~81*ﮖ5*:zyaFsy|zmmOޙ(0OxPVFDFM7ѐeˢoϝihฺpq9D ):QGI=}Zi99B%% 1'WttCLrvqva2+#"vk~㤭 o$ZJJ=*~qeePBBHYYp#lm?7cbGF>8yΊv۶-Wth#-Fƭ[$ ,钞`0hv-ݼyիwEͳKLUC[[#d3ee|p~44T֬|FGcb SOz0MMS^-y%`h1Z: A35աӵ54T!"?ͯ>2f/tb0hjDzykԩ/fH F}SS[}=X`WU5oـ&ܹΕ+lYdmmF[gl6[KKKс[UUԘ ^iSV?졜vYUU5[Huu՚TT03g$^MHKKёߐFi[>5;v츷Io+[QM]]ڵkCm\\BH$?\.Wӧ+VpQ" >O>$,,L(".\_~?;whM6-]~# -Zt} SKAO陗IOvVzdzӭ|ZPPPvv{PPP\\\]]Qv~2&&F$333<<|DKHH9{53g?~822򫯾f}eLLW_}҂rrrb#dqqqk׮ !񕳟!,,|Ill,Q~ҥ`KKKPGGOH㘻t+kd$+[Q>矧Mv֭?Ν;7nM8qϞ=ϕTWWwttDq8}v:nff痕%Y!矫/]hER###ttt'Q!455̙s=Ѓ촵Bwyf'''ٳgx= w700033۰aCJJ ޞx*ؗ_~7 )춯 ѣ Llnn"Ӗ!.\x񚚚%KvCtn##[QmK, ߰aÁOi&Y N6nܨiӦ;v˯Lꫯ8n:}}ŋ޽[vGV=\]]?3gx{{~ӦMOm߾]WWwAAAfuեw{L#d=&p`8`8<>x`d?$,^ܚNu5S[;J߭``76)1̩~MN%t~ׯY`74< ώD"qRVGk+[WR/h &cee`LM5tʰ:*j>P[ZQWxxnt4Eq19LMf69ֈaXSSJh^e:5 l*,ٿ67͓'w"߷qjjFAǰwdGF?x0|_ۮYN/݂7t3BHVee| DH$):~&hk{qSGO̗,AR/= `@(ϙc7::9A{+WXY): `H&Ndp#.:&ȗ׮7GM[[AppS&Ҟ={/.ILLRyyy!diie˖Hb $a„ ֭|Ȓ ~>)..&:~{@S341$%%5zٲƗ/?׿**JYYYҥK„ww> Dڼy7[ZZ ]]]ccn9D:wɓ:=qDF.]ֈH .LrTu̿=bdtӳ1PAֈc266 Z[[)))vvv1d8>iҤ+Wk?.^nܬ|QaDaVP(k֬,'[nݻw/111θDfk %??(r劅E[DW]JъʼnkJ-iD/^r"KVVVQQQ>.yK> [uyyv? nⅢ#ykDc N\i4qڼ<~[8iK4׮]T \]]Ϟ==oo3gq!r&mBɼ%nG !+ɚyK̒%vvv6l]TSSٳ.yK> [B>er%O#'Ov*:(\*++O=U8p駟egg>}ZrU>'L y##[[}}֩Ss^+%79lݪ@WF |||ccco߾L^z޽L&sҥNlvo&?????۶mZH$˗/l>.ykk+q˲~~~7nDڵ`K֡P(nnn~~~t:K $ ߼ysO>tΝ!eeeOOπ}y{{wرcB+>~x_8wr{찳ST"~IۼysPPPbbbmm͛7mxwv֬WޔLC`ԛ'NL>zAss3l6{Æ :::mmm3H4ˋbҭp377R։r˺J$"q<++L&'$$seSNu\/㽽%K׮]c``c'+;<11z)555.9vظqƏi///:mBȑ#s%N$]> ߰'pr/ZtץKs kD9 a^λx#&\/FA>/xF*>̎(sg֭>4Ap hnmą ~u‚-D`1cboRRUj/ԱTt\}A4mqqr#G'-_o1 oF V͛jjVԛ~8iܹ,v0\@`DyuAABO$t[$h`hOٳ8%iJѣ# tt G2&QD|~MN @yQSQl^U%/_V{t޻DQJKKKEEEс~0vD"u65u47[ZDU$ D 08°f&>wn;g![`耼5ztEG_vv76յ7574pyMMm j^ss}yX{AAA {Heded@1 - - -0<{LII)>>^\HRB$ҲW>-[F" Ă$Rw3Nɮ͛_ o믿hiiAnٲ%$$dڴiD\q}c=y*dZZZzzzw(_~ۿ}0t@#ľ}tuuك 600ؽ{x%K$ƒ>)Å ߭$ ÚO[{IIIFFF, !keeֆAAA N btԐ==ug?ݶB%''ڪEGG#Ba͉MH/KRQQQΝ;x磢k=<<.]$>IHHpwwQQQ/BWW800Cr#-T*5&MSNo!$βeQ0`Tw^]]:֭[~}mm-$ G77 &9cƌࢢ"вe޽jccd2fϞ(UQQ TRRrGyKKKxx`Ё$ B/_уzcc#B@,tiy㒟:E,s\ooŋ0̩SJVr}yf˖-6loQغfddXXX8.CDT=v+Jn/ (՛bmmmc%ںXNII#L&I&]rXstfeeGX, 8H$ռ0 [jBYfd9nݺw^cbbqt%+ouw\ E|r劅d>555?˱q<..¢ ˽V>[`5J&o8~ "YSUUUKш 'I# twww '']N^hWUUv횸HK={Eޒ.+\YYxD5&*YKmmmv3gQ"UUUqC]_Y oo*++O>>oNNN&W^wr&tSNIZv7|Cm۶rYH$˗l6WVVVWWռ5""BzY q???[[ۍ7"v`0%P(777??? 744JP\-eeeOOπ}y{{d---C\3۷o/..~_f͚^nn =8qbTիW qg6lmkk 444h^^^,(nx\\9JNLL\r]&QQQ***^dee䄄\bv.55!t)'!`׮]c``cץz{Q$iii%yDD?1=(CQSSS~r~` 5Q*55uʔ)!XIxM_^}yB -.---???EGy N): [[[[%Ef |٩([JUUUUUÀCy`8`8`8`8)4w%1IENDB`XQilla-2.3.4/docs/simple-api/files.html0000644001725400016040000007325413273140074014633 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    File List
    Here is a list of all files with brief descriptions:
    o*AnyAtomicType.hpp
    o*ATAnySimpleType.hpp
    o*ATAnyURIOrDerived.hpp
    o*ATBase64BinaryOrDerived.hpp
    o*ATBooleanOrDerived.hpp
    o*ATDateOrDerived.hpp
    o*ATDateTimeOrDerived.hpp
    o*ATDecimalOrDerived.hpp
    o*ATDoubleOrDerived.hpp
    o*ATDurationOrDerived.hpp
    o*ATFloatOrDerived.hpp
    o*ATGDayOrDerived.hpp
    o*ATGMonthDayOrDerived.hpp
    o*ATGMonthOrDerived.hpp
    o*ATGYearMonthOrDerived.hpp
    o*ATGYearOrDerived.hpp
    o*ATHexBinaryOrDerived.hpp
    o*ATNotationOrDerived.hpp
    o*ATQNameOrDerived.hpp
    o*ATStringOrDerived.hpp
    o*ATTimeOrDerived.hpp
    o*ATUntypedAtomic.hpp
    o*Collation.hpp
    o*ContentSequenceFilter.hpp
    o*ContextHelpers.hpp
    o*DateOrTimeType.hpp
    o*DebugListener.hpp
    o*DocumentCache.hpp
    o*DOMDocument.hpp
    o*DOMNode.hpp
    o*DOMXPathNSResolver.hpp
    o*DynamicContext.hpp
    o*EventGenerator.hpp
    o*EventHandler.hpp
    o*EventSerializer.hpp
    o*ExternalFunction.hpp
    o*ExternalFunctionResolver.hpp
    o*FastXDMConfiguration.hpp
    o*FunctionRef.hpp
    o*InputParser.hpp
    o*InputSource.hpp
    o*InteractiveDebugger.hpp
    o*Item.hpp
    o*ItemFactory.hpp
    o*LocalFileFormatTarget.hpp
    o*LocalFileInputSource.hpp
    o*LocationInfo.hpp
    o*MemBufFormatTarget.hpp
    o*MemBufInputSource.hpp
    o*MemoryManager.hpp
    o*MessageListener.hpp
    o*ModuleResolver.hpp
    o*Node.hpp
    o*NSFixupFilter.hpp
    o*Numeric.hpp
    o*PlatformUtils.hpp
    o*QueryPathTreeFilter.hpp
    o*ReferenceCounted.hpp
    o*RegexGroupStore.hpp
    o*Result.hpp
    o*ResultImpl.hpp
    o*SchemaValidatorFilter.hpp
    o*Scope.hpp
    o*Sequence.hpp
    o*SequenceBuilder.hpp
    o*StackFrame.hpp
    o*StaticAnalysis.hpp
    o*StaticContext.hpp
    o*StaticType.hpp
    o*StdInInputSource.hpp
    o*StdOutFormatTarget.hpp
    o*StringPool.hpp
    o*Timezone.hpp
    o*UpdateFactory.hpp
    o*URIResolver.hpp
    o*URLInputSource.hpp
    o*VarHashEntry.hpp
    o*VariableStore.hpp
    o*VariableTypeStore.hpp
    o*XercesConfiguration.hpp
    o*XMemory.hpp
    o*XMLEntityResolver.hpp
    o*XMLFormatter.hpp
    o*XMLResourceIdentifier.hpp
    o*XPath2MemoryManager.hpp
    o*XQException.hpp
    o*xqilla-simple.hpp
    o*XQilla.hpp
    o*XQillaConfiguration.hpp
    \*XQQuery.hpp
    XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp__incl.map0000644001725400016040000000242513273140075021504 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_38.png0000644001725400016040000000361013273140077016476 00000000000000PNG  IHDR%m~bKGD=IDATx}HS]gYF}JR2QEHŠ$*)0R} l̉,IfSZB̏vuqy{w,:99y+bB@ o @@ `%y188x…P(T ~3|>ڵk)))U!F6 tnDUz`6K(!,PB X@XHB8RSS%R4 ~|{re ê`gK[I% 6ܼy3X8kâ477ϒرcq\e˖-eee/_GT-//I6mR([n*.N3wbgZiɻw0 e8;Hsy^YE rJF_Z,BcC߿0իW?>pa O/zFq,tƨNqb![kkkǩ={ v HLLϟ?߶mT*MJJj>S.A BPRR299I/d45U*555edd]~=r4gΜ9~8q\*v@kkkffe>|[wj>}J5L +(zʍ!58ocxerrX,ͭ&D߾}kll\.ݮV/;;[Q $I޽{BXQQVy}Q]WWb666j$qw{ɺ: fvb!x###p7o8)7 " 8 , tM7L&JmGa6!`9rA$&&C:TUU! 7np$IzP(D =&N^z5''g88ڝH*Sn y8'܄155E}ξxϟ&>}t( )JOF#AW0,++2%B0|#GL&ׯV26mݺujxD#zoX]_D1LRm"\yFR!^/avtvv]+X,nii!I"--+WPTSSCs)J 2#H\l6۷otGG0444|fA=2SSS2rP4l #8'+L&+)))((xׯ_t:VM1AH 2h+**ʨju\EEE),,t:aݻ ,..$={AP(JiH?~tmT*=|ٳgsrrb4btttM0+|\ AĥK233%IJJJyyڵK&Qj555qqqׯjk֬a*u:\._bVu'N1%I2==zI8Mf=@'OH$ozzH$RT---q{g)p9 r_aP_D.M0߿ѣGKm˯b|#>n}vǎ{]j[~Q!4R[kY, (!,PB X9T>yہ|)!;dCA! %J `f5 IENDB`XQilla-2.3.4/docs/simple-api/VariableStore_8hpp__incl.md50000644001725400016040000000004013273140074020076 00000000000000d66140668d9ab1f62e5b8c7261aa174fXQilla-2.3.4/docs/simple-api/inherit_graph_9.png0000644001725400016040000000417313273140077016421 00000000000000PNG  IHDR%1bKGD0IDATx[LKǧB+@\,\!`x/hcrQ#䎉|Hc(Ԣ@TBT-" )*v쩻ʥ=L_;;,4!`'G ?l,]gR[,bH\-{+X,%aV<ňb6mѣEÇx X X$chW.]e\aFR۷/11QPcPPPbBCC/_<55\;nxcAxoYHZMmut Bכ汱1d51!tERT*Xj099Jd? tL&r.P((d5tba2LL&LJY Mi d Zш:fsII ˵,2fKmu'%%={lHL&H$qqD h4Ъ@חNfoo/%ŬZ*==R4008ϳEj[QP(x`0l5M{T*՚5k )))F޽hcYR[h&''fX,t'Oܿ?|>/_!߿d2V ťLwRRRBa___gggDDĥK moGGGQ3;;;))_Plܸٳ###4jd///t~~~ hL\VTTP(>~XZZ`0 eC_"lݺtǏ{{{H2Ll6۷o9::}qtM>gDzjSNdBf s hH1U4Y p8YYY(h4FEEXuyBAMmuD">"$l$ys{,(ˉf}}=:ey/YXET;vL&MLLHҒSN9Z|"(**HLLj'Nt$6p hw!k@)vzf 1q0v c0vSZZvZr/Vnn#aV6$#_7`0ca6.`ca6. 7IENDB`XQilla-2.3.4/docs/simple-api/classFastXDMConfiguration__inherit__graph.map0000644001725400016040000000062513273140076023561 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x62.html0000644001725400016040000001407313273140074016312 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - b -

    XQilla-2.3.4/docs/simple-api/FunctionRef_8hpp__incl.png0000644001725400016040000027502413273140075017676 00000000000000PNG  IHDR9WbKGD IDATxwXSB{MC.n~]u+VqQw]kŁ8E%"^a/D$7 '\o}/ 'y9=8&:*~ AGX9}tll,Q9))s`:`|++6CCCZmmm666X,A mرK,: U\\xb` AG*~s ww###9u٣355ݸqg2yeCjkkW r9MMMrժUO1㖪R@h@C_~`HDFfWU5 Adduututuuutude% 1&L0aYL+*%%99U Ayy)uu9uu912R*0(߽݊{uB(&!ݶ9 WW7GGJJţس415U``-HׯyxB))+ '}֖`t| t*&:9NJJD"ikk à~?r􁶶(T*ׯZYٴr7O$_ҥwfk~5za][*""s֛۫55d WRVW* _o WV,fuĮ~cVo2qJL,3’%.knng^ꎎ.A%x rKccɓacmotggg2յz=}z߿>s1;ài4 h>@ENNasT*Ǐ?|x?ϸc^h'*Lj[{# ,|#//ek+ek˾gQ2tB?%8 U kjZ.uݸCZ__jǍ;tܰ!!-,4ygQ24d@ /((a{O-\x`޹ E< l^Y|nۙLg_ o]} ⢘DO+VUPPo9x08Ng0 Ap8\b֡8зwy ԩF2fmOI)IN.vؽ{*W*(}"5 `}TtAXwEx7l2,KJv޳(Yt4 *@P}7oE!""bbNjTV6>OcƘ;R 0e۶Ѥ_xMҷng#@P 7W);r+ DtFnnkk[Οp)UWwtaJTZZ:ϿsqwC*+bc\\Lyx4 鶽gQ20@ <'hhhCG  899q_~$?^޼!1_JJx>bssNR4I.\XoQ(r̠ 0ɓOQt+v횊U`2͛'b UW{yn<뙱R2%{4eժڊ[z͜  $T*R||ADE cb~U}`vZԡC+|)ݱ#8-D[<^ŋ`@(ٹso{IEDp )A};w^!"*|y0:zgb 1ऽ{CZZ:Y,""6lc M=(ٶm݋Gp8D]]nӦ捀\'_<` Wowp/6uɟ 28r Ajhh{2ܳLKKԩS< #lٲ(f͚5gΜ~_P@>s&vL"ad$k` ke(/лM6544@ WUU:***:{7NBBtT,++;{ 4ߏu uoxpt[TOәLDYY^VWFFЛ,CU5&yNΒ³P= Y mL&"%%fkd8lްazX0\^".:hј- UEDoI7Aݺ;b&ցqqQcc5@8A<x%<CIIɒ%֟s}+II1cƤ >Hqp< rnp8ܑ#GX[ݻ 궵m۶NFF4 }"={6{}]Q[[ӡCXac`…<7U`6 ݻq9cۿY!!!ӧO_`bcc++++++SSSMMMΝمh{)ixYjsޮ2{v6m"R/++GG#G$''ر#00ӓN f?a$&&=zӧO;w}+ vgGYYٍ7dÛG>\: lDFf7*[e93;{jhhhhh$c(W2\6GjZZZVVֵkRRRH$QRRml% 4E ߯H$z{{'$$^z}ʕ+嗪*.Bx捗+7nvwwQ?1ȧ^6}͛7)R~~~jjj~~~T*FٳGOOOUUu…}#G"i***:::[nD{H߼yUrEppyvcc# w%mmm ܹsFD{~ٰaä455Yq]]$_~Lwm %%?mׯ[XX9r֭[wFwvbgALLL^^JHHݺu[H=9ޫ݄(**>|'O_B$@`Ez4G6qlW{Hv޽{cǎ0ayC_YZZz۶moFܴi+z{zt5 ??TpUV_cz=x}"Dӏ;F$eeenj>PMaaa||| d>yDKKJ2̣GΜ9$55u;v8v옕UjjjZZڈ#nd2sssxǏOMM޻w/Ï?־A yhۭ[}s .ZJ]]}/]ѣϟ |@&Ė.]ZVV HMM ɼ~[X{ :F=5 ȬY\ H}}=vLJL&̙C&/] H]]{0RRRZZZZZZ׬Yd/[[[*++]&**kx= ɓdÇјѝ===I$R\\ m7_Mkkko~ ehzm!nW{mmW KLofee풻jv񣒒Rnn.DqF}_ ÇݾT!_l}"tIVϏ}dff"n|rUڤLyv܉n777Dۛ=zݒ>fo麺x|zz:GLLL%@ʽ{zz[}u\QGG֖rYYY_n޼G&Bjmm߿g3glhh`퉾.}d L& =B{&''dۉ=fs222pFB{dYWz|3jB)( IDAT7ȳ٣9굅] d]ESO>!~ɽ*bccUTT*L&̙3rrr%%%߼|:2tkUzϾ"=p*0 |7))iӦijj5<<< MMM1cFCUWWtcccG29Ow>a(͍+((X"##c薂{{{}ALLD"yyy988_V*ڭoڀ4"ߌYVV'cTϷS`X7mmm+W\tiOWTT;vltt@wGAXoxsss֛׍AdzMv6۹ݻGTTTp8 }SPPY1%%ۇڵk |rVK*z>@KEnn.{~ݞ/ByKJ WS֟ zUTTkJJ8x<1??_[[}ܟ/Ǽ3tsM0a˖-mm/_vsKNNpիW^^^컱.h9r53))ŋgdd>{>`>>컉ܸqÇ/_kݿ?{կGk_*Lŋ'M{}z?-(}\ gcc={d{{{ܹ855 ,׮][\\3J Ν~]vbp=y88Xtu޽ ҥKyzz>|L&wuu))\W^mnn; 6%&&c#@EؚM7 d?WtttMM̿~ܾx5D222;;;/_mOCCǏ8qkU|kjjƏիǏ1B[[Ů3f(,,dM/_VZGf@g jŊ222sd%KWXٹuV---yyyF&IR]\\dddg544,X@YYYSSsӦM}LIPLڵxb櫜={ήd>~XSSk222Fsi&yI%%%]] .(**Ot{]<`llm 6_۞w{;5551Nɱ =ߍL&3((XLLɓ'_Vޫ}nj>ի***֭cmd2k=П*/R%$? lp]fIOsii}iiCIICt4A@[[1 && U/o)!!T@7rrr+WoEE ݶɝEEuu5iiO|nhhCDLLPHTBH01Q#_\jnn?w phvlcnjjj8`rrVVVVkk j j_Lp- jDWp4``x"@ W޾p0 p>k Jͭɩʪɩ{7dJIYYiꚚ°1| r+""PNN@PA --,-fnikHՙ?߾BIHмFHԀ1c *px.gݺ ٙJWU575577fg<}6Lo0=G_ZZZz~b{{rr2=D[5ހ\.JJ*jll$6 {6R^XZPVXSCxmmEEmmV¿k"ffffg;!B3rs|)MJ*!ݸ`0 T  5L@P(XG_ =((^]]{JJꋋ뫫kjZٖzzffVjjr::_vw̙%tt66khЮ.(P^J*#Cp2<^\\s\gAO~)-->|&cƘ,0~a+)t:PcϐTHL&cZ?drYY+p8b&G@ JO: /ɑA:ɢ"9zqqڀT[+)!ASWoWSk[$%%u98U藖N`-tVyySiiCm-DGGI[[Q[[Q[[AWWIIIf˚ϊ룣ItuшD +77ȑ\ruҥOW6o&\#*y#$RUjjYss֑#?ÇؼV99#]\L]\L-,=&ooߎtigJonn7/5*>NNNUppRPP|CCN\RMh URU\SC.)i@XغJuu-^x񵔔}]7w}TuZYY+qK vUӇ92-/o\VZZٯN^܍Gft{jj٧OE mxnkh(uorMmllSQsc$n$*vK55_ B3bc?z&!A8zl'SS! IJKKKJJ}u?;uutututtutfސ7ovT\\O3u\]nnQLx3kҤSRRb9qLةSaϒydקkhh oc_b0of}RNjan1~ml^";||_ÑѣOAA YYFFuVR⋛A*@57:IXi4 bb}}L7F?1XMM]7o*+eF6qu%zzZg^mS)IJ,л*/oLO/OK+KM-MN.nhh#hb`qᆆw߼|>MGGq8 +WW"9{N_߀טqVHZZٽ{&uv&M]p̈F:8~[xŋ  yv^ s  :;zΆNN muu^=%66ODfO^^BC x(_.*x MKKGn̬݊^p̙P4 E+)i(*+*C3* Zk+*EJJq,uu?慇gg67)]]?`.+_7i4ܹ_^ naǦMy)aJ%'%'TTV("379x#y_=,,#""͛L1v٬Y^^6\ TKK9ZCBiksqާOŁO|'̟?j-- ൮.Ze?#rrHF:|e>f`s/_b,ǏvIZZ!rtrף>`cIL&ڵi||Wr:al&-#F*2/R>L͓>}>/c F Yݵ"Ǐ\  *z-žP D* Lyyu%RS}vDDdr+Օn!#ey9〥^w{{ٳnnfVJbba||~\\AJJIWMKKa(#ƌ1Ȋ^UU5?{riӆeDUY4}YeeB=J*ʕB[[e\O i TUҭD]}@fe>ȹ -! *MJK+ 8:==MM9-qiki=6ne~IǼOۻttnj1uq1uq!&ऐ人V''CӦ oDUTT7u{{חljjjիQ!!JJ ^*q*57THլ̤j0ٝΞu+6!aY+GFfR.?OW}w6L꼮h4Fff9Z:>su%`^>x>;884II9s,mbo ˗ҙ3M>}* x:QQQՕ8a%/8$L$j\Pa5Rݻ얖/0nfVT4~{7ex+~3ƄKڿɍ1*_Đ ׮?a%7$U,+kϯϯ)(ϯ-(hb2xQ RQQѿ?iذqqt:ZՕ(4](`լZuر9S:AB߽ˎɩsq18z+.R__ogzIlF\"( siie/_n_BBo#"25Wڨ\Et0ɩ̬hk 65UJ\ʙ7/ =t[%66/<<۬&eeѣMЉB[F v-j,ǣGg_TT4EFfeDGhÆyzZ{zZipt/ IR\w$jp%*)Sʊ?|.YY/F>~l…1IA"*/&/D.-x*ab&/=uV}O6m"3L++mWW@t2 >Ƌ[ih,7ٗf]]c<<~㽈WFݹ')I|.QALt?}A$/7}RW۰cgLU Jh " "QLC.[ mhG)**2FL`i5EYqW;;ȑY3g:b`c0E_gV+(HMh=u0S~Z׷޸sFLg'u}*YZjS(T ?h3gN v8rd6$QXXeڳg_RRJlNwq!rq{{WPPK++~y TDu苀Ѝ|TA̙{⍌Զl8y W MMٕ$RuvvTU؆ &afibF$j`,@Z?~ ψljjGǷǎ5:O{{g`&q]ee退EZX#<_L MIJ*2Şh4ǟN|]Q4w-^0* DA9oW6J`gGt7n:" ZZ: k]죹$ Tq\X vgg᝝܈D[[]=G}\ < +貏_o7MkJI))˗a))Khhʗ/JJSϚ4|>GN҃Nx3r7 Gi<6rI@BcEvvSa);v4z4T`*\G133+23++IFAMM445445tW[]vDD9drk ww 07߹{T_Q<[ӧN8ĉCjׇ'HU&&js8Ϝ&v~c/ۻ/vYn PD`Λ7XzSѣ/bbr]]6O@ 噙99U]]4O$jikii* EDv IDAT13IiieGG77zϥR~׮-Vh!o@AŅX#rr݋ollsp0=iƌ_\rK"k׎_ Ѝ%*CÛ7ݻG_Mbc$##p@uusjjYjj)TS[d2$4lmu4Du;;=qqa/z]jXϾlrpzGGCF?noݰNTTΆ 6MVW-""3((ݻl B.D^^SSai0FaMTIee|dz~󢢺%K\6nTPn|\eۻ+>V /b`beeemiee g DT):Z*%%`ae8fgWGTN5Gˇtc2׮E8O Ǐ?ݻUaohјӇOUUC>4f59-JTzzId ֱ||0Ю.ڵQf0 W6*^PPZvPtq##5"QVVZ V۷Ymm}} <=F4Ȑ~:?TGƍ]q>.Yo*~‚#gHHM- A˗ HrryF1II N0D }㏗.{O Wt=q{--]о.J/Tzffŗ/_~RB"Uh 99I[[];;][[}}e~I=utt%%e6((HǏ`U|os_WU1,8`dr_Ћ7zlslЇ;w>~jvw7_bX/T,q 5C$QAJ{yTTz@`V?l:u*Ν# hVIjj)BBMlmuMMax *.ψ/:D77Pz}O@va99q貏3f8>< X0q׮GNNWWa<`0?|Ƚz5*""S__yRׅ Gxq138x:P1tԗ/&:{vñ;|Rk/_J-rQ]4ts҆O|)(PhRRbVVvvvvvvzFF6Jll^xx۷YMJJcƘ=<,%K·〥\y̙Ǎ:D:mHH||FHHvjѤE\~u+Z+7t:s&ϥK]!PĢfoccggkcgkjZNNUDDFT)..`ZYi!CCSVY^~RPF(}VCB>/]?XYYK܉[xn^'44e`))ck8C3QA}̘C>>#v횂u,߭رkowlKK-#!UZ[)?'$$$&%uttJ9;:;99&m11Ѥ̪fQL&Ld;/Ӗ-^RrBTTh^!^q00r,8` kעũs^^[[q&O- 2۷&O;th&|! ***g޼A_СgoM`yLmm])AsrcbrH''CWWQ&:0d\8錌̴2<7l+.^ SC=Kqc&2}Ͽl|"/**Ns'n0ݻ۷Y۶ݧPh1g/qKvvH`mD911{Va`}}͛=W',WAWG矰%h1-eGDdC&w+k[u}ɓO'& :ak@81wLǡ〕6^7TuloonS~`ƌ9RVPT*̙g# ?uj*q* -22Ӕo3N -KOOk{{=74c%5TJJFGGN!b`w伞~ΰ@KJ]֝^MWw<_8PV"GQZFe$%RiH{"% " ieJDBPy][y=\u^?O!B Y[7YYUvo@<{77nlrr)۷?!wwH${0vj !%MB+ KN.շhќ5kTC\Uƍ ǞƠ)5ol~==Eŋ)څ={VڥCm!'-בH$'OqpХ*ŻIa@pp3~F_+/@{qphO㡯QTTKx BD""ͦ0ŋolbnyykj:edJA/z%֭glJ{wpee{&&#=AVR_ZZɺtʕ""g`p} 'P[9zӧ`A ll?.xMKjO. Ť-Ciwråf@&}}Ս`vHL,?u SW}#dgW8Tr&|WÿܲEczuaxp8{I oݲ|a %>grr1W֖a%! dgg񱢶 ╕ϴ z@@jjJIe_*7zV{ƍ[,̯_ ;w>ll?_|j?oB1NVfܿUA",>1Sꓐ+W<{q!oN:;Ο O߼YE3:}H_#$S@@jo/@r\ TW88|V`#?FT3)eteji+LK^ cѶm~D/2331338V ׯxy \QXO5oϞ/_ݳWGpUY"˗  u<<6qr +y`J11yG>aۮHi )pV|dd6??ΝږKi8`T^qr=ߦ!%$= o,7aaν*-uS)ŋ0$C+Wyx|QS* ㇛n,||ş8,""rbymlQ(Çvrr$W32*~Q(&MM>lćG@`FCB1!|.OϸG>IJ ۷rz5\kcT{O| A p-Y"A%! bvzܫttB1MzM +b!!߼b#4Hŋf66TQpq L@r0;At׬9 ͛5 u(I LxwoMq8WW͛[xxnJxxkVV&g[.b4SRq!h\D2͜9ͭZZnh46-466ݻܦNE yģ:T{CRR߽sO7b]]M(,wa&&;;+@YꆚW7R[%hl

    =2@K=}o6?[@[8(r|o*-,P[ E|C~Wl͏Oϟ}g `ʊRWHN]꺾>22{2Fǟm:;H %%j\\6;!kSR*ii%۶+gH҇hGRRT݄Il++|ܧTɑ.)!)@ 1w4kkZ{B2_%;恑ʝ;]L JݙH ###Cmmh$GFFo Pu={/7(t,W)*_@֭mH$5ӽ c~mccC'Cٗ-[F$*D eeefNe$tL^P~!jܹ3uu'oJZzƋ vV0M9h&x"pssM!bɓ!'ҦtA(A554tNy%Xc[-Wjںo@[?~|gEFFN_~ L|&77wܹ7o&m$@166Z咤:3ac`UY8ySRNSɌs^K >>P ۭ#kn~ݻ\j˙ׇ dbB&c֯hQQіeddxݻwMdɒ$2o޼?>pllldgg' ..ogM*//?}k׮Axb DG>x@^^^PP-$$DRRٳ0ѣGgΜ9cƌGb0bgfffaaׯ_͙3'$$H3P<#'1cFډ'--wNMGIITEeVhh: ð77ʕ+߼yCkc`6 bCu΃Luvvrpp|}p+ ژ4+WőluTSSkoGRd$(9A=p^=Aɓ':::zzzrrrWE!#!};v9;;=ukHPCn<yaAkW}x ݻ)q3$prz"#sv2F 0kk۷Μ9ׯ0 ͘1˗{A5v[[ۿ>~z 2NVVV__ߚ@ 9XZZ: JJJӥ/\@dmٵk׶xbӉ^Wɍ| uy蓤і [ tW?o111 c%222***&kgC5990cEEE<Sc&ׯsfrjn)A'kCIIܹsF CÑא񒒒~~~0 >}ZQQspq8#DBWW<77WII02E0ᡨh"gg QCCn<yaB>;~VvOxED(cJ``c|I*cOjiiSQQAAA<vvvp 6477IP2=H(>[ IDATGRR h4`a#7]99(UPPy|<с&㫌ൂa8""BZZz_Ǐ0 pQO'zq@}޹sLX|1~o9,,}0Q*JHHam)0 |xjkkᄄ/Ffi1*80y| t Ex*AP^^spq8#?fbb'˗0)aYYٗ/_-((ѵRpq ;*+V_~O>8zxPL0,3%1#==Y/v޽{ k޼ylP]]=((bgg'?LNND?"""%XsڴiG@ee0!~EE`1CWWݻmmmG8/)))==]LLLGG'55 s31͝;߿G0EhDz<}6NNu懄|~mhP.//WRRWAB|\L٠1FVLLLfff/_lllჅ2Ȥ1s&Oqq-i͞>v*ݻn!^Mx}5d'jɓ'X,V@@@C40 hn!< 0 ǐC>vΝڥuߓ1y_@&ϳg8 IvL`<6mիOjjjlC;PI }qVAi;vIk^=!p8\DDg覓SDDDP< !0sL&&_ͥ\TTtԏЏHee%˗/|p8 K#㽧N4Q4Ȗ-޵såK)ha>r$k6x[[=z4**6&&ĉ#C,,,===ϟ #**d=zۣ*233;ydUUUnnpbpsswtt74ta``ŋv412:TVVy)KKˁooGI \3#0WOxk_ñc⚚/\@k{lP_naկSKK źZYY gNrrB$_W 58xǎ=#q:QZ__oaal۶t$Fy?sQ:}t~~~~~F>~ycxxaCPp m2jwZ޿hJ=ޠǏ?:~Z>c,фwQUUE0 zJXXFJJJrqq-YX?rHg͚uV>>>##V1/]+%%  hjjrqq"ԉ$Ɔ׮]0&: ለ)))99>H΁Ǣoٳg 8pgӉ^W_@QQc XC}̑&wM)))CCè(AAQ[~); 7{O` |>EH5iL$)c'9HLi2[腱W&CQ/QGڽ{ψ㥤?>q8lee/,,HcY0 :;;lݺe`C.#9x%x~Naéc9xiӥK)|VYٓ/FPxw> 4$gW{'`^|w|A2.諐ׯ_A{GR:uj۶m3aH5iLϝ{|\ /Y~֏Tݴ? $WC>;o*WU5)bbN7nPqĀ0|ȓ39;,"89*,9D "772;;;==ٳ;w(׃F`FdKq𠞁޽jjFh x㢸u֬Blذƍ-7n'Sq*Ofܼ77ݻI{$m8K\\"{e$;fbbbjjogggkk_T`a ._R&' V<Ő>~PvzC$xx󟬬mѤM8atBӧh1gE==K)_ rssIk𸺺fuki]51Qxq\DTVVkhhO;pL%%YX_6lkzNNfYYcaarMȩiiǎ21=CZZw0K X!˰Arrr#_Y!o FF*ΆϿRRY@Gj iV$l@&j99YCB+޽BO[[wUUSqqmII]IImII-!77LYY!!!q Y)>Ν]f4Ha?]]crr”lasso31j3`TU5LN.F22B2K133ݺ6;4OXCVݍ KMjh01 ՞fM00 =O|霤2;RXX{-2HFյYY׷۫0 XZZ…'L{{Oee`e46II^BXˋP[AA^}SPpCyyǹslm(T[e\ؼ[855ji+̜C 66%%u Gؘ)" 7oĊCCuoc{Gao㢭{*Oqq'O>vFU_ K:7S={|)wZ__q#x8!Νo*.ܿ_WOO־0 ^f͚NQAakݻU:NN89dG!!իoҒO QyJA%DE}߷/$"b&u ogeU-\(yѲeTQBan 6W+S[ 1 $'ouF2+Wkhla}ss^/ml@]>}*{0w\c< ou>l0g gPff&IIA^;BB>ڵ\IIڢ̛7RWFyyׯo17EGPAz(*agljjɢEs7bXoqsF&%xV??kתNо ?juX%%Q(Ǐw@QQ߽⫪uu ).ވ!!%,-zUmSWw G>MH(;;Hn>t2Wר w·o׮Ť?nD7oص+GD%%6a#C*߿^fJIiP;i~v Anތ͐ ttVT{{AH?. D" Wg#AۼK5RW׾le'UPg՞nnm™nno|)Ғ9wn"]p+)*N>6 0*]]}ee>}?w|˻Hklw[,֭7 v阙3^&Z^{cc޼XŦiBM͹`$覔Ԍ;w,-{0˗||$F X,s4nOM-|M~5kTO0gμLN>!!!@m-S͛}}|LLOо} Ap8s>:a)8U .h4ුזQ{ny*ˬqq~33u## r/^_V;;-qコgQ[ └Ĵde e0o(F0Cۻ:Ά5&z{1˖]14T|ٌZǏ?OI99 }eˮ9j4G@@ʅ 66ce<$_Xo_s6$[0^ x-2{MMߪUʫV).^,B1@VN~\zy?xzbtZ)QQ>jk2]]'UԪC*p8<=cmmԣ;۷?ܹӧ3fL|`vkj^ټYcbZU01oo+cD ho8|dvj66vp͛۷BX: W7or rsphk)*x̟]Zഴ._.FPaxfߦΘ'8a07opCml4itssҥwvv6)ǣGϜy,//氪*CeMN>amB"HXeʁ^lOC*_RVN O䣲> 5Y }nByyzɘ꽈̔3 bbRRJzz22B˗._.xԔb <^}B7S[E.1Ʈ^BL]]Ϝ1P[UIIuKJS['?zjO/6,)JVVu'Pne_+ϟONFiiڱ#[x"$8};>+XOOiKyy=gff%L{fdJI)IM-¤1G[[FKKFYY |;@޽˵JJ:&##Dm-Cs^ҍ1O˄`Sg e0vv󫓒sp0r˗Ғpt`ްGEzT/_Naʑ#!<ׇ=t(4&&kP ''g SS5|HFV q59Ǣn^e55NDc[\)@n66GST[B۷?탞<٣-Km-Ǣ_n۶Ԍ|ۡCao*N]]ے%ϝ3ٱcW嵍 ?>4''w/)22[Hg׮۶-fI䆄 MM-II)IO/`pgkiz.|Tiwd̥07nfdBD{{n::7onʁϞeA;;n߾*~iWWUEwwFNJA/=͛/_Ό=}_eժ::N%<MCee"7MxOaa[.IIO>}*-*A KJ-]:wѢ9 ``fv)"b[?)LkkXBѣO߿MI9I{xn(\:,,=-4H}}ǒ%7ڵKg ̟~߾c5`޿ۿEsAu]>xշn? VVK)"`T.]zc$UxXB]uG!ήڱ#` Ǐw UWWimA4;ԙ]QAؔD"fhhH.\(tF:YsS@`ZpNj uumoF}, =?$dPs^[[/;~܈AX,~Z//zڡkѢ;8*ҥx}sɣ@TU5YZG"S 흘.L__ J^kKJF^ڿ~_EE58~A= IDAT %/ZPrDo޼{wpL;64tDEp` e\\&8SRqP䫛[ffԩSk6n\@>/;#&>}5=~۷c DӼhwALkkM`QQm` Y҅TR13S'Uw p?33+RRJ23+z{1',̟?G(_% PXeM:ޅK\QAAMTT4z8:8GrIع`͛5F=W),սrrt =t(ݻ\O-.?իYjYZ. iX,Ǐ?55urp(*А\XJPQ:ou+>%E6\yM]]ÜLdkzPȨC4Xĝ{ԋ?~ܩ켚Ba޼ٷ3& ҴɁ F=WbݺȱW@_0G\CRYgnnvk;wj̹4Xnntuuˏxxl~5jjEohhԼg GGjk7^&+͛98n3͂⫫[{/LLH11>QQ9xI^^dBI1 9gS_>u ΆO PH˟?+W^۷o%=ʕ7zz /o gii޽+^dݺ3fL 0b_PWϟ`v RSAjމ͝&&At`磻A????hk멫kaaa7O\Eex>7on0Bzׯ'}\fe5c<_7z{xoٲ …ȸ>ᾎWyٳJK/@u=㏟+):!rr{,_^2DK^^uEE @0$&6]QQDKKfɹsg0Ij =7ڻwLww?~NP(Ϟ=*!u/HۦDi67w\7O|!'緑͑k*tuQ% 1<:+--P^@A?_ߤlaa^{{ $r̊6,GxDsIIPSSTS [w b<3:.xym[5 HH( K^?~xF>>a _bc6-hi]]Rt}OׯϿD~mzƍXSP%&tvvfM[[0m),IO/ϯh!;;Ȓ%sT@ӸOg0` ttXxݻP$$; ]Hec]{uPU$)3n܈ ua'GľʃnJy:ɓǏ?[^c345uح[ٳJ&C]]ׯRSKMϘ<<g ̛7kr%KA0*Sۗ.m K(!!_ eeB5Nz|B@ZK ,Wn>?O'?|(ر#}=qٲ+OҒb_ԛ7rs/RDII)RU`Kń]]}_}}:LL۷RNNZb%?uuuXYQ3g -^,>[AAx/Sϟ˔'u17E](KJ'$۷YYU&&nڶajkaX }\ٰf*ſ[VbX΢_ =͛iwA `RXYݟ6]] $8I,.% €Ҝ mm=oqpMWR[HRVVx/ Immۂ.""|$<8}ŋY({ 9Ǐ?Ԗ9`pEEyCCwS[ CX` M_Vʕ ll̦w`~0=spwUvz!%UBB>_2E6KKƎG압Ũ+ M̬PQegef{g$+//euMM ]JJPUU\AAdl~EEQ0ҥ133yymز]=y}Raݔr.~=޽cgwkz0-oS˙!G袢`:;vȨwZOOr 22~}C\Vj)++H?VggWv`08B x< Aܹ3dddeDA:=QXX0! ^@BXo;uyy[[(vSVVqΝ255]XX97 f5X4SR:s*ҀOzvVV6>~z#PWז77O^߂ rcl3DBkcbBΟ?;0FPp k8;GYaS;8.:Xç$O[7ffw-54P[`l4dmb_%""ԩ`==lm\\LHZٷZ_?!ssW [QP\\7+A33 X, ..6yyaYY!"//R7oݼ_33//GP;FaHX %!: #,ȈH1R\]޿wRT)DrrÇ V56v:9X{cVS+1)` /%%ŵ߿WUT403333 `0xeeBu45TT4' D"؉H KRD2Gg[mg(Auuˊ:G)}VVuk! áG ߽k)!!@mqSVV}͛jj"U^rt NAyF#-d·22AAv;FE}u+QWW!#}5 Vwt!NNff>4A~ENNT1H}}g2Uyx@PXX{mȷP(&_j ݍ>wUXX:ݻgnᎤ@9{54t<@kپ=>!M=clk*+=/)ݷ/ϟgYZB+t g[mcI!_O 0 EE5VVLaai '$xy}XOO~-h߿ k Y]UՈLLiؐHDgg&DG?C!!^k\\lGda7LշIvA"3͛G{WWpx ~ڭ[ pDG88一TˬC_ؿh&A!k51-$e}}cK\FڵM!}i^'Us &vkk`{UYԖ34*(޽|zuP@B0ܯ_ %%%%%%uŵeex<Ą6BvwuwAދz/gμ|0 xx{q8<1u A…-_AH$Q={Vd4?x_8/! , IWWҙW7nٲ|ZZtt֬Qzu#L:LMppxH˔CQ(;KQL!`F"U޾ao'l/]]}{>=kZgl;-,<֗߿`bcc"꽘yYF"0 jjΥ%@ ֖v|֬$iJBzXY-ML,n>SGGvJ(amhK $'%)C}}<0Uh†"GGÇ =-]@؇RZF#@쫼gg:H 8鮮66ZԖ3UUM)_89YwXfg dTU5AŊD"˗Yf0(/]*^AAf8wUp'B 4m 6-$ׯs"0DIik̛'r,$ LϿVDRR߃M9*ϟ; 5r\]-{גvSZZ㤢`b_%..ǎ Q @BR.\\ClYw ^jL- kJJjjkkں!bb-01!xxsLĦVZ<VU=I׫'Uޓ'GFfC<8y߽s$IsN':TW:ח2557 M`Wn]1% @2p8IS F vHxx0]K66fj+#G Y޽G>wpЕ4Tateˤ-.+bT_}"66?.΁zcI75uBBTͭK,Zӧ2G0aim⪬Y''_kirq1)߿->ll{'>QEe?^F$ LLHiD$&ZZ/-ud<۷;%%vE XZZ…@eӏ{ֿ{,Pxfn>*+y9g@"Y?\cz@@=q]..L%%uIb ONoc[ u(*ٶ͏ɓ=ga'ݺu]34VVԽ{_$f%p$~,|r}}_-gt6mZx,(Ȯ䶉䧤i@33~441U:HZx; P(РH$B__Q__xǎ@ Mk률`//˗4^u)moik!ѫ.18*((P A>Νee@Zprgϣ||H4ltLӮ]kz]dزj!"].ы}$A0bƌi/^߻۷PИ1޽ċ`e~ JK2kt99ŋ\)'&ޛ7., 69aaAs`D+XJJ1UHů_ o=3;jŋf$Ϥ',ww{> -M!*W_ߎ~/ľ !`\x`yܹW{9bHmE@^^mcnj>޻t~3grS[`JpȪ>0'P mmj`xȑ'RR3u`pν |сzdjB>VII960fb@Tյ`I찂0e`bB^͸g_ѝ{,&wlGWyhŃCbٶmҥ||Q ǢEs**FI !!*==g䣵g6sT11ᦦN#`@T[-+`o=ܩ=4}POеhnn;~=aU}u:LLoH_RWvݻWէZ# чVPMoKJ ܎ɣLd ?7U~EYF3̊:-g"6mZzC#ta2–߿mllr!A(++#GLrMcd9y//0,kz N{IAAMr17_hgƍJ6 GU~QWc[ee@҅{yc}Ϟe` xyy?>޳"##MMM뗀& Y}44dd_eRDG{xn_f߾՞?wB  ywMn;9?< ٷAȖHIH""JR"PVBZJ$ER8ڒe,/39y>OR_3hhamz>]D%&IO?{6љHǙ,V">&+EF)i㱱y==}H)`0'NWeee k\CH+NXt&>iY(P]]іAA da~{%Eف`Z~ƀɜ{ٲy7F߾8S%//%?CGG ,7$$,;w @(%%ىeddXYYsssOPRRbbb,i~8Z555fϞ A x񢌌 ω'\".. *==]AAa֬YW\vtdee͝;3 piiiuppud~^EEEAAܹs92q~Xi?,5xR@1=-A(M{{W_E:pkמtzt*~,,,{JEE?:"bb :#G2m{bb()q޷/D`"$$0yZNNҥK;Ǐ_~𡣣c``ɓ'Yss/IKK{k,;;[QQ@ @ký? IDAT}]YY܌F[ZZx|{{sƮU&qa+?~L S su8?Ul5퇥x8uc1H4_QW?&/,csp*,tbY։'sziac=5֭{3=XX%%˗ZYžzUt.qppܹl𖪪*EE9==}EEK}}}㼰BP(]]'BF} A''gnnnAAвeihh&rɝn$v8LQQ@Npp_'NC: 41 zeJy̙nn޷}}l jDϿqþ컉?LѴ׫hn02:78Rjkkutt-%%%;www \]]_~ o fEKKKAAvww;v577O\;HNځ@TQQ3cm$2֮oZ9;*/yeρt +CΝ{6)i;҉lo{sg|oo?qUҥ$q,8=x۶ ::'SRADx}>|AkZZZCCCff?Hoo/>|0Aiiiƣokzxx|򥴴T__?""⏁Q(͛7p8fbb\S<AbD&''HCz:䨿䔤,fatJXqۣGt10PHHu6 A@4;wa֮ <`+p], ̜Ȧ&wwwNNΨ(;;{:::JJJ-[HKKmڴiŊ#&-]cǎ*))ikk/X 00g͚.((LKK;깦t655ϖ-[ttt =<0p=}&YOVꞼrƉ0J-Y2mO~540CPFTV6.[v"'MFL0 @ݻ%!g6?ڵFFMjxyY]ѣS<ΧO$%%0Q؇deeKKKϟ? MhiznڏLy~oHg!o3nx+w U)C}ksx<>)i(7q(v*ppqpt",gZ\}k X_ 0JJjNAuQQ={By/_$$쌏!B QQ;wML~^!6PB9;<̙lGD _\eg +XQHGnDpss'%u(!ϞU":Y+, Ou֖A:ѴfII6195X_@͛._{‚'11h>~(*ʲmժP]ҹj t =HD?/vYRkkk1lWgg}:CM36Yv G=}Zt*jhiI9TV6QB4H13 nfeR<0G:䁕u0ׇH!i^^7YY&o 66O]ѣ11ۮ_3w./ҡf ##}\܎eYYtjj9 W>w.gii~'$ ؼ>s@*+NA>,( ̀t2s^V֭yyX7EG[.ؾ@VȒ0ם;s𘚞}qd|-+Vd݅t.H 0!xt=)׫hiI#Ԛ^|!=ҡM7efC: @ٙw߶-ʕH!11iQ☘<_o۠;c䫬lcGGuXzooV7WOMwEPf[ŃreQ'ѴaaĸS**}}Mg.Vgg};II._~flKI(//OIIA:jnec3;URYL 3'";^DDXps tvFGFD<爊44\@=sG eg/@7`sj7`cie$5uXC-+V:8*+" @Ѝ7nܸt)a`GP==UCGꈖ |}}?{{~#p;4ol UYjp~w˥ML" $$ }<= P՟ڱPc ϟ߶r<҉(UJ`nఱoƈt"BiׯW13[S~Li{WRM/HGVJK:i}Scꊊ::YYA ),V\Uu,b33??{EEYHȩSY߿\btytzLH"!(* `Avv.fU !uyc+Wv B++WTTh۶ vi*сiYÇ՚W< N0"AmEEUp%''"ŊkjJ!NJj6h6ԇ6_qXzYի$&y)+xk ;/t"Jjr߽{"t|0҉J`uѹI˶lQcd&-HJ*VU7aa;43׮U@*c[ >UW_OC3ААB$ܹ`Ax |@]ߐ̖NsD ܼjFD2:8Р""!)ff:^h+WZm^ZZnnQT˗_D;yRZZ| vv񆆧q7oMN ۲de̻wߐCQo)@i.]YVKϐ0n??Ӣ"ۗ^78\ge--׫Ldg66ΟLj1]]C %.n`"'祮~ [~""ܿ~uY·o-:F: iouqI^<ҥ ѴoSP޲\UUq(@ eN# EDDw55S̡ܦvcc={9@bq]ܿo@K+PII$ۅ@ jjj- MzxMEE6-XX+uv~oݒ\-**Xt ᦡA}k⼼n wb~x#Je;3E Wm}>jkL:H_ac~}d| 3҉78^nÇ9VV ;vh] n#%^@EEέ[{g(L`f_Յ{n)u [45&ݴYss+`3A۷kۧC:]''srn#3]| tdZ֭ O_S\D$_ Oʲغu1䢵k'8acC'u٘nܻwߊ*຅ t QQZUnѺ y~ⲊD#!aiHK0n*mT͛7;=j,V9O=WOb}CB2ںPWj*+U'Z%%##c=12c+wFJJ^|0Qy+G> \GO6n{`PPii홙}}ӐB@P>>7-۸1:+=qHϴrqL]XcosT*)HZI.鹺9!Bк203 [||n/_cgWZZ;e Up7MLӶi;xcYЙNYaE,{昘˗#`ffx֎qGy}k쬿sVrrQDģ+WY9HGHOO_z['>ff(&:~|ymm=<z hll LJ*q,NLJ>)&ƭ98d * X7g꟠XYghZZ.NK{sLe'Vݿ_wBQT!#dTr^rrqDD F-\UWguc0,JJX[W"q~%>YHF {2+ `ݦM 99  @22JK֖ z'䔟>WDI37N8? dg`_VoݒWw}Wnܩ `X_CU]x<?;͝w/_!o`ƨ[32`0,H!i#W @^޶킘%GEEUdeLM9`Ѯ|$*p/ ,WPO?+||naaaPRԔRQWREi8SBBDF>qOV=zUA/gi~~PoԍU J-Z$q?CXxlYYg礥KuwP׌h٩ =xW%%S?Y7o&^>>LQQ&&geeGdWP@>m*?6XX߰!J@#' " K|ߏIE: UܹmۅOv&˗_yW`ffضmɎLH(է$%N<]46y9K_~сz[|_QTT٧V&&zee1,VPU 5xڵ8\z~j/##cd @O23bqdzSUm9)iמ=WͣΜllt"2 *gn| oܨ{r䭦۷.ՕÒ)~~"UP-IIE!!X MM),VVuͽ{N_7^p>>۷/K&_w^qCFF`m٩ cbpaO=W>}jtvk`XwZX{3cc%{6 }5ҥRx̅ E ҒcgfsݤauKQQUqq;o""rfBϟ/-**?Kw`={2ʾ{z|fZÇKRiCM܃\\H!V8ȑԆu`133hZY-IM}H[;HGGv**HGϝ;o֬Q߾C 55O\V`edzLvxxXkj~NdOQQnQQU jl]TT_6""FVVPCC WSJ:t+8KOJO?$t"`BhhPgZs5;*7Vh pݛg{dVFFz 4vz3E99g*+cɓ""۶- \V4?X sss߾HHRdg [TU%g _KK{UL< * `j.ybݾfMؙ3َ\QO P(okfoC M JWWNWWnp ޾}b Gj!!Nee8^JG3q|r1#ni+*KG44(99Aq,V\SS]>>-,ԧw0!(-=tfIIRWUԶ'PPYs[EE|RI4CYY4=}֭1FFgvΝˋt"J`>GE=pŶZo*0wK֬QqLݳPƥ!a\\,mm=}}2umnijj/( /=yb> j^,V\CCJCCIAyz&/=1@]}Nv+H5=tp+20(ä=̋Cdd¶<{vH)**WE娷6s55?WرCcl')HyhH43өEk]]ow_ tseO=ԳgRR^?:3'=f@V))P NmBi[A *0 wki۴)H!cBB~~_uu]VUjUUҹrn ?? vqei). *3]0`0,ruK\܎ENK]aݓl`j=2^ڵ벦\w[1FG[W!t1`0:zzȭMzO,MKiioN XB=иݻWjh`;1)^{ =ɚ*cfA͗䢾QQn )%K$@SP??NxB\\~`=>>7 ~JJ"..KJ ZƄB==o|0tNZ. ,G***+g0(x͚3H P,, :;{_^cZZBB= y'N=}#槣c_]Kvkqgo3A#<<{\kF=OnX0+X99;*emSFF  uFYY@7MKK Ұ2v!bf_Յ{n)u [45DDx~cM3}W M80҉EC:ujb@r۶ŚMHXva?SRh;4-,)uI`,w^@KKhٲ[.&I ++C{{)~nƽ{:/[ذX xX##UT4>|J :}9n*0Jp{y-*tBuw`rD^};q(`Xؖ|3Xߐ߿ Ǘ/>|30`Èr[Z.>y>}d'YH##=+ao"9yll4[[o-_t.>!Ǐ /n:}:E[˃ZZw:t*TeVu--o("@%"_\cjz67P11iQՒ|_oHf\F[NNf55N IDATvv^ߏ%II ,r)҆-Nps{@EE;' {N 6om>qYH U/3%&Օ۶-ƍHǡ4 ~qݻ%jjVV6" AV'vv{WDEQ]=Lc&FAA[**Ndf:. ׆66q9NŽ{+VUU5ݸaPٳُ5 YHUӅ[88-$$.8B`b_A:0~x櫾矆[:;ڰ4DѴAA(uIVioj/\8Tnpeg +ؒZsS|b11֭utȨ *8\umm5k~ '͛7Ν7QRRCấg߱έ[χ=58XwwLLA@iϜ,*}`Jee hWEp+%""Z MuH\YoZH֫sr21g66%%#rr_APc9tt4RXVֿRV&ys'(g>47WcG:b@e,$vǏ- WhZ##E##E]UkiicRUF"͂98CBlڤ& 𘴙@GU>|;wѣ3ccR!uKvvٰEUUOHn|斢(m58yŹnP]؃NNIySLr9ys[H84O eNNI By^n 7G#"WlvANK_?vz߿pmf=_deyz줊aT00:dRL#AOCC*5աך5a߾^6PXؖ|+dUUBB2G~wWII Auu]\w,a/9;Iyy]HF{g)ff:}{42rxqq]彵ܮmmjhmjz~~tt_Bkh}DZradpAji O[UV,11iQ☘<_o @OT@xBa_4,4Ad7 94zRR/Ek]]ow_RQjruWS§O+x|@SSƍѶZZ:,P(//çO+=tdZf Z6<;lp{ooyʕ~u J:;|yUU?>@:U$΄t@P>>k>| ?٭'z^ `Xtu2t ܀F  s9&'祮~zJJqCᄒ/ A8~^)0,VBSs^`= *0lY[_{ AOط/ݻoTC|,, 66o~:aesQeˤN1 59+W9BKCe2\iEhFzzVB ""rܮoؠ١,ӓ/)urJRV>0l^@kk%[K0կ^Pn$k&0p$׭&4޽R<Aеk۷k#ZѴ׫-)?s&4XGGt&ySϟ6/[6 2JI)ڴI ,3 -,47wݱ pW;vF+W ***?0zG5 | S1h>s ~JE:t`T+q 5uӶmttSR)V:Iy#+ D29sx-,ԃ2(shSkHftյYs*%~PQWWBouu3 Knn?߿Ous .. zׇ/,.# +JEG:;'g.۲EhɓKJѴHʛ7_FE:;D:kryS~Λx*=Gaav# >3_OT,^|\b"I *mmmnn BTT qVb(-q+<=ojiIG7&++E?&&/ Y۷/dF:((itpsۯ {hadžtiJU{Sݜ.))lgco=O>`0G/a M_8((ebѣ>>>s5k^&! *0jk7o>?0OofcH6&"gzKO/\ȏݴIm.-AANQWj{Hvʠ;\yyL32w1Awhچ '~S?O:V6AAN>>6V>>6 elv aJz̟?`.Z$ *L׋;Ã)fqvߵkybbattόіG^^ϻ"1ښҺ_m$H ثW_._~~f ,^IY'.;k LƆ *Ǐg13vq+wϧEӏrﭷ/8bff|+8ݻoAaCW&-/?T) #dEǻge晙-B:(:;{/^"2r ~^qqPfboH!PAihHl{*>>6 _7pӏ 78~-> +ؕ+CRRb i--]X B||=GL' /:s&uHEck_~}qŬ>7+nP>>v{^IJڽr,(ѣFBPrii0yVs&J6ìޡR^ӧ9EElV>߿濫B6 #񇾾?LnVb|RPwÂBAǏ?>~aY=}b:֍t.rRXX5g/;AϚOoxti*$\'89% J rs119;goZ8ӧOԣ_ׯ۷o',,86εAjFF%K}vcUO\[[Oqq5AD߭`TVBQ!!.WU77驆 ºuH"߿'@11ia☘'**޷9zⳚS9sx7oV;q, 90@c.^KPRKgizllHǁ888U&&&uuuW^-//`3 ϟחJJJӌzQQsysr(Z&ɷo֭[au⺺(v^^Vgg;""]|u%~r_RB E֭W=vtC:4*8{!{=éqqka0'NRRR<"""3k3{lfϞ;pww7DW=\vv** @|o ޾׋,tyD$ٳJ~Hӧuohti'~mHe̒%==}HKQQ۷_MPyJKKhnn&׮]8{4 ڣG ?@ +**222Ξ=; Դa7 B.\ --`._,&&\\\xyyyxx\\\p8Zhh(@ rvv&ʊ[PPٹ{h8Zx ^r[LOO3VW=þ#wO --H |||1֭[[ZZ:''#˗}͛7޽[QQ?񧋊Yª=,V̀*)U>Joo2O<fk8X/  AZZ>`vv˗/YXXp8'nii9y򤁁ZZZ/uܹs&vss Ǐ>x 7XXXiUhIsss^ynݺ5#zԗo?$O|r ,V">&;EVV9i㱱y2-{^!C[HNN LUOOAfZ>>4Ǐ119+!{[~qppܹl𖪪*EE?==}EEK}}}?ؔ0VVVha555p]]j%%%ff⼼5k())^Ɓ9s}C;wo߆&kii?~|Kigggmm=Na<A@@`ER5dddLMM'`TT_V`Vfrraa[=uubBB2[[΅o]]8UhhP>>k>,#!᥁h?I4ܼ2 `)ׂ (!UZ~ֆ8;;[KJJw(+"6lpuu}udd$133S_'Q_8 flhii)((100HKKXpvvvv^^\VU;~σ]R@IIIq.i۶mee|;23 044, PSS1` 0u**b*Jwh{O>MPȵ4~$_ $}~~EE>۶-p!np\W׊t.|eA:Ȕ,^|AkZZZCCCff?Hoo/>|0AiiiƓxDb]˗/DFF+V\tITTTTT 4mnnP]]{x233ϛ7v;::Ɖl֭z˗zT,Z$AЫW5~dRjzM?'N;n|ԟh0ggbww{JՏ98\ϯ EEժdPeqEEY/ uNy茼%^kW<@7qdddSS;''gTT]KK޽{%%%}}}?GHHȖ-[6mڴbŊfx_pG1C;vUIII[[{Dy]]ݞe˖Axb?T yxxup6cEcᡧrʥK t&byfڏLrhsR6CsG8իWwuuM#M$Əǟ DsLJ_^l GK˘*wtt.)u%]]HB:ſ޼"$䔘XtBCCʕ! ?)]ki'[>CyΝ;---%&&JIIuvvpVVVuu\xx8222'333##X;+((̚5KBBʕ+AW5jmmݶmrqq?|ekkX kՍ<&A(ի222\\\ިðkdee͝;3 `0UZZڼyxyyz{{G8Ѵ׫W @N&L܌F[ZZx|{{+UF:?jQZzLh} #ja; =X ǏGk<ĔQKq^;8H'f~~wN1qGHj1;~#8ya߇ˑ|ը Xؖg)EE媨؆tiWEEQSLYЮ^cn6Yf Is.C*?nu&j D/*)+C:^L)"un<ܼc##桇=4FQ۷O8쇕#8jԷA A}]FH=8L_>*#㭪ժ&sMOx0A*4d{{/ µʕ+_A)0 cG\L[~͛7ܾ})V# |@eʬYz@Ծ2@ӟ~P(͛7p8fbbl0Ĩ]Gm>N# v[c666v>}*..g#acecYX}WhjXYžy\WYC1Р||+w{XYUܵ[L$뚛7MM" ڒ\TTqM6=x`G:rU/5lXKK'?D5ќgϞ]`#oonnp,,,׮]ƝB BCC###7mi``0Dv%s̡NKK#}}}K.eaapÎ0W@ 477oݺѱE@@}ӦM---c<װkyLˆ)W7?#Ɗb0}uwwq25ge_*5g#h2 \0[990G:_03 @rTUP^^|DC8#˻-...:::S?vuhZ#nr2dfplk>5t8\??wDL5]뫀>*H;?՟p0~::'_/@:_H14C,))?jԍBa"d hiSRHH`ɾ cpxyy'ϴjIllE޷[5:JX?bgهMMHg?)913vv&boڙ3'N3>g/NNN>>>xڠb?u555( BVWWNdu qqJ܎'RVUQN}@a0ggbwwwKԎ98\lD:p>12KH dfk1>t?{gHE9}߷l)%RBI()}'R=Z)QDT%J Qd׳ .AЖ-[jkq_bс8UW# 355rrJ/V. 4e`h`U5kh*= !-,22 i`r5BZ[u͈wQWOISSDihȆѶ%"--G->>7oxСC!{}\׽@CF;88888 ƉAu|@99`$ iBZ@: :ʊtuayy{XYTPyFF18ϯr奇Gٳn]q;;ukk[Ĩ MژysrD~૮ꢒ(77m1NfzвeOzRSCU*&E siȠPY]wwC99*LðOʱcnnP$+|KK'By=Gll#}c1= _>|ϓjx<ׯ J23u s͛7MGG^CCv*-ަ7n  yebn$ P?xyEDx0 //jn㓲|ll Lg 0 sGZZ`v=*LݍߵVj˗MMը0#NV- #gI ;ꮮRVVtqYOj-[uuἽ/YrZE娓SDTԻ?iρ>l/S?U3gN^5jn {=EH:sEG *o46[X8LWYIFEGGA*:: H緎c˖8S-MMG[䴪1[h;;۷\nYbF&OJ/""<۶-x)}kD55[,RW\uV]iINޥ5t6Ⱥʈ Ak֨=qrUg|ӈ䔬Zu=9m4aJO'bbm==!;8h9`-_=ʣx\(( zWZA#GꖲzZG:Ԝ1::BCӻpkRit曢jZꬫ<{=%35GNNdn5->ޅ:E}"& 0ҿ)UFP[A''ۙ6hQ<4@V,-_n))Z .uG$twED55UٳX޽>>ɗ.=Y>Α ɸA弰~~_u,UUUSvgnAi7o9qb ݚDɓ'ԟ!Fsؕ8AUU͌I2l(3g+V.ƠgkŶm7wҧw'-tΝ7o Iz5my..zc**rtA:dlm}-#H[[?uu^8y2w ㉇߽u+tfMD^8886:LLllXXd`~r8\ :zBIHHX!!n&&(YArFUTTΕ ~ p`]52:wdkh0-]]?%uˢE3$%iDHiIL7oYZuNRPVV'++H =8u*%%ōjmH)+*]`Q{{sĻw ݖh[[զkωy_XwL1KyWJUEhB`@h0kl`eeba<dy֭?֌ YYӧ]\եMLTiHaeeB-'BY89Yumm&&^lbKgi.=qjѣ&II׬ v<( @)Ӄ߷/nʝouuM!55- ;%)4 CC$oEEKMdbz挹TZ՟nA,,L !bbUU _o0Ze2%))YR,0@)֬Q-ss={ 5}uKggϗ/}uŋLu&&Ͽ_Kgpo̙=uFYHR+?hB6mŚ޽11YMs]NńA\|"76R`0={F()1АGW^x#5ujF  _]WPsv^lj! A@h^+.~=:ۇ yW8vl5l>gdhI[En'_edp͵Ғ Ld]h!*ʓSJ(KCU ZF5$䕗Wҝ;) X,:8v2m"oڊ u(-99YYYY%t˒% @R^#RlYde5X{UU3G9`89-xfi9o0kbѼ5y{g) >8A1135U;{v=}:Є?QQs{zY\yrȈgCC;/ _W B=jv崴J[J (hbr޽iaccёё n9t.rnj=⼴5K< ($$ԩ.<ټY^g *GJޟRnμp቗)m#kऄoHȫ?OxQ =>w݆w/RSzvXZΣV*dz }>%ZZ NHZP<%%ӧܢg_já}uKGGχu…r@ ))ooS77__r-g}ׯ~ccc\]c{Ç6o֖a$-/oԝ;g sOv;% 5;8A ߾ٷh)3ƭ d #0sM\ӈ܁j`nS-''B :n[ĀnFKD oC --q֍BBhF]]%U#*ʳc>ymn<>fff><6@m=AnEDic$+NHZL݄A'O-,nnnVZC=nopBO b \ecULd/ߊNO<6[[_owUQqu?zQ$*caim=”uwQ(C@Ħ@yNJgwGv01a^[[aa\¬~EGG~<'us=~s[Pvvf Y81Ȃ,]'N$Ѱ5dEE#y;;74{yݷ&ϯD˖);͜`qJFz ;-8a#Qh4o6 20Whڵ:Ww -:: ĉA58zu@zz){{MYGM INDƬUUM>|8۷c~]xcPI APuuK||KJjE 6lК:Iϴv~yP\wy66 Ll@%hldh@2Ou,Z%8fժ i VV7W8ysXl6a$-mm?ҟYX}/͂/>]oYvI0NZc̋?NRQAgeo-jn'_7n8LTh>!@44Tݦ-7IU''K[[7;Sc((;gm[bAX+"q͚Ku8 '砺E>y^IlUSB2=knaf6.wUW؄TW7'$PVIuus||έ[uʒ43S3@ %```Ocp=qq^#c EE`;f98:F M IDAT^[uG * |ak:kbSSu,vBY ?WRmF 2$< +?Z[_cb$&lGHK+y(xNHݤmF 88XZi!$!%jwXZYٸ}{d\d\&KڷoIRRBPiӄ'n&MͩS}z5#w HkH[PlRQů_5/?ۿś7?D""'^a߸ n22 lj)KYY=#%%u]]8сo嵶zBŽI[. 0:HqȤ]3g:C_R_ߖ[Uu[h]] coPS2rUEE+t_ߔ-tpН*/::^^wQ'q @$3g;:w6%峫kKVqq%Bvv ׯGޞ6B 88X5J -/OŢ^۰!<(!aDŽ\&f%%vv r: 'MhRW6ڒkiioo] ""2_fi9o۶%gѣ&˖|66V\x>'::sAAh~*alka0O G\vkkWܺ4b@+/V8ztӦ ;r"(il3ֶffD(ps:AZ&'u͛mlLEWW.=;zt5f))Ħckkˍm:+kD"19yzt޿)2/Ӧ oެmi9,j&-d@'pg'  *aVP mC{>>8GX8:U}{dB)Z-::򚚲MnA ٗ+W^x{߿|٦M lYL?"mpr?hcr%%Sh4c;Ç2;P))- gA$oe?xðƠh,tw&݌U>|(4vvp;lmCm >4^^~:8xm$2Tny0(5_ݢ5ڷQdvL{WDD yu+ ;0vM ""= uckϸc{苋KE361V眪~WV|kbf8uŢXioC ǰhٳgO˗%&gŎj EQQ22VRٸQ == `PDZ2:`.qwԺR p  yy{:P|0<<11+W^ؼN`nikγgnnVGG]II/\x{jYnn l…r^^I5duuKGG쨵ܙ3ڼMG{ =>w݆F=& Eogt.X0=8Sn++M!3Ⱥ `Z}i@ԩB۶ LrDEyEZ,mFnn*[tu54d[M<ffl]OV<؅-߉=jbdaʕs;rqq-A]Wt??Ѧwa֦j:47w$'yׯӧ o߾Bs̆iS4 A`Zݻ_ܬC*ͼw6bxLTfr6DVVpϞ0jDD[ۻ99.6TQQbEꌒzAĚ5j'O&(w YXxx<=ZCCvvao_m4h>%3f2#GL@<5cw~͛7 Y" 5>(f?|pcŊgX]NIXDisX!!n;0vHꖔOtԱ>hk뢾V ڵݻcΝ{km=QQZ}ͷdNFFpTwAA/ =3~} 6Flw͛oiPV2Ea<1Rm= ڶMo}AJHqCW[iigX0ʏ hGf:niFĒǥ[ں98hlà$`av؜u-ҺQ^hQB鷭m nbbtw<-^nhZM+0 @F3^m/uumCobч;Wf׮?~\f'--@8XV^qv` YtKGG]HK x{e:88rK6/vܹuÇ5fII%#}}BNNG>ūW?l*<ܽ޽xBp 8!AUX*))%%nOʲeJ;:;si li鲶*''Bnc`sVVٳhjNLp0rrZ>(͛oVVݱc)VNrrepD|<'ڑwu+ݻ))n#yw3gXЏqR4{DAW!;g,GZ5gtS|PdedqtԵ]{s=3Kru]:w.oΜyi]Յᓅ'sHd:&F棢ޥ~acc21Q5ԜJ*t;@(,?ׯ+6 iVVĄ Ң_Зk/{\ɘU` 곲K ؘ$45yS(//z0?<4H?Ç2X_?=zFRԓ'_7o^C:8}Z>vypݻcr}}Y[g㧸޽11YMsʘk]>P?WrrP.?<:|XR+++4e x5^-{|/40Ou+ÇcC R@T[e!,!䢰0;$nb1R[ٳ K֬Q N;ǩ._~&;{>xy˖g]ֽukxvvի5[4/"mfSKYYLLXDނjiMKHA'߿W}i0Ơ!zzg,~ڡwV 7zyݗ?R^^|<P4O0o7ɷ0ԇ'?]zuǏEDxh6nyLzzS01@\\geJ.YSәׯ;we||@alW@ܸQV!M0p8< f嶴tZZjdgzG||W :|xݺ gvw>thz@K怍^Ϫ&DkhȪJP va vas Z5ß=nc3Mx>qd;hosĚޥ3Q^||NFF(ڵA i&?rҳ6 “'_쮗ry))+WlF3̺us ϞMݽ;L_uLB,,4ں:l `3غ`HK HKGo{uKXXO mu 20P40PDlmC$lYvH277O^GNVW ?PR(QXWTPw/W[[NH|ʫWN0BC޺cfgGh޽\lRxLj^v9S|-LL+@ $ j@|Z#GLF?}ptuw_Bi?%kSS5Z &&R/^-E6spIp˗WJJX[geR;xiUU˗񡡯Ο",;#.@ @Q(?? \EE %%-ަD"j,kg爷o^bC镥OogT!E6h [B`,_Xz`w/vY?dv-{rӦ]@D$·n;u33fk+}rdիiWجZ5ֱhʒަd-_ySNCRZZw먨l66 uȭ"#|޺57uumFuf`HKK[hFn ںDB͛7U]]&$Փ'mmݞ1f=&ϟwޢGYLLT6mZ@C+dEAh4JUU*9ٍ!M$bciZ2-99ETU5P("ߟO=%ݡggP\\{O::^^}zH]]RSFFn`~))g-0Wn(jlݢ#4mm11^׷^sy,ŵނS\\a&hŋw5K|߸qh ꛙeb`wgľXطo0L\ M${WlX`YYKV#|Յ;uꁉ R4@ *Y[֖>/ a0( KZ38|8۷{\iȠMQFQ-ө,Z4SOě?6֭ps:.A/]ڱ#&$2rhJ1wu?@?ׯ __׷sfb˜k}ŋO/ zKEEZ& .eZ E$ yԩBϑ@ }VO oAZYY+WlFTSӺiӵ/_ui9ne)+K߿LOR88ۻA[1^Lԡ6>>r G:}!@tqsp"DEmreR]Wց@pQQuvv "]:Ơ[ZZf>99agϾ+(9;/65UbFF߾UD4ʊݦ.3S(ӃNAǏ'aޖ-7c K((ϝڶMo$M]+7nІhԇDDii9qpϱ]HfN@?ژիi~eNq\ntMP 䊊l'-mh][ t Meww7\^@/8aoFG; 8gu\ @Ū"5nyu Ą9ztas|) |g k.\xb1[Fy~~A8 *(PPPPwvvoo{eQAP(!bKK+ptݍGgX̞=Frbb76/\(gm=h]ϟ5k!e  <E YX+IKKKǏfϞ=q/̝;n?+WrXeNP]r“۷3EDw4p8–-ᙙ?J:e9q")'MH ϟ5nIO/lnTSԔё={J_5Ӄ BHl6mvee/߼YZZwUF(il*6>?u^04usFP(w~Ѩww̛7QQaS YZjZXh.LN2{PĆk IDAT\mmu溹+0rA W|J&NSֽ{wxٲG$,Xݍu\ sܹ7^( K{{ =cWm~~r߾}+XY._~adtNYmh`?0 zU`\OL`\$شi_5ҷD'XY]{hْ}'0Uwff͠hII~;;J ,;Pb(44"#~74 pݻ皑qU 47wRh Mϯ<}|l^G z{fd\t}ȷ403c_WUKM0aakjuny}۶%D"ŧFF甕x<#>XbQ0/>%ٹH }Xj~Ro/ɝD"cĄy{sH&&FGg˫@h4r˗\dd mcr[IX,FPs޼ 20 77wѝVhԝ;D6D*|~~oӛyp¼y'ۻi0IaaFD8Ο?"͛@)xxKAJm߮wߔKHpA0 ^?u`:~h7 l ca^jkm===oן ɉbh&&Lo7E81#::Wo03c RP3 yy~72:Q4زOckkO nmPmmѣYYX APmm`yxC F/ @@ ,ƶ)gcc{,cǎmڴ)11ϟrrr$sSq >}zaaaߤ˗M>Z7B$!G@#G,,4Gj%BU8<aa.AANnAA.NQQ7ŋ!7bA_aCiiiMM O< HjTn@Ny׫U߿hѢG.:JQQ8e -\͛-*Ą17xlOb mmz&H9{{7踸lZ h4v"<}ꙓsϟ33]f{Z77  Ԥy/TKHH466B-//p{޳g' zTZZڱcǤlllAPrr2++ԩS###!$`cc҂ HTTfdd!P3g EFF9rdϟyh'A555 N2ӳ_$0 {zz=]ss;wǯ[⓼\ÞЁ988 {8ҚP^@?ZÇ2Ce0<),gO^^Iu,_F@dCYHhQ˶6 ߓe߿C7n666fffSSSۿQQA˗/|2ox SccٳgWX`~0} AЏ?z[) Q8pᨨ($\ Nj>+V ׇɤU9% vv>sH" kAv7pVV. |θAō׮G `DxiHnݺ۷o۶mXZZ*&&S  *++C̜9t^|9eʔE~F< #Beff.,,422RWWALLL^*Gvvvzzjzz˗/W\ APuu5@6_Cӧ!;;{ž?Iy\\ C˰a0k&$$={ʊ$/]]6z;{6ŋWmV@Q۞?ߣ# /O `憆nӖ-7&@kI߿-4 I'b~yf٬vsANǏX,$ff^{Ι3SSSԩSx<uC\g:,( Xϟ?/_(((}3QD"1..ظᩩFFFiaagϞܠh+ >}h S\\/ $''ļ|rSnmmxM v`$߻wΝ;SLU30 O?$66…'kS?V!湹_c=3`qq.YY%VVWAkFT&˻o߾ק`8SPUU=xΝ;j۷;vlΝ;~~~244$cno߾/=bAAAIoD{{{WWgϞ%''#׮]{<##GmڴСC_~;zͅB ޽N𤤤իaff~~1〓S%nKE'h0()| ׅbbnR#*III=۷K.)((prrjiixw6"99YEEMTTԩSZ  =ٳg_&y Aׯ_WPP),,,$$ӣu9Q( x<7%%F[[[  $7n B$=<<̙S[[rrrX/ ˗/_z>}ߵ uL-c!%&& vuu {CU/sڴiby7n89qr f ktw(1>*cd%A-gg>C)c112uW^NHH|>=wKK I ӊ~'HDݻwcn} BF344,,,̜>}:y5%y hժU---wE.8)wV_~|rshߩS)c>|}w^79`s 4 'WAA|;7JhѢ^g6*'JQmF;⚘mh2 ##xc7n8 q9roΜca))+060'֜?3^a deJK>@_W ϟ?۷G i:|Z+++wyY]]cǎ999+6laÆ^!i o Bqq`H7Ǐ8(ckZPΝ b hŢ mtɊ@ n~sΜ#;wzƀnH{r7mAk{IJJojj*R1$V'O+ NNNyxx"_{T=&I:t4]P:hhYR@%QPAAe P=ZhJҙ6;mfƼҕ=>6ތs9磏>Νp8AAAw ]ð+V)))]|---O?$=hCt#!!!N{ͧDbnQR\ wqFK'=Xr...Nmmmdgg'NZjȐ!vvvׯ;v/DoᗊYho?eZ[[|5MbbS'ɆQ\a՝;w [b|"u==zmeܬڻ~TNNdf~9 J2;;;>>ѱ'-++{0x,Z7bĈ>=J?v:i”)Sbcc -8pѳgr\&i0 #fIyRU%5jɓ젾Ղ߯=~H~8"sI_jJFƺZG6c7 [L̙QQ>=lS:E JJz9#666}0gΜcǎ'N<󆟞>}:&&/@ ¡C]]]l{8{2eXkWN/Ie9y2/(hͬY;'hk]xx*Ap%K[_599ٰ;㡡P2dȡC BK.>cr>O4]DݻAP>&fÄ |\X1;;HJ{z ض1mڰ3c馎3cF I_`ߴi;]EH;d̙oڴ0c7hii1~m1=ˇ bxHDDS(tQuN;nI$ɓ<=pFق{ ݻw]C^,Z%'Gnݻ<,)/7>7nmi`^"#Ϟ}ۛ:}3g={VV J<挌 .̜9Ӱ;2ox:Qg#"V秤0fLL`f}ɬ(iq6]C0 0WWÇ|E|hadVbbu:ݻզH$ٳ/^fgvtP\dɚ5kΟ?/._qFut؀t^>?|sqѢWlmM6 r3eHZrs7҉#;̝Gǩ7n73I7ٺ~56># //'57ԁ /P\\l< 0*m۶s熅SL^jou-[c駟:;;L0aذa7on7xC tܹs'N3L2eݺul`228|lyk~w$;7_b8W}lŋEL7.lҤ ©TSG)q8ŋ;wDg-گRi!:[UbR IDATJ:}a?O?Ν.i뭎:&׽d|,5uy,WU%WX'k-@iբ9.\yD####|M&&by:;I}4ښd;/8sc999is_n݁?%K:(&(Νe ۷+_gggSVI'U,[JȔJ ܶ휟ۘ1qTlv޸qakמ(*y A jÇŊ*a` {:Ty\ۛ:e͚5Jr̙ ((h/ndps ;;iӆn\Ę1oO&f%`^PxBQ~~!ɑ& ӝM/Zt@$jٹsq0dj-n̉7u,]RNHdQW?[1hOsƊ;Ŵ TځH]jJZ;n}vԶ6m|]v]R0XO'11$%>;L eccwf zk ٳw[_iJT06 _vjŋE{\41ƅJ` l~~bbƍ/ܙ"Mb̘Ѓo: 8d2^znnNÌ ҥpsE*ݴi;v߽{ue&65W::lGaKz:G֚:Lܹ#/_^COm۶4C1cB|h@`ؼobErwmK{YiigalimU߾]u:'=wu{{ƌa%%`|}]_o_zo>v7EѾ!! SomBaҥfeo8Jx}jqz:ڵRKJb棴lٯu.\*,\Ow Z3=i$ 8bb؀Ν{zuʔf?n,[䠃?ݓ]UaV}ڵҫWK jI$b\\@bbHbbHL??Zݺ5m+ƅ~PѸ8pO**dc`Q*K,Q(r(RTj+hD}\Dh_T*dJɿv%(8/X޽uwJNԩQ[l.; hO$jIO\Z:8ذA!F1!``99+V[֯2X'9ӣG2Oή2''ۘ4aP6ťKkIi4wԩǎfu{?\nʕG 6lꫣ{1> 'ήɩtAhmtsj@Wi7\ۺ p&}ySYhjj*GkjƫF+*OJT/^?+b߾ݼgnp2(//cBTf?`+.ݣ-Z4n)0C|z`T Rb"7*;2=SPPK"""Xcư*O$7j#Baoto'UU•+ܽ[tS˗'[~Uq.1'Ұ(Fs1":@DۗeY//??j LUUQ6;vbbc(U7߯%II,6;pH4 UMm۹ݻںE//j7vPv{H_yjw227oTTZ??#`1jk%~B165oĭoikrr*_dfk4:$G8:@Ӄ\屴ZnvN*U|؉^?gZ[5VM^ rCzJ}*3,3>.|A!By?tqaM p~JJ2Ǎ ۸qNjr e*jjVVDdaXƍ'Ϟ-W*mǏ/1u t 4j3>>5utrvx<Gdj4c̟/*g懆zO=롚 *UU +33˳+**VVH 6;(.. :@kJ?8i3Y^yu(C._.= ڪ>{tIvmqq_P7sql=*PN2|x`\\\@d7n~{ӦS*n o1^ɳ [n*KOdgWr8|;;C}1cX#FSO \̊cDzϜRiǍ {EICW='r׮K/ ;#d UP(Tu997npb5)< Lug=Ңڹ=<<(ԩQ|={|`cXhOPPv-P`e/^T9sق:С>sϚ֝Uԩ{\w&.ŊIO=>? WfegWZg0lvP||`TOL?\NgSSDE[75)9Du.\8Աaڪ} {Z3 x02@*Wj7or;?-x晨3bBC]$jeO=c*myyUUoWݹÓl ޕ Hi)sNݍ\Y6;Y8w֭Z0TʪP(II-]7rʕ˗]+ɔCxO:gBB{5\۹sGZgwCZ"Up%*7*'* >uVgMf3+2hԈGW/Ϟ=ԱAUvinnCII »t@Ut:ݻ՗._\\PPkmM92x„ɓu{s*. \ i8{5r`٤Re^{j -$bDGGGyvoHO|qjIIԩ֬y:82Z`IIŋj`& %_dJww#h߿_AO \psRر͎ssNgeE2e9!mr046kkШT&(ߐBӧ` "*G4k:`zz=6Ts]+t焄`TϹL,-.'E79ojjw81rҤȑ#pIAht:Ta[DWdWDwDUU½{ӏ$ /x8a؏?^W-C{ Dpss5frs5r Ìh?OJj˗\)ښ4~|ĉ5' W468R񰲳]` bȡC}[YNssѣٻw_eO=lSÇ:(Sj[Lƞ=:e~RGGX(1d}Ϗ(UU7ׯs]+[&L?>|A@@S(TEEu%% JʊDG/aape}phtii?x57paҬYqvVKE9qbɨQLSPrVBDvvCA՞X*RPR/)i(-m(.n9dС>}=Ֆϗedpofdp$6#F>~|Xp0 2Usz=^Y)(,/,+*+)I0 #X,pϰ0ϰ0pO*j "{w˼y#է{. _XBC%۵@aD᷵i.7drPrf͛܌ nE*6Đ^+g  &VY)@ 8~II@ЌayCC=X,Ɛ!>0<H3b^}51"A:ɸq.}jŊdSzU}vunNg2lv`Rk02$WilR~qq=ӨP0 u    a[-4_1;2'Hψp>U0 |ުTZy{ BTaZ}QуYYj%)UΝ[E&s8|JK ry5;T`34#2ձ񒒆ʬFjf%$A~ WLb& $//a]jdM r,C[ 1^h(u `t8kcDzU]-BgΌؿ\ތ;9sM x$C92Fs1"-A*juujQia̤0woo+%aL&$H`^^;<^EF ztr,P9FOTRҠVkۭ;D{\%7z|^`}{>dz\yʛdgWddp|mL̃C8ؠkksf̜9fGyXΕ+k`&X?P*չU¿%YGduC=`ZBaKuF\]-y\ 2͐1tmEEu2깬RiIL&#*'^vv= *L.ohrʚ˛ʚ*+hpÃL у܃~~n{)-8q,X0gNsYzOVur^^~{xF[v6M~~MNNrFg(1Uj55"RXY)(/460 "тhAAtxyQa⯩h4WKNV`gg=y9sC,wsAA~vԷaFySGg %QFA $ ӷers\~~n.}ݶkƌorr*Ә3gVXS#FMWJJ NZ%~~nC>.֝8q64H=z䡏]YaR/3}R0oޞj1Nd u @>9z438GZA08ir NR_/mhK| (hf,aNN^^.^^(xxPz{o'0QE :,Y! yy&z2@0;3 ,2//j&azS[…;/k4gz+jgg۝;S#4;.l70'pzKppKWG߹U}vuOǙL;6 &?tڪ&ZGњ= .4w˴wTDoƆNNFnAA4GNK{\CB$Fd?v=` WXfOTU yrw=֦FscY[V~zҧ}J}ei:[>xnZAᬬ Zkh2VeMMr4}K*}ˋEz{xzR 7,wԮW} fs}'NIm^zEv?0@l--*TWkk%qM͸ t:͵0܀ 3t:}nnթSN(w81rڴa6jʊgk^}@ǩ$z\^TU -;F 6&(ٕn 2Ě0!ˋj&%!A!ij2;R<<(:˅N'{{?O\]M\ZW'KlA;d{TAZ+˟ZZTC|`x'&|B&|``\00dJ܌ίd2` Z4:>'قgkk%>>.Zϗ߇D"؇X0O;N^PGbEiׯc2`Ù|^72A$>p-Bɔ4h eOu36McMσ Hkwm//Ž!+h Z>h z3Ehzo߂>= W .KfΆ( €S䄄~;bkJ$Fٹ3Om[t"2kkʕI}wUU%\pnnU" ìH8[<(1nq4T_/A}! oeV^^.hMWCM/-`}8|ea& XU0Ee?V[+Ԉkk%h= a..h *$IPi4r8 {_.o&=T ۗqNcfmMrr۹s }FvvŊkj$zL&u}z^C~NwX 077{k>]2Z}F'>>Ա<`P*U6 MAW@imU5Չkk}I"25K//׃Uts7 JqL&w&MmJ/܇ Dca>Rio?wzkֆ0p=V8tv)ܼt+|l^z)+-AsS\(lij Ba3/#Ah^^TEɞwwgK,e.+I?o߆l3ќ\h4g&E^:+Wvh֜9wkXe\ngm0[ <1^K}tGBYnF[ Q_s񢼦F.1/44H(߸i y㍱xNCCa}DD"X9:Z[98ؐvTm?U rYNu],kkb|H**e6Gfe[Vq,/rN'|}}^UTTǎecfacTZTi>}ήرի%$]FJ f̈y?ץVU2%'၆ZT Şx{XJ_v d2HHbB,VH$J}BbD3ќi4g77'ww'd)BcAfATuLb#VVD"zu2oA˅EG^Ps祲FخA!RZ9;ۡh#1BvHb6.J$RD!)D)(7{{wwg͉F#hnn43FvssrssNXw}K<2|lBB!!kJ:ceEZ63F&kzdTf=*Q0Y2Nw'9;s&M&SdRB*mE%L ' QC0 vqqtqq@"^..nnN9?q>ȑ#sASSS̙;tо}f\̘1۶mh?;ydKKk.d2{!ևHĨ(_aXaa]k>Wq\"Qw0j') BR(Tmm ETVRP \*> d;gg{NNv˃JgqrBb.Eݡ>}9 $q,mɓ3gGl6[(bFR{G=<&&_|yrr2Jdo !QAn޼8Ύ;bcc Ԏ(:tOl7ˏKK'H(WZaJY%$DP-n88Q(F lnQ(}Uhszu!UXJm9;^D趻_|??֮]f͚ aqƍW_}޹0??~ QloBuƜNNvTGG; іBwtEm;/ oC䯿H$9rb) 4ի N_zF)++#.]z h4)~aN :x aZÇ BGGG{{{t,p{Ĉcfcc}}?d/>7|̙3ڏ>ϟ?d2]\\>sFjjjhh(N_|Jpc'a/F3ll:iI&ݻ`ǎׯvҧ^{->;,)B8@28=|:n֭,yYYYƏm>tPpp0F{뭷Jjr2eggWVV>nW|>B7o<{صkr\ Þ~˗/oܸ1222?? !!w}ԣZZZlmmwаw^++[v}}j8crCR;?:i ðg}V. BI&q8L&q7vr(+WÕ4ug{yyO\ɮf|{lXw7W1<3f H)))ϷO\QGG[Oc]zqNe?Ge2np|_oΛc@jOϕ~~P]+;<--mʔ)ƁiZ ,=~[n3f̆ /^l.Á8O:#]ku.KcpзGm;;#6osϿwn x=ݻggaaa'{3>C/0x@^_`eˎ9rSN=ܺux<^~~)S[G͛7o߿ҥK v~@4i.jCOMM1c*/oЏjBbp/^pB VZ`0-[O Y k׮͚5wϟ~I&u\bEYYYNN￟ƞ CxO4U'/ }7W^>Nj*9ꫯb]{9AM]YsaÆjOOOOC.k...nnn-R(}]/// /K$G8~`Vy>S*o8hf{mmmKKK+D';cwܹH:?z'4<|᧟~www_lYkkk;9`?.'Ư_VuV&8rH4*[@@N_jJr!]( hSVۘRΎwtta牥srŋwe# 0fN޽+`\` W#Ur92uOPSG,J2ubbRi(rTrE$ >AgH$Ryy>8[0G^` W#Ur9rRIENDB`XQilla-2.3.4/docs/simple-api/Timezone_8hpp_source.html0000644001725400016040000003237113273140073017634 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Timezone.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _TZONE_HPP
    21 #define _TZONE_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    26 #include <xqilla/mapm/m_apm.h>
    27 
    28 #include <xercesc/util/XercesDefs.hpp>
    29 
    30 class DynamicContext;
    31 
    32 class XQILLA_API Timezone : public ReferenceCounted
    33 {
    34 public :
    36 
    40  Timezone(const MAPM &seconds);
    41 
    45  Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context);
    46 
    50  bool equals(const Timezone::Ptr &other) const;
    51 
    52  ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const;
    53 
    58  const XMLCh* asString(const DynamicContext* context) const;
    59 
    63  const MAPM &asSeconds() const { return seconds_; }
    64 
    65  static MAPM convert(bool positive, int hour, int minute);
    66 
    67  static void validate(const MAPM &tz);
    68 
    69 private:
    70  MAPM seconds_;
    71 };
    72 
    73 #endif // _TZONE_HPP
    74 
    75 
    Super class for reference counted classes.
    Definition: ReferenceCounted.hpp:30
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    const MAPM & asSeconds() const
    Returns the whole timezone expressed in seconds.
    Definition: Timezone.hpp:63
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    RefCountPointer< const Timezone > Ptr
    Definition: Timezone.hpp:35
    Definition: Timezone.hpp:32
    XQilla-2.3.4/docs/simple-api/dir_7491f501d2a916fed33ee116b073f624_dep.map0000644001725400016040000000156513273140076021242 00000000000000 XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp.html0000644001725400016040000001040213273140077017615 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnyURIOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATAnyURIOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATAnyURIOrDerived
     
    XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.png0000644001725400016040000001435713273140074022325 00000000000000PNG  IHDRDbKGDIDATx{XWO JQn!{PV *OPDtʥb^vŭO jEAUQ0Uj!j$`/B.}?ϙwy;g9ef2a4,x  ]scÆ "PWMߒ47dT ܹs'00ㄅUԠWO>Dy@.0\@arѣZzepKEEg}ַfVVDiiiwa0ofLL̄  AAA...4h^v-//e`mDNhkk;===ţG[te0Ǐ/_^YY9x921aVQQf+++ ͚5#b5k2BhĈmmm|jj*Bٳ֭KOO3f ^⛝7o45*XPRRZZZQՏ=qqq999&ŋD;;xgg禦~€{4)A@Vɦn޼Y(Wh booooo@ Nܰaڵk[/^Hl^|ԨjT*5Xޞb|gԾ=jkk?/##̙3`666qqq6***N:}ѣGWTT/5Ĉb300ŋĵߪboWWWJJ… y<ށr9B(((+W\`cB>BhDڨF[`Auu5yʕիW}_dPyy+4C.]AAA`ɒ%nߣRXhѢE222Jfgm& bjcǢΝf͚w|?e777=="bqff_~):ypppUU 2dȌ3t6qqq:ZȜ>>QǙ3g֯_fǏ5~mT/ .\IѷyiiiBB[o"sd]]]=<<{=buMLBR-\TVV7L&S$H|\`f/bժUZKD"QĄSbBtzң H$tHgLFL~~~?_qFP(>}+P8qD>>D*ӓOt#B櫯/o̓r'NH?FJPss##pE>z`F0mH$s_BBBD"P(;w\ffB#Gʴ_(SSS=<<4/{b@HHd2Choo͛7o.9 Rrχ^xRTG %\R"lذڵk"LLLdXSB~~~YYYO<͛O<_3f:|fvѷ 8pҥk׮5O>ݭd?~|޽9s1isXEEŴi4\YY3ř0a޽{322JKKY,֌3ݻfjAAA%%%-Ҳ_>---!!`;QQQ:{9rgxxw}~l7|M։aÖ-[y'No9tPFFFKK x BVJKK[z5Fΰtz@@ 4S B8p:a„۷bٳۛW'!!!7n D-|؎;-[[[mFu d(|'χ}I}rX|"Lwǿ`F78x5aԩTGA:6l08` ( P@.ڙ?LIA[[qo70 ^ړf `k۝9IIIÌg֢Ç/}y('!H@a<ރ:y'BEu8f(XN/z.^Gu8f((z{gR*U!KK >: 0[}FT={ڐPQ-,"B:w0H{JXX >PaNI|M Gª~H < P1]2_ 3'ҫWU*;j5VTTCIH(?i>;^~H(|~Jֹ ɓ?xxN }HR{{VVLb/>2<[a7|Eu r  ( P@.0\@ar  ( P@.0\@ar  ( P@.0\@ar  ( P@.0\@a`JCݨ4~OC{\E"QRR/aD"jcM3gxTGjRXXHu$  ( 3PF Qxt3PY,secx}j_qtt9r$1>6sL!Bf BFxxx8::7fXYYq8RܱcѣWX7o,uӦM===BF]paӦM[j^꧟t۹s\ݮ]BI&u4J>R@ЀaXCCfwa]]ݴiӶlقWJTz^ƍ( Td2cccE"Q^^B/V'OT &\. \xqqq/! X :sô`XaD"+L,qsss3^q?VNNN7]\\2iwĉǏϞ=It^.'-P}}=.SXWW^XxG}goo\.g22lǎo߾}5kOYrST<~hJ  ( P@.„B!FY_Bs& `Q~8: cX)))`WXiiD"AO8[Vyxx >׷_eJeee>>>VVVGnN:5t]h4ZNNcJJJnnqllloN,))4i^n]oosBf EΝ;rv՟O F(x XQilla Simple API Documentation SourceForge.net Logo
    DebugListener Class Reference

    A class used to listen for debugging information. More...

    #include <DebugListener.hpp>

    Inheritance diagram for DebugListener:

    Public Member Functions

    virtual ~DebugListener ()
     
    virtual void start (const StackFrame *stack, const DynamicContext *context)
     
    virtual void end (const StackFrame *stack, const DynamicContext *context)
     
    virtual void enter (const StackFrame *stack, const DynamicContext *context)
     
    virtual void exit (const StackFrame *stack, const DynamicContext *context)
     
    virtual void error (const XQException &error, const StackFrame *stack, const DynamicContext *context)
     
    virtual bool doLazyEvaluation () const
     
    virtual bool doFocusOptimizations () const
     

    Detailed Description

    A class used to listen for debugging information.

    Constructor & Destructor Documentation

    virtual DebugListener::~DebugListener ( )
    inlinevirtual

    Member Function Documentation

    virtual bool DebugListener::doFocusOptimizations ( ) const
    inlinevirtual
    virtual bool DebugListener::doLazyEvaluation ( ) const
    inlinevirtual
    virtual void DebugListener::end ( const StackFrame stack,
    const DynamicContext context 
    )
    inlinevirtual
    virtual void DebugListener::enter ( const StackFrame stack,
    const DynamicContext context 
    )
    inlinevirtual
    virtual void DebugListener::error ( const XQException error,
    const StackFrame stack,
    const DynamicContext context 
    )
    inlinevirtual

    References error().

    Referenced by error().

    virtual void DebugListener::exit ( const StackFrame stack,
    const DynamicContext context 
    )
    inlinevirtual
    virtual void DebugListener::start ( const StackFrame stack,
    const DynamicContext context 
    )
    inlinevirtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileFormatTarget-members.html0000644001725400016040000001527313273140074024373 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::LocalFileFormatTarget Member List

    This is the complete list of members for xercesc::LocalFileFormatTarget, including all inherited members.

    flush()xercesc::LocalFileFormatTargetvirtual
    LocalFileFormatTarget(const XMLCh *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileFormatTarget
    LocalFileFormatTarget(const char *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileFormatTarget
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::LocalFileFormatTargetvirtual
    XMemory()xercesc::XMemoryinlineprotected
    XMLFormatTarget()xercesc::XMLFormatTargetinlineprotected
    ~LocalFileFormatTarget()xercesc::LocalFileFormatTarget
    ~XMLFormatTarget()xercesc::XMLFormatTargetinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp__dep__incl.png0000644001725400016040000001326413273140075021477 00000000000000PNG  IHDR\bKGDiIDATx{TWHb0JP]\ TAQ{ `ZŊUV]YKw+ (lGWW*X5> P#C09tg$<zp8w~7޹d0b&X:A A F{{ݻZA sz֭2p[x1Yvqq;w.qppI>\~=s&#,^8??maGxuu5z-LLL$ɓ'wwws璒222OiӦڂXȑ#Zppӧ1!!յѣMMM_|ń ^zz:t|xb@vׯWUUmذAnccnݺ*O<1 [jU}}`W?w1|DZrJ"quNwɘ˗'&&޾}jjj^r?OrbbbV^}!Zm80f,  v T*P( Fsuu%,%''եwwwdݒ/B ;vӧ|򉧧g~~>%vd2% 6Hf߿_8[1X&km ,0Yp\G!++kΝ208pkCCb, sNwww`` 00mL89[bJKK9-i?{m ̙3._Lю=`0s||/ِtxѺoL&.\ %+**lo 6]vѢE>pX,{WUU5qTe&X]]jy~'''&7 gZJ-$$K,7>z(,,|W(X,>xB0x윜D"_Df4X,&;'MV~뭷jkk_}K.eee V]wN3g43`&b!b t|>_ba9vϏla_eeerr2i4;AKH.K$Rj8qח 4񊊊 `Ճ:fg͚E|ݻw`@{{`G( xMÛ yZ=uJ C x'OeeWjx, NP(Oܱt:R(gk4ZKgd1 U}]ZFw~eS*a„_oZ0 d2Gё d, 8sy8V(sK ()]͕=d wZÕP/)iHJ:TT\џ8twS,)kju&_qPVve8}H@RN'ZNW!\[҉XFH;H;H;H;H;H;H;H;H;H;H;H;H;H;H;H=Y!B`e5f'>$''wbqrry"byc.\n@qqcy R aH$2c4c|lqKt:ǹtR/^\,:ǿ>Δ)SNj^\,,\@ww)Slذ8w}NX;v D" .\i&S.^bϟ?f8 "Ϟ=`$%%)JFsc%F@aa>---8'矇ݿ_(ڵpdL !^ڧZd4-..N,͙3G(^~7رcqw ׿j5st{b L$˖-knngdX㰇7<<<<<|b@___LL7nܸq#11޽{9PԵk&%%ݸq?6h>ӘҘɓSڶmH$jllܳg07ThjzѢEvvv]&::::;;;V7ꓖ4mڴH100cWWW{{HTjD"qvvf2 `-[&N(Ɍd=}t:uV2q_t5rc f|&300ёSPP`\̆/ o~ך @}K^~w|WfY(/gWl9$Ѝ`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`)v`ǜ!"*ߕ+ŖNdXYY-_lu֙--x<35sZ6<<ܼ@AaF1c@4A y~ 0 3Yǡ:a"hm'ϯ>9:<|9oTTTIR@AAYu:]zzI|>ыVVV2L>>>6663g1 2eJjjj^^ތ3KzϞ=`$%%)Jj:%%Ņ`jΟ?f80Xa̸>ۆ 6n#333 FiiiGGǙ3gX,Hϸ h4Z\\X,tww7!˭\nggѣG)\.'8dL !<-[\__f߯_? P(۵k>VX!x<ް1 C=@aaHNR)!vΜ9LJVR}\.j~JVk@J2(Bp.,,dս:;;rUUռy PSSV6qgvX`MCXZ[[͛G: F577Ο??77cё׳X|ɤIT*ՠLIbKL&hkҥmmmI 5s (!!!~!aqssvOy EDDDJJ@  N+..H$6mZrD2 oP@ss3q:It:Hz&'1&c80 tqqq[n-((oO> KII)//ѹsv5tRRh4Bطo0lٲe<O&T**jkk;Tm&ٳ~z֬Y{{ Ç:1)ÇO>~3d+$4P(++ꪯ߼y ԯၳR)w|>]'2]ӧ={Vy$?_577'[Xm 5 #r"h`y;88ܼyܬhܹO>ӅB9把 '2]cǖܹsOC=?YXX_޽{^mQ*j̢&&I,eeeٗ-[vt0HIIQ(l6^]]L c'/WAͭ\޽{:f Y?tvv[n ~~~[lx@cpBBH$DQQQ:f왝իo޼Y^^w^KY"##kjjD"W|||ss3˗/I .mKꫯ\ $ɕ+WN:F6qqR9~ZbsÆ &L`@ $✜#""ԧq!!!NNNVVV%]1668߿fڴi/^IP,\R1 ;|q,X@ߺ@O,t(HOO12k`By '8@y (byɓ07??1Q&ñ~(( 9~_]1a)+_`ԯIPfgttȯ_c(O>cur [9oWbcc,X@w! H$tWQ 0|r߿筷ޚ={-@v~_<%\~]=*99999aXu< Op<ӱc233؉RbQ?j<**2vLIc2'ItbL婵Uvf%1̌55}@33Q22J-%%%v+2T_/-/R=eY.ܡ$#O|m6EJ%C$ )#X$>TT4XaʦgMM?HS  㕘5&*"Z1:t[P^_/ |=F nK)_25e_P: Le8)* F+r❹s8;\%A;L_Pn8F'8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@yP._|YCIaaa__%UżyoO z-W0g(',,Lϣ:? Op`|OcX X,WSSSYT'㩩iiid666W{=D"H xyy eFCwb{Ӳb=z,zv:|؂p էŋ͜97X{zz:tu?xU&YXXܹsGG'ׯwqq`jqðWW׉'[]~)$x3\֭[Xl㠏L='J5eʔ'O8K $$D*&%%Z[[ )))^^^*JG'oիWVWW Yfݻ,ZÇBH$󋋋#Ƃ($ڼD:2BCDr߾} /@1 4iҵkp_ttwB|l6ݻ(www V0c >O{}0':6BP}(cu'c>-550>--m֬Yİ A+V|oo_x ASSR6m1^WWG @cbSJid̙DbOJ2--ѣ]/ؾ};|I& JOO_p>888욚bYRb11\VVn?NbTTTag'lvSSzJII xq!֊0:889sfNEL D^^^ږVE"H$"뽁um,YRYYYTTAu֐X\^^eƍ~mJ5mڴ?׾7m4vA;Q( .$]166WR4<8'''kk눈TJ^"uFDSN+?:;;7l0a;;nؽ{wddpl\44g,z#^ \А?U>:io͝;>x7A(?~ƍG ŋѵt&&&d{ 8@y '8zt|i=07w{t4+_-AA/qgF2rP+]1a)3VUUӣG I$`{kkQJ4IB8{dSSgizK2"TTTء550O.#t +0%x0Յ 8sP)/aG\c zCQUG$O?|z11a1O7nT@VTWp=vt<~ܪ >{ӉQkkW^4|wkk oo WW;ot30gy '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8bx׮]P8,I\[ Ma6668wvv}uuu)))gϞiImKR@ssƂn޼@;d2%>ɣ@g8e ? d2RJ00h[[n)€Mۓ$qu;`J"̬"**J&P6mcc3iҤ r˲_9sN?q#p?qw@oooXX؎;JKKA۫Wȷ껻<Ll7J1@/_^[[}v@___YoooBBE&+VصkǏBappϞ= zjeeeVVsLLЫՀmW}ڵkӷmVUUU\\{5kּlz퀨IɓW^MNg?zɓ曈.-h[&}GfͲڿOOZYIG-kᾎ1L_G0z}X}7@OBo8ڟy '8:B/ӧ'k0*?? M0eFll6LA!SPPr|z/c´SVV)FV!0ʓBξ_΄'5$<p8&YYLQS(Otܫ}Ν;Wcƌ%ު/ >;۷QG4J]ùslll=hѢ+W lRK'cmmOabHrssgϞ믻,kٲe[nEEE\l޼b a˗/_|ybb"au֑wss𜜜%KZJ$|vNիa?:cVP z8JJMM]vҥKl>d Dy]\\===)))111IIIDLDr#G9sF&ktb8==O>QGS.sw3f޼yxnڵC]3Ç={ŵfffv[q\@wwF+Wl۶N:uƍEEEzcX*gFGG.@[=\v-88`8{vvM-Zdgg7æJSOSLyNgSWW_R+WT7ֶJ)NPUU5}tbuХSvN91c ͎ayG:u2@O*J l޼w%9sF lذbW ݻw޽ ,P(WǎsvvG<@PPйs|||ԧ(\?{krӧOW=>>b=7 %BT*_:AAAuuuUUUgloookkkii)//߳gD" ( 8N?qny^b`ѢEIIIMMM555;wpߗJ۷o/**~zLL=yGt:d޼y2ٳK.UO8eN8qͶd7@ ܟrss̙C$lB p\ooo8XZZ߿ر;w_r˗/>ï:**b~3gCCCMMM_:e---p/^|ڵŋ'TP8quڴi{!._ ⹣Vgo|'NLOOט Op<h駟d{Q"“oxxRɨ`Xx7CCCNg` #A'8@y .W< qIENDB`XQilla-2.3.4/docs/simple-api/classXQQuery__inherit__graph.md50000644001725400016040000000004013273140074021036 0000000000000015898541134f0354e17356bad3f78d48XQilla-2.3.4/docs/simple-api/classATQNameOrDerived-members.html0000644001725400016040000005057613273140074021243 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATQNameOrDerived Member List

    This is the complete list of members for ATQNameOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATQNameOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const =0ATQNameOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATQNameOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getName() const =0ATQNameOrDerivedpure virtual
    getPrefix() const =0ATQNameOrDerivedpure virtual
    getPrimitiveTypeIndex() const =0ATQNameOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATQNameOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATQNameOrDerivedpure virtual
    getTypeURI() const =0ATQNameOrDerivedpure virtual
    getURI() const =0ATQNameOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATQNameOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classDebugCommand.html0000644001725400016040000004254613273140074017104 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <InteractiveDebugger.hpp>

    Public Member Functions

    virtual ~DebugCommand ()
     
    virtual const char * getCommandName () const
     
    virtual const char * getCommandNameCompat () const
     
    virtual const char * getBriefHelp () const
     
    virtual const char * getMoreHelp () const
     
    virtual bool matches (const std::string &command) const
     
    virtual void execute (InputParser::Args &args, BaseInteractiveDebugger &env)=0
     

    Static Public Member Functions

    static bool matches (const std::string &command, const std::string &toMatch)
     

    Protected Member Functions

     DebugCommand (const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)
     

    Protected Attributes

    const char * name_
     
    const char * compatName_
     
    const char * briefHelp_
     
    const char * moreHelp_
     

    Constructor & Destructor Documentation

    virtual DebugCommand::~DebugCommand ( )
    inlinevirtual
    DebugCommand::DebugCommand ( const char *  name,
    const char *  compatName,
    const char *  briefHelp,
    const char *  moreHelp 
    )
    inlineprotected

    Member Function Documentation

    virtual void DebugCommand::execute ( InputParser::Args args,
    BaseInteractiveDebugger env 
    )
    pure virtual
    virtual const char* DebugCommand::getBriefHelp ( ) const
    inlinevirtual
    virtual const char* DebugCommand::getCommandName ( ) const
    inlinevirtual
    virtual const char* DebugCommand::getCommandNameCompat ( ) const
    inlinevirtual
    virtual const char* DebugCommand::getMoreHelp ( ) const
    inlinevirtual
    static bool DebugCommand::matches ( const std::string &  command,
    const std::string &  toMatch 
    )
    static
    virtual bool DebugCommand::matches ( const std::string &  command) const
    virtual

    Member Data Documentation

    const char* DebugCommand::briefHelp_
    protected
    const char* DebugCommand::compatName_
    protected
    const char* DebugCommand::moreHelp_
    protected
    const char* DebugCommand::name_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.map0000644001725400016040000000046213273140074021300 00000000000000 XQilla-2.3.4/docs/simple-api/dir_a55428efc10bf6e491de7f7537e23d85_dep.map0000644001725400016040000000256113273140076021422 00000000000000 XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__dep__incl.map0000644001725400016040000000250413273140075021262 00000000000000 XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__dep__incl.map0000644001725400016040000000024313273140076021000 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_41.map0000644001725400016040000000036113273140077016461 00000000000000 XQilla-2.3.4/docs/simple-api/classTimezone__inherit__graph.png0000644001725400016040000000540413273140076021364 00000000000000PNG  IHDRp0d5bKGD IDATxkLKB"*HU4WxMňј \"%D 'Q%*(XGEQZDR/(AzǞo-(,SAfwߝygl]:,$3b:O= r|߾}l0:u?O7n0dggװ{eee V>ٰa|}B '4Р?X4Bayyx$7mri 0a˝?~^^#ib^<>}JAdҤI7n4r?>33m9sp87ofL^qzy_3=F}1WWF>kpgg';ˁsEjq Ǐ`Zi O666NNNԢJJHHpuu *jѢE@y5 |6jqrb…111z~5JfΜ)JRP(4ׯ_CCC1hZ,R{|Lxyie5XOK7S2!⩥ۣGj-}%IRR2-)?DζB<ݺRտj=ihhe$%b |i-+zښUPPs=rXWnRY@8Jqs[ΎmmKhi@ p?L'bJ,a{B '4{B '4{B '4{B '4{B '4{B '4{B '4{B 'D0>@`W'Y[;~zlhZx <3_Cϟ?~ޗ-[f&>4k`Oh=ÿU":s}rrrrrrqq44aؓP( bbb2$hjC =s5J)**C76mD{>>>7nhmmݰaǻtR[[֭[@V_x|}}mfWZEUj5 UU{{{jjjII#""lmm}||UBdN>QQQ%%%;vzj[[ܺu 'NzҥK D"QaaUϙ3g/\p/^\~ZsEGG)JCu26npS$$$^cz޽X>]ZZ۱ׯ111Vb]<<<Ëuq\___踧j䡗)uÆ 2,33355ZPhZ@@m3f 51x)d''SNQ}777@ggÇG9#GZYY1~xmbX?S'1;==˗/2,11pkΚ5Kf}||Ξ=KDmmmFFʕ+N)"""55522b-]4::D"X,NKKӅD۷,_<44d3(5 orO...M%{`Oh=`Oh`Ϲ4wCJ>gFO , h,jaC,[,00|[<( >`Oh?I.IENDB`XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020473 00000000000000227f330c6b3ba478351f63694fa64f16XQilla-2.3.4/docs/simple-api/Numeric_8hpp__dep__incl.md50000644001725400016040000000004013273140074017725 00000000000000f021f6f6c7868e35711792860f55af89XQilla-2.3.4/docs/simple-api/classASTNodeEventGenerator.html0000644001725400016040000004214013273140077020656 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ASTNodeEventGenerator Class Reference

    #include <EventGenerator.hpp>

    Inheritance diagram for ASTNodeEventGenerator:

    Public Member Functions

     ASTNodeEventGenerator (const ASTNode *ast, bool preserveNS, bool preserveType)
     
    virtual EventGenerator::Ptr generateEvents (EventHandler *events, DynamicContext *context)
     Returns the result of this expression via the EventHandler provided. More...
     
    - Public Member Functions inherited from EventGenerator
    virtual ~EventGenerator ()
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Protected Attributes

    const ASTNode * ast_
     
    bool preserveNS_
     
    bool preserveType_
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Additional Inherited Members

    - Public Types inherited from EventGenerator
    typedef RefCountPointer
    < EventGenerator
    Ptr
     
    - Static Public Member Functions inherited from EventGenerator
    static void generateAndTailCall (const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)
     
    static Result createResult (const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)
     

    Constructor & Destructor Documentation

    ASTNodeEventGenerator::ASTNodeEventGenerator ( const ASTNode *  ast,
    bool  preserveNS,
    bool  preserveType 
    )

    Member Function Documentation

    virtual EventGenerator::Ptr ASTNodeEventGenerator::generateEvents ( EventHandler events,
    DynamicContext context 
    )
    virtual

    Returns the result of this expression via the EventHandler provided.

    An EventGenerator may be returned to be called as a tail call optimization

    Implements EventGenerator.

    Member Data Documentation

    const ASTNode* ASTNodeEventGenerator::ast_
    protected
    bool ASTNodeEventGenerator::preserveNS_
    protected
    bool ASTNodeEventGenerator::preserveType_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_3.png0000644001725400016040000000315713273140077016414 00000000000000PNG  IHDR%|bKGD$IDATx_HSQuw@pҤR"fIDafe #MA@ݭ|Q!ejfLֲ^Nwu͌ |'DU(^t +W,> cÆ 'N">| b@Q!ݻz}8<=ϊ+VkT!IIIz9.B)Z~ft t\4M|w)iŹ8Giiy!0׮]0==7YЗ畢}eeeq,kXv-*++tz… ߿'ӏ=BCajjjRSSSRRjjj֨ŗ#o⬽dϞ=BRUUuVAOJ3o!]!E;&ފccchxY㎎W x<^ӧϞ=kll=֨ŗmٲezz: uV{{sFFFpk8k(xE/_ _F,UThֶi&(ԣzzzZ-ʢi];m۶1ŭ™]vm߾Ν;P(V:oZZ#~SS^?|pGGG$KQ544_offfа_@!][[[w؁5 WRRS*p8RRRN<+eŋ+*0j9xL|fggv{^^^ffȂ|D"694blpO'~655UR Yn BxN$jVA5kl޼r9Nɟѧ%zWYr/>l61Ln͛7Z oܸBgZ...z f91YPPz- 2=zǏy&9;ϟ?okk,//GRjĉr`Yɓ'FBt:ݻ' xÕgX5 /^^|Y vaD<11q䴴jԓ|f8? :ujժUp|kԎ| XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/classATHexBinaryOrDerived.html0000644001725400016040000011177013273140077020500 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATHexBinaryOrDerived Class Referenceabstract

    #include <ATHexBinaryOrDerived.hpp>

    Inheritance diagram for ATHexBinaryOrDerived:

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Function Documentation

    virtual const XMLCh* ATHexBinaryOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATHexBinaryOrDerived::compare ( const ATHexBinaryOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATHexBinaryOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATHexBinaryOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATHexBinaryOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATHexBinaryOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATHexBinaryOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XQilla_8hpp.html0000644001725400016040000001525313273140077015660 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQilla.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/framework/MemoryManager.hpp>
    #include <xercesc/util/PlatformUtils.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for XQilla.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQilla
     Provides factory methods for creating XQQuery and DynamicContext objects. More...
     

    Namespaces

     xercesc
     
     CompileDelayedModule
     

    Functions

    void CompileDelayedModule::compile (const XMLCh *queryFile)
     
    XQilla-2.3.4/docs/simple-api/graph_legend.png0000644001725400016040000004242513273140076015766 00000000000000PNG  IHDRONbKGD IDATxw\' {- KA 8 8uUZg]nQh?gZgEAPQgF"3@ȅ~.7>rs=q9C%;2@A#y;YYh$H0".iӦ<">}Χ,@` ;͙#xȓ<Q ̌@Bnnntt? r!0P"aH"ٵqF sy dSSS2::ijK fE\JII!~ !lIIIyyyDAЦ.H[[!t&yĉV\`Ν;׬Yp8\.WII!b֡Yfر#;;;>>~ҤINZjWPPPQQѓ'O~嗮IiMO".~؟N8p`hh;w>}dcclٲ7ot 0 ÂgΜxDD͛7;*yN~mmm++ Ԡ0$^oٲĄN{zzVVVꚙ>}А3FCCd.YDGGGOOoŊ555|>ȑ##G$6dD;YxJ,,,׮][WWJ++,}9(&p-L+?c' B iii}ia)(uk@D'% "*ڨq(:viii\(@k  ~gϞ%; y d緜W>ӉX!*B{?ɤ@Y;** !tVG rn! (Mv(@2{^N/*&;bya8qqPenb(#;Sʢ(TMv@N2<"[bɎd#Dr$hD2yC}~LRrC 6W.L@2)n݊0៊wߒa~DՉ3GU 1;iRSJ> cȋd@T/PQvI'i&fg'%qʼ0S0ʸ_8pu_Oh"H ؔǢf 4ReV5 讲o6@*|&?5@(-efJ8bc(Z[2< $K*2aEDJׯ[YY㏵|… Zږ!VSS366+0`J޽^JLx^^^=z044x.ըH={fnnիŋ뛚nٲ 56f ͥ#Glll455GҥKq;c a GGGÇh̛ݴoS vvvFt46:4{t^P(.\3008xիW{EwMlI6 O\&R9RzD9pݺunTZZ𺀚|Ry+vDRh4YwޱX,&6k֬C8*\\x1a„hkk۷7z#G'$$1b˖-Mq83L%%K]v !TRRfϞ=[XXxy6CfϞ}wPrXtϟ?gꫯӰقms)CC;w<|C ~V%gAq0ǃLLLx<^f$/s̙3gNNjA4!VVV"[:~<Fyzz2L???o޼;v-FeTe8s\bzGc_6Fו8&i3j^M/Iu2hZ)F'+W >|ΝcXf7mjj:mڴO_IO UHMMm} Y>}Ğ4?;;[8]m?~|„ JJJ)))˗/gك& =~;&O266Nw`Z+Ejkk*..VVVDkk}Y7SR4hpʀ)Go߾ݯ_}!li4R!C/xԇAHhlh[ 5|Mh$HMBKz/O OV!!!ϟM~q^jhlyu-d\Jo4O\ hW#ySIIIyyyD G/Z\83mmmЕ+WL'y洴؟yM]`Ν;5kdgg *---*****9t萙rJJJuuu!EPo&rBfڱcGvvv||IN:%ƽEEŹs[.33311q׮]'"meUVyyy=y_~.G#K.%4[[91]wk׮}AffgϾ *++4Gc_fVKkWIv-tZ~ځ޹sӧO666˖-{Ma3gtrrq<""͛`+ǿ_jTm'h 5!~mmm++ N͛9Nv[l111鞞m QDGGoꚙ>}А+++%%%[[۠ bN&d==+VԴhHX`ƍx<ޘ1c444iR|>ȑ##G$~I@EeŊDBhqx;w} w0HeԖƦ_N#MKn>FsvQ'X _+󳰰_vm]]]7+++}||Z 2}9K@ǿ_T^(xN``ܹs&(J@@TJUdu##KXb|E֧O{aviB<O|$_Ũ%tJmfu/`d ⤥rJm 8={(@.м2.@ TEU*UQֆ+ hF}%o@Ј@N)R4Ten:PQPU-ox-^-BLAәhrc%X@ cꫫ몫kzo_޽ Ȏ @媝wkF Xqи")L OKWW+WV* T&^WwǘZ&S_x3O^ HӕB**$u͎;vmh ~6ZtQQQ#GژL4t| SǍRWO1L---q-**g!.шyo< yPYPԔ޿iiN*2r(딟"(XrrN8(J aj* )2b/̛7ob rƍMS*T2#gNNz߾LI 3r9seUbYO'edT۳j++=[nYW%lh4O˥ |>ϧ|>Lf.&`4eLULWp=hjYD5t\>5;&SSD];r.eO4E*sf9L1vW'M*NHP(CWmMI숺;s&СGF&&͘gLLBQT"D0k:Bٶmʺu(&0R-aFJ渽Zf:|70mڠ/ lNV}ݫ\2ieHk\8|򯣦Av'Rp{ͭ49숺܊ٳO

    0鄕ݷꆊfc(FJ3:xJ_3v-z>wժ|~!Ʌ\ lǏ1RNŨh쑱eS0SP2]a@m P( o (++ܾwusL7שּׂs9uYjj11K #Qp++EjE^ù.)u+R IDAT'8~}iOIK:={aܸ/^|"F;%&muߦ:oYw2vgso<15;] ZOUPrܯ2sGP />Ysɬ1*2nk+PZzcHȇ/?1uz669U:ȸԒԆ5 T*[d-EbR5nRfv?p@Q]ФUwoЍT*RP;sɒ1d&/tUm-wĈޑiڿVKgKJg0 yJJ{8; `&ِBem儣 $@x?3 6`SO=r(ّJy޾{TMgo|} &w\\ejZzlff[) q#ZUUi2Z@RTbhE+S…nB7vԠ*tbpz5gw51ivY;**kT`8[MM ,%& 㾏6=lB=_wmM8`3߼A-49Q $Uq#(5s6 !\bb_{7Dg2TU??kd?ի+F&7TqaqWXuq3 rD@xxJppқ7YT*e` ww{ggM)MoɜjW9xw*աLJ?p4w\~4j3`țS"YBdݻ[bm%x/$EEmBV`WR$˗9sodM͛~檲-藕@ Q5) FRq1@sؾnncҒUrk vv&͡'nme`fšUcW)+o PǏ'N0MzzҊ=GG <ݸӧT4lX5krsoi'BƏTv59YUٜy4M=-n/ȁaxbb^xxJXXJTT#{nnbYa5팣cM-P-,.\8lJR:~~/w9 "jk&&z^2>s&5}ի'xpVNXuj.[[܅nL1@"k d䫬y*5<<%$CQQȑ֮t5#Avy/OMI?VOCHض-!D\=ҷ%;4ic)֮uupnݍg9~;C#MI _0 EiԍxZinBMN @|Ta}Ogg7~C4e첓O =Yϫa7뚓Ddô3gtz|Y55?z g=T[˝_`lbd(0OsГCɅ_zǔF9ndBޯ\y…'cagN`yM4su}[ 9/ ްp5AC梅2YIO&U訏յƒ'хң.}w`E!!rMAA둙3,c! z{DHffW_[uK LU^]NIf:R܅n6FKލ1 r°O^N*.&<߳fߍN*G' yadB>5$U&UK^]|͠ݬ I+MhR.'d^}=/663,,%8815XMMi>nn&XF ˝)`f~0gہ';I;xs/=hggBv,մ7_jd2O Mf9z2>WUUiPK77IJN>O[:fD/SnӵY`|30>%,êk]]d뻘X$A| 9aaU|V=o_R2ٗSN/^|d]\vGbճ.D\8H)t?OH;ϩξ>xb? K^HH ֖=W g?Ye tT-\ԡ>)󱸸,CxxJBB°a\\lmlȎNl|=)욺kDdU_gl>|hcZχk 'd7_.KE[gw[! S/>|xYGT 8;یo! ?&3FGjU~l좐UCq;ٱt7_?p@-z1$Gu-1x1`|HHSR f3Ãmt({WW_qs1pt__cz%;^밼(fvXuΫJvz}ey\SOY;**H PUUkf;vl_ggcmos 9v =u_[RE{QCQQu;Xįi2#IJ1>n_…n1KvGr2 b <<%88͛,*2xM84ijEWjm5h}]S޽ɎEd؛o[e&5-\.t5}2?IKKӧq*((زeKdddYY?|';.۵N[w숾PQRQВOC;oIosmmm8pKKK--]vHjjr{ﯬܫW+W\-[ lr|Ç飡1jԨk׮k022l!h+4hсZted>~,>q>>>w)((x𡉉 B!TQQLҥKԡM MM '88+`Ȑ=wXqȢ*CUxjS2|ڭAA˗HUU wٲdA}ZxۑO+ܛD^;d!8m:55E***=ZYYa833A\tI˗/~"h}'99f /_A6a.U㴅Ŗ=7aanpM%rCɎ}^<ҳgҭ[d-^7dȞnwG q.3nAc |Gpp"8c⾊5ҷ@JJW[uuuggGUTxN{NokѣGėbbbZSSpAAAcƌ4hВ%KA6f'0@ת儅}ڵo((jꄼ(T4ltAv}w|}O i7?ffbbY,VKG=׮\@vDxEZݿg O~+`:x<CCCksmmmXXҥK4qSSSz*++._,\g͚aa[nxVYY9((ð:"f7R<2 2 9YYeWF.\kixرb ,kuj7{y)m%W׫SxvOfj˫dV}5/77%D-Isځ h?X]]MxyXZn0`ѣHmQȷC].P2߯mee$RRR "&2%KX9rZ]]}ȑ5dee}&&&Çws3ކw|||tuuN>ihhҦ(à?@d6cajn?bDo%%نauߋ }~&5o/^|/f#GKۺQٛ/SV;kvd@Ï K OUUU:~D33]OsГCɅ_zǔFT p%K>}ZIv4!z=~ɤIɎEЛƱ5{>ЭAQnn˗S^d /0N]]*/&F>@Tz1Scˮ..SXZ$ޛo}%?UuNxu^W+ I pBcqqY Ƈ𔄄0 H Oa0>WkiݞNņߣK-NʮF!w-*OK[)?wo6ag΄Oz[[.bؾLFFGܙnB7Wk? d@aa}Ogg7~CR%T1@<:iIfӍԖ]ru=a$R |X8eʱk]7nt'+ի~~`?8D[}wHIfL0dyQUUKt>YraaƨQ6AL<: A61Ft^pSӧKxӄZ>oD79[bT.lk0>ΫŔ%MAQvv9`$EG ȑ] !6c7^߰гXպ.+U%h1dǎw1Z$4Q$߮͗ǰrªê'&u^d@r߼ Nz$!?RGG}̘>m=]N]j $Q s8צLQ޺%I{ʪ'k(4d2D܅n@AgE F˗\bW]&g^9rGQMf-q>~6eMFY#$z̨=烊h3tT2oVXXӧ ii%ʣFYqLg1/F^=IJ VVk&Y5vX,ukʃ  =ŻfŽvQoi+Risi = @S /R)[;;tlb6}߃/.7|IL8ݚ7ǏUU;*{|oVf)k)ֲpRҀ~{ I+/gGF' 5]\ُkվw3' );FYp`좢ˮ6S<{zQ`4 Mptsf߮ DG]L0cWGVqĉXmvб|-a @*TVּz`|(.9յwF|@mwO6mJg0?{nؑnt;o{{1] oOUV}Zv ldHOBBR1 I W8th/yG|}TtۆՔbW[{eD-S97nW$:ۮ|1_^$OP -dHNddYraaƨQDmIDATuYy0G[ ct32@A##Ǐ M/CbY :ECC!TXX8}t 2@+V 0 c2ddȩLJ,ZoNϟ?mڴׯS|ٳggΜ9s̳g|?..nܹO}?O>sgӥ+V\zugϞ 5c '"sUSS3f BH ?~~zCC޽{\2&&sŊVQi~TKݻwoժUzzz#F 2C__!y@OO!Di0.pQQٳ/[Yyӥ|pJ޽;=s @~5̷2N;vgϞ!6]QFCK/VVV YYY@]@}}}322nzVfkio̙3111.\HA ?ɓ'/_NP\\\V\YVVt6##Ϟ=ѣG.Μ9S^^nee{n)`t`dGii) d< G2@A#y O@dF{ŋ/D͛Gv&YKv]bذadG GG2@Aȣ=u_IENDB`XQilla-2.3.4/docs/simple-api/classRefCountPointer__inherit__graph.png0000644001725400016040000001151213273140076022655 00000000000000PNG  IHDRťmFbKGDIDATxiTWǟ!. n+Jj%"pUHh] -`1XG_bUUqDI$@IȼMd&&w0s>w柹wf.`AlL-AR 9v77fN'QIYYɓ'O &zP%8arhK A*AT Ǩ+)3fPogذa}СC0l۶mŗ.]SBC***xiӦuohƍ[fuuuW\v7tRTTuVÇ8CߏnTIPtf ߕH$111~bb"Fy֭[SRR@ XbŹs~b&9~etzXXȔ)SΜ9[^j *:Mٹп+V7559;;kpssw?>>~~~xb1oll5j>Qzdڷo_T`ڴinhhxׯ ޽m۶J믿݌3'=:sL:RTs̡'Y1-5~~~w駟jkk#""v#c0֭[ +W0l :Dbh4uMі.]vZ??˗;;;/ "11q7nHII ƺX">>>00p #::K.={O<<<ƎKx҉v-,|}}lR\~ӧOɉȦsP rssCCC{aJP)Ri`ȥ$тjw@P:*08*QJ A*AT AR vÔQ_ʙ*b0/^`X]2ڵkzFȄڏfڵ/aH޽Z>Xp Ԯ/{5,7]1_[%5 `c5'Mb*g@_Mb*Lv}h47$۵1kX%oWXV%TgJFZUX :b=gZUR{bJـEXJ0%s{Kxq2wR% ANo[Uy{v%kÒejpym00K#( oʁA Mb= A*AT AR $ !~/H%rP AR[B2H%^>yzsAR ® JillJ)J211qРA,믿~ի%K0 .. (ʉ'}v<1n8!CdeerOy E||[||B;v옿?JMMe0Zۥ+p]LHYYYdd$ŪL߱cѣ\{&O/^>z 3f̖-[0 X|a ---T*5==] =zή.<~0B <}N0aÆ x氰0DrXpD"/_j-(( ! ;X G3A&effN4) `A(1bĈ<|\.a\rπ_oHdoo?777wB%#GvAA;#g.//WWѤ.11qsν|r{{n ?M࿰ț7oT*%ݻGHLr\ ÇxRwڴi/^Ĵ>888hv C3mr<77wԩÇv4.!bFUZZZRRp;wRRR֖O<&&ۄ<6mXjUMM ۇYԷ=BϜ9#Hr:$1yϟqƚ.;{lu#QTAAA~y .%jb]|fz[[[\\ xH$`2k׮{up8~~~}9rs0 S(SNnKH$(&lٲV}azӧO8q׆G>;ZRT*[_NPZ4s/!AHR 9H%rJ A*߉N5H%  AR 9H%rJ A3rJAR 9H%rJ A*AKA*AKA*A ]xݺBnܸQ{bjGz@csk.@p̙ aN,Zjq/Q*X< .P%rJ A*AP4ptt2eʝ;w 0,<~_zUR+?o A'59'&dCC444OXoU&..n̙>PgϞ@SSS-';flA%"O>mmm\.ssscXqqqrd;ãT`sssMM -###Lud2f5 ;;{ȑ...iii*")@(BjYx^~p^x/ƪFPl޼ycaϟ;v,Jv;w477777խ\2**J}T;Ђ  a@%XODRUU5'S e}mOZZZ9$*^R&t:ځ4\Wt a@%X*QcooZH-k#-*qZ[[׭[/dhཻ{II' YѣGג+D i-Q.cf@GU%4mɒ%ؿ]@ ۹s'[V(4@XS]]-l#-k#[HZ~rՈR.o>4 d߾}0>>ˆhQ1:捥s8w-h |~HHӤIΟ?>3,Drr߹s@_ l |qk!8-F3A=ks[T @nnom5J ȱ@P(*S{aQXJԼ ,Y%*J( KUBwwwwssW(@P;bRSS|}} FBBZccT*& ݻwWWWߺu?,**ڼy3^XXXVVq .p;v$''Cw]~iX#Л9;lxrߏo 0w˗/N&===ҳfRϹxyymٲEDDlݺoXJH4ICCCeeg&LؽN'4FRSJJJrrrIےU3uTOOO|799) ??~|ZZZ={611fx$//pLA3EPutt%KH'@*AT AR 9H%rt̡?uTMjkkh|7TiggrAX6Q>9h\ AR 9H%rI&RMIENDB`XQilla-2.3.4/docs/simple-api/ATHexBinaryOrDerived_8hpp_source.html0000644001725400016040000003502113273140073021757 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ATHexBinaryOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATHEXBINARYORDERIVED_HPP
    21 #define _ATHEXBINARYORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    29 class XQILLA_API ATHexBinaryOrDerived : public AnyAtomicType
    30 {
    31 public:
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* returns true if the two objects' URI are equal (string comparison)
    46  * false otherwise */
    47  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    48 
    51  virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    52 
    54 };
    55 
    56 #endif // _ATHEXBINARYORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: ATHexBinaryOrDerived.hpp:29
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp.html0000644001725400016040000001054213273140077017560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATFloatOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Numeric.hpp>
    Include dependency graph for ATFloatOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATFloatOrDerived
     
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1InputSource.html0000644001725400016040000012755313273140077021061 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::InputSource Class Referenceabstract

    A single input source for an XML entity. More...

    #include <InputSource.hpp>

    Inheritance diagram for xercesc::InputSource:

    Public Member Functions

    Destructor
    virtual ~InputSource ()
     Destructor. More...
     
    Virtual input source interface
    virtual BinInputStream * makeStream () const =0
     Makes the byte stream for this input source. More...
     
    Getter methods
    virtual const XMLCh * getEncoding () const
     An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. More...
     
    virtual const XMLCh * getPublicId () const
     Get the public identifier for this input source. More...
     
    virtual const XMLCh * getSystemId () const
     Get the system identifier for this input source. More...
     
    virtual bool getIssueFatalErrorIfNotFound () const
     Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
     
    MemoryManagergetMemoryManager () const
     
    Setter methods
    virtual void setEncoding (const XMLCh *const encodingStr)
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setPublicId (const XMLCh *const publicId)
     Set the public identifier for this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)
     Set the system identifier for this input source. More...
     
    virtual void setIssueFatalErrorIfNotFound (const bool flag)
     Indicates if the parser should issue fatal error if this input source is not found. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Protected Member Functions

    Constructors and Destructor
     InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Default constructor. More...
     
     InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system identifier as XMLCh type. More...
     
     InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system and public identifiers. More...
     
     InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system identifier as string. More...
     
     InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system and public identifiers. More...
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    A single input source for an XML entity.

    This class encapsulates information about an input source in a single object, which may include a public identifier or a system identifier

    There are two places that the application will deliver this input source to the parser: as the argument to the Parser::parse method, or as the return value of the EntityResolver::resolveEntity method.

    InputSource is never used directly, but is the base class for a number of derived classes for particular types of input sources. Derivatives are provided (in the framework/ directory) for URL input sources, memory buffer input sources, and so on.

    When it is time to parse the input described by an input source, it will be asked to create a binary stream for that source. That stream will be used to input the data of the source. The derived class provides the implementation of the makeStream() method, and provides a type of stream of the correct type for the input source it represents.

    An InputSource object belongs to the application: the parser never modifies them in any way. They are always passed by const reference so the parser will make a copy of any input sources that it must keep around beyond the call.

    See Also
    Parser::parse
    EntityResolver::resolveEntity

    Constructor & Destructor Documentation

    virtual xercesc::InputSource::~InputSource ( )
    virtual

    Destructor.

    xercesc::InputSource::InputSource ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    protected

    Default constructor.

    xercesc::InputSource::InputSource ( const XMLCh *const  systemId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    protected

    Constructor with a system identifier as XMLCh type.

    Parameters
    systemIdThe system identifier (URI).
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::InputSource::InputSource ( const XMLCh *const  systemId,
    const XMLCh *const  publicId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    protected

    Constructor with a system and public identifiers.

    Parameters
    systemIdThe system identifier (URI).
    publicIdThe public identifier as in the entity definition.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::InputSource::InputSource ( const char *const  systemId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    protected

    Constructor witha system identifier as string.

    Parameters
    systemIdThe system identifier (URI).
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::InputSource::InputSource ( const char *const  systemId,
    const char *const  publicId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    protected

    Constructor witha system and public identifiers.

    Both as string

    Parameters
    systemIdThe system identifier (URI).
    publicIdThe public identifier as in the entity definition.
    managerPointer to the memory manager to be used to allocate objects.

    Member Function Documentation

    const XMLCh * xercesc::InputSource::getEncoding ( ) const
    inlinevirtual

    An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method.

    This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

    Returns
    The forced encoding, or null if none was supplied.
    See Also
    setEncoding
    bool xercesc::InputSource::getIssueFatalErrorIfNotFound ( ) const
    inlinevirtual

    Get the flag that indicates if the parser should issue fatal error if this input source is not found.

    Returns
    True if the parser should issue fatal error if this input source is not found. False if the parser issue warning message instead.
    See Also
    setIssueFatalErrorIfNotFound
    MemoryManager * xercesc::InputSource::getMemoryManager ( ) const
    inline
    const XMLCh * xercesc::InputSource::getPublicId ( ) const
    inlinevirtual

    Get the public identifier for this input source.

    Returns
    The public identifier, or null if none was supplied.
    See Also
    setPublicId
    const XMLCh * xercesc::InputSource::getSystemId ( ) const
    inlinevirtual

    Get the system identifier for this input source.

    If the system ID is a URL, it will be fully resolved.

    Returns
    The system identifier.
    See Also
    setSystemId
    virtual BinInputStream* xercesc::InputSource::makeStream ( ) const
    pure virtual

    Makes the byte stream for this input source.

    The derived class must create and return a binary input stream of an appropriate type for its kind of data source. The returned stream must be dynamically allocated and becomes the parser's property.

    See Also
    BinInputStream

    Implemented in xercesc::URLInputSource, xercesc::MemBufInputSource, xercesc::LocalFileInputSource, and xercesc::StdInInputSource.

    virtual void xercesc::InputSource::setEncoding ( const XMLCh *const  encodingStr)
    virtual

    Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

    This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

    Parameters
    encodingStrThe name of the encoding to force.
    void xercesc::InputSource::setIssueFatalErrorIfNotFound ( const bool  flag)
    inlinevirtual

    Indicates if the parser should issue fatal error if this input source is not found.

    If set to false, the parser issue warning message instead.

    Parameters
    flagTrue if the parser should issue fatal error if this input source is not found. If set to false, the parser issue warning message instead. (Default: true)
    See Also
    getIssueFatalErrorIfNotFound
    virtual void xercesc::InputSource::setPublicId ( const XMLCh *const  publicId)
    virtual

    Set the public identifier for this input source.

    The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.

    Parameters
    publicIdThe public identifier as a string.
    See Also
    Locator::getPublicId
    SAXParseException::getPublicId
    getPublicId
    virtual void xercesc::InputSource::setSystemId ( const XMLCh *const  systemId)
    virtual

    Set the system identifier for this input source.

    Set the system identifier for this input source.

    The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

    If the system ID is a URL, it must be fully resolved.

    Parameters
    systemIdThe system identifier as a string.
    See Also
    getSystemId
    Locator::getSystemId
    SAXParseException::getSystemId

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__dep__incl.md50000644001725400016040000000004013273140074022304 000000000000002a524893f6d9d2ec5a2b62b73f950b8dXQilla-2.3.4/docs/simple-api/dir_000004_000018.html0000644001725400016040000000375513273140074015721 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    events → runtime Relation

    File in include/xqilla/eventsIncludes file in include/xqilla/runtime
    EventGenerator.hppResultImpl.hpp
    XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp__dep__incl.md50000644001725400016040000000004013273140074021130 0000000000000046e486680f17cd2f1d000bfbc78d9227XQilla-2.3.4/docs/simple-api/classScope-members.html0000644001725400016040000001720013273140074017245 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Scope< TYPE > Member List

    This is the complete list of members for Scope< TYPE >, including all inherited members.

    clear()Scope< TYPE >
    get(unsigned int nsID, const XMLCh *name)Scope< TYPE >
    getNext()Scope< TYPE >
    getType() const Scope< TYPE >
    getVars() const Scope< TYPE >
    GLOBAL_SCOPE enum valueScope< TYPE >
    LOCAL_SCOPE enum valueScope< TYPE >
    LOGICAL_BLOCK_SCOPE enum valueScope< TYPE >
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    put(unsigned int nsID, const XMLCh *name, VarHashEntry< TYPE > *value)Scope< TYPE >
    remove(unsigned int nsID, const XMLCh *name)Scope< TYPE >
    Scope(XPath2MemoryManager *memMgr, Type type)Scope< TYPE >
    setNext(Scope *next)Scope< TYPE >
    Type enum nameScope< TYPE >
    VarHash typedefScope< TYPE >
    XMemory()xercesc::XMemoryinlineprotected
    ~Scope()Scope< TYPE >
    XQilla-2.3.4/docs/simple-api/classStaticAnalysis.html0000644001725400016040000013505513273140074017510 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Records access to various parts of the context during static resolution. More...

    #include <StaticAnalysis.hpp>

    Classes

    class  VarEntry
     

    Public Types

    enum  Properties {
      DOCORDER = 0x001, PEER = 0x002, SUBTREE = 0x004, GROUPED = 0x008,
      SAMEDOC = 0x010, ONENODE = 0x020, SELF = 0x040, UNDEFINEDVAR = 0x080
    }
     Properties that allow optimisation regarding sorting or not. More...
     

    Public Member Functions

     StaticAnalysis (XPath2MemoryManager *memMgr)
     
     StaticAnalysis (const StaticAnalysis &o, XPath2MemoryManager *memMgr)
     
    void copy (const StaticAnalysis &o)
     
    void release ()
     
    void clear ()
     Clears all the information in this StaticAnalysis. More...
     
    void clearExceptType ()
     
    void forceNoFolding (bool value)
     Overrides all the other flags, and never allows this sub-expression to be constant folded. More...
     
    bool isNoFoldingForced () const
     
    void contextItemUsed (bool value)
     
    void contextPositionUsed (bool value)
     
    void contextSizeUsed (bool value)
     
    bool isContextItemUsed () const
     
    bool isContextPositionUsed () const
     
    bool isContextSizeUsed () const
     
    bool areContextFlagsUsed () const
     Returns true if any of the context item flags have been used. More...
     
    void currentTimeUsed (bool value)
     
    void implicitTimezoneUsed (bool value)
     
    void availableDocumentsUsed (bool value)
     
    void availableCollectionsUsed (bool value)
     
    bool areDocsOrCollectionsUsed () const
     
    void variableUsed (const XMLCh *namespaceURI, const XMLCh *name)
     
    bool removeVariable (const XMLCh *namespaceURI, const XMLCh *name)
     
    bool isVariableUsed (const XMLCh *namespaceURI, const XMLCh *name) const
     
    bool isVariableUsed () const
     
    VarEntry ** variablesUsed () const
     
    void add (const StaticAnalysis &o)
     Sets the members of this StaticAnalysis from the given StaticAnalysis. More...
     
    void addExceptContextFlags (const StaticAnalysis &o)
     
    void addExceptVariable (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)
     
    bool isUsed () const
     Returns true if flags are set, or variables have been used. More...
     
    bool isUsedExceptContextFlags () const
     
    void creative (bool value)
     
    bool isCreative () const
     
    void updating (bool value)
     
    bool isUpdating () const
     
    void possiblyUpdating (bool value)
     
    bool isPossiblyUpdating () const
     
    unsigned int getProperties () const
     
    void setProperties (unsigned int props)
     
    const StaticTypegetStaticType () const
     
    StaticTypegetStaticType ()
     
    std::string toString () const
     

    Static Public Attributes

    static const int HASH_SIZE = 13
     

    Detailed Description

    Records access to various parts of the context during static resolution.

    Member Enumeration Documentation

    Properties that allow optimisation regarding sorting or not.

    The values are OR'd as flags, so they must be distinct bits

    Enumerator
    DOCORDER 

    Results are returned in document order.

    PEER 

    Results do not appear in the descendants of other results.

    SUBTREE 

    Results are members of the set of descendants of the context node.

    GROUPED 

    Results are grouped by the document they come from.

    SAMEDOC 

    Results are from the same document as the context node.

    ONENODE 

    Only ever returns one node.

    SELF 

    Only ever returns the context node.

    UNDEFINEDVAR 

    This is a variable that has been undefined.

    Constructor & Destructor Documentation

    StaticAnalysis::StaticAnalysis ( XPath2MemoryManager memMgr)
    StaticAnalysis::StaticAnalysis ( const StaticAnalysis o,
    XPath2MemoryManager memMgr 
    )

    Member Function Documentation

    void StaticAnalysis::add ( const StaticAnalysis o)

    Sets the members of this StaticAnalysis from the given StaticAnalysis.

    void StaticAnalysis::addExceptContextFlags ( const StaticAnalysis o)
    void StaticAnalysis::addExceptVariable ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    const StaticAnalysis o 
    )
    bool StaticAnalysis::areContextFlagsUsed ( ) const

    Returns true if any of the context item flags have been used.

    bool StaticAnalysis::areDocsOrCollectionsUsed ( ) const
    void StaticAnalysis::availableCollectionsUsed ( bool  value)
    void StaticAnalysis::availableDocumentsUsed ( bool  value)
    void StaticAnalysis::clear ( )

    Clears all the information in this StaticAnalysis.

    void StaticAnalysis::clearExceptType ( )
    void StaticAnalysis::contextItemUsed ( bool  value)
    void StaticAnalysis::contextPositionUsed ( bool  value)
    void StaticAnalysis::contextSizeUsed ( bool  value)
    void StaticAnalysis::copy ( const StaticAnalysis o)
    void StaticAnalysis::creative ( bool  value)
    void StaticAnalysis::currentTimeUsed ( bool  value)
    void StaticAnalysis::forceNoFolding ( bool  value)

    Overrides all the other flags, and never allows this sub-expression to be constant folded.

    unsigned int StaticAnalysis::getProperties ( ) const
    const StaticType& StaticAnalysis::getStaticType ( ) const
    StaticType& StaticAnalysis::getStaticType ( )
    void StaticAnalysis::implicitTimezoneUsed ( bool  value)
    bool StaticAnalysis::isContextItemUsed ( ) const
    bool StaticAnalysis::isContextPositionUsed ( ) const
    bool StaticAnalysis::isContextSizeUsed ( ) const
    bool StaticAnalysis::isCreative ( ) const
    bool StaticAnalysis::isNoFoldingForced ( ) const
    bool StaticAnalysis::isPossiblyUpdating ( ) const
    bool StaticAnalysis::isUpdating ( ) const
    bool StaticAnalysis::isUsed ( ) const

    Returns true if flags are set, or variables have been used.

    bool StaticAnalysis::isUsedExceptContextFlags ( ) const
    bool StaticAnalysis::isVariableUsed ( const XMLCh *  namespaceURI,
    const XMLCh *  name 
    ) const
    bool StaticAnalysis::isVariableUsed ( ) const
    void StaticAnalysis::possiblyUpdating ( bool  value)
    void StaticAnalysis::release ( )
    bool StaticAnalysis::removeVariable ( const XMLCh *  namespaceURI,
    const XMLCh *  name 
    )
    void StaticAnalysis::setProperties ( unsigned int  props)
    std::string StaticAnalysis::toString ( ) const
    void StaticAnalysis::updating ( bool  value)
    VarEntry** StaticAnalysis::variablesUsed ( ) const
    void StaticAnalysis::variableUsed ( const XMLCh *  namespaceURI,
    const XMLCh *  name 
    )

    Member Data Documentation

    const int StaticAnalysis::HASH_SIZE = 13
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classAutoMessageListenerReset-members.html0000644001725400016040000000637613273140074023136 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoMessageListenerReset Member List

    This is the complete list of members for AutoMessageListenerReset, including all inherited members.

    AutoMessageListenerReset(StaticContext *context, MessageListener *listener=0)AutoMessageListenerResetinline
    context_AutoMessageListenerResetprotected
    listener_AutoMessageListenerResetprotected
    ~AutoMessageListenerReset()AutoMessageListenerResetinline
    XQilla-2.3.4/docs/simple-api/classAutoRegexGroupStoreReset-members.html0000644001725400016040000000710013273140074023132 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoRegexGroupStoreReset Member List

    This is the complete list of members for AutoRegexGroupStoreReset, including all inherited members.

    _oldRegexStoreAutoRegexGroupStoreResetprotected
    AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store=0)AutoRegexGroupStoreResetinline
    context_AutoRegexGroupStoreResetprotected
    reset()AutoRegexGroupStoreResetinline
    ~AutoRegexGroupStoreReset()AutoRegexGroupStoreResetinline
    XQilla-2.3.4/docs/simple-api/classExternalFunctionResolver-members.html0000644001725400016040000000533013273140074023207 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunctionResolver Member List

    This is the complete list of members for ExternalFunctionResolver, including all inherited members.

    resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext *context)=0ExternalFunctionResolverpure virtual
    ~ExternalFunctionResolver()ExternalFunctionResolverinlinevirtual
    XQilla-2.3.4/docs/simple-api/XQException_8hpp.html0000644001725400016040000002347613273140077016703 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQException.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/utils/XStr.hpp>
    Include dependency graph for XQException.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQException
     

    Macros

    #define XQThrow(type, function, reason)   throw type(function, reason, this, __FILE__, __LINE__)
     
    #define XQThrow2(type, function, reason)   throw type(function, reason, 0, __FILE__, __LINE__)
     
    #define XQThrow3(type, function, reason, location)   throw type(function, reason, location, __FILE__, __LINE__)
     
    #define XQSimpleThrow(reason, xqfile, xqline, xqcolumn)   throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)
     

    Macro Definition Documentation

    #define XQSimpleThrow (   reason,
      xqfile,
      xqline,
      xqcolumn 
    )    throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)
    #define XQThrow (   type,
      function,
      reason 
    )    throw type(function, reason, this, __FILE__, __LINE__)
    #define XQThrow2 (   type,
      function,
      reason 
    )    throw type(function, reason, 0, __FILE__, __LINE__)
    #define XQThrow3 (   type,
      function,
      reason,
      location 
    )    throw type(function, reason, location, __FILE__, __LINE__)
    XQilla-2.3.4/docs/simple-api/classATNotationOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023304 000000000000006ba28af7da2683d217775b6985167b40XQilla-2.3.4/docs/simple-api/EventHandler_8hpp__dep__incl.map0000644001725400016040000000170113273140075021000 00000000000000 XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__incl.md50000644001725400016040000000004013273140074021315 00000000000000245b1599b4bd7f4e596a6a04f92260baXQilla-2.3.4/docs/simple-api/inherit_graph_6.md50000644001725400016040000000004013273140074016301 00000000000000667b09aea94835aea0171e9bb7ca13dfXQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021711 00000000000000d49a7ef67516c7d450153339b1baec30XQilla-2.3.4/docs/simple-api/dir_000003_000007.html0000644001725400016040000001241513273140074015707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/dir_e4f670f0fab752107ff8f745d16ebbbc_dep.png0000644001725400016040000001137413273140076021637 00000000000000PNG  IHDRώbKGDIDATxyXwrMDPT ^zr[RpUP#qA=Re>"V(ZjYTB},A 0^N$1$3!_a2o|33 wDCw@@h6  4`l BAh6  4`c]@_? 须aXt¼ܹs'55uO.q.]Zh]\dJw i6  4F*SFCCի讂q 4ʘظq U06ڵ3gڿ|!G.$IbqU l BAh6  4`l BAh6  4`lM+Bs{1/^4#23Ϻض!bqd$oҤQ摑|Z_BT_^t|͛ף#'&MJ֭ 2~p_wNK{X6| PAEGfڴwSRs`̘QQ7I@EE?><qw-Ed[[WW7 g;B[Bcdd?ݿshQhfmE[?ml&T*@[Bs~ɿ}qӦm, bX<^dNNvIխvrf#ll(>QZ⟪hV|C  uGp8\G\nrr:W6C|O#&Mpyk׮=|eeԪΝ; ԿzCC]vժ6C`dduV >|*@ErhͅB!]XXX_TdȆZWWr|>ePkȞ>YOn'''gg甔ˠݩU{dff]D";w " Ӹ ‚ !f͚roܸAw!;A]~B~C]rElfff)i0ڞ$I++,ky… kjj޽VPB0===55577PiDJJwEw!}Ɩ9sFEEE#GTsUo]:;;Ǐb Qlƍx  =MBBB]]]dd$݅(m۶ge8SK#F]2aaa&&&MMM =EGGqF Q&,,j tO>߿?݅/>>^OOF)Mh@W_Y[[9d666OAhԧb9sw˗/9G15HIIѹ{.݅ނ ={VRRϏ{ejj*7P"XXX\xZ͡ŗ!^*?'CIH$</11ު}B &&mƌsU8'C#H]\\bbb BNNNt5 SHfQ\\pf #G^2l0$鮫=͓'OD"qww/Ƞ0\׮][t)B[:Q$Z׀hXheH$$IVUU̚5dnnn+lYY] 慆;"I۷oQ[n!/=r}̤a)++(plmmO>-;q„ gWjj_.$ bql6{ʔ)o߶*,eݥTƓ7`hhا~`vKѱxb_]Z4)4w.YlX,7ݽj*3LM:<x'NӜ]]]XP4"##ggg$jllLU,+::zM<}t0-x"//OGGsPE^ddd竻stt3gA޹Cϑ9s U仨3fs@CQ{3ny'EtNBAh6  4`l BAh6  4` 4|>0JjkS4` Bcll:v(-̌rAAhbbbXr$Dw9MvvO:^ݵqرɓ'92&&ԩSo͛{ʚ4i~)۸X,xF277xm_xY__R Ԭ={!daa!Cw2RQLrKoooooo%c:tѣl6Uv)В%KBarr2BG(>|!(ݽ`„ QQQ޽{O<)--6mڦMd. \n@@ӧODۦr_z SQ _#j /4577$'4%%%J霥ҙ&L ]퐯^:uTٵwvvHgH=TFnƍVVV7oޔ`!+{M8QήυB?^V]]"˭7oO8165AJ;y 5'H˗/BG}̬R悂$D>>><$))imj4%rx!=33S(vuuq8}}}U/R)//yMgggWWD[lAۦ&jmm>P! QCX9D"IKKrvvvYYYWwcƍ333 D B#FZgjj:vؤ%K& ނbٳ vN(z. *d o `Skh W^6rj C&PO`l BAh6  4`l BAh6 ޅ%??GDmϝ;Gw*NJ[(T =(P(Ԭ H^4`l #MWIENDB`XQilla-2.3.4/docs/simple-api/dir_79cff32a5bbdcaef902b8e39ed326038_dep.md50000644001725400016040000000004013273140074021524 0000000000000031989ce353fdf9f197b759b83cfe2730XQilla-2.3.4/docs/simple-api/inherit_graph_29.png0000644001725400016040000000442313273140077016501 00000000000000PNG  IHDR3bKGDIDATxYL]O, (A@MPH ĈD\…zcYH .TIH0cLjP" " )l H i绘otto~WgΜYf lhAŏP#7 RٹQj(w]Cmmm4N>OVݒ:RGn*~-//޽-))=Xwwo߾^wbbBӅ@ \F` bNrybb.//rŋ#ϗJ}}}̙3JNNNz{{hRT*|-`KE_&={uZ hD"rjj H$‹תkZA9?.[UU帺x>ߟʿ{.,,ão5|0Co@4e-,,fff<==5|ݻ'OP(LHH(//G=zÇ^^^* Br5  rL&JLLd2:^TT455r&οLL~Tni+A(U~< JEvZ A >q?p|ooo}񋌌Jhqqq]P!T~~~===cǎq8䔚W+++cccD"1~?~2~?TN2h as$0  Hb?v&*YYY>JD0- t:}||… شɤ=S>DyZ^"b߼y;m2fd2t'V D󝜜Dvv/Z[[SRRvaXB)))nhhWl]wLNѡXįׯ_]]];wS*ϟg0Od:JVVֵk$P(xV聶U:P(l6@.1jTQ0a7! W^ٲeKhhheeejjjnn.֭[ #44իWXk2ٳ^^^/^\^^&e2߿d2}}}U*UJJ.0a.ReG2E+++E˳=V8N/:fT*?~l-='롡ĢB26,!55u~~~Ufc_Cb8;;lRivk7X?1._,HƮ\2??___?994;;k|~HH)%޵u|۷ zF377gŎ|||N޵u٘Sʹuֆl<(H!Gjf...⻃X8ӈFx(OO{iumes/Ŧ&bk7oNOOh> N󨶶6::Z($''X,F\.n:ujaa 077GtT {^6ņ_Zqppx4"""_|AhRׯ_. U@LluwHNN~P(@Gjeddٳɓ'hD" GQQQ'N)--Ν;F-[d fgg-xtAFFFKvtGbM ۷oc;::Zz{{Ma/4Gi sss߼y399Y,),QAAAeeKSkDDDyyyqq16933O iK5fVoܸ\VVP( !GJb3̅ Ů]l64iNMl qA󴶶5*++b1;Z[[z'vy\؉E?3ϋ䆊Gnϟ}Ǐ@|wttD_)/iRC䆊GnUSIENDB`XQilla-2.3.4/docs/simple-api/classATGYearOrDerived__inherit__graph.png0000644001725400016040000001730513273140076022635 00000000000000PNG  IHDRP߻`bKGDzIDATx{TWoHA0EK*XmmVPTR +V+ lP) Dh< y4 pscfrߙd2ɗa@@$ 20@ )..uCA(zH"'*0ZZZJKK\c*233U#&Lv9 20@  6mڲe˪0l۶m&&&u/CBBMLL|||rrr F]]Dҭ#r\6c#W555:w7vi4ZfffYYٖ-[۱`ee5vF7#d֬Y666'NX[[wuutE"INbbʕ+/^wtt|o[dcpd^Wy<:44Og͚?44dii TPPPx}xnnn3g<~8ab8!!*44kj0ŽmnnƗ|;,--+WUv$ɉ'\]]MLLxtG^MtVUUֶgϞ0Ǐ߸qglŋ"ɏ?W aJa wϿr劼իW L>%ݻOԩSu)풦ܥ'O:u*Q OmukkbbeeeZ___KK @$lԩSc~00ݻiӦUUU TT*U{#lggԄ/WUU}Z]ԩS.i45Lnhh֦دR3ŒR}T_t477iӦ&?CND///p-[zgg֭[Y,֑#Gxᑐt/~z0”:~-.7w\G^q1 J3fhllWAXX̙3---#""|P@333 V0iӦMvvv;w=xPKKK[[X|z ;v{ժU-:~a>>sU##1y@  $ 20@  $ 20@  $ 20@  $ 20@  $ 20@  $ 20@  $ 20@  $ 2F ?Mrlٓ0 ZlllGXxRDרP(xn0)Q"dff e0@0@  $ 2EѣGI$RRRQD"iz5##IaXFFSff~{^tsshzuݺu\.喔Kzf\ֳX,xnjQJ<~LXG#/bŊիW)W_-\ĉ]v B#-(EٹsC||./|JH$NNNfھ}{OO=R'۷,X@cbbldnFL&3g1 ?X}ӦM|>?55]TTdii)1 KOOhjD֭l6ȑ#x/ŋ͛7 ^x!oɓl6+RGj˼[O>---uqq8~ƍ={f/^|AGl#LJKK)ʋ/0 {!ȫb Y%ͽ{0 {w7xdǏU ]‚  ^F$Lmx6P] ȐH$PRN&7l`0 q0l#8ϟ?JW]\\`dyћ]]] .\PNi o @Sv}sT*LNN}E\\>(_vf]PPPNN_|r4cmmM&z{{jggԄ/WUU}˫Ɖ3ӧOq> d[***y =ySD"֗/_CBB8GBB^.11ˋp8e˖+Ujx+W֖lڴbFGGk?w6m@ X|r|; DZzQ600ogggff{T{Y'^ŋg϶AXX̙3---#""U_tfRzfQ100ޞv 1,*NC_{>74`â63fDFFN|0a+VƚrP'NOII`+AHd aAIYdztL&GЁG#aFarKϟ?c<ݾ]I)28B rD*H32hªgZ !0ԥ -+!0 5uD"ʪg'VRR-T KK x@(a99ʩ)g< 0X[Y"ݾ]54 @aLO牏g l̊7X"QsA(Hq_#VY<8D58(lxdJɰv\i%D)=bdDz33p? aAHd aAHd aAHd aAHd aAHd aAHd aAHd aA|3..N5"LaKN6FDst$W'!---|Y{0>VjIt $ 20@ C;;;o߾K?׷o߾E|g)͛7I^5 U"嶶2u988(%)TR{mŊyyyOեQqq5^wa2BIMU5ٽԶs{PS" lpp~ R67/j.xM}. VonnnccSUUzjŒUUUK,Fd#OF?raعs?D"͛WYYyYߺu'|"}}}Ǐ_f xȨ<ǽ~uuuutt_1..088844dll,xg6l8tPss3^f͙3g wޭK @'|>+//㏷m6fG&q֭ϟ?laax`:^S.xPw^OOOqر~LåsdZ8&8 xAT&C{twLhɐ0@  $ 2(--˧3Wߦ).͋F2tA("ʼd2|k !0J%Sd8M$7%Kbin.k`@OORL&Z$z=Q$3?6C4a FgdfEB ((?X F_%,/hV*}-P]zS 3NGXwVhG&JJjz !;w')75ьU6LeeO|<AXL0 X! tۛK/O`x)S^lha"#Οa@AHd aAHd aAHd aAHd aAHd aAHd aAHd aAHd aA?hooop􃱱`^\H wwwƇP&++Kёܠb4sd aA:εk._oa2GU-zj*g5]\\|Swqb``ʕ+\.˖-YqV\)_^hQTTHhkk۶m[aaAւ.0 c2t:P.lٲe./f̘- 99pݘgΞ={׮]EEE7n _p=00PpfΜiggxҥSN)(Od---iii&&&bbbs:˔ٳ)pSLC-^AP?Ź~ϟ?TWWǒ<ڵkɯJJJGGG^^jasss +++ooGfee33]1E-Yɉd[rƍ6oތ/Z3%%ð3glذaΜ9K$%%eׯOIIH$Yfƍ+WVVV'??튃iԩ[lW*'DZv<j޽Ϩ?b_2,###44wߍ']~{bq{{3*D"1@"bccO>ٹsNyݛ7orϟ:u QQQ===x᯿<E) gϞ)V]Sj7#˧L㣶zvvvfffDDCCCu7ja?sggg@@ QKy<}]eBBB FTTFo裏tܹs###ʌ/]ciiI}}}xለoooyGJH$j/wx @{֬Y_ݨVsݻ---}}}uQG}d2Ru[ 哘*ƭ$>"{{{׮]XlW^]jƎ7WONPZ[[?sH4D&&&uuuK,Q|n%*>eʔe˖9;;j.Hܹs5 d{y-/_.,, t@"/^+ߨ:Օ133/B!yI%0 s玟5U 2|y/ @SS03)f?O^zֺ:-׿~wϟohhzjnnjj-X,H(~RWc>WVVz(+++YANOO{:|0˕_ )NPxy^ڵkϝ;W\\҆=n1ŋ+tuu+,,T{Ǚ7oޗ_~r+++/2::zvup9eʔcǎM6-$$$00pOVE.\p唔v[[ *څ< :uԧ/IPVXq޽+Vh Jsuwwϛ7{ (yXbb"xe_Rt%BHd aAHd(swwo"&555K ̚5VBd9  $ 20̨XIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_50.md50000644001725400016040000000004013273140074016360 0000000000000045bd184df8c183adf35883a872526059XQilla-2.3.4/docs/simple-api/inherit_graph_46.md50000644001725400016040000000004013273140074016365 000000000000009feaa93cf0505cdf09f85e5fa5d755edXQilla-2.3.4/docs/simple-api/dir_a55428efc10bf6e491de7f7537e23d85_dep.png0000644001725400016040000002305013273140076021425 00000000000000PNG  IHDR)|1bKGD IDATxi\Wϐ(a" j)(TK k*jŭ ֪\@PA7@A [0y?Ӽ1@dar=\ΜL會8@ɨ:WTTTTTTTTTTTTT@Wu,"":ELLY|||``WNQUUy~.)sz_Wu ݌߿B ****Ϻ(66莀g]>} .Wu <~}P1!|vX&@pa//>uvk'O5xvLxF)1z۶55l۶.&&VKK+>޽?.YzժŒp8O׮݋Ū&fƟ||FO5+dP'бckn26!}S++&Q2%%ek.knn ҲqM 0޸quKK/_0j033-;;ӟQLnvo8ͷoX4#V&33-=nd-["._pf-QXwD#Gׅ䴴T!./qZYY~i軍 +޺5z˖:I=x<@4jhhΜ9 Gbe.]8!bZݙ3#jkD[mll?mÆϜ9)Z?knoР6mA, %D]]#+{LLL!:I='%ee}0e @F>aʝ;7oݺKd'?%-Z4Fr߯Z+ Hby3O˽{w}}}ȑV$22̜9i0?L7ؔ)~h&ޞt:cyTޞma˗ڒO% g|vѢ9&M;pGO*Ƹq>bm~pe)- .wsriTҫJHH>]5No;zg\.7%%m*11ԩSSL5k6mdllsN.+B? egg޽;>^DEE}_I{zz}v bbb3333ww:BÇ9ӧO+ ۷7o#@ X|9F;r$#x+WdNFyZZZ~hmm7o-}v%S 4 /%o x8rM}ek},K))3-ZdhhXUU]ፍǏӻu͕$|O]=cX&&&"$srrRd=qDW{V]]=d++"k %{r3gΜiiiР^~=zh%-1cƘ(5C ihhؼyl&֣GLMM]]]lr#|xll,NS^zgeeeփ z=z9R0څ2|ȑ#]\\Z[[^w,**`2ׯ_755V^^_|1`>}H ʨ''`„ MMMM g˖-366UR^q uqㆮ[[$xr;ehhذBzg3225j𙙙:::'Or˭]cǎUƩn%%% Ynn㝝SSSutt3qĄ)+o$~ψ ߔ)SH.\9s̖& b%}pϟGeee).kll)ٻwOڼysb盚:::VWWS$''=.!Xn{~mݺ]~edd0ѣG+>9xb2PUSYY`0N<)gn54p;555&6CгsijjN:'ɲpBu&MOOWa>~~~rf>|ot:0vݫߪ )=4###锤$ ^x!O@ 5=:''Zg)?K|>Dxt+VPm><PΟ}g.\5F!~.\FRZJxs玪,X(O䙧' MrDž)j+KH֯_?>G*,,9B,//!^*%U<HcggRU34WϺ.%%%MZpUTYii5f.h*L {Z422ھ}jifddTSS#}=kmm۷ܹsΛ7"<<"0 ? v܉>|8B?&j^x---IIIl6!7`#V+C\---;&^ %7XɣGw'NOL?@hۀJ=:&YWWGąDEE <ÇnnnYf;C ٴi>|0Bݻwbرc/_,((prrZv-s 611!6J\v-??_XQ$7Xɠ~ !P__;h@eW\)}y=8p`BBkGфJ8B(##(*..3ήx}Ub3Ͷppp dŻgi#YJS%E_42`„ !!!җpN)//.+noooooz 'Ƹ"+51$$reee2L&BHOOo7ozy;;;- JnQtuu%E_ۀʃuSYYY:??DhRbgE/qgٷoFUTTݻwܸqV9O"Bkk+BRfv AΙ3gK,!~g0˖-{Eaa f͚%!Hcc#bڴi!!!K.KKKPX:~x}}=0dd8 (KRSWWG)u冇1̠ 6MlgXs144455]r%1!|ᡣCl? 8ί:tPbsΙX,ZRm۶$&&"^f량{ݶt\}Fxtp\擃ߝY'uRggiJKK޲xɓ' 0@*@OZXX<HSRM2gFrp|R3wrjg9,,,Hrdee5l- Akkkvv6ً&R744xxx$|AV0z<bݹsW -.]RSS7n u3@ZRSS=<uϴG5~LU3.++ 9B !5iҤtU9}zg_զN:eʔ;KׄP !Dю;?y䤤$UstRUUyR:xh{hhBB!:t/A&50l޽4- رcgVuFݛ'Oy0_~hΨsa==Z8=3aw !!!Ψ[zȑyihhgzFemmo,]Tt?+++-Z$BXa|>ŊNk.l=CYNw6lPu:݆+$Z !j*mmok03fB B-hDWT_r… [|x۷+$`;(lӧNNNQ]]z5_FyFnܸAy]]]w$ >/ 8͛l6{ܸq555366)--mVYY(8k.[[[Oc]tI!$I͛7VVV%%%|+-[feeEVKK+..2ǯ111 ;S:bׯHt{nn{߶ݼyS3fl3 slMLL>|?eϞ="^\.7..N$ RRR[<1c?x@t{kk'd6@  w-Z$[أG"^|8677?hkƍp<"gpƎ/ΝR.|}}%:~la'N`0LŋgϞmjjb-f%ߦs 0B }}F:uXdРN!UWW?w\G-[q'Nd2s{tBNiGSSdt:_gΜsF 6Z[[;vH)544<((swIDAT`ya^pAC>vH~W7:-3.+Cfv/jjjQiLx˗/_Ifhh$gLb~A>$L577OOO3~凜$벇x}%%j[Z;9-oZMm~ф >!%V?xfm=tB&@112DG_M|rwCdZYHMssBeYGTs/\%>B t6CL3h2p                 IIIl6!7`jiiYzի[ZZJJJ0 KOǑ۷ܹskkkhmk!455O8!@kkkDiAd[u)NƥhsWWWرc/_,((prrZvmqq1Bڵk6mIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_11.md50000644001725400016040000000004013273140074016355 000000000000006010aca55161df71d71d4b1cd8bd6639XQilla-2.3.4/docs/simple-api/dir_000013_000016.html0000644001725400016040000000412713273140074015711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    sax → util Relation

    File in xerces-c-src/src/xercesc/saxIncludes file in xerces-c-src/src/xercesc/util
    InputSource.hppPlatformUtils.hpp
    XQilla-2.3.4/docs/simple-api/inherit_graph_23.md50000644001725400016040000000004013273140074016360 00000000000000ed8dda5e5ea8d8477a4d9996c12f5de7XQilla-2.3.4/docs/simple-api/classURIResolver__inherit__graph.md50000644001725400016040000000004013273140074021641 00000000000000f7ee4cfbf6e1c5aca6077727a1a37f71XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp__incl.png0000644001725400016040000043153313273140074021177 00000000000000PNG  IHDRZbKGD IDATxy^t]222z}~jeeenn|zʕ7o$n;$f1!bhh8R222eee8qBYYۻ<gܹsդ,߾}}۽|||?~LZ%%())^(++sQp##h* Hbb"''Nl߾^^^^r||C޽KWW .R߾6A@b@ff_ 144,((rk>>>wG>o޼ٳg;ڵkyxxLLLٰaŋijjf1 B޾}Wϝ;1++ AŋӪ~xHHٳ Id}}DAFFFUUu۶mx<`P0ߓ˗wmRPPFJJJ&N I[[[[PTTT^G^^AvjOXX8''gƌbײ^T?18SOO/::Z^^}N"w)**  FWUU 3@(JTTml#J EV~Μ9D"ׯ_U6kYccGiiiuM3kooJv}]T?1~͛7XlW'N͝E ,6` f4뗘h ^Abґ^ZZZSIPUT$$%kj33:;ml(L*Ƃ HEyicpqMnof+|"(AWLlXܜ@" ץPZ_Db%XC"ՒH5#EF) CRю0Xmm))ũ%))ŴLLDOSs$i ߿}SW2a9USb%0QZapD"y.߈QQdeETee i O:prTH${z/+[\{.#C]]KrrqZZɏ%?~ "&?ui2ӦL*#'7K@bC#iiL8%8;D 21MI**REE5љQQٕsL64TSRUŒX"(**mo@X!M|o)jdO7iijwf̐~$kjj(>E&SLИ!1III3NSS{rrQBB^BB~bb~{;SUubk,V!<<=<<眎SS={`:sHޱǏY)T_[uJ Oww^ݳ7!#7WVVj$^^ɓűX gitY 3Bn_ ~ ̙f)Θ!(`TjZZ)-KK+7OXm)h_c!vv|1c6S+m3ccc ]/~ yyUδⴴҶNvvV1Z!3m 77}@g)O,..UUu¬Y zz¼=)j||^hhʻw?%%MLML)CX:;IvvsGi[ayR![{k>DiBŏ%ll,Ԝ4")۷?%=C_ҳ.Fy8?a$fšBL !::]BB`,EP NMmɓic㝙Y蠪:glo'ZXxVW7Vҕ͜p9G*QY@ TfeURJ**!!Jb]5i/2H1d,!!/&&AXWOO6gLCޛДį_ $$LM5׮5u4=#ۭV8J˖-"8 yay8)=/46gfyWH&0XBII//>*OLy>?ؗ.Xfܹ]vۭjGv˫27[__kӈtΟMK+15tqYxWFg)-O#*32ʈDr5TT$UU'vB  1ɔҘBxxo,,55i!vl*-hSZ^wP|֯*- tb靕$$YXxكۿш4HR#"~^kY/C+"(O[BGi~MMY) tUU}FttVCC… Ν3pZE"Qt?2ED,-gYYˋ!qu:gvf>}peZ#&D Jv-yV]ba 5/0w?JYuu'/\jd:큁 w|(/S޸q`X4[Znll rd`wM>eDr@@ۛvѶmt_LE T%_յL,NJΜ)?a/ڑt qq9ޥIJ pFFtu, fekc'++2za3k=;]%(6ή|vq֬T +ѕjH͛԰/_rXYYϟbjib. =Z[;<UUմrB*oeekbcc r#ݻ[]vݺ٣w©Srr*׮uR&j\**R1 3t*+CCCCS؍LM5Ԇ<԰= ֭Ⱥe˦߿h|`“50Б?zn˗55\[|H$7$gE73[Q%NRj**X-"Hhhh K}2)..S75\` llls';u}[[@Eqq'??W@0P7]hGq99sVcGtj?~{И4( sƳg_߾‚14T1345⊿kmxv88,غՀj{5kH2HdZOf˴E^}Ծe椁ea)..Za99hŊ k)}K8~Eaa޽8L))#*hڷo-,22XIZ6c< 1MZZiPP˗Iͳf)\9LsDiɔW׷nެs|_O 7%oǼy*9#H~ӕ+o\\ZXcQEUUMKO.+&Əv$f`l|:9((Ǐi +Vh[Y`S^fgWZYكczLvvve.ߏTV6^ɓ/sL>{vՔ)Rt;ՕYYB-Ob%XI `T@bƶN۷i?xy9-na3s.j_u⿯_'`O^_p&=toSZZ:/&!!@f%&=Uag7y77Lm射 UٕO| Jlhh[`ʚ5:MdS44zx>qb6VvmǏDe3ٳGS_8W0AA Vx32z.5e ,`@bƘRxxo\ll37m;iȞJ$=s++]:wt0u45'ݿo;n*{{G9^Utlȳg_q8HI ?q#7WVV-U-˩6QEEVMdtY|Z` 饾q/^|kk#.^>o*/Mю!!G<Иv8`tRS++iJ-$f`47wܽ}N4 [ ?Mtxym5K0/v`0dN#Stc(.Y i>۷9'c hZjX$+IK` 5Hȣ \y3FH@HlmKJ >| /J7b^^ ߿y11VCCl OvQARϿ[EPz=13GDžYZnnn cۉχ|\fŋ<<ȃjff7Ν[dɴш$f`(jPPږ[ 2K[[cb7nlX\ Hܛ7?m xHK %$wX ,#䪻ʕh2M=p @LZ]]pjH$Jn<-=4P#(JJD23gj,V>30,113gB22Vq3O۬ss=zd-n0LYA& `0 ֭vv`pv!360-+ߵ7) _ PA T|ZPW2y$+1iL z> 5 B]^aStAb_c`=uj!{UW7=yb0͛!n/,,*_`m=w#AUUy''c''ccLo o`̒]K''UU5!-ͯ%'*{ 66V..Cl٢ʂ@bXn/Wװ7o~̞x 1UZZvm(0;rZw Dbw4Zj|ߵk\bcˠ$&񐓓-0.- LHK+%I‚`/Zb'fm׮?VIIa3cc5#rs]{+  2򧵵7S2޽&*h56/]hv,U[8>>63~j8-4 }XYY(ҥN-@ 1BP;H$߿ƖddYZޖT`ɒk)) S۳DKKƘ"#)+K`ɔ7¯__j˖\\hG W[}Y1Ѯ]00^Ab{ bY..5;/jʛ_{ׯ_[`L ޞDE;%##S\\o)*w}{=><>OVV-"hPG[6 bb6ܹ-P(`cc{ځ0@bS^^MOO̙S0VE+n8qeqq}~zސ;wFE$NFDAA LA;?&%U?zDVV #$!)#)-*ʅ qN`TXZZXZZc$yxDzxDN(6ƙN֥y:/>>N?fe4&M3vx5affoݭ}?۸X᝙ ~[XJ% ʊTVPVPPSTSP8#`TAbzKpqyVQpb;yhGS{;qdʳg;`^oXX0;w.ܻ^EE13l׮֖;z48%s(AƵi0P?v[kd\2I*w()ZB[NN#@h9/_˫23Yv8q)(1'HGRϿ}Çdd0[CBoݲ8dXHKK6|Ñν|ϟ?#R جdX:&IHH_di~z[zm6::ZDDH$RT___uuu BĄ@ |EIIԩS7Ycccpp0-^~iJݻɼy)JKKǖ->rrЎ ҌBXZZ~222MMM:u*΃ Ț5k꼽ͮFvG3$fLϲ .ōoxׯSP8XPP=FENFFFCCvxa_:::222drtttW^z^2eJyy95>}:JE$))Jvvvx][[VWWGPdrsQMz uJDEEivU_Sޖ^%HT*uҥ/^ڧ+%% ÇT*6qT_cYFFĉ>|L9{6d}.;nG`0~K3Jw|055uŷn0` cbb***JKKW\BLT'N뗑۷o_x1{liiicSjE9sں={$&&9rdƍ}5{݆V 6,ccu99qP7l`czzgmm a5;wn۶m޼y]]viiiǎ6vxI֎C܎v8CI3ܞ=~#`<ܼySSSJxBJJ̙3 |||sy *z5aaI&yzz_~„ K.:KמD"Q__q˖-&Lپ}{KK 3z}0yd)Szh{v4iUeeeo{*..>TjssԩSyxxϝ;Gkg\}׹s]999QQQ''۽6W3P79sDL{qAnTjmmԾ}hw?j;*1O`Ƈ*;u/ZXv8Ctvԕ+obbKKXZZ"8vrrr:zhAAkSCh?00pڵCinnk-,tXWYٰaÝɓ oǺ!`h @60oX;;[x54޼c3hoo˻wڱ 11~~~O$$_pZϟeh$f D9>t{˖i~GVe Gll, 3gܺu6 رcDﵩl0t*vFzpPS^۷y1&CǏff]ců_Mg1۶p5 Ӑ2"BR.:bc$GY` oAA8x񵆆нc=+CΝ(~~.++]`0KK$c-l^^68ȟh $fcJzݺuSyYEE툆ѣ 9ЎaÜ7oRdzxl\B~Df$fc[kkϯvw6k9h#_Pɓx],Wݰa4F$fcXEE>C;ayy9юeasvyy=ځ. sj++]; ׯ۶{fߘC@@>,v,GL ̙2SS#Gؿ}*ޜQfdtÇ1_if슏[fdAUՉhB W}}ϝv8bbљrr"X!VP;۷7owm)(;˗Nf)ٚf/wFލ[n6Jzz)񣄓MGGkb2 1K:uqPwy`<+GFbb j..Rim޼)Gu*)ܿƕJΝ{T1sc2k/ov8euu-112KJxy9 8:όp87==+ ji5صh߸i3|>[]ǧ76ѲVN}<ccF}}ʧOԍa> IoF^^Annqq \9?aSVV(nm}kkgvN*vDH$ϟ11o 0چX]h45gf݋}l?q˖NN7oF}L41}U37nn>{7..3q8%KIKO~lvÆ;$?JJh3*\y~gegW M֖uq1A_55Ӧ tWFd*,VEi M~~ޅ@}},ڱO{;q*^p7CCT_TT՝OKHgG7wFpBFFkk;f>{R yb=2AfRlhh%*L֐TU߷MN.p!lʛM=z|O+-,t,,tH$JRR3&󑇇COOS72Rr$f.6`k{_SSg ??጖:KYh2&ֶܾEf#>MJ VP%)kݸ~%S=۱|՝/ю 8^MČft@Z/Z5Q3þ̚HGBL Wb8z`(#C{쫳˵^]7o^tB;1{//MdW߽|schh˜pMee::g|}/X0X譢솬=|Ǵ14RD"yʔ#.^{yxlS(԰s^4ob{涷?~$egW pjG (Čq=zȑg 11i SCɓ˭˘y^{ ٹs!nnǏ~Jt T^Fuk֡ *Vx&2n0lMO_Nj ? 7oFky0'f<>=::D"O*CfTg )#zѣ/rv*cŻwi%K4dl  Wkjj۲ɈC55WQ^^TCb:SS͛7#/]ߝRQwo^ǎ=wu]v8``bZ},+WޔO8s9v4Znkgφ=jéA99997O  IDATik <<ˤ["y &&SG`fcƈ<=ߟ?zIJ; =ܥP(]1/*auk:p` jh߽ma- #Ȋkuum?F3҄|wt|| Ÿ8͛}88Xgsmo' +Vh'˗ tVXXǧ_R(TuuiZ7h3sV agά5xﱯ-::Katerr"t;uKKGuusWIFyyQZFIM Mal2gCŌ Ș8T*۷ݻځ}4|%f22ݭl18~ۺu]\Ly߲ȶm۶v~ǧ?֭Hs- UyHonތzuuюNYhځ0 BݭTUG׀zʧ\3E ]mqaAAWvND;&5G*/'WMMs%̚#jiɆ zlHhhl9<<8:mdVVEDDǏ.épӦ@7RǏx蓻ʕtz޽KS+ Grrx|͛}>fT`&MQAAT=j?c`D p*aa` :Rq67R߾pq\@[[cSS;aaXX,Z4ȳgCΞ]G RΝFoիSϟ2W`D@b(N~۷7j tv35G;]644E[[6(hHI H.//ZRRI`EUU޽KcČ{ [AAP@T1H%%jjNcPGGLrK>zlݺY'O\&~j #~"!!s)jZZ  FKKDsFbWTY 11NJK$LA =)(Q(ԢZ%%qTݙL}ٳ+QHH[s h30H}V8rRRBII(>kIH?\D&SS[[3! m/֭Zjɓ0?֍켸9..Oy3PZڏéϛPܣٳ,v,((+/(SF;4u޻Av65bG;$+(1CD^^!a0##5<>}>cA޽;{,!!v8cTBi f̐n.*ߒ'{wKDϣG \Xu FDڍ>s<d4i鑟 5oؿ.#'>=bbl3gʣ:Dr@@իڶl1pr2bU_dRP3abɗz`n`jz}۶ϟ0RqD|V0cehhLbggA3cc5==%Ogφ~|F=ݻѪ>|Ȍyʛ'^ɉ 1CGl,Mz..hǂϟstt(jXXkXiiڵX".θս0LEhľ|ɥHWXnnsю}||wؘ8w+H\p0{rrK'%2ں8΋.8t(Fe)// e9-,t,,tH$JRR3&󑇇COOS72RO` ۶73<{v%ڱ)66ښfΜ (35cϯW%%uD"b2..v,$f]L|O__.3i=fhk%%fDC:1$dϳg_O|ǧacc5KfwQQǏӯ b%q8u3zlVS~}=3˫*/g f.&$ȐU)*^wQAALL SΞ 庬Z5#&{9SF*ARR!;;ԩ2_[[D0`,,t͛r\N5Pʊl8g9 u+RHk``B)0T*Hssʕ7;;I!!GϞ <3?T1shnNA&ftX K.ցY}} }$iq@KK 4:;B!-̐e&%*cd{c-oǎ}LESrobo߿5bTB^^fӦI6W_=zhqRTuwA]ii%%x|mګ66z6p )k ٌ+;w#EThdqOZ855=ر'8XmB,[YYe]tTb~~%/: _HY;J\ଗ3Eߗ/y xܗ/b:pÆ80S,rK  qՍԥKoHWW wwѣ-},OX4544/\xL{׮iX"Bʄ]`2ۮ] {PWbŸ4GN/76jI$BlkcWv 2WW˗c(0mڐkOWST/ӧUcE4Z>QNFF%l8r) CVCVVZWN1>.3rÆs=WJ6M 6y - g*{4Z}{,Gh//[Foo{;;_4i[xϟ?TFc0=K}([cdfa@3;p~ZZIllP(wS:*,:r$ʕZ'NO4 56&@B!>{*#yI??j֡ __[>[w iimg*J ;?gӧĸGGFFɧ۷G?EiߐHV֧O9qq/_9BQQvH3wwq(!۷YO*+m25E OO~N"1{0))^ޓZ UPPVhU_=>.%x矏de[[Y,D۽{ہg_.YKSpdϕ?PGGq#F-[v "ҾbJZhh ˫x";׭nnn?4\9sc,xZ_|«G))m?B2deci_1&fB䧟1BddVxKˏ::b0j :u0.LE G QTTq3hkV2}U׬v24ss@"͝ݭbnHHbwSpVb!b,#yK&PMM-gϾ J9*;⒮][fTWVVhnd]) yŊq** XƖnK2(bNNCu1ZXkj* ="Q'//aÄU.ϛٜ48S⊗WhF˖Ezy\w|z'%hāWbduDNg(+0G52!GA=/ccFFYkkq,vƇ܊ .p[N<ȿҜLLE'x?:RQQ8wn3/CC߼9]i.ZhKccqqIn} `a!;emmii%%x|mګ66z6pMČWt:#,AP'|Νw8RdwLVU9laO%qqIgQՀh* b!Y[.Y_[[Yii)~5kXǷ_n::kְ-[LE[4ZAёk,9ǡC'MuDسб W]݈RtmXjn3z%  &fcVUSSKnnEnnBRSed<{^QQpA`22Juvgtz9LDDH;wԴ8#Pї/qB;ii/Ĭ뚊6]a& 1@Ϙ{;GGdڭ[+mg +W_Qjj,[ZphٲH<7h9|Č'o޽˼wo5GGSu<."ª#G\yojuℿp+gVL3RA=$//s藭,I}%%v&-&+yڷohg֬aƯZ~7<7 {55yy, ?ڑڽ{СԠ_?/K: UV6ю{ 5]\̝njRV:R`bw5{,[6>°a`?Ĥd~ ;O OO~N"1{0ήUVVjc*S.1tƌod2Y,ҿ7mnn=x06" Cpb0jo8fe`.j*jiF=7gpぺk! z|i'|iJL6HsѢs&:~UlJ0Z[+)0..)..I;8P]\=<.DPjmpHT^Vb슆F b֮-Nx{w޽VZᏝvݼa&W~sYYOddJK{5/JEΎ?)++YJJ'XHǬ %_m] d=R`BArr2vX[2u F_Z/CPbcת*Lx8.. pD (+6vmbb#sU^']]Kjii:LWGw~K %//u,n(si 5zD|\iu&%xpT&..jS;gm}m::m!t Ic0=K}([cdfaqqǎ=>{աC'fW01니 O:0l1;?ԩylի%K.p,%[Bqqȕ+45y(usx&Bd2Db~TT۷ozZm07jhSZd[[6eoHTUgv䳀QJ[+#4 `۴MM3R_8yr>,[$ǡSN\\˗gμPT9f8+2 OH555Ÿݻ؂YԄ?^ڃ%%D`O­\cӧ\,1}S~"OO>LXmmlFoa99^1XG J}}suucuucuuCUUcUՏ׍-Vj3g춑E\ΟuɓaV++2۴&~7n:hdb==u#KxGGcGGc@^^ŋ/_nusswwst AGC#Νϯ_GD a&f{="x1 #G޽WT5k/ϚulcWfƟ:&fϯlnn55TFUUEuu%:1z4aFYYNYYN_1WQrru,-uϞ}ʒ)|͛פI?_{H,CCM??'??ׯ3XO((ȺY=ݻon޸qbCCsxvXȉO'Mn ̴'Mu bf0c4/XvJKk||kkZ[:;yϷ22JutT0V̇ jj @ Rǒ( ii|JJ1_**/._ Xi9]TkoR4nK ?< ^(w/1(ȋr\]N#ԺG Ս>>ce rrJJrg9B=YַY:&22R>+AYZs@VVJ%?Cf\f͕X釪}+D:+ZׯpF&|^8t聩 v=,ÅT*)/BrIdff!EWm۶mӦMݞ;^ΝCܹs֭[ٳaիWgϞϟ?_d###0ėzAqа}fgg[ZZN:uݺuCf}z|yy=B?46WJ79Y 3ႂ44l14t*|,{} >vv|( Lz*3/ǏBEEER|byy~y2҆:++>A[[IWWLV&8; iiiY[[cwYYeӦ ÅFF|J_Wݾ}~b_X޷ } իW ]N̦LR\\ #F@_455o޼RmmmG!p?QvII[}/%e :wO9PWGTLbw"III*3Q&&$@NN$fD"q޽ÇQQQ WGkJJÇ z$ =7zѣG>|xǎ} %H?F0sssOO;wnѢE} rϟsab))he++rAAU]wTG^xsgΜ o1{3/OD"UTyANYY@WVSQQPQQ@p JČ#6EE%,\ ѡ -ط5fjjΝ;zzzUUU+W744XcǎYYY''OpLƎݻ7h EEE2NB˕>pdDL&3$$D[[[KK+$$dp8ٳgH$޽{/^HRUUUlق^u];;;yyycc/իW]]],--]ۏ/1117~xW:}wBuuD~ppVVVGϼt֭[9ǔBBB.]}w2S.ZbKKAtIK̸5<*j9wpǏ۷gӦI+W88xyَengg@De Lzҥx<@ H23>oNsrĻ0ɓ֬YSZZf͚K.)))>}zΝwNOO߲e׍M>}ܸq#ݻޜg{PRR~ya:ÇǏ?yd֭GݻwƍݣhصkWEEECCO```NN͛,X^',,… ~w믿߿C߾}۷_~}eeeuuuII}+{{Tλs㑹NV8̍%%H** 01딝?gjC01^[+2ͬYP@Kff)/R(Dq19r˖-stt=ztSN%&L߻nANN.11ѣd2PSS8Ν;v영}bc" !hBajiiaXUUU(O6mZRRҷox۷oߘ1c444LիW9blllkkz%~g@eeegwmmmwWRR10Шl!ATp8 TX+ffڷoi:Xii-@Ĭ{%T 3cڒ%K-[4lzzא!CΟ?g2]\C&q8swwqiw뻺|ǷիW[[[D"2df&&&oii窴ݬiAAZWWm|] _|A|()UBA@#fkk]Y 5od2f/.:3uڵ#("ցC^^$khYYٯ_p8\JǏG'/8ST33m۶kQϸefB!VcǎG't[ i̙!!!>}:~8z066˫ DbFF TUUŊ\pwee%ڮ]vСvk׮ }B=f|бSדNT{|}ƯN#L̺QUI̙X"$&dUF/4horj@MM˷mfkkͭzEׁXӧO7o;sLtttHHH8kll)*m*# Ǩb-X`ŊW\yݻw , .))eLsssKKlSSӶmuuuSLz>Z0mڴ7h4//np7oެmiiQTT˗/Ν̙qQRRRXXSkЊGoNQ222+W߾}ۼyܹs;g֭eeeƍ ;41khhPxIM-&6W++rmwi􄶶͛ 23f1m  L̺qGmDH>|zR}͛D"sa2n:innniwquu:۷oٳg$ѣwW[=n Y )/S1^fvq~zuuKVUUk֬133 e 쌚ZXXܹs---)ٳǍWYYNDPFE&Xk.0hРc8] .\X~ޡC]&%%yW7NK뿁t;qĈd2Y__޼y?~TUU]v >>>>>m^}Tɫ?}hH;v]wz G  QwKJjElkk?---ծSgݻ :::{Arv~%HܳgOdd$BQQQټysg-tw궩^ݗ+>éc[\{oѕ2y7}'?6%%%߿G۷oyyy4m6l@oƏɓ۷h_6,88N8Q\\|iipٳ/^D:I̺=Ⱦ k.΃Tϟ?#R]]X^^ub===999ww䴋iZ;Θ1꯿TTT_zzz #..Ԕkb6iҤڛ7o=<<߽{gjj}vlޘѣo͗x&fP  LfQ _˗G OYYngݥX"<}a`r˗&fϞ=C-6> ׮]355zcD61[xldٲH dꚚF22yubb@qP 9vc>0mllΟ?>… ]'f)))P=4.ӧO8_gddpmSM\?écA8u+11 xucmnyltnnzjԩ]ŵ6;BTgϞ=yƍ񉊊Bƍ3f񆆆W eoq.ZĵdvYYY `5צЫUct\R^IbƬ'ؿFAA@;XB 3ÙhmOjefXKEE6͛wVvbO.6Pwꢩ^ݷootĵ[01TnnEJJф |cmnylBWW7''=vZJkys-ݙv\...۶m[tiF{U\\\u3gZm<==:3ȈyJJ צ֊E/r^J2G|i?ddꪡ:Lf}}yyii=@u zu_A_XĬS}QWW>TwZtW5{޼y6mB@ήZJ(ݮ5,]n… mm+Vp/%%5}K:::r֋Cuٔ}}}cbb߼y<{nL``u>|XQQCN>]SMqUVeff&$$o~~~]/yy--lbR--c8 ߟnݼoǵ͏--ܜGPQsn23K}~B!^ lY$|80-۾S+`@: H5i}Lj ?shL&sgkkk555,YgfUx ׮]311zyKK˄ 8۵k : A&9j(eee,v?^NN.--}$>>߸qXB3@xx8zXc񻴵uvvv  eMMMEtXcHD_>|DUU+::D"q=5ӧD+?]4ט/MOoMCC3TTԓɫ_HT3y󦸸ɓ'SLgtw -ݹ.=(/Fz=? 4H\Lphp#[ͧN=W2( Dlii RNNN2:tHCCgVWWocԱ--N]4rŗ`:DylG/TW7믽{ /pi&$|w7nw{מk@fb䴫z ^)ČW9rqqٺupvyP~T!LXXlƯi\nԏ~50X{} ~0e%R5 /Fa$4ӧO޽۲eˢE c%;B<38_~Ad2!!!ZZZ!!!L&|cCCϣ駵kע477-taȑ߿ÇMMMcttʕ+g$HIIXYQJJjjk a*#T;#Ne䉧瀽{}zx[cޑ:yڠAFjjX ĺu'all`Kv{JӸG%*uCyaF033B_>|N𡺺z[nEp]pACC=m֭ pM7^\\o7 5\\,jO}]#̈VGN#wbaaa<62B\TƖVCà۷? IDATuuujA$$$ې=AII)>>AYfrܼn6Cn~XҥDvG>HΜyaepi ^8X,֊7$'b f?7G̸,+,ruKLf_ZP99,"= 5K!TUU6STT2eʍ7޽.oiin6ۗ/y3g:`$23Qn&Y@+6?YC"טq]XABZ"##ůSъŰb>O8q"e{r={7ܹ3dvr ғl$j7?ʆA 4_==5EEYX1/ddN/++=o_piH,Č!C(Á$EZZ_ZRI:5tϟO:N+yt!'m۶-X} n6[nEϔvvX2pጌt:\J*VpۏD =;:c Ojj 145UTaǢFA&͛G]vA;vYYY3fv<000$$$88444xn7;wۄ 6nA1K2ց@YRR>occGƤ3g<|XA݀k+)˫6 $HZZ#PH99c;]?%gϞ={,Z`kɓ'O<vpuff&`…hMHN\)-fPY (;RǏSv;Id}O[ܲ3ps:LڋKK]3ޛ--ƖJ~mbPp*#$hQXG:Q(B1̙tVꃀQ_صL0AKYII455mllxo*Vb!M̌Ip+~b0ꊋ:: B#Jjjj)-QM%=3RSYC cO`Y{4ZxIx!oҊd <VﯴN8ѓgk +@@ u]ϖ̀I|/CW_>}:@$a? ߾¿ǐDIK+17oE[KJ)A"(-DKKEMM@ @3YEPVmAOO="bÇIN=:&f#7 H$Jjj11p$Dh(la'f VQ7l{=tW )014Z4ZF^IM-17[|DPQ!qUƯ!q26vbflLgٲNN˖E}:01T*I^^@ HHjjKKk>b02"Zb bAl99P.GTFqǎ566\:HK+6$RRR__ߜ\Hht!=9s&Q q^EYJ|+}ɩjkabr<gdAb' |?Snnfu8LGZZԩ'5DEE^T҃lט̶o |%ܬ, j#Lׯk&4Ԛ=7VV3 VUmn 6O'dfLL`3rs+UY22lnne0jaaFA3rbo d@"&fiii˫03#fIO/D`U/-i|-UYYJr aÌ9wXg# 22JGբۓ}}#DyB,uƥKoccxzqpv6t:[Q~~4/&fi۷Y+V}*iiLU27:AcPߙ5d[.-Es0Çiǐ˹s/4{8;: A9;;;4޽xk_333|}Q^^A_={H[[UVV:/*K繻 j;@L8de1/AJK+()tr椤Khu;; ?H47߼18ثRSģ!1իKG 2.AQTuuf\ԩ=8q`@˫=ڒqBojjdP3; [K<~ԩgh01ONN&S!+ZZMMixas*+R1^zZ|Ȝ^]lcGtKKX06&mn>bʔZ#g$FZ[Yp*#ϯ`104x,[K  blI0UcDQĸ$\ik8:^agoggwmm{uycc˧OÇ(0/]zgÓLpKO:[EEU,A&/RFFJ[[hW3mprp,]:&&|5:z|&a&f?XHQQ|P ICXАŸ~=„zRRa[ .ҚGB hhUF?H 7ؼӧ_\hKB%=XM]DM^^f%: 4!\8G8 rܹ]mCA**[[YZZ< C$#~8%&淴M=t%" .QUU?޶׎eezpߣ–¢E. 8?~|e"d5 RQQVp{!WZVf01KKr@7~|ha&f?0u- WY_Tڦlӧ܊zRѣ-Q3&:1''EEYdž9<nnS:<ɑ#qÖ,qmWQv!NTVVϯџ{ c$L~(+3Hrp>[{XFF)e/K""$VV6qs(3&ǜnK-(֭SӉO/\x5nz&f>GU 6nv학31p01N^^@:}}|Ϸ23*Fd( .32٬#^ṪܹW}[[[B!}տ3G><…Ӧ ˫]BFW?S|A&Ucdz-[sg%@BjAHK+t#TFˏԢ$gmkggbT*1'&f\@ 䥑#L߼WH=1>>̙k^=|aEE ֡A"wfv6:uCׯ':b$Y`bQG" %YZ@[^R'::RmlPJ%=zΞ}if=bO52.8:;:䔟:WGUW7-Z䬭uhkzz'f  sڻ)SM\ aee$9Z[YYYe^^6OTlT[[}^fNN9 pB6ݾi&o?a Yf p~i+Μy1sC`8LbWttTFyݼٗ˗:HU Hp.{>8ΥbP8Jjjj)+rj<1c(H23M6oޱNxzӇ\Fjuu%NLVklliTU岻$PDx&f?֎e%Υb?ll45 RR kk@DzT" ;&f Hdk.efU*(~yy#bb?j[7D !))&1PTTL,_>.2ɓ׭u, D"KŤ&&Zvv6L4HFFj;u66GKKEYY.' (ӲO5]fϯDE8oo$8puĉCBƛL"Uc[(*uITT>0 `0rXGAd;.瑎CR:IJ*BVpb;jH.kʈLfۧO9FIlƜS9ӳcG;nuH0 jccpee9y ]Ξ}u裝;b $`bLf٦3H U,11UEE‚niӤAnk9B`|A((z$ ~5H&h%61쇂=~|}/q㬃lmgVQQȑfXGd5 yy+ܶo|lN$L$w ^*Fkjedtb=_*VVV`Y[ c @@MHA1_ut377Gxyrs 3ZДԈBG\WfܹÏ{t-[&c p uuSRhwY F{XP'{XON.-1Pb>ߵ^o~Շ=Zyy}]w#/p?ҳo=?I4HSUԂy22R 8U@$8013Aa2۲ vKG8:BWIBU %-*RVV p۷?4͙3::RSSml$k Unn9B8nx[/|۷1c͜) c,JKk֛U>~: I7oވG]&0pֱ@L 4 TP@eVV̧01_M8XXUT钖岲ҽp8//[11{DE%:QG"a@s:uErr F ."OO~.LꚶlNNb>|ZKގ?e<7d%!0rMDKxyFF>r$.:ec./:)55w#UULf'-Ch_=uñ`b -ATK eecҚ]&3gdDֺ̙TA4@x Ze99nH-\2kְz42||xR0uʢ,D" RYYqWttTMw&fP_]FFJc_jT,3Tl޼vvTUU,¦.^u,P$]IACCZ[YYYe4Z~B=>ιTgU v œ& 01ѹs\]-!g_644KHIr<g`!x܌C'N;~Ih蝳g_N3R@xW^^':SI$X1_T(*N2701&fb!p*#TZZO)+YY:;>Dp6),ifIF*Z10c!ߺ?)"ܹFmm_ $d UA4VP >}=1stwٹsaOB*+D)LD}4u?%aA[ܨVQjmuԷj_+P'-Ȕ,#GZJY&9<A'O>( 3Ja**)`ٕumۛPFJJ!FstTvaFѬ R%K1\ND7..WE 28EnLee]AA%w̧ }Ex\6F;Yib!J$R#Ǝu?|w]v-?S(PUUqVh65,Y_&Mr ߱c&{@gϲ$ BH, <`8![LLt K*3II!gg\KYkauu5|*f^45xYF_߾֝7nWǝaQYYO%0UU8 &NtݳVLLjȓx]xȳg#>߈)heXbb炤6[hIt/^䛘ꩫ25]7o&3WzxXQGVVE/l600B._\]-qR9UUD,*+ML0# S{{=5 IDAT77/B*bDW6lnX"JJQQYbZZj}_|eަ3̋}.Ch4h3'NDhiMq=<%JI (Ż &bp>'r(_觯LUU D`.d;qLʕg: RTg=Ř7o@@Pzsxx\TYuuCBB^TTVbb~llNyymV)S ໸XVT0u;<G ¬{D"ɉO)wwPuܽzUgex]ٳ]AӖ-6vڵg&OiqW3%777,CKK>///kuuӧ0r҅ebbBbL2x ݻAbyBXj7WWK//^^zJ^,H18'O>nj?,>>o֬~]9+*\yZZ:S"orn/BFzWwהfNjȜ7o,:T0C}uζ|*J`ٺ[e˼{KU,11/*J,*jp`*4IIzz8jjj.(y$ɏqpwLH5df"\!h4…Sc[~7P?BzzUUPvN@T06c˖KMOՙp\`[B8(?$!&¬1!!ݭb7O0l~(ߋ}1 . 617=HT-^LB[{{{8pg?쇫*]>B@А!v{)Ռ@>T0SWg͚u3P`Gr"Hd∌|q9BE][\]-?dd|*F/^M.W_1>$PWtB"l|Y*b7NzI=?7j#PT[ۨ;ſj3`GDd@a`'"BRt„5~{X֪*C"8""ԩbHj4+ww+ݨBqzzgNY[B.:>Z(ϝc''.HJʧjatVzzZ߹a lٰmۦX ܡQ(K45pMMF)@[,ˋ5 YE@a,{6MK+И1ND"=}:o45RH$mmۮb'#]]-L} b?dx<@P;98dL/qL[[㤤SطzUqhik_}1:Zpb;E7#45ٸ&w 77SpAxP^^<h ƏW"H?W\w͘3ަPYRR|>e%))EXb\;BHRRҜ3D"\"! &)@;1, @w0{1Ţ+|Rѽ{`F v))Ee-X,Fbb}HJ*njix<#1~ gg/mmCB3U':|1kƝɉ+32Jp񯥌EEE"ܹs`TVh`0Pi~=7W*"TJX,X,iX,Q~B3/^PLIJJ! "hDD_54 yy幹99,22J/C髩16@ P|EلinT0z4z#efvp tYk66FׯY>/vx>P 1է˗P /~@|,@/2JHSSc:8_917o&,X@QbgG !vȢ~멩?4_KX73thnlRwRsr2{( w @*11Ŝ8'xИ#ǻjyR5 3o0{F䓑EF>ׂJ܉HICpA45RT6뚦& 0s]]pGSZZqTT֒%޸yvvηn(-^a&3x;i44~WI}}3eK+1qzR w@ ,233i4Zt 77wҥ]yw}Gvrٳo)[xqii_kuuunnn:::E"xFՉDBd3;M_\\,R)vS%c\˗?ߟGϟ;i7kh1 .W!TTw@ ,7mg]re-pI6cTzY++L6(""!T7gggPDDDQQQ~~~@@@uu7oٳoQjjjݻwl޼ԩScǎXV($HƊ:Aҥ%K*mn0HI)D22J44ff(>|̚5n, :& !b1BpN1X"1r>SݹsJ$rg,/^HIIsرcBZ'ɮ9rȑogߢv}FFF !0~x+Ve@F ylBu8ʨѦ\hY{{tJֈh46/.:xp!B$ vy0tHα;:fb 3f@.ڵk敕3g888I$:99 <8,,FuNƍ\.8)++hyAPH( BF;~Ѯ]N8n*{]]]mllN8f,٧gϞ1bcI.h|IHHȻrD۷[YY-^X6[Wwɓ'm&dO<)%44*<<_ ļ}-d ܀fj6RF̞OWWwv88fdN!O.|008VUCh"$Jb1fÌn\:uڵkKJJ֮]{I--cǎ}w}zz֭[/^Mjjjf͚陑o߾͛76h]~}ʔ)*.Attthhm&~޽]vm޼ƍ{ݱcGyyy]]ݜ9sVZ˖-k3lBfAaջrO/^ KOO߹swxwL͛7mn*xAAA=y%$j#BNYYm4(Hl ۫W?˫6 Z5vD,,$HK Ճ3 =?7O?0`B_~ٳgό3\ĉۭ:ZSSSKHH_\%B !2iҤpAKK˾}޽۲:::𫯾ёulnnH$K.͒+***//o֬Y3g&'''%%;ANYڷo_!Cw}:F[޽{ԨQZZxL└"Bu`Ƭ!C윜wo ljUj88޸ɤO3.D]@0cF`Z S*O}}?899O?]j=]lvzzW``bmmP(40l.+8vX@ bXm>FEFFZXX1t:XgϞDFyyy!z0iakk999?urr1cwh;B__4>>xٗrttWfzpٿT$Zd:R@VkXR3f2&&z.9f6%1fYp;x𠏏eWZΝ{a۷ovD!JRieelccI$WTT,_|ʔ)?c֭[,vT*=rH9̲e_߱=vex@u$$ikg3f zh;;qzY͘ɤjKdg|2dݻw!4 4 v}w @#H-[矟9s޽{ׯ_G-[իŷoꫯ:ISSSss3nhhؾ};BիӦMk񲦈3gn޼9'''11СChƍxbuuuss3l=Ǐ_~ ddd=FiiiqqqAAÇg̘!֭[-ڲeKRRRRRիsrr:MZ߱ضmׯnjs파˗/8ܼeV@Ν:w @D_ߴik)Hml6?o֬~7yO-vG>8z~|a?L~}'U7 ݷo޼ypg!??USwijǍ#gUvD?|ٽ]*MEr@yIIB3ft::#PRRAll֭Sq\ަ_TVkS(;Ll4Q[[mݺuuM˖ ?a)#A(<==MkkCAgccKBwot!Q2` ,%#D,RV#nLӗ,!IzJ#H /9PHafgg+11ՂF#+ -kf:aZ33ӗ5f${aZf3|u+/1-[.jh`M#a? +"׽@.7_.Vx<ŋKKn;33=ζ{>@q]]Qde٩S,}L/AFٙPGZZ1z5kn|j,)""(??? ͛7]yM⨭mJO/ll߼DzDܹ45ٸt)2KM-uڸqʕ#ݻF @T56669ή]∏ϕHVt̿?%7ɴH +[L+V*LYk4O> }* MLLBlahhU``l![΀njj200{:88 :ٳgƸs玝?^x޽{MMM^T.WTww0`xcÆ9wP8EEoH}jmmSa޽%ch4?̞<bbqB !doo+ѡ߶m<<:i/^m9~v/۷o[lٸqcnݺ|岋qoݺ2SE$66B ҲΘeg=xt7 I$Ҽ Az.5P*ŒYt?y{;|1U~ąYk۷ݻo߾-{QFiiuΔ)SˣBgΜLfO?z={f̘r'N({ۆ tttO]ܷowy. yD^(cccG=r}|=ֆ4kZZjI?zt1o`oee 9fkchjjN6… }~z\\ܻrյ fff!:_}\@ *KJ<<=c89S`( ѲCcIDKKHiiŎNꬠSx/^\A5@^${YB*9rdҤIO9NFFT*J,ϟ…k׮yyyKo?%$$<+9UvȐ}.uEa0议t%~]S_q ('kiiE{:.Kԩ*>O8LYiiiqqqAAÇg̘!Z:y̜9s999zMƍWYY}e˖\||򉿿իWo߾ݲiرcUUU\fMffϿ vpEup0R|Qee]Uu :՝'^NA珮8ǎ-}(mǎ븳02d˵XhvLLL˒;vxxx=m ͞3gNQQٳ[.UVoذo=}}Q[L8w\@CF5;d'&-YB- ɻǬw28槟Ó'G=fVsǏ\kyJBoB6lذaCǙ˗/_Mv/ wbŋs9K^,C (sw'z9 wq1'E.>(/B(X Y-9!Kg4-[.:8 `;PfJM-ovw'~naKq׆$,_>w8b$? p!uƏǁ%%,cPɓʕ+rRsp0Kll8]'O>UWgOC7BegɅgtڡCtu5>(H(<=z+P77KaTgX,9u꩟ RwUK+;/_@acjǏ/OK+曫5sY >:KI.(x7ws8c(Jzxy/FQ[۔D%xCɎ7o& DKJb ]O\\W5͑#aQ0;}:}ľ}-RR ڥҲٳ >>{>}d9Qr)c``ر]_AM"ff"w.IL̳6ʬ ׬{`hII5,@V/.܃&˗ւF͙M{Ξ}hsuuM PT*%:F>CiiϞeQ퇌B,\9@s[YQ0;y5Wsmm4ccsm&&ˏ]8f % (#-_?Θqʨ1<w01e0*`©17mx쳤Y\57 ]'e!fLfM..ٸ\m-L.d;9u c~NuV36]|0;BX GYiiMII̘)̙^~{w %*fO?n4clZ93f-u[z7njq2G$-f2ҲIjgR)=? df_TD,!!F@a 4m۶aa\D"ѣa41M<<:9)S<~ũz%9; X,eHҠ'fy΢@ff1KL̳ꥯ?d [_߾}wM"$Cʏ?>7Jyr / \qȑ$gPQQ]Fƣ[(1?<<#3D\=Rfpm29#ƍAd([9rd7>714Զ2TjƎu~`رKre=.@yzZ^|ef %.22)/ŝs}:F54_J0i@Ԥ>I36<?|w  f yOdZ%2P~7oKrgSVd P(NL#3OrAދP(>{…CX,, ׫Brmmtu5pQE_~9.66'<z @WQ0;t(|Pb%Q6]2TNpz"Qدweee`гȽڵ:?A(6BЅYllٷ_L@Q0)u_\W&a-@::{̽xqUFFȑ{N|;&*J`h-n"5Y|7f 8ԴGt0 63TYf'/^@'=#ʌYAlCC.W-'|5hކ'w䂘Uh!d҉|g㱃)e::E5ċQ 1xy_xf:DUa+=0/߅w+JO|:o@uY3fMM/ 3"XhHJJaLL @tyI'߇ 60R II)nPHMe۷4СP(3YLj&kS҅ lD1KJ <=]\OI3E >l|˗͛k׭gϭ3~%+])j 괚`ffd 6̡woSA3fqqֆ;w["A(R;hWss@ _X,ƪUcn^({PX, Sd+uuhf-]*][#Y\\Jb!ɓjj>L YBB^llΊ:')dBB֮_?~ӧw" 7Ϟec;<61q^++j(::ˋ;uHH @hT(~큋y|mVuBG;&.:%cuDFfQ,dgL76 ϞZx(Ieh% xDUIIU^^ŀe۷B1 @\1QRRe- e2$4qt^f߽{o\;x/EEors˩C甔Tc+^Bf%`0ВPLqi|V3;0 z1uRss 'ea:{`ĉv\ӧX,::UAAOLq72mm5g̢vzqV7njFx'rf͢S~P556̞x V9+ ౯/^Nzٳ,WWK 6 rF119 yCFV0(zq;IIC\]]]M… 9TmCWv鴅 n40М4Ν71DF4jBl6#KpggsU0!+jkU56 ŒpF]YYe! @P.̂Ljbkjɻ5kk?فι?N635:Ȑc~EEݍ˗'6f36c+aƌzi1( / ccs/Y,FGҕ6Bh3Ggԟa,"#_h|Nv6 2:TM5mwzM DG LL,,u%16x]DD& @P$. RD8oee 9rwd+܉@'=LWWw񌲲>c&KN|`@m.u-e8o[P!vOfRw(Y ڦ+Wb/Jє91NUUqq9TdSgo2=ƍ~XeeQMT`&s^n_ qܻ2?Ri[L[[PT*Ɇ f5t]mmv0p!Z$̞OۛxS<XX=ɑ#oH3fO&Rt&'KcOI)3ϑJ99g>j m)cf늊~xۛ63hY SNGr }qcMNNfs޸\]_/"%K56 TeRv( ǡiD!>~dvoMS]_O,&&[Cl;hF4s @D,̞?$',ZgѨQNɅUXFWǗ=8$$q̘}wU*Eb4+/Ψ6KIK]@3fOb^^ָj|Y; g&=ǧOMM*l_?"jʏ3<SRBĎϞeBۏ44ę1|n 3x ⸸y0#23poF{)?1(CB•J3o$Jsrqi+ w!Ԍ>}RR0HV=Ҳ،;bUVkhB,݃R}\GSE99CP0u'6[a uuA2վzU )8:rKp!Sa&I._7oNd&SƊwݾn֩&TCXTt_K ?NWSc55:+""SuF1u+fBlt%?N"#_;YaVX w f5aa)wLvأ{{$??ڵX,-*r30cֹO8p().:dxfaD\B(_Qeg͘;H[&%'#*DicDD_[tR̲eÈ L:BH,_TbjWR 9 c t`^nބI3@u*S]ebǹsQ"dΜ~߅Ռeeii:VWׄ; 9 +WbO &>n f@3 (!ŒىgӃ5rc2!<`0h\sJzzL­c:=.. 333e'Arss.]ڕG?X!6gΜR[h ]CکR:>%KAd !$1{8N0# VCf/$(.]8nno&&/F7mg]re-p8 HX/\ֳo,}:r!sv\`_)1po ]!%0X;H spODwJ WW?+΁-6з?hjjJII>=X*Κ5ݧ8::>{,sllT*mnnnqFFFEEڷo_eeD"ŭǒAm7@;ݨ'&&U޽/]${˗/[>nT*eo}+TlggŎ*ej3w&w= IDATXx1r]aa%I޽d.˺&,K$wmz}\~;E;>8;q_^;ha=!YTTVIIntn֬~ w$)qrr~*WNV[t___//@ZPh``\.FhcǎZbXm>FEFFZXX1t:]c^cŊwosA;馜{899͘1/ !D?H;(/2m{[1? ׷/et{KJJaj tahkkloo;H8#z+h5c^^}||֯_/bnn0w\Ç.޾}׷'r8|T*-tt,Dr˗O2]c􀀀'OﭯD"PAAAuu233Ζ}֓M!eۻ.˃jid  䂘%KGX2>~jet@[I[MfA5D"Yl~̙{]~!l2W߾}&MMMl6aWN6>9s͛srr}}}:i`6nܸ/VWW777X,MMۿS}}}ПY]]/t:\.F]hі-[V^#~رXfMffϿ vpQ.$#G\?|>';CLUvD>L6Av@v}SXf$ҴD?ES}r|o{M69rdʕ6lXzڵk={t|}}9::x3reرCGGcnnnw4zPPЦM`X-V\#رcK,t]yqƍ?ʪ[Gtgĉ7o\$%嗕Վ?dx%0+/;HO0E:Ќ; Fr?e1묜ᨡYaômT?D&AE\ illr%w@VAiNN9Gxʦ&jnG-Y2W+ C*:FC,4d}+P{ǡRut=p JR)TlFw562Xz5h뉒cA% ܌)d.2TbM76 w1~~uuݻ֯r; VSPZ35[jLx׷o>w@@͛woyf(1ڵeˆ)n oRYXX*F>ݡw!VaVRR^B^[,cRSVW7"G9q"b9.5~1j!jw3bc\__sۿ<[$ܽ` h:vt$ 﫾/̛wɉW  zjjFΘf3ǎu?߾aÄy kJuޝBfƾ컊,Q()PhӮ=۽\d,%!JNd_~v%3y%͜|9=0XMM "e50!*̒'$~~.{9&$L^zzŒ%WCC3.]}h/˰4[1رcAḺ8WKK-o]M}arg̘g,a(N&SZ͛!18+Vp`JU}P<*)siSS˗h /oˋǻndȞ1+.))xtonq$QQ9˗k2;RT`04fJ23SWRGbpV@㭌o~UQ>jOtԕؘ 3˵݋g,nu0][ga1bFGGoddvpp]ii!}4^+hj궱a*HCGEEsbbvGf==||4-rhÇbnn]]9lϞE99՟>dիK^{ĦMFHŎVƟٴ(<%>F?((u޼ }}i1 e|G ╕f^^IBi>2 H""p: @a0+:*̒QࠣEz ?ٿoϡCω<8;ƃ t7u'FDdaiy=RXYrs3IKRx)(Դ磍1f4o0)r& TKaS׌,siPPZk+?%=rҫII>>;mq4ZnH=j+uŋ/uust"Ç_{LH$27Υ8:·k@ Am2&$| ,ZL^ ==&>~!77Hv-CSS:>ޕ]ܺi6#,X ucFƹ+W wc`py~~} ~\emmY2EEq`l啤+lh6o~ !ORWˣA7yy%O+ª;wchi 7A V ವ5 ܓcǂo-,]};{BC7~ٹLS\^qr2e4VK$/K}3¬E__ ھ}AWWhg@/]z}dy APGG״ip:,쀡qL6MxɒHGeh bleKZZXY[[/m1~\ 3EaQ`a܉C!Dv-zG##QA-:;0b1J/ߺq֬3'NTξ0>^X()òbF$}}7l M]ss(-~(ND" UU z.h.+hiܽoOjj٥Kh`cp0Ma6}*UtCC>&Iζ3~BDaT2yyєбy3NIIALMeZ4PDogdT1!R utrrŕڶW[Q p3_a6DJJh>OGG11Q}owӆzQ>zc~~.t?%%֩w$irrbq xҳ75}C0#ճg+Fv^T7~@P<=Օ갦4-gAAf.̆hk˺dfsg3ѣ::gOJM-{$op6321\]:AKnm?)!xauy22 0}!ӧK?|pFֳoRRs[Q ͸]'ű#22?7 +;("BӖ󛔔'=W|X@jky!L_]FF%??Z-(PsiXXFCC *(l_ aa.tUA$ +f;v,=g7̝N;v:%&7̺BBҷn5b10cY ¬#30XYnn Kdc',啄D117_:BM/]ܹ +뜗v!!cκ%&Q(h[ /̂ӈDXY}}'Ax +&F%(Ţ٣G{z5`qcZcǖ54tpEe%mb Fz*|:;=@0#)_kjJBBlg`˗._|َ,SDz+fwm},!cǂ7oŹZ[̟7gŴC^^l[ lA.uf)(ȍup=))e+Vh#7 ӧDEllߏ銊+NI)߽q\xK5ݻ(hNW]]镙wKJ >k7⨤$^S3ɎO$(jieԴ#:Ett.][P.kq8 ulZ^ޜ1.[.:y*0~~.\1kmyܣ< Úݿsy{/\x1sV MAAH$Lc~CCGLL>VYYDx2{BM>>NDg:raVPP(́n TK>x׀o\32 dÂz 5C:wF //AAM]]mlSͻ`iy71uGAA88UU"zOwggRR1SXʅٗ/XM|8$g'Ouk!),T]w|߿4UAL~XYYѕ+񷔔о}>>bbvNowN7566AD"ip?=rX/;:( c APii/靽|9{PVD&S*޼#`#P+̨lȣG?@ڵŋd?HI յA!!]á|em22~sg3ѣ8Z6Tii!G#^aut-چ_F&dJ[[٠, ለ Ԅyj?,VT`0'e88800kH_-v/XVٿ~ڐ}g+ !uD"'a.C=wX8ץK<`d4ix IDAToroO8nx+^ MTo#^7s濅و>[xƅ kbJJjK&S.J¬ , igg{" APGG w++Θ1 t 9 NGhuuӧW.))xtYĢa[kI;w>q# sp$/ "P0ի2DP(/_hie B0t57wA !InngTUm2ݸÇ0 99>fjҐ\ 6m𘏬HKKA$xݻM"FPrML٣) Mn ww}2#+JcJ8n\\j[]ѫsaSkk ZY7AD>p7%,0pЙG7o ``MAUUߟbt?̝;岓'O v E=a0,c߾uۛXae>>O?nSXnNN Lزe;3`0SQ(uf$6((T= C$'ZEEqxdJDD`L1dzc<(ʉA/_f{{oqe./dNN6 g@I g+;fbbQ}} SNaOBg\VccWYYT1YYjQQ A" ]ﰡzzJJ Œ釟_Kl/i9ggZZ=99&+̸x 뺺-reU 98Xz,&&gǏ[_?gkjJ{zY0T1ՊYMM(800ϟ+0u^?a*VaFd,+jϞ:dofyFcc EVVΘ sAII QTUUmݺu<:\Ctww`0/^ʘ 2_H`̀`JJJ`p+tuq88 M75Up`Yf-̪Z6o~8mm }|>  ErrbMMLR| ,$$:gY[[=LL rԹS(99I8 S %>~AP̘1c*ҹϟ+ҝu͚q/VaFd3f[>{w ۸lFO|pokF,APYYAߏ_o11I,yfɒ%C%--H-`R~[PPѣ 8 S %%%%%%%!vvSYLvvܒ%\V32oOKK?q6ӑˆ.<^q2#""MAZOOLu떦&??Q\\u(^x#%%5Tu477rss=wܹIJJR@ ?%$$?N  `0?x񢏏Y\\\JJJ>>>2 t߯wa0???MMM˗/C}vvwwdff2Ȱ$&&&##sر1_WH$={VNNN\\|˖-I:TxxϾüyFEEEXX?J5lϟ!Ӄ˵ H;΅ѣBzպ$P( (*3͊!Zzŋ>pa___^^^OOOww?m˖-յvZ==WAT__O_U^^wޝ9soߦ^xɓ/^ɹrckko߾_u۶m===nAܰaAk׮1,,,99ˮ֭ ^3 ^kjjRSS^~}ҥ1_P;$$˗qqqEEE.\ݹsŋQQQԪg_EEEeff>zԩSC~gч%R

    B]uħPihhQ?ѡP(eddP(a_zL&wuuHP(>}bccknnP(R $ e/^}_ ˣ244TEEe̗04zhh(_|jjĜPH 0{S(}aClA8Æ,Zt^@ 8&@3bO8:v `dt`8謘Q(B+O=tJwr#hjJ)3e**eeLQX1CLYYj AڣQTTdii' (Ov(//~ ꩪ? HXX8..ӧO222X,v\D"QLL Cp5kք677}a`X)Aσedd3peee_N6m̗0DZZqVV[GIE]ׂ Zn ;'C13G 33JK>F(̐E$wfc޹yXX̐}8ltEII@ 05""}0d2y۶mmdd$A۶m;~xxxx}}}tt/2 }}}gϞ +<zyjQ ]vACCCAAaÆ 歭?(((KIIQ.Zh֬YC3F:mڴׯp 077z(Qw vvv]vA[nIKK,Ydɒ%'O% 9y%K.]jll,''7ǜT/^|%5_؝;wRǡ~I|Plb h)<vvA@*'p-""25`WWɛ75 ]9{^)`7(#s]SSRJJ>F_aهv(*j`gɉd8jJvv09PgX,?֎)ع4::YhCVVf8ϥ'Wv/K̄k3͘1 fύb0̬А䤻@+f@a/^d_^PщV%))lMkhH1NJAffqqL| `zuUU-p|2\_Pa11NGvv)F`L fihps{usan5~5Ԕf. j46v֣&)&&_Lo,YXF Z[3["`ҤN/W-vP|R@a rhɓ+h3MF DHА*/o'3gʈǏc`cǣpXh`B{_+&&b&\]RS--DDxa `RRB߾QaV30*AFΎ36R3aa.Q@Ä[q8&)O& ZZ`337oY85k,cl):yRW\xbbj22]]uPUU21CXWWttavv/_>}k̬:p`1,UU0ϽIK ֠_ b bhAggX. 3Glj/Oyo_!::wŊY9 bluLPArmwHJ 1 4 0˛~-{VR(ioY'::z߼"ǧÚ[7R⇄|kc:,AQQ S+>pBO"LNWW?8`g@BtvTsLy쳭lY`&ҍvʖo2>p Xor>|(y<…||4geU~jeeU츥KgDDlN|VSvޖ1 <A%%4 c-NNf:CШw 1̪F[ٰXT[fg/CUAPQQA 2DDxML2>~~Pٔ\\{Rخ]]ٳaEYdjf b*JsorPPo5\x !;v,wIMu;rdieeΙ'RSUU<\}RfVTQe4iHJ E'իuvsrWWfSrA1޽ ߾RT$mg͒ 2Y@]Hŋl0ogS8PM^]]ݻځ."q~``݌Zha }۷{;f9gKJ %''oyB/qq6̉+9g;BC;xy%rssSJCr%Rm3+Qv ɓٳS hq0#wXn l򹡡$3gdgW6VV:hw ȑ۷7OK2B]]QˤSqq_o]v-roöm&<< j؅HOO }ϟ;9ͧG:%$N@a6IYf Kײ)5y( ёe3S-@7ow'󇊊DKKw[[B&Z}x::oR+&Ӎ+u+<~ήk `>  \bT vF70@PMLqs{> Z=?`sr2ُv}ZO@;<ذW2q#ɩp!رes*O4n8 ڲ6鿅01Q矏AЪZNn{2'yyQ# ,BDWKKh ɏ'[7u;!PMFXXFnn͹shi>L HA; ttR~>]ꂅAYYSF,«wp>ٳ[4O&IFb m22BJ7.B/ܳg2 ?"H!!ϡbLMQ+3jjڜM 0+3`~00_o֮ԔB;˿y֯s~<4f2f,YMMTЩ_~ nosgbGˆ`0EER:#;Tyym|Y+P!S IDATj܌})Nt˗#0 5+*QiJPn~gm(Nǯ (&,00hٴ322a0--z kge0LEDd_f?**bz_1 ߩڥKtuZYy&wung2@:x k5_tt@@ܢi?46v Áv !Ho7n+/?շ4&++bŬ۷1Y&rS֠w͛<Зǃv\dɔkWcƉ?&))xtgppZO\h pm;l&b-ӊe$ʕ+gIxjhhK$(&cCCbŅuEh9sZ}kG;lMMՃBG22'OP**A",Pna1}\+W :v,pBDbԲwΞRPkL_dII 5`b+W|+*AAǎ-夓SU"++v hf00@y󭓓YF6}*wġdqu-lm ꘧ڜ?xQXXw'T訪JHr,N@{GvKl!:z4@Km.|յ;;?YxMng6n3C12RVPD׮޴HEEfNZUU+(E5' ((wh͞=޿_v)ҒIIarh $:X~0RRߘqxZVs;ikqqz60@ܱK@ {'~eo?`ׇ֯Țy(88ll>1!)jn>tUlmԕMFFIDw&p3G.lqrzs/1L_*2r_YYx/qdf!## s[~N_ mN}~F р~`VEl^ʩl޳ `0.._A0Q**jhkA;畗7}Pv4ɔ}yx8\qX F;?NB;v,wIIq;|xIeeٳϹ=OM-tymWo퉉E0!W޾;&ܹp CZuu+BP+V̢NV vV,APRS7O2AABrrݻ[\QQ3ُddZ|܄Bk뛆 m^7-/YTw 0=ťo#:KRRQdd6S?Jխ3`0J22* o^UՂvQWLIa݌m H-0V 1~ic[x( gf۲e޻w ݝeBܞwtFD*RQ`ƌp?5, `jJ/{ym|o uSP(4{{{ 7{.9y\]@o݊=sƊ6ٖ5dPӌKxx8o7y}ggY&T 0Ԛ6Mc/&&ӟC:W pl 6>{O__al3<<rr?&//zK==&qA`qW%&=ya ُvd?hggjs:zz[TֶZu;,etNrsot ر@-_~~s*I–`ag+51hZ͙t1;)\W;;lH+-m'̜9 (~*&&D7nA,Pg ;|X_v|LK+pu55|QQ=-g+]]6=u}iӄZJ۞= SRʬo::>ꃫ9|o9'N,Ȭq>MF4|Ύ+fR@a62cɢEhE{{?0d{F33^XUSSjk.\ܻw VSl'x^z@ m{ 铱"'$28HP7qws{Z :xbV}_SV22o**x]`@a6OJ{z.d prFT:\T~ f׮ϟg0]mN/jjx\VDQw\xVV V RSxy9?}5.06M3K׮E˾;ge{aVVz{.Y6ׂ}j@a6w %i oN RcyT^A;"llxY4 Nr=*w(*Xp7^^I׮}eH7PWfG?3$3>S|42RVW914Trw +i޼ VVh`{.ofG$&=~]RRxpv>le UpX]]yO@kE&47webgVb݌[?zx'|s'1$Yj+ҦF o~ټyCvyy˗_靥Vh k~PEE >|]]9#?VRRPD (F^!izm //ǝ;he˴߼'HhA ӧ2Iff&QUŗ7 27SV(*xO?s-_=spYXpZ]JWorWWxyvb9sttdmln8|x66zhMff(Fs)qb/vL]]>BB<6̹w/A+ϳggWRSf BojBdppL 'P6IIӧC=Fi[]ݺyCs+yyv0 \[7oQTw6Z+@Tff(lAbnnAe|<^-A&FFFXKK&** Hٵˬ+44 T>k<%ذ1""+3yk,Cccֶk1Q\\3wurcBOddml\⯠L 0WrOb ^ Le[}k+f@a6\NN 3vv܁O~d&i˖iEGHd b45k=<2 <~@;Rny< p‹~w5hdq1yz&t.߾{W0fۏIVhYYϝprz}7zzQ(P``eיfv`6nO$psss>2,̥;iVV7A5P WTԠ:Bg&a^gƺIII\Ue6A f믉DX4KON:Z\,RWdwv4Q ,*ʻtLݴ(<%-ѣK++[~%?aH䢢ŋ$%!CImm. ˿~}t~WML Mv̬5l55/ SU_v `-L-i gEA j];,/-mdvS;v,D"?eÆ8L'--cǂpYYa(Hذ۱qL9pOwwO*9'BdgW X(̆+.nPUţX/332=hAo迮u+E[ &I **1#D|~(g&sm?&gbd2DϗNN0s£r>ܪ%HJ ^lsLNNsÆ{ 9f{wL^2%UD"KHTBE"")Bd--ZJiU+(hי1Ij;9skH{9 3?:k)*?>l^tGBE11HǏ-׮%;:j q#G8ܔm󦶶mǎU"5c=AG$RR*44wNZggsN^^^lS 0c_v&WV>eaُ2jj0Ԕ Qbzz<<⵵ݮ7Xch>OJJ 16Ghh(szxA}C:88P/@<044D:/9{&sI}$1oǏ-i?Օ35UDQέ=>,Y2 ]oǁt ͘ceE3[~+Ai]]][DD.A~tl,HtqYtHJ VWy|ml??nݪT73g,,(rCQQ^w'OXRezk='#/-Z4 ff۫HеkH/%% <ѣ|Pь<۷/H@ц7o>f<,c&TWO=&M_ߠ2QHH\z0_ߴӧcNH&&+X`T`GIIA..Ttz@aMM]؊8fGǵial$A>FWWPK@ :;?PT[t㧧Mƌaaٚyy_]5+d.P7ĉ#G[YQ>Y/xѠɒӮOJJPo_t)X/PGkk"ozLqΜ'OF#d46vfeU!9,-W^BB+*7#qfMJ?zľ ^Z сɓGlSa8f}%22\o_VCCMҕ+?mŠ0(ᰧN%&xQtq痗tڻW@ ݹt;VA5 bBBfQR򍌖cm#"1|b0ޝΝǣ޳{gOwrZ%KffZu^E傧g<&  02*׭f: IDATdL05U| Tlk'$gaSG6IH{7Ef̆F"#_o߾ (&gp CuС?}VTTƍ=Z翑7yz&:}]*He`0˗9wnKAJJaa9k\\쌫듼DA_={_u`? 31#I'NֶݽtqՕdwu} )Zfx.<<ĉL#RR> !>-C4 ZNϟg%&&jhh|{.HlmmB#TnJ"HOG_x񢾍*@annz'SR/~lkKQBz(N@@a{a&"2V3nBppLM ++wfֶ!D"9H^^tF9DL HiU稩 R׿~Jm?bbb! %ׯ_fgg_|yJJ y XXXo---ߞl2 ;99999 C`O~Yfqrr+++4{쐐>EAbb77s_-))goo?888@trz~V#H˗G%%nxmٲ3NETOUO`qq@HH Dd豉8>zt ɝppG:ȸ|,$Y1AkhhDQ}`DF>PZ'ld0kSDDA&CX? M~C%D"qυ (""bkLMMsssI$۷"##>}*,, Aɿ~Ҳ.44_HQBv…͛7xѢE&g޶m[WWA]]]o߆ ǧߟwx=EsÆ ]]]?&_@BCC2''GLLɓ>8BDDRȆFv 9 RS\\{lYA22G {wpJJ*~xHхNL0AхH@^ttUtq16euSPӧExëW`ocG>y\PWtɺu+ERepp{z$$߾:0kooV<DPP؅`yyyOO@HKKVm޼mԧIII544NJJZp!9sAAD߷{xxnX_f?TD (.--,qNO@*$}f`psƌ n56vNE\^B@aP XBGGnGA/_Vy ԥ%0=q/_N gu0KRR4ߘ1*` %|=| ?A==_C͝#,,jժ ,;&6x<AX~w1IJJnQw7;:"bʕ43Y[+GD**:}˅ Oij^/.^Zc(̀ѹm9  rMDusskJ`ǖ885HJ|cƏ[kzC^~]MMёPQQѷ JKKǾCSAA͛7kjjD^^oR999MO$>|fee6&6FhG" \AۺVeeCdLP77۷͊OYHK Լt̙W>4 +-: 3`t{zz74t i"dɉhk/J/(m~DKK˽{'''Bdiio288844 uuuGߓ'6mӧbMM7n60xqWW=== cMr8:;s"Ⱦ}9bll<ƃK枨({ii̠9kۛ7];x/^|ȬW#4K{s8t۴I50%AȑmaaOefOJ*=uj#$H4t77[v~={888>}ŋc߄HJJJTTt۶mmmm?O*)) 3g֬Y` .60SPPСC._F"Acǎ汯122RSStqqA(+־aNp8lWW/ZYRRe YaIIÄ 9T6 4))傂_(G:]()Տt;y2jc~##5k.Quj#CB2AEE~ξٳ3'sh?~FÙ?22*%%orsէO-i::Wx)#s8H"@RhpWK>ZX ((hO߯N ^M(UU_ס(Ԇ`$$+*hu,*@Twb6mh`j{蕑meeН4s`=eLVu55]7U(-}^8wjgn:)A~tŝ;h!'ioZMo8MXw +gϞN!`#)IDRtM8XzټY/}L+888v9Q/}{>>f4Eaan^^6漼cGpp_ฝ]ȋ##: 37xxX]]u2? 7lmU݃cLL:M{y% S$))Mf :: )eeUUT4-蟑B:JA#G:MEtJKPV汲RSPp1v_yǏ? (̀30X,xpp,caݶm٭[)4qdpӧJ_(?n trZ75vKJ =}f\CdϜ?_)ippd׮{ro0PB: rrWbt}VQss/ʵ]X_?; 3`\.^4hh~= {JKKC߻D@QSӼ~_+(F:$$Ν993g6 dbd)wϟ[a <@aJYYaG(n~,P4[[O_)uӧc,D HKin,!~lپ}n3ž(hdsr(޽G^DOO?ѳfΜi]RRiPKc;;v(oٲ4Z @LgĨH#r8޽&8oځkB]ǎiۇm߾LNNd2"H=UWQRT<gDoǖƳg7?tHH֊b8",,EMa`zdp8ffW4𽽅 Iaaz!?ykY*_IH(>}bL_n~MMݻOΟuR+ d=+fCNSSekQ[[K5wfrp(FF&qMNv-+%%pÆ5<44{w&xxoٲXJJPBJJ[VF3?J44d_JHM}wxCZc>!jopͼ{*3󈲲,950"Vm+ŵ{7mG:jh:_>AWN=9;js<Z 3͘s[/rrKt-.h&!!`m| ieݬYQPOk׎ro_.ql ڼyWq|̡RnnzMLV-Yr -zaÆ+X,6.n$WV KV=o_yu+ۇ}H30۷/[Z}}JH^^- p8xP=vNP( %1?!-==NYys*)k۶0_vݙ;W^a9&?c=>>vGGc66"#_+(vv~ %} ̈;@Xr5ڟbm텩/^4jyg0 ӰرH9~\7+:1,TA~vOcdޭJ`(!--H+K%YXV"%* h000liD8' xz̘}Q3?c))Vph@D Ϝ YD4```83O1::Bz[*^800Lc;WnwqY?>a5m۲#u+EQÇ$p(̀SUkjGmHg#G644tg O[')>>#;wZ(T$HfS=00jCC9UU6c|}gΐ$%90ЪWG[W;)=׭\Yw˖Hǡ%II ̀===Z9;7lGx '7 q:^#"2mKAsH)gO'qeK߹Sk4JXSSIHEgx}2v TOϭ+Vg F]]&6v_T^..ss5K揌 #7&P[g|㏐H2c^\~::n S_k,FF7M޾r% ,wuT4A`os:p<߸X[+S;0 g*V{Ӣ>#e0Ç9:lWGG_O 5JAavPurA!G~~_"qvl$@ӊj;_L`7n$&\x fdIJ ;啐Ut10йoz8),T@w~JʻOƾ ;5LdCܹ(1kl쬨h\Z qe`[U7YZ['1g544(3Ƽg<=;;` gdt//`zHJ*#edJٹ30|fXX(εkkCweeI]]#G?,[6`ѣǸڵd %؂!KJ _^^9?KK``-]:A߿oͭ15UsPĵII z{o`&үBH ًLss;nn痱diW'0C/+_MO54TpSU||ľ(ETT.ǿE6(`0plv^wի]rIA'Ns{Qt;Wgz&/%ݲes` )(788bfG"-&|6'' #{;;k=}Zt}XuW* ]sUP+>…`SUW-/߰a!A: +%--.@aP''i^^͵kHgCZ>>)h4y\\,'N膄dbTvv&c0Ci"{1 ?zdD"8^]54fڴI[1Z[+zx~^꼙_ag 12B6..k׌J7lB@1 ?^tљvpG 6o^$qß5 ~sj&&zD!q n3+*mm큹0*40֤;4.9s&y+< ~Zwׯ"֟:og]ftƿu'eŽY~!?F yIIYY׭StKG@,-WnܸhϞPv;Lre{EE͛/|rKmۊ FocwpaÂ}""nxa$>pٟb12Ϟ9{뛙ihx<|?՚m$Oٴ 2:AA'O);;?C= f]ͺcG :ϙ3o)HTiWHwƎ̆s1KKXZ ~eeMLV6"rr߯"7Pe[?!QJJ+WKH$_M9Ϟ9HK#Bp*.c_dA~{7L"#_z;*PcVVV3nrr3 CgHY;w^@$K3II ~ЂOc*, kLqq~TuԤ=;s|aoo UչKϙOG:` CڿAll 1@OoQ|cZ_?Z$--x[)h\b<= X[}}!KPdA:&(?0a93U`j0hi11#.mD׋s oDEyrsM[䔫듯_u}qqu^ee {T:{PYu?㋎'))y2fUlٲxe"4~6gW߰QL^g>4dY[B:2DEyQ,;jѫ-a)X22N9!2S||쎎llVEF IDATVP8WEDx,^w(.T98BBvlذ?,,8W@-:˗ϱڃtQء`={BhڻWM\Op8۷uHQvvbpq)?qJ$ i =υ`h0#f%}vvJʻ+**!ܵ+С66zS\l9:m> g@(j7nap7u˴-,TGGͧn[[ iKIq67WͭkFտ)#. עEH ssEOϭ>>)mS(;?#"",ذabGLj.PWrrY[[="}%##=S+A';ZTWH:;>-67%'= T=}KHڛ1{.40GOg77WSa_ ik/HCCW߹ږ0 :]]ݻ:07,8{v ''}S\};UEE|hF:ˏXX]3ήs' ,R\\Uek2oо}gơ3!<fϞmf#``F"BCL?n55]lιs[=E3fãut s'%9H}Oxoo#ΞSPpC0Y ,-//t 04TpA3L 3X, Qi~(/''ܹׯ?"*||RJJ۫ϛ'doW=*!f_%˗kjo_p07}یx.kfwt9~FDd^^qssE?%KN>il?@$-ڽ[{-IHGCƼyBoߢ0ή1|" BB,%##p0&X[ becJPHH$54̤YVVڥǏ8:j剗[YӢKê–vjz__߱y:3p^533Ž{CѹCh(sY}[wCxymeff &Ԯ۷SMcё(W >! )22BMMͨj``kw|[%D"9:/*f#(Ϡ-4@ zzZP$);U1Z[+zx~^꼙_agJ=zpl@zkH[Y|^J@@aJFF[R#NNׯ?yzNm]]PZRb߾{!*+G:D$޼ Γ66&m EGKKattvzz44t߼~3,`qrowZ57w_參띔TJSIгg[L22Q3fuw PpSU{옶{llh\S^MJH"'=xG$8sSD!U@ PEEcwL"IlݪHp0 Ϲ~ŋʒpbx.1Wz33Ibe=sbf槡a[e@A%S&&z__ppP(ܹJyϞЌJdŖ-)oH[,` pd?BC,, 0Ey]]я%Сh*?:Ϙvu}bc6Pp.QAavPuBW<>88BO嫨HOΎtj5OJ*IE: L0q℮|khXQ rYX2ꯦ| U&U͛'ƌ_ZPf+*͞=]mІ XHegUKO{ۈC̟/mᢪ:=vӞ]]`Uۿ32*Xۏ-[6!s? h(d`׍.12)ff ν{Cizyݻ˗ϑkB-D" l@F_S;lOl0kjzЕ+ېE.$čD"/]W[XskQu8QQ^77&&+|}Ӗ,9d굷 2H]TTUދtm0CO6NGfl-._ND:}yؗ^(G=22BD" S-cYXX6|ƂMOϠ66K6\1}˖g:; g\>>vGGͼjN;;?@՟ =z TG޴L"A(l fٙl= /_NɊ%88m=^9~ f\!dzQDdջxQK˨=[o ܿG!<5=6X[{A|dgaaV:aX\\fE33WV:}:FHKAa6ҹࣤ$nn򈆎\KIq jk&}B^12B 65]ssϡCjGyxX~tU0PAAav`UTTcHgzz8m-%+ K.mgzxTe_h=-Ɖ ̆ =ӻ..Η줪:c`02G]z0z300k"D$F""7nrٳbskrr_z@aʕ>>!!YHg{v~jkŖ*/ox$NFFhΠaLU22B#_ǖ^6e3[7E~T۵Kb%YF0hܰኯoډ;P~X22B(9 ΄4͑AΫ/vu}x[E0PDSs+Wo|t ޑ""VO65u:M`"))@O+)Cd:::ܹ;wTSMk;rdYCHƌ$/}ZO\r2R)iiQf yg)(yzƏz͛)nn4#hn+XQQ^#! aOOt} 4f/qssw F:ɉ\?/,c&DF޶mި\.)x6TIH :qqjNI:m?{{lpl01][۶e 7{Uiq477~~Kvu}킾!_4nNuu}BSaff{v";fܬKBfI.Pca GhSȑ 'OFy|BBI{{ a˝ֶQ0 ͛'TRRu%44{Ŋ9==&&wp8l@%##f\aŶާO5q8%訙YӢKȫ² DݻNNDf?|@86,FTPپ}4&<%hg:09:jZZܻ74>-Yc5 Cm爈իxmm0RPHF$n|f+: ;vmnˆtQ\Ԯ &$8ΛdC| bccV>իW_ q?O\GfC?S\]^^ssӛHgj"#u㚚斖/B?H 7.B,ҔUTΜ0P 9hM`RR)q޹c` CÛ55H98)F\RRI]o)y8oav -&*DBB\Վ2۳'t --//>4,!H} (޽Uע(*0{BC: Uļ9vcړdzz5WAa֋(<9Jq_v$ o--FL5DGoAG_A8f0.v y}66(ZVzmGG?Nd~ |aJ`u4#ՇLpqqe';~-Ԗ]o_Ɋ]T2.BB\,RS߭Ys!!m3nnVJJKy~u15]͛DNNp[vv&㠅 ._Ne/bD33 k%%qKX;<|uKˀ@+ x>uYNNQ=vbEfRZ`FggߧOnhٽ{9llLRoh Xvf2ps ٰas[xx/>~X##;:{{GX,D 459=kWWZXJF: V\9i]JN.SW-(P^jdofjo"tIH VC$#CD")<J@Kp8[W!-fQ{7ݜGJut7??իFQQY3`.̤w+h0n{{oh W*niMzzŚ5޹cv/e)(^dϑh 3`03g͕v ~x0an X7DuߨH98hFz5>..%1ݻIIjfƴH$م /U qH?=`۶3SS_O ;5e5 P f`0NmܻW"fYļqtgmFQQ|tvjvJ [බ^jYYOZakdXUUJZ8y2*!BZnSAP]fLN.[BB۷||D0ũHJ P frv^wcD@@Ygj)pi|LWw! ca׍p:̛'DO4CC#TZH$54\B[ ~y@@ƍ&JJHg ^^6&&qv#QxhJ!ju`0[['O ۀ avv\]ܼ,:70:..^ o "l$\\,>>yy5W$3"12ݻF::U6ֶ\ۏs瞞< # 9IIW_LJ*%Q6m У >laaA"'6k!0affVTT|D?=E||iH@S?sfٳqqmU$yݡ!vsyj$|.9ujW JUhҌVXXΊbԸ9|YkkeL03f_vhnrxJʡuÖ =:ϊڸqc}}}XXXYY5Q%jhhhhh(..744MvX=e yJFw:8W-f]ee0^m7Q 33E}%vv?ñ5deg-ݻ*jjzȈ~7XYkiɺG: }tl oEDz{I ?OArQ%>}ŋ+++D~?32Z@ R0M]7ll=C5~ ۙ:```7',=bhhdij|lm1.^,=c */oʌοϭ۶ݚ?_ʕm]FxQgjk۶nٵ+xzϝhwbbb! %ׯ_fgg_|yJJ {b\\ yٲe @h""">HKKO>!!!ftuu%_0<<4<<|r///ڰX!"O> ܜWXX?$!ߙD"}iGGǯ?o_aee43S ̤@@aL2aa;_|ol|g8Zx^ddtى+V IDAT{OL,]H~?cb}۬(G,< ?>nFKFr}ŴδilV ~>cD"f^ljꌉw++#RJGGGMM!44ٳcߤ{͋-z y)66V[[=3((HLLl'BwyK.9s //>z/^8~!dggOII ͛7***ٳ.//IHHpI "Hϟ?9///رcFFF~cW?QQQ/^|aIcLނ"QU'"2wYdM vv!_l_t xxī{xǃ5qH:...]vYxf-Cee|`` an!k? $ANN5???==]GGGNN.===%%e5559s搟.&&VWW}իW={W/\Hޝ;wZZZ釗 x<'qqqzzz @;wiNM j퇆Ftu"_3fDEzrIJ*9s,ˆEfvuQ~&lde(/ߣǗl߾ǟ 3,F>c:5[)bbQ:~#!!o}~''7oSeƨO^^o5R{{{NNҊ\hњ5kɅ???!?ZHH$d>>>'%&HC_]#7o|[!%%r۩Ը94PSwl>Nmyy5HvzzJK)0XtǬxPjN,S3z{)U3ILÇq4qg|pp֍&B: $FFzw3٩poX"hiiwX,-->lw U]6ٲGdg"ٔ!*.4J2H "+{yu=v˗/vvv޽s׮]RRR'N N;;{PP;::H5xS:q$XYYYINCCC,Yddd.#& rʕ+WnqR 7[bcc#N5O+W\jogOedde> LVl6 8~߾D!!7`k##mnܿG"QQի>-[ZtC*-P%%/.Kq>->{ B(OSS ~~[oElv lEf' y$bbމ44tRV(0ΘfP(VBF sܱc1AAi-ץKCTyoߚ|4PPG]]VR++Czlnnk*P"xxH'11. n֭[4g#~17 11Qs*7ɳ^.#!A eysKnn325粲2WSc[2)pr2SvYJxڵhPgJ- ~}ir c (ȎZZ2A^pk@3hͦJ_QUMM@g Ҽ;:ϗM;͛::K"//hѣ`kH$BQQWTPؒƏk Z;doCwٰs_W7|ҌiXXX>|߿ @ ivAO 3'0C,`` aVCEDDvHJ_|l9"&ƝS@P󫵴`iy]qԲӠ?R%0ld366GDkI I)X͖x7VLs*/:65:ڙ}#ΝF#aޮĔ{[[[;;\YY=u`~L!H$C P` ff!UP9sbc֬QشڍP`w[J~Ӧk7oNC4r䈩ɗhhEEkWeƵQ?xoo G519>== F<8uEرcxxx)Âރ-|D" CiȦCpP|Pcb+08;/c۱#EFF:k/._^c޼)_u3EG;?rS`3\\,\5'FJMM;L/C)ũS \٨!iH$"$j  ;cFcddeaaaaa!gSSYYY~ڣG޽{w=gg眜))CBBHޑ#Gxyyϝ;YPP2O<)((Xn֭[I/^t)%%ё=:adZtkWW_[7gP2f(hfxyYCHo~ PMJYR`h\^<?hiAq)) o~{[L QTW23Sd?߾-נjƍ٬^-j~KOO}S8c$/=c .HHH˟8qΝ;@GGOzƍ0aaayy3gΤEDDYݻw]CsIIIihhYV}}˗_B&p)# 3 6UMy))^kք4-_RS88gdK_H >&}AMMm``ϛ7d]]# `ƽVuu5???@ UUUJJJ((({"iY$?]RR>ȌYϼyR11B& '0cd@bP\l0FB'5K\“'_/||s<\FaI/dq ޫ/_zh,5@ 6J9w?j`0(,H=+ٵ+]Ml-dYޙW32IKVQ%oAAAW ܹbP(Tee% Aq8SD"H$vvv䈉P\\<&IQVVF~߀%--P)]p '0`Enk[ aggupv9{tt;__ӧ;4釲غ wttϗ==cDE)KxQmk :JWu8`r;ŋMAAjF~o~㡡`0;vTUU:t[n􄆆q -,,|}}kjj>lhhgϞ)--ȑ##s߿7fÇ` !R3wu @w,P\ z6ZF#-Μ }~:mӏv~|^^ `dqcs_߰-c I`0 )fF :)1Ғ4))iظ@aLPt鼼hgM p`Fcxxx󇇇?~ddNAXXʕ+W\㣢q V'?++3g<<<ٳ{nII'NƒtqqimmXÊ+֬Ychh;h33m-!lC1`E)?Wo(WEL2306in[04 H[ |\;o^xLđ#W j^yy_GD/E*+[[Y]ƂeX:XD?yh%$PpAp[lT8!NBB5W{PjAFV*`f`e̘![ 0Yt' k/>>~Ù2'BCs][oQQ--mT{S`\B{FF:x66v\qc38Wȃ4<##f&C**3qzf漼 C)ĸvJJ[g˗/œ966{VDk(="(2~huu nniC$r%}66YYnJ14H$&$>\pRR| G}=\3lllyocݺEC` e3s'0b:cƲdH^^5B`@dberܹ4HǺuҼ ξ~](rXtEX5?2mfuuo?x|3!{HN*|\kj{wrVցkUt!v fbxyy#""&߆ 6=vc0p 21ACBGVV )l!0F#O019{wڵ*YYVVjY00@A}[b3 qRRw/l!0o΃J7_'X@yy3 =OkjKKc360̬DE6ed>[PVA3M$155Ufeb=}Z Iһwoy&&OwGGeW3##BL<1œPڰAkă 3kC۪>mNx{gf~;}ڊ-4ECC]℅9-_褤02R:--øi՟ll˗^بWT8p_LGKKl9*tHG̘HJ򪪊MS GF _b4Lo:e׀`53!!wZ[[OxMG'@G'BO/fɏ$ihU_7 HDzz >axcC@+e %%`  a֭[o!hK:))^H$b͚/Jis[$%أ-n99A+K)3hFWorWTTD k3@NG>:8,MԯDEe:e n45uci.,̙gtg] IDATL8>/:$$⢰NNN UUcwwh?>HKe588 Q[[K:z]] #}}C3h# -0gd] KTIt9v,_.~3gwN1-ׯg]Z]FUaD\訠 lg THQQtcNArr rtdo}tK@GX|TTΩ[\iĞAAh΃,55wsu^7^ss;' 0Q(О^=I72c:` 7YYbf\\,7?gl-0P.4y+W2/57PZ-xոի幸Xy$&~g2_}2dg-_xT˗Si9gL%'ڻ7Q]ǎ=OKxdbɬFÁYj!Ϟ-dR 33ӮfeiFS;V/]Ԓv46vΦֈߛhOKMڰA+5 acc;ybxnntijC镕W2,%p[uV)沸8Of~CH5x̪Ӄ#e)G<rČƗ##AAi˖luv%5hi ?׆?,+{rJ' EEiiHm8cˡ6r\3E]]|xWXD d&mnnSRi677e RFi""\**PVm파=zDpsDG;ļKJKd!A:mm}x@aaᎎWwOEEAV1461!!Z6kˊׯo'5(/o>~/J nr`4XڛS]EiCCض1aTp88cFSΝ#)ɛMGGl-`(U}[Ť 36}`LZXݛ7<vhlhҩ3&&hgӛ& r[[sfe}뤍GEE]A5pC}GGԨ AA2 oژQҴ1ssՄic4]iob"0cCZ۷&`fw˫p!l-03 >>k6GDlxΩ)NRVV?%gU`sUUP$Ź57wo5gkWkhot+'102RAyx,OKY4Sg\nEE nn4 Ғl%c6][[7[:;Ӌ4zTl$(qVpfId~~IVVjYYg {wrmc 6VP1x4ri/.n[oio₝?`(_~(@.5l!e&뗸*(hlt2mwL=HHIrqYzcKL߹㒝]v=Z^W]]͔fmm\\SΘ%$|``@(N)QUjiD[֯bcsYT+;|ָPP79޽/?q⟮Wytrt\LNT_㉳``f!*\PP7P XnYYL ??͛" }Z ) *^ZڸqR@ Ү||⍌ο_14͘2wk6߼͛˖{5͛uݗݛy .*D7%o>"88%qN p \ʚUdCP}YssmLEOpiNΡQTBs@AVWT-dg` ??lTTB,b{aa-;&O|r77ڵ&gG@HȽ|Ty׮8Kp|5d=xxdhh貴 gfOLF5ӧCC?9 yyԴ;;\]V::.lœ`yxV3{@۷&9S^ 4#pօO%fED,-դ纹219?%o@a` esi^}Q ''s|Oֶ7o'M!0KM-뉩봰cf{w''գe|휐`/ "CCQy۶HmcQf0Θ[K ȆH$6 -fIoRR|II;DQT3@ s0FF:%%XZopӧ`|| _'!coE:sܻ=xJcߗ-qRuS.b0h_.2,x{y^k` G+@=`cs9%哂6FGof8@eppJv񣣷wh80PX^2HN)//da6s t@UU{.If9||lӓ/UUk^311ѝQY~~Ew[™4M;:I55/?zQWmҼ O qqv80M+#8n` %%̰ ŀqސt 5K388" fpӋXZE>A9;/}jSOciƂwl}|׮8RGO*0lm5(hhY.5!q4mSP8mϟLLƶ)(OɠEP.eMpp801W!7fZ ߜ}.]zQTTim~B{V7c <dvݞ@ ޽']]nnݗІoggef~`bSUёҟ;@lh04cFBzr &Yt3$%y29~Eĵ3-!!v9""4̤`aawFFf:zlܨ ֜_ffzC{{͐\9zl"}||1wd|$#czzIdrXY 姣sorxȔ]vDRii4 #yyYYeeEEuBNNTyRiMy S٬ǣP4Z "پdxBQQ{a09زEݻ;v<{3Rb y Ν> (r_PAAիof3"r==/_lm#n!{_G@@7ut32B ?_EEOMyZԴggL|3 IDATVMy`B"cl6d̚{*+[$3ۀz`9L/o;s汯r(==: BOow۷߃lgz& UbWԬ^.z5s׮t''-[[u9Okײ/\HL|e踄EeFn&ilwGHFa38FRlld:zU98\QWLWfpFDleC y{=;իuu1OO궍M8c6SiOM-$%% 瑌:YX-[_OdRoc0(=@O|bTUΞtpX `` >_{6645-0ԆT7Ϳmm)mmkײ/\xLI[Y֦Rtthwe.d?g*US..СH$Ik:KVL38GW'֑'ݻ .]*Dv``ƍgM mB,X hfB2<^Fn|bEaKC0Hׯ˕Dւ̌ kk̚177ի?l7k ;wMM8|4)ʕL#yyXX;ر[?t׮ ^_Q(#[TEG9tA@@"[[ C@=0zVgݺr啯%ڡYȈW=j6 Nl2T/JlzBhZǎSWacwnni.HYF23 jhX\Ϙ/\(X\\O <Di/oVVHl{v<3)0C"/:ED<|9Ё-:c}9q|Fo,$:<۩;6>>766'**K^^V\WIIHNXZH>lp 5wܮ]q ԔLd䫆q%' ~ן>m9Ջfdܴ\h=Ͳj?cc]c>6NffzۗCmlJ ;n3ssՒ90TimɔB99  E;nvci>3 ׯ+Z{0d#$QWGſnnOoLKVT>y2UI験STr')HbX׮Càc~hƅ2ټYvRRy+hjc`de}_'1ˑUU oڪO3*+/ovu61@ONOt=*. H14 VTg>b[,e`Luyژ4dQpp0:-|V [.%%ZOYMoݼ*13qnnѯ^} 37W[n9{6 A:8,Wj$%ZFRR?II55bbffʦʲTo!j>>*n9sqX [kkk/VTxK[ieN Hد [E7nԲR#rID L))^\OL=qb-K^bjja@@Jkk:۷/ػRpqtt-w[^|'B`'"U@@2O@ QQo/XZƍ+W.W9+f33Dbppzpm}}" e^DEe r۷X 00XCC` ߾5|?MZz qw {;~77 g# j2)''OZļ--m(bB'OGXt{{?0]J$A CBllԱXMMFqq1+ݸ}O':;سW"H2MQ`:㶍H,`VsF,66''B`h4rϞ۷[_DA#7õj\ML.$'. ʇ11с-w^$r؊`h}w}kzh;BڻwRR>57"4 U~ ao~{~;;m9=(dpp].?OO>q}}ã0UOOf K_k}G~=Fݽ AFh4kM?=`jZ^"-ޱ[3$:##E__#"Vdg=^h66%:; V @|pd0TƍgΤy۷ j̞r8;;x7oʍB˛CE9SSw10`/\.*[ QP򥎖SŦy^mׯ>ebrɏ˯<gʴO{crs+ ~767LalT Ԝm> B!q'b0H!!- jx>v wu ܼ?+UUm@,/oJI)$c%s0DF:M JK&8`\G))ٹ3}f4/_IƦ߀om_ 17W@CcјO~()n٢ٓ1#v!0zQLynCp0T~s/^ӐX|vvYRRAZZQOϠ•+xWVRKܹx{"8:^0""Sb6]"۷]Zcpc㐒Ʊ!C=%&]V"$M {kPFde޿bWrr*HE"!!OSR UTD0^xV?zxܮj/*cgô֟x…B$uu z9pѮ韒⥢" R]]O/ax'%;!$$LK26Vܷo U21Nļ;JK%^Z~ckgGH$>{Vro0nfvedtexB~~urr'e d~;Djaؠ65URQZh` gi5zL} ѣfDM^(7!B!ee} VW-_84]%##PZڈH`0(ssʚ1!0.5㝝މQ(Ç ֭732*D"\Mf 8>xbd3RG^;4ᡭ- s%LD+++@~ n6''O]] ~LŋwZ , 0 pA;V]];/:0Nm麺5<< r- `0(UUќPHuu uu ??oߚ=+~8&&%eljBg`VV77]{qf#GL'oD"LMLMH,-ol|=#x<&1xBQQóg%r/qs b~2X,~%^8.\yMwиO5$F vyl zo2&;$ ugJ996]TwiFIxxfތD%@ROKdg!pCC13oܨYXFa"q8]='PHkk5ssܰ119VVj۷g My119` Ο?cymmGzzӧE>>w#/\j(ԿYY]5?( FhM lE07V F)1b6`s|q28c</_s9c}|>OKK,-?t WW#`l6Fk=ӧSNN:>~ϋIVXXa;@X,tkf 94$f----lF?=}gYΝ ~˅nj17O۟|5i,߸uKXlއYmII%jcdr$kkЩBbbʵUTfuߡP܉ٽ{ڐ!X{ oڳg3g]vD}NRh蝧Nux͚kH7m*+W=~.-~ Ǐ)`\.~3.| ׮Emӧ[I%%qs:GExh-pYy<8'*,,NQUbHY }A$$0Hx[Λ/DS&!7oXTԎ;wV9:9Ng qSov}DϚun߾[Y`f}+11yfO>ZʄK[[]puu5~>sl…#P<91 \ fӧNc8?lC>boc_vV/--Kځiv 4Zp8\6{koUU=phia~鬃%kkcϝ{˗`0{V?}=Ᏼc0G_wH!//A`yyIm0̜9N0 X\$$pF?,<#2\@X,FII_=8cdA] Νw~uw?R"00JO?۷O5Y J 1UXX[RRq~S^AL!D|Ç\~OcbIByIx{_!Sڽ RR#G|ӆHttDaNL,rs;ibOA,b.bqDG rmltΟ;LR'!w;l9lц %yy-َS))ɶH= `yQk" & RSOwJy3ĉ~_XY/!o۷?a2lvgK,`f' *D2?T9'k%DS;f\b1~~#<=-w|sqݻ X_H`3g̰/pӒ%˗~bȑ,/555XNSޥ~_j2oӦ{o$80vFQ(7`0X,r9^[g=wh]-[Wpy ޽f/4;lxcXXzVV5b5T6}emmmSS+Ar.mm`k+OX1bC H3,,{׮ D]__EOOYOOEOOYC?bdž>O.MԈE)))EEE"Qd޾SZZw7n,Zŋ 755x97ob0u'O~]^^I?Ƌ7oȓ&ٴ՟>}zZ!חzdK$oHg7yaKZUE4H&LqqŸڑ"D?`߾ b1X,`r;b~-Nu_o܆aNg7514FcQT*Ng=xA#FL/ήOKK>Y…6N322hNc(+)+**()C/YM&N껾SО=1NwNZ{ss[CCK}=Jmnh@ZTRSTWhhhZl.h@]>_K@bwBCC|d% IDAT={tuu-ZЀG0KiiiCC۷o0f>aUUU bgg7dMMͣG" jjjG}ߵkWg >̙30 c09ҫW`nhhXdkkkHn޼<<СO OԩS_AP^^^gOWu`˗/GC IJJ䧹ݱIkzz}E`63DTT ߸.BC;pCBRN=۔)g=Klkj ÙZZ } 1D%f0 y̙hGS=x%KTWWǏϙ3L&;88l߾?yO>۷ʊL& 6l͝=`HKK_| ɓ~ƍ;w!w?nUU޽ APMM ͟?F@CѮ\AP]]80ex É2220 /\pd2z߾}#III m޼9JS@LNNaQVV}UOΥ޼yfa{UW.1KL,-%/v5ufƌ(t $f0 <d[wz^S33 Woe/jю蔻?|&݂ ◘͝{aGhGS=Рckko>UUNB C>d̞?|733GQTIISN544x<:r;{9s3mmmYYY FDD3q!Q(//b㏝;wJJJ644}}ddϟLABrz511)//o "!!ȑ#ܹs٣Z[[y<ޓ'OT+MFR>ݻw&M,H中>>>[lIJJxbXWpppnnøq"##Č@ pB#A\|Ç?FMӣ~ГΝѣGYb!h cl~>4 @b֑ʕn_W;wbF8t?X,Օtʒ~~#=6젯殺 O- Շ7wb())m۶GվȇΝ;7mAPSSӺukccANwrr;vXRR޽;a.s[LLLI^E$*<o7n|BBBgϞcǎ2bġ?3j{,QWF!/j ?:3eʔl."DNᶶ6kkիW0/8::"m`޼y3(a``pI";՘}[cc3ځHOjΝ;7tPHhe˖)++^Kdn޼H$***Ο?VG!aKII |8Bטu]]݋/Ο?_CCװkll8t RRR[nJ.ZHUUUKK7?>Vs]p'Qu{.]_ Bؾ/j޼!w[ڿGEq=#"TƩSoIֻNz00VBVVOHׯ傞Ehkc[Y?aBg\.ܹsÇ!C^_`j1v pbbđ#Gkjju]x'R#?,do/^ H7nd2ݞ/rt|d466VRR:r?],7ZK뷌 >m;w.XdԿ/&}v+3pˉoSuuSZX41ٶk#B s'fԿ~spwȫ0wo6+dW\xyeeׯ. &iuFl߾ : $kׯ***?AB_M0!77766iדz hԩ4ٳg. ◘1L-BCG@b6hjjWO诓>Z 554gs)g0k"oxw'$SvPK뷉O_8z]?Yz}֭[ N:kZ-fݮax3fp~~~@~^LL R[sԿa? =zdbbz (<<a.$C>K`yf4QHpee;w!B̚un޼KBaLԩ vޟ@#''r[\S|Knj9dI@JJ)qXRL̟/^l9~þ%KBBRl.щ?]]ɓm/]ܟ;vaa[[ۮ iXvw^xxO>}5551RRR'c} ~qssogD"AXt8Dw*DRe5fƘ1cT*Of%?6&a[RUUt[H~$n\m/.l:pL&_nؽ;(=ڵcSS˾~-#~[[[;55AFFF{شZ]WVVnڴɓnnn{]fM}}= z۷yyy&&&AH^'_ n`k٧Wx{_9ڵ82 x9 }'OƝ!oo}GNNz,[VO_oe%O$p۶+22?+ @ëX;wǏoO>իWZZZǎC`0ݳPQQ9qDg[0|eKKK<?nܸW^!l6{˖-ACCc˖-l6;??|QOO/::C&&&G 888LCCcӦMmmmgNThO[dTde ^սti1P`"#s/F$>jk"Z[Yh%?_FF[WbqЎk>?s?IOw(ʚ5k?q\X^N-!_h9h*cvv&2QVV.VnhhvAv횶wjkkQ/X҈c0"죵DP^';w>,V^Nur?uY5ϮȨ@llv:R]݈vDJeܹ3}D;7n 2C&ikervN(X&fl6WW/`@Y^^wݻw===w/x(pKkk{‚FR_h?QIZZ +.TU5~pOaҒxϖ-orfkӧۭ[7\ P,7oDyy˗/_,Y0i6FJJЎq`vڿ?rPHBnܹ+W<|pyVb0,_BXZZ"7+**"7:[ޱ㩽s_1oe/}}89`rmQWW,͘ /?Q^nܻw|srה ^ΫW̓e}o4:yZ$ځ)"QtѣG谰3gbi-/̘~iDku޽ǎy |Jm72ylB z$fMJJb\ϟ>zVIIv뮮G"L6ڡCC_|?!aϮ]X[YSӣu'uukǞ;|F͙̄3g͚5...|C[_~֭>}ڷo?\=_OP(MZfeߦJtGk >=HЁ`\]I+6;9<h&*FLM=pℏoΘυ  kP];@@L[[$f}'++pBsssO4Inn:u\K @ ,HPض''_޽Ά6͍|ӧMl3n!h2bv~FRRf G˿~D2MzDLޱcG``9L޽{JP(M/Y2Oj_˚(+݁@@b&B3oo輀ȥKk-[6IFFpI$)3l#GK޾M Mt3/3fYɣ&jc=Ahgg4Q %%2A`hZmݺe̙FFF˗/_fMwߏ; ÿ@IIv)}w2l+$۫@ \`*̬u+ɓ%KF-[檢.t>227,,#22C"izzZyzZ:9bbxݽk?g]poLc?Tjqs3C;@OՈC^mrt|_,`pW3QG4ݸ}NL[y͚h%ҘLvBBQhh۷FUU#M<<,'NeЎg?|تv,dۡCv ]?:ɩ<̦M6Bz,?zyBP 8 1ZZX_^^0u[[kPRR[&XC6!Ϟ@UGgδPD z0l/ 2ϟow}^,[A8Y ++l/_qcyii =rۣGkSRmm >Mtfûw})KWKKK;痒Rzl(ڱmm 0yʸ\O>xp@V P@b.|Z%q1f9JH+rg;Ξ}+!7$$NNcƘlmuO%Y۷?Ҟ<p V./][57]{;&&ƍ垞VB?0qȨr%ŋ$"QyJ ?SVeeѦ1ciJG!!oabN~ERTH/LQ;w.ځ @n?INtoĞ=3B[jPSHK>?~Ym?zAPII}TTnTTnxx6Wuu%!I?z3}7$7YY>۹YAqQ^xǎ\.@b+*54ZMMp99zz4yyv_k@9sLL9+//wʪZ誜ݻ*0hLL"p8ܹsWcdvP̬  LO/`0VVڮ$77SYu3ׯ/b#**Rz!J/xgq7lz{?}`C-g̛3ǩ%xЂ7m#\߼Z#!:|=G@lL xphhիĕ+ݦOsz)':**7::/6FkUS9dHQLFKX!&mle&~ah5q܈U]]apcWW&v%((iӦ{8th7 ˗ºtm606m|jT>P Yٱcދ>\QG9wn "$fFk}2%0KFF05!Ƹ\^FFETTn||Qll$..Fkok~bii``Ӯ]ȀJ9Yg}O[ @xGz/^,L.۶IffL\~ NnkLh=kرࣹX/_cb}+a8jHAFZZB.z/_/nobP0 oRR//F;r2܉9xen1tML&{{aa` {쳩w_ &Dzf H֫WKOh3}"&M&%$EFXd$F!KHI__niID7lvzN&| @Dd}w5;(/v,~ժ 7n,>ܸ;dwĜ>5wOS 1_&?yX6nX 0=@Z[Yii EEqq4SMM^^Jm^v||ѣ C%.^tzԷo{DtH9@99cq$"",,cӦ::U{7~|؛2ʕn6y4 @b@ /_&'+xzZMhJD;4qԤ%$}G6JYYi 9pxG\LS'Rd1m$۷WyxXHhme<200Q^xpHHVOfc=ަy0P OQQWߧJKKc6q%UII}||!2㱴^BkiLwtu%))S׻wi[>2D̙FA`0xڴ(hrΘܱcʒ%}II%zqw/xʪ ڈv (boo={t7II||\V#@ÚZó#"r**eG69d(0ױQ(Mdry|lA;~5/9ܷo{ЎoQ7nDIJ'N^&?}"`ŋGb |"d$MAANHZZRF& E<L mmummulmu {>A~c54֍[`8 @/ݺ7YY r2\\| /?VFFr +~hKNL,z41((⸻{{;Md3@b-Y_D&WV6JJ,,j]Fȡc023+r$Uͭ iǏjCukUT4\X%%_~hHU~ZXXƒ%ſf@ ;˕DSII}@@ݻ1C-zd5IO$z{;͚ ?t 1UaamBZWaAA-A&&vvz#ꦔ2:)--aiI䏧H]ԬcF_Ð/kkreeU2<|xLr89_uݺqh"Loސ ׯ7gS j^&z^  @ ڜXX F>x<&%45L.̬hiauQͷo B6O2t1vvzh DMM-޿Xؔufƌuv Bٷ/YYvvz֍a靖ׯS_NʪRSqP= 3`јiidrYZZyaa-KDKKm -3qʌ * <pwwEFc@[<.){xځؗ tcrrfeecPз㊊jI$iӆt]]RR[&XyzZw@H̀UUQYU`a}}5kkmKK%\KGG\kJSn.%'L.KI)+(a$$p$RR`4Ξ }$!&OyL OSMM h)5$$ɓĄ"uu3;۞Ng䇇gY^ޠ0nu CJZWNN5\O`&D 4I$MSSߧt&xhhF~>A10Pwq1$"=_ [>.*:1@ r2[,-EfSSKhhƫWX,ͬŝ9^RRqTTnDDnJJ o9~С]HG1srT-7RUA)ꪀ7QqYEE8 bq T$ZX;ib1x.ٗ/s^HM=v,?fuDھw Y_x6/_p8ԩC'L8URRCx#WW% tfQQ-VVRaXFUO(-  IIL,61!((ȴ8H7䧀v |u#G~ ,'댈դPhoߦykĸqSzxXw,~h˗ܪF<~ȨQ&nnfnn$CCuT=AˣTQ( H"jlMGG2ׯSKǎeʨYYUJA**rږZD33MItv14zR//[c`.'…W44gG99>df|V,%%J:uɶ⺸˜؂2+N\y3Zii}NN5R&!VSWWEtt[oTW7}K~6=.Y[븻H~CA?Ay摄FgС{6lj /'Llnn!nj+IFFYII}||aBBQDDNYUFFF͍l~KD H|JQQ]aaMaamQQ]aa- AܰjYY)GGOO?"3QL6AH"Q5}^^g 3ڻwځt ujԄgkõ?l67=۷℄؂Z#FM@bRRR_RRR k6$ 4xC0զghL}}UWW+iX \WTT]tvή*.px8##u33M33-`nfժ[ tRuOjRѹ9 xww3c͑K*SSZ[YrNNÆ nlk 3ºڢڒz6WsvVV&Æ9:t7cTp D$*Jmmm%"QYZZƌ/-/JO/g2x^[TV6֖7p< ddalnladnd3cVY{/=p`e ('QAAI- 3rɓ'uϯemmdhn%)eD[[][[[[]33:!DH``ryM%%ee򆊊ʆ<A D¿D +(!򄄢rFz#\\ {ZtL7M8.Ot7mltxO'L|-PN\ވ+* JII_?&>XVF$P]VV啗7\ss-"SSH@l55TWjjhȔH B#>IJTTEd'j?Ɖ:ZT\RJp8,io7t֏U/ͭͥSNI$Zybb9^% 诿BOxp'}zح[# "ʖ64TSTxȼtVQAlmuU?rDH`aH*+ :26<~2H$*jhDe"nBTY٘\٧WLkhfemmmmciITWFHZӅ@U#4y} [iwmQ?q=XLhfKK"ɄJmvs;F6CPOPe*`0zz*D -kket`ј HVYXUXUH*+! %45 E"Q@#jj*"_RRBi" !)*ʒH8b2مHRVPPKB$++eh10P30PW#p8{Ml͜y۷.˿GRnݸmۼ¹s/r\$$Ϟmd?YI&&'S~v6m(R!fm,>װ 1GL6BCC"_M55,EEYdJ$'# :~` Q5ONN nfI"H$ެ-[W@⺒zdRRb`f`mjan^axymmmro==EFmz޾My3zݺ}y2;IHfv\yÇce "_&@]SS7oڷpv6 (p{|4)c=?oDIDAT894;0!dd$45H$MmFO*<ϝp[∂Lv_>3D_ƯsCo)--$)*@O*) AȍBQjGmYY=I@#Sh ɐzkwkH`(la >vʕ ǎy/\87{ۻ۸#p8S|;@X]?xۮ|_r Z+*گL --I$*YYmlt͵H$M=={LG ŌcvޚޜHZZX55:z}}sM Q_ϨTj3cII^UU^UUNCCQUUNUU^C&*}lnYI kjk)&$$H֤O2ZV?@ s uuUttTtuD-^CAX,ǃMM7l=ϯ ӧ?{b$$p,`!_{wd<-it R0zEaFG66Xފ^+w.BaYJeQ \}0cS(-I4K%s$k399y2L~99'j|>ߎI_1 IIѶwyBθqTISf噲uC۶>80K/bAkQ|Nuwj gGtz}*<)ilBXFA8F^KL*ry\ҿ{s脄~FUDb:F!z] l&6sfs2&y~,g!˥[7ԬXS+kuWj^^Iii޾jhks._~~D%ش4ĉIڬ,mFV#̙w=-L?4ؖuuu^7MnΟByL2S dffGrn6ry 梡˺::,dY).RZ- ZBNk4 FV_.䱦&{SFӇSR))I#"2'ʵs fsKOH1! tʵk^uwKkhĤXqɤL0n|W׮qG!EEUYYT*/wixbVuҤI:V}!0~6e],]e8ZпۍMH(jyq0ۻ,[Sba K_r52`PLN6UJl(}?vzk7Oi(ѣ2!!ztmMMb_)(++`ҁͭ~GW=ЭBF7mhv#WXYevTk4T*J%S'JLHPde%)2 uhb=f0iG&6Qm0(if0Ylt"0L_/66F^|laʶ6O_;P 9!0QaonwQXq˗JeR)2A5qAx)I6awwvuyvƲΎ)O-2yoRɧO0}h7`%FqOyvyv7y^67iqIqRf2i T*Hb| _.ݑyՙyyC+m#dqaFq>/lt,&#T:nQtT5ƒ]v>n„ < q©Sݻw…4b…?]w5 Dcƌm۶%%%;ŋ>|tYlEyѻl6nh^.3%&Qj<1˖hiq8aJHqx>|x޼yߺr}AQկjsϦM g͚VڵkKJJF *Μ9_[[L2ZV3f,-- X|Νwyf A3bBȖ-[ę5 !fY|ϫgSOpwABHGGٳٛ7opɶDŽczvS|{=NwСG&''ӫwiGX\\wk3~0̲ 30l)))/---4N<~ y~ĉ^tIH,ŲD"ywm6V|,40S>oܹ-wX;; V!~z.qy߷o_vvvL> vS|rrrʄ?~x~ QFiӲ͛("UZ^rŋ׬Y#d^zh42 0̬Yi~nn.!a„YqVJќ$˲;vlB_3fZJpum`xO̙Tu7Bjkki(,3/\ xb}LOOxY-_|ݺu{9Bz^{jٟ|ŋ_u / ,>08G"+**ΝK+}SK\UVXRTT׭[7][֦SN͟?_ܱcjBΟ?iӦEȌիWoܸرcofڊ>.[w`&` gG}tw<_^^n44-{9FrJ%ݽaÆdJ3l6?ʊͭX7l˖-j:++>|ooǎeWL*oBΏ?s^> KNam`ְcǎuy W 6/?~N+**z`+"[Ç<^uuu&L03I&t!'RD˭~e2faJrժUd "Lm߾=LD3(C`elLZn:1 V FT*ZtiA1 #J^T*X,eUEEQ s @!02fQoQ(IENDB`XQilla-2.3.4/docs/simple-api/classATFloatOrDerived-members.html0000644001725400016040000010616013273140074021276 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ATFloatOrDerived Member List

    This is the complete list of members for ATFloatOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    abs(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    acos(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDecimalString(int significantDigits, const StaticContext *context) const Numericprotected
    asDouble() const Numericvirtual
    asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDoubleString(int significantDigits, const StaticContext *context) const Numericprotected
    asin(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    asInt() const Numericvirtual
    asMAPM() const =0ATFloatOrDerivedpure virtual
    asString(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    atan(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numericprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    ceiling(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    checkDoubleLimits(Numeric::State &state, MAPM &value)Numericstatic
    checkFloatLimits(Numeric::State &state, MAPM &value)Numericstatic
    compare(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    cos(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numericvirtual
    exp(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    floor(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATFloatOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATFloatOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getState() const =0ATFloatOrDerivedpure virtual
    getTypeName() const =0ATFloatOrDerivedpure virtual
    getTypeURI() const =0ATFloatOrDerivedpure virtual
    greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    INF enum valueNumeric
    INF_stringNumericstatic
    invert(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInfinite() const =0ATFloatOrDerivedpure virtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isInteger() const Numericvirtual
    isNaN() const =0ATFloatOrDerivedpure virtual
    isNegative() const =0ATFloatOrDerivedpure virtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const Numericinlinevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    isPositive() const =0ATFloatOrDerivedpure virtual
    isZero() const =0ATFloatOrDerivedpure virtual
    Item()Iteminlineprotected
    lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    log(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    NaN enum valueNumeric
    NaN_stringNumericstatic
    NAN_stringNumericstatic
    NEG_INF enum valueNumeric
    NEG_NUM enum valueNumeric
    NegINF_stringNumericstatic
    NegZero_stringNumericstatic
    NOTATION enum valueAnyAtomicType
    NUM enum valueNumeric
    NumAtomicObjectTypes enum valueAnyAtomicType
    PosZero_stringNumericstatic
    power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    Ptr typedefATFloatOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    round(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    sin(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    sqrt(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    State enum nameNumeric
    STRING enum valueAnyAtomicType
    subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    tan(const DynamicContext *context) const =0ATFloatOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classEventSerializer__inherit__graph.md50000644001725400016040000000004013273140074022573 000000000000003cb2b6c8d3afc858ee85dfcd7207e220XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__dep__incl.map0000644001725400016040000000026413273140076020606 00000000000000 XQilla-2.3.4/docs/simple-api/classFunctionRef.html0000644001725400016040000007043013273140077016775 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <FunctionRef.hpp>

    Inheritance diagram for FunctionRef:

    Public Types

    typedef RefCountPointer< const
    FunctionRef
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual bool isNode () const
     
    virtual bool isAtomicValue () const
     
    virtual bool isFunction () const
     
    virtual const XMLCh * getTypeURI () const
     
    virtual const XMLCh * getTypeName () const
     
    virtual ATQNameOrDerived::Ptr getName (const DynamicContext *context) const =0
     
    virtual size_t getNumArgs () const =0
     
    virtual const FunctionSignature * getSignature () const =0
     
    virtual Result execute (const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const =0
     
    virtual FunctionRef::Ptr partialApply (const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const =0
     
    - Public Member Functions inherited from Item
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0
     Generate events for this Item to the given EventHandler. More...
     
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const =0
     Debug method to output the type of the item in SequenceType notation. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Protected Member Functions

     FunctionRef ()
     
    - Protected Member Functions inherited from Item
     Item ()
     

    Additional Inherited Members

    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Constructor & Destructor Documentation

    FunctionRef::FunctionRef ( )
    inlineprotected

    Member Function Documentation

    virtual Result FunctionRef::execute ( const VectorOfResults args,
    DynamicContext context,
    const LocationInfo location 
    ) const
    pure virtual
    virtual ATQNameOrDerived::Ptr FunctionRef::getName ( const DynamicContext context) const
    pure virtual
    virtual size_t FunctionRef::getNumArgs ( ) const
    pure virtual
    virtual const FunctionSignature* FunctionRef::getSignature ( ) const
    pure virtual
    virtual const XMLCh* FunctionRef::getTypeName ( ) const
    inlinevirtual

    Implements Item.

    virtual const XMLCh* FunctionRef::getTypeURI ( ) const
    inlinevirtual

    Implements Item.

    virtual bool FunctionRef::isAtomicValue ( ) const
    inlinevirtual

    Implements Item.

    virtual bool FunctionRef::isFunction ( ) const
    inlinevirtual

    Implements Item.

    virtual bool FunctionRef::isNode ( ) const
    inlinevirtual

    Implements Item.

    virtual FunctionRef::Ptr FunctionRef::partialApply ( const Result arg,
    unsigned int  argNum,
    DynamicContext context,
    const LocationInfo location 
    ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLDeleter-members.html0000644001725400016040000000551313273140074022162 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLDeleter Member List

    This is the complete list of members for xercesc::XMLDeleter, including all inherited members.

    XMLDeleter()xercesc::XMLDeleterinlineprotected
    ~XMLDeleter()xercesc::XMLDeleterinlinevirtual
    XQilla-2.3.4/docs/simple-api/RegexGroupStore_8hpp_source.html0000644001725400016040000002054313273140073021144 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RegexGroupStore.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _REGEXGROUPSTORE_HPP
    21 #define _REGEXGROUPSTORE_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 class Result;
    28 
    30 class XQILLA_API RegexGroupStore
    31 {
    32 public:
    34  virtual ~RegexGroupStore() {};
    35 
    37  virtual const XMLCh *getGroup(int index) const = 0;
    38 };
    39 
    40 #endif
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    virtual ~RegexGroupStore()
    default destructor
    Definition: RegexGroupStore.hpp:34
    The pure virtual base class for accessing regular expression group values at runtime.
    Definition: RegexGroupStore.hpp:30
    XQilla-2.3.4/docs/simple-api/Item_8hpp__incl.png0000644001725400016040000005243313273140075016347 00000000000000PNG  IHDR8%fybKGD IDATxy\M}S)YDɒeR$Bhdi1ٷKSPH%#dBIh՞g~}]mxNgyջs>0 C"  _BQ':޽ ̈JKKssspE@_ mT*|  _B׍?˗/g*xhԩD@@wX,VMM )0PK"~K1}ӧGDD0 _5mڴӧO߼y}ҤIǎcǏ{xx8;;"|2~sl)(TNxx8Bŋϟ/**ܵkWvv_hѢ#Gdff=ztɒ%Nb{5#GGEEu-[<|P@ׯ/_\MMM__ѣG3gJII9::"fϞ-%%m|e+++,YDGGt)))`%S\\򥴴4BJJ !DRۼfKYY!D"Z/_ꖕqXBa٣Nڔ(\aa>Bx%h!nk kk#G'$$tfWs^_|yuTT?w444 r5.\H"Ǝܹܼۙ>![vvv6 { sss+++i>|2gΜ. ~?~5(Tiiigg,@P@@(((Z3 P5(T*| #V`hl:C !Kt щ_~=HII3 jkpV-MMEeVc㻺l:>:g/_*gj=߭ʈ)S{+tfr쏃>} `PM,vmۮVLjधksPxѻ׮hk+zzZzzAw%jk?WLjo_Cuӈ#F_vȝ={n8pkQ T :EpE@OavjΎ>|(wqi ^jgWTUWFqÆYY'OO%;2gCۗr+GR(i |h2_Ĩ7nDFzA~QjD'] //ugǏ?\uu9C*))/Ǎ۞dJ YF޸PQQooC.(T@H7鶴iFWD'=bh|hC܂D )iH*L YYH/?^olII1Clee F/^|r„Awﮁ*%|,{߃V `IIOǏߞ9.nn22D'\1|x24a x H/>9q۷NKKKeC͚WBB6qOAz4˺& oӲKF7 1BQoqq[OR?Soߖ[7mD) Ê[1Y[ZQQL|c~^^Q>4n^g99PȩAVBӧC} BvsK_(=;8[P>UQQ?+θJLODRc_¦L1}$~cf}ҲRuuP*˳{yrk?Hm L1/L32R[}בF:q@B aΚ1lX[,- ND.H3fӿF\ܒW|}O,V #UU==%o2ȑyӻ%%i++# ?UI$4q`"'XW8bAgf /L;7 Ν;8|֏P($ǖW<["Y@oB… Lٯ0lq *tfE*@t7# :('[ deǍOt@Q"#ɤEt&q@@5:fgL^d|Y[|!++r Bh / kk뎾$}{oμ zx…4gϞM0A@RTTWN/#: RtHH9v&uP|PUSx}~Bܹs܏ϹsfΜٙ`+WIN~qf@>J<zQzOLzT)z˶m * B\ܣ3YZ\쯥@t Zũoo~,;PۻUg}}m"#$% @ccM~H{Y@A\d֬9k׍͛]BB&s͚5r~~1߉ fҥΜy9o|ROϟa؜9sdddx[8 ~ !R+cƌy)}YwնmL&sݺDB̙ed-Q'~n0mڴ_r#ᧀ~QQQQQQNN^s}l))I()S }Se#/m۶uu7o:::644 tuuS_jhhhhhر#//ç;8}THZI@ے)ShFF>˗+++BgΜ166gX455LKK#Ho]rBJJJSSKKKKJJ5 !&[jj{nH";fjjm۶SNO^^~ڵ t:=((H]]]MM-((N[ZZٳ!TQQA&BL&SQQիy橨666Ið@ss֧i4|GZ5hVƚ*))ر!`0BCCuuuUUUΝ[UUIHz@yL{suuuuujs*..VWW!ajjj/^իWuttBo߾?_Ԉy{{ JKK1 ;vةSZz„ o.**b!Bݽ&** !VSS*//0l...>}:tի7l0i$ aǏ%$$1 𰳳{]NN׭[: bZTO>ҥK7\HϚ x+1cFee#GB߾} 333yȑ#;?{\\\jjqy6< |cծ{e,T:::^n,::e'Np.TMMM^c2wW0ťcWrrr8l0k|"|)))?inn^jUHHF 8q"-Byŋ ['_#޼yr-kmY}6lWE|ܖl7' ð%KNVW7t{g`PZ;n]($"bO?W -Z~}JJ =8ybbbyyy .tEEEt!NVV!Dڼ}ASSKyyy ii鬬޺u+###--mҤI&i``ohhXXX: .++f˖-lO۷߿ޙEjsZǏצ л6mfW7ov@A >>ǜ*%Ϟ=kY˗/LNNvrrh. ;CEE0d2yĉyyyCMII :B)((7v$gϦq>))y|+~MV {FKKÇOn޼zth'~=Wz 詓'k…uRybX˖-;s̭[BAAAɫW漓f11PPmmmbbԩSagb/k֬cNNӡCB'N 9r$FCh3gŋ񇇇GJKKՋ/nll| rrruuu"0sVyzz/^xů.mދ\\~2^@F#:GZo_ 7vޙ6 2ðK.ijjVTT477oذ_~222OFۨ0 ۽{R>}!\6oPMM 0mQ?EUUUT*uӦM׋SYYYSSsʕ jhh066 i} m`d2޿>R3 lO100PKKK^^ݽ WPPxpLﯿ6nz${n쿷7224mڔ޽53[Jݴ)iÆ\Rʕ[t CRli  z'O> tYX[5s|kt!Lj1ru DA]iS=kHk֯?^}UA]c=\\~": ٳ+##3|KD` ,jO6tӦ$Ag}Rn1}Po߾=zh֬Y7n TTTzI>ɿڂ!@9rg-[\̱$:  ?~<>,Bh;w{g۷ms ;v744?\pa字=zw[n?g`2aaaƲcƌy!ۄ7o444TTTܺukAﯦvaY|o2{ Ft_>o ߙ3V8pj5j7gؽ{wL_@M<… r|yyy<044lIfao[WFhСTಲ^36(TG+IPUTT Zj6t?eظl&m2 1 c2w27G\\\CZvm .f z}ϠPRӀ+V8._@t>zaVVÿanߧL> D"H߿sgf3wf6LLLZR](j$$h~~Ǐ+*": *޵k9~~||; Lk׮%'&&NKIIq` |zWmjIg۷ogf3ig۹9B'Oٿaŋ?׌˗gee̙3B$&F]1&&,!)@;W:bMmT>̘1CKKKVVvĈ/_nV90 ۴iAbb"jFf: :nee%##/l?  344gd֯˦(===e˖f!O޼R1|\?ݻys>}خ]32ޚvA 6lH|uuy.tq'I|XgRP:r$ ߗ͛5z=d2T)%''ۙ"N\p{DguPBWϜrD aљ`<+ "W@55 cbII~!%%6ձcw"ҠPF瑪11` Nژ7Ϫ9.. " Hә 4.n"q;23ftKD (T ðs;qbqS<%`>*ѵq9qba}ҡϟ?_>p}}U[[ț#6PS##nccBtFSLTT$H$q11OD!oh[g Û#`d QtO[7uqDgk,ȑ;盚j.\8n֬Dן/\x **2Dg~aj; ڨDNJUάXULm( n *6Po"ͳJHx[AD*QYT١7 IDATFM : *)޵+y k^47MK [`ƇcJȈ+abqq"J{W:oMnAt~9**#!![IIZQQP?0~Ltr،?:u0[TTVϝ|JIy9e~'o5+++4 Bִӧ">}HKKX^+*:dN\$i>nǴi= *2(ii"h4CO~C*avիヂf,)/;t(uMqWHLwv6%RRb#G@'u={ԧO23D?uҥ']\~Z‘,xˉ?XZZ|֬Vٮ`kkgM^򀉉3ƌ1$:p*)3:;v?PXݻy^^Q ,U !dggZ]=;ADW6DT@BuuMed$(D|ܣϚH{w͂c%%GZ߾*pgL10tZAD6 kѢo꒒VAON*)qI<immcTTƨQ?(ƍW"מmxGũ?<ҥl'$ |}ON0ϖ,fܣEDt(>bkk}5:)5gM:gU!:+*aP[}LOOy^w>6i޺rJǬ?7nU {YY"*Ǝ*{2:(Td#dx#nUWN}.]65":0OXV~_aڴDg驖qvȸG`ii --}xD"Mj`0u.B% +}|ٙy";7QG6f*^rv6ŋ/DfpO 7yyE80Ln~07ښnx!&ya ś7_ CtWT~5ĉRRyّ?v N^T^`{GD!nxAt as ={n޾y?mmk0gR?~?hή]M O.--cc۷_μ00:ϟ+>.+*rϞ72|x?t>ȑa#3MMf*3PFF֭\-$e˖ź4wht{{ǛW 3bbT[E8AM>>tuow%:K9y8473DDzU4|xpωÈDQƌ1JK{5o {vv6':B%uzN\R~~..aT݊:'Aaa3#:5]Rc# RÇKIy P 7;w&_?Ҁ,G488w66&DgOa0XT*?eϟ+,95u5Yڂq& QKNN4+56}|ijʇ?`#gggK[y^߾*jn񪠋0lŊ3ׯPRRsѻ߿7O/[[ӃS?]iJbbDf66&yDBPw^}v振2YB('sTTFBB4ѡL&ɓiieNO"!2`Tx[ZZ&KtO=zTe˕ի'>{$@jCC/m CX, !$##Nt@!giiH+3(Tn66&K1.QddzQQ݀%0|_d!m dduޅBˠP|pt*w;D-ɤ3G¸GH=(hŽK6xIԌk|#S(T|gǎkKL'=tj*;#l-(T\gmmk׍S%:B_RSsLݱm><.{$4dRxq VdUTԷYH3kj<<"wѺW1uuM3guN:y~oXXJ)S;9~x׮YYYN0:R^bb3ѯ͛b R''^e˕Çӛ>"RRu?R]}֬^,»u)(H>yA\fܣ ¸GD Rit^Etq@k= zy|o:S )iUdnС9?R%%5>|(g0PSQXXEg=VGG LKKKFM^ZULP*2daUW@>~f!J&H,ś9雋ˡ*;r$]Reiiy9S֛ӓهCQ׮]ˡR)-a"dҀڇ10qbC bsZY~h@o䢢*xB3]P(d rի+:S>켯{*R)nZ@ ڗJ%?~ OW(Jr ..onsǯLM}]iftVV{(T}:tի߾}0a۷׭[gff#GvU]]xDDDQQѣGTj]]]XX͏;v) c [HLLۻ0&&!TZZaBݽ&** !VSS*//glÆ &M0,11QNNnС=~XBB0;;w 8pݺu<}!bZTSS~ZCCɓ'UUUIII۷lSu\8v횲2N0,&&̌bK®w)PBUYY3xuֵ,411)**_ srr0 ߿ŋ涼nUEEF۹sgee%Ūe2mRQQ+Tq^zUWWd2ܹ!aXsss =~XFFyժU!!!42,,lĉ pECCI7o޴o-zߚ5k0 qpphY6 Fjj*a'Nܶm?(TϵVVW݊-Z%K,ღ&D"H!G#155>}zG[)**=x@GGgܸqw%l7銊iď+&&4lذ+"h4ZȘ2eEFFFZZڤIB%%%L&аu\VV͖-[/ٞk|||<}tmb+**|||+**nQH nnnAAA?dĉjkk*uuu RPPo;mmIpIIIgϞMKKjkkݻAg^tܹsVVV:::zlNLK#\,T [Wj+777 ? zҥ BO>ܶm[vvիcbbLf޷WTAAJX,ooe˖9s֭[III_~e͚5?~qrr:tP<==w寿ҏV$… 5554MJJ扉SN圶YLL!44!T[[ۙd{:'N 9r$FCh3gŋKii^zōlOB1BM?q~L0kkkaOOμ9\2p Fr L4YX⧀aXSS-Zaŋ ܌/j٪o߾w~ᐁ{GeՁ .]7̟?_QQQYYyѢEߊ@---yyywwJ|y0 300311ILLdyss38kFݻw+))'<<]MM ςkTM0  n9PEEʕ+:J`llZ===!tСΤp[xdMM >mTm~mO#].TZZZӧO-0115j۷S߳?FIII撒[naRWWo֭[}{. BG511QQQٺuɓ'+''+4776775j}D"``0\aXeev@@@}z|po}kPKhNoGBd>Nma!nܸq-05`W_N!S~Y ?mZWcdž NqƖϜ9m6wworz!ma!­7oN!\ JLL,..NNN[e8`۹Vzb;x`|uue˖?nܸ?{ tʊ u!|9st|[&9G"O1ayRPX":r/h}3mTl{677oذ_~222OF?צsʍo|#2|y˺JHHƍ9sf޷gelٲ/N&f{ˁQ!T*> BJJ qN$45W߶$!\lڔdkK;z@8WW l޼}?) YXX 5߽{7pM 1lY.//9xf{8|8`Qe_:Stm5Z?+yLڃg溧 :}A*KGat!Bk߼y۷oo^n^r~8<3+)׽C p¦Moc=>> Äq+.WT] Tqp0KK 2bժ3fzDO]] BjӶnoy&VC BK :2h1mǏߞD BKǴ{wO?=;+P@CC U@@8 b[{8wDEe06}r%%5<2oWA@8 hUGkOD'>uuy:)]{*@7PcӦL'cڪ"D|j.Bpj&&.۵k֥KX[o":Q }BYPBB@>{!V8%Xg((HQ(d<(T!!kbKAAj >~fc]ƴPpEyPB@ՑQ RR׬_iNN?~OtNQQBYPB@FY`ljjԩc+*C4\Qu*p7PuDOO961md2߾{5P6@\\~Z漋ˡb,WT a#: TlIl8UMMtk^PmA(TjII+6ov9wݎ4V^^ BE4"IsXfd>i+//U] BERWۿɅoOƴUPll <[ " T…6mJ0a'i+//  T8ݾ 78\mm#Qa%B55P: ~H__5.n=ׯ?;1m+*h*` ]YYzܸGJHAc::yc3/?ټEWW+/_*$UeB燷?H3i4 b0qq̙G65PMMtÂի?~glv?~MM63JJH$\p(ә/&3.=enћvh>1r͛!!#"mmwܻǽcaVTT]QQW_ԦJH$ P: O^H$RII!>[A}̜ṿ̈G3zr3~芍B!M4';nPl lH?jj.hCOO9&fQtVV[2Z_Ys?]!$L1Re0Xf޳ЃB`АPGR?wфD\fḵ\>78 :Bטׯ9s, 6 =(T655{gCG7HIUt:qڵN~A>0`<<"=Ոm~.4e!]hA@ȶi'I>:7ovIL|iSRKia0u D0ꌹsǐ)Tt:q *K&J4HۚHѬM'=:UiSRvSB$=dHevPljj"Ѿ tÓ'ΜyH3,g2Y=TTd**?͝;B!S(c%%z'xC+. r#YPiimvǏ?de)ljhd:BDBg[uiC2ݻg͚5;@ b /_=tFӧOL[nnW99eeubc3$Ə*cfdѡOMБH$}}}  n)--Ȉ'jjjB=/T<{xB!L:!T]U7e]~a&&j\)JKKUTTP#rrrff\ť#_y1T z5HOOo:SkP5(T*| $??D"|H)>}4o*߲<11QLL}Ν;͙3GFF |@ESt(((o#M[:!!!UUUKģY߿_TTTXXx񚚚CIklllnn.ou *[gTQQٶm󈠛7o::Oe?CEE/fW ZTUU544Ǐ%}}={trCCBHWWg: KJJm8.YuMCCCEEŭ[rڕ3g#tzPPZPPNO955UWW7===44TWWWUUuܹ- BgvriiiIIoo?w\[6GEGG//\q,46sL%POQ4f0EbCUDIj\B ]K. Ra[m~|P*Bq)ArXft"i:77h4:-ccccccD"J577wH$211m޼yAVbNH88|2 6-.ɓ'p?RH,.\޽#ׯWTT|8pf;vlxxmǏlllgΛc^j ΰlvv0]y®vjɫBeq)mmmA0222??.I@ARyƍP(ǿ¾dݻp0?|Pdx<={$ԅr:㕕UlmBb9PHәL&h4͑W^{;00@^3sg􊊊`0׺P1D</++۲eKee%IB%T;ƝNIh0xXw[l&F322rt:]qq۷oSRVUNMM0?L&rrr qO  Z][[ӧK.1AϗIuѣ^čF#B3]+//gH$h=h9<>=AΏB!EdG|>CGGP8 ҋz^TTj6q1wމ'k'$;ؓdBA``3)p8ŔJmKH!TWWwUеkDJZnŋo߾%ǫ-ӧO_~K?}tSSx XQilla Simple API Documentation SourceForge.net Logo
    util Directory Reference
    Directory dependency graph for util:
    util

    Files

    file  PlatformUtils.hpp [code]
     
    file  XMemory.hpp [code]
     
    file  XMLEntityResolver.hpp [code]
     
    file  XMLResourceIdentifier.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/SequenceBuilder_8hpp.html0000644001725400016040000001007713273140077017544 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SequenceBuilder.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/events/EventHandler.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for SequenceBuilder.hpp:

    Go to the source code of this file.

    Classes

    class  SequenceBuilder
     
    XQilla-2.3.4/docs/simple-api/classATStringOrDerived__inherit__graph.map0000644001725400016040000000064513273140076023064 00000000000000 XQilla-2.3.4/docs/simple-api/RegexGroupStore_8hpp__incl.md50000644001725400016040000000004013273140074020440 000000000000009d7ecdcd420b6531d3cbee80bf600f11XQilla-2.3.4/docs/simple-api/VariableStore_8hpp_source.html0000644001725400016040000002157013273140073020603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableStore.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _VARIABLESTORE_HPP
    21 #define _VARIABLESTORE_HPP
    22 
    23 #include <vector>
    24 
    25 #include <xqilla/framework/XQillaExport.hpp>
    26 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 class Result;
    29 
    31 class XQILLA_API VariableStore
    32 {
    33 public:
    35  virtual ~VariableStore() {};
    36 
    38  virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const = 0;
    39 
    41  virtual void getInScopeVariables(std::vector<std::pair<const XMLCh*, const XMLCh*> > &variables) const = 0;
    42 };
    43 
    44 #endif
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    virtual ~VariableStore()
    default destructor
    Definition: VariableStore.hpp:35
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__incl.map0000644001725400016040000000133613273140074021024 00000000000000 XQilla-2.3.4/docs/simple-api/XMLResourceIdentifier_8hpp__dep__incl.png0000644001725400016040000001101013273140076022576 00000000000000PNG  IHDRp bKGDIDATxyPߐL(`EZQ:*j0Q,8JQdvYF(QЪEDHЪTE‘$$dl$l~`}}}솄 @@@@u! 4[[[ U d,CRyt?EP{=kkkÔZ ݤvzxxEA)Sw͚5K&ST*ZprL&d]]]鞞t:ݕ+ SSS\8tPgggJJ޽{ܹsԩa29s&66$!!!11%;;[[R@ ?qDhhhJJ^|>?55U,=zp9|Lab;99߾};vHKKF?0F!Aamoo谳C-'O~mh"\ES 5jmmE҂ KQw9x𠃃 XjÇ_hd?̘1‚Gch /M77Ǐwtt455ر#//BĔHRRIьi49|P(lnnNOO_d)啖|СmI^˗/?vح[D"QEEEFF.^c^tI*$))ѣGiiiuG񦠠2##5FtwwwwwǺq8|??6oތ߼~:od2L& ,,,))>P(|>`ڵ+55g0[&%%EDD>(88`=z4;;{ӦM7o$ 111rŅI^\.WT;vkԩ_}nhx/ ggg˗/x‡$ 3ga&%dɒh\x`tV"G7s mmm!!!Fp8o)n^gX,ֲet1 댅u1 P72@@u!߃ R?}@~pBJJJ0P^Od׭[e,79 Tԍ z{7oԍ_(+4ԍi4#J5xrL6`P7D T/k Ua!7Aȯï)@Piz&P7DJ#T_߀%An^NR~no8P7/qBFٳpz ͭT7juyyc{k/$yAGG?J_us窴=SgwӐrpx?`lLR~i1\>׊˗=o pBn dBn dBn dBn dBn dBn dBn dBn d;;;CbbDe*=L6WW:ĀZJ(Y:tqq Կ$\@u! P72n޽KΞ=Y ƽ{ ɉ5>>> 6P4K1 :$d7n… 50Uƈh- Public Member Functions inherited from AnyAtomicType virtual bool isAtomicValue () const   virtual bool isNode () const   virtual bool isFunction () const   virtual bool isNumericValue () const   virtual bool isDateOrTimeTypeValue () const   virtual const XMLCh * getPrimitiveTypeURI () const   virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const  Generate events for this Item to the given EventHandler. More...
      AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const   AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const   AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const   virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const   virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const   virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const   virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const  Debug method to output the type of the item in SequenceType notation. More...
      bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const  Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
      - Public Member Functions inherited from Item virtual void * getInterface (const XMLCh *name) const =0  Method for returning arbitrary interfaces from the implementations. More...
      - Public Member Functions inherited from ReferenceCounted  ReferenceCounted ()   virtual ~ReferenceCounted ()   void incrementRefCount () const  Increment the reference count. More...
      virtual void decrementRefCount () const  Decrement the reference count, deleting if it becomes zero. More...
      unsigned int getRefCount () const  

    Additional Inherited Members

    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Function Documentation

    virtual const XMLCh* ATAnyURIOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATAnyURIOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATAnyURIOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnyURIOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnyURIOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnyURIOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.


    The documentation for this class was generated from the following file: XQilla-2.3.4/docs/simple-api/functions_func_0x7e.html0000644001725400016040000003337413273140074017416 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - ~ -

    XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp__incl.map0000644001725400016040000000133413273140074020676 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_19.map0000644001725400016040000000026513273140077016471 00000000000000 XQilla-2.3.4/docs/simple-api/functions_eval.html0000644001725400016040000007015213273140074016542 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - a -

    - b -

    - c -

    - d -

    - e -

    - f -

    - g -

    - h -

    - i -

    - l -

    - m -

    - n -

    - o -

    - p -

    - q -

    - s -

    - t -

    - u -

    - v -

    - x -

    - y -

    XQilla-2.3.4/docs/simple-api/functions_func_0x6d.html0000644001725400016040000001651113273140074017406 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/classATGMonthOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022705 0000000000000096c7c9044d948f6120de65b2ec34b2fbXQilla-2.3.4/docs/simple-api/MemoryManager_8hpp__dep__incl.png0000644001725400016040000122170013273140075021177 00000000000000PNG  IHDR MbKGD IDATxwxTu3$$$@ QQ"vش7\uR\Wk.{O$xٲeSL8q3pڝ9@s]ʢ3|nԨ_|q{'x^?jԨij}ݻ_{?͚5n3g._|֬YӦM{w\.$I_ꫯ^j/3gonaٲehTe˖u޽|{wߝ6m̙3SK.}o^{v]w={k_nE)_+V̜9xJ4o޼gy駟^bE"v'ȑs.@&H$*IҖ-{^|N{zԨ?[ r駟.-_|f9뮼}r-+WJ^9H4i$^Jv#W_}uwt޽o߾]w… Q7|!CT*׮]+Iҗ_~y9dVg͚uwIzS_|h?~$I.+ʏ?[o>|b6lu] RZmʗKi&nV6mZϞ=oͦ 8rL8D$HDb$mZK_>\u /l[9Acƌynᆔ9q$K/4`0 ^/IRLٖ$i޽X@<ѣǞ= %IGof͚{PQ*;v>}Oiԭ[ҮܵkW>}ݻ#]ٳgͦ 8rUX 6\x<ڳp q=`gx8$iݿ'7|x_'L6p@ϷnݺիW,ˋ/أGI<OccAϖ%w]TT$IҮ]DIJ"3'ݻsss`0O<rJ8?~⩔Qڕ6m˖-}kjkk۾D)R%رCy"N#tF~(Jqh,eg<wdq"XpL -|!I6]@F[h0V(V fТQ!GL&XQc2? /[F=siӦyӧ;llJrر/}f͚uYg4hP4}뭷nC,&G"R |MI|>_Ү_{5RVVVSSo/cLn$I>f̘D׿{n_? 8rpy iiZfMZfn|O5pP5ZZ* a)nј۝& ER8IRu:FEAT*ZXt-w*rQrL&+(TiΓX`69aVjUm,0try !J׫8`4TJiv鬳κ{gٔu Yf6;;J6<O eL9*1*e FG<*zR|p8)LnӲ?PW%aZV<蚔pVJicL٣Ѥi8&uMkJ垔L̚J}^}.n3Zڡ B G;좛7o9sC=TXXXSSo\|vu@;"@' F `x\JȾ.W T0H$쟟'rÿ$b:ZV&=< ēIdn [&iZNJXbQk-z'L.u#&NZ\~7>&LOy(aa'lmՍ̘_8Hm$|B$:%J$&BoLJ--<>_0mT ^o[n04o+rQ+x$IrdZ,}ۺ~yL&3uˉłպY٬KJEd6oSTbݻ[nE )|żސ$, #.A.?K٣|P8$)Q{ ݁}GE|J$sE!9֣(tVCIaə!NDfo%wO+jU*i{}jeZ7oT6C69 mܸ{Æm`0 W]u D JK*#'DbODl FQ)iX$M$DزX,hkp F ={|uu:߮͝o+Yn;~ix\Td2$[7Sf "t=.?KImMxrH,KtJ,DbCIg &DζYbZbYrg_*I4JL72Y'rByy},Id; R)G%K[%fT (RDaÆɤPSaqiְKzc$I\.dR,&)Dj?OZDb͋$I|x $o: JA ~HJ P("I̐oQ\3D`(Pht_"/~b%%/TfɳL&%f%LPȤg*UDFc83Ln6kpzsLT(,JeRiU(JeJ%$Irz<:VxgU$N'JeNndIIR\dGx6Bes"!rN2D<(\))D(|"~<(-a9~CO01g"cE(qh4it)yHQ*RRbin,( 9rw%m$%!d Z@jl~}{lS]]W]sqIi4x<.-IaÊ̙ө~[}e/O:/kvys֭.2\U*KZݻ[zDT8~s;9x\D^oPJԜCH$$I "~ ED@  F9F$O@ď@4b%B?B4w*J^ߜCJLR3bVŢ$I&DO#B.KP(FFJ(u:q~ub>p?+tkJQR7wrEvxgiHQjjIZ%F29JޓE:CL{L&H)hw :uV:P*=zd}orrup8z≿s${ݛƍ+o3w$s_\Fd2IS|!VPȽސ\.ֳZ1=tᬬt6TT++۶56HR) eeeeEE9eeN rNG*%7ڷ?7yصC7j-9j-iZ(Ai1^\~G$/R={f,y7$)T*.h1vEE9K>\]]vk/\a۶e2ٟ|ɧ<髭mm@Xee~D),0O(rNXh0ќNo&Z8WKH4xqht\!c4j FԉȑV**Bt$i4́$ѯH́}ҴrLl>\Sk4 Ifp,Yx=ޓ<|Mkʹs<{9/t D$W^ U:޽ާ|Jy,/-Y/_|ӯuY;xpСECZtASE!"P55uhL$ͼo]@#@ ]LC:[[)8j-e.H;ΠeZj VXGK Ǻ͛<ļ/p%˗1II$Ι3mĈ~s͝w5PǍ+Bxßg:eNoݺV&F"kZe-UUxUT7n%>Yd6zVTSVf~k4q8 "ǛEnw0|PHd"PE"1'$P4zP0bbRۡ0r\͍FB!WgYizZRT A-Iɤe"oP86ATTĐ5^R)W>\.9뢢'x^E"L&߾iG\ڒ%ɟQ(j=F>q[!jjYu͚U66/d6=lXR(&"'z>6퍱X\UXI$L]6R8Lb[4!'I^o0P(":BQ/$E$H.?{H$h  ‰ImmQ!Jn0h#2j&V%F&iT*J?5Ba4jWb?^䓟{u)rI6m}IR\.םwq&j r|+jѸbWƪVڲrkwTV yqqވ}3bDH EliwjمŢ=Ĵ<;rNcYIjl-DZtX&bI-@La;`ג$I^f0hJ~h8~aۃΩ_wi3^|f&^|+~ xoy9#~E%s+WnYrO?m"6yР^"4dHaWv8SE]Dmk*ZV/ݕ Dg8B FHP("D>_("D`4xx\LgsX Db[Tzuh:Z4=enѨU(dFTt*FBW'%Z(d2QTu:Z<_;&+?[N=g.+.kѻaN+;zeLҚ5[[-֬ydȾ#GG~H$s}"p$IR}vg/8`E910I-8Q틶HJ$,AHȬm~E6]z'8;m$S{_|qotjh^uŊ+6[#;rd'9oaaN;^vضaӦGO6yߴ|*,T@'D 2,1jj^ )yMS/<@RrH$ Z@][4{?Eaa|}3]K_C/(*(ӻ2Tڱ U|Mʕf1}F3p`v]>mܸ#IZݻ[rۧRNntpHB?"DOP<`8up %Ę67<@4kZ h*rQT* ZTy#^R) Ja#Y+,\.7 d( ͛uuv}96NRd4 ~k'LB#HlÆKT\eŊ.?'8thш}3dH_%SEN_HDZ\.E" IDAT3tBS٬S*&VRjZөE$NVb_IPfL&Zu2luW {}󊊺ҤNZE)XuuݪU[,\j^#WVDۧOwy󩶶ADoo*ZX( QB @ Ѕ6N'=zd/ SU[۰rU\ҮT 1zt駗|rqBȖ-v1Q]BҾOee61,$Owdy9'nE8>ѣN<\.PUN."P۶5mŴ2ۀ=FMFpP.)|A' F< ".a/*\`0@0zCO A/GӞ\ ZAѨL&N9I$D\)LR:]s2I hD2 Z׿~GRʔazg_SS[۰dI%˖U56zF͐!E"4p`O,3'oZo]ػ@ ,IŢ=rDWL%$#d@D#&_nonbek'hV>X7E/z#Z M~x<>k֒?_ƕV>2䜺D+\.n䓋lœLW'Ivܻoڝ]$$Ijwn/)L w9LODuQhZZtBJ( FeN/eg;x=wlYwm2Js:6Dw.YRr˫=f1eƕX3]N߾iwFc$l}E0+rN8^a?r|Bnw xrN6?zo\r?nFc'S ;Nr8UUu55uuՎ;J D8K12:N<wt~HtKz{,~x<?NL;MDZuzZS Yөt:٬3ةkL&Ѩ:$|o~3/~'N:*)rNӷti_iǎfn37fL=2]!m*+b]e$IXee~gޕ38DD$t;'%O4[Mn,I}Tn픒'z)YF_۝]7k۶^J3]N; t|mXrɒŋ7݁ѣF.3kp8++J{mmCE:$Ijwn嗕ʚOZ*9'AIMkhD"'L6<-yV2u|Nh_kl7oyCaaNi䜎sHlÆ _púu; ـ=>{g0p`.sfW[It~vbqRޣGVaaNYYT^^Э1F Kz^o \~+=lm*\8_ NoZWLZA# kqT>6̝=?jT+޴<~[dI_n۝99SO-=쬳[2]i9x׫W\%^!I"=zCO ~+ zNmN2ycrNHrŊ͡P,O8#LW>}압v%% +,RNtB a1֭ɟ2-e<\S/l -϶o`8YE/Y,qG8w,8qhi67lYś/غ`ЌU:fL3,+;յjjXˁww5e^}s8xnw I.z;v=@Sk^o !7(?ߒҺp8kWH>6TTׯ$IXSQQ@fdL 8ѽ{}MM^ri^_Ca`Ji6I,ee3edžx<~}冹s(/r2:@ dI姟`Opذ^8 ~E9N^Yi]W$l[TSVfɧ<>rNcP$ۻ9/d&z<zժ2+4d"'0/x[F.t-C \( OG{rO۷7bqJQP`'Ħ׫3]/9'@WWW۝۳w(3l6KZ ?[zKNZ2 O&lR/2OӦMC$I6Y$̻n݌G <޽ކOcw^o޽L޽{.W (Ve곲ժZن,՚xZ  %@Waî .&䓗d #.'|O?i}&L|ssM.Gwj'iÆ]^oP$E/=Taa6#\rN46zEz)9Ô456HR) ܒ!'L4jU5:8 4Rr2`0xO?q>_hԨ҉w YҎ St{WV+*vչ%I2{唕D$O8_l;3rNÑtJWWڵ)&em6s|s^9y\nY.'4 o+7/Xpft9G ǀ`07~矯Fcg ~uՙ.tŞ퍱X\RXEI4*)ys {=bT\S-ɔ`hYY,CN!;ۘ2Lb#'ǘ74/W_]ӟ~GZ:rN8\/Xg?-ZQRuր.;i̘*"ӥ<`uQU娩o y^٥6K$F rNpMD&Oyh7\zFi-}̌} sm^٫W;vtLUՖhԝB:RW_=:Ӆ#8O?q޼[7䒡Æt]{jGuu] $GR[YT Y,gXdɸq"H~_xCrNp,㉖K ={b[_ih46zMFMn9;RnƜ : /4~yy?\~dSN>+t!P[ϝyWU9ͽ첓.lxϞY p8 {e¾q.'(IŢs/,)*ʙ3gΕW^9gΜLWU zJs. ;.t|uu.tN؟a}l6fnلftnQ#І~6堋e2c ǹ Gaz_~/ʠNkνUU {uu]et$I2deWx%t]xL9&7dڳ]_ﮯ޳੯wչD+&ob\.6dgsr 99=1dgu3lR)#g?͙7?cO~{p9q:}br8orv5Ϸqnjgm6fXVI{n|ˣ^ZtV~QS7>Z4ɧ0rNЪH$zjh׻7'ʩn݌yyn݌99~ssM99Ƽ?~y#Fo:L1u'2y)kn/ճ?܁]vҸq <Pqq^6nxw666Θ1+ƅ7xs̞={\.|w$-[Xy_{mƠ6gzS!O{ ]7k۽);p)7x/O7K-{zg{ϝ<>aĈEE9@lذ?|A~sEJV-x~͖wO>Y$vx2oaaҥK[.$I&{>$IH/,,ߦ/I|]w%Ϛ5Kl755M:[n={(I<ݲ]4}L&ӨQVX˸`gy&qO>_~yyywyg0LzW;{6wޚ5[3]l6+H駟.%X%mW_}ufyܸq}Y} BH$"{Emmgk:~N2/׻wrڵε{S̕K-Tʻu3XssM8~ݻ[sr\SnFZ/.'s? )ӓWVyYg 0ur!x$Ir\O=5\hS/-[V^-~ǾRڂnA2dHy-_>馛n7x IDAT?e2ٍ7SO=si'߂h4~v}ʕ^wҤI&kiS8M>W_=ᇛn)iϟ?,\K/W^y>kllY ?N6-R|#uuu+ڸJJ3Ѹrr񰼼|ѢEeȗ_~yᇥw[[vځ]?dE3&ꪪ .g8q$I7nܴinyW_}w^vN駟N8IΝ̟??Qsuuube$}w>kł~kMyo]&-^3Έb "qdΜ9<*eXAOCvw]kJE wtQNj9s\y啇̉FW^`9s6noO4)Ll_&NCM4Iߟ4iR<OFRN=_$+ ~Mv^9s{|;չwNdr.pQLWXݻ[oVv5=;8+%$IJ%WptҪK|áC.hy *(H9I|>c=v/_\iҤxL&?~5S^⊊֯_hnܸl6[WԴ;8IsF0ٽi׮_b{νv+h4ݭւ1vY\Sf [54۶ǣѸ$I[/_>Ź_|]wݕ0̘1uL#[o=e$O=Tyy)Sn68wܗ^z>$Iٻ'dItB[(Be"CYPP(+ AE/CTl mӑ&'O-eu''w |sIVVԩSW\p8^x1cƐ w}ш#|~vJ~Zvȑ#/"ɪUFYUyӦM{JKK{jjP(ӧe>-/\(^zyɒ-YY&N绺FJR=YYYzJJJAAٳGfuL2gvї^zRPQ\,+"xy<>n2nLLB&73S|!##1"Bg =bchc@Qv~ai @1r?Nn[bWƍG*o||Qulk/,,bnFSRRBrN ,6mZB/^W~-l~Νp8p8dɒjno͞={ȑ6-%%eƍ{/o=mڴ;Jx`ܹ4M/X`֬Y .|׿k=&Mt522fUy2vϞ=;???55>ܹ3EQ&Lٳg3o߾cs%S*,^k$t̹/?~>}Z߽[dKkV^`{F1++륗^*}A'Oz'O...Xd㫿IU.3CA[r4/ϒor4?ߒo),,V(FMTTiEFљ ?`̐㼁@js5ӛʒL $t4@ i1MKVøZT*e4-(J LLNss{xU^J D"4{=ǯ5lpΜ9T%*K |=v<[;:c.Dw] ڵkj9iӦ/Xj!6v 943]Trb ҔkvdV76mb jbbBDf>qv<8/z|>R0J"#s}@Y$x|FJ4-(JS%Iy#hZBPg\ (<栂k׮ νwʔ>*v{D"x|))QcvᄏT*oc:P*3Wi/.F$KnڱcΝf͚-Z;v_ה)S. Ppe˥W-5_l6OQL&Ą;1::$.N753@eeYw0*d>e=z#W @9nvNwΑ,6wu4=z} MUHD L (K)2Xo)( Q^)("6ỌE6ǏQD\H$!!az))wL9fҤI7P7uбcBnW6-[mcvhhK0gy}5mtܸq]}?::r&sRInP%I7xC|!؜)6V/^cV37,8zXK.zIW;_e$t#G$*lPDD#*"N{ʀXٶn?P(=s+3JJ~gժ>/+ӓO6|U2!::nHesnߍ,'٠+CbbBZlB5w!_ v;I#$8x|N;lU(^?f~?|vM4@N^S(dH*P)RhVNrEbPQV˅B\.JHQT.JrD G6-ɠAmߦVӁ@ %%*;!Mj֬&_y燏?;dH3%$]4j9I34]Tr钙7ZԩSC5QS&a!8r4/`@juQWgѵJ^p|~b\zbPBy Jhh@ Ke2R) W?TJF(BH$T4P(˥R)^8g3_ֿX}PJ%?{vv_X=}}w=Tߤ$#ߥA#<ۛo-fx(J*GF͛=4kN'ШTV~ZQk78ls8X*b+?^Mduu(۵mҝA}xnݒ32]wP(@ *x|Lx%cvoWߟ6s&z;s-Uh5hԭ[rvvF|!. ;10n&rnuZ9$HHsHEm uj9.4źgX󭹹˗KM&kiw?w#: cljŋt{Ν{o&| y<\sEL.(T7Ņ41.MrQp.|~t{<>z}v;,W `Xgs~f:EQ(E[ @@ƫtrjZ(T2HPHR.YlRHD"J& j(NqzCAto>T;w5>@$jnlBljYVv޲vMB@, %/ 1c:/^wQuڵkF[o߾kWC*XS rrLFMNM}$qq!<ɹ> 'qrs\Y8^|6"$DXop{<^]*2XRb!"i4r8>^+ir"ykŕ$R) $7hzg̘qlrOM-V>r@b9?P]cDŽZ+ ZBG-ܽ3GDh.nIOO|>߅WRb]IܹsΞ-<ܹs MCš5 o,,!!,!!L]2ԒVuSڮ5-8MU6j+x7N廐zi쵟}1ߵ7}gǏ]/šq!}G2mZ&ip' =8' 8{ԩBEQ(*JgHNhoDIJZ,F a|4#c;<4dH;kii/y<Νn$)~ϛzUQ鯾ҪUPX8'{xc>=sܸnB &Ǘg:rd.]2XBbLX=)P Nd|>?øYlVlw8&nHǺ'cݪGHRPI$"B&򲰑\.J T"nFC N!Ph*L,)7嗿_x,^e_*[*]TP`}u۷(«B ,Lm21Zs]$uԢE@:p:+V;? 9s1|BB w\QNNANNANԩg }>?EQZ">ސll|R\vl,9曧ӛ[R-ؾ̙_0D"׿dfڽ;|X,N^$==[6mb) ?l_۴7ohN ,䜠q:ݧOH)'iӥK%~@"5mlLJh,,!!L]/@  xrn|>NE3ߋG}6q^trZw$49DDjL$irDPH.bP{Q&+2DVBPBF#KP[wp/y9$Dw-?ҷ$&+gȜ>Eq-^D[gmK}>yrf۹pw'uإKR&@Q3^~>u6{|ŋ%^MgΘH)*JGΑvM͛GdxSKz&Y-ȱ,Q,Z,XK]*4Lj啻%tʭ򽔐LAFhU廐w E(;7[~ u՞}Θy^^99r?~ʁy_ԖJ99LR|sGǎM6lx=ߡC~?+bS={ٳEJJ$2P^]dR)T+z 9';y2ĉ'N1LVJYbbxIIeXPp[n?D:*U?͍d騤PȪ[oXbב#/7hNM'|7O7$;W$ nvӻwl~d22uKle4jPUX n]$.\8"11^B jUIĉ?rDމWΜ)x|4-i<"%%*)HM11!EQ6l6r^qqt;Hp^juy<>#$l9\5TbV+*MFJL")[T*iLR*iX%R)#$lQ,aTлΝ.\8B={N¢D"1x)q4y նmlϞ-mٶm,^Z‰{Ξ=Ff!w|4'رc.\XBQVHN6ƦƐސАqqrYq^q$T["$pNY.ru T"trT,K D"hbPRi"I/RB&5X,ReRm~qQx$#cuStI他VwBE@йsUU0=9?xr׮WFDhkտ.]u j=Kl U/X0w+9'Iv;w\Sǎ]>v,+N[,6m޼y6mRڵ&Y,*u+?a\z98ЍLgjUt0l47wVWY'O4STVCRKZ#N*رm@Ӓ]23[:, /gyůl9v}wʰ%AܖKJ#CNȻtt:EVQ-[FlժUtG1<.'8nnƒpRp8{Yc1Hc$R&Ke2V+H TJWKrDTJ9 !!w}Bi>ݰ|TzzZ.a+.צMGx)11Ҡ!۹Ĝ9|>ҥY.LVҫر˿~NQѨ!C蒓## pl6pp,!$tYC8c.4L"`ץ*, JZdbxn*L.JbٯTJ< 8\V/ZIK{9?BQE $@ ^(@0g=Ӧe[aCevܶϝ;Z-ZDj6mU`]`'<#u:A\GAcr=z4. 5 o6mԘ(Rw)?ju^k۵>pʂ#ނCt:ŵUNĵm7cf IDATt8{^Tdۼ1lXB&?RXh?ԩ}vaٳQQ{I$iZBF.I4MKȁL&VdJL&2Ph'ww!=Bǯlx\PܤI iתU4uA0 }#FtXpJXT9'|>ӦxxGF۷o6ML6X,ldMy+-u*/{#]hZ"IZ9MKHtrrqh^ֺu̢E#.{N*XI ԩMlpX}~nޔﺠظs}R+V<ܾ}@S#e:pÇ/9rnri۶wO>""| \IƲX,N\tYcqeWuJIR6I.RV( T4Y$ YiNWvP_hXӼe?X]֯…8F쐜w]٦OlϞ 7@݂S#rBGN)$&uW|iiMZ|u{&Y,epOWeOhʽlD)THrfw|1::Z꽡CLM?~ C6nW8~:0.n..==!=iǎ h А$1pĒ"aʎvngIaXz*)22L#%BJZ%T2(2i\.j$Qꠧ'.!HL|fa<ЉB|>޽g֭;y1߯_#:ꕂBpkS||<~|w!xGs?w;\x:##;wn.#,WS57&U׫T},;]Ht } ڸȺu`4jvJIAKi^ɒ-CVV#F9*dbLL?sXֳwo:y2_*'t޼{֭c<bIr;eq%O9qccfcp;\嫑@B!hjLq%J%hh\*K5q%ڼIkΞ]"ۼĉk.\X74 ,پ'۳txfĈ>5*Jw]P?LևZYXȬY3m[xksl?xrǎvesnݒuKٳZM]W$8eZ,dbҴXUT?N-;z /-Xbʕ?>߅4|׾|5…O?VW)w5I @{5]V| 9>|qǎ;v9$Dw]Pyheۗ.ݺ%]Q ;+{^|W>lΝ'l9C'쓙*11!s8`hfcEJ6pp bW0de*wWRiViJRZ<"B(i RTJJZi4rBR )/\dNM廊S×d?g7?pOV֊aH̙CCs~rgw9PKsAiزݧ@FF/0 ~<-N#,'y+, g6;*X4-iV Utt\08oỊiڴ)U@-Qd製/aF8n\ׄ0:?^,Mڗr6 T{8ϧ! wo`ڄ. jId,'Y,-u XjFBb%2XU P\.΅A(,ܺ(=izzӗ_/|>ݧO ztwiPE(̝Z-{n|wrNw߳ mztk F])VaF]Ye Y cvr%i4rZVaaꔔHjj5TqZ\E"!/b;EQԌbBc<ڹĪU?e˨cс%|Wuv{_xkݙrB:sO}o8th{ w\b\ ^M2%Y%rL~pTLH\U*ZĄTFCrT HbI,Fb ))S.5 ]I(dfluX{.#]Ǝ+2<.2R׳g ˁ;HaYϦMG?t߯Տqذ4 ;* cY/TEQӒL&Ѵ`8VNѴDUHqW9X]KwLav|:%%Z0￿OgN&]/Lٶm~#.jӦk~~q}wbvvpGU-q$p`h%W"JU&BC>\ڵ|{fĈw?́ N X>}ZΘѯ]8ެyy͛g^Cu5U~޾xBBɽFJZ['qe=#JU&>d21MKiZ\>g I&^%zXNFw DQM$b6TPH37n}]޻g'%Ҁ7Rxq-{5_|ޥ !t[NڵW޽S֮}K$@w]ufpV>X\ br%DV+4 hhZj5?+Wi_6V(* JZ$pwawҚLڷoߖxq땫W?:hKn}{.jrNľrO}e=#Gv\f|bb8Eq@ Q" Xʧdro.I,Ik4rVhdJMj5rG pkN(*iMol;vu61ӧgiF(%%jY޴wˁM+-uX(҉{LJ2>Day{5]|5IްXWrObGNKBIѥ )+ -J%V**DȊ^œ8x#Ƿjգ|dgZA 篿xcMG6 5kBawM/Z& qoS,=dGT"e=x ʟllpW?H˥i)rrVA^#@pp!!S3l))Q|WRJJ>|̀7>eo}{ $B.~o19]ߎ'^|k2ĉ= j v]2YZ.EERRr w,HjJa-, s%&֘S֎ >hbqX,dT9&/ ZN QRLMZ"V+S3uze2[lG nWR7Lsɒ&!aΜ{vM.^|qH׮ /a|5?_VyMM];ld:lKEi QCJz2!!ʮKZ,^BCsѪU5ҲeFZޭ[ / n& SO׷egߍdÀU((N}gOS},3@CuĘLVq703NL/ZF?QXh( YǭY3С l0AΝ{o&|w=V޽b ZG~z^۩]_Z(-uRij-<.--K57^d߄ =Y80glZmXc9[Nl:Z b{qn6;JJEE6r`6;JJl ÖZM( eH2$DټyDBBzBWʐEH%|=(:4ȹu@ :}/W %駿ܵ/uiϞwY]&] cYOI 0f(w\mr8~T+ UX`Pȩ^O"M^nrN MKf?ztE6NffEFDE nQH}={N#T5ޜ}ܓXC&2 &_~\D]xN*FѨ!#4x sh8"#uo9fvݻ/z^SfTǎ ;w -7f/_B2d21&c8VX p@Rx~N Offnݒ~{oܲؒ%Қ]ܴ}wø49ߵ-j9'C)wu3La&Z3T0Z?И߃$N>X p#hZ2{#:̝Сo>H׹sUd|7e(?ptaZZ<ߵ-j9>o7߅@IJ"[al()JJf+PUhJWʤ$ch`PJArG5EQΝKOO/..ԤI?wG{n-G_ye|7**J'.^,FΩj9ۏigl6))M&l.; +7TP֭CCzRW !̭#~II U=W6AffŋGFD{=  cc. Y5ҧڏԹsS~dbL&"[lІkt:Eݻkϒi44@  ;w(*""(s}G@GYpD"W^tiqqY_|E^en]#9]X2ztg;lvي).Lb{I1%%vOvBA׫FMhꮻ5*lEWI$"~/D߿?))(sCY,cǾ⋋-(jǎXvGuر?|ҤIӧO7*ٺu}ÇO8,._|ӦMf9;;`03yjC#һwʮ],^e֬/6o>tiѨ(R)-߭A z1w߅Ms&STd+.XJJ֢"[QdbmHDjQF @&EExG iw!7ԩxMK߶vڬ뾾,N>H-ڵ+""Du IDAT;v<ӿ@ 8|p=T*-L.R?c=~H$:}4EQIIIǎkӦ ߺukEQFU Z~´i_xapvv5X,z݇.nQ#+βZLp-g21&c: m'ȂC""iiMt:Ѩ%CHI$¿ޫbTt݉ݻE\\.J5… SVKj5EQq(RoRR9hѢ˗YsҚkgm';Y"qj0i xIJka!c21Wҟ +.)KI70ubsfӈrE*Sv~)g LݻeNMk]vM%8TٙӤuSNN B]ki=y/23.^<{]@C<ϷEEKQRXh3 ÒmB 4TmcCCUpMXh(2~@æTA >EQԥK?Jo=p`jT֮oU*EQÆ ;wjZ'NرcǷz7_jȑ#͟4mڴ{ήfts8~Ç-Z4Or V8 V3SU)rvCFmT x$ hZr/^g;3o7IIxXrWnҤI׮]###m6EQ ,6mZB/^|#0aBϞ=93o߾cs%S*,xO,էOYJM(9'ϷLL^^X Is,!$QX:2RJL ܹYd64T ӄ*ډ@zkfcveI 9 /@rr rr(W PvX{Z~*7_ gΜ({*Q"@m߿]w=3}g-6-sƌx!x"[AdY 4[E$STTѨi&&<\ #I&Q4Ye9Zgs b\H$ThVTDjݮW߼ Sիwϟ_Ͻ昈ꚓu!q$* t$/6L%֭cO > e=aYZVbqre=V,SiV'PR2XSh VNDDh7Z%W7Ҵ8,Ll-ӯ߫f5P(Æ׭EȵkR]nF4iҍ,E ߽cDŽɓ?weے1QP`r4/RP`%sv;GHbQԶh٫WѨґE)LbٲEQ-,d*ĘXòX2dbҴ$t:MKZy\$1&X:R&|5ESX77۰ai 6焇7mcmydՓO3 PoT3[,,!{ZEd6:ZOOO0F&::$,L~:.KDH%L ƘdOqO*dX"q%K|I&Ē^HD<995d]cvMKJ-[`.I>Wxh]@@b: B2`Ϸl,Cf"#uȌ&M4*RVa\@u#O# *ĘȩN'ozhȐv<[@9EG[/]/\8.<\\/.f?ܼy̙ܜavdnodq1rɂuwJ$޽[+"BaS>1cE4] |1>9gΏfjmmPHq)IO!5뇴UT*vE>.Eһ6gN\Zp8LG=ogO>jb[c1&׫\sRF¹Ř q$6 @gtέ[O lssZ,6qR?T&6A_bˆ+Xv jkk:.}njPȚgZsr++0P҂ д3nΗLFdݺg"" =!lz 3]Ruj+U& . :WX4,̗ Jn1fk\KT%gb(u#H%qiFtCk˃  Ν+h3d6;tԇ׭ݭW*-+Vy1))""dwk2j {oE{MM755!2.7@S"#W?YY3x+XsMTjg!CaaP&X@gL&Qܦ9K1>a$m\.Ƙ8&Xc=@E9ݸQWWw/vv۶Skb 䜩ш; ;r~x޽W{?S;Je}2G7mz0+3+@Gt [%%Uŕ%%j &ף1=¤B׼q6Ser`ɵ-DMHG 9R8gΏ!' bs Fop˖d=\. %KFۗ}:+T*<8VL4([8_NYb //): ;jcIIeIIeqq%i*.RA=""dѓ&I{ICB|J e4Zz)Nk0d4Z7#H:(9KT$~~BCnթSr=f3#GUvӧ'7ȑ78|mzAвfJTB{7i{]i  nߟwoiY"w!CIMM8wuD'1LJ?~{ 9@;07n otzpP]¤Ç'DGDG`k[KFqon1585͙Xr1Q#H%q1 rjҤ-[W6w?ݲJvv??JY,-9]uq"66k^pD~^,&& &&`Gj۷/?#c[SR% [pt3ijfPWhxf/+)*(*()rƍ: tZpB!SPEDBB| 8Inߚ1UWkV&+T\ɭ\.Ƙ8&X71[ رkF IHKrseB1^ُ4qs.eI;7TF}Ǝ8rdbsnꛞ> =}@M;wh̭IIJe wS `9}zSOi$vEބ/ ˕.UV\|ҥ˗+V=e lจYDG?ok/%ocLJ[DpiDeRXL,Q_R_oP5سFD\ٚ]UͬVʕ&O~@,տgo|ʕjv|0N-[ /?~xұkח7-`>r(''w-^TV*ں2|0rY&}=aWk> V94J/-.(YXXqjuAK*g=` o*FbLzZ)בpoΑp1&,I2e2p5 C/W2tq9s|ͯāX,OT[&J5-\X^snt7L5 NIOI7ǏݛnK W*{N޽C_xɯFtÆrxrNа Uaa_7+*A=bbҘ@X@B5Xr`Fgp$vXr1Q#Ht#eOԩ=[?8Q`Щ_v]"7۹snA(*dvCM/b B煏?~_d [zP?&%KFۗ}:+T*<8VL4( QQ|'XeˬD;Q@qZmA͋oP-*0-A(ydlذ{####1?H8ocLT%J_]ukCB`&o1&I%||PBBhUvܸ~µkh VõSQQkN"ܯbB! mQ|/޽{̙knj| JeT鴄ЄЌa7߻7ڴ,;`@!&/ :0O??~ر_l: AP_}#ZAu…7/^qj @ILL@\\`tt@tt@Ϟ 3cLnw9mK5DHRɤ{Q@G"رc|o߼`ٺcǙ~:t=\|RKY,FLΜ!*j/V߬Y\`8_ee5{ۗ%&?th/Lx;C7SU?~Vkںuvhhb4sZ _.Z_4cIIeA j]ii5A"7&& 66`ĘvI6͵R#1&d3:9-D,dd":شDBBh||0Al63-oZZ_߳BWRRL…ΛkVMp\ޡ n+(SD"-Jt:-!!4!!4#cXA͟6-K$=d= eBl2{Ərw 茐snܨ-;s47ٳej+~+X*73*cL55:$I7Xr1Q%h'?x,$^!!,rNɓ x5#F\H;V̞HYY͞=ygdl?KrrtJJСd2kv'ظQ>製ꛞ> =}@M;wh̭IIJe om.8gݺgƌ|ƌw:tI IDAT(tY ɒ'Ϟ-tnw墄ɓHHO^XR Fh5vDəXbLjp :jcnCLTdҽUU={JJ{#y0{#ee5{ۗq-))CɄޮZg^ZBC}r< 9'ySup8QrJA瞠~"~z`߾ \Wr`Vo6[/L,Q$jXr1Q#H%q."?on >CO&,[ח/$Y\C[ MO>Fw;\h{f֤p2qĈ@k[dԵkw;wԣVkÇ fѣӧ@GL&Qܦ9K1bs[a$m\.Q$1Q%>mgp}AA~"ZN +)`UGf~{gaOV~*$+__~ZZߴȑ?ܵxqvttR[Lvp USx⋩SyQ,y"N;~c.[,pirry  Io]k/%oŘ*+5v{#ܦIo1&6 Wb1q8?tzԨ$:U JOUYÆ-i>bNIOI7ǏݛnK W*{@Ne^=cĈ~|g shXiio[᯿\ԯ_ҥc ' @31-n\5c2*R#᜽pn1&jBI2 >+ci:={>\ZG;_z|Ϟwi#l6399:99zɒQyygg:, U* E&Skצҥ9of4Z~p *C# V(dޮjd46Sml_5D5[r&_7=$Y"_N';tT{ZBvw"9~;mժ{⦅KK.ۅ?t:-!!4!!4#cXA͟6-K$=d= eBSプ/?kqqAv9Q[۷=*0,6mC$$K]36Suj0I6M.Q\cLJ,l@`srr~)Bә*+֯4mGbbo~4\ݒALL@LLُٓo_~F$'GK&5*)7[bcB]@4t_嵇]ܷ/С33G3<F Wyd5O իgX'#cӥK{\.;%%>%%l?^wouG/.2$^ݷFyLJ5ӏ>=poB9@wJUv~:]TT&;ψ7utΑpnǘNK*Zk֡Jnr550Ē&@'v*cԂJO)4-#cXTTܹ*fL!&?6dɨ}OgeJ*vXѻwoY`CE=ph l@פ՚36+2PL\ɤp|e-gbo ǘ4p[`$Q0)5͙X:-Q1&Tdb,@sgn^ZGQ(d{j5921*Æʚ튼N%$&$fd +(޽ӦeD '55A xh~?J At5'Nop<''f&̛7ᇣ0j 6͵R#1&dH87H8u$2NǗvǞ=yӧ'{p͈YII{>`\ZZ_oW!̞HYY͞=ygdl?KrrtJJСig˖=_~y?W`o݋R1UWkV:T$jܛs\.Ƙ8&XX Fw;\h{f֤p2qĈ@k}AΥKz;C :C.ffnսS<ϴ2̋eopzh\:.g2ɭR1bs[a$uX̕ET/%XHv={=eATvArx۶33=ԚY9h.o6[/޻7ݺ˗ TWc1cYLN;PAܜ9smef^ @sʕL=`JHHȊ+]EwK$Nu1UUim6:T$oaaRdƘNKTbWFE@7VN(䓉mXᗔT۲lٲeVu"">ݻk`0^=Zܹs˛sHߟ]S]VVa6ۖxvܝ5O .ZlϪrN^X߫W? \m.ĉ7nLKKv!Ш-[ JMLk,ƤVmnH8oH8ud  vp8 _EDW[l9zW掉GDڳ6t8:uKf2@Wyfoڼy]EGAŕz)95c՛K9K^JĒ[jD,fYϔ)wwۧ*@ :ouɒCZ r&qonߜ%SMbq0I:M,"E%b.IXHb׋'oC(S!!&+k.\r5@~Ϸ#}vkεRo1*޵6-,LJMs1QHG Б]p(={j,ޚxְabc>|_Lv- C :k/_z!'oŘT*}u\G9{)Q#bLԄ8d  /{mӣ(2^VV!kt74miɒ~~oCwзZ[/%cLzZ)ləX"JH8dD\8p` ޶ A/B FL\8{SR:tL9@añk{CC^x{キ`.ҥKQQQk7n8a„9s&11S5hHO-Nd2@כO(m} /,)jӣh7|s۶m7o 8qbff&I-[=VgB{r}ILJJ/<ī֚du֭'s 9' v!87mڴ)..ׯ_UUwE%qA%%%> u T#3zOK^JBXNMs6^q8,+`}n"6p`L;KT!^xm۶^paΜ9555}Y SuOP,]t/^`g WVu],>s;{ʕ t8w܅ ݛRXXEv{uuukj[lYcr\.KV%" y ſ $v->\$ X msN?ݻd~)S>'dqӠCq>|\.;OZܡ<xѣrqbb hƍ2dHllMh~A̙3穧j<̙3M,ҿ%~TWW7m4??yF(Wd˖- X,~ t@odS5Zjǎ111s1LAX,W^yE.+{yU-Ms8r!'h/z9VDDsDVr[ PZZJOعs}oC5Kp8͛Ds ]Ž9Rĝ,oo)xbb:󐓓@dDD?@l򸝦讚wg",ȣG/{vY@ 6<OJp8<5on„ A;5DO?t>`555O<Ď;V+A;v숈HLLlbcǎqM?_^^~ĉ]vٳߧ.߿'-[sγg~>m۶,,,\ti: XjΝ;srrvEm\\ԩSŋ_p׮]gΜzלU_ ZJ{l)~ׯ dwGQ!'4رc>&v ǫzQt: jǀ ˗]622!4eѭ-Z4i$?:.--mW\Yhь3t:]m"Q󟽎'x|YptK/qUm3g~UX6{}׶[bkT ;vdVUU9? sQWqAa6 (**Zp8Ç_lYӋ9k0 #//:}H(O1 IDATvtQQs۷S=4@:ۜ={P޸qp߾}nOAr86͵*[ |f͹%@w=?ܱLh\>;z`K/h}ҚsKzرzW^ c}o2.\jm6ۯJ1op׫JDAA?q}!wڲpxuKZ|ӦMy[(Ο?VPSSb>Zݮhl6<]ԓhQOi^P) |ͺߥxy{oW-~N}A|;tdҬ[q㾌{mΜwk+7nhZh4Z>}pmDŢ21cl߾j&Mj" ֳgOldddyy9uZ(:zUiiiTqqqGnA5V'AEbcc\Hh4ZJJJIIINj3{͝WE/c+WNߋBB}P鴶]6nH?_ٳRrf ֧O]'O4wu]ę:>v ~zРAbC-E50N(޷|NNիԷf X ~+b߯hσ*6m6;kEEEr|o&A=zp'H$˗O4gffN0aذaW^mz`6lXl`Y@W_kDo~226~=WЙ3oǍG͛=_S'- h4ڦM5hD߭[j$ph ޮ]7%$IhvYYvh4ZFVkXld fljbj(E5YIz+Fզ4'I 0 d2|Of3\6fTCeJL:a2TI($ @@2 tֱ55JMyykׯUVtں:Fc2Ffޫ~F#8q@ A>>'?>z{nРA\S$͜9#7T ֧h<^|E ;㉃Dz RWg0,FE2*g4ZT*xdU 7]Vp8Ld$S,$aJ$O$aI$\X%II>ἪhZ˕}h*2QZZ·<N|L+4 `1-j0/1jfFj0&FķP d2D".rY<fIY,:O$$|>bѩxlb1D". 9$YyHU?J]S]VSU5^o1Vj7bi$b<_$s}|xחL<'d0=zb6[,F#Þ}v ۶m!l555]-4XW_}\euO#@AΩG?^\\xpK(|V+4zכFFcNhFgFcM&UDcODwe$+0Pdb,d0 a2nFpU*ZmjZmVVjuuu:ڨכzbs44=X 㱥RHĕHx~~|( @"DPe2[N]B,s„<0iK?xZ3cco?wfk*vm:PzJOӗ].tkbD“HDLJvIXLJ'qFK]T)gߩ 5wJ2udj7YQT[), pX".?DD|}|\SRR&T*C 6dZ79 ++ޮ{,pr 4zUMbiOrӬx<?&&tbTΠRNT髫 $K }}~~L&KB=q>/rRcnstpɰ' o;f7_]|uI&D]" II[-^oPt&gnR2 fvR7Jh1,*lpY.岄Bx,#qIbԨJ>#\.eK$\ds8QԩC+~%%^94@VDޮ]7 ]@'c0u:NgR :R}Z6h&D͓&IQç(Q!I@@)x<6IRQ6I9^p8LjTGKh:=?g[%Xl6;n4 ^on`}|!!@ T HIvoA'N쟒ݪŴƍ?t} I@80P&=rHwt `ii5uɭ[&'j:b1bXkNw|M;vSj&nDؔL4j斍䕣GDy]Je :y@ \V*jORWgzI3TLejNgLQ}Z5i4׾A&qB!)b17(H"$f$E݌oʓ&NDޢB]Qջs@# EZmE3jjUU٦Z@ @q`X.2T84p8DQѭE/Zc%&݀?Zݭ[ UE-uEחK6xc櫯;vyժ^  NÕjv'L(%AA\(PКP#Y?՚6Q-Gjl[6xԣn] *pNg~WP\S "*uӜSpOuh$۵'߮ B E ~M}O,c7MXluuZrVW[H FE"/LJ'|| !>>|Dc0hTkj]ϫnix*j^oakT*7P7ooRVSiʣG/_^՚s8̀( @&Er(<\*Zk~mEE||j5{Ρ{{uuzb0$@u3RWV85֊SIVs+uZ Bgxl|>G,xީS%"7*JGDȪjA$3eee-۔wر߷1eef [՗fs0x cǎm6[j̭.8""dޮ/ŦjZmh7ƨNKZY3tfiqWpޙE]&~;7 0 nj"'h)޷Vfjiڭmծrʬ$+QӰ</s>0 4ϧ 8"AT"ytO 4a29f4&drZ,.y-*J5=]zKl6ͦXnx:Zm3^kh054n|>],f8b1[,fq ii ӮA "pŪ D"Ž`0$pGЃ]0A  7= {~m/@ōP2\Jh }n'S(YzpVoӧhA~߯MPd,A`0Nzp Hwq,,t|X,& ]\Ik;!(zExZިXD([qP`"fSBD"Mbۢ΢ͤ6Gl-ry۽Jb2)qqD*DY,*JRIqqD&Bv>E(A @ p|h-*aؤ_+11q޽;(&x<>>>﷓;;h9tnH `?0g0E"I4D/Y6zL@z0X45@ ]D΅Bt8Z*n"Z?)",hPdm}VD%a4Kfdrv-Ep8M#G&1db]?VxJS]u4+pzBD“Hc$I,f'%qH{A`p(&bt@ 8uj.VՠC-rE_i<K y%K ?Oׯ.5'N=`ׯرkii|uoUUid=qLsnX4A ?^4fLщ= 曒_߬ >pGnCqW~vBpxoFC&$Dxh@x7DGm &,ɤ'Fb"#&ht~HQB!S$bK Z_7.cMHgu{o7NT?@ r[t~Ѣh{b"@{9ov rihhtMslq8T*SRv*}Z O_|q߬Y+>|C?oJ IOD{ H{H88TWg͕E{,@ "ln r@̒6:pxm6v8<8` NIK ,LdRh42NIHqqa^FlmiL.a08d&PD'˥q46;.%fS9Gp8O3`ZJWuu:8<+%^Fp̔^J 7%GlLׯ뫪455jmuc8h -FK|!,3o^{K]] NTb0Y2GKhR> V{]|^AEJm+@05J\YQ@ @36"N ڮ&AE"\.fdAs*Z+-t6f`z{0[Ȟ0!= xf@ d7VUiJZmz`p B Xѣ f%'s%L&:xևJsJEɤdB\4gNL&D|r/N|B,ILEޖ?y<|M. ti~w3Jsݻa΀P( >p8p)0$_X_^ސՃU R"rc(p8X*iӬ&O IDAT˖۲iJ|O inlt.3 xqyc䭷Y,v رgLVkU*ITjNRכ0k+ Gh:RF BPQZ]СJJT7#I$<}m-x:@k53x?c0Y[[L&g쮎1Q@j*zwݮȐEv3]>_uӑjbģtJ; @ ) Ӄ2Nj*_pd ߉b$ {Ξ~x| tתU{t#))<ABPeeӢElR]Ʉ s3&h@ 3ހJvbqcm6yc L&%'NoM]b0t:F#a(o4:Zht vn29"'1 88!<9ǣ  $0)@sZ[S'j`0b1+-M .&HKD T`59+-^oA!rrhĈx>ȿ;<G޲eoK`:rraEFż{ܝ[ çNUǯv[rbFF1cyJЯ^In׮۷ŏt鸚;ybQZn6??ԩ^{={~b10!E&׿0!2%mҤ)S#pkNYb§>_RJH`@Hͽq-SWWT\ܹSbPI2()S/ɤfeu. Y.Xu8bZmD-Dӫڪ`i-) J%dHA#F#h$9F#[@ @ DEE#IMLdGq R)L@BMlv"c)?'͞:|o Hx=l ZmZ݂͝X, s=Zg` @ @ $`VX\`cE':-3 KUg-L&5`np|Ut6f4:u:0FChJ|>ádzAOr\.ˍ{lvVV6)j`5Z+ D"i-^k"zhp4JM &\ڵSd2щyd2_,7{jCU\bQ=jx3 %ÊŬO?݈ݹӧklap; e\p+Ua. ;v ~嗗t?'S[/,ψ"2ӛe0۶뮉_57["-Z4"tzϟWԖ  "57W#ETMg{})A`8AJbϗu:; D">%'@ɤ2N x9V_o:Tyyѣ6Go&B1FR'6_1Iԍ41`FDtK m.#ǣLj%#H$]M|w1rΓ^ `0ev_o `xŊ sFxN! FJŭ 0OWpit22Dd2zN@ ߴUᴞYS%*ZJ@],Nl8sms)&Zbqt{0E e2ann:K-2X3 FRSUhxx<65U ֮h4:Kͩ\ BR# d |><9-)ӻ[C^:xFcMJ̙3z۶'J#đE׮pX<[w}w+&T]n<A? u$zرk<Ν'~xFR駿;wFcLu CKgfT*W-Y2'v_g2)h+_$ QHU(R7m\i*.Vm;ly<ڸqB+{{zj#P?- ?onK~ nWz{A>V Zm,)Q55X; /1HJ `Dws/.ص+TFTG Gv)tzu8_W`0d{,y81ӧk%W _ ǎ_Q@ Cg{ɍXVlv-+b4'X ΂ u HKL&%v! ij2jz=d8X,ϧsx&G92ϧ E"fl1!J tj^oGD(d#]nQ zR&6iJGprrH.jtM2@II?WAd+'ɑL Y$ڵsC=BٲeT'y,VTT?x<ϱ&sd/ WΟv(@ n޼1$G?⋳[. 0AG -< 6mBPeeSITcDZ78@PNv\D7djQ|zS8|f-I8rd~sEV i4V5Jl67؇H3;Pnt_ֱ&lvNΚNJ$pl6Ŋc,ͦgl*g1Fv{PJoVОd֔`3DXSގ͞T*r=pF#$FM?=@ $&ra$$H$|m~„r'NT^]lh9!PH@ rzȖӅ)x>;xZŢXZ[sY57[FwJE"&OYYI|>](dx4y< jUYY#pR)_.[7B!#Ì6΀|UUijj #7WvL)x (p}NU^<;j87WPH'MJc0+ąHH]cZm,*jmHğLrrk]zpdȦxi|hyq2Q}o{oաRfFT8P&h>)hW4`04ùfqqh@7X^W^ iա"-ȍ{<~T$]# d2]alvk@ NUF.Btj*VQ@zOyy޽et:L&zwݕō珙?L_HĿ޽99#D ,BP( }W߈Չ_p&MJH4_NM''N(au@ `{,@5&՘L&'ZvPhW EaL j/ ҖH ZӘZZ S 1>)299xf|SuV^=p4L. bvc-zkX,FH}KERq}taϞߏz.\\.mݺixz =xis:ik3Vs0L SހFc; I6;ӑLCu~:+RUIIjYI%ge%_KkkJ(M55ښ`04\.JO e2!HbYYL>=cѢ捉b[~t$Al6ϲe]پ}=LF,)?T֩t2P[P(.h4ryk*^~yɓʕ+'b]zITUQшb@x:5~67[@P^mɈ %%'pe2a&Y.ŀuuԐ "աTlmנbf;ހq8<6fs^m{v<`fD{Ht:dLS 2Y[NPh4Iz@ !?|`ɒhymi6͊@ݻϾʏJڠ|pŷߖ\ܔ??kⱑ%^o3g[vv /,k4@ /\x/e9955i `sgR~+Oo}l![7椆!ʌ;~ ±@ $2&dr vi29۶8FH`r}b0ͦ BQzRv& SSdnl476L3IYb1;#C8c<1g a.]j()Rǧ,Y2.;;inPvPI(ZXU"(@̔)OɄFi]#+ ,uQ7Ϛ1C9~(}662oݴgۭS(Rx.]TT IAjuc B!Tdt8<.5kwz`ϞG*_|7|όxq%%o) 7'GPΜ9"1q@}D7jQ54B0KH`%'f>d‘#dRL\.m?7SCZNg tdnB+BhlEHQ62p][ǀ(TLU7!$:EK4]F_eǀN \:\ @ dr-hAD*;^>L1 R4*8pa믯ɑFN B]fͤ>~)47at׮rF.6yrZܔ9͜9 /_n4@ 0! LNzL&шuLNpd<X $.q8@`j՘bvY|+:mV&[C ۘL*5ΑqJ oxpysΜ9}z7 'Pff<橫[BVUi_! Ld\~+22) —/7U~Z}B;Gn2w1"OlyG{woL&l6_Oj3&d8 OLJM^`t:͎3vu۶_]kcoOri+r:ϫK|PP(Rsse99Ү͒ɤ*KH}JeP*5ƪ*Miꫯ ^LL&[;d2QR'2ތ:^<С4F3(C"R@JH`A3u=vyV[j֎ywѱvɤ.Xx4fs[n4, $EƦTjb<~Oe IDATˋj "X)2AQC@ !FM6DŽ甚GDC)Z]?\ycǮR9sFo<+v!׿pA]XȘg2{<{م ҄ǏWq-[wL/?xa"XZi{o]8ymժg]@ 2|׌.:G 9Y.3|'C_Wges Fssl4:4I,f'%qbvBK,f'&9>+ ӧkΜ.+zܩS'ONS())hZ]JԂĦzS8&pR)#⣞fs /8pI&'s3/ "Z]W} %^o ;Ϗ?>[8m‹'NOQV "7ͮveHg`dD1`áʞz Lk-D_\,((;|-hXS*ׯkVVzRU9{5 2 4zjmٳWO [7G70̲egaS@ ]A̒4d/v0"PS(D088L4yrzgu$F I6. II\5}zXJL$&b gkZN:qjn_Bkڴ5gڴ.0r+`9(a0))|{]AKFphO7z'*02hy4fsG6u_;r\9݂a;=*nl4ߞw9/̙owyO< (m4+]T\,)Qmvfsxq$ 47W6ztb,A LYi:*?G (Pɜ<dR^d@]TjBoy>@B"I0d|(>eС>epΈ\H8Tl6~45 @^`h%b(в!]j*?$'A0D­5D{  8QUXx*<ԩ۶??Fţ'ssCrBD.EFV3=buDdRL\. u:TqRtv 8' H{iiNgx5j-4UdyQCu,3/L&t#G@ڌ(U*}G1| eeK?plvN -Ѣ=6lT$bnݺ|Gf~٩;~}Evht>\[=A!3S,;='@v-* AylaGޅBPHH`D #^o@Q%dՄJHkH$dnb"tp8\^XTTy˗q8 )O1C44PS9RMr"dRAU~~\.DB!#hfѣWtP(<~g,^<6nߺuh 6 E~d?ywvNL h ۰!oɒq۶{d#GGwT=ku6lCD6+KJjm#T*13SPXxD7QpjQ54B0ɭOϧGq݇L&EM:TyyѣF3*րw'ClnJ3Wj 7z=c+ #f<6ec08jk>(,`P` 8`P 2xRAR@ j…c=HG+=HUTd맭Z|Xॗ~j Hő}>a Y20 7!C:--''_ye@ x<~L&hNg'"& I$bx<CErayjkuJYMfALI%'ssseܔDe2c1 8q}'O**Vkٳgz9Ӧe  (ǏUMee%Z#pGJrcwYd駊ʳgkp8l^7VΛ7&E6nڵM2WőݝXX,#oҾsY3F5 W"vAjcIImij | 5J+S(&1hsL*hC|ʠTj[Zڳ.Hmw2(=]0\ 3Lux@eA^[ 5? _-`.4%h rBdPP#}W "F(mVVkXn1/H)҄C#c@ HGZmJc(;5RBXTUioyJ̽뮜5kii=XZ]ݹO>?y.G/<{=ZH='A+'o?+sd@ H,'@Ivy X, :!2D"Gv!GD'4~XS~]W[h  .%ʟ4)uժāz\IŇW:Uׯ>{LqKP@Ԁu`$d"% GNRWzD6U^,+PӦel߾f >-+ߏ@/Ο?YAD"ϧ76{>~dؤPPP\z꩹>8}+@}|ZDU\,*ܱW,)ɑ*\ӆ+Erw+D)RZmDڊVAK&qq@uQdMyycKt!m ?%%qF? o[G Bu(yٛΎ7;Hxޣ mkףh|Ӑ0V%z[`/@ E|$NrTh he(7dz,ZxMzAAS z(w޼1$g7Έ?}tPWsBILd+/< ='@Ƅ6uGc WF̎gl$Ʊڪ*MMFWSkl4xVZ_&Λ7&=]OJ XC:T~Хg;w͚5j4(l:ҤTj@?* gnt'hx,+,TjYFneJu3{<܋[8tJ%ɻ50_\fO~ٲ,Z4^:Ď ty2ϫKJT%%|S%nNTH1C>1HWn;RVI 9%:Pj؜]ԫy zcyyѣFs0تGB'C%&njDwNPNgki|ӕQ[;;?>HwdP@^o~]HL&<&`xT(EA rKMx=wY +z[Z,Z]XTP4mZ\.JOh6 C^:pVkHgg.^<6'G:c׾ Rzw#?T>{nrsww70 v~嗿{g7}. =^]RR[Rz}>_@(d(iڸAOn ,((9v395I"=jH)P~drSfN?? ;emL.ԡEj[AiwǣC7:h ϼ#]'ELZ}HC~R|@ dh2J*Thb(N*,x`y(˓o߾f±e=d\s GJHVٱw-?H_.;@'C8fM}ݟl) ˸>hLvTf--Vn08R9$1y`̙{K ̜9b5PbhEcXqZZkyrhhӅrTQ+ /e#֮xqL6tglݺ?Mڻ[0VZry|Kfs3+۹wW͞=*ڃGH2ݾRɓ?{B!3&qJ~L&UHU(n<RO={rX#Lv":juu"TyycKn}РSOB!g`93de{F4&dr va29/^7Dǣs84.嶞8^Y,.UFg+pXbQY, EeL MEe[OXX @ /46c kk{W%lqCf ǏwoCF{,x<~Pǀ8jhGNgGM&A$bNL|<3ƧW!CYQшZMJ4<0m#ET*ݻ`pLK,fb(B*ZTUz82TL8rdҥrѐ #oVɓʢʟ~p}&< R~vy「?kVݝÇ+p8wѵFGJ#] d2aӦY+VLx̓}+{hߡP@ڴiV rXYRڶhI inl8\nE&xU[;JKU@%$@'PFh1w[ 1r(!ɼިXD([q|Vx6߉D6)Sd:z7ulkl4;WZFG p dLcM^|<"3CC^KQLeeuZ/1QcJ&46c.B;5hb T~JzKڑW_cd’%/۷5`0.=Z1@ =zN7`2VY~~@ 1d̗c@ijn6 a>C&Eh$$` $׮777VWk0Q&ON{i20++)e駊/|9/OSC,f1kZbsdz5k&ٳnݴg]0JJڴ CM%%RՎxFΓB:yrڐ"]WgmwJX'-`z}5H@JNFŲd2f]x^o@᩾>ޗ7=ju`7ծO `$&c"v8VTsAv] y-KQ]Q `0yݎ\FC2oO\46njI(#jc  IU{e2L[r- Rkי;cE`0㼇υ %Ge eڏ>z *96}/,[6>c@ `ptfVkh--VpTˡqq$ӅB\.1CN  E@:EVTZMA$NVVҊƌI3&vuu]N[jgk׆;EK&PlNj5*˅Ϣh>|<+۶mܹcv/O߸O >_ԩ[ &#CTU˽%gےDPh&7Swh>+xF55 qA'p:%Yc.8qK\݂!m`Ȃ*Pg\:Dt߈ Cmxn (e@Je',Wd FkSfS8lv~A!2ij2`TMMXXTWkkkKǯ^HOD{\x≯VEqsG}/|x lv{'xoPbH;ii-ʆ 5_j@fXZkKlZi4R|YƒUǤ遆DA rio?Rk6;M&,`0@b8@QQÉcT@ X.;8(ii|AT*=:rPyaRH\poɑ[|C"^}e O?=͚Ϟ>eJΝ'FOB }zNyӧVVD{,> "'$t:{8ܾB.@클ɤq*~K a* Nf0(6ou#ׇG+ 615 9')zb+VL d84+9\T]_olnG#WT" &tdh/^?{o]?wNmd˜1ӧg< $1B g>\p֭+%%rbXMUU-`x;iD"C^:tŒȞ;wo2%}7UWk׮ԩs{!+{ HVVPw1?^}ܲeN @(d.^xq6 :߮JKUO1 4ujp3э-ISZ7aDmmw0ϯ=L&ɤvtGm &]]/#)ߎ5>hjZnPXl6˂+xt?~q^.Z } Y_HgFE R@ Cс ZCGl#G*t5gV+FW\~wqM]읰6 "XAbuW{=pYG:YbݨUqS("NGHHH ;?_B Wrs9>{Eђgٲ~ 3&&XgnrlΜ^:k4蜔dg>'&|o[PYY]RRYX*)aTWr%%UUy-,H$#L &њD"xz:@<\TS#$QQ˗ѯMϖ65jx<ѣnMp„/NBTM(QJNLnՊdcQ@ NIɾyMb**>Q+63̑O"wʍdZQ т,04 EE eAaÐr}(P*dADyx qQ_] "ưϊ(b !&=;TV@Afbbkb{;FbëXqbŊ6Djehn&^*<}鯿up `|I $q̘N1"ֺUUʒJjBzBVM!l<=##)hݝ`Qv@└?/}|t ܼS.6h0<ԩ{rFu7{:4H]TM4#3cD"jR %55JLLquUJ%uРZm>E'6559|xb/y۶>9~F#K6Ӻun_llIqq Eax PO1*n|]ZZalw$֋Җa6Z^P))9EE,a'/rw'Lmsײ舄B1c2yeeU܊ ny9dJK˹0;;+77{{WW{wwiN] ð*~ee5cx,Vue%ɬfxL&R0yb髥%3L&0;d 555GVg.:X1`ذN)G7ov-㯿f~,7}i-Lg;u2m`C`{wK;Z BD1_C^^ڂ 7@ŒSv{2>̪R(nQQcFEEBB:E,>t}yލl֥j³ ƆΙTMz:)ͭ[oo~+;v7`@Cv/Rl剉 \]5#BB߽ٳ;L)ԉUt45:aXMիԜhk^E;FDP"#)mzL)N)rP7ݕH礨(@u4]B$چ+W$,(QFcs85G&p9W%d2LnX\($++brcrtG%# ukzJ$R )(d޼)BJ)&'0ɞPW''@0k=_r222 22`Μ^bۢdZJJΎ9WW"#)԰0 )r'NEӸ\*) J rM@AYEx'|D,Hm`aal' C8C:qp/BJK9((fW㾄aI>Ǚ/:juC啖rr.R"PSVûa!?7ϞZ[[tjǎ}upַiljz{F'SJMF/YuS*`yn^m4dA`aa6uj6o2so8fak4(}ۜ9D"}(%%'55g޻7_/2ХK`Y| 3 %D(S^^F?qq~>S&OO<: ,-JA09VT?) pas]7NJ@ᠠbxQfI͐f?Q@یu) U^^CC:k0xNIvvYs90/_~CS߾m"ڶַ]Gzzɓue&0fW>okk|y-:tNubffÇs}#-ϯ!(M h422R!@()v-ڵKK^B~yt;4@gϭݻox;77**PXM[p0yH"^ [ܼ&55Ѷw6SaoB5}[,H¼R]@[jjN39!H$c&M^\>;Ərٲ~&i(ff4OS`WLKI>uΝ7lm-CC"#bb`O"·(D+LN>LE0rQdgxW,-I$"Dx<*$O^Z(C`+*Y`'/~R៛=qe%ͮV7f 9w!LWG М6%ջVrs)׷!Ng_st0 |ǎx~VD"]LCh106ܹg#GFj۷^ѩ-0j`LÆuZBLL0]OPXϯ(,d YEEBA쬼||ݺwvrv5 i׮LKwp;t ={X[[4@<}`p֬4yrD"̤˫>~,HivnV$xkHׯ \Rj=wn=ZCռzU8so7+($l3" |;lÆˉ/.7ztm_رQUd\niMtpjciiL-&KX(y L,-]?g#H0)PA?=| N *GU?iG>~+x<=JLjtǰf'bB&WQe2yL&ŪF˹EEW Y,ɓWX:9:;۹:;;۹ػ;8;ۡnnx@n$ -'LVh67Ws睝U>sۯ#G̤ߺot:0__ȝ;RZ*|d0F@TWٲs5k&s'Asxd&N:ė熄xu6gJ0XD"ɭ[oO~z;{{}.X'&`p85]:s&}{fdjB9zbcC Dynb˫W_l__Н;aƏ?۶F_y5\txja3OѧO7V<{MuobĈ  vJJNr2-)޽wLMMBC""(h#čP):T|#=wIIo+H1 #ݑJu,=J3]:4Dra|'$uaJ =x$SHdVZ).$xy,f FHaRvR]é1<WTp˫\^\NdOhh0|\.Pܲ[狒ޜ=޽&11{۷-<پٳ{jEҷ-aүϝ{_O'NR5_I(V ^DX~p|.]qrsx ZhK@|PrLJE/[7ߴi/[&( LJD"LzUdrqUSp098 ̤7ׯ*/Rÿm#z ĉٽׯ B6=Z G> SC$n8tk\4h֬o $q0ӏ))99lb"#)nZyx8XC϶Rl.@]F6~~.T* I=TTB1PdZa! ԰w$ <=!&Q*Cee)U\&[VVUXzXfHB"0ŞL&-b@ 62+CPWfW#݋H{'xɖH)!D藚!ǒpKNۊ LLLW|kנ;Fm5f|͇ $qب_~9rdޜ:vϨQ]…n݊SPPWQP,*,,d 033S2 f@d[s;55e„/Ggi)`,0l{.#Fcht>_a5+r1GD?J6Y$@)55JLL~Uu0,{„/ h Lx"ֵkZ$hiӺ7*wwPϻw7{U+3ެZu.:z˼yO+M5y⧧?x@KINHH$hAdd@MOB0Clv5WAϞ}VPJe(律OT*)$44BE^8`Tej!*OH(@"@%xc*D䕗sKK9L&/;WY LLL =͍bG"읝٢2ecPE66;CET"cFJeϞ$&pyeeuN˗2M3>޼):s& bO~gJ#2oi @iؾ}dϞ?c?~o[OM|s(DzniiAqvvpe_$ibbz޻w3gfw\D33oWq(iNDe(#>xr9szbnz{3%iǎ~˖vdjscǦj .¼4RW_\ba( ֭޽wv~tʆ Cj88XGGSQR6OzyPL""#KBqNN9FGRSsIMRIrQdgxN(Fҟj韐hFc?!drB(y,,̐{Y Rr|6N}ov<\{ dclTiPh>_deewTWa~J%Ϛշ~vf :^߆4 s{(Y򬩩)d sR g>ShU+l}@1|s{.0 H$9s&0 jgϸ}4"#޾-gUSxψT*)4Sм1cԈΞI͌;w%%wゥILLMm +΃[^[zVe_YY4R[m~FR }jUX.Yw/l:fЍ*IGh ;;+\TS#|055ڵ|C΁HJ۶.XZޑ 2vGѓiyyYXQ(nd__$ "Jb# &GG+P;:+Qi XX9;ۑHD<. P֪t*JPh'%%iV*PD-dlEr. 0Є%&>CN0 ik\)< ŕ'Ao=߾-brlLnE%==.sssЭ@#˫HJzYEnvٯ_8s5EAsw1V40]S,;u'Wf(u EYsGmS,\9accb͙K,}[LKIٱ:Sjߡ_d$%: az,Ab_f߾,nF1׹̼)hOퟄBqI PdZa! M p,xD$r[?zPRR0rnEE̤oVi)G^B ظ;:9 a Dpsspv' VV0@UQ*--Ņb08xy ~*<<2 D*I YdmmA"m"_wW8j HysС#"(E6ӧw߿Iݚ"N̤^}aΜ^ݺQ5h<)P/,/6vGhןN(tX,-*bVU*hBb&2&ŒG1 ۿ 1Xg4UOPEA}IYY&jB3[PStYGFR .)mFF]^!=Vg#~B}JF?h yJPTE!gBD(S!mH$@cu9.B> ;2\ocOjaPǧF߶I\^__;F 0#mzn3bDDno,G>LxMFuYr@j?_x'eIpr;p`С۝s{-?7,7_Q\98X:8Th6$$]{L&^8y,=iNp85HD32 "WJ%PQ*:Ј/_~1gΉQ:`JeϞ$%v-#'ӱgϐ%Kѣ5hLdi?-r0,7<&&X?~XbYXM3hP;YTBBƍ 133  :5ðdZJJSOwakkC 0CPbcCH:/F= e777rE}4,,TbQ;\`ph4ƱceHنɉNP'H PzӖr../2*:]ɽ{ʪ1*iffjbAtq'(.Dpuupw'ESo1PbP(:f0fh x B{Q|&Zhj #W>䓙3{,[^1Ꝫ*~NNj訋vpPܨTԩ1T*J%ks{y'L^~F4D"}<71+ ϥwЁYK?:ujC'?ن]]\y`A5:~)n̘իbgg;}rs;6 ðԜ~mnnڦWt452ҹs 8D--o 994HKM9u NF(H$@Û`H%m |}( Ji)'9`h(fvx;ɡ  -|Q$)/-}Ze}(DE*phXZ~Rיi@@!naSG: ps2ܼuQ(n7oK|(9v_7ߴڭ8yz 3yrC~ֆ CoBB?*Hg fϞ̝{%nQ-i"(UAL %R>N@'L8e# ӷ9-H]:ꌌB\daaF{AUiiyӧ9xpukfɩ7p85T*yبp}"}7nڵks85133<3I\v>/?{٦MW\IbC5( NIIN%%ٻIhWD%2MutշKK`{bb>ܸ9(k#z&A@w;;ukX[[ONgB$(uSX |'$r4@CQaB*4* %((-gB!tH3B1a}r\Ξ$G;W556o>xpPOo)SȐ27gQ֬9?kW_ fÎsΜOςA&+P& $M(C$Lxۢ iosZ"$+IQPd(Y̸q]oo'mKc5 dSs~fRқyUS# 6-fذNMkATΟ׷~1iRڡ 0wTA\\? Fa;v\߰ҹs϶l}{_}|D"~V=}1%%'55ȑd ÂHJn<<0 4$C>8ʟhdڡCQ *|^ `ee^D$0\\hᡌ/$P }sQ-P-L(^ENO^3KK9D77wwMw@B(&W^^UQ+-^Cp0%pts'AJ 9-6X(7LWՆRٳg9//^Lcx:/[Opc8p_(Ϛ ctٿ?85wӧ٪iZ %`}ФA~Y-H$).KD$ڢU+&6V{"~VX+ssv dK23ogfdgD Rp0y̘.{ASSE3g r5/3Z8QBa ӊx7n`K, [hѮ]m.Je hip5tNl;$̙T||| `nuԷ-FwAA*ZSvqǰ60 2L$?L8A^jC ؄F153#ZXb`. e6}ܹ7RYY`+KJt:y^II%#a犊Ruk;вPU( SZ)+((+*/;:9'wwP)bv ?UURNE`U '--]^^ C-P ( sOX.GzCc->M$[߸!]PՆݧL>V]eشi_ iz@l3VV~ϟ ofy33;"/}rV *F@P956m<0i@ScmA(H\T.i "ڂ 9v_=9thR E(ea%%#]I􌌂w\9Anٳ{=HnŢʤZRXXإKŋftjx"SS1ڵ˨E- b멩9W,eF*SS{s挮 ?ց]ðrnYYUIIeYYF{o- M>?xPqDRoIe[L~?ɤS֣i3 # a{Yr}}Ė`?(\ǏS&i t++Ze?piؾ}۪C.؈Z6X2w>q!߿/AAYڴ h38K:$%9q}|)3ݻom<\`x6N>jT=l„/5[s.][hh8I prG@@o 윜BB@ZNR(n6fD"]TP…}mKscj ҷgϐ6m<=5|Jk/ ҡp}DEw}?ZRCCtؔH[ZdH2mZw} mf 1fفNH$).DbLw\0"υJ%BLm2-'WVV/Z Þ=foCx`֫˗ ^ EZP_|~~ݻׯ/޽{̜9lLE&9ȑ4[Ɉ#d2ÇZM٠MLL>|=cSΚJ[ 6nhbbuV|ӧMUitU</>>]v?XI[o?~|YYmS]yp3g5h֬z4C:<{igϞZl'899ũY!4{@P0hE50czvi\.wҥ ƦUV֭X;ջGiMS4lGCCU#wp9khf.['[lYv###lق8؀ZT]/c: ^gG2/:5F*5F 0ɉL&2˗hE_c:5ի™34H$̤'&y}ƌ=zl ~_שּׂ- hkwׯ/Ѷ}W\RRRRR# J>5m]]],8/RSSm+W-Jm 1"$7{ܚ7D[{x,]ҽܱ˗__"́>O}[S=1da`3fpvv.))A[ ð,^1{j#F@K?˗&&&IIIeff*Z%6:UӽnҥbrߩS'vgR~TUkMtW[\N):v9M=h:qpG)|~V.es獿v[);0`4DL&f*.7(L~ہ˫Es3,/'0a5n4xTN4L.L<{65>TuМ`0ɴC,[vfT ĉlvMll(Ք޽OX/J?F('%vZѢE[>}˞5611?BBBܶnzq B$׬Y Dx/o?QUbxݺunnnǏk͛7lق[rҥ`ww ttϙ3)Rl/ӧw޻w֭[T.0rĉK.]t0L&W\С /_@jWaɓ'CBB'Tĉk׮533Ͱ?qℼ ̜֚9ի諚;dȐŋ]dT*/| ~ L^||ȑhcTWʕ\yՆiD ;*Vu)70 7Paβ=E5jzNgG?vfsԵK>)S_\/0 #{@?a y*u6(5թ%O?VW m):i>XXPlsʢh666GձnI3aFp80,..߿ðrLm۶ÇgddtqŊh~ݹs'==U}ЌW^LM IDATuyҥJo8ιsP>}h'O_^FCW.mj:J e2lժU Zmd2٘1cznj0_9ɓ O8aXiii]V*~bU\N.xN NǏe**s:cSIoѢSTN!W͞={ҤI}IӅ(59iF\gr޽w5 !=t:}UhH:KJJTOXSOjI5?@-}GϜyT$a_?s&eqq{ USK||<Ȭ_͔Lk׍:'L/|utNiii2L(*|FUnԾ}{{FF|UϟG޾}V0޽{2L"嫒d AAAJ7j/<<>{ۈ}?yx>ðW^PʡB33ׯ_ϟO"޽{r%OBsJB߽{W&u*f]]]CRRRd2w}rʺvRѣGNjϛإKi#rss=<vڵ'O~1I3ҧ Yj3"{ fJ{Mh{K&Pܕb9;;7NuӶ*thFDE92%)9DžBmfWd:`} ^ٷ{=h3vlG>~ݻ/۶mĤIݾ2DNdh4FkGy䷋b Ъ5A Lb=ymWyzz7oVZ2ZaFC65GGi Dk.<ŋRuv6$,;;}񣗗.555qqqiii{UQ3fÆ hmm۶o߾k]/e2>`UM0lԨQgϞ|rNqx_|fd?o?ptժom'D@tڵD"-WJ lmmMVPPPZZ*}777Pϲ9 c#zzw}*Gq…3gt0L6zW^&&&_5zm(*m]'T)~umBuZSS#Jo&9eʔ2LLwssC+ԑm666O>?z߾}UVA'GUѓ=R'!tw3RPPgϞ޽{/YD^r^ocƌٸq#~Fuԩ[5JX#kb@89ٱXsK.ׯ]?o~g?-`o[>A&1 +)Ժpr[ncRRJtYm۶)뽴k_G*@o`PyTԬpPSQ߶w4bhXaÆqơ-Ǐ9rիW=ztRwj6jYWJQzPzܹsG(ZXXbʎӧOѣGb<7aYYY;vPajI: ܏ vjSJɓ'ϛ7ԩSnJLL ˵(k]N޸qF=O:UлAO(=?pvՒ 0PUU>3~PgH9zae%oZmE#͛7?~|?qiu.Yﴭ:bVV̘ݻ칍NԷ-`*+yə]d}}xx,]}¿ᅲLcx6EB)XQИ1LF>{| L&JSߦM/]oEg3i$'''ӧx< |ҥK===DQX,:::o޼5r|ŧ _wW'3#E*._"݆d7cѢE555"[n]}||;j(wwwծJVp%Kچnڴ1c0 W51}t{{{.bwX} ;;(LJ_Y?WjATԦiӎېdr=<>xG׽֚av0,Ae>4<<ɓ''Wqu־d  롵S#dj-9h2eDអpKRآ(=;ݲ;Ӌ6zջufΜiccpbmll/_|s>ਘRgSG)5sijC}s&S(N---[n}%TRs%HK,Q8V \ Vm k=Y:Дs_`GaKC믿kN(d .xxx0Lao2gmmjժݻ9RVлAOn?zxx,t.[%.>RcuS̛׻q5avMysMOx| o[b!GwMs߶mD#v711IHH3~zgΜ_5B͢o b8UrssO<:ylFH ֯A950.&kFhOtoB0--K 1?h߾ YfGG[%iD74wzys'I$b#vs RMݮφ Cuq@#||/^?v쁡C=qbFX-'/ׯ^*| 0__0!C:mmh0IsKK:L߆);tC !9?B99r#QQCtYNҷ-ubF1r-KKK9//' ÊX@#{eDN/з@pu?~iGuϞ 4; I^*|é133 p 9gXW۶^D"<hXa 1Œ3hܸߕJ%@?WիSqmTw%l㻮XqS'g]6  pӡCΚ5GYV|=O6(W p9?Ia!+4Fv3@N|bfJ߆x/9;s)GN[,^gɒh)0l<]JJ]mnnmý¼mm-m&@k55'ۧFc'9ֳgCsu|9޽皙bO뇤NtV:n%4<*{L&S5k*5Ro4.{0pq+,l=x!θq]ddX:'ctN p_bq1{o-,m -(x˂W fmxY30<'8 ,0 DVV$ւϛ[߆nt9..s}ۢPJ&lF-:`f`o[wXS !@ !88k묻uUZVQeTAĢ$!$0!h]!9֦<ӧeBѣ7b]rp0A൏U55%;Gwc$ișNܽ<'-QPP` ssRYYU)8v,/<672gT?9'̌k|Saas!~>{V[[yUccٚ5NNf&lD$j fjJĺ =YYed2B9q"e͚@==顯maqsN8;<8cɒd&f޽w/>N߽{ ݡ貲ʲJ_kik>Jx'ee%SS]49D%Z'h*h*?|?Ignfy"ѻ;R8i.JUVNCeddL6TFF'U|Wj*C.ʸ >xFc{`QSөm;C32O_xޯJGHa,~XII("%%'Ħ-**BD"EE.bXj]% osB],*[Xp$> VVd@TQhee{JՈH nz%G$%,*b?>G"GUb08*xօ'ys^)*b81@fZZ:rrsr**=ljjSVV369lR @gi9իjI:;ivAAZSP@eI\YY}G"""$R<==`׮&'źE;aR@dg{{::kիeiIW`0L^smBo`}}}mCCR"f@$~ȟ3fszϘ1C(,333>(liQqX ( JJb2 YZJjoǤA::p SAqCRe`}EE:4_^73k62j?_Ȃ~{!CPBIU`08d٦ ~;|0e…;:'Ouu =99e4C$562toy^Z, 'Nź)ٺFnnelJ yy'߻L~pѢ y7EE#G"ÇIwvUQ`zdW.ƺ~TȑYpⓍBMMJ+)۰!ѣGGGSAinn En#F"id\h!vvW8yo ^OQ'>_UMVVӧe 8c<=LMX lpZH$/KJf8 1c7/=KcJJIG3(=9l{%8 IDAT Ȅ ?|`/FXY|_}O8 6vmim-gÆkII/߹m0t|*íhh,-+.+-i/-|{{H88 2@&Au޽w8X,^*`ժ%%EiJL,XRkk :؆ |z;ﯜeb roAu9@2 BN@ kdRHpEg|kWlj*H&7LN~~uVVYVVUmggsG[[B&8piZ[[ck0&3mouH}}KDıV4QG&CITT4޻رX@ *)_ 7U }=<,/>7nCfBt:334+ɓ6ڴiAyY@&쌉DǏe?1} hWvDCfڸ1A?v Ν{*$98IKK&N8*́ Fٌџ鸺6 եǏ?7; 5WyޕvRyBPH>>O#PL&=!HPQVV:?JJjaoͪ7}LM0ŋ4CWWs =! \Mnn%g_forD|72]TUqwOvq1۫"? /kBB\BBd} lb~db#gLL2򤤤Sے;9(GGnpmΜSKY~<ыh2MKKuAfyzxXkh`]#)**xxX>~\嗾X>YN6t-+c.2tS,V[1;{v 'N:v,KTT4`.<|H{$6vօ|7op  ut`MOxdtú-x<^ĉ͛(**|ޒ;?qݒO h)@D]]e '5Up8E@X_R_R]ݔWd6ttPWWS__[_O&dz_@nDėw旕՛njiSC t=q8EUUcI 8য়"?y7;;d0gj11_sPn@ChL957OzյNI1@ڮ]{ysGpVVXz ?hi=Cݲ%&%ȑH[[ʢ/>-*,mnnVsq1_dСȨxՁE"^ E}{H9;%'g33KE" 8bP^g{q8܄QVƍg7uC0u\SD*l=4j d'ݶ͛sĺA K߾s۷s-dXYk_d꯿~gT6+jhX M>77V747#dfkagggla7hjkhh462:JIID$ $қ ӂA'OUPBƍ =sk\]CCh\H%%űcmUTd򟽽Irk\GpJC׮ qqy11ϢRMMx}U?{ssǔ)JJ꺇紵જ8{X˗52|'OwZbP/+V[*dAk+ɓ'OJ23K|)c-VViu덂׎Xbx+ɯz#Ա*;I?p;**M,FBѤIonnMMmII/͋V  u$d6#B&c ?zեX945UǏwxPaa.QQG$+##=Ԕ . )VTT0616*{L+*b&'d#U *lccHFPHhzd63nk~iew34$?utԻ36ցx@Jyٽ{/:5QNoYKKɓNi 6X|“ᅬ=BNwegh]j'O=~<cb@4a¿ll mlO7oFE;AI jS.tLrBD_9{B'3gzʆu FG/ϴ]bSRhaaנ?.(ϯ dGllu!Ctfi׮tu51mJ;wFY4f̐w 5Sm-ΝؼyqBC]ƌZc&% S~o;;#.3-X|b//+)/[#IڳѣIK= z;O`pt@SPii*ƒ@РPH ܜDT%3ipLf>8v '›O  X"8+֭ؼ&aOL3gz47&)ذ}W,FƎf=DAAaɒ1ÆQ.< G~>=OoEE`isdʈ7nһ9{ɗ/_9!W@rׯٳf :;ӧc]-t ^ UU[N5kDץ_iYj*=3S@||nnFFj $cѢ81BjؼͲ;-[nUNǠF3jk9F|M{А0at<nӳ *+_XSF>h4Fi =O'%=fs[ :S abBBгз'USSVS#gnl[hnllihhe2i4FzzQ]]3ug<^@[OOSOOE&`|$ Xo^URRgjJ t6M6l___oDlp8`G kx$:jeZ[Z[X֮ $&ڷ@__[OO[WWS__[__]_  E^X2y#NX`U6Wd)**Db==wQjTUźؼr<^_Odn Wd_Giv9l}:o\޽+W^jii=kKFuuӽ{/Z@}h˨Q6**]889&w׮-9J#F@&:::7n|a)2䔇z8TȾ~y23{33]k9~O(>wqC>fgSSiϟW!dkk:V s6 'y<իK.VW{L vt)ԩ55:#bcߺJ5p:ݰa@f/Ok;s&=#cvoHYgΟHK[X̙#9 B ~݄f()C/'46"kh]=66{kX^[ni?: { А``QӖFtt ΟHO/"SΚ5;d>lڵo&ֲ!vɒ1a߽ԔCB'Lpu4prNx{eK4OfͥǏ.<9v,ɓ-$i$hEn 6l[yZ 9'9d6oS`%%0)Ç LJ~h`]  9;[[#kL8ygUYYÆQ0'}B('<69l6wA.aaC >aϞ)SZwu k֯YB$}Ĉ] [ןZ:uWP  ɓ(d/a'A3*+Xh%AM>u|g(͑--uu,V[cck]]KCCKcc[ccK}=IkcckםtuH$MDcv~ţLd/tqٶlإKb]$;|PG?)(kZ[yn=v-2]]Ͱ'>u]Ȣ2Ap8ESS]KK} }K7&&DEEFCr8\t"ӎNc z 3ǀaw>RssǕ+g>*-wt41}pް͛`Gbڒ_=C qvT)=>moZ䗳gD:g} }=zBZ˫? Аs7<ѤGtw3f{g&{__UvsBԩԽ{lee۹˖hybc^^VS9gkΟ-:PbbyQOl5wO;8q׮X"(+W ^'M6s%$S今FAuTC*~7d켺r;Z[YV5T}} b66wv_MMDBAjiij _ kϜIVTT:52뢤$99~mĉCijjKJz<%PQQ&$:1rN|qL9|"H1O''u!@>Jӧ[0ۡ$rN򩬬~۶II/Ǐwں5L^P̒ _n;Vή9wf'ӊZu!3)ettvw6?3fx`R'ҷl_Mn[<|AjSFcDGg_UWBFDN殯ߏ{V }MMmuuuu |A2oee`ii`iomM73ӕ2|fs8\&ս/íkZKTQnhH00}ǰ9#_:^Df1k7p`pƍtklnbbAS`dC* W_ry }Y][6rN@,1cݺ krH,HYz:oϙ3rr͎|(66/!uӨQ6**к sBd߾ӧ33 dൿ~X)H.)))CBU;P(1e+u NN[7m fBh؟̎u-&RS119|ח:as`uiWL&NgVT4h Se%K,mIT!B1G1y<Y(AЉxοge6@F47_ɔȑ g71D3WWq8܄7'Ka$V>rNWd_`ۛ%n55wW<^|f>iĉLN@I 6 IDAT?L;x𾆆M!'誫RR  RR E"a@G++K[sjnnwwaұ+VúdK|7V {k/44TBC]Fbg9Ν{l6};os u.yދ۷>, E^^&8;I`uG1tfq1D@@Gj)hlleZkEgX -]WVV$ތC'D tRf]UgDGg( I܏[!еCP(62iҰ޼h9C:5?(ȱOOTZZ!!}z" Mܿx }o7LEsZ{r߇y{[c]'II jjAArNsٳ23vOcǎIg{aXF`pegӦ=F@^}^.֡bqH!55eޙ^w .sA.!!ΆK@t}ht:%q8EbOh z%2ig2LN6Q B8 2v"4tt{|i`0pؼg*, 8y˫8͡_= Z\[wy<x  8Z A#&&ģG#,]y(=}'G,,u!@xg筫W,Z4Z@i)*b/66LJ}D[[ PdrLLVJXW@ aroѣG&?{]CcJJM ]b|mD5\~J,c޼+Wc]Kϯ03N(;:iiؼiiR CCLq4HOtJ5PHd9+X6#uKCz{+'z NWWHD[CiI"ijjjȲVŋO!?i|KX[/  tװ 5]|4B&?0w/v]kw;wMyik'Ǻ n]|v~42|4?~v u>x;w'$t8::L{sBf]]ML  E^^Ǐwڶm"&%=ٙ󫌌tƏw uvsI g^ %!a܏Qظ1x:ֵH'x0.5gg G;YB|ů_KKJJꊋJJKJjjbS45յ22"[[::X,U|ۣeWVgk(ALƓxA  ::zz!ܹGQQi|0<|c,-.J&,_~>5\DޏnCC49'&y N{wܕ+YY[Ԕ@<(5ijgۡ4 3gWVV:w+ 9H,=߽;Ln]0/nk98`P jky{8a]1):V% qqy7o斔ԙCCT 7~5̙g϶} {76?߽{7?1Ԕo9XEzho,)/-+.+.+-/.frkSd++2&pBPl6i˺+Ş4x_TNiiѣ119:: ΝE {\tժKg|ou-'HMu]tsBd Y}qV뎥KǮXe;| qv&%LIYu!@1c~>wnֵI%ȁHAA!4%(ʕ_~3s戕+YFÇ"䞦uA7FϞecc(3m8;9Ir8Ck9QQPiܬؖ @/F"!'A͛C׮}W.J}wѣⴴp^/> >"8;,6ylln]] .6uBZR~~UPЁ7 d^߾}҂>X"Cx _64ƍ --eet:Ngh:P)IT!J3Rź~읓q8ݡTUq::N# d2KACGG_~Rbj=$iӧ[keeu-BQNNyl[54 <sB$i0 dYa]T C**7Ôhhh(NL,HJzfs }}mG ^nD1h4ƫW5<A QwT.imbqY56ujD]QUš72yyD ?QXX{`B\CW@+9bsu|&Pdfvۗ/_w]& uk8{#$8,39!C$uL #֮RQ BAo23ź ysbTmm9sjGz_sƳzKK,-as3ێK޷^ry H~|nH3:$.9ɡPHه:[b]`ZtssիK%uDٳ %u@ ;Ə?n}$ rE(9xX0'S+S7o_W {^DGgCBCC,`ǀQP/ڗ.-s%$3nAB}!34@ <gN<Z0pP¡C k\ b>=xCZ}}CƌA DUUD"!Jvr2O2{ ?hTחD!fzzL32"d ٿ+u낃8}:o\ Z@90KHy`pIz)->W_jleeNto;60b۶M5Z\A9nP`ؔ|+WKnjↅZн?S~~7n<󅁁ScrN]6iґ#G"Ç鉦OSpa`MFO]k$r_=OI)TTT q0YCCE"3{{x''<@͛+`zII'OJ|!BPGUGZ[yEEQXȠL&A<^}#!CTC[[#L_HD1L&T}}H"sWQ[Fj)++a6ޙ3zu̙:#h˖]u-z䜺qqyׯ甗78Y:;o]le~?ܹZYCYSSvu!6 Yi X[rJh3ǫ…' TaD̙#` 灜ٸ1h)JK}|;ϮN1xKsA`dp ?xJY7nԩGE@ =E+Wc]KґQVFJTggsQ@^^@1tV[Wׂ Aml TCC;;chutTSD:Gz$RP=RzzڐWd)\|_)c]T Ə?v2'ޓsnxVZZojJ tӦME{yѣ3. $ʕᄏ ͜ikwҥҸqv}739.sܸ}?iStJ -=}b_@Y߯^`O-)%:AX[[- >4O@~SR=ێu!X:u*u[ׯ/ws9КQFOI)nP>|/LJh* LuG1^im!B&7'*` *CoAq8\v " ༷G桷jA~tCSm}ƳuffX$crN]͛%%u:N=_t֭|z7ҥ\J=t(ŋ.Oۛ/ItJK/]ʼxIssYffi|ŋG9@44T~#ׯgO*㷶_Y.V ~q1O$jFDEDֲɏ͛7/@P7.4f )aB_޻ܹG.]:ft=70>-;vE̛#tt4-3nnleed#ك_)MsaA䢢>9u12YwB{^͝{А0asd{9nU.9%&Y B Eiitx <=n+2CE EMt:Ngh4<p&&D*dee%:BuQ-"ѿ +գe4Il/?{68&f`pV8sĉC`G)6cl3gzsggϸ?y2D͟@FTW7% AG&-[gl,+)@:LNtt gHH޹~TQx|ƅ \ngX˒%clm_0 ֽ￟B!]/b_ߟ*cw:q")SWV6])mρl1㸩)q~hdfNzl󽱮EutJ=*~J@dmMi'/,-GOhbH$VVVGܡuE/|fwmjjcm<DM "QH$5tt4р&/;0s=55܆ ""ܠ3ff%$Rź 14=** bc>-#5lCC]F"I採C1)2c KJ6 #5d rbk` ܃~N'HQDisxQ*Bڼ9d*7EEssX78ةo~=yE%u KJN'bccXWbJ{9i2e]11ϢRt""\̤\W,V)UUwnaoou9rNMMAҬB CusxCD4)++v+*bhWjϟdGW112h#;;c;(++hLΦ&.eښjlD?gG!ǫhIH|)+Nрyy6DzUףWguo=U ;Q(${weecBBAll޼yQqv2xƏwxΜIH/dl$yғg@i ~N_mm˗3**==ϙ3283^eeFEݽ9b"Qڗ/c>tUpySx EG q"֭\9s${wj֙3uffyN4 rN/0<֭7{.Kǂ*))< I$gg>uYCC+j:u+"O9={V1yo[6Z%gd E#F 𰄬M  :_M3**!4~rt4UWcb|a~|( IJZ=2s иT"/?JKJcj~G 9.55wccrrUUCB'LpM.dlV}}Db=^^VMv_yy;g %N{Lź %sD"GEN&&ϟ֧=Οψ E>>Ծ;rN/)y:{ok } 2w\HI@F[`DP+jZW[g[UZ:[uYTP w!~\/  |?~${wOlvG/^0t R*U/^_ee\pt?wW5t,@X,ϊJ?1**M"ذڵsv w"4{Ţ7orr޼IL̓J FNBJgIQvQFU4> ?x?_tpشit.8y2jΜLsR-u+ƍw$P"i@׆3DޡÏӦ5K2/w,g1r%nҤ}pEд,Xpƍ{CvyN-L8~k9UaܣW]:4f ͛4"oҭWP[@3<%P*UYYyƹKJqfx{xN<@ӥ#)@'ޖe2bAf&#xOLaX_228fL+:P VRR~֛_ݹ@CC j7` #g_>{,ruB  %ZU>$B1>#ҡC%Ɣ]:kӧNpQ~YsqW1t,IZYƍZ Om|^Xz[[">=zǏ/_k@@jչÇ޺nѴ4N;w %fr TN矗%%:y}Y;`To ԩ/V3~Ař3p+W22-225&&S.Wr` `7G 2hYJ߼Ɏ~&9C6~~^^&ciM)))˕ϣө^z … Or;AzIʨQ6l5ztc |&y2ҥXJշȑ? 9ͩSg>_|Y;=g!DۄAԗF2ggKC_s'ɤ?xp@>Ś>oX$Cb.]z5u_~9aBCX,">>BFmqx<Ƕm!AU%(iN,,Tyء΋J<EҥϜy1vl zWRRޫ׆]бgyNjݻNT 0thU'<8޽.]<׮ lƌCqqYw.-ԩH$ Xֻ֭N6t,ܽ˕?*jҤnSt77gVyyy^BCi;|YzB M 4kpD"|Rf֬CEEoLa"ѻ':G&HwSSǎ1IOO>ƠAߞ>$XfídښE/9+q͚HLVPPI vv>)䂨SotHkhiLx<'),,!P㳮] % ӓжc۶~~,q0*t:N?@AŢ22k,EStJ(kkvYQهJiݺy:z |U.jNh@ddW1ߠA^:~]Sj??O֜nB];ӧ#p2]D|9fSN<)G2++Mg  0 \/L>}zO61JU([P( /bYZzбDPr4O\̙3#Fhu54 hNRiH*UyÅdXO>|鴏fDDıc)zC& /:ݳJ%5t8͜ݻ?r9i\%2T Q=zѣG G)LJL}6WTXtھbcbb2 !.MzID G f׿XTVfW*Uz_ov0 SCGT""1]A)vU5 NFFvؒ5~=a4:ݍNo-//U_}X8(*U6$C"U#xRVFcfMs_}V#]f9511V,uРvǎ}x( Fj@SwĉpH4?d{7?ywϞk^3&R ;qD=羾v"Gs 7jԨfP|CB"茍ML(m:uBd>ۛ:^@r9}p#iOy]j8Ӟllm 3XEd A1=/]z,apS~ĠPH *.͜y+Lܭ1WJ k-Ð]-O<)_r ANNٜ9GG $ 򜚃S'˗kd@ -[v^:ꓟB(!!'4б`DLuVϏLL{2c߾rRޱ+EJ{*.e>"#q++3ϩ];'[[}G/bcòѷZuPD (+gf |~P( %ZTNRBUʔbAϓ')~7J:sfF`KԖX,c041 oa3Tk ϩiq᧫Wo?߿#ղxWAhf,-llXo@p@Ų,b'6mF&<T9ښM"a*mۍMvӦl6^@ b)|cc_4:O yNMXFF'>M⋮K|d‡ ㏻օɍ: Mׯ MI vv'WEFEF^J"X`7ϩcGW S hdl6K.]<"͛l"9…-[i=9xN֐@SUARD"'R422)bL{,3Ltrj%)-;΋өMd5PzZTAC='P wݵ ڴ7t, ϩIR(T<\s۷w6tD@/֮IJ׮  )8G8C@s*BRz«͛8bF$4oB 2Qh&G iO(4Ӟ],- 36/J, |c祤uG(2M  $P`yC#Xthz,ͦh @ r%׶@_YYf2}DD'C 5ļٳ$$Ιg^ zs3:::((ѣaaaĔs΅xm۶0lvhhY2aIIILLL\݀^QS%O?-__~Yx11رc[FGG{zz\yyycƌYd ^m֭[8^ۨW\yTaÆ-\B><`tmӦMα^<=mڶu_ljjҦ=֩TpbiO%%^}#Gmt !jEp94d!14&FE=}mM[[΅ -l/) PW RRM*))OK+R7ZK01Dړ:QR,ݰi9ĉ3ZNNUݤrRKQԕ8>~G$U^|ʚ JE&×^$)[2]6бyNMO/ƍZ6ڷoϚ5O>|>o]bE۶m?vssqdȐ\PZZZ.]!KK˩Sfdd>})!!a֬Y%%%۷o8hnnhѢF% \u7nܼyL־-HJebb֭[k\Kb1MWyDCWfmFa@WoZڶurٷo'4NSw/"B5k߾}[&2mP+֬>}ROJ*9yJۿz` v휉ah-JV~>BW̧?/ I^^܀۷w!hztx[f0h5(֬ZRkWH$rD9^Q099ϯJPRiA|/04Σө&&T[5ԩSǏ=zt=.㤾t/w>|)5!''608'eɒSWeV9hQW!J-:y\ĉ˗h_nXlٳg-Z{ŋ-\PSkkk[[[ݞ={ͮJU\\{]GH$wܡP(ӧOoN8ݻɓ'թEϟ޽+Wm#kè_ާOD///`0! Cġ?\z500!dmmm۶o߾㠕ڵkkժUoݺE<ׯ'OX}vppѣG=l?ָ1|xի_ϫ^ZmFa@WoZ0 3z5н~\naaV3۠K=!|˗/_f|cm>_lbB!ƫ"98T]мY[znӻwm~>.66k͚|J%yyqaY=RtC,^=S_ۡJQ(%I PD (,TTȴdX,eBT" GE[;oҙ#gkM6}=zh]G/3:_yAM@9;;5d`JyNfv>u]]  0hbb2aCSiXcVphطo/PU + ŋ۷od2N:>i~/ׯ__jǪU^J ;q℺SF^\._`˵Y`\.Gao>___kkknnn~ *++/;Daح['MDDL&3::Z`*o8Ç}}}[j~Z8￷iӆfŋf ÇZ_,ܹs666f͒JUNԧ?@Ksرݻ5gٻvR_w֍^qPs7~Nj Z|fSS :tH1ðҥK[݇ulC7o1T* PyvRa///'<{̺u>y2WTP(VXlmm=a„2^S*ϝԠ79}=ouա{W7KYJhNOzo0?g~OKHXr۶<˗3f Z!֬xBoNΝE7ƾ_ħ>}SZuQ>`ShOSTnnnwq|ҥ~~~Z n8_vĤO>6lHOORs7^xQ塡!TXX̣G\1B}T277'^>Ĩc#y"Ν'g߼y͙3grrr.]doo_p*66w+u7,,,,,fu06l󋍍 LI#ts?˶lV%4Y,wݫr@iNQ_ oz߀>˥O$۝>عj;9vvs~až;n>{RQ!3tUR"󭾾GF:&)Jza'މ c)*?M̹ʧZ+ji!X[&;9E7cyJo]k]/x/Hge5]PWw[6ܧ /GygϾ0t%&|?}߆5H2i>'y7^Q*U|=T!CqiͮFRwN܂J "HT޻wBt]ǕJֽ{>h"/_.0Od:ԧO\9Onn.17d2III2L&s9sӓ066qBakk{-vZu:rÉ޹sG3*[>|X{8rVjb?~\kcuwd2>@q9=}B /^@i6ZP<}tժUd2طW'vZ7U{@+++=1MMM###q=z4qrv//wYSrrc10pߺu+TNW43*VhN!m .sҺ^^Nˬuum`} ϩ~mhZE;8p3ܲQ*π(? G~'w޽}v~F9dh4Zbb)SD"Q[,W=`GEEY[[M>>!2<|3gx7oUj Fdžʖ)))Yڴi{P+ۺuk\ꍭrb 7ot)?ꫮ@0cǎ) +|q} .,[lŊ .3fLUƵUmmmcbbz9oLLLt,>ya2C 9uT6m.\2, @=UUFB!|ȓs6АĵUaRo[E`dO7Qu{$Q_ա{Ekr׸W>˗/8q'O@bу݃݉ccvᄏfE2a9xN|ƍCg"qӧ5n%ɩ۔*,,ٳ'Nڵ>pө*[~Z&!!AjU9:JLL$X[Cl֬7n+r)Ǐo޼Y]y޼y71co1 ׯBqqEucǮZN|ݺuױp"~>#8u;t蠾{gϞߏ7ND=eg{Ĉ+/>qRRpBE"i4>v0 ;1c$%%T7ل /].""B@qJ/_^PPЫWW&%%={6$$o¼{ 6,--m޼yď?۷tŊ'NTO<_`s]zuDKE~v!^LU?~ҥKg̘Q kO;sӊz<jEs\tcQ;Z]mΝqc{A٩rҺ6d~w-3;n:8={F KxF\:ugRw߷#ðǏ5-]4==Í/:99k׎x{իWGGGb[nIrnvr ŜB!)8BKF駾!33:B( 06255RIT*KP7XAС'NYPM}P<obBit:N"LLt:ĄBSPա%ŀJD[jW ƦUMTmܬnd|D۷wͻkۻPdCMKK4cǞEDt2t,fˁqvZZɏ%ݿXRR <'c]ڵ5HD<ƾB \\,'_VИLZp{pHT%'}i5F|Pg%Oz ,,hfsc%hi4>$#r)B(;vݥKv#N-\V;r;--?v[/qBN"FuF jOL./6}llVRR>g;ωe:LaddGFI$&8-(ȭsgOGG C@[7ݻ{a'uܵ_0nP{hF"aH& H"ŢHIR)4ɤaF}?"~o Ԕ? JRgVcXX0I$\r~)r0''N<;tpn#4th௿ވVVP!d2œ')QQr%J`kϞ>AAn*"AG:DW3`؅ ^zѢ5P1&G*%8qDna }p"P($KK( d\ " ofƾpqp^^\u擗OBXX! iǎ=S(TVn;{v`rǍC]}4- vHrz<'Cq)ؼy4 J"*)*-t'V[6vOjwe,y3jԮg2@W Hr1 hlm93g1Wdd͛o QGB?XG<**-** !dfTreI>v@bjjҭwn΃'.YrJ"s`P 7oo[C ƌ`d%!!wԨ]<kڂb̜yh_~ 7@aXH{H8C}|6BϯhfS%1>* !Tl*:FTenT*UBaEr˥%'%#iVv[H$EE"aaXTT$Ҭ^FQ,-ͬY[&!ԡIs W(h(3u\RJH)Vp$'ngg<'ʕC޼?/_KT@"#Sny[2TeJxPE"zg2deefiifk˱2bذllD^Ynfړ\LM-}Od>:X*Uic9y{zyq۷w4o sO陵|Yy!$+M;RN1331t8Id 矗f75#;>LTȦ*/(M ,,LBbyN *;̒K23DD.mjjB 0 Cf3g7gwr8|q^ |@+rs˄B ܜr\E\.arll kk6^T$~n80 {"T{x_% IDAT<'//[r@P!*bX,JB BT:vѠ1oߪ;dzN!*{o6CSd#M@pSrɓa~UGV" \~>?GErr40\6aڲmlNTPdoo[oo۰ T)'J%Yx  0t,!j'\k /hlmmCCC -\*.HBĨ|DR\$!PRbL2BU^.qh IJ\,J"JPVY2eB& F( B!B!bI$IDB2550LdPd"B! d2En.?38=hɒ9)BJ7')L..Ζέ{8qk∳ Cqo9aBѝ%˗J]EP@SD&Hӫk.ŤU(ŔY[S}9~QT*#VX <~|x~bttRic:4ԻS'w}ə3/f>yz:8:ZiOd>;;è4gbŋ95Mw̘5kFLrrʂW< n&&ҫWӛ-i4ݻ!iխ[o"f=~hREzzQzzQZZQJJ~jjaVVInnB# ښeiifndl6U+Rͦzo*1B)(~zRi6#T5/|Py!͔&䆺qu-ae" W\,JN.HNOM-LJON.xDTHE aaҊ^HS*N0 qsEDv+{ލy&a$TH$p6x93­Kvߏp!dnDu=Mffq^H?YĘS\]j2);wr߽ML̗d2ÆMRSlB1i~@PP  Y BB!YYi@rXvvkk`/>_]1]llVrrJXt;oo[//[ϱ];g#TzQT$z$;wfgtն#ܪMH$8p5ok]qd…'T*\.WR(䄄5Dr=͞}^J*laܷoR`KE r8 >#-͹sѳf6,pӦp[|$sj QQiY-["wp*<'O5+.0 !͛w޼~dQdBU'c|ӦժCB~z!`-@EgaZZQn.'rܬ\]]]--ZXi޼c99eǎ}]'D(*z٦\ԬJLUL" 7Ԕn\J*K1CiK1#q8L;;s6ۈ+w22߽%F(V޶Ζ^^\oo[һmn!)ԋPHs>ZC1m~sݺ:R\U^$H$//P(W9$;;ΨQ}Ynnٮ]wzT*U*4cFŋ?eJ<~ffq^C ?_^H >@}H~\u UZZ۷o&'VTBl6̬0svP;ifذmmDBnHSW^.MI)Pg>gWT( Hd>u. hN>L?ɓdPbggN$;q+B8a]xٳf N3IVT#ROC"TJQ)?_cf4󖈇&KK1~⌌⌌ļ|"s8L"(WeԪʋGmv!~3 NΞ{Ҥn S~5Q2 FxdTH}nݥci61Ó')99e}֍_H{l>lX`íhk@YP99"hNqqa;:Z眜2")-0% %0+zrD6k+K`$d2Eii9qp$|jG,;T}ΠYÿ6x&HNL#=d B\.sМ(ׯ7o~B kTFYDe. g""Xᬐi>ӜWzh@7b4Z,l7-(yPLM5`aTV`lFc4:j6כQ5mv@s-Iy8:B$||DF&)S$F#x/GSq88O P ܓI9JTZM tFFB.W9O5kثaʔL&k;_  K`"Wrxaf%hT % /0w$QwtE'OLք~jj\jj|bbN uUTMMkV SN ۔TUX]{#RR'@xP14\V*urQ'urZ*jgIA}X,_ftbѹ\:r=Bhb|udH0Vb"O < TW7?/=+v y1"ғce!}q&Akתb4ZV;t=Zp)5j;YCmdٲ&EuyyZ??ILj77f/H"LoΩ@P(63N2󩶶͵ A2S  a lhSV&ΓJJ- F.W lzPCrAA [;iEE"Q}]] >x^llP\\pd$4@z/%%SO.rnG?>vҤD'JCLqgXX@ϩq8ㅿrBr<u\Xu$aƌ!Òɛ׮U,Xr>ȼy_ye_k&E K/Mh1=XAW)"'mZV9X򆲲D^^,+S&&;*ɉ` p@ؤ*.<BzӃD11;/R[y}VVPV奥 DQYZx< LxxhuO^ Ήa7FuEBBQٳ%qqII BU`7__*lg3燫W+V;F> ?aC֭ͧjhЮZ'&%P۶;xJ~ ^SӔ+]\CC'O6-1<wWOP74h.L jNs/yß\OQЀXPPYPNĭ)E3\n4=оZmu^$/*I%j'B!766(668>>8.B gӱc[}ƍIK s:!݇Fc8ˇy3X8^l.xw/.^ә(t ~hzEF7n7xpH'+x@H_钥Kwm:u9 >;gv^"ĺ@Pgggf^nܟxbB2m+W=tG=phAΝϝA3o{yuXK:~pŸp۟<32 hUUkhYMB!wge]]7s(+I6E(&2(&??*pG1ablHR^`D"w x^7jxf[iB, OZ^MNB=}TrI5}6s׮Uƾe&,_Рʺ/׷1bڴxR ]nnFc IDATqÆASA0mrΩ@UW79D;)03G>z~t@9&5e 5ݪk ǤOM^ጨT:?~@}|,Lv5ZTN5HEIiR;/ξ}r'h0 'X~Vd%l<%& +@ ̙<љ3%cȐд>:e[Μ)7ol6tصuuMfH$o?;}̯>7yVAp8G]W5#8Fv;l~'\9r }9u%WT̞ҥ~}\5**=}XZ.J,.fdlܹ>QSܹz9!}0#x7^^OT*CI ΔKJd:jhnT'*2xK',]:B:O(&gsQ6@zK09BDq'L^Sp8d`M^TU5Nnɒo5O݉n}٭èڿ7KTU5fe>;tMXUո{{V &.^<&%%xkתdbRRXjj|Z >k@wF]-z\Xg; dLVS\[\S\[ ZDIr3$ 6&7 `n3͵bLD^PP&)1Q[,mŋefm"T*O0 '7ܹxҤ+=@H_B7Үs7Λ1c@>s2jjydゾ~/,ㅙ.\(e22Ft J/Y( ڹ9:, K8z4B@gN0L !!>i5͢E?[`]=qF19%(&\t ŢˆNച g ZAt`>tQQk_3w))QX5l^oBQFcr8Ap ZnGu:v]3m6T3l^o]7[h{ (jL,*ܤH JJ 'T*L&Rd/<"yIXk޼٦&ݩS'N:Ul4Zqp rJ&S5djT%Bp8678؏e1)TrM~2dEL&1@SOP*u Z.WjB#JTR(4zc< stW+PD ދd=^rXa^^ac.<5u '.aӦ_}uٷ&ֵ_ jҾyk|qqF%1q1}6,{XdGaa3ov+@HiŸ۷?7xp{C!zN]Vkzodhmpa$yVV=jȑ#MKBu7Mexyu>:(z;Zc͚x<>..MB G5b94$BANDEqB. {ʖ-g7o~.brZE155\bb0h<$ EiKu:3m,KrU]+|U:Du}FNg+w&f6WU590VRҀpV{2h4/`2Y^>|SP ̱cSSǍs}u(:LT-2PJ8ЉD`Uuu͵uu-uu-2$2|>O|?ˀ?c؀klԂKVaP#(ȏ rc'a  E?,jiig2p  NCv5KX1,S|CAAVk5*n]IR՘1^Gx@Hԩ_wxǺHzN]͆Ο?WFZYYW^kgN ۶?-Go ;ٲ>۸F]L__JXX?jjb|/^1thh(&BV;+v@_8%8 P$EY` .VI1N.&&hC+N(z,μ|f[G *,rd! AFc\ *1mZ`0H˗ vB%Vt\-NqFx>Vη7 O`ͦ0+5\{ݫ$[zփ'pQPP[XXo4Z`ÇٿzeR `N6(99 K/q̙;Z7O\+ؖ-gΟá =t8 1q8Ϗ3#m='9 uI\$/)&N$#"A11A11A0l$%}S\9C2m*A3^ -(ȏNtwAњ"De%%Jj't 9B!72[{HOO>(kݼtrrؗ_Ύ`w8:;;L&<ؐEF &]MMS}JԠLJK":O{ɠjӎwx ZfPt*L4(67@JVkrobں:h@y'zM%4ΏJ6ۗr|p'0Y,m6X*IEER\ H@O\\pllPLLPllPȁϝ!OOMB!7-mЌC##;yU \\>sMu- .''M&رkGܰanϜ@q#ִbůyyޚlDˁ;^ڵa9sQ 997oP\, f 7oxuNZ˗>vNswts@ jWT(AVD"yA܉#U~+)p}}ZmM Kg0 ZbX,D"7mx<.$$ 66H(EFr"#d2\z֯?i#G^ ƺ~ͭ[uoTlلS;Qo߻v]iJJ [xԩ;q4p$/O+h&ŧ 6, uy?f4Z,} D~__jo*QϏ(LRQ1:wv>qt5` Jrd}J.WK*E&SKBOH`?@9ZZN \LV<Í  Wfe>BӓO>º.<ط4yޥXilM =t/99vG98Fz/EEŋL֭[<ˁG@KҾy|0Zu\Xu$aƌ!ú;Th<˗yј1zV@ IMMSaa}qXVT$iBQFƂEqqAga,[K˿QL/W̙T*JehhиA\t:oV@94Dz.0!O8`雚u hg֯?^~ΐ!!>̼th=kVώ;nG]+:vVyy=aBljj Vr"z/àx|(Є pVkV JASS R]` :9j A Ƒei ;P(uMpAA]yyݎH0Vb"S@ztСG y!O:eߟǻ Ոi W ]S9 jzA( ow厌dt7ӧ٧9p  =E<ȑ$/ 5LҥVU 篿.\xvޅLZdX,۰a# ºHzN䫯'\>hZJ[.W>,-m0BJmz&վoߋ ~x2:tJtt!A쓘LVR(&R fk"\%gApoq?˖q&"VTH`X,`I(OU[n=GwZV KP*|r(;;?-mg쒏{df^2-S$dd=Z 4WV抎)|qbRSǍl b7,VMlvdw wntfn0XfhhXlzjEzSBj"MS h P חt c0hx<חB }})D"ۛlؚA2dFm Z,vҢW*5V+ DrN@I1m 6+jpEM@38L>ߟácRVwROPp@\weR(Κ5쩧{kn!<csXO399bxT_2jԚ?||QX^ㅯݶmad$r 9u˗g㏟X0ZH,g22FFݬY,/ð >ᨬluN$ol!x xu=Zmh-u4yfӻJv1-{晑]r@H{pʒHblx3EŊ抎{=$/z 'NNNg~G%fС?xV$ #}Ç+uJ%裃&OnJVAҧjsM@@x`v; D.ⴜAhG vdTvө˥ʭ/Z:gSuup$!89|ɫ=A;:ͅ n63\7mŤ:u 'O=̶c^]Xf>ʈgpW>ŋhdl+<@Hl}i?9kgLzNI~@Dge8rddFƈiD &/=DrB!ZZD"><\||s߾+]Ο?|@tO= XOrbM1Zf,_ jG"kg=Pˁ@zNp,\saa݉zBgtWV{xdzugo609A Wڵf=`'&TjD1FL՚;F1o LU>]23g XbHTܬGp}q G 7o~Fq?֭7WZXl]j4Cٺli"1Q1b֬$/.j0X.^,'/H6L?yrp~NL&R)/ojuu-ڦ&Bnnֻ $@p:vlx< 8EQw;S|0(ۚj6)i|PԡP449X}|BB$87=ВU>hIb8* ߮\=zpI`noRΝ'MúFcJM]ٵy^O?|^=ρ8F`ٿeO9A tFucck)!큝QLNoI264hrZmUhR(&Wmؐm۹7>쁥u4D%%bYQ E^11ܘnt47&&7jw[7{|!j|뭬Kz. uvvrQQ#OOMyy<ѥKe>99<55Gyȥ; yWW7)jBO JdhL D"t.7l@tsYf>ئ妵`6է Zt @<\f0T| a \3WT4'D.ȁES `9sFlOf@<_~wޜ6xɒt C\9uɒX9r%;wx.55Z?^_z)@Ljgrb+d><r S{h'ڵkI/Nz>|D"̘1$=}Xrr8udΝ]Qh47j_qƍ&`$L D1zKt `ZyKNx99CP'%}e̘1Z< TR"M jzA( `6WYsx˖3wu-8?]әBnjj|jj\RR4- J{(`.xٙbx~5kұ5fmϦNM쳙X @Lja֭;MK\~6/K K/x4/oUoYOvgf^nJLddx≡4Yn-^ X/s@fC@l~\p8|C :h !᧙dm-7I;+Ϗ9z`oFnI/ޮPsrV`]lh}}D"/(nSip 0ȏrh@0pҮgŇga] J'OKg3)_Bg߿zY3M:;TͶ+W*rsEGܔ|q1cF=HNL&p8Ezx1`@`hhCpDϺ6ړ`XjkfEjP(jvC5lvl،fhXlzftf j ^Hˋ@EdD8%G@8EyHx: *H' \STQjhRVT4*jA 'i+^ …ҭ[Ϟ< lTbp8t-Q7jyd9a=+b[u&Hx@iM!!Lqh̜I6<(XN,zliQl6rs m;wjed${Μ䌌ݱK,8!WQ()Sz7W OMrd}H$"GQbg2Pfp?LϏNb u1E&j& `qP9*+՚[UVkZzP9Gd`J *GˋM&TR/2HT2L8Xl2fUЏ@H$r)RP. F 4S mn=O/paJY֗(.NС??u-mcSRL7/@Lj`[ˣl87, tJJdӧoXlʕS\5**=}XZ}ԅ^}`΋;w.7.ZZ='"Q=p@GDpuQLjA8wn`и\:MQL=c}dzօtV],DEEbYQQ}sAŁ}d Ae륇c4Z:wIIa͎`w߹ j33/ = Re D]]˙3%yygv;:th''DEqtȃVrMCÿPM2U";`@`pJGptO2ޫmZmp«ܜ Smc0jw_~TکtJeeece\YUll!B$|fXX`x8;* 9]lhUUcIL,YUU͆HHPȉ FGsCB,ܬ߾O?ZO=/OpXiڵG^] 20b|ԯ^}+Lºwqu@q#@IlŊ=|)/8@Az sfmʔ}{3-ㅙ.\(eÞ~zDHHuoO[wL6ZzNHwX~Fk7nT*ve :th! 逛(&Рqm_D19%( ?:F1y ǎzgμg&˛"QH$-*ee E m5{c])WR]FFw~6d xcD"_lIh4Cn9XZZF…Ҽ$(&zE*\G\dgnxXYQT$/*DRڀBBqqqqุj={.oȲerJ'OMY=vRUո{={.kSj vJEn? d2?~|Ljjرѽ1!J\T-ʚFJet*P8p8/78o@(S}0j/_``0ݍ>}E ߆}`](ꨫkH%%2XVQ` ):Nj Qp/L&'HC2lؐcDž3&ʔ5-6, ZKrԩ7{uBIN/g{T{h|uͧ n@ϩm.\̙1cV5YYWI"f>,99zñh׮U>}8OARmm5bL&SPԁQԁ DD1oá3TC1mg׮%=|j\TTTk6"oЄ.:c2{ 'Uԛ8yw5͟?R,ㅙΟ}x=_,8!WQ(ɓћr\4VT(uMM:iu8X LH=<}0!R])K6ZS`[6ZSwn0M9)@1T//0,E775F T*á}})NkB!R;$i46'__JXK(W+0TT(?PnnIq|dh?Kqq͚3Ĭطʕ{]"ĺ|'W4t8 1c8Q[OР-, oݪnr8~~ ~||pDfBz ۶?> Gc] ]8W%%}^_uVݮ]8pf ^d\BB׷>]':{VlԸB!g @<P]ݤPh uuMrFh4&g;' ߟ38A!!|?E6@QV{޽Y,6v?F^oXwWt @)$FM@=*Ex:ڪIH)^^$&bDrwB /E(AQQhnd$Ȑ^ą Wj|)/0j7=m6tǎ.PSӔ~WP\,8qo% t8 144h?Pvv~Z>uEH=6x='N>Vu믲KGx{S-\ܓ5t׮U=w /úv='H5 JZmT(4 Qbb0~~6Y'4.&&xhQιl/H?gEE3gڮF N"WW7!B!W($& B^~G\fώºH{),}b'._SMZ۷/.3g>D{F…Ҽ!}y jjj kB!DHL[Һ2xi& 0vwrsrwhw~.>_ lP(GbhRMMDG<g`@ t;[NEH$9sNV'$ki@C1F`js(&(b%M&&Zm;kjRS @mrwܳMCb99UMߗxB mmW59;>:t ;w8ұPRR~sڶm @AMMӵki񲼼aH ԒĬĬT:de@7߸hfЗzϯϯ.*)-ib0,EQPD##6P R6#,=͛˅Bys45rs+rreeuQd2АKkjI$D" Mpx<WPpQ)"\2^Q," :8شm43אo:qQTT۷U`Ypl˖ŋG!Kb7 ^t,ׁ#=11)nnV::pu/#"Zb⇧O7P(=[[u?/2BB'Nt{<bt,꜀ [-w(&ɕաjj͆TW7zղLJi=l- ET#;rި Nff噙YYj$)Lpv6uv6ur2uv67{g^'ۧ,Yڹ~o`0?4cA H_ȋNL==R`#LM{9FNrrnbbփxTD9zxXKD(슂Zx<6xac#Wo9|HNk( ˧x*o4Twr(nժ̲M&zirZH$>{v!ҁ}իWݻ޽zԚ+?PcD$͛F'Ιr@ӿ^*>SӦ&^\ܻ_~]dc?{3=8))AA'TqPt/jld7[jQTW:4B41, ŋgrj0v޶`@=7k֩3g ¦KJ 24$dldlfiwFL8-֬_XΩiڽ;ƍh4 ^46rƎ;r}_0$o߾q^fEEiF9 VJ ՟>UVV2jj9 , "zz$CC jda ʦի—/_ȫh$VÇP]]-zͥ|)~ή`P'KK]*ՈJ5W$<OdH|x>@8P(b0d <rJ}OSg=,(N$b54pX&JS>X믏?0bn{Y/XZ||zRҺ1laaϾK;X5 8F(#l˖e捌5::%99ZΜasxikk LNNÇY YScFќh4'p.狪eeu+jjt&SFij⵴zz$ L 057u tFZZQrr'5F?ϩG)c08hO+~n L[YOT!O끦ڜ} qOJ:+5`ɒ s;;8l<{v3ұqIIs9ujCEafUW PcD!G$?}YZPZZ`@1O*3333dMfH*\4xE#66-<<64w۶}rG$cwwYvvƓ_ :||HS[z8ΝOsD"H9T%P|zIIlhXbS}={͚gSޅL9KINj@de}rqaa4/Xz{+\\CBOwCpj*.Wy^bbVbbδ?xϟ>WVձ .ςp2ibefM[Sz}$ì,vԡ~;X)b2y5pSii]NNU~>]"b0h-x;x'{{6LK\i>mVSl٨Q-ˤZWSJTqex2#G"Vg?=G*Ο6'*11\SO1\m͚t,<HwܹweFX17 JfVWǺMSct:ƍSJJiC54p U%p8Uu:sREz 9:PL8yb(\=MN}F9:P}}vZ5tF󪦒:迅MCX鑚o{nÇᦦE -99wѢsCZ=_}d3D"Ʌ ki{,77ƍ[>.0%剉Y33˴>>@x̲O*kٍ\/RSC8MM P8>__obI@%m@P\XXK/)>А W>#?9:HC*"%S9jO(^}Νӧֺ)"Zaa͛+/;֭__mt,p9.Wp25 8F&3lǎW 'MeK@vո077.7"K^̏Nw/SC0x(.LyͿzz՝<9)C1uKUU>0SŒgrs߼)$C6̦ݑ t:33,#,#43 BYY鹸 d7/:p&Ӽ~{4ZkPs瞱йtiNߟ^O*)[sxm6EIV2k^= d"S">JIIhYg, 8>aժ=6yŵs`З//۷7n;]y&go 7o QF4aϟ>|G/,).b46rb:(ŪHx==M##1o9{ׯ_޻OP:AAAAAm#xӇ 2۴ij%KJKF*߿SYTT[^^_Wjlr#X O25ձOJ鱷7JIIv횜urs~pvuӦI^B2p0B鈀x&0\>_ L./KxpKJ޸ p} ᅬNy/bxe¦/K%淹 2@$6/~UDa45$~EAˤjkY..[__1b]cQ|u}@uNP<@r,n蚚-]:EN io(&K3tFm-Kv+MPpݒ9<\ԯbҺgrsl>j4uPZ.L@bI~~5\ؔYY45{xX/Zb4iϡ1=;dBlw횶`H#h؁O?r$aθw3"#g  : 5 մ'"#;x+,?FF+Vc%%e?|qθ ;;h4 @뚛Θr\ &Ufu;F7lZCC%aL&Ki^MrRl|0<Ek65X,>+pmID,!_NH8MM'# 8 6h Twm4D"yӷF:^ؽ;D @Nh=Sc#YU`0MMs"dbbnoooD"6*j7ٸѣ{sЗ`0MnzfΩ䮢͓NKE\9.,T綶7O ̙f7;wÔa8]]RPGP'LNML̊N9|/Fs=zR=9d2!b||wf{7 Z5 =˗ٹ3nDnI&d|7g2pET' \aSł먄%%u\xlcs,8kcjxdՅBVgaj~m_u99޾ {nfd,77KN.',Nٷnd)S,X0r@ 1uÇĬď) ח ڣ p0aPllĤX1v"_0,ի~M L&t#GDSUVC1!Y))hMXxA3 b32޽+yݻR:FQ[Ljh;~u33iӆ"WCC…炂N?gBC}i4 O|,8kɚ]WH~Ç/[6C:!] F.4 E Sicxu HTJQ(D-/Rkiip*Og7o==m'`cǎ7oVUU͙3gƍx|R^zu6fykWn ˳ST*-*Y~~Wx 0ۭ^*?b0h!YW4t.& S{3ѧ= IDATBO?zE:4hI,Wgfef~]Y,]\CB\\==)"a~]HwNNڵW-,tmP-6w8o^Ԅ [#uW,};}7.H2y^ttʦM7{֬asz[X"ݿ,,tCBCB \/ci;~S@`wwkpݻwo۶m߾}6lIU 2DÇS4)?&ޱcGBBBaaMn:u7䷠:2a÷ =`ݺk?ߵkڰa*|A+բ۴~ ߅|Jc;k޼Gܿ};}޼Hx P CΕIEFދA0\f l>g2l674prs8~SukXLƓHxxN= O&9jj۶НvUTT|v6m6mZg!lgg`cݻwW\ yfРA;w>x𠠠qڴiρtdP@jêUJJJn޼innV__/zzzֶa֯_ޚSL hctu(-ޗTW7+ĽuHᄈ2OWKR;;w::c8z%tFff9\U!%NN֋;8!cW1n޼3p@YY갰ݾ}ʢEHGtK@ќ46B:6P(Ng޸…N%a=qRMA\\bɛ7ʼn<{.i̘4رЯHҫWZXX*'䧪^|imm-sss;6tkiu 455yzz8pÇ[nMLL|!+mZlАţvkڴ_h4ݻ)U!ouwW g&GHH뜺L(8Kˮ0UGPcK+/lvG EzBCnȐ!ݛ={v\\?q)11k˖ iӦ0`0۷EN%ʾ.%&&ρ^s믿߿?tP?>w_~E"ٰ zzzooM@  bXZm-2b؞hR!bqӐ!^^H|q팿άl47s  6֡j..f\\̆ yhfm֬Sqqa:HG*LCɤɩڻwFxϴΜ8eÆc p~V14$X1nٲ1IIQQϖ-А5oH==<1͓JJnN_,VÚFs ٻPE߿NHHhT*ZJ__^bjj:zѣG=ztΝ] ڵK__ѣGpUJwvv>|hhh|blm .]Zu럣GXh$*vwW mߦќ""xB%qXq][x23̜9k*Z۷o3fLTTcUUաCUO k< e˖?sOްau__Z|]ZtiH{adɓ'eA}}}KJJ }sΐ!CD1||xTH}v }}Qή-Z?fXD"ݻwpSqqqaaa|> Pahhh``! [7`ggo>YT-j>#997>>}=4 W{j5H$555?~Bdjs  3p@B1C>_nݵCwLKrrn*5u<=m!OŒ_o)7Oˉ nPŋ>~d6}|\XO4k֩&ՆBVww'13ɓs߹3n_HG$F9.|=ws۱tLxs,-uCC}22v8E zsXIR555Gի6&&Ocw}/-ͻq73rMϢEܹs߿K)֭['U~@ S6z{9y}C͛?Co~Yqsó!^H- ~ {zhi=9,{…s۷.\`nݺ槼ZZC*F _8FEFFd0L,ph {䔙aÆ7WMRӧOuuuBT*vrrH$:~~~vvv;vJ1cFiiiffСC7lN4d޼y6j}_] qhȟϏ¶|ui[ӧ nݺUQQq]3339mn.J! lhh8s Auuu1d{HG5q8VEۯ75]С{tT*l{7c[oli~ٽ;Ν=t:{񑍍lc ;{С;X|„k C|a|ɓ8rOP\g9[runl箈؄萠&HO>-J7ob*T './yVe'NLJJ`M*7 33N>N444@TSS"/^6;j իuNRT$ڵFHagggX,XSunݺ/qd522zT*o/['33^'66N*0^>yD*hS:S[[Guaێ?6;… /^(Ω͗ǏKR@o^CL믿Z fxEU鸀N(TyUGol^^W>sW2jII?C ~TBC{-,֞9X g<[?fժ`(]go>""Çr#:XQz=p!wߝv- t0_} A߿o4BhF^~-8: "'q"!ZxIel 4T7nlos*:"Ξ\,5`̘aH$?޾k{TuK\X|ouNmmvu9uNri۬ $ _N/[ߟJ 9|J[$HLFCBBd Kg^|)$mΩQFe,u۷o 6lذa[lپ}u̙|5,xb5d9 Ï8p@9+ӧߺuÇ]0Y# (// XBi |&kT{ U]]-cnCaZFUťEfZ/l! #x0+.]RRD"5СY~~N Ѐ͛)z$#iiݭNnjA"ᐎQ)XXWX`ut4Tгgw{"ر9d2頀nQWW sZǃnG:sq1?x|˖ΝKNqq1 1í>55ڵ>IL ]С~~N& 5@:Lի"HOOO$66ٹSڶX<AЀ$tX,5kgg'K>Hhii?y nnn˜؜H$N2ƍo~]{5\6f0֞9ȑn=p pH*!kynџVnft6yrMMMY7ĵYZ$eSXiəF;(wçI洵 ?~8|pׯ_O>%ϕrև\gޕxz(Y~+&&ɓ'IIISL}]7n\|K:MN(BԾH9sey /ZrgΜۓ'OiĤ~w^׮]9r$< | (77~.B֭=uS-Tup8.w֯iFFl,cxϟ?˖8y@'QbbVXX+kkY7y?y"'Œ蔰ѣ }Ѣsia{Ǐ?ȑȩ9337WX3O׳T >=ofgW W,{݌od|HwRҺP72d֭!W넄x_ӹs --u呏>o=[VjűGi5kvTzԩoVuB߅ގ' htaa!cAA)E]vl&L|_ IgϞ}ƍx777YVVV}Sl OnR gm͚ ZZ?ϗnnn.[Һ6םnݦB΁L\nmrz0:oaɇn~GGG B"RṊIU`mon6H__۷/]K)88xݲKgϾrgϞ-~wS ޫs"H}ݬY޽[XX=ł ,roAPSSSdΝy>|aʕ%%%Dv;wn?C~~ׯ7mA7nXRR9a„'N@`0uS-TiU/n4GaZF .>U^;j~?zy^*̙ycYPPt,G]LLV\C:@a^1bÆ3gG,<{d35s7S&ŵg<WvDB@g[ޘa2&r"c=vlx#[v G%<okkyQF͚5K9i[#) ݃vfm9P(Tll̙3ZټysqqqLL c~~Bm6յ]6k,E. ӷnr#*{Jk?\VPPmf=e9sY[#_X?~]VV`p44p&6nnV::Hw0skbbd ܰ,VɹnnVH('<|o=vsiootD]Q\\zJ*;v`hȑmُ}|,J5 L9 dZOН;K\"0jVk_]ֻ l R} 5 <0DT*@_CMLӦիmi x͓M;~|%#"&`*JoI<2k)ٳ{kiCtt4<<|QZZaBBVLL̴G@9=A#&$<APc#'>>=>>]"h>>d<e{w?\~}rR ==ҀFϟ:'TH$o޺.b /rT,Oe^6mG-[H&.]lJ+wYYt  H_Ȼ~ݻ…EӄBpm?ֲ!'rs6& ܥKrH?4#8/o IDAT#SMɱcs5 PGG.\x~ߏ}Cvayy?xωs^: SPwSuNzbǘT3b=4a ==a* \"r/lyyK).>ܞ RO _N%(u"d̘CZ;6M)sT X벼npq1 :u(C:.p>ҽzUd45TkWW /J'O&݅ }v%Q|MMș& B:@aJK6liNp֭55Ux&^\ܻggW gp#H O|JLzD":ҡ (.>|"S'Y/ZlQ ƍ7}ۧ)8%`:% GÇ͋znHYFڵ#GҬ l>} t˩uK:ǧ_"cc݂ 蛪22JҊ KB!&<|Af(Q (jŊqFFkc++&U 7(w[\`O?B奷oot311kϞ~;頺HS❙Yu={'Ohu6\8yYO?ٻN~~Nv`2\ JN}= A&"P|H(p{'NhBb؁᱁',ٶmmPΜ6-""v̘.Q?5W|/S)0cXFyzxzl<.11+11kŊKro]T: oQC`p nc#YUlce%C 6Ե B!hi-,t<<  АblL8pr& FM( `ti^:׫O-<&?'A:21Ѻqcűc ;wƥ9 *+/(n>ݭ#6_Bd'H B[4dEBP N44p8YYh4Z$K$R2iP :P|TRpX] F^~] VUԫW_}esoÁjkY^T}}=C UW3X:VM ?5߄Ljhlm!{Put4k!RSCih,`HC6n*++S$-TSC:b@ !:t( e XJsX4bp8|Nu<:SYɭ u$* ]]׷\ FKHXl=x0h ٟ C}䓪fĩ*.f}̮霪*! ) (J(ԗw$,V̬Ccf#IF@Q֙P !Pvv3\P, b.W,I|@ 17'a &!o?l),iffvѣG*ABIdRX %KN|J11vݻylWW $> 8g<8o1t@k@k~~ullگ&EFw "]pUwOɩz0+!!+&&njiO9;O;|B.]ickl|2BN؂(# 2T@^huZF{(CEPD$쀲! HؙMP8IxWCP9yX&0::}5uu5LLt%==mLH `ٲS UUULLLܹ#1$P( ` a0ZX6B)xel>5N,nbQ**]\]Ẋ X,E"XD"X,RJJzz!*H$o D,$Ltqqi0}}=]_ҕ&ݴ'*)WW?YH"2u@\:SW$cP(, BJ,k$sDև -ܺ挌RF+JrsJXbJAAc,p=rYQI^xh4V ahן8\߄B)K R|v+ˀBBoT 7 y\J#koo13q,غޥK'O'kÏ.eeS(.S~4Ugx ]ZZ hdNՑ.QNڵ7cb2ׯYګ(. MHQ |Q̙3l۶ HW$M+Wdd̝ٙ;|!H%/_fGEe"c*z{++ҥp .4Cjj'4TTԶqZZ@xڿqhnW*cF=\ncTTFAsEa!ͮ/a4%D" 55;wV88}ظvc#}&'_tرN,|0 Νbvbv>rZZ֭ P(UoSKX,z߾)s@Ѳ BΝ[``:V;cc0gpBcd'Lt!_@tH"޾͛:#t-ھW9 5&,=cQ[j]]SHR) t 86@tȑ^>_KVB1PL({>V^^־v ԥHä R-eY}}С8BѨ+W=ǡ]*,0TFv~2jlHAB 4c{WIZXza#75/\x|dCBcϯ*Y[[[h(G~55 K\qvUUvvK `k}NR mmm THȒOyL ݺ~:@ $&KP(RWW8p# wNK+=(@FhCFF)z͛-1(pJJ-&++:8?~,?/XҖ-#-Hl|4F3aP~РB]bԟz!s7IANHW$O,\RRBzȲeW> B } R- CCϟ]T^Ã,{+DHz^%M$GG 0h[s'ŎC9xpBشP(7i.ρc.tSȝ"͛ܐvӝx쨨< dIڌK12R6ȫe**jYZ655 ;ch]] >zzm==v == G1;(F/^\Hڴw$D֟A""ֵ7?JJ}CBvHO?' E{{۞?dr~v{ rLݻmPq4Z HO/ H2D"HD %\yM;jFKKʕŃ![k"22}$b1'>v銺i8~ř3P(_YZHHB||9ftV fAbȌZYYȑ{x+ X,.pʪ%wVQ;9qrFFZ`t O~Yn.U ;?y}ojjŗLדq>\ݡ7n%_AQ(*8xڬY803ORѲP$@4y ]4>N,ǬY՞oftfNF+NO/mlahccmIbJ :WtEDXq p|n͛ fpam`-C@S׵ܴ ;Oa^9v/?R$^=UW +'qb|NN9jhh}"]? @/ &SBgOǏ;OnFǟBB&'g0g˵ko *%X,8$di])+qt-yF%%^ xJ֯_SYt-[#[\NNLy8k!3fz&O$Ղ2opdUbY'Nxҥ&؃H@L7qq7orKJQqv>sALXiҀМU<׬H'8uѣD"~ϞIGD"@jD"vzd` >bDC>—/7o~=cFBÈΈ@UUՊJ50D40\2ݨi`-#%<^f&5@iwgҏyS>f %>#B:4{sjb qv= wjjJ:"* (4{KWB-M\' b躺?^]N.ZO{ɓ/N|q/..:BNgH!I$xC& 0D(9pf IDATs/]ZÁ..=/i moovB}^t(!ϩO^zMѣ^٪H ]СkxX1C)mZUb9O6g|ءъSSy<J:9Y8;\1x?}}}]\]P(ԅ w|@QTͩS5ĉ#pk'%mg^BZ9 5R%ɑ/Ͼ~DVTVo u@P}>\`U@ tDLVVQVݕ{@7X5=.VH$ggKn2@0@= l3U$EE젠9S ٽ{:uf)ϿNK+`޼f9飂t]ݥˬ@hkkBZS6)ҥuIseRdZꚊ VKKek̤ G]G߿?F+ ckk|k_(j߾)޷/_~ѣ$hȑBBvPde0s xQ$c-X'&~p!."g4E: \(Im.o1BYЇגI$yOfgeϞ}FWHД,$憆HI ƍ_:$Z~>3L\eC9NKۣ`4|a'yKJv()@oLLOL'bmmSR($sO?WGGj]!! qqt ٳ[ms8 v>_AeFڤ`^U?Ƴg N֮ǖ)cXree.;g㖟 BP;// .ij;>rd̙HU%S춭YdGiuJM-b8O)6pl6}PP]]Ţ-- q{DGgΛw./r׫^%iezxlE%%̢En۷OgŦ}Nnn[HzD"|Ir~gpBu8+o޾3r/_~s|lmm̙˖ @KB(#4.5=1Ks@j-X|·]*O?Sg>4v4G+iط/w^^L52 \n).aP(.S\tĉDT:F&uX\YYWYY/X\TV2&ɝv%cIWWCOO@ojPqqn3g^(0p̺u?|eˮWur޽aϿ-b Zsj^"߻CSKK/?~ VB40$B?B$Hncc,ʺ3N6ݹ\{i}"+aN{w:w7KKK*+FQ(ٳ=_bkr%Bp UF 4 Ga!;.Gr5 F9rwkR}oN4tΟdj8(ȑ7 Ϟd2ث8>ox0fB޳?YԩC,q73SBvTTFTTƻwbc)]r1\&[Sbq ._͂͛&( FZN4?yteE4%, \i>n"7Nk>_KL322J!"pI4̜yΝ}I|G1?1H$=ev`-C@SMp49-0A'iA]y!n=O)$pl<jJJ( E8ڠANN^[!Ipzݏsrt:?GX,fLi=\(s:v,'h4 VFсH&F;m>sԡHCh o_btZf8՞2nUUL7orjjΖVV&'P$qq;~̚1)(hR#]K~iӘiA* MO/]td`r/ &߼=utt&2e…b@ ,,SZyyNzdz/GyF go/'Xppę3 p;w>qX ;6{ʔN^V]]BA ]K4阉H쎪kuٳj<=Wպ/_XB <,ml %S($83NWW?|q:`^SEE)(h…n杫}lR6!ϩ+NzgO}{a =\ *)vrjgg{ڦS)d86ЦfFЦVx1 ̄RSwrݏN~+]BPCC53s,2N14Zqa!]TTIY6Db0{a-mw#X,^:Qg]]3oqz"9s\NpMν:w5 N@ JN.x*ի촴4eooFru2/X@ u}pS@r%K')=ƱcK+-9O98EB',.15mJI)`f2x}ؠA LM7;7ܸAH BӱwxkBnڵK\Ly,m‹G@LWD'OR ] t8B &XMMyоp{XzBO?u|@HWJJў=߿2~͛tEt}ںںo4GAVp~P(tH[[cdK3$ ْdZ88 ,70o\qq &kfKx{ |L̇ǎDEe8:Zqu֧۱ahpJMus;#6o׭OQg޾;e"w#>f :AX8(!ԿAYYO?31 ]t᲎i1bi;vLD;9Ix}O=Kj҅yӧoz8Q['33K[BD &''ˡCV_ʎ hu pjCc#_MW. YTToE@4.1p2';-.s磼<N6Ű),d+R$Jٺue#tc/ڿ'O"R+_G߱㡇36n*G~~I]{3<_KERR>ڔpc e!};=55UU*G ' HEEV?ߟ?|1.n3҅ȇt).%eb6:!>>}2zeoS 7m z 6ۼ8ztt&>?F3y#vDn?r$lȕ+=A&bxs` n@ f;o'=JQSS0a$RgVXpҿQL.-oL&b EEȌw>Dbsoo1c(H\xhTTTСW{R6= Ūs'շ#FXCb< [13  AFGV:j6TСqe`fWt8oGD^d`cOZN  EQQ'btu5F@ڌ= dMVV_Nf//'^ιqz ALqٵ둗5֓O~h4J򲎎Hl`6Hcڭ^N#::#22#9@YhA x*@eeWdxxJ\nQ..ᧆ ipu=0q޽{;!1ˉ/2lm,= ݌=yaL&GL3y<B(2==cԩCE̒yNR^{mXZ]]+.j:!uWXȆ W p{.x}IB8''KGG -\IpLysYopU V@m2\ss.))E8j/?ª+CCYyt:c޼6hisEâ * IDATbdDGg~Mo8h{Oρ}{۲t++ѣsmp꛳gc3r„VyH ']K=~qdrpSa!2B6GYN %3$u^e^֭vbwGGnCS?))?22#<<䘚xxT#Z8׮EٳE.]bx 'OW6RvvcaaLLtV=}b=L1P(/.ӐÀWsrii%MMV#H$lCe2#F[{JOk- C@^2Ͽ_SSVD~T$ ޥ' !>f]M4ZOE|S#NNNN2 |4qQ tϞIH޿2iұ]$z9̚u:+k_/f#Gݼy҅ *ڵ%^Y𠺝;`7o' K@56>|(x$i9J5j @o!2Ξ}xR IR3r ~SD$WTԖ0r)+./甗{ T D'&&8-k~KYYeCL$DEeDEehx;SC:@c<( ilvݨQƌ:4 `>>;yV 'O M44Z{ʔ 픔?uu׮!TTT%e<8HB13<Ç#.\{v+>X$E׆"a{~2/ҵȊXiϟYBHCC@2DZ볗c294Z1 ާJPLI$k4{̙έ||~ww'o:"{R\}ƌS{{g7tsv}a.Dx~681ŦN?|-#4(Njj?n4(؜@hkkFR-5ȅ3g^=zfc,p`qՙihdrࠦɌ9<^e&.|o_oъCB0~B7 ~*[$;8{{T2~cBŗKe]nJ۬'cbjNzy[z׬YzAŋq;v}o+W͛-H"+Z~>')eoo2ۯI*7)q8U2ِB1dUUUjϣקƒ _?8B14L/t82l޹s]z,{>_҅P>eˮ ]x8eժC`DU<-rGev@@hc#oz E9USGۛ8ss]77j3rL$yY҄ ht] $+W8Ag(ii%K mH$TT^)+.+ajJJoPHkxCCN_'SIDMGϴiN?<,C(%'DEe>{3KGgǏܺR: b08FϜcDkǟ/z^u~{.wp꒞jk+rrrffY}}3oAT/tw?J:|x:ҵ !IkmEEUo/GyU[۔U&I%LO/mlahKKIӠAfvT<&NF:;[ pj~ʕ+WGddEP 4vÆYn.Cud?{0%.n3҅ oĈӧ;+B6044q${'(7yzttfrrrvGZ{yY[X#]bՆq]a!eA:dg<ÏD"~ґs irJ$߸nGzz .ߌBc$u pD"LD[F\pʛ#/vyf2>%'(+c-TxKdNqqձcѲ#9[RR ko=[ZZoO*?L&]`NIIS߾}"RNp΀' KKxEL&Z[nziӝؠ},Cv}NR^{m;u󯓓w ] E%%t:C2ꮰ A.$$vSH¡MےMȾ'AJ'Z!viaW8yŕ+o޿߆t!8淀 \.D,[v^BiH/C|Sǎ ]b85Sڳgiyy,== OOkOOk*%-TU||l5PE@vT9ƍwXWG(ǚL&`p"vjj1(.d"pni23=m|ٳ\ss9s͚5&ɩ̗/I$ *DΑL.32^s,gp]cG~7C *G:4_F"]tdggdxxٯRT+?_x A@||5E"ѡC}|l.fAbȌD"R6TkAqq)7nϯ"L0xʔ`ntZmmիoΝpgpZlNT\\UVVSRR]ZZ]RRbqO**X##m##6dh7662Z'Vr{]z)HLYqٳ$e,grr២2JԔF?~ H H::3<<566G(98 ?~"Bۼ;w""yC7nN11Ͽ[[͟:uPUU%i޼ᦦ:HW'sՕᣄP(JN.|<…::}FHڌ5הGpWuw8A$~/Dvٽ{'b֯AnF uػ(7,K..A)`b`sq  `ٞ "KwI7lq003O/_*Y_OFe,1 f>"#׍x>xm޺N0#筛1Y$YHNzr a .=w nR\\jŪGX 3<6vvf7uovT)t:#993dkk=33- Csλ_TM9F,TZZ_VV_ZPRRA?VUUUeUTdUTdUUep8iNiTW7m~'>>sѢIvꇈNgSAA -X IDAT\3UL6(*Jɉ"O`.Pl5cggcp7\رD{q}'Gwv6vv6ꢥ$$dED>HEEft]2`4"H5fmO?3||lWϺnچ Z˖MA:B۷hϞMB:%''UhC'ݻC͉ ,\4Z\\ ~`0feUOQQ%%L&S\\@hѝ;>rč[Ǖ\ZZ ׀<'F.C/(sԪc(_BHsett0:KEzz۷oԴki)H*޶$xE}}>Z[;yA#k9}J"}ۋBn(JKMMCĕs0S8aWQQ99UƦVpҳgk#@mm˳g_??{SMMLSFDܸɆiCgg(+ˠP\~cssǞ=q)z;,yo ]]M< `Gɮ55Lͥ[kkWii]qq]II}qqo|sd|o uYh_۵kgQ!F9898'=矔'._nttHee Ϟ}Pnv{D5[[[[C 18ܹ( 6+WZr-@o^7Mr hǎyVVM t@:1biIxC޿uŋ8;(8xu͛o͑- XV]nq jTjUzz)Pڊq|||xlii=ҁcAc0hKK g=|gX<^ _GmaVV9ΐ?^a<:a<Yp꣭KBWnuoc2,s*-/#gkjB:VYWmmKdo+-11?`f}\cc  BYYv/*Iӧ!!mm]JJ: в QvGwp0ZznFcTT4TRյ `0h<^VMMnxUUU9g&wDbhشC\ǍSA:(NB"΋x‹dIi2'c**2/_R(Y|{ڊ?w446_piWOԹۻ7nnccSp*(H ^hJPKN?ѣ'ٳX鸾C[[qɒ)>pp %ũ8GHfʹ#GٳPFA2**'B:s)P TD,%T1)d멪Je=% >9d2DD,NG3jXW]]4 a==%ccU,0Fi뼦O'/Hpꣵ b5\;oݱc7n$'"gڿ`$oo[a֡[F:]صkr566?{W$##i&*OJxAMM-ꢩYZ,- :cq۫W_VOn`񰦜'7h QX,dsjjrZZ3ήLO/[zw1\!**li+:}9!!37ZFFBF~&Ⱅ֮+W^?X@J pE=|EEΞ`Λ' %;V8.( ~ܹッh0 mS0߾}.ұncݞVߺgR<<ݿiOl= a?[77AA?mB:gss/22:;{P(~MME8DR52\۬¦v8DXDRᒑէ9ؼ9͵H2^sr:f5nII*:TSAԞSZ{=р|D: MII=)(/oqÓAf岦wSssǧOe?* H"ڑH*FFxmp4-O L׷bH\kBJJͣCn iF:/~ܱcA3^λuÇ=Sh::{6 DEM#NF Wr_ʽx1Ngw_hkjk+",>>SNnnMzռyoe&NTSQm瞫i+ʊɩMF\~,D??9p̢Ev u3_=ڵW&\irtNMMӪ .,aPP4% d}cc 8mm]/``1Aq$~~>xӢ)7n36dd9h Yw?y򱲲̌diDp 'h\ۺ6ܳg!ҁmg>ܻwұ CDD$0)'AApGXim@5kfT$';_L}d4khTwp;`r.)C'+KUZZÇmm]AL&$&&!on}ɓ5deȨN}vHG1FddxvUy9NgTT4M7::ztY?EEjnϞg:# +-} kDu3ϟ"t\NRRd 3t!5pӅ /BBbQ(~MMEIDXCGƶ2syy#(,M `gcM9'//qϿdgW89MPINlL605 2h |@\??G2Ó]]Okj*KKk|?@X,ɩJLJHȊH! lm `}z˗[L.UO.'ٶmύE&Ot8QUrœB 3u͛Wd&/=GXؑ4[C))Z?60#,+)yNϠyy5pOJi"FF8`GGw~~mvvEVVݻ54XS݁Yy@0sh顫"gSZp膆Ac&sgŋIGA=--o{2WJJaѣ.6SP(~9A5>~TM!&'LX4!UV6R**Fc@FLs8 ҢE-\T522w'O>7NiD&DCB̝;/ꀏڵ3` De׮ʡCFWO74TF::zyY7<}B mme2Y@+8ĉĶ6p ?ZXF[Ros&% ,,tNzv۰!bz--0iu_/&HS}j0̒/_rr*>L?sNgX==W"LLLH^^@OZZY-&&d` ;L">>Z[ jXSUTd2pb.( 9lZ6sjc2H0^sv>"/a(-75 {<ұr2Ћ۴9z ܱ#ʕWhdB .:CO}4d{q`n&ogeU3L,md70P64TWhjj] ~PZZ`0^)Mx<]+>ݽ}$ugg &DWĉcuuqtDܠ3&KIٕE&[{\ %+!!EMMLG:)d8 6 ܙ6y)3<1я[rrlm޽`ٲH23Wk>71̙3C'L=t,(6WWmJή2;2' 4ZLOG$bD.vdAϜY6oYsg!7͝;wG:‰'mzU4aڏ2XV3L))Q"K"X3~<^X;ks>8zj6m"Xat caɒ$@1TYQZZ'&&J F G~|+91g.=t8&/7wn4I}ǎyFw002!h*A--e>|TzG1L4ZPI__| 0:;{kkj~mll WQUSR9SO]]n|s2ypgٳINNNU\CXk?gx?9sY3cf{p'IJxx{x?" Ξ=MBD?ITTL6 w*P>]BFFBF~01\w7-*--nnf\APddj||ƭ[^ܚAi߳H! 6]z{>)[Ԑ[n]ٳ+*^0w.""H"HW;u5Ԫ?} A-O'0ruHG 8)5 559ccMlL`d2L667w~R5""ΦH$U##<7wp꣩wڵ1HG?fΜI hDH *vv!y{{9rdl[=mځǏ٪6fXat ?dߺusYMF絵uݻo e\\&kh( hmή,"3˗ʮ.50P&qX$tlAUU (8 z @ͭ)(')?`Prڊjj2` DE$jj.xJiiϬdFDI,^l~ ҁWOGFEEE! ;rX_h P(1"GPS+-BCFF9~Hr)6}ٳf"%!!llal?yyYYpSg_yDtt8#yYY9ҁpW˗tt܅ HJJT[[Q[[qmMMmmE !&U蠉ڏ^rryxw̢Ev/#JI//ufzo%/,ttLMMӪ .,aPP4% d}cc g89򨾾מL&禂Ė-eԉ [ԩH.0WťmvB|𠓭!! ];c \?8 KLOJt{wwvlbpIQ+BpSRܹ4AA %::~~+++333A:F28]Y4 0 Ɇjk;EE$$~vzalPD"HKQQe]2$A3;;⣞~RYY9[  ii1LfUUF:6ܐa0+([oO~00xV,- S._~uә3<=,,?EFFFc|P):ɓ%Oup068rȂ3Mቋŗ/|'g s挷 vC`dfxwŊ..;w:";fpbҶms =I8:Nr{9gFzAA-\ZJ`0%$55jODRYnMUUtmYEIIJ#8Z:Rk$%yN]]4'08J0h4:A ?xgϾ Pgݶmұp0DH~(SDDqBX xubffZffZWZ+ssrrk<ɮj WQRRԄp8.I Z_L605 q~gPvhpҾ63Ó]]Okh(,^lx(P(~zGHȂĬ/l}| IDATZXl;[O?9򨢢2 *.۷ d޽`ƌ=H^$Ϟ]Fdmrkڴd¨e,Ν{q#=ggCf*70PF:O#*APKKgaamNNZMV; 4Z N{ (/U? QWG:x]ssAh4O9WXpFsXrE:!y:oګK5ұp7߄'}51 s;w}}ާ[24T!dIg8=P^jcS M7n$#˘RWwÇ98"! 5nl-犊"sc)Ǐ'޹nɒ)LL4oL Yt,#@RRDR=TBtPC<<cPR 9v-M:f9Cy c9ƀ@=~Z[ڕ+/̞MڳgIO/ O} V)!ÄP}n8 G2'04",$,"(D31ﯿ|~,yЇo[?{rcaGbg,3e˭'O>;nl1aI,X0g`ѾO~cLCh1L TIAguuy8ˆ_YY|Ӟh{rrBBF;x$I\\p # XP(н<^:vsjkZ/w/rii錉xϟ+H$ݻ#//!//aj:8󩸸.= ^@VV\IIZIIFUUVYYFI ŢX4gCPPZ/j?-ضmhU8 ass.萐XG +WZ␎K dΙeJ…b};qRR"c Ӂ'ܸVMMnl6VԪÇgy.$ڳgۙNLM|}o,Ztb͚>%ni7oy>`8 G Ww«W}t z˗}]koeELO/gvmff{44 C,C׮P>|(.-ooF/͛7rm6Ɂ>>v7G8:;yqa|} K&=1wLr7^74TYf:ұ f4ܹヂ~,Wx‹}DΥKIc]ŢO'FF"2P(~5592eϞmR>Ť|"0w"1`RRRR^^U\S\\\W]T]\]sEuuSMM ɄFIKb#FIKb0h F Ep81qtt pʔ)cL&6tk :NRω'fddHK" ஐBx񢞞]Fw/`zzz  kU˗/WQQټy3\$|;Z}]{I7vTxxxPPPM~~~y11Ѐo :dƠ7ƒ%5 `^^))O/ hګO| f (f@W?}euk^7nDzeÓ6IdZҋΞ]2{i6Dj-[6X¯NV t @HҥggWvQ(~77ד, ̟?ƍVX`phyHȂu!{{ɩ }zzܸzzvONM-hkc6!eNԩS߼y/<~з_ۀL}6ѿڻ35qG> jB:!|ŋҥ˗/ o ;|ܹqދ_p~<+}23gKII͜9޽{\cLqhuѧ1 U qAЍ7B[[[bs39UU5zN0*Dy葲0L +**_ezssʕ+!qXXAzzzFF͛ ٳgLf@@+Ν;AP]]{\OO 700`0gΜp jmmeʀ͝;Ν;}u[[[*s_|;;;;;;@4n-r %%NkݺFFA mH¦tF||InK^A>i_֦x|ӃY>|ٲ Ս {< ͭ#ťٳpd:YQR^ϯޯ}VZZ9^s_ꪭW^a0g͚Ve~Bb?w4yoe_SĉDH <(/zϞ8=jjWEq_[RWEYC?}*W FBBM՗,ZM$n-+G:6Mw\\ҁpGcϝ{>f[TQwdepRS dtpbb>Ͷ_9w_yjippMFFA..^͛gVzedcD [GQTT{nEE ^?VZZZK/===ma>{ݙzAM}4%%nhoh?nݺ={^V899YVVu?V_Fx 8y9eeZ _yXYY9ġաb!g G a~nҥ˖-`0o޼amH]=.g[ !}'.4<'&IRRRvmhh( gnWWWvvvkk+N9=H{.ϟYSRRP(|edd4=}dvwwk|s4 >~dΞ=L&^PPСC N~ew;zɤ齷ڟ8<8ܦ1),6}Xt g_%&f!;ꉊJگr*!!$\fWttk]]Jxa bddZϙ3g:;;_̄ߺ{.\|FuC3Hw{Ív Wr(> `8L<Y=QQdrjsc;!!/(dj{8 p"pNZt lgӦFFAH1zzSV>g/>3DVVbteS}245f>EE~T26 CMyN}ZiW\ hx @U\ۀL71`0`>˛78ܦ 2 GGG֋p7׬1s<Oz `W<444GNaׯ_< >a>Cdzc͡gG a~㮡AEED"Rs8fyNdrؾ}`C++6_t P[kkksvv655555 _xqńT꯿:a„AVX\\?Ӄ߼yF˳444*U9 ޽{D"%&&7+<}?8qmfXnYY /lɩ22#?L44]ҥN''Wji)"/IIItǰ"zFS]9==}^ Nkiijkk}냬7nm]{i(;JZZŦ^2--mҤIc]]ݡ3߀,Xij'$?sXb۶9bbBHQ }0+,kd,P(hZOXXԩ'YYG(#2{io޸񺍍1ұyJ$1X8 ſmss~6oޱWɍkjZ%GuChΜ񑑩;w:2304$Oi4FyyZEVT}[B++XK `D,!^o{ԧegddzD"ArssB8_۷XAz7qtEQQ fA)""ٳgO//4;;B^2WWWݬ,'Apm36HՙV7Ԃt WQQaÆ0++5koznnn7n8p +I8o޼Ç +?,;;Q-//<|}hg66C!~ܕ8qw({bccO9 sXt ^~y V:::!jii˒%K233333bjjj%xܴds0KKK{%K޹s[PPPLL=|SShƍyyyo߾ݾ} /H~R ' IDATtx$O"))t,l!3|Æ } ޶o,i.\m۶t{{'OB9m4b6l(,, twwurk뺶 ,(,,KpGX[[FGG*++[nă0oς?@\&}m{+)C:4W\\wzʇӧGE7}{復03;^ȹqNηxx}`JJ ڻ f"ݽ~ 5WĶngԑZ|ݻWXXcK}a}Zk׮󋉉 ~460SM :`,bbBµHL&s͚5$iժUb0UUUGQTMMŋwvvzzzo{}%K^~k׮cǎ9.?tţ?///'OܹOZZW677;vlqBV({!ΌKvI"DEEշld2{zz,,,$$$Ŏ9"++z)777EE &ܼyvss':]fm2 ---[0;'4qtڵͽ^---!!!]]ݘ;6z ׯ_1ᑚvbb>pls駆HGd24}ƌ-yt9nMXTTjOttt3, A\4{?Md2WX!###''z궶6]!!!^Lf}}%Kp87uAϯwoKUUݽ$7vlmm544300سgO{{;߁p>o O!sRBBĉ;IQQH£NHf QQQ^EEE<>;pAPTT ik^8:6,x.XIIH._~ d#A֋9G&yS0uƍ:HG# Fk?FFx11㋌\oZ7Cԧ54:سҥupVQA:"^D3<>˗ٲeH >Ғ}UdNNUbbVBBEBB(cc 2a<[zZrrӧb_IIdeőYsE^^ڵ_GJ46j?kWJf>C"}#s56DE HԦRcÚ0~o{wQpŁuhWZw{knmժh8Aed 6Pps777ͥKKXgg+2BP ͍Ŷa^^6۶W]_sJZ)hB\\[Ν DNaQwvᄏsgkz|?Gs?Al kv6w"DquuP>:::JAF[fٳg===i4.\N]AW=X\ tvm}yqϟ?p@6dbb?A@WPՕV6r$Ue8 K/4 gߟ}i~إ. %ckk^SS D@$"yy⚳gd2 0) >8xpwi@"efV~]EQHpKb/'O>޳'w{NV358;[[7zŊtc)SMmj t'%9pϞ{ϟGsnڶ6@0))E QQ틷0#4g@O<5_ʴi t-]ccu—.ܽ;h3d?7aÇ)}eG>LI) vQ#bc֬BX, ^Nݻ;$EE5Sn.ԂT*66fB S(d==<XHjY׬}H]jeeY* V\0vjٳgwڳ˝ƀtCdn:'@d,5]hl54D$?ޚ]2 bO~vme' wɩ ۳g@%88h&VlANãGYOdK$2@5RR ߾-NI)z@*'O~Gvx…CF\y%<!k֌Tr%@h'Gر3f=ϓ\wo\RR^PkzvQl4ÇČ̨:}?|?cժ׏t!]{\vmݻ?'v`h{̜~1gΙeˆ-_ĝ{{xyY_ tN5YY^^6EɈtu&x>iwrSbb㏤R5P..FQcH_ iY׬}H]jee~Nu֭[j/Nc@sAdx Q958:4]|}M!)Nm]U5ϞuݻѣiP>rNE'))Ȝ"!+`0~ffEV}ɒ1}]rrыt RS'Bdmjgg+W\j˖gѿF*@Dmcn~wTi'Lޥ'#UAJJў=qIIAA qS1JR/++c?y/-8lOX+Q-˗ү^]5+[LJ=wŬY!Kbm`oOغvM JTᇛ7Ӿhee|~:tkbiee-|ɡ?z ͷ7oM"Od ckh*MMԛ| %%, P |.kAPr܋ٳ}=K߾-ٹnRRn~{~RAr6R䕗s*+k+*8eeZԨ ,#t2^tw7t֭e0n+HƎfeeJD"AY`9H$i% Z6whקL9cD 7rﴘM{ڴ4Z_=]֭1As1!zСAAW, qWishh=С۶:: bt:w[  Bᇁ;w9J"hJd@GG…Y,#+K2aB;>|P z>~xPMעd$tN:: >=Ç+KKY)%W"(mD,, FDCD8 .kDgzP3@|[<V\n}ߴͥx¾}U# ^i)`p ^I UYY+w155@{r%MdƌhOaz`n<5&%rJJQy9Q,.WaÍ np{{B`ÈmBɅ /--NN_[p웣G~2àp-cLښɦ֦66jX"LNzutHkGO[C<ݯz5g<}ڴ#FPpBQg:>>R,58113..ԩ{ %Y쒕ѪU#5]KWeٲao۶-4]Kf9;q||d`瘘@Ԝ=, LL4]2r!MvQ23+,P'TAD"rr蹹t^54|rt$'//K˯bz #A8zh 6onU 89UR:' <{v|jV#```uF3bbϟO&jsLRRR[KE6q9sNOjG1W/׫W~ɓFE`n+0}b)0i€=7bVX,>SʚptIL~  nn.U>o| !255PHm<<~,PX6`r).LRЂiҤI˗/{kv;))o7))//3ߴڨ:t?ښ;6}h!.Aa39RP CTԯe$#ɲ bEؼyOIH%a _?0dco!K)H0ISUeT_ `ZnʪP$ϯ22ёx݁Go޼ 0c#Olh@jh`##O82,BP52K&?>6[֓H0I$ J12 D#,~//V+Ѐ/-5jh76鹔EN\ӆ"H/:fLFsK̬l.j$MPi#d^H$"Ѥ&&z[3&`Ŋ+ZlXd ,(4 G׏R\\s«yu}?HDw5pj#asg<ȼ?svB!uSRڱO?vZ6#F^}Õ::`1gqc)Ə?|R$Q nzU@daaoQz33pJfך-I$SSʧֽ{,RP>OK0I(++SOCrz]ēH0xciئ'66⬭5V%lv@qFlC@i+ɂ/. vtCSLJһwMW^\/^| ~;{ FՆL\f۶P/a P3"+0:WXDBdjj .O = +i,3^xL̘wŊ&&zKL*>3} !c0оDk:zx<|uAFA`Ns5nÆ;w>MHо1xH?I &CAHR)HjZF$ X+aB\c#V$H~u*9["SHN ZÐ""їJ? UpKd Ǚ]==b5ujeAYY 'NM0))E .ڷ/|@P=5.#!K^tr\$Th۶M8p>YpkڸoXU 0u'ׯ/"L:{.^|Su<ə:۷;sf[Yzffō5]Hܹ[ئx&.7*?:/g\tuqD77;ݝFru%u_V5}zMYUߗ_ZTPby IDATJ< 2D~}an=~8w#9yg];zѢE"ɠAYX,,tuaa~ݦ=zl;w@d@MZkvP@:Vѯߎ#k֌R[dN׫Wj8]aaM3BC}~m+Q@K;cPmSYj"(+aJ.!'NsrښS(d*ՎJP+'>mu넞=q}f,ӭéS;>ɔ)Ǟ>b14fsVČ RTy`cB YZ89\\llΝ{^XXc0[[3 F%qx|_\2*8"Oϵ|;n\kQ$_t!]ٳOKg窳Ѻ:AQQuI +7()aT H$4B!{x)r5OH{,]:LӅhDcGlRR^vvX,00 7_'S#"Zg:ۻV#2hG/TSSv{bR|zRSKƌC>Sa%~1cu3ZUj '8J<~'22t:'9UffV,Q[K\,,VgF A##,? 7b1۷O{, U4ktny9G]k  uvD~UJzzٌb1c3IO` >LK+/.>&;S8D͍J46Dݻor?aBC}W H}x,ݸqwRA*8 F㱽zwJ7lZ ðL>vl:edeUVd2<l~r)2Bvw'>i(^^n;W^Α-R̠h[]F+zyj.n̘nsq99#G\A^t( znu45H˖ WC[!))o͚說+"#!]|.AQ$w@O+?G8Jkc0:Vή$0J;?BRۺ F*M/Y?/Ky/q8L5 `0vM:Uco  NiIᦉ#Ezzx]] A:0 A-0H40c{)ٿ}ƍ˗_0x^u̬Z AdBڏE vwɩZBX,W/ gPWWTԖsrsg7COFDoo@GggKSStAŵNA::?H$RX*V?x YT\Up|jhČe.x {X1wWb֍{fѱ[]K%M_TT]W'@1557)F8ٙg=he%3C9tdOOk-!(+cGE=_kRUU7nv-5+| ^*nhΞ۽cGj%#G7o~/Jjk2&EIe2ƺz8AHZ[[( ؘ]9簴4޹ѣNX,L;82$A^yXmmzLAyUAT؄ v_* HeN#/ ݉ڴMeeU3+*jyF>_8:ffffw5b1>'NPZԟ~X*mʹi]O0)FFz[J3 ѠAxC'KϞ}gO\cP"UF~17 @{P:cllNGGB;_y{۶ݾp᥯ݨQ<@~9U *^E%PYɐ^޽K481h̾ T yyC Z/RRJLHLx2Euѣl4n̾J! Lf]T5ʢfvv/GOЀl|%;93gܪ޲eWtuOS$^BZ X\\#ɡ0ѥGёiҜtY(^xMy9@FFyEx<ޞp2/17a̘ߗ;ax(ɓ3U0@0ի&$d@)&!̙>WӭÍ?i^FFEhޤ..VE|A__m&h@k:'9w];Z m>l{ۺD"ݻZZo6A=1tB͛226*hY[5LrW .*iɡh 12uq!s輽mOQa>A!!0 +'c |\̣0߉ 2!``__[}&N>J0ʘ@026q $Hl6ɬCQO 3)Bo[D"CM7.P '&fDGy8MCn-%'GʘJRZ3Luk ٽ{G3:AVVF+ 3B"??;33TFs+JKY AbG !2,"jc6k\90={&+e) N=۴AR |MC7ɡ߿M>$=4gpϩx'byCxHOP\IUibd)JxxXII)ZJY{ٲaM.ray9c\%??;;[}1Zt /Ϟ}f>wnC5(*)a9^,z )rhOhwPsH$>|ˑ_L=8xV5];`Ϟ.9XJ~a*9`kQt:70p{tt- N^[O1r$UӵwMP 脬]ˈ^B:4Zȑ+.  㗵5?=66*DX%%UNu Htu k+~;.C:0L$RG; II&ff jnŊfh@k:'9ի~PT mEFkh;7O mʟ~XhȢECuuAJ&h9BN5L؍ͩQ :OOE>DzP(cI$Oļs& =hŅǏ?޶-F*04qbО=:/H+=膅p4imd2y5SWMȨ>ϚX,edlS mMr%%5@ E"ܴnOӅUFN3gD"+(`Ab64C[G jjg&,nKa5 jeqX?8Xo xd޼3|TvČѣoSS(+66ɓT8lOXk&9/'GF44TIGVVeM  SS4Jb{ĹOo"0uUUt:NVTptnUW$X[ښ[[ɦvvf66f66fL| X2))ёwN~R.]zB\pAZsBIrraBBݻZ[[A6sfȆ ߴ ӹ׮-Rza]=L矇i%y~Dđ7GuٱΕ+ɿu!!삂\z~>3?@;DWW+ww ͍bn&5Ύw=JHEӅhoK֮QÐ|y~>nmڛX,g[UUj Qz:j##ϥSk֌?ۭw{}ɨ ^MJ۷-Xptv a ^n^]طoۮ$Z-a[[JAfxPU7 $ّ#~=> Zn> _bSț㢎&P[&A`Ѿ %"**8 *J7_L#PvvB B]ͷN}Nwoq:v M͞ݯ ^D29r>YפW^MJw!b9uرG~AT*g4ZYzz@ a0@ 677 .X0چ59utDW7pCX̦MN~*qusrrrsulv}cHo 똚ffΖ~~v4W?}ƍ7C0 Ciiӧ9m[c())/&}BBרە|B kO V)B++~]8cF#۷::KsQS- ?J#2 ?P֦JW~ 3/_Nz(>wڴQnYС.vvZhP8%'xAj(+'%hCǎ}?fL7Mע=ܾ~s[57o_˗iuf1򩠠-0ՕJts?%&%]#G?ի_5]&mط/ᅮ׬5}\axks>ѣo#52?Lt!Ϝ1/YVA0vv*Yp/)6 ð #wتBT j[Em@ tNsj- T#GPiC׮-U \ҥdeUKbp\nSe⢒ r_I bT}oTm ϡC.84>:*D&7ڵ y_=իDbUW nM |N6KaKKc%G1dbaa **8YJ ,9X,Q({ҥRhPSf~P(ˣVՔsjj8@ut:66fGG oo۞=>(SQ Ҽcut~;b_ވfx֟?R,5811]ZQQ]Q WnCȨ@?8$ *:E7libkWrp/Tb޿}#ll̴̷@›7ߞ=<#]EZr.1_hԩ=As?NL@||lCCnjNjqС{(Qs_-˖]z0ӵj Ľ{kmo}}U`Z'NYdX,~M _~ۯ'MDL6UrLeeMYYO45OIMoQH4Z9a\\J pE&C޼)~sֻzaNAc~=HdgW=ͷs>ZLF%zoᏊ9wT=d ^zz̊ NUA$Ń a==`hmmFtw'zxXHAv{X,?g9:&J4]=p#I~X,U>s<m f2n&<<` * Sb -Jcfo[[sBEE~c۬Y8]^9q/H$ŋNKL̈P]]H:g0޽_~*68~vLcƱEXRL[~i޳g <}3eqX?k)==c5]HE&CBCNZ:m$ZZɡ0QZt=Do5wejz֭V6cFʕ#?J5K FۢAᨨ[١&NY{ѢK/[`04NERe2yrيT>,vvtN01 IDAT.8TCgy͉~{L#,O3'N<~=B!ϟ?hܸ}RTt !QV"Kss陙yyrvM 44 A fA ggإT_Qy(;11l t6gHj'L jO U>Qnn '&fY]_/Znim\P@sr$hB&cO;VxW:Eϙo\**8Ǐj%$|c]ԩ'lLT˵k[cZX+*j▷+k߾_nP]m]ʕ!!-U)Xb \|Wu_]jЎ}R:fMv2?tnV,3qbnHL̘;X[?$'UIhGnc`{/NNI$]=zm6%GFɐ'gj2r=6oBm@ qcqϞ.ke;P]%../ؘ>yrFNxݝcDMBRf atZ tNm#$d{X߯E|Q]B.$0]K@kUr t]]j˄NM2-Z=u72bdBZX$F&GsF4Z$$6zH$STD2bƓ\jgr7ԻE }am7razMݻ;WU޹Cz5%=l5HN.ܻ7>))7(yѢ!Cz+ktU1F+̬- J ftjknzUy}mD)0 CMklkiilggnkk^iVV&꜇@mWbbޥUUښ3pgG6W>EjO,gכ7E+V\))a-_><2rPwHR@t*e0Lfzb5!wѳKӯ@07g$ܾ}ݧM=r$GQQ/,-q<N83O}Pb|aWjYYUÇݽ{Ҕ)=5]VE6o7kVH+"|}ׯX6{v?uA}FuM|A??[ǫ PQ<]kW5]hhH H$ S< ;RCQJs;hDbl~uu]M X|&}_]]'ӂ B$H D@0"MC V-^hjIIOu]ζDy<]QRQ!LL=<.Lɡƾ~SR¢PA6A3#ے +0bΝYs^Ma0x 2gΙ_,, |fi)Sa1X*OۇcMMdOjRA7113=\_߷Ç)G ѥ 9;[: *..}Ϟ877޽4]x;A6wr TI m@Q*&:9Ykv#Kң^&%9:ה)= [Ox|S A@A9sܐJrraBBƽ{ZKK= GGլ_gtrM|#ݻ;)s朖HdgUia]_VDӅt}]K}b 6yrJPBf^-0Օsqtq!ښ}㪪7,Iӵ/թԒ/^`JTݒc11]ъé?qe(n|ݣZ5r]:~ٲWwEn~hQT^.]]T9Ωmx?q:;*Om~kѢ!*ڿRK_[['gqhN|mqq5'@155hbSUhHd\\NϣtnJӔ LN\fz&ͮs8exX #H4!CKKc++c L65?c̘o& r!L(yzZM<<꩹5dț7E11i7opww ?'Me2̽{>|:{aݺiF_6hێ<(Zo};6l;ybSnrzݓda0==AD H}x1׈~#HC}9g'&f<~-!FQޚ{OP\F+CLLmlP~׏qrjb#?OP+! l[Caa?peChpizQ7bO}a1kW9932޼)Ç )9SW'gh +JdԩKKYR|-[ngfn>E4M!4]H'ewВh|jD$3 ..VOVff_ap&XZ>_=ݿ?Ç-]Q (:͒%sȑTM2:l˖CxǷ]3"ʜV94;vIH*Mh9@:!ʨ~i?TQAAwAOط/o{m2}aUpL^Yx66f'kk+-r@a\\[RmP̒Cr#6X|{bffFȡYrt&3811#:ͣGY:Æ ZsL>_{͙OW3:Vrr!𡢱Qdhm#Wt*O!I<ɉy.M" 1zQͥxbͷ/*2_:Uu;;ɇ[7GKbZےq];wMʂf}FOOXHzX,HQdaaD$[ZFFr>ML̈PW'@MBC} 5zErsߗ !B?ÃmӢ?\i }BUL$ٙw”Prz^F0ps##8wp8s?zID" P:W;qQnݖꧦ?dP{'fRV^[][ԻkBܿ9}99;nAo_W 5 &=vlvv9hbλB!Q(dGGIS+T >>:za>nE|I#Gt!tNsj3 g0x Un6,Z4dM~ HbŕS7o 0@B4jEG>[gRʍ$ȅHZZ)YA)+mhTԣLpE:!?'gaahaadaaJ-TEի)#6rt#ѤNI17-%:;[`gNr>'OMk.bCN'TTpے%R*g&\HС{]HY\nb**OfQ8F*EXX*Ex<ɭˣU,DڬP(AsIӹvvz q(8;[1PO볏m'(L`O+ؘidHJݴvFF% #[NДi@˗/t9EIIy :GGС>ÆLk4UKW7Clܾ~s/G2Om|mժ. QPoGB/1 y2{Mhh B!M2 <W Y p֭[7zڴޚ.Dh* zm4)hٲi܆/]%tygrr>uhM*ѪNtu8wn ;uhLL ϿyQE~~/9*v8sϤ=:}PoM@*ҥrNe%SQE!24Ե53115Gu Q QmSVVX,K[Pv{x6_[46p8uY JI#3gDbLm7qbIxKS w(yұӀr9H4K+uB @ :TEcOO[mnfS*tr@W(ꅰŢ"-ص+ x޽{gtI #FnnXpu$g/vD"kiafc#h f6`11A:86\\l\\l:{TVRC…]i+OJO/@zxJiA.ϘT_OXYM D*"?!!11Ǎ rqQa=~uGKPÆLH3.iip[ lZxy*‹?lo>reQ)S80cҤPmJ>+OG}GH 0 =)B"͚up+k2`޽w ,k՜5kw?z4^57n^BunpwΙsdmZ`` X뜺ŠwT 7N6P;ٕ}w@p:ujo_F~VmF ƀuN0Ω+s{֨cy, _zŢt y`377bX|\>=@Ք_MX,*oGGt{?CtNuu.W@ 6AhP:'n]+[7sey+8RQӑ>.ОD^|| !xxUU-/t9-3̙_L>y!Gxru_KK2322rř %Ān05ݭumt ޷gn~3=ѣ)L/XJ]ʕ.+$&@ۅk&ϫ7uv-0ʁ4OUU--UU-`{v(X/\xN,N)"KoqSk"J&L8 IRS4)>\~Ƚ~5iRΝ:n]rEEsrbmFyҨD]q1`` s"۷LI٤3g&[7MwϛwzؠfL ̙4gd;K,mldq56606wp@;;c\\m ll,?E)4A1mF霫Wsc&L`gg )R_aS~~P(2sL:>f:#G]&1qط ed<~ 3ࡦ&fT!C|;G9w5 Rt!SCL T$ #^8)/8FFaS~X,e#~ ƿ(*y!F4_VV斖no||ǎOt;TU-8<%Ӷ;2H\ѣ{$Hý g isp;8=נyŠA>ݳus3Ko/\xnʔ; Ӟ9S^AAPJ k $"(33$|Jes"aiis q MKmq.ttDUҌa}=uRZqA'yyiwR 3?>;*;LL~~.3 rC>?O;nos% *>><>>L\}3WW N0 59p`Ʒ>oʔpcc#@wE;8 ʚJKRS޽ːhO^лwo[ZZqqCQȑ{z`*mEI;v J1cM #plf Y(5iBSӏpVX%$J)s 4m3<(]Qrb U>8Hvh //;`D 8= Ϝy|=D0F* &@5P/5N^|߾={cbϟ認Ҡ(+kڻ7}͚9!;;+pgށ$Rх aK$0p`ojWW?Dߟ1aB|uoXG"{=^c 0/B1.Dή\ҥQ `0oDF&ӡh* A- 39&e~ SŋJ0v!0%%%II 6'3rfyN\Zh44i:$( ~  `?'ϩ7 ߿QnoیUgYŴiGMb:`:LC\Q s>nԁ/{P(Ol z8 T*Ѹ 5?Y*AQ?XHqǑsL^^vJ cE ͛y/sr11sДӦj:kll욂BB _?^۵P~}ʕ+ًX~ܛj{||؏?v!b˖ݽZۅ` s:IIMTkrI[UϢ?uj'ja`` %1 $lR}ҁ˅,}7LR{2E+ ^R|pͥM@%PTDѸP *(AmFUWX|6#>9!I"FDb@\\~z۪(lzD)8C]sή<|TᇑQQPd򜜪Լy`BCccCtvIq۷|VV˫WՊ״qztInxwRѝ#'ڷ/ݻz{CbBqB&x<+``OX,>+| cc#KKs42533իT*$P$" Soo{<ގ@p t, СL.W4kVWNӞR#SScwwB/ kasxO?[R32H+d2FB<{Vw̙Dbk1([m߾i'u[oܿ=iSjK55{]%2rK %hu„N7dX*56XćE_PB4!Q\D{wZzzwuכ1*m'ѸmlPW.6'u#Ki4*+9v͙4iYtu <'-GXKSϛ T,eeҦrL&6П@W,RMuu:j]jki <s8jruv͎H*=}Z2-@ 6n\ưXoYeUM A禁ۺ蜲vJ{:<dHAE"ÇonʗdCz*mAu=wsv-0@&'$/.nXlO#O=w.1*_e@L ߷oj[000``S7tk+ڵTOKA+ q|VNj^#3gK2 j]H$yJ%&@":c=A/,Fϯ+*"x"$ G2Bah@6,BL!Ӈ7TerSZڔ r 0a8aq12mE0/ ]$-޷/͛!C|׬2X,;7oݻWbii6jT@LL#KqV^bÇ8q(++}()KF޽[Y|n@  t#:ͼN#*ނ1;`X`Ϟ޽v_r۷MeeMV2.Kza08 ы7nO X6@̌M͍=䓡{&ƶ]3$rt6[0mK'ɟ@@-,Lk)5 24CLmlPfff&<L6tn/`0x#F͛7t>7ePAuǪA)xe56mvʋw׸b]gSZڔYQSmff'bb*NxumJa̸q||sF3p`-[&j*])SLtMyj3,iiaOv_F|g<ٱVUVUd{;O;;+<4#6ң:%O?F[= YYeӧۺu.Ds#G͘1p۶ZY]9aNNIIhsuNB.c>ʼH$Spʕ+/_!<. vJ 2g2͙g. c0x|`p?lLR` `,X%-a( |1,:ОMB{c}_S(K6_a2AՀݼ2'5~|P\\ǵnՉD4ڜ@pMs׮Oi?>xժ1:,+kJM}sV__ɓü]Wg$H7if* ʹV䨔sxʝ;8~Dbȑ]0R \.OIټq}U;~'`XQ,o]sC }F9#(4R".Wb|+4g@Qzh~Thض4E-p |`0f~5D;w /\xUO?@fAlnfu`9:ή4о}õ]KR9df߻W狀`k!Rر[[,q̓_͖^ћ6]{DZtǏMrW}$_}}HnoC"]a`/׮Mܥ X;8SZTY t|} '//{:?]P"bo֭MZ`:LwP‘#jpNeII _pfߟmf41A?>Kۅ` s.III{j 48yӗ/Q?IM uԨ=3g~_k000MOVdTkԦ¢PK--l (]1 ߑ2JYYӛ7--llffbF$462LJz&WW5BѣҔ$҈H 쫛oRYy¦z@lee)3|}uyOtN 1j߾Vvllt+?.99V~-VWwڴ/6oO(箤A,ZZ]xu$J"+CGv?LɸҦ|OؒdԔ۷OՃc0XX&!XzJ޽4o̘SMLY,>+r˛kk˗9Nx0Dj?W_?]cP"@8m."$6H$IMQ_bAEEܹT|;xF-Nڿ?#?&1ryP/K\ Rەdw IDAT` s.L&/4֮8LUK$r´:V 3A&&H] N\:Gq4WaGsE" SHb-mlPX%,XK AO`+^OH|}~Z(Nf)N G,1L&ɩJIɹv-6n\D,A@3U^Ux"pnDD:n91sr.8|.Λ2%|QէJeO''LK+ޟk17n^SsFn%9wuEEdOM^͛yJF&hd2Lzz]b_Zڸ`qXupܷ.@DqFK >+)0~$}x Ph4@8:KqgDF-= 9m7qj)%%'99 nbcCtJU5566vҊ =LMUs:':{T։YoXd#ZEu@L"Ogm/^H"rsjϯPX 4.s?~G"r<=mbb5ũdjld|Y‚{H5b U>A'mespڷ/LObh''Z>bKfg&bm>3|6dDY[c0@J*)F^n@ncRG,R(,2^_Okh`/rqqs{?uuźaqhoNvbbt~*jkHE@a9fL޽ 9` m[Lv-åK7n#F>o"YAh`T/6 SScgge='Jkr/_ήhvs>  cyyuٕ 4_aSPdtY9{H9'va0x7o%'ɩAƍgee??rU|S D+W*zUM"WVZ 7&a % /TQ 𪯧gɞ GI'ŗ54rf@ 8( ))7B(Hb(G`TNs3))YY>,ll,ݙIg HD F$ m\]mp8WW0`ƹbi`b嗽ٝL&22X,> 뾄c.^|vmrZڊ@Wmb CB6ul״q7ojoZt[Y:8yZ5F۵hӧ6m<$99U_} 7wU^vvV^݉.t:_OԾu1L{7o!6Dkٳ Z[[<9I݇$[[@ZasL&PU\00 suNa55arի*,Uӧkmegb\0 2;d@ f2y Ba1<&la0`'  4`<zmDDސ6ΉL=?YY%$|F}=hM['4Ҧq͟?lqڮs@ w ԮAiiSffQFFQNN}Ā1ci*X`Ϟtoo={x@+Y@[Ruu%OPnnX||ϯ+)ipʧ w__V_44ccCV;]F&߿_r{JhAy!FL&3<&$lRRp8fʡR9V6ʥRNh\6H,X, 2z`Vjj^&p禭 z%بjaS4gq %䤧@Y]}rEEdHE.+ BCp80R7s? DΜ x4pLIyI|}#:n.\xn]ŋ %h䗟_WF|O-kC޽c4#wn]&wӧܴ)c'u&&HB]sP(L {*-mzLY'4@S?=F~UyFEB%P?!QIK[[ouu4]ҫW5̝{#T'Kjj$RQjWMMDb@LLFOII1{o_<`g|| 4x|Y] h`|P{:!(0szȑ{׮庸`wzz\ziUĒ%=*%V<#$s'(o_gHʹυ=y.5 u"Du򔔜͛[Y?|x݃>Z@d[v]WG A|ee&@ ?1D 8kP7b4=…g1ci % 'Kh4ʥR9@,XK0􈝝5gBGmнwz;gg̣Ge wtDEF޽[Y|^ / t#Ā~dӦk/+ePt `ݎ`7kW?t2/_~FmxĈ]>>%j-PR8gIL~\M*B``Jm-u_o^޿f_qռk֌D'__G0YPlTҥQ Dj0d;EDxk]՜5kw?z4A2k3ccCTssmRi009:'eUl쁿^2pj%%=ܻ7SUΝ? aӵ9GG)ʁ(„6Z[9",9h:'uHzoԶmȠ 7 !gpI40f&qNNhjqTӝBGк3D"hRD" $bMcu]9{߯|}.>qb! QC qqacӢ ژ1;:\Yrm++!,H89wI72pq!Sjkiaoz#%%'&mU8RKgiԷ(vJj?>xݺqxuD"#+2޾m$F*}| QQ|r |с3g~9ddXTs3KFH"|/3ea' eL^FFQJJh "?>>|>?壖-#j%ׯkZ[99wAAnEҦ̢j xqC)301 'F>{) %7nNJzXTDoMV<8FhVGr''tc#+#`͚q_}cmm!#ZZX:yrX{9~­=|D=w)Gv!풟_۶~;H۵h6[vm/_XsPX!!/PMAuE[-[gf?zQ-d2}CV۵ oOS̼yCU"2'+k}*ܭ. ߴ`AE#] L9:'UIy|k~P %*+[n^)%2r#F|00zG'q66(SScDI$Rlm@ML/@d]IlAUU 45t.CkYc mdD/E=SwPa`0qqaZB|Ӧ*&i#"==5sήܳe%KFFEYghldܺfؠS#4y-[n\}4y\fmN s׿Z ޒHEx7.E> |3߽{'4۳nY@yy٣mkryff]i%% Y3'pb|ӻK\~~݅ Ϯ^}ell2{`4 *pZ[ׯLLãQ(S#)J|-Pt2uuquź\]nnX77+ְuuK/8FG:3g&562WD3 }Ҥ+FׯkǏz<4ItpM.mLޘ1^}C^^…87 !00_}壦Ct-ND֪֪ꖆЦ;9ax;OO;h履btH{@$h@.9rnMsgj￝1Xioq]ii+ݵ] L9:'wX*qŋʉ޹_?7bǎ[WGSt"liggmoomaabbbDd2>_`Y,^s3o @1Q|Yz #eeM ;\.6Aw0(- UMFmZSTb~}V j) rskT,u  뜀#քW3xr Ҧ7ߤP}}bb=w鼼:iBt6[PR)Β@p tb'b2yHE,׉H U.-(_ʻwŋG,]JM (%oE#~LVIIWU_{ktݲ&b l%XT ſq͉ʚg2>>\c]F.ϘT_OXennbYMM̎=gԨ@p;wƫdom7.^jc|2ld29+hm倕 ]`a`PnnXn(d ҦB2/266ru:/ HI-6Z6:UFJ*,d2yNNUJJ믹\ahW|| co6|Y]WF x(D9hL$-޳'lqOu԰ԼkrtnhWLLIB-?b2yFDX 9w@[VT;`riD"ͭNMͻ};憍K$DFU,I"9xǎ[v{L >D{P4T@ za(WW\-TůnOu @^^v@M 8۔OpYZZ>k9eJw rwiv9u*kkׯ/IYB(4)b)+`0x;ݱ8wwUk TU5T|NAyy3g9b0|֥]v8ѣNN=]U%E*s3i!<~vPP(YEGk6ؿ?c߾E=_WG[˖/ w+a .WاϺG"e IDATWn5TZbƻw>_Zc𽼼-:؆\tŤuGyN]wÃ3/^|O*M2{{ÇDM``IL2fllOIhhߨ|3V>N.A" 3%%MM̯3s({UƨdbF㴶r(knfr٭V6ʅLLf榽z!RH$a2h젱m:5IM D*"=+G"""Ā`mɌ;R_֑7)|pƪ5v?|OGmעM;e˄ٳhM Ϟ}mM}30P(W93WUKTrJZ0fG@ LLHm1jT: j↘͝;dÆhmbS\^h㻣nXtOq)ڮ``ꩬl>|Ν*1f[.l{:km6 &Ɍzjk+W&!^z"rD" 2uvqpvrY;8X;8 ^P(L(ħRZ(J@4Bq͖mHA(NNhIqݻFC.,$b'L7{GC¦rLaӀ:5Ԫs }2dzllȲeDU60mb )y3tԨÇc={{IhwnxXoOuTUHk]Rr<$3&A6]ާ\.OIټnj:GVVo˫HXٞL"{$g ɞ,T,LQT>ו46.\}1T*wĉGstDϘ1p֬:r'rn-XآD"R9T*IrZZMMfVSBa651B x&0622J<환 x;<?ɝf4K8!R%sӰog8v#4y\cXsHYNlwH+Duukta=ęr/*,z8' <a{2 y8:/4׹;s9(Eh27%hZ߹S;4ڂHW4ߜ nθ12ΝB6[v޺FJJNLLm&鄮Epzvߍhn (H8qEEd T5*+[.]zwX7#" 6lg {xzzw',XPNQҤIK rA 0'̼ew޹y3Fcm܁; 2rǟ=}C!Au'khryȘ62ұ4{xX:;ٙj2L&')ŋOr_FS-K|zw?xQz|6zy ]sfsxґG3`U+uo"UUT$ TEE}IIMy9L6AQ8<^DMr,q5s/33FWT zu3 yu|N?{ʱJX q-64|75B/۷,[foRZtdԩC.T'>ǟtu8y2H>,d;b|oq\%yY>55+o$'ΜO>>t<`D@%8'sRW۷/rYTĉ/'&}89m9{ PW[ׯeF*dr aL (*FB22J}hldBf@ިy{ۺ$z"4GBAAR9?Y4?;2d>on:0<sѣG}o!0ɽKsH"'%%%edfe,MOOk {IPrsP]{w[7UwMԐVW7x{N' 쯜?}*1C$;T*='Sb5_F R##__ב#M7t:ĉر]2)јO |}]mߣJPr (W^^3_$X,'Y #4,ӽ{_hɽ,ܵ4M5iw~TaauIIꆺ&:lgN@XB^U9 hxp^G{BPPO:qy\Q:NJ*zx֯UZJZ w];r!' { EEښRW$,S>]&]^ 9$$pƌRl յfРCˆu,2XpffII 2j% dɻwyg_ؿ…UmKG=s9s:4MaM={S>%%5\j[s8'EƌTž7ʚҿ23.+=7nnɩ"?TZJ!jj,߿P22! -- ]\o @q23)M  mmtNbbuM A0kj, ,miidkkٙښ{H$Jqfp8'O~|Bgcֳ'Pե4Ţulmm1/n߾}$>o}\gOY_&&VEEii :j~*c=*ĸ\87rFF eӥLN11?޾%ۻ]t鰰:pƲF&F͵uu3S] JVVmqq Xxz_CqqCDDAu5cg) }rNQQC׮Fc۫] ~")T="ulK,4`dmq8*TQD$6UV60`bQ:::tuILX]pt4X@CэBy˗[05,i 8iaXWT+*kjh4&Lbtu5ML`;77u׮&&?Ñј,ܜڬگ_kt#Ҹ\qK#_eÆDb͛Evf®]srwT:!CBdok ځC`|C4i@@=ڲeK)H1\VxW z5//]zO.+M# YW393# OmlFw+.>|8A_\TmԚ[&n0 NXC% 㙿zѣ1YY;+  HBBig.]Z0nvɔ)%d„?w[[Rܻwoڴ.@Lp8g! t"( I.f^^66p8ʱ|ttzd6R!cj:˭r\.˭pEF#P11fG@FIOo]flMK[ìYnݺ%|BASӪ);9{ԩSeD}<1Jsvkl`2d 5pjcY;Ų3H:AaXUNIYIKz CaMM9lvJZozryUUԲڊڲڲڊ&dIe뒶BaX,TCX29k$AKs ABu44̙b%V5540ʲ+HEEz F1lqBhrs$iu0RD0ܹEAPQQ}vHx={dgE]򟸸۷WtkUm[Tzt`Vhn߾j+(FWwcc Tm49kĈw<|x\L?뿋ߑT$^0 @_a0<eݍ^b\.şzҲay<͒gxsh bSt@'a3n,zs]ј#GdrIr b%;'dJL91c E ̘1Xr;!1c ˨:6wܙ9st DA[ZYZ|3M1k(HSEE]y9/00Ν;2uEI_7pbpx䴴99?ji1ʐB${zZ[.fF>wؚHN.^t֒%ג__Q/Deeɓ/nJ`: \.WN ߫+RƼ#CCoooo[55b2򯨈]ifM _#襪S¿#GD8'@7͛}81KƪqvMZf``^쥮]q7EOO͂eƌh``hggsggs!A֍VUjy; X \,X)`BOzu[̙'@Bu@&baaد x޽7RrQyڴP՘t2bcB4lX[Pz=h۷߼ɕiz}].W$Ȳ,|"?jXA"qh HGZ:fL7՚Ag<[yfs> |8<ƍcN9S{u?10uf3iRj[NY9h3jݷllh`X :xpZvv͛ RWAT[(1 _c0h8;dr޿WUjY&*vʔSDbk::n0 GGٽ̙v^=BK k@||NYY̙TmP%,'>>G1@'9iMM̝;^ŢE?AV\$ΩAvc> ]Zj3`m,yx"kXUKI)0$v" cc\m|;&D @ܼ0p]^c#kOUtj@ kNTRdmƱ=N~>IvK(*$$(aA7~xccc ɓ' P(GP߿֊766w]__o߾p8Bqpp7o^uuM]ƼBkTB@|ҚBVZecc_łMMpm}5Y*S Nn*t{TTzP'$urEZ[@fIf"HH(8IG|"ځ#njRO5VVF2C01j _ pa^v:X,622%::ZSS333S9TTT̞=AOOo߾ߗΝɣcmW]uΜ6DVV8]rGm5))m7oܽ{w==~9rD7"P3yVn6ď) PÆ/XukTYYUi?%""իofS)۷"""*+++++?~APxzz4O>-.. }VާO>G˶mGr[ʲk׮Q^zՉcі-[$S~% A(!G:tfzn:pٳgb!C;!j.K 5A"l߾]v3Ѓ ٕYAX[3ƋDfd)*֭D[[$#/]igN%6~KC>p|wwU xsk׮EVڳgOnHVSSӳgOYf=\J***Ñ:EtLnI+Ue@R ڔ\/渽\J/D8111$$$%%e֭aaaGF|cѿv*8޳g'vW!@tzS--שڊN2$$ o#{mWmgUUGvTFHqLOOGP65??Y=˗/x-ϟ7ocn߾khh?A߬]7mwh4åK٬8۽{Bs$APDDi0[#00000P.UJ@!@!"ኋa̔(@ڌۇ,T"W=DvzK3J* I2aԾ4 }W:;oa0gOnbquys70[ WS~늀=~6b.[-.T_ IDATK치Lײe`^bE޽Y,⭃a^z̙3lڴiȑU"wJ_ :s=$wU؈FQ#^?_zׯ--U$  k]]݂ LMMmll6m`0 BP&&&H@daa/ gggcc#G [vލ`!V_zeggfBVX+&l6[xhh(r'O&466FjhY;vU__'11QlvDHnnnk׮e2B7yLP3 KKKdk.^F褦B@(PP ټy3 6lXv-ZmHfZ @mdY D(kPWzxxܸqK.vBv*AFI4JA(@fFf1 EiZZXJ 9ϟgQ(3fUrEE&շYp`%.wLNX'?#˗_,66 @hjj^zȑ#׮] @~ ٳl޼y9B;Gy{{p8GG7n {޽{~4fϞ=W\A>K`>|׮] cd(ܬ[ y-Q>ǂY) U!ش6(TԖΗ!wC>|hmm][[ AЭ[\]][v w3͛E*u{իP5C Ç={98t_@;@1V5sR2XZs'I ll6ܸQ҂4KO.ץK .0cOOf;4 g0h4H$"_@@caa p]]L3gΈ# 222݋>}zmmK ib„ T*ݻdͭn5FZĕ'''!=:mڴ?~dddk֭ Hh+++6-'ݻWQQ++ע!=:///!!y޽B7yY!%sjM8 Jjjj.Z,,, 7ox亇yzzx< E(y""B!0 jiiYҲ}e)>TU,WYE$IkBDR/_ AЌ3T nRsn|NRHBRY -ykm)HfJbh Y|g$EzI3ΞBy,mNjJnZ440.]zӳ;kքV"@Gp֭ZfM5D=~6-;wޫUE= `0s.psswJg߾}nYBhhh?~544p\ APmpKί͛8'v7q_]YYggD)*qqбGXU-/<ʳFmm7? ^c^­񣩩_nۙ=wʔ^iTzÇxo;w>NF:#_3f{MãRqqq={zm6ccc۷AwNNN^j՛7o(Ov]vmS_#E( ˗ߚM[Ac#tU.:?  ^Ѳe+)R7Mʂл71biii"x}{!6AGGXA.( ի Z ɑ*,_ |$QQ<-, ]{/Kmr#""N8_dÆ HDykEh#.^(i!޿;ydv` E[_6Ϝ9sߏ#466=ztر\gϝ;7~x+Ҏ&$$V<(((**Ç{e-;88K}U#AP^^#Qhj0t3SRRΞ='00wŋ ƴ9t >L1Jd]; rb8w~?'sr*}Fb⮕+ 'JXvcٳ|'ѽUqq1%--СC</22B,^xĉHnI&dXXё) {{{.&;;@8.GYUh̰OKJ.h{Z\5 4!xO9rƍ1X4) "fs9p7 uVHHHPPPBm:ɭM:L&o=(y0r]uO&/}ٲP.W֓I[$*u+7M5*N׸8 C"ϟ"LyԽ{KCC7U<<< lٳGQXX{nsB-ei nnnC yi^^޽{<==}|| F3!ceeeYYY|||@@M]]ڵkO^\\޿_LL&E0G}*++>}:yذaIII...wQen]{a֢PO666n޼Pܜ@ \vD@̼ R#PPV vj@rYʫU'Z)XZYEI 3~nyaVPuIBRYW"TB2S̔nh A(*wРC;9W)uqgÆUlC#88rݚ5aLE7H$/{km~޼Ko"@GFM0aȐ!\.a*سgwfffffҥK[+Eq8\TTTuuŋq8Na ϙ3Ç{ H==#[O:eccs2+777 U]] AЕ+WL [oYL`Ϟ}E(JF~\c#tEimRΗGkr?9 Çꐣfo11VV;EVV?TtC))%ER ˗_حΣGc*+Tm#N_]RR ƦM jkkB;'''MMMwwh~sӧOׯ SЎxbꉼ8'P7=rjd8'UtV{oT3^ζ\G1dD=ry'*6{S[ rvuƍÇnin̘?nFJ3\=JKKѣ  d[ J9tGR׃FNrws ߳'yR7 z[Tm @ ƙ3׏:B45;`;Ie/^lR\oegWx/ R\[%#4,STg L@@#GjBFFƶmۮ_k׮իW(Iz%0`t݉-2>n/U~ ڐˢET*} )} ug'tqhia>g΅U˗*LrʡC(5@!*,b|T%ӧ_RTol#洽vD]]SHȓy|<<,Q?;sɓ/u vv6WD+r!22)<ј#x&L补Mɓ7zIvsVՆH__ jCΝunjh`Z5\z֯M4\+o{U{ݿt>,ܹnS\L ""VTmB>.\++"zfs32ʾ|)NJ*41hT`Ŋa=zXUlW qҤr1LM w츻`=[sVVƍI[_O8UVݻ֭j’%} ڀ;t^^0 oTm?@Bf54Um h8T-P(t7D?ݻuݺ;vuwӧt:9\2 q<6(&VrrQBB۷e\.OK bqtM$˗ϟl994@G`ggW~ZNe [PgX,ʕ8;6ouE6'kX-/e>6>yqޗB<^w^g R vCDDRq1%6TWՆ9 }}AT*CՆ~xn;?~PN .3:s旹s/Ν{õ&mٰaLVV%bb6XYI(RRRTTU6XϏmuUl%BR|b/dr wN *9(1˗b2A6|ppPӗ5򴴒?j\hԲeCX^Pl6BmccP4E_$u}ήr1LMػ/%єW ww,ZFK97RqP3S߽`УG{.:]v2a29'N<3gm'4 MMTm?@b I9ҥקO?}b33})*\p3g{6`4uԜɓ=p87܅mBP7ICC]5zt`ر|ZZZLϤM ',C F*a199NN[X,` &ol LCH[OOKզ4\Bi\QOQ!9 P(]]sR7v}y.MKݥݸtҤ.rJm6×O׼yB$zvə^ IDAT/_o$T49s̙3d'ÃF헖!j9A0TYYgj/t.)PcXbqh " ƙG!a. ̈́6۹057 qdxbGW`A< FP$DP+diDA (`!V9"=@`n߾!%Fp8'-.,Vi̚5KJ$73 [SPSӐ] A0 B߭ͮ!d7&9))%w֬1iRY_st4۸qU))%W) g,sBnrS.܇Scc2]PGզN# 뢥P76=Ѧ_M2N~l C$_ۋNpj,`FLCzQ(ᨆ\nmi8g>xxXE @p(A_f 4qɒkiiO9t|^5e)x|ۙܟ`Ĵ| `0sνb1H2'hia%ô\##@004ԡPaI[kd Ҙw>MǏ?,`ЭŲ`hO"h`il-ԤySXt4N|P(! .`ho#$I bcbc˹\+1 EL2E 7n)~jHosO ?߭gO,YXXRt"jxoocwwc,Vݻ~dQTrAA=ƍml@rbi۷H1oOnj 0ԩ]||hѾJQQu@ݻ^T [l6wѢ+iiOn Ug<׻}h3Ty/!`܁۷O40Ձ T*˯11qq9L&_?ǀ&tgPCڑw…oj32(dYӦu8@~ѷo'}Fm{H$ pxoT>{VbqW&n¸Jmƌiwъ\}FI#FXږyTzϞ{ A2 s@M|6 _/N|1n㳤((3" ;_Us^iܹ4ZH3žT2VSCj@t!X x=SS=31#  dD$% 2֭5L#55 $ZU@FDz!gnoff(TkQGrr*O~A #<ʺڊ:*g@N3g^_"0A^fNNNNfNN`Qûp!.$$Bedoԓ&_J X,Áq8ȑ]Ǐ>|>p8u11ѩ))%h4 !FV}U[KC=}Sԩ9f4 > nd*]]$axÆEDӧ̏6ww ]iRJ׮9xpj^2Rjjk_qz||e?qb2 ЎP?|"ٳF&@Ţs\ծ;ԍ\6w@UYx8}$YZ%'?P8..gΜ M )*g?zhmOx ! Abu.ti J\\ڵFF:&Jey/}8l:~@6ߵ^T޽l,NAi)7aa\X0DS|mƷV5ѫDb}}=DH} inMM x,, <xdgW9::: ׊H0`H$*DkT2:*^ M @OIIͩS/#"[Fg~ʪ1&C$QC$WUQKJjW%Ox{{ XoN AԩY,NAAuaaHٙhhhhVodgW^}#?W.twԓد_܂y<z<xkR?ϺKZZ)a9llL㷂j;ǃsr*3tX4rpSdD &&2Eoxppw?-~`*uPH`^ee]CP #j)-\ƍ! UTt\`I$5%%5$R=3 OVǿ!WpR_޺rUԽ8\b^Ǐ\bA supu1fs/^ iVut4ɩ||\v6h3h Fz?uj$us\./2rLoݺO_pȮP7lk-"u=\.!iKHU`p/|57h`=rdq㼇 sl`b P(&Nd:6QQ׭mUmKD?vۉh4@>#OMih`È] jQaa F>=}=b|mqq]]-Tm s@=Tm `Oؿ?TĉY5>~~[[3͚_̏O NxcYgocc,]Ӏɹs'WeeF;K@@Of7ﬥ528A>Q |C]].^|S[Ap^^BR*jM D d2HGVi$d2 +Aux}LTOpF=<^B)ڳg_}pU3GAQS^^147 ~B@K{$'g11 ^."ͭ#KCcee|{7Bﬡl:~"_tνu*33|z7or][397>ҥ7..? &:Al6S^V}Ή&5Ut_ccHT;;QCI

    ֭ϵM~~&t5T oJL"i>>.w=Si| ?uN޽5Ngɴ2VUEi$5555x>gj|53737131| &UZK뛪ZBUW7 P( E"(<^D# LM,D?>E1Q 7CR +╕"1]$󓹹277:PZmDHw2]] H ̧WLΝ{_HA}vX_g.kwyo%&X{{+HGwj^6o%?P(WT<8qi ͛8 &)09(..VGGwo??׾}i/Tr?Os8<BPɓA`zZŋ[^HƥF.RTDvmQ{ICC?\g \sNnv(ggs[+ׯcc&$xp>FyBP%OuuС!uuh4` ˖xzB'Ivf`~8}Ϟ –GݾMjz|R<3d APS(z5@nm]}vLMK1nɨՃ9  JJ*<ԗ/{,- w$ݶmB``_|/"#?}bqzv3kn{Wݽ%>>սرƌrsIWL ehcaa,|2c )\^KYwn39i_\ &3T_UՀx욚XK˟!`j`#$6||. Iz$'bi)yr;[[B%|\au\.ܽӧF>.~6/)05!OO}ePw<(~y~J@P( *P8ޔ)K^{~߿}LtHw޼--hkkЯ_~ pjmHx[P(&)f~aϞyl'ZdgW,XpA-kmĩ]@"_ƍh4z+Wnu9yv3jkfnhef|lld~GСFu>Ch6 /^K-ߡPJ@(/^d-\x5<|СcB2f>.>>>>Β. ?uuMd2B!jjh55 L4 B Biz&&&&??zff&& @RLN]]c]J$V#Lψ 0ySS}>Z頊T*GK +d_Dx\.7杻ĄNg9sGop*LM-y6ݻ2 յP|R~~d+ Th@(UU CR A/X0)*4 PUՐX,YRRitfӯkm}|81 LSL֭6Y~g[Fa{FSPPul\TTҥ~2He"wׯ@P ^o5|))ACrLZ |@=ј \JL,|Wuxn9؈]OJe(+b17)j{Tٿf4iӽt0[HDQEP|:A}^Op!((""K tЦ3mCL+m|szrzNMrr䅅ou,^k%]R!=c]O>y`y)͹y;f͔ űFuHwߝ+)ic?pҥzp*Ţo9sh-E}' Je*)՟:U/9´S ӹWA [YrWzJ%k%KI g`_MG<v޲bWCpWx8rcz^? tthW){oqCSPPk .զJ11M lz;6ժ%O>K&qȾ*r`@QT(lٽNYYNу%zODإK',\8_2(OIq1cLI:5#;J!xΎLn{\?|:==~zr˖ر %q:}?nھ}e_ޫ+W z␞a0Xsr6]W&nYCYƍ{-@dܹ߅@z޳G%K׭ٷ7fi4fB\YzR 5*n̘1c33rvb4*+.++۴Z3Ύ3&ap@ey[H s"|P0 rLv Rj\nPMI4F チډ˥@F'[FwM 6Ba duvjM&;X'X@8H$z)$ \yOQ~Vi GKӦeDE\>hl_}rlA}8矯ȀIڵka}劄ǃ.^P،or p|B623~^^u!CXn.=5k|#77񣏖 re]ڻUxqcLJ^[N r䌌>/v{jk; s@/,L!Hm'l9`w]_}uz8޷TUϛs=ILC.=5/hϞ^ݺs?- q$<$85|eswkw/_>/U$WR^ r GN? IDAT_w!b9's<.lT[jƍsW*cyGGoߋ]-զSqOo r9(((33AD;v?~ 5כWx瞻}͚CEʶ%G?{&u_ؽH$5*'Ο??¹sMg66H&o:C,ǬY{< Ξm|o|ff ?(Ѭ__ٴi%=ǿLh&ڪ@*,L۵k_ k^k>:uݺP˖}Y[zhb dS۷v:KNXzJDh|NtCBYY1`lϏjp:"kц'%edD|~DzzdBj!tJ6)&袴ZFc6 P,?u)l9]2) G!j}mɼ#e2-)"Ng2) cDE1}R!6֦vdmͦxxNx8="9BEG1}ry::jkӠ3ذ}9ѧO (`)SҡWt=33gO孳vL_zgu^$篭*A(-0X]ۜN7,(3PO\жiӾKWsbq|??9fL{-NI :SQo$ccٷݖ5oq{OwХ}*Νk %͛7jٲ };ryjj$5;(6 6'4??yĔ~r`!uQL+VloiQI.gXn'N\9vM Wt.Xԩ[. :qʪUٜ7}^iyy74/gޏݤP,6yk&ONw d2oIR^}uAo~nOeo}bo0wٲƩM]TT_TT_R`0X33gΞ3'gr.:Tv{ 9w>\e2&NLs⨩-7 6.7tDk uŊ9_˅[H$;ջyiHMǨ~y=))}vrKU>:t[,v9hM~7ߜ=e r˷Ʉ>[B 9t/**ZGZ`~ RMuuFysIܬH4`32MJ OL KNsnOCC`dGF#%&%% 8nx`V@ 'r(H[|O>u{EˋbB_Hd7"@["X, 0G.Not;;uͼ#pQQLyJK@z?!EŢfS'MJv}3|vFc~Ξm|yPOև\˗;Eڦļi2.2\_~xz˺u3y7Zڷ>'vkxܹbQyyʊ)(%nw G'KskZs~O<1'24:'5>ȷߞB ŋm_}U|:t' [6o0*\aX#$ԤjiQ67+vBB!s9@İa~wPj-Y5kfƬјjFcj-`Vkj-g)TjMpBl*Ee(=ŢQ 8.#~Vd:-P⧈w^^TME #“H2^&wthe2Tٜ`1:ɌdFD0Ft4+"dR > VXnk2jnV:NNHS;`OxO0SQQ`yyIz̰?Οo^<>ϗr<&nwa?)ScbX.\.Ͼ}}t]pa=~5Ҹmۉ;6msڴ>,7LKK.^l]QQL_X&{јEEvsٳgNNK+*ĕBaKk 1"*// țzA Aή].ؼy>_nkk;cu $l6&X7%% mS Ǝ}%୷}9h ! r (Q"'MJ]t $ObZ,VF{t#]b&Nl,'&c!!xޮխ6ukJ P|TkCdwPy7v"&fB ěɌ>yy:p!oEaKQ50immjLPz XHijX,(ˆ.,4OI( <]?ET/q=.LPx >Eѯ*~Sn= -MF5icA?.'\Aۇ[[Uw1&ƥS'w:G֯t&i4沲s–IJ ?>9??)??7NKԩGkOCQtyF͝;7w vv.\WV++UUAFKK3&A Á䥗=ش_Z73Qq%q:?B/`ʯǎ= ;HEEyoYT__vOLw-f:'5NwFg%2@8Çv:wlSd$,9O8xPTڪnkSSGN"( w p>z&0rc9J#XC٩'AtRt4+&͌fEEu2xP`՚u:Fc,:ݵ؟,Fb2)ɤTɤxg(0P c`R(Y1)FkFcチMph^m*Kclv(MPa4ڤRT Z٩2^4z<]>aapzT3"ѣS(/''X u3}Z1" nʔtx?3uf_? *@$۶p?771--B޻㏏uv.]vFomm/-*.UWKp#K~~P"0`]﩮__?_;؃  /+kmz 0!cL ZmڽWT~m=pmz|ʨ(֪U˖M65@pZp ʘ1qcď^FũSuEEu5Y,)So-gGCX 4XUU/9niw2ly?k-x!kFTUuZUq#4wP}MJ^]JϞbQXpO}W]ȍhlTL;,Z8ߵ@ [ ؎%atG]%%"&2 Ǎ&FSޮuvj1K'r`<#$ Aju(FD+h;:P(Nd"0qP8]~"̮ޢј/E"Qtx΀5,'#OJ:ц-ﭴr|B]/xzT( Z,uxt(.&3>?"& 7Ri,-m*.:U'h)ر |& ̰ }w&l`x8 buqL: 3&>//Q CměڎO_I&x`ʕ{O%Ǐ_NM=GQU"VWKjj$ՒT*Ȉ;6~Ԩ1cⓒzgA,DRCƌ93s֬[MS(.UUWUIZt: B̌ƴM_  ˿Ys82g׫꫿QW͘1¿Lɓߘ7ok-o%ÖW^_^zS.F,_]"94?@ C sjɬY?^ڽ˝))^07 AnRilo'(U*#6I##aa4hC&Qv#dtfT*E a'aQ" @hyy7t:g9zg\D";ɤX6̡^Ia2)$G0P`J; {LT7OЗg*&E$rKc<'>?ǣ()ijl6uҤTv=l?̞.>ش^{oKY:eJ_P|LT3Pmm,۳G(f\J0iRj;wҠ Ƭ\99##o Xzٕ+55f@cc33D/n6ZJKΝk)r IR ԛ9FQMjj:jj$ AXvVVtNN,ϣH$_~Y+%K]0t/_ZrBn>8{ޢ,۹ǃΙA޳Q28Erz6r}~ݿ] e /rl t8qˏrwa~0pԪT&TTGLW* ,F"xlx(.>-:ps>a-v7O?mذ7;;.g!沲'::F&b:ڳٳM{t鄄n^fs>\7gTފ. mkS_y労NzrXxP2WfR,6 -MN;>TXtnQN$ a nx.7O@ _ٸqWZ(_U?Dvv |v(~_lY]_(+kUӧ9GoaRRck>?Xӻyޭ E KIIâEΜGkɓu͟?۲Pwj<)ѠRJZmVMj [@١l6ɤHx"ٜfhT&΂B$9а0ZXX(hN(9*tv@>Q)T9>>_,7p>7 6L'e2CgV0tvr=PKcnaapzTdFE1p:=\5y2^ LgޥG]ju>- /\( LIZawvcGC 6m#BaKq]C&ǍKKKOTUS?S.0{vv϶--m駲ÇVmeX17vPJ^V_/rEzJg}bqqFȈLO1"*>ۇbTW^ZQZZ\[񠩩 'LHO t77+ګ$UU55V@%&USNNLVV ܷC^ IDAT [׭< 2x㍃_|qjUCtسG~Ź=6ߵ\Gx=v̜^Q <rf{A[Sb@z9A|qi;}>#7 'lQ z5aP$P$&Lq8r8&Ch4&D A&O\nhXͦrtᄲXTK2TyQ&Q0;/1yA86y'⁶B=An^?.5G&QO~iQqZ- P3Ң|䑯5ߠw`P(7 HXM"c ' $Pdvq MMc9 55)ܻ\,V;nѢkyzK}L$D"iiiir0WuB\QZ^*p&LHOV\^ .F#nG1ҷ=Z;֬q\2曳6}/w-=iHkFKSO}<~Ң <ߵ@ uNKN+)5DgW>]tǏO=;۳Y.mc8T*RihLjI0#(ҨR b D"8"v=N`j4f*|hL(\@ aymL=D$`PF摙L Nn0d: E5Zmj-jI2&Ƭј4RiG"oU.Ldaa46 &  Y, 5[KJ.7dzL Q*),ΒB!ۧHfx8 AED0xN'w_d77+ 3qD*]SNNlj*o pJϛ7f!ʑ#5?矟]Ko_źu߯Y3o˖C;w9{Eh=`]**z߅\:Y}-\1:'u̚֎Z Cqĕ:~`ɉ3FdfF@(jRiPME5kf֢v4vUh4NR!!ntla4Zf*t: e),Ag uK'ʬH2] t>&g$B?bYY E>=c޼QSfLј|Sp33.w3vcC>""[\*+RNKM3&a0U@8@Fǃb9tlQ!D0q11| ^d $g6>K=%9pO|jUM]?`6'O2{v֖- ]pGFQt.E.j:| ! 9AόCI!=t9ppѣr!*9cƈ33'MJ~$ io&h颼" 4944L& AN0Fh thh ơ3y; ^C Ó,vgu7ٜܰ {mStM-riKGIbX,ְn 0$ #ںƆm6'r5 _?E dLTTTg0xA?//q&s E/]j?zښ6z#5aBrmmÇlPӧ㎑ӧg\7nt(MM&h|RRxrrXRRXrrxJ /%%F믭ZUxlkS#ɉ5*nܸ#c}ɓH$ߺ:ャY 2]v…TCC󘁤?>}֭Kk3DN={<ȑ32]˰;s_~~geAduN}w9\^ 쉃zٱcGԖssg̜3''G24@38Fc2qD".4D"D BQ8ni;M&O%~"3T0dR~dq(䳟(D"Hlfx8 ]v{:{{QGчhLWeO\Ɩ2 O\-#x3رk }Ŋ[r.mSM$(((33]7< (.=zرf̜=;{ҤԞ756*:tRuɤ̚5gNNAAhZ[Ux$cFMG¦HfNNȑ9999\n(XEю]cNHVW'z࠸8NFFdZZdzzDZZdRR <(>䮣GkX'Bڎ '} o A7C*5w-l'sk :E ز`gk@  hS֬Z Zm:qʱcO3m32o-sa^ 6rNYJ%Q(@ DV0fW  5J@ W@U Vj0X Nw)X,@ygyG遧t2#pat:1 dyd2`^ yK"">a]2I.7H:s#,*>Nd8kc:)&OϏ>:k׿&Oaĕ+҅ fgܹ B(rTTy;v<4kVk pJJ-VQ92rp 9A͛Z(0|]S/)xATjL$F A].]6`{2HM]7-Wt^,|^f9त#chRIبll76*:E \\'5KI B29sqmvʕ]0YyRg?"'~sb[Q ~UZV߅ş}郃e s-v?Z I[ԩSJJD&=!;eJ@6aBrU@;^\XF`v,Ʉp8\F].6*TjFb04N'd:DL2NWڵ N@'fQh=^o5m5`(Kh42؟0}wN!7 z1G|QbCQT4)T>OJA4aWNhx8-2C#"ᴈFX->[⺙wmm0Ō ցyTKKENI$Z 8vlBA_ ge Xΰ;{ǿPBo_rQ]-9ڦD3I dxv{.]j?}iQEE1"0M '@ѡ=tԩ+/t<>@lNp`pB9S|<'> <] y]NzrgGA5bDԈQIIa*I$D2prd#B@w<}co߾ߵ #Z[U |5￿"G)|;]KJu{cMw-̲e_>Ar 6};1;vbuqXTRҠ՚lI .''2am'z̙~x6sѮt:ͦTbQYk Ctk4&, ;F /*9zމ6u}Yt h"RRq`|`:RFc^v??ǧm viMw!婩66 :N' Mp::ZDѡmo׀6D$ǃ2ѣ5*~/M&{ccK.%%<55"%%ɤx֦U--*D AIJ&'RRxIIa_~Yk~D2\hjR{pkٽf_Zzb44 9XM:rfŊo_9gNk@ }9Au?xt .P80az(x<tv+ DQD*5J  htrD@ ;: SmQ>j(QriCQ\֬ј#Z0YZ #,ɤT6;;&b2)WEQCWD[@ LW( TAEF2ۿINwgh@*Ѝ39.fq=;LCb#02.^l[zc&[ۄ–&l7d~ c.]j;w沲冎AlN|b5𶵩NA"Ɉf8ͩZv3:5yrĉ)'FFS.,))< )ネF[cM J|<;  WHyYkw-ÅFŽn9;۷޼y=l7WvC!N /~ YhӦ=ujZ HuN]3y򛯿~e] dXTKK@7H$1I02ٜ>j+ %(L`Fk2 Qx<.88EQEn뮎B$$@h4)N'SD K E?y @ɎA&h`s|$AAAWH4N'PI`>FL:* M0Hzx !::X\ UP!u kk |MM dޑޙwT`ϼZ1"#)kHgء(Wův`ʔ>Z2$ƖI(l)+k`~nnbZZ r}UD(l 1ѣP٩g&`фYrr8ѬhfL ;6"q2ʕβ+W:].Ot4kS&MJmVknjR45)͊&eKh0'B!YڪEF2>ӐL@ [tϘ.G߽`x@ -ږ `oy襗=Tg(`'($my=ʟ~߅tzβ'}H uN $H$ڳgϜi8sSGssssGZ6Dvn0X-6m&bqjرZopiE=t\| HL BZ(K/E ֦d2D"0d2HqOZ|3U 0<0 0bQd@>_Rixy<M{TD=.g55)0C!y睂<8zC1h=̞Çzjxǃ64Z^orC'LHJ8fK핕⊊JRiQQ,:3RN.7(F ѯ*Ѭvt436M&N7P5 -Rq#"xRZ[VUkJ,V57Z3 $!&FPBl6NgV*ro!@ ~壏~'CMM}}G|#PVۯ(?k-x!cϖϝ;ߵo޸qPD[nw%PgF[A[feֽUuLٳXq%&FE ;/ht: hX,vK W`Y,vW D<cWnr{<(!B$BBd22dK^aZO@@"LjH7@ C ;/Ngo(j0XδvQ(DF#3dm @'F聺 ݼ|}P'oAv{T*@)FTV1ri0Zd${`@ou3b5 Ϗ!) IDAT}aOH q؄@ʊTҜaWS}m2ٶn]6h{buqL: 3&>//Q CmfZBasUU"L&{<(]6,F$Y, Ljx+b8,iRkA%zk@ } 9An UkǎMw-mR99yy ZD@ xPj2u |m9V'h=iviv"Npp=AAA{NVR L&H:DH*Lt2D 4)$R`;2-=}f]&R>&CL[#WZPzL3lk ѼxAuvc:]kOj̻F@\<)%7xdꥤA5IRONNCaOe/w踭[ 6q-9Ӡјdp* [ ʶfT֕28\0MML cc;xG `jkS_~RۥKUU&HgfF;rdܨQq2u:K[]ޮmoWkZ[Umm`I&X,*L rVC0>ahJJ . >e{ȑgەK@R\,z'| ߯ݞgٳo_ŧ>8gN/d2@eO>9ߵ;wy/;Ðk. < r,ZFc:|xߏL`:%UUM&iҤT6!bqlNfحVl76l6i8.ɔ^IVjuR*(!]Aݨǃ\;b) Od"LV "0͂@?{|^=Jewz`oH@87XZY& Zkk4fs\Hl6ͦXTdRX, E3|RiRRN2I:$J\W( riQQ Lr\wbZ$D2D ~qF)6w )*3l<=//I Ow;ag97nycM{9DM̙FTGMk. TSR^0f_4(AQDž8QcƏż].Oc˗;kj:jj$ y#Gƍ;jT܈Qb1@֦*lҴkF AAAޙ7Q;M&A'gUrwurx*Ǫª "-JL16+/~,*@ 7^v&NǯKv-ISQ۱l#;v)-j:ϰaC),t"`#'hDQuB$E9" 0˂ (ǝҐ$0 4M4MU,n+(Ifdb,aaHA` fK",ÐF#QnR>_T):pq {fyyp˼<BkDCWy<$YaCH|.n-1)=ݚaX:9بӁwPOG@kwEEtKRTu߾-[J6o.پLfIgf:T?m;W^x%}[oTWH8th!CrF4*tQ8}IeY pQa-4Q\5dHΠAY99'q $ٿz߾kEWfsNYPjV_kjUU@UUҧ?#Eز-##%+ (@ :hT9ѣɮgC+zkLn%@:'IrY>XkA :;˿Gq0 szg+YZ)K^6X!Q^tlj A8c$4MSUMU6&S$3 EÐ ClFYLy[w $I "桶2bx(v$⑈H<ChTHc63fdbfj5KLȲ̘LbZp1e֞.gI. ~. r~,)A|L9Ev)%n9%Jۉd C?ӭv11/=3z]II*-|wn$ߗo\cGٮ] ȄvGfmYO˰[G]]X~۲I qd˖M=7=lXar/ MlZF]](%H岦Yh4-huuQ,UT/}=f_(ri{@u=g9`@Fa$ljUU`MM&XU TUBPˋaa($dYEIU54Ҭَ cLȰ{< {zg @ 3g|ҭ}7t5{uwyIv-g80?q +V0 3t~]w- ZN{6lwKv|atjX n7L6 f3c"~? ‹ -pZP{eTj{QWWՅÉ횚nNT>e\7iyw_U5̻hTصb-[J~ 3G(9;%5=!N姞쭷L2ra`E` 6,wEAg >_66FðF.I|ohiiNK$ol xKK%%u卲ޫo_wA3Im{$)ϵ>EQ)M+*r8%P PMM6X[Յc8\$qx~ ݶ'|3qȰ#m@$7| z芙3/Iv-g2͟;|p[o(op8rdӭ$)~zyI!Twd@t.H89B!_xlV݅UAyD"ٳjϞ{T\.kqqvqqVqqС} @'tPYp萷**eY%IO"wQ .ssZOJz@]]w.e8F,m"-Гz<4KFyrْU qҔz楫*Fi3p?pv#;vٽ>pÆڧ8kР,Q@tP FqEQ#AUpWU-5 `Te%DQyQx\VU2`\4pBI4MRn0PEE5MY, PAЃef@L dYzG]`ޯNr4g25A(VDöfdYeZR:&*Ϛ9B%ZF1=j韚)<jOPfxn5=jQPqTjF̻:3 ] '@uE>-w@0]|q̶+.-e}_޻wjn1mۡ;yС}Dt (`rTo$fn4+IhwlE+*|G4>Mee j5[aOVH|HcYYӀ՗1Xa^^Znn:|K)(p1wQ@]]F"q݄ a]ȰgvNG DPW:,;ir*B!ny)]rp;4(kɒ)gd֬6m:e˜熟|]Ʉ غu^Wl?e˶~=瞛DtN{N}멧L<"ٵ Guu`wݻ8lj0;9N x8NVVhdXX  ò <+-bX>&bL&>c2A.l\ \0ǂXhSRXu8LߔWol6cR}} 74D.6E7 MzP=[:㱥-JL@ew`]II]efޑ$kW/Gi隧Mq[# ~' ݙa'_^zܸs ]$3j؀#Fڦ AƨK #],K[SS-N)=ݚfq:MiiaNOqL<+*|Q^ǧ("#ޫW sRX^h<?aiMb^vGpU*ilü,70 0Nb$[ƴ4KZwTۚjHIKO@ D'~۷? "*+}'3-ֿF9YY>򁯼2l>Ç/6mY'ӕ!?_ڦXLЗ(4;&'p`;=ta=VNJ++G6`z'RSͽz5ɘlgVV :|he**|Pn-33%=b,K$ŽH]]"qt pq8},'ǙfIK@QW-@BСO>3g^ZL~-tO,^dO<IQ,Zr˖9garߩqϛw_6m:8i?gͺ.KJA:'DyO/޼xK/Z$(jYY5{V_o_;g9p`fީ@"'Jq(*'H F"qEQ9N$.S5%IyEQTb1AӴHD@DMSEQ$MQf SJhT p"p3( ÌF1(d``Y @Qfdl6β4EPG/a/Y,@T"HG(i?[;B?A}EAO  ~.A.PM7Ѩ"Ðv)%IvfQnҁUB>\WCj =B f(.>01S-۵̼k?YZ}HQp `(0YEӰGB 44û L'+ TU!R]WT*+q:Z,Kv@sgvW/ SBKSY+/oi8kLh @ i0DEQy^EYT4M x@,&Ȳ ͨ8ND⊢QMj,&Bx\RUM-ˊ}6iHw_ճ fHPq`imժGklik=s{AΆ?t]˖);̻JizkjBlbB8v4*Gb1,m4VlfXfYj5LHLl0( 0a@_ 1%2q>_u,褤 ;MwO=3jkuu@]].T]禞YIxZ%3v=cxlv[E G}G*+GꂁARvM` n7Z,gg;ۍȊ @ ζmǍ{uGh{ɳpVh'I?6Az~{vP焮>XedWYYq!IJbd XIv; J𖗗LP7Y|}}ׇ">_ ׇuu@ɐ32\n[ffJZ p `;p/ x!?e$KE/ǍFl6lZ95v[={z l:SQA@t/"'rPm-VKOv93һwȑݼ]o}I }=H@m T0'jh{zΏ a{zՃaO([uvU\~ ]y }z \(@ ,RR飾jT&&I ljhT_Vq,+~?yYVQA4Qc1QU5(J<.Iq,DQnO_hBqI$I(i$R `Y` iZ`4M,!? p+/t϶`)G/01q6pZz~v/WDc((KjC%tkx8Yp^(Յ.q.eOJKO60klq/'IRR9(ʁ% M`3u#v;k))nۙ MtcJIa;("pcc1}hcc 76Fu6 RSNg xL MS$76Fа:O~4QAdQTN}Iv1-͒MM{ng;W…@ Di_tވӕ{wWPZdjz% a~7n:,Iw}PGӫJJA : 9̙sm?_|&NvEi^|qp7TR=x*{o EEBY,8@pH]gRIR8NM"*UUU(y ^ 9 ת1((*0EYQT%IUU$IRUUYU5EQEQM$SUMӀ,n(r+!83  I i`S 0a@9Ufn1 `n"FrLc:vRJ)(I|Iȧj;Sl{wr(#1(A@cnD;(͘ AQirkqقA. 7n\0Aͮ꥔S>iC4`(v.v/ ׇ}h}}6 j5ZFrٲI,y)74Dr(2nO%$NӤD[ƴ4 }Lv@ 5/Bx'X{VDl6aI(]wW]PM#9!:ɓGO^^x2"esl#Fb|ڳE|*.**r@=PqL\kp\T@04M1gBqQTdYDxYVeYDU:*Q4I9N SEQ$qb4= b)0q(&RNA$I0 $I(fe)ha21$I8n63prb6V+ i4Cm \ [[$ ,[rJXLǥhT8ND0/q%H yq *[Bl0h2 փXZ 4ML@3bj52 ɲdcZ(IdY$X, UU %f94 Mgul#>`D=Ll66##f3겹c%SJ EC(1#1](<p$h( p 4MSUaHE$EQhccx0 04MտY6`SS-TvRS-iiD 'maEuQ}t~cW}]"|sĉvgj޻^bA:qtNd2.O_?vɮ8h|eZ|ڲdHBQDީ}z ]4䲆@ DW %ѩZ+ #}jhT 㒪i,$˲*˪ i@dUdYU iMNA4hA8]8f210l6,KGiX Z 8fei0h hЍ3M&:}J#8NǥH$qK "D$SՁcvS 'FQZO߃b)bfci4)@ӤWf3´G]8p=b"9Ř(h1xkhzv"RRX/j50 EQ8ኢ*ukO! JKKOd{h.k,E>vrB}v :t= QXc; p8C!>p |Q?ġQ%# 0XeE_h#IVIWUUhZv15rYєpNaJIagI@ ۷ ۹NڵkС+V?~[j6JJRn8oCQT&A%՘azxF@` /kkCѨƣQ!c1AQeYUoq `͖,UDfX8]Z 0M0L&@ IwoՍ7vLoȐ!sν.R 4(qCo~O?vhyyݻ9x7l޼Yߐ2dȵ^rJŲ~niڵ_~yY|yEEn?{#qot#{VOui^rPui"k}}w&IR/Y2e( a\vـ{ԨgνcY"zdYTVSIIgh;ݫUT.(p"8Ep`jU"&hT)(4 ic1q$) ,x\R5b1IUUIRTUIM$Ie,,+P H4UFAE`UTU$`PZml, k@  ϋG:8%kN}7xxQF_ޝ?%\xbxuuuNJ<W^g}cx$c]> [VciNTs}D,_-u%ݳ9;,]zݳQcA:'DW1bDO}edؓ]qAxN3'ǩB!* 7ze-,t8 PL^@  cUjhZv Wб`PEQC!& M(M#H"I*)"˪$)IRAeEӀi/,88 ij|.50 P@c C-"t +u>a&}s b1X,P&BӄFX<.˲@QTIR$IeYUPzC8~\pv$I;wҥK5M۞~i0 [ds=Ceff>~{ꩧ|ݺuӟٳ̙>ٳgo;zhNaNRS냇 UU 㪪ˊBS7Aa&(q~n94 -[l^={vbzio/\UUuy͚5k---s%aZ`0l:~ktۥ(ZS:N?@k֯_?s̽{XbvjV۴SCaTTT$@ٹr= /3p4Rʕ3n"  q8L& {U#G>3c%3g^b2%y@ l6-.{A>|СÇKKwES~~zA+77-77O>}RaZ @ S ;;hY-`ɒ% ,Xdɹ?Μ9g999vQ㷿য়~j2Z*NDZ VGoaaa^&Stҗݰ7{tDv#onz3 CW|0@X4M BӡCC pxPԻwjnnS@ H\UUϋѨA%h( KxDfc ]EE' wK@ DفvN\m{xƍoFO$##x}}Շmm[rG@ 9JΙ^JJ7|K/͟?7͜9sʖ-_o/믿kc2~x % IDATC˵.Hܹs]wݵi&&4/;rDߩ7[\ZinZ IoWzG]}9vkZ%Ye.:ZeۧMOlذx4; O?*m8'9iE'^ضwlٴ~T#n݇ΛwͤI.Z-Zokeá("'Ǚ1PE6**|[ @ ьo~:<&LXjյ^+o (//~?|޼yk\. Çgff‡KǏ[?|𬬬V~_<ß/6$"@ ϋ0[LyUUW^-+f+w}=ȑ#ϟ?}ÇfhꫯN>|x$6lL?矿 ye$IbY0I4Z%''g߾}??$2IՉYkUژ.v.#֮u]}챫4&튃\G}W?C&gZ[E?z[-c{۸qj˷͝hiqѫ/}[3Ã;.H.4MBw_'\9s۶?>q#oy=6?up%[O+^(,|lذ'o=׿]kQ!@ (l;vΜ9{+-Z1AEiaB$4iҼyݻw{Y Ep wߑ#G?[ni6#dY~''Mw.^8 ]С;wΝ;wĉmtv (˲ډ"@A<.u[kVۜC\WUw..?n(𝎢 ={i_6$rB !#xۋ.Z<0v+|=]*b1a߾u~|Սf}0v+Cxyy`?^u 3f3/߶eKIeOdW@ @`ʕ'\T4In6a8 󥥥;1ch -Qm8ŋsrrRSS^}f'ܽǏ?~Ey?u=;[}@ :'\{U/g5:irʼ##b 6O?Wo9Ԏ?i=z[Q_|1//f]qk׮MKK4mv=//oڵpf֖(qo$.שuF;yz~^ t֘ʕ+y~zW,ijy&S?귱˭>v}:!ӧ{yOt@ 6ak{?f]qi ݏi7,[mÆ}8]qŠq99#g++} l9Edda|rY]1@ D7aʕ+'LBy敗/_:tKvcWZ(gO֭6ܹ Eʲح^pḓ@ c<6<[jnݺûk֬Y`][Ut֤p={պu'O9VZu 7 W;Yʕ;f`iG)Sޒ$wE[A gd @ aFU_~5|x5 A!5"a1W|mRRUP0mk*,tw}4@ qkjjz+V$86bq"EUU I2 TKrD q`0P*@3gΜw}o߾{ӟtw'Ӏ[{r ~x%Yus箙9.9i;yO?oOKCD[ aǏ:~7ذa|1Kw^ǒ]&l6-.N$_YOwa@xF='ǙJvdg;R\.I@ Dپ}1cfΜ9zeZOޞ"đ#}i(.@ ~XV>ZiWvU$!͝X߷ڢ7Tsz0;tkj4;MN")UWzNMv-EQ_bРz877-!"|rW_[bF$Iy /UW? !tN  0 sKb#KnEhrsalFz   ѨKqD(T%A9NEIR#i AFI@Ql0(!-IVlfvF7"VWWCTeo#^o +8].eqBSNͳ@ .{?7]?[6n|$##%|}}. PVP_ &0mKOftl.f34Zo@$??ðR/9! ㏕ €k"HTĨGsUܒF/bDk\(J (°kU/S, 03=jzu}v]Sc_㎫,`lYb^:csv1 ? GoˆѨ?x䚛{v۷ϷwwyԒժilJdb91Eo21&Co:ц@6Fl6/"drX2bx>)xD7L&F20 ::aMmdbFkM&zq,DZ>Ŵz'::;[?om a1ncxg]F䰱a4''Ntw6Y~ { ZVUY1d`R inn.n&X,[n9Zb㏯ohYW_!8T$hl _yN'_Fz͍߿F~㏿??wiKs8__'?9/nj o|^z~f;hp4lEJD" Ay^FEZF+BD1CBEb6f>TJp)mv#t:2lfijJ *JQ*hdЁ}t߿CjN4uu:DŽ cqM:ƈl6!"Pkk=hTN*niěgPuuuKKKW1~:Xv2L 糇~_ Fi7|gdJUg`>z譻ҥ #b??Z/:rXːs`l-uknd29RQUe; \ǻ&Nt\R/T: ^/{|SS)PtSm**,>DRA~ψx"|e+ooq8L[ RSSWzsm]4w2`Œwooկ\w?`*yOtį00 s t-ص˳{17m~q̸qZ{}>qe^2@* bkj ȋ0h 'BUW0Bb(T4#yGy\.[_?嗟0:rN%{khjVW7I68z7}+B}4fOt}*huȂ!+ܧժV}QI># b?}KKR ?!!L&GQ׽ee>t֭q=+~'?9[O1"[~7XSc{몫mGst:[/_Yv.C `4۷Ϸ~tJ稫sпꜵvx<x"ҟ0ڻCfst7t..vs.vs )WPyaYgj7r-/뱙N=o~v2^oTO_[ҥT {]G~3Y(D"o?Ǘ_~C--'_|g,~p;A'=JB>Sm֮ף ٜ/E|>-mo[~J? p+@i(4[pR}э`0vXy.P F9?z˞~?.ReH5k7^^J8IߝP\~_K'M*Kf_q;|%w߂/?/O.|7YYiuA `DJ2푦]ݻ=@ssZ{m.MfYDUXQ|-,!Ȼm0 F88YgM~**,Gv/sNϸ;b9d? <55t[DBJ,+3تm/У\.!ttOooRP \.0ݜar:Mn7gQ0ʤRP(V~p<IoTQA<A^zi?~o J}!DVs9Ctt]7[E J_S~0D/{NmڽeR ]< >qyDU}f~6lwh⊙?n7WU7_RxXw_׿hT_|N9'1*||cSss5$UJ\YiUTX*+*L8ҠxқO:[t/!P! |>Az* ?w:rT^L:yz!C\~3.Q'Fu3yR-lؼg5{O\^ y0~{͝;?71j5,at:M6Ҥ IDATh4q[¯πck8\tS[x]w}k"׿nX~aяf_s]>aݺM{{0yyN<F`4}MۭX,))XvsE%pV" c~4(L P(NB.Ct.nZ:`F#( v)g5+GP:s&1Oz<|Y9sxj$x$\v._nSN3e4È!~M|>~k{Hn w{4g9쳏&Ms"Oyi"T (:nуx,u8.f3:&$fp8I* b`<B1ڋ P(zK0^Ff3Eo-ժQtdhtDyR y}غ }͝;kOd޼նW^Qd6=MMM7=mZucK*]ڵFs/ZtOo=$Moаa[qU~O9s<.Q 9'ÓLfhBG~h d *R em6ͦc`t:j%hS^(P,T*##DZ6AmwIG2`tQhFTG^@jV(vie٬//pSگ`]{3mmkIPA,x,˭\y j!~W_> _|ҥN*` +7XYٳ-: O`M4ܲqӦ}6}T>{v>j5z 9'G?10C4\ FCx67ttj'Z-HSR)unăBJT2Ybs΀a` ȇ҂ml }n8'"t C ~soox";O8J669KL̉'֜rJ̙O>y^-J9'OӡP,/Fy`,Q ]xijDڶXCFĮszBB -YIߙbM&7#5uGT&_|yQy0<޻?Y'V/_~…3J_x7ܢժ/;cW_0{}oA,+,C$oo( ӧΘ1n2\ P9'"MB0P4E#ĝd2#~X,zUo6,u0 ujTBDOC~RqҿM&Xc9N(j@ufDэ@ *cAy0Pyn7#?,Vm-z-C*̬Z?ھuDŋg 4WccܾzW_}Քz(2L\~O=nƌq(rN}L:/-*]c򗒭VV.c(ɴ(> =tn3s[ީg DZ#eMA^G7fD|s7ViFm`1Ӗ-M/.SKڸqʙ>k:{^}uK/mSUW6f`h7wwl"BAy0SO6fڴq^&H^^~>QE8& ]0z;E ƊFFC at#:5! ÂkA!͈/ oG4z-kg̩≫t:v_ܸaCCm}ɒYϲ05 ۶_FBaNO=uĉ$9PѐP"D8~RA"Vk!)qZ,$1RKCIsQt.T[.-hp D(y~90dgNyɫKCx"-:(K/}+_|g~t9Ln(|1cGΝm_|oζp8N?Ųں:Y?qq` Î<E Ob$yl#Jڹ{A^YrqGn k%7Ydi^K޻g7 gחz-&|Ѯ_rm,9-:' Cl9HSM ݻ={A$l^K2>9f7cFݬYJ| 9'udT"M?'b1QΎgqⰮb[8۴nlt:$Z'z-H<MFb2):JvZ'?DzFיL:,0AA^YY~3:oDW;x5u~:nk)xx`W.\8k[6_Xp8N\pEMcYmT:mk ٽ۳kkSY__70d2ھ53fڴOw)u'5²Z^Kzef3kz^&c42,f^C |FTy~9#B:U(V-jKAڪU[ne.9^x"o/o_G}}٢E3-:2z]0R4մ{1TvseevR$믛j3f;qWK!Fd2C t@N,V4/BHa݇Ec21WH:a¼ИeYpxƚzz`-{kў<#(;P#]y^/ĥQ/^zʯ}IiWqŋt3|paiWr4;l]bgZ LSN8K2qmm|>Ѩ&LpM**Toۿ믛ry6fڴiӪO<mma:<~s8㝓&qwo֖[nmٳǛM&fSN:zҤRYpxsV>/Hoc9yFt`D"J$4 ()nSx*O'{L J1tzf j DZ aYtj^k42ZժfV0fr. ?Q2/wtUg8_7^{_kq1t'2oj/81K&3k~{k2w&,\8 N0🅱"ζmki kf}m^_ tǻt:}|Ӷ}{;wQBHu*;+;Z/ rN0r $bT"Œ#ZRHDqizc 4x T'3K2}k֮ݖHO7`n,`b)Z"MNixg]Ag50t7{w.֭ͻw{wbZV4=uj8F`$R.$!Hh"hNRX,TJ0MtVZNMO Ѩj&C[јLNuC jE{XP(2\MֽSq4y,((OPZ /|S1.YTCw͚[++l6x/W&O>yܼy'Οe*` M^oAMMM 'Mi׻'M*sJy_CoڿֳkW *&{l'Qk0!czH H0^b"RC`h'%O %!DS3z*F)kЛ*jV($UQa%+06mڷh?r<\>_oᄏ}Ŋ[LG<2tO֬F"k/yR/ V$bLFkk(ɑΈjM]J5ǍsJsi"v56v|m!qIe&חMT6eJ559d2#H$Jed4L&3ѨR PHΔd2(^gzNŲZAVfVV>2Z4FoT&ժYVC[L&FVLV뵴l(30AjPT?SEy4 cv`t:<ƐCy^vFA O-[s?;w`?֯~7̞]?؏uv)ɩS>w MM`SSNfjj o:V]mK556 ? Eٽص˳wֹ\}}Ym1`C x>!D"d&Kd2"  IDATx>NgT"Lpc,;2E1Ji6j`x0Ae004,4DZj9K48T*xFty圴Q]m+XN50!DUa&ZZ7qe%`xC `Fl6Nd9t,"D"LU*BhTze5F%AR,VR:i݇RF!.'M걒O>JhUQg(fQ^?yI|ܔcC_J%o nÉ#+sfǸt:{UO}**,Vm- @KKhmظqJwL3tOߏKNtpJ4BBh(4^ BM<4DEC$3B#&Ra1 ؙw l!b(2l4fOl,}?(jUzs[M, ̲} hdVKoQ#Ac! |>Az7* ?gDUTXPx@D[^]m{uu%~{ 'T͝{7mZ52y'y|[["4T*NSY6WT].ZVƕ[,>jm `ST[jkնZ{mVScG! z@Nx**Gg|*K;Ј !4bBn4AEEWBG:s$T*4Cf*by_RufT{=eQF?Ȓ[U%o'6=tȂP4z0~Ȃ<äR'Rzo/vw]xl7ol6cGu;֭۹m[ hfw}S-CQ/Mz<_x"B[[d' zmE-n\JW&'hc][[=jm G_VY^UeCJ9'wF*E):ưr $;h?HT*%H) ! ?ZmFZ*|VβfRhdT*%m $ VrRpICh.V[t*S:ASp%3 QуHOC9*OGRj>Eǰt#p"tBTTď 6 ^|q]w梋A2?q@`[+*=` 6lhH$^[k=s3g\.G~=Gi^CzyZGQrq+/iޛT*^xxol 8~{ ZUW^g> rNS?2R=J,6j3ҙ)B>\PE:cUJV+}( hF1YHrP&ή@>!X,C75B)i}_> y^$B"imd&(o?8FPZVEa)GqRHg"> 44_E:i4*AK#ċOp=H$#y---^E^(6r`81ld>pܙTʓL}Lݪ`=FӇE8ok Y|[矃ϵJk?Kz#>@ n VTX**,UU֊ KyRYiE8,9Ѣ:Ja&HB"D>>ZsFD:t}gxD"Lf?PjAE 4G# Z* )ѨR<<l.I&t04M)DЕx @#!Q&evnp8Թat:201,H`0!BGՕtѧ K;\yn7k `aY-MXC}A(4L-t(þ X.ES3ȆZI3Q=R Fiܱw쟣Gof=\.:GX5]#İU{{8KA+"!V(زԔsNTˆ5BA)fYhJYHlS hvIoy[6K3Q7ҌZV* c`(C`Jk4*t\.n44Fvs6n7+NghCur`# :x^pNa vA!X,G^ tNR0 b~ ׫V+m6f c4TdNco's$c[Bx8bPQzER6vc]49&`].n7П9U_ iϋ\ DJ J24y؜D"Lf,sF"StfeJl>TFdՁ4[H2.Y9XE tblC=FlT6`dT*Y0젔"gP,V8åC4UYP:]Bՠ4*";@"J-Ze0NKL p~n6OT>" nmDYg0жp8AqnJ(wIYq≵$(;.P(ǃ߶YL 0BP(ӍjVj[z2n?^p@ o+*̈"I&t:d.# UT<,tu*.;~n{<"D"}MEhVP'\!h4JTZHR&FmQRxK<ْ"N7JJu~8\Na+I-[ztg$}JI$ˇCc:CP0Yp8NFpLq24QdVCum*mivp6 /jfɃ_<-AHȠ44dewxfnP7BR0 y>t&"]s+猼dZAJ+BLP!{Pu !FcѨG4 5eJEo)_@ 7?5P سgĉ|<]P444L0oJnnOgz)N`0FLƢD,MM\nFՠժT4*Fb$F b $#p( %Bjflf9XVVZ-RFVfU 79 yfDX NHpI.n|bQEmp!$HɫFbd&sFDy7uHI÷x^}pɣ0k!`Щ?j)yE%G&oH[PwCVͲ]Z ·蒡)~dbG|*[HGbtG)E|ssPZTY"fBD1U4(I5?b#Jϊ#2[[A<FJdr L1tRv.Ckkj55Bzk@bu]u8` 'yt[^g-'WX,Ne2FVjQd4FEAS4ŒHB?e jFЬ#Jy&)d6m@Qɧ9.f0Y'cCH9[=~v|MwDl"_uV\)y.1sďV+n?㲬VL5\dAOH9I>%&RݚG("HO_g N̖tKq` 7)X(,EVpJ8Kf㐞E)CRH%G9-wrN'Fe00K> f8TRŋge|b:I$D"X2H'g21dbܒō4Qq,I;0baFF XEE?a?T:%=B ֢dQZ%aVQght:?D=L<1la ޖ74zF ZmqGbĢIrEzݎy0òrso-|:SL6cY-M9y*ϧYx<)Q*U:7VC?yTJpxQ:B"q0>P( (ZvIV"J&. [rfsq*A'1E/٣|b?zqrң]j{n`@÷$ުU~l߾j{-[X}'񖖖?<[f=ܳk.|뭷(aw}ݻ+**9B3wygeee˂ҥK~ʕ+B+ⷿt?篹|P)/{_1ߨb֣BٱUײhd*+tlfz-jiVns\FK 0JZBX~|ET<^)jiR.WbL&㧊0r=]\T*Xt:I*ɑKRNQͅإOB\EST{Jd9tOrDauQ"Pt'S(4:Jzϓ`S=>z.fI2=~LNܑ}PcRFRj#qiV5#ylV=ϟ?7޸~o}ժUᩧ?͚5k˖-W_}uK/ꪫ֬Y^uU_vb-Z|_o_wu\rIA֯_iӦ^{G?e]u֗_~?mFwx'֬Y *ݾd龏>p8|.[졇*:;Se˖u]z7pC,{=k>GFQ+` >Kr٩x<\EDZH) [&F{.lkqZodQm9\9FoO8v%Lk;<\s4I$mR}UWW,aÆ9s444L0AzP(vz믿l6b1^o><{'<M0P iBm a'5"6MVDhQ`K!0ڨD1. ? Y̼+,Ǚ[w9\=|gb"H|1-!ɦB:>wܽ{ܹslll!d2_Q}ru֕ba鎎 LYԱU.-EQߥן8q… <(<{l׮] ͥ#bw%ϳB><ݻSqBax<^رc[ϟ?߲eK ݺuk泆ecHVPe2W:um۶'O7<}tl6ޞL&'&&e\.w֭Ǐ:th~~~uU*4-544LOOr~z||ǿ%1}NB\ɓ7o{n;L޹s˗?sL >|X\\bl0۷K7DQt۷oyfqqv+-offѣGgϞ=v[NR/^lkkvZ D"5fn@mmpoo޽{O>ӧ˗/=zD+Wtuumذ!Juvv^(IDATzƍLf###uuu+-TjD/%#G\t)ӳegؕJXEQ>t PvQHx<^Ol(`٘ߑ(Nwttu@?M6Ar$[Xu`nPVs>'s>'E|5@EQgϞJd2?eG ?;;[*~e---e9 v5.?s>'s?JvIENDB`XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp_source.html0000644001725400016040000004111513273140073021070 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ATQNameOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATQNAMEORDERIVED_HPP
    21 #define _ATQNAMEORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    29 class XQILLA_API ATQNameOrDerived : public AnyAtomicType
    30 {
    31 public:
    33 
    34  /* Get the name of the primitive type (basic type) of this type
    35  * (ie "decimal" for xs:decimal) */
    36  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    37 
    38  /* Get the namespace URI for this type */
    39  virtual const XMLCh* getTypeURI() const = 0;
    40 
    41  /* Get the name of this type (ie "integer" for xs:integer) */
    42  virtual const XMLCh* getTypeName() const = 0;
    43 
    44  /* returns the URI */
    45  virtual const XMLCh* getURI() const = 0;
    46 
    47  /* returns the prefix */
    48  virtual const XMLCh* getPrefix() const = 0;
    49 
    50  /* returns the name */
    51  virtual const XMLCh* getName() const = 0;
    52 
    53  /* returns the XMLCh* (canonical) representation of this type */
    54  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    55 
    56  /* returns true if the two objects' URI are equal (string comparison)
    57  * false otherwise */
    58  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    59 
    62  virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    63 
    65 };
    66 
    67 #endif // _ATQNAMEORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    RefCountPointer< const ATQNameOrDerived > Ptr
    Definition: ATQNameOrDerived.hpp:32
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    Definition: ATQNameOrDerived.hpp:29
    XQilla-2.3.4/docs/simple-api/MessageListener_8hpp_source.html0000644001725400016040000002353013273140073021131 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MessageListener.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _MESSAGELISTENER_HPP
    21 #define _MESSAGELISTENER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xercesc/util/XercesDefs.hpp>
    25 
    26 class LocationInfo;
    27 class DynamicContext;
    28 class Sequence;
    29 
    33 class XQILLA_API MessageListener {
    34 public:
    35  /* virtual destructor, does nothing */
    36  virtual ~MessageListener() {};
    37 
    41  virtual void warning(const XMLCh *message, const LocationInfo *location) = 0;
    42 
    46  virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) = 0;
    47 
    48 };
    49 #endif
    virtual ~MessageListener()
    Definition: MessageListener.hpp:36
    A class used to listen for warnings or trace information.
    Definition: MessageListener.hpp:33
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/dir_341c1efff76b1d093918f998475bd8fe.html0000644001725400016040000000551413273140077021001 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    functions Directory Reference
    Directory dependency graph for functions:
    functions

    Files

    file  ExternalFunction.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/classXQilla.html0000644001725400016040000012526513273140077015754 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Provides factory methods for creating XQQuery and DynamicContext objects. More...

    #include <XQilla.hpp>

    Inheritance diagram for XQilla:

    Public Types

    enum  Flags {
      NO_STATIC_RESOLUTION = 0x1, NO_ADOPT_CONTEXT = 0x2, DEBUG_QUERY = 0x4, NO_OPTIMIZATION = 0x8,
      NO_DEFAULT_MODULES = 0x10
    }
     Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together. More...
     
    enum  Language {
      XQUERY = 0x00, XPATH2 = 0x01, FULLTEXT = 0x02, UPDATE = 0x04,
      EXTENSIONS = 0x08, XSLT2 = 0x10, VERSION3 = 0x20, XQUERY_FULLTEXT = (XQUERY | FULLTEXT),
      XQUERY_UPDATE = (XQUERY | UPDATE), XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE), XPATH2_FULLTEXT = (XPATH2 | FULLTEXT), XSLT2_FULLTEXT = (XSLT2 | FULLTEXT),
      XQUERY3 = (XQUERY | VERSION3), XQUERY3_FULLTEXT = (XQUERY | VERSION3 | FULLTEXT), XQUERY3_UPDATE = (XQUERY | VERSION3 | UPDATE), XQUERY3_FULLTEXT_UPDATE = (XQUERY | VERSION3 | FULLTEXT | UPDATE),
      XPATH3 = (XPATH2 | VERSION3), XPATH3_FULLTEXT = (XPATH2 | VERSION3 | FULLTEXT), XSLT3 = (XSLT2 | VERSION3), XSLT3_FULLTEXT = (XSLT2 | VERSION3 | FULLTEXT)
    }
     Enumeration used to select a language to parse. More...
     

    Public Member Functions

     XQilla (xercesc::MemoryManager *memMgr=0)
     Constructs the object. More...
     
     ~XQilla ()
     Destructs the object. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Static Public Member Functions

    Parsing Methods
    static XQQueryparse (const XMLCh *query, DynamicContext *context=0, const XMLCh *queryFile=NULL, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
     Parse the expression contained in the given query string. More...
     
    static XQQueryparse (const xercesc::InputSource &querySrc, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
     Parse the expression from the given InputSource. More...
     
    static XQQueryparseFromURI (const XMLCh *queryFile, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
     Parse the expression residing at the given URL. More...
     
    Factory Methods
    static DynamicContextcreateContext (Language language=XQUERY, XQillaConfiguration *conf=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
     Creates a context suitable for parsing an expression with. More...
     

    Friends

    void CompileDelayedModule::compile (const XMLCh *queryFile)
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    Provides factory methods for creating XQQuery and DynamicContext objects.

    This class calls XQillaPlatformUtils::initialize() when it is constructed, and XQillaPlatformUtils::terminate() when it destructs, so there is no need to seperately initialize or terminate either Xerces or XQilla.

    Examples:
    simple-basic.cpp, and simple-context-item.cpp.

    Member Enumeration Documentation

    Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together.

    Enumerator
    NO_STATIC_RESOLUTION 

    Don't perform static resolution or any optimization.

    NO_ADOPT_CONTEXT 

    Don't adopt the context and delete it when the XQQuery is deleted.

    DEBUG_QUERY 

    Build debugging hooks into the query to enable the use of DebugListener.

    NO_OPTIMIZATION 

    Don't perform optimization.

    NO_DEFAULT_MODULES 

    Don't automatically import the default modules.

    Enumeration used to select a language to parse.

    Enumerator
    XQUERY 
    XPATH2 
    FULLTEXT 
    UPDATE 
    EXTENSIONS 
    XSLT2 
    VERSION3 
    XQUERY_FULLTEXT 
    XQUERY_UPDATE 
    XQUERY_FULLTEXT_UPDATE 
    XPATH2_FULLTEXT 
    XSLT2_FULLTEXT 
    XQUERY3 
    XQUERY3_FULLTEXT 
    XQUERY3_UPDATE 
    XQUERY3_FULLTEXT_UPDATE 
    XPATH3 
    XPATH3_FULLTEXT 
    XSLT3 
    XSLT3_FULLTEXT 

    Constructor & Destructor Documentation

    XQilla::XQilla ( xercesc::MemoryManager memMgr = 0)

    Constructs the object.

    In the process, XQillaPlatformUtils::initialize() is called to initialize XQilla and Xerces.

    Parameters
    memMgrIf provided, this is the MemoryManager used to initialize Xerces.
    XQilla::~XQilla ( )

    Destructs the object.

    In the process, XQillaPlatformUtils::terminate() is called to terminate XQilla and Xerces.

    Member Function Documentation

    static DynamicContext* XQilla::createContext ( Language  language = XQUERY,
    XQillaConfiguration conf = 0,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    )
    static

    Creates a context suitable for parsing an expression with.

    Parameters
    memMgrThe memory manager used to create the DynamicContext.
    Returns
    An implementation of DynamicContext
    static XQQuery* XQilla::parse ( const XMLCh *  query,
    DynamicContext context = 0,
    const XMLCh *  queryFile = NULL,
    unsigned int  flags = 0,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
    XQQuery result = 0 
    )
    static

    Parse the expression contained in the given query string.

    Parameters
    queryA string containing the expression to parse.
    contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
    queryFileThe name of the file that query originates in. This is passed back to the user in an XQException if an error occurs.
    flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
    memMgrIf specified, the memory manager used to create the XQQuery object.
    Returns
    The object that represents the parsed expression.
    Exceptions
    XQExceptionIf a parse error occurs.
    Examples:
    simple-basic.cpp, and simple-context-item.cpp.
    static XQQuery* XQilla::parse ( const xercesc::InputSource querySrc,
    DynamicContext context = 0,
    unsigned int  flags = 0,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
    XQQuery result = 0 
    )
    static

    Parse the expression from the given InputSource.

    Parameters
    querySrcAn InputSource which the expression will be parsed from.
    contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
    flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
    memMgrIf specified, the memory manager used to create the XQQuery object.
    Returns
    The object that represents the parsed expression.
    Exceptions
    XQExceptionIf a parse error occurs.
    static XQQuery* XQilla::parseFromURI ( const XMLCh *  queryFile,
    DynamicContext context = 0,
    unsigned int  flags = 0,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
    XQQuery result = 0 
    )
    static

    Parse the expression residing at the given URL.

    Parameters
    queryFileThe URL of the expression to parse.
    contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
    flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
    memMgrIf specified, the memory manager used to create the XQQuery object.
    Returns
    The object that represents the parsed expression.
    Exceptions
    XQExceptionIf a parse error occurs.

    Friends And Related Function Documentation

    void CompileDelayedModule::compile ( const XMLCh *  queryFile)
    friend

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/structBoolResult-members.html0000644001725400016040000000747213273140074020517 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BoolResult Member List

    This is the complete list of members for BoolResult, including all inherited members.

    BoolResult(bool b)BoolResultinline
    FalseBoolResultstatic
    NullBoolResultstatic
    operator bool() const BoolResultinline
    operator!=(BoolResult o) const BoolResultinline
    operator==(BoolResult o) const BoolResultinline
    TrueBoolResultstatic
    XQilla-2.3.4/docs/simple-api/MemBufInputSource_8hpp.html0000644001725400016040000001025513273140077020037 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MemBufInputSource.hpp File Reference
    Include dependency graph for MemBufInputSource.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::MemBufInputSource
     This class is a derivative of the standard InputSource class. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classATTimeOrDerived-members.html0000644001725400016040000005555513273140074021142 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATTimeOrDerived Member List

    This is the complete list of members for ATTimeOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getHours(const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getMinutes(const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    getPrimitiveTypeIndex() const =0ATTimeOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATTimeOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getSeconds(const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    getTimezone() const =0ATTimeOrDerivedpure virtual
    getTypeName() const =0ATTimeOrDerivedpure virtual
    getTypeURI() const =0ATTimeOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATTimeOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATTimeOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext *context) const =0ATTimeOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/dir_341c1efff76b1d093918f998475bd8fe_dep.md50000644001725400016040000000004013273140074021334 000000000000002f3288555222bce6a477d7ee6de217aaXQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.md50000644001725400016040000000004013273140074022722 00000000000000232f143a6c6b4af510fe9275d2ab25a7XQilla-2.3.4/docs/simple-api/URIResolver_8hpp.html0000644001725400016040000001147313273140077016647 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    URIResolver.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Node.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for URIResolver.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  URIResolver
     This is an abstract class used to resolve URIs in different ways. More...
     
    XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__incl.map0000644001725400016040000000242313273140075021317 00000000000000 XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp.html0000644001725400016040000001177413273140077017347 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGDayOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATGDayOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATGDayOrDerived
     
    XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp__incl.map0000644001725400016040000000140213273140075021426 00000000000000 XQilla-2.3.4/docs/simple-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.png0000644001725400016040000000531013273140076021543 00000000000000PNG  IHDRebKGD }IDATxLw˵b68 ZX# unSn3 @w 6="2qnù0jEܵVv.=vPgR/|?_yJ-y(hB@P6Є& 4l eM(hB@P6Є&KG V3fݻO~S\.%2rkx0G~4e3"#8P,qW>hB@P6Є& 4l>vѳoݺj5(;sՇwww e632֬yɯ7lجPd s**>r){px9o/1ԩW^IHaO7(h̙'u¸BhZw͜9;<eXtl6O3쓧jǃGsXm'O O=M<'ç<+WAl eM(hB@P6Є& 4l eM(hB@P6Є& 4l eM#)SL&XMMMxx81պe˖I&nٲjvvvr邃O8cǎ']͛jg1ƴZy$IHHȡCc6m]C6&f^Pdcҥ &T' vHaanZs=uq1ƊϞ=?+_XXXUUԤh9ѱk.xOIIٰaCOOy/..rf6ii){6oޞn6KeeU--MH}}cggGa!f#lؾ}t:]||\.+++KJJM&JJeCC0T*,YRSSsNT:whg,nH$iii&iرCNՄ+>Xi&dR^駗h45۶=[12*U\oy\ 8㸥Kvww fb0a$"""))٬֩S6778>7Ι3uŊӧ}|~b ߮:<tVN4KZP˗{o=e333kjj;jl^7,_t5k䴷gddzg8h4o߶X,~~~Φj%'k_~mZD"_??Z&??۷n0(\5{8Oҹeee7nP(*j1117n?ʕ+Jի(l-[|BBž={$IUUB0 !!!jZ"8>*/Okx≐ X,xogQZe2.O>]j̅Ow#eM(hB@P6Є& 4l eM(hB@P6Є& 4l eM(hO1y"?+<'Ui8 XQilla Simple API Documentation SourceForge.net Logo
    AutoDeallocate< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     mmgr_ (mmgr)
     
     AutoDeallocate (TYPE *p, xercesc::MemoryManager *mmgr)
     
     ~AutoDeallocate ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Public Attributes

     __pad0__: p_(0)
     

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoDeallocate< TYPE >::AutoDeallocate ( TYPE *  p,
    xercesc::MemoryManager mmgr 
    )
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::~AutoDeallocate ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::mmgr_ ( mmgr  )
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoDeallocate< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoDeallocate< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::swap ( TYPE *  p)
    inline

    Member Data Documentation

    template<class TYPE>
    AutoDeallocate< TYPE >::__pad0__

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classScope__inherit__graph.md50000644001725400016040000000004013273140074020531 00000000000000e021b666851ed616a650b145f95ab72bXQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__incl.map0000644001725400016040000000113713273140075020467 00000000000000 XQilla-2.3.4/docs/simple-api/classATStringOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022757 000000000000004a11e564c8957c616108134eabd10138XQilla-2.3.4/docs/simple-api/classXQQuery__inherit__graph.png0000644001725400016040000000633413273140076021153 00000000000000PNG  IHDRp0d5bKGD IDATxTSem7!0B`E;A\Iq*@:Բ!@?8 ZEGC4Gpñyxj0Tyss?y;v/ B0:` `O{[oOV(s FNN/Z$H_NBP)|mmmU";===66vaCLF3_5D 'j`o(//7TWW;88rFr4h4ZOOBzO@3eee|jB822啕Atuu6VTNNNBAN3` ##wbgSnddyoJ$DyXq8j///J!<~8t:H|rH aŊMMM{]b[RR:ӧ-!J+W,--NNNN[U1uBNDvv\.7o`III@@hD)%%%4mHT``[NNNiie222Nj@ `oV5o5koߎIgg{ࠇٳgQu־>LObhTTTcccfffPPL&塡"hR㎎J O?t###ӈgj鉆''a!R񣣣B0W^rL&{333͛_SSf'''!G 2%IVxLSb``RD!!!(PL!|G+++QKLSKTxjh4 [h4 #11Ѣ bѣ7n4OE=@Y,+ N`0.^JUVV7_{zzO{>5~8wO?` RLXbPh`2惏R_~%&&fҥaaa555V[믿fXL&ɓ T(OFCK/TXXwwg}T1EV' ??-wuuƢ4MKK Ν;Ga07oޜL Asrr<<<9zãeҥl3!|4S^^իQwp8ott^suue٩o6tbbB$yyyXxR²2j+ŧ;r䈣aNWTTӧO-!IR%%%ln3?t;vXd謆uas'~BBoo'͙믿owb#gϞ]v7lp;i WTs O{5uę3g,# (0lCv8sⲙ d1W@:4h_מW_]Cv,槪Nwr@v,Į졍v^P x%0?=Q`O{5D 'j=Q`O{5D 'j=Q`O{5D 'j=Q`O{5D '0ϊ2Y-i8oW^~UVwE$~R9U,oWZ5G/~?U`O{5 ߓB@/8CnܸNLL ¨;w;v`ys)r֮]|mD"fΝ...W^-))8x NKvlɢhLRRBo.**bqqq(E" ㏳Abرcb 权d544X(|Ylٲe˖-zvvvn۶-55O>A[j͛77B΢xGmV\\rJ8>>R,6rW^;SEJ077(BpgIaxt:"ks >d=w*o_ZZZ[[JOMM]f͓O>IL&444lڴigxjhh8D"innnmmE>`OO====\h[|>/LP:r֭H6!zpͼ;vx<@l2@dddiiiHH"x駏?0k.`00aS],K"hDqÆ YYY˗/_`077ƺ~g(W T*Htܹ~VruuuT]XXءCz{{sIxx<`ꫯ6mڴ@. S]]]{{H$B3ANcccKK ɩ~B)11ζbByfSuB)%%%==?--":~zF~< 0hz3}e=n(..ȸ|~YYYll}8+ +ZG)n^;---***$dq=xQ\-V^-JɎbp5D :y*cSzzz|B.qqqO=ԼVaAKD 'j=Q<17IENDB`XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__dep__incl.md50000644001725400016040000000004013273140074021543 00000000000000d53610d19f6de3bf4994081c99ac96c0XQilla-2.3.4/docs/simple-api/nav_h.png0000644001725400016040000000014213273140073014425 00000000000000PNG  IHDR ,@)IDATxA @BQۛТ) ) aܿoRlIENDB`XQilla-2.3.4/docs/simple-api/classModuleCache.html0000644001725400016040000003710013273140077016721 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <XQQuery.hpp>

    Inheritance diagram for ModuleCache:

    Public Member Functions

     ModuleCache (xercesc::MemoryManager *mm)
     
    void put (XQQuery *module)
     
    XQQuerygetByURI (const XMLCh *uri) const
     
    XQQuerygetByNamespace (const XMLCh *ns) const
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Public Attributes

    ModuleMap byURI_
     
    ModuleMap byNamespace_
     
    ImportedModules ordered_
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    ModuleCache::ModuleCache ( xercesc::MemoryManager mm)

    Member Function Documentation

    XQQuery* ModuleCache::getByNamespace ( const XMLCh *  ns) const
    XQQuery* ModuleCache::getByURI ( const XMLCh *  uri) const
    void ModuleCache::put ( XQQuery module)

    Member Data Documentation

    ModuleMap ModuleCache::byNamespace_
    ModuleMap ModuleCache::byURI_
    ImportedModules ModuleCache::ordered_

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classStaticAnalysis_1_1VarEntry.html0000644001725400016040000002215113273140074021633 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticAnalysis::VarEntry Class Reference

    #include <StaticAnalysis.hpp>

    Public Member Functions

     VarEntry ()
     
    void set (const XMLCh *u, const XMLCh *n)
     
    void set (const XMLCh *u, const XMLCh *n, size_t h)
     

    Public Attributes

    const XMLCh * uri
     
    const XMLCh * name
     
    size_t hash
     
    VarEntryprev
     

    Constructor & Destructor Documentation

    StaticAnalysis::VarEntry::VarEntry ( )
    inline

    Member Function Documentation

    void StaticAnalysis::VarEntry::set ( const XMLCh *  u,
    const XMLCh *  n 
    )
    void StaticAnalysis::VarEntry::set ( const XMLCh *  u,
    const XMLCh *  n,
    size_t  h 
    )

    Member Data Documentation

    size_t StaticAnalysis::VarEntry::hash
    const XMLCh * StaticAnalysis::VarEntry::name
    VarEntry* StaticAnalysis::VarEntry::prev
    const XMLCh* StaticAnalysis::VarEntry::uri

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp_source.html0000644001725400016040000003616413273140073022027 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XercesConfiguration.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef XERCESCONFIGURATION_H
    21 #define XERCESCONFIGURATION_H
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <xqilla/items/Node.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 class DOMNode;
    29 XERCES_CPP_NAMESPACE_END
    30 
    31 class XQILLA_API XercesConfiguration : public XQillaConfiguration
    32 {
    33 public:
    34 
    42  static const XMLCh gXerces[];
    43 
    44  virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
    45 
    46  virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context);
    47 
    49  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
    50 
    51  virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
    52 
    53  virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
    54 
    55  virtual ASTToXML *createASTToXML();
    56 
    57  virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const;
    58 };
    59 
    60 #endif
    Expression Context is a storage for contexts.
    Definition: DocumentCache.hpp:52
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual DocumentCache * createDocumentCache(xercesc::MemoryManager *memMgr)=0
    virtual SequenceBuilder * createSequenceBuilder(const DynamicContext *context)=0
    This is an abstract class used to resolve URIs in different ways.
    Definition: URIResolver.hpp:37
    virtual ASTToXML * createASTToXML()=0
    Definition: SequenceBuilder.hpp:31
    virtual ItemFactory * createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)=0
    Definition: UpdateFactory.hpp:32
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: XercesConfiguration.hpp:31
    virtual UpdateFactory * createUpdateFactory(xercesc::MemoryManager *memMgr)=0
    Definition: XQillaConfiguration.hpp:38
    Definition: ItemFactory.hpp:50
    virtual URIResolver * createDefaultURIResolver(xercesc::MemoryManager *memMgr)=0
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.md50000644001725400016040000000004013273140074023613 00000000000000966705b845a060ff5c53ff8f06be1f8bXQilla-2.3.4/docs/simple-api/XQilla_8hpp__incl.map0000644001725400016040000000070013273140076016623 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x69.html0000644001725400016040000003456113273140074016325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - i -

    XQilla-2.3.4/docs/simple-api/classATDecimalOrDerived__inherit__graph.png0000644001725400016040000001717613273140076023172 00000000000000PNG  IHDRP*E_bKGD3IDATx{TWDAA"(,[Eue.TlWGkWGemeVZ%@ +04fr?sw擹L$ atİ '+i$HvޭT*; _|}}}}}mZPPlp$ܿ?--Mz̓lίp '+ WL &xzzў$M6aAPWW4}tSS dee1ðm{IRT* x_O< $%% 003|䊊 g8csjɓ'>|_~:wvv6ÀYbEBBѣo#T&a㸇zl@MM7o޴z6`ve ÇڲeKKKKo222>#111Ν---۶mx Bs,)#G̜9ʽOAJJ>-%%%;vؾ} ϏŚmkkـZL&4559rU(D"wwƗd޶hƍ^^^ϟ? g޷offrn|~fff]]7|#E~E$9^5155}R*̛7Ok{k  {k@4//$nX,5kVff&ɓ'rLssY,֣GLGG>jwfΜyyu#׫X,_=<<566ִrݽ5V3"g<ݭ޽٬7hoo ƚ4jw&LPRRn!:\Wm۶=~|uxuv'IR"33 fggܼyfKKKjN>pիWŋMMM{[;AGqtt|-ZD}abGLMM y]NW8A^yNW8z~r1|xbԩ˫ ë#{C¢Ei&wme2Y~~>ӉhNmmmTaÆ wﮪ k֬/ Fy>}ŋs|͹s:tx|6}uYbbbbb}G; NW8A^yNW8_O8n J%b oF1uT!`rc,\qQ=!!5WorRY`CBff!֭g2Y;Y`Lxmjj{WLM15;!@"aM15-zAdaaTta~*Zd+W2Yba< P*UiiO{MK{Tjy>3 *7a?%LEȽfdr8,JW&'06Zʞ2yhfEEZ?q8+WiC'0{JƍcT22`::ާ+W^7L1|3rXy? Dm]nAyx, '+ p '+ p '+ p '+ p '+ p '+ p '+ p '+}uB*:~cd%f:^,X`o(322l;% 5An5B3pDW8A^yN~ bccDr zkrr24y%I299.%%ehxd377ߵkWo}wRT*w@ WWWCV:"ڿ,--0,''ٳN bVD!#t&''/[lʕΚGa/_vqq8|0`Ν|׶61`bKK˶mxT;W yPyT*{{3gΐ$gd[nYZZ8NK\]]U*UhF7nzP(={}\.?s Q=‘#G\]]BH$rww IYzuYYY~~#СCBp}1ÏW:F$"Gdww7@,1y7o$vؾ,ѣGbff#bZ4bX=¬Y233O6 TDbccnryHRLII9~x+>㔔Ue## YYY/g kkkUQQA->|ʔ)G*jb X\PPDعsD")--uww{khhի5kT*î]~8a\ 8/^Ԕonn޼yMDDDgggkP("## dk:G+'&!!aڴi</ @.o߾}ҤI!!!}Qup|AAA1Тs^㎎MBP%&&~Lgs]xLg 9'N\1e˖5773tqqqb!yNW8A^Ġl6LJHFƎ]]$t0AEhlT8wV; b8}Oȑ뎎ַoG35=ٳzqme/ߦY͘U8LNq,zJdff䮡A^\\l$kAAe}K" S1^\uq"#AD{%Օ+IEq5A[|Ъp23C{*fǕ׮*e kWq t\6`w:;uFFS1^ ݗ Je4|QUդ^\tLj56͒hΈ<̙cYcgg9gT XyNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8adӧS hXQo0|$''ӳ.gfz޿?--T# %~~~LG`xE + pau[uMyy޷gnFW@zz:u{hz077ߵkmrF?4%ҳ`xpvv Ѻ@9aj1 KLLtqqx񢽽=ݳg(kkk>8͛vvvϟ""&&j˖----4nzwà~bqYYل H;kު^  ???\~@cc#I Ϗ۹%%%PGquu "=22ߴpFW$O<9qj}$ݭUrvvJT㜜yQ݅BPf̤=yD]unnnӟH]oWhU8VB"`aتU*++zgggAr{Q())ݻgϞլ'P[[P<:pIdT{@ H$T䧍Q`oocǎQ .aÆݻwWUU 5k|:m޼>{ѣGë :`$0+JZj^ 4ί.:r|&M iooyV(d~ӎ+﫧3aȡާc7#yNW8A^yNFLŋS^mlll6-jk{@M5EѰ>ܻWmY`_+c++^Tܹm_Ռ yy?vl,oӬfLx(b[ag'ߪcvtt#E0JŎ,֯q`~@ ۺn<XyNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^!EWofvet"""BSo,JRLC Gi"nݺUίp '+ Uͅ l^;wnXXu mݴiS^^kuW(ϟT*[dI@@bŊA'70!# +I|>?//O3## Jé2`ĉSNبT/^ddd$&&RSS֢#,,lҤIܹsǎ32Ҟ|AÕ՟|Iyy-,,,,,+k<m666} \`-.\`nn~ .Y$..=:(;w_.77w1 [n]~~>HD\\ׯ_GRLJJ⋶6@mmzV\b׷n{}W}``D׬YW_iٲeillC_$Y~kvqoۿ/ zvWTɛ7o^vmxxO?4}K1$XtuuuT9==]*9sرcIIIo/N8ŋK.!!!?w\XXŋryGG޽{.]Ң5cuu5UNMMvrrhrݽnݺEƏ`322RRRBBB.^y游A[08O>矗.] XtD")_G3f|73wڳիAAA&&&k֬7ܹs;w~c`Rz'777cc&\.͛k֬잝.Y}`7*w}W]goo?AjjjUV^q֖Z6mڴiz`bbNޚePSSsΞǜEyy믿Y_^^>sLlgg7:?֭[ӧOw^|||o МHf̘[WJcǎwyIJJ۾};a}UCdvvrO81ej+6m?dWW׾}۷h"{>Zr ԧXB_rok^^^?gΜ~wϟ;88P $[ɀaP(VZ5+W)//cKKKssscccii={RK,ohhO\zꄄʓ'O644 ($AnlݺU&}555w ximmmϟ_vgu֝>}ݻ꧁eknn5_;99 <2ԄS>?gΜgϪg>ԩS-]444HPDEE) 455 ;p >SN={6)))..חQg$6lٲ7o.[L]ٳ;qMMM{ٱcǀ7o#|VVVt}NW8A^yNW8A^Du?Cx֧u…J F˗/լCS+ p '1.IENDB`XQilla-2.3.4/docs/simple-api/classDynamicContext.html0000644001725400016040000040115613273140077017507 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DynamicContext Class Referenceabstract

    The execution time dynamic context interface. More...

    #include <DynamicContext.hpp>

    Inheritance diagram for DynamicContext:

    Public Member Functions

    virtual ~DynamicContext ()
     
    virtual DynamicContextcreateModuleDynamicContext (const DynamicContext *moduleCtx, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual void clearDynamicContext ()=0
     Resets the dynamic context, as if it had never been used. More...
     
    virtual Item::Ptr getContextItem () const =0
     Get the context Item. More...
     
    virtual void setContextItem (const Item::Ptr &item)=0
     Set the context item to item. More...
     
    virtual size_t getContextPosition () const =0
     Get the context position. More...
     
    virtual void setContextPosition (size_t pos)=0
     Set the context position. More...
     
    virtual size_t getContextSize () const =0
     Get the context size. More...
     
    virtual void setContextSize (size_t size)=0
     Set the context size. More...
     
    virtual const VariableStoregetVariableStore () const =0
     get the variable store More...
     
    virtual void setVariableStore (const VariableStore *store)=0
     set the variable store More...
     
    virtual const VariableStoregetGlobalVariableStore () const =0
     get the variable store for globally scoped variables More...
     
    virtual void setGlobalVariableStore (const VariableStore *store)=0
     set the variable store for globally scoped variables More...
     
    virtual void setExternalVariable (const XMLCh *namespaceURI, const XMLCh *name, const Result &value)=0
     set the value of an external global variable with the given uri/localname pair More...
     
    virtual void setExternalVariable (const XMLCh *qname, const Result &value)=0
     set the value of an external global variable with the given QName More...
     
    virtual const RegexGroupStoregetRegexGroupStore () const =0
     get the regex group store More...
     
    virtual void setRegexGroupStore (const RegexGroupStore *store)=0
     set the regex group store More...
     
    virtual time_t getCurrentTime () const =0
     Return the current time. More...
     
    virtual void setCurrentTime (time_t newTime)=0
     Set the current time. More...
     
    virtual ATDurationOrDerived::Ptr getImplicitTimezone () const =0
     Return the implicit timezone for this system. More...
     
    virtual void setImplicitTimezone (const ATDurationOrDerived::Ptr &timezoneAsDuration)=0
     Set the implicit timezone. More...
     
    virtual void registerURIResolver (URIResolver *resolver, bool adopt)=0
     Register a callback object for resolving URIs. More...
     
    virtual URIResolvergetDefaultURIResolver () const =0
     Returns the default URIResolver. More...
     
    virtual void setDefaultURIResolver (URIResolver *resolver, bool adopt)=0
     Sets the default URIResolver. More...
     
    virtual void setDebugListener (DebugListener *listener)=0
     Set the listener for debug messages. More...
     
    virtual DebugListenergetDebugListener () const =0
     Gets the listener for debug messages. More...
     
    virtual void setStackFrame (const StackFrame *frame)=0
     Sets the current stack frame whilst debugging. More...
     
    virtual const StackFramegetStackFrame () const =0
     Gets the listener for debug messages. More...
     
    virtual Node::Ptr parseDocument (xercesc::InputSource &srcToUse, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
     Parse an XML document from the provided InputSource. More...
     
    virtual Sequence resolveDocument (const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
     Resolve the given uri (and baseUri) to an XML document. More...
     
    virtual Sequence resolveCollection (const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
     Resolve the given uri (and baseUri) to a sequence of Node objects. More...
     
    virtual Sequence resolveDefaultCollection (const QueryPathNode *projection=0)=0
     Resolve the default collection to a sequence of Node objects. More...
     
    virtual bool putDocument (const Node::Ptr &document, const XMLCh *uri)=0
     Attempts to put the document specified to the given URI by calling the registered URIResolver objects. More...
     
    virtual SequenceBuildercreateSequenceBuilder () const =0
     Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence. More...
     
    virtual UpdateFactorycreateUpdateFactory () const =0
     Creates a new UpdateFactory, used for performing updates. More...
     
    virtual void testInterrupt () const =0
     Test if the query should be interrupted, and throw if so. More...
     
    - Public Member Functions inherited from StaticContext
    virtual ~StaticContext ()
     
    virtual DynamicContextcreateModuleContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual DynamicContextcreateDynamicContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual DynamicContextcreateDebugQueryContext (const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
     
    virtual XQillaConfigurationgetConfiguration () const =0
     Returns the configuration object for this context. More...
     
    virtual XQilla::Language getLanguage () const =0
     Returns the lanuage that this context is for. More...
     
    virtual ItemFactorygetItemFactory () const =0
     Returns the ItemFactory for this context, which is used to create XQilla items and other objects. More...
     
    virtual void setItemFactory (ItemFactory *factory)=0
     Sets the ItemFactory for this context. More...
     
    virtual const StaticTypegetContextItemType () const =0
     Get the static type of the context item. More...
     
    virtual void setContextItemType (const StaticType &st)=0
     Set the static type of the context item. More...
     
    virtual bool getXPath1CompatibilityMode () const =0
     Get the current XPath 1.0 compatibility mode. More...
     
    virtual void setXPath1CompatibilityMode (bool newMode)=0
     Set the current XPath 1.0 compatibility mode. More...
     
    virtual const
    xercesc::DOMXPathNSResolver
    getNSResolver () const =0
     Get the NS resolver. More...
     
    virtual const XMLCh * getUriBoundToPrefix (const XMLCh *prefix, const LocationInfo *location=0) const =0
     returns the URI that is bound in prefix in the current scope or zero length string otherwise More...
     
    virtual const XMLCh * getPrefixBoundToUri (const XMLCh *uri) const =0
     returns the prefix that is bound in uri in the current scope or zero length string otherwise More...
     
    virtual void setNSResolver (const xercesc::DOMXPathNSResolver *resolver)=0
     Set the NS resolver. More...
     
    virtual void setNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
     Binds a prefix to a namespace URI. More...
     
    virtual const XMLCh * getDefaultElementAndTypeNS () const =0
     get the value of the default namespace for elements and types More...
     
    virtual void setDefaultElementAndTypeNS (const XMLCh *newNS)=0
     set the value of the default namespace for elements and types More...
     
    virtual const XMLCh * getDefaultFuncNS () const =0
     Return the default namespace for functions. More...
     
    virtual void setDefaultFuncNS (const XMLCh *newNS)=0
     Set the default namespace for functions. More...
     
    virtual DocumentCachegetDocumentCache () const =0
     retrieve the repository for the grammars More...
     
    virtual void setDocumentCache (DocumentCache *docCache)=0
     sets the repository for the grammars More...
     
    virtual bool isTypeOrDerivedFromType (const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0
     returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck More...
     
    virtual void setXMLEntityResolver (xercesc::XMLEntityResolver *const handler)=0
     Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents. More...
     
    virtual
    xercesc::XMLEntityResolver
    getXMLEntityResolver () const =0
     Returns the entity resolver currently set. More...
     
    virtual void setModuleResolver (ModuleResolver *resolver)=0
     Register a callback object for resolving module URIs. More...
     
    virtual ModuleResolvergetModuleResolver () const =0
     Returns the module resolver currently set. More...
     
    virtual VectorOfStringsresolveModuleURI (const XMLCh *uri) const =0
     
    virtual void addSchemaLocation (const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0
     add the location for the grammar of a specific namespace More...
     
    virtual VariableTypeStoregetVariableTypeStore ()=0
     get the variable type store More...
     
    virtual void addTemplate (XQUserFunction *tp)=0
     adds a template definition to the template tables More...
     
    virtual const XQUserFunction * lookUpNamedTemplate (const XMLCh *uri, const XMLCh *name) const =0
     look up a template definition by name More...
     
    virtual const UserFunctionsgetTemplateRules () const =0
     Return a vector of all the templates with patterns. More...
     
    virtual void addCustomFunction (FuncFactory *func)=0
     adds a custom function to the function table More...
     
    virtual void removeCustomFunction (FuncFactory *func)=0
     removes a custom function to the function table More...
     
    virtual ASTNode * lookUpFunction (const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0
     returns a function object with the given uri, localname and number of arguments triple More...
     
    virtual void setExternalFunctionResolver (ExternalFunctionResolver *resolver)=0
     Register a callback object for resolving external function implementations. More...
     
    virtual ExternalFunctionResolvergetExternalFunctionResolver () const =0
     Returns the external function resolver currently set. More...
     
    virtual void addExternalFunction (const ExternalFunction *func)=0
     adds an external function implementation to the function table More...
     
    virtual const ExternalFunctionlookUpExternalFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0
     returns an external function implementation for the given uri and localname More...
     
    virtual CollationgetCollation (const XMLCh *const URI, const LocationInfo *location=0) const =0
     Get the implementation for the specified collation. More...
     
    virtual void addCollation (Collation *collation)=0
     Add a collation. More...
     
    virtual CollationgetDefaultCollation (const LocationInfo *location=0) const =0
     Get the default collation. More...
     
    virtual void setDefaultCollation (const XMLCh *const URI)=0
     Specify which collation is the default one. More...
     
    virtual const XMLCh * getBaseURI () const =0
     Return the base URI. More...
     
    virtual void setBaseURI (const XMLCh *newURI)=0
     Set the base URI. More...
     
    virtual NodeSetOrdering getNodeSetOrdering () const =0
     Return the ordering method for node sets. More...
     
    virtual void setNodeSetOrdering (NodeSetOrdering newOrder)=0
     Set the ordering method for node sets. More...
     
    virtual ConstructionMode getConstructionMode () const =0
     Return the construction mode. More...
     
    virtual void setConstructionMode (ConstructionMode newMode)=0
     Set the construction mode. More...
     
    virtual void setPreserveBoundarySpace (bool value)=0
     Set the policy for boundary space. More...
     
    virtual bool getPreserveBoundarySpace () const =0
     Get the policy for boundary space. More...
     
    virtual FLWOROrderingMode getDefaultFLWOROrderingMode () const =0
     Return the default ordering mode for FLWOR blocks. More...
     
    virtual void setDefaultFLWOROrderingMode (FLWOROrderingMode newMode)=0
     Set the default ordering mode for FLWOR blocks. More...
     
    virtual void setInheritNamespaces (bool value)=0
     Set the policy for namespace inheritance. More...
     
    virtual bool getInheritNamespaces () const =0
     Get the policy for namespace inheritance. More...
     
    virtual void setPreserveNamespaces (bool value)=0
     Set the policy for namespace copy. More...
     
    virtual bool getPreserveNamespaces () const =0
     Get the policy for namespace copy. More...
     
    virtual void setRevalidationMode (DocumentCache::ValidationMode mode)=0
     Set the revalidation mode. More...
     
    virtual
    DocumentCache::ValidationMode 
    getRevalidationMode () const =0
     Get the revalidation mode. More...
     
    virtual void setMessageListener (MessageListener *listener)=0
     Set the listener for warning and trace messages. More...
     
    virtual MessageListenergetMessageListener () const =0
     Gets the listener for warning and trace messages. More...
     
    virtual void setModule (XQQuery *module)=0
     Set the module. More...
     
    virtual XQQuerygetModule () const =0
     Get the module. More...
     
    virtual bool getProjection () const =0
     Gets whether document projection is enabled. More...
     
    virtual void setProjection (bool enabled)=0
     Sets whether document projection is enabled. More...
     
    virtual bool getDoLintWarnings () const =0
     
    virtual void setDoLintWarnings (bool enabled)=0
     
    virtual const XMLCh * allocateTempVarName (const XMLCh *prefix=0)=0
     Return a unique name that can be used for a temporary variable. More...
     
    virtual XPath2MemoryManagergetMemoryManager () const =0
     Get the memory manager. More...
     
    virtual void setMemoryManager (XPath2MemoryManager *memMgr)=0
     Set the memory manager to the one given. More...
     
    virtual void setFTCase (FTCaseOption option)=0
     Set default full text query case option. More...
     
    virtual FTCaseOption getFTCase ()=0
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Public Types inherited from StaticContext
    enum  NodeSetOrdering { ORDERING_ORDERED, ORDERING_UNORDERED }
     
    enum  ConstructionMode { CONSTRUCTION_MODE_PRESERVE, CONSTRUCTION_MODE_STRIP }
     
    enum  FLWOROrderingMode { FLWOR_ORDER_EMPTY_GREATEST, FLWOR_ORDER_EMPTY_LEAST }
     
    enum  FTCaseOption {
      NONE, CASE_INSENSITIVE, CASE_SENSITIVE, UPPERCASE,
      LOWERCASE
    }
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    The execution time dynamic context interface.

    Constructor & Destructor Documentation

    virtual DynamicContext::~DynamicContext ( )
    inlinevirtual

    Member Function Documentation

    virtual void DynamicContext::clearDynamicContext ( )
    pure virtual

    Resets the dynamic context, as if it had never been used.

    virtual DynamicContext* DynamicContext::createModuleDynamicContext ( const DynamicContext moduleCtx,
    xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
    ) const
    pure virtual
    virtual SequenceBuilder* DynamicContext::createSequenceBuilder ( ) const
    pure virtual

    Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence.

    virtual UpdateFactory* DynamicContext::createUpdateFactory ( ) const
    pure virtual

    Creates a new UpdateFactory, used for performing updates.

    Caller owns the returned object, and should delete it

    virtual Item::Ptr DynamicContext::getContextItem ( ) const
    pure virtual

    Get the context Item.

    virtual size_t DynamicContext::getContextPosition ( ) const
    pure virtual

    Get the context position.

    virtual size_t DynamicContext::getContextSize ( ) const
    pure virtual

    Get the context size.

    virtual time_t DynamicContext::getCurrentTime ( ) const
    pure virtual

    Return the current time.

    virtual DebugListener* DynamicContext::getDebugListener ( ) const
    pure virtual

    Gets the listener for debug messages.

    virtual URIResolver* DynamicContext::getDefaultURIResolver ( ) const
    pure virtual

    Returns the default URIResolver.

    virtual const VariableStore* DynamicContext::getGlobalVariableStore ( ) const
    pure virtual

    get the variable store for globally scoped variables

    virtual ATDurationOrDerived::Ptr DynamicContext::getImplicitTimezone ( ) const
    pure virtual

    Return the implicit timezone for this system.

    virtual const RegexGroupStore* DynamicContext::getRegexGroupStore ( ) const
    pure virtual

    get the regex group store

    Referenced by AutoRegexGroupStoreReset::AutoRegexGroupStoreReset().

    virtual const StackFrame* DynamicContext::getStackFrame ( ) const
    pure virtual

    Gets the listener for debug messages.

    Referenced by AutoStackFrameReset::AutoStackFrameReset().

    virtual const VariableStore* DynamicContext::getVariableStore ( ) const
    pure virtual

    get the variable store

    Referenced by AutoVariableStoreReset::AutoVariableStoreReset().

    virtual Node::Ptr DynamicContext::parseDocument ( xercesc::InputSource srcToUse,
    const LocationInfo location = 0,
    const QueryPathNode *  projection = 0 
    )
    pure virtual

    Parse an XML document from the provided InputSource.

    virtual bool DynamicContext::putDocument ( const Node::Ptr document,
    const XMLCh *  uri 
    )
    pure virtual

    Attempts to put the document specified to the given URI by calling the registered URIResolver objects.

    Returns whether the operation was successful.

    virtual void DynamicContext::registerURIResolver ( URIResolver resolver,
    bool  adopt 
    )
    pure virtual

    Register a callback object for resolving URIs.

    Multiple URIResolver objects can be registered with the DynamicContext at the same time. The most recently added URIResolver will be called first, and if it returns false, subsequent ones will be called - ending in a call to the fallback routines.

    If "adopt" is false, the DynamicContext will not adopt this object, making the user responsible for making sure that the URIResolver object's lifespan matches or exceeds the life of the DynamicContext.

    virtual Sequence DynamicContext::resolveCollection ( const XMLCh *  uri,
    const LocationInfo location = 0,
    const QueryPathNode *  projection = 0 
    )
    pure virtual

    Resolve the given uri (and baseUri) to a sequence of Node objects.

    If the uri is relative, the base uri is obtained from the context.

    virtual Sequence DynamicContext::resolveDefaultCollection ( const QueryPathNode *  projection = 0)
    pure virtual

    Resolve the default collection to a sequence of Node objects.

    virtual Sequence DynamicContext::resolveDocument ( const XMLCh *  uri,
    const LocationInfo location = 0,
    const QueryPathNode *  projection = 0 
    )
    pure virtual

    Resolve the given uri (and baseUri) to an XML document.

    If the uri is relative, the base uri is obtained from the context.

    virtual void DynamicContext::setContextItem ( const Item::Ptr item)
    pure virtual

    Set the context item to item.

    Referenced by AutoContextInfoReset::AutoContextInfoReset().

    virtual void DynamicContext::setContextPosition ( size_t  pos)
    pure virtual

    Set the context position.

    Referenced by AutoContextInfoReset::AutoContextInfoReset().

    virtual void DynamicContext::setContextSize ( size_t  size)
    pure virtual

    Set the context size.

    Referenced by AutoContextInfoReset::AutoContextInfoReset().

    virtual void DynamicContext::setCurrentTime ( time_t  newTime)
    pure virtual

    Set the current time.

    virtual void DynamicContext::setDebugListener ( DebugListener listener)
    pure virtual

    Set the listener for debug messages.

    virtual void DynamicContext::setDefaultURIResolver ( URIResolver resolver,
    bool  adopt 
    )
    pure virtual

    Sets the default URIResolver.

    virtual void DynamicContext::setExternalVariable ( const XMLCh *  namespaceURI,
    const XMLCh *  name,
    const Result value 
    )
    pure virtual

    set the value of an external global variable with the given uri/localname pair

    virtual void DynamicContext::setExternalVariable ( const XMLCh *  qname,
    const Result value 
    )
    pure virtual

    set the value of an external global variable with the given QName

    virtual void DynamicContext::setGlobalVariableStore ( const VariableStore store)
    pure virtual

    set the variable store for globally scoped variables

    virtual void DynamicContext::setImplicitTimezone ( const ATDurationOrDerived::Ptr timezoneAsDuration)
    pure virtual

    Set the implicit timezone.

    virtual void DynamicContext::setRegexGroupStore ( const RegexGroupStore store)
    pure virtual

    set the regex group store

    virtual void DynamicContext::setStackFrame ( const StackFrame frame)
    pure virtual

    Sets the current stack frame whilst debugging.

    virtual void DynamicContext::setVariableStore ( const VariableStore store)
    pure virtual

    set the variable store

    virtual void DynamicContext::testInterrupt ( ) const
    pure virtual

    Test if the query should be interrupted, and throw if so.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classItem__inherit__graph.map0000644001725400016040000000667113273140076020470 00000000000000 XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__incl.png0000644001725400016040000041367213273140074021341 00000000000000PNG  IHDRh%WmbKGD IDATxw\#$@a⨀('.ZVEQqoqc],'*V + ;gS~c>>o^,-EGh 8'@pO@ĻZ%K]hƌ3f@ӂUhiiyzzh4 UVVV``.zϘ1cVׯǻ4 >|'X/v#GL>}„ ؙ 6|x]\\JJJٓE"<==L]Я_?kk'NhiiiZrezzɓ'~}x{~4t:sγg611KңG>y򤼼ܸq-FFF&''Ey <ޯ 'Apˠ(Dђ5O>/^D|޼y1  bܹ;v@֭[ ,ػw=v sqq /^Ҫg͚uՆ/۳gP/^1cÇ -X<{lSSә3gZYY:tӧ۷o' ǏE4)((`X+VlkfffffuH$##cԨQuG͞=;""Bn``ݻw5[QWQHy1c۷O.#ү_ɓ'6ٳ̙3A#Gjn|ĉzԩz 6lأGw>|8}QFan[n>*HBCC߾} H||_sIOOoܸq񥥥;v˗/nQTFGG1bĈJnF^z޽- bС>]V={vҤIaaaή+5zI&1b ޓ> '6N/((AOQ(eeeػD"XYYiԩD"C6##O>_[lyə3g݋9sB!-.]\bELL:lllſɓ'gϞ}}޿_R!r}"xT*ϟ`0L}hᆆZc!" ttt:`sss HmmmNDbff&  o---ZϘ1GY͛7.\HќfΜ^}@ A$11144[ۯ]6k,ss={~l__ٳgxxxL6ME$'X/R5g?vNII P aÆս,00?:u{j{ں;R_A %%%ÉDbIIɶm$@ :99={lҥv֭rssܰc;;O 5jCޮۧOOvzŋkN~8K,|ӧX>rl 2,/!JDs׮]ի 2lݺu֭ݻB,qF/// dpp}||4ӜR3g41cqnܹ[ۃv 3믿iz/,,LII d 1{\IVb`C"LѼK h<##=m $W~w m`3IȻPGBD_]FZN|ꐐ2 ͭw>fڴi Q߿{c~ڵkٲeRСC T(H4իL&ABT*D\.?z( bAoooJuر&OEANgϞӧkii̜9޲Db߾}cvP(r׬Y-6m۶.]4.]*J&N {dkJooϹGb\P""ɰ%J)j|AłY1L*UdBBPi(vLHJVH$]]m2Yn%:X0PD"HOWG20% dmmm##]IfV8häR#pb;YU%pN@+mYbbblի.FFF7~ޓ~z 7jmJ(.alEQHT aJ2R(*j@PbTJ"TRE"``G#hS(d2YGOD鑌udPPOOd`@h# #(/|.Wf++UUB6[PU%^GDҦRtɐ!{Z\ro޼fkm6XAF|,DPʰBLRXĒ{RPB)ĊbL"QD"L>D"iR(zzz$2YB!$==1L1450ХPFFz:z:yl#he|qQ)**b=H,& .ҘFXZw`bBӍt FZ-d{f͚aÆuZСC?$hm{K8h&zz$l-ӆ/\x"Z\U%jyZ.>_L֡ьT#*ՐFXXh##&~9P(*}{ͭP ÃaF70ŻRȔJϗɔQQ11*fknZ;>_f **l6ϗp8翃*Jn,"6 ۚXҒBQLLެ'X,,~YeIaaZzyh.4{muJ;&vΜy(JǏ5wnK/[~(j.Wl>+UT\Qe;rk5ɊD677Ķ2XYPVVF߾Q2݂~hn.sVFFѳgL&[Too[MR TT~>ҥМ\<Νw>K tp6C6FFdo-++*|lo@$. aBYZ_:Ғk}=^QQ?,PJ&xytjc߭$vn޼秦Ԝ_)+W2vSZZh''XbИB)pl6cCe2%v. Q4deBYYt9NmOO/HO/xEtJN6]!AɓwL4ȫ[Ӯ] w^,Օe!T%(Gۻfu,Vٙc=T>4 =hNGl.K=zpv*Rn777Xܜv~~ğfٙi  g41͛IIR[7;4˥ܪuqϞ}`LwҤ` 5h7{d3쒒j4F=JWl'|TW&$~EJJJ~.CvӍ. oޔ?ƎZAIIwO|@͜&LdʂʂªJ 6ёHuu]]-t %?N͊Žq#ɓI;0=,;$X@Qb*+:jh;yr3[r,Ga*/27SS#FXՕFwuw`B1Ż^ Hnȼtك ^.^|p鸸E>>vx\ѣH!L>o899ll6[!]G@1fBuz@ ʔ;SRaȐCt%7 q˖1x҄x#GLEQ̝v[ *,MaQV$ ISnn0j%Z>}Zg55n2rd733KAdÆkO?ߤH$;v^TTB7yA0RH$0o9L&[Ţס3Dƻ^ƔWqr8.]F:lZ~[7]K󩭕98**Q(k 4B_d%љLNNNL$-m.],,.H$_>|kkqzĉ++7o.i#rOvSU% Yd]P(TWJ_.rEXYth=7a_ԩ@ѣ [p3gxqn^xׂBuJΝwJK}-/s@Ö,,f29oޔuIy{v`ٱu{UZ N_C ^ĉ/_8;ƍ1vlO*hTws^5Zŧ] *lY+Fa!dgda]Rt:[pՕޖv /UzPϴ Cv0#EY)ii`e ۷y.]: ^.*.*-*(J蹻[uhJah6>JuCiu`9e]acMЊq73Q;v, \h@ Z5HMYVVe^~]&)dMM 'L)-uڴ`O--#1EEelҘ[(u\|+Bb2ٙ,2\(Νmm\\`\hL>*?ȑ{g<":}z_ZOw-@zzmc:Λ|R˫䨗/KRMϞNvvx Z7Nw{w{oSPJ _-:YGХ IDATGOƻ$==?**)>>{w󃠫ZBMyFF??grjʤkW{]lu.2h||֮] E~~f t^W] ))?ؘ]KY] =<  : VFFϋ*+D"ͲkWnwwpv]#h 8!ȿS÷oeIpݺ9]ӂ! ]K+]o_ٳ &@URRQ9+#(3X&Svع.AKރ_VbĠ9˗%+waGE%^acc:wnиq=a \hJץŏ啔TOOk__Goo޽]`hI"? :nuumD9x@cwmDǧ{]KQTčJ<{1a2}zIP m}ٳJ7éW/^-.='Bu?#"#{ϚGTѩxH9yj4sf`ddo==EhL",#ɓǏ=+Ht:gO^{vvsì}'E_yر=-D]M":''ǚNeCR u'O3cF mfDߓ'L>_ldץ]@=lܸ1.+tΫV y >ujrEG;p DҞ2o 4JU榧TW΀]gϊ6o~~ڵឞVxW@Zԃ`f9v`*g&&xi(~0޽Ԉ q}1m<8Vlp->>\Vҭ=>-};]K#ɎPƍ9o^N(AF߾FQdQQmrE䦥1_s8|sssw qZjj۷>zoû"ۊy3cZ,>ڕPPP9xpeB]]5={nT*Uhk ڻ{"}j5Uݻ9))o>-T޶^^6 2VǏ?غ.i͚#Ft@;eIXο0rd7kS*WfڕW1dH"p?XpBe'{'AvvE$ݿ61uBk6Oc VmQZ}p*(\lFF}-`hwEEa"ẆZ8ML|u덜&5a{|'hrr Ẏs =z8z9;. S֭boosxoo[+7g>^KabƸR NZFu߹s<گ*#Jv4 Qk NUK}pƌ+HxWnBi@;o8Zg}Dh(GnzYRRmcc5hw0\X_Ak[F5ϯy3͗ϟ t I&CjB)89~vߡ%"%nX ]11L&bʪe2%!"Q[[TT*5v&2-c ;Ϳy͛/=!w CWwimPN|xɒwd-^<` O^kW{ki,YsNAO[{#"B !VU)"w!jjYׯHN&~~Gw Y/g:V[+۳'2 R7mXki""",Yw!_CBb BڈsEDD]4!ƍ'O q.]CQС gO$fwE ;wޑHV ƻv̘1xW433ޑKK^\|*pGw̿E N<^E}paauTĤ];ZX[Κ8kV`Qҥg.iݺ9;|xWCC] l5Z* Gm Ryer~E$y{n0ٳ`ff/}|.\xܖAKвz ժUΜy$*֯:rd޽1,;,̛ǫr%…cD9:ZL3")Q- QQqq=:_@j^QQ.\h[Biii] ff?└¼MuرQ*xWIDnn-+-޻7yٲP:Z#+W~]W\>|=zTUU5A0`@yy9 }v _Q?Օ/C/}ɓg:NSF>yrSkAZDp?wîGa4`KSR7oһܹK&{j5m_[d2AH F}EС]풛[q3gEG'y[ <Od~عh@jjۯ6n"^h3]fmm]]] ș3gjkkj={<<|ĉzolٲeԨQ,+33k׮??^  !ߏ HUUH$Ս.//?tHDux6 èꈈYfaN81(((///33SN֭Þ?z"r~!C/b`50d>zeݺuwAs}2urV1l+ nIV[☘jٵ+q9ŻV3Suu;=zTscN2,;;[$TbEG^^^wEQA222P}Hm۶UWWjPR궥ppjիT*n~K.`ONNgj{.* 933ܹs...l!8%?k{y=RWݷ/ySRHyyͮ] ښ]Kdbb2cƌٳgcgt颹ۻ'0nݺ=z;) iC3k  ]HHHAAvA1 ɏ=۷oZZ@@ iӦ ."pT*]\\JJJc++|f]]k_IMBћ6-_AROӯs ޥ5R7 Oqܸ_,,fw!mVqq={.]~悬 H"""/_w^[BCCJb1(VWW?zJ$ZN:tP9m}z D'Nyl$fعs'k'Nwv]fe6?[T9"-ٜz)BZϙ{Ν;rE/_`0x<\.hhhػwӧO# qBQtǎfff{?~iXX͕ ;/Lbjjjnn>cƌZE'}ܹs:::W^ud+LGGGEy<ޤI ŋ%ɗ>JcbbT%I'.0 @ 9x0KvvK?-͓T*ܹ'^81woi~KN^dw-RDD ϟ溺6LQWZZZΝиd2s,7II+̙H|j}Sw 6<{Vtݺp}}kfo"h4ZttBZCv{}, `̙ [5yp:qwl3lOS@VzOC|jO+oeI߾BUﺾ^Ӯn_..]:p„^Mmɓ_,}{ޅЦ9wnkkS;`0LTCKH$cnOŋ 170M޼)=ؐ!]/tԈn1mZZhS 599okxZ켮.ʔ062a0L cSDߚ 'L5bDÇvJ8zޒ%Ǐ舘ܛ~ZŅvLI)؛7_L]KXˑ6rey9s8f **EE\_Q!~?--i49N)؁1~ V<^ΝwD[zhppYIzrԩG tcb@jzUzԣ;Cjj,>l{rK!R՟=jii}MBJGG(::D{{s{{?$KKk%%ee5lvM||VYYH$î12ҳ2~ǘl0"2ƍ׾`P7ѱ$=N˖v,a(GB^w9mAllllll=_"!rz<Y(!NM\PyB__E"RvyΕ_23Bں+hkkoڴ#*C%pXdu;ii@rs+yys??O|jtPڵWұq @w\ҥg{qζxþ~י&&!!={mubOOϹ^&S޿ǖ-c-BuJFt2__i¼[8&5,[XX%H 4FXZR͝hR>z433ذadKٳ‘#,]`l  ¼m޵zTg ^ܼYVVcmmگ{HH@wezU:xΕ+w;lٹ_=: ==С72mlL##{OBGmN []*M,`.pwӐ6јI lsu81F֮MM GF/_ΈFa5hWhWNx\4hŹ_Vn5;|o)С3gik""z̜2@WRRbqKJyؿ3335115AA))9?|/Y2p. NS~ 0쐐m>jx.t)ʕjQ ܹޅf_W_Otʕ=z8}cBܹyNld2%Pi+.(Pilmxкʨݻ\]5ݽmhȑ_;W/Fy ʘ1Qƍ0Qw5yb$,;"ꗚ3~]&O,-l*:)){ħO mN>kK{ɰJX|bX*,ɔPmmhuypƌ+c޾ }ܠK~ho^}>gΉkvfw-/s'…P!!c]Lde¼☘+W2 ##{O;6>_\wvb_u:X:8Pa6Sӧ]{?'1RKT_AZD޷f??;]K{P_=M$jqn-a1kߘIf>eIrFY,O|TF:}zߖ𛯝Ќa3l,MTTjZ &hљeBgFN;v޽;֭:M|~Ut:Zڗ3g_J6ztPV*tlEΜ81o| ؼ~ɓ4JmdWdOi=[rW^Pj[/?՗DҶ2]\:xhJuTT}|죢"q[[SVViXիN޷j(, ܲfЩS𮥽J׮s|kkqzDD5û/SVVGD偿zʕV7]tT11iiLOO~={ hxNqs3ٙF$„L@.3DE?[7':Ox<+LtΝeb`XkWXXuԣ3g @ѣSшUU[4VŽz6mҥzUz' 9"ǴitqS7 P(6-(ϯ˫,(rEHvv4''ɉ`]2-ɔ7>:vtȽk/ߺ37u)S]0\-Sߞ<ƍL*(2~T!u}={muٻ{I IDATw®] B5c?BxÇʆ 2gN,@%ʼJP ddHutpq99Ytdժ nn5!_**Ҹ5d]GEM»6K <ȑ{5~OPgk_իw\6gN}D"0G6 +^}woRNq޼ iF1l&STrU(IS "%Z܊3قl~}p3ijgw$a(_lii,-aR+,:x0tAk„^'qp]T#˕02"_8)ѣ׮|< E{Ĥ&$vpN7qb/Ҫhiiu~~en.'7"/"7#B"icQ4 G|XjՅ ._paHٳav:4%4ԫk+-w%:vFI##{֬ƦIR(TݶnhR~~#Nz=fLٳYYC(+r% 4 ٙLsu;;[ښA#aGK]o ]_P>|7}ܦ 6ooްWxƂhB]=+:Ĉnq׮ FuoVΞ}relJO8UUΝ{|P+ 1#n8>6o [cCK77 4Ԝ3¢i~Mpr%c޼7n,mhҘc;yrƷoQ*Wdٓ0>>vxI[tҤ T~ׄ&m Օ+w|}M  󆿛>_[߾唖֠(CĆu`Jws;:ZI*cǦ5龲_r>}\wD5І)nnMo{ )Ϝyo_7/ͭn=k&&M> N%%pu7u[C342I|FPW2llv^^J& ֦XEN6]/+:ț7eѓݛ/NG_ÇaF;_!**qwl4Bu\yaú,^<PlEΜ81yz)jtm..g*,:t(̙Gر=g l^Uɔ\)KdV)*mmCKww;ѢK.W.[v{Dڥ)$)MQ m[E3,w-B:}Ѯ] յ&}7wnPl:?""|ׯl޼rڴ# <J{wӧZ Çw.=ը ZJ3bf[;vٰaď?7 8d^6[|zfw-O||ڵWJK}. m?ٓmۭ7{z6wύӧmNuefĤ^ann{ԀfZ/Pd߼)g2ٯ_xzx0:t`xx0<=:EE%߿:lF|S˥ǏF@RJ5:{v޵2mxŋ#X֮zU:xΕ+p Eѐm../R\;~ɓJՈ]OB-_eחnX,&8:R==:vhuHYʕa 73?78({w6VגV8;ͭ㏛qq^=\4hŹx3p)D+W2[PP٧i0|)YY{(סme#hjՅO(tΫ)S'%hhD~~Ogժx:x[8}QWmuE[5k.Ʀ'$ E?:t`; Z&&IMKczzZajB4; QYYb\ -̒ڷ/yƸ??f?sӨQ{uNM,Yr6%%'5']kiJ㦮.qwPόȾ[c߲%mDIw+I*YꮄvmTE$KEBʚ=#f9?yT*3~=5N3|8s{-[J;e.\Xkel<'WJJRlVVիyx0buuki/%%_!dQTPT;Ww;Lu1NeeM x|^l`?˗ ܽ{WUYټ~YYNoFFJ2QPx,{N͛o/WޱÈ"Ç<Ƥ 0w Fj-0 ;;02 ]pzTN~`ˆD&*j'MM111y XLmBIǏ}752<4 L.+k۹LzagD==Ҹ>0p8ƍAcbv9Ɵ Aʑ;v4a6;|8srn," }{NNG-.^{޿sH,!tu%}}mW`~"((ŋ\6i)UU-u)qq:JQQpLsSpժϞcaԉ?N9>tw;ie>ffVoؠ:|el|Fۛ~fyxDefzP4[ܽZs40mֿ_GG_$ȈA:&P^33?--W7Ll.llYY7O@|0-͍mYG~3 RR<~~j1u a}6ghu|JUOHg4}d-Z4wjj"HhNmm{QQ}A炂==t BJJJJBRR<`~L5k9b1({ս_߸x܉&ZTZhff_R:g,ٲE\/3gyyr<;k,fL&ץ_44 /b0g@~TVVMVVuqq÷oC3g2(( Oo?<"bx_r a+8!6v7>G8>…yΜt"rQ\ܰtكat jh8:ݻ,S"+:88ٳBAYoމ{ e:!ЊA}ff NY#\0|nѣ22.xyz>zwvkh-ݲe"C)Ho@xxֵk 2,,_ -'ǯ.*&**ʅtF _5ϝ[j8]tzٳEEho;o7oϞMUSA&wΰ̪{e>O~Zfk{…VVFGTBBѻwtHgr19ŗ995XЖ-+V(QA}llLJJšbX;;Y Qtt^J!..1w..&)P&SScV_?,d!=)tLƫWrT监pP&ICCy'׌+,e:-[ dmbO!+4?i㹦0 ΟJGGE1䗅Soٳ+WM^Brk^kk덏G3U i>>1&& قyڶ-4+:9;9ŋзaaxҡϚss?~ͭ%݌&*%" fF4s#$Ta,ecǝB*< S'..۶ШZZnpIe::w KK+'31޻;FFrHgϋ<|COO ,~뚚V]]){{yP P\kj:XA 1-- 105۷~zXpڿ?).nd4034<5o$B}-իA__ ʕXXCC"~CPPjZZ<ƍzVfݎV MssOVVuVVMvvMqq=pjhFIKkmei޼*.x@N~vfZjYQzzR.sHmlQ*yϟo|`ZqqChhzDD6++Z<|x!Yp@͛~ҥ~~ Ϟ9#e"`64<-kt{N͛o/W޾HNo_K׭FBBhs#@YKdg׼yS(/ϯ))-ʄtF48].T8yr9z|ߙ3|Aou$% rvMN.=}zjMGw).nX,iGFgg{͙3eש>&&/00ICClNcU.geUD EGzu%X8ֶgeUggפյc0hyy}}ii 1Jm?{{Իw||yӁKK' ""tu%΂ :;7"ܸrʫ IC44_8uƣGN}S۷!uu-[3C: ya897o*$%͕ϞMSBP( PΌw*kk1"IJ00`tuO=v7Op25ח򲘲x@%FFs ^,(-v5..֐{~]MKϯC nnKz†,S޻}*֭7x<0P(ԑ#[^:zKD11ϝ+)n` %(ܺرج,߬;J48>tႝ'wlK/SRQy֮_CN-ll`**z0A ݜ9MMϯc55>mfYT{{8:9/H0EjSR>1A]]TSSLSS\[[fDZd`u=z(>|X˗˗_:;/ͪ))1Pʕ`RRʉΌZZzP(Hhoþ|͛ip۷ѹ (0ׯCǏ[a77W67W ʰwYXut$uuO?*11jݾcѯJQ8O6풒ׯlVVgά`(xΔrv~8LKYY80NMZssŐBvG::9h4RٵViiYY镍]f1IKϟ/KrVW>oމ76-^nyh M͕;w2ݮ\yuxZ͂ajo0:_o,^ .>Bv?~tF#AQccǏMe))e߾ IJr̛'̈t@ y2yEEE.-'zyE)`t\3 + B>~lj"Ca0pqށYM}W__? 2p!4#wC9P(O TT2'=0Fttt'OE:5CPrr|rr|ID%%$%}} RP9 k*uWٳQ8)*zgy|Lׇ`ո'$?niS?m@PWleG$"ͦup0ػw!Y&Bikk Mñ`áq84Bt8 C32{!0p3::+_8o0mA b:;N]]_;:%$%P v4 aؠԀ͘xOoaxޅfT346$䭓1^'vvv'ʹ @]%ʚRSRSˎuH\|LffFCC1NIJ ~'uFH>0 {yE߾Y[h=վ~4>==ڵ GaFk^'&/]t( !i,_ZZybbIHH:RQYPTAZ33SLBB&^ZlVWЉFt𭭭H8NNN4˳PutΟO01VFRJJ UuuuGqww3Xn"}y1//'O:t?0//OEEeK9sLJ|FjYYYKK`04(9nκu:ĒǏs/_~ɲ`,1J%~VZ."N0'ӣw6A:t {ޏ/ 2 ꖖ F>}X~KrrzϞ<)֘T䉃}Utt+_[]]6;1 <.,,,!7o1A}VLL@ ?^UUcUFӉ}z{{555yxxN>-..^\\陔 ::0&01KK;fYRŇ/>lБ՛bA:&@aDˏa0+(p~8 '&.~ -oS\\\\\'**zƍqg*~>|iS>Kˋ7n|܁t.bD97o]]_98fNyH~.fagS8ҽg CBI#$kjgdT&ݿ_ZZH$^tINNUGGիW(7ݕ>SN6133Ϙ1csùpssp8P(͛7̙sԩ;w{zz^bܹñH_>xDVV6<<| m۶OB4?&=x򥰰7o~~#=tuumܸKPPpݽ{WNNnپgyyybmqNܼYPp_ ?# w(JNad?Ƿ7)d+:wWRҀt)v s{M$'}XFt6_~Æ MMM<<<0 _v;**˗/O> Mzzz6o\__APKK 7o޼sΨ/!9}U]]]aaCHmmm{zz vAmmm}}}W^mll `0}}}#0Hv ??qa8;;'F/^U0 WUU***=ztUVuvv޸qvR)CtG'@xBffG^mcQUD"hڷML򥓏ooVV4rկt)G w UWð_<94SXN;;;X,$a۷o?!$$`iii__@HII.B:::F} lcc#qRR2)aqEEEGG==_gg'H%#pFFikka877oy _Q_544DGG7%))I:WF_N޽y? u~~۫v5<1>ipBֱ6~7TA3&z_ o ߿ S C"< # [V?1 c֭%%%۷o'mVVV~-Zvmƾ>7k􉏏BP(SSӚvVVVx AЬY^z!((hhhF8փx< RSS h***$$$~OVVWoTax#&//o~~{'04Ejh~8!aFVV͆ AjjG]]D3dAD󇟇 XYAFǏwQ'ܿy:}}2~8}?)W6m4㸿G300?sJ2>|%'~߾}quu}}`` icBB¢E(CyBٙǴ߾}#[l177y,Gǝaʕ+K.ނ!jhh4R3]uu5˪*-O~U :xpSS mmqwήׯ@}89Y bWב $@V? )(P}{eW_]hlY~o=OE<.9~c}}'A& Hܼy]߿ŋ86oԔ0W}vz{{cbb,,,F}~__ʕ+jkk -Zt?FP .|QOO==̙3G+--Ύ]7?hmmmjjjhhHIIٷoA䡡===.\ᝒӯ^z555vvvbllPQQc---0ܻvڽ4'₆㬬jd /~oowWp~ S+((Ν)7 R=9*49N0  ᕔ<*ArE%%!?~144#&&¢s=s`={P``Y,Y2|gp8===M6͚5s֭)G}.!! ++3444X .D35LHHn988$$$bbbF sss|#?prr9;;7oEQQq̙ Ǐ'ꍫZc_q>⫪ZLn>U#7~TǷ 䨷w@Y+)} 900y*v>)&&4a޽{RRR/^eaaNNN)i\\3xyyOR5B:-""ozt)Z&,3uc4 ?oMvmqwo ׯ_0LL?a{+`62:} p 0FO n lY!@"޸A$KP=(iiA:T%Xs;))ebTTTHnͣDJJ@VVv-ov5L,H N6VTt)ǒF ױP1FF̒%%K EQQffR_FKFAQGۈP _O~]cIGG MM]WT8~-9\(A@BAPyy9qwl[Y $'N++rr8:xӋvv#*y^60]J][UCOπuVV77íD=qڳgOeeevvÇ׭[]S31QQhjATTtc|X:a50 NNoߺ'$bOzz1$-܅>p\~*:;u$%}[[[<8k֬+W8::vvv߿ΝRRR>>> qGGFvvv&&&K,Yhu) C0SɵrZRRIO7DN5޾}X__֭UUծpbK01XM^MWիhh8񤮮hAccm ,A:th|L>o},:z,44NAA/SYY)%%5: kyyynn w@IĉړlPpBUTTHJJaxSC$@?l  ՕZJ}23?ի/ߤkp 뱈H㋂7OOL `$BP۶m{)KH^|),,|m@+V۷Yf ™3gYYYuuu333G())9k֬'OB?/&&FFF{݃nIInweG_Do55oOHG&@&RRʒJsC:KH(:{6UTuxJ9::N!~5;Kf*XYmt!HgRRRUUUgϞڸqז-[  =﹭Q(gΜiff6˹^0j$++[6>y򤣣cݺuvvv?o$AOOGs^͛iI_h\<ߠr#{흎@f'oIZСC|1 D24WPpt$FtVvv6鱬lcc#qRRgffʂax͚5nnnzKF]dW+'r @LM-ۺ>%%>@:K||{cbFnw (00H|]]_7lD: @s-Ssr2F: O7򖝝@VVvKfΜiaa)// e QWuQ7%tcׁXF;޿y+SSMNPccŋ/1gSt#oCD,[TRSAFp}}'̈́taʕ+Kk~TgggFFi+ FFFƪ 3?\TTt,K:tE~p>] .~@N/_~_Xy`t: :thiNΑ׵?cpt4w'fNz>>11X(INNg w0B6 Olh謫k/+k*/o*+k*-78c ~@ TVVf%; hʕnnn~~~[nسgϨ;Ypagg#G݇7m۶kii{yydmm=|GkT{~zggEFHjjZ[Z[Zz!`ЂHHp@_=tt** Qޱ۷/@:0 P8͛PFFjuHL, J|yYEG^Pӂi.}ll)/olhi(JHh55ի5x3x͛7@HH 77w9~={TTThӧ|2Nݻjժ?qhhhX,޽{988̟?i~[[[7776N7djf.^ij?@GGuuKUUpMUU28GQœ|22rr\ AA%% zzR۷͟/y'jZUz&L2"޽.;Lo@P---_F04یg  '%A_ʚ ?WV60FTKFZ]ZWDSFn&=yl1uu-O?D IE 44448z՚YY՗/'[w]Vw۶+VʈN{s''#q9Hgd%fexD [KJJJJJ  `n$///,Q u1 ]yl""""]խR>22aVV&194Դ0+v6iP"vZZZZ[>~l*)i(*(' 9 ܬs Ν+Do `g/sr2 Jq#ƍ-[ fbF:m@D+ZWWjR%L}20 XFdcd$Yp>~l˫˫-(\QL Y/WVPPP ~DZ`K|+*j(*/*I ID"<{608E88f߿hg^5kv4aC:@BC'&G:$ͭs v`@v,Qrr9?ap¨$dd$b".h ]]I]]Iҗ%% yy'@$*ʥ"""(,ffF{{[[k^߻q٠r9]]_n/+ˇt44wqy`h(rY?8!7SvvMVV5@tsTTTQ^n$XH~Hj @?/6?./~zz:yy~uu1 Q 1>>pŁ033ai^XػK^޹q> Q3P84`0ݻM2ΟO(NW욜O5}5Y]]t&ϋ8ngFFF"0jhtr4{6<˚ּkkBBDYbbb|tt`(Z1cu:wf\tFʆ zwLSNm)*?llTRYrrh ڬz"[)(HȪǃs}}=)TY‚C0CsjA>^:^6w͚5| #&640/.+:7өSO{{XXDŴE L3 ll4_}]L6n#OZwllm!_E0L/?FwQӌsWH cbv in~*#*# ->o8(rkkutGE֖;_are3pt?3^j:5}JO".+kʪUs==TEUGG``͛i<p`$ ld$) F7w`TOzz]Me#:AMMoVg'2͛'i` ch(#.>d uHN.=~<&=Ef E IDAT@ʚBCO\Ee ;|&=QQ.Ԡݻʤ_a֖8qHnVX7Ovv:C*P(KKU33E?C"?~挍8ETmm;o#nnV-- }}iSSyvHP޽ӧEG?|!  V]|̙VK Jy΃ B`:WJ_: dϗ♊#n7O΁ QR^VָsݦQT))婩eyyD" aBTfuw{~EEǭ?!Z=T={LAL@SSwrrWzzDE,;thɼySzk'ↆ og O}ͩSO=+_,t(j\\z{޾LN.??aV##9ccyCC0ʋ>Wk" B _D##sxxuuA;2ZD$YYՑ9OI:emfHA0oll3PA& Ï_J5ͱy~&-`zEw֖ ccy@X3:z{ƍ;v-E{$AЬY̤ ˗g 7la[LVK^(1GX(yʕԷĀ 6eϟ߽@?Uյ\t`ļ)*簴TRC:$dy Nda`9c$UV\)'yPUU-9"+VSms+kWʕ<<̷le8=j2 d2%"#sX!99j8o~H+%$11ћ)߿H4H{Wt ڬ[#'ǿeKCB셄f#K\]DF?wH EX¶;Y{S`zUCCrLܳgV#BO?SW^jGGٳ>.ؙ*PYAdQQ}_ Aj&Y( # !Gh4JSS'OZuw۶-TSqHbjs>!Ige].ص˄Z/zh UohOVV#"VT6IpNX |9ihYs5668/2jGGԢEaapH+ 33?-/ 'zx{rqatee!2_&/**GPMGݗ\\,ܠ)90EoܼawR??qz{nn>hA//{TԮŋn|HAP길۷02ROuJJ)A KnJKOܶmU6=UU:ST Fy{}htmm j̡Ѩeϗmn̾};=00YWWj:ŋ91έ=yiee ISLÇHS_:A1*3a֍) RW_K}/a4k;Veasr2vt\Xv۶P>>utlmyxؐNGv0ݶ-ƍ4ԻN5u+ƍHBɥ,s "Gr1ҡ$3P[N CY[k̞p{pqA)0%%K>ݽvlEs烕dl,K+%@a$.>,S(9tY0Ȅؼ+..\藝]sE^ RP+,t߻Eɖ-7HGT}YNΑӧ+*-;gcTB$HGQrrѻ+V\jA:4@Ncffܵ Sw '瓑AGDdڱ##&$>9fd@:`dHK# wl}6G@:0n5kDG1a`=R~B:-挎liy q(ʖG-L4;#K#~DRS÷*4ԁ}ڵ׺"g <0 {zFXY!e:31#Oiic_UUի* aEE` WE˗lzFT>=y7:z@zsQ966w ntspL@y>ή9v̒F:;7`BH >|iSəϟ;BC_pCVo:vdBQPؼ&U^#45÷offL)^^Pw, N8uhlA:k{ 56v߾3gccyCQ^@,)tׯo;:`q'꤯/իKJ O8𰹹PTKN 7n e2a08߿1AIOϷ> nЮW_]rU4rs:a+/o62C: Mx0;<3{{E=]\ƗR|P8ܹo.A:tl4a8""Trgm#"vLTtAG4YBHq M,wjjZLcbZ8YwV=BʚR$eϒ"+[Q./F+eI+"KE$mҪi_fݤ~c:ygfw<ر [1~kҡױ_oelq4u`U=ںNVVuV\\*:{dƌ7_9o37o)( p$ ⦦3LX /SdlKgB$\\̞<wr: "p܊ӧQg)P86sM55)WW A[S ASW׼sg2x}DDQRD"AEe8 ٳGND"ah5Θă礥DFې!BΉL `nlllEihxzN=~~i)u`uw}3ZQQa NdFDYZy4Cq;55¯SpGN@fφqz22R^|ܞ=ѕo\4?..kʔߒQ'b{WOۿ?u`iTj޽1NNcj΂9N2-["f0IJkڲUUBq "s`d]YPAEFMʊH/xxxΘF ގ:J'YfE_ÝN0LH9<|'[YdߩP1B̙\CV)aan V[ۢ.:jllݱ/&ln%#RRƒ@iii[[[dd p<9r}FTSU,##IX<=ÝOnhi 6qK_c \ISQQ}ww+IYkllC-egYs.4t)Q%))kS 9/@ڵkm))Е'>zSҥlm 2ݭPgٽuPAUH >v-.HBB}/؋ׯS33KB V榦VCnD=]{:H@XKZZ~t+?Yp2V_", A}}˚56m _`իkv"{ 7ozӰaroort4]i4:Dlydvv_P( ;v7N{T}YXBcc+ ׯN=YΕ+sW '$deE_:`Q...+*Q'bu#GUUy3u> B%ht(zg3fSSJL6a0q ,##Wpݱ7sǓBi:pFo@{V… ~_f#aЂa F߱7l&%%:qCS(MS\n|yٲejq߾}! }իW;33Cuuuk|oll222133ۿ[[7=Jq144dndb|ʕqX_V(ؿ߆ SPax=NݩiZ_y \t%,̇eŷmףnݺ5sc󥤤 ݿ3̫WDDDXZZZZZ3 JOOOðgϞՙm{T__?r oo?ښN;Lե?'?~֭[F-OcnA RSQ-(Kx(22m׮0\f*a|W^^ñ70FR`HIIu{ش`0~:=͛7>|8|fffvv6Q@@@NNNNNNZZ00LZZZNNNQQqҤIQQQAAA} c/Q+--[[[mmYfKIh@48 @pw YjSpSDEsP-(z sǎffjƨ*ap=$$= aIJ!$ďa]8 IDATXCC+ (**R( õ ɓ'uuuEDD>|H vmAAAyy⡪JHHH@@1c`&''@Ѽdeeeddh4a… /_VSS۹s'~Tll!??˗; ի&L2eNN^"k֬^ζ]vHKK}S_EX0___I!!!//0, wiiq@Ǧh3fL2ã#,,LHH(88x߾}޹sk;;;:tA(66)))?x痢x{{߾};++~kcc{aa᯿|N͟?0gg(0 ^ΣG޸q#..Ç߶ͳ+)++36ǏLJ 511-QQ!Cp}2lܝ;ҳfx,u)W:E1;~%/ iu׮(AXNjjAX Fߴ銲OPg/7\^~%yR`q7 dhh{n|ŋw 0,''o>|hhh?wf2])--'$$3L ^|d2Tj999<<<P( Nw<LII!UUUL&3##ð7ot|ʝb'3KOO^aÆݼy{qf]b?.%%?+tqqqqqq7Gw˝hG]{IEe[/Qga-9P邼WH[OϩǩڶfMhRRŋ+'OE?.Ga۞={-; o7;;{ժU } 4MBB geg [:>0LBBÇGݵk]s]z,}[F/''GCC{9[[[uuuuuYt̜2? eff1ӧ#UUϟM xxHN-RP_rii5Q'b\yy22l0~F>|( { **: ˡa46.Yy^x8L)**:y)S6oތoQTT|u޽뾅9sxyy|x[[O;) >s1k׮UWWXtzDDđ#G3""dx;&y{{TPP(,,633ˡz?o_.\wގs566?ɉoK_uسg_ΝQ}]`""2Z2L&熑HYX{0i3?~ys8`Խ cKxxccc1 [|WtttYYY||ۻoJ677ڵ ðhGG.ohg-Yfy{{)++ԩS=&6667nܨR<<<ϕTQQpB[`ANNNfff-WVV<~ɩ{9/^۷o߮_ӧ+q__ߊ ++ѣG+**]O'=YYѲjp+=ҥMarܐ!B55챂 \"--?6v %qjW\L?,FukС `,tm۶9sfՖ[likk𨬬4008x iD\\ .?B=jii)// ~~~7n411!΁= ݶm[QQzDDDn?իWdd]pTCC#""Ǝ?PVV?~|FFFosHƩS666N6=&W699}QQь]vyyy竩͟?ӓorokc3ag2D"x^ԉb; cb2׬ o 2ZǍ;0u^@ ,,ݷ˖/,)?x991qjio ]im7h';w҂7lgΜ9EFFf紴3O|ގOzſ_JPk3O+B3g̘ャ} @V֭Pa]h%.U4s %!2l8YY1 6'LLTnڐW1Y֜g 56+d o2Du`01.>|(?rxj>K=NBy9̵k?W/Xp=ƪ AAަ&*½d]n &pAX)(\ଦLp2m?&x||dQQ (@Ԕ\[TuѢ٥xwlt;N`f>~}/t2wEE?\##t0tPWW^#]@ rssYv'!!.3%.?rٲTj8;p UK /vѣQg,vSaan55ٳg!!!uuu5559P\\|۶m Ald7oBarVTǎ%4mn:`Q_6̛wL&D'Mԫo:PpLWWU96]or, '0x Ξ}e(,5/XpJm~}8f͚8G%+++##Eun̙kԶJHH-|{8NߴEDD,,,RSSq=MMM `=l0 6vq0^'.=N`@14$dy\\־}1q0`FJ-]j:`E Q(QQ? *((xEMMҥK}}}WXaÇCCC 6[>|@ ܽ{WPPpԩ].##sСgώ3իWV2Ý;w^zo<}۷-Z$))po7ڵk_A !!TZu ,-_neyyq7 Π ww!Xtw+,X(:!$$ɓI& ރׯ__xaXxx%Kdr={NNNӦM;e3gbFP=zXXX7ٝ ҈:X3f8} Y@gڶgO&,}ԤQghhh JL쟮Z :::^~}ᱱ^T*ظ}a0 #ݫVً`XkNfUUɑ#P'0NJ,-q@\tB33x;L&̙3̯#%%d2L&BIIIt:pׯ_1bD{1C}uQ޽2F{=3'LbEHI u/(ԩ6JJ0 t߻wG{{ϘapʲǏ;990k,ooO>eeeڞ:u{P(]v-_}㷇Y+::,>>3887nMOO߱cǢEZ[NF$N^,%%ty]Aܮ]ddDG𭢢u.Ϙan: ,jرJJJ/h'""bbb2yd##5RZZ:{eMMͽ{^rsժU=.p)SL6ۻNHð&$,!!57^a2ar8iv\˗W6Kˋ:4uXTWK""".\pBMMC:>0ܹsΝp ölٲe˖N:\ VXQYP]7::򽙾HHðVQQ,7Ӊ #+kY0Nշ: `97GTT߹) : j--t EN=CU00P e a tXCCqQvP8 *CBF0BBŽ_wG3rs+ ޼)C^7YAաCgQ(d2Q]]PPPI__IP0azPb /__vfX-(@?vV}b<=ZZjEq1O^}z7Taa>##dddΞ=ۛ,@TU%UU%0 c2UoySUpD"jh(ih`kԀ[CqwXK"A92P8woڵQyŊ #Fn0uZ߿/RR*+ _CCӍFRSį?"##L="Ҏ&ڬb?*$$ ðK54dGR33S34T6 :-㏥Ӧ>/ N`@ܼ @mۮ93 &$ajvdSS%YY1kk1? 0-«WSrrb#G9RmUCCL2@ mkaej: ?:c KK-;;Ykzy*))aY(,JIKIKI+XeT_U36VAp AA.40KO/8y~UUL>\LPi e!6!)){{ځA.%gg=xuZj}|n,[f9y.,}5));--?%%" `{sS:>2uԑƏax$))ɓm"[[TU%FR|%jutu Bll ܅L&rHCzCXaXEEÇ>pdmɓu&MҵЂի A[@e:`-N%R( 3q?&${}MMɺ>>5`0rd2:;ɡz!##2wsG錌~ }C;VFFrÆ-]jkkk0d7p˗#**: `!_Ԝ99UVV uFq1ѣ ?Ng)X1X[[u4/2HC8TG$_'jv{;v\70PѳWAif藇5 Ng1LzzsB}bdeE!W{bc3_(籴ec/##:D`^9mRےs}sJw BlATnǎ+WSSNgEELM͏&^.<~L=>|(qqY?JI xzN;VXLz}B"Nxyɓ&Lό }&"ocgmge5n~׹sKPg|pA~JCC_c`}NG wJ_eTɉ=ZD"zCH$0 &7lUq1%.u\\֚5On4iFH$e^(9R u)Gknm6 uZ<;))5wv*nz27BYy*t>CH$hR8SRXzj+nny ZuF0 llvuqOv))): `-YYZXh_iiM\\VllfzzCsԠHf_0TD+ɉ-_>nqon~neAA^;;3MǍӆ`γm4g))ychɠp?_ojhH/Zd:`-^.Dڦ[^ݼEi^^vpǩK22"c]]R(qqY׮/\Fg;8Ƙ1G&\ ׏}; M??y 1>pwߒHD[[&Nԁ8 W,uSoHH-ZdhyaaUT[^=:TlP)A?;Lzz4Pp?wo#Gty^ZZ[~Vvvٵk/]K74Th"":S_C<>9׮qck66[Zj>6aÔKkiɢ™p}ӧoC.{$e-凅=}5D1o֨Qp Wb0A$ƍ7N{>7_FF͝{FUUl2etp@Y8N|}TU/:`9OԤ&NAA]]sLLfHhkm}zqSuѢGsp|UUhWK {:g'4熃1t)o='I..#Q=hmmuO޾-16Vwvt4¹Lb\Y$9gq~~exxjHPOHo޼Qaaݭ8G 'O'~Rur"2~ IDATL̙c߬.,ŋuuͶ0k-YzNgp%t//ۻw߆=;ҥ EtmѢ$99g8mY8 NJKkNqYII/,7o4 kii'ݹ5dҥA 2C =^^2mIpc?c\]ǺZʊN:Ԕ1b+)P8;.?ih5k&XQDD `0 ΜyӧNMݼy*TM#`0ta"$ &=N+=ŋ]kL O5jաP-X0Q4P8^y4'66s^'>>56e͝; ufŋɖ-;/'')>s"s'Nޣ|UJʯ.Gg:ɄڛU̘aG~:OPг6Ʈ]QzS G,d:0 n O ~B4͘a|*MMԡKGht. &W //y޼~4?/]z^GGj 2_yml3-cNg?˫ejDqqӉW,]jl8))aԡ/sa)ǏO'nt%0U&,Zdσ:W1xٲ %%EE Y8|%zPYYt}4,5'%e;8Պ)۶];?!ᝏt_//;@/,{--4>> CGG>665juuͨsqItEE+ u聟_0 Eݹ@ X[¥JJ(;wF?1Ν3v,_>NP }@&0q * n쒲}RRvΙ3ܹGGkhhENՋD@E/ a{^O#*ʏ:).ea7>>;Vs8Vk+NݑWtUƟ;h}O'65QQ:Ӧzu.{BFaВs P.ee^^ rx^^?Dimmz=Ůu&?0jSP"d2Ïp(w]{gXWrrNK map&c?~9II; 3{pV//0Ο?ȑ{ynjHL: tС;nnutQg+1 bp>>߼yjRҎsG_8h0TZ[۠O$$||?{cgg;aB@t+XiXY>z~ |肮L&n`:`i~E1LKvݚ7otJʯVpG0y_Qm0왏ecCq8+uu-^}BC@Mqxx#QTT]XX5a ѣ&_fe>>EEPUk+ z~xPĭǗ, .,BcK+(!p1;:9XZJJ//TuTXXdI45e?޾lԡg"`VRP8$mm˗""WOukׯ CqQSRPP8 ㈈̢ Xt'55Xƌ&&W?|P)ԡ'©tFK MHVi߽e^7.\H~7zzzzp{yxxH-Z)X]jjiSp&y={[غMwÇT*MAA"((AX0 QWWaRk PA&,5k쉾z5#`,C3FbccYNf_g߽Jo2u.~mϯ=Zu]23-2ߺNBBu"bc_߸O0: ot©L_`39;صQRRu.N-+..Qσz.#`2ϟΙsԵk'Qfg& kgwD"ݽ; CD'袱lju&}W<{kiy 8I  Jo pj ݻqC@޾-QV2d\\kCaa|}o\?|D+?LJFt a#x$"=NZmsx/=CCe(N\-?q FRێgiÏm>S*+7l唆ÇVO$Œ,`9s̾@ *+*J Iz4DD@ 9t(pJTAN\]^̒ʦMW?`o+NLfxxϟ煆 ])//::..f^HY`-44!!( ѿ;;hï_NĮ t=(EwwD&E\Y=[hhh-*S^^x[^;ѣmz.5l|'t̖ٽV|+0¢ExII ;8M­}*)(țS:ۃ_{o߀d[`Fr=yyL&SKKu9yo99׮۽{&|i Z` oD `J0N{0NoHFDݿvhөSgf~F55鼼JAN܋`~{%H3EZ뛆0,?4uvRWײukաVV[nj@ɴtzDtrqz=Pa^w=ݿ%--2cƱ~+t^^l 'S@ xx؜;a0*TU%dx'O4)ݷ+_MEHJ O8L:ioo8˫n EQuCgŔaL~>8,^_ A$yyI6oE )7?gf6h,hrQ__QI  'ҥwnnll: u"!SPP*¿e$Inm;@/U*:髣ȴ'=,hT}aa~ H${_6Bᄜl\ǜ9֮aßMM0vhzAN+#J'::r{)NƗ/50}v{kk{ ,dJ t=̧3qb||}.\X~{;#Nn0 u>|0V?&f(Dm錪z-t{ٲ 6Lu"bd2aƗUW7":ABqqӏFFúĈDBYY- 썌:@<==P@D쪆QaJJJEEVUUƐbk_ԬYsÇ/'N,5 >eeb)ZH x@_)Z%nXG۷ž0wѷxxH¥SXp*..3f' oaϟC ++0LVzi[؝;0)..077G G{{CCkkkNL&L70P ߗª*ߒ+-a...Sn w0))٥Kvigg4O@uƌ:ܣ Ni c--/9~ De! u ]i!JD &>&8~oL΢tuҒur:yrK.w%..dGq0``m-N? XJmmN , k|QP'F&w9|WDiixxHC'**P[ C~ 8UTu Q8mZ0_|'TMp/_( {3?}p-C~wND>ϟ-[֛=~.  :յoll222133ۿ[[[}^J^?@ c[MMpaΜ3chܸVBbO#:@g7"6,-oڐ[>sqXˆBCqW$..m۶u֭3g/%%5=ٳg!!!uuu55ߝ}7GZ[[9::>{ ðWf~M }í[/-;oooKyP>q_1@'֏8:]] T*}yyC= '))u=c ׯ_ ݿKKK)**N4)**J]]&zj޽<֞5kVZZZaaaHHH䤥1 ?yyxzl.:L[_~}űc `E=zjww:W'?Ⰲ~̙ܺ'23? // 111 ðpmmFqI]]]ss}݌ }` JHHH@@1c`&''@Ѽdeeeddh4a… /_VSS۹s'~Tll!??˗;la͚5qqqߋڛTaaa$ҿBBB^^^aaa{ӧO|}:z=>.tiÆ +V744 z ?Wttaddd6lfݻ)!!q؝^7h4:78:熇;}Np8O77NSu|?)ŋxSmmmvRQQvuu ycmkQVҿ͂A ))Xy޼3/_~B 2 :&&+qqq^wuɒ%eeeL&ܹs2227oK\\a999SA]]//ˋ0 `2.\|r?ejj}v&aꂃ1 3gN]]ݹs0 jhh;{liidrCCCs-t|ߋc*cK,++nggv'f?~,))IјLfXXNIIܽ{wͶ>}z]]ݍ70]6b~łիCW AsCIʕ稳p2yMѯPðOlO4ݭL&~zѣl?3ޞ//VC-]|hhh?n[<SZZ?NHH066f2|dRNsrryxx:DP F}}=Nx.fSQ{LRRRYYY©'fh Ǚ]"oZZ&|xda+N( b|r//貲۷wHkk+Jmnn޵kaю]Ѐ?5kOlmmO:c``ccsƍ:*#((*++JJJ?~TPPI[QQaee5zhEE/MQ^qƵݻwoܸ1777==}ǎ-^=,mS@'= wlg瑨8ڡC>(..aإK?2ŋ}||޾}U,k@!xxH-17\۷}FpXpcoq:qℑJe2QQQT*u޽jjjW\qd292deeӧOϟ?_BBbڴigiߓFYZZ -[&!!!))J]>щRpee m222Id26oެ/((f}=>޹֬Y# PWWq`UUU))_~^.^݀{ڱXg)[S u H yxnXTT4jXI+WG tu)zd*+\!*J"yN޼_(aaC;wnр;gX N...# fOD Z:ޖmT2aF"1"||mDw?t/1D _dc `((..F VY)TT$Jl|L&QRhBuuSX&.*&**Jkk""R7l&`Օ?th{pUx IDAT18A=SiiMPнWSԤmO7kӧONLLǵ,6}ӧ?m_,&&**"@Yy׾\\"(y11Qg9ruh[^+)8:ll*ٿض_"#7oܴ7oI$i=j:ߏ_8L&-^<7siZZW /V/xXBhhGЕĉ:~~ޕ( DOLLPPֶڎTRRvHHyS0^^XRJUUR]]FXѓ젠{~~ΝWR f\뀀M\Y=t@hhWS519PZZԩ<#GYXhZXh㨬6$䩷e,j׮b4…GxyI3-Cʊ=zk .hܸl{*))n `#uu-6-]j: ]7ofLgmܸZEe67נ/_~ (yyٳGΞ=ðڴ?|رz'*(w]]OXdgw…$ޝCշ?cf-[ʒ"Hi#6TwH7me-[$ڥ"Zw3s~yBc,5sgF9|7(Q{wҏ5NN}} -gj]9}h6Oʺ7OjjjCHɉtkRQo+Ӿ}ɭ:ݾzqǭ_oɀ.C"b99Ŭ[8u%--ӯwYYE;w^#kiN5u*4|K\\3˸fCikyyY_77ׂe*V^gORnn5 ;円Vnnhb~rih3u P^^i99g8ii2ІlԊϞܿ:VVs9PН;N sp8oo;w /'%y%@huuǎ 9~ $)1Cfo4::?vkk󔲲Fo47ZX,ټ_x+55x$ ]I!:!^^ UYYEYYuMCC\\7o~ܹ 3mr8ꄫ3f={oX‰q(41})W` ar:5J!; ' oL m޲DE=T|E7׷ǭ5Ne\TCC:4ZZ  $#)+KLqqB"Q^(x{(K8̆ 3aa.u%(퉯^}svy54]{aП橜bH/SÇ YɥKOruAӣsϜY6QӧŜP8u"&LP0AEQ;ӟ?WJK mysH 3t֬1~ΝW\Yu%(\]]11OА:bfydFiif [TJJ~^^iQ: * ^^"YHMbMӶ3: H[{N9thEж<~ӧ׬1:啦=Z)3mZګ;nݚ?Rg֬p4v66A:XihݸQ}{"llb? x\\`Y?GO|OIɯoܪtJJb_?2qiiUD;A@22 wWt 34T=vr5EEexyY x{--~LM s`̜9-,t`71n٣wN25 -r,ʆSϙ3X'#pba=UPǏ AFb#FHJĉnn1V~׽{ssKfsܘZ]]eZZrXga֎k弽-BB7nK)mclhJSl@4$RSlIreH`fwor{; 5a34H$ʏ5TEEߗ/;'n0eeRR ND_NN1GN[&޹t܄iӴM>r󒴴W.=:v,]_ܹc`ےY40ւĘ q0pLgu_y𣫫L~~&"L/IaC7fT[b.v M<.{oߪ/\cQ`ߕ qbp+?}ϯf ➅ɉ\\8d{>^nٓd`lo?f,,Ȗ֭{C`` 'zJK{ys@ROF(*]'b_V( HZS)*1XCdeE&cp-[7nb)? yɎW}|,--PGgoߞsU Ůaq&[gmbޅS}}eu^gmRҋWɉ,X0nbCFp8oo5k"==kjb0NL?~ ssX'IԉD,uh6Oʺ Ԇ oΟwSFF֭ MM;wuqr D"^__ϋbettW iJM]?rr"k֘Yc}իyqqς2'NT]pќ3)={㷃@i𪫛֬)>pٙFMsO];nByJAA83UT$1zA(.}>̟o{8+}֕ZbsS  ݸ1ŋk>3֯d/dpLfTGnS.U64"$$]d+L ʆ;/X0n^[5JSv+~ңӧ1k`0`=6.]zhxgɳgf ҥo]ts?jtq9_\\wTtLM5<=c~!h:q"#)Eg󔴴 //Hjj֭ D"&V}u z:|zHH֩S66c+W\i…6\ٳ'i"CW)I ,\8>2USYtOP8WiiY ⭮.u13 k)Shj<YU_ҹU~oߪ7o]lg2:24T߬&hF H?}:ĉ1cu!݊Ǒϝgc3z0-'.<&Y#@/Ϟ\PQ sgAM=$)O|¼tI5+G|橂o?~ԐHAxx221B(圽{ahL!%ޘ})矅L>[$' ɞ1#@OOx|ܹ6\ 1u w+'_;X4.3nݴ-[f푙k/N5ߺх|}oZ[;**MGqBykkK󔺺4??4O!rTɓzz ooYrr>cbW- w:Lј2E244{ޤtWW˧Lz֭Ĕ~5`qP8ɌGo80Ņ4O(-RV: t gm%:_Q|`1*-*,c77UFF>nllcA\55MNN~zuKRQ<|:<ٳ.^lzT[bF]'©WG~j `1_hb 7n{vΝs{DMRRÔ%>ZÇWPPZfOyV2ss3NL|ibO-+'q`iXgC.q͠;-u13ܷ/ā-ݺ`numSῚZ." +0Rvvц 1W|IԱCCէON1QQOoO]ŋ .pGoϚ5zfk55Y1U\:鯡pb{pݩSw8d|Nܲ%RN3֭7Sj2hByJAAy驵̞=Q{aa?qڵk/H<<~N󋏋{c3]guŅ3g̙zII/N03;bka*>1nllnYY-Yޘ `))/<QTSU. G>>=f橈_6O)+K/3>(834Tmo'zuU=NJ]Yzgkm3Ën8CFFhd$13󝣣Y{y]^z*g΋bf]mlA6M D)yyQXF7(=z􆑑z|RV̅SNNU"">97OfJ]hLqqŜxy'ݿ '|Xrq ]4VTԋ߻WT^^w >0jA>xҥʆV) !!>nzms<}5sqssnY}ٰ_!!sAUU24hϞ$SNN}}aM20P (s©7~x`&0pɡjDEazJ N>nzFhھ=17o*g|4I=:CAF~~G&o: F`6@$54d޾ xC ֎ݻ701uwAI Xλw?yy41_+@cc njׯ(bb^5Wcn좴Wkךs:()Z:ֵG>snt(ѣ[Zz*44ѨQ ii/_ٿ?Νƒ盛ka:*Z8:uiǎXag.=DPUwʴdaAEmBd SaaH/J\3/qqtEE>\^pاvv||f@)rիyߗw~&'7T23:s: A>~UqqMڵ+񬝝8paz֖{)Pׯl__k)aXga"G+zzN C.R(N)u @O}5Ou=[5Ugԇi;Yqq%d2rڋWlmnh7\AAp}UVXcŊpVA]H_Pʊ;<#/~#s2⃦%[UXS'[ԩ !!'c,|D"H(t,. IDATrh6OEDjllC }Ů5dKK+#?^rx%f3wd )**BI$2&Ax_[?ځ)nnag_D  'qSEE]Tԓ{myyXga:WpӴiGATXZ+4C*Nֳy Eу7i2"#mEE5JJ6%//VYYu-^R'__kl6n[5"RRtRluu3u垸$ZZа5URŋ'lh5 1nnB`d}"GQ+ݻU') KҒ308f:L=4ݼ{wҊvv r $VRRu0$8pjo'EG?qvP(fX*f3{dgJJ0aÆŃI}R g6\\ο~ʕU&|u1_m(/hh#?( {nI\4&)3g*r2P&I=zT݋Ogz7p8(%'',(( %ŅC|Y%%<?sLf ?dΜ1>>W,,/30&~QR`HpVᔖeٲI}߅Ĝ\\FrUV~6)muBB4S!Ǐkiiʭ[t}_WXAz=(Jޏkmk+[nVq M޶ kbb8oGGYGǯ W4'^gRvvvXss>>1X-#ii?kNgNII/48u>333FdbVVXG`:4zL.+aɒksPٳ-KT8Hķ;v1zzǫWÑ-*̬ݢsvIqP֡P~S!AS]]{_u.+fѢp^rr򥪣D d |njQ3FI\|~9p8GGcV4}3fbyII uqPᔕU %*+$$`q6ӯE|y +UU)CC5}c* Jߐ(;w^sunݴ͛MjkI$ a쪮eiS̼~}P%%h/C7`'&MRۼ9>/4$yP1!!^EkAp8܈#͎`mm>}D}AW6mRQQ1bݻ[[i-ь8ACC+,>ƙtih,7NӈђO p5郮͛F7/evqxmE88pA#e2Tlmmi"""~~~m>vm۶yyy"RWWf͚ݻw5W^unUSSsyzzx"11ׯ.\HNN햪G4Lde9;9SDTzܶ#]tX(;߿?IǏ#R_:::sP0 QQ+W0۹L6A@ ')ǏÆʲ*o߶JHHRs;vHHHP/W[lݼys˦O޵=*%%Դ`III&&&NJIIAz_eQGmA\]/̜wf>3 ܹ.bw]p!??Ç!͝[㓑DD濈D ϵ}'鶴K#B" cʊбDJJ|MM W\hjjBWZZZJJ׷ 33SII);;{JJJNNNԆ[!˫ DyUU_׾ 'N Kx񢿿XXXxxxuz ,:sL˗/4SQ?΄8.::ZKKKLLѣ(-$$dnnFwzmuuuQQQ'''9RJJ˫}:: 23ߺ^8U>B9}ְaÌ=Ф;_VV*yzzDz@p/jiiIJJ>|822REEEXXxΝԭz^A=#cjj:}tMMͮE=Ͻ^^^nnnԟ666|t{ ˗/PPPشivoG͜i~դ?6?9'!WkvRVv=ʎoO=WTTdeeeNNNO>>yȑ@__˖-?~Dݻ{)((xMz۪'$$… ŋ###Qd?>ٹy-[ rO"RTT$##KEkkk#]ݺuK^^)--햤1#P< jjjΝ; ߿ϝ;'//^YY0uٳg'&&"RUUEݿrrrCɾo޼yM߯#{\2|pSР119)ߒ]/(>|ƍ1Ֆ/y zϟ?_@=v;v>vuu{TT ~BiQZEYdI}}Ypa}}}hh(G ٞB(}v#<޻wO\\EѨ( NiӦRO}=vy 9{;` u籱| ̘ݯ_: :deק:Hwp_1P=GR8[t/gTSSYVVF}1f)Eё#G^zӷov>Uuu5HjtST ;::v}{knݺEѨ( KDpBQD"۷OWWGGGLE> Nݹ.us˗/,Q%ԭEXuuuO NTL{ېopJMWRU© _GG'<""".޽{H&ݻyyV @( ȋ/>#+gPUUh^^ _>繗D"dff(:sÇow<^J=:ۅgE3gog{lWCw5AٱpBQi~XgB]ubz^8}"+W^RYYY>%%%555ˈ]KKk޼ym%**`jj...766vttv_zsw&$$$''w{}||< Ν; muTWԏ999A: 4wE݊yw~t߿IPE! `.55%K bo cƌ|^{ვAxx8N]vY6lcмt;VLL Dpt܋^ZUUu섪L&QW]]d[ur"}]d@\Y5s˅gX Bm`-R8:w6ӧOq'%$$:[]jjjrrr \ii)UKK Bvss3gNuu5ӭ#H??LLLvm)S>|<~P]t)u6sAp8܌3z9jᅅ;Y$SDÇkaoOVJ5k"]\/`ݝz2DSKK… }}}_xq=O=vYX= ]E&cccLJB}As/ ׮]2e _wB%--?Lbyy?N]7{3'Uϳ}>X ?qbɊ&>>10M9`?R8[Zh4 yʕ;wRۺu/_ nlٲ۷S{|[:Mͭp8ebbb}}}{{;H秹yrr u?"""\tԩS]HtEQ===ڍ7JKK{zzv}=?DŽ  AAA''E]~Ϗ?޴iӒ%K7k׮ݼy۷M3F?m?}ٳm۶9::$C\\8MEcȪ 799<==:4mmm---wFcߗh^A~rppK~uI$Ҿ}-[ϝPH\hWIIɛ7ovѵ!zn?'Uϳ=&eeL_߸l@W]1mǿwTс?Eq =zt{{;׮]vwqq_reSSSح6m^dIMM [(ͭLs3gv v555j/;E;::L"((Cmpw>ŕv” Hpp05H1N=uH={)++ 1Ʃ@c2|q555aaa++dIII>\BBӳ}a EhMz>;li ?chۧ"((hddDr'EϜ9dQQѮgWv==\ >= ]#BQSScV㫯Ne˖nذzyC[`u5AtS7/ޗp@*A0#(Ν"1~#RSSeBBB=Ѽ|oP8Q " -O=y^/lsr?)l۶mҥXn9 EKoؿ?w0?}@qÇwt:+/^hnnٹs;֡Mho#>zqܱ6誵/^\bY*99DzeNXzlCױ ::D"˯JJXgyf[[JUUUWWW?n%$$e4`uKϚkAՄOΛ7offfXg ͜tPO@6̨6EvP<^E;(Ni&8//Y^Y  ?+L޽+Ғ5:::LXŰað{ XSűc ¾}VWgvvv 8io'ߺ=+맼" mX"$DPġ/^|s%::؜=3gb3BlIXu 3tyko⒔dd*dd23ٳ5R|RŘIYYYYYb*;v\k޽e ?~U3[Yߟr /lIWWiGw0mmY77/5 Ak˯Xg(vK+y|u.TQQ|^SS6+dU eeurr"0lѣ ϝ[nڴrs?n?YY޷/n AKK]}}t@K u64T>,QR3nD9祗/{DDik#UW7 zsYFgg)`Ai`Q'Orexm-y, 'A6m|)|X||DƑ#?TKKb?g8,?33Ϳ[YY-nq$)9,<СaallN:L ǡH##[Xum7o^db絵 ]]5y@fg?k'*htƆ6U@J˿'`-g,{]xCZ8!7}:pb~+W_[5&ϦLOK?~|I|ZzͷQVVK$%$7A44dn`o?aH/覦6z6lܻ7Xg/[8Mjlq y墩{T[[ WXƻweA6\uV{tϟ"\\\0wVVo@_Mβ~ kD@8pBdYyyYYEXRVV-LsJ7~~nee ypO ]8lhZYYaR7;OAAt t\\ 0w`^]84}#7'=0Fmm!|aan} ?^f"39;wMIՕ9HRrXTJoo#Gn]of#--m쐐oXg6.~[o쯽r=:CHWxuB?xu 4ϟ5t7x<׆ k͘ќc2}|bo0'N/tug} C Eэc߾.#^pO=xgIaCzY U33}UT$=u>`8ȑ?Wda8pBd߾U$0ܹZZr|GuW4ufV߬YtYWZݛV_ʀlHn8# ևXg;(%%q{r%̣G&&>zqHS4 zbl_TT)~^[vZLKf:]c 01uH={@wP8!xzN灉\`(F)0>P~OD"~n˗s탡={۱cΧOr?p8޽<)~Y459: sLȴiP8!47>~$at~ҒysÈvvA"||f/LMNcUU Xv`jvvQhr%%AdX%EE|:c- ^^˖VGGx^DEWnpe8X- Y3 P8u###v;uXgVHoEQzec!srV:3z>m\۷^ZSӄu"@8."A@(zZz(iX/k~oswA )+ut'$<: 0[>}u񢫐PKAAtƌQϳ>Lz֭7N90MĄ??wxܹc/?A%UUI}}8 X N?i=ɿ7bEHHv\\np#sDww//^d֎Ӗ, 10gauco@ Xb5Xe 7n44bp((eYܾqXCRm=}6jhŰ#˗_-,EF>:|墢X' ]p8܎sݷ/43gLG);:^l@/ť!8724TxO ʢ]pѣ pETT,*zԣGo}iVVu O'Op^nn^,[`OD.bb KoF'z:|ؾŴD>leddG`HAUP'"}֬k\ w'f"//w Y=BB}޻7,00 Qgqvu%:43m|[SSGđ#7lU`3 .xx>3c?>d*B X*K=BEeWPIٷlD)$[HZ<{Oe˒ 3co̽y5{S3s> $qbsΎrX6d"Hj w[|_ׯ퓹ǏߵywTPL֔[OW :NSOKKM7wpg7qq欬 pg-NN}.Nee/7ndf//PTl֖+/w0VVƖm~ DHLkk0OBB.ۧl(Y&.<ܤuFƽ^K$jc$7יRn`7 pg :NdBM9A5㗽q{{صiTb~~y55Mc wu - 7xһwH ~1:kk뱜9y BPޑe<^aaƋ nveZUjX,P8 &5u{G/G3ۓ`썎ފFSǮMco]گ_}c9{˖))6Y5ޫߏ9xў:eFvL b@ q"#'jBCK0s<3e*Ң G=͛ n/@1 Ueeer.Hj#dmvg|޽<"ÝA@lj/fW,nwvV]F,SODdVXIjjՕ+/G8⵾1<v%6222ϟM ⤤Xի+++ISFnWTT$++7пjnnffffddvժUN BHII͞=;88ٳsacc#]UXX(--0wܳgjTS eeebbbGbAA77]z{{<8шĘeg?HMM@9DvFFrk3?w;:uw׀; ,11Y1N/7d/\p5B{hꪩ555333'''9rrtvv.]&<<~{ jll$gTTǏ>|XQQq5W޿?88ۻaaanii622rrrݿMwwmMIsْ'O:ug’~܆ 5sA\a0`$@ID ~~kH؜"S?綤$+ ,dt779}ZSx{kS/!&&B]]aŊƆnڴOSS3((h;?{,66OHH?~@T\\5…OZxqHHHii)鸧'%uۇbIUp8@b``nkk#2Ě&X,jpqq+Wp\]kiy΅--,#(t(F;fƴm۩.Lgg 1; y11?nY}LL.CøWR իW#>|Xd #߁ZCCcٲe]]]}}}#\X[[LJBP(?~H:b!`0^CQYYy=AAk޺u F57~~~?ŖϟG8H(**TDdUrg'(N ߁2=重)0 ==/XY)$%tHvõ>..NMMݝtD@@ٳg'z5F===ƞ?NHH ,--e%WMM H$mmmuE [[[o߮:&߆r\SSCzQ]]MY wL0'OZueDBqAAD u'O\]σ_F@}O?wٶMQKK.57nKvϛ K`cc⒑qBlll<== KKK7Mz{{q8]OOO@@AzzCvuO??j` с0 mM9I3G{w=x|#(qĶWǎU-i7OB>BOo/*z "I::ZV_OH``vfB23ӻvP)%$$|ˋ#11ήM\\СC#߄=""LRRRTTTUUaQQQEEE>>>>|ʪȄ!--K@@ 222++fȶ9vIu1333555MMM ooժUtCC/_?vF ӧ+EE(SsXkk%Ez#瑎C\w;w%&VIIwVFF AL9;;;;;^l 7Pݻw' 777777끵RΤuq,ɿO򵱱y)inH9۷o߾}w=Ar۱c˗KJ̢pPq2w %%/ FxFKKfUpg(9=6jLLQQep`#!!Szzppg8X@v{lwr:GEOOyD\DwLPϞFں]y{##999nRXhٍ 00`~wo6\A#Nh_ԦC6['ieuopg4cq?ttLٻLYYB9?~֎ijQX[AAtp6s{dyx#}J077wRRXRgbE~㴴08133@v$ tBżyff'};8ut 瑎6>|YuypgX(wmɭp5k$\]=w⏎#:N9}FYZ L#q.tQQ.wwݙ6.\x`fvBYYGNNA$%Y{4Bnnk̷OkkCܯn& =0fb9ޮ$XT eA;`8u)KLL|-R!>bzgcv<{V{yP)4gFv:gT=:ZZtG8Q(ŋ>|߶x @Q|lIGG Sccב; %}, 2 ܄FF8yBӧ_|%=66$7)ǣ8 2'ʛ7;#0>IkZZ3;NLLt?Q*ӃsrJ_j͌2̝;RRl֯_8Kbb:9沷_7%1볳RZHP#uaOƟt>>AA˗Yr.q203#njL`z-g-ih' 0v,--8qp0uw"ng^9 @ IDAT`C.}ޙiBw)E#'YFFhɶvߟ;k$c fgg+&(1,Vr_ 0M3,V^_jBKKGX[۵|K-+ƒ(ls^^D-9}ڦG(D @k;)`YݍoϜb$ w{QG'W^˸zM$֊k=Om< uZK+zǎBBee['sÖ...7`" OII>[TUհӬx w;qԪR0gq'҈||.P ]Q3sJJ󳳇(;>v(*[VSӔdYX{Njb'qqSl\h$zb ''sBEi鋌{pg`RwFP}% 0n@@~l,XZ:a <<55Mp8!Pb>&$XL~b4޽KVO05MD`{/((ݻ>2rի::KWqk2&FVVǬ,?z6lKmpz<{{e?<  =77{=c٭ 6 ]w"ɌygoK4, %7y 2+vSw789KSZZ*+=rdk^FFrS5Mq8\\lC4->ŋkQ//M))>;~0AC:olqBKKaaWP<8z;:YD^,mV4@(.v"׾sr:;'sߩÅ+V<QP8r*Ң3o ); 4dlj{0,FWP8۷Dmǎ3\d䕺֘˝;bEE vOrcrdWW/eׯUge߻w;VV  eZ'=!a04w߾])0rHEkx#M(W`7n~w&b8Ͽ~|`dffŒӌ"!݋^ w東^X+,< ,dQR츂Xz-++%vk17?M§kGEYX߾kg«ZZ!k LLto [X41IDhLLVhjJuaL&`ӢEv05]nxB`z3A ݋3Y_~s+V̱X w8}ΝV39,…i_!813Ӌr|I;'LWzzqq7}|.TQLؒ%ϞÝ( փi\pgbO 11aapǁ8\hOZttbp8|~KZڎsgkiyphiJwjk/?V]wZ~*oH+ ]gbA0dㄨ YN"Mғce%w)':9?qjꎭ[W?<]!ܕ+Z[+{Se'&&{S8 0^22Byy.uuMM7{Y~0'ٓdYҳg::1X,CQ+{FD}R[{9_q_]]{;9R0pTTq"e;u&)C? wdCt?|p`y vpjk;wqkuݻol۪jc ?=.5u3~[g/ HɉZcMoee)W kSH~Hnr뼼pg`t Xr.Ҿsaaaش؛7`ihj#j:Wss#Jy_7UjOIz99Nlذ9[, &3ߵK\DD?{VolhbTVq'rNFkk7Bv/vv( ߾mTV-*zwaˋYYߟ * qkhhGzt`8gcsrDD =;0Vܽٳ<{w!##m"YLrݻ[Z*DGo`h3(]MQQeY!Okqp8ӃsrXQ'oKAAڵ~@ݾ:,,>>(8-_.PY/%ʘa|i͛oL%FF:-sdd'){[LG$/n7emlhӃjvt>\fM˗_ w\:cAuq&0pӹsX>#"LJJ^\,d؎C ~kJ&.%e" YYL%%%7FQs'Jz!6֜9-0v}}xGdzNJHppP;Τhh,vzvxR~WI<=5**<7n\ wii J ndy7!pCEr9=pg`X#U>UU]PUUӃX`0cvRss *qMʒՍpqqqR%=akk%L^K˓Ϝ١' w)lHn6y{<::Z[ss'AT=Uw\\,ۣL33Սy܉  p`Xtz{ Ҵ('e 0"o?DI11e55Mc^SSǦMk^˚5pǙ2<ѦMM?\\a 7nCxѼv3212d*]Ю_|QٙΜG0:N<< 򗗿X` 8{vgI 34@C^NYA:r߯WӜjjttq"ׅ 3e~{8QTtU>-=ZZ_~DDf8٭;x&QS Hgppg`lR%STlJA­Y#o_J?|@N7X\@ ~ @ܻ7{"iA77k^qFO.>BIhEśG7qڵKmϞL?<jLC3ol#mqtHv#5n:WkGE٭}|5"͗NL8wI<94`ʹWz֎NN w rٳ!&4ǰ(łO( ^^]RR6e''ʕsS'jjzYg=63;adlٳz]XkSkHܻ]]lWQߗi<4`,t[倀|W󽽈 gknF~9(0@XXvlذ&%3%]^ 9ˊ$$x߼ wl߾\\ݻdRNrqIT-n痧 v 72l{hhZZSْq 奙ʕWE<Kf,'ΞNԍTQ=Сv?ii-!gCE^ wiҥ'ee驯sԩw}}䛫W..~u2/g/(صb#ӧ(sJ47wMRS[PRݍ۸1ѣOpǁki*(w9ϟG4YP(//D'UJ#nns? ׷udP`fJQQ,/kgnݪ^>ȑ" [P1蒓tZvGlmߎ(WQ%†qHAAo:NwgLKn]YQ k`tue/]]]ݨQik˔DcHii!@r8p H$jdNNg'%Y;Τ|℉IȬ7j33ӏ(I̙"wwoOn~;F,,Nڮݳ'wgwtT.GAHqԔfee~H4e,Z$P\ʨSUUw`|ezX^^2ܽ>+~P!Y&od3q=y!MMyy.ii;8'|7eer fHOoi h&qFhl=~YxQ9;rs^1SljV_60<rİ}JދG^b3AAE>U[A AЌ͛?o_Ya|k+lShu߹vDc3))_,I@n߯AAӠ yrOϬn'HK <;Ŵ^ԑwo55M';~}ѣZeOmzz- :toѦSx Јln e=6k3VYYJJ VP~svi H攗{RNn0 PJOQq4Ҵ$G&&ik"Dł>Z#S͛ǯhÝe޾m?FGG[PB? "pBX32U۾}Mv'u6D<}ZG&KBToiG))UQEE1zz0nXwǏgކ+vo߼i _2yy.>݆ .^DlŋD"1%޽ً ZXÝe?d`'*:+?qƍH$fg?PR:0 @MVV-X1s>vnn,iJ$'|>"b wT^jx99ٱ2g^n?斱vDUώk(O|Nk?jj(mҢKIS&Ұ2dd $VUUÒMsh1,0`' ec<󘆸yy.VVi~~y&f AAs h"g@a-,d.5 ^ON;N.INf`g|(67o8(jǎ5yy.o4=|/_!z!2 eHK Yf':9P&212ҥXN,t33y ƷX1)LixҢ}}3;Ip'FLMWffCKEHesvV;$'ܽBT)u-^'.>:ׯ K q?gb JJHJ%'߄;04nnڂgZTA-AUGǯn]%'7,c<=/ĔGD88(g? v#ja Y}_x?ɤ@EEqH66}h*Ѩ(SMMi+۷)TT,@_0Hgor Twٙm==5ߵܯ_}p'`a!k!21II?xfMPHHq_a>-oo&/۷lbkPWZZg2̙;o^bׇ/+{EFڮQP AGGoUS[m[2'e}x DoۦD_1iD!򔚺nL]] ܉֬JI֥qϜGcbXUUi8cE*a`'(q>ww m<"qIqD"7f@PJJ֪PY[F8syy1K˓ޑ_d))>CeGj@a811ѹm8u%7 IDATe~fTe% ՄѨە.\x@#Xb_{AuoβeFF2&߾u6:Q§G DE=k+$ w!<`\&D[Tr>Kɵװ}c#$%&STWIIi?8wVO/bx e"2:;XZSQt :tH_K+:;1r'?SKL/*F_i g aY*8=z'P.pw}nffz玎g54;fwx9s].|ooLJT< CO/DO//dk\4脘MSZZھJI'%YYY%/Xoc3lkj(>}+2,,̘2-MxÇ/Qrv/;LXqtiF==XPm T>scUvvz3E_+{: e٥LHD~07FdϨ&x׾}KPoo][[)OEG_"1 ڵ7S?i==7feC~0M6 :4dJTHԽO]=qf%K¹I/77 ")ȑpũS7ݳ핏LZcX1=jXg˗|}U]%NN?~LxK);NX,60ԔwQƍvvi[صK2@P4/_bbEDfe$jÝe͛7Ǐk  "*:k==8 FPT͛hh'\9wϞLybd22MO HQqe"YRR`gƑ٭;ȰxWvppce㌄H$?~]Y9w;h`9uʦ'2-jiIKJĔQ9B"#յDGXڵt7stT--}G%%Gj |W,/lDG7<ׇwr:u?)tqF{'isݻJJcb^ +>CPnnꅅ޼i@sLM+aY>>Zǎ]f,!!Μg'' N| wHCc…aa9u67\@@rEEq m[rEś3gvhig$UU55M/:"wHsbuuuD"ܜA'dBz ~Ȩw=^jj ۗ5%:3RR|h )R\L؛hi>~~}XEk8(jލ/`\館8-qZddY[[:pZGGϖ-IOef:Y#wa""JlIZ|Ny;;xohh8wTHܹׯ_>\\\diToBg) Bk=L? f)8Ѩ-uu-GM=jlHY|Kd?<,w(UV̓qIIIO X55M'N\a;}40ku^L8êo50vɓؘN..^UVVA0r-^Ϟ=W\\<44a QCh#(߈44IK FE@vS9ADdVP7_Mm2ř'%Yfg?ذ!̽0//͛7޾x?|u$;p _Bb5APWע!zPn#5_p;vX.]hkk (##c!..NJJ Ů^B<1HVVoȸj*xyyWQQ!,,\UU5(*%%EJJjgϞ3g鄾>OOOnnnOOϾիWGEEAڊF=<< o۶KPPׯ_L$=<<,Y[-c0:::66"aPNϿ{nhhWkkktttNNNqqqeeeuuuPP'͛kkٓOBa"+nf)fg[$)9@u𡡗lْw:~~W~P5G).kAʷ;ʕ..pǟ,508wa}ڮ%.UXtonddddd4immm Ypajj iiiԐ>X~͛.< D"а3^?| !z1Hp^N+K,y! ۳gikk $]KCCK%bbb'!޻w/Ao߾xo2ׯ_w' y߾Dnn.ׯ_deeMRKK a\yg Gq<*(x w!Pѿ?b-yҢ==7MY9$=.܉f =ZD 0Ч,UST[L)> VU՘$,_.zwݻ^C#U[B춶^rpp Ò%KNttt˖-KMM%zORRr IX,A fkZ>>>RQVV7oՕyfeeAMMMx<~޼y>{[ȑ#ýRH$vww،i[Ý铸+6m4S9$8+>&쩫/N@Fd4"++|+WN:9 {ZX(ۗmaq܉?//ͷoQ+粲2TVU-!mYPRĆ 0_@qD"19IHq0SSSsww'x?_^ ]B yXpqq aݻF555 .]R^^~MRljÇ(^@@$$III~#&&m۶z#QG5ÝF}ӧSF 06lX-'+칹_ի/nf,rͶ߶Mx9 wyuN4IHɆ\'Pi FII5 /mv%̙;;w63[;zmm*NIaes@@ ظddd\z OOς}|^GGGAPgggAA.KlooO>=\CC#>> MM̈́+Wb0UUT0ɮ]>~Ko,!!o>{{_~XYY;;;F4jq@baa˗/_:;;i\O@?~U.Z$p˔1ܱ41s**<7o^r.DәlJl`?[ե/7+vpP 2@Gٛ::?nݨȒ[BB߽888<<<:D*6vv333IIIQQQSSSUUVq]8 >beeeUTTdddH֯_ׯkB$//HM$qqqrrrݜQ - U i:[]]}Æ :c|jzxlnqrR).~ðkYwP(ҥ\yw7GZJolv*ES m1.ׯtA@ ^w;q:YuE׷R1ՠ"06Dl7[ڐB{&B***8xQ88Ozѣdm:IVTx*([[xz^OraE]{Cv%9f}}LĢ&?ML޼iqZb.qMfTCCK54EHsv+䞝nn*3:N(*&fS$OTe˶<wCNn|bРXA Ĵ`ۭu@SSaܷo.  gW?VT*%wjhhغu( \^^,1޽{x z,yxbr2y11Y[+&'ߘ ;KA?"׿#:Na04'On7$Y2nuYE%$=.oqGMMlvw_|&@>lt '̙38mےd/^tb;r211eeeݿ˖-WLAї>pqqM>2رĉ=dmF@ {Z P( x< }#<@KTpxDmAAР )Hz gŊ  ~SI5:]V3~ lcɋutٙrs ]·\ 5F&r Oa`%2v\BOEVٙ,,WY KAvp~ qp~v~Av `̴31Ia`jjoXߏߌTQe,"YV9Z]dԞ=cڟ|}odpŋNۗ/m1׮pprR;ٽ{GN:Ez޾m6...AAA_~>(ܹsRRR=aWZA///鄾>OOOnnnOOϾ><6|,? LLLѣHHHpssڵwȃSx ;v(?NA'[u=.< k+𢥥#Ncߏ` >v ;N8uu%0KE<UBC/khD<~ Dԍ_7'(ƍUU5~KKw&++1^}mfv|Z3gv": UU5}}bW1PFII ^;;;%%%W\ nw jmmwA?Ç+**]R]]w!o[RRɓSN a%$$ppٹs-H$w%$VcII*h4'>--q~zzuzzq H@w26Nlo K*`04{l=k9?dhjJHzz^XuUVKu`9lY c'۷hk[ p[z]3 EE`i͘zW/333&&fܹ/>tPzzwsrrbgg uП>}:..NHHh!!!III6m$ (C2pqq+W Lhf*9&trtTo-)EzhhxxP˳g89ي^{4o{nLL@Pbqpp~Ge ϛ7t\LL?Tb 揯jkkP( Z~Ǐ,Y2pnF8酤@!@;wmi**zFVDDf/LHFV`DK&R44 zzp5N} ڍTQQ\?z (`R:ޙBq B})Dj=TE*mUhQȒ5/ɮЂ}ޫn9/f3̜syc,nlpУ͛o4qa2 s^^SJXLF:lH$>vR|8v=ϟn?srvۧ 7?CP<Ϗ`>|Z[MOCC UT}s_S}O?ד#z7DP@֭,jڿ_= Aa 49 +XY$/z{99b"0*(wB4eb 3Wҫu'um4D]]hSn` 32ɩ-x ݻ.~zHMb}RS]45! ,g4^^^/_ܼys~~~eeٳgO+ IDATqvvcuuɓ'mmm988xOKݽ޽ѣɧN"288';x]II~ɮ]Z^HU+ "**Th4\D" v;DcllLP{1 fڑ|<'DtG||{ٙ,-:va"zIƍ ,֗WPSF "OR"BF}|w`VN^f.-;p8©S۶54wڣ //oiig޸qCHHHYYy͚5k֬qww9֭[_ϟgeeUPPXzܥKw#G,ZܹsWܹ̊344b?xDQQTZZ8,چIO렶!ڃ`XG8a0&a˗a" Q~E>@x?bbP0cС?ڝƕ+]i`+00sRq~,(xjG&eKs^L͛6Ao߶CDΞ34 '2llL{55ǗA`=kPWΆa3l9p@_D4eb"?44e lј{r]] 98h]vTN##9[1IIWq8bJrA@)Jh4*65UP]<)}䌌㰛8njSw<吢 ==g˗u11mKPCII,!چhϙ3vv4;<hh\@*&:&&W(jZN~tjd r}})mm Z9l\ԜI$04ܹ ɇafj"D'WHGTע%8'eFFp<< aX@"3!pX>1]=_B__*3^3,,snܰKM,!>>+fOcxxaCC4nn13#H46v_?yqqsAŒFĔR;;ƍ+n~9x011X1:GPpq xb"=cc%K'< e˄rq51M4(3Ӎ!--P;_V߹S'ԞfbV;<f+*>YX㉎ y66Ǐ?޺U=9EZZjf$ "s%'WQېǺur7oYrCD4>V@kk==ncc~f޾mQ s&e'NĔ5ݸaC 8$5HHHի?~vӦp77c>R \5qqe&& T2A9vvmb[aRXǚp@^^jwŧOYPXH ==ϫRzzWa9e( j_ftG`Ess܊I$o%$}|fT-ڵ>{|=BIc4--|}Sxz/_jҥG\L]}1͕K%4)//m̥u󳥧~σQ5+Ϟ5/1o޼hkkk IGȸ`q:: :F3qpm0K2g޼y4J߻#*MUCBo|1'xC1 6zz…|P;2oۿ; ^qPTMIq61 z9k4syraffS뎎!Hӿؽ[GEe _N.1JӀ'Fk;6=͐GM FFki]눍5 o~_߉@,,|lʕ-2rpXyQd}ڐ\m5::#0ӧO4\)-]S_UB[Ԇ\IR=LJɧO_ϧnX>[$$!M#|YB;=3&p%"bɓ'nx ԃ0cbn)/o־p;Bp)L033Y#1GRsE֭F sr ݵK…ח66v9~**p8BNNGgͯ?^'TZzE+-p+13==F]}qNN= lii- ̤-j܆S ètLssP{1iiZ$u6lwwgB98h>~.,ַ=!H_<͛/Լ##2ԓ\Ǐ?Si}^S E0?CkOXGs?@ g_s>wi.-9LF& 'N59pAIOOsqݩA @g2jj F Q;1|͒㓁QP{/xbkk(Z@nPa{nn 3cFoetʊf1z=z٠6}֯_nܑ#==CX_Ss)klkj,NUDw,- zz&x{?4wqpwm313aV%%Qh/_K%%o~QYYn..YK$04o⡡JZTЙ(-2g'fzxAKsNEEV\3 `sg{@KH ajpq4t[T`˖ 6+Wy@ ur::ǯ֩Q]ԞxK$\]^^qM1ccx/k}ӏ8ne4'88OV-//˲0ER 5Y3),w #JGa@CC't2-h4JRRjG%%W>?ge[T5 iVA ݺeod͚aP;%llL[>ܸA--_nTbxx'yUT}FGܾZz~JA{=+>m~S҆d,w)[;Ϗ||ؒX{!T?~ڵս}|RFF~P\^^I+WRYYVv'3I""00sxx}mÝX Wר.tspМ:SH$UR:s)2XVv^HCE9??[ccy]) @D'QW_\R6 ,,s6o^=>N948z:/wA{U'RXQR;CY816r[z/$nfFYY)ts3 RQ9~4X}B(`inW6S?޺u>//+L mxSL> %Tc@.QWVs}Hl*B1ccW(ffsr-,✊<._חM =Kn f" M1?3^Q8wp͛6UEP;2 hymVTb¬\w\ڗf\CAPHf'++偁єj.K%.]zʴ}eʿ'6 *KKÇ#LMi9}}#%!22۶ݩlWqr;qb&@"!zP",)&C6'--߼bFʲ1(p"I8Xĺ))xi0~AZ'|Y%_/UG y Wupw?S3nnOO󂂓սXSzNZZK#"(,5hh茊*>~܈J^Fj%$]344|܊L(Nkkohh})Wר773ɇ]\0aO3[`ʂFۻW;9f)2Nc ,Љ6. \G̪֬\QQ{ݞZ=REHe댌;:^}tkvڰa˗up$ !!hnD[Zzxb\6k/98 6St}D\Y{U⬌gRR tee핗QU]?SN,T>5cjjZV;gݪURlik??.\޽yyս=iftzѫW76y8wtOgSpٍW47vg_7Q|fk{98)xDͬcp&##g0z;;'==UT+i)@$萐J14sonfVZ,ch3>Re'99hdZMͥT2))q.[?p"/fe|\ɟ^}# Vqr:#v OW(jhv II!??{r=*Ԛ" I/?71]~;k BCYXh7o#ԏ15Q9shf|2]bo,)y|MM=GrsqB%T8!A$9"ee4 VxAK{.980Mo޴@ߌrsAD˱XFG66ƳgRR033mvjf0++-jV:4 e9~< V<}Z90^2?~vs3ii5,n! II徾bb-Y"@T'88OV-//˲* B 1$)1"554NޭPMKUU#ӢE0┛[?:ՅWﻬU~(p"#))72rO[[՗C{v aCOS?qQTT9/$ujjoOQ(cxID|}SlmWRV..=kk7hcSYO33lw++>']o(w@*ϐ;;Uݲ8R=8 kjhiTa|lZ8RNM' #""XBBPZ'`]DFCcIrက-UU-\](+࠙{Q<557_(;&&;C("hn+;wF\K5>߿?tNF346g]jOO G$?xx*)ѹY,+;/$ā,`l,?w.g1D" )Ճqq^VVƪZ`E@& ==Vz+-mTRڋII&&P;/II7+# 26򘗗ejjy/qB2-*شik+Vx޼bxx}ٙV[z e"mSoh脏DviRjͻws{g'i!橫{'%_}6J ii5Q ̮[X(9y\lQd@Pjظq33ý{4;MP(''3|=Xe:;z/ڑyo^SRR(gIg!Y)f޺66*app0ޭ}n_wԆiBع󾴴ƍ+ڲeBJJD (ӧMwؚ?Ӊ1UU-[,S_HZZMzzoFGq6qq •hlaVwsљY)\nnd`8C*ZYy\P;/"#MXX9?a` sD̪U^厏Ea&9[PprvlU>>ɳPE4*lQ{R}Sӡݜ)3q/>z՚Qσ=24<'=茫km -;7fXZz&9 h@`}C葒~Sv 4(NNDh)cFGq))ffP;/ D 8 //e~ ,V3AY,E=pvOǏ֖3}!&SS66G%z5^mK#G˽ysr?'޺᝝]%*j0P1uu~**gpMegdM~~6 H HI >~Lc[filz:ps| ㄁Q^^yOw0) V3>72ڑRXsI!lj szzW zIӝԆ>۫ݾMPqNH>x``t:K10Y[+$J7>|YfH?ͥx}cb^ݺeObk}T^<B"||54.\ pG IDATǛ7!!VV3+W6k@!` ==CCGػ`1AuvߥjGWKX?Us$aZg|#vO8E*̮EE۷߹|ܹx8Ms焆wt f̳y󪎎ZJ6._~p!˧Gpt IO}p'+C߾Kcccu\).8!'#VI +mm8'8"98L``[ƊdxyY7mZ"`'GO̷6QWy FMN@C**طO76TMܹ>BO%% UT<޿گ~ǎEOg11Mͥ!!yrWy=)Qi6o*(xWCc ܛ('YGRmm[h讐QQn*ٚ>##g0z;;'==UTa5cw8e˄iH{uzz!>>}Kطtt(XdTkTTG#Cdaffpt..qîk}BC =)COR~ؽ{; |MMrsk*;ftt\jj[&,V@A&Ie姴G 3dAKK8e˄(W[̮ovGUuan}tau"mj'+ eYxgMAADODv))4ok닍-B.CSgL^nՅ˶Zf־M~>af xVֺurœ? ~ zz|BsrKNY✏O2|t0fh4J__qqNs[[Հ UVVy3]R iQe})/>?kLkk} R72..Xϟ˨2uu>>Xʕ}}SDETUy8٩[B$"zpAJJNœF$΀??;"hOQ+" yЂUR8e?z}~_: 9?NY~~ŧ6o^unYg)/" "'.Ήy;zzWKfJ˗eenm 6'%UPֱSR1+뭻єMMM=8' 3M];;u8'y51eDRqX%::"#ee煄8S^0 .psC"G5=OVBaccdbbCO '=VWwR4'=v $㓲n䯕 iFn?wμ⓮++8R0ETTCBӏHI DhhxgϔPzz̽{;ޞ:̃4|;̮sr2%rmKׯoݪfn8bBJ16OKquRP8mfv='B).ΩekDoB$"z0BZZILHڵ8.~~68N]]8uvyӮ)(襐7%$w`@HlY8w.s™ӧ:v a"))gs\OO+QELkdd*lQ+-mTFnnC^;77é^Q8OT^Nιt=TT8qbٛGmTV۫ge8NEEAt H …e˄!Q$ʡCk:j a"p>pJK3&F##4)C$|}SP0 @Px޽:ii5::XЂqCr{z07W \…Ç{]B( 2 VHI Eϯ,]*fo {n;: 3:Z %ӟN>GB<~p,r~<||swTWרP0#8sƬΝZEOՐoL%K>ܕSx̯Box#_xSX)^kk{KGG>||ԼKKDGS?OE̙8^ rC$1$mD۷PV8_]ݚB&üyNmm} Λ m#5 '޻kgFi]KVڮB FTTUTď3. / -a SS..J pr=thqq֬APJJw7>ׯX[+_ü)>>RSPfj뻑";$+q|vN-$X]ݒVW}77HR+yؘ˛DANn޲+WJ¹WHmD$$ąw0"{5}&ԎMPϟ]\Np$p:\\s?zy%9\ fbbAyrq;wr}8>6dfgisN`_~ddW?o>]$'WJIq?~u͛WyzZm8{6}ÆWEERSk;;DE||l/_@70S@!` _^lcnj$'WOs>8UCX@f)Y/&D"/B ,W>K߿_w-8r%Ǐ_<֯_"*Scc;9.B ccyccy?(??;zd%9JBBPSsɭ[/)8=yRwO zxĆ]Zy:srO-jG@h#)<-2ի%! 8kjZrF6n ?? GYY3G`55/lʅO㉗/?ROllGP NA%'vwtԮﴷ=w'OJ{{vpqݿ_#"b7++w$ A++ch. iS$?)_شiS^##-[ss""vki-/$ ׮mLL<|9 9FKCdd}!I"}؍̓L!5#L" g,ȧ6cNnܸBSs*߂Av(.7!-&#M{{ f4㄄۷_ԴηST,^ L{de'Ν촴#ᅷogpzf} vWFg1ͫv27al,?ͽxFWw?Eϻ6n |h T5}euu55^521ѫ-^NaeESOYz͛W?o_aoNGALС8AE\W 8:xx&Zl;||R54>mlFp5II坝zzRr˗/l"00+H$P(O~ =BV}iiG(/:"" N~ 'O٩ ]M}ҳGkqC6{HOﲖğnHiV5rrzrrsrϜX@Ss ??Ċ+5yy vv,-۫Q;獎giyc۶Z;vAIYYueeEh4Jmm}+V u䚛'6 VeqqmD_I)??{x#׿6̲.^|W}׮>zT$--OMm*./!1<%zppl;;U}})YF@ULL==`&lN - nHL76vCQdfmTY)&U`=&~@c$pr٩pƜ܆G@Xj"eH_uPUstԆf''ݫW7o^%$OSSp_-_7ֶ]l u21˗/02XLppvVX'"쇁NMmy|``4?]NNCjj͛/0eB+VX!" гhӦǏKN -غvv-Ȩ=qɭ[/y`ql H$k@zL"ĉ,PnܱcICM|AY#-//Rje32ƾ޲e;6n z}Y4ge<D"i2۱=5奥 tK,X@A͕ZVX[a2jjq89ΝZ_j_FL'3-65HNX'g…UR! 66&,VBBx(qeK @,c卍<)?/ b;;U,V柂E oZ{yuu 8/޽[4Lh9pbccё|( M|ի6 2B >khi-pikk-jGb'(wt;:|d`8913h#)<-2ի%)2h466W>d|ʭk1o<___?N[[j_1G8;ءBx )#?q2hk&Ǽڪ¡|l {w|'HJ`ppcq񇢢+*+)(JI #]-U IDATޭ.4`߾sMLlmWJHgd!$iÆgvМ⵵m7oojkagw?qDRFFקRd/h͛^ spW@u@//QO|("J"ݻCIYYo9UH$6&&V<{V',̩#ǣ=VVP9s]x>}C$,)%%R ssŠ.< /!*3<<=D}SS//+$-Fe8\r3<cǢ;;>Eq^Hʸz$#7~(.p9sdd+*(***!}! QGEwZPHkԩطo۽O&HJٍvq߱HjiKA__nl @rm=(##9##3&AP(?jm7!`P]8@)׮P)0畆cc%K,,)+/CULTT. (keBC -ar@PNZZɩ,UƁScc(duzFFԌhIEŧ< 𕐐Ǐ_8PN &@""NcqDzp85f$ r̙Cس|Zml&l4ׯ3i2D"5JEe2eeͧO:FWw Og'0:l)+k~1<'A/\'#3OZZXFfQtt]LL ;mmozd:biDa:HI ǿOSccK ƈFPk@ f/^j30Lppv]]GZȳ}}#wX!~B'_,G! %*8 YDDc;d 'vt \{wdJ8-q|Dl‹oI'&&]_c8\KKNYq5yCG ?EG&AMM; >Z_Qc^޻+'M#++iʟ~bXX 7*Oڴ11F*H`KK/3NǏ_٣Ud''ŋ!q+$wC B\x3~~vww0Jׯܿc8Mnz(*|ybbw]*AFMqtt|;w'^޿_AF$_KQQEmfӪUeիEM==CAA/ "~V*Z]=='\qS?# FMĄ2[i?_Lsp:h9z?rnԎ46~Ŷ> &6iW## W #œNN8O ݹ}VH b ee%1t"@d ҥ˖ IH C6HMw#_v!55k'mmldcb/|U)%%H~oݏ[޾mmm<,vYo_̺lm}͛7 Ayŋ {PE 99a"J`΢E|±ٌ0Q/}+qŽErFJPM +kHH8`L?MCG'j5WSsR7o;jjZsr;:`\TpBŋ~9===555P{# 8 '`h/BI_-'PT++ٳUSr=55#GA--ٿ1;v -V.$ڻWQUujn~?by{ .aa6AAaaVAA 7o FDRll! ;-[FZgff;S?766VTT˓ΞlvwJgΘA"~_ݻ:,?Μ1111VV46̝; uo޴_nGK_?>q튊>;A}!3NFfֶ̼uyVUS:0<33!kt%MhQZ(YBQ)-J*ZHJm/[TH2fs`0yƙ<3Ϝ|x?mm9ymm9mmyyUU*Vxԩhvghɓ:㗙g}}>۪Hmj6546RZ[ZMt:6n&趌 w~ddB<CO:5228ݼysĉw_t s+..y^4yRTTu7/Ο8|y,ׯ?xg>Om>ˀ63+_2d4CwwEg?OBB?W͛.?IIrPBƍۣ9qbUuʋ?3&GB(*JI)Ǐם:`,c++K eM͛7+++BW\խGQTyyy999*C UUU|}}UUUeee쪪cնB(..HXXXSSҥK!**گ_ѣG#B>}֭[CQTT A^tICCcDƌsaPEEHtwwGh4II۷o#/_.##3p@wwV=cnll+8Ykk눈F`ƋX:dʕuuu"""ɜ6x`???HRRRBt:5:<?*(($''cVUU%""W,bX:Ν;T*ð0CCC:2hG12лw0 knnnߡm`o޼knn޼yL ےH$I !'8|gXMy3F|9o0QW$@,-57~t|Paˋˋ3•}_T>z -((0pR**RJJʒUƹo3O|`fff1Z\%k֬ٹs'Bal"- &A ^+IIɇ_&&&[l177gټJJJJ WPP0++kuuuCeޡ!2q{ :TTT׏?>vXBBǏ>|8sLPII FvAAs$ׯ_ٳ'44C^jݻ[ݧtD7o^ttQBB~WD Vc //VN龰˗W :: ...ԩSW^}a{0nܸڧOR(F_7"""ƍ7p@ llF ]߁.jՄ}TT+'EnKBr< !DcO.).#^rhA0<رGh2,, V]&/g>^H$$DˋЏ@AaD?yw|RoH?ŋG99*+$$$ڪϔ9:tDuuu|}}Pmmȑ#޿}v BP={LCC Gܑ#G2ta ð [naVYYioo/--܃GryXtې!Cʘ={ 3+((P(8qbxK]Xbbbtuueee;=^-7 YSKKKBBbϞ=[ ޸ m>>>K,as^~lzxGc#߁Fӭg:—L ̙G<֭y0a|PTܔ71>UVvM"ڞ{UUݶoc _TssKQQՋ;ȚZjUpݶ-|i99۷ow԰V㼽B8|5B$otׯ GdY:s搿Z" Л5!V=oNPPY=amm`Ƴn:tb`` @ 4HJJjaةS 'O|-|J𐗗R999!11QUUu߿-))w^sllKSSˍ\~~#ĀywS(Lv _9?~ԝ8񀗃(ǏznߪKo\\&k0jqq͹s+5ݼjyG¬ _4};걣ՀJJJy?D7ƅ[zǏDDD~` TVV9s!T^^r3g(++ǗQ(j6ZEȥ%z_<99]>|g}}a!88ACÃ78`P_Y* aƎMTU?7^r~~1Z7̟*N%Np$N _~˖-1wW= 'ZՂ`"ҒbrJJj{߁@ҦLٿhIHd(*n*ROuu9"eew\n>?)'()/W^X[[GFFb>3ڳσf4100] bX/!'ɇÜǣw$N@6nܸڧOR(s2wX4jjj}v6|{{ˋbX#7^Ri#5/cǍ 7p`v6rȬ,&N>ݽi΃MuuM+Wё XPΜyt2''S 8D?ȑ#_cׯ~yy l`I^D"/Q caa۶Yt:xc--9Շ.Wۃ>}p J[&+{o?Kd\zΜ qz;>0ߧ8x𠭭ŋg̘9=׭[n:-- ?tɓ'2d߾}z[zuYYYN:bƌ[l`#,uu//#G())Kk";v̹x۷_y0ܠA>qjEntJIer.aes+puVJJ?|(q8?vqj'8q}ܺuKEEeȐ!ׯ_HNN-) -\xǏx7^.&nd2tI…'SSwx O64PotF?rr܊iӸ~iYffegDE֨Jruo'~7IIII1 -[\pA__?--mׯwPD¡CN ڵ+v' yhՁ JKk8ddR'O"#fršCY))飣ABBDy9tAIKKo|ϟ?Ν[VVnr#::^1Bc\~..Sի Jrr Bv[fwe0lϞqtǎF |ts2zaa}| /9r$NHwߎ@@@@@@g;u;W͚eYwСjjjn(gqq)׮][˽i<'Mp┑Q>qqqqF fytČFņ32 459|}MM_QV8p$g{fhjjY\}}sXqqa.JbbšD݆U͠@5sWi>>ן=w,ѯ= nLw=04TYY%33󻾾"/9B!І ܺvO\qTT(0 ;~df efr>';v҅ :۸1OW:*pcVjk]]P(Vǃy89rѢEwz^QtYIHz˗ْt:''WW7 p"Us۵k.Fۻ67:' zz Y: .0 ۲%֭3gV !Z_^]ۗ&Wկ\(z7S.DDD;. %8aiƭA"**rNNCBHչ]VׇYZsc"ꭨ8&>mϥj qW<{vJr;kZ'/?#RoytU][k~aa_̰a~s=~<17jjҗ.lo(~sXXm|(gfbƑW !a7װ0ToGm ?o_i޼a}0kB8oq}zHtppq{LM}ի\N}zu zݵk/; \p=*6WpBeeD8B(:۷_wˍ%NN NܷzΜ5J+W|~:1U}J~ffff4ۯqqoO8PTT~딙]n.+ɒ_b֭4}l %"Yʁ9Xi[c8X'vܽ{>~˷oG() {w3 *8o"#GjoS[)JfXs uN5077w|:/Hs{˂s s'jR+쉉 JgdΘG{(5˸MhhzzsC۷|Xwά% ܹ  ߷Ϻ_?Aw8Sӛ6QLgYLmzCCs8D`&C{.4i߮]7Xn 239PN]q'm>[ZZ#2ܸpVrrJ.W8d\sb[-mmG;;'&f;IIos>p[CC98efhtN"QSY%ȣ޸;:lϭ\bd 7ɚ$N=$ž= rV*g6vsV]S} ϯ(/a?Ņ9ٓ'YJΝs9;՗6]vt4ݶmm~Pw+ݸ̑c U߶H8pk/,Z4!О='M{bthlJO/05Qى##՞Ri[^9sĉz=Yxs/ȵk'ojn[y$kt:ҥՓ'@$N$\YnnjkWh`CGVSVLMa┚?eA9sQAAeXؚwp-[6o62kjj9p F[KJri '~bx_ߘ͛ɛ}3f`pwk220dJZZ~Ozhhh)quH<|TvtҮ]7==7n4Tdfn{ËGpi87)&~@C}߱ P@|aaM92H%5GSzzAK .m-//npă]nRDgn~H\_B5!ORwᆬ`ffhff0bF'ݟBB;w%y,|6dJaaUiimKHH$GD'o0#CլbOOs'I$~'.$.)""_qRQQ~N9Rio̘1ښ=j?uj7')2DCCoqt ǎ%oIJ-*I2DBqҒ=q۷z-\82-!;/DFkw]6kqTԆٳ|^`<=uu֭DzҏTOKM4n>'t'-F֔Y8syz8C@O)͈Ŷ͛WUtsφ=/-w]0lZ|f"hiWJ7>FB&YU|(]>D]]SnnQΝ{uek]P/]I;8jjj9x0PbS{fob11FF*VV11m}'v3 LK˧ӱn_q1/,ݽ~l^lBBŋ,-V޾͛6==ͣ7hh> 8pޯ^LBTT($/vϟKf++=|aÆ0 ţhW+( j|YJJg7MUe|V~=骕FNz8nˎʒ/ ~b$JCC7&/|>~y@8|xv ^'FF*D"!55SZZ~/7WZnAJWRRd麺g^ z4;Ǐڠ GdV=^EI88xquBB_?%@A\\X]]{ӜRS8y{GߴG+fg̜ƺp0k*)Y $EFA1Hx*&1i~Bd`aadh7kEEUXjjʻW7 .M^));0 :zC7.Dcaa'NE/?~%z q_č.֮ݳkغuh4z7tH`j7 ú8UTko?v(ͮeP2,8nb^RR0KO/5믭[[[|؛E&0H/&q}zHtppq{LM}ի\ qVsnL5ȷo<@DDio hnlRQQհSS%Ż:ܶmBB-[,ڐ!VVΝs&w۷߰8,,LP/C"::W77?|)S x9ͱcuFR[##2]4޼:|zעD(113&]h0С{߼yGb&H8thтa:S7'ި֖}uʔAvvgmnlrU&LlvŪ]j(,L60Pz.KURF/yM6K qMM-k^ N.aW88bGfd8vQ==#( n'Ksǵeg>p zz ]jjjaloٝW.ܧEcݸIʕ ;V'*jCOR;3 TQz & /o1 ==۷]׭sg邂J#IǏ/|׮X[&'857dd8ݻ>66 iio~=bݺ'Ou{ܪ۷ߘ'dϞ[,&&=߽c>o}}cMǍa+\Ξ}lgwfʔAي"G EEu=qbdW;o 3g>mxvpuEE >xӧ[R(̴| uN5077E oȤO÷n%+T] q>}0c#ahף]IDAT33";)ׯzڎ?D5Jk(Mee1c""֎r0J阵x7v:444{zFļ۾}5z /2De˖bih٥Kox@o[J9$q=33iwH+JƶmukNrq1#I ﻩH544{{GEF^hC rrJ_ʽ~MJJ~CC3@R[zyYJRK D" ,\8rxեBT*`+F߷zBu4HW:{LMthՇݻz,Z MmvfJK ̐Q^$OxpXR&N`F̙G>xp5_hi {;.=n ji3Z ZY} s$*aHMM:(!dcs!aaK>chhR[9sׇ (y 5΋X0TU<~sD7mh(k8e"ⓀpF`7}ICCӧqq)g4*ѽ_رFBB=ۛB&:ħOųgRi--tƗM }aB,: ]9m`gw4!:z͛)aa9`d2QDDXSS&.ns ¢ڎ`vă{oϝkdӯ R[xӧdT{/HXĉ(& @;w(|D8PWxquhOMM9BihhnJ?~EiL{ZZQQojkZYΝToo iD"돾JJ!$H66#GҼ{7qT*1= $ c!?!jkW:oߝ-[f;5m~'xjk?jWի'[H~~~|@$FE':"ů@D$%'Ohjii,(HzIO jj2WTXbD<~<1NU{7ժt:Wbg5myx$%}l՜@ HH_:;ԩOaFcII'MyѢ4 ÈDBR'ŋOT;ΙchXVVkeAH}79h͚ ^.[6̙& [˗VV6JId;tDCC:-ni>|…)1gX#wQaH$ٍ۳g^ahhq9Rs \"yyD;iVy@ :e7kG&F Y}}3tŅNg.$XRRme\PPBNN_o }z & QkH [dpȚTUWpڔ] b 3㉹e,[%%}k)+pɠuwt:vS?Ð2DN6E&nNCݻ@PP.22b$%EEVYL8Qw,cP\\*ˬD"H$cc;wҙwhief~_psTXX5{Q~ipq Iƫ~#y{\n2@xo%4#*fLx踸7kMMԶׅdd$aaϽ"?޹*.61cnկ%%Q~l&2V ojBʹsKJj+))Q:WO\zx|֬L?e*+KBzbFѰ{oٝ9aނ0ua(0ɓY?f?yT@h}Ǐڔ|Q4 oY?YD¶msIH"H$ӤS65QۦUh4CHSSK~~G[eMSzmdM$NoPYSSL&-@A"Gzfǝ;VV^bohGMM#t:<:~O1tREO捫VАTPcl|zw3o۶MFFO===uk ʓ&MqㆦÇ۹!ʳ; q8###aaaMMK.!FRPP@h ]];˗m[%++vڟ?6߿-))w^୛7o*++WVV"\[__RrrrT*?gUUU|}}UUUeeeSڶBNԖ!**گ_?fy)9BHPP0444$$d޽ϟ %Ck@ 899ݾ}~>[ccc\\\Xnd! ^IIÇ;ާNHHԩSEEEΝfs!99۷o+))!;z0y䬬/^hkk{{{ !diiYSSsuЏ?z?߿틋_|oܷo}fbb퍟*<344LKKKOO5j{{XAAA,\t c:?6jBzho4_~-!!ɬaڴiwˍ >,))x$N/ģL&8pNh4O`/\A┖v5 Vc!0 hm?v/~l&N422b`_TT?P(̧^tt4lff&qV,Oϟ?nhs!HK.e>^Yd]r#!Hz@!))/^ 8pĉOy?nܸ.^ti[xx[ 9B׮]׏0J7NLL ð mmmQQ1c_l7իrrrnnnMMMincgSpp!C1 qㆢ">MfŊk֬g4`ŋWVV۶Xm777[XX0 !!enuj*$$'ƖW^Ĩ(n UTTlmm'u?А߁i9Ǝ%%%q:_ܪ >E\\ё}8Чɝ:u}8@' qN@ :!2~M555=#H_@W/E ;~ @w.Ko8@' qN@ :E8L ZIENDB`XQilla-2.3.4/docs/simple-api/namespacexercesc.html0000644001725400016040000002635513273140074017042 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc Namespace Reference

    Classes

    class  MemoryManager
     Configurable memory manager. More...
     
    class  XMemory
     This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...
     
    class  DOMNode
     The DOMNode interface is the primary datatype for the entire Document Object Model. More...
     
    class  DOMDocument
     The DOMDocument interface represents the entire XML document. More...
     
    class  DOMXPathNSResolver
     The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
     
    class  XMLEntityResolver
     Revised interface for resolving entities. More...
     
    class  XMLResourceIdentifier
     
    class  XMLDeleter
     
    class  XMLPlatformUtils
     Utilities that must be implemented in a platform-specific way. More...
     
    class  InputSource
     A single input source for an XML entity. More...
     
    class  LocalFileInputSource
     This class is a derivative of the standard InputSource class. More...
     
    class  MemBufInputSource
     This class is a derivative of the standard InputSource class. More...
     
    class  StdInInputSource
     This class is a derivative of the standard InputSource class. More...
     
    class  URLInputSource
     This class is a derivative of the standard InputSource class. More...
     
    class  LocalFileFormatTarget
     
    class  MemBufFormatTarget
     
    class  StdOutFormatTarget
     
    class  XMLFormatter
     This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...
     
    class  XMLFormatTarget
     
    XQilla-2.3.4/docs/simple-api/StdOutFormatTarget_8hpp__incl.map0000644001725400016040000000052713273140076021202 00000000000000 XQilla-2.3.4/docs/simple-api/classResultImpl__inherit__graph.png0000644001725400016040000000461513273140076021675 00000000000000PNG  IHDRhp}bKGD BIDATx[LW2MZ\ZA[ F AF@DF `!ȉ@6dHvMĀAE#Z X yBXt=ͬ/3k:*d2Y*H$H$H$L˙᜜jh a6m2㺺jkkW@mmmWWe zժg`0>$$$q c``RH{%Y$ɔ켲A=nhhÃvssz*_~0FR$=<A___ 3)755uI>hz}nnǧ5%I@@!ٳ ֙Q]]-\naau%+Xۋ]6& ߿1111$$dppwΝyyywٱcGooL&JqԩS2 066oޮu&IHP* J^2^on^ %0 9+m&ɖ>rZ~IV /^Q6$F`d+Xۋ]8\ ͛72 eE _|IKKSprrEVX$vYPǭ_ð!rvpppÆ <oxxly͛7Afggwww,7g({]{"oooPxyH433sƍDquVLffZvnnq ...Zmd W%q!>>>/^$Bdeex8ĮBA9Ҋ|Baoԁ(.g@6fAAAARq:t(33Ѽrypp-rc {\qqqSSSSSSyy9ϧiBqQ )qnnn\.3gd?~<֌hTTR}aL&ᐳz4*****T:;;SRRR)XJgϞ;vzs---'NJ0Gutt$''GEEݿ_l$ i4 P*塡摋 EYYݻw+++5M^^^dddmmmrrraaCbK߾}ӧODW^gdd<~ؼ677ܺu555+$KMMJBм… ^^^~~~]]]:d2xxx'OX,J. lvXX !!f>AjjjkkJe UUUZo߾EGGp8...EEE[nMHH L[ff|>9;>>wg*XpDb2ȑ\]]HjzbbBƼ<^k׮577/7 }’2022NU,'3;;K`߾}"httthhʕ+ #;;}ffF1LE-JgggeR\\,?ѣPk(fU*yԤ18SVV666rssqq<%%ܹs/_޵kWttӧO!J:x˗5MHHHbb"UGGBa[[%qr<)) -\U!q8#GYۥK~Q,AAAſ"+.000..O#@{K;(A}$H$H$H$:^!JIENDB`XQilla-2.3.4/docs/simple-api/dir_5b066a3a11d24837d6c1438f7c0507f7_dep.md50000644001725400016040000000004013273140074021052 00000000000000557142d9719b84dd79989a9243daea2dXQilla-2.3.4/docs/simple-api/VariableStore_8hpp__incl.png0000644001725400016040000002146413273140076020214 00000000000000PNG  IHDR pGbKGD IDATxiXY%@**,".LqAppCQ[}Gqgio۴Ҵ^QDAT@T@\5, I51)b'TN}ԩ|* aCwd C 9yDmٲJQ Eϟ?@P`,P(FFFdh).. !===вgyA@2r! |._wDyyy .LMM0'.==}AAAp8xsΝ;wntt4Cijj&&&!!!!aПg|:޿``=r+**"-\Ǐ,YpYj999K.;w?E:QZ-B)'޽{WYYjoo߹s3g֯_Ԅ/o߾Wœ)))?Cdd'ON>-ދ/;v_W^^ީSB۶m˛7o޶m>||qu䧟~>pGΟ?/i">|KÇD#J`L:533!t'''&RSS;q͛vዬYf„ t:Wœ7n477 WA~~kdd4f̘k"\\\~'{{7n,^8##C$`w֭M63fŊiii".b…nnnV|뉀bI'>iӦ쀀|JUUՏ?A.F)9͉E>}$:;;ݻiccccctҸh)Y}}H`⅋BP (t"O C(+WW~!==իWwjٽ{ݻ]]]_N̯ٶ0gUU՘1cBK:t !f0 ۷oȑ#-,,B eҤI"2L*Z[[;j(PMMH`⅋Z$7L\'8ˤܢ&LOx***\.?N9=Z]]ŋXcbb>|PQQgϞ=zT!uׯ_8qW$$B׮]#Nu'**bI8Pb>>>iii?gc0ׯ߷oŋ}||"""ė0̙3;;;,X@\yFZ***j cڵj&7 nooo֭[d?NNNg[n!V`C( k.woTWW\N'أ={!g 1KD@?@JLWWw˖-A@2r!_)٬0Buvb臺:CCCBᘙ]paBt+Å˭inkTR5f#E4󦳳 B/,p҈ ~S=׷>s]63gӆ ƙH+W ֭TJQqquJJE/^2Z~~v3f{xX骲 A2R\\9.<6pᔰ0wcc)/ AlqYrr'oTݭfv>}#` 1 XNNYllvZZn mye§O[_4+@9; p pn"` 1q._΋]^^fk+K!٥iiũEY,۠ c2TWsĝv9N7XY *N tvvݹGme5Ųcl'O#P!II˖i w==IW">_ɛ׮=}y=?..T @$,#$66ΝR;;˿?LG3+rW m<=ǩ2c9yǎe~]זaa,\"Q Ax}zz͛ŏ1ÁPwh(J{gs:^=X(] TU5߿_NQ=..T An|VJL<Ų `h8Lޡ!›7Os`k=͙φr 46ddp8<|Y&& > !g'NII)47g.]'}daedp E2|3M4:,cLM .6H{Q}}a,P|!d'o=^yoC@fؘX6o *C40 ~ +mm˗bbn׹Yy ً @P٥iiũEY,۠ g}:!PX!zPWsĝv9N79BeT#xcP!UTTs;))_WWsٲ?Xᮧ%dEv#FptqM¡0dQQ}N_ϟ?I]. 2Ro_^^meAw CIL;v, `۽;VQQ?qWĻg;8'2bo Ofk;ce C PeeΜu^zR&nMʦM>,15(-rab0! +ccVyj;(erfdD _*!W>}%/Ξ8|8h/6DEerEMI)m27gNngjCewUU߬-[,>$C})88dJQיkz?[Vϝ;7w@_͞SA[Bݽ;hJwFC !/_:R..,Cx}p/--#j :cYkxQ\\?qR=iiYY/TcX,9s& C:tfW!JT;rd8yG z"?ݢEG;:<@x:J񱍌gj:T*G m; AR\]-.\ |ľqYjjQvv@ :uqq9O*ahg'"'|ٲ8AR)&}n/R)ע ';" OBeNy RUx10 #sw,@Q|'T@aC,c悂2ᄏKKQttLMCCCOOKOOK_a`03c^UUU`oǬ,yǢ(Η>ÑJH1T*+?~Xn9s}"!*< p0 S[^[YFhi3L&p8#FJCݢEKAqqT>9g~kn֘v޽IRC* %!*2ɪSN8;;㑐R]ÇLl K<{ٳgSYۥ>ABx0 p8Ǐ_f a֭8q" wwwxRl6_E*++:I"![{ff!8 !27=p @s.?pAAA[0d2]ڶmѶmۺx<ޮ]Fihhl2vquu=tBJ#|>){Q0 wrrpBjjjqqq'O|aرcnj.]TSSs5sssW`EKKʕ+Μ90ɓ# "BBBZZZbccB ,hii9v`de޽f0,))I[[ðǏ6RPPDz%@ؾ};Bh߾}^a߿׏vC~WZZ ݻw!4{얖tݭWYC7Fmd6Rl6[]]=::ĉ***l6fboz@W ##]]]kLaH?!ڴrss1 [h7|qjkkiiiNNN֗.]§௅h4ҥK 8C466;88mmggG믿Jl6߾}L n7Ew "0 r"ķǏ ݲeˎ;TUU<8sLz%Qw 8@HBCCH]ݻg``ЏvG|ct ^֗? 0 xH HZ AB0n#\ ]tUUQ fboz@W )Ctv|Jwe ^' aŋ#""lVii)>N:::t:HdY樬Duttt|^4u{h4buϗ!0 KJJrsssrrlΙ3W|7 B|AHZ||cc㜜L<9))i̙ ֋\|9>pp:::oߦ鉉Ç#GnXOdE6^QO^֗|UUN.fC4Fmۄt&] ðwΛ7OKK=%%Ż JKK{!zjYx͛7?E166h<իWfffk⤡Bݺu+>ӧ ='c۶m;r>155߿E ]7ķ J9sfRRRiiwZZZvvYP7Jrrrtto)^͛77}ЪaѣGKq,S"@mii)|e{ӧOLq]v988}׫W?'/^SQQQTTdggs>]ٗ1~ þ{##ׯxB\~MB(///44_ zq !]0 p`X1 ;;;7]vYYYuttWA ̞={ڴi2upp mnnJMM};BFFFWS|kw8)++͵GDijjIWz%1iCadFdڤKutt/?~Nwtt"IDAT..܅8qyܹ==p@ ɪ@sssH^{weʦI,ak֬a0WQZZZVXd2׬Ynjj؈aXWWjhhXt_򗎎?#~(ze.wѣG3 WWsI1bđ#GBBBL&~gFFFX/2v0IEE֦AHFVVV;vB\\%\*zE_6uc6m… nDIn,QFlڴ $WJnpUt^ d!H #6mBk.aXBBرcƍD8B۷OWWwرIIIz7HY\rЪa#F,YDxH^2eH?)U+))$~V˟!r---n>@w\n^^>o`됮ʲ522xUPdup jjj k׮*d^0 h !McyGEGG~2X/A@2r! o8ZZZUU^3p,ChkkKr'E@I嫏<(8uuuA(J\@2r! ® IENDB`XQilla-2.3.4/docs/simple-api/classATDateOrDerived__inherit__graph.map0000644001725400016040000000102713273140076022466 00000000000000 XQilla-2.3.4/docs/simple-api/Collation_8hpp_source.html0000644001725400016040000002364313273140073017770 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Collation.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef COLLATION_HPP
    21 #define COLLATION_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xercesc/util/XercesDefs.hpp>
    25 
    26 class Sequence;
    27 class DynamicContext;
    28 
    29 class XQILLA_API Collation
    30 {
    31 public:
    32  virtual ~Collation() {};
    33 
    34  virtual const XMLCh* getCollationName() const = 0;
    35  virtual Sequence sort(Sequence data, const DynamicContext* context) const = 0;
    36  virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const = 0;
    37 
    38 protected:
    39  Collation() {}
    40 };
    41 
    42 #endif
    Definition: Collation.hpp:29
    virtual ~Collation()
    Definition: Collation.hpp:32
    Collation()
    Definition: Collation.hpp:39
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/classQueryPathTreeFilter-members.html0000644001725400016040000002257413273140074022116 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    QueryPathTreeFilter Member List

    This is the complete list of members for QueryPathTreeFilter, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)QueryPathTreeFiltervirtual
    checkAncestors(FilterStack::reverse_iterator s)QueryPathTreeFilterprotected
    commentEvent(const XMLCh *value)QueryPathTreeFiltervirtual
    endDocumentEvent()QueryPathTreeFiltervirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)QueryPathTreeFiltervirtual
    endEvent()EventFilterinlinevirtual
    EventFilter(EventHandler *next)EventFilterinline
    FilterStack typedefQueryPathTreeFilterprotected
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)QueryPathTreeFiltervirtual
    next_EventFilterprotected
    piEvent(const XMLCh *target, const XMLCh *value)QueryPathTreeFiltervirtual
    QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next)QueryPathTreeFilter
    QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next)QueryPathTreeFilter
    setLocationInfo(const LocationInfo *location)EventFilterinlinevirtual
    setNextEventHandler(EventHandler *next)EventFilterinline
    stack_QueryPathTreeFilterprotected
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)QueryPathTreeFiltervirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)QueryPathTreeFiltervirtual
    textEvent(const XMLCh *value)QueryPathTreeFiltervirtual
    textEvent(const XMLCh *chars, unsigned int length)QueryPathTreeFiltervirtual
    ~EventHandler()EventHandlerinlinevirtual
    ~QueryPathTreeFilter()QueryPathTreeFiltervirtual
    XQilla-2.3.4/docs/simple-api/classATFloatOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022556 00000000000000c45a737dd7fc0846da27106f14369f05XQilla-2.3.4/docs/simple-api/tabs.css0000644001725400016040000000221313273140073014270 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.4/docs/simple-api/inherit_graph_15.png0000644001725400016040000000467713273140077016507 00000000000000PNG  IHDR3^;bKGD tIDATxiLSǧh*RViADA[EqIH"BHD$& 0AC$H*ab)-Pʼ^SK ˛ߧ3gN霡@MfM!Cuooocc㪄Yu< NPP*ņY}~JG~~‚C  X24E011,Q(eq OG'.,,>. 7oޜ922- !gϞrwE;::d,dGG|Pꑑ`?k..}Byyy666B`0$:a# joogX2BYYYUUU, @h\2!($cz\͵ BTZ[[tttRRR|T*:88 UUUPI555ydWЇԁ fΝ%%%hHkk+jޘ[644@TM yl߾0 gg\>LD>sсd+Ҽtuu###BIjjjl{BBB@y!Aa0}}};v@mGGGGGGU_J:uɩ۷o*dEpaWWʸdB4`T*522r```||\,555eddbxqq]xĉ<`bb"z6Ea0 H޽[v/ BǏA?n@{{-j"s[[* 1111:::::ߟlmmMuuub1LOOS(oob@0??CRgΜIHHrǎ{ꕚS B @Lhh[ZZZZZ_קV7g2IQBjkkO>#[ުx޽pCCCwAzz:sڵϟ?ONNVWW'&&R(BߤT%  6mrqqG|:###88ۘLA= h4qTT TZ(%ɁTyPX(3;;`0 |>Pޭ(===eX[[ AٙA}#'Rl)| trrMII9zNܿ1XR8֭[=lvvv6jOMMXYY΂N;W* uCTVVBx0d`}`!C fu!.(EGG0k++%O1yC  X2uxIENDB`XQilla-2.3.4/docs/simple-api/classURIResolver-members.html0000644001725400016040000001322013273140074020353 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    URIResolver Member List

    This is the complete list of members for URIResolver, including all inherited members.

    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context)=0URIResolverpure virtual
    resolveCollection(Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0URIResolverpure virtual
    resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection)=0URIResolverpure virtual
    resolveDocument(Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0URIResolverpure virtual
    XMemory()xercesc::XMemoryinlineprotected
    ~URIResolver()URIResolverinlinevirtual
    XQilla-2.3.4/docs/simple-api/classExternalFunctionResolver.html0000644001725400016040000001430413273140074021560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunctionResolver Class Referenceabstract

    #include <ExternalFunctionResolver.hpp>

    Public Member Functions

    virtual ~ExternalFunctionResolver ()
     
    virtual ExternalFunctionresolveExternalFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext *context)=0
     Returns an new ExternalFunction object for the given uri, name and number of arguments. More...
     

    Constructor & Destructor Documentation

    virtual ExternalFunctionResolver::~ExternalFunctionResolver ( )
    inlinevirtual

    Member Function Documentation

    virtual ExternalFunction* ExternalFunctionResolver::resolveExternalFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    size_t  numArgs,
    const StaticContext context 
    )
    pure virtual

    Returns an new ExternalFunction object for the given uri, name and number of arguments.

    The caller is reponsible for deleting the ExternalFunction returned.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATGYearOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022520 00000000000000ed6745cb70744fffae29f0f81a5bd5fcXQilla-2.3.4/docs/simple-api/StaticContext_8hpp__dep__incl.png0000644001725400016040000002502313273140076021230 00000000000000PNG  IHDR$CtbKGD IDATx{@3ҽt'T"lr~]+]Ėė.tJQdDJHɶJ ugw~cfn>Դ|r #hkkH`0գ,Xo߾ڧIRL:PlAAAwx<!!`==` SRRMioooeerJ*: S4I R hjj𛣃7V\߽{7((hūV:sPMIIϢ;::䅅V,wڵ۶mÎ;::8|r8pqq~ڵk-[vYQ8N||+VXp7nJ%.]ziܹsŊǎcb| DFFGFFRԖ,<66ڽ{mzzzhhhbb۷o#9|aaattW^:::h4ѣcjhhcGimmKKK322۷o?~<$$$!!]755%$$:t,%%壏>rtt<~8N?~Ν;G!N>%%%۶mKJJqrrr[ @ӧS#GL<~qP55pCCCL!bs|r@@qƎ_c/a+t充7nݺu׮]N}gڟ| @t(x͛77.$$޽{˗y^^^s`]" 44>00o@HQȞǻ F#HaKK%vleeeeeѡP(/^|Qӧ?ӑ#G 377-,,Z[[c###te577 MK,9yCCCC r#_ѣƈ UPݿMM A'''.+dٳ/%dhhh܌WWWcHLR7vQWWP( oll4z 1/] _~Ec^[ 444[\\TYY'حuwwl6!H,+%%%[RRRmmmmm#Gׯ_ɓYYYrѦ J_sbbbKKKMMͶmrrrPV\k׮?H4˗{󉉉ihhxiRRҢE$B#۶mKKKKLLlhhP(...9tɫVr劶vhh544|}}]]]mvy~~n~~~======f 縸ѣGfn޼9&&fÆ d2y~~~bM4 ~ AΝ[e˖ÇO l6A#p]ry$N`q+I$o\b^=j)# l6@&]]?8q"@*3hX5D/4o +PlŽ{5G\B"8?AW88VAII{x_ZPмu $PlRCox|ЯD" %۝:$έ$D"g֦M ,,(R,2ؤIkkeG^l#.Wc^juk'Nڽ;m237IP@:L$bF$ϟ ufhHDtuG'~;,b&jaVV$'\.o˖O\uuҖ-j@ AR7G^&e GDtv4v]zȑ:zCHDӃ/ (6cdD|pjX5 2n$Dx[.'@I~\}&&zXF"fͲ9sܰ;X'N8s8,^@I.;vaaFFZD"EF.d-n(HJ -pJ_c!xB۵+R~`]ݛ)Sv-_~D66Xo+Wmm^&d Xs6逢]'O9rwJGS4Z'ie޽D'IIF h*&Pݹqqk>osS^'ԩ --uQE؆ nz6+도OITV6x{[[mHp[fg%&~6 osGnFF_P)Plmْq-w6O8] 6Gb$\.o3WVwv9K&ϝ 51Um0SOO 3Gҷ喖whf9*|=`lnHɂN)&&mTW'-_~ gl67((G1x3T޽Mhiadfn;v$(9g,'00 J4fF33>;I(9PlXRRh9RCWWJ 0tժ^m2/Yk&SӦ)vd(o?x9J [tu֬I|)+k.P;u*lܩN*uTUglƍiyyORRΝ9$`ƿ|ٖI k.fMo=eWnzZf L6GFÇ}Vt Nros (6{ ?^UA y]qHRQQ͛/8Mcm wg$᫯r*yyOS&;G&8D,+6lS7SSݳg7]"rkg϶IL\MMGDEVUq(==nW:8EVYgkk 7Ҽ_y{O2*%e=H y?Qk=pK>Q/a,dҒF Vojz9򋭸o}R:DhX11ѥR7ĕ+c͑?-BIQ), D*,,Wj_pΝ;7V'a,ӳI y+UjwMʁg@(6DF@A 2 R۟I"233!jjjm۶M2E[[{ƌYAj%\ "1c֬Y*܏w̘1NNNٲMԾ6mڴ;v}ݻ7FEEM<>}m߾===͍ySRR Ƈ~Up_K6m4MMM*z=ooo~m@ xkFhJ'&ɜ4iRpp06lpttdXةgggÏ1f̘>˜J=~z^Zx<ܹsw=tΦMC""".\8LV ڗP>D+**ᦦ׮],Y,VDDȑ##""X,vF6mZ@@]CCL8~w}?''g#G اgΜqttDQ4,,L+vvv "\tiԩ̓쌌O:5f]]o6{QFt,iQQm/^tڵk -,,n-6CCC Jsssi4vB<&ڗPݾ};`:hmmy]g{jժ/_۷o_˻r务!FQ4==}ĉ<OXd p͛7XnnnϞ=+..ٳg>JKKQyXWtzbb"`ק^~a0IIIOOO 4Elj'WTT̜93""1 &M|+jP%Z(Yfڵ&&&%%%h_=k_bx˗/'WbP䢢"###g{]SSv|ڵSbgQp87n@QO?=pEUUU9`Wmcc#6O?ȏzs ??EQ%g2Ox@($ Aՙao-±$D"qʕYYYo޼~Xk{NgU__/!P]]>:Z55gϞ-^155U07~LcA^x+ ǂ1KKKZZZ\.f'Ɔ[!ۄ[qk_bkll Νֆ۷ov'##>>>}`eavàX8z<<<ϝ;7gKKKnfgϞa[܂h\\ܿogojgݞeee-ܼ;~~/[СC7t6ibbB$kjjϟ[XXMի nݺ?P}h3<oɒ%r(X,w&L믿_;v3LgE޽nXuuu>9s_|!4fp8&&&)))ķoz~KUUս{lmmw-6O#S˗/_XW^>NGի3OψQ41QQQqPP׆~~~wy={ vյbĉo{+ }.p}h4SSӋ/ #p}-55U]]ܻw@ ?ѱuI&1zΝO K8~}}}kkkl\g0֭P( 6hhh0 A/nº1ًϨQZZZ#6005jTllqo1QDDDOsww777љ1c ohhhffelP)l6{Μ9Xh;vlʔ)أl333& ڗlda2wc__zpOxd,>+T>f͚5ill?E9sc^L?~T(,|F$\^BB>ÓJrQRR<yseOD'\FO&srMLtU\^6 xI+[yFQŖ'4\$2PǏo*ڹD330)* K+gyFQŖYʿ shff)(4<-\{fd2D/77\_y/O>|%[]ݛǏQ}VF{+<z҃lڔ6jի_}sÔv񢔕((x*8 N" [b.#{J&ssEff:;GEԩ <8y_x<L46ֽx1TJryoW ?pxe_K yC!v}ͥRUeyg::Z|}1vOƍ ɰ( N/nHZ%W(=ji@Ym b@0XII3f曬 싋9zoؑqdΥf99ffaƭ[D@6\(OPrrd"6k,L.8NfFFILϬ/X oœ/<|=`i{] EQGǽ=U9R? @=N݉r^^3hOg'nz2~i^6[%g㏺wd2QtME[[Om֙r+1H$:|H@Q\.C>mjl|kn>,WQ0YY-KKkNN@@{\8MGBB45ՂQC$Ǝadmd}_ff/Z&&ʪ4pH!BBNm@/8}Έyjx%2oCdlx-10-Xgǎ%+@kBF(@}@$SW&66ss7,]#55V EB $V rh򌁁ޅ2M(-q>0_dS(N&QQ+Tݫ9~<ڵJ'-ERB]R\,'@)n=ᇫQ4@; x?|<ҥ/6J#6&xѣ ?reԩ6jXDDE&$ |?^iuuAɓ-NHu(6La99e?t|'t*7CbSE IDAT~omm_|ZzzЂNBт=db9SGuzz:m6L EFb Z:a$dӸChz%w!d|.yMi܁Ht\:WntZh{ׅBQ؆ ]:-{(Mޣ- ~Kez$ ֊tZE3oS(6q#ה`}s$PlCEɖN--u2 PlG)NりPӸ@h&PlKelB&_:-{l*NりlB7p4&]ۭ[2e233Oe%=- t\y̴8K@1:;;=ҡ#0!m ~ QH$eHH֞I ˠ,JoooX++ ./sJzzzes9///dr=<<Ν;' RA#L@d"# Ȉ[uu5R` 9 Ճ.Khll3fSvv6.fzUX3iX.򜡊6m4MMM*z=ooo~m@ Rbс9C!**%)) 477&<mE.3ŋt:1~Ncoo3{|w0_ۭX ]taĈƍKKK*9qℽȑ#86vX==]vcN08< .\yfd۷eDDDOOAӧOYfLMMT0RIFBg$X7n=ۢHVnJš5k֮]lbbRRRhBBqVVVcc˗---UUUX CMM- >==k":::㛚I$RGG?9fn؞ #!!,۳gϊmll#_j˗/?۷ ]#`ɒ% … })({T*UCrh">|ҤIwww:hkkڋEP*Ioy Q?_W^^^KKh+hT,6:nii/oĉ'O,6&ɓ.{MAch42|A:۹\PeXBUUUXr,2JLnggԄ_vmԩn*((@QPdXl4 @ŞeXD"ѣGϬ,~@~~>*R~Bmb_y Q?) y`*OWVVb!555SNGpppڳg/^蘚GB[ZZΛ7֭[:::2,t;WSWWgffhѢZQ#BSBACPLLL?~,XZZrp X6 Q}){Kbgg]{ȶ,W^,\p֭XÇ*++%YVVAww7̤hׯ_t)v3̡|NӋE)6O ˖-;t`NOOgٚ&&&D" v,]@ц1 Q?Gɲ&6qK."##sss۷K΄dX,55(6| ۅ  "ɚ͛KKKwرzjS+Wŋŋ?~ݻA) yoy󦿿QQQyy޽{=dWxxxmmG??? Yutt`0RIFl"gIzkExVQǎ2e BQ4;;̌FXcǎ֞={3gl(>|`ԨQ>>>BQTkkk555;;\@`@"zLJJ222 L`0֭[GP ;;;P2φQWWnnn3cƌ/Oh4CCC33-[`^>͞3g6(@ C(7䇈)rD,! h+{uҪhT*$}"tg8  El,[* J(6]]ݐ9ADT` AR{XVj XQilla Simple API Documentation SourceForge.net Logo
    XQException.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef XQEXCEPTION_HPP
    21 #define XQEXCEPTION_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xqilla/utils/XStr.hpp>
    25 
    26 #define XQThrow(type, function, reason) throw type(function, reason, this, __FILE__, __LINE__)
    27 #define XQThrow2(type, function, reason) throw type(function, reason, 0, __FILE__, __LINE__)
    28 #define XQThrow3(type, function, reason, location) throw type(function, reason, location, __FILE__, __LINE__)
    29 #define XQSimpleThrow(reason, xqfile, xqline, xqcolumn) throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)
    30 
    31 class LocationInfo;
    32 
    33 class XQILLA_API XQException
    34 {
    35 public:
    36  XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine);
    37  XQException(const XQException &);
    38  virtual ~XQException();
    39 
    40  const XMLCh *getType() const { return type_; }
    41  const XMLCh *getError() const { return error_; }
    42 
    43  const XMLCh *getXQueryFile() const { return xqFile_; }
    44  unsigned int getXQueryLine() const { return xqLine_; }
    45  unsigned int getXQueryColumn() const { return xqColumn_; }
    46 
    47  void setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column);
    48  void setXQueryPosition(const LocationInfo *info);
    49 
    50  const XMLCh *getCppFunction() const { return cppFunction_; }
    51  const char *getCppFile() const { return cppFile_; }
    52  unsigned int getCppLine() const { return cppLine_; }
    53 
    54  void printDebug(const XMLCh* const context) const;
    55 
    56 protected:
    57  XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine);
    58 
    59 private:
    60  XQException &operator=(const XQException &);
    61 
    62  XMLCh* type_;
    63  XMLCh* error_;
    64 
    65  XMLCh* cppFunction_;
    66  const char *cppFile_;
    67  unsigned int cppLine_;
    68 
    69  unsigned int xqLine_, xqColumn_;
    70  XMLCh* xqFile_;
    71 };
    72 
    73 #endif
    74 
    const XMLCh * getXQueryFile() const
    Definition: XQException.hpp:43
    const XMLCh * getError() const
    Definition: XQException.hpp:41
    const char * getCppFile() const
    Definition: XQException.hpp:51
    unsigned int getXQueryColumn() const
    Definition: XQException.hpp:45
    Definition: XQException.hpp:33
    unsigned int getCppLine() const
    Definition: XQException.hpp:52
    const XMLCh * getType() const
    Definition: XQException.hpp:40
    const XMLCh * getCppFunction() const
    Definition: XQException.hpp:50
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    unsigned int getXQueryLine() const
    Definition: XQException.hpp:44
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.map0000644001725400016040000000067213273140076025156 00000000000000 XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__dep__incl.map0000644001725400016040000001425613273140075021652 00000000000000 XQilla-2.3.4/docs/simple-api/classATGYearOrDerived-members.html0000644001725400016040000005024313273140074021240 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearOrDerived Member List

    This is the complete list of members for ATGYearOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATGYearOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const =0ATGYearOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGYearOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATGYearOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATGYearOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATGYearOrDerivedpure virtual
    getTypeURI() const =0ATGYearOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATGYearOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATGYearOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGYearOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classATQNameOrDerived.html0000644001725400016040000012214113273140077017602 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATQNameOrDerived Class Referenceabstract

    #include <ATQNameOrDerived.hpp>

    Inheritance diagram for ATQNameOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATQNameOrDerived
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * getURI () const =0
     
    virtual const XMLCh * getPrefix () const =0
     
    virtual const XMLCh * getName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATQNameOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATQNameOrDerived::compare ( const ATQNameOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATQNameOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATQNameOrDerived::getName ( ) const
    pure virtual
    virtual const XMLCh* ATQNameOrDerived::getPrefix ( ) const
    pure virtual
    virtual AnyAtomicType::AtomicObjectType ATQNameOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATQNameOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATQNameOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATQNameOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATQNameOrDerived::getURI ( ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_22.map0000644001725400016040000000030413273140077016455 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_10.map0000644001725400016040000000031213273140077016451 00000000000000 XQilla-2.3.4/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.png0000644001725400016040000000771513273140076024316 00000000000000PNG  IHDRp ־bKGDIDATx{PSב X+Z+ֶaX) H:hiU["QEW-*` `T!$q~1wٟvV^u9gy$m (444 qqq|>_[R0% I(6!͍fkCFܽ{w…tE@@… ߨ(k.^g``g``g``g`(@ˋ3w}wӦM,kRJ3Z[[CCC\f)6wމUͪy49f8p //۷vY+VѴL&388X$TCN:e˖ިa4qŚ4iԩS_>#˻G4QTTIzxx|NVZ` ===cccj\YY *XQQdɒ/RATz+W\RT)˗?˗_|| ^^^իW/F&eee^ᤤPOkŴTرcGZZUH",[j0 ˗S۫r吐rb1]ZQIgΜ*++4YM!BÇ333/^ B𫯾rqqΎD'''O?MMMDAzzw}W]]տʵk< jW>}WUܭ[ZYYSRR\Ç@)-wYY7 ̙3H`mm#:SSSSRR_~رcׯ?qĚ5k<*8`C\\\ޯ3֭[ Gٸq zooD"!IO__ǧJJJ6mf#d2?cQ!**cĉŜ;w.<}8$ѣGt^Uph&Π100244LNNNNN7oD")))X,˓Riii &L`ddr){<{r ԔVrX,/T[BCCU޿)S8:S>>4772LOOɓ'Mssfj3x M&]]]Ϟ={Y{{fY,D"J ˗IN(P^^NY u6322߿XPP0}}}@}%Kdff677777mmm̙3ѣtPUQ!O(fD D;v결Xtev3t==828  v v v N+:0ڥiuccuyfE33(.o~_Z̛m-:^gȥ{Pm-v@KysWP H-G'3v, [^ն;bqcI\"1zzu'tԂM.bj,J:^۫]Ivԟ>ModRiӫ_?fF3W~9BiQ0ڝp\\V٩-I:hwݼp|\^7O( מ4$I>y@%uyyL${oXN1:F_9y25d2x!}K- gϢVm F                                HMټy',=i[p`05޿O􌋋FC{!M@@P2`tqg4UD:aaa^E1#bmٲE$geeuwwϚ5kXe4Zv\.鈦555o4Hbff6yd+++//|GGG.;2u7 ?:iҤTɯ^"$$$섄DBKKKmmm]vYCCC jKҤ$[[[330i>s8}9Xlll|9dQj{5S?dff+ O1$ÇM8qѢEgϞ%LCFb7= p3hllǫVO666*joYfmݺ`ҥ@ ޾w^wwڹsǓ$r$ ---% l7nX,:-ZPUULddddXYY?ҥK ؐ?y;Rtgj+W$K*iӦ j|ҥ3gRԐ$){zzd2YYYaԩOQc.?~I ڶm@P$ɓ'O:88 eL>t'N28B;?gXZZرcXXX7i@__!22Ã...UUiCC+Vx<77[n/Dcc)j*N'_]-䯿>}:wssS!#ʛ^A]Ԕ~vvvVUUQqI}}} iii]---{Q?889sf^TUT$:~ ;;;j,JՕS޽KgW!#G&Jc/^7n\jUKK˝;wΝargg'A%%%P]]4cƌGFFTZ ѣE)y֫WXںKŋ766^~%%%z ȑ#ϟ?_r%%c.\xIiiԩS @lȀPK$>dRkDEE*5￟4iMZZZpp0D񖖖FFF$I*Ud2n_'f͚5mmmjPUrrrl_~)Iܽ{7rrr*,,dd2.dddSXXhff !;(QTTtm&Ǜ9s&28BCtMSSSZ]]- vܹn:dP:GBbbP(p8 jͯê3lqIj7i>``g``g``g` Iee 3/Mt{O隿jo4444Ͻogf(IENDB`XQilla-2.3.4/docs/simple-api/classModuleCache__inherit__graph.png0000644001725400016040000000700713273140076021744 00000000000000PNG  IHDRp0d5bKGD IDATxkPWOBX r (2A8Ve@RAPhGT*:RZ-&V]hib>-V@~l!7{v='%a!$=:NdZ8vwwk*ETjZZҥK. $E2K.㳈☘[oJ$*P(yjjjB/r tKLJB<|ps}&BHp>laa144!f2" MMM|>֦t'AɅ'CLMM qqqRoooVYYᡁ,)Nd| B!P"ƚ-Z(66V"~ŋWWW'&&.^488VVV:;;h4[[sARp†A=JѸ\-[L.c%6lO*S¢MMMΝ;t҅ :tPHH:pX,VUVbk766>kzq 577 ?㖖_~9!!KNNN---\.566v(PHl6CD(8qBepNNi>; l600=ML [ ,0((hڵ---+VHNNV+W0 T !,((prr?%sihh%99/tttxtUUʕ+D[ZZ /bYY޽{(>{ɡ!\>22"& \i&*clkk裏 o^2%l)$t[[D"RwŢʖ-[(ZXX;v{~'T*/c(6ntg(/ohh~ʕ)§FFFt:ˊ;VSS }7oʂ T2&NcwDb1VBwB߯5]Ǐ;Ukkk<+0;l &FD"!?{,J,|2zzzLLL!iiiײ(s8CCCӆĔ 6xxxd2D"qqq Tj娨˗X,)t4}kvttp\''D%O(OO<}W/֝---s?@sN1::Xll,422 O&FA +**WywY9蔔(lMM J-2z 2&&?SlH}}}@TC*]hu}鯯B'366ɓ3g\xquuujhh7B9Ãr#d"'b@z"'b|qm_$<(^[Y[[k:C16^ M1[nubPv͛OѣEh񩼼+4:*OR _c7ntԉVy?22@4:*O!EeWMg6ǓH$v.}XGi6%5=~x@PJK4zO ::Bׯi0%5%E(*W,#WS)-TYZ2i\Ɗ\.}/^S__H 0*OeeݤDQyqMgNІGH2K˅H$*6죶/01lvƍ+5:цq̞np9J:݁J}AY&&&ff >öx(&%%w7ΪOBjkkgK̭'P0>>bLg ===,Y n۶'22ƍ\g;wymoogGFFP`׮]4-))f{yy9rB>hίU_y=͛7W\YWW7WZuAlƆkPzYSS}S ǎ۴iӖ-[233%\.tRpp{}!Np(e(8j!!!oݺn:?? .d2Y~~~@@͛҄B!~S8w̹+Vblmlltss×fddǏ߹sŋϟfөeee}gB/YDq5}}}333H$JLLtpp(((سgONNpII IKKKOO*((rrrrss\1ttt֬Y֭[  6E_XZZܹ222ݝ`FDDLW߿nX;zzzyyyc0~!446>> _? 7q6T^'”=%L&P( `gg5U _x?S};Res|\bC|rcccA_xμ̙3 ]&&Vwe@XXXssѣG[[[;::曲]vR)H$"~Ό)vJes<}b***|}}ԩH]]]// ARiff࠽Ǿ낂艗aaaN P(k֬ٽ{78;;;333))I,/YO?]z5`{IMMWTT466vիWc 53|hQQQ@@@uubRRR-ZTTT4X1 =1 =1 =1unJJ7:_믿m6L%1 =1/; k<IENDB`XQilla-2.3.4/docs/simple-api/classItem__inherit__graph.md50000644001725400016040000000004013273140074020356 00000000000000d56b30975b9b63ff04dfee0052afbb11XQilla-2.3.4/docs/simple-api/inherit_graph_15.map0000644001725400016040000000035313273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/XQException_8hpp__dep__incl.map0000644001725400016040000000066313273140076020637 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_12.png0000644001725400016040000000354613273140077016476 00000000000000PNG  IHDR%UbKGDIDATx[L*'+XjB7bST*4 5FV @J $bh,0M1hP*GMJځ̾X{wNᯠs~ߚΚ!PYQh7pEEE0fC),,,,, uw͟۷?aVj>4M-h7Kڵk-i4Dd2N[r_"BGYUx<-˟+#K ^/[[[LJJZ<ܹsAƨ%zzz)L&S*ԲG|yH9Blubq+vf[2-#Kz~׮]-~! k׮ǏOJJJOOh4'''aΝ;GFFڧOn޼9..N$H tb899tzz:Th4 ϟ ˗/bd" rM6%''յH$@P]] ~VMMMMIIj~\bl@h4r̖"#7?D"ijj"2;;|ޅ'cqq޽{}hNNNMM A/^HKKp8ﯯ&'t\l6ĉ߿`bb>;;EQպuVFR82fX,w~jXAQn"| %AvX,V\\"C~pcߧN*((q\*Q[[+ R`~~~~BB *))ILLD/^@ PSS֯__VV# k֬hllTT)))sssfݺu@R9Nbx<7ntD ;j "rjիO<933C. |FJR6- B˲aOmmm{hn9ԂZ~S ojAM-94\222G-L&O4\mEiS ojAM-hſ+օcIENDB`XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__dep__incl.map0000644001725400016040000000117313273140075020524 00000000000000 XQilla-2.3.4/docs/simple-api/ftv2folderclosed.png0000644001725400016040000000115013273140073016601 00000000000000PNG  IHDR}\/IDATx]MO@~uؐlp]#]PYEC\9y`xC &=qvZv3m؃vLN}}ޝZA@n ONp xKxj8s _[D'yye+ 7#rNlk* 0Ь_d_(Öz=xvhzP-䍒̪u$\DJcB4.:Ϗ-}LE #gN;B6䬜@p&h>p9EEάʑ"un$R"?{<%PNt$߶+^<"2Dqq\ҙaA"ԵP}#Ez{.8i p(ADwDE߂z;Kק8t q:uvvݛvEn{MFXgfZ֝*ߩ:jYq#3SWr'  IENDB`XQilla-2.3.4/docs/simple-api/classAutoReset-members.html0000644001725400016040000000645013273140074020114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoReset< T > Member List

    This is the complete list of members for AutoReset< T >, including all inherited members.

    AutoReset(T &orig)AutoReset< T >inline
    old_AutoReset< T >protected
    orig_AutoReset< T >protected
    reset()AutoReset< T >inline
    ~AutoReset()AutoReset< T >inline
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdInInputSource-members.html0000644001725400016040000002474213273140074023444 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::StdInInputSource Member List

    This is the complete list of members for xercesc::StdInInputSource, including all inherited members.

    getEncoding() const xercesc::InputSourceinlinevirtual
    getIssueFatalErrorIfNotFound() const xercesc::InputSourceinlinevirtual
    getMemoryManager() const xercesc::InputSourceinline
    getPublicId() const xercesc::InputSourceinlinevirtual
    getSystemId() const xercesc::InputSourceinlinevirtual
    InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    makeStream() const xercesc::StdInInputSourcevirtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    setEncoding(const XMLCh *const encodingStr)xercesc::InputSourcevirtual
    setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSourceinlinevirtual
    setPublicId(const XMLCh *const publicId)xercesc::InputSourcevirtual
    setSystemId(const XMLCh *const systemId)xercesc::InputSourcevirtual
    StdInInputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::StdInInputSourceinline
    XMemory()xercesc::XMemoryinlineprotected
    ~InputSource()xercesc::InputSourcevirtual
    ~StdInInputSource()xercesc::StdInInputSourceinline
    XQilla-2.3.4/docs/simple-api/ftv2cl.png0000644001725400016040000000070513273140073014537 00000000000000PNG  IHDR}\IDATx;H#Ao4ႇK ,m vڞJ XY B|drcvoİ 0Ò3ͤe״1X8nQ88֧3*rb-$P1@Z-#011HkK wO@!fuc;sB[EA\>]Pzf| +g5b i5mM_q,cod!,{Y,zT8H]𤕘7/8Q!F~6?Y A@Ũ.@TYr8*>?e[6xIENDB`XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp__incl.map0000644001725400016040000000007313273140075020017 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1InputSource__inherit__graph.md50000644001725400016040000000004013273140074023755 000000000000006c794acc6724fe5bdb3be563eec90af7XQilla-2.3.4/docs/simple-api/classATQNameOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022512 00000000000000a90ea73318c526282a3ec81eac0ad373XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp.html0000644001725400016040000001233613273140077017324 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DateOrTimeType.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for DateOrTimeType.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  DateOrTimeType
     
    XQilla-2.3.4/docs/simple-api/Item_8hpp__dep__incl.md50000644001725400016040000000004013273140074017221 00000000000000dc605cb6f5061c43bfc9cd0b32e71fb4XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__incl.map0000644001725400016040000000241113273140075020133 00000000000000 XQilla-2.3.4/docs/simple-api/classATHexBinaryOrDerived-members.html0000644001725400016040000004713413273140074022127 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATHexBinaryOrDerived Member List

    This is the complete list of members for ATHexBinaryOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATHexBinaryOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const =0ATHexBinaryOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATHexBinaryOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATHexBinaryOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATHexBinaryOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATHexBinaryOrDerivedpure virtual
    getTypeURI() const =0ATHexBinaryOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/functions_func_0x73.html0000644001725400016040000005622613273140074017335 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - s -

    XQilla-2.3.4/docs/simple-api/classNSFixupFilter-members.html0000644001725400016040000001775713273140074020717 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    NSFixupFilter Member List

    This is the complete list of members for NSFixupFilter, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)NSFixupFiltervirtual
    commentEvent(const XMLCh *value)EventFilterinlinevirtual
    endDocumentEvent()NSFixupFiltervirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)NSFixupFiltervirtual
    endEvent()EventFilterinlinevirtual
    EventFilter(EventHandler *next)EventFilterinline
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)NSFixupFiltervirtual
    next_EventFilterprotected
    NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm)NSFixupFilter
    piEvent(const XMLCh *target, const XMLCh *value)EventFilterinlinevirtual
    setLocationInfo(const LocationInfo *location)EventFilterinlinevirtual
    setNextEventHandler(EventHandler *next)EventFilterinline
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)NSFixupFiltervirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)NSFixupFiltervirtual
    textEvent(const XMLCh *value)EventFilterinlinevirtual
    textEvent(const XMLCh *chars, unsigned int length)EventFilterinlinevirtual
    ~EventHandler()EventHandlerinlinevirtual
    ~NSFixupFilter()NSFixupFilter
    XQilla-2.3.4/docs/simple-api/dir_79cff32a5bbdcaef902b8e39ed326038_dep.png0000644001725400016040000002475313273140076021646 00000000000000PNG  IHDRNbKGD IDATxy\g''SFjւ־V*E+TӵhKWzԮTj[֣E+jW p 1Y LL_q2<g8vdr @A29H  $dr @A29H gc{5g$$$?122XʇׯW=}B(22v rSL8$dr @A{n/l$~.v+ɠ?\v+ɠԩcA0! ðo?*,lk tqOSĆJFnݺ8 ^xűc^VU4;뿶?p`ƍ-?}pѢ%KR/a١g\xUju37V >yqgOKJJDuFBqiiYii )A(;v^,DbB͝agg_~ٷ" 3} ojj6,܂m5MPYofrbۆʻݗ)oѣZj6HU-]h6l~/O1#OV:u'Ν쳿w_V۪iBaKKˆ h T}7juﻸuYYkkkzkQre?嗟ed gg>^oo)Sϙ3Wݟبe[{??Db:8v{菱W>dr :Xթ @A29H  $dr @A29H  $CO^ѣ [A?.>ۇcǖ#G{y f!4;r$/>eHY.\~4B($dm5$t gOzUǟZYU7g̛͛wMijjPQ#lu0Bozy | DS&Dn)0P(,.Vڤ%*7wףG^R˱~˵_2kiiNIIرISs'ð]ZS'l6g+ڪKR4 PCC=Ù6->?`}}NV`)H\\gg{3fLmٲ{ʥ^6߱cogR1M6M̒85u1:%?MI8>yg39H  $dr @A29H  $dr @A29H }7ql6d>zTi}:<\FeG*t򴈈HڋCXlQǭ3&,\$+Vىj''޵B0 WSY092rdR_vCTSY&ׯ?&Xl/rAwwg#Fvͤ>7=zhNNGIK !D= .R>CP$''ϟ??%%2b#tP2M&J7l@cӨOu:\.+q|ܹO>*F]ܬ|Wnݺ~wlB28NTT$}gϞɉd JKK_\|Ќ/n,B,^xII B>p4 MK/3t:݌3we7#.YM3pvMK/O-_vCP{X,JoRa7&X 4~ .L !Ln( JzD^ ڿJJkkkyy9}-,҇ za2*zd[ ŶVo!JݴiSR[[[H{ I7ĆL&#Ė_m߾}UU?3P( Vy '~[Ϝ9CU'O -a .Y 111j=T`Ͱh"Px\.7**ãS7`񩩩, KWhd}aj!^a׃k9HzUD#[M/aa˗e2ٝ;wh@]]Ǐ< d2ٍ7hil5 N%t򘘘GZ&I*""A6é[MMM;wZ|rEB!,G&UWW.M&ԩS @bŊ[ " G#""8iil2'p8#G+Wp `'KV=tN3l_|Ņ R)30[Fɠ'\.!w'33$.S wss;d?~\[[KcR4 -ƒ|Np~풒ޘ.Y 2 7oR]tJlG>lnnvrr~y(~zAc)TFFF@uFpPyy_|Ac3A7[uA8p4h7&?gc +A%+awܱ8$hg477[Ս ݿ>#44޾}20{{{[nX FS(nnnF]Q}mS*!!!}m0|▖K6 $hJFXXX[[ 0V-++wIDsBdĜ'R B!1n( ( ///GGGK.J[d@2cݐJVry0ߥ'J1 #d$8d% 2[ d[bfEQ__#%C([Gt&K.EݻwݰBP8n BH*d! êi,J(J>o*ڛ&GF 4خ====<<Ӊ8Ύ;:pO?tϞ=...˗/'D{족&S(QHHHQQai<a3L>r<222##x011- !PWW_#nZYY7fe0k֬ɓ'_N7~7PiiEkdHJɓ'G8Bڵk8T*j@ 5 azѕŋ_N7瑎?nZ`URbpJKK8g_#\]]Ϟ=[PP{y&L O,v0eT*$j4* R677cVΝ;eZ@SFcd RiQQk@6mZfffYY\.4iҦMz<MR1Vcgݻwd |}}lbKV =H P*u$&0|Jd/Y ,> ×___AVABB(sּT(~~~vvv4"v/O3gZɌ8߼yC"Ynjcڱ\|}}Y|Oe)kgqZR9j(V駟XY8#++K.;v6rJ^i"Nƈ#&OVj5[gDjXݪʺtɓ'Y?; Xn5j /zjVjW(vvv }|ն .t\4/YvR2B}u10g?~|6 ~~>I$򥚍%!4{l//kZ{t:֓0`$@7<|r")wwwVd ͛7`[ B1h UA;T-Yd֭Oa k}B0l˖-sܢ"GgϞ ^BrimmelJPwwd-\pݺuUv</((eddlٲeΝԋU(WT!Vd̷ܹonjjJLLlNQFS]]m%GGG PFFǏ;ƍ=R,\__p$>>>IIIk֬ikk3(EZF '''H-[VVVF,rԩS [VV}")gggg.000!!aՃ>y$iiiyw?ܹs緵睁JQ?+aI&ϱ|>!{z<*$$D(jZNgXUUUUUUPP-899DNINN&>E66̴CCCIp8qqq4QQQqqq׮]C2AhnnQF z=ӒblbNNN|>߿c!2 ði"##ihylb wĉc(&szLC0Q~N8 /tϧ2MlXXXT@0{CPS8tvvvG%"(00Ǘ/_Ns+ME|s/I":!4zhÁwaeqR5773YiIBH(>|8>>7020S1̴T+G|M¾*!P?L8d2.>iV APxСI&x1I""">~ɒ%o1Z[[&!$ <={yy!X3{JIC#Ӝ={[8nggWPP /3f̘1cFݳ˗G{\.wر2ٙaaa>,߿yyy=* n(vN}݃dr:" j :p8&*@2l /Z ɰ q  @ @  3@GSRgfrttd!]*..kV +s{?)@9$10ѣW#ӧO\p_L&ņI 8Ύ;:pO?tϞ=...gu:]zzGzzN3f_|R\.7-- !]]];3g71Cm%86bweϰbɵߧ,_|̙3B0%%~Or<222##cժU'Oqȑ#Α8DFǓ&LPRR"ˇr-!0pw#{ܓF6 \xkk^믿"J%!baⶆRiee%Qɓ'GQXXj}G@Ѭ]^"xo&9tPPPP?CPQQb2Z K/0fFIRP(T(oVCCCŝBd:_T*X,6E&988\rܹs7nq W]]Me1zA2lӧO|ɰUUU// ɰg8WWWC2@G cHӧ!8>:z37g HcA2+s!zUE>f̘0`3i*3g  {i4f̘ya'c}_nn.ۭ h'N8|ڠRf}ruu1cQ B1 уT\~EVjliicjHFF5r-[R;1Vjyyy?fI IDATjJ% UC2z׿qǎW]VV~{@2z֯_ٳgoݺe{TVV A2(Zp?peee 2$ &0?-** fR$eee!!!$W^yg۶mըT*z}Iɠ͝;wH {. b Fx뭷򘩮O$1S] # 4W_elZTT֩A2zҥB{.$fƆmݺJ%[&a ݻWV[H-INNwh-7oD >ܢta4GGYfm޼XvBn޼9x`V%@2L;>}rU˕#H) 6~x(-W~ &JMMj]7Nd///'''UxkkBdؤӧ{zz .uyÇ>|X,ϝ;רܹMF_.YYY jmm+MzQ%ܹNJSA2Lw}>mmm>\x1<u/2fdeԩ>lW]!XZZjT_|[ZZݍmi f駟W#UQQ;zӦM7n۶m„ `j!CteΜ9"b899֭[T(555#Glɓ'>L{u9::ֶ8k֬&''O8z}@ hnnVI- s`F,"leD2a„CtuqKիaaalݰcqs-((}6-KJRb9AAEϟ7( î_e~Qf3lL&ٲe˳>;q@&'';883X gz;w  d3|p:99q\.rrr0`5kΟ?aO&G Ι34LJCmˉxtd]]jV* <dpZY $%%}]J!a 6mH-[h"-0 tpߟg2Jy9*(@bǒG~Xtq  $dr @A29H  $dr @A29H  sQ///F2d1ӁNKOOHOOt>>>ˊ+|||\SSC(P~~~xxH$ سgO^4‚q ?lrrٳ=zi&''gߗ呑ĬH/3gV\*oݺ5jԨjhhۺukee7|׾vZҢ HK~3?h4+W4lJ'O1cJ:tx?0|ZF0^׷ HK~3VZ?~laV⏡jwoݺչG8~…^{aǏ'4UQ;%Pi gIyyƍ_x%K6+Jh DR[nܸzꮎjnn0,//OVϝ;wʔ)Ҟ?FWEv誄cH`:u*??>mڴ̲2\>iҤM6?7Xl۷o߾h"Yp8jޞJQ`zElW_EDD? j5uuuo~rI$DFCl|  Rȑ#UQ9:@1&f>QFdr @A29H  $dr @A29H  $dr @ϬoBHH`֧tsIFL 9olh̘Λ̽H0 $|7qKFIENDB`XQilla-2.3.4/docs/simple-api/classATDurationOrDerived-members.html0000644001725400016040000006431713273140074022025 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDurationOrDerived Member List

    This is the complete list of members for ATDurationOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    add(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asMonths(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    asSeconds(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    asString(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    divide(const Numeric::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    fgDT_DAYTIMEDURATIONATDurationOrDerivedstatic
    fgDT_YEARMONTHDURATIONATDurationOrDerivedstatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getDays(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    getHours(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getMinutes(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    getMonths(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    getPrimitiveTypeIndex() const =0ATDurationOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATDurationOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getSeconds(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    getTypeName() const =0ATDurationOrDerivedpure virtual
    getTypeURI() const =0ATDurationOrDerivedpure virtual
    getYears(const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isDayTimeDuration() const =0ATDurationOrDerivedpure virtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNegative() const =0ATDurationOrDerivedpure virtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    isYearMonthDuration() const =0ATDurationOrDerivedpure virtual
    Item()Iteminlineprotected
    multiply(const Numeric::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    pattern_DT_DAYTIMEDURATIONATDurationOrDerivedstatic
    pattern_DT_YEARMONTHDURATIONATDurationOrDerivedstatic
    Ptr typedefATDurationOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp__incl.png0000644001725400016040000015514713273140074020721 00000000000000PNG  IHDRs6bKGD IDATxw UsmBVHH#ѴG!%Q"QHӧi)J(i mi6deW||$Js8}}CQ(a:P *+0 UVVnݺD"aPtHH) c'>>~Xc˗/%%%}}V@;w:sw:4 *+0 *+0 &@+bbbWZtRʚ{~ٳgWZG111uuuooo_:bmmerrr]9@wweeeuuu,Y:`3CC#h066VJJjEEEEsrr*ܹs,#Ϗ ɓ'%$$dO===xyy:o߼W^-))YQQqܹϟ 4␼NNNc c PQQQ]]iӦJNNN!!!!!!J?O!" $$$""w^ *D ё ohhs8===G;;%++p Q"""88˗xݣmɩ=qqq/^tqq >}ٳ6mlooqƁ˗/0,{o߾勞 zzz#nH$fggJHHL4-##c}||UTT<<<;w[NTTtҤIW~ُpd2驩5t5>`9s洷{A,sssʣR奫+,,}$&&GǏ?z(u`ALLLbbb455nvww_rQ:twccPEEžjǏ'OL٠r'Rz0, 0VPPbjjLLLjjjʆޱ͛7;v쨯wttDĉWbLLL(/-));O}mddy={6mq ˗/oiiYMM̓EDD ϟ?`!-\ӏ=jnn~YTTe[nuvv}2Oɓ'رc͚59rDCC︃211 666vvv\r` QgX@TPf .0qYYYJO SMPYX6 @U x|ϻw oֿ֕PRR܉ ;UAe#A$kk[޿o((w>(;;55i}}%EE׫V:,PTVSۻ k޼.,y/udQ%%q;;-%%qee #Yn&ۋᾛsJJJ0Ǹ":;{j߼MuAAMyy#|jj2SJ*)+(ȃ(Ӛ2Djvw*A%%%7k= *+T^XP𩠠&?D"s))IɨI()cPWw:=5u\ܳZQkkŋgJK RAee^D"ꂂOo|H$ϣ.&.. _#@ڧSB_~;w KKunnx6j\z k+=x//d_TQQnªR-{v{>>.KgJa55_zٳ7o>ut&ikO&t4a[Y44]<.Ǐ_-cm5Ȅ<1}FWְ&Oё֖9s,b=h)(ڵ jSQ: *+ ђ'Oʞ>-ϯhlbԔ9s,hR}KHxIMMfٲ3 XJ**<чG>47w ֖љ#&3+1`fe G>>IK+XP]`tH?|-qΚ5DWWQEE?C`a**~ґ,&KyM31 yg$6#8#7u̙88H4H䬬~PRгK.4%'mNNÇ::'N14T12R=[SQtTY|G.=`up6: *+!/_Vgf{1wĉ"XãJԄ{Uf̐:*+}QU+~D33U##3'sr^zB@ 9EC@?b5=8=ѣ2<}ٴ)SİF+kgϝ{pNU˖͆[ بms05M15U55U:] SY)>L@e//'֡iPY֭77oy<L^Y)}덎~ʲfT֟RQx˗ns?-u(@im{zӥKg@e HNK+yQвef b 447w>yORRp˖VVX'`lAes3grZΝll 5 k=xVbewZ5Dx6xs_G&KГ]'N8\{w…',-JFF\>**=s&79  АMJIM}sMCkYc7A$+ɬO˧M Yp&|VyTʲ|\kko\eb2u>;iiAs0g,13;wiIn;vl)UhOPcb&}i P2)ŋo>zTsԩX' h׮m喖#!XZCxdfhhXHӴiRX'0re}!8͛of̘m̙NږkuT >~qc˗Uk_oDw]c̫_t_52 zd?(`L9:je-tѢTM(&OMJٷ.2^Uch}^bd3jB u(ʾ~=ɉ<~ɧÓ_t֮]xx8NP{S#w]]nք CAATQQollK$#reC))̓߼u" /..g/>=qHn-Ǎ:`.,,AE41`p8 ?v,H$c Ξ;NڻF[[DIյjk7mtZ?.yCYY<4t>h}Y33K %$:p(Cr,,^fa9:jc!pef߹H$Ox赲66v]ru=;}[fF3j%Qxu(*߼~J]nxxD}:(^|d`)@;;&fVHHXu(qڵON.uaW>e!qMae?+{as(de**-Zt"88L`HtSYQx[i dg7rB 8LAHh\L̪>q")DGemj»Emzi֭[dNYT,p8^ROyyEE5;piiݵkkagr`si\ ƂČ66/a0/~ ٳ'96yyazQS`Svx%bزuuu1̀hXXlm1 uWLggOTJxR̚5ߟiI0:֮̀5VR}>42 fPTF5&_5k΢|X#$##u LL޼~sG##f̀ad}֞b@@֭Vҿt*`dDoАspq%q>kee{tmmsd\^^!!w׮-.۶O P U֌b_KBwn:ps [}رLk4q5ECnXqJ#5u=UZtVL̪ܷK77wb08+kObXXÎ;rrP7Ў2uP]]3[>ʱpg>+++04K__)9y]}}Fqemitr .v_ta-ؼyuƍE[^^.""2=eڵkqqqct0!%%\\VVJK밎x]][T0Lhut33}dׯ_ ݿǢ,^zڵ ctFvr(_bډElmO=^u0xRSM"U ))A\I&O<7{윜!.x޼ySSSGBB4557oYf!"..Nـ@ Ap8\TTʄ P~rʚXA|hTTŋ݅СCvvvӧO߲e 899GFF" HSS ?w,J >|x=77wtt_FnaakJSVUU-(((,,9sƍ?XZZ'&&Rڧ4eff<]v r& qqqnF Һude_a0 *OwA&t@5?YY[ZZUUUϟ?߷ ===xe?G\SX!%K`ayy}}_AA8L?~ϣ;tTLD">xٳ'O11~IRRCMVCRR^{y];JcGbcܹS0n8TI< p kt*kggyObZQ Rii?.뫦sN7oʜ9 X-Ԭ}>nvyLOd-mo?}=ϩk53;t YʺiS[فbb5z?LO/NK+mԔSUiJA"Kccdg ,Y2m$<0:K]]9xɒXg4m99o/];}*TU׌⌌OˉDҴiҋM75:c<EFON~% +.WF(h"hoU+W̙0))}ΝzAqJ*¼XG VV]YHC.i/}|b/]40P: E#_MLٱcftLFj22oxII##SSUe&Ւf++Eo/19Uxxnii*֡r]N&~~n3ʺbŹʦx͆H/*SSܼ6YYaSSU++ummyy7xe퓛644ɓ3fo57w25U=rd1YaQ]zz˫222 ˖25UUS:!eš'/TV2bciи Ǖ+,,06u@[Fg%HFFAgϮHܷII/Ӌ{zZZ,PsSg7^JJ zx蹸4o͚ϟWܻfe9v0II/_~ё27CTht++Eu׳g>vuiDžu(ءCFs˕˗]WLCee__&&l2ElB ;'`oehl숉yt=vvVooC}!""[99'`Њ_>޿W?JKK[ bb--խut&a.{ePXwFs{puD"y#22ϻcЊ_^U[Ztc2&dd_<'l <;R44:}cYY@ KKux~{~pt Yeb2ٛ7v(QիO)$IFF*Z0ݨ`JSshh+O֯7:YBQQmnf&PB$?޽w6Y]0ڎϘ;wcXeeΝo쉎vҀ ~DFF((133PAAl u(ڲcږWbЄ_۟ᐄcqe~l΅ 5/ #ۍ _ͧO̦mٲ@YYDb۷ <I?g}2x|~T̙{[[/yzwP#U02ׯy74؁u(guNeihΞ=yLӀт/\xQ,,//__&MLuNhhҥ &S}֏uۻcc99յ8`ߛ7/ FݲjSنAEX˜ɷo?:O32򾜜: M=r%h0ICñinE͝(ֹ!$4M7,,mmefYnngj{#ݟ]}˗8q9)Wn֡驏w'&>:5!HvpA4;9=oqsˉu4fΜtۭΜghx(3D]hzdO 5&汍yo!!wOߵiSlVV`r?wuuYW׳џ?c<<޽kx 3|~]]lêoݵ놶˗.".>>>޽(;{ ֡h?G__df`Y&MHM]7cDgXzz=X3He}A--9aLee_XYi>zm/C`NqEE\lǎ[^#~t@==%"G+VNNiLO188pku4 L?M7&58ng-;ލu2aߤI^:A*kIIiRԏ`?.35=h~n\`xϗ@"vv0YXqڷollN3M! 3A*kqqԩ0ȵ~doj]k7ll^rssp+#)LFbgMz) ӧf#^dhx.x;RBBDz w헍ZcaddL } 8#&s;A (N,I޵iStt&egbP;;E)D \ ܱFF*KFܹC#4 c`e-/odee$ .54 JO/Z\Pp։6-N 7{d0vvS\==c痍###y TU^(--) 04<篿YO23'55uπ룈%(ȁkÆ+]zX'5SJ{Wu @%+kuu3^^"}]ϧ-PSmIHH: aee]`?p;v,ڹVS?ވIK zUu @%+kCC+> p8"qн q8_%/K`IJJ˗vژ]T("+d+ܩe32ٶ-eٲX 64aTV"mcpd2rt{¨u`& `>D޲%ޞ֧=D*+3OemoBQT@DGGuKw^Dw%6m 6\aeeuLZW׊u@ ++ 00c˖? ]biXXp+͛7^7nXhQ߾""c5XeE^*++7m?gں?UUzz? jٻzN?2*!NM<04yE0]A-==̬o_21H(˅Ν{GࠍGLrssO0A;}8.8xrKWT4bgpgeTVvv(!HKK%]egGb%%%EJJA+W(**vvv'O͞=;''rpk7oᑐ+MMMƍw֬YS6 bbbA2a„^xQ^^~;v앚5iҤ/8W^711QVVp.]RQQ BݝS<ի!Z[[WX!"""--qa?B ;w0akkP Trr_OOϏN K5?FYϞupv>1v12;w $$QVQ8gξ3~,qpppppv3WW˗744=}EшQQѤ[nIKK#_988V\YSS ȗ/_Px⠻P:tή`[lAQA''HA#""ijj񜜜Νccc(L@Qt}GD޾ٳ|޽{EXUUU2Ǐ Mk׮a?B_ VUU-(((,,9sƍ^hМm޿@ 0AKK4 H\\ܰHSSܹ̓72F#֯u @ ))$$SV~~?<؁u,demiiVSSTUU=|.\xt=(577 r}}=e9##CCCEQA^|hoo>4779rL&wttHBQ4// E/^ RXXH 999$YYY(.XC7#Q0GkAII)))oIII2ŀs5hN6m(=!(Dj@S?jhYYQhTWp;:wի/`P.( äYiiag+\VDFgqq7eMyyFjjjC{sss--SVx ((8Ďg_MMM+**(Y쿌 `NNN^^XXXիD"QDDiii!dYYYmmm233ϟ?Hɓ7ӜBMMͰOUUՔ)S(***666CDeeeJ(灅?_ 7cjDU_Wƣ/5BSy؁[~y'˹ӧ'OPHIIyC˰0ʴ4sswnQmii6mWWLNHHhnnvwwjnn,)](j ׯ_7oPSG))a?BIIJׯ7礠,y=^̉7cMMM&"b/BCsD?.=4ؿߎ!G d2yʕW\LMMEdʕ iii[l^;w"ёlmm=x<`kku֪ssSN Ù%&&?փ|.]Ç!%{qqqF(}~~~EEEW\\\o^TTTTTSUU5Xn]YYY~~mۖ-[FFF }J*04T޵kѡCSR^QOKɯ$$Sb4z )RBC~>khhzoo/ׯ_hnnݳgk[&|Y5Z O?ɓN:m'5W<ٶmҥKN19GW3hS#kt++HZ,BCﺺcPY_  {C OwwwyyyTTԪU2z9XYY\xV8K +kTԃ:=}tƌ+W400:PϿzQiЦFuG]]udx4Pdc-w4~ss3)7hNQQQiЦF$++)XIolxl#ܜ9 {=z7+,1ceݚ5]\ $aqpTYلuxQb9[[j9xANN=Fc*kMMʕtuvdA`Nln mXg*+߳|yeL}OvIN~,a1˳d2kǭ[CXYY^ʜ={iֻXZKS{IOOizr IDAT;TT$X91Keݽ;޽׮HI 5} s[[[SP[{;!9ŋ&UUeVpswZSS7nf55ujd~''!!.X`aWc7 f56Id0--9Ѝ'N8C&/>y옓JIyV0}׭TomCɓLMlpyw6n,*ݱ#izSkkMUP:lN}{YP;~9ujYNNitCFg͚a0o7-Xpt8M{ڌeXvvֵk{:cIכٓRTTuPnr[X < JO`VVɩS.ޓ'b_SJ޼~J݃o/]Q[ۂu"ƴ~弤!!KcЖϟ<a‚;q¹Ν7Vwv츾v*Y !'JJNpGCOKO:wky _z_b0Ƭi͚UUM}@GJK뭭oߞ|)bP:7nֶ@u,OusukBuWFĉʯ'N,ecc~Uo/СKO߸}%''r%H:;k:Cٱc F>fmٲ`DPP<$2]ıN4B>_%&>:d sy:"",1Ze%рiӤV: @:u*8Wzz<{a @?^^Z[aA(*:t,1Ze=sޛ7K5PZZoiy,8MׯO:Ѩb߻UJ}0XHSSvݺK ,1T~^H$:enɞv1tUYOOiM}9G رMǏg`1;v\1:RIIEHHH/qw$~+49<7!5X'{rr۶yDƫWXgq*eŻv-bg$(yz UFF ,-fHdѷ+*[wu@=)&&Suu E0ږ, ߻7%0 _ lgpŋO;9#^K{Pm 51yqqmXظspUפ$F:,ݻ--RR^aIJ ڵ_5a89TV: nŽݣU&bcJJnmpp5:s(sW1Be=s&[@9AypBBӮ'N8c>s b"m$p8ÎUUM9Xgt++e &Əu@=d2zd…%%ss7d5ز#33PXXd}jxde7l0 gzB5&DZJ z;]\3zK\f @Bݻܢ;NDV6TR߲%k~}WVe??7Y~]ma]~cee ȳgX'3ll,G:=^yrYݠʚfUO(+KdfjianLڤ%go*88 s%SJzxݛІu@踲(kk%%%u0::WgOIt։ WD>q")DdFsAq;w:t\Y-᳗!A+*??8/˫ p8uUU_C+ND79tHM}]u@踲FD䚘L^BB…%%237͛cl.uuZZrvv'Wcǎ뽽DZGٳbnO W֬1:ʰ۹xfksLE5>>_DWOO `|fk{2+46sFspwtQ '%ԙ~?CRROh]~[(A.aZZokJM]g`u51==@QQlѢPxgx{JK ޝu@2=zTV]nAHIyem}b;w6((0ה5'(8.630|Ӧx??7mݾ]Yu@貲&$khȪE4ovvZ11`pk?^lm}.uMWWJ￯L`pWY;;{n.pp+ ^djZ?Hqhڮ]֍(w]w7z:Aho=i+^K:8Q$%eݼygNʂrDBB`Zϟ۱hU֬RMM9!qXիj3`E ={2qڸqOlnum/(oo#AA;X EќRW9X&'UsN9}ڕ8#i/뾼xQ Hj뾟jhalp8ׅ GG cprmf|55Bgx*AHL|uѢG,fgg:-_]\:@Pe֬ii+V8z9sNDs5ٓrZBgWJEEM:׭:1'.̟M8SSU%㓒|f͚ 84iǴBBg5;Psۭa_@G:XGd;HF5}ܢEw'` ?z]/_V`{Sy{3TE):tpޙC3}׈HRJ()EB}Un{JR)lE(P*RZ){ɾ3?|]YY>3|?>>gf3圃6|):Jkk7܊-~j~=n!:8;tv^(pd)49뷲b\L3>޳ܷoCG?>n-z<7⼠ imm՝;FF̖ r&?䦐׬YSaCq[.`QU欌m= S0s+,O"bb~#G,2ǃ$^t:a<7J-0>ڭp$/O壤$.''L!`66:p+"nnaakׯjAde$va|B&QQЂ+Q(A8\-\-:ٳ/66MMpˁ$kyZۗ/í3 Y+*Ɂ"،Dgg󕆆XIV!IL0cԩBpˡ:g'%yյXYUW7-fg-3 Y%%&91ǏML<)S$ (D"- n90{Ͽ=yn!8aUUMߏSݻeeGLmhoD x"5 r`w۷UYYM(rm0.ߵ+~ǎEs  yƍ7'mUWETΜI'@cx֦..V.ySqsދgu׮=[<ܹ:# n!`}֮.nhpt ӛ`6D||0Z3}jN=05Uf R`9kWW/nikvq ]F ѯ}1 ?tuu%%ǂ @|CP4>vlѣɓ3yŽ>}{B1fee599)Y>+=R񕺺S7JrrDSSA111 x<>((HIIK__?;; :ʊnjj&;;؀nhh`cc諧A9.p8/ @\vMIIIHHĉ<<<W&EMMuԩC" !##C^^/'%%)** {yy {s"oiX֭={&sUV7O100 n!BDRR6eKUCiiԩ;I$Lj͘͜]\\DDD?N BCC޽[SSs}III>LH}ڊb׮][UUAЯ_µk"##Bɓ?,--9sݻ AڶBR[[{U4>x,ϟ?Sd!AK.mmmsq >|x؛ ōfBVVٔ)>>>qx<;˗Ķ~ݰ!bÆhcx "֯ o9e;$z֦&III55oee刈}IݸqctÇfmm8l"ӧO%^gffjhh^~M z{{\9s Ƿ0gpC^+r{UTT!ajj7 `0C!.,,7oӧOH$)cMl [3m4ӫFIUՂ^:H//͝p 7nn[Sʠ ooo 7o9v,n-TGNNF^>IKL*gĽ{o. [ `|pssrlmuΞ]}CP,-&{F~GrYccOƍFt[Ϝ :EXX8$$pag7)s?[ A""<8\_ls XAOOMݻ^ӷ]NNVgpˡ ( ;Yaa9..s- *c)uu͗.9/UqucwoBbkP4>RF#7ӵkOWKJ< vtlzTn9Bᥥ/V ^Lc>B#ҹcG6Z}rwO/)CnTR;܊Y#kW<O8}SYYO!E~\#ѓ.]68q¦Jl,܊(C5ESS\y:`g O\܋7yy٩7d||EDxbc=[ܮpcwWXtO~ׯcd[ хϞ}pa5XmbrݻsV=zkcB1χDXXh9r2.ޱK޺MW4Ϩ 98X:;{QUҒ~c:ytdR_rX| ijo.+>wnUV`0(GG={TTfEIIڵiio К5ii-pPLݻ9}|2>>|qq 719}* 88X-Xwo锔EQٳW߸,4 Z&;; ACJYXhĀ7L;w^ff9cʊ[ TW7mzL}}͛nii;.TA ߧFT)L_iiwvvʪEE-n-ㆸ?dAELUIСD==9Dss99q3'7nݻgѢ;v23 IDAT5||rr>e|pp 3g iv]]ˣG  T4ksݺUc^GGɰK SSS].?gXfe5soVegr_FFp\7 NvJJ~>f[h񄔔s?~ivA~OOc=LULM>ݳgϒgǙr@>m-zuC*l +lTxIM?~Ӗ-ӄ[hdg419ys[JA_D}ބ%K0[$18CgbA͝TYT':xIMDDާOup u98 gg:qFX!(>>G?%,emdS"NN[KߛtaojƳիbc3t* N^~n;}:}Ӧpk▪ɏ뢣ݯ\Y3uܢyy7GEmϼy'Ka\_Yٸq)y^^aܙƒxÉ\\0/ﳉ{xid4nE͂JYY[޺U8w?qq/7Nqٳ/ Ae9+A<+VxIJauu-^^Ѷ22991%F#]]쳰[\QwEQ38GE >>aY~<Y'#}}={LLf*í=eETԆ7$%l7_9--/`ҧ{.=z49-WS8i  rŁi+2rs?z͛냂9 HWwÇ[\tΜXLq y ED%XXh`褤״իCe?515j 4f@~۶[_[DPU q}Epcaagmx;h% @yg,Gχ-Bii…g"#*=",pgCCi=9llቴ!DD?޹b,2'oEXX'z ֬cG,]HKg6s*ouRdZ;mGomyHIL8/5&qq8'gk1\Z ??Ku4í_~cΊD"/׼s$I('N _ϫoٶm!..pᙗ/+il ٸq-}[uuӊA997lڴ@lht­$tu!z*l\@ 66:ٻΝv%^ªUklSRR7{yyݘ-EEy0#<+3S]tƳqrf󜜮HJ5!!@xϯ_ ϥj~~Vg˻^- Z32`gefΝqtE.~wm3 t`e`Pgf8:KH P(K5kvw!//Bg]T@ܿڒxV)!h4(ѳn+Wrͨ=`cotpczayӭapiPP-/'ɳrq.\ 22h!;w6kiMpŁ:}}x..V-]p&ͦ=BCOJwp99P'`y_[~nZ*+i @9n/ںՔ+*,-{{RSMZ AP[[wmm ߿o]] =Q4iŢS鰎y_?e]UUwIildf99>SDOVawo$Amc3IJe4U+ ))_x9ٰaQ!!m)1嚌[or<+R]t j\"HVV0>~'b,-5=@ fΔl?;H~V/ے%;y=qbkքvxhUUwHXs5T 2!Y+WPoO+W^՝z+bDDxeȡ91HUzFFF0!8y53;[ZZ `05[D8dHEE̙S$$gxV棦96mԛ啯Ysubհ5,,ܿA KZ ݀@ 33},,.dױaaa+W| iC ?44@VxVf,n[YT7Wkϯ(B B!UK岲Bwn޿"00bEE܊չsi6-D"~_ @oFׯ瞞Tx1hKNPap<<@'D_?/#çgl|:<<nEyz۷uqs**xڲ""< ec+WrX2a}bPcc`gVeJ6h4rBӦܿ}&#G֭?3fH[wftuYHje#~|}`H!22ǻPr}}!Lߏւ[-3oKΝ;;{VA);8ͤ;_\zzr\Ro%޾+WrfssQr[[vv Xg>p8<AllX#pˡ_XBBSS,^|Ĵ Ԇxه4p`<ϟz D,Z 32 EÊ^=:z//;e3%Ob h2aHXXhdf q-]zlzHb`om-fV+AK}[Eo3xp7^[}i]UUnx :::222IBM!!'N aO??npmTmi{ϟ^^^7㾦yyI9 120yBB\ӷwoҥ 8qb222.\A4tQ#DEEEEEMvԩ߿ԑDX\\~T.kvwpc==9q-LY%J<+ÇZ72O &99YBB <ť@ F_MMMdggp lllzzzB#ii鼼a;"k׮))) 8q"22RVV8WDDDXX@؈D"}|| >Ak֬h@ hhh444 ~`X$ ~a wK):$---$$<}$ ps3()xqwtxk}}mZ`Pr򬂂ҙ`A^ r01k^]"UT4?XwRWW'""s*,,|ݚKJJBgV,vڪ(~E ]9ŋ?~\[[;lG[[[!mmm @ ߜ/_ݱc޽{1LSSӧ͉}Q(Իw]޽+//?X zΝ}i&"''Z-igQ fgg~|EEŻw~zCYJ pcRŷ;OAˤp}YY߲j 험ض¯wyJLl[IO P !,fԆg_23nHbZ˻aÆ#Gdff|MCBjjj[bׯooo$loop|| >}HpqqA`\_MMMܠ%K@T__/''Gl///_UU5X ?>ϟ!v=y򁌌Oii%EMuSһtuq*`|[\|{ffE?n"Θ8@mJΝ!MMc;{ߏ ?EnnC%%"(X f0""yt,Z[L]HDPcWW/6\MM󿴷#ɌOO^ Y޾(޸3ho q9ݿ_z3򭙚Jaj:/? (Dz.MUV6^c"nnʄ <f-W׹7Go10ߺСķo4ǡ%3J""<=T 62n=_@"=urM) F^pVUi;v,ӓswM)SS̲q 05c0i~쳽.~smR55RSSzjNNN{"cĜɰaJVкsdz5 D:tvI…*͝^Ue|ϟ@AYhA4X?/h4UјB~~c ̒[B|S ğ?I^xj*{{o۷oP 鴴KG ,ucjr O*49//;0.Y3&1#Ţ{{N- qq/lltȟeVW7%$mjFOCΘ1{˖-gΜ!2vGHET®]{JձU4޿5YHwGrs@Y݊=k?LbFEҝ*ZiyUU,Mf IDATs[[kos֭[9tիW#U#uƬi...ϟ0##C^^&%%)** {yy {/Ţϟ߽{;wަbUUM" 15U׷o#VCCg>O]1ij!C11::Ӧi9.ŶmmnpZ|899 o޼ŋiii>u055{ee%)fԜ(6}U۸Y-,.P/’%NNwWz*}ol ˼y99<V}ǏuM$elq̙3 B}p3dux"/IIXMCp3gpOQW?ݍ!@tJbʕ\\\fJNN±cxyy䒒AC p9sprro]gOÚ|MO2EPPp˖-5ܤɋ7qguee}B)Ufss?MkOwoor+B(PϪqʕXBDD>UÉdikVTII(#ڣ[J ^v`S԰qM5XU(.ɓw9s&MGxPE||tM| _ocO ) `dw  ?)nĉllX~}IH͘!1aCCŪqP*(W,RFt5y "A>|xx>q(pssr@bb[Ԥ.&%S877[PCvǛ7w"wdM)ܬ99(BC=oMM,RFF׬+pr'uu-kΥ* !&L88X][࠷iSٳ5-eÉ?ruuJDgOigg䫪;e8UieEnl )S( `JP(#d ;Hlzk\1jjbbZ7O1?3_;YӳtLUg͚Jf5OUohD)Uf]~}9F#/^tiB &&㫽:{|{{5d2gꥷCL\\ TQ̲e4ɴ=g$ETLϒ%EEW@(C?~lLM߼m&WA( 3ìCDV~~I5g|ݍ[d4x$Cӧ` -)))[[Z.=OK{yEeh}dLB__D5(t< _6ˡp ꑜ\l`0MH#EWQ(,,69N  ޟJ)))xƞ(22))[׬lمkQ+O [CJ{,=gBff!szzǏQUY1>>Y{?ᅡ#uu-ŧOIJJP{ Ŋ5ԪV6^aaooq8MHG_b8n޴ukU![Z$&??Dž C{meE Ύ%\[[w kGhy9yV~~ɳofJ7YZSK 0<':;l(Khssv** W/Zt6""9ϝ;G!!utT4={It31Q% gAXa=Hyy t‚J$'ϛHNb޾[ ]\ &m}AQQ6lLY==PSc ԤN-.>r芺;s?{6-nnW޽J{{ְXtpӛ7?/_&Ū#=V__tn1gUT f(HJ6OJFFXP#yKPJtH*~Rד'ծ_=jgw9%dҖkŋU<߽ &LQQtNS\zzݤ'oPWٱoT^(HJp~-ܿ_jh:a ^U\3  .JAAt߾_|ٙiSΑ7$a)II^͝˖]h Ӛ|==yOȎ1&RR3fhytQ~~ #xV 9cyV : ,=/&իOUT$d($ 0nh} иqŋx`)3sQQ lXBi)Y_H$"0puKKױc)c6^XRV>ICCADA1nУGp~r[6FjHzz쏋8e}w45yŋopK#8<ԤV&(Ӷ7o揙\ׯW*H/WXDO 8#yVk a9kZZT [b]6@" 4g;W!4ԥe^8KMȷagFD-[fM{1enfccG;EIK__ {Vuu)6%%{ŋ'돊*trmACawt7=}ǬYgΜyAgyylSl۷U]\39_lӧ򲃭V޳N*emŌ$UU#*HNΧrD<9<:O67w]Oe5A fGXO&r}nn--g66v&&ё>7IK{;s49e_jf*&FV9P <,66:qqssXYi>:a`͛[~u0ڲ^^cTGTS$}YKKlň) _UU.C33șUzc͚9Th4i01Vu6Eܹ4Vg &GbE۶Ō--g%L]]KMͤHCoY四;*mTᎎP*O͛) A*\[nloΘǜ9 oo6xbU]hŋ?ffr͎wԔ`PEE' @&#z38hAXAA :CKK ((N{GGObk'٠=F3g@T8?_\F͜y+ruum--]'GBVVh߾.d(*3b\sRag[0gE"f>{Fn9m`bjb2c}PP` H<~xV"X@#,{y'.]zDpȔ)mf |z\]LۺVOKvv99H\֖}Ya`Ҹyy*u4>ԒY ,,4xy) 0a:L|wNp!SK눻2f:/=\ +WM`@:e[[:jŢ/_vvrv=&pϟ7Kdo±#j$$xV+ͳBdl}yֆv&KӗyKŎ ;B1RF~ ''o#11ޱwMo(ڽvHȓ={֮UIILMMsL::2gP1<Ju?~ʹi"}Tּn=kBBY[kQVh$dz $&%.*:yOMLNcuȯ(Nxz=juX:Y^;lB;Y%]cҒyY-cxV]]9nn10 11NN&[~轊ĄGEXYf*9LxV24~l_b55C0eRk?:44{Ϟqޱ13Sݾ=iD[[ 1<+25U mԌ )/g2aK/^| ,*HĬYSO-.>gX[OVw}ysԸ2 :Ԥ*.>ݍ9k*0g߾!$ZLB;s9soెƔxCS,, <a55֮?19 9CP(uC:OqpлwQQ .uޖ?--I_矕x<ȑ7H옘睝wА*+?L؞K =Z{1c8,-e`--_WLx)868DLbT!ooxwGCΝ&;6M$)ɫ"9N}իzzp_أ!OJD@g51Q&%S[ )a߾[x#04T@j߼\J2EPX/nbٹα|[89Y..TYR{ބϱ|y:Um,j@geaA'$QSbϚU;ubΘBii=W Y7Nz55'kjbX!!;w<ll.mv5 ܷ_3zs& <+-!ɳBrvii%kUQ(-exJ rsˍ&wzf}r0QbRׯ=Ǐ?vv=~#:ٴ"nnXUUI`R*ps;*185^TU%55ǜKTϪ/'% AMM n!dC?[ NK{ܹr6U(g ܬ;w-^=sa;ˌƆysܹ vv!lohhowo|ky𠴮nPR?׃74Tϊ@ f޽j\9D`iӧ||JJh8/U(nHcE[Z\|88 ::GS'V`0g ug!С,,}Y\=:z ~J& R~XQYY!Fj+3gmjk>-gp6cu&%605Fh PȀ{GG ",*%d ch{{ݨQ;IH qa1*'';5*zjHG]]7/^|3gaqq^SS1I1G`|uRuvR@SYdں2A>-畕og>WT4`:D\nnLO1kl@@̙3VXuȑѫqs826yNοsyEq|| .M1Eذ`(H Ɵ-!EE  HG?6\8 e|>Yfg潙]ݔfJJJTsszI08Їx\}}kx5k/ |R" X Mg((&FvV1'"?&'z Ѭ/߽+QR#eei''իɾ}[55kkXfJJpW:8?L!hi?~S\\?kK99MwͲ45O|biAW g϶woĺuߚmcp{{oƍC0G2=|8+9!CB‡ׯ >*X[k [M,,4'̝kEЂ_94%HLm&XZj*:˗VGGvn'\DjG9y2͎))W_([[ï;8u˗C>akڻ{ $%LNE֨ 2:o? EіDT? Ȍ##={椥8{vqӦ㫳`͹s+n|neA^^r~W_`1\\^}23 ffjC7Т?֮ux"_臤VT4VW7 W~et_ ޹})#NV{_:)WDĉ߼v.U]]v9s IDATg>*=Zl .=ci>5djaa-s~b[qqP!GrիA&MS)E{:HI1qs$.vb:/,_;;;w6{Wy+WN?^wǎ mZ EE pBXӲX͕+Y>fakW6<^,;VCZooéAδiG1avNzρnMM_,9gk{G;R3,lcFFezpo-)*;>QCCvl3g(Z^N"ڃ^_D jNN%Lͭ?cي_mvv훷z=ou__;B5NJegI+س'9+ ))u8QX%,)'zxLrv+ɤʥK+!**#006.Χ||%tvRP>ŋ6:Ο_ xN=$'9 pIcc/@_i.*뫿Mg'%::͎OZAxȢE* (a:׮|uߏ63Skii٦3g&N=r$A>>Vyz^%LG?nǀ8a ȲɸX9 C[L1𡺮UX o%$DTΝG**қ7O{zOXF##}_siJnnN;|( JW9%rpS$?h-[~y>40iKN,,Djj^6|Yxx>9P9 )`:'O.KO?o߼%K98;s&wbmmˆ 7ISSM12xS upFBdHe|_~֙YCbÇj[[>Hsr2V&3a`B8<|u<c?7g/,~0ƣx8Ĝa7*j 76VPO?G{dp wKemmuT*"ܹ4;vTT 3$ u1!ᬰuDG[A`a믚¸UH/\8nIZZX: Iu-Zt?XCBbݐIk)*|:hj-]:c7F%%޳ bmmye> ϯͭC'NCEQQQܾ}[,HDE sZm||…R%碢2(jk[t:JѶl M9`*.**œ`~4 + 1ի>ak#&F|PXf.yeZJ(l߾MZ@5NC +3of\\͛o6n!''%O T{.=wiiiɓĈji AX*hmڽ{c[D-(p82@x=24Kefwt:`iQ׭sx>`۶",w(3~53gUUf|OauׯkׄsԩƉٝb8ͭloe}󦨼 B(*JEss+/,®ho{{Oq̓^EE /{xxΝ5۶PTT]WWg` 5eD>x%fͷWQr!5XD`ie ~e1_ݽ{sT`MO~]e}𡃃CLL/(*)Plqt;wc KTa̗/_%~Ŷy͜#~~Bb MQQnDEe"9ӂZ 766nݺeddP(;wTVVVRRڹs'B),,D$!!AKK+))) @KKKQQqŊMMMXm=K,,,􂃃T*ez QFM8`GY[[;v + իWMLL;+--o>vM4ĉ|}}4MVV6::Դj* __n`5(keeU__ŋܹƅ/Z,׶pVf͚5Xζ6qq! (,SW9p Cßd/FrW90yVXrʚee唔,_~quu-++ʲٵkWAA`̙O>=pYVVVvv |}}ٕjkk=|uu+WB[[[`` W^ FQ%2˭ |k{KK˗nnn---.\׳TgFQ422RJJEwމ(lٲiӦ}9++̚dddt:ìvkǏUTTQmjj pAAKi g/yyy hHH<8kkk^2pjkk%Ų(:n܁_T?KJKUU|"_B{.MΨi_Y|Պplllа8p#ظ>YYY(3&""ǸYD"~Nh4v]]]I$ʲbr>|Fў={0Q4E3X{NRRL&رߟH$666Κ5 +srr"̚`~~~O>1L͛7޽Eѐ'''F:KzmKQTEg͚u1O*aKʯ{mko @11`7Y.'')eg!jӧOa$*((`*E߼ycx55,%##JuttwH5k̝;D",NILnGGΝ;Ξa5=pf͊Ϸqtt9fYx|QLJ}Y]]Y߾};11][[[_|3̹9b/;w5411 ^EQIIA{r`MHOO'pHlv???KKKIII;;GRTЯ~CX n>\A]](艳rR^^ r&#ʊݧiieYU%C===nz֭'ODEV,\pݥYYYgΜa.|={lٲӳ 3f̸w^KK L&,GFFpֶL&tttZ[[i&̚5ٳ&L ӦM %Kx{{ݻOBBb̘1vڰaCgg'&xWWW///;;nf9w2KQlʔ)T*˗/s'222?S_K1{m:$`mmknn޴iS@@رcǏOII9vXZZڮ]BBBf̘Ao_/mTQQo'|UUիJaNw 00F`{eҤCsA 3SNYZZdE߿-^ZVVV^^~kjjjXzR(니GFF,N&N묌[Ǐ<{ʴrbMMMСC(1H˗˫n߾VFFFM`8s 7ZΊalذaԨQ---}7U:+u=ٓٳg…XP277_~=6l7nEQ___T[[{7_3>AI&N=F-=G_&3jjr?}zxń - ̲FFFan޼ihhG;uꔱĉ>}}msTTըQTTT=%չ(*//PVVfz䉦/X\rXAAѣ7nёڻw/L&*)))**'?~EцA|||PR222=BQqʕ>>>@&׮]B}||,--ꘛ;pQQlFJ|||={)Solˇ###EEŭ[vvv^l=n`?:edd9Pvr9 mmߋ-?}D<IUǚfn2֪Z֑FGGϟUTTz~S8 1kO/ .())EDDTUUEGGck,DKK Ka浅k.6ycd99~ ##{XXm3f捁SM{Y9s洴ܻwp"p,+WRR/Y(R43=% FgN0K}TZ֑FRRJ Ҳ233 M-+;a浅(Nwqq0̼~~a1EѰ0.}$%%(J0X`ȲBaIKKn0v[x11Y+eVVDEeΛg " ~H$c WQQ#$¢g,VhhhRRӧO###`~9̐%366ಽPSSpv!O#N$}ir{ @y%-ǁr.V׸ ]P奮k{Wk;00o jhhn-[6ߺuرc}7ΰt(Ըl/;X:t!Ohxdcr䀀8a(1>^!#ZFFh[ =e9s}80x4ҰܹsgdddMMMll,Wk EQ/// , ֭[ﯩqrrzq~~?ٹv5.ym۶{xxp^ơ/_nnnDpHgyH{{ׄ ۴`ĭ]{`d#..GMm;MICd@ $I\\K&WI,duuu%%%'MtMnWk+((HTTy ۷8.<<\LLL__Ϟ=K,S1|XXm/_VPPغukGGGP(:qR;& y?>~{aƎ/_3iҡ%?fe[%>1,3󾛠3g{6x40Q']]]"RD? mGGmhkⷬMĈ%}Le\ ~0]GGaء"n5vDžr(zySSS)))GGGa:Oc ..@VVѣqcƌQRRb瞃@@DD;~‰[~fnwϞ{a O @;,,=l4:`Pō+`Y9oѢE.]444y%uuغxںi'8fzyy ^D? 6Ν߾-ⷠ,uMĒf.{PUǏBÁk9 C9CCCez{V> `jMLƌQRy2ϟELMM 'D^w'(?w<Œ摑|ŽJi99 ٨Tztt&tc$\α̩"Iy=± v~(ͳNK+yyUff^̯o7Ϫל^5Yܼy_\\\CCӧO8^qB Ku|iQB˫25U5[dd8Sp`l2cccwwwvvXܴiϦMWC=_~Vۺu8+lٲӧϚ5y!b/3mm&t:RvȿYEy s62jb|@#``+QQQ?í^-zO&&p7$uܭ[o>~66V哈|TCzݾclKh+YYYw~qVV־}6o,l' [V{#iY7~wo1S䇈I55""G,˫#Ңt;;] f@~~~_~?~]]Yđ DDD @NvBsq9ÇۈDTr1ah@ 0(,+`j37l''Wљ~Tލ&%22,AǗlLy^…::qq8 =7qIDAT AN[>u9;>$B̌ԨW<}:a6'V 9eѽ{j55iiqyƏQS2ĉ_Z[:jU؊@ `bXYi;700|Wxmb|ؘSx} ;o߮IEACè,LZN?nMNBs,]NZ@ |gY1֮6%h3sĽMyXmOk&O6O--fYU ArqaۻOp!ndõkur2>jjۏ[#BC #5f,WQQ‚7o /EEuDGgYYicmmamSXFU2tRttok^tBQQ%.##T*=..g8M oP;׬ve@ tVVZu9Ϭ M33[ގ˫:QPP 00Pbի}8M :MHȻ|ff.^l+*:H_f2cV5k̜9vÆS!bP[Vٳ##/]zƫ:'}[\XW2SXG2ML8Bh||%vMI,++!l ݲṽ&%}UryR3uuSt:={6\L@ CڲeZnnM11;X,_>ԩ~%.ځ_ `gYSSkk[́lm y}ʋܹVWzY_2cV TUUz͚<>6)(,nttM# @ Cò$$D\l;$f϶zb%EcbanT22pN|2V[^6}a;)-0d2ľbS}ki͟o3lmuoxem+'Mb1*::SWWq# @7C̲<=|\}-MMqR7<ؿO)Zee#J11Y\ʐ&;ҥg鲲kLg}!c(38xpߎYJe#wD²fd6X @FCҲ3gˏz$$D]]]Nrmm5&&[SSnXKZT2 ))zZ}Ӧ9u*҆/Rqqh))bbfͲ@dR 0/ U Аqc]r##;;_ \_\ĐzB О<~|MVM_%+WN޺5QCCv ʔ)LVP?^g ~1Ǭ..~~3틈_ g[I zccg0|W.B 3۷mS]]M768_tBhhmND":Pƞc֚;_ @ =pږ+.ݿmb+V|sǏs.B\g2ŨZg*cLQpȩSˌ<<.VU5ɕ+r}3mɰ+IJĈ7nq׭sHI)JK+2D7cW0\L@ .> %%*LSY{{Css˗9l ijuK|8hҿ: 3@İUU7egWlv֯QF"&RRQ`zB H?n`jvgLL=TZQQZQAIy̙C/V0\L@ 0 -+ŕGFs_HįZ59$$˻[֤5k S!d O 1 3gΜIԊhXXߢFtvRڻf(+K*aS!W 籈֮={IIZnHK]|)?;I(jhkYi4'y7OނzB oΖjdmp)Q..\'f5**NWYY]*\DܹwVHI3z!;Fl0¥KFcU1߲"͌?&Lլxkk1@Q=x0#,50 lzD"~qD"^(*A 3-+鄲\MG;AXfzف11+8gs睋Oq .6&MҗHϷ>D(Dz|bVw?XP/>ϯ}8[Aa͎"[Ϸp!'wsc9 @+#n*##.''!,?vذJ[*+#1LG&\34Tٻw@~ӏ WriioiЬ6,-5O=Ph `dd1,'Nki! [XL 3t7Kŋ+M 毮߽+ѺQ47w̟ow ZlOG[[TM@ 3,+H/^l՞jtC;0k]]'iiq]]E?VP@7}}~Ky'X=FQ11C!L$ahoFe'':8Ag(c XaϞ9qRi ̕Lb!4T A@Xh~kUQ8w%%\zx~}}%ccUwC #kY酄5GD<ذi}zt::~,UUÇ]IAAYǫؙU<'"BIN.,+k Y`n l] j-hAܲeܢEF11**H?;}֔)k^Ƿ0qJJ9ۻwjiia75uzzmm궵HKJʎ%++.--&--(\[%%%Ex<-®.>Unb" Ȕ)| XY!`*n/_47w~ӓcN̬61Q֡.II6kkN!iwdŤDedFʎaZZZmRR(ɩ12R𐺺:SSS%C >ч Po3Coё5ޢ?/III| @ /@ ^-+@ ZV@xɰeeeW5[aa!¸`.N ޽H@YbE]](zxxHJv?ŌC{zQ^-g 'e}Y***RP_FF槟~bWۻ ܼiӦcOsf^~]]]]QQqڵLTUU F v [7c tzC;ơ޽{O]TUUuwUTTտ8q]掎0g\։ bmll\QQ!qxk[YY1{f`, PO>=}tFxcc7otlRMMK8|0Rt:ݻ$i͚5s%H,:;;3+FRܴ[*ooo6 ˋyS1Eϝ;7{l176c{vÛ^PGG'33'h3C9d3J===nz֭'ODEEa .ܽ{wiiiVV3gK-_|Ϟ=-[JKKٕBdƌkii!D"Q\\eH7ZZZN<,eC(eaaf֭[4,s]]]MMMeeg,XP\\cn͜m SSS=<<8$o8<ٰaΝ;###kjjbccϡ6FZ p, Ȑ)cnYO:eiiI&Q*TҲzjYYYyy׷3TuvvIKK766b=K(/""bllɲ8L5kb&rQP(hŰnŃDEE?}Hy- w]kjj.[y]tu2F=._u֎_ΊC旇JHHHL4 6`zm%%%.g!PSN1 V ,9͋cC]dK@ Ke7aQRR:<7ahY!%вB Ke@ ZWW?= É.QQQak;---0 9\YVQQQA8E@ **ZQQ1tO@dH|@F \`@ %p@ ^-+@ ZV@x 2v3IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_45.png0000644001725400016040000000313113273140077016472 00000000000000PNG  IHDR%|bKGDIDATxmHSmǯ^hK²hAXX$Y"E N*Y$ >T@Q,ߨ/V~6dRڪ֎Iχ9):tu뜝@Ft0 Wq}'Wq"弶l6폤V{9v{lǏƔ0?9<'=_`VX֝;wr*N*NDHRv\r 4΃  b޼yaddD  ~YID._%%%066vAټdz˗/$I>|0a=zz߽{W__322GׯU*UtHpIJu10Llvv6lXn]ck4׷8FEQ?N ёL$477/\pbb`yyZNHH(//t/~JJn7)))U٩ EjjjCC|mJ9ݱrbܸqbd2^oZVҒ?M Ν;U0gWZ&9i~Dzo߾aZS:x̙o:Ό v ''UUU/v:.+33,*^|^~]*)壣W^iL&>}W^i4Z'pzQqϟ?5kp̆ݺ@ ͛7>F+IZVUUU1tK-[F't:B-}6=nj*'Ξ=K$EQ߿%[J$={P3>tPee%BqÆ \=ٰ['̯!t)DG&P(؝@TMNNҳ. !p8g̘f͚w hhhP* ߚnn_`EQW\AiŊµG2v넙(<ŋKKKJb*'Iɓ't%%% ґ/^TWWR}( lBCÇڵkךfȹOw8]]]ХK6o,\{$ "_):p@qqqss{:;;+++NMت{8qCCCTAlܸ֭[~rrR&Ņ]v3FFNWPPjD"3+WLHH8222̂|}wwm޼ysHj5"G_paҥthmmMLL|!߿ٳgϙ3pbbm~ZVVT*wE$2|\. g3X,LϞ=iiiAj^>%˹s޽} ? fΜ\)0xǎ(s*N*N*N ?=8roO h0ϛ0__ U`_ UCM­JfHIENDB`XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.map0000644001725400016040000000047213273140074022151 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_2.md50000644001725400016040000000004013273140074016275 000000000000009293963a80d329bd37097b13d35dd6c5XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp.html0000644001725400016040000001035013273140077017471 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATUntypedAtomic.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATUntypedAtomic.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATUntypedAtomic
     
    XQilla-2.3.4/docs/simple-api/classNumeric.html0000644001725400016040000036600513273140077016163 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <Numeric.hpp>

    Inheritance diagram for Numeric:

    Public Types

    enum  State {
      NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3,
      NaN = 4
    }
     
    typedef RefCountPointer< const
    Numeric
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const
     
    virtual bool lessThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is less than other, false otherwise. More...
     
    virtual bool greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns true if this is greater than other, false otherwise. More...
     
    virtual int compare (const Numeric::Ptr &other, const DynamicContext *context) const
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the sum of this and other. More...
     
    virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the difference of this and other. More...
     
    virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the product of this and other. More...
     
    virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is the quotient of this and other. More...
     
    virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns the arithmetic product of its operands as a Numeric. More...
     
    virtual Numeric::Ptr floor (const DynamicContext *context) const =0
     Returns the floor of this Numeric. More...
     
    virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
     Returns the ceiling of this Numeric. More...
     
    virtual Numeric::Ptr round (const DynamicContext *context) const =0
     Rounds this Numeric. More...
     
    virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
     Rounds this Numeric to the given precision, and rounds a half to even. More...
     
    virtual Numeric::Ptr invert (const DynamicContext *context) const =0
     Returns the Additive inverse of this Numeric. More...
     
    virtual Numeric::Ptr abs (const DynamicContext *context) const =0
     Returns the absolute value of this Numeric. More...
     
    virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
     Returns the squart root of this Numeric. More...
     
    virtual Numeric::Ptr sin (const DynamicContext *context) const =0
     Returns the sin of this Numeric. More...
     
    virtual Numeric::Ptr cos (const DynamicContext *context) const =0
     Returns the cos root of this Numeric. More...
     
    virtual Numeric::Ptr tan (const DynamicContext *context) const =0
     Returns the tan of this Numeric. More...
     
    virtual Numeric::Ptr asin (const DynamicContext *context) const =0
     Returns the asin of this Numeric. More...
     
    virtual Numeric::Ptr acos (const DynamicContext *context) const =0
     Returns the acos of this Numeric. More...
     
    virtual Numeric::Ptr atan (const DynamicContext *context) const =0
     Returns the atan of this Numeric. More...
     
    virtual Numeric::Ptr log (const DynamicContext *context) const =0
     Returns the ln of this Numeric. More...
     
    virtual Numeric::Ptr exp (const DynamicContext *context) const =0
     Returns the exp of this Numeric. More...
     
    virtual Numeric::Ptr power (const Numeric::Ptr &other, const DynamicContext *context) const =0
     Returns a Numeric object which is this raised to the power of other. More...
     
    virtual bool isZero () const =0
     Does this Numeric have value 0? More...
     
    virtual bool isPositive () const =0
     Is this Numeric positive? More...
     
    virtual bool isNegative () const =0
     Is this Numeric negative? More...
     
    virtual bool isNaN () const =0
     
    virtual bool isInfinite () const =0
     
    virtual bool isInteger () const
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    virtual const MAPM & asMAPM () const =0
     
    virtual double asDouble () const
     
    virtual int asInt () const
     
    virtual State getState () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Member Functions

    static void checkFloatLimits (Numeric::State &state, MAPM &value)
     
    static void checkDoubleLimits (Numeric::State &state, MAPM &value)
     
    static const XMLCh * asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context)
     
    static const XMLCh * asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context)
     

    Static Public Attributes

    static const XMLCh NaN_string []
     
    static const XMLCh NAN_string []
     
    static const XMLCh INF_string []
     
    static const XMLCh NegINF_string []
     
    static const XMLCh NegZero_string []
     
    static const XMLCh PosZero_string []
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     

    Protected Member Functions

    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    const XMLCh * asDecimalString (int significantDigits, const StaticContext *context) const
     
    const XMLCh * asDoubleString (int significantDigits, const StaticContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     

    Additional Inherited Members

    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Enumeration Documentation

    Enumerator
    NEG_INF 
    NEG_NUM 
    NUM 
    INF 
    NaN 

    Member Function Documentation

    virtual Numeric::Ptr Numeric::abs ( const DynamicContext context) const
    pure virtual

    Returns the absolute value of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::acos ( const DynamicContext context) const
    pure virtual

    Returns the acos of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::add ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the sum of this and other.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    static const XMLCh* Numeric::asDecimalString ( const MAPM &  value,
    int  significantDigits,
    const StaticContext context 
    )
    static
    const XMLCh* Numeric::asDecimalString ( int  significantDigits,
    const StaticContext context 
    ) const
    protected
    virtual double Numeric::asDouble ( ) const
    virtual
    static const XMLCh* Numeric::asDoubleString ( State  state,
    const MAPM &  value,
    int  significantDigits,
    const StaticContext context 
    )
    static
    const XMLCh* Numeric::asDoubleString ( int  significantDigits,
    const StaticContext context 
    ) const
    protected
    virtual Numeric::Ptr Numeric::asin ( const DynamicContext context) const
    pure virtual

    Returns the asin of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual int Numeric::asInt ( ) const
    virtual
    virtual const MAPM& Numeric::asMAPM ( ) const
    pure virtual
    virtual const XMLCh* Numeric::asString ( const DynamicContext context) const
    pure virtual
    virtual Numeric::Ptr Numeric::atan ( const DynamicContext context) const
    pure virtual

    Returns the atan of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual AnyAtomicType::Ptr Numeric::castAsInternal ( AtomicObjectType  targetIndex,
    const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    protectedvirtual

    Reimplemented from AnyAtomicType.

    virtual Numeric::Ptr Numeric::ceiling ( const DynamicContext context) const
    pure virtual

    Returns the ceiling of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    static void Numeric::checkDoubleLimits ( Numeric::State state,
    MAPM &  value 
    )
    static
    static void Numeric::checkFloatLimits ( Numeric::State state,
    MAPM &  value 
    )
    static
    virtual int Numeric::compare ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual Numeric::Ptr Numeric::cos ( const DynamicContext context) const
    pure virtual

    Returns the cos root of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::divide ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the quotient of this and other.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual bool Numeric::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    virtual

    Implements AnyAtomicType.

    virtual Numeric::Ptr Numeric::exp ( const DynamicContext context) const
    pure virtual

    Returns the exp of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::floor ( const DynamicContext context) const
    pure virtual

    Returns the floor of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual AnyAtomicType::AtomicObjectType Numeric::getPrimitiveTypeIndex ( ) const
    pure virtual
    virtual const XMLCh* Numeric::getPrimitiveTypeName ( ) const
    pure virtual
    virtual State Numeric::getState ( ) const
    pure virtual
    virtual const XMLCh* Numeric::getTypeName ( ) const
    pure virtual
    virtual const XMLCh* Numeric::getTypeURI ( ) const
    pure virtual
    virtual bool Numeric::greaterThan ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    virtual

    Returns true if this is greater than other, false otherwise.

    virtual Numeric::Ptr Numeric::invert ( const DynamicContext context) const
    pure virtual

    Returns the Additive inverse of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual bool Numeric::isInfinite ( ) const
    pure virtual
    virtual bool Numeric::isInteger ( ) const
    virtual
    virtual bool Numeric::isNaN ( ) const
    pure virtual
    virtual bool Numeric::isNegative ( ) const
    pure virtual

    Is this Numeric negative?

    Implemented in ATFloatOrDerived, and ATDecimalOrDerived.

    virtual bool Numeric::isNumericValue ( ) const
    inlinevirtual

    Reimplemented from AnyAtomicType.

    virtual bool Numeric::isPositive ( ) const
    pure virtual

    Is this Numeric positive?

    Implemented in ATDoubleOrDerived, ATFloatOrDerived, and ATDecimalOrDerived.

    virtual bool Numeric::isZero ( ) const
    pure virtual

    Does this Numeric have value 0?

    Implemented in ATDoubleOrDerived, ATFloatOrDerived, and ATDecimalOrDerived.

    virtual bool Numeric::lessThan ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    virtual

    Returns true if this is less than other, false otherwise.

    virtual Numeric::Ptr Numeric::log ( const DynamicContext context) const
    pure virtual

    Returns the ln of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::mod ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns the arithmetic product of its operands as a Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::multiply ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the product of this and other.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::power ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is this raised to the power of other.

    virtual Numeric::Ptr Numeric::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
    const DynamicContext context 
    ) const
    pure virtual
    virtual Numeric::Ptr Numeric::round ( const DynamicContext context) const
    pure virtual

    Rounds this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::roundHalfToEven ( const Numeric::Ptr precision,
    const DynamicContext context 
    ) const
    pure virtual

    Rounds this Numeric to the given precision, and rounds a half to even.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::sin ( const DynamicContext context) const
    pure virtual

    Returns the sin of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::sqrt ( const DynamicContext context) const
    pure virtual

    Returns the squart root of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::subtract ( const Numeric::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a Numeric object which is the difference of this and other.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    virtual Numeric::Ptr Numeric::tan ( const DynamicContext context) const
    pure virtual

    Returns the tan of this Numeric.

    Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

    Member Data Documentation

    const XMLCh Numeric::INF_string[]
    static
    const XMLCh Numeric::NaN_string[]
    static
    const XMLCh Numeric::NAN_string[]
    static
    const XMLCh Numeric::NegINF_string[]
    static
    const XMLCh Numeric::NegZero_string[]
    static
    const XMLCh Numeric::PosZero_string[]
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp__dep__incl.map0000644001725400016040000000504613273140075021234 00000000000000 XQilla-2.3.4/docs/simple-api/classDocumentCache.html0000644001725400016040000012261413273140077017257 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Expression Context is a storage for contexts. More...

    #include <DocumentCache.hpp>

    Inheritance diagram for DocumentCache:

    Public Types

    enum  ValidationMode { VALIDATION_STRICT = 0, VALIDATION_LAX = 1, VALIDATION_SKIP = 2 }
     

    Public Member Functions

    virtual ~DocumentCache ()
     virtual destructor More...
     
    virtual Node::Ptr loadDocument (const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection=0)=0
     load the document from the requested URI More...
     
    virtual Node::Ptr parseDocument (xercesc::InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection=0)=0
     parse the document from the InputSource provided More...
     
    virtual void parseDocument (xercesc::InputSource &srcToUse, EventHandler *handler, DynamicContext *context)=0
     parse the document from the InputSource provided, outputing it to the EventHandler provided More...
     
    virtual void setXMLEntityResolver (xercesc::XMLEntityResolver *const handler)=0
     Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents. More...
     
    virtual
    xercesc::XMLEntityResolver
    getXMLEntityResolver () const =0
     
    virtual bool getDoPSVI () const =0
     
    virtual void setDoPSVI (bool value)=0
     
    virtual bool isTypeOrDerivedFromType (const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0
     
    virtual bool isTypeDefined (const XMLCh *const uri, const XMLCh *const typeName) const =0
     
    virtual void addSchemaLocation (const XMLCh *uri, VectorOfStrings *locations, StaticContext *context, const LocationInfo *location)=0
     
    virtual unsigned int getSchemaUriId (const XMLCh *uri) const =0
     helper functions used to map namespace ids found in the SchemaGrammar More...
     
    virtual const XMLCh * getSchemaUri (unsigned int id) const =0
     
    virtual xercesc::GrammarResolver * getGrammarResolver () const =0
     
    virtual
    xercesc::DatatypeValidator * 
    getDatatypeValidator (const XMLCh *uri, const XMLCh *typeName) const =0
     
    virtual xercesc::ComplexTypeInfo * getComplexTypeInfo (const XMLCh *uri, const XMLCh *typeName) const =0
     
    virtual
    xercesc::SchemaElementDecl * 
    getElementDecl (const XMLCh *elementUri, const XMLCh *elementName) const =0
     
    virtual xercesc::SchemaAttDef * getAttributeDecl (const XMLCh *attributeUri, const XMLCh *attributeName) const =0
     
    virtual DocumentCachecreateDerivedCache (xercesc::MemoryManager *memMgr) const =0
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Static Public Attributes

    static const XMLCh g_szUntyped []
     untyped More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    Expression Context is a storage for contexts.

    Member Enumeration Documentation

    Enumerator
    VALIDATION_STRICT 
    VALIDATION_LAX 
    VALIDATION_SKIP 

    Constructor & Destructor Documentation

    virtual DocumentCache::~DocumentCache ( )
    inlinevirtual

    virtual destructor

    Member Function Documentation

    virtual void DocumentCache::addSchemaLocation ( const XMLCh *  uri,
    VectorOfStrings locations,
    StaticContext context,
    const LocationInfo location 
    )
    pure virtual
    virtual DocumentCache* DocumentCache::createDerivedCache ( xercesc::MemoryManager memMgr) const
    pure virtual
    virtual xercesc:: SchemaAttDef* DocumentCache::getAttributeDecl ( const XMLCh *  attributeUri,
    const XMLCh *  attributeName 
    ) const
    pure virtual
    virtual xercesc:: ComplexTypeInfo* DocumentCache::getComplexTypeInfo ( const XMLCh *  uri,
    const XMLCh *  typeName 
    ) const
    pure virtual
    virtual xercesc:: DatatypeValidator* DocumentCache::getDatatypeValidator ( const XMLCh *  uri,
    const XMLCh *  typeName 
    ) const
    pure virtual
    virtual bool DocumentCache::getDoPSVI ( ) const
    pure virtual
    virtual xercesc:: SchemaElementDecl* DocumentCache::getElementDecl ( const XMLCh *  elementUri,
    const XMLCh *  elementName 
    ) const
    pure virtual
    virtual xercesc:: GrammarResolver* DocumentCache::getGrammarResolver ( ) const
    pure virtual
    virtual const XMLCh* DocumentCache::getSchemaUri ( unsigned int  id) const
    pure virtual
    virtual unsigned int DocumentCache::getSchemaUriId ( const XMLCh *  uri) const
    pure virtual

    helper functions used to map namespace ids found in the SchemaGrammar

    virtual xercesc:: XMLEntityResolver* DocumentCache::getXMLEntityResolver ( ) const
    pure virtual
    virtual bool DocumentCache::isTypeDefined ( const XMLCh *const  uri,
    const XMLCh *const  typeName 
    ) const
    pure virtual
    virtual bool DocumentCache::isTypeOrDerivedFromType ( const XMLCh *const  uri,
    const XMLCh *const  typeName,
    const XMLCh *const  uriToCheck,
    const XMLCh *const  typeNameToCheck 
    ) const
    pure virtual
    virtual Node::Ptr DocumentCache::loadDocument ( const XMLCh *  uri,
    DynamicContext context,
    const QueryPathNode *  projection = 0 
    )
    pure virtual

    load the document from the requested URI

    virtual Node::Ptr DocumentCache::parseDocument ( xercesc::InputSource srcToUse,
    DynamicContext context,
    const QueryPathNode *  projection = 0 
    )
    pure virtual

    parse the document from the InputSource provided

    virtual void DocumentCache::parseDocument ( xercesc::InputSource srcToUse,
    EventHandler handler,
    DynamicContext context 
    )
    pure virtual

    parse the document from the InputSource provided, outputing it to the EventHandler provided

    virtual void DocumentCache::setDoPSVI ( bool  value)
    pure virtual
    virtual void DocumentCache::setXMLEntityResolver ( xercesc::XMLEntityResolver *const  handler)
    pure virtual

    Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.

    This affects the behaviour of XQilla whenever it retrieves an XML, DTD or XML Schema grammar.

    Member Data Documentation

    const XMLCh DocumentCache::g_szUntyped[]
    static

    untyped


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_000003_000006.html0000644001725400016040000000427613273140074015714 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    context → schema Relation

    File in include/xqilla/contextIncludes file in include/xqilla/schema
    StaticContext.hppDocumentCache.hpp
    UpdateFactory.hppDocumentCache.hpp
    XQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp.html0000644001725400016040000002276213273140077017217 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AnyAtomicType.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Item.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for AnyAtomicType.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  AnyAtomicType
     
    XQilla-2.3.4/docs/simple-api/Node_8hpp__dep__incl.md50000644001725400016040000000004013273140074017210 00000000000000fdbf31548a9492a7bf8fb78ced843a32XQilla-2.3.4/docs/simple-api/classATAnySimpleType.html0000644001725400016040000010644313273140077017547 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnySimpleType Class Referenceabstract

    This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType. More...

    #include <ATAnySimpleType.hpp>

    Inheritance diagram for ATAnySimpleType:

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     
    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Detailed Description

    This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType.

    Member Function Documentation

    virtual const XMLCh* ATAnySimpleType::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATAnySimpleType::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATAnySimpleType::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnySimpleType::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnySimpleType::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATAnySimpleType::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/MemBufFormatTarget_8hpp__incl.md50000644001725400016040000000004013273140074021027 000000000000004d508664d175e29ecb1271916220ee29XQilla-2.3.4/docs/simple-api/Node_8hpp_source.html0000644001725400016040000006425113273140073016731 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Node.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _XQILLANODE_HPP
    21 #define _XQILLANODE_HPP
    22 
    25 #include <xqilla/ast/XQStep.hpp>
    26 
    27 class DynamicContext;
    29 class Sequence;
    30 class Result;
    31 class NodeTest;
    32 
    33 class XQILLA_API Node : public Item
    34 {
    35 public:
    37 
    39  virtual bool isNode() const;
    40 
    42  virtual bool isAtomicValue() const;
    43 
    44  virtual bool isFunction() const;
    45 
    46  virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const;
    47 
    49  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    50 
    52  virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const = 0;
    53 
    56  virtual Sequence dmBaseURI(const DynamicContext* context) const = 0;
    57 
    59  virtual const XMLCh* dmNodeKind() const = 0;
    60 
    62  virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const = 0;
    63 
    65  virtual const XMLCh* dmStringValue(const DynamicContext* context) const = 0;
    66 
    70  virtual Sequence dmTypedValue(DynamicContext* context) const = 0;
    71 
    74  virtual Sequence dmDocumentURI(const DynamicContext* context) const = 0;
    75 
    77  virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const = 0;
    78 
    80  virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const = 0;
    81 
    84  virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
    85 
    87  virtual bool equals(const Node::Ptr &other) const = 0;
    88 
    91  virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
    92 
    94  virtual Node::Ptr root(const DynamicContext* context) const = 0;
    95 
    97  virtual Node::Ptr dmParent(const DynamicContext* context) const = 0;
    98 
    100  virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const = 0;
    101 
    103  virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const = 0;
    104 
    106  virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const = 0;
    107 
    113  virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const = 0;
    114 
    116  virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const = 0;
    117 
    119  virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const = 0;
    120 
    121  /* Get the namespace URI for the DOM type */
    122  virtual const XMLCh* getTypeURI() const = 0;
    123 
    124  /* Get the name of the DOM type (ie "integer" for xs:integer) */
    125  virtual const XMLCh* getTypeName() const = 0;
    126 
    127  static const XMLCh document_string[];
    128  static const XMLCh element_string[];
    129  static const XMLCh attribute_string[];
    130  static const XMLCh text_string[];
    131  static const XMLCh processing_instruction_string[];
    132  static const XMLCh comment_string[];
    133  static const XMLCh namespace_string[];
    134 };
    135 #endif
    Definition: XPath2MemoryManager.hpp:45
    virtual const XMLCh * getTypeName() const =0
    virtual bool isAtomicValue() const =0
    virtual bool isNode() const =0
    Definition: Node.hpp:33
    virtual bool isFunction() const =0
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    Definition: Item.hpp:36
    virtual void typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0
    Debug method to output the type of the item in SequenceType notation.
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    virtual const XMLCh * getTypeURI() const =0
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    RefCountPointer< const Node > Ptr
    Definition: Node.hpp:36
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatter-members.html0000644001725400016040000003423213273140074022541 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLFormatter Member List

    This is the complete list of members for xercesc::XMLFormatter, including all inherited members.

    AttrEscapes enum valuexercesc::XMLFormatter
    CharEscapes enum valuexercesc::XMLFormatter
    DefaultEscape enum valuexercesc::XMLFormatter
    DefaultUnRep enum valuexercesc::XMLFormatter
    EscapeFlags enum namexercesc::XMLFormatter
    EscapeFlags_Count enum valuexercesc::XMLFormatter
    formatBuf(const XMLCh *const toFormat, const XMLSize_t count, const EscapeFlags escapeFlags=DefaultEscape, const UnRepFlags unrepFlags=DefaultUnRep)xercesc::XMLFormatter
    getEncodingName() const xercesc::XMLFormatterinline
    getEscapeFlags() const xercesc::XMLFormatterinline
    getTranscoder() const xercesc::XMLFormatterinline
    getTranscoder()xercesc::XMLFormatterinline
    getUnRepFlags() const xercesc::XMLFormatterinline
    NoEscapes enum valuexercesc::XMLFormatter
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    operator<<(const XMLCh *const toFormat)xercesc::XMLFormatter
    operator<<(const XMLCh toFormat)xercesc::XMLFormatter
    operator<<(const EscapeFlags newFlags)xercesc::XMLFormatterinline
    operator<<(const UnRepFlags newFlags)xercesc::XMLFormatterinline
    setEscapeFlags(const EscapeFlags newFlags)xercesc::XMLFormatterinline
    setUnRepFlags(const UnRepFlags newFlags)xercesc::XMLFormatterinline
    StdEscapes enum valuexercesc::XMLFormatter
    UnRep_CharRef enum valuexercesc::XMLFormatter
    UnRep_Fail enum valuexercesc::XMLFormatter
    UnRep_Replace enum valuexercesc::XMLFormatter
    UnRepFlags enum namexercesc::XMLFormatter
    writeBOM(const XMLByte *const toFormat, const XMLSize_t count)xercesc::XMLFormatter
    XMemory()xercesc::XMemoryinlineprotected
    XMLFormatter(const XMLCh *const outEncoding, const XMLCh *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
    XMLFormatter(const char *const outEncoding, const char *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
    XMLFormatter(const XMLCh *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
    XMLFormatter(const char *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
    ~XMLFormatter()xercesc::XMLFormatter
    XQilla-2.3.4/docs/simple-api/classATDateTimeOrDerived__inherit__graph.png0000644001725400016040000002030313273140076023312 00000000000000PNG  IHDRPQa)bKGD IDATx{TWoL@`"RPPX\Z\Km׮Zm(=lUw==V,J[(kՖ  J"!l0FaTweeevv0ҥKyyyƶ2z|CrssMk&oF -o&M 5P_~!3Fbbb<==,XPTTDK aD~ŋRT* B6wݸq3*]]]999QQQ?\qccx</QIIIYbÇ_O>33J2;A `㷍-͆A$%%|DDPP>tVSٳg=<<~ב svv$IxxxlڴG_|@AAovJJʑ#G`g\.=11qppPs,LcԭS*9scpp˗(#K+@mmmooooookk믿e_šByv)5ϗ*`2,##յ~P(-Z/L&twwۢ 6ܾ}[(Ξ={޽9kG18p`ԝ O*B[7n+JadܹZ{D_P촬aX,5kVaa!v uydnL&ӹ9L&ڵkpۀo4Fݺ3g~7 ƟoX }}}ovPPvvv6GUWvz-D"t6.\ЬVYY9wzPhggs}}o4FݺI&֪+\z!~ׯ_\.WjdZMU1\a„"@ H`?4|͚5~)19eeeaooLfcc#\S2IV~u<==_nY1a|Su\. nѢE۷o&TSRRD"H$ 5޽{gÆ .\ۻw/ɓILLLHHHccH$ONN>ȑ#}ԝE)ɓ'755E\e˖)Sp8>-&TtD@fՇg)H$q…7npv}999͘1ĉ|d}$~oo'xbp1M͠~jnn3'{a?G -oF -o0 |XwN6VFvsscX}BQEwLf61cŋ _nGtbmP<~ _! W ?_Ow:9ee7{{,քjӱ6.(f&HRyp`` ZI~"KJƻA3"h  X|\0(қ==4de\=I4WR8sFDWJ!źД+*DJUQq-)YT|wt<73R`2O؆g{ǎӦM33I2*+];;'OTT… ͏c5,Bnn>뗕Gw.foPXxP^~K&;k.Ņ bX>ydrTT~~X|]oY(rTCwFV-߭* .2ǯқAwaa5ɀ9@T5;/JR7i}};)Y| 70ZR>.(bcZIJZ|WrVPx*%2a?^c|o- [[Jzi\?7ĉ{My>>g` P H$777u6m ű[T8pz뭜ꏳ&hQTTdww|&o߾=uԱ*$ ,~ᇆG9\X,M&UTT=+ `b,yYYPr cR{WIx|>ѣ; illDzQuJJJ@@H$D2rx \.߲e˔)S8N\\\__6}ݻcbbFdˢ>kF188֖?Н!K^r< ݹBg'O޺u+}I˗/;љ'KOO%<cqoF -,b |{hNdLDEEY*Ş:~O9o_X҈+(4b>ysvҝAFCCǭ[tbm}zkS}(<] rjllPfg_Fpo 7fzS2hljo^a6'sAU$1%+oT?^!==/zX|J մC .*a 'O ZG=!iI8;0@fh?tm`@ 0Δ_@Ru\ Tɡ)5H?Ղk<<8ʇ.P1-oF -oF -oF -oF -oF -oF -oF -o¬;H$]v{koS*54Y㻲2;;ۜt=e_t)//ϜGnnA0c!227Z`h}5|34ܴiח4gGG |G$Ijf"??ߜG [[[k6=tt/zyy)?|޼y"Igƅ vvvۻpB>6}k׮ٳ_~a2K/$JMMMO?4,(zwM}a9G&%@,U*ղe˒ţMLL\t)I5 3##&l1' om۶.#>~Ǚβm۶I&r:~'\o100`8>5ؽ{wLLzтǕ~\tX˗/ϟ?W_}g+'OuV$˗/Zig$x|7Z`hakf~#3v޽;mYD4˷2KVBQE]}Xx9Qy^&/6ysGӝA]TT'73A7A(<<~AwY!5t r Y T:%5|5=4Dܠ7%+3gD FA>h.(2aŸ?#R*U7{ziL 仧ܹzTi(p挈Bu//)!WT*퓉*v{ZR>xP]-yd|ܹs,wa2رCR)I𹭘ǀ?gΜx'''{޽{[VVfrd7|SUU%J=<<.]d2XB]6vZ[[_~es4-)*--xeeejT}vXL<_Tweff:88/Jmv } 닢h6 ?eʔ[ #G\rO?0A{:4j4qpp03O0q>ojjjnn~wԟ&N _8999;;s>(U*\.78N\\io8pBwwK>}zde6J6mfa9s}W^?/Bff%%%6mvvvQQQ%%%0xMME""hmϜ9׿W_&AF6WT7n\zo޼inyHH`ٲe>>>YYY===pRСC~iMMѣGKuu222.]tȑcǎcdXBۻssswc` <$$޵jĉ ,ټ '''..رc7nLOON߿۽{-[XlD"ijj2!ȑ# >}7xӧOߺukee_~ժU{{P@ooQa JO w/V~Z.ߺu pPpdm۶-],ZȴÁ)JKKJK/^SVVeT@`X---|Ahoo S/>cvUٹᩧҌ0sLXu |ĉ垞/^ל$I͉goR^_|9zhYYٖ-[ j(*..  Q/&B"6gM:\c։ΰ+WoՇ~A]B(9l{̙'''߾}{ƌD"1aυBL&6V\`aOOOwwwggg]]ݞ={R)|p8A$IXax`tҌwyƦa_yL[oUVV?>>>jgnQ9/X@P|7W6ۚ5kzhzzz[[[HHHDD7JgNiX˗={vr!]]]3fسgc<כyr ?lIDAT{ﹸh}7Z`h}:η{0~ַ… JU<4y晈5>/Y-oFf‡IENDB`XQilla-2.3.4/docs/simple-api/classATNotationOrDerived__inherit__graph.png0000644001725400016040000001507413273140076023422 00000000000000PNG  IHDRvrbKGDIDATx{TSG'$Q`B Edu=WyX]PBvH֮P\gTj]*Y|" $jW&?fB$0̝|g{'37!$: bL@^yN( {d1,Æi5_srrtN +?S~~6ZWBBBDW8A^yNF+IiӦyyyUWWkq?455F@KKKxx%K.\`4jkkI$h6Ν;BP(r\gg7j\ܹs>ފvаk׮s}}=N׽s`ccs!kk/_2 }}}{{HJJ=q/|uY.+J2e F#61 KHHf0 yzzbi~[H$ҹs\]]-,,:JIIIVVV[l@aa]NJJ:y$QܶmNH$ʫrypL&KKK;w?T<" rqq… U|.;T1(q|``͛f*ʃwttD" '6l*i ws=u"_rOOϟgOOOţi4ʞ0000T1Ǐ066xSa/yr9?yD٫JݴiӪEcu~511ٶmۃ7N+D2&CPTFF %ruu_|y@@ÇqٳX[[z֖(KR@ss*i w555hhh#Ob1$jjj-[sNgT%III<yyyEFFjh KKM6ݾ}&99peIxx_}}=sssۿ˗/'O||UIHkѿ+qEPx9s { 8.ɦO@l∈3fXZZFEEhAJ$xEOqAAA,lҥEEE;::6oliid25掎.]ð+V5T*MKKsrrzw/_N^I B?i)> '+ p '+ pjٳg3g&R+L&BhǫwR}=*,_\07A;AAl:}0Yί.TcؤѤa{W$7o>1t:`Rxp~P(F.T:}0)VR(FTv o9{KObCŲ~?_+H ZXXadGd_:;{ kggORr%~*%ע"_χ|)kAA\zAM.յ2HJfϟPJ&._\ 0{e-72ߓW`ɜ:B&~*OOs,V\zրNDOfW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yN&gΜԤ{?*uB)))=cBSSS\\BBBB l,& '+ p $^I$RmmG@UA}}=N7t6r}bjTͫ'Ɔ0,!!ښ`$$$` HYYYVVV)))gΜ={6F۷o!S]q 77w>8WީF.hѢD"8,,L,8q"322mmmܫP($ .$pP)螏G@ `2MFT*U _U)( kww7Qذa޽{>}rW^761W+V(ރyxxZjMOo@r~uBy,+++++KmD @^yNW8A^yѣ:v"dxޡjf׸3g؉TJ*/ik{>K.ս1e|cT˻ݪUgF:}0fWJKD=EL ݷo2ܷiV0)oӬ`Rxϯ ^F8^QT(4tFc^E55r9I&.^gؔ^J2DLR 2#'LI@^[B=:JjC ZXXAU*1LSn|^+1L6Y>>zffڇTŋUzG MBO&ub|N72Co/]xl[[sb03P^`|`ӷ,4t"ux2 '+ p '+ p '+ p '+ p '+ p '+ p '+ p '+}uDrLsOB+,Y0܌pkBCCuQ|JBBBt\NW8A^yy=pDJII1x'*֒H!z\"8coo;t]r377߳gP[N( ;wopsse1G7I&D"?~bW}x-++P(mmm8WVVx<p88 |T*~:k֬III܉ '6l1JUUb2W0o<6M}LUmD U"PHT/\Pݫ>~6''G**͝?>QfX*Jl 6lwwUvBsLHl:99555e333(ee>}L]]]]]]5Py &hz*rss9O?477sUH5 .XNNdr}}=YWWgkk},K /Bs< Y x |>I"LF.]uϟ+j***Ő8 D,J uvv󫯯xnnnjEY&%%x<#_ΓDAAAfٲe;w|&5::S厎{>۷o6mX, VXajjJwttl޼ҒdiEūD"gX4-,,L$)}JD̉'f͚E?"X1c KK˨mx}YxxX<9Zq'릷B"dee?йhb9ϋ/裏~:MsцKa,Gm #== 0+bT@^yNW80Bh#qS#: եN@hk,ׂ H?n5t.`Rx}𠹡%8iV0)^PE&y2z8]a_=.j4lJz~ T*e2,{x"La»R܀)ȽJ0AgΝk#r^TRFlvA{pBQG ]\#) ^WR590S0{v~_IidD{)[OP B&߸Dzibs#}ʕsMd,K6挻GEh4ww{{KwGOfW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^yNW8A^y_}_] ݻwBxֶlbB"K𧻓K˗  st~NW8A^dtp#333###}||7inn9ΈP0$ɩS޽+ CCCdJlmm`ss1MFp^ BpΝD0}t@ii)Yj6 ۷_tISSӰ݅ޘ3fDGGX'OVTT>|Hu;vɔϞ=+,,255v;#\w][[DTN:‚x.[-ڵkkyoW\. hQQQo O677?rҥK켽[[[^:8‚N{xx8pdk3rӝz-))Y`koo_RRM`{{ÇEu?~|```ǎ 6?Sddի;r@ssbܺuk@@@NNY\\eillZ\\LtXUUqF-D (++#6Rizzׯ_.JDn_M0 [v-r<''gk֬ٹs/Ua$^ErJ-~##k׮Gt:xsLEmmᆱCmmܹ~*zw6:uWiiÝ;w233j.J9shxkrر> j9NDD67 %H{裏._L̘1H(Κ5 B8Pߟ|r Ծ>}CqH$ϟWeœ@Nj<==MvQ[[[믿vrr;wP_WWHWos\H?ajkkd P($l0 J e``8{*(`n*>򦦦7otuHAgggGGG[[[MM;}BaHH񐷷wffw}šF\dIwwS֬Y< o(//⠪󵤤dѢEʝY,ѼH*vڛ7oVTTv:v۩TU6mD&^r4&&ӦM ۽{wAA"@] ɷ~d2T;w*ۏ?رc$iʕmmmjGP(>>>ׯ_QTnNR1 ;~x{{}oů>W۸q\B?Jt}VW8A^yNW8A^DuzO/^Uč7()t~NW8A^j.Ne IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.png0000644001725400016040000001443413273140076025166 00000000000000PNG  IHDRIbKGDIDATxyX ,(^ /Bzmo **KE[mEWR}TP(PP}تPEPZ" $ d9w‰xOə9g~3ef00f rHX$Wf͚G\#Єd 0ꈞW[[Kr@'N\vꈞBg&R`\ܟ g rH֭[,+33n722x!-I&1ҵJ g:tMVZ%Bϟ?_lٖ-[>'''X,X{DDiʆ B۷oowܱuӧtKz466&%%!fϞؘz)xܹ~~~wrV"kkkL1NMMSǢr9 >>>tϧϜ93djGs\Arrr =K ٳG(*ʦ&B{'JiӘLym`uu7n܈1NMM?~>|!.7& rH g rH g rH g rH g rH g rH g rH g rH g '~ԳzmMvg2w=%22'"#ir<##'=g޽=ꉑ{3k֬ 3@ 9$@:`0jjj}XXp\\\LLLݷl"J}- ݳ\<;;ÇQQQz, JٳgüaÆw(((cy-gNNNB!o777#d2YTTmTTL&a0p–-[׷oD"j4^B6ꚒvV>`|wo]% dkkjժzBT{>}:D'oѿ;5-,X`ccpRi>ћx!==]ϟ^__oggwUqΝ3g|!6l؆ B&M:w\ttx#Gp8zbccx>bbݻ;.էBtPPP(LLLD={*, -::jӪxw~=kܹ~~~wr|@]IGd֬YfrϜ BggghÃSgΜ2dO\.xРA999_~V% # JeSSB]v9;<ƸjW-j777mr1eee۶micrT*-ZrʴgR3fظqr'N+,,>\b}ދ`dgg766j$im^6m7o%BرcP]R,#ϟ|{r8appU߿_YYysv2D~=qywy::88qcc… #""U/R8::ZXXB]U<<<;=VnLJJ߿ʕ+K---O %Sryttɀ֯_O_+AXXCdd_xt箛==1+uٳg#z⃃:- rtR}W;@^m|| g rHzQ/Ƽ~ fʕ+~O#s鉑N.g\f ~y?5qq73@]PجZzș=_秀B.3BR*qVu}ӛ@ty߸;/wEL[uuŠZRI=d2yy[R/9VNM&A]7B 23.ڂi+3Bk@;wUUz,iq UR9Jv CCfFLq5@δ}S&S Z:ݼN,CCf^^9zz#Y o#02bP(!g]{m_;*?ֈ.NNC[|^CgSw! \7 3@ 9$@ 3@ 9$@ 3@ 9$@ 3@ 9$@ 3@ 9$@ 3@ 9$@ 3@ 9$@ 3@ 9$RiQQBUeee0XEvv9sFo3\:j[* rH gw*|}}RRR ݸ~k׮:99#V^mii;v\tԩSTߗY&ѣ%%%o߾~~~s522޵|V__]aSSSEEgϞ'O8p@ӒϞ=;{~+UMF?}ry]]oyyypp۷9#{QXxq@@@hhӧB *ԧBcǎpB/^3f =:u*<<<00O u'Nн._6}d2m555ˣ㓞NM/rڴif:|p[[[a҉9?9|8PglPVVOHHꫯˏ9B-aÆ}֦Rs{I'NڵK*feeuҒO#,HKgsssyy|@T͛7>xʕO?4%%>RT"&%%?^ӎ:tB(''ù.][tiBBGˋٱcիW?ͰQQQAAAQQQ I||Ν;_TadusʕgڴiTSV^mkktR1tE_KS/L1H$FFF'N,,,466>yd&O>200=z4ur劷w>}蹚 655 @N8!DG?'O<*??؁@ss & Ξ3ggĈCCCBrܹs+Wtpppuu]paztyinn>eʔogΜI?433&jhhpvvZ߿Mx}eee9r 9r;vݻ/^I!nF?glmmZf ui666د_'Ot9T*---;vgXXѣGBRttttrr|@]6ۨErÇ:thӦMTž}c +`B...yuثUTFGGM6i9oowƍkתT'O$Bd2>}Mw\h=ruuEZ[[w9,xsss|w BVVV|>A%[Ӏ&mQM]f̘߼yj5jTbbbCCý{֭[+ ))߿?}ދ`DEE477d2ell{ssɓ'է6ѣGݻӳݫ\W H$Ǐlmm---BOniitCغ;wPw~ +HB&&&[n-++?ÇK9=pϿ~rrujt4gyyy"($$bEFFݻ7Xxqll%K ѣ.]3w\T%J{・KR꽌6nܘcGG-[i.CݖN|}}On+׫X`0... bŇJMM]|O?^]V*/koo=s̢"кuRRRꬬ|}},X@zO>pܸqTau{ ͛[7##nym_+죏>w=rJ\fA3@ 9$@ 3@R/fΜ9~|.XxpH g cIENDB`XQilla-2.3.4/docs/simple-api/dir_000017_000007.html0000644001725400016040000000624213273140074015715 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    framework → xerces-c-src Relation

    File in include/xqilla/frameworkIncludes file in xerces-c-src
    ReferenceCounted.hppsrc / xercesc / framework / MemoryManager.hpp
    StringPool.hppsrc / xercesc / framework / MemoryManager.hpp
    XPath2MemoryManager.hppsrc / xercesc / framework / MemoryManager.hpp
    XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp_source.html0000644001725400016040000011211413273140073021132 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATFloatOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATFLOATORDERIVED_HPP
    21 #define _ATFLOATORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <xqilla/items/Numeric.hpp>
    26 
    27 class XQILLA_API ATFloatOrDerived : public Numeric
    28 {
    29 public:
    31 
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* Promote this to the given type, if possible */
    47  const DynamicContext* context) const = 0;
    48 
    50  virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    51 
    54  virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    55 
    57  virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    58 
    60  virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    61 
    63  virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    64 
    66  virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
    67 
    69  virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
    70 
    72  virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
    73 
    75  virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
    76 
    78  virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
    79 
    81  virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
    82 
    84  virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
    85 
    87  virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
    88 
    90  virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
    91 
    93  virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
    94 
    96  virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
    97 
    99  virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
    100 
    102  virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
    103 
    105  virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
    106 
    108  virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
    109 
    110  /* Is this xs:double not a number */
    111  virtual bool isNaN() const = 0;
    112 
    113  /* Is this xs:double infinite? */
    114  virtual bool isInfinite() const = 0;
    115 
    117  virtual bool isZero() const = 0;
    118 
    120  virtual bool isPositive() const = 0;
    121 
    123  virtual bool isNegative() const = 0;
    124 
    126 
    127  virtual const MAPM &asMAPM() const = 0;
    128 
    129  virtual State getState() const = 0;
    130 };
    131 
    132 #endif // _ATFLOATORDERIVED_HPP
    virtual bool isInfinite() const =0
    virtual Numeric::Ptr invert(const DynamicContext *context) const =0
    Returns the Additive inverse of this Numeric.
    virtual const XMLCh * getTypeName() const =0
    virtual Numeric::Ptr cos(const DynamicContext *context) const =0
    Returns the cos root of this Numeric.
    virtual State getState() const =0
    virtual Numeric::Ptr ceiling(const DynamicContext *context) const =0
    Returns the ceiling of this Numeric.
    virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the sum of this and other.
    virtual bool isNaN() const =0
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool isPositive() const =0
    Is this Numeric positive?
    Definition: Numeric.hpp:31
    virtual Numeric::Ptr round(const DynamicContext *context) const =0
    Rounds this Numeric.
    virtual Numeric::Ptr tan(const DynamicContext *context) const =0
    Returns the tan of this Numeric.
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the quotient of this and other.
    virtual Numeric::Ptr log(const DynamicContext *context) const =0
    Returns the ln of this Numeric.
    virtual Numeric::Ptr atan(const DynamicContext *context) const =0
    Returns the atan of this Numeric.
    virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool isZero() const =0
    Does this Numeric have value 0?
    Definition: ATFloatOrDerived.hpp:27
    virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the difference of this and other.
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    RefCountPointer< const ATFloatOrDerived > Ptr
    Definition: ATFloatOrDerived.hpp:30
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual Numeric::Ptr exp(const DynamicContext *context) const =0
    Returns the exp of this Numeric.
    virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns the arithmetic product of its operands as a Numeric.
    virtual bool isNegative() const =0
    Is this Numeric negative?
    virtual Numeric::Ptr sqrt(const DynamicContext *context) const =0
    Returns the squart root of this Numeric.
    virtual Numeric::Ptr acos(const DynamicContext *context) const =0
    Returns the acos of this Numeric.
    virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0
    Rounds this Numeric to the given precision, and rounds a half to even.
    virtual Numeric::Ptr sin(const DynamicContext *context) const =0
    Returns the sin of this Numeric.
    virtual Numeric::Ptr floor(const DynamicContext *context) const =0
    Returns the floor of this Numeric.
    virtual Numeric::Ptr asin(const DynamicContext *context) const =0
    Returns the asin of this Numeric.
    virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
    State
    Definition: Numeric.hpp:159
    virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the product of this and other.
    virtual Numeric::Ptr abs(const DynamicContext *context) const =0
    Returns the absolute value of this Numeric.
    virtual const MAPM & asMAPM() const =0
    XQilla-2.3.4/docs/simple-api/StaticContext_8hpp.html0000644001725400016040000002135313273140077017260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticContext.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/simple-api/XQilla.hpp>
    #include <time.h>
    #include <xqilla/schema/DocumentCache.hpp>
    #include <xercesc/util/PlatformUtils.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for StaticContext.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  StaticContext
     The parse time static context interface. More...
     

    Namespaces

     xercesc
     

    Typedefs

    typedef std::vector< ASTNode
    *, XQillaAllocator< ASTNode * > > 
    VectorOfASTNodes
     
    typedef std::vector
    < XQUserFunction
    *, XQillaAllocator
    < XQUserFunction * > > 
    UserFunctions
     

    Typedef Documentation

    typedef std::vector<XQUserFunction*, XQillaAllocator<XQUserFunction*> > UserFunctions
    typedef std::vector<ASTNode*,XQillaAllocator<ASTNode*> > VectorOfASTNodes
    XQilla-2.3.4/docs/simple-api/ExternalFunctionResolver_8hpp_source.html0000644001725400016040000002113513273140073023050 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunctionResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _EXTERNALFUNCTIONRESOLVER_HPP
    21 #define _EXTERNALFUNCTIONRESOLVER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    25 class StaticContext;
    26 class ExternalFunction;
    27 
    28 class XQILLA_API ExternalFunctionResolver {
    29 public:
    31 
    34  virtual ExternalFunction *resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext* context) = 0;
    35 };
    36 #endif
    Definition: ExternalFunction.hpp:32
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    virtual ~ExternalFunctionResolver()
    Definition: ExternalFunctionResolver.hpp:30
    Definition: ExternalFunctionResolver.hpp:28
    XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__dep__incl.png0000644001725400016040000010352513273140075021276 00000000000000PNG  IHDRAbKGD IDATxy|SU0{nI{){YĂafdQg e@DqQG\pAEEed+, to/6v?\.6i|'9INsF= "AD  H7dݻwt+@1W^y%''' @ `ؽ{C醀9t]w Dd=\[:СCn0P@$`H@ 2F:SN% QF-^usc֭eeej:++d޼y ΁^|E>?6e˖mԩSm&õA ڼysFFmjj/{챏?8111joBluɋ-Duuu}ѩS^u:I&}xK,BA̟?o'f9N GA$x<^JJ B(--mv%^joฏD").._o߾3g B c=b @(4'ǏGg̘q=ر!׿!twn]wu]F߿7oJԩSϜ9s}?>`:ԩS?i;vϟ?s̏?8Dzw6mڄ͘1 ֱcxwq\S.\?ad}6l"ADRB>Am۶x-[_ gZgΜOv{ssFF/Xf͠A:ҞӧO{=ؖ-[?G-^>Cl;SL9vA;v,##l޽{_y啗_~ɓ8Ց͞>7qN/))9rH^^ӧx Ol^fSSSBd8)ئ- @(A|&L@'Nt\_書:>}1cƐNVn ؀`n92==\P(BMMM8ӑĀm*B^l6777 s=3jzܹ!vLĉrZ[[SpY.PIIɖ-[Zmmmի݋ӟd2V\) Eiiŋf͚l@0EEEO?sH7oV*/_o`Tג%K>_TTOJLL\x,X0mڴիWٳgȑs?z7o裏hɓ'/Z!O>yU*UFFƴi̙b NO<~|~ }=zɤ!2eĉ *BNh4۷gt[:M4;V}hՑ#u:AGy<^ A$Ғt-/opA [o~ѣ%BX,F}A$q8q:1  k4t:Vk5l`;Vr `^7%%QTFgwr"\nۄb\n@8\nP9<ޕ%iiI8QfsPwQEERjpb.7Njrc86`XVhl3t%%%nݺOH;֭;i,pt: B|SKj ?0t: KZmٮ&oH" #O "A@8_i(~l0O11L/^ T4?rXCfSkkѣUWzAC`UV:FPƝh(&GKL8ZJ GCOUJNޖbzBFCtBG[ocB%&ƆƲSSpФJ+2Y2~\ @D@0\.Os KJeۯ%H+cUs+:4"뷻\+3>y#DsMzlrP,VzLLvll.anm=-KM䷷׷׷7x-=*ɿG!E0UޖVA?0sK  &KKKi99i99I N{ln GK^oz^P7TΡaЫ \C^R\̝jjt~S}+'s޼g4fsԡh4b>O$u,Ç\.67Y,^؝-}t+h4ABw:uȸq͏gvGL!:;u:U+?^0DӇ Ʋ -!.'ggABBLW0Nd*"Ǒn:55   LB^*+zX,FJJB $ \Wjjtuuf秗յ(`KN)11lَ{O>L|Y NZ pAQZ*Keeu^/d^+E>Ӈua˝BFTl鎉a7bƌIrX^jm۴O>)e0h>UЏ?>QT$dڗ^NqIA{|fP{[\`lh066 ~\n<#J>JTP8[u$_R2Sfg9M$}пA$@3g9&HLd]sw-m3 6Z? yN1t|CUv{n=uF6m裏Nj+*87sBB̰aL4wҤA)) >[#/ljFzCr\mh0q;+R{t~YGlMdD *.AvѦV[ NgzM 6BMɜ$pӓnZZ@MOO"FnRi"bOSS3B!., ;;|!@ _B_jT~䈼d҇ N\X\BNwZnfqxD>3߼tI3*ؿՠA.D^.XpNY3sɒia|EƲv힟FCdn͚O+xdj.2noVbjh0e_VnʑJsҼ:G,_ci4q8^oiVO))INԳn:plh>xOї>{Q.w l5VT4dueeu+))v,4(s 8b2bqOx̀WYڧa0`A$@`+p-k&()9}e i:,US#+p]Wx OFVL=_ٳKnknny?_|e F۵`=۷Lm L?aƍshI;2\`EEH 0!B gJe"3X`zIV'Gj?cǪ[bƎ)CW7m7~|o۟A ǧ>#FpnՆ׋RRYŗ=ϛ6mX Z!j+*IGgиq9ѓ922W*o^>whqItg}k|%H[n`ުX+x h#1B!OO%'EpN9:\!9/_V6tZ6jPy'^J[VVWZ*?zdjIL3&z?e˶7Z5cO=~>\+.gxxIɕ1JVkۺu_~ ' ttI%UT48QPLz^'.*(HjfȾ@e3P|rOtV8"?fs+)))Zw=bq>0lVղeӃ;>{l+_z@ټ#i[P 7\ST 0xdu=Y/''q:]gZh-n&IOMM;Č+YqH Doa j^/zZmz3נEp |j| ܮ>Q'>rDn&-ܲjծ~C%<'Z iN/[6}Ŋ+_Dh ǫ ;I6L\\[T$0!JQ{[$tW(Ldn~g> jABk b\5h)M8S[Y8؜tJjС>P?WZmiicȑ?g2o`ҤH7'l^K_|Qygavvj[fZE&ȨÅ<ѣPD/`!2 Oy{<6$>(`3jR$n "AiA!b=8'hvv_jБ/+7U,!j{_v{/^Te'kVGzz҄ ŹRiȑ>^ݯ{9sƍsxh/.,٦T6_ϽtszJKKo)dӧ뛛[X,С"E'N,HKKtg~YeRc 釢'O|/ Zo@_ 5וJSK˕:\/ˮG]Dp;;lPa/-џ'jl64~|.]R/YRi!40^>2Y-Gv%O_T$хoDX\f?biD0 DBzl6399hK]xnҶ]WLZP ϑ#:E^?FN?>ﭷDH79R}N~{awCv{ŋW ՙͭx7B>NZm_擃'<#ln: $hT6f2k8QZZ"t&X0+25mmNʌ-'fh4W"> ēQ2w)^YT[t5Op|~R |j8SRRX\C0-[~Jֶ5k|~p;e*-A٩>T]v{JOxVp~YgCciC_g  ,n`TfΪVZZmAƌ!$ d=I8w=3p;n9ϟW ?Wݻ˞~K8yf9<'kֶaDRiT;n\N݅_!x\ ìB9^$Pf]0h) BgV*MnuEsR%dxC>++5:n<8#&hmu>]/du'O:ע?'fekr IDAT4"Vkڵ{=p^ׇ'u_SSeWxm)emvw}AP>\BĉprkrMEcק[@A$'9nE64C QK,NNL`ƿp{MprrҮ&r ,ϖ9q+[4[H$ɑn`/)-/_nD7m7~|oɒ:N7VT4B+))v,J`ḫ Xޞ̕FޥFp|*Qt6 (D*k$y`֌  D/ih0v4.;wtgrF H3gFjg!b@`d٬h9uO7.]]w}SnoM#5 =?_T$ mN+-xTC}=~7Ɖz.F{HI<&*"Ӹ @w=j2p;N Ɔiə}(dGD=utZmٮd|i\p\ $]dT~%- }9R; sr"ݢhw+v2sĉnNv{/^TduM'O6553KOO 'fedY `j-*YhV҄=͵L&WJOOqM.\|=# 70jm7++5/q܍f䤑 Cw~LLV)))4iPJ L}B!Ҵ|e˦ow aa4WϿ=PɳvVkPB59n>?iԨ,rh"š .iv'>V.b<:6ʤX5 ~RZZmq:x5'6#C<"/=#qPIOȞp;5Y`kϗJsKJ oe$I7?r${v.[̔w߽PQӇ9ϟWTT(6B}]?ddPA]TfަRu:ZmO p22|)3-- HvFcNll4O9'' 4ւӈejjtd5b\j/a~>(Q'jpѢtOII!9ZO?W_:h\lǹsPc>ZLVd^!+.=:fFQ*`!2O\e>@(A;#O 4!jv HII^AYY"f7"2V'GP6 vuџŹRiɅ3G/v{^}"ݜ>~MM Bn[ԯ:/\2\ر1t8H2qbD2juAedFfvP޾7wO4چW9w Adusԯry%{鮫3e^oCW+]d/&G5*Ֆe*-53e`NW|3f|չ0].Ξm\t`߰ٳF9VCק/++TT$3&jtҊ ᡺:==9)Js?֪P4{H( @_E3|.Nvv*WهG *Ax&>lP*?>J͒% >; \c_}u.D'{~񢲬4[ÇB(!!F$<+B@"F;?:<ÉIT *8Eאџ#G䍍F23yr!&ζrGT._~;ԉ'vſjG(/oNZb IyRiq905"3aaJ4p8\EfΦVu:Jelڤ3+rB@BYIvkD'Ko=MM4HUI\~'y^(pv C.+Xȑ4oB4/&jwߕ?͛/*ʌtsݻ֮3hw/(G9㭮UT4BUUZ Ss<2.^wP 8qCP!Xm%Z U4 6< F'8XPxmA  ƢTT*ZmV*x뤧' ܌ X,qBD@D-܎?@wC&rџ> 2se1B џ`9^|O,\8gÔ҈hh0.]źuGq\LV+՝:ULL:p!4Ζ* J @ݣTZZ=Wpq$nD3|LsЪ*-@`,-dZR7ݔ#JyA':Ut_w#ݜ1o5F[S++r AIpBz3'O!%D-$Ԁ `feDg_SRSYZ!6F&rN<812sXZ}]g„|89.[LG3g,f9^}u##Vkhhdv7;jTT[T9~|ԃnW4 }Ae(3,K-s 8Dp>C߾UI-e+R >p#Oiر斄cq1c! r͒%jjk|ɑn|m{+H(v{/^Tdu80hÅ\` p.?v!8+3Ψo8gP */Ժ: ȧp{eFG_K->xpd8kYY]i*%11fDA۷xC7o?77=-C_$$ Ǐϋts@Gi +t\F"how_ r,3֊adCV `z= +/]M,\NmL&=/p!4/;;5m'bI2ԅ[3ԀQg8`$` åTpY.ҤPjZmV*MW '%ŊD<'D"XedpbHܷn5>OpzߔҚ8vlT џsWNJ}睅Źn< 7o?/paZE&].@鋋sGʂ1Q¿|yg1`! G\ƢVjFcQZETfJMNN 9bqHrjY "A pTfd0:qqlX,}G 텅B!ܠ,jJ---qD\']UU%KUUi|pAQQ(+jb1I&N,H#FppAt2<9'' ]zDh4ҬZ 9nZzz,ddp @f A$D Y'[BLUr&9 fn'wrB $n3e'kVGzz҄ ŹRiȑO/]fs}w1"]v{~_RRN[‰.TVVw%ÅF΂ɧ=wT釠*E?@-1Lnl4_=!sK% zO2CE V=++@O\y}  AB8Qc9! v@\o hii7eYYLVwT1BC'%F O9dvϑ#:%pҼ\(`>QsLV瑑Åp" ^C痑LXJinnZt:$QBr9(;;ˍ; D@ǰ`0r5~VVHă3~L] W' 0w:9&Y&mowS? #@pcx (/oā!biMH6L$I7ݔ6 ~̍p~gCf zچ V977rHCN|Ň%Lf8"j-N.1?6џB8CVJ&[]Á{JKDvvjqq.G ,11k꡼}?p̺7kkuv{;^ˍ'Gq">%@ Ђ TQ>bq2Nw]A.א"/zZE"xAytLV+՝v;8>)i"Bmx,n6v7ĵ H+W|7)II=өr:U-/=$"h4FJ얖r&m u,II7f;+L&%%%Ndϱ6[bY,-ͿGvЇtOlhP_olh0T*3%&'O|+$u??JLT>_uHY |F} ބ~) a0 X "AD.F^|EarΝ;iSyz}O5*))_X);^]]Muknd-hl6D3{={tCǢIBH.Ϝ9399Y(Ξ=ܹs DAֻ;{:(Gt ]D"iii!SSSfo[g}EwDUFɚ5k.+]sά]v g͚VjR_5|pЯV '|bZǎk6m6---tl6۸q6nxkn߾ox<+wթxkv+{iRN4tήA W#bΜ9sȚf-5k%Ozp}_C=dƌ֭#u;S|:X=]vhM k;۷o'رcL&|{wdaU#i]!cWܹsʔ)ӧO2d5A4njǒM0!$ .'|>'t\m۶= lBB“O>m6<_~:zhW8[nţfϞrJd{n -[g"!$=dΜ9_|quĞ={^fsZZD"Yj@h۷:4%%}!A/} tEjW?IV^Mʕ+-[6bg>ۇ@(%t(ͫB z?Dncz|AO?}V0 x<AVf?C b۶m!N糅7s=cǎ]fdBz>v@ O;8`CzSgW7|#\.W|>RTH$B}V_~2 E\~ĉ>N/G3{-[?!4w\?f#>:Nh4W^NxTul۶m^zH0\|Y(={ o0q…ӦM1bLB{dڲe Bh4̡DzBЂ|2D {W$2&&fҥ\Q8 ~{7}2R{H"RP@W (ʏ\oNGN8d2iψN]_tn{<Ç5}0dZ߿ǏWTTnt%--- 2 y]6 nJ֧~;>tAx"6ڵ B"^|#gΜ!t<ƍ>F]HfJ!D$#K: nP(_~a oz۶mN`\pW_!tAo̡DzBЂ|2DF{!cB:iϷ'#-G` 7uΝ;n75ۮ]A}TUUbrGcƌ r}}}FF+xB|5o&xȐ!7|Ys IDATfٳgذa}JNs䒢mQ@:y "_G-:*III!8fEv3PU{ޫL`O  wW_"D!syG^z%Z__AAoC/} ;4tEl…/¼y ?a>_NDQ-D\+8Cy<]v0+Wt7B{7sLP[[ܹs|3g_ >d:qBh…?9[ZZ6n8c k Ճm<ϟgϞon"?wPK*o!r9F }aB7ӦMM]brG:9s/[nH$x!hs=[nlGݿٳ`_kjjb1Э̡E\_B>`F]GQ8 `8@$#Ją媰 aP6\W_ >|ҤIiWqөq AQu?{U[زe 2 Q}M:J& 4g 0ķC8 _glX1csV^}ܹg>cǎeXAn>/>U?zp׿:tԩ>,X0mڴ>&>Ҁ ЋcYt!ء^]1س@u0껀c铑C{n ]%?\Wp: ZhwA]zz)rIRff… 7HII׿5|>rnDj_cv'1bD||ׯ_߀Я`1A=Xbbntꫯ$$$L8ueB~avvvZZҥK. ?U:>}u~׺AgΜ6m2dvQ: <..jR_zCs!л볼HMMXbL?RWz?QӅ`q"ы!ǿH!CEvhi'AAWT=`L@pd~tCƲe'jڜn 4P46On8}JE׿fCLfHJt[5UUڵk 1jTQ|n_GV=^A<8c„qrƍ˕H#4{ o:ϝk:}ԩ:NLÅWHJ0Vŋ T.(ΜiիtpESScbnmZ-zKƲ ST9jTf^^:FtA \!.^TUUin=c)Ʋ"NУP[ĉ*C ! @! .(+*Νkjll&Ţ#Ds<!V0imutVΪt:`W-zM4L-6ͽn#5!ŋDT8Y"Iy"QHăc@cB̙;6HVF b׫gdj=pÕnd eh#q7|sϞ=i F;mcd]Zvvj͝;7|MlU*ZZXN'!ĕ\^ʺǡ2"ng3NEz A p [wjMMMal-kogl1\n;lg .jia-GCln5[/^ThF#d8Pht}S>I!DM1d .h#}ܪRU*FtD,D"T#>@R{O4ITL&cݺDUp8!eWZ@7y=l`2n7>=un2uP2#8^qP^d/?OtAd:tyB`=̙^y^8\.Jenl464AM.&i2£iAVߏAIkx4BJJeۯNH32#G*U*vL;6{͚2wU ϜN_mCss A wM?|;G_-ֆVkjXXt:kSS31f332|>G(fefg 5޿sI:F3JKKi: !b123Syyyy鹹dj9zȑ`4Y,Nb1n`ǎEpi7˗ե v^`ЅBk7emP_ohh0 xB)) 99i٩99ii] t: P^^տPtjVkjFƪYZE3:6|vm.xSycdE{fӦ}jǕEE7|ns[ﳋNJL*+5*-Dr9N΢-[t r߃TVqGBaa0;;5;;u >?)rwWnmm48;~|ބ ').߁rUVVja``aNNsݤ?.}o#;NCeeXqw7x ߧǝa)) eZt$s{?b1nm }7<D ˳sɷگZB^/q9et8\-R*M@psB9{(qO7_ɓud<(&Szw'O_r\mh0VUiڜ 8BTP g~,_nǎt:z_Ng6dǎUxM7HRi+fO>kβSi4_/JzU;y>:b&O\CQ&-+ꪪA\Y*1BSwQb4  l:birϨ6!b1D">sƗ?q嗋<!Dh4$pVC ( ɠ{ȋ)|=33_Nxwu@"Aӯ&CBcb\2Z$$'$P@8pi*+4!7ϝ[k|s5BQ(L8;ZWn p~;-V!&Whh0e_Vqq#RiɅ6m;MvBfY2INH#( Džӣ`V.ZwEEjwՇZ =(`&A;'elL2?p9N&Bd^0|`˿lnllY\7L0j}W_tSSMYhh~v#`&tttGGG\|qr~Œ+c"CFFo\~/ }Kes'ujjBJJKbEלu4$`r vt ~]e4w@mu[\:o8+۽k׉']_ߺk=_v!&ˍQq,''QNRSgp; -.. Q(~ŏ=C/J׍힩Paa&૯Z-{vh_XX̙3>p, VZ$(,,4;[O)Cǖ6Ԝ<88ƟyF4/]sM}?f̘>.ygm|crOW_}ѭ.abx=rCqO`F`uM<@|jء?.#5 dG.cVg"SuY ; KKSϞ(rrtyyI*sϟM&t9ThK.I! 7ճOА;~~Z.cKN##>`-[''EVu%gѢ씔s|*=g*մEuZ$t*=>ii LYO ܹVc"M.?͛׷W 3Ϭяwyi0Ԕ6?^?өDWAAܹ5m 1!]* }8 |=&O<V5s :`b! de45u4657w m&]h4x>VKNOLMJMNhTLOR.`SSO~$M_JMmʼ$#ٵCk4mV^rI$IoكT(3f8˸h2lCP}DC_KU^zij~~ö?:߆>)$B:Qn6 i_Yi;{=D}YVulv>\%|EcH⋓㫮Mϯ~ۯzp֢o/Y_ߺz &ƛ2m?g_>pM|ޔܸj cE^a8{JJjz{ʨsS 3/1 } t hL.Cԓ$)"",>>Z>NNLT|ؽ9 `M1CGڗ{{%ˏ99:њz,=~r F+v1oWݷ=22,`DsoyGo۶2=]JsiiCIIPSQarii OaaƜ9)4s^gGm@swc=D﹯Gk*m$ϐH|L_64 %'s>@x?ӊ8H{/Dgر D*TPx,> ˾}_G c6;oek\{=./"z5_W=ӧG^tQRaafaaI+>  4{n9&$ nlv--1SIV$&q)):]^txz8l^P^n4%MuH>'.ѣS+D*4JbgcukQV+v>C*U֭Eg{9?|w}}.b3ubs)Qz}\bblb*))^S%%%&tM [{GL"$PssH[ZlFZ*99NS%&G¢,f^T՞#33\1;w"2 CD*TPQX䦤{Oeyժ7ˍw,}c8?7즛oڴbtv:ID?%%5_,+NH'+ЧXVf{aj[,I4i4 `*f]*fUWE!99QQ^rZ >\S=s /pp%Kr{ckW~go:'cU|Ԉc:JO7/Z⳶K9EĬ,-~'X:-{ss8,Qgө8V)(4kFLq#4]&3Ϗ<T{yBJXXHrrH3gP0#G s%Kr.IM>n7-[n9^!?K7t*h r:uz׶u%df,\(ɡbTyX;LsQ_*xry VJJS*) ?*vtK#LJRxsX-b䪸*QٳZ-g8zzFr:I 2fNWg׿~OT0=M4@Uި0_o_K)d 5CMiihөDWAAܹa^c@;a힅MY|]LU<ӆ pHyQ_Y}&_!OKK0 IDAT0ɇ**LbБ:Zz{EXRs?SvN2~TXȌѐ&nݺ23SMz"5_}Viv\tQZ Mk80 }?N+F|Mg|F$yhkyyjdqd#{y~qWڐ˦(/)j dK.IZf8/]w1c+&`1OhU3S 3 3## }3sW)ǃC&Q6N_V`lcb3\}tfT!4@waFڧCN 2WQ.\H* vvQ5:_},jjll ԊF1=;|ԣ&'ӞD" 0qz{[Z:L&{SSdoi6a,I'&tX>VkѨ4\/S[ki_]m;"#tyyIAyBWju̼yiKy*#Os񧴴ti4ʹsSƟӧM J%%IT{|224A6>Q\--6Fmu1+11V՞˕V+ pna6L&[KK\qV+N:GZ!mGMZ`Lk%HS .; ͙Sr~u.v\*sIIP]RRSWOAAFN.3ǑlTocFqHLNhu|FddX\\gu=gr 65{ k Ѩb J *zY[^I""ӿ5>77ITO+ -X1vEWzֺa\w==}O>_>pM|I~ZEWIIɓnN%Lo>Z5T1=]3ߠJooW۞#  $ƞV42iHrcooq='G'ZSϚ6mMr'%%5uccis$f.]SX9kČ{[oyQatCQ_ߺz S 5_ f͜9k;[,j>g?^jVkSOysfĉ +Qsf\ ż4Zkj,G4LC~1X-Gkhv9\ D$BVǨ1RUiJVt=, aMKK86IM&8G{֭ rlhxB'O6Jų|I5]9 f? 976dφ>r* ii D蹇QzCn3MϔB$A63{Th8Й-NK5~,mr=Zw@P}x} ]y嬤 J#GjΘom\v?qۗ<ȿGDk%b2jl#/Ɵ/Oם\#k'''1p_v=B~]qE/UD?%%5bN~SK(sXy,6v+xr# HSVOOv!?FivӦEt*=*ZRV+'xK8EYzYYlj;Iww׊N4UyBW]5{cB^xmgkN|Wԩ&QuHm{{״is$Ev޹krs#f=N\TLXY,.nV DI x2\kXnbC\V+'iHJSwFڧ/^F'T>بdIҥ9cyG1zO/'N4Zboqxd3jĔwy㏈~ 2MNjk-vʹ{-{kk)foY.o$)::BQʄF)&pJOUѣQ# 736jjjMs{Bbjvlݢ\SUe9>--al}df 4/kk []c`*(Κï;JBzKO3_|?eeeōWrkuvvu)fΌPfd~%_~ѨgC9c>>ԸkPswOKK+?XVg6gH~mD#,9mzZi/׳̳l77wx> buddى^+1lUUKuQ_*^T>}03tZk]U'IRddXZZr˖IKSgΜ14CmyinnlYPXYlu&lllTUWZϲ'hXgX|v{C" `L$G#ϼy|VQ6VX/<"ml.LT0Y\}g2,0VkgKKGkkgIIlom픫""؄NժbõB*+3R&ISSttDF&#C3Na6fg֒s֗P(c`yyl:/nIyy MHQcD 7~Vt3bbh IAJQcrs>WPHs|BzKO322Fgj C7nܐ(GC$AB ^h4Dn 3cF…Y^:l3j…$!Nڵku:V]vm$I W^h46mz322bccy䑑|͋6m$r=裩?qGG5ttt'?Q)))<@oooeeBSSS/;C<3::رcC_Ύꩧ$I{͞=[}NcM$AB:tH$(~s9r?ܷo߆ {5 6mZnݻKKKy晍7{y:=\.q7^ve[lYnbyz뭿o}QyyO<1t Vjll4 {?O}^{'x\.$I^ffܹs~]{9v/~zy/ݻwڵgL w'@ r !IҎ; ]QQyP"ns>z-dQʮ]NW_}900~ٳgKqs }}}'O|JKKnJLLnM6>c=00 ^n;V˗/_s cVullT*%I -9;7on֬Yv^^^^^1LYYdgg766۹$p ov~~޽{?B$I jsssy'@: 1Z-vQ5:===+VXvѣG_|EqgRRRmm}qQIӅVWW_VUU%''r|wygΝ/NII>ۋM@$h;I 7ܰnݺe˖ws:ξG}T$qmW:yɓ'WZUWW絆oﮩ9y?\TTK,q\o6Η^zf5kTVV_~ʕ# HJOO_x\qFR9o޼K/5B\\ܳ>[TT~뭷.[lݺu]w_x͛7]ömے 뮻nݺu^, v7(ywZ,TTTt5|+NpjBرcNJ+q_7˒I>˞]Ҟ_@# ; }$/'x=I(7ݟ|B nk8ouu6a?>wbc4FZZ$%۵$&I@ $A$ X `A,HI@ $A$ X `A,HI@ $A$ X[IDAT `A,HI@ $A$ X `A,nk߫8GDSSLnnrBCCzt/oş}WqʾI`0{ { -ZhΝ^TP(,HI@ $A`|UVVCo\NW(~-@CW\\C=Odyy#<x'q87xe]VQQe˖uY,tuu-_Emm?|wuuy=޽{ æM֭[{gyfƍ/ݻwڵg瞫9rȇ~o߾ 6 ]={;/_~ۖ/_|>=%%%??\|ů^{M q1ꫯ:;;/mmm[lioot8wݒ$=zvyݮ,--ޱcGvvmii?sz}$}n{``u=Ivqo2bOgN.;w!""|ٲe_~*߯8#>>>:tPJJUW]uR)IRxxm٬YčFߪ⵮ښLJJ$u}>/ H(544l۶k='NpԩgŊk׮=z/(/_,..nkk;|)6HT^^.bZw!:thsB$߾z۷ݻw׮]$~k׮}F_#?니yG%Ir8P(]w[oeãwk֬,))Y~ʕ+=nXn]]]]iie~IK/lQ</ 0)塇 ]w-^p\{bK6oh'{gOnݺ[ouٲe&I~@TTkC544dffر#**|ZTTt5tuuz֭ڸq5k͛r7>Ӓ$ywbcc9s/P(v!0`A,Ju]wMs ~ `A,HI@@ jhh(..*0HbZ0^Uy`A `A,HI@%o%gIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileFormatTarget.html0000644001725400016040000004460513273140077022747 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::LocalFileFormatTarget Class Reference

    #include <LocalFileFormatTarget.hpp>

    Inheritance diagram for xercesc::LocalFileFormatTarget:

    Public Member Functions

    virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
     
    virtual void flush ()
     
    constructors and destructor
     LocalFileFormatTarget (const XMLCh *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     LocalFileFormatTarget (const char *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     ~LocalFileFormatTarget ()
     
    - Public Member Functions inherited from xercesc::XMLFormatTarget
    virtual ~XMLFormatTarget ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMLFormatTarget
     XMLFormatTarget ()
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    xercesc::LocalFileFormatTarget::LocalFileFormatTarget ( const XMLCh *  const,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::LocalFileFormatTarget::LocalFileFormatTarget ( const char *  const,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::LocalFileFormatTarget::~LocalFileFormatTarget ( )

    Member Function Documentation

    virtual void xercesc::LocalFileFormatTarget::flush ( )
    virtual

    Reimplemented from xercesc::XMLFormatTarget.

    virtual void xercesc::LocalFileFormatTarget::writeChars ( const XMLByte *const  toWrite,
    const XMLSize_t  count,
    XMLFormatter *const  formatter 
    )
    virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classXQilla__inherit__graph.map0000644001725400016040000000037013273140076020752 00000000000000 XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp.html0000644001725400016040000000663513273140077017441 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ModuleResolver.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for ModuleResolver.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ModuleResolver
     
    XQilla-2.3.4/docs/simple-api/classEventSerializer__inherit__graph.png0000644001725400016040000000540713273140076022710 00000000000000PNG  IHDRxpZU#bKGD IDATxiLOm) 5lRE$w 5QQ@ѤD/}G#F4lEdUы%dQ()R;trjkz=o94$fb)`шE#%..N&ƤgϞuvvV۫񌮩̜ȫz5ѐlC3ihZzqF,X4"+d4JSS}ijjA&"aUF7o޼Qyٲe~2lX#bfEryOOacAAA'Nӧ \̙3l6%@>|akk{:Booo sF՘2ŋnnnӧO_j۷o KYYSUUոKcHHtrr$I̞= $ϟ?ŋTaaawwѣGEwe:dnnjժJgggtvvSYZZ3f 5 x XQilla Simple API Documentation SourceForge.net Logo
    XQQuery.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef XQQUERY_HPP
    21 #define XQQUERY_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <vector>
    25 #include <string>
    26 #include <xercesc/util/XMemory.hpp>
    30 
    31 #include <xercesc/util/RefHashTableOf.hpp>
    32 
    33 class DynamicContext;
    34 class XQUserFunction;
    35 class XQGlobalVariable;
    36 class XQQuery;
    37 class DelayedModule;
    38 class DelayedFuncFactory;
    39 class StaticTyper;
    40 
    41 typedef std::vector<XQGlobalVariable*, XQillaAllocator<XQGlobalVariable*> > GlobalVariables;
    42 typedef std::vector<XQQuery*, XQillaAllocator<XQQuery*> > ImportedModules;
    43 typedef std::vector<DelayedFuncFactory*, XQillaAllocator<DelayedFuncFactory*> > DelayedFunctions;
    44 
    45 typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf<XQQuery> ModuleMap;
    46 
    47 class XQILLA_API ModuleCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    48 {
    49 public:
    50  ModuleCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);
    51 
    52  void put(XQQuery *module);
    53  XQQuery *getByURI(const XMLCh *uri) const;
    54  XQQuery *getByNamespace(const XMLCh *ns) const;
    55 
    59 };
    60 
    75 class XQILLA_API XQQuery : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    76 {
    77 public:
    79  ~XQQuery();
    80 
    82  // @{
    83 
    92  DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    93  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const;
    94 
    108  Result execute(DynamicContext* context) const;
    109 
    124  Result execute(const Item::Ptr &contextItem, DynamicContext *context) const;
    125 
    141  Result execute(const XMLCh *templateQName, DynamicContext *context) const;
    142 
    153  void execute(EventHandler *events, DynamicContext* context) const;
    154 
    166  void execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const;
    167 
    180  void execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const;
    181 
    201  void staticResolution();
    202 
    215  void staticTyping(StaticTyper *styper = 0);
    216  bool staticTypingOnce(StaticTyper *styper = 0);
    217 
    219 
    221  // @{
    222 
    224  const XMLCh* getQueryText() const { return m_szQueryText; }
    225  void setQueryText(const XMLCh *v);
    226 
    228  std::string getQueryPlan() const;
    229 
    231 
    233  // @{
    234 
    236  ASTNode* getQueryBody() const;
    238  void setQueryBody(ASTNode* query);
    239 
    241  void addFunction(XQUserFunction* fnDef);
    243  const UserFunctions &getFunctions() const { return m_userDefFns; }
    244 
    247  void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs,
    248  const XMLCh *functionDeclaration, bool isPrivate = false,
    249  int line = 1, int column = 1);
    250  void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs,
    251  const char *functionDeclaration, bool isPrivate = false,
    252  int line = 1, int column = 1);
    254  const DelayedFunctions &getDelayedFunctions() const { return m_delayedFunctions; }
    255 
    257  void addVariable(XQGlobalVariable* varDef);
    259  const GlobalVariables &getVariables() const { return m_userDefVars; }
    260 
    262  const ImportedModules &getImportedModules() const { return m_importedModules; }
    263 
    264  ModuleCache *getModuleCache() const { return m_moduleCache; }
    265  bool isModuleCacheOwned() const { return m_moduleCacheOwned; }
    266 
    268  const XMLCh* getFile() const { return m_szCurrentFile; }
    269 
    271  void setFile(const XMLCh* file);
    272 
    273  bool getVersion3() const { return m_version3; }
    274  void setVersion3(bool v) { m_version3 = v; }
    275 
    276  const DynamicContext *getStaticContext() const { return m_context; }
    277 
    278  XQQuery *getNext() const { return m_next; }
    279  void setNext(XQQuery *n) { m_next = n; }
    280 
    282 
    284  // @{
    285 
    287  void setIsLibraryModule(bool bIsModule=true);
    289  bool getIsLibraryModule() const;
    291  void setModuleTargetNamespace(const XMLCh* uri);
    293  const XMLCh* getModuleTargetNamespace() const;
    295  void importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location);
    296  void importModule(XQQuery *module);
    297 
    298  XQQuery *findModuleForVariable(const XMLCh *uri, const XMLCh *name);
    299  XQQuery *findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs);
    300 
    302 
    303 private:
    305  XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache,
    306  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
    307 
    308  XQQuery(const XQQuery &);
    309  XQQuery &operator=(const XQQuery &);
    310 
    311  XQQuery *parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const;
    312  void executeProlog(DynamicContext *context) const;
    313 
    314 private:
    316  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* m_memMgr;
    317 
    319  DynamicContext *m_context;
    320  bool m_contextOwned;
    321 
    322  ASTNode* m_query;
    323 
    324  bool m_bIsLibraryModule;
    325  const XMLCh* m_szTargetNamespace;
    326  const XMLCh* m_szQueryText;
    327  const XMLCh* m_szCurrentFile;
    328 
    329  UserFunctions m_userDefFns;
    330  DelayedFunctions m_delayedFunctions;
    331  GlobalVariables m_userDefVars;
    332  ImportedModules m_importedModules;
    333 
    334  ModuleCache *m_moduleCache;
    335  bool m_moduleCacheOwned;
    336 
    337  bool m_version3;
    338 
    339  enum { BEFORE, DURING, AFTER } m_staticTyped;
    340 
    341  // The next module with the same target namespace
    342  XQQuery *m_next;
    343 
    344  friend class QueryResult;
    345  friend class XQilla;
    346  friend class DelayedModule;
    347 };
    348 
    349 #endif
    bool getVersion3() const
    Definition: XQQuery.hpp:273
    const UserFunctions & getFunctions() const
    Returns a vector of all XQUserFunction objects from the query.
    Definition: XQQuery.hpp:243
    Definition: XQQuery.hpp:47
    Definition: EventHandler.hpp:29
    const GlobalVariables & getVariables() const
    Returns a vector of all XQGlobalVariable objects from the query.
    Definition: XQQuery.hpp:259
    const DelayedFunctions & getDelayedFunctions() const
    Returns a vector of all XQUserFunction objects from the query.
    Definition: XQQuery.hpp:254
    void setNext(XQQuery *n)
    Definition: XQQuery.hpp:279
    std::vector< const XMLCh *, XQillaAllocator< const XMLCh * > > VectorOfStrings
    Definition: DocumentCache.hpp:35
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    ModuleMap byNamespace_
    Definition: XQQuery.hpp:57
    std::vector< XQUserFunction *, XQillaAllocator< XQUserFunction * > > UserFunctions
    Definition: StaticContext.hpp:48
    const XMLCh * getFile() const
    Returns the name of the file that this query was parsed from.
    Definition: XQQuery.hpp:268
    bool isModuleCacheOwned() const
    Definition: XQQuery.hpp:265
    Encapsulates a query expression.
    Definition: XQQuery.hpp:75
    ImportedModules ordered_
    Definition: XQQuery.hpp:58
    std::vector< DelayedFuncFactory *, XQillaAllocator< DelayedFuncFactory * > > DelayedFunctions
    Definition: XQQuery.hpp:43
    std::vector< XQGlobalVariable *, XQillaAllocator< XQGlobalVariable * > > GlobalVariables
    Definition: XQQuery.hpp:39
    void setVersion3(bool v)
    Definition: XQQuery.hpp:274
    xercesc::RefHashTableOf< XQQuery > ModuleMap
    Definition: XQQuery.hpp:45
    ModuleMap byURI_
    Definition: XQQuery.hpp:56
    std::vector< XQQuery *, XQillaAllocator< XQQuery * > > ImportedModules
    Definition: XQQuery.hpp:42
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    const ImportedModules & getImportedModules() const
    Returns a vector of all XQGlobalVariable objects from the query.
    Definition: XQQuery.hpp:262
    ModuleCache * getModuleCache() const
    Definition: XQQuery.hpp:264
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    const DynamicContext * getStaticContext() const
    Definition: XQQuery.hpp:276
    Provides factory methods for creating XQQuery and DynamicContext objects.
    Definition: XQilla.hpp:52
    const XMLCh * getQueryText() const
    Returns the expression that was parsed to create this XQQuery object.
    Definition: XQQuery.hpp:224
    XQQuery * getNext() const
    Definition: XQQuery.hpp:278
    XQilla-2.3.4/docs/simple-api/XQilla_8hpp_source.html0000644001725400016040000006754613273140073017250 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQilla.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _XQILLA_07637_HPP
    21 #define _XQILLA_07637_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    27 #include <xercesc/util/XMemory.hpp>
    28 
    29 class DynamicContext;
    32 class Optimizer;
    33 class DelayedFuncFactory;
    34 class XQQuery;
    35 
    36 XERCES_CPP_NAMESPACE_BEGIN
    37 class InputSource;
    38 class XMLBuffer;
    39 XERCES_CPP_NAMESPACE_END
    40 
    41 namespace CompileDelayedModule {
    42 void compile(const XMLCh *queryFile);
    43 }
    44 
    52 class XQILLA_API XQilla : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    53 {
    54 public:
    56  enum Flags {
    57  NO_STATIC_RESOLUTION = 0x1,
    58  NO_ADOPT_CONTEXT = 0x2,
    59  DEBUG_QUERY = 0x4,
    60  NO_OPTIMIZATION = 0x8,
    61  NO_DEFAULT_MODULES = 0x10
    62  };
    63 
    65  enum Language {
    66  XQUERY = 0x00,
    67  XPATH2 = 0x01,
    68  FULLTEXT = 0x02,
    69  UPDATE = 0x04,
    70  EXTENSIONS = 0x08,
    71  XSLT2 = 0x10,
    72  VERSION3 = 0x20,
    73 
    74  XQUERY_FULLTEXT = (XQUERY | FULLTEXT),
    75  XQUERY_UPDATE = (XQUERY | UPDATE),
    76  XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE),
    77  XPATH2_FULLTEXT = (XPATH2 | FULLTEXT),
    78  XSLT2_FULLTEXT = (XSLT2 | FULLTEXT),
    79 
    80  XQUERY3 = (XQUERY | VERSION3),
    81  XQUERY3_FULLTEXT = (XQUERY | VERSION3 | FULLTEXT),
    82  XQUERY3_UPDATE = (XQUERY | VERSION3 | UPDATE),
    83  XQUERY3_FULLTEXT_UPDATE = (XQUERY | VERSION3 | FULLTEXT | UPDATE),
    84  XPATH3 = (XPATH2 | VERSION3),
    85  XPATH3_FULLTEXT = (XPATH2 | VERSION3 | FULLTEXT),
    86  XSLT3 = (XSLT2 | VERSION3),
    87  XSLT3_FULLTEXT = (XSLT2 | VERSION3 | FULLTEXT),
    88  };
    89 
    96  XQilla(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = 0);
    97 
    102  ~XQilla();
    103 
    105  // @{
    106 
    123  static XQQuery* parse(const XMLCh* query,
    124  DynamicContext* context = 0,
    125  const XMLCh* queryFile = NULL,
    126  unsigned int flags = 0,
    127  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    128  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
    129  XQQuery *result = 0);
    130 
    145  static XQQuery* parse(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc,
    146  DynamicContext* context = 0,
    147  unsigned int flags = 0,
    148  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    149  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
    150  XQQuery *result = 0);
    151 
    166  static XQQuery* parseFromURI(const XMLCh* queryFile,
    167  DynamicContext* context = 0,
    168  unsigned int flags = 0,
    169  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    170  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
    171  XQQuery *result = 0);
    172 
    174 
    176  // @{
    177 
    183  static DynamicContext *createContext(Language language = XQUERY,
    184  XQillaConfiguration *conf = 0,
    185  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    186  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    187 
    189 
    190 private:
    191  static bool readQuery(const XMLCh* queryFile,
    192  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr,
    193  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
    194  static bool readQuery(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc,
    195  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr,
    196  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
    197  static Optimizer *createOptimizer(DynamicContext *context, unsigned int flags);
    198 
    199  static void compileDelayedModule(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    200  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    201 
    202  friend void CompileDelayedModule::compile(const XMLCh *queryFile);
    203  friend class DelayedFuncFactory;
    204 };
    205 
    206 #endif
    void compile(const XMLCh *queryFile)
    Flags
    Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together...
    Definition: XQilla.hpp:56
    Definition: XPath2MemoryManager.hpp:45
    Encapsulates a query expression.
    Definition: XQQuery.hpp:75
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: XQillaConfiguration.hpp:38
    Provides factory methods for creating XQQuery and DynamicContext objects.
    Definition: XQilla.hpp:52
    Language
    Enumeration used to select a language to parse.
    Definition: XQilla.hpp:65
    XQilla-2.3.4/docs/simple-api/classEventSerializer.html0000644001725400016040000010514613273140077017671 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventSerializer Class Reference

    #include <EventSerializer.hpp>

    Inheritance diagram for EventSerializer:

    Public Member Functions

     EventSerializer (const char *encoding, const char *xmlVersion, xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)
     
     EventSerializer (xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)
     
     ~EventSerializer ()
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    void addNewlines (bool add)
     
    void useSelfClosingElement (bool value)
     
    void addXMLDeclarations (bool value)
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Constructor & Destructor Documentation

    EventSerializer::EventSerializer ( const char *  encoding,
    const char *  xmlVersion,
    xercesc::XMLFormatTarget target,
    xercesc::MemoryManager mm = xercesc::XMLPlatformUtils::fgMemoryManager 
    )
    EventSerializer::EventSerializer ( xercesc::XMLFormatTarget target,
    xercesc::MemoryManager mm = xercesc::XMLPlatformUtils::fgMemoryManager 
    )
    EventSerializer::~EventSerializer ( )

    Member Function Documentation

    void EventSerializer::addNewlines ( bool  add)
    inline
    void EventSerializer::addXMLDeclarations ( bool  value)
    inline
    virtual void EventSerializer::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an atomic item as an event.

    Reimplemented from EventHandler.

    virtual void EventSerializer::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an attribute node as an event.

    Implements EventHandler.

    virtual void EventSerializer::commentEvent ( const XMLCh *  value)
    virtual

    Handles a comment node as an event.

    Implements EventHandler.

    virtual void EventSerializer::endDocumentEvent ( )
    virtual

    Handles a document node as an event.

    Implements EventHandler.

    virtual void EventSerializer::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles the end of an element node as an event.

    Implements EventHandler.

    virtual void EventSerializer::endEvent ( )
    virtual

    Called when all events have been reported.

    Implements EventHandler.

    virtual void EventSerializer::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    virtual

    Handles a namespace binding as an event.

    Implements EventHandler.

    virtual void EventSerializer::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    virtual

    Handles a processing instruction node as an event.

    Implements EventHandler.

    virtual void EventSerializer::setLocationInfo ( const LocationInfo location)
    inlinevirtual

    Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

    Reimplemented from EventHandler.

    virtual void EventSerializer::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    virtual

    Handles a document node as an event.

    Implements EventHandler.

    virtual void EventSerializer::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    virtual

    Handles the start of an element node as an event.

    Implements EventHandler.

    virtual void EventSerializer::textEvent ( const XMLCh *  value)
    virtual

    Handles a text node as an event.

    Implements EventHandler.

    virtual void EventSerializer::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    virtual

    Handles a text node as an event.

    Implements EventHandler.

    void EventSerializer::useSelfClosingElement ( bool  value)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/Collation_8hpp__incl.map0000644001725400016040000000006513273140075017360 00000000000000 XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp__dep__incl.md50000644001725400016040000000004013273140074021025 00000000000000cc682cf74c9726590aff7e4c3ed421d7XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp__incl.map0000644001725400016040000000113313273140075020270 00000000000000 XQilla-2.3.4/docs/simple-api/functions_func_0x66.html0000644001725400016040000001400013273140074017317 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - f -

    XQilla-2.3.4/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021255 0000000000000015f729914345d684272ddf838719f538XQilla-2.3.4/docs/simple-api/inherit_graph_49.map0000644001725400016040000000027213273140077016472 00000000000000 XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp__incl.md50000644001725400016040000000004013273140074020036 00000000000000da0bcf53fccc7727fa8ab2b207f0b742XQilla-2.3.4/docs/simple-api/classQueryPathTreeFilter.html0000644001725400016040000010457213273140077020470 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <QueryPathTreeFilter.hpp>

    Inheritance diagram for QueryPathTreeFilter:

    Classes

    struct  StackEntry
     

    Public Member Functions

     QueryPathTreeFilter (const QueryPathNode *qpn, EventHandler *next)
     
     QueryPathTreeFilter (const QPNVector &qpns, EventHandler *next)
     
    virtual ~QueryPathTreeFilter ()
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    - Public Member Functions inherited from EventFilter
     EventFilter (EventHandler *next)
     
    void setNextEventHandler (EventHandler *next)
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Protected Types

    typedef std::vector< StackEntry * > FilterStack
     

    Protected Member Functions

    void checkAncestors (FilterStack::reverse_iterator s)
     

    Protected Attributes

    FilterStack stack_
     
    - Protected Attributes inherited from EventFilter
    EventHandlernext_
     

    Member Typedef Documentation

    typedef std::vector<StackEntry*> QueryPathTreeFilter::FilterStack
    protected

    Constructor & Destructor Documentation

    QueryPathTreeFilter::QueryPathTreeFilter ( const QueryPathNode *  qpn,
    EventHandler next 
    )
    QueryPathTreeFilter::QueryPathTreeFilter ( const QPNVector qpns,
    EventHandler next 
    )
    virtual QueryPathTreeFilter::~QueryPathTreeFilter ( )
    virtual

    Member Function Documentation

    virtual void QueryPathTreeFilter::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an attribute node as an event.

    Reimplemented from EventFilter.

    void QueryPathTreeFilter::checkAncestors ( FilterStack::reverse_iterator  s)
    protected
    virtual void QueryPathTreeFilter::commentEvent ( const XMLCh *  value)
    virtual

    Handles a comment node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::endDocumentEvent ( )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles the end of an element node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    virtual

    Handles a namespace binding as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    virtual

    Handles a processing instruction node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    virtual

    Handles the start of an element node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::textEvent ( const XMLCh *  value)
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.

    virtual void QueryPathTreeFilter::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.

    Member Data Documentation

    FilterStack QueryPathTreeFilter::stack_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_000006_000017.html0000644001725400016040000000400113273140074015703 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    schema → framework Relation

    File in include/xqilla/schemaIncludes file in include/xqilla/framework
    DocumentCache.hppXPath2MemoryManager.hpp
    XQilla-2.3.4/docs/simple-api/classItemFactory__inherit__graph.md50000644001725400016040000000004013273140074021706 000000000000008291c5a2b1eb511dca67d08ca4f29120XQilla-2.3.4/docs/simple-api/inherit_graph_30.png0000644001725400016040000000422013273140077016464 00000000000000PNG  IHDR3j'bKGDEIDATx}HStaM97=`DA0)"g%A`"Qa)- wk)[ǡwϙߩ_{?wv9F$@YiUN,..vuuRZ[[WL³Ro?_~דm5d)>Q ܽ{А$IX,KJ:ydtt4JNNnoo_?f=P(uh5DVj5a7nqR>}::: L&I*uww/M \fSR QPPܐ+WyW"/MMMV-v[sss9Gǩaϟ?}cA,8p.J ǏyuȬ,j2@-..ªh\.W,FxCDDD"tSSSxaa!É,..^XXG-cccCCCkkkIJZϻed齽QQQ^b_~5 TVV&pw]=$Ivvvn߾?&&VCCC:NΞ;wrĉ?0,11իK8@8 I ömVQQ8?|`jIII29ק-=Riaa!UT4n݊aΝ;b#avzGt^5::j9VagǎT}`FW&j[[ۆ >`0 (G `BCCCJJJBBƒt:U7onkkQX+̮F`0nݺ8A:l6`(..NMM 6m RJҤ$0== !IPOnQ%9>rh4I /,,|-Ava@@;!Iי֭۳gOWWw~d2O:522BY>o޼:رco&)Fd2y<\.퓓 >fgg||(nFv#p-[H$߿ۍ J%, UWW;fgaa Fst8.eXG tzV322JKK0 ;|{WWW D"DaXeee}}= #''ŋ B&]~=???$$Рj](qQ6mt̙[D׮]d2… SSS$F:tUFd2L>ai f988XPV-** p8gϞ5 RAAA)))CF$q8>%8IVUUŽ@-2`d2X,:؎b<;9BpsP(T*EX,lv^^nzHljj ~~~$IZtWK  t!;;liY-ʼ=xU-1  ^611*^ kbx> b~~~U X5L%%%</<~zA:((*mr\$ݼy3..{!wRxwA/^8~8fppٳg^^>NKKZUUo߾?^^^%+++ y@b2=79ly>X^vA>@|  @>@@  vWnii'|>NEwk.jV= ~5UIENDB`XQilla-2.3.4/docs/simple-api/Scope_8hpp__incl.map0000644001725400016040000000045513273140075016510 00000000000000 XQilla-2.3.4/docs/simple-api/classStaticType-members.html0000644001725400016040000006100113273140074020263 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticType Member List

    This is the complete list of members for StaticType, including all inherited members.

    ALWAYS enum valueStaticType
    ANY_ATOMIC_TYPE enum valueStaticType
    ANY_SIMPLE_TYPE enum valueStaticType
    ANY_URI_TYPE enum valueStaticType
    ATTRIBUTE_TYPE enum valueStaticType
    BASE_64_BINARY_TYPE enum valueStaticType
    BOOLEAN_TYPE enum valueStaticType
    COMMENT_TYPE enum valueStaticType
    containsType(const StaticType &type) const StaticType
    containsType(StaticType::StaticTypeFlags flags) const StaticType
    create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact)StaticTypestatic
    create(AnyAtomicType::AtomicObjectType primitiveType)StaticTypestatic
    DATE_TIME_TYPE enum valueStaticType
    DATE_TYPE enum valueStaticType
    DAY_TIME_DURATION_TYPE enum valueStaticType
    DECIMAL_TYPE enum valueStaticType
    DOCUMENT_TYPE enum valueStaticType
    DOUBLE_TYPE enum valueStaticType
    DURATION_TYPE enum valueStaticType
    ELEMENT_TYPE enum valueStaticType
    EMPTY_TYPE enum valueStaticType
    FLOAT_TYPE enum valueStaticType
    FUNCTION_TYPE enum valueStaticType
    G_DAY_TYPE enum valueStaticType
    G_MONTH_DAY_TYPE enum valueStaticType
    G_MONTH_TYPE enum valueStaticType
    G_YEAR_MONTH_TYPE enum valueStaticType
    G_YEAR_TYPE enum valueStaticType
    getMax() const StaticTypeinline
    getMaxArgs() const StaticTypeinline
    getMin() const StaticTypeinline
    getMinArgs() const StaticTypeinline
    getReturnType() const StaticTypeinline
    HEX_BINARY_TYPE enum valueStaticType
    isType(const StaticType &type) const StaticType
    ITEM_TYPE enum valueStaticType
    matches(const StaticType &actual) const StaticType
    MAYBE enum valueStaticType
    multiply(unsigned int min, unsigned int max)StaticType
    NAMESPACE_TYPE enum valueStaticType
    NEVER enum valueStaticType
    NODE_TYPE enum valueStaticType
    NOTATION_TYPE enum valueStaticType
    NUMERIC_TYPE enum valueStaticType
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    operator&(const StaticType &st) const StaticType
    operator&=(const StaticType &st)StaticType
    operator=(const StaticType &o)StaticType
    operator|(const StaticType &st) const StaticType
    operator|=(const StaticType &st)StaticType
    PI_TYPE enum valueStaticType
    PROBABLY_NOT enum valueStaticType
    QNAME_TYPE enum valueStaticType
    setCardinality(unsigned int min, unsigned int max)StaticType
    StaticType()StaticType
    StaticType(StaticTypeFlags f, unsigned int min=1, unsigned int max=1)StaticType
    StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)StaticType
    StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)StaticType
    StaticType(const StaticType &o)StaticType
    StaticTypeFlags enum nameStaticType
    STRING_TYPE enum valueStaticType
    substitute(const StaticType &from, const StaticType &to)StaticType
    TEXT_TYPE enum valueStaticType
    TIME_TYPE enum valueStaticType
    TIMEZONE_TYPE enum valueStaticType
    typeConcat(const StaticType &st)StaticType
    TYPED_ATOMIC_TYPE enum valueStaticType
    typeExcept(const StaticType &st)StaticType
    typeIntersect(const StaticType &st)StaticType
    TypeMatchEnum enum nameStaticType
    typeNodeIntersect(const StaticType &st)StaticType
    typeToBuf(xercesc::XMLBuffer &buf) const StaticType
    typeUnion(const StaticType &st)StaticType
    UNLIMITEDStaticTypestatic
    UNTYPED_ATOMIC_TYPE enum valueStaticType
    XMemory()xercesc::XMemoryinlineprotected
    YEAR_MONTH_DURATION_TYPE enum valueStaticType
    ~StaticType()StaticType
    XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp.html0000644001725400016040000001240313273140077017366 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateOrDerived.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/ATDecimalOrDerived.hpp>
    #include <xqilla/items/ATDurationOrDerived.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATDateOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATDateOrDerived
     
    XQilla-2.3.4/docs/simple-api/classATDoubleOrDerived-members.html0000644001725400016040000010627313273140074021450 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDoubleOrDerived Member List

    This is the complete list of members for ATDoubleOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    abs(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    acos(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDecimalString(int significantDigits, const StaticContext *context) const Numericprotected
    asDouble() const Numericvirtual
    asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDoubleString(int significantDigits, const StaticContext *context) const Numericprotected
    asin(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    asInt() const Numericvirtual
    asMAPM() const =0ATDoubleOrDerivedpure virtual
    asString(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    atan(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numericprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    ceiling(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    checkDoubleLimits(Numeric::State &state, MAPM &value)Numericstatic
    checkFloatLimits(Numeric::State &state, MAPM &value)Numericstatic
    compare(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    cos(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numericvirtual
    exp(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    floor(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATDoubleOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATDoubleOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getState() const =0ATDoubleOrDerivedpure virtual
    getTypeName() const =0ATDoubleOrDerivedpure virtual
    getTypeURI() const =0ATDoubleOrDerivedpure virtual
    greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    INF enum valueNumeric
    INF_stringNumericstatic
    invert(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInfinite() const =0ATDoubleOrDerivedpure virtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isInteger() const Numericvirtual
    isNaN() const =0ATDoubleOrDerivedpure virtual
    isNegative() const =0Numericpure virtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const Numericinlinevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    isPositive() const =0ATDoubleOrDerivedpure virtual
    isZero() const =0ATDoubleOrDerivedpure virtual
    Item()Iteminlineprotected
    lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    log(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    NaN enum valueNumeric
    NaN_stringNumericstatic
    NAN_stringNumericstatic
    NEG_INF enum valueNumeric
    NEG_NUM enum valueNumeric
    NegINF_stringNumericstatic
    NegZero_stringNumericstatic
    NOTATION enum valueAnyAtomicType
    NUM enum valueNumeric
    NumAtomicObjectTypes enum valueAnyAtomicType
    PosZero_stringNumericstatic
    power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    Ptr typedefATDoubleOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    round(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    sin(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    sqrt(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    State enum nameNumeric
    STRING enum valueAnyAtomicType
    subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    tan(const DynamicContext *context) const =0ATDoubleOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classTimezone__inherit__graph.map0000644001725400016040000000027513273140076021356 00000000000000 XQilla-2.3.4/docs/simple-api/classAnyAtomicType__inherit__graph.png0000644001725400016040000024716013273140076022327 00000000000000PNG  IHDRMP{)>bKGD IDATxy\S.eCRֹZ$+96Hucj$+UtHR9S4_3=($Itw :&y<IR t.YYY---oooqg Z\o К(ȑ#ŝH_@P* BӭŝHocc_@p~@DŽ:cB1PQ;vP({B(uIHHK0̍7WFFF__۶mAR(fH=(h6ymI4O>t:zٳ### Q}]_~zjFFٳgCBBT*AJJJnnn8:4|PO2@[|Νɓ'!#####C$B]].M|-SSS zuE9rDEEsj%0h[XX 8?W_ 7`=zݻ e˖2LYY/^x/_v7Çķ  ܹs իמ={.]Էoݻ-CBBﯪRYYɟ$ŢRjjjT*bw8u&Y_|t* AkKpppTT޽{ ϟf  ׯ AgΜݻ)S+j{~}ܹ@<~CCCo޼Yc"߿wg}GT_u<,@B@+"N7&::ZRR$I߀`o A'I f#""H>}={۷KHH h ebb"1Nnhh{nbbRAՙd['^pymFc*** ̌ FIפּU``ϟ޽kooODii)F#bĈkbb-[6mT{,h^feeJOO]Q;ywDu&Y_|t*CӽKʛlv.]j~/X ((̘1ZZZA$p¤$^ 2uT޲iSfHIIᕘTTT o0::8/~tږǏk… 5رcl-Z"//xbwEFFnܸw_S]6555&&f˖-?.+++ww>$&&ZZZ;v8/~t6i$UU- ,6 oUx޼yϞ=p-[ۏ??h![XXL>ݝΝ;:q!Cxyy5$ߤ: Bӭŝᑞ'ĘBe:<'өӹs._,\.hn <{q„ b 3I! n Ъκmgu[$01PtL~…ĝtD%}}T#\nitt4Bw^*3gyҤNNnj1wj@hiieff; B |l6F{vYLVԿND{xu&)/B 4qq;w>~!.-QwFЩ̂[_ ƽŝ<a8g<:ӧw:AЈ_~̇^]mbG u@CK.yO2D…qo/99{cFF/^\޵+<hPA͛wTGw:B:x>꘶v˗Wuw:mKO>?}'\Dut:>>OOm@p_\nLںL@P@'nW(\c gϞ-4R4 BIMMo 222GvR*:daÆ޽λYxq~~٦R(&P#G(,,]䯁55$Ih>}ꍳgΎ$"_FFFuHވ666uo<&&+..oYYYϟ/..655-**$%%%77@SE%kFRRRrr;w&Ob``@ AL& uuFW^xݻWMM-??_UUF۷+""BBB S?/f޽'L0a„&K y)lr5))=ŝKM4mׅB 0G{%eٲeL&SVVŋMPJJJZZ{wzzz<999*[*ӧϓ'OjtP(aaa,JRTLJ:gWWW^Jeee^9ξ} Fٳ5@::S\}آ4ĝKMX;;; ͛'Hpਨ{̟??$$w\HHH~LLLId2O>mݺ޾kך-**ɩ͛7pСCk{}FDDܻwӳvvvW^ ߾}[VVvԩuv?|RRR<<<6m$Qt4$@v^c<.jYttϟI#")).Aܿ$ɪ*  VWW Ir{n`0oK!//?nYXXHD~~~RQQeX߈111JJJ׆ټ&&&ݫ?R99ϟ$ikk^_w.\ ȟ :h3@GeժKs皶 lh46RN7&ARRRVVV{S{|Yc0zzzAyzz:::FEEh`aa=!!̌аޛ2 ]]]t f[׈kt={v@@CCCנkwh}%99YRRR[[_3+{{۷_][ZZeii{[]q@'f̘{˛@FGG. ڵkfffuyeuׯ_י@'ID@\.Ⱥ%$$rs066 -5mB|{fUUUΟ?_SWW744ݻww:tc^5>Q\\\{ׯ_?~7o=F}Uljpppvv͛7'Ou[XP@q% HbŊ)Sornnn[jTK w#IYFFP#IbݻݺuׯGiiiuQTT|}{L eeevYVVV;s)mmm{{{jxҥ={trr*--#II^^d6Нf۷OOOONNnԨQ : PAC!_h޼ɞ1㐃_%뻷pHOOw"mBN@8pt4+V\8PsE***>}tܹ˗/;hm:WWZQQ_9^ųg'L \a>:_ߨ4J5: ?@Yx`>:Ͽfͤ1cŝ ^}IWWuKq&`:/oܾ **ԩYꪊ;u{_Mbdk;BܹĻM)+RTw:йv ݿF܉|cᶶħOr99r\s\q'>|yо]sKmsg%/u˖SRwRйgЎ׼y;vw.዗׍k^|ʕ?,X0kW_=Ўm(ytq'ݹpi>=_,^|&3Ν ${w@u[h]KH ZӚE^U{Fzpp]Fڸ‚:ںCllޯ-**sp8'__')y=QRRys=,'竝ʐڸ…:ڴ Ozi4UU1#㋭II..J3((z[hӶm VSS\tL mGw EwƍNҭeaѢ3h?LAA .W(;e-- ~nvXqgP7y|=wLEE^ q^e5ۿߦgM8f4h$%%Y,<hs SUU\{g-ȃkl6NiVо؈; z%99ոGEϞsr`ee&`ch[v 54G k||!QQi%+EW~ok{r 'KJБ; $wñc D4Dvv m;fƍ/2<<~Q/_ WP$'UDc gϞ-4R˭N吚JdbJ2DAAaذawZfttt/^,Ewu \.}ME Y6{eE1I4O>t:zٳ### Aٟ>} _޽{߽{EUJKK޽{jjj:sPRRrssJ2JJJcbb&Opj7%ubSSӢ"AFQ ii"8]܀[f!N7˗ %<< o`0j|`0>z{N K333*^QQaff?rƍǎf0L3ghY#1.;n8OOOƯ6^5:4@8sMD߂#"Y*h4-,, $!!$_>tPYYY Uw֭_~.]mdXT*UMMMUUJn{C :tAAAVVVnnnÇ$K 7`=zݻ y]"""cjjl2^K&)++ |}}===%$$GRݟ|@ٳ ƛ7oƍ?.֗C:$IVUU֙!Kbb"Il6[]]=""$ӧٳ$꼨(du[:QwNTNN$Iںǧz .΃1ӟgfz̵kvp\vL__:::/_:hGP8]]bxӦ`8+Vt&uT=yyyZp!(ր ///mm^zUVVVUUIKKo۶  2eʔWWUUIIIaeeÇDKKcǎQ(''''''+*pBK\ `0o Ӯ3mxn߾}ѢE===&Mt-` IDAT4bĈ޽{\Ǐ>;w/}:eʔm۶9::VoٙJܺuӳOhUb>l6wmJj7oh+VL2 ussy]tj5B999.[;޷oܨQx5yQH+((ѣ}62u$'Nߵ+g B KPtcv~~~ND$mllK m Iѻf{up;wy w~&gac՗1]bB<{q„ |ѣS xSX+/*zy-VLh.qAbqJ\\zhZ!ܺ5͛OaaeeBbppرff: u=!=B-!!TU iF3+&@0~mr 4Ǐwzz .N^shđ#wcb)*vka(ceu*,l}nRBIO K/]hK(!eh%VbqΟh-/Mέ[m/9u O%%%lm/^p yJ?.qtPQQi'O߿FWWфӧ'w'hyJ̙C45ZbZɓlmG%1a,+WbTUnig7m5@:ZCL?PX^ڻ׺塄PCCiϞʅ&-:Zùs 25qnJ Y֫Pk!.z5vЪ*ƍ˗*>-q#q~iɓX =~o!66ܦ)/:DҥHEEY0Ά 4yn۶JV-_pFi@ۄ:DEӨ][sjlD?k + J;@4u/|)Yo!K>k4͛I#==gˋh<sO:Sټ9@VVzʪn TTjh=1f y B)..ʕ- rZB\+eeU[\0f˖b_8<K"uuU^ K5~\g 99.la1P,94 RVVgo?B4;g֭\6ͻ[7[\Q@< ւ͎qի/kGVUݯhzz-=BrR̙C}*-WM4upkTvv> FٳK--‚:D"9SBBg[ RY ٳwNN>2ׯWkH\TWWuĈfݻm4]CE7di/XplĈ~ny |AA6X6 $7o0FՇnm/Ljɵ#m<_VV}LTT$%[íɬ\ңGoi\@PϧN5VVkFݻ/^!BON_,<8إh8?,#˳gשּׂ57Y,ƍͪ>^}5OII7֡uW/ 7%%…37TO0?j`/hXa"Iո 7:hٍzb\џvazz;zd ?CGGG܉@}ꍳgΎ$"_FFFADFFfgg)<<<++_~W%%%111^^^qqq~~~'OƁΟ?_\\ljjZTT$(JJJnnn Zl uiMr--ٝQV_|[ ^&H˗/_R(p ޾* QѣGݻwoRnc6ƍǎf0L3ghY#m.;n8OOO( : \ۻ}+((>))k˖"jO/;@DCF?~!$$$TUUyTTT6nXQQQj,JRTEׇ*++QLP УG{6zzzJHHTR҈>}|X]q}@yQQQ***QnΫKKK?N{} |||Ǻp|p86zzzYYYun߮{)))˗/g2C~skެﭒzBB3aаNvuv={v@@CCC_xQ_*-ѫpD @ps6))+77no0yЃ á%ruu' AVVv噙yyyjjj޽JKKݻw#&x/,,.//RǏoܥK_ {{۷_][ZZeii{[]@'f̘Q_u v횙~}utt^|Y |<hܯ?hxeg]tݺ)]̣GoWdhWש,"?˳…  tdddxyyikkKJJ^ںu}CYYY!11رcUUU۶m#L<==&Mt-4bĈ޽{\?~ùsi7)S mQ8;;SԐ[nyzz6tLX,c+&mRw+ffUVIddj߾TWW$}+VL2 ussy]to_,1-qǎkϞ EA÷ǎEBWUgN*1cqoq'y 5g-O&::*|AOOuDD\200n%#VВ#y%[Zjo^xmK/oolk>~cǵ4cƐ[!:Y] <~4H]Ʒ_^kNnADOv%vhkP@#H|0e1 -q#q~f;_yӵoWnOL^vr[{@ F$'g~0m.^|(3kЦOL<|m 5Zcs<|vݺ%VޯGhCظMhMpyyվ#G6lyyŗ.9C##G.XՆ#IR)G ZTTNUTiTNpۭ䌦 MM,uԋǧU\]hhBiiżyǬbo@5Jo&j*W~~dHvQЦ`ꕐQVy~~SRSS< .^Y~]<{3t, u+22UMJ{bb9 >yP455ž}{չ7z?R3_^?}9/#Kd$~@JJz IDATMI̙TTCC)!D$IfggGļyQp\pAOOo޼y cAf͚ϟ߼y^^^QQQ{uss+(((**111͛7:<؈{yzzի$IqmYY٩SJIIشi@(@G" EhX,ۥKu&&X, MLQ`6}lpr)/Cn-))g$HJJo-I111JJJ5WHLL$I299dr8B٫JBBիW큁zzz߿k^XXHD~~~CRQQI444711^[iiIuwwOX.\hW*P/3:H ?\RR={ª؛7vI޷lٸӥKF M `0tuk^.C~.CCC SRR/_d2]peee^kjj!%%{`aa!!!̌FOOOШս{:Ξ=; `/^{UUD8d Pgީ*WyiVVfIL̼x1f!' ˫/9r$a;"tooB'fǏxeYyy5J?~xa$$$޽{{ֻwo.]jpo߾R///KKKM7Ǜ(,,-(. ڵkfffuyeuׯ_7p<CllNb 0@ν\r˖Æ?_ȏ8+,,>FzV㼼<{{{-\`$$$41???''Ǐ>;wy%())qÇXYYYUU%--]^^m6 JJJxL&K)))߿zj֭陗7iҤ[n1#F{ʕ'O---;V߈SL),,ܶmcݝTjHHHNNέ[ODıX mݐ!;Q{{yyUO~ Hzاφ斑eÇog0rY[bŔ)Sp\]]]77-uWM[[>7aΝJJJ!!!y {衭}q;;;UUU5fyy -ZԳgO חߞ`dnذXVVhΝeeeGo8K*++ɩsyLfl}Fś l/B^MfͫcGpnUV]]<vu'@ ÆHdH ++;`?dN+e>Y{ӧ,-0@:Q{4669sLo/\89TVť+Al<Ќ$IKWVJ =+h@ffS&y%:5SmYgws_$$ZtoEkҳ nI(Z~}VVVٔ"/_vcWkeڣFwB:.--il\2,,pvΜ9oUg_̤ќuG-?|:eܼtvR^^I~M4yN ׻jCp?ۏƍ7ш umYYՒ%g޾_YTEЄ;w^/ZF}m8y FnYYUS4WNӧRӚ}/ŋϤ24PEYyΫk=zbqq --eq|SS41_ӧNw<Bl6'5ӂy7޻Аd?~ZZ I566g+CB~oaP{S@󐐤/_ƚ;vL:U_AAq7jjy͚5,}UUٝ/. ^.۷~"5op;;7[  PJJw4!cI cҤAM{7%))-^Rv$.(kژ1<B}7 #44~f9Θa8hJfs֭ޞOׯ'VWO0}@Sٳ6Y?!;+ڵ w߈kV z~c0nLKNҒ߸qܹ`,'y$ cׯssK&Oܸp]큭mHq?yuҊvA)%%'6$$=iҠ;,gyeg4}lUU~ZZZž}w|}Ξ]ea :<JM- I::`.44jp,=|rS%%ɶܹS~D23=g8ӧ<8wP ~y{GА ~X}szd׭ƽ=fuM]=˸pqxx*&涶&^z(5`@e{RD5x0NRCwۢE,ܮPQQ3ӧѣϝ[{9hʉvϻhoyIaaǎ(3f|]D[mmO`Zxtٜ}23n]wQL&gDzgl/›8q"a?Ba2<^N/N K4iozo˗iݻC"#hiwWMv-ܹ¯ffd`@X,y~A wtyjB ̾r%~ٲV3wW>_0<=/_~fvv&TT~<^-#㳌B(<аaWLgE#edD[h$8ѣ\\fM2&gD]'""v6z23ìQQLMuxg-$U88kMҥ?BO>>1B7[.[6u ́<^-#31h[_ϊ<9s&j޼- ^9}ы O IRVrrh(AAj>~ܸ/qvrnnڵ[TTioa`Cuַo?ׯ+VI?a[$''c[mVJJj޼yn쪪Č|d444/^L<zJ--Pt{mmޮ3g"M_SSɺe˼T Ku Y,-懇;Z[S(?~~~4ߟqƌt:N ]􂂂 6 $%%oޅ{!TVV6箮;w`]QQaddT^^ޖtSJ~?^l3/,7dE7o*sg#1%$d9tccK2+Ҿ~:--Ç:::!!!!!!!@)*vlrrrDJJJӦMC,vggg992љ4iҠAWX\`***Ǐ?~c^)x~%?N,$$,YTT}x]Kz6YݻΟ_ҷoӽ}aaoL96s橺:f@75<߸quuuy:d:::*((;::2[n!]SUUո"LG\b;`iiCܹchh(,,D$UDfdd|r$~%BgDGqttazw6w/]D?s͛7UꤤWgه=zt|||'?z:+׳oZZq֪:g26&$d5Y1 AIi>xX,vPsS**VNIB߿2GSSq'''==222|-#+y 222W]]]̙bddc/^loo_XXߠwލ?ٹBs-++DTTT,[,??!TTTDT>>zzz2ݳgx!<\RR䭞x97oTVV&Bj\M^^wUVVnwH[.@.Hx[c㽳f9ʦ?xz@'M۶dd|q|s8?[]\nwaTl6ıcmް'= aڒQ(/_8z5o&Ƹ.N'8^VV:dȐ={4׎8Hٚy9::&%%9s%n.hmm}ƍ1cƨ~ٙwvmUUU 8~٩SpMV_`APPЭ[\u W^qk}0e@@/ XGyyeǏ)xB ,W5'VVnKx))I>xÞ&/ɓ'EEEvvv .2ٳgܹ3'''%%gٲe6lvZxx۷ sss]]]ZFSWWW__/ PSS# y;b9;;/ZqEEEfffȸqƈ#TTT֬Yx/D`>}5kǏ*`sZZZ˖-kYz͛7 ߿{~vлe*}bqjj>h#nwr nғ''͟NQQ-/SiW?/???333b+Ȩ_~u"&&fhh8qD}}}WW3go߾]JJٳV"C5JIIIIIISS3,,,00A]cGX`C3gwxbba vڵ`0AA{!SUU]hhbb"w|65N;wn Ϻunݪ|Ֆ~vXg ?G:^_mA"afpV޳&ݹАFl$ɹc896dZ0޼y}}}HJ<z}}&$h0p;wg<^P "CɘmГ'S9+&'4t_/jkk.^XM.j3a 2pА!jx؎SSS XoaaH=2r-V c2 <n% <z}}P-mh-`/P(dIIm__-X[g9Mdf$uA EEd<zb IBBD/mdKa;9&!!d;_=]QQb5Q(d CL&!:{n:Zf>M/еYtܒAVVQӧp6y:" ?W $%JJ*O7tqSYY IDATҒss?lfsV͝{!D"a$fs9RR(+Gle݅y,ii:_y9A^^)1-!!..3v…#eh4 n9Fɓ'X*B6mrsswl޼رc;tT*UL//bUFCX3 FBMDEp9L.gYr )JddرcnBG pwHu`uu†]tB%% Mrbb}7ERWEPL&#ϣ,+ _[~~>||ߟZ[[;vlTYQT_[ `$# Ԗ[p b!AݻN7c¢҈<-'}0aBsFFFNhJ~ F–-C23]<2gΜaX*{üꪪ~Rϋt:=%%E[[Ɔ>| v4.PRRbhh(,,0 |x֭]éLl+WlUAAAAAAgii3F;bD_iYYUrr^vv ϣRS&訠 //d2MLL}& 2#""h4ӧO@a;`iiC!X,M/^\^^\?7ˋx\^^dYYYUUխ[>nFGf>#&&6z))yvߵp7kj87r<ߵ 0 xa„p{{ӧ!N:E`++Yv-BhSq3fX[[={Khh̙3^ L:ŋgܖf{{{̜9 #j2NgϞ-Zh֬YN">tuܹYf͚5ܹs]zȄ KYeP (((믿숿Bǎ/""""##w)qbѣG/_lhh\Cm߾wލJOO߷o_s헗(q }zUVyxxTVV7ٳgl6!3%%%--9s B'N;w׮]#'&&={vʕ^^^k֬r o_`PPǏ8pر<8B!!!ؿ||tЬYBJJJoe0:]t̘YYzBl#:}ffQ vRyd/routt[x+v!&&tUVȴfIТECq885eg}yB`[{!djjGMMMՙ3gN4ȑ# P()))ᖖ r#奤Ztq [ZZ>|VXXѣwupp ;l߾=77j.NК5k1+V\p>44رcV:wCdnKbj~7ûwx[Vdټ%)1sB_D";}MLLܲeK[!q8DE{} [8DqhDs){uaa%K?qxYY٨(" $LTi7$wك B%''߽{ɩӧO?zȑ# >>>L&SXXJ䬬">|BaX ӧOmFG7{W^޾}*/_#.^8i ؜ D,٤[m3͛יꭞE"#Fw<7fo?yV'زyG5DEE]~#ݜK.%Ǐwqq}֙?,TtyO i \qxc0 coMRVVfaa!ss?7d6}eKK66BLP(&L8y$N񣗗yCpǏ?~xĉϟ?\qwwO>{… czzz~9++k۶m!!!m @tA*..νvELLpĉ4taΝ&M3f FNk\bbb]]1cݻw֭SUݕ------w)++e##%KpcƌK6unݪ{ﯸeCB6,Z4JBB!Dct$%׿x{C!xN)y_ddA[[[YYH$SSjjQTT`6mׯ_-$Ⳁx ~ b4 KL&ѣwc#q&ዖIO/ yӧ2+q[pBaa_-wq~i…4a„ ]6d߽|UTNN{_4BT*BB74Z+SS{m&o69))֭ffQGחv솂?̏ss_Fg2 ͩyJXX`,YHednd\ў,--m׮]ӧO睬5ȴiӺ))yII/^|%0 ̝NLQ"1.#J '׿uyM)))y7.+`D KRL&;͆) }0 q樨He?Cfe(,rӧ2]T})+Kh222⊊8z. CӦXY  I:|8.QaܹÌ5srJrrJ>~,~RW!>MFVWQU tT*xLCB==bDӿd ssK/7ӌϟ_|\A&z]44SDE@Ǝ9Q|'66=y޽{E/_ >V/G8JDDՕE:*Gӄ7suWXqGxpJ%رmc~-%!SU"[ʆaZg?X^^^\\\o^/X1|*D/F׮J,8ņ ĺL&L&=|E}%%  [bH]Y8 !02f!$,LUWQҒ77te.o!T_Ϣӿ)*b0BT*w@CCV\\aX y օwc)>^R@fl6 !fsLqqd]8889߸:aXZ{+bs8ëf?ٜtG*&(HYܴr% @ir篹DW9<< QZZFdt~K0xӨcܹG!SVXĉ֍ S*+k?Noul6ð5k&tq&zVnniNΗܒ +B @@/U\\bڵk/kj}X_ݓ'GwtZzB+ҨTײ&%K5@'OmSP䵴[.^\xzZ_&.)*BLv}='JJiPO++ut#ٺժk#FK}JK,Vî>*6턣ee-Kbb}֨J5HTϸwM0 ;x w֔d ìy/ZNt*GGG}}}111ccX !Fŋ;.l4Sß~ kyR_T\qڵ5'--^VVJVmlߺr}..KK[c㸟Fn1cN111!BAAA[%++۷oo!TVV6箮;wh.]111t:=??ۻȨ-{XltmקꩋkpnL1 qdkkoSEEbbB !D,uU\_;vL ~1|]7+ ~_NKKJNNNOO'6 )*****!CRBVZn]aaa[p8%%%m, ++7FrrrVVV:::gNHHn\XNNNQQQEEe„ 7n۷cڲONv}ν6<ިi-PȂO%6Y6Y@CC 0 a9BHHH` gϜvzQw,7nn{6mڤr79+//_d֭[kkkMLLBD;w +))?]xG70w҇"J޽L`DDF{ih1 [zݻwL&QAAA^^ёdVt̙37oLT"Zh\f>|XGGGLLlmy{AuoDM}νt%Gm:tϻwVOHp<|8KUUuCr@\hjjzxx8䤧נ@FFF/jPFFFzzw2vvvfff>|HII4hО={x_XlY~~B@M{;wnYY'B !T\\ gϞ)(( N<922`{$uΜ9)))FFF;v୞x 97oTVVf2MVwss~zAAݻw[#t[=3>_qXbҫfzv%yg8=,m[/,d{uw0Om..~#AڒQ(/_8z5o~,O8!..-S__O&߼yC~o uuuiii fGGGM55(QXYYYs 300΍JDD$!!ܹ:::.]ː絪@gN].ꙉ7b=y?ިÚ]ð51s橺:aMܶmʎk- «""֙-Y2ҥ/?awŰϏb^l?hР]~WXNl3ׯTKK+??@zz044l"z&˭B-$'':x܎222{VRR$!!duaa3f 8/_lz}}wː!CZ8d.9u~[Ɵ/{m}R"nz,,,...db!j>m!}P=|PQ555sttLJJ:sL ٙwcUUշ['rp?{ԩSD QVV\ ݺukСUx۷o[8dvÇx=n,/<B H$lѢQ ĉz-[bb2#qt#GlsǏ?ho!%%;*!4~|__v ;;zDDZsU \RNN+kuJ6~hϟ+&O>fo!11v!,ѷ[yy1KAB'N]hTYYubbNl \ …竫5< ,,nARR'9u<̈́ IISSSMM9EES[%##2?t,9|x˗WܼD%K,-`2٭^<7bƝua툊G޽z uܱ#DBƚW|`F鈊KI$~ o FLψ}ΚeDlY4{Ν_KIIr˖I?"\B9gĸG?6kѪUa1 ..X, ^6qqN &J" q<55m ?GǏ~͚_Ŗ_u}s.6`ş?lfƚ?> .55|>:FUU5/'!!ȑOk_o&(XbffbW/i&77.l<eg5jML[bb2=M D+l8<""!CԖ/;kPn zӮ]7>k::Z@׃<1c[Y i-&ˋdFFnVh? KX3l?ܻ"b(-ruwjlCC#<wѣ-чHr̢V[`9negzrjB7oڵ$|bqKl5!_y<}1oޙ' YbKEEٳ] :`rTW[[.-yyynu gD0Y3:0@e-~YYBTTny;L&{]۶M^l,wƍW߼Oþ-픔0f8)(H ^'))]G]+8G^t __}=gFj+ *M|?Ր*Пhƍ8KHȠAii**R.,mcS_f:%>}oegz5pȱca!\}{`g,dѠ?А@Pxx*F[ۑ!!IV }u[o !{Tҥ^=\NNxYY66g'OvOYq1,)x_[[76@;A vvBBv F۷O NY^̵9cj9{+<炂 ,3p`3N虾~^rbb㶿pߐ=NM ʕT2E@[z^,W{&&Z4tR01w/& K)(HXXڎ{7t2ԷM৐_6g颢 ?5ch;O=kM4q:%KFgd|&Ic]ƚ^^BB^uJbכ={gH]]; ޶-n @C̙')m4H><@DDRɻ|xDDZ^^ƍG>|(>ӿ*Q> 1rd?izZZ/>d7희"%%w-yy1}}[`&=eʐUua^^OrsK$$TT *X|yiBeY!Pd:͛/lS_vkcrq"s]?DW5h޼ޜ=u:UUi11AQ\\im}FXX=yf}Ryz84MLNTz{[9R ={nʊK͊ [lQ{DXXXjm-SEETZZem}w8g<,yySMMux&edD?N*5zp(AAJ{5JOʞ=7ed~T 1qq/_WĸGdֲTU 2ml2ׯWPw8ǁ<,ii;w^UW3nRɧOGښs㚚zSӎ6|x>}({ޔ@`A&2eʕ itzŋO#WUh2\MNν~}Z[g z-)+ Lpp;VKKAAiAAʉ5UAÇ{KJN _?ɓXa_z3G Yp<2NEx{?\bd<@KO9Rw-L*. z|X}}Lұ]k/sEW>pŊq::%.==s&2*]yy0c?4Gǀ{gΞ=߱ <@KDSQQcaǻ]CCĉ0CC(*Jtl/ƚ""{3tFcP P6`ժ #Gv-99%ʒ=s!8Г{G3gS Ѱv\#Νzroe^Oti9BhS$v޽7way"lN\\Vhh Ԥ,-F' ,4騴h`ZX| PTpw46Аާ=b޼B+> !&&o dbүӁP$FIt-,T'gFyz>NIɫa**J Ђ]'&*H-Bo_y_X25JKII"3sPЋEFuf5C5Ĝo/0 ST3F{QO>;wCQ]@ddڞ=7_S֜=տκ:f60]_q<'狆u~w^^7?M񝪪j1"(H//B^~Y7}&|iEqq!6nފ?P઀_ʦMçh݌..7p3g"#"Rh2V?rFbݲecdSpEE_M;7m4rVqkUwD=vhŦMWgv{+tQ-??-%!NIIrPy&3n\+Wb!?N`311wxxVrd仐  #6:?ҬYC`5ؾhѨGggA o~~/_vݾ]W|jj]\n @@h3 lν{) )(_O<5hwsW\|UUu?m"))lf6 (E /d[g%'^%5165.iǏ.<޶m(c?m5wqLLFAAy&eeUߺ R5[]_}}76|T6s{t]GGaQ| @IIuJJff7eΩL&ԩڵݻ)ԩ޾U(anÚڶm8b}0kkkޡn\UU訯/&&fll~nxXxqqqqwG=3wlvdܾ:!<@[Qi 7~i11O%%7o<>N}RP^׷ܜ9cc?tU=~~~4ߟqƌt:N ӫ6lX||vciif= ma<511qΝ0x|oo ##6JJJn߾ci>jl9f]{OEO6++KVVW[ѣ;yӵZf/^|TRUngHbd9۵1W5$$k[&!Vz ð0z֭cǎeX- CCCܹsNWZ%--MӛkK4g Scjj{.Im9|"1]|%Ϟe^Em?d~*vI+D}?Cj'x6avv& 55 tӧ!!I]E \ŋOe7nn[|||vM& {m۶O7mڤrJ;w +))q0 x|XGGGLLlmzCBnj5Jb >' BHQQ(y$L8]ۡ 2O@orA":URPWϻȐ]_Vwyʛvb.Пp455=<9|,XWWW @x" uuu(-^x۶m]!//hooF$N(+))ܹqT*E[n)))H$CBB䒒~z=%%|^nnowۡvB,BcU_/a>74`૬ѣ;oZ>jƖ vqܹz@hDlJϏ}?~A"y233eeeQӧOKHHTTTZhooHP(O> H^^ ?c;VSRR I7eee in8;7N_|KKhNNK.ݾ}{WǎA+22r0y6D)]o"e:Z|!Õ<{ɓ5_1< AEVb%#G޽p˖fo$OTR\OG?*+K}%'ō?%%%mlluuuK6mڔf͚gb%%%%k׮%FFF;#" 3\QQrȑ0f͚ 3C\<gYYN1Ԫ<(辶v`uu#!([Nz9*1={6} J 0Hܺuㅅ555wimmd]!lmmi-HKKɡ,|q+WJIIȬ[! }}Cs nnnDƻDQtݺubbbD"d2988XKKKTTq(,{jzޕ5 lF"N*&&ոW!?\YphocSPPior떏æ[^.OO{[iǍS [ɹv1}ٳŅ9p8\\\ [z+>>%\@@|AAÇ[zwR{ĉ+du޴rԒo _\tN>ZxP`Cy>Z +OJ[ֲeSoO'r.ɓ~8mX^}gjj OOˊLϐ;thJ=tD5SRUT=$N/JED x" ˲eS+¨٘UD%&&ٳ\PVV5MlmKimBMFF)x^x-_&9r7˖1'۷&gV.\htANmjg`s.xhksS'O&&&r;7n֯ɡ#󧀄:dee'EJJt+W^t4oDII|` Lά WQQ՜9'W31 :kFDF5kW"E!O?:u*jSĹ5ݻ{`raSYҥ11YbbBkNyV8 IDAT0AxtxΛkkSSV;z;q??֭v7o|TkkUlp_aa;1cd4rŋN^5gΉ .o̹Qs'SR<=>{}ɒ eptl _|իcfSVj ANzծ]78&ΦȈ-\x{0x@h#jiqJ;:Y>R;3sΝĄ88 mn1>[,6ef׮RMP9&G$$l8rʕgx&`s-B M=FzpK%  ļyžvfv~aWuOv|3N%|yZZĂvʀ.<tiwn0 Vrryy [[}Ơ?^wNPнw9bTTbcuu'^`68VUUO@Q9sN Ν1y11Q74TO&7Xxn&ռ#\swHK Ԕsq9a՚Jeѣey]??۷Q`W`p<N+WNw۷&r+cƌ.w{}=qgR##}<|\*̃;]}Tp11^6]?|ȑ#:s88(o0LJJtɒ.<|N۷_z|oߚű0{m'O^|nÇ67:(0D UZZoI$ʦMё+VX760A`?/Սw3j+w[ee`78c_/7عiMTTԩG\y ..܇ULM-ZЈݡ <̛7̙TE6߼F͛bm ?SDD7ox[ffϝK%`nv}RDF"Q"ss?ŭ:U <G~VNN_޽2^^<3WEw|jgΤNo:PVmH< yIDCC5΄71nsĄ2:Ou&$_g/YY[^0޽3>>1>|u\`DE{n֭^7e&ByNٰaƋ%yyW2VQU>ͼp& Ą֬ǗyS1}%K߹wW,fXr䣤aa+!݀<)Ӧ^|8%c???}nfe}dsl% wv6}$EOA<zDPq,'8h ]N=~{ ?}e(wwv||fx{GVW7;F6͛>#cqxI/Yr>%-+K`xR8c){꓏5op #4DUUK2;8 urWp8\HRiiQOϰr9?/o_h; +V9iҁݻ/ 8 RemsNG]kL 8;FEebU _UQ# r~ø$'Ξ}|/>sRy("r+y!p3..wǏߧM;f=yCyzO^ԷSG.\8ZEOAdjj(AsmK(+ΟO?v^R&uo߾Yx<~ܹ}o6#8,44MS3鬧gXo[;~֜26EUK.˰r'K.ׯgkivOIɷѣΜy̡ᑸȍ7rXaq+WNq<-SSzږ-mlƭZ^^^ǾB8;;(JZ[KM"ձs[ #Q(/RQ?c彼s(2PE yㄅ_4{ ׯg5>>\h2˖]'5RxBAF|i~~nxEܰbTII  ,1"z7",,LYsc= ޢR',==EnF $Ŀä)=wwmrr޽d`)AAGl8!<[HI*+K͘هǎU_\M1x2vq]!yK7mqJ/# r y˦0pcǎJbccqD??? #Fhkkݻ?|O8Q\\ȑ#LOO]]ãCuu±c TR7z52)))7ocAAb LAͥΞM/"ݗ)=A.5۸q܋%q@Q466VMM-..VP]]]]] H׼7nTTT矷nGLVVsyҤIAAA_޾}{LL- W333\B Yzl]bw~~'mȬPVVNKKKNNVSS*..8#K>>WƶD7o 02lXBMmkeu"?՟fZmm 8DR544.^Ν;v<+Ceee!!![[{b?ۧa'Na899544\|A˗/+++?x𠶶6%%EKK AAjkkȐoH$"5AQ477WRR9((h۶mc>MݺuKIID"1"''{)))7)*nnjj/ܱ#<9ގ̶6>>oӮ @\jUUUUtt4 ߿ 6 T([ p[Gt{TQq۷_rmmՑ3Z#[dggա(kAw`C&80~x<2 IOOGQ?~}I&RSSQ;wcPb#u[& 󳏍}?մB M--Ȍ,++mK--gbccd,311AXAv]XXcǎ;v.Ħ?~?~}ZNN͛cƌ n@V**nW?}URڒ1 =md狊yf߾}N' 8.99:"rrrW\2F&+ǂuxNv-wx\K+pӦh Vr //ٳgӗPTMM@ZIoS2o>#F(J"N*&&&ϣP('O9rݭ[F@$n:~x}}CsH nnn@Xr̺uZZZ Eu։n`---QQQsssl󊋿**n.-_QHC\+ܢo#EѼ< ]]~H$N8i7$$$DZZZUU544UNN+1b+D! %%TU}ri%]9+[OOuǎܹ+Tnэ;w^&&&0NPǢ䛢K[s N۱cDzexXy֖wq|D__HWcL{իv%]B:+,,\|y^^ϟ?w޽f^5 K۷_gSᨭ,<<|ڵep<KsĶ?|N+Z?R!cU@@իWZ렆2: g))ŢZj zIVZ5}t^28@QĽGJmm3V`$&&î.lmW%%ڸ*G:TQQ[???~~~^5 yϟ:u ™ÇyȠyǼg >XL m9̙z11^ox (iM^G<&**gwjfYY-Va[Sjj1{Њ^nAz_=0+-#uD`<{Kijn.ke5]WcИUU8A.WuD`<{x<Ν/| +|OP-.n}~~eA`40` p/?N΀=`$q:v%a++Kd Tחָ]ll* ??˗effpr`ő#KKk^BsurKNK|/_|p`HHH<ɓ5x??%KEBBʒEDtxu-pޡС;11/^ltK&qꚣqt\zdjj(Amt s?ϟ AƎ/krrjڔET pΝ+,̆ay`!ۧM;:kָwA+;w~PwBre9,!uuY'1tt-(]dɒ)$.n @ĄvZpZ7xxX~]^TTš$$F\me5Bb+@**xW}|\)~ {ۿ!</Ʀw'QիNH%_ٽ/x6 E˩UaaOK.^<)'gw\ !<q**һox cq8֭v!!K2"[[;8LaOyxtTTx̙ԣG;4b І {RѸAAvwwgɉ 0|`:x𗦦SyxX&'4q_3+*jmJyN|N`"p8DGGmfe};0oė/wI0y`} ҵ$$F\Ϝ]Htt7MSS+"cƌbKk_689}22bli :4OO ss-x'IYc@FII21qUV [\oiif`A1cn~] QQks^0Ap8\pKEE=Bb. ߵkAd䚔66/^r90|X f23?̚|j RSllƱ):0Ad"#3LL##3xìY<6aʒ%D!!~IIUok#>|%TKK.==`ip?0~ݹIBB8&D,X`hhz/`A ˏm-E㱋Kbzz $y3ر vDbիY}إK+.\HM-<Aa<`RVRogu"O޶m+))3 ՈĶ7x `af_u# p *9 IDATA&NTeǏ?5m8  ||s ':A#7nyt-.r^ay9r~Sjs240ALd֬X˒},8GJ[^σ TX9%孛E }8 7p-`NyyŅy|}c0Sz0lhgǶmIInULL9'+RiНR=sm'OBX0Ze%$曤׼ɓDGKMQ4i, ܪnwlۖ;{۶y8;!<#&&4i ?~u8)ӧ.4 {>i~u\``.CQʪ{nxQiS֭v\ p~`P*.:kV(qq;w~Oyjk#ݼQPP)+-<9xѣGy`CQQբEgn||,VUU5L000ƍS21QАѻK%'޿ENN#bccsrrx HNN $jU']YL9ydee%bQϓP<=-}}wMKKmqgjKIJ"Hs?Tkh1D"Q#p{vz˖-... LG5 %%E/6k_4:"zGk+it'w2"b(CyJPerTTË%׭̂%&&AggΛ""2BB)r=.0t@-jk .y~}߾^HK+w}ksu5['!< 6zNddƨӧ"#3sy,!(֖g8JE}|IK8 bCyٳ9s{yYoۖ_x rrQQk+66z֬Y3.}bbbwAL  >>>W$"""o޼Vnݺ#''ގ D'H %88xر▖/_]w Hcc+deeUTTڰFuرWjhh9rJL޻wڨQ<<<0yh{f^J' q`>>> ǏtvvG]MLLtrrm(w3,1=Ғ:z(p8{w522QTTĖoAكބKMMUSS{E=vDW~i_W{{B>PƑ+r;w򕔶d08GR544.^Ν;v| NNN /_FOȐH$ET*ٳKJJۇhPPŋ+** m"''{)))a-w.wsscaa^quu%aaa/"RWWGk!88X__Ϗz>oh%?~'LYyw`mmm|||߾}^6ӡu?(((yEF: (w3,ϟO nܸzP͕DQ@  Z*::A߿3 2 yyy, {{4"M(O}uFUrlB֭[JJJXHC 23?(*n.(9rWMmkVFy^vv6???kAwChGGVNLVPPHMMEQtܹǎuQXXH\KK EQ]]j0%%pر~###z]wtt{ H^^-`IJJ~oOj6/ܴ)pOSʻ YÄv\6nܸ}vEmmmin%Ó'OPΙs7YW{{wD"By)'U%++0:"QKKhNNK.~QLw\SWW1**V8w =/ȯ_BX2,++LLLaee Fe 6+ й"_hQRRR]]Ǐhtuu)//WTTĮ=Seef``P(K---AiLϴ~e܋?p8KZIz?7n rz;7n (2,vs;ub ٙDDD`[oIIIl^~~> ADWWfEDD[ZZܹrʮwCyR릦K>>ٳed<<.776ޢP(qqq!!!1___/nj߁ݻwloJgg+>>~ԩ***rW{II v` Z}w!//ʰ?~TVV7?JJJf.Ov\A'IXIKK{``…FgN }`|||666.]/N:ŋ)))nraa(?~޼y兆a:8@umKKKPP쓾G'ꮮo611}zAM[;ՍvteۦZɫW.1m٣yΝǏZ.mG&\BŌ3JKKsrr }||hmڴrrr7oެNNN3f ݼ -[fccSVVVTT9(w^"KK˵kײrޭۆ?WR+:w1n w׷/**PPP͛} :Ŏц f̘PQfLBw'O888466(Ѐᒓ[ZZhoFQIGG:99$))I__ҲqW=>.֦_e x+#}@Qζ y#F ]=ZVV_mmmEQ@ \RJJJFFfݺu---d2988XKKKTT]0twwwEE-[`絵)))9յ-ymm v+*n9U򖄄\6CQ4//FBBBWW~#'Nu'O r9r2*ϣQUUussYCBBUUUCCC]]]r![n?~C~wcODWy֭#Tgb~,0=8`zMp|SޭXo[*6%K {wY^^C' 8...Ņ=۷ܓ'ttg>!''{ p {az<С4iFTTC̙zAA'Nxٲ)VWG\$ƍMpR<`;DSS2BB=qWWG|saaeNΧvĉj'kj y`).]\B7k{swLJ$&n*.kWұcN?>)󩴴EѣeLM5&OcjAA>ϟmI4K~숍]'WYc֬--m;w.ܱΝ7lלO22JhW> ,76u͖;:7F|y̙z =w']0KO'4}\.K EiC,<0q^O}qǏU&&9Ap;Y3Wu*,STTh8%lAl BSOc{,CM+zZW ?\ xΝ;[TL|˖M rF",9B16VSk+ihiꜜOMM?ĄFOa`jf 7Y y{999{زފhB«n o6/_mKLK{ @r̘֨,QQ3tsr*+PQ(,ȂA<KÔ)Νs_А]m64ݿv-[OOi>G>^w_$Ltp8))EE:" A~~O47ׂeA<rMMII݄ *m߻w_7oW*>aa(tժ;w.NyaٳK^HMSDAA+g7]>hk#=8B&S{_PDLrbcc  ;(NvR1guyɑ#w *MM56mPG|}HaDD^ '\<p,(8w$?Hkljkw7|||T*I #G\lpy@h36޻cU8ڼϧ?xP$%%2yٲ)cƌ6VUUq:LZzBEpW{E9!\Ҭzya* >#Ëު!$&^UQQo`|&""B[l177BSSSGUUKcc{SSU>V&Z{( /*:8P` "...qqq...y`zیAN˵NT4=]LLoG| <<w>_ [Yqolp[x < S:: ffc\yNp66WYvsaBA%$&y8 $gVqctUU|+/?r[~3"DF/ !--*''!''.--&--*--*++&--&'')h` ×Q11Ysy ฑ#deŤEEExK@lٔv2cHMUU<0L@-{ xHpt=<=ÚĜ9|5FoeffVWWWUU]r@ 766vsYYl 677O4)777((۷oP(988TWWWWWgff"R/KK>SCT˲w޺ (ƪ 9iiijjjVVVŴ_CCógz9W1z,p [FF(i IDAT悂 w H\\\^RiӦٳKKK{ʊL&JD˗fpٮ` M]u(*n=zӹO2P-((p)))ak#@Ri%NvAaoo0{/~؋Oǫ3 wZzz%8޽{˻w(**b+kSLADAAہD"H$Aك!l*Rjjڋ̧9Wp8\xxިQ;vU #G޽Yz53Hy ׭[ttt|||{l7ž͘dk{߿hbccg͚K?וTǏ^:;;ǣ.&&&:99Ѷ666XBVVVEEϯ A'--#9 =Ғ:z(VA͝*//FUWWsM:88y󦨨puuu233涶wijj'[kCCCDDBɩرcNtaiii222t:ðh===cmm]RRr}mm۷ۮ>~l:{6kpeujj땔~7߬< X,c0 ۺu \d2ȁ=g=zaX}}Hmm-Kneeˢ"}}}!tҺ'N >|q>omhhx"ї a}8$bnW^UVVƿ_tIII)ƺ)W=r|}g ԄB>}:'22ݻjjjT*ˉd2ҥ &t3J޼y+|}}ddd:`ϸpwٳϝ;|rnj ٺukPPPe0$,<ЃH  ZO'&}!WyB>$$]%*C?P(ׯ_Dccc G ޸qcPPBhRRR>>>?~8 /^^|;~Yg9 ~>4119'_?o߾%K u QQKOA&nFiii!JJJ|||&OeeeJJJ췒RRRs<<_\ U? ҥK'N}6>)Ë<z#'N*F:BFEe=5%0ѣ ,@899/\-22wFWVV"݃g͚žz944tڵ/S芣N>N𩗒ou5JDll+iid2b:/m[7s!~ L&3...<<?> d2GexUԩS322RRR8y ի#^|k;Ri]Ȉ/ 'Mɓ/>KM!ƌQЊTVV{.--mɒ%mmm---Vcc#!doo뢢"Ç#i4˗TTTVZ; ˗s_v/rsslٲlٲvb9:>|h5??BC}w𥧧WWW͍F}yÐgnڴ`ǎ'N*[___SSSy=\y͚5?޶mb;գ/yW|Ӭꂂ;6RW^LNN §x**^Q`SSSswwb4<<|ԨQjjjGquuSNOhhhXbʕ+פi"""zzzv3._} { X~~~ DDD|7?SKK˗JyСSTRYM``~~ڵk&MV_Çsedd֭[Yw^q}ɻvK:~8surJ111 L6g0aaaڢN1֝`v.YbmD"999 p֭[bbb/^މwvv7W'$}؄)0pwo8\#/[fqJ{l߿?utu@IIڃ~xxX473ccc//3gJHHZ2di{ T~6CGFFl'Osr2!:ˈ3cƌ[|NJS  < T+#P7+W~iw.c[3 nF!!s~a6Y@">xӻwuoֽ_WQ񩽝e˷?hEtFyMXX$**w&2LHH!**Dee? :ϟ$$)BQFQPڇ &NHRV0C O~ۉC_ʤIjZZ_?zTd?#8#VW}+^]-^1d>>k *Ѷ6 A|1  C~xĉ===zOxttmK>"2:*4qƌŋ/,|Y&baFkjiLO$))OLN5J2"Cyй[Xq*==`h9 ?))O<=O"Q(d&5{ݻeVU5̙V_.DPH 2aUFcϟu5"B!hi4+ &s,fabc}b ?  f-DBk93^/Y;_CWdj:_"ʎYNNⓘ` Q<Djm:5G2cG,βXFGgʊ(+KJ''?~~UfW$ wws))d2< KHXzRssݻώO;rεk3EVV0h`>c7)Dg~^6mA2b!ss={tt7mpNRED22(*J{ׯ?Pq/B_|4Z(Vl *,|PP8QTDsoy%kמ{T KuahժYkuu=VPMd2iǎ%?ma_.3LSS˗tu2|}NNinniFYDD@OOt4^II PN<G,Xpڵ5ƚDg~Ξ bu2] !F kb2Bf޽Sh \\sTnzCNΫҜRL&iiOjj:DsXŁ @OA_1AMMÇdihh8vq2D"wvv6E^dP(SϞͼ} vEEo54d%$zs^MMcA o[,<> jWÙB:Sz!!H/ msSWmBPJʓ[/64n`b! nf&GXă:ad{ڵs28;e秈 2+q\gnޜpLTFF~ȑ;v[WWiϞ ^Z0odLL4]xPڕxb^N/ S,fh!DF1>%&UPϽt:Jwr2ýzUI7ڱct_wNd orr^w'MR q`@@_Kːǿ?"YY,lŊ[-?~~k$$ ~Νd֭ .5a ˻YY/>|hW:ṵbPutgm.&:͇y7oi>p뫜>ùkW}yϞlss]xV|y<7wA:%-q㔉 :8^h=mћ-[W`ุ?y9s9:TV~ھHDrt4Y`ѣwvJKLAABdҊ/.,,[~^|) l$i̘1\-DzE_yss3J4iݻ;Z:6g𨩩/^ӽ<= a'Y,@BQ(dW?Zh%%}nX'$Ŀd!_ӯ_N"ƪűUTTTTTdee!*[ ;wܼyS]]}ڴi7B($$N۷͛]J"ݻN^z%++ssssCCCbbbΝ6YYY呑 I"%%iӦ>xBYyݝ;Oj z{ϜW]}m>}<hΙ$)%%!sh4~|}}X,:&&FHH ðL>>|͖-[GlmmB4p}Noذaڴi }ICCĉSq6gXӧO ~ґ#>Q>u3 F9Ǐ5cMsֆ_~YtREHddˇL M3f̘3g.^WRSS׬Yùn~ƍ1 _f>#:NRT*NG]~}"""JJJ1(rtt]MHHX«deeUUU7lڊ"H111ƍ5j>8e"[ك P(sDEETjtttTH$_RRRWyTT[x1&--б9 |W:1p'7o)+{ #BN+-~~ W_߼kWSgLy,KSSرcmݺUOOV2\YYm>炂?ҧOCCC޼ySTTdhhy憆//hPuu5>;wBϞ=STT|a"""5www++/_o߾0ҥKN8Coŋں:PMM o 33SAAc*\))>)gsGr|fիt:.]z}RRWp;A}dv^&:HK-k ZUVVzYuܫCG7bZf*޽{bWu]!Ν;yPWWb``Ӧ&&OEEE!h4ի0 ;w.x{{;By1~K޽{ðvnaBaw4:/;;[VVTqy?)gsvfQQќ \\\is(XOEWd2`05}׵k֯;`FСeF99uv>ZTv CVVD"!t($$W*RGmnB...ʔ{TΝ[ZZ* PRRbcccddy.[GG .`Ƶh[UUd2k|ҋς@&SHII)**m LTh4;FOis;;+Vt۷'N*@} ]GtbN}r/\kcvmM{;n1t0̸pګ\\~d2;g\{bxiXWWw'''*Γ곩S666fdd,^}\AABz7/_TQQaG5{@, IDATpp0ݵ͡666b0ѣ ,v5!!ڵkFFFcƌ骹O EEE666nkkkoohiiz;B888˳;;;Y۶mç_Zוj++dve333UVu<ݻwiiiK,)--eTv5u]]]PP~Q~~~T*իɁ_]B/nzBYy]Z3,jj;v\LֵkLM6ڕSgҝ|}}9X,--M6tG~~ڵk&MyBVX!---##rf GvWWWyy6@믿B:˗())[sk:>uT111\֯_/""k׮ϟ?wD哚{UU>)gsV\)&& #,,L[[[TT ľy$ ᐘDYsϯ_onN3rBCoX?!(71p7gu[7^^RS( MNN&;ߟt~~ʲef9}n:ӧSl%{$9r"۶-2}؍g{C&=@0P(-Ν{s;YF/i;v, IT%%0̭֝5+…\6qCD>>36lٺbtt61TUs2eU؅ \4j'ZxB[gv͛/^jtƉUc KL,odP@?^RR #ƍ?0_,h~s}:fߙ9s'&~i:yTLMG:u #ז-zzZYszx4nߦjkYה<:״[yf%V!|m8c<׊ yzF88zAt(x%Μڶm!YF(L&y st4!:? 9/'K66\fո]>>>#\_o;$,,@t-4ơC;;;[qqCׯ*Ͳ7Pz &_ cbb~ u w8M!:Hv_SBBΒ,x;/竪Jt Xm}v3(-MN.u4bYZA >jD&''nk;С24~2h`؃:ޚ:u(tBB|;v\648={I}}ˑ#w2[ZU1`((H׳/.4 : @)v% ks³gsw7'ЉiǏ54N*$ ` mGGIIadf6ZLL08BB8]^̂L&>y_%$[z<@g2YӦ Ν>|h=[w(_:)$oa9UXX &.)RUVT$:6DΜ||50q|h荊OVVr31ic*޽t䔔ƎU"tr0@KGGСT5Q*DgUW AUY[q׺A@ǎUts2mΫW5&$DG0A8}d^DGg߸Q$++t%ܫ1A4K:sOdNNiDĊ3FGg5kҥ/<<~~gJKks=A@t517nExt:ܴ͢bbB8:͹#y0xrsK~KL\kdAt% ÂED۽ar Ă rUT/6tw!Kt.0Py0xTTSSzUD"fEܙ27F>11ACo/7oLH=tNf&Ng : g0 6XFlIpp0޷ωBt`}z[0it-lk;a8#:u *|͛|ݽ{}|&MRX!!!DtJOO/IL,HJ*jogXXh/]jlc3A\g?u >rH}h_ʪUgZ[D'X;w$H{e%u!TRR`iiiEEŋ~UUݴKknnR&M711ٽ{7xgN nŋ>n{< ԩc""ɲegϮ{ſ{WGtaXllz\\]EEEEEEVVB_zzzo߾PQQs͛7էM#BBBt}l޼ͭsssCCCbbbΝրYYY呑 ݺFJJjӦM90u뱲򺒒J*):uA`N+^uBz9Oi4W?vvv,}#$$TVVaXff&_qqq_>Ȇ M`0G444N8u&BF߲Xӧe$c|lΜG˝:NtWc(ܼodpT3f̙3GWWsJ+k֬\ܿ?rƍYF__NR T*N#_>yd%%%|_MMMUWWȈ P(DEETjtt4י\9I$_RRRWs6?ŋٟMZZcs&#..nii{">H=zc]]3A@?`XVQY--DnX,MMcǎauV===Z[[dre?Ս<\PP~RRRxhhÛ7o 7o U^^GsNyy9B+UffMMMyJIIu5:gsC%l|իt:.]z}RRW5uuG!:7o?2wn؛7ݬ߿W[[aX^^Bk{B]u5:wA]]݊ uJJA[[ӧOLfZZ^#aVWWi-++y&aoqt,**aK@@@Wuttc>}zuuuoiiqrrRG.==]_nnn4gnڴ`ǎ'Ndoo뢢"Ç K\i4˗TTTVZqwޥ-Y}SEѻimm]WW~~~T*իɁ_ /ϕ~.,|Ct^x,ܺs}5i&N Ϸ]vmSSӤI8OUCCÊ+eddV\܌aXxxQԎ9*//߱mSSEDDv玣pBjjjUUU_9WW+WkjjBs-**jnnO~_瑰g\ 2+Ut%:>4SLV֋mz{O':;;;C=0899!5)ddbbVR6;v\:Bt"!XTT0&& `@HիV=zzΜD'<<Bܦ>IwDN,,SRZZ}`:￟c_? [b+j+>>QuuD' <Z%ml&;AP6Ʈme {)<r˃xԩcdaƍ--D'<<rLL4 #"҈СC#1pO#:|D /i+*ꕔ…'fM̷aͪUdכ . p޾}~`dtW)6': d^\TbOt~~ @ARU'SӝaaNN&Dg#==} !D" '(Z]}l&:[n]xxx?v aIAArѢǎut4 A`0S4roPprydg&: )DG.\}cs`0AttD=(`~㲲Z"`6ԩt"`P}756ACC+YCy0HD#Ν;I$޽{GbccIټys~xss3J4iݻ}apQSS!^xǜ}wMLL4""d ƪűUTTTTTdee!*e˖N[ZZnڴ/1sssCCCbbbΝd2;UQQQ^^`hhX__ߝQ( {>>ӣ2FO޺ukܹ%%%:::!aaaaaaPSSBHQQ}D9{!88XNN.55B ttt͛u>̙3gΜy;v|uYY>$ .ce5ĉ4$66vƌsLtԩqݻٳ ~NR T*N#"'**JRSSS322&H~~~III]u<** ϹxbI[[4CL&3,,LGGG\\b:xό^!:E[WWWC<.oٻwo@@׋vKKK>|zΝJ~ ={>pӧ'Oq1cƼ|ݱN^xf)""2o޼No -))ٺuƍWc0gNO?E ox߿W[[aX^^Bi?\9"1 koozM0 խONII100Cp-++w^TT-77WJJ ݱs͢999t\GG'**=ӧuttttt9=qc-**JQ| IDATX!++>nB\qeeeJJJ췒RRRs짠p4MKK;m.""bgg0~GuռsqDbu[KJK9EtLf\\\xxx0 q):|!ww`λkCCCmll𷜕"' Î=`/tisWWׄk׮3VO<_AAa>x̒u]]% {D<5>>3RShUD <5s-Nt^C"2..,"A<ٌr<1N Pts3G3~6Gm7yyMwfѢE|#70ȲOޤ*=oބ? `8155uqq!:ennؿ}0gZğ!: 0]'"A <||f==A<f3F)`<H$״ rkk$PHd"**Mt :F aa7)QQt:,u ?k0DQQrǏ0oVqqyN+y0Lfdq :Fů_ :``A#%`dxy0WJt:Fe1 0HBBĉ{L&,B0 PZZ3mڞ'': <7n`2(ÏF@#lj V K.988􆋋{Ԅo;==A`0B03899bk)GD&`Di/WW7mRcIIg3P& n~tf[,~ut>\Ot0ܹD"ݻ}$66ԙη555=ŋ$ׁ777SI&޽ K_1pPH ag7رL ðXuu8A;;,PſBYYY呑 =TJJjӦM8777444/// &&fܹ޵x @x"+%AR\\ӓ'OBG)**̚5ˣG>x`>`99T{{Ȏ':y?P@&>q" `1cƜ9stuu9D"%%%ot:JUPPRt:`yxxg$ԩSƍۻwٳg555%%%ׯOJjjzFFFOs6/^o&--б9 |AO=Tŋ*Wl_=bijj;v ð[q@ѸAh4#RRRP7on޼9,,LOOlÆ \"\]]"""BNNN ǎC644xyyGGG#B555\333lmmܹ 70իt:.]z}RRrwDz`1)Svnz ``uλ>_mm-ayyybzZVTTSRR Ǝ{%1 koozMڞ>}d2_󲳳eeeӊz9{fQQќ \\\jWs B^bZX͍m%$`0deeG{ F_)))$))6fqƍױqqq~k@IIOSSɓJII)**̙3xAAZWWw;m.""bgg0~Guռ}dĉ];>?ܦP(sj!00̸a=#ðG.XϢLuuuWVV.++ZPPң---NNNT*5??ȑ#Opww漻944.{殮 ׮]322bkhh[=yGG11A''S1,"WWW͍Fע}AMMMeewҖ,YRZZʾ5> EEE666^|֭[?~= . jli4˗TTTVZ]E bϏJ^z299900Ggz ~]ꟘX@t0Ps}5i&NcSSSswwm= +VYressskk %%%]]]g:}>j(55#GsjjjZ~ޮ]>1|Os6ۻ󸦮&4, ((ԩepN-SKGVǑ8u>3X)AD[NEY\ " $צ) I |s?=s###{i.cccuuu}}}}>+&Xp]]Vw!J$&&.[ :aaa~¼-ʻee=u\݅`!76_Qw!0Xy՚5{3)4yކoPw!0<5>'b\9+srd2EmmsUUcYYMyyDicYYMUUCUU#!E_h<sbk44TU52q5u E'!DK=aם 쌲~z]K̀=02[_1(u3Fɘ&40rLmi`vvFL{ gSSss!Ycv AEF͝{Jduע^4ZZFGä733ww;;#;;#SS X^ h޼!שּׂ?~.3QǏk;;im5$d:3Jgggq Ch|604EQ6l՜2337Rδ*cǵ]gZnjҙll&X<~ }f̘aoo߯&g UwC O"ivMtϰQut6L̙Q:SS[ ǫsuܸqK,Qc0`*/9pRB \1k$ CKgZ9i<|7߄߿,Y$**jϞ= 3f裏_rʭ[B֯_?u~Uڑ8;$+$;fXr/=21W9`Zn]rrrZZ!xΝ6mڵkW\\ܩSΝ;?#///tҘ'Ot,**J*Ο?_*_|E_:ѱSׯ?|@,wji cE3.NE=`8Q% ]ȐILL3ZZF}:5uӫ. `tx\55 3X\Oylwyי%y1E o#r\4 h7=q ECKmggo*KIɯndܜgiɷ`iɷ[Y1x\uA 9F:--vh茥Kݵ̃Ul6Ph ;o0e2EmmsUUcYYMUUcUUcyyO?=jxy`IGcnγ5233031&aey0:XT`k@ԋƦ޾]f'uZY*bxi(%A*>iss;s e2 9/F<M(yKOwoj~c&YXi<޺"42ᯬբ:!U F@#r>EL zZў=o,0>y<.ǝ<׻~s{> ]: ͱ)G'dak9sSS+S<ݝ}C.7TU50 W}MuSSrX, fax`< AQٳmlfQa[YY?Eq8㵴9ڜ9EQ]oWL,+)/} g4**J40n!6nXQQ*D[\'([7K]C,0(Y`{{LLL\l`bR"..N% #G~驗GԔ)SҐ,r;.m01^9F5k^4wno2Po;"/\ &S g^-z^&{>+TLKA,<&9qD?=kVUElm||솿4n_f|@rjǵKA+^y0X V+X,r1/3 |{ɓ'O?}^,OKSQQ\rX,a(!1cTJ,EQaa3lU(R_"WTԥ\?i%vQ@[sʏ?(J t-,ܱm[PNN…x_}iz|)fFK2+رݻw+$$$P=ShoojժY\\}Ov!J3v%˻_6"Rƫ/`t(j:ál!D.#"||iiSS7:t-[v(%%G`hNHH ʓbX,gddB?suu%ddd⊊#G466z{{CMMMӧOΎ͍:~x```H>e˖}aF[ ?c2RGII9/roMVW#^_@AA ׯ^zmmm]&4?`bbﷴv+@ dcǎEGG+C!DWWW ;v9==ڵkٽsGe\hƍnoo744dz\P:;;ϙ3ƍ9F{{kע>0ky|07#ckjƙ3'~egÿRRo`&m !K.@#899=|9^~}EEEVVֹsΟ?Kï:55̙3/^ܱcW+))IOOtRttt}}D"҉{{yy^d{l~IfX\.w=6߿={bbbn'(` hm[aa--7xzFoۖ|nR3&ׯs8gϞ4K),,T@$u"Tdgg|;::l۷Ɏ=(e'NTE,3iiiuuu.Bffq{)U+ːJYYY4M/_<**E͝=W||K|嶽_ӻ15iyyT'&f'&f>|eƌaa3&!!A.+B77~u"!UUU 9&8::vy/3G֜&9~UZZjaa|y^^^@z|||;9 NJJ:ujJJʭ[^ԼCuEe !2qɖ-ofgG,-۶%{zFO^tY B(5lƍB:N:pBB~ÇcfJն!W/>a蘁ׯB""">sյR4&&fG--{l?(SiVwy63054&&fVaҗy[fjUULNN!͛3=*,lmm]__|oϝ;ѣGunhhXx1Q V~v IDATDYYYNNN_UϚ5k4M744L<ܹsEEEɮsikkRgEveNNNӲݛ嗦OΝ4iK"4MWT8pw~~X]ݤ^u͛7OLggÖ-[gzyJ666IvʕFFF6lhmmizΝ|>Wy 6mjooWWcc5k "##R)syӦMnnn\.uΝ---(4Ks\訫 >a<_tv99%II9Olm7+V.X0MKƣMyX 9s̙vXr>o9$d̙] @? @GìϕHΜǎe:9aa3ml&@z[ޘ֮}#=]7&=;;ҡz'6;v,?>}fLmm[oyG}}˙3'Nd/^wKK~>kTKu <+VX{ޓ'ssat`/}uy[2r۶Oy4s^^ۙvuWcJ+W$%夦٬@א.#p>flT\\ )tt8 -))'Nd^}.\>v೰p8f029^ʺӧo~ݍG.noo@! 'Ní&wwKL@c! +3#ĉ,;&3@ GSSۏ?(#8ׁŢ]h<5Oy;w*xAAy{yR rHQ^^'f?2\`ZPLjZ r̙'sKK9;3#| F<Y{L^UU#BBf.FN:'$%%uuR oх =YRS [[evAA؄^9`aޢwlB|7tQwi0 b>}5ѸqZo_] hgϚSRRRK9sNyMW==]yNz3gE͚5)0u"occ=u 9@354\pŻ/36< ] < q(%%ܹf[07穻4xƊ6իE))y.nllc6^^g$urlrlwZM^7j50v)))̫\supX 9Bљ]rۥό]w{ gl7z!դIKYffΜafu rV~Ż.kmps nҠO% Eu.IM-|H/ `n.i: 9zo[\ޗl޸qtt&XWW+׽4ކ ↰CX,剉j,{4vUTT my+.a,:qĐg'4rfBLy 9bǎE޽[y&!!I^^^狋)dRT xxxϘ1c׮]= z_{{UVUWWsH@~i:!!V(*ObXAՕ!ѣGʏMMMӧOΎ͍:~x``Bޖ)ȑ#})߲eU;VXXx޽ .9;;BƏ?~xBHss3!\I3ogggMMnbbf !wss;rڵkU`eeo߾>7566VE0:7`W666޼ys[[!̙3^^^\.‚IZg&* رcLc cǎ1S鶶׮]r;{ウg2e2@ 0333552LѣGYEmܸinhhнBuvvן3g΍7 r3iNYtisT*mV)WTTdee;w111MMMK.D{쉊~:!D"B%gyzz޿9޻wo||Wz>|۷$'''==ҥK=6?y$s|{쉉)**ںu'|җh4M4^z9γgh%^ =(/`ٷof.NNNvttloow^ssB駟!"H纺:BHuuu233+ D"˲|>s"㴴4OOOʛJR]]ݬ,/_GU+>>?lhhhhhhIHH!B[D"yUUU XQQ]TT6778 T0...ԣcii+cs.4uԔ[nyGG@x0o P(Ba\\\6n( ̌f?zC++ְ0@p̓0""?W]]+Jcbb,X|!MӇZp!c'%%>>>NNN/jnooluΝ~ C9իO>o-ܧֲe>Ò۷oo۶-""C[[u턐&zf=/!$::ӧsMMMDN5k.~ZxqIIrQŒ%K ,XW_ym߾d@ %Ijj60zu͛7OLggÖ-[gz|>q].]rņ Z[[i0aMMMe2k줹yӦMnnn\.uΝ---kP ?666UUUo׬Ychhhdd)JUw*22ROOr<66QWWח }Q FY@$&&.[ @-!C'm4rfBLy 9@3!h&<̈́00>1͜9sb >> ̈́<̈́4rf6q1IENDB`XQilla-2.3.4/docs/simple-api/classAutoRelease.html0000644001725400016040000003014013273140074016753 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoRelease< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     AutoRelease (TYPE *p)
     
     ~AutoRelease ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoRelease< TYPE >::AutoRelease ( TYPE *  p)
    inline
    template<class TYPE>
    AutoRelease< TYPE >::~AutoRelease ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoRelease< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoRelease< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoRelease< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoRelease< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::swap ( TYPE *  p)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classContentSequenceFilter-members.html0000644001725400016040000001761313273140074022455 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContentSequenceFilter Member List

    This is the complete list of members for ContentSequenceFilter, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)ContentSequenceFiltervirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)ContentSequenceFiltervirtual
    commentEvent(const XMLCh *value)ContentSequenceFiltervirtual
    ContentSequenceFilter(EventHandler *next)ContentSequenceFilter
    endDocumentEvent()ContentSequenceFiltervirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    endEvent()ContentSequenceFiltervirtual
    EventFilter(EventHandler *next)EventFilterinline
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)ContentSequenceFiltervirtual
    next_EventFilterprotected
    piEvent(const XMLCh *target, const XMLCh *value)ContentSequenceFiltervirtual
    setLocationInfo(const LocationInfo *location)EventFilterinlinevirtual
    setNextEventHandler(EventHandler *next)EventFilterinline
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)ContentSequenceFiltervirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)ContentSequenceFiltervirtual
    textEvent(const XMLCh *value)ContentSequenceFiltervirtual
    textEvent(const XMLCh *chars, unsigned int length)ContentSequenceFiltervirtual
    ~EventHandler()EventHandlerinlinevirtual
    XQilla-2.3.4/docs/simple-api/ExternalFunction_8hpp.html0000644001725400016040000000650613273140077017757 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunction.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XMLUniDefs.hpp>
    Include dependency graph for ExternalFunction.hpp:

    Go to the source code of this file.

    Classes

    class  ExternalFunction
     
    class  ExternalFunction::Arguments
     
    XQilla-2.3.4/docs/simple-api/simple-basic_8cpp-example.html0000644001725400016040000000747213273140073020462 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    simple-basic.cpp

    This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

    #include <iostream>
    int main(int argc, char *argv[]) {
    // Initialise Xerces-C and XQilla by creating the factory object
    XQilla xqilla;
    // Parse an XQuery expression
    // (AutoDelete deletes the object at the end of the scope)
    AutoDelete<XQQuery> query(xqilla.parse(X("1 to 100")));
    // Create a context object
    AutoDelete<DynamicContext> context(query->createDynamicContext());
    // Execute the query, using the context
    Result result = query->execute(context);
    // Iterate over the results, printing them
    Item::Ptr item;
    while(item = result->next(context)) {
    std::cout << UTF8(item->asString(context)) << std::endl;
    }
    return 0;
    }
    XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp__incl.map0000644001725400016040000000240713273140075020365 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_40.png0000644001725400016040000000222113273140077016464 00000000000000PNG  IHDR]%br8bKGDFIDAThMH2]ǯJ RFe_($Z("*hIi IU-E A. ÍI 13"Ư2j!)γA<[ss# EQ@ßT'K!|C%2p\P(U٤P( 0^NOOWVVR999Y__T(֒oB8/p_I'J i4ZIIm6D)Lfkk/&issfaaAՎ͎]bry ;^%I$' 2xy<8 w?.RI^ ܜk@UU ''WGGG<oqqghJKK322 F}}d2  lvnnT*ź*&NIq>MKKkllq\vҢf3:::j5j.x|>`6____^^l6[{{{ee%X,nhhE (J%_P FqjjJ dFb|( 8 J*dՊP1|`0pXPp\/@ ֗+Avvv/8n%==*&u(}~~$ kXTjOԡxxyyud2p`nrP1m_tzooH$u8A*vuu |>߷6d^W)ʯ:TH$q:VubbB,CZ| JFr?>>jjjt: މBL&Yfee}G(>< XQilla Simple API Documentation SourceForge.net Logo
    ATStringOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATSTRINGORDERIVED_HPP
    21 #define _ATSTRINGORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 #include <xqilla/items/Numeric.hpp>
    27 
    28 class Collation;
    29 class Result;
    30 class DynamicContext;
    31 
    32 class XQILLA_API ATStringOrDerived : public AnyAtomicType
    33 {
    34 public:
    36 
    37  /* Get the name of the primitive type (basic type) of this type
    38  * (ie "decimal" for xs:decimal) */
    39  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    40 
    41  /* Get the namespace URI for this type */
    42  virtual const XMLCh* getTypeURI() const = 0;
    43 
    44  /* Get the name of this type (ie "integer" for xs:integer) */
    45  virtual const XMLCh* getTypeName() const = 0;
    46 
    47  /* returns the XMLCh* (canonical) representation of this type */
    48  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    49 
    50  /* returns this string as a set of codepoints */
    51  virtual Result asCodepoints(const DynamicContext* context) const = 0;
    52 
    53  /* returns the length of this string */
    54  virtual unsigned int getLength() const = 0;
    55 
    56  /* returns the substring starting at startingLoc of given length */
    57  virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const = 0;
    58 
    59  /* returns the substring that occurs after the first occurence of pattern */
    60  virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0;
    61 
    62  /* returns the substring that occurs before the first occurence of pattern */
    63  virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0;
    64 
    65  /* returns true if the two objects' URI are equal (string comparison)
    66  * false otherwise */
    67  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    68 
    70 };
    71 
    72 #endif // _ATSTRINGORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: ATStringOrDerived.hpp:32
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: Collation.hpp:29
    virtual const XMLCh * getTypeURI() const =0
    RefCountPointer< const ATStringOrDerived > Ptr
    Definition: ATStringOrDerived.hpp:35
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/DateOrTimeType_8hpp_source.html0000644001725400016040000002474613273140073020710 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DateOrTimeType.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _DATEORTIMETYPE_HPP
    21 #define _DATEORTIMETYPE_HPP
    22 
    23 #include <xercesc/util/XMLString.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 class ATDecimalOrDerived;
    30 
    31 class XQILLA_API DateOrTimeType : public AnyAtomicType
    32 {
    33 public:
    35 
    36  /* is this type date or time based? Return true by default */
    37  virtual bool isDateOrTimeTypeValue() const;
    38 
    42  virtual bool hasTimezone() const = 0;
    43 
    44 };
    45 
    46 #endif // _ATDATETIMEORDERIVED_HPP
    RefCountPointer< const DateOrTimeType > Ptr
    Definition: DateOrTimeType.hpp:34
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: AnyAtomicType.hpp:30
    virtual bool isDateOrTimeTypeValue() const
    Definition: DateOrTimeType.hpp:31
    Definition: ATDurationOrDerived.hpp:32
    Definition: ATDecimalOrDerived.hpp:29
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.map0000644001725400016040000000065713273140076025347 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMXPathNSResolver.html0000644001725400016040000003365013273140074022137 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMXPathNSResolver Class Referenceabstract

    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

    #include <DOMXPathNSResolver.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMXPathNSResolver ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given namespace prefix. More...
     
    Non-standard extension
    virtual const XMLCh * lookupPrefix (const XMLCh *URI) const =0
     Non-standard extension. More...
     
    virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
     Non-standard extension. More...
     
    virtual void release ()=0
     Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathNSResolver ()
     

    Detailed Description

    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings.

    DOMXPathEvaluator can construct an implementation of DOMXPathNSResolver from a node, or the interface may be implemented by any application.

    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMXPathNSResolver::DOMXPathNSResolver ( )
    inlineprotected
    virtual xercesc::DOMXPathNSResolver::~DOMXPathNSResolver ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMXPathNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    pure virtual

    Non-standard extension.

    Associate the given namespace prefix to the namespace URI.

    Parameters
    prefixof type XMLCh - The namespace prefix to bind. An empty or null string denotes the default namespace.
    uriof type XMLCh - The associated namespace URI. If this argument is null or an empty string then the existing binding for this prefix is removed.
    virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const
    pure virtual

    Look up the namespace URI associated to the given namespace prefix.

    Parameters
    prefixof type XMLCh - The prefix to look for. An empty or null string denotes the default namespace.
    Returns
    the associated namespace URI or null if none is found.
    virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupPrefix ( const XMLCh *  URI) const
    pure virtual

    Non-standard extension.

    XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI

    Parameters
    URIof type XMLCh - The namespace to look for.
    Returns
    the associated prefix which can be an empty string if this is a default namespace or null if none is found.
    virtual void xercesc::DOMXPathNSResolver::release ( )
    pure virtual

    Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/LocalFileFormatTarget_8hpp.html0000644001725400016040000000762513273140077020644 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocalFileFormatTarget.hpp File Reference
    Include dependency graph for LocalFileFormatTarget.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::LocalFileFormatTarget
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classNumeric__inherit__graph.map0000644001725400016040000000141613273140076021164 00000000000000 XQilla-2.3.4/docs/simple-api/EventGenerator_8hpp_source.html0000644001725400016040000004326413273140073020775 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventGenerator.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _EVENTGENERATOR_HPP
    21 #define _EVENTGENERATOR_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 class EventHandler;
    29 class ASTNode;
    30 class QueryPathNode;
    31 
    32 class XQILLA_API EventGenerator : public ReferenceCounted
    33 {
    34 public:
    36 
    37  virtual ~EventGenerator() {}
    38 
    41  virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context) = 0;
    42 
    43  static void generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events,
    44  DynamicContext *context)
    45  {
    46  EventGenerator::Ptr gen = generator;
    47  while(gen.notNull()) {
    48  gen = gen->generateEvents(events, context);
    49  }
    50  }
    51 
    52  static Result createResult(const ASTNode *ast, const QueryPathNode *projection,
    53  DynamicContext *context);
    54 };
    55 
    56 class XQILLA_API ASTNodeEventGenerator : public EventGenerator
    57 {
    58 public:
    59  ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType);
    60 
    62 
    63 protected:
    64  const ASTNode *ast_;
    65  bool preserveNS_, preserveType_;
    66 };
    67 
    68 #endif
    static void generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)
    Definition: EventGenerator.hpp:43
    Definition: EventHandler.hpp:29
    Super class for reference counted classes.
    Definition: ReferenceCounted.hpp:30
    Definition: EventGenerator.hpp:56
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    RefCountPointer< EventGenerator > Ptr
    Definition: EventGenerator.hpp:35
    virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context)=0
    Returns the result of this expression via the EventHandler provided.
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    virtual ~EventGenerator()
    Definition: EventGenerator.hpp:37
    bool preserveType_
    Definition: EventGenerator.hpp:65
    Definition: EventGenerator.hpp:32
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    bool notNull() const
    Definition: ReferenceCounted.hpp:114
    const ASTNode * ast_
    Definition: EventGenerator.hpp:64
    XQilla-2.3.4/docs/simple-api/ATBase64BinaryOrDerived_8hpp.html0000644001725400016040000000733113273140077020706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATBase64BinaryOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for ATBase64BinaryOrDerived.hpp:

    Go to the source code of this file.

    Classes

    class  ATBase64BinaryOrDerived
     
    XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__dep__incl.map0000644001725400016040000000027313273140075021373 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.md50000644001725400016040000000004013273140074025530 0000000000000019fd31ceff5313098b03501eface849aXQilla-2.3.4/docs/simple-api/classATHexBinaryOrDerived__inherit__graph.map0000644001725400016040000000065513273140076023510 00000000000000 XQilla-2.3.4/docs/simple-api/classATBooleanOrDerived.html0000644001725400016040000012025213273140077020161 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATBooleanOrDerived Class Referenceabstract

    #include <ATBooleanOrDerived.hpp>

    Inheritance diagram for ATBooleanOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATBooleanOrDerived
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual bool isTrue () const =0
     
    virtual bool isFalse () const =0
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATBooleanOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATBooleanOrDerived::compare ( const ATBooleanOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATBooleanOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATBooleanOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATBooleanOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATBooleanOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATBooleanOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATBooleanOrDerived::isFalse ( ) const
    pure virtual
    virtual bool ATBooleanOrDerived::isTrue ( ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_47.md50000644001725400016040000000004013273140074016366 00000000000000b4c7691b369d99caa86f797d41714b0aXQilla-2.3.4/docs/simple-api/dir_e4f670f0fab752107ff8f745d16ebbbc_dep.map0000644001725400016040000000141213273140076021620 00000000000000 XQilla-2.3.4/docs/simple-api/classATGYearMonthOrDerived-members.html0000644001725400016040000005051513273140074022250 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearMonthOrDerived Member List

    This is the complete list of members for ATGYearMonthOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATGYearMonthOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const =0ATGYearMonthOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGYearMonthOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATGYearMonthOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATGYearMonthOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATGYearMonthOrDerivedpure virtual
    getTypeURI() const =0ATGYearMonthOrDerivedpure virtual
    gXQillaItemstatic
    hasTimezone() const =0ATGYearMonthOrDerivedpure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefATGYearMonthOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGYearMonthOrDerivedpure virtual
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/SequenceBuilder_8hpp__incl.map0000644001725400016040000000174213273140075020516 00000000000000 XQilla-2.3.4/docs/simple-api/classAnyAtomicType__inherit__graph.md50000644001725400016040000000004013273140074022206 00000000000000b143a9eee1cf00054448d31941ceb23fXQilla-2.3.4/docs/simple-api/DOMNode_8hpp__dep__incl.map0000644001725400016040000000024413273140075017647 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000015_000017.html0000644001725400016040000000376213273140074015720 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ast → framework Relation

    File in include/xqilla/astIncludes file in include/xqilla/framework
    StaticType.hppXPath2MemoryManager.hpp
    XQilla-2.3.4/docs/simple-api/ftv2mnode.png0000644001725400016040000000036613273140073015246 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__incl.map0000644001725400016040000000111613273140075017532 00000000000000 XQilla-2.3.4/docs/simple-api/ATBase64BinaryOrDerived_8hpp_source.html0000644001725400016040000003525713273140073022272 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATBase64BinaryOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATBASE64BINARYORDERIVED_HPP
    21 #define _ATBASE64BINARYORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 class DynamicContext;
    29 
    30 class XQILLA_API ATBase64BinaryOrDerived : public AnyAtomicType
    31 {
    32 public:
    33  /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* returns true if the two objects' base 64 binary representation
    46  * are equal (string comparison) false otherwise */
    47  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    48 
    51  virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    52 
    53 protected:
    55 };
    56 
    57 #endif // _ATBASE64BINARYORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    Definition: ATBase64BinaryOrDerived.hpp:30
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/StaticAnalysis_8hpp_source.html0000644001725400016040000006724513273140073021005 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticAnalysis.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _STATICANALYSIS_HPP
    21 #define _STATICANALYSIS_HPP
    22 
    23 #include <string>
    24 
    25 #include <xqilla/framework/XQillaExport.hpp>
    27 
    28 #include <vector>
    29 
    31 
    35 class XQILLA_API StaticAnalysis
    36 {
    37 public:
    38  static const int HASH_SIZE = 13;
    39 
    40  class XQILLA_API VarEntry
    41  {
    42  public:
    43  VarEntry() : uri(0), name(0), hash(0), prev(0) {}
    44  void set(const XMLCh *u, const XMLCh *n);
    45  void set(const XMLCh *u, const XMLCh *n, size_t h);
    46 
    47  const XMLCh *uri, *name;
    48  size_t hash;
    50  };
    51 
    54 
    55  void copy(const StaticAnalysis &o);
    56  void release();
    57 
    59  void clear();
    60  void clearExceptType();
    61 
    64  void forceNoFolding(bool value);
    65  bool isNoFoldingForced() const;
    66 
    67  void contextItemUsed(bool value);
    68  void contextPositionUsed(bool value);
    69  void contextSizeUsed(bool value);
    70  bool isContextItemUsed() const;
    71  bool isContextPositionUsed() const;
    72  bool isContextSizeUsed() const;
    74  bool areContextFlagsUsed() const;
    75 
    76  void currentTimeUsed(bool value);
    77  void implicitTimezoneUsed(bool value);
    78 
    79  void availableDocumentsUsed(bool value);
    80  void availableCollectionsUsed(bool value);
    81  bool areDocsOrCollectionsUsed() const;
    82 
    83  void variableUsed(const XMLCh *namespaceURI, const XMLCh *name);
    84  bool removeVariable(const XMLCh *namespaceURI, const XMLCh *name);
    85  bool isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const;
    86  bool isVariableUsed() const;
    87  VarEntry **variablesUsed() const;
    88 
    90  void add(const StaticAnalysis &o);
    91  void addExceptContextFlags(const StaticAnalysis &o);
    92  void addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o);
    93 
    95  bool isUsed() const;
    96  bool isUsedExceptContextFlags() const;
    97 
    98  void creative(bool value);
    99  bool isCreative() const;
    100 
    101  void updating(bool value);
    102  bool isUpdating() const;
    103  void possiblyUpdating(bool value);
    104  bool isPossiblyUpdating() const;
    105 
    110  enum Properties {
    111  DOCORDER = 0x001,
    112  PEER = 0x002,
    113  SUBTREE = 0x004,
    114  GROUPED = 0x008,
    115  SAMEDOC = 0x010,
    116  ONENODE = 0x020,
    117  SELF = 0x040,
    118  UNDEFINEDVAR = 0x080
    119  };
    120 
    121  unsigned int getProperties() const;
    122  void setProperties(unsigned int props);
    123 
    124  const StaticType &getStaticType() const;
    125  StaticType &getStaticType();
    126 
    127  std::string toString() const;
    128 
    129 private:
    130  StaticAnalysis(const StaticAnalysis &o);
    131  StaticAnalysis &operator=(const StaticAnalysis &o);
    132 
    133  bool _contextItem;
    134  bool _contextPosition;
    135  bool _contextSize;
    136  bool _currentTime;
    137  bool _implicitTimezone;
    138  bool _availableDocuments;
    139  bool _availableCollections;
    140  bool _forceNoFolding;
    141  bool _creative;
    142  bool _updating;
    143  bool _possiblyUpdating;
    144 
    145  unsigned int _properties;
    146  StaticType _staticType;
    147 
    148  VarEntry *_dynamicVariables[HASH_SIZE];
    149  VarEntry *_recycle;
    150  XPath2MemoryManager *_memMgr;
    151 };
    152 
    153 #endif
    Definition: XPath2MemoryManager.hpp:45
    VarEntry * prev
    Definition: StaticAnalysis.hpp:49
    VarEntry()
    Definition: StaticAnalysis.hpp:43
    const XMLCh * uri
    Definition: StaticAnalysis.hpp:47
    Records access to various parts of the context during static resolution.
    Definition: StaticAnalysis.hpp:35
    Definition: StaticAnalysis.hpp:40
    size_t hash
    Definition: StaticAnalysis.hpp:48
    Class that represents the static type of an expression.
    Definition: StaticType.hpp:33
    Properties
    Properties that allow optimisation regarding sorting or not.
    Definition: StaticAnalysis.hpp:110
    XQilla-2.3.4/docs/simple-api/DOMDocument_8hpp__incl.png0000644001725400016040000004441613273140075017571 00000000000000PNG  IHDRW/@bKGD IDATxw\S'=vTWE .Qjz^W{նj^[[uQ@q 8AP{H$q~6NpoyH>yy(`4L.S!qA Ŕyyyk׮L͚:uԩS!Ǐ>B@4BR@G@ 0jׯgO>a qA #@KFzxb{{{BDrRӧlz]OOCX,?裤Ç{zz>q7b0] R<ǎ; Eaaӧ,X~[[[BHCCŋ.\ᑛo߾;w|W&&&@qQZZhѢ v#9g}qP(B!U@{B 6`XǏOLL={6=C>}z\\)zaZٸH$ڼy NsΦ&\~iӦM8qӦM"R\\(֭[zp8iD&]|yҥs΍;y>裐6mutt4!䭷޲=z4!￿ .LJJך8qJyp&lxb//ݻ;a1 ڦÃbkk蘕տdee)>|-[ϟpj( 6!ӳE/U[]yښbjjvVVV6yd666 gggGɉ: j>>>t-F`,ڀs 4522TB$ɱc”KzАzz̤5;88w8;;;99KT儐?.{+W\r_~|#eZ\TTD(,,cRs HAFVUUU>]ZZow͙3fŊIIIEEE /vvv0aru[v]Z@5njj:bĈ;222::z޽۷o///'j6444wV{)//Ϟ=ƒb1}-cǎ'Oݻ7**Ry}}@ DDZW'ihhQ"7I$iCC}C,nbqSc§5zwV}(*22rʕdԨQ3gΤS["#GQ@ AC]]H$$"QH$KBD(D:IcL) KK3[[  ++3kk ;;KKK3kksVfU.kg͚uʕ.|O>姟~jtT.Bqmmo9GyA(6bM,mm-\k[[ [[K[[ 77%keccAkkkXr8VtiK EC;>e}6ϯ7jjz>ZT]]OFյl.׊˵p\k.ך˵R[nggiggiff ˰y[EUU*QuϯE55 tkIXܤ|K]\+NJA0ۯX5 AHA`D$iy\  aYBXRR+ʕ0<6 ފ˵8<qvc1"A $++?uUU2__Q!S6͍l;`qruu常9;:8ؘ1G@46raAAuYP9SXW(rܸgooE?NNv]2mNooGՕӦ& E|~}y).)/֖ 1nn\OOݹ<appx{;o*.3Mӑ `@@WWTWTDNfaauu帹qCBB__'Ak//>>ۤ(J,&שKTTT|4AUݾSPP-H !\'__'__'88b@ A( Յ~a!N;&&,WWqn͍ဩ:NBBȑ#e2-^}1,eB!:^-U((JX즦O|[>aj鈾Q\\#)F:q8<R'LQXX]YXv^I<OOss Kʋ/^LOL̖}DFգgONc]sƏUCQTJJ͛Yىuu''x=R9/*/\AhUMG(+/ӲrcVFF}pk'*+v \{7/..=!!#%|ȐQQ!QQ!<t$YYɹ ׮e NN1RV9H+Q.U' qUdUeǦO˞<)BMtqv?-wddhբ7bc __ȐALW)H\HK+NJMNνzP(vvۗDNGtzQygӑ )劂ꬬʜr!!̌w9>-x1-66<33vXDDЫ tegx R5 8`_XHUST5R" >B "4G=}ZRVDpS[XtFf\\ŋeeaÂBF讳n(z6= %..v`"RHj8W ǏK<){j!Ů{wݻus=0gmmt2办=zDEgqUzTщ(!!#))l}ID#e:R8ɐ _y %(#Ӳ \afs v r ƁmFK&Sܻ(3:<<(<<(:~]R*Lg"su80 <>N&Vz )HI$Ҵ4:ffd *4;$fiit>N>>9 `FOR|FVRRΝ;yNN 0pH|:KKOM-RNu0vl=1)$iJJarrko45!kS:RDbph PiYBB7of7zz: 7p׮<|-mHHHHȈ}TQQlaatuLB j)5H5: ?|x7//3Ir>_:[}F.WB,,L"i 0Ty**nNHȸ|qIIE߾AALWNm~|CB za-$#,D*T T/yTXW((L:ŅñdvcԱrEZZ1Kaa~aaFuDvBjqq͐!]##{jONJtRPKJIJE"z1t_]^.P")kqx =lX_TQQ=^yV)ݩ&lTD_hȐyhj TfЗ<*(Kr8t:w5zioť1rdw\KmWDEϚԡ՞튽e#A$t%8NtcNRR - sԨCY[3]躚3#4+B 67ǰa u$(++SOGAtlu]yVVxxiٯ>{99G>O]vZƭ[YE0A@ b=xPÃ0tHt(/R(PKG!vNfV;ӧZ??qBǍݻ7>s(:Z''ۿ-02ǫ„Q)qk&!C::0]ʄWV5||<=!*-{O}7߷{ww]WPP}ZF\\ڵkOe $"ݡlyP9S!5B؎6<W-yy9HG`C$j<wnp^o ÅMrݼ􄄌Bkk!Cט8HA:K2=*R((e":3騠Z9]Q_g:wu] RP22u&ajh_Ff\\ZllP(VNu0|x7336> 5޿DTӑr)3\,n"f*ӑ#Ʒ@ khhwЭ ~{)pL 66<V߾!=v1]qA ;j C=tDjDJ177uw@"8 AHA/#n>,ƍ } tQ&zK:;ލߙאf:*(..D#)YHArVΝ/]zܥYM ÙU~~uBBF\\իOe2yϞ^AQQ= bC 2|~ݻyIIt"bXt"^J|\jr!T팣.y'3u R(KҿݻyNر84?Aa:HAZt^>RSLLT*/)-/]tԥ3ct`P4I$cwZTT3fLEFtQ[E7ofť> %N!!`݄d4QH~aa~ÆS^QAAuY@G|"p<<\p5x1FRI[׏gٲ@W:Ձ;,?""h^OtRQݿDddD*(`K*]mm-t :ͿM [r4gZCC=u\\zynذਨ#}T *ѭ[YIIɹ Z:R"f( IA ~zqz];Kg+):PP!!QQ=BzT)!uj(<<(,o$"(++{&)G(_q|}yVSPvv~=32ǚ5cw`"`Lw//..=6Qff5=ottOWW;jD4hP&7*ZQ^^P(H>>VVHGɐSP]//8{f"`LUʕ/?T_Cw889ͽ;wÆ :섄܌2SS$"  eeB*B t`jekO544XܹC1R(G2bcɳ00/**d̘^LW`Ӧ|s<=urIKDAYZ1] 0lyPG99"Q##}g)zco̚5x͚q⸱Q \0|x#XqɨQ[ef^4rժѝ\raRRNG33 UKG^^6@Z :u?yq8ΨW'11SM99ZS&jDoaat騠Zy]VVyCC!̌a| \e:v41;3 'I>3wg'q:1hl%%\qBjvvС]##{DGFbC&-vr#FJP^./FtZFA tD*,Ϥ.yE:4n^Lؾ}FDD0@dd;ʺ'/_X$j r <8d?S?fj^f%# ;tTPP]\\#)!\ܸ>>N>>8B :| ٲe @__?)+Ҋ ):;6þ 4fW +cXvd*0TDtBY^^aaA6l|~׺wwЂA)"1]8$+6o.Xr%N3ׯg.Y@ (wG}X6>q @۷چ 1rb/0[e"RTTcee޳g+_}E6|yҥZ |lu􍢢_)=X6m]~^~׮p`>a:ouu=%Y,_5y+LWEff͛Yne߸)JRlzA|2{NTEʌjccAPEOޠ,zARP(4:}=LG[:(YX>y s7o G>okK]0fև ԄnؙU |B~Q_(BX,+ԔUY)jjRSSSS6,}JAR|ƌ]U>&G2bmbY, f]0|xN ˯>\kٽ{ӵ[[ڰa R=EG&feF}w=}Ob>,}p/{~粲"AAD*!2B&S|~}{KT R,,,DoRйss^`T&OSL hJ$FG!˚bL"Q44H%ySB*75) p/֭[۶m{v) y\t ƫillp8ކX,Ŗ8:Z;;:9lګӽ;WMMff&2EQyhG߾v 1 L h~Ŧ)nsm>\eԩZqqqiBEEE{5eaaa؝h̘&&fgg[gg;77-u3Xkl 6"D.&nӯ!wgZ?G Zg[[u x) tZD8п_?>}|{e@/nz^s훋3Dt +0m/=HA76pѽ._h(N})3~i1Ӆs1wڽСALұ Ν0++bK,]t={vee#W^ݻwo;;?QN5bvvV٘1cX,VVVS>M-B;}ujVVVC yAgnݡuǏ~Usqt'OTcnn].k液x{Ҧ_6)Q)oeJ8{ĉ;ٛ7o8p@(ׯW^INN/޽v#GDEEryyy>T6[SSs5 :uĉ^?t}Zh\G8;;.k.--MIIڵip)NT;ф sMBH_po߾e%K֯_߫W/햔\zUP̚5j5\R(uiV(vC/6E:ȸqfffQ6KT.W(֭]jUxx؟(D]tٳgѣ?c3fMB… KKK_?XYg˯\t&}Zh\Gj5B;D=zәЉ:_\=\.:Υlvƞ={.XE߿~vն6yWe_:=t޽]\ڽsyzzB;T__OJWxWJPK|||ׯ_2{lkB~PKKKCBd2իlllr-[ rmߝVZ%H!,kݻwwqqټyC\of5>Zh_>n:6|ի>L:uԟ~SNM2E˗w֍j,eTi&@mLLLppe.lyLwkq⵾4,ȑ#ݻwwttK4h!Mkfffʫ}vww߼y6)ڵkW=8ȑ#Wlt"t"b|Hu]iĉ+V@?͖wׯk t:t:Ngnn~oڴ433ӛ4ڞւC ;vsi9ԺZm_:"oCygϞ=gΜ2wmz_|1y䂂~YNcƌ| BBBRRRRSSjժDv*--ݷoH$ڲe!nz̙{xxOd̙FNIIٳ ("̘1C(ݻo RUU,-['''SEST{}nܸu}~􆢣3227lؠua3o԰ᄃqk}TwW}ZXBȔ)SjjjCuuuuuuK,;w.}P(4777o^QQnZQQ={xzz^p2...00NcAD܉47[jvǏ( bbb<<}:hA);[HA:9ӵW(JPL0fϚ5Kw33aÆ){.Q84v?0]g)Νd25UK*\ׯO2&<<~knӷԺjQ}^fZ:V}ͽO>RJT}}ʕ+ 7&&fС})R>M6>|\Tu\'ЉF؉47Uy~֮[o}"FZm(m;[HA: t:Kv::r^jiiy]NsOkAݡ4[.LCgljpǎ+WT.tvvV.555rM ɓ|>:׺ FM/ҥ"iiifsrrٞ}vj(jΝƍ9s槟~ۄR___0tкׯ571Ɂnܸ{nz>MJttg ddd-}l\kͽ4߽X,~7W^}޽Njm*;!- 5O:o\W1cƩSΝ;׿]\)͝:ASQRRlٲ-[DDD_~…-]MSZkvlE?w͝ թĠ={"Դ{}\g|77s˗-[6ezÁ{vC ?ZbԩSwﶴZW5kVqq1]]]Ϟ=[ZZӛ~뭷FBRBZVCYzr &xyy aÆgΜ 2dD"Qm|ɒ%ݻw1bFɳ4ܹރ_5oijEٳGYӤ:#FLJJڵu.|}5ZZh\x}} I&Vumn/Ŧ4K~~>!D(RUSSb~?ŭf|󍗗QUUuҥ`\IӉ:s,;MX}D޵kWèZm ZW]s:]gӵWS(ڰar9EQMMM3f,LU 7~fwhy[SCvNѳ#ҠAD7ݛABܹs,XP__H$Vr3f̨kE`nnޭ[755;VYL&۲eK``T(oszzjԳz{{Ϝ9S_H$ZreϞ=CBB6nܨRx|| &&ZJҡCj6EQ\.p8[nuttf̘ꪵM\m۶.;z蘘֗z:Qg t"#DRLW(j'dhVtLAtB^Mt2t:0lZ&ݱ BȀ~II Ef >}z 8|%U%oo˗|;G󻺺W0lYKmΔMyp̘Wڕt-n߾k֝ݺuiaLtz,($2!!Btɓ֝]n<"st 255.Dǣ+Xppk:!'))\t!:E~5kʕ@?z 1o0].z`޼}cdžn8Z􆮧 Qz={BtNNN{ebb)2c" !%%Ӧuڿr`Cn2]Mñ<|x9=HAwkk.yuu^&S;˵f)hl6ĉ$ aD"3goEE\].@/G 1cЮ]2ka\x%G,qb})BFzvEQVrɡCÃrޤ WWYqI"2] >ܙ3w;`ӵ7IA ÷.}Յ{}ͬ#1] ӧjپ=N(3]K9x֭7O?ӵ}JA>fY[t!_ft-BRʕOxZ:ܵkO?ܹKd(FƎfoo}"k@wMsܸ t9CƂ!&&'$$d\t-Y}tD cAˏ?˵fvW5qAAn-0eCcAO>Dk_. O|D )ñӉG&&$d0]K 3g655Z0]a#h46vdi]511<=.`X}qݺ.eIw9SybD )v۶'N$;Z^\X;yG. te)2rd3}ɒZkyEYs*66ˋr ާ BȆ l>\`6_cǬA(B 6ߵkNrrW_t-moߵ;|崱cCXB "go|uˏNL^uM c#3e+||9?qVt-ŠRPCCӸq,-Μyʜruzo1c3ZG6wj-;Ph{`޼}cdžn8ZA B޽scc}k"'r=u21a1]12D8};}ӵdbªLm]evihaBLLX~;Ιac?pUqY儐~t鑺:ɜ9{+*_8 Ռdz{5680ԩ%ٳ?悃JKgμqV2ر ]pۓ'eʉr͛iiBˏDo.#ݾmb)i݉rBu){׮޽g^UL^kQh=="N(ϘGRB^6$9y}7*5鳮I.SSwwӧrhߍ@X÷!&&{F)Q.\QX?rVo`ǂRc_P(4ŃZ)-9ijʦ(jWeRt P(޽]WRT [ͮZuDSSB<?鉹t3)HPTWW3XM&>$ٽ{{LkBxȯe2]-^u>;;;KKTYY`5L(l|9/"eeǎ `^ WW=z0]@<***Ӈ\=Ot!m qA ESPAAܹs,zCu5M,kѢEϟo6ccc6mڤ|5bbb]]]-[بuakw =B(//r z\P(&Lfg͚|;QKAm^\!Erz[Suĉ@ !>z,Xxb¼_.\=zja2R\\ܚgzIIɲe˶l~ άqOM0v9nܸNkeDBBHFF[`Hڜ ży.]zر//7xcڵ)))GoUzP{ͭbO>- ̬3a{{{Bȏ?( kMD"ODuu.\:|Bʕ+y<ҥK;,+++..zIrssWXњ7޽{A?+++99?5kV  q9/oݻwSSEQ?;}jP(;wӂ UO_H$Vr3f̨kEQԉ'ͻuucǪqF{{`6RСCmmm)V?x𠅅ӧOKLLLN:OM=oo3g++iy-AҼMw^___ggKb [p^#)"==}ᝒ1YYY]v `Z,--t$j*@ #p,0<8"^} 0.HA`\ qA b "3S !WWWKhgfV( VzҒ*`p^ 0.HA`\'IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_44.md50000644001725400016040000000004013273140074016363 00000000000000d4c6ba9c20b2a3bee3f8e175d4788a9fXQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__dep__incl.png0000644001725400016040000105672613273140074021177 00000000000000PNG  IHDR0$'bKGD IDATxyx\e7̜3dkڤI-H)U @+H}D|@U^AD <*<"RP>,ТMEn4$M2sf99?0N6mrs=L'|0a&ة HL'HL'HL'TVXbŊ ~駟>{CbŊ~1Y0 `b_?{cz߰SNNNi㡇Zt#<2勔\tX\rh֯_?tI\vYHʕ+kjjVZ5tww|۳ox;{BcÚN`0L6mjkkꪫ֯_1A`웮_|XJTYYYYYL& !xߞ;=C~0 \8W\/]g >%~r 4N8aݺu,reB>wÓO>OǡSO]p˖-{Gy晳>3/~ BHggҥK !?gye˖/_9Q./~?Snvu !s=r)r=x7r_s=餓~_G{UX40Lnzኽ _xkp pʕG}4!dɒ%V*^;/䒟\#|}'3f{Y䮻"?{n^{7 7/{xK/WUi>}v[{{?0 Pa5*Hl ۶oz9Y mU,Aێ~A`9O,ײ !z^aaH0 ÐA!!!!LaH!aAHa& !N{4۬\D2fΝ[__jժ,.Y駟^dG.rEzO>I/˂ uQ{sϵ,eY'/1sWXuG袋dfɒ%t[ouѢE'˖u (gy/yPEwy>ۆ6Z-$۞8[mY^>oztc <Ϸmq<|?t]u} 0${^@_~}hÐa !aaH_evp!2 !a0 aY6,0 pDZ,p#I<2"ϲ DZ+HyVI!*VV!VUi,BRXuu~__t~6\&sOcq\{*;oժUۿKm7p,s~z͚5 CXѓgym] -JQж4zkFos9u=Br9X}/t|?,϶ ,u0 }z^$ hmT[K;M2% |$4c˲ ϳZeYA`yš|( <ϊ"' ,Ȳ"!ɤ"TYgF8]i7_JEEboh q3~?S]wݤ/>~fkּ4}e25 9b1)w إ!Pp\'8!qOӷ$5=/}?\ m 4hm~Hn@_£2m!Q-0X8c9іTUyVDBN8Ei6i7jM$dM !",j[~a~[ggi\T'?N7Zm==M2yp :P .MnGhya\ 0 BCpRBpʗ 3 d0,!8X!<<˲(< J Lkn"ۡAE*I!$R%I`2Noe^Y[ B>owwgz{s==l:moOO6E^x=s~+Gnb#&>-w{ye}S&B(o?ח+6YX0}G:'ov>o[t&1 :{zi0 ;F~86u]Ťx\J$x\4YUzD"Dh˂m Ei-˵,R,:46W(8Br9ƭrn6[$a h0rs+0뻄tlg4,˲&ni7B!Qv; e=<1 #Ib! p4qri2Yb1L*"20L,&o9 d9%öLN7F:mY:ғ!3Vͫ=∹tLߪ#\aC_nXyyudlŊIφ4=Ǒ6n/W8>20c_y ˖}sҧP4ظ/53Eyi55Z2U*yhoUU|BF\B6 0L|޼0: â3#sò,(p"!kxh2I5'2sv'$]vF!Z:ۇaX(X[² ð C4t;-nKB,BXp0 sDz,ecE8VQچ+"ϳ2󬮫< 4h+˂$ *$ ɤ,pK۳0QƷ,-u]BZ}֬ cǹN륗E yQG{|뿡|3j, ;𿅮-aLd'E_rXp&SfM<yrX:4몮+ÓJMF!Ls6k٬Y:wlX!$*m`qdRɤ*˂$t2a(0슢l.g~< . 0[2aH+*yF>=/ÀΏ.!D9ZS˲ !Ka}!Fr }7q"8%8ڌ˲(r,ˊ"'<ϳ",rb"s""( tI,b, i 04KQU y#i-)d;:lwws'ݝD_8J% PΘWW'fHhUUoy׃ 8N;?=kVaX:dY3 J.dI_l;dY":v yaGN 1Qe 1V>H-al`YC#,K)=;%xeOo_aYuqV>㌃έmlL56++*b[{#Y[ .!D ,\+9|Fʿ}+;S% u^gя׎O߽:Va^ZݝirCCjTcc X)[Xea٩qf==Fi,81{{lҳ7jh+z}}rNeAZ}]OW85&7o&K3#3Ӹpip OTpkp$ !$|?t]Xt!٬dn``P~$ !DQ0e6"OK! ÐaXu]s='x^1- FfY 24q <+<2), HȢȩ(MÈ"ir<.ɲ$t^Yi8P##hcoys:M_ !鍍ZV=VD'ѦM}WoZ#H_<̻|8_.? Z[[kt~@1aH(O<޻f^x 7M>l'Jojo8Ieq)¹s,+׏cm>p?߸o"oSO]<֭==?=?9~_,ikϞ^eYu9B\ʴ>ihPAUmlLEY*v\55zz>^+SkS`" WWk|e 590PuS6L*q\.`  0i6Jߥݷ4oQX͆'%n\,_z$$2/|h9 8!aei<7ByQcnyA@o m64q ϳ, Os !Ȳ(*<KӺT*&|*R&!$y v0dE륩(1@ c|5MtX^qѶbX46~S.g'[GlB88v0 #c}_|k_ua>̕ ,җ~q7_1O7̲g?ﳷT`_r/C*΍"/o}AX!`A>W]ϟQuo}>`{ƹGzz4L37o[(듥ٳSMMU ŲܲXpY-NJƂK{IedV>orV.grv.gfa٬Y٬˙aпT,&%+i 늦Eor~s& `؝y^P(XL$Í:8^A}}~D[:gCua0nIc~tNU%B,ˈP07 9y.EmyuinmwMODjouC6wUa쥗u5_7~C{yI<%m<\(-!yo~#?7DZe\y0kKKm{ 6,\8k†0 㧟|e?S|Pe\ʔ)I74T,3;m{Lad,86hpWWGA-A29N),Jƈ{{seO(1Lp-#gM4H,˥/m,J?l +j:$,Bh2Tib4J$9A`8eX! C轄! в L}4] k۞mu;>m<Klex9Ai,)(|<."i(rdLʘ( Bh.I$deUUE>ۼK0lTb:MRA55Z]%kjJUIgwC;6l ̩y߅ gQZð!,AO:'b'bݺQG|sgY+N׏}?}W9∹e[.Xp@E{G}Ks{>c|8ڋ.m_if**B9:#?6_\տ߼? +nͥZ 6lmiiMWoZ>ampaCSS'?!qnLm ^.m!D3L٩jzE]a}}|/eKn`eK(iql*K55ZUU"EDuu*;Z3wᅇo]s9lْB~[il|_xa]Mvi=MMUYu^<?}m {͚Yn]: |AcEw}A{/0x̊]3A3蠧'ߟȧƖ-K^Z]OՉj-UU%jkՉXL١ Lð ~rwI35/M4M4YӔ79Pt]I$d:Otin)$vB't?jg+֣*FܱxxoC?,3K+LvY4]ð,)mZ[(؎ 㸞;NR q$qItiTWXLe1TU45t]aYZ,Rp0U\קN6 6&Jhuu65Ui2;qc_}睎LqYѼ4$ao~o/sΙyՍ7jy4#?qŢsy?8TϿ9?/8};e+3 %7pěz .ƚ9}ℐC>payz)Hs;yg\vQ^{w0̷n_zcKK[om޲%q^{g…-jE~ێt8ݝ-oܿiS_.g1S o9_,:eN6kM뛦8zB0$t,# p8ՍeQb1IXLV!TUǥDB.8M$douaXMCTW>owt tvf:::;;;3}}IP9sf}5b֬ʙ33f$wrwðqۇ6N_޹giO}f2ų{u#==tҙ;xG?ztc-x,&=+#aY $.'!c{Jo ׭X㏿-/8?|G_}Sssu*߶"^zl(ܾtPV5Fwv'FY7Wjҥ'6Tk .M wueJ4J]^S%JmNgjkkXO LqI ә BѧkN酘GUڤKF٤;mt]렲Ys#țS,:Cˀms׶=MXaYL}YEE^xI%4%EPUQUeG5]L&cS JՕ}t66 3JjzCCs(ښ^gݺtΛWK 6wm,uת{}+O8E|> <64x%8+s[ ^Y %ϓOS̲7qm=S6O1 `̧b[BH??3uԾncχzw;ګ欳>㌃y~~}/M۶H3>9dNccjXocY^`W(88aahîEXLeAxE$WQQĊ %E\]WG$&'ʞy݃ݙ5^ccecc!XP9kVN/oG󾭭=o@R[EyyfϞ0M?(Wهf4zo}kEuu⩧Q_gt8G=*׭[^6yA,ynW^0.x _^8UWWfá֮yWYS=wrhl|MWoZ>aS*+c;sa^OO4ys M>YV<{vj/6}}9ZNJҫQ>N+M WU%oZzx`q)O R ǃ@>ḏJsdfTRKWidʲG4ɘcGxB)|tԅm= v !88($|<.(i"* i2sLx\yVAz{s7oiovt tu *8lhHi<;>er9_jihmY \MC o4{: |≷o /<ˏ6~?:.l_Q:S(]3kǖL+W+t9}ɻA{uwl7tPR]lX A- M몪(\"!si pDC}xҢYzi DZ&3 mɛ(s]AuqYv9)Zgv&Sm4qr,˲,C!aAWg&p+˂"HH*jt^dI+% p~WWns^zBNTY[Qrt=X:-v[PӔhw}ߍvG 7=guȕWGMMbVv]߯v|BDZ.6|F]aEkA<+Eooov>? 6vN[L/1U |ի7t-[<ΙS%?ٻxԯ`7gEemZF`:(M wwgJ/"Ip8.Rݣ\yx@uҏqaz G& ! ÕeX8ꡉqBŢ]\]]WƪuundReAUyA}^LXzѭeH&S,P|̿ar+˲Q' !A]QDQe^XLea͡Ǥyj&`f߶lݝٳSgWѐqNnx^aCoKK{kk77ps*JΛW7{vjtgXs#pòIu]ɒ7jwz5|ˎ*qsòx<.ut .7>׿^+Y |M>=BFi=n4 S}?y)زdi m( 75U!-tH cD3l7E\/kQs0&F6͚4lf&cPPx|,hLRQJ#j2:6 `rluBB{si/M r&VQӨXI$Q͕$!8M&Ue YyEE$>9ux|t I9|ZۅmnhC,zh٬8^ aخa 1eI8yXBB!m7B=/p]BQIEQ|3Dqn!qYUқ.\ʔ\XK/^7N]Q:--ק 4y4;o^E^Pg՝wLW]x ~3ړI0G]fͪ8}3nhόnݸoh;\W:Hkkϊw ;li->Eڧ*}H_{mϑŋc&~/|gCIQ~˚K]]Qis0 :NA\2P0MG1nn6[w w]Wu]`]WIeLm>UG0%a.gTn>oٶW(ئ Ţ],:gEڰ[EQ=Xwl,&]MSDWU1D*&]t5M8VdAUUTQXL Kei:XײLHaРXtiۖ]A$WYcE#!p_ǣ\DXLuEU%UUUL&U:Gxmm6mڴ[:;ic*ojjnjnnnjlL55UUVN(Ny ==--g[__ͫ7n޼=9G߭'=/WSO.:,95|~NZC?>.lB[edap:mS,D19sjqFFp3boQEA<-m.+PO#u/Wvr<~V8Ji-[BŢٶ=@m/h8h4]m/-ڶgn`^L"! Hȴ7WdAqYUEAt]EfOi&\c1Ix#+|"WWFF%%ݲ+E.yFepa!{^yŢkUQ.}$UU4d,bCc]Wb1) @Y!%Mvt ~@FQΛW>&O^y{޵k{h`w;MyvΜ g͟_7o^݁6!6]]s<þvtUgC~+Go{8gy/co;vsK>#iS߼yu??9i|ss>|dp[[[Zoi:٬Imi:ۦN6kA>o""/$ ,P,K0xm۳m׶]ðM IhM 9蛦)^q)Pb1QUx\J$^).Lmm6nзqcߦM}|;K_^ӛhoSS*'(-FyߖA&>̠y߅ gp@#Fcy7^t|;'66v~;=;/mEc}Ͽo?/?oRխ_t]v⣎wZNgg՛xbQUqf4… YxL76!Ddi&VgVW6[,k.-ʔ&MJڨ9Tx 44.& Zӏm{Q2FiTZK_Ҡ]/KCN>oe IDAT𮢈ȏޕYIiT:$>U:yP ' ,ZT˙E-l,b)mðE۶ +"((˂$qq#Ţc6\VӔx\x\ŤdRUUKy:iJ"!10nػaCߦM}n1@Dګjߪ)<_kc}~7G.l7n޼/tlwO>ۇ6NY;~8b姝s'7m;찛|5Yoonɒ%W]ۺ;[.g/䐽jjS;ĨQ$uuzi2x{NxFHisp__ӓh T*J%jkxUUVWW'x*Ae omp;UŢc4kY;);T[,ڦv>oK3I4J37 Ð vb.l֌2nV(؆a\k˱Dõre 0~y~ C 4M׶z_F/(}>kw[w߾}޻ftl߮^b-l:>]Z~ڦի7F4O/nMn@wueJ3==^c~`:hhDDukYNt65 1{{l6kvu X- [ra3b6[d4"\dLfhN濝ɤZQA±dRI&U zS,T `~hg2C)|*ltiԲ\t"D)B,t4YEu]R*R"!YMSJ"]raV.g4a"ޡho6[1bl՛"M-kHHJ[r<2iN;("+,"Ȣ *z.KPmz+9ObZJ)m~5''93O"cB Ow=pۊxLfbQM+$S$6JSdRoD uu:C]PW7%&&del~v0'GԮ\UUZU*kk`HrL&FA(5nO_Jy)>8\wGNLֽ]o N]d&mL  ٴؾ}TE3g*)Ɏu^BiTZ D"VIIvqq֠zZ-2`ѡd2I*D X}2~^ȺGl6VGn[Zdr2Pj[W  ` ` ^h:?'l6xD׫\U% FE5_Bf DX:=x^Ghm=m[`F$$%%ÂNWD `PC`ׂkv!$0I ܥ0T+ͦ^&3 d08*IEД/4L$Q6K& %d}Ng "K& =b.^xarL ΙnwDryt:5,/o63fubjusxQ-g5:T6?_m07W(R2աs&s( FiTLA~XVkfjufbq{TT˥sdC' hx  ~,98^ˇJ:>tzl6˅hEmh>:.*E,'XTDf2)(,/%VFfg9$$*L#!rʤ$r0&.y6 VV E7NoDZXTbQ>ME)^:/Aa,g`@ CMMj]MF_S[,N tJN07W' :?XWg@?E%SSDwĈt(G^J;g 9ǎ[y=Zo߂lpa?\(T6mvjǎSNwҤ3GM?"(+?uMAi`"M& ~PF tɈnAT2-'sn$",PY hOu:juZ7vL0ZHM§@lyIIqapxl""U"-IR z=V[dQ߈*M=00A%7`P=(kPzDݑ\1 CR"d&XI FMe,o ƄCo"SL/.D 0ID2fBtk&6q5,fdMq g}N*UkfsaLϗ}<#֍PPm}U*-aHĊA̺o9}aŊ]'OO6|ɒi}~x%X駿x}x'O~7%>]|ߟ߾ԡCLfҴiCHcݮCkPr+I.dd; hj Z0L&Is)@sjtQ]K>#4$vgQ߈\3r;2 "$'ӓ|>#9~&g$r t $nY^e D=j$2%%)2C󙃳`\/ZZ]f'Wh/am&u%JB?h*V>q55}?XWg Rg6P߷힊 5Y+MJe IYYÆr8Xΰjշ{7.o{ Kul1cVΟ˂Sqᄏo~zutÌ_?Fvcc8ֶcǩM543G͜9jE uYY=Bp Y8 F 4Q0X(d, Qn85BI\0%|%.MHѶZ,.6Frb96K%&'y<w%"LDqt(' S  \֒ܨj,*Kq;*ЋX]dR JLc߁f~Z;Qv+r8dF7" Fjqn29u:0z=Fd2g L1BZ<^kA2)@  ueR)r@/%CHnٔfTbYlօa*QN.KbR33 u=#bݢ;v>vcǩ ֮ޜ+l۳O?2ʇBSo?s`0t睅s?>/.nF X,NխZM#Zǯ 3n01 ^聊( 1y`GUs ;G Y  `0=kĢz҈!)X,*奱IDŢr8T #}鍪`8FQ?^LfKriá%'Bۛ=T` vf4:F^n4Ӊ,%1D"b1ǣ L3&T_l6 -n/!!>%+TT7/Onjk*V*g4 Èʗd"_ݾO?=~T*套<>;Ise7-wg4}ڣGdfvgҤU&Cۤ=vٶɓR)n7洴X+Х<ӗfgBB|vEKJMh*2D2Zv0 KLLHؑ ^VLu7:zhKF1,L$L1E"Pb1gJ$l> xDiTGTM<\1[M0pDfIVXvYn}]Po\\T%ְTύf4]F{](d1oZr2ir4.^UFgqBKmFp-ryA*vO}VVj ;al6M&)irX&  {bJ*M5{<~2%@Q6\\XB}' {vŊ]fG'>>͋/#GuӦ?v[.Λ͛8Q޽_u[,-=a6;Ǎ˛9s= ՗աVtʐ!R<0\5ѽP2&3*nn/t : 僉qEl҅BP b@X$ږ0+#fx<:*ri<grd4t:b.b6&q2^&C%'&0~5NkNv9K#!ѮV[ ZmpƦZ-6LR)W$bl-$OQhpA}b˅ Z1Ir$?_\P ϗH`&وR\S ,V\.!ÇS(pfv׿Qs^pPȌuR3y~8wƌؿB?b;|ː?X}ShG̛70%CP%uT67A[R]R5bD@#/"3 z0L&It=yd28==X)* FMz\A%FHe6DǏPg7nybrD5";[drL[,.ITEV (PX6Y/6,5jua0 dr f0\.3ri:cZZ,ڪXz\t67p"LXR)G(dK$a_Pp`Ϸ/22)CH%0| C5[^ވJ,D,"M&BPr ҾƮ+&LXSy--/޻~ɛo}zĉo?W_OtO' 2x֬Q>8&9G겲z&\] ..΂+^zT[Z,>20ٿl.'+DvlN[Yeeu޻~&NC,XRZtiӱm=/*i۰NlڴW_L)9smHPS}vBT6_r߻vp8[fm9Sn~矫E";wlF/PԩK`CH+)*,L|aozZ-rLTWw8$U08#fEM GN4K,VQ %}vkN)vO%;n@_ `a.OǍF4Q{Ft:q.,/ψj e]z\vf0صZ*jz<~bc*2y< !K 㞆KfKsdniPLIᦦ&rSSBrj*?/У {B˅  *-,L2D:thHĊuKĘR٤D,J7/OA^m zϟG?cM7eܣ|rkjGuuo_x~m@R[߲l۶2qMf7h0TtzܹfOS i4LԿGMR ^^fTPhE<- ki ŢYL⬐@h:Tj"G Yɭ '#D":==/ La4AR-8n=3Q1Kd|i0#nN!Zl^K ` 3x<@h GgU=Q̆@F/;[`Pbp{~RCM+*4>_JM2D2dHJaaʐ!)x?XWg -.ŨrQQψuKA 8paٲ[Z,[% CwL&Gz*+5ݶE._Enl ٴؾ}TE3g*)Ɏu@ T[' E%%%%Ys~PF nh0lnBZZ2\3y6fkiǡQe>I"A`.h 5%l0fQ0 Fg1.Ak F~ ENAam.I*@inAa ^!WN$'&Պ`Ӵ|@MP]ѹ2gg BZZr?}D"Uf2kd\UUZom> 1l!JIIX +V:y~ڴKLKOźE]eˉŋ<8/Oԣrr^yӦ Nԩk8֭˳;jusxQ'=FCn \.GCu.D,C$ f#dT2Fr0 #IR)'`pfłaA!Lv4Rm45hlFC v7$I|>S,f̶%&DD\ʼn56+gFlZN $H@_vZ^opn29 ^LNn0؝N/1xF,C ` ̨ix<8m|Zmjm--4B]t @:NưЀnJ[]ݚ55P||\ZZrN07W)gfSR0xڊ2T6ysssߤوPJmh0a&dּB'@ V}gq.gذXo~{oꅇ=z};nd'O7̘5Ξ]]  ʦmNqN?s権S0Fe8T+'O֟8QI!P(ROPUD3t55CPjSt(:m05z>DBW2ojD%jkd!a  L K$h{WmX %rvj6bhjŢشZ^oGې$)p|T ge1JdJU*Jɤ,\.NOd"\+t& u/^T;^)>5K}O n)s,?yO~/\x=unG~~o >Xk>xY;N>X$bwK7MsPȜ9Fge bݮ~/JS.Y,N4RPdggzjkTK 8A NOO`c:>Ė}rЮ3+F~DP!abKbR `  GkCslE|yɤ2Ƒu:1 KLLHؑ ^v?A G\>470hL -8L&$d2c  Y<C,f btTEQbz,ˇ6C# [ `/ZFy_>{N(fFchl--ƪXF|VJ W*eK$D8zq"ml4a&p K"%2 g4;rtiÇ)iÆfe!Zw4LDrs zA(޻f磏Nx&{6nfj nl456Q݂$L&Fdr v7Z-n4M&G Z%11gl!0E" YS `Dl &DCCQ&ӥKFwu08cmA߆Sunbh\NO ÆSYYɓee( d :^آT6/얲s-'zY*9wUqssrs̚U2:|rΟo&[p \`6+bZH %á>fS#;MJ9LfRl $`0d0؛jMXPXj06JBJ W*HdT&V"᠙bA&3*5hjj2 Hx4]z:/==9= Y6) =tXMYYSfJM,*J/)ɾ " :3 F &3zt6Eu3TVQ޷JT6y2% օP ܈*o:xbߛ/u[ѣKȽ1cؽśnʸy)Sٛ7? 5kKUvS77ߜ;wػ׮j N$ĺ-lA; %e,+/0vDEl `pl6*l67oĂ^o'ML(dq84"L7@/0`BGbѤV[ &R,Q --9>Nv̡P;ˡL&9`?^{ :.0GH/)*.1"=1NklJesYY}YYݹsHQݾѣshbCr޷b"E( % pt ƺv͛O tcsbݢWWg4wߝ3{vqo>n(YzYqOtWce~SU0IӦ "u>yʼnҢSsY67[n 9.rRnJ 7%*pE"6}~\[5/]255]ehh 'ӓtJާ_m;C$19''Mʗűnvϯ6:u_/9ӈ8CHG1"(#'G'QYYҩT_m0EW0w6vNwÆ!xԙ3G ??:rz목SOXkӦc-NIv>AqjӦc &"mQ3gphn``*+C਋Ч! m $8F54P sS `F$\ꍟb|( j46X#m]r*"I|>S"a L#$Xb1Jl`pn29Z@i%$x >)|X  G h. `h|ф Rnz:/5MMJʅ21ᵵ:C]P[oj2HdfnZ/#3b$?^wVkOR8iR@p]ԩKO_:uJ 鼛n(*(*J/,LmwJ#Gvm@_655E=jJWUU*&7@T=D .6^m zϟ8g)/o?ɓ?d2iÆGk>_`ʔViS5}Қolq*J#.{Z)vm!>!K& dQbLB._7]zoSH$6NH`G,0,Ǐ8oA`W#z]vƪmTjDXR)W$b/I/˚5k6Kf29z\ VkOgi`n[ZN"!!СC&LXnB356-`#l3PXL FJ^*men`ɗS*22x2@d%]￰k.CJJc4Ч\ѤG֘L2TP 7.o;675%5M غuk/4?:vڵk˳Tڪ*R\S ,V\.Q(+%8 .,[uKe޼qbQcݢ{b0,;[㏕ݸĄޛ3cƺܹcqFss_ciBb 7Am Z,^dܸ@dP, ж\an-Nk46oiFcS:-) 3f̂ zᠿZfMeHl6ͦFc5Dj?{  fϞhVO BMM:Cdҷtz1 #I))܌ ^f&D9Jfdi/ 75U*mmN_Wg5t6 dRjjrn2f*D"v<x{v\.NO祧'C>fsxQm290 ci2hДI.H|F;(TUi)߾TCI&ϛw)>@@ T[?yD"U(d2`r}~zdݺh4ʕ?hiM}w̙rq !0Y,jmaxY0mŊ]'anڪu55ʾP(&O#⧥%L/\PWV++UUڪ*0ce2wD.:mǎӥeպL}4cFQlY>E=ۨT6՟^`Pbݨ޶qQƺp]n-7Ğ,^W_=Wz0v@ׅFӡC}tJ|+Mb1ljkW7ߜzk~f&1/]2{w{"?o;쫩_~w۶=sέض확+71cr k|'F-ÃѣK/ _A.)M~zg6bĈ?ا~{.+jլ_~[e[O]'k߸YfabMMMM%\ceGg8iRѣ.Y2mNx ))XHL&[Pyy… Tj^^޲e<Ϛ-[ĵ#lŊqqqo6G]: ~WoDc IDATrg6z}WkC} v:->|8,..~7@ ̜7o^΍7= ]wz]; :宷o. RA `@gKcJRi/N/al6M&Hg)yX&YҞ?b81 X E2X&Ì}AUvS[XY3gڴTjbbVTQ՟8QnRP >$$7Wm߾tΜ9p_飯ҾƮ+&L߿0?_̆ ^`ee vҥK8?HQÂJFy9sG؝х] B]oۼ]  `@ZmUZþ*Zv0 X2X.s\/n/*ΦR骪([[C %;[(&OPh++ ΝKK*+5§4s(v\([VVlLIdɴѣ{O>3<3i$7f]@X׮ݿyaRwxv؜X(L&'쳷sX0,'Gddrt[?p6ճ0W'}9r$a`ݺu֯_ L&Swܠ*JR1 s8_wܹO'ژhXJJʤI&Mv_߱; ݵ@߮y7~5K0 <s;w~뭽?o,;;px'NZ5k߾55Μyիg?-& ۧ[JK˖-z_n}bÆyG.zk߾=dCP*/ZR|͚ SJKWyv Bz +W5C#޻lf&o{ɿ_pL&_ OoLqqq~iAA@ x7nܘf.]6-DBpѢE~9U XlYzz@ 7ojmyroђoF. tz{o߸qo>\f͜{__ ֮O%>-nHlA jl(b~ص@۲eĉK\\߂dlcW Zrۙq5]H$P(Dm1 ۽{BHJJ޸q#Z^n_TTP(h_~3mZQF~9rd=yӦM#eEmڴ)?sTzꩽ{^Y{]`rhm yLd2Ǎwĉvπ w(m]RRR, a7odN .ׅvY?|>?55u…k_v}Vkݿs&N|;5uDbzKcƬ7_o{ֲg].o[ VVjn-{՝ӧ's>X7tlv|qVJ$/N֭en/֍1pqֲEJ'N|["y15uĉo/ZTku:x0 VTT*> B2a> 1 ={61aF1ZollT*#G|WݧNzСr4CU*Ν=z… m޴ip߱c?՝wީR?k[]6n<:lث^['4622nx4 nHٿ|>\XQG0 +--x>%%BL#% յ:j<[~۶0`:2H$;*J49y$A˝e˖tG7HRԤw_fP(ܹsZ޻wT*mg͚5k֬knv#ݕ>o޼GyDՊD'ND\ \'IgtL~~oU*Qgj@KhNS _|SB nyO|S^[n)6/P^޸qEJLy/=%ܗgXtέ[*+5Rg6.ZT8/EJϟou@ >ܦnzM"y1;{lX7++?ؙ}>_2U~~FA8p`ĈJ2rWr|Νh/Qp0Dz@~7_z՝6+C/Ǎ[bݐ1bGчCIx{3p8?|B7O"[QQp8O?6gMT&wo6Mۏvml}{=ytӧ1 ;w\mcLðÇ#<{kvtpњ^~=~~b/]f2Z,P(dۃ`#CϘ1[nxҥԋ/#vІQ;xAQjcǎ]'c;N:^VV̙׿jwd9X_|E>WÝNvxwEרݿtŒP("CBp~|>t|Ek;w8WvwnB_@} ݷ @ JeJSg6v lL&*.Κ;wL&*,LcXpm T6+MJe)CH|B+$cRY8޾ƍG E{H:v+*Gm6A)*x%%٣Gg'&7>Ν;x? 50L&G-#.]H$M6#wА m*Z󛛛;X @o:}aŊ]'OO6|˖ynQRQ36XSZZZXX廠#C|yhw3`Zuxx;:vȫt. êsss1 s\m5=|￿lٲ#G:u*rmذwr3fTŋNR(!Qw-Npbqyywyn)W;V999h߱i4ڌ3o>dȐݻw9sjw|#F (v00*v#}E8Ο_f`w7osN &777vQЗ B .޾'bҤUYYnu…\`O'˗WTWoܱ%%`Uv۶K~5c:[o]dIH[z/WU^Yr1:ҥ_ڊd2qi-x#duך/4e߾o>KwM l_ ?_~O>\0 kiiPA Tb?~HK.+WȳT0J]m%_LAbb¾} >Fy Ewz>uu~t}?\ӏկk~ KpD#@AQ.:ꨫ VZ8Rok[[XPDQKfPPH.? |$7^\>.ot4mҤI=ыgϞq9ϟ={EGGb^{t„B3g:T6l {޳TCtr0N6ۼ|x%%O?ÿf$CCCkjj,YUSSCt544ĭ+׮]". ޺uk'^zꥁ;ɼykqJ`fH$:v옧Ƿ<&bΜ9aaavvv^ --\ƐJtp}UHii?0qD{>o~6Ғ),,XPP0lذgyCNc 1@qCllΏ?X/7_89Z׈41?Y|ޗEEotȼU&kjP^K 32#M?l~_%tzAb(::ƍ@ϴ~Zf3ݥҥ[0af?T}}|ܯRRv¥K]L]8pHQWWwȑ_̙37o\\\<<<=d֭[322222V^ /ٳWnݺ-[̟?[MMݑ?x($dٳ+--u<[s~͛l4< 5 /jݺ=kR ,tRaaa\\\@@9sO n&//ܼ}v _k^f ?~Ww1rp͛Νڅ8^'-Z^u#=^hꊊ`]]] i4s䔔0F[lٲe2226n8w\@8Icw\䫯0aBTTT^^ rm۷oϘ1oذAWww۷/^ξbŊ7^x"**ꫯO)}cډW7)I/^fͩS]|b >5>|\NNwڵ|>?##/7ow=4dQXz7"l0?ݻ# J[smmlϛSPPxXXBFFY[IW?W?;CÍڟn/^\PPE$ 5ggg"ƨm?~Сut6xxܾ+ǏNCΜ96gxMG$$|]v 8ŋ|q_WWhѢA-[QPG< :ts̩}g_׬Y]}:@k:۹sCNѱWӇ]__zUuI& :!vd2 6m$~KooowqqQVVOvСs|q7k^==b EEźyuNS0Qf9˗/www$7md糼n+E /x_CJ!wK:d2߿/~տkqcccyyy33/p ^ZKKK[[m60֫ __"BII|׮]MMMnΛ7oy-l2ee円Nf711߿+~wUH4=\_#nʪM$?^[[F!'Cm[zL>|jjjׯonn~C%zԡ koVx<^WY&+K6l1a2uӷשkyaB姤?~ +K72,ZI>_>Oӧ.Y:|C@kjjKJ*r SSKۅjl6Co@%gJ|SSӗ~윴n$)t)-((q"un T\i˗A2#W?9stm{`uF9sfT֭[/ﱋyڅ]K[Kt'&C*F#YHX%B[9{/7{K]8Nz :]>̳gM99z_J($4 -//k&SRGQQnۅ\˫DZZLc J%Hr366@=0p,~TܖXr W.]b:hPprw[0wN($2}d&+K/, 1cs``az`ZZZ>|믿:u,}K"$P zDA0@OȂ܊ ,- qaUL]SS-uB2?y洴Ҷ6jõ̷njcLuL.‹SŅKǍ?d!%9BMggyF6SUU]|<rr*v ~=fDGiS8u*/:k .(5~~ӧW ?cƌ+W;].u:] 7/Qd*90(Ww%:t<^YzzYffrr2 sFfa1t>wgXqCrrQbbQrrqZZicc0=}kk=}}53Bkhh=}:>$fEų F~աkV~Z2\]mJu:I{7wɣGO>u*Rg۶N;;;[>/ϯ$IClƪUL]C Yz'߄~FFITY,#IL>8Y ￿vzӧb0^%%Obcs9[׷뫱ٌ5k&3\UUtdn~v=F&#C_l,AXuu[)F;thĉn=wȼ[/t9T=/˫DZZ J~sB'&6*)ɛsp0\j&jj=w2$[x荘L'L8Qk-x7NDu:裒SZ>BOODREų~^AU=YLs?>fY{rЅP бƴԒ2çA 6Rg4&SRWSS$oTT'$yy$)20P3pp043ƭ~ ]w1͜PΊp8N͛ j'o:H^gLӒַWF п "SUW/cmrͲm.VZZڅKPXX|9224*jՉz*;Q :PQQ2Ugd ;00F_\,>Fu7 i22"SVfϞ݅Kjal@oѵc޽{й{99u١io9%=,5+MM--)yB`++O>qԱ͛=) / OYkk˗Sz>D xR+MK+mk33fVg2uBuL%^%B--U( 2EkV]]?wʕuuS Jq񓘘̘ D"un'3%ʌ?x ddVV⮽ M_($ HH ׏_RRϥnnRD" azzYvßDʣF;8Ξ0`R" w i\nաArrqLLɓzw>FFљTPcǎi6 Sbs%t:=5eTI 劋pF/E -WIӌ5Y,CQQ o.p!il=ըo IIE11YWW tđ&Y:]5hܹյz8eʡvR|=KA$Np6[98;wnPjt:$E?Շp8;w^ͭs ٕ}Qj3g6Szٲ 耮$ԩ&'-,]8 MiiMJJqZZijjIzzYCC0++y󜬬tML4qSE!ii\na||ab"QIIFoT+C;;4сb/kzw@56޸}2캺ÇxxX҇$E4/>+#Cieuz.$E$A$INblƶmv EFaH]¯_fffT'*11qqLL4>|'M:g>_RH($33IK+quNu(h^5++KH߿_P]]/#C76d2u&Of2:VVz 8mm{/LL75+;8]`hi#+P л4FGg\#Fm8\Owo^rr )UUzӦ~'8PߗZ[uE"ڵUV։~qMM( MظcȐede=T4aa՘1TzZY~׎ \\L)LҗЅB6oP;0@¡zg<^WW9r%Q)lݤ59-rmmq_pp0>|#Iх DΛ7j͚LObb2#"Rsq1=pREрxKԄ!<=c^!+!Ih4ڒ%_~m{7+/!\._FN-mo۝ի'V K'NxAA$qb涿cc :xNqedhA||ƌ1۵+|5lؠX8j##ӜM6XZPO8zz{;gA4JKkZ[ ԟ۲e,!eDu>+{ zxVθqh @`Q01(98)1F31Ѵշ75`0IZ4޻W[IӘL''ѣMX,?y Nqgg@O;;<ΌHMH>>Φ$ IQb"?""…F;;//mՕ/S~\,''.xY:|J]]%)iw]x'\߼9ç׻X1_q55ǎ<~z@5Չ:g+W:z8q[61CB!,--4&&``\CBBnjK{Ccb: `v6UVV1b(eb{d)КRfdhf3\](QYYYmp瓘L-[<]\T' 'GFfg?vp0Dᯄɩd.)y` vח[=PZZ#//z_ccws}|-(4m/D\ewjkjdۅZL=?2t AKZX 0|~u``ݻysڶ#~ݴ" I.]J i\nnc}w.^T3_f$ vv;=zJFɒ$)x`堠3fR$*koA]]ˋ~  B_iԖT WՇ#nee+W1Tꚯ^͈Ly3[IIzܸh)**EFED&& wp0u/+ut :uj;wrG6<͛=xNJqE"QXX_ҷl*NΝss+&kjP/Z7ontutB=yop8aa02ҨkVUU:˿'w'oCuBUUQUU A@ҡ^&U |.嗔<iX;99ⳏs8׮eUT;xSgՉ'%;XXXmjl3luuS + M Og2ubʴi6wӌkײh4رfOfb_3^%''t-ag8kݎOUx3g]HI~:F^gW)&f>zTkQXXmmGu92oѢ_mm}}YT+Q 5%- ZTTY[سXF[qý{NnllnIEEy{{%KtA47+ȑk;wW0@qTCX,\%)rr*"#SϝK**z` Y`YR|njW3M8D3::g"_- sqٳeyF"[} 7nά}VxxjFFTbjrr2YLʕCGjiCu>AOO P w=r~^^%I5 ofoohbO}DCCk\\wNnNN G$EF4\9nժ >' d\\~hh¥K<$]], Q^^{Jٳ܌CN̜=AKo?غShH/pus3wt4޿a'}󍏩EIIAA SN^Fu"vapeoo{saTgbt==5> ygFFҥ]?pq{ N}Kq'-VV>r0Ɔ F6QSS: ,]f36l4fj?t ..ǎ <;wT@duueijgO4l9kݠAA.BC-w`G썍mllsw7#Fh +̴{ XTU͘=aӦЉ/[66 CAg(VXX|9224*j:'O+/]~AFAVЏ7i??o.Bjg$P$GrUw6`kbX,#[S*+bcs]pr>mP5xYnn#PJKk##Ə!T'+**&=PPPebdYvÆ :Aյ\vfĉ#OX2vY_k|j7N` QPMO/ `1KKu'NM IDATKi{z3P}TMMc7e`˚D𲦦ヒ^E__:2kItWMMz{=t調qZmmc}} 5k@ 55ed%$ccs--*z}6F 㚚ڒbcs9\TQQ`ժl6R:@57㍣GohknnonMq,UU3l~չ UzO($nj~𠟧<(@ŋ]fb99#xe>>җ.u sxyY= @uڦUƯY3CT%>_[lz萟u~rTB($/^Lill3ؼsLSJEUU&YLWڭޏր~Zmu9=t|ӽHRtRZPPxMMEuܔi[VMx##֪z--Utfe665ՒGWw0F+)y `Ξbϸ\>OH১D"}}561?prŅϞ5ij8:=mm'&gδ۶# HgϚ""3.=HO}}RBx)UU Ɛk'z{;Hx}X00P>|[Noi(oGDp8;w^ͭs od,y߽AՒ{O>ϕ+ tYMMDC0@/S\-LH斔<9pժl6c@%BOkjjKJ*pryREEy{{իdz KK~^С'0:/ӧ:4#Iݻy'OދJOn$/rq1G ISz\RQcc9P\ mLVPP`mpST2g,\84J99v_f3Pf-JKk#nݤYKkBaa1Y@NN槟zxZϿZ&TH=='T `I'Fw4*)ɛvue88f}xT{޿_ :l6c֩F8·^$E}׮p%%CQw}.^L>}[^^d=k [TJ^ KJNb%ꂂ|~33myy21bhx;.^k)ST==|8ԩxKKsVK~%wE[{ܹ 5Tx+*'N,6Hp-[RG:驕0t-=,! ZԔmmW`hc/''CuF@q'W\Y'KLo|.7bqֹ)*S@:׷DE%޹:ky ԩӧM11FUUm֭Sяs/ oggɘiΚemFq3l׮Kss3߻{ЁTBn=zCMM.ُΟO}Q##*S-KK}f[il#_̣:H4TH֔b. TY,,NKMű11JJvvWgL.ӧM^7ΨQ11ވ "IQb"?,,Bĉ%Ǐm)..u끌 ĉ%cǚBn.+n >"u9MM#G:]}Ŋq}'3g]HI~:wO]쉰:HO06֌H:;OK+]:rzzjOD"N -*+% 2985ՕFu@PHff{޿_@"sannAA3F2i`"(,,q΋rr2q:z?$8Pt],#|д҅ ]bJ?HVAttɓP3qȡT͘#"ΟOz 0s [Lqdwq(cqGvGnү̙va^^Ν;j۶IIIAA SN^+{ݻ#]] ##vaYY:Yޖ,=$dɇ/ԩh^Ѕo\%%5A0@OxW^^FoL;''c[[%%yeۅ\.7)*;;l4eᆆTuuG8qՀ#N Uxs[F6 YarT%%TV1C-r=;\؍,{)jݿ_л* 5N^11[LT^UXX|9224*jՉ=]TtzccM {Q0Ajj'O.s#=ɔ>ӧ: H(Tt:.r#Mjbe-} ~յ뫱ٌ@OW 8J%…B޽#7BCϜT1tÆI,+ *SΟO.,x IbŸ}h㸸ch4ݑ~*""uY&ihPHݽw佨tEE>>xЗ2:W_Kx !CxzZ:ץ >~rFePٳ̰Ļw^=aܸDb7ndkk>|>zP(JL,7άk0GG7._RҥEֹ)++P >TkС;SiTS=-[6ϯ?ϝ[emZqcSWUй'goofI,MLpW[bb27okll۶E\Є  ^8yޝ;y*R KJiÏ[aٗv7ǏAovuueccwz{0Arr2Ko6mf1}r'w΋~~55UN]_n?}ڴn;A(`dR}E~|smT o UF5op8n=_1cAyy[˟3gԖ-3$?񵵍Φ!! &Of,B2..?44ʕѣM<Ӧ>! ;/TW11a..{l:oިrr*v ~=fDGiSL]]ѣ7/7K4>|ܦ(Ou!''/>O>υ kzo!9>H@PT+UT7ظq P]xLM.^\kgg@u"^Uq='wЁ~~|nP$E kk 6m2}27h Cn/|~FWW6o;>o|LM=zzpS:έvr2:t#G+QFF"CTTROo׮|5BwSG: H"T U6JJ/7-+ٺult(xO<^ɓ.\HnkNdqJSn)rr*"#SCCKJ0C>A__\}έ[ UU}BF20@)::s]K" 1{_8qec<䛊֐GPSS>toҧo A㽗 V/|}<qdbzz (.~ `萔|@ɻ{7޽' ^^VNN 4 |v׮eݸ]PPضq ÇCBn::biГZSnFFun~~jj/KڋOT 4Ϗen>\}ם;y o#mb:8qg߾˗.=fpC}v3}. O? վ}Qjj.t:eeXXXMuh7g }|[)PZ L節m˿{7+(wr2A/׳]˺}ACCIcǚ9:P@R\ysXCC޽xIܹ$$-mfP窱|X4p'A_CVAAգGOOc$UN4×&ideKzyYmv~Μ//ݻgk bb2oP^^`ƍT'RPP=thN62{}0A~~| 3ZZ: .):H> Ģ\'7#Fd G2T\{^ 2ZXh>((<,,zϞYN𮪪S^NNsmG5_vfƍ!+K:Ap8y L/jܸt:ƍloo_dp'11[sqx1N5UIIAA SN^Fu"^{Dj͜iGukxeTS*+-]?@VR P O 9¶6Xj+c%iiiOHGGg^{𩚚qfG~xD::N NI):H(Tt r.uA}}*ek Fhk: H[\uFvcc+1d ;7+@'|ٻw}ѣmUT<;w.?JKkLݻg͚eJSJd\\~hhBTTzssݳMU$E]U 4|Kmmyy)?e(1y2sӦ.t "jjy-^^T'gOe8aHPHӦ{?/1y~xqtR=IOO-<< kp8O6+;9l]_HRQ^֯&N?; ]$-`UVD@q֭-jmuԁV8*nʀ$dk4Dr履~7w=!so<ʊEtt4Dvۯ;8^= b޽ gQS":OTrrϯ\yYV[|ѾFDmAee:6ڵo~?|xgM:vrkZ.ׯڼy>D/_e`e˄^d2蠀ܺѣ+WNpv6G$#{wc C?*QΘq&ee|~-hJJ8Yqqw/,64a;w@ImmݣGioccߖpL/h~Јo ãSR-d\{(={6>:Yeeg<8uذQ>_trww&pt4#:.TccCkMuhmҥH0 (yٳmD%aׯڴJee͌_=Ġd؎޹G'c :S23KM0 9cdɩCH$XW)ayy1 R&Jq.]zRt$hUNt nuɓ#6m~i3Mͅ `a1mOvvvBBQ|8[ 8EEd2jo`6sttla'0~I,]muYˋM[82E$Ʉ<(Z`gΜia'0~dX\&e"N|x㉎uxM:t۷O&L$\'ϟg99Og$?SSFPTD?AFFd@A$ՑBE E,F3rVj$^XX}Mu5bBZ h#"Qv]] 6JRT':-Qgmp˖kƆk'$-;t-W:zv1LJtkEX3MJΝ#:U&MJ5h|K 3Lt8+3̙gg=wo `**jСR… ]<;vxbʕN2d< E?.**?~8֭[uu:Ga+VtJSQXXxbQ@9hΨ'۷lKKRށtsׯ^=T4 Zr<炓DBz9!<=s;r^EQSŋ/^{رe˖!iffV*w,E/**JNNvss RX!圜320 L&̙y(Gp#i۬ K-LU%{|04]`` ^Q^BQ466A>(=qxxD"|GGLj ;wIQQzЈqQ-IKKߕd֭xH*|J!iiQz<`XMM# F JT͛.:Hqq5L:k֯vvz{޸1&39B |U?*8IT iۙ7(|s罵7II-징5~Un0[?FE-J RRRRQH/쾭4i]޵QԈ4޹oM}nTm/Zo 8A `u={TQQQ֭#O:]t9sz]k```mm-tOTEy]~c+~ Scǎo]D"1CݥRΝ;ݍ>gϞ3޼yx۶m?׷𰰰XdH$R eM?Jd~zfff:t/^QN0;uꔗɏ?7(@%$d ۷WP8h'M:X^߻741qڵ̉gjI$ۛ/ F98I-YB͡4`7[@k&y n@@@NN {F gp*D a;vd2v1VьwR,Yd֬Y|>˗MJX*` D"ͭ`̙%s瞨:o<߇Q TUy8MWh4gg'O"PWta  Ij^\&999>|ðիW{{{+mC*Aʔ6{䉉 SSSt{rzzz3gϏB%88FFF"2i$.{aA1 ۱cDŽ rssu,GYZZG>|;w|>R l6]sݓ]d2 bbblllbg K.^~ƦAFr/^?MCMMM} T66jGSa$%%x<.oܸ(44tРAɝ:uŸlF>f'N:z( 0@:)/UyU/UGyCsм3&jܹ;99׽z W'$c֯QTTt1 廨|TzS4֕Psӧ O} _V@e0Ǐa K{e2D"|T*|KA1 SoYTT(66k׮ $"GLNN^߹kjj 1 D/////=4 #'eb۷aa}s8EÇMyVNw뚚WիW^k֬Y~CBBorB)ddd(cǎV]ҌwwQd2y.]u^)db~׭[7s'O(mIS\\,4ܹۧCTW!!="bJq|m34U>ʉlll|={_[n+W>||ӑ)@; Jg?[ i&w9sfHǏ?zȑ#x@ 4iҲe<~xAUUUO>ظq< Ajjjv1l0b" :_6й݃/\pʕݻ+^o߾Uߣ#^}Q4o(200ꫯJKK---drff&PFFFfJK"tOnnń bň'@/>Yo,_~[?g@ݻ+bbUg[~qecc?e˖&$f{@(w栵#ܱ_? b4˚ðׯ_wQ/$ʍUN({V]Ќ./_|ܹ~uoOOOo{ bggWӧOʨ` iyffflww@&K^M :4tǏӗ.a;yС?^ȑZD3D5ONz7o޼yfѢE999M F8IeIwr2A׭{zr+ߌy`0‚_pŪ|>I1,\p7oެsΆ |/#K$7N:U8}ŋ_v-++SL Wx* $pr2jzp:}z,8)ȴpD5f̣4T~jTm#VСC/^rT|=S4@6ܹs"\\\VX!o#:uD\\\V^ݿ W,;2dJrg̘allljj:gΜ0 7o\[[[?fvvv%%%GwRWsa0|>%Ν;]]] 郗|hitpp033[x@ Pk뮎?/Dy)PeeԩSMMM.]?}Mf0TB/vM]fͥ: 7.4͛od2YktӦ+K쾵 NGbUUM-=Gh:ZB0<<ƆbWUU)u CF$hQEGr>}6 fJZ"lذLJN;::Xcb_~ CiT*ݽ{ 6lXLL9Vt|m]>W7oNrb?AќW^-_1V0Td2T> I& ޸f)'Ts'>>uW_-G,3a1UU"GGGyzz`,ء1MOX8k ؤI9wvWWWػwoIOOwssSأazݵ<~Fhj!htt4> hmwzz{Czv!:mKN΋|N ;s={n[W)T*CQzĈCxw/ mNϝ;'7}=<|[TTݿ9s>oơļv횝].]/^ܼy˗/J4.W^})uD ly3S'&= =2hS)f^Xia"kj  qzzz I[;`[Nd0T_]ܸȑ{/^m2a4U104tD !))%?tŢ=d7i30ږ __{ښ>|˖cYj?֖r~399yڵ .$:(=B_=s ѱrp0PHrpϞǏ \̞=dr3%21̹s(mKbbŧ\63hOQQ֍uZN55"G d2Y 0 p8˗/\xni9VAI@P '& @gp!_/ݞ,_vرeee3gl1Ϟ=7n?sciHT*CV=ĉY3fZW'ٿ J&:"] : 2YXXDDD(mD"ۻ=li":"-IL9z&Ιʔff)9jSBP(pxHZQ(pK!7/dLfbb{¢o CZD.WiÇiov< &|`jbbHdҎF{)SCP(7o޼y3с.XWVVEA@rq13 8}znX3EFt&2,v"=tׯ3kPPLݾ.2A\\jN[L wM">_ \/xB>_ <ԈJ) g i ݊Ţ }Cɤ}1SdXi=gNcmRi?hkϞe<}ajZZLhP )f;z۵V+y+? lN`$OŋDGzr>~AHᐐÿ6ȈFtD20ĉG6]uk|- /+JBqQQZj؃4ό}XFe./GQX,fzlefFJQY,:f*%7((F?̙-sQڇP(dX?*RDFIׯHl ˖ 0mW~ hytt_ |!'xu^yiޚQuuv/^~?zzdsse Ţ1FF4(/Ie0hL&ȈN"Z 4kV ,,fGQL&I$Rʡ(jaaDH*)ᔖ:w@lT*yϞa~޷/ Sb ** c nnxGGϳdD `6CSY,ѣŋd {r&:|b)/r^! ^[_! љLwTȋWƾ{8Ɔ뫯L:!ϺQVV OpӧP==mqA7lͷnn..掎NNffZfH.EU~ARYvv,-, fRQ(vdCt պuc֬0p>!22J!Xœ'3DGa@VPPճ& de`ffhmͶ`ZXL#_ IDATM MMLSS).U @{"{a:fBX$ jSk9FV(p Ôק,Eg LL mlT6.od4o433"?z):ILݻo9:6bOK ;Z˗o8pAs0Hh|(7"; R A lmtsruw` Go|pGwE"Dz0Hط7660bYX0--X#?|{{%'-\-ut4#:ƆMef ?%'I j @gϢh{C"hnN<^DR4&s{G&!5@$Ps7ywCZTVYɯ䧦  2 CPEjOK|  Ts6{XE9uFNGpRU |:ÆgtP(pj]H"噻*++kYr\^m)˫bt6P'?{//⫁֖M=qIdB iCs!ṿ8DWWu[ C3M qkk_iٴ:=c\\:'S%3q@u[kmΖ-/D[+k9'd2,2rFEvԈf8UޡCaz}l3w:42OT*{$…ׯ'֊I$T*!c:=|[X0?_7o>~B!K$RKK1Ç%ՈCn~cPF{~6ۺwd2ܹP(޲گƅ޸qF%:"4H$r<xG \! y$'-XpĉYCxa+pB<7VN Ig2iFFtndDc0-- ͦ3yY,::رŜC/]ZԻ !,뛕U R66l{{Sgg/?eQQOnxo~ת} i„ws޽?25e|ֳX,GU''ݺEL~tEkWi3gfDTq۰ W x@g2Bɰ'C33ˤRPJ%ma[NR?6@;WXXQQORS剿/R矃ռkjjqy9AEN0 7wCUULw#<]$^N1< ww_A%Ǐ=J8=+LOG+mF,,KWA…'QEB!UV maǎmtgO*%@BH$ TWr8V"B1X^ίOa X,fXZ2ݭl:BQi4*Eg l'eUaac`{LSéULoU',)}^vv>5syeЎn a}mR^HHob>eeWׁJ%GGǯY3WWKA23 a#Ft`_գӔ)}Lչի/EE=>t( uܵk-d zz/B]B_{L6q{'O>^] )i#J&66{Mx3fHP\̙5ה~;eJuA0ΕpYUU+)_EшQٕD"X)[dR|ZkkVƹ\a@rҷ$f8?)u/^d?x+K rO3ˇhTlS̷@QtJl`btǎ?;vFFͯ?2z?[YY#O_Ukb€,b?HHR\\7-?oӣX[|L- }M?w )%2YR~b722jT XYߧ-HI)8G2~}ˉG)$ /Sz&TT|C& &*?ðk/ۣ޽+ 9\Yɗk׾́;q3hPٳ݉  :Qj!rC;U0jޮ]7m jHd{ܳ'v~ 266$:"Z dߋW*Kq~?cB,b5{xCpa$o_ ~$@Pu~BBփOf(f%a:a ~e.\A>}r̙yD@RXX=ol:q$?%8Z.W\Au;or\@$R\ I3234&dҍhx E[N m'?tny9oذ^biaab/&So !יi4ҒѶW/g L?G($e{b `m0 ᇱfh+R=OdLz`GPR-)ᔔpKJU55"|{1 [CpPR6-ݻBTjooCbդGzk?oހ/+,.WN& eeSH[qŧ$=!x_ R^^֯_ ȿ(&J nŲc,~.=W@QjӦ+:{xX5)N"{WAguu9y!&?.*oTg++Сx% ե)J忋9$XW*=z}*T(`2ڧׯML cFBX1'SG16h~9%(n<dK"I#GvivWYZ2cb|+W^Q|J%} YGޟ?w77˥K95wJ!RݻKJrr2,(ژ}]o^=u9s70_jŋϗ-;׳5…x2bňE5#vzفDBqRHHo5;2J%o_Ȃ'V5{v;/ۣ%--={:ikkLtQYYZP Zkk֋ F7Ǐ}{ |-5bZ B1#œzN핷TT{l^d2`lFקiFQ($)_=z?aa}NdJeU99ss+|  DG22pw~B{ܳ'N(8JU.*RlAd ??'-F gɒSӧ[TRe~0~ A4,e˄- 6 n|ۯǶIK+[/'X,\8pd2|iٳ߸FB! U[qjgd ږӧnxᇱ_~ dT*۾nOg։Krr>awﮠR狼Vտ&"NNqq+տ{)G111wo)}gIo Or߀w{{SԼ:qrrz;mBQQ'6n7eJw!OU߭RUU[?N)W[ĄѤɒɰ۷EF>K3e^^EvvENNyvvy^^%~dLMmlu*wFr/I𰂔_XOER(nA  -"b ۭUWΛg۷KKyXQQs=͛oOAT|r@Qyw=paQ^oΘ><_^&JrNQ.~~N ~׮1 AQDU8F/..uѢ(\B{9R4FXX0!hH$˫z|ҋr>mGO X,y@Hղi"cc~ѣG8p'99W&CdA{{S{{SSEBݕ>\TT ͨTbNp^^ŋ ڲe5Fi;V{+W^Z~Fut_liӎ\^F$&f toP(vu]9cذD҆={jՅ̲ Ο?h!p ڡ gNz،]z099o^Ms͚KH(aذau ⌌Roo[y~ON[zM p99qqqqUU՘2us߽sw|w/TJ%K$2W6!:}AS$B2|3zi4>Ue^33#NéɩɩͭodeT(NN;zxXNNFF4(H%;߽+ߥPRAP;;=޺3i4ʨQ{lpŋQ<~ьXTk ?h~m'mIK+ٳfL7nץ1K=>A&S^^FEIzږ=~9DҶI$c}B!/X0p~4ڛطEyy=:]yF}"GAQښemͶ02113#|4r6 gg>|V\a0}};uzJe>>kus$uuRA.\QQ'_m|OT*svk\#pܨU 8,;ɤ` Bz <7585$'"; oR66l &+,קC:t0!:Fֽy/O(JeJ)/9թڪ*>!d24#짟&E'ccC|~ /l QQOV89cp(8h۶k))[ 7o],`ҤXe~0 ,`KKV@~~ϞeeݺѶDGf'11A G&&$dQN+V :F]7i!{{]=E_nQ(̚@Q `0;۶] e*KJ85ƆlA]ss?SPoΘ><˺l99 Yw IDATTuԭ#_-))wĈݷo/$ Y))Eaa}(DNx0u(&~4//JEy뷔FyhTˀ@bi~~effYNNEVVyNNyvvynne]AC>|?_}?47?ey YY<>+5B!uhޫ3mȑ{<=t())̝ PzjڥrW555>4)ӆhRLݾn߾/r-4xpGyv#"/zzȋ_5lO{80U;-0sڵLCt, a;vٳ֬ߐ+s8J-!?X;JJ8[^py>.;v@֠Z W9;Cpܺ.,hJV&Nt,/:w.ر?6;»%} yo[022r%S;;oo-[Q%67ߜ155<|xuku>ʳ~{ts絇O1‡X!ϟ;I?ztg@f^R;)I&& th4D,G/,4%CԆCkdD߶-%hsi׮n;!@N@4( NjVōnjVֺ8:Q=q@VBI ̬7H # 7ސݽMΜٷ jmA^^]Խ+ֵ͕+o/?M=xp#ICkD 6|F}aժl6wѢ}_psߏeлݎMxmmm1~|I=%0fatRǎcSS6[5/))a`߻wϛwrذ=kք}I۷yԯCPmٲoz1[t==_?օ-Jѣ 6=pOtwЯ4Y/_P?:;\/PACD9ܣ:þl6F ѦNMQZDR{˘dԨnǎa$򛜜_W'SE~N ΎQFSNAAŋ˥N۠=|B8gD@*`4.ؒ% tDT*K΍K퉚 h޽w1.Djke7_=v,auFjUnҕ+?{9ho:OhZy~=۲eC.P(Of=˼y3NL5С]itRnnJJccg8pg/_s'udؙ>>v͝ի\&dx-ўX?";&Bٵ뺹s}<- ?.VL rSMUJ6=kmmi`#J eas8~N)-((Cw=͚@ȁLnnѣ qqx|}Oȯ*Eׇo;o,8bml^YYmhB33 5?ǺMpժU]\cu9MRW' !$J6\qvڷojNA 3f177u!Nm㌫W_g)`~ÇS  `@<|IǏ9:0lNKŢyNXkք55R+?11c˗:*۷ۥ!II wo\@s.^|ry rHEEHT%U "QPX>U= +јo]81%TS%zI @kJ8}%I$s77k77zk*Ç]jijnuD~YZKQQǎY>||m>Mhm@1xñ.DJ,]2kV?]odx>ϯP(:\>/\x:5GXǫ==!<7^y,ͥXqUútY8С]F+t̑#7luvIH`Ox05u3AV&SDGߎ=vlmB?^&S_~drjke..@}`H6gϭSypNi ]5"Q*+VDsԯLPͥwI$4kzK$]{ M䔲yyի\l{[$Q[+sW1bl۱#bcg„6EvEE  t OwrªΎ)$7:n׮XfDs3y?h)ڎW,E*Z,BeeR&&h^ Gz,*K&[BG"ڈT*/*Iߌ ./S($4BFSNNVئ]e2obbgdp ?`^j\T*OK+JNMO/J喖;;0N~~N 5%'}cǍw67֔z?\m@sӋqJJp钒MƄ`]RyY`_Ȟ?zpúm&=ZEY޾Li<ŋ_s8|OOЀ{Zb](  b3hXTVzy}1,l˫mm-{ T kD.]~1lZӧY?d~,@G`M3ԏ8kmm #9*#f>22N ڄ@i4 NES4U[+;sGϟ?ۮYYvMI)t]~A3793/8ެ?AK\]5TМ˗,\x:+k!ֵ֭׎K׏}{(&=VR\q m  O?yaØ3bX@nOܭ#{VZ@-޼ɻxK++ki}u(N{3g kk7jess"WP dyy6O$SS֯li~ eTԭcv߾=W]]'U UeeBaeYYHT%V U"E*Jձ ACC}"G"8"G"ܬDhN"T/x)bqU^@ey%f..}]\i4Ε2&@ 5ے%slZ4B]KM-333i>~~6H}; ݻ'7,/27ҶKӋ=GT UhxcW( +>RS#Uͥ&wI$shWMjs:s8/U!bbbnfnnanC&[`]rSU?phT*4gD@*dUx<1*HL m cn.p}?.b2noӣѣ!z[f=t葑Y‚fG~߼$D~ML:PN޾0|xԝ;}};obbNhhLxx0dtK^'Oh` LvvɊLΔ)WF"c]QH>P:4h$lgGll6ẉuuӧvkjj<ݽCtX?pFzxօ&)+L/(pݻLu{۶jUŋc'$źΝ; vͤPX@G 'I_.W\^^].U~躺:*.*q8Ax3OO[OO[OOMbqqx̙3) ˫LUAr@ )ʞ=7}ժ-éCNڀ&TUhҝ;?tQ"]Y':M`oEYsݫG~[͛#~KL\@ºݳkͫW=Zu!$ړ':Vt鐙3  hWrÏ[X?E9x߾[/ -/IO/R5eP(x4`8Šmp͔׶lmۮ|Nݼyl`;2L"wGG7jT7lL7Xb]xҥgwp4:߳'Z5,$+։{fOk@rm͔MMZ0{i,&3'11'%@S' Zp0-0нC;bYܚEoС]`UATT,\x_7yr/@ۡ޲2 E_,+$h'N<ތLYYYA^"G"}ZYЧ-ОdB!eyybm5(t:ӓ II)ؿ޵ky31BU73T*G~wwq޾0|xԭ[˺tqlJrSe\ ƚvbݺKl6}v?FeesGÆ1~i;l:|pQH* kT*}rqƤIomM2hٳ5XZ"?lW& sD* Ҫl K&Slpر^=\˯v8:Z)Bmg)+|:IH`:і-woO ufgGx12:YmB}-fs9!X@[HK+ ;^S#w0^jJ,xr\ϯP(ĐH8 O]]mD3G _W l.C󾵵2A hTdWdrNj.>}?Uo㪪w T߬,B1`8u Vʕ-KEEM7nG][Ծu@zz1NP%$7l2`Iz._-|Pk5G tj_tÇlKK.W|K =2P$uUlYXqn۶9#=m!H#99?:aX*55z#UV־y1;!]C@[`[ޚnr#bcgit]AK h%O/~  bdd`oODc..dҩ-- ޽w޼ p4xT*phޗOJ xS:mBƺve˵˗0?Ick :9Y=B\8wcʚ~}s6bŋ Mx>̶qzߟ [y0}ÇmJ$}J%  hw g>jhhploo ׭9eJO^{:c6A/0hAA`Zw).͛w_&ΊjZHHmTd @rŶmܟ2ז- t\(+?IiD( JD"?2'̭̭I$lN"pVV$.S IDATZFUc%%: [OO[OOcj%R7 iLF2KKSo_ÉFhy0޽+2d׵k[3ƻwG5ҥڬku3?օhC7114cF_SS#uu.^=<2rPS|Ko/3/oeѣudux jAҥ80gOwFWz{{Lӭ(Ie꺔ĜǏ/^dRyHXigGx12:YmBq8ciJK%oED ĺ4H,;$ɡX@jjbqHoϟJrjOڨR[[U#U!f=vl~zMQ Ķzzz˖ ,^gqh߾)&S*XtD͞}L&=:OIB&3'11ѣ[[˞== o`efnӡhLu{۶B\U]jjk7n=eJok@Ӆ&a]=m܋ CNиTyߌ .MO/+\]ξh Z'.W!99?99_(44𠘚<QNs Jh#!!юr9 r?2.]Zi͛>~qr I?xr#ٳ8ͦT*.=sZ+ ;uǺ5F,|ϟ{mwom'@-^䄅srC&[`]0o,9tLkk-=P(33y9h_ƲW/ Z@:ܳgYHJڨs0ؑqYlLn ;z vF&S˥'.]:dٲXB$eeBϗiYYeCo<ʂDYY֖VV?2قL]mUaߌ nZZ phŅ}tA UTԤ~s~ p t^9qB1_D@vk'%m Z&LrW.ֹ،G,,Lu!:L(fy_`]hT>eʡLލKT4I#bQEE :9 ą•+0@N#Fa] Pヒ566$6%+m'&)l 'Ba%lD+\}||d^XbŢyNXkքc][ ͽvm1օNBaߟHN߿7tƺ֔J%-+,-eeeeR4[YV&M^++sK2R굶 >f|?4N&S l.ddpSS zy_JSt;DtUUu_ 3T*/`8J"mzddd0kVǛa];5kBf #G#+ЧϖЀ%K`]Ϋ{~X+>1wWݺ9c]hj,-M/]43|))011(/o y`kkK}lmӳ)Sz/\5օrš1\0BэV  ȸG2o81r~LΓ'\%8Dٱ JF[qɓ{e")oGE;m8ΟRNJBe`8 ړY!Ǐy{CvF*W Er.\,KeeR\5!J8 I 8$lih$:O&Sp8%܌LKr}''+// FhOO ,oL]}YR7өn]:.,ӧ[X̘wΜ-޸T-KAݥWd+Z T~ZrlC+?0}֬~Æ1vD]]2|oC;Z4b+LfεkT`A\` HɓR QQ.hJIIń 1GZYc]^Xt%fHj#].0Ĝ 8qaaAnݺ4z )tbhl@ȸCw_Ky[RRRA{rO92r@}Uzj4[T$$K$T^gg2Gþ5E++ XhJe~~YF7#VIrCC}WWk:n0NfCoJJAMǞp:7DQ>kAC=S655¤~ĉxS'/ٙ|X[@|LE`1c=:|QddI=Nduu?xxL>p:yqrccCALM\\..'R>*rժ);`>6%*Z=;oԨ}&G0 K=I] Np!Qqyr&~(#?̸GI{hYÖ)Q{m)(vyNg͚`+=nt*օG<^ɽnO-$Ԗ J@WKK%|~EYYeY~72'-(lneeaccA&|:*#f22,V~ZZDR Ѩ{{ΜُFtF'F,V#W_//J# wK;;5!Ӧ5*{{Z;\~Z`8L==qٲoԲL2YY<}77 iǓ+p!ĉk~ˀ m6p颟Zn{*Ҧ|0W.Wl$@ʕ7XW4B!93o̘}O g)@J%5R׿ז-$/Lf54!(L۶]};R-d2Etcv߶-C3e0ڵ!X@kV8zժa.R]S5KJʹ\X\0%p޽B'@GVQQG#l6!p4NhT:˶Wb壑߷oJK% #`8vܔ#☘.qr?I=u4FG^'4T➯\y~汳fS2Ass…WϞvN.W<{uwǏ1{v?;;"udVܼri޼?J$6vVI>X5LEՔ:~0b߿B$ⰮhEG>/*j2ֵm $ Hj-:}N ڮ@ y&IH`u0xMcA͆+FXCCeˆGF ;6vE#.ijgpJsnP rڧ:@ ))@>(-$A\@'64'-ƽd-ڂL@XY1T*pl673T*-,Lmi4Jxx0Fe0(<갊"U_6 g0vTiÇ3yrϨ4~|u-s"Qڵ8ĉZ,h// UAA ?uzS{}޵q;&`]:UTP(2L0Wft%n Hv6{wjmS'Ϝyf¯.hV hJN֬c̙$ڷo?f_}}=__ ڲeaiiɊD$ -n\:oaYvmuj3 Bh™3^rtUMTVG$*))rm#W ǁhki4Uվ}@K{6B4e Kr N Ѩ4ˋ֐JiiELf)J4`ݵeMSS {ZrN>}?==xh B6q#5&$U92;qɠ23yӱqwQV 'O>0ᠽ=q̘өXWegGܺu?>ܯ=#IW7!BR |pIIjFĐ)pG0hPG%}.hHq~\\7o.upT4͛w ED ߟǛihrr# _fm Ѿ$%Kߧ͇R)WD꒒r.W,W**jTR4B t#p^4thx<1{WX]]tHo%L]}YR7,{l*^ݳփ=z+ou@UNnj\5#9sN^<Ըd % º044 44 +ʕ7/>pF t@]Fvjg_iaau9!hcED>X__:'5 :d֬w""NRh^S@-JeL_>z]MMԻWrLET*wq!шDzW>>k~qY:MB;22@0cu9Z*)ðaQ7n,@G[^2֭1srTRZZQ\,$|~_>(-$U^##++ 2ٜBd-ڂLPVVmuHTZ^MO/f$4OQML oomXҥK 4䦨3HOª6gϞͻykג?_= )-5 yymm+E ~WWWW+rOK\QiX\ZZR\@433$--lmdA:Lᔤ_\\,BD2ɎFFSvxK-<mbz+V٠y@ΝWnbbI p/-w«Kzg;;z,g?^k )U(S>')||ʈZ|?ǿ^t||d`{U9:Yzi}.5+T^7%e˵YԀϟ?*tUo=thݻ'eU@A9wĉCC566ϟ?wvBv{:Nfӷg>}xi0|W_HK+|y&׫W/''*Hxep5kF*z;:a]]x}Ҥ$"jWd K okS(xK*`mmagG᠏h\yyuzz1XVW;8h4R]\XW~?&3')_a`a G??g 5Tf29܇/"6|]V 4B Ij_~#88ٳg'LhLT_Z#Z@|vnƌ#`ߍu!ڥ`C*WPP6cF?*okR xGG}'L޽{c[.jʧݻg83mԨnmVf:c:w% &de8;'Oշۨ FtRP%KZQ}CnniHzKNghhh$ww^'N<]hړpff'NCm<u=AΔcM<;uoٲoڠ*ͩJrSZؐB!P( '$3))ϞeI>2$ >Z)_iڴ+WݵoU VEEMƺcW^^S\,Ҍ2Аkג\\]8b]ry%] =XR_ww[::~|h R'&0 +P|1N.dEdrvIf@۹sjALg޻/81P 'k&M:x|U@s98/u뵐?u9-'V"WFF۷m0_?O\Z*?vֆ|0h $&.XwB>Ac Hzz1$;RyZ C@}ů劬b'',-M킂h>fdrviV@}zqt ~C*pbĸqƏ9~>!G IDAT`kI˖re ! Z66x|p}E꒒r+aSDKK6?eذ-Z4r  "p !=x@kme!!].h_4웑MI)B߶Ѽ/Unuug`8Mڛp(XݥޱׯhW.2 /#GvH.Dă۱cС{N~>mZi!4 wV S5FD,rKJʹ\qII9~ժ[^23ڢtXedpkג\\ȝ;;`]}7/O mo߾KJ + us;o۶]CPڵ@\]CBs{ĈH:{cOz?A 9y}/:PXǛa]H{n[G t_JHTZZQ\,_KK% 7CNN 4߸hח`] g U*WeeeۛV7ki*33}&%%52R:uEҶLT^5J#m@۴i޶mT9s*))SWWӧj̀jپ Hee+,--n*>5ŷƗ{7X\dryFK{sXرWMMƏϟMKrML;0RUU.<=`v?u3f9}_] #[m:qb;wR3i֖7n,={f,ŻqUZ_QP XVs+j?k)Jp=Z٨G&˗%-֮Ǻ,-M "dg\ Tː!g|ݻ'<;˓6zf?,9q"짟F9;[7H$˗/wss333_jjj4|=1+X=[.\8{I.C"+37775."B$W\ٚ***l2q/](**:}t^^^kn3o|/ u!J3gϞ=j*QF#ӧO1 d2߆-lvttJJ HlY***)߽{?߹sݻvhq-RyVVIZZE<^9 66>>nӦˋ4D.Wde-YR7s c0]nivLN2w ]8b]e0FTa&~ŋ?kaa5qMkڣśMH$殷Q?9q„7Su9&VZYc]E;a/JXSOQOp).X //ŋNNNiii .,++۷of*m<>vR[L QP(ں~TERwAP|m?jA[Zrv-B@kݾ}{l6F!bfffff';jvpp0`6lвZmܸ޽{B7tL[9@;I$ټ .RPS#54wwөSf0 ' u'FLfΫWu&:3N[@Q4k%&}?ϟggq-[6tРwYskqwp!bS:}z9!`̏״Gk6ԏ&>}zc }xfX<"QúvF&S| |k\|͛ݻwڴins\bŹ+Wk(`@doo9s(O$fΜimm|\sNfiiٷoߗ/_SJ+VP([[+VHWtmOOO믿"$ʕ+t:v… @[ѨiiXwi++;v "~gggӧD"AzG?x\猌 >ߴsZ)דG3g_{{{={͛7v:{I }||,--{==/jWR |iOhϧ]X3g) AL6mffvqRqʔ) fX;w^~={lmm㋊_nooN}q}bZ1ŋ+2d~Ⅷ|?ҧϖ]n}={?IJJG*?FdB;wX={._Yx\'UΟ?֬Y?ߴoPsY^̶[}am)BpssU*k֬d7Kӵ+D"Q}޿xqqqr_ O*)BvїW~yDgOJJBꍚP(J+WRi7'?OM乹o۵~[lgkuӧ޼sbhNee˗ه?Z mKTw_̮źfHL䄆-92VX|{%w޿/]z@"Q8NW#wT|r*c"8^kךxVeMg>r?MKZpvu{%g`^ ͘q$"U];xU?Mq-ܹ377Ww;#)y/4fO ? ֭SiiE tLJ2::Auݻw񞞞4ĉtboob;wt=|PTrtX,`OO_BaaŽ}MLի$^ήܜd*I&^K7'?Oݐt(uuskƏb'o[ nom@&#-WOk }^ʝ>0MH`c]fR }!Q"Qzq |R<{[)??&FqeM#gr6/iqOTΞ}gMtWշٸ UcsXW4L&{ƍ;wl``piwR__w/]hN |iӠ[_.=ӂy3hO"##ߏrӳ@OOk׮  77N:@|hO}}/zyy yupLOOdee+u -322B/ػ&7  ܸwqouֽꮵu=Z*Z' !2eHA4TԐK~+CsmpipuH$k׮z ƬZkևL&S\qD]=Q5UǗ69ɣ~X%–-ݺ}k4RTdgguۛSu*..nĈ۷o߾5k֭[lٲc"_j~a}# daYNDK 믏=:r:`lgggdh >hb6z{7 =F#(ȵc]rA4'91䔗>~?548:,--'O>٘UKf7oDC~, Bݹsz@E-?Ju4ѡ'֫Gtҗ/_8p#mmܸq7nD[n~駾}j.h1c\pʕ+ڵSį}ԡ?[79.WxVڎ7&MqC3w}/_#M&"$$pMSKf0+Wy?\<Ӧa#F9h͛3g^\?qbڕ+! >WFև>"y]@ ԺK5/xw؁hbb2jԨ榦YfܸqfZt˗KJJnܸvZÇ_re~~>۷ _ ?jժdh A6[_ڜPTAN<)gN0aթsWJ,OJ \4jvBRXё9KHH(--7ncǎ}ׯ?² 6,77wѢEH#6ZTjjjZ]]n:A*++_}ͶvҞ={޸q۷G흝gϞFlj{֭RO} zE&Sdf?5`@6mGEp! A'%'o|jCllu7ȤH9֭OF:xAf23=쵉 뒿JF3O-+Сqq ! AXJڳnLy摑srtq\_9[xdɚj 6Ә~X%˜1ÙJM $RN'c]rEbq-օ|4qQF]v-''K,3f iTTFb g#{Uhao?I 0(BD}JR*VTTL0ᆱ۶m񱲲ر#zWJDSLh3f̨3[͛W]]O#F1bgRHȆ;ojw]I>ͷ[mT*w[VSSd''' 2f>Rd2YXXDRTۇm|uCg7rGmg̙{֜T*/_RgT?q\7:sعsƌCӿ~[STbx-[ ܼyD"άf̘A"bG^omݍTT55gϲO>PXYѣ;ݧw% wu޼G>x,["źB.Wdd?w.q͚Kvs[oȑoWb]c|?oigzʕWJرx799:[P(4hwVkRS ~n5xgzxxŋj.sh*8^F}Rc|jSl'?~ԏU:;נwx>>˷o53э ߼)ƺ-qaJ5rY,KT*nܸӓD"uG/4Nribyʚ 0,8W޹sF_YYYu*lp'9Asi4cqLS8OjZ\>kׇ?쳖%8xCqHJɬ[=zwR癰(-nYT*Uzzq|<޽79Rb!fusqB6.p%orU*bd2X,W˅r0ߑܤjY@`2 uk޾{?^-3p`1\LJqd-T"FE{Ӄ=fVptsYLq*1::~eK篙OS{3r66VXb$d2}Z_tӀwôi],3u0,c XWХKI !*ղX +k_O~=EP:9Q{ vAJJd>xq~@PmbB˕* ǓH]LpJRSRSҊӋD<aײsddp`s`3nu͈HTQynbbWb"Eg\VbinbB&o߾;g<9zv;p5kMpɓuPKKӓ'}ѣDu꧛W-:sw WZZI$TK 1&&2 z֖4~Ď7ǍHź \y_l__/חM755/)2AA%%B.W`aeexdI[$*?Q %X'#" ַjiRR^|<Νp#)(*h:LSfmeSR kjd&&OO{˥ wD"MM-D6`Y,י3xjbaauSPPwgyxAѳg@׮~_DmԦă'.\Iѻv:n t9 ҫUm62"b{ttu_@#mmxlAss!%46ˉoc(/螡wqq BRTx<Ңc>>t____:luB:Ԙ'( ñXb0YΞ}H mE %AP(Hp2ATig7Nŭa׮ŋ)*~oNgq e\y!/Gtt@dΜ/Zik" UOODz$22;v8xp"ֵ& `z! ֡r?E)$WPﰮhi!Xjkh`MDj{EjVLP,TK łBpp9PnpK'rɉ:yrq:R? 5wRu>|,"WZ*)%|~UML=@SX0ficcekKҜ>́P(,QG~߾T*d:3b2 ":%ռ~;4[^.&-Z8m>fL֭|}p ÇGG?^fĉ#5Fl޼^qq-;;[_Lcvpv͘q=PŽ/ ku9 (*ku^$s|P_Y'u9iinz&P|0T*$0йgO6Yᅢu@ΜytwHcѧq:/73#R%uv8S)hJnd.3Ą +CB&Oܿ? =_{ŝ0W8VtJU9sU\\+)C7Jͻw4Wx N;:R ar/]~1duР ˕re0` _]S(YYynjjRBߗI:z{XXb]ćݏZzЄ (FĄmȡC=l̘:^z׮~9ģrtOO{hڶu7_ r** Dź ce HNN$A-[:'a] hZp6reQ)A[s8%$PX ՚5"#ϟ?Rg rEE|gf=)-?cqX S|T*|mD/b`L h4E&[K#&&iӺ0|'{HT9:Ri DucC"Q >3$#$-8#X Hbj&m|yg?*o13#j6A477170O#JJJDR]53 mG-Iߗ/y<1Ow,k۶pQ&117))Zjee9ujxޮ0r**wX}M _`Y;xxxW.4)fРݿ:5$S5kݺWwЯd2Eyy%7:''ivv)|5lY &'b]hBpUySV>=)&&F@ӄ >|Ą9gNOss Uu\"K$ 32٤WW;5b-})ӧO?siz@CU2BÈnn &zT+}ȋP(rAww3lee'-q8ǫTJ?x4+;;Ҝ9=gvCd2P,)ˏ?GTU|ϯ$U|B\QQWSR 'hnDƒFѬlmllH66V66hkK|%\]%/%P x//:`AtjҊg9ۛb\9 4ԳeK<ް_uX‘#LM:%X߽{ ~\ݏ`P.^FA Œdt=iRg&bj^}HP(!t'yy )(*jgǛgǛpf8ܿ_m>bs6VǎuįdeeMON.ߟ/VߪTg NgWJ uW PzDoP(j ^ łN'2TK2Bs:@׀RvG6mX/d~C 43F\1JH$dbQ!ATZeYX{K$EƼ~rMMVeæ.I 33s3QP)zU-]:S?DGG341!DFGF?{ȃ7Mڒ1 MC|~UEEUvvo54:lccegGB菘O^:e RR kjd&&OO{%"RgB;ynjjRB0boE&=͊@ ?zH?WTT81@ejJܷo\~:toΜ/ر5k.͙s?{vwǁO$mDR*5 D+JDQ*j?L*rtt$#GY ~6ZgA/^||w="> )x{Odm݉@ 7.?i0o^i~}潿t~©T/M(dfIV а/`?4{2ƍ; S*=7oy~x1H$8 Q*p I~1a#=~[Djeμ{ǻxq.օ툏=Н;˾,aee5@P{5j}5_yѦhWG-{!57n@ٹstxZ&9󴴴۷9|%%¶mכ_\OY&"wȑH<ёϝq@"пBS.-5{~s".W$JŚAvuo` hhggmphYYf$'Hr߉rEw[v35՗L@s c(6ٳ40Йre\ڷrsźFC"U9&&ٳOni _r཭[]4];j8rWg1Y&p8"T*]x<~߾qCŦPrs:wbnnΩcPGQ{Oti?kۥK/Ln6Bnݽ B ^?{vV.~XTT*U^u-_BL 8;6mֻw:ŋ/r (>O LLښj?_Jr0ڔW3[gJF M־ uө6m>% *r䰕+ LSS#u+GOfR nڴ."i6˕'O>^ mBdUL ۱ٳ| ᪫}d2~~LfAo nMssss APS#rE\PY1?~4q"͗`͏ 2NVH  %))lvajjQJJannRѬZr :5U+f2"Hh711;X.Ke\ڴq#/P]-=v,a߾ bҤyzXfu{,gn-3X.3gwcQ Lh>:upaeqn௚RðUnj9|buEٙlYM ҆lԹVTwrB)xz)J8x˗_iGa8n޼^xqoo| Q\sx/I֭ݾr3{N-*c *>n{X--[A{֜U^^yN?\2?8Z}](:nJjkƯUGxO!IU#+Ӌ8sU*U|}vb6uIlvSO.^LJ8NCT'OodgŊg<T˗cD̒ ?)*45%vfYA ŲE &ӡE G&ƀ!k]m\ RߴF5a(- 4u>]58c5oȾ}UTyLb2 bEPfe];L`.,kh'K'T~={nWWKO:sfw$Owbq`ڴ_srJUS7BIc!B CB.]רjr &&ooW# eP(ƺA䔞?%%ٳ]]m0ʽT*bE9szb]QSQ(]l{QX$4NW?-~Io(_j82iRôEK<D!ř6mOng NV?:n~FφVeYOdxW[+wquөϙ3D"-]w֬M_R"^ĵp`  AمNIff ]]P(-~KN\attl1gNիj}3g~=N`aaTK123g<9BYC:F651!s޳gwRoM z3CB<9;osK*U Dܶmڇt HhՅUQQժp8D\T*U/&mxE 7۷8}%B$3D NO/3,K@3>\ш\ WqaOCXi:)a[[+{{kH M򫎓eeJ%鹲—-aRkّ#gaX4hwn6 úp͛4~}fn-0,Im~رup@:-~JD2a_??-1QLq#V\&L ,:; jTK/MH#=z81)eLҊ""߹(PKN x_+uF7QO&Sm+AIIy}8ZMN>;t쪫~~+r7o8T ߴrرqDg~P^oo˵.WO*Ou2ERD#b݂MQ;h'w{y@ 11!;xo0/y֭מ<g];80@ w331iY*op#Fo8L6Ƕ&U}HbK^:trȐ6sd2WTs שXyWV}P,'8ct.fb]aXҩSOd2u 5>~g]o@šׯ:qb'kZ `0B5ehؗ.lf^Ę=MTv胏eT9ĉ;4QNHhM SR6ACS*U/o7 f}P?>"hfJ,X#kIX`؊M\Ç\]m0,4RFN||'ͶcGo4vLF.~MT-YAp$ӧk>k`֞=yS9Ý>={wreQ;p33ʉD3 ݝ`2~~-Z8)a#_ )޼)NḼ6z֭O7^zknJ \j`^XW0`iiE>ʕA֭%KbMM2&,rD"4)lBI$,X/ 2?_[n^jb$Sx1.na@DK&)uM}cU͛QQ޾ -HݷΞ} 1 {roUIMmɒĜVF` lvڷ2M&9X,›.|b1jT)SœwN Gi4˳ggjDVo ۷=}-hLpСXyBIIH(!*Z(u%BT_;;k̛ 5Bϝ;Gc] r'Y w ڶu҅h]DӏVVx֭#ƏTVR IDAToGvu{u});wE~Hܹ={ ~jf+3HS7o.vt{&]K1ĵk [väC>|ի,9{={6Oaӻwu&<~IIM ;[0#dda_6 -H"xf7n=۪˄ "#?4ȸR}M;+ǫW_n9M\oߝW6`]ߍxO)-5B;&O֟B ks?|9ooǺҤxNB'%@83tavm-+Kz4Id2ENN FwNJĄid2 b z ;8P  7)dȯjߡߤ<>  d\ hu3E} 7E˖ϗW.ԟ'/\HZ撽BCyS˖ӭWs{vzfu6o:u!/t"p 7lнx<ҥ,}Ŋ7Žzm|-JTH$ITCºM}nF8w*T*ln۪,-<>1&&GiӺ-ȃy"w%{b-ϟɓ5M1Oz /J/dM2hVvLgJի6??&`] @Q(iiE xγg9R6<֭9jS'NLsveeS"Eܕ+ ڵsCd:ML=zT u!̼L&{a2l ˥BIYWV]\'ĥ"VdKKS:lggmkkeoo6$n _C~L=~ThWH'M{N=vp̝s̘WuR|ذbqի 稪Xlٹ3&Nr@)JI)ܿεklWW "og,?H$(˗íE{uٙ5)}º}].9w۰0_]֣3/;'k\\hXwB :6:vJJaMH;;re2(UclvAtt˯(QO/ôq¶m74EI$׮2mZWe@Rʟ~9rdH_U?[Z**)Չi(`P r .|)ӦzRGkiy 4+JtÙzg>[|DD=gwxݻ~ e~p+_U1L"QM^^Yff E<Ads{u&re0X >T*RQIP0 P,i'W6Aqr75D~ HNN˗^|^,)llڴqkƽMm(Kk |~Ձbbml.=zt{hh:\_-Z8:5]4{jE"eKd~R^^=/^LrtΟkĈY5bN#W(T66Vcƴ7CgLy^xw#7$dI6+¿օ'Of_po/qI!)BC7|ykZ `\.쓇fb(K&bgX&X52ƍG㓒r[r0Sdd۴)Al:. ~ǎQ552Q4UO)/+J9h6^Yz^]3h WmLvϪ{ݻo *;u҅٥QVU*Ν7w9uj fxyI$ϚgM\)+!^P?[x j?|:#=,pJ22ޗU"`??';;- %y]5hh}&CD6.HN.` vGG*Eko_PUUVf>q'&^^PϐO˕d@rRUU{ý{oٳO:1t.6lɝ~0ֵ'^K^ fÆ!A ?}̙&L_R}Od#q8|ѢSHK+{ǯFR˭ibV퇛#l> B]llgJ x<@ GtrHgDDg51,۷8uqR:hI е:-~Z !22r5x'$U;;ljܿCe2/ _W>_"|ɻw9g<|)bIZhT/}LZRVV@Ο]zd i^}sNYRr ޽EFv޼}kϪX_0ۚ3Bsp wcooHL ROAwԙSx<1L0p(ˏ7XErE\Hs|^bbP()+D!ձ`fbXI$ׯ斫T*Һȑ+J[˗yII^s8%JŅ֮ڶ`\+@?UWK=r]gtrݵk̬Y'cvڒ?|xի/xqߩSᡞsqm4l۲޽g:uj}kg|HN922xذEE6R`s߾-o;8Jb2t>3* @q=`cCj=))7""pݺ!66VXƍ{w@Ӂдd2ENN]{wh0????GofDG_B5)aNNT NN:4i`oYYYWUTTq^tZWHf4j-TKO|_~azi4KOZyXؖ=nu-O.W|wVzB.47""WoTR"<9":zJǎMK^|ݙmu  Ձ̒⪪ZA 2w`&Ѳ 1Hr>Jsbڰ) [0t Aqr~( {g ׯd 2u rw >͛ss*SH'ҡ 5;vܬ2%|޼dE-[>|?6vvMxlejjdٷ͖-GYY#bbI$3EE[XefD!!۷'II HcbJg =s5}4#G'9y#օ;.WRԲ3zv _`]y,&& Bv@LVASҿ[a_&ӡuk*L&Sܸrh|RRnV.&t 6FifejP"Tk]QQA;7bMXR(N{66c4R;v`]:ޞlbBJBauI0/L*UHfNhre2l>BPfeh7+T rhm 73JڵVT5*tɒ~tzs9F!RuիW#yyW_?s6W2Ryǎ%XZΚ9`eevs߆b]:VVV@gK\gr__%6OoOx4#c YYV^.DG.\HZ˗mm|)10|:-~_//#(N'ץVZZy|bLLBYYeӦu1>%zFGVy5Ljh y~xhc<ͤ=+2DFwq5PD7OqŊXbl eZZѭ[inCB<#"mBú:]{pD&7۷85ʢ">w ffxgg'd2ZpD @D,-+32'%eey|Bmx83<٣a@R8pa˖H"QsVV<}zF:XVL殚5 Ma|fم|bbP(܁ t&U\BzUq@ejJ,)w;"_N.Wfg>~߾T*wwېO1s6K㐐ᇫ-__\p]gd2ʼnonaaxqc;|xÇCl;Žֵ[&MpHEgҊn\u!@  nfr8%iiEU0dm,bB%)nH9z4>))U+ :EF0Jy^{2]e`] n~ZnȔ)aXb޾޼zfʫWDB={3.R|˗_n0tʔp].wƍCnj˅=ˡ`&,RBӟ~~L&2;| yUD"ˋF~Y,֭ݾ  J6͔,7͛4S^3M7wA[ynMD2w Ѭ|ܭ[z8+<[tƺ"h@ffɐ!{ؿ<;|~Ν;~/zw#V5CUދ%-X1zt{ӥbAhƘ>}Zb]ϗ*w&A$ibS{ hemxq_ 1$bn- l.)OfM0p/,zY7͈Hf^^t&lcĘ=ccg3.J״ҲۖZJX&$p ֮n„NXb y7o޸[fgGh9wnp%p/:tP'LL~~~~)`6…w*TL>>@\.@#_++$tehLP,)V*UAuiD+?[R"j4g]Af\N'')޼)NLUo~Vٲ Crr֭< c^m[w+s8xpҤIGѬ6m6vl[͜yر+za]Wfccz^}ȑ`؟ ''jH+ x޼9ԩk jeefGϱ.ú nK ss˛O}{/矯[7Zׂ0Y-CþlvAzzqUU-O߈9szX#˗_Q(F2%ɉuQڤnً HJJAmZ2ѲW|N(%>>ggAUS#{<Kz5+rw+wȎ}ڛ7œ&E>>t`KK! V?,efp8\'<Ads{u&re0j22Ս~9;XI6SS"Aa0(+&tR0.}[T\,P*fjJ,є0BtrZ[/~6VN& b [ZnnO?ܶ۹s߆b]|Z-l\ mԨP'|u_C g^=rźfёiӰ3{{Ѣރ&:3`@?U[+73KB$G '+V hXI$3ggp?ƺ cbBEE| |Un©TO? zlYa==L:"p`֕;LqFѣIIZL)22۪P(xb>ϗ>ϯ˕x[[+͊JѬh4+F=ŒJ,ጉ'mr5-D'LѣGLƺ!JnL/v||T*oƭoV}$ުISN11SlmI0{ZcQ,":#=dd/+DBTY'6=H}R/];CC(wiգIhr9fJB`0(4=Hiva!H{yY,PO&aݎ'O|#G.]o xek܍һaMLkzXFScͫW۶u_b@>XWd޿o5uԩ&GrebssǛo7 a]ο9qW׭5>~sbbգ9 uj\.gMrWM94i$MNOv/M$+=ח.k`!B߽{p6$$C3TW7K;[D{t礤P>̂!#U]ȸC"O9{v ѣv&76T-:?mllյ]d IDATɁD'X,p/;@"ٓH$"Ѿ'Ho l$>dI+ֵ.?:R!g5ho) DY3Z>z4gժ%Ka[ JJUX&X&Su'NnnnGF#sx<:K b98 r4%x9bcg08hd2u]F.W+\#RU~~LnhhF7rwwrw'zxÃD=HW[a YFk.,Iݻխx]$cY^:.~J&SĮze;v̄/OOgɅ `]xܬYJJd.|hk WUUT3۷+m HL 0߿jhh~ͽU۷Bs-;(FeCSL0BC$h,+SUUU޽+io99PvH'Q*fL?գ DaH~dq PX~ޕtgCBphѫ ӧSSO)9sb~{,V={W^^ɓK+}L=n\ŋ`B)8Mg>D/_>B,LAe2*ÇĘ֚uLn oMM?"?jԨ\Ye^/f]gc_=Bɗ_ʺk}'Ǻ`<`6Ж`b)P"/{&'  TUr͑#]*8E/|TnkooV*>okR*[Z::ƹ8:8:RDGWWGWWG Zo8+ L&41!yYYAFQO23rrʉD$+xcgkĉX BZ}}} nDh4RRh 8;[ov]t5.xc|=;Wzx͚ٔ)˗NcKB X9kSԌ3g>=۷iK{a]Zxtu9pᐷdM `9##"#}^%E*GG[n?xX\ufY`]EO#bcO  `tT-EE6-&G[慀HTv%#d?eJ1O.7l0!ګQ*Xw~3ܷ℆z;S..={_AO0ҥBh<`:4>;9ujdLLk1 2;99vF>5֥˗,Oډsݝ./hI.WC$<P8J|| zcବ{;v\ 5AF`??(5jԯP(T"Pw.S0d>X7El[erH&; ő@ F,VܼYw5?r'6@$'GzJ(6R doo/oN6s :9Y0iRm[VRV  aJJ ><`[f8pkٲӧG^OMO7bDgZ}7]$0ϳGʱ̸;+M:kML^}ZKljee"QLFi񋮛y@_ϝ+عJN8 1j?2һUkllUZTVSjHdtD't"J$O Y7e01s̘P 1W3g]`]ˊGNοrek76de;u*>&ϤIzU?ήoߍ>:6joTOiV7?.Z=..IKJd@v\. C3R~eg2H)7u)JuLnut `~O=\QD?UZ:|j>áhD77g"_̋~h>{dcxbe۷=,2aB8bK&Smr[AA>uE޽/fa]٨TFE}~nꝜ%:w͚qݱsT7̻|y%օ7K'L./oj*M zFCCsHȧ۷_ te:4CBؽd#hsTVuNeIL3XpVܿ_~-N'uy\:%wuu6نOMAܸQ'53gD'NχL^^o쳓{\{w`jvme2օ8ǣx[whNeehtrr4flW[lWutD;#6|yBd/՛&PZ*k?|(3h8zokxGi;cFE"TR[kWWw~N4eHm:xVp0b"`jh4ҡC Ǎ6gή_~og>>U}waٲ۶曃'M`uiFڴiy>-02 Usаoq4/R B\@=wn,GҁsYocc\JU*_΍mlNN:Ai#\~,+dwq.1|xGo*Z[;/?4lXi?o 0/ի۷gO**&LZV^(*GݨP"B$yywf|Oؓd*4+ss[Z:l|gJJ4L' %sssrĹ"QU{H$% ]á_Jvq"tf=V[NoW(Mx<LJVL|fzjWV*q8+5}zT~??*VQΗ445]\h4CRt:J%$6`iꚛm>aHͽسg?Xq䫯&??-S>lŸ~O3oޠ`&bcYY;[q 6nӘ>< ݽw5|qN ] $'GL"9Rv_xYkoa]|r墄 k/.Fg_HR\,FlBn]$B7gPZRJ. -Lv@{_yxCC94D'VXԻW.9"ܵBOO_L3F ޿矏$ egm^ӟT))gd>v,˥Ϝ9p$?ŌϙF#>.AƺgшR)$ ;oy,|lz(h&g0l55߿_6Eш|…C`P7Y×- BXjqt `$%FDx d5grT55 2Q(,T EhDrww SD&ӅF#zx<<4tEVOO~َҥF\TΝceld!`ADy͙{+3gϚ3}zK<*9Y0rdw]ز7?l,^Bl,@t09Yu-f#<ܫX=gg/s4;DSY".Zz;{;{>o:f .[\,-*D`trr@ȄurZ.W5)BU(5PH)~8nn#ǗBqz&"QUZڕ;$)gǘx` X-[HmdzRkk;6,`„pk^*Uɓw޹SIƏ7qb.bő#mn@:-ƺ ˓8'n77#OCs ֣PZ*(zF~B^pxod2߽+A""X6џVo\QT%%?|X]݀9 bkI щ4F#X.|`<}:ÆS553f | R سg9 S,wܸg#uuݪU3f HM=5ga׭]<_MT !x4 :;>Fmg7_\B^&ӥ_?lrZs;w^RS'NZ7d)߅0V֮hllٴi2օtpjqzܹ_j~;Ư>es];,~T*Q*Ua]=F#hGyx4,U8pA ʼnBq㭚:jjt:h92(406+zƛ)VA ~Dl"%q~nnNX׈ +xW7t^-~@vuuDOh4"CAh/jm^-^6611 wsB2B@MWxС[{gՁD yd|3f c1c+_st#.4|xW_(q8nbq]RY[lUc||KJXWaN{ukd\pоX^$Ovh_>Uڴzјocc\n 薏|I${.MDrc\sp׮ &.?=}ѣAzQX]p_n|4Z^YĉÇ|'9hnn}/n:݌hDBc0-flՙ "QU^^evΝJz556LhcL b,?CG:."x_bކDr 77'`L2Nf0 Ã`?7bÆ7JccYY{`](K #B8-Y2l!sѢN:5á`]]{{^ꫳgΈV|͌Nñ5lX')źEPv>B >4ݵb0'5&L`߃092a @WQ kЮ`"Qս{---~Bł-oGTg_(QiܘDr@ӽt:Ӊd{*he/J$JKqD2%rmI 2rdW+*0hd2;2%b0kJM۩Sy 'Gc]ŒJU3gUW7:0*ʜFh4Vo0Ao.UݹSqN;8-,үo_Z3TW7KIYYv츨k|zRG* %%lPXҴR#"SR|ϧ&Y˱#?XB7iruMMcMMTz? kkZ=De8vYYbb9 ,8 `Z[xx޽?{%' `mIMGź.SP]+p(7ou>!!&~l||kj[[;ml{mAC8q;5:.z# 4߇eFHS &.<P8J|| zV/+SbYff~Io@v\.7LĄFӖWF~o*Uۜl8II!|H"{kkK_UZJtR 6Ȟ햞ݵ ˆ}n4Xb6 #}04dH߭[뼼ܰ@@Vv{1.\.=))rlܢ#ʭg2 ]ݙtrRi4"Lܜ\9rDkUB矞(6uQ<@1"|H;.޸QrRl%]ĉ}nHX*qpr}a&hu9/ MKI&SDJ(䔷v8:0sc_M,`F4N#,.=SYYo4l}|\.ǣ`8aJ4-{Wb09@""X*$ccғ P(Hѵw{^,~IӦEBoxQ! gˍ4+,C Xw}2V+h&x߾JAD;//L0ZZ:ޕ>o b K G@rKpp4 55RCٕ+ŵZ݆BqI ra0 If2]h4ҫ)ktW_j?o`s &Q yeF\Tx?'deݓh8ne2] 2If\ 2Avqy֑h>< >{@lB&g0-rh4- n*GjFDxDGF@6TT-8b8ljtAll$6BUqh4"F֮[knnybbȡC ](.f͛G7l24$퓓!#7wғ''GP&wjIbb.|s寿>y7OLKL b06tt/_.2oW jA*wpo0?<,#91t ůHTU\,+*mo<=%% aUV_SXYPrZ݆n@"9#T"Nb)6DUiiW22HSDΞ`. 6ztȌiIu-7wd`0^\kוK L6mZ[فA͌iGź.@RHSVW e"$7Md@ݧ쎍d@pQĉhD.&\.-(B-?R(, 6]h({dVݚ%!xѡUd*Lqdb?˛;7sp aHy,9NSٳw56^Tdɰŋn,;r${۶߿̐!}'Nhu@^8.))tŊ#cף>du>iiW& 7.?lm idorPcdogdƺ ^pv `r>K  `^  A[abi~~\A΍}z",ee2EivM8ٮl6e`ތlWÅt1Xjy%'GJM8iR^5,̠A<ԩ `]ŒJU|p7u-ϫiiW?5K&3gDK駙$S2FN'egij+yPf4i4bDϻY|h$*fEnv d|-dJ,;[,Ǒá֍\P8J N8qN' ɶڬ `0"B X3db2. ux!11}^SJO{mYL++hh &;Wphoﳱo͚ 23V>uÆFc]IqYbF0w ץKudϿo {}}scc l!Fӆ Sz~С}/^|IX^\m{h귰|>7sP T>|(+))bEI\*U!B XX>>nAA6ەáxzR,rm#kuU/z4*"G >u*D3,^ fXky.b[r]3=.JKfiӢ6lH Xc]NR! %%r4+UWutDvRR? 5 w]L4Ұ~^576882?ht^`}k~E"o8iڴj&L6 F0Mr=hͦp8HO`Ǐ5uɓ߿A/+,Y`"Z}zjwߍ7oSW!=ؗ%zA"!lbX,+~dP&:{zG?yS??;kLvHN$' RթSyf"B߿1iR+n))Xo( ЅGxZC^}WUX29$G]A 7yTt˅ӦEa] x^d*4,[T$$΁j>ti}haacxux!Ofѩh&X_R`|2ܧbt:hƍ<SRX,txTƍf#_nzm߾}>,ViTJ*\]Q,)΀ ``wvf2]uЫp8'Ncm鋼ܰct:i޼A Tfd9yѣ94)))d@W|y W8rj My衻{}V&M-K4޻W#k ᬼ: 1rH3߿׍0#55Ѱ-ri4"dI*=F*U OAFlleF1lovr͑#]*8E `yx\RRِZIû:5rʔkyswX^^7lX@fЅΚ Awy<:t  \0&vϯ!!ӧG7u@菾d=ѣ9F۝˥xt4fZY\ϯBPXޮsww eO#x<`rrg'&:;V P_RZ**JeER&S쑵tfх8 JtF#?VJOm;xp?LMyo=CYFƝ_vF#B|Lseĺ   zoI`s|| G b1r}͚ 1cBdT"U]ȸC"O9{v Aƺ(ĉwレWƺ ѡ7oNXJe޽v>fL?b]@tpŸ3ׂӱhX*U*ju[~~PX&Irs))|'K{Ft'3ju[yHfQQDH_&8(RܺU-)TZ[x0MϜbUUUNήV+5X–-[_c] qכb\\y3g3dmer?:;͚3kVL/s2YXhbb7L}\na^Ng(-ggÇ2HѾ|>+$mk lMJՂ߯}T܎~Gy<C9קS"`ΎO\\X[;i4+)z.T6ƪ)$6ەͦXl+F4 tt-Ev|~:ں;rgTn֬s ڵ'OX|Ԍt>;w|H T*Q&Sc]03BX(,+(il}4_?b-F&I2mohĈoOOW''V]IL$xgHM|V@ADlٲh骳cVO*\BqPBB<]jPdjL]QTfe ͦhDP8 ec߱c;93m+2Ql6e޼A T:h֬]ζqq#G lufiذKV^}lƌY~ɘ^uq&4h?iFd2P( w%áOy<"4K kcr[[;X,ngG߿ysIɁwxv4f :Aͦtf9h5w^ `w)|rb?tȤٔŋ/i'}ϐW H` ѡx&q'kz//7 1QQ[fd*r`  KFƝ]f,=iҤ~zBj!̦3uu`cxo~;sFҷoO=:7$l=t:w 2(:$a]0 2Z$BSnխ6L{H6utܽ+~U''۰0Δ)>>/rrKHBgt]Wl MAGoooUUWUWV*_/ohhF {yQl7W`!n޼A UW7lߞ3͞쐔ޮ ~޾}7l9fSGσt9|x?iٛ7Km{¯ "$9Yu-w|#!!Kܿ_YQ.TE Xߺ%3&Z0Aw907߄=j~kf?~{k1K{\;y}rJ$ ۶e+,< B M^^P( *Z=FYpVԈ(_OOW :[[<ߍ:XH$<A<dtƂ IDAT܈D{s23yݷo/4|a8{._>Bu/33oѢcc AXiY1#mΜO?cS"g4SvWY.EУ XWaZ|/]*º \z׌3 Eӧ{yy999 'NNJJJz,R?xm^4̝;wx#G:oȰ)((T2)))NNNtUW߿<#k^bWѵOy^δiH.5͟w`;cR@ssbc7;w75uŋ+C`(457ϝg[Nѽ6JZ}}}3օV^Xe˹_oaak.ݟ_޺u[nHO_|@ U]YO?_hQ4>>p޹w﮿tiŦM=t=z%-戴.477!!!`Æ :mvթ b/q8XnJJGǙνWXs۾hRQܷſu߾?9 ~NM=oߍW+*z{0^^nNNLJ*a]yp( X/;v`vvM&oRuE% Cniĺ-jQQ>[ʔʦ#*S~z++/g?{t'=6l&{qnu` $(ߢZtV$0q]~[oݺ_~d SVVQWW~T*’ӝϞ=;mڴl zſp={v BXXի.]O&U*ŋ? %ϮWTT B&WXѵE>Tk &55uʔ)O[DDpoOºzk֭{>ͩӅ_}uCtszjkgLiLO_9fN'""`]eo߾]QR"7%<G dZp#+K~vPX&mmZ770…CPI_;vlmm- bxF81/takOh"""h4ڗ_~sO>$++ߋL7=[ σDr|GoUUWT(+*О.ܯPv bctvrvpܼX,Wx3W, ,XwĈ[LML ϰtStlǫ#=[-h'ed,uqq쾟8qbŊ?ʕ+=<<>qgWkk+ l6A77ؿ|6mh J}`hʔ[16Xb6n<}Viw?h4;g΍}aͭ3gٳNLPhX ]=̚FӖW)DlqccM` s ~͑\u֭7K k /' >>XijjB=E~y #]xuֹ_pr܄={̛7snz[ll'-r\YQQ'ݹSqx.c2]4uLlyqpٽ{ΧXa8+vcƄo(9|N1"0& ÝNz^hU{Xbrt:y5q|SAza`rbE΂N<γ OEEH '􄞲^./Dly||w3&~amG,݋5U./_$%%=~ݝf[[[Cr}KoIȼjEELXij0өp+VܻwbzzzFFF6mDv211ן7o^EE+Hop/߿ʕ+暚;v@BFRB!zիWttt<AЀ pXXeڵ… vddd>}t:چVVVkFR^rxx J]n]}}̝m,y,ĉ{NkF䠠/۷ҥKAAA$ҷP ={fbbKe-X#""UUU-,,\lv5#X ș3g)ȑ####Ջ;WUZf-ט.XI$Lє-K2e7nD뵵ѧn۷ ufL:Qdd ^|\&&:AAo/8bss;O#˗_޻7ƍ+ϯ@@;m۶{Fq[,Vԩ C;5&f/vKN.7=ݶGq|5*ݺ}YtKgޞT EvIISy6MO.ׯ6lѶ!!!m̭A6CY[[w}_EPS f0N3(`#**L iL>&qq9X$& (55UzOLL=gΜQFX={޽СC,˗/6mB$55Ur.mfϞш3fgϞ AL6-''bw˖-QӧO///?wAyCTVV&r|>L^hQ^^^pp0AEEE25'0a k^RoQ<6++ݻwْ n2L-۶~նdB;U;wY֍RQQ9sLaa DbUUU uG ߫s>|ɓ'VVV86Mq-گJ)]Z4AP\\\eeeeee~~U.\؊-Kr 3 P(3sʀf+ SlY`B HO/ٲyshGn:ׯyj@a0o%@ GX|0o9to~ؒJZIVVIh(?uklq̘Á'TTTcE'nȣq3VXVCh$f:Fdv24(_ڴ,..npwh4/T }ꕮ.vppa°ȫ-ife~ry h#Kn3eAW:%+kln?{k-PeA?n3?ZB꺧_ݱXk'`XPD|}Y,|:/`677?{,  4xKGZ0 T_9BRoݺUPPp=U4T&$Fo|luÇNɓϜvb}@v@  [nYYYܺu ݓn73Umh'O899GxB:teee˼*X+p|AXܼXPy,K[YYْPLX OjjےO˝0 O4@ Ho\@_uSe2ᅲ0\YY)]2{5VݳgϫWO_vy0zE2̣Z.u_V44Hº$8$U]]d25k֭[ʼکu ܥQ]]?|q ;ܹW[DNj/]zc[Z@B89ʕk@gs^DJvٲ=龖?Ox<00Zy9[ѸF9s̀l5tqm!QQQzzz2_۩d+ ={ ȸqߏ * +p@}sm 3A{ML$cXqׯGGG څ8005.Am'hd[_"aIYY̙6]q>pCUUB:ֳg_1:+ ՒŇD":[ӧO}E:A+ B%:((Hr˗/97uҧnLFCS#z kuk>s /޾M} +`=Ojj%A\.W,YYYAԣGt]Ñu `%++NKD79)%hkkhAIvĬZիWjjjl6{ҥUUU}A?nJ3z"<]I4> Zlmm/ȥKo3""|u#w^ϟ3f&MB7U@Pe(mm/^;vl׮]}ݺuرc]eee2+!==gϞ?$hpWD&Wi4uöD^!˛^ٹsEdL֥ 55I&ݼy>"""66 24\qs_XkQ\W>zG&w[ܛ7o-^<]]]N h#\.o‹YY%r`+(T*k* \.eȑjk*vv ww ikcD"8116dfx5ݻ:9X1ټOSFi]b۷ݻw***rX1ҒY/JKK ..n)qS/2i]7@ L:֭[O>Ep4.\`iI6lnvvivviNNIED33=]SS]SS]t @n88FF_袗fN*'O>yxk--577ѣnjEb-Vzu7nS޽:  #ŽzaEssm`m'22^ M$UE"dOHHLhf/鿂pttlU4l mkWFǃ,M''v_xzZ 9OPf9}!h!##(==А`dee{+9V$AӡoPwyyy r 8qÇBPMMvƌ?>ui3q8\ %I(`l9N#;t׻A ڂu:thСvZ|yii)QS4U֍aƍeee/B7Sdv5ׯ?$2dViE^&&&iii?DJ`_6Gn֥fe7o޼{n~$RWtk#s TQQ7O34ns5k;;۷&RX0aq6"b=@a"))u~O]]([pcruW0'O>9t==?ZU7ÍII\zE'pt2$̙seɻlXc%-2_Ԝ9s~W4NJuu<==?AC$x{{߾};44tȐ!FFYPf30 `ٳ>fq׍m/>}3Ohg0nի>ϱ9<h^JyZ~:{3txÇ߾ݶfͨ"ƍw̙swXkP|@'}>͙s(ν2/ڽܼ [b8$$ȑ#qF4lp3G}wtQ䛙KAZxifFoQF_Ǝ%S@CCҒwNHqq1Ք)S2337nAD9su233o>gΜs$$$$$$Y&;; ---o>SNݺukvv6---&&f۶m>>>T.`ٰ33u;,_qhkע6_g*Gp80>/H$lyGV^??~wp߽wdVi#C:e^`ڵk###333={3o<4Yc(Jeee%)[X[vZhdwڈ  Z"/~~c;X ?zȃeaaϜ`h޽x/㖖64 @R)\.ܡp'O9i=zl1=w\W˗|1gɒx<qQ&*+޼akgmQ4eϞ/^ld[7իW/Ydذad?jR:FZ"EܹhԨQ>LMM}ʕ+.VD"ѯ:w\ KU c0}ŋ^؜u()i;k& C$~Q;;O#˗_޻7288밾d2ر[۷P(1aaj۷~ĉ9ٯ/Ç8|!cҊggb-MHCKٯB}NL,XЭGE{{;E͛9shO?Q?4!A$iK+9Çwْ@OQFёUT6C>& %!$$%%]srOΝK7lP[[[WWi&9{r4e``exxI .]lYuu̔BpȐ!aYYYӧOg0ݻwwqq{#G:ujT*)m$N*=ڵkkkkelIqh ^%&%7oooooH0L<MDV_5Y!!!d26<<\rfjW;iJ{$bѣ{GpDV#P^S;yW>K  QUU@ E2 %33ͧly]j\ JvٲeUUU=WftʷZr*۶80P,XW:c)Hܮ'JJ*0ᨉ_``D}]/ν24"֢Є}41vE ;j`W=ta]|B߿ލݾ֘1 7 ea|їly+n\d)i5tq![ IDATKic HUU_Ϟ=kjjF"җ-ʊ+u4. +ڒVT~re˂ƌ9lfN}mmsxٲPf||Neez@C>jmeҤ?h?O~ݴ)q;h={~ENŘ1Ұ&O]Z1o޹SO=c(iw˗/ð͛%{|taVDCYYY8]hp70o5 MuXC(l.w766[Cf:@A 9s&( --G j;  1c\!C~[`-!zirM466ݻ7gXXX```ll,d"*-xyݧ/1k- #syxS'Ci@z֧-[ƭ^= k9λwi'Y=zzXkTp<+d23sڻ k֓]dfd2l6H:;C[3:mɨ4u rq1ʊx%PEk+ :R ʺz*g H&֖P[QQUQY_Azzd2k@&)px<.(hr:0$$=y5<<6-HGG}H;//al:ӲFz/9mZ崒͛oݼk! Aff۾snn *a¶/%_ѐcG0:mZ[3f)?۷,,h%o*k׎ZHgbmݺ˶,kǎWC@A68xv{N$'ΟEFZ[XP-JE|C(\.d23YܸPLQbѿYnd5ZHFGdfuJ7WW Z8:H5#t&bYUUe)"L PU;a%t7R ::zʔ)+W>|d +@IIULLfttwib1B 8EMEJ D@ nnfd'&DDx5uFзԷZYQ-,-,or8iܸj uIE֖nkK/KddҥTUIGۏ{h{5N>"vM27߾=7]&q8zJWMN. tO `119/ο~?`9h2hn\8qZM[@cT3gZSad˖Y X >Jwryx?{Xkի?qBqRSW_*9|x̙ ځe/.l[N*\.k!AuuׯhJK+;B866;**Ç`wzz0,c? #hL%˗|m U#R0lذ;X@Q$I޽KMI@B"Xh݁MAPU%3;yR6fs?O:sE] MM5SS]kkɷ2& d2}>jX|P{⡋-+~,122~`<7ẗ́ njՙH̛7N\rqq3JkfHNNi4`̾}ll &LhhQ~~'_G.(h`LM>{xv=KΎX @s(S؄O-Y2l~~Tjw`H/_zƍ[oZ["%0 ixG)*|ɍ=yr?E䉚߿O/-qx<^$CA8@ +h,Ҕ͉-aHjK3D+턏^,4v ѱV?ttԽKK>rkӦal&O9Vswwvm}|^{w7BULfƓ'_gE'|^NWWcXG:ǟXZRGZ`gGv*@G,y4mZ? ( 3g>cւK^d܇Rʪ?yuB;'vU;"kw7zyb-G)10TU'&d2>eUH;;@WW ]5Jm˗ׯLfF}FX1ښ)XBWVT ++4$NעR) `<HϞ <uEtZ`/4cVr2/޲%z>]w2XgA ׈8OF`X A5|p8##U4&&l@ ,a99938<< 2hf''foo,q@лÇW2nܑz>Ɯ9XQQQBdd5"0yr#ld0Νug1Tp2]]XH]]EOO#'k!s, ic> EґSznѣGmޞWR(ݰr2)@PQ!Λ7…׫WRS#c-?O:{ձcmm[ux܍ofٲϟ/\X k9 JpX7&&3!!4ʕ#͝L}@APMӧ,&3̌~fKs|.]\~NNi^^X iеi4Wo]Biixv557A "` pYZ_EEedg.uv޵6H06tܸ#Gڢasr#LMu NiaLpPQQPh臣Gggxɽ ^]zOTJZi L1h0}\plnNN7 EijY[ll LMuMLt 4FWWڵ߰Ow ̙.3gx5_[v۷̚ufʔ!!+t⯯O))Z<+w|x񍍍.ӦW:3%FqcՌ&O>qjcc}}]9++vbb2s0ѣ7oZa\Ynm 1_;`ر`uX 4 p+ ...f;2(6_B}= kk D/Ԭ8;[TYf`(@$O~1gv y{ӝɅ6 44Buuan"166fJQZaQ)]f{._><88=ĉNXk8={xjMM5y噕UhŢ"?4J^:k>lzӳױcuBQ+akUnn~~c Z#@>WH\YY\\W9xpu6G] 曟_&lT*H[]M6>FrrJ JbD=pޯN9 6AAHUUS9X,=UUM|sS))Aswe&<dmǏgl߾r߾W/^$6n<?n\/29@XVt%4446&1QSaL8A (Av0M71CPTޒVDrH3_`20l_SSMSSƠG">LCCJWQ!Ai4KFS:+RCtst4nWa3ɓgμah4 6606e :XYQ##}}}MV"@K13۰c+ƍ'O>AO太L ]5cƩ3OߺFO⠧] lHJ*t3p›޽K[wMYJzN}=ՕC"u%cXn}1 #`oHHZIpH^ׯSn +(({D tmqn␐1?m֭O_{fZABO0AD"aFdb~L {4+Q?oW޽K5mϝ[`aƊ>{se9GV)<_JYo##K+]޿SWu.r#7ޥy{de [D"890&&ӧOKq8o_~3u0.df011_8Cggss77k-- tN.Y\YYi`Cx4‚*hXJ ML,@}4"I op,Tۼyٮ2oAfe}@&Nt:|x|T"v[>…Er̹"ys̖tѣkk<WXXWV]ZTTQZZSS#hu7Pw$~qYx֖~՛7?5S߻9(b1llΝ[0nc˃ *$f٦ysu+UWן9ĉgyp8 _oYqdq_VV _!jI`cc_Va l6dgfgt`hn`lkKW ȩS7vó(U~zу7l--)S͚`RZZ}^ZM'N!@,F۷O\d(֢:l6gȃ- r ㏑Hu[Ǽ1Q۶?#@X~ժ+^>_v5p%4\ʊfd}Ӭ, ud|~~ſcqh @ׯw_jΜ)x3 D*ʕ?s+062pZ''v=W]pϞKޠ\iII>8NXrj`iIуfeE6ZZRc~,:QA, ޭs<2 ĉh ;wɫ޽e˂К=ҊyÞ9{iBUy UU-466tȑ}%G. *yد8 IDAT}!P(Л7?n6amΟ\TVl ^D3mK +/&&3!!b:A{4DffqTTzTTzTTZAA OA ϬQa6_hEEhL5Ѩ})Xyl6'%b奧0D07wt4ؼLMuհaSSD"^,Fn]ycDTtiQ~f{7v+3\~}OAP(.+#=Jx<黝H^GG27׳c陚6e%os_f>GO;)%ǫqݺJJkj AԭJndӣBPHP[GGF8fse^&Hʊ傕PT?dh+9ܿu4@A?QmYS"-h{XgԻz7SR h4 z#[[t@X,FD"̝;(0pjsCàJux99e.# zMwt77VԼs'4H'A8dl[YYW^^M$-,FƎF={!z"yΜRg/pjjdKqqq2h`ifkjghmhelchm`I <}9Z!66׮ho;m<^-AD"D{AAŪUq_]]okK9n({ggE})_?}qX7~_-hR(THyp !ި-DcD%"л&/\2W@{H2A; <|}=Z>4f nTPQQ3bAWW3gYRR5w_׌᱾q< <7oX ?PLf&#QS :ߧEE{u#o6hՠAVNN&b~^^y~~EaaE^^y~~yaaEaaEQQ%D"h2Ztidnhu\(gdXl6:Q矣5M m#nnMƳxךSNNŋoDowUFn2=K==TUաu2d۽9Dڭ(ДVTV~fJ&(nݺxP(b1A  kjjF~=F i HīԏgV-ygᴴ"+KI}FjhZ~{2g@Hkko5tt@4. #jjd}}*H-)*-F3QQ!x@$5ja<4*߽.ySrc-^],#r›_~ $L/yYO$yfrȃpwwpwn"A<x7' A "fH-9!fsRR /{wUss}SS]kk nd r6..((ЀhUhjմ1An:Ӌ$vs^Iʷb}f ճg;85PᗠQQK 5EaɅS9` k47uOZ8vvVYY5֬ɓ7W5qN͝8Voݾի-`F}:dgdǟI@iFD[QQ]RI$¢EnvM)&߻~=:&fXP9~=q>>훮hݣa>ϯm@ix: h1c_tH; ]}6mODk"a rȣÇ-^<_&cA1mڟ666["dfXehKb~A:uuɻ_oEAAya!/7士8}}`h3ZtEvjH痳A$\^9:qE 񷺺_?3//'/h8)pԨhJ"@&N;W{(;H~~pL&W5oޠJW\/,䕔TJJ*%KUZZjjdZW'jˍD"0ZT'Jry3g, Aеk*+냃޼a?+,,VnBB~m@|{2rr2ma[Gǝ$qݺѫVl쀩(NH// JXXPH$<A<6SYeDCN RQ!Z[3^NDcZ7os=99e? ·j5 ..g˅" A8{{ӧ K߼a?yիHܳ}-ףWZZ}ɓNtWW~dX/pUQ!jih4E[[L&@N UUՕVs8< TW51myQ>v?f01L;V¼z5F0b-D@-_ %_4oy5E"d mP*~Ϳ~=Z@<BpªzI NOO}3Zt&FsaSS{p8hKkK-> ͛ ٸqd?BWWc ѣnjŽADD܄ bY efn`\( (TΎaQyyyye554.yh@nSAP#&&V>vѣ=={92 twJKޞ;3]׬sZBddlPbkku(TW{x65սzu\y "W=۶Mh{nuO]A_ ?qb'|:^׍}ҥXkQnNxk!0 w|>vI^^٤I}֭sB|y@$JDDo/юt|e˸իWHxŗ޽?*>Bx3Lf& =~[7#"ܬwdgZ&;lOł%:rNI\\.]Zk-򤲲nĈ'OmcVyyӧTW'_R_\: .`d/3msId23SSQ~ͭiX\rtf#','%VN2HkJµV0SS]33R$Y qq9ŕijN_kkZ^Fغ[npЃGZgl`8**jyy2Gy!"qFD(U!*SS!m5557o{8@v{q8h6+G@$32Y؜WRq vf66vv lW*z5Fb1b%&i4Jmϯ=<rr/%%N& :aiiem=QSf~GX;q8܅ >mܽyR&NI<}k0kfhRG(T`k>EBk5(OsQQ%68?TVp8 N H]]20FlPtuZo\ZelV`«W)kS(Μ߳!rr'̘`ha-p]w.]ZoŰ߅ iIϞ,~˗u':z:;=;ﰦ?_F ,2٢*B]PUֺ~Z[VkmZ ޵*Nā;$q6E@}\Br8ܛ{9&??x0Axc%>~Z0P ̙NV>Y^M6P~Z8@  Ox$gӦb f?5]VX(\8ǧ^.u&?WI*L7n`.^~6fdĈu놃SSK/?Ym./O3|ueRݼ ۷ |V`ڴCUot?z5޽EPx_>zxSx4&mߟj֫`.8#ި=,HCP4 q}&iZnkoZC @hB۷ߖHTÇG͛덂k/ׯvz;.zl0]7D"e˶nukXDio zѣ,yf+/V$O6{vOh-fuqq1/\~8lGBAnk֯1|xk%l޾}̠Am>f=rfȐj1vQAޟ+W^̝{<**xϞpJܹy,*݊b?SRM&3E)-[ۡ x>뫫d@}%yi:F)#"!!#!!rOO}# djZR"bٌRxXv:Ust\+Eymx (oturr@Zh(7oKfH`6OZ7ٺu@hÆkiI:#`>|@zu\h~4WHzzŀg`A_ks'&. 4<oj`0cvXzm CD"ebcׯֵ8q;vkeZ @ 'J۶T*u#G= /)S]\@Kްpի/jÕэ_F?p i m:ի/{0_1`{md2mp?wn~B…S`?0;vFj/Ccѐܿ?lU#Xh4/ˁAH`ܚ7oMᬼEM ьqCF-79 H\nffHD"C., 2S3_Z*UITr2e25 ;g,Lơ ͗&Y ~+g-(4𼛛hz:] P mVV%,g F_T}'iieǎ=4ksT{Ȟo|ɒ%nj`B Dէφ`F|4+{Zߤ sqZ!m) IDATnlzsݺ6eOW|ۦMm 7L&ر{ 7o.֢c_:zX[@  4?! #mm4cimkqx Ϗ}X[2p..瓣[Bpz#p8"Lv [ t 7ۼOXO& S(TV_-w*( B3D"68L߰0.YLLX|B$RD .W.)B%/>.D2$͋$1D͋$2D}x @(bT G9j0T#w"Y.fg5j:#'q5.=߷/17 "mgEYW>9rAys1c:Q +4lD[WW ܃T*^. rP6&3D"1$$RuiqBBfBBFn.@رillxll8Euu}MA @`\/-UVJ+x$1ee|^^I$*ADl&̦M M?,mAQ*u+W^i9sb'Mu!h3fOAڵスvxVر{_>"Zԁ˗ϘqdʯƎdGf3Gp:9g}u믝=;];N_ @ bw@@,VRPvV^,_£GdI@+`0~4M˖ 8w3m]V|"#%HΝ><#t˗_8x0:5Vm@,VM| #bǎq={u9" 6,cǦ6SR8BTڸ1(A왒уyII  ƍB.BЂ1"10GuwwT5ǓUiNW ?}h?&X%xy%q'@G)t?Gdժqql[̴iRSKn^`ۄΝ:ݷa ĥKg8e˨!CYqO Y06jxdd'D&SƮ c92ڬ֭7=z @ NKEd׮Di]'Mk듒~D9H0`K&GںHc0O]{l6m;;n#{#4/6Yomx#)Gk ~u꼒ʸ͓',^ߊA;wg8$:<0GҩӯÆ3M"D6ѢGEy)=ycraiB\]bWWooBP-<ܯ}&ӸPZZ9*HF,ng!LrV,VJ$jD%$X BR,VDJH)׻z{h4/ooNPrX]U}eQu;m,-,%I @M_@o$ntcgϖ)9P7-ŋR>_[m&#d2߿wÿN& =n\ǀ﷿+-رg<`l=qb:C|EiΝѣw߻!JVZ*BK`^5=x Gc@F\L Px2>_|9/B$R[P, 1^`_c2I4Fb0 ýy3#11|i&W+n˵łWBpmq$}`x Vk@R屘WKhLuP$$TvL=wjZ~:t6m|cӦ=o0@&S\yĉ^f(U%bG]6ۼyj@{_~C' ;jTUGܥT._kBD {l<ޮovE帜:pFa`ګ/? ]|P>/v츽f_͆Wȵk/'O>x?olZ>^3cFkL~)LHyj?;|w{gq x<}SR^,3R~##[fʚ0T+M矩ƃhd2N,V ?.|%Jl<ΝmѣwZl+f9oHpaNnH4/ ?kqND"eDӧgud$@ 7 `'!+j?mڔ9sfjp|s< qTM;Tօ@l+V\ή1 6l7noN 855jPv{Ǻ=n^Hyʷur9s=:G֭ ROHS>^mۘ޽[ںO FeyZZyJJу"qk7**Dɯ_5BކNWPh@?@_"sT=}Z^ HӦЮ]l8@'妥] A '2ҿ JN*Udj׋.BR T*7X x{TG#djty-(%qc7 >O-f~Mx5jS3;wiGF.7ĉpl6ϝ{ ƩB>1cd˗!wWiaâl]TD$z=;ہfuDzXקO…}m]@ _@؁II)ڶ͛-ZΙӳQl #l]Ca!GRRԩBBOf2a4{}a4))EN!STZ*rssm҄ _CsRw tJ*( dMO^V&hjۨaZ!-,%(11ѣ em3cz=4ݸ1Q#7Ad\~ + 17I&@&\Z~׷&2$8-,=Bу@w |˕rᲪJ++h;IX$6JENUK*T#e2  g@X5ztb#qd2BXd~h$<ssy\ >??;SR+:7!1,` чԍ˗/\x"m2*22@OydԨ]J.>~Z}d}%%  ]bŠ#7v5kڹѣSt~Fg_~1>ݛY}wr쓹sӀӻٺ{4a¾k׾ɨOmغ@ ȿCn~;!!#**x/bcm]u;X*QvQQZS?ذiiޒJ2˕r4˕2dF4+7P6X]m̬HJq:]uP-**8:qQ=΁0yy<03*/˕H`*O$<==}"t7nۗRԤ sĈѣ;8z`0۴Y>eJscjSE$7[+$8_(*)'re< r'*Xd6,l A ],V޼yfÇ"38C!q* HRVI"Ἵ d2t$D8 W`O;feU*:Myj `8ix,\x3gfnhZŋpϞmB @ FRRu; Xrrr޵kٺ䫯3`299_~|ffLL5uE:>{6ʕoH &/_~ƍ']ŋ=n c׮k""wo h4Ysuǎ3gXKDOq8Eiieϟ F8**8::eK2W 11%$(+y<9p|QQ"`FM"1:F)#")))z0_ԁfڵkX@~E,*J *+*|B,V)ZnT*K2b^[<`Kڊ@C*- D".4թS-^(gxQW{yy6o "~##;yi~/_۶m#[W] k^;099" nҤ>>Pʎ{xjc^-LC/pZKsg5UVHpddE_1Krh/%IP|N'býy3#11|AZ+<&&Yj4z!X"QK$* \Q(2Pj &k'q$Nƃs}/ bu7haa>N2A.Ue=/9qcmod25x99|~EA, aCBX͚xC'ر0{[毖-6oݸ1AF;von.̙Y }amݺOLL!CrMfsz׮mHΝK3'~~s?zT0xӧguԴ>y _6n /*͛~{'aZ> lyغ@ ȿc`6oܴƳg11 k6EYݻ}.h͛/㏯ igZ HRRss#F|>~_8 1ÇW~G"}B)Ad8plti=;O moU5:t /Z6uQ*ufMLu9h秤q8NQiݵE H~Ph~zXUkJzwwW Ad2!a MSu'CP_"d^_ݲ!m h/ *.#1H"۬^?'&h.WvyhO͜ytժ&Mu- Néu@ Įc2o\ZzzEϞ-ժNbrӹs㋋۳eܻ3r䮧ONrwbuL&_XH81fO!>}p$Y>}Xjqm]rʋs8?mVzб/VW!VD4~>L}d8\\JJSq\l:(::Z1B/$dʕFlo:4h+fqP.׀X+\o^R"JJMJML̕4WǎMAsD4 Fr R4^ D5G&d`b˕D"fײ?aUU24 4!lJAׯTmŵ _RY"~ʁTG"بz{cj Z-77tk|~ޱc^Mӽ7G&yHgS]l=aB-zJ .nS` mVY=0@Ǔd_`Y(TZFS(xd]\ iaTޮ]^ZY`TF`4cXҁBU(J՚-!x'I"%q@0W W%H( dJfCC0jog:7 k^+:40S]mڽ_۰adHAB4hŋsxpIV]zhiPzXw yl-Ǝ3hP FԓwzI._ۦ{ҎHqpР-!!osڧLRR1{NOq"99wTk@ 4߅/h1~[U 髽džc͚+-)iC B8uM } :q6!5xms,W_>z{v Ę1{9vlZ޾{=|eպ ɓI0#GǓq8E 5=d2X$FGl_O@NQ;rRQeX7(f&т CXXy ]Ąk6-]ܭIm^F&h4z˷Lƣ3[ p8X׽H`J}Ys`0++CEKmHMPINL̹|3r6;:I…>]N99'?s&RۧOrͥKOH!Cڂ]98~g>]^OM|`1$thaa> ~'ֶ\:,AlFp8??jH}|(Jd,`0:TVT*RY#r24s4Q<C[ vLQ<7 "Dlp0òQ`!';oޟYY>; v&m޷obCq:]uZl199o{Ӓ#vvl׮qL^3PBr-d2ԩ0坤O-[FÓφ$?ߥo7o.pѶ@ 4xM3'iSj\o/lֵ8Cn m0օ@Dcǝ{z/X7.+9x0ysGL[FߣǺȀݻۺ7ʢV1nh޽[X1AŅ Os;5(|~JJSqaYݵE HNBF ס  8%@ELOOwk ?:DݺUU%%<۴~Q[5djJ:]O2 AL/'qX,C,$ N'ϝTLES3+4=:gzdءЖɾGlKh[q'Tf3E}AAĠA[Y,}|(hk/xϡCMӨߟtKcV'w s԰7KT*]-a溭݁`ޠR\PUUҴRZz0$&D{1D:H,^ DTֈJ|J-XPtrV5h4zLrZmRKb1D"17B#jb'J$jA0@ZXysڿ/n'Lf@^^.rUU IURVQ!&A\]] ?LJKR|}&蚬\-.X:`m_NG[!ڴidx+XG /Cx;nox ;:oޟEE;Ǵ!CEE7ъjqtwߝuk$;"rvȐmj…1t^m22*ѡC={&Fԅ.:zt_u-@ }a0OltC P z޼^ [pH$NjZ ԢŒKֵ@"5W\yѦMвeڵ uE~{ڵK˩VQv:4W66}ۥKf:c*2:c67l'Ob G0(gJ8´Ǐ r-m*0::b.iƌ#:]xWQrO^PGV&f,__Z*z0?99/99Ǔ{z(tNXbz`?7G mQuಲ*B%b 4M3/+ףBX,&0@ ,zYӈ \. ʯu=BALoӺukfuL} wv ӧ9G>,-EFL3hPs&;E[ ~1?QU  AX,r>-ZhۼOӦ,G#2nxd2ؾdWWPE"P[<>*X{`mb!xrAH$\Fts06EuyLO6…}Ç5kڻ71!a~ w[JGG81{7vo_bjؖu)*|PѣohFgk M@^GЎJv܆dgW ="ȑ)uH~!@ h jG;vUÇG͛g65ZqںG"+/~ukApYU?. `9rWY3 9hJJݻ?5Qڸq{lJ晴sVg>vVuÿ:<)pRRM&3Eott0j+V<>hEg ap!kyM&TIM"TJ5ǓK*P ƍD‘H82A"ո`|{<`s rr<7dE Cng2I'NLP1ֽJڹo1{mb >=N^,9rWh(ȑC;hnG` @ % ȑ۶6_wCN!?gBO ΞmB `iu0cFiӺz'?kН;k/'O>x=[غn7n_j26.ӶmvJG鐑Q1n>sԆQ*uϞp8iiZ"۪U`tt0my?sR;PfoEڄZFL+0MZ"QI$* <3_NWmF//O2OT-nnM0f\7WӦM;Rjo΀sR]]] j3n\' 4Mۗxf&I:݄ OkM?{=Z\]ȨPnneʲDb ߸!kh11]AzS*u|\$R JO.)E"'TBϗ& 'AӉtId04&h^ $9w0@Ao IӦ̷ S1jNtJTZJStA):ΠTV4J˵jiD" {2A"a e2{,8r IDATbm\yu 3*'p*`0Ch(E ?(Yt@ڵWׯޮ]+|,'(.޼!Ç {N ←M+ YС;ǏSߟg8y{0cCxtԨᾇM ?5f:VlB @ ` Lڻ7uҤSt!mpC7n/߲e q$zS?<օ@F@֭7f>ujWxx`Ĉs~}o[ ̚u۷Rvfz۷n^X!"߮R!\bwwHǓq8ENQJJQzzd EEGFDGGD۹?ذii#RcF&I~d^_-W$RYjGbJ&S[@R4JR+0z)t7r~>dWgFSFFEBBFBB˗X,]F_~CVtjPJB%/ B"Q/=LAѼ||^ "5CiAQ &qxXiS{jJ˵jD+5 bYT,JR5+`xO {X"ѓHĒH8 †D%=_=' B ׆YPa>:p8_vrࠔ{9G_t=ԙ/Xw䌘ɓ O=lw4)^b-?wA?Oz߼<ӳ &NߩSȞ=+lمO/_օ@ @ ;ﰦ7_HؐF0 8nmXjժuV[UYDpkmUԪ8D@BHIȂ8Ȅyx|B7/{|ߪ**|ΜA /}w;7؁ * ;Lر@<{dIi}Lߥ p\ {L˭G 2dGhƎAdd݂}y|Y1-50=T.W7DcTFA[V!*P>&k6 ҷJ W//WT糁ޗFc}K#҅bj.ǎfX>A^+!!->ym:5XDW۷?$/L􇶹sOVV ^]l@ZP()*ך=3h[ LH'8cxLʴQnRމDR*<`o_L5CL>_b X_TV dA=%0Xx~X{z2Jw"Noo׎=ݍPcMV bFVS#kDX,5P( kZPd@U\)kk-k~>?\d0zR$2 7`WT*ui)''"/]gd KK //׎=TBN$*ءdM7׮F[n2qԨci9'` (KuO刺^BI`ӧ j*!?̙y,˕#F1ٜaјP^}lٹQB~}M}?ON^o@ @ w3g;9Ν;p֬S{h lݻY4v fCNNŐ!;_D2v,Q{sR:w&[7{o^'\Ll=FG>xpqݍZ^r则3[b.rF7ߜ 2.\jӦ bD"%W";9vg\2$-e2EE_2tRB>"whTWW5qϯz6[}z1wvbX۹8шTxړ'yoޔ***߷okјYY\{PRQjh(}NKf- ą`fdefʀ\#w=zכLH&Sܹ<);:IT`h SϞM$#Ftۿi@rGƎE`֙A/(`+*?dnHiiEn~[P~YgRg@lh.%eӷA*lX `ooW0r1?dR%JȂ_ E"i75n Y-k^{7h G**j^d L"98 ŅLv&pd27_G UIIՇ)eENPPx*ة 'M9L>f˖?GFoE$,nxhQ|FO[tEʕoEff;?^_/:!/=>~}۝V/Hml43!aaǎ9vMfΌ &}rBڵ ;@ ȿ@!(-=gxܹOgH\\w326;ʕ˖WBܵ͛vB1vDmJqEn-7[[]{?tXpo{i](L.Wqٌ[L`E@IWޮaa~&bVӄ>LP 4J_.H~RP8r8*!+?lk{ؠ]\]]ݝ GwwGWWGG77' P*Uoޔ=}ED"q? <<_?reaa%q8:m`G`{ `(yURhxj:<|gu޸qcisRΝK @#2Rݻ:N 6Q94JgqׯkXϜFchׯKDHAA$7RRILJLJN.PN]PLE"WUX,>#blXJ!x_{lH `ݝx#qwwruA0ͭ``0>>ޮRxʌyRH"ep]_a>ϯjkZ2?e"h:*a{gg; ?Zf  ^EẠy5T*a2gkkگh9J|JL0J%z{1NwW_7<9ԤN} K9e$+~z]ꫥKϚÔlƔ)1?tޠAۖ,\dbc0/^OT6lr~2s w/;6h~v.P@ hϧHٳ3F (.~jjaν{5_^(?ҊƌfhObdcF+6 s)11kƌcyyZ?~Op0iI: \޽1(:ujvS(T婩EeϟPAAP߰0~M]OWhJf/Zߡ;ј "iX}|TXJUUB&S8Qe|\qU{D"loggtnnNZ^G77G}phIIǏi|~S>""P 'tжX992h/ׅ7o:J_MlÛ6)#(J6:פ-Mҋ\}m|'ODigm޾>W r11}#"L4ΝO~FML 4ʼ]n/ZS#{4/11+11⻻; :k\qHȆYÇwS?|rL˗11Gt:aأeeܻwWAocx N<8]Hxlߞ?_AA P/޽8xի:t/Z4{BIkSHN.}_H `y0}gg{4v vARmk)SVimc'p.oO ˗%_|G-\8X1>l˖?sr`_Zݱuy`f  "?>m<^_Dvf VGI T4S[XBVdvvlgg;PJ[0&IIUTT;8=`5"jB>htKSΛ@/taĥ8H'@RV%V,^S҂vn.H~߼)NN;zoHg@͔]tYo{**ϞM>u)+;jTY{g6HzګSfeSĘѽMdQݻG1c1&u32,Fv2$'7y^ݻY/_[Y ٬WR6[PY)`&_Y)WU DcK `ݝD!Bv-(`+*DU:0Dj>D"oP\*)F(ktÍ+5K,y#5˫ J{J1ʹ\1DR ]P희U23cc׬ ͈OP(٭Áԥ͛K{6v,@ @f{ؑ8/ٮ޽sgc12yrҥÍPΝK;bt 2'm v?Z/?/_XwwsǏ״`_߽+Wӧ4cotmʔ۶M2?I:%0-0%07R~aa~~UhDKPPQF \xbCL~[xٮTU?^;;^| v״SսA+Jp0( &4J_Fzn`:_H]Ym``۔jS]]ӽƭ['FG1n$*Ӽ8iR θQ/D,&L1cFxp]DGF:5؁@q.hK??Ql\10{7K vFFJJG4`~f X,Aer%֊@qwwp<ȁ h:MIT˭rE<^ x 0}88pR8=]\' ..L6XcO}A,)p:$߮Tg7ou;;"Hs's֬\ss׮-Sݻo;wЂ~+s'sSF=07!CvL矿0@w.W}???0hpL RWاOpb4 `sdX @ `]Vo{;u"-Y2l̘ps %kΜo6\١ê}ر@{і  ={`q4K'O>woL Z=kV\F=1qYs)/uҢ iBaÕWZhi %%´"F[vD <1j F&\\읜,,,*+MjtmC cZR[: eѩ9":`wo?ɏX,FuFcݏaNZ(}0;CƩ?LA+J޽ch$,J /JhǏ?޶ׯ46,ҥS2wXH@ qu\\RNNEHgLL߉{ƍENl Py4dh4fi)WVYsb`NReqbbvR-#κC<<ѬVUi$|6D"ZXd$  ՓESQY)DqvR @Ԝ-F+)19BѰ01va0WwqqT*Uڳ8ӱ ֜y>9mrKeK^DF$8f>UmukY3<>eݺ+cYU% puxtbbD VSdw|gv ->(J;E$3g.z(82eW={;@ {X7 11+4oFF;"3Cn8eJ1l Oo':~gQQy$/&ȴindX>f]T*?ܹ'-,,т}f8VP= 5"5sHO/۷/:;"+߽c=yl:u",d2_xUr%vvV(HdUUj %#WWG<>7RDVZZ\T aaԁ;#7+#gdee;=vA˕弲2nYNb) >m=h,+$99J~XjZS5H~ۧ7Rdΐ]kgp'+!#رׯ7YF++{4{o4|@PSQgXuP4(+>zD{X,RPo{Db h>`nH t޻)p^W?zƌpݔTj{~]:zg6lpuSP9ƍou3ȻRVƝ2 my‚vīe.Z/Ty#*؁@ @%5_~4juE>?t30wfΜGbg.K 8}+n~;g+Fg ^=e9BY:ۂ}/^L[RAvG$EEjjd'O~ݥ |P^ dR+|CC}w6L KK9eeܲ2D\:`<<Rx5 E9HnnND"@qt IDATՑHĺ:~L{eV/RUD{r@АQF"%@gAU{{jbd2Il@P\h|طԗ4K~5!!F1>饣Fo{1d„%%`j;iR/D{QQ^Xq;w2=[V3@fNNey!!`;wfݹNp i`T, RUU%_Y)`0lAExb e1$C&D %q? h%rR4!(d+BpUª*aUR"booǃ RRDRXf 2ne颵5DrPp$ #q L\"0Gј:Sh| D"߿=[L 5vDQ^^+7:k֝=;o ˎ?[n%ߺֆ dNss#FZŋvHn.sCyF)Og(u;<<`imu L#<|)aK@ -DV߻{ׯK#"VAƎG`@̀C9իMAtޞ=Υ->vl7cGF8}_ܼ`X̛lו+XO3)J}W-~JmuPOqܹqq_MgZ~33*547,/4\3RF~[VV9:9:8ؠP*V.H**5>hΞ@ji^9̣uMNR-)Q@ zA<#IJNOQcECB( ztJh` j={{~Ķ:1𷎖Fc"[7/=￿yk cFFY|llu93"(.m:(T #!aa= J*5K޽cDR}@ANbbVbbVrrJ&GFv ҅#*** `VTTk99zx8HBX ^8;Pl &' cʐ :`~ LյlRZikZZZPJZ,RGb/0baa;Q(.@L^^d2Q7 ]&fhw*@ YZZxyy:vԉj֕rs6\y4еk9i-ةӺUFWrܸ=AA۷GV7mcGTtt+IGEf}&1qRS g8ql(e˗ͭXzܹ\5_?؁@ @FR߿sa:-[6-fؠl]b{cݺٌW;=~ozYft߾Q[kbǍꖣVxFe)nXD"?~|V ={6 |ݺ#GmRއJ*?VZRXVE-;u"ee AtrT*URkWpvvyMA;"d7n`4'OxaaԐַ1pkPx?ARNI Z\`V_^HC 5ߌ 7lGoW6-[˖ 7o$7nKɩ'5uſtɓO+*bbF]Z1fnoo뻣 8}lKHg` S'>Nt55OY,Jt~H,@{b ϯX[s0hQ(NuX,f1LI ;FUA Ȃa>QFkL_r@󢺺rfc sEX!"ʥREMRiJ.-dg3rs99ٌ*RekkE< cGs&&f_-X0xɒH-_>QԞ:k`FYLfǎQQmH%KܹyP] ֯Z7TJJ=< o{Ν 80Xh:#Gw׮^vM  ;"H3:ˎ@ =-JhT[߅CvڹsW6Gx0t\ H<|x˗%۷ߚ8q_DuTJ-..^^;bc=vb \hB!mپ(F 1J 8,_>|LsV-=-56ݻ{O ~(}2 ++Y,!0^E,oT*W}Hd[[+WWGww'g77G D$b_1X3U”$Ç9t:޺gO GDP;wF3-I Fcj# R ]PtxFmw*T6B}ʕ#u.Ֆ~]L@;}z^|p8O0_][+4^{/D,&Lwfz4YEC,,.<8iRW_=:WkZ] $62 ~˕H1IԜDj:22822XRgfғhwf-X*,oguǷlm@qfd lAZZg@ierqq ޮ@ A?%T;`a*)h祥\ a0 ,m劫L&q"G4(XZPј\(jMT[ZZ'`5A?yII tHsg퉌 ?ݿv͟_H$UNN6.ussr:o6-X*Uc*v53gy{߾…P?.\H]¤I;vL6R@sѣ TT7nWWR'X;>Q@ @z7 \yګݻtݗ,wǮ]oHh1uذNk֌6v H$%Ѷn3#>fLիG;"3FR/Yr̳gkp̘RΨQ<8h/ ?^OM-ukY ML̚1XaD҅ HJ[0b$UUׯKRSRS ߼)}|[l.rfIIUn.[Y)VUXZZP(JX[,#D,,D$bM]2 `O?M0dV"I_.yD{BYtD@ӧC4F G132ʀG]_C$ ׁW#k _m˗\1 b&LK `E"kNzUNcbFGvp֡z̙ R\15*Db{k֌93BC992BO) ٳĬw3kD522xРGS 0LX{0i8'i|@ ).`ElRF[8HR : KY,#1*!Q eH8K$ R mX??w7Mxz4WєOVVyM .K:tEqqƍ"#lH@ STT:))tf8lt7?^f[FY7&@ 9sfnN$Cv -:ƍg`~߲E[7ر"%%Mݹ9rd͔+ʸ7v @ @'˕.}R8~|eˆCgrݻ- qڵcbc;aj{۶?ʕ#==]"+=Ys{6v8fǹ11GVptwDҮ]w23n/_ŋ$/%%35'N|ݭ`EIIԢ'rLW\8XYY:zzA@ npwǘoGx֨^K7v Q[+{~33jXo߾-P۷tD$&3 Zs@Rـ!kGq`ZiDO_REgd_(h{oHE>ʈ_Μs;yS cbjPB \}m|'ODig^/?M+u,hL~FF%@ kW/VUiS*U/_'&f'%22"# D$B|#)L>//./ӹ F5Q㽷P\H$g^$cG_ZZμ>LSX-0ȠAy !!F$%֯B.7Zynw3gΌf RS#;{6\xeˆÚ8Ξ}h5B$0pM|!C *֭7[`TOrHww87r9'ϟ_`bȑG?tĉ5|ǽ{ٱGim-x^RV{.oVqx<ԩzͭRg>{`T[YH@꫿|~M^ < .*ӹUUbXyجݩCw??w"XRyx87Y0q@֭H] UvvyRcZJJL~Y6BR#}ʔQ xtWc)o3D ѹWPWc o8?|Wte'*͌Ds=mZA'CZLaas)g&D#?qgЦEѸq{{y׮4kb*5gi),zX,Rz5eZmm`0SBH$ԙ&P B@ц`fn.3'B( ,rd O.+㖕X,~UH Hk4++=uRAA$˥񡤉 Lae\Rx\5\p7чs R[L2%LA9>/FFes 6Yf&=-(5(%@ 89v׻n>qrr*rst:DҚJlcaaakk ^^d26:g?RE\,c TSSҊ> %&,/":thPW$uxjjPMQ7hbJ_=Cooffymm]o)!DPFzҘBtLsG/Am[T뛂pј4{Y0R1@K$򴴢wn~[^sqq6ZG|~ )`uJ%  VV( Te7G| +S>`\R7 kxm}pyyuA r-,+ w"q`J^̬ LQ(K cIəL֭^""eDc̝{R*U:5NzB9Em:tYY[{]sBU _X(JbX,q[ R\\{T$ǜΝDŽJg&sO$̙3pQɧv~v@ ? त$&ihL,y04pĈַS\\v#ټ!J[p'Ցϓ'y'xv+e1bczha,\8d֬}KRbƌco-D&SDE`ׯєZ*UٵkĉZ0$8p~͛ÆFҟ.J"Q޺UZX(`0jT*S__ `ײ65 H͛\fI rbT.Wj6vvsuxz:..Ϟ=T*pZqa`㆑~/U`0VX*uumңZN35,VRF,;"ўLv H$pn$R`YWCsx|~ ӅBQ(.'ӥ> \ Fͽ{,Ttڭ+ԫWU4N3bRmc"(OOGOO<j^uNA`{4AUZP ps׏л7D^:"D_XF=c|YT{p7λ26n ? 5jmkc򚊊rqEEMEE\B,lI$2~ Ui1l^QÄ 5`٣G8SCjW^^ ^kfb-~F&;S(.d2BAkX{R 1-rj$hv312 K"ufVVXª*H$HO|hrRNȠhn.ƍ%.캝V4kVˉzټ %O?;|P(dI$Tg_:s&;c( @tVVV ˆј(.&]_4-?ݧ>|16V怮l}]{dəN=ٻZ`_>4B"ٳu2v8 +0aL Ma„,[vP4ʽ6GXN2C&cTַ#ZX h4-0ع3sgZ\reĉ Ba,,P ϸa`2YTZPpZЂdZ*W)JxF|P<}M)kʊ H$<g(F.gWt#W}`iiRմ{55ofSã,j3c]G;;*{Mn< Aԭlq/mmFh7++74 v<ݚnKK[o_QWWajGyrh &qb1ȑ`G 4FhW4vԼ1观FFR>6+<'AJJ8 D\y X[#4JT +4|\ >OX:8tCD,~e?HO/5E2eJطFA6[س#G9lrrժ˗_lϟW@䓜=fͥ#4bOxr3R>o RrJˌH˙:us@ BpɓM%!!ax, IDATT5R*QQQ :i JtxdSY)tuu_9hhi%s ={ ,0DlmN3oީN%../7YΞʘ_?_l߰0e2Ã=s'!!a̭${P[7O* @$$$LӥC36iWHU z,,,t5FrJ%R:+*&_^u8! vi|$bHTqKl:WVVj`;xXoJUy9Um޸j:lTW̞}"#ԩ9A&S̙s29 >~.\Wҥ+V0iEѱcIl?wYct׳Fdf @ 1 1W*+p,Ĭn̙kם',]:|htKCG|`GO#2KH$o? KaL&H6w߈Z˗%}vGl3ÇƎҖQxcG@ 4h%Pp{iLHHx؈AALm„)SH!>QWW42|\6_g]bZ\\{T$^M.))gy8ˎ1ztWccdɵkΞM(s)wן@ TYA #vs `nݘO׎~-ϕJXY6,xƌ;scGYn+zW/kkÇ9-ؗBy{>zԒ}!@ @ fRXR™8fXXXt`NN˗QQt`IJ?, /KI)ˍ{|ٳC@ @)pbOO]Â@۱c|,_٘1] _rΌ@,wvss\&?w@cGd y/֭h3sfۏ5sf\i)˵NСoޔuoC @ @ɿvՎ{zzIHr%+//jii{Jj۶xpᐵkGvA{*:tS RS#[ŋ/-P履V_.7ߔ'L1vlv*@ @Lf_D+VlܸQ"4O^2iӦ8::^z |cGf}{O[k=fzdE"@tˎ_٥ e? y&tm ƭ];o1W*ƭ_5..Iʕ-7$J6olaam6;ϟopOOO'661+Wv)44t֭ f齕`adX_.]jЬ4CF= &yFf ?rV~if`)OhLŏ… )X,ִSPP`mm}̙OMl$biT1'Wn}xgpC/irerrz]{U[+:$"t֬cucZ%-h=..7o~ 忺%?=v۷92c1GR_,{o3f;Y&wo'kW !UF6 `4lj.&@ Kŋz˥Ǐ~ʕ+),,tsskdG F6p8ݻwpBjjԩSܹӬP?hhٳ.<"Q@ J%{+1vOЌIh;gݺ*;@1oޠ mؠ{0m9aBi\"6{UkPϟpǃQٳgh`NO8!zQ]]2 ^zm߾˗k֬9sLddRqzRѓc}3feee#<�"""5xi3tyk :y<ǏM!:L-[;vhYzu߾}M֚bi SDhV]^)5g$Ϟae2|))bt@Rz8aBw4IJK9c(zuQ$.NK;>6ŋi#F첱{w]!r7oZг禱cwߺg]][թ/ZHcG@ m \pA(ɚ_=zVVOn͢ELΊ+ SB$// 6pL'MEEEEEE}rYo)_{+ɖY:~SF+VDDD( ;"ѣulnﺥbc -̱1i6o޼ǫT*;3f̈uu`4HȐ#F]V'O9rds:6;̢1tRꇤ[87U;M3gOo߶Sc7'uyZTiI|hZZ\֮4xv]_$Ҳwjq :w^+3LHի/H˶nS i=btҳ$Ҳ~.)>9P(SS m5b.2y<0Q{go= _E'zr7~@ l` s~0`@II }AH$O`*CioP(6nY}oVߍ7?~ꫯ(ʊ+$ gΜ rqqNuB+W$x<~ʕrƍd2!r9**Uwp_~EA_,Y"J|߳i0~R믿RT''qiko5!u#ܿ˫G_5R$ۿ~~xdE" z>uj+X[&O>?9A(F\͋EcdY2^ct =~}nذfaM/YDΝ;5_o>K,if JHHPtҥI&iez9d0F%''oڴ7VM7<q- '#_; B-ry5!u`#G>x௿ruuj:>>>88h8uPT-@̚BI""v1+ر+{$Ht[A&/uM -,d{z.?>a4eR|}}>V׭[\gOھ괴4ggguf& `BXYYYO^$5{kh4ׯH$0{߳.؎)$Ah@p1A&O,> 91 m4H$L&}Yin>z%̐62$''H$~ZVWWWWUUic9a} L'oFW6SQV,^ÃkޯU72 >frXgHNӒNTiI?>3|}6ibbJ'=~իRΓH~Riݻw3;v\;lدEEu4 A.WwɓTTT;R޽c=3D.=<|sGlcG׎hpG`AJݴ{^4#ilp4W$rC`@ mf+jBHNN駟:wBΜ9T;HT*=zw *\\. <^õrd2 ^r? V;vXQQ^'&&vMVx< 6~ZV*]ddd .\&?J=yfSN!׎͛ `hw`>hBA$߿VGm۶ ?uy5uqx޻DAAްX;u]ۮeUQw;bT !@H͗@'{O̽9[߿Z[O9w.FOo۩SD5WlI`ǎHw_Lv/mx˗/X,YuKMM Mn>{6`hm/11QCCC ^ηE^^0<{vtqQ;%tv$:qZZ\@1ISn]7 HPLJ[N(t<#lذ#""{sh/ I 7#*WW,rWD!}_u'ð6>=ATn \#$Iy0dHL,yF/1 5oE4&M:=hZ"iʔ?--w|}uc=m;vD2)+>ɎSqժ+tuZ[Y4…eWEnܝܵ{{'6> ;ݐ( >Btٳ9sxzzzzz߿޵k… &%%E ֬Y^=tݻw9Ldd$xk)((@=0ddd3##9F.qM>vvvϞ=CJf bg." ^5 |Lr讛 ^e:s':e"9̙3gGmS㾓9f1wHB.$pC\aѢEO;q$$n \EBɬ=` bqyg3ys_%WW'O33+^ IkUjU))g[umzzYA \͛VVˊ:kerr _\D>88t0c#n]BzRwGmzAPA'6mVTTt4M@eax…?Q(9NΝ;wΝiii.\A==R8##ѣi~wAYjDD͖`0"}}>Lk$FpD***BCCoޕo?^A@@ 544icIff&՜k?Я](B[Ct)ǜ9s?~|=ooo_Fc@$//#.I?}YEEn܋ӧMH ( BJ {ݻ'# -x̛"**c"mmu.yӆ^r￿o%r###O>ͯz#0 _xqP/ -:t&L@QRz p{"> "vD2+`dqLtEEñc8w]b'N;QJHx eƌs:^mg/=]P9==wv))3?>\j[3ݸYIIv׮I522x3 t!#:iOî?$ @]2l2++ϟ}iĈ[n-kllDP^jiiٵkAiiioW|矝GfZuuE})33=yu…[ (Jyٳgfffzzznܸ>|AGG'**a8,,I]xKK=uT8`nnٳ☘aÆ\yIgΜzIMMͫW  aaEF颽?]p^?9~6ddn--_tiio{Ǎ;UY n[$&OLn}kTja?t:ЦM1>`0?[}O>\SSSYY;}tQB3f̫W£GG`0)w ^.xd2UUU--- \h#9 /عI,##C^^~׮]>|8C^Lepx~~~m, H(,7N޻"ܵXhW1vUaACvtS" =fpFF>^RRRghr~HZ;ٮ&6{3=mG;xZZ7;ʕnnn54 8O?=J't Ň{3M<۷)i(T 㐻j DNNN&&&wnmmaf{{{+(( o;} ,X%x`رCOOOYYyJKKgϞsqq IDAT,Ym6Ā6&Q+V]ܹs, Ǐ644PAÍ5446m*dj+l'edd҂$~sI yyy///d[(&Ctׯ_/++KRg/ۆR]ݭ@B1IIEe@B ~37%$y~Wtuƽ;[nݸqx#tSOz{TMɎS^Xq%ܸ-Yr͛22K\uŠoPPA`'.$mtw4D17O;epI",pC:1G}!%$" wޓ\2cƹ&9e‹bbvJKc{Z~Z2re/2xڻwE^h4q˗MOgj)n:D%x|IVVEFF9V0sw70up01O"!7G|~ H ʕ+w-AP<<<<~ܹ-CBƏa.nČի+/_?|8Ś6j ~9sfsMkǎ Ôwr=۷%r"o#?|>o,kh([׃?_s8~`&pxEE%x|qRRqEEww7]kH }}Uq$JJJ֭@ IIIAAA]JY B@r2`xPwwӍm8APWvs3YƄ kH()޼…!!wSSKaz֔ڹs/i6k[PKL>g]:zLϦ !H74t*AM7ߚ95(hx?t'K>v.Y2ì `}p^M;wN`iEuw&&mdeU8-tL׃gɋۢLO/VܹHT bynr8< %BKK믿@ cƌihhU" ` L9o- wu5޲eP~eYBoa? t aMRXR _gϞFZݺvXeFDg]:zLϦ !H74t*AL&g**rǎ:t;&i)l%''SDb5kՆ-I?cDŽ5k8 $^ܻO]$< 4zJneSul̲e66Μoi$ kV;<&&E)ƍsxdʕW&L8} su뮽x)ZjՕ-=30LJ/)*ʈ6y-;;౽oG6nt@͛>!С3g?MKymhj_߱ 2`l7oNL,LL,@ bhGG}JPZb`(@RRJZha2h4$- a00 Ar0-{ٷo5/ {~:43P5kl|ッǂJױ{r7f =p`e#{80/7;=[-\Y9q͛oimaǗ$%S׈"`\\sµkmč##^]ei-.}VP@zf{ǏܳgHl  닙3]#++%;ϞeXEGﰵNt:sa0-[W, LnNK+K ٕh4^jG[)+ˉ*`h&ur\ZZ_ZUA4!x<@b l.@ ``@(Q([zٳ6n }}zKGJI gvTԖ?|{O O*n nϷ?ÇoOWWWn#FF/\/ݻ'uZ}}տZ6smݮ 6YǗ|RSX,kU0(-GT0 IKcL6G Jy99;2+С ==q[0TJx񽣣P y@G۶  o| 潝N7]{28O$AвqcυXz턪?x{J'22Ǫ: 0?;bq֭]WA1/_bc>~'(GGoo;&aZլh4 Yp u=~ 2!`@GXY=hǎ aaqGݬ&/""{cXEEN$mvDcc˕++#۹sš5cfy:S]֭D4d5khisattNll^eeȑـ{AoN`O]}/ Z[[@L@PP@MGGZD ͭh(.Q`0ffZ Fct~Ouu##5CC5CCu##5##u##55|L)Xy͛'.k4ZNJJ(]Q6s`Q(T{Ni+={.Je5 EPC__-[;/~X{͚1JJ6_06{iά\sDP(*ʜ;h}.V ۷jܸ1 ΆݺvD"eݺklprεu7@kh!Hp/mT`B ApjjSX,`މFѵ4MM&MÆD!,{!(*tvUHS(Kbedp;vL\l~AFNNեKmx '{pit)+[;-uI'OFiX,^mb”ru!˖ͦBX, 9{6'NYȫ%&ܡ}}D x' j(({ ӧSSˬu֯9ӵqDGhjX*+@w!(ÆQKXP_8|8 9`PH LxGG+1GOb'3OHudn55۷ [eǏ{`I$2\TT„ #y2H lG@ "UU,;wN!H}}ᕕ ?X[2yɒw{i ǎxc.Kz}'K>޺ l٨!Xz/(.s'/͌ /;]KK+΍'dgWJIa<@pv>PWGU,BA7l %Yp_:WzP>voO|ea'\{/oiau^LF}*`~|۴)Jm:jDPΆ/^lSA@ͭ8вn@$0I inf.X0bz!/*=xɻw22RE&/oLtt4غ500оH>omeY3[A>L9rZw1 r4(+# h^j80ZVF&$D 55M|}VUUU0: h.} rmf:?zt0䟂>&-QFO<Eѣ*+۫EӦ뗔ԕԗWU5";f4LL44LL4LM5MM5deA:IRhU (9˗_n3bFCֺ;xxQO"F0T%VW~w6+$RRJ߾il"EQ<4v͉sTHAl6ǃQ(&&c.7yӾ}SAxgHT~ YYܭ[kŕ/a]쿍-[1f)&srٳ1؟~6{vZ넴ϟg7CZ3=໴0_̺s'˗"EF̛穡WyxBll06VZ݂DdeU%x|qY>2]Yr%矟wB۾}BooǨQJJ!awm/)-_RYYCG"`,zn5ʺpٳ10 q8jj ̀ +Vx;82PepEE r; Ж2]b(=Jݼ2b0 /_wd搐11vJp#-||E;`PTTw;mmm 0ȡY[_O9v$u IɫV޲%7NNNɓsllt6m :եV֕+νx3f _tCW+je29,^cՋ>ry|S` IDAT!NNm )aMdÂM--%%>:!?X(?WEn4#ZDLSN fh{855Y0 ]4Y YBV;@`ɡ/O=JEۦy`P3f Ȩ(*EQVV:nn&/ {~P(L+>~oZSjƎ=  ɓͮi@0R<$%EVVj0#6QަQVٓ';!B'$L$?@†LZmv7?XX,˅'Mrڻw2H'1D`29gF;owBpx/?yرvU|)ڸ1BRWWd|Ɩu|Ō>{qr\zzuӦ ym!Tp~˗Y/0 xENz2O >~/+#+)x{[ C123SSq81|4݈ ,w9sܻpv FѨgΘ1$'*0A8=I]infnpݻ܎*0GFcكKKyeTQp%KF.Y22-ѣT Ngah33-''''CkkGGTk(CP<O0m*xhPQ773 Xҟ.&={mSd]166/99: FWW0PtO/_nl=l6ɓwv7%O6{S^I;yl7Ҿ|Vs\̳gFF~AAû֗BGF&GD|.,6h,uurJe<||fb^^'Mri~=draa[[Y<hP^SP˙AvSeRׯ'\UNNhg8IP :S &٩͍?_;ʄEp)`]^ND^S>}* S]$$fg Q%% [SS $9py.%]re iٴ)"** :thƪU*HcL&GKKHJ {^rH.\ylt~B8oa!NgA$kb|XYiuի ?ago;;HbSH$=VK/%dŵ{L^vLolhll9rݻIQҮ_Oz5,X0bƱ}v7?54Lj(K k>M?d8{[Ppuu'_%$$$ՠ(ggC+ :\.6+"+29JVrr2D&nn&H#}0O~B((KM2oGPo߃:  4usryq=7AHKKW0"F\\\̄ |eZ_0 * `V+dy-A**6nHM-LUTrr VVJJi\!::@ Iڏ`h&ZKZˁǏ7yzxwgFn`7-Ov-Сnnh QZZxAW.a˗۷}9lѤIN&9u1_|Nқ7_';`cۻOhh4͛|)vmUF8^}=kjjk55/(F45kh((kh(*kh(HIʺs'}GFY]݈DN]L1t:ʕgcZZ0 vgȂu S vhh̙31(p8̲e j6[ǗdeU$&UU5bh;;}wwSS//+ #hcǞhlbNu9~X TjIp8L`}x eed<89/)( 0llnanje&QZZ?rQAjǂOiS9?WC1 *[Y [ߞucAi$L , kO|yf@ѣĒԩ}|~uvo Dp8w~_fLҳv˗_VTY{JUU[%$CmDDٲ9s<֭b{CYٳ_Ugv=\K]0쬬䒸8—/El6Xjh+jki0/PrrR0Hȣ`[ZryB!ggSv5\|璒:;;jWX|d>*! ð/D"ٳ0\|4}˖[<a-*AJEE93f }sKȚcbvvoDdeUfeU$$fA2C4G"` 6xRPllnb!R!~$mƈk,$}\2ryϿ?y 04cưs, Tk+:JmG[`(?>&&Vw:ߙ3]ת'%O|4}} Dlxû$%}^WG||奦>{yDT1߶I^drfM <8kki$Bߩ&H+(EN ` & FS#jkiȴèkk+膆jrrR*qRlVVEجPYpEE2&'*$nNNA.,6mX'(x| ќyx:84Ģss P(%%ل"Ͼs- osA*JQoHN.Lnrpwr20nҊavv/cX,NII=2\E :#iM뫃 ]DBx7::Ϝ?J' drs1ׯRڷowQQNhX{ǎ =X,++#?y/-ww7]kT\JeeݻIw&PF0[`ԩ.F)/'?U&?iýEud ?2SSMooQ,G[wa߾U#_*' Qfܕᓿoje6gYYbӇ-_mgp2/ `SSw.T8vґ!|Zhߍt~ZeeUܿQ*:rn';w+G&7ۋ;whtQnּDUYXH`%%kk]~` >]Cl n1B`4`1--L{},2vh4ǃׯ;p`ή\zIIsfrH6::'::7;A f:ڳgO>lb/¢Y_g߿OPWW3}ffePZZejj':M+).]:r͚1C44w8cp˭P(/>MPFh?}0??R(􄄂xBbbQaa-AZnnrF'&2HN.ɩpxfnn66 @rPD"BE|A'HR[lDHW}}UB ëUU5 H!)UU$ oSPUVUUVSTWP DȂ%.WXX\#902tL*@0|y]7zɓsAIAvdrrS čQ(SVF1SA a$j pxUUi} bee#⠬, 0B ++~w&l6͛7n|JH(ppᇱSd';ϟghj*Z|w۷\W]4i㭬t~yeecll^ttNll =F-.PaʫW,f|π;@<Q7oDUUNu5J_ l>LJ*ʪ`jff#Fk#+[Xf,mfϤɰZHǏ8qWvw7m:Κ3ԩy}z;px)Fݽ0[DE=:k oilly"+""1+BOO%(uBOSSl`uHzବ*:xNt=AepYFc@%(E[Z ਨm>2QRreeAOɉ#|R ||F12VV{ #:.uu7>}ah\Ά "rRlmuq-ў?όJON.QP USFG0Srr VTNt:a$'45lLn(?a0؈&Bi#uu4~Bii,FVQL'> -$D a$mpm-LnFރ54TtuuttuUzPw|WFdDʪDVfd\mm%Zi+&ر뛹\XAA&!abjjiHƐqcZJm=r٭[_Lq>vlӧ?pa 3k.Cv2YLnrpGnޖ):P(|"@k#kMbiVVH_PIoTW7ݺxvR]uXիGykDDb|լ $6^XH`idlc㒓K,,XKETW3`j{dI8Z υ}ڵ 0 mՊ|)kkiNNg͜ڭ fCbUvITP(tAM0Z/( * jP9 ah)[[Yvv Bz7n:-:Zm۷_+*G@& ʐЪUׯ!hH|hhLSSi.!!ML4mT?QXX{3L*j$/s|)Í[H̬(( q<9''C}[[];;= mu~33"3"'`J!W!݀ũoӈDojm-F$Rf~:lnCC3_h^VFΫ(utc##u==kX,NM `KKmYY +#66I{x!ˮ,yipS䄆Ɯ=3lAʻwvpǎ͚<ٙ~o~~f;Hb*wxL&GKK)9n h@G[XHY))ɚhնa`09|MUU~\%K_ԘQ~ѣT3i^#GZ):~֗Rŋ/Ji?}*R[uuUƍ8B䓬|OΘ1|O0 >}-!Ng990~m0\P@JM-Ech$ѯu~ID,yyi;;=D;b$[t{y{[JN#20I}zDb <S/_fq81cgv0QBr|W$HDwml 63gky"$ Euu/ 52r|G1}|||ljp20~I6ܻ|Ltm-ua6[[wh݀&5gIIS83I\̏bbr߽˭o64T9ҢVׯU򜜪0|]JX+( ffVdgW}V[MBdhu͵5܀ @7:Zm-DQI$jm-D **r >XSSQKKI]]A[[ISSQ]]ABb$./'Z*8Gqz dq/iDF33ˏ|nn֭ ko~=B=<""qT~&,D sL0Oh#b' UfBP nC&W.`7gر<,){(:ssEu?N}:NpQ,:0޾͉)/'Jmch {#"}8N__uǩSMM[0/_>|Z99)oocmtuUzfs33=,%4545BJaijұ:~VǗ r͵2,͛ ?SҲ3;}H:6P':U݂Fc~AJBB)γgyxۮ@#+=Z[=/D}į!(WbA>a)?\:ƞ9hGpaM!/-4::7>])%A*Q 9̚jc{,qfs=Jp}QQ]p߈6'<4oǎRh011qq0 y{[z{[a޳@ #Hh;o.jͭ&7۷zd{VdrZMMtDIБ3D"#sŝJʲ +M`$_ IDAT>T֫iB'IIaUUY``--%CCha"d)gj٨U"^{+ggӧ[Xh"ٵ>:{I_p8*<$9B2YVVAQx{[Qf))'|u@$!X[  yϞe,wwӠ ]vii˗Y/^dki)N6lLW4))%OGEe44 n4<(hx'w9VKQ\\~VV%AΆG[mj"5ML,|&ۯUUSLl(ڎ=ĄBllE,]????e'(x| "(gJȃ$tdfVXL$~wcڮ^=Z ~ ",`&8-wzHMMӣGw$YZjO2wBK 6?ȯdrp8&ߒlee䒒:~S2 c۬|ZlY,rv ) i!JIIv`NrLoZ60iY@;$M,Y8oŶd|=z^9sdy@ 7Ϊ3tGǿ  O?}}nݍFO p<mnkٲʬ<՗I$J!UB>_x_АqwtX|;?/{wcF@869ig([}ھ8jrsR۷].``>=7<<7Vue 4|33.*]6CÞn8@ +Ug#2;ųn=~hG˭uǭGu'OV %YUƫOdϞ!ψD//}f:D"8G6=-p"sq#ݩS9/ij Z۫ otp$Y,~zfgz!R]W(xJ%Z>_tf5;랝ubry J*ex2][˩\4 T Ŋ0;'"N@U +/9/DZ0Krè$U VֲAS| qZ-okB-~9fg= omE80o# ?}769ɧ23*OVjG^&2J]tNtAORH'O~L _iSӖ-mYV+K??thȑi5P7mjھ[cF=? Oӟhl.x] R)k>~8SN"[uk֭*@ vر!q==>UG|\._pd Z~@. *DS˭bz?a |sî]>1FЗ۶=ܹq %jڍNg?HoX̖-;vtoܼ"V\֑ACkzyY`t؃(fBsI\j4/&/|+I$*݋B0>h=_\=Eh40<1afR)~ZYggm[dq533.i>*H԰A&^4T, |9wB_l PwdD‚+ p8vGވx"^o 1; 2Ap8 CpB!˥r4>Px<GcuEL@`0} rdzdČ Hgg6mY{7Tԩ٣GuGLOM9p8Z-mڋ-\.?;Oe29-ko.Q@4><}`2ɷxm77餥+'22bhqkUU?t?{<2bY4Dhovvtu֭["R#h%*, \nٕ ǎsc);wVtX+wY,&Pѽ{B!;oKѡ9Zؘ8`C лT2A d5 yBmIW_}M&| h4%qU[nXV+ !WϿ>zۥnfoh^xC/v=&QXgoIx-[ZKݢ%K=k:u84d1I<&씁1t׍,.ABqţ9@2dU<s:C>_㉸a7vG<EaA"P|:i\.áp4UE6z#v{A+tۃX @ g&OpY"A0a$ւ'Ԃ $64dh lʘ  ^jŸt?/q 5njo}k/NOk(us*H$92bƐJ3Ogg-se[Kn^]xA:TW-& ī tQsH-[Z?kx"'O:4`ϧv[֭ Z%gUL&:ϝΝMN4mn[Wߥ똡3h\fӦ͛;;kWDc1}'ONЃ*d8f͚^Eoo՟J,S_?R)cKǭ=u`w2vGռq5װk׆m+`WHEw֙{fJ%ܹz,D uryINfJ!<|yK%I,x@ jo~߽mYrRFcKϝƍ~U{~A/<} @ I&ۿ /|:{zϟ?OMٟy7Y6on.u*B0;1-5mmvL]L&g->3>_ϧpjjb1S$bH$,!1|ZUUU 3&|ͱ@sK,)3RP?A,f$̄Bq F =H>?G$L2A Y(t&`X\)#$KA+p]x.OYZ(d .0B\MRٹkЂEOp5 䍌AԜZmDy5׿'A$\o}kߡC<,\ԱL>P-<-qzz S [b:R9=D8R 䗺P(ff\'N̞:e8qb Hkkׯ߰A#_h/4;&6zkӭ6)kiv{qGinwͦnEu-Mb1Ԁؘ9k2r9u=;:jtmܜxǎKݸq[nipVµd2qsơ9#H$⺺d6*dUYϝGF&A:55]]Κv)N#zU pPٳH$]wu>FJXv-mq߾$nRt;KκA<ؘel̒Je\W@ $b1x0 F01|s_5nqliݸQu !Ɵ|xunY8hHK/=thUrkWU25{ѵkk{l ^62YytԢ׻<&ikJDK*gb)>gt# x< S$P\XV9Au Q"aD?A,fDL)`cj&`0Qv{8Hw- &$0Jq C(w:nw ݶl [?th/P ^\@`B!jZ-Wp0d) ުa?:;kKݢUá_ذ- @|Q&t}} ,m,/.μ.W|J%ll’/ OO;N=yr)RCfEwv*nI۫ CCFɇaZZ$ i D mmvi[]Z__>#xappf`@k(>ƍ&F2~鹡!%HXuz{]]Wc ϝAֱ1+ ͚ڮZx\p89:j/Ma`fGGMcg_:KGu:gGGͮ]v讼z>FI&3M7|L;{z+ʒgg`ŎN_GTgӧMšC&zzO>OU^r=/[.WA$ll67MM"&sYFF./1,n.pԌF(2w4A RY/vިz#Oy;G}( Tq8TR\Ce)ǣ WU*yulDO/y<:|ݑQ3H@AL(- ri0vIAsRss L+EЯ$lX_ΉFj1dJ(DU*aAV3~YȈed42b8I%UЛ,QVf2T674\l  O2t\._[V(xl6A;25eHa[[%˓ldBk|z:F]t:;1affƙ 55]]uw}∟YΝY b1]Q|ڲ| Ȋ7\4ZuS+4m4I?apjB?uNEu7غuu;w}ʫ@XΩ:QMtP'APwt-L f0؀3G)| lt^RRLݡCGjSLƹ֭[[Pdq --}G-TH5a7m[#ljO?PAAԔCuNO۵Z3#"2J__S(x $-L@ۃO .W(|(1x<L&r@ @Ss:Cr K)|Q/̋Ol17 N#l`6l j /%8 :`+pѵ"/8傍:nŗJX\.YjH&%$MQVoa%NN5o>8P*mL'xM1|뛞|r&()uyR(j: hT*ͅT[_χG7qȈyd Ruu\vuնIAsdrZU~LJ%I׬ⴿgM^ob( 9q06fSE*Q(ll.gφI.%3,Rb-{wG>fM-T~!W K!ɓO(h}ϧs?|K{ԍZ&V Ǐz睱|>ukێݛ65WʂYw.?H|Wp qKVH/`Tϧ ZNm-{@  K38>=w-eD22=Н;gwwmܨWutԔuB ?ܷcGw@t:ot~Cmܼy] CCg=88[&e[Yj^qAdBS(J%_풯zO&3.WPU((bIB!ϧ  *08*BX;A'p<C<p.&Ё {R+ȅ@P(tCx(g0EP(FAzH >d @ 9s8J[_S~ۃL +?mU Њb-XsKjP;HS|^?|[{ ҳ-|O:ɸ?8RwD"ɑFcYt0)@t/:ME&1ۄT$Bd&'I@ǣuv׶v,\._8ϝ&|2 IDAT<,_k^>_0=ccֱ1ӦI{<YxP(`0U ih45^pϞ5:e]/4۸WV+J2gEpɽB!21OOM9&&l15H$8F[[%mme{PC jEwwqS_z;gU*ݧ~ \4@p8 ;\s}6I۵d29sqE.+NG]ҏq6[k2o t@<ܻ?{UnK9vG>h'ՅBZPo1-==O裛K Ç^ue;ٿk4͛xbZ[\<=9 r> ,Cy(y33P̀"EQ ADP|Cp(t: T61rrި1*\.ϧl6H\ubre% $`pNgoeǑa ®k*PrА1h՝j +"nw_u?BqjO<ڹs֯}֧4<] ,IPv NZsz HgyR7Y*-9>n bdzN-hq["^\}m&u?>'&?UU! ZW _1H$95eSnwA߯鑯___S^V9XJuNM''cc [2ƷJ֬YcqVH >Z佂-bvGFG`/hPL&J.۫.̌79Hom׮ L+4/ؿxrnΫR w޹SJҋu:s`0b fZYeW{drv{2@o,>_@ʧÕ2Aq|Y ƒYOR7|ѣ'*Wm-wKw_0icrn6LhjK{%tIcj19izH$,*nmdճr}d2)FcDm?Ak]"H;gω\{}َi/2cc{p⦛;vtqzpBU~t ƑmU9NgPl2p F7V@nh_P(msR)W3WC }d)7߯QU wD"—J|D"_׼=x =Z*xLQ/cu{M8 ֩ӹJ$hP )Ebc`= D"ɼ` S(D<SU!$D"%=>_b( fS\/+;  @CDʏF |QP 8e0L&iKG: bN0m2B8xe) `tϧ~ Ԃ/h`.|dĜ:UmmRxYw|睱~OEkbjNO;mVQvnƐJe|ښ5jGYK Tl=u fLXr+,TVw̸Z'x6lrq[ےLl}sz91aC NJ,nj67ş:ccc֑VZ`,ʂ`0`\mktw ^chONnl%<ުJJCsiN FҀ>RG*64., fz15eưD"NU&0P|36fItz5\utT*?zՓHr۶]65WG*=zToH$֭m;w] W4tAF#pET Yw,B>>(\m-{uB2&'۷_w,u[V&СC&N2Ysm[**x}ַ { @ M>_ɗ^::0ki?}*L헿|G<{9@>_ss^0 j!>> Gepjk`\⪷BqHE(+ `dp`g&L$1ԉD&b`0 %`8D yY,~fSWYRCM7E8"X"q8l6&\p9*xbQ] 5/V@4oq `E"N*(.&:A%&K,5Xjb64d3PB!۫ ʁ#Λ8?c9+L&Gy5?RYaɧAfAU*AMfy-P9@.GL76 ѕ*_VC KK84=:Ss̸t:x_j X~-:z"x<˥԰DDdI&3Zsb61a,J]K&j d29Nj2IFJ%萶I/" k>>n bMM"x ̙3&/a >XOQS+@&;xܞ='g?կDR5yglϞccy=^Wvp89=mGCggݠCsQR *{xս Ƃ@D #uxt ԁ@  O7{O/;XS궬HѣؘD"twmܨڲUu+{>=8R7q+ۻwJzw+vjz F,f=]6ˊ2҆ ߯WrK\t_uL@ Wy ?EmkR7j0}?V/÷+*3l[~^8+BHĔJY"FŌ E)?F } `<$6`(bu5HpURU( \.%x<x  $&Xd&bl Ia_+~JL(() GQԿ(˖9h>o?tm|پa \\;2:jhatԒNggֻd6'z\.ߎ|);R~/~~gg߯PԨp89:jh J|> TWLLzDCz(BE&1/T<\j 3;1Fj󅪪*)yYpta4zz|>Ap^%ڍR6[9!Z6[0!b\PHBpZNCIESyAfȈ Or \}gg6[2AR +.Rٙ̌kzڡ9Z N75E&QC@+|;8<g2T*cT8XpAY^#Q$3d{ Ÿ́I/&ql6tT6x b9*EY p`P ;p8ކclʂ`t{5hbV\Fqtp\Ehm:^=O?tv)usJL2Oo5<}!,ON4Аq%mmZV˻VNgFND'bu:F*}r95|ss|_+˥{]Ⱦ%KGc}kf] %GPf :! D""WWX$G`04$ |.BW*KѮP(z_dEW Y@`̸z^qY,l6TI$,t+ЗRMvMO;L&o6 F!+r4#~APB~ #;vt?F^=^\_rWO ]wu{]v/.WtQ O(5 x3u1  -`e35R@o~ݻJݖd:4qĩSt:R liݸQ~}=\py1l^xWu]]n );\О='~x<}]$x<$Q PUUu8a: $Dj'!b{'7H]p|*<וh"t\0%"ϧD &1JޫG D##f\V]]b1t6IQTDL#qe2N],e |l̸Csn9jcPٖI |"*XG/ɹ9XRa$VQY D"ɩ);XUxղbB޽ÿQQk׆;v@x;@ n]Ν=ܳw p!:kjʞTbs\O;:+rl5|Yq ,?6{ݟ޽ KM";zTwЄN$ mzmp[1==O裛KRbTuvt<`w5T5푹9>PFAVnw:!,a#FP,6TqT.18XrB!ϴvqI_x"` HR$ H" |JrB6Md6Kb2xI4yaC4d0F^aaPЌav|Qpx"v{ !'p|(HCL&,  |>M(d4AUS,:WЂcc'fmiij J.Z6. 'O>k~{۾k׆R7gYI$=ޯ᭷6=̽b1-Z|*#:lX_Yl (Fq#Vj X~TZh)>VSîPXr:cZb60Ѫ%Gc0d2rT*E㋶r8TATh$P@bT0x"G iJL&,GqY :1aH) T*@@/u{9&wn¡ Q+srTʺ RF/`5y 'κ,*"~{zk˱1˞='&wյ{wf,^RGi>x/tY IDATٲuǎ͛$ <6f9wΚLf萶I˰Vnk`(];WHXd,?6 ƒ̙w*(&o`@70p8)qU[om9ksUSG?Q@ P(9Ik׆] wC&ZZ};wMȢJem7 &!qB!ϧ ef$@p8Dp2H|eO p4HX<VUUU\.l23X ߋ@0J%$F\ r\a3GyD"$3da>!;a{>?xn~0Á B`f2 7zVV2[@@ҤZ-okr5bN2_ge2?$MV+jyww]b^Lu>VѠӟ*DT$HENgѺ:@E_p,`.kjR)K*eI`C4`Yv{<,5oD.JWD,P@RL$|>]$b2dVe2d2 %ސt# Q*e&\h9aT(5=Fh.ɗ0ZNC<@jpע9{I \.ozN J9#B_J%P*+ )[\Ђ! XDZ ?a`jB?uA Stz5x_Ѫ+2vI&3 HQ( x0v,88fL2Ea2A0'|YRX@ uY?ǣ!OԂAet]X,51aq_NJ꒩򎎚z:l!㏿x`}QnH$3>xP׏QFch!5kjA"]9ct׻@L&N ĕqA L&G]]ח鵵li1ͪ`0c=pp8B6[0ш$@UU!L>DIt(rB!á t&Vl6(=0AA8yǗlf]KNg`y3P~Jr\U( Tzg36loM&,|>WW2s+\#ADzA<)b1|U:ϧ1^/&)u*h/3z;l6T*Ν ]AAM萂kwc\yBo"еUQWǥIn8T&'۷_w,u[V/>_qСI+R7lPli-KO~r>R7$2910S(xyq{饁l6w=k[nd5ިq8^oz],fL!bH<m.|㉀Ng [gP:=8"a|2f`0U\.áD .|L`Z(8BŽjD L_Y[)s;b.K21}Vk|@j ~{>D"԰kj:\ΕɸWNM&3gvm0xVW _+|(@ЧȈ9ɡZGGMoo?+m {ٵkQ%%!/ ޿L"&]mkkoPu ,NjlۆJ*n tU!( t ZuÏ=_w)u[ V|Gu'Or6ijFݷo'^3:q^;oommEhN=O<~U,mV0X@8Z-pX̬^ґp8'H$4 &Xb0BBr| t:Ld.wb _]Gj<rdu5HāXЃ@@&cEA ]c@<ɡ߅bl L&"3d&L ~D8K+Kݾحuָ\aPX1@꒭s?x[oyo44J__acGG̓s:xYAR`0vrۃn\?*2|:IZ)1a"XFSx*Jbx<T,mh]Z* O$xS`p|2|>fصjL&YBVšh0WC}h6#kA0|dlJ!˄+Ng0NDW,T*?hZSsb- 2ԂѪCC@ F&Z[͞y[P(TWzxKs_P(xnэO=7G_Aq,T*֬{Tggm&sZSs!tBX䪭TB_g!d\|QPsf x<Tz#E"ϧDL&0y↬ pkdK@@0%@p@BX2 LfYzz}{T%d3<]NW}~cYۇ@]C@D"BEE8̩x\J$Pu]߲З{z@e4" WVJuu[]Q8^WWСC`gޞcМ9  NjO(nuueS|WW;Je;;L>2x>V__Q_54cuuc<1k߾]PtTELqw9<dOVU0r²eӡO5ͱ,gyxO٬ӄT*S=pot.X6b}{w=n1 5o^ 3-_~0c &Z[a`\`0>v,˹袟S_GiH[[z[hl]۴vmӹ<#N|^?餛6oT 47L z2UU_|I6*IUy~OOwZ[::2]]|:fYfZW C X2\]_3'REE E1z{}}J!ʂ߯tw`(2 }xkDMM$Iu\Îٙ xP0?M֜}Cf ޽[w=?Oqʋ.zl2"P=ݻ;^~ ^r3)BCA`iVx>AN'Nc0$ 㢳3syw[{>5^ymon,KZ5ݺkN=~ENyA`v p*<+Ȱ~pDߡՂ4 M?-mwI|y1u:ni/^lw_parضۂo8Szuq7lnnݹA`.-Gq)s9 \Bwoi:h ӅB_ۛ/ NsxJN$x<\]۪* =;N_OON٬jjZ^ٯ&Y6q2uu%dYy=.Rtקק~wWSjj"T]]LʕunJULgg;Օuue:;3b"mhhhJ_:{!˹- ]J0|gZnh(zӓcDP>4_T|N㥗Sh??lY=Q-ZTرmg^߼y﫮\qřW]uN[<=q]oٲyއ>tÆ3=vdEAH0 `l̈*ʰuA10u'`f>^q]}ک^̑/رm' >S֯_2s ?.]Z~rW*\_ߺ~_cc+W_~ٗ=ʯ-iӚWN[dy u ]X7.d > 78m 6xqhpiX)4MREQMS$IxOY!IQ8b pL$^YA`⽢J/a&au@W \C1M'UtoN{k C|rʕVwY iwe~kϟ)a}}7?S]xpt;+v@ 'iIzFs+Kb}N:v#c0FPtY7*dWWٙ#i:]B],z$ D P<.UUI uu &.LB\`+4 Ӈ%tZ h\Y 'r<N&8mol7+׆\]].V[̩hhWWGfoۛ!- 2_SVWG55Ѫ*.VS9`YN{mm~Ueex ',HΝ[9MYzsg=BتU8cC1w/A,/`x>g]?//K/]Cp&V {<ϗea $W}L40v?`:4?O\2)76qd `xgm[|qժS.y=۷<\K/y%uk6[״zu_};C_`0u.v?6uSROsӻc%kkSRݒL K54L$"b2+N$"c=bJ M35*|^@l ] VCLðTU0BTUqq4EQE4?RIp} !fY:8 3GG""3<_2+x y|3A=ZO P qAf:LLں䚛[Aq1reZ5oirq_o?3U{%o*|uzuܺo_5-^\= P޳wo@ِCOwP`KU@_Ȼ6 (2<47 ˋfdZOOGI pP07^`Y^puu6`A!HH^x;0/L<"[Y)A8q2)%r<J$o-<|)Dz|*@= w6 oMM6Z_͎v!_yW 4~%9$r2)UUEpmm& xhkK<od߮,4x<任}}loN`1 I4ͷ6Z[&L9@^'YΩTO/K2_UI$$pkj(x";̶*( ;71;Lǩöݷjnn뷥% -_qHg==[w7/twg!^al8vn߲ecgpÆ3>D'nL68GݻulY%uSrD&|9òsp Nd 3iuuwcF֖޾eBll]۴~uO+>3Q`038Mu.];oMk>{LQm<>sg…^qj|*|4NQ|P#|^|P=PUe^xY$DY.Aᛳl6+q]P0T2 P0 0lU5 0lMy0l]"ut]m\.hiH@#b%>eA`yfhH1[QW1c$7 p=7(ճY53p:@HD]b4*ʲ7S.qNc9xL&SE 6dF;w67hnn=t( Vrի̙S1A/=:?K㍍w}ٲesd5oe?M:k|4dR:p˗7LDqK0޽TUU%65U/\! jo`Tڔ,MG%8UUa_h1200P2^r$Iu^(EѨPY)WUI55p<%8}(2-Q?ʠf2i 4bP,&buR7%Uð!ζ+[a;A!>3)7 |']v@jjcmZ[ }l_b'wC,ЛZlDP8}63t{n֭yuA`>7}fpj%Ғڽ *le,_ސHaز dy ,`0)u]pO>7|T f0MsϵlG\9oݺkN=~Z?_9Ʃ^ s`Οg۷F/Y9֫??UW]u6>ɈLs^bbe^8y4T8P9!Vn%WVJSAx(E985͂haMtVVbU5 b0lM3$8ZYID yQdYe4bI`PcYZ-fY`J aA TSlg0Ѩ iy,WI;&UT*CWU$(ZpSSD `ӓlۭWr) ?;xknn>ϟo?==ߺmW^[?>q>mm;w67>DZz_qLioKK*<MMUWmzFbFpd4HP Ƿ$x8UTc1WB‚en.WNiKB,EWwU$( |r|9$>+*x\ѨXQ$(H 4aQ\jp,**wQQ fK\4LͧRy8przwwRTpDNA|o_ק |i5.qB<@45މTY)DBJ$p<Ғ2 !qtcc%] ovBWWBi۲esfo)OyvǡCelڴfƕ63LFwo޼cvwgΛϮmmi4(75U75UΔtk<(V@~t26 3`xpC#Qg \UhO/ t[%[(0f`rLReAP PDp&1po8K/I(Xyma٬` n麝bp<+#=$09FEA`B!ne/0Fxx:4lN:](ku‰ l43v,/tue\W0W]]);`l!Wop `MIblV SN]jUV79R|^'cw} #?QY)yek,u7;tAإK`c4P{` $Hc`ݲ9hM^({$xd-/A,MQ$MO ;kE5˲x0DzEQE H$BU,<3A|`y}tUT*N+}} H>q@ee8'r2)UVI9@󭮞︣iD8*D8.{:]Rx3Y{I5SRa֭liU-a8|?'I,,^\/ZTN,Ε< 5o f8o<_]j3۷<\K/y%uk6[״f)4>WwmM `0r}v;~_2)mذr8_~o{;_z+X=wnT:}Bg{s9-,\@CRyyԖ+ .55eyFoPeYN6۶iZre9n m;KQ XX-ðyö1.K+H H} 5bA`98&\y&-eIIYVY"(Iₙ,K&:[5op4*-- z,3&,VCNt.6P-8zbdr, %Ibe@;C^K/ꪳo飓2v$1LJ0 ʕ/o8 @ji)*heaʒXߪN!dCI82A$D HsJOAH-!"9w=ϳmϲ뵠*bhTpX8i.>q|Qa1 D([i.FdRC0\I2\UI$_hJ& Q{7K[ Ppee8!z2Nn:4>ޞnoho/f:p]]lʹs㍍p;{IܺkA] ի'|xWv7~i6g¾-[vO{op™@,=ݛzvrB!n$/[Vi W NX% P\T-64*yu sT`x,碋~fSO}:QUovgg& }kkk2_]]هI~] )+߿߼ݝ=7ܰYvf'u#g$g{`0[j 9l꺥iV>kV`*붮[iٚf󆦙C#B4MB$q \ʲ ,ɲ  ,B"t8̋"  %,4KLr^( a؆(nYBsr9ͲlM ömWmQ&FQ$ByW IX%8yepqEJ `m0, CB<ψ"/htƌqB1(@8Ts/%GZ7xG^t1M7bϝ;wWd2زe˖-[ UfLY#$:q|#dSNION2wuT͛wW_}'Nz'P 1/4<*h3 &JĉRrHO v8!0gh1L3KÌð9ADfj붪ZA4M4r A>( 404R,K,q4hbD xQdK-겦L8A֦ `"׳Y/P{,D,E%I<;m4`=Taz$ru\:}̣;ٙ)p$-ꤓjk_ZGG3<(m$'ڢEc[1Mz߾g" ?poUY_̙\*:xPv|I$ɒeK,B7nܸqXDzT[ZR==yŋ* hz.+銢F@Z8̉"#4M?ٶkYR/epi@\׳,q]/E%$0 <ϐ$e)$}w].b0Bٳ +I\8K/˂, 07+FD3LCY-Q!6om`hy"HHxVȯ nVVJ8#ϫD-Y3$IWjb 1Ohmp2@ְ"ܹf:SxeR'X -YaKlv=Q뒳7ߌ ]]]H$t.x]_1F߮+HuEOfe3 W FͥKzff|uPUUUFQ% hQFvZ0z¶L{CCJwt :4קᆆd*d2fZsB~љ#n8t()`0TPU˲|^u4\NbuV4M@}4mE15,0(rq$Ȳ,,K0 @Ӑ< 8#j(y٬^`Xצ騪 ~)aN.U(Xf]( xa;cۣO=,q4AP qEBMSı,s q, q4MbE8h")$!|M1M0,M(>1E0 JsKLNٗ$j2+X["jң*ҐYXT׊0$45|Ij1w\N=zpx: Eřӹ9e/t$zg9q$$wH=eK\xq%i b04ۘIUVG^3f&lԨ,KcWB0߿_A'Ynw7qm/v̤̌[xgy癋/~ϥ9ANA$3ϼ.쬌=`0PaҰiڪjan`mBTZn U B!R8dY` fZy$|bYHeP9[~f|4˶|pݢ=i:nmYN[fU(imi:gۮml6 "B0(a(&YfbJ11<#ӒCZ ,P CBjH(QP3 ̓ 4RQ Ȁm "^ 1L1iNp*28P& qcӂOsP%\ď|OioKK*HpDĦŋK6M53S15Zbrk fPws`_W(UUy8Q C!D>m鸮8.aÐRI$M4M8ﻎPeu! R C1 Ͳ4A "Ipu]u݂ýi:JecYm [qjcdzP-1?N&H~k@"52ߝW!2__(-|g\Y{ }z 41# 44*C 2 2^>H69Zp9a ̸b8* `0SI{oq:]زeyqѢ 'ϨN $I]۴vmSOO|78]v6a0̰bS8 Dp@1b&13b:i:==yX 3 P0F79yiC i_̠PR1 "F"8>'hFfY תj U\(T2wƕ]TUE_{nt[n .8KVY<`0Cyg YE1\t0m4Ӳttԅmp@T9l+ Afu:E(H y,  l˒&f qp($c2BkbDX@`Z⻪_i-t4mvTumx0AG I$sEP0ϲ GK,"x, q(4M͎ (SՀ#,¦mmi9JPEihe4*TT&pv4lV-{z--===>%huG <_Qa޼ļygm}/~GΘe̝w~w޼$S.|^Z߅y4SU-4U|PUSUMðTlKQ$\u]8ΰ;|&E˲#$H 7$CMMѨ ā)1N'M- zz mm>E)~Rӷ> `0 `0lc0 l/ [G>6q'ς$IsIsR>??lٹakjW^zʩ^A U~Ew]_Q mDL]/꘺nYcY.(8 L.!  1"P8Qe(,KgL$ h33&"BG$4MB#0j)Lyde9b꺭i&ǠȃXi{Ӟx7ZX Iƅ8 gI Ţr-ѡ'L(C#ѨȲ M#MZiWw0XPv04: l;Y%I$ eըpx4ߎ說ģlVͧRM"BG$ɲG0kkYe9A Dp' ,%//(+(8~NXieE@Y)H4*VWG8)?>+nZnnպnkj0P0ŀOP pFdR??aX(ā; NjWW31ٙvue::2hGWFb/*jjx `0 `N4`0 fj`j%/?-[v~UUi]jɒ^q@Mlڴf߾'|lٜM̚c $lEEh"q6X¢I#DR8"ť M/Y 0PUKUM@7 u=t,˱,۲\p qx3I( +Ð,Ksq43 %(24%l(ij,vl4yhZ"I$ucڶ0蹜Qš(ëG"vJ I;r)_|7 .~h;o߾ NK`J)qݺuwyg"!-Z4ʕPWW׵^/|7t_< 6 b0c#Aݿ'^ٲe}=Tq^zfeexWpX_?_=mٲ[߯_dӦ5g`0&0 ^`xAزmŒϸP0\۶=Bt]OQ>!x;/xZGa2O$B(B|0(rh04!$,hD@QiAЛGA!$IA CɓE1I}}d3n@AA1@U$q$IF"AC9т$+.y9ag1M0|0MUU0U-Z_kE4cuIxEBMeQA:rCC1B:~E;m{jZS(J0 u|XUj]44Qcr\1k_JiQB!I8( Ӊa==Cmm鶶tOOnvtdS0Tmm4#k6mڴt3,ӱ) }T*U__Wx<藷{rl̚A6lxG\AQmy9k64z{_)7brҍ"ڵk͛7o-z/|蒯ˏsp7Fׯ>sNűYo }$ ϝ;kҗ4t ھÂw) mX⦛nk֯_Fs[o_EQVZL&,X`Ϟ=ַm۶m6Fwfx͛nKKO~=z4׍F_( +V\x?$IO?_OwycZ`0ca$hvnݺ'?鬳npƅ.? Ik6]txnٲK6zŧ_ys+z1 3`cta 2VU-qB T4>GcP^6A8. ʎS ?mGӆoz`(jÐ@)F B Ǩ$Łى%!)d$d(gA\>qTS8*(;[(b0L6M4mGa;gz[ ω=PI!h(,K 9h=X8:8EEDDa癅 r|4l(NMAq` & o8dY`#eBc{,>EѳY=7 n ۚfjj8iڶٶcYxy_4A3?x !D }:||'Iu= ,>j$ U(p Z?P0GӔ, ~Od81 -,Hpy"dY(Rc0gpw]_Q 8{l~>_!A?ӡ* vːk 0,<HD8ZXYA yaar\E1ǃ]oYk8Gs9},S x$"$ E Hx+,OG_ ߆8ӱϗG}tΜ9o5\300s[G ֭[~.l]oq<}Wx lLniӦM/°Kq|FuY0ǹzsp7}kҗC $Ki7n/_|Æ3V7 seY~-[f͂ V~`0D`sNpie#cuB倬ЖD)!vڊ;!G"B,@Q[G’QQ,.RB }rE%K C ۗaPp (ʷ: 9fܙ!;:Y-f5ð 傧`ΨiZ횦8@= m !Bc4~S`'Qh/Ð pq42eFYQ9vnVUGUO b4I NQd8:pV2)5NQT  r$%@Wϳ^%ʦRLWW3ٙmoÞeh]].޲qx:6#Qyǟy=r?O?OE9季Zs9C7eV1XuǝsSn`cd2`W,]FABB!4.0f? GZ%ȴUUUy~֭[WSS3aCwR0i}yf`Y7իΝ_z׮] S< yRP~~{?ymtM?UW]}mѢE_+Vw}BL&_x+V??N_wu7x#i2hXM 0;BHQL\W~| tZE40lGoYiye0aۮ.ĬzǖqLBI$I7> .(O>ͰaaYiu^j7Uw| '~0 0$A쇉ذL8n>T(Gz;&;36f7(*Ln1t{]wW^lő鉰[ۉa;_~7|w.kuiiq4yx`OR03O?k馛㎥Kl6J/_^+o~H/twڵ+~ӟ[_!twa|S/~AO<1Ϗz_}m۶}>3瞧zj```ӦMx+:[o=OsE; 6|v{=;vغuۿ}e;fL"O-*(V..Vo뵶VܮRY*KP @ʚ3Op& d2#sΜ|&q;w/1 }ƍ7[njj_~Ɵo?nݺ{?)MnRT*d_rOOOcc{U*8m۷o_EE=OEORmJ@ W_M!ׅtt.>0@D"H$xzD"HD$. BB!HBj$ O|>_2%uBìl T嬖|ldp.Hd:ioaH0&`0G & wmɰD"P(`F"M H\( xO IDATL*g"T^r/\[,n}bqY,6{WŘF#7f\WWa6kJK &P} 2sb0R\fO?x-[rRvtӧ,**Zt+V^]ZZJJ}Sד<O֠o' 2 H$>Ч-鴜8%?Ξ=W_>~(Fa;ݥӷv[žmOaOs{#auYᲲoÇM6l+*ӱc3*d$ Oϟ?_zlOp[P&t>shH$6lذv/a3CoA3H)+ŃF/}K}ҥKO:|w2i4}9(#;)Føq{'wH$͚5ӟ¾>N9ٻwmҒѽ{zwA*o߾z7+**f͚&M/_[nYt׿uNSy<Ν;-[AKK 0Ȼްa?dx<oqwmnܸ1j<.9x`}}j{x;v\HD,={X&ٳgٲe5y<'|2w\&{nD"1mڴGwq0'O}X,~>y+WԄjkӦ69xɤ٫Vͮv+1D"rqD(3v]gp3'9!&)ɝtj)}PO 1hE> yM6X"[oMIuawtd>t,\26P(H@.>&IaYaH$Ud sy9IL='&A[<H04mL֏b(%-^NO|%Iw siu:;ɂlڛ2kg_j\I` tFG!--5j4IP4 zV"&iǎ ,XfMYYCfӧbܺuƍO( ۏ w5)*0ܹ?\r]wu3 j9r7W>rȴiR?^>>|AA !Owy;SSS}aNї R)Ujii:u*r{mD)=Ri6R(LO>} t:|ĉ뮻yܵkb Ô6AwQV?۶mKO]ƀH$Xrʕ3ȶmz-]Zu뭳ouv\b4;~wEy5eeyn @vS߅;Tڰ},{Aa,P.㧋O,*aY;X,Ncpi-Ac<="-M&Ks|%&|>O Bo$JxS F>oӦMW^p… o}}I`(N*ձdMMM?я>#:qʱS_yuֽKdI W9sNɝ'Jhq,ަ~~0lMM  ˗/pPmhoop3)~~q)k֬yGwޡup< }}x)&z+_OӥK~]~%K]Sw믿t[YnLn{J(0hT(vvve4wAdW^}}͘1cɒ%&MBhnn&GH$o2;w߽qUVB?K ϟ??sLa9cÆ vm?E.?9rH$Ξ=;c aZ[[mǠh{{K/tM7=䓴Hv E`,IUZ5oz>߾wW^j 7LOxV\yӧ{zo_zյdtT b+0hP0let͚e۸ h̗mkVwG3$tiɤה f͚{lΜ9\s  uQ" Ĥ\w]$ӿ:zW_}V[8?̚5Soa u/r63r mg]GxժUG={6Yl~Gɣwzzzl>`0RU^x3o{ɓ}W_}uw?ȍW/,-5 \b#WXt:>t:}"'o|{H;38Msm*Gz8///Yl_wfSso3)~dWLq˗ >۠w؃;|H.xaGDri[d>3gΔJSNݰaòea~jN{f:`0<>/~2v% ô 5M^_.--5>h t1axaWs|raƹիW^z؟bWHs{ zW՚5kL&Pk&.ݲD" ~k_+,,h4k֬q:w?*,,TTCcڵ' ;@oD"K,Q*da._bp8HED' /'s`wpO 36o_k,tF?yJJ>e]H0 wk-f~N{]U_^c4744޸ؾa_+kyɂɿo,[իs~ݛ77:t/:vy$އ~XTz^$' O4}gjjjd2ɓԗ;ZQj Èb ˰eз:J$5wb zKb^K v9{?QקÞgd#y|Xi\MYʔJE򗿐͔fa u{اSٲ%| G=@҃젻|;P|>f߾}dbODџ bѢE#Ϧ󊡶PeпÕu "6oLt즦s84l?^VRFx9b۸q#9ٗ ß|ɵ^{cÆ ϟ\̙39ax7xN~bqvs ͭD"_S.67nxsk]4':>|aϞ;O>.^m Wٷn=iӑ˧Z5 92B0ihh޴MPt޼UqD"^05fz_FZw)tesb:ʖ3+;%#GDC`Mbl^g3*S.3i Gal9yaebqԏ ^y啿Wںt>>' (yTgy7޶DH$Nnhh޽޽`D$F"^l`\))1[tݺ.طm;iӑxF/.dwX*WW'iٴȏg}Q`3Hw?+Z,nCjvw0YM"͚|M~lVhM&UadRhd2qf@qu瀑o10cpLX8P9pڇ[Z\B!?XS(>2zɤW lL& qRzh{[{/z`PJ^)ȬV+@6ʯɕ-[mt_uu:;ի^|M?oYld T*R)zCdx;w޳%xR…Sҩk)'l6 z]^oOO#DD ӫ5l<O({z\O,yFhThFUahTN|ɤUnoK|>Jh\8V۽$0B!_WJN>V`{,DS\_nuK-ۼk_{㩧6.YRqͳVe4*3ƫV{w/{lt6}oVVZ5VT3FnfKD"A*׌yrM$s8bqjogQHZl֘i-$_^G`9ӧϜyXB֖-Z4uٳKrf,i˖cO?a^xqŢE^;*!oKb 1꩛wO1-H$Xb~aP(#bq'-*HI=SM 4ҤRI׭[/Ó/vHE˖.K \~+@U2'm_tk4rFFvTVIF#jeFJ @k\c6kx`,vw7ovgߜ9sR}ꚚLdP(xv?pMիV^ =0H$ptt8;:?b}>H0EEگ|~% cT, F\.r;0@fj?^opS ͑HL UV\w]ymm٢Em&\ Z6mܴysS,W*MYr)3gB6$a>ovBh#=l ՁHhR}!h42FN(Z9@2OkMMݮ݉aRbqbw]mjj'V'HЧLF#jt@rYJZ5gժ9~x׮[{ՏHRzŊ DL7I$ºʺgС۶ؼ]Ti_?- `0f'1_vju/rX_\7+yD)H$L{ћH>o> =1Jۋ{-WofX,nkVvlڋ(M&٬Svja`PhHg8:T4CR(rpPE.]+Ϭ`H$0`yfSqh> LvǮgK/_F3ݐ! ?úA˾_by/_{nO,}vfslgyl6ټ6nۗ Ai0(M&^z`P *^z%eկ~G-dO]Fnț4iR{{Peon$a, d ۶ߺDb)˗X|7d6֭7m:ryD`AY}}k1 IDATΦ@rd&%_%+h4RUJJ ɓj,+oܴn&0 Ϗy_M9⎎y0 O n@ #Vfz-҉qz{{=;XԳ0f`PkL&٬6G+'v/` 4_ uolM/XnNz \g7r,aA筫ak~,(*Ү_ڵevJCʯoٮA`%aʱYF"3??|1ՐY۽h>FUowS~xr׮NXO /^\118}g[?xD"\[gk24ĺHI%N'' &:?_C%%"P8v89>^1f 5ӧzQ {@ ='=&\bd&o>xQ -/7=wy8o3g>Zn_?E;wjϞ2- Xuu/10@H5Vɳc&ψ+9#ܺ> $B/ׄ\rc/0EuuKV.ZT>QQھĶmChMͤ3r1 ݮj.MN  3 Iq'L(~fzvXvnl^}ڇT*SLjAi6T2?_c4*ܸ_`Bv>m{u8|tIoX)z0zRWr^vC_?h40L&:vc9]NB^A9᫩3z{w޽]-NXjٲ"][wȁn=ysSwwjY;PER%cW%yߒ=^@΋$_Z=@bO`@Oe0(Fɤ6fF GBK>^;S`PJ5FlV 7b0oYOϵk 6csVnlMNJˡ2&*/Oe6ka, ??;ycUU^ ` N GN?I;~N9aNzN `N.p~vۜ ?q`Esf{z\nwv9afJ{CCsCCΝ<`irٲ*Z]D"qx׎'w8uD3/_>}bԥDlIҗ]ܗIҷ0y1O Rӡ8s?JtvڱLzKݽ) e2#Acmx ?.!Lʲo,+;c Ya 0L@\CCS($.]ZYWW9s$>?w]/gOˎ'w8hKV.[VUWWY\ta"XWW|I䷳IwDBɤФoIH7~#\W}WD Q%pxv;` 4zBS Qi4z^$b8 v[^/2 FZ$M&Ѩ"n&y`1$k}a #jx9~G&}tI_G"1,X)zNjRt NɴV+jQF9>{ akn裖={Zm뮫XhES+*Yd?s'w<@ \VGRKTղLr_8v TuY,npb?k6f INw[.ӽVח\ss5h09~. 9skzWȑ=t$=͚B-:$mx2;tQʬ#v򳟕\TxH^hH0aǏw-zCFr©$ \UU ͻw7'*.\p  E{z\/-  /q_ꛢJZjU*dƻ`0B v\A^N+zBWYV7Dbdl{{=^Zιo0(v'{@j9JA_0@vX\=;Y(;[t[ Ӻ%@(e?qЬ0炄V+3TeF Ϝ8pyϞӧTJ-]rsKwB|ra憆榦vL<dRx֬I) gV$}} |$}KK '1[> )pO|#@VHQgi;=!P7Q7hZfZAMK*bn A5kҖ-OqذYata:0JFgOK_dRU4UTuj.ϝy<鑤/PV0~x!u:}YRœ,t8|bNɤbTч0AR?vtؽ"@t NA& % N%;IrMj" )  ^|q~X"ҾBݦMei(uV j)LHIQvw{i:儑e={ٷlcY- jj&]s /3ՙn㕈ǎu444x6,(|Bm&}-wk I_2a2r8-,$^IH7/1( 8E!NNaA+v'wMshA|v2 # :m0(zѨBfH `RXo~mtC 7;޾>?@8gl4zV@jZ-) 'dV%rsCU {vrœAxG|q#xEyEʯ`Pfpy"XWW|I䷳IDBɤФoIH[`qn% tSQ"h2g2ѿ0Ѿe$>fe21K:BXWWĿB!['A^GJ:~vhV !7Tb70@NAy<\?'+Lt?vaZFR I dŬV+'2PsqfQNxBBǏw8p܁ dƌ)e iٗ'iƳkDbʺ%K*0&G]|]$};:KX,,(jYC&0H ;`Sv}9MIލa!z\2>.H@NןiW)RQ\.rˑ?ߕ+{FH$&D×a_rM.K?W&rœ2pAFeMhgXI N5L"++YW g>ĉ.aO/\|⊅ `73PEr"JNA|I޷Dug 0\~p\Rs`4v/p8|윟L&&u:F@N8PQu0 gK x;~-̥iN!F;o>sk }@# 38)H7]Ϝҭ1yyj>2 [NooI6ȑsgCh^jΜ"dم /'vnnhh>var3)uxqEa6 ju//YATUoiad#wht%C9I$BZSO&|1Ams}}>JrۜN_/sUak N_2K(`rO]W*O>t`1HgK zٗ40\.Bѣmolوc;:up ڋ]A  ~xFvO-TJH*cegjL" 7:儵j5JʍH$vsΜ Y]SS\S3x޼RAf+>Fj:t  ڲEkkf(]"XWW|I䷳IJZI!I_-*?GHiFZήsH#_,Ȫؿ\gq/ @_Z#"` )jeZt$քY*zvaRё"a. 9 `p:CfJEn°PN8x'::ڛ:ZZ,%2&;.b3gkhh'ȻXBWd'vw==.MNV5_ INa2ĐdvCߥz%EpLI/9~޼<5,GI:ܥ>%}C(cV+'y:Kdр0@NAL < ZNK7>paVB9vOjj8pVG Oj"i`S*eK$͖nwTu}}gj%}Z V8N'pu`3r3փJ"rl'ք+Z,$r 0>BQLZ#JA.:t7 |UFzՁt=Lz0NQ%m2 gSNlVjt=~Hۑ#MMmnwP$TW͙S\SS\]]4mZH$t3iklizC2fܹ%M;H6H ݮ6{OjuӤoGTV5_ INp0a2 GLK񋝫<|#CkrV*ȷ?B 20|xBO ٳ$rXaߠˍ |Ry]:Mje*,'O޿<=]n\ `0@f  `!?+a%R6jd *t [,nS-'\XZԱXYۉ]ǎu;qDaHW]]4}zqN/\76%#G"Z-'.RRbt -PE Hj$[RȤ+:~NFcޏ EH:8I"D&/JER1<xnw!s~Ru+~9+(uy9?36! S"iJ^ W&[ $!+LG$aJ5yF)t sQ^9a}x]ǎu:s5D)SM+̟>0*|vD"=xٳKf.n&Dr{zj4KVh|$[Zj<و8X".ZLV/3`B!Y@%=5R\9 S Fɣnw E:,q{( +}}~v= uy*,e`?SJ4;;ҁ0@NA [ss^}L*IW7&ф*'ĺ{ڛ-OZcH$(+˫ʯ4WVWVWT[ 8I75uX٬&kjf2Tuj.ϟ;HҗUW]Zj(+Sm9@JRor+t z.W0!)^|HB.ӚPUH$f;`|(B݆IugVf4  `0p\'ŸWIUvHr$|6r!5Ξ574745u479J%-+˫4WULpi!MpNu@pss0@pMM٬t3MTu[,V"+oyY.gَyB+5k8p|/tBv}r>_ z_A'|r}'uU D2BPHrZ-UrD(\TR|6Z{d^/9kb3$MRH*ic0p@f! S/LQravRP*s?(Md4.X,.FI`֝km9ckiZ[[NaD"rԩSMrZ-_z5|Pk鞁Lp{(eey55+++5n) ==.Z͗mow a$!/GqnDɰAϴ! heg9yٟPDQlrt>_ |a+@&HE^;<zCxUx LJJd V+d"#9 `=x .$ i20ƹJ~&TRVNղqRuWs=mmvR0fJWVKJ /N:~ĉ'"nO/1pɓ|>Rq0\7/QA$3r1"rIT*JE|cأp>w` [S8w?슪T*Rd8c^h \?v 8|A'v~2 2uV*%dz3IJn RRI dy&$r eE%3f.MK$\JRXJps֋u[Z,6aX8u 0ʌuu85 :w7⪪ O/>93.Tp~IҗUW]Zj(+Sm9TÉ{D/LdHy<@ @  "nw 'ss>_ ݁~rTJjB!!YLFPHrB!hd T,J%%됀&g5Ðj}&>Cz[wz 3;OmQ>330=:899;9Y0L؛l~/c%I={LN''g_z‚K911t饣\0<11t%[4MZ#sF]ne{ܮ#}Ɔ6ZwqZȦ42M )+ֶR,K]aZ,-K?eYjyAL3 H0 H-Y(SQD|m\A1]qĵc׍K, Z .]$T*Q"\&jJ&*-P3:*S$r`ў [qUUuJ_Xpe{j1c̲ڂn]˰B8|xWfL|6D0664>>411466466866(Iš8N>8;[ѣ'I¦M\omS( 󢬶Sq;v+`cim%Fͮi\%ڻRm*hN/2W}?0 h57  )KϾw38bɚ&Q3;Ba_Rt]5HpA09)aߢtJlNL OL g<lthqzzmJYU[HuZ͟mYޗV(6_-=rs"ߏ't#ߏ'c ]7놎uq(aȆXj+!le)1MŲTzFPٴdZ@zu4mnX7\78~LMqA+v F+mV$ ) BTQ5{.UfoY( &$+N4JfJ:Nh4ՂF8Aޤ\ϣs,ΟQF٩+R$4M$h$ItF<_,NJE9TW 0d:8  絟gW^yev3(I2[;} CQ4mx^XuZbaFv8!x^\]$9lrdi*.ӿbQ{G$+}Xرjl/?FQkͥM͛KVOlr"p8ܜ=;kg빹y.8vH ć/:N8npںXhȆIs7GqjrMm-<8d6_k۶;p5絾~yEx^yǵO vມǾuS IزTT/J+" riE4.&$I=/.(s'l4(۬(<ϙZ(p a(Ā.ua(bxwm.8AT]u ;z&%Jzw pm!ǎKt} C=t> #|BgTiہm vuCCnV3R4J%U(,YjI.bKYhXdzxR jXشiS-IDATaPrvF߹9g^+kxxukbQ4^g`Vs9 eYغTEl6(}c/8Ra0{s 3+^:NG+>ϭvyر*K.岽\֠c{č7=6k]+?\YЮ(i*\0\*mYGr> 6|wmˡ۬p6,KY1jwWQYEL$;P,Q,\(P)OpW,YVX66.cUc4S6I5̶|QNSz4mdoʂtR(l C.xRyx, ^\M(MluYyt6`^{ztc!UTU0OvìȭZ jէlVP[6˙$:wXT6?nNQDAvpssv\wgg Luq} N>pq`/mgB?.r.-y:a +?l68;JSmTڲg[[꺥6GGG1M]/IR˵͗"Y;(zxHI_D7S}wZikJߵnno"ܶ!JW5=պ(lc~S984dHj:@]6 ߏN ͔fQ$i=UT٤<.E?$ :N0hi$$IPUP CaI(9|VL r\gp>B`c[nۙ[MСl-VlӤԝ,R+uG6wm5ڂPOYpڱg;3S )!^Vm14dڦM%R蘩5 FEgqѷmZ UWg>"4M*~ܺw?O: g4mPδ,{h^o0$IشHї_chHI-[zh&;NyQľjAA8NyG4 EAnTEu]6 4]5M2 ep4j+E-[,*5MB麣TIB]I}?>ݬt9+پ2jjQ40.mjM\ʥ|$%EQ4VcQUi*cSX0ƲΓ,i$fƻsc>ݔeQ((Mcٙitji$IlC脿4yX'+ ϋ\7cϋ7P&f3➋.ڼ.NaP׍v(Ðzv[ռx^ŶPMJݫ.i**T,&ÖEe&di*|5,_E') $e[kig˩ㄍFv=[y-leSӔyeAUBUK}eQr,4CKQ4 Ɣf3$+Mӆ놌J-q\gXm6ʒzc7^>FYJsOPɥ$7c4[UdY܂SU)n+:+4MR77K9;p&  pBfff㎟ ]t}kMMM2o߾=spPh_qjwVz|ajVZժiXZ򖖼9qh0-N *iiHga(,ʲP(Fdժ-.L\.گ=(8: lNعw(J0V[maPZ70Ll;8 }? q"ϋ0qh[ٲd͍,,em'n`-}{gf,q˖gn,K8-2ƲϦ(Y8Y7;d9+Uy4DZn.r38.CУ>jSO=я~?N8p/,,KVIQDE) OvF8ž~T7 j[naĵZ0?RmJ8NA( xTNgpT ff_G.VQRt.v/SOUEE 躤(aȆ!+2UjlkPja`[v[vJշ:),Z,^irgZR,Ƙ˂P`J*cL ebVnqc"ʲ3MP8XqꮲbF])KrS uC*=YY8;ò܉!˭A іJZ6OZgۮa~$Z!evON $o׮];|ۿۓJ7œ}S N#E{yQ$pasJūՂZͷ u$7x7s6p]B׿׿r6BBEEXT)80`R)|+J*ǵ˖zmY+CAułKBsV-[dvddKRn܈e^H?]v---rZg?O*r?p(s]wuW0ƆgggcIw}M7|婧?_W===<Ȯ]^z饶V׹)~R\7dYСCO?ɟkR099ycXW_x]w{]_ȑ#]-|Z6z7N|;ww'xs?oѣ\rW+rjjj||km-c'˿˽{|3sO ?я&4ߣr//7>Ϗ|_\ZZ?/}0(mpfinǔtG-7 $y.qFKӆF4×IT`ˍ452JVRҙT$!MSƘ+ObP,i m>:Mg4|?j; qqFMYpݐ(%+0MPn6masߏmf~fNbrj='BUr ^笊"irY0Hj48h.Y3r,Z|Ժ2lXHGZ aF+O}jvv^~||< ~ߜj_Wo׾v?m|Z7pC8O p/?W\K/;q#ȍ7O?o喁lڶ aN~^xaݟ'vܹgϞGyng?K+t&/0$ 1A)qE!5(-cPಬ/| SSS+mBkV*~rKXR^NcccG͛73:bL?Ih644T(8@嶌Bfl6+?;rȷ|O83/kA JPh#Fc---r-Ї:_wfZiNMqdd_V عsw_ƛNpBU&ǝ26A/?~ٳ/ˌ1QOӿկ/nXeW5\s:thϞ=W_}Fq7#W_}5(~y衇}QEQczZ+ ):{;>O~}J|n oя~ꫯί҄2 :lุfnv}uם__kܹ1{y|g5 ZImr裏[ `#A`Ymݶg31 l1ƭ aݻ:|N6̂q>(:6$6$6$6a`ܹs{wQ{TXI֍rl@w^{_l^C8]z7tSTZ8' ` ` `C`IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_5.md50000644001725400016040000000004013273140074016300 000000000000003da31f599e6ed1fd37bdf8c48f29c77bXQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__incl.md50000644001725400016040000000004013273140074020265 00000000000000d3cfd53b004ae7d7a7d26a84d620c5d9XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__dep__incl.png0000644001725400016040000000625113273140075020663 00000000000000PNG  IHDRpYbKGD ^IDATxLSOK[7%Lf6ݛd"A]ę".s=FU!d )D R@ a"n[FY)wuЂ*~r{{ 0v$2HdP_<|VV5<~~~dƍ?tuu};vxe-Z[[+ٳOeFkk+! A @ <'<b-J<9Ҳ(ɽ`qnN`GR;vvEHR& X,Hfj /ڵpkłƀ?o>bϏϷX,ؘw7nܹs'))w߽zG7nXk׮%&&ݻW"t:t:]NN{キ+WL1P(B_|/Аs?x`ll7|3qqq/^4.^ |2YUUR KBq5t:] 9/h4ZQQ `ff!%%ᄆ:uj̈́,ݻwәL&9|pSSP(ܶmoAP|>D"9o^oXH$bGuju||ʕ+NP(BێOz~ӦMxd||f퐐*fKK5117l ۷ookkp8==='Ot!{6luf͚<|WtISh Tաa\~!ǵdJ>̛7ozl6[, b2dvvd .jP(<믿VT###EEEv"drV?%444̸/I*/2ln#_ܲeK||HMMJG%H111iii^g^jH$:w?;wfffVTT Xl0222RcǨTo}A™L&ܾ};&&͍3]k׮'O ;w^l)񮈊D>d2ZOءCepNx<^yyyBB=L&Jظgص000;DFF+W')huֺ:O裏u,A A bvuhkk#\&[\: P(mmm仿Zm\@_߿|\uۇ4YfŷZ QP~T_MMZW^j6[{ o] ~ވzݻp_PS wB>)`zo!bkjj pbsX۷UBI7{Swސ#fUHO{*+ﻼ|baOc^BaJK>SS,`4Z+V~~䩩`/t_  a=>v z@ @ $2Hd A @ $2Hd A @ $2Hd A @ $2Hd q|xYƤѼl6l"H'NX߳MGGG^^>'H/**jOe/$2Hd<)e LV'H^OJSr%“.<PWWb4 W^lR4""b---!搯߶mNg2.w[\s=pJJJ?!$ի֭))) ]f͙3gK־ F1lׯg0bw H$9gGb@yy9> 99YV_ðQSSѣz>G#a VKRRRFGGw.t:݊+U*UQQBt:ZL&$$$hڂ/ryXXXvvϟ^{,6٣jI{}Ff\͛7_~ݾ@qq{Fq``@Y_رI*ό7==mZ  a&—osXX* o755EFFڊa`F9 A{YcP(Dxsps<ΜF  _8r6[oOd2իWT*m>bxx[>d2x_wq.Я˜n: P*R X?}^  >*BlX/fES;88h]'((~i4\eN7l[nRRRbqmmZ'1&FgKqH$ϯj&JSzDFFpwwLrr߾}O_K2쯿"~ x֭[M&a}ɜ4L}YhhUiu݌}Wk׮ |rRRp>W4-<<:p62,$$$(((==];j>( gfft7, <' 'Q˜^t0bqy u9#,)t Zr A @x_PTTTpp0ĂmJ\.w_Љ'?|h $2Hd *]fIENDB`XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__dep__incl.png0000644001725400016040000027162513273140074022034 00000000000000PNG  IHDRFߠdbKGD IDATxwXSw_a DD@u[QjݣUjZJ[78pVVX !iPa|?s3zrs,l OH@ Pk 5L@!9993gg`Lǎg͚t5(k ^^^bАZŋLRӡKj3g:::2]0СC^bZtj D"]Z.@hP8qѣSL5j}Ν;k֬)~LMVw` ;$ }}}GpҥK+`%ݡK.Nrpp(m@-CQԝ;wCBBԑn.\@IJJ1cbjjJٳgJJHHpB``#G?#G󃂂,,,Njoo/H>ɓ[U_+`Q0xjDp¨D ϷX-%[ZZZYYyyyY,C+'No۶M,;::߿?99O.wX0(tsNVڴi# ܹSY,V~=zDPP߿ܿBP*G>|֯_Kyz B.]_>nܸ9s͛#Gݻ#G>|8eʔ={<̙3Zܺukر #FugϞ >իWe\_.xҥ{/}PrJu1ckƌo޼ |ѣ{igcƌ8pݻr΃e@mBO]'oVϟOJJnٳG??\~N:UO>ݷo_``>|xᠠ'Ofgg/_QFN :x`fft777ӯϝ;hѢFrEB|/\x1c߿_g\pC郗/_^~u?~Nu B ????B_llD" _>{lkkkS^vmĉ..._uf͊_5|pCC?2j(CCÞ={Brrr>ߡC?aÆ<8x`I+ a5B< ”RB!ZCRL>O>GL0A+a,EQ?C33۷;88hѢd:&zQ@@YTTrʕ+WkN._z֭['NxyyU.߽{:f-~ˣ]]]bccuSHG t[A ^Z˗ݻw7ݺuKLL*/^,[,))iذa|}}<(Jcbb.\x?СCD"ܹS*H\P(\L&k0nܸs熆&&&޽{7((J|Twnncz>X~۷顡mo׮]={{9tPK9.]5ܹӺuksssFۇ\&6c u˖-8S0iҤ={L2bM:f.Xgԩe*8((hڵF_p={'8pѣСCy<^+OMMYԩ۷;u>Xr'ۗlٲӧBl~Nݺu7o^aaѣ1 ZiUw :yz2 ޽  :tիW/^ ^5@SB@ gnn>wO9.T!^J)d:tPyԣVl%i#jݺ ^C@ UH 0"Pv\JEZpl֥M^^"kk5@j(JBR$ϟ+J" mbg *Ç_ss}++33fUt ,w2y !))9׮(bn#444**܏P>KpXET*>b>ed61aX,ssNr? JR.! Q*|TR &MLY ʗb}=#l{LllzܐFQ*,T))Jb aQB*OQ > xYYu~643뒙ydD *%八TUThű66hOL(uή9q,wXcmŢ(g蒕Ng99emmRS4q8=iߌ] +c޹FݟjaQMUC?~,S/_<_vĉܪG^%܀Ӧuvp+c:5YZ|1>t Riv||Z\\Z\\"665;FQ33CH  vmbccjcc* l v츹c-\aq&N0oU*Ώx`AiӺp8=UP}ͽ{C~Vҙ7!С?'LXJk=Ǎ;TT8qcl=cm^!:ǢS=~,QJLuy}: Ȉ_=/\x2ku ;MԠR+waa?x8Z&ӑX,B(??͛;:VSgQs}>CPB8ֳg40)~fQcL ?enܶ{-D<GPu>oӦa P(T7w.^ZubtFRiTMn}}݇ $B0w ||-RiǒИǏc|ťXnݐo@gj<-_/ ]RRrVŧ^9vǎt湄#隹\cJt1qQ\$gĝ;oDst֭GW.dI>k嗧d2z'OyBF*uХ P}ztkmmjkk* ݖD*Ziff0sfq:Tqqi1aaPIdfZ:47OWXX,a)Tޭ6njiiT)tE?dҋ29bv5x K^dǧ9mϗ~H>~]hee%q==zz&s8S̛Qr9dmn|6\NϞ-ڨ~~54h`RYyCLLJ#cy;?~ٲKP 5=u99.=;}Wٌ3r>4tjOn jct)%%'<<>4T/+mlLboogعE 25lV) ]UW?|;b>bG'}ys߿D92G~yP޽فkT KwXnH^J<}K!GLI=U0@AHOϣO2vttrtrtttr_WOi*e0nvnLXfN=\W`pWԷN6ռ?@`?&kwB_\U̙sbkzd ݺmnn4tvj/sKWWs{Ӫr .GʥlMeqqi11rs!<҈j5\''z4IYPIXիD>>NNLX( :qn_ ',YrA,]ڷKZ\[=w=xg>q/{޹sԠAm*j={nc73.d2ERRVtO@Պn,\63Bs0Çex&MV\__wsZ?vm˖?ԡ}$,Ltf󒴴VVT*BXDT`N^^ Sڇn}B ߫2\MgllYF[1tMeLE"M]w d^;74Tolуqb> tv+W4ɯL~㱍y<ѣoJ)i+q=W kW׬r^_Xo DPi_$&f(*Bϵ5l LL.)  d3ǧ}]="9ɂJ%K.>С ݻ7{Xov하q:̟i]H7q촣[zYӅPZq)mۺu[+Ѹ\O?*}Gݸz„qq[(EQ?{#V=k,Ru ~aYK::9`.&Tfoonmm{[6`Ǐcҹ\vӦt+nǎ,,ZVݿ5tw?*5{k^<[eeoɓ[_?iS{+dt&ҹ,665;>*N.Wy73qc[[zlPx=ZZJ/Oݾs?lnw|sq:.^ܻ. F L¦j[y=744q+?Xz rØۂJ-˕'}8…/5sܛLE>h͚͛יeDP(RL[RiJEBLMNNB%=*/ۊuJEDoog:eJ"Il׮ DCKfmRYT+,}LL3E2E~s͸q,[HA ,'0!!g&$$)!|>G ,ܐ딸w#n4:4`܊+gʺmA'tV%rr ݛ,ӪxDtҳK/ZZ=ӳv@ P޽ːJ霙~h`mS(TnŽw/2##Ȉߺq+1vM;Qs+";G кro7pn}zs㏷gw3"]|5ew2 !ښi"Ȉtu\&Z bgoog//aƺi;v<{6];JyӦK/=fLJZrrVϝ^~Ru_mJo;J"]zYf]HrVPhbaV5J qsp&tmfܸӧwƦ@>[Ϫi޼I:XFF޽c|}ݙ.S:oee:g&88Xp[kИ0Ih$""Ys0nn1#11)zUJ4-zl`Ut7oo9|fkqEE,ۨ(i~q͵f&4lTq 5s]bgW1^YU7]UT5=};|޽[1=zwʟ[~O!#4g&+.}[''՞V={PX(oqk N=q̯έMmQuoǎ=nAӸɓ?>Y(0]'A PcYӅ64˄Pݻ㺻k۶;wުhM;R_Ot3N}u3UCk4koލr>~M>]d2ER$%'YskӅCir8lWWk/kfe5ѭ[mvoWuK11OLLh0uFFҥ̇ :]ؘ]0cSF}mۈA0]G >qY{@@;,+]4޿`ݛ-Yҧm[WL.bbRf<5xguǙss A&L}yg40ɣ8CC'|학3OMtEA Pt.+!zz\;g&/Ԣ=@+waa?ZY{y`0n풛[4q77͛UsrYStiff_lֲeW,f/Y҇JHJh.+SG2XVV}E|h$44&<<^.Wؘ.W`Z!##USfbOWf,k˖Riv@+Wf;:ZT <ؘ`u?TTJJMHHKKNR*USS:ر:Efݠ972RfڷwspX]mۍ7_ٙWC@aK IDAT84hO@~iffH1i' jWbXE1]@V2:1W1]8T&R!,LrnăQiiz͛;.bs۶.L'YnرWTTշNGG~ӖА&L8!$'Hu׮ӧ720wV۶=ĉL/DPlMHHW(xN~sq}aw<Iݛ-YG,vFGv=u덛7_;7DHkݻU~5דr1dgY˗_6ӧHj5B]VmllJv2u㭳s:.z@z0nLvv=wXҶ g7nޱ C۶uaϨ\#]BHPP3g:mmmY3f'%e͜yD,fYP;)۷o>kkk& m=U}̴ܘ*5twyׯe/5Dq:&$$T%+ -Y,tJBi}8&!!]s0nǎ,,jܢ޽\%+4MtD_wc.DO?׮iЊr}aüWPOG ѹL"IG:Wjmdgp#r7Vܻw#23[bg]PjJ4Ms?~|2ӅVX(4hOnnիsLM ..<5̙3S;uG#ɥ+ p-Җ󄄄ƍ3]аJ')Tavallmmm]uk_2BWmҋLR"4W'ONK5ɴiǟ> ظZYHٱťƦffB8HdWְH$]Wiii;wcf WP((PZZVS8pLDЯڵM<bbO{Deccvؤv]{eŊLÌuto_?:HP*UeťI$qq 7MٹH$he0qÆHhq.I={twwg `Fxx8%3>̞}fGc݌5:%hs稩S43=0hժ3fݻeǎW "]ZIۈB9!DV]6UMprd 껬cۮ^=ZJdd[tקOٳ/]zźC7a\ ?ܝ; 硈tj:LmrDDrICo}}ک2]5@MRQ3g.(:4& ^P[gdtcׯurd_?sM[lYy""]$++_~N[wwzH$pvn`btƍgŋ3ll̘4&&2B&Sb9oߝ'Y<+n66fKY|߾jxbM5PWio&GDHccS !<ޜmmF6uүڳZ1]GBrr ck8CCc&m={.F\lsׯrU8DUKyyE==P(hqȐ<B,3z6mD&2]NucX6 uNڹHOo߾MP8+jΞ=+ Ցn!}kB@ /^$;nΙs_]-[.Xܣ/]s o.H<##>|heeҋ(qIII[nyzzj^-//(44#F,^ݏ;~Nj(R Q UO5WDDot!Ѵ3]E93;9.P(\w4O؂aÆ;wo߾EEEG-666'&&iӦhCZ'!dѫWҥz7Ξ=[-*$$TQ#GΞ=ӳM6꘵ zEV/elGFFhтAg%zHTAq<<8xAmժSzuN}R4vlӧ-YriUqDP[-uKOWDٙ oo瀀v"@(89YVV5YTԇ]7lԣG]4mjkqwѣ#Fڶm[xxx-)))J2** {B9!ĉC ٵkW d2^AAU!999&&&\u7|Yfp@FF7|PA֭z~K3kJ4-&&$k)==C>|ҥnt9Պa_?d7nѣl)@- f-}eQQ|!DVV(HLP(Tϟǿz~5 =77ȗٳg֭[oߞ~S:Zvy֭[m۶K.i]hnnuѣG-^xȑ={|]ǎrrr4O޳gٳ葵%cjj+V,X &&yȑsul)xBڵkgϞfq|СCϜ93d|L6-[9sLJ2eʔΝ;=[nyyy#G\x1=fA`)C// ٺugmZV^98X1rbb˩Vx-]zϽқYZ{$+%ԸԘ$5!!].WB 6ҠaC+z%>>g.R!Mټ{f-Z8X,۷  ըQ#LC@}wf@kOdC&0]HE]{{׮ig!RiVǎOWWѥ ){mRQbff( D"__̘.jSS# ~߾M޺F&={pvgb:%++Ҥ͚9,_ޏZ*ؘt`ѢaaUkcc6kV]~5ƴ)ČT$U"I{kiilܠGAA]&@I d99EYY%IQ捻<bj[}B155:uz^&)XKWi21ѧv\.{߾ݺm^2]N |MW4aDPɲeHiA𰳶6ad)reNNaNNaVV~NNQ^^aNN!fei J><NGTٙ}=A޿zo+ѬL##~^|˖'mޭ1|>wѢ޳f?Cu[DP~[2SS D"2LNW YYEEByVVAff~VVAI YYs yffff|.}syF[qRնqzjo p@嗗^Wi21ѯ3.!Wcƴ[99Y2]N8c׬ܹuODINo?sE"+[u*Z9A:MIQTi<: t8KDz܈/[33eieY}}#N_uϛ7g:=imҘ֝HzOcM;~:0X+Ν7]6{"mtzo:ٙOz+ZX,ORX(#u[TPw?[|:apV_Yu8311ժ5}߿QȈK}L7ÿ?i-+4T*z|>}۶_݋rO6 ڵW:up!׊11rsZ9laΰ J:W|,jB@_UO6j|I89Y"᜜˗?a99 >a˖Nbs>8pwBB:Ų03敻S*U_~yR.W:45~S[djt-vuoލr7yåKφ wcQTEZA;?A"Ix{{sPnaKNNu- g]5vV3-ilK@hLqJJE̿||I9w #XJRPOO+ =J)d#PJ,- ۴u݄lGqJ>_xťAÆV;63sgg+;oEYŻmtS՜EKF5WW/J(ݪb6ݪ$25ef)䒢8EE\m^TccMVVU*vtDbb&sMY6!"\SJ==zz*:ng ZX\l߷oY\B R6oiɒ wf3o^9hܸd2DL,G(HDU+C=<Ξ]C`౫W_$$VЧORs^1r%=т\Ζ<U*ӹ\Λ7}A 4|Z>!R- IDAT$'9,-v5jݻ7ϋrŘ1w9l^EnH֐˕g؄d:ÊO(e;8XHnnhQVRU|Ν`, LW"E\\j||zBǧǧ\Ph$hӦo)xl6~֬n sM""##V9t]4ȳф$ƍ_|BCcǶzRIIYSooiP}:vl4j2BkRRtly.TPffIGZ-]ZVi#:٥Kc̘v guoDI{ӧw}0KJ}eLP$Ѝ"V_t;ffddcg|^ItL\DA~N'z3T$h??X38l6anNNgqO>}Ylvv/-M{˦(jxEz27q*fܬCBjvSն zQ*Uz\|0t|YI]҄s:vZ(?R5v鯿.TP8oq7^?`Slpԩ/``+ +2RZP #U;u O>])cgKE_>;[Ov:YY>dk_!t9aKR'r~nesҬPIh$,LuJEؘl4sf7oog//ʕOzfjqەq8:+WT~{fꏲX;_M! r[2Ӝ9݋qԲŋ3.?HWfܬ;thT 5k~~ Yu8%,CCڥK10}w;vo_˩&Sv>r&tf!|s\O۰{@@;HaW%-emJJNoW gJ;knn55zfV:WBsE"!fx}ZY}jSP {*İ0ɃQii\.iSooI|۵sst6m?~~x8ѷ x4 BM֭֯[Sv#n%t~!.5j֛mʕكJu)fd[ZUỂ:ҥgQWWi16֧UW֮jt9hLбb USzxPhY배P^/r ^5v; 334gؘؘ''4jdS-1)>}v~Ri˗И/d2݊۲X"򕃸vֲD"{^=SzY@GuTnbBX-Z8?aC+FG8pOffBejj@#F:eU)}߾;ǎmbEk:mkLR U>;/Ϭ-_ K8Ɉt*'..Vⲏ-N0/cgLn+*R$'gi5FG+";3A6lhEy5Bw/?IHHpخbs˖N~V͛wQu5W4&;@ݼ4Ow/rذ%݄f?>߿i%$Ç:ek6̙G}9s>V{,33/99 ΜZO鳣m[e 8Zd{-|'0ӵTe.ˇ盍#4Y_%̢/* Fչ cgAMsfT%f\ʄBA}ѢL>|y"z0naDS(;lԶL)99¢VHR:tXWxpp(Y45fvϳG$$Ç\\affJ)[n{3fk |ТTƌ9%~.D2|>Hi0 r۶;6ٹӵT,k 3}9.G P̘ԘIJttJLLJ||*;;7pumٙէ|x);JE]P af-, Ι eS5|Vm _֧T>IBCc^LH&Doogݦg?=/E _~J޽w֯^:Gr9zNMv.)II퉋K?g ;nլC``ԓK(+.<-[j';B\=`]\H_Zo߾M~2uE/.+i'X)hSSs53Z)cgKEPn2")I{fzMkkSut$'0<7+ⳤfӦ}6g ~s\] le`ΜyxxqGsC-Ztx  iժao0k\23K##&%M.-XhH&SU|Y"dfff|YRRRah`t{GG[;{{++TheΝ`(ٙIQ@9xR1L/'LN22*9pV.O)E=ϜyP$ܜХ[ddm72p`׶''|Ϟ?垭MڇJk+5`͓'g򑲍}gϞ滚￿k74޸h&M#տZi-(,ϯ(-D4*  zۻڲ_:hd^Bf%E;3LJN"nf~bqCjj>x]Y) qpfsl"._~1ɓswjk+)T*1:I&ЩR`=fwĜp5ݻQ][BK4=MeVW|(33‚H"YQ(6N'N0`Dtf&dgD ÈDFb0o==McB͞=W*U p\VXm݌舕ˋ8aB/J5l=}- ԩ{=ʹxqAԉ GߵvQQUttEBC=)˕c)vmcg޾w[w!M?]KG2dmΉ-(hT쬞,ó(vB13ÔJJHbFRYYR $WWGj2]-y˫@(tf&QMi^i~JJ~rrݻZ"8^ݩxh*+{Dvwzx8Wjjŋ Z #FlHd.,hbLqmnq蘘6`#thwWRS]H⋳O?sgYgG w WWt@I$2=t,/Ekҳq쬹9VRR_Q:\|~D"^lz}ʹs@֭P( EnF^5b9x.ꔔ|/|$O*Q\=<'<ʊw&k˖G޿{wEK?P(}Fww-- env.]ܦO;|xwSztپ}°aaxׂg-\KNΏxҡjk]ްa,޵;L>t`? ZVVs΃- 錝ur"7I*geŨ^^+$z{;inAA&F&SV5L(tzx8j/\VeݿWanN8# wѣ\FƺX>xQQ۷OlاOwGi"Ǐ L Z6eJ+cOׯN'+֕+)ӧ?~|Vlkiwk^>q}!h,;h?zxVN6 |!jݢ6.H$QSk-`tf&WR-Aa0(^^4FLvVN0EL1PYYmF03D (˫P(חK:[?3ʊdj/+c݅''LN22*9pV.RI$2$ĄTO>9vS憅yaydsm~+=e%&FD۱cСw%ڮ]8ujnD޵@.WF:vl޵/Bߌ٣5@'Ɲ`ZYuRv쬕ڲ_:hdcS+ۜ쿻P/ AgfBffImmDfAa0.ܰ Ave2$čgEDh.Ѩ,8nkD&SLŋwhJ믌={~=kW#7g ĻC!ʽ?& ̓YÆmIJ2p`Wki_ߥS$'ٜW-ht'D"k8om۝`M,BzumQ޲N~90LMZ(i6pss+oC:3ݩjPXefϞ+*z\.+,̫367}zV>NmmGm˕%(%%oϞ?Ϟ}N6-2>ҚA~LxdGw!ILOIONκ{WP^^K$ݸ\ޫ_ObӁ(zȐ^^GgM=˒9d5i{ӦEBcϯhu'O~BpS\\ݧڹs_p޵A~ tٰa -] Dx`嵨INh)X_ QoJEEڙ YY55L#3$|BauJJ>e>y'(.÷Y3Mŋ>ܯ_pWZZs{ܑcƼ;{v?t7@+V>~w  k18z5wn4ޅi7LMĤ?׭7 -]cg[ ;Dڄ\,(Ba,3ٌ`7 9xWuf&Q=r2-JIɻ?3/ܜKGq G@A<9L޲e|[= ƍ9o^6mچc{YYͰaasF÷8uI11?g.O2_vu߱c"޵nݾڴiGuOx[\:X6h0`0v@4g62 hnE%%"=,0 $Ld,3lwƭɓܔ<+dPѣǻR(\T۲6|[ntĉm-E"Y%$DN޹smퟐcUðg .= ܦ2/N4q{z]N{H~/ SR7guҙE+7Ɲ`ZYT^xh{}9-0fR/:o!3(J$99LIT*// rYl6>՝W_{0m}we[$DE#JuF֭7vuOH1;\Қg92M4ijq8 ߸qj][l jչOs7hkj',ڲZMeⲄ5^ ( %/_œrqKu1||ݩЗjifNV6WS#y8pI$ p ?\v͛KaU*…G^M9{v^H[>xkٳ<<N ^:z%ڵkPIsHdIIS.aQz]K{)+ [kפ9z-]- ^Y;P3ń߬ Pߖ|Y!DVVD__LJu-D" EZNi,+lz{;*'LN(.AAs.]Gi۶s6dL3/|ym'.KJs] fĈHxϻc,_~/. h|̲'f]AX;܄/1b֭z-]Io ;[YY'jZY-Z F>V~BzzE(4 M2\OOÕ:3rrʫtf&@^sRS PJeHΊHx}mkJ755>ڬTΟOشSFiiRwbXgz%ġCCЭYs]+. [t̙Qx^ᇫOѳZ:;tfѪ;; ;@sH2>2:z^^4̄Jboo`P fߟac/ 9B͞=W*U p\VX -u8oŊwEEU~_fgmmñcoU^^;lXXbb4Ļ(iagClYw!b_szo>`dՓE[ZZr5i6g錝up2K{@KOպEm\%x}YH' /.}D,nLp2N^i~JJ~rrݻZ"8^ݩxŋg:>1bkllO?ih=Lqܣ[o %'&Fs,2ܺƻC!I""֌sŊ񮥽DF0ʕM~5:whkf錝E)XڃV~BNNeeQ(^^Qz6.' V "ͭ@C̄>}Pݝ !A IDATߥ SRy,/ɓD"Y6]P,.Mix hhwo}`4Kg쬓^d2Eff)_+%a(6&&'xz: cL((DoYYL{4oF7|}0!n8reZZw~f^^9חΊxe࠽ZaVW'm.an]ܒ%'ܨGsZ@0 2mp ~:τ V[3O_JûA"YI %6i{IIw֯Ր[#**0)PX`Ц?vV:E+vކhY`DPLݺU'77'ebn$t@JEEڙ %hG33!2MSԝ\ :W롉ҽ{ۋ[ܘ81bBR'O&:ώ]Ř*J,no95KK%.<:o^4w9m/"ʊ,]0e_:hE?޸L+Jw q |:?!=0KKS@f ܀Mm[L0p R (IN2SR32*ˋ}\̀~?/?T*۳sӵC޽ORΝ>{hy0gȭs漿t k12|/M5d(~kqx.ƌL޲eο.vɢ-+E{5錝ճ48?A I1// ЮnBQnn9 $k-+T<~zgD$UPkxOx8en`D22}uki Qdw %//tqqgl+55y۷*/6,l޼ 2hh%8|VX4"O?X|c6vs'zW+cg}X(ٙ~ˋ0"D b$?U~'ߟL__:\ ډ̄RHsQ0F99<^frrFq gu?A.>ŭcnMg72ܹG[,7/GE"L;Bի :-WwՅ LBG ]K믌ѣ?xU;^VyN0:T;vʊhmm/i42onfb>_o¢* ì- 6nXΐ ڃČ5Ѻus‹RS PJeHΊ7˫xo._^aO[kWOTݼy\Vbbt>;yKvǷS[f~~:`"ԭ.߼yaar;tfVW5~Ʊ64 @C 99hYNN9;nܻ(?ϏZBH(z)̄H6b9F6t y,ٳ|R`P89sq0/Y^U(kWN_qG>u bbBbbBxmnM4eJ " mð'gΉ}kvvYmB 6me Եō˂.h*vVOmii ҤٜUR7g:8IIEK(oo'6 5p=<fVd2EaaŪ2A=xۧ;>oBS_/}4?%%?99]Ayy-HvrYӦxD9a2>;;wN2%rJLgo+>>ϟqo.lzc„v樁s.=paLll(޵1333;;+hdnN?'??ej\.]οA;s':V.oNh)Z "Vkto_(`ghl0mKgfB~~%Z>n&o66xڅPXexOIr4ḣ> L@UU]pgg?t矟ڴiܨQ=:VII͡CJ>wL=Eu:4jWϜ5cF_ 1D 22r]Ϟ8ٳ.E >p8o}`4Kg쬓N 0.r27\MK+0 EPe0(x ^CX{Y@ bfaaꠕԙ: \VeݿWanN{q8p10=hJDǘ0!"3tcL&wozmN'/^{ٌ7;;+Jfɴ0 A~~ [[Lt @PegdU*e}p.f3 tEHm짟Ǝ}=/.xU҆,-qqܑ#{ܼyM\.+11`S}y9t#vW3ɺ* %q311ڔN l6#-øZYvɢ-+m٦hmqO>TU&pQ˗% H$QQ- RRvtf&df6`L@#^^4`t@CFq.޿)ՓHVAA>,.6 -KWRD>s&є3mۭ7fn&v%Ç#Gn7/zxb:fO vw!G+VNZҧ);yrqh`tSjelS;P3-5H]fo@ T*U,s@#ZD.W" tBLlົS! 99<^frrFq Jx gu@`VQ!eɓs{Jrrcc7z; ǩy;n„ӣL#D}߾iچ>XIxb>ܔNvc[ZxZ?h]av*:7ӊJcg֖MyF#p |ŋB>_yQzzPXa3l)W33Qg&h6p}}&ӡR._\__w!Ƥ^qva~~}nnH$ û{w=T; Ԅ~yLbϞxׂ=~;r䶑#hki/v>z9a:L1zҚ+W>1XǹǻUڧݻ d:~{6yrRF:sVMnj7+ t=z$'']ҿLgmuu]yc, T /ӋӋ*T*?#0Хo߀@Á%ʋ3JBg@SL{Ct`xWad̈NNe23T✥)4sΉSegw9ݝ7×,to۶:4t__:ޥO\mDBR@9&&dMaXnnyPVtr5kVXѪ@Zbŕ+W 4;'FԷLKݜm;`\,(D(Hŋ"Tll63.JgUutŪ>}P͍j =!1 KOOg 4:? 6lw-i@0ߘ+cA1; :!!rĈݴz߾뢣Ϗ Zra%Z]1#jȭOwj"?l`t ΢-/EWnjҹ 5gʢPl:$ h}YJJƕHd%f}M4[ŢQNN9v0Ғ*3!2nXd2A@-]K93*?rcpiGĸ8ȑ=nL۴zlF.ݿa_ yZLl.cf3gݺ8kiVVD>;L8J cgz'' ;D6ho.MK+0 c0(l6eb]ؘښi&d2EaaVfBvvH*UmLc.0oVrʔ.7D#bbBbbBxmnM2kV P?**pѢxbdkmqzՕ+H&hˋ_uZ菝uA{'(vކhYЯ'nZZayy-al6# ḇ)RJJ()ͭ}պͭ@0 styx"#&yx8Q1#tQޅ`mۄ|gg2upp;_?\1#jܸvL9dyxC{3Hr^ ocK.;n\Okit:V t:̢U*}:whQsJoQh1H]z|~qJJP(411!̠ W'' /.^V&ee!(3)A40M&9ujVN]7odɠc?x5..<11]+˖JK+t V/RUS-7R yLKSS {L://;;;b&75~w-++ Z|;6=222J >V"Hjj$ :XUU'77ިH 66$lM&[HB]2ٚL"^P)G^v")23K|~qnnJ"Y,g6yy../Oݺ@J1afffLmH`8:=;6vO<_} h&mbhwȌMgܻwjp ط޽:twЅ tDwE>z?Oba%ZB-Z )[i^$ٙTZZu#lweX oڴ[nO>upphuppܡ<,,,66d2իcǎ=|g /+N)njbwTw?6e0(_Z;P3..jݢ @T,,Y,Q=Pf@h)\VQPPքZYL{OOZ.nCpୟ01lذ" ò"""m T*c@QK@|+Nst[xyϟw둑k, z-XaOڙվ4eܸ_⋡&0D$R\3S0335k˗1 ?iZ[[ȑ#AAA=åKlmm]\\fff{ rvv^nݡCX,_|a@ @/gr|ժU'NB~ hjժ$tjNNN~D"Y[Ϟ=1eLdAӗ,Y".\VYYaѣGlX,(-J]v?t:} :6K@ 40]] H$?s߾.=^NzRaÆm:n\c Guu]JJŋmt鉏?ѫz~{>a}W=p ڵO23k>ٵkҊӇE~n>1t :05 C5󄹩Үfk1hƆ._W_r%ZpC Ą\ܹy''xd2ISH$M`%Z!^/]9{}T ih5 Q7/_b6jԨ#FڵH$?'44ܹsϩSO`aa1rK.ݾ};>>~ڴi(ƍ<ĉ GNII9z̙3.\~ƍ7>}fff ~?PUUU\\YD"^-ILL,..xbxܸqd2yժUkwqq1 6dee=x~k׮=}EE]pN룴\z~ȑ#g̘n߾ҥK4m  i6 JP\\ ḇSJEE23KtzY-2zYbw9h:OhQVR3=N3Ou>VUp !Dۜ9T%&>qbv,SxOxOjj]/>צO;~|v]| !DHVVD^h>Ի7ܹGÆ]KkuuR?j5kaGT*\.g27oTT^nC~wJ%Jч744<VP0ѣG{j@gΜAnWTT`VYYlTjnn33gM,H```QQ}PJUYYp+WZ}JR(Opq???-T*QIpQU%,Yr|M>>K]\zx|ҳ7'ǫ.ERĻRСO^֭7,9>z=qs[ea`>X?c5k.:t?ӳrU.hKOOoΝ65Z -sΞ={J$UKN?v:n eˍ^k' YYw-"'l3>>KCBVՊx{ts[o]ܻUc{z.]Hk,D?j8Lfddbfnn>bĈ3gp87nڵK}WWW ,,^]aiiO^[[:LVS󶦜t;(((((0*`0"""LNN3gQQQP(PMKvv988̘1cׯ_oΧ=X B``Uf))|~qNN9al6ֆ~#h bی !EciItqm!:Oh1 KIIYvmeeaP(l sS ΁0uuvlC'm? 89opaז-7 ]hVOAW_Ӂ11!m?v IDATH$k^h9˖v1]K<+ZGtU*Վ; 7~޽{u&W__?z'N644۷EOꚝݥK ?~|+V`6tKvaLfkkkaaanna˗/t֦0 e;`u/^СCo,Xg]FFF׮]1 |"VET*0gFp<8w}i.+ B^V֧;>ZVitٳDB>\L'Ǐ?p`4Ycjs` AuudX;-6vIOk,F/8{ro׮gά^h@hg+Y(MVLh-B&[xܿҵ0L,W#Z$IPuEW}_ RҲ~4 &XðDt҉aط~4a„9sHgn޼ҥKYXX|߽{X,^r%jJmm- 1bIJe~3fpM6M:u޼ys xbllGٳ'..N紂ڂ ~˗9c!\Խ70f3\ִi}.IE7 *r++"=x0BaV>_R""̂]7[7/ si|Be˖s&$$W}0|L8h4J1t 1ULH:͛i?\VbbtoD޴i>J}o/~P1,YLLHLLmۭI͘wDb^/?-J4Hְbb-.]zrHkĴ ΃obŊ+W$/^ ѥ. `(ߟ &Fm~~%:Rg&-FmE 55.k^8**JGG qph왞f񨴣9Ǐt~ eZZw GP]]a|h}>ҥ.ΟwΜC|3|T#nܴg ~s\] lfZ޽w w)}]3PIԩxw_}=Xx^*H {Q0 ˕|bQBp `Ɔr8!!nvvDH"ee/_޽Vf3L%sUTϟffH2aR{2GUW'%͕JRWZN*ưaaeVsuu8+.]6ox={.mt}NC''g^}~*OLL…D=GZ l޿gώ± GPfΜٜٳ´B>_V]Fw ͭ@~:Sk&Ryee]UU]UU]eR\YYWU%~#d Ғ w"99ܹqL +$ͩTXR^**F0lzΜC'O r o/\_IIwv}؞3gFS߹jڴEw|@/~J_][z`0-ݾ}VTTX;wlAMQT99婩iih>}ӧ ve8$'ȄBmF^a%E{YDkb2UuJ>QW'@;;+*ϏedrORmKKp7S҆#,df{EZIj iDLa-] þfDAA{.^\w9F#-^~AA%ڣ~cN;2q)-{K0ȑCn?'t  y4gy*ExlNpԺVFKð۷1 hM坖XN.Wbh*V""T'wWE%%7Dh q%z }W۰J''i4l޽SǍwW-w9FٳH?iɓߛ6-,E&[a&7 uybQn$dVjt(JL t `Ɔr8iaЌ˗%hୗۙB6sqByy-iEjܨnhM:889۰A֢-8=8-P*7H4??zƌ]vEo_R)U*)E[oQjK3yˌT)Ri/_ OdJ\LJ`#Qh?ߟ`ݩ64ȫį-,T7<77*v2sR{d iK_۸zRҔ]qXkϮ^]+7=zKKk 3@ȵ7o. O~egED|{=Xxb~R (9ujVt?~šKPUTHz:Aa`Td?%Z;I޽f9E%00PH$xQ}4_"0lfn^&fb4[B㜜r>ZZ]\5^^4__:I)L:%XQ!SVR:JTבcq۪ /^/^edQ< ra_SN-,̦O;o^4R._\__aؾ}'Oʛs&b;sfھ;~+hfqu7D4h6\?p@la?9vS憅y]۽ի8oe2Źso^cbB:NK( \5% Ah3g=ޅĉl7oyUơ͒w99e$\P0 03lvvmaeeqqq4PXbpQ7#CR(&e@\V]&գ;Lt+s'AV&up:{ 횓2P xQ.8@]?[@3(U~D~F\SM$ ]rnfff~!mcdz*A_ûhӣΟSg:(* Ca LP4i͚Snݕ+WRz@ S6aoov?J$.C_Sw]P77*d^^46c1A}s8Aɫy@JWWSl233EES&]BeYsqٲ!:YXqGqFڞ=NkW#C8x@ au~0*FAAUnz}o >={w?]MK2"5[h#_(z 5 5š `d])Н^m۩4ІJzQ^.E**ZukPlh4$iIhglqkByyRtmݩm>-.IKQ rcFx{;G89q{9bVg_ rknN ֮5n\V5WG??^4qBa ÈDg ;O4S3tIaum5mۣo&ʳХW,3͈F5[:j2믇GE꿿Rz$!// siAAm#ϟ\__2}h)=\S˗ի[[[{W,h@"AYGuQ[[;_:ujV]k[2$LH i2ǏHn=$';{:]pqqbLJ NgO^qqɻlBI:S(x RS?42;gn |:tM @(1 q?|I]`ߑ#K`ZMME~W:>4q8mfY޽ٟ}myF,\w Fv`Rz6m4T4-tF  [-M`fK/ fML ۿ @ /^ yy`lp2L² VU)j2?,k3gJ)SO3@i4m.YFcuuHT#HjgPx@4> HtB/]h&Hr*EœE6_<**0--^ogz tHTc6b1cƄ}잫)גޟ?/8ce 1}0 М1mZ̘1a*zQ[ ^E:~}*7M(^F*RiPXS]V(40,C@}6 R%roƌ< >M~a4!1ՒhB*=p~3g>t ga g„%KF[!vIc~o_:5mU&|>n. 7oh8|a믏ԅ򺨨z)?coN!ĖAph~1p,Ţp8LǽISN,6-)7#EܐZKZ8 ~U@\Z-g)_G@-Mm|H$0Ĩwii^oh))̼/Y,*F1aax/`X Ƹ~7ӛϧN{ƆRx/t7.ˍ3&̦er6i wJ/X!CSN"Q*X-D-H$*Hv?w@T\@L*O{qbA} Ǟ]p=+W&xkVصƍX.wNh|ᅰ{'N)/s.gh8f`he$ZDb _􎆘Av=f)f"me7+,5mX>_9a7=g|FK2pai163a.:eKnc}Ck7,Xiyfۨk0OٸNgXW_]3y: ;j{E-+{n`:bרՍ IZ-,J;#22*1t}\7L(/O6[uu 'du EU&5WZ//7??o׋D`[??oolj2Cw$Ԉ 3vTZXaPiBbQljYwZŋYY'Ji1fif6>kkּhE̟ZGڿ?{ɑmWuxAɔ)~~jڷ+*EEBA#8輁$KY<- 7vj-3oވݐh4Zu$++VDDX9֡Q;evVf~oe2},={7P_/T  xQȑM+%ݻw+֯?^\,~ՑkּZqUTG`0Ą?%m.mrNӛ>裔 ,{- qjyyG$Fl|hx+ARmKLdS47JM\^gZm֢N-CkŲ TO1 GLbnT#sKi$#AIwzqF F;!H4p z͒oge=hl?55vD-LAEC:0d;Axp-!O(_2v/4XqY-V={7'9sfU,zϞzINQ^.ۻ7С8ܹ-J={ڵÇ_vCϟ_;x0mjucx{?͞-IW39lX>K0bvsڵ~[?6{?0d`ƹsk-~9L VVW"ObQZ7ȃtnxqu]]F`?X`+0sB00..NVzAp@ƭRP@-G ZE*zXݖ/Q%|)&&ˍJNR,3̮ύڋ s^}MJHM=z juCy |M*+h?*Y,JDD} Z^CCzM#|M.E@5M&ڦp^I[o`/[Jqʔmԩ}m>sM,SSHguKϽ 4Z_ӻ{ng֗Nv[:Dv6綾~wO6$fd_y}njjl/'lپvc@ v (h\O ۯds8 -:޶,Vf*2Dh ך:Ղ,*՘Vx'q _΢hmY}LMc٘L_۱h \ )XQ!GfbQ9&vcMc6;qܹ@r#a55Ǐ)'<'M⤦Ņ؈H^<(بE^M#iЀ_pu HA@bHQ~}m"$'-sWvnҥ/XuuMGW򺔔!˗'XTsg]bnjy$κuݐmۥS6!>~,}_tΜ;*c_|qfǎ+  ''[oͤoFTZZ]\,~[Ԥ3+h6x0ãO/QZ݀@ `Db2}MnI3,BMM}u,͌k[:!f}0Gdrc#MrsLܽMS}|CBQŢڗtCC22L .7ˍ o,(O{j=sV ;:A P>Ux"!H([ukvj&HHtߥSlڔqZŋoY!VisQ|3m z$Zj'O%%cdž/_b;w^ݻ}U5-= uuujVtu:Wl9׿?yCZ%&|[ֳÆ;qbyo@ZHz)H 4 tb`YZ !H6+;W\S]rLV+=->V'բ%nqr‚b^~~>~~OA]M(n43GLQn@#y'F `LC=@Y, PUrϞkj%7%eFAbqzzNzmDbQb҆ojOt^O []]L)^ԦF(TiVä̝nurhV~qqnKk%:`|p99esibk>ƍ~f1|rUnH2ŋGƘOYS}Pv|k~ ]Ł%78wDJp9M? />3f0hP@` 4 L \D?0}JmT(4ry\^'I E\^W]]>XSSD"yHOYSzk?Ǧh4)2/ؖKuV/xb{p]-RΟ̽vX7%wʔh[?699e9Niiq))C(򽛀0kxP2%ԠZmD=Wz ro}|֗g̈v[z78x^+)nzcǕK H ϙ3ڍ9Nl١-?aEv|ПleÇz䊡CC[>kNgص:7x0ҥu-ˠ>T*GVl6-4ߪ@ }P}Hb4AAX|bTG`I& va>-KzVW33LollAƵdrH ,41@Z7ЀV355MII˖a\]aR_P{C 3j{Ӧi& v`r?cCC ݸq96_ةv><ޓp# sY< Rx8: |YTjLS+$UE<;g:ԷSL|CJ{C̚5Ln1*vsz~q6"ܲ2}7>4cKs_xT_\>^^nzAk#A-Yuې!A>k tapŊ .L@ǑHTWFr8@{tMn1-?8jHj_ VfXRЃRc`HbO<ރB,Ld-su6(4th`lfhZ0Xs:tMMŋO\,޲_@ξsRRDRRNOY􀏏GRRxZZȑlGi\]m-vّ#7#{l66M]])<7Q*UD*pG"QXR(o .4JD Gi4 8;ޝ;DEYFذ!Y"Q/^aatk7ܸ36p_xa!!7N]bs}׮/ܲecM>mn!5f۟߸6_[˱^5^0v]ݼltt֭/i ܸ#E@ TýR*EYtthES홎iDz+UA\]DO<4ִF3ilJP)|PX#5Ryp4 h:@tԄA3P 0=2hQJҥBS%799r}'%ߌ6jΜKO˫'rf̈"!<H_M+^Z 5sxÃ'qLoO_}u?xg;ZYJJϜYE+Ǐ:!sݖNP[xح~"ץ Yb-$y["abW:d޽I޺!Av[`0r8\kZ=$ի{ͤUrFa_B Týs\89a#ɃaŅnѪg@ ȿoQ׮o|f-Cf/MD aP@Phq8;r /rvvg%'GNq?sq83~zzNEŢrq6bEaxJO9@:8X,jbJ,V 5bJ P*H%(Zb02هF#Px:@(KtB}l^~y,+55\wFmJ6pDZɻ۷_zXbEblle5=0TVʟ~SV֚H4 "/jo._~;,9ۿygfj@ ^o().'~_SS %s8Uq8 \h୙R=)r8L QkD__ojk% BaMU\a0|qq!t: D:w* @2*&%E԰0j yb89gNq>;T6{/ed֭bbܨSa  \2Grm*+/^o@Y,jPŢDDdlꚏI._.4si7E{CB!0W׸^/e c4W>RUZc c/_.ܶB/O;6ܾ|;A y׮>YG%wMOOϙ;wN)i PZZIu0^v }6Ĕr8 .7Ҏo0ej EIʔc6`e60riE{`cG'$X,*äPpnlo#֜=q?'(&Es>8͒ořM2Fb''G>*84 jKy0u "_6 ju>jM[L= ~յ*U}[w&OǷly?{ff=[[qe~:rΜs*K c<=]ܜkjݐg )iP;=KJ/vII=z-5p򪚚tFq8@Ǩ5@DHg!X0]XM'__/pgK~}t2:|.}q g(gqvoA|s>n\剣F NNxV|FF2w{/OvsHv6|ѣm$Z[hEEq￿4gŋGٝ3BssڭhX[vӃӬW/8?+ku`!#h4MbV57뼽sa-])<(uRimuZ.TWZN$R)u2YZʼnD&qdF&q^$7 ZܬT\朖IѹiiB e0}[xOJJ$?敩@ ZRU8>(8GRR剣GkFqQJ̙oϟL%'GrvpvƂ}x VQD WW`?Pl}vnfJ;j/رo~\'yJŧZ9JtɓڪdׄѶmaС{\۽ڌC-CݴMnpqqjj?8둕:r$czD 7ݱ>t:C CiqH<1th… #(YSZ 5lmblQqϙ9۞SYgJh(V/)'Ajހ \n$9ZRY)p #eرPɅX"kagR>}ȑ޿?9%eȴi1!!}EP Tw@&==;\\t@<]9.`¶iSƄ |2} U{fgL-Ld2JšL̗^ZZvQ*׾bk46j-JۻqDP(kǿcnq?RR\Կ?MAݡB7qqqjm:J7++?11}SKbj}Iv7yr@ =FTP @pK"ys89s`Av3{ b۲星Թz&XBO |(M7.!ׇ#ܧDMM:PRRIJecl4ВbK.ܾ]F$z%&A%ң0˖%.[X\,NO9x_p))C3&ͺ2۳ȱ7(NUƢ"e2@ޖk4MR,VD*XyHB)KHT=~",Zɓ+la4WzR/lc/Z0wSmvi/Wl>>?_0w59wL5ܼ<>elZB{DbQ;.oM+JPe]a=5Lh:C{ rQCIPAdz.clb33gdxb__1c–/Oބͦnؐ~;ws'>jj v`\]ly<0޾]v_`7D=ylj` O޸3#G^^n@oTcV PjP)ֈ*P(J 8݅N'鄖b￟üy?ed|;v\9sJu WW紴c/_.ܶ"]\\cdž;7 JDNN\)Z@TT=mv8-7n 3 ǡ9?ߪ09ck 5m{Gb{BֺYWڪNfjD[ A1p ji|E4 EgSTh9E ߖg?w&9=b1 À^t e:Ap8`?pwϜYݣW1s71); F*.;oo_]nw׋gᇓ/v@ ݎs;\T8p uɒLvqWz{o> c z&̟?Y IDAT iɓ1~a|r>>=xu\Kw߾6#XUx㍃))C СC k~iƜ9/R9||okt[߹SjU3@NgXc>`cRQj5߯j~-jH  b h@v0NѴZ4v7WSH*EZ$sJ-+2_FB%Gg "֜=/Ϝ94""꣨ 20hWVʓq9E "X//;u{X:rg'O:4mi*mP{R4 |dA쉏wL3,~4M=}z%t2Wuȑ3f ]| vΆ 'ˬ;&0pmLvCZoO):w7JYtk׊[ͳA Hh_Ý={chm>\+ 0MH` IlohhHjTZ+dZD-)ub%|)bQdɛLyc5 ǣd$#&hɺZX^.EK^$7!bQ9&vc8q\d7˝ \A-JX(tsbQ32n`p7;wQ<l6ͦٸk}|܇ vCZ*m*U{CE֭2hp;.X/4d.i=h\XZ \3 ƍS׭/v|ɓ|3NK@y{(ݮS_߬l6*ĉ;St$[nCC…?߽[~Ȓ @:kJ۠ R|)S**<1l64 #ꤤ?d^8ټ#Ghs_(aNF}reRLjtCmm `ݒ?,-+uKMӫ}@-/UfR15Cs\i:uuu&=)F&eӧ bJ PVU)%X~J>__/:@   _hOlaf 'A"*r];pa<0Ctwwvc{]ŢΝ;|ʔh;-fX* =z$9}މwBjӧYglfˋ;eG}'/Mݙ0=7iR emjl,MJ W(4%%W4}j׋CZRDH`IN߶mֺuvglJK|ymvGH]A,V'WwsT9I`0Xq87ĉPυ@ G"Q7/VJU9FZZ\\\m&)[*V嵦?du7xN'lQNLo"ڪ%uii5ЪmG!L-,OFq8̴82hÖ4fݵk/de=X,y#MaH[ @Yvڵ355vʔhXԎpqqӃAVEܹ2Y 8GpyIm&M_pwwd8Hot9r ?/%5jLѝ{V[h(ۭmضٳyG’hݸq~9{߾ޜ<9jժq5Z(v ~eΝ{ f`PŎ8ǡC;-7ngk[Ď0p)W(4P2p#**Ц;xV*3 5BRJk h џAi2Fiu4"  "0^Fj B;ahj]^q…|FplS7KQ;|x؉9^^p|sЛZEVV*stv2K6o>/sr>8{Ϝܹ#>dJG67D":cDe߲2)j?)tazֵkųg) ķv5Hhn֝:uo/VTW7dMQ?٥Kn]2y6i4k7_phݻw%Snݻ; @JUǿuq^J ۯaZ5(ax΢ 5m+*n=nKEa d0p5eQQ!// 79@e2}U0p>IfS{šYP%|)&&&$'GU<''l|<+>بx ==筷񤤈ѣBE{#juCy *+/^o ͦX//3gr'M@="<\m.=d.Z^2WWg Զ|Jkh@E<;'(u:Ң>3vkGau꜖7}z˅[^4ik\\cdž[`.SZZ=uj[/n,s"#cj^(+WݳiGty2@:BmmcQ SI {Z ZF"Q*HlmQyh4}Тd$7\&)-&[Uf3iT En,/5A^*T`Y}Fmv6/#scb(.7BJ]6NMM}ffsrxظ C?~,ĕrبED5/8hĈl6ͦ>nݳc??{--(+=|(J fiaL/4n=ޱŋ_=ujL/Ծk~9xpqbb`duǎ-p9sv78Sꐤ+$%mIH`Ü6ϞSRU4>z$1nLL|:xD"ܰXF$>mbDJ!ג8 H$ߐc: D⧾fgָ&`W =$pY,j@,HCC22| .7ˍj@Ngᄏ@ZQ ydÆ__ƆUF%ĉA  Ba  APXܬC8@tB@1 `VY9]==?x$%ō9/K6RSg|;AjMْ =ѻ9M $A[G$'oKH`\KMP5o]\N~7I> xf w ˅|s>7*..dıc{ۧl )=w X ϝ[0AǏGm۬)S^2KjظqjW@lT+gglh(a_?aDEZ64LVRR]Y)V  ..N..FYBq!<)\@ToKZCb6;Dk:Wh@B #fnaPiBFp8̴82hm5JҥBS%w˖Ə !{HKKKjΜKOyi4ĉ3fXnq-77ɓ[R l'%E+*=<H P~y̙;?,?h\B9wnM/o{:>_BwVYUlػ8z /ۯrXLRRDRRĭ[w2oO6jԘqG @:͛p8k7 _}JܦS^.۷/{ilbwjUduNN~cqN"S4ciAJ)XurF4=(DP7[e@L A2+(0TC)PꟚ'yhA vZȸoUTȑcИnNTG$yy"aYL$4uufcv  "hx4/N'@;6Xi҂C܇ERi-"z9 pł?,qqq9r@rrĉ] ed_QU|R$j:× 2D&L#V7KM_#TJ@XH ֜=q?'(&EB Οz͒o=Fb^7_]n V4S':/Mǵƻ;ve11A]x9(⋃FhlԂe@|,7$(@   _&,4b!7nnֽK v|r*'<#pb{J~<;'o;t^哴.\y87T}.7hlt*/LJ\]ne`0k׮:th7W_ݾ}"Mt)/ϯAWWwOۻjH IDATБ3`0+W (,y_+*+UU*X`.`M\S[C>G(jnvBzy<=n#G\re7/` C_H"5H Dbf}]{ǎ9Imm+-*=E$b#N=RO.ᚭ$G"wRS?&$|o߂qY]qh46:׻448׻;748A\\ B#v SX Y^aq>8b@R J ;;ci4 D^_K56ubP:EGݻ{kj J#,;[KAՖ:a1))ܜ_֝"J|K3fu,6lHϑ~ 6t<,-,,"tJẺvH5#++ _dxR quu=d\p_hX=$??`hJL&t`v$@pwyztyI~~۽{yi8r,ֈ7bm=_\xb=趹!CƏcaR}I&P4NN}Eri,u'5w߸(;][KօqɹީEhm89uef4bt:LcwRi-yA tqqq"<MH`Խ`@T*w"zvˎͺ-lYENNlgWs8h'Np<9S' _HY#̙3/ C 3fdDa.;xlذ!#_m7]Palذٳ9]@ ,u΂*HIJ}B\[sQ iIIhs/ D xo*((P~ݯ/ /^,PN V߼ljjl7\ I7g!Vn T]=@ O=<\^zF|*0a>Lh@l#Yt: AUdCbUa099@ @ bE}_}4,a@&ʕXk7Jkn=-".KW>tss:4@ @ bEvb^}5 @ pMd맢nڔbXx!'<&&.@ @ bרՍ{f/Y2m@ +kannx&o3R9QEE°0EN*BW^ zZ`JJJĔ goݱqF _=zׯofݺu>>>qqq}NJvϝ;W*v#&MD$T)Srssv2v=dF*nO0oZ[/v^4zo`04 zRWWÇwmpO"-Uz`,HvCN:o_ .Wmw1 =GffLV;gp6C7މxĉK\--f:r|Ȑ!ǎu̙3_~w$?쥻*H0G >^ӡٳH7`0$$$|lL;믧 y͝;l vxCƏ{߿„ }Ӟy0^6E?"8lw^]cٮxawwr8;;?xY)plIFHwKUZRw5kFGSYW;O:vdAl} vVHyN_]T$HXbL˞_QJe= xg'erĉ7|>h޽皚1zA sᰰ0___!#B> %j֭P(d2yݺuZJA#GX,FciyN)g~)6M&W\K/_ qFFFqww =x`׽pBDֵjMqQF;v;]4۷/,,/8x`HH~dszyy[СCf٥1̒%KΜ9M_~)SYH$3|^ꫯX,ψ#V߁>._rJӄ-[fVff&Hh qfʕ .yzz;{HZZ/b|Y>۵{ =G`/%4{/#~mѸf͚+W4<̧eiI%*=GII}w]W7g m.Wmw [c3Fo/N8jH\*5iU]Ya#9X E[̚5+114//oРA1n*={ "Ͷ6o<}ʼƹsΛ7O,S(Z4kM@L6Z}9aܸq<ﯿ߿?hg[/0a•+W$Ν;E"޽{|Aj'd^OoFe ]v 6DDD(]_yjO? Ȍ3j]elM*]?P(N]]b[ njO5@DéStVm| L_B3gtz7F,+oIg$N[BK[-C( `ߗ~"Qd P@h Is?>p4-˽{^_`M'KV̙3AX|Y:Eaaafffͣ<RQQfoܸRJu޽9<뿭}ZgUÙ>.o(VVV.YT*l}S 6zD],aSqK3g~#Z{oqԯc튼XuI?jc1tD{.}'sN|L?_Cw0]9rABM&uu("rih߇ @O< P(qqqXi3$Rwqv R.]VPl6FcZ gΜAQ`ñ: s<)]|@ [׵kq=If` ZQx%p;;X:H$x<E}UVu{ZZ?t-҂ brVkZϞ= X,l6?DQt1zw 6xXuS Yx18Ʌcƌw^V tO̸5zM"sNO2$f JGNzhiL eCԯc튼XuI?jc1tD{B2d^~y7u'j~w>M$R X,۷\QQѢEΞ=+˭VkJJ X lgs8dPS(AT ֬YPR]]j?gӧOh >}/xwxUV2_/7hk.b{nlBV!Hf` hT*...=z8,j5v~q1"""|ɽ{twɔv^w6V]]=`APEDPhv.VHHHUUZ-A<3߿?;;ԩS`6M-dʔ)Dkv"[S`wMMq̙k֬ygW?N I%l*nB7^ۤI|0[0.y=7l no W_u"y?d2Y~{;>_gJLIq$A&N矣v㽅f9""b:666NQ O+˗/#_=zŊ݈gm]@?m6۞={rܹs'Lr;9VG+}պ{uaS^yݻww9N̙3{=:O>7n7ElwNw>}޽{:4p@j{RR}鲲2a#|7+;4Xz~ԩ׿+l)S8p_6lX\\X /2l0Fs…'O>Snkg"_[OǿZ"89 .!{IDY¦֯?Tݸղ+7V{)t~/;m 6#7n<⋣bb;=|vǎ~8F#这7ozt1Z,3g^xdo3fxGn޼ j!vY] 76hҥ'O/))4hK/dZGr6}!ny'vk&FU]]dEz}XX޽{%7|QoJeRcu@xlӧxH$\z;~3YNr󏢨JJOO9rcǪߟ c! 3g}Mh Lo&; >@qq1H|JJJnܸzx 88o'KPpcǎt^{ ;ba2,kQ`O/hѢ}5a}5N{؊:“ ފ`ɩykMw4ŎBj Շ=d`I{=dG{m8'wք{{{cѱ몏`cpJOz%t!Cߺw?lvtz휮ɓ'ĐHrs=G9ˁپqaÆEFFjzQQQt:}:nӦM999& Ep8\Ƕ_3Ddg'vޝqkpIx/رcl_[G?`VbŊmmm폅?sLnQ ,/~wg!C{=\~G!˖-j999:X֭h_}әL&X/jOJnj!9sA͛7;޽[S<){+}eWFO)v' Շ=d`I{=d'{uY8wR:nOlʕ+yyysy衇s`+ `x &!]ċMh,Zsvvy#},=`x19Rru3>V'^նv4w~դIy|roϾʣ>d2ncy2OC9r\.vn6Hρ/}W@`t/6իknJ͆G'geŅ{;4y}G_ V 6lN %wKDb'L3g?3@ ]]}Fh[6 p$RxEE\\(GQ$,`0XR# ğP 7o644^ Ν[ WLsnn- ϣV""Bpo@h 7,+KJ.(Hɉ͍7&8H!eǎKv]پ}Nj*Ӌaltˑ9sIAG͚0!W@ .GGO,/V߼lڂ EQAf+ EQH!^E<^]ii˵.T<>C,`0< oj))i*.nzEhp0jl6A`JEBе*[[ek^VQ(ʮѣCC;|<4Cf[8dSR DzBB9Lb"֭fA;&V+Z[+nh+j>}))tF Wǎ0׭뱃vϟ_sCTٳǥA\V2[[n h1۶ɶm.8؂lvgٰ=eeЧڄl6E&{p8$! NnVQ}fCCB(wZ|ǡ;8y WK$F̠T LfT*MذAQApǎ!"׻ӎ?^RR6pmbAAWqJyyyW6[ıc;wpwH*h+Wjn+Hh(F e0#,::O8p7ܳLIa޾b Z^.(/>|,!޻բx+V<ꁐ:B3.^\}v&R۶͙8qêU{?lj'ܸS!B pqqq=]vڵ"G))Qve#GJ[l Ifް=*Æ=[S#Pԉ ZС5&d` DG@CN ֘LGbc:{O~JPPAEQՊ-+gϞ`"##Ԟ'˖-sIH ci4 &SfvD%m@ 円&h4uގwy':u&=`gBr!=Wiɡwpo+VM ݽbvUݣ!i?)k 2HE MxヂNݼyʕ]z,r֬ol8ӻ+Wj 6p80 'O͝moͲqĵŚeiɂ i:DɻL&ͦXd6dl 4 $Οp=҅ IDATKJ Yx"1T1 EGbbl6%&&áp8X*MpЪ h~txķߞDҦW^UQ!@QGM3b'c;w^^r7I|챬۷oC5Y~͖%XdrٳX,W\{-ӧގ;|[t!XkN80SqAzdijKe &ABBTjT^x<7kХKGGG<;ģKMw(#sێ/i{K%Kv,Zoc @B.m~&Eu,ƍ5 fH-D"ݟ;6>4@FX|Ho x N>]^p[]כ0!׋5§4hP{]}0E?7ߜuxy BBxcz)KDC Soe AD$&1d'M<ӧZb+ \0w6s -}*Ҥ+V[t%IA={V5eJ'Le%!C3˕OZA0g܄GswM(TjP%EP 2d |" 'Oq9݇/<0^r0imU~~ l05O> 2 ENKc?VwD;t 50츂|.,׫u#G~P\ TP 4}ڪtxثA({ N?M P5$`ڞ}`qpWoEo=GHj k}x%. 'OOCl<_ dSaɖ%lO<7v"(0}&rōן8u6^}7&X^ (t;vU$$ ޤhx#_|qb+AAAo_ ~o@|'^WDwW닊.HZ!_|nvvܠAP =[9cp"޼t*5`t<>(6_GDx8@$ROehhKYH166xF , egegQ0p))̵ksxohFYeJⰗ>>1NOg'$cc+kfCWf+Ȍ^~y,r$_js>~Ѣo2Y&OJ.=:t;ۉĐr_X[X#GJ֯?QY)\`OXR^TزD:("ev/áFGBBzK/P^.Gp6:R{[[Z=D:Mjkş}vb<>?*%ݝwTW0c5oכ6osÆS8ܝ82bD/m#x<>/-m*.n4,9;;M};N׬yj\t_vt59''Á2vfu߾ojy[֭fᖖ6WWPw sW?wuCt kt >15#>aclʔ\l~͙uN֮aE.yĭCIDhɓ'),]wXסI`-{Ձ$\NRQ!Ǐpuu\^'UU"y|ËDJ HY^֭+vlhp0~ٲ1-u:cYYKQ_ZPCb;dH*!dN^$'޽B}G>+(,` L٬כx)0f[,Z1p<29,=SP\PM9/N_flȤI~{"tZp&E PueX{ӇL[ZH0W EÇ?Xk.\8m|ٱ/{$=-"b6[?ߞ{<A c6[%@H4J&ӊDjX-hBL&X#á0$ EGl  HEe^Z@G(+kueڴ7}Ӵ&9HqkX~v^8|xZWjhxuEE[m6~[PʊCwNepصΘAA~+w;e n iMۢɯ'Ƹy`0`ii?=[9}ִ4gA QT#h~0(g'-/o}晁$e[>w#鎤 8jҝS4*)@qeJb 9RJ_::m@ \iP- TV F qUe(= Hg Fv#S[5޸^REdu%EE3|5kڗpqq/|5~/˵.>rڴ-_Ey;C$Ra^ EE|-8Fc%1au)j]X=tht8ponrqwޙp\s}p7x۱@ED&Ӿޡ{ ZFRW{J=6UiKF;9P(CI~NgliQ*PuwAҢT*U&4P9JLLCa)$R |k,[Kᕆϗh4Z7{.!侰Zm55&`ܞ̙__XnBO? h/\ZѥKG!ߧUlc~oT4z嗳~o45ɧM߽{!~ jōJIa$츜Ph91u f3@Tݵߟ˵'xŇ|GE?}qo4z$._}㍽MMEF-]:$*U JlKR(I^+ =A7(B@jiQ* ;啃pŢPLrLL(Pp nʼnii4vb"=)):+ G/* f),77?hP2V8"zȏ5aa;v\~l4+)!rHkӉ7?׿܅ ӦmAQ@zܯz3ٔ;_f No;r&G| /;v3</8g.[Oxk2}Y+Wj}p0oߘ|.pSkf?XS#zm @ 0HJX=5_& 'ৱQ{[Z?W<ۧe8FHy<~iiSqql3›}LbSf;}%0inV,]ƍ+-\0bŮCAOZ$R d;c]XY3.ÇHhE௿ʏ--.n }~g%g_烉5tZm{^Rvƌ )*W5_ 2{,m4AI11Tr`8n&NOKcc3+#u~Aի KL+(`@H`ϞU7o'zÇ_{mE޼yO"kB՜9[>?bD[Tܪ*! Zbd556ҁ5Sj* ZAL{|ՙ3gVDj:=rج?bD]\}6͍.d^3^᜜x@ fU&5Ձn2[Jaa F$I#i4"If0"H#2:DEԏ|0Y(kmUV$;/}SY)ݵϓ֭NIa` JKn5@{7;;nD"Ejjċ\]-z'pz ᭷wmk<%?WqJ݂?۶IJb pۗ5K"O7fUj?_uDٵk8.33v1cq:tcٲ߸q>]l޸k yF ![X,6L#jE"TJ5@ɴ"Z&ZL DN#tbt4N'Dd0f, w|Ⱦb{ +%%E2LKcXdoG h7U6"1_.Blݸ'ƍgS%p7׮5,YR֭>zt?o (u뙏>}̘ fШbS T$9 wР&NkFW Ԉ/^>sj֘x#3|;zog_)_V=$b\Puӧ+age f JeX ;ED8n~9L=&@%[["Z(T *P-(b5al6$aIL&&e xOՉ2LrXw`P]-BQ41BIVV<…evZgpŶaÉ/89|xXP +W:~ec/(ky[Zz|RqXn+8CmnVg3V8 {XloJ]#i#"BL1"m̴̘4>V5k3gùt|d۶ &N0{}9@ =dJs `8JnT_}E%X >^'1Ɨ"C[t#OC=$Mqqciix1$RXnnBA7;;~Рd2918j7mѢ\ۼGv8;.@"+RC,;;~֬!& HhFD-jrD򏽃Xu2V&aw"P݋Fd2I {hF#Y,2F ~ECŠmiQC /H;JKck3<^olA))8` SǞ=Eo/>ys0_U@ 'GL߰a&v!jx|_R+kf dg$NqzZ&FJtf<ʕ jr %sSRЕTTf4Zm/5)l6KǏ 81wΜq@z XJ :8}XN7/kVT/+kZmdrxNNeի {;$]j;}_.gyPnجI>PVxѢTJ}Gƾfɿt: So\\_wajžHy<~iiSqqliw@MI=ڵ%K ZúuGp ٺqOϦFE݇'d+Wrn‡Wz &5о})k\SۄF9445+*Xo#q8\R99YY'YpOee-}4yڴosV޽W/\&nj7eJa}` @ a2Y;Ƀ ,j1 %hH8I0A&A8}njAoډ0#">ǿv^.p Iy@1־}͜9x͚{W/^su77o Pݱ5i={v3Wڂú'C@b2YN$&SSYEtZ_^.(/ *+A$.?p±c7WMں}cNw]IYoUW& |RSʆ@ >l~wЊl\OI70K`Ȩ("|fU.ڋ9 *]S x3|"[6bnvv܀vÇ_{mE޼yVffá IDATi)ZjoZ{Y\n JKzkIIz(7R-V;n z tҢ6UU*+}D rX _:W5k=7t͚׌$]J޽W-ԉѣ3'L)(Hv\]l(JT2P~rlv шQQDxF͗N'@&hD(Ӹ"hD`Y,K\mMb0"lJt4Ţ0$&bIl6&HUU%% gĩuC/Oj7n4$p{ܬXtǍ ]F ɴ+V>ul3ތ\BC_ё RAfyyItNhtZW'J*+šl Ƨ2328}jMQT_lBgSx"t6z*#GJBU|Tj0޾Tj/Ai.d+hBTimUdTew;"ot?o/Oy ]7Iɓȡj6zHӴ YYqPtjۺ<8e,W-]@ڴi)ǏJQʕ jD" JxAA2H80F 19f4π@BԈkk55jQSji}9ddSSYpd)Fe[><ϧq8ToGSOҵR\F„<.|@ `03JW*@%7b/_p(XE۰ڪyFi4"&el:/ª*acEB\DS\XZD M((fg U).n\Pc/[9~:BvD~6\qKJL&KDD"Feذ>W?vnim}DpERRt@6 {ih!BHJ[{dsZ+ UW?9}`o[(-m:rZ1E=O-@ hQ(0o\ :X=3-s"uOX >{Eml6)]P[+Hs-[mdM'0MKc mh;XXxi伏?қ_66~{YC߀5Wڙ3ONJbx;XנVvQzgtLOJbzLLo!{ZכP"n fؽjUTm~xdǎKÆ}@IBpSn7M=:s~4o@ {j4_\U(mN/1* aH~vd(:{Wc X)ry![t/HiA"u^.7D |1:x|d2L xs-}_tp< ;v\~l4+`G7i׮:!(9f$j4-[N96j&z;nyGtnDb"ݻ1C h% 2>_ Җ;$4e$&2\ qpAwy6h.\xɲ'j=(6vl)p#@z3/P0Kr}/ LB ww+Ps:JP7 `g]D7\ho6[[9åK5RR|A Q5˗<jٲ1˗?{R+rLŲec^~y,ۣ[TF , %j?xaS!!_|h޼%jCCԡoliQ[ddݔ[=]""Iܬhjˀ+fSv?Ж- ygK=7tժҍ*`%] zJɓOKԈQ2z(cĈt Q˻aR/+ Uj~/777!$)ߟC܍g@{rL/ Y\o+njRqAAn~>Ju4ik3m~/ᐹs¨H_ҍق@܄Xij77˛inTK2@.};.ge~HvD"%]{$'Nmo6[32#G>xp RA  L ;5|hS(twW9ŠR<`F#RD-JR#{e1bZ,VH%hLTRF*ՂtTA""BlJt4"3w~HBޓQU%5I:/wOXVRT`Fyp0oߘ|nAwȐT#1rK/Ң)O?q~߶I?poxOce.(H.(&DG:l[Ng-Y/$PVU 3ҁ8tEbMKH I(-Gͦlnv~!V=>yr^`?.I`0ϝ:f<7`@رÇee%@ ?YLt @7~`*57*ER#`گSVTH4BJ**T+*%HH4UA<>N'$`Db/Ea0"Y,/^i[SfCslhxuEE[m6~E;?h+,^u߼l0~bTܮh ;v\3*~a?EL8&B ̋_+0;A&mm&W M_l6ȑ>:Ңx_{DK%]{D"ՙ3U?_%jIÇ>lX~@ Oѹ/0|P st: >sζXP*bukT !DEEؙWyL1RuEWVkq(<_jaKVҔK`ؗ5+*+mx.7+ا<m3f ^&4^W4֩K L@NgliQ*ekY!es|"r8بXjLLCP9*|MNGE'\9.66y(ɓe'OxuF$& 6rdz|]nׯ7kvDJ1ܹ* ւʈ-?@ NgT*JBѦT)mrNlS(tJeN"wRzA*a:b6[r-R-_y SұjFGClO4VZ;1^K$&_T7$RXnnBA7;;~Рd@Qtǎ[~Mf%%1Q79zWӉ7?׿q f=l<^:u;)1{ E9'm7rrHEFۏ7hDPIQL&n-7?(:u{ō?WɉvP^JF7]Vߵ/V|.7zԡCSM! _W6Ap 'J%گVkoш;PZ%l6RXU%NssOA**xuEE wş.ZsS&MpGy<%ֺ: 0^S#ϘtzOki4۷[ ⋣FF3Fo~!c6[e2HRF(TbRtשC/H0_W*qf`lmmU:֊u:#A^z:i.x|d0LQ Ѳv-[zO?/\ōTm죏fy;~Mm2-$RXFqٮ:\qqca᥃oXsѕg55"PO &B Nw|T+RXbhRےH ek&3$ ײXd6wYrt:]W\Ss-ӯ_2P>mmWEE+Wׯ׷@-($@ łorKYt] 9CfU*ՈDjD%逷>D# 0 $3$:=Ţ0 N'D5mWU%AQjQr232jl-/o .HZ!(9YP@vܹe~!6m9xp նuO?=6xpƍ3[/kvJZ}5 Z߮7o62M+1c0 VM&dZT#hd2-Hu`A*`iBNctz$[Jt4):b-D(Tmv/Li,xm\ t]@.]miQ`Oa^Q`@ ɿ4Zd 9kPxRP{4 +c0"H&SiI\A|H< X@M2vŊݧN͞=w&7EdɎ7Vp!Dj[Z|zLvGʚy\ְslĉf "$b)NP t:#ju \X [L=iH:[:=hL&$?@0$7ݡmԈ hŀ o!~MGM`N'wmٵ; **{M,%M?aX@IכTmׯ7^pFõk *U[h(!++.''@ %h4TzZT;o f}dr8Nw<D`O)`!ZU%(,I"E\ feyQ…evZg,ۆ 'iO@Y3ݺբכ⦥\iN tLPZy3CF 6F-+:!!bTT6L@ш$T >Jvpɞ=EEE|3gkF t}Ekk%ׯ774L›A S^-RjHuc@ PwRÍ Dl΅33a@"76x"`&rs %=b'Ն7s9s<]3IKMo5a-y^ZP˚p33c]ez YQRKԈG7vl# U%:*Mp0ީ8QQQQD*5 A6~qtyh(sN-<8ʻ_8D"edptÄ@ q=]F3Huؽ%hHO,H˵@q&Á`DXd-Ndt:h|w54R(ii,[b"=))U(rQǫ+*74fvv0uyBS)z}͛ۗyՆVz|JXA˛Ύ빉\7h<>'N%kcf5hP3!=oU`0RjJV2S6N tHeǎw >g}`0ZKKJJ ot4);;.++.++6++.10!@S‚>j :{cD{ $ׁRJM$#ziU^knVZ7$$z(OL&)''Sx‚]9K^zBu6]t^|q믏PNg,+kRq}Y.ѽb}S~V[YYUU]Rg2Y&ٿL/Zz`/0r/hqp 0D&].CX-+Az '.v>$0|xژ1g0"%]D3޼\RTZtVK]jYY@ʊMMeAi@ jJֹ/Qz~_!3&Hpy)c9*UPƔ_{ X,V*l0L8 ^ԈL8}4: oٲeѢE HPp0#$$6$$&$$6((B=TT䎑q&P(J;OwE0LLw^t5y<dm6oN?;7TZث<; >ӱcΝ h4~xgRxnw@ΛWp.+70-aH~8a1X O(Y %H$"hQd*LяĔJR)S=Td L+ :j0[L;^8/?xOmks+y ngdzt"݉/HZoi;yԩSm6/!DWeefm0z6kz˅=8N |{:r X75DU?|GC* MMZMMΦ&G[i4r4,~zرc^zU<ټ4kRBŢ MM(ѣcǚXNK.\8KΜH.0EE=`(帨d"` q\~ {̊Bj4xU*ek JTb>칇*wc"aGns믛~E]MM*ϟ_hQE_\Q M|B`ԜSs~9tr~Q[k=j}/8." JKʹWCi40dxZK zX6vken,JHRҶ6j5VZEkaĉV7$Jnt^S<[-/%4}}(UABTT )S?ux ]baIyΜ)˗/\`ԩ9pY4,z`P H6MfM&HrF(R\JWRhr9}VN[j fK8;~_9r'fʷl饗NCό@;i4 -X0> O_?׫**,%%2Ki̜&;0dHj~S;?Нv;[Sc6=wLB}o$sf:H_ɍoJn:Zz夦FaP8?vX0>~kns"xϜ=`ƌ<$}H4x8h4rH~8l6{Bh Bp8F[{UR[hoB01R)ϒ˥ #trTՌ\.%]<8sQ]vHѣoiFFz޼{rٳ 0cg"] b\Vfytn?}~D޽_5:[0 CO|aB>_l}}C>_(]D*LJLfj9 bZͨT =Rf!N;N>q`mW/T*ѨUGBBƮoێӧ;DR+*rv3g++L,'}P,´w(ˆјN_9.BdF@JK$"BPHRVHD TIBT*T*\.rTjrhf` #OwTWџӧ;藹+*rϟf͢L7DЋ,e\vY ekjlwީr:V[rrԙ8/CN; Y.:v[*fw*D"%X(wNg[)ꊋtk\ .UranbDk]ݓL&baQ"wK-)SB`(~=P(o{غx[/~׶i4ra$tiD:}&I`?޽{m6[~~ʕ+7m02j22^pH ]NUW9ӕH$5f9s^oӧ疗[RL8ch^ l{DkmƶoQ?Lz*s0Z`B=_cvZ̲\Ϧ5v/K! ,p8C;/bԩ;Ba'ZVgsjuҍ67^V}0/_@()1OwEd F43Ǔ~>H$H4DbI$k>H$9."X0I& r/H$|PsBDvz[[[gΜm۶sk>׶nj7nܸaÆ^NOHδxlgn:~pvoGE" fm~~vAAWO**2.@PP=;S+yڗyZ&ER3>pСB~ߝ9s믿x={Bm?I,;ӦM3gN>%Ks=t]rV^ev>cBύ%%ElJҰ!lf͚/k]tiaa!}I&_O?}gd2MB2|7.VUUE7 gd2:_j̙"_{N3fxWC8~ Mk>O)sxr_љVbyࢋ6|{o幻zy7m?~׿~}{t{Wo0aP $ hq~PDbg8jkmˑ#_?DH"CYy=mrEF|YSSbjϮV ![ۼ^=~?j튊Sv{<袋V]^^ND7|o={OFrss !Bw.///NQ{・K.\p…>c=aÆ+W&H$ٳg]0[_99iSLT:gƌF .9R\V&h[mջwwK]ڮԜ%0(O?! q˖-{뭷np8/BrssfΜI9v_YYzdDӧO'444ѧbҥV>}e] ;f͚EID_;FA2\reyy9 ju] /g{N7p/bz@uu5X,&=}i l_`s0r3m2HD@!҅AU̞==4Y΃kV'!D"hK-t[T*B7߼iӦ7^{Kz8D"R'xnʢ"B/~ ۦA"z@ 裏>-Z~_=ο/K.nݺ^xvo޼y*o[VTTl~xŊٞ5k֯_j.\xر7Bjf-ܲsN⃜{=3-MtaHD4]v;:nlFAU\l*,OST/,4ZE2.X,>uu͝;W(.Ygu:ݳ>j*RiӦ+V,^9\wu@߾}{1&B{Io{+Yfڵ Џ&O]y"Wez8c fZD\y:l. V2sQQFd`+\.P2wN~Ov™3Oϝ93bэ`N2.zyljr459V3cǚ=x׫ήf((Ȟ2E_PmhE"n d$vH$NHRY+*+3L`@ 0JlsSwFyǛPmPP]P/(ȢQ)FF d>S\lLM$HnѪh4L&Ted "] F"M3mZN 6~z{0!k2iL&-m0eJ6^ȬSsBA"gH$F߽j4B=C^[7>c!D*[,ڴh曉"46v54twj`P`0~xS?;d̐V7m+k$ԴlٲLb @/x< ! ] d2) \mX,T(ww_!++xL C%S @_"XkjnvZ[]ͮ.= ;[/Ŗi̎`6 EdrŊ('G=w0Rsi9m$^8>|1Zl^Mj^QFȾ}UB}DK\3[nV~;HX,! M7۰GyyY#v+00DT*v{>E{Ҏ55k駵$ee6Ѩ)(V(~+G4^n= {iOa/}LFa/>ە+DzձcOD ƸuL@. now{hvO{_a$ٹ:YehM t[}8}_!rĆH/hjmulގo{~hLaI^^٬Xt:Ie6kM&шV0ñ3*}(nu2;*Ȕ1R~ "]Png66ZN3D"VvFlY;e>//K,Ɨ`BٿڵS*SJ$ F oB -i/invlN'ai}{iڋU`Z楏?!W\p(HƐH$fym6o[fvtx=vp@`4-ɤzfmnn ͜(EgjTpP~ .^oju^Ánt2_ T2{ 0iD/T\] (1.{dG[7tttoWuu# UN:7Wg0ssu99\ѨXz{`rˮC{FBVx㼌 [].?߷7oZmVA[LI%!ar8sn{y% Q03=%L&ɤH$vzv\[Z曓 uC0x<)I!O_5,h `| sP~ ct Fhv7`à 0LL^Qc2i ŢUf6'Gm0P 0ɝ:~ɩ}i>%wD"&2H`ޠ]KN,u& XdφjYPH3{#0߷-[vɺudz  $ ä*ZEYgCҡmksb zL&i{M&V+7yyYX `ooe>o`BB 0"F0}%g|i<|admZlYk4j,F#tHH 3/6lWvuUW9~ϷQ*ef`PLݭ{M&^|zL  "JV\l,.6l4w:|{mIDATkyNGĉ._W/ՌѨU99jQ׫hK_^i0F @`?l֚}vucO;w~y%u|i_A{;tP(  "] H&LZIWcH$vz\mn:x{7T[|u=Z$npoF"]H* Nls:v;v˟J$l7;[|FFWh01`!^BZ[Qd 8>:~74tvvNg"r`PѨ7;[I{Jno2o`82T E`j{7hv;r/7m򛛫HD#s@o*D0RF0w gc_z<ԮV}iYqv /0`@ Ǿw:]]>rN{6t$=X dg+ov2+K׫ Uv6z[q .u:BSbؗfpnwy䈕nG"1`Pee uV";[V QE[ .{iKK?B:x<ҳσN'O{h4j$0&`2@ `zb +rioZK|;;}Np;7'GM;t~Peg+YYJ  ^# FѨ@ tM\m>PH|ڛUtCx[!2RTʦLԅzYx|7:rn\h4zVt:E_ H$[LB-.H[=ˆnw_+ᩮnwӻ=D¬sE=`C- "] h)*2z9'lt: ӗL& oZlD"H`|do$s.Wx2 . `o >OGԩvA\8a$ #g 8^.0!ɋ~Z@P(rV% hBto`B 0XoA85xp,4旉wL|( tFΐ"`Z˲rOeCYZg`\JrZV5jЦ*F0/txd x/t6owX6V'rteU \bo=_>fjF*_0"P~ 0x`\k^^O"dkk^owkI F0!F4sP~ pLCLzP*pihb #=3D&trA-)[ NLW^ Xf7ߜv>|޺뮻-[vĉ7xcڵ<=`׮]w\WV~w̙?߲e˯UUU%K~`TO>k Bvܹ}nb\O=TWdǏ߹sb)(( x"H" qn[.]dj7nTwq!v~ߔ,\𩧞zR}嗟{Yf=3}QA>joqt`tsOuuK466Ι3?`_A*.^{+駟:t(??+8xPKVBhÄm^II (//ommM}b׺kΜ9sqt`kiiy箾z;~8@uuuW8nٲeׯ?z]ɳ8K$_].םwy 7\nІO :ZnСC=Of?/c"]Ě5k7x!d͚5ׯwl6G}s4p8HRhYϗz@ k˲l$H$ ŐW[n]}}W_}yիW>u7oڴj8qb?UJMVXxb0̞={y䑖iӦ uV+6mڔa֭֭;wP(\d3c|p@` 3@$f2HeP0߿gg+Wҏرc chkk{n|||YY9996cƌ^RR5 {laƌn#$fD޿/--ՙ"RVVyfkADDDREEE6l}P헕<ZZZ\]]7n8z輼[n}ܹsݧ Q] XⷧLe ݻwtnH;jԨQFF?...AF%))w199Ǐ>Jmll;?~ o޼?+QQ 6L߂ 0޿;i$EE f߾}Wggٳg/YÇ!xb d2wѢE-%UVu[|9/))1cFbbe~w6ogB߿LJ~ DT*ѣGsݼysFFFmllwgGGE]rD"xO?m0HC>A33RPP(--E~~~ɓ'CBBʮ_~ܹ;wZ55nͪ_ٳG]]{l-,,i4 񼼼=^aÆ8:: ޽͛ÃϞ=mڴƬ,A"##gϞM2aaa...SLm&eLLLijjtuuUPP\~= F"(2߿P( ,<G=A..b//G)//_dI痂BBBFə4iR3srrX,o{/566VVV募_oCy= !! zPAA>`$ 04TjTTۼyGܹvn9Fh4ZXX >|ԩSI$R;DEE/\@/.OĈ :vI#}[=^naaq555,ۙ,z9vX =U\\LO䊊[o0TFHIIpҲ8'' kkk8PVVfgg D"\\\]---KZ[[/LMM***rssw3AV^]WWcǎ☘WWWIIɮCy{dhhH$޽;w΃^>k׮}6..3_z,nKJJ233o޼8FC]wgVWW=ztTTTo6oL!--s A!!!WWǏ\b!!!&LXdׯqrrvvv`0fff7nDD@@ƍw---=6^]][277477<$ڵk555cǎ=pȤĉ;푥G[[=}b}\&Wa0CM>@NIIC=ۇ9|9TF@$fmlls#$f߫!rp 11;v F.(2ZRRWXX{~||^nnUEEC{;Y\|ڡ,H`kuu9999?V%'55D*!0 /nGmt`UFZZ:K2223JZhT*CIIbxSUǍ];Tc`eTZaaMzza%5T*[D؊ ԩc Uuttu;310-3@*OI)JO/mnnGd(AIIa ɉbeLk`(**Ӈ3|D"Vb >`ii%))))E))4MDOCCN^^JEjjRRڄ&NT43LeJJJ] ?>mmكlSHDdzCC~VHeDb\7%$d$,lD6H$RTC&ג5}\"//_\\<` 1`$io'$'&%%'TP4))utƌ-VWGD11iLL&&jjhǎyDDzTnEE4UQhcsQ^^#L$(>>KK,߼BCCv0tSWלTZG5HI /?a„ +() -a 1Q(ԜJXJJQJJQ{;YHWSsmmy" O!qG9~h"(2[ob>  a][ѯ9T*-22mjj֖-Iɯ22J;OP|TttƨIsr3 SYKik#L;fDE]1**ee gZZ:44d-,f44T4ED"Q6ncֽ{jCo?/]F]B֭! G?VfewMyǎbe&`8@bS˫g\\^^^''=SW@$5w~dd `gԴДG0|۷&)maa=8|xfzO˗#?}"ݱc֐DͭzMM-imTQ(LØx $f>G1>>/..ן%%uܜMM'LY,J%$~͏yyٳ'pZFFcaGdg绱?\iիnX3w.OHȿ|9O34Tټcd2M%(oPUi&(b' 3DddZx&OVe'&H )ST'OV2E`99O&<}_&hѤE%ұz_ffyphFn *%5,3=30PٻzԱC䐨hܸs<,VjX CF>Ύmi3f)Xj' (]PoI&(02xfo:(MSSaVWϿ$!!6qqbcsq8={FHcc[f濥鉈khvsG 0H͟?g""$$MS34T|JM-04T1c㴴FO󊊆|-,0uIP|-) vbl݊۱c֐4H""OzSl;fʊI Э4?} nuu$fWu5122=""Ǭ6%% z2fl.()jxxZ@,qq[[+Ԥ9 khhYܷ)$d=vq|jL>~w|xM q:͛-Fba 57x|T9m?ow~*-73Xh֬0kjjvv[?vc*)>yyġ,O"Q⼼޴-֯7cMr<%fNNcXYeqqA# 3zN9OH/)в239Uw| YP\]]ff+e|Ǐ%AL\y=;22C7991W}}ܹ$%CC7 Ǡhyyc'LP8xpsU]4o3FFF0!Hmmsxx7?>~̢PFFjs̞=~H$Jh+W"OX|t `Mvv> c7&,]am}aINSBca8# aihh*L[ `2l@bWEE)o'9s&XYilqK[o>>﫪.5ts1v,zK^xmȧ wR׭}ܲ˧ _/11ÇT,[6yl2ٯ-44` 5#$f׷i/_&GEepssϛ;{aa5{f;;m۬Ffuև38؍'8g϶ o^^o֬1a2[YYE-44dX==%vXDveytuX}}ˍѷoh5kLdEE>|AAF1{>*p#;;᎖Hl~LL3붅ڏmmnutq)$foޤ#ca55MZZ:n󞋋|Z1. r)[f>(cϯ|E}"&Tn[tpqqJwi+$f5QBB?}F6MmRWDTܹMMmkך[ Mз?+mm}E=rY;,'%.\xu_eL>xZPPdm?[ Z\\G SfNNq,VMX$fde|8IGgҥKH C*U竒e&5GJJx͂Tʊ̘;W篿檫 Uˠoii%˖]SWy`>{y W,6*>>o߾ЬrggsY\Zn[33` 5rr*|!iX1e֬<<\CEkk{o1cF=hqC8[jjɲe44dCvf C:\JJ徺cqb~~G=zjlޫ i:TN?+} 5AA^-j"'*", 30bdd޻vW025}BV0ڳg\|[X&+CF[w;%߉Vݿϟs+i9kך0x^%k- $fّHׯS&0mRaqrǗL4>98ܘ 3ro݊yի<}[ܹwQff3g>*}7cƸW9g:,((62r7?iT*/N\ mk\XY} 5]]EiiB $ftt?ڵ21Smm {>[llǣj6F0P謵koYYi{{;|%%\Qyh, ۜ9N\ nݭٳ'\Yݏ]|Ⱥ~CL A]]l~8~Ϟ==Eoo䁠Gx|%K Ξcgd2"3NǧΘ\))EnuuY)6HQ%'ll1ill۵+mp۶Yf|i;ɧO۲[VF]ae_..ю_ -'NtKa떧vt&LP 1C"QBB⽽̛nɀd]%$lL\8e*#fg 26V?ztagy+<=s=]>*jڱ{w077sMMhBɩLI)"*PАbe U`*0H#tt/^ jZ@o4#h/ϟge}rBCoA''#G"?NNfg Ay)(o@;U^g#WSP] [3 ;w>ݼcJ#Wrrb cևᩇ/X֔9*ff晟_M880NNf'*naю).^뻊9Є%wCkRTQш7O###vv 1åO)ʲeS6o@7}YYڵjoXclܳg6wg0 iŞ=T<<"#Ӣ0g-Ī?~ں},\Z蛧S-԰XY,Vj~Χkע( h[Н;N̶h4sSUT ٱcA IDATlc6-ffֺKюg4֭c¦LQ|jƶ_PА-`XAb}-כ5kL6o@@׿57׸z*ˡŋ${c0d׮9۶Yz4-&)KRR׷;|֬hHlOO/II)&ʳʓ I$hz!9sr  1CDŝ;u -[, L:O۷[yx̂8hӧJ}f2:,&fgwHl{j3ĶNxyǥK N eP7bYY̙0 B ;{m}}ƛ6YHJYݫrGŋ+x{yyedZY|~"}cׯSv q֖G;2gegVY[T5$FL:s +˘30('NͭZh6+ y57;9IJ*|P`w63Bp`QQuL!ӧ̿piivvu +[ByJJuu͜cJkhb2::c ]^jiyJXawQ>159p89#B[o>|+<nnv,GP/]_>c+$@WIIUUMK)IJ yx\A&ӰXM,/cwQ>퓖Fm۸//͛k[qq]jjJ**QPIM-!=`2NNJH?P_rBݻƌA;)(YףG.t/%nfefv\#C[䤥֩Sh_nnbc8dJ##FeeӏE%AAq=A9|x8#F BzNN̎퍘qFFeה$< &7g" imjvD#LPPܮ]AeЎ(ŋ./^<;>>n##JSW9ܜ bfK `UCSSKV2޵kSlͭZ芺̽{y8sǎ.\`X`l ᑖ^֖LE;&PTTwTwvm#<<>=@Qq͛kaKwvG[..q)<5@(z)ځ0@bRQpccckh0WⲲ HJ  !bggWTTc@o~z…aal4NNwfv8tML'FLGVV@V_R C;FzF"Q|kWQw55}x66+3fYXU͛7E˗RV|z޽!7fk Soi4 Quuuu)UU)Iyyq`i=ltwtqH7(jH&XWXfӦ۶nf:ªr?\__i߾BUn:ܪUzzR g20<QQѸqիo茉ٻu+ 2񨠠()ZP_II;@ag[rsͻYv8yIK [XhHAV`shϜy&9( `*;W%юnXHOO1<|2`jAeˮyxyr ڱ bbbן^ٳ v^+)9\1}_򥬬Ν;]؟ O>wހGo }Agll|ónݺbA*++i4۷gΜӃv7c$FkkkST9VVV۷ojjj͛JǦzk:bFѶm{hn~J?Sinn_8cÂmttǣRvvv.../-,,~2~xAK!RSSwQ #f HHff.od8w;]Ճi()((t־{n  "HP;%Kx ݸqxĉi4 4Znnn//:*DPE311F[bWIII)))])}>%ɲ4mܹN<3 55 Ç4pToaYFF?|B=v,lOftb-0|}}prrҿA0h'n`0(kQ^^ouuǼ{dm_}r,%% t'&&aÆ#Gx܉'vw <<<ٙH$D$.׬|99/EEE/Aqq񨨨/:tH__޽sm_cǎ-F%&&&++dii̤I&_{ v899/^Ch:uuѣϔ_7Nnڴ~~C8*880ی+gOHYYٳ˸`j=avKII3///  ~'GDMMCq]ynw3Emm}Ν{k'O6 A={B%7lΘ---=<_UM,89G񰰤OgqssAR֭sww x ֭۵k߾}gϞiooimm=t MMMϟ?_`ADŋݻ %%eW^m *44[@@׾KJJ-ZcǎBOTxmvvӧOL"//ۘ},ZGuttz|֭999Co޼y7;To 얖VbgS[یv8qX~;H=iӦכwͽlٲ-[奦߿d!& ::^^o巻mh3So0$gÕ+Wtuu;::h4ӧOjkk;::="$$4uԇ"}yhϟ5jԘ1c|||VX!..>w^:$H&&&BBB㍍k׮ذaCss3+z|4vXq=k_3;3޾BOT4H$zxx?^@@@[[j=։{EozŅ97oTRRtwwommاcS߇1 u˫:*JnxvAjkk%$$oNQ `Cm5պ*\d еkQgϾ;$ d;999i۷/??? 걩lٲTUd`pk^**V:v4AH7T;A0LPPGз6 ˗8WG;54\q`mmmovvvF;a!%%le5> aF"ѧO-^v8AbR;v<ڸ񞝝[UTЎh.\psv `Ĉ500Xn;lܸqHﱩ!l?r##ji/^읐v8/f`*#(.[NAA+q8m&#c=ozjs0Hʈ F36>ie}!Itt]]GGgݹdjE;0p`*##f,۷ZZ_:ҳ2A_泷7B; 3|{{;X jN{ꛑh0$feצNU{CMm/kL~~c\9Hl{&@77…NNw"" 7 1ٚ]\{kX!8@`F3gj>|v Ëܹe+WNqrv8lϯ?RLLÇ7m`0hG4{>m8]PX`R_dգ`0'N,7rv Džv`bbwUT$=X|PP,DᲯ_c -"ҁv 쮨h-pڢO&|Rzn ]?5VVю[ODbCѯA$~~] <|01?9qD;!CѶn 3g¼yhhHU@fDE\3ǀFEJJ[hc1ZΚ5k֬YnO[dcN f ӧѻT4\0?_4?_OD$ @%#ylhIMk=3%ET& @ *Q\,\U%ʅ o:::WC-F(?hߝ;х1}fͭRWA;C8z4,#Z))I hߚR >mbcs-KSs4ڱ0Jx?MSC;\ jbb116%% SS) +**`͎#Ӧx}d7[SCpf-˧pqBix|ż\*ffX+fHA޾=ŋ':8`m}980C#>>ɗqqyZ{Xkj 5++/sqkmPSs:W"6m kkmЎA(x|Z` 5C!NPW__ i26VӠa''͛-xiiŋ*+K[.Ybį_sVz֊ikz 1[֭Qjl̂ kbbw:+HJ*p!O35žy]Gg,(QV@GZZ$7zm`0M ݻך-8qrr\l~GGMˣ`42^COKH`0 蛙arss ԖYm)STbgع[^cǣkעo7O3B66ml&vF m`iϙ3V0Ȑ_G"Qgήze=*!Np 8DAŋXSlq00yyU']MLh8mm$YYO?jbߢ2o.-o/#̙iJL$>|ȌH!MIIRJI[ VTQsIJJpJ  Yـ] US]3?_ $K<1Cbhh[%f||w_g /ʊ=TtwD}brUUeeLB 7)]ijݹ㔔TxE̚5~>~>55$x|zL ֭<8 1cv?f[w뻊pKttVIIdjk]/ \bŔ!ۖ_%'?UT$?}" m`ll.^ ?sƎr l\ಽOEDю 柩[qq=V-";ĉ"OӧZxҾ}6f.\ wpXcjr%s65kL@6iYd2exzf` xȤ}˰{.m˒[H5::Y;avֺ.JJ 뺹YNYY^k̘Q&(|̶zuǎJYZj@[Sq0h4ZBB-=aB||3˗׮5=pS5Jp-+)I_o~YKKx|ړ' WFJHMfi5kx@b\~~W,C; OCd֬ h¼N|giunb>:uʖmwps_v-MLžT{,id]VOO1,lkhc^Lޱcڵ&C&S@ӦO*HsgЎq8-N{F 1c"nߎrŞ}2A޽K56V`(֖TxB8fj}fΘ_3 980cƌzPEE˗TX[8SS6Ь'U^}ի#sqf7So ||ZZ}=W6z55k+ǎ;6 Y M,[?_ϝ{'%%lniO>o3fq̛W#9tt3A;]d}}Ǐ7LAAXʒŵa*OYYRSSݻTvN̸9Z[_trVl8S tu=0hhLPSRQ7oɇ=[ }!HLLfD*ZLDuuS65Ţ&.]Ÿ>mdڱ0TL jXOIIݥKX55i_U> $?ZY6)*VXX&JT++!!ߏ[O u{wK+հLJH(v22rrb(>k;VvSsSnn36o1::c6mmF~KEE 33)v M!!3]ܹw'O.aj]EDO '7Gkעnތ\b&ٚ)?ZIIAI W3/]gd=婫8Z7qڵ&h `bBǬߞ9iRbbBmfuJDhh©SK4Qh 5-Ora+@b7?9W jA]o{>]!(ȻoͪUӘj~`AAͯyS}.3Af}3-CML?THP~{O$B-^^[qvv<]wI-`LNN0jׯ9x|ڕ+'N8SaM}>t \\ JK󫍍Mox{`-[,?::ȥ**GQVϯb|HW B O۾ Xзm.-dƻyȈ3#1@^^\V?l&)UW kIn\o_Ν׭3`ЌhII q89s&*8$fy:e'vfϬ A//2ځDŝ;uZSww %/BJ-I1cVV~++ ŕ֯fH*3DBBI.CDGg 77gBB$ftZj>> {"i!܍?UU5}~웃*)IXZj[Yi 1CGbb{ʕF۶/_r UmTګWɞJJ-sii[`mbF"OƇzdj玈Hwtv,~}yqBa.0Sq%%ϙ\1Wf~~slezɞ=sQ(!%%lkkhkkH&S­[xq8m MxX$f(ήppab~cAӧOَlW$&phXFFn`=4Q^^(??ϯRV,.#(qb!14nܙ3v&& pT>UUM1CD__)118#8Maa[CB: O\RÇcdU݅5?bbG<߽;H*&ܪz6Z`w˸o߼X̩S~Hlbܿli kn:u,ڱ09sΏ%M8S 3OիHOB/&@  Xh9rvz6Qz ^@!ԔMߧ>AR6ۻ(/ᆠ`b&t";;c^NNyyy*+{zsk״32AXBfjJEŋo*+TE̝;ŋ/?zF (bO`MEB3m=ZӀ&.PH0hѣE=xu߾lچ  ,polly:#..֭U5'@pxkWݭE$|/''cgu |V_|Ç(l4Tk0岲.x) 22W2&Lp:Ѳȑ{m޿?Xz TY>jk&{[ZZ#F*6lmbŕ#'eey//;"kZZɣGI/^^[ꪝ!FDxB^^/\4i@o:H0-ښ,I 3g^9˖yΟ.z++HnJϯEؿi01kGKKer5p%ɸWo| L}(E=|m߾b[ZYYY酄nD.]zD"xxXyyٍa-cdhjhh;޽\Iũ2a̶k#"5-]:ZH妦\fPmm.֡ABay{E>>Lvӵ"%11ԁ@PRI4Z~gD ==mW2b'O6zJCCϑB}+@G,㜜L,ūr2$a`b&@ZuU\N)K&jX,$&&q׮ª1W);aT* @3`b&:<<""dfFٰfdc(jkV`f`VYGI;wNux<($dteeȑ'~XrHUU# L_^]Ό"%+YG^LR4n\+W~qAtqH$"D]]ŋ4uw9s0 8SQh513:r1C&Aq߾_{cX.RAXIIqqIqqNAAٙnB0!3Ayw7j'11_NNJ\$$wO=|x 멌 +aϟ͛u,h(i[j&U%p$ut}LGVOf={ȶmw F[ڷ̸?|&^^vVB5gK V2s搠X"rh|;;q\%qqInnﯔieSnF]LMpiQn*hBuDw۶MLEIE({{C</@Pvaa葑slmž2uMQQn ݘ1X I7Z[Y!!Զou,F+7:(ݿ?޽B 3:"abv;ĄONHPin]ǏpĞ+MM Ƈ^0i@spģ Nc UU*D7*9:8شoQs{,ѣ}o| L/""FߕQ0RS'Ou=UXXuPܕ+u?d 55%HB!>{*'yI=4|֡[>Ysղ|T55}`HqLLgOn~$dСK\wXsW}Ŕ,WE˗۶EYsRC}3~i\o~seefDX\}}~a_PP\U6rMra AI1BdVxKˏzzb0넄`ɒ%|}#NI"5rebmbCÇIo|2lw?T>qw*C^_ef }=@/*&ut45U Db,>>{׮xómlXG$Z=05%W@V矁>>q8tmZQQzo22 =vv䐐KLf+Dbb:%G;F;;%KΏwԩ`++}ء,eeHK+y(ŋkV]3򲳷7hR&f˫][?b}α%%\L6B?|;xa\\+y)22J{_XXEt_,4[[EN~[j}w~1fL5Hz\]_h9??9~|#ž^HFCҥH$݈40J'A&&ĐX"$&3?fU55VVY,$5XYFF%`2l\ةٳ]{x2^36Ν/%%5mm,h)Tm[xNVV441뺦 7qǎ)X H hӦ9ގLָuk-,^|~2ϰ1p+JCCϑB}+@ -Yr99x{۹YG&f`޺qH됐Q]T!?|8n֬!uBA ҚѣOҔx2egǎ=pQ,"Ta6VRRa\\R\\SPuv[z{]=Ծ[u/HKKX]V`XVǏ?۹3fg+Ǯ;na߫W¬'22Jee񽚗HŠ"g۶IJq 1KI)S 阕ddKz;ϱc!!̶3g^ ,XH$'ika>Q`52p %6vҸq⒰GV]~,]]?|uǚ5ZZZݻ_""f(*a>RVz8ccmoo_,z%2sxde<߼ٰ`<2b&蚘t8b&Z44w횊 Ĭ{VV9 WϞAMM ={Z_̧! RdkϯЦRRՠxUyW//yΜ:px줤MD̝{fC@S^V;|H`W/gqwtME lzvW}olUN&֭y$&GDCF̶6V\\;;yB']4:Rzo͛11zۏ#G9 <Lر k׎:0x);?xlիEs,#[|qquPаee1V|k+ ?46|}[@Ox<\2@Xikcedc66R:b/Tү^f81-)'..ӧ_(+fe7z ~W'ORdb\\ΝSai~lĬJJj"#XΒRHD"'-SnP)☾)?{v&IJ6Vv6MMQzuƖ˽dӧwȂν |+^NNySS mڒ_cbj7BOM|…XG$de..../_L߶-z͚떖z^^v0 %Fȝ;_N?v'8 C01뵝; ,^6Dt]Œyi-5xƌLf"6,ɧ01E~~essy2+kj#`|3 y|ǚ*V 쓙̶S,Y2j͚1p&#Jno`N C(/++xJKQG~Z~m֫W}n(r1Jɩ<y./_PG QIō=gcCniimQzz7ojmM:X#!==mwƷo7_?92qBX,Lz:13x)Gss;5Mmo[@zz}+Cۻ?|:H䤤$#JOVRfŗŋ;szH@pMRRF{['`b %^{9Aici.'a]#ԅFeeuLf2yyY Y,, EV̇$wJP{))E\`RI01,˖y\y%""p$PuuoH'}VVSSڵ?[](Ф <07;֡X 8GG7oN`ePu܋ex<^VY$#!LMML(mIPQ!@PTGe}J%UH2L A:⪼-[lذ3yٳ۷o߼y]֭[z̙3;^g'&GDDH$֓oW [n}avvɓ׬Y#++?dׯǗ+CccK~~%+ll0c;8nj_--Mj  n}WkHI)DOFA4̌-~O7c$ z={7llgpF HTYĬG.]z]+3@PT*1'G 3N0sʕ+Wt钊ʩSo߾sM6uH]]ԩS ףK+޽yw%%%>|x'O6oތQ||ݻׯ_=o߾;vTTT444lܸq޼y cDM:"++s"""Ο?onn{lkAAA|| YƩ QGz%K\\\޻wɓdرc[PPPHLL<|0L622bbbƍjFٳg9bdddoogϞ[@ ZZZX,V}}bpppUU:JySL7޾IٳgȑZZZ\~GL&ի255tO!!!?;6λiUV6[jj *p8^j* ۷4N|p `bֽG *y} EFO$lehѢ%KG9j)*//;psΡLfdἼt:z@ ڽhjj>}ݻw/_uV"àYFFY[[[w*--mkkc7knn^PP|zzz_|i—/_wľ;hJJg))jЈVne-cc7B̶i" &fݻv-~P u >Z%., ::Z^^ׯױR1cE; NT*UIIb˖-Zn#3aH̲U@Q( t3q񕟟OOիWG 't[ iaaa>}:z(z066׷ DbFF TUUŊ?_ee%ڮ]vjժk׮ ǎkmmrQ\>W222YYYk<ٳg {aSv/** >j 遖̾&li(a`yV ~Ȣ"AN]O:Q=1V:01FUUÓ')ӧ;cpn';;HvV~[lYuu5_~ٲe=zZNNg7ŋ]tO>ݼy3//aaaԷzR$b>25o޼K^rѣGw̛7/,,,::$66]n3---MMM[lEGGO8hQD)S֯_K|}}### y{{߼yENNNYY^/_,++={5kVFFFѧv FIIIaa'OLWZ@+_p=|)JNN. `ٲet:۷o7n={vgl޼lѱ |&f -j/d&ʶccC3Uy3DIInڴH8;^vDӓs<Ν;]v]v 0D">|Ν;j}-23K17e*##̎=`0֮]yرŋWUU+Wg 쌆FDDٳ)̙3G]YYNDPN&Xc4jԨ+atAQQk׮5008pkddd8uѣG7:`33ng3:L&Ι3GUUǏ"cǎիW0`ܹ=y)ۑ#Gׯ_Y| ++sN_N>mnnb#Ǐ?}4~8((Qߢgϲ\tZSSsϞ=XcǎGkiffsNvo߶$HK.;׃]۷o]7W3m4bm۹s=$^z3PPPI&)W!AbԨ;v->'[Hca`PZ[[2ɓ'h]ݻwvڅ:kkk"k׮ .P(557vBg}n}c0:vŵ7]IO/!Wyٷ{k HPPO?TRR{={NG n:f̘1O<ٺuFCCC;^AAŧO߷oϜ9sEĬۃ_;v<HMM3 ]'f<000PPPڷo_NNNHدo:M}iӦUUU_ 66`řsMƏ_[[{M@yy9ھwzzwͷn`"3bn3֭ @rr"#T!Abl31 q#Aw _.mZc>0O8s֭CCîZyyyUsʐfΜY[[{)kkkO8Yߩzu_écZDDlX}6UUUzkkbu\\#sCuۿUUŪkkkSOV/GX'r_# $$d\t Ǹ&f{.<<_~2227רoq҂6ޯ_?r˗&fϞ=C-6> ׮]377zcD61[…gyldɒ AA#ԫS55  YYed<%<<{@o! >jުc>0Ν;>]'f)))P=4.ӧO8_gddpmSM\! SNc;\{p|Wbbhc:<Vܠh=\ 􈍍ɓ;k)mwVYϞ={ɍ7۝ ȍ7Mu W^ ww-[,^]Çսz*..:̚5 p>>>hxqi{bbbY<%%kS\kŢOV \VVNN9/%QQ1%`պK.<_FFfԩ/vqqBtdggy&44t̙Fՙ5k<|]::uN˗/LHH8(^*ZZZy E[ZZaǢp(JPPݺy߸k ҹ[ZZ%* ɐQsnYZ23K}#D\F_|80-۾S+`@: H5~}Lj ?hL&sgkkk555-Z3gdUx ׮]333zyKKرc9۱c: A&9|pUUU,v;wNAA!--}$>>߸qXB3@dd$zXc񧴵u֭JJJ eڵMMMEtXcHD_$իWJuQX"X}aSTUUUWWWt}U8eddtљ3gjjj1vw؂Ng}.JNN}K0k"<6X WݽFz4w~7kϵu D31uuy=`m~bQb7o,Ĭ+>_UVV.\ڔ)Ys]7`_V@_=LjYT -?zŋtX F Sccw6mڴ`Xzz5NPsrz: cbb/LfXXNXXD'>~ܹsDI&Z YSSmmmm$Æ {=0>|hnnk.3ttt-[0GT X.2u32TF۽.:YQϟ99hh(c$k֬ill4i0557oŋJMMi\~P^Q8,,,>|;w͛5ϟBO9s5k"""p8܃}||^Ǐ2 .?7uE=z޽@mmٳgw BR͔ܿO$۬YC톱@ ٺkÒ N, -""Wf' IDATFTF+jlO|im=|t:]ɣ 9y{{WUUmٲe޼y/9wټy3z4ǖpp0:H$dgs/gbB2]Tpaa^^n@HtS IM-򐐐Psspt7… zٞcǎ]~}ԗ/yFFZڪXawfII I8LMILMIO{טWRRW1x0 I>6Hrr`Ǣw~K Μ9sF'N8qlLњS4Z> QhwRvlI6rp0:Lڋ]3ޛ$VsEccK~~%61CQ(l8W4ZAppD^(mԔtKA: Ap_ ~Rl*a{co&f}keEVQQ)mmm;;;ہ$ BJX,) n#${7?QW\\ G SWRTRSSKiin* v횖ZWLJApx{co&fh{I$JIK+VR76`X1_R?~'ׯ8VN/75 -;3RP믹V|TXH? ߾¿ǐTIK+oE[KJ)A"(-DGGMCC@ @3YCPUUm@ر9&<X ܊&X"*@gef8*U(X1_P\nΝ]1 Hhx[[z%5ҒoQ$AMMfQVV6[T؉) >%KF/Yr;ֱ@HM-RIrXABRSXZZ3 Q3 b)GJv?*2 ;r$9,ֱ@?GZZ1م їR =}BFˏ#ӱJv.ʔZ[yl۷]P[T^^3E8 3X?IDՃg0m Á`b?J&Ou$<%jjEDLҚWaaG )^lm/B_ZZOh4Z~ssҥr|O FddرVݞpHT#xb!_g\66kqO?g77K߈NgheHWk M*ab&P6}tw,{ ?YYe,KK] IM-|ȩjś88;;;S-,\_=DIɓ-}xeMMݻϿ8fa;}s@`"Q_7˫44Ԕ]4+cU8;Sw!''s//:, ^ŗ Cii%~~2Z{bМcV^01vv\`ؿ7?05usܹ^jjxTUWW t t>DF>ٻӦ 3ƁgyyFF@)/Xq¿13Yf] '7LVHZTU5XY OGjNc0^*CӰo,`aAMMA-Z[Y=7[PPij W@ HAA#fcc< âE_/;&f @R &!ͭ@wŅ )Z\%^ZZZC㳿~-.svΟbjbMH\fʔ=< jU#(+dg3._~w?8xxUa8!q`75` `l]ɭ 䳐XI5''b6VthVrsܶ-U 6n[f̃Nz1qassa3gVQQa#j8BWk={ɭ>zzm a˫pw/Yii%LjRqqI/.Usq1]n΋s^*77ƖOr 1P`B#//H_v׮}O4{O:[EEU,A&/RNNFWW iW3mprp,^<2&z5:z9|&a&f?XHQQ|P IAXؘŸ~=„zRRa[ .ҚÇgB hlU$flF{mwz©S/.]zL]!A&/FF.#fD\n쮶 ,lA!Q??K[ZZTߨ+c߇kx2=4ԗQaKMMiy?N>wՒ%ds RYY^p{!WZVf01kkrp7f|ha&f?0u WY_Tڦlӧ܊zR#܂-3&s :1WWeeydž9<eeS~' ^ȣ]E 8WbXsH[[UUU!?)P W2} &[AR&f?)*XABZbhٓ6Vf]h/_655ѥbFR:abҋP=Ǿ{yS(ķo$;1C(۝=~| ;8͟6eJޕN$ %%5} 2YWoϝ;p8X*PVVU%DZZuѥb4Z~|<Ç[[}@מ/R9901䢄zTT/ jM&B}٧O\+*||  ߿3/d|Ǵpc~=! p : &fIM-=چemԢz|<_?ŅjggЇdT*ѣdwK ݡCy(̺bbS~s^:W]ݴ`:֡AX*.`gc 0u'Nt@jaHz|}Nzq#JJ)휜rAm}ӆ ~<~dYg(nν4i+N~1}sHhLjW 4TF^{3g^(cL~`0PRZZZ\*6` SZ8 Wi؎T-3 lFm&]p+WO:h2O utVkjpdFccKMM: "UsdzgHh`bCiiСX_ A\*c:Q@[ #]mkKXJdgLpᵿ3_ I2v*ՕԔ?4lΜ11{>|q׬cfuTj2…7'N<_f ֱ@&f?TV6p*#$:.88[7DNNf;uvvGGGMUU!' (ӲN5]fϯDE8??q$wcqƘL*Uc[ (*uICBF<08x80着 XGAd;.a..Q:IJ*BVpڰb=j0.kСLfۧO9ÇKlƜS9ӳcG=zmXؘ~ 0 jSSpUU55E Ϝyu'c $`bLf٦3H U,11UMMʊeax''"b))EFt}P$X1_ ,̈ٳ9ԩ6M:H p uuSRhwY F{>b}k<9 ČB!Š|zz|p[ rvݶ6VkuuMLHbc8`̘ 1-ds㏇˗{Ł Hp`b#f010deg3햊 uq18¯ IIzzZZ*|i[T*NW7oi5k0uq7Irq8ܘ1ejQcxWZZ cQH9s>7!!p01&fFrs+4R1GGcZZ1NgČΝ{5n\oB`eEVSSK[bF#|}$6pw F@D !A10 x((3$@ 3HTϒ||0kj99Ck/y۶M{xiޯʆ gpٻ~P_nn[LZTw FnA$\f=kkA˗ @[ LC=ǹT,!^](''C\\TollB.NhÊ|b!/ pWΎmm(1khh./I^139q⧟~~'b!k֌Z5T F(dJJ01f ^6^[[$vH X,M{^oNN.Dxz^^Dٙj6K,9VTRCC3QNˁʠ۷HA hyP]ye9s¿8"(~ UZ`-[nߺqBc$xt% A|qjmeeeh x:R1AFTQ([$'(+ČGgϾ^RΜy,%%rrxqӦ 7'wΜy>yHk]yyLA'`|Q,?qŋo`b LBTF&>Og/SUUws 5dmBSXX]S(̒(==ubB$)"ػ'$0 t*j]m֟mY;\kĽP_q "%{dHK)"$ޛ\{Bs\yzZŒ/U䄃rSS=E4`_;kV~mXgXYuHk48"AaF(:yiLLw@AP!T {TQIIKL̏ήkUބb0RR i4 3fmm(*y\ rGvR@&&qq*Reg)-u#wZ5}ȲZETTԉDY "02.ǝêOӧAa~ 3f*VbVkǹZYQ?gbbc{il;|ժij '\?:pΆ~{pkw3xJPVVp݁щƝc֬~zo׮p7;*:A8J`ؔ)nIUǒ]\C7z( pRL}}y3ӑ Õb^=f~[^5);w"N1*+Bz@w ɓݶo S,)Q$<.:(ll7͚wFx(lUl@UԑThb zehjψie04ڻf!fdzXLLvEEI1vu3|mʺJ\=O 11f+mD+;vB (H66F3mۯ])B^KK8 4DBuu,/&1SɇSLS=pgY!$KBIZ0n_Z]]Srrۭb&&|Jl뙤3u̇¬Rڈ|>G WJtҚgouΎo+Wΰ'wYzuuBy B's+&&{h5 Iu_.^<ٳWo|ѲU,11sARR~b p$/MLprYAڛ7왫q=<#+¢Aqv6 Y!/C{w IDAT*"f&&P͛ !~a1qzUUCl6cd7,@k%%UQQ,V1-->}/_>ղwoSIŋ}L!h44f'"ԦMPV{ܒJ$]I_bOɓZr/W}}l0Cfo8&L{J3w@)b̛7 P(j}Y<~ T!!!/**+11?66eؔ)]\,`HJ*:c#@a="ĉTUuu@PFE^*uuų<'83ٽ{ɿkw ' (̈i_~[ŀܩnaZpEMwwmPeII-[22JRlؚ5c]]-\]-a5 ..8_ Νŋ1tq1gqq9.̲^OȮi˖ ;y3'vի}`יTU՛N:WP9R211_!b1&Mrif]nmm8bDo\ϝ{.HZdefZ.&ׯ9p73~WU#Z|&1#!CSnm |zaΚ5gBDjsAߧ!hyɻZ~U^>\c~|IH…}1E..ٔ!Ub16ng>>{~o(Gܡ(QWWwՀ=fiȀ !hA'ND R }q!ׯk˱ UUD"qDDƩSOccssӋbմiVVD{Q >7N6]t|P(;? NN\O,+5Nsg.}ٲa۶MeCQGcP,hj/j55SX,/22kA YmVB1cp!Dzt^ijKRH۶]qq12OFZ:8P#RKM- x;xw r8q̙^x`IISo{JVWbtȑ<w(oFijqMMvII5nnN7mIx%$ E"qJџzg̙ӿwoSʈ,))_CMI>2뒈̔",]pq1ON.B!R)WiΙu"dWCuuMYCC}efXU=~bTϊ>R޽A0Ն Y;q⁔"DPۉ,#11_>|$%cF4<̘uE``x~|WWKA^\\UWD!!_Ιժ_}^?Θ5N %RƢ"Ht9\i0*+k40`?+JT*h,C,]B,(?!/ \]q-ƆSSX^^khߩK yYYmII.,r&{-eoo;{a;v>/N;dwaF=flY0@4vv&l6>}pgT9s(? 뱼܊r4;V""L:hjFG p]"KRR ?'`xF! gƤI 씅JfZ8~87׭XEÇoAȖ2jimL\@(L&$%w@ebkbۯ߿ ₂ʼ܊rO%uuMnn!ԘAY`P(>}٢EClB|47OJ*=j23_;8{5׬__]vq%$䩩1LqA诎߁7j, Peggj(NaR;rdoY}~E :N4d76 )|;99=z; bNxJgϞ nyiӊ"""BEsvvFEDDTWW{zzyӽ=_~ϟ?߽{wLL͛O:5vXQiiiEBt1np/]Ydޖ ]]"A)#DCmf;ii?ǬYsz˲κcBhB,!(*3  pZ>uѝ;wΟ?!{D")//W@ƒ}ŋ;w;6==!E}승ȑ#Gyoz-jw}gdd`0BǏwqq Xb\d&TY m(8F5? 7IO mm(JF_knni⪃ H`nIGD+ i&&0c?}]fnn^YY:s挃C]]D"9x𠓓h4Znܸᡩr[2--- 4BP(DhǏ;99ڵĉ|>_OOo֭g]~U]]ĉmƒ}z#F8::4"'+H$o/^,[k-h;ɓ۶mUe2ZZZ'Ojee/ Zbb^߾_annf3a5cR?#f;K;L32q'Jvx>ixxGq!4HdUR p 3ra E_M:gڵ%%%k׮=y򤖖ֱcǶoߧoݺuߤf֬YۼylקL^8p@ DGG޿۶m݋ڵk͛oܸw;v͙3gժUlٲ6c1Ο?!4k֬f!{{W^+O?tŐ;w}w}d޼yS\\у/ WBB1"tU/ƣG^^x( sp0IKŒ z󼼊iӠUcGb1ɒMD\=1rѓ>?shhq> ~={̘1N8ݪ555_~ZZZ"B!!!&M۷ݻo߾-ﯣ#++YWfDR[[tJ,Y뱢f͚9sfrrrRRR3ծ}-/2dxwct:eݻGTP(NI)"T>f2ɉ;Hz6--&Q^^*kL?yBԥ 3ff`U]݀;㏓?Sٕ5߁fzyy. BNr^cǎ:::!cAXXXddň#?~LیuYHph4Bfʙcoo/S''3f}vc-MMM\}9!GG~E^,lnW GKAAehKuoMv@!de%*5c&cbwj>3k!h.XB3Ya?K]O_^vdٲe3gݻwuвe^Z\\|455577솆o!TSSsiӦxYSD̙37oޜ{СNhq]xbijjǯ_ۂ 222ޞjÇ3f֭{WEmٲ%)))))i999&oXl۶cƌ}vFF˗hnn2 TPbb%p*+).=57Ξ}hp-Zh4{{tf6[E1}Ɍ^˗u8B 2: 3 sM69rdʕ6lXzڵk={t|}}9::x3̬#y<7׾;vxxx=mݝVWW ڴi?`0Zu1c<ֶՌC r-֎{W͛77nVVV~x;fvQWW7&&_~[n?ݻwԺ5vi阏;!\_Uհ` A:aooJŎΧ }߾~8$".eKZ/;wܼy󺵄]dsE;ww MM"~o4µH667kV?Y<' ^GvG=z?>;A`ذOX`7o޼矟i \;ȿ45|w*;q"B^.ަ 9|PL3:fi B() 66g֩twoׯk*+ ܵI]&kg6mnٺeˆᎃHDv` fPSBB! 1?xԻ|A:`(0wQ"KT|)ckV [^K$=Hܗ {NM M(0ujA ljNYUUk~;M30KM-b|>ẕbLƖ-54X^ Z+<oť]m?g۽F|8D\(qT}ԩH>s ]BL(#-ΘZz̚5c7lz5wPQdQTTP]]͛ &&&BP044*00Pq-g@755b޽{tttٳvcܹs~@xzj޽⋦v/*{TX\\oj;;YXX alm;(ax7>GMВ}4fOG11ٸj!kao۶Mv}AAA4/6h?~|O_۷{-[lܸ n݊?rÇ߸qnjk" Cu!niKeg̲*uG¬ZZZwݷoߖ]߽{Q:ugʔ)3g|L&ݧ=ztϞ=3fr'NMmÆ :::ӧOGUVV.۷~;w>}pkkCF꿵b--5 Aɤ=7ZෲZq@U [[[\?ѱS455Mv…>}\~=..]Oonnvwwon333޾e.%%U1Cx)0hlG}h١$fdMyδbGGSC'uuVPЊ)S~^/ M /,h!J92i$٧'##C*JHuϿpµk׼ZZ~vgdd>HOOUn"0tWW A:sH._ogC⿵޽acuyy|'m J@¬Ç3f->TKK wNFuUU*1?((bTwGw {9Z?;ѣ;GlȐ!\.bѢE111-Kwء1zh77ݻw&l6{Μ9EEEgnWZa;;ӲG~Gl3qD__͛7wpE ~d ~6$ZggsAd@~ZO|; PiZ)Ǐ?rή)?Fo[OGmذaÆ mgff"/_|6 ۽܉Œ/;H,-{X ݝ}J( Ŝs| Pb1pgB,ei<22Jl`2` 8@Yd1t*5ݝ E/]^^|pAzŒ|RvON.0370|֭?rt@Aa&O+WE$66GKKw.w]\!];HO$':ƞi- P;Pfdll|Ѯ\@Abcs,҇3R=fbԩ~~Hy\WWW/lRs|YYik?<-oDWo.% f-|,es' A!YcP (N+9;;{_; PfPGmmSfk581? |'R@Rȸ55u={ IDATH,8;Ca^Nu_}uAuR ꈏ%irhcC K">yA.xd|Q\ɶBz_=OOf3/(=SS=AB1|?[[;x #LB''.NX,ơC^w(//ҬcD1tsskpCQ47jq>}|xov`hxx,@*̘L&BF]l#Y,CUS3g u79~<-9bQ Be޿?E^;j// qqP?|2}'e5rtZQQ;yc˫ntq3yc G.Ɲ_̙3qEQSVWGڵʰ=z>g =s$ |׮W?^EfnntϹz5w zUJJя?DnX,6f^,h{sqϟtLq\pS=fB_Cؕ !b^$ }ŊiLt` ]LLv߾;㔗VW7(^^<33/,|;E7$%xmm5AfĈ޳g۴ ҨJaUTfժ1]|P(NM-csª;gOHȓÝOƌ%%շoX ][#]aj;5}tX{MAT0 .X0ҲWikx!/4mSsfLWWהVD f!KKCAƌ'OFjL;q$+^wuԤ%qhm6-((s,@n*Q9[e!:l.L08￟>~\ETJllH$!)8c&INѤBׯk0Sٳ ~Yx 3P|P n=o_ f蟩ƺӦufT .Ww9fbii`ALJ,%4z+Ю]s 9; ӧ#KJ?ܧO"%P]:,-{=\W P[LLvAL<%2$bf/IJKkpKJ*HʅYsЅ {2]hnnqq(dLq b>oޑlMMY:Pg5cmm1˗h(pIQ֔Tr̜jwWqRrav?F36<=3cXرG.y3q̘=+st@ROOk&--{1t*f ~&ٳ@ffEE$(h4 f@Ѷm; Y_uJ$=6@J (c2,?_Wr@.ϟBbPT* z2k:, dff@<+^CI }5D; e *?xZ*)T7p8ڿ$0p#GBEE]vvn7L~8wrHQʷe䌌7plavɓx'Rfi3ĉG}f"0LȾRǣHʻw,fz"~aVZZST:(ߚ5>))EȄ١C#F˻^^o',lq.+V\TQSg/ϟ HL㔖ԐcFp8&D kjEt$..F[r||]AL(X%$=yjB޼OO/އƞ=sOZ=r.XBB811?qy/Bg a(\^Z!˵5D}؜p- ]EСPggCsZTT\Fr wʠ?? bbrT퇌I'٫W 0cСv{»E*jϟ駣 y~]U -/]Z-Sg*G*>.8w91F$Ylltr_C>*߇jsmx,P[0=El|7@ARS*+ D>x<#ΘUU_l0j^v6;kf3qQisH.$@¬)(Y򽳦&<*BH]e+W>˫5jɓOJJGG2|>&Azg m OAGzx:Ftu5NuASxtto3fqq9V*Ջ&Oviz0 w 4*f y9+V W(O0qr2 Y~{oOkfk܉<{կb"OdDw zҮ'fl///z!! Q0..:}ZZ5 ELlL, SgE#x<1(<{6jL&~vP(&U%%Uyy()SoN ŸqDIIuHHv4ȖɤGDlLё{ښ |crrD-R>SRRMW6Ο?w wl&$ڌY\\P(3rrE4$.^,YxFd=JWڈ Eɦ9S3|E!v9$XxS55ִi Jp::55j-01ѳPԱh4vA0 34H#F8>|&Q㼕ap'?;((|ݑp'x,O3]] A3"X,9yͯttԉ1::{@jmAC=}Iߡ Gd-jk\]x(FSc8UU(sPEMݿpC7o~aupD5Pu yqJn%2mm5BfR4&&6СvMw E…hH2{v?%kooqOQJ`aap'G,q#a̘=mVHҥKO,>%B|>G*Y@@Q66FG+*goobl]d-Nz:}514U)S699͙sxsuu 46 ,9(REDJ(<N@Pq%%5MMv}= l 9 }4m 0{\\huDF9%'Wa] LLt_v␐1cWn~U*Eb4+/Ψ6KIK]@3fOb^^ָj|Y; g&=ǧOMM*l_?"jʏ3<SRBĎϞeBۏ44ę1|n 3x ⸸y0#23poF{)?1(CB•J3o$Jsrqi+ w!Ԍ>}RR0HV=Ҳ،;bUVkhB,݃R7WsMTBL1hJJoJ6YXVVU)fMO/LH$|9f޼tz;EM䖛[N+V OOu[NWSS !b1ZRҥ@-%x8]M gԘzDS)Sq!̘=}`hiR03ohh~w &pNRYYܹninnHL E"IBBnDDϟ Dl6S(T'>jwV KxxF6,AhE"ɩSOg0tArqLjrBEEo5qg!Ӌ{[XB4m„ׯo8}cii/TJDgMlK6ۊ޿oj,,,LYGj֭Қ AX,C,t8ŋ|5bKdYa''3Y@HSքBA1i۱c22JMz|kL|b`Y>}z>+#jPo08:=00ǧe/A?2UUէm^oVU/.4ٵkqqqG|ݐ/>4hМ9s ͩp]j!<W56 t3=822̙IgϲB?JLM06Hҥ] u@ N?DDdlb1pQ>#J Ҙ1 ɵD G}%r 0!Ga]7c mM䖜\@$ӧc~mmӥK1˖ #B3Xb2!a GQ^I f/(.^14" zҺy&̀%'TTԩNuu^VED9sBPf8W3զ耖Z]]@,(̮\>S PLq.P 00rtT|>3f'ND̞OOȵd v$3r! x@+u3 QfT\"̔$]tiWdc!h4ڜ9sZKQtnݟFeff*.LwEDd jjK|#Ҋ,71tDstk8\44X P0t)㸹YҾ{^;ߴiSwuʕӧ<7++( ?c>pBppz[Ͼ9D ##T1 |@8jW. l0# 6̘@D/$ fy:6csϱ%p8vܹ3nܸJ$rg,+W\jUqqjg"5we8EEU_{7yRU9Իgd?0|ϯ) fjllƝYDDfII鞸tdyyQQEڵk敕3g888I$:99 <8,,LG7nr-%JYYFs 255=@( BF;~Ѯ]N8n*{]]]mllN8f,٧k׮uttw:QeO J$}7VVVFFF/~M߮;w-I^ڻwocc/݋]Rml ~gRiN&ԉziM+)=c-ijjL//Ga)#E,$$O3[[cA:һ Y8uTkז]ɓZZZǎ۾}uŋw|Yfyzzfdd۷oͥׯO2####B-Yѡ߶m{vڵy7n$&&ݻwǎuuusYjUvv-[ F``{`߿?((CO?tŐ;w;֭[㏯e 7nܸ~[Zv/QXXȑr-x4Bȅ q=}@xxjjL1@wAhb ;z4᫆>!c*++-,,\]]Ȯ8;;<@VdddB)%%V,?|P`T:k֬v"XTT$ݻ̱R,k߾}F,KvYYWW777?xvʞV{ta/_l_ʃRX,ݿRippt IDAT];=JJ޽S72ŋі +N"%s_5a]"o{XF8.K)ǁ㔎8)@g̢JJ'Ovsfkhhs'I7㏓?Sٕ,wwvڊfzyy. Bri4F;v@rMj1B ,,,22bĈ?k+V{ ATGM7iƌ~fff!:_AZ蘟Eyy0ɤl+ےƎι}\},{^RRR P D[[c{{A:h[A<~zss󄄄$''w|s>|Xv۾?棤RieelccI$WTT,_|ʔ)NH P%'d/Ym?:'ڕt]] WW ,EL*޺8m ]5{vR_m%ɲe>3gܻwe˖_z_}U7ijjjnnf | BիӦMk񵵵fΜy朜D__CuF7ŋ,KSS|}/T__!VWW/עQ-Ze˖իWȮ;v!֬Yz…\ Dqȑ*׏1pS$S sq44-Əwd_#>|tӦMGYreee V^vZ{{nϞ=D__~~~<ocƌx{y{{s\٧;v=zݻ; i&ss188`;V+W>p8;vX~%K:En޼yܸqǏj}G(8q͛;(IIeeFbSXF^]ԛGtH$A1ZȎSw.P m]W ى;Elt{D.4T@?|mk9QLrreZZ2=z4~Suu2%+Wbb4.˜2,Df a=!٭[/Heˆee>z;RGtTyRĉ9s+mPRkn:Q4[[c++;U0KJ*)0/ #ۗ;3]]ݕ+Wv墼6d f-45ƺYY+RJ-ɮYf9CLE hav^% ݶd{ɹTv|2GT5GEy O% ?Y(G``#Wi#]sKaVZZR4bl0@-BC_Ӈ|}g ]:V^M4zuҼa!:ۛ(t''(tꩯoVz°##>}yf=@F1ʪn3ZxzZ[?G]Ғ|'%g%%ZMTè(Ӭ,ZFKK˵kv&QDD&hjuۘ1..7>>wRhmuuZZl%zѣ fBC_xA׊׬9ysyJ$//__x_|1g;֝-.:}ZQW]}̳R{{S?`GIFx< Ǭ_AuuMJ=>..磏F(sP@ 7cv~ ٧dLq75գaӍ;o_]u}{NC$oLMV>py? 3oLq;WT]l0 AaMJ1 KhÇ;.*JJKkb,]}FY#< !#{{eVZJER)RiҞ{wvݤ_9:L Hhg%Kf\d<^aib6 /hs,.R<|}{zhg31K)*ɔV$6u˖H zzh13}f>/Xv 8ee6A&c`x k7σqpNNdϘI]]yy픔<}:DO7t8䨨˵Qn)*a0rD3zy%+)#18+VƷoɉLi5':XQ\]jdT3 oUW:{{.F˭?Ύaa1722;88\\45u0_r!91k'#>>f` `VtbC177A`('ӧR@z5zk""|ޝؼyqqgy6ojc:K뾾4` #J 3/$iiE4aEI^f8Q u0fIIs(qp",f͒54Tw/ R]ݺv;w޹.؃_4n1~jjO-0YM s-_w';;C`\b17mGGK[[/Bt11_St@c BIN.a}Cv6/.n@;-<8H9o9 BNN6D&]z*klau}M}} ^^!P={08CB{{ׯ䵵@$,L,H޼*z) 0[tGS:aÜȃSl<89!BxpS8~nDD==S*K``.77$XMMM}|>艉hS_aK--g`.@f> p͘1 b1v<\+.T݆GI}fѣɿR8^RW7,"q[?|(޾DQQD"x\jjYnndMmmf+cBׁ¢E0KOS`6rssx{@;kע=45]iɭf3P8fdre}?aϞ ι=ϯϝ- cTf(Atuttq歜ׯ$$i0^ }}yS c˖y^^ӊΝ?XG"( APg'fClm SSM޾ͷjfvؖ U^e.S2>>Nqq~2klz*g6#XFcemmA"߾t)03(̚++[;MCC? (&&}}#[̧}n::h?5M޷Çaa ;FO8LgiK@:*CSPg+_2??պzi犖nP̍. |7 #.omwNI$k۷?yPUJ ja14T|y}n[[g:sDPNN(O JݹӄBII3"뛼q\oꚛDEi=\EEq4%ŏ&?WisEw]/DN}|RS.]Gi !\\VZSW7YMMvO<~a7nJZ"//R6qs:l}V`)))H޼_LMJ==f>`6DCCD ˦K-,ֶzuݪJ@ !RRBx::~6ԋwѣDGG~~.t?%%֩w$irrbq xҳ75}C0#ճg+FYT7~@P<=Օ갦4-gAAf.̆hk˺dfsg ѣ::gOJM-{$opc321\]:AKom?)!xauy22 0}!ӧK?|p&ֳoRRs۷Q ͸]'ű#22?7 +;("BӖ󛔔'=W|X@jky!L_]FF%??Z-(PkiXXFCC *(l_ aa.tUA$ +f񂎎&ǝ(a\wA/~~.11\e=}1jlP(Hf  /rskdXG%=aa/$'ɷ)%%:lz) 'w0$$}.s^^;x ;◘XDٷn)(WTL0 N#ɶ0Fbe6x*DY_}R;}:]y[GVH(۱۷? +&F%(Ţ٣G{z5`qCZcǖ54tpEe%mb Fz*|:;=@0#)_kjJBBlg˗_,SDz+fwc},!hͱ8Wkk .XYy& ~ˋMz+cRRqaa֭(ܥά:'%l mraVQ;8}4tcО(_6]QѼr))e{6m b߻{e:磌K>23IIӧCv[kj&1ɓ$E--SVaD s#ʅY~~-UScCL˛8fBebcEG?_Ƒł+f=?p\@{pXccrrΟ?oS_agw /rΊ)(䚚 woh舉]US*++/_f/\lj,@'P. Ÿ9Ѝ uuI##͛kFFDlXPϘfHn܈ (ȳypxW/XZ^Mbu̟p]QP{r#NUUٟT ցra7V=''ӄߦ8D>y{ɓ+n(兄xdJw7 U>>\27#$O^[`0mmݻcbD2i鍀(D$-[spm#3Fv,&& Mto[-ZxJ}{{wxrΖ{DE jnF;\Z\~g[=<33|y}{{m ϻ=zO**&֬얖͛!5t#Z|cd*(h¬W0̎iMM]k[iiAAΫWiԞ͓| 900ȑඵ5 t~{o䙛_g'%%񉮘yy%-]%%%P$TUArY_`B+f!4>!4 : r~//_$[Qlm}72򠡡ِ&*ʏ`Xgh99ѵkg;ѣɿ֖xoYk`HE't˗oii۶0n HF,6`pdL:faVV6m@77Ǐzbzzʕ DFRV@(ذ,R}Zq266DaCC˗gfre}?aϞ[jJJ-/8TU+#UW!/1""s'4GWT4Ϛ%b{yFsEPΝ |ծ]411>&XG*3-J?{y^>>Uf[7Q&VUTT47WT4r:H$A`JJ.Rߡ((+/o:>?^Y3;)hݺ\hgB%%剈\@$YUV6[Y1X#Ahk(>x?JaF&SN Nsg 5`11_N/o܌]..UtVҩk M47YMMv?Fz?All8,38H]<^phݘPF"I$gÇ_d[[NNpl 55**m+pa =Cm+cO@ss(Z荓iLL~EH$#Ϟ}߁i2͛+WKo))}?|8}XΝ8} njll8Dz`==_vtQ(Ҧ_~ ;{rTwL TyG">FVQKK-YYG-{d?HI յA!!]á|em22~sg ѣ8Z6Tii!#^aut-چ_F&dJ[[٠, ለ,5aa^$z- Iݶ(00kH_֭!^23ͱf>A~m*ooǴ3ǎYfdTZ[45xZ4ѕ46"!+[-3bnxt򱘒99Qwvu'$Ҡy)! f Fo*/{yX,Ӕtvop/?6$dي(fC AuuhAHIxAG IDATGoŹ.]ɇy~Mǝ;/^|իDi2p3g[Xpŋg\|,ѹd2eRp4P+jkr0||>~H$Cѻq栠3fLC;"!g,**aA&F]]gvJJ >{/1hAҮ]On܈At> Tll8}}p+)*)iDYddC퇕.zn]L:r֬梡!v. p01g>3l3w>z;.l>&((GP(ʕ+Qw{#>D@yfX,FWW~d2Sذ Mw,@ 4K>r[[OBWp4P+ZZ55?Ydq667Drx 2VƎBkk=L^>jm`++oiCwUɔ+ 2{3>>Ρ_a{%;66o`7ByXSIIQKKfNPDDb-&VF`g7''@ bnRRLŋl,ʥnq[H{t%KeeU!sCf]]b<<Ϟ헒B" +ͭ`SV+chhL^^α LT4Dl,(%%ĔYDDt~~. ݿ`j6l"ke;v @u^̙`ذNbqR#^055m?WsR@:Dno+f7𰩩ԩqqmh'IIA{}}>2ބ"jaD2@>p…d2@^B=yh;Sv1yy5w„˳gi""w#:Y[[/Dfq'l1 `^^Ihᚚb,iLȲ07::g̺xy9 rD˗;\`ٽ۬96 *hMB ilPR-fs XT_ac7SY+/G=|HUV05U0hLVVyTT4C7D"ggW+;lhh8A0dGej%ŋA,)8?hONN 3..v<^ º~x p}@hfD^1?y6aꚚҞi rrLbVS*'' L ~~.55>. HO;CCӗ/׆V4`\`+#;GvJK Mbb|W>x@Pʆ. (4+fX,LOjՋ/>|pCCÇ}}}yyy===㏢"77[>HWWڵk􊋋^zɦ&"##WZ#?}AP}}=Wyyϟccc߽{w߾}zœ'Ox"''ʕ+{KKKOO}***~;v qƍ]vnư˗/[.<hhH 5`EEsFFa'^L_ߏ҇2&/_jTcoOS+W=ڎ6mm~3fB]uħPihhQ?ѡP(eddP(a_zL&wuuHP(>}bccknnP(R $ e/^}_ ˣ244TEEe̗04zhh(_|jjĜPH 0{S(}aClA8Æ,Zt^@ 8&@3bNNO8:v `dt`8謘Q(B+O=tJwr#hjJϛėMH1VFaaxrrrwvv~lh5 mmG(** AXXx'VTTHIIQZXXS?ATC$,,'SSD,;l"(&&`!~LZZq8ܚ5kBCC߾}koo?AH$2***555c!ԏ555mllFZ,'AChhhP =7']XXodaa66z(3ӦMz@~~#_wܡ~2::r'Q(J[[us֝;wZH$R``׻ȑ#"><((HFFfp9s03c YD"yo66;[x yyǏFW RM 3\3-"cI&wqoFFFBcǎǏGGG/200088wYíF||ww75k֜ԩUc?t|-,f5 d^99 G$ XX1_||{q.UU#1iNNuZ14MMj{L3gTW2e|X=`n ׀Ϟ]!joE;TW@$+Kwuif@a֞CZY"WG__AOOflZCC ֡s(aSMpRVR1 >GQQ;;NNN QWw4Ɂ f'O>bvN]ѹ-Bc<<"_0,~~.==B~Yd&\̜9mƌ \ 0+~~n,N_Yff''?X1 38|~" >8XmݺٖZL|?$䳀7\S$$LMa `bϟg_ "~ar3` /=8s9%%%Kf޾" !EWN…ܑYha<''oeegWHA" x{;fetɶ_LL>@BtvTsLy쳭lY`&ҍvʖo2>p Xor>|(y<…||4geU~jeeU츥KgDDlN|VSv1 <A%%4 :|1ʖm͚uZQbU%%a-1mzp}xA!"klvuv (̦pxKvτ͞x,͚%W4KVddT"d|}{xyhV tt4 wIMu;rdieeΙ'RSUU<\}RfVTQe4iHJ E'իuvsrWWfSrA1޽ ߾RT$mg͒ 211Qy" ۙ3]\RZfCMVh>0%y7 Z57wmfh_mˀ̚%:zˡ[T fWW~-vKgHܿbyx8i7VDD&ACggΝ^zzǎYY**wCɉgK\ƍs oΙNN7^^vvR\TLedTz䃪*~lTCC?)@(&qq~GGtc`0''Ӑ &9S&; ήhF;P(G ܾeB]"%hqGZ&%s3bm}ҵktsD}}v0eUt.,`Dzz(f{<}۶SCC)@(&)="""߬aZ6E<%::LbA|Ș>|Mx~PQhinkA(ؤQ+OGG16VM61Z7nd^^I}}k}vv5\oW`R3b0k P0bgg(l2d T1 ۶mF:;_ hvjݠTFƍ'A[[&=jq?ZUU wB^X$//:oބL!"«%WǏ׭Mϋ X(&#,,#794{~ m2v|h ʚ22g^ΞoߢI<}4!^^Nz8f6:,chnW<<=76v|d~D BB7lC;ԙǣVgԴ99`y)uoUU \^< px{;fgtGvɇ(i]]ӓŋo H~,mӦ9;4y>lƁk7o"AI'f"ֻgBy_k2%ZZ2))LUYZ~< t!>?\FJJ83NB:u}}ǶmϸMB ::z p߸acׯs5 0̆ sSYуYԴ "ů_o@[ԧOy-Aj\Oмuvl66~~57w:tժY\&##$"»yp3G.lٶ푎Y"2yd~eeގ^LCFF1aÜAڜ4ƍ xzSYLea0/_}Fs(5N˛>|(F;d<UWR(99PKxݿb,:jŊY bnŢdJ 1(5z3I($M$$'ܽU$%EFf?o3Q] AX1 q$#˨p8桡UU-hgsejzҵkeeMQ(g݋~}!޽+}F Weȝ4z5 4>[eeqM`0cy[G;㜝0̜9ʹ5݈߮KKl|$hg˗<<6!E]EAS6fj鰰j>>05tu/w_Oەa|},P>4hjJY/`bH~~Ç nn›4*+3@O` =}ǵb,LƍsyߏG;͝L"Q>fcfm2ݻŝ;gAM11>aab:f6:,chnq.4tAyy5D"֭XOkWy\xXʉ;>LwXr=,.n+dʆ rPxf󱥥, Kf b P 6mB"eeVi8Q{}kp ;-sJ9++OMM]skK>xڵוp~uEEիv0GEUf*@a6/55m y%d㿢~[L޿ބOE**֘q<罹11Q34T|y}nNyy˗_FZ[';B J3`zw"YY'$-֭3gnmYYHP!88m]zpqS+\7!:v,PKWj6/_ܹjjXيZ?^PP7šN qÞ61R7ɉ2I & f!˖idm[p~<6gSfܼy1y_~ pY`. Q6^qp<;9Vv9z+47Ȭѻ䵶ypmzvВ3eJcޠg>_ALl4SR1Kh2.A;Ȕm68HvI23x p_o^ڐWr<<iHNNm+YMYYӺuwCCMt cVֹKl!ڻGK/&& - }r~ 7llXO}ɓ9lVV! :aJJUT@|`!0֞b=L0;wbhg 33ެjѸ/hADuu3ϝL,P͌8VYYfM|}R R+3ǎYVVlh֬3 H7(ӧ֭+ <^޽\=]]#H$rqq ,f?U;;bA`켰/  &9m05͇ HQQ|:72rSii!WWUU JK kRRR$<%5ȑ-::gNJM-𡤬A[tnKlo܈IiW຺ʆ~̙bbxx=`<^pӦotD) 3M>~,ϯE;||>{xغ3ҕ͛p: p>i -%yaJJM]]}p57m0ĉe5Χ~,YH qqholhfUыvjjJ1٢Ymmۅ {.Ғjj-KҎv#}2VVVd>_\I 9nnSS`AZlnc>qJ=ZFMEϸ+~L(FSiO…S۶-q#f*bjbbc ? {3jj箶SBxÇ~j55jgg٥kעeΝ޺u޽DDdF''o++{,Bk>F`50ٻw꒴7'H^^w*^66zx,~vwq, /k62$P~rssK=j#j&&R+rVxa0w4ٻ߹KAAe[C—/ =޽+`}T¼v޾._W;vv2MnmA;Tt?}*q,טر@''ի{ _+*7meڲ6鿅06V矏 AЪZh`2 YSV=a=I$}>Odݍ]3f X (FQ\`jv99aoqRkp7MCy|F]]9#?VRRPD (F^!izc1//ǝ;he˴߼'HhAΝ&Oh~W`;;C33 t˛f囇G̩S+i<ӧ/98,,fxxN.]z{7<{Wx;͜9c::667O>~3֍OJJ⪪/5k_M$2ƢYzzwhg$s ޽k)Bgp?dQQޥKg"7]=_D.*jXJRRrI:D ֶ햐;G7z5aw1*p X(̆+.nPSc kk=UUիhkk &tВpX4$>pڵFF)n'?hBDƍsq4NZZ$Ӧ>57JIP(ՠ0 ኋTUh,ŋ*LAkkO||!A fc+n݊x éI lH"==o`(*G߼klbۏ*(فXwP}weH*k%-HE}IJ)RiҦ,Y*[YQB:3?"{<?|sהsއH$Hg>63c}<iܹ¿F@ )逈SS[} >r">|h蕓@aqq>dժ9JJbǎ=-KPfMMKLL!AFc+ZBBHg8?7i3ļiݾ}9"dJM11OrMMZ -xW/RRAAVX5D//^Ve'_A3#3fdǎjiyǿ]z.Y@^[[77+YBTWWwg<OO?sTKK4H7mOEEJERV@@ڵ4(%#" b߿v a0ӧ+̙>4A5/^D:h/\0֞7g-Y2+6vo^^k oII جSCּ",mP )X,FP 3GHGG5vm['@;i[@dosKLk,2Ջ PABB|ΘտzD CC9W=뽼jjj&>. 'O8~KZMM)FsFG-UTd .ο]nutR>OǞ>lBI̙#ccogsuuMLssKK @:@>56vq nӦXZxz&tvy}^}t*rt\][t9K$"d4UU_ihx,"#_-`0iqkkϖ- nLuu9}Z\"7usXPpo~Yk*;wr(r@OG:; ;;u r% c,s=xt*6g۶ (0'sr e4RRCCIUļ00@4 RW^/$vT̩S)xiRҁrr\\͝{tǎ;WKJ rq+ 46v"r`+88VJq,a½{{Oľ}}AA/tOII\Oo>Y@L73ekiEK~U׬*cIx@!_ߴǣ^kiI#depw7ho53_ˣoPohX.P7=h`j4k'2V :*BEˮ\IFM!! nng3N__hhb߄f sX!??ĉÇڪ0ˆ۶-JHx顮~ҥD`|vP f?dff@:2p8ɓzo?/C:˘+(L F:u٣F nJC:tbbqПwHix%z``޽|C%X,{*++;~b?677˕G SYIwgu+رGw*̙SW<|{˗SU=O'Ӑ? IDAT%@aaFSsO &&JO76v 88mlV47w#̙8::޽; w&Ɍpdm#Rvwo޼:x>+**jߞ[]]Kc}U<=N>~\wNU2`0%Kf=dTee+/>(/D"Q|/*gΜOO@a!&&zS qݚ۷32&,wo!eYY0\ oԆ? EJJӧAPHFYW"ܹsDMMo%---THMJ$ԩK# (*tu+(8rP_g_YȕZV{%%qJ Z  녙UO_g t7+g2ۧqvfMM+"H$DׯG$HI JPUxx "QYYݫW#&&FHH p "xUiiivv%K1..N^^EPP[/ H@@|А#???A & @ZZzԩΝ 1c'' YLLL3g iSQd$&&qss={ђ|||vvv#>8xDG{~~/n14\tHJ 88hxq8.n|RRW/>}dtNN;Quw*)Q*-4k@k@DÃH@XOπq{pɇMBBO#v Fda%%_}܆ 3f8FD!dڅ?}7Cq<ѯ111155mhh%H7o㋌{0A߿'N P~J"BBBF| 7n:ty֭~~~tvv޼ynFFFz::"?uuvv>||yMM͊11'N H ޱ#pH}Oqq͙3qgٻ7ɓ➞q*)!DG C:0 N<>+ cbdtsӦHǏx/?J/(M-~D ={'''BdaaСo200088wquuuG'6lӧb--k׮10|agg === (cMp8::p"޽{+++>ldd4ʃK(;ii̠5k'Z57:: k[JN\OGG?(I$RE OEEpdIKD7כ<}ƍ;v8p`Nrww&\\\RRR[nUSSkmmuHTTTYYYPPO>.//rJ9910SPP.^F"A}ѯ144TWW_f(GiieGTt2agxq8%堥岷ok7m&+{.,)dhV./?SDv"%LPpeHK%%;;Bu'ND͝{گtxrySS?BmD"QBPHHAƩ賠O;sS``DnBވ8GFFMvtL#7MG2o/%ux,;iPhP ~c )C^seMI}4IT%44c:T0y9ΘEEM興<,aCۃ/ oH࠙)KDdJt]nBi#~sP(̀?8sfcosL&&KoJC{ 9A,}}Ӫiܺ/^LX6sT* IIZmH$_oؠ0sNƍ fZcǎ<~~11Q1edD( sqp0=|xmWW}1[ېˆ'th54f𰺸d@:ب޹+d/?y2JJ"ݫAIRR;,̲utRJʪ,/o04\п"t ˃#?8y2u 蔖V"!,ciѣ:mƾ '{4Pf`PEE0YFúu7RhᰧN%%<^FzrDhnniF:_{x  RP>w0CΝw^flnt"TX!>>v33h#ffϟY㥢rҥĺIyPcnP_qj2A`.nx"KIIl'(^?DX%'% &H$RBB8[Z[{>}cdD.?zf{v"2fٕ˗KOboyc{IE\MM߂%0Y aax{'|U ˗'N3өi};,-.tv^KOmVVVtuM}}sΝ&&zꦵk/}OQq&qP'!dl(ˋ>D@ O}[N 3`,, ;8Egui e!DDبzzE{:#'7m&jGZOs3f oM=SwI$ҝ;97+233<40dfV]{%&f$$D Ϟjj˕8 7M33(>xtѭw`&L'0VX,kիi"緦La33Sz5p){ZDDޅ O/\0ۅH@ꑖͭF:߉tYjjǏ۶- srr&ٷ Qrz{N߹@Kkۘ)~I zS::NJ* zadtK\vMF@a/:UUiDV]VMۿYQm;mˋLV$2┊,áM}\QpF ZTLR2G(r7ذ)W v,&|c!zTPRy-`ЇH'OYߐY ~ԐhۙJɣ\}iMMJI \n%ʙws'xÉ_zwE_ڕ+GU(J44d&xr̙S]]rs]LM]C~4 fb1^^[<<2Unn Oo(+ 6-`0ÖL2/r `Fd %J;v,5ڣ>!jkpO}23󰊊C.<?"mK5{6lP@:57whj:ߙ:/91;rٲ<Z 3Mssr[t-.h&!!`erܓqq5e݌SQPOV rm[.qh ڸqWq|̡Rznj-\x-|aݺKX,6.nWV 20-[&A{22m۶83իFU˖ f 3`!uuÇq#EI$p(̀SSmbС55HgÇ׷g N[')>>CC;vZ(T$HfS?|9CC9Ԩ6bK}}fΐ0%)0вGG[W;)=VXQgӦHǡ%II%rr`kOOR>fw׭Gxீ ' q:^#"2en z3_2vvء5։%,ƌ$$`ޢ34Dݶm1J;SxxO疥KTZ+ !7*jS}Y@3>~?hWH$Rrr)U1U/.nNWMI5 P##o^tڳG:y2 pS?]{bT q FJJ3fii+V=]qQ{{bE\VVCVcGH{F83(*9]%%7?>/D7;C6lPwoԩgiEE5 X&5ķ?/C$#0QGj{y%deU"ed tnn<)NJ*A: 10Н?ѯlm};v%;;<ِ5{ g:Vy, VUWkYz8&;'-6<9̙8EEWO^Kxq==':..+W -J֭D?@1;^t,G 6n\,q_5ko ~c &&zD!q4n3+*ii醹0*00֤=8.-Y&x+< ~Zڡ۷-֮"֟;g]bxu'eŽ^v?FM9IIXYWStGG@,,_?Pv;ti[yyϑs6}|ڳKkۊ Focwpn>[{y׮=ج,>pb12Oؓ{뛚ijzܿ?UZZnؠ@ٴʯ rH ףG{LMml 3Οfݾ=?gst\_V7$*+j?cllfCxΘX!g?ҺKaY99UNN_H\ݲH %%e $/}ӟ'5^^‚F11>;; w'>4d ZY-G:2DEyQ,;r̩aM `)CX029ħH IDAT!2[||ZGGFRTAAVo0HJ 0em?@j껃߯y"!Gց곟>ODEřAAV RR]쬟_0?i_WҺ#[22B.mE7ښ$?t]]oaagWCDEy]]rs/M[ˣv"#_133hj vTUSsgp[[Y @ ==|V#[蚱7ON.x1,K۳gffʣ_zҶ_p$dO쯬l? faaZZsa 6ؘ,8sj˗M>:<܆q٩GFRT@>,%)0вGGǛ|~S y0wMM˫F:|a=tAV @EřQQGF"7p8["00sY^hL[[cǢ**uGsՑED"~hl|l2uɏ)p!ԩi1FLLHe64D8{UqqdG5وАK>_]Hӣo_$"488~UO# 6,, [K  3--1 G:xxXSM0[իO}j;1Y WU}Edz``δz$iSegwgNUseHg<¬aݺKiǏoGaYϒ98URrKӮR8NЈ?6 7;;,mo @-[.]J~9Y~ *=3S1HgwsED,]:oHG1ilcuӦk1{EEA)zyy̔2.<򨡡iݼ& a?b1̌w@w(̸YZ^Y̒]0P|֧^[{NBmm= }k匌89ݯi`03G:D..(K΢7?06a,Q7R[[{?wph8//V~1'5-ZjgF^]M^G$nptG$60 aa֢B̶m44 (A?ӁIAbٞ=o]V-ٳ' #"rW&rW BB66ACCJC!d:HokΥnaFnad`h}lHUWNʡ>|E s Tnx筭]{ϓ"!Y_/0/oSPE$XNRRIFFY @'t,?psۨ"alWVVt56voެ802]n]W"Ep[[-0[SK,,,~H"^b=mqF&$=4DhjqqE߷uu՛Hgb4#U/lmC$ sȺ#i⪪ROJT@ P(`N`h:0)8ao2y&޽|f8qB;i9w0-.Ǜ7X,?"wu*5GD::zwݱ#hϝ,>4!H} (ڵ#z_nnue׉c u-촢" 7o,44[IIL\PULG==N6MANNLL|g<“;mM"`ppTc?D @ttXQ)ttA޿o|La0sutY[ffhY;6}ffh8޽sed(⋃ __T0nŵ0AnahzCP[vv޽aKwTE:˘ qQ0KM}r7orsR(WR kשּׁnmެoH$rr2۰3!-$%֭x1q~EJ MMőNaazzW-,-34Dxx^ Y^^A-vSȒS lۿ~javNղ,,V,cE̺]]cr֭;{v%ǏkxmXk@WP[@{`g@O8Rrr;f`OttXsYYYHgeF`^Mu ɥ2 36p˗ LL|-TUN {v_73G6KM}ѷn5n{ZVVݡ `!::lqq-lYIIA22A$slQDy_cadtKZZe$= <+7z7IK+wp;88kf Zjggw"ñ`l8 ˎñpX,kQQ-I$iddN"."ntttCCTW 3#tt+W uu>Ef22B֯^}AlWztt !!nj\5 ffqq~8{WsqrP4h IםYmm --!D@ )1C:(`N33S޹3}v>ł3¬SR5pbA*cFUU^%Ipqq KJR0#02D"6sX5&~JHD"]~G{[TPzhZڮLN.} j0h9yr=߽{788<&浃]8kJJSS{ {U˖IP{,ʊtvXʯRR*hljQ o̥x6\j+'$yLO A@a*'Շqp@:X!oUo5Ϟ΃a,,s&W9sqfV]uppJKDݻ7/Y], 5cee //;wt([@4%  0Gk@a0[[5'.._tQShWdkC/7I..K`]VL*RRjjZiGTTٳOXO K+ܓJgMC<`0#~1ϟ?H$###66Z/ w^~==NOo>oA@aж{5NpL[lۄhr;wv<{Vfeu{pݜcb^/_._yDN\ylRl?EEy4t5nN%/^TnkJ,%,=ׯ]۷/[&rp깰eC..֯__WWVZZJ`F~ 䯳닋7oDDD/ԩS+**~D~տ24\@ R0& ]7=C5v3ّ*7-=|ppxJij|tgn66^uuL%%2EnFs֭7tiWp@OIw&H7o^ss/חLOOH߿/)(¤yxx!>~ԩSMLLw}K++R``&> 3`А {#aB IDAT[Hς3'CÛ]]bb0c͛55-'ND?:ea7s 5Z2~/mm=Lad`$)44[Mͽ#&f++#RJGGG]]޾>44̙3...&&&ߤkƍ3y)66V[[=3((HLLl'Bw9gg縸 .>} //>|ٳgϟ??vؚ5k={APff&;;{JJ A_WUU hݵyyyO>MHH8I!"HNNNϞ={///ѣ}cW?QQQlmmtÇ?~RQQ6)R/2% "G[[Z["2EG"s]bkk7Y^^U]-@sr%[ oxws@N5*+)~w)~gj־hkcc'Y()%LPp_{{kk_qp0&B_____ ʞ8qL`~A{_(++&iiiI$ƍ[[[ţ<488 W4o޼/_ ߿mmm.\Xf 8۷DFF}A^@e/i+r/ ˗$_VZZ>qܷ"ODBA}H&0cL*=عiNGBB :ڮOOjEa_44d(uqԜccСo~A0ɉPGeWzz9<88A Т!길KJJvI~z޼!+u ZZZ G>s\JJwO$cgg >~(((HnyyyVVtyykBH f͚E~XmmIWXq̙߽rYH"zzzvaaa1J^.w_O_KKK1Eر)57 3`㋎tLeGOO]]}%)Sgi윝͟?:k5a#++LUU_EEy)'>m){[*9vQJʻ YBa3SSijz޸:&f/άCW;88***vAIIw300ptt,((~:x--=\fıV#`5kDGGWTT̟?ʕIIIŒUWW^UU%$$}XwWBXXXJJJH?k?f).bx?~Hߖ21EHI .[&qf*5n4 f$$$W@S[r^^5q-??ޕ /%& ;]FFG1ڳ' 촞J#l|5rKzzMu3By-n4Cj8ܿH$ZXXٳ'<<<99966 GG膆C~AǏC;'% ?}T\\uwށT?wd!QRVdSDKP(Ql~"-4(2]?S׽:>9z=_YҥK fѢ`0;vTWW~]ywss-M 鏚t+wef˗޺UHhһʥKZ[[qeWWݻw{zzڵKJJĉ$3 `gg rpp[|yGGoJ'Nd?++"`hhHWW%Ke$V\rJ__-N D&~ BBBlll$3I)@wʕVLl@TT6ևЪ?0ۗ$$l-cdmM{^$**k2z5KPpד'` !Uy@xW{}PCe)Γ'g>[ijvquk]Ķm7VDa&iG~2gA"6OCC'e%lC)lB>m_߻Dha00;VlN"/_~Yt>LjxxGC!u a%%(l\\,2Uj[ %!w'NHpt㢠 fݺEs0æa`f0WNb`@ >>~~!!O?U ]5'՞:e)''eALeeϟp85II ?Rqۏƍ?yrv &Q^޴vݻxop4 wӣn~ ` llԣ6%'tv100ټY ous7SQя!mm)i# qpS%¡ʢ#_4RcoZxxXa~RpMRSnop@D=KnGNJ308?>p_C9LP ^^-yyUg<[ԐPPWVPܒ1>>HR>G+,׮mG-2<}ZlY`L̫ÇMSRv.XSAAv 00mjW` f9M60*5454 @ŋ祧{wt//Twtt .E^^(0:<Ç2HHaa 5%/>Aw>'$$1-47waxynp5#444ۋ=x߾}A@| =g&?RfN`B!Y‚p%'17i)rEL;%eg |҂n`"g祻vQN~@U\θ\%K$)&b..-- n<<`˙.8!**[GT~8טg~~q;w?hO{{2Sbbwlmm222rUU77ׁ3H$"> '0CAă'VC]as[FaӦk7n@9!m*MEGO}4r䈩ɗhheekWeƵQ߿_`o G}519>== F<}:~xhhh@@ fǎŇrpp`gg͛===\_@ __ߚO>ٳijjJOO?rȨ?tFܹ۷o߿?p/ YDAB.ef]]y@ H3gBC߂Dmcb<)16>_43n7vC jBA ĺNJe$)?MJK6n;?0zm-]z:?{lkL&i801<<<VVVڏ=JNN62w ,,L@@@MMmʕ+WQQQٸq+ikkߟUYYY___QQ̙3{ٽ{'HGN,aŊk֬144ſzzrB6D0x߫wO̢Eǃ3V&YY_dd47u{|>}7oOB&ȑVQj~~_GD/EZ[Y]ƂeX:XD?eh%$RpAp[lT8!Nbb"5|*,Ԃ4#&浬Uʘ1'FCC"/ l0`tǏwuwՂ-_9||V3e2O :$$] ߢ"ZV@6ʧܹwtޝT0#4tDkתPBpFDDLſ ++AlFD~` '0cee`ccb@rr!B`F:eyŋOn'SRR|ii45GBCrJ[()::^Hwee:y"rr_j: 89]mmMLteW$ .ll Ի \C&<[PVA3M$135Ufeb>yR㬠 Iһwoy&&'OvGGeW3##"L<1œPڰAkޤ 3kC۪>mNz{'de}=}ڊ-4ECC]ⅅ9-_褤02R:--øiן$JH^/ ]B:5s'bYY7XX+k` a88cC@3im3: ӧӢ_Z8:.ۺ5EEhsoZ$%yh4aedo[>WRWUUlb&88#2ex+a2yС-6h߿, Ӭɘ ݹsz#h::::zz &7K~ h4H@D(a` D"22ml 3Z)H,-mK`0 n|A[АHMB"kք<^F~")mmOw ZY] HA7ZZ~˖_@垠"ZTT;͟a}} u <|a1m~%**;(()Kp;&J IDAT{ǎXKpaal_??sp&`CB2,,. PU5vwqm3\\V` caՕ?74&:@3~~vNNf(lذdxG4=LGX39y_=sO]a\}}QX^vmmTF)Hŋ vvI5OgN>> b--MGܺч_GEe~KL3͒ (y01 619+nnրuG_wℹS]3 ڳ߃˗_2)YXfL "+_Ref 02҅:?owJ]'L&0#ae=2_*h`0M̎W/!͒W5E٧z<t!w1tw_FOOJss{bt*-g鶶{&Xر]]?trt\L?pxh80:V-RLaffb,X XZ:hjc "|9B`Zrn99[3)RR|ii^6hyyŹ@!#ll [{{6o>2W PS˫"MMs>ݻjPƗޝuJ_|ecsY\'+k!<fՌTC`E#>}33SILt/+;\AAj[ZP(NAQKK*3l!ΘP 0399/_Ƹ}ȗu" ;8D=#RIUXkOtt\߽ZwJІsܾ~8j$ƼXkj;,..+Gzg[7j9bFKeTUŹ8O q@Ojß\=hcs95PDĆtut6p1 ]99Pr9.}}p E.><+*?i677˩Si` 4ll QQ49{MDc##n/]:=AAn>22׮m~ 7А &n3p{{{M?|kiyɐY{˟?߫' T-omcrr ^bgg((8@k4f,]*_R*}},,p`CmE ʘzzɓ6\55U20[ tA z<=o/[vIK UJ-G~rZN@@Jvv S=ZZ{zcۼY,rr,,yyUs8@ c񹭭n996]37W TViiѣ޼V;plEAjjh`6W޾SŗNffzۗH Atp8< ~>> 802P55%oWXb,S0(; u،@+Lki鑒W gZZR;w._~hf$\*߿=}jyP4H*< X<<==AA=ٿ_y+;gGy B;UUEVgxy0T}=tkF gg\B!,\VeRiMy[H$%]l-1893x񼾾O(?pr29bvzΫWԲ݃eܽ`%|񄶶^fH>+Ά?rkzz27^+Аhl" bK/...iʅdK%%W/]ZΜrs'O_:I (짶lvvu>mce&G@vƽdhk&0K犈pef@}Z-+˶m23Pfv/9=sP봵,Zڮ<) B9ZZ;:^IIIo>Q WEF`cc7#Ӕ<1? `kI]9"bãGttNedOtRE򴲲^>>_'5>ޭ{ӦaZ^xymmihHLe2TVXZrn%#GAHdOLK"/ 8h1~6VZzn88"Cͬ/_44$89gJLAAQ>[(|_CC|Ӧk^^q R u/5 eRYTWm|--mi( YZ^Www֛S,'6R/]6::FW+ޝcrHA]a˖ܬ{ETTD_\4FMH37WouyxXiKW@PPFL+YY=55"z fLw7D5jj7kNãPpMA EEеno3ۺwb;L4yƍQv#01>Žl22bhMQQcM.]zwj#" BB.\Ȍ|IjiIzU1ճ1{:ml.ss$&a۷jkLMxGf_T9L,,dm[ࠝ]DNNtB[YI\ BCXl0Hڝ;##n'66ƛ7]{ܓ eMHp {ޙD8#ɘF#̵ر#vq4`ݺE~~'N$l7GKKɟ{zc+++@=뼺uaLJJTSr幃Κv! 01߾VT+,gQm3ax,,߾5cxOmmP_ll{z<)[JHp/+kܸ )a iWիFF >> FF߽AfF;wεk~mٲ3w߱y{=+TUŘG$9:.InTVYٲaU""\ٳw O1kn![46=4 @x(cC{{_L5rgח[ԐOJr/*usIc8ɓ/^fYS /*oiƃ--\\ e)ZH)T30R xʔMNKp66FW0gٲ3={81fG)+ݹ3}tOH3wz۬c |h4 l!PS1lۦ]` rr[zyty%1ѽCWzz0J}炂ҡPR@ e7lJRٸ 2fyƊp㨯\.!)ɝ!lh%K32J?dC@m>6>6 D®P#Pp`PjvH~~2@(0АPS {)!%=k4\3Mtt32|3@Kdt~3jjOޱcEX3C͋Q(dX?%[Q<0?~AeDeD"1%壮 2sr|mm5SW`mlv(rC30񣝟R03h}%xz.߸ڗ/22`k::wx88D:8D޸ O j& 3}B!1@Ayy43S޷ﮙ++MȘLA011ΖᶶxRo0t?'Y2"ƾԔq U02*+(~?5PݻꜜnqG·}fXrL~f0Z+HK? rPVIJKͥxa:zC,,YY_/LI(qq$7~]}2<ll ttu[[{t )=}Yq88,| 7,-Ù铒&*juu11DP!*OIxC`ec^^55:ׯo`׮lv0gmm*ơy<^UuA II?:H,\(xgccuwIv.KK5inn7MLOzeewqYz\~˗_@ɜ"-;IFmmSҊ6zb:-,˜I? uٲ3_48'&/X @틂vC^m޿Rۘ, c d3f`B}7!ee rr` =@bh(%yx!_rN"hdt Ĝ9N;16\غFF:/IHG:9E@a9wztw::^ed?|Ts]{KX!G:?׭ caE GEe/^n~@Q`A G=dd-L8RRv YXwP($@@UU]8׎5kB֯2 q2$խ҇HLt}Ӧ &-&=`[[$3f55oTiLOƘD\CGԩSikegGG?64 |gݑicŒihxxX^:y6 I5L(~*+(x7}_ba|ʕ,lHI zz2^n73 Bqg{}}""^.[v&3acovӧ:mc S2hKg8cLLtU.%% rr@7g>K׃eZlۦ螝(0ff{==n ffff%g rDF:%%Դ>~qUU76~IOC[[BzU1aX,~``ϣ=+mi鱶VoZ,-/ q޹m2&T}HD~6VRkT`2izde @䤥"kW<5hɒ%> U? 33FII>δq+޹\ {mm;gs~f@x3^֖pw/? ˲Ы͌40 jkKqOSXEEU(W\+5J q45}`>%_fmMG9Z[{0PB=f @OF*>jiCIIl!0 h  8wfŊaaOV-gZ߿};..7<<ٳr<ߢ..QVxsgoݪgoI=H$JmΥ߿X&`ժ.8l~gjJ-;?:H 0g[Zz_(xqJK/IIݺ ;Ϟ}5} mho{[NNyV&&:UU1}iyy!*Y Ć.QQ.jCc9f`@ h$޼@jj` U@70@R!YH\[[ l9ӂbhؑ#߼_/"OL ޡI,+{add֩Si?Y~ƍ`ef1 y~G-7'AQjGOO&0ׯM22;gD,>>P~:zmm/ϟ?ML99'N$5XX0XAAxssUPqD<؞YrC][,ݱc p tt$g9:A`6Ľ{h4Tggݴ `w=ٸQ;DLAA>oPX,~6B BpTFHX,,[3 1Fխ[F?x)-=l9DI]]b$K/5s e==T}uLCZY- <n;{+W^/YB UxB(+$%ms04 ھ=Ǐvj\!͛u<=o%'<Lvqu\II^UU)]194fW H'УTC`E#>}[V%1ѽ4 1cLʀ2f3SS%S`F# @O;ijꦣCspnwČb8]C%fRƌ++ClVKp[ۈ{ ֩NBoݿSI…̛7_ q75UfLؗ!>>6uuu+V,elг1ãf0V30˴ liidd%%z&"qAw?:\ҋ:MM'O޻W-oAz ,ٸڗ/'A$/$&(G+ڪ?|!$I}}*>><$جH&(-mX⬝Ǐ_4D )//Ȉ)/oᔓdd˫Q''7BB~]DTX{ޫ||V_>C鹸~PkkonneNNe ]Kuti,/40ۿ6;ihRS;A$Hތ j%`c;\CCXU[i ޴)-Y>g,8JJ{{Y(SJO ~]Iǟ;:huMB!H%nH$-[&{q8C^{.=H=rUooc,᡿eRT!HCvUY shB`gժՌRRȿEoڤ\ y? I3;0`x`;ssP pg1bȎx>wϞ$Δ%*ɴ'nٲtJ@ nެ})G(-mLGGz2ٿyGi;y-|""^~ ؊"}oؼrBp^0H$g?ٶMh.P{ ,yTT Ǿ}k C 54$_ kSj{ okbhfBaož_MoL&0qhhɓoq8 XPcc.=O L׬DĐ;u,xSS7@DQ\\J7n=kmgӉ71սH$LSjk;ll)Nmc:: (՜ф>=jF"ܳg+VQX(4&&RRvNSf̆D||w CB옘CE;/\ȌUR9|TCClE0`߾;_6=|l!S;{H*UDntEggƶmœfd288rן'8OB»lݪ'3zLnnefƾ@ t#F#UTنHdwc4r&05 h{bح|qqU]ZZz*srʟ=+kl`^HL]]i{{'TWV}\@ ޿?2C*qƫ3gJKO kSfn5zfO9fBFF!`ˡ"ii0ml.׃- ((}\G˩bSBAA}Zz_0nfvedtexBAǏ?54t = 'wdAMmjV15(44@rk̘@$''Ç&M=^6nBBgdm!tt(F,GzAUԴY $u) NB!TU44L㉑NHm{KoШ/X,^\|LL2Ylll-1LLX{\>Ivu ,\xu0?/ߵk24%N uZuu o7o]8A rgꞶX.(4JTUEss+gV`B!%%̿~mzɓ\FFU I/wܳv͛u1:05U25U) |F#q8Bggw=~: _ Oȍ(&'á I#H`뗼|Lp~w<:uwиO5$F v}l |o2&ee$ UݻOK996]TwiFIxxfތ餤$%@ROK#pCC23oܨYXFa"qx]='PHkk5ssg]5?( FhM l% kw{[0(#l8G(3~593<8oFwƢ3343\n|Y6aF08:!=<ܼ}bKKՕdn踷ͥZg>yp) 9òܹ>~6 aKKtK 2c`hdr`0vM9Y--gþ<)!r1c~A۶/^|Ma*ŋׯG' 6CVss[RR \&##l|+Zt"mmꢢrtww(۷cv6d87D4­[+wqZ̙dgWQ-\82:zɓ~FZ:C;`9ҤMEʊnMK;p±c?}2+*<vAիpxtz|V~IIsT _*ǃsr2: _UU9,D(;nDBq8ܹ.x``$?5iXɹsEEm}{ït ݲ UU}Z[i?(ʾtAz˗146R ޹3G"))71QWSSSXmm-/_:O.MԈE)))EEE"Qd޾SZZgϞׯ/\ 755x97n`0u'O~]^^I?Ƌ7oȓ&ٴ՟>}z!kז|o_M&/Y2z!j_>|-Y2jRWz 0? jGJ~V` a ::IS׭n ra:ljjkldhVERL:u~rWk1!<$;>--Lf* JFF:ΐjȠq8<;;sjkKۥN OjlgGW;,((srԔҒ#55唕; kkẇV6 `0uxJt۷_ D4`0cƌA; Va뵿x̙3+++޽[RRDr T;XhhhD/4TU5[|Yk+kǎs8Ż-tfp%fiƏ<{/݋ݷo34T?p`֯zE_}6l05%#ff>dŋaKKK kMM- FYYNYYVQq?DII|"7m5qbWpwv~q?p0vܛZTjsCB2Ԗ:FCC fsDcwwVBMM_R^㊊ g x1?1{Ř1c޾}^t-88IAAfhST~[uϞAvѢZZ_ήB;~(]A;"Gy踗 }ϟ?P(B- L6!tB|(n~ @zÇ~B !T*{2 Y,֦M4Y, IDAT447mb ხϟwޭp†do? /^HKK޺u a6-ᵵ0 BD `nܨ/_ 2DSSȑ#!v횹ڑ#Gnݺe``wY`Ç?}4  & a+/^>7n - :thmmmSGebbS?uk׮Ateː-t!Cz:innGoG;Zff^ݻ_Q9:0 ;aIm7lCq8ܗ/SN=۔)g>Mlkj ÙZZ } 1D%f0 yhGS=hѢŋWWWcǎ͙3L&;88l۶ ?yO>ݻʊL& 6lӦM=`HKK_tڵk ĉ~۷o!w?nUUԲeܹAPMM ͛7FBK._ AP]]?eCBBx É2220 /X`d2z޽#III mڴ9JS@LNNaQVV}UOΥ޼yfas玕UW.1KL,-%/v5uzƌ(t $f0 <ŋd[v|VS33 W`e/jю蔻?|*݂ ◘ߴ!QT?p744ݻyUտPOd2a33gϞ!QT*URRɓ <Ns>gd 9n[[[VVr  d\i}6%&&˳X?cǎ 'NBӑ<{Ĥ}$-[@\) Q[n0 ߹sӓ=np8?~aѣݾ.1۴رb:}A8 E0̴iv&=4z' \UI9;^$!aϚ5c_L=ŗ/S:[ @Ѵiv^t"kL+))Z*##c͚5;0 ,**B777 ߪ! Yfu(eeϟ?3&** |8`D+%%;i$GGǛ7o@AA II; ^NN.!!!22r?2e A Ĥ}$wwÇ#x >>>?aɓ'ٓŹt={g>|`g?ј!!IC9~ff@?dd$׬kɷn}qrw+vmbFCCaݺ_%%ٵko;;;t}freDDH.BiiҥKa@J炜Brr))4[l:tˑ#G8SFai0L~X21+++;wG@@N555dTᆆX~$C =)))Q<T*uӦMRݻI&u$rV__͛7'%%]p}`X,+$$$77aܸqaaaHbF p8\aa!mm ^|yҥ|S=z4N wkIBO ~ѣuttz, a4Zwƌ1[tt? 1HVVj _w1#F}JX,̘M6%%%ںgtzONSxyy]paذaǏy󦾾>A~~~7n,**JOO߹s'99933m۶/L&S)p9s^ťCܮdz+ٿ… {y3~kڲ1yy G?OX}mbv᭭,#By"ϝP_@;D]?Ͼ1{/̔)SZZZz%9ڬWZ/舴MaxӦMȧ K?D5'}Wcsoh#=:{СCvppR"Eі.]jժ/!&i&"8o<~[all,%%enn", )B|_cӧUTTtuu/\0o< _o QBB0 777KIImٲ *pBUUU--Z[[I$Ҏ;ڟBCtDt_~2d֣b1{L$7oFkkDӏR'O%Y[ӧOȇyEMŬ5 ÉNKK߯wWWןx:K=D"oذdv{U<'XII;vAj-22*G : v1nSZp٭ CǏ@nOO|kadΝ*+Ў5 혩Saï=..lvؓc_|YCCٳg_FH0h4bm6ꈆD_APJJ uB6a„X^OWShO"OCtv._b`0~ MG; ZPP_=N""h=.М͙sNs`0^ߣaÝASN|;l-&No]Q,`~𡉉IWp\.CS/1abǍhG# 1Õwu2kٹs/ qb2S5l؁:z?~nqqNKN.3Ł))hDžccI11>Vر7{/|2U\ˎ6aɓO߸E6xsq1:cN`we˖m޼9$$ݻwHUU6n0 ^v 6 ݽ{wuusssϟd2WXs_[[[[C믿'$$ر߿`0MMM]?ŝrEXuG155wNɓEg=щDĽyCNL,޺իߎeӡvu%A;sRo`'߂j+.WyCSӭ::L7(B Hba쪛3ݱY, Gq=V+++Y7oJKK/?bO葁RcADrr2**++ 2=$:aNlۑ5kn~W=_hhy~;" UM /ׯG77Mnnx0> Aر3fO`-++vhbbsRR[ZZvXGJJJ>|x~:ǭtwwr| N׻'$$D}ʣGDL4_÷o噘A FD" z}ٽ;8"bAe^}~HWp *(d 8K&wbXX追99Yn\N&8q—ǃ՟>~B;oVȜ4NJJ2uJv bѣG7'Ox{{+{{{YYY--G"wb0wZXX?~-at钥%7nܫWJ6yfyf6`>~!Pee#G@lbffqƶ6w3'*hS-^< .^deAkn0ry9]%5ի, ͏/ZtUW#-V Mg8h5y{9^'Ekuu e8XNe,/jiЯk441;;[SS(++[WWAP^^^y{{744\zz[^zU[[ݻwaaaȨ,hi1Z@(;lllJH]+/:9: gW ddT g66;|Y]݈vDJeܾ3}D;6l2C&ikErvN(X&fl6WWυ`@Y^^޺uo;w<==w/x(pKkkw‚FR_h?QIZZ +.TU5~`OaҒx͓orFիӧۭ];\ P,?DyyË/^,^0i6FJJЎq`vڷ/rPHBgŊ0Yoʕ ޾C BܲښKKK4"~EEEFg:۷?uc3νaEQQ?L? ž3g|::k׎{/_v,[暒R:e]~*yL?F3^D;:E$*WVB6zh:6sL]!M~/ٺ`ܽ55QoOQs^b8OSWWc@oĬIII85JJK\su=dM$ w`[wzȚ[58+Y3c,mm%0b&t8nΜ9WvqqiW rݺu[l ޽{A҈큵zBi:tc--6Pf>G3>\C (@b J Z..Oz_W@;4Q?"(hEj}d{gƌΟXXXvh͚q~'h` 1 YYY1Btԩ ̛7oҤI.p˵k]ĉǏWSS ƍ:tc:mʕݼI-XkҤI۷oNqu55}zٳs*}z,=H߸uvLssʕn$`_{L&;**˔ DҜ6m.ڡ_ _ht}P1u q#ԩe>+]]ݡC"}{[a' ~uqtaF}̃k|4  [z?ݽp}=zb11oߒz{ɓmƍtq1BF07oخ]HJJ?Vߌ`233333(6!b׏HTR[[YI#۷o 277'ɻvZnA iސŋGiV[wISjee;HDR~d5ssKG{{;.)$%qcƘcvwrr۷i/~eƌ1?r8 55yD?~ܽ; 0uV  M-[̜9hٲeWnxxXa+)1B&͟DҼukt Le]7oF?~ xK]UT%NGF憅eDF洵qH$MOO+OOK''C,V wl+Ϝv,Jm/nnfh0艟x\q}՗/Kn|p]X@b&(ףoߎik9^=V__DNH( x\Y٨*?rĉ6x ?|i[ttюl=xpܹ+ 1zG_'99Փ'޸&QHO&//Y$fCK +WNnxkkmJJ22bc xp`ʀ 4HX Җ0>OK\$Z5f,G cwEYYnlٳ\޷o>d~}z`s77)$80k۶'VVړ'۠AT~|~իKb15kn_J~2`/?D$*X`p3bbr?}ʪlTV=Օ4f8-C7o01]}N<)*JFHO18pdp)++daaIG=C1P(ER(MAA+:@l+.xGx-WGEFE冇gL}}UWWCЎW8ӧp_MVvxZPpLj+..޾};E;qز2 y VSӆ~8\NM^tttN>--)S<{^8."''}*q Z 1Ƞ/y1FFh5 q8̊r ceJrs# n<@[ڲz 6r.+?}x˶6Vro<lhs8\y#.04t$ܝ$oVe4 @b&Vۂ\ /,5t 7KQ(+ѹ99M#Ge:rzbSRJ}|.Lh? Ĭѣ`cv,طo%{͝;lV/UU~;qGqڿ?ƍ׸ ql6˖=\pH_[`iI\mt{0rrrbc hV55#MF45x`n}dI}1b2[][:ih3*+}ѣMiaό̑i IDAT̙sԔp)C˙3'O;L!6'zÆ;EEu'N w:32ʕ/Sdd$O7o>A x\./?&!(**7""FkUWW>Օlhfv] Nڸ…#-66~}²eh2.^tGmm[MC%644߾ HVv…#O.wZԑ#uΞ]``&=Z_H Qab7LMf}1.Q_[@3 (v|>}͚[cǚ_HZ,(8+iih2`RN֙c޼q<o_H``#ދ -+#˶n}Y׭V HBB8'ZϚ0vh.,,')˗oJX,R6|{˗eˮ_L@[캔ĥKd`@L۷cx{0DްnXXϟ1^(ljj9q]PggãGI$AUG'Lnfjgde Eqq,Isv6tq1AqHzzŁRRkזYZ ;/^lD;Qz9@>e_>ˠh))_Fyyˆ7l1Nb1;wNuFHׯɏ'$&C<=-M;LVVZZyBBQ||Q\\TSwq1tv6G+%R׬_xܹP >]]"RN&PNNر>~"" ظ񞎎r`R}}^ǃ߾%=bƍ PyyË!!ii V'Zdd$M 5iE E_QͲRVV..Fnn$gg~~9//_sٷoxEuw r26iۭ[+=<,юE$x|w/x<˔ͭ6n)zzM`🢢WR߿OOI)3lDkK'􋫒BdciiRJRRwҶly4dF2韃`[iQF;"jd17߱}ŋGJ~^]Q^xש'O+(?rŠP(\ࠏdhP(ME`ZZZ9 ΆHeDӉuu-[/[mFG} 檻huf۷OA;41mǎq#Օt8 vvz18)$54-2zHG pe6μtኊ}|D#q)Çhүb9@3gmڱ-*900(II\@$?iss'ObbUTh("Q̟79 1__)(鹸IKKC*22ݻ$/c. O X807W r28g{rh*) s'FQq…#Wr,?&$$z[[]ooY$f@*,MH@V*,( DANA‚s$P]ݔR\\ZF3%,-4IuuW#`uwmmB.OoIbPN'}˖];@)>000uqWAAWR+@!Rhqpз׳sԤ噙--n4*֭/AA_)SZ5NS{VKr̘񏵵ΡCD۞>%+Noq^^=SuשYYUjj'Nn?bO $fH4o23۾{ FY9Yg֮ºys9ځJaaqw|mmeMhbsrr_Jy257ZEEn8iƎ^7@bVVZZyRRiJJIjjYII=A4))dy]FA1drljϟ'544e?˶? ijj12R8kx0hr2,-ǃ͉VVDKK׸\^AAMFFeFFEZZyFF Aq8…#nj1[͛=z@zK M_Z^Q9W18۽{qEE$iC}}]..)  ˈ-` <=Ļ] $fʪʪȨ̬ʪd0ڰX%Ғhn 5 )7SM&0@8IlxK})) @g΄>~'ځARN&PFFɈmcelj E3g:x{;[[kw=Ό1A]]a8 K77 (&dj2V$f |UUuEEEE%%HBee9##5## CC55==U==U550/+l67. <<쬬Jii #L 3rt4Pofs++ssRɩ.(ry8"Q @={Voh?@9Y!}5SR k~̬  LO/`0VVڮ$77ƒ8< Ά..:0 h 1**ُ5EEu l6 YY)==U]]}}U==U==]]U}}U6|Bi5?.NRgk\!vq1tf2yy꒒:auuULM $Ą}3;/_99yځW&%˾~-@s0lcc 771cH#FRSKKSRJKiVYY);;=ggCGG''$τ(+x0AHdH *B ʱX+iH.>Pڼ**H,8o.p]HK+4tgopO$N`['p#UT4|XnM||/aI$+/oHI)e 2Z?DpejjjА)JB+-G} ĩ<=O U ~t:354)49$%BpXI^oP]KKmKK]_([K))ϧ a'H$a35%s/s8KKKb_?v'Nƽ{[>\. CXGGO׃r̬$SSK)?;IKKN6VVkX#L&B!!ꦚZEER,2%@^]?ƅ挌􊌌'''\73$$Vo֖c IZQQ]II]qq]II=2n))U10PW30PE6}}E\EG^0nkδqxree…6m(~9֪ #Y:^V^ZZPPRR8Õ0$$s;~W(08 pxuuƚZeecuu 57!!Cmx z޾Mq#zڱ}y";IHfvyXqÇce "_&@]SSk@ż[IDAT7oڷpv6 p{|4)894;0!dd$45H$MmFO*<Ϟp[∂Lva_>3D_ƯsCo)--$)*@O*) AȍBQjGmYY=I@#Sh ɐzkwkH`ƍ(7oa >v7!Gz/X07{۳k۸#p8߰':@X;ݿۮ|_r!Z+*گL --I$*YYmlt͵H$M=={LG} ŌcvޜHZZX55:z}}sM Q_ϨTj3cII^UU^UUNCCQUUNUU^C&*}lnYI kjk)&$$H֤O2ZV?@ s uuUttTtuD-ZCAX,ڻপ}kM$W<>J" #(: 3:PK)j+:?𢧠ב302ET(Dfl %}IvhȾ,Ik3gge;e&# LڒAx7811L\\l_ !|^4&Gÿ7 :k(!_H?^4)eڴ̂CN&jo;v|{'y饢_,`0!0βe亻n_&'KLRhRIIjT+fucOp8gXzz^HC 0h6;` fzh^0=gD=f0nuw_XB~8zZ-KJVJ%cn*Ȥ=@änᠩ"Ŧ32 LMU N]]nwƱ"QlJ:-Mitn7i닞z꾸~nlz/ya_ DʉLLF?4m~F }Y-nwDv?}Ņʥh$JHpl pA6AC5utuYβ!ѻB!ML4T2RJC8RRT*R)MH3{'X[Z,--՜>NMU *-"c}۹Nhlw 30aFvS*{{r9]S%&&&-MNJ;}UU yVVp8˿v>!/)j\.G~qW{hN]kf6'M`G3X,>0i8YvI_"W**ބR) >|ggdiiLlKdbKJ%RSt ASRzB.k/=\.^zƎԚ3uu-&{GQQAEln@(4!66n<߬Vڍr̲i:M(PH Bq@.DYvv\.6^L\cj&H$B+u:9 t:E(kNd&6ƨR%ʟy&GXӧ.nrFU!Z,{Gc6upNE11\ FnrDSL^J$"kouvrӧ谙=bbqu1m3@`ɋ|i2/_hs;nfsֶ|…kK>ݶMJ,jZmHSz{m6ٜ6jul.!eWo8ΥTJi %2 x<j7;Xe6Lx'ܧOmiz=  3fF!B`p;HH%$Ź\}Z]ZyjQǹ|&BrDbH$eeσ^Ҽlٮ +*(!fcD/ćy<ѱ8z@/wjp;0<[CCCnn.wiӦ߿ѢE4jѢE?]w5 {2##c̙;vHNN%K9rnXhCyѻl4}nk ^.3&&Q*J4Hgf a̸Hqd9r'֕+Wޮ.BR|W{6o\\\<{lRi֮][VV6 Q?dff׿{SLU*~3۷itv&0Y,Ρ 0 a#eڇYw[|k7'N}tww㤤z+H_=))~}/--6mVJNNtᡇzwev\[,8\:f.MgJ dҺ}ެ>ꫯ b!߿?//pB7nܨj5ƍӫӓ.]jZimCKB=ZXXw^B]]]2L"sD't:DoBqBH|||EEݻm۶gϞ HP ì^رcWu8q"''GRm۶MUUU'Nh4nob(1appz-[w}6lTn;w}'qqqvoݻwݻyz.((Bn8]yb4xyR@uz#<:tEk(**?{lNNΖ-[&$:u#xP [nz_wyG>|رc)))tz },--9~6 ʟYP!f%55{~~~[[=o&OLQ v:UTT? w333}5r~ QF9O>9EEBRrʋ/YFHz^gaٳg766|BHSSSnͬ*RN:uYf9s&&&oq߯R|]sO0}O#%%%BbRR0`XΞ=KLWҔ_7 Try#RK,y裒/R :t㸾>H$J7o,gq{:f_y_jUaa+!%%%Zvݺu5l6>}z/r(gT]l`{$B֯_p͛7/^8Hbt^zƍUUUǏ7VRR"g%].FIBc}}}}|3ƍeSB,oBʏ?s^=3=H8cZî]222֭[r&03_7@yyyNNL&{b9f 4MII懻\i?>G+((vC`d544|\uuI4MT=rBG D\._jU(@!0h4;w %(fQ D3(v`lqf9ڭ18a fn3 0,abqbd2¯**"uf<6ice @!0LatmuIENDB`XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__incl.png0000644001725400016040000070674513273140075020416 00000000000000PNG  IHDR .ibKGD IDATxy|T}ɐudLX ZYԺaZESSUۊ *PKE[{$ pB2$!f d!d!ƈ,IN?, s]\Di(Pp;pv~_l6,=䓓'O;g" (׿Ν+w;w^}iх" ڵk厀sN#pX# E04`i y9_+Su]p+Vر4477_MT._<77wƼyl%o FF`zy睷zk͚5+W4Lp]Kfokڵ/E]^ӝU;hѢvnG0>1" cVpp A8qbff[or-C}ݠ+Wf^{-++k/JeKK֭[5͙_nms; i\\\} Owww_z ̛7/曯_{;.ŋy}7|UW]o~K.o KKl^{mɒ%W]uՓO>k׮ŋw7?k?qѢE]wfnA(/_}W_}/lZkC/owT?X|W\o8odϞ=7xW_[,7Ÿ#EƋG 0gΜ={l6A {_|;|W:::[l뮻6lpIiσ_~ʕ6lػwM_x~{׮]O>_-[`2ZZZbccf ^?s'Nx嗟z)Nsl/ Zǎ{W}^{m̙/bkk/ۻQ߿Æ ?ƍ7m۶'|'ؿJp#c EƝtwww^/_|pB鷮*K.DvOOM6Z*44T*:;;=,YpBA-[{饗 |Ƿzk\\JZfMZZ CZ_}սw-l߾}lO𸸸;SEAzhѢE)))?n /{#wuWtt)Snvg70ưFƋHA\]]sssww|йĉApwdwwgy;11|}}{}WcccttZT*JABBB^MRZZ׿kooRNAN81`~N'_yg}LDJ>-: 1i|0}ts۹sgFFFXXs~Rooc=v 7^444Az]QQ!M(¬Yn* Ml߾jzyy;vL~Q?a~lٲcǎ;v|Ǐ_/QWW'C1ɓ---MMMo;vKVm6͛bZf^,\pƍFh4>sn'(..6 7o~wovA͛nݺcǎM6]|ŧDww"77wÆ ޶mӟt5=x7|ã>cd?^/--ݸq N10fs=ҋpZꫯJ :{>l٧9]w>>>˖-??{a˗^gwy=88W_]~ڵkccc?8Gw}//~ .h|ҤI/OA^x;ewymN3˗K9x_F#߿%Kر<ϳqƆG}tPRI+VpO7o֭[#l>vا~z˝\iw9rwg?̔;ˈwWF$H3u>@@pp~3Ĉ4`i(Pp;p.vy{lB{-$m(AVj]l(0DDD??{GB X^CBfk3G{{ms>{DD `8|jWVk:V{MVǨjuLRŅUgdݻb~V}ӧϘ?}z|L0(0lSu==??SYbՕlptw錻vתPjqJUedDSR$4͢hnJVGKNBB1>^RRW&+{23cZUnnRzz4%`̠HߩDlΤagYYJ7ckR&FiZ[[W@wffI? hGosv@Ukkk\\9:5]4ߦNg+۽k4Vjrr<=2iM,?ԯ9Sc=䎉sQ]ݜW&o8zgzzV7{vVG! (0|6gU75\O5g>>r ַ_mmmkjjTnnVɉ ; HjkDѠ?!B(fZm\vd__qMyyeh,+kJ5FժfN ; P`0ws;++k4gjuF , Bcc(DѨsuujUI^'w@xGsQgsV^p86gٓ'LOhj2:T- V+*JehnnF5+122X" gd-)?Ms8_LCw*ECAAbS*C5V7gNrL 4SYEElcblϯfܿ`6[@6N\w*==xFժ22]\\iCȑSYyyۜM ;&fKJʤj'ge)ZUnnRzz+bid-)w6gvذcL6^:1/.,I*+K&wF١H]]梢~YPoRBjUSƆӜ(/o={[Z:}}='k*6.'']Fp.,pBڂ蝜v\ժrs.01$,VU5/?ɓ']`6i`X,6NgE9 IN$gZmR*wLN((2477IQ]xabDD/x#OOG;:<`P"5gҀ3bz''G8%%)\\\N @GGOAAͮ]ehTj4*6nܔr w..֭[=`PAc++;ZBs[ggo~~4}MjjɓAZ))2K:/~1oK==e" ~͙^_kJMt6g WW3;:;{ڷrʂ2cF|TTsmﷳRniӔA΂f8՜ww}}=Ңh`Z%%yyeh曊^j﷏Xlc-%'4:Q4RIZp;&@f+Vsg>1ץI EOjΤag:.ww׸pgsj7vGJʯM# Mi5Ö E^sv`UKKglX//3bbbd 6qp]\\lon~kxa(Wr0mnj2LJ߿Pϼ= 8Suuu<3 kױw18.8tss  wy\Qqcǎɝi }':AP*C5ժU 茌hOcӯNv*&0iRPXXBP EcS{{wi1i3Q446 P174SjUAAOӧO/w di=G6g+VPc.`rH1Q" ѪȑSYyyᐚ+V_>m24_hEa2;Fos wL`p;Q]]fQ4lܸkժ7}*%W]~V]ݼ`AkVPC߼t4Z4pqqir-Ñ 8ØLzHR$&&]lv&e˖M<_Ѽ{}𸸸TTTȝb Ҁ3bz''G&1ɓ ˂׬YsGm۶:K VtG9{NLL̑#GVZ_欬+b֭~ҥKK.|bp(S欰lxD1+VPc? <eĉ?:K?f۶mM&BXXغun'/w]v޼y7n~3ϜU6X`p1#jm[o~-ZȼyO7juO_cǚ'ui'Ѣ|*?ϤN /L2% `ƌ;v<[G}ᬗ|||Vڵkcccn馓'OJ;鼑?999<<|ժUn?}`>xɶmq5-Zm-@v/_J[ ; _ի_z%iK/TzYUU%.(( Bpss3 ʨ(u'J#Gkk}q8˖-;|KK.jM h+|gs-[X,__p;i eeeRc4H1g&ww׸p:ju ;~뭷{ソ/SSS?+[o]zuPPPNNNAA#Os/5\_gikk[rFy~x}nZdɟ)S444awA6nxuI~}ꫯ+N \=̧7ݴ!#ш%saWvuʝ?f??uTp8{hNRϘ17NFx֥׉A+,9~C"PQڸɾr`...[n$#q 0~wsNXV 9ƙjuF ;&yPƑ#G:F!5gW\1U<;{ ~r|wylDLޒob'!!!yǰ_~L6pH)ŧF{ԩr0 PF7f0錢hp6g>ɓrs~ˋ82TF4(#5gҀ3bz''GH͙Zpqq;)э" 0Y欰lxD1+V̠90(#NLyF:D+/yZVa2yDF\]皧ttxzyY==}!p_``0<,WWǀ44 " ?^Qq9+*6zEќp&x;O[ggg&mnoo]V6qq''L=Sݥ>2y_̮. c [~~z6fo UCp Z|.0:Q4RjuZp;&4:Aϯnn6 PJojuZPO%h4{`Aڠ92_+3lnw8`m[[;'_qE5dOwg~H:x5..3UZZT]]^_EX^p8@6NQCpziaSxdWOy23c==* ,pϸ$'OȈ`۶?ÉSaVV _"l~~X'z>gNO>>gu?q8PڿWSKKAz9 V1#aD!G`4H |>zX//3d]ZzN]YyfxD$'OJJ$;uW7':-ZjABB_eiNݟ|{V,^|)S"l)==ϧEEuvC hTZmܼy)QQ!{wC4}?9t9Sc= xmY"0)lHyKu׼!,Ҝ;xc_UUSv+f\yePnw ' k^OOLeVVlBBXss{+ kV{||3f$̜P EHĉA.}>scꋊꋋ닋;:z\UQQiiQ#k':=6|p74煄Raf$iNz}-{~ۢEY74+==Ok++՛@ج,eZZQ4o0Αjs$L8@8 it:(AP(δZUPpV{eq"gX.rVGG\7nܵe7>74;zuGE&io-ZbŌ5Xw~ tFQ4VT4ǼԈ ;;{ECoUzp*77i@iiop%|9C8!z139j|}=Ңꘌh::!A*wҟpwlۖroqp.64طϰe7|ti6;1Q19r仵 rH͹(ں͙\VM;}ߣu:ɓ]n‹_ye{Lܛn.w6~4ɁƧO^^ܹ)k\6uj܉6Q%{tff荆(^|ۋҢVs5٣hx+$:'?޷277iEr'lo?OL`_f2xfg+srO6-vy@rۜW775gju1wLޒztYY  E]pq ˒uji06g5'Nt{=##z*,,pB3J**v9Sc'O'wbmۖ_UT4ΟjՂlܡx.At]"_ߑf߽|۶O?՛LӦ)SR"A늊vRѨfL ;/4Zmm]z}\aagΞ>l4ԩiirjk[֯rܛn%wAF6ۋ}]iUߺ:k/l6~p(錭^Zm̙ ^H54iŧF{ԩq]iFV:"-ui*^jVQ\r3=5$(~Lwyݺ/֯S^pJDgf][O>;L|3:omطϰo_Ş=ͦ ߙ3gJ5+5E b 't:(Y`Or$*xVTa˗Ozn++۵kD3rs4(@ۜIڂ蝜vp> Ycc(E|;:<''.0G(^|/(IM\r5d(ćo{x?K/͐;ι8uۻgLXbenً륱;wvt(Zm\nnҼy)QQ!(SV9+,54P4g=G錢h7A ]t 7 V^l*II^„E_sZRS#@ #^Qq\ʳj*F5uj1%>^_?Ξ,wFvVd͚fO/t㜻Ҍ+f&fnUhE}Y͙pX" 0NjΊ껻;iiQ4g.z}nc.Zjƌfgضm_ >xZ#w(yPݷҭX1Ǯ;ѹ3}V_\꒖4{vF0PS:Q4RIZp;&b;r䨴ԙ^_WV RѨ,--j<,%.o[~GSSǢEYݷ >>\PrH;7\f[-jsڍw %Kr~YgZso*5ZwwJ8OOFiF79>'OvŅ;X >"ͮ=ujVRc4UpǾ[^d]twϋ;(Ycck[p @ضy7oɮLriӔg~x}}=w]5sfܹsŅ ]l 54L~ .sAANgϯ>tᖚ9mib'O&f­X1'fًv*۷fGKs?NϜEosVPPsD  EVѨ茌hQ9cj<E ƚfaV%-x0[]qq+| w} 7主VcQ ^{O_snFMvle˦u׼IUUM;w~k׷{wtƆΝ|ESfJidSZz9쬬A~svؿEѠEX^p8Pi̙VJO>Ճ0DD_m^rkKE*,<<ےژT7fӲe9xqTZ-ʺurQTTWkW޽`Ai.. ViYPoRBMQ( p8 u:cUUkjjVѨZy!%}s۫O}KCJiCW?X8駗&j΁u뾨mi8:ͩ~Ց;K[Z:##͛rESIk`@iΑb3NH^_+=蝜vƴ(V^j(=ժ|Έe~}hjq0Eڐڱ;~ ~%wb٥by~uP<`; kȎG jfLX Scb& DLk kfk@wJʩ,)IL#(&SCբhKXX@ff,s6:=Ǟ^kYtwϋ;ԨG6+^ y'Ev>GG\D× v]}{(_pa/`QQV9k{{;>,}$He!EHtߧR)*ҥOw*tJV!* }Sf5fIv_~ؕ@ gII٘VLRR::ش7éjy3PYlM395L@!m|^mgwBܻax!Vg'9((YssNJӶm3EdǏ$RFTTZvv9DSSѴ`DBѫVL8ɔUξ|)nkd83yyQ&& / kwy{WVVʬ>q$i0˗yž|ԵkxxhHp֛7_qŊ})##|J g]ԟ*3gYX7nvt66ZwZXXM"H鉉 %ebl` ( &:ϝ{y HܳgN,,NJ*gii%jjcDh}..vMM)]GQkef;ɓO|kNwpЇ8y2ɉz:Fƶ+~#8xqBMM37n$73S~[bc3bbյhig" i $R޽d @00 ⤤j vktӧws?}!*3y2zz&Ç@ZZ˱ٴi…,,TӠ)(:poYYw2ۺxSmm˗_IM- ܠ>RIy{=y|(J{KAA0;;G PHT=DP<<};Bݧ{Çf&jL]}VSS{rraRR^RRwy]<2 c)-KO/!CRR޹s/Iteeu[Zj@$edV%޾u7NT#Ȭ!ɧOďaa)>:m@0 炕+ J5v,_~%#ѣ- bxR--gϾx1f>  /_~Uձ*ffJJxEOPHcd2v-[\}M ?bccYj_AQ4+<11[󬬬ECc2&Isq : lff}""ҘɞC?ވagwꐐm#pmqqWhhh٪^^|8|T9"sYYqD4L @!Z[[ন(=WBAPhTAOOC }WXXuΏul2 2p0UzDSgfUU5Z[l2kx!|C@w&L}.0e|pF|S4mkll{x(qpm=%%uNN&`ayMD  "sDDjIIܹskhHBE #VHHv^жm❝>Eq\'稬n(~VmΛ7955<<&OӓחUQF~aXXmltw4wHV_ߢN]ipℝFꦅ ϰ2?|88$_{X6LYIrnnŘ1|g(X0{BTVTTUT75!D`eeP(7ofGȳׯkj99ٵ tt55XYhwU4AXX6n:`|O/Qx~ 9B-(rqyei}B)bДrΙ35fPF(1 (ꂂ'F)x0T0l?z#MhhM)Hx*\ QT}{-E?:m9gމ~ۏԈ߾=[\]__*j栐0fg][Ů ųtyy#u_0oNtr2`e}mmshD(<;e+FPC‚,iT)ii%""i,X=Vp4E@'z)(ebGҺ umLꢈ|t`hӁز%㏣G{ЁP\{K66:GZgqqNN]]d__SSVQQiX\o5ssui` #TNN<߿{xxqρ~:Cݏ9m dMMMRRRǏ`}P=jnn>p@TTT^^… wƀoe_g'$d'&64 p:9L"7a8φB;oUU5;8@@XY)LwjGvvVQQq$%nj;1}oI=r (,Í_/{²5knnB` a 11{BWjncMC$%֬1\[GѣOW01QUQ; G(>>={QO6D2ޡ~k v4*jz< ڑahZ6o޼=c7ү}jhhDEELO@ dgga_(jdddddٿ0?SggwPf***nnnk֬c#0#04bcrpikiDEEEFFA +)+pA!46w.>>OϞ}qJzpTW70>ɞo9v٤I.?~ i󍍍wQ^^cǎNN+W:tYYY_lY466ZYYiiieggVVV"fnn}DA;ɓ>|x˗/ݱIIIGuuu OMM=v옗Wuuuss͛ ۷jժuĖCG! Ayy9~͛7~=Δj˖-IIIϞ={ɓ'o߾ݳgOMMM]]]YYOkhh|{Ww55gy{ؼvjj1BB30P`ey`__==˯U.XXhFG;rrqyLSzu''w_DJO6ܜ>}ŋ&&&7nEw…svvϟ?KJJ"R__ HDDܹs{9gϞTUU񉌌Ķ;;;sssc<nn+W"R[[APFrZlZLOOOKKEꙏό3z<_uvv>}ZFFFUUط6oǷ|rAjjj~#L;'' Z=xW b֓ua5'6={xΝ ϟ?SwV;EkkOΟ?m433@!!lEQŦCc_ 555W677L :qDsrr eQpBt]]]7HTT9//277WBB{,{{Rǟ!C=Sj BASSΝ{ak{AIiŰee'鹀HT*ڰ [lxZO#}P߿!bTnƏl2lz:WZZdɒsqq<~:,,}̲m{m4yY^^tB#)2rr";w~fMqѓ&X':NPHV(ʪUnz޽谰0AVZRVV{#lll466XXXSӿlXZZ;w Ç:::XYY988_QQaoo,Y{˕eee%%%qqq .wrrBA[n544:S ++mgoo<f͊~ɓ%$$6nǫ+,x~M}ff'.]8t{oX[눉V^^u>>>={x޽wo%,liˁw@l(`AAAΆ;{ZZ_ 35=.!cX'S^^a^evttPyyyLLL ""**_A^($$tȑ[n?g߾}v޵kWGGO-#r9YYY>>Ç%pZZZZZ_c{'$$d̘1555(޽{W^^L&9sFQQKOO˗P/˯/P =zؑ#G666PUUUvvvii[n(.)))$$tZlX??Ϋ{6v傂;wlmm1s0AEEE~~~7'bbbo޼鞹w<ݯGaaa[7hO0PRRkjz|D, ϟ;;푒ڵnݍ.2ޡ0B  i iF.Ϟ9/%K\|!gӁ!җBZ/;;lMCCåKBQ響ZZZ...? ȼy>|H=wCYHCQtٲe˗//++}.]yQiiiDDرc{/544Z8 A E]vmE/^ǏW455;vLYY955˗/'O޵k+uThOag͚r3̓ ȢEjkkAY[[ VU<ݯGapb IDATLLL8CZs";8\p/-ܖ5kKJ:=wAdcs~̘ZZ `p  i iF۷߬[wCQqv5ݸ}MI |: 'E;::~z`L"444~jAXEde q!vرjjjR7;ܼyBZ{{ׯ_lqqqӴJ>555~~~ L&O0ѣGX=^s??B{-utt033S=1<`+um BUOy׹_⥦b;T4zR_b`pxΜ흃8P(gFKHpv#˽TUIH찱9 K5F=)zS]݄yUZZ=J__n.S1͍ ++O1/EvDǷn:OOOmР{ lllYYYk׮mjj.KϏ ??LL̩S<<<\]]gϞ]XX(//Dm+O珩z-++ Hyy9L^#"''W\\ 2c~zԿ;{R󋊊fddPxF6m:wLBQQP8xxF߸f?%"7ϒٶNvvի85D=wNN.]:EJJti:;o=afvB]nAAՒ%zӽoXz!TM Q4&&&@`}WTTtYcc;wb[$$$>L!==Z[[mll?}tylcddu rիWԌ3!%%ۛW/oS E .̝;AQQQff漼<[dBxR\ϟNOyЯs36 A,COFFAAIxegff?~ϟj >VVyֽ{Ŋi}:2N(Af˖-999<BNN@(,x~MU}VVgCB^˗Cour24Ijotuu-,,LMM533;w W\AGPVZu{EGG!j*gg琐Hioo`cckmm@1$$ہ@ <|cҥnnn<[l),,쥋Sa*++JJJ.\ ++mgoocf>>>Anݺ`;)t7oޤzzzcOy׹/cNNF\l8/ s⡡NKb0c3oN<̴bUmmOo?hhgGc!͛?~|bر'{H=.m Bw^ezyM~T\|ngFheiӦqqq,sE +W\n]sss_PvuuE?~,..^SSqAiii...}}w"'$%%ϟ?ogg?gΜʲ)**(ֶk׮1cQ ucs%%%˩߭Yt;Z[[ˋOVV6$$do7'`ѢEcƌ ~Sun+WHII mݺǍ=߂s"^i]/ ܞoxg ^^an\ƫW P>(, mmmE /Q522222srr8?EzGiiY^e%& zzx"## }M~trsg`U4EHҥe.\xw:|ҵkot… 66ssϞ9H8sAVVX-yy\ɓ'?|PWWb wwիW#r7o `޽=.""wE==kٳg$jݺuχ888 [ޕUV||֗/ll̺2k(ڨhg}H&Mvq{h$q@طϜ+e.މ=<y[oOn'!ڑa~Σ"X[[ RLL ߗOMMUUUN"""cgg'--}oiiٻw˱nݺ|_v>}:Bafffv Hpp۳g~݈Lo_9adGb;&`jA ; ]Bqq-1]6l6,C Eф+W^EGg/r4{{ѣF#dggb ũ^(**v?'N KNN-jjj=f3f LLT^^{qqq/G /_~}kQQ ??VFFbbx011g;|xq藭Ѭ[dww )````k >MZx  i&PpܹN!$$W++wrV֟Nstt֦~=sq҆llYVVViFNaau||Uf{{ zz!#&{ͺu7gP":s?_A-[i4__ݻr%X33 fhj;"999تfaaaط,--]]]׭[c#&&&nnnԍaggg^^ɓ'c{^rښ:G/_ݻwC/][[^eHYYeS:dil<sխ_-"w5&"[BB\7ZvzHH 1sё^p5ff? i`L2{!))ihhGjAQSSǧFج޽hpvv]vCMMݻzzz]ȨBqss+6Oկ^eg|mjj46V>th! >@'ܿvmY蚅ƥZ ll,:Mz*ҥ noӁ"## }MB<lll L.\mm/\rlաwrHtvwUvbÇ7ndlxi_EE5qqY۰gnn`"x """o9005&66Q;:Jrh+0wuU!0ffcS\\:]]5mm Ӧ/Z4iSNN\V b'N,vq?qG<r5k yy940_/]˗__]n`||蓠Gw 1nAXȑ#ovedԥ|Z%.al,1i0M;z[KK[>>YX~M޻{U[[N04HϞU pΜD$*)rs*2jix:DJ<[yDQ6̙J-2jΝ=Y]ݤHܼyVt׮u댜`h/*gݷ|jC0ŋ/Մ;àtvL)=6uF"QZ 66磣ǏRPp|yŜ9jٵk8>Lz5ɓv)8k^^a޼ϋYmm?++L I>~yqqMx!4E,NJYWWHT3G S'o`:U~}*'%%ԗʝ;o}$yz`iqzÎ'Lsq>Ʋcǽ"#ƍO F7Μfaa޸qՆF i\ffكyndhѤٳXX#M2E!Kބ M! Cspaa3m#դ4F&2ȴ߫x♁|^?KJ L>HT>}z>?2 0vՆxO>"0l@!mIJʻyӧ,,KL4IM}XkWPaaՆ۷997B&?rļ+`X-^eH鑑_5`r*mefEGGEP@H(*ʨ64ijzxxX,[6AoK\JK(ukTl|;;|yky<82b`pPQk0+ᝅ|Rݻy?v,?މ0PPH&Z[;=xzBFF8{{5Yjjj?z4ƍC G.q)!hpBxyGN&?%%11Ho %en1o:,~)קOS>}M؋7_{zxFKbL;}֋N?(33clTqz!޹J~tȑ+W^EG|C"?h\ʀM@@!Tݹxnbssʚ5::y"Acc<{{=BqއOZYi:j)=,,:cq"ƍ O2x'_Bihh M矸r5k gVcabaa)XYY23S i׷x{578ztLPO O)/o7NHT67W4IRϳgu\3f(3g* ŽRS_pƾDQtWww mjkU$ ޽%%ΝsPR3X͂TW7RRRsɓ[1cɓvVV1dAAͷ}+;rd ۲%*<|;A ZZmiiʌw9X IDATBA==,Xw/Ƽ};a؊-4XgϾ8;qs:sƞ: }B -%Y[:d UCC96Lח3GTeXΟʋ$R۷9L2D9jcmH]O[=&曽 ٱޛ79 {I>z4X[[ÇFb&>>B\ NQ[! )Ӧ)]oJI&S5,,4dǏ$RFdW^$gP?id ɓenx1ҥd5XRR;ua+ R! s AoPɓYXhgwsROPV;0Cspaa3m#h?A!N56%?BsY& [O nz LH4A[=~^lx')F &O!,;`تk"ң7y#M΢E?ߩ:qΠn߼GdII 733lG8_gwi(t3]]䰰# $_)++r옭8෠FwjnzskEllt7m!.>tuQN:u4mSv 30aa){oCדd\X`h8a!a E{:~#(хs^HM_PsMDF~پ9ʊ zF4AP~=;\^^A3ޕ=}J"}2mysqroy 1UJJXDY__f_&'=Q==ف4ܮecKն*׮QRRsݜ9jhDv-ȑt/6606C#&&*>>ƽ{>}z޽Fb; ix"))37l1m<::u*(KKm__! i܊-[rr*,mmu`>{%,,ÇQXܹ4&FOHZZR&&ʦrrP()޳gzxXtigw1-ki._;r$k1cswMf΅VW`PFw vEfי3x2ɧӧIU hm0ׯs>BQxo0--s疊預6t H@[7FFK(F,!R]ё} `1//i4ZJh'OFZXh eK^faa F#_QVܹoߣ+m8e. L8 )?N&S`~۵xTT)<$JsVV44ƭ^}…eCG&S>xxdYwP}w(TRZD%boRTRVZRBl)$I*J ٲfyO?I׸==S3=YZjlۦC堳#"">"ߍy{$̜)u: D"啧}Mcc:|;wަ|YKK^Ww aanqWDE9gǏ8;]b{{7׋z.GZ/0~]TFǴihguC;xѳ}?8a!qFQN[Z`a')Oݳ'arsYY_qϜ)nGKj)?zz/_?xPpλ6) SvZ=CEŷgJ!RVH;[|]FfΔwѹ({uuYu=L"Ö[ضMg ҹs'e\f|60C?~]3:+?vnNN N7lYo ˋܽkWڵ!;v躹-b_ .)ur򛊊oBffjƪ h)߾ufefd|,Ϙ!ic3WWw$|-ȧ|+҆IhRHSV24y]DmW̓ϝ[klJG;,3kL^^ƍ2JϞ-{Blۦ$iSTiiCx`LPHji{TT{Oakiiϝ[knNϮHpqly啘_7֭׉yU\j,X@]?ed{6̙5?]ikncKsbVz$ KCcÇ[^12:{j h'Q&?*!!Wmmϗ40PdE;`hj,U٫ jj;mlYX0g&&嬼H$t܆7_EG?wpXH^~e˖%WΜH~KYY |BH`9i_JXƍ7G[Z^ ݰt4cDNL;z4o]mVV^Ǝ5k.vttߺMVVMtĽۯW: L*-muub⫊o [,F;`蟼ի ٳew604)* γg%_ϜYJK1 2n8lWU.ul`ccQMDӧ%Ket8u*֭6621{c˧N^fډ1 iѣO%5_?N=~~NTbֶ11a]P zyN&kW\yycpzN}OIy2/BXpճ$ 'oLMU@kbEKLq,<̙\A\1\]u]74]hѯhi_&<(&Ɖ`ʔ)EEuhxy9fFG?B*p8ɓ||vwuۣ0"6\߼o,_tݤI k37fcc~}˯.,i g&OE?~^-2@PEss׳gQP51Gmا_yy927l֙tbE Mp8EERSk]Ǐ_M%'P` 9E"NAPHn|ppf`CI W:/^bʌX,N*55]vvFFBB6,Xv"@e Wd531CC#WYٔ^^E И@Y\|M"# p(Oii89-|ۘ j۷^lfx0)SDHdWfϖ8Q 11oڴhglY̌mݺ8XHO/ط/]i330 ܼ"$kYII<<׮ ٻƧWP@ղ#)ɏv.F$^HOa%K[x*TG >S+-mXJy88X\]uPBYnZZ\YZZ$LAAK 0+== a9:j#Gn2;85A! jn[Yݻ@@_VVI$rb"T>VVsɉ?~13t@7]]))o]7/\Dtԩ0S`DZ[ggJP-k\NHZ@""<2*+K޹ i۴iQ{{{<77s`0d2 2cgg]0 _\=;b({\rճQF?_C9^uFmmSREF>񫼼ճ׬@p?y9ut+qsP˗));&[||޽ %%t9D" ]>=5: 5kC2d>z0nn3gYFϗ/M^^ԼL޹3.'-㭊 HnnYEEEbΝJ*::U֭m֡W:iR)YqL̋llƪǎih>/}2ycA{{ĉ::}|L͓cJJCW)+k4ICX7nUo-,MM߼ GBc'問twV[wAH4AxbٳRRN0g}OHv֞v9s}}AўS\lmqϟ"#2kkRҫUUR66LM88X~D"Ϛ5QOoeJpјW_߮q7sT88D`Ѝt?LLD:;Ns ɮ[.*xps+Ugii(2|ɓg\ [Aha0"tugfsD}GGs8q=cO/fddx0ڒo~ٱ#Y{ÆhgAi?~0tӱ)8xI[^ij괵B; u7n洵ukj]^__v.(;ٳ?46vP&o2;w2|71&湍>_!H$ ӱ=j&*ʻVOpNjo}ML̋Ilm֬#!KLUUǟ =DI[Ww 򶹹k:Y]7i: uu74J6 zՙe^#ɵU̙3%;zYM<~yrv#`n3.\\X1.n8ډ"7_8ޚ*|glzp[0Jm:vuu}|L`(d2ٳ؜{q8ë44`qG >Tϯ`?_ROo://ós*WYل C bT+UO"YgaD&&onoR響Bu0͙3PHc(VVs>-޶-&#c07qQi%[ IDATҲb{{mVvy{'ܽ "̞-eIXq ||'W`IN~S:\ Ww7vii vZh"L_uFٹuNZ{ ,8~zڵs b\ܿ'O\rZN J<~67wd?_,Ssswazz>>)OWP>~\@ DKJz0YM?ss/ SKWwzx}[\޿r͛DӧK 0jTWRHHɓsLf\]N,o!Y //ǢEH$:ډ\LӺu.mQQ՜؜}}ZZ0Q zz/_?xPpλ6) SvZ=ƀr9g鯬lZ@uѣ)/^pX2!3Y}ggOKK??w/,-mpqILtQUF7 Z9[[b`aaRV+_z/<<߻/\Xv`' ۶]vv _jaa`\23?"̌[lq˜9^u  eccF;`"Ϟļw/_Pjޤ`߾ufefd|,Ϙ!ic3WWw$E t k,+ 0LׯFG?i?_>8xʰ:#`h?ed}_;ꒃQd{8t(966,.YrrժMM=۷uR>>PѳiS_Uaf=xP@``#g[YaD RRLM%,K$ю3;:^}v:accFI.II~A~mE;twߢFԎϞ8;G ܿAf#\]uPRR"//O&~0Q_|#G+""#G-$gU 𮮮eee&&&wfb{Ug..6##Zw`Xߣ?iinb2+0f4qC0";wF;޾?@r%ӧؑt?.##3F8q6[[?= AZ̢0d~~v-..(GYL4m8;[fh i' ̌oC; ++䷶ 0Q9ʕk^Ғsgh!rP-KPǷgϞ?=֭[V?LPVxR<&qqq;>A>}: ϟ?hoo5kVkw/Ѡ:::_|+OOϫWD?} dfҡ;$uCAAT_Z1߿ c rq88Dff;E8<~Dqqq#i.=^\/UV6q8hhhhooI !! ihU7*9"1ڑXw]݈&TavG7Fو4"tĽ-[xzb1h'O߾6:ڑ_PPĉzԃ)ǒH&__߿/,,|nQQ tvv""*lXhѢE:4 BBB>p(((,[lƌTbh77w99E&$lUUCF_֭bb|nnziz"(rss[z5)ƾBo/򠯏4kđ4ʯrs^8˗oבrިѣ?_@k y\\ ([HiT&* #X,&'f6Fuvم=Xe8Jh}}$o$=::h۷%$$ZZZUPP"HSN7o^VV)))Ɲ;wTUU988I߾}dgg?vܹ,!""",,A `0SN:qĕ+Wdeeyyy8@9*%%EYYmҤIW\Ǹ8mmmEE ٴiݻw[ZZZHHhk?D}bbbb|yf ANAAA  _ J+..>̙3sx2$.\sNqq o߾}A{??_Y[[>| ]]]O&G22юϟxzޠ[Zj>p ICHDS{/_ `_|Ξ#G A caa? 0)KETʕ f͜;AIɡఐGh!ڑF{N~OVVŔ5~W`cBL>}:mnnzGa4|pqqm .]V\\4g Qt"}2P :>xa~×/ڥǁv.F+>>={QnZjUeee4H(oܸwK0ZĈ66xx_[1h'u҈1vB2N~YDFCaBHڽ;ܹ'-v(Q!+ӧE {pႳsKKÇO<9t#|||OVTTZtiss=edd(?pss.Yd̙ g 3gp[tp!f͚;wƍ)6!wﳴ]UL#iy؎+eePp2HJJ*++?-ӧO߁RbDZoooaa!e(Ǐ);d333XAdEEZtJׯ_d<?qqqqss333_KK D ?Eiܹs<<<_|p27oޔSPP*ހѣGd2H$R:tqrrrn #6n [12:wMpFuuuqrr5kxzzR֛2e͛G?O}kx m#drPɓw66HN~v&9Saqtpr~8@7}P]ݜeT1P͕+ݗ(W7N33.4t 6\`/_^}"'FE9$'.Z4Fj@O|||NNN7ol)++SQQAYYyXXX"##);;; ??VTTa0 [^^N͍ 33geeHJJjkkgggc_⢪H$N<򣜜\uuuUUՠW~DY Cl/78;/a;55-CCiƍ]]])))?*++ASN511ԠomcEE:}7ظQ%, }A;[iPccGR6QP @ δ'&"t) GII )))I[To6E&RB36@[ے]uu Ѫ*00PGGg׮]-޽ߡ`W^`ƴ4}} #---~DJHHhnn722jnnU_X,6""ٳg-"""8cii̠w8F HQQ'-1FHN Ս7n߾_*'..^QQA۷o)S;hз6q88Xó[[ӧGC:,,z{ n;?^[[[]]>k֬ǷgZC| Œzzׯo~}$C0H$;;m۶fdd bggᑜ\WWwޡ,,,ttt$''gg'偩geee~~~PPoc0==v<1D_~~~OliiZ^^Ç[[[oڴۿڠچ}/_۷fׯtt\8u@H(ZZZ7[neH)'t03._Ai`AajzLF]PgH$ŋ%%ќTnDEE%$$/^4i$(((3uuY??k~< k57wFE9ܾv(F={_pٹM^^'O>>ӧO[[[+**XYY-]qW222ZZZbbLJ[UUuɒ%3gm`66={HHH9s&>> W?ggggϞuVwww99Ç_vmxTZGG@__s+W^pXK9#lA XXX,,,jkk7[l4Ciom?NNV{.=no )Mͣuum&n?RA jF]׽w5555c<.,,,$$)dddHIIEDDP+QsΠ>ֽHKz(>~jk{Y\Lff!qMM*yƼA_{.GySIIvGԠ(h8-dee׏nE}gyS ELlGrS5ov SS$)戴5k.67woA1 =40PKKyyRc򼼼fff)t騨(UUUʏVVVd2Aspp,[l|}}v=h7o\|y߾}MMMwIIIIMM 7sŒ%S#*+WUzUWTMMKdݻn+ @/[Z;:.yS_p~H3nn6!!`PWP;oVSyL|w\\!DDDJII)))Q.^򣑑QSSS^^ 6l`bb/N$"*6O26=iy 2|…+VP~_A%''yVVV7nܸ}Zqedd޽{TAA10)+y RTTDjx&)ӧ'NC; c@y1oٳb֭K rbUZFю6 xB!+ɓ3$;}DG?ot566<~Ĥ|Ν_zzzVVV==ooo;;?i&人Eچι}/_۷f㜺S^vF77у,,f|yn(=+yrjU\F ƍZ]]hg}#|`Øe5sml13BWRRR .|U>>>۷oWUUbfff_~ k׮opVVV<^[[|ڵs"hѢ~emmeeeIqF cϟ<=o ͛78J/^:\PPz211?AA55dZw7 v͛GF>y,] io9qC _jlHMrAjEɀIBBBBBB>Awwwww~l%%%\}aЍA} KJ6mJK HYYt (ܿk46ǟcbׯHHԎ4Ϲ~ 2ׯdggA;EBZNN5''m{tW<љ&) gn`,b16+V;9E&&zN GkKKKO `dv"ƬAD 3p%W-?PQQlѢ)jRHԎ49;/xzj?Nċmm×-J/_?/v@;p6qqFD9p 804/ ƍZLL(,G 8!))Op8^VViVVi龾oMM Ti˻-p||mm}}MmvNKӝ;oϝbEZ e`0T^UH{ݺyAAml汱`,G!&TAA$ -Ì&%-??"A /^8`ImmgΔZv.q`PJnlشiі-K89| 0@UU[lzgϊ;xy945'ki/X0EN:UBRֶGTT|x1`BhjtvzNY+fRqh*$䑘unԴz8MlY<6_[[-@C4/6mF$2ҞuO @GOoƶmKK6M\EE80LMռ EEyNo:_(.z˗&vvuu''ٳeUU'2399E r8Q pmeOc506tzyRW0ڵsZ[υF/ǎ|YJӹ5Dee^^h&v6!]\h!|p!3 cѤ$ Ih' 'O޿0ӦI,\0g$^y啸hb` 77zabzyN(נu<<4 j {li9B!~mӹzE||uhgVh[Hw/?$3kh} ??Ǽy0XLP6En`#7nVjptw*rsrssrJD֭KyxhU{#>>nll)*::FGDˋкGZWWoDS{,mO5kdY3#z`4,~uuRv030^^˗m ϝ8qw~#^05UU&Q D"2m}' ,X`c3OKK$׷GՅ-[6n˦tpX? Z__n]G}X[]X͂_ٶMڵ7^ZYR`lU!}R{uuˇ5D;5uKʕhۻOJ|!>u8ډH$rqq˗EjoИcx?#;:Frr޽Faa"".d`Lx|_h~' @lkBYZjdXXhM`LI!L&^|nLgvv9sh:`йqqq)JJc0,==%hAabbEMLfzUsgq7_: H@,0UV6egeg=}Z% )\CCI)ikO \G $tWbQQMg/踐-74dFg۷&&损hBO otEɓsiXMMMitvӫ>a17_=}: wv#PKsw~IO6TVP͋P8?6}Dj;qo%>~LСU ЯK>Դpplٲx3$QwG:t(9<L80ܲ/Դ=}õut"7nMH%$npjUBx>zmu Yʔ)!!-RBZvvibb^TψlySΦ"uaknqTFdikA"L'i=45e}BVnM>}̜);k,OC> Fr+={,y5&m99J]Jս|5EpN`#PHjn`ʟoTN"Hk 9r$m tBO{͛ohx((hٲeX†~nn٦MX`<|y"q`lx|׫W%YY%U8%%ŋϚ5k$=|S۷^z ù))IntiQQNRRXLҳgQo(64Ǐ.̦75Uanc52؈߳7Š޼d(޾fuumƌGH$7{ÇlAQEk81bitvenqLr IDATv|X'!utt|93$7ի 2UQԔuu540PdOjna?;fkcu0o{MMFD3⊊fdp{ii Hc2^(^`l|8=2YZH{۹sZD;A2J7_ 4DEF"h[nfysѡ52X5AA3g, =uX`_ټ9'Wl/)H$}5+$3nX]]ygg=]]y!!f+K{1tfDc22"oolk{Ls%% #TKCAFdMLI56V4F"l)kk;k1rr2wϚ5}o%%  HfgJsʧxx-]zs5fOܱbӥΝuG$#":tO[{իŅNc Ѣ/?~)**5)(hT UJIyyEEE*2rݸq65;2r]xxƁw**zd%O>ԤFF:PR_Gd(atBڕ+?|e>} 8&&ܳ'1+f2ϋH$3@rQ.g&斟+`?'ӻH&#ʊ]$&͙#U^O'Ȍ5&Q]}bj֭ vvgxzgÎ >moi⢏uAAA)g-UB`> O?fe斗pJ-]'=ՎM}wp8ڙ:%Iݾ=nBP[H}99EhzرЎF/M``p(Fϝ_(,_T&M…7jVVX'D"t={v]L?w|q[~~nCM={$q++~/_Μ_x:q#]%YY%Ull8eeIZZY䜞풼իXmȡOTcxxW0@K@o~fG""0WxyZX쓎d~H``ڵsF6 #a)X٥۷_jrs3ڴɐD#D"sp]P[7GYY9zN':eg_o֩ :toxq{Ȉ`uv *_(,D ʻ+ bKEj3/60ʒibnn%%ƍGޟ8q9-ih4!={܉iPH wIIvZ snu AWllNɉ>y嵀hd:9D^\\ffDzKC#ll?I: `Q]]ĭ[\\.JI*`e$ԩ66Nniy26ذ0gv:dmaU4<9:8mf*Z[kk[LMC^ux>ON~fڡ#xxdf~x ߩ[[{ꈧa8$}x]#g[Xc*H$vQ ݺ㓰jUBWW#т#GlΝ}sCT*X YY%YY%O|hm?^`֬Ɂ NG_>wp8__8{qԩympqғZha0HI'3eh;0򚚲'O>p,a>?} 7ja8m$YL ˎږSS/ػwaH$3'NRP;pNyy+XTw33U;;_k2pHnnKoJx@SYnnYVVimm˘127ʫJpXdd۴ĉccoBB|qq.e]ƍGWL8H܌֭;_XX*u~ǰ i!!54da9 Hmm+ Xu9{&$$lڨHd5zȧOuNL\gennׯ2|N@bc$(}pX 8Pŏyy)ų*,+@GGn(n2_++/_^?w ;wJJTц- gG:/Ǐ?mmE67#БFǖ-Ә8qӏ #Ν7'NvZ[;iqwq_4)ѣ6X`xϞ}4UT4r͜)j,-Iړi ?/squ4cGoܳ'¦M۶-bϫ͛yǎb2,F89ׯ78p""P 0V\[ۺj쫵JsP["wx*)IPc/ RHc55/x3 H40P ,-0pX@@NZXé']d&{on ѿ5kf:۷c!7Oe յmiLޑ EkVVXǡi&O<8p X` /ssrssr>Hd99Q--YWWC}}EAAP]w7zBB.KQ_,\x,:iQZ&9Ux=VA!!pss8;녆 ?//}\UH4 9LIywMH/1MSSvd7θ~cofD/x~~ vaB/wuMIj1vv_4ܸ:u*wD"fedfuu̝;CA-NN%%5QQ `͜)hѱզX'4uH9fKA!Q[7Gey{/: C2x!-6h##%a8]]n뛐Iwv/14h;vXtw7nc88NX`ѰmgZZ:n,+;8GEEeͳ'O޷v/0ke)JJ c|Y_1wxBmqS4w+8wßxKMgsϟ\`Ԩ[Z, 4\đ*UltAWW~DLHck]Mu2EQPPyׯM66Drb+֧`zg٥MMcǎ=[nV3--Yf((+r 退ĒXEUVĶﳥce6m2: ۷f uڤa8]]$.?-(z|V``բ#P iӑ kDٝMN`E Ӌ=<.߿ ]`55-+VysøqX,OYY%jАٴi`H$ٓQә2E%24*IZ~`fii/:pXuBՖQ Y3'"ⱃ\^^.0A))o&M7u8m0.vvgMrw7reT~DbB ;HHGv`*p'Nk;xYjh\y=>h))wijRAAՒ%36{?!aѴifʕGF 0f͚if* 6p*1.~~(1 ˗s*(zn&0'=4٥SR$AXp(?? ΋sp8 [ cuXy)Xtcժn͛nPEGw^̒*,+`5iI#1- bX͛ٝ_i!K^,}BFmmzvx#{9L0W|daF4D"HBQ444ȑE>lCHoG+~q^ߵXǡ kk<=<| +ـ:mm44o,*:8ofedf|"Hcuu]] G: 7nMљ~R􃛛U3gn~kHJdJԔ|gMoUey/>z5wj0 ioS:J, cAQA6aZ[;==/ÙCG"s"f*ࠋu24<߷X~Cg'|ee'LuH$rqg/^wvjj۷XIL *H$ ش! ?;;ɓǯ_caq"*qDX2I<}1;$1 ߉ ??t1qq!kkͰ66Xm?`,,(zΛe4h( p`UC np9S*ɘˎv`')+KjiM:;vQjDvqy:1MNn!"b(!:s><|\p4'cFB⋌\gaq",졇 qF0?e…`#JO`ni9,{UUM(w"UEffIVVIaa;;NIIB]OO~֬I\\ D>xSt[ ù))IntiQQNRRXvڋO"#?B??t19?`ѢiSd4'l&o^p``Xg4UWfo)luϟ+d4/Kg'oD"ۯϟuw;; jݻoQݤ77W&##r+W%KTTV]]+]MGho JIIXPHBZvv080G;$9(('&[—cmƿ(p8DUUXt wℭ0f C֎Q N7O8FH$E^^u~Pٵ&D&QADfig IDATsSn@&/^ge<~STTPKkRP2CéB#E מWTT"#׍'I60##ׅg8pA$c~w:YO\]0בyx.y~_H{ l.7GއZ|&ͣ1KgySI"'EVФ}$!..tM.-Y2CGg2qFނ*j0u9deessdAw&''{vv cJ(57;vr;w.ԔL9ݻoii[W>AQ4< c#o!eٲ/6BOSzIƩnGŒ%ML}|XgWP:;h!;$,aP2UU)l(`^g2!B ut^^ 22| FDӁ*{ #]mmS HF1#G*S26V{׫凩iH^^kr;:wm<Уc77#z 4a?ss˰@_Ҿ~mnmPQC#?WW%HyA1 N>R%;;UژD7-m=y2 TA{ꪮnްᢹ:Xgبj A$H?ߠ+!acq'gg=EE( ڶ:H/ʾ21٤Inޢ>a+Wr^(ߵ&"$99ÇoAOvr:H_]]nn(1ٳ崴&1W)})*i#޽+NJ%'{L0dLd?%K$5;y2,T`U< ,ZH$ ED: Ƶk/xQާ7E;; x NG'ȑƇF[CCtxΟwtqߺʕ{ec_$` .=\˅u:; <y25Ջ{eee0gcb>pٲJLLi `o11Y$p8@ ڵbll8oo߾5[(LFkk[BC}}Ͱ'))lk; $rs7` S&<~Y|x0G;P k)ֹ eW_(r ;;۾}--O>|H 8#ODd[nryu--lʾ>|kmІD"s.ʸ$,yPw1EQ!H$?~ S^zz^pQE6[EEGcВկ_I$r+Dɓ閖aYDl_}F^x\:Ҙ}5e`n("~9))akX.Me\\ `hj.\8mϞ$==7ִcK::#b߾C'3IO٧d88d|zU*Si9pU4 "nnF4hӧ})C~W_r%=dnO~LK+t0nM p8{ׂIaAKyԐɨ"L\kk' 7nl*P;RN=&VVX'Gctޅu5 MVbd2|LUCC,1L, O Ɔ\LY w'568#ѽ{+OW0ŋեǞ:u1&66L0!{ 4Qҥ3(gљu:fE:89驩Mh `P}5:c+ DƆ֞|maa`Xݔ)cT/{|pp2"{$a%&,.}9AI5Ҙ;;/\Hn7Nl dw7AQQA0EdClm#WNhiu`c:dUXXu0.\p<4@::}}(88:Ub%_~JF:i&.-(LHظd://' H~evv)YEWС{ű2NX#X)&6GXA~.Դ aQ|Tgi~ X$1P۰EFfbZ܌SQрuG˿ggY32- 勃Pn(@wkqyu>GMMM@@@SSsD"qqoߚ)'Mc+=}(ḻʟ>9֦%**p8TЀq<A TV M?{ΝX]/-ׯ}:\II"&ƙǏn慴*OOOZ:={lX|熇g=[ހj~%KNܸlqox7o"VZEDDzww у]K/LnhVg$e_˅޽{III< xA3!sܸqkŃ-,,sP{7nÇ)e3yy DGG;;;cJ[[ ~~N ں'PUVVMц OO0/ Z_qqqWW6~h*// D")k*hMcB2υ4-9-//Dž ;ֶ^F[=oYg>qte54׮sM==ň:; /_~7n,**rݻ_z~ԩ*N2W\o޹sFAi# B o~EE׮]~NNNwÇ{{{KJJڵ=00A ={Y(yv9}[l}6ʕ+xxx~}\>E8.666((AK.n>񉍍5002eJzz˗Ν;'&Lo1n8# eH>[Q9 K)3k焇gDEea| QX#__O+(ƺxO9'V{kr+PѶm漼{&aZ*5]xgmmgll,??s_RRsN{{7ֶ|3f9rd۶mRRRu B!rر/_>|0##c׮]sss|8((;vpttloo/\G[[[A/_0Ƿ}! RCͭ*77޽{Օ=~~\zuֳg:\SS')=z…ӧq99QFYLBrt=>,F[[@>Z[6M*.n}1a O&YpZtt6Ah(`_fe` ۇ5\\"#'N<|p7nB$44СCK._p}777oBCC'L HKK wYhw 0ajpppjj*zJ_@@An2yxx(]h[YY|rA-[V\\\TT4󠮮. ((O'NL4IUUu޽^9S ڵkillU<666D#U_2B[b CWo4d2qW\IOOOIIA'))&55l]\\\wF-))iɒ%S.,[l۶mN40?~bbbkkkww7'''_}eeeխ^zԿVZUZZsW߿Kpp ƍicc^^^^TTcǎիW{eM}~d׮]uuuFFF7oޜ5kdO cwR@wkq}}}Fu"M|knooQSSܿOz痑YoP-'_?/e ^vZIII\\\%n*++;eʔݻwwvvIE}zMMM[nuss2e޽{:4F=zjEEE[[[##FdddΝ+.AAAӧO744TSS 40υ $%%CBB{+>>h=w1cɓc8{lqqqqqqYYٴk׮Qz$$$455ϟ?m۶??fΜ㣮sN[[۴4nXc(?q/%KTWWWWW?}A)++͜9?~O!mޚ)1^xm۶8ޝ=>}Z]]]UU:cƌ ğR ?P0}۷S~---6mڽ{*kW/͛7'&&~III>>>ED1nݪK${222gΜAi}d==]vx~ a>>zϷǟR }?oKEEE 6hhhtwwSn3KZHH(''矞>>qqP=FDLLr#**:~x :uq_vmMMQ?~7}v)))A~>SBkk+cUUUll, uuu(FEE]t߻P/_˗/3fdmmm=w ֭xnn3gTWW?i%%%ѿ ;7*fffaP=|rAAAaaYnܼ511}ʦϟ_RR#''{??hk딕|ݝvL AdgokֽoPБƠhߑ|d2YVV6""Eрee>O J}nٳ1cƠ5[b?߸) iy⅐Я~)/d2III߻~IPIO#WrG ~)A/>//u ʊAA. IDAT;<O"}.666rrr9rL&HB{9q℠/_RH`FܽnܸA۷o{.<~EQ7hBB\WD5gHr+ ϬԴo;Yn`#u0"Ҙ4''RC?-QnӧOEDDߚy⇈H7ց iC|oooEQtʕ۶m~IIO4.rRGQL&/Yήw_(Ĝ{šC ʏ*Hd3+?& ˿KIyݺ5SxP_b PH/_xxFttɓvZZG\\\7nHL]]ӦMx \\\%%%111+x<@?p8Ĥr :/#",,ѣ)))}},66_mhC\9N{#SL\:uҥK}psGEEŪ##]]DjsJ׺2:QQAqq/X4>>H$p8 A($$$&&F}(~k(}Ġ< 7JKK'O{w>>%K\~=%%WwKn?!  ~)A/ޛ*..ׯ_OJJ?K=>>AYfܹ`]4? Aو)! ,@&WAEAQ0ʵW;XFRau~^>|ɱx=ұ,^%H-$o׬Cl{y{[ : /PH׍6n[ ,o>77  /100s~ǎx>8p@x;w<==pa-!!! w'O|ő#G_iqw-FDA}} ?}aÆ&r ӊaX£'[TWs_NI}J eIv iz&MTXX6P \#s2N/^s,X@f׭['lA$ … 7ooMh]. [lw ޸(zA//f6bbbnܸakk[Wh|s##<$$B[I|xlUnnܹsmjժeϚyH(:a„/_.xH-$P^^u`޽ijG'"#9}~ /8A޽>o޹PiaԩS̙s…"2uŋ_~f߹sGnD3jkk9buuU)//~O.L e233L[ <<<._\VVpTUUٗw! gΜ)++jqwuZuĉ g.; ȱcJKKżyRSS߽{|򠠠f.&&Ff<ot:]EEhҥ¿BHi))=z,:^H <涍wd#B\?_OgK i@z# .]@߄|u1qveyu[Fϟ`6]G۱cӧmll |2ܽ{WUUuM<**j[laXK,i2۷?~x˗-t۷oo޼ hbNC%];@/@̝yʻw߱\_ڻa\ܧ#Ga \($Y5V֮]VV}#游P y$p5ked*Af=:[H֭Vqv6: K=tPk.} r05&tu̟?|އXgJeKSS )RRRLM=(p8=mnn^&>>>111SLͳnHӛ̠ ̅yN G>!>)瓐G‘#ss'C;@$fv/_s 9-eeϝ{>$,t:KKCyګnde߲ 6(zA///uVZIIׯ+((4a@@@LL̍7lmm[ondd[}8xaXJ. K>а+Yh37>}#(8c!Ϛƍc8XXgf՚aD"~1Onu4d왌,VXXfsrrcƌŋ_~f߹snѵcǎ6s޼y޽[|yPPP3m+W^R9sAh>ii9Hy,Ys=))**Xg@LL(Qurp0]JUUˀ^Nda؀ 'N{MMM֯_ߥKCZYYmٲwQTT󫻰/^hѢ^z]kN6qnnn#G\lY3aO&~ڰa*|!˪gOhJb w{N|y ,Q7<-r娊={c4m@_sQh=?~8{nOtrĉ?>|XUUJB V:|pyyZ37'-JIIx򥣣p (ի.R (,,RVVnBEF^rw: G gvr|vv Y#b@22~Ν{ncavu *+jq8 FZ?;)ҽ{%KFYs}X{SSݖoīwo=mm/S-, ȫWƎu++ U|t$4LڻAn f`3nλ~/Y,4.?s晞=^Y/""B`BJK^r?~tU綠(}-9-MLRP(oG_knoGL<̌y 8ŋT \(N*+U5~7Z;7 &%iaY5~xoGCC~-:-_??{xCî PP ̘1ܹWeXgLδX{**J޹s'0q҄ Ϝ9r_/u9`X98tĉL֐ϯ~1G+/@mzrtb&tuu:Ԛ e?)\&3b''̬Zظt:F#[Xhk-3|͗-w׮{'O>;OsIܧOSY⊱q N{>8vid7Y̒R0Y=\&8 JJ޽/\W<<, !CzzTEEXRP Z5*8ĉ u?}ܾE_~-2,!ӉoםyG52Y_TUqDAW*gGSzH_+/FDSS::..˗C! L%,- ƍs: BKK5(СGdv[\\vhpWHG$l oo_96Spq--U//UUUr\._ז:wdKlSYZVj~ꦡ]v%H }UT<㕈aPR2ʹܟ9A[D'!U|UWW21ѥRI 5nط#_ii5 HP\\E.?qV41cS/.]z7iY#˅ļG[K&kbtSRH;zH$PP?\W]==`iiu OVWs%}_/Lq: Wx<.!!BZVVVg').tݹs lm{ 5j'敒7EDx`C䊋+Ϟ}u{qw__1claXldfAIN[)ff$8ݢZA!w踸p|1qc\H|.3v;~rthKK '}0r,[Ҏv >,9)::T*3uTThxpSu uݺ tEHuu%CCdg_20YgϾWP :4IB^a4'gOܹns%'cbϞ}c:gu%|ksYd6S]!&&tiTMΎ!+U媪WB f}ŎwG}|lwfE`!2GL̻;l0,_499-U߸ĉgIIyt:eѾM d!F^+>{LL֭֬>`@/??;//+Q9Kl-(ըL{*deգ[qqB&GY~H Q6n5֭=t_T}__[8DH6orsƌ![kmR#[?^Kq&&W|n˖1$<\.AEEr+-]:rɒa PGs Z "AzĸU fq6 bŕQl&LomݣM[rLfb?|,*@`XQd*L$m=KPRRt'ߠAjÇ9?ٽ;J%c1;}ͷo3dlҶm,{+-EQH2Zx +&&~ѢK\ruyz.W 4AqO~~}ٳӱAG<ڇ߂?Ԕj1vc_…7gϾG?01v*Mު&))^Yp&qw:piq+W?ICc VV=\~BBMZOZZ̔!x] 6nfBMv IDAT͍- ʘlaYr2;%%EQMMU*DSh4r6!+[:wUFO̗@q8ГdXg@""<</͛O'#5 +{{8w!БVπ\˒N-a05c iRׂ@ffl/t:e/\x?x@ @j)T*~WB[ikݺŜ5k8S o/{[ YX L۹.Z!oO$_2% ,)- u uMIɿqիJhe3~ D<&T2a5v]pȨm44#Ϟ}h;2"??;St:>_]b,a,? AIJ%33R{û{7WAAG(&LKIV/.14*Tȏ2Weu0ckkhgðdL.^|VpT[)Lf6Vy:F^+>{l'uֈ=oWiQiiʆ <._ Ȼ!C̷mnwlW^^SRRٳ .%UQQ^PskNUHěh ':bmݣ{.ۂ"f0 Nxg]MBy_@ŕڪ\Ņr簰 bڴSFDx`͝x,++ YԓBˏzE醗. nLLV`ٽ{B߾Xg@RїF#8(**,@I} @hÎ4"߷;b ZZAANAANnbFG7ȑtw7f<|ʫw,U h!Csȑ& -h ddaLf6s F)T*ʪ63EFzϝv' Օ> <@XHhj w>qqH$&-Zt1,lرXg@pYFD\X`~RA iuh=zB21E [[I$$ u uMNf}|OT2akxj}}-LJի}ܶ]G0گ_۷4(O ZiizN  ,+bQ\\7RT*J%+N](NQC{Ʀǜ9nP2$lv"5 VSMtPiiUH ˽=Νwg)& W?3 (جMÇt8Gi4υ =̬3g^qJ%;v^R[-*Ӧ^^VPXGۮ[wc&?uu%DZHK+>/&.+NJc2ų<W7q|:@MM xmIH9ri(S]&M c3KAAњzJw|:E U:gιjΑ#_:A grՈ2,B:yamhˬƣ3_d TNի}޿ψziM[[#{ m]H-Y2>Z,khիļ%r؂V_yyMAAiN"df 6ff!JCB\tJ^^}iժky姤8Vh=9sv;~汑YWԔALMu;cuųor++k aW*g',aY#n[;Ǜ6ܽޔ)!!ZZXGŽV^zڴݻwTȪwvᄋe~=RT$ ޶ttBR_H;v쩭mO(ۈDd?TPR"[[_{/+W{xX2C&L>ܹ[޳gYKUЌ(r޽΅HVZZ̮9KK+J&&T* 5,Cî֍8yz<~YC`aZ_<;52)-`޼sAANNXg@M8`߾'N<[xYTBZNNݻ_ :\D"7_G>颡LE…IIykizy[PP ,[5cƙ)S{`G.4^Fӳ[I iW%,,? AIJ%PÇ33R㩹rE[[mBϰ!gμ8z_8qܹn neCnUT 0w+hڐffkGc)8u P:>]H;yN#X@sƗ3?,'5A*lꚝ]rߞ=gq,-t^Vk\zuYdYƫMtyܕM# Z@ZEEmzzA]YBBNu5Hěh ':bcӳ[7guuY;:* CB\g ,? qw\zm-O@UZZ3@>̙g: >RՋ]f4WY@]GH Up]=(lh5<|Xxdv\ܧǟRdj;#nئ[k;_<=bG5nAk<n?gIHIZ0lo;{KY{RSTCCFӣQt:EYYA"q nvĉgsih(cMjTWstuPH>bٲ/RZض'W&5P4i#CB\g5).ݻj8NG$x&:TTi43 k"EE*K4F=6/vKS||lvujÆ877 XINToAkD1~- hFOSS]yg.:,@Hq!-&&Օu~WHCֶb#u*tt~S<``z˗lfzٍAWWWgZI|˦:aE굦3mm@!_]-wɒK¶Zظ;n8w;F0tRx@ǟsgf 4iPkp)6u!ay@̛w>8y„Xg@tT&zHw :51A[[~ ˫4RG嵑 ŅZS}h%K.<==to;zo@Ԃ֘1N9q⩭N)!K˛ 6#otJPF67׃B8ii.\| bywo4@Tm&w.衣M:ҚQTTihص7Tu&36dM//+X'qO>x߾&֭ eHfÆسg_-Z)œ(-JNf%%q8nAZXԽEF^RfQ(ڻv̞=l˖[j~.14np8[FDxtF*dƍqϟ\:DKsbbݼ,@jHe!-%%ZrA.юy>g8I ++JGꚒǫW??B5fxSS]QE(3f =XH4Q5H t:sŜ9nR7nT,3AMMU*dooBSzݐY}ZI5SS#G?~zwFF2H- &òw҆ŹsRk?@$nb<ώ㬭{`gdj׮{ u[ܒCBoMS1!|o i&7nUkjdSff =.LNfļۿ!Jf0ƎuP܋ Ԕj`g#nXǑ8"oAkl?g'͊\QLfׯ9UU"o`ЕJ%+]ZAhMk\a8gCgu.eg8:;ŅQ b %&Ν{.4uxG #6lÇ`V3h%,ݿf5ߤ&))lNYYh iuh4rde^cc?<|׮{F ڴ$$ r:qw :H$#O?BZQLfvjj@+R$ÚN7PE=eڼ^#Mrp8__ۑ#?޷ o֮-붢([Ҿ) 4*$䤥2Æٽ@+I_!ϊ:<ێ4MOKK͛t(5 Eʚ.];cxNDrGr2EQsso t*eeyǏwܰ!vmkfF:6 +jkyX#MbŊ՜I| u8SI*'PW܂"b/Ztqhww ??ͥՑ#=7my|Y0#ƜZ-)/ILeLf֗/55\"obKN6J%֭S:/ԔdlP #4'LymۤI)CVV1 [# A77%K?O_ekseac,*X!}:;uvUHL! AcǞ-tA:SQQd0 _>GG > 8.2w߳g,I Zx<ҥwKuKl-(ըL{*deCIIoy4Y)rӻw:|w|ٰC&=x2Y}7'4tB! W?>x׮++ YMs纏{ݻXgN ia@hf# &7ed42&TҢLXHi-R r ru3:ݸqF3V&b{͚-1lAkl8{>2hM$rLfb?|,*@`XQd*L0f%%\GiD$CC]}|l֭|j$R; KR';LH󱻻ٳP*2_,Ztq!9`lfggoӧC$>~QQQ;d9AXxG()߼IBZc5`ĩꚜ̎tǟRdظ;V$2-6𒄄IhAkظѥKo]H++IJʭsU[SP w sȖ]6y$%==bS]/YriР͋2Ź)%Gvvq: [l~۷\XȹʐF˖yc7gΰ_dcH:)+yN&k쩃u V ~w@_Qhc͛t8oZ **B4…LfVtt3/wKtu`9{ci#ffmr/D"5jAkz۶o_CCuC-giiЭ'xO C&-nnn},- xu 餬m4M" HUb %5| {t NY6ݴ5rnmxg "(r_jd56th+[@ݨFaYBBNII%RoT#NRRqFRR. dRVVXsH%K.zy d ݊Jvve8ŅqYCE f3_-M67kٳbH:i* h||ҥ#MxXAwGGӨ$~$ IDATf``nӧɱVW y{[y{[IB]?+Nz h?&-h w72QVZZ̮9KLrjjJT*݂N74`ݻwk.{]>ر7|{w.Sю lhZ55˗OxvDa@rx{[mv;= @IS!-))H;8\XAeW. :JJDww ww}Mp+V\d0 hʽ{8EQ/OO/tv6*[;HK Z}| ;̌o̬2AH$ *looBSH20f311WV -r M>hp . cךV\\Y^^Cth# xׯӆ #`H%KÇ%S˯ ,,@rIS!͛4 e*^ɝԔz<$VGCC>?46slZZ^^t??;{{c2@UbÆ_7#<!>y|Ƨ6+􂺞_s8G r)=wӤ<`,zԹti֑#OnEy&=A܎nss'OMaayp1{{cc`$L2,@BIS!L;;cjM! AwbI$MVD u u.~ŋoϞ}e`ӳq-GD\9sȲe^K|.##7OMžvK/6?R+?9-\,55_ @tQ67ף 5nHmm׌wxGvMIv:~!ܹrZEG?J%3VcukpK!z??g= ]bcNHr ~. Eѭ[oGE=@H$9~!M-h?9{w06'HK+`,Gaa9 $NqwF{{/ReCNhW/:ϪUWgO ,{q7VsfN54Tg{*2i99|&uJ.qڵ("og"A-heeջv;v쩩Kzܺ/_kj ct部Tr~=utԛߎmϫW?NH<<'K@|x0'^gusۺkW'^hb+M9:*>{ tpN~y$X l C55Ep*1RSHh4)TTj󔀀I%jphTq&&W|n˖[k\0]~~PA\~QQ%gqߵsaaaZJ v|mRZZ|<>>Cxp8$4ħOY1cx/8wM7++k|AZZo񱔟_dfXl:g))(jhhd:oOz()=Ʀ+eļ=t$m&$sgѓ& lJ@S(}ŗs5,;WWڣG'N<: 8RSHKNqz|g uTU[HCر(ƪ3"_!VCC,"C ]\..ڻw]hEU%>_;MĎ6)( ^xab.ee(+A{'`7oQQA1ŋȘ`D$OO/d2X|}Fqq%ߨFÊJ%Sd*'f~=QС;׻7/"G448dydo><@UCQ4#㧉IwQmp^?P̊@bO~tXg ** S:=dAjjJXE i=tT]mjMnXPʖːHMM笑#wկo! ( &%}TȎ whj?L/"^Bm񶢒;njՆ];^E)ٸ1~y%$P(IIyLfxF5ΟAZXVbb||lNhڴS;&Hݘ_\\&'uN(>psz4+.֮eӦ[( ;{$yA/ZwKg8>zPׂVD"~λ!4wqΚ5Ocnb8hnNNNfw^0Q[ ]Ĥ['M:6u˪U>oBADXH0V{< i@EF^NHȉuvU r:xQps['&5i23DxHUUHC@oy"I asRk~{RMVфx<~QQQ{.]z'͞|ryiib*>"0pmohx۷Yю ht;5w?rMvq8|UU f|5΅EFzeӫxN77KJÎďbss(۷ۺٗ ˱NZii::mȶ3g^;z׮8yI3sh|e2CjNbKdMS̴r4AͶo `Np^[;Ҟ={fKMOvvema|GϿpߩ.ocZttt7ؼrΫDpCEq( g0͛O;:mEɌNeQ5 vݏdf@Ox&'1Y**pʈ t1})Oϝ'ON;D+߿q;p`Mnx)޿XVXg4~;{#4>_g4զBʕW|ɶ٩h[GСCy<^'E9EEC-8\*+w~:wn)MTThUUFcn֚O (_ FQrZ(E/pvCѶvl EY[:vF$VCSWXXN"itF %$XX툰3>>Q۶:Q D^8ЬO= 9˦M;5xyDp6{~=YBZaa9/ e)hh4n/R&D 55U6]xqر kg Ԃ|+?%%.EQ)(|AH[^xxXKr7)M;V\\i2;P(..K;Y訕f[O=z#͂Rqu-=$9(7ۯNR y}*|w /h4~r*49pEjjCuo}GxkGkx>2lt!-/g@/7'ŝrJKkB}oHCcy9~åMGȋɤs\j55UpEb0hZZUHIFFicc! @̚hdti̙{NXN^^^jjڳMc~{>A(44:$Bw@,,݇} i@{԰ʊ A6 kxƖ,F"mmVITv6 >^}P`*x߈nX+>hwrr8eeQ(AżO˗וO|*7**w QHmbp82[HWлw/YHP3?w  i\>A#+W ;IN.22TQa>.}@aaǐ?; g @.g2Ob)UW7vnnVwム^r16˫5{FFBF'|}}sOɉjO?DPm&ɘ NFhh(#fP(W/,@:t OϡKp%8HN.Hi#A! ]S?XSSenI К5#G!Y}96[I$unn܌\l#2p把:,_|3E|wDgΜ"S>}zQQQQQѓ'OBE3th_"mZ&Z[AۻwҥcOwJN.rUHsr2}<[(G?rh99!!/Hոqvv 0"G!dB!_cZ[uudʼ_Z`2pB('OYQKK n߾XPXQ!ķbccz7`H:%Bz`7O]]_nnEMMH]P(7{㌭[o~w".j!15XJ m;wž} LLu1@VvOLI=J+955%PMMw;2Q6ib DzC>}¢^(ݻX,Hq'Nz]~^YYUUTT߁[NWWWGGgݺu|>!DP\mێ?>h 6yf]fkkhjjzvs:n8++wדQ('Or\MM۷#?SVV~u'{ UUUK,244믛| m@ -ZTUsr劥N```ss^vn߾mnn믿j7ԇ'@ %l@^c0hCŠ4-cgވM(\r# S5ܸzidKK"q{klv i!77nTTzs@jHJ{QڵkKJJ֮]{ ÇOKZZ͛-Z gvppHOO߹sƍB׮]6mڻ|BOa׮]/_{{l">m۶mܸ;v+**̙w׷Kܒq޼yٳgxOn߾}+WBʕ+vvv )^7o޼uoShK\p!,,,222--m֭ʉڿׯ]vMqC/n޼렠M6z Bra+P}f9ݻg|sc7o iKi|*h)UOnbxYGPVpbLNN9,'rҚڱHA!}HCC kw\rȑ#B{پ}̙39Δ)S:/ Lf\\ܞ={8B!6uNw^###~-<<\||ݺu,K\۰aExPXWWīޝgF͚5+)))11mҀuuŋ#*++G`0>|:u… :D燆޽BZZ#G|F'p8 BL81;;[|b!Ļ{!3CCq=zJ+44T hiiQ(GGGлF͚5ŋ>>>DLOss󂂂.Bosܙ3gvZ}('Bm+++qT}|?ԇJ+H!M y i<<=Ν5kN e 9Hz}ŜL @/DkOWT9TIIwtN.)Ɲ`CB MQѣi!77+(Y[W8f~~޽{=<<+;$%%u>Bccܹs׭[ի{yyu@--tH$x~Vqgc<' CBD( B&olҸ!dggLPP(Y׮]C[ʕ+6l|斖!T[[{ʕӧwx:Yfmܸ1777>>k߾}]P(.\iiia0ѣR?~zzzll3f@ .\AO`|'ى}ݻ źpo611111qչbyFFƋ/6mڴ`▛xBa++iy 溸5˗_uTUU5Ts-)(ml ^]9wnb;K"~&wa2K=v,\z iөfJZ iNNfSDԔ Ҋ#j_^CC}W^v۷o|uu>>>VVV&&&sww|ѣ9Y,۰a~.+**=zt3gh4ڻs=ƌm]kjj;u>Hw^}}#Fxzzzzznܸ˧fƍ&M=zq9|||<<he !:&ȀJOO3QGF&/Y2JJH~ իWGBI IDAT^Z|{ƌ3f޼y͛ŷ322B<߿ZvڵkŷZkvO:ѣ,+88888;sΝ;w k}vS(SdpMM͙3g73rwƱcݹ˧ d2wرcԑw_H/^X{$D/ ׹cZNHfիO*~d̘R&=WTla$򣪪aVV~lR %|ѝB*o/”U4 /x0T(ɌJee]OƍJcbr[[a %1-[;KgȒG44ȊƖb;;cA@_0}Ν}'$D'' *h!|~kbb wZ[֠ )z;4ҥc[Z'Ov73{&4THCZ3\jj߼)>|qgL9>3Bp(P)%&ÆA! OF_?e7o&H{B++YҌhk#g?xɓÇ}TqgZZzOBF@44 i2һiꖖzw&K#XYq45U<ɐٌ3ƍWYYuVAaNPNC8~X,(^f 8wwz,^<* xLLf Eii%\.GzSk(9uÇ5o0#YF>BHI hn#̮V_QQw  i֎ZYi!o't(ӧ8C|ʌ^1bǙY.^|8;LJSU7[YɨfooҀ|WOdH)7p!D`E,XLֻBAss OXlLUwt'ww^qqR'@xlLз=Uo_ȑ:Ru~ee&B*-WWלZv' IIoÿ$]||>F2D_ڰFWWMNA?cH`,yy[NȪFWg4..fj.T@@!M"l2&3 EKUZZۻ{y٬ZunUb͍y!m̘12$**/?Xd2BCWhnϟ**Bl~KIjhh!o!V c0hsX$zJJ }66 %!@Ww,]MMKCttsr$?V^*-֬?/o p֎f֊D"A VYYMƥөw$&My,v")ɿU*+354T\Y*Bh*{ L)++ 齗/s 5zv3ڽ{kν|x ' Ԕ 5#F$]{:/"(W1DuuCMM#vVRR[ fw]iD icx<(HȈZW0ǎy3Hd>!w9uivkijku._iv\΄ V#*!/ih q!-:: w ЏklٸM.dgI2H$/1$*XY[$&ݰ^"ɵ5@23BH$zghыǮ^~F|jj@!M"Mq/ttJK{" !eAj]]3HMM<<<wygOD@ iifNPSS|Uܞ=|2[ߊ4W9ΦeƩi[{=HFFiMM@u!.q_1z`Y@{))E pT\\]!v[ j9 ipBEEU::,I i&RDR^^6%3Z[6۱ҥc"#ܸ-a2HqڑEfggXdJAo]nzWrL!&kkJK d/3tŊcf9dSrrvS]!B\vҫJs4(++)4}kG`%B˺q: 򢾾7|3ԩh77 SX1!<<1- z@AjnKљZZڸ~g`￟woDBB/7{*w0cbP$%%~jП5 c\Y@RR 8S-WRRa3g:8(IJOOZ;ʌAT^^6w$I2Bߠ˶7JJjfvݷo!Nɶ:a' ERtt9 .tqv6[t> cbr1uD鱵T#%Pp!_5@C! Znnf*c0h+V?uYII4I뫿}ÝaD/J<٦ Sͭ[wRSNi?xeaҨ!TʲeΟYRwI i$ E/^d;9i mۜҠG=}lCCKZZ=BBOI)5;臶m { 58_O; X^^EEE! RS-,$a|uu堠DEr i25,ÝQCIr! Mjտ|;N_͜-[_nt?'.Hܹ#44kЎ)riirraUU l15^cǎ=zy׊4^z:42rF}~eyХ/  RR$,1tGF.}$ejU;EFI7cdDM2hN)>}7ټ; V;w~**BHA7رFP(JiϞeʖЄ fƍ{WrtuRui`ݴ2Ma`I1;:ckkRccK^^D4ţTjHcBR94ITVWUgdKK{!4emqqz%M&Ν$ܸ7O[aF,FGv,M'J{>Fctt)  s>Lz5z*wꚅnmmM ǫvp0ٲe:, /^8:N*-D(I;С̈́ i25FAwGeK˱\He_M! vҫKC||66 SP`jK77 d0]FrEH$p1㏇zq4B(-c ˏ ʞ@uuͩE&JI)RTdhI>Բec[ZN=|( ˡ 4QF8o$dtWcI@z[vhԚ5'/n׼yY,'0e`ٲq<^ŋ/e6cDSɸGZZZIYY-lĆ SjՊ*+vHe` mmVj*l/ ; ӧ"ggT7t>!54Ts:x>O?P@&)*2hdF__PBڌQQD"/ 9_mv@M6n?P( ]f+2{,#Bh4k)B鱗/y.Ȱka+Ҁ=ȑ?oԤA!::,AYfLh+WN(/=Q4XYq޼y;Ea`^T$i!mvvF/"$yy$%˫Dz~qƊVz6j9!>@իwY RuB/- V曳_|1w-g; +>͛aÌQy<X[N_" !4cÍMM|ɇ"5WWs6[֭_9yueƩcAAX˜xx , T* i0::sh A sI!!sr;gttiAkG %%5˖5/'*3 iג [ZvvHCY㞟_G@@!66ee%%5 55mBH*b0hnnV}ϾSVv?yiH]9:)0,HNc\\^MMرPHHEi%%5NN87HЭi,))? a0YܻwF@j11,6chM:lϞZ)E66 %1ɂ:B[I9;BwGФI6ϟgWT"-g<_u^lx~)3f8M0pĈAѣ4]] :zŋ1'::N@B!ۤbmx>#48OMMw]7nďodqdI)@䢻w4ʆ PHq!'o ۷kk$ݹt:5" Rq싯 ]v_xXql,@ܹB( -"MJJ DQV)zq`9GgU;x0Cwβ6TUe2UTY,~'}; 讚Ǐ'OH$z4u0#f{mGA!oqTTjjlGÄB}{Ω0nj_5k岤z\_-ѨOfysf#AsWs{UH#ѣ1c#k  ‹cJ:@SS^.D06. D -. URR̍AiPH$?5 L`5lѾ}w7%2g t{PH CC͂bV)++xx !//[VA$U[23$ďɤ׭Zum:p+N;v $*H61V55%ooߎGƞ21Ѫin߾y3С%pg=vKw!fHR[OZ pq#>5XـBa͠&ƚft*.&`5R<٦1:{bKTTԟ8V EWPRb#]TU zǝLZ[[I: y`krrymGJw!z֭]n,TRRIXTT%GLbkn{`TgA4;cdx@ ,*"WMMXBF#/-++Nx8;DqqN}fhã3{"tYtl]]ٳ/p!VZ;޻l.8:68~Eih#e4&NͅB荌??9gΈE\qgqBA=}jNJ2;*r儋cj0"YH7| A7˫$d4eB^^6 "w^ڿލAA~\.!E=?0w.hk>xZ[Yg ?ccM iy xO-L)ON.6l8[䫤jj_w3vu5Ei$HGZee}||>u1ɤߺb=]]vqq54߮[wv |2w{ǎE)M*{=ˬj4I},Y2B<X$8 I.Y6i2`l<֎!SSmν pL2rp~i= j,9af mʀ&addlcHՕŝzzj TH$ z8wmm,bc L*9~v 9y? I:L&mcxB!v455EOϡgΦ'҅M.7(HXX\TT?̠R)xI۞aoz};]esq?79ܷ,^p@KQY1`* bhT& tȑ'5ʊ; Ie˖[xx&eU&^@BPH#G {4 I+;a%^ ohTOOk9_Uycc/Lnilz},Ǒ#MfP(?EQQ!,,tH2Tx?iGÄ ]u+RTwzǫoic4UKU\ ^K_}5飏$'M,D"ѵkSb(Ϟ=|Ϟqg@.PH#;WQqV" }NVtƏa;Mb-wlxaɒt;|aiiͷ~1$֓'daѨTJi),?t$XHT E@zzj>[k=qg{M\\腗/srr?x aar}"҈T}h4 }ϯ;RMMM9iy6[iӦmGLF[w6?'v~V#^,+޼)˫4 >H1'O2pg阞 w Khh=3 ={"&Njgg; g_XYq QDkT={D"1@/@!M*>̈́;T'3,p).L!|da0hܰ8A:p;檨--+'` & \,,ޓ[[pbE͛ l;;#A1q &Oi!MGGw wD"ї_V=RH/V47 ]S'AP`~e&l󰓰iT6;F2?y)Òδiv/^d[1~K cvС}6A]]c6 ih\`lIia!)Hu+C2z:vġOf1 ew wwZ޽ LLpgD;wO`eoрDgp ?aծ]q=4`0hӧ;FC17Aw"ݻoJJ䫆$c&X2mQڶmat:尿{0$1J]lTD0@ҥ@##ץv)޾%%iI44r9vv<^=DPSSB?nvco77.,7nĿ~aԮ @Ξ}>aWG;B];(Iܹ#^22`в/Mbf+9IDAi}Ozew;556?*]IKK]]vF_NCC"J^n%(@oܹ$OLrrDPWWiĝȑ>;:sC Z[;v{{ȭô?;9:89g &-ÆqgbTTc`fv|Ќ }^W״xh\_z&**07 -r1<>.7o&~z}dSP#+*>|b'O>>|Tfj}l FR2(EYY~ iWƺqiz,SQ夤ac6[ !ۤ7NNbu&H/$С&7u0ss݃ iҵlٸ,A&33)SVf>LŸqlRXEiuu]l\yDg\d\ZIIA(woktoo ?Y(M`v\c iPHג ׬9dhYaldbx(AUT]')S+_5;q66E`nJK+e>"OG;d*wW ڤIׯ~x\VMhwҥWL&ۮ;wܹsRK' ff Z'N{0,E~W.)+n܈g0I#F Pi;"ZޚXJT*Z;gUU !ֆtYanNxs\@[Yzر' 3f8ұٳO3qg]Ysf|QQ }ЀZZ,x񨢢wHi|R6իJ,x=Xrx/w]z$k%.)Ν{{ݱX-vvH]hhϻs&UU9mxj9]0@'ZZISؾ{POMRnEJQUU֎@ \@ >EWgp5w@zĉ>>]~_}'VIݴiv?pȑYYqRR4رGDyzZKi 7ftZUn}߾{ oLㅅU119ٳRHFPyz-靊g2[;Ajmm6d0h*rXHC)++44N+/_\fUYa[ZZe7 /q#z"WA:`F?ܰ5X&u w#ii䤦JZdԃYYeқB1>v+O]ZZ80pj=Wƪ)g)T@x)ʃk ;utz@v9"y,)(V)Ͽ ~k<[[#Ya ￷v=A?hġp I do,;HdiR,4P##cǢ4>)̜阔Vz+>dϞ;jj^F9Z9[ڵמCv6:޾G[>;T3@bbr̚5ӧe%G}ٲq͛,m-䐯h rh & jj &>,}^}}sAOJSy2]-ĉ_|ᩨhƖ/sƎe ?BQMMH+-}<NRz0q iF@S*-],|ݺɸ"ݼpF֭2)@G5wX:tAcc &#}6̙縃5 "R>>.+W06 e4c}va͟ZZb A(ih^XXc+A uD0eK V+-- h4wTVopnHmmٳwܹqƲ2еkצM=?={*.o?]vegg|ݻ۲exDDϷm۶qׯر3gN@@@NNw}W__\Lyׯ6mv_~ڵk7ol#vxPB%%5viU })ݻ\]m;(*2Zd :j{`Q K/ ߾}*Zyv ~􆙙Δ)w`Q܁B^"YXhBBS}}G:IɳYoJjx66l؂RRb;ݻ޽rʑ#G"ٳ}3gr8)SlݺLf\\ܞ={8B!6uNw^###~-<<\||ݺu,K\۰aExPXWWīкwӽ?_běaΝvrrںu':9(]]5B"ٳ/Px1HCw`2NztH$ ?eeq**lxUx@9#늫o޿/ &k*˖ۿW;KdtJ{ \D"tsiO$f̰D׮/_f߽qN.9on  ./_<))iʕ#YYYvv4:|4///GG#G| Np( B8qbvv8B1vޝB?3fƾ!6ZDEҪ([BJR*dR"ڄ IvDp}m,믚yWӜ`&..~'Oiii=zf-c_QFubџ>}~j`BZKKGrr: ESS{JKcccͧ?>…CDF۲庀]?vg7o(+:Hߍ'tl* GPHCVpD2 CEE>{ "of69 !¥Ͽ)1y{ʔaZZJ=#,̇aXCC}.//?w֭[_}^|ͷoߞbRRA_(!![F'1q-*Y[[kmmpެշ~˛o߾ś7o+m{ bBZBB^gg…P/)yxVWKO: 3?:{v ut{o ÆI/O:(! ,6ՌW!˙Z?ץ,-ճK޽J3IOc& pf:.MR׮]xԄ ֮]}ʤ$77OI"1 kjj[h/on[066ޱcǏ |||EGG766vvvDr]x{Re6mݻ;wZYYb?UTʊTt,.~{aXL3]ݱ X_7n 21Q[f,Ξ?/;v,qǎS CptP/ 9){klj?p\0KPHCb޽pjk[**аas xX֬YJtoIюK3gƈ$bb_6qu__jWWWqqq???[[ۺm۶988lٲeԨQ$bbb^^^˗/=zҥKuttjkknRPP1cLo<(,,:gP IDAT &;v쏁\]]eeeyxx~]0l=|r]]yرC^^'O>MAj|ǹ0YSSuQҞ樳:khhݰ!h, QgFyz60PVVEu-fFcF@! x27Xu.<<,Zt65HWw,8lOYY|<}*66Z~yye'3z-̦>vqG Эܲ䭽9XQQkzvs:88888tzŋ/={wa6rg*a[lٲeK# £G.,,|˗/?_[~y,qbb&/?ן$<{A苸$XJnhh @" Gh7_ꢞ>8tW\\q2ACGgr>>W/<<8 (*/<]]PHzh|@i00 {UfsH䱱ѾvIM  ~{6)WM4tR{o44DE 4D"Y33((KZj7f={Y?~NTW7ֶ(*/#"Wֽl'g;E+ B ʁ}\AuFY\CPt#As2؂?z ݻh؁ ?3mիgpXHH&Vd)ɪ /_~4WDoVGgl{;9#mWJ Xna1u˗KjaXxxVpc//1cdPgt_aom9s&FKBBuF'Y[Ϻ|9M[FDD:d "0 DE<=׮ Úڡ5nϚ/Vݶ-}W11qҤIGs]֯׺|9=22J9+#]dVڒ,OOs>>bV}477*LC$ث]v')Jhk+nk+Ѻ~^=};˗=+us:}AѢ̦<nWUհ~}٣lutt]{IP%Atאǎ X""|+WNpu|݄ F0 iU 9rsuv5qP|nG(##fa~t w@ SCB2=(/?drWS.?üi,/11Ȑ/kkGJ̛;`\ee7}3g3#㭚Bf1cO6uѣ7?XX]GGך5yO^Pt÷W׉8ЁFIqŐmןx<Eݱ#j;?n1kT*U))Q{{Ǐwo:t]Ѫ\\"+ݾ/)):a ü%eh6}SUՐ\f A}r Y>|s#--%YRi͝;n,.S]tF. ɝlIJ CG(ED7mFkyIxQt?}e zYzFFƻWG}a޼-**Cp Ƅ|oPvwtMOOZk+n>}$Abb~z۽{hM%&4X:^--W_ܹ //A!]qPX݊?ppokTUՀ: {>\ٳR/=|dOd2#aڤ…:@YYvpɘgt?3]46YZzu%rNV;""VVw$%93qmУGovׯ+u|u||ޡC&`WOxA7o]2,A١C7CB6 ]y{'w옏:KppIIyYP[D8^^B[D2d۷U,Eołp8ɓK֭>j06>CZZtLȚi?:sbb)(HL8A9{ٵ{w…$G&S.]J[\SXuu(CLti-ȃ:'/dN-34: d_W^hǎ tuǎ/k.G46(M%b[0!!^Uš45G~D]NN|r /d`pp+aiYYMHH֭j豰f8^?Bysqt<3Bal""|VVۓN~UտhPRiy&&Qͣ;}:aHV.WU50Qz6 `(/y{'9bepsgԸq˗kBܼÇjA։:-%%(40f̙3˃҃2Pgaӧdu'mWf"Y-UU)SѣC ʸu 3gLh-22-ZtZAA".IVV'Ph,;wݠVRRma7k-=|գGo*+5oT۾PZZI…FFt#sN\:q<,ž޽6Ur)ϐ1ǂMiБN߽].fbټy*{Ĥq!1xؐ!?~C@JJd͚gΤ47w ݻyyeݿ-*sF"\L#=-썜T`eu^[{Lh?OPX/ YYi޹-)YCcĩS)&nPh?lҤÇK2?*aQÇKY3Ç ?o0uu >DYArm wuq#ƪnڿ?z hF|,ݜϟPg^ddJI 4;ǖb֖-zFF45G>wkjNNN.@53*&Yf[OOs6Y̙. }ڴjE nnPgtv뵜tQgoϞaa QaEffS  `M^FD$U"?Np8ȑV]lhhEij)Bs[ -.-Ν lON Lߴ)vѣfAEaBZ7!!^++ͤ$$gmSSA-9s‰`e/iiok0Ygg׺u$?薘aCЪU38ݻEy ŠD~ ڠ#mG/G`Epqfxy .YuZ[vvM]ϟ& 0m"pl*͞=Z]}WGΘG2gݥK~|~1sݻcv\kFń$3 X~3fN)))>oƫVV,FpvWHSsCuYYi ._~:HO`43aPH~ ig kl_prFbW!a@99qTۤa&$wbd[ݿ͍yyӦ }´h=ifg7p8KXpbx\G}[vPc/ʃk$**Eʆ6氺;`q.]g4,n;8/[q1&8rf[y^} ??iڙ.56[D^TT >q&OPHcKJJҁk wFuih@XH0lŊÆI;0*3f'IHԍy-znQUU3Pa龾+/dŠ8%ST2dߩSKԦO?TQQ)KĔ)P8PhɒI.]]A 'q#1dz#GL 7իK$$Pgauֳ0 @IБ^TT45s@ϠƮ44F>L?(MϞ"I 䔠ʀJdd6kӓ'LeΛ",Sekiy^H0,22{ѢI&&7?B``ԩ~ y v L˱cfpꦐsDY(/].POOAu@7OClmgc: ][\RGzCDoŊ. D..7at;vVee9 lF=,, u_'h//axl{#(6l޼94%%,,GAAb`whcر 7cRR!^Uհi\gg7L_v팆k IDAT^͛7'O;""4i_$A--drX j]]iPsuvrҥ@%8uh4֭a. …nnQnn&'$ %⨳ IIK%)?? ilG]}XVA!޽B}ݺ^roaEymCw--ΥZ[ϒ>}9co0}JJJH -5}lfSW4f %id2%66Bw= #F ڵkg~~+5gԢG͠؝=^^n|vŋkĉ5Ai:7m>g uY،ׯ8F;)S~u@!pGϟ`mu2cƨG1˗L1Aggߺ/z2::ll0۷fssHC40nHsdrχ}oPKOaj:9<>7յ{ci3fkpXB]]իvvsyQg\!);kj@F۷/OO3[[mq9x0QSAbO:{6#"K]}6i@!ӧ͘1jʀOm]O"/2zwrcc;$V[rƒ爋 v2j#Gn1Q45Gv~45G0ysA!s 43ZwڣY&":ҥ/0JUUCPPƖ-z?>{6&;wᒗ.ѳzWQQx*e'%ackd#( [<} bbvv j?Asŋ'}QXx3PjcsrZ"u_ 6ji){l{; Az/_V}35 8HID".)/?| )##foA>x{Q|4((c ;Oddv``ɓKUTʅ OS(Ը8#KeeK&  GG݌w%av =Z&=- B']nĈAЗK:u8+Lw0laj{hk㴇=l03$}ME'-]:ʕ~՜kMM}""XQY"~a$~f<ݠF+9`c^]5K?ڐmgϞn䤻h*,22-ZtFJJ4&a`1qwRiNN{!M9eʰs?¼ӬY6)@ iIP7$fH)SS/QALKK7,2}^v_Sq7\\ yx~Ãww_޽bnhh }3T/^|VD/"bt$ 9L͵Pp[EJJ^ɓ=UU 99%..п ѣ--8\UUWOm,Ϝ* >>+ppIM-*,:?DD1 knBb=24%({̈́ CLM}ӹI"m ,RPvrsuNVT64T3,{wL?[zo K5||vveHKDEًJ 0"зo55̄xPi776MK{i`E7(*{6HApk/ .^L۰᪕մWQ\ի/Ǐvq1TUG=Z 43mH!!BAV{9cb,2ðdeG>^rvx_\]t6vp[sxx~aYYdD"vEDdϘȜR]]Tg09{{]kW> &^<r utƢfѢ3EE:RyO-3 7lϪj@0LXu ::ci4< 4< 6122Hh4k԰avvs~wm K=ݠwkIH+۱c }Pmcx$[[mY@$$䕗bNNɂp8͛[&L$߶oɜǧ Q0 knюlILL@]}8LwA!lݪmyl͡vX#>>wu7Ʌ۶<1uffĦMs+*cb|X[[ʕMaaDDNXP𩨨9sCB?~ےHͺ5)YEEn&sq((ĄQ[[Gٔc8VssCzzz%+Æ W/?aaOML|&L(''0f]AÆI޽uG"ll2ZPgHBSNM-G/A!XXOL_"Z+SSzӓ4k̜0A%J'N$)+m46ɓwčN@{;yʀᅥmȜ`}C$pLDDa'+0z/_J'UTxz߳('T_ +8wnCC|AǢRiuu-WX3i_gg͡xTXHY8ߪU騃`|Wnll*A@ i\g,/_~u14__Ayz|bǽ >C;Z7qqAÀ_W=/m4ӧڸ_)L *(j;js"D42kn>o?H%b@m ""VVt7Ǫ;9]{M_֭}[,c=zWϯéS)u r ցO^ᱤ;@w))/\I?vlĈAp3.^LC0=I$R}Tƍ&MTW:I1SPPTNN.@?ƌY^J tu +VLSVݶ-BaFœNJ)B::^{ƏcB~%sH!-%e]]dF/u+//7Ut7=oE/_VXXik[_#ll {ڵ3P֭>>1:u8,W=cJ;rVvh33fOwJK9:^46VC[7L>A:؝rRkEB>\21qRR^$pVE/|JM-ھݰ?]Dx<充蘭۶Մ?45Ν@kUUy$'R[<=c,ckjܷ/nڙ#uw'%9;y򎪪m jnhmh'N$muSIOcyMZLu+T*9f8FaPP貵 ߿1,ELL`2 h?77ilLOO]wv iKLL ,ly*k^tI TWTZIGQEyFyѣ޾K>xsNɓKyfJʶM& 3yk2*.jNNɼy'?}c\{u^p )h4\)#GnhL~g~*Z-/~ڵ'OZ:m6$##fj:ٻ̹%>/VASlsGG|TLL&WV6m\\MAAb|ӧS~ٴ""?%2$::u%('<|EDEq'G 󥦲k}}e#[74[O1HWw}Oiވ۶3OPw ))EVVڌ^;P] KDDĔ)čo?n.$sVP]k\ dF#&or2aR>ض`‰ުmٳ'{3npBB|{!c55t(-VP#i57SԖ/F0/aДLLnzNF@ i]Y\sӦ#Gn<"MHٳG'%tG 6Ѩškee5 y6;ڿ'fg\I3,?<""[Pk1??Juv9!)7n䚛ON{TS~cif)1hehJ۽;zf 训%b|F §OuݼMvnjjh3AA^)ׯ:sfܹ`;4< `#[DV|"`<O4t۶R_ߕ¨Cљ͛CZEEPgV]Wf|} ,ndʈ'aCttɉ3b JKX*onysرbˮᩩEuu-ff Gܵkaχfgg}& pT* hNѰ˗Ӟ={r(ɚgΜ:a8P{;yݺ@IIgz~Ao^/0DO0p$ %%1ׯ7n xxx͛LJ:-c^d2˗CÓ44a-񹬬Ùa mC0ye@OB3g*FGA:.Ů7aC)*J_h`}ɓ8{tt`ZĚc͝;dQ#:XDuuSDD"ߺUΝMEFӽ ðe,h- @ xxXbP:/h$ Z[;Qg飈G2b<115?uܱcGXX"q8><18[ #=^zn2/?_v(,h-[$&n {};t{ێ?RQbhccc)oegTTh4Zkk˗uݽzم4qq Z.;ɛ7VW7q@oהe٦*ol|.o""ZZJy֡C&x<~ϞDž ED,-2n 27=z%l#(ȋv옟23b4A۷{ՎV[۲{wڣx0B133UKK^SSvccfcԺڛ55Q߾zresdr 2 B?6eʰK )nX ǃ .=څ: cao| IDAT ƠQQ9D"ϯ899 ֳ NjjQag&+,Ãc]A/%޼ɺ7RB-aa۶=af&z"^cq""|ǎEG$%LkY%8zof2tuZZNݾ=u ðן++M&ek1>nÇoݼ5Gu㒒o׮=B!(ȋa0YDDjwAwɅ /,EDq~;[%: 4}ݸ1Dm͚؝;=}L[S ag7'!!늋 CG'03u(?]II䜗Wf;?ut0Iua8]1x<~^8߽܏O/}Q(T{΀U$c68[]]˽{]]TO 88覧:ƍ#"|,..icrgMM>,PHᬬ4ovnm%럈aغ㄄xoG'**C\];a ++(H0syT&;;g۷Uk^22Ruv1BB^` בF&Sbcs-,SJܣGMEE~^z]/zPVVffee%$$Č}-`~~ӧ!9~b8n,,<60p(\s8TPPTTTt%%޽{#GEga@\\^uQen>E\\…\TLL iBF tb33uGkNNךu&^^2Ow0lÆ#BP)yVK:d"**yswzuժJJ2^^=ߕ37WWQswkRDEر#VSt?scck2O{bbbU/vZQQ#1Z/_|%??ԨQ=f:;6m:/lQQ9.<^:q<$\sN''z Ǐ}XiEEÇTN ?<аbŊ0`55(--}GDgTj[}h#pΨ edQ{{V?g$R7 u$00B'--_VvÇ<.۬qi{▟_5^q**n_SԌ'ۻ)5چu*Gu5N^@R-?MFfߋyCknnnnnNM||lcc#B{zkkkwww@@Y!*,,?X>P(SN㓖OYXXP(qqq0 Wjj›7ozAPXXϭ[= 7 RRRa֬Y/^P( (ŅBH$QQѤ$ lll\\\:::hB&]\\ttth/VUXXHuܝ}I^7P(D"رc 7op}٧^%+Wᨡ?m ̙Ι Ç\\\gΜ|ϟ?544zgz̥?^TT̙3qpp~n%$$D-jjjd2~iaaauLwFWWn'o*bbbAV6g sg.<|F>ӎzKU MPP0??oI=j f%&~ "}׮]bjE]PP`ff6}dkk+H뵋F_a B=aJKKeddP( 255-))yʕ+uuu_~l2jjjǏwWSSV,X̙3}]uŶΎW^~YY:|f͚ `9YII_\$*ط4`q謠'J3a80gR;g޹s˗qqq񴂩)@x򥚚 98]޽{ZZZ999ߧP(qqqׯ״If{g899׮]T++0;Zr0TÍ//-,n~G&Hh8ȀFs::''"uwY-88P+VL}#@ 6DEE֭11L.""d8CCu''cOχyyU}!H;vDHJ oBPC̙u^bߪ@ssU Sdz`…핊@ׯ_ NBGGۧOfff}u%{8$$$8K./((6m… SRR^~ / c0NNb߿h$&&DGGgddп~~[~:-_=ՠblii)|˗ӧOPkっVk*23 <Y^/ _ =l2>"qY-d@,^M%*gGaI :ts%fL&9;;߻w/55511 ;;;77x, WCWW@ %>>~ժUC8k׮uww/++533 hҥ3gDJJJJJJ 6ٳ$//ѣF L8;w ---t$yP `6o|ȑ<''Aug x|ǎӧ+Cyy-}ԃ =l?u}xnno߾?>|8**jѢElxeee˴\Ia@ m\]]DjVee吐J3DSbYه߫de`@ڞaa= Xocj0(88PnB+W{z>b5kPϬ2P$%ntFOM^_ߊx">D3GرG۶ݜ1C |hzg>~ĉRRR{H$a0)))777"د^mJqMjcǎqrrR8x;wpz 555111ܜF@óԎݻRR`Y-iƢ$ԩ11Y~/_]T{ew hte>>O^lC b[FWW3}Q('("-C]_\\MFPxV 韻w)(=[)QQ^y&'uMmmmccZ `Tٷ˗SN^g`0Z5c ;; Z˰Xrkjj% zԩ3gxzznٲuM6ݽ+V@fnnXZZzQ;;FRSSϞ={yooojjतgϞ<]tÇiiiǎ<6aO9yddSS:ujkX={簰0΅M޿|bb8\Ϸ.`xd55_Z 8 By򰦦̦M׶o±ZTO6nsլ2/[U^ހٺ! .Wטׯ ]*..(**ƾO+*h4;H$Ç-,98SQxd] -vGMMDvpbZ*XǏjg稭[ Xw9?~ccӧY--Zk.}}}\rܹ5k,]+Wddd jnn ɓ'pA>@&[[[yyymmmq8E;|-ApA~~~3g<}tTTm@)S&''D}T0 Ǐ?RgBUHH.2G>й1̙i E\\CX ݿ0L# $deECCmccwΝsB2@bg11٬2P( IDAT&q7;2{~??ϒ%HdppOs}|:tt%Fl"##rCF>p]vLI^W׺~ DQ(cedD]]1G|Vf+,j-CSSm'?ZQw)..牚lV"(&&AXFFϟ͛LBBB)i@CCR BLMMKJJ B^ѷI+Ν;/_LOO:ii/_/_hhh ,A=Uܜqjjo | 6:17y XdΛсzJ򐐗 `APz`+^ZZ:wE"Ǖ+p!bqL"'$G@2 e˴>0h ))Ν$)Oĩ޴iޣGX"ך%p\**]@&Qx8cG8fFsalB{,Y>(JEEE`` |FNNׯBaaaӧ`drrL~ccmVX8d AAAa"!!QXXOp߿ ZPWymҊ zϞ=ϟ7o5ѢթS-Hliiy޽gZZZҹ:h5λWtnDky߆lh`-͵uaDD&j-08 C,#RNA9omlB$uƍ3~HDĶSo6?zi7hC9LM'#ܒ3Tll y4`0lڱ˟H -+kygԩA444dggoܸ÷\\\,!!1|;ԩKLa |E=zcYh-G+nk d{RSS!sssbɇo@ psswttxyyAjտ(jѢE<FV޽{rrr<<;APhhh9tnΘbII_KJz)8 fLYU,ql"GR_E\]ZZ`/;dz?{#O[[Sh[T|' FX__a#2򟄄ρ"۶wv4ѣǍ8t>))!6wfɔ}*)k:|k#///##Й3gjii8;; 2Ln 0_wZ~ YedC$\|*bb#"|R[[ZF &&&G|BBY0;t萘իWp8O:已uj㾕z(4Ia357f C H7nRS;d`Z1_WUX+ch=STtyp̛)I "?ZYܹŵ';;G1nBY7z5cڴVAy|<<1蒟_5Z7,o߾=RVVp8qqq9998I*1AQQQbbb E\\ 7 RRRD";wN]]]PPpQQQ=`AAAǏ=s uǏO0ARRٹד g'֬ HZfedZE/_x}V`rr\ϟQFĜ9p  SSS#˗A'KLL:u*Wזd2իBBBFFFpSSS޼yCh`A111S%0BC/ݻwU.d́=}?M0M̾VF55xUՃ7nbE4Hn; oKKU1#㐦u;ײJœbbY%`88x2{!f˫*,YRYaB ttX QQ z 9sԬ <<ձQf))יSRXXayj]]45bኦ&,A{RPPPQNNNϞ={y=xwΝ;wСF _tRIIɇӏ;v???__߂#G…H]ݞa`)g͚jc q_׳ї)HI ml 0Z# "i 46ZˋݽPZZp#G44 :͹a[o_P(ŋ%llBڇ`!>.[:wYYY˖pMGSI-:zaNN =zt#RRDb7ǦscttӋH{飼cv4BD؈B@Bz}H$FGGN2ɓpX_8::@س>exxx``”)S|}}CBBΝ;fKjUHHhp8̙3O>MU1Bٿ^II[ED]7 #!"}''ubcc!JJJ3g Aׯ_\"##ASזΝ[xɓ'ϴy___###  oy$^C沷_p[FHHAʤnv6ni銊zj!0^j a8ULfT7? O~5…df5lhhy,"//:<|[g'&tetZgrrJ]{yee/8x55 )&${/O|e! %%APm-;lo'$%}D`Cq@@WXr111 O{2''GOO{y55Jږ \F:Vii BP%%%SN6#lBE]]>РԩgϾ٪HZ(H$4ACXxЕ߿Bŭ_zl]z̥ɓ]gZ|c vヘHIIMFӫx!f˖ټL-srrGFJJh˖فVky󕌟NIIvBK  \[}L_5{騨wd 35i#" #>D}+*-)33SNػܹ,-g** >A 'XX>&~} FZ8IbN5ӆi'?&NFDeʕ.\]" >o999D"ATUUEkRl$$$@ ý^YYx^;ꀇK@TPP/ur,rK,gj-.H%(-&bhhҒ~tttXXX})88KזJJJs?gZ|_[ ??aX붶.d-srr74@89@PF%("AvȔ$ 虄 0Zvt4~e:q&&vvrrJ~`ڈȢ"ݻ/tum8;|yS_1s""aayyUO'2HÉhN6I(,OBLLqq!Qܾ}RF(O~͛߾}{ĉ+W>} 4aÆ={=zJTT[n+Wk_ڵkrsŝvb|BCC)b޽EEE999tN3h3IdgamD?=;sfZH{ٳO[p&`RRR]]] ޗ{mx/^444?~~{amL ٶm}{-KH64iRzR nl0#MXv]8Tii=ʸqNIO?4a76l_̈́qQԔ@>Uy.!ٳO%%廩m1˟e߆7^߿|/[B)(+/gee YY6ŋ k-m4$%%?~ennnhhӄe˖-ZhѢE...ӦMۺu+ʆ222BBB .utttsssuuUSS;yݻw;v쨫/dҥffftN3?Swᄉzu٧Ǐ?4qgׯrr:~k/>mQaa|8zDz-[fF1˜NwC5vj-# ?~u HTT… VVVʖfffvݻ]\\v=~ϟ;wNBBmamL 已x z6qr2ik#ܾ 0@P(%%+WVfzz'nhj!֐Ypd6napQQ}sLRۆy=w[eo[SSgpumP54`5މaa✦OgHGÇa؄ of=$66''p`߾U._~ĉ5[APXXX@QEEE="b{=nذZ>nVk1B 57]jGdoNx%)I6軺.4֭޽={L4Xv:|Dii(j޼L6(NL OXS cyaaͶmaϞE\7o WI栤$S  Laphi޻3g،q""/"W>^S}VY(,̗Soy$4s8~دۨrrb\\c=sP(.8XL8:nnn>L/`P溻GFFjhhzzz:::Z`p 庣PP\Nh`A$(HeHd*޽300`쀴3ӆHqq|3&صkad?ej- F|8""|lX# ɓZP+Mɾp!Ï5V^޸Q?<ЉoiӬ7鑑66&Tˋhݼf;P(˖NNݛ6]5k|EEXlj,Gkj11WQQ-VVׂQ^qE?U1"JJUT4jiɲD@p/;7̘6dgorc -\EUDu4c_Vo)!!$++*))$++*%%,--KKHK Fˍ`GXH˫ڻ|KK$ L󧩴GD`Am6a$GDž'JO(6}engn]3g lm<EhNmmmmG<׊˗_46qqqJhk+cF\R&g_Fυ 51(!!w ~, (o<5dyeqýHVV1KGJJHUUݻhlccv{;;C#mkaq D NN+W"mlB9}O ϔ)?~T_{͝;s8MM._~YDIIB5#-.͹l-x{'54I#on 50P~}+772K<<\⊊⽾Ebi ͝;a 55%p9]]$!!^ mm}}YKJ2EKKH# AGBillk`e˜7?|yG)b`mUAAGGc++ׯg۶~9s'Nȼt,vfǎ+wwzh֬1*cG {,qȊG̛7qf2.))Ჲ+11٫WO';30""3 ~,* IDATjȮSd+VLQ5pxxԿ$抬7}󦠺Hlcq̹õp#\m!wzuB i./o(+k [P-/ouw!ZO܆#jj jh**if+VL =aԘJhďYoG^Sپ}ޒ%HMwȊS\$ڜ7o n|'V֖W1C#gg5k*0($$ y'O,j9 ^R;յHd- 'FGg56 9`#*bfccv7vYY g Bm>ȑ-h4ߴ)޽]Q(ڵzr?SS݆t̺ڭ[Þ>ݏac3;%%o߾/^PxE[8Ҿ~ϯbvMZv:搐9Bל}Eٚ۱X|m-mǹx7 ~~6lwa6991V=166iG<2!a>Ț`|P^ߣ̴bNʒ#1N m]w]qqmQQmii=@BBPM *9Duu:FQQ}fQլ¨wwߖۼ@T,\\'JO( oki:'$;$2 I xɓ`LU}}[pa55IOejnH˳gDEٳZ å#M^^\]+ 12HMͷc"!!jNt_ߧ)۶ͳ3rmss _kRYj}{eHtΩS kZfY847;ty[C9oܰ]Νu@vB[ws AQRghűcW2gB,,l}Z[>nDDED'N%"W[ے%--6VbMx#8h a022"22" N7w﾿yn մ>_5x|Ap'EEq%%y&jjAy 22-ee%%75CˋVU?^jRm55)UU%X-yLBwHK^bqVGH0ATSӜ[[]󤣃 % ǫ͜ʆ$ x߾U/??wm-a :vlAX-aӑ&APQQ-> |4}0'Vgz7^o8qʸ=sr2 ;ߩqi7 5:cEH7N ,vժ+'Nğ:)0/oa>EQqܧOeLoH}vv6 _ela~ yy[XGE!!֏ 1+֭qv-V+~hF] _vu:9Z ԩ]L#.k߾ѧ{xa0ƒw.\;sjPfFhYP(/DСZZBP.\x~ҋÇ:;ZHHsgdu1ښkk['O4s8jH%%qڪl ڱ#ŒP`fRY[䢞ʱc++*aYA[U#S 0ǁկP[!Xpt}h.^|Hch_o{"kr gTe7OmmKEEcee#\Ƭ {xĕ%JJ**22"l~Q쌬+JLשJJVV jmϯƫ7prroHmmy]]%v+;񟝜^>2zuIrOED`{6Zj- ^iA**,ɯ/x|ԩ||3?0!?RZZolX[[a/^|~lT/`o/m[Nxd?# %?|k O8|)_Rf`=ȲaU~~dfddBƈB_<7DkES*Z}%'Yi,Va uѡ64ϵ//omTA""Tma6ee jֵ5kdO^7|UlmbįD")f(bf (+kغ5%4v֬!&619od9pU 9&f*C32/ʊY3ڠLkd4n3\yyCg' 4SFFTQq8q`^=`#Jqq]xx{98PWO۱c>"y5 dnnevvIss;??Irx 0}M7jw!Lܸ ]23 _>0^iq?yș%eǎY-0 )ii.]y N}& TH(((h3;|7 ONNQtuB8r{ccw! UZZx OD8{$::oܰ]d Ae%n֬Saav=E֭aaav,r/9/dО~K(/ohqcjXt!QjjfƵvmxx*]]E3) cml`5 K[̬ұm<%%xXz]}{pDvyy&577z}w7>Ǐ3((޿!66utessk3!?{<~PaOU  Hii錉ɾqUUn癘heM.*7 dnnŗ/Db0Œbb#8;y!Jч߾UAJ`PW2w;滸4?kH s|*55&իLΟ5R?~,=[mǎ ~N?'+˓LǏ?g<|gk9s̝;ō gx8{dxot5{F}+)7X.\Hu^fضpK .sQmldd9VOb7yqpHCg'6|>::K^~\Wt bf¥`ٕ+))w3g{jِwG~,]#6DP }4Afm矢k2(*o>o}:Zf<֐"9^q̓vصk/Ϟ}QIZ[OH+%%}槥a0ڰ9pllB)>(٧-9zt`]qpi2-[jDuD|T;[[cVU!TVO&&>]P]݄ib*\M ϟ:<BIJ b0""rrRR²b"22rrbnON13qyo/BUUJP\#H_G.. }{L_[k9TkC9UT$UTFJȐ~~ϲ7кlws n##ɓF}[Vzquu&L8ii,/Wf\`ևw=''ÂxxĽxݻAPD?G>u:\`[[ 3\GdPpm+W^yLYmm]_Ŝ$cg$姥dXY`aqիÃ޽vT'%-9xp ⑑կc[[6dlH{ڵ?`xH8M^^DČ  02,fVTT|%Kl.hjj)xrܻ=255+VKI f~ͯ_ظY8\ۜ9X\BUT4VU*+q 55x;0¿5)*IJGlH;bcs]{O{싲ūUtux54dUUtuس_{;A_\C6ϟ>8`त| sy0*őA ?Bss}޽Z<366;$$m66rr2Y@ 7{7XX [cGAjiivU~݆B~~ɡ߿?ʴ} +VO"yyU+V\޵kK4}ڷnaYnn8:./oLL;^ FF˖g06v]RYٸjTT$Y- 0 OY\{$‘l:>DNPss;eh}l?#,.. &M!H핕 -qqqɉF YSSҥ$$~ϖ-K\}{344^rSff+RTܾ~}[̅ N,ww33rJɾ؅hUQ-HIhCS}v-앢d,iRٲ/399~*1f :׹40y})ff̚w̜)O"Q BWB—ӧl{P XBMm]lvh4O J{s/Ǐ tShLMM0""""ӦILmj.,/,VT4VW76A} ˋ)*KK%^P^^!$%(hPF7o o&=̼ PVzp={\nz% w[VT4r UojjZLz3BB˗G>9wR@#exiӤMê ºr4ΝӧxTT(E&75v^,+@ͭp^K`C9ֶJpkXTTC3Ι3_Y_H9=B~klb[8CiTgzVߝ8cg7LܢGP^nf)orq @"H'懻08y'FF..7/[-1ꈈ _dv`;3g_AO2-nldBXx'A`jr4,.sw7IP_SSR@ TG8 NTTe!cNǏmh 060es/mm`ՏZw7);Pm $kRF>$0WWj~(_.^MMvWԴ Vd,()IK&""Byn"lzzqMM+B>@KK +*ʦ {^͛.f)G`^C9[{z.bUUݤiӤ;-AW ڶwúI_*W9!'L߄(]3RW% B);fT{;n S^/0l1ILr/pp Ђ LрTggS@P( 8fgDF8;0tq84{,y,ҥ$|M`#ĔӋ9VH hnpt@],] `t(msyddΣGP%Kfcbc-ZQ^A/#&Mҥă#rr*Ξu`o5kYw15 ڴiS8& L diyXVGNΜ)WC̗/5O)4mϞ0))#G0Ǜ7_]kxy!@Bp8+O|TQAܻji 9VQo4f_  kl?7Hvz,f`0թCPVֆ@3AGpw**mשKQgԩH AsZ[;}|DD&-\8(.>YNNLNNl4isrrbbrrbLk|06u9gdK;:89K{`0Ձ]]jE>||< .A=߾b05}hh "`Q =[;!{{7^Zǘ1)Hdza.BXx}asQbw9 qH{F!qJݻi{3>LuHHfddB8qBTbgr 8\j귝;C]XԮϱcvli}ꛛ[U31&擇ǣw7,]B;C‹ύdoӏ Jaf IDAT;G-SGGϓ'Y7nYchn~Q^߶A]/ zȑ2}ղƏ畕(3nR]]ׯu>`iɉȈʊˋKKȈˋˋ$_nxoxՙ4A_JXXVfSfkl$׷յo:;{9^^BX^^L^^L^^\NNLNNTAA\^^-g9DbS]\YZ\;w6bw!̡]3av5\`H .ͭ%GWcbwlEE7\WaC27Bќn/_~+cl_PpJT5@GG ]ݵ MMw} *s麀Z^յmr{j[[?;h_پ g=x0<::/!a/RKJp 3b`==Yޱc RQdaqiV-YZ[%S;;{W߱bwQox)""in|͈e ~3+)ߥ303T==d{x|˗rX<ݎ%44*++*.x ??qbcw~u<=X<놻Za >{BLkVV(ƺCXJO99 22BBmlׯ_0coD2! TpnZnn% 2Qwt|S( H$J_H)̦ڶai).%e?l>F3 eiHR44TIM3 ɓnGk̝;>>v--]^ ž';:mذ@^^ 8ʊFEy;|۶UG0qH'hY[nZ}qƝ843Ɠ'WWmŋ],zS"'T趷J۽3moy ƍ eCOO3NހGQ6 g9ǎ:;h\JO;pԩMJJz=_ ??z~ ]WZ]R[{aSS56alpCܜ$&++*//>4֭gϾtv68}ڞ??곯D DJO/ųHnrH  ~-ۢrCC?-W"6B#t)Q͈Cmyy dGGׯ$$tuaim, Ѱsť7o ~qB('|>TTm39>t## dA t#>~/nVjk[,8srSS̰N3ffӹ⭸wox GF:)s˔)LW׮fg5؃'&擗W_1㱢wb-??gL36N8ǪU'mx?_䄄2,-l$im JxG֯_e&"$4Fݽ]Ԗ-&Vui B"եn~aw:}wsßw Myy#o\V~&NjD #">w'v;B:fΔ747~\\]ZÇΜ+,g$kb;wΞKL7zNKKǼyn5ٻw Aظѣ̪fm9y`k{UGGᅲ Yd2/Քŋ.]r~XXÑYYǐHa'aŮAO,?F_W>n`ʔ ㏕+o gfg=-佽d++_AA(Q W47߿qy]] 7o6&:ćg˖޾ \3 A i?UV6cIпFӦI?lٲkZZg80z8fkk_7\X[jp"G񣡣P>lop]S%'-XRR08MQqhv$#׷ѥ2,__mmlW- B"EddDdeEoO"928t3 tƎF.w/=!#!!2H\|-I$uht9ܯVRh2lhBBmQ}37u 1l_v>06HH h;&|wG |R\n`1^MySȜgrT3\\qiҢEP[2ܜr/Ю+WV/Z1++S"_BKS] ݙҘKѶlyF%%c|w7iڴ#W:XڭT*M_sT+Sg`#(hjjO JmɦMFKcC޿/yc|s'O>>il~}[[;W d# {0_2!,//6y5ׇeˮ͚Q?Br%Kpp15W1BLeesHHfhhfggݬM55P$sܯWǣ@TtuׯLJ7smmyt:pX,~s/ew- gry9hbܳg{2&YXw /CB21j+^!FFg޽GF>vcvCՙ󫬭}cbv*3VPT]!)+=K OD(<4^rwHsrWq5,46}{;AA[M܌դ`)aaptuuܹS\\X1*x|Ggy{5RDD@]9m4]-SVb%xSS; u,<|!.QM>}LL+##rLOu&D@b{g(s7ors3>qb9Db;%ol$-@zBOG=*G[3]s[HNLQD 8;++KΘ`::z?ϻw]Q6BAãpڗ/5$AA~*D>lm`*%5XZUCg;9鱴`~DLB^ NBZOy=<̼XM \ZcǏ?>A55 j<Ɋ61XrLZ~p&4iff޽ayyiise;T*ɓmLAi֗ǣ32JRS0w~lr=*#;;{-,.))In<jk[I !!m< q>o"#s0'O޸ܖn?w!G*3Osq|[YdF(*ܿUS ֶVWյErrbbrr L&:YEEs`?55exyy` 3a ;ŘBln~T-)..>>#tfGCttӧ蚚V7K q![nڵ"?0쌌q *_H_MGgW qpٳ J[FGGO|o6YAH ر穩_߿f b9vyXX˗ե] `L@P/"]8%22ۢ[[uϟʖ9sonya΃w>ik;Y]s۸q0>246ocJRb7˗Vlt^uoΰ.c/rt1_}Դ|ڲdݺ).FD䄅ev,X2r&_຺zKKòYq1ر?f ~8}: ͛_vlmgyxihU jl|NWWY.Gc#GUBjZZr}oxo ΟwdcNǏs[zzr&~M,֛]kboH슏ñQƫW֭ ? 9"";'ѶSai9ؾ}̒ ѨO/]=wa@ t_XRwϕ)=N޻f)6F_aaی1k~ܽ<{Wfn٥ԧO"7/\~>0pjjZ_WPP,f+1؅[\dxE3ȱc?}B۷:;;5k N\Z8Xӥ{-ߢ-tEaI'[HݭǍ'%%@ȈJK rrbHpmmɓ/weyfYYĽ(&88'ʕգ< 6K.]rڵܞE!g{ޖ`Gkk[6G̣G}M/L SFTtuN?},ܯB)ܺi\zrRJ~` Z-#Pi]3k\\b}C}i{8QM ig7^gd44;fBS/BC?O?yrFSpa=2tu89%1Ri7~RWZi+udքX袎Δ?n %LM/̟?,TV6߼*,,KVVkc0qq11(==1۩w09LII3jG i7Ltɉ݅ kk_iip( APON8Vp8BmmkGG_HH3++jvmKL\\|N@N x6$mnh –+V̙<X> i20]j7%%k \\vC"Q?mc~.B--m`~*6y2?ϸ-[P c!2jcsuxޘ\aƠoҒOj귍Y #CiiâENZn|Nrs+rcbN}}{{maIL/V60\1#Yuuˎ枞f?|Rd/̞ʹNF]trˇy}O$vM8>:zvz\WɔWicsu0mfeys[n7nΓ0'w&'ͧ;8蘘h)e<3X6h$!?WVVaf#h4MͣGڮ_ȧ-!(kܩn#!!rF<%44覎tͬH ^$R>[o/Oltx^Լy bR²23}F?C ۦb B4$$31 //|d)@H#eeO||͛hkm``zrf$tu~YX۷:++Ǐ/wu5dw-gPBF[ 8N/jz{sĥNw7i;UUͱc"lddӧY--sNqt]r.{5G@HT*իo22JLtu5tv6˗KGپvKGUT5`H$DmmE==eJa)xz{CC`4bl|@w kb4m' }ocǢ^:8u*Ys]IItEؘiK;fǔ:GZZOT]] w0/.\MN? $+*֭ (Kg۷ߜ>{? T}`JF֯(-mHM=Ɂ%߾}АٽFܤqIIII?W L01XdZ,51f癩K+)IL"Ŋ9Bɓ/޾-JM=B@NN͝;Y{ IDATse0&`D r.MMHSS60URrP'QHrrbqPjjϟw~* WN&Swp2c|8q%3uBc6{楯ܣ3_k]K<}Ν@B(TZAAMJטO 4-,-νYq10Sb9GH[ꖼ+]`m:XaB*b ,wRYMMKgg/|_PPX|>p@HBWxxZ}}{@.`jrs+ZZ:xTTzzprL\PPzJ~ee?`DFѬ|7&B$vXqD ('?.+Va!ZZ:1/^gfOBi _a{BBG,q͛^]ca52e5>w萵w==d{x|W\.aOJ*ps ZdžJYY-UU7m2:|x)Drrʯ_u);w% n@NO/JM򵥥cTĒ%3--g̞E " 3+-Ą |22";gƢ03!BF9p[绻I+V\썋=hY*]WF"Qa% @Oyy[{z.b鱚ګ[[C'+(+(H()Iuees&;;YZ7:-<ֹ`0; @H>tbUUĆ ֮5eoņ?N\vϟIo. ƎU&jhȠP zzMd2c!(W&O܋[.0AлwEW߉\`*jb:8&Jaw9QIIGXmA/1?YY\x # o{dKK~~jߗ,\8Y{8dz{?31Ѹ~݅a6tThloo~݅OEE~wCn] {\貛7_|UZ4jD\F}Z7o sri4hl%KKPUe5.UVg9af,CO;w {+ 43$-0>~ϔ)ßulp8kPEE##uAOWm((;!((O6/*G[3]soK~(22'!# og7AGOC9 1/_j=3a֭&WTn!ϞuAd pR@Ttt2r[ՕÇnnZ i[w5%e?-LSSӭQlM:.[6ԩ#sD<ݻ└_:;{g̐|ף/_N|"#S$A~~)xf3gb򪬭QX̐*ۺФMjjH&)*-]=L2[[?MM V g:d2UWgg~7W/&&$ԔeA]vrRzz18W׷IHΟ?HB3[f(6Maf,C|GEEg˜ڵԋ>lj:XFbCHD,Ԏ.HqRRB0),%%DHJ JK "OQprs+݃;xSVVgzzS_.]}QW7o.*$_߰!v6+x1!**73Ӈ\K\>pÌ)G>ht٥K%X d`5pYzzw?RiZZrFFut9g!fVT-.UT4N{[`HK+\.ĉ6[ں8~=…J]]C&#ď %ߗ_!##jjajad4=[3եN/!mժ۲"W:&pçM^Hvbp{U7?? W-shW$]2Pjj/\X3T*vlOJMM$RgH$r>>QWvr_W 6mh0p&?~4_<|x֭&l,F}\%9+,wOUFFYϙz uum%%X,~d~ .?afblmm+}Z ^!7l>0ph"p&W$ݼիһY]mQJ׷odr56f#p|TlJ"H$Jtt_JEEҥXq`)߼??ߝ;H$҆H[ww xn_n|uͭX3F~r% 17gbGc47PFggc0||<ӧ/̪[~:RCC3M8N0jK+iiXM+d8Lb MM퍍"l#))(!!(%%D KHLF"E$%]K!)i4#n/l޸1j`r"!XaJp8BeesEETQA//Ĕ)/~gJ ƥ Ɍ!h88Gi#Ko/9)ݴJJe.wmͭCOOwc|Yr WCN ZZr~5uu$nh4ƍ))Fa14|}RL; s%4&&ɕ6,`w9 L"*:)<܃zsr*S4IIA -SSMVDq,YrYWWԩ#ϟ^ZVhk;kNsMM;t]ѡC B??_T~/ν,(85՟ >_\WW%yy'ON^vRbAA};.,}w `2ẘEETUc9P)p夯_O1yH"QZZex|[/ DU1zQTTNFO,AAQQ;F8!utF#ˋ?ŬACh*.IPSJBn 3Gt55H!!%""ll7lX%F֎Z?n޽x޼el$Ru{t`<1ɫV鹹q+ ?zwQc p ;B--ϯ"(“Q()bb]kֲ](ʕ7ۻr)8hʕMNX(ӧ*;;K8ӆşJUJMjh0צW]ȭ[lmJbMLmnʥͣ4޽'_j^fqt-WեCCUm'<|p~thtדϘţG#^>8)vBuM?pHmmǏ?ʲJJp<<44d`@CfFw6af# 'i[>}pfbSS;onhh MuȌD KJ II !’Hl(8alrwsd8`0dz{?[dիάb:::zJX*VTPUEAAΝ YE}}[TTnhNJ&qqѿz~`xHH+$4H3!!3nK˙[̝_wqoL_h**/^tނzZq1 $RXOOEWWV51͛B7nXX BA-fabM#IxxO/qZ6sF1ǏGgF ]KΝ{Xv շWedJJ&&&&  MӧK}@n|MSSfVpǏ?<<ܹ~_Ԭ\ycb7\ejz~iǏ/ҳg ի?+=x;n[l63J{ŋ eeKjo 6ѳf4,;./.¶zzFFC4"lYYaf `̈ Bڜ9u.mm~2MMp A|H),"2d&##tc+odtsgozavRn{77hjmB~ Bk !M ʒJJSH()IH)(ssRi99呑9ϟH 98XYF֍[://̻w7tMc^rĻ;w|^B)qmђ%Yrv6ر|$b ϟ`Q-'cx^ee)==e]]e`:=NI9 Z0A۷E..wO\q#$_ 2LwѢ Ҝ=N.o kmzzqr܊qiiYXLК1C̿..>1۷߼|YZZ}5\>njkw0߿rH=u*61KF!/=f}ao݋]V telr藢w𠕪*q&$ڜMMΝb`:gw03nBLmnnoiiol$66;/ڛMMĞ2}${LBb2),!!(..@[F̳heuE]40-[dg]6S(T5.bo LptԭkUU-}"䬦{8v DFdd B66ׄ|zzZZޝ?k8((mɒ#_ 4޽c|۶mmaaۆZdiip2~$g IDATCC77B?YtH$ӧh_&݋eeEYzMc#1?*/2'l鹈 /_jު"Ԑ2/&tvr`& ۶d8TT4777_74!呓2ERYYrI)UUϛ҆O55(˼/Z[;&)||ܹ5xo塚$ϟDIEEShG>lmgyxihȰ(?4/XO|\brQVvBVWTWȈ h@&S"GkBɣP *2w]Ԑm{&ATZ`g秫7BDOG'O3/'ݼ*1q:@VQUnXEESFFIFFΛ*$4iO#Czz!!RNN\[ۺcGh^^۷ fVKKNj?x붴thks9KwATRr$*/qMȷ|/dhj9R ?3 {& (JSbA{W+媈l*W@ EA|1!$}̜ S9'4tС]Fz ^66]]׭s>`P>h i++=;;#KK=[[6̊k@z U\i72YM N˘,%СH$-~XLxѱE-K|y`FF bW 8: 55 2ODROzύ {<<}z{p7wؙyخqL7}h%Xfoʕ:'yi:tr>tp_8Z,Κiα>ŋ80C"a q I,ElnZx9_޻NgN0@__%7"#ΐ!=Z/*QE ԒU^TCAee#kJ5K^66\\ɤ̘qnIk8Rvuc````t T ]]/e~r0̓'#ϟ3ɓsջY NgΚH~|,ә޹sU&dgOH{6Ç d 3:Ըo_w$S(c9;vt+[sÆ9ʏUM iԳ2,߄ GEmgL}2ٳgҩT&lLP_C58,--bkk0vǰr'MM-}&Z\]׭6 ,(4-ۧO22~ҳҷѷ1h>7][k% p::J:>}d`T[T[T[K"X]MnmPh44TUTUe54TTTUy#ٽarrXP!ZN[B桮Ky"#(ի}Wdf-Z@ 1#>(sr:ɑ8w\R/:ɑ#Wݸѱ/ GD 2J/,-gGUU#obBj~61LSTڶm‚ a}XWoWo!* 񣎕f u^e`:PQ8r$2an¿)! dz22,{5,2+…ǟ=|n [` uh=+IInn=AhÆ55GgϚ5P`3w޳D-O.Kp&9qٍ F'$M#F<ب֑߾ST>zA "AZ~횚ÇgΙ3[%44ckD-*:K^\2d2zԍxI1x!ӭeps DSSQ^^**j *磛 Y~vp;t:3/o?ff57S \~:66grrsQ Llәn Ue55?cWdrrjjr****rjj**r"mcYt c0ii%ϟob7 2lwu5iׯ/A1ڴ鞕իKSvZZ;P)—J m[)wN Id2<f]& Atnn9z#? ~4326hȬf?z Ð]]R';˱!!I`;ׯ/>>O/]Eʉ{1/j݋_nHw= C3f._>R>.={6ϭ$a} [֍`0n'؝@d,FVBAC߿۔ +o{x\?ٳn}#G>~)VǏ;I^nMxUn޸ɩekOW >>O_̎d"99?޾Ç55$yy);;{JO/i!!e3fغ 3PhN{ѣOp׮Л7߮Y9)H,AL@ cXL:Ի+.<>5_yHde%ΝϿ߭7u" Z^2 ] pxk(#HJPTY~ Q7O^WTWGfy\oX]MB~HJs((((X6WDHh=pѣͅ_;W_7peN<O3aڴi/}|92 9[mtnNg.Zt--̎è:'MQQU933mv9߾͟3#U=='Ob%ݻLL:h]dg3@[7fNīW_tٲctfgNE׮XH u{.t?2tw^[00P<X[ aq(&df-YG=!31Z7b````$DHH[8`P˗7qq_ld<9o~۳i謘u]j{Սn`OD$7@YZ= +& GUUy1"-[:1$""mʠ']\]E-Kw"'|X_֬AcGgϟ߽/]z?s\+FeǨovs^ʾ W"-ׯUUU_V~Zr blal޻FY/ci  ݷo_tt:ro]]s[78))K7:1:OAA% .ngd]ghxp77{Kzk׎ٴɩcu}c„S4MJJYYG;VݟLEECz7TTXWL <=xקfO5$}&ٲMM-̙&B00000z*]H}swb`z`iN$6yzO[pyy)QKэijjqr:?ر.kk+:5=IIL&CjZ3WrlUU#({6ݸW8nɒ˗TPҞueYY欬Ai MY&iX03B****ɨVceeu짭%%JJ2 U))Is|TWWODHۼ^QQG_uk22ʦO?p0tAfL S"ϟRJJۭͬ+*\\ tN}h`Bg7)凁jnn9/06d "#?/]zaǎ7sǎ=53 *ܽ]\/cǞD%#ѱX||U:. !} Cc Zށ0).ILګ}R Rffvvlm ,i@ ̄N z+##a````.T*ͻ$sFѣ{JH9eƤ6ܺucm jYї/}t+L{Ȑ{NrbbarrabbO% M]]FJ_Aj;wBʼ?966@n:eĉ>g˖T::=ZZJQQΜ5jQFF"5 ~x*[;bƑ uikSGЪa:sѱo``•+×/QhT))phYYe33ˈ& kiUUX$%jffZX0J?}-ckjH\Q%"jLkQQQF[[I"BEݡsl:^UsPY8qiSS۷W`w!44iӦ +*DEmi~g@gd޻wڊ#E(U')*9|mmS[17u;צnn^a9u Z__&+*d5sх @_A_Qt idԠ+FRchh(jA:NC9$$?=Rtk}uud CSZ;7cx_Y*lꀠ_Dm&_?3-FcdgOL,D*A ;pիG[ZueOV(+#ΟJdo>y7^m~̋7Fy7;:$%%5CsgŨQw&>vS;:SFcKJ*JM-NI).+#0dlacomm`k߷:4<[rԦMP/aϟ?{W7zIYpI54P,,v3L<V|y~[}2oDx{@uuQQi^0L[[SNT<}bx< ȪU;vL|&6\ZZI8gYY tt>|؋RSKM;^۷[طW}=𵂂}\P-I3f+)0a0{ǝ`IIɓ>x >'<;GNNyFFi~~%B HNN@3 ZL>ffZ,m:1PڦZK[OYc#=Om19559L;Q)nz{`XvQm ~$5<|\޾<ǯ@'Nt7 xa ӧۈVGݩS9t''@|B{ ѥ~~:s玽{JP`t) EoO|a ޻c;^^(E|ȀxV-0 eg„[ BWW7VWqDҒ{N?^$aw pؔ&df'FC4ܿq``–-7ov>h4FPЛcǞ?###Ѿ(rթS%%|zذ#CSWVVvvFzw̋gT:]s؜ lhDGg>{JMdcQDD:$нtiRg z{,ΜqML 7:9G?^0Pߧf\ܮe$hv b`Bdþ}xҚҌ犋9hh ^b;Qw7L&^dY(EEU99E߾~B7PFCC5v 3SSM1 --{Yl\_\YȾni+D9a;RXL}{ʕWݸm>.84׹ k֌ٲE;;+(jDGw˫8~ٳg8~(@m8pF  AZXZX y gҗ-: TCCvoLLY4<~ IDATSVFDS5^NgTKJ*LL,ϯ`2:D 2d_| *kt[mk;\[$‡ڱ#)AW.4R$"a````THCy޽wUu?!!y]L 1!?rsy{p}496]- K^.bL&2s[Ph_熇z"Ng67S9nawLwwDŽ!njkt؁aHVV2:z;L=qaf0 |8cx<3u8S POee%lf/>1ğ#G"]{:*\\##XZ 2g&2 AJ&O> LW0ԫ#njcǞ8s Pl_TC׹0 ;rqSX;"; ٳ=*-=۔)gtưaᨫjb0e…9;COkwo5//# @!8^%n%(( IPVV@\Zo CccoG7nw;vg/ĉgmmab2Сw11lfLK z Q!`H*wΊg r挛8nٲf o!'! >REsX=Ieƍwet[ AsII_c$jojjUI6ƍ沟8qbddd^^ ٳg,%7XA@&ө_$0@3Hss˜9~+V57Mn$44G--jFwf//5Ϟ將^}P0z1'^ |`ӦwUT[Z-ABKKAR````"Hccڵd+N#37oM*j0$R˔)KI?^/*AAo qYsB]DPzw,:{. +lFiG&ӗ/n .L&`2Rd@CCK^˗ꬬ^VeD^yնzx񣢢GL&iQM%%|B&ϟOPUVSVWUUVW!5VM y q8xExũ hȑnvuc#8|x…uL3YM (MQQQ"G "A޻jH3Uѣ/Dž؉{!UYY)j)~!%e]:v=O z)(tɑ| "GGCyy14[XXwV,Ν;g``0hР^zZ"PM>}:Ax<>))#"ثWfqS <|pI0,R0, AR]KI 'ܜcKKKH׿HIꍍ*we޼y|9Nw[hja_!o6$WU17w= ih=<Oq䉁g"4FEmz~e|{u_xba3~fq8Qat$][jԨnL893fϯLM-y&ǢojxX2̆3bOIOvʫzO`B-z ՇUT4TT4>rWHJ╔d45Q%*WB#ɒ7Ii.uZ4 $Do$z\0B{2;u8?i"s͝8!/^ -++7hcdžiO<9rE']ׂj;̮ltzWl0t8mm޽ՍTUTd$X0IHHܹT" //uiӬw:qy81z IƏ?fLG>>ݻε۶mbO !pLL4</01Xvtqq#aΠ!: (+ջ:9lg TU?dp8LLk<;-OK+IN.~rsK4#2 /ӿ8j#TW7Q犵kf`%%ee%%Yee%%##5%QʲJJ2E˗Çiw 226nbH77{׎!~,HlAXX&UmM߾ F*>s!CԐ\u'"66V E'= 4pX?~@=|6++u:Wmm-@8y$Hd2 gϮE Md%;;D"1W^f BR9Z ,''GRlE DIм8>|hbb. zc@NN빱JvZOOOAn߾=n8V:WmKt--A&Mt1޿>Kv ?; Q,?1d 5u}4ׯOݲY|!jIJe#޼ٽr娛7 v٨~C`Q<8c V jk LM5!)oV nװ[[Y0ADl H]I 3Jh,ss^\׃Ҡe**B{bŊիW! hܸqh9uw̙mRVV}}^Fkf'H4MYh+!!;a„ // m fcc#++?m4ɓ'*** ؖ&&&쒠$%%5ѣGMpvv EU[G[ ͚5ÇѨH((H><32r pr:w#EB yy['}ŋ:z4Qra0 ,XpYȵkj*ٟ=Bu499I}}/JZ_𠤤d C-hRSSx<+; ,,LBBǦ;vXYY; nAP~~~u7ϪGp8%#E2``õEa````tbHC}dS=$jΝ>~ܿ}mpZra22AA(ڂdk_~l}=wЯx*Ҕv?~;v,%%e׮]ovrrb0{no߾+mׯ_[o!++g)o~Y} <3AhҲ2ĉ¬ÇxzN7B$D> [/!~֚t&dɒ߻w/:::<<M5kgqqqzz .\cݨu ''444PT ##5{XXyKBR%$$d|ڜI&2@ 3&00@ Νaƌ={p5풕533۵kתU( &pٳg\NCC]xÏ`t:СC>ui=t*r~իWL&ݽ٫O00000 1U rvkĈ>6RPP)je#>|뒜\4r UZ. qASS!4tMqqET*]U{x ;>I&Ʌ/G਩;vwsxɉL&@.m`Ϟ=jjj}׮]h C_|9q>}̚5+11ڵk{nZ"F1̚a-+(hYNαG֯Yؿw?OKBGh5Ԭ^}s„k8 ҞX]ح kc:UUΝ;/^rJ"qtt:~8{.OOO''>\__ĉhz\RRRAAA;w=}tppT4 T-ҩSϟonnnhhÈ7nB9r$`ذaT*5GC5mنƎnaHթ[NmmmkkW}wUsi0uwo_](jq*pTWwҥZ" qӧSӝWd0¬шU[{SaaUB&-{)brrr/_@$<>>7o444TPPسgzJݶmmۨTӧ h֭t%%AD… UUUuuunJ&%q&uV++*&$''GJJJ~l:Q?~ܧOuuS(vۋNj/بQn IDAT… JJJGe QE[򠢢"66=ݝTmM©k} .A)G7ηEh H۸O<0`͛7y$:<F*?OF۷OOOOMMÃH$OO8ajj*''7lذ۷o&"{Q@d2/^طo_yyѣGX߫Vs.xO/{'ZFcccns!FF>}Ϻn?⸓m:0?SL `m(`eccdFii锔ߢ8;;;;;{??{jrPjjjxU٫xׯ_ZY)6zNfXd0!!MLvEP544HHH,Y}VYY oݺp[O8˗?~p5KCC˗?~|%%%鶶v:tɓ SPPE$99YJJ A3 ==`ӧO&m6kkk&@{{{Rгը⍝wީt>}+mXhiNNN߿7119pSLihhxVV<iBS}Zݻ|!ԅ \ક޲2pj"QpI$K~I$D$BVZXXyȐ!۶mCC`O>;@Mj&"m?:~ zndddUUUTT j0EF ZZZ&LEm7,8p5؈ 6A/_RSSfi Zc=X={LUUF!rm ].S U!=S f4h^k( DjPnZ[1Cb4 ta/O]66ozK3D-QWV~m}VV{O|^S9ebik R:xb/j޼˗|9/JDb^,--YkD @ AAAi---٨)۫WXٳggZ/|ydT*5z?T-[H4iñ^=|Ą]j; (L&s8ݝr}i[4>7~,V lbbg{@\\ k\Sa Mv|nMHG#_ ~$\ZpI"d2 D$BV=|B>6ӧk" B~\ K߹suݻwέi;F%`4[HkZFn\sqc+O"??Mڵk===}q6 DV Vt:]KK+&&AI&;vu{ D芴٩waȑ*+GiÊcEu]ii\Xv̻w{&O?voLL miw}^ذNNNSX9y2XUGΎΊ?ElEzSRRZbEffիє_Z[[n]Dnn &H$5y[QH[[ ƍWXXhcc#++?m4X4EEE066FK4jԨGՄ;wŽ|aaa"gӧOPZccSZZg{ _f=*x$b``Ǐ cui_Ϝ!Cz :upVVV}}^Fk&nZHG`15w̙'Þ۷o\AۏN 1 د_?j+\;9rdmm#GD-/y\7x\B83Ρܿ#`^[m1;X>|X]]=|1{کX[N*O=q>X- m><3*j{^W=*2)V=lܸMM-J0|oر[nEStuuX7dff.L&l߾=%%M]1s'߿axҤIaaaQQQ"MSS}^PP. JxxKM |}}G+W"ϟ?6{;ύ7, 77WGGA9ՔmB+3lÆ˗psBuL&3ڥKN:k"6ItxtttO>/z, [/*&{700`_>eggW#\玁!Vp]-n\sqfo2~Z6eፍ QQQ3f`*?GBBBhMSN.WE__???1;;dzRtH nATiݺ"$duUiܸ+WUZ.AVVr񞁁Kt…=UY(j0ҥ#qHč Bt镕 /u^--?NP`2K,Y~{K,پ}{XXXyyydd$ꎟ---T*UBBL&߿6}dGYfyzzO0… I&2@ 3&00@ Νaƌ={p=8)++kffk׮UVQ(& rJKK˥Knݪ~z}7ݻBYlYǚ_UUU+ eƍIII^^^|uUvZ}}=gQD &22CFFOWWTUոpA u\g>g8_]+VTZ;=zmYj||N(=cut6&F?hCm)W&&;I$J'i7筬T* =֮R222:t(؃G/AN>ꪬ'C#{t /VVVVUU]bESS uuux<$!!cVEڛ7o&mIE&ބ@IIIi0 ߿H"nڿ)))ccݻw9rܹX:qҮ]f``~z2n{i4xx;55 D &ڲ?A111 /^(++Л4446l5(ׯ__|rQ˂!E Kv𬘘aÎ8𸢢Aru!}j=:'%倷9s. zԩ}'?;saJ! $ v@\ *(Vڥֶ޶[KZ{U-2LB!!LV\~ZFB </_yŜs $'<oqN(쫯.3cɆ UUowZp`APO?b A=?^;cH;AYw)> l^[bE~~ ֯_4m+--AJuEsUV%&&r8O>d˖-Rױc?rܳgϻᄏ}[`۷WUU]pŋF~޽{ӧkjjٳuVLܵkWIIIqqӧ =t֭׏j0LM* AdU..N>:ƍ7n=~v֬PiqYڵOە+ٳ]}>s >ξ^%&n޼_3mfwjفBk7'-,7L!&QwcZPWg~ɉݴiA 4mx򊳳5999Z +))IKKVWW#RݩԲi&{ A\~Gܹ>Zx1Yhѿ/?_~gΜ+흟 Bw~'T*u̙޾}s'ML\n:B34'$AUg9?܊>]?kֻ7cqY{<޼k06K>:g5~{7[Wcǚ?/Nyf~qq-+ ĉZot+vܹT' 2Lwutuue999III?Mqqq#\nLLy(p#00!++q¼XJ5os'AAM..N;yO>y#3͛moz\䘑An~W45u?s~}9U?|/x啃zѪ ~}l{X"Jm~β 'j.sqq΍FӦMd~z ޲R \zz]v X랏 mll4?`0d2L&BqMp9=.p8pf  4ũ0ʕ?Ό<&'?s̟woٜ9ؽDkAoS5}gbg,\3?d}cᥗb,>6 hjduu]˗[i}tҥo},(J P駟NMMbZmG{>rӦMڹsd2ŋ~m=[ld2999_}]{۽{y[[[+++nݺnݺ AAAt s54~e¿w{!**O'&n[ݻds|IzD\#}C..N>0pQQA۶ ĉZ__45v~/.Y­ [zuss|k׮ {srr=s?> z{{'$$,X`|wmƍR_~YvE.]e˖ AAAtlǎ |dI܋/fl=4sttHM%}+WXŵw-̤2-cxxGSX||HqKk|cI+G/=Պ_=۰xq_oA٩Go[cc`_7lXvwAd[ș$o/2dII_z%pÇ  ??` B>yA 6lذowBAA14qժ+.\hھ\v'^[fMWW第謬w]ul}II_/JO2.t ?zu]{72V:P||[o-뭣IIsGyr2iŊ>6w.mMkF{P{ h$X,Qss{7l1))쭷VX|瓍D"|b1z] i|G&e˖{FDD06m쓳3bͧ%%#Fij!4C=d8;;?>Evn..3L܂g̠6[9`0V;OPFf2-k/T77^/:T! Ad6_@tNLI!=¬h[mP3 S SbUII]II/eKѢEQ˖1.kԦ,ȑz꧕+رcϬ_qv+-}CvZ>oއ~xkHB~21rxR)L^~O?=ݢP?wNK.=|`ތFT>>;8  "38k )~]ڪs_gCwIII~.^(Y`Hp_.B)03(#-mIPi2!\V۫#=ss ##v۶ Zo--t77 e77+Pد0 h}8A}p^rh꫋ɤ^XhQ4(_TRRwrܹ\ű( [ vs lY6L#۫ C8 s^yϜI ;qgvwonFSJʿz(WXvϯvر'Nh=Cd8zj[&D3I.&dv56 Ύd26.c@ IDATLcb 6̄B7.Q׭tiP%glE,dE:)<K㣣 t:>22HY,QQQUQQXyypſFkVLbuqqC|7??qYaaBl1%p& rϟF1!nn}A ڿM<3ɢLwt}IIݍ''̈K㲲|"MonRcã8B+vX*Q]mGܹjAWY=͵k[,{~X {pB4j$ &9[=OL&X.Vpqq ?1e"ݭKЖ,A`wV2 p wTEر.WB 1RS'2Mc +OKƍC*Od옂#\ EL~]O"EChx rw*gEAi}cn>G3Ej8g6HEggGϞMדY{vT_&^}ݕOĎvKZy仏?^ó16 h< hn}tKKtY¿iX A4VzՃ--B55ud}p( \p}3/A;}zuuCCaAVk::2Obl1#"F{ A]Νk}.cluvB#|f`5a#V8Q{PeUUZ3հm8jjL&˕ F//72KZcb8Aн mD}we߾O[vM̙z.W`AdVV@?IK/ebk9ڲ#G_{ձm AY5Ç^~۷߱Św:::8yA46}}C,(5o? ?iVIKK7%jnXB^#220""0""NGDPݤރ+~Ǔ[70e:O:ϗsVI[˕J^A\]p,BR(X+=ŵ FQmi۶p>0r%ǎ>t $\?qu7YdE h?8A A(H$yx>xƍ,}kn>wن3\ө D.XgAw۷7ϛk-~Ƭ׮:R`Ϩ5dvlBڡCF lSx**FÇc'uI)ƍ?ut| \wҷK;:zڤ=Pe2Dp,PpDm ٵo_Ύ+V$y]cU9SIe,Y7 ƍ<3)V ]c SөP54~Ap8& $A5 bFSii_qB>DFaa:0Ri͛k.4 J??ϴ4jFm޼Xqj}x߾?,ЖڳJ5y~z+jR9K?߸qc櫯.A lȲAK/oi9qG.QT 6w {%#06XJ@T2ᆆ'N}O`|0u>>T#b5x:utHj xŢxH0(mG>CCWYŵN1􉉡)˗'P׃RFkVLXFM()|7??qYaa[~bXq8bɄB``MZA 򚛅?x _:(5ILf+WYni4: ;w.}\ڬYS>ܸ+^[iw9mۊKF{{zm۶ jYGG p() , C&aH$ 0VɁZ>0]8fݺٓs>sFsr1lXUF$)9Z`!Tqq3ڤ)}%2om3b뱌%**:xB&KJ +,LO?VkZZAdv5G4>!!tJ? o0Hj*-씥֬?N'АֵkFCt4aΜٳ)f{{ONSvǎo},XSQ,Vo&$n޼hѢ{+##KÂAگwO7MO=Sy9ĉpMUZZZ-&^xaц sm=J{y3w.};ٷ8kVJx O$AWWp,'`l6%^uXG"ǓX"6[b3@ffc3".t3g+WJ^>=0^[xΈ*s2ìGqss!! #\q40's~V\\#lժIykm1[*\ɱcdqq+W&O2:M B56[ P(P T !!~pAiСZzpU.e<`zz[+*++TRJ )= ?q UlNb Au&jFXX@h?e(]Y?R03̌Fp  o{].OK[7{Ҹi7e"Z"Qwv=1΁h,5,3Cm;~[}bb*+jXG23991gE,Vj#6L(; O׆ نNgpȑFAc/_ V9XuVۭ[nq[ZFJťg$ϜIA_7\ڽ 8<'kiICz'..xݺ٫V%O@>\7X,fͬ\/Ady l޼gmrO?}p<# h<76YSSw hXd 8Iμ摆c/XpryWǓuu'ZAwwװ00 74?8>. ho_SL ƫ ҈D_[ktO,VWL%Zξ`U]iE%*)=|'8/;;fX5Al)pEEl=JK.^l((HNM%z\VkZZAdv5(G4>!! T`fcjɓuGT߼hQTnn…0QZSQVQVQ^[j>fSSɩd 7ͧS_{/kzh/=3gꝝө\**~z!=bEbNN,\ AdA +#VaF$R-[N)D:Vb3欥EB2EF Um<+9z{5|_T% !ǣBB,2 e'UEEU?t](T%hKNgTBWDn% "J*}x4 7|x4| ;VJߜؼK1RRHv}ҥg" [6̮CV*Ҩ˖1؀jL&˕ F//72K@}  M:==}O3[өdgGOa0Y,Qee{uuGuug{J%%%&Ri{96_w$_dCD'j;gdgG/ZICZ9{є3lA]UWw,.~)))ttGH L2VdUK*aE\JTAP(w*K),Rq~5tsƟ::>vqq+96w3sa=slF&c,$8*0C(<>(^d<ŵ FQO5)靍3yfbKZVQQՙ3.1)peL3IAf E? 8 jqq05AK/-m:wA]||űT%UWwTUuTUuu jhФ8}ZU2kV㏧/Ybʒӧ$',\0r$ѝ\b/*hQTJ ^ i7}c8tHc/DG<y<Xs*"t_:7npr-8/8?$/$g$aQc2vzx ׾8 IDATgL*deÛ!/,*XR6m#*OdVUuPYYQyyGk-2M$ҫ;wOX&r_n ĵkgal= %z5hL&ʝNx `L Y Ҧ!}EE۹s%%ub* {֬E}|ztOzQ{+H$LBBhBBH||HL Y={>,,L} K{T+WX.4_`AsP2 n]TZ&E=(iiԌ P!84?1w}`٣n~nϞ'cvtnF@r%.WJ8XBʼnD PdrP vhttbվ}?t]ɉ]nvFJbD7;Q(TRF-3Z{…k7or{{5x<:=NȠZA=gk?/}Ѷ8qgyx"}l ǥf\}!Xm EDYbӜ=՟0xޞ 23z0*ytdvW~p ?e>sN6<3Q\]}}=̋O ,WڊR9PZXRRwRSF y:gٟm%l=`0޸zPɓLјSPO}ͼ1J5ҲNZR9;;!!4\z`R ̼S6<^p,4>=M&SXfk~,A[2*?@2W"QjW$Rvwd^\rppbQ>x<CCuZ=xlh 0w.=7lcӕ y{6js qP˖1~x8 L>+1^^nd2FÁFk11DA iSv5K}}C at:CcWWc2b=#:K!TtsoP'z{5aǣq84 2 ߀oXpht׮Μwpp̤2,|Fn۶p>@ .WrCx>$!!DŽ hO{4EEF\ޟM&rHEm=^hBe`mYg d|40suu 4Be!!PpGǾ s:u;vZ_ϧP>v7;WD"Du8E"J5B8yeەl*_*.=u94OL -,LY<>;{HuYV[d1MUUEEUG 䜜XrOb \*8dBt|\\0p Fئ@ds0H["Vyy[m2'#dL̙T2<P4M٢vr_ 4#MNLOO߱c."ѷ %??FOjjxUUj+`al[b@V] ÀD-!!$&gC49HVΜﯾzdn28-,%gBvi`@&mkpVq[˕Q(X  R(X)^&A@˻B[+m΀ C@H !| @4=1\0>Z=1_-.^sNZ^ިL4fB7G9xܕoc0ްsRkϜ&%'b0h^PkdT4]iicQQŋ^^3ɩd[kRS5-- TD|p0!!iCTiA"uk.|~]z:50+(L&'iFj^2aw'KtP#"J-]l#&01G7Mm^]F4ڃ_!AA 򞵵\`"#.Ҙ?P{)('6á0/xUpF"٪U>GbO=5gz T"-*:s%;;0%=:NghkP54~׸!!~ A64Aۼ^mmDHCCCTY55ao-& f@}$:Kx͟`Adf&}]-kpP,ljnl46v77w999QQAQQAt:Nӗ.y}=*A|}= :ji_z㆑<ȑ^^~}ƘAV& EflW FR<6h)@44 `1P UB$R|s#M$@ @4á'~rUˍ?bId U r@"Qww+d`=ǣX.MMݗ.5՚9s(<2g8?KTTTUTT%@~h {'z,vK()|7??qY0'shL&ʝNǃ4qssH!hZAto늊ꎁ[TTJ uBlQss7(F{s5 g\ə3/6WVLHbb…Q DFGpƍhih46 --®.9 4tRB67 Y,!$?**(""L\ u-Yّ#Ϛxw? +a2O³V3R(8<n"=*h4!i.NfeqsƟ::>B*ՀHxl$9B=xs'mNȌF}Obb0^)=6дʱ~1Wm=iA*e0**4gc *>xB&KJ +,LO/,@ִtP쪯k4:') .,%$b0^)'AM7X۷;kjx<Gl0x4X`P(w[n&"K(tn O){20~SZxBP3hQTvv4mej ٢!-jiXBX H(,#|F'kjni;;e Rqt:BR8WWB4E!H{晟;:zΜ_>Zŋcb-,QM$F.mkvtpR.WJ~A\]Pdr B/Z P JX%(BJ5ǣ _<xb  m_Լál=A!P\Q.$;%5_&Q( ^8* Gc0^7 ߸X**B2-n%KO ώr%oNNl^#5lqM/ Oʶta0oh=tIhΎ)(HI#;\ dx8(@A5H*%@E Fy'CLM+1%t''ǐ:O K" yMi|bΜww\r_-_Nӓ?:SJ{ۥ ? U&!(ȇD dr3N=Z^$R/jοCCz0wwW9 p_r%9ը kkpP+l |dry_OO̿VA<=<q8?ɼi^v4suf-}xڃ+9q`ҥqyyNb7=p]DSϞm(**+pe?>_+~h;BwoRiR7lO??#(N/.l\00%- g7m;|`Lk\رۇUӂ+, mmR٢BяW!!~Fi I3 Z|}|l_ώ"X"6[)c`sXNLJةxSVQVYj?zz%&ΝKȠ'VJZ[%6[!U5:H W_6<sl`[DߕA  Rqv`TAZ_Prۛ7g=܂qE,B#;;elH!23 9&? SjнL,V !077g< a(<r'3 !LWw\d* ޕ O=]]}}=h46}|Mw={9S|y6 4 ʓ'ŵUU({VVT^^F yGU|kzBMTP@((**?xEb (R"`$!m{~LrX6Mg<̞2dfvoxWoedɶMڼa[/@ JJN]lXvtBXHa29# R)j%J0!ATjX+® )aAsZ,nwf1 M&K|Ld|\RB!r>H*7n_̈qeL%nzhtZFgM%h`UibʶLTB Z.,EE#zto  uOWcGjj99YY5+ ]_TTEbCeLHPZ^ erI8ݕU؂`bTwU*>_ɊGˎ8qڂJKSPZ7XPC^kg-)X(HRRRd\.drb 3.JsuOx,;xTUb;{8~/Άհ1 J$IG4(c@w4KBHau-ru,&T^n,+SyyAj%iiTԕ$KJ*ht8Qqdʼn'NTLN:<8eР[QQUe2Sk @hZ-kv-!A IH 옑۰(jM3kxkPjMr;WnСCūWǨo }}\[k}[ǎH?ļɓS;v=rw"l"P!rF>Z!>xEdP ^(jZ-xUX Z$’5$֧A,:&RTʗHxR)O.vzfwݛx&htͮ;:jTf[߽(*ۼƍ<1kL l k׉={NC&L|C AGg ~tE 8i'mW_ݫ\[n|dr6m; {\ *OzL&==]ԧ&+K -*E! >bCI-)1AMx6'5UMa]Dk55VlV0)Kkx[ud+&/ȑR`22Tx)MNN)ݯ` OQRYiw=%^$KMd`/ؽDKؠLE:-},v8hָq9ii `2=w_3uꚿ.ꪌO?}X(ͮ 9[B02ņRCiʌK\fdӕtEF2=]y.(E͍{(󲘮0WVer.`0l)2eV2f2 vc؀L&SdѢD“xR) y; Ꚛ7ۧssS9K-İi_6pxǎ8ch$&-ݵά,̈́ M"WĊ? ɓ3?W@`{~֭GHv۠ᆰ_"l6wAZ^\;#CW$u`+@w4'C]y 8v<( OPL&]&2j`p`E3gjJJ Ndgk{W[[ktZkuoX)[4(jZ$!Aш8b.b܄Nci@eӳfDur͝Rd:A|6n-履>|AΆ2j=%FN D\@`8 Ezdr4B VD RZՊZZ-j%0B 0yJ`2'Y'*Ə;D:}ʶ3,̄MF}4998ʠA)=y`t @^l!drV+V*EZO)rL: @EZ L?[`g_~9|ٳ5ΗNsM:4r  uffy&=+*xCyGgK 4&n29M&0xYt\Η PBRd2\.PE b(v{ x`eI$< bTZ xz-|H~yQ߾ڶNg?/.6B3uu[_Gmt$ի枌 o=aX?۾xq>1Q:v şX /ͧ ."hDvv¾} :0W@;P[kc_|Wi!+K3mڰiFT1s$%ɾbNf&XvpqPWX˫:yBwy;6e` td^^Uq>  UVZ0 */]}Æb΁iNX,kM}t:[MpRFJZF#NLh4bFT$~;5ku^[k3O,`хԠ28*僫@wl vWb1ZqJ<+KӧO&%Iwh^o[n2FJJP.+Bb1Lz8L|@ hzfW]MS~$i4ϓ`l t7^ziuGN؁sƑ'bB09c5VMkv`x۶V}R ֺ, tuk()~!J3ë/= y(, T /Xj%=%<(6NF1}*6e\0lNTePQa|65k}ag?PE)''ykcHwУ8^WUYA >oM EUW[Ԯ]')J7ޘ=mQz]BdrHy$=ty= ?/[ݳ˼Ӧ =Xr7Zs͝{cG" uOW[,.Z-¢ZNNrV&%E)V쩅 oqt4xomZWgNgqp"|TB^Q(ZleͭQa:/]eGi,C*QևS2IRcy1/TEzk,nˇ5ɩM&X`pH/R"W\糙L$I\.5Q~#ZP*E Z8Q1~ԮZ-pws tEy %'/}„f۷jwUU$9fqK5z'x-(SdYmLp/duuvMlܒ v-/nDD]47bH1{3k')N{{uns~ ";0}3P]N?P($"!ACyĉ m&N92۷@\uղJ3&7瞑%_}l˖g֦+PMbEbҤܷ߾uu6lՑ$)q$R?BL&!G`IFll\^ 0!AP 2@*B\R  ܄yNpT9j #VwPj#GbT$xl68F0B`yHבTbGQ( PdB?5dgӇ yIm ̹U24ϫI?xfŊEE:QN-˛tjjQwa%-!i6L&X\flvLN*,lQe2L&PEr@.+(Q& $۽ xA e&-qG, b[1%Y<&9믒ɓC<$-MFZץK#W傿zJ|4]`0߭Y@;v nj | 7al({[ Ky` Hڰ!BltOvs5XT˫,MnnBq7SO}Ǩԏ{cW7X@H.618SmhttV"+lĦT Jvjd\ͦ8;'v'Rclf2!u$RyAqi(HfsWT++/|**Lfl@4qr,%E,KN'&J%Z~H\>_drI ^᥎g2R)_, `i4""p:}VlvR~2d|CfՁN›oy?/W"I25u!N$_o6ߨ` uzVK;Νш( <Qzު* >fQEQ+pxNu:)z13Qr(bHĉT( lO&q?p%V~~u(DT'^n[B駇 >o[蜘LGYHi!I~Bg lz I_= #lGj IHx7>2p`Rg hgu5gTW.Pb_KXRCYxN&;[SF蘬imzb͡V䠡aJаRp"UmM0@s IDAT傝 R"7(.8|e06(;!6Z-4qJb\6@GmNElEhL <f2BD(D|7vv< 7hl~bmX EEu_B(3SDљB %Knksr^w?9bѢo!o.[*-[9W(.+3BAhtEZ2-M>^o BCgEZ,rW.v>.|c 3E&vwtQv8:uwn9?''A?7lxtN)}Ol6/^Vr苰 2|+!>/ =.)`0n(p͚ƍ؞:6@AUI9,iPdYgh@H0.*Rʼnt A:R)R)O&K|<:Q}Fa h@  n_]ZSc2 l-djQB4)IV&hj\.WD0D5с7fbqY,.3N|>aXtl p|72F$Fjl؆rTNS@r ;['}dqF=yӦ?F#Hdm쫣8|Ww>\/<ŢgfGHǡ+ 6/ E2QF3m4I&pvCpt8V+i =VPS/ŷ>.KO>ysy: {5ś33Hߓo'x3N!t_ O"ef:;̡F0\55'+~!bGL<\(FM]up8Ll:^oht#gፂݡC8L)B!Gdb.ͤшp8nNg;wNg29"gKv&+V( 0^lR UfunX&KkƆvv.#qx<6d2NnwZ'6I2zV(='r`NǵצegqUٳtSB~~{V=Ⱦ}.W]~~]GU >}^^-ލ3 KxթTʙ357{{'Mm󼶌P(lZ d ^xUx.4,#򕟕9LƏe2~l+ހs|6oD:>rl6^?QM+BbDERH$k˖Sh4Z.&G&~,UK J-Ο?EP@TLѣխduWlvff__~;AyB4@ [?U?$@RJ^䯿h(Z^b͚Vd=h6 IHY,nсu5~dr=[ې\X O"K[ `ʱA6ؔ`X,tv^YL?+K!r`Ǝ \.Ţd`Ab.n;0!7*&bFffvK^P(\HDl6=S"q;:#]g0ZEH-6,o|!϶kPaDmmy.  Xa |6T U*abTadߙ P*0iR“VZ=x>aMABaUȏY>Z= 7?$;5e+ߞ :(*%7¼jŊn>xB>]}dGUW[Id00"" kkkwT b_њ\fG]*ÍsD£¥R^F4.d2Awi9Ú%vOcp8L6\(eT09&p8L r@ugI̘ ^̙1cr.q1@g;ǁZRIII*췔nT:y:fLGhhKzyuz0b0h$IB!LKSRTed' >13Xy5$r-r5=N9SS"!lp-ėJYLzKZ] zA `fs|/PUe2w9FIЅ%rbL&P(odbTR>BZRl@֒'R!`qE&AӰlfD\<=G,#u:]Ue^`ۦOjRRt Q쫮ʸzFg].Vqر+BjlEuR~諯,_~gWqQh6U&l6HxJ03SMuv vPȼހzTހ -Ն({8ꉢ:q,}q8~a(dz3}j ZV&3SK!Z{20 @'ar8-o|Rnxzl-u:."'b1r$rX l #qZ"H)cʔ [Dln٥ۭVq8.htZ\ɤs8L.%%vP5qR41Q"wJ1-Kn N#}0!:`0}8BQ1QLHy2 o15rF$V݌FgT쳃74(o~`\*"Evvvat" |N7ɬVlL掔8fDɀR)a7nf{<w8N{<~>O6.ppYqZ-lDgK${!ƉljHQQQToխĤN;,,,Ǎg\1 ٳZ^PW[\Kg#~S*͌6Uu"H$k<'VukET/Cl VxTt B@]޹0px\.w|v{4+ Ǫ&r ـCBH(p8L |At:!q aXaN\&qL:p’F#۷yR('.drY,neyN2rޠ1bLh4~K.ZRh41cƌ3~cxB)))햽V,Y2?( 1~1w5;g.Ȏ#>Mu+@{>cni˖-lΝ;>~.׽+ОtZJ?ۚ<)V]EUK~IIIv]$0'PILk?[^onM Xhʜkɼ~& ޫgϾn.d+WN]?v_}_?g3<{yyΞ]QUKJV=z~gyf' Z%Kn={++KVl9R믅[ݰڳts?9sOz_s͊^Rv% OOzB꫗ر4ߟ>3Ιa޼-ڼh^fŊog͚֮uC7ڲȮ]'~+<|$/@W^n*/7l6wxBmT}hrrGȸӦ νq:fn]OÇ__QQ&~>g3[9~8^r…|G~S AG#KHMkoB=UU SgT>\rh/ۿwq/?>իڷ/…CO;T |v Ogd,wKG\v VO=|8gΆG݀kɒWؽb_n͚֬~ƥq㡝;Oub׮ewXy^^e^^eaa}t6mNߥD0o*}_O{#DsDłڴiSVVB jJp@ py ~駔,]4%%ETVkD,Ю]rrr8NFFg}!Fs\|/Hm9!PP#X,\rݺuׯg2Me1A<~mS׉|^s޽RtʕرcG>}T*ռy|>_ɤMs V~c7J. XhF#Bk|ZB3 BoFVVP(5j_ynTKT>cnw QpBӦMۼy3i֭SNm]9 |9M"I>ׯH$vMDdQ9o1C6MըԓZYf) x^AyvvL&[jULvZu5 :~޽;77iZJrh\-m|Zx|O}d1%Ŀi'" Z@ pB0 `(v8! GpĖ[$vBYP(} 7j*PcJX=e\`ШB`z$ !DY8v[.b1Bؐ 'b;"}BEf_nyvBz7M}>xT1\>7 c#(#. Ni$ 6c0h$Hh0IaѠ+~(h4տd3t:NءP=2FXX7ߜwĉ۶m{_~zΝ|>!o=z$~gϞz뭷6l/l۶o%⡇Zbo~ڴiΤI|;|ck׮ &4?w:N:t /^|PmhEѻw\.%?o߾)S<#8۽{l1c\.{'.]4Nep^uYrɓ{:0In: 1w}7?#G?~s{eeQ\.yNN Ft: &?_?`. 7~9+WO>Y|'|2t'N=L&:RL7j$-Z4l0Lp8L2cƌݻw8p`ƌgaJիcŪeÆ {Oԭd[N1{77i@b5Cm8u5p۽!CpĊIpxhsvq8!D ÔB7be2/{( vY ZBrH!8 ͐HX:XCau$I'糼B1?_ 4- P(B~NQ~H(DRߟ JIDAT cl0r:닃ڸngRSÇ;3p[n1bN\n5Mrr믿pB<|c\;"_nݹs:kѢEptr8x஻rk׮y~_#GNٳgt:uvxf31~%\`P(.CЛoٻwoЊ+,YQ:шܔܔg_]mٷ̞=y!IH>XjɓBZvʕ3gljW_v iBt:}ʔ)7ouAj7RDŴv~Ԯ*/(u_ %6c .bGAq.%jD"yG^~}QeeeZ7Xteyy9!:K*߿K.2ds=7nܸ;@ JGyHO?ϷzԩS'M3oEEEzwL .riNeo߾UUUq/DYfrZ5$Iv[i5kGmxTo\ ~FvA8Wl}T6@?/(X4;|'|rӦM?]pwsϕ;v͚5gw}K,9}ӧx"[nٶmnL&<}ǎR2DOvyN'IrΜ9999IjO>6 :_~… wء/ƹs֬Yep0Ӝ9sFR;qfjI^~{͝;wѢE{5L?K/x PK[^Kqzc֍'e2ӧO7o^iiӧ 1ݬbe],`r#)M=lܥ^>~AX-el^%yu]&/snj$$<ƽgoxj IoZl&In?RT.?#.hy $$$bg$W_Ջbwǎ1OǏ%I^v؁F-H27N_~=.((R>LѶn֏F^"99{ﭫrqYTT6ڵkSSS œO>xb&Ư *@'nָ8o?7 _T|>vUߺJPuК5k1Tz)fϊ/^PիX,;v;Je@kҖҘ1_`O̺II4w\.jO?4E1+dVl{{lJd{VTda"2w7[1)Z.['۴U:uR[7sA$#&N̕-/|ݜ;j 31>ׯ_U{^?s̘1c::#Iݒݻw'''S˶m۶|Ǐ mcNeԍ6e^hQ֪UNv:O@437ޘ=ztQzO<$%E @'//۰aC߾}^xᅹsvtM'AH;#7o~st"D"ќ9sZ@eѢEn;0 >0f.PKNTK7v@>Ws/m v:?脀kGYghԀ1! bBĀ,|>ѹ+vgvC cK` \ݐm{EZf[RP'Bl6`0wtFAaAt[WmJklvUUUUUՕ_ Zm/@+t: \Add:3# bB4i*v7IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLEntityResolver.html0000644001725400016040000003235213273140074022145 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLEntityResolver Class Referenceabstract

    Revised interface for resolving entities. More...

    #include <XMLEntityResolver.hpp>

    Public Member Functions

    Constructors and Destructor
    virtual ~XMLEntityResolver ()
     Destructor. More...
     
    The XMLEntityResolver interface
    virtual InputSourceresolveEntity (XMLResourceIdentifier *resourceIdentifier)=0
     Allow the application to resolve external entities. More...
     

    Protected Member Functions

     XMLEntityResolver ()
     Default Constructor. More...
     

    Detailed Description

    Revised interface for resolving entities.

    If an application needs to implement customized handling for external entities, it can implement this interface and register an instance with the parser using the parser's setXMLEntityResolver method or it can use the basic SAX interface (EntityResolver). The difference between the two interfaces is the arguments to the resolveEntity() method. With the SAX EntityResolve the arguments are systemId and publicId. With this interface the argument is a XMLResourceIdentifier object. Only one EntityResolver can be set using setEntityResolver() or setXMLEntityResolver, if both are set the last one set is used.

    The parser will then allow the application to intercept any external entities (including the external DTD subset and external parameter entities, if any) before including them.

    Many applications will not need to implement this interface, but it will be especially useful for applications that build XML documents from databases or other specialised input sources, or for applications that use URI types other than URLs.

    The following resolver would provide the application with a special character stream for the entity with the system identifier "http://www.myhost.com/today":

    #include <xercesc/util/XMLEntityResolver.hpp>
    #include <xercesc/sax/InputSource.hpp>

     class MyResolver : public XMLEntityResolver {
      public:
       InputSource* resolveEntity (XMLResourceIdentifier* xmlri);
       ...
      };

     MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {
      switch(xmlri->getResourceIdentifierType()) {
       case XMLResourceIdentifier::SystemId:
        if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {
         MyReader* reader = new MyReader();
         return new InputSource(reader);
        } else {
         return null;
        }
        break;
       default:
        return null;
      }
     }

    The application can also use this interface to redirect system identifiers to local URIs or to look up replacements in a catalog (possibly by using the public identifier).

    The HandlerBase class implements the default behaviour for this interface, which is simply always to return null (to request that the parser use the default system identifier).

    See Also
    XMLResourceIdentifier
    Parser::setXMLEntityResolver
    InputSource::InputSource
    HandlerBase::HandlerBase

    Constructor & Destructor Documentation

    virtual xercesc::XMLEntityResolver::~XMLEntityResolver ( )
    inlinevirtual

    Destructor.

    xercesc::XMLEntityResolver::XMLEntityResolver ( )
    inlineprotected

    Default Constructor.

    Member Function Documentation

    virtual InputSource* xercesc::XMLEntityResolver::resolveEntity ( XMLResourceIdentifier resourceIdentifier)
    pure virtual

    Allow the application to resolve external entities.

    The Parser will call this method before opening any external entity except the top-level document entity (including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element): the application may request that the parser resolve the entity itself, that it use an alternative URI, or that it use an entirely different input source.

    Application writers can use this method to redirect external system identifiers to secure and/or local URIs, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).

    If the system identifier is a URL, the SAX parser must resolve it fully before reporting it to the application.

    Parameters
    resourceIdentifierAn object containing the type of resource to be resolved and the associated data members corresponding to this type.
    Returns
    An InputSource object describing the new input source, or null to request that the parser open a regular URI connection to the system identifier. The returned InputSource is owned by the parser which is responsible to clean up the memory.
    Exceptions
    SAXExceptionAny SAX exception, possibly wrapping another exception.
    IOExceptionAn IO exception, possibly the result of creating a new InputStream or Reader for the InputSource.
    See Also
    InputSource::InputSource
    XMLResourceIdentifier

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/VariableStore_8hpp.html0000644001725400016040000000636013273140077017227 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableStore.hpp File Reference
    #include <vector>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for VariableStore.hpp:

    Go to the source code of this file.

    Classes

    class  VariableStore
     The pure virtual base class for accessing variables at runtime. More...
     
    XQilla-2.3.4/docs/simple-api/classNumeric__inherit__graph.png0000644001725400016040000002730513273140076021200 00000000000000PNG  IHDRPbSbKGD IDATxy\T0(;"Dn)jf] DP\2f4%\25@ӴqCY\@df9?N͝x`_|9s9Ùl ˲(Ѣ]@ ) @R&m@N <oǎ }a[xx[hW$444>>vЂ/ 1bDXX*::ah- 4!hB Є ) *atuԨQJgYv޼yVaΝkkkEL|0͛O>Jnwĉ֬PAqquuu|~||o>嬬,է TUZXXB,,,kssB33:~!ƦUK-[7.00{ٿgϞ;C┥RiqqBǂ}aP'N:r/E"H$>|8!K:~_x 0 s ''ݻׄXeSS痕7}Bɓ'׬Y#_-[9u-\zݺuUUUݵhI$]v`ԨQon Pwwwww#$''WTTTTT<}tʕ-0{G !Clذ!##C~ow}ҥKBL̙SZZzaBHqq]AJJʰa֭[WKKK !%%%}"ooo77 lݺUfe4vmffw++ABopA@5>맥uttϟ??h o@PL/_̲lMM !$##_~`iiiڣBJKK8555</55{$hرc? 222!/_ܼyŋe7ɱ )koGGGp{:::>}pNNNNNNޭ[7ss󴴴#G'$$\ի%%%ޞQ(OWSS3h Y9"t(h]peQebb/--SdVZZXurrr۷+}ڴi||D"]]]sssa=nXLy|h޻wO6R^ Yfmܸ177W LgӦMVU2ۯ^sM@o[GGs٩}!,//o|˗<{ܹs7on [?=i|lweYDkeggs/-Zԭ[7ccc??Jf 0SjݺuVVV^^^f:GgY6''gΜ9VVVo֩Sds,))166\vWXݶm}LL kV(C$7wXk.==#Fp ~hl g0C]<<<!%u |nqFBMHa4!hB Є ) @#zqxx8*4Rfmmޮ/6w)+v|i-@9X~q؍Ft] @. I$DE%B,0h?_"DG$R4STT!˪+W]@ gϦBud" o)"[,;RYYM$ A<^DdzB )/ubTGKbaaDfff"0LPPΝ; ?s AB={ƽܳgOvv;w.^xҥ͛7s/\s΍7>}Z ڵk۶m؏ i=o߾={Ν̟?aEBJKKi `Mcii){ihhuBttt¾0h eY---+,0hPu̚5kƍ`[rHahlmm]]]e۶m300 M}?Bz]4Siiell:!$"ZA f{\͛tP) )"Tʵ1Oߣ\ @  ^$&p}ݱcR ^hS/?v!ʠE&0MHa4!hB Є ) @R&0MHa4!hB Є ) @R&0MHa4!hB Є ) @R&0MHa4!hB Є ) @6IHH]Eܽ[L ]Hx)St҅v!ei퉗Whh(*4ɓ'g͚E hmH$aaa 4 ÈbUh ) @R&0MHahA_~%0;w> nhh(Sd5A CKaY644Ɔw"YYY&&&fdd~ޝ>}z~~~~~͛7 !svvVeu™jRRRR|أGƗjeeu'''o߾]p{ĄtoIFFSZZCA ]v;wnFFmG- FN;AGGs٩}wKٴiSjjjjjUrss_NΚ5k233>yBf͚q\@0y7*P ~nnnfff>C Wr0c| NU{߾}VVV...&M4iƍ_ƍ'M;︺pl(QN L2ydm۶ zC9*///((]2Nh_"ݾ}7\xoMe^[lþ07vؒU4:̾{*f0MHa4!hB Єs$ix<@ څ4a:ulSUI9hU4ʅ OO~gMLЮa<oʔ)]RA֖vw;X6wwDz]4ӟ>|N Ce utx´< ) e;"ËJ]@ rzH$ Qhh NaaEBB6z@ H\sGGF h i_(+{)G$(2@ہM)/v-J=!ATWOW{W[[+**JI!A\Uub_^մ~I!ADE%iiսVz%>>hR4JllD"Mu4 C{F-~$bcӿsPRiu=@eL1םSL8'Պ 4!hB Є ) @R&0MHa4!hB Є ) @R&0MHa4!hB Є ) @R&0MHa4!hB Є ) @R&0M ˲k%<<<<<fTQS}GǒV۱cm+ 46 r劳s+ؘ|ȕ+WfΜf@ [l]:]rv ^]&0MHa4!7n֭[Ϥ|qZn-=}:!z˗[mv^^^6;RڮS-)i.!~~~3/0]666|Mƍ;{ f̘O?^^^^PP7X,gΜ9s^,s'%%yzz;wD"9z3v! [CCKKKkÆ [#GILLz2V}q yxG:Ð \߹j[!cc|}W$e7beR'evA wëo+ݶoΣ^QQI\|Yum6 b{ []) -ٳ"?~shi16Ks="K!<ɓjE ,˾MsЂscU`dkiiT,+a6m{ݕ+ҿNߦYJZ:D*waAzX1~Ajl` O$KiN۷Ͼ}M%`OKG%"rd|H$̙C%h} -׬91r/Wwy/ TT$o]/(xɒ1GbYvEZZ^(Z󔗿0s91c:}^.HX54zs<?.Ǜ7Xxx-, >w HaPԧ?x#"NN$ "bY Uqa%|ѭgw |;[U|~ӧ^ʭo_ RT"/^noo`(o]vs*_;GŀVٳ?HSfl9޼sǎv^GʋD}.ff>0R*,,啍gɒ1&W~.m+(((:tŽ0!a7JU?W]LH~u%K̚5Á@ C=|ر?5}e޶o慦:|_0̝;--Z*yب$knct) %7nd^֫ţ/MMJʓzVjϧX1KSNNё#NyQn6khа]*tum+u:uo^^)-Hź\u6tyqQAA++MO۔vQڐ  z2s%KƴN%/_~)qԈcb~;z̡t0 HaPXzEEӧ^rcQAAyH͠Baɯ5&9ܕ\gỉq/cMVp+::[7sƽ ˜9or,X8`@Kj/H$9w.$&s޼Ȼ +HM}W-Y2fק@;paaG\+.N%c\\hJ4;9>Oq::ZoZ:nIDAT5?n O009l"׎vx#0cKK_N6h-wfP;c{,X0jΜ7@t4'9I/~{!;ͭfGӮix`=mϞps;N]f~Ŵo0mڷ..vKՏmRXܿ6•˗݆t޼'QۇvLiC{.\:ZD 40`(_1L).ͧ 5HaŠxM,nGA ۙ£Gs3c?q4>Ha?|С+enn׮4h )N(+J==X1=sªJK;vɓZoٳ;0=Bauh/UL>x񎎖j${&iCmR.J.qEYmDgEIXmm47 g`i{Y]] !]Uڵkiu tC u֎U}AޥKoccw3% C cIⰰ0Zŵ/"WBާ]ٽ{'OTΓ'OG>)h Oʖ.'ۦ[k[PpuMgϞX:,h*joCMHa4!hj~  ܹS'44KrrK[[6u\0zeeoa``W_cRe -U- )̲lhh ϗ>}z~~~~~͛7 !svv&ܼy3??ɓ'G-//2dHYYYfjdd~7LHHHLLܸq'&N(HjXp[Ceh,kU4{Ak|LLLd/5|!ʟ<}э9޽{ Ü?*0BHFFT*3f͛pZnѣb]Phkk{aV^ktu~ ~E !|>_yږ^` REb¡cǎ0aFbfgΜ^D"sss333H$lbcccjj:|O>0AAANNN;w 344ϹN>=x`]]]KKKS͛7xGOO?$$ŋmll_G?vW3dBTWWw֍B%ɮ]k``0jԨ۷o7m].\hbbbmmnݺ*e+ĉ+VxdkZ5*.j/kR:|pB7/DHn_HTjggw!e7mR/dBB0{G !Clذa׮] %%eذa֭S,!˫<00Q^^~!BHQQQyyyN/^ɓBeB ʾqㆹ97ػ{%PGONN&rR)˲111VVV"wmffw++,VV C@0`[OAu?>===..AsC>5lYnނNNN#omp\\vQQ˲:::sϟ4hP~"##>iii\B '%%,[SSНQ]]P(H^l0oݺebb &W9VVVdz,oܸ{1ټ?SX+@MM KMMGFF:88(Ia٢vvvC>5lYr 7oA+_dչom#44T,˷4i"\wNNn|ghhX]]ݧ_aqrrrrr=BB7!SNK. V"99y„ u;::6:G՝>}zDDD嗻w7zMM͠Ad}X_w(((H$A*{m[bp[O,kU4oAgdd888:\ʷV6& K$>{n/>,{{{A݋MNN޾}{|ꕇRRҁj_` ں{wsɹwްaVZe˖5jҥl QagVVV~'\yx_~cǎ={lzzzddQojufYkӧڣݻ,:::??ٳ{np"+ܹsܲRRR7o̝yȑ/^̜9ȵHL81###>>O>;v쐟WլeMZE Z9Kڅ-[6i$>R~u~鲯FgϞK|ѢEݺu366󫬬ZnWii)۔fYvݻwٳ tuum7*˲~~~BPbx׮]zzz#FV+_"lpK%%%>>>Ɩk׮}˲۶m322OP[[[33?Z~^O,Lf/h)\粮D"WWW}}}D4f!񬍰0OOOV_@!DŪk:BbRtjoeMHa4!hB Є ) @SPlDhen1b&ۺu셞wIkٳ;>h!\`NQ4!hB Є :^6IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_37.png0000644001725400016040000000275013273140077016501 00000000000000PNG  IHDRu%1bKGDIDATh]HSoǟ[馎&X(, "#%慤xa)Da1Q32:!D8'ѽxv.q8y~9߾|spFq7peN_ve>}ѣ`0x\ݜ*+++++>~d2yK'O> #Io߾=~Nn p/p /p }1 bXRFE ȡiO>EAQ-a{WWWfÇKKK6 CBBɤP(ɀh H0m65Z Bh&0;; 8ׯodV!G7!!t˗/.^HOO'###ϟH$2 ԝhT(OtT!ɤh]K0 }}}yyyϞ=S9߹sc&Hv;`xx >>^T~?2.vDׯ_okk[^^&tnPX[[Ǐ^=깹"^O& aSSZܼyr|t:#Z))){{{^ZMa"|>0jKUe/qܜBA @Q4Ν" fM/_B+G.xzzw 孭­-@rx<`v1;;;;Ǐ566644 o߾DʊJ"yyyd28 Haa!~Dr@ ǻqDuu5 ))blLF399Wc Vz<Av;CZZZwwwE"l&?WTAB:N&uttx~JE_E)/(zh9";;;^Ju{xNv(+Ju:۷GGG>~Z-aPzF#(jjjᨯ'TUU(:33H.]xsssMM Atppv@ Hȫ1Is=y򤠠@,={`0x^^IIT*%:::Z3g S|>^Nj. BxRzQ rrr CX-N,n f2/ƪ*VK7ߓW޼ysĥ;SSS.\r'h?cӗ]8}مӗ]dOK[W?Z @C. 4А @C. 4ݯر_}uRP׻g=.|qVQzRSShQܹ FDG/aJJڱqc?|ko'$l`r( Z]]]-gxʕ|D<#KW~m q:p ʕQϚ55'"@}!:9fNVrd2Z}{yRkzyJ(BlmY믿؁c\0.<oΜUU R(=´i37mZw[n^UTTU5XaCÇT*_|A͛{^^^K.m{Wzli.0BBBt?(RRR vrpp0 V`~h!\rh!\rh!\rh!wh^{:p]Hn߾|/n+6,WTTp]һZB#kwһ\"t֍w633… ǎ033gxwׯ_.]߫W/KKw}YATFFFv622RT9r˖-2>Aԩ !O<;w}DDL&*azh4?vj 6ZXX5~`7|[=:q"z}:../33r 3gB\"ƍGYhѽ{~'N|7ׯBF̴6jm۶mܸqn݊b7ŸۣɓƎ /)ybE9!$1qKAAӗ<1ر)!awe9|xZڙ۷om>lV55ա!«WFD\x^MMΝ7\iZ"$$/Ν~!w.+4{9bnnn:k׮i4\~ͪ,BHnnF!\|Y( 1ۃO<~ҥ:(KXB$oذϏi+_4/]\\y̼~fn6KCBBBZO(WW_Ki7g [ۧE?ݻ?(:zu>}~N~R.!…kee}>j8!OV*FFF^|9!!mll[+//~~~n?~ɓ'ϝ;B׮]A^^Ν;=zxFzzΝ;:/NNNW^ƍ/ ݿ_w/ҥ'?]?,+ [dj:99%/ޘ5˿zC.+ UVB*++p111׮]4iҎ;!~~~ #FD&LHNNٳgϞ= !"h̙K,Ͽ~ʕ+gϞݰ[ss}._|\;`⌌8njE_tSrkܸqmƌIII;m5s޼yQQ jOMO?RYYT*BYSP++M6͞=i֬Y&MjNuYXXxxx?~\ĉe27!_T(cݻw6loLLLS/_RH{pȈ5k8pYڕPZZVV6mJ l"6vG`^V3nop˓'w|o [ŒĽWGcǎͻw%M5Cdɒwߍs'B!oB}׿qpK.5 ۷vrbƒ l/oe+? ./6JUWWז;]]yg>>c !/BB-x -#9!z|sq\\DIC;QB!'yijV|j9'"d2!lÆ_}u̙o?E.0 /ԛ0aԩӢ1,Qveg}EE? 3F ZsZ@ی"#@>f̄H Q `k7^rر/u0E.r>gOK4`ifYBR'I.4~Q\3+++n 8ntHr񋲼^pևٳ?1?>~5n6QBEY:3mƈQQ*?t6:6LF}QXXh׮C6F`[FZePȩuɒ=mMM5_m W*l4GF r9}~a%1c׭ewN}O62ga#F JJTeerRڵYwѢeO>9xp/=hQLMZֶ۬Ysm2@"()ya>ojj\TYYC$D&}|&1+3 ZdIg:z3^(2\(..JJ!!FCbc5VÇO觃JMuz#y1p]:B!W( BT(JJVי8hQčײ/lD62\ IH$5kN[hC٩`saiJrR9{v ]RRHˆ;S y<^>nCt\̌:,}0\SN%Ah#JٳSV~t2\ MJp@h肻wΞ=-bȹcnޡWP8yrMN#F>ZĐsA$THR^$=q"M&0\ O?v8_6MZSS}4nWsg2 ̙akmĈQ) ƎT*+C  fذ{R[[ ׅ<7ߛ]E#< zֶ/;)A:(uɅ{^^^K.p<|$ .;Zr]@# qvv'g&O;?U4]=* F 8ӵkJBhtjh?lA 8ckۍR\Bh  H$ycǎyxxBzQ^^N9x𠫫kuu5W5wڍRRbP]]p»w\r޼yՕ7n)))  axxg}fnnU٦f")W4뾲HPꪪ*D*JMMMU*իWLMM!O>ҥ֭[6|pn+77PUUm BNΜ9moo}y>obbr֭I& 2$99~e++7|ƍaaaܕ'sU\W@3\U)))eeeo񆿿YYYmmT*|rBBBʅ۷oYl53;TU!@B.x<__#GTTT( Hdff& ImmU!jz޼y/>xSӹ !$޽{{yÇK$++M6͞=i֬Y&MJHH())ԩSbb[o|6SSS!;BRT*3g-Z< &|>_p[@C~|\ rK<rrK<z%/~B.pIb!$b UА \jMMM\@?!P%**ZXt r3jʪׅА r3OB,-z&pz'Orr3EEb rr3Evvy<ׅА yAnݹfY\\9L7tNfh4إ&C.BTVV`‚ 3!L:M|1uU>_crB,-FCgȅ?ۯ*=PNaFj{@.iʔiuuSNhuJuOÇ#@!dmyԨ=55Cziu6B.% oTkoV}ioC.?XTdffhoK c^_llxy~׮ry>]Z=DNap72Ymç*++Oz)[yIɣwa?Ψ9}ۆO2==whYZ\hDPY3+ر>.iD& ѣFOprvv)+Ӵ; 'rqǏR_e_~*Ys2MM͆ rځ\h\Po/4Tۣwܵ+vܸ!YYFyb !裪ʟ~Wޯ>]R BRIh졮N]ƍkkXYY{y|Ga<O7GܛJq P~b ϯczxԩ;w ;-?r/r<,R?PO$jn.H$o;Lo%v%%%dn"@0Xm.&ebb\`x< VŷD@.̛&}EMΝz>@.>pA #5 6\(/<9%hr&=bnnN]m@% 0nv{{s@@ hD\bd߾#͟rq'G [ ;P5*@ MZbͨQc'Z /°L b>A.4'%ԩ3Т\_ /0`ժZ)@; ӥmr1 *r} .BXYYBWQQm۶g(mA.4ͺu-[9w\fѣ8- }y)me3S Bfa @C. 4А @C. 4А @C. 4А @C. 4А @C. 4P8sL!'~ |}ȑ/q]@fF!\rh! 99yN ݺuOLܒn9BmW6;d/Bw]gC=/ 4А @C. 4А @kyM/,^Rh=$ThIDAT@<&-˅rq5vl.zh4Z)/ 4А @C. 4А @C. 4А @C. un+IENDB`XQilla-2.3.4/docs/simple-api/functions_func_0x72.html0000644001725400016040000002524413273140074017330 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - r -

    XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp_source.html0000644001725400016040000003517713273140073020435 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocationInfo.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _LOCATIONINFO_HPP
    21 #define _LOCATIONINFO_HPP
    22 
    23 
    24 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 #include <xercesc/util/XercesDefs.hpp>
    27 
    29 class XQILLA_API LocationInfo
    30 {
    31 public:
    34  : file_(0), line_(0), column_(0) {}
    36  LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
    37  : file_(file), line_(line), column_(column) {}
    38 
    40  const XMLCh *getFile() const { return file_; }
    42  unsigned int getLine() const { return line_; }
    44  unsigned int getColumn() const { return column_; }
    45 
    47  void setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
    48  {
    49  file_ = file;
    50  line_ = line;
    51  column_ = column;
    52  }
    55  {
    56  if(o != 0) {
    57  file_ = o->file_;
    58  line_ = o->line_;
    59  column_ = o->column_;
    60  }
    61  }
    62 
    63 private:
    64  const XMLCh *file_;
    65  unsigned int line_, column_;
    66 };
    67 
    68 #endif
    void setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
    Sets the location to the given information.
    Definition: LocationInfo.hpp:47
    unsigned int getLine() const
    The line in the query.
    Definition: LocationInfo.hpp:42
    void setLocationInfo(const LocationInfo *o)
    Sets the location with the information in the given LocationInfo object.
    Definition: LocationInfo.hpp:54
    unsigned int getColumn() const
    The column in the query.
    Definition: LocationInfo.hpp:44
    LocationInfo()
    Constructor that sets the information to 0.
    Definition: LocationInfo.hpp:33
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    const XMLCh * getFile() const
    The file that the query was parsed from.
    Definition: LocationInfo.hpp:40
    LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
    Constructor that takes the initial information.
    Definition: LocationInfo.hpp:36
    XQilla-2.3.4/docs/simple-api/inherit_graph_38.map0000644001725400016040000000032613273140077016470 00000000000000 XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__dep__incl.png0000644001725400016040000003620413273140075021140 00000000000000PNG  IHDRlHJ|bKGD IDATxw\g'=FQAZčuխ[T j]h+Z'q*X)K 1 a$H|?q\r+A=:dL"&Ab!b%XGuѣG윙9l0ӧO/_TÆ : 233كuω@$D  L"&OʕiӦqFaH]Q__xxxL|=,❞6m۷}||/^|ҥ??}4Ŋ^dɒ%KY,ֽ{|||.\xe5kK.EzѲexټy3:S??s.[ҥK1/ \xQDH|Bdɒ'N0L3377Fϟ?GGG{lܹsMMM۷o_pРAZ/Ԝ3g@Vf1M4ӐZ@sss[[UVݽ{WLsUUU*piϟ 0ou~D"4Ǐ&脁ߒ\ZZZ$ݻw_7ÇZ[[v>2%u/OmfB03A] Hx<UWW ǁʲ===ul6@zu:::ǎC/)v4P'N${.v]޾{ݻwO0d޾}Q̂u/UUU 4PYYffBpF444P(;w8;;Diӎ?^SS3gΞ=;..۷o߾jkk?=sE'O-//߼yիWE,ڊN\`߾}/^(//?w\jjUL&bDhiisByfssÇ'..n֬Y"fBpODެ[044;uw~WVRR>}kkk mkkspp\2***!!aڵ?b+WpSLAKdll_/[֭[]]SN||A3ECP< H,0@444,XЕ &ƍ2B$AX` H,0@$D  Lf|)33(AG H( /S_y/_:)ID6'''sLp8h||A55khnm-jn.`i7(ȨUHjkϜyr4ZȦMs6m+~^UϜyAzonj(~D$IFqg$'c2mmg´T%R~`[ L6H`66&/$%H 0@bpљO)) ۷/X[IU}ĉl/N^b_A &ܓ'؈86$iTSS`[$'&XlޙD"ܢEkΰ1`uP$uvlF<='Hq~" l6gDa!z!d7֞=Q15%xFF:~~SD!-FɓҫW$^/$L"P= <|YG"ؾ}Џf?D"n7DI'n8[08+~ R::kL#["`kkr I`zhӦ أWIܹodOV" FFZ.kj^PG`z7 &L{{3z54T6l!D"Dhjj MjkOL"PODFflݚ8=11`t`;w.Bj8"D&>^CI!L"P w}nٳ=zԊcN0X 1(+lATTZZa]Sd]" Ɂ@fsnB&:2;No߾=e͚CK-$ GJk4|yI:@0@]d׭KsIy:>}jrwnll|yX`jՙgޞ9;iFk-+x1`X#`:X&$>HRIꄌ p_^D,Yruj e!*i٤gX#=PJKk]] 4/^ 00:n#⤣aCbccT#OݻwcT:;G lxjIpzM2TUOXS#D !V?~ЩSUUG\kR۶Jk+矗tcg`ݽyv.7#z{|Fk=zԭF*PL0@_HIkÆD zǸҷhHMMsMMm>pIx9xδ۷:ޒSgάCHL"п"#3cǂiXһ<wԡX#m -(mmMGV$}}OV]Jam A|0((%`?|Z1woQDK#>nz5X3@Yx 콽co(:Q8 @=ꪭxM!.QI L"jbLLt-|p8ܞ= BBZf ID5;v uu;(f9mW`Q/M<$&lD+&kkmؐHzܘBz- ˖R 8GKmۮ,_>駟ծ*[ROttXKB rUODhU6H: >=brppظq#ց("gg皚˩aXIIII`sXXX899a$.؉}Y H$AX` H,0@$DN 8puXXX[[[w )++:yRSSsرiii= Ybp8\YYQH]PK&P@yy.e ׏9R]]L&溺ݹs[vׂP]l/I>K/vիWQFwq//'Np8z+.```p M6-..Ç̙P; IkA.^~{> mm(n/N2ݻww˸q+abb ,+,,nhh@WOIIY~=oaaatCC CBB)wE[[[==_~E0$&jdddhhd2]fffFRC inn[aeeE"}#C544 noo:S"/Bgه2dĉsrrЅE2",MWƀ5jʕt:]]]Z*}SݹsLEEe֬Y@痖rۇF)++VUU%$$>}ĻwСCÆ +,,,**?~|HH 觚Btnj3޼ySXX8|ݻw#pttRz9xe޿_XX8jԨ["G##70|C={vIIIvvݻݪ2iwL&we+ #4GVWW߼yi/#9 ??Z̓ ]`޼y߿u떾>D$!!aذaG5z[a=  駟N .^|ٵ^l6Ç*4 :455KtBT @(..FMMMBtA޽koo J577nHff& l6Bt2lee%t&kI/!C={s2A ~7_~]hiB7*n obgdd w8p@hkR"zVω477_~iǏ߱cGXX͛ySVV.))#GQwשּׂi[[[[[[D222z7|]ٳgk֬y!BaكF[YYUUU7VTTpٳݻ]i <[[#tfa`ف6ZYY-,X̓WmmmG @ ,]455޽{111Bf*9A݋q8ܜ9sX,bΡyyyQQQ" 455@ 9rwNHH`2FFF3p~Tjvv62""b̙6mJ ~GJJJͱ}Dy/jzH$ZXXpoiiYPP}ŋk,ͅZZG]䔖4i$sssK[=hjjz{{ܼy<+++$$͍N3 eeְ0@SS\^^^۷o/.....^nzC//={?~݆\\\߾}[\\c1sk\t?ݻ¹sFFFr8__ߠ{]~]pFͲ~gϞm۶S>bAAA7nxmFF wW^}׮]k,$6n]&Ob~'///L,C s",kvvvjjj[limmEdN4ISS]ѣzzzQQQnnn pkBBBLMMuttxσTTT8::jii7ڵkܗ(Ɇ q>:F[bDonn>qĈ#  iii&&& o-by77`V3E*9&/ :TUUuРA۷oonnF_<:t萕Ƅ  ^F9" J4_YիWh4t+OBzVĩَH9Ѓm۶w}yIu+OBkkk>}tbb"ֱKω@|2SVtrrrƌv}^Vy~x3 G&.GRRo2GgAbI $AX` H,r~ӧۓ8@d!khPkcDKΟKѰ IkOML,NW~BFJdgg㣫+f9L!س|Oime\qiM1YG;VPHx7q,-ex=H$뚚~JmAgy?|-VR"Xma/&^sFGgX,6:H$ 'Z,5?*)Lȑ~a̙_a;8`>pO}IUU鯿4$U%..'fx A0U?~֭B"ϗ>D"~i۶͗l 3…kBG1P>Iz~޼o""A> [׻ew{-kz+ L"da=WDd}}M;iq J:ﳀz L"×xyMㅜpR۶GE$pOUUP$>D$ 4HldK7hܸADJ$T<54TDAbIDhׯkttxVWݾ}>ŽKR]599E1W`hk^tȿ~u8\ID\ g9))ky"uusV[|p X>|::F+W)?7q'OJ0\U1RIpʺ޻L11ͳ?$&8:FjjjaN7_u[;ߋy0DyE%%Jpd!GzzN8wF@ Umo|rt22Ҿ|y8ۻw)H << YH}rrпx_KKpĂYqc"vss:"H&$ %%,-%$kjOcCC穫+$573Vu8I^r kgp]~u8IK\]mlϟ9֬}{Js3cv  7D:WXXmoi_9"g"߲%A;`$3`_85vx_ --3kOrs==O98 ]!x(n]9xI`K!>=Suj P ث)iii7q[!HODOx{Nnᩤ$Q r?˖/1 m`"3_ӳgT7ޱ&X:\AIV<=opOww9|<_{wfɒчs*7!Cϟ I?w;8_aURd.kk/ I_ׯ[2x]S7o>99EujIF?zL"p%;He%9JEEL )I\|qժ)v-:SOJZclܾ-IDATǔCѯ>\n]0t`"x hNIŧ!!f]>SS>&[$N|.͔FFڋ#@Ss"g㕐61xz>B)Htt֭ɛ7σDќJDؽ{Tc+U\0z%@P=Ȍ?fIQSS>wnYu8(DFfws%+W1%ќќ HQgw×-_>X !>;kÁG!""2vqqu, A;"#u8t)ݺufK! K=<ƌ'J w}*^eIMϻvVSS$2邔NIDtm EYDz_Vti;@GRp8hb-/$B@` H,0@$D ĒM$sӕ7o}'Վ-[QFmݺ}u޼y߿u떾>D$!!aذa0|ZWW0{쒒l++ݻw i#`D={ Ç6ёJi4oUUUBBӧOnnn4-..Lbbbx AC 6h!!!l 1cƌ7o>m[){Aooo? ޗN"gѢEӓ;ݒ200jGIƦ{=jaa! ,8##A233Aϼ򖀾k+++3;mD:j a0^l6Ç2 $4:thjj*Z˗/i a0755m[ҁ`#BR츟sI%ދ/fff޿ʕ+L]]]cc|mllD;1k֬oߢUҥKSSSݻ!4ZSSSE#X[[s1/+--^mqssKLLwsrrJKKKJJ4iЀ^D|%%%v> A'O~5秵9444///**VTT… 9d2ՍByy9:͛7fffBc#+++#""fΜiӦ,te̟?ԩl6Aagg憾8tiӦ_޶mа]񍍍Z`ppcEEEAA׭[Ƿb Μ9ÝЀNCC;mڴ\kk]v ip/fff.ZܜN6ۧR8=;G.KNs=,,ήhĉ~~~b>}? v q3ˋ mG4553{fϜ9P(׮]C8]Kz_VH,={VEE9x<ʕ+t:}ӦMÇWUUBh+V H͂WVSSh.| ```*tf-&$eaaQ[[˻@ѣzzzQQQnnn-$SSS777 ZZZƍC?( 奯obbaZLI455љĉ#FP(det]{{ӧO{jWl۶ݽ =׳;D:ݦP@}eE%={UӧO'&&4:9m1c~]_K[[; +3eHϚBeK{"gԩ bhhݕ2gMC>D D  L"&Ab":L) -hIL[G xi 4#VV6clvE5}Y!ۏ

    32R_nE)M~wY٧)S23 bu8ҥ2Hx6f 0xϤ{sͶ<>'G$Dc@5m HXQF"k"O$Μy,~id8$%=c,\cy&&㔔-㜝۷LR'h" bqJ9A.]ʖH&d5\$ WaۭЃ^xw"L"ٱXlQɮV1pQW fGy(۷$X>$M2Ds(zvv9VȮ/>3۷uǎ=|u|{-[6F"[<@U@R#I$-- OK{U<(7'n֬ gϮw/i,߰a6 ǎI!4IOg0z!7'ZΝ[uYqϘjA22^:t3ڸqΈ؆T]0f̞^QIEE~&duAw'w8LիyǏ{ߏ#?/*()lmx|.Z4rYb**RR訑H꺺G_A'uCzHDxf-]>`%%=;v쏺EF^`iiuP,- 6mʕ  2Mƒ$TK ҥTj fbTizUuX`mtz9'Nkia_n6Au+`UTjӏlIkNՕI&Y쩯=$6!HXjTmm5!IJmA uL"S>X]]oZZ='dYld&$dikm8{)JX%$:JmIDv$׽_A&l߾yDPzXl돑W晙×'eN{" -XL"}ѫW'O>HK˳25YH/0G"i453lA&^ܞjl9:XGH46eL"&CI0(D$F>>y!D$@>==4VeL"b5!'CIACC.Dz;Ԙ?~9A>+`6j 7x2 nݠCa޴*`PcF=&M2 &N 5l`xoӔi0tHa>x8#`B>I.`—C4.+`C=z5&}f|!gƍUUUF]>hbS[^VFoh`J"=zTr//hi!meE%ΗaXH"8BppmmuuVoWTYY= &_d3ց:Ù 6(JRRJ0aBRRJ$Kq;  L"&Ab$RVVX@)z\W_S]]nii9vش4LlU,f,$z+nٲ/ GN&sss]]]ܹӭB ɜ޺c}@6mڴ8߯Ǐ3gN p8ݭgkA2{{"׮]333R!C477s8[[[-- &~hdd HLLajjjuu͛7h4MYY׷*!!'*tJtttMMM||FKIIL[L&y999999^TS(1cƛ7o pttRzC:h@ o-@~~~t;L-G;Ze޼y߯܊~u4ҵO|vRvvvv6lٳg ;wNtiooNg>ݒP EIIT*455l$ .--E,,,D&VVVԠw޵o233aٝ7StI9P(J* 迩h M]Qh nIDr۹U%nE|-{(RU]]]/^s ى.AYYdܹG>{,w>H$҃ͧNcwjmmp8 eʕ ,@Q wkRق =#L .6l@GI/.Bu<'AX` H,0@$D rIENDB`XQilla-2.3.4/docs/simple-api/EventHandler_8hpp__incl.png0000644001725400016040000015474213273140075020036 00000000000000PNG  IHDR%bKGD IDATxy@L35)E;(-&["%D׾D."J2!,mZ%-ҪҾ/1ML_tgjf>sPEaQ@a/(X@_NNNX$%%ܰN~JֆN*""uQ۷o?~YgZJOO˗/O8u {#Aa/(0TTT wUTTPZ,J r5qqqڶYYYuְ06 @aAD@@`mB477ӶM Ç_N}L"Bbb" ===˗/_|GOO 111666l߾A+V wmٲdʕߧnM ~zSS;vilԁ4KK>ZYY{!{/_~UơAaA100ݜť Hpppee͛7/^vj#_vwwwppyfKK zz~Qm۶yzz666G֯_,ÇFK^zo%.\sRO555?4iR.~MZZHBBBp7JJJUSS3Fb00W+**VƍtimmnS^ ^WWǏ?M"={>m}yig~VZrQ+m, 466uVkk#_EEE %Ӄ㻻W7޼yS__g_f{I8\vӧO^^^FFFl,@ٱcG-qqq xb?ڼyk׶lقϟobbb+W|m۶֭300ؿHHȏ{.[D"ݸqnG6@wpႆF[ i```eeE8qgzV;uPQQammM- K/_|k~~DfggVV2ElqeeqYYaF(0\QIIlV5xZ .Ey{'mWTTYéh4Cé`FWUUӇ>|𡼤A!!i$TT$DjQK--; d0̛w)мRWG&Sf̐16V15Um00|PR\\UM-*jk[RQCbb0t_ K22J% ]{44<){*2x͝qqϞe嶴tJ.^jn>}$FѨ#3,9(+<-g4Id1EEQ553dɸH$rhhի1EE5S1А~\ueFIF~D"ySYvMM˴iKN'4~FQ++,#4=4#M4ACCztiuui$`hl0ۻOq#e鎎F"#{II退ON ~!3kjZu -FDyyU))_KK )TT_CCZ ihHsct޽.ڵso]TS:~w[dDbfhhZ]]LA]TdFIJO/MN.JMRE&_,7(lؠ} /Va_\uYf KA3gtss 1Aa`n%_23˺{DEԤf͒Ғ>]Y>Sii+6ݲE 摴]M:;I)ʢE,,zQ #).}09KJʗ66ܔ)bgO9Sn֬IXd7nĆM(hg7s %%%q75Xׯ ƍ63S߰Ag4 s,깹9M5k̐J i7':;1${ŵbVʹ-, Cb #%)sBB~r*&ֶegzY&1h+y@{{1==yfϞDžu:zC hl8o C(4s4EJ2߬i+~}=A0͇ZZr۶OccpAaO9/_~P3dULM&`mbyΝ..ĬS<<۷>͒okke5n(ÒWZ4e4Vo8z횵t02iG\zz U=KP~!22HHI2~U^&//}+4a~AaWWWOTԇԸ\.ccACOO f,9O54ih|y3':<<}dݻ5< #U掹s-,fdf4ߺu7nj:s()sw$++L{AaU]D$f>xUAAtjUf:0O$<u N ^QQψČi$0W:CQ237װ9k$s.^|4_ssꑋXX: ˫rs{9cKttN1(EJۻW22R2:ioa)_|ׯ "()c3PWUߺ}1 12[[]66֩09|PqkSpssbjT#vv11q8 #C៖v|Ŕ::ܢ<<45e{zmJttδi[,kSD޼O=={<7R__i۶# ȶzz(-x<{lϳaFuo]]kPXzz(o:w?cu֠0(i[T^^%w)+O:Wwww||L݈dznެ kua.""sV:hQRR 5^o{ #11/\p}&X~gb"*NNׯIJw̢GM6beP rjT\14imYY/}}*b(ַ~POŅ70J$fbdtacY[kGF:qq,tKf<g޻wϞ}}Ū0=K趲RL&ߘ㼼\# ̳g[IM=&&i#rzŋs󏕈3gҧO+W^ǏwxymuY㑚eA{G,…||\pxl䝜|gp!!iIK ݸA^gC"}}\dzmq_NՈ٣ >as8NAA.NQqݻw.]bovtc{XgJKoϯrs[kfu@Od>MkݴIp1#2ro}}[J #袲q}k#0p2܇H`71Q{KMM}.8wX!!>753 @oF@@Rqq0Y}|6_os@3$Wg~K޾=jTE0?>@iiMQSp8pڤI#} jA˓8 0]]E!!'O`4p8g7nlsZZ:N/(/>}4q͚ڲes! p=*44tٲe ԾQ  r620+tʷo"R?*** fbi\#(*-R^ހuA 6l߽agqq-mG$00mPdɒp ~S];BNSH:5O⻋aN_ьRpkjjwq?WY__;.!!Ѐ ȃ(ʵkהǎGy`(""b<<<OܽΙ3A111$YTTTDDٙD"!Ἵ'L'''7nܸ#GP"jjjcƌ4i_ X`{p8ܽ{Ǐ#yfO[[[yxxhShllܸq}:;;z_cǎIKKO0aÆ Im*,,lʔ)"""]]]?{a<{lo>MFGGAXH4%%5>,qԉ 2)Hd?Ӧ:g|ON!8ca*QQѤ$Eo޼)""_>yDRRAO>hnn䴵-//G۷o(z{{{չsV\YZZ5cƌR3] AիW777߼yAV...۷oBQBݼyEC|XXX444xzz"RWW/$$D"PWQQP(4)XYY|9++kڴiǏSm***YYYٳg޷o>q~~~bb<5@/l? 33G}OS?k`wEu 0{}iaa`?}F@BB…礥>} 0jhhTSSSQQw¨+77L&#Yre}}}P)))UVVRGGGkhhP3(qAAA}}=Dž (JKK L/Ex|mm-߿G$;;11/^(jjj:p#?nvv>Pcyy_>Lc?:5 IDAT~}L7'u,>C˗(Sig% |qUXP('NJJ:ݽ 0o(*qp]N-# `oom6ꖢ" n3??DSSLJD" fqq8+##/_mرpppy `\\\bb #,,455~4mĉ7ξbŊǏXYY j2VVV^|r"ۈ5^Q_6|66sʋL =A\\"0pߟ>U޻k8s]vp޽-3p WvvvNKK~:ucdd ^А:::(JPPP}}͛ B}}}@77qrr6Ч@dժU!!!>7ouPQg _>^'N,..>pqqxsRQ O-w{؏MlhƆ35U=kqFɓatթ*L}rHU[]N/WCid2ԩSbbb(9sFDD$44ٳgƨ={mY[[WTTP{sHKK uEqqqffٳw؁wtt3&88֭[cƌ8vv瘚o<{zzDDDDEEܹFO~BBB{S}5:;;7qqƭ]]ON>^^^222;w oS?k`Zɔӏ] `ӥ NqO,/\xZKK̙JJجtW^=F X~С{a᯦ߦÇ---Yȑ/?%$u0XDbm<ر##@_(:Ɔ_ggׯ_kҒ$30b"={<ڻw  #}|^kjʞ=RY!nޡP9~<4&a{xņ s1߱ӧ$رll0vk"4n݊ɩPQ֮S]_󚙩ӯ#(h?~YBĉeX'ь2RR30b:wյ?aٳ'ѩ^]]=/FuvWXAUpff:VNXfdbcW:u?}Vɓ˟>3}4։#L.;{pWZO*~guu=IWru]%!1Z`ps̑:luu""mf@Q(++KLLdos]LM&` ESS?܏EAp./^|?Ϟ"AbUQs3W~`R::hV_?۷%޿mh!%%gSג%Dbk,l8i81Ecc33gV ahtijj'3IͭTSia1S@g-H \g͒|yoI&KQQl1s*31q{љ˗֯~"a+4yyG5__;CéoD"[Zٳ=0葛[i`whY赾(xTGE:Fu_sKK3*.yEZt:2#EeˮrpA6kjZLLDݳɕ )靛7OXU[j`𷾾+\lYYᘘ}P gҷlzu#\!B$f_|9 ۜ0aצϮOi,`pzDDL:.aa ,R<N;p0; lf]Z[BCn~W&yx<6򌎃p玭47Pa>z 99}?8`b(޾''vv*/_j\\"N9XUU HUa8,-g9:/-Gˋ()Xq9L>wɐ[3FY57w:9=xƻva=͒P}"UBBxy:pgt2StRwBz a AA){< sjGR~~p9)={ uv.Xjc!>>߼9u#TEEl۶ӯ ..͛6?;uH^Xtz]]kbgXJKGGa$y `>AA)_⋉7㰎֋#g$d'TᬭN[t@V8 2:;I16V9s0?,^| gUuv-XfD?3lUɓaړG*BM^^`BFFHUU2<FXǘ1{߻Ko`t==[[occ0GXvXZZ:^ikP/$z} 0Lq0&=j~j#5aOd r]֬-'7ܹgu ngw'3˖:shu+D ajP:`lꛒRQcau.JXg4i֖->ϞQS!PUPPmcE&S|}`;n٢79a1qF$@SSuu)/M#AQ^1[y O #$!KN.208MÄ{0WU~j֭XUEsF)w٫Wy(#w-==?&L;- (FG瘛_Yjccf88)lݪxXyyI,]:3>> ttg̐x90LDhxzIaH䀀 \7m-$hdV̈8/trzW f̐{X ` ]^^׮Yk¤X!ﴵO8!Ν3gakXN&JK_nAA89WX%%: ag]]=XdxOW #(JKYYe!!;/~C{{͛/g:yhjb+WŰ5\ߗ<}uRƙx4>MݙQ ں?a;;n@@RCC/wCxxbb޵:hkz EKKڵsvX(*ʈKy ˖]`,A" 89!!;b4tiiWh[K뤽]{9Wߘ1C&4t'TEBKsO4޾=|rft%v75 Xgtanyvg' xx8׮B (ƂS߾m˅u&P_vb̙'\NI9z]%HdWק3?'H:u]FOKKh@A4Vci9Ʒo  #%/Ww߰A嵌s êkx1R[;lr!3s UUM΋S;wJI`%G$½iFAAT]]ѣԁw" ꚠǏ?ԩp}k9r$DK뤿;'E\t~J3:z2>Y ,,fFDdu F ^^^uVWzT鈈Ç Gxx8EGo_u_5kҚ5y܁u@cff]]=X4lٌ42woI6p[W&;9{wV- 5/9BPsb؄ c̙3=!!>==BB<=7aAu9{- ޽;dpx]f0fA L8 `F3_ʯkPC"DFf߿`l< 8땶^~nb{M<~HMgt% s*8D&ShLDy#ALegg`E<̮}۷8̝+uC]CGlgzyu/_SK))_kkO64ujQPP}^"A-ϫ-O$fbYrL+A{Lvqw\˛sk e%:: 0UQV8qϦcЗK߻WT(22J-,mlDD;jtW"$%ǘ N,u@K͝X4`.3Б듛7_^benuPTTd.RHmJJẊ_9-dz;8xaagg;qbӧY Xg4cjhTё,# #@/nnϯ^}j8"R_.7"qٓ܊7첲O쑗Hä;`v+hQS"ȹ? #@7n]ܹUVVXgX{{ mӏ=@ 3F}5663MMΟFI#ab2 Abp**YYܘр?mh^E \~|fr{MFɚWdzC6nԽuk# ,oI^^| ~~ iGMMϯڴ{ѢieudeXqm۶[*(ȋu(W!p;|NtLF,\ի6ZRSǙA04S]lm}KII+]M?45D"wݼi###u(]A"p7n߶MDwI~~Udd6Am,ZPC:/a}Lѽy7嵉FC~Wg'K45e nn>846eؒ%p҈eq)i,FFFQLlW\\K$:H9r$e6; S&$$TUU0cjjnoN4bbb?"##MMF2ss G{£#UqpO0v( =]NnYFTVVٱc_ԏ5f .a0;v޷oɎL|'H?)bӮ]{k06ɉ7۲ >a( ի1okjbeP/'ZrwwOx͛6ï DYӊu e u^FFijap+L,FR #@kaa鮮OOZx*YFDz5nnk""v ެY45e<<^bmaMM A#@c99NNvv7m,&<xJ]] ,tTUkc5eثW;;3_8G.[آ"aaa:BimD"c `*29 CnWG{vv--ga^}__ۄ]]](ccc)J]]iai[lm54Ýެ@HN.4V́#0MM7QQ8|uzy3g"nՋۯuhhh@mmm ڵkcǎ֎! 01}tqq9s "&&F݁D"9;;8;;S7p&Lpuu󓓓7n7Gd IDATܑ#GGD551cL4ϯO_ߧIw}DEE ={xbXXؔ)SDDD8_O[X-,\'XwVILLXY<^Sӂun޹=6xbA_Na*QQѤ$Eo޼)""_>yDRRA͜| EQooo??~:wʕ+KKKf̘qAjk677{yy!z7o"R[[QYYym<}_ hݏYssG;P066OLL?~x-gRgqii%?0;:Nq/^|~#F`\\YL2>L0` III55/o|}}.rss[[[dr|||o]r~RRR>РfNKKCQもz .444P(2}_ !tKEd2ujYYY8ow #E-co')+:.2".;""0%*ꃻ{* iXVV٢Ezq<꜍X'{{m۶QihhŹ899MLL455}||[[[I$@3p8gdd˿];A>KLL\`ABB`Zw?8q" llSPP>PRR*//`# mܨ̛<4ƆCLF0TU599XZb ;;IO.ybK ڵk{n蜜[XzsZZש###MLL>PXXLCCCbb/vttP(͛75~VSDS+m+4ǍK`_HfzdUP_PPG{<,;0 C^^DBPlmmw" sXXXUUUddnرc-][[[VXdee20366~Qsssww7} ;A~qЮ] SRR/kk6''~͚~~o}`fVZVVu@#=ͅ dd}Puio:}(!fy9c]%Wwww("..^__}I999>>>mm#^c㥤_vZAAASS^z$Hnonn޴i}[[B?{8ydNNN%%~Ot7ԧ%###,,sΎ~75F(KI9tw(+ `w(O$%YX<|ӦyXgO?lm:tZ8}pիWBxkgÇ---"ot38=0'O*>݃u0,'174a( TSSJ7`;heusԉ/_g}0? `ZEݻP(?e荺YTOύvN0t$--tP.$ EWWQHMc=Py{'DG\b%(ȋuaKKK˃Kcs`Axxx f#֭gy&tx6p7@a[wLvrZu0tll%KCCӡ0b ]7^Ϻ1c82XDbᅚ'OkUQd2%::[Mɓa&MxhGjCz^-&&n&ZJ+<ܱB\'Z5 x+4)?X|v%%ugDi8csuիJbԝ;TKƍ[[;/^\qҥړq_땞Q"^==o]b5첲o EKKNBB.f 06Q(eew6:ˠl}T0? YXhuȬ_yyUoӼe^^WW

    EF~AVi]@COceeٸq֭Evr~\X%<Xh&.·4dgW89-Ddt.)>>ۜ8̙r~nNNUEE#BdafY]k5Br&t^s"]]YСo|;vl޽Km^T|˟6z- fBZ<~AEE@),N5KeeeZ:Q##%!!C RrrB11Hk1\<3>7ϯ61+"brEh46**w͚./ovmcnѿ+jjꊉs"_:{k,,ֶ!+X̴""jcf V`&qqy7nXMNwYkޕ|ƕ>gDggW\AA{1ʾu\\S֭AZAМ9r^ah͚k3a,,t -@ffZmԃtd̙ ՘40{C/`Ƥ̙msLMg'V#k؀IHGGPU37\+#''R55 EEPƸc4Y8>Ý=kҽyO?>|ԩ5TdfgdtCggtBJjҺ&Ld䗖-[#-?pqMu25nvd,Y;=2n)$gR|>}* ʼre#//t ʕ+*]̴Cu0!!Y5KM=l3 ii$i՚bbtW+zL u+i9B#-'BdfVCCGvvBҘށ#GVjZGD7 mmG2YSSg>uu[Xܽk&(r,ץKB j*!hpMM+ْ9Hkhtyf"0asnw H ,wbKaPvE-N͛waV;w61+ +ECCwuv>4rqqy0ff_(#SRR'VfR]]۶<}zfLT{ '&<&3󌫫)wkBB@ AZHsvv㮮~ͺu:==IIEH ڵ:tff4ƃi?0|TZ 6lSn ([z[6>rrZ8mҺ(ӧ\kh"-d\hkKGFҳi9c "c`i!PPVQEZ`c̼xQaE399U1l|a}}ĺ$Srkᖤ#s"eBxu5%%Ѩ}mm=ڑ3kj%' -@ffZ11y XMc0P+Wbo7RWG>%::S]]"2r?#֥ MMo[O_)!ᰙ͠Dhhvww-]LCiiPg q}:ore>La]ܕj  ` YFxo܈߳'77mbE>ӧ .o t4*jҺo#KIHGD2mڻ]ΕGZ,f5K<&tzd01bN22CB7 &=p{I7nX9c<3(h46 …h=>wNUU i]T'%i!$"$,$Ľ~zʕ\;.11!h4رŋm\_mf}Py.;nvvwm}WJ@^CC i!GVV~y9^=ZY]&0FLgRuu˕+naOQQmx,P!DQ&&>>yZAAf4ʦ"-\_UՌijJ -@22gK} `{^.##V =[)Ɔd-\xԩ0ccՌ3V""H5/WGZ!,̽qgMM+rr섄 蘛kX 0FɓRR3v\k FE헐GJ[E)tLGG#66&y{ g͖rL751 LT3QQO/W|7cb.^|-hٔVta*x2mڤJ2cll,7z66v"-? )+4FGZZ@SS*:tzd1b:;Οћ?_~~fj7 24`` z][&}}Sq" r`6=lkAZXZ3..aL+>1 1ׯ>==Nݳg,&&7]]_LI9q5u$o**m3BZU coM\9jbZξJ1 ߿={i3~4 ]{uS2PZZu͏^vsgd%ϯɓEEDUVT4 舋HƂ4#f`pX+y4>磧|N)ۏ 66OGhsPОЪMut߽ӧNN _O3w^r8`33б!ƈ (re#װ1^qqy;͵h94u+a|w_1.RZtEss7nkkۻ_BobuQmm흂YrvEEcqqBdafwƆ irr%~4-pp&8xMh46((ƍ 'ESÿt`8~h`ff޽xJ )'VUUsʊz?g111>]]٘b0X~w)669ix˖{T!BP+V4#&\낾>4BccSRRi3hsgm>,ESea񏃃5$cs`rs!\H i-ЪUEEu `i߽i0F >ZUUƆv={6mzP]yz66CmEgimF䫱:qb5%VV{섅y;;3-1Y2;W.&Ԧ;109?\@릦=錌ܯ$JA޻pᵼj_!! 9< hk[txy92w Swv<ll,+''#@̴޼CG#opLIWW˱::2ҳw 2r m%Ro޽{w@xhi`cXg~lǤJv|3Y%K~\ݏ Yߏ{[V JIdܼߏ>vlmݼQWWD>F_[ͷ5k4w2lzs (OH^F̑;}…(55%KkX`l< ~\fb qϟ;;+jb#Tw ɹ賱y")}v-NT70pg VV>>ΰ0!!n%!ȎrsQQ^D4 rihH%%cĠԴ&$eU+=G:#sM};;6o~X_"-YYǎTV69;/ݿ߄ETYYY899BC'q7oZڻ?$d/Rcƪ/^d0L0/@Ҭ IDATAb\)F} ޠ{{~j CyEgDXX3cD7WWSH ++K`NJ9V[4,]:zHFYYP d#z>K7mեzuo?BC/FFWsݳ uFZFc(c9bNݾ:3RBBE -_>krIR@qnbo/dhΝ߿ [VPOI9nҊP(rۍ/V9x"͋YXPK$%}Bݽk+*KPFɓ+s ѣ?N11_.QRRÊRRR(XCښhnZsa"?( 떖[^Sy\,]U1` xx9F#$_31bb|[.@/F:2JCC!o;v)c^RSSs!chzz0T37n߾]SSC'V9nn5{$m x* *%\CGUUm}9F0F CNNULLӧۨP߉O|ߞcb;w|_oiiI=a%$$d<Ϗr4ᙪ+\~nFFX:˳cD_cŋQSqs@@G͵:Դ<ܻ&rEnݲ.+kNƪII8[Rll~ `Qu'B^@(˖y׷GE?s|Tv&#..<y0}"Fow67VS(%%7qu]AQH%hC@II͸p!㪪IJ'%}F\㭃=@Gz# **a*;dzfI\N7?.Y⑚Z왓մiH+LvYϝ[PC/Y ##G bqw^^WAZ ۷L6ܼAUׯ[boPVVD׹s|||### D O>Zu ! OPQQLLL8|ɓ'[[[oܸj*߾}_0T ѣG!*))[Gqqq 9R0c4 xOݻ/**|Lr٧qܹ% 4|THU1 B/IPc?&,Fc8mۻ?/׹sk"oΝ.\HLL)//ZlA<Gii;m ՅF / v!nnnه=SYY)&~yyyOr޽oߦ{n544`Xyyy {Zx+W|}} ? 9{mShGJvˣ0(`Ň~UU"8P.).x1jϞ%""Th66}}R 0. LjNs޽Kʕشގ\Ԉ?Q ott&$" w޲e\]]G$$$O(,,$ȑ#_|>`BBh? ^8SG0 Z***TGGgҥ)))xc$""Z^^ϟCy˗/߽{G899 I)iLv°+++~>NV .Od2##C~rtt$gDrBa<2`UoƈNy"#'$<|uK )( ('ff^RVEV۶m۾}^xۘmvȑǏ?00{9:;;֮]K…㑽~'NTUU盚zzzBjժ鱳@nmmo߾>}vdӧ+++?~|}}}osGAIcj xO:۷o߾TUUMrJs}};UP61傂D m,8LJ,~0Ү!!Y\SӢz͍+ii)+ymFZ455`kiix񢜜!9F0 ߾}{ƌRRRߴi???> PXX/{p㎎GGG~~~;wӫ._ pww7ѣGjii;tPoohz{{N<9)aTTT9RҰ;%&..˻iӦV"L~yZV3hk{7fQ*|mի{zzH>2°G?qKh|cDܸ~Mٰ5kZzOO?e#eg,p/*٠yɑ&OxIuk$`iy6cQ|XWW5}`X'hd & m6wdLPK x1v°{!v(Y#,, &|˗+(( vvp20FHIml\1aaٔ ;Q{m:|[Gс1" :4k;wEUӠZZZo޼ڊ:;;Xa,# 2v (1"&a04haAabC#  dez0F x4tcVU59:"@AAͲeyy; #5Yy(Ǐ?h0=oQXXgZiP@CA~~wޥKJJ.ZǏJ#7Fi1ӄhxXK9Hؑ=2xt0FEYٟ-[S0&sq ?{v(v]YY7otueTBn޼YVVkܹ Xdb𹡡)2nġA+ 'p۷ K4J &߳HӍa~e$DN v(⧈ *--;9ϧd[ ߾xzla`08wo8'0p(477K ̴ٴiׯɏ<@ lm8Rh0bAAMKK7 Bڴ x Z|yXXXGG;;;'''||,@ANDzv 3Φe^^^c8p@YYYVVɓ'XYh F]_`=D _A ^#nnn˖-#?DQRY(X4~n F{{ᘘ癧M+'[fsppDEE0F d1 P:M08ְ{vX///AA} vvp?Ky?h6<`L"#HI`f{{Ϝ9)pWϝ{2-kHTTCtvvVUUb(w``MXXXHHm``xxx(**rqq͟?_3LDJ]d1UV>DhYαc4zPHA'Aw>1Cӗ,Q^KbqnYS* :v,@}{^^ND40mmmC7, k[K}}}fffww̟͛GFFر)==]QQ;wTTTdgg988={VXX͛>ݱc񹹹6lعs'ccc[ZZ/ LjǎE (P$im}W0dM>R󋈈 ۴(++kܹ===cVo ^BP(?3w.ݰa8u;̛'ƒUAQJ)>|8FGG/A41""[J~(]][E~ Q^hn~OX˚549077u4I@W^VVv<]KAVV6~L>e,r0%}Lz#u15mN5xUw8\55h943{{ϟ?_pݻ'+i zYGGݻwnj?X;rݻw-~>{,Lfԥ6&&jLOIQo =]#)OM׮:pD[[h+e˖'KLPNNNWW^{Ν|˗8qBPPˮ:::D"yennnmmKjjj^~ȑ#nnn /^?CcǎFmmm-[j*SS'N98ؿ_iiu-zzŵE0~zYOzVdνhm=ѕdbqEq11(*70ǎf?٘6 BZSQVV8을A:LٰLslءtϞ}iٲYzP0"4~~ׇ̂r}ɩk[NP>>k^v+jivt.)sT8LܹiYa* 1ct%%r5FUWWL蒎4 qs4ad."3 0FU̙BJJdƩi߿EIEEc,}|g׮]989YB]FFTwEOӌ$%%CBBOLacf LL32eTŞ34lll4CX##!ܜEN,#?xɩtp𖖞$$&/[KXXPׯ:rĔZN_6c۷o߾}{҆҆f̘"($(Nᛝ]}yK'׷Vj^r6qBC]hSlllxz11@K6oֿ};ŋ={Piy4SehH-iC{{ԗ65uA˩$,jf,*-- ##Xn臊&a1BQQ^2[[/^ںuy3)%^^)G::]oƄkռO?ر*22? AEEA&&jʢJJ#? 012RBZ _1tt!L||U;损g#YYYi>~钅'O&$PL:l>聪GAbL棷w`.? CV ?p8XV#zER2߽vicM]]wfbFձ&CZZ`ٲY^^)T5FNXd *)/.F IxtDCCG@N*H JFFpq`ի|~zz<jnbURR_no3-5 1fj UUqAA.j`D rt445%@qjUU 1;ss#Uׯ||>޼iMoc}ߵWGGca;1ׯ/_p ؜ ){.-;w.U;9->Jo YYaa98nrӧ ;",RAi iP㛆l{{OYEE"D޽ч;w6Qo+9| $c h46= HϟοNܷXVvx:=E,9-ffZhhh  LlАpaݺu:t`زe xeOKՠ1`p񣡷 RS>bCiQuF@_TIJ\22~ v|YJYUx::ꂂЦc$>. Hbn8k8Һ3GBxo*5 RRmj$hΕ36pK'7hE<rs0FC̙BҤ,N?鴳{(矗/33,PuL|Ki`Gu+b٠>4AEECmȚdČ܌]`0Ǐ!S`!%d".bq'O-\D~5< ("b~̛7RSXYͳ7 " 4XHyL!OWlUDl٠7SRNOeD,sٳkg& rr*;:/V&S`+)>Vϯ{,!ߎ$?:$$;,,bZ3. HF e˂7OX3}AmCmPII]?EB_IIH ?4{_24{rњEo;&5?0FR‚W腭ݷn޽{<>}*۶[SS{9~~ +(;;/cfǫlGGCh|6hv#eeQEE⥬""<ٕўC^b0BT _dE`ÇY%^;u*('!`ϞgƳ߷A8ӏ<66SgϚ3ٶ g4[W׮#sܪ҆ %%Qttd|r||>y=3fLGZ --5.)?nެ?ѫ󫃂2߷l-ӧön5tɂ|ˁ²Ҫ54.^aLj6Fl{ϟX++ l"DWW毿Ih ˗cZahZ;EQm15mͼ'̑lgҕ+q#Ah4ӧO531TUe< )h6U\OIIDyƍN.!&99!Fg`._--Mϙ#Gd#ZC 4-mP_+bSӯ_3HLOPPfPPFKK'CC ˄l ~A٭fϖ2-;#pdhcc׋4Fcw\D`hMjCC ~::z^ۺb=xeMd8Љ{QQ^kk-[KI@Z ip8x RQOQ/_f8@ə6uu*KKvDG熄dlGZ `l>|(ii67&r0F4*&nu[>r2]}۶y;(hdll_ƮX}RIh0*# RV53TRURUP&m݀4c|\FTV69c+ԑaak>M))ok>-)gϚL#_@KK͏:""uhoM7>xd&\?ؘp~')))DI@GGcww?S ]NpJtuySxZcDS23˧O2GrZ(|Gol촱y2y[  Ne_Vʕ `8hrWuvUT4.-n Lϔ5F2X,.?@aC|91!0r(a01HdeU̙#;Oo~GE>~@~.߭VVXXPQQȌյ<{ECC}`ǨA&Oؠ_Z`6h9A@`}}(/bJH~R HJ*xfP5~1 1)66z?hmm+g9_VVMcre_萁BCiOhnoE!jͳg#^ q~`@ Դ{JAa6ϟNxx *),\4lHY--xqrJl54?S$ɓ009pmg.::sCB*frt4ܴIr "ah *.mj SIIDYYDMYYTZZ ؼY`JO?wtg&3o4i`hA[[OMM+sk3 S#t);v,,|9(:xc4f0TTTL))2}Gu`fulDxx^R5 59 >Dqj #ZW ðKiׯ^Ngq44^v `v>vlZ-lلcD klsZ"{z&]wq6D/3tue7lؠ;m(:CgJJꋊ~CtBԠ 23RVUULȢ#3k1FR(=' .DUT4~ >PgR21yy6o'rׯ޾- 9_!o67o y6n T٠ nzE;yxğ?v;SJjF^0F#1ӽ{v3g)`_lmbQVMMb\3GvBoLs͕+nkWTRRyzGǿ+Wj0M3n:a4$"£$:84k`SUU[A:zd9yȏ! 'D]]/6oַp' ˫~ڕˁ1:5͞=juFFyjPǼq#o߶&5.(޻wXlPam\%%Y$}CG?Nْ~~ z`0ݻ q_i-Rhk|9zf#SXX+"C\hg_u^ۛHiwDU`ʪ  p˗>m IԴL 5,!6oǏEE2CIֶtФ֭길C A|9uJ#cDuJK땕FijjiVVETqFv-3ΝM7Ρ@=Xxºut ݊Q=Ǐ^6HMMMT=bn~w𱱱No@fe>mFf(55q, %bR޽+W6<@/_^̸ߞgA1:߿wYPy\rڵڔHS͵g͒FcABU_رUs+@o`0}ed]J~4`u3 ߹ZWWPxǏ?\e~~ +(;;/ѣ H{ i>y2|5 Ł~-ɚ5ZOGDG%實&FcZ2iwv7On |Tzu#RRoIZGGߔ)lSԼ{= `" / ._}okGHHVllg͍ưq-/o۠҆l(X[McaA(! 0SWE1RT`+* H s>:_w=~*ej 10)wTVή02RjoﱱyWӮ]KnykuuŋWuvc: L;w.Վ4=,,; YCCE TE?lPIIϟXڠ\MaƆNۄ kc쏂ll,"EE6PP3.H9`EmaRy{= 8 A aBM¶fFXؗO-_۷?MMGS߽f_ps :zthƾ=44;>>ff2h6U\OIITIIl]1}є)l߾]$Ɨy.n89tEmm[PI+89-WEA4cKP D` K5%6@ (DEE{qq|?s<{s3Bןd탵.JmuՓOII.(03\k@|$Aľ`X3 xxٽ;~>wEEmAIIV[[Et ,N傞ak#˗W $F}F/!!D"X8w@ de%8j?tm|vzs?Cs">>*ajjct6QVRR~FQQeyyWAOP{x55~wL]Ixݻ:kk}%P<|n8MhMQm_AcҠyګA[ltR/3$ ;Ѳ`/ ; .N|Io# }@tP @\n RSig/. 1{VV_&jjMU:vlѣn@ `1BLw_L&kǎNYEc&gUٓxn!@9Rk# SSa2/_Ys0Hxzz2 ŋϔl aa :u74S"c/_~^S 1{rrRzzC ZUU##>TV{C["aX-8x̙6x宴Z~ޫ7$$.70P=uj&5=E$~lSX㻩i$P ҤI W> rssM:YZCxp IDATZbyݺ3lɀReeŧG9#7`$$Huu-pw$Ld}}mZPYmMtFmmsz&='YGܤYL&0#g i##533E@?H$"ƍ?TL&|q&F,n]Dh|azԹs> @%'" ֦Mӗ,9}-1AHCCq3n&'睷MMmF~=o޼opB ҥ&7616署ׯ^iB)*Jjk~6< }Ǐߎo܃撒d}}>L8q8OBD3W8_[ۜ^I˜@X[L8m҂";wN$LHPSS 1Lk(qJJޚ5L&sj)2A&FYYE[^-)00ȑT33-|DtR=KB暯^ ('é[5@ر_}w횿r?Kȑ.--tPH4_IꦸLС27;{8>'\N1xgE,i)?LӒoHݻBC=Wt8{ݲe0 [h| p. ifڴi?#r[Z{Bk%FTjL}} ݻSSϞ]fiOC濸bؘ r>>ކrs3@xQ+//1s)S %%sUCCہHRD$$&HD992@$vQiim7^5 tM^IWWd0.VQQ]VV&pzuiiglmm)JffBgO=lnym1xiSlk+yeرe-qp_ߍv ì{1i(?49y.ZY!O~w$ Çcj5EEEEUee&E$$$H43f0X><{xuVllBZC]_O2%66%&&:::޸qCx TJJSX^g&zfp>MEDOJʽxѯo2 ǟ;x0e>3mcCUUUzz:@h4FaaE|'{{ۥQKkO::mlva_ϟ?yNBBv}}=aiss3a4-((H]]]MM-((F~!tm==;w驪z{{S(|k[a8rH)))## .`Fӹ60LEE!agYYYIII222"Ξ=kaaz .***n߾ƍw B`` a CII)990 dVHΟ?3bmlljjj8w KfΜyYׯށ5dddޟ'|mee=hK1(˗5E؁8s架cnאjnn;vKbn?# /^dɒJ Ǐㅇrww]^^͛ӦM{ݻǎUf))?={L&777rm~ܹH^Ǐ%%%}||޿0 !ERϜ9RB\۳gό30 KHHPTT0ӧ----\͛7yyy#Fؽ{7g$!dkk¹ xT/_0AVVu}XJJ N0,**ʊ<::imћ=kx!>}jwt<v,EE=iB# 91P(ֻwfZXX|fkk0<..sz ÇS(d2j_6773{3 ~]FuxWӧOi4O?uV :}t-Db8H!!!W^?7.Q~zڵ[l0,**ٙ]5n ;w0 >}=JbaΝ׾v_ڮZsoA?tbkyy_-:NVaJ3%%UVxbR---|)gg璒!TVVfjj >|Μ9]RVVNOO葮cVVHڼN++s+))YTT2jԨp !  NNNɓ'g϶LOO1cBdnbb{HpO<4iGll,aW\7o[]}&']ښK=fw>t⣐!!+HSL dW50 P(=ڥxInn}jbbcc/_>k֬zSSS]\|okkgpp{Is`D"q EEE'ONKK# [7ottt8#%%%]t)==]ppphjjسx<ǵk._ࠫ$5A[ssͲ6zG%"ꂃc-spq)X t98xB C{/x[rrrd2{VB(!!ARR2??%$$F^^~̘1`0Gnj4,ŋoNJJΝe˖<'Np޶m~oݺuy[S^zJh4 YYY\]]yGN$%%[[[wڅjjj݄L>ɓcǎprr 700000@IHH̟?? ۷ozENN|~~~mmm\wD"3F]]ۨx' &0={x{{ ,v)?ssM&M ::n] :vs۶[nV glڴ '9`+{||<~Us< vءO5jhh޻w/^JZXXL81%%իWW^ F>7Ѓ>~o͛7***]߷sѱclllP׮]‡Pe˖)++Zpikk2ˋ=s+ bbb%%%-,,6h\1F췎92tP=='Ozyyc_ @&񓳥ERR2$$Q}}ƍٓ:GjffuV]_ĉD '##CRy}caXyy;w !GQ ?~]%@W`Xw@ر`X hƌ>}⧦p Gj* F0,((:nlhhֹ ~#&y5?[n<Γٳ_6 'N<zw 7d ;h4_~`bbco%&&P(ŋZZZX,LJ0~t :vvvZZZ kkkdddƍDt}}kCpܹÇ~G"DbPPBd*++_~!аtRUUU]]ݠ/'*sBHRR2<<ܹs8|xx8{CTTΝ;I-(''݃sssuu|EƏHgn211QVV>pu被~oߞ;wnʕŽEP߃ǃۭ5sct۷ .\X9k/,+F{WQQqu|c T**,b| n!M4 L_Çڃ !S=zr=B3gΤRW^?p]t/pXFF֭[o2 E_?է_p߾$'_0,OϓR[ W]]GG;a$F{ gWu -߂aruu%H-ssv>X{aXLL |@edd`d2v 1i '^?_ҥFFLf7+^ G40+v _EE;7oKG=yo߲-w޽rJBBįp8(v_Aϱx=mmmԡ qw9l&&mm(eg=zFEXfY~WQKJZ?l'Q^ttt={Ʈ [ -RQQ:q]vo-\_~/ .^xA//x6|(^pٳ&&&Ϝ9ٳt$))VFFFSSVQQQʇ ;dXNˇh uuu55 ۷oeeeuĉJJJ{Xڸקs56quAرA׷A01zڵklقaXTT3b -{} 5G ߍq[ɢ " `'kimx&oIpQ [߿*vqZZch4F DF$GP[]CcŊrʼyb +WlnnlcZ͛7#F`7_+Yˇ jXAknϨQ|611@WDt$&>=wGG.@|ذjUWaaKfUГqpphjj<k萦pi``Faa!JxyW4 >11NgY_Ooy /- r~}m $illMJ0"D"3F]]]Z\k]6$$֭[uuuwݽ{7p]ɂ,0 S_ߒD"a07oXbD1|}#Զn)Xw R,8wܟ) 1@xzzrGC)))o .044jAT5׬Yfcc_UUU!w^;;ɓ':tV\YSS; N2e...[lQDWWo jA#CCղZ${&}[s"IITRR3{N:q򤷬# `ꂂI& /ceexzz"._1 Xzzz666W^ݻwoN׭Yqqqպ~DD߳'1/o?M*y3ΝŋǏ;El쓭[ =yBK=T*UQQQQ-[DDDXXXرcڵ %WW;ݸ?o_y U_l\/Oѐ-[\τ;f y_Dc%e~B ; 1'77aÆ~õĨI4Wʼn 嗹Žthyĉ|IKK' {fai2wk#ջuTB=z3;$9y<_w Ahm8pܹ,''#G ;@LLj%++/?%JJD}Govr1BGرyd._>x#<|dE#ӧ[RN?GO<| o_1M纼WWw%%ݬ34T峦P`aE ?ד'%SFF>8x#*j#{pp0SSSHL姲(_1:}:ΝrŽ *m˖+nnLL4ۼhxaG$({N|*//vۙRR$aGr===aG[d2q 븸֯w_=ꇨz /|@ѣ @9v3cΝ;J$F@>BPU]ammoCgNj×`WW/_~v=##U*YFζ]5juNŽe++ۺJF+wQw *W 1ȑ#Gv7!,VoO{e OAc*'$t~/jW>]DBC3#"|]7ЌMk:IHp@A dk:=~ϟprx6L-!-/ĈFcFo4]ر Fmm'Lt(/<,l + ;(! $% WR]Á3g2[[im@rua2Y{W?!uJJjOl(DAZ GǃG󛔑i,[aG$4D ?s挪j.]MOO;b"\lUW>~lذ?3^ * 6~},b#GfNg򨣯ba>P- 55={܄ƠBݛw?~{[[}a%* 1:~3s挢P>eec`Ĵ~K+?yֲt:3*ꡃz䒑EiPG ,c 3f۷5￧2]vOIDAT-X0v vv 9'搜_?|;[Zj +Aðg'WW7LwRTvP~?WW7<mu]]5..#Ja7o>wv>fMߚ޿u۶u#Ï1{]k+BuU˅pð~D"BC9tNiG}|ݾo +o0~ěqx/ůOJOO/ [$oݏ{{2DƍO/57vP$Fqu֭MMm]URFϞ:io19vLFF2%ecLjkk=a5`@b0YlX,֭]UGZZ׮3h vS`+WFEy_ #G 8ь4mm%PEECrJm=~ܛHY}nȟ6툛1xBBߚ; #xGlPZ;cb0!!EӣxcӦY⼺waŽk `H]yy)銊Xrk&N4[{;#:~swDDg <|11Ϝ WWի'%N^^j቉ ZA[[3֬ rt_Biߍ}n|ʕ 9N;9:zѺuNSXSf϶]6YUU::y{ʭ[$A%޽;}:G$s̚5ki) ;(q`yx~{ݥK.[p8q}\9%%ob.kLkk+ 4ןEF>8uj@;WOƍSSTvP #5x&##dUbt~zhdwvE,1g3<);~|6d2 H ~4k_DUt0mm a`.hh(cuuя""WWSNzujPÏH޸twVjog׷pK痧l󍋥/>DDܿz29f*G=jGHNb91c'F:u74spݲә7n䅇荙ݮn GfٮZ^Uը^hk+#uu"gׇ̰?eeu/]zL|rrY`*)"HKb6RNN< RRC>|5Y,lݺ(ii}Yqbaᅫz"7ŋfBtClIIs;$FHk<8q8Uя'Rgg+k&" 1Yl}|}@Q,V+F99NݲeQ}M1@1RS/^|U4tc.VH Go r#gr~>Jm]cׯ._~rc LOZ2VM@O GSG$%=ik+ݼOش)v> P(- 11=+74T]sH3HYl.==EWwtt++ V/GDDOJʽxO]]בTmm[^\4#%L1zǎ)8Ab5Md1d|}' LVM 7%}֯w0hX,Ӓ+W&$䴴eoC_#3bF$%vHB =NZ[i6L8W*s/_~R^^of0c`f6Ab}L͚e}_5:+L&c2YMUU,bDl~4xpzϟV3gԂcՅaŽ pS:g1]2xQԠ@1G/_~Gt:vפI慅umm/'@@ſJIq\Ys.0''K$))ٳ\\F >|!R[o|~ӿ~(l1֪pAAWW[q}H~~@v.`,!={VxUnYQlxgE ^$'?xI$&N4 Yb0X~dv'c [+|QtC99~ts$%4.$X},Ιsɓ #ff"J7<{ L4b ~+z'1<\[oyx` ?jii##sB4wM5v0oQO LוD"aӦb}@q#?-Çd2i#G|H# *uĈ C9DEIIV(Q f?rv% 11kzy޿89񸯊#e:O@@[ εWOYY[૔߼<))RiGG)S,O)$F "KIO/M"'OBQ|\ݿ_qL&ƮPM_o,Yr57q}kժ7̎I$>ffO啳X> ?䥤<+,8t3lLa HbbΚ5Dɓg϶bTE,b0$55+W\?qFK~٭[t:s>Ѻj7iNބKt:'jto33RS߼:TnfNd`H{;r[kH<WWgjkGͮvg-YrQQQ&6vEϗDbOeg;WYS{ֹL&bڰyÆ$RoBXaaՑoT3,UUu*+)} +nedlekO$|{̺uQH#2j{"a:b?jmUT4pf0$QFF%?{{oyCX,.K[_ֶmWvȨH$ɓGqHbaeٓ,& Ǐ/rs+zUy[^<}Z*%E=jtk|o 1`psiVN<\1.P(-; #RR31~O1ΡBD:6L￷pmeg#H0gŽ$%6+ݻ:)?gۥHK+jU4bɓ`j] 薣Ő!ҍ!EEρ"2!ʙLV[˿ޢg5p۶YzgE$GGg8"2pq{Cahk è),>>` NNH ʄv' d2^BD&LE1/_~D-[~PP[k+}۶;w^(Yuf}3NRRrȐ{~ HEo߾# ׅ{_S([BjOYuuuAAI"p IJ9_>3H>@ gaD ݻe˖u[#7!ɱII|Aŋy0lѢEcp^[UUU~j*))mڴI>-Ցśmݺ5 !ظf͚]v9RpszǏ߿y*jooGUEEEtttAוH+,t<ݺukԩ\<]Yv۷͛BBBuGjjj:::k׆ vѮ*"-< 1`KJJ6lXdd$Bhܸq!MMM 533SPP?~ٶ}hccc55իWs_n211QVV>p`Jd$&&P(ŋZZZBt:=88XCCC]]=88N;w322vڥxbέ#`06w͵PUUλ I,%$$>LPX,VSSCbffή#1ëu !ag ?BյiaaGuZZ-ghnn[PP~ݹ#Uswwz9bHEq@w .1wmr|v>MLLbٹ/@?Çϙ3V\ t:]YYCxt<:::##ݻW\IHH]ׯys\OT< \ NZ[[Y,Vlll}}g͚U__Yٳg> ***200\)bSL d/{P(GHmmR$77w߾}]z6OMMuqq ` >|^th^QQ:q]vrܮu ðSN͘1w8>D<̩B 1`"SNz*Jh[!??ԝ;wZ```qq'OnݺtRЙ3gb_xIIIxܹslRVVr V۶mo&[V\ vB.\Rgq9a˗/Gjhhîkjj*++?|p޽9s攔O69Qׯ_>-Zģc(sNLLEBBat:A^^0jbb"''7~xwWc.]dhhގ}9׽_ct1aصk״a:T*uٲe***Vjii =d/// wnq;hӧsw^%%%ccc.qpd;4z$;;H$^rEл}yOOOo…w zVg[RWW $FAb$FAb$F P]]!@zNN$ q| (jkkkjjv ---(xillhŽ C v@ 1 |g|gCkI.IENDB`XQilla-2.3.4/docs/simple-api/classScope__inherit__graph.png0000644001725400016040000000734013273140076020644 00000000000000PNG  IHDRp0d5bKGDIDATxyPSOH$%v@tі0%>+Pj)jP5jl "8T|u@$$qۼ p9lwNnB.B0=z1'0:|BՃ'OhK *x<`888 7z{{ c/^}V}+ c p8!>'t0ЁN ˕9555<᜝ni_=xek}. QΑ#GB!P$ddd Eޮ, ڑ; j^|%%%:,h[ *U4Y*((hxxfo><<x)0$$J>|cʕiiiÿr B+P(HKKSf|$}ڵz !tqq|2R/(ӓ[ %K:uJ(*\>]P(x<>44TmQQQ}lڵ)%! JjnTg˗T/ɬ~G 233gرcx<~ppPC"Tc1"$I5 Bhddf͚+W|JKK_N"UЀ͛7ATvQXdvttH$C<544;!,ԧ ?PRS S]0-[VWWەhrFxqq1ߧk>}}}&&&BaiiD'יdFFFզ<%|BSgg'YUU|r,^ɂ|4ʪɏ |O?*455Ãx't0Ё>֭[jHXӶ#A P-cV'?ݼ 00w.'ETUՆk[&)&&䵵?ܸm$:{odd@ UUj[&)*+[ =L&rC,j[Ƥ2ٟڵ_+IO}S;pʻZԣYtǧʻzz{.+DcZAt'h?2B5BwUTU(o([ IE|7x?˗qt˗ۦI))\9/]~ĄUؘH$^0F]_c7mzKB4.ĽO `>'t0:|BO `>'t0:|BO `>'t0:|BO `>'t0:|B 3*}cc#$WوY<2,55{R^^ɓi,1f't0:̞[,766 sss*A}}'绻*D|}}5 =<VTT]]]+`Vp8\\\\ss3vڥZ*HbXW_}+Çwܙ~f֧իWs8߹s?|0Jo###-[HJJdB$GDDh4gٳf_z5++b߾},+22R*644TUUM6]]ppsRRR Uy!ݏ92H>bժUl6.669 `ժUz|H$7oqsssss +..fXT*uppP {{{{{{v$vhhI++kH֭[eddښ2AΝ;秖_VVfkk;eP(]v655dgg>}b @܃fdd___d} H$߷oR?66d߿ɒ%~~~!!!Hh y OLfdd$=8::ݻի_~F2j9jӍ78Ζ-[RSS5,;zҥ;v7}}}{!BW\dٓnnn~ҥ=u/ⓑG}mL׶b cf0:|BsJhg:;;g,>{;wg0g۶m3$0:|B۽}VIENDB`XQilla-2.3.4/docs/simple-api/dir_a55428efc10bf6e491de7f7537e23d85.html0000644001725400016040000001103313273140077020754 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    simple-api Directory Reference
    Directory dependency graph for simple-api:
    simple-api

    Files

    file  XQilla.hpp [code]
     
    file  XQillaConfiguration.hpp [code]
     
    file  XQQuery.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/classDateOrTimeType-members.html0000644001725400016040000004657313273140074021052 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DateOrTimeType Member List

    This is the complete list of members for DateOrTimeType, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0AnyAtomicTypepure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0AnyAtomicTypepure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0AnyAtomicTypepure virtual
    getPrimitiveTypeName() const =0AnyAtomicTypepure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0AnyAtomicTypepure virtual
    getTypeURI() const =0AnyAtomicTypepure virtual
    gXQillaItemstatic
    hasTimezone() const =0DateOrTimeTypepure virtual
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const DateOrTimeTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefDateOrTimeType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classAutoDeleteArray-members.html0000644001725400016040000001120113273140074021221 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoDeleteArray< TYPE > Member List

    This is the complete list of members for AutoDeleteArray< TYPE >, including all inherited members.

    adopt()AutoDeleteArray< TYPE >inline
    AutoDeleteArray(TYPE *p)AutoDeleteArray< TYPE >inline
    get() const AutoDeleteArray< TYPE >inline
    operator TYPE *() const AutoDeleteArray< TYPE >inline
    operator*() const AutoDeleteArray< TYPE >inline
    operator->() const AutoDeleteArray< TYPE >inline
    set(TYPE *p)AutoDeleteArray< TYPE >inline
    swap(TYPE *p)AutoDeleteArray< TYPE >inline
    ~AutoDeleteArray()AutoDeleteArray< TYPE >inline
    XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073022047 00000000000000b39d50fd5fb0c39b41caa4d335569198XQilla-2.3.4/docs/simple-api/StaticType_8hpp__incl.png0000644001725400016040000021016413273140076017540 00000000000000PNG  IHDR*sbKGD IDATxwTJ{,`CX셵b(6];*6XBN(cvI'3> rs 0JbDhuuu@Et=L>r䈦&хH> ĸq>}daaAt!"b%$$8;;] @`6mDt"NO2*@Xuuuu\o ݪ>444>>J;99jhO<?޻woϟ755H3&,,LWWWP  :t'NP(={8qN{{{\2"" ''7w1bĭ[C֬Y?F)((r0Ջ/-[fffdcc흐r4|RQQQQQQRRBGBh@@^n%##s]^򶱱 G^!4c |W-[vʕf;3!pBBBfϞ=mڴ06>yÇxS ,>}ɓ'Y,Bf9sfӧO?s nׯ'O|e^U͚j}y۷oW__p o@ݾ}!TWWoZMwyf||=ZPPFףFJHHp8mmmtw8p`III7o,))9{#G޾}Ҳ~iTkuV?~y=z>d29(([UUUCC!T[[˷HOOOccc##͛7[[[u%$$Bqqq...$ UVYYY-]466!n: cc+V$''lp222!:ZSm0OCC˗/Gmeeeee`3g8995MBB733kA ?644444lcg111GGxcc7olڴOF Bnnndee[6֚jm#u>999$iȐ!w=gΜsέ_UUUKKKYYYmχA=O>0`:o{aa!OኊaaaO t+??K.?HYYy̘1/Fiii 0ÇrrrV?͛wM|}} bŊ{9r?3rȦǍiӦM%K:ujٲe$iȑx-߹15~i>v"aFt 89n:)\8ر[Mu}:>eʔ , FWWQ(4 JFtma2QQQ;w$y{q8\*PQſR*+4ZCӣUUTTdTT䔕eUTdUUN8Liϟ?ܹsʔ)'OH|`;|@j9^]]_VF+-`p8\!RRJJ22ZZ JJJJ2 **r|{7ṅ~0urJFe%J-/+*t*^U?kee4PVoLkA up+/gPڲ2Ze%Q^Nxee-Aqq1XYYV=(@TSSW>Gs˒j:!LIIqYMMEMMEEiuu%$r2++yǏ\.fh:dС#G] ?BEb]Wސtt42L[[!yQ`4WQ(2ZQQ5R`r1DRWTRQPUTRАPjI#h jh>b?BTjǎ͝8񧮫h|./>>#99'55?*wC <  :KJxѼB).mVT7ft^^^9مUVV:C+(H]@^GC<^z֭ĺʄƷoss1jJUD٥55ee4<2C*>YbhН7`>%'禤xYUU+++5hСFCj,%%w,._~mۭ#O^@o)uu7o=))dkj* jhhnh( MX,#PhyyڈObPqMMcc 99)AW_0%%7997))FkPS8pP!C4Tt&#^],TVV*$d_CYXhXuZ\\]XXUTTURR]TT]XXU^NKJkk+ik+(ute.wI2hPzޒ! fɒLʉ_uy)) , y{{}*蠆o1)W00P54T51ѐ¨'-"@CBB< ov 1I":v55uyy_fdPQ/_JL6jr(~駹vE]BuPnnGpe%ܹÇtQ/ݏ1>>#?RBB_?]aL] 'ϯ̤geefR˪BR&&&&0ѼE]ZWu}͛7:"J$32Jfw_ aʌҌ J^^ׯ%k͵͵U` ufݐQ ۷ϭ_KK)RRr?|(#Y[Riw,uM _fdcYY*!$-M61Q760305a u!Pu\ll5aVV:/ אfw .GGs%%ZSqFF/%?dd !% u33. b29AAө0`{ǻB!dj W_::SVA((˫D)(H[XhYXh(맣*Gt.B:BnʋIIه͚5kH+%-ۼJBHSS527״чۅZ"0#>~, &TW|[ ~,F6,aiݿ:rrRDW  uZ|yǏϛ02g 6zoNO/z - 55?+*(ֵ_]33M_uy!6WuDG,)) , y{{W+ܯ_K޿/HM˗ O g` ̩!^m~k(S((!ϸmm !ЃA^+߾{&/55/=%++տ.Io_5xs8XԥJI],D^^:$d5$Ϟ}UUkH׃O-I uu ޼ͷw蒒 dhcokk`j!.{Q.PuPii͒%YYeNwv&4?Q]]'''5pȑpm =u[EJJwy_ji)dhgpM. _^G1͛oܼz˖ W:fe9dwDulXTBB_?!CllllaTE]x^; a^Ǐ9zt4rz"!!ZFlgޘL_ E 6m^G%&f/[l8^v2ZZܿС#Gy!y]H_|"͛<^Ɩ04v漎bɒ` v"3*sRRr>RXXէzxv2&R l  >.y"3!!ի,QSSlCԉ.XtuPmm W?l<ˉrz>;I||F~~%>|0yyXjA^'^A/ Y %%6up0wp0@3 $! 89}ݟ΂nt #ivwyL&;))Ϗ̤Ȑ 31Zyyizhj*]NC`RRr?|(#Y[i(Ct"׻UYٳ/qq>B7::;;[e$&f鰨 ŋh@;;C鉉M;o2̾kA^rDEĤgdJ98k5f2a!Zy!`4]ɗ3Ǟr`{vGGsryX쨨菥5M`p`QD.>l>7x tzCjj~||F>dшf::JD@s0ɗjjꬭu݇O0JҀPhmQ/04_$I__uƫs]@!y>:Cd3RW>O`|]08˗Y7nDGcoڴA&& E]uϟ=}ɶjjrDǢ+W^5퇖aE]鼎]bJJófBt9o|kyq>mBMP{~v A99ׯ'߹󶠀ja5}`̠'ih`9ϙ39Um y!fszx%KF=n,Bxm_Xܳݻmv8xSd>|2[KKqA3fs{WׯRRRfsd5k||\[:7>>Ç,E9$~1>ơ!ooo…r1qq1##'mm )nyrs˯\I ORkG0?60h G<'\o^c:BÇBO`II%?4=))FkPS8_\.feNoGx֭ed@W\.?_Q;~޼aZZDDllOxuui]RR_SRrr}0@x0!C^!@d,_C  ,'-իQUUn0##S5Y\\\KKرy#FR-zL[;9[1c,adOU^N߽;Ν7bb$.X~ u=,#X,֭7^MZz֭`ZpRRr?ψKg2Ng111 ͳߵk!u `4^O**S\>iO g5V瑔q]v\7 {}ѣ-O//߇ryx~r|UBBLUUرyFYtsatXTl(ҳWnU&B_]9nRRڵW̟?\sٲ .{_0%&fBl6>w:|x&LS= 1yy9-Z4 X$ aBd'.K#"(2bccC` C7.Y2y3g ?ÇDW_a!H$ ð_3jFVVvȐ^zℇ'9M7xx8]ݩɅƍ[|yTNf&BYUU4Je2Z6oqqemmm???nƍk:~޽QF}quuu---mm:t(::="zT=3W]8ɓ3gp7{kf_zܼ:uJ^^~OƗ.]jkF5n8KK˦$VVV***Fy{{/YW!##ݻ6i/^ݧ{5l] .\WoxSލĘ*++8pWUZkХy,[6jk~~Y,6{葁ӧO'}Gmy&j-wzjzh/C{6lYÏ=Rbbb>>>!UamEE3,L >p@HHHhhhᤙ3g^~7%͛}544N"(>58 v ga9F>E77n .\hQiifRRagϞи}vqqqddB(33F|@dgaaaXXB ðK.=w!77Amٲ0ܹsi4Z`` Bh֬Y4ٳ !%%u̙ Ѵ/ ø\ٳg1 ۾}5GЯZUUuyPeegTUUY,aaaa\.F=www''촴޽OŸimm{{{ߗf%###11/ BhҤI4֭[MjTkJ"bbb ]`i*otkEEEϟ?n-OmF]n?޽{7G=T{[RRoa{8q"a  0}V_(ryaSٲe B?h!--waV]]-##'L|ARSSt:Fѣjmc{xThiQy=7|};dv*===BkkP.\h;766~`p8gϞ~ ܨT*Cp%%%X[[[ Bo߾0d6{IR%%%믪*.K9NӾ0 KLLh޼yO'O4mfkii=zð &&)..G۷o~)Z}6~Oxq^+u}aB=}0ӴfM~ Γ^4t;]Phgjyj76}k=Q|DTwkжO%| {ܸqm$%% &`V?|5=brN*..>9^֭[1 svvƚzS >?촋N<07n8;`4j iMН$$Ķotļ hDW$N:'<m yC4> &KJJ:99vdee-,,lٲrʆOð+VlڴISSnnn+V:t(~hSM4ۘ!}}}uuu%%%ŋi4ډ':j4'nNmme ~~kk_?yO?d21 s玶6Je2{122>|+WP1 WQQ;w2>[ۓb988i4aP>711!ɖL&i_+Vpqqi\͛h|ʕ44{ T*u6lS >>>:::sέjcy| 444TSS[v-^@^XM~`:ޚ}_] 13? dD|ovzjcus֎!ª%$$+Akkkd֪777߶m[ӧ*%%tj{rr͛7Sӧ75RLL&11??PRR211gݴ)`/N1uI}ZbŅrcs~7䝑e=ۿ}ve fu [÷_UU@u#?$މBY4']]]Nw+..qpp У$|7R&N<*#CaSCCCNNNppeˈ-R'ij*޺fKtv޹Wm`JtEUIII=z4ѵo +VH|`"%}szx DWh@|CKKkG찺~0̇iC䃃= {P/o\/)2qq&N<*+K90qtF2Y|x3.ЫF^ 7ߍ^zzm'mmw;{#^²ZykL7n|e//'ЋHII?>oHO/ӧ{@JƜ9g"#{BX@KG^ɓ/S/,"@#>.^$--Ĥ}7k,PmD}=YMbIJr;H$L&ƌ4~ٳ~ٔ芺MOO' hhՋ5 z|W7Sffn°>{\sr^zN37WAtVw4e;HCDJfm-|2nccCt!R}=x~P9s 'STTTSS# ӧ.UF##߯Y6iIIqOܿIYZjYXh(&F"aXP{ku<45eq11$R{%BVV*0# ]w~-ݷMNR$++ۯ_?!ty=8opiBy1=66q`#..ֽnMtzæMע?l ޻:u@A G"͵֮ y ypBt$ ٶm0\]b_޿755uvv}'O4'--EK#XzzѲe FC@B3A5qgϾ>UF,6%;#h 8Ѐr=_g_=q"Iwzf&aNv2)){:7ovEDx/]:͛L9+ڶmRmmS1@hܻBkƌDɄb> ]R\ܧ mIT옘aa^P4ٳ{/nhd{?8oMM55 \9s`SR [~ yMg:]rl짋A Y>_֭\\Hf CΝ[4qO]˒%#Ó۾}R7^.;wnEz:Yӧ_ ,ô7o{{;Ϛ5TM jve==Էo%!!gϴY~رV]ԩMM5<='O>iiMtE,g u*ĉ8{kքii)޸իBXo9xqs{4]]ydwu_ (ֺQQuu&O>r= a,gЄ̫WWbmfg[^Cvwxr.ZZ/KٻwO[tdkѣXbtu "{C._~a[Ny &sڵ_̺re?|(31avv 9gg=:  a aaN=aeCȺgTw >-&L8I!# gTHȋӧi}y7kӦ ]3sqqaYu^6\yq֛BB(*R4o•+>RtFd&Nia]Kvv塮W}{qucܽ49*jc7|]$iϞ/_fGG 2YΡC3O[b]"]Ybc~3vᬬ F;ݷ՗f̰sNb#@t͟?<<|˗Y'ϯ$馼[&1+gaaܺf)>`K{TO~…g,<|xLߦ.:n0M}"r";:?+2NNw={Wv,]:(m,WWO2rVZrc1eetkQ;j޼O?"(\p.˳HK x rץٳ61xt ðӧ͙󷃃Yt& -+j՚5N2k;Dĉ6op@5a ,+.yFpmm%6a؍)cz2} v=ܲe |)zii+W :D"yy9],.ԩ' 6_yNFFi'7m6k֐m'vҐ=̇o//'i_O{#c646]]_&¼Cm֭sh.;{/a9QQm 7RN=ΐrڋD"3(X?x~s\Ht9UyqKݴAYXX5{v}.uZ ٛ6_uɒ׮RW'cgg8u{Xk uw骼wF?}zjv-pE#2r퓄mA![>aaa˷o$9B  |:{HȒw3gBX>$ⅅy]SS1V]ܴ)|ԁn0@m*11Ǐ?*!!aK8mm%OOG:kqv{כBquOM'|^xϞ ~=33)&{"=~R`oU+ud'.J;*j'_O!pp^c.]:xц .oƍWWٸ8ѣEx`y92 >}$H֭s Z@d._^t]gDW=;y]LS1e2_ٰe#__( {lg?##7̙cOt9pሾ}|Ht! `b۷O Xp֛ ?B Y/w ƯDGxqٖ-%$DH`?{߶n&"ۺu))D7mڠ,G|)!꘾SvjϟK&NL#WSS4ɗOhi)޿LSPEr$11ʕ^^N$R$ ~]>=ḵ_,t߾\. O{ &'$d]r~7 ߅… Md{󦗪@ =n|=e --X_3rN:?3lk.!!!wCf;t@@^oh`\suߙ0Ǐnvw_͆{!&s * IDATsư7,<|@ּ ;vL.+_@t!Ѕ~WZZ YYeD ӏ*+up wpS׭s|=JQQ'_O>wn޽{կ:p$@/1dQt&EEƦ]u6U<ٸѵcK.r8\끁 -bzOdrgĉ?]I^BKKΝ&xz>Wl^߾%8zyݽ64ti'Wm8#ы:;wϻo_5+"> {G=pÇVT_$"@7T^kLցimr3&ŋƌ{wFJ|fϝ:hi'NKK MH,X𳾾ʡCp$@0U '/(];t]8A $&}ݻnyΜ>r]Kc6KG(GsӀ..;{o83 #/Xd7lEL' o4cƩ3͉ٳ8KG]gmOKP_HҞ>,Z[GFnws;uZ:B MXYNNGQ 33kDLku5ZbW__sǕ!!mgfk%--yZ/{Ȑ׭sٽ*1$$ĶodeS@QVau Ν{6cv{ohdtS;$$1ih))ʈ;~3Gt-@34==Ǐ?B?a=AY|T;̤<q/붽'F`ESXJ 3g/!'))y[^] lڊ'@t9޼~jq;W&0lӦp++m/>p2emz=$ ܵkLtiȾ}ZUUqlդw_: @#H۶MCt-@r}Osk2L^^ŋ 6&L"H|!??ã={vBD"eeeuE]ײ2hh#1 &kYb~GDדMM56jOsD6gas+))m޼G{ix䨩uAuW-]زe&"RRǎ;pCZuItEV}'s8޻ nO[YYexޱ\.߄tKvll!vhf.-)' .wuJJny9}v]izdz;w!խB]zܼ:uJ^^~O<灴1 YYYiiiޱÆ Cii{S 뫩bB$)88J]].]222RTTܹs'~mllcll|ҥf}5J 5cjj|ߤ ooF;z7OHO/UQ,6p8\W# 0q~ΨQs'*M?z *q .ZTSS3)) ðgjhhܾ}822ROO!?h4L,,, Ca|%:斟6hР-[`;w.F D͚5F={!TQQ`0Μ9SRR$!!`0)VI&h[n;]ddd$&&޽ƶ gΜQVV޷T-_:zAKt!KmDWѰtiS∮wCdv*===^ p…zccϟ y/.QT,--KJJDZ!;j~0;T7DIHZhQI݈[nVQQeHnD^vٗ,s.1cx=yLy͙y?~hgggyyyuuugϞP(d2оuB$11EQ2Lm@=Dff&APP͍/n^PP-'1A_(ʕ+ed1n>(vi^$=xn~K ܶm[vv;[ hjj@5229s?ucKK Hgb))) A!!w~c1vޤac2Ziii?ǞIVqL,D: F8iOUUMX'z=&&SNNebb>74Ǽ`=\rՕEFF&##Avvv=ظ}LJ166ȨEEEa׿{nmmm ѣGuuu7o655X7ͥ}m\]օ:^O44y}8^ҥS陒<$$MOOUBByB8888;;?x瑑888WVV8pN::::;; B[[' +Wپ߿42200[tihhhSSSgg'77w?uVcccmٓv!;;~6I VVϝ%Xgk$ZZrWR^oɩXPe.jk[r1>>>?ܿիW۷k׮{*++=zw"((x9[[[555k.YEe]]])))?;7}t}}}--SN x„ wٿWPPy,A[6FFFgXⲴ7m[\\eC:::ch63,+/.. 녅 ؽK~~r_Og0]~[YԡC!11YozLư{wׯDZXCDħ{jiݸIT8S}^_&TuAT+a{,mjj xu`ff##7,:Tzrr֙ghT8IHoŋcsq(`. 阘&YX\L:z%?ߔ?5x: upSR׮]gxlAsk?E-#vMљ4o+*IJ000parҺ۷6lԆu"zFF$//{W8odf`xm߾t+۷Vbvsٴiׯ %$ij~o׮%ubXɴiQQ{ML.~:z˗2z5-+khnnWUdv*[Z:gdX$$BCwN߼0heeuuS|}۷ A^HLoݺW aX ~SoH܎u"2zVVSWg߾UJI 3G{?Yt)pspxAp'$(S۷SƆ]44 նvvw07{-qh^YY"97r^xQ[;s  -zfrxxruйo&''!Gĉcv ~KY3/ssLuqp] `1F[&E3f( =;V$gԚ-/_~>}kW,Xjhx69ڵ knS?zY%II vw^NNKNXCc<̏ "\[*.HNC/IIn߾$ p KQQp#dd,,f^O"Qu+O|s=z Y ӳs}/nfG]JJ.VT4 99-.cJN={ KK`m-[޽5!!gKX`Yt׷ |}BAZf_\ygc~޿(!ϔܖkkOܶV-Q3.d0D%˗{yuƈzII- '|}BAׯs/+)I}ƍM&1vvW7453O={ cb2,OAA4*w5k޾uƂz  aJ(+Kk?p-==݃D2։`m4uQQ^nn€{R&%˹sg _nhe5k8G_k_csrZ9"ⓕwuu3։`a=f zdg#2>4{{8x0dZG;˖Mݷh|lEȎ- iC)g%v`C){[}8zc/AAn!/3uE+ ̄]angwC^^%[7|ٮ\Yٱ,+,)) 0vL,GUUrP' #z mtIdGPX )ߺt-[(m 8|W@vlM&hٳX1EP; `ۖ-z{>0u:uj>κNw>m63 ȕ+/bc?_QRAC1Çb g0zuCh5kֶ`V:a |,}ׯ n~: ɹOxz;cnL._~uVׯXeNx;;uVGUWjiy%']::)+߱㞩 G8 d zR4eLL z||g/+kT#fK+uuaa54 m'.wjL"@v-Z6mK$,Mtmsx- zD": =Y^nik#8)(R7?YXm 畇۱cqTTFqq A`lbgg09}ƍčo65aQg (SJK 35)/o07D"Qœ]511'NXuX25ՖyA`,ꔕUfl|>/ 8^=uEk\FF[YyspCBi3-,fbXٶn]x;XլY.+V, 8R=u ec^,+c%%uVV<<nζ>aqKluZf/;wcǻLL|ϝEuJJ55-?5Ȃ+/ p~fRBWoo;:0C\\{{]?G {y9uҥ;vD.4OSSA,֨&󫭬|$$v tm ̄\\͜]:` ;Rゝݼo䛚^8"=u<GPYHGFF%fͭ"//SP&'{֞la@v rY3ƍD3P̝;96֕|\0Zyx& biYY^,Yꊲ=F˫:s=UΨ1m^eeӧXBZZ0<|u׽_`Qg9Sʌ0ek\Ԕwo[Y /\sw_,U@vL];_ j42JOuFNz]FFmKꪼxԶnNRh86Uzxp6&#vo2RWqQVXrppq!4uAՋ׹55-L5xMMW_k !!!@MKKٳ16骨Hp<悁#~AuuSL X ܶeww(`<] "2!1˖MpȖ[k!!Nrr}5t)w/fJ daBS|}_c;tuե:ASebc]MM/b%? ؔnb5&NK5KYي4+.qwOsZ 'ttΜ14".OXZZLي8a(||^M: z:73$7272/J> ||jk[ho'*p8Cd8E{l:uiLk߾OxΤlzv|իtSSJɔk5ƺMrvlnnZfӍ5mm3gٱcY HVR3v-9t* େG+#(ShReokŻw6g9b>`^\\ecXG dwu :r$޷-**hcaj?dX` Ej[lH` q,16-k84IH5ě#37..7 l|+iiUf@0Lʄ7oBQBA)JRRnKK ?6?{uei9BU*G8dlXW+gcQO$K9m8?&&q]u33cCïԭ[c:U||GHG[2BIHaJNNX__? p @n:0%O8k:8z{=VDeggSV`lj+ p t%99?nIO{d:D=i֎kFᢣfa~ooVbpq5=ds1#מ8aut̎d;KҌ]_'mlt;SH_$7vvxx8#漼yyQDy<Y}}u99RV#=SRPS*n^PЎ7oLM/a!]jiɥ5ޱ7ίmyk'յ^}U@ׁw=]Udk;aF/^!47<66ܺuss083Aah'H&SvWZZw{'&cVQT pH$9**L+`8߲eS{uen>kǦ%7q<<ׯoܿĉhgv"։4:nlB:UR_Bxfݗo󠮔}24” @k6rsO~Ǐ1 6_[ZZׯ| ț3gĿ ᬭa0 /p8Ӓ;wg[[TU5a9s&e={ ~x KZ;s v dj{fjv!!1DWWy$X.8r@c̒%11{ڌ>|+YYϝ;'cjhHh\7K/_~=t(С](?:;lq7U{[Ob䈈tCM8nݺi~]5$pܹJ-`PTޫ-giya{^ҚExK쮮>}XZrrZ2}ΝY[f) R^`@kio'EF'"NQTCQÀqh߾`w`\?׿mmsss޼wYA)UU˗WR ˖֞xu?m"##)|;&7?_`eA#iiiٲůףGN# boou ;W:BF*""]\L&{& rbnh8Ȏ'']v Nܿnڱy&ƬoV^^7YK[s,9>8UUU7mo{W/]:#E]NNxÆΝ;F ϯCT=}M?_yںk`ܪoh{e t7i$8yHo`!11{okn~i'F>ǯ#"--.?qˈDѣ4**466ku~l3Ә5{)#$s-z{?| XFuA-=BD@{׮%TT4>11ɧ-YRR - ֚5s~MK+:A<u%KAQSАN:YX ߝ[|o* PkiIH?{5cǎYDD'$Ӭ}[g p9f)06DFMu050٨`uglqYHh<$l=n;GQ4)… |GA?~aoo//HeH?υu5&&Ϛ~3ۉCd 2OO>?zk{xx8@3Z@@Ĥޡ_8.??Ζ=^._` އwM߲( nL: 22Jxc,ҥ/_~zuPSQUդA.((fnn^^^˗6ܨO͛7ʫW~=.Zuq~N>СCwnhh@qΝӦ{.//BBQQظ~ziiiaaa[[Z⌌fIIIC} էNY߸hoDQϘ!$~Gܳ…ҞSb%'=rCϾvdg:_VV6b 񇨨(CˁݻQk)))mm7oy󦩩f ˚5kJKKjkkwAn``DD720Dvv=ڙcŊX: 3>}}cYYwMM A-\ĵ"""ddd>x@EEB\rE]]o޼y /m=**jRRR]AMM ܹsD/^8qbrr2q8ɓ'ݻ( paj"&!!!..F$͛wyAۇ LFaӦMkoo3֮z?e WϚfz7§OFD"yzzN8QLLlÆ K4gW/7#N^O^{ ???GD"|ez))) 8q=:yGR[Z[[w}#beeO_/f̌36oLmӧ~3)6օoŤoXJ:qqY4Ų.PN42:c蝓Hd%kׄlaÆ7VVVJHH(zuqqǏGGG"G}={?hjj"TWW({޽-/_˗4wDdڵMMMnBƦԠ(z)KK?~dffΘ1G]b3f@Q&LhmmEQvɒ%SN?'DP(]Դ]O*==lΝѽT#u4hii݀zP++7o"R[[{̙)Sdff~yΜ97ӽ+/0:p ǎ뾱njjϷ5kV_LAP$HyyyD"ɓZZZԖ999>}BQ"//Bϋ+Sj)SP(~~ƀv=.W<: Q]겣?SDU@yy=,*ɔ~-R:Yjjj-SLWΝ;wtt|L&zҲώ|E ***kkkСCgΜ166㳲Hc%%I_w=8u^^/_t[{_ h64!!WUU}1ٗ/_ܽ 7~[Q@.1tp(R(+Wx;;aCOO]'&&(J& Ucc婯NNNDQ4 аk;͗esWD"IJJxEQcc'Oxv99ńˋ ]aYSؿXDoGaawZOSFF ''*EPPp۶m], hjj@5229s?ucKK HZ_;R!Bκcb)))EEEӧOIKKKJJ233>}zRRRBBŠ+"ɓ'{Riii$Tiii-z ]ǭDjݟߕWZEg[XL 'oW/_ r]ugggbbRO;hhhԤM>kGP129+-,,?~\SSs[[۾vvۖRIIqConb _pq.^\W7/02bBSpp!UIIɕ+W \]][dddcmmm666nnn?~n522k[!**[__;666cc3f'%%Q%$$x|aa!uI"##]Ä77Moqޑ#@_ zǏ3b F]򖗗޽̙3 .tttQ:`<==###oݺ%&&G]N~Ipp.up}SK&S/f(zu> 66:Id2eGԔ!)۶-zo]23hi1yf ϟGFF"^YYKُN Hsssxxʕ+ؑ{ff7 >>>sXd< W޽{wQQQVVARoSonnnii'ҀՀjYYYYYYvv"SS*%{pvɋ&KWWW ggg`Y[ccÇ=ŕu[ZZ:::舋Wf$ѣׯCD##̛vUoX Cg ed>{a7=::yY^}{EM퐿2~e--NE>>k׮==G=vGqSSȶmۨ7544So&kmm%][~޽{J֦rСOGEd2??QQ#x 4'--- v~vccUۉ**|},zƯ;͓ߟT66y]'H$uuuyyyz]xj 7=/ˀ/f ۹h>`:P(W<I:phfk{D7m}CL Ce˦ҹt0c|Ͽ` NLOOk )7yCw࡯MYz֭[31EJJIk_lCd*//_n//ٳzNѓù]>4Wkj ^ܲe͛߫s=-4o-53ް᷽{W6xP[[;}tnn5k֬]ٳgCﹰPT9U 4::Ho`'% +ff##7,:k]#e],+|}#G'Owtgx ;;;2ezsŷnݚ3gٳg3BpU))A55)g``ѣFDDa0X11{'M b^矰e˂7^t>99ǎY Ն@`u˾-H r(:"44tϞ=ݷxzz޾}aӦMkoo>jc.,,|iAΝ $Htsswss#d2̙3***|||OII0..NIIIHHĉ] WUU߽{wGG͍F /^beeӨ(lRRR'On}Flk444zԓŋ'N=Q: HH o{x&al6UՃ.ز]G-~t--"}\*%{AA5г^뫁%K 233NT VVV7oD!NGff38%..hii޿3455"RSSCvҥ޽SRRJc#_-f(RRV27g$ HNNOPmhh殩A$//@ 888 R]]:iy󦌌Lllϟ?㕔gqz._˗---=|P`$@4EE7[덍uEOhnn١C!/GuX[VV`׷JIC.,QS!Zl IDATgeeQc%%~^:GVQQA}Ν;4DEdrn333 R2L"54<||^27{z^^Q 044ז2+/rԩ]Ǣ.:{=|P^Y2k֑~;[Ycd< նmzD"KwΝko}SyNsKBB 4t͛`8; uAv8wĂN=luƍD{X'iiɹwYY i޻wZ[;lשttt"""~TWW~z)){(z1AAɓ'#Ưw]N>&ԍMMMBBB"""۶mkmm%HgΜQRR7o ͮ?^]u떼s[[͍#1)cUuu>~ɓPZ{Zi>(0~ ŻwO`$Y_ԦMo$KP(Cԩ'fqqYtgzxghƔ{1+2aϐmmw;6NAz Qyy9uCII߰X̐ dz9ٳܮN9ޑ~o;]kjj~`71,`vvv?~׻w>eC0II 64nuoXd: ʋ9A+`d gĉhlE.Kh<E,;::ҳqUFQ4% `rww_r͛r&i89/^\ɧ;wcxMw00^GaO3ws[޷4`%Krr*rtqqk׮ѳqQU<񋝝رc?~hkk޷o;;лmٲ޽ 9+W^*-:`̩եWDL爈OǏ[rq3 ۾|)۳55iO;UNNzYH-&f/H^͛|ю9: {kNaVT׮mθp!ll+BBҘ͟S@׀.㄂hT::k\}; 8`TcZ7aIMMmffәgw;fylGkϯI(1k""?~:х-==݃L$?VWW7?EII̙z3`ÆvZu}M:UwÑQP FosD'++jګqiO&:TV6dV=8`lcs|vtXE f)c(eh8%:zo}}ѹO~`:̩򪂃S=mxƍjfi9 EO^__ر0hyxFp_ΜL +@~ƍ/sr鈈srNz#Ch0/ 3ccbBB\\*ll&vK'&Mɓ#"JZX\ J:]pL|ݺ?6?{Ɔ#(FF焅yㆶ^R_ۉk\+)#--Hͮ]EE?OKK˳g(qWE(I͟/uA *HMFdTY44aabb2/_ μx᦮.͔` 777##};;)M߿¤II+(270+}c0-[h_RREXX:#=R QU:Ug hfM/d2ɧ/?n:P''UnIOafvs _x\h.AA RS /GD5Kq2.=bcSSg2^ùtkٺɐYd_YƩOvv$$ut&-X2{(G;~p9իx7 ~v/(>}:&**c|ÇMMeJ_ϟyKGi Kk**10塶܍DDX:VCdҥg'N}׳KĸK -a/=|oB|}):pQJJaB~0!::3885+LFF|ڵs&M66W.\XuqE_feR(@;w0q\W㖛6õv,[vNNN80Б4>|믈"-Eunddz\\VSSMM9fdg98lo; _)XP..^ܯ$};DYrkkGL 'p}uX\\je99ss\̭[++K SVD$=wd2$}HHZUU,11>st茤X㪪zjjQ^^ndq TW:9sB[n8:UFFVرx(g{zo0͈Y !)>GFfDEeTU5N(bh8TklEZKΟ_kbu!d2eѢS3gӼjX\\chxva:ɩ6M->P('͛| rbb>oꗖ?))( (aaڈde5k ޟB}srNׯsSS SR KJ44d,PQ3gsB :ʕgϮ^ZgǏgΔJ?D"9(($IVBAJ>T.^fjhD:Ν`k.T>|@_>Lٷ/GPvvo)ݸ?3dvo6omi ځuaA ydzNxz_WVV?{'O̙m1LPD{:Z 3g*(Lљ4|aĉh^^kg)tݺ?~>{Jsᠴv\p QQ>wVVoϟge_ϵp&|f,&$佛[1s  :L;3kM?\]3bc]D;=޽+XkdiMM˗m,ᗶ36돤_QQIHhY[vTiw6غU D|RF蒒R7A[{…*g+N.?V(|ZKYXŨi108=wk62Ê^hjjj{,+$}rrլan̜utS´ԢJ.ԁ. \mPPWׇqchֻfҳv;ok}}snnNWek?Vd2%%0&sl粲zEE1--fs{Wm&#<c^OHȱG߾:0p[Jäw^ZZp WeNNKУKNVbdt)/oxÇղB+WXn0-f4RB WVZmAYY=aTI::sNɱILqu}Ǜ77-]:uT GuuW&ܸ op߾UFE?y𧬬вe`*w0 788]a*9F5k!s`||vX^+%j^b˗:Sͨ}%>eԥ=JnԔen>3HXX\QR?}چ}fI]]^mh9}Hys0ULUN|0阨6:7pN.--|&`T }ܿx<_]T,Yr޽ dcSVVpZhgwcѢKvblqG)) 2ڑɔ7o=JK&&Z\\L#83$2rл:?.ty]LO[{"uԩG_dʞ=cb>o^`T_-kmX윜p`~"ҊLL<mva=hC$=w: ho'gOHMXtl]]| x{Ho'Xw=))nš#;vMHȹsg3K|Qbfv;v,cg{zo0b{ddFnn0hX s/_~ݹ󞼼G\^S2{c,lm 娵-VVޝǏw שTiiE.Tzuȑ=>F$ii: 멪j̈LOK+^Z[Fgứ酷ogszԢׯsJ)kŅ UA!۷y۝;[W:_>},"zS;&.o@ M)R "E,`PTb VbobQQ4EBS AzKzq!@t}s8ΜlfΜLUYٜ4,HJ̝;p,m^7[܌sg-S޽c#_p,[vSP/*KRRd 4>ckHWĄ==2)x|wxVvݠuqq9YUU͚㝝99 酳y޽u7$32ʩ‹H$BMM t17WE"y󃔔n47g ts]U7k ݁磻D4K7UUoq%$mlt`]p;w>~̙nn+;;Ǘ0߿ۖ-)"2-22M[w'ly/%!mm.^tqv6a-fe>O%K锋67?4mϞy̶QPSRUU͐𢕕رZxqCJ?B޹Uf2RR)|R܌U]LLTL@ m^0U F/~}Jĉ%ք|qut4ւՐ`XFb?۷N,Zfχ°!۷VT4X [$zMu[d2;JK޾,TTopg! T:ly^z 믇|>y2&'خkOͽ{h ӵfݢ9A葱˗BCfe=k9_Y11ߛpPe˦'@YYׯ! ɩJIAgdTdHxJDUKkM9]4.<|<={gcf֖[w|PQwt4d%S_y*2!!~;)10L":wnZ p)t땕3foev=\ys={켽Lٻ7ٳ,33슘 G!de/Zt=)i]wty}>>ݻk /Bht U],-5 Xlʦm?l31q/k LiiÅ s-,4qSd1ڊOJsͩ )( C{ߺ|FR^)֬ wP 3}@v ssuSIo'GDd1oK/ySLJ23q>/_^˾_Kqۿ~-˫jihvwnnfg,_rgp+V`]Ϟ.gaa- νRV(}*11A[[݅ ϝ{Q(-Jrrcgڰa7:: % tv6l>w՘1|p3EnnɍeM4k߶QNN27735wϝ{y90!xMEE wvC˗<{oeesFFYffyj*GxJSBBJŷSUM/6hlĺttƱpxi {%XRS'NĠu+WN/+^; 6dS8:RS >ի+ٞx?Ϟ}U^jA4$ҥ7o׻pyCHFׯYcyr&<**,,>֭^xӌEEŋܦ0*`mNN||H/3yS3iiߺ|i^KV˗yYYc 8;XZj/0w/6? 䯧\2㜹())˗W0io(@ZFn/ \1UUhkugg^LO/#/ZYijj|X:;O(}6g]TTVddFCV__iڒ%Ң#fԴ:;"#.l31q/Ô5?*>>BG==Ev[4"**GGguJJ.5^t*ׅ9 ?{ҥS/^ta|(0_?UllχXiАhh<Pnvbf5k;V84tD7XLO/KNnCF ؜TtAA5*+KAǏG%$ad2˗ׯ^rp07V''Q1 ͻ4\^[S'r?Լx=:mS(89,Yb Uݻ^^rwQ@mkXi0x,hQ1.dxd2e11H$& oQdCc^^smn[xvA(/.G"jjPZdd޽ZELL'**+9PXXn ̜P(`BB(į_-NNB[ag&-v­[gzILر蚚V{ŅmH$er?GrjRce T׮ `[7u*G$* ߰a&Wx~ C^[ !){FDDdP(3OX™ϫWy6df0Aݶͩ茌_Z E++MSS' A^X{܋.ni Lbjjj:t H /2=-]UUլ9y 9<(p̳MH$bBUMNNrrOnSY ݮj~ƛr݁磻D4g6nwB;See  LM'. g?s楻a!6үYx̣ ,i$>;RNnffl~~q""cdeCBsTCc.1a E(%= 44))3v7ﲅ:k|h/Yb̍jl$66gևаB!g,(8Qɓ倲&33@v2djkۮ^}xȢ38v_[cb?~VQѤ9 66gϞ0==;w2/xԩܓp$ |Vdduwu)2'woDqq}t&OnRJʟup$ag7Nf, (?&4I&>~7q,EVݹv͍Kg~}Jĉ%Lgc#PNﭭxuD"98@F~+.n b y2wǎ']kG57mvT32rrD*䦳L,< QQYG9;XYieÌ \8YxW__▢⸑Cn7)*J<`o?Qs߾U]{O@U_qrv3eJ:dcWT4YXyd+"1$zffy~~5˙ZXh˳anqqׯwZ$QCCn"˧Hs&>..xC :hrwwwuݻNYuZuUUWMMؘ쬬c'eht$XYi}w }|==唱@11ߛpPe˦Bꄱ9[>F  9cݻkƎE+Y&zOcJ&;K;B%>u˃:; ׯ' :WᲲ/EDdNN>°/{{?1C- `z ~uzx QTT{۸++Çv&ii͛0p֬}Cɔ׼ G7 ,.,(UHH`SIffj9ǎXnC5ҫWy$Ziӧ?I?S||H9FOy.:BZZY Yog6̜yT\pp*Y-ciCV;TT}| mPϟL@`̙̫o)04ϯ GݿSpuC_'**{[7mb*OCY\ktv+<}}m<Znv$&z3V_͛uz@P7n9@.趶Q1FFʐ8Y/ʕ7iim 07os A!QymKrr^H$yy͛g^m>B}щףJI7Borr'm0)+k<U||Ƒ#X!**ӧb99˧ -476m ϯvͽxǣ,Zijol^Wnl|<&f*mbǣKJV05$PzKkk7ED-S$غul}_mlt>8NB~~5蒖VvȈN]LQHj7npUߩeh7HwT^\_=H$PSSkβeSa_H$z~W|VyT,4+@SRX!&{xxFuuҪU3`=QH>x0*,,HMEɠ/ͻ/+HOӯ\yvyxogLtw/^_@"x&Gc#6'*#<5]PPMTř35yԩ*;ACmtCȄnoK\ȨGH]lGKwD" {`!."(^^s6n#(fh@HH .nW/&ŋ&NZuc{fOϙ'O.:'-tz G@ v%Cs_eAlH$GGŋvUW g_ ֯>qb3jLJ,W֯:v1,=ڹI_yUf0i)r"PS]եDd0KJ~FUFsssU׿޼5!!F]icDL*mc0~ʊ;9M0WR~;5 C>xy~{RBߘI$qĒg*y!(0>>څ 3OLJ41۷?:CB!~x@Ddӧ{FP =) ,/.4+ (|4wɔH˗fbbSlvmcThkk;iҤ۷{ ӹTll6߉v ik.ØǾ}aa齶ntt?.$ě;@ **?Nhi;8aayohժ;mpٷo@P)zD"-2LL Y_SGDdf-[vܼ_~~q9ɔz#LPsPҢg+O Mj$%/5kMrdNŶul2+:zGaᙘVVY@Dd%6 ݺ:0CDdLϱL|PMbm̠ YV_%"\PPqcU'QQu:v+' D)*wMM+, e&I$YhB_EU= H$JQQ-aw4өL&?xy Biի65w*,,…Koo%((UDd́  5t_6؈ 8:47W㰫+;leOdǏ?dI5w[I$JMMl f U||( {$ɯ^+b IDAT{-zܿDLsXxsuQ;vp#1L&S׮MN33w}DDG K?ujYrߏ^BKk}FccGvv]FFmQQ3RRB%`,tu'~q92?U D  GcXnב#""bbbn+ܹ:Nvw3p%KǕ6g8@}54ښ>ӘKQQQ]#æBGZ=|V_?5$ill<ȞA~~@Wl66vTWc1~a*+1uu'*+-քO45;:;:JK1n;;D"A2ܹ ,!"荾[.$$pE!!mAA X,//1L}}}"@fMR("f}A B" 9k]Uբ3s]]ի玤"+ldԄkh65jk1 fuC'H$uu5y644ۊ:גYm xmdddMM 'Nd9賍Mdd$_~5c"ݒ SWXĒ2\TT4&d2B9}EEEwwa!3zHO>"vc0d2&sz/6666myU "=kt׭[W__"IQqOLL6Ϳ"`86|QQǏE7n$>|Ԥ ̙s끆~O

    >>P+=/h  755QVs-+)))"`hh.maɠ:+`'X/]zcFc BFX#~kkǩڵDCCC)APKK_A~~K.R(,K&;}_.,,pd2ڰ9@g耾eee={:tŋ ,EP)ϟ?WWWi y߾}|}%XZZbO>%&&Ruc0gg/^DDDXZZ***K00000N|{{Gmm+q3|||T bbb}={D"7-u2:Ū 23kjBxzzر#,,,)))..*_l+++{zj__߂۷S@ ={`??0cbb/^<A@@رc`Xz.,X `s QVVWXs򂂂ÇӜ:p-[h^ Z|͛MMMeeej`1ʊD"^Hjw,Z:FloʨW=:xi)c[o:5PѼߔ>ǷСCԳBBBϟ/e`g`j:)3o4UPPf455x}V]]]RRٳԯW˽,Zd]W &ʂ7nn[h3 ```9sj#$$:k9/((8iҤG P4 Hǎ8q4 ꄞ7Lx񢦦Ezzz{_q4`ha߳ZW@uNz}^BosDDoHL}4b_##q8pvvv߯u}||V|{}mYYϟ˗ H3;C@k~~~ eoׯ_Ǎ7~ ''_htZZ:HҼppp`0Ϟ=:f;>N tt|Ggh`Fȇ$%%{? +i2!ݻ P9G^CH`_K4S,˟0v+b: 4;pʕ.F ϯsE z m@Nj| LLBRp={Λwyا: =_9PSLy1'O@_5tt Jf/Le@,A: 4;5jjju!hwWb+gSHorpR 9*C41Q}mjeeeH3O;?~Ç߿v~;jS+ U][[[h]ګ ŋ ~70 @ii)S-iBsx0hT4 ' Nhn A8Ϟ3 :}*Ԃe L[[ij =?@Sԝs΋/Μ9رc7onnn~)=WWװsιt7h4Z^^{17אPnc%p%rὰ{ +g^ʀf!0XNNׅY ++~tMM =WAoI-X /Ybu%' ޡBS s޽111uuu PTi1ug7oެm۱cףGھyFO4ͭkÆ ûƺ/ ]JJJ233:j*:Aݻ>pjbBhnC,5Jxڷo۷o@[AA:p/4{f*}Co9kܲeKOѣʊ.83{>`0ׯ_tM}Ij6Genn2a@Otڍ7 /^L0@ >>hطoիWKIIM0aݝY٩yС2f̘qrH$2** '2e+o˧yݻ,--cǎAH$ZZZ4u+'L++|rK:]T8fb=Ǿ u( W^USS;v}LL HhI02`,s9 hkk@G,Hx;2~G^^~رPyNy$ŋ"""3f̀\iuݠ2~#CnLߎ{:@需 '!!:zNطޓ>|:f`gl;|b˖-BBB ZGehM!>MWVijzd0jҏJwwׯ_ M ]A;aEzPP:uӽCPPu344?~ٳggjkkKJJ?*{$Bu;{lh A#+++##C [())III׍=$$$Μ9{EGGkjjرf!zq]J\\\NNQQQv1N g꯳Ѭ )8GehM!/6 KHD@@@.V0[N~`,,,p8{(]|qqqK>BJJ Ә1crss_>a%%%!^^^k֬׮]p¼y󤥥mllN< {7o*))?>!!*?ٳEDDzY#&&m$St钆O> dWC[x%K֯_ɫ?jn!==}ڴif͢,9*|vePPj||Ž'X $WF`@VV600M]v!))bgb)ma"6l8}t/.Hnƍ8״74%ecǎ>'x7jEEY Ϗ݆ں=0QKiUEER( :VVZRnCH](iIS"ݨ͌k-]8: 5K[^^_e4%:d`QQN^][{‚Ͽa`Xpv6ߝKaaa|u/_vwwVQQquu/#mm655/^pAZZ???111##9s?Wm7nnlwww <^@@NHWT`0c$$xY^%Cسg.^|}Ē %//O$ 7nVW-,<^A E% ^@ 녫EDiȌwt# O-A u ,,mވ]S*3< 8s9KKg?lmm'Mtmf t˫W]RROZZ44HƸ8\ӧ[[m*Ða2uVu`˗Q̰ 'bg_߿@BBphtϟu^\\x++M/9Jr4uiGBs3.$ӽ{d2yŊ۷ϑ&`z1d@\ҕ+o_ ```zr_gl<ݶt IDAT++ j j(+K).[6UOOq1W˝;?*"2f f "!L$s"_gVV cLS7lB+ ý@-?~(RQQRSs( )* x}CV!(H; 3wy / <ēŽ00000D"Ǐ߅jkё2ED[[~ 4,?wZZ/_^tT>>xڈ _G W7m=O0UU3v,++dU0C#~ҤILfPzF?vwQ2ZZܦ+ij8q$#}b?zzf:RR!!-v2&xzZyx .쨨2X6#@ Prr[A@]E &Xtvvfm0008\wYYϟuyyht]a&P뭴kiM3fCPw~*6lgzسn˗OcM0004P@K3VVϏj7Sϝ@B}˗N$ u?WW &&=a 'Cvj7n$5Ν_vFFm _;w>ܻ~a6!!NO?"''n[C[[ǂWedĢ`IپH?jRS))茌n$++YaVRR_\\Fחԣ8e55C֞ġ::OݺԄ]hN[uuYv௃ o_gYo1C!fФdfv!vH$[`EEӫW{Y!ݕLLTMM'͙3Y^^p%Ըs4ϺZ, c45崴kj4Qɉ瀀nٶm'L:d2e˖?>hj o`a"7n$ݼ.3(G_gaa;m EYNO/#HRVV&&&D"64ktv;VCeFÇŶm%%Em m@ n}\^!u2195gvR2n^Ȉݶp7R" VVlQ @*/oshL!$'N5Qn{Oee{)_Ņ<<7n%..n`a:d2硡_Ycja``zq˧Oӿ~=b^6U}\{vStt}frrzVVpz 5|_Z(%//@3rBB<2;00ŋ\ڜr40Hʕ7/ٺu aE}f҂73;_v۶a-uAA ʽ߿WSS˙ZYiΜ gj; ;G1 @q琏.˓Ye 1'OؼyֲeSy2yDFfih8- 炁 Ν{״bb~Oޛ''<ǏO5wAT>ueׇ,^<Ţ;(=_0Bty^Zl*;wf^}:##))wƅ} x2>'43vv0ftt`|<{@~t j񤨐"'5-sn{A"њTܷ/k׮LN[?h4A1wPDa`8x0/O9;ۭX1aʔ8(F{u1oaXR]] SN!zVG,C32**d6ÆDGcbdf CǓROai!EԹeo`3sߏjNOHUU_NK~=vhz??k'Sz:ww ϟ_ C֎Ǔq\yTY)wp @݇ܽ3qGj-f2??LT|*EE[/a0\5mZLh}"̙%tS+ͧO/%V<'R /1w|PXhr6UהUUs\nBьamP=0 ǐY>+1ĉ۾~8of|0NPκugjܹ#xf_~M%'G;uhޢEndtǓffrrs˲E:''ۡCqqA0+orc^^VV#7`F&~4 i.^,4gΜ0Qa|ilTݛeefώ7%''[sU[pFFQVVduV[ǯ;sP*Ls0fzڪ:4!(jB"||PT W%S߸<4Qb@sz9uDhھ=} GG9sFhkTWƮ &;g$+Əuh.곌{f&JufA ZQ! 1.a(Gg=~ht'O޲Ri$!!tĈszuD*Unv΋sg<ᄏ>a0\SS&mV(ϜY a:DΌBD9EEY?'cjnREQ$u:=V ž<56%{+'MI:,Kkv]'O6oH6A`5k[-^|g.=@k:MHhӝcGEhJ15G祥tZР #M5#GrlSTvj9YVڣGm֌ȺkמٷovBBchRf%::ͫק'Dyyy [SV&A@F0JuBc@Y,TWm {蔔1tg:]+g{x8F{zyK:ۤRKWFF?~s4w,h*339WrrsT*1w5*t3wݨE57k0V:3BB;w^..3f8g(/Fx:РzAo=jT GM\n_2o(sdW^~؁6M3w,QQѣXu_fOZ^^~x.},߀*Llb]>nvn?} 0`:ܬIKspNn.Nw2eԩ+-}~ܱt6ّOL7'Ѕ5yyܫW999ejߟ:ilrX[@Y,^bP1?|5H d5Qyy͑#G QQɓ`wwhK1Z;fzsKz̙ -bP45o,-C5رm8qy@di]sdfr|^S3&JX_W~5…..=qq  n(}㍭w7.ܱ/Oٓyxu VQ}V90s.4wc:tA[g񤥥a66$//9j8g2ݠgo=ڰ{*˖b;(`5_7jlT_p;W<$1cڐ0q ~$== >vfJ N:ܱ>Au6UNf&}a 41S|&&pā>./+V={vqXܱ<&ԏf\X Ty6/7)(xp0=8@$PvԤ0L&X@E9t4LְwoݙnhM/׍T/?̀=|ǎ_~ɶ'Ϛ;{v|7 }Do׍4]NNK/^,,+vq5*d̘и86bFo.L\0ܱ`˖9uӋ`y`Fm2/+(*,4J]UpD$!4uv%eKQ^^{wi4yFM߷'uS|UŋEƢZھ=}ϟ_2`ر#/O;;1q}J+*dz[ LX-dfrx<9,><r>rǎ'n^܌/J׍PQ^ca/No,0jTԅ^o:rSߴ[<4| -Ŋ,NVVkf^b3R?z_ޣJk}O&:O,VTTH|YEϗB\c`Qrf񤙙ܲKZGGۈxv\{ &\v֭KJ $FF;(ЛAޑ򚬬⬬✜RXA& 6,`ذ7s@g7تP4;H.=Z :v]az}hs==)kcG~8|x`X/Zk,^nڛ`ޮ,=b4w cZч>ȑܭ[/opa"4ہhjR߻Wqfy^mT!?l+2ҟ %ڽ_z af  qr^{f} NO"m?nÆ 6L}9Z^*ObNxz<8KsLNmm#@nQjj?sU}ŠA| wBq`=<ܗfXۣRi4ZΝ3'L('#pǍs3@Z^$d/E]m}}_KuN/)=3P4h11AQQhV9Sjk|ia>_sՃo89پ9sF\o, _bJ]~A@pZ7P(aapA>aaLAj_qL''Ϲ#֘Op0_Yf2Tư^R.++妩HTr[[nLܩT'snt:}aaen.7/HhӝcGE`.$OY(yscg>ڶɓ?~аР*-*6(nl<nUUU;cƮGt:}g |ί֯?y%Vb9H߳=,qON"Qrtؐ(q'* hRf%::;@+&%'oj1̐2fƧP1?|9Kɑ$RD=J>|X V57kllH1lFHWl@zhڴ׷cv`0DE}!ֶ¨Qe3t!qbq-ӓb:eUjTffr4*֘dǧ ''odg۫lbcƄ9,ꋋŅUUq8 a6l6!!^l'܋s{?Od…K;Nͧ<0oGD@qRiE뱠Ԝϗ2to;x='LSXсGک k6 0AÇUGV@nYJ#****=z$**u9;۱ٌ C5k𴚛5W޻7 1Ԓ| =W8zp!8$,X7  opaQ!t6뗣0. 1/asCS@5Qg8'|JyRfXѢiҥ/gNh./.*q8bG_ކQ_R6ۓDc!!^4.=GP4wF7hЧ%BꍾYX79so()ޱ<>yM-E1IDAT#wxwwcq 3Æ_ [E.WnY7"~xׇd`tVsƘs\n 'H~~Ƣl>>n}qUZ*??`ᚧ=jk>A_f` Xן bla駯2@fe#>>nL;dQL7OO |);wq8M4rdgOFEHDҪUO־"uuMm#d2AGDKzߢRi|)xҊ D"xyS}}T&Ӎtvc0\Bd2inǎݻ;EG?]G^}!5uq}s_}k+SGH$x{k#ΙL7ˁHKn(vXL" JK%\q,>aTcƆixw/78F$pjćBqќ|}>> epVl,۬6aL:76͙tvy{z{HUUUEEE<8َwL y ݓ<|X3q"޾ ((޶Nmm?Fyz DRF%h'D!Z4mZ VqF([:>4]Zvj@P+ʅJye\(H:rwW&ˋ`P(4 d!3MܽeLJu-P(,++U۹wx-G&=<]tg//W:ӓ`xzR<=]ZpV۶]9}.4{v/EG3Gb=|(޻ǿvD$qL&Z8WV*tz Dl1 ݸQ:rWs KNܣЇA-ŢXm,llT 5ËDubJHTR=Nb(}g0(43IR<< .,CYSSaT?6l1gAm"W@~&-^NNGUZL&tzu`\)j/Y' D" ZQq}:b6`z6ŏSzDب6bO;SNt L:1.4jR=8qѼPyF&'GB]Ѕ(mTZWܺŻ}>بr1ҔL&R(ZUmY.m] Rikkjk$HT'(D"E]]#8Q"7$WW ŁBwuu@ƴ݉L&ý@0̙fŹ;BuT+}NC&TG*Չ89,b翵ׁ5in(e2Lր~jjWM\]TwH$'2%@|\r޽VRRү_?`|` :4e<--mʔ)n Ư?>>o-n0y睓'O*N888 b'x}YwU\\~զkbgGF :XGӛbOw>ر[ǎzPOhlll}W:^-7k"?%ދ}|rs4隕O3}]H`0rrruM?SbZ`9? bb͕M0!9w:w> q\.ZaׯZ2`rssrJvv69rdff&@hssRhZ5tS<~~---g^Zu|tDv-2":Xx6OB+** b5<<^UUUWhJw~4sb˖-cƌYtq9G.gggwyy9ZrmԤ=*fϞkd67?qLjUVVvU\(.X`+W7oX{i3 ۶m{W:>:}ՆaAo-<'^3ZXXL/O+y;@S^JJʡCӧO&My<^~~qnj;߿G}dEz+ǎ{1BVdCM8>ܿBشi+Rn`7o^xxٳ1 [t)HII遗VD\.wɒ%9z{ܵkW]]] .,))OOBG/_<--M$??`oK.5^3g:wK`,Zgo޼yj`08q uW(frssRsmhh0ܼl2ooo orVȑ#AAA666!!!iiimnV'L`ի]]]PWhbcc |߾}]9sss o/;ӦMH:>z4ʷ~k.6v|2@WЗuo}ޚZ냃_xZ{>@ӗ.]R Oһ$~,o cB̺KϠ͹;3b 0?"ˬA_a\yuf!` _-t:}YX\` _rA|E2wX ǵZmzzV!`8 BPh@\22rС[n?~|||<33( L&Z7)) VK|Ro644‘}*ʲܿu낂\nfff{{;Y^|e.M&FqU #$&&^+:^__Or.[]]m'B ;v.]RjM"ޞWTT4===k|z O̔ŕMd2ٮ]_nk<o%f^ m1>>>fE@&رC TWWPKu:h${bZ]\\.]ԎÇ'~IJJJuuu3gJeYYYAAL&;y$u֙5,//DϪsOel6Ry/222W_tYo߾Q矩m322d2{+DDDf9ξ}ZZZ*.\b0k׮MKK#[9vEӟyq~c5s8]z?"rt:]GGǦM8INN(--ݲe Q#B ۷o,((ldDbwܙK| '$$˖-#ZrJԎs 8/45598CCCdg}|bѳgFGG ݻL.\.'1bD"H$d~~߲fB.0Lfzzӧx 66RTT}Wb?@@@ŋSSS@   ů*n:_ZH ###CCC999f5ϟ??99i?U1N*t|*#xmmm]]]aNNNUUUyyB޼y믿>8cccIII~~~م%%%bnkk#N#a.LHHBpiiifѣG)*fbaC~%ª^{ey,[[?X7y%h*1d _`޸q-:s ;Naq4] t.u aXT/0}hr^}@Rܭ5x1uu2_ߺnwkq `^?3=m665tB>VO~^=.i__;f37f|\G~=3cjihtU<o̅ gfLl qL[ĸ6毿&::L{ sg]\gs<XSSbq)mLMM[J&^Ssm6F.WM&+8#˭Sp27266b,0z `ɒ^TX s/ HKuSwd c )HA@ 2R1d c )HA@ 2R1d c )HA@ 2R1d c )HA@ 2R1ۀSј4sz0fm͟aZ~cǎ{?ݰaCbb¨BcZc )HA@b388HseɀðAr0&((00&$$ȑ#0Ǎ9wRSN=c&I(r8˗H$b*3u455_N3Lr.]vڪ*p\a؉'8Nhh#G֬YGlhhx Fff^Vb0޻/^ >|v4olTWW*%x;</=="+plOAm]QQAc#88X"HR6qƶ6s˗/IȽ#"" ] ~w&Iu~R? 0jL;B؉aX==3ʾ>ZΝ;=ͩ;oVk2jjjT*Ujj*S}O2IHHyjTji5ƘLSN666RRRACCk?^7 4Mʖj4O+5++kppڵk|={Eۻm۶bH$iyck1EEEO=`qٳL&SR CY& &&xaa+JJJ \裏h怲,Y"G j7^r%ϟt&Yt`5-X8ܘ|0--mb#[pT<d c )+۰aCXX" R|,;;py{6]2)HA@ 2R n_\⧓IENDB`XQilla-2.3.4/docs/simple-api/classATDecimalOrDerived-members.html0000644001725400016040000010731113273140074021566 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    ATDecimalOrDerived Member List

    This is the complete list of members for ATDecimalOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    abs(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    acos(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDecimalString(int significantDigits, const StaticContext *context) const Numericprotected
    asDouble() const Numericvirtual
    asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numericstatic
    asDoubleString(int significantDigits, const StaticContext *context) const Numericprotected
    asin(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    asInt() const Numericvirtual
    asMAPM() const =0ATDecimalOrDerivedpure virtual
    asString(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    atan(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numericprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    ceiling(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    checkDoubleLimits(Numeric::State &state, MAPM &value)Numericstatic
    checkFloatLimits(Numeric::State &state, MAPM &value)Numericstatic
    compare(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    cos(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numericvirtual
    exp(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    floor(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATDecimalOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATDecimalOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getState() const =0ATDecimalOrDerivedpure virtual
    getTypeName() const =0ATDecimalOrDerivedpure virtual
    getTypeURI() const =0ATDecimalOrDerivedpure virtual
    greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    INF enum valueNumeric
    INF_stringNumericstatic
    invert(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInfinite() const ATDecimalOrDerivedinlinevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isInteger() const Numericvirtual
    isNaN() const ATDecimalOrDerivedinlinevirtual
    isNegative() const =0ATDecimalOrDerivedpure virtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const Numericinlinevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    isPositive() const =0ATDecimalOrDerivedpure virtual
    isZero() const =0ATDecimalOrDerivedpure virtual
    Item()Iteminlineprotected
    lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numericvirtual
    log(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    NaN enum valueNumeric
    NaN_stringNumericstatic
    NAN_stringNumericstatic
    NEG_INF enum valueNumeric
    NEG_NUM enum valueNumeric
    NegINF_stringNumericstatic
    NegZero_stringNumericstatic
    NOTATION enum valueAnyAtomicType
    NUM enum valueNumeric
    NumAtomicObjectTypes enum valueAnyAtomicType
    PosZero_stringNumericstatic
    power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numericpure virtual
    promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    Ptr typedefATDecimalOrDerived
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    round(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    sin(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    sqrt(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    State enum nameNumeric
    STRING enum valueAnyAtomicType
    subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    tan(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    TIME enum valueAnyAtomicType
    treatAsCodepoint(const DynamicContext *context) const =0ATDecimalOrDerivedpure virtual
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_28.png0000644001725400016040000000271513273140077016502 00000000000000PNG  IHDR%vbKGDIDATh_HSog6d"Q /ҡЭaբATݔE EE:,QHflTbsd]:̝e~x>W{!B-`2,2yfl6"e?jZmH 0c%#\=8<}{ gp gh r<=Rkk+ +++dXYYAdQ)J^|nϟ?/,,PPݻw!)+޿ar\O*n@SSSݐH$D.?|v}Ϫ"jǩnbbBPwww>|ƍ?L&T*>|!|Ess35x<"9yjjJ&>0<< "6رcv/((X^^2C = BT d2(*DD"<… dLN`mv߀YLJjӧOqFd A~~28 n7@뢢" 9!\~ԩSTfݮhD"љ3g^z!d^͛AD"۽Yr2$m4>8vͦVr'VUU=z4WuH$~^u(˘  AFTl6sAF;::&&&O8!˷փˍkoo|ɓ'b15N_]]]\\}vWWו+WFbׯܹ(..'OKL5 ZZZs q'bAT*d8b( BFiU*U({KvggdL?7Y`x0xbiiiEE`FDb``@&Dځ޿X*Z,@a^_RRRZZD[0Ln266&J|BX,LނG+=yF0i+Suܻ ` ` `a[/|Gؘ 6 6;a={ gp gį*lIENDB`XQilla-2.3.4/docs/simple-api/ExternalFunctionResolver_8hpp.html0000644001725400016040000000602713273140077021477 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ExternalFunctionResolver.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for ExternalFunctionResolver.hpp:

    Go to the source code of this file.

    Classes

    class  ExternalFunctionResolver
     
    XQilla-2.3.4/docs/simple-api/ftv2splitbar.png0000644001725400016040000000047213273140073015762 00000000000000PNG  IHDRMIDATxݡJCa( %4 bȘͶ3v^EL ,b;{Ï/aYկq:\IIIIIIIIIIIIIIIIII-l揊_t/ϻYQVYivk_ۣI@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$C[V=[fIENDB`XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp_source.html0000644001725400016040000011067113273140073021305 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDoubleOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATDOUBLEORDERIVED_HPP
    21 #define _ATDOUBLEORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <xqilla/items/Numeric.hpp>
    26 
    27 class XQILLA_API ATDoubleOrDerived : public Numeric
    28 {
    29 public:
    31 
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* Promote this to the given type, if possible */
    47  const DynamicContext* context) const = 0;
    48 
    50  virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    51 
    54  virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    55 
    57  virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    58 
    60  virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    61 
    63  virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    64 
    66  virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
    67 
    69  virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
    70 
    72  virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
    73 
    75  virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
    76 
    78  virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
    79 
    81  virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
    82 
    84  virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
    85 
    87  virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
    88 
    90  virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
    91 
    93  virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
    94 
    96  virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
    97 
    99  virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
    100 
    102  virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
    103 
    105  virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
    106 
    108  virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
    109 
    110  /* Is this xs:double not a number */
    111  virtual bool isNaN() const = 0;
    112 
    113  /* Is this xs:double infinite? */
    114  virtual bool isInfinite() const = 0;
    115 
    117  virtual bool isZero() const = 0;
    118 
    120  virtual bool isPositive() const = 0;
    121 
    123 
    124  virtual const MAPM &asMAPM() const = 0;
    125 
    126  virtual State getState() const = 0;
    127 };
    128 
    129 #endif // _ATDOUBLEORDERIVED_HPP
    virtual bool isInfinite() const =0
    virtual Numeric::Ptr invert(const DynamicContext *context) const =0
    Returns the Additive inverse of this Numeric.
    virtual const XMLCh * getTypeName() const =0
    virtual Numeric::Ptr cos(const DynamicContext *context) const =0
    Returns the cos root of this Numeric.
    virtual State getState() const =0
    virtual Numeric::Ptr ceiling(const DynamicContext *context) const =0
    Returns the ceiling of this Numeric.
    virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the sum of this and other.
    virtual bool isNaN() const =0
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool isPositive() const =0
    Is this Numeric positive?
    Definition: Numeric.hpp:31
    virtual Numeric::Ptr round(const DynamicContext *context) const =0
    Rounds this Numeric.
    virtual Numeric::Ptr tan(const DynamicContext *context) const =0
    Returns the tan of this Numeric.
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the quotient of this and other.
    virtual Numeric::Ptr log(const DynamicContext *context) const =0
    Returns the ln of this Numeric.
    virtual Numeric::Ptr atan(const DynamicContext *context) const =0
    Returns the atan of this Numeric.
    virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool isZero() const =0
    Does this Numeric have value 0?
    virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the difference of this and other.
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual Numeric::Ptr exp(const DynamicContext *context) const =0
    Returns the exp of this Numeric.
    virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns the arithmetic product of its operands as a Numeric.
    virtual Numeric::Ptr sqrt(const DynamicContext *context) const =0
    Returns the squart root of this Numeric.
    virtual Numeric::Ptr acos(const DynamicContext *context) const =0
    Returns the acos of this Numeric.
    virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0
    Rounds this Numeric to the given precision, and rounds a half to even.
    virtual Numeric::Ptr sin(const DynamicContext *context) const =0
    Returns the sin of this Numeric.
    virtual Numeric::Ptr floor(const DynamicContext *context) const =0
    Returns the floor of this Numeric.
    RefCountPointer< const ATDoubleOrDerived > Ptr
    Definition: ATDoubleOrDerived.hpp:30
    virtual Numeric::Ptr asin(const DynamicContext *context) const =0
    Returns the asin of this Numeric.
    virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
    State
    Definition: Numeric.hpp:159
    virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the product of this and other.
    Definition: ATDoubleOrDerived.hpp:27
    virtual Numeric::Ptr abs(const DynamicContext *context) const =0
    Returns the absolute value of this Numeric.
    virtual const MAPM & asMAPM() const =0
    XQilla-2.3.4/docs/simple-api/MemBufInputSource_8hpp__incl.png0000644001725400016040000003776213273140075021035 00000000000000PNG  IHDR<E`vbKGD IDATxy|SU;؅,] ("0 (.ptp!("pT)#88eRtH[-?'fkڦMy+=ɹCorIZZh˖-[lqu+ЩZ+z"mٲ%33n:Offɓ --!tRW'33M9-T@-T@-2Ç5k$I?/^؞*&LVWWz$I?رcٵ-zߞ1cƭ:k֬{{iQ-JgϞU9zh7onݺO?}饗^u[TQQĉ?_3g}IVXQ[[kpgΜ9a„M6Ya O$#Z buuu{?Ӣwy_>|{'}͛f͚~ݺu> TP__/_|k׎5VVZ%ضm{8[o͟?wީ o߾bŊo?Ç~f/^|S.^x%%%#_{իW⋇裏O>'8z+Vϟ߸qe~Xf͒%K֮].=rAhW馛b{Gy$22o߾WfyM>=00pB;300p̘1B%Ww}ƍ̙=bĈ5oҤIݻw[G|0...--۳g#۹k6ok 8𫯾;+hnno,Xӷo߹syꪽ{s=}ӧ?޿^[˔|*L@Ww7\{5&(..2egnBoooۊ7 !>?O.ْe[n<..N_VVfo9-----mׯ_z#FcϞ=G`||DiCBBBBB|2&h4-N7_Zxcǎ/7۷o߾};w\mVZZzl0T7p/p|rYI/_lwP//"B9&ڠŠ咜ez#Y-\L!+u7Y$77wɒ%۷owpՕ}QdddHHH݅w|Xo^xϖY^/=z>{'N5ooÇEEEyyy֭9rd=zڵk^{5 ?kU\azÇȘ˖-h4{U6nC}mkȑ#{#F̜9r2e?O!Ē%K6lذf͚/>#<-bkfΜY__x뮻N9,VK/4x`SlH fVضcp Ӛ6mZYYҥK]'xY8Ç߼yiӜ@Lru6aW™ pTHHȟ'W™ @-T@-TK@(--tu+p-[<쳮nHgh| Kn x{{ĸ4$ cǑxUW7Q8ZZZZZZZZZZZZZZZZi$IrunlٲEEUUueW_[wA& vM ?Ϻxʴȯ75{Z0@L;oo;Itjkhɓnn6Xk4w𴴘oZ풘hʽõ.iZ5m\P&]< ^& 1%^^\$'!ګgϐJb^^i~&< S^czZ(1Y-'/xyi>1" I-'ѣСIZ/o+S^< S\#IB;6xB 9ƌ(r-iAAnsZѽ߭ 8F)o[ninnvuCT/>8xdY!...noW7IQQQss'|ꆨW7@W_}խChV;\%f7@pN U#P5B U#P5B xs͝;׹h4999N٦E' ))iҥNK:w6#۾}IԶ)Ynnnxx >usέ[.##cNMZ޽{j۔h4VTT(n߾}ŊC 馛^;v8qw7Eh'۱cGlllUU⣏>JNNB455-^8***22rMMM999f޽񙙙K.3gNuu5ZB;wwÆ Bf˻u`b׮]W]uU```LL /`2h6mڔ֣GB_))) .lhh *뮻N-ZJ17tSAA|[hQ}} ٽ{wbbbhh+Ȭ-#" ͛7;9gΜ8**~ _|)S;w.++kȐ!O<ę3gcǎo-[ֿcǎ]{-UoEEE֭]r $IZKs=.\ظqVMI$8sr{ԩUUUk֬BTTT=ztvv-[&Uۦ$}W~~~FZre~~r̙3Gq٬`k'?~NۺuN 2~fxVpCgUUU\\\zzԢ"={,ʒ$)%%e۶m'OTn[֪y饗FcMM`U}ʔ)$YpԩZ~%Xm)"۷OFܴ_AKLLt$H|{nZvӦMZl۶[{H͞>!Dff$IJvZm2o޼'N>>ӧO_pa^^ǟy晙3g`kbڵ.]jUSm9rNo1hРFI>쳘TN7wаyՙQ__hѢ={Ϙ1J.%7_~V7667άf$IzWzѫWUV͘1#22Ҳ%%%f=ܯk&$$/X@K|򐐐~eddojj:th˖-KOOݻ?.W$raaa111> Gi@h$kV}'ӧOӾ$O:JV{Ԇn2~m@-' ?[LV{ybz{h~ijFhj6mtyW7Z? W7Dz ZW7Dzu׻~X4;vy _uuCsZZZZZZZZZZZZZZZZZF$WƮzYQ%[>lK ]4[wj;1DhԩhlV?<@?ʻVu;IChKppa)Z(MrK0@{Mz.>>1c=Ch}}MKFЭ$@{3G Ҕ)WIOBh8W75?|Oua{poN_&y{k'Nl6a 6#G;iyXsadpI45=zt~nsZq}ïBLze[h3&:VZz|Sӽ{Ֆ-[\jƍwuCmh,/jƌ[jZmPnto]ۺuVp`;>W7M477Ns @-T@-Tܹssma999YuY>If͚ս{6ĂFɱ_"lw<'MdpvHH?nw}WTTTXX~8k֬nM6lΜ9wuWqqqTT? SL9w\VV֐!Cx3g!Ǝ7,[YYYǎk-ZdVmmի֭[][[rJ} 6H$K.TnXT$IqȑNs_s5tsυ 6n((-- ̙3Gq٬,[ !f̘֮]+6mN{wrΜ9cz]z ͞D!u:֭[=G}Df-!͛[|@AhG9ZM?ɷ3x`nVV$I)))۶m=yr۲VeeK/TUUe4kjj SLZ$~3l0xpԩZ~9? -Z۶mKLL4= >,?춼6IBdffJd0L4o͖m ZUN2o޼'N7;;{̘1W_}o`0O311… DvW!|||n[틃BX=ٳ.8*mZp"B 8|͑#G>cJaxx򡿪r)gϞrɑ#Gy[zhܲeKee;a„Jտ1cƘ6L>ŋ²}z~ڴi/>|U?8**J={666VmK숏7]ԩS޽zraVGZBdgg˩V!-LF{Y`G}_ܹS.۟|ɂ1cƼ[fϞO?~?pAAZf[nt>>>VgddL8QNHH>tG,VwDCCCcc^_t.|||Op¼Ǐ?33gt|_{vۻwY̙,&&F>-D͝;7444,,l޼yuuu]/ZgϞ3f̨-kIy~fddX8n8ӆ-_<$$_~~ڽ{wi/^y=zkժU3f̈ Yeeٳbbb}Q^o=Z=%%E^駟<-Qvڄ (m6+;@~ @h$'@7m4!'|rrr4Hl޼YNG0= ZhYPP)8EFF^ڑBZZZnC~[hZmwoaޡlnrb#D'jݪww^:3 q;⛛+*++߬7 ^C9&cID_TTWZZ_\|`4aaQQ7vJeeUfeUTV66aB|{▃N޹ܢE'zUiiU'NT_..5 !cb|[MV;n8<>/";8;gK gϐ䨔褤}u`w}'7;ܹ !DP+?=:@W@htrAA6;[[)IO脄? ޳ė_+/MN0aЄ ;ntrhQtrzQW\ߧODBB< 1Fh-?&&FjƉ^x;|˗ 5oONػ- - WN/1޽{+iBhs%%K~ԩZ!DppO\8 ='޽' I0a ;<(\^:]}~~Y?ufChХ57/^:w|rtɓuu B@%DLJ%$|sj׮?{yin)eԨc &YТPOzQXSb4c&B .PXX--}L^( ?&D'$TCp/y:4iAc .<ТPazQ466#,ƘѧH:Zx&CnnA矋bcC䈒տlnN^w= *9s 5Qq>^ۧТPszQ^;%'Gб-<|)7!]q̙=rKڄ o9G9-B-ҋVCx' .Dh_q855WiF9fŅz ]sMw\ZʽB½ҋrE ͦ1F^:b8b FhV..)щ^O.ȪBMCMӋ2dg7ߞ5`@t  +Š 8NdGpТpkq -\<֊QQAnoBcBcҋ?݉/_c2{wb U <]IKU} Av - K/L޴1 ,w=\8.8ؑ<æ׻˅ ;gYhjjLDn,Gh'nvr AvZ]$(b̩SVbLJJLd$1ZׯEea__޽Õ#Z/W ;B -^rub53LcL||XBB ZlӧJKkAA{.իWXquV(eA\R-.Dzq9ccZZO ˳_O/>}º:VV.~5 Y@-Z\qX~;IH1BnТ*rJ\))1ZЅ-_PPEkƙ… ?䖖?fw޹Kw^ziEN4tQB*Dž NjS:ֽg/љ`c~Fp"%6B <+:)\ҽ<Ȧ75ݩFۄ^܋Y9}Fлw81]n;;D' ;B~{%%EWg;߱zW'N,W25#)[+cI-p-T{`0+˯1!A͚+VZ:S{'-p!.EkyZ)gVYL/z}W>Ьшt^կ>/BykVVs|O?trGh-]ȑswyK/MoFXqSU#GfӦyÇr!.o;3v^4`@ ^v<ȟ+!ߗ¹jn9/F[o))1~~m_%%E.]:[Ҝx$B ~#'twjn6:RQYoklNgv447G;m<.ŝ:U8bJτƅA^_T^||z?صE;ٚ(o!gXF#$I~˖MLO [#R+ y/߫Wf{W^٭ш_cE@^>ޏ<2O-B3M/b1̙oSXړ82[0`?6! iܸ<˗{W^ɨ|C8r9I2S kkWBB+{ߦ̙s{=/2rS}.\q? kРuf fE ͖1xR5?ǩҥ556oϊtzլwcc"..411*99*))J^1$$s _Toie>>ڻ&wrà6Kt=zNu긝W@oLU gϖfg9beeMM///G/VC<NvBK%IҮ]GםU;BhLfΜMLݡkqHj7+V|.{,?^BByyͶmSS8H߿˗ 鈡C{;v155ĉn%&&s#W"/½WYw&tyyiz k**Ih|||J[tBRNUOn| N onl4!䓚 ͒$kZJKKZxti))aa\Ukhh(++kGIQ1+/k8e5D;޻ E$ //Mdd~,߻ݿNl\cÆBS O.:dQee[ϣ.N&5((B OJff@mѠAnꕖ//Mn,Ă!P5-Ν;wnɑ 0O?y{{oٲE)=vXGٌD޽̙SVVf$͚5{wGhrrrRNx&))lIc*OgVcM;:(#8eߎ嵪%-!!̓1V3,Vau5?'w}hپ}Iޕ. ymUꪫzꩅ VWW !.]?qҥ츖.\{t!C-pӦMN\m9/??ѣJ_-MNZ;9SS|[W7fjUK!׋gmvΤZ n-7nZv=zhwƊ vxx /`3<.'x"&&fɒ%jsѱÇꫯz^BwZ`sȑ#Mٱcǰa-_e\NZӳVpp-g T븊>>""bΜ9;wLOO۷ Vw- ;u]'?YaW.]~ᄏbŊ{o>>>ĮYh4<nk;rpwNLL ]br4222RRR"##.\`aBq|~:uT'@[uT͆VWW}qqq-Bh4M6F2PU;PhZyB]v]uU111ۼӭVksp/aʕW\q 7?mq3&U;&;j3;$iW^yePP-ܲk.e=B8CedؓxvSˑbuXZ=2VZ$IzZMkll=vv,kItSvo?izMM{33.۰aCppo9] ?ꫯwViJm/y z^.|Xl.kEFFn߾/۷6!u֘_Z XQilla Simple API Documentation SourceForge.net Logo
    StaticType::TypeMatch Member List

    This is the complete list of members for StaticType::TypeMatch, including all inherited members.

    cardinalityStaticType::TypeMatch
    typeStaticType::TypeMatch
    XQilla-2.3.4/docs/simple-api/classDateOrTimeType__inherit__graph.map0000644001725400016040000000263013273140076022420 00000000000000 XQilla-2.3.4/docs/simple-api/StdOutFormatTarget_8hpp__incl.png0000644001725400016040000004157213273140076021216 00000000000000PNG  IHDR<E`vbKGD IDATxy|SUiK[hKRUvA,* ""# ~Q@AA"u"(( P6),--iKڦq|c6}=Nsܛcw$IT.!P4B E#P4OWnhӦM6mruhPjzɒ%m۶uu!-P6mڔֱcGW6j(B B ԋ;.\Uᤥp[\@-@- et:]rrBCC7a///\reĉBTTT$''>|8///&&{Gj3]׺Q^mڻw_WUVw}ݰaCV#@"|zhhŋ?ٳg͘1#557oޜ9sfPPӣ.\f͚#G6[s呑uU{l"7>c!D-;{ O/,X O6mժU?5kfΜ~zV{?qqq6l9sUJJJfsAϝ;~gy>0aG}$uyyy|ɻ{u9~ZjW^m۶m[dɛoO?y^#%-2wygJJ߹s_=؞={,}3fw}z6mT*dӟ矫;k֬O2eMֽ{w!#<;p@!c=;h !Diiך5kfϞ&(//w ]3f̸뮻z9e|s=־}ӧώ;ݻ\8s褤?OMp iרxI&%''\_~O+((0?Ҿ}{!˖-333{ixI`=VAAh٪UqLLiBOOO˗/;:N>,$ ]kضm[իWGmjsQppBR7FGG2mFKp\CŋgeeTTwu|ϛ-?߿~j~\? S^Uaa%yxx bc-zG];XP:<<… ƜA@@ ۷o߾;v9`Wd/_\tIN5.Ahh֬:t(//ԩSay~z?]TT?wNj̙3CBBF/صk͛7-.ig߾}?9rV_q}Z*???++k۶m믿˗_r_]z4\eϟ~UV]r%((o߾O<"""sΣG?9rH^_~C<;u֭\277722_~cǎh4SN]bņ ybJz/_>c FN0Ό9sŋ5kco7ok ._#G {ƍ;v1cҥKSN]|SO=Rӧ{zzw;tic***{ʛlN9ӝgܸq .tu! СyrĉWcc훒2nܸZaF ++78w\eeӧ׮]kaFGxWKJJ"##<|گz=6.Dh4jzԩSN>4\(Z(q!>ԋk׮ ^ttM򗿸Ri<<| .<==###]]'$I&o?6c?rssu!5-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-@-M%Ik4bm˻!?...*ٳÆu>k* OWhܾ:ʕbc}j6%NʸqwyzQ9GVpG@ճ`ݮRmC"$!j%66,>>BRY{z}KJB ƍ8rdwp3@mh4xx:w vUIwBhVTT`m<< 1ոqw$;!1w_b4Jt +@x({ mz-[V2f̝N-1z$ !j ƠA#->ԢB n{J>u֗/_vuMwL@@O%յ4sYl~]|yΜ9s iRbٲedrMǎ*i&W kZ(Z(Z@Y.^8eI&NrTT6$o/i~xjj׉'**..bTL s*[x B (˶mFqӧO!oB_~ٳg!nܸO/\sӲ?nZ5~zڊGheٵku:"&&yjHHȋ/(X`AddMO߿q۷ӧƕF^=lBׯ[?4B,_:t$I-Zѣ$IG)//$i„ ;|zzzN-Zd^ɱcDŽFєX,6dBŋ[.kDD/"IRII{Ν;'?A~`ԱcJK-++sZ^~ Le8eee56LnٲEN~322:k*آ$iرcǎiZ9gBKqqqttt.]̿&&&&ɏwݭ[7kezz$I [nzic륊4;S\\l4KKK G]TT$ -rgΜ)++3 7QI,O.ȑ#UUU?/h.]:dyYZ}Iy[ƚW"?O:{i6Af4GV'Nh;wgy饗$IڰaÀ$b/XرcGָlUذ9--M$`fӓSRR f0ӦM;u̙3MّT pܞ(ɉ[Feo}:t(::O>z}PP"~222 Գgd'4o\!e^aݻw;|zݻ8p`߾}CB :ȋ^|ټÇx7|S&lܸ1--m޽7oNMMبcnڴI$ H2Æ sT^ذ%gi$&&  t /CBBLߏ:$tcǎtFqӦMEEESN>|xQQſA+RWӍ7n޼yG]bh]ǐ!CRSS322z޽rh WYYYϟoժy%;v\/طo&Ξ={ҥ… Onq9{޽KKK<{#G:9,Ձ[ݫdž52ˇVr hFO>9k֬?۱cK999 裏̗4i+rɓ'O>999RTܲeVh46OMM1bj+++t:… l2dȊ+zh뗜ܦM6m!4#<2{ .-ѫWB1cm Yهvu֥K{K7mZKV2Յ@B~~]]]mٲvuhpe0Ǝ_4n*U@c9@-@-.^8eʔRX,20lذ .X?I&N[bEReff:n7VWp!B m۶9柲BBBǁ/ᇼƉ'ػy7n<}l-rfS;۵k<ׯˏCBBz-NjFDD!"##WZjnޅNBvg6 Јp[jU\\,˅z~޼yaaaJ{쉉IKK[paLLLhhɓKJJY/%رcG.]|||ڷo~z!Duu 5kf~fw-sSL[oZ5oܹsg}}}###`ޅc!DIIO<=w܊ rAJvڤзzkڵ xj|j4}hm׮]AAAK,1'555!!!,,lٕ6k,p$sƎ;v6yի?o=ŋ=zX`s޻wE:v옞~ĉ^z͝;Reee+W[fgYYҥKm.vK$%7hZ\$!ıcJKKZmff?|w?_zyy=䓗/_ްaڵk6M0_~ϟOOOԩӢEwHYYbZvBqiO>DQXX(t9=ojqi6ŋ(6lVݲeܣ322:k٢"HIIiB 8R\\ݥK﯉yyyݻwwM.IRBB֭[忞>}z"F;R`oѣGIZLKdkFӧE<}{ '{7%X{yyedd 4gϞɎWo0:t 366;Dּys!Fxls[.!}h(!şL911TF@"@t /CBBL_:$£cǎtFqӦMEEESN>|xQQſA&_rgzqt:ݸq͛w+V8~rxxZʒyVZɏ-b1119sӳuΔjfs~dЊ"##CN5uuh4>䓳fϿ;v?K/>hР>|I&+'Oco)J5p-[hڪ*Fks#F B|Z>0ZzĚΨt .BB<#gϾp;Q IDATɓ'_} &8ߗ'5kΝ;/\gϞ'N<{fs !V^} ǝ>s~M>l%3״|]v$髯/ jSL 6mZyyus΍ ?~|qqn$I))):tJLLLMMxUUՐ!C [xq```RSS~z}޽% ?V̷bٲe-[lݺ+Əf YQQѤI###̙,`ޣzo[BB< +"Ǜ&?zأի۴i2k,So+%*铀7n/tu!p̸8M5RT)))p8(hb4\ҙF@#P4B E#P4B E#P4OWZ/T*mARՁ-==[zz{zфĪ~%%ꯗӡ\ee$U_G.WWUW_7o~|-P}|>||]^^kW,,0$UpODDf]uJҦ_/* -x-'=[cŹswGNs%+K1{ OϺSO*zիr327"7"-nijzȐ!>>>u^-+B ԍҊ  rrgd\?{ F OH o־:`0?;v߹X~M;5@\m~lƌ0szTw_a][Wqͳg{q32^x='E mCW~cbZ6>ƍ99寰W"I4uv m'$Dz{@ݽԷߞ(,,>#S{84pz17 7i.M`yGŅ{xc6Zf~bnV7':]v8'nެ)z;~gv л= -&J/&Z.;:xyymbJ%###_=s&L+TRrsS}wzϞӕ=z>] {\ZL\^Lڊ5dFI6^R|o٫O疗W !|M$!!"&&M`Wyz޽gv< 8hPWdrBrҋOF#1"hBzCnnks:]"<51!!Mत(%˗ĎlooMqÆu4s xJDŤ…BydZY)P&B  L_srk^UUGVA11rDر_;\99w>cDZ#G[h6`t%|vLɡDb:.>>Gz~Z 4/yg^ݹΝoե9QF^L97B3'&Fzy)tQ:rݧ  ÇwvqjZLWz1>ټj#Oѹs41@FhX8q5?_+~S?t2nYih1i:dd\Ћ_ީStc( $8,瓜O^kIQ7=4b"ϏW Z7*t/{3GpuI7nZL&XOwԕ7mĘ;hO sW;~#~ҋ9Û1Mߦڻ㎨`O "/Lv$f7A7-&^L,bC]],GhP7' ݌õnYBh1i""Ɯ9[Vf#$$Dc1B aEma//϶mCL3GƆ5Aև&ZLZz1c'j>gy n&h-jf1ٳy׮ !Zhֶmt^[l3מ>4bdӋ{ů kZX8 _JK+ٯUMk>4bBz1q'~Z&䧜n7 k199K`4! 32Ϟͫܟd} Czqƍ0&}ڵ +ߠ9 4MmUUU_PxaGp94ABKH/juم1zb DZ7aRrDIHtuoY-#Ic-X4MQqX>) 8\KMFrH/…B X 4hSqd=!饖ωw[8P'o;n ߤoY-uRWLX\gc#||4]zCnn*u\NW%;|G&:pq#Ch[:g/XPެP B pq!q#H KH~g61˝:EW!"Q{%{^FEho`c22VTLZahشiA*^RuʕbbLǎ8N=B p;L3˗_x]qLYZ%cթSWn޴c8f39[XX&iᘘbZ\rs?b܏IIQ Uw{ճg>[^ΌÊ Т專1>PMZ3'mØ q#FТ(rN\ aaZЄXLϟs_~2&&+)A6?uV~|HU?q_uiݺJoH/JfqL-p[ZmEvvI o4JYdVI6d=p(XĘ_+((\H7LLA~Bnٸ~ݩS4'$(Yuqɒ+W !5:s d"IҝwWbjhO=W*'ӋNWuTVVTbĈWZZqBANuGi1.šCp#l"4iz!%%KvjͻY //Ϫj!DttPllx||x\\<=b`o ӓoܨδ2F. Js I#湺4J׿N:x. ΟoeeWCV?̃<ӏ]aDIsuGnn΅z;'Opw"IҊ{,ZYHHq6 -9mZWׂc7s#s 3mzCvvu?{AA~?ws>TTTdeec^yy(TW[7MiNN' k׮r%/#BPXXuD%RڷoSxtFޭOԩSEѼccck.8N,Bv-ܻ̗_ u:{7oj=</]$FVKjCB#Sp/۹ ܆g7IԩߊO={6̙KtUJ@tz__Ν[%%E%&F&&F0j@h׻wOQH,N?:7m(P1i$B EkŋSLi$L_<==7mdjOMM:qD}lAem۶'O.((p|I&NbU*Ufff]TORYL6x` jUR uj}*~? v…[b=j?$No{p2&CzW;%zWDZ;V}hٶmȑ#m)+++$$D~/[{/ٳKJJ7nx.\عs?wui=zȕؔq:a^vvMK8pdVIl)\NXW7'NJ!57[)߭.e^jcч]v 8柌F!!!o_}Րy.X 22rVЈVZj߾{g:N`Z }>}j˸<ʖgUWUw\EFFvmժU?|&'1B k\o4noS4$%[]ʼ[H-۷jժXǗ !zy͛cj{쉉IKK[paLLLhhɓMBرK.>>>۷_~ⅅ~~~͚53?~gz|w !ol6Bxyy%'']vɒ%֭KNNh4MRf̘_[v9]v-YĴ7RSSfϞ]YYiaQB;/4ݼy1cp@{{bxҒ'x"$$$::zܹBJqƤ-[oY$UՂZBܹ{yԅjst͛{?zx>cRcawy$IZ'| ׮]lܦ5۫zF,[,,,l֭_uTTF9~!,?oL:9jԔǤ^a[Ƃ;U۹ҥK˗/߿ /`j 1ŇcǎtFqӦMEEESN>|xQQſA&`}gbٳg/]_pͯǪM.L?xС{9N5H!DaQ!ݻw7牓wGnwfxꬬ,ϟoժã7P@GӍ7n޼yG]b6Nzi۶8NXcR(uL6䛧:mӦhy\pa.]N8qĉ{NټysAAwNgs'^rE^|c5kܸqcԨQ,'[fōFa#[UUUեK7I$̦&y! y-d=y:yz'~pϞ= *Q=~6`;o,cNv*!Ԑ6zIDATꫯ"##3Z)SMV^^ns΍ ?~|qqn$I))):tJLLLMMxUUՐ!C [xq```RSS~z}޽%gxrr4I~g͛7I?u&L0`_ߏիWi&$$d֬Y:fА < &裏瘿Y(܁JTTT4iҤ9s¹lڐ-e˖lٲu+V?~|XXdt]8KuuҥKcccF]];jÌɆ -n9&bs'8`0{:t4hPjjjhhh{3-`;o,c[e]vxzdffZ fcĎ;ֲZm z6*IKK;jY1YWc1Xܹu]ve˖ŋ\9IicO3V?%,==}ĉGyC^{?O. AcZh1}tgKJØ?͛7GYPPо}'|V c Ccp8= Ai8= ah,8= @#ChhFhh6f ԨۻVC@Ei:\cΫ۱g7BJ]x{{0POT*Uk!Qpn+nUn ״P4B E#P4B EgoIENDB`XQilla-2.3.4/docs/simple-api/classFunctionRef-members.html0000644001725400016040000002223613273140074020423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    FunctionRef Member List

    This is the complete list of members for FunctionRef, including all inherited members.

    _ref_countReferenceCountedprotected
    asString(const DynamicContext *context) const =0Itempure virtual
    decrementRefCount() const ReferenceCountedinlinevirtual
    execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const =0FunctionRefpure virtual
    FunctionRef()FunctionRefinlineprotected
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Itempure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getName(const DynamicContext *context) const =0FunctionRefpure virtual
    getNumArgs() const =0FunctionRefpure virtual
    getRefCount() const ReferenceCountedinline
    getSignature() const =0FunctionRefpure virtual
    getTypeName() const FunctionRefinlinevirtual
    getTypeURI() const FunctionRefinlinevirtual
    gXQillaItemstatic
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const FunctionRefinlinevirtual
    isFunction() const FunctionRefinlinevirtual
    isNode() const FunctionRefinlinevirtual
    Item()Iteminlineprotected
    partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const =0FunctionRefpure virtual
    Ptr typedefFunctionRef
    ReferenceCounted()ReferenceCountedinline
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0Itempure virtual
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/classEventFilter__inherit__graph.md50000644001725400016040000000004013273140074021707 00000000000000f04f594d0bbed44827e67a7153bdf618XQilla-2.3.4/docs/simple-api/graph_legend.md50000644001725400016040000000004013273140074015650 00000000000000387ff8eb65306fa251338d3c9bd7bfffXQilla-2.3.4/docs/simple-api/ftv2mo.png0000644001725400016040000000062313273140073014553 00000000000000PNG  IHDR}\ZIDATx1K@iBҡ(h"EI'oک 8R- BTP]zB3 _㒻}]V}dIiJb+|K…,[P\ʘMƢ#F`JݤkA?Y4ck6"Z)0SHM@㋺Wmo4HJ+Qobt *~8_+3Y- PwA+^}+xhϕMAE]TD~EÞߴ^R)`A9pq-۾ۍ3tƛTH) ICxd#1 m@V?Zgo_3-\IENDB`XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp.html0000644001725400016040000001055713273140077017733 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDoubleOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Numeric.hpp>
    Include dependency graph for ATDoubleOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATDoubleOrDerived
     
    XQilla-2.3.4/docs/simple-api/EventGenerator_8hpp__incl.md50000644001725400016040000000004013273140074020264 00000000000000da825c77f8406f2ef966b5f95c8f0ff8XQilla-2.3.4/docs/simple-api/InputParser_8hpp__dep__incl.png0000644001725400016040000000675313273140075020720 00000000000000PNG  IHDRpmgbKGD IDATxkPWǟ4Z..I!,":`gSZZ@ʭB*QpF#R AP^64r ˾N}`s~O<&a $cZf^}> 0,}$NOOWTHn䄇<^|RRR#1OKn߿_O>``zN"GGGfff˖-KJJrppm+ZZGͿ| H4#999eeeB#IoZ֌p8[[[vTj(yO?ӎ;6mTRR===˶mBBB=P(PU~!MLL_CCCO8A%DmmmMMM111ׯAJe^^^HHHHHH^^Rբxڵ7k-q)pcǎ%$$珌`yyyVV֡C\fn2pi*2>>.ɤR_zyyYZZJ}yzz%&& !ii={333KJJmvq $??믿D<==iz\" cGfһa 887jccckkkg*66ްaÎ; l6III<~~~$Id26XYY`Oy<[BBBKKf Z033[z5PfȓN ;;;` .../i&;Gd,--Baaa / v677׬5[[[ bڎh3|@8X,vss?/T*SSӁ/333333W\P(rZT*uuuyyyUvv62Yk6a y.0o[jjjRd2 RdXh "55qllLPX,.޽{iiiΝvDK ̣#oݻ׮]fcbbrss>K.K/zy-,,,8FEE]6---''ځf 6 111999qqqAk Sё#G|}}b&A-8%>\ZZQ__?$===[necGwr:00}`nnqFCo>p8v2 ֻؑ\}> 0zРI__KjR466Nu}Ap8,!?2O|hjvV:fh-دΜ QӨ}PΞ_ih9Ĩ}P_12"̙놖cHeeY,P*UϷdVd0RDM. remmJ2 4 (+f@=x}PVv_$T/v ]CCNR$Ip#H}pMSF4kj5FZnn{CH2,އׯw3P75%nͽ$c>8}Z4Շ*Jԩs+g^|*K "jS*Xej!f'شB 1 ``0 }> 0>`` }A``0 }> 0>`` }͇1P7*.454b566RS+W48̜yfDBm'Ԋ+V }> AܹsGRfȝ;w~G!4Xxuފnˡ޽{vvvIKp>'H$Hbqaaˇt*)F>PUt>Ю$ɓ'O>2.]Z\\L=q0gmHTTëÃ18ws=g |xg_vpp6Paɒ%f;;;FGGK'*{{{{{{OմYPPP(񩬬qFituukB)AY ޽tR*3Up ^GoMUbXKp:&u6778L&ۼysjjH$E/nTy䏌 gϞ}嗩QMH7lؠ :J%MWWv*sGGTid2]5U!L| +:h 2R322IIIaaaݷn5OATWWH$XlY[[[[[۪UQZ ~Nnɣ7644999 i׹nݺOOϬ,t> A2=? yyyv@H7 Ro>ƠI<:BXz ֶcccn7666ι<o||<%%[YYEFF$!>>B krϜqvvRRRRxb{n\N8{EERݭ+**\.cp&2ìO>dA8y7oޤ6B/cpmL%8-Ɵ/̖֭[D"TܼwXƠjM[ҤRipppΝ;18K-Z49cr.`&}> 0/dgg BHG|Q`Fl+P9|}A``0 N!UlkIENDB`XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021732 0000000000000094c3d460564dc2421f8a02fd5081e0e4XQilla-2.3.4/docs/simple-api/structBaseInteractiveDebugger_1_1BreakPoint.html0000644001725400016040000002027513273140074024125 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BaseInteractiveDebugger::BreakPoint Struct Reference

    #include <InteractiveDebugger.hpp>

    Public Member Functions

     BreakPoint (const std::string &f, unsigned int l, unsigned int c, bool t)
     

    Public Attributes

    std::string file
     
    unsigned int line
     
    unsigned int column
     
    bool temporary
     
    bool disabled
     

    Constructor & Destructor Documentation

    BaseInteractiveDebugger::BreakPoint::BreakPoint ( const std::string &  f,
    unsigned int  l,
    unsigned int  c,
    bool  t 
    )
    inline

    Member Data Documentation

    unsigned int BaseInteractiveDebugger::BreakPoint::column
    bool BaseInteractiveDebugger::BreakPoint::disabled
    std::string BaseInteractiveDebugger::BreakPoint::file
    unsigned int BaseInteractiveDebugger::BreakPoint::line
    bool BaseInteractiveDebugger::BreakPoint::temporary

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_35.md50000644001725400016040000000004013273140074016363 0000000000000097807bd9699740d73fce7ca776615158XQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__dep__incl.map0000644001725400016040000001350113273140074021147 00000000000000 XQilla-2.3.4/docs/simple-api/classXQException.html0000644001725400016040000004660213273140074016763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <XQException.hpp>

    Public Member Functions

     XQException (const XMLCh *reason, const XMLCh *file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine)
     
     XQException (const XQException &)
     
    virtual ~XQException ()
     
    const XMLCh * getType () const
     
    const XMLCh * getError () const
     
    const XMLCh * getXQueryFile () const
     
    unsigned int getXQueryLine () const
     
    unsigned int getXQueryColumn () const
     
    void setXQueryPosition (const XMLCh *file, unsigned int line, unsigned int column)
     
    void setXQueryPosition (const LocationInfo *info)
     
    const XMLCh * getCppFunction () const
     
    const char * getCppFile () const
     
    unsigned int getCppLine () const
     
    void printDebug (const XMLCh *const context) const
     

    Protected Member Functions

     XQException (const XMLCh *const type, const XMLCh *const functionName, const XMLCh *const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine)
     

    Constructor & Destructor Documentation

    XQException::XQException ( const XMLCh *  reason,
    const XMLCh *  file,
    unsigned int  line,
    unsigned int  column,
    const char *  cppFile,
    unsigned int  cppLine 
    )
    XQException::XQException ( const XQException )
    virtual XQException::~XQException ( )
    virtual
    XQException::XQException ( const XMLCh *const  type,
    const XMLCh *const  functionName,
    const XMLCh *const  reason,
    const LocationInfo info,
    const char *  cppFile,
    unsigned int  cppLine 
    )
    protected

    Member Function Documentation

    const char* XQException::getCppFile ( ) const
    inline
    const XMLCh* XQException::getCppFunction ( ) const
    inline
    unsigned int XQException::getCppLine ( ) const
    inline
    const XMLCh* XQException::getError ( ) const
    inline
    const XMLCh* XQException::getType ( ) const
    inline
    unsigned int XQException::getXQueryColumn ( ) const
    inline
    const XMLCh* XQException::getXQueryFile ( ) const
    inline
    unsigned int XQException::getXQueryLine ( ) const
    inline
    void XQException::printDebug ( const XMLCh *const  context) const
    void XQException::setXQueryPosition ( const XMLCh *  file,
    unsigned int  line,
    unsigned int  column 
    )
    void XQException::setXQueryPosition ( const LocationInfo info)

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classEventGenerator__inherit__graph.md50000644001725400016040000000004013273140074022410 000000000000004adaaab1a08af7b966b2bcc70dd0a0deXQilla-2.3.4/docs/simple-api/classModuleCache-members.html0000644001725400016040000001312513273140074020347 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ModuleCache Member List

    This is the complete list of members for ModuleCache, including all inherited members.

    byNamespace_ModuleCache
    byURI_ModuleCache
    getByNamespace(const XMLCh *ns) const ModuleCache
    getByURI(const XMLCh *uri) const ModuleCache
    ModuleCache(xercesc::MemoryManager *mm)ModuleCache
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    ordered_ModuleCache
    put(XQQuery *module)ModuleCache
    XMemory()xercesc::XMemoryinlineprotected
    XQilla-2.3.4/docs/simple-api/classATAnyURIOrDerived__inherit__graph.png0000644001725400016040000001475713273140076022745 00000000000000PNG  IHDR{\bKGDIDATx{TSG'$(" b`b)Z >kW UѣnW{ S k-JVER5<"MyIHp:̝;;!0ab0zE l5QԠZ"'''''`4C&KgggF?Fsrrnݺ0:YQQ1jяQEu $i,y5QFQE %1e?? XfЎhggg  %1^>ћ7o|>fVZk1<++"222**˺HtoG e퓒>~hhH~nO+1$Çg͚eiiwmh0L&9j1@MMM______[[ۖ-[6l {С+W677ر|PRR߯\v.RSS݇d'>>^]ӣnDWnhh`sٳg|i0FѣGtz~~~{{?`0Fu]Ĩ%nT :^www>Sl6[])"bddrgϞ{zz@pFFFd? 7]]]5Uc͚5ԩSOF\.L |駾fffT˜QWv8rx*ٕxZZZ0fCy a:)S ܽ{W_FxtPXxW$;q} ٳw7:<,t#KdI^^#w7z2gxXb9 iAh^^ɯZD"O??&$( YbTcb*@?JRv@0` FssT:ZN 1ͽc F_ k F*%] 8_N(LM)'Hd{fӦ_;CE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFc'R E -tohWe&s|X,8 |ݺu뫯&O'Q4v!^gV(j`6(%HƎbQ4QJncGad2 "(!!ΎN'$$D"DJOO𰵵=xٳgg̘ARweoZi"++k,Ks\Zress3͞?;`ᨨ(P ))).c\&t|:uww0]\\lԔ,C}B2(ɹ#)o25%="kTEH$ɹ2dVOu{{ouu1ϯ%&Q@{d' ݋.Ž{~mmM˗{2R\o⻗MNOGdg,(j`6(j`6(j`6(j`6(j`6(j`6(j`6(j`xw{c@L 333Ӳ֫"FFFu _3jdfggq$DZWQFQE l5 dt߾}$FoDznoff&I555zA(ANNNpz=6Ht?Ww|>߼y./Za2L&s,%kkkI$Rqq1u.Ǝ:"uuCK.uww?H$=<<[n~sswjh`oo7{{{ׯ_O㇆`/<{3T]ܬ+lmm׭[۫aD*M]pat:}֭H`ggGD"^Xh^1*Jg̘BwOOO.@xx@ HMMtww_vF$q9OOOTCg l6{Μ9{쁽DEE ´4@DDP(LIItuuZ8|'p8>>>PHeLHHÇ]]]aZress3͞?;4b@ct܍S(. yX, FFF\.W,_z jnD!?3wuuTWWzOs\Y gχudiQq2l6ʂ|Y\\Wr$6h}teeXd2SSYY ^L}p0_t:.##cF󣣣9ݻ"K˦D///p6n(?k]8a .[QQغukxx8ǫ񉋋| ϑJ...9޴iӔ)SBᨍDŋ[XXk888l۶mppPC/ F J=',oh/0PaÆӧ h~&Q/ǣe>htb=~hh===3v,qN;o~?-YرhBeӦM5^PϙXh```O+8tzrrQgbFQE l5QZL&?c44idzc2V(hn+++W.^l޹ӛFD_Ih^pvvvvvֺ!9vK c2}𠣾1 'رTٛյ;qqATMMƎhAhu#>_D _7ZPP \ȓ'}w41QD_\)e7np{{D聲Q)"_(d/^U>)*d5zjrX,؃#0 kZϻ!:c05ZZP"IܸT^&8u?}B?q jnƗz7liQ#2κYQFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQEeD_ߤ6 wW`-c6(Dz7t1hý{,Y-Q>ɜ!aٻwB>6(j`Μ9qhSRRo>咩*AAAΝ_[>'((H?i$77_CCCNswrr$)ߦܹs7olee5h֬Yb-hc :bdz|>?..ӦMSWE|7pIgϞ;wn޽gΜQ^`ٳg7o>}zll,hjj:ydee#G#۔J---yyy111caa̺MMM͟}Y}}ɓpy!U􋕕qӦMO>U.v++G.\?99ҥKڤhsppK0T*5&&F!i6FKJJΝ[o999R%((ʕ+}Ѳe233ǎKJJ{CCC/LP(SNUU\\n:,22-((zժUG"DZlYyy9+VXbErrX,?I{ΝaH?\]*fff]6,,,.._~yQC^(?c5WqcccSRR$ Av:`wwɓ'{=SSS2=== 677tvv;ܔpttlobLnn.OII9rHuuuFF׮]7ܹ3y sٵkjKǏ<i4WhaaB9s( \r%$$d 駟VZ5AH$[cbbG]ҥK| N9sflllEEP(|իLzQQѦMmll|||_ʨD",_\bf̘uV311/--9sfUUէ~*% Z!Ǐ+뭷g͚NNN`0`cʕ]^ɓ]|Tub1sLuahJRe˖0'##bmذAݑ4jK,ٿ~;[[[Ifss3LVɓCCC/^HrK.=s挷T:44w^_u+EQTT 7TW_}Cp2WW=88رcf͒ů\} ...Sƨܬf{7K.mmmWU$ӧCB~]044_׭[|~uuBBBϔS>{lppPyG}$o^QQz͛7h4)DFoooOOOWWWmm]|~DDg΂ O:&Tlٲ'NTTTkP3/w̟?_S`X*/%bbbpexꅬ[nʔ)'N촱 ^f8mmmͅB⃮Ϳیv`&t:oͮ7|qFե2 x@YruSSSHtĉn]vmٲE5hbbD6---cΝdw^[[[G'}ݑ>%yRL8Kll|0oCo>0 ۶mJxYy5QFQE59RIENDB`XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp__dep__incl.map0000644001725400016040000000341613273140075021012 00000000000000 XQilla-2.3.4/docs/simple-api/dir_341c1efff76b1d093918f998475bd8fe_dep.png0000644001725400016040000000361513273140076021450 00000000000000PNG  IHDR]PbKGDBIDATxkLSgjÅbQP)^C#%h $VAH#; hW/c(UMF!x ̌fT("Ȇ[ke85zơAߧr=ShK! 00 00 00 0aVjaH$r``U WB1!$00h׮CT5Hd1T00 BՍb`pv'COv#\SSsW'L PUu&$Ŀ1!Azl6Tߋ3,]* yO855gD+P Q(>P(2wTVvdr_^~!:ӄhhrMomۤ>)}lX:3::bJ)Çaѣry |'= !OxYchggnTTtQR:aErE'MMw23z~\k0DyU:8s-[6Xqsyn߾i{`ɤqq6mǵ 洴ƒ/_>KHVTUҥj2dtpp0 =VO=V(>>uټyGvvJW㸸իcy>-*R#373S…%kPxnX>l2Ȅ͛vz!bw(++{0;`Pjc}vja`a`a`g)Ymdww|dic-ObtBHBBʢEh'OI靉00 00 00 00 z{{W ;Ǣw};@{{Z}h}}뒜gϞ=#^}e6GmWב99[>@,&LN^?oc3f[sƏvj˕l6qb_ߑ"`3 !gV̚5LSZzĎO:Bȭ[w=m4L'NTP𝷷@F&ՙFl6tO9+V45ur8^Ŕo\1 l͖fpe{o׋/ƍZn޷:eDy:H6ʕ!C ===Z_zma|ǽ{[NAV6tPr鮇ՙ3|QjQQ᝝ BJKUO(+Y 7n&4aً/OOF~~DL!8d2vrr㰨 :2+K~Μ56\.c\%//Y&Y1~PDx\qJJՙ{M XQilla-2.3.4/docs/simple-api/classModuleCache__inherit__graph.md50000644001725400016040000000004013273140074021631 00000000000000b94ae5ac41dc6be660dfe39fba68e3a3XQilla-2.3.4/docs/simple-api/classATAnySimpleType__inherit__graph.map0000644001725400016040000000064113273140076022551 00000000000000 XQilla-2.3.4/docs/simple-api/classURIResolver__inherit__graph.map0000644001725400016040000000040213273140076021735 00000000000000 XQilla-2.3.4/docs/simple-api/classContentSequenceFilter.html0000644001725400016040000007005613273140077021030 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContentSequenceFilter Class Reference

    #include <ContentSequenceFilter.hpp>

    Inheritance diagram for ContentSequenceFilter:

    Public Member Functions

     ContentSequenceFilter (EventHandler *next)
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    - Public Member Functions inherited from EventFilter
     EventFilter (EventHandler *next)
     
    void setNextEventHandler (EventHandler *next)
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Additional Inherited Members

    - Protected Attributes inherited from EventFilter
    EventHandlernext_
     

    Constructor & Destructor Documentation

    ContentSequenceFilter::ContentSequenceFilter ( EventHandler next)

    Member Function Documentation

    virtual void ContentSequenceFilter::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an atomic item as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an attribute node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::commentEvent ( const XMLCh *  value)
    virtual

    Handles a comment node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::endDocumentEvent ( )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::endEvent ( )
    virtual

    Called when all events have been reported.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    virtual

    Handles a namespace binding as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    virtual

    Handles a processing instruction node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    virtual

    Handles the start of an element node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::textEvent ( const XMLCh *  value)
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.

    virtual void ContentSequenceFilter::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_25.map0000644001725400016040000000027113273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/ContentSequenceFilter_8hpp.html0000644001725400016040000000751113273140077020735 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContentSequenceFilter.hpp File Reference
    Include dependency graph for ContentSequenceFilter.hpp:

    Go to the source code of this file.

    Classes

    class  ContentSequenceFilter
     
    XQilla-2.3.4/docs/simple-api/functions_0x77.html0000644001725400016040000001261413273140074016317 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - w -

    XQilla-2.3.4/docs/simple-api/StringPool_8hpp__incl.md50000644001725400016040000000004013273140074017434 0000000000000024d65e23dfb942b4f26f432517082cbcXQilla-2.3.4/docs/simple-api/inherit_graph_21.map0000644001725400016040000000075213273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__incl.map0000644001725400016040000000241113273140074020305 00000000000000 XQilla-2.3.4/docs/simple-api/dir_7d7a68009c713f027cda8b1a802087bf_dep.md50000644001725400016040000000004013273140074021212 00000000000000280403f35fdcec6054d21df572b82adeXQilla-2.3.4/docs/simple-api/functions_func_0x75.html0000644001725400016040000001174513273140074017334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - u -

    XQilla-2.3.4/docs/simple-api/dir_7491f501d2a916fed33ee116b073f624.html0000644001725400016040000001456013273140077020601 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    framework Directory Reference
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMemory-members.html0000644001725400016040000001017613273140074021616 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMemory Member List

    This is the complete list of members for xercesc::XMemory, including all inherited members.

    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    XMemory()xercesc::XMemoryinlineprotected
    XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021362 00000000000000bfa853b4a12e5a518b458d76be081348XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__dep__incl.md50000644001725400016040000000004013273140074020423 000000000000000d29aefcbae64a117e48c901a5ee2735XQilla-2.3.4/docs/simple-api/EventHandler_8hpp__dep__incl.png0000644001725400016040000004243713273140075021022 00000000000000PNG  IHDRbKGD IDATxy\ك>9E _ey$xxV,,-< ,5E<ODVdӺ ,̲z>c̛{sH$t']v @ve:u2p8k֬b:hd}D"N%WˣG:vH777W(Uy\PP@-Tj!h/^ZZUU{nنL?YhѱcԔ,ۿBH$\P(zJ(]wݺu+Wv)B>}nv͛>}۷2DB?xv\ܒ .r#""Ο?A5u͛7G,_~ӧOWZK.]Fo߻3V^mff6~A-Zѣk1B$mݺcǎ952؞?.vJRj ,4hPtt4Jn.5 ȉ,))YbӁO>0aY_ؠ߿?22R@C(dÇd!+d|& @_!ƍ'A#k@Q`Xo;934NAAO/{[yEE$I~ɛqqØ }oz jӥGP[`k@O;##řE=Ν{ eb$R)Irse:R 0,8D"%IEqq_=%$Ip8:wvvpB޻WR]-22M`bieRXQQ/sBC]w̓W`ADBr8l%J^I׋5Iuj@%d`X\$)_JmH99%O9sW(iŋJ*[1Ąef63cQLM٦,SS+KXLr-̐$)8Z}r#EEi]YWGԐ?i])2ےeI$$AT"/\6flz`XepR)A^nk;_x$)%"CDEٚ{˵51hjklRVv>e*27(gH$ibmoA!%IbJIYs?)ٰOP"L/̌ұ#ڶ0 ,ÇE<^oݩT>͒J]#BCݿ?m}TsU86^>b5QInǝSnpXE&&-̹_k8X,رo6th]=С-;\_/=}02,^̙*/H+q8r$\v~~ξNN~~;:ښ79~h,d _%EYY: m\JK{&</侳N8%t*\fX_l޹\:q3wԓ 8yC,hAW._<⼼Ҽ2$8nn..Tѩ{r'\ϕY)-akKzy{aX}1g`++S$[/\JO\_/*==Wfuy& ^wM%l6Ki.t̂VQP]]߿ ;6bRŸ=\p߹sb٬@WnFFI:~{wPrǟ;bR)gϴ!C5A -y+NDȜ?:8P}۶,drJJ* \" Iy.ra9n\svo'OJSRx))Kx5Y1<ܿ@SnOrR)2oЦ5/8p]MH՘@Wj]ZZΨQU-p..6H.ӜC j?KM}/%wN v?,Gə3w%yz:4- bӧ/S?yRJc\//Ǘ\0#@]%23=7.$7[] |AZZNJ ﯿ0޽C~]xEMpgԕaޜԩ11f-{Giw嗧.ȎKpXǎѣCs pAWХKKV]KK{uӯ843S'TEET|*xu@_r朊0(yb>_@#KP7su}r22޿*5h7O>ysJi45Ue:5 D!Cy.CIbűZݻ_YYܯDYJ8"dJ]A֦^^dsk^[+\ݻ,7lr[7FiWKx(,|!ؘۣ_6T3ef^6.cjʍ8xTPP?0enB[KIxQ`. LC9U rkr[2,E"޻GqzP(!<ܟJ*ll A"nxv?Gqԭ:1uYfY_|1Ù l˖_}u7=cʔe|:Sy%'?ꜝ| twc$Fo޾9s&d#w4Gn[ρ=j yjk}i8>~I\.gER)9jԦ7b ڽ{!/[vcG['z{3PE)Xz2<ܟ{ӽ{:8m.*+?VKPwK!!KP"--'%%ϯx P0._}qm~s=|oSS%O{tuuu3|G͘sn5k='*ܺ'H}}¼#"uy==E!ǏgdFFov.T.-=?v-:/̸gO/oD,~69jT5kޗա~ܸ>xCGn;wNm %֭)ƯS䆸pX:ͦW/ccٴ^VUkA%:<,d HSBP#fgR]%(55mw>-9;w -{gڴ~Ltəs4MHܹsmPn:0ލD)^eԇ@g!0hm"ȶOM}$IAg}NN ZmSRR9wWd͙3x7uI">EE q4ԃDeG~VVH8 dD\BG짇{JK{|ZvUU=Qzlt Ν)GXnLL)_|qO~|t!75e>sLޚ q7\8&dzK1zl.AӀወhޞ"'d=yy֍1;h͛y3g\S#2NSȦ*+glР WW]gL5C/Cv'tmKYRRx.<|ܸG6XANݎ.!a#n'Nґ 1Cm^UVamm(k< UÙ%!hd2332 \e~.AyS>{wlӷ:ї_ڹ3En5t`ҥ\'Pw ݻcK8uFAAnL m 6@. b\Bt?#y IZ>::idecc  f:֓ŏLɇu2M(kz##=nBvs}es̢z%6nN%mIL_PP֭h_樯^}rǎKs1zٓ25QJ /993?ML4rJ<)%Ig'?VaKəAU^ twgxSYYxoNk(Uw-&wt8-$ KKnM#>ٞJ<z VKxuu"已KHG@s[Tn&͒sUU?DѡŬYܺԁK۵ݻcLT͗_5nNx@+22 \%athlɓR=n"=C^>6Mpvf:"]!Kύw!RJz ť-4 tm׮͔ &2ݻO;{55Q2tomy.\x0w64eukz5l֖-{a:֦f~ml %֤׸BvtrĽ{OI\"8]?z:C6c:@fܸd_bI|İ0o\YYI`޼! 5G5yh6R5WF\=T7R@Sr⧧?NI]Pvciݡj O$woGuܼyBۚ%UO.U)##eٔ/M׸9|^r: 4gYK=Џ)Қ9s^gçN 23glhX3GOWÂW7KPaнƟ<)}@q݃ r ɨtS'7_{j˗fN46Oѣ=,Ԅ֍iCޢG0pLG+**j^SGv6_iW''h%.#PĽ{Oʪ %(7n({ؐfAaß!~;`{hũSl:)0ЕptycycWvGQk 'Kܿ_XZZE(AAnzKPD鏩יY@++S]/fmϜݻ˖C9`:@yq}m ʐ]%<(|\I.ahë㾤yI۶M 癧[# gx5@P["kTx]@&Kr mtKtWQQCO6"IFv혶>Wn|7{^##N|Ğ=-kf7mXaM>433=$ؘ=s@3z \6w io3%_=(,|aaaҽ{tn3,^.rLJK5996Yiiի))<^Q.aa>I=z&HR7Ct}e(z ͼ\3,F->}{:8l6ˑp=H^>6E;;*̈́N8$; zP]O~%˱es ̝DūWܱ҄ }VelznΟ1ʺ t8n${񢆞&4; 6ˎŪza 0.T:%9;dg?>}ӧe|3vLc,9x)S—/ߴE*%SRx:gg0pK Bϩ6Zb.Acee\a2޿r70p`-雃ӗ.=u$OOCotǬӗ-;u$L:Xz_+0v)*uЦ!{XI.A]CCB~b^>L '@CM\īqtǗz花WP7yyH78zCAvas ?r fhޞ }ڿƍQmy3o̟kj?@1h>oPA\]1ck!0jr z琐%ٳ.\xiq^h?;JKҥ̹sM%-^|ĉ[`& IDATKw6<0LÇEuzV!OW⌌D@K`+ kEUU͛GYݻ#n}tǕ+hd޺uR^Lr`%]'aNBq»{bScjǺCUq.nG!0е];E!rH(S\?EhW](=15B͛OHv fDq7}~;S뇬,~le_{ݘP FAƳ55oȁ1]@ dm5l.YT_$w155b:^}C72zmZ?m^}rǎKs1豪JJ*SS30O[׸\0)CvKsvrr@PdիWp혎pNATTeB WÁq6ǎƃ6ɓҴ/.4 Cܶ/^dgdg?痊RaױsǎN fXHLtu:k呑}v۷jjI]tţcM\]纸̴eiȩQϟ?_Re-ke:71 cmitm3y;g$ .R<<<_*+E7Ac\]9:gV$w=y(((?~>} \vvܺϹ9%bk̚Sw}WPP z'4(38ǠtH뜝kL]vmÆ /G @XS#vqnR߰{̘1C :wvJiYFzu= ? "'++K6[[TɞZߋ1!Ior>}}QQD;Oٜm?a̘1)g֬Ycǎ]7xFiGu>-ŅbzIUUWBBBc%wĨ+**,W5jph^N\tƦTUtNhlշĐ!CfϞMwٲeVnԬz׳]1OAD :;;;99-\P$bdoo_ѻwo \\\KKKɓ'kFϟܽ{7ԩSԏk׮VKFFFB{|ܟ٭Y.NNNs̩WP[_[ϟC* R' HJJg"rgaVÇΝ+dŊ;v^x>pttP7ylOT*ݼysPPU>}.\zqk +Vl׮ݤI^xfsp)|rC/Xh޽{52ս{SRkVUU߼ySq&Xw!*rU9LmjpɊD"oxׯڗ!W!}rUΝ;ڵkv_~?Rzu!A#GƎf} ]˪*+◯ڗ/\OM]ܺuU$I۷S*$yq777HDuFѽ{%KP?Arnbb2dȐo&77~K@j믿$I cc)S$&&35ɟT*d/UUUrw&Cx+WTPngYYY<l׮]JM("HvI&M.UH}UG*ŝ\"$--gϞgddЇWlO٭[=R c$cjjzCjscr9}ռ̙3g͚URRbllO-TZ)5wz[M4#QzziN9mjP]]_o^*ڒ}4~ 5UF~r& pvv=zضmkMnUU+/_׳6绠Z8qG~~~B,jg婩r6[I?~;wX7|PUFFFFFF.\ƍj®޳g;PýДFA<z|jaٻvrʏ?H-Q_) ߼y,X *ӧ u }o!$11Q$;;;s8jGs^hO۷ݻGV왪xyy)U/[jP7*oWWWݻ#Glp}YJ+m|} IՔ좤UCXbʔ)ʣFZt'O222 e5%S-,--'M4vӧO\z5..ҰzPhll\[[b *++9k֬iӦEDD.lp/۷oP1we˖)*]ׯ_RU_)I)S̞=;))ܹs'O$֖ Y 7Qga_&''O8ի~mdd4v9s<~ݻ}Ytt4?[5Sj#F7o۵kVnW~6 \OddwAG">C;;;jR3,HԷo_KKKjX,^reHHŋg4>'}w۷o>>>>**I% Md4kj۷wqٵJ?LH!CBM6ksGRݎW^mkk۱cǏ֋!R_>B,ґJl͹UXX؉'&N:|ë bPj*oooKK>}TM)$SWWfccEwGips1U,XйsgSSӎ;~PV܁"I266L KV E.W5m5Yt\~gϞSL߿?ӱ:3 UZr']''M,:DDDDDDPS@ 1A ꡥIg.@;]v սaÆC1J+#Ifvv\vbiZ,M+B!ή@Zеk飭tq8Ǡp,֧x=\@ `XC8w+, ff##))acco,‚԰ee&v655FLӂڷo?f̘%_cX8g WS',C>3bb:uH$Oo8#jjoz!?bIw^c:..?.oDBrbݴiѽ̌Nī?\]]OTJr8g.X`ߡC"ѿ͢X,bGE1c-里L>~&MЇT`]]WH$[rH6Kll=͓Jo͛yFF_{ɹLZgA;/Nr9b7;aر[?b 홢'"s'={0QX,aH-L,,80AvA[̘1Qr(\kߺuRGֹ:4X違HKQ@BvA1c++xi4G5EPkRR~q{[p;S@ AvAaaa2gPr9&nmm\\m^HǠAA,+-ˤRrѢc.(h).},\.|Ĉ~tǎKLV ?`KŋN/8ѽ ZgʕLǠ\s9ɉsGakk|:Q~L&tӽ{ܹAp8;XZ2 ht~`X,>|xv@ AݻwSϟW 4TRR9v֢ "$ѥKot"0+xb r]wcck6D)hmHIIr-Ν%]hʕ?ާmMMGweg?7nYRtggVBSnEG{4++tP"##?:clm͙ZFǍKpr޻7pt˵k>`ky5„p]-Ԏ萳gEGo80h Exz:;6Ȉ;b99%Lgڴ][LDwCќl3r{2v g:h]Y-_~Oa:B 8,}3zt8І!`ԩ,W]]z52TÇ? re* .1fLYl잊ڍqZ?cJңGg{y9~gЫIWd>}|mageǍK1KJlӚ}anEG{4++iFF~t:8$&ښN@anuyǏ?3&xڣ1cvmLE.rlvM/Zt_gދ6p`ΝŠ[t_`h]OOcqG!'r?Ӧ튌 ݲe"#@!NNVGrv9rӽ{O^]͚zu떚ԩ;oiaa>*v˖_}uOߙ9s?LGA={x5˖up!7DFҚ[4:&dڷoQPXD"Vq\Xܲ5wQF1hD"3f́DX,Xt"Ыh d.ZJvv6R,+;;Ä좥.^X .d-qڵ\ v!h'N_]]-J7odeeէO .P-ԴD:uTn]]] 'O 155_W6X;wknڵ򋷷Ny''9s..\pBH}މoIDATkggfUe6#0,$4f̘1c4ڤI&O\\\|u$mtȑӧO{xxE^xʔ)A<{LvUUU&&& EEE;vrUUU$I%oNDdd@ ضmAϟ?:t(KMM]r֭=zt^^^FFFݗ,Y"7;Ç7XBG kR EyyGHH}'{nz={.|X B###ssƆ:we˖M0AQF-]ɓ'Æ ۲e A۷ohBjvtmL|||IIŋn:}}ʼn痔t믿?~Blmmh KFEE 6+ٳg>>>755mlуZtlիWϝ;[nl6{֭#⣏>߿Mc˔[8@oHd:]IāYNvv%PZfvbOj3hځBY[[O>l@ۅQV(P-]v @vځhٷob:=O?LG8[oejjt }.@;h dr ìIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdInInputSource__inherit__graph.md50000644001725400016040000000004013273140074024717 000000000000008cb08e326cecc5809aa2f216f9e6bdfcXQilla-2.3.4/docs/simple-api/functions_func_0x6f.html0000644001725400016040000002160513273140074017410 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - o -

    XQilla-2.3.4/docs/simple-api/classSchemaValidatorFilter__inherit__graph.map0000644001725400016040000000044313273140076023775 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_1.md50000644001725400016040000000004013273140074016274 00000000000000033a54a0b9164686e1666ffb2634e889XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__dep__incl.md50000644001725400016040000000004013273140074020701 0000000000000040c94bbaec2b1ad2207e4a369782adc8XQilla-2.3.4/docs/simple-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.map0000644001725400016040000000063513273140076021541 00000000000000 XQilla-2.3.4/docs/simple-api/namespaceCompileDelayedModule.html0000644001725400016040000000536613273140074021433 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    CompileDelayedModule Namespace Reference

    Functions

    void compile (const XMLCh *queryFile)
     

    Function Documentation

    void CompileDelayedModule::compile ( const XMLCh *  queryFile)
    XQilla-2.3.4/docs/simple-api/classATDateTimeOrDerived__inherit__graph.map0000644001725400016040000000104213273140076023302 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000001_000007.html0000644001725400016040000003442013273140074015705 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    xqilla → xerces-c-src Relation

    File in include/xqillaIncludes file in xerces-c-src
    schema / DocumentCache.hppsrc / xercesc / util / XMemory.hpp
    events / EventSerializer.hppsrc / xercesc / framework / XMLFormatter.hpp
    context / ItemFactory.hppsrc / xercesc / util / XMemory.hpp
    framework / ReferenceCounted.hppsrc / xercesc / framework / MemoryManager.hpp
    context / Scope.hppsrc / xercesc / util / XMemory.hpp
    runtime / Sequence.hppsrc / xercesc / util / PlatformUtils.hpp
    runtime / Sequence.hppsrc / xercesc / util / XMemory.hpp
    events / SequenceBuilder.hppsrc / xercesc / util / XMemory.hpp
    context / StaticContext.hppsrc / xercesc / util / PlatformUtils.hpp
    context / StaticContext.hppsrc / xercesc / util / XMemory.hpp
    ast / StaticType.hppsrc / xercesc / util / XMemory.hpp
    framework / StringPool.hppsrc / xercesc / framework / MemoryManager.hpp
    context / UpdateFactory.hppsrc / xercesc / util / XMemory.hpp
    context / URIResolver.hppsrc / xercesc / util / XMemory.hpp
    context / VarHashEntry.hppsrc / xercesc / util / XMemory.hpp
    context / VariableTypeStore.hppsrc / xercesc / util / XMemory.hpp
    framework / XPath2MemoryManager.hppsrc / xercesc / framework / MemoryManager.hpp
    simple-api / XQilla.hppsrc / xercesc / framework / MemoryManager.hpp
    simple-api / XQilla.hppsrc / xercesc / util / PlatformUtils.hpp
    simple-api / XQilla.hppsrc / xercesc / util / XMemory.hpp
    simple-api / XQillaConfiguration.hppsrc / xercesc / framework / MemoryManager.hpp
    simple-api / XQillaConfiguration.hppsrc / xercesc / util / XMemory.hpp
    simple-api / XQQuery.hppsrc / xercesc / sax / InputSource.hpp
    simple-api / XQQuery.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/simple-context-item_8cpp-example.html0000644001725400016040000001136213273140073022012 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    simple-context-item.cpp

    This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

    #include <iostream>
    int main(int argc, char *argv[]) {
    // Initialise Xerces-C and XQilla by creating the factory object
    XQilla xqilla;
    // Parse an XQuery expression
    // (AutoDelete deletes the object at the end of the scope)
    AutoDelete<XQQuery> query(xqilla.parse(X("foo/bar/@baz")));
    // Create a context object
    AutoDelete<DynamicContext> context(query->createDynamicContext());
    // Parse a document, and set it as the context item
    Sequence seq = context->resolveDocument(X("foo.xml"));
    if(!seq.isEmpty() && seq.first()->isNode()) {
    context->setContextItem(seq.first());
    context->setContextPosition(1);
    context->setContextSize(1);
    }
    // Execute the query, using the context
    Result result = query->execute(context);
    // Iterate over the results, printing them
    Item::Ptr item;
    while(item = result->next(context)) {
    std::cout << UTF8(item->asString(context)) << std::endl;
    }
    return 0;
    }
    XQilla-2.3.4/docs/simple-api/classVariableTypeStore__inherit__graph.md50000644001725400016040000000004013273140074023064 00000000000000b288dadf7528cf8723831afa77ad1eb8XQilla-2.3.4/docs/simple-api/functions_0x67.html0000644001725400016040000013066413273140074016324 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - g -

    XQilla-2.3.4/docs/simple-api/dir_e3266bbc227f825a287bdb912a8a79c0.html0000644001725400016040000000551313273140077020742 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    include Directory Reference
    Directory dependency graph for include:
    include

    Directories

    directory  xqilla
     
    XQilla-2.3.4/docs/simple-api/Result_8hpp.html0000644001725400016040000001102313273140077015733 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Result.hpp File Reference
    #include <string>
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Item.hpp>
    #include <xqilla/runtime/ResultImpl.hpp>
    #include <xqilla/runtime/EmptyResult.hpp>
    Include dependency graph for Result.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Result
     A scoped pointer wrapper for the lazily evaluated query result. More...
     
    XQilla-2.3.4/docs/simple-api/EventHandler_8hpp__incl.map0000644001725400016040000000133213273140075020011 00000000000000 XQilla-2.3.4/docs/simple-api/dir_e4f670f0fab752107ff8f745d16ebbbc.html0000644001725400016040000000645313273140077021172 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xerces Directory Reference
    Directory dependency graph for xerces:
    xerces

    Files

    file  XercesConfiguration.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.png0000644001725400016040000001327213273140075021735 00000000000000PNG  IHDR~kBbKGDoIDATx{TWo JQ^!X4([-݊]kXD|ʣxW]Y]ig+"T\5"(-/jB hyiI19qf>;Pp 9 C )vޭRȪR|75WTT9sff. vڊ+Oo>U0 ׮]Ӊc< C )Nɉ'?ykLMMussȸqX,vrr %ooo_n]qqP"?$$Jt дOkgg7)] 'Otssv!1L81b> ;; lBǏ?tPWWZZZ޸8H&44tU={,66>::յᆱ:t萅ږbjukkkvvvTTTzz g^m#a.---;w mmmDu~޼yO\\\II @Vc6**jU8qógfɝW^lgg`0|}}8b3ji S|QQg͚^TT.\8xO>rJ@{{{@@_f?Y 6lذlٲ3gpxƍ?۷/Dkcƌ N~(ʲeʈJ299yŊ+VHNNV*kۻwoRR1DP,]Ƞ?\V9s&<<|[lwTUUt RRRbŊ#G( (a8u>000w\.ӟry<^WW'6\NNٳgw=>zhtttJJJoo+W233򗿜:u*,,ѣT*9Hr6Aϝ;'RRR:?npx``׉*++ xQQQRyyyjjΝ;4;Ʌ <ԩSFCb8߿ùsΝh|;?ڵk 3fvp666eggΚ5kӦMFP(jHr}^m6&9iҤ芊 ?`PXXh",Rŋcbb}݁k֬3gƲloo?FCb8'wEEE*?D=<</KKKϟL: j;::#.A888Yfi SL1ՕhwvvZJ7xp++>ofiiijj@ÕJR4i$58::(vfkf葑xZ]\\',Y?~xӦM:kq_;)_^^, ٹQFPPЉ'|}}5y\~i' 믿&YG9rL2E#C?L>>~fILLLܼy3B;wntttwwJ,--͛WXX8oK JP]T-瞵 je>-) zo_R)pЉjR_arr2?ЉzR֎TԽ:U4;WEJ1$Ǐ jѣ^"_x S.]6w5*j<+D[[խj8WW_YY癛JO m P==&Lp >s)). Z C )H< C )H< C )H< C )H< C )H< C )H< C )H< C )H<&b΢YdW1le0*HT*Ϟ=kE"x]zi"^)H< CS(Phl*1{7440SZZ*z0!풋Z~qrrrqq!i{{8S(\.ٙdr\BP(NNN Ɠ_tښb%$$J}ݝ֯_ӣ_COOƍ ޱc\.  }̙DOTjmm}-'cooA!77wԩL&3..`u( L6@}}=UV3gڵaXZZ 88ð@ww7۽Z( tzDDD[[ɓ'>/M&ܹرCz>#:|EEEW\qttT(8@oooxx-[477@֬YXSSwް0Jr`ZZړ'Om6PXYYgϞu S3zW(s̱!mڴ1**ӧڝjk9|Ä BCCL\.߱cmhhD"ѯA,;::X2LD񘘘cb iii'Nd0[nդ fӍ⓻Ξ={֮];//ĴGG.wtt>}ZLH9;GGG&hf?X͛'Lfrr`fC )H<.88ش _8NP(ªٳg*}{!!!g6U6HTdo;. =_\MFqZRUQ(JV֯dB0T*\V?|%0ͽeaT*%/6Ⳳ*U*5VJr!75u߽ۡy+xMM{c#R"ğ?ϧR-FC:UJs. WAV=dG^jn~\[NJId 4U?NQϟ盿H<99**?)Jצ'4NGQ=Ȯ|@tĉ[4uee#σxhaA8C :{@J !z6H< C )H< C )H< C )H< C )H< C )H< C )H< C )H< CG7ovvv* ~7++BIRĠhJ$aiiP(LdKR4`"x&ܵ1RxHA!(^(R(Lh E({.1o _Fx0Oŋ$ SLyZNLL7n_\\L,FK.Z[[X,:|||ƌ3iҤLZMPӽ233=<ԞB*ZYY%''DR*jub0,%%M\pa]]]YYϴVjii3gܵkvXd a/̩4x<)}, K$6yӦMtwT*UTׯ_':kO!i4W_}%HjuooJqi=љq8^^^"hϘ1C;\v qJœ:A[ϴz%" 3ft1N-Zh֬Y8w틋lyn޼iaǍh:m Dˋ,GCSS"Z`Acc~y 42ѫƬ[[[>S"V]]P[[k?))I׼e2ZőK.CuuuE CH$2OP 42ѫ|juDD֭[O>]PPr?î]'2l߾}^ e…h4k!XmۄBaee={֭[+W޽Y ,Zѣ'O^;sccx1ȑ#ӧOq,K,߿?u0zq&LHJJ e2:xɓ't//\@@MLKK8q"غuL&aئM>}29uƷ(>{!ڛ^EscQ|r9 1~h3| S-K=hG$RxHA!ф PaPPF\\\L t$RxHA!Q/IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_7.map0000644001725400016040000000032413273140077016402 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1URLInputSource-members.html0000644001725400016040000003050513273140074023057 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::URLInputSource Member List

    This is the complete list of members for xercesc::URLInputSource, including all inherited members.

    getEncoding() const xercesc::InputSourceinlinevirtual
    getIssueFatalErrorIfNotFound() const xercesc::InputSourceinlinevirtual
    getMemoryManager() const xercesc::InputSourceinline
    getPublicId() const xercesc::InputSourceinlinevirtual
    getSystemId() const xercesc::InputSourceinlinevirtual
    InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSourceprotected
    makeStream() const xercesc::URLInputSourcevirtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    setEncoding(const XMLCh *const encodingStr)xercesc::InputSourcevirtual
    setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSourceinlinevirtual
    setPublicId(const XMLCh *const publicId)xercesc::InputSourcevirtual
    setSystemId(const XMLCh *const systemId)xercesc::InputSourcevirtual
    URLInputSource(const XMLURL &urlId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
    URLInputSource(const XMLCh *const baseId, const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
    URLInputSource(const XMLCh *const baseId, const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
    URLInputSource(const XMLCh *const baseId, const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
    URLInputSource(const XMLCh *const baseId, const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
    urlSrc() const xercesc::URLInputSourceinline
    XMemory()xercesc::XMemoryinlineprotected
    ~InputSource()xercesc::InputSourcevirtual
    ~URLInputSource()xercesc::URLInputSource
    XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp.html0000644001725400016040000001246713273140077020217 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateTimeOrDerived.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/ATDecimalOrDerived.hpp>
    #include <xqilla/items/ATDurationOrDerived.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATDateTimeOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATDateTimeOrDerived
     
    XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020210 00000000000000cf32087a14b7d89154d53e1a697b38abXQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.map0000644001725400016040000000070013273140076025625 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMNode.html0000644001725400016040000032333113273140077020016 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMNode Class Referenceabstract

    The DOMNode interface is the primary datatype for the entire Document Object Model. More...

    #include <DOMNode.hpp>

    Inheritance diagram for xercesc::DOMNode:

    Public Types

    Public Constants
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Public Member Functions

    Destructor
    virtual ~DOMNode ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeList * getChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMap * getAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    Functions introduced in DOM Level 2.
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    Functions introduced in DOM Level 3.
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Detailed Description

    The DOMNode interface is the primary datatype for the entire Document Object Model.

    It represents a single node in the document tree. While all objects implementing the DOMNode interface expose methods for dealing with children, not all objects implementing the DOMNode interface may have children. For example, DOMText nodes may not have children, and adding children to such nodes results in a DOMException being raised.

    The attributes nodeName, nodeValue and attributes are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue for an DOMElement or attributes for a DOMComment ), this returns null. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.

    The values of nodeName, nodeValue, and attributes vary according to the node type as follows:

    Interface nodeName nodeValue attributes
    DOMAttr name of attribute value of attribute null
    DOMCDATASection "#cdata-section" content of the CDATA Section null
    DOMComment "#comment" content of the comment null
    DOMDocument "#document" null null
    DOMDocumentFragment "#document-fragment" null null
    DOMDocumentType document type name null null
    DOMElement tag name null NamedNodeMap
    DOMEntity entity name null null
    DOMEntityReference name of entity referenced null null
    DOMNotation notation name null null
    DOMProcessingInstruction target entire content excluding the target null
    DOMText "#text" content of the text node null

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Member Enumeration Documentation

    DocumentPosition:

    DOCUMENT_POSITION_CONTAINED_BY: The node is contained by the reference node. A node which is contained is always following, too.

    DOCUMENT_POSITION_CONTAINS: The node contains the reference node. A node which contains is always preceding, too.

    DOCUMENT_POSITION_DISCONNECTED: The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.

    DOCUMENT_POSITION_FOLLOWING: The node follows the reference node.

    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: The determination of preceding versus following is implementation-specific.

    DOCUMENT_POSITION_PRECEDING: The second node precedes the reference node.

    Since
    DOM Level 3
    Enumerator
    DOCUMENT_POSITION_DISCONNECTED 
    DOCUMENT_POSITION_PRECEDING 
    DOCUMENT_POSITION_FOLLOWING 
    DOCUMENT_POSITION_CONTAINS 
    DOCUMENT_POSITION_CONTAINED_BY 
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 

    NodeType.

    Since
    DOM Level 1
    Enumerator
    ELEMENT_NODE 
    ATTRIBUTE_NODE 
    TEXT_NODE 
    CDATA_SECTION_NODE 
    ENTITY_REFERENCE_NODE 
    ENTITY_NODE 
    PROCESSING_INSTRUCTION_NODE 
    COMMENT_NODE 
    DOCUMENT_NODE 
    DOCUMENT_TYPE_NODE 
    DOCUMENT_FRAGMENT_NODE 
    NOTATION_NODE 

    Constructor & Destructor Documentation

    xercesc::DOMNode::DOMNode ( )
    inlineprotected
    xercesc::DOMNode::DOMNode ( const DOMNode )
    inlineprotected
    virtual xercesc::DOMNode::~DOMNode ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNode* xercesc::DOMNode::appendChild ( DOMNode newChild)
    pure virtual

    Adds the node newChild to the end of the list of children of this node.

    If the newChild is already in the tree, it is first removed.

    Parameters
    newChildThe node to add.If it is a DOMDocumentFragment object, the entire contents of the document fragment are moved into the child list of this node
    Returns
    The node added.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to append is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being appended is readonly.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::cloneNode ( bool  deep) const
    pure virtual

    Returns a duplicate of this node.

    This function serves as a generic copy constructor for nodes.

    The duplicate node has no parent ( parentNode returns null.).
    Cloning an DOMElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child DOMText node. Cloning any other type of node simply returns a copy of this node.

    Parameters
    deepIf true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an DOMElement).
    Returns
    The duplicate node.
    Since
    DOM Level 1
    virtual short xercesc::DOMNode::compareDocumentPosition ( const DOMNode other) const
    pure virtual

    Compares the reference node, i.e.

    the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.

    Parameters
    otherThe node to compare against this node.
    Returns
    Returns how the given node is positioned relatively to this node.
    Since
    DOM Level 3
    virtual DOMNamedNodeMap* xercesc::DOMNode::getAttributes ( ) const
    pure virtual

    Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getBaseURI ( ) const
    pure virtual

    The absolute base URI of this node or null if undefined.

    This value is computed according to . However, when the DOMDocument supports the feature "HTML" , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the documentURI attribute from the DOMDocument interface otherwise.


    When the node is an DOMElement, a DOMDocument or a a DOMProcessingInstruction, this attribute represents the properties [base URI] defined in . When the node is a DOMNotation, an DOMEntity, or an DOMEntityReference, this attribute represents the properties [declaration base URI].

    Since
    DOM Level 3
    virtual DOMNodeList* xercesc::DOMNode::getChildNodes ( ) const
    pure virtual

    Gets a DOMNodeList that contains all children of this node.

    If there are no children, this is a DOMNodeList containing no nodes. The content of the returned DOMNodeList is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the DOMNodeList accessors; it is not a static snapshot of the content of the node. This is true for every DOMNodeList, including the ones returned by the getElementsByTagName method.

    Since
    DOM Level 1
    virtual void* xercesc::DOMNode::getFeature ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    This method makes available a DOMNode's specialized interface.

    Parameters
    featureThe name of the feature requested (case-insensitive).
    versionThe version of the feature requested.
    Returns
    Returns an alternate DOMNode which implements the specialized APIs of the specified feature, if any, or null if there is no alternate DOMNode which implements interfaces associated with that feature. Any alternate DOMNode returned by this method must delegate to the primary core DOMNode and not return results inconsistent with the primary core DOMNode such as key, attributes, childNodes, etc.
    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMNode::getFirstChild ( ) const
    pure virtual

    Gets the first child of this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::getLastChild ( ) const
    pure virtual

    Gets the last child of this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getLocalName ( ) const
    pure virtual

    Returns the local part of the qualified name of this node.

    For nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, it is null.

    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMNode::getNamespaceURI ( ) const
    pure virtual

    Get the namespace URI of this node, or null if it is unspecified.

    This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.

    For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, this is always null.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNode::getNextSibling ( ) const
    pure virtual

    Gets the node immediately following this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getNodeName ( ) const
    pure virtual

    The name of this node, depending on its type; see the table above.

    Since
    DOM Level 1
    virtual NodeType xercesc::DOMNode::getNodeType ( ) const
    pure virtual

    An enum value representing the type of the underlying object.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getNodeValue ( ) const
    pure virtual

    Gets the value of this node, depending on its type.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    Since
    DOM Level 1
    virtual DOMDocument* xercesc::DOMNode::getOwnerDocument ( ) const
    pure virtual

    Gets the DOMDocument object associated with this node.

    This is also the DOMDocument object used to create new nodes. When this node is a DOMDocument or a DOMDocumentType which is not used with any DOMDocument yet, this is null.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::getParentNode ( ) const
    pure virtual

    Gets the parent of this node.

    All nodes, except DOMDocument, DOMDocumentFragment, and DOMAttr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a null DOMNode is returned.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getPrefix ( ) const
    pure virtual

    Get the namespace prefix of this node, or null if it is unspecified.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNode::getPreviousSibling ( ) const
    pure virtual

    Gets the node immediately preceding this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getTextContent ( ) const
    pure virtual

    This attribute returns the text content of this node and its descendants.

    No serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content.


    The string returned is made of the text content of this node depending on its type, as defined below:

    Node type Content
    ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes
    ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
    DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
    Exceptions
    DOMExceptionDOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.
    See Also
    setTextContent
    Since
    DOM Level 3
    virtual void* xercesc::DOMNode::getUserData ( const XMLCh *  key) const
    pure virtual

    Retrieves the object associated to a key on a this node.

    The object must first have been set to this node by calling setUserData with the same key.

    Parameters
    keyThe key the object is associated to.
    Returns
    Returns the void* associated to the given key on this node, or null if there was none.
    See Also
    setUserData
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::hasAttributes ( ) const
    pure virtual

    Returns whether this node (if it is an element) has any attributes.

    Returns
    true if this node has any attributes, false otherwise.
    Since
    DOM Level 2
    virtual bool xercesc::DOMNode::hasChildNodes ( ) const
    pure virtual

    This is a convenience method to allow easy determination of whether a node has any children.

    Returns
    true if the node has any children, false if the node has no children.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::insertBefore ( DOMNode newChild,
    DOMNode refChild 
    )
    pure virtual

    Inserts the node newChild before the existing child node refChild.

    If refChild is null, insert newChild at the end of the list of children.
    If newChild is a DOMDocumentFragment object, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed. Note that a DOMNode that has never been assigned to refer to an actual node is == null.

    Parameters
    newChildThe node to insert.
    refChildThe reference node, i.e., the node before which the new node must be inserted.
    Returns
    The node being inserted.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being inserted is readonly.
    NOT_FOUND_ERR: Raised if refChild is not a child of this node.
    Since
    DOM Level 1
    virtual bool xercesc::DOMNode::isDefaultNamespace ( const XMLCh *  namespaceURI) const
    pure virtual

    This method checks if the specified namespaceURI is the default namespace or not.

    Parameters
    namespaceURIThe namespace URI to look for.
    Returns
    true if the specified namespaceURI is the default namespace, false otherwise.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isEqualNode ( const DOMNode arg) const
    pure virtual

    Tests whether two nodes are equal.


    This method tests for equality of nodes, not sameness (i.e., whether the two nodes are pointers to the same object) which can be tested with DOMNode::isSameNode. All nodes that are the same will also be equal, though the reverse may not be true.
    Two nodes are equal if and only if the following conditions are satisfied: The two nodes are of the same type.The following string attributes are equal: nodeName, localName, namespaceURI, prefix, nodeValue , baseURI. This is: they are both null, or they have the same length and are character for character identical. The attributes DOMNamedNodeMaps are equal. This is: they are both null, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index.The childNodes DOMNodeLists are equal. This is: they are both null, or they have the same length and contain equal nodes at the same index. This is true for DOMAttr nodes as for any other type of node. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared.
    For two DOMDocumentType nodes to be equal, the following conditions must also be satisfied: The following string attributes are equal: publicId, systemId, internalSubset.The entities DOMNamedNodeMaps are equal.The notations DOMNamedNodeMaps are equal.
    On the other hand, the following do not affect equality: the ownerDocument attribute, the specified attribute for DOMAttr nodes, the isWhitespaceInElementContent attribute for DOMText nodes, as well as any user data or event listeners registered on the nodes.

    Parameters
    argThe node to compare equality with.
    Returns
    If the nodes, and possibly subtrees are equal, true otherwise false.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isSameNode ( const DOMNode other) const
    pure virtual

    Returns whether this node is the same node as the given one.


    This method provides a way to determine whether two DOMNode references returned by the implementation reference the same object. When two DOMNode references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.

    Parameters
    otherThe node to test against.
    Returns
    Returns true if the nodes are the same, false otherwise.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isSupported ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.

    Parameters
    featureThe string of the feature to test. This is the same name as what can be passed to the method hasFeature on DOMImplementation.
    versionThis is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return true.
    Returns
    Returns true if the specified feature is supported on this node, false otherwise.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMNode::lookupNamespaceURI ( const XMLCh *  prefix) const
    pure virtual

    Look up the namespace URI associated to the given prefix, starting from this node.

    Parameters
    prefixThe prefix to look for. If this parameter is null, the method will return the default namespace URI if any.
    Returns
    Returns the associated namespace URI or null if none is found.
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMNode::lookupPrefix ( const XMLCh *  namespaceURI) const
    pure virtual

    Look up the prefix associated to the given namespace URI, starting from this node.

    The default namespace declarations are ignored by this method.

    Parameters
    namespaceURIThe namespace URI to look for.
    Returns
    Returns an associated namespace prefix if found, null if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent.
    Since
    DOM Level 3
    virtual void xercesc::DOMNode::normalize ( )
    pure virtual

    Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.

    This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

    Note: In cases where the document contains DOMCDATASections, the normalize operation alone may not be sufficient, since XPointers do not differentiate between DOMText nodes and DOMCDATASection nodes.

    Since
    DOM Level 2
    virtual void xercesc::DOMNode::release ( )
    pure virtual

    Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    If this is a document, any nodes it owns (created by DOMDocument::createXXXX()) are also released.

    Access to a released object will lead to unexpected result.

    Exceptions
    DOMExceptionINVALID_ACCESS_ERR: Raised if this Node has a parent and thus should not be released yet.
    virtual DOMNode* xercesc::DOMNode::removeChild ( DOMNode oldChild)
    pure virtual

    Removes the child node indicated by oldChild from the list of children, and returns it.

    Parameters
    oldChildThe node being removed.
    Returns
    The node removed.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::replaceChild ( DOMNode newChild,
    DOMNode oldChild 
    )
    pure virtual

    Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.

    If newChild is a DOMDocumentFragment object, oldChild is replaced by all of the DOMDocumentFragment children, which are inserted in the same order.

    If the newChild is already in the tree, it is first removed.

    Parameters
    newChildThe new node to put in the child list.
    oldChildThe node being replaced in the list.
    Returns
    The node replaced.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or it the node to put in is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
    NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
    Since
    DOM Level 1
    virtual void xercesc::DOMNode::setNodeValue ( const XMLCh *  nodeValue)
    pure virtual

    Sets the value of the node.

    Any node which can have a nodeValue will also accept requests to set it to a string. The exact response to this varies from node to node – Attribute, for example, stores its values in its children and has to replace them with a new Text holding the replacement value.

    For most types of Node, value is null and attempting to set it will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will also be thrown if the node is read-only.

    See Also
    getNodeValue
    Since
    DOM Level 1
    virtual void xercesc::DOMNode::setPrefix ( const XMLCh *  prefix)
    pure virtual

    Set the namespace prefix of this node.

    Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the DOMElement and DOMAttr interfaces, when applicable.

    Note also that changing the prefix of an attribute, that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.

    Parameters
    prefixThe prefix of this node.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NAMESPACE_ERR: Raised if the specified prefix is malformed, if the namespaceURI of this node is null, if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of this node is "xmlns".
    Since
    DOM Level 2
    virtual void xercesc::DOMNode::setTextContent ( const XMLCh *  textContent)
    pure virtual

    This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.

    No parsing is performed, the input string is taken as pure textual content.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    See Also
    getTextContent
    Since
    DOM Level 3
    virtual void* xercesc::DOMNode::setUserData ( const XMLCh *  key,
    void *  data,
    DOMUserDataHandler *  handler 
    )
    pure virtual

    Associate an object to a key on this node.

    The object can later be retrieved from this node by calling getUserData with the same key.

    Deletion of the user data remains the responsibility of the application program; it will not be automatically deleted when the nodes themselves are reclaimed.

    Both the parameter data and the returned object are void pointer, it is applications' responsibility to keep track of their original type. Casting them to the wrong type may result unexpected behavior.

    Parameters
    keyThe key to associate the object to.
    dataThe object to associate to the given key, or null to remove any existing association to that key.
    handlerThe handler to associate to that key, or null.
    Returns
    Returns the void* object previously associated to the given key on this node, or null if there was none.
    See Also
    getUserData
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp_source.html0000644001725400016040000006116413273140073021571 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateTimeOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATDATETIMEORDERIVED_HPP
    21 #define _ATDATETIMEORDERIVED_HPP
    22 
    23 #include <xercesc/util/XMLString.hpp>
    25 
    26 #include <xqilla/framework/XQillaExport.hpp>
    30 
    31 class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType
    32 {
    33 public:
    35 
    36  /* Get the name of the primitive type (basic type) of this type
    37  * (ie "decimal" for xs:decimal) */
    38  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    39 
    40  /* Get the namespace URI for this type */
    41  virtual const XMLCh* getTypeURI() const = 0;
    42 
    43  /* Get the name of this type (ie "integer" for xs:integer) */
    44  virtual const XMLCh* getTypeName() const = 0;
    45 
    46  /* returns the XMLCh* (lexical) representation of this type */
    47  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    48 
    49  /* returns true if the two objects represent the same date,
    50  * false otherwise */
    51  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    52 
    55  virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    56 
    60  virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
    61 
    65  virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
    66 
    70  virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
    71 
    75  virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
    76 
    80  virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
    81 
    85  virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
    86 
    90  virtual const Timezone::Ptr &getTimezone() const = 0;
    91 
    95  virtual bool hasTimezone() const = 0;
    96 
    101  virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
    102 
    106  virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0;
    107 
    111  virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
    112 
    116  virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
    117 
    121  virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0;
    122 
    126  virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0;
    127 
    132  virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
    133 
    138  virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
    139 
    140 
    142 };
    143 
    144 #endif // _ATDATETIMEORDERIVED_HPP
    RefCountPointer< const ATDateTimeOrDerived > Ptr
    Definition: ATDateTimeOrDerived.hpp:34
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: ATDateTimeOrDerived.hpp:31
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: DateOrTimeType.hpp:31
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool hasTimezone() const =0
    Returns true if the timezone is defined for this object, false otherwise.
    XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp__incl.md50000644001725400016040000000004013273140074021256 00000000000000948a1ab09955512547d2d2ab59346259XQilla-2.3.4/docs/simple-api/dir_341c1efff76b1d093918f998475bd8fe_dep.map0000644001725400016040000000045513273140076021440 00000000000000 XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__incl.map0000644001725400016040000000305713273140076021422 00000000000000 XQilla-2.3.4/docs/simple-api/DOMXPathNSResolver_8hpp__incl.png0000644001725400016040000001165113273140075021015 00000000000000PNG  IHDRp!]#abKGD^IDATx{X'!(A h1(rP\kb(X(A-DbQ(OE[h ٳ&EϊRݙɒPIPuPO2z LhR$Ȥf;v oH=߭[pbL>kkk#=> &*+dx߾}RF~ L d!x3fX`A`` Č<OGGtrrrvFFBڵ<33/ `Ϟ=;w'$$UTTrAAA933S[[[hnn%q H$JOOy&WWWrwwRWN}7gp zijjJ$*++UUU믔ʨ(* hmm})vѲGllŋ{{{uuu""<G! #%%%7nXb쩘744tww3Ao߾SNo7LY,455SN1cǎ}'l64>>`bbR\\*--]p!v驢HLLTSS[~TjjjgΝ=#P"1;booq>/{۾zzzL& ܹ#lv@@@SSSWWט!gDP֬YSVV^v P ]ZXXc[a%%%XeZPPp邂PxEܽ{̙3͛7K~eeӧ1NTT;(\nVVa&rrr4MII =wtttttZͭ?888_v%pE"ӧOUUU˗/WwuuMNNE"Q___KKΝ;uԾ{eff&%%uvv .`KJJ INNTBRCCCWJ\UU&H$zeJJʕ+S999</!!!***--?<<|ڵ?#G'N舏?|pEEٳgVVV%%%+**,YBܹP===^:77СC{o$k1qw E"U* ޽kdd4m4|eAo*IcӦMvvvBpϞ=:UQQ?twwcv6ގx⬬'N]zͭH*[[[ggBWWWTAAm444tuub1 "N+(( ]~}֭7nĆpg}& ?~ (**Ahd xzf 6mڄ5Jh|-|=.ESS@YYy&&& ءEdddoݿ?:::88?z>hGD"CMM @dvttyfddmPKiigzzz||T&GSNNNXp%%SFGG䤥뻹-]T H$;::0/˗̞=4))ihAGGgf٘( GO\xqٲe衵S%TٳgWȨrǎh/_ rQQQ~X,REPv__t TDD:wS(%K*((\t A hTm```@" ޽;77WUUJxYfZZZX,>Ull,زQHL^755̍F2o>uvv/^TWWٳ[=-o^^^t֭@߆T33cǎ7յ[NUU5&&fdbFDCH$g455ϝ;N2eժU+++x=:y$68Iׇejjٳ\ |^XLh4eLL CwUa,YӓnkkeK%seO\\\ssrQśO[lA \.711x[ZZ455\\\*e^^#XXXXYYU4-88xffffff#%1e777++###''+WSnݪDCBB222UUU---+BGuuuEEEP񉋋P(ffft:KHHhoo CEm //b wwwDC͋K/^'sх bBwߏnҢJyWC*RACII~<7郃dn߾}<7 B&PO2z L3/'A XWo'{͚cW'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'#&?K?UWU/hj}Gא{0>lϯ7[KK'VVz"wĬ]kyy9WO&81ZshX< u$Fy1R̝;S_3)z')#&3)z6[զR_%ppv^qp hGM)@="SJqvh@=t)7!vv eB=POc-QMMY,w{rqrZy߁zSVV_F:KUF :W>>|@ :}R42T6pW400 gST})466 -﫨OT>M{{ d!'@=Ad멡aƍcVG x?Feggc<:^SS6rc^^^GCYyP(z22Iܵk5ٳg, -3]vnll{N@WW͛Œ&hC555 Erډ@pݸqTzTe 011|kYɓ'ءD"133ۻwH 5$Ç-=>]xQ[[[ Ξ= 3fRTTS\\|^|.`0tuu322CCC/^PRR2e ~˖-̜9LsR:zСtyy$kP(˗/߯q,,,p8®F^^ܹs544^\[[[g̘q=xa'',Z(44ׯ>x𠦦fҥ;wɫGAA!>>㥤hHBԌ [+i1BCCx[B4~TTT0[Gώ`B]FXjU]]]YY '4M$l6ŷ7o<]pB4 2w .gkkkϗ?z@ H$#;99|MH$999|jא4Rex mG$++Q!GO߿_NN 0 懮B FMMlY/An߾쬤djjzʕܻ׬Y񗸮ncoo W|bCCCBʽ%(((22,,,˗59y򤝝譣3 PWW55k<𰵵|̙3/^ڃ?^]]t-[o0.[SSSSS|r__ߑD"HLLd0"ãnؤtuu9::PݍOxwDzjssstr6l!pl6s<3)) pOO<)//ۻw/qt10.XMMMt " 7nܨۋvΝ;TTT6l P YYYs̡#t'd2̙+?seeeDFOR ?,T*5''mw ym>QbJi_F#$''Ϛ5bmݺU$G^Z  z===))GѣG s~^!2m4_8A8A.PO2z L_ ]dA c" M2>M6MCCcbSLbdB&p!'@=A B&{Rَ;IENDB`XQilla-2.3.4/docs/simple-api/classSchemaValidatorFilter.html0000644001725400016040000007751113273140077020776 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SchemaValidatorFilter Class Reference

    The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache. More...

    #include <SchemaValidatorFilter.hpp>

    Inheritance diagram for SchemaValidatorFilter:

    Public Member Functions

     SchemaValidatorFilter (bool strictValidation, EventHandler *next, xercesc::GrammarResolver *grammarResolver, xercesc::MemoryManager *mm, const LocationInfo *info)
     
    virtual ~SchemaValidatorFilter ()
     
    void reset ()
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    - Public Member Functions inherited from EventFilter
     EventFilter (EventHandler *next)
     
    void setNextEventHandler (EventHandler *next)
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Additional Inherited Members

    - Protected Attributes inherited from EventFilter
    EventHandlernext_
     

    Detailed Description

    The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache.

    It will add typing information, as well as default values and attributes, and will normalize values according to the schema normalization rules.

    Constructor & Destructor Documentation

    SchemaValidatorFilter::SchemaValidatorFilter ( bool  strictValidation,
    EventHandler next,
    xercesc::GrammarResolver *  grammarResolver,
    xercesc::MemoryManager mm,
    const LocationInfo info 
    )
    virtual SchemaValidatorFilter::~SchemaValidatorFilter ( )
    virtual

    Member Function Documentation

    virtual void SchemaValidatorFilter::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles an attribute node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::commentEvent ( const XMLCh *  value)
    virtual

    Handles a comment node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::endDocumentEvent ( )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    virtual

    Handles the end of an element node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    virtual

    Handles a namespace binding as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    virtual

    Handles a processing instruction node as an event.

    Reimplemented from EventFilter.

    void SchemaValidatorFilter::reset ( )
    virtual void SchemaValidatorFilter::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    virtual

    Handles a document node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    virtual

    Handles the start of an element node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::textEvent ( const XMLCh *  value)
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.

    virtual void SchemaValidatorFilter::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    virtual

    Handles a text node as an event.

    Reimplemented from EventFilter.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_7491f501d2a916fed33ee116b073f624_dep.png0000644001725400016040000001433713273140076021252 00000000000000PNG  IHDR)TWbKGDIDATxy\Gڀ98>c@TXo1h~x|窫F窬Q"<@YF 2"3|Ha.篱wxꚞ*L& R0;L;C =3;C =3;C =3ЃMV FVd~KJGi\QPz`g聝vz`g聝22NTW͘ 8<|]xvD\V ')cݻsP)cFo޼ֹdfLqt4wBI,Np6sg&y޽񳦦&///KM}wnz_~XZZ|Υ׭ zv搐11?uY oߓs]A㉃g&355w $M05-_޽GǏ讔X,JMMMjjj-Ruu]$߻%K?|l%vW L*rW:ut~ogG/5 ¶zU]).HOOklll6[CCt1>>Z ^Vٵ]]M sϷl ZfcKKӊ f8޹ھ} ]q:@g%%R}8\}#z`g聝vz`g聝vz`g聝vz`g聝vz(y+WR^MQZud}vǒsvj}j g" '8送܀zz`g聝vz`g聝vz`g聝vz`gA/g2le`'-/^{XZ_:s&ɓNЫ?I{ۛ{۷3ǎͽs%Oqff0bѣ OJ:G#GʗX۷co?n߈boǏZ!s۶fm믗ڵ+lm9۶m [;dBDd۶m6#>F%z9\xѣ5ʖ]2.ڵkΝ55onmǎ;C]tΓ;߿[ Jox}cϞfܾ wܹ O:u'e˺W*22~;s>q vؒihhԿݜu&,lԩdg?޻7rSss /~7ZZ`o. wj !ľ}G-ƆL5b+WZWΝӦM'(';Ϝo0?=rdLL&tfhPUU-..ܰaeSS#?]6txM%TO]q=eÑ[2rroz{oߴY[gQl+++gB)S""?z4#tog֖ 뿹u^"@&JKk_e2>W6m[srg#X,(^ZZbff>ӧ""~:>1;&iP(D-{Ɔ;w=YhvTQ5':EEEs/ZX ***J /^E簚lm7nW(l%tuv>jV .Yxv_ nݺ[[[s1c\,udO$FFGLLfp_O*7~ APZ~GF̙3wZz`g聝vz`g聝vz`g聝vz`g聝vz`gW`2k(gXDQo߾vrկ|7Et`}IAy|||}||r ÇOz,y#GQu ۷շog.Z/';X6PE g.$Λ秪<4% ݻ[RRhҾqt g$;ѱ'UU|겢566i!q,<{0ygiid2ܹ Uxq~>䝝9g::-4ա$Ν;7UlvԤ?kmmrJ[[)H\\>`{mǏ:ubQ[111:uj? ΔP(466VѣGOnVJYjj*/Vb7tDYLLٳ-,,V\]]:??ܬ鎊ׯ''+4;3q }}9s~j`gC&q\5''BXLVbIg7o,))Y|qbqqq1)Y) $EGGO0E8sVWWx(b舝QN||<#-ggg9Yx)P:"ɓ'>$c$ptt,**RmRA?O;;ɓ'F$P L$%&& .~wZ}?ݻw)%zzzUDGGƦܘ3wƍKJJtuui(QBllOB߿^%HX.~m P087JR(O\v := EEE $hgSLqtt)++[n]bbYSS}PPPNNKnٲ¢(" V6B7a۟M6 FWWPWt|XRRRVVf͚yD"?`]@kHǾC/'Hd2YvvI[tt,Dޒd42077T$23o 655={,5r8*T~.TUUz#H\"TWW qIII?%JȹsRTNkkk_,kÆ k׮FuuuCCClശ2ILEEeƌR4uF<=bmmi}TB 4u,KWW7##CWsng "X,֥K< Oy<^hh|)xp8=?~-11qRcii9qD;)Fib]B3ёIogDLUUUT`DDűcǖ,Y2|ÇD"LvSSS@@b}\A(wF ==] ))NbHD v{(=ĝF#ރ1nP3hlld2H/`gzzzIh S&|>9Hs|##΢wvz`g聝GMM vmmmuuuJJR %قJ 䬋b>e_@ԧ(r0kn666d-Claa1qĞy捖⻩)?9:}`"盛ϛ7m{U>)3CC9s(Ҫ*wQ::۷o+sOW^*:Eٳgs8'N(Fd._<..Ni"H 88իW.T#J߼y)gttzD"}# _xTWTUU… 1 KKK+"Z;"gbbNuE@kgٳ\Jkx֔VA"twGQ=xVVVVA"tw+VHLLtIRdٲebm唕vF&u555 ߹s<pH23g9rd\\KKKY,6T41L.KbTϟ?RUU%=2E ߾}{U#=ԁ3++ӧS1),,#=,u \B%BΨbzzzVD(=fMM@ *e2Yw룢̙ӯ;+W޽{[8gA8{⅑ZOO/$$dpQ™T*%X##GA= P 5g]Bll1X{w Mg*++;JjΈO XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLFormatTarget Class Referenceabstract

    #include <XMLFormatter.hpp>

    Inheritance diagram for xercesc::XMLFormatTarget:

    Public Member Functions

    virtual ~XMLFormatTarget ()
     
    virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0
     
    virtual void flush ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Protected Member Functions

     XMLFormatTarget ()
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual xercesc::XMLFormatTarget::~XMLFormatTarget ( )
    inlinevirtual
    xercesc::XMLFormatTarget::XMLFormatTarget ( )
    inlineprotected

    Member Function Documentation

    virtual void xercesc::XMLFormatTarget::flush ( )
    inlinevirtual
    virtual void xercesc::XMLFormatTarget::writeChars ( const XMLByte *const  toWrite,
    const XMLSize_t  count,
    XMLFormatter *const  formatter 
    )
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_0x6a.html0000644001725400016040000001065713273140074016375 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - j -

    XQilla-2.3.4/docs/simple-api/dir_7491f501d2a916fed33ee116b073f624_dep.md50000644001725400016040000000004013273140074021133 000000000000007c03b986f625775c85a346b4ee5477bdXQilla-2.3.4/docs/simple-api/DebugListener_8hpp__dep__incl.map0000644001725400016040000000030013273140075021147 00000000000000 XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.png0000644001725400016040000011220713273140075021466 00000000000000PNG  IHDRqp bKGD IDATxy\Ll-Ӯ}({%]q5+rqZ\-BBf9?7;M~c:5es| 0@2 aaaD_nnڵkl6ABHHp ӧ;99ׯ_߾}+=pFD͛*>>~֭Dh#@!@!@!@cUΝ;}… g̘ݶm[1MLLϞ=\XXhdddggIPBΎ7o&H$qqq]__̙"CCC{{{n ﯪڞEt><98;;wx= bcc⸅mtt4Bhɒ%krmm-A뫯ŋ{dPBBB\\ȑ#46CMMOOO}1:r䈮.KttS\W׼ pi^NNϟW^֭[n3J=w f```ooTTT?Ӻ8pKc1ʍQ\\|#vMCCb۶mQQQYB^llA ccc?&&f֬YM:yzz޿p߾}ͻJJJZp)S.\tvv}ٳ'Nx…{yyyϧNG`XAAA&M4iRPPj%FLLLAAsjjy2H$wwO4߹saÆcǎ0L777|'p8/^7nܒ%K޽{3g#>~gҤIf2| " 2...!6CTWW 755_5kּxݻMǩݴiiXXpppee%/^?~7888)))44 !tҥ'N۷/55-0113:22r͚5߅Aaa!N⒐V)))|'=OPPgςW^MիWw>{[pPxB!77[O ð'' |}}>W@Ѐuuu---PMM ӧ1c f̘A]]]BUUU۷o/[LKKW^~~~ɭp8k___ 99KK3|Ĉ bO~E۫6+;[M bbbZpX[ll,͞0awH\\\Ϟ=[_QQ[nٖMggg62iҤٳgٲe*w޺:t:5xʔ)_1xb͓|==fwrYYY[[ۄ##'O49jzW^|3f%w߾}ke A!b-^xӧO͝;9QF;wn)m۶1… ;np$7o͛7! [lٲeÙL&V|߿(Íaaa=S__s˂LS]~Ʀ&&&{'ߴiǏrss /_JK.KKK=z5jT~~~vvv+S͞=|ʕ)))۷oollye2,J666M1jkkۓ>88ӧOWz*bŊMpUVV~zƍEEEӦMke|Y[[WWW9sfܸqdsww?~Ǐ˓Mn9r 333$$dѭ 88#b,66Ҳi^zzzqqq|xtɓ'O>} oo?sӦM<#%&&>!}vyy3f^ʕ+m?#G.\H" *,,uqqhdO<ɽ|楥|cPTGG8::F1Ǐoܸq{<\Fo׻̜93T!55 (>}zWg۷p'yvځ~]n*=piBQTBA![{@UUuŊBBBB@m,b**d9zy#KėoAKRnJtL'):L'd:@&+Hr$% eɲ~߿?}h**64d74r8  |o 5~~gox&I DBl6wDСFaa~\Ǐ_wRccWh/_~vw?`!2ta\]j񇐐11os8ђ -Y:m͘pgϴ3lZ˗r']uuL rqqUT=ڵo7(D@J56]{yȃvv 8WrI$,õM KHHg=>0**e͚KǏ޽[WmD@ꔖVGD< yX^^3aɓs!: F atޭʴ3g$$71V!! -:;vl^MgD@斆&'2^^65o,/FQMRƌ7jT_''$gqԩDLC8(D@*$' M׆Ϝi#//z鳶\w̘ziߺ|`C+W^42 ed!yH26y |옏uO!,QڈM6 LƏ?0qڠYk,p*!dSUU/e n|*ss)SwÁogD@tIddW^^3py?_8K0,44q۶66Ƈ{ki) g E_;')@Р;wNB_С}h L }g6 yUUVE޼5="  R)Y=~(1qfͥ=#U,u(`g E=޽<< iEUUz\\&!KukyyyͨQ{<܏55 k\|ży6C1PS2xڵ޾AmQQ)Ej?>Gu)(D@S2A))aXZn uv6#6Ǐ_~Rg4ww bÈ(D@L;'NħY[\aܸpE'챳3ݺu"APCkN_P\"еS}{2>\Kt};}Ŋ::AAO;A!]:%jg{xMJ :3+ef5uʔ!DPAdd[~ٶDg9x&Oڹs,щD" 0)͝:}z>Ax=|~pee'fGt@S289%&f56ϝ;+44yHC.8#˗aöEEbkkBt>l΁3_`'\k  N,ֆN`ouҢǏ, Ǐς{x@!? :%)6]y$UDiMYYe>|l"ID'P@{Ad)..E| BCm>|355N$Adշ;&{z#:K^d=mccLtA!N̙'䂂f]U"nJѿ:FOA!Adb$88!0^z6*Ul>’6llmmt䈷47sB:%G_v^0dHOE1u9Ҝ8tJ&LLzPOt3`ݻ9: ޸ &:@d`͚YNtp X _(DbŊSm֦Լpj[J -hw3?<11qȑ,a]S겲kj^@8/_t(occb t\}=B!h.m9mڴ"!D?޾7JyVbEFF < @wAt tkk̎"8،TTTTXpr2pɁ8Bpv6/+=D"$J\\&AB HNN}'PD"yxx42 ;;Dj?2DHD _e0h$~8)}ۀ1 VTsw(DsҥSI!aV-ɓ'E~ICCw&UZZ['0<<۷L,PP_~)..&:X**{tMMM 9NYYZCCc׮]Iejj{o߾4r]]Bаc ,_׷w9shhh\fٳwJJJϞ=d2VZjl{ܹk׮GKK+ !pr)~Û^OiD"wm!yfCCCMMYfUVV"lllBxAt;y6GdddTTDL%6'!Ç,yyӧOcQh̙...?~LKK߿-[._\XX?#_SLsZZ5k/h #::!TZZ/h̘1YYYO>511ٲe ߁y?/”w?4~ѰB^jd6ݒFM:"88!TVVgϞ~6lʕ|P:  >06/_PZZ>BDD ߁yP863`cbh"ɓ׮]zQPHH[_e˲SRR֭[@ lΓ'BCUU!t9qСVY~}FFFFFƒ%Kn:&ߝy34Ehݏq8ѣGsB>>>꺺˗/cX{111QPP>|8501w\555uuu__ߚ7o ѣҥKlϻ6"b᧟[w㷿ϥUUU]W\UQQaɴSTT^NwSlee圜 O>|$L78$ҴiBDiQvv)6H-Q_\I}tC;Ǐl0%݇.@NNf?ةP$_{aee,O}H>-- J%wMңw(DH&ggG>yPLf g> IWWO:# ͠ 55 55ׯnj0f9CbX,2!2у%b,+nsLD&C99?_a`֞񡇘.4|pP:foigdpϪ 0 CFRP`2=ǼVUE.istM C{Wn9tPtcLoo?C9 =<gnN嗑/^l9qbz6oJbb~SS mh`͛wW_9L:y &fsw}ψ vvTh,@Ҿ%]bnja)'G24q}x ظJvv gMh{m"PqNEbBN6thiӬxA!`]̙Go믣g̰QSS;I,-M|eƍWaaOHgds[h--sv2'fưٜ9_) u{> 5!a`c斮X7L{=}T7o !I66'OVQ +f[^{ꋕUB~J[:p`['Nd^:lꨚŖ-W7BFNlU[@->" =~!,,ΝtyyEp~΅|}ee)LJ8Έhi)?}L&hÇSS֬Gg`CA",>>SPABiTRҥ'}\6p`;Llŷw2BwԨ'Ngd5PY~AMbI {qu]…gYEo ''~VQQR'@xR}fhB7fؼyBc1y=":\@1;w’=4u=ԉ^4ep^[Z߾z{Nffӧ> _pFV]pjjTTJJJN^;O>LCCJVGK:Ю]֯ߥ, ED:&O#"?N%$wr2;On 軻Í Ǝ@t"g>~T_G{yH^<Yܔ)CRS?XqTG;VJ4{||&"" tg̘6D:E.ɶ1lY8gNȝ;+MlψN  K9rk`ZZڵ?zĉ\ >i m4%(h6? W%yaaeVV1ABpFtrr ,1`ѹ$)0O45L|d߾Wҁ ]MM!..wm  DNI ҥ,9R߾z!5>}cM+-ǎl^~l-xw\ܮSSCH"!mm9Ot H..}kk?DA"/lΘ17nt3GQ+DBCܴ} COOT;..N$SqӉ|3҉%^R X;dd,Y~rBbiq;A"t{TT͛i4ʄ { ؝\b/]<23fyW%%h* N/(''_)mD1%%G9}񬬒?eiPDZhT!+K [^^d>ܘNIHxOtgDhIqw2o_i|"]שk\ W;~|֌AǏ-^<8ddÇgΘaCt)m(.v߱cʔ)VN`Diun۷_739Ҝ8vdi4 Y"fs< Ku+M]]{8<K}PBQzv9ef.Yv=ԉ:|+/_ ڋ, x|pYddrYYc>૒|Pҳ|kǻwE矺qc!kziieB!BF֍O?ngҥӦ }d}D`BÇ޽E -4t^q+#:,..R ΈFD$tDdADx:tٙ3}T":ԁBHֽ{TḻdssKE*{޿>n۶}8:!: [[S~!Dg:Pi%*ytW;ʘL"_~x۷BUD +>> BD榤B|Yv~~~~KAGG^h?~%Hzi2N}}[lRlJ xqْkkk##ND,Tݺ5ܽ)2RVQӓ-HTUJ%zE ml}hW\(eI#@igD$:hӧBV@b!0[]XM&OpR~T"RWWaB  yF yb8#4B JK54/)"RԄѬY}FtΘ1HQQʕ+ DTݺ)dnW_!Mwyyy[[W^u``5 ;G2VA!"-ZZZ |vrH*]h222**mVtƍw1<'Nb uCCc69=xѣG<$ls9t iӒv=x24_M׈1t˗//ZVܡ6GC}鐔UUU̙3]\\>~ֿ-[ٳ_~iiiÆ [r%a>|n0M_# ~bڴi ĉR )S|9--r͚5TSNF5gEEBa0222 C}of|AǏg0xDL3fLVVӧOMLLlw`"""nJd>Z;{7CB^*((Xxܹs;0f󭨺ZVV6(((44JVWWcv1~ECCCaصkL&ߙ㓌;666m]Ӧ=R5=`-CZ?4]}8&OV"Fnݺ~Q/10A" %##~e>}\|[u+Hjj*>+B̊cbbOț,//GUTT}; ޽f |3 0 H<1xiii&&&|.E.]Jce iJQQ۷VT^^N[QQpl6]((($''cvږfγ.\Ei7n4C++X,`6nܸ]v}wpT ڈH>#JJJl6!dbb255ŇLw'WRRBh4׸\]]]3zzz}G}}}==\|ȫWvGAAAYQQS|8}߾}M?B˜L&N6mڪURSS;k)RS|ÿ cJKd!bhh>wQݻ7Nϙ3͛7͋6lq8绹ŚҥKׯ_~-ܑoaGVV"wxxx\r%22%{5u"۷o &Mhӧdddlذa̙>>>ׯXdI^^BHUU!t9qС/zk׮KKKsuu=zh+#WWW/vؑɓ[:t?@444466m޼!TUU7E {eٲe)))֭ne ! ,D̙tқ7o&߭(""XFFڵkw16M69$\j#s45[}\Wef?8%GQAuR>|M"Xbb!0 Q(g?Kܿa՟8'#Ca2./D󬓬KϜّp?-u /&͆ $i4G'I5h#9NmD&O#*!tsH% d@Q*D$Ǐ/X //Ct.QVK e9f 92ym#U=~ٳ |}JK%XÆϝk׫֍R#G  Cb^ȳd˨Q}E߿quu \nTTқ14T8;Qyih(}VEt ˜隙re,qϛ2)11̙Gz4*DIV]fʕu*mm)DȜ9v*':b0/{'ZBTZZ}죐D9lbgRD"AQF]{ :b={ IW0<znBxQF} Wgc$KMMS"60 UUu 1`11o~yĉ++kϞ]úӳ}ZZD-4e=DP8×̙CB.\eF(DƷoU=~pO/#M@(å.t yxJiDg]{ߠ\/Pİ' :,\訬,Ot(ۗ/DE::*'Zyx +|=s`֭MM~ ""-==?88ʕݻ_3BVVXRSN!|}GÍ"rjj.3ǎ,JNthlL̛='O^]=?dϫ_?} $(Dg"qm#w@*H=X߾A{U߼ ƍWWzBWxb >D~GιsCoZߑKt.аBgh&߄ rrD!WG͛gGKf`GF&9r} {$:V~\fmݓ,NqwLu$:HpKôׯNT"Dϯ8{1 M6tmmeC@2gDZ1eʐw BxwrxXBEǎ^RMp…NrDx>.#::zt y16+ qܿG\CÇS.4ieDDuޢ_~ 57Ϟ,`f„C'.)a8vBhgO͏BM`Q\=55 DZ.;pו)Lիǎfe7"޾7ѡQ&&Z_V1u}pKt{Ҽ};})m{K93ו Pt~[Մ AA!:"X !7 C.W7o޸ѝ (*\:r;_Wb@!%ʪϜyYI__PCCuYYǏ_iر}\,B`ZZ7 "Kɓ .<͟o?oѡd2 ¢b\;i+DIIɅu% "]qWꪮ]̙62D@kegC!2doìŋGEx^ ~] p53ٷs$+*nGLL :stfMT]]|ᩪ?gkk`YA!qCb^ȳyQ½dtX,ppJNqtCtaXRuu^p~ƍeVVFD@B66rrjEt'i(DÓ^Mp!1 />;~iDj߾UU TUP'*****!\ff7}j%Ft@lnnڵkl@"FraA=$P(;w422j}4suu3g %46Hdd Ϸ(CGf 2$̊XffPj&''_x22##V!/&'}qOb!mn|QoB:^|i""##O. ><22RPs!5 Uz.ϟ˘L$S ${q`%% LQQe<=M2,@Hq**$:`XJ۷O": JKKJ%KL!gׯ?r)yA!B!+~ZEtx8رؿW,@~Luuʕ+{)//ojjyIvvvM g̘addhmm}ʕ]HlSFC=k7udٗ/_RԦ7o_vMFF&==]8:b:FAA¢zɒ 1Æ,@~YtijjjttϟCCC]j*ЧO444Z{+#YXX􈈈dOOO//wP6# p*'OK6֭ <!"w()tvnJA*tFH.oERE=Ǽ}emhwg~?ٙy;3<[n߰a+uǏ111WnU[۷;m---ĵG@宙˗/_~}Ĉ~=zرc Ê (++rXoʔ)C > =nH\\ 0urOMR1Ν;nzm۶oٲ?Es655!Q'ХPOѻTc#Fᴑ-"_߽{icX 0nܸ)%%eiiTZZ/,,dnBHJJGGG#X`NzjAMMMG18::o߾:t?… kkkO:f-ð.Xݻw#FضmaK.]lYEEӧO|6B666 %)) !|a++L}}}39ո *;;;;;.*,,d;m***.]+W444B=X!SςJ3M|3fddd\zUIIJbmll`0 ?]ζmBg@%Z RRR'NSddxCC/,sԩSׯ_[sӧO u>6_w ֹ1n߼.vfITYI13Et H]ND0 h{:t(L[[ZZ޼y@߿_5^|%|f~~>>]SSe[zkk+Lt钾>ݻwڗaO[naV[[ebb¼4pNDݻafqqqlgrޥ *ߋٳgB=X}Bvkl"؞_Fݹsð3g~d;1g2:`:l3۵jjj$$$kkk F}}=NEeN:.\9QBiu%Y YRPs X5؈bѻvm -))YPP`mm=rȨ(,++4h>mdd4o<*~Svvo*++t>___>g:-Ruuu KK˒š5k^~v17W044dv@X]r&ߛ1?511A;lw;jwYa5g+烡!BL&ϟ?ҥK_|}#8ܻw/###111%%9漏s޽5iҤ޾};tPC i@F Hxpڴ{ YK}<2ޱ,⺖`dӀ$i4bMMM>>>ϟ?A R|:''ٳCBBX/T*UFFFUUL&߾}ϗujkk333B߿?~iӼ:>Af mmm'߼y#..޿}m}%ׯ_h-[ ap>0%''Ǐ?^KKmqd?~4qD???WWW{3|/uۯ`0jjjV\ikk7ttt 4~7UGӆJܸ `ݼi%"K.]hѕ+W?~\!*))g]yǎyyyyyy6l{E8pΏ?ݳgѣG񋣄ĢE<<|XOOO>)))0l zzzxN^:^G31n6Xa0މ]Rp45ZZ͘B%: s*`b{g+];Dn/|}},Yr qrrr&&&< n6XƵ}zD#77߾}ܵkתUJPTUQBrDY?NH sV": (zւC^^յ33{O>7oڵk'OP[lܹs?>~ѢEXgh?|?)udxW㐐=OT?uŋkdhz7o> 3laiŦְ6͛O=`cܹUTz,o :D_۹b ѱAH-..6z@w_?Yj"ѱLb aۿc75 kigZL4~=wAm="xX[[!Iɞ79}JtDŋweeնfDa66:BR"OXs…̸,p+W6ʷ'~YYi]6D߸ ]LLjE&]{{]]a_&4͛y'O.SSCt,gDmU926be5TL6Ra))__߼z##e" B#11NOHޙs :6nz}ͽ{Gt,D?ϳ0i G:uj L_0`@?5P߾Ϟ]A;avAFEEUU|_}*( 6*QaEE݂w/|qgwG.[ѱD$:QYIYkyZte%%$ƍV m};?={b&ؘΘa"++$G{LMM݄#8}k55ݽs@:%df~}w.}!۫BHLtĉi66`,B rr͜~|gA?ⲶnM٣ Ct,כ7֍ .ή IDAT<0vF>Ù?6/_[5LL鵩o&:@} N\|s#PΞc,Bn?="bfuD"I4X\ׯnzݦda  twuuO}r~K`e|q۪Y~>}#KT™ !D"ŨT1oȁ]}y󟌄D"M rYYsc"`0h4@Mbsrݽ@Q_lk{DNWRz tp&";~m0P}8ӧÔd ni|Jq#!4}POIIʕQ(MÇYtѱ -[v*/õk8LD%acc7̙&;wP(M7n䥧o:1bټy# #B,BeDB'^_@nc߳'%*ѥKÇk ل3i'Ov Hnο};g$sPVHDpM0i!9|a" c=Hekk]un.Fy'ɓ>xep9sFD<~?;;%:z|˖uBB$ZDptѣ´Ws[Zi#3gx~rD@7An愄Dg50P^#/h,uIKKZZ=?m$^1o#i<3ΝKJreɓ "*gPtmF2r$d$HO?TVFt hªD,HK9t調#ummlmTU剎ׯΟitSX؝gέ큞NTZDB3g}LGQ}gάQ:t6:P\L!w^3e!#BtzH2зog<\r/~9{{+'V525ޙHI6--NK 쵱1 󏛛+VL 0e" \H`@Pޙ kMPеQX[\/+&:@DJxaO܋e |.2QlA /sgktI6 @pEF>aCCo$%= s66@h"3| &F3gdN|2آP2֬"SR^ܷo1@fXX ܳg 4m@cxaa\]'̷֭|O|.$-"zgFwiW;رwJ*&:@KÙ3=tY,&Q||3B] "b0?,u+?==Z[[HD;]{^$VhMMͯ 2II륥%V.DkA``a9II"#j' 45:;^Y 趈 LP13/8iY/׮m&]N1\\"?/KMDE!dkkU 43KGF>R>}d$@\- 0lքG B'҉{g^B""d$##hj*Z[CFJ߷/mcCg:|Ԩ|+S33MrDGa/,CqtH?G6~}34fFRXX$;eٔ)F~GTO$2جY򡸊ٳǯ!C6mH^&&ٷoS #oCYuuߖ,9ٻ \S7N:Fq7HIfg7@xK\\<##c„ D5//+>  `ڴiShh(Q+ y]ַoJSZ'b@'u3Fn4?}DtT^^iӦcvrf%q< Iv&ocGR>7Z *fMTqqUr{~kΎ[q=cƌ7Wum/ dg$$4He#V_ߤGN4am[͛y11pp^Pcc>; ^6!]tϟyZ"SQQwGJ%Ktuueee͓$(Nj/YoLII|gcc-[LMMeee-,,XJ)/ ""ק {|+/kL])p[D?~ӧ3gP(#F|ׅ"naÇeee-^ƍ]*XYYuo- ÇϺu 6 !T__?jԨO>|۶mVVVt:yşi»R7mp-qqqY!TXX`L8q+֯_h"9ӦMF 9fqB(..G'DgQKKСC׬Yaȑ#[[[񏼽'L@ј 7448q⻟OO;;;;;;mG֬Z&(~Θ3稥ePk+Kw3`xH$77+W <<R3f<*FF'ZZ<*^㻅zzz!2<K.}ێe444BsIIɂkk#GFEEnMNN$4AFFFC)**.mnn۷J:ljgMlmO YZZ ֬Yk;o1W044dv&h/&&޽{)))L556 ruai'B_9 Nq7o>,&yr-*rp81l֙3+%%aP(S50~5k]rrr||㵴鿗দ&{{{ϟwP R|:''ٳCBBXDGGSTUUU2\\\&+)^mmmff&BǏ6mW^Ͷ*((Qu4G'VWW9::۷Clll``w?E~Yd~Pqg;0]]ӧ] =ϟ?WTT|+))ټy3H޽{9lURR!T_߅׸;;;ر#/////oÆ eeeܿǹ{9z(HHH,Zã$//oΝx544߾}{YYYnnuXXpqqqww}vZZZ"""8 OOϢl___'''3+ \]]MLLDTUUOw]QQaiiyƍ.YyժU?UPP@;wB=zY\M1/6C1M,z?~xXb=III|n|Bi􌱲2vrمHŭGӧFrqqϙsT^W|~ZYI|X5qzopÇ'N YUمik+EG- P~(VH! (lKxKJәcpFbW^^$Ç'&&47K˷JIyTē'OƎ3"nÆh[[E,J;0]~kdeaT ̺XXX,^a_!##AyJEh߿I| M-^‚JmڴIh^VS#U\bܧOK>zѸXرc츸A@3/:t?^x!gϮ@$ Bi:ta^SPي[nG}k{GW\too1 #I LIIvqnjfOz!t2a_OqPMnmW:3vɓˤ! +W^2 î]%:9{vՉK9 '!ART6S2YeJJd1:c00PuuCjj 'X:̙ ~?;w3r1 vӧt,h gecbKo>#!H**Ғ#Fhga1`H]x3g%ospd1 h@K96BlǏ_'M]ΝI˗߻wXX$"%HϞ!:(6">B(;!dnO!&FZjb~rsP㧌7[&44a$K$'?33reez ^D B$$>sYldd$KfgC7qw/wEE􍆆aattttP˂!8Vx-1O?˷o Z4~ Qm[StƯ<|Pnt =1jw'jlH$;;&.Z]fɉ΂+OϜiyUVnX>:3U&(<$"@Hj*钖tV~@kk!|a^'UVR72R?rdIОrNgom]YL;nwʹC=~\WByZ@@zDă3L;d/fնfUCee{W-CUefuum-%ŧ0ܪugUVMHXmiÆkv획$)ho511^28xQꭠPq吅0K55վq K? f54rȶmvvᎎcv#++Et\L]TMMcj'Nk<=/<{V1mF+!{PA#C9sfeZZ}ICt:cÆ肂˗ݵ;Z,!!{ǎ$MMūW7k3B ^Ғ-,_!Μyt@fkk6v޽)'lm / y{[u[gdqse LnP ^OBMYYQG[[m'O>xSa۷'Zvw Sd/]`a1A$"4z6mvjj}:|dVVmْpN%cr~S 5y^ϟ?+n;w¼+'O;~jh0 ܻ7EYY.1q1zD`DCP3FmЛ۷'^{落f7THȍ;G,3gx޿,Zl,iihx0Y[0ggJ7oX^^yڵSgOJ`Bgq={Rv03\-"P;}!u#uo_w됐*<-w& )+ikx4aCja--6lÒeڕk69.\(!Œ!Ԍ46|L\\\VVŋnܸѥ+++wLAAa֭A@UL9dȐӧw~# Ewo-gʁA@$OOO9~~~ׯ_/_܌"H111FFF}=tBh̘1!555|-*㣪CRSSS555kkkBm6 )))VQQhiia ;w=zfbbҫW?m7oWTT 訬V"qq###99c޽{7M/ HӧO/00 ӧϮ]PǕCEfJ~B(..Eo:… kkkO:.,,d ,x]nn#mۆaҥK-[VQQS ڬɩg*,,h ++L}}}<ΎV1cFFFFeeԉ'>})..~P($З/_ؖQq(ڊD'OTQQtǏ\֪:AP$%%]\\ˣBUUUE444U!@PfT{{{ rV|u6Gj]ŏD!T[[V2y%}}}|wzmR CCO>ӷn2330VKKĄyhLDoE6774..U%kjj$$$kkk F}}=NoݻaNgm(Xu&i_ ={s"͛:~}*c[/$"ϟ?_Y9W|ۋCJ5G׌j~~>lsso߾UVVt===|~yy9>`RuuuD",--KJJB k֬yڵk;5d5h |U ~L--I&=|PL>ǿiڗL}%*..633c.`bby #Gb'_gꅜgfP[T:={vHHh**##J&o߾'8v)Emmmff&BǏ6mW7dMV/$PAA~!h`0jjjV\ikk}YW"MM͗/_2x5-455<<<<9w^pơ.|"#t >%"Ǐssss $$$-ZQRRsNGGGjhh'ϟ}\kk배0{kq~m,**urr*$*))BJHH """Beu4na[\\\|||RRR***_m6iiiimmljjC7c1uT/C]`[+ ~wuð҅ jhhYXX2?qvvVRRRWWߴiSSSYo|J?^VVIPVXf͚cǎb^SSf-Įk96GDD(++qrX'))ihhҾl(Πnme[Z[[;`YYٱc^pqGðо}?< XQilla-2.3.4/docs/simple-api/InputSource_8hpp.html0000644001725400016040000001164713273140077016751 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputSource.hpp File Reference
    Include dependency graph for InputSource.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::InputSource
     A single input source for an XML entity. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021555 000000000000007e5c46d265dc856b5c19732e75709826XQilla-2.3.4/docs/simple-api/InteractiveDebugger_8hpp__incl.md50000644001725400016040000000004013273140074021256 00000000000000b595188dde43345bf6559b5dee3c1223XQilla-2.3.4/docs/simple-api/classExternalFunction.html0000644001725400016040000004231013273140074020034 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <ExternalFunction.hpp>

    Classes

    class  Arguments
     

    Public Member Functions

    virtual ~ExternalFunction ()
     
    const XMLCh * getURI () const
     
    const XMLCh * getName () const
     
    const XMLCh * getURINameHash () const
     
    unsigned int getNumberOfArguments () const
     
    virtual Result execute (const Arguments *args, DynamicContext *context) const
     Execute the (non-updating) function. More...
     
    virtual PendingUpdateList executeUpdate (const Arguments *args, DynamicContext *context) const
     Execute the updating function. More...
     

    Protected Member Functions

     ExternalFunction (const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm)
     

    Protected Attributes

    const XMLCh * uri_
     
    const XMLCh * name_
     
    const XMLCh * uriName_
     
    unsigned int numArgs_
     

    Constructor & Destructor Documentation

    virtual ExternalFunction::~ExternalFunction ( )
    inlinevirtual
    ExternalFunction::ExternalFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    unsigned int  numberOfArgs,
    XPath2MemoryManager mm 
    )
    protected

    Member Function Documentation

    virtual Result ExternalFunction::execute ( const Arguments args,
    DynamicContext context 
    ) const
    virtual

    Execute the (non-updating) function.

    virtual PendingUpdateList ExternalFunction::executeUpdate ( const Arguments args,
    DynamicContext context 
    ) const
    virtual

    Execute the updating function.

    const XMLCh* ExternalFunction::getName ( ) const
    inline
    unsigned int ExternalFunction::getNumberOfArguments ( ) const
    inline
    const XMLCh* ExternalFunction::getURI ( ) const
    inline
    const XMLCh* ExternalFunction::getURINameHash ( ) const
    inline

    Member Data Documentation

    const XMLCh* ExternalFunction::name_
    protected
    unsigned int ExternalFunction::numArgs_
    protected
    const XMLCh* ExternalFunction::uri_
    protected
    const XMLCh* ExternalFunction::uriName_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classSchemaValidatorFilter-members.html0000644001725400016040000002111213273140074022405 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SchemaValidatorFilter Member List

    This is the complete list of members for SchemaValidatorFilter, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)SchemaValidatorFiltervirtual
    commentEvent(const XMLCh *value)SchemaValidatorFiltervirtual
    endDocumentEvent()SchemaValidatorFiltervirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)SchemaValidatorFiltervirtual
    endEvent()EventFilterinlinevirtual
    EventFilter(EventHandler *next)EventFilterinline
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)SchemaValidatorFiltervirtual
    next_EventFilterprotected
    piEvent(const XMLCh *target, const XMLCh *value)SchemaValidatorFiltervirtual
    reset()SchemaValidatorFilter
    SchemaValidatorFilter(bool strictValidation, EventHandler *next, xercesc::GrammarResolver *grammarResolver, xercesc::MemoryManager *mm, const LocationInfo *info)SchemaValidatorFilter
    setLocationInfo(const LocationInfo *location)EventFilterinlinevirtual
    setNextEventHandler(EventHandler *next)EventFilterinline
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)SchemaValidatorFiltervirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)SchemaValidatorFiltervirtual
    textEvent(const XMLCh *value)SchemaValidatorFiltervirtual
    textEvent(const XMLCh *chars, unsigned int length)SchemaValidatorFiltervirtual
    ~EventHandler()EventHandlerinlinevirtual
    ~SchemaValidatorFilter()SchemaValidatorFiltervirtual
    XQilla-2.3.4/docs/simple-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.map0000644001725400016040000000045313273140077021414 00000000000000 XQilla-2.3.4/docs/simple-api/StringPool_8hpp_source.html0000644001725400016040000004703313273140073020143 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StringPool.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __STRINGPOOL_HPP
    21 #define __STRINGPOOL_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <memory>
    26 #include <cstring>
    27 //Added so xqilla will compile under CC on Solaris
    28 #include <string>
    29 // Added so xqilla will compile on SunOS 10 using STLPort
    30 #include <memory.h>
    31 
    32 class XQILLA_API StringPool
    33 {
    34 public:
    35  StringPool(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);
    36  ~StringPool();
    37 
    39  const XMLCh* getPooledString(const XMLCh *src);
    41  const XMLCh* getPooledString(const XMLCh *src, unsigned int length);
    43  const XMLCh* getPooledString(const char *src);
    44 
    45  unsigned int getCount() const { return _count; }
    46  unsigned int getHits() const { return _hits; }
    47  unsigned int getMisses() const { return _misses; }
    48  unsigned int getTooBig() const { return _toobig; }
    49  void dumpStatistics() const;
    50 
    51 private:
    52  StringPool(const StringPool&);
    53  StringPool &operator=(const StringPool&);
    54 
    55  static unsigned int hash(const XMLCh *v, unsigned int length);
    56  const XMLCh *replicate(const XMLCh *v, unsigned int length) const;
    57  void resize();
    58 
    59  class Bucket
    60  {
    61  public:
    62  Bucket(const XMLCh *v, unsigned int l, unsigned int h, Bucket *n)
    63  : value(v), length(l), hashValue(h), next(n) {}
    64 
    65  const XMLCh *value;
    66  unsigned int length;
    67  unsigned int hashValue;
    68  Bucket *next;
    69  };
    70 
    71  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm;
    72  Bucket **_bucketList;
    73  unsigned int _modulus;
    74  unsigned int _count;
    75  unsigned int _hits;
    76  unsigned int _misses;
    77  unsigned int _toobig;
    78 };
    79 
    80 inline unsigned int StringPool::hash(const XMLCh *v, unsigned int length)
    81 {
    82  unsigned int hashVal = 0;
    83  while(length) {
    84  hashVal += (hashVal * 37) + (hashVal >> 24) + (unsigned int)(*v);
    85  ++v;
    86  --length;
    87  }
    88  return hashVal;
    89 }
    90 
    91 inline const XMLCh *StringPool::replicate(const XMLCh *v, unsigned int length) const
    92 {
    93  unsigned int size = length * sizeof(XMLCh);
    94  XMLCh *ret = (XMLCh*)_mm->allocate(size + sizeof(XMLCh));
    95  memcpy(ret, v, size);
    96  ret[length] = 0;
    97  return ret;
    98 }
    99 
    100 #endif
    unsigned int getTooBig() const
    Definition: StringPool.hpp:48
    unsigned int getMisses() const
    Definition: StringPool.hpp:47
    virtual void * allocate(XMLSize_t size)=0
    This method allocates requested memory.
    Definition: StringPool.hpp:32
    unsigned int getHits() const
    Definition: StringPool.hpp:46
    unsigned int getCount() const
    Definition: StringPool.hpp:45
    XQilla-2.3.4/docs/simple-api/classVarHashEntry__inherit__graph.md50000644001725400016040000000004013273140074022036 00000000000000d72c3dea476b0f9a7e47c407ac6d74cbXQilla-2.3.4/docs/simple-api/inherit_graph_34.md50000644001725400016040000000004013273140074016362 00000000000000b84717848ec77fa5261e55436c69c034XQilla-2.3.4/docs/simple-api/structBaseInteractiveDebugger_1_1Run.html0000644001725400016040000000450713273140074022633 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    BaseInteractiveDebugger::Run Struct Reference

    #include <InteractiveDebugger.hpp>


    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_0x61.html0000644001725400016040000005604513273140074016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - a -

    XQilla-2.3.4/docs/simple-api/classXercesConfiguration__inherit__graph.map0000644001725400016040000000062113273140076023540 00000000000000 XQilla-2.3.4/docs/simple-api/UpdateFactory_8hpp__incl.md50000644001725400016040000000004013273140074020106 00000000000000a8cd06c8957341f37858bdd88541c3deXQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp__incl.png0000644001725400016040000002405313273140075020253 00000000000000PNG  IHDR<p}bKGD IDATxy`e'W zۦEdW+ ]]9t",×CR.A!Ҧ^izҦM8jJsL0<31oyxEۺ !! mcϞ={u+@ Xzuttz pў={rssmg;enBhĕ+Wں"77M4444;̒b TJNNN6e EǏ7c/a8<aÆ}ݻwݺutvT:i$qcc_ZȰN 7??},YWh4r~I xCݯySp-Bj5{_~qM:u׮] B~iDŽw{&Mzg6mڤT*[W\y =/Nݧ]x1++kٲe_|^_ŋ`fh!#6w &r7de͋-TWWשS.\:`ٳg8qӼy Fy<<K+W"y~i<oҥ?C[[J tÇF۰aCuuuQQ_|1vX# {#?UݧO>f̘e˖ݻwSN=r׿nذW_DO>3zڱj֬Y6mdcƌ9s&C%X> [r !?LJJ4Ӕŋwtt3ip `5>l}}ʕ+m9sӧ]h\rr7|Ϛ`v3==ݔ`Zk,yZD"z6A '8wNyS,؜0`}-եl,.--זJK %!$$WTufٗBA̲)POmP ɩؽ{!$ K, CcbC̶'9L. ` *E"Hjk%YI(>qq!qq!bqHTBBX@kv^T(wwusuu[qD|Z};5RR($BS N:ŵImQ,/Vdd_ϡr !Ju(HTv >tD NL t5jŋ?z@*m0aȄ C ›^}˚ƭndÇ]T2vlbzzRrr{ܹΎ1IL&'GG XB @o[[ǗFCD0?-Md6՚.ɹs5..dıcߚ來ZMMm'O:t"pԨ؉ pSQHǘFB[tt ;חG0s~Jgl(J$HBg ,;HcG?\>tҤcb,_CZO/ C%ֿ ݯ.``ANwQBylINNޱcãSS҆FGX00l^r# N&䓊šƻ3nnnC9SVk|0*==)==)8-1 `!cLUU݇1[-ऺ4ok_noWB|}=|"šAA6ljMM˩S7N[\0_!@oGJUU{bH'' - I/ ST$mm :1&..ıT+ChΫֿ =c8{v=%8[ha8azah]nܨihKoBhcOU+*~nQAfa{9Dഡ酡cpChߙ=2 ?1'ɹvHTAZB M+H$2p 1BhpRi@HA<% Bzы1hh 8faz8Fzaz8H̐&#^sQYDQ0::@1&661 8֎>}aHq866o~TAZB)^L;2!c j'` }pa"HkBh1;KPHT:"F+ k0~Ĉf mr^,J$Cs`}-߆0], AB XnHj;:Tau #cND܁bMH/VFnqqc`Bh%ZLN~qH-]㏘[ZlVtP~]OIHvu{B 1Z#46bac&-h(L)-q 1 @ ?݋LN#yۺNA@zsFݻzbL||h` n.!2N߶0}AhnҊ1EEY ChTv5,,9AڑRqssۭ[ÇG38qhzzmZ,H/7j~Lǘ(neB 8 \Q^Ϋ #D~c$ 9nĈ p+Ҭ 0 ^hŘ"i}}+*Y!c.]\q0['zz䲄P+7 Lbw _ %XZWJ] A:Һ_#QQνa&A /ݏ**ɽ8W>T^`"Hȴn("`qتUSH/|Ǻ0 ݙKKe)|A!9%;jTRRdDmSWQ!Ο#2??^~8?cH$?^ mT[%&K;;Έcp[joW.[{G = A:#fP|ޠAǎfVA4kU? 3'r\Q^^w,Я>2[34p^uI9[*+4|>ڵyw ĉ*4_)B!?3s9ٶU`.&D__-[oڴP? 8BܲkW*4#n񵴆l.v?K2;ήw9uYBsy#F5*ȑ7^O=5h„!=UJSSСo#1{,ud;]T2vl5IFs|ޘ1ׯfy1iMmܸoBļyO,\8_Ńq-@! o>|PJp))y=*=o#`+'RVV?{[@&}RRb"H'ٳ%j}=[N/]˫}S!CCl:9SQXT$U*tc 7EQvhBM׿=Gƾ[)?pW"-)0y!11AbqO=ZpNK<oO?= Nٻ ZP ;v0-B@(]1i07 IRJJdLJ-##ty>6mCt!8+W*23дFNHØ0Cz睜͛ ^.~j͛g[m5wv&&Rzj֭/ٺ9`UTPp[cN#1k*u*(z>"<"efN~+78IݼY{G7WD"i'[msn~FKaaỘvе? u[zҖzwB!_,ݺ>ipƍ=^_ļΔ0k 잎wCqxuuZmh`[ڈ~RZZz^n,ac--<aFP !HP!"h4Rٵq㾇bu i=.\rssmNsuu}Gz( y^=o]4 E.S]I!f=ҋ{?3cE?9w45Ï>J &=ӽwZ:;;)JLLz>.*Z) |>_b?S44t*޷ǧ_~'djMIQ(T]]j"ry!Dmm$%$ظ\~\+dvΝ;f;5{ njt0"?%&rg`#wd?v F|^PbqX}sҽw!00ZbvH$5EE_~.,uB\\]]FC%QWWg8(%/6*yBM>p[3o߽ aCFš  N v>n#,/,'Ӻu3lK8 8CKeeOiWZZJ><`~UPgfyvvKAA%ڬ=k֬z#ϧ(j̙^^NJKKR jhr Ӌ5%Pɽu;qIJ -ޗ.NԤ%P3tuAYόc֪݇L|BO:_PP0r%KZݻ~T*ݼyP({5ke˖۷SE^>^*ҏO8D/??(X~cݵD"ч~ܬhZ[[jէNDo14ͤI̙3kC -N/1M6BHnn.EQj]t)obbb.rhq£_?+V(jǎcǎXc§ 4#U9VIDAT*yAO!(JC-PZ98dI$=~;;;oܸq]Z}vqj̖ Vot/qqq۶mcN_~I -6jʡ!k3''Go3tOB;4hΝ;}ڵL;= nsL -zRɷZ5Oh(mS*_ tEQgϞ6mc=vC_9DbJWm߾̙3nnnΡQw׮]Ç7wzFH$}[P(k׮]56+ ~rsscbb4ɓ?3ʴ 'cf|!FiBrhPUvvQ1yz-:X]wwZ;p^WH0WMPСC:t(}Z͕V{nŝZսw\?s+W_p7ߜ;wkUh +,٤ XQilla Simple API Documentation SourceForge.net Logo

    xqilla → fastxdm Relation

    File in include/xqillaIncludes file in include/xqilla/fastxdm
    xqilla-simple.hppFastXDMConfiguration.hpp
    XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp__dep__incl.png0000644001725400016040000001002013273140075022420 00000000000000PNG  IHDRp bKGDIDATxyT_`V R(-.Z-BYE[=Q©"Z, "D VJi@ K:?qLQX{w{w{F^I@7@7@70jemmmJftuuz-ʠ~b0LjSVVGT1;3gTwRSVVFÈu zg͚E]p]vmΜ9r⺻i=\۴iG{{;Q}͛~ՑfxllyBT?_6T!11fӋrBvvvAAA |a___|||pp 5L&~NNNXXXzz!ݻD CCC?hm۶N6Ml?~\RR244\x1 jo /:󔩩kϢ2եK RSSYXXl۶fggg[]]]cםѣG]\\8ĉ P(D7LLLFP{eyMEE7|sIxs.Y!zj7ð/8qŋQQQ|d0 .$-3g,++#+W̘1Z^^CqFۻsί"!QRRpӧOeK#8,_|ׯ &r!D͛]Կ)R]]`'N>]tE%$$baήtt300 JG;;̈Çwww xyy>}zҥ?@rr2B(77foolٲI& ںݻӧz{{y<ބ ;:th׮]7n8uaߒVZӣ-B… k֬9yd```RRu̙(+++.R_cUUU>|xƍiiiH믿رUnBCC3#G]ܜ87}}}bq@d2=== 8ڪs޽NLUSN566&}" %˗###l͊+M^^^9B:R 6m+3,,X^xz~)BVDDchh(JQu謋333mmm{vvv(>>ٳG_dG}譤䯿p83f E,--3g޽;$$Dn222233kmm2e is/~>/HWVVV>$JH>#G {)vRhgnn.kkk2ҕR꼘P( HMMHL&),,/l٢8>~8!!!<<)88x޽]Ī?Nj"#>}zVVK$}}}333.K;::?eTz=qvR'= w߿Ok0݈bDaH$:z(B`p8rb0B{̟?!gffvmww7{Qmm֭[\.;v`w+u7HFHܹ6gΜ!CgR0""bcǎ]dɬY6nܘy攔XZZFGG37xcԩ>>>.\(**NOO' 8իB~-b9997N.G~~E즦&L%u%&&}gT*ɔ)Swmbbf{JٳdoPޞ={ٳ7l0000k֬@bV3~DGG{CSQQb&OLT322>٬TZZ:qX<<<( oݺN̳3O*~n6=o޼ h:)7N17Ƒ0O/ @ @ @SnH+NAi(aja#~poðrR* 7J~믓/cךErjbTӹh#%҂?BO \ڠtЍJKoBF@7JtB…:@錴ЍC*.tuuY[[;99}4eʔcǎ ?>nB۷{{{R+W<OOOoϞ=]]]2G*馦qH$Wnll$ZՑekkKbgggcD8.J)gԩ-Baaa/899 d644xzz;v3Yiiiee3^# FFF!===2Qppp{$l"֜9sZZZDUs@EtsٳgoذXYY>=???SSSL E dl`7<!@‚Ẻ*++wW8Ss@Et#V\yԩBʕ+9N~~~ggKv" E"j1wܜ>/ Fu뚚nܸe˖ &oo͛7yzz&%%!Ҟ<g]"Qt&!!D8l'~I&{laaal'0 ,ի?{qO2$Ɋe˖UTTkΜ9A̝;?!A0$h JV*LGTԂb8L&\(rv8 <=uQ(T))))y/_|8;[Rn@$h@?m(ɑHY,Rj ض̌lQQYITuiaE* 8 6d G WV,>[ox27;Xr,)("$ __$ 4]x8}[$HOW*)i(6f[X$ibef[Xabq(qpvV=)JMQGT*Y-YXE|+N7n$hJPirvnDЃkW/NlݺEEde ᎎoۿ0q+|~7++ssOljŲdg.P4R( ~qŪL,,/O|. 28سo($$h@**EEܚv`YA r֬N WW,IZM)JB!IbKsh)ct=wnu-/A\.{uu5~p5FQD||VLLrY1q@s")թTDi=xTm Jfr3ã5!I"a1]%KNݕTjܹݺ5()+/6RU]QҒkaaVTTfڶ{{{[[7i A%KD (]$ʈNHʸ\v@[H/mĉ{?t].WjrHXՅ շ\euqqy_,gOyV̩T.^|GSQ$I8:ܼ1gaoL\xJJv$~OM|(-/OFPȣ5!!vvVM|jPH@dODw_ʪL՛ѬY 7No㦥,[vJ, #Gf᫏֍~P$hZ:#?~.+mm-:tp  իmG T")_O[EQ7o>߽Fdd\PƎ6@8P;vlSc͜ί?tѻ\.{Ϝ_(3**5k^kJJ*ml^OzGksr5ݺy(@DŒd(]$JO+=  h%Lrm|WWi^yWji9 єҧf%љz 5CXiܻRTT}}CC}CB|=۷6hmf%oz' .|u̘ngL>TgkWo''kBhhINM- ۑN{tUZLtmۮ\:g7f#5ӌ I'ٳlMs1EQ@k ᪳LHcdDf"#,-`Kt3_ӥW{0:HV2OdTT(llo={ L(ҥヒ| N̈́1TeO:!_4 t[_(Rզ 8#4MHAZM]cc3 |nݼ fO:IϞeՒz`44-2..zT:cdjROz7iict]p AU5`hvV2"QFLLrllFV2=zDjܹG7e޸q/tPP7c,}ҩ|MpPc:L: A,5_ҭd4_McITT矟9#ڶ04>$U<}| $hC*-8=:HAjAALpghoǎJ>ׯ?'e | w#&1'k/| $hLQBLp0/:ƍyѯ d:"')}IgϷ60:Hԗv+(ѣ4B%vEX C#:Mܺԯʕ#tb:"hF&VSIIe||&5` JF$JNw/\ndi7o>oŊݻ0S-}Igdzwim!A011Wm%fWӚxW=GG۞鈀]S}5~~B4R $h Ҍ0+曋i^' ԁ 'JK+␯ :*:)j+ϲsgP`nݼmI{ndmmdɰIzICPI*/rU*5g| 44*h?LneeQUԉ֯?WRR;}/6g:(0hI'kӤJѣ<jV2]zsl4,QQkמNJOlgg[#cjKtksr|  0 Ӭd=BC:[}v毿‚֭tD`PBz2Ze%5/$hXUi%q\ ɩU̢ヒ<|N׮^|ZϞmLJj3_ckkѡÿ,54`L4dDdetCI~=QގV>iBSkt35 4`dOD;w^^ԯݸZM-[6bʔޭZJ 0,7[{نdzd:L#a'?N뭞}4Etkllܐ0%HRS tLkšzrBz#Y܉inLGJJF$JD A n%\\V2K.Wխ[/ k ڑҧ&Bd A-2>>VPL.^ff4M7n$Zu";[xq؜9:aB^X["_`萠fT_cbjZɄVLib_=~^XX矿tDuCi'O2**U5 lW`47ڭd˶ڭdzl+L Q*ܴ>{cȐ@#h>5k 4xڭdK)**rپΡ!!HϔS/˼ ^]`9j5]zsl#hn%Z@#  d7[}m8ljOͭJ&66\| @AjSg+_;;1q+W/-)Sza,0I(}j1נ;!AUŒd͌w[{ltfGwY~ 4;>0k4@RHq~Jaa)jF&$d EQ󳎎6_}5o_?#hi(}bJNJB@hJK+25}s yt:dEFFҥ޾4gΠKYXp1(}bV|M\\fYY| ,CUОQL>lD(:tw~˖I]z1@!@0Y/V2恁n 1BchOYl8*tBkʼn9I5U A`:Ǐӣ_DhZ{vV2F8gg0qPdKye,kuBcc34ϟ)n%쉾$&#/OtW>;wЇb @àɐՙ Z$hQQQV*Lblm؄XZ}ݻ88` zْ%G\֭Szjt83##9Fp----Uߚ!GzzziʱͶr\r,EqqDyy|C棗 ,0 ;;[TNJ*ܹG[KE/5jTM,%ddd|{n)}|szzٳϘяp01qh0^hkggbŊF B222'JuV\\0A0h...A|WB0//O k|Z]PP{˗ֻwm޶&LNNN7nl Ϟe˖u3Phe0533 bٲeBP ,[LPq` 6m/'W`ܫW/ tܓ$wހgg7/|>O? ui@hѢZh׮ j{CT9Ћc.Y]YYiooyI pppꫯZ ՝;wk׮VVVTT6m󳵵ӧݻwS=6pe//7oV$+uuJRf///ggiӦѓ\՜4cS={޿:tm۶s-++yBQԎ;y<ϝ;G΍yAiBGGģGd2L&̜7oތ34/Ǎ&uGر#;;{Ϟ=ܮ~Cϟ?ܞ4iT*ݽ{7AoT*ݹs'AxΝvڭ]hÎ5J*8qλWX4a„ &ԹQm~Źsq:&4(_j5EQOvssS(=㋊vEDAAACCG,RYxxxFF 97|#N6Ҧ&>>^:dggӷ###tRXXr뢢"Z-T*US4<(J.Ws"HڵkWKڵkET:^ec4F.]Vs1ӱz&ht^y*--(ꭷZr%=իWjk`QYYӒJuuc߿_3?\%AS=**O+&hj/jt'OOynЏM- :ͣG cǎ {a tnUyc  ϟӗV^~mW)))=|իW5ktmʕ#Fj`a[[[ \n۷ot!##若, u޽cpAp^1ւp0j̘1Ǐ <{Ç Ot<,,11q֬YQQ IDAT%%%]vվK1ӻtmppp): T+J:ߎT+PC7cS۶m[]ߋ* 5(/^رf{```M|A3Տ @0VVVN\\ Is񪨨Ν;jرc3g=ztaa!R$"33SQWHLLOzjsqMw`v1{74I&?~̙3ݻw|լ~࠷WZoe|۶m$I:ĉRT.s\+++;;; 8 Jnݪsd͘ '%%ĬZjԩڿڽ{D"ikR^uWiӛ\.^^^^ۇZTTf͚p\CCee\.733+//_f At{e˖>}:''ŋWCJ-~to`j4cC233_'''kz tKjދwyG)/_QPPpʕkג$sc/Ѻ?6FjD]:EQ*%''?J3f;::Ξ=m۶fff:t8}4ngg׶mӧOm=P(kccSkM{nooo'' k7U6*H&Lޮ݊Xc0DzfϞmcc'U灣Z շ|7۷o4i@ 9RܴiSv{Mt>jT.iwXaMER?tss&M***{2B?6SLŵ܅~_G ,]uRlҶm[>?|ӧO;;;Xe>6A/$MoM8Ѩ?{III۷oSyƍoo5.hbtEE2+(ȝpIGAxX18wgΝO8g7j4>6x%N+-׿W(gϾ B$M:eeewO}]84Ǜ3g~10={=iNmL+&ceeecǎkӦMxx8&D80VPdy;;uػw&lh81%NPx3hEDD9?律-G=J2={|gп?={[oܰatr]T*5 5HOOg:^v-1@cmm-ki}~e~eAeQyQeQTj.K$2Lf.ٔSy#P(XIIv%dÿJ?~,ζQ;@CyzzN0!((vr|x BJ֟f$JJ**8s 4"U*\./TTp<(V))/ 0FY7.)+F&3#IBjl;4^aey9#JJŢ( tb>>\u۶ذaÆ c:e={=xWؑ|kּֈ'OIYW,oDkמ$IzO?-qLo׺l3a[~zQ$lĿJg'O޿pAPHT1c㴦 ܹN~De\u0ӰCJޱƍ۵_>EQ=^DQQi-<+ Ry^RA? ww{OOOO//G//OOG//gg=# 0PClz,z;"Iޘ1oCG*^k$Ibʑڈr 岖,6k:%'K{g6;ӋmܜfةSTsÇoq8lREIfnj\|^W֗Uҧd[Tؘm!!dC&y>x:gbDT;g'3ZEbϞ7_U:CdOfh`maURiEAAIZZAE 33+QsG@ ޽Qk֜y a[Xp ۷}Ƥ(С;kמR(T uIS>|sll&}f\\W6ztƍFJ,ckj VPP_IQQ7n$TVۅ$Io~;ծq^xß+#ek4ܰaoҸt_Vx&Lڮd+V;}!A:OƎ6m+=z3\TTys?GU|l=gIDR(NHIL̉,,,%Ϸvboomn!";[ZVQD9..U7mllL4`_r..Çm[SUZJJIV {ؠ ?&HT޽ۮ_?ߥÂJ+x{R}B,e/oy31*gl6ٵw~Od\T7w岹\ڵcLՠ&ii3gr9 +(zQF6>>CilJwoc=>)sK\د_~~5.,ٳg[4`ff5dDćn~x4kЯU*A$aeevG zs,k.$N;wNOM-JvJ#,,0,,S'\n%YsL"<<좣?X"eDqBBvea)??X,IK+LO/gMaZZaii%A,)7t` ;vĉ{2Y+:ᝮ]{6}l$&O~]:ZPBBNj)$Yw|ДЩSL'aYZ/[6|ƌa FaŊc~̙;tpe:cEg _&V6j@z%XڭZl6Zf̴i4n⌶L٩ ͞3[u]BI k}Joܲ%"T*$ɭ['CCY֭瑑qbvuWsӦCvlE9"Q:=ŋ\J}}]t}{!EJ$e99\ijjoH$e|]$%\\xt-.q@#9qw\&L曡UJuΟ$b׏kP?EQ_|qnǎ,|cG7Ѣ__$AQļy[Z؁\y|Fuf:##K/]ɑ88X>$7478سErr~?ۻ>uںW_]!IR ysUM */!'GR% \.oL;`QQ A"g: j*66#**1""޽ssNHoXXЈtNۡ(驱* ˗y9IJ 'ڸxy9hBAIi'nbIn>˥7B!O(iz8c+$hʈ]b mS}ll,L2rjըظAQT_Th}{^azO7n….]:XCaa[2f=zׯ_ǎor²i^oGr۟<ɨұeCvʕSDf& --ԃtɒ# Сu_rK]{&Ux{;4thPZx:"99.7Ax>>~~`OW%%32 32 J=< )MwwthH@YTKRJJտ[7׹# IFՠH{S= ٶƍ<nVpF/)K,Mp޽4Kq#1**166$ɠ ~ٳt *ߛZ &'ѓ.\l`fsS:O== J}| wskR~ %22?$%[~ȐCZ[*-,[~ٳ<rQ w˕DXJϻIO/.i yB!_S6逥Y!A-RfT¶m#ID/'mv"{j/x Bz?@_T*u\\~ JLLYlm-in TR"WՖܛ7W|],EY$Ikk󈈥A͕1I(5 22.22Νj5N*i-?}EŮY.ngӱGBULlIHbtbj)'^4Ќ_ԬP\\F'={bڴ]W&T*$tsS  |}= sť5lw֠^|b?H8yƾnFڽէl#r#dŊ?UF͕yy94`̊wllfy+|{jsg@LHrsI7np h -ej>j55}￟tќ"BMdLj=>}E$iӛ#Gv3f+:ujCm۸q)yb4:ׯy׮t[gUI.WZuȑ ^rv}Qq25T*o4cF?Foa_iӛ,4+0ԓ'=|‚F 6J([Բwpgv̢̢⬬b\IE:;<<\\|WW;ww;ggd $h@,eny_bƒq]x]ETwB>}V0jԷ]x7l",lS`[0t䘘d(‚ۈ^%ᄏ?!!歷щp83CJL˓]ҥWTk +|7t|rseEt&3(+(;[]Y[e <77{ww;WW;77;ww{:}0 )e.**q䝟};Pu_~~.{c=~noo11&l9ߧF,Xpƍ˗ZZz177{$#<|gpi3J$wݛpP$GD]$3^C}Ȑa:+|D9iiEZ:kJ\B*,,K蚩S\..x..<4h%&1R23 ܿo3Ù3=~0_f t,-^1Oӝ8qoٲ^yo`z*)\Е+Oׯ7yr/éQݺygyWqҬݡ̢l ]3Eϸ,ʒH$e>\{WW;WW@ss |NVAK˕cl˕g.f .34TZޯ߆#:m8XV\ ٳm~~E/}Mg%ɽb\IQQ͛n5I 8GM{ĜOKncc߇.+mnrr$lIN rruwxv..|?fgm9 A `L}3g^v(ZpDDS\ ON7W[3 iz^4;ظzSaa{AN53Mdd܂vzǠ.ԄEgjDt++>}jqC:eCD%$g rWYS'[I.WjL+":S4kNQ !AbȥL?~# ,\PM#=ܹFq ڞ>6M&Nt,zSXXz~JttrTTvߐn|8jmWRn2)'O={ftt8 ^xzBdd JcG~CB|͊fopbbNE·k4oHrrR };5@,7AVB!O(ѝnB>#0$h6_T]||֨Q߾nUF1˿JGĉw 􎢨qUT(Ν[l&뷞N~dɯ]x 4;p'c*dFD] .vr8]ekk}CTgfggϲr%vsK6 ]4 };;X&w>利7z `DLUH$eÇa\C;zw1 ѣ~x?tt,a~CRoxa۶S6.-Md2O6!!ҥS\vhh xh/EϵIJՔ \//販\iVVX,ɡ _Htv[ v *eBOyRt8:ܾ⭷~\pȇg:\|/ Do`0:54=ѵcT84]֭瑑qRi!ACXNKNhJoo}2wCw)J+4{j*MV[ P4@YTny3/\Xb\K fcTK~ZoEC䇇͕1oLc4bbggkkoLjܦGt_az'O2,,=zjttG{o(ӬJWn(ҞOQPg1n͛ܺ5رy1?HR?ܹ>>NLӪݽ׿|yy@+ӱ騩{#\l_<< G'ɑ̜7))1d׮=t)է%%~~.aaAaa=zBs`z fjT蕧%799\Y~L3Ҍ/=S& ԪJJ?%q/>,rpӧ!Æuj` %K)dWV*ٮ6FO;hG{1oaLF #J,6ls۷t,z#ҡQw>d4ӁQBfUY\'ݒfĈoy U+ܭСAaaA~~&NhV'$ -^D\fJ S& jK˕cl˕g.6ɳI(7~;_Od:(=gώ+혎R̝;/T*uǎ!!J~dgMM-رcZLc"y1{~wo#қ7j$2cTXXomW֔D MgT^T,֧~J(乸]] 8$h Z+/e9…%&׮9v,fٲ6cE zw_Ξvpoo)+8<|ozzΝc:E35"QY>n582YErr]E'nRS ЬMwZHSrdgci^?py{֑XZKH9}zӁJ,..srݻz67?0@LGC#=ȸJUǎbGSHϞek?{c wk55)XVi+,R*]>ŅXPwwGy>^ AcXPTѣ9ߪU%XqN- rg:VdЯmz5؆iz^,#ʬ{wmr򣏎==o+GWE(j+7^3_O;Q^.w/%""Qvv(d5El:v0ɲwá^ZPMnL]ϷvٽX p POH2N")>#G涒B2.,vuc:VATobӦ`:`zX2sĜ￟-giwLL kK""Or١m6 Wd3 ߱I/EFeTV*Kb:w#^UD'ԈZc)*aJVSӧͼxqPc:#Uwff_KC-s##?Ĭ֩zv턡t{gommoLӊϘ'?dhn=J+ :4R326XѕSiitvTFFoq-Sޝ5q}N VUնֽVmX]jkkͫZ[V[*j+"պ`U%"Dd?:7&!H2Od29s8̙3縡⠯Axp~z/)*.<_A'S;u*wΜb&,wTdNNٳ⬬.d\GafPΌ7dW ]…JՕ+A@ %..ԣ1tڔu+|/-G[{uR^"VT54Pq8l//g7jb??.N9ecqR !@cVxΞϜmf:/*HI…c{)>8vLgL~#ݙ]P>Ė-`fQS|3Gl~t3gn)?ϏJ={W_1+SMK`:;ЁGσvpLZ  Tdtt5pll Y BUV ߷nU J=EnwV_D=$izjpzpHytGB[(7Mo?0W[~)S;6|9T[/3Ї733s\7oϟMs炸8PkG+s^CPر|~tbb(Ewll`xoP;V=][FFEm5ўz`säC'N(J3S44?^|6UT#xGG&mHaa˗;zʕw̘1LE,ۺܹqq=l~',t5k~uKrВ.`gVOw~KffMl6+89<%"5(ȩo z.ܰ᪇GfR76*Vuu1mE1UٳRȢ"YNNMnn]yy-;"eH1p'omUJ$ISEaouGffpKKk**jr7 - - 5 -0Нz߇q_ѧhK2ŲHqtbee֧_x^xsSX,o5_ /SvMOvgO3h3]! A$zT)))F*iӦ8pID>}zY,*4XS#N }J݋*P(ߟS烩ocA[Zڨ6eeeeu%%5ea6h6kݫdMMrag0{ozˁ>YIdQ.h =9ەLg"h lm}E] аt1zO>3ӹ05jTvvQR􎒼v횵/Bo9r䈍͍7oV\\?C j ػ,..0;Gd!!!aaak׮mii1ALpssKIIjogn7י,;[&ÿ뀀JEo!I_~_}MT:0=DhT%r[Q,kڴiS%c8= W^^>s`''Ç3{6!XP ɓ'߽{j?K.9|úOOOmIIɣ>oAAAcƌ:hP6}tN'zk֬YlY]]A/^vAhhh6lإK6mtշ~{Ϟ= ?SHHvͤGYtիW݁@ՃvppؿVV /0cƌ'Ov*NaȜ?LJ/gUOSJ݄е66uhovAopκ}-ZOT*zܹs̙cvN1QPMFsy[*++ ~SԦ+I۹immyWH|W*˩RSSnjP(e2Ypp֭[;DLڀ ؿ7:g <\]]/^H @I...~Skk :[&=IK.߮Y&11;;=;t\Ay`Jm,ek^;5*XW1C!bѢES#7zi>^iԩcu$s ژǂFQ__sgSƺ 6c9hy7|zvq V\rʶ6 X,޽{?c FA/ӧ-[>O>70M{RÜN>tܹcǎQm??M6i礮n޼y</55E#rHOO uss9lٲVXplll\\\: ---66ήw&T=L5􎒴ٵkΝ;?~׮]hϞ=>ͦwvtt|뭷ݫJUk2d… =e2õk״3;k|}]}22n(\.w˖-۱cQkPR}QQQ#G:FBvڠ //9sPû6MsjkJrΣFtR{ j{U^Z8~-ܹ3**kӦMw qqqyoi_1cƯJ;ۡCOg ]Uѯǥi$7U{{K֩^KwEך! 8WZ˗/G#=5]G %b߾}ፍzsN|շ]ᆪ^k'NaK>(m`uDY/4LgmFF' F?Dy9r䈿[[I}s=W\\, oS<󵵵۷o'Z=bee%H2L=vml{iƌRtǎAHm۶QߒJW:$kkkmmm333Iy&}չڷmmm^A,Q1x6-^Kة HMR꫆lk!P]X,ɇKIO?}H3gܹs%ϥKHvӜ}>u#WSS=!ihSrnaȎvΛo*VR544(hLTШT~fFWU(ϟi{}֮P(|}}O>MO EcOl}sG:thXXQǫx"ʪݣ[YYM0oUߨ>i'5HsssJJʕ+^e삂;wSЦs/86Z&yD"AR`U*/RSSp)SP153(,//_l͛ǎvEϚ5 f̘o߾M6͘1O ]1mڴÇ8p`ԘUmػc]JM%I3gΤYgX'NDԮׯ_DkF_XXH޸q^~咒{ :a[ oF]xդMϕ'lllܻwקNtV)ꃍJ?cݒuעk L6k֬~n֛*믿b5ҡ:))iŊu*YO=ԧ~J9gϞ6==0)lQ7m 4NrMDgVBbJ0j{rrrmmڵk,X@Ϯ^H(N4oѓ29A7nܽ{UBavv?۷exlmm666k׮%A='g˖-{nNNλ;k,Cر^/_^f ,΍644],+99RT.s8WWW ~GT_LN$I-&ZbJ/H|ɓ'bqgΜK/Rfz_~ٳ鍽ػi$I(00ːS W_}U=Y}ROշW#:uJssppxgx{yyu:kj*iԷdt&e`"^{饗7ʥ|'~)VR,Xt}:u*--hBt|qٳg?^(/Dg{BKR[=p}B{:wά6NyWԧՑJwssxWI]cFDի&LrL&T:gnٲeƌ9={˛ni|xӎ;tR:<J%˽{.Vg߿666Gܰa9B<={aa?<|Gi'NaK@3<XE'yĉ~y6ӕ tvooc|giUd .tSCYf̙ol[[3(,w[f8VO ը2raE]n3ȢZ6f }ڌn1bD>կ`Ν/rWsW3CRb:/r-2d#臒K. 6lƍ3[}x#ݪg%U/* k?&ӵn~:uVC6~(nJLL2\-f~tӦS;;u %ۙuOLCvEjA}mҵ } Fr_b:#!@U홛7˙ rkA+Vl_[Ut.46eyy]YYmYYmIIMYYcENt++$'mۙŋ3\KIK 0{0OO'=4`>͊r* S^^WZZ[\\]\\S[HMAgep6;;%h}?ȑ16Ɔqlm]\lm9NNvl6N3Ū?w6AJ%Im^11x[[Q4<&b1 /Dl?`Eم PM(|1zeLfX Rz&U"[[X,֐! ?gf-[6]+?X,6IbDaH\^LA{hmjj)yʊ֦_ziCSSIs 烩Agii---'NP*f*!!!88^|[6l6yrPRRSy3fL7Y{׮Xx;fɗA$͏>m̞Y5 Ryƍe,X1ԝfx ;;v.~'beRȰ0^nR`"Ơ4ڌ7o-4?f:/`n$IwMhj93f/Y2!5uyx/\^|ƘDul6$˓/he5k׊_yeZbޔ)S͙7)s5ꃻw*"—6lH۷R(4ʊl7|xHBBHll`x ܷbjꁍ7oyڛښmۼ3gjkSID7sssrpwwiޟas8˗_~9×@7\!DwpU`:GWWO>RSXfh{JYmmJoo!C :48..ΎTgQW;IR5~wǯt_CCKF-@^\\1| n'% \\bP_ߔ' KbI^D(,imUp8X^bbDxyB뚵RI>Tڵ`9'#h6lH۾=MIu22֦3IO<:dĈ7oge K.^SZZkmmտ7kԦM'yg2 9'O.\WCݎޗZ[[YY}^`V{"BUVV+K*(STTMCxOll`l,/"72Oc8W_ߩ++JE9`ÆQQ%У @CСH-iio ڏ,%(,j/&$I6IbIBaiVݬKrs\\Pl,oÆ۷Ēqu5kƍY[cZ0<ɱcAvvѣcܹ7ḟ EE1B*mu\,F57˩2qqA9}:wAXYx< MJhzh|.]*:+-c=gΣSXÇH?x\sdkNH;qt%zmܸH>?:11Bc#_II "IrG׭jku"Ba }$I.>"766tZ~ȐuvV=>w(m@ տEj/^(܀@J?Ddُv  K^z{ܺu㪩i<}:ԩ܌2Ykx)q|~Aٺ_|Afΰ%Z Q%卍lˋ  r~d?=='!! {4hL ՠA7?ϋƎ`&OKspM]]qs/f#RTT-Ҳ\)pÇ'OuBzfȪ%&-ϯTHggH_*(8-S39}:wP{pS׿f2+ L=$m27m:>hP 6VP*UW ~Ν{Gя=dtz6eAA=HTFuåP+XYai\Ѐ,Yl%(699\8 ˓OyyI/yCM)D"_?)S AAzzB_Ν{J^D&&&@ς CkbwX;Qy`q(o9x}sJ̙3T*rȐ~ѓ& 0tȈŕb$; nx/= @O ѣٯM6jҤA۷3{b5}PFƭg R99H  K\]ƌ OJ8qb kt,N}}5w̃IdJZ[jyz:1ScB᭷sO>0g~:5v?䓱~~}h6zk*(#4åP+ @}.N$Z ~h:(+W ܓ'osss0!Ϗ7.ٹO]YYOO+޹sOTы^Sa:nA qKΜU]-#ΎCB/kjl _?#CΝ dJX]\U@7<ܗD&, 1!@ @@]eeCW9+? ѹ,TIIMff@ :sJE/99zALgT뛨cL"SڪP sf4htJ}\=E7\**S*\fԨɓ&NrΝ)ZXBO"STTM5w 볫P0`4]|w GfXDBB//je0;ZZ._.:vzee}`{bb5 f:wF#ܺUNO"S,"7..ۙu0DCCˑ#~񯜜䘄~7j, 5R]-㏛NfyL G25㠦$&˓ܾ]I$kKMKe8L 0N Kz5>&&`ԡ<3ʊ,著'9uJ.B[[넄>?zʔ8-2YkA=jD$*kjV<=oxoP;`4]R}7-sq)SND/ 5 իiiFYYcEG9:2.<з4?R""# }ccy11<hzht\ȸutR7.'bo\}V]]ٳb@#|2"QYMM#A>>\jh 4hB&k7c3OP9M4ϕk(*D;$Ioʔ'wW(,sR& k @ @NK˦ L7eJ|xƞ\RQZuX8ztXRqvLcR,dgWU5 ' B C 劳gſv#==}YxI1|~L|| m3@E%ɓ9UU y$%E''G1WȮoy0LIk CM"3xp?OO's 0SS*U/'OW;9aq"{2k֞9sK ef)>bBPՊzj \\cLd5ә!@ @ S33 eL o̘p>a!=45`Q$ǎe 7nqF'Nrf:kҖ[Idrrʚ }₼-.8h0B&k={V|tܔH꽽{,jѣO85`~--m/MO?~]"ƍ#,j uvPIn߮$I˵&2vvs `4-㏛O^RR԰1c†$׀I4>{TnFMϏ4g J&k-(GM"#DeMMr6ۊs'  r@ς 0$r?g7GlEIDATo(eY>vl!bp BvZZ+66 !|~q.fj&-ϯTHggH?jBXޠAhX&Ԝ;':6ztأtu NQ*UW ~Ν{Gя=dHEHTVSHЗZ-L`4//OrY 2YӈF0rdhDo{ Щ?(=]$6S+dOgjө' KܹTEIdbbO`AJU~˗R񚺺&''2xp"0:=]$.^RCKN4iЀf=@F,%UU Ap1TP&,"hP*yf w.\ȿtGS#b \k)DAPX0fLxRc\{3d;$2% z 5̐!<<̐ @ $'pΥKw.][YY 2lXאt0in;w[  JiPmȴݡPjb =LQQ5A..ZTP&2Ϣ @ @ʺKYڔ>>'$ |}YFcǮgf)ʘ?Ϗ 4Җ[IdrrʚT/"— y{;(F 0ޭU$*|.ort8П` $NE]hg=:ϏNN1EXQIn߮$I˵&2>j`Q @w(<fg_^,W**@//~cphmUdeNVTyz:9eJ|bbZ Q%"QYSͶ }}^`4}å lȒ\ÈFjr'sZ}h>`BBQJ=з4?R""# }ccy^ `4@ihhyq]jJWk |\kL…|6j|~Ov'Yzk*(#4A쨥k>`4DRzIvvqvvqvvI}}Î<8(>>(&d\cJʕB 'LǍtvZBa;J55LLL!Czh!a^Rԕz0Su;--[ ȭo#)):99zPkkN%E+bIvvqUUA>>\jh  B pJt­[2gg9iӦM6\]JV,OPC8P~h7;od6 6RMCG.g[Y֘Prg Vww;;ER8pJnn͛ڔ~ ڛ&=4=ށO؁I]paȑ`:#?M>bq[rB2,kĈt --[dy{72GX:[fUT,&&& *ʯ蛌&0 JIIa: aÇ[*rsEܲtTb8s8Mk1  llcccc7@&7\$*-?p f0{!@S`{`ĉ1[=f `4 C`b󻐠zfGg$_|E'''Iw6]@x/2!@Ӈ?aLӓzjժJ(M>]{b=!^^^FLPRUWWS===7mԝ\~>>>UUU޺[inn&"((Y0.xfKzGūfX{rww P(k׮ 3gN]]A#F  n޼y</55Eg8 mʕ>>>+WlkkS?P77?ґ#G"""-[ڪsQ zGo߾FJ_GEE9;;92##zDH#Eǎ>+.. C yՏNs̙;wD"tI۶m>tPyyy<At_B*,XtϞ=AܻwO2v֭}L&g̘!JwADJJT*ݶm[=uSL[x=p#ѐ'@A\.~DDD:t477zrfP:3M\999y^ x3gΐ$T*B!]P:7vXzhjkky<^ll,޵k??@zMLT*333VSSp>ZJРT*5zWzK{6jvϩ]&-<ԇhH] Cvdd$\]]_yHRPPO?X}ٲewywg͚e`~\nCC>zꢢ"P8iҤoFc;vO_Ͽ|5k^|E=ST ,Xt}N:FĂ V\yD￿imm666k׮%A}|AT*9Cgs|i6lXbŐ!C͛gիW'''O8qAAA2LG믿OHHHNNNNN^zx\.^{Æ ΃?~|\\G}/\UU?Yf%%%=&Mss#q[lZjۿE֦.Ydaaaׯoo:맟~:k֬3fL4I};;~aժU}:U=Ξ%cӧOG=j (;Bā?0/~t!Fd ;0a@r-ZdFzKK Z[n5d#BCC}zKK `4 CaLg_~a: YIII`` ӹx"b:ŋ@MgmmtFz#G2Lg7xLgb1\(`!@0h "4X/IENDB`XQilla-2.3.4/docs/simple-api/classSequenceBuilder-members.html0000644001725400016040000002216413273140074021260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SequenceBuilder Member List

    This is the complete list of members for SequenceBuilder, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventHandlerinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandlerpure virtual
    commentEvent(const XMLCh *value)=0EventHandlerpure virtual
    endDocumentEvent()=0EventHandlerpure virtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandlerpure virtual
    endEvent()=0EventHandlerpure virtual
    getSequence() const =0SequenceBuilderpure virtual
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)=0EventHandlerpure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    piEvent(const XMLCh *target, const XMLCh *value)=0EventHandlerpure virtual
    setLocationInfo(const LocationInfo *location)EventHandlerinlinevirtual
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)=0EventHandlerpure virtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0EventHandlerpure virtual
    textEvent(const XMLCh *value)=0EventHandlerpure virtual
    textEvent(const XMLCh *chars, unsigned int length)=0EventHandlerpure virtual
    XMemory()xercesc::XMemoryinlineprotected
    ~EventHandler()EventHandlerinlinevirtual
    ~SequenceBuilder()SequenceBuilderinlinevirtual
    XQilla-2.3.4/docs/simple-api/classATUntypedAtomic__inherit__graph.map0000644001725400016040000000064113273140076022573 00000000000000 XQilla-2.3.4/docs/simple-api/dir_7d7a68009c713f027cda8b1a802087bf.html0000644001725400016040000000547513273140077020665 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    exceptions Directory Reference
    Directory dependency graph for exceptions:
    exceptions

    Files

    file  XQException.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/dir_edb9ca93fdcc21e6038ca507797536da_dep.map0000644001725400016040000000364113273140076021551 00000000000000 XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp_source.html0000644001725400016040000003570413273140073020145 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ResultImpl.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _RESULTIMPL_HPP
    21 #define _RESULTIMPL_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 #include <xqilla/items/Item.hpp>
    26 
    27 class DynamicContext;
    28 class Sequence;
    29 class Result;
    30 class ResultBuffer;
    31 
    33 class XQILLA_API ResultImpl : public LocationInfo
    34 {
    35 public:
    36  virtual ~ResultImpl() {}
    37 
    38  Result *getResultPointer() { return resultPointer_; }
    39  void setResultPointer(Result *p) { resultPointer_ = p; }
    40 
    42  virtual Item::Ptr next(DynamicContext *context);
    43 
    45  virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context);
    46 
    48  virtual Sequence toSequence(DynamicContext *context);
    49 
    51  virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer);
    52 
    54  virtual void skip(unsigned count, DynamicContext *context);
    55 
    56 protected:
    57  ResultImpl(const LocationInfo *o);
    58 
    60 
    61 private:
    62  ResultImpl(const ResultImpl &) {};
    63  ResultImpl &operator=(const ResultImpl &) { return *this; };
    64 };
    65 
    66 #endif
    Result * resultPointer_
    Definition: ResultImpl.hpp:59
    Result * getResultPointer()
    Definition: ResultImpl.hpp:38
    A scoped pointer wrapper for the lazily evaluated query result.
    Definition: Result.hpp:37
    virtual ~ResultImpl()
    Definition: ResultImpl.hpp:36
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    A lazily evaluated query result.
    Definition: ResultImpl.hpp:33
    void setResultPointer(Result *p)
    Definition: ResultImpl.hpp:39
    XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp.html0000644001725400016040000001202613273140077017706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATGMonthOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATGMonthOrDerived
     
    XQilla-2.3.4/docs/simple-api/classLocationInfo__inherit__graph.png0000644001725400016040000000451713273140076022162 00000000000000PNG  IHDRhp}bKGD IDATx[LǿҋB*C) 1!DAA75Q0R!b `H D$ QnEwv BPƢJi;=c&^HG~Ok.V;ʱX,Y>n!!!³^+,,4ͮJZ\nII5ĽziΝ+:tȡ8˗/\_%k8D299xIDG9dX\VqASmPlw2XHh4T+++b15JKK㓓o޼`6SSSJJJt:˗/O<t}DXUmkD">vl`]Q˜ JU]]]VV688k׮766ܥK"""o߾=33s hoofMjϫRiMMV d%]̈3LO> zqfffhhhHHȹs6m.//ח;_ڔ  tN. ;\LOO$vZjqݺu* 5&&&z}DDBMDT)Gu˂3͍ jǏ"ӧOBAuUPTTv֭3g,&p88Ie(nffFmǓH$A(ʺ={*JRYQQg0&-,,US[?ݚhiFYĮziŞׯ:uڵȑ#g~~`~~>&&F*P(...vww?|ݻϞ=ֶy椤'OXv XjiiIMMa$D"innNIIװ 70vXyrux>kWvLFE]\.6f/ss/^]>,:}(`0uvf9#Y̭[m6 Z5!633rYŰJ@M1W.ү@(0{q ҲYYEJJ =-88D8D8D8D~T wwm۶ 1LP؝( .θ~ d~[ݻwhTxW^WT ΏMS՘1 ///jh4₂=ZzuhhhCC,>])&&8Ν;w6nWZZuETGGdž bq^^5938hnnvZVȠ%%%}A&mݺ:nժUAxI<22rbbqE"uzzz``@ד$ڪVO8qM&0$)?/Zd*CF=<<޽{nerW(.\8z(Z;8?b1͞JZh4>>>YYYT尰0@AY\\6Ѹ}vPhT`Hfߑ]ת<==)8X\]]~*X"X"X" XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatter.html0000644001725400016040000015024213273140077021114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLFormatter Class Reference

    This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...

    #include <XMLFormatter.hpp>

    Inheritance diagram for xercesc::XMLFormatter:

    Public Types

    Public Constants
    enum  EscapeFlags {
      NoEscapes, StdEscapes, AttrEscapes, CharEscapes,
      EscapeFlags_Count, DefaultEscape = 999
    }
     EscapeFlags - Different styles of escape flags to control various formatting. More...
     
    enum  UnRepFlags { UnRep_Fail, UnRep_CharRef, UnRep_Replace, DefaultUnRep = 999 }
     UnRepFlags. More...
     

    Public Member Functions

    Constructor and Destructor
     XMLFormatter (const XMLCh *const outEncoding, const XMLCh *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     XMLFormatter (const char *const outEncoding, const char *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     XMLFormatter (const XMLCh *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     XMLFormatter (const char *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     ~XMLFormatter ()
     
    Formatting methods
    void formatBuf (const XMLCh *const toFormat, const XMLSize_t count, const EscapeFlags escapeFlags=DefaultEscape, const UnRepFlags unrepFlags=DefaultUnRep)
     
    XMLFormatteroperator<< (const XMLCh *const toFormat)
     
    XMLFormatteroperator<< (const XMLCh toFormat)
     
    void writeBOM (const XMLByte *const toFormat, const XMLSize_t count)
     
    Getter methods
    const XMLCh * getEncodingName () const
     
    const XMLTranscoder * getTranscoder () const
     
    XMLTranscoder * getTranscoder ()
     
    Setter methods
    void setEscapeFlags (const EscapeFlags newFlags)
     
    void setUnRepFlags (const UnRepFlags newFlags)
     
    XMLFormatteroperator<< (const EscapeFlags newFlags)
     
    XMLFormatteroperator<< (const UnRepFlags newFlags)
     
    EscapeFlags getEscapeFlags () const
     
    UnRepFlags getUnRepFlags () const
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings.

    A number of flags are provided to control whether various optional formatting operations are performed.

    Member Enumeration Documentation

    EscapeFlags - Different styles of escape flags to control various formatting.

    NoEscapes: No character needs to be escaped. Just write them out as is.

    StdEscapes: The following characters need to be escaped:

    character should be escaped and written as
    & &amp;
    > &gt;
    " &quot;
    < &lt;
    ' &apos;

    AttrEscapes: The following characters need to be escaped:

    character should be escaped and written as
    & &amp;
    > &gt;
    " &quot;

    CharEscapes: The following characters need to be escaped:

    character should be escaped and written as
    & &amp;
    > &gt;

    EscapeFlags_Count: Special value, do not use directly.

    DefaultEscape: Special value, do not use directly.

    Enumerator
    NoEscapes 
    StdEscapes 
    AttrEscapes 
    CharEscapes 
    EscapeFlags_Count 
    DefaultEscape 

    UnRepFlags.

    The unrepresentable flags that indicate how to react when a character cannot be represented in the target encoding.

    UnRep_Fail: Fail the operation.

    UnRep_CharRef: Display the unrepresented character as reference.

    UnRep_Replace: Replace the unrepresented character with the replacement character.

    DefaultUnRep: Special value, do not use directly.

    Enumerator
    UnRep_Fail 
    UnRep_CharRef 
    UnRep_Replace 
    DefaultUnRep 

    Constructor & Destructor Documentation

    xercesc::XMLFormatter::XMLFormatter ( const XMLCh *const  outEncoding,
    const XMLCh *const  docVersion,
    XMLFormatTarget *const  target,
    const EscapeFlags  escapeFlags = NoEscapes,
    const UnRepFlags  unrepFlags = UnRep_Fail,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    Parameters
    outEncodingthe encoding for the formatted content.
    docVersionthe document version.
    targetthe formatTarget where the formatted content is written to.
    escapeFlagsthe escape style for certain character.
    unrepFlagsthe reaction to unrepresentable character.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::XMLFormatter::XMLFormatter ( const char *const  outEncoding,
    const char *const  docVersion,
    XMLFormatTarget *const  target,
    const EscapeFlags  escapeFlags = NoEscapes,
    const UnRepFlags  unrepFlags = UnRep_Fail,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::XMLFormatter::XMLFormatter ( const XMLCh *const  outEncoding,
    XMLFormatTarget *const  target,
    const EscapeFlags  escapeFlags = NoEscapes,
    const UnRepFlags  unrepFlags = UnRep_Fail,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::XMLFormatter::XMLFormatter ( const char *const  outEncoding,
    XMLFormatTarget *const  target,
    const EscapeFlags  escapeFlags = NoEscapes,
    const UnRepFlags  unrepFlags = UnRep_Fail,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::XMLFormatter::~XMLFormatter ( )

    Member Function Documentation

    void xercesc::XMLFormatter::formatBuf ( const XMLCh *const  toFormat,
    const XMLSize_t  count,
    const EscapeFlags  escapeFlags = DefaultEscape,
    const UnRepFlags  unrepFlags = DefaultUnRep 
    )
    Parameters
    toFormatthe string to be formatted
    countlength of the string
    escapeFlagsthe escape style for formatting toFormat
    unrepFlagsthe reaction for any unrepresentable character in toFormat
    const XMLCh * xercesc::XMLFormatter::getEncodingName ( ) const
    inline
    Returns
    return the encoding set for the formatted content
    XMLFormatter::EscapeFlags xercesc::XMLFormatter::getEscapeFlags ( ) const
    inline
    Returns
    return the escape style for the formatted content
    const XMLTranscoder * xercesc::XMLFormatter::getTranscoder ( ) const
    inline
    Returns
    return constant transcoder used internally for transcoding the formatter conent
    XMLTranscoder * xercesc::XMLFormatter::getTranscoder ( )
    inline
    Returns
    return the transcoder used internally for transcoding the formatter content
    XMLFormatter::UnRepFlags xercesc::XMLFormatter::getUnRepFlags ( ) const
    inline
    Returns
    return the reaction for unrepresentable character
    XMLFormatter& xercesc::XMLFormatter::operator<< ( const XMLCh *const  toFormat)
    See Also
    formatBuf
    XMLFormatter& xercesc::XMLFormatter::operator<< ( const XMLCh  toFormat)
    XMLFormatter & xercesc::XMLFormatter::operator<< ( const EscapeFlags  newFlags)
    inline
    Parameters
    newFlagsset the escape style for the follow-on formatted content
    See Also
    setEscapeFlags
    XMLFormatter & xercesc::XMLFormatter::operator<< ( const UnRepFlags  newFlags)
    inline
    Parameters
    newFlagsset the reaction for unrepresentable character
    See Also
    setUnRepFlags
    void xercesc::XMLFormatter::setEscapeFlags ( const EscapeFlags  newFlags)
    inline
    Parameters
    newFlagsset the escape style for the follow-on formatted content
    void xercesc::XMLFormatter::setUnRepFlags ( const UnRepFlags  newFlags)
    inline
    Parameters
    newFlagsset the reaction for unrepresentable character
    void xercesc::XMLFormatter::writeBOM ( const XMLByte *const  toFormat,
    const XMLSize_t  count 
    )

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATGMonthDayOrDerived__inherit__graph.map0000644001725400016040000000104413273140076023442 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_4.map0000644001725400016040000000032213273140077016375 00000000000000 XQilla-2.3.4/docs/simple-api/classATGDayOrDerived__inherit__graph.png0000644001725400016040000001717413273140076022456 00000000000000PNG  IHDRP jbKGD1IDATxyToH@D "Xχ}}@jYhk_[iKU,Ke XJ+-JXв + T! NC6!0νߙO$̗a@z Op< vޭP(AH,ex @.999M8qÆ pm۶Î;u^ظqcLLLoo/yv"s šCfΜiaa (c$RSSU֨PYYظe˖M68p`͚5 ,jjjjbŊ|D2i@@@{{{bb"СC|>_ xyyhj֦i֮]W[[͛w^r0tݑ#GlvfffSS? 7r {"cnn~-ٳgb/쉦 |>_SSaX?f֬Yx[n偛N?ɼqpxR C͜9̙3Dgώݽcǎ -ZZZ쉦 *޽{@ 슊JJJ^~R)盚c&{R Cލ;pAxlƍ7oĞ3[[[b{{kT6TX{#D ree姟~e+W>|#M2Ύdkkk'Or9ܯJ:ٹpM-k,m ð{:;;ŨHTUUuVw *t@  ӲÇmll֮][TTTUUw^@NNIhh_]]@ puu}ԩSO]A6aB?~|}}=ٹiӦ &؄wwwhD7&&2$$80H`aa陝Mֶ~z{{h|1cƏ?œL&[xrC8θq-ZoGx'F ҴbE /=8@y '8@y5?r 1COv/3/\x:xJ&& %KO{l\c?wɓE6ϒ/(o8B'8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@y_~Q(ڵk}}5TGκԆ{W WH.8r '8@y{ڷoؿ?卨   WSRRꨬO3' RRRRSS P[YY^}7bX,...:N >ҧfUUܽ{WMlD%1baOM%K,[l`0Ο??gkk}]UDbffvu-$ظqcLLLoo/Еry\\ĉ7lѡqjěg͚f؆Az'R9mڴ'N`Օx ޞhmm-((d%''*J-׮]W[[͛w^LWjC|@C ƉY|yuuk8ڴZ<ӵkX, vHrI._a믿~퍐_?ɼqp0] f͚o{-Imx>O<i'C>-%%E.d^:33ҥK^g#8--- bƌ"ihh$w ^3gΜ9s씦8D#gД{P(RSS9۷џdW```VVVZZŋiΎdድ'O?TH+++?SƉ*@uu5.ƴ :}=d2[ZZ5eee(r6mggwi _WWW'\]]ccc5B -..M ooﰰ0 '^gҥ555%%%...xQQQ"k֭秈˗(3f#ycvvvlD&-^_ֶ~z{{hTO111!!!^ĉ9yԩSmmm{=xpBW&sr M< *TRvtן:;O466,$COYY,d^x:੯O~@.Ws[K*xwF>$COzC*U?h߫PVPVp<>ys^+/ZZMjCQh--klܦPp@y Op< Op< Op< Op< Op< Op< Op< Op E"ݻx wXO,9dj_8JJJRRR-ad6%]z5==]ӫ:3-- Ut~ '8@`)7lѣݽs[XXxxx|gr\LCyL n|O6MPTWW ,VVVj+yzz>~XK]]]vvv>}7ٓw%&'!♾ ^`%?N45kcCC]4%Z3 0LTIբOƸ\NH$ΉnsdqLW< ͛g|1''~`@occcCgܸq;wLNNv_|W$)P@\' JKK0 411yw>TyLxJGEEEvvv+VϗH$K*mLjP6 1]i=ݾ}["(8mktU<0 %IK&qhjvXc<ya555xFo갰0DDVVV&M\lfeeK/gϞ<3>?av_TsΊcǎ6ڵk?SMaqxzQssscccAAUo711Jqqq.|DV^{{|oC??ܚ,//ɓ'GFF=Z *O>Y~=ymۄBaii~nݺmV/4MLvZrv#GX[[O2رc!!!l6[%Ddǎ333suu4\+k??i$%M} Sql#n Sql# }X}68OBmq4y '8qe)S40O ++ ʄњt! ba@77zYձ*Urx(S*Uo(kjPa'"7LFNNȇdp)3BMJ\^: 0WE&Sۏ'{znja1O߂&&tG/88D'$rTbH0@y '8@y '8@y '8@y '8@y '8@y '8@y '8@y 'H ?oTcLM]L *,P}>sR?&R#G=w\T '8@yA>ܹsO ۷o`Dpћ7oϝ;wӦMxIҥKvvvϏԔZ;gΜ)--NNN>>>|ȑ#ܨcǎM:sQ{{{R.dnn\QDFFN0!""ԩSeee62R6ݣyHHsf3߿׮]BOC 3f5ƴ~JNN~o{|DVVVֶDsYYY9r'!!ŋ+GKKm S~~_z%''|+**֬YCDFF`0V\I$2zjXX5kp_WR?$0//oÆ cjjظtҊzK P}¥Jr"dx 7W*)))ׯ׷nzmGl :YL/JRTjbbUcSS'66%99922211cɒ%EEExvݢ"{{{#H8JSx9--> r!O8qኊӧOϯWii1c<<ҥK˗/'T RD$xml#""JJJn+tvv޽{peeٛ7o񱱱ܴ 7$xiӦiommmbbЀյrJM444࣍b544|Rx#N>|ǎssskkkPH 3gNNN:{477Yxiܸqj73fwAAsqqqbbr9yO>]SZx>OJmٲ7ל>}mڴIӛ`,X '''::Xe0,;;{…{ݻwѢE2"xW㝝_xᅉ'+-[v9www?GMS$rKK/N5m_s83gin[[[K|D] 7clٲPe?ۉ'BٳgsrrȻ㪪={b*C&rߏ'zzznnn ٳ˗/'y۷o^RRpʕH[[[#'11n׮].\д_̙39|+W<~xQQQ[[[IIIRRG ?888x XQilla Simple API Documentation SourceForge.net Logo
    ATBase64BinaryOrDerived Member List

    This is the complete list of members for ATBase64BinaryOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATBase64BinaryOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const =0ATBase64BinaryOrDerivedpure virtual
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATBase64BinaryOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATBase64BinaryOrDerivedprotectedpure virtual
    getPrimitiveTypeName() const =0ATBase64BinaryOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATBase64BinaryOrDerivedpure virtual
    getTypeURI() const =0ATBase64BinaryOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__incl.png0000644001725400016040000012710113273140074021053 00000000000000PNG  IHDR\@bKGD IDATxy JE hE_PAQC;`.[n%h!"EA(`؂vݻw45E_PAQEhΝsqqYbmK~~޽{3,,ťG~~~u ~w?~-((4QQQ߯3ff#GΘ17c}>[Ԍt@QDR%$$ /^ H]]'5 KJJR'Oܹmmm"""nnnRRR߿xA`` GZl R]]}EWWH~~_ommMw >>VTT6rqqΥD!",,,***&&6ydWWגŸ?^XXѣgϖ իWޙ[\\|̙{LNN^\]]:;(Aϟ1c1cp,+""B{zAp̙6v#H!!!!!!$ Awﺸ陙upp066NHHmɱyRmeeGMMRKK˧O`lO>M;H$Zp `ggŋ>?]pAZo߶355 "}n_ E0S---A,X:::ڪutthO8אCݿ?>>RRRBCCKKKϝ;ֶsΉ'ƺ555vu֩SBCC[ZZZ[[&L+ބ >|@{e˖'.dddjkkZZZEEEK߿ť/^LLLtuu w^XXoxxxss3mczz޽(`0^|˗  `(ggg}}}{{ׯ_j*D_vsrrسW[NBBbnnn%%%^^^bbbe,Y Hw P(׮3g͛+Ahw|xffի544̙諥%//: ---222Wm`d-}dgggJJƍ)mii_gS>}2339r8 󋊊VTT(++ܭbҤIcƌ]t9Fsqq͟?hܸqw pv}fC(##{F@(?FP ֬YchhHrܹGG^_200ojjਫ;v, }nقбch%6ٹk׮]vĞJ[[3g쾬]+h/T*533sܹp-- &L4P|Ν;߾}+''Gۡ}~555"Z]]MmO+++kllmm횚ljjjhhhhhK||07lJCC#,,޽MOO'$ uuuѮqƍ%%%5557otwwy+v}}'OvQWWgaa_zTUUmmm]9s %%%=/_=ܟ?|>7gϚ5'N*((Δn FVVv׮]3u^/^Ʀύ=G]\\0̂ ܸ+VhiiٳΝ "x<~gϞ&9F}}}=p -\pwD3g}&''cǎ5k r%%~iӦ-- MRRPωo7ݻG4`0| ",w6E',,qE_PAQE<PXXRq8&~Tc/_1"III{)5SmnáMHoXF2hA5..ٶԮ_@D`F~,-q͛>((HkhLZ`㹸X^RRBB݃##o]Rɉ51bܙ3]@o,D{{׃7n.)y22aٳe=</\8YP,CEEVEE=3qt N8Bz@3x6?EAIF͟?Q]}0/{y…G `ܹsPIEBkk͛_翨k_hO@;C(Ҵv^ZSJ\nfÉb$ (oUUn|S^TD"O&CL6c'y(v{&&NJNNz"iiCΠ(GRxzkOkjED'jhLQ9Rt TEז[_4/^,@Ccڡ`OPԖS͔X('r*+ flڴdҤQh@Qd+߿]^֭7BB<3UTUe>-4$%#488͛K*.8q$ڡ`p=tvnx ;)ˡh<v4h8kώ^8@P֓kEFPCZi>]^4bΊs98O"SklPrw**cj,(c_tE᫩Gݻ\Yy,ډ`PTiiUtG\\833USJjXEZ;wޚlf8|B`pQtv_v'3w7uTrGNNiswԆe70Ň"#o&$ttǡ ? IO:Zz9,3(w]XXѵkFZVj0_ 077~%VVsvH<|ɈhPQkأG-sHI GD)󻨡q[o* 7 7PQ}+2ַo-3v^6k¼y޳'ҥǁV&H ƁP?7`;0#%`6||\&*މ::}|-0EA>|v…\   ~)(H_>4 jZZ h_tW^q{{7m҃u&NN\v( 騼c`kמM*lkh8Ơ˙~D 1(CᄒI޼*;{4(]-^,+'7bٲh`(_im팎uDs!cc]O߱#w0m=`t uv""na0//+ayu㬬'?>|X9~>ڏBv-C) }b͚8.QԨg-ᥬ<Dq̙P\\AJ#`ʙX@Njo'Zv"~ ⿪6mJ(.~ ̰C W rhhLG;`0۷ؑFR_~J^PgOHf:%1h'WMP L8C ؑNB;Ea{yxhmܸa50LpkiM~s,Yӕ %7E f׮tA.f6bf#_$))юз|rvS]su]HR;;8*`VakTIkƶugݸq4 '! iÆ <}:_JjCRR c.W˗uk|夫; 8CD"%%%u%=zf}5o۸1K__1}ë(RԈsIUu\\ۨQBh'#v0$''n774􌍋s;Wީ#è(67wxy]Sל^`0SR!&ƟV}؈GYgjkЎؼ(ɔ}V411r ډጊr崷kmD;Eᇕՙ'N6%/GGq޽ 4FBB/?  bK|.}0z#UU23יÔ]',,y?=*==}ٲeǾ{N\\/k*0f̘A7g#$MLLܹ H(((Mohјwnْv*O߮PWׄvоʇ7oК~1}=y ի5g#t} =ѵ#A޼yC @ܱYY7 m$)^@85}Lz{?72334iҏ?(JppZAAmmA3gJJJv6t;w\AFEہH$9RBBLJH$"`"##GqYYY!!;vЎt钢"77cbbzE1!!a…SLy`.\ ///** >zhFz+Wx{{wtt-t$̘1#Foj6>sҚȘ9t萙هf͚e* usssxx8 ͡׷rqqEDDp֞}QT "++JR{Dܼ1,, Ao߾D*@Ph[zmYYٴiv˷Çʞ>}:goo^ׯ'L@  /^왪WS?9Sټ9ixGE2eKư>EQFFFQQNAA!**{聋bgg/Z[[drQQ933>2eJ]]uNNJEJvuuz͛<ȑF B&{ERq8\}}=J}! O>/A z6H"FGR<8p#=BWW} &-t0yTڱϟ?~M3'm8-@lORT23Uk`_H?~lv46>%( [ &aaaWWrwwwږw)))u)999_~EJ$EDD8RRRvwi^#"""RPPP\\,##p›7orpp+!!D"c0eeeAzJIIl._<55>77w3Lw &t9[VUU5qDkyyySS>r"Ȕ)Sh`{}sSm+<RP{ժNzv(D"+ezz 类޴im'Ow(//v ӧO6fggbBmqq=B$''744899544L&'&&=z6nܘHRi;*$uuuX/9r$}ǷoJKK-t~}49A^~M+uyHo<11. ރAc~櫄 NF;ˠP(VZvm|||nnKYjOFFƧOl2p#]]]dddkk+˷nZUUUVVwԩ_`0/^lnn񼼼=y/_lllgŊo޼9? g;;lx={}'pdggٳgϞyzzVUU 9i֭[WQQqm۶"|߿o##v]zzidMu ©)S=|Xv&;f̘ER$%%#++ϯ xMJ=zTTTtѧO{O"O("""&&ubb'')S222z榫=R(99͛7իyxxH`gg'&&&))aÆ_O[JJJHHں?|$WN>cǎ_v-- _w IDAT>>5Ş>z۷ }P;.BZZ:6%$O< 8L$))'Nd?!ϯ… h^9WgSkAZȓJs";{ /)mԴ{j'TD0޽tqqA;@X%`0V+Wwt%EH$Ez)!at=UV-Z,3ېgSC㊈pwh>%>%)/ݕƠ )dhO>_2s;yC2?c3E*eKϢ"0hkOٹ3ٳhgŊII%jjrhg0x7薖6JEܹ[aa7l/G; q880N}LQ,*zx&Y6b@p]V_[**EF; ˠ0 89)X,qR1̰ݻjjjk_]}ֶmg3u* }ุ@JNN֨説ܺu+maBTW "#2Fjj:yxrq<<~|6 '(©_[7sѯ#0l1{Q$! /oG;`^n޺b]]ӆ nn8 / HIm q06V'D":D駮IG爎±chglٯ)ڕi.PA>u#n57//(ؼdɴU"ܢ0>p ))|uRKAcxsn_$11.rkcvZvLsŻw^P<A23/ZtӚD'mDDNW gl9sUΝi$+.Z4eÆ?^(wmڔ=u{wyyN44Ϟ]b@Wӧ5h'bGX~x 1QQ<|jCCh}hQ͛,oK##\# fɌ͌%gR,Eٳaa7v4a(bjo6{lafыHr;M- G;kUSWn] J,EqϞ %1sДbƒcb\BCxND_ yk::KE; `0uuM'N䠝0(99nٱatvvH ?bAT1ɣ֯X1w˖d7vѣEl1-+F; `UE2ٳǣOǒJN\l'?$$.)y}ډXʕ6mJ_߽uA TjlݥK]dfv"4O:UԾ}Y>G**>$G^sp3X:oup߶-etqN>QQ(G"#oUU}C;둕xC(=[N\^ _~SJǦMzX,̃@PzuC{;qɒ#ha=Z22"۶]D;`=h~uEDpqY *Ӕ?Ehcsvyyp-O&re0#B[[ډX =tPPʕ2fQ+no'::j0XU7c))N;qb=?p{FD8X˗@;W@P܁vJP+$Bk9p8|\LOhGҥu&&3юzOL,A;+7!(hQZWyZ#H}#ut^aҤQh'b%khnڔCOD02&L0 ~jE1$d&p85GD8|INc&EEadi9[UUvd v)/?uwDwHn; +VE;kSWQT__hx syybրNQpyr ҨL>KxcǮbZZ)ǡc˗RS)hkO608v05n__[p- E1)龑<ƞ ^.]zLP;;{̙cЎΤ:8FؑF"J3}ActQ|SYY5~c߰ҒON9R83 +njtUZh^0y˃mfqLAbhQ|񢮮IWw#;VZZw3;{q/ \}||}.ttNt$$֭9s&hgLE1/ﹸ82ӦIgeE1Q`<<]{F .1pÇaBT7 ʸُLMƎ;~|ztXhfr%Ǫ "ٓRzp /᝝Ĩ(i`HM}u!;{|2g"kn(-ZXa=:u*oÆx77cǬY""2f8}Aƌep!1aĕ+Ǐ02:,E{d0#}P LfXNdoW"o+aEU^⍋so_#DŽٹ֭7/bA eq¼ C[[cDjUvvЎ3DE'b}]`z ػ!ٳQ͝+dɴ{3dbq[ I Cc+*VӍff*?HaM)l8[[5oWmB;ؾݨKR AEÇUVo|y,q"JEUP3ҺNǏ?)I Ȇh'T*UQq4cC͛Ϧ<^//Bclx8LɓG~qƍz?~tDDD;`"+" W>YX;V,9y͈hǡ˕I$r8ҥl═olӹ} oC; ` *ee3fi"K*+^>qo_O$}XVFņ?6™")-=>1"b8t|LZᰦ~OmlζtMNN xr#72eCٳgUTƝ9c塛QQ>AH$eЎCwVT|^Owl..󷫪EǎKβk--̘1:2҉iX33AvFJO_E619YQ8YbLjﻚFiiXCU~i9 0jq2H "2cŋ)hgbƍy1b^a˖sx޺uqk,8q$qJoRe巤$wzw^MMI<<=jffư` #(2 C*>>t2&UUffM U[ɣΜG; @cOK߾X",qnNf#8Y^[Z:ں$${yO?ƺ#v& w˂юhExfq8{QlkBd'T*'. h`0;wl٢tlqv'݋"mY<;gOŋVΞy უh}!`***Z-??ݻ3B; C0ǀHD䗷2T=z-,((fbyt o޼OJOO_lY޽Cv ֬Y|3ê.vܹ,D"gȑ>>>D"A )//?bĈ رvԥKǏӫ^_>a CȘ9޽{T*544TBB"55222y/999WZUSS ȗ/_TjdddLLL:tÇeeefڲe JEں9<<A PA[[[BBB"""p8\kkkϾh-yfHY!bhh|E.tuu_~]\\5͚:H$M;Yeddw(vvvx񢵵L&u$33>2eJ]]uNNJEJvuuz͛<ȑF B&{E(^ T*6̛7oh]u&Ls/T*'cl.u12qޟ>F``t>%lL欀wH=Lj]]]ݻwJJJ;(**''ׯh[[[D@BTVVJJJb0 {vAx|,\͛ L8bʔ)555l+}}ӧKV+,q !OGE9 P]]i&ii'OtP^^>p >>>Om@qq_?NP~u>/N y5j f:euk8E..ӂ߿0a?et˸q zBZjڵ񹹹.]BdժU>>>>}޲etvvvuuqrr#Ғabb˗/ߺukUUUYYީS~^x _v HxxXwݺu߶mpƩSvܵ뢃| u =>HRr={{GJjCZájw)͘1JIJJ644tuuٳGVV_MM-.."J=zѣO>mmm-""KD"Q]]QDDDLLǏW{(''9eʔ}sHx[ ;vڵk8/bH)h荻waSZ[;Ⱀb'O ay/]3Olȋ"J(=z=C,o?7"A:`/^ԺE]v>gvt6n`0۷^--UϞ-rp&c69}L@YtssP ) v:rsqx19 ";P$ٕx<8}=cv &%!!;bi9B$X//;VLWW|ChgtE9}֛bbhglznWy۶\hǡի5MLN޿^UU,('s"̜9,98"mߞ͍v*<.$"ۃk쩦+b Bžɗ.=F; ]-vYee=A}AQdC$#f(} #۶Z[P,CocƈE6tղӧ`K`v8;+)yv!r8;/HH(ijYEvsS]./O0q8 WN^89Gbوb..!3$XF~`Ғ{Ӕ3l<#.n0V𙙏W=F^mʕ+E譩ƍOw|&K-]:~}[wg3g rDīׯDJJaASUU7nc"O֤0A12YYOΘEfAQd+kܽWX)޳gϞ-x$,ko?QCT=JIm q06Vy?\*/h`0p̘WYVemZ]ݐvhQ y3 >^} 6 5'k3+)ٹi+ИOk44ؑ6V <EL̗/-h2GjiMv@/PD}}IjZZSWDrbbGnn|RҚ\[[5..{)mٷ,3ܹN AVc!tsݻo?E; (lb˖d^^;2xD"96_ߤٳeDG;OD;㱶jwyz.>q"gwd ڹA\?.έ1v1I^^2"NEvʕC||\hg "|ƒ~~gϖ-,|옵[ݠuv}}mR/`ׇ{=Z4>իOQlO׷ =(,cdAuhgc]]ػsNTWx'mdeG^5-({׮t%%;,rr..[WC׬YcCBOA;崲sB^ EV^;e IDAT&,t[&D+7oc--ܻdHAs1ڬYc/^}G;JPYUWi,AK|[ "6:ڙo4N7jioݚb`p=6-BBp ȪBB ~mٺ 'ISPEŗLٳǣ)`#&oj^U PC 8}NNNh<<K \P6"ԩ([^߹Se>S=Q^M 7nl%TNĆdeG?^Umƒeщv!hєCRRe0x,:|&yg{PYL`E̝+vv];q\w7ڡؙƤm ϟq 9>lؠv!!Lp0kجVW/fTnn|T3qr:b+nmXE@R7MI I:;I;v؜UQWPH 0XX޹zK{ڡIL?*:/ Ux vE5\RIMh^M|񤤒C!!bb(rfgoP1iҨUW> v?cc3;n( zu##SP @Ro,Y˙mkJ KSJ=v̺Ƽy";v=)>YUUY}t._~էѹgO”1cP~!Toڶ|ff/^޽VVs֬YxkssWl" 8u*`*<}Z{ʔ??C< `y5zu#DY$pǎ޺@Ook,󐆱L s򞗕U{x,f|MLNȈdgo%XѴiҙ^V HNfHɓ6ᬲ 4(.((O[{2촣fM̆ Zk$$;B7,Z4e+#jkpNmm]nn$kinrm"S{mI;OO-FvZW״lYPa˸8MOl@D1Tjh8u*U9R0*ʩ}[45 E&ȡˇvdf[`2 0g\u;1k<8}gio;ccJS޽wϻ1BʕOkh?JI ;:Am9zgŋ5IW>\en~᫛7_"sʥ~l47?qaځ2QQ߇@$-FEAnnazڪobc2纆;vϙ3ܷohg雀.Lz(2sn99iqѩo˖qz9+"  \rii3F3>TTdsroݚbcs gb9BBxUL{'z{EWEϟ[ZKN^w35+Pe#1̉vʘ÷ŋ7!!ވ{fo Lt FPY E&B"QBC Щ\56 b9bc]yUDL1 UU\5$Gf:y&"fb"3Nq,]:"ky Tl5NƖP"*B6=*JR$"dM3}_c1sgFu,sg39VZkhe޼s7GDPPY/:2{VP xÒ!Llܸ}ypp0Yb܆ 7X)S23(%$E>̙SqBi] -/uuY>ݢ}"lC=ڏ klZl8bҥ!6 NQ=+8LA_߈xLLNKSV!))s >do!xɓn$aKtC 'M2+4BPq TxG޽v򤻑 K̞[ kE45:'yed.\XU̇iL1B ,"_7o8L1vcLf Ҁk](yi'N<>xAA%tcmMx0B ,"_pS33ɜm6=w؂#zİad8:Z_,چ۷"Dd6_v ('O8XUUx%kkۧs>#G NV02R}h0ի!_MC_RMMǏpU0F>~ۤӑUB ɓnwyݺu8ȿ̝;A(QQGy-`v0qׯ/pcI7/PI/em A` SYYvmә7o|deř,..Zn{htȑn;S,J-ʊ_xʔcG<硒6VPWH7@c.\lH\lǓ'lbҹNNN3~dXزGl{iidl}oi˯~-S3)/il\p(,, wr;׊SmB @ }}#"V`j7qwdjUmm$WPhyIxfN5J_ꪚ̞=9&#')͚C%{:ij[bs32PxhhhyFp!~Μau:?qHO ]k}{zx Ϟ(. pt4.B ̀FgDGp'n>\9x<ƍ'. mm'慅~-Oʪ$<ρFg>7y)#kZ*tXwwk48pBA$$7@X!31"=Y67X[ƮWSup8Λvv+W߸Vff1OA 'Nqoe@"ox*'3xٲ1j&J?vl^_=uӧ}¸ ::114##COOŅ@%=Wă7N6Lw<0832 LF7:7bB#EEN?v̕ۓ!//wޞzɄ \u! zzzɩ2@ED}p'OO?;(Ff5փLQBOWNJH{Q٥/_~THGpܻwOMMp5}}:~I###IIIkk븸8|bbb***mR\\\TT ]|왦WVp/^422RPPػwիWuttT*uJJJׯRh(zuu5h4YYjkk,X //A 2 ~~~fffy$IHHHZZ+IGͰ@ ",,Ȩ_~nݺUSSSAAa]G ȤI_Y(gzxgw!!OT>2QQUTp;tܸ}t:#-Yri7Wɩb(++SRRz- gϞUTT,))y:ׯ自E]]ТECCC?DŋW^m_zҤIϟ?/--eXZWW pvv;{,A}͚56lرcɓ@$55UDDAyedd 8p۶m할t:"jۆJOO߿rJtfRP__߹ٳkjjΟ?:pqFFFffajof5N|ʩ9wƺ\mODDo]]5@"֔jj^#ݾlQQWW711ٶmz8$$˗ŖzK0 fͪFŌ &iiiP(hCCRX33T nݺM6H888u BVVZ%22L&W^|6! $$$>}VFN 22-ӧkՙqrjgHCC gN_I@yy^Ccݽ{y%|5!!EO}S?`-!##lٲ?Xof_nz- <8$$Y__OReeeV144"$D"uF)((PQQAA}fnn...?uTssɓ'i4.ZL&W2vؿ!&AOOE1a]hUUU/,,Cf̘lpsX7e1,1pÇ爉 ZuWeeŇ сۊ| 4B!,́Sg"%%E6oɓ55&ggק:u coW<Ê //fjjj޼yrrr,,,ƏE%%%VSSSk%::̙3ׯ_c>11 |wYR;˪uzzݻYVV11넅G^YRRgx$';q)fv`„T@"ܹV[8oB >GG9CLL1N/ZڵkO>,ZhQQQeee1116l`HKK Bjjjںu+QQQӦMc"+gΜqŒ {{ éS F"lllBBB$۷oYYY[l7o^f 6lذ|fCw}}=IjQww͛7geeeeeZGձAEE z`jj0lz쀽d^ n=Z*46XY\rbeOĉ A;wTWWS(;vHHHX[[{>|_~NruuE7P:)ԡ" B%뺺 -[ u%vBAHH߿jwww999k655uI__ӦMA 4MJJ۷o蟝%u)OUUUZZյIu&piOL\KQQʇ@!!$&O6e;oKK+صk&3N;C&1mGt܋ /-5mwXyyj5G!(bAs3 ienn֦&(̝;W[[[BBdcxzOIܬ×~>DQQ5۳I\\;NWĉӋ~a)[n Ɵ6~ԆGb=UDUUziDDDrr9s\]]?~9 AF p`# ]9{#9n./,LƲSHp(x.^|5}do)( Tسuq6l}t: VPWwo!:gy3} yÏSR!Y[xv&9\7ݐV]2^>#۷o^[^p*j$MRA8/))9bĈo'p LݳgO[QQQ>>>--- ora!Ą.\Xmzux@.8-Y2fW̹8v˗_Z[9혏ϳUTGE$$|QQY=SqMYvvgJmt&mÇO1AѱJ &yL&pO`Ȝkhj.Yr Cl_"@nnʚ|zt ?_TTtspF_E_/{ A IDATF89Njj@ۙ,`(v&m }}@:hxA־ٶnd`EA bc˟G'))W]}]H+u+=Ĭ;Hp}THhi.)_qfʉ69rJ`!++ӧ7SRR,--@A?PC6tN"QTTJ2r044lS&[,-u״R/VVWmvӧ.uсc _u(!! hlp#$<-y  SN=tP{JRĘhmm}SV:'f%H8 Ijvu ZZr11ј1ĝ;i\eݺCh\y oq 33++1 \7?ѡ 7wsZ ++}}'rJ {/_'&&fddl߾h:$-dddW\;~x3b|@ђ~uazܔM61 a -Y2fժCb.WQ; Xؑ#D˗%ςtg+*~ILvG|ȶmw Inׯ&#M{砪"JAAٳUUU%%%z޽:@d׮]222QQQݞblT*uȑI$Z[[8@&ŭ jN彽ntcS@[b& 7ڏ627SU :?MM5AȑǽiGkk$(FQ`3DQDqMnF zfl7!˧""$FLLfuuP[i8w㤥8( m&{CwY %8q㌪22 E8TVV xX>ʰBPs쑒d&7(ܻ磣#?kg>u_' O]zdL\V 0ITUYU 9ga˗_ZeB EE3gΰrKdeů__1y…BC8۸R@cb8rƌ1FO(ɉWWY3Ň3H$1-;+!!`Ao@<$׿r믛? c̀kquhX kkEL+DGbzEФUƋ01@ 9zʕ˗_nni!89͔HNٙ1c p8ý. ,QbuuCRR#Ϟ}!))GO2,3>)NI92{sHIjz"(*)Ia՚|X֭%øjʢjn4a,LKKkM\UUMYEQ_dh̜N ͛7q>F\TLlO¾k"G()IEF21ј5dl,j{PPwνH!%&rq`qWU )@"Ǐ7bիt:}QUń={̜9Я'ׯ%'rRd|y6h,X _xۋ]ܱc…#{A~~{>=Z.,L2Dի..=XEi@II[;mm_0wGhkkkkkcqqa'''^ ''Wct􇐐We+;9 qu~ew_}tb^H+ζ )X, K|^A_͛ɓ>Z?i!lC$}HKY?}>&fС:GZXlF;|Œ%OɁP 4Fyy9"=#Gꕗx(Wt|c^_:8hiqVGx~63&&;gf LWCC 6Ғڱc ٨[TT|8>_>eD3>{#99pժ 966&$uԩ)))'ݞ>S#G6~mBzv3EA j\\v~&&l WQvp`CAD<:ڰכ#"V+17qq+W??Ƕ Ŋqw8fd"''yFFQSSD"/mw}}KDEF&7S5Jyeg=zOPг? N/Z4+4$uoZ~ʕW9'mEѷ0ԔFihhC2CJJ:6/&fݘ1AA-,yxGG %8.0p֭6o{}$AAyy?})m#G}xvS2Y$&R461h4zH+WW+))n"O#;gIfW,-w}Of’%u=wڵ%-e&"mhhʂۊ;ۗTzZѣ?j-\7sSd0 䈏0k֐7r& ,,FGXbSFd"b2YQ^^7aLg}8))wh}6*^8~ цEtu7ovLKvr1_ff[o|'rߺ]Yq8ܡCsgi-g材Q46Vkjc#f5}R6thnnPaA `?jٳ))6^}' 07׼sǻnƌeL8pڵ9f0ݷo(9ތHM- V  9n)5 6EI t֭w y9!!ItxΘaQ[4yVVkk~S;H" P`O!5@GGAQQGZ[)V0 4ڟb ڃwYPPrzAA*+@4 ̙Al,<pJդD޼+<ӯcSS͌X ))=٧?뜝->} NHIY?~SͷV))kז[[Ιs/JI92'2݃z#@[XhC_QoZ[E:=4z<7TA؆@ i˧]a`:h (,ˁ""̘1xw..C7laL'`j4ZZZ|)òSnӏڸ0`3rzݴ#vOv<44>@y7PRILD}[^ s ’Vѯ22bGaQ/e}Lڒڞf Kي+x8S&&;m߹sfY/ӣF9t(8eg.^|.11c\?Ͼq#~ ϯCa&J3ъ>p8u֫TW7~.6| ta4#*ŋ&M2tհa;L ȑz+SS ;C,^<*00Sr@ZZu!lQԔSWMLŸ_.I$w/H$L4{ H$@;rl߽~AA% ssU߾U:9b=-M**2]gcI{!gX[Q,4DݻiŅ$ K|7zjcr(߽]W4c IL {FZQ6<0ÇSRb5(8P?~Ԥ|>݂{ =uN9͛7+6omaFff1ݻ>$qTZbܶmw٘+? <0#G굴 @E_=Ps'MJJtXCp<oF~~޽+8ر԰(*J޾(5c mkiɭYs+ZϟKR aE55Y ~_ddp{fN5#S%D"s EE%KF?{nPGcͷ \ XD YX}/$D<~|.%#}}e))6Bzo3 N6ddX,kyvv \;s)6ȱF8jbphuO%$t[X节̴*({W(ъ=|$=lXsCSh@RR2"b˗f|[+9?s&?궼n- gX8b*tffϼlϚ5GA5p1zzJ7;{""+ZZniD"Y,[r~7H$ѣ^.,, XEUU--9̨mwp˧< |yIrrҥc<?~?r)5,bŕd慍Tlz~kmDAg9߇KH`_"AXs'LV)?"e-|d~< m>}u3/v ~GX$%%ڿV ei;ƍ~y7dePRRTd0FNmUރz™"?rWctK^&+;9 quⷯ__{R`߿׮U1pМiӎ߸2͵޿Syǎ5qqqټKKY}_Q?4M[SW5U-#--f@ mcc?//={f:<ţnSVfB"xOɉ>=Wz큱c lJ; 9qqq[=={WcœfjlФW*+KϜ9xxnN]]fp뚚(66._^mNr41qFQ[[^WWٳO<?x2Y11=:"1&&d"Å.yyI MAzD3>{#99pժ 966@y>zrծ毁SI۷Guۚ&4K ;E!!|w=ʜ4ɤ2 hD9wכ#"V+171l`prh貸%K.Q( IJtV'cfYW^E}Eܟ߾0@~ ;А Ţ{ܖ%gCҦL1۠ǏKO8-;{a.̰a<߼["Ã-mmLn_ꚘcjВkJ!c8lX))ѧOlRl<Ȑ$H/QR"w,KZX@/AEJJ:6/&fݘ1AA-,yxGGc9岴Թys1\ݵk&FofQ""+}#%-cH$ǎ5,RTT͢Q|8>B LL4v'ݚ˗_A3r|YkR7s^߱cիIm˼]_B["O&+DE?pff::_2^)ܽzu|@c޼٢)Ǽduui3'O6F746R Wty~^|FrUUzg2LD~~-wv>)LRRH <ɓ><qͷjqw$#8;!!"JC=Zgjm7 -9c\gg_YY&/~3Iu;pϟn3NS̀{`K Y|1" NNEk}?jٳ))Vꫭ?;OWWmΧKJjΥ}k޵J/(DBBSSͮ'-"7QLb[Y) >.54$J{ $A8z *l^t֭w y9!!ۅׯsY: U~5Nz<5B!dnM҅0zz,ICz _E;;caaÇ?(w[ۼ1c 0x<M\ // w(xСw~~Ν3 *]\N7(YWj;+)I)+˔nE$#h,H$Qa³Q~ UU /ɊZZ8𜂂^#J޺uZ KKKmmm^:RR"nnnn_ݺzT޽'YOdF|G#55Ӧ?scD‘)ŋ/_JXHc#JWWW۷™"Wལ /V%%i^kaFJʷiӎnUUa^fȑ۷OF۸^~* q_i:^ /̙s5^'OЌRgqsFrAxu&w瓒r/ÁD"~Ι+Pڵp!L`gg,..a…#yyy?ĄTTee>.۲e*6zFsrrq@ggg (GX8eٔ)f׮y3#GSAC~G}NLsrAR*o#ƌ1xk{S g\/DdQ-yy:: :%e  IDATc pЌ׮- K`ܸzFƍ3{{CvpHch4zbb`Ι'BBn /F0uYrr~O]0&/'+?^2|8YTTI3@cY9NOIp,6oT3<'$4℅Ieeeed Fhjiu5݄>2IHDFZ3~*0/CrƎ5Ff ×Tvv`lv۫Wf϶$pmNAZfPRS ~~Ą8 琞GFQX8mɼ%4ۙbZZammqFب@ dtn~kk<蒘}߉ .+9aa"Hph&viirqNOOぴ"˗`FQQ5ڿ73/>khc11 pBA$$$x-KrssDpzzz'MrsqHAAejj NҼBu۠F]f}tQQϟDDH55h> #WhmC//ާ(kɊ7n)yy?ŸS.rӧZ;C@ >|`fOƚxI.żV+~hSi4z}=AVJV:PhAyFa~G"|Fiiy-[DNzyL5UUH=NNNNNNDEEVWW#W__ BSTTTPPP(_~<}TCC#...00PCCC^^ݽms-Aݻ7h aaa+W BRVpvvFDNN H~DEEكV\pP^^~Ϟ=W\֖ڲeKW¬> HUUEUFFxxxɩ655Wr%_NVTTB*2L;.\|X 377_hZߢiiiBVVVVVVہ@8B\\\yyy;|g3y ^X22wlm`#e7|2%%oߢ77k֬߿gddXXXlذ4iϷmfll9l0??j 9s… D" _xիȿپR!!E~ յ.88\WWwY@ee%Ca;v}j\D"DP:\: KMMP(֭۴iD9pZ@ }GFFJk/_ڞ[PU_~ڸq# vvvmv, kmmUVV~ {"O();x-#?~0?E1;Z3I!##lٲ?XfAA pvvv߾}C ;FFF3f誖l\\ܛ7onjVR E <8$$}IIIDpݕ0sssqq񔔔SM<P^^Ntuydr %%%eر7'!899ݼyA[n͞=K]=d&cV@9sfdddeeӧO͛yB  hS[bKKkuuc7oÆ݊NZPPIOO߽{wWt͛7/^_sskhZDDD FEE1NP<{m/>|_~NruuUTTDuuPXmm-Hܵk BBBmUWWɩ]ɳ&}}M6B@ VTu;P/_.**ZW=)VTT_HGy9vݻw%BN8LƂAeeeVUU"RWWghh8z~ 7n\kk+ Xpvyyyrrr]!,hrj_u56\VGg='511X=6m;w.(#8yFVJ& ! 2pe˖!|?^Cjkkk9ssE.b]0mPf̰"޸/IQ/&+IIyCu0Csss~~ŋ.]k- wZMM ڵk t:ɓFFFqqqݻYYY)...**jeePVV.>{LSSիW +p/)((ݻի:::h*~z%%%EESTkk#GxF>xP[[`yyyuuu??JЖii?PHHŋsҥm@,aaal<YhQQQ>>>hp]t/iA/_JUU(qw?ʤE(@abXcc㐐/_fn WcqiӦ77Z'11gsc2f d22<^x FC%1M !H˧}}eKK+Wy-**~+*JujCCϥpbێ0oajs {oݺѹW{7sC鼫W f@[aqq1 UUU6CLn_E?,+k!_.c-޿/lm? O?Jb>|VǏ[`\KJJ|||80z[zzzVUU/͛7oΝ zڵ{1a3wQUUeq]pCLn)SddûX6UU]R. "h?v?q-Z~}TTTYYYLL },AOOOŋ|}}W?~ӿs677/YWTT? fիsssSRR6mxы_u|ع6 \IEe]7W)eO`oo7$$$dҤI,?J{ b)ʎ;ttt$$$=ESls nݘoݺY__;p@]]͛73ťGϭm 7 m-88XKKK^^ۻRԑ#GJHH0ym _& JQQƺ;wP÷o**k22JӍ6]* @FyE۷ٹ$N?}4?n8.]n tuueddo/w+((x{{7773Sd~S(C%))۽`0삍~("lYĉx( %%_Ee z[g|)UQYcUA"KLgϞ]SSsy@UUÒϟWSS%XhR 5@ahNj75Qʚ*WÓttvm(2Iď<..i:ϰ;S]CˍY!h!S^^}l({#~xSS}uhmҥϛ7~ƍLnB uOZt ]/\xABB ǎņ%%'b,S8;;nܸk!蟷o޵k{lnnnSx89A9 5/^0`@e'pAuvzb¢ELuuMK(21R dddlܸˆ^^^g6W)ҥk;rm~jaRFF14iӦO.''xEyzzY))0砨(%t@ L-hziji̙$8uuM buuÏ5&&)p ]vqYy . Vt>>?>euuҢP4E Q42R7gH#RR bFF\! (Vy6?99tLz@ H_B f_] ѦUl<<~ mMQQ͛7y1 MH*{44?HGP##S:Zgd/uu7o|'$&f,!1IKK!] kZZc)cmmk S򲉎N/(v_MMTP?PQt/Ç[TW|ןVL0m#O=rĕ56Rbvv*j@ؤ>$/ ’%,--Yl uooH!%fg ^%%ODžZtҥc:B@.̚5X[[ĉ\)Jid3ꀀ;#F쎉ܸqrJJ='L`5YljvJS)(\XX?D"dHiӧ!!"*dgի=K7d֭nr ϟK:o4BK͚H!/#nO]O?}*0n(| ~VqO,1΋ @ _IT.,65Qc@/INwv>5}˗bDyS Ri$ 9W߀NGbc?^k|F.>bS z#Lv<:7tT͛)c]tL̺˗kZDqp~ݻ92B"r2YJݽvȓ?jM3 Y U w"f##WqY*CEnn9.FJxSWUOf-kQ}(a 9Fs˧_[[9վR_rۓ'׷ZyyWV(af?~p-7)sijԒ`MMŋ 4e$EA HokFa=z`‘V?ܟt:.NjS`„9?L17'DԔ}˂ŏ5gμ Kٝ HEƍG1HȾ~-֖N=-*>wehhMnn""OH@ >@4r 8x0f)i;_NwQM\L~K|ZZWZT G =k=X*4U~<ݵVTX!(H2ct I@^1kː/3s\d׮8},6;;{՝X mP47cҌuuYIP0Noǯ];VwMg̎~QIWgP՝zn<߱X?PTZZ;Re au'@;("g̰?tp !iO&iX 7~pp?O3\⒩ڜ~#GJKk- ֲrܹWŞ^^\[tTN⎙DfL&CC!A#;XӨ UwdZm @k+(VW7joRYGՊ?=Lc =Fa--|~=zT46fḊ? C˗{}{Z_A/ K#># ͚f:$݁#u.0xjb / Lݴ,kK ]}D*J̌=F*1%S9xBrLL&Jz~ a-gʑzhi 9Q],ryAOP,gq>[1 Y&#|w ~Ӡ1֭__gŵ`oNJ3̌)̰LϞ5!T.J4Z,Zin7Gl1@'oPDMh|( èb1֬b1YL&c˖EÜ/wh8OK=Z0xp7`2|F@uPD{xz&qGV^^KaݺR95$PdT'wxI*܁bL {'UR\&n `l m5Ecchn,((Zʊ­n&2$DUY)0bxk$c {{ Ņ+pu>J;;Ldrr2F&V 07dD2-F$S}}m-s75ՇC][~C336;rĉF'r&M222՗xiӦqMMMW>*o/^]B 5}XsN[]o?㘾?S (} (} (}t>(DDD [ee%5=_Ac&yE@ `O>6+h5 I2,,dWVV~N 0188XGϟ?r6e3gξ}bcc_zjkk۾}{RR̙3Gt߯%7.^X^^>6mO规fNA͛*?~\.LLLIHHV+qqq9v옺B[)ԝ0O?dgg'B.]DIx+++/JNovtt,((HJJrtt W\υ~˅ B2Lefccc###=.ᅬFjn)#lvffs>|L#xhaq ̛7oYXX>|X`ʔ)</66Ge`OwRw\.OII055?yN/ZZZn۶Ra"i޽K$<-//Wlb=* hoo겇C  V^`0;FN+!TPP@\.ꢷ$˗/L$5zʞwGffb, A-'OV3Euֲm۶)mll!}QUU TԩS|\w-,,_h/RBy1^: gxbAA;w^*TUsAI])}h˗/5${ŋgV奡4zAetP_xqĉe˖)\dX\XXHSOlmm~СCruuuqʕUV̞HoL&C־:JbccSRR.\E3zֿa$I>}zʕk L k гgϨtuhqvv~Gͯ§wS o ؼysLL̥Knݺuu*=$$d޽B$00ɓ\7nܿ?uhǎBP]. ]&Hz{{Y,ք TfWp8oV"ѫPy $IFEEyyyEFF"⬬bbbШE"QCCCmm{|~UUݻS2Ϝ9֦Wsʇ۷/,,LC.)/88Elڴ ~/u0g͚KdNN XN"DDDXXXL4i֭7{챵577_~X,"Iˮl6S ۻb zg2,%%x޼y%g3Nj!i?`Qݝ|3L ]o? @PGfffQQQIAQx$^aXPPƾR ÚtDJm.9SSSCC1}+YZ7z03EEEEN;gIENDB`XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.map0000644001725400016040000000046613273140075021727 00000000000000 XQilla-2.3.4/docs/simple-api/SchemaValidatorFilter_8hpp.html0000644001725400016040000001400013273140077020667 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SchemaValidatorFilter.hpp File Reference
    #include <vector>
    #include <xqilla/events/EventHandler.hpp>
    #include <xercesc/framework/XMLDocumentHandler.hpp>
    #include <xercesc/framework/XMLErrorReporter.hpp>
    #include <xercesc/validators/schema/SchemaValidator.hpp>
    #include <xercesc/validators/schema/identity/IdentityConstraintHandler.hpp>
    #include <xercesc/internal/XMLScanner.hpp>
    #include <xercesc/util/RefHash3KeysIdPool.hpp>
    Include dependency graph for SchemaValidatorFilter.hpp:

    Go to the source code of this file.

    Classes

    class  SchemaValidatorFilter
     The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache. More...
     

    Typedefs

    typedef XMLSSize_t XMLFileLoc
     

    Typedef Documentation

    typedef XMLSSize_t XMLFileLoc
    XQilla-2.3.4/docs/simple-api/structQueryPathTreeFilter_1_1StackEntry-members.html0000644001725400016040000001241713273140074025000 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    QueryPathTreeFilter::StackEntry Member List
    XQilla-2.3.4/docs/simple-api/ftv2link.png0000644001725400016040000000135213273140073015075 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMDocument-members.html0000644001725400016040000010321613273140074022332 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMDocument Member List

    This is the complete list of members for xercesc::DOMDocument, including all inherited members.

    adoptNode(DOMNode *source)=0xercesc::DOMDocumentpure virtual
    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    createAttribute(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    createCDATASection(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createComment(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createDocumentFragment()=0xercesc::DOMDocumentpure virtual
    createDocumentType(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)xercesc::DOMDocumentinlinevirtual
    createElement(const XMLCh *tagName)=0xercesc::DOMDocumentpure virtual
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0xercesc::DOMDocumentpure virtual
    createEntity(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createEntityReference(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createNotation(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createProcessingInstruction(const XMLCh *target, const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createTextNode(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMDocument()xercesc::DOMDocumentinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getDoctype() const =0xercesc::DOMDocumentpure virtual
    getDocumentElement() const =0xercesc::DOMDocumentpure virtual
    getDocumentURI() const =0xercesc::DOMDocumentpure virtual
    getDOMConfig() const =0xercesc::DOMDocumentpure virtual
    getElementById(const XMLCh *elementId) const =0xercesc::DOMDocumentpure virtual
    getElementsByTagName(const XMLCh *tagname) const =0xercesc::DOMDocumentpure virtual
    getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMDocumentpure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getImplementation() const =0xercesc::DOMDocumentpure virtual
    getInputEncoding() const =0xercesc::DOMDocumentpure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getStrictErrorChecking() const =0xercesc::DOMDocumentpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getXmlEncoding() const =0xercesc::DOMDocumentpure virtual
    getXmlStandalone() const =0xercesc::DOMDocumentpure virtual
    getXmlVersion() const =0xercesc::DOMDocumentpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    importNode(const DOMNode *importedNode, bool deep)=0xercesc::DOMDocumentpure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    normalizeDocument()=0xercesc::DOMDocumentpure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    renameNode(DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setDocumentURI(const XMLCh *documentURI)=0xercesc::DOMDocumentpure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setStrictErrorChecking(bool strictErrorChecking)=0xercesc::DOMDocumentpure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    setXmlStandalone(bool standalone)=0xercesc::DOMDocumentpure virtual
    setXmlVersion(const XMLCh *version)=0xercesc::DOMDocumentpure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMDocument()xercesc::DOMDocumentinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1URLInputSource.html0000644001725400016040000012605013273140077021433 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::URLInputSource Class Reference

    This class is a derivative of the standard InputSource class. More...

    #include <URLInputSource.hpp>

    Inheritance diagram for xercesc::URLInputSource:

    Public Member Functions

    Constructors
     URLInputSource (const XMLURL &urlId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor accepts an already built URL. More...
     
     URLInputSource (const XMLCh *const baseId, const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor takes a base system id URL and a possibly relative system id. More...
     
     URLInputSource (const XMLCh *const baseId, const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor is identical to the previous one, except that it also allows you to set a public id if you want to. More...
     
     URLInputSource (const XMLCh *const baseId, const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor is identical to the second constructor above, except that it accepts the relative system id part as a local code page string and just transcodes it internally, as a convenience. More...
     
     URLInputSource (const XMLCh *const baseId, const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This constructor is identical to the third constructor above, except that it accepts the relative and public ids as local code page strings and just transcodes them internally, as a convenience. More...
     
    Destructor
     ~URLInputSource ()
     
    Virtual methods
    BinInputStream * makeStream () const
     This method will return a binary input stream derivative that will parse from the source referred to by the URL system id. More...
     
    Getter methods
    const XMLURL & urlSrc () const
     This method will return a const reference to the URL member which contains the system id in pre-parsed URL form. More...
     
    - Public Member Functions inherited from xercesc::InputSource
    virtual ~InputSource ()
     Destructor. More...
     
    virtual const XMLCh * getEncoding () const
     An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. More...
     
    virtual const XMLCh * getPublicId () const
     Get the public identifier for this input source. More...
     
    virtual const XMLCh * getSystemId () const
     Get the system identifier for this input source. More...
     
    virtual bool getIssueFatalErrorIfNotFound () const
     Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
     
    MemoryManagergetMemoryManager () const
     
    virtual void setEncoding (const XMLCh *const encodingStr)
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setPublicId (const XMLCh *const publicId)
     Set the public identifier for this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)
     Set the system identifier for this input source. More...
     
    virtual void setIssueFatalErrorIfNotFound (const bool flag)
     Indicates if the parser should issue fatal error if this input source is not found. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::InputSource
     InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Default constructor. More...
     
     InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system identifier as XMLCh type. More...
     
     InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system and public identifiers. More...
     
     InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system identifier as string. More...
     
     InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system and public identifiers. More...
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This class is a derivative of the standard InputSource class.

    It provides for the parser access to data which is referenced via a URL, as apposed to a local file name. The URL can be provided via an XMLURL class, as a fully qualified system id, or a base system id and a system id which may be fully qualified or may be relative to the base.

    As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.

    Note that the parse system does not necessarily support URL based XML entities out of the box. Support for socket based access is optional and controlled by the per-platform support.

    Constructor & Destructor Documentation

    xercesc::URLInputSource::URLInputSource ( const XMLURL &  urlId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor accepts an already built URL.

    It is assumed that it is correct and it will be used as is. In this case, no public id accepted, but it can still be set via the parent class' setPublicId() method.

    Parameters
    urlIdThe URL which holds the system id of the entity to parse.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
    const XMLCh *const  systemId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor takes a base system id URL and a possibly relative system id.

    The relative part is parsed and, if it is indeed relative, it will be made relative to the passed base id. Otherwise, it will be taken as is.

    Parameters
    baseIdThe base system id URL which provides the base for any relative id part.
    systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
    const XMLCh *const  systemId,
    const XMLCh *const  publicId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor is identical to the previous one, except that it also allows you to set a public id if you want to.

    Parameters
    baseIdThe base system id URL which provides the base for any relative id part.
    systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
    publicIdThe optional public id to set. This is just passed on to the parent class for storage.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
    const char *const  systemId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor is identical to the second constructor above, except that it accepts the relative system id part as a local code page string and just transcodes it internally, as a convenience.

    Parameters
    baseIdThe base system id URL which provides the base for any relative id part.
    systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
    const char *const  systemId,
    const char *const  publicId,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )

    This constructor is identical to the third constructor above, except that it accepts the relative and public ids as local code page strings and just transcodes them internally, as a convenience.

    Parameters
    baseIdThe base system id URL which provides the base for any relative id part.
    systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
    publicIdThe optional public id to set. This is just passed on to the parent class for storage. on to the parent class for storage.
    managerPointer to the memory manager to be used to allocate objects.
    xercesc::URLInputSource::~URLInputSource ( )

    Member Function Documentation

    BinInputStream* xercesc::URLInputSource::makeStream ( ) const
    virtual

    This method will return a binary input stream derivative that will parse from the source referred to by the URL system id.

    Implements xercesc::InputSource.

    const XMLURL & xercesc::URLInputSource::urlSrc ( ) const
    inline

    This method will return a const reference to the URL member which contains the system id in pre-parsed URL form.

    If you just want the string format, call getSystemId() on the parent class.

    Returns
    A const reference to a URL object that contains the current system id set for this input source.

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp__dep__incl.png0000644001725400016040000007634013273140076022236 00000000000000PNG  IHDRuPVbKGD IDATxy*:ڲe  CC}!HԫW/mmmbYYY)Z_FDGÇ7mDtb ο>ȯA~+gg<}577!TϘ1c֬YS\\šZXr .[]jUk" F щA~4Գgӧo߶uZKb+@___Ǐ#N8WUUU]]]CC$00ݻw555x|ٔ͛7cǎhǗ߿1gj5 ȯTիܹs…;w^J|aEEE777FX2**j***k~P;u.\bΜ9̏,!!!--m+V6lXc4(OR [[[OCC![;vlǎSUU/wttܳgXPIIɓܹ3BAAkPEEi``BL&?z{_^|y Ԭ_~?<`ll6&po@ (++;x gΜ1qƍ7*o> ǵ!{{o߾\2::ERBBB]\\rgΜGk*f6%h„ ǏOIIho޼9}4)n8_ߡC矰0WWfW@CKII9y$CORWXh"RTT\p֭[彽W\yU++ɓ'߾}[Zyyy,k˖-&&&_;99L8;w.Drpp?~K6mɒ%Z`}|| I4..N F_~K^v߿r{kۻwo߾},_d:;;7–7 WD 5%,,dϵ{ѣGΝ mcEEEӧOJS ?2E+0O]]]qq;wƎan۶-''beee ZƇ[ Ƈ W@  !}TW7pFFDn?(22l'4OY@D"aaQQQ \ ꫪzPSd9%%&3o=FK~L1ᲲFLf6fKDDG!~3Naa!&ft4-D"H.4ڛ66ק*3g"/!6Ӝf]7d3`mb>1Hɵu@O?zxnJӧ- xw! RRU)cȐd2IYSBf ϛw \--%w~&6@J@~PV.JW={vn[Z)-eǹ'Orx< !dlٺW/m!*bbuRyyY%˫VUŬ['Z Q\]-,T,:b̨Νe$GG{V1>yٳxr8;jMPWcGl6!TVƈx5sfX߾nmU@A~tں7OZ[g#> D&.qeNn{Xee <_sqWiqq0X(m`|\޳g\I{7qNh޹M%%Ux1rNr'N6̬-U̝{:= ~G+)$mLJx!CL>tjfT R]nf֦q vW@;񰔔طѩ\9ݽNHb9 Gӧi۷ӗ,b$W cx]' M[[i˖˖]XS!J!ȯ7߿MMug2em׮i$ݻɵwYs…d2ArEQv>.e͜vk<=FG>}G 3m]@0@>|(y3Ք2SSqLؿ{wZ!&ohClc29<O`?z>.4hkT*yؾG \j55uaxaeeʚ+F:+@zzjnCC577Sm ;>Š?8UAAÇϯnH$ҦMqٳ֬a:%$>~n]C[24 $W@VܽqJrFF֢0a.X_9L]]-Oݒʯ$"HYY7=yW0 >jz*wӚJNne F ~Yqq[鱱i)) C!j^.WTTS(m&ϘѢ!Š7_BR8nZv&ofFwۯ];˗ٳOW ܣ W@KUTT'$d]IR#,Ǎ+Zuͷqq/_~y=H\.ٳuƚ-Y_._^`nג++kTTQSS2w9 \? {ݼ61=J7=vlȑV?(}8ѣ3 GZ,Z\BrrT$7iR lY>>'OؘB Ǐܷ/nٲ˙E6M Ep8~d]?d2l>ciy!V;|n;{o]Fcjj*OiC\k ˗5uY/y{<Դ@@~yCll,LL0r\hѹ?%&xj~**ԖwRWW9zz=/ȯ_Y]/0旎wNƜ9Ξy$rۅ Ϧm/1#`]0B_(uƟh)&&ameʔQ&:_VZ>|;w6|MUWz^c//;aYUU3kV?>og]X)ʕ7Ӿ}-MJȘ/6,XԮS7^221q<'QYZIIգEg0> $/MKN æN=RZʈ[ޖgɇtuU#DɁv[c% _"+0p!=%WĉWrccl9*8.m5NUSS? ;@ +E_h.99܂,q]ĵ+,r=R^ޏS)DF.+  \Wļ ~VQQɇ:EF.TS Hk0ǀ)SlqB! xyJo}ɒšybWDԇ%W\,1 ˫W&ڿ-!ļY|fVeehR hi0q}Ə11 L)bȑc?..Mxw}}Qav]|wQնTCŋO^جrC6mٺ_hׯow=z^O܀VV]w$:]zh+W߾~JrJJk?p ;޽w?~H4/kj-ݽoJJޚ5W  j݃ u oѱܷo~"#jJt,yx~2ߚp_@43..L&98/$Dmm^CCK om8f w[p>]N-.;PR0^,ѣ /5ʚ{-֭7ʪ^]ràA=D,N[[^^GOZpҥK1yy =%S;wG&wXx*7w$BWe/]<"╱q`]W<`d<3@BpРA˖-#:TWǭ)*tdϟ?߿_\\p"##ۯ o߾Ÿ0ddt퀨ZbѢII,Zt..nyN |_^.]<<<!W|77oHt8RJԯ}G"ll~Ot e':)ڪׯ )S]~]/_& ֶCDzJAATW+B~/_ʉE@~Ϟ=+...,,@V=zG0S$inYYY9k,MMMCC@&pf̘ D"r?S:88Fx?/4 _3 7o4'Ũ}] %{/%:ARM<<<<<<~Z !SIrr*ӧO{޸q={,--3221 `FM6FǚSNhǏGbk׮ɓ'9==fZSL Eկ!T^^.psh4ٳ ϟ?ƎKѢkވ#_xabbqF v޵8999WW={,co\'aIIIl6ð[ZZx$=txJr w:Ӯ)SxaG޹s'L=I`Oa_1 ss  /5pYD+ pUJ!7.F_baaaaa`u쿓)))!dddg~|jjj:::YYY@-Z=w\ѯ_?݂b"=TH5^ -i.eձvvvvvvׯ Zrwb@(ʤI]fmmuI)++Ì g4kЍ̵GWiaѣGnjѡP([>}200Ǘm۶.A9MMMsEEŋ/ ~pwwϟ?fjkkNbŊ#G6s{H >wAlg 0oo $ gyxx\~=22rСxaff'^f|PP4сH>ȯǏ%%%EEEIII'Nß###~z__uefffff/gh7=iҤ5k9Ư5Em۶-))ٳg6m Y,V]]lmmmPPBN B ;K,crrڵkOBQ8c OO[n>{,00pڴix/ Gs8͛7_xOWOYYLHAAvѩe!i D-?ץKo߾-//[timm- WQQ6m<֭[UUU{a|M444͛W]]-$:t"?)S+)) 8ƍۧޥK#GL6M[[ROXXX׮]555/^\[[+pa}!"_9ƍ卍WZGޠ'V_q ,h4ޓ_LԖBENg$#a,NN}v?ٳEEFFzzzu_pg+dSSU/g=Ç[[7xÆ?֭Eb0C1ܓ'OΝ;XLÇb9u6>$99X$WZDYYy-Y̞=ёP{؞23j;[U\cL_hmmcǎd!hްa\c,=IlOV01~>@$W33] rrHk.XwohD" it$-C%K\UTwMt + L21Kp:ɬ_*5UD' 0%N8wX6Jg;0{9~!xRMsb22;wX{OaQͽ|U{4:ɓOOf##CȻt:)+wKo_с1ȯիܙ3\\{W9sd*`6~|v &*5-`b􎘶?}pd!fsI'$ZRREt''G y zVH*x<,>ݸq&L8XYYsB Ƈ"dd(ѩS45?ׯ?:8R\,!akac-W_ͽr%i׬Yo pu IV?.U\q8 6Ged(rrTYYJ "0v"ǯ!2v{2'{ A~o G<(+c)bajJ ɯÆ팎N2eѱȯٳOCCx'OΙ:' "TT$j|dxdHᅲֶۙ3s\]- c0!)VUU&: !30P=|mWUWljys@|~~s[gDtPBI|U"9"o&MOt," ȡә_QQٹݻkA3BRrUUUA"k׮0sjW;ܹINut QZ$5rrTMtbW']qq0#qs s瞩ϝ;la t&D_eeuu\ $3={긹޿?nޒu`_]HcqA`d).S' l~.uss NJhNt,"J{],`l++M_J~t4bq$2m0lYppצH`8|.#G|PiC3bp˯JJD>\&M:e]wcE_;NMMŋ/X\\�BtPt()=Ct eРvvxq>ѱ"ȯԩ'O>f]tDnp FR5>ܩ~*,q>8Zh kĉ_̞=tl{5Datiy87>Lt ǎ$:_|T]]5kx{RP%:(F3$ld#Ґ_B :-^|!?XXD \*|\..{޽+ ztݜ9\@Rt/0i_54T Lt "xX|qLpi' )ry!*U(K/**$amUl+NNf WW|F@LL%Lk@t:SJ&oBq8<4=J?@D mj֥K/M,-/4t.A tU⦨(7}రG9 t|#Zql6nB'}}U@aV]͔LJ%?"q MNHt,/,4х ;wwPUU :(@MMÓ_9.aʄ 6Ǐ?:N ǎ%FG驮];g<\ @K1L$5CRs}߂N..{>3#^=|ABB^pĉd!Y!i:~pzǎ%B~A~mݿu@|jjmӧ]\zC3BsUzo[xV^􉎅x_ßrs`Bng^ߕotz-aT?lnXأ}xɯ?.))!*qq\\am-V˫|nWڨ}ONNn{=ŋ,VQPzd޾} %$H;wbd1566nIɪZ2$="H$ ׮Ht8DRp!m:?Jń l-B٨(W {٧ffk⥦ea6$$@p"""NJWjEFFzzz *.)@ g9lEԩS[>PUU+7zy ~Y~mllhkk{_mEH$ǏB8o/m]Kzkumm'1=a_OЖ-[H$Ν;[g+>?tԎfzRсŋSSS>b Pnnf3+/jժf OAA!""իW^^^ӦMP|-܁Ϟ=+/7!:0FFF y-JTU*+Ko~ { !/}]VHHy<^YYY3+/AAANNNaaa?{URRw^77Ӑkmr1_OPFFݻꚝmjj*MhJK5߾U(ae===lѢ3 s}G B B1o޼ߊC='((HKKkƌQQQK,nPPPxx8r֬YDpႅݻfWXb 6}  ХKLMM{LLLvߐ333mm퀀%pg ٳTIIiȐ!/_ 7HnoƵ 4h߄% ›7o7-=1_O˗ bnn^P`s|{'66ںSNݻw?wpw#C˫kj ՄU89sׯ':ԟl!qqqrrr{Ǘkhg.,,<>o߾UTTZ[[WׇbOo"==/abb"paTkMMMO>/|O;kb7;/66V`m?!y GWW=zΝli'a/^R~!k|s{\FFf޽<Ns\*mگC[_ozdq㍁ϟˈ6>\]]}e_vڕ+W6(&++=r>} z쉿8q"BHMMMGG'++~d[[ۚo߾q=zMLL AKU]]]B{… [&7&P`(5˗/}kmmZw;jǎ+6<#(ʤI]VZZ#0N َz"._p455I$RB| oN`﨩%&&xpذa?/Ϳ ;B[[INN'u5ZKKҥDB_˯y{{gdo+όZ_mmԩSWXzȑf*_m۶ \Gl6[AAAGGB?}d``5WTTx!˗C,_%{@_l[BaddTS.]4۷w߽{Zw@kkqȡC l]zc\.7""b߾}e˖^x_ß6׸wjkky<ޕ+WǍi+l]>;@OTŋl~S+Z~UTT1c[rss={8m4~bXuuuAAA!:^u233333Z жmے|}}={iӦ-##~H8iҤ5k9<oً/tRBBBlllª-K,crrڵkOB1k֬ŋ߼y3//ӧO1cܿj VXSRRr 6utTHkko%{{{yf___Bَz>~>>>;'''--M` IDATT4k;$iĈQQQ4NFFFAYzW:\/n:..@:\1:ԂgƍƫV0f:TQQ/o>uu.]9rdڴi O0@}}}iӦ?皟?e}}}%%޸qVyyҥKP!Guh4Ƽy󪫫<اO: î_W^^`oHXXX׮]555/^\[[+pa{Ͽݻwa[K`gϞ=&&&;w`yyy_"^=z:9#FocժUX{qs :qDDDCVV<&&)64&m#nrǧN=Bt57>C5sTS:>6񋾵kz{{?!"W{ա-~ǿT_wPx/*L&377ɓs%:АV[QQmdNt ٹŋ56QVV?~Kq/_0`َ-_K"{VwZ;4;!df# VH B]Qނg2f#FVW@:WŠ2׆dd('x \MB`X,6a1YSSbi4fmmũ5Ʀ+ё]z2dii@t g>ͱog?JzzzzzzMǐ&/odfX)1HMa< 3k6:{TCP._ V,^ t(j@FFaZrN&&wxJή:|YNT[[[QOzzuuc1iYsZ]3ѱ/Trhs瞾s'dd(l6Ku//ɓiR=EE } 32}}#:U]/h1gK뛶nԩ Bdҗ/ eoXأc`vKG$ Ep!i iY` At sgc^,7R6nHt PTy(?--e@Dam?ڵcI0BJ%{6uޔɔ~3iarEw>{vƍT dm=[ׯ_+.(;ׯB!1e TTT?y޽Lijjknd2) >|(qru2k.D"rr ̈́XڋʚAL&ǯk/YkF]L"RSttTpxYwPtr2wutr;g<ݺ5T [pކ;ゴWŋ/Vl_Nkk}ѩE׏kIႂwi_RmmZc`p"'N$}v3~70 3@ff!EH /_~e`z}Nog%$d%&g0Xc[npE"" 0M~~C\E<2lluw'B~Enn{\L&o4/wډ:=bq^ʽwŕ殮νcDMVW=px{93@څڀVu!&$UU)SddsGGGGaP]5?qؾSS NH:qajjAu5KGGYQSh,2UVנ0KK" p? -^쬢_aؑ#v=h۶-W2'$d=x𾶶woCW^VV@TCB|Daڱ~~CE \llҥ CC45[$d{wے.]ԇ 3su6LV;@kݾ}^&':1p!/GlD"|_[fɤSJnL(IfО#F֖qq'6Ο")ôi?^ӣ6ѱז*/?tZڗQGŠYZpj+n-%:al|Hc2ȯm}ԓE];FwSDǿfd`{, g0olla9bD=u 1vDY8;8SD (L@j55uOǿ޵c~Մ v8p@ءCyInzլ 6mgOt8^Ώϊ]yО..ܬa ~Y#Gebʁ7vsMt,BMDpV0ŋO#$yg6dfn1DܤIT%:*9EUV<~޽w4Z-x`x LvLIӉD:xǎ[[$q:_C'hq\\Ǐ;n䣤 ꯿8цX%jЈ=~#B8>DǕ+Ɂ[n78񠾾 C~&1**+2t&<H3?p{<'O>޹Sr! xM@j/55?6ݻEENN殮Ç[t,Gttں޽ڲe cqXd\E ]CIB»{޽~/+Kj9vl]]Cܼv³olEĉ Nt B|Z^TT!PZY Y  NgEF.$:"ICĐ_ۑL@j,ի{ݾ^\\i`idј}s@c(߿ml$c ȯK&h5qJJ>񴮮::D@+]bݺo7ÕB7ڻӀ&7 DvdEQP0RQp*KV[R[V E@KP@e5,* Pe kǴyL Y;s273.8dm ]Đ_A P[CC{f㌌K0<-PRBY Yw墢](w_W9QJDh66#axZ,[ݿ㏕"gyj__"*?]-*֜4ɁJ9wtYϵGv*š?[[C@~+_=H[j9+ VQ(VT꨹sF;4..6?@TVt}+ԤEuuQů_@TT2eOJg&swWWwC~Ňc:Pg>>M}>}޽2_+nԳE|xfVD0}g{gPӦzy9m`X6=5sQ QS:~'ȯ  P'|1C|})3g 6Ѐhn3&rxǢ~bZڃ;wH?A~UPB*ZZ: uwQ{~wpۿ|ܿb\I)O_"AիEϞ66֝>݉JL椧ӂC ;uǍ 嗾x_ Aq^^D?~J=Ѐ(,|1g._fw,j$,,ʕ;( с(ij~4#4+I[[7 O $|~Ս[DddD߻C C~UPPB^Bm15՛:ՑJL Ǡرaa3?x ޱ7 w, !<<vT*e\WsxɓFN֟;wUut0b(@!7n<(qqWK0<{|}tv>p`)ށIŻv5ͯUUU_5;|iE9@pF"3tPi0%%%%%Et:Ghiبܬbo45ȔB *,8t)๑!޻g>jT Xޢ9JM>}($ekˀ:}tAAW':Hw;8_Ҳ+BxG1cl!"<7jh&LSDQJfhll3fNRRRAAҥK]N[455}3f̶m6mڄO?4""b6ww;wDEEb.Ppmgg:u#ށ(7={˗111iiiaaaxxj)))I!T^^.M2eǎ MR}ْ%KJX'&]$)0 ୳1Lggk׏7baoN<fnoo:tweDv@£F544م>~ǎ$I0-[~W_.޽~رcŶTo߉9ZZ2008rHcc#)S^xm<NNNX'w(vw(+]wl6) onn>vB`իW#^~`0B/f0GE544OPtzQQф BCC|>𚚚z<88?|Nwvv[+ѽ{.Z˗t:}ر|>Ŋ!!!uuuwuΜ9 ٳoYYY~~}dd؉\_1]v `{͛7=366]P.ޝ9s7._, .PW}Ϟx k׬ @R_UU%xK =z,55ҥKةUC/%yREWcaaqu>?k֬("|>ba3Ǐsl:B9_ ȑ#SSSbBbfX$355^ll=2W4͍777[[[W5++c?1 6A؉+Ǜ?>DZl`"Az̜kjj\Dwg[&]>5)ZǗj|/s8ٙD"%$$`E0B,xĉ>سK쉱Ņ寮|!pԆ`<F drYYٌ3ƍ'6}}}¯x{G!KKK{Gggg}}=DԈ*KKK~i*sڵkKJJ6l GmH%nܸq̙4lÇ{CGGǾcC.@aꄩ.cDzzGGGVx„ ۷o۶m۲埑Epee `X$@sc ~m؟ΝKNNz<0=v[WWŋ 9B>>>_}$}2*++woPmmM?eʔu ~v ޹s~Ĩž iV'Lvlׯ_rqq mmm9riӮ^m۶!̘LfbRĴb_b[|v/_…7吐#F\xٳg999'N/D?`ff_zʕ+BVۉQxThK*`cc\__/<뵵 "Y666G 433mNH~ }]C{㿾Ǐ'&& P,d2{D ZLֶ\j-=qIDATi!ܹzSB300Xn$[.Б#7 ҟ7o ށׯ= fffK2UZIt&%$}n+ p (&榦&i xTWb^fc+@%$wuW;R 9rƲe&&zxTZߔw͛ncyL&ټn.6dl^w7f$sCjnD$bKͩ;MM6L; e{WKKK ŋ :;rۢI7|B=ǎ~Ʀaii NIIQf`bD*z*+/6{ȍ E!ܨCԴ H$Z&s@z u4xO\.e;BNI"ɩ͛>;[㽥-ww  ÒHɓ);9YM?)sJ*11?_Au,&flZgi9PKmxxtwszL>;o޴͞Gt yXXѕr;MM= 8}ziNĦ&ձfMlzz Eih}}W˗ŕr8<Vyn4ZIV?v__7Ƌ=I$VzWC=.ObsP0ޱ(g'O^L EQQ5 '':l |T(_UD[[l6W0ESTT_JdcnbwC}LRz)J]+~m/ePf]-Zta$1)ib:s͉YY[7;֝ 6ǵ..6˖y.\8NG|O`CCdn\HNys$ xB?Of?~~`.WR7Vr£:CCɓGWRYfԽ'Y2 ˛:uЃEqy\ܹn|=z~fnn;;DGhkqV1A~UKSG! &9$%m1*mϟ0axHh%3fKڳo\’HD33}'G)II[$ggjw, ? :fQQ˖y#:޽r夝;½bA~Unn;\ KTﯥ֭2$={zkh,Fw7뇺VIrqٹs'Ēqqkm͝2e׈n,''ߍb9/[9y>g0 *}|F-BUڱ/$?ZJGryWh׮UT66֝>݉JLǣxF+ & iPcc5kb~uO&!!o۶n}mk w{!Źv8>>֭2;AAA'=RU̚uPh͸D%#㼼 8~0*2k T 9vVK)bqnM9s^x>pfs'M=}STTޱ௲Mb3F/[ "WW]4q#@V%˿57wܾϽmm#FXP*u#6'%m;3gہKoy>7KK6fs^-ϻ}`"իȯJf͚a&0$1&fVhW++ߘMHROwwt%+Ɇ lmccרGvo>XQWzo׷NlY.pk@~U5֝@=w x.#$=*2YÎJ̙ TU5\j!x#??tرyy׏<?'<>>eGH$kk#R}_UWK32J333XX{;㳲&b==wmDs5q'rjk[ 3FCj dr *K._z2hȹsݼGY\./*^_fJd|$˗~eW w)PS ȯ}߻W@RTޡ#-͉'*<˗SDڵp2Oc;y/^4b ^6EU@~DCC{f㌌7wuQT*ehku=..{ժ.@駧ꬬp.K3o1UPTǵTG| Fbco=~J>q ȯkhF[[s$*lf&%(t^L ƮX1 j 欬'4ZIvS.GXa..6x&[W"/٢E?r;hogW9%%]򫪁*E]],DTzzj1<*l`Xԩӧ\IA~U5_eAN8PglxZgջ!$$V.<ܰ+˄6(0pBPDu+ ȯe͛e4ZIV~~UgxZ(@O7zWUUn:;Y99.֝ .vii-vGc+WUUtQ]]{=L;:LΖ-3׭W sȯ*߻W@RT)BOYY[䤧SpKC}j />~pqW͛y yLDA~U5_Շ`xZdʔT*eTG?RW ?{A}} ٢`8AK'@}ГBmm2E,<Ov[ry732J WR@A~U5_F{^u<[dm2{wU@~=pc:Pg>>eD Pճf<|xقcfƺPWUŋFlԼ'<!?fRߖL Pxy~$~._@_nKI)8y2㏧̘1j Iv޼ O[`t z==)H>׮}4X*+,(uj6y<5k)_j w"6=HgԌ P`5-^c\uØOA} ]_U Woi1c̝6sh++\3Ve_b֔k׊&A} cV5J:` ȯ57w=f0;<;LNXXҹs;6:zKG&~lǏ>-ȯƦ(LDXDjBݺuk# aX_>auwWr~Hѡw^L,Vm͛8 ePMM͛===wAP^p8^CCC ) 񵴦 $>җu "ĉ+\RRR((DHW@ >ȯ :tǹsp @ TTT=EXEEǧ;J{PCU"cƌIJJ*((Xti``ki%-LnݺUWDDDL6-::sԨQuuu?+x-LFEE) \Jٳ_|𔈈uKKʕ+MMMCCCB!!!x߾}'",,f[YY577#GcSց6rH33M61L`s^~.\pqq6lةSn7==hϞ=my<Ç===333>c/^XZZ͚JxNNN :uꔝoߎzo}b<B())MSSSo3Ϟ=Αj;jll,//ݻhѢ/_cdž+Vՙ߹sX !6!)X{[VVooo"3gμqF}}~W^hhh~sa0gϞE544Vo-)) ZTHIG^tkrJ ɫWG~ZxJ# cxbqѷ.lqG0ٵ؀IvPpz{~mjjB577}bHbT{{{l Gttt|Ffkkk,_E :{t:nRRgo`s655ijj<~YYY|> =[}*-~-B f8qDd>~fgg OF#=v_ݺ)b,ak_0~;###ssRw쬯rÇǦ <!)vUUU@ Pϟ# ׮][RRaÆqz:988`/8{[333󭭭oݺE$i3-m6(XYY&ť5䲲3f7...N0/I>~-GCzQ*yO,>>f蘛HJlgϬbS S677#>W_#N}%GaNg]]]</%%i͚5sŮ{Szh z`յxⰰ#G JبGCzQ*ݻwggg/_<77NwݻBK,ٴiϋ>VގXp_ :>cƌ_^zƍ.\]o1_|QQQqm۶-[쭋__߳g2 nmm;m6(-paaaiiiuuuW^ {%L&b䮮v@oѐ6ihV|mb?~ jjjZ|͛ Dcl6`ZdڵruueX|>ܹsMMM=BSD!CnܸE0IIIÇ'Ɏiii}-v[7UZ$$Ŷ@yzz矨_|mll9hff&LF.l6&>| a0:"III/;٪pppdhOZ<VN#3.P%? HWua``n:% EC dեXIA')? + }_ HW@`W:x3gQ]]w*㓩ȯ?&` >IENDB`XQilla-2.3.4/docs/simple-api/Scope_8hpp__incl.md50000644001725400016040000000004013273140074016405 000000000000002f7fe0b0800a81ed6046b2fb29a56145XQilla-2.3.4/docs/simple-api/MemoryManager_8hpp__dep__incl.map0000644001725400016040000001416213273140075021171 00000000000000 XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp__incl.md50000644001725400016040000000004013273140074017720 00000000000000e2d79d3159f3137afa41acfce84923ebXQilla-2.3.4/docs/simple-api/dir_c1e9a17863af1db543cd17273f791be2_dep.md50000644001725400016040000000004013273140074021277 000000000000007813f245e06432a19336fb835448e5f7XQilla-2.3.4/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021177 00000000000000ce98b5f95d6590ae0213bf3532d4bd42XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021565 00000000000000c9d0cef27c0ea875df948f2c867b16f1XQilla-2.3.4/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.map0000644001725400016040000000066313273140076024007 00000000000000 XQilla-2.3.4/docs/simple-api/classStaticContext-members.html0000644001725400016040000007633713273140074021010 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticContext Member List

    This is the complete list of members for StaticContext, including all inherited members.

    addCollation(Collation *collation)=0StaticContextpure virtual
    addCustomFunction(FuncFactory *func)=0StaticContextpure virtual
    addExternalFunction(const ExternalFunction *func)=0StaticContextpure virtual
    addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0StaticContextpure virtual
    addTemplate(XQUserFunction *tp)=0StaticContextpure virtual
    allocateTempVarName(const XMLCh *prefix=0)=0StaticContextpure virtual
    CASE_INSENSITIVE enum valueStaticContext
    CASE_SENSITIVE enum valueStaticContext
    CONSTRUCTION_MODE_PRESERVE enum valueStaticContext
    CONSTRUCTION_MODE_STRIP enum valueStaticContext
    ConstructionMode enum nameStaticContext
    createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    createModuleContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContextpure virtual
    FLWOR_ORDER_EMPTY_GREATEST enum valueStaticContext
    FLWOR_ORDER_EMPTY_LEAST enum valueStaticContext
    FLWOROrderingMode enum nameStaticContext
    FTCaseOption enum nameStaticContext
    getBaseURI() const =0StaticContextpure virtual
    getCollation(const XMLCh *const URI, const LocationInfo *location=0) const =0StaticContextpure virtual
    getConfiguration() const =0StaticContextpure virtual
    getConstructionMode() const =0StaticContextpure virtual
    getContextItemType() const =0StaticContextpure virtual
    getDefaultCollation(const LocationInfo *location=0) const =0StaticContextpure virtual
    getDefaultElementAndTypeNS() const =0StaticContextpure virtual
    getDefaultFLWOROrderingMode() const =0StaticContextpure virtual
    getDefaultFuncNS() const =0StaticContextpure virtual
    getDocumentCache() const =0StaticContextpure virtual
    getDoLintWarnings() const =0StaticContextpure virtual
    getExternalFunctionResolver() const =0StaticContextpure virtual
    getFTCase()=0StaticContextpure virtual
    getInheritNamespaces() const =0StaticContextpure virtual
    getItemFactory() const =0StaticContextpure virtual
    getLanguage() const =0StaticContextpure virtual
    getMemoryManager() const =0StaticContextpure virtual
    getMessageListener() const =0StaticContextpure virtual
    getModule() const =0StaticContextpure virtual
    getModuleResolver() const =0StaticContextpure virtual
    getNodeSetOrdering() const =0StaticContextpure virtual
    getNSResolver() const =0StaticContextpure virtual
    getPrefixBoundToUri(const XMLCh *uri) const =0StaticContextpure virtual
    getPreserveBoundarySpace() const =0StaticContextpure virtual
    getPreserveNamespaces() const =0StaticContextpure virtual
    getProjection() const =0StaticContextpure virtual
    getRevalidationMode() const =0StaticContextpure virtual
    getTemplateRules() const =0StaticContextpure virtual
    getUriBoundToPrefix(const XMLCh *prefix, const LocationInfo *location=0) const =0StaticContextpure virtual
    getVariableTypeStore()=0StaticContextpure virtual
    getXMLEntityResolver() const =0StaticContextpure virtual
    getXPath1CompatibilityMode() const =0StaticContextpure virtual
    isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0StaticContextpure virtual
    lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0StaticContextpure virtual
    lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0StaticContextpure virtual
    lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const =0StaticContextpure virtual
    LOWERCASE enum valueStaticContext
    NodeSetOrdering enum nameStaticContext
    NONE enum valueStaticContext
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    ORDERING_ORDERED enum valueStaticContext
    ORDERING_UNORDERED enum valueStaticContext
    removeCustomFunction(FuncFactory *func)=0StaticContextpure virtual
    resolveModuleURI(const XMLCh *uri) const =0StaticContextpure virtual
    setBaseURI(const XMLCh *newURI)=0StaticContextpure virtual
    setConstructionMode(ConstructionMode newMode)=0StaticContextpure virtual
    setContextItemType(const StaticType &st)=0StaticContextpure virtual
    setDefaultCollation(const XMLCh *const URI)=0StaticContextpure virtual
    setDefaultElementAndTypeNS(const XMLCh *newNS)=0StaticContextpure virtual
    setDefaultFLWOROrderingMode(FLWOROrderingMode newMode)=0StaticContextpure virtual
    setDefaultFuncNS(const XMLCh *newNS)=0StaticContextpure virtual
    setDocumentCache(DocumentCache *docCache)=0StaticContextpure virtual
    setDoLintWarnings(bool enabled)=0StaticContextpure virtual
    setExternalFunctionResolver(ExternalFunctionResolver *resolver)=0StaticContextpure virtual
    setFTCase(FTCaseOption option)=0StaticContextpure virtual
    setInheritNamespaces(bool value)=0StaticContextpure virtual
    setItemFactory(ItemFactory *factory)=0StaticContextpure virtual
    setMemoryManager(XPath2MemoryManager *memMgr)=0StaticContextpure virtual
    setMessageListener(MessageListener *listener)=0StaticContextpure virtual
    setModule(XQQuery *module)=0StaticContextpure virtual
    setModuleResolver(ModuleResolver *resolver)=0StaticContextpure virtual
    setNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0StaticContextpure virtual
    setNodeSetOrdering(NodeSetOrdering newOrder)=0StaticContextpure virtual
    setNSResolver(const xercesc::DOMXPathNSResolver *resolver)=0StaticContextpure virtual
    setPreserveBoundarySpace(bool value)=0StaticContextpure virtual
    setPreserveNamespaces(bool value)=0StaticContextpure virtual
    setProjection(bool enabled)=0StaticContextpure virtual
    setRevalidationMode(DocumentCache::ValidationMode mode)=0StaticContextpure virtual
    setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0StaticContextpure virtual
    setXPath1CompatibilityMode(bool newMode)=0StaticContextpure virtual
    UPPERCASE enum valueStaticContext
    XMemory()xercesc::XMemoryinlineprotected
    ~StaticContext()StaticContextinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_50.map0000644001725400016040000000032113273140077016455 00000000000000 XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021547 0000000000000018ec468d4cda72cb53910753310d6227XQilla-2.3.4/docs/simple-api/XQilla_8hpp__incl.md50000644001725400016040000000004013273140074016526 00000000000000a6c51b46798968ed086e4d5e206547a5XQilla-2.3.4/docs/simple-api/DebugListener_8hpp__incl.map0000644001725400016040000000030413273140075020164 00000000000000 XQilla-2.3.4/docs/simple-api/DOMNode_8hpp__dep__incl.png0000644001725400016040000000717713273140075017672 00000000000000PNG  IHDRpI)bKGD4IDATxPG7 u%@ Rj!TB-Eb'@ulѢ * mH-LXP *BʌA~AG~+!@SrC1>yۻ $ :s#6H?b#6Z,(((((T0̴4ڒ999ihiiZi߾}QVVW_i ҏ ҏ\?/bۺuڵk#""󧦦Jsݻw{yy|萔󽼼4Msg|jHzz:/,, 611EFF[[[wvvϵd2b`F奥WIRi4믿70 ?77J2Lw%rʲ2<ԍ7\\\CCC#>HuUUUjIIIhh(j [VVb@ckk:xddׯp8r~ YvmTT۷L&xl6fx>d={8?P(x)))555'O,,,p͛7W5F1$I.2LChee-Zd2Ž9200e2իWm`0lRRRR\\aaa/]MëgqF###www04FFF2LGGO>3Tucmm 011177okkSrhkk{W*>N|X ueddTTT UWWgggCg]v?pQܹƨ#f/** tzqccch122:~xNNe0P1WQQV!ׯjtttzzzDDի\T*x}BBg}غukzz~J"<== J|||v911rhdis= G|>?88FGZ0Ai&F*cM:Gl~Gl~湮!c3C;HTn@>?666Zύm6ݼ6u.BÿR\+V?t/ÇׯߝttWZz{x|\\+V:2@&':#M^,}{HVR|~w-9 D*,|t~WXXK&s)ի9LIG~bصkwe2˷*%ݡ79S++TUU}}$%ݡo?RySB!]8NhMgtCW&n::g6~9HS ? 166 _GW?cx׭sy+1ѷҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ ҏ @]f`Wa`pIbbb%{L-@ %󍴴4|q3pf+ijGl~Glя%KBCCV{.\o8p_QD"988(4h͚5$ .d|Gf-ߍ7AOOONND"YbX, 555)))uuuSSȉDk׮i|A: Nhmmūr311Vccc=<C [ZZR(Q{{uWW444|x[x5~HTUUJb?*;ݻP' - }}}|>fwvv.'&& x{{_|ܹsnnn666xs J5 nhhq۷wvv677\.7$$/hnnnnnPT@nnD"9|Gwww755=zT,dee=|7GGGݻ788XPL5?\._adddΝFFFNNN/8\ѣJvBBB,,, FLLDllMD"ܿ?J/** ?{,K$-[YXXJ&&&,++륗^h۶mWi|ꑟ P9Q3R/s-ZQ ~:Nx XQilla Simple API Documentation SourceForge.net Logo
    MessageListener Class Referenceabstract

    A class used to listen for warnings or trace information. More...

    #include <MessageListener.hpp>

    Public Member Functions

    virtual ~MessageListener ()
     
    virtual void warning (const XMLCh *message, const LocationInfo *location)=0
     Called to report a warning message. More...
     
    virtual void trace (const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context)=0
     Called to report a trace message. More...
     

    Detailed Description

    A class used to listen for warnings or trace information.

    Constructor & Destructor Documentation

    virtual MessageListener::~MessageListener ( )
    inlinevirtual

    Member Function Documentation

    virtual void MessageListener::trace ( const XMLCh *  label,
    const Sequence sequence,
    const LocationInfo location,
    const DynamicContext context 
    )
    pure virtual

    Called to report a trace message.

    virtual void MessageListener::warning ( const XMLCh *  message,
    const LocationInfo location 
    )
    pure virtual

    Called to report a warning message.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_6.map0000644001725400016040000000032413273140077016401 00000000000000 XQilla-2.3.4/docs/simple-api/dir_a96227dd5499fecbb186822d7b704430_dep.md50000644001725400016040000000004013273140074021150 000000000000009d5658200227fb03ccd46bf1d692ebceXQilla-2.3.4/docs/simple-api/classATDecimalOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023047 0000000000000022d8aeb1a23894bedb56edc8e6d4962fXQilla-2.3.4/docs/simple-api/inherit_graph_45.md50000644001725400016040000000004013273140074016364 000000000000004541b2f9c854ab07d6c9090d1d383fb5XQilla-2.3.4/docs/simple-api/classNode.html0000644001725400016040000017560013273140077015445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <Node.hpp>

    Inheritance diagram for Node:

    Public Types

    typedef RefCountPointer< const
    Node
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual bool isNode () const
     Returns true, since this Item is a Node. More...
     
    virtual bool isAtomicValue () const
     Returns false, since this Item is a Node. More...
     
    virtual bool isFunction () const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     Serialize this node. More...
     
    virtual bool hasInstanceOfType (const XMLCh *typeURI, const XMLCh *typeName, const DynamicContext *context) const =0
     check if the underlying type of this node is instance of a certain type More...
     
    virtual Sequence dmBaseURI (const DynamicContext *context) const =0
     Accessor: returns the base-uri of this node as a xs:anyURI, if one exists. More...
     
    virtual const XMLCh * dmNodeKind () const =0
     Accessor: returns the kind of node as a string. More...
     
    virtual ATQNameOrDerived::Ptr dmNodeName (const DynamicContext *context) const =0
     Accessor: returns the name of this node. More...
     
    virtual const XMLCh * dmStringValue (const DynamicContext *context) const =0
     Accessor: returns the string value of this node. More...
     
    virtual Sequence dmTypedValue (DynamicContext *context) const =0
     Accessor: returns the typed value of this node, which is a sequence of zero or more atomic values derived from the string-value of the node and its type in such a way as to be consistent with validation. More...
     
    virtual Sequence dmDocumentURI (const DynamicContext *context) const =0
     Accessor: returns the absolute URI of the resource from which the document node was constructed, if the absolute URI is available. More...
     
    virtual ATQNameOrDerived::Ptr dmTypeName (const DynamicContext *context) const =0
     Accessor: returns the name of the type of a node. More...
     
    virtual ATBooleanOrDerived::Ptr dmNilled (const DynamicContext *context) const =0
     Accessor: returns the setting of the nilled property of an element node. More...
     
    virtual bool lessThan (const Node::Ptr &other, const DynamicContext *context) const =0
     Returns true if 'this' is before 'other' in document order, false otherwise. More...
     
    virtual bool equals (const Node::Ptr &other) const =0
     Returns true if 'other' is equal (identity equal) to 'this'. More...
     
    virtual bool uniqueLessThan (const Node::Ptr &other, const DynamicContext *context) const =0
     Specifies a sorting order for uniqueness removal. More...
     
    virtual Node::Ptr root (const DynamicContext *context) const =0
     Returns the root of this node. More...
     
    virtual Node::Ptr dmParent (const DynamicContext *context) const =0
     Returns the parent of this node. More...
     
    virtual Result dmAttributes (const DynamicContext *context, const LocationInfo *info) const =0
     Returns the attributes of this node. More...
     
    virtual Result dmNamespaceNodes (const DynamicContext *context, const LocationInfo *info) const =0
     Returns the namespace nodes of this node. More...
     
    virtual Result dmChildren (const DynamicContext *context, const LocationInfo *info) const =0
     Returns the children of this node. More...
     
    virtual Result getAxisResult (XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const =0
     Returns a Result containing the nodes in the axis given, relative to this node. More...
     
    virtual ATBooleanOrDerived::Ptr dmIsId (const DynamicContext *context) const =0
     Returns if the node is an id node or not. More...
     
    virtual ATBooleanOrDerived::Ptr dmIsIdRefs (const DynamicContext *context) const =0
     Returns if the node is an idref node or not. More...
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    - Public Member Functions inherited from Item
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0
     Generate events for this Item to the given EventHandler. More...
     
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Attributes

    static const XMLCh document_string []
     
    static const XMLCh element_string []
     
    static const XMLCh attribute_string []
     
    static const XMLCh text_string []
     
    static const XMLCh processing_instruction_string []
     
    static const XMLCh comment_string []
     
    static const XMLCh namespace_string []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    typedef RefCountPointer<const Node> Node::Ptr

    Member Function Documentation

    virtual const XMLCh* Node::asString ( const DynamicContext context) const
    pure virtual

    Serialize this node.

    Implements Item.

    virtual Result Node::dmAttributes ( const DynamicContext context,
    const LocationInfo info 
    ) const
    pure virtual

    Returns the attributes of this node.

    virtual Sequence Node::dmBaseURI ( const DynamicContext context) const
    pure virtual

    Accessor: returns the base-uri of this node as a xs:anyURI, if one exists.

    virtual Result Node::dmChildren ( const DynamicContext context,
    const LocationInfo info 
    ) const
    pure virtual

    Returns the children of this node.

    virtual Sequence Node::dmDocumentURI ( const DynamicContext context) const
    pure virtual

    Accessor: returns the absolute URI of the resource from which the document node was constructed, if the absolute URI is available.

    virtual ATBooleanOrDerived::Ptr Node::dmIsId ( const DynamicContext context) const
    pure virtual

    Returns if the node is an id node or not.

    virtual ATBooleanOrDerived::Ptr Node::dmIsIdRefs ( const DynamicContext context) const
    pure virtual

    Returns if the node is an idref node or not.

    virtual Result Node::dmNamespaceNodes ( const DynamicContext context,
    const LocationInfo info 
    ) const
    pure virtual

    Returns the namespace nodes of this node.

    virtual ATBooleanOrDerived::Ptr Node::dmNilled ( const DynamicContext context) const
    pure virtual

    Accessor: returns the setting of the nilled property of an element node.

    virtual const XMLCh* Node::dmNodeKind ( ) const
    pure virtual

    Accessor: returns the kind of node as a string.

    virtual ATQNameOrDerived::Ptr Node::dmNodeName ( const DynamicContext context) const
    pure virtual

    Accessor: returns the name of this node.

    virtual Node::Ptr Node::dmParent ( const DynamicContext context) const
    pure virtual

    Returns the parent of this node.

    virtual const XMLCh* Node::dmStringValue ( const DynamicContext context) const
    pure virtual

    Accessor: returns the string value of this node.

    virtual Sequence Node::dmTypedValue ( DynamicContext context) const
    pure virtual

    Accessor: returns the typed value of this node, which is a sequence of zero or more atomic values derived from the string-value of the node and its type in such a way as to be consistent with validation.

    virtual ATQNameOrDerived::Ptr Node::dmTypeName ( const DynamicContext context) const
    pure virtual

    Accessor: returns the name of the type of a node.

    virtual bool Node::equals ( const Node::Ptr other) const
    pure virtual

    Returns true if 'other' is equal (identity equal) to 'this'.

    virtual Result Node::getAxisResult ( XQStep::Axis  axis,
    const NodeTest *  nodeTest,
    const DynamicContext context,
    const LocationInfo info 
    ) const
    pure virtual

    Returns a Result containing the nodes in the axis given, relative to this node.

    Forward axis results should be in document order. Reverse axis results should be in reverse document order.

    virtual const XMLCh* Node::getTypeName ( ) const
    pure virtual

    Implements Item.

    virtual const XMLCh* Node::getTypeURI ( ) const
    pure virtual

    Implements Item.

    virtual bool Node::hasInstanceOfType ( const XMLCh *  typeURI,
    const XMLCh *  typeName,
    const DynamicContext context 
    ) const
    pure virtual

    check if the underlying type of this node is instance of a certain type

    virtual bool Node::isAtomicValue ( ) const
    virtual

    Returns false, since this Item is a Node.

    Implements Item.

    virtual bool Node::isFunction ( ) const
    virtual

    Implements Item.

    virtual bool Node::isNode ( ) const
    virtual

    Returns true, since this Item is a Node.

    Implements Item.

    virtual bool Node::lessThan ( const Node::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns true if 'this' is before 'other' in document order, false otherwise.

    virtual Node::Ptr Node::root ( const DynamicContext context) const
    pure virtual

    Returns the root of this node.

    virtual void Node::typeToBuffer ( DynamicContext context,
    xercesc::XMLBuffer &  buffer 
    ) const
    virtual

    Debug method to output the type of the item in SequenceType notation.

    Implements Item.

    virtual bool Node::uniqueLessThan ( const Node::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Specifies a sorting order for uniqueness removal.

    This may or may not return the same as lessThan.

    Member Data Documentation

    const XMLCh Node::attribute_string[]
    static
    const XMLCh Node::comment_string[]
    static
    const XMLCh Node::document_string[]
    static
    const XMLCh Node::element_string[]
    static
    const XMLCh Node::namespace_string[]
    static
    const XMLCh Node::processing_instruction_string[]
    static
    const XMLCh Node::text_string[]
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATAnySimpleType_8hpp__incl.map0000644001725400016040000000113513273140074020422 00000000000000 XQilla-2.3.4/docs/simple-api/doxygen.css0000644001725400016040000005645613273140073015036 00000000000000/* The standard CSS for doxygen 1.8.5 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0px; margin: 0px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ 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 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } /* @end */ /* .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%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: bold; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; -webkit-border-top-left-radius: 4px; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view when not used as main index */ div.directory { margin: 10px 0px; border-top: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { margin-left: 0px; padding-left: 0px; } dl.note { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00D000; } dl.deprecated { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #505050; } dl.todo { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00C0E0; } dl.test { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #3030E0; } dl.bug { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 20px 10px 10px; width: 200px; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } XQilla-2.3.4/docs/simple-api/functions_func_0x6a.html0000644001725400016040000001046313273140074017403 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - j -

    XQilla-2.3.4/docs/simple-api/Scope_8hpp_source.html0000644001725400016040000007530713273140073017121 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Scope.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 /*
    21  Scope
    22 */
    23 
    24 #ifndef _SCOPE_HPP
    25 #define _SCOPE_HPP
    26 
    27 #include <xqilla/framework/XQillaExport.hpp>
    29 #include <vector>
    30 #include <xercesc/util/RefHash2KeysTableOf.hpp>
    31 #include <xercesc/util/XMemory.hpp>
    32 
    33 template<class TYPE> class VarHashEntry;
    34 
    36 template<class TYPE>
    37 class Scope : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    38 {
    39 public:
    41  typedef enum {
    45  } Type;
    46 
    47  typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< VarHashEntry<TYPE> > VarHash;
    48 
    50  Scope(XPath2MemoryManager* memMgr, Type type);
    51  ~Scope();
    52 
    53  void clear();
    54 
    55  Type getType() const;
    56  VarHashEntry<TYPE>* get(unsigned int nsID, const XMLCh* name);
    57  void put(unsigned int nsID, const XMLCh* name, VarHashEntry<TYPE>* value);
    58  void remove(unsigned int nsID, const XMLCh* name);
    59  std::vector< std::pair<unsigned int, const XMLCh*> > getVars() const;
    60 
    61  Scope* getNext();
    62  void setNext(Scope* next);
    63 
    64 private:
    65  typename Scope<TYPE>::Type _type;
    66  VarHash _map;
    67  XPath2MemoryManager* _memMgr;
    68  Scope<TYPE>* _next;
    69 };
    70 
    71 template<class TYPE>
    73  _map(17, true, memMgr)
    74 {
    75  _memMgr=memMgr;
    76  _type = type;
    77  _next = NULL;
    78 }
    79 
    80 template<class TYPE>
    82 {
    83  _map.removeAll();
    84 }
    85 
    86 template<class TYPE>
    88 {
    89  return _type;
    90 }
    91 
    92 template<class TYPE>
    93 VarHashEntry<TYPE>* Scope<TYPE>::get(unsigned int nsID, const XMLCh* name)
    94 {
    95  return _map.get(name,nsID);
    96 }
    97 
    98 template<class TYPE>
    99 void Scope<TYPE>::put(unsigned int nsID, const XMLCh* name, VarHashEntry<TYPE>* value)
    100 {
    101  _map.put((void*)_memMgr->getPooledString(name),nsID,value);
    102 }
    103 
    104 template<class TYPE>
    105 void Scope<TYPE>::remove(unsigned int nsID, const XMLCh* name)
    106 {
    107  _map.removeKey(name,nsID);
    108 }
    109 
    110 template<class TYPE>
    111 std::vector< std::pair<unsigned int, const XMLCh*> > Scope<TYPE>::getVars() const
    112 {
    113  std::vector< std::pair<unsigned int, const XMLCh*> > result;
    114  XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOfEnumerator< VarHashEntry<TYPE> > iterator(const_cast<VarHash*>(&_map));
    115  while(iterator.hasMoreElements())
    116  {
    117  XMLCh* name;
    118  int nsID;
    119  iterator.nextElementKey((void*&)name, nsID);
    120  result.push_back(std::pair<unsigned int, const XMLCh*>(nsID,name));
    121  }
    122  return result;
    123 }
    124 
    125 template<class TYPE>
    127 {
    128  _map.removeAll();
    129 }
    130 
    131 template<class TYPE>
    133 {
    134  return _next;
    135 }
    136 
    137 template<class TYPE>
    139 {
    140  _next=next;
    141 }
    142 
    143 #endif // _SCOPE_HPP
    Definition: Scope.hpp:43
    Type
    enum for classifying type of scope
    Definition: Scope.hpp:41
    Definition: XPath2MemoryManager.hpp:45
    void clear()
    Definition: Scope.hpp:81
    Scope * getNext()
    Definition: Scope.hpp:132
    void remove(unsigned int nsID, const XMLCh *name)
    Definition: Scope.hpp:105
    void put(unsigned int nsID, const XMLCh *name, VarHashEntry< TYPE > *value)
    Definition: Scope.hpp:99
    xercesc::RefHash2KeysTableOf< VarHashEntry< TYPE > > VarHash
    Definition: Scope.hpp:47
    XMemory()
    Protected default constructor.
    Definition: XMemory.hpp:130
    Scope(XPath2MemoryManager *memMgr, Type type)
    constructor.
    Definition: Scope.hpp:72
    VarHashEntry< TYPE > * get(unsigned int nsID, const XMLCh *name)
    Definition: Scope.hpp:93
    The class that stores the values of the variables.
    Definition: Scope.hpp:33
    void setNext(Scope *next)
    Definition: Scope.hpp:138
    ~Scope()
    Definition: Scope.hpp:126
    Definition: Scope.hpp:42
    Definition: Scope.hpp:44
    std::vector< std::pair< unsigned int, const XMLCh * > > getVars() const
    Definition: Scope.hpp:111
    used inside VariableStore to implement variable scoping
    Definition: Scope.hpp:37
    Type getType() const
    Definition: Scope.hpp:87
    XQilla-2.3.4/docs/simple-api/classAutoContextInfoReset-members.html0000644001725400016040000001010513273140074022265 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoContextInfoReset Member List

    This is the complete list of members for AutoContextInfoReset, including all inherited members.

    AutoContextInfoReset(DynamicContext *context)AutoContextInfoResetinline
    AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition=0, size_t contextSize=0)AutoContextInfoResetinline
    oldContextItemAutoContextInfoReset
    oldContextPositionAutoContextInfoReset
    oldContextSizeAutoContextInfoReset
    resetContextInfo()AutoContextInfoResetinline
    ~AutoContextInfoReset()AutoContextInfoResetinline
    XQilla-2.3.4/docs/simple-api/PlatformUtils_8hpp__incl.md50000644001725400016040000000004013273140074020141 00000000000000d69eb54e246c6b5ecee846293bd0989bXQilla-2.3.4/docs/simple-api/inherit_graph_44.map0000644001725400016040000000053013273140077016462 00000000000000 XQilla-2.3.4/docs/simple-api/dir_a96227dd5499fecbb186822d7b704430_dep.map0000644001725400016040000000043613273140076021253 00000000000000 XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__incl.map0000644001725400016040000000217113273140075020547 00000000000000 XQilla-2.3.4/docs/simple-api/functions_func_0x65.html0000644001725400016040000002466213273140074017335 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/Node_8hpp__dep__incl.map0000644001725400016040000000216413273140075017312 00000000000000 XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.map0000644001725400016040000000274313273140075021462 00000000000000 XQilla-2.3.4/docs/simple-api/classItemFactory__inherit__graph.png0000644001725400016040000000643613273140076022026 00000000000000PNG  IHDRp0d5bKGD IDATxPeǟ0>R 1H Oy"9Lg}~ LhO}}}BX7ߴg1ѳ 1 t]D'r<[ՅaXuuN"(-Ͱ0 rƍX@UUU|\.W.C 0 2, `'@NNڽ{7 ;;eeem"(00-2 BXYYT*!&33f/\033SΞ=hѢEX7G "BV;auWXNC\aؾ}% BOOO B4a$7*((8~srrFryBBtvv޹sZ6˗'&&kΛ7qϧ6mڔ088p.]8p 22Ν;bƃ577bDbŊj)J{{bT* 1 S*|Ʉ Eii4Nvv67~rxקP( ƽ{,#bccGFF###%%%{Aヂn޼){'Nptt<0==}֭vvv}}} 3t6ꫯ...rw]]]ƾȲJjmm;vF矓U''#G@ 8;Np8f<ӯyxx]/[ZZ|~QQ/`0zF󋍍5>@ 0+4鸸[nI$\3O:fs8G43OҥKӹc͛7;991e-aUUw}}';v7fnooR555{ܹs"=>azd7nd2</##83uy ]ܹ뛹0ꌍݽ{ѣ_sK. Wv#| d3lOy"9@ȁ8?sV...DǙ9 B1Ita~mOr#*護VEtkbkקNV':5)OZ^$ܿ?OǚؔqQ:cMlɓFtZ!:հO*̙k:_q]Sub#Ytt@PNB`b;NB^ohnV(TF"6IPL !OKd]lēH ˫mO55W +}B"Y[44t7h4_HVވ3ћt/S`Ù` _~ɒ%jػwT*JS%Kf{c޽j ]D'r銋׭[nݺbN gΜ}׎=:u/^LJJ 򘘘RiAT߿ڵׯ?|F1111Z 9k/555RO?,//;::>\ZZzEPv y0666A׫T\//RBQSSZPPPXXWQQaСC|]~mvv-[.\.\xxqǎl6=%%/a0!!!8 Wxטngg' od2l6?Cbbݻ}||tm۶x><<PZZ:44t֭SNMMV0 h4uNR:thhh,a>JB088جe???^W_,C'.kl`0222<<i&.k׮m۶q8} ;v`Xv7kJZJRZj՞;JPc(++yAUUUtt}4T*mll '$Htww-[FxotRHD`t> Oy"GTWW?ފ "XSFFFZ |_|*M{Plt}"9@Dam ̂IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdOutFormatTarget.html0000644001725400016040000003774513273140077022346 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::StdOutFormatTarget Class Reference

    #include <StdOutFormatTarget.hpp>

    Inheritance diagram for xercesc::StdOutFormatTarget:

    Public Member Functions

    virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
     
    virtual void flush ()
     
    constructors and destructor
     StdOutFormatTarget ()
     
     ~StdOutFormatTarget ()
     
    - Public Member Functions inherited from xercesc::XMLFormatTarget
    virtual ~XMLFormatTarget ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMLFormatTarget
     XMLFormatTarget ()
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    xercesc::StdOutFormatTarget::StdOutFormatTarget ( )
    xercesc::StdOutFormatTarget::~StdOutFormatTarget ( )

    Member Function Documentation

    virtual void xercesc::StdOutFormatTarget::flush ( )
    virtual

    Reimplemented from xercesc::XMLFormatTarget.

    virtual void xercesc::StdOutFormatTarget::writeChars ( const XMLByte *const  toWrite,
    const XMLSize_t  count,
    XMLFormatter *const  formatter 
    )
    virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/SchemaValidatorFilter_8hpp__incl.map0000644001725400016040000000156313273140075021654 00000000000000 XQilla-2.3.4/docs/simple-api/classXQQuery__inherit__graph.map0000644001725400016040000000037213273140076021140 00000000000000 XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp__incl.png0000644001725400016040000012313213273140076021367 00000000000000PNG  IHDRq bKGD IDATxy\?{Wd)ʾeQiC"%YϱA9G,h5R9qT *-}qͧo2u8~Dgs_q8 Q: T07PaoP@0~~cXTvafffffFu $''O> {YYYAy0ZՕ{{:@'u07Pao@ 3999f͊#X__[[[ϏlRTT4cƌ~т{ZZZΟ?!669ξ}ϟW??3x*LQSS:~xuu5A555ǎ[rA]vϝ;lٲHGGG6-##tV]Nى>}z̙)))A!w~1>t++Vƞ9sf۶mgϞ$u=z;vLHH eee---7o۷B/^?~#G-- EEE w ft:u{0xIDD~~~ovvv~dd5Y^$$$,--߿ ҄5k̛7oɒ%W\!,Yi+Wܱcuuu/^lffv)AČ3߿rE~z LLL&X9΍7VZ`[&$$S MMKKxٗ9:Rjj cǯXL&?&[XXxyyY[[ˇ d55FuqqQSS]nݹs*++ LIIIn$Awiiӧ:rUx\\܉'֮]{̙'OqڵܺugÆ W\Y|'Z~JJJ_?k%%%;wnǎ^^^ܻؿRRAho0xyFHH۷;EѾ<]/?~dYSSp:6m۷Alll"##o̝; nLHHV544lllZ~Ǐ֭ۗ9yBJJJWW n n:eeÇqAho0xǎ{Q||LTT':}o#PatZr%gafKXD?c|o;CJ n~7o#hG۷3_Oy)..:oh#Ӧ ١oޔ5vlW_,߱GV=066z^^''o>A X,v\\NHHӇO;wTOYEE͢EHKl឴_ЬY>m2,o?#))met.TD\XXLbb{l ] '?|l{_.66S+-߆WV9rҥQ<ѷoS˅ Ǻ,RRmBho0ڮI ))9sFv=-ۻ7ܹGzzvZreϼYw_/-Z~ƍEx*LVc؏ܾdM6t± e痰cG_-53K{ҥ:?38?nu&dO&@+|!885((j̘)Xf-Xkֹ:{_?9Tq#G^3xĈ~>zNNGݺI0nHNMIɗ62dر:y#/\X͇F}lNHH e]aa!_Z&t9,;&&;00Νg4m޼KhL6LDD6nݷoɪUStzMzvDQgF0N ܒrr%rr[?]u3P.2eH]%/-#=< ok@ Pa@GΆ JIM}ݻw%K4-ڋ\?%;âEL>)kµr۷emoxcc]\ySfk;_edr%Tiٜ73l9LM5g V RR X'&&Bu(,>௿ٸqV{_dy{mIIm.[#$7@' :7'UjфNsGxuuCx/2T!ߑ:tՊG]7zj\TЙpgæDcrAi:X,_1,}?zo Ǻ,N*Lx,ܠ GZYMUՉmsgիIAA54Ru^8f޼yȬݻXn݌gb XvԠ54iuٰ_:xs6wh+6v2y|Gv&d`fՑWRPa6<< ۯ_cN8K]vs3Ju6ᓮ-[l[|Ӿ}!!O&On<|xAΆMs癰P Lrr)k){Q9r̙ݍow  U@ eegOay&\Z[3N=~%U8NDDƞ=a55gOoF]*L_lX_߄%%9# VV:(/14[7RRbTၰ6DD:n c2Nz$f4{ t00$?|BRRp0zҪ_z:old߸w NS0VWCmA HnnI@@r@@Ryy 9Dsܸ:ƭ[FF`lǏsML4V4`@ך {#7Й3=,]]C/][Fu:[=|$"+KlNHH e]A_ @ T@_߄ӘLܹްp8)S~QDDh>~~w>sveKhR]N~?-,?>zz>8{6z>::N `PaW&x^]ҥ:={JS2LL<ɯEDwsv6ظ)񿋉Px-4*ꅾHv;gӴآEV#wڱcՉ*L)tzO㳲zk-[#'u ^7f ="""ԣ݆]jSҪ=܌'SG}i''vw7>Չ*Lh#kOX,9&SJxyb h6ڰa@-gqqQ}7&&1!&^wFŋq/^SWcf|=% lSS_лwwCQ2]D,pS oh`m8~0ա( ~Tb+7ofM4z2աXJJ1aKƌOu"m(GA\[8uꁧgrO7ųf:5Pawu/?0~+IO/,,ȄJJj6[_Cu\PP ϟ=p`:]]Ann{x:@GC t5kMKe˖I&u@B ǎ;O#ϯT$..547zn'o4x޿^^1))C(n2+-utt/!acqoaa@U{wҡC]{e]aaAPazUP[˘;wT@:d`0FAA/ɀ,?EDDjXO7Rݍ'NDu.vR`2YN=xfƆ 3|x^<㣪ڽ{ݻws :t͛,L&ѱwފL&:fHMË]t… V O IDATxK ___nyI;5s޽!C8p-8?\|y˖9OGϘq(<ϋTWWsN\t)N"ܜN9s ?gΙ3';;;11qȐ!nnnM~С%K}633s„ MW}wLnx.ggg =BV楥^҄={k[p!N `?񀀀־43;acsU\Wnۯ3ϟ:@ۡ<>|?~Vks11/lv BYYy̘1dȑ.]rŋj#ddɒrS^^.**VTT쪪*լLKKp8 999䙙C iaÆ:22rܸqMW}wLnx^xUӗ?VPPh+gpX,w37;sZ[a￵ުG 7 cǏUTh ̒ ֮r?{ђ%B=֭[G7n1cƴm5Űa ~}h4M__??? x-4ͧS6ؗGD꫙[xqxb±RRbi<o?ƍ_w_]^^1lC*LVUU0sFF߼);r25[4UPP9{m۶G222'dee3͞9ЀvFua>|4eٳG2KΓ]HKK_܆'~\{߼N1Ip8:FWXSO+, {ڽDk:111`Ѣq'O>(7nY(#""de5puw Jqw78qչ~ZY7h~~ѣwAy1uvZ}5sG>1cqi\u.aS^W*(hU dΛ7eqW$1FFlltGV:T+d,t2m%K7SSR\Df"#\]CW8Չ>,Y>w|[ 2kLSP[x?䵦*YӇy{>|;$$j~YԫihQ˔m桼 b~}ҩ_DE&$Z`֭ CrߵڨQJQQZch8.""z0ukoWRREu(/ p8k=}?ˇGu4~d`0ӧo§FV tmRR{`4R (СBCΟy򃖖t;4MGG\F74[~WaiBbbvZTZUu2ҍ "" 11gyN1::ƅ ٫o-04Gu"rPatׯ?%&3 ǭ[7sTj[n-,,+XB>>WWr8,cv\c# y6N`h))}%% fjX6X[+Bnwgt *%Z|6?|Ϟ{an<2Em*Lfssb>`@O+I˖a UWHM}dkiӽ[YYbق+WFhYNNAVuv6a/>}|ݴTM6&&21m`EOߺ\(d //Cu"Pa=)b;X]ٳ”줤<[UۣUXZf2Y*8Npp[ā3f %jjސU:zM[{,{8W6̢:`9!!{3[Z_APa^NNŋAAAj^֛PYЬ$͜9_v*rsK,-OJ\~H)-jh8n߾% ui__KvܸڪzzF) Q_mnr57$<ZƩS0̙éN*Lp8qq'Ī/_|=%xϟfd''541c\G(:"㳦'9GE=`:~yWwGdS*Ski"**ܮmm/LY+>>w':sf%G;}?0ﰻ,;7$%%?66ܲj))#M=H\\cQW5j=FVV:좝L\\khnn;JP:T?2?ZƢEyд$gfrʩS : Aݻ:8xeTݻ*rt *8OL;қ7ey)),((1BIOO][[uAݺIw+h/ڶ:F7EEmtDaa,A F^^1i2VVllzǭ*=`U _T\)۷X1ÄOnJ76/];t薢b?02eUI?%'?ʜb!!ȑJZZڪj4ҥ}³v|uTV9r;n%ww#mAT'N&@0;w9f̘zFF(X,vV2)^(;q`rҡCP뼼b\]CׯsB4ç;Cw={(SRR,8p Fȑ/_%"3%455DcEzR *L#?…W͵׬'=3$KUNUS5JOZm+_0bD?Q~~SPb⫕+u eAW+99/!UQQبQ[nji~9q)Ip8 7m{ p8/ϞVUUjn%()/lU%WQQi&0pq~ Nus 8ptƌaT'jndMrԩݻKqBǟ;:ɓNxзoggCqT' zfppsrsKM>Nmý}%9}U\%de%^uӧ;qxFpp}((P-.A))Ϟ VV2D-,"W,W8p3$ɔ)jFÆ:5Tu}Xwb\UU׭9|x}Ľqw*44s| AQ`euVEEg ]%y.*o۷[ZO?7M[n!5{mAӦ ߿';7..33 ,-':;/ٳc^A ].] Nhki\ |𿢢 $Z܉JիO8̙bTiuuG>PSs:4^xBRR zokϱٜԽ{ÙL֭sW,eh&t!'..+窪 VZYMjG?w+,ZU%ݻ:8xege9:feOwt vm Lqr |b?y0%%?&&;%%(;vrgN9Z55 O?<~C \ii.4,Z4n]d r옘o$$DGVU%Wk3w\Huç;Cw={z驞ށG,;7$%%?66ܲj))#?=H\K+lWJ1_VVD@=Tieey{J\9FoMQRR*66i==up8E:u4P&22)fihfEu6ڹ3$-[dcN>_ĉulﴝUc#?۶[LL oA ͉򊉌1ߪUxeiiUb"bЦ:Ç\;sMNjx_FukƓsrh#G~n&uRYY{KFT0R:P&t55 ׯ-uuvŖdUm(,LVZZ FƍQQ/Ν[5sp; ʷn0CXX-)7aԡ?3HFۦMPTT=i'O$x7rrB_.\8vE|GM :Q+LDcy<711yoL --աC;ovrj6g^] *LlϞ;(,iR֓WL3ʪҚW\iӆu놪TV֮XqoȑJTSNNAVuv6nݼSlr<(hGe>k:߂^'ƍsYvƺu3(7ey *$%Frnqq8 tzM֬:C  3+&44gO+&N[U6G,)#sW>?q3gVJJQG 1wCḾaη]d/R-7"c2Auu'xzF'l`h8D.Pa"[zzFf4# މ/UeG{_o1L𛬬"G"{鎎ٳ'3KNDɓv}7CBc4lX_~T]tlwfNuVc~ޅ21RSǂv}=rοKhc?ÇjY*O~D +{՝vfsBBR g2Y[ε:*LŖ2VVbe}=33YUIޚ9sx~*;ٷ/ԩQӊrr b;wiQ3sS}tTiK3eǎ@N5J+܄:w=Fӧ @h*Lžy3o'LPn`0FD?v#V641c"|6q:9:;/Μ9|~See9r'00%)i7AڎBیVFF|xrONr3?-,22K_<ՉPaejjΝ),,?t T/JĶӇ;쮌hܸ7*ŹsfNu"99oǎ[88̠v~c\\dzfzیFցF,;7$%%?66ܲj))1 dMmA|Of\+c|YY A[ V]|lm-cѢq7w-pQ IDATV6nU9u/4^LO{ t-L&Ç﨩>||ܸ<# %%Fv}=SHFѤoi&(,(('kkN8[7I H>x𦨨ȶms- S;TСK/\},++rիgIUI[UUϭ*1qTV֮XqoȑJTK_\l --1׍ڼʧO4MTT`5wn$'mrr~NNm-7;S#G^7j*ՉPa@IN;qUTWֳ$!!Ju( yӣG'&v:O@QQi&0pq4&++q7kqwĉ<(53`c_}++$D[hɓ+xu-TRRYC:bWG^.\8eQ'xF]*Lh_L&ΝgO?|T1oIʗtz]^::[G+w*7򔬬ի/'JK<cGP@@jv\LLd;v\UU}z[rxz[/Rrj7kP;T^Μ~r֬7khPV 2& AU)p22 Ϊ4;Lo>oj==cơ7oX,6F|n֬VeeIfg*\[x5rddy{ǭn$ LM5)t)0JJ||⽼bY׮Nnl6''*cc++ke&LP! ;-]ĉΜY)))Fu:ѣN~9p~>>Y,6A4MJJ<2rg5%89^QGg0"-OJzE+(Ȍ*pMP?9rʕD#F:|*Lߝ>0,쩜Ԋmm!1޼)#KJTݻ:8xeθk,ؼ/7i'""p6))|:fs =̕}ĵo ԩ?V͛7zݺo{||,/TÙ7ȳgEJJr7onQTp8E:u4)-ll!T?7nof9mG+lNTs/Q֬fl!""qee%aytb*+WwlJ/޽LNKIy]fs$$DF6CZ',?ùtvΜQ<YaJJ~LLvJJ~}=SQQvdZ ,uǏG==pž=Fӧ{҅NJI&|vz;l6!DD Ɯ>m`4=-Un ;w^ OOIݻw.|eAAy e|Fmm7Zp+ȶ[n-,,:XBUUtاOUUbl6 ay2~nnǏ/n]1ɖ͘Ojv!wQQcK QHyy{EFf,/(  $$D>4*L Mpr p!!^hhZuuڵӿ۷9:,&&kz~a% AܣZQ+j]ZjժVuխ(.ʐ!@ {~BXY {{{$QI(SFsq;r$zd2i!{L}T]Dͨi'G4굹C׬t_'{.ǧZuZp]CQd]]ȵ&&m :2L'[\orERӦy|_W꺝;o_L&aNR<.Liiiwt,Vǎz?%+Wzy98D"I5sAD0"8{zdd gwD96lwQQUV[PƁp9ᇻwi~ÑWp믲ٍ!Bcc?"j=kU8d@ѣS(d>/Y2b ;0kk}kki<Ѐ#ȑh2ϔ^^tgT*cYY&_{oMp!Iz֌ǦLs]]6ԩ:Bnc'N<1a9daigbzH$ \UUnR=5ׇ1)HԣKLӵ(}z7oެwDedd888<pdooF";Θ1c߿noo/xeݻ|d*#>-! ŵg2-:ۯ~Pf.45'ӆϷ.-gj |H4?zY+S@ dyGŪ0յUtuUuuմUt5U*h^8o_`d DPH! Û3(-y(@D;֛6m|Dk=}*hSLwvɓ'; xݻ~DN9ܽ{wԩܠhuuGp'H}[R_3Pi4C*ՐF3ьl~ۙ vs3f̸ta+@:HIdkkKKY5%%ڢ: BGK_߾ ZB%RO6ʕ+H$k}9yՂUg#W^dnw.Jb;ssfhTLDȨ6UՃ/輠&O,vtt4:~ ߸q3/\X?~֭~~,!nݺenn^YYt钣#Fqu[fddHZYYn۶pΜ9UUU֚}݅ B<O嚚F ㈈www SSӽ{+HӧOp޽.\Z lȐ!D1L2vZϧwAUUU}k׮mhhh e׮]ۯ_rC ~Jod\׮]/ȏcX,X@,Y[[Iڿ_ߺ}W.6m`q<|vM6mڴots0lgΜ9s-..666~9/2uܤoܸ1==!4f̘۷;;;'%%~РAk׮miZUUcǎ:uJ۷OOpľ7[TT2Pii)q3gdX'ODXǏ#Ecǎq8ݿl6f9rdfffRRR߾}o.۷oB &@DG7o8^UUA$"j˱ݻ\.ggg $N",, @h~5:0B (Yf۷oTTTDf0#Ҙ${u )))b24mV:u*Ee~SSSkkk|GB8s8&pV^yfVYYo߾cR(9ƍ‘ׯ_sUzzw}i&CBBci50gbbCǎw^}Aaj~5^݂7| 655%H$) ++x !@ӻw/tzLL̳g,,,|||dkkk\.N$_ѣG0ٳ !Dњn)0wwwMM͗/_M8=...&&fܸq>߳gObu{{|H/_ݽ{7O0mڴW8ޤY̱B2eʍ7ˣf͚%@ t1(/͝7oZZZC qo޼RpdׯwssܳgQIIiH$RFFvMZj$Յomc$Hyلu(//?_fM9㕕Ϟ=#'R33l❷o-U__aիWL &Ld2E~ѣG$uֽ~ȑ#m?恑cdžϏ`1B3zffp$۷o;v111-WMMǏ ƬY6mڴʕ+^^^m'_I$Rmƌ#s nذk OIIF`F͛WXĄ^tm\\\B555|޽{_~qƐ@>߱ӧE%كd \ EKExum>zðV. Y1к ϟ|K.EEEݾ}xʔ)6mIJJ=zÇך={-[˖-L+|-xuph4'M$>FR__m6PMMM[S;ȑ# h#G<{5BFM>}ŊYYY>|غuȇzڸq%KDB:uŋ===ZJv1{|8ݜDNRykDE\@&q;xZ2nܸ,)_b"$ƾ}~78/YdXfڵZ666ǎkV? D#&;D.)XoW]]-Q5qiyӖCk%jF.oSSSb!Ś7oNolаvZ3333gVVV7_ 񰰰={899\ bZŁ,--92sL### EVUUERwڅ8VQQY~`GL&sVo)zGG͛7 cccBnKTK,QWWgXb~MB0%usF=z͂Ξ=;f\OœjP m0̈;/^tpp <NNNZZZ&NM$k۷맮nbbgͲ BƂ,--E:uꔓ={Ο?occuVbvZ###CCõkr88p fy.H"Yn޼hhh|򆆆VIF SWWw݂좥! Sgj9KLL̏?hiii``0{lwk8~-UUU[[8rE.hE"=7hp#l6._㭵VdZϰ F\~ټyW_}ea* o*Lu}Ǐ)HQz~tww?>dMM:Q5JTOba䠍0?~э7 ܹC 2)X,핬,>aƍ!BH0-S~~~%fff!2?&P!n%4|uAp8ˋiT͵clr,m<.ϰb2a2꾊IYO"9o,ObaE2ْoAdu{+_XXbŊ} >|۶m/ ~4k֬;ww(B3gμt޽{gΜMdkhibrb]tuu{IhHD[kT"wAhuVV\ګW/555;;-[C#hGIFDQT dYF%{4HeR_G歑IՐytLiiiJJo'7hyvD%[;;;w2 Е+W:I5"H$RXXќ:CRۑ64z z?;w.,,޽{MDRHARʕ+ӧO+زeKvvvhhhIzSQQvz m7mڴ+W6ajjw^Mڻwo==_%q?vX>}"""g\.wݺuFFF֭r$ÇVVV?nadd=N߳gBX8<}$utt-M ӟKTKII'rIkkkᙓSSS'`l?3 2҄mX}###+**oN䊭NBӟ AaY JMM"f͚dcc3sѣG\]K.]fҥK{o߾_!k׮=z/Mh"AI̚5رG޴i7`&B ^ZJPomSKFDD1bʕěׯ_777GӧOl|"_gdd ,X`&#M90RGtRw CW^Q(˗/%A$JէRi4*ՀB/h4#͸&1[{TUUUd$e]XrV/S=z nhjl̒.$JciӦs999%%%}RND Pd5--6;o4_a}*3fhwvvwGȞ={L4QQP\\_XXWP.*++q2D\p@ -++A5%_>¢޽u_JIe( I쥱;wr32zu}t33}PGPƎ+(&O\VVfgg7|Lӟ67vׯt9ѣ TRpl''o~u/ww} yxx$b5dg}TV\dBZZ46K ,]]-]]-RQ b#GY*_?+ n۷.YrʕÆI%Ds?Ng0j ȑ}44TS"HaaaAAA(nNx<~<:A3Uǎ͝8"T +(LK+NJKK+8=qMMMgv..RIjk/_~~p4Y;i &&LwZ֭##hiB]]% 9 "#CCR=q"ð-[gl,t矧=~}*)VdYnzNNɓq ZZ _plv-‚|&Nge%!LZӦyL}2+22ƍW?40u p1lǏEF޾5};n2Lݸ\eii#ʜ|Xłn,,JN.((RlРZ::YJJc17o63o<>8xM4tߍ6owFvvܹO##,9B p;̬?r_ygnnW,rwDTZbggTV[SqFF 4LĤ!&6%ŋ:bkkiaj`L&˧+Jtb/@JNl{={9u'"XPEEmttjTTJLLjmmŵ D+(.,MK+(!jooh``d}uNEE-J3"RJk{aaʡCWr<BHWWCL::訧&%'%|S26֖Ar7oχ#GYy%Ze%{OPǏ?Nw,"}h2(cƸʦ.WSk lvӗ_;֕BQ>] {o=l߂e3 2L \~aaUnnENNENN"-Ѱַַ~f7&')eRR>16R6E_ۋntc1ee5&/[6DA"$$akwV"L&ɓt#92`m>mǎ[ƹm:AY:d"A jL~Ts)fɤ|,#ߔ2))G}<}ϯ<~ގ0ez8} *-zEhr[ꝡܪ>u*N__f =0E t56򊋫( h4n"66*1޽#& pwPק22JwGª tr S$0HF;%%%%,"KZZu`c.^/<3GjU`~VJZ *}};+Xrr`$%ih HI췰лtiBUboz{ܓ 3u{gbxAMMy˗+`f0E @8^Zew)STTc!mmu++=kk++=++}++}++=KK>p{w Z[[e0CBll N0c ss꬗/v=~ۦM|0E JKY99lv#BFi4jaAl,^99'Oƅ&hiΝ;l"&sxv/^|?ӭaC>ч|55C@s@@sAqpѣhj2)*Ӓ+W^^~P!cƸ(۷z{;ľ}@\0E $k{;sk33…ÃܬYar\ܦn`#+cc?2ɏ}}Z}h]\,3"x6ldci{CHHFF_~908xjC/>ssܼy°a򎨭  2LPB$8Hgt@L@һž_|1+>:o='߹ y"OǏ>)%%t__'ooǑ#HġCQz4ĉGz׏?ޭkC S$0 SLR[}m/bC^Z߮k׆ݾ]ik˧OQQɑɉ٪TۀLL`>eʟuuwZSӧ!! %ijM6oWf_lvٳT]zԌ50E N~~e~~N^;t =K31ёY\͛affȑ}V0FA)ǃ6FDTp2V^^f7::5=raa/-[`>bmd"A U |fAAU~>fz $u碯f7^رIܗ-h"קOŁo5dڴf Sǧq+5p8['XZ`Ha44pKJXBC%#TU&&:FF?--}c/^|N7k|nXͨ#Fn}ly5TTFGFEĤۇv@[E;t!#F:cmd$%兄$ܸrR/ׯsvx4q]lR  2L,NI Ed99,V=5@R[莎,nw }cdxW_ q֬.,9cJy/^|L}AA_g__=]b͚W,:̥Ѫ7!! IIy={͘9} \(ݷ^DĻll?h  2Lh+­RP/$rHA>igg%DAWJJ;|8:"❵s nÝpᙔ˜ 1vч6..-!!B!{z 8fCJ-:.qVoO]K M`}}rر_TTu`{4ZzԄ ʙA)d\.IW Ibf+Ѫ$J 1%bp)S@+*ٻxqW8L' FrdZ90yuZ?_$X!$$tccSΙ3&>u*N__f@0E MUW &ɩ"I *XY[XлJ1޽#& pwPJݻ#>\ooo$X~`ܿ>3Nr3j6mу?}BeYz򋰰L&{0!G:#h}=?xH.pw: S$0ʌVWT/,*(,(lh"H$Q \ܜnnNMm=i2;#;|>VU4Pd<6v=Ԯ]KVNN`$?{axցΣF@2/Ҳe!OGGW\.?6kw&kN9k`KxAMMy˗wa&@@IV##mKK=%E_eGWV'Nre josǏ?E9UUǧ1ɑ,V=[}~}X~~zx=:GޱHqq?cZ:uR`$Sx^stϵkua&rLfpVNVVYMMLDW++=e}E_墬''Na6}e`Fذ6*r)f%c^e3) FrZZ@gBqqf<~`IzHHi'h,11{xMƉ|  2Lid~~%HZX55_sPUrr*Ni5. IDAT MR;wآE>a||{򎥻هRޡӆ W#"lV5?xݨpKn[@)dIKKnU*cb9}Ch;v-qʋ+ w,Kuu]\\Z||ڃj 6aں:N@~kko7?!ŋ,g}pp(e 2L HWH)eϞFdKB!& Jtb/:WPъ/B.|,9Hf0R44T sp ۭ%&f}ş͘1Hޱ>z4ĉGz׏?ލHY[ޜ;$98(czzbtd"A x yPU:x*߿OzX~ݼyE>򎥻ͭKc0cc?bl' ݹO=n<{CQW1cț;IIy!! 7opF L0E >(ff@-"r7oχ#GY"`kyc߾{'Nч|55C@s@@,Cqa…$a~λݻ# vNO/rKϪ2fl S$0:@Ψ{k/(ڵ03gOpx3gffpL=zic- pw,@؏ FGx<~߾DZ e>mǎ[ƹm:RÛpx| Ix8H/֗`rHa:@RR]T~~/>SW͛57iFHH½{Ij&͛ջ4% \.J!Cv9߿O]]%VJaЕp8jA((ٚ]bI!))興w{ϙ3~k]ԩSq;vb0&qnYSwh11QQ)ѩlv 1\ö+Gvݺ}{'˗WXq8y֊#/_~޳գ&LkCBrr*\]-L2@m|'-NLN%xd(._R*,,(*,,,gVVUVeht33ܜnfkfFw' *brK#bS PDwaĉs|2}> e!?l`wh-;|8ԩ8}}9sχ?y~ˈw4e$!78xBU_Ld& 59yT<0%eTUDH<$t8}U&_,lm TSJĉV 3li; F 0Lė7{zJT Fދ##_PP; שGvF|>&.%MO/muh=5Hc+.=G-^u FO?1O\vqqi !ww@1c\[yTRy\ J|B;o=OtIvC/4%!a˗YvNL?mӦq]O׮%&ٍN_~9pX&w ""-^|DB}# ٲ>F9O}=ѣO~~7oߧOD!$$tccSΙ3RiPБg2y<_TvW߯Gcjj%'/00ݤ'֭3lTՖi?Z!~VVz0G޼ݰJJJ!]̛*P[ lAz({}oet_P\컃70A4և;{:H}ff)g(ᅳgaFR)?EpFiƒ%窫뛔PȻwO={dw'^,{dci˗_=g2Æ9qs:gA_qbggsѧ3 IRD  n|}rHk֌ZzDLk$~LPMMuuO&ml j{R]]o߃gdQ()SW͗׬ C5P~%/Bon%9`**M'&nHT0 FgoRi3##؏oӛT$&bEhlG i('D=>>7JRΞ](d߻ҥgi* CUUWS^R ro||&D0BL޾@0qڵYW(M-B _qBM/a yݺ1+V%0 GL&{S^q ɎNJb5X_AQ5Vqԩ~ Gs!Tgz:g?\ȑ[V (#U99kjO&H$kԹsIi[޸p)]EOOݻpgS2L 7ʕݫE?¾m|i?ǒ?´민MLH3r|mm5WW~,27+f {.<ݸk?dP<}3g ̟m$y?ypӧ\.O)UW lz]ޢEgw]%y>}*0zQ!*fuR @^R9nޱc4z=a!*`j2L lvKQYqmLwqEEUUZZtssT\̌.ɂA u% wt֧С= :ҸSJA0pO)MYY|s=8}ܬ0I])d?mbv$H -G͋PXX-&VUUN@v͵\^iim}=!D"!*ax[H#RΟMJnp&ndNt{ƒj{pH?'BNaX7R-'5IzJQQR55UԨjj4]]555*Vmlǎ}c4sJRHK-gȡCsspuunc#Ǫ1 cRRRbIE"J<c' ԕBDpvv};#ˬ3_.'H4EPCPXXٻMYXXI9^ u.S汲SAMSsiVVyYY qoD"YZikK6XIm ڤT9;;O& $Jm;./99YR֖KC=yҺJ[[]]]E]֣|/*~ϐd2I|3}Yڟd2%.B!eҫ 1qqqYYϞe~Xa4 )):]NlRgT9gmm&Z2L g&&:'8B]˗Yo::;4 4Pt a2xp{;@G$gku ~o޼RW^{DrpphR~̘1$)##Xx!$J'`<IiJGGgYYY튤ҼtI;p6) ]R͵v'%$~ădPMDjcc3gΜ218aݰ5JNW0o޼9yd??÷tuu7l7o^bEUUBzҥ۶msqq!~`ʸ[kӧEޣk)/4T5Ѯ =zaXppp"]ٮv۱YR޵n/h N6 Uڈ3j~~3gX,VHD*,, MIIMl J.aFFFak{Y}֭Dٸq |u떏OW{r@$Pڕi~N8Sb6]ٮv۱YR޵n/h N6 Uڈ3#o;;p}}=Bʪ]*ڝa޺uܼ!t%GGG6r֭366622Zn%?|*66v۶mVVVs;iBۮjjjvvv.\@{gSk)/SPBp_6 _[bmhD`4M%cos9F4D &8VKGm=w{Ͻmrzo﹧xiA?}]Y1\sÇoݺ/..h4ܙg>y$ԩS-D`yd…Ϟ=CTC{ ϝ;{uVOSfcj Uq^gft:j5w5/++$02NS,*TS^#+̠*-'F3a2ƍ6rUWW 7׳XLvˠAGmxOط+̠$0EtĈ%%%Ǐs \ܭ$0d?Pf իaO+L1EO g33Mҷ4:_KXW? cyfZM'NDGGB;Nkׄ0555QQQƍ;{y[['|Bi444y愣GFGGWWWBUUUzvϜ9of)_n''\z5<<ݻw3Fcxx8 쯿!@ (/+LBЕ`HMM=z4;NzKVn%""ʕ+@C&oW85}rd1 4""ի\uuu2W{0w+.?1+Y@ѪW8Ą0KǏ뭷s'3|9; Ӥ }K;QX.EC:K?wݻw)SXL i۲enw?l^hl6iiit`hݓEEEǏߴiSvv6 mmm555b?,&aׇ#z!qqqj68IDAT&޼y[7eS9tA)T1vg}f͚˗/߿~IlŒUˀH?x]I$WMCtNi5޸q;n!_G'm%0K YP007|GI{'3Ѕ1M44t:o0nwVVVNNΏ?o>}Ϛ5ko6iii͛W_VXqm1+J5mڴRt:5Mdd$`0̘1:rjݽ{7f11#G\hB(///...''>_Vggg:כdj`6vfׇ\ҥK_~%*xj4?<77֭[_uff&C=}TU F (*p:aaav}ӦM!I ĒUҥK׬Yc0ZZZ***6n;Az h&tDĜ._|ڵΝ{1p>!_'f%'`aqĊ/+4Bjjd{UWW駷nZzb}$JG- M^^… r!M9;m3j(_~'̭V_|ѫW>},Y/?{,???!!!::zΜ9 0'NHII 2d``;?0&&&%%`0ϟ?OMM}װ6ϼXr0/^֭۩S0 !o>rv*VmfׇС؜cl6͛קOUVz(XLFirlP Kعsg޽?gNGS"Y E/^{|,JZz } xuMb JMz)s,N].׮]RRR C߾}]{0ws- OJ:`fqĊ(Z.WS/<)))33x|KV&=ҷ4~i:.//p`OR$~?D)=z'N^v?i55i'"! !UUU 6L4"(I@AyyyRRҨQȟK52CV3!@0 1sν|r{{{mm /^A*K={] @@Xvm{{̙3M&oQ̀Z]]pv ?V2 PXa-Y8PphZzZ*JM]݀Ppv8 T{^ZajZJE~ Abb"hfEzBJh( jn(2wkZBd3A:[ t& V2 PNd-IENDB`XQilla-2.3.4/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.map0000644001725400016040000000115513273140074021656 00000000000000 XQilla-2.3.4/docs/simple-api/classATHexBinaryOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023402 00000000000000300fcd90390c118dbfc2b9f54c267236XQilla-2.3.4/docs/simple-api/classAutoDelete.html0000644001725400016040000003072213273140074016603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoDelete< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     AutoDelete (TYPE *p)
     
     ~AutoDelete ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Detailed Description

    template<class TYPE>
    class AutoDelete< TYPE >

    Examples:
    simple-basic.cpp, and simple-context-item.cpp.

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoDelete< TYPE >::AutoDelete ( TYPE *  p)
    inline
    template<class TYPE>
    AutoDelete< TYPE >::~AutoDelete ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoDelete< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoDelete< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoDelete< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoDelete< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::swap ( TYPE *  p)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATBooleanOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023070 000000000000004becb473fa388999b62d937e91a841d9XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp.html0000644001725400016040000001402213273140077017410 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DynamicContext.hpp File Reference
    Include dependency graph for DynamicContext.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  DynamicContext
     The execution time dynamic context interface. More...
     
    XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp.html0000644001725400016040000001375413273140077020061 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDecimalOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/Numeric.hpp>
    Include dependency graph for ATDecimalOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATDecimalOrDerived
     
    XQilla-2.3.4/docs/simple-api/classASTNodeEventGenerator__inherit__graph.map0000644001725400016040000000051613273140076023670 00000000000000 XQilla-2.3.4/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.md50000644001725400016040000000004013273140074024175 00000000000000a06091f13d216a64286530754426c772XQilla-2.3.4/docs/simple-api/classLocationInfo__inherit__graph.md50000644001725400016040000000004013273140074022044 000000000000005cbce7dabb66472324bb5df14854261bXQilla-2.3.4/docs/simple-api/ftv2ns.png0000644001725400016040000000060413273140073014557 00000000000000PNG  IHDR}\KIDATx1K1 G⁂n lE(nࢋMA@ tK%ܕ ]BI%uͅa,e v祫i\tun0oV\$G.&@Y=%$um6'߫9Q\b)0-ZTH`pcsm 5:>ަI F] jgo[ on Ԭvq?\ 6Tee lQ c3*dWTM\rh61F fIENDB`XQilla-2.3.4/docs/simple-api/DebugListener_8hpp__dep__incl.png0000644001725400016040000000726613273140075021200 00000000000000PNG  IHDRpmgbKGDkIDATxkPWǟr1 KЩ[)*A\(ZpZŶ "Z BPE "ETxX-"$wXmsٳ9={ I0:,` 0)))2l`&MPPPPPФo6I0s T`aZf }> f^ B l{jsjxU34dffرcdd$::zxxxfF+fRϳ ̌d348::Z^\>444z5hXf͚)JR)9s&<> Μ9YX]MPsssHHHkkիWR~u߿_" NIkuݻwQ o9??ū222ӯ\O?SUUu[EDD8p`¦E"QZZ-..^n]FFH$Gjt…<|PC͒;w:99)~似f  fh>C6dɒB###333x7cbb{%&&D"oo`UPPu˕d<opppѢESjQPP )))999==='55U___R)IyO7߸Q'wyg"ߎ@wS }咒uҥKl6m>|877.=OKwwڵk:PeP3wfX%%%VBmسgO{{X,y?Kz>/L"> VZz5ݢCCUzzzt $&&& Onf>``)Y'i ===,K׫{@0f(z/ہ6lx}@ЉkF?%+MD" C':sn=|(cֱcWC':탲+ ,JeUU-ccVDGJYҚJӭkC ʚhC/냲Yۂ2[B(hDG} ׷Ir Iy#**AG}7RryC "^t^ҩ򁺞qD;胣G}"KKY9A"YZΥ6GG͞>Ép7Љ.0>`` }A``0 }> 0>`` }A``0 }> 0/c1S̙㤧"*fQ__O c +>>^KfԦ YI }> Aܾ}{:SS)-ꫯ&bYXXXYYyyy;vޞM|@DaaYFFxzz HlvRRD"Ammmͅ N8n```iiFW*ذXףKV1-5cs܄ԐX,655=yFU*E5RXXbl2::x$IfggΝ;wŊ'N BeI:DIguuizz:hyy3޶mX,V|T| G"`hooʁޮ믿믿ZZZ.]sNTaժUgϞ6m*((}-Z#11$IŴTF.$Y^^p$Fd#~7:WXHdZYY>}T'a~UT jcΝ;GGP\ .\SS*$)oݺ5<<,~ѣ萛7o144lll$I2444%%E]D>Ь$#G,X@ŋRi@eIR꺺:$e2b*rttTT9vJZw p8xT촴6Qa…5<MePL!8!Jc_Жk677644ڵk*t+Մ.ljINNr6mA-;w<*O/}3 }y|Z`h1O+ Hhh諯Jm|c>``7]{?IENDB`XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__incl.png0000644001725400016040000017021213273140075020744 00000000000000PNG  IHDRF|bKGD IDATxy T3v=%m$WJTJ"ITEJ{7uۗ[!"BѢ(KWֺٲg1s~{}4!f̘t2|577 }C޾}kgggaaqDuPe0A)hAΝ;555v4::w;wxzz=͛7~~~---? ݺukxx7 VUU-++`pBee%޽{UUU~~~ϟ zɫWf鼼zzzTtrr .ٳ' lɓ'޶T7ۂRڹs"2wܒ>}zdd9yOYTtrr:uj˗/\p! D"1**EOOODDDWWa B`=ydRRR&LpvvNKKzٳD? ̰bhh(!!1cƌ]_Xz ---͛7+((hjjnܸ1!!a` xL&/[wKRR|ݼy455555삃}}} (**~QRRA.ו}?~< ⅅ}-,,TWW`pLyyzʕ5fΙ3իWǏ{b„ T3HHH B nTPP۷olCQ(-[,Y3ǏWTT> ^\\՝{?7tqqqjii)b!!!SN].yf#->9s&G/ba~tɕ+WTUU{??_|QQQv())X^^}_~jm*;;Ԕ?////,,! ,SRR]@GGOeX|߇DǏQ{{]v'''o޼YRR ^MMM uuuYYY߿hϞ=Q==ŋnK^v۷ iii7n|Q[[_իW+**SS6ۂ ŋiӦƣ&''Du9fϞ=bbbׯGDFFf+W|3,_L&_xYKKٳ\~=((׷RVVdժUꊽ־~z 6\zuӦMaܹuuuTpqq=ȨwsssHk׮׫:tuܹs:::R5|wwN/v9ơu0*%`֭[˗'Nd߿=k7QmJ8^C;::]/ , .'Ntuu}ƍޡ.kk΃655.ZP7f̘.a ֠[;h˗BAQ>>ꭋDk+eo>I0A)@3 ;#'bgD"; ~>>u~~Jͳ -L ptwWHݕݕ(C\n&dIUUMݾZTMMMzR++q4KHqO݇wxJʗ͛Cxkj6EѼ/iiiiE55D^^.3&)M[:(XIKKg||ν{޼)_dt}}sVZ7A[l MK+:qb53i洴ⴴ✜rE$ g̘O#RP(7i9(.\8iƚ\\XyӠ:;Id2ҥg/>[BUE}}e} FX+RQ(۷nYTNWysȻwhxR)~BaL),MO/NK+zKEE#77^`.55} ykkg\˰s[psx܍Ɏ/À-/HNOK+.( H+)Ϛ w@(BOOaaҷ<TgÝ&c{>{wʔq׮SWc)v3BffD`d~yN/++Q[vdf-AOϻ_y~ *6m nm30P,#ޝۻ ؉-/;W]OOYGGX2009&/5kf()1Mn]G=<m8tGlnkBfwyArruu<&OQ(^yS0~53p[ #AA'N<8ʀP L56ּ|y #o"AgkRq] ظq0/zFWwٳV 15%; _p]b$}k,V#|\ KO(]ңG;NUd nJH'}|ii锔:U ;a0u V"1v-fƘ1xǝ*ybƫ)!P>}Z {WX_* 3&(]P(gW>(5KeVcc V9E=u,M jNNsɉ1|~ٶdteCȴ={dd14%ږ@IIBOO[a.*#A)@3)~~/kk˖MݺdDC DzeeeE}}I[[WFFiZZv)4vpX^7(h-((ƍ7]]$..XF/_j=uܹt08 L۔N./x//P;#`TR`DjjSxy  jDbEIkkǏ./HK+ꑒ2~?+8͕+999 YI]'pg Io46;m' FM (;NmGҭf=c>>v:xghJH? ^/+ﻼ`5qq^9(sNsOںׯ7puu>}ҥg?~<OeM 駦9-HwW$t:8nbw E9s05xg )!|@ZZX[{I (>|u䣪&{9%%G-[Ubng'M;M D"\-HNojj-((MK+^dʁK%ND''> 4%2RXX^VZkCj|RoO?~0kC'OV;Ptu:8ر,nM gJJlQV@ikMr幒f̿^vo++;ˈsSB:ii,ÖuwHK cWay z# fS5emJJ)!tttc-ҊyNwy^^=.23jm=7ߺ[[98❅6)!]^򥼼SSS;[`h.*::`TbRa`v;]mnѱcBKE..7y45)!}]^SN X 3Uƍ; ` lW ɔ7ߞ9XDDM;zzaaLlxx)!.Z?~,Zde}0?*rr==V[7s1 ܮ}ykKxg hJ RS!!>ElyX%DbٳoOd+};r~V1!H)!3軼/./04TWW-`~lQ e<M /{XqUZZڵux;hJlii5)lyYlFQ^ 4i532}UV6qqIxgahJȴ}k,ÖdfH &OVͥ@\\=!!g Lϯ^};[]{74%dZݹ sut+1:Kz;n8wϞEX*ӧ?}zA ׷L$?A__yƌ pݻG)(?o=mqTAAѩhי3U΂hJȊJKҊ̞*/ QU |q'11!s88gDDfۛ)!KmʢP]OOY]];nfyztɆ=)FF&;fwASQ+/"=N p==S~vGY3ضPf4E=xn֡CKqР|54<mƌ xg4%Mzz(>U`-߾-hhh]^",*hJ8Z]^_Ɂ-/04T5KURRC \\am|n,\ ^5KQ425=t;00hJ8b}rs)TIIBOOk`л !!>A!''v٪Xkݾ=,99vӝ;%++9xdf=hJ&Ԣ̲sս{{zw@Qt͚/-bR͛mxx||?煷c\\pu hJn./x󦀓ݸ8EDNZ5"}X@Qɓ->~56 K\RSx L NgOrp(䗳gddD a Ϟ?y=PUcxavVƺUW7}&8A@BAy?0 Yׯ+678//_4%d9_|ႂz3 (@@H|qsZ)//ky@Tԇ={;Fb뼼\xaДmڴiܹ;MIP98\bb<""<""9sVt;9v˖_==}#mCSƍs'OVpqifv2?}}UXI 99Q99Q))a99Qiiaѱcs兞r4ԥ|3-u{X;r_C"5zf̘eK)(vR#%~]x,oT%))2ή&{qs ;>_xp"qF }ӂZxaafAA>-[vD@X ܹr rZ,m15R`LMwsss.\xѣ,H1])pJΝ] CC y bx ŢYY;96Ԃ SRRTUU=Ju 1`8 >o&dʤI]K;藒EGY?}; J)بIܻ͛7.>J&_z팢ʕ+Ш^'$$( HFF^444pss;wBs(eeeC)jTCM81::ӧOB˗(dlC(JuJJAss5~ mwn?^+k@Vy&dÚ'xDEE6oތm)**A[{Gw盙c[[[I$@?-d IDAT`jjZ\\mBkAĒRRR988~4ԩS7n܈RPoUCC jjjkMMM _ @ 6zío]»5*j+t22"'-@SB׫WΟ?"//yyyaeeᑑm733@IIIwnESR;::(ݻw6l`nn888޾}{{zztA-+))^gff8qhTW]`jmO)PWjeyVEE \2/7O0ДQ(GGm۶ݾ};111..AGGGTWW{zznܮ>7,^|A]LA \reʔ)(644tww;vLYYYPPp֬YȀkPpႸq|||lll/^;K$@PPN$$$$>W:22REEGCC}w Դ7EEEUTTLQ.;ܽ{MccPPRRܶm[GGՍ|+1V&(c}趶hMA ݣGY..!99^xgaG]]=ǏݸhxRnnNr|||vvv#PMM? wxxo{lle:::h0Dް![DfmmM ̏qLٺ54#$>)S())dP@"q9cO°HMx'0TVV}  P(͖ΐMPݻB%Vbnnn΅ ?z5`@۷og:HQ*?=W*+329i.bt\1$O$ɹB0B:+p?L:}:,_LJŋK3,9"YTN0a,æniu뽹ӫߎ2s::HӦ),[6uX!'agt)޾-vrCmҤC!!ML~; w==M2ڵux w]2rUzdHJ{׮Aϝ[Oqqϟ!/]cf62Kږ ͘1מ#KH[>0'K\| YO˫ش)@8?+Wr11<Gd}] ңRO%8ӏO^e`,7FGرB>>vwmmz8;""55HJJr =N=MMY ~q/ ^^ƚ/gIr;Sjm|.?UUMnnaii-qv6bb)&ee6l0\|$!ZU|?Xig7Vca )]fk mXXjjM~~@MM9 ;Ϟ}FOO+}0[o1:cʕ+kEN B/_}/>KJ Y3sYx hV tttSP}ۙHvSp'H}}-iiE'N\f&q$$w%3dV-[BĎ MM?卷n};m"mgyӦLѣ4ر]d&?NO/>|xYBBAbKJӀyΈ3g̛4s KߔYZ+@I o8WEEŋ/>{:_D_EE%X&DiiE+V\5+WNh`\]o׷޾w@3ДEQ(hxxʱc$%N;w"މ#&&c߾ ׯgdσ!z>nC \ 8uQFFiX1mhVee+H [Z׷;nhɈa>sɎCB6YXLbo3Z[!Md~bbcLMg47$E/1E &7ҳզ_w 0իee4%drG$vmh1^q[IIJJxǡ58+..͛7m2Ki)`eC$v>z*DǏG2q}05:}z S܃Gs6m y%KZUCCە+oddD<<-_>me44 gwg裴ވ XXБOO?PYXcE(hXXC`CCϺ; vbbcVQ_תyXJ…g+*J(+ê[*Vkܓ&&=kEL`$=dΞ=2ϟ칓Ufoo鹘}VMݻI d~~SsLM]K~)wrBg' Tۻ&M;`q;wde-ZtJNff绻{>e>u WW7/^|1'8QWq޽>t(PLd@mmK`` wLJ2[1cBbSF޾-?C>~S[{މp)KEEj?##3ٳU>u?rdٽ{=w"f1̵N=.-rŖ `"Ϟ奧߿hJ`߾wLdd4ףq[XLko'yy`ΥԩJk̬j:}ǏpaaawX MnnIP!NNww -\RRw EѻwӍO''ys<8p`ɵk뢢ZZ]]+މ!.>7~N&S?Ş E4`rs+;35JLŹpG3[Ν/NN=Yljl[EExg..ΜyljK_Isw73̆BA jilN^^,&fCbH$2މFLcc{\܎3ghyii?~SIIbŊOgp<<\>uGQBPP2Z~zWlKK3V|m9}:X9.._TTxYrry5))_֭4o._V>}<މ'))z 'TY远z?QAUU_ ZV]ljz͛|㰤={\=~W[08yѣOswdSS\\[DGϟ\1 y O"fN5RRB""xBKKS3U֬~Ξg>-..dBBޥK67onTP?gƹ!!>qgvϟcZŸ(H$rh;;Y< ˗Z55iS"$g3g88 ;NJJꬭ}]\B-UNĪ5w+(Yryy#qDPEW׆[ʻw"FR 6c]]KFFUJ4%%6v3VBBu͘~Eѣ\\K\,;PYXL{dWCCمbO7n$/^<0ZUU)S&M ^`矺U;(!##mE +3Tjjqq۵,-CCzAvsϜ2s❜AS!;ywDP~i\x#QQSY^|*xyuttn\C/:%YTPP Újkss ׯ1!!o޻d2EX@?\\ORT?t(mn3 @pw_.VRRwQfwH/fX;Z QF@.߀z[[ ^ uljr ݣPXssw|f0RݻKu [ii$j`ؼ)aO% ൉ْ͗/ۊCVd*M{3Tӧ+߿V_jaq 846R ::C[{ Ӏa+/oOt&<@Ww7֮jQQ(ZX\e_]%}C/_3oDDVSC$pV PWwvm(֭'*""\%$99јmcVZ\ 8C%,$--lm[[ۂw(+/)32`L0< @'0r4%,?޽wFUWWυ OҁQII{΅_iW),AH/,̉ƗO R $%-  8\EE770Ah !!jg7nA)ʽ{^y\Wlߍ'N<\<gX 0_X˸qVyP5 !!FWAJW10PELQFFZZmHHl墢o7յR((qInq#9* iiEOFFBC9,&fĉp4k[ r<99M;wf%}xɔw  Oee#\4gjNEV=BAZ#tHzz#+*֭Ԕ{rƍs98`y +S P5)akIxgJZ"S_Ҁᩩ!JK@{K[]]K==7ߥ|1XM 1w02R^hjz.=8<͍22pK wQTdj@OxgJrnnNh2šm*[o!H߭񺛠g:"Bn$)--2g&$ĒՀk kR 7\SScڠ4G"7mC&S*+Ν%ϟ+n<źkA/!X[rx Gb[2Yɓ [cc3L{=wedCIIHEEx!%%!>>쳡<;<;pɹh"~~~07on\gǎ+W2Yaa?\cijm=8a)PY]kXBcc;c9r$88̀˫ǧV\,km}ExVDĔ@$*IRkƼmllNŠ k^>qb%q7s3g/wA(/oTPR45sss !汱,Hn`aF#d`v:'`mgp{,JJchW&?e˖5u @-|S{l&sOۏK@,Deu40rsv\w][o$MOx?L6z)CE^^i0tuёv{->UepnnZZr 񳨗d2nUg =i[9urT%[UUMxgǟx{?;Q/< D ,(++sppʞ#G///pԩIA݈ PI 9_3g@o=*w fe}; u?*H, 6QQѽ{Q_|yEEEa {hDDbdd:ȿe˖UUUUUU{AhiidRQQM_6Ϡڴhte70,\سG Gw7`mٳg ,=B!^|9000333??xRd_$??رc77cUc>ͽt), x{ouw; _ !,D"Y&+//؈ ۷(իW555f͚OÇN* ++9WWW7f~~cgΜ D𐖖 H7nhjj;ԩS"""Ž0aBhhh?FDD͟?_CC!,,LSSS\\̙3moV?0H/i wK}7zzz98vu55 t9jNlL8QJJͭGol?Ϟ=SUU;ydo~Ch|fV=ztC˶qq׫&9Y T0wkkx`/vvvn:{{jiiTE+++=z HAA?D"ѱ֭[֢(zƍP`N>rʲiӦyzz( H @ʊH$!RWW[UUw.E)ƾ IDATAKKFA_z%!!A"Pu떖B`~_ɗ/_'MtAΞ=3cƌݻwjNl 秤b}!d"7U~4xyyCBBݍ G* wU^ <{++i0];{b)بS^KK+88w7o\ tuu}L&z Eѕ+W644P=QUńE@Q낂nns566R(2w.ESRRP믿 A<Eŋ:ujA~ ݜUUUzG8qbtt4vOz_cWTsbdggcDFFb}!KEdrTRGH_00, ˗_3DKK'YEa"q޼yxg՜4P4|oƌ nnǎ~\wAHd17ʏJFFF x՜RRR4P4PcǂW޾=ѣLݚh}yyŪH͟ .цU3gep[jazP $~}k/޿w;ZMM֯C)`tijkm|4p_\!!yx쮷1TP Njn8}1A'&6&,̩fOSC)`Ԓ:zty`봴" NQQ"4tSjj޽w9/AO䌋c%tF3FLfuM[Dז2y.iVVz#=o8_uv-d̤~ŋ7uu%%-κ?u/Ę;'srt![G`?uuZff㌍1\h)Xӫ~̅ O ,31ĉmmg1`F(ixaa).<7NÍS=˽|9b~9sr9uQaa3V1`Cb=zr4qgg7ҥ:02V0$_6^}m{F0r\\7}|ҥ"{9&{Uz/tr2ڶVb'z`(޺_|%>:EII"<5/_g=1 `?LK+cV99з5=;.'ZrpriSo84feʔq663!;2$U hdgDP N%6v;''**pMTO* O޺DDx)AʕӦ)^ϯ,P aj<}ꮣü$gTILmg7󮭭_eeމw7KJ2Tܜ**RW_+*F)?}NdyXr_OPXci`<[ۙ&㏇x bxn$++bi]VVO+""_Oɀq 2z՚ۥKO^^l`v5Vgf׷#ȄLƛcfvTSrM99Y44\t8t\%'ǏM@"??w\(11m66c4 R`4x|SGΝknv@:"={ڝ;+V65ҩepL&&K efLHp,+۵+a U/wNfq+LL.t"@SZ[t  //=7챜n H$8"p拲"y)+B:"T27WkֹjhGB_UUuZYyVp𶰰z2Ht]>~}jB:*-˫D: 31Y&"2%:oTPለBcK {)*J %//SW7 pcb®X1fbš,MK+}5bfD`>7ۣoـ/46-oBc"?:vIIIqqwan~%(t˖EHGPղ>>7{zny9u е&[ۨ%Kf"xF&..?_-9~̓(VVPY]]|iB:"V%ş֮C:Jf+/ _Srz4 HKk6!0̺u4R0ֱcAAy `0q_ 9RG0 D*: "+i;;N]}.㡬W^bZ_pYF88XН3+g-g p~nܸ G(kǏ?_{Kg~fR/5hk{1-e6eá,u"wfw˗K类nӻЁt8()I0W$ !A*t$=N蔼/=MXgPFfRRU QPRNNYiC3!TKKϝ39zT p\qf%㡒)S8n)%%e%%%5 37@ &&>72Z$ xtin7n8/E:j10X<aaFK\Ü9ӌ޽-X ׷#e?趲R- *+7n%&NNNt˖Pr rЌt p-ce1A* c`(6֞hAOo!u,!YYá:vv _*-e9iyŭ[Μ1a  >}ĉ ؉LYD #%HB#,%LM/4ݭoۗsSMuDVU5_6{3o߾}uFmm _~~dQc$&&&???iaF{ᢣlm#MM\&Cs#s (Çfs+R{l4*C^6rAPZZǏi *( %zݼyӧz92v\Q#0hmTŧ~?t,Thh03,)SAHIIuh;AaݢEn޼Icc p׮m72 31 }UL6$( pKK(/77[|'V7KLIqc0nnGNNVcK--H0A߾׷wrz>H"" cT""lGI6u*gR i۶`CT`0J޽k fb¤@ED"iGӏ緙<̄yZ[;ͯ 0 7Դ<~q拳f ޺*"2eWT&6+7n8}m_c蓠 7Z:tߘ_^bN|_VR[զhjC:Ǐ~1_،̉#A#5^KVV$>ޡz8"t8H88XHG1  >s&!F+VֿRw7n>o߾07%dO600kYY޽{a GDD@ddd/_ APkkkWW++kxxxcccdd$33sWWׯuKE hӦMx<>55| MMͪbii#G {pVVQ{bbo]@=אb~wNe'XHP`p4}GlcJ9T} ?壣3r*ݻ."ßmmm^B&++H~pB!z C^𡭭 Ý={D"uvv_ !?+|t==a/-[۷LKK+44tԀ1fjj*p#5 ڵǏ/^ؿ%: K˫`!Bdfjh;;{:e.aLJF_utLa=s "1ٳҥK^^^...222ǎ )SJJJ(,))&""Bǹ׮]`ӧO0L̞={Ν;4l] {{Q4446lؠo߾R??Wl}uuS,Xz kkvrur54\|ū[$/:˗3b@{7ZZ:dr˫ر#NMM&<ܒJ; YZZvttdddL?Ȁ|qXpccczEz쳉%e'OnHD%cHYYoOaaa 4YjjbI$pgvv##mN-[&-6Idd!ұimrsKppVQ.(^AxG=,RZ:{67(([knXҘbMGeeEUU SqN+WR1 TfH$[Ϟ525UF:"ωG: :%$$>^YY.!t8tߟzNCz\\4ta0IO,P`MyoFkru7o 0MTVtt,Y8@ 6m>>7簾v]߼Y|h+:PuVV7%%@d`29Se+s+IZY"@yGOߑMZs۶˭ii.rr"HLFVٽ[С["˖I!@Iu7׺ Rꩫk71D$nr} ɴOܪ CFђH]ctn'hҙ^f ! HP6H%>4߸(,wqqqFFFwX,;2vvob`xk23Oeg*ǧj]111Qu s cRRzv(%?r߾')5-az}3f߾HAЉ'(uuܛ5MZzٳ6BDJ~ŵRICC޽V_{UTWW[dmEE}``.U+::rŊُ77WA<@)xtv6?nwbR3gr]o_ԩv۹smnny|S}YZnݺEb9s>l55@rAPP޴i7o@*zX,JEEI׮M<ᬬ7'Nd54tXZz{k#xpL:: utzUQzLrkk5~~.KO|psK((D:`?ۗRSy }})(lhIU_cGG64Ҍ0nۦx2#Gn77y1}:yr+}tsK00`H6H)eeƗ%]>9,-jdfl|3?e+qHEI¼{l()9|~f曥K|e czΝ[^! 0 NN~fG>?ocG HOQVVklhьHIֶ9Z$梬< 鈨\xۯΟ_:ii$gs55kk}RTTfn߾:KKս{7prh  CðŋgDEMxA)S8`C%Oww׌{r<4@ "xy9󸢢X&#QrɂwAA(ݴ %ZkkI8{|= PE]Lkk׭[11v,vvggO*=fRl~36^dL=<{Dja^C%HG4~ @= C7(Hpb//?ZNܚv;>>N_MUPwr׿XYIw ߠH2Y44t%]"뻉 :JoHCE0 gf^}:((ay,OPg 0wуtPCNNR/X\o@``W5j_T`>nIL1}:PQIIƍw[jӧ<= RPOOw={8+덚gtwg3gA*ϯ\ԥK]\߳vQ HP0+0AC_vh]-AWk^W@c7~16^ZTO__qs=A*I(=`jnm<[3؜# h}RE:`S<͝(Lxx6xjjEJJǏg"C{KKk>ޓzC @=  RQ]pƍE$*44Μnbl|IRR*@LLX'Lƫ|ୁAdCZTJ]]ĉl"_uu==KHLebbKFlHFg7{U+^5kN77ɫ0؞¨ !cPiRҳ됍g~7Ȇ^E86m:Ύ{o3 HP,<ӸvgD"ڵ"K^ LԜ>ggI@ `UW/^|MswSD:JOz"*yE3kRRYY-24 -e<<춶+\yOzYcc[N0;;ݻ^F\HE@*z }k<<#˄ֶ_ٹ3N]]ѣ}`GATd|cɓ:`o@{Jv>eux%X{0VɈD$QG6u*Wp6~q>}GH')i `v֜7osׯ##mxy9hP/U'0 gehkޱc jRy0r/$_NݻֶEGoF z]`? kk}@`44fd쪩w6:9nxFMYY;b(aT ѐrݜ+W%%e[gcbME:(vp8m˷oLuWWԮA>4ov:RAAý`#QoҶ D;k$aB:Vh3 _`0ǎpXA21_OO)88___Z::zFG?7Om%Kf"T& _Z$$3'#9y,á#K>5_TTlX{&b! :u/^]nnk֜-߰Az@y|l.;;ɓ[mSfD6@*zXh $'HH(rjΜiH2V?|| nۦ|>8#`0Dd_ [ /$TEFFxy!! U:tKKUm" @I8V~Ϟ]mܸXᄄb? ~~I֭Ka`޼Y!ooxvv TEcƠO?7疣G+׭1P D="U*bR)OOt.\Wnbo_҂ɖ@q#c9BKUU/&&DBC ԩDHZvXSP𮲲JS''PS;qzz,A1z" $x&"†ml06߿?Z-/SQQ鈐d`MH$XWZ]hĄ 1WPniyUhh̝3gڕ+Q8<~qݺ^^IzzJO[IO~7yZ__)#(23K45uddڿ" ik+Ƿb- VSczc;@1Ӛ۷_׷SpjowsK04 RHP? 0xwI禣c\υ 'ucO\\w֭t_)S8bc})?bf%!!BLY}Ǐg(+~1)i HPo2 ѳ}{ұիMͳ99/\0<b˖Eb0jY^-xpL۷{M)<,`Ŋ Z^`XT~] vuMrŚnW$l|QB=/MyHGDwYɯkNlHLMM!3gr>DUbcP{FO/3QSsޣGTX,[s>kaac^mm֭gh_(, ¬|[axHGDo_5)7 !bR,#PhhpsK fgg{+ ] HQ[+O0uœ_]޹=-J_TICCpP 0И9v&~UWW? vB\UUp˛7wɉ RF11d/_Z\]ML 0~豳~J]O99Q#w˗Kq@R{xՋ!!4 uO2 ÙVzK}- `qb L*G:qXQRRcG @JLܡ&3™OoaaPorr2ұ %%YoTW;ourZszݻH|C^ٲeѡCz;1 `8ުkI0 GFe,[6+$\H{555t613OV;z1`;ߺukV޽['++55٠ljY%^E quƇ ~8"FBoo޵wZ~,#ccc-,,h:#bL54Μ?g Z__h6w *|AApK@'@*p86sw*mH?^C$RR.B:`߷o÷45QpK- OTᬬ7~~=NN]]5o233 #88D۷ XD/\,''z7ڳVUV~yw+>|h`{V_ʳ<y]#`ffV{;íg]+^f `Ξ5m . Z͍p8w=/\0ex @{ `83(ƍϛOE:WQQ}ƴ4U X6@낃kjSL,co*)9B#Xq8Sr@A `1n9;]^VMN~,&Ɨh$@?~$"ׯ_mll`677Z#|G  vvvUUʤOvX;s}),d)''klc _jթTa13cO4x7*Z-2"n|:r2'OxzjQp$@% ` *woJ[[իtPuu AYY6D@@ԩS{U^^foo/A4ȯM6m4?]O'KJ-9xVww?ʴV#Lpf͍ fdplU7:A/8`"p8,[ܺUb>mUhi0{f6cFFX{{;A7nܘ={vww7D VQQ>; ++KQQCDDgή AдiӠ4HHH˫oH$aZpakkXXXxyy,V5 IDATүz EBBԩS <|  {9583JYFĈ•+O;w$+kE3(@ p-G]ޘ\HD:qj9u*@`+&O_~VVؑϱjjj~ ×/_JKKkhhΞ>}:A>| dzC7~=kmmq !255˗/C ӧ ~ZVVwcǎmܸt%%%_| ðO͛wȑ_#!Hy9ڟUiiigggggg}}Ν; ~O= ~?\֭[ۯ^ AϜ9#//_VVV^^l2//??ꯇΨ.,쟙3kkq>}&&~N^W'%slNoW@*,,% x jk[>p``H쮉{ܣlcIۧOpyy'Č {H$>||2 mmmp@YYB+& ++H.0??…/_ؿ?koo?s̆ 211UTT/IKK5kߟG۟gҐTO'rϙ3'--|۷o;\9nuĆ ~~yyEE(Лɐ cNSUՔV[ۨo7nPU}SLqpp8zh~~>ϟ. RUUeooեH>E DVVOqssCᆼ&N/^(,, w^aa7nAPss3Ht]]ݯxb'N#|AZZC>}O! :g:ATT׏_SS##{Pɍ1 |}7G[YRj@'57_|ţ}\^t󧧧z>@XFş._~p))Axྲྀv3367<ڐ OOO117o;Drz{{_zF>K_l^8ۋX ӫ֮]_XXHN>LӧObbbFBx?uee%ւC5!,nץc 6lPPVˤT˖I-Z4ҥ#Cr<;͹s&ٻA@*и ꚠ)ob 0"" -,Y#6}OF"lmm]]]oܸq޽Llmmӛrss;r!,,, 3==]OOo%-[۷LKK+44 6-[ éGGGϘ1cƌp8ccc77/_TTT8pb999̙w^''?OgggWW!_@faa[QQQQQRSSWSСCz%%dc݊ nNNUN̶_~C%`-1l+.v%_F:x nn ӧS~px `u떈H[[cfΜťruhı0 ;wnԩaaa|||Nz |kȅBBB0 Cx<Ɔ<00 www‚_DDݽOQΞ={~!0L$yxx|B! 8a؏%**kjj>#XoZ4HH!? UTݛ<۷ a;w64S. c@*<=/!_HL|&&^TRGCCVܹTa,G5 `O޿osOOE %%}Ó}@Ϟ}T-(2RAѴ@MCn9:VSHϞ}:70@q_R̙tt'56^dpTMDVV[w=9Hnj$x11> (LEeVf. ~DbҪkKM}I88X,-GD4# NN~|ddс:!=@PQg2 0Ag-XYQ ?`D'7̙!##L˪Q?nbbbjjz݉gL v޽^cOzz&_?ѣvv+扩̺z!5BEA" wљ@#*:GbbYx#Gnoۦo@ӭÇYAsmjj:{'X2DF7{4 |Mͱ6}56vg!!!77aRE\]5^)'JJj-o1$ HSsތQQE 5" @*@(BG ѬƎ;koFEٮ['OzQ= "vqqijjzywwm۸]3O>MII+..ijj"˗/_ӋC ={6<<\YY|6sss~~~rTCWS$-lի/n0 gehoqv^G^,}'}|85U`II @J=bxu,Y_PR:R^^GJG@ 1#~wmgϞvCb 0 _pRRҐ-6&YYbb_ niW]`11wW oΜ^ߟtONhipD$Rf1 <<7mZ@?iy^^\yhS) }׃/^XdIOO ;z~C`0 fݺu_|vbs`YYٟQ {pҚ/.>V>>77n bf޽y႙ qq/~L#1x]{tʐo*H7Mu7n-_.<𓮮n``_cͅ!!CXcv*r𧃓J-1G>BVxSLSR"KQklw2n^^ 8`+pԗ'Nl2E0 zytpXn6#)'>xIYYѣG/\as)S@/\0j##v̇"ǏݵkǏ_x~ssN*۶)C ʕ+OW_pN U XNEEUg2 uw_[E̔I$8%2 Hs|@_ANUȑt,sUkIL|faqeqq  +cK6ss.dy9EaWyLP +$ăt T yQLzH=ĉa800#qMP)XQ^5kNWW^cs[a660v37Wjz EJCAAnπTuz{6mZ=JU |||}7QmN$$<=xP|V%gbjԸpļyb ) -~NA:  D : 8q"1}*omqk׶P<啤5+ˋɉ&'T#&ɚ V^DG?:zt0U!nno|.5Y]}.5`hϕ`4uH.xGH1ۯ)R*׷tkuD 2h@ 8@ zz&22ZB򫪚ͯ033ݾ&))@*lllT l雦gҥBB bbƸ妁'2*uu~hxx6nT~rKCOZ r[+ç}ܬ47 ̌EU…_ۮ]kEIIU̙11#?ѧӧи^fsgk,﯅ ʌec;v;eoO NP{9))/( @m-!aYO]]\\<ʌT*㷋 |}7Qy=;Kڵr(#-uՍoJI nۦlaM/yy֑_!jϯ}ZrӶnmmO@vvuJ xqΜiHGA ä 'XtA7MXUeVV7%&:#5e\ӯ_+(lٲLA%<7`Ԝ~9ffJ6˱[[R-[񽌽wyyjaR> t};eII;(8۷N3˭iirr*1ާ)dY`cb}w2?ihȇ[ϥhJvv YYJ6mZ뛚Snl"ҡ֮fd(! t gtu|X[[-:dZRikA*P.< N/4t4 9BzN}}w_~Y"..CC(ĽrFOOٳlɩ[Dx;zD:Th~-oAdGG*dX֝;'ڦ9shukU/Iܑ[uZ+o뛇 q>qbTU޽+|010=ElmuYxX@ (8vϳ/&I$=븸 UR^ $oAd`BI5SF0Vi5lMLUQ7ͽukʿ>̈xca?kրIM-IJ*z )JmRW nݘ~Uys0]bLbwGtq#I"])/^V*| G4(ں5d޼g//.5^Usa7o&X1c<^]> [[YDͷߡ)W4Fpݼ=e ɔ<ȑ%%u* -L*:^Jog߸99!!'H$KU/Ngܾ"3ٙfٳdA򪓓)IIEII99U89?+ IDATOT2#[[ϳ% ih^Szee5.DWd"44`0{ z?tq1;~r¨$7f]7FkIN.NN.zL//Ql2g]=޴iDzSSۿ|ٚj["@Ra!uu!yUmaaLu p w{TUѢ""^S(d]SL:pyyթ%UqD$WկM/Ohݞa\#"^K0K!N/%ҕy # Xx_҂w4%CCbq\D{sr*OzSÌKϏ矡*3p_ʋx}^ĉg[[cwh-ZZjC[7f@ǞX˗J1dӯ[PP`"Ek+ŋJ)# mmlK@uض6[ԍn%吐P5##VV҆ q>|xĉ>*ԡ0̴SR?|(..`0NN~~aa\\`F!5?ϑ*me/^2Q-Tl. mmD$Z[% ܺU^Lna/\x5~Sy@dk|i SBÇ 6kdk3sf?__[??=^%quu+YR8=G^^VIBLh@4)sv={}ر{]"Pً egWFE%]Ng tļc UhNŨ K ']\HʮY*vWS()c lI"] A=ʜ5k|4Xv{J ڲe|W>|ȑ;&-Y%b>\X`bș3C۳4ZRRJ5Juu#uq!??[3{I ;,%(H2U 'ɔc- (okA2g$5Kqܹ(Zf~p`v ؚS +eUdup_6NN"Id*H'66D@* JWv`oAfMdll?W:Fkx\BVVڵA|3FK:5-45ǒ A@cc_pE^kT$쌉DR%UUڲW855h P2$+yYW,a|}ģG/>\i r˗O$|e%o涌2rq!ݿ}}}5N͇Kr,G"a aVE-0F. J/'X~0[,gϟg?HYRuVVnHpUIIl/ӦNhg?j6tʕdt9J ߾Ym-dW$ҕ쉍`ksX,.AVz =PRRwwb`0.<݈51,'>STTҿiO:\r)--R޳??xC''S}}$ ?A{po|R:9IAU\ (jj8,ӓUڦ~["P --ϤFF.Uh`~~+^}[W FM }_R[2PГ 5:z.>g23 0o`*=D&a =BCЍ_~3sfN]g8ccbVH a GE%^J&[ɓtt`/@RDo2Ff}֬L6 48n6 oe# =}XD3~<[Rɀܪׯ/_^*oA䌠*ciH 8vI]]DVTD1㸾֕+ev 9uj~L"藑Qdգ]]ͼw,W P*ٳ/$՛Qqqz/mmU(CH&Ɛ4eU￟Y$-fcz//o7߇h_MWRu]OM-IM-ikc8{{2jD2يLFQ˝ɓΝ1M@DzK5G:DNgH*innq#q1|oFHO== (%v51;QUO?N"0>N/4t`k>UKEbFIۙUVI|`.eeU P}D"7is{&3sf/;pUNUbb>9@D63[[^DWWCbvܪk##hN7v,Y "R\\Q󯪢,,==&N4b`O?y2^FfsLI]SS]2I)TW&rA!" (%]&rmnܡ67j㶶Kdv^jTTRBBɂf P'_77Tfd5(cG?3e_=ih=p\.1A##m@mmDz*e̔ UHQ@z:_ dDccSyիoJw[ffyHNN/T@oLf8cx^\%332323 ly>Ƒ=<,-[8:Tʛ3)Ea#p8l]]Dz*ϿTҒG*`ccaEt*ڵkj9Fkiia60=N^0nPTD]?-^<8po޼!L&N fFFYH..f/~'ܹYY..fk֌={D[ZZSs򯪢꽼L kӧ>l#`9'W$J>O?RUw?7]ނ( BT[[# VK6XLBB..ggWiiiۻ}|׏?믹&fviE_Os#4w߾i+qSS[AAuvv%OO/c0>G^~6ʺ &O;p AzH>,'/]tUҥM"tUI6)a`bW}?dhVVNNpL&VW<Ȱ5gX" 'csBUUѢ""^S(d]SLSp4ONN%wu5S>`kkD&[r@͚_A>LRWgfIDP$u7"uHH^BT;;#B:! ӧ ֚*)6/;;6.|}Da!ԩg6g.V8WyK֘8mO^LثS+x<ɉU!)$p -!vonPje/KVWX`O2YBq!8t辷sMs/ Ѱ&2kjk q>vlnpR!4fe}v,˫bjnnf^~0h&NݱՌg(5JM buZ 8v޽*1IqcÂ\bBCcm}}M__[tP(k!6`RSKnХQQI?xGno{kkc}D"g?w *e?'2']GO 7d#UOU̙:X88ܻ*P[DOd:"oA pdur2EƢ@Gh?xȿ@K_-µA] G@ȑGp8 Uʨ˗45&@4Z ƐJQYI,*,ʪϯf8jjxWW3wwǢJKK7nf+mQha0E HGƅTsVM G{yY[B*зw\ffV|,,vz& b!ցJ,`b'D هL&{ݺ+h'M~QP/JK+ut4]bdHccU0b8/obOҟR& ..fKys&''GFFN:S; 05ma+B_~rH`d {S޾-ysQ8s\]=O ;w˗jjgJ=bX,УGaXރ 07ѳf mOJ*;TKKdmh޿r->p8lVVl-4_GGŅ4z.@IA`0Q8zQDͯo_C)D:y=jT~YQApXuuŋߵJ`X.qp0YꫩSv|vʪUWx=z<{6ȑ,E/^5p8S϶nnnnb166F_nѧ!@Ѥ0l)e% J;) o B:GEET|8:$'Sl_srb1׮pu5?w b8n> G9l'UU(rw?n~Jm(ٜ;'[K;G2ۛ}[~L 28Ǐ?40&NDG4d` frr2epǚHL<9w(ˇR;_ܺ5666 `p8  @T 11oL\JJ] ܈BAhn5K @חdJBqq;Ξ=;w[n55)h2Tj rrƏwrw7hݍZZ,MbxSSéܞ_08Phhh}(aÆ [nM<ҥKR&An}bZ__s8:r8\ ٙԓ~X,9t边~HLl!t˗_I[AI]Q{F?ի#/VBrsrr*?}ήZŶ?0. EPt,]~ `c)_}y۷~޽[^Є]%%u=TmU ?f AKOPFLIHzC,\8tn%#cOt{L3gƟsWrmKKz@ddKss3bmذD"nذba0Ǐرd޼y ho[bccdŋl6[hs*9p@/^ܹsWKK|hC sYwww_x^OOo۶m 6hР~ PWWbׯ_p8w444̟?j=#~zś3]Ƴ#DEEMBOWs-ߢE#>|P[:QVV~L=tLkXX$H~E#={VYY) *HM-a0﹦ӧ ͛VVVHoߢ;iӦm޼9770v'Oܹ#555--mׯUSS'***Μ9㛚<(ٳg/^ :܊ 55 FDD̞=N>}0sL:~IJ*خ]Ə%" HRRFss3 FOMMܹs'$))).J'33> Рj Bg.X, \.W"׉  u=d„w%yzNJJڸty t $&yHr@U8X";wtss@>|>oRSSquuFmoUWWG :T__r9NGͧMVWWSqڲ8γgxT@rr2 /6z@{tttL?F <8n8-KO|vrr޸q# ;;wxS@]r-[=z4oP:Kl33Ǐ#2nܸER9zvth;̘q|ܸ#jcNdX@ _dIFFy;1 =ztaa! @P?vww2eJG >}++Ç'$$`X͛X,P!qrrr.@ lw$vbbϿk__ϟ?}t*6wrr*--%11qĈ{E? Œ3_ u@I1NpSNR= z>KKh4D!_x6B*hLQ{P /XA9sHv1t >|<)@LLZZP " IDAT7z{{߾}hZn70$5N`0yyy2Nz__}պux;7WA߼yGIEEE螔_~V ^~nѢE'N `0fΜaÆǏ?aq>|*@"p8\A0|KKK~IPbccO8qʕOv4/^<|Y $@f̘qk׮XY)S<  Z;rې!0js:WN?F2oڴc233!AzjFXbǎ^^^Fo߿?99yAAA{իW_"Ir+.pUVEFF>z(66?u-[P(cǎ;wO?ڷ`0AAA7nܠL&@ hii miQ6&`0vhllgB3nܸǏ0@ 5*<<@ BBBV^]XXuVڮ7o^lYkk)piӦ-]J%q:t(޵kܹs99~yydpaU޽͛[%A+Ÿ>tq,Y?; 1~q/"$D H[[%KYlY߾}ϾuׯGSVMMMvvv'Nh?Dggs"d8z7ݼy5u -YT_BOOoz[LLL&5ң}uCCCkkǏϞ=-T<gA6nnܹFFFk׮e0I`0\\\?z||<رcH\D l2MMM:.8^噛Kl6yBNa9#F_4\b(b=t[ءC'G@LLz|3tQ777>ysxhjj۷YSS3sLA$ѣG BΜ9fllo߾ .ĭ[0כ_d8ȑ#b0u!fܹ H}}~kdddiin:ލܹs\\u뼽kjjݫoffCs{Cvu0cݺudժUUX_D訯w^Ct4d6Q=¾1VBAwjs5e?f]~~|P"}㏇Λ-FU1W'O455.//{.jHBCT, e  ^GU~^~mhh؍HIIi~,7o899W0aNqz…Ѹ"0|33ODq&mi666=$%)-T]]b(!*`0ݹyu)!*>#ݿO-[^M+KKˏ?P(Ջ*//_z cǎK֢_޽Wiّ={vWϛhȁl999bη#. !b'XJ+*D(4Zwqs39V]Pp83޾-J@!4j…6l>jP(Bdҥd2Mn:j*۷WVV=999|Mkkŋ7/~ᇼİ9s9_^ӧOh4\`;!( }߱c*NőD16IJ)Qt{Ҟ=޵k  s uZnxznR{jN}\1]v 4ˠP( WWWw#xB?655[SCC~>|xHHHoB(?ӧmmmWZGEϗb8ɼmCt4zǣQ괴EDq$ u}{̘nzs_V옘WWWSSիW )3j@PQA33ӓ,l\|U #F͟* 9sfVVuP777;;ٳgwS+VXn݊+\dӦ랞s٠*K Zړm86AJwQQQ>>>=VR9$ENKl7Ysy#ΞM1=Tf#0+.,0 N_L];}b0,[l9[jjmV\)o 5[Ѱn.qyR]._a)U KK+WMrtɒ3g];d4$ QO{lܸe555 .\tiϻ%UDMэEE^G(?tCOOFf8G2…!!'6lzȬVӃN سgd555=q8;!]HFqBY]M3Hť߽12r!|?uj~tM#r*d @ @$jh]6P(@o޸̙wX /;ڵ qP@ %Hhl첁`ll !?[`?xyHU"T?`2EEBja!zZbYY=D"Z[Y[DP(C8[ bf7fѣw}] (ojj+*%+'O>Cŭ?Cnݘob- <8%XC_>|q ɪ.U@(x<oLvE&$\P+!TE1`z}BVVR/_=æM{Hܖ-Q.޽{'X,uXi8I SŮ]1?0ZKzP55|{/Eڄצ7X?uW62VH\O w2kVmnNttۿ4\NJYT63Ng (%K½֮#!bU.clclg+_!'ѣ:4A#1)I@ C" 2:3m9|G~W0':/ZJ*eKt2h~1B UU4#!!!"B`h#Οyo7m7cF?y %Sp8,ȷo pw/GD,ꥋ1rҥ#+CT[[#==GQ2k q]u 8kF\2lj* Hbbʕz>bff?Ǭ]4b[{t "@z l6AY Hz m͠C1pNήRzNg,Zto_5kz{@U@HEO U!ۺ<2ySaٓY6`\V^@U@9t@Ⱦ<4m%q8߼Ͼ'≯~}%DI?U#]RRWRRWZZndeU<|QUEG 5 -- ,- `edWybi{Jp"M{2۷ݴiA,_*㝜Lx*O?(-OI)X]MGS+jhll,->`jJkwnt<5k*\4SZzzYuucO**, 5ϊ"*лHE`8uuMٗoֵ0PDYH$"Dtt4ֆi!R\\kgR\A@gHDnFU0ŋ *w*'42KTUE /^ӿHj"Rdb%\'FtS<,Fnn՝;kTnAE)NP̀c1;Ǣ)hmm˽<4<)y  ->P,馣@xȷN/Pt jzbBb*b'&/VHg9>a\E;v\n̸qPH^j 9m1yS彥r<4PɓGtل @dD/4RKuG Dp)tybi%E pȳg-nLEgՏ UF ID #TUD$P"++Vjk-,U;1Px%oWʒ"*0%Jm tj6\ͭsg-,ڮh@Ut䎀XD+NLM66jLXiK7><6lJSAǙnn]GϞ]>"wࢄ@Xl/^]MOHȹp"U6MҀBUv_%LZΝ;ǎRg8poNU֬@URtHOQHL,UW7zzZ<_>E=Cm<4P,GMM*_[uL{,_Œ-&!!^Yb BB֣Xz<>R'JTdŸ)&&vbvUS==-uH @z5ꢪB #10X@ybi%Y,NG"ݽ:vnmm p3g*!@U831sG0FRCPvvPDKXlڌۿA֮D FiJH-XXZZWWkhioii`mmhaoee`aommhbBTk VWW>%Lj `0uGAd (>P@$~փFҫhGss}04XZ+nʋzƶF^噛\T!a%eIӧԈD --6vZZgف}BC~Ǡ q~7ȑYCv'91D`NMC ր~O˔9rsߏ<rQEÒHD;;'' )""hc6cd\x۶g&|A\uE``D֭ݹС{g.rp0A7?^.XfS @ E^\Cqq-%N"..[ZB`0񛜝I2JG>x;;xDcEFٰZ="06&f^~*`0`s HU"+(4ӢN%%u؉b>^ݧȑwOT308?hi4؄Jm.D`<#0̱cs&Oۻɓ,E >JT ϴ.$W77Ǵ_H@?Fcz#p&;6GNQ˶oXaY:xa/yч22x Y[ Q7omel9֯C u@ /4"ʄ:B]/pg/"da87o&yk`8Yi?Rچ9~IMMc{= ȶmVV=eeed.`0ŋ? Ũ._^^Tl6;&Ϲ Qp*@$-=ڦM+]YI.&$䔗7y .;-TZZL6{3g&O].X_R++iG> `ٲkf& vjЙ4̙oO;N=C X nn۷O pU"IuLLtkjYvtGCJhGԍVBAyy=}Vݾrևɓ}׮KtԠX,DzX. ,gqq뺽W}._~cg觫@`0`Ɂ1fp:heeO&L+@$…gO tL vKחԕ5՗ח֗WWweYS$9όqX%lpԌK55#^mms^^mAA}^5+JmFo_}iN %,>v$E76a?cF p8S^*.:}CsFSvqq y@jj*zիW#p?''O}}LTUTT>៩ktt4mff&o}+繣ӦMC pI&p9sWSC:S:Q_NNNBw""QyU <}͛7VVVÇOHHȻ^RRH&Eƫ.*(fjw}}%Kddd,_u=ztaa! @PxSvww2eJGg͛X,xxd7tR||'Obbbd35:::E>^NaiiE@ r`pׯ-Zhĉuuu}'0zbe[Ҫ%N$mM(8p@q7H\8W@[lA=Lmwީeٝyg}fgF~hM=#\]]9.//777< Zȩm(:>>VꎻnQ#ggg stv; !$E\q\sss,F_r}CKtuuM*m&]NыPR 0L---,+_PP2<<<99)B0|}w?.}}}l6_^^F"'''yyy;;;=4QYY}5XNj ^pXV^__5V5&o rQmmm>zsIEQt\@'Y48l6ښ04RP ڟd,/JVdOw{0,IB&ay c7?/#M 1CC)`h( ,jIENDB`XQilla-2.3.4/docs/simple-api/ResultImpl_8hpp__incl.png0000644001725400016040000010227513273140075017551 00000000000000PNG  IHDR`p7PbKGD IDATxy T3c.{D"KZT$$doQ)Y*JE҂$j_*Z(;.c1,_qyyCqQXH(P :xQ )8ϡC :pP | 999:::p333( $\AGGgݨSp5H(P :@t@vϟ~3ٳg՚ $_AAAJJJ{ez l/ yٳV ϏXv N::K.uу|||û?mn/ccccce˖effZYY})==}ƍÇ_zÇI$MMMFFFJHHh޼yXBHHð:k׮URRvqq걩iӦxx5Wll"a---/}ܼmOaaaQQрWFEEihhXbĉ[|0 𺍒텲߻iJJJ 0op(:pqqZniiR{!ɷnMJJNPxxxlJ`W:n}+>aaƦ&?OVYYYRR㓔D sssH$//a]]klkw}6<<аnܸЇûip98'###$$T[[Ktvv ruu%3fXz5??mBCC}6dȐݻw;;;9s&66vݺukߦѣo޼هHsεi?"z1]]ݶ{n{x}H8,lUyy;wxxڜ={v\\eߒ6CP l@XXĄM@؀͛{x? $@H(P :Apo߾N; SRRJHHػw@4.(8\DdϟdrJ$ H~O_i`^^^)3+ĉ8Q(Ԕgg257]a?~􊮾$.>3-y?{?4}t?R p =8gg9v,sGڌ8НX1իM.. 'p@zCi<~|9Jc{͊*oaZk+g8ge62:!//aOXHXLef׀;AtJcIIO?ߟ$*0 jWFrԊUb䭭'8H@GY,\8mo*//mm[XT)"#S^^u$XZcDBpkTk+u@ث4p|w<,3+܋]T&.LWw#<0H6fiyyޝ0u:8@pLilnPXXYEE u9$܂M5@ m5rɨV,qoIjqxy~]zuLFf qk 8DBpMMl$HЃ""N>I@b%PeeΝ97zҪU3Q, $h@iDe ͭ[OQW3Gu@lP[n_֯yc0iqk0\kd'N,6L>u@ PY _XCMMƍpG"( ,(,KQQ2"֭7V 撒ot Y}fE(QmmeoV8=(Bus;OQ8$TGvtWʶnMԔd=$BPׯxEDpﲲcSG8:FVVB 8B"pmfH$JF8J:PԋIEE[\ AǷov?DHPp;⪪CԔC0S6ΑƩ\9uHay怀)X/`S d/2'BP~ɵTjÇL{ӧ3W3(y;w^1Bnd5qP aXYY٤I6oތ:+jh C$PKKˊ )*]\=PСC-,,P'/^|9*%} ~ԉSM:%aahl$ :tٳ+32^={uTP ӧklnvY@^=R>|G0 Hx߿'t_tώٳh}aF ޿?] \C .rexmm3,@ƓزedɒcKJJ ݿ}2 \_~Jv8Hx҇ݣ233͛v,J[;1rr?: pP Ao(**`ve *-**:y;wІ&MKK7nB[4hP۱&M0L^^D&HHmmmÇ_pAUUU\\|ΝRSSnj#((8| .t}*tAffCgNNNԔuwwoii/?,& qwUWW;vJQ(}]>t{aXNN qqqt7vS Z[APgXoXjׯ׮]KRRR۶Ø1coh„ Ѵ$IRR?~@ hEEE1 0II;wܿ_IIi̙#ou6d È/1b텖VYYY7+ s  k^6P o(-- 200mQTT|E_&KKKooO9s1##Ȩjjj߿cڦ&*P]]lbbR]]ݛ]gt/N1 +**UЮ6'))SPg $-*aÆ˗/gggb흜׌[vHKKKkk+??SSݻ1 KNN655}}=ҥKmӧ##y%&&ֶ uW?0,<<ׯ_q?zֶ9ԩṗ/O(ЍқkO;vlkk+ׯ_WPPnmmݷoɓ/]u{ 'N C558.$fw'}yFu-?T7oc˗Nz0q]ޝ`h: xϟdfNM}IIsMLtge}s3?::N߷JJ;:F6GD8xG$nxyť>Ɠ& AWDĽ%KʊPy'O>PR3 s04aI$vr\g>Vh_IHED8zUgO2,gP TUU}pɓ,_g3vھ}8h񨨼e&MRKOL -:ɧp*m!OFG]:  rW,^BL t(~}yV0_a,n뛨&;i8KP Es3yo|;vCLM /ӧkhk3o@dӉ_zBn{7_Vج : $>::/:fSqGZǰ|-vfrHAAb۶?N\g# v&&'"6b5HcΝ]d;N\ðsrTT+&Ʈ":$[p量O,>(ٳNNӦݺfϞݿLNn^mmի#8}FjƪŋO|GeΝOJzvu@HN_|y…BC|rNll>H@ƈriiELLN=zmfܺx߾۷ QgAXZ57jjjqqc± z˗Od9RR"Oaaq&9811]>> HNfK#&%mHNv32^V;8LCyϞ]26C NX"eo^W׌:Hv^ɩ+de7_Z_8P.<<`2@ awLox2:`'|55 7^qu?P ,-XYq#&eXX"իJ\]gBˌ0ǮQMMv(t֛LY@d?/_Y[,^HIIr̍)?uA[`t\ڇ?XZuNT5;~ϴ ^k6l`xWqÀj{?~''?sqϯSMIqd銊v0fo+PgP DCCӧ8 :5ui,z 5bb73:HdSS7O' Q]݀: H$Jxxv =V>8$%66nL딓KL\"en1LbO&S.P(pJP YZn?GL;g2!%YUU葸˫c!0 htˣG: Wɢ**~_\/wuo tУGyx۹ڈr'-`Z{ݻo؍{KE F^:;KTK \[=ۼyhϟ-@"@Wm߾N #<LQ]u~K$zD[6RNN֊a(LU]vyKK۷}Qmiy&; \}: lW}胫k4DA:aa^^qp<]% IDAT&$]yceem^{%%I++[ޜ=u4nr|UcDd??:tٳ+mlBut栎 pϵ:;vL/J1 //9yO"os 1cƺ>|Xvy8=>]/֭7p8(܁;w.tBuf5 N"Q͜y.b΄ .]Z}^Hk̲_QgdP V^޻s?~JM?qy2ۅ˗/{u.ɰCˆ^2ur]"dd?=Z u6gc_Vpzz/s-H#HwTr@=<.ۗeٳ+EE}^@ ٳl<0(第^^W:LОXxCN3PgLP _ffo,p\n. 3H"9ݟT{Ӧt~})V7a0˓'RR@2أG?ؚy޼Q㰙FN;ɛ7G YBBsQgRo)W +665X0Hii/,-όIUUuSS 7De#`͏: `u;!ð O>ŘξmG7wqaC;oQg,MRR8<k됺&Z]mɁߜ_$eݺ [OO#qϟ 8lt\Z!!~ԉ۽t ..Q@.uBPf} ֠@KCCˊ!o^&! kqw:K S98D=?- aD&S%>L؂k^{yUW7R(J<( *!3e˂yyy7:gάLL|| uZ uwY3H$o" U0}55=-..tz99qqי3G{.S?CHE驣3H$M)RqqfcSP ËKJ'$ ,:R..3zx\~,(޸`-**K0 DZDz doݿ_liyf8KV}̦Opr(/A"`am1DOPb?pNܽcļy:O"GxݻwGFF%%%_X n -DEE_ EPPp]8C 35 =QL b7ov))r{MP7 ~ ȞutXHIkM !!!e˖=*))iɒ%_|xOl94G{ *auuuzmW+@L…nn磣]hiܼyuG QcWRЀ.-_@:`aÇ̄r Ô ׀kyyy .++K&mu7$ϟw]4h߾}Pa?d20nzXJҲXK|ⳬ;w::F,X0&(vBOIIQTT0 T*5((H[[[TTtw!߿f洴q )((Ѫ*aaAM4 0Zis-ee弼<HmmmÇ_pAUUU\\|ΝH$7DqkZZZtuu?~,""ںyf___>>Gӎyk׮OB{a?i@LDD͛7m{vԡ@v-h޹sԼvm7o޴{x71MPmmCuuw}? DSAqvsلcǬĪUݛERRR1ct??QQk}}qhI$$C:FTT0>>i>~Oqqq ?z(777(((;;;77Ν; .0BWWW/++kѣGf󋎎޽{aXcc]ڞv9RmaȐ!OFA{ G$l,X*uo35Ȏ^;:F,[aXiiiPP'm/vxu-455YZZz{{?}̙3FF].TI{`oHKKN%q>H466NNN.**?~9srssiRNNvxqqb$4!!!W\sNoAHHYvcځH!C|e ..uLtvs@cmkvBFoKgGqVDD! (q^k#Jurrڰa˗SSS1 srrNNNkFF֭[oi%''^tm>}TPP`dda3g&N7wh ?|ի;vtnVXXXSSs֭k֬inn-յq̿_zի׷M# p򰰻zKJJBۻm՛7o,# .;yu.0c{ycǶ8~u}L<ҥKX q?qzkkkIII? ۾@YYYDZZGGGIII))UVn'//pohhi먺NJJJAAãTMMMB$8S(11>9Rwڇf//!C[[[tsx7{%l몪ji8$]YpacccBכ>7ܤӝ7oʵ}I$ M:=+`A&)˗G=d,C vҥ#Fe;}ȤIn߾_ ?tm---!%%eϟq\JJ 099-Э555RRRMMM$i׮]Ckîs}/ۤ%))yȑΑ:m= Â$$$R%%%ihhlذ8n|;vEps3i ڇ [Z!a3eBBB***"""xyy;|tԹ@vUEwz] tn7 T ;m= -ZT[[aXUUyݿ_]]mX=@W^^w€(1e7bɄWtw;vXMM JP(>:LP Ϊ;=nn8yPxawl{8N{M[ m:LkO4ߤSUUoeuVTT06v8=hE{F)[fyo-ׯ_]o󯌌&L@w$%%ܹs}%%3g޻w}ºUazYWz&uyPuC7vnhiiEwY[dmBP/_^+!!:l==|G1aTjBBBuuIuuufu1OfVY7;tl{tN1 +**UЮ6.-$П?deEQa _|YbŰaDDD_$W̟X&zuLK uvŜWtw KLLmmmIM?}k;tgUѝDr_~uƍ߿#___[[n6Gf9Buv} 1䀪uvvׯ;& z?K@ր>𬬬Z[wքjX$s_uށ6*..NMM_KK+99q4m4;OyVUWӓ:h{&40^wf;"--aÆic67k$ee{[uYYYe``"(jCf {8&x1?4˧M: ILLܸqc-wj*Wۿ,TMQ(GjhhN:tfffKJJ:tdMMMYYYwwb+:ӶlI(.: V~vmW-uϯ_\8a"""mI\~ׯ_>|аb QQn.<$%%_z#F+>|x1ڵKVVرc!!!&Mz왫+fӟ={ennj*3gΤUWWJIIRuHv^Ubn$(M11իWfc ~ܺvy*kA7kTѶu; FYe2`9 -,wMͭQ+>ZYɓ}x,=gG5668E OE JKK{3S8̰aGZEEKJz: [ dCCˊDDn`7/^|.66D" u3EL&cV^^޾Cu^ jذaU)PD~֭ >@6-3۷ \¢rgQg}W_5g[͜Qg/Ox hf֭ל8ӧ;2*90ЦϜYQKÁJ7m ki{ňDB`_OA2zxiTvҬ`n? iq` zә3vPfz$//~Յ PgӏKomzj99qFKrrbhÀ%$1%e@TG fҬoy@4^8 ԩO~DF:ڬG3P`S.|/'OfRشpѢ{pŧ""ߗ&'筇e>>WM6p(+KX9g_N]8l7Nqe/>ugg{ qs0wфG +"5vM8Y47vncsN_xV׀VGSG^XH*Uvt: WP7MLƎ: } 6ޣF)n| tu7lmi>XiAABLT__ϰ  ~QK"Pz<=P遦|`ͭ[ޣG+yz^6/66L2C<}ڦtYF&So**J޹cf6i]O8\P18@4АGHLk#Fȡ+6N{$aC޳4$N~~1,\"ر /a3 }3;eAP K:Ϋi TT-kΎצN=̓K֓qFB£slqcݺH&LH6G{K?Zn9;2-O:tfyy:x0uT\緬/uS]ie+p>Ǐ?E}K?^yѢp;--$v_wSIIV&Fq}:S:ej:nfzСrffPaIIaOOǏwϟ[&EEO|}Y8Ammk֜711j"D]V  oV [۷ ߽ܰN{szmrDD֭.zzvgCN6aڎ8 2M^^G+:r ~ԉ#$į(?_QA- swgԄ!wc8e #,,2￷oblʔ;w^EvX$!!:MXoP;絵޺U8q~wsΝv:{.l߾ &%ZZZ PA dJʳҥ\t$ Pǎe,Y2oCv;z/reRfGZ7YPR u4gvc1>G{cAXݻ[z̙/|G_Ѷ@'~ժhc EE8fwS,.Gk뉨pX1Njɜ-ǎY=}iƌCW{SPaEO|?xF˘@!!R?WN;Ȕ22S@EFޫng.Zv/3g^:ݻJԹBLlБ#qqy: !(Ǐg,YrZUU:+Pu"PQEة@=_p sgoTP`U# &&99[?|>{{WQm:&&c}|[Pga U.Zt28ݦ/Ca@ΜJYv6 H$ddxFE9kll߲_* 8odtQa<ӧr)7oHKL8uG}x zuhoj,3\5x޽f11?xP: 2߿ۇ^urΑ )+K57)lS )=[W pr:G!:雯\YSUUgl`euOsx^^q--dYy`#EEW۾}DB^^0\=M}}gB{V{xg+5n[زhISz:T̿~:S׷ĻD͙}떷>'lȈbP YY^^B>]uuh8̱hӧknJJ kaljW:Tw%fq;>4oޱN6 ,QQAAA>(޽w::"po+_mBNDb5ݒ6 YZ55 z:T\\fyJ8djp-3**R^FFQ'bii*(ѣIP^А71[J_x\ڤ B,[&DeAAŋ O~?Ν/]Z-'':ʊ$jll}b„apg>ge޾} ĸʤɩ׬vϽWיr%%$<208Z_|ㆇ n[,AZZ $z3L:KS3Gu11.YY^CH88DKM}ReHJJdNN[裪!32<P'B@JJu ؠ@>IAA݂ۅ~E 0P,/555kP;z͂ Y#'筡7oʯ^]^ohG&A| ,MmqȑSE t0rPlo!nn=BAԩmZ[ۄ:K57vncsN_xV!,,E}[ōwAcrX֊ik+dg{y({,!(GOϟ}?lCCŹQBBS DWĂK:tc #GA tISS>0-ѣ<=LO&#+ ܹ8&&xPwG% 76$).F"QQ oVPT*aX~Қ?>|`~|`ͽ{ӧk^E[&--LQ߾=*->v,gk྇6pɢhˬڼ~{2ax^^ь*+9}N"o_gؾ=qԃṭ~J*@8|ۊ<&w u¤v0fbYZZ---r?;G"Q(+LI0[L+:x0u4\&?L|p5kf9r-EVW789Entjz5TDl^ jNu%*$&6y@()Io;Sig$شiȞ=ILors108ZPP??/DA"ñ.+QRD+@pss==(*Jo.3 ~~io1L :,%yv&t--VS:Uu"E̅άReeP)Bqwb+ݦVD VsDfHHΚ5efi-Z4)[ۮdeͬ}˗/^b]'OVSSlǖUGR\X1(?TݥF$xyy""6`,))OO#GQQFF99Msu9@eeE:L K}Ji,?[?V vQ^^~6ͣ{MtFbxmm & ! ǯȩ44-,,WOoitСyxw)*_{bOYa&@ uUQⶈ [V+*ڊQ* Ɓ=dC BY|.>n5˳-HCC#;sFzmmi͞}{7ndN19`/|wQO~D9<@_:O8EE5rk`vyYu^ p3T&$ҥt(@~~ռyǖ.=U]͈b23믿v21p:5+0ioc;wZ =Κ>{jaaЉ3k| `=>hpɠ5RB $[w7l؀tulv"mKaÆxrdrSn|=bĞ;>|1-#+۷߬Zu83g|yiK*i' @tpыL @ZZ8sz߻&@DW;qHiIIɰa໯̕KJJm¡|;رx "__h,lO0}zWY.bv`>C L w< =Ŋ.+ݱjp_o6,lz'L.=p\ǏO7cN`@6vvvGH Зj9yrDHc# -H6@ B̜-JKZ<b\mۦ[QwǧO >_U(kkcOOҫWe0+q^X,73ӟ4߸q#G:`Y!?A{{u\Uh`067(** ;uԂ ]bmdrrr$}ۜ΀60aBBBP _>f̘۷oϺMV(NpwX!%֍W*Pp/VV _nmm`0qqq΍.jaaannrsrr0LJJ]ZZZXX… >:ƍZZZΝx<٫uuu  zhQtGsc0666D*ZVV^߻wo[F!⒘ֹjkk  @ hhhme={vmm-"I zlvVV>* իWp8kֆ|ROOlذa֭`DFFz{{yq8uHPD-A7n߄M@^z-[9ĉj-DbJJ >P !*I7 d~~/4CѧXDÊ*( ݻw+W&XZZ'Ny;3J:99)3gl+mllƌc,+1;rjhht//AĈޠ bm驫ŋG}=z)S|>;"BF+E-Ay7|??JlOBB bR:YJ[5 ͚5+11ϗ؟Dvhb۷iaaP^lNQ\\|ȑ & MMMQ #==MGVVVhJff={,jkk-[6mڴZܹՖh;^ bIIIt:}ƍwޣGPpyyyh\kkkQKPnܸq/>x&9ɓ'zJd)bիW/]4rH{I@V%^Hhɒ%)n)mAE&%%ihhyqƍzzzC ٻw/7tWKZubgg 5=DSҰ' K]6..7n@g͚e˖BuQ\ ,ضm:f~ֹ0̤I\d29@ё=))ivlhhhEJsJ ƏC"H$@ ̝;7(((??۷۷o8uqqټys```KK&pٳgXbȐ!_D:ŰQFx]v-X@QL6m\ۄ޿4h<==nׯZ*,,^ڼy'M;oO>-mT^^{<{;t=A22 --Tw(,kKp8\z]Bc2K,166611 hll]lii 244c0hz\;::jhhPԤ$9z R6**YkZauuux<~466jhhlܸQXQmm LLL,--涬jnnvvv޺uhDkG͏=*UEa(L&SkֵnfkL$˝Eha @$00pРA) !!! a.E&?޺v{C1!sw$bk!))E)) H}}:^|c֭}7@&%%YYY_.\䄺\>|J 6,55}iE_7n0`6Hܻw/XUU B?pI*jjjw޳gϒd۷7p8sss333lذ"RSS`xFFF7oD`,Z:88X=h[AppGUUhP^|gMM7oӉD{6**jԨQ跶$J⇅v5ggg33k׶^t~"b~gbUUK SS,-חw(%EA}'H5977H$>x@,*Metݵ (Ϟ=ӧO' %m}Xhi&M ~ԩSL+WXE[Jrǎıct$H IDATuE r_wڡ,P Ր4cc[ʞ"77 gΜ.mQmBӧp8*(O>Eݾ:oRVZX@$>>B^ -- A>$  ]9|{ovEѝtfyy* ҽ3VWV'po/Қ>*M(666---55III$LLe7SºZiQԒVVV ̶أ'u0?%HggG`0OƘҾ*ϟ?„ ^^^[l@'O'o 6DQ(˚ѣ)я22~f___Kz(͛W\ٽ{wFFFiGb] :A CZZZ߾}amA&OT2LP'a={nU98Fmٲ̙3T*Fرc6Jea!Eʕ߽tn Q F =́)#7nljj1cFUUҥKWXb Z#1Q}Ԭj7*;`0MMeildGD$qulnAiX~~=ztAw)V,Aٹ/>lf/o[q Ny,@ IffO¦CuC+*lHZZ?7|`yۢp(@zzt>QvZVVEQ&|紴pm(7>_\`)EAQm(ƹ^矼ѣ]܆.^3XCۉ M`45mld4o۷,_~:"b΂_ۖ/=N$\XW@ G}}ǏtzǏtz9^^Q8;[ۺ-QB XLYYA6gyo;wȞ=mrs+=uJ y(4 tz^AE`dBtrpq!:;]\,SGﱔ*|6aB*ݴTRᰗ.49B Hii]NNevg9ƺTg9tr":;*&J,1xNš۷7(x?c,;>~%l*os ކVVTdgWTV65q&&zT*BpqDET!BX .orٳVV*8pټ9ʕ_ruUuuMQZZ؛!~ އl.(.,ΔV3:MJ$LdR={ۧۖn&> .;oYa2OTU kAann%^QShkkP(掎NN9bhw-C|f`-o[/9418c45q,9uqllAdyt fnne~~U^^:eZTTffNN F0(jd 5֬On}죣(_xѣ11Ft9d8^~~5^^TTSXXce - tޮ]3--o[ Jp#DήtUAtu5׬wo壉DCya+֭b s5.Ẃ(K5,/)a ..ѣQQPq8x4)Q$w0~N޶t&o_/_^OoO\jܶmjw5D l6:?*?:?N @d)lhfooW*2hjoxv⑞v6GV|\ɓKUUKmڔٽ{&RC$ I$d!D.B Qf>__,/\Hzumq]{n݅y;ѫ0 j!DQ$ʮ]3^j֬A}.]zqꠎ3jİX-6FJD1-tv@ I$GGs]]@FKYnV[0{Um8Y޶*xqNT"8^YY}Z(b쨠@԰F3!o[ڤlO\ϟ-\xb`%Bild2q&/b3fd)nQ=TP qq7&ܺC6El6o,V͛?mG3˕7 P_߄nBts!dBXhj7PMD7b߼^6H!f>ܺ D tzܹljD VAꂂ*&@ ll&dd!j $ ;b„ȝ;U.Gw̙ƹ[9w1}}WZXAl=z[hh-- ٙhmm } 1TV rĉ))vv&3ii,8>]d[0|}xl|JKK#ydgD|\(CxT";,\.@>.RmS)]Ŏ_RhwPT -TKU:E}TY o~2K%Mއѽre5\iM]]wQVVHZ9#?Xd6ܢr7T@ = $`߾[0%%TC>_xq۷nޠ{&DAAU\\ :Xvt4H&O>hhsjy-_;sĵJ$V.45q,9uqllAdyӝQѠkB9" h Zv01==H4aSxS._~n݅#Ggؽu$/0Gcb,os: '(-e`AAMaaM}}ZZɦB!$LdCCy@Q DEFD$_4p KlnA!C~rح[pXxƌ˖<__E&ߺE;~<->>P[[!6ټz R: bNN b<iuH7xIIm|วOsþ}S7~y"X,f={fFQ}h >_ѣ Nf-Z#;vL[rl/#у8A O@uH@yyq`X&Xs]Ulڔps. pFFZnm< HXصӧ?7 ˗a=^l[!z]f`5DQn(K \kPuDd2Ϟ煴 |x56#}㠠 F9BD Q$۲ŋE{q8LF.SSrOu'>ݰa҆ NUpsQtt4ws99MMm Ba}X&`y?%$bqZw˙]E˫9fzFG? _X3B $11rb⫮ d]]SJJ{˫*-9ҩ̘;FEGk]Sj^4֌ {s?@(j1 q#344狿mXLFƏff])̙oOl-X,y*]"ubiZ=p=9T2mڀa1)1_,+a0[hJ}q8&$+0p((>tޕ+/X@556;:Z^^B#DSnY?@ ֨R/6  櫯IIA.zĈ=a|}RJJvt,+ltus\JaI  23++bKx1K;{o J#LLұc][Gϯjh|}S)d3{F$%w^.:0; Q Q?[-㌥KGuax9<~5kƫVuQQΝ{ @tSЂ2)dbeeԉ'OR>X.a,ϳU%+.i|')9y}' ߂i~gX,ը!!LI$}n$D?<ǥoWl|!&c^֟<9EK#„ :Ԫ'SxlϏP(t/_deeh\UT Qt22_,J߾T[ۄ< Z"M>&c޽cٶmo/Q\\8j#adffv"cLd6iS-nxcUAF+jl` }d8D"߿яX:m=J/wޝ4i_ 4""BJ۷͛7[ZZnܸǬ̌H$Z[[;իk[7777z}:mo6 iO ۪MiLQiiiG`fggڏ H||}:ZٳL&bIlhvAVXl2@ppڵk{iUUU>}z̙37l Km]__/\n]NN΋/n/%Q{GT^^~Ν;wJ)-88Xŋz 󭲬A>|à rUKKKtd.Y$ Qt}%$$Ϗ`s!訡AR$fp8ޢ޽E9ROOi%=&&FSSǏ”^|&6!lkk; %kRp-!::D"]Yb7 I-y<^dd$B>|8:nk ŋd2<88f#X@ A~7=y|Ncv*G^(D"@  @TG VX!K"-P ssǏ˒@ j H@$@  @@ DP !u]&i``]E)׍@/ܼC[! tn)DtW?@ @ 5H@$@  @@ DP !dIENDB`XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020241 000000000000006f54e892895841924acd69257bb5885eXQilla-2.3.4/docs/simple-api/classNSFixupFilter__inherit__graph.png0000644001725400016040000000671313273140076022300 00000000000000PNG  IHDRp2kbKGD IDATx}P師^_N+u)RI7'Kr1 GmFS1rdF0 f<<@`T.In䔷G(Gu^^=g.%HD8|N   ތ V6^;tТE)GhSSSIIfJJJ,[|m;$KJJD"l&Ibܹ$ɯzƍ7nhkk[rezz:$!!A -nPww7Iccc 55͛۷oۍP(nݺU]]=w\*#ܨof]]ĄK2lJ{Bb޽DdRRRFFٲeZ>s˩ J$S?P[(zի&tm̥K1FmkksP7ŋ[5 6>ӕ/_{{{nu|{)'&&VXaU̾˗k###v(e˖99סɥOZd 8g"IR^x}ܻNKLLJj://rUE;;;B9ɯ9nHCCCS׭[j333SSSׯ_okk[~}nn.߿/t:]ff&Bamپ}T*?sʍCr8ۺukPPٳ%ݻw A- W^y߲jtKNNNpp 򒓓CCC4YYY/{r j(wK Cc+c^^.{>n>.QHtH?d2GFC}q}z~nV{\\B 5y E ۹BzcUU`2LUU3rׅ=۩ePWw|\u LJG-xzN <{~h49966nVКvlb2kkʇ z%ۗJK/ C+txxB6f3Ru ӧ/#d9^;'Pb˛=C8*ol#$־g.>[Bޛ7/dz0F#<Ȗ`A0k9 6!ҊBǏoa;p^P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`Ph̟A@ߌa;р#ih4F\!11Q09nӦM```@ XI [j3Z W)ia__߽{:3 LI {-83xb @I 3j+`r;c@^aO&8^ҢҥPCY)irY D#LS.S. LV>LЎ!;_g%%&pWhyٶ2aG$P &UI.o[ pThKK|>O ^sGKW,\8g0ln !jՃwB}| 簖Si¥+```````````````````````````````Ly~'W7oDrCXXիl9+)___KS^ '"33s͚5etP`P`P`P`k꫙4RDtkn޼Y PF+..}HǷLrFq:J_]uȑ/"$$ƍGߵkرc3K#x<^rr9؅I|F} Z)ߎخpX,^dI```dd]赁S H$?&fmqGMD"Qvvk tƑtÎNUJ0>>:w\JJ$ֲ'АwQD4|B(>>h4F#Z~wۧ#!ZJj:!!A*dA˵: LK/jsss?G}I:x`ccO?2>M^^BHPPKKK5dzj?@-x޼yA.**ζݝBDD!&200qFp: {vttTUUQ-$I8pj*]n߾]VVE4TH'P__ٳ)JRws߱c][n/^h:;;;tI߷o_KKJB#~{ѣűcN8oL7sNG-^`ppgϞ= e)FEESPPu͛73O8,,gOm۶ BX{z*--y(x;0?qO_ll,Y88 8X(0X(0X(0X(4EE)*1 zx    ̘2iIENDB`XQilla-2.3.4/docs/simple-api/classATNotationOrDerived__inherit__graph.map0000644001725400016040000000065313273140076023410 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x6e.html0000644001725400016040000002437713273140074016405 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - n -

    XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__dep__incl.png0000644001725400016040000000641513273140075021552 00000000000000PNG  IHDRp~`nmbKGD IDATxTSe:14qb9RLԃ?P :G;#d/'ҒIl<_"%8wZrF`m׽=n`Xx@  $ 23d*v |`}H ~i*s玵#M-[_~NBL̵k׎9bA0@  $ 2lO:&bQ?hZP?(6c4;w|fSb%s, rCCC[\.wSN =z4$$޽{NRٓOIIqWytD t<3l6T*|鑑 dfgg' ##]!n;}GEEEش`HLLX\\T\\l4,155uӦM| wl޼@&+++qL&S$a Y,D"ٶmە+WAƍ ϟ[?6l{}ߺukǎΝ󷶶ڵ+))`08 Nu?OGؘv<6҂}&y󦟟_LL ŋr}g믿ƒ\~ә<OVc+**G"G$ Oo͍fGGG?Ҭ,>?<007[x16 066ֶ~z`0v% l˗/aDL&+((joΝ;r}}}m NPP@ Xi4]g:&f+WeU{@NNNII  dXoD >t-ۄtƚd0jj:Ʀ|<ۄ56vi:lZ5\z׳oVQ!Y!xߨU.Ʉ憆.j̳UV[{h4[GL&s]=PUo s-3Kx?Դaf}r;#ҥ9BMM\W3kx[/͖s_,%¤REGlv bttHRW5_2<<F1>tF[`xx4< ?8^xyz%CHd aAHd aAHd aAHd aAHd aAHd aAHd aAHd a'J" FsŅK?%NnܸqIW\knٲefU!&_cd aAs-<& Boor s-B|9'GإK”J%… +W1\.`,Y$66R A555k֬!ɡ5TWW3̅ FDDc@ꫯ FHHKJJVXp!eUUSO=ERu:urp-[FR9cǎMsҎf+C"y7|355u```ٲeQԊ?S JE"d2Yii)`hhȺ FW\\,Ϝ9C$5 :VgJJJ[T* 4r:hF2nɎaW U(zѣ+V=,NjA0@  $ 2fk"IENDB`XQilla-2.3.4/docs/simple-api/DOMNode_8hpp__dep__incl.md50000644001725400016040000000004013273140074017550 0000000000000021a44f0466c715cca6a615e834e754e1XQilla-2.3.4/docs/simple-api/ATDecimalOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020722 000000000000008225d52d3eb5eaf3be8bd258408f88a1XQilla-2.3.4/docs/simple-api/functions_func_0x64.html0000644001725400016040000002050613273140074017325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - d -

    XQilla-2.3.4/docs/simple-api/inherit_graph_13.map0000644001725400016040000000032013273140077016453 00000000000000 XQilla-2.3.4/docs/simple-api/DOMXPathNSResolver_8hpp__incl.map0000644001725400016040000000010713273140075021000 00000000000000 XQilla-2.3.4/docs/simple-api/RegexGroupStore_8hpp__incl.map0000644001725400016040000000010113273140075020527 00000000000000 XQilla-2.3.4/docs/simple-api/classASTNodeEventGenerator-members.html0000644001725400016040000001517113273140074022307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ASTNodeEventGenerator Member List

    This is the complete list of members for ASTNodeEventGenerator, including all inherited members.

    _ref_countReferenceCountedprotected
    ast_ASTNodeEventGeneratorprotected
    ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType)ASTNodeEventGenerator
    createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)EventGeneratorstatic
    decrementRefCount() const ReferenceCountedinlinevirtual
    generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)EventGeneratorinlinestatic
    generateEvents(EventHandler *events, DynamicContext *context)ASTNodeEventGeneratorvirtual
    getRefCount() const ReferenceCountedinline
    incrementRefCount() const ReferenceCountedinline
    preserveNS_ASTNodeEventGeneratorprotected
    preserveType_ASTNodeEventGeneratorprotected
    Ptr typedefEventGenerator
    ReferenceCounted()ReferenceCountedinline
    ~EventGenerator()EventGeneratorinlinevirtual
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_1.map0000644001725400016040000000032413273140077016374 00000000000000 XQilla-2.3.4/docs/simple-api/classFastXDMConfiguration__inherit__graph.md50000644001725400016040000000004013273140074023456 00000000000000bf82c39e6f90aaf22e2ebbc9587437adXQilla-2.3.4/docs/simple-api/inherit_graph_16.md50000644001725400016040000000004013273140074016362 00000000000000e1062bf7ae73fed6018201b5fe8378cdXQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__dep__incl.md50000644001725400016040000000004013273140074021025 000000000000005fdcee7240ff2a54a20d3323bd0a94f7XQilla-2.3.4/docs/simple-api/VariableStore_8hpp__incl.map0000644001725400016040000000007513273140076020200 00000000000000 XQilla-2.3.4/docs/simple-api/DOMXPathNSResolver_8hpp_source.html0000644001725400016040000003467313273140073021420 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DOMXPathNSResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathNSResolver.hpp 698579 2008-09-24 14:13:08Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    36 class CDOM_EXPORT DOMXPathNSResolver
    37 {
    38 
    39 protected:
    40  // -----------------------------------------------------------------------
    41  // Hidden constructors
    42  // -----------------------------------------------------------------------
    47 
    48 private:
    49  // -----------------------------------------------------------------------
    50  // Unimplemented constructors and operators
    51  // -----------------------------------------------------------------------
    55  DOMXPathNSResolver& operator = (const DOMXPathNSResolver&);
    57 
    58 public:
    59  // -----------------------------------------------------------------------
    60  // All constructors are hidden, just the destructor is available
    61  // -----------------------------------------------------------------------
    68  virtual ~DOMXPathNSResolver() {};
    70 
    71  // -----------------------------------------------------------------------
    72  // Virtual DOMDocument interface
    73  // -----------------------------------------------------------------------
    76 
    83  virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
    85 
    86 
    87  // -----------------------------------------------------------------------
    88  // Non-standard extension
    89  // -----------------------------------------------------------------------
    92 
    102  virtual const XMLCh* lookupPrefix(const XMLCh* URI) const = 0;
    103 
    114  virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
    115 
    123  virtual void release() = 0;
    124 
    126 };
    127 
    128 XERCES_CPP_NAMESPACE_END
    129 
    130 #endif
    DOMXPathNSResolver()
    Definition: DOMXPathNSResolver.hpp:45
    virtual ~DOMXPathNSResolver()
    Destructor.
    Definition: DOMXPathNSResolver.hpp:68
    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to name...
    Definition: DOMXPathNSResolver.hpp:36
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.png0000644001725400016040000003023613273140076024570 00000000000000PNG  IHDRp bKGD IDATxg\R(J[TR6ݻWl "z)W׾X@,OW]qQ"]&`Iḹ5:3Γ93C"uv*PtvήVemm9[ MIQT@٭c̙gϞ-*| RRR;! \CT*P $TVH$˗/U/_H$ƥW\S^ۤ ݻgcc#BYIii;. *`ddԧOV n9A$v@Eb0 ʺ|9D={ё |~DDqDDǃVVVoߎ2223gN}}=ޚtB(==MCC6)) !$dK9Z__?o}:dȐpyQl6[]]o߾=z(Ba 2>,]FjvPPиqJJJtKll666hSN!޽{E|>/^ArM齓.yf#9ollP&2L 77XB''o7{s:ND~.^},UWWGRod2E" Edraa!~yE{{{miiy TJzz̄*we6Oŋ7mt rSSSK]]]\prrBUTT888%oݺk׮OOϨI& W^MMP(/BқhEEE-b2V\\loo/DMtxUU桿 RJ65T?~|XXxd733+//Kl"/DԺ |uuu•gbbB&KKK˒sssryyy؊$;&J6)S16s@BeDгg޼y3==/:ujTTTEENݿdTpp W\YQQ!/D"\pQT---y b2B`TKRV*+++,,ܰaCPPͶx<rcbbB,ӎc"If>._;g@ںw^wwwGĥKLMMhll?ŋ9p333]]@&KGbggGќKV2'AuuuWr6sίƭ6.}Ǔk2Nf浺*(,l>?r޽{+*̇ H$gs}F`PH @BT*PINN9QZ~~~g7;'%@w3yo"ʆ!UUu}PD?֠=f\Ѻ>Dz3ɉҲ<ؿcfddy٤bѺ{켼 vvp/"## mHHȒ%K:Q_ H>P(qqqqqqݐ/ * PH @BTnJ?P;!CUVV>$T@O'={[ff6fnhÆ -=/u~INNÇeNavCڏa` _HB =:;(7,'j62:?O Н;E57󍍵 $ T*ryOV=|XvNQnniKDv(G//~tvA H&Jy&Q5*K{<747 'Ѿ} lmGgiUg7,P_%/$7N@sABtulv˓'( :b^g7 &9?՝;EEU"!N#G:B]$T@W=ɓ2DB&6F9W:( Й VNNInnÇeOVq5QOO :ڻw'`׎D *#4אɤ?$ѣhvv\P_-+*P75f;n  J$zNѫW$׎^^60( >WEEmnnÇeoAuukGoo[uuwPx<BFWQQ][z~LMM9$QГABz>`%CI?_}[E4vOKtPq6nt# j={`NPDӫg_DRr2F @rƳ䆆&AxP廇˲-f29{{x]lG_H {vlo/>VS#D(_>{?i!; 'njb&/=Bzz~DD d5ccf:nPa읜(H @7WSy!ZZ 9l $Q> mq/|unjhccԑmi}Z^^j hں[_՝ /I$ wm 3J'z3Юd~'hN0 ̙3Ϟ=٭/**:@)NH$g'Hʯ".Wڥ>Лv…S_ 3f8w\Ƕ / ^ o[Z憆:.Bym߾3ڴiSBoDjuPzE37ז@ bxLf< BQׇiPn@BT{&'OP(T񒴴4SDrpphu{IH$˗/;c7% JKKBcƌ={vƚ5kƌk.H#K BYYY2q7N]I?2Agݻt'Dy2=zxx[nժU&LkhhX|yLL+^`%ɼsN02mg70{{BQg 6Y!vZSSHǏ<|ѣ;9%%wƌ1S Eݢ/FppCB򋁁̙34H޽{^L==W;4!D"Qcc#.B)}Q3-? <=m&J6CSeddԧOSS_&\.!dee*VG&HT[[˚.###j*UeKV>%^|ܜd"Ξ=pB|>?""8""|D"effZYYݾ};&&hΜ9xkQt777 [[ۤ$/ qevĉcǎOǏ?qǿN?~we6D";vh֭III6668~޼y͒`&z'+!!\]7%䔈DH$"dwY,B(33388!$<8eʔ)S>>fͺ~:BH( UH)ڵk^zW]V2}7o6Ol֭['O>^rlْSBZZ2=b"[qny/J$6|A߿d߿\ϟCvؑwqs֮][PPpΝ~)11ԩS]X??m۶577?^f^xxt!pȑ9srqqr%%%!7bĈ6w+?` >?B﵃B?ŋ>|G.[,))iƍNZlÇ8x 8))iŊgΜ ڿLu2O 7.XpBO?_Jo]Bl__>88XށAI>yNJMq7ᡸU,kڴi۷ob0UK(Yu^^^\\\bbbiiuV^-)S<8{Le˖y{{Ǐ߷oA||1cΞ=??~|x?99yݶ7owx}||T*q̙`%їܢ65 ]W>yd'''ի?%Krssŋ{xxdffجYf|>A\.F_rEfx^;2B 55W^j_G}߿%Ʌ ~+!77W deeΟ?ƍ{jhii f͚bX4ѣV200M qW\YtAXW-&%khZ"z3wYxjkk899*pصkRWW/((سg%BA(U9rd۶m'N444?~͛OZ/^i&q*///CWWpZQQ#Eߺuk׮]111QQQ&Mӧo߾5qӧK~C͘1c…[li5x`GBxX vv}2 r߾}Ǐ /444,..& &O̬/rHGq\HZWW`N^OPs8۷o^q ;v{ٰa=xwΝZInP(cƌٳg5ѣǏoKBx'N Y,˕l򁘟ߡCtuuKJJN8/@3)NwFsl*"$uYC+m{3q0ZciiiddD&B٣v0eAZZZx<Fr6mBX,|fſ@lŊ *((şyyh)] ƚ5k%K8mmmcǺ/GcQQQ>>>'N9rնmr( 'OY|Ν))) ƢEZ7n/jjj!*zȑ0/^00P[[{;ww.X^zݒ%K$"""BCCMLLJGhCM>=555&&F ߾}{=z(JDDDVVV_3Bxʕ+IPp4~CCC%c;޽{/[,..nΜ9}7n\ddd>}\]]+3Pr???Yf%''/]tIpek_>`o$ҾfTe!njjjjjjccsƍT555CCø0OOy}TTLOOoǎAAANNNցB jOGIDAT#GT;o+,_<,,lvvv ۶m#F҇Ni=?B&ٳg555DGGKJ|`)S,[LUw::у=͜9yÆ &MUӧ>}0~k@,22Ϗ`چP;ѣcFFFF@&2`:W_FPڵ8T*PkDs߽0M FSc#/(^pm @O$&`pjvMMÿM'H$$O{H(uB%JNڛ]Bٴi~BHC E!o.B@H/DEMBo[r~RRyyÇ;I@.///iO&tA\R %"xBoLoz zHh WVSS I-"b_}իW$ãV=C8_HsOVJ^X53{( ^Uq(5[[coo//77K55hP!D󏢣/65L̑rMMCnnYnn^IW5LఇG_CC=$Tֲ7o|#@6M^Hw LLt,h< *ݻoT[[e_xaYnnY^^Em-Yx{zy0 QMM^[[iUs3wougg3|:tL> HJ|eHapl 9_*Hf<Nz,'`jvvnn*Ktzenn٣G\.W/!VVF răJrpjuv3P]xpN|𠴲Nrpã/< t:H/xpNz𠴱E0\|گ_n# `Btze~+>_(98eà#@BtN˳gEE} ,(mnO mI544Qdgg3//|hB"/sj@B2ut4-m,_0HWXXjpD?pJ]G ;VA+\=*g29T*HqTTӧ'L 6ݻjT=yd\׽{B } |1~k׮yzz"w^HT[[8vFFFd2!8qDǏ/\Pz}mGu{#d՚!6j(sgB/_677g2g:::r8Ϗ011166x533111VVVFFFs̩[Bihh&%%!pqZɲ΁Ľ_]QQ:t(;„GGGmm#Fw%Hǎsvv622ںukRRntt4BFF֭[Z:P_GGgرx4JV63f̘1̙3wjӦM{N\vmqq1BhҤIYYY O>2dHxx(6~o=zB섄.&LHHH(//qpyΝ/^|͕+WBhd, P~~>K'"((hܸq%%%t:%66V#G :z}cc#F :uBݻwG wenn~5q {{{.* )PL[llx۷oqƍ/N'_~/^>\\R۷og2"b By ͛7ӧOlO8!^ɓ  Lx<2\XX׹x񢽽yyyAxV▖/^lP$Tj|p3gpy6}4h+..?jjjB^޾J`!*ڪhEEE :qℂoEA E  ?~|XXx!>)d8%%[lrE"Qjjj]]݂ :y21k֬O$iĉҿ{.((|.m޼Y^_M~ZÅ211!ɥeIIi;pU+UW/^?烄 !$BBBBCCϞ={t|ԩQQQt:wQׯ/,,,,,\r%EHfDpBcc#ǣRZZZGr޽̙pʕ{/X.]4"""--ڵk7nnܸݻwƍvZqqK bnnl2===Яظg۔JZpÆ AAAu[ZZx<Fr111!L +VDFF^~_7%*N)ʌMk{uwwxA\tԴ ,^H^rknn733 d2xtA)))vvv4)--MA̋AX777MMMkk5kp\ |ȑ#{IHHիװagaaa...ZZZ kjjo٥%Iꂃ LMMW^r/ewW_YZZ8p 00ظU\G(&&&ȬN&*L0B0}[aii_^p!..ɓ'M?N`@7DgϞԔ-*OJ EFF6551 [[ې%KkPtC %.....j!_@ * PH MI255[3H"55UPB155.<) P $T@ * Pާ'U;IENDB`XQilla-2.3.4/docs/simple-api/FunctionRef_8hpp.html0000644001725400016040000001254113273140077016705 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    FunctionRef.hpp File Reference
    #include <vector>
    #include <xqilla/items/Item.hpp>
    #include <xqilla/items/ATQNameOrDerived.hpp>
    #include <xqilla/runtime/Result.hpp>
    Include dependency graph for FunctionRef.hpp:

    Go to the source code of this file.

    Classes

    class  FunctionRef
     

    Typedefs

    typedef std::vector< ResultVectorOfResults
     

    Typedef Documentation

    typedef std::vector<Result> VectorOfResults
    XQilla-2.3.4/docs/simple-api/InputParser_8hpp__dep__incl.md50000644001725400016040000000004013273140074020577 000000000000008bd7d3a72bae2ab448ce4c9ec354a27bXQilla-2.3.4/docs/simple-api/inherit_graph_20.md50000644001725400016040000000004013273140074016355 000000000000007fafe65affcc870606155dce5fa38d45XQilla-2.3.4/docs/simple-api/URLInputSource_8hpp.html0000644001725400016040000001031213273140077017320 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    URLInputSource.hpp File Reference
    #include <xercesc/util/XMLURL.hpp>
    #include <xercesc/sax/InputSource.hpp>
    Include dependency graph for URLInputSource.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::URLInputSource
     This class is a derivative of the standard InputSource class. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classXQQuery.html0000644001725400016040000022531413273140077016134 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQQuery Class Reference

    Encapsulates a query expression. More...

    #include <XQQuery.hpp>

    Inheritance diagram for XQQuery:

    Public Member Functions

     ~XQQuery ()
     Destructor. More...
     
    Runtime Methods
    DynamicContextcreateDynamicContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const
     Creates a DynamicContext based on the static context used to parse this query. More...
     
    Result execute (DynamicContext *context) const
     Executes the query using the given DynamicContext, returning a lazy iterator over the results. More...
     
    Result execute (const Item::Ptr &contextItem, DynamicContext *context) const
     Executes the query or stylesheet using the given context item and DynamicContext, returning a lazy iterator over the results. More...
     
    Result execute (const XMLCh *templateQName, DynamicContext *context) const
     Executes the stylesheet starting at the named template using the given DynamicContext, returning a lazy iterator over the results. More...
     
    void execute (EventHandler *events, DynamicContext *context) const
     Executes the query using the given DynamicContext, sending the output of the query to the given EventHandler. More...
     
    void execute (EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const
     Executes the query or stylesheet using the given context item and DynamicContext, sending the output of the query to the given EventHandler. More...
     
    void execute (EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const
     Executes the stylesheet starting at the named template using the given DynamicContext, sending the output of the query to the given EventHandler. More...
     
    void staticResolution ()
     Perform static resolution on the query. More...
     
    void staticTyping (StaticTyper *styper=0)
     Perform type calculation and related optimizations. More...
     
    bool staticTypingOnce (StaticTyper *styper=0)
     
    Query Information
    const XMLCh * getQueryText () const
     Returns the expression that was parsed to create this XQQuery object. More...
     
    void setQueryText (const XMLCh *v)
     
    std::string getQueryPlan () const
     Returns the query plan as XML. This is designed for debug and informative purposes only. More...
     
    Getters and Setters
    ASTNode * getQueryBody () const
     Get the query body as an ASTNode. More...
     
    void setQueryBody (ASTNode *query)
     Set the query body to an ASTNode. More...
     
    void addFunction (XQUserFunction *fnDef)
     Adds an XQUserFunction to the query (also adds it as a template if necessary) More...
     
    const UserFunctionsgetFunctions () const
     Returns a vector of all XQUserFunction objects from the query. More...
     
    void addDelayedFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate=false, int line=1, int column=1)
     Adds a function defined in XQuery syntax. More...
     
    void addDelayedFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate=false, int line=1, int column=1)
     
    const DelayedFunctionsgetDelayedFunctions () const
     Returns a vector of all XQUserFunction objects from the query. More...
     
    void addVariable (XQGlobalVariable *varDef)
     Adds a XQGlobalVariable to the query. More...
     
    const GlobalVariablesgetVariables () const
     Returns a vector of all XQGlobalVariable objects from the query. More...
     
    const ImportedModulesgetImportedModules () const
     Returns a vector of all XQGlobalVariable objects from the query. More...
     
    ModuleCachegetModuleCache () const
     
    bool isModuleCacheOwned () const
     
    const XMLCh * getFile () const
     Returns the name of the file that this query was parsed from. More...
     
    void setFile (const XMLCh *file)
     Sets the name of the file that this query was parsed from. More...
     
    bool getVersion3 () const
     
    void setVersion3 (bool v)
     
    const DynamicContextgetStaticContext () const
     
    XQQuerygetNext () const
     
    void setNext (XQQuery *n)
     
    Module Methods
    void setIsLibraryModule (bool bIsModule=true)
     Sets whether this query is a module or not. More...
     
    bool getIsLibraryModule () const
     Returns whether this query is a module or not. More...
     
    void setModuleTargetNamespace (const XMLCh *uri)
     Sets the module target namespace for this query. More...
     
    const XMLCh * getModuleTargetNamespace () const
     Gets the module taget namespace for this query. More...
     
    void importModule (const XMLCh *szUri, VectorOfStrings *locations, const LocationInfo *location)
     Performs a module import from the given target namespace and locations. More...
     
    void importModule (XQQuery *module)
     
    XQQueryfindModuleForVariable (const XMLCh *uri, const XMLCh *name)
     
    XQQueryfindModuleForFunction (const XMLCh *uri, const XMLCh *name, int numArgs)
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    Encapsulates a query expression.

    XQQuery objects are thread safe, and can be executed from multiple threads at the same time - provided a DynamicContext is used per thread.

    Instances of this class can be created by using the parsing methods on the XQilla object.

    This class is dependant on the DynamicContext that was used to create it. This context must not be deleted before the XQQuery object. Normally this is acheived by the XQQuery adopting the DynamicContext and deleting it when it is deleted. However, this behaviour can be disabled by using the XQilla::NO_ADOPT_CONTEXT flag when creating the XQQuery.

    Constructor & Destructor Documentation

    XQQuery::~XQQuery ( )

    Destructor.

    Member Function Documentation

    void XQQuery::addDelayedFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    size_t  numArgs,
    const XMLCh *  functionDeclaration,
    bool  isPrivate = false,
    int  line = 1,
    int  column = 1 
    )

    Adds a function defined in XQuery syntax.

    Parsing is delayed until the function is actually needed.

    void XQQuery::addDelayedFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    size_t  numArgs,
    const char *  functionDeclaration,
    bool  isPrivate = false,
    int  line = 1,
    int  column = 1 
    )
    void XQQuery::addFunction ( XQUserFunction *  fnDef)

    Adds an XQUserFunction to the query (also adds it as a template if necessary)

    void XQQuery::addVariable ( XQGlobalVariable *  varDef)

    Adds a XQGlobalVariable to the query.

    DynamicContext* XQQuery::createDynamicContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const

    Creates a DynamicContext based on the static context used to parse this query.

    This DynamicContext will be suitable for using to call execute().

    Parameters
    memMgrThe memory manager used to create the DynamicContext.
    Returns
    An implementation of DynamicContext
    Result XQQuery::execute ( DynamicContext context) const

    Executes the query using the given DynamicContext, returning a lazy iterator over the results.

    Parameters
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Returns
    The Result object - a lazy iterator over the query results.
    Exceptions
    XQExceptionIf a runtime error occurs
    Result XQQuery::execute ( const Item::Ptr contextItem,
    DynamicContext context 
    ) const

    Executes the query or stylesheet using the given context item and DynamicContext, returning a lazy iterator over the results.

    Parameters
    contextItemThe context item to use to execute the query.
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Returns
    The Result object - a lazy iterator over the query results.
    Exceptions
    XQExceptionIf a runtime error occurs
    Result XQQuery::execute ( const XMLCh *  templateQName,
    DynamicContext context 
    ) const

    Executes the stylesheet starting at the named template using the given DynamicContext, returning a lazy iterator over the results.

    Parameters
    templateQNameThe name of the template to start executing. If the QName includes a prefix, it is resolved using the in-scope namespaces for the stylesheet.
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Returns
    The Result object - a lazy iterator over the query results.
    Exceptions
    XQExceptionIf a runtime error occurs
    void XQQuery::execute ( EventHandler events,
    DynamicContext context 
    ) const

    Executes the query using the given DynamicContext, sending the output of the query to the given EventHandler.

    Parameters
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Exceptions
    XQExceptionIf a runtime error occurs
    void XQQuery::execute ( EventHandler events,
    const Item::Ptr contextItem,
    DynamicContext context 
    ) const

    Executes the query or stylesheet using the given context item and DynamicContext, sending the output of the query to the given EventHandler.

    Parameters
    contextItemThe context item to use to execute the query.
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Exceptions
    XQExceptionIf a runtime error occurs
    void XQQuery::execute ( EventHandler events,
    const XMLCh *  templateQName,
    DynamicContext context 
    ) const

    Executes the stylesheet starting at the named template using the given DynamicContext, sending the output of the query to the given EventHandler.

    Parameters
    templateQNameThe name of the template to start executing. If the QName includes a prefix, it is resolved using the in-scope namespaces for the stylesheet.
    contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
    Exceptions
    XQExceptionIf a runtime error occurs
    XQQuery* XQQuery::findModuleForFunction ( const XMLCh *  uri,
    const XMLCh *  name,
    int  numArgs 
    )
    XQQuery* XQQuery::findModuleForVariable ( const XMLCh *  uri,
    const XMLCh *  name 
    )
    const DelayedFunctions& XQQuery::getDelayedFunctions ( ) const
    inline

    Returns a vector of all XQUserFunction objects from the query.

    const XMLCh* XQQuery::getFile ( ) const
    inline

    Returns the name of the file that this query was parsed from.

    const UserFunctions& XQQuery::getFunctions ( ) const
    inline

    Returns a vector of all XQUserFunction objects from the query.

    const ImportedModules& XQQuery::getImportedModules ( ) const
    inline

    Returns a vector of all XQGlobalVariable objects from the query.

    bool XQQuery::getIsLibraryModule ( ) const

    Returns whether this query is a module or not.

    ModuleCache* XQQuery::getModuleCache ( ) const
    inline
    const XMLCh* XQQuery::getModuleTargetNamespace ( ) const

    Gets the module taget namespace for this query.

    XQQuery* XQQuery::getNext ( ) const
    inline
    ASTNode* XQQuery::getQueryBody ( ) const

    Get the query body as an ASTNode.

    std::string XQQuery::getQueryPlan ( ) const

    Returns the query plan as XML. This is designed for debug and informative purposes only.

    const XMLCh* XQQuery::getQueryText ( ) const
    inline

    Returns the expression that was parsed to create this XQQuery object.

    const DynamicContext* XQQuery::getStaticContext ( ) const
    inline
    const GlobalVariables& XQQuery::getVariables ( ) const
    inline

    Returns a vector of all XQGlobalVariable objects from the query.

    bool XQQuery::getVersion3 ( ) const
    inline
    void XQQuery::importModule ( const XMLCh *  szUri,
    VectorOfStrings locations,
    const LocationInfo location 
    )

    Performs a module import from the given target namespace and locations.

    void XQQuery::importModule ( XQQuery module)
    bool XQQuery::isModuleCacheOwned ( ) const
    inline
    void XQQuery::setFile ( const XMLCh *  file)

    Sets the name of the file that this query was parsed from.

    void XQQuery::setIsLibraryModule ( bool  bIsModule = true)

    Sets whether this query is a module or not.

    void XQQuery::setModuleTargetNamespace ( const XMLCh *  uri)

    Sets the module target namespace for this query.

    void XQQuery::setNext ( XQQuery n)
    inline
    void XQQuery::setQueryBody ( ASTNode *  query)

    Set the query body to an ASTNode.

    void XQQuery::setQueryText ( const XMLCh *  v)
    void XQQuery::setVersion3 ( bool  v)
    inline
    void XQQuery::staticResolution ( )

    Perform static resolution on the query.

    This operation is not thread safe, and should only be performed once.

    Static resolution resolves prefixes to namespace URIs, variable names to variables, function names to functions, and performs some basic query optimisation.

    Normally this is done as part of parsing the query expression. However, if the XQilla::NO_STATIC_RESOLUTION flag was specified when the query was parsed, this method will have to be called to perform this step manually.

    Parameters
    contextIf specified, the StaticContext to use to statically resolve this object. By default, the context used to parse the query is used. This should not need to be changed under normal usage.
    Exceptions
    XQExceptionIf a static resolution time error occurs
    void XQQuery::staticTyping ( StaticTyper *  styper = 0)

    Perform type calculation and related optimizations.

    This operation is safe to call multiple times.

    Normally this step is done as part of static resolution.

    Parameters
    contextIf specified, the StaticContext to use to statically resolve this object. By default, the context used to parse the query is used. This should not need to be changed under normal usage.
    Exceptions
    XQExceptionIf a static resolution time error occurs
    bool XQQuery::staticTypingOnce ( StaticTyper *  styper = 0)

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_36.md50000644001725400016040000000004013273140074016364 0000000000000029835c9abbfbaf1576fc13ea56f7b772XQilla-2.3.4/docs/simple-api/functions_0x66.html0000644001725400016040000002337613273140074016324 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - f -

    XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemoryManager__inherit__graph.md50000644001725400016040000000004013273140074024240 0000000000000069ce9f2fbf8161b30656c8e18972602dXQilla-2.3.4/docs/simple-api/Scope_8hpp.html0000644001725400016040000001036613273140077015537 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Scope.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/context/VarHashEntry.hpp>
    #include <vector>
    #include <xercesc/util/RefHash2KeysTableOf.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for Scope.hpp:

    Go to the source code of this file.

    Classes

    class  VarHashEntry< TYPE >
     The class that stores the values of the variables. More...
     
    class  Scope< TYPE >
     used inside VariableStore to implement variable scoping More...
     
    XQilla-2.3.4/docs/simple-api/classATTimeOrDerived__inherit__graph.png0000644001725400016040000001632313273140076022523 00000000000000PNG  IHDRP jbKGDIDATxyXgߐpA0!EŃbElQux<b[Geէ֊EUlJmR*R.! G834$!&;}?w~3$/ q]B/'8@yyD,޽[PU BEHHHHHjSaaarr򈗄Piii)RSSGfBCCզ Op<xb3f_YY8Y"!""'332X,e/H$P(6mڪUtmhhp [%z{{sܔ°_~kjjG7a„ 'NL8<Oc^UOll%KN:E꫍׿ٳRlmm5!djjjfffmmM]v988x]v ׯ޼yspźpႇÇƺN0aݺu;vˎ=}41޾a{{{>щ<~3d+$RRRԦhPVVU__uHիz+ʜ=4D! ޓWaJDW*Z)+KrcbRƊR,(nl젥$ja`l6ӡ 22Jݤ0eZZȖ3,~wr8hOπ9~'hfƄudrSt|]0gy '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@ AwHBYXLcѽU3~ZWW]sBCC% UPOp<@bUUU] @IȤu`42iݣX= `X&L8x'Olmmw^:K7 o %%e6DiDSNBCC;;;O< hii!E/2\Yc1F}#ŎQkkkb H&C'5 +=d2b`ʕw~P( :~8Q.\:8pޚ={C-r ;?/pnܸneeaXu< Op<ӱcӍD`C(ڟC_ cNlic|=aaa7J`ZJjjG}[IIQtB%hb@n#ZQZ[enÜQS(OYYw`J<= 1j*)-88^\X"i"`ziySy.ͺx%QsԔ6Q.W$'R0S\<^*>z( JJR//^,z&x2Xff %Os  |tμymQgI '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@@ *N +B/|||܆nO zQ+a3`Q y '8_|bD۫D"H$ <==Y(esNl/}ZXlGENԂX[!!!!!!xJNN^xq``̙3{źpႇÇ۷oWe2˽s玎N7l`oo V0 uuu0aºuu=WcDW.]1c۾}{?M sR*'O>y$׿<==U/RiBB577N.8T*utgzꀀjP8k֬CPz "7&&j X'fҥDcuDCDrD" pR4a'N~:˖-;xNțo``f߽{pwwLJ V0cƌ b陼 ׾7oo6o޼>7ߤ}Xq6m4eж?-^:y<^||H>׀ '8@y8@LJ֣ '8>@w!zO35 rKK߁w}50%҈[fZʱc⮸;}Jw-T´Szz1G I(O63&FMÔ4D! aʋK"t0SnÎ>&%C9 Yᨯ\|/>>_}ajm%} Ns>'OP(***sD"kjjϟҢî;88:thʔ)wݻwovvf$D"P[[ounh}5=)qRO*jDĸEa" F2@*ڼyO?D^|ۛ:::3v]v%%%ׯ_wuuyT`$qmhqm ۟p/**q>KJJ<{LtpжT*477-֭[ovNNL&#^R< t&k,@c?0CO詿2LP? D0 v#I\cںq|(O?/H633ظqL&xpжĉ-^{5bx̙ף;I\oz)>?8~ĉwyk׮oVc{A۫Wɷ껻:Dl7J1@O͍+Vݹs'``̬766E"Ɉ+W޽B0((}={, ի[l1Z54 *?_v-y;ٳf͚V/??4iիG4iҷ~⿵md?x֬Y\.===ke'I: жa LJ:0#T Gaq? h '8@`(CPӧO'MҞaU^^, @hm:B&?*8 ~_}Lw-T´Sff)ZV!0ʓ\ʺq O*I xpL23Q"M?,W`k$D!t|bbxML~ByCcIO=yyji8^U0SV/駥1OJRYPPAKIOMM%%b7l#_0SFFLK+r#+ǩF{z9l?A33&#/_>B ǽ? Op< Op< Op< Op< Op< Op< Op< Op< zBs,,VtWa8D"0H.A0iiiD2ZS#h6t~ '8@sΝ9sfƍĔ/bppI߿@ 0gI$WWEx ,Yvpp={-[EgQ__fc4<8ʓH$m۶ q7-[?~ӦMNNNO...>r䈉oqttT*O>QQQC.:(OO<#"0[[[U{.qzTT1e;wѣ+WɣdlllEϙ3磏>JKKr)Fi FrrrfϞkI}}pdɒ+W_ڵwy'11haX||+VXa ;;{ݺu]",,,;;輴tժU"-Y,U;'~UߪY\aJ299yڵ˖-۶mۃ DOA/ o FEIIɉ'n߾}-[?.HN?%%%**k׮5&ypO>|왿?_,ܛUVqܥK"""\.oLd^reǎ<oʔ)6m*,,R*?.6**Bu6o#׃ geem޼yѢEvvv6 ??({O5E L< sq#}:1mquuuD5nnn痛斟mv ;)S^-IT [Ĕ3gH{^c>v옳38ϝ;:E?YYY ,ѹO>] >x}UWWiXlx R/˘UUU\>,Z(!!ŋׯJ;w,,,qƖ-[{J$PkG&={vٲe:j[|'nݺVXX2s!N6I h<]SŇ~7lܸbٵ\.;sL|||CCc@@@HHmF xl„ j=8@y '8@ys?쳑Ap=iaaa ra7 <9(y '8?g,YIENDB`XQilla-2.3.4/docs/simple-api/classItem__inherit__graph.png0000644001725400016040000024437413273140076020503 00000000000000PNG  IHDRMP{)>bKGD IDATxy\S.eCRֹZ$+96Hucj$+UtHR9S4_3=($Itw :&y<IR t.YYY---oooqg Z\o К(ȑ#ŝH_@P* BӭŝHocc_@p~@DŽ:cB1PQ;vP({B(uIHHK0̍7WFFF__۶mAR(fH=(h6ymI4O>t:zٳ### Q}]_~zjFFٳgCBBT*AJJJnnn8:4|PO2@[|Νɓ'!#####C$B]].M|-SSS zuE9rDEEsj%0h[XX 8?W_ 7`=zݻ e˖2LYY/^x/_v7Çķ  ܹs իמ={.]Էoݻ-CBBﯪRYYɟ$ŢRjjjT*bw8u&Y_|t* AkKpppTT޽{ ϟf  ׯ AgΜݻ)S+j{~}ܹ@<~CCCo޼Yc"߿wg}GT_u<,@B@+"N7&::ZRR$I߀`o A'I f#""H>}={۷KHH h ebb"1Nnhh{nbbRAՙd['^pymFc*** ̌ FIפּU``ϟ޽kooODii)F#bĈkbb-[6mT{,h^feeJOO]Q;ywDu&Y_|t*CӽKʛlv.]j~/X ((̘1ZZZA$p¤$^ 2uT޲iSfHIIᕘTTT o0::8/~tږǏk… 5رcl-Z"//xbwEFFnܸw_S]6555&&f˖-?.+++ww>$&&ZZZ;v8/~t6i$UU- ,6 oUx޼yϞ=p-[ۏ??h![XXL>ݝΝ;:q!Cxyy5$ߤ: Bӭŝᑞ'ĘBe:<'өӹs._,\.hn <{q„ b 3I! n Ъκmgu[$01PtL~…ĝtD%}}T#\nitt4Bw^*3gyҤNNnj1wj@hiieff; B |l6F{vYLVԿND{xu&)/B 4qq;w>~!.-QwFЩ̂[_ ƽŝ<a8g<:ӧw:AЈ_~̇^]mbG u@CK.yO2D…qo/99{cFF/^\޵+<hPA͛wTGw:B:x>꘶v˗Wuw:mKO>?}'\Dut:>>OOm@p_\nLںL@P@'nW(\c gϞ-4R4 BIMMo 222GvR*:daÆ޽λYxq~~٦R(&P#G(,,]䯁55$Ih>}ꍳgΎ$"_FFFuHވ666uo<&&+..oYYYϟ/..655-**$%%%77@SE%kFRRRrr;w&Ob``@ AL& uuFW^xݻWMM-??_UUF۷+""BBB S?/f޽'L0a„&K y)lr5))=ŝKM4mׅB 0G{%eٲeL&SVVŋMPJJJZZ{wzzz<999*[*ӧϓ'OjtP(aaa,JRTLJ:gWWW^Jeee^9ξ} Fٳ5@::S\}آ4ĝKMX;;; ͛'Hpਨ{̟??$$w\HHH~LLLId2O>mݺ޾kך-**ɩ͛7pСCk{}FDDܻwӳvvvW^ ߾}[VVvԩuv?|RRR<<<6m$Qt4$@v^c<.jYttϟI#")).Aܿ$ɪ*  VWW Ir{n`0oK!//?nYXXHD~~~RQQeX߈111JJJ׆ټ&&&ݫ?R99ϟ$ikk^_w.\ ȟ :h3@GeժKs皶 lh46RN7&ARRRVVV{S{|Yc0zzzAyzz:::FEEh`aa=!!̌аޛ2 ]]]t f[׈kt={v@@CCCנkwh}%99YRRR[[_3+{{۷_][ZZeii{[]q@'f̘{˛@FGG. ڵkfffuyeuׯ_י@'ID@\.Ⱥ%$$rs066 -5mB|{fUUUΟ?_SWW744ݻww:tc^5>Q\\\{ׯ_?~7o=F}Uljpppvv͛7'Ou[XP@q% HbŊ)Sornnn[jTK w#IYFFP#IbݻݺuׯGiiiuQTT|}{L eeevYVVV;s)mmm{{{jxҥ={trr*--#II^^d6Нf۷OOOONNnԨQ : PAC!_h޼ɞ1㐃_%뻷pHOOw"mBN@8pt4+V\8PsE***>}tܹ˗/;hm:WWZQQ_9^ųg'L \a>:_ߨ4J5: ?@Yx`>:Ͽfͤ1cŝ ^}IWWuKq&`:/oܾ **ԩYꪊ;u{_Mbdk;BܹĻM)+RTw:йv ݿF܉|cᶶħOr99r\s\q'>|yо]sKmsg%/u˖SRwRйgЎ׼y;vw.዗׍k^|ʕ?,X0kW_=Ўm(ytq'ݹpi>=_,^|&3Ν ${w@u[h]KH ZӚE^U{Fzpp]Fڸ‚:ںCllޯ-**sp8'__')y=QRRys=,'竝ʐڸ…:ڴ Ozi4UU1#㋭II..J3((z[hӶm VSS\tL mGw EwƍNҭeaѢ3h?LAA .W(;e-- ~nvXqgP7y|=wLEE^ q^e5ۿߦgM8f4h$%%Y,<hs SUU\{g-ȃkl6NiVо؈; z%99ոGEϞsr`ee&`ch[v 54G k||!QQi%+EW~ok{r 'KJБ; $wñc D4Dvv m;fƍ/2<<~Q/_ WP$'UDc gϞ-4R˭N吚JdbJ2DAAaذawZfttt/^,Ewu \.}ME Y6{eE1I4O>t:zٳ### Aٟ>} _޽{߽{EUJKK޽{jjj:sPRRrssJ2JJJcbb&Opj7%ubSSӢ"AFQ ii"8]܀[f!N7˗ %<< o`0j|`0>z{N K333*^QQaff?rƍǎf0L3ghY#1.;n8OOOƯ6^5:4@8sMD߂#"Y*h4-,, $!!$_>tPYYY Uw֭_~.]mdXT*UMMMUUJn{C :tAAAVVVnnnÇ$K 7`=zݻ y]"""cjjl2^K&)++ |}}===%$$GRݟ|@ٳ ƛ7oƍ?.֗C:$IVUU֙!Kbb"Il6[]]=""$ӧٳ$꼨(du[:QwNTNN$Iںǧz .΃1ӟgfz̵kvp\vL__:::/_:hGP8]]bxӦ`8+Vt&uT=yyyZp!(ր ///mm^zUVVVUUIKKo۶  2eʔWWUUIIIaeeÇDKKcǎQ(''''''+*pBK\ `0o Ӯ3mxn߾}ѢE===&Mt-` IDAT4bĈ޽{\Ǐ>;w/}:eʔm۶9::VoٙJܺuӳOhUb>l6wmJj7oh+VL2 ussy]tj5B999.[;޷oܨQx5yQH+((ѣ}62u$'Nߵ+g B KPtcv~~~ND$mllK m Iѻf{up;wy w~&gac՗1]bB<{q„ |ѣS xSX+/*zy-VLh.qAbqJ\\zhZ!ܺ5͛OaaeeBbppرff: u=!=B-!!TU iF3+&@0~mr 4Ǐwzz .N^shđ#wcb)*vka(ceu*,l}nRBIO K/]hK(!eh%VbqΟh-/Mέ[m/9u O%%%lm/^p yJ?.qtPQQi'O߿FWWфӧ'w'hyJ̙C45ZbZɓlmG%1a,+WbTUnig7m5@:ZCL?PX^ڻ׺塄PCCiϞʅ&-:Zùs 25qnJ Y֫Pk!.z5vЪ*ƍ˗*>-q#q~iɓX =~o!66ܦ)/:DҥHEEY0Ά 4yn۶JV-_pFi@ۄ:DEӨ][sjlD?k + J;@4u/|)Yo!K>k4͛I#==gˋh<sO:Sټ9@VVzʪn TTjh=1f y B)..ʕ- rZB\+eeU[\0f˖b_8<K"uuU^ K5~\g 99.la1P,94 RVVgo?B4;g֭\6ͻ[7[\Q@< ւ͎qի/kGVUݯhzz-=BrR̙C}*-WM4upkTvv> FٳK--‚:D"9SBBg[ RY ٳwNN>2ׯWkH\TWWuĈfݻm4]CE7di/XplĈ~ny |AA6X6 $7o0FՇnm/Ljɵ#m<_VV}LTT$%[íɬ\ңGoi\@PϧN5VVkFݻ/^!BON_,<8إh8?,#˳gשּׂ57Y,ƍͪ>^}5OII7֡uW/ 7%%…37TO0?j`/hXa"Iո 7:hٍzb\џvazz;zd ?CGGG܉@}ꍳgΎ$"_FFFADFFfgg)<<<++_~W%%%111^^^qqq~~~'OƁΟ?_\\ljjZTT$(JJJnnn Zl uiMr--ٝQV_|[ ^&H˗/_R(p ޾* QѣGݻwoRnc6ƍǎf0L3ghY#m.;n8OOO( : \ۻ}+((>))k˖"jO/;@DCF?~!$$$TUUyTTT6nXQQQj,JRTEׇ*++QLP УG{6zzzJHHTR҈>}|X]q}@yQQQ***QnΫKKK?N{} |||Ǻp|p86zzzYYYun߮{)))˗/g2C~skެﭒzBB3aаNvuv={v@@CCC_xQ_*-ѫpD @ps6))+77no0yЃ á%ruu' AVVv噙yyyjjj޽JKKݻw#&x/,,.//RǏoܥK_ {{۷_][ZZeii{[]@'f̘Q_u v횙~}utt^|Y |<hܯ?hxeg]tݺ)]̣GoWdhWש,"?˳…  tdddxyyikkKJJ^ںu}CYYY!11رcUUU۶m#L<==&Mt-4bĈ޽{\?~ùsi7)S mQ8;;SԐ[nyzz6tLX,c+&mRw+ffUVIddj߾TWW$}+VL2 ussy]to_,1-qǎkϞ EA÷ǎEBWUgN*1cqoq'y 5g-O&::*|AOOuDD\200n%#VВ#y%[Zjo^xmK/oolk>~cǵ4cƐ[!:Y] <~4H]Ʒ_^kNnADOv%vhkP@#H|0e1 -q#q~f;_yӵoWnOL^vr[{@ F$'g~0m.^|(3kЦOL<|m 5Zcs<|vݺ%VޯGhCظMhMpyyվ#G6lyyŗ.9C##G.XՆ#IR)G ZTTNUTiTNpۭ䌦 MM,uԋǧU\]hhBiiżyǬbo@5Jo&j*W~~dHvQЦ`ꕐQVy~~SRSS< .^Y~]<{3t, u+22UMJ{bb9 >yP455ž}{չ7z?R3_^?}9/#Kd$~@JJz IDATMI̙TTCC)!D$IfggGļyQp\pAOOo޼y cAf͚ϟ߼y^^^QQQ{uss+(((**111͛7:<؈{yzzի$IqmYY٩SJIIشi@(@G" EhX,ۥKu&&X, MLQ`6}lpr)/Cn-))g$HJJo-I111JJJ5WHLL$I299dr8B٫JBBիW큁zzz߿k^XXHD~~~CRQQI444711^[iiIuwwOX.\hW*P/3:H ?\RR={ª؛7vI޷lٸӥKF M `0tuk^.C~.CCC SRR/_d2]peee^kjj!%%{`aa!!!̌FOOOШս{:Ξ=; `/^{UUD8d Pgީ*WyiVVfIL̼x1f!' ˫/9r$a;"tooB'fǏxeYyy5J?~xa$$$޽{{ֻwo.]jpo߾R///KKKM7Ǜ(,,-(. ڵkfffuyeuׯ_7p<CllNb 0@ν\r˖Æ?_ȏ8+,,>FzV㼼<{{{-\`$$$41???''Ǐ>;wy%())qÇXYYYUU%--]^^m6 JJJxL&K)))߿zj֭陗7iҤ[n1#F{ʕ'O---;V߈SL),,ܶmcݝTjHHHNNέ[ODıX mݐ!;Q{{yyUO~ Hzاφ斑eÇog0rY[bŔ)Sp\]]]77-uWM[[>7aΝJJJ!!!y {衭}q;;;UUU5fyy -ZԳgO חߞ`dnذXVVhΝeeeGo8K*++ɩsyLfl}Fś l/B^MfͫcGpnUV]]<vu'@ ÆHdH ++;`?dN+e>Y{ӧ,-0@:Q{4669sLo/\89TVť+Al<Ќ$IKWVJ =+h@ffS&y%:5SmYgws_$$ZtoEkҳ nI(Z~}VVVٔ"/_vcWkeڣFwB:.--il\2,,pvΜ9oUg_̤ќuG-?|:eܼtvR^^I~M4yN ׻jCp?ۏƍ7ш umYYՒ%g޾_YTEЄ;w^/ZF}m8y FnYYUS4WNӧRӚ}/ŋϤ24PEYyΫk=zbqq --eq_~~pniC)w1,,yx̚3BA;`@&5ɤ++k[ݻV+ZQUUhق>12^ݿ1z_~ ybo~^p$;w͵Z:,>]ۄa :'37onieRKOxf/t++1co  $ } &,'u4,^Wii xR\\rZbZZŋGlЏA@aa iBDz2)g}y14 YӲ~~Oklm*̙e't6nC7\?>=Ν,!-Mt\A۷d2I_"#SN|No8y2zժq2sdLӮeg= Id2oR[A@gA@ѴĄ?_t%/\x`6m~~qGZ0wEׄulӬGGҒ۲vѢQ/6۷Æq޹*++neӤXuu5k;yZot. +TU';犱cΞ]6} Lt\Е wh t{{# i_l5l622m۶[7nl_w{n|%**p%y ttzC~~9g<699oݺ MUU՟?x |~+oڵw GE;ٳl͛gə~ <i8OߒHظqC}| ed֬4}pۯƍsegX[]v\$0@@m4:wJHpp!nÆRRbm6SEgW?qb$tم qo_+Ui0н{G30P#ƷLÇϴ>K&Vj{0fb_99 V Og޹ a%Khy tomŋ:[a~{㏶MgXqr8?x̙اOOXY %%Uk֌o..Wz@s?su_u -<-+mld>a޹X,G2mW7xԩ7d=x{0/**͛G:㸫k`NN[s8\BBΑ#<ɴҹtiU#mZZZFF233Bbbbbbb!:RQ閛)**-z{{Ϛ5 !=UݫC&BSL166[zuKO0a„ ǎ۳gOkON*VS))~6a祓'c쌆YNDZ1x0Ѿcӏ͙gC#8xCX;;!Ǐokkk``=1 MYYYII͍`ܺuK]]!tU}}d%arrr"޾}ܜJIQ%&&FKKbժUDI:NR_zߵk?yI`_>"" ~%"9s渺UdeeWgXח;v/: pܻ7=4h{MMӧY[rxV NPUzӮd$wP]ejO]~wC^f8addԤ@VVVePJJJ5PVV񪷷SSS-,,~gǗ-[|"ee/^4iݻw&Lػwo5",XPQQq9PYYYUUʕ+ B%%%DiӦ޹sG^^`8oddf,=}TYY:1~BbbLK]=%%qMlԈWQRR -,,PSSkwH[/@}$::jܹ̙󇺺˰aK6C]eǎବbǝ̟/>\$xaР힞] M9E]x'{9B III4<8F#GEE8^QQabb￷ԎH<8766kihhȠ,ѣGBJjj*L&SEE%&&ӧ{yy+m%k9Ԉ'$$8Ru}}K.que@0X삂 2qfŊ īZIIy!gOثWqqYǏ/RV7N矧wI<8GG=t(2#p S?UC=zX`` TPAAAƭTAeeerrOa檪rJKK#ddd֮]gϞ(?~|ҤIyyyMEo O333׬YC͹K dyBCCMLL}}}TTTRRRlmmXZZrWoi{ 6NRgϞ2lذpbgF33370jX,PLIL6'#pŊ **g.';ՁxTT)G뻼'y,+((LJ3J vMbxO>{ 3͎sn鮲=01 }{<..|}&&܀ ð GGGA"[;99o%`<T= 0 !~l6~vʜ9 yI$y!2 GeΘq錤hdkPІ X999/^\fc0j"F/dF&&'{,Ɏ϶;vXd+,oxbܹ6l0acydiiӣ9dѣM^z$kK%9WVֆdi^g傎"`#GP(d%BBd u]\͓eαXl6?!Uhp̴(>x?xv a,,ܶmpI Y$#Hg8ϗt7pLM5{-NLՒH֭vzzJtz=B;~|Qhfpb\.y37))NJ%%40tW !B!IKUHزecv옶f% 0 qHT}]TUU#ɣP B(:yݴ9 QQ7WZLk~~Y^^Y^^ 'No@6<GNN\YY !D ȈUޓ IDAT߰ٸ:-5R^^`JH&jk+ Hq߅y4̢_k9O4u Aml,n y--ymnF N2z1AG>3dH LfUEE8Bl!!%yy:XIIk6`|a2+XJ&ɬ. B4)>wDBG c]XEC]vvqmm#BHX*%OduEIIM 14( ttYGܑOL&^VV?dȘ(L^LƷ74nqtthM|ر2jk+*$`8~x[[[ r  :ڲe˪UWt:J ldш+\b뉵\xPQQё׼-ܽ{e*++["qM :TIIi˖- !榬%78lVh <zぁ .D͟?;Cݼy3>>СC;w,//_`AXXqB1l޼ !!!22޽{脄///ww۷o>|ӓ{,ׯ_xAff[٨D>}ᑑHc>~˘]vuM*9m{9B III4%ЃpollDeee1LǧOz#YYYscc#L~ 444TWWXKrr2g-܏8- :444[cp'Q&55(D```@шQQQfffc6X-zH`` TP0 cccⱚBsNL7o^hhItt/?Y,֐!CcIIIZs#Q-ʼn4b``@) --J:m ,+((ǧ\]]*pƍ`kkk ~!(++䜜UMM-77x-8 ĨB(33b1+**f<zB\\\IIŋ%oѢEYYY\Ɔdݻwҥ|6B +$$e˖?y_]x1.]͛7o޼ټys^^^I駟%K ͛:uSN<8yd%%% !C491%ZUU56ֶ̊=| 2;99umwu @0Q\h(yy AqL&{f۷_8D”εvի'3X462i !!!2mm))1z _Fx;yNO:<(h(ҩSKĄ]Kyb,Ol6NU>{t,:eܸZ5!AXsk~~9}TUiҒҒ}? 4۸qb_kL&8KH^ׁ6OH|VMM~yFf~~y^ޗ2 T@<n_x0l߾RRǏOaJzmǓ0EWWIWWUyt07iT;Rˣ{@*޿͛edAA ܹP]]=bĈDoo襤$ww;;;`{F+((󫪪g- ttv6.iEᆆhim[l-\\45]Oq<::]]EUu+?ccFAGBAAAm{5aQQQ7y5++5Bhݺurrr42mھ} ,ΝkR!yfǍk׮άl)L<@n>??=lj$wa<<~,Z4?HHXd"c*+13]W@8~x[[[>G\\\ ֮]7;rŊ ۷o=z4BHEE(pmsss*JLq]jBðCCC99C%wE&;#/..O4ɓ&b~)pssSVVVRRrssc0/]D6gWWWJCC,B,cǎ}?o/S.&{x_}]60@^{f%s/SSs>|v WUխX}-E|l___=<<hiP$33SLLϯIŋO<Çƿ;UUU+W,((Gph)b ,8wB!TZZ$O*++ N6-66N8(##CsWstttssKNN>}t+c{>ñ{ԩSNRgΜ1c!!***?R ܺuROOگ_JOOoe:u {ɳ{@k[oxڦUGgڵ>~l:Aӛm>>rrrO^pw5o o!qNo۶ؘJyzz6{ASSsܹBUU? +++//vښ~kq_vNo:<|w}G ҴGp{:u[L%wO%K#, \\86}D}]j܏?JI :`(@@;;99 _Fx6< 05 M]hGǑnz!))ks+)8x<C j ֋qjkL1Sh{3g&%~\ gϜYLO |f2kx`ߔTϘqpC[YBiӤp moaؽ{)2;Xii̇w_Lff^<ЯdfMv43>"uWmnddAA7m ŕ!t{ kEX؏UUuvvG tЋ@ďd!}! æL1fْ7gdGйs66]KCy'S,8E70lNJʍJ…_ʊZWS@,'0'Og2wu 1W z@p0l6߁!!5OH$RPzŠ_v4u߾ y֬[*TO.eHto[__At&&& :?,_B7c0XUU OxM+*x@?71\$bx0~ ynm}u?XɂE¹@?~𝖖$z5AG4}ISSh׻uQ]{Epvvp%nO]~p .`[iӎ ^PPγׯ55]OIN A#444zЋNny|e KK&fAsttU,k„ wt ٳbW-\xÇbrYɼy=/L&\g+kf:IKK]|NJJsޢE5t֬V3$;8>}c?ۍ?XYo'3 )Sde3$yf%%feX`gXX 2e8ŦREr^}RaBC7z,{ϣG66"GyyΝצNa0.aa[8Ig }JJya&.."//&c`feC҉)酶Fܮh ;;w_?ԩIݾzLqs͵F0 cW*"*큐Y ))s~%ŋc;bb۷Oury`ĺu4=(N 0.bbbcǎMIIi|(6혟_ ={FhT===''Vv),, xmGeeeT*5(((!!y…|999 TWeÌh4ٳq<))ZЁdܝSFFfΝw~ut =濮;.g..;|  M:GLL(:mٲ1u)** TTT:\ZZijp]]BHKKGz޽{ĉϟ'6ȑ#SLdl6CC366QQ Ý*=@lvUUxƍ䐐u&-UW ^^^~}=65vra̙3ge:9kq++͛'u_ &{K^=_ga-S'$$$,,,--M/))9v/ZDX,njlzE"#wqFмyL&ٳsΝ;wٳg4N8122rs߿p3f\x+;q"sWQ(^~y, IDAT97=f׮2œ'c:܎^p𭚚r..W=zXt@AA̙'>|(ys̙R<333IIIIIIuu+Wq^;y򤦦ý޽ۤnK'N(..RM6,_!T^^~} >o̘1-ONO> ,+#ޛ޵$22~RRR?͵y|{4c9Ξ]{͚Gܻn常̮nCɜ9Pq56Vt8@:x|^VV.Bv׮]+W'^UUULpT3R555з{ [.++[č7>zb 2X[PPpΛ566qȭZ83Svoaarc# wKRR6;G) W/**?>穸8J")r?ncf1 cpZ<3 ..sݺK ]cőYÖ>y|{Һu;twSRܴi5^]tTs1fIJvItB'3ڊk =>JX"==#E=RίKKHDKsxvx>i'IHLhp~tiiuhhc}KKmKKܺڵyN̝klMM.\SXXpYMM9?TEo!%%Ź|ILMMwww{{)SX[[kiiqY]QQ1))Ν;nݚ1cQɓjjjVVV ۶mXbE+mmm͙jM6m߾]WWw޽oʶmS~{`u%BJ8gJEEe᜹UVQ5kָ 2dݺu]))Q\`jaүn?qh99wx>i1 !)bιcRRK|%&mtWҿn~M@V;9_ 70/ z#B(88{!~4+449""B!ĸuxciiݻu-۳gb!Wvfk99”F&BZZypdiZ[--ua1߅LRg28ѰzO2$]˨ I =~|7ϟ_iggD\L͠A?d/nk֌WVb2 (sX6X1!tTlwNHlgg>޿G~?cSN\(X@/y_757$!!zCAab{/wlg'zHK+h>m8|8rϞ9&xL`I)"""B"Tpn WCjX7q!TXX04))TUe Ss|"蠾0TT_ffd"#SEEƏjg7HQ*ٳ'0}>I\qv}}e!0DԆS{{c&iɒH$ҙ3~14Tuu隚ky׮滧N9znj'Az،vPWt,/\~]o^YGSC/ZtVCUUu+?uu_ )8筛O媪[Ɨ/.jj.?vNJa-) JJku;xT?Siio[ފ?/~Ņ]>}ׯX zC͛'(xE\Yqq^qREO7蚊-*kjM\CCVDi޽sƎ{2…}s[]p} #3;vLQ*Ux߾v!h4&ٵSPיDEE{9 od2AWWy!lOH(1yEF9;"n,66pB\OVs-> |6MJJT =A brVJl컛7l׮]$իǝ=B!q`MN~`au2{W9ڍ̼iӆH$}sA@5zzrrie#X@_y'f2~}0qfDԶ3𘙜ɓK*+kX[/))9v/^zC"ƌ5+6d6lGFx+g3CdG0'xzO?~,UWw11m=cy{$= %[DQ)nQ\hm-*Xn_m؂*EEp+p  l$Lry}ޘ{16A{W2h}ޖZZj))KMHHGhh(1(a3gnٲ`PPɓ'w$XD";v$466?x`޽Iy#t:=##c͂+GFF3x)+}7NB"w :}s nwkk\^?H;*_~٧2Ҷ(DJĝ?Z 8J3MM^ear-jiիd2ݻw-CLEO}GCxϿ;JeXxY}c8t RRR "琐Szzz.[oJJJAAARR7 ,Tq5  .3q=15Jp dz[f u ƪU\]]"""|}}MZbȑ ---DRq)8kkk͛g```ddxz0455]\\n;c]ܻMMl/d4J6<ӷwϜdrƎu;t(4.yBH&B~]uP&'.]gۙL?R|P O>CSS}Z,-pjsx/Z4DWW}XͶm$#B,<.Wfd875wltyy&UV֭Ys{[jM&޻qժ1)>HCCuڴӦ 0O$uj::jXl=|j@;''گ~5Q '^, >t/\Vߵkڔ))QZa**$+@>&~9eǎk֜X=~f0gՏxrrmɕu,_>R[[M~́<2SQp<'2/j ڸ/55ʬY%@>eVU1MTQKM\DWN j0 ŋYZԪB.ޒ%CV[C#>e%BFry{d_꧟Aux MH$;h?|H55M׳V.aJJ(l}"4Go/zQx 88oPt al=++#uuG.Y2dǎ?tiDGx S\\iii$< }B專uA V\x+b̝;",,dr]v9::x{{gff%lvxx J gEߦڹ`d6{L&v+(Ϟ=ygܟ3' [w7Um +8aacΝ[ޣj  drLLL޽?>w\-[Vu /t IDATQQU__?c ]]ݻw߿Ç-"JFGG|޽{DjaÆ;v(`d ðzyBGB<Ѯg|3gw<;;|b!޿es/_V.Xpڸ`G :)@I888ܹsIc?m^6oqҤI4mرdرce^"##/^C+vs}X]JGG/*99W>BR2RSER.^\I<l2ww go߽{r숗eee}FPRRB0 0lȑ/_lqxuu66olj9ͤIo' ٠Ru>_~2wsB,,d|K @yHcǎݾ}2\\\L,**277whƅ88N322PG܄Gq,, \^yyJTU)Ubb?J( @pn>6mS"#TU,y(ݻwOKiӦ|ѣGׯ9s%KϞ=[QQq 6'OnݺW^3~Sq EUT,- B4w70۶%Kjk\Vvg˖?~{Ysz66ЩA NJJJMM%^˗/PUU>}uTTTN8ںuI$Ҕ)S"##zb55yeeJ9~|aḼ[o.6F uuLzmj,Xp4+e\\ tn a˗/ ~w]„j9zѣGljhhpCCM K!!q#G?gѺmzX Oedz_&$,\1FBzU-aYYϯؽ{ڙ3z "Zq7 bbBD<<ڸRB1ss7oZ!H$, ֭fڲرp2PbQ\/__ }Ĉs˃Tx<D4{rbɒ! hyUWרjdM?zT&ˣdҨcJJh|knjs|ܥ$rqI$N_w_PV]KGG!jqźuF}ԭǿ^44T,/v=zx<4y㡡 )ByttR洿RKKKEG!V]]#ٳ32FIxn`6bD#z;rɑϞ: kkkEGB\.N&<II n޼YQQ!jAcǪ`aN,,,XTtb1B}vR͋j Ν֍;q"31ɩ!ZӧO?y򤢣@!bWX.2p~ða8x̙3_>rٳgB_fMk߿vvvdd׭[7rH7޹sرc}֩PD>z&-iX_I[[3KKK dnnbeeɿq)ʈYX:Kгg4/pv* @"?.naaׯ_Ysp8amm}!BK_lذAVH&QK.h+lsC g œ9sfϞoT&Dz&.SCC32q>wĈNNN'ݻx_z !255EYYY0 svv644B8߿gϞÆ KNN& nذLwi--Xoݺ%aK,pfPp6-2'X,s]v9::x{{gff !$4\XǫV8y=3---$$Dv?BIrr&F#CBB,X@`0455>|gJ l:4ڊ"Og[Yfٳ)ǐx<́ppqq*|TҥKjjj#GܵkWIII~~~ąSvԩStCBՇ277xbeeejj=BN#*++}` wl}}})S~://o߾k׮1?H ={̌f=**J&%%}… fff-~uWh+>~lw`.Rk{&$H:FZUU痕"޿u###ƺx<%뙸L (/h+?~#`ۯ9xP+N̘2ȠP(UUU8߿!/X@ؼy+LEyyyyBBW^qtuu%v'8qBBw]cccq8;99?GdlZZZYYY8O>}ݺuvwttw+ϻyF[!tt\{p_ir7o :a& b=}`pׯ%9iZZcǎݹs'J3qy3r"Rܨqح \VEf]s8'\]]ŕ?|@@7nܸz3f4/|#1̠B,**lgϞ!}}}SSӜ#Fӯ_?  숟KJJhӧ{yybNMMM}oqssFǤJF ^j/9p^Ug ?.ş % 3f'^b6zhq'sս{Ǐ_>}i3gn޼Y1cHp߾}ƍ#^,xN{PPӧϝ;ׯ_?q[[[ !|@yN륧gHÇ}|}҄ ?CT^zL&{޽{S9sn߾b ~Ib.3"~_,,,.]TUU֣G pc=|}}SRR \\\LPHH`k׮[XXL:$77sٲeb#.rwppj?LR[[:Լm^^)O3/_VLOڞ1 3srrV^M6WEEߨ~B1 KII_z5!CRMLL;oEz4BzӥK4 &+W}߲yY?vJ"88xԨQ[x<ݚ5k[r8M6ihhX[[Yq6=x`mmm5yˍ3fٳguF`0VruutqqٺukCCC,--gΜ)Λ7hbq| Cg׮]ZZZ$a$;T[mEa_QT%7/"W-m8?x`ẺNNN˗/g0{7*DEEZZZݻ7((Jۗ,YQ[[+؊L\ynܹK/+IH;.\0yGJLLwC)99Ҳw3glݺrP碰δ4ШQ޾}j{ƀaXBBk"""JJJ\ybUT WKO444ddd| .TtPLEY?oG{sCWd2=h"E9p{E6̹_?ݻ/8PmdZzuCCĉ+++mmmϟ蠔qFj--ATG9iҤK2Dѱt#OXv\@oiiOnQu e֭[nUt ]ʿøy-EgEy{ۏd8<LUq<;#J_('GT~}׸\<@ UU1<=mP@98i4{drzT}C!>|f@PM6m4UU3 W +PdAPNjj6$RI+V8wncܱcɓW?hE #^a.KOO@4efʪbk3P!!uYd2yر2 <r"cm8aRX~SAZ~N{PGG]!1xzLNMHȺ}@kdii`@PN*!-MZZ꫃}X͙-q}U ɫ޿;u*ȑu7{̘^R/<45UB,]] s8\2r trf=%%ӧhvJqC}}3 o&BA-:+W+ 9wnܣ!??|pȍ2ww RuUʉ>|h0#H! ~e&;cXib<';lSپ;^r~)+IOOðzi s8<ʴ::'O.A}zCZjj"ػ^^[~}s|| (' NK5fs3k;""||F4VS'6듆wXgLkkc7: > 4ti3oս/:c߾0䪶ʶZOHȌ`͚5haTlm4%l. yAnnqq7o̟łQ= G P2ݢ1c~ZԸq33߸.<Ҳ0(+ MI+rԩ5&-FGdR۷5!!qSf`uRضmSeR3t (- 7o>Gps@(qCB[ -5kUc-0`v뮢B(<2<N"^55Jp𐯾xwu:8 JJJ֭[reh2ckkkE\y>Y\y{)RZV׉v9"{5]jc ex<\saZZj~;MYY/}}wIM}/۶@kgee): *VU%S"߭b̟oA9GGG.F90P~~~۷_`8nQq\N $cϟW88= 9ahy$Ey.Ʀ"J1Ӽ-[`sNxL ^x!{-ŋKyQz36;vogfWU !TPP0n8SSӉ'w0A~~~> IDAT E.ٳ+++V}}}xxx޽utt<<;:E8w>FF^Xthm+--4hyzzzJJϓ'Of~t:ƍJʾqΝ򲲲cǎ۷FZ"?;;;22֭9r-ܢ*]vqس'Uh;åV$'Ow4%sss1 KMME=\BzBHAVkykZJbwg9s{{oc2ٟSG3{l~cƌI +rw</ذA٢0`0:$FϋyBU2eJ bL&avTx__#F899 aqqqΆ?#B !djj Y`Q`hjj>|-:{l=TjHHBp*f\]utt333%`sX1L"G:;;wmΝ񇍍f8ƍu6{6 (DZړ&θqie,---$$Dpqݡ?SO:u*]qgYB$\|`ǎ"0lɒ%.\ ^&''kjjh4bJZdFnذLwmB--XYYYݺuKr?'],UVK RAA"-v ?>1H9lll8xDDP֎!NJ:FFFl6XG5jTAAAFFMp2eׯvڨ(* .5; gΜ9|𢢢}t%rwq(DwxkYj ?߹b {F ^ZOQ9 q\x&PQQi#L}]Mx˵#^ ttt ,իW]GsM fozٙ3bbjO `ꅅE ,\p۶mBβn)X@J慅D媪-b0DHL7551b`U999#~vrrjE$!rwMMMӧOܱ}t-Y{{7+r QQQP/u {YYY @S bim)[XX F tzFF?(LLLdrqq1񲨨ܼпJJJsrrm& td&BhĖz֚5_~>jT yHÇ%Ep߷o߸qB<ػw/=s͛7 ][__9f⥸SE$!nӧO;w_~O@QÀdn*Vdf8;wi]y۫Wwܻw3wIh>oa;;_r}wpd8CRMLL;&СC  CBBNJ,lٲJ_)))! G!3^\\B<8qF77|ooEIsmifrΜ3={F_+&Z|pӦM}UQQ7JyСBۥKK˙3g QQQ{ RvM`0VruutqqٺukCCC×bO<ŋkkk3 @>DwL(z n* ܗ!4`svh:11qڴiވ8/?@9`>|cӦk 8FD&$,=utPV>";\v5u$6RWWa2يJLfqqѣG-ZXٳ ?]}î]n\Wސ~uuL-yB?!Cuuu9v^okKsC=yvuunДE*.{w!w_﫡<__>mRWH<ʧ}^G"aL&{ٲXw(:4'{w0躖/kW yۺ @Wgb;dSj+Wѳ}=uT4ӷ;w^ccՌP U!ZpidFPy 77w_LO_cl-׶h4B5lB>9^NX,_A"FvK~8{ңS63ӗkџQIEXU\ULUՂDҨ>T&ՐPWWPH}wrmLJ͆{>~轁֏?Nt_j[y[Zږ+zUbqT޽ g* 3@::̘AA|Ǒ͛k~r/„,Pu 0p_~##mqe8ފ's&MXq6*6ikll:|/544x~&44b|3@밞>}bʼnǏx-| ø\|U'Hdf[nׯ +W/iFq<dޝ2jOO!xRjjeeepB8FrtŮm44Ԓw}sP(>>R tR66݊~=$6mڀɓ>gϕS'Lx`+W8["}TVV_S/>6J ˣPy ^X^^ކ!vy[!** S=ƌ]w(W~ mWQ1l677QQ)@Xֲ`޿mےKJduu}ENaL"7_pz0}ICCU`;`Y{օU 6{_ YWWPJեRu TX(_..\. '˖~Vz{ hNOOTF]ccmCC---5EG-HKKɓnL&ѓcɻ! 魻!$y<E"aNNǏI`mm={J)R__޻wo۷s82(Om-q|1زe a;wo| ƍg```jj:q\988=rð/^9BqK}^x9 y..fOQtqΝ򲲲cǎ۷F\bccc?;;;22֭9r$,_^^^^^~P?׬YWK ,^KٳLx||UBB3XZZ:h ss+++'O-))t7Z ;9U1AYh8Ǐvt\ڡ-PBBBe /y<_|aq [=,,LJ0 kkC6Sȷ=*۲\hݻ27_ov L!{8bzл`ppgΜ9g7:f̘nLLP'oP"w#&[R~ <_xY]@D0lɒ%.\ ^&''kjjh4bf !djjJ`&&&T*5<|hٳ=zR!!!,UJPVF?|С#G>t:h&r*񾾾#Fprr'---$$Dp"rݡ?SO:u*ݚsX1LaqqqΆ?#jB/_700رc͝\#ּ Cĉb rw訣흙o!7%V_27_m֏8xmmbccB߿2eׯvZ:j&&&~~~ xKNÇ#kkk8zp~q<66ŅeFUPPaooi&ՊwƎ23[iiF[!{U08dz9p...B $H:F={fjjCkjj455|̙Ç/**suu%5Bhԩt:СCyǏ=s Z%|pQ=MpwDmb ٳfffDOn{TTJMJJz ̤IƤ9_"*66ƌXZkiiaiiPcǎ]z2222<<\D$Rddd^~xxٳ.\vZyt##G\x{{ܸqcذa'N5kXhm۶EDDlܸQjpih}{2B&X&++tʔ)ɓ'o۶ѣGWWWx<-O῅3G&LاOdooo###-6kkkڼyի7n܈o̙hѢ>4o:,,LGGgĉ!:.6t=u&v1a„ ܻwɓs̡P("wohh IDAT'Mh;v3gNay _(: B-b0" h4K===}}}SSӜ#Fׯ񳓓_***B? @\=d2yIIInnnW\! DGVVV֪jtް" Clb8sS-yX&>>L ݳg?|PMMM}oqssL@s\.O)X7nB100011q„ ,رc_z!TSSSQQ9s͛ʿz>22rK _%2qfΜٳg[XXC/7z%(>_=~9DxW <֭[ټ L...ٳ'Bܜ_sK#R;G iw Z|y>}ˤ'Oݻ7Qǒ3u@f0X'o޼~I^|I\bTUU魺:b#ɓ׭[y\Msmڴ%J6=R_C6ePfWd71cːQTޢFIiC3w[nǽ|^j>s>LGGTRRbooKϟ??tPE =|»ArӦMf!_WWynvBDEE(]ڵksss#""xo>Au=<<*##ﯿcb>}$JPQ_^W?/\KKW3NѽԼرcO^_agg4/dF|/f<{8UUUNXI: ŋqv\$4hׯKFA11 C򋫱f@S]K|#M/A))q:=X\ےǏRRrRR<~0hMokC u7 eTqrڕUpaqq1.XhҥedջULqN\nLß>_]]bmlz?LSRrRSsߧUH} u%'qFvN#uA!Q)+dH\Jꥼ}۰aӧ:w.mٲ 4S3[}1%MjjNJJ^,&F14T4HƦu~4/0@K;w^zyzzdgbA~c;.&FP(;wzxx{2TʱcOLq[LSSo TzmiiEFF^f; om-wsA L&t5̱#;K^oJOB*--yÍOJѢ\…c֭LD\ӵk25+W:Ν;x"@ ˻@>y6꺈_t=8+!A띹zu̟&hi)޿أ$`uu݁7톉/LBw[rzX[-kn-**% ̓'[ZKq8\ %% TCֲ?_SFL6n-8Mi``LB}4ˍ]ںsrc0j?KIy_UWT92i YkzΝ;b&)S~?DAAݼeӧ[u0Yoy711=$txWѷUЙhSjk+? ]O^ljCWv#'jfs]/r%<j: "d{{Ӌ\Y~|;xMms4^Ʈ˻P<8t׳6㹥`LK=jŋu%'vw Ԯ*+k=z+ ۜ˻<xzӟη@vQ_6y~N\2G6]Yt‚y]bq^.IMIIy:?L\\lF**rdgv:e&Mml{ADPVVM}RjjqwϞ855I' %hjyLu+2P~5K$!!{CCeP:,*mg6nڿP^35Ҽ͙yWac. u@˼{iذ- ǎ5!;h' _aŊѣs?Q]z*n]s6_ɩɩN\\LOOwo#ڃ-<sr 0@f:s&uٲ68/X0ZX}^eX1qΜ-znp9WWWaF*HJjWVv(xzz>}ܾ}:nۉuQ .)ӺGe4DPܬ'M|-[.g† .J"38ݖ{\Q @pvR^ΝdeCEݼ\HXx֪޽f~Ν.nݿ?%QH:5L1gׯ?%;R9`w> 11ubGݶ3gRq} y"7j_DIKK81_MM`iiE{ h/!aر&˗=))ocNe e#dddիI&)))ijj<~~խkIIɈVgP(}Wp;99Q(th*6x`yyykkm۶hi؜ǧCgggq:\\,n~SշO>}ڏJnQwpzuԩ|}O}+;pH}}(AggD ejjݻÇܼyڵk#G|A[ne2;vzj[[3f%ann.$ݻ-͛7_?*555888---000""b„ nCXXXqaaaQ^^ޜ$-/\hZCU'N$`n꺯cݽr̘+֭;NXxE[s|1B#˗~JpGfϞ{!--rųAptt\f HXXAt: 6_rȑ#Y,Hee#GlpF>~ɒ%;w򲳳[j_dGL&Fihhh4&I˗ "##[8-J߿ 77hK111ӧ(9s横\  ѿeeea7~/;D,F oJBrJSTyXXsqqoJJJ6g!!!vvv<S#گyׯ?^ HJCU~~'X,v W^^e%66NLd9nCfq8޽{:t]Դ jjjĊxo+y򥔔ŋ>?ꚗiaazj!))9o޼p JJJx#:99ݼy /^hjj>z喗|wFיfff6lrAL>ȑ#A||w}`0Ξ=Kć(-- $$$hhh4LUo:055UQQO*؜w#r LfCCCϝ;+Whkk|<֫c vxt/64\dIDU]~r'{rvͬ󒓓?|rZ<*(( _55[~z N:%xĤ:..ܼ畕l6Ν;7bff&:?r &Q'ON>w立nruuuqm.˻N7U%%%6J4:'lORUU%++r===yaaaN8ъ:'!AcC9vlŋVp:b^TJOOw0n;dX Ғ /jjjJKK*Rӧx{{)x077WKKw rrr$%%_zhii&x[773gpzl6А(??7%!!g &OɛlfD1~F8;;TUU]tiܹM59Aӂ/ ҽرϟO܎_?Cf_DNNsmndذ>zz.<";H3v>'O&lp#ǵ}H1cW..ftd6w^IIܿf̘Ai ںuɓ'2333226nxȑLM6-00۷ﯭ-VT4-"JuuuQWWXdINNΓ'O֭[ǛJl Һ:TGGgѢE O.---***((sԩSsrr7U4MPVV~y}h.\(** ʧhz6o8tf-'\q_?4͹x&CU[\3Ӝ|}}p8CCÀFHOOWPP011YtieeOh;w… \nhhށ՛A߿O>͚5KEEEKKk51b\^WVVXLFFt˖-_|i'===oo|RZp\eeWX###YYY[[[!^G.mys~6̐,Qtt+/wљLvTTJpUc-%%1x=<<7{NDtt4mڪ-333grw޹cؽ{otԙ3mkߣF4<!pw|9 ݔ͛˕ngOu&'$5ߪUѣGo?{!jH:@\]-kj׮e7oƍ.[^ K +bH{BZ;;O|L*= <!PR7tt*A F\v$c*~a #CΜI}A 6z KNXٳ$_.c͛ ?>ҥ ! up?@QQܹ4twV9øeNwM 77h}j9~KMp Edfwg-YqoxҸqfd{ZlB 4oޔ%;7O[Op:thKKg>/11P H@ ׿֙3Q(M\(˖pnnd'EӧRR;}~+K𹫭 ..N4W><==ytͽ{?()Hw W߹Æ,eecM?ӦYRmZgz*VBr Mm= IDAT oQSii|n0Y!!ۺu;4ƒo?|| , 6@tJ=|Eԩdg%֭e ';N}jjNN\]˫틏L -.N%;tyLBzMoᲲRdg n$--qEEIEEqYW8p3,,LGJJhЅ2cKY[&; Ʀu˖KrrRVVdiBq{{R(đ#w` +-jZu_xS:ԦM >܈8M>hbb']^H]AѠA |ڊ7rY2TؼǏUƙtB\ZZbpٳG!wWuu45{ y§&q YA Ճ~ЙK= $%ŭ{~4ozsgl\3))~:ur P 6ssG:NDL'8*^`]:*֯F4~t߾L-W`<v` ~zgdg%&fϙs9RR]i˺qd11P_1B:,]zիkMz(vX.NEEMTT**lo?`b{++ <zڴ}ׯ43!; 4)3݌4s~Wd_;YYֽ.=q@qξ u@;5ꗑ#m: 5^yyRT9uWCC8qqOz{bnw:wG6!Iv3f=}گO5^Qg?~賝]ߙ3mazBЎJK+65m%Y˿̚u$/cxuɎ&l6'11;<q~nu@Gݍq^`ޛ{z̙GzP[[8﬋ݽJLbo?7@k\ц:#[-S Yn2Y޽4sa&<|ix]yk2/^HL&bHc'fjjdG@ABC{{YWyee:4gXtϟܽ*.ill֗/uff& pq04T';|<R\̰ٴgόS-QWZˏCC=]]Ȏ#4l6q82?}bQTTj1 '777776v;:NL$;}3,dɩ]o&&UQ66.yofAMu[IIIgΜi{?X;8f 1˗EiZB[7Y__eݺŻw{IKKJ8ɎqwwJ?8G30PH";3g~wՔ)I:B1cXttjuuYMsI{23ߑq:Ԍjj/f@ҥFFӦv-8@Сen Qг̩SC?kW,qC||} b[N v׸Ea}m޼Bl߾$22Ҙ ^z5i$%%%MMMǏZUUݴkIIɈīh޶mjx`NfMP=4<fkkhd~DA@hfδ=yr[/\\pH}}(AggD ejjݻÇܼyڵk#G|A[ne2;vzj[[3f:^EEUjjjpppZZZ```DDĄ 0110?? ¢Y(**:dG@㏻}*/";ӫWE#Fl37JIyCvm9 %.. /_)N׏3={uDDtnn.MHHjYrȑ#Y,Hee#GINp8F jjIr| mΜyHv}5]4puݷm4F{@@'A xܭȒ:rdʕN7^X !;Q+ݻw[_3f̠ mݺɓ7n%;K}͹>A144 itt{{{KVVV$=-ى@ġ ٰakqFqq4CCiupC@9s.\xTVVEv r ~Æ,=y6RRRt+Tʕۇܻ' {)Cg:|R3g;vdl!#Fu+`p#OW#;yܹ#>~rOѢ ot';A(9:|{ǎk뇆zt: pK@'"!AGW98ܵZ١|@g~PBB,"— 0G&yT{d' yтn~I: Ec_ceestyy<h}]@'ogq̘]b (ܹ#ΜyXVVEv輆7~}5:t{gd'u@'a#!AH&;tjGݾTg֬#͛RCAg:1ccL6YVj͚]>{7_.?~vcƘQu@#wH<{G&%S9sٹ@Pt?VZYmܴiY͛ӧ>\QQ8pL#R(ȴ[USüpɓo:jy]Cvvɘ1ۏ`FvMODD$#pto4ٹPt>>GZLvel6'11̙+W29ΨQOrt(!A%;<.#)鵫KZZDӽ{ƍbP_JJ6to塡BP\}@5uୣG璝DSaa!Ŋz'3f̘1cv޽qoƜd|@ ڻk=zMLLZDp5B;vjjj۷o?yd޽{?N`24MCCC]]F1L ÃxE,F u~(ߕ+W\yXX/?ImmlvHH݃\e:ZhܳgdnhEkznܸ}˗/gfflٲǏA޽;''Ç7o *///**277׏/xwuĉ!C۷ׯyvhs//gqL8Ν;_zvUV +j1.tY~';^Ӓ?|r\KKKWWw֬YrrriiiF;o[aaӿh+W422ڴiөS}4 gYAd5?4ƍgOH:@L`jbyMP O/^)%; u2\__[d2ATآEcR A ݭUTKv <$))pᘓ'?~$; u.--q}9P,ɹsG=z!; u(7<< @yLQQС55L@GC |}TTDE:<&ao_<&; t(yoѢş/\xDvPD޽78.Y~,@A-k::ܳ:)=u@w|ӧoxFv SS LwSz<ndŊYYo$;tycǚƒ:<eiio{Evhw\xzKŋK$z*t=-j:JE IDATy0gʔbb~>܈,Ν;Jv h OOӧOx;ENʪў=QuC, t9yѲeߧ?x ЎPtGvvFÆs ЎPtS˖MsejjAFgcu@dydNj e#ddd500)--m Ձ5h޶m6zڒWƍ?d=҃FpH}}(AggD ejjJDbbbaaa~~ EyyyUTT J ++ഴ &4zj 1p{@Э-[pwdN'++GFFƫW<@GjjjAhKBB 555MMMcǞ?O>wnѠӇmi&55xGGGcciӦ?~ɭN.u@6az{Ɠ:ѣG?DpJ(ߕ+WxoL&FPWWhL&b_^___MMLJ7&IP;ֿ55۷0 IIy燇QRRo^VVFDiii Ӝn޼YYY3225nr/\d2m~ܹ_rE[[9"nnnnnn<y7nǂu^rr\nZZAYYY'311),,低377ׯ߹sxG={{]KOOruuu^ϟWVV;w~KJJRUU坖ٺ#VUUʦp\OO:qDyx@wGPV`Aسg &;t ,KUU$**̬EtCCC\---zY[[۷o_߿aA.|MW,XPYY9dȐz 555322Ə/x<##ҒĤum.##3`K.=zuuu# j*F< 7AS`QQQ䩸\.&M͢&ʒsssy?غukBVWWh4<{ӦMwVUU;::KƖ&oWLLŋ---%l?zi>xB,[pZǸ{x{{kƌt:w-Wܹsgԩ999[MLGGϚ5kڵOOOOۻS1w\%%% VUUԬ\R[[gϞ^^^eeeg}w///uuz*++WXaff&##cjje˖/_4 upB99ʯ4gX!!!FFF ¯p[{}ے9XaqqOg>zrss}@{];A-ju[DŽ C} ?➦J)PXZu?+V8޼<% A@*+k_,z3A`dƌ1:Ϟ=qNZdTY\xc^Ǣ"FI ۏşAP(Bf? P@}=<>xf>dg}ۏ ^I+>痱 $$ʲ={R9XCCACCW/; ?yPȑƶGE5,t&z+*̛v|ӳL^*n(cuuM͞*JTj#Wgx!ٱȄ:?)鵭!YD\S+j9RRMCCa ^TzRQWWSAMB "ءȑl2/}NDVo?K'K4Xi>݊7K׫JϞ2Š!..NBVa<==[ e嶶dݻww+kxݻw믴8,FO==e1v/jjj^fEM0 : Fv ifWT}eQձ ?o}Xi-e0jxWZ{R͛SWWWу̕ViiiӦ:<>w32:pJVOޭ+ =P@uo8w.MLb (((k]Jk^˙7+i:8vJ+@ŋ}+Jc9(_iUo?KSZQV}}mmE l, ]<={8.ߝԂ2ߕV~_iĻگJ̙! Ilu@7BPOͿe!;;o߾wOPOM׸[^P._Nr;v\= B\\L]]AGGIGGںl[t-Vl:n.)[JJ8X׋L&[II&0pSWWhQ <3ff }V7!%%Bp8YYY<$s{Y|… 뭥fgg ._S(cǎ_MMm'OݻwϞ=g L&Fihhh4&kb_^___MMǧkM𕖞߸eT uu (LR1Z,t/T*5,,l'N3gNsܸq#%%%::zO]lݻsrr>|X^^>gΜ ]v8qBYNs+WP(oݺ5$$s 4H&7ÇiiII%WJJds8ܪkâ~n@FvDYDAh%&8Q 1Axv|xuFy83534"hl6J "6k7u(D6ihQ}Ω:ա7h HsR)M_)S>|(Jۄ|;;;{l3]d2䴴4>4/,,Tj֬YiwQmC$_<~Q66[_'<h˖-7nozJvJАcQ^^nee522b6\\\;prrbgϞ={a zMMeLL 'AX,ΝCBp8UUUիjz$X[[B$ŋw9KKUef=eʕ^ּ! }&3f8p࣏>bvy<!_fÇի###8>O?i6lعs=!d˖-sTmmrrʲrrʚlEc(33A &M6%&&BLMMm۶o߾s O?ӓb<~ir< @./_Hzzsׯ޿/S(utJ%ͬX_'聢_0(Dk׮t!#&>>㏓ttLrm$y0vK$dEQ>oY[cMa-` A!!W:>G(::M8͛bqAmmutؖFּiӦZ[x66̷nyFF\MA 9:vHywKͦ=׬o0]]gZjj**jjjj>55O43,q,-L,,XXMlL9-@ŢW9/ٿ?֭J6Ťncՙ::l # #Շ4T::ՍUW7>y<ל<9ȈdMO717$Bc 9zvhdU SL@s)/y0P?εkMfFF\##Y_Y2Y`]]jO5 >~ݺuÉJeeehXM0Ž_νt<ͦf϶FpfU oÉJ 6y0F3gw~J|FWDWwŏ7tu=uefUfmm r]> ӧ-@ѯm4MD L3޿_Q3 =fUAL .<\\҄ *{1bͳPMh,pǏ?n| 2YCZg9\.zaT= :;~/XŒQXEQzVy]NS# 2YCeeX|o<7(r#G6|(՚#K p-*ڻkW`nnx~Ifx<]f{R_Q}H$Nmm`,))齾L{BpS(ON)U0y0>P}Pl6Paa><}ҶD=z[wT,H Mqqqvvv"Hu0((H&dLBWLLVYYy&//Q(y޼y999111yyyO}.8"y<ގ;Fy[g_/}c--m_0OSz+!!ջ=6lܹ4UXƬ7$PXX/]$߿kIIz?EIRGGGfi?????/bE 7n\z~Ќ\.wss۹sƍ"-L@搚1cyxoGOܘe]|}}]\\ԇ͛7_xmhhxLMMM}vIOvpp033[[[ջ Brԩ(U# SN1=]v"{wĉL+WxFwGG1CJrΆ-q`o coozZ's/ܙ`NwX,Q}y  %!BJKK-[TVVfgg'''KIIIJJ|޽{:tPYYYnnnzz+W|~N|{p@LLLqqΝ;?ܿ& n]{z+kW;U.JØӮ_p>}Jt^^!HTڣBT*U?hdٷnb'&&:::f6 UΘ1CLLlzBHmmm?!++ԴGgUer}}lׯ_'NP]ɓ/m?t!h&M jssek j8Bajj:"ՉT*upp (JfoYsrrb6SyyjȈYZZJ$ߌJ$oooU?/-lr̙#o޼杝/*ca&3vXmڕG}?\&,R)bcc!IѣGWXA`<`~*--aO2#gf~:!$,,lϞ=o򘘘e˖1:::/-E<444!!… ުTڻ}AA۷_zFpƻƶlܢJM5J2o˼ZSS:KWsVdO?4mڴ׷zkɒ%<(**ruub;vXccUڼ@ JNNN_կ'Y`…[liq֬Yʼn-jooQgEe/ԧe{7ϟ?/ɒgΜқ?y[<g|s'3_/rmmz6mڴtR#;vP3چ'gϞmذj֭mmm4MGGGx<~A=ۛo۶CZMMMIxx\.gl۶͍庺FGG"{wGtxxAKKK? }||osn:7,!!}-~yfF <,` fݻҥ[ Of5k-X0S r@8ՍIIS,Gڵ lmj@4ڸtaJJo:qD>u*S9`@m]]{vэM]]ΛozGCCkRR39Vښ?.3ZrPxܷymw=w/< 5] mgl]ssw?Νn>CFRG_'$䦤,u͚y~~.cp>f,Tll-+8@*9{x<cm>+++, cpc<ժ?>A-_p<{{SM9`>:s&…k[{T}MZ 9`T)ݙ%gcB;Yed]M9@3CɁAA^>>,@K hLp\soWYXz\iGQ|0,ycÇubD$.)ybccl@1./ycIIg˟:;[2#|暮 <yE7)IRS5kOn`|@뺻2z}` 47Wt?yjM./遁|,/00_%/*[]__Oӥ055%'?t$7=\2<iX,%99e%Kf/_j` 9@/_TO(Zp@rKц[/]}˗tv*6S4]<-yT,$'u2˲KW 9`ho(%.jjjg^^{L3Mr9IDAT,rbAjֹsX|#>U&.;/\,.`>6}ҥ>>Kp!Q*sr.]r@XoBߨKKv;+f-X0S p { r3yz˗\rm@0G puwti0 y̋ G`6.]RA7??It4]eddW(964i =iT(_uyZo֭#!gqM&)Aji20XJ8bcc+++GO<M09sfij 9@;!h'<턜Cw^KՑ8/%%%E \. =<< ϟo߾>ׅQ;S[[;K K9鸸8;;;H:$d2Yff&!D+WWWBHff췆pv͛yi@T*{e <~xSSWCC@.v1j5ݽ{ҥKٙ2yɓ'BZZZ!Mz)))uT{133KOOgلgg瀀77ǏoܸG[U666~~~~~~/^zQSSSaqy0hqqq...CzC{N6m턐$OOO.kee$^{%SNEEE1!/ O:L]v(ڼyŋݮ.Phaaann. ԛ8qu]reDDӤؘwsR~gggCCEݸqch`pIPBHpps\.oQ)-[TVVfgg'''477{yyIDFF^~R]]Mihh=.ݻl={fljj* Ç8S\\s?| h4M4^z9ӧOi# J{;bil6֭[ɉwmiiQ*?3!D*\__OQ^VV)sfaaT~ZNNc]\\d2՛.*i^~}dd䋚;;;8qBu'OƆ`<8B>H$rss뿕T*uttT?z>FT:880[ZZx_D"f]\\Gur+++OFFF}6rAAA s7o|QNFwwJaATD_EDDD"A`<`vKKKmll֮]+ 9gð={]+cbb-[ِGXe1zfv桡 .\vrrzQs{{U۷oꆌ<'OꭷޒJd}[O>)++u֮]::::;;uuuvMinnfg%DEE=ydɒ%)))Rܹs .{_^jUYYꥊիWGFFVTT.[o}QK.߽{'7o, ꔔmd`y6mZtn;v|^zٳ 6XYYmݺةS9r$44ܼkNZZZmr]]][[[{נ~lmmjjjT655&&&r\y ZZZiP(訯 c_y=QV&֭C6ЈkBGOh'<턜rvBNy ߷`rQ3}b<[`5]2}{ y 9@;!h'<9/-IENDB`XQilla-2.3.4/docs/simple-api/ExternalFunction_8hpp__incl.md50000644001725400016040000000004013273140074020624 0000000000000012f00cff9c454f8ef7c62ba44624da89XQilla-2.3.4/docs/simple-api/dir_7ef400d0cba7660fbeba32656f2e8856_dep.map0000644001725400016040000000213613273140076021461 00000000000000 XQilla-2.3.4/docs/simple-api/classEventFilter-members.html0000644001725400016040000001716613273140074020436 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventFilter Member List

    This is the complete list of members for EventFilter, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    commentEvent(const XMLCh *value)EventFilterinlinevirtual
    endDocumentEvent()EventFilterinlinevirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventFilterinlinevirtual
    endEvent()EventFilterinlinevirtual
    EventFilter(EventHandler *next)EventFilterinline
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)EventFilterinlinevirtual
    next_EventFilterprotected
    piEvent(const XMLCh *target, const XMLCh *value)EventFilterinlinevirtual
    setLocationInfo(const LocationInfo *location)EventFilterinlinevirtual
    setNextEventHandler(EventHandler *next)EventFilterinline
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)EventFilterinlinevirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)EventFilterinlinevirtual
    textEvent(const XMLCh *value)EventFilterinlinevirtual
    textEvent(const XMLCh *chars, unsigned int length)EventFilterinlinevirtual
    ~EventHandler()EventHandlerinlinevirtual
    XQilla-2.3.4/docs/simple-api/InputParser_8hpp.html0000644001725400016040000000677213273140077016750 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputParser.hpp File Reference
    #include <vector>
    #include <string>
    #include <istream>
    #include <xqilla/framework/XQillaExport.hpp>
    Include dependency graph for InputParser.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  InputParser
     
    XQilla-2.3.4/docs/simple-api/xqilla-simple_8hpp_source.html0000644001725400016040000002436413273140073020626 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xqilla-simple.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    25 #include <xqilla/utils/XStr.hpp>
    26 #include <xqilla/utils/UTF8Str.hpp>
    XQilla-2.3.4/docs/simple-api/inherit_graph_45.map0000644001725400016040000000031413273140077016463 00000000000000 XQilla-2.3.4/docs/simple-api/classATDoubleOrDerived__inherit__graph.png0000644001725400016040000001704513273140076023041 00000000000000PNG  IHDRP9bKGDIDATx{TWDAA"RPX<* .>UZKأT=vmEEp}uՖ G" $jgx* }:~MKKYrrr~~~@@@``_=+++9?}\?'&NxQ[[/^p\CwDEE-]4>>.hll? eJ20X,֘1cl6\呑\.722R.{yyorwAW\qss:z(@PDEE988l޼M_ݻwkuynkk۲e ñdfw}nR6m?0=N!99Z5;wĬ_F ̙3g޽eee+ogggwtt.;H$Νƺ P}DhmmշE7n񩨨3f8xf̚auǏr|>s'ÛgzӧOk]]]b1Lgee͞=[k  NsrrHM>bO>U{WommH$`0?~ |ZauӦMpႺW{yyךjeZ[@OOϟk`jj* {5曯^tuu|@`jjsii?0ܺq nʔ)%%%O<1P_;$jT*vD%%%aaaZ()LGEE͜9S( Boom۶O?Y[[oܸ%%%ܸqV 񩬬 x/_\v-8€ɓ\.ڵkb֭[SNs'IR?~|UU\J&L yꕖA u8Llv``:I"חYXX̛7/33SckkMXzaKKK''ׯ',X`nnwBk͟?aZ;%%8fdϏ=?Cm?CmxgvzW뻰e2.+Lk*B<(rӗXE⠭?\޽R1c{{74(:cA[L @P޼):"@O=|Xݭʢƃnj~f!"=x=tRc[['! kk-U(T$ nR񠡿L?IMJCii*M%JW55,,)`7nGU(TG6mrxbggرL?1c趽t~[z6Ձ 7?Cm?Cm?Cm?Cm?Cm?Cm?Cm?Cq OBòu. a2T߃Յϟ?@~_,SF?Qvm?CQ^^Nu?5(T*UKK QPyyy&Nrydd-ˍ lll/]fOeC@$''YN5euLLkjj9s JxT*=s yXsuu05{lX$ɞCFA#ԋl6&,,,,K+4t8ipԇD"ˣ:"#B0nݺ}UWW +W~fToʔ) ,Px뭷f͚CmxF˛L{ : H3`h 6`h3zN86FJ@ 0 ڵ ###mmm\ndd\.*ǟJrtt̙~-(99宩v~~~))) ,O#[[[QYY +**&MPy>>BzQcTT̙3BP(޶m;NXfҥeee...0]vDOOϰ0;mBCCWXRC߳۷o7nT*\`sssںi&kkk;;.hd<fJ$u^?h ǿ?H &X[[zNE'|d8qt}~2!!!իTbQ稸?_,YBu,CCC iT/nmm:'ˍ$0J?̠Cm?O& 0Qsww IPHh盛e?zepGBy:_u7mssR/-s\ 'Oꫪ^@rM5Qg1˕II?4AO$Ib$-*6$#AOU/Ջ,C(=]V9\HOP( HПBvHk 6كhz@ݻ^ieX&|~!%(b2K.W޸Q"KA7݊[ {]]g#Q~ե 31!7wߕR]T斎p<Ɔn_쬮nQ/\yOYh\d^ݚЌ¨0f͜i`=sd16t?o`h 6`h 6`h 6`h 6`h 6`h 6`h 6`h 6V$۷od դI#V8t _~~~RR:2H ~?BUߟ~m?C 8:G=i0v`>GKK={Xw¨469Ntt5\jᮮ!!!Z74:4A nnn666ї.]rttdrydd-ˍ;w.\R(QQQ6667onkk Cxwsd@YYYiiqdꙂ5 LRi||<_*9sLdLLkjj9s ŰXwww@  ===#""vp$ɓ'O??===ZiؔX,fϞ ͦOaOߨ?!aaa>VVbi!"Ύ  /_^UU]]]5vqqi77k +311ILLٳg5 Mq8x $)H`cD0]\\|ȑoTpttϏ;---/^J_|EYnݾ}ʕ+K6m駟>~aaaCc1C@J|ruÇ[ZZ:99]~hUtRipp CBB^zT*"""x< H$}FK)))6l~ |~4?1Cm?Cʾ?Hɷ%GmmB?;;;&9"_$,-Ph쐙?r_/l?}XQך N֟\|xRvݦSC[99?wL M , MAWH i䡧ΞoyŸ[ڐ=ݾ-BDzzzKO/01J*;ǶN C24֙[P43Iܾ-*$AC:SSi8_ZZJ}SIRU46$$A7MM/ E:o 2č%#Q?>H ]Bpd1:=?2rnzgX&1t^:?xqq^=@`h 6`h 6`h 6`h 6`h 6`h 6`h 6`h 82 aAuIxxpI&55N3GѶdɒ 3@޽h 6 jŋ۶m 9ه]ܹs۶mS/Κ5kǎpS__L&pÇb…  VK:a$l.흞aaa0 ?~<ԩSvvv*6===$$$!!|p;vL0!44UUU?رc&&Ϡ477 4bgUUUMM\^^";vxOʊxxx:tndйx񢥥͛goop¸[n.< lvHHp7=k֬7x!;;{ Xzz5k>}^=i~mPP_'Ntwwk6P(֮]vڸ88xVV͛55SSӀ,rQQц Bjٻqo߆Aꫯ`\?лJJJJڴiӪU~ǁF08p,Zhp}CCLz7o|pرsY====999$$ҥK6m{O?h"ED"QUU ځ(?nԩYYYʇۻZ:nڽ{7˝:ujhhh~~FP~~AvHH85UT*}9Ν;+WzWܾ}… ===7KvvR\f:'''q@x<D"QT0 4iҋ/4Kj&ZZ~3XccՋUyyoY|ڴiv Rg:;ݻSLysUW(ԩSaST999;w|w`NbbbNNNpp0A!I233 0aX8,T* Fssfݺ:l'&M#'`ٲe/^Pe2իW{S# 5ϿoggiӦzW?p@EE, 4)$²e Wlkkkmmmnn.))ٿX,S2̥K~b~_l7tvv|vN>]__ٳ+WjZps皚*++?k׮{=DGݻwoǎGs3H}dܹ.\XjV^}ﷶ'$$ށ:񗝝=gͫZ#0r3g<{zڽ{Sobz뭍73f֭_}˗?{YjUDDL&[bSSz֭[O:m6 -Z 033;{lbbb\\\CCP0ŋ߹sgbcXr---NNN߹s߼?9%%eÆ C1*}MJJ:Dm?Cm?qg|ow߼yJv:K,̡UCm?Ye[IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatTarget-members.html0000644001725400016040000001313713273140074023176 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLFormatTarget Member List

    This is the complete list of members for xercesc::XMLFormatTarget, including all inherited members.

    flush()xercesc::XMLFormatTargetinlinevirtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0xercesc::XMLFormatTargetpure virtual
    XMemory()xercesc::XMemoryinlineprotected
    XMLFormatTarget()xercesc::XMLFormatTargetinlineprotected
    ~XMLFormatTarget()xercesc::XMLFormatTargetinlinevirtual
    XQilla-2.3.4/docs/simple-api/StringPool_8hpp__incl.png0000644001725400016040000004430513273140076017551 00000000000000PNG  IHDR y`bKGD IDATxy\Lgf*mZk)E,]mRي"/-k%BRY-,!QH*-24s~wsij3Ssyl0 C@pD@ ``$X&Atk@@ :1@t/ Dԋ/^:}tW!H! k.CW! j , @ 0(rFBCC?~\UU6sL))/..vuu}azb=555ݸq[h_++pmmN ѣGO55o߾=znƍ^^^mwvvBGǏ0ܹs{=~ F@/@^zذaJJJ4ɤR+**Y ))) 0@EE7;;KAMVV\422!n:ŋBVVV_vrrJJJbﳲwW"0 KHHXbży6oޜ~rL&#Y냃.\pԩۓ`Viiinnn-:vN()Bo~~~=z544B'Otuue-uVSSSO8ѣΛ7Ǘ.]744?rkɦ&aXMMӧ޿]UUuigYY˗s6Κ5!<ٳ^ڹs ׯݻWAA_M/8"225jԝ;w.]z}KY\ZZV^^_EQk׮yyy7NQQqر+Wd-acc3o޼˗S;v Z[[}z̙ q6"$$sPRR2x`ֳ\f2]QQ(TTTB$QGG6ku 8b ð={|/D7n^ʼnEkhhh[XX;eee2\ZZDUUk#WTT?; ĘٳSNhڠ3g222T7oBCCf?,VVVG----(( 5kFn޼;ǏܹsgS /]tbeee+++V 455Geggw-fkk`09R[[kbbuޫǏ򒔔1c F3z433Yf455S⫷i\ 0cETTSg\tuuC/*<{0c:{&?Ԣ S˗/{knn9y ϒ%Ko^SS5w\TB#'')FD$XB͛i@d)B @ 0/@] Fk޿/Ndt` E [ C<1r55 @7D@*ǒﹹ> y~4445թ믳Z[[_?]99s2Yr"+kB"khx{1 Eɵ02dScۆLxʚ((hiF65aXwŦM>ٵ>H@krs>}**+0LQQPTTTw0 2Gk8FD?ZY-_n9kֈmyvvcw\{ɚIXa?eh'=zLo~5[Jmsݍo> +a0޷G@@`0ss˲geySXYYP`S =_BB$%goozT==l0(fXXZz6ee^wĝ9o߭Ǐtty,S]ѲeJXƍ/_hi)ؘ:99R#@X _TTVi !x:5|ȑ$(]F6%$ ySD{{ iinnvzyMgy:aeoh'x/db/?K0@.(~t7Sٍ11? 5,8^Ww? L`@WSD5z^~¸(+{xxk(+,G(ot'OKR;w ׯo7np SMXl^;UUWa2ķqqjjǎwppy|F@O ""57&'?{qFFe'`>X[:vvLVtr:؜;RwfovJmj>wcKKG3ob2S3g\0 *H b:Kŕ+#"[~u)S {#g?'%t6q)CǏ.\h*sRiwHMSP={bAF?A&% OOM4H%K&t|NkRSOFEJyG>*`oSJKkn̊z}%K.H}HQu6&&…ԲɓN1PzvgL&6waMMŰ0m/o7lם-~焗GEPaz.l . W`UL,--/<<,ee9G˖MEsQQ/}|޻שSum罹v\j911orx[1T$XIċ:DҢ^<.,ij>vj[--2ڿ߱ۙ2/KKÇtm ]+~ǟbb2ޑ$kӧA9BLL$eB+k 9c=zkGڸ~nm25hÇϜyhn>jkrxEEG[7`AWUDա_eg6iⱝ-I^=gNaآE%$11N79W_?Q^pҥC 6ı?"#_h=;oMHxvA*~]`!!+՝ӧOe11/~35յX\M A@Q 3?GnnYnn8Qusg_ faϩSsu(z{_zѣOsb0^}ɸ~5F4T,5ET*+H Kj>xEBBs@XZ. SS옘 yl{{ ++cA {UVV? Qu5­[Y**rWLt\ u=D߿O>&t-~TSx_ϟo`[A IQu>2K߾7nTѼ_…G)rlxCCeͨ{Ys**}󂂊a4~B__U,@OET`͹ %E7sw?"(ne^qX"2oݻFFx9ee}Έ]YY/Z4nU$X;ET\p!ÇSS]W׉D͹V̙MLOt^Ll޼#**k*~`0>͏~yӍ=ohQ~}A躾VDŏ^am=cqc.<ٽ;ѣ=}+=O+9sX~`$XNETjiis}xx'C9;OXq9VW_O>~,\+#wv>]YY玏Sjim}P__5$dpz~;'|҈g_Vj.X0qGz$X*PD%X4 fMLJ`NDE4$$\GSkL^s,{US8v8[1P{@x">СKwqأdbsT 0 WS|wNPՋA"UPPq˗7͙3u͹>>W#=?fܿx!wM`;옘<( @Ap7?9w{9 vvVYjiߜ |jnnh~GcA۶]qmjj`wNPk@h"*!+/ļ M+- s.ر{}7-m(55&].!B;'(w`@0("ʋ_BB$%STqr6QOO蠄aҤ=WOCt,qLʾ}?Q&*)~o$XQJmJHxӧ2|{{ iiIc<}]t +}G8F`SΉJݹ$X,( ׮PHcV1b A [aϩSsuHt,ƍLl$"UΩi98#_ $XQք7g>zx0 7I]V-"xTccsBp٦s‹_]]EZ", D֗/WHRBth}$XtQ8:.<<=55o _,"Z'zak{L&Ʈ':vm|ѣOs'",~^$;oi,:ETb6&&…ԲZ|S E΅֭իC6Ot,kݺ>XG9EZ/?/("-A@[PD%vL,--/<<,ee9G˖Mٵ2gob}${ǎKM ?ZDi ,JtߏLU{ P!! 꺻O'.\x{wG[UͭSM<%D…i%&f޸0(H@_ET`nvŧRRYY*(ȴYs!&&CRpʕS U7Owⱻv-$:ǿt&SS]cB,9AAz?(;MMtOϰ>0L kBSׯ K.5JmcE(t|344-=}0lѢocis"- BPD%jj]]Ͼ}` " 4m?WDFO`^߸qTiiɲɓ5:Q"$d9Bii;v\0aHPѡxs"  dII `o嗡Ϟ}2Dmx%%Y"}AA7Ox@"ao۶'O}°0{!РAOn#:Į :111,& EZ KPD+}PtNgKHGݺr(--;w~6!D"aI-[6I\}Tx *F"V&BB!Ϳ)~RiՄHKQQfP`1ET}Ajj!͌ .MME&v,,()aB!3I Dʼz_%׷pϨQ:DϿ۟屢%*B>i ofP`QET}MLLƦMW0 c2#IJR/Mij]B`0'8(w!djaO7L:thxBw:1}zׯ77)nj!HH"{Bo#U_p!O$Uii"~koW\XbݶB8ߏI>|~U~bt&:q~Nt?P(9sF:82Ű{$$$d[wi۶k׶;]_ *IAAZ fׯ__|0%-DB$L& 1q &&_yGB7 *jJƿ "n|p/Ɗ JKko}ݜ9fUJJRLMucc׋]yMMcBBfLLFFFXqӀ9:LKCdooq]]!(`4ҥWxZZvxb^[D&˨!DAd60ZX0d`X3Dx,Yrʕ{~D7JHML/_:t]_(kTVֱ_AWExVDij_+ 5,ǫGZX' y(0敀K҂o55B^`.ڸq0 CTTёk}xMU8L2>sf$QQuDuk4TjSy9UhRj$ 3$䉉דG[[{ڵ322 bb2npI -d`1YKz$Xϟ0!D"eeq]wՂfPD#d2A'q]sq3`2;C$X55;wƒH۹"?rpM33=&d2i!ٽMHIIXt:~£'Osk+)ٻ71.5BfUB` ̣jCo0BFQ$BiB_t]]3-)I)9#!&X"^\JYYܹr62_ؼYߍ hԩGb[!TVVxJkkdҠA#Gj[hh)FQpD.ss$'SL&SJtP|iii`0mp BL8ba9[Kluw@ð7gC2e=b6ܵ S~&B>wnY#H0Tnzݻﭭ̷o_$^yAFFg?~,mmeJJJ0LjW}}ϞF}t:#.5Tdbne}}7@ ^.9uǏ+e4U?۷+Wb*//ۻw >D6lXΝK"eSa22RzMvSV[?w)Bͭ*Eodุ sf0VRA$b'b?LRһ&0w~P"#X0qC;u XWd޻a`/ru[[ےB |_} ouuǏ gqef~RQ P"M~&N'm IDATF89鵶ݾ9>>YUUH7#Hfffݝ黉 `*꼼ʲ[UUEV]mllQWWhhhzSWwp.)8'H1 311z``ƘjAªϟ+~mBH$))2de]L&{p$߿onBzzby>YY VBB´in߾M\t=YAAAWWW]PȂ=\[[+|QP/#ׯt"jLL̙y&A;ߺNNgHIIQTTlhh'@inf47"kUTcV6>qy`l>|a7o ]ؿ֚5Ӧ 짥/-0L!w;8p`UUa/_6lX}}=a---jjj---yyy{>|pΝnnn80,!!aԨQ|ð?H$ Z[[nܸaXuuUTT}||h4{$.\FLѣ+**؇?~HHB(//Xxfnnj*|ɺ:ׯ_w}AoE~ÇߎX{x!PRRInJGt' ðe˖-_LCCx}}5f̘[s}ݻMLL޽{7a__֪ׯӧKKKCBB$$$8u_t oR7[ZZ*%%jժpЏ?0 C9;;Ss!T3gB\?͛aX||˜1c0 Ȑnhh0e̙?9rݻ#D1L___333!Q}QSS͛7VVV,Ψ nݺB1 711H  , `UWW蘚޽hddTZZ?{+acccgsrrX9ת|8oy$c L&3fƌw}1`ihhP(/_Y[[=\bbӧ^`iiYWWz]Յw2eii V&X r8ky捄**P||Իw644=Z^^~AAAKčFڡ1\jՆ \r޽D}YYYs9qZnnn۶m_5Z$ڵkT*ERRRVV .msssKKF۵kBarɓ''L ))9sA 4!$))qƂo߾ 99Çoݺ˫(;7~2eJkk?2F w,%%-[tv-rrrz"<00pƍ555uڵkԨQ: ϟ~z֭ kӧ$A}EUUU)'OزeS<==B{߿3Fo>WKKK==kIKKmٲE[[ÑҜth:bdd;Ù={vSSӴiB&Mjii_?>pqY[[[[[["!8::~Pg T?bo}>5^ JX7o^cc#?KG0 knn9r5k0 ;v,~9a׬O>E{Xzr;}.]PΕh 7"waq]]@{BB6+W LǍ?qćxqㆹVpp0XYY)'''##/ 455޿_OO/55$jjj.]}zĈ 3f̸qbSOAߵ`϶̯9 :s挺zlllII͛7zR0T*,>l~dϞ=`.7Pfff?b[}왁>+?~@͟?J^v \h_貔ee@W.|k,3qCo*}uuٳgB?<{vRRREEݻwt0`>X!OZەs Paaafe`d2.\HP\]]w ӧToL۩M<:Z>=י!ǹ.o*>8=י!ǹ.o6 by>5X~)~Z,Z/>>,)) :,>l <==MMMb: 6ܹlw2dҥK<<<6B_|xΝt|oǏ Pp\×g}#?99ϟDEO 9'9C|رѣG iiiUUU矃8q"~G-a0`ɓ'')gSmVTWWyE%T*uʕ***k֬kjj$$$)))VGUUUnnn***ZZZ6mhEE هگ_?/^䘘>>>#G:tmۦMԩ>W닅oܹs RUUݰaFpt:R^^Nf=E{jBsa ;w.i8$:`u[õxq^^^222T*wx{ddСC~#̹ Ƒ#G8gΜx55#4 V5X)põ%XE.oLBBB X̟??$$NLL433 bnddo>sI&y)|.+++p&a---jjj---+u=]]'OĉCURR믿ׯ_744TSS۰aCSSFaŮ;`ujz0ќk333Yy#|`DO$miOltӧ߅<<<~>|իW׷9lKw6~4]QQ0%X6m׫vϞ=D" }j"O"@XZZե޽{֖c6%ۻfۛ~@hP(vvvǏWWWg?G %ۻfëaJH9>|`??RRR:t萋s{r]rݺu>>>֭:t߯ڳgOg̘1z}իYqqq5k͜9sx4@#5X.`U.N6xӦMX>s7nXYY_]nܿϟ?65Nµ. V7@8TQYYYaaaFFFYYY;v&:^J/fn.= oݢbHx oH%mmm+** j*OOoVAAs;\^ׯ@nY(/9b[WGGGٹ|DBQQQDDOE A ``̃߿GGGi߿%: @/ tttkz9tziKK()J}bĉD%`؅ OoۿEADD=V"@|,յk;vNvrqHѷoZdp:q b)9MW֭=SzxL-/EKϟ?Z] 񓖖fgg0OΣRiޗMn$@A b&3ɩS9B!f&ea1@A8/zHIyNg06vF",FII…G55##Jjj/]z2>~  PYYh1))XoEEY&T*-.n[ ԦKO3ի^]!|SR|p@T@Z-;gCdZ5DրrWz544p@$@H>VGGpR\[TTreHss+ @t132^i`Nt8^]WXk+p`` 0 ۲%0QtcD$2VS,@"llL?8ujJdrG"/\H%(:L@h-GאָofHHׯ1_?gwݪid0wPV۷#06 `EW>cII˗;gBv%W׉/^غF^^ZB?W,&M[B!yzN_n qZT*gΤ0Xk+CWw@zv2ND$X}]SSS]]Q'OׯPc֬"GtD£B&wwmmmKKKgN~`0w2Šat@Q괴 TUQ+55nnѣG]򩬤ݸ?yΰa ;Tu>^MtDHII_e1B]]kw?n~Vp|@ 0H , o߾\۬ wVKpbIDAT hV{||Իwz"6Hl-[VQQcy \]]~~~ "yꃻ 붶\勪*XIIi˖-nnnqƚPmmuv5jԨӧOKKK.\@RnjGUIIIDDDNNpbY/o `񓜜lmm)&Ojpp0շo߮ oݺUKK߿ǢnKMMMSSS[[*..nȐ!GioaZx孽W,бmmjЕ+W Bt:OCCC]]ϏNc߿k.===55e˖pJLL4552dȥKB\Wa?z/ 455Q;X#BCCϟ?t…PII8H$//7oqdee堠 ވ>|ƍ6yd {`\y>|X^^{~tdVWW-))yE̘15ƭ[swu?~@ V_gU]]cjjlddTZZ?{cacccgsrrX9ת>>FUUUϞ=J~oܻwo{kh4&]UU`*'%%͙3=VPqq1?hzIIƍ80u]vyzz80ԩS;mr?S 0߾}ovv6qРA t8t $XcL&sժU6lrʽ{ŋfee͙3ĉkm۶ ?~"H׮]R---\W_p!%%%ŋTѣGٻ:1 455uwwGhhhlذAC(+++..~ѢE 6oOmܹs_=??˗< cᯯ_|||YYYRRΝ;ylLJ5+V vtOGQO ֱcF҂aX\\^DRW\f͚&__߁***:;;WWWka9tP)))##xذg%%Cg0 閖GNCCC'Vˋ/drLLLO M]]]޽&c| Ν4h h4Fo`a܆8p@NNnĉqj^܌u?/#a ?bbbBt g6k#o)))#FPWWf<Q=~@OS }'?,uuӧO 0H , @ 0 #H?~HII!: 6r>Mn_fr뚚ꈎ2kkk[ZZQ$X~$X A `73cIENDB`XQilla-2.3.4/docs/simple-api/classStringPool-members.html0000644001725400016040000001076013273140074020300 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StringPool Member List

    This is the complete list of members for StringPool, including all inherited members.

    dumpStatistics() const StringPool
    getCount() const StringPoolinline
    getHits() const StringPoolinline
    getMisses() const StringPoolinline
    getPooledString(const XMLCh *src)StringPool
    getPooledString(const XMLCh *src, unsigned int length)StringPool
    getPooledString(const char *src)StringPool
    getTooBig() const StringPoolinline
    StringPool(xercesc::MemoryManager *mm)StringPool
    ~StringPool()StringPool
    XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021420 000000000000001b6fb1433536a148dc4c590948b84267XQilla-2.3.4/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.png0000644001725400016040000013011113273140074021660 00000000000000PNG  IHDR\@bKGD IDATxy T;wRPIP)K$kX%["EiSRY"KD=";mRH!d<_?$if8s3j>s=A  @-@QE;@^p##ɓ'Ν w !E [)))fffpgFYݪ; E" EիW\yf▲cǎgddȏ;wPV HCCc ?~.//'y|mlly؟x?H$ >>>~~ 8;;Ԑ$IFFFqqCccc1̑#GG>\JJ mmm?qԬ$N8fff%%qHIIqvv uH__ߨ'O8q#w#L(˗/|AZSS{ׯ5)::Ã8܏?0 @`bbս~:2aAAΝ;͛RSSw?~ .:thذaǺu 7!qOggK*))!Ⱥ:JJJtttį>G2UVz R]]]=?m6UUU~~+VjܜMEE^FWWWQQQiiiGG 64n2gll<\\\|FfJOOLNNF"gϞ9 JOOr7o޼b >}djj: ;;;VOOO>>>ZZZ,,, `0(W xDijRUUժy=z >>Fч466Ο?jmm&]{833ի+++Ν{_bGΛ7o )𢢢#u0M8۷\r~3ј>|aeee C ehh>|Ŗ߿?;;;((XՈ㓬<<<ċl/^hhh&nttt4333::Øxc F 5k矹s.YdƌčZZZW^]te5r!77wʕ~׿:\SS388XRRr#:[ MMMJ,---Ī0M鮮K[[Z[['>˗/III<<< "aղ~SUUEJE"āPUUϟ?{7;;@={ZZZAZ&=n1p8vvv]]]555nruu}=xG]*R___llƟ722tҝ;w:;;kjjbbb{珌 JHHǏ_|9`g]YYٲeF)))aaqN|@ >@ 888\]]VV͛7kjjfee۷/""˗/LLL988899!555<<<4554w܄!!!a``PSSy&:+˗\&$$F &(((++{aҟuGGǸQHziiƟGP ҥK߾}8x!:{HԴ"8 tH?X:OEEE}p!q'|:`=EnSL(xepg!#vvvCCli\Sͅ;xzzNf#L+L" E(/p {9,HeRsM[4P霈$% 6&&ff1&&$֏(;I02rTffxE SSB"BBBp3Ǐ檪׷noe`@ȈWS|=).~^Wˮ)mh( E!!%}}C+o;0Pܓ'k [Z:EDxׯ_~⌌b$VQ$NLtx]:̀;$PSSSGf棬ڷo00ӓEɧ"ήpC__k4E{QQCz۷psmڤ$jnQ$b99!!o|^^wLCדUzzFFmmX5kPpG( d05U41QyٳkJ޺Z#(4 '<|>=avvfٲ9Ǐnذ ܠ00 ֯_8/ɓ/oH?oKIɩwٲ9{-wP^WwIJJٳYY[xxhoW5EZ3]Tiܹ7._S+Wn NNi(%!^f#ZYEE >CZ~GEUΘ᡽yJ(TGrr͵k޽*+;r"#.D--gdf>}F9p'j"mijder"aCM ӡ(=uM7> E24-*zY{)~~+ݤ-Z$V\p`]]5ݵ4PJN)(̅;@eTU燅ef֞: ,Lg(w7o>5{M |&XXP,,V@@66Uagg7޴I;E[z5`1`EB>|Yu=fgguGG5nn6C/Ȉ\+"< +yKCف]Cmۮ^}#<~H$͛^LL烃KX<ܡ"54| yECB @s,3"’!!ֳg |G˗..q::EE^KAEh)c֙p'rg$e{PPQ^Ӆ gȁi0]gڕX\W]H/αg:\ZRch(*"@O~~W:UW]ܓ'N$" |7UC7cbz,WkJJHذ!86q_}B1'',-W t Vv`}KGM6:*$@xxhm٢Qׯ?{:GMe'($}р;woeB!Eq*;vIu-X<\ AC}#іnؗ/?[.;0g޼yss슊{聊H6lXB1/p#,̓cFG+%M#~ܹۋdgPR;@}ƠPO,hhh;ޒw( p{X,>"BY[޸TD:i"#8v-X0kYC**^ѡ_xYW7ԩ[noj?8Y=HF4Z A5E17o0o^.YpqBaa9;GsYXP`Vii``L!];v$Īiߝ)C [޽{⿜aae»SSk(ot|}/_zbctt۱Xljj*Ah.hҹsZ[['U~Odvvf==Yɛ^E@ DGJJs]f;h#KZZdv۳G{BbʕNdŞAkeeϽ׻k @ N{zݖ,;2ͫW=}ڒ*"l0w户oEgFF9 =O@ P(h{qںۺ5xiz̙\p'_LllL}}CpRttՅ SHჽd{ľF~E zjj Yhd7oސq4Fvl^QQѡKfg{#77WDD LJHKKsrr*++G&[t)`cGG;;;++ȱ+W h֬Y0̙3}||0 A"&&FZZzƌN>x ׯʲ̛7/>>~L_յ.\8<@\vMZZ/ =~xFƼ-[z{{-|X,_LLlƌf2nNbS999 ,;FQQ$//ɓ'GRiW퓏޽7o>#kGpWe}@&; l&yhkkkggӧ3g޿@ DDD fff狊B ȋ&&[&$$@?!DO655C]]ݲeK  鉊 ̬'"">ffh$7/#""Hmڴ+22o߾UVVc0 ##'hd[|m]]ŋ>۷0™3gdddWX=2qsyuuu$1hdddN5_?9S$ڳ'u<ǏSq8޽i}fEKTTTVVvNFF&66vdЋ/p8\ee%9SSq!Zpa{{;uqq<@ @ y͛N uٮ.<ۋFE HdGG@xA? |tX,v֬YAOOԩS72- 322>{cffoH ,$Dc>qsAPEE@pSiWO0,L^ǮiNOXΝII## 'ٹՕݻw#;fjJ&&ׯ_*((7a0^^ ljj"]{vNNNP(Ԙ򖗗WWWߺuaL_X,V@@@(((@4zUXXxt7n())L#D?pNQ&))92oaDss񵴴կrB4… ~Fo~P(-\\,[ a)#AE^q..QW,7Y---!!!ZZZ^^^-"""O>١a|||jkkˆ uu3]]]տM;00:;; ;;;GRRRΝ;?)))Ø2AJMMUQQ!3g222{۷oEDD~F 755_?ysN"A_&|^!_m$7..xNo? SFEq``.P IDAT֭Wf[ر#))mݺ'''ӧO{a&&z{{srrݿbƍknn m`3<q?7 &MvvmL-u kܖ$Ѕ ?zw*2krrr!++KHHsxxѣʉЄ ¹sfϞfii˫7Ȟ FEEޞǏ>-0디 &&  EGGg{{왠m۶1oƆ_HHh} #࠷077eWHƘ}̙# cb)|6'G;hl;w A ֝`,PTss666JIIߐkjjvA~cLNjmjj훙AD< ջw yH&GMھgfLwbbb2ZIr"0B@s˖qrɢ\\^M\|qt}EEŭ[Y,7' I)7ٙ?|%' px7))bpǡF>?B%%Ϸl:yr*Ҷ ?3EwozQѳXGP`:Z}Pֳg?+G䤦DE++K UR;wRQrvddUpڵpgr?~ yLQ|h)Y38CBl$%~#2$&KYhih`Ągd277ݻwOYY|Hiߟ!''h뇾yLLQԴo>2 hilm3WTwjrq (n޼n$MqRЯ_{ 880mQ{Q`p--8P۷_ۗ޽{9K»파IbqOޭ}V[[&(,kg׷^*"+?ffvi޼UU4\ڵ{֭[ukK\Wgx,SS\˩`ʨ(?rSh00. wRG9;I&K@Y|Ӄ54N߼ 0tL[[F',ޢcO*epgQCG# No٢RVK= ij.أ>%Dtx ݻ@s(b0mۮΚ}Tg``ȑ]sllL{ ,..֑S5kNSFcee ~ \HJɓy/^EDرP{jkMJ7NKs)#Y޹Sxw~PcQ,+{Qy&)pgHOπoM{p )իN5554NSFR^D3@ȄbOϠO Kh%T$'籊ʉQQqqBBꬖ֢ _mm-[]\D2X77wTW'whs Ajxe5k_Ors]޽F-n;3 .=|,=xkתOJ rsYs5%E+^^v=KYX:54;=ؼy5 wNy` **^^ZZ0@zUOOWEE Dqp۴::g[NDΞ570&AGEE̙ξS6_I5knz`F\ʗxϘXQzr:3kAxx'6j)Ϟ}:tȘnHxm{eND.""ii2.ݰ!DZYEEjD0( j)GˋYZ;JJ;EDqs͛^u! 0( o9x2A{n25U;TT旖,Z$bjzxZĹs##+$Cݴ[M3Xdggs ~||챱Y21 nnw"#.>C;0Eʁ̮]:(⥶W>yy22?hA=hufgkߟwM?]GӔdxaeuYMmAi/>=sQQUpǡM xkVw2p8S NDx5C`,;'Nwu; @`(]]?JK_-||om}9"8dLI8XZB_?͛p'v>>Q("4UD2Rk2޿jdtO;)hi-*.` w{\~ Pz4 5wYEK*HHZY ('h*OYٔ 7o>pqxߣllL2c" ŨE?gs z,X04qѷPE^t֫WOK>c'qbF,7#ɰ~,x͖ljpջpǁzHHpgb]]8MIuu-7̛7#!8䢩h-X,aF `oo_Ym4&xPn(wNiу0988y/`*:>>vիwvJ`p?~qqD(?>~g4TtVff$qnƥ D2,zF+%$8[Y];ԸقKPJ7o>Cp, ʳg/+*νtɖeeI>>vX܆ Cvw46~ްOwlffիw%bkk' 8cXrf<fn~INnvL#122*Bϱb'ًbo` ^8= Nbbp@ 3qrRLNJ;O3ًb0At6$=!>>/^u;?q޽zީ/W'99dq"{Q$.ʊ"wG=02rp>؈@ }1>OfϿG H.i9sxY( ,Ns(~{+#snFFV[]+ o={Q6l9ݻwdH}BkOtRٴd:f0QLEw'0Sh#pgN:G}#L]ľFo!kwTvUpuDD}xtYR@^BBb0ؙ">.O2ճV&_/"""]]]%%%͟?Ǐx<>$$DZZSYY8l8h^^ҥK؄FjgGG;;;++ȱ+W h֬g`0>>>3g`0!ii3f:u*>>^\\ģ_.++2o޼1}NE(**=y$1䜜  zxx q*11Yit'uEfvvmKK'Y#S BB~"wG=~}Çuuu˖-ۻw/@ Ҳ'** 33:::ۣHd__辈-y$ݍ 200 @BGGՒwĿ4F˚@IIÜ9)x>>aaač( 0r6U]Gx|ZZZggaggdZw?*ׯ_6\hMlPjqqw; @9(N#ٕ/ΥЃx<~֭;vHJJ*))~:A[nSaa޽{'ndhhhxxi``ޜccq#ظq}tuuCCC@ddd P(66 7 ܹﷶ`#ȅ\ravvDlDٜBB [ wwge="U,''7<ٶ--D߿kh()GDؑ7n9"Ow~k _?|}yw˖KOA\tׯedx  0ޔ)))͝;2}a08;֬2{z,2P(te{ޖP{99yxlmW۫񱓵GavFFuBn  Ħ^eieDKKgvٳC2--V,'QPPY3:x<ێ79KHB =/]oUU=y`ִZU'~~vsK_df\s H'::IT IDATV\wRRjTUOGRSX[+333Pr㦹W<Z:8;pq$&ncdd ST{yAENݛ|A%$SU=뛺|xe޸8G)s-Z]?w.^}"!;%p$&twG aC󥥅"}E^zߘnbիV *27_qA3Ei˖pršۚ5O~̉ wkk֮WpHF;t(K^^T uÇs?/^/( w"[X[[&??\OM}‚;YX[+u.;_TVHH,)3Eѣ&,W[ljbn~ITbO@D CC=w\\I=^||t̖o{-kkO %Pi0ĉ<4ZK|K #.Αo2VV&77ͪ}ݿO 5 ߾w/n3(Ҫ_{Ӈ;D>I8%>)7cypj3grsE57;122HHZY]8SB1ъ׮Uͣ&"74]sLnGFVxyEqڵpgRR\?|vAC *.΁qL궶np =E&?~Y {?\73[^QLzRUEEއef>Zx|]z:#eOHpPbr;W@YY"!AE׷?75bgg*.>v̄F'١(ݻMM=W]P$#&or/C>66JJ6EsHu\C {d6,C nnÇ7TT޸1.PxHD]V֣"L,݆~Hcn~}n޽zTFCG#^^&& UUh%!qW:67SW?uxޏCp"5k> ,SB1Jgw" f•+%򯾾!? ]sH$͛ǎpr/.޿;'K˕۶Js,Sac{EK$"-)/y;oo]ڵsrZdfKK hZ@ժii-ڽ;iӦP:XP[[ʻw7 ܹVm($0P[[fٲ9pz{}}S--#KK}̔j8w: >јspn]}4/"$ZBbUķo$v:"(.nx:p**^jh.,sg%e ((SQ9TM,,XGpexV$&nny(TX^I݆fYY]VT[^P003S{={֯zܡ#6vkUQ(F3׮mh(ƍO[༚'5O9` gPX̌44 *JM}w? .>CIIF,FHzqG8:$F+ݾF#GrLMC^{S-,Vl߾'pg6)D (4 4L__ b[ut>zԔgB1R>0\\ǎxbuo}uu8;ǽO3i-E 7n<;0u(Ruu-nnk)uZc㋢^`'ZxHnG`Evvɴ4Zd`@\h%..`kE++ipqhkˀT" .Zd(%;l{wfJvAANJq4j5 wJڲ%P̌qvqbiM{9}H{[S]wo\Q21kXYffUUdhh)<90s&WlCMǯÝeR448"PZpp%.=j ݩbbżOO3g uu=yB3.Y"z˕41`h(Zw`@Q^ ++_ءESS,Y"ZP)))H~A4}yyٌ.:3QLVU*vN8] w39vvܙH3*|VXEHhmʪ 0#I[GGjF+)y>\7n׷汷W)hj.{\{BF3gg͢ҕODEycbnvL=zp%ޕ+%jk3(RrAA=旆; k_,?itt  /X1=9|~}̙-sؼHZ S+WNjf葑k~gpp0F?7{6v9ȑ<>jӦnn4lq>>33Kx[M3eZw@w\@&5^߾̙D$oZͷ e1bzwE ]⪉&g^À惗.\UUk-<Fhll|ҥcEDEqqI5rrEp9sF0+)I`/>z[Óٳ H$’%,53ǐ@:"qZrccE˙ADn\ 3si+Dpv6 $?Ak|4ixx2uF\\99vk-7Nw hڟFhk;|\s.s袟)ҦO7"~Lɓ[nxcVx""X5"?u0h(QQee?/Ǎ?WSD*3s oUGG^W9, AAR@('NkEU7mɟǪ98ge}G)!!(g>>ݘ--m޺婬,Ggg37Wv…a -V[؏|yMdFiIK޿Q>}m*'F'";k+ &I*@y+'y%$/^\.:8egk!F/xKrr' ?xᘝ;gZ[x3L@?Ap[deŮ^]8ɧ'*yn.\7KK-iiѿK@|ڵ!_-#G^rMM=qN\A@{ΜSQdk;mȚ5)7_yÆ 8ȿ̛7AZZLׯ|⃭표oz 3KYZjȈ=x}P0K};mvG榫8wrrAT_~ذa{44 O ~!))ѣ=;V'6vW1e˸k""//up8~#[*i}uZ^k4>޾bm}(-3Ÿrr2[&O㶴ԔTE^rZrSS…9`[}͚JJ{TH5J+6W[[nx*ٷIUuҥZy(F߁Fgh54m?9rQv'88@zhh ;<<+U@x¯_kD@'ssK?}k!f@33~))'O>ٱc&<sxSR L9['O K~5Otb<ρFg97m#R׬ 0Aݒ# G~~>cx/_,^A777QQ d2t BBBG` $^ƛ66WOڼVVWh@O2ѣlʀ0Ee^V+sA?hZwutt,-- {=7qtubbbYYYYYYff ~=jVvc+?a~ WPDEUPX^^^'imٲ#GNNNNNN=[`… ^~ ȹsdee###KKKTj#5@"֔ת\#ݾŋlQQVV644ܾ};z $$+Wܺ: 0 gϮFL&tF 镕 lذa˖-$vvvh]V|}C@,͉dWIbwP undd$Z 3FDUUf7:t%CÀߩXۑ: s)քrt4{S?~ hh-#!!bŊUVw Mohhȼ2gkk;|f]]]kk$*zzzUDHN(EEE #ϟMLLDDDRSSOnbb7m4i4&Z]KKׯN0?nIFcɒ%L$urwtW@QQk}}3g(,#"V%%882#;rd0y͚J,))2bV[QĔkג.- Sg"T:uW99=#olltvv޸qczzӧћ111ٌVdiivTSS좢LMM'ME999PXXV/((PRR%::ٳׯ_c>aaE JQs'߲bQQzg`fL?`/"t”'O>NL<466+&@)w6̟ρP¸v&5%Kxyy?y$::dɒ7FEElڴy#---d2q۶m_~EEE͘1Ȟ5k͛333mmmvvvO677'HVVV!!!jjjjjj[Ο?k"""6mZreSS!P(_~1ԣ^@qww^fMqqqcĝ;^S uw/H% СŎKW31kvnnم /9" 9n10bP.^\Vtx,ubʔ%%>a59(bķo511YKoA㦡/8@8N칏pqŀG<05YY1x*"F6ܾͨ&=hYxE,hjjE#1H$B_کk޳羛 JKK͛.**jffvo21<=ߎ'z$nn׮LKx$""Jcnʔ%?#\7oqvZ}}s#1{gU*ӈs纺>z-JKs&{Ái } IDATq7tB*(KHs^©8Ej?q+ݥ@?x d1Iő#G:&A$`ooORo߾ D,+W $00-gfk׮OMMݲetiɲe׬ =|8yx<ĉ3FH$x],Hp{}◂º|nwćl~|Fg?{:{(EEEsQTT9r{?AݻwKHHhjjFEE{I3FTT5D[[DDD,-- xNԤntcSD{bn>2 7SU :׿- bcs6l֣GCn墛R1 9Cc"5xAWwߩh˖ZZF zj`ߗ_SAAD C~#&&y$-ԟ?bժ ƍ}p}mm,λ,NWS vĉ%\"X}*))e<,pI%n!(D{b P(VnB̽{ҳgz}z̙eGr@A&+(*JmE 8hhU[U]]7g[r՚5֨.!++{YVnB뫦M3Zbhhg֖ ~xlRRg[z( XE))kߙ$ڀ\A pMp(+!ׇsuhݷokkEL+DGgX[&WWhhҚ5ǘC NxzZ;_VıBp8ܑ#sZ"9fWƏ@||6FQ2II>w`! ''0NN9:%%%z輛7{˩6;A| "(Q1j["$D riff|n4a,!eH$IUz5N/]:wYfaI@4Bd*˳A{Ko/YriΙ{Æ)`8!C8|q/?`aJt[ϰ1`o~R¼yXaYw_prrⵐpr?6DG yypWWWf_ 9iiDV3Hf+<=?^}5&fǝG y6!S!!/U[jk McrGDߟ޽N$?گ^}R)oƦ;[VZZ;auKJcbVqU˧ !66-LI \fRBBA[#I]oܽ륧'?}}iBq8]6|#"^/Y2Hafqc81?#cG`23 z[B$i%KxzKS7NՕ_*rq8ܨQZp[`&R(64vD#o>@ǐ P,cc}cb6t…8c۶!$!(ȽDZc9mׯ nj%;o[[ilch 7Az Pe׮o8uʭuʿvswf²es=lRW޺Ձ-,4뛳"o(jjd}}99Jo+>|[͒%؝aЏ# @D97͞=ƍQy3 NNf-]zF,d"b--Yiiׯ  0)V TW㤤qtبxjI0`׎6,)o=<|ucm~~7޿9ll n|,8 ;vD]33x3NHo((56ǬG̠R?~,9GHR'77KnG `?vιs SS^dmO G]abzԙ3O1QZZA9\:s3zz 7ҊtT]K8͔nD"'rl{Py۶Æm𸒐A֖D?^h)Cg4k< > )Q$C(r0'V!#++֫ZmmTWW Wxwp#G>pv**tq93nܾE Q]]j֬vs6G%J`r2\AT33`#6ӧ:;qA}@bP,=vq&&ЃUn+"RsܳOz!B:ztndE75U6<cmߴ32J4z[1,,i8uuin @ݖOCWW9}Q\<9I.,9sҥImqt]\Fntksp05*m?c)y[}}sobYYm\χb'9^fqn{f8v C r^|5Ͽm;~Vfy<'`jDE޽P+)!--^ -..4eP.S#2>>[Wˋ61wc@p[lcGTo =Qv_V51Q T(Cjjjz<ӑ_$a!N/r1y![#}7<=u=w.?Wch/X0j?~pL&B=X= bZg3E(xךs͹$ 1o@NiPy߾&&^ ’֮֫_K%$7n`ks(bFHsTYYmiimo3%YXhjkn x<)CCw5˙c>SZZkivXhG.KX|g7nׯfaao?`mMLT[[i&Zݻghzb÷@G@9?cT˗_0chGDNK+?tHN>\ Elԅ FQUUJYY211~Dvez޽ "0u0"b_ȱcϞEE'LLT##|\t[+(Hlp%eԃ͛Vbi4@bVaz1Mܽnk;TDDK }@|(cK)x`$UT%&~¾kΒYQ>ݘD"pOm%deŖ-_L̆#5519$$#"V*̞{2xo/_NUG::`ZZB!7F6YY_UTIHXӧﹹpρ˧o kk\\Π~ʎ&.5JtBB^ (x(&կ3jk}e}MQQQ%\;)A9\Y|Ǐ'M:hJEƬZWDD VJ5b:gbg9GNHǾ6%esNlfO OO&&nY8nul6lϼUTmc"4x V ei0AƍADx/dgʊRFGGg,\8۪ }>3E~ ;Vφw/ Mёwrjo[AAR`_֯]1p3Nܸ2ML޾Py'LqqqGrs X~]XQ ?4M[Sg÷o5Uuuͼ#..f@SWbcs狧޽saTmұ۶)/Jhr~үA;;9sfk&mJ; yqqp[=?}գbœ؜Ф/?ˋϚ5|Q**xnN[>}ݳp8Ǝu-VV\Yco;8KLWWXHgx6SX[뮴+X[[x8!C 0~y0a =XŋMf xmi9fq{hh/ȇ::U"p xi'O6RRS?P{hiiWdpv/_QgA1~yL0a--Y7o_TBBaߍ\N_ӧ/u+uݺk-5oͷz  {|/ӧy=>|(#ZZɒ14TҒe%--fj"H/ 66-LI \fRBBA4g66aaf^}k`tҎQ=fd "6(llV ,K&aԩm-@h0FGH$¬Yo_z?"b\`ma F ]lywu+16VW^EE++?0@~ 7LO ŒR[ۡܖ#sJsp0۠'N8#7̸q{b.0%K.1Bz򤟭~PƢ̓&%AVɢ)P(Bnn11Ə zfj} ,\ff7o~y˹wϢh,CWW^Pqu`CxlD z(7Th=ʲ1sN *v|vǩSnMM+Wfճ. "bՇenn细$s̫Wڗykk6lx2D"^KK&*,66U?>)oe"ݻk^{vOhPrVUU)%덌Ϟ]0m6 }eذqEG>\w \)7nTUՍ=gcAA黳iUUbb͆iӌ?y3GoـCifVV##nQo6,`׮[V %m9Dxxͷw ` G֮ {7{n)Th4zbb~hhÇ""F28+)(tZV!))2oٔ"II`cs@^^Ѥ: q8܇W)@DDjȽ{=G ezz+=?^Z~j逇@s5k&|@짩){gE/g35nnӿPMwkmU"ZD2`d]ADE70Ç2=N^de5IN1jfo ==^rmw q%!!DžWgv44d"#0}"4 hT^ /ΝkXq6CV2g77K ?} Cad[[BRR~evp8}L$w5x˙NW…(n3Eg-^8%\SPhϟ5JKH$h ~N~;RRR] #G [;}1#;FTEcw4ԤnBʼnEE##y-?45e y&a# `LttFSS ÏZ[i_TJI)d҂ҩSn/_n3nj@O:ill5k8CKK+N&p8!q 7Rx-[h4zqqU3چQ@0&44J[ݻ=WW>t%1qh2DD"La'EǏ ꖖ{)>AEe)!l˗ŋ#&**k9ݒݫikkwr:u*χ=#EEiiE*h4zk+34(i ڽ{ׁ˗"!\PQUuFOJ>z`6:}2|xmA@F1.ĉp픋ܽ{ѱ4,,rz]TT;c7Nw+U_ZZi4z]] m4Fmt:B w%V c;bjjSaAp#-[F2shJ9 8X\29sΞ b^{,),P!33U!?yokkk7o{?ÇSE) ?e ˴:#G""._6j'񦊊|ݏinn>VYy€[#O?μLLL:l$''''''ev횶v]] ---222--->} 555 .RRRill?1:cddTQQqt:zŋO>uz sa&&&K,AKKHH(==V{;G{;|g;̂x_\ 2wb#[`… ^~ܿٳ|ijji&;ugϞm߾ 333++׷ZuuugϞ-++x"H;x .]z*!Dov췬L&/Yׯ?~ puuRggg*z9@ee%Ca;w6m QQQ A4AAzAϟoeeUPP9t۷wT龾h/ჼ۷ol7]U2o))VABCC Mr'="F12ʆߩҙ)Suyk냁wX|(++n߾^YYzklly333ՍD?}}uZ$СC555t:ׯ_4gF]"osssnnn]]F{Eu󡖖NhDEE[ZZ6lذeTSSsA;;;.@hGFFjiiuT^>~ڇ铧͛ iPUcQX[[ӧO۷o__h!FOQ yk!) I +VZfQQp666?F;3g쮖d\\\rrx}1v좢LMM'ME999PXOvAARG%(gϞ~z\\\wC3f̯_^|!3aNNNwܹqƘ1cYJ"`\ܲ7ox-?JKka>SLJ*2DQRR3U@ӗ,YɓhY6o\\\ikkԱ?\f͚؉p8ɓo߾MR[ZZH$0QQQ3f`L&766n۶ /Vp8vvvO677'HVVV!!!jjjjjj[2rnڴiʕMMM @ fϞ1rHY AcŠcǶܹݝßGv`€s}-HlwcDEE䬬,DEEGw޶6s1S#Lv1Yeɓy{Z$$|TPXܭmiCamɓFFF;w-1*xbIII))+VwkjjUTTwuumwZ AMMM2ŰzKK uO#G 4HEEӮH] %wFL&wT]].%%~v'Ϯuttlq{GтXQX CYr=)VTTHGu]9~ݻw%bN8LƂAyyyWmm"]EJ7۷ 2qĶ66 11x KY իpk Ljjꕔdapewlٲe޼y,ONiX)[(D HssСCWX ʕ+xE]hUWW~ٮ]bdh2s)Lq_£^6LV #Gj`( aK.-_Zp=%%@xxN}}=N?uꔾe\\MLLۇެ˃>}Kq8ܥKeddwU qq@kkƍdee7njiiyQ@uu5h4IIjkk-Z$--I 2 Q= !!!.]ڻw˗CBBڷCCC pzBۏՕF䙏uC"]y޽{d )6oiiF! ||;9fR Ʀ?E(o%%%lzg]bϝ;'++YZZ9DJ2 W`q(6m/"Z)$%% 4tB[罼Bg((BXc5. $$+WUX+ t:}ƌͭlILLD{ܘ̩:A---x9 4 İ 76NZ>țiW"@E/YYJw7PffN!5.xX!8װϟ?{֭[QQQP^^{u$##c,>7z}u b}v"?թ &7Y"`QePYY7hPoGPPX%qJJJ޽k/ü/εƍ۶mGUUwڅNsuusc f<x&h.d~7׮mꤥź45HYYR^]EK;S,0]dƍcbb]4&0 W`qxxx.]#''~X^^nccѣϛ7iٲe 1֮]e777[WW^tSLn]LM\kP =V KI)lmm;L:pSEG 7rOa\lKKΝ;544DEE---])"]U%%%XkHH@Ɣ<-|||*((?~x^=34 Xhkjjj^^^=u̘1Lr5. ZEeÝ;ox u% ?[.^XGGFyEIJJ߿ٵ$N?s ?qD.SnN 455%$$Oݻwuttddd))!ܜ^00삍~QDdŊ)SP@jj:|X.# ƪ8B?2LR,1#3gNMMͅ UUU K^pAII)&&"66VKK <7TB.y(BXEYAa]JJ!<|׮%ihl/#$?8<ÒC LAti)7VW\Q=<<~Ebv yÇ?W1uqHB8Ӳe)G|:UPv6% ^eȐ!d~_\G<1$xYYٳgbGwv/U\\œ++IKw{~Z#`"tby'ŰZG\yn`5@D1vvF/'AE*PĆR,FϰǏ={}vԼg^;H$/sZ2ڄ}Tj0ÏӋtD cI-ιKHH>|xzzzꮮh3,zjիWkjjR(`L/d)եN|:c $Jmc`}14TL q޽rk"#####kH"ÇgrJmzݻa(B @E}}ʼnNzYt:RWD00%ʒRR݆0B "`ׯ SR 鮮NG  $Q43lg#"@ C?sig ]mMII͛7y1--42*{JJJTT?Ek! O?;}ڝ}7DD:^67oDC ,,l *:qss1] `)ciik ˧iQTT[Nsr)(Hw/#G[TW:PWWQqS|X…;.܉qϑ#Gxm@N)f09zGrPg[6d6 yy leƉ3>r@A?6纗\ nhh!]%ZY ^g],,L^|;B@G]>E={ɓOKCCs׵VZ~}} T=zOLLRS}|lE@ <VV!^6>}omS)*<}$G /$"d"$9d2QSSasrsKƎ?eE@ <EtxVZaa^نer]7!qPNN#s6Y{@ebcckWK  %pɓ}\q'O|0΋ @ $m}vb[cB/II)tv>xʕe:8c @Xd E̙UU~č[Zow*a 9Ӧut yy]]y50ӑ[#]{`}TڻӨ&=w& Ȧ!aDRuAKQQ6[+RV E{V=P{.P֪(UZڊ;t`0t*("n]vwPWoNWkk??tzkkokAq4q_}7fWW6]UU/ޠPvĝcHebcs8nJׂ"B(1q/O.VKbkDWG>՝:Lݒ% Ry:8Z@ LOʺgbb;tEжmfڗuOf^A:;ꭧϟ7.m}{PDt##7͠8z))yaar)?|^&N;l GR{|~;A7|;EsKOUURŢHǏ|~.E՝nH@7grRRT/J6C$x򕓓nEX tb$$,u7 t/(Nt;("BB|칬J!$)߈㘃(F՝NM8k{ %SeeA7n ֲrԩc'uiO 1IDATOVV6jSj9OIY6ao}JٹsI}}Kzg.b7<@FBKMt;;N7qVwЋZܹG_}.D*%6X N_/鉈wOw\!P,jSX ^EP`s=w&$lD0IVwѣڵ+dӧ VxgFC6{.B;7*j޽AA--M^7{ee{VwŔ @CC7JOo okmo$Ŋ-[~1cϵk%;v,׿^= "" FʭΜ)زիvvJRS]߶-hڹ_ 󛪪pg00 I466LJZupeccuo? ,"44M"!~d/:oA ŋ511ܰ! >@R*%=~ Cn>@!=Ħ' I ^RG#튋iiׯ\yi3',ֲPEmmWoDZ$."DZ-[Zu0TJ =*'IZ" H$P5N3g߼v.==2(h"e:.gR|\q|4 }|Sb$I3ٳzjbOa2J !rÆتB%;NC*<|J_7M>wx  aabb2[ZF8Q?&(zqݝ3k~}; 8ЂFWP삂$DZ H':q#IiS?paA^Vx`linƜ3R)cff@_WPۿQ8&E"޻ǣ,_`({Z,ZְC bT*srQQǭ6efZxK$IOT{OFJ$?9r$B=ðݲ˂]0:㏧ޘGz vmO7f씌Kbl*.mllV~])"L|ǎԿrHV~23glKNU%ͯ-;J!(,:;"p24d.X0A6d,\ wA>ʕlH!B>}>Rd2u:UxᲲzDX83_{GPـd q= !//׷L,xeffLO14dFD etTD|wDDҜU ٞsO }WmZA"Bh(gEG0Jw}XKX j?Xz¶CeeuJ|੩7T X &Kz1bT"h-Aj͝뜙cCC[~~_ׂ\ PX$lo\-mm]<^=a, KŌYG88X[r8#ml]\B.LMM]w---CTѣMBNN#&F ЯS2KJJ4)2f|gzzA᫯޵= jeevW^KڊuٟO>޿JܿxxxeeeQQObbbYYBh7oܵk[oUTT??͛70==L&599Ya'N:u$I.*Qo,Lbb"Bh!=4 eee>|haavӾʤCD . >}ZPPk.τb ԫg]w]UUkkkK"j_-ruaЈEPhooM]6i$ۤ$ɱcfggSʶ{jjjbX)))B TW&rAQBDpp0_Pv*2B$IJR.zI<{DR79(*zyxxdddT2fzh`)ZXXYdڵĊ j{W^^N{zz"|;2nܸоrYZZ޺u~wq\aVXli)/I{qgee߼y999sh VVVꪼvˤ.>5ŋJQ=I&~VR[{Zg0ϟ??tel6[P(,((ҩ'sTgϞrqܹUV-^Ia@z$ BH S_WUU%''Ϛ5+)))::>HgwH|kŊ;v_ ð .D.5bsrrr,,,B}H$JMMWڪ@I^jB(>>áQ;۷ooڴi Ucǚ*7l>|}%HIoSDLLLBBBNNNMMM^^Ν;/떕+W0@bZZĉHx񢍍 XN$EEEYZZ=z͚5mmm77o577_|P({"Iٳ999 wuu-\ްݻw[XXRw>I3g9r$\ CC?Sϟ??ԇ&w?DyJʔ]_ަJ8v옓͎mooWdx)z~JH$d777ӧS}=S9N|||gg'_KG#N Gq@7,::z W (#>D+nnnnnL58WaX]]V7@zf@155522J;::ZZZRHknnnn>uIENDB`XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp.html0000644001725400016040000001262013273140077017513 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATQNameOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATQNameOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATQNameOrDerived
     
    XQilla-2.3.4/docs/simple-api/dir_7d7a68009c713f027cda8b1a802087bf_dep.png0000644001725400016040000000437513273140076021332 00000000000000PNG  IHDRPxbKGDIDATxkPSg7K EH)ᚈeT4mX%ꊲRFҌ~ig-Q(ZV[1.,bl$!Otry9dОiiyWwڵ$;y*ٷX71'O"؍ !9r(3Ϗ"JKMKa`3g:lf{B<Ś:1(ܰ!$W>rsZ.f3ijd/jj>PWNj?-[2'GsvСNN475iiʞ7__ĉ?vV"seB}wwlG^j3ΟTTT^X߯j5[m۶oii)) ZfS,PرUyxr R?X~Bƺ.78(hVu N))͟(7L*=:u:ɓ'}ବ#mdV3]J},7.n㘋h~F읜uE @ɓ'[zŬYs /55eʁ5"Q@{e-__ `WQQS6Ĭ ##"–9{yyՌ"Q֘ttd|\XyTWW4449:2wM 08VCCT.YO613>BɓlI* MVQQkU-mX:, ABa!tX:, ABa!Ll?8}3Ok.͝;ߴsPBw ^biB99etX:, ABa!+NNd,3U`gg57CJ%鑑 _3x> ABa!tX:, ABa! 'lhJؓIENDB`XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp__incl.png0000644001725400016040000016222213273140075020151 00000000000000PNG  IHDRM*bKGD IDATxy\L3mhDTJznh#[vr{%JRn)KH iѢT3͜vD3~^t:99uysh$I@"T(0V\KuvJSSˋh+ @h޽{+++S)**z%>g z)ڝ;wl۶c0 #:(0@9rĈ[lh-yyyӦM!̙3w---URR=zԩS%$$8~Z@@@L Ci # 5j믿 o߮_s{a55r+XK_paxx8N  _޽{nnnFFF߯|?>}6MӹuFhPA^PJJ*,,022 j<X||I >}zuuuwyqӧO0СCL&[x1A'N|Y[[3a„ &rIJJrqqyE?~n:]]F'&&8qb͚5_aԜ?Cn߿PPПٷo[nM2%::ÇlٲիW7`ѢE͋jIMq˕{`Cϟojjuq"%%5l0 8[ F&| 0aݻw˗sTWW[XXL>̙3>>>G-]yyyeddlll ijjr^hii}%7ѱKiifܿK.AߑL&70AF]6%%ի-$Iر۷; 0&]|̌3UBqqqÍ999bDDDԟZLF%Q3a #55Esڶm[BBB~~~jjѣG뻋G޽{'Ny'O!##CDdd/_gq>|8//իWcƌUUU'N(,,|5kyڵ[k2L+P4fkkcΗk֬?qD^^ȑ#g͚Ւv>}*&&շo_99s9r$ `ɒ%qqq[ZZZdA̝;nnn4m ,h5o>!&5 8 (h_ߖ „Fmٲ‚ dHxΝm۶sV`(  #-)4`( @ PPP B@FuPAaP </_R=eD+ @ijj~|KDD 6 A~F@ 0`Aǎͤ:cP@FuPAaP@FuPAaP@FuPAaP@FuPAaP@FuPAaP@FuPAaP@FuPAaP@FuPAaPF$U6ۏARDaM׮)NKxFSS_/^< D&ۭ[}58+(Lh&.Da$..4@z;rpy]Aa{w޽iƝFx')DEE0m;9l΄<~0"׿wN#UUM #G&58K^AaXDCF#ƍ36(I '**"*JWP: (OMԟ$I$ͨ|_HH$ieՇ,^0hS]vͥ:Mt MM͜S0I Fyxx 2 \vMSS Ο_t 9sQTTDS9gٳgcvvvrrr~֭[w---6Mdxx:lrO4iRYYى'())?;I:t?y򤘘XEEEA<{Hb&¹t\jx^&q;vؿF.]"UzzzBB֭[oNPP>[ M0*++422 444|rժU-ϟ?!55===9xMkk}9$$I%$$r33&$\of_xtܹ4[1Ujݻ7[Z8]DAs*omAa_l9s-[v۷oGDD1gOO7o[Fjjj DUUՖ-[(//gĉׯ}rr7AVVVeee[l3gN{~KEEA4ҥKt:`KII5 @Ǐ [1~*5… ^~,_<33ѣG6l6mZ3~=#7СC $˗/2۷kkk 2ܹsDsHܹs׮]9ꪠ0nܸ'gVPPҥ+++9ϟ/##pp{ȩd2 &##ԳgO }}p(@J܊p4JMY[[HKK2!jNlon-[VUUƦi9FG# @т[Hff. &?Svqq/Fk`(  #.X%Pz6TQVViF5FuPU[.y*?3ի|T'oBaM쬬ׯ32 _*(|h]vUѾ 1y켼ׯ Aꥪbh!-݁ 6x]RjkitzΝe_3"5M=σ/$$$5PM_uAzzAzzwLV^TuuU8ұc=C+WG2">| MǏ=z|%ILݥKu ""|Eu iiyy^ʯ]S(HH yye>>wΝK={ؼy䤸{k''oz-]A=ƌ15QQ*p #}%99'997%%/55/+bt00P74T7404WVoPU|dR ,N,))UFF<藷o~Y]Gs̘tt5::99s޿/!BMMO޽ 5֭ o'P>>1/'uy3~u̙$I=ӳʚ;w^ݺrOnggjggҽ"g0yγguPVV1I**FF]w52ꪬ܉÷߾@mDEba^vyyFӾڵ׮=/.02jggbgg@u4(@~~Ç8Q+++٫QW##M#zRQ0$y˿IրKݖiFFwvrqf'Ql6񻈈IzzNNP 괴{ݓ'Yh9l6r߾))y-̺Sd Fm`<]b?y'>}13nkk|nGޥ٤=8ŐVƱd’3*+xޫW[Ia'+V{t[.2! FmL̫QQ_~љ4RR<NKOL|ѻw;t364ǀuYꌂ#G.)7V:QQQcdyǎS :f޾24ItK 1c'C~ z}$FNNj@61zB\QZZytɓqL&kAKRU:Կ;]QQsBϟDD:6UnnlǡCu :TGO=CE:lѢOl[߼) |zؾ3f ()K{7=! Mj 7xpOqqQ 9il*o7Κ5,<`޺ ..G%WAS VP<Ǐ/^]v1׈ BilE/]ZJuQxl ,+> 0@P Iɹ''爋;z=zo4yd -%SOOȨiC&N4*܅xqVddk >+*XXc8rLӵ/i\J8JҚZ#k׎3ǜ,m-!፟ד:;wU( >߸|VjBmb5fTGk|[4 7,,lAc O+)5Ypd>P{7^<}---1jQx(U8wp\3֭9sN=|=07_=YN+(~]p골9Rnj1=7&=PHil=hUnn#Bg6}/xpO@a?&<ɺq#%}ǎ5<,#q[۷#"S_}8}^p#993~BAa- y}V1c mm F=w֋J5dbfM;rqɓ-X`B(;^4+{wE{{S{{S}}5s0zL&7w1 ZP'Oښ,_>FWWP4-7!!sTUƏ7Fu[|zzkTSL&+<љ66&+V?l'aaIϟ(*0@[D_u[ӦM;{wEFUu:?BaA FmddŋbbҤ$Ǝ5rp7lnuc2Y&&[,x(;$oL_zuT/(ڻׯ BB_XVVifi2o~[:(%%͕T $IFEzyEؘY3Ev=FTa!="YPԼ=Lvڙ\d֋}Ѵm[Wo`ӭ[Q@dnJp!16LGS'u:4֮ilZv~[F,[fIubCCxy<}/JJE%FENNi` KJ*-,z99 8s[bRTHL&+(街-:jlǴۇ=0rl6y~F@דtvr8}--tNcݻ|::TgT'bfv@h~ ywÇOCN6ں(չ1,_g[Š,ȑt﮸z Չ #af11igwZ..N9^:aCHb5ToqVʈnuKDm𨬬 ~tw՝>]D 4B||Iwk/m_̛=|ժ_ee%Ns(Aa!D/_vv&’| 4Mm6mȪUREx$bVgG([rrݰΝOelΝM:m`Ӧлw_߽ †N㏛~~zرcBT'FdݼĉWs޼0jƷO=u*4Zb tBZڇMBߺ޴FNNQǏ)..7mR͎lm<=REh%mFĶme(ƧO_N;u*>}ܹ54ծ{tt:Tٲ%,:{"8#kO sga'@W;q"$3.^ IDAT+*4􉞞E#'L02B&#pC?Wֲ7JJ4򉤤66oZG!I200aְsՉ~ #>]'*c` |ѻa_AA |_voq AڗbN u(BqqűcwNUQ]u Any++,Z[=vlf&q6_mb=oMc55YF<ɻ;KXa5y 񡔔 nTU.]Z³;vD4s'U9R[˾p!q߾ -,ǜP$ ~V{,'$$vԯ_k/~L>r.Kڷq%+>lZʚOLM_hFvvٳ[gqU?{ִɕFij\p֔gϸiA233ؠspWTT;89  YEݟ99T #y}5kիFmm-[f̘ӧf~RM4ޫW/eeewwo]F"##uttvUQSj7vI7n444lxA&MTVVv JJJbcctd2I 044d4-L:uo޼INNӧ֭[[? _x1hРիW74:Q99XYY'$$p4yabK.5Lըo@x"w„C-݉ZRijj9s~?? ٙ$IGG&缎211dNJJ"I`4zQZZ*..o߾26]^^b$Ʉ11b$`RCi?rczUW3×;6SCCHOMM]hg۷oMLLw022j tkkk333gp6VTT0L]VV箫1cƼ{WwON̪i MM#Fʼn4:ׅ jkki4A G6(**:q۷oO:%pX={r[{]]]k &4s F9ua\omloMKK+<||ںo@۷_Nza_F-řN4dȎkמ{yMvmET"9|U8[444?^Cjjj-TUU9;;{zz&%%9r͛["I,!!ilŋKKKΝkkk[ZZ\,+((˫+WtqvhT taÆq ۷uSO޼y뒫geeq^?{lΝuNNAr%c_7M}h`G7tNpⴴG*> #J1b]צOi@l6{Μ9˖-;۷#""3ggxxxAA͛7׭[|#555 CBBj˖-A7EEĉׯ_dkkkoohVVV.] C\\\JJ⊊N*)Sddd4ymmۧOF8oA\\ݻw)))6mjؑ]ӧO߸qcJJJJJҥK߿_X|yffG6l0m4͟릾3~=dQظˊʝRPQ5 ( =,𡬍N|oѡC I/_VSS+--e0۷o֖2dȹsf$չs]9rUAAaܸqgߓd6LFFNϞ=[AAK.ϯdhuPPPϞ=%$$ Fs-Xʪ{d={\vm3/\PRRNFot]tQSS𨪪[իWVWWsuu-+ϯG9FMۭ[7EEe˖qąmoF rvvnM#ƍrrGdS?~ppPŒջ.T+stԩcp"9)ja?~f=(%߾}{)7774GPr 7[[  KW;;Kۜ@cYYӦ5=ϛ7Ϟg3gYdNYY p&b^uk@Kih(,ӫMm4UW3Cy.ǁ{P;Ci?D9r+AdeO䭮׏ƿDEZX9z4f7o䇪ƍ F-At$+~} #3}gKVYR xΤ:6i{wE??3֭0vݿ쒐%~~<&of="+= SS-ɻi>ի֬7opvv&{^fz peo//)(Hϙc΋Sڣ*ΝW'L8ܥtdEF*h?lmM|aܹ 3&Mjկ['Ҡݹs՚5tzMS'{|xm:vԑ/+FL4I?LBB111&+?>5a!uuyoʕnxqGm#tzՎ qRU:Pk>|_GէOwh}W/)9S凔3o2l}><O/4USS;a¡k<:uŖQA{fEd8~1qڗ7CBť:yR'4^Py׮7:ҥ˖82+I@m񙁿𳵵֩Ss_a!}K7npt4۾}ՉڑǏ&DD9ztOTEAllQvƍ2\d+_0$?[6o56:jWDUƾ9sm={$6tp7c/]yw:5ӧ/PR7'+%%[nggBuhw;w^ݾFY (@8?].DQQС%i F[)g񨋨ȔYN-k[>2pNGne|T^^YTVگܹ:F l5k/5uk"^{ΝWۺtiTPТKuUbwfgg:4̙ ITTjyy5AU;x{O)i޽TUE}}zxXq}Ss>ݖogfQQ)T.TX;))y?z@~^5k.Z4Gsڃ⊠3g:Tw޼ᖖ)\kVtl81k8#^fڴbbgpgP&ֲ""L&_w/cN:^ahAuawxlxSifڵkgCDWtl {{{2V`hѭ[ɚ5?òODwӯ0kПh=F xH_x yjՅϷ!B#**uL+Wwx`kV7W*⊴k??7TVt\n|xڴ!V啵I}EDh7o:p͘1ÆqGDʚի\yxV"I2&敏ϝ{1q2s/Vtlqde%CB. (f>`.:pӧ66A^g-ܸUQk0K[Z>ȅ ='OUAݮa[y;tYm|jhcvvqq%%T15;]X,vˏBa|Y:2razT`_0XXY oӫĻ[B__mݺx$mPLLiBfK  xaCNЁ߻4ViiqNݫ3V:ԏE̙;uƒ#ּy+*j.\XHu&OWols~cbov=:U)ݼO7gΰOT8+:nhCxF۷oreeo]*;;31&T<< /'pߩYl\\#>=*7Ŕ)$VU\[ɓsƎKm*F߾~ƌ_ܴlY`jj^tgK%66_ sGU}: ѽ^}FuŋG~]pnzKvFa|wD^]nlܕ8&rt<`̏Z=q7bwfgg2`,[sȦMT^5,,Lu&Cu}|bZ!td54#HmmNfBB],+:~l&_tsOm ))q:M6 ZƾNM(z$Is}ɒ ,N%))>m$ɨqppwYԠ[swHu>u.bPh9RW/'b' # nx!hl6jm5kI%N7n Zԯ_7sqU+:֭6]:ibۂ 6{yDDaTb0j-:g@6xfa{쓪r7o'|]de;+ϢR7jtk0Z*lMX,(CW^4nqɺxE߹o^߾Ti֬T& }~6\: pYbcFD06rrRc,:uv;c. pF2YUQA[+80AK55q[~Hx6r}jƮ۳I]]\(Meg8:zKH]DUU8|*.._sݽرv:኎뜚,e66IIsA4q۷_.(deY:,l,qQ\\ر^'ߺر=zҥnng9_኎իw_ŲFBB_NN+y SS-EEWR'#jjr.,:ya 5sQQ)ׯ'ܲqEZN$Nuo/ IDAT&qq_탕\/&&;eh >;; /+ۑ8ѣwG^HXoosyy5I,/|WEE…#:v_viidkkiv}& 7Zk\qqQ11 z}TIO/Xڐ%AALLv^wd0 վ$IahfdeKAң5ʀbg6]F[Gjk!!:Q_方7;$8xqx/P~] ..p .)Xر^uRlHoͿFaR^^zK`" Lw;z{M"""ȋM.#"B0lJf_XHOuCuei$| ~o0b̜雛[HK q(yaum_<شdh>7E_oшYhM ϝk~@w BLLdX#(|$EBadf27=00:*j1T_))l6)&&@,h4]w SEESL>Azh; #W-5YWP >>_ZuʪϽ{,-7U&UBD+o+L|,""ßRIYSǎ⹹e[ >OvO̓hz?BBEFn\+W6qcTDEnMMM//o}mĉg/[fٖGlmMN{*FSSk\Zz:uGII/`{{;$B\\BP(rq>>>= HPP0111==]JJjѢE,,,"!!A ?u ʽ>T ?WkDG6m `26V`,tuabLMJIMJLs&bΜ8k ŵk'K 4F`) 0(_T]w1$ߐ'>%o|g/&6iE񈵵NMߤ"F˚523ˑ2HFw駧}Bƶ}n=glRQccQsFɉ̟/FC^^DII tz{c ѣ7,}%K|\-_?z=xVxyy Pw Fcc<<5@Oѹ֓'!r[mmrZB‘EV@MgF˚5ː&S\\wl ("rBB2.\Znh[3p80ɉHNc `v1CHk{'NNϬϝ;iE@u -&&11y%1{leeӭ[ؘ򽑜\lܪݧNdCZ@!==OH 5kf57wDZj * sYYan[OW p#Bì̝\OKK={kjJHPEdeg̐c@_1Gg'f ,-2brs66odf6i9#%%uƍ7nts*7t)T`0هeҤߺK&HIIr##²QKLLfݿx;;+ZT)KܹȦvU<=֬-..x]AմkJ >~q@ڵ&g>JYY?궵4iՉ/{zF]GZ];ٳ V`rLL4B RSK߷gYrs1ڵk)lKjjg?}^QGQQl~ yi1֣GɒGdk6,YQyR8XYifdkiMCZ rԤr/VFZ #Fw<f,YHkW[[^:g>pEik ܹܰ缽S;'%ݳGF Ͳ_JϖU߽;b/GPQ1C44k~c^͐2\mm<q֛7NӧK a8=t߾꧎y>iO@ϯSUAAQ(hII ݸQsHOZKKFڵںSR`)m5"⋿=qwrzy?46f5jhH=v͚Y\'}?a98Ν[ׯ=*--DȲnsQ_,- YsG `ѸȑVVLnjOغҥ*B %~s朽};~|o_>hc3noWU5.E+f$$fee10C g2-qq069h\sh(77Sk24~ N}{͛9'յzz&\ذ~eeٗ/g-f̠IUDh_RR0b^99y4&F Z",ka1R g6=,8؁pr]AKkѣoQ9=YHYX7""g~(G\\@SS6**@i-Qf)mgDik!=='÷o]\52rpE v'7gfvu]3aԩikn>7,loEEʕ߿È4ej1Yv701xkw7i!Q8ĉ<<GDZ9JJ eݾm5a;Ҋ@l3眷wVf橐]l#""gǎt:k7N׬GAiǺu&oclىIJ*BZ`Tc4y &&݂q""rVlh8i9Fw-YrA}=ccF)ggCjmz4'(V-@`њ22B`҈;wjTT.B;ں 57ðMZq8•+==uCՁiaall,kڢ"(`xO:tղBanD TBqu]Mޘ01ps0[qȹsQ==ؓ'MBڿb\hh =>.;vlUNww tEzЀ޼y>Rt^sfd39?!-0*V%&"-@9/J/]Z/$Ĉ<>04hm팎>\Pʦӧ#O9\YY<:@rBF^ ;p&MΝUndf#bETU%j#"§5-:11#0ѣU5~=n)y㤤$"^jod_g}m+MMu M^^uNNB@BQQ̙jn~/* r(T3&&tdv5 :;1H P0Fwz+H mkΝK߾m5^X|ttMSӻ~xxlLK;{Ix6\]aa{45eC'3ZGF;w*ҢFL}}WyWn@Z@PNNܧOGֶ^l4?DE'jiM 62ec!!^mm\ `89sdkw PT %*ʏzP^!((|Ν%%E!֬almJJ ~ Aj?Fws;118ye[[7ؼaRp+W,oH`LغdVX؞1`NM-ٲ{K ǎ9{:uE .((}]NNF}eh834twVV#-g^X%w|rOHHiL 0FcF7jwϑֽucwK֏|,x0\@]2{;u2(gDFkn01U^ވaϥjӘIxtu@G& yyQ%H &[aa{llk~C::z>L־pٳe޿?sRƙ )bbBi&GG^NAA rźu?kEZ`Th_Fw#-0b1ㄅe} ]al|%:9̗nM;sfĉ*?}ݍϯca 6}׾}O.%$8aqj}fϭ&O0BF881 &4fh& z;B#l#9\KkڵGoohy?2IN.u+>=TSSvrձXM.̳gv-aZBVVW-&miXmzaggWgVϵhRt Hk`&%Կ{it( IDATw钒:kl11ddd|Prj\ff%aa{utVD'BB2;;1 k)B>9KؼA"vkhhCZ r5) =`1HM_7ːm\UnjzWT?2rXrEe,,CS`~$u9¼Hk=EHHZH2a;ibv g? ` ǏݫùtJttBCQQw1";wvbnNH(72ITveˮԴ<}#:z?%П/m[:>4P(W?IK+EZ?LL, -0*LL4>~O;Bb}ƍ[`vqy1s"vnKUHȮ /Z׷:9\k }`beE1AAqBh MK(z"-`pII5)l YhEVVVOvGz?{ GO=KIIE.Z3 -ӧ%`_^.DX߬*ic󰾞QvGZ`Tk|q<7 Ӄ;|؈֚≌ǤȧXqgpr20iQ/qKǏ'8E{'nG;8p@^F ` ƈ).xIt۷rr"}nn KIMJNvqw`nTPa.ϟ gml HK oOO/=vZ ԤbcAz sűlXMc1bn`>~[uJJcccwXt<r 7o-隢Τ 4F,,([ۅ{#% X>܊BMYT*YXի?_{q޼sHs|rD%r32ʶm{|72ER>oTZY=\@=&pE]]^^g˼}묤$"tt\][feVCrl6lڴOlc S"BBv)9355n˜xyd߿EZ];w`:kի3NLG]?=&&ܹ8'͛#L E!!h=nmp$^;FT%͛oVVڧO ҥKq8P2,,+Bo6nLݻ:;xKܽP^ވ- u5UU8?iF`)Ӏ.\62I~Rduo'deŋ/<b8p@<%ۄzcnnOEFFTz#s pNL =k?K  `҆'i: ߾ݷٳ""|4b[n}k GtuVGhhH>^_O@YYY.TJH(j!''ru`)sFw{x.:Opp˫ r@Ӵ /5DFsw=e ӑZ__%-C5C`)sQK8xp9MG9w.*1ߞ1DӾuc66kj"0Nps3'o.U?*rɜ92ll5@ƈFw=zsi7JPPwΝJQ(&)jAw8ar1ҥ*&&Μد OiFL ˃['N@L6E `{޳l۶vC$%9bdjIQ({dy;! ϟPUUekk ð5//;QQ {!A>pqq撉w=R_wK@':tw `%;3#*kOD`ƈ㓺gR^ޡ(nNU[F!(˗eˮf޽kΙGk<})Sh@|ӧ| 6f&ɔ)<<Ӎe˦-*;:̙3%3T@"g''-4fePUUm+#n|{vbX^6 aa˗/o߆ iii9[ >ix0IVֹy;|sDB3 )MuDF~G=WcUT\ۻiEE4O** ^*(Mۼy-[DEE? DDD^|YSS+)))Fspp+00}||-񱑑kkkI^A% F?x?0|33ٳg;wnժU0 GFFϞ=ᬬ &ttt0lee_ZZ?cƌ3gUB"QQUnnn[[[[[߿wML"2PR߻&sQ@{{_ѣG555]zUUU5??ׯZZZ΃A3?m^8?`pvc#9::zTU_G$$FG(>twcOx).~1'"%%vUUU__BTSrrr̊q.j1's!A9990 c0~'(++n544xyy1̡C\]][ZZ^rJ⵬߾}#^KyyJ9APqqq< ́N yqľKiI^Ns%$VQp-e7HO/ۈ4#@/`@iZWv-ggW:~Њիi~lعӯ=kg#%C@@`ǎgϞ')++=AMM|۷Ϛ5x DYYy A1 qL8q֬Y<<<)))w}]JJJbbU rr"/x񢯯/[ㇼ<ANKKKLR[^ !!+++UTTTTT)Z){bLH.ڍYYaiiJgD`,QI---,,,+W,))={ҥKSRRHTTxyiid_%D={HnwgJRs?o \77a "(ѕ%饴 (m8`cbGb>||wX1Bc={ Ջ'++`ggݻh>YWWB>HOO:}4Ammmk֬655=vXeee~~'A+Ww;; A6lطo_yyoN8aee50,Ν;??[[[{{;ICj Dlll?۷o߾ݻrDS ]]y7t)~RFNLhzfܾ-~9Pdν $x=hz `hx}.ZD>u*\^hII-E.Ϙq")AC^߹sG]]X...܌`Ν;7uT^^^ h4I&M2޽{"sz߅"""_$h[[[AAA!!;vӫv;::8889;Pss{RTTtuu{ 4<_^^N߁)'nggg 'ZZZVd连MMXXܣ!YStv(zDhժUa9%47F`)I1Cꛤղ\F)8-f6YQQL*:dHL#==f%))APppbGG@{ Nbb"qbSLL̬Y{{󇇇k&L0mڴ!"68$ݺusww7;}ɓ7o A zʤI*xB{!o߾tRH%%%}<8XӗC}=ZZ)$ʓ:==+/]5t;w7FFyh*w4iP !q>юa>t1FvNNN//Ǐka$[p020^_5~'aAիhtXXA!FX|yIIIzz|ok~|)="RpZn,u;R^Hݰ#%!`K\ODP3ӨGF9,,cєa>t1Ffvvk׮6<LkFI$ɘ0^_c `}#6! 2##XO6mfد~~]ۈ` Þ 7?ZD9&怜XA4..MMF1]EY1CCCMMMbw.]$OLLLLOOZhQjjj仔Atׂkݺu ~L~B2aF<ގrU$281ף7mҦb̺Vg++m{9l{cVݽḱfӦMs GD\_;j2$;c-X\L:#yBWW@ mnn޶mqsss߰仔At#قkt#WB2aB28EAPII 9 vw71AA麺 T!}NuMthGYY7?. ޵g>R2&beHHHFFƍ---߼y3eeeH'kj޽@.Tk--mXBc$O@P˗/ C x>q_u} 9d .2zf72XXooV߿ϟd28 66s%@buxx6c޺/#/*o~SRrY_t~$3ٳgÆ }8;;/[lG6N|BŢׯ%$|{f,ZDSӧBBB888###ab , H8W?`Rk5P@Xe`LxVg$>>"x{{ ;::Fwp7?0ƈu+^Eŕi׹UN^^ 8"ݻ$%> ۀ31S#mmmZZZl"$$$))D1#AʂW\aXHH QQQ  YDDd ù+((Ο?XOArrr/^4""BQQqɎ$9T4FaKS%yl{LhyP1$y^:JvHL,{l"(0g39Jnoٵ_WWaǎET 8"Z[; Ǖ+VV:Nv߻wo]]]FFFGGǦM̟GDDxb 8nV IDAT uuuqFyyyVVmɩSDDD]奭˗۷ ˗x33;v޻w/&&ZHHAxB98,>v셳MՕy3a v98Ki KFFS+! 8|~u5tvvG'3FĤI~%3cD(aeez544?ѲRYqܹHj*qEE4_`ƈ٩wpp!tUU/_$_3 aaYbӧS'i?9K֋Q%^&77GĹٳe<:#(((**ZPP`ffܹs;;;o _[QQ!..BP(Ayyyuupv.`۾}a@'4JO[mFΈxyy A܆1X,>&&|U]=[ngS4+GE X}?X,777JZA߿"_+,,ܛAҒ.++;1VK;ll泰}(,?t`LB7A`–NYTvH(_`Jh: ߷0ab򸹹%''|)??ٳo&8!YI+ A?}{~MMM;VYYohhsξϧN"9V+ui %wwci:1(8cX.UB m47ݕ?OqG 9FD***֯_/!!7o޼"YI{99HOQھE0 h[[[AAA!!;vtttpW褧CM17'7Ívvuvuvñ@Fnc.c^Y9QEeƍ74 _f ]\V2Ng'5lݺ˗Ϡ00CZ:ˍgRn/ܲŻVEEFChiMqm}}D A;9Fǭu%%u%%uEEmM-##($((&##ѳb'beO AUUb!LJJI{{hŋ1mmgϮ*`0_ʻuki1a-.//Z%͙32j҇~6ϟv&N&z U%%1ii!A9z4 \PYde~5KZ\|T-rr*>zxl楖hi鰵). 9<(v..+i1c$~6 RTn{Ƽt]1xbNNtt0ySQ!Gڧ J1ƍZW9:.rIIE4 Ni0$Ntݻ"?** ƈ(}hwj~d}ʷn},++ɶɓ@]8,-||>ܹu F4/DCڠšh RVo==;|D1BZ k'L`2eR!IllJKyJVVS}wXqqqt,T8 C I2e =zUڵi_Kk efӡcHdl$"A}_߾u!PLaa/`QI NN!۶-x{>agwZ&nqƍ7;,s 7LZZ^whr A5#-ѡ]p))ACÙ$Mȭ$sՍQ?TPPlаx*ӽ{6kSXXBbG`#?ȈuO99^dcUwvy2S[4nTWWs҆ϡMMzz:VSy{gqµkdgWjj"66M+*ڠ% "GMÇ̧eHd}c_fΔKbv\Bq!im[crOOoi>巰gmÀ8v@y͘!Fhܩi]]wA߿@oԦUT>]nc8aNQQ3g @v !FBB ]Μ4СUKuu}ӧl $?:44+,,gbe/FFj k>xHz7 \\^:eBdMMY,y W) f䱳X15#}TQl;;=KĔ99 rt|/55*\)~Mڀ~ם=lB HN."hII):uH7r5++ˁTsW w9~k HjRSr:f, P6(AٺUVNN`T(CVVXH7'#:Ӄ۽;@YYvHKKLJ?_'L#zC(, HHML{|6-:_Hx֦MTc xJ&mϟ<)+KSSVUU200B͞-]};Hsx-^:Necc%};0Ft GVu\s!3|foUU mϟ !!Ϟ}niUwo,SKi$`pHڠS'+)+*)*ˋ9ܴI3gsQK?AfI?}NŀDG3Ūc,#1+99UX,X\*M,Zt$=/^dHHlܨeԸn6%BO43nn1/_lݪKŰsȺյ)aPYtp֭CEş!=W##Q&.. !!0 ҥCÙ=>FFjo[r$b}xx_bFH.&ΌpqXW]^?n6h 5>QihȰT\FŰ^X޽'O 0\²x,ƈdfkk`󌢢ڻwG?td}n0euH,Caa؁ړ& 3FhtwE?6g֯CODk7++˩( |UaaMl!$cj90F@sr*\\Fw7ڵ8kkEEQE֡C66.ۓ%\\&&.]2Pid6HAAq~hj̘!EdT %1+c(Z%;=!ƈ~֠M'vDavMjk|YMm&W 3qp 3 "Qgά8M6<o!v` ŇӴ#Q7AIiX?{y%ݫ?> /:qx׮}{ۋY _?J[VVi]LsuM:uSؠqs~2VZ1Ԥ?@ {rss^i-O{DDpNƈ~dfϙ#;׮rss@7ޞ;v۶Øԅfv͟/? )Ú4@@tbAPWbAe]Qٵ* "]"VDiҤHzB2ǸY!?|d7ɘ|95?RO*OϠ5k&Θa*Xkkk?}cab>.23cWGϞ?D$lhh]JQQup, rHȇwUff{̞?<Xb k, U #)) 6T@$<Νw5 :+o'߿oQ%Sϯ X^^?~ ,8DWi*# 26&)*6 Ka4u1(sL#qq/ϝ[ ?x`6o]q]ZZ 56rح[o**ݧqx@2e" rDpfokk9^EEn޼K3^4(=M4]\FJ?T  Lܾ}zC߿ A؍..#^ ϟozsA#*:Tj~rk䖅 }*+BB6 aVZ6yx5{mQQ5O Y%^ZZ]ѣ/J?/,sR˗ٽ_T8 'X nȾ}!#Guq>ee Hk^~2'iZ2IKK>SnzVGܴiʂaO^εKJjUكrr*ZZXA&&22AWLR7G;w.=Z'<| .-mm1ctM}b4l ddĨ[g>y[t6l@Wii%Oz~&F|U>w.igTeƩ 8uu \nhh ,$jHRҷЏښ<8V4(; MFt^Aٙ%'R(Opngf]6rdii --ŌY*6_G8t29HHpԣM-LZTTmhȺ(00uw IDATǏ F&.^|),L($j33#Go,8OLM58Yfk~Ι+W.ݿb^T=='Q͛hժ arr6oĈi4:˦4*vRܢEUU.B綮 yཌk+CT*9 y$?|zZZ 0o0&)YÃ?>126&ݽ'Q$Am ӑs ~ѣ/QQ)n\eeKHY PVVmuQK eٲ+:/ݻkjƏ׿xq̙ qUc T'N4Xf uzz)I,X0JP!AltuS˦2ENnb%/ccӃ6zOϠŋO}ZyXF8oi,_~5'"$D0ux`e U9 *P7 lG;IIOq?gߛ,=ZWǣ= ff]%Ct:MNpn Ç'N4S DWi# TmmM6mbhjh&b%uhMSU4jPAuiPekk{2126&%%((>490Bmm6ݶdp7D_iNG:LC#UUM8Ec6oU۲?!!70p,/ M};Lߝx8w043IT==NGܒ%c0!:С^v61QOhoÙQUvסC%%unmA8F#zzYjc1 (W^Nh,cb_6bSS3r1ƊӠ 4 :TPUKK]gHMBB ||Bk1_ާ, vVKG:/^<냤L~ŋ=¼tPbQQ[~*0Ν^]igi[XZJJ';1PRRA#%'XXp\zB=ss{7ixK{ ۷*6iv#@ۛ=zffZ0+~rrRӧܻ7 C0~ȑ߾U=y?\rr޽[<+01kk파 /t@  47S3~jjΛu9{6',^<(ƶGRCB^&.bxaDGZ},,iPohh(}т∫%K%rw .1=ѲEӧ~~/\XS k1LJi0DaX 8"q`y9m`F_b7p2q7<<Ax#Yt}xx2J14(h?3jm4 b,]^\\ED@c,+~.*/A"D\\\\\\ 66jjaa==gq}ccRFL++ۺ…εt,7TM))•++&Fgf!`\cUTf4u-UR{;۷֭a+}?~,DOJIܻwvK %*33Ki-3x0uj* 8PjPeKji)4zecQ^^,--]&Quuƍg0N>mpk;v53h")ssa%¶<|ZRRcXeݧ)+9̙1}xLP{@?9]>Џ Lqr:_YUW54T7NHM__Dm<$V|0ՕU\Xׯ<L!c]sAqjŊ81N#@_cM4 DHft᳋0"fqDb)=gR ۶MU}LIIٳ1x<9+BKo2 ]^]F ^5 ~]b02R'WC¦`eM//y>8ȓ8))Inn1F0pBʴO q8UU9Z++[=l[[ii?#X̿c:A F)/ꋱqo'Ph~`0P]&d‚d ZYYS(%%E>|e˖EDD466 :"rssY%ܸqegg3O1k֬ǏqcF<\Zaa!\70P}+ϣf?{{?5r$\ihh]{Zi'$F}sb7f i0łf!V֦~h5Kw "Q\ӆ S!8II0b p))<0%h^^Hq1޽d<KѻII9MF$yx"""ɩ4 PpqAAϟ-,,?kkk_|)_~,q\74T-/kMn9B}jյƨ}v$FϾɓ'EhggܶtϞͧa/-YPTTQUUkh4HH)vA@h4PSC.k0?>6mZpp0#1ͣG]cof4 眜 1>ٽ;Ln wZ[+W^* Nj4{V3۱c?LH8gLsY3q$e`)굵@&JTQQ!T*577<{LKK+>>ZZZ˗/١s)@TT۷,WUU 0`̘1UUUy_~mii)--`0ׯ_6l۷:hРvرcϞ= b;wh4V\sGFdΝUUU̗>r=F2;Q|YYYYݳQZZӧOcgEE>|,$/''%&݌y|B9A J[;w9¤\}}sbb^bb}BNZZ͟rrrXFɵÇT*A:ΓDLv.we8xP^=^^Q1 }򫆆{SRL ljQmmohddTVV>@}SSS144 xܹTMM @8uTmm-Nohhh]7o^MM *1B֖H^x0P(:$++KPvرo>P[[{I;;;,c aaazzz̑w+uc\UNNΦM݋ -c;˨nkooWUU} vvv(1xC=T.qC*ԩS5 #fE{>}*T ) ~_n]zz  0 gP__2l0ggJ)((<ݻw666^b,766RTmy%$$gΜimmǼ˗/̙ciiϟϞ=PQQAtuuzzz߿gÇɓ'?~%#ҡ͋Z ͝;7,,ӧK,azS͔4.~Z߿,'p*v_bb^` cb|FQQѪUYtlB)6ׂ^§Ox<_|AljjڵkQN8z0J`rsstS\\O6ÃQII @ݻwvD"[RRR;U:\SSf?~}4** >wܽ{Μ9ŋ̥-[~o͌qKa0ӧd B Ytttdm[[Bhii9|0dy9vvv.]=z4@:uߐ!C   ,pww[ZZځXVٳg,/͛7mԨQD"ۨ$'˖-_εˬq~Lץu-d%Xo^ ͊׌~&2{fN,6 H[[uY~5BAٹs'(بݾ߾&/]p}.2d2yժU ֭kjjb~)Z[[wI" hѢZt{RJHHEFF,NP=}O9sf.]ZhHD^|2:< HSSĮ]'Yl[ZZ`߾}̗|xŋ9kaj }T?c HSS[pQp/wJsp87ywsscz~ʔ?F}+׮]322RRR:qĭ[8@PvI$wIPƌsA1 ֮XBQQQ]]ÃFr Ztyee%%x%%%|خᵽtĉxݺJMXY""" li4t~?~pStu^65$z۷xbwwɆ sQ=;;ݻwzzz ,N==L E_plZKKK^^*>M'V{%W~z %ݙFA$FG51vy&Ĩ"6JA:.]226fo߾E{ucHb A8^ >>A,7< L +((۷">RiffϝXܭsbnj9ʏڵ7Ϟe^5}r|d333G`9X$G)ŅDFF2^@UUUYJJ 9|P<%nddw+$ vp 6!llljjjE7 MiA]]V*?{t:eԩԵk/W7~}̀}:,I:jVWW3cnWe9XF)Gi=*5vי3ORo=E>4Z7 A۷INXX"h L_?~ȘvXV,::RZZZMM݈` 6x?=1662eJtt43QL IDATJzzzDOOO*.A3--ׯ_w0&&FOOOAAĉj"## D{[[ˍ|~ėVOUMinӅ K`V$x٢E>&m|-V 77?æ,UUU5NZZ f^zP]]rϫW?~266AXM<Uccc4g0/IgW00ӣ1ouuw*+LGgAuLnY掿~_X#QNNΦM݋ -c;YXijj8a5W:Dȧ9AO:l]]6kGZ[SigwBi~oHp'M:1|WK4....thGc3:cb{噚2:Onj*8gRR0GizzD@?mMۿ?gBCf<(9aAp0aBCCׯcccb!Ma!C'Dt Up*4w55M( [ר!**%00E Zk+u׮{wVpF9AG301 ͛6j("$^,ܴiӮ]bbb~74a938gU`gg&!8>::yyljOϠ+Ϛ5\б@ef͚u_U8/CsuudnG˟>}zɒ%FFFڋ-jx{nܸcƍ'O?^^^2ehk׮sɒ%ӦM9s޽{lDZZbt TXXſxJmO")<8Gб@, `o;oʗy 'm#477G S/˫9AO=XC(r3OBC?y߁ѣo|}}AuT]ݸcݸٵkVgZL, s[{y󦑑Qjj7m$ ^1RRH޺ՖU..Ri;,3g¬Hz~džl=ZG#EE: 8NvjnnvrrYz[+''8,7Bc-BC8L%%J*+o``(AGK ĉ׮rtvu|1z7@}C zcpnwo6l;n'AHȢE>5Ox ( ߻"#11ǎՍ^^s!pxv VVZJIackt:`c㝖= "8\ēM++YYe#GݼyiưńW!;nM&&]?iaƉfʬYg $UY#=d׮{ii%˗߻w## H$$..#vEDl^ڄ '|}_P(ptz(~7An?~4\fER_߼̙gOz=,>YA5j͛zwʔaǏGuرzAտ͙cB},=AH?޽HCCAб#~GE}:}zaH&1\&F ѣZ~rHHG23WE$;ViZZEE}' <=֬8ccGoΘqСpggׯmA$,d7mxԩii%Sx>66v䂣ellzCC+݆ Q,*#*yE씕չ̟QQQ6&fѣ΢w`bApݏxޜNGbb囹9XHjʮ\Y)) ;MMmpܸc> `h*  QtFϯq.\8z͚Z?0hadyحcXWL& :}yb==+T*- ٳOڨ{^zb_ XcAPݏh&6hi uyy{[Tz=cÇg0}zd1~v?Œx܃lb ֚F#rr *c }U^矮JJJ~v?YYiӌ###!''矕ALdgZu/+WVhk+ :(aAGrt\ί+3dbq`j+'SSu &+Ϝyld/FH#+[SJFEGPS7o/FVMkw7ywjjٳ` AݏxYDDi$<oijj[ww։ą2wINysׯ-[6fE܁A" v?B9:Zeffg|Db1%%}޽!uu͗.-]x"==`ڴii%O/|z߯N˪/!qpѣuTUݿzlSRO^"-<ׅ }lmO]왧 N H\s毯^2eѣF=v,^q7g36DR(-{QAAann6ӧ\"J$MvrB:3gx&F~`#3$rĉGU?~4ܾ 2sCG* L CTa0?cB%%.~9 BՅ}umqqc󜝭dd`ot!# .G!!IaRWͪ MMm69rƍSz~Ln}shh۷yDG.Z4Nq)`bA+ќ9?MN.flTWWijik`2%4t3'kqRФti&~~k~e\AG$}}S#IPVVߛ*;wޅ' xRS""kkw;z`A L xt?7sÎXϤDrW>q[[Tܿ)4cAAʕ9dジAD1@wh>Ҏ?/٠JHL=9Q@@Pu?*2ψ-#G}[dļiӌ $^ ]{nkk=>2]LnQQ)>|SU4{8L«W \fCPІ ,RUՈv?iGc)*f| `< Aׯ'XvJN.u x H٩%5%͏}|6WFFrlynjeԽAL H,on|VZZ"-KJQ ~U&G_GG%Vai4:ݰX̤IwgW?#|ڪʵk.]Zd/y`L6oi&p{#۶Ri8ggZ,ӌ~t|6@mՐ1c8rrNr]]9>> Ldhoo>cp99)A Lu!H\8;[ݻv*>wu#͛\/ej÷n"J3FSUhV@+jkuu"3uIIG_R>~,$LԂYdeᬌAÇk]^~@jdE 8~J8Lߺ FҜ.|򽽽HJ ݨ/]~xn : uz@:HJ0~jA0 à }.? Lwii23;Ȳ,ZxvNK+ٸvnn_Uƶ/>}YFee$CF 9!cAbZ[]]yuIJM/ݏ23ˮ^}u\IAA, v믓>˄ ۷8{IWJ3uEg8vP˗#W<~PSӘSa`ʼOQQ˗ٱ/^|moj,_>dp aAx7hksq Ͱajg,ܻw͛oBBxl{#rPx}} O}߾cHBga:]~ aΨx, k,=Vot;%}⫁*FOO/MHM-?^kx.] HTx3ed$!23˦M;S7Nݿߞ5O ޹>lؾ*c |Ҳ> H@h49b1$b||ܢG52xh8bAxW#UHX\W_ݜҾw؎c'L0dY얖` >rIJJj$&unӑ2;gNf$~f$v\\FpX<2Bб@]jHf3ܹnӦۜKĒ֑#Tggk4j4B āmOIJE[[Z[ZUUNº߿Z5JX.VUj6h kjܹRWRWoLe1ct@Wv䶶62Q^|%%&߽{7x(""ɉS{W,Zr߾}uuu7>|x۷oʾ~ 2leeFRiii@@%AH՜쩤~Ј>}:˧YF())Ӟ={vŷ;RVVVUUUWW_uttΞ=-----P !AP?eff&%%sm1cvI?>11lv]]]ee 6477w>WLL‰'{UB굵@&JTQQ!T*}1={a---ee˗3C:vūddd 13,F~~~ׯ_?qč7BWA:`0ׯAWa.FE㏌444$mmm,7rz[@" HߧQRRǧڵkx<1''̙3D"1,,$ ءÃ)Sdgg{NOOoϞ='ɡ/pϟ?`WXQ^^n?͛WTTjeeg55kV\\ofbb˗ѣGܹR,'O,~۷o#LoMdQaϞ=///|4A;>|gvٮɬa~cPQQs@&F$8I,jjj©SjkktzCCFc"100cM6Qjj*[PPСC;  F]IbT[[affiddTVV>`~ g322;bvU|޼y5558N;::pK2_/_/ .1薮ɬca &F6APwihhؼz b Ɵfffl>@:V8u8ȓ_n]zz  СU߾}C /aÜ*dYJ*((tlBBB"##XƖIDAT(Fef#g:\SSf?eoh@vv!,V#vHH*..￧MبĨ}C" -)))ǎweǏϜ99v@II 'Wѡxiiɓ''Mta777΁!rٳg?;cQoo4sj#+ 3}P2LP4Tcc#`?>tyxx~a߾}+W:N_z-[>}n;w޽{ SSSgΜyER˖-ۿ?ژy®J|YtttD#//uL><3Yᡢe˖>4t򒒒/^8;;mǎcrrnݺq{/]F} HqG'((HWWWBB(22A*:aYYYAO<'##3vXwW}޽M$=<<ڐvq/n]pܜB v!ɫVRPPPTT\n]SSsW֝;wHA-Z޹\B1%//!};IJJ~X,6$$ߗOSSsɒ%o9&=!Clr#;} ᬉ6{:.㍍D(77W__7ˍ###c<>)  'AA"KNN͍A$D'!# `bAAL  ~AAOxAAkmmmKmmm{d2Y<:zL& :dee%̈́C膤E  '  'AA# `bAAHLS#IENDB`XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp.html0000644001725400016040000001250713273140077017011 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLFormatter.hpp File Reference
    Include dependency graph for XMLFormatter.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::XMLFormatter
     This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...
     
    class  xercesc::XMLFormatTarget
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/inherit_graph_34.png0000644001725400016040000000151413273140077016473 00000000000000PNG  IHDRH%n8bKGDIDATXOH`ǟIELt^St4 :]CTC' E/YSҹ<9CfH)D kA=a w-69y{=0"Ѝ )(WAA H3FQTRAI PT>'C1ɏHRh4ScL76tc`XH$r}}[ Ə#?cWWWvnP(zȾ}tMp8|>ӓP ϲoWfF499)6y'Iy^$yY,#0\u+0w' qN777fxaZv~~~qq!$bwwlx<!{|NG<8???j,r@ fI8ŢѨj ?cF!f9==-Ι ø\rLӴ_ZZ4F^1fٶnnn<OvףiUn"X[[v p8^^^8T^  VVVNOOY}{{36tY##c3hqc "Bp0 #6Yb.voooCB`d2ΖJ%L&t:`T4 E1Iq[5n[$Ѝ ݘЬVV+H{%d2%L~ c1YcφV|fIENDB`XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp.html0000644001725400016040000001211213273140077020523 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearMonthOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/DateOrTimeType.hpp>
    #include <xqilla/items/Timezone.hpp>
    Include dependency graph for ATGYearMonthOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATGYearMonthOrDerived
     
    XQilla-2.3.4/docs/simple-api/functions_0x68.html0000644001725400016040000001430313273140074016314 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - h -

    XQilla-2.3.4/docs/simple-api/classXQException-members.html0000644001725400016040000001436113273140074020410 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQException Member List

    This is the complete list of members for XQException, including all inherited members.

    getCppFile() const XQExceptioninline
    getCppFunction() const XQExceptioninline
    getCppLine() const XQExceptioninline
    getError() const XQExceptioninline
    getType() const XQExceptioninline
    getXQueryColumn() const XQExceptioninline
    getXQueryFile() const XQExceptioninline
    getXQueryLine() const XQExceptioninline
    printDebug(const XMLCh *const context) const XQException
    setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column)XQException
    setXQueryPosition(const LocationInfo *info)XQException
    XQException(const XMLCh *reason, const XMLCh *file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine)XQException
    XQException(const XQException &)XQException
    XQException(const XMLCh *const type, const XMLCh *const functionName, const XMLCh *const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine)XQExceptionprotected
    ~XQException()XQExceptionvirtual
    XQilla-2.3.4/docs/simple-api/xqilla-simple_8hpp__incl.map0000644001725400016040000001027013273140076020215 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000014_000013.html0000644001725400016040000000533513273140074015711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    framework → sax Relation

    File in xerces-c-src/src/xercesc/frameworkIncludes file in xerces-c-src/src/xercesc/sax
    LocalFileInputSource.hppInputSource.hpp
    MemBufInputSource.hppInputSource.hpp
    StdInInputSource.hppInputSource.hpp
    URLInputSource.hppInputSource.hpp
    XQilla-2.3.4/docs/simple-api/classSequenceBuilder.html0000644001725400016040000005457513273140077017646 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    SequenceBuilder Class Referenceabstract

    #include <SequenceBuilder.hpp>

    Inheritance diagram for SequenceBuilder:

    Public Member Functions

    virtual ~SequenceBuilder ()
     
    virtual Sequence getSequence () const =0
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)=0
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()=0
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)=0
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)=0
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)=0
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)=0
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)=0
     Handles a namespace binding as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()=0
     Called when all events have been reported. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual SequenceBuilder::~SequenceBuilder ( )
    inlinevirtual

    Member Function Documentation

    virtual Sequence SequenceBuilder::getSequence ( ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_8.map0000644001725400016040000000030413273140077016401 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_48.md50000644001725400016040000000004013273140074016367 00000000000000d7539ea8ef88d415f6f811e183887165XQilla-2.3.4/docs/simple-api/functions_0x65.html0000644001725400016040000003035213273140074016313 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - e -

    XQilla-2.3.4/docs/simple-api/tab_s.png0000644001725400016040000000027013273140073014424 00000000000000PNG  IHDR$[IDATx݁ @@ѣ?Q"%If6[HQ<]dr s?O=w'F -~rÍ[芭m֬ݯнF)Y% `n,9B!ь\<#IENDB`XQilla-2.3.4/docs/simple-api/classATStringOrDerived.html0000644001725400016040000013176213273140077020060 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATStringOrDerived Class Referenceabstract

    #include <ATStringOrDerived.hpp>

    Inheritance diagram for ATStringOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATStringOrDerived
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual Result asCodepoints (const DynamicContext *context) const =0
     
    virtual unsigned int getLength () const =0
     
    virtual ATStringOrDerived::Ptr substring (const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext *context) const =0
     
    virtual ATStringOrDerived::Ptr substringAfter (const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0
     
    virtual ATStringOrDerived::Ptr substringBefore (const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual Result ATStringOrDerived::asCodepoints ( const DynamicContext context) const
    pure virtual
    virtual const XMLCh* ATStringOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATStringOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual unsigned int ATStringOrDerived::getLength ( ) const
    pure virtual
    virtual AnyAtomicType::AtomicObjectType ATStringOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATStringOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATStringOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATStringOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATStringOrDerived::Ptr ATStringOrDerived::substring ( const Numeric::Ptr startingLoc,
    const Numeric::Ptr length,
    const DynamicContext context 
    ) const
    pure virtual
    virtual ATStringOrDerived::Ptr ATStringOrDerived::substringAfter ( const ATStringOrDerived::Ptr pattern,
    Collation collation,
    const DynamicContext context 
    ) const
    pure virtual
    virtual ATStringOrDerived::Ptr ATStringOrDerived::substringBefore ( const ATStringOrDerived::Ptr pattern,
    Collation collation,
    const DynamicContext context 
    ) const
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_0x73.html0000644001725400016040000006324213273140074016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - s -

    XQilla-2.3.4/docs/simple-api/dir_000021_000007.html0000644001725400016040000001155113273140074015707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    simple-api → xerces-c-src Relation

    File in include/xqilla/simple-apiIncludes file in xerces-c-src
    XQilla.hppsrc / xercesc / framework / MemoryManager.hpp
    XQilla.hppsrc / xercesc / util / PlatformUtils.hpp
    XQilla.hppsrc / xercesc / util / XMemory.hpp
    XQillaConfiguration.hppsrc / xercesc / framework / MemoryManager.hpp
    XQillaConfiguration.hppsrc / xercesc / util / XMemory.hpp
    XQQuery.hppsrc / xercesc / sax / InputSource.hpp
    XQQuery.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp.html0000644001725400016040000002447713273140077020270 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XPath2MemoryManager.hpp File Reference
    #include <algorithm>
    #include <assert.h>
    #include <cstddef>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/framework/MemoryManager.hpp>
    Include dependency graph for XPath2MemoryManager.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XPath2MemoryManager
     
    class  XQillaAllocator< _Tp >
     
    struct  XQillaAllocator< _Tp >::rebind< _Tp1 >
     
    class  AutoRelease< TYPE >
     
    class  AutoDelete< TYPE >
     
    class  AutoDeleteArray< TYPE >
     
    class  AutoDeallocate< TYPE >
     

    Namespaces

     xercesc
     

    Functions

    void * operator new (size_t amt, xercesc::MemoryManager *memMgr)
     
    void operator delete (void *ptr, xercesc::MemoryManager *memMgr)
     

    Function Documentation

    void operator delete ( void *  ptr,
    xercesc::MemoryManager memMgr 
    )
    inline
    void* operator new ( size_t  amt,
    xercesc::MemoryManager memMgr 
    )
    inline
    XQilla-2.3.4/docs/simple-api/InputSource_8hpp__incl.md50000644001725400016040000000004013273140074017614 00000000000000b3fb2a846ec41b4c4307fc2148172fc1XQilla-2.3.4/docs/simple-api/classDateOrTimeType__inherit__graph.md50000644001725400016040000000004013273140074022317 00000000000000899d5de0e700b1d153037d41500db48eXQilla-2.3.4/docs/simple-api/StdOutFormatTarget_8hpp_source.html0000644001725400016040000003062413273140073021603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StdOutFormatTarget.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: StdOutFormatTarget.hpp 553937 2007-07-06 16:02:19Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_STDOUTFORMATTARGET_HPP)
    23 #define XERCESC_INCLUDE_GUARD_STDOUTFORMATTARGET_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class XMLPARSER_EXPORT StdOutFormatTarget : public XMLFormatTarget {
    30 public:
    31 
    37 
    38  // -----------------------------------------------------------------------
    39  // Implementations of the format target interface
    40  // -----------------------------------------------------------------------
    41  virtual void writeChars(const XMLByte* const toWrite
    42  , const XMLSize_t count
    43  , XMLFormatter* const formatter);
    44 
    45  virtual void flush();
    46 
    47 private:
    48  // -----------------------------------------------------------------------
    49  // Unimplemented methods.
    50  // -----------------------------------------------------------------------
    52  StdOutFormatTarget& operator=(const StdOutFormatTarget&);
    53 };
    54 
    55 XERCES_CPP_NAMESPACE_END
    56 
    57 #endif
    virtual void writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0
    Definition: StdOutFormatTarget.hpp:29
    virtual void flush()
    Definition: XMLFormatter.hpp:461
    This class provides the basic formatting capabilities that are required to turn the Unicode based XML...
    Definition: XMLFormatter.hpp:41
    Definition: XMLFormatter.hpp:442
    XQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__dep__incl.png0000644001725400016040000112556413273140075021667 00000000000000PNG  IHDRbKGD IDATxyաSU]k Dp%.(A F$B@UD⒈1g}͍Ѩ$޸$ kuWwjzz6D~yxN>u$P(\a_`" R}AJ,/^aÆJ,]tȑ>0HBgS$iܸq>?z9sT B/`W5{I&U7?| :rw}A/0H)`g E/`yw/gޱ|oxE e.[b̙3gΜbŊ\.wYg !o?S?|wH$~{챳gϾ[٬{$qc|9s=|Gy~e޼yso~C?|3gμmu'?ի|+Ǎx{^z|<ZNt{{w1m4UUݏM6z^{oqw|Bx5k.ѣG_馛,Xp뭷_\t_~ᄏDGG_ʆo޼yŊW]ukjժ{c|W>'|+z~\T.]+v;>¾AD%UU($ܹ+Ǝs~S>KwGyGy?s-}c-\~^`޾~&Luw\0<#XG{^?/PBHrg}?aSS{~λw;'38cĉ555_N?^;w?xܝ<3:vN$OE$˝-B$Kuu`̯sW_q؞!C!2/˫nr?jii5kVie vo_ Jͻ}-B(J1:tPw|xTNTX,89l6'Huwb}}㿪ujsMӦO 7j_FDGGG[ZP[eB|I'7V^}嗗6yꩧriUUU,oڴɍ oܸэ !ٲeKsK/_>.Xvm7 p4p_>¾?RmgL.v>4='Ɍ[mclo;z=R6s\;rT*s\.L~3rd{ov#hk|󳵵'Ӆ,)Rt:'N_recc?ȑ#sSN9+<|>K/,]T(ɓ_{eqSN B'|C}>N}>_O1c-ƎtoyG&MԳ˗,YW\9mڴLT,dd2u҅fP6DKgJղl꒯5qwIܚfPBAb]3vZV6!IR89xUmRU=~cZ {{.6 Ac^{_|u]Ϗ\"rPH;^s|}U]]bnO;4I9 tk z}y,:,:蠃Jz=vmre]NӟroYp8 UUL2o<o>^zoll?~Y}^m۷rK{{>s%uYBe˖}_~wԩK,,7o͛{N~<z#,q xgԶhl@jyq UOk:mGN >GJ$nE==bya$IKYa|#]f^Sgt].3~Lj(˲\>t*tjuI꺪i]:j*w+&{'olKZ%!#z辳g0}xUHteM426I's}'B! u˞tzt>PU߹9<)+9F՟pA3gNhh0*}.)s1;2 3 Нbb5t-v>*_3,lylyqlyky5ȔXg#ly=iA Ju㝝Yy)+jy #UM#[_#[j$aY5#tȪ>Ōl<{UإQ;dHqǷ/|'D"/ޑI+ ˲3f\lylݧ&҂C]%A[^[uuUU;||}ܤ}mw  q}> }%|>/f;fqq!D&sBT Nnl>$vd2͖צRRm2)rNg !L>CQ@X骪r P-+^6^U-&%AMQmc)a]Usǒ$ /ȡmܥ/}!OXr"ͥpm)G[- X)GHI$|ٶy>BAu Xy*fB|>_3(DIV*BYJlMMPӔn~-z)G \ΆþH0 ;e)ַ;3/`rB<^LFAA6ȸ1T*6ԖmɬqxB -ej +/!l6/vv~pVU]W$jb~z"lkss ˪QLjZ1z[^7y ,wv͖ kU :?¾.b1P(isbֶi3b6sɌ"wbTpӴx7,giۍf2lXm kUkDXa~R"4S/|j,\P!D({<U|>gxi;>.#N4Mz%]^F0A,LfP[d[ ]ZآXpŞZGbtK.WnBq >4S,Bk$RB,B`Pse~ 8ltVPH] k X s(Q[2dȽ[S )9"x-k}kjzM3c q'8DZ X|>ѿIQO^I$PDY=meuw[\ڜ-=xF(~z}^rw=wͽ8 r9gCva_|*BDiֶw4ӅBdBV>_pCSpo +sB&AnVa>I5!D0y<.ᓤbm)t dYRUhh$){ۼX| "r\.o_}uQ㑯nnmm曟-}eY47W{G7>K`Hd|&Oel.fsTV rN"Bi)MSJsc1KJel;#q+o%IOҖҴ_{Mjb[z$my\u[WߖD1+KqRxC9,|wf{ʕ/^vكPzI'}GN$ٳX`>艰/ix&wl ZlwT*s|2e\7-k9cY9˲ MPHem-ܺ|R6ţ@+}$|׫('Զ&ŷ e#^?8N1S;hU8B[o](|A?iӾS/,;݁u#Lβl+ݵe-URmۃ+pcV4ŭu !O?J]jӾy͛wK/9G߮p6S8;$Iv%p3\K/~CN;Й3(F`" |* U(B\6rT*ky7_S8UjύҎSH&3Ngٜ-Unz~B!T$xܲ[7Vʲ BpdYqws?$y^ N,˖>,+{5>6~ >FSS;ϓOO  }_.ξ[Q{-},K2t۳Ԁ2_SUNį_|ϰ׾=xvZ?{}-oqժW<yΜ:krSSdi=ۉ[(L|HXLfl;Je3\:mgt:[JZNd2c&q~[U|>ȁ&˥\$PHez7q߫(`P$QحԕIncƌ_ڞ?I^F")V~曟moO{3Ϝ2vlSVζT&ͧRm\:mWl6Je-%Rl7y7[0M7C=9E5w߯y_zwy^W4zKnE[y'ljǭ\I&3O&3\>v.f2t~*WU=(PX|uu!Ya$IOp'˒i(˲ i 4U^UU~|Hoj .S)3h㳒$M8f1o[n3Ϝ||+< .4SHddm2xf9l6sd*Ml6[c\.Lf 6E6 $ 7w&qa㑃A]Q`3}{5M]tU]W(hnъ̘JٰaϭZ@{iz^C¾Dn{ehd29˲/,NZV]AiA,k^]LjAYV1I kؾ]4joOW/\R>;k?a O 6}T-M3fso-6TyxfʲrTƶyV)k֝u?5 _yxWUpwK`a_W"?t3[9`ѢÛ#>k bmL*fsX1HXL>Rl67T6KxX,mT*&wI+sz$IOU@@sȑ㑃A͍^UB>EC!U~ϧzJ({]Wu] }_U]/4Mq?uit] tE! 0訪;W͘1aѢic4Vh`D =cBn -un?i{u]5 _CCXn!mq^7;dY6S{w-{#:uܹN?~h }` dt:-NJel")Kn4깬m&Hyu] tϫiʈ5`Pz]MS za]׽$3{OL~ԩ,9K_Vo,;qiLhq`)*JfڽeT6u[7a 64u]45G3 TU^~R'~O|Oߒ%ǍkрJwʣ4ӖU|b7O;NQ]:7kHnyROn$Iӧ?|]Ĵiˎ>zsϝ>ztCTa_\I&XJAϧ>.T[Zh}$q~GK/w< kJ h} znݺ坻nn,.z/ut5M-ׇsݏ-+VR]TU츉`aYw|Mv'-X0)*}(`g! T^&K$x܊ұJel21͔;H&3HXe"abV2fs=w t_ ǁf~wh ~7eopϫG?:VTk)L[VX4=rx{C.a0qNj55 p<҇a_wl.iL2i;FӉ~L3[enh ꡐPH`P7 _( =5N`@ aOiS\ϣF_tӦ}' a_ɌƍŬx<YX:K$V<1͔fz5 (z0P }%]a˖=C8q1~@T*-k%V,6brw[7]4;;H njܒRۮa ¾믯Oz>z /<몦)D|55!E! 4q'8wժWpii& BA-biL;.]F҂X,9巫'>(&p  aRo SsV8eƌ/W T*{|UUc9˒$UP@`SjuKvKX,mV<6ho,织wKү=.VM`@km]{Vyxޕ>wєiIe2nk oHo>G"n3R_a{-_⣇OT]]W+ 1c/ޥnĥ7?^sC/Ih*MmݚFSں3uNVZj^UTf~gի_G ¢E{Hӟtד-,FS^į~ӟ~kJ{¾@! B{{=ёHlD&+ݢiJuu:P[㪪@mmƝ TUE{3̙3Gf͚JYfܹd y͏.}7h> JF)LZ[Ҡ#i:޺ШQ =ք ~xѪU?[?#د҇ž/l6ޞز%ys=ޞܼ9ޞ(,o PMM&hwNudY7GW>rqW^9kȐJ ?¾ vewkFӥ^Lmwz*a h|uy#^7EE"3sW~5ŋ?ɴ`" @%9Na˖D{{-ys|˖DkyKA^Gkjuu1c}B@MM. j}#׿3Ϝm_s>Wϙ0axa_v.7˻ys-eK)oiۓz`CC64dHW2&X[ ݌$I}$IzG >#ts 'x%+bg bYvkk4ʹ;hmƢT[[lƨmK v޻1\_DuuaY& ne˖Jlz]tTP`{2\[[lk[$6mvt$ܦx)˫(ۿhnji`]]:Pw8N{{{OBٳ2e~ѢUԕRᚚ`mmP8蠃---B۶/_ׅBSN+UU$;klٲdɒ!C\zsW\s'|r^=|MIx &ضz&v~=Pq</=zo=~xl_|c=s]ܗ5k̝;l;--Yrh2L3n]{y׽libViYyK_V2JQ ̞x}~ݷIvb:sڵMMMK0A(Bmܫf!,wѣG}wÆ ۙN5n\#۞Ǟx]Q+}(t:qc%iSli17n>8eKsnYo4mii G~{M5MU=g}ؔ)/^u˖,93&{<S# hjiZZ̶XyYo[[Pꩮ44 q㚿F>7q\NRŽ) !~,\p„ ,Ϛ5몫ڑMN;I&m?;o޼S&N8 /ܰaC?6g}ԩ_\xԩל~z*}.2$0 G[j֭kDa #jnYoCCxpWƧl6!$Wń ==v}G ur֬Y3w\;C.zs˖=M]wرM>v 4>m;: oKK-n]ڵ[bFӔFc#j5mأv㏷nб~}[7lذaMэBȲTW6hn R5dHUss6X=iZZb2tkkՌFI;\D"~74†D| FCC0|e}}XڇnVUO.L2v©_^9sk֬]k֬;w.n:7l'J;{圍q;֯;Z[c#aê w)S67Gjnjh{ ˲M3b--i{^nwKӔF> 7fLu/g󎚚IdYx't ꇷoӣhٲ/_|fWU*}( F}`gu׭k㏷rUkFn:u\}}>fnUYf:l-]nǭRa/}iX$+]ׇ#_mmwҁBP#g9ym'=4⋏>1T݁e٦Fmm4=/Btan$7 ߘ1 FssDU=|$Io_(;9K8[#}/?iTP, `퉵k׭۲vվnݖ͛BY"#G֌Q;|xͰaÆU V]_|6eF;[x˶ئMf6+wx oF>]ֆ<=.;gΜ?O_?ý#E9@vo.a?ʲvtm6<Gxy7I| J ><眩Å1ԺuֵQﶼ^ڵc1K5#FԌQFj<`d2h4M3^Z[cjoOrN7`-D|MMF8K f{nv÷u8Rssr」;rc>/j1[kjҥ/t֦so7u|8hZ^򪚯~)#G|Kv|s)r˳W_uM'54>*/3oRwݺ>hMBWij281_B5CVWr@_,6T4nkuyM3/F"~F"pCC: Ԟcݺ'#k,NUU/D;ýpoL{ݧ&Rd֩~c;gͺ)z<,{(ryI+Am7G??>_Go7iҾ>*/|vSWۿZknٸ1;Bȑ׈5{U;bDm]]ҧen iT[[%7Fm30|F}}8ކ[We/!Ļ<_yoᄏqbZO?uV»SUp'7~û IYgM袣$iGCvYfUL]w=ٻ( x!jvZ呦f%-M̰iJ[),<Ԋ+W B3&63eGƶ4СѠ.|_/'w9Pal.\z=[Td!$mbbmcbG],T N6b+RdbRdiZF @lj?Z,ĉkey`۶zY|r~߁ɭ[k #3gn.)BLi=9=T t;+++{ŊgBwpNg]k{o ¾Pg^A퍉 j| qxi /74Mu-(02dbj5$II*zӑT$"ۿ׉V(V"pGvG]߷r %/=1 NǗVX%g.~0drvĵ>u#=w.oݺG(J}5ܷ;7=:Zzqӆ a_7l6׹syg 3JE)۵ oV޶];}H r^.ueLvv$.$;ݫ QBw /LpZђ%OaGXvul1Ncw{v4mȑAl+Bahh;xnwEŹ~+NVh޸/ϲl||i;VvvAbڒUihGr̍ӧ>}̙WzF#o6];t ÔFxaqlBGx)Jӑ:KQ V#x){Gڦ&h-q_%guN猍}ƍJY:5#k׷MH*ʀIV2iiY{,#FtMJmmYΙ37ésL֟rF uH~>s':y W4m۶w٩ShP/MۍF0Ⱐ̲#Lw]%IFxÈJ"S5pk$&͟?].(0 N=zO|\]Aĸq+>! 'NJpWrgnǖ/.߿CRR=Zv"ϗ=9yڵӏ:F#`1U`Y_fe2͉m9iRC;w/=7mW͚5Y&Y`ˁ@Bjd?uƙ37ΜqKnR)m>vy}M۷'M))ҴaJ#EE? 𒤒<@G^Ν&~8pa }}Va0,L } 8|_yePǎM `ۃ7qs l=bތQQ!q dZrr +'w90@ x˗'Ouȕ+.峬OQ;ujmFO܊fMۍF0h4MR$K#aD%T.lvZΝ$&͟?^P3W8|xۮ7%凃EDP5]UE[w =E)}bRRkJ,6рw>*|Խ7bD>xZ]+}^͎sr޽Ǐ_-,V:E*6etN(]&@q:=4mi;ÔFxa~)?0"y]xIRIQC^CJw |>ߚ5,٫WO?}VUڦ%믏̚%#cNL HKJM[Td1kRҀh46K5kfMbf|a_c{ɿK,4:5ٳellNal4m7M0^;/،FsXI*.E)I4KQJNi$;U\l9s}f8sc¾,+]BnecVVvV֕~)״{\ƷePo~p:=4m.\w޲By]xIRkZ ם$Fq|5k,XGXRRƝ} x晕&}ϞWW؛q6**$11.!!LwQ [ǥK5kُ] }˞9s~|ȕBB!ڵmٽ{ 5p]1aهpwIRAQ]x$_{uDa7:t7x8Sw={6wР wq\޺uӏP"!ɓ5mӦ%'3zt%Kp¾@\ZtmjK={ٳU^R|x0606Ӵh4n׿>׎r^Ripx/&%}RVرcS~/AIIr@r w,6Q仨= _v|琮_hoVV FuէO۸;FWPӸv4]څⰰdbj5$II*zMax8y)h<O~裟 锒_bw~$.n[o OLHKJM[Td1kRҀhE5XMJ%۸qrf|Յ/@#R\l׋\ػ\n.TJwoѧOؖ]F͏@}y.M^neyK&M$$IEv-; QBw \z N]7oؤI}.离 ;ӏ:f,ݾwHJߣGKj V߸Qnx}89{"{}ŵԩ~+ walal cihMLqח$/E) Z@~̙+WNl>rJuؗal>ĉϝ;& ,ef],ќؖ&:3JpV6Ǎѕrh dd=tl"_}=ptP.ti^nh4 [P`fҴL&IVCQJTR:NJbw \.ς֮=0ztŋ(R+7%凃EDP/deeX7#lTTHbb\BC27 $?_5kُ]¾ ;y?3OP($}׮oߘ>qA^.Kӥ]x c7_ߎ$Uڅ${!!j\A*:uÅ #]N%%tzjԹsyHO?BQ&O(.A_,ؙЂz]/@p?Og23盚6m2`@{h|1``b5M!-.^ ?KQ 4\w^RhMFaϞghr-B.r%믏̚%#cNL>Ѽq_|e^Ӧ=ד|p|ӿkr\w9P9}+}]fm[ !6%~ 0pxio F0alf-d;*I4FDPǝ;N…֮=7þ,w%I%E)*y#믏$' ͛]{ؗ gYi2y_)e}g-8z4'6I},%cǮt<7Oi*r|>oeozt׮?Vg#GvHRwi׎F``^qXP`f<I*.E)I4FDPu ;7}㉉q/?={6wР 8OݑbތQQ!q dbNJ,>*7޴Ŏ]Br --k۶ׯttO>M]@p c.a^m6;sxIRI j5(7 UDBw :u/7˖v|s%")iӑ#WH/)8w.oݺG(J}5EW31qɓ}=Z]܄/@v{W__/Fu=GL1SRbi;ÔFx ,w%I%E)z .P||s[llO?MwMv~$.n[o OL Hauh޸/ϲl||iInԩ~u랏kw9@996NK>b{fMۍF0h4 HR$K#4:&88!;1gNߟ1c̙ +c ;ӏ:F#ّ2bDפ:^v;w{#¾uV/zrܸƍN]7va4]څ<񒤒$z=j(JE{u: ם7,LS3^p׎6uۛЫW+˹K 2ߛ8sluݾwHJߣGKg^vΜ[_"aذ|؉.r;w_3gn}jMKZG/ S]MN4]څ[vXXhzYCd2^OjR$z0飏~5cJ)4(ev IDATe׮ h̘ѣ{df],ce-'M3thg1okΜ^/;{L4#!ɓj4 K[xc6mR)}|(|>54^ɿx矏//MvF``f-CL&IVCQJTR:NJhpǜN…֬S=,yZ.]Q͊rûᄏ#=ȡCoj4򚘿>27Y5mڣz=<|gq|Ӧx54|̅ g]%WWv|w r^.ue@Lv$.$;ݫ QBw t8e׋,k]Sa_={'>U|3MjD=k¾$/0auNK>/@u\+M4[nXTdxJ{qA^C()/I*!;Pߍc^~ߵ@}ڴ'xʔMCoԍ\ygfMۍF0h4mFJ.KQJTm/;ȈJ"SP(HN:n^;r> Y1cR߶hS|!p;wj9ߵ8͵e;MvF)/qJg͵%I%I*zSfZ E)BC"Z 'fѢ{"຦pwo|^X}MǏr}RAvB] @$O>R\l-.+8X  Vi"KBCBBUr̟?|Р]N ޅZ:ڦWV|Ӡ pV/f~B ̟?K.EGG|Jݲeرc+.?~x.KN/i&P?Ie/vbywnj0"##Ǎ,-ou^Tiw[>V&5`:D}Ѣ݃/.=8rynVX*^rLд꫏9sz=w9 } ݼpB Z8Ϸe˖͛v{s#F:t w}Z`Y{ cbaaj$}cǎmݺڵkk֬ٱcǜ9s@#sС PlxBjo|p p7~=G#[]@rrA)ۿ? H'-[wڵ+ۗW lڴ}K,!_~{-R<~x<A&4M?s඲vۇ-^xƍ-[$I"ҥK=oݼy󰰰 &4]UZ'7Վ;bbbZ/t: pstZvΜ9n?S6m4i*7խFKѤ}z*Qi]vU*ǜ>|j.] oi$33y vaNj،Yg{.H$TJ$7۵kWNryV6nHyGP6ܫѨaY}J3k5a_SئMU9O_'nwmzl%̳w|[l;v,AG.%b,Y2w⧞zjǎ ;vjժK.ULra 7>}׳?<###++kɻw>y|p²=>[ٳg߾}.\xة[IDjjݻwsI>ʕ+{ff޽{ϟ_qk֬7oSj!4N_|EfffӦM %}#ѣGwŋ)))U|^{-33333344[hZ-epgAA|ׯoӦMMp+T}ӤE/U}oe2wWj3fڴi999ofbbjzr8ʹuP>˘1=fڒVܹ)S'& :gǎT٪՜7ií%no;Çbqaa;z(AN"b߾}>rqEǣ333}>ߐ!C/^\$/^rD"ӧmڴimرc}E 111۶m{YmN |J9y h׮]^^ҥK _~y޲UVW#kƌ3f̘x>vQ$mڴSy9zr'pz8kv*{fR&|; zMV'9P_ٱxmnp{-рyl#3((ٳ{+`$%%eYz˾^+o;z}{QZܡ^'Y޽ ξwe}b*vm&N\3/)髟>Vh˖-'44T tޝ }#""H$P$5j۶mǏ$|ۺuknئMׯsj+eouhvGYNݪN k׎+ '''<<\ ^r {_~ lPkV-[ի[ouyqQݲR ݻ*|9ү_Eğn 6[ޮ][mSiX?Mjd29ҲΟ1m?8V/迫֤I}>|822o߾(wh*KWo4XC]&=zuŊ5@w36^IZ7fe p߸qڵkץK c=jժr~:=='p:֭#<ٵk;weʔ'NVR& u4 CǍ{G]Nh4fbpo*`|A꫾}\.DT*Y%bÆ O=Բe*{5EIUPcVuȐ!K,zurƏ?`:vX Θ1k׮Bph4EEE\ط&ׯ_?wܿUViiir\./\pً-Zt~[vβ(cSuPGc ;wH-lA|x%{A|D Zbqzβ>N:dLv06k:nu:=^|>˲>UOr@$ T$ D"L& H&DB\PHD"B!QBPQ(RPVE"AB F B$r bJ%%B"+R r\z+Xvfs1nw.avX|tu]k-)+WoiӦXtRttt@[Tw17k7*U+y' SYP~i . iA --{kGD̕+'ޥֶwlA)x]HOO{|wC=P?O֭;9K8UξP^in/5,ry\|7&eYVl.cN}yvz#D"|>e}T$DBX(Id2IHHX,%JLi4JTȃ*JPHu: E)UB@.L-0%%Va2-Xal߹^6ΦRd2B!%bH$Jb(,T$(PÑv͛7v/uݬLUͤ/A=z+  YP˦Tj\UrD.$rD.Ț:t9E_"]K=wߝ9s?ΖJ\cx68p3u3o雫q KJl db\*(T*B DzP(E2O BP(v$@$*R$Bp|ndrp݅vZNey+NRɂd*LTRL,5I*"#x,^:px֛sr7$ [+ ,닉w\lE F9u~vNF/dJ5)ML~>SnMX;HT*H$rXTRJR(+ rRܖц iR#4wE7JL㻖F:x ?|/Ϙ=qʨx0vnw1fs.aᖸ^sfXUU*J$bTdbTiHDj\.dF.d D*KbtzfV\l-(0֜BߖD" VBB*.[1KQJFQ+n).[1lvp7hn2˵V(\H A* 9E)RH$Vx.peY0vW]uL&"reY)Jĵz=˗gb/B!jG'[y[\\9kBujڕ+WdJyhIJگP(fbqFa\\lar:],[Xrym6AI ĭ6, %L& sJYH*4TRɸ#&56MKS >pU񰬛z!g?x#i屒a_e}fjul.i2v2Jw&/ױM[tBZͅj\&+2R*B$9RFrDK$bZJbJVE^/[XhcFS^c00qR\l-*Zn VUAAU-x4mgikin4 [ohAA2R*6m"p]Y.ryv7m77bqKKrT2ZAQrnZ-hBk4򠠛KVnu@ vر+;7 <4E;"n-C = UwR(U]pM&h))r/nMe8+V,v8\ c/w&Vb0(HirjahfeKg;wߵ@}5iRm~;7oqmn0&bqZ,OZ,Nfa6fslNa9[uU*B!Ud\*ҨJPHU*Zzj4 RTJJI* L?3Z ̹%\h4 B{'I*zV  Q jaŖbkIVRbu IDATiM۸e#M(IR$U(dz=D, q]m;a2Ɩo*iPLr7&t]j\.g &Mn%f=G$H$LCa2?} }Tr7v?T*갰 .͆W1I*u:|>n2m4 c3%%v2alflvl. \ZzYNH$b> RV˂derZƽd\{Ir}5TN?%凄""(ˁzI,.YaQ]N}/@m+p;nWe.alrEu: :nr7HRIQ \V+ZjpML~ﯛo(Zݡ(NGFEђVb`;\7al@rZTJ T*hҢEH$zYpxl64l7ndgݜT*(F;h"$&r7s}C h4WpX(Ə022eGS3܋f͂xc،l-553?$ +`U'NVw5wxdg0=/6G_:k˽DNGFDP@ I%IYa2M&;Dž\jdsͭVSӶP($AXg:]"H B|>?RH&*bR̽-%}z>_~ypSR.]?}c/]Zr1.fkk6CFY+G*sm IRVT*Z-ڶSB*2(HV˸*۵Vخ^-z ]VtjQNNdVHD*.ҳgK_ynoQh4Z_Q]Xh.CHD\/(HRIRqf!QQ!Ax<^c,Mۊ,e[DBRr_HI>OQ(Қ;UXh),4 hF)?o*BBz2,Lד:EjJ6}WV'Mꓘפ7>  _hڢEhTTh!THޝGU?3g}'3fBd  B^RןZPZQkk+^j{m- 6l**6 نx0$|߯: 'sI9|/V$b}0 +H0 c0 _.S ' tUJBqߞ=a=XTY&z T)t:G"M( %"d(=oF"d2}b:L0 cND$y<qGWfLa*1*cL.q; fLNy򷾵4{wyO>ˌa_P%Jw1p8>Px7Lblؒ$Kr8 2Q9:;}fMl>olB<*W(*@]~yZ-T**P&gӗ75Eg0(4NQb@Jl.̠xVՒ$ B!KY̮CŨ{/,i4Px4di0ȗ./\j4B/MX uQw\οoB"eTَ 9/? +:yMZӉzV+fDlܰaw{,`?^/0k& ],qE)jEe,"28*=ML'flhb$(AUUŕW6TBFe2ޙ'V2qè>];E!R8"dJdHD&MÉt:E}(a]$lXB!K(d c^)_.$DJ8"i4*.P\,H%H`F|]{%;Hu5ðBP,x^ #aB" }-W05Ǿ"cJgguDӫɡ)}{1uad2þJYV>2;f/ܽbAU ҆>J&3əFcJ0R)obҨ̯gH :<ăD0z#^o4p,"D&dG0,xCt:1 Zhb^of \a=pΐz#.W8IkX4&Fd2Pg2T*>L-g-sE"r&Rl0+-.^x"D#JT$~{]tQuW/]j8jH[o7N|я>rtS0gmv^ LmX"̗I&V*Yݾכ|#GBd2/m0/)7$o_Wd2s\.NH$'>pYӟ.~yǺ}y ~9Jz` 0LƔJȯp̩:[h^ݿ~?ݱbEa_&¾0X0`-qE%݄T*1Q.2 }>} JCCaؘwt32xQ (F#VWKkjzJՊ&WNgΐقNg:!=h(1=Ic0($)/dX,]VqI'Jikqhh-=1ыĚDQ.,Ffӧybh4Y2E B!K$⠫,З(LKDLE}W_qӦݑ#0 C?ڵkrO䢋~;'r﷯\\:}4LlPT*W4.ZTdIR)8{3}?wOʱ/a_&¾d0&@h *Dk U8{,,wpccq4\a7^. ^A`P'kөT |Аklp]cğd2GLY G*d<#%Tb1G*q8` (bHd v{ =CEQ_U w̹\nkw13`I 7a8NW\ѸaÍUU/ŋaO$v 6ny't^~1 ~P(lކ ;H$중_ 3Є7^{' F `Pal6`JQР4 NCE%h]t>.F{.ATBA9yQ+D;Nbd2}L9Q:Jt:N) B0R&D^o,µ:DD~|DE}1 oG=|;:F~=?@K2R ?Rm |p^9?+'?)2zV]~yu]pEp8K>u}|W{,8 IJOzHg}2=l N14>rą_LZmNկ^PW'H'd236LapÑH2Ȝt}:"D"TjE2ExQW$b2y< nwxn?rE;tŋR)oBƼݖC,YzzHJQh{ =%?dSkrne2-lihL&HO~jo7OLntg3G5[$H{ekOLS(X76Np0d2馛^?߼Nd2H$9:tL.|<>0cRAn4* EKV.MNo 'GCB #$oO&*`s3Қ39N`:;DX8Dh덝p&J FSDn&X,/ x #E"HĖHcD‘H"{J8v /w.-X ?F B :iҷꫝBCC o[.G^@.W+f_ؘþJ/or˅éh D@/`drl@| ռ]Hcs-lB{d2990wG0U_/ y]LKZ4|1_omt;6q8B~4N%|x'6zyJ~UXUrf율{yѲ%P&cޑIT{P55MK}&y}}zY*'HU4ڗ?NƼoq7mr g/p%Mֽ;BphRGVOF v{öwe2^ݺzsފ{7oD"/FYnuWr8:i`糈Ѩ3G%s&<'Iz<?|c>_zQt .> ,#s$LEWsR_qyгwBnwxT$̩qg0( ͦ1T Rq2l( `6.p$*ð'xW}VT40 '|zn^v,n'-S X}}Ȉ;ShlT64(UJ⬓(!Vk`t36ۃ@,NdNB!K&*ZYsFLC4K&3)^ⷄvGPq51 =eJ0#ޮ.qrmtosɤg|]݃tɹ\~y?J[ b;vtoݺsg^ݺf‡j2? h|Of&J]]?Ξt:_OH?'ۻ^G^sMs[[Eg?& ;Wh> wpmG) rp4k0հX''1;dp17LjTZft ңWIn~q?NL8yݺ߿\nڼ‡O>x6CA/Bb:@/b@|xS*Nj0U T͋-^.IY1[p9v2__/aÿ2wO%qV+ܻ'y׉2ܲeWj~󛯗{, ¾L}Ӡi5B A SŢN&Mg$5evw[zz~ ܬin֠S^( lA;l\r8?ZdA0R:CH*W(zNn4ʵZV+jE&ۄq( v Ф(B!$K4aZ8&+Jh. |z׮#o\|t:;eի[Wj-; 0L&=Wc3\`0N|Jo L&;d6s޽ A7<84V+W.\X}DçL&gCr~%eM&#R(dZE[W';ow3tSE{.)&/9P*>1w(rzVx( T:))#0*dRL*Ipl6F.B<C.e2DQ(\Ae}Sҥ.Ըq4) ?W^Wra$+S>s0 |Ux6lؾi{5H$Q~-yҳ:/78w8KA/\ /Ftz`_<e{R! IDAT 24<ExquKJ&Nlmlr+׮]Ԥ1L@*mjz4O|B~~w[YF5awmoڷoT(d_ye~ Hrt384\(<>0cԏn4*F4?|MGF=bnw|Q;Y,TʕHhR+s$bS\c_QAGqؘ\`0'N0B!3t F)\.#Ŏ>o@/T*\S*(\{Wa_ ?*:d2{}wolclB!Vߞ,I9$;:Fn–-l6?3έWBkV _xrA/G-;i%z숎^V !{ފFSȧ:dIKXl6F|> tQ-r8 =08wŚ왮, ʐA]dE,R1x_N }>tƼ6["I_otgl]~\Ʋeƫ3Cv.Wt>lK$弖@WJ:rkdq-L@\OBcaLƫL&tp:Cv{f 8!#D:8Np4L&LfPN0 # 6`PI$RPӱX*IPR)OBZR 4F#R<$/a裇gЅag.v-?yOcR,1wpcuw[̓Nf2|ɦ`{W>-\}2Q?h0aJa_&¾]: N:t#}JB)Z,q7b$ B$9NY>1wˌ70_xkDq/ b4BVhNyT0Y_//cm2)ޡJگOܳڳrIL\.?4t|sжm؂y70_,,B8ZCӆ wマWN4bwnoڿN.YRzu׶rmټ0fM&#Ξ]W'qhK8Z>I/G(B!P,斷7Q+L>ToT*1lʣRh4ĉ4Egh4^(`L.O}\. EQ&X.C0TZK7KtbJNg,wx/_԰lݾ@ v ڇݹ\áϙnjRϝjjR74(O3EJNg0NkfRiFpBDdJū(ڻxquSˆۻn4}UU=)u};ߔ{ 狾^B.5^ݺre 3SSty!W>_@Ѩ0p8s謲 ۃLXY\\ƃ`*fb>o,{ X$bK\.dRd,bd(p:CDl6F \.zN'3*F# *?aO+>Qo\jߓɤ-[Q7/K8 p#׿kWύ7./n lxW>$R D@r:V =%[$bdՊQŢQ(x6O$Rnw h4֤(T*9L.W0B!+jiUXUUZV+ɸy`3$ /o䡇-X&dR_~w.7w-IEp޵~k yÆ5+W6{8e2/~rժK/a_Ίu6 lӉBǃ U(<4Bq4wPr^rL& 15Q{A=o9FS-^iVVH&3.CC,| ZZUj[[b$NgXq//1qљtʱJB։2D6JTݿQ(mmBW@ cG֭:;|խk,\kkaÍ??~;;:~*}ր/a_N }D /DPWUQPC@ 62rGF<eYbNmVV[+\/}BpB_骫,]j`0:;G߷ot`VktyUDxŠDE,d} e1q$`z{z8N=miѢ_J${j'*v]i͚]pE KӋR$i2խ\Q(GA|Q P;hQϦc@H^o{<?tިq^oqbe&$D‘y G,*{,0L.CѨ03e8v:CP g ,0sD&Xgt;:\0WS#55^RS#j^ol-0>l~7JeJnɤI$Fd0[[몫!pfJð[w{<`4*= oa;&.sUrk+I>_+뛔2?͛?ٷ `" fX,e 6[ld;b1GTBFR JZ-P( F E%Psx؍r'DWN'F)F䳺A]~`tԣZ1#>ldrr9o|… [Zt_mo?mہ@ `m 7̯)_¾'>`wzwN({Hgt=ƬrPowdrLd2dFdf4*@fJKWX`i29 `tyձB.a^MlAoq[A/&HNX*V:wf"ܹ2SAa|rs =xzwN)d`7*/1r[<^ww@ h<;q¾L},޹w8Vk-AoBS tZV JJ%hD*_ PP\b 8q##x#&MM .k[(e=jY zRZfp890`'{q t…z]a5ߺl ֛nZTU%.*}D"#]v$ ΰ}f6[(ѕ-t:KշhPNvWYi`7bT{h=<6\a7:a:ym`ʴZQ6##^3 %,](|>SH[Zjke";bTAa_ ?w,/X[o7o>$o_7NZ^{G?m]_8=6W3^ۏ~ϡ!_\^fߒ%~[e@E/a_PBblAo|(Zgi4BZՊ4!ZVg( +& ѨDs@Y,ڤodrnڹe˿XSZ&9^4V+J9T*%4!FY8J%r>ZPbTot/J{ͫJgl ۱{}c|>s5k.ZT=ުf"[cJ^ݪPש_vw[L&WqeTWK Ѩ@:l/wi`tDLMpip89<L~ a1FAi0('-M$&cl2@8( $Np, ^׋m3?@qa߾>Woܴˇ IDAT?gʘ7oG^+yd#c׿~0X//tb^1;rpI~Ggc)FeC^l6}ƐLf,v_]>:B&,ad2Ȳ`YbYP (oohGFExq5r9ÜDzϞW_ܻw˗7Y`GR=GTܹxB^RUp896A-&!0g_QبHfj8(L&E=zOxGzĕ1T'$B2W.\'p/ncpI|Iܦ&uSYԤ0 \ݖА 2L,ʿCѨ@/ Em :Ì b}߾я>z_MaÎGY^1mjRmذf*n| 8Çmw}كg xu_kv7]i D@L`0n6,X|f}Je1 qBhPMHh4WT: >lp##l6`PFŜ9FecI%&qtnwxnd2i4\ΫhĤ\SRJFiޮ.s&F5Sn4 wٝ-3^ݺjUT4mV,ģIAZZUP(N{EOVI=u؀D&n40Zp:C>_ Ibe>%q%BH2W*I\ H8Oxpڎqey6ب;WԤ;WР< tiY_k;|$1 ciT*%&i èTJ\S#EҺ:tfZKnxsir:>~≯~N =vm]4??fUgΛW5ʧ[[{n4o@/DDZ,~هҽmr2PUU"V\U%B^RT\ A.W0&oiѠZs}I@ UY٥Ѥ<3M {(a4 kVn]AMU6vC,te44O LY>C۶b p| A}'].߿Лoz({ jj %\t4VtFf ~0[ q-V(p8(|&:J9L>yQQDPxm/ƍ7|)K6l߾n|mbx?%?j:/ ݼ Ӷ a_&¾`2tB.Wl}(0 Y:6+rN'CT|0:X{zl==P(isf\MsY1fL(//{<`EqcyIJR~h_>4 keK*PP.%ޞk2as樈to}ۻn4}(CyM aߩC~O=b~~]C1%:(k2L&g2Pj% ѨhhPh0MBdBs`0^r)FT*əL.''s^X{ᅵ?L'Gw!Kwdrf29.KE"6LFSv{f ezy]Nаo('oc)-ӦoZ:ujow_2W(^}Ƿ gKgXjWsӳa_&¾Bؘo|;6>pr|s8>oG1}ƼB00 5tyUU*Ht^O9*\88x|.Pb|]kYs? &h.h4VRqR(Q=1qccm~fdR4Zbkk|*DߎP(l(ҢPv޺u_g\u͚UH4N|s\Xi9ה{h3U&t i4`EU:@@  &Pw6x^e~!KgؘL&ŋͫyhjp10볏{AE FeCJ&8ܰo*]tå7nc9*Hu׋/%KzsMߴSi޵~k _暹SQϒ%Om|UW͙mU,08e29=h6PZvb) èT\^N A-l׶Jx F#?_7o ZZ4L&8v`&CFSVIXJyX hzp{{J+64(fZWB α@ FkjdDw޼gVD"gO߫v;˛֬Yxe CyAط,ΐN'ꪦVHh452tL.6BcRA--ZW],:p`cφO&3<J,ry.5ڼC prir솪*nu5Ūgylv(-ܜ`jJhi bf߫k$Y !!.za(\ɾ :a t"FR_4{ϥ- `Nch%#G`s:vNM Bx֨͛o.}<(x<ץ}y g֬c/~2db`f8|2}1#&ζ٢q]O3&dϞiT6"K 9yr[Qd_ɾ]P(.+-(`VTVVsJT;ooGoo'ooG'oo'//Gs2;0|W:(wUU\/{GʌBsu#d2IK&\\LMz+0tziBK,[q`iEF ~);wN0gFd2l8ꌌAd"ӷW7O#R^P¢{x8;} vh\VPvu?~Ūr fn.33YȤhnmuw UQÇԂQPuذaWO"ASS nJIy]"pt2  lkkammnbDB‚O x=!CQ@Gud_ADkV3V^Ι>'܅ \\ѣK󂸸ռ[bcjc͍g|=H@ `c--"b 8ؘ;dW_dre b@0HP@ǛQ wtts78sǧSuvH˗_XY3n!'Mr99{ &"Kmgg0v‹*,qƌPW}MA!ò~_WM@ ~e0XX@0qu43߁G3޼)37' =UE(?yx 33СGE z압uu,{lm-dg=l๺p8AovvŸq&&'KK痑D]nzժ^|]nT/|:z~D1;v:pP͖%@/d_R[ۘϯ*(`{WUXX]TT-qv"-2 "Q:./U/;py9G$'9ܜ@vvVd2ւVU50*<:tha>]bꌌӧG9aڴ3f lEjoV,\8t6V oc(*۷WPp8EOHH}D 6 Vw%`YII fȠ#!NgD"Iy9`USSS` % %!Yf͛o=Gd hIkk;s'<^ 6رzɝ*+^.(e0XuÙdSI$+7d"d]ӪtOF ʕ񩩅o 3&(B%=zߨQ![DxUq\ڵk-]:ROsEG&N2 H@ /B6/]U~~U~~ջwUN# VVfX^@9>_X_$+nH^Th)K?fܾU u;"{Ĉ [ۮ+n<{ __sϜ9{ճ-,%;\Ivoޞ047 ɾt9xرӦ1"{aj ٷke޹uvVjja֣FGEB`0 l_&vR03#xy9hnTО7ܿ"kҤSQ>z{vVrr4ujiyz:D^(x4|640 AЪ/d3q$q?\`nQ:kֱ ʙ3w͚<7GBw#,ocɚ*ҥqq_~]ɾ}tm.*..c/|! $U@90ww~C [gJ_7Il=XDrs&aܿCF}}ȑA#G U|1lvÉ54'L͟?d8WE%#7lWFIY&gI$(dEEDxhaaΪ׭sү_D##&N 2wh? ٷ*.INJJJOM-=~_Xe2,, A"1 LRp >̽~~] 1bDCK$%:115mZ? '`0>}Yӧ55<"b#GRjkyS0\늊:PbnNĐ L&\]a,s(HEdǎċS>ݪ{RR͝{""\ktz>ܤ׮ʸYY;|0<|ڵ/^W/7 :KMM-*%DE` U:|o` Ea.}0))WuuM}zEEOۍ`U@oWWZZ{VfRR˗E$1!k8뛰_bۊj"`@%0ڣL4EtvٳϞ7ΒLV|Gx-q~[%<h&||9xn_r嘩S*S'7p/<ѹ>NQrٽtziK<8{PVILLpE~~::| /H5>7>{Czwd_s rh90Fn4YDNpB!9H>|ڲ%OFiX ?WX HRR͗>|x%TTED8ujر`A/d_t[-̜ʜJ,ŪG/N^xx8qIJƎ bff{{+[d2D$Inn˼t ϫy4iNk9H$/ײt+(Eݻ͛'X1ZqXtzYjja]]47<P@ z07))uH$><022oCɾ݊4Dz~Ǐi@ɦe EQ[[ oo'$OO} Tu5o)Pv-[|ԧUUPrŋ/**F Zp؈AjYBM5 (tE՞@0:tȒ}y g֬c/~2dF ۛޱc…4R`'ݸ;5L!nعK^FE3޾߆Mk#<ɾ}M`wss++rr؝okkrPs` ߟfSDN޺fi:oy9G$ Ϊ_ggbת~u=|Ua!ߟ^+=$.|~~՜9׬<}E-[.=bL飳 Wjk givoXm }0))WuuM}zEEOFߡdis矬_ܰaۥM]BX\ADK//ǀ2[d`ɩ˯^-_>z͚qj R+O~o *t ǀHп;qѝ;AAԥKGL`l}U(Aפ$ؐ@/A3644_(}N=ٿ?&&&BSuҷ޼z5ɓJNڴH$޽Ȱ{߻v$RC/d_+͖`2߼)}@Fs9mA&UpDk*D$ZE;oδ4ih4w}ǥI|pǎ=4oiNʗGQtݺ.=:w„^ `d{Ҋkjxxٽ44k^P¢{xF},,av~/"~&,Pz d%Fs q.&@!=sW_ds6nLx(wӦ˖L[VVC7nЃ]b~j/--:Tds%I$+OONND Lή7n#s:wŒu.\ȑ'NXΨV͟ܜp(SnۼkWR||ʘ1!{FS($Wm{w͚<<:ɾ}`朜JM슚 d2K `#WAh /l+}]_$]qH$+77{_Thgo||Yvy~ rC/8u/,=:Dvsٽ%lv {cٽzYZ;LRVILLpE~~f̈ ޠ d_o};ڵsbI>QQ'qtKaIfgW46 =1 ~illT5J@Qر_}m„^?0[Ae2wNs'{^_jSr5dq|l1SS|rw݉b@7gɾ\ZfZdԨ{T;U;{^?r?',75A2(7"›DwFi/zBB˗E$eddشi<}.--",wҤNN ht:`1L>_ǛcT{ ,8Sy'!!j={7}N\o=55_}є)bD.ɬ ziB@ 0N2C&cغS(D*|X}8C~.X067 -:ES Fxjr9hx¹}͂n=zذ}ڷʥK/Χioo}P$K`+ʳ+޾ϯ 愀JP50Dm=9ZBBBBB^b6>x<믿w m ŵft^늊:P-inNjk<$UΛ7eݾy3iƚFZ4ݱcʴiT\ƍ7ڵk]La'THc(*ۯ`EEE7o:HږxɩD+,FG54;D#u1Hp,-9sE<<T7rRP܌oj256|_ʯsϯy3Y~:tc?>W[͂ݻ:dwkkUU:6WYYfs+*ꫫWvvV ٙBRd" ,ׯ^StUa!Ѭgꎮ(8iчҾh!03kggn.Q2&..DX$H$x1LlG* ezRffқ>}g \BB… OZZDuu'6^WW77'H4rv&R(Dk;;KcU^,ᇻwdS,1uj_45ūbcc˂w옢k֬o!pQ$hh4pfߘ`I,MSE Guz]T@/kocc~ܙsJ]""|.vٲ_z̟?DBdn?thք :_pζζ4l~eeYdr9,V}ee}nneqqNCݍf{2;:+zrT<НkӀd_ Kg'-)4{ttrXG7Xɥʾf2\tItހ5LrqS=#tȫWŻvy! wDUX^LIIѣs:0kמpϝ[f@֪U=gϞ(={W Q? j^^#Gu>*77WWnryѢS|2jӦx*P޿xbL7z `23ˇ wxh(*7%fe75 x77JTT@i7F}}ɭ2UU\uB?SיdLt^cm6|_II~ݼfsnyy9vhӧܸAp*NKu7ffpS&&pz]zlQQe&'sw u7o~c{{ @J(3̥KG;`< CQV,*ήή() umƌנ * E "Qv\޺fi:oy9G$`K(3*02lXl:3bn7'wt.J,|e}[^V3h"{Ξ}p0JpM*_Ԅ-zr[嗅T A)CC]0pW%쬬7o޼)kp={N좑1{:ٓuuM7ll)>X KK3= T!/\xouHnŋGhv!kh/]zٳw?4gҤjeggUc5>6v?ޝ==57'9 M5~vܒ%g>CfNʪ03#:;`<`j'tD$2R?In>|ϪUwdG9(3sӧ[~yޚ5ƍi<oݺuޖ۷o-$??_8ϟ)޹k@YbqSxƍ:0)iWۋy޽ СY}pᰨ//G5|ϯ HI|!ӷn+\Y^իiwd} OᢣQaF/v܉#}ݶ*馓;O@ס!ln+!ׯ ߿W_}%5g?#HǫܟUNuicvQP:oQuuM.vʎG A{{_:oސŋ}M"A_tNG{ԍ6l 믥ǠV 9tKKkI*a7;<8j_)l!1qD{{{ 2y䌌 mlEt\ millKٽGܻn݅Ǐ6M㏕ ƞ6~}ǎ wrʴ˗/} H 蟢EIns~}zRvF-f7,_یG(eK$htիH$hRp5Jpm t҅ QB.ㆢ=<it>mULP[Ԩx3uA$faaoao*CݛF]zuԩ7nP%%WQF(DGaM>{m^~ٳgeW\`8nҥW[U IDATjk׮ViiiJhX,olmmsUUN?tuup8;w. PISձAn޼ynnn֭]|), iB]Ҕamm-d9vvV۷Oק/_j$0Y>7np_.xxܰaC||vo{_v8.kff`g"RUU%7|J߼y3`unKn:88BEϞ=*Heƍ`0RRR EG>}lڴIA$22^|AjEUrە]<<"#fe;DKg,j+ۚj H^^a„{pIe-I$oocǎ(e˖PZdAMp? HMM¶Ut|*̱Օ) H#Q7IOOohhr999#FرcFρ㙛=zɓ㡊>ᦦ&A:koo?w\AѰʎ0%WQm&+ f>L&ˮVCaUl(11 pvvrJEE_z~]EUvJ#G9sΝd2dʁ**}իomulP=zwtzϞ=Ng_|), UT.)FOḷ+W*m>ȨQ{Qvǟ3縧+W^i|^S[gz*m4 ZWCFv?Kz)+z]C_1jE"QJJʎ;z~['>|Q}``+W7nBܽ{E>`Ϟ=et:̅ P Ng.W EblrEUrjN/1bO@3g%`D<ɓEdy{?}zrI%wD"Ddߴ4Ekl b%ݖ0*LII!XWy*YA2¶F>Uc(9St}ըDSs555ݿ?ÑH$ bU c>O4)///''gذa+**rssF;j[1U-o#DI.V"bhmm Eg̘yV8}߯Μ90E*r#G tFdC3*d_[[@333%\"w:SKaQuI Uꀜ}UViKAA׺#GiD"֭W\\CK02Z5a O:::J m4md_\'{cZ5$ۛRo]QobЎ>>-//GD+!To%}<;Yut5kFbSnŊW\Yhя?rlmm155{i -DņhZϋD"G .SUOF+lU< SDǫʙBIm}N@j Aijj:tШQ߿С۷g&L@}=zuݓ&Mb06lpwwdžklllii177o+8* D($vvv %==}̘1Wv>+___쵊 դI.]Vwh4";;ŋ ˁ*'}Ǹz Ӻcbbt_|))JB],??rII rӫi} ȉ'ouQm g>3@~&&pk)-<ОĴG|Q*޿~hgg ȯr{QnVe-Ǐbccm߬Y5J붽Ӎ|*lnrRcGcl6d2%%%{uwwwrrRspƍ|2VVVO-^xyyyׯ5kH$5//oJbPJm۶ѣG߼y3//ի puu]lY[NyyÇLRXXvZWWqq8۷/X@f՗.]~D&ym۶aK_]E:Q]hJ$ \ܹswIJJ. U[U7iLL̪U 333n_Jj [#h&|Ŋ'O>H rr:tڴ55WmSYضm;v[ ϬY|E䖔k4T9(hH$644HO= ;\K4/)ӵEi'V {_TI}{~mƍt:===/<~4V2/ngI>> ŋO/^|ZQ@ULfۙߘ389J]mǏ?|]ccc4,.& fiiqfEB!Clll8УGww#G̜9YvlHE|u\\\H$̙39춤Zt%˕]ĉ+WrϷwppXxqcc#>؊_+,C8;}o)0>}7n?ݠ2'N<'vU CEQD2vXik.;;;__D[TQ! pu/G2K,7n;wƍwj嫴)ɵhۧͩc)ƲX,oUl0/xJVD|󍟟AQCj=XF?&Pz*JEFSJG힅5R:6J]fMssz_ B PR'QB.*ZJv_K΢Av muQ52Ǡ-[h(V)?FжՉu9ϛrP,BG5JaJȝ |RWժ.[VU)iiiG&AAA~) P kXwPE}֭z@%K r\}R:gbui40PWkks}iO ŋH;lRTT﯑<^8… G ֣G+W[[Ӝ0w}%?RN^D$Zh̷o+Fҥv!Fy` sEiɵO@ڧU7mdbhu:=X-*" t퉽xQ0y_I&;-%.\x~'O>pT UU5̞}n8{vqh W):5 fs{2*rqYs? hJ_]8AOEjOЫ: K}Ἵ=VCfcٽƃWTT/Νw,k$}w:p`hN/1h^ǏϷ0T/z{; 䫩m{TcPBp8L'O>,5ggKV,Xprfff ʪ3}AWɾK$Utz^^"meʔe˖1B&H\dFWXO~KO/ɋ w8]1s޽=NX`nɻogMH[A mFhhjAj8%u.TDKK3 Ư̈̀7qqkE"ߗ,[̙GO^8dHV7iŸ}fe裛mCɾ`/ _(,onX[hg)kkktvv>zFWX 99ksׯ vw8_5sў=]OZLB1!,h@ mFhhjAj8%u.5^كlH.̌Ϟ}987_H[`Pl  V?Hm(}N/KK+&>>4[TTxDwϞn&&0f$cbɾ}7~wJku!UEGv-<99ΪO/ @וZ8|xƋ11c-fjxrxgZ[/Yr##ôEBX--=]0B HS 3N/K<d2Fs_tD43J}}'i3bb"M;pbkksn!KDՅvAϯ1"ȑ9 pss7Gj 8Ν t1.۵k)~ٲ_c.750B I"A fZZ˗E%yy,Xl1yr޽=I$+} 0U Z._^ѧћ2NLOnnvml4 SS Ak ZTT屲 ٵ( CPŖ|Xtk&hpw矐d_Ap8_L63#ŝpӧvegWRt0: ӘVVU |++0Qpuw#tvʕ..pvw8zSYY7eNNKmm-2PF:5/41 U{)m^   իFRAŝ98hi}Y$;>ζ +3<4UQߗ%Utzijjyy,EdbDh4޽=aCSZZ( Xrnܽ7͚uܹ%D 2ӡCkI$(9B ୭͉ͬDKi;Ғ`a[Z66f6(.晙X[Z[x%p*5x7&))mUvkN38jk=bhu>}٥  VZ۰aX,Yo2yr]nuP}5Sc]ED!CٞaRJ$BxO߬1cB4@kd_\.?#ŋ:.<$eЀ{O#̀rssKHH>}sI*(ewށ3bb">yN7'%}J"YioCtz)ћv&&8wwo+D"q}}s}}sEE[YZVBQCQh _ <E%fI"5K$|Y"iHxb1OQ!={=f7( H0CJCju@4RWC5h vj4uZ/ػﰦο O 2TFS @$iE{ n:ZZV\źWp"aDʔԟZNK" Cr|}75p<e_Bܹ2|ʔ}t:W/>hϚF3:/^>= Xf5555jjKE|FUPWdTS}٫ru*g_ ƍEAu"ʟUg6nPS#0 &ti`/Ȩ0th+T.+!4->G3⦅ʚ_=aCr,XL''SϜ3̝o3(ȼV/i 0z=л EXXԾ}7oF#-]9sNr%5$$B&SX L.+45NNf8&3[ˍ FvԃȫwfB44ngUΟO1"2)ii.& }$$d%$dD镕5::NNfB!/,gv6-[6:#ʑ##EtBHl〚w/sԨVtNnaђ8[ I$*6 IDAToMӧwqݺArM""F}n@2xp{ v+ eWI&(|[TduD~~qtX眜Wbqg|G~(Ϟʓ?Jʚ;w>x%ʌ:uj]'ɡaDi۶]={!NS~Oe29!4NW/rw54e8AΝo?,/jBvN6nn͛kR6>{V,}ޘHF"#`3tPlg-ף ._Nx1ʕԢr77ĬJ,Mý>1ռ&O\I__wyoB!/>~5l$ʯ-|K-o}\NXZ锗W_oj&ngg[p&I۶:uI4;w{wɓ|YNVKt:B ر)VVˎq ߯8h4r+y/Y'# .Qm]nnV;6׃RYYѣwms&5t:=;PWqNLc_|*}=Et3kjdl@`7{vłN^GIހ^JЪǐJ?pСۋ=ڇ8Իp!ifjԨz5X);&CP\+zUrcB ~>>g3g}OP]5qw:~|jKJ*kLIaaǎ֘??O3fHLV^| t}l='!2 Y"Qzz \a`cn޲EfWxQ(>ߒ1p|O kF۹vsi/CMیbl6o9vl.%1TWKw^?BA͛ד }˖=z(xHL|y?l&֬9qjgW4ܼС^_UΘke_ [>"Qڭ[iYYEL&6$Cǎ?vF#{7cȐׯ޼`/ׯǍu;;SzIĉ{o7sf@4'祹y^-**vQl$&F_bd۹3wa;;ֶ[d(b144+WףSرVTTP<}Z$0u.Vy<33pі-ML>/a0\ k2`'!299WYsiQQ9pr21l֌UVV#޼\rt4U-|K--֗|<5eQOOʾ]]={amOnL$PWR[^,v푯/3MWWk߾k*ewz n/ZO~-d- YFrr\̨ʾMWyyXܺVRZWWj@O}hx11o).(KfP\\1|xGoΖ8{b\ʕoΠ}P_N6v tLri4ƍLM?v7>ujz~+,_v+W8{֭cd,:ȯ$Z@`7i!ddDi oDbVVV'&:tbnvq1wv6]\[/ڻp!{{nжkߐG|z\7ymFa/Fi۶c}h4ZT+B vӿOPB++Ϗ %<|pn+(bm( suu,-[Q-}b(]$JOOL̖l@`_ ..=m E d_'O !D*K*m>JCAU5o1C|M|$q4J-O6`552T>vlg&m;cƁsÆu 頯UZ}}m/5@9:11[Y{U`[k=|e˥96o[p&\&.N@WTT>s~uj~NFM66>z+V Iawf$&fuB8~>.3(6f)]3w4a_رcL^u+֭b[vh?m];[CC3BHDŋ+ݝRY֨o¿H#tut~؂oN?ztnT9W,)**ws3yr!C7ocS ?C֎Qw_~}LmǏ3jx7Et(ԩ]]-GG=9&++09wVS#cl''3''SML =`0.`޼_v 7 v6Oʪհa uc L&jYttbm? H$y[\V( =~мy=w/g3gNBDPYZ ]4&l19mP3ZJx"DD:ID7Dzz-غZa6m~ou&Flc=fTQ ;v͟xz5⫡47o1gN SQQOGn߶{ߡA֭ss_u,U7pȷH'OǧDi ُ+o ii=H%"B׌5rM8>߂3Ǥ.Pw۶]Y:vlMIo^z%G?ڼҾ}㼽umۅ%7hsgrȑ/(ǧzx(o/YDTԝNZ/Yҗ5)3[h>]$JuIII@`inb1!IުUgNNxw6ɓuRJh??Ǎa͛O <}ziӺQC|cc%WJnxLqwޝYఫ0krŅ Iz6m,BC}{n"KJ*ߢ}{-J$y YIIU6[ϷpL86oj#6V2thĜ9'v*'ŗ/Ϧ* =;Ҳq]fML&{2w}&3UAAܬ׬_ݺ6o^Çw5k]ݦT˾N=~5HsgP{so@@xyz"#=z@'$Ø1-ZhS2 Yobb\Pz| S--V~~rojj^BB'e29Ű5-ݭ u/3G;A9'OG"YѬUTYY7d2ɓӴXTǁ/"۶ށɤ/\͘1_x L`\h19o^`)P/FF^駣F,Z[h3&F>l:foo,؆t̬Lff޽7V?p?E?|LEj:v>oޡ a|??Yt:!7{s{ih0_>e}';;;v]d955r;;#&QS#ͻtqj$-Zh/Yg@yn?wn`˖T>k֟QQ-Oom`+%XqP`y='7n!$"bA1*~򿜜,ͪ}{;]ׄ s.]d !5߭3JPk ˗1#`#GNw۶=z?N;ķ{w޿ }7ώuB.W\y56V㙏iO2TQQ{も2&li[ooge&55ǏSRsSSRS󲲊 ch89rl4aa5];[B7l̖/Ou/g6nx77Ui!zO#^gf6}˖zQcu+m֑~~Tǡ&t? A1Ss:MJNk߸YYEvl ie߶uLjPeII'N߶mKb ֑TRϮYtiQ΢BRR} >C|KCYUɾԣiB!O(=|mەի qhUv vVS#c|KɬvvTM,-EBBD/QHkfcc|K.ɬ! iw_۸1DE,))6sWeN;:{co J\B\NٸI6`g@/]ءC-aMU! &TǡL~~ɋ.. e_=^z֓XH.)T@ZW_PTg׭^z!^TgQ!Urv6={~dVWBڴذahXX޽׷o zM܍1:c܂!Ubqr͗-;b1̔C;thmaђbp&ʶRI디gI~jjD~}Laa!D__]\,)nTxM._ܫ;Yakktt)F~uhn¢6lJu:LNm=fK2}XXT^oƯ^efGHGQJIIggs@#kExoW(-Y|i~ի5KZЈ^}v+9s|Y~\C|KOًurWPl3?ȑ۶][.͛k97#P$JSvw숕l@`[+E5S~Tvu5!D931p\ k5WmfM?ׯYeeU::Tg:KǾ}=_DP6W8lvȔܹ||V̜0j7A:W#,88ۻw,JbqYVTwhpxQz(=>>l,ޅ)O;wԚ,~̺u1+V>#YTW8{^FFbqN'ԕ5CB:{](2f#GzNY[X[ I)-{7w>]LIImvٴh]l>é%?8!!["KM͋lvZb1lms9MG1Ǝq ]װa*:ƐYrw8f[5i TnhKU$:urؼҥ'-[󻫫pZ"x e_zTPPvڂ/N}|83g '߿yL*R6} ^AXdɉח622}Np]-XpxժӃ a5tu:wv%G}̙zl۵7~l}P_()߬H$<$ĉG eϷrM_kkL@uDD\^xXX t:-= } !aaA׮=:uѣS0uU}BTK֘9}=,8ҧo={.\Y s5N=f@,Ӎ PJJ^_86ѵk$<&jչ3w@OO[mm ʕgk+O5k$:jNjx{ @U}PTTNaC\ݦEfXШdsǭA:·+:ſrMOrig6qs2V ! jM}Plx.9rwɒ~~TR?; IDAT 4qTHr3LPPL2\,QNOҪ>>ZlNu@PQQnݹQ:ek˗\4}uRʮ]q] >!$7ʾEC9`gEF^9rQCz5*IW @/E􄄬ݻl=_s;Լgn|gj)A6pr2st4rMͬ Q5MܹĈ=zu?/:ŇL̙3f8vl*F²-54\u˾--̙_nŊSCFKZZ:ڐJfuBiKu"hZY&;}>MFFalD-.02_o.6 > "rEETu{9sǍBuRTT~ ki1W8E4`ii/ڴ: |2cG'ׯ<1>&&Tcl~P[P!J,ΉOW4ol& Ҳe+gR<'D'䥦8`ݺLb1lm| .ׄ1-lzT.VÜ?elGua2k 5v]5ʛ8ɞ=+fkMe29qaDĈeĉ~'kj>**ǎyVΝ\''3XG+_"J.^L}ռf۶֓'w|z"+**߲ĉ] 1q\;u*Z"+Lnx,54S;!&niɓT/djYz-5jWOvv6:G14ԍ{Dul6aߊ'\>YbSS}eQ'LJsv][tTԝEz>iw|Y>|xdffaT$>ߒ8(11jgh(_QQ;OEXIBBM>}<|}9^^,uњT+?~WHHEzSbEE׮=ĈKC|A:]}a0ffrϟ>x)Diݨz@`bX,kR\\'䧦%$d>|f -ؘ@-(-4tމh['##KNf8~ǶlAu4yy%t:FQٗb1BC}{t]ȑ۽-׺1չTNffappT*?ztqT\HIy6x $ jHvrիII4q OO[PvᄒhQoMsѿti?P!wwP_,ǏO];;7PꌆsY3uzӪUJL˴44+V2dKHHGoo'{վ-!Nr|2 ~ݺ>Ӝ9=7I%'? `-ӧU<9AI*wJ+)7o~]mooܹ3jEu:Fkժ3^TUa!Mm{n8sgD2|?LMNmԺ}7rES>6zfjz[g Lt6\nLC{e^&?~<>>]$J۽'Lr⯷C˖?l}PvԼg))ΟOzbbhlxf*PS2OotqĮsݓ[-BQ^^g:w |ݴH^^>N}Աcw[̩S 0Pԋ{4fﮮ۷U %&07p?(@U[t)%'e;^w\KVTh9rgӦḌJii/ [l2lnDD\NL9wn}\\,ʪ^`Fhɒ>Ӧ qw_6cv:ZR^rMBB:BEt(=>>c @`˱2C4oٶu۶|aSR%%妤<|9e۶+552--9gbhid_l„=w<ѳ+q>rJ/B-rθoLu(UeeUʲ/e_BI }3ӧ矢K5S&Ov{{c e_hBRyRRNl$:Z|Sחe iٲmXSs99/ lee55'O^}vl?eF@gҤncv9{-yzچoSfl 7BHii"QH>j)')X|\@}.]oJ'O'$dI$I EE6[Ϸ-|KsMY||qX,ƱcS]\usvJSS|׮UO!^^^1!DYe02D_Xwժ^aaQݻ>ӬY_7WQ>V O,̨NME#?g @(J._N)-6ᄆvkFu:'/&<8٥￱Uk(?u>s֭Ǐk_b8;=xտ;@bʆH}{ĉ{,,Zt6cS~B^~0;>>]$J?W\\n- vݗp`2.\{K~~qBB{ă5k 6înm4 CPld.]ׯnBDOYR,+:ǚ26So{쟲/NS(xܬNu{'Oޟ7g+Bf͹5k 4qCbbR }qz<.R ?|ݽ;Q:lΝ4qCne1^-$7][^w/ٙj4,S@QV>-ؾ=v (7EKQY3 g$"ɓrE[~NSnݡ}6_+/ <%%)) I^BB֞=׫,HY-\\,,!VΜyه}'>=@GZ*WTMW[[c4O?=T_^^1Pairy#)BtڀݻV>7cƁ;-nEu%g3*oӖ8ꡰ,?SvPC&߻qbʥKf鴶mm 庹Yb8uݻgL:PF6nܮ²ǿk4~wXݝajuFFer66KᇯSe˥;bus2[vTGS M6m,ƌ%<}Z ߸ȑkFX WW콼==mut`ҹj|J,11G,IL9{aYYA3rv6sq1wqpq170CcwUUIkRvTǩ "ʩ BB:nvuݺ5kSC~~1|K5%} ̛o_~h]z؝nHu!BͨMʾ?/t)ҥ+W$VV~~}'A_!Ljՙoq-S(fyV_MlEu/UWC|"+f<`ggvhzzVV$$dyxPVhΞ}u^6cdb?ll ml $<^z(ʕ~@[6do /NHNHJH޻FFF!!S-ܬt*K.Wlri^^734l$^ !D&S/Ř1#`?ƏP>$7Դ ]~>cSt o3fȆJ|Y>|xdffaT$$9l>^1AAԒL&sbb11Ifkh0ɓppF@ǭO v :Po곇޾}T۶TgLu>];wݽqtkggdbc},䖐yuƌW>cHH}6&ƺ/!޽ (=6VMBHleS'%f B!Ofaaw#XX-]]- -03hrs_MO$J;iSdBnj߾7_ ?1,!E wF8ٷF03 _/,Yr/h^ffGHGQG$%x e_P'e7n<GGKJ^[[p&MT';@Y6:$!Ybqs+wBuOVOC|ߕWrxux S'kMOuoaЙ3ڻƯ^X>wB>W݌]ڱjuHO@`')|{_t@MV.Yr|߾CzSomm =bTʾ@-QUvvEKt?ϛ9қTˉqqƌrѺut>y}!K\I9>ʕ!]:5o!꧸bӦw16Ƥ&qv͘@u`C|urʉwV}k;~ //{ =…_0h6m,BC}{nb1N7׬-Uǧ߼ƍ'ǎݫz{;x{s:uj]OOzxشjռ>|+WR`MtϞovu:N}Q/ձ`'N:w3:˗eeUt\'I(y{;ltqw_[/Pԩ' t]v^}gR\Mb5/٭[i/&]QFNss2:| 鴱cP٫#Y[\Op%C|RYY3o^T^n pzbee`ccxr ʾ:&B^BBVdՙ3,_~2$Ø1-ZhSN=h99B^sObc%ܒNN⯗N}-{[\\.{#?ov6-[ +)\؁\-׸g!LZ \6:2…P#+d˾f4f_v z7q뜿stxΜ@-7l_}=22v˖};KTGS'͚ix{s9f}]QQ}ӫW%ȫ43r;Mz|jND! d%$dsRfkkfnfݦ9@t)VWK#"FJuzWS#%hh܋b1BC}W>;}zw=fTǁeghffw[ \.6%ll #^H?O7e*?U(k֜[&z޼IQGŹNNhKCCRhRSΟGGyJݭLhz@riCCa:R(SS#3f{IIɓߩΕZU7_Z Du{w^dBLlGލNBC}BԏLJC),,~r ƍX@`e_ߋ.l}PW,޿~ի bnnnmgXPJJ*.=o͞=]WߪU6_]-#XZ :Ú53>4ԗ,𶬬"ccڵdMpBg>|wɒ>]:Q=RYFE>}RG9<9)iQ^}itg^tۥ#}4V?n]*6G:~|*M}UEP̙󗽽&5<'͐^.$EF^1"31Ӏ:30 r r#痈Diok\m[k__Nm0171pQ_,D Yݨj9: vacTXLxΜCRl۶=zpjjdDm'Btt4icGܘ1>T-ńҲU4Z.BX&ucŊS!![Bޒ%}TjkEEر;o|sg#qԞBHN׃ д4«W%11+WRRE߾B-N4zKpp0#C;vᄒyp''32wEEݹ~ɓӘL:YsD>N yB!mۮE˙;ӲeWOl=eWP=lp~ٲl7ۡKG6[R'EM [ |a@#U4oޡS c-NԠj!jv(ݻ_ۛCuYYE-kd0h2<*Դņ C̟K&u<_.|Y>|xdffÓ|K4 Ghd2;Ocbbc% Y:9,]W(tV0͈;NW2%47Y˭ᏮC|U^^lɡC;YQt2m }U/Ԧņ C‚}{쯿^mn Fst4ut4 JdI]{4g_2''.][2t.ׄ5 @)-LN΍OҷllI&ngg[vl<$w[򴱱fU׌ 5v4,+H(t}N+MzbbߵڪU= 0OffappT*?ztI8N9:)4(}?tBҕ+[  z5dcT'۷MVffah莀S2]6zTKB!:EuP?l̙_wmۮv wVɤ{xX{xX&>>UIldӦ͚ikg y \I!$?X$JN_U%rt4[wwkȧ2 IDATCCjΝٳ|ԩɓ5Q]][IFw1;@YX}N&li˖up`7|glޞ=6|*))֨ysM@ӂ/ԍGcb%޽`;t5nݜml NqS(+9ry^C|ߕQuyzj՜,uIGG{(gk\3$Cp׵k"#d6jwXTk$X>>!$3KׯY줝Q<@`d8FJOzߢg͚mԢVJ&Xq*0aCu\4iOQQٙ335Өw-^|ҲȑT{|>n./DӔmT8g׮k ^ACC}U 8|xǚY||ŋщ[\s p҅L:k嚄t V&'ǧD[\^$I3-;OO[6NK动ۋc ߿zLul;(; M.h?wnV8uyԩ' t]v? 8gĈNT&e_d_W=R}ߟti_//{7Z~֭#XիQQMM[w]̙{mIy::'O>3Ɨ,xV ᇯwᄊcGܶmWzr8)ѱc[ϟiAty){ !уofVIWWK &M" "=޽w38v^ME mwwmm<=mݭ1 ?3,,*11gNf}|J=fT}z3%煮ZZ,Vt}?ɤtpYiW?mu^V>ԹW*rs_a/4}͚5_x'3fXvmQg-J{:>Ef͸yU}5qdo{0"HbŁPAZ֭u+Y,ZU NPA S2q?/? C.$?^ s>ךɬ쏭tX3;w]]c`ٲ""~&:+ҏ5kҖ!49 תoGTȣG+ϙuu͏?ѣV h&Є9mmԢW ߿H"aTQǧN0+..&:8LV}bU/Xc޻w?zk0M]n"Y Ȯ]w2;~&L8didS!g$$4F=e2覦Ϟ! 2njJSF>6YmYx}99呑YRR..fAAǍVW':"b]z n|^\\bŊ_Nmmi 5.U(L8sYNUEoGGd c 8RD|#*||f*(HO2lʔal6'90"uHH*UÒN7dX$%vvvv  TVֿ~.-}BBAXXBk+KAAjP}:݈N77 :2@/_ɉ H( ?XÇ55X(:eʰ7׮c FFuDBȾAF mB%3DMM*}A/xhia223*+T<<~uH>^aMtqw5~JOO~"WW׼o \ sq*_rF/CN?!*t֭SU7n$;POOeXk/FBR!aa *IH(HK{dXN77rp0ׇop!XAEE}9zaFFɐ!DgH~~ȑ(6}W|<&P!Pllijj(NK+NL,8qqppwSUUnPQ%:(ar'Y]EEmCCzlj$cT TLv^^O?&:GP 22 $\\~}ָqCġw&7o3AAKKՕzr< ttV_TTzZҙ31ZZJ&м [/ 22!)*NH=nlooDY[ pOeeN7V쓖輩(? j'b@/ 99L&J @A/ ^8<#8::֭o+UUF#GjA˫q#9 3q޿Bt.Y2zɒ99呑o94~Vrz{#R_ߒ[o߽f9Aktn(Ct^?ꛚT7..f22QQbr*(P8E16CT$)3DJJX @aD bc6mgsIn-}z~VSfаj*###iii33-[|JzSRcEwՇDAQ4//s +WP^RSS;ЇWccի*//ooooX:344 &5 ǎTԩDO! ?':/ǾhHšss͕+=cb?~vlǏN=Bش|!+uJ33?^yyN[[orw߽lиr!/-Eq:NEiiiggv]vGAE.;IIӧ9DwUj~MH$Qٗg q999p]23K,,dx(maDGg޿Q_Bj;yxXhzDG|KݸqCOO/;;{ٲe?~NCw vlvڞ7+W֭[KoR$)S)((1b5 .@>z:NPvmlliӦHN_xaddf ơClmmӕ>LU{2?::ʕEbx2 q䓕+IKKcW؁@GssMssϕ+=އFD9cd>mԩ>Dkk;!RQQTwv VW37>pP=G} D>88͛7] `+`$1-/+K9;0JTt D˗9U/Wiiŋ&6@$3J@L% *+Ms'->>E#L7l7ΊBQ$:nݺu=[[[A> 1͜ t`ԭ[fv$: /ǐ7X4aäw.Zg4S $ Eqġ'Ede$$?{6vǎp2Ա7Ӎ\]JJ2D l} }g RUUѹv]=ly٥PiG h&b*7hKOA}}F 8geMdCt DjSݲcG~A//  t ǏopA722rذa222ZZZK?bmٲE___]]= ӧOrȑ#njcaa>Eы/}?UZZZxNo׾N\G&kk| -\xwCBN|H[{񚀀WZ-6ΠA<<<[XXȝ۾x]]w}W\\ Heeekeej*ncddt)7l`eeA3gԄ R]]>}d2q p8  :ydYYٙ3gdrCCC"}ASNq{Su AϴǪKCMM9.8UUQQAA'_ υ<}[g}Þxv Z______RR?~][n|<WZ-XyN!J~*4}K\ $o_ǎd<ۆ]?{P񵟟ѣ߾}fmmC\]W._gۄݻiꚉP k|-,~]44**It.=}vkkktEZ[[lӧOHy^?077y&wbVVVx2ǓIOOB8qX,Çq0a®]p񣄄ľ}jjj8N}}=n_N OܺJOoE?Wkط};=iF"222o޼CkNow]ewo8+ݷﮓS)"w rr##S#"^3ʲG/ #""6nܸe˖5k̙3c3III744 6q_gΜtQ7nԬgկ^:~x+.,,NMM Ff߿+V/mg7_zEWWùvǏ,Xǎ+an;EN/ ^n0GU/\.pudff7;;o\wʹ O81qDtqnٳg_~=<<ήQ _~ݾT 䂂?! ѣ[Xh: Џu~ު>oPU[۷|iBg^^]\~;p ݻj} 37w:uj^zv47׌Μ?Fwk\v-aDÞK^Gpwi&zzz](##3L`+HL&[__+++ "޼)37:DB9qj=-SRRqb޵5 D"s[k]Wٝ(3R5P @_ jll%:@q8xBB~ppF Kpwukib={|<-Zz۷ݻyfn`9E{{ۛh`s EEFݾR\\CtG}Ǹ๷ptu-Ǐ׎O;cӧc>~l$:z{ڔmUNNUaÇosr Zbhh\NN9܅Þt=CdK.,((x𡿿@@AxAAA vA==w fZ#'g/] W]]Ç{hAMRBBwٲe7neNgP֭&M:Ht b/_ݸ-_wlx˷h~֛3u,k֭4MZZpڵ83L999n?~|pqeժUڊgϮq~;vlǍr8k8 H n}\-~MLL$%%-,,n߾1Ϲm5wӧO-]Ğ?aooooo >7It\뮟>p۷չ V\imm-##cee5RSzzz~~~s[eeeUUՅ 666v 5448ڻwwXok~}=z{ڳKW~6֍oO?ϽUϝ[ןOAaai#X,vLLҥ&&k V -1199ndZKmS@@ѣ^|+oq HX}o}8y1={KIIoذceqg rE%x fs #"^TUS^^ClT%DիW}}}EL݆  /^3333A^y7tPoܸBl*OLΑ#wJDٳ۷xAKK,||ACP k0@׷ܻѣl99)Koo{3#X,NVVIBBAbbg55,-tc77Taaa>B N4m?V +*p>Sx\bǎ7ovbYFFر>]gfF4kٲDc7PΒ1Def/2Twey? zQWBj: ZZZJKK˗/𐖖~[XXmڴiѼ,$._~YV駟FD8yvIt&//mm_^^_ӦTOd2Fhzn`'&wc%$HCFFJJ2D p'JKmm N_,-ZKJjDl/rr$$Hj]ga 7 D_ff)Xb_JK7": `jnn{,7""޽6;;åKL8R^|9mڴŋ~LYiԩUUU}H~bB`2G͉矴V5R(DG>9rǏ! 'Of"L&qFReer/ر?طϗ, xB ط[LyIK\4y̙tc EAƄ˗_33&:h.k((HUeAtSNjE"a+:# a0*.t':kP @_(au^%^@|ɓ7nkkn)S =pL{]]e /]*16V':@HH<<<<**""R/_~Gjz{uPS#:`?RV7z8kA[_*JHOH( KhkcQ( t1w_ssU;2 CT A۷D;99fy0}h-okcYY5(ƏrjByy-  wLϗ eq1csuQQ_}Ot!5sc:}D薖ڵcψNCx>ZruRinnKO/NL,alt_{{#:h]E de":H?25A@549Pb_ 22J$%ɦDb }裑#UTd/\xzxǏwx7hym)##It4|?iedFYXh Fd cM8-_>nٲ?4LMF۸+**#44nѢ弼͞`i);HZZN7Ӎ,bqJbc ݭkQWѧӍ\]ֺ0yS&;5 Sbx08Ujn)w !ž$y<3gb, {ڦO0|Y&D{ s$&`TVHFM 'M:DXXhenc}|"ԦLv8@tX4eeSVи3gbh43Ϙa,Kt@!1n%7! 1GR66nnT{{a ilNѿttL6&=XEEV[[\ 8++Sqžݼy.G>|9~7TW|~F}|ǏA/ A999}RT&,ֿr8W))8 GNMMBi_d 8߿ۂG>2DyD ˗]ҥcD~#.S3m`ֱX#"pПt)|RJapa${nFdy+&G1 Gc,HeI#dp9GRZd$%\kםqg7I$耂^fs* bc'N<dkk@ƒp;p׉NA& ))WX涢jss->Sii)q8xyy YEFFIw"a-3rogۄPVVqD;55 ?m hױEё#"/c7 N5k͟*%gNNN_$u#ïLFJFG30 yo/H"fD;Cj3+X k]0',%j5eMl)IsaJc׹WVCܳ+d0msSjsRhqPd2qJ EP H7" p2j*Y:P:ݘN7޴i{ׯ'͟BQ1cD55)*e$$_KKKZ[nnT:x ,_hm%jiktl6F_+N::J~b_IO/n.{ބm6>~l}PU Z]]0<,inn{,3lΈ3g7n<˫sUݵ0A ߶mF7kI6} ;u#LfsVV܌LƔe[XgE̜is L9E֯H&g׏fwUU=#$&M"ka`6g)L1x?"۷n K(.M EE OL,-u\]t RV]m/Kܠ'\yф8~ŒeDDOZk+`Fa`o#L&Q`3oޔTM c;a( Ozaed5oo+I$ E"a8bu[K&caa?jk(ȑ$&l`c?hO^?}zb\ٳg'O>fsl6Q`T?ss-:A7oʺ2:/ww %ʕ?5w]ŋ<6}׉Fho0l͓nmm,A8$;4/da>{¿Ε_o |%2K/^w6B(zyph*-ɛ3gbdZwS''99޽wH~hjj$:(xFB(<Kzzjw 0 ~6R++mSžF޻jUXH|I@ʊɉH{7 5 z_KjJIIt\Ǟ$12`/xVyy){15p޵ΤI6PE'44G24\4as;_GKM6ss32a3lǏ?~n݄:<AnwE%jjfz__TTdއu뭱c\]D J3f 1c8 o<:~hzNN#FF۷_qpRq{W]YYogg@tAPR"#xoI$ F",3.Ăb_@YY񹾾'칻v޽6;;õk'LujwWYAg,?~?%&ҵL[#O~'3#\K;;q=x0z{Yϫ+559++A>|hKH(HL,Xnᯫ+N7rp0_Jvvݻ8I4$'ZYv RR))!:X`299?C Cl()+q++(ăb_ח^PPa 559O!D|^[^=ˆ;(6-77 Rkm+#Ç$LL4 pbs$:@5oKhh\ppdH|A`2={k`d7g;rG[-[n8(>7m-<&8<9gK2Ӎbbe-g\|0 G-X:u-w+@hz4ƍ^QQll>{ìYo{odd* A"al6tGId<J%:HJL6WPjiafe.^caw䏕+EF޶-Dg}ʊ IJ*03_?ql!1$): Ǒw-jI6H|cQPPem˳6..f**m񚠠 O4fBQ\d…͟@qG8@ DVfg9pϞwrv~{뿅 cJII KQ%% 8+6TsNm^9Dp$pg2wL&ΰf (, QDA~5qP==?7f?okk@t"DQzvJ^^4/t:(+ĭͭ)ͭji)Q[[__Ji!<<%8xTn񋴴oct1c,LAAեK//]ohhX؆iRW/-bq!0  HmmsqqrX,G عs& uRP޳gxښ5W]\vn0ߩ%$HǷo+\I8zѾ}Ǝ{Íz 0kOߴ+<<8&&#|} DH(ߢ길/nL>v졌F#F:; G&cD̙*?5#a(Lp8,)%%At)!lFtط_%%P(::<*DBl("(+̌OS]l:oܽX@(N4k>}j.)͛7oʸr)EssMssM*baef@D<u-22Dg) {klΣG٧O<{K(9Ο1k攖~**޴醲۷k{wСz]p [X1[\rvʏ?^|77>doٱ#1c,wTJZozuRMi ;ii^yyaa q--mP^{"󼊊Z9A&ffg .M&0a FE}}˝;}y~zLzN\3~]]],l޼RRNٙ31GGSSkhy8y1 ٳDL0FO@0IN.\bmmޓ& %:ҧOMљ?Ζ;bqJJjrnuoNNy^^KHԹhzT R1dɅׇ:;{6v˖[&: !!!̙{}}up,5!!ߎ?oknpw=eʰ}ܶԉ-V󪪪^M8yi鿵HaƭҾ~=IR4y@7*UP"[ˈa699RC0;,KtjS&LEp^ț9XZ55}@WPP[D/vv=<=w33 6lkKM@/غ}{xhhرV6CK+uugDF~ R'M:iP[޲V(STսhGkڴ#JJ2g. :hp)S83<]xյ9StRRD܊#w=xk oHK׮-qr20+V\۸q6ϟ>A8o 3n_(.qq*m>c9% OkPtcWW2/'O>9yQjvwӿlZ1~,xFFXkz5q͚ NIIr-/\xow x0k/{vk\uqٹbEFAM iia2""RIc9#G;~_Dt7o&c:ucsEE|Jf?i˗_~plߏY퍢W߹z^> bJuu~x1?>s+ AQW_d<gw.p#0MF tc8YY%~7m20Pb6`SZDϟZ[[+wpC_%'J_A0 q" H::P @㨨UGs7<͉H{7ikk~5F]]KaaU{u7eUU(*PssM//MR;.04Tsv6#:(TAz&(BXl++.kXײWA)JT 4B{^ٗEDĐ .?0N2gœ9x|[N^YGI[[wN)_/ 3!LcfvfRAg_Ф*ǃn8{9p7T*-58$$#88 ر~:4lG&S++襽޽u KQQTMM~:#H`0T3~qp0B;U˖Kc T*->36**G\\_֮5v.+-mfȢ3y??O.m}/XݽǾ}lb.Ⱥ/ Nw/;ݰtO.0//^ff Wz5r2kM"ޓVJ/IҒ0cc T;#W]ڭ&vv-(o`vf!#2q"ƣ%-BgbNN*:ڑ`ޒMM)?@"Q]Ri۶Yn`g`}5ϟ>Z[ۂHX1]AA\0ֶ5B9XK$tw9zXY-\xEQQh/z4[7ii!gϒ>n65Uuq1YͶ+ sj_Hݻ׷hi>~,./ϘByP iks'h~~ޝ;mMG`Kٕii_TT xƏܪA襽jj \GɩmLes/ n!9}|xx&x8zĉNN3@_jV4/z i_yǏ|}?t͛v UPxz3))AC Mqq55-&M1CThjJqr¾ {7ͷ'2浶v>Y'ɐ3ha[Vuv)/k>'̙Wyyg/u@/,GNۼr͚Y/i~~ɟ?IK ͟ck3ںսDbMFFY]] Sc0jjVjiICo$?)0&aK.9{ggyyXy XϞmglm}d;=}|vq^]HhSUTE;kϞ[2myRP,vn?}:vDP8xpfÙ>88mǕG;Ls3"hUWvǏ'L޸q8h`$**?eeU AA D5D⿽{ ji4{XYqq0Nut;p`9YƝӧ_yyᣢ((e̬x8! #Dzekך2~}Xjk{59[[2{yww[..?fާYY6Y-b**=#779#F!(ŦkkKYcb!ہJKx"Oom2c2Tf;"%hvlz77/^|G;{JK+[JtaoOee?`_ӓ;uj9A(55uq8 8 d2UEKX1,cB=mۜm栝gμɏ؇vtۻw32N Vh(ի(@0C'O.srv}Z[}|<Դ,\ݼ@P +""ի<..N-{h ƴ/5yy5Dbmo/S^^XCCJMMBMMBCCJAA.e-^|UAA SeK\;qbuhgcJJ||>Mjk?_Lu/館JxzFEMsq1YjФX`6d/++MWWqkԒX"OʪҒ0Ɗ&&*'O@; (ͭxMCC,c[jj% *9|9Xv''BBnZ=3AiE8ugE 0fHׯ3nߎ&\\L ᆌ%twxᙜj.Z (еu[599U {jk XQXXÝjfA;uBݻ2fhB޽OnWV6YZ_Fch4ǃde]ROOnVwbWW%z7[hiIO"(**bk֘Z56QޓVJ/̬Ԕ0昙3: ϟWPp6tDPDDv|ac˖Tݻ†H$Ǘ:; s7o֭_\1JWdAAi;vxM(`IJ*|(!40q"]\L44Ʃ^rLL~HHzXXfw7@NʔhG4Hºꜜ꼼ꊊ&A44$%5444$$``:y2իDwNNh2l_WvCڞ=KfSSU 9MsFi%5eee%%nlQ=''//|nn5+anRde'<`q0ڡƻ xyM #m{;q"(>sD>y&&, X-%%;>|(ZzB "Ü%**g͚{"ΜyA(`jm N?6?uq1YP?d|PVN_Tt --}]{k23+IܜB+Coߋi{L>զC;xWR0oޥիgۢ垞AAi||Km8[UUP,f۶hUTU5yTkp-~Orʙ3Go]tEӦMrp0^,Ç֚ͦpt JKx"_ssdz_(lo˗Wdl(_xżܹZ.D;t)Ӥԣßݻ\Dɓ'^0δi_wF;žyBw";˒%כA_0JTZjjqHHFHHZ]]#ak`g D)*'ʉZ"&= A IDATS1q,VVMM`DFExx ^ Á}t A; hk Jkbb!4DQRr5Z˿XY]pu`BWQѴ_\qժǎ-eU-މƷv͟bJ}D׭3sr1i ]? )+Y[kJHLE; g 29*((-)}^a`plMf XqCNNj՝p+llu%A(M׷'$4)X1VWHhڹϯy*Fz冊hfPMDb 7?Z*6y%%1 F\MMӓۊvmDEѣ_d2Vo& mmiCz33ttdFuE^^qG ٭ˌ{!!>:ŕ*LXco/9""޽bmm5kLĜeeU>x kiϯ!*Ěʮ^..N! F`$0 UUqNq>qmWZ,_66ouމVNN3MD|'/ߨF\y=<|/רߟGDd9;> tG@`+V|(aZS0UIIO9s4¡6 v/ VVo^ ~aNc*,VY7~~>›[[k–ɂMoV۶y63vZZkךO8t_8+\WGo|+ 0q,Uz᯲IJYiP^ΐj` vTW "%%v6YQQ*}_OBI+%$B/`A6I+:ZNA}Jx,%5͙ʼnv4`*VV֘S[WSUZ@x1qMMiuu I )aa{.`p]ёx.^ u]X^55 :*_Jloo~;ɓ 2gu?n,V9kD+ O\**F/!+PPYj x̊{bҦN6$$ |Sii#O11]bbSfP0֚iC2h,,Λ: #:: }dGUMM~ho2J`mw?z žee/_~zX#''lk7<tyUsjAhho)*ϯ!*򜜪AXY F޾WEE m ug D&SWm۱׷'?zPQdfb`b#yZ欎Jlm \!!MX_qLx/ul# ]ccII$E^^ B}ʔhO?vhrr=v)5)]&ޣKЌ))vvM7{ .D;A/Nvv˗BC %% sjϟcjˍv4T$z3QMz6'((-**BZX_4oIЎ#]\\ƽ1 z| @i˖C˒/5kZ58+.7 =yr||p cfXpTܹ\ԩ.8h<3 b`ʔ..&V͌/Nܶ,(9}med\\LV;be׷%%ė/?޼vҤ ʢGeJ `4QS,) d/!᳚ďV"B T8 Ƽj2oj t UUFFfGGQ4y[[Ep6 (y]]$K.  ~Lmm HϯJ LTSTS`$Xmmh  >.^|5<|/ǰs^߹{}}?ɔs7n4>}ެy445uhi3 J[F{{OhTlv:Bo{=Z%% >>I>>JJ?}ɱtbh?'Ęnqqcc%cc \Lw cXBg{TSwxX>/[]g532,`8ocs ?--QQ9YvudѴPӓecJKM-  ؎O@; K[[wnn@(ήEq/+{/߽ˍVGV]Q%"bߔ)юH$Jxxw"OTT]jƪU3)㥧-\x%1]^E EEwݹӚɫ]o/(ޣvv4wy|ntUU9k#99x<16THPep89Xi90EV|3Aư7oe66--^vRZhbrٳ*?:offżyPPl0ϳwA@/`==7o߿ϭj77WTPVcB_oHHZ]]#akbtC h[PPKA^KP֬1ݻwY׷͝{q ۷עԴ$>|9g*\2z~ͻ*u{%vS}|5/\p@+?P&(hnydjh(365XGGff [[=T~O46 y18F[[Ƣh;wsU$EWΝ6[Xejj=jjLOXS#اggW\;$:`%K֖:s }wwr;:zq8j׼zyjii#wR&ev l)##DƽtN^!qqĕ+o]E;xG}SQQмy:s ZQD$ ݸWGGXO j_ރv._v-FFhg\CC߇Ǐ]]ׁLsiiV\ܷoVhe|TpQRR<$%<<;'YcjL˪mNēɔe 6oǺں UvzvDUCЅE|Xbk{-9 \0=ZZF#=?$ ).75=}}90(Dy輸n99aeSSUSS+_S j%%.)B#ho)*ϯ!*q/`L!WWXB6n|Rމϟr-Ya9g>Gǿ=<Qp[}$'y&+efV<~GnnN;;g ݻUUVV8PgԜJ<KLJ*RiZZv3f(]9v,0!72V54zuղehgAY@={]D;  %l0=^PP;{o44$ I߶1xZQžB&SSS z{ "f̚bj".ZgFUUsh(!$$=%XHhҢEX{P `M99Uٕ99UYY4M@OKKJSSZKKJSSJMMr8% cBBҷn}Q8s{-" +tmo a\NN+b|!+E̙gab d5PMt)8QZ%浶vܻSYdjbp!.5*moSSX p˖rsÇ::z>}*_::2W)]K^`/\@1W#ҎC [PPkdpghjJ16t|hh(!&AD ?|(% )+YZ 1˗P³g)%|66zp 2ZXXG$5BEZZiCC; X,e/+ {l_tvnA;º Xax=1>KN7OH}/3l Jʪ㉱䢞00gA7蓓Sem]?G,-lѢ+_Gu ^12R<~|)AGFF##kiTTX^]]Yf m؀۾ }75$9(98)D;>+)CZ[#"2_ʈ07W[Xw"]/jk[ ^[PPK$XY55 F\OO0/3fzt]98&NJG;X9 `Ŋ 3L|&qrNlj a777DB;@[>jkb989'Qh`b++N06VT͂XFӏ64g`0~Xy $h^ʕ+>}v * yoG)-mLN.JI)̾uF62R46V22R`YccbCB2Ihri{3`Tt˫%p)*b266ZXIp`kKL,dJ_Ad#Aj888Xh(+R0is|(qkv9s4񵱹o߼-[,Y00%% >>Iׯx1Vo۶9hCQ#3}!l<_N1իg1dQ0lDb- $33+3 ]J2(`[0GGѾ3[&yyayya#ASSSRSSK{{ɢSdز1BԠCC鋊NA;=ֶK{{KK:72RܰʪN.<ytB "yTZjjqHHFPЧv FbNk{Sю`+]]YYYYٕyy5]]ܜ**⚚RW֖ҒvR`]aa9s4'`Pee?UpܜW?~s ͹}޽6Y-B;Lzzx<rwP`pp^0L46V26VھA)=,=,#,""{nmmi]]9,VVGGZEEz hKBB2^ʨn`$֬1WVC;`̫m!kkrF Ip`vh+"#@;Z[;2]ykד/wQE.^|5[)*>Iff..& b0ArrjhJU;9ZcWLL^GGy?Q+}`X###xgsspKO/;xCUKI)A+j~~ͥKᦦg,+<ܐ螗w&(hɓ$XFƄL33U'O8w\3IOO_5k3*ϟ98F8p)SΜ9C&g8K,Е6 "'NJžܜW8O^&*HI r899R4nngϞ=˛IoGGɓϞ=?OGK Ag_ɡ**` BH!k˗#beX,VT5^x񱤤AVvܹڶ(E0֑:H%kRSK:8ed0իga“N lwR+''w!vvvϚ5AaaaA) Hv횁AffO'744 "((x]B[[畔Ȩ(.IG~dӔ6rrrdpR۷[>bi vopq10^ݼ,zpz/+W\tƍUUN?#02wXRDҌ?)C`c!ƱQ2U ;+SMM lDy{/kB8;w l۶ѣ:::Ν;ܷh2El}_*+33+>pR Sut^𩸸^FFh<[[]##şoo?H$JQQ=PN T噙$.EEQ,VfϞX /IEGuwllZ233sss߼ycccC$1 ||||||{IH컨(iii +W?~|dTjcc#8qBTT۷} f޼y^^^&qeLSV())Ȳe37""?m,R^^O҉AQQٗ.40G;PDO\v{b5봢 ;wܼ622T_sRKshϓ'+3ڝ\sy%%7KB9+{IJ碣TseN87s|}}gϞmmmspplٲo۷rrrqqq^痔W$̜9ʌKhnn^nИ6mڅ Sz{{9r_I&8p{ڇ D:p؁H$R>|H϶tҽ{g/)2e}߼y"$$tپ7!((HMMMLLlΝ===>{++k~usrrljhg>o,ًvjAu_,?9mx0pG = QVVݺukggg~ ٌo0z|8s 6ЧlooOKKC̠bhhh;wNJSN?~}d2ѣrrrk֬inn暝]%Ŏ[_pTL/Ѡ0//Çv}MMMC A[i4WXQVVF  :tߝH$Ҡ_|YLL, RRR_Adŭ/^@ҹsĤ$cǎ .mxX={ΜyVRҀvRMLN|s{sZ!HCƭC02Q#3F1vGOl{b?gΜ7ﳣOGͷ f^ӧI \&ӎZ?Qe% 7 ooo---*o̷^ŀ: vrrjmmDѱΝ;7ᡥE 233g̘A~t;zO@&So܈bz{ɒ34Ɔls!AN:̷ӦMKЇ__$vq44DOϘ/zPRrԞ3NYs̙W7o=twVRr^{bؚ5.*;fͽ޼f f͗= 宔Ԟ .߾q)s-))F}AeT/@h=== %&&Aʢ?B_gHFWWWGFF/[GGǤIi4ʕ+o͎`>|طgڠhFP!}TTT}=ԕ+hyc[gMM˺uRR{koYKQǤ]磝hFoT $$d9C`r/cwn***6oabߔ"I݅u \&ӎZ82,!![ps۰o0ӧO}?^MM- >oNNNr?64IJ`hx>>޽7oʪC3GcAߟƱƐï^}SYټxFFuk,!I .26>t@o:Ў` W/RS䔫WddËCC>x}hA/8`A`nAh4c&7# ;;k֙ӧ_%' Q }n߻w/%BE=C&?>}u**JKK8߆ 'o]GGϟ OoDԔٝ?lhhwn2224Oһ!B$'$@Dɍj~}}͛-NlB;ˏ{/vsooA;pqrrhmghpdCkk[ЎH t4`#3+`~{o| f3&͙}6f99K斕{^|off&#jԯ?an3|C TII qzzӧE6׌r!!Hׯ ˖0jP jΝGݼyscc#G'O;99=}ܹsNNN)2w5"$'DYY{1K\ܭǎodHA'&)7nD`eUՃ%%wkk/_~޽/c֫Aɔjdw%K)+IJ7{;݋𡰻vL#Z");7 `mA?4>IG>|(Dw3sqq=M!rBBBuuuEEEttLss3FG---˖-Cț>oSSGXXXGG}] Lj*++L--#Gо2qKKٳˆDb@@iwwCh;w/))Ș1co A׳_vMLL,00:,,LII{WD_eAAArr#G}r-2f~6 WO✃í1288MK=ߟ׷ݸTNnߦMSRN4,7={wsƨﻵ 9gϞ?l6?Y3Mgg~d.vƷ#G(++EEEW:G7d111qqq//63īOю=b333333MMM7nHimV޾0'C{&KJjOYY#)#ˏ \ `KéTŋgϞMPh4Zoo/urr ?|0 bbb===Ct#h 4&~wc<`__; ?Npwpt5sIzEܾ3OYsԩǏbckjZBE"WI {͝<lbr C"Q;;**4|\QQWq7nDݸutȩS! UOZznQѵCrۼyܹs?CR<̠5@}dee,:uJPPPYY9((b_viӦ޺uILLD"Mz_2dע6=Z ?_><[sdϰ-׹?Ç<<</^oSĊݦ6 ?kQIIUîF7qVZ젠xf)}3g0&j?}ϼ䧨z\#%KB㫪^oܫfm;.?͝[v~~ٰ?{aX>IMMRqןf7o<>>O>cǎ{kBûŎI(7Cqq?MHHy3O(6.cTTkր[T?z$)ɩ))ͭż -<ݛ7w \h4?yRQQQY Z`{hohhPߎLxskW{2*d2T:l04 [,Ψ0łt7 "kqNgX "u:b0AFg0L&R|Ų|Fc0< A>MQz(syiơk3/^aWǷ7o({l^^E_$$ZiO?xԩpKzQ]poݺխ[z*jS$_ѣG_Q)@UR" "㋢ض 4xŅ׵kP׮A9&*'<7򜜲+WW #|}]lTF"7Xӽqq! q:ljϦ˔+sr+={Q*f+al6ͦ AX,`dS$V% WY}a6Kźv]SXXY{>瘼#Ft;Pq~4>dWVrˏ7Z)66…kO9._rqqĘEDEDsgwߝ8~LVdҥGdWa8χ"uvA !gㆡC;4ji4dnu*LK/ 49OO_%h4kTTkLTR"/(=|X]Is *}zc IDATBnpU+OW??Wנ >epu{yEϚ8;t|ΝL6ujw2ɮ̠ot ݻ7'{ӧOee4riiyaa[!kΟa_3Jyph,<'}NSgWzZZ0…ihߗcZyHW+rs+NS\\EdeBn@[@kf.͚0LYYw"B3qCFFѴi.-::dH@RM&s}ΩɌ'ܺo`AL>L?h..˫怓 +U* 4SBLH$B;'`2?.KO/sΝb}##[Ο74Y@FMhVc&ZW#TzQiިPhzFWq߄B.Ep<Ţl-Ţs,.bQH2|6IXD\e3teIú|mv3ckb+rD" [b1D"u&ѥX(D^ʕ/;o44z֬>zARP C0v[oرo݅rTTTe7bů7]T5of͈EbϗvNi`ALxx ٥<8=U'^`0t g7 7lyNr Og&$߼'5OLLۦ3z&NwwӧU &?_&bR)/+(%%e=yRVa0h"??WH0$?JDތ7rr A t2Whh-%8P"Z#J,P#F Q9Q" JB%DbDfft6& NmJ"ke  9 YU:f2]\u:[(Jf.dR]N+>=[6h,A `Y3b~x8*jʕq/Օ?~̬YQNݾ[CCM[a@!*<)lIv!Iܸ+7]^CmrA eIIYDW(vpJ(䆆5baʂBYjjnIIa6k#_~~.>>bDHS9@0L{NajjNFF*ڼGh ϙzxhVqBK4UtJ%T*NիT: jZA.hFVJ[{ E9\.h+\ÐHP.0|p\.S($dx,.d҄Bom7:z1PAQh"bӧ r)ϗB]|_Av- kנ3glޜbůWc -.c\\nj;/.^|/}ԩ..<ۺx1A_sPnȍݩ=zWܣG [JX,S_F'ғedż6}- E"J$撒ªʢʢKW :*}|գb__D؍Jwھ7;A m6yrψ.]8ZFR=]"ŋaZ&z1LKyu:c(Hx,es8LjM @r=pfko۵z.//֭v' M0rdؤI=.d2T\Up U*#ҳJ%PhLƏ?Nrݒ\2WxSǎz34 ?t?<OM Z·6ۺuB|ڕ6y}["4KED5AX,7>pم4z&ر h4*4"矷?.ĴYx@ttOPt_D'ࢢ⪢byQQ{Uˈ<"+zy||(%tرcǎkm6Fc?ifT7 ˗z2~flVLZYm6kfɤ652BX,bP, B BE٬g2# e(?¾b]@v9 K%6~=mqnd$̉>z4u׮i5sfV6 47zb2}DbXt&nhf٬XvXjWiX rd&V7Gh""ɦLIG_sréS#m~';xa\nν[Ir 4~s?(+FbS91Ba 1Je #7n%[99>>@8Qa7Naa50, ^pĝrF ||^^B__ww[ `(quo2y<6"Gn?[? vkINN.--% ;̬ܵa^o_~f[j%470}ђׯ:bP(hH g (/>z APNL9.6x`ۭA:u'r.[vtdҐlF|Ё/^|8&??wn_35ujɽqa-[Jf=jT8mQai4m۲P(bX,f3R}r6?(JJJJ䥥by {y ;1TAD{SSsoj\.3$'4Yhohh` p֜B%&.1}/ XJ8"V 9Le( Φ]6AVl4}HHǎ `[Le4Ο4=z-*ܭ[В%zhQ¿vsѢP(Ųt-<>^o0_8-Jٲep͖͗}X۵4KÏ?NHv- `0m~~:vۼy\dWrrwtU5n\#==dA4i._~ȩTJDD/[a [w3ʕC.im|z߾n^"3xڴRd92l dW並Ne {8եMWYyƍcƌ?ݺ}dټM-˾}3cbluu :MHsTگ_H\\ KNz{EuޫPheR)&bOgUYO \HPWHM@A#bMfdUVtjPGhG ߡ"_:P%DzTPk~E5B!G( 6:G'?;0LDfzhL1 W**NU*ŮCY<[ ` l>-r\]|E9֮[ `9GGz)*5مJL̜>}lR/ߦN]FDro5j[~~ؿ_5^FuAQ{L&NMCб߼ynQ7,͕*t:ѫWˉoݻps]Nc0hDGC_/^<`Μhg"4(}͚{;So??|xsiEviMܿ%G~KZ,3XxSb1N~8+s f#gދT7.=j6F3Jٳ%9.t8 if:n4IIYDy6}d2%$IH]V 8[\\`Ǟ6"rCC &+)*-UHXI\*=^SNg$p^^BK$Szy<^DTsљ* %'ߟ2eW>^^] I7u'a\b9sh`A#ìGcb:4gzodWd+99w_:p*7鑞}}h(ǎ\b~FRkҤSrUZZ^\ܷ֛ BRӖĪ{Jdp{L/ө#Gv$bb6G]H6w/EEU t+QQ:,^<Ц[,̙{ Aa_!%%;!!LZпȐ!. 8?BSZa B+bRB*ŤRLHuI)@zxDEuwG&zd~,#0#ƍ"""";tc$`0UUiruB%VbK14+rA^"9j9>"RDH[L"[c%,ftkHf3j8l6E98we?^еkмy}cbV_K  EYY_XfKffQJJŋW>XΝ n3uZiAv! Oģ7tmۻdbs٥~xݢY-ć Ց#wLT i̛ܾ,))S4LNOYϙ]MnnyϞϡP(t:ypW0ڭ\tɮŁ5kvX:.JٴiرdJKaa? xoJݩ FzOwA.dӭPo6޲t!wGh@`'ZҥG s ;u @g(t:\&DX.2DnQɤ9"+@Bg4, )HM(JMU(4\.3$ćv:P7iQcYknxh9M[[-.p@̬T[V֧[Y`l6:;9s*Ё ՙEm[3gor&,lVk1JhgEF~Tvvȑah4SԐӧ kWg4k2mZĉl_1UUKd'%eIwV!QQhܰa[;thfI1 IDATs6KI7; Jv-6g6[zq-[Ƈ6#"y>, \ _跿Rq"tùΘ{g!kڶ1F_ؾ/)U9+Wʕxh`|]y ׯҬj,vakoA=ùoMu3.i Ullm'))kʔ]s }PhΜw=Hd| FbTT**TeeXYV^J T+ʔ ƺ0vs{z |ww+Ņws8xh4?yRvF.}HjX]CCv6d͖JuUJMLdJUUAPwu<y<XyD#^hM0JpBaRcVĕJTrFk4+a2[ `(E9 E9|>[ `,b⋸b~:o^߹sɮ4%})ʀ~yZu`xڠR)t:m߾u&} IGܦPM&Ν jo+/b׮ɓ{N)RobbVZZJY_NC???f>db+|pܹϯDk|ْ%_ϙ=;zҁLJMٶ-̙{nS0cѣIX>Y i"ycUuY,?&S͌N hAJaNc͚RR>"7 ԙ޺55CliB]H#f6[zZ/Fz[棏zCqC}Aca_M嚤'?BttƊ eiB%bXyɔDJXYf..|770M#滹y<REFFQFFajj8nYmxGDEDY roeZ&SXW"D~kkW,6|lQ*r֚٭1LPhk̯rE(֨.l@Fg^b}@w_N^ ܜ̙3Ne6[j a0}.+S}T B ٵkmU?&~=+*T{^ڵ+`0yΜ zYY|QRR֙3rkm3j-Zؽ{ZȮV0 гg[']X,}ٟ͛wGvE6S{xqN &Oib޼_R?|k uy󢽼Dv.Dc|ON^F\lO}Yj8م8g}a\c4etȑa|3\^^EϞݧO+kiĈn. n j ZT* *k ́ hD hHg_*һwC; EONgPR)&beeXiS^*Ŭ[ 9BD^"A%>^"9]t~Ijj.-(h=BC}#"[xḡƋN*ŤRB5eeXI`xoנHG 9KߤB8n5AIJ MEd9\i_P!kl6bԘ)O?̵ۤɬ_r3t:)=&ly-ȑpa[&Ogo<[Yj>>-V}yLLߏMJ5YYDߛ7LZDDP!09[ԙLޗ~ k֌ F,'<2_~K@ ͎3*&׼¾q/K?(DQNllȐ!QQl٥̴Z}eYQ&SUT<.+S˳X A ^3ROOa`[ޝ;j)sE"nS}/7X52J\L&],H JMDrH5VVGD]ZڍxT8%GCLIv-Vd y'Wd2 Nݿڵ ^CSTFFOS'F>^}6lkN~ r# lܼ_wh>XVVq6lufc7-l67H5JPh||z7}zmju~ݗ!r&M1cFܢBu3g]ôDؐ޽[9S;O>Ν¿zB!))k䝻wO0ٵ !!}_Qchl~?n ɓ{N]@vQ9k&Mٳ,),9r5eO9eJ s={]WVڵ[~c#Ȯù NL\ ȥKً/dQdV:uETK1}[kgڑbt6$ėN>e4f }Aa_+1iiyIINW+0}!ݻ8T{FnfflHЈv|@˵eeXizOkhZQճֶ5R(4VZLYVUTJK2TQ^,/WJXEQe0hnnOOMJ$+yՕO&:VUizc5T 6a[g#^ww>[hԾ&q+o&`C3g˫HL\LP +>g,2`3zib[Vܷfر]΍5l2p`{'cz(&]̟ʕ'/kʔ}S&tNs=ثP{iKJ%>|xcZ$(ܽ{%?x?ng=qbw#˞23D][Y{nQn#,YuhR)?{pй9s{ٵ4b۷_Vmxuk/x>u]=fg.kKҝ:uܹ~:L"] ¾錩9Y ʔ!mze433t͛R)dCCDD5V/k4JuUJM̩RW^QD`kW`10O,~ݚYN@Дb F*R Li ŢqkR\"J$(Ո©U(J%Ph81GbV1L[.NllS}@`s345GomTMeQQi!]";sfO>+Wt_sʁϝݱcp\^<3.\xao>F7*jС,Hv!vRUiXk!MBBG2zlSkمㆣGosFw֜s;/8pgMs>(!`02ׇ m=*~ q8e˱S'`Сk+Vv*O_o&Wu}gvm-ZHUp']a_@ZKOT*`ϸÇwn6L8n}ڵ'ׯ礥:^.]tG ˯*Taꏪެv`#iqCiB*ňeeѦSLP>bbDfݝ)tu{z us8-DrxnnDo}A6lFQPȭ%n `[hÆ1cƄ] ;^p _OB4 =;j8[`0?~=x4<Mmuk&?~Oh4xiԓVoիߚ8;ٵ8C-]z? Fc-[Jh _KI( n3懀׍m:qժU'MAv-}UUϜwĝ LΝ:4j֭Ԝ(A66ZJ#k/=+j"5rLkE9ufB.1Bt%eeX~ڣzk^+B!h6#DǍĄ5k^;}pP$TϠ 6H#=jcHM׷kϗEFۼyQ]H)ȑŋAŋmM655g۶䤤mgώzζ…))?P*q~B֭c^c%*:uZ Zs9s~IM9~yolٯbY~.;w^<~hҤnzPh칼}DD~bE5!yy={11mɮ"boրL92e>ǍXj8ٵ4iiqq$$71t7ޢۧs#;pd^?`}HqqչsΝOQ{n2p`{p+ tozz`w $2Zy]]Y|}ɒ#Vaa/\ٷł1o^SRϝRo\HN& !!}Μ_՚Zw̽eˎLu2GSmKT ivM#h^3*nn ȯǭE_ re=ɮű$%eMСٽ{"FRzݺǏFv-ػnWuu;v.)7W/" @b6[n?u*ԩO  h7xphϞ-,MTHMMINIϗԶm}"##"#"a<)[M1L+k0LaRcsJ\XDQ6FQ@ 9(AQ@FQNB!G `h V U%%r⫼+)QHREyl~iyx^^BOOD"$:6K7Fb%1k"[VTn˵"rĘ51L[v8>􏄄k>q?][%-yA?r$e2&t:cjjŋIIY٥v11mH炙io|Dnd5kOzzArrA Ӯ]@]mW&y{۶Gz1wllEg kg8nqՒ%gMv-g̚'-mD]0<*j}TTkrZlIܾ­[8&ٵ4VEE߽{OS(l:?_7n| @"$˗:u711S*l7p`.]`O#oAD/b2J\xV*G1 0B7"0 5V㱪EB!X|0ϢPLU^J|YATQVV^&.sMy==QS=Fd:Ex4z+Hڭ1ŅHK] hxUUꈈ5˗vז.=l٠ߏ Jˈ7j]pgllHd]`EjYߴ#TGE2×_"Gq܃KO>6zt8l={o΋))̜gĈ0:bnvVǏ`A )mg#w&&.!g޼}R1{up9{6…p1jk&Mt ki>͛y.Swxロhrf%"QX1ZxSpg/]zaxpĉccCBC]MKߡC;BqѨ"W$z4ufḑOEj j4:\j( bp8 >ծ ]جH$ٌõf3l: i6[ -VV(DpYDƶDb $zW!2;~=ՕFv!&~5iRw퉢lk\y=tD~mg̘Cݿ_ҦMcQz{+V &rÇo>k~ڴH iJJ~(RPc8OcD] :d2Ur'\d2w߿б yTʕGW>),daaݻѣEm M~,?_&bR)VP@L+RXŢ{z }}]((f2]7:BR*N.WcV1L5P. ?dgl6a ,%qPsqṻ bHĵF{Qmwjʔ]t:uΩdϟwB{dj_W/uŊH-'LfvIIY.> 8cE\G}Ow:$DÇN:ۺÇ[j9deOrDıco@žH$@Ǐ?U=<=<:aS 0=866;&&;!374Tsr2E0f KK k>ͭ˫,*-+1 x(dE"@ b55 jaXeѕ$/,pL&NG+9L&Fc=,s8te]_f2l6p2D2Y0(6JD"8<~+v츟cӧ|55;7 \.ǎ\flVa&~=K-.UUU2ZSSwu.+kE̟!=$"n;t/L HC[Y.Z2n\8$jjNzq\irl㚚ӧ"9s'$loK/92D"ܺ+O.Xp12r-4e6mҥWLŋ @3"hнÇ[: }$,7..䰰4:mj=zt_ Fht QQcb^̥YJC~-i^%ͣјuu,l^ii]~~UQQmy9QWdxl6œ'$AEEQUجTۊ^55% |tݎ9kiO㔕 xy:o̙1hdr_̡R##3KJ-=<{?zCJ[ޮZu"8GL |UPP}\op8ٳw۠]de<0hӦQ:fm;~|֘1P6o߭Vy,^uS_?{8Y$̽{I˗_55sa ?_?-r0ʕjj._^a\\\ 7}_Tj_ܰa#FX[dtl*5=&&[yxX KN:Iwцf/%rhW]@f 6C7PUUQ14T54T35S54TQƼ]Oro-Z.ͺ7~q>c}  JK,=xCY3,?ԩv=ܽ{œ9C΂ _u|իg2o֡jW(YYR(U>zO=wyAYU͛w!3$"b-tlEFFʕrs+||mhr|:Y,^}=slã<|oha"QNNNFY(''K q8㔔8 xX^^VY*(8 LdvyÒ%33(*cЄkomW:9y2rG{L=[,}b\w|,?0l7<<8x5Dv{77uFv~TU^Nsu6m֭aExgk0XDb߿J77˕+= {SŔ)֬VڵMMISRcE͛w޸us3:~=~ᦑ_V^Nstܳq;cd͚kS^%%+b_ōˡRӟ=Kb=DG;`tk݉ӧ3޽[[}WWsWW [[}C-ﶴYWrM_K 5B% $[ϯ*(.,.(.(*Gуl`fjmfmhf` ߥ@l=l>Zܴ0o,D44ftV+gedbc&lgaby?::;" = BW<|xY~šCu{7ԩUnn+VPV߹siF77nY&Νe:,]Ǐk֌#G޿/7Z̍B:Tw'7/v]ێFcl=rdq"h4f߾'Olu1oY$ 'prjo$H0_ߛ6b>ڵ7 CC`˾!C%k~}Rqq,@دg@G yϞU(Y[:;ݽ )~n5Lw"BHL&*+d25dB[5rRZvvYvvZ׋"Mz LMMMT;D"p,hM0p l|m6drL+hlE`px<>޼v#iEEoYĨ/0TV[6ъ:fllvll6Q^NPrq1P u!C(vf<[PPMqXgw|̙< jju"ĉH*5Jw"q\.uB߃W6j(/u)SbY֧On-:ן&L8Z,'(hۡwxС&h?VYYvrp`~٬n~'()+,Z[XX]XX"juh޽51͆[y%v~hGa0pM7o= B3 ~~gW"F028} ,ÇM$}J=:k~ 7}:W(DBenFm R^Nsq?s͛GcE2de^}=-x"׵k&=̙wTw9s0cvk s8++(y7Ngܸc::'ga{o|?ٳ/Y$ rt=e-[`Ey{_NK+Z/I7nU˰lYϕO: }$011Oԩ+mbhŵϟ~+4rwKhN"wG$}TS[sU^^eIIH$уldѫF^ziEt$ѷhA0qe+o7#//˵8XYشd2奧S(##ך`s/<{O=.ǎ>=h2QVVZAA &p8 ##M"q8Y"Q@*)ed 2 h1+W^=##}#^ƌ9e޿GL0A|k**\y Nu9v۸iiEaa鉉RvvVNN66XgĒH$9/5T/ .?۷y7rqR\PP@ 2e1$=|;޶b3g:8 $%m@ѣᑑk հ"a m6f\'H3VU1>]%&n×W`twS^$%m'@;b_:ė/5YTjzTGPԯѶ#G4pՏ}xCr0bQ}0Uw[򪲳˲˲ JіZZ$SSmCC5SSm33mSSm--yW?4L\_ {퍇eee4PV]/*uk)A@͞2ԃ+ :}I{|Dd`c5 ƍ7O1ϒ%lm 7JK_n\SSeNllvXXZEEaFJqqauڰOHHtjU/@(Nf&&ZXX, GP55I׏=Db*8v]͈D!CP(V;v: ƾ|6l՞=,gK%kz;q׽]\̰>\uЭ wmeUQ2EYlnهDApEEϞ}|I$b9zy2hhXSY]VRR VޚZp Ѕ5,`29,׳|!BW l>_Hx<= [ ձixXVVZI /''K 5FܸRNNFI --:~GaOH.:H;۳ѩS/1n\?'x,-[n)& 8񄱱}}J 7dvv/ڼ՟UXXfMh|ŋY3zܻtXϕnn+VP7:TUZZwM2dǎ:X';eew,6,%>}--{`c^^犊j?r՟X0fL`p| ,J(yX]]1$dY߃O:֞|QQQ>F2γCnټ򬬲/_jD" gbef_*̍܆.'Y|`s8|81 IDATd~]_m1{o$--D!999Y%%yeeBcj 23?_`p71Y@HL,=Kv~tcf+'NDgXX,^:vl?q(9wvݫfzKS4Ptp W$M~.,l ,ΝՕ:8: EGR ހ&>֭wʼY))ùNy_?ý{'bDZu=#s`K^{w}יYsѣr0~=~[Tss1[c׮/_<} [<$|y!AP /*) ϠRrx<ba%VVxv--{ЙfH:Xk7\uܸp<&Bэo Ȗ-c&L׍z:)i|&L ; ,Xg;;P,'cE\nݭ}9/kh gȾw:سQTǰ5XWNN+Wnu:s߽qCP(V% 9wo{22RG@[WD~]hz̋#$d2QE yš&h4fVVYJJQvvYVVYjj͓U1565652367%~r| LNC,>Ngq.Y,.ڜbq9edǑH9"rh0##haEEyEE|+O IJ! tD"(*+(+*䔕hp. ϯ -D"wCB$AzvhhɓՌ[ԭk^8cƙfwcl^i1'N=]Uxl5r ?O1a۶N$ ϝv-H3gdrߓV~"/!׏_]A 4~͚Xc&>= XJN.=:00p"y6lIJl }t%%uNN{׭h Y;pgk)ӿvb}*Ƌ,ZBPh/l6Y%蚊ǧߍ22ReRRRtsߐLV $Eř?WByyY33BRWzB`2l6drLɩg_Y,u:G"D:VC6!Z(L&:` XY +(+*> O&H$I:_NNaϜ}D"wBB^;78?ܻtDdNNС& 8S(V/ddn}VVGE} ψHv[ x{@qoy0yۊNqr2:?>&8P(9sŮ0V E׮LVؽ{%։0iӿ yT*LI W9tޮ=‘#o/JK+㏀&cEy{_JI)Z'C=|!*jA@7u|̞=mc b_* O K. jBXQ(pT[Jx+*ee4Jx[«Q/!O̚5xp'|RVVVZTVFCGU FF@P_϶x¼M65ol>,:Aј55 <2Aר(uYI|Ք//^&tDMz5^B}Dqq9AA1Tj….豨߃Wr>];TjFllvjj0'b5bD==xq|̎=Z 3}$e„~~x- NH3gjkMUTTw|R4""+JXgޮ]KzfKw;}vC(QwA/{ĉ'.^'KـuD"}'cž ټo?PVFSqu52]yh-m^]񡪪b'n t xzZwT^NKI)JIR}AUA--\M~i„mуb08 XHqEPt:Y ayX LPQQPRSSDhj*)مT;99|xڄ yD"ƍ^4:vԢsKCeDz .Jw„3>׳ ݭ<<zPHLO鬧OWK\x1aƍJ?I[wc؉ѿM1\KMSǏuxϙ3tjO`eߒ%ú._~e˝gV[X:󅞞^]u9vXQLLԩ#"|KtmP ƙ7##3Y,bIX7Y oy9mEou5YJ^mmeMMR}Ԕڷ'y3jeeرv XY@[\RZQdrq8SSmkk>}u--uN s碏f08Mёo`ƬcVTWU1X,n㫈D9 %uu%UU55E--BӕݶCڵ7cccc7vO@$mp7^ Haas1׮pғ& \lxG4Pfqv¤~SRrPF; :Maagj/UU;߾nh}&(`H2Ǐ?:<7r*[[Cu/,7 ΦOlㆆjO:KZjBVmy呑k'%mTQQw,M:oH?ŋujXgiѣ7nyjA@w4wyu2бtGYYeaaCM(+ Ų;I$ Cv~[[UWYvm}ji &mtun ½{'GH PqpXrrս$&~Rz0uaWJJڎuMpL&?? y,u޼ 7o.:,gѢ¨7C6^tʕXg'"\y q3nj:  }@wdr􈈌z== ŊBrt4xdSeDܐ!&(&L8`p_XYIϯ.(ϯϯϯϯY(+MMLMML̴MLzZex֭[nawI?  gV] L9cϟ4~|i!\8rׯ7dձٱّ SSm T ~\~(C:KvM.{ѣm#a>8I[[._>jT_)) &23KW[iӨsvO^ Z[o1oY0m۽^ڄT``ϞG!!cc7)~op s 7IEEpXի;(a;BR11Y_| 3ǏWgʹD l4jL}Xzd{I*;{y9JG"3dŊk[1á˷x1nG黻`hhڵ7߽ۦulx{_JI)^/Ousw\cDG"1ǎ'':F|fXg3x_DGgQY|ZoU>z]D3"-E y+*kj蚪zteu56D«+**hk+[ZPSSD+zV[EFf_Ng;;\jSZݛT[.zTp{ZZB#"tAz  }ev!##8]$u7(.]wXĘ1C[{(,10PАPp̙vaa'80ti[f+RMP=ti7q\\̢_T::dCIssGgY3ܹ]9x̙xѺ8 ~ pv6ݴCFXg@ppܘ1vݶ71g7\bbAPP5+--tC:Çees@'b_ BQZZNf|! 1ٵk'$|'lm==7n_XgMFF˗_:wBG.U ψ%K߹x }nn+VP7k %طsr2ur2w;߲sr2uv6<ظ3o[gVffڝ i( rÆ߼[Im_j~~㼽]Oڳѣٳ,\J"ᱎ֕n2zR(VX({kjj*%$ub7o>eϞXH$ڹc. hgϞwlD#2jT{j+0aoO2l6/!SuѣdCCݻ'x.1qۉfbn 744WII~Ϟ=|>67nܐj۷_699NCÝ~k|?ɜ93t젤t{] .nw?8pCM)*]ط)CC CCdfxqݻcٲx[hkZ첎?@ `Dzy ٱ :tS_ۭ֍|àA֮YRRulԨT28rᠠuvYUϯ:Hx1NUUaԨXƩS/jkt׸UTT&O`mvm9vC~ :(+V\8h i}Wx+ATyZeeզMzp2X^222فKMM%d2yݺulP]]mgg7zP%%ON6mϟ?8_ګ@F1w~zh[I?u&'x ..˜.od1tɌt eX__?p@--+--m˖-T*5<<\FRAeAD"Q#}ojj]@uЏ#N9 O~5~x### ?q+V_2((騩Sy{ }[D$ʡ}ilfM(:'ި{{g>>7[!#:MƎ[ի=,4 g|Zɓ &ٯXzz*o/=tَ?L#˾}׳:Y: ˿~=~ΜvZs1O\MK;D7n000 ]~=L$Xb7nh`mc7/_CE._* tgT==@b_ /J E.ZBXjc444uuuuuu=|;:}՛m۶ 6,((}hiiYVVv* ?^**5}["tizYB obc?lMMAz5L__@gp[;wЈ@/zzzZ[[_xq @̀j}ܺVv h_8̹s_}__bggu3ba7n9s&X77˕+= ** X h L˗9Tj;'ND)::[zzZH|YYϟ]ȥ]ﱲ}dٳQOu(s5ǎEܺvD!++nH''ӥKq((heC99>}'M:K's'NgϚul=Ο;OMM P(٦ȏJttt?zmm6 //sOx۶m;<\WW7guuu==5kְ988 MN)x<___---MMM___]]ZA_njjǗݻ/r}333MM+Vp8WOt.W9?|Et -)v-~Ѣ`+Æ"%%yW6%'ŸzAzOv*98DQQ~W6:UYY矇*t[ŋuޮuu5kB6pг/󙘘hXAٿI^M ~'t۳g9>rĉ h~'3mC\gyiWarh矇^}uvco|StHtLرvJXgξp!v"EE7\\\CCC222_ohqF-wہ/5;r6Fӗcǎ]z5ۗ *)) 2͛7-~zP@/Pfio^/$.2e At":WmmÃ/13۠o;11Y\.h"H\f4][2,x}bmm}5 j&L(,,LIIׯE"ٳʴ޼y#'6j(:6xxxdggo߾ŕmqp39bcng-22,?xm]}::+{Z;cƙs33K.G-o8DG˗ZZZH>lM>n1@}g`j+m AI&M4mA?P8ydoooa^Zgc*1;:gf!9,x擭6UÇ߼ & ݦO˗gkAN_u\' |VxxxNN9ֹ>!Fo߾ƗxB$q\'33`}"Ըe圜sfffwAw. R[[bl.+##>s玱qٚR477/--ETH$ӳizg 55t:2?ʕWCoB KcyXG:[p` Ư_VWWo6>D^iXmW[mca/N>fE?s>SA8ެYgmV|yO߾[|k]ǏǏO|R_jOC>o(60 [%г皃vv::BozuXF &&SϟV( jrO>$t,''wȌ?Ν;666h +z79Cegg/\`5ݛRM*((011A-,,,,,QQQpttl۷wtttMM@ @s"bll\TTbfutt*++#B&-Zc*ږ} ii+ aZ\ \vvٲe!UM9ScYQQkΦ;vuu5!c$#VƷXdmmdww[&'']677o{-l[j[v}ÿ#HIIٻw˗/)//o |#''{ٳN=mcuNUPP=uٳl4:$wQMdm'N%T  X(A좫bǎkU׮ؕUP\T" R$ jR(1Y>DM9=0ySwf~˗.^|r_yoiihii?!))?1رzz..nn6..}yh׃kݣnTKzpŋ/}'7A. L2pҤg:дi6l>K'L8q''28==uI3+Zd+=$9Kx?څ#88Q -Y,߽{W(Uگ_oaaAPccɓ'njCR[03F|=rng?'${UTTMammǶ(ֶyJe|1c:as`,Aν=а9Ѝa|5knN~ѣt+22^Ӯ%}a>I􌌌 stt41KCHMMMg޴iSZZڹswFFF Nz1ٌ@b`` |blljm- 4uuu={5 #z|%ABAu' ` y;a |tF9O[.Xpf_pnnŜ9QQk]{د|~@pGƷ,}}}݋tWB444>|x5'Z@[=^jxkU__{uw׿JJ7[v92:ƿsOd͚[?BFTLxϞmX̅JeXq_iNefk-,׮-8"Qy<D~6$ՖGRS..֬U\\v]݊ΣGm||.š]O& Lϝ{akk:rڅ⫅ 55Ud~Hzqο6l؀\kPQQYtiiiiUUUvFшG}=}Ppoo2D=zȐ<*;;2v@ 43ٲe%;8 08dʕ.¾P+W&X5)i۷;DFϘ1hÆ ȏB޽{͛x<WPPhjjڵkA̛7/000+++++kժUT*{Mff={N>D ך5kv&3gܶmJ?~|PPX,^xիܹ\bk׮-((xΝΝ|,Xpeŋ"#Wm jڴCH.W}] ?dH@$Hm;KvYUU5vgϞGFF:88XBŷZ@[=^mu`<ܪV_+???bߵ^))__beE=ܯQBP5HQWWsNNqקOec6tLLA_ 5}AA,- /_?þ͛â9nG'K_Jٿ=t#"8~b@G8OO;S>vM7vݐQNNUVI Olͷe\ILLUO~~~zzzDvh4ZIIÇMMMZ0sS|׾[;P:_^WWk׮ŋ,/_iӦhgϞܹY0/v<.|v,/ K0 =;u=ЮPOD}ٿ? &pꐇ?MhBCC;2Nn>655X|2n\sǏkkk;w[__%% 0 s܍7ihhx{{IU\\addnooCɏjkk͛C"֯_Vr'^hβeΜ93`>pdd$Dm<+W^;;v Nmm8r䁴4*ڵB(l ]#~s`___Я_?7660,6V}[VW9aOOOOOZ;: ygۑ[v-!**x='hb8!!o$:W?RQ'W(D"qFFٳS26^ojaSgfd4_'{o.*F_\qqYS Gi/ K1’Y!-]qq9[N=UUS|!څжm~?h=vE;?o7G,{˖-{+i bmmm:`lu]):e4xU-[LMM ?BUUuHvOR~i$Һ?p'i $<{h}N/K H6~y% lܬ¼~~X\\|-T-ӧK߄`BCCgϞ-Ç;s** hW@QgYlvS߾$77q hտ@5fZ l*iapXXO#tw&y)Zx!ֹs/޿bYY.?D\g\ ͛옘LٙD=JQ?~1mmհ^5oJ޻ރ]Q7!O;y2vڴA6ku9?W.ZtU$_ʊv91cn6Bwp8yb'kAv@sso/?I$|R5q //{g|cMll|9 FԀLLzZGG58x څjpwbcSS }M&LhkdvirVTT\vΝ;h2Q]ypϞ~~h_;xmVN~ɉ{sp֭JfzzǏ޽QDYYƍ_ 's޷ё}~Oݸq =ϧg14" )SN2P$gg#[pF_o|;+a0sXn:eIawOG <=OD~]\ȯKzxҥ3frec+ x񕪪څڵDWWp,L %Kdv-R@$ʇEA@ SR >ͬ`訍yh+55EG޽1cƊ+Fv-rH$o+_PWW~d'6D"qjjqTTi F=ltYC7@")%(-D(|a3vv6]O0oG{)Wx]2}KKҨ% F=t>}!-9N IDATRQQqcy<=υy_*afѰξ}36mƍӦ ZڵOpX[[S[[Ӏ55od E۶E}[0sggKEEpj߽<"Ν1'AWZU]vm_ߋ'O̘1: cs%څxzҺu=7zc2*KozzɢEr>LWTtv&B2! rpOsv횦 fH ۻުU!UѮrr*ЮB&^MqDt\У.AwD&Bnǒh(a_VDGgGGged**{Nwu60ׯ_QjUHrݻ9XINNEXXio0n$[au|!Ab1TTT]ZZ@zz**Q*4jS`X,Fc+t54b1L bX$C A>_|I Fp9s.ܻj"Gn֬qq9gyy5]i!H|huSO؜3gbxdnDvsqqTP'%;18xITT֭ Gg;:tȯa0*wg2왎s}ЮB8+K:`"#SF'@y}n؝R#A" HɓуH$<}YXX6ztGmkO/h1*50e,56Ψ@;x `hkܪ9+' t6UWGWR_Ibx' Aǭ[X,c(څoLhrk&dF(Z\\Np /lLLdGGg\2p[77C{v& t799ϞG$vi >_ٳOw~6A'd2tXoWWs:p a-;uO0ϟ+?e֬ AXK_g>d!*v"[:89ÊD_+o071317AnjN$*ݾGPDDR ͥJi ]xSb.hϯټyB\\wCCpX{^ ϧ;wF븺ڸ88~eG__ʕEQQ۶E9fvQ݇${'K]fSU[_ SVVkeev-RĿ|9~"G kA 7ofn@n1 \! OfGA'c,, ƎF@\YR1111_`4|j l{C4H$>tIPPܒ%λwOK֦ܺ?jT3gOQ.W$wYUU,G&JnSko~uu)SZ֣NXXw&qq9x g@QGϜ :U¾H]A45UGz}nUxx8%@L tj8U!y'O̞miml߿vƛR++R@wZ$qޯh,6`[q^ ##Ͷ.yN| 46 n~w;mmUrߎLޮ]0x[3N,V`a! aX(!H$b> D`0ѣWS(,~W#1vJ䀋 gd D" sb bPX~ڲ~Ǐ/|tb77N3Q'O>\ZGǃyx{A -սz9&&;>>O$lnfC&]:&1;"7";<3,?.X 0 ?yO̜9ٹҪ^bō>}\Yl`@|Y!!ou|}͙k].FcWUi4VU[rj*/kh!)(൴TZx%ҽ"a]]CaauAAծ]wnŊ#,vֿwmbJzж jk=(i<Ϟ} k8uS%wڵ%Z<`1ڪFFZ={iۨkb||+UQQP|NyJeFFRiCX,_?a,͵MLI$M##M$}{DH[`ZqϞ2S*mm (3stqq9K ;NLֻ~[?-.پ=ի<e0CPQ^h-#7(?2d :u޽U?P<С=v JI) zcnxܹ#5x3ǎޫPDJb"ŋ܆lfL֥(..gpPtI@4m8+k׺͙ǃ߁B͞}Twʛ .D a/Y0ZߩNM-۬J ÏeUVVA3/hÆ7aPԷ/)6vScO[*d׮iͯddNp<9yG7=ȉ &' v¾݄X ged|TL@[W&zӧ*A0M'p֤5?رǎ='?[l:ec5ξr%z{G8:kUU "^S8>QF|aaa5˗꺺$==򺯏c0xǎi#GZv#">]{X,F,'Mpl 6$6)0޽{ 23iivaݺC1 ÑUӧ99mH$M{uuuu\:~_EEII-8==5"Q9/ñX =|X-v̹Aݻ˝-9s34bEEbbm٭VVVhjp>}  0551Q@ `h\\\##!`IafwQ?{9߫t;_޽Ӓ(U_F]]iK8kj{Kص~h軗/Xw^.W}QB%::+?8bԫհ޺ .Gx֭W+ , Q( ^w…>>:0C 3My$MKT60՘GPH//K'l`ii4$ ML}vK>IeX,=ul8e쐐H<<xq~~S||ڵjkBFvxMX,ƆZmu5ڵ ^ VӢH ,ڻad>} y۷GFU p_ >_XYɢPh :?AJ6s((,qrv&d{oݺ;͘1IFcy{_(,n+bN9sHG NaySd;km&ffefffQz<۫-5ʌmt6ΦPhH@k57[`{zwTe}=LzRWWNtu5ƍW& 9s~mTL&Q |NHݯzyӦz^`s]NUTT>8`S~lzկ)7r̳\Y$ooN޵~~! Y Æ[=VL^`D[k;U=~$ÉD"ϰ?bvV=!RR"ddznngƌ:{vt#o܎&%mKZ`[ii6/@`ԿxEnS_?77k77M@.$))smŨ*=ykvQok?|% ]H$ wV! ^I6-Й|a]]xt:횚zI8/ٙM bՒP/B/,AD$*衋$Bx/B6v1@ H*5mC'9)&MM'"- ᰻vMs[h?@K[ :#r:EE5T*YQlSo 46 ]O[[^/Z] ۼD,p޽3?nj$)gƕնl <Oom*Hkss5463sښ.Y4s82my8cH$QCC8캓~P(./Cxyy4 & 8##M332ڋtҨ' jj*o8gXg#-)ylvCo''رV$G޸Z2q GzM$AÇ+C*+-;]e/S5HYRR[Vƨm4B?WVVPRVV` jj9 ͻR̲bD{TR"TV2!aYՔ sFFEFH$JW@=ziՖVQQTVSSpKKCk˯6Մ@;PVifESWWmԨnn6cXڵ Zk9s˯?~oO)eH2ixK\ pys"޽ԓ'KJ[bС=ħXUU fu5Y]͡XH[p8SGK"ii?&Ҭ߀o%'m4E{Ltn TQQ\ub4{%1[YTUU<ٙDniZ`Q?>Gvy<ѣΝ{bZdWhmwڵa/$GQa@ hkihi°QPSA"gO=[[KKC2\7228,+MLRRvUIC/; }[PSSD{ieg •+]ۙLb5FGgGD|HJ'ܬ=={$/. (c0֭"D;OӐ$l`0/jhVVjj8B?oI"iHFFJJ%K Xw~W,7]0 ?޻w˗9yzzDooa#.:qP(P}W} _&>|(~SYYc''QF~ǏG??4Ѯ;޳AiiƍѮH=|?d W]?즾}߹Z~w޼)HL[ mttv-r!<]N+QZ0ŋ d'h^^jk%Yd,keE25ՎQ>wp9Cfs==8k~o|!;@F^m#/.Lr@@N5$%d?pdC7777k;Zn#T7A &0pʕc!Hlmpol{ȧ*ܹ9!!llr~(g5vVKO@TUŮdVUq*+H_^Ei4&xꪓHzzDD/ҝWWWM¢S/)({EBHH2_.ߘHTng^Z5!H,UR"oboٙxF5k\b|NgS 3YR XUURWW)Y[h))BqM Nй\56" mmMdC2ٰO;Tm]>ɉffxB"Qi3{vv=55U%yaggK[^(PcUT^]XۢR1111_D"1zОXG|P~jS}}##}wsi"ի]Dm.]Kܹ3E&G 6=ۅ/,[~K?wT̕+ ?J`3 Q׊Ngyy/,AX,&(h޴itvDkגtȑ}ѽ+XTTs_+,vt<Zmɒk5110Za_"9-mf3qLDE(Wґ#Otu'eyH(e7}Ѵi߃/}d)nr<=;ޜ)GegO4`˖ 4b5h*6l~NFHCC?ydtBGbp B!G$o i 99剉Jh3޾W{O\bǎy. Aгg1 }%? ++J&*+Ca0e"x"6iƌcE"1rfڿ mAZ"70 "^KKC2TIБ`~$ISD))EHTBp޽499qUUEkk#鯭iP]a8"bU;'n/rC"Wp>νvdG񝩪s˗bÊ>۷G>ôT;B@xՏK{l[G0'ӧ77k¾ĩ119Yt䂃EO/unQ\\?fjWk 09e >ܹU%D}CJKk=<ՕVjkKpgJJCO89w*@ t6qފ @7DmSSmHnPhH7?ć?H&"&;eM,)))Eou?MAV^,/gJ.ڜ> +p8\c4ƪd$zi4VM$ыQWSSTR"0'pcwV[42׮%ݾ!#ʖ}s7o i]ֻ_MAppҫW | ð}#,ttZ>O749vk׺]ȏxŰ}Ю5H_E@ Z* 8Ç2x<ן?Zm˖_/Kݻ)7oS \lT~tZ$|sXJ9iT>=q@Ͽ\Uyt=@5ׯcbrXFssWWww-K={޽n̘ϒ\I(QTİ&=xFUe34z yy̲/_D"1QYcXϟ?L6lXD利>[TT=vƍ;QYY݃iw+,65՞:u |: D{^vv=mmM4SPȯ[VVo]o3 0֤޽%I=ՕuHL-bWTjj8d*$>HSOhda`ahHU3r跅ߌR>_Է/I% )UVV\AL Ph\ |~ֲaznC򩴴a 2C(8DHȲѣ] #l%%JLLWbx`swwq[X g>m&MII?x|tK bSX,ɓ O?BZCߺ#ҽ{$'N<`ɒ6DAA'&L=qJ|}/Q/ܾukxl&2Zvt`Ç=.D45}|.̛7ر0 !߮5jUff+ |TVV[Y60 oq%cXI}GE2ZBC5hr }:rܘ옘R ggqDedoÈS DRzt,P=<)bgsժnn6?NHMAxO?q#,<}mߕ\.rsVyyG2%FxڜjJ ollVyZH})3F͛))'u„pGN/#}"NrhDM#KJTU q8'Gۻw[ȸqz ?k0}`tJ޽Yeŷ|]GNǏ]@]ݛ:23K}wѣ źϜ/8YP]m+L&ʕÆa]צ>y2w7ׇڕ O1sh$eXت? QXԼ˟˗뀲/@ Hk@eVVYzzaZZTp؉቉aA$ wV.YV6l6|5׃M:&꫿v;o{F%G;m0mȐ~a@ZKԈx_*ʅB9o.#JE`L2I2PWAvwT6uᄏ 7Pgߨ@77kh={~> ѝǍ}\\{Zu~~޽Y}m~g>;vZmht A~ ݫvpv(Zlٟ99  Y|L=&ԩ?.>g@[`ܹ]uoþ}YZ+/ut!Cև`x4e;̙h45kas{d3;)e`@ ;q"С ώG|y޸t鱳g/Jա+[8hPֵ@ c]7mu-e_@ 7VY^xzh; ))|ԨȠ Y Ѵm[͗ ۸qZ+ҪV \~мpkX۷LsOb_D7K֭II6M˱b5D"9/khh M󥍍P(q8Fb^^4OOӓw̶++㖕q_UZp87i}a.<'R08wjA T"Q" 7\ pxNH4 7gL HT*mc#Ix<)p+mlR^B!xyY,*MX4__7oomYBݺyO<ٺaCC<<(^MQW״{#Gn3bCB\)p!h4LJLjd U75)uod_HO\})Aj0BB<=l;eJ̙.W@"/[(J0qv__cƒܪJO_7::?%T*m.=pK+S1`__6W񪫅e=zHt~~ųXԶ]JC0˶mXV"Q39qq!CPV`2g|}6o~W/+(ڝ;땀ڵ:MI q޼A˖~o嶎m2nM;ֵ`J}ڵ㓓c{׷o1n[%DK޽YE,59[Xt efA||#k8:ֵ@;nxƍ/X:P@ vp>?F#s†hzuDO>9rF#-jρ7m6iRօ@'1bSϞR$/\x޽/3o^|V@ Nghu r x0)Y,Z@ӓfS==#IIS{bmbQ z9 552O"Q2q a0HDUSP rH*9R L&𺻻d+<<]13@h{1|:0(7B&SWU 7@&J @^mtJ/?xPc2||>o_S#ɩϯϯ}Ng@ИQQhjmʾ/pHrsaL mfK~R0iv??Gۍ<>GA|11AAݻ!zKJJ^mʯB76">'O |J@? ؿB7'$vozdd?hIxU8t$&s8/nxTlى;w*f嗣7pھ|錌￟ؑ \\F]Y\ѣwLi\hhlx h7\x޼k>cv={lywdxuTW s\=bDČqqR;gξGjߧO 5JK/0!! Z v(cc͞=pŊXP@ y9>'2-…G\.>hPHbbv47oV,^Ν !"b矏={օ@,V87L}g˫C$˾}sv@lXI@(/xH}ϗDrGG&Mz{^4xoT }?s**>>n>==5ǏݾL~~ j .SxFد_pLLPd_TT+5-7;ur0L޽X֬l`GH UQ98sH#ߴ={2oڶ5^Cd`pђoۖq^uttмyFE K ^?hPȖ-b]Eq]uxSttP|<')#HXq2#(97߼^f[C3ٓeK& uEӱcn5nl|זּbԏ_u-c0{zѢ ź0LW}_~yo>Xc|QLM"L{vFteu <}*i͚0i!P@ pQzzazz11njfӰ. bH%KR23K׮.$%m2ʕ.bY_/IN}۶&Mjuɴy͛Ӗ,hb:Od/Ep8LE xI)oA%HES{h4R/|t izL-RT2_#Di~S.WKjQBNFR8NPx`yi <RVƫ޺U[؈p8p)qV6͑5<"ʅB@ //?~DrDH$讶SN ;pe2)h0$LFie%&E3GCXGjϞhں ۯfd0> nƌVV&=p֬>;ֵXP~ZqFFQffTqs~Iaôb]NGǓ[wԩnOdfܼjG{fm~o!^?p`_~yZl۷L[vV'#;&髯JIsFEb]Q\ܘ͍{KzTZ Gp8޽s i! .(v Vi!P@ qA5Ξ}X^sss8kBBȑw8TU ُ {u9oCBMºÆܷoݳZtlٟy?4yyҶ: VqTZ-.n^*\e=m' AR `LJULVEg @&(FPMIt:J%Ԉ˲23KR'o8ΰa^j0E"H$Gu^@&bP("uyq8JÃf<<(hF/AOYpoy9Op8ސ6~f2fWXXNoWQj]zzSyׯ8::$&O5xphKH:[Glوv`!n|٣GOA"ݻR .L&f%rԼyr65kܹ6?nzr ͦl+QQ#FDa]]Vx>@QJ%R2Bϗݽ$;ʕF+wxN\a#R"QU^F#=N'F#X41Q5(bQAjoHaucW_- La0oݪ8y2պL5jTd+yt£/=y6,l=zYf1}1ܪ hfyLLPttP `m$|ww)SbfΌ@:j0J dbb7Lao\ A`(B9tԉ@p]}|]xxٴ+Nz;6\sH3 ]\h KM&Ӹq>$fSC6,|ӦiXbm%5ܹ+Wruo8-.u9Z}_ҥS ĺ"嗧 oZeo]9zέ[q~ٺuj~?fLU`]p}%HIjUq6oj#w#G1#v;kY:/ IDATsĺ0uJw'(B (DWϟYwML ;'ƺ4=a2~%}KӧIxeɒ#rX.:|zѣ :T &Z?4 yL/ŢzzRVqʸ@*)id8)0J[7oggGFV$hjN"Q QzZE 3y%xgxF" 'D gF#\9JԊ >_ T3>_˪UUB>_TjߟAvw'{xP<<( + &L&ӓ`%gT*UUW KKueeF>__7$ݭ͖)8?淏lrٳ~UkWָq='M d~{5AkO[(6FS__SB##}cb:GEo8m;41x\XX?uH߃Yt<>|X,ݝL 8;88hzH.ޝdR{`s:6¶pUS#||O7`Ty`?jzE۳p᜜׿NL3jkřeׯdj)Y~6;/S~i &uopu&uvVub۫dɿ-+15u:nM۶-8S~Bjj^n픂`c.<:xpn|| fѢ?23K7mڔ۩;{Μnݼ,ZMl˖w'Nu!`0&$lpo3@@ H;`0޻W^?t|OB D*U56"M<Ѐ46Jx<^"ɳpS'6fӼl6ۍͦzc@FcP'OFӧ&XNi4+w"\L&ɄjA^*h$<ޑHt! x+Hth4B)D\\Dg2@ 8P(D8 sD f7Al$x''No2d{XWttg8mˡT./疔4rKKG aCCWh(hKE;[އhxȹsΝ{[fF1vlΖ^nNNW ,ɾ(ڂ: ޹󤮮!8AP,m[Eͭzm'N,jl:?VѓnݼݹT vC$(ћ"\7,F#TOO*N7 jlۇ"s(AcёW ڿYE[(Ŋ!C矧Zn)E_eCvc]ݛ uΧ;O?Mn6TZcwG\n}\+<݆ ӦN>gR/κd%qq?&&};XbUZ)W<8]:8559s}涢wT>{޽YeeHsƏw.߸q-u!Ço^_y`] bg@@ HA޼Y~ôBTr/Ǝd#&~d3g><O5رnºHSQ:t?O>>wǎ?xga HA\ϗԈ̓zR<<މͦyzRl?_ 1`/FӉnTk↝;9͍4sfyi4y 8zhfnUa/|#GVnxTU]vZ\Ӹߌ+N Įږ } e~Q(4|ѣÇYaa;ŋS||y@}oOp?0iڴ . fƎvk@(B {ꚮ_/IO/~h4>bDDp'֥A 55m4]Ƙ8pc˖a]={_m(-mٛ*MN} @`\꭫?s@^Z,UjNѩ:Q W`XxM.D N3L 8;;;FQ)B#r sttps#0||9vLDۑh4zD,((B9'9hbѼh,oݪ.,.QQ8ND=կR{|/d[Zͭ*KO/,+q al6 T@?LtJݼ9mΫCT//; n9׮$'Z٥ek>?ѢKi6ke;y6dÆ͵@ϗ=0,r r1ƏaԶA!)))(6o^] ٵnB+H /ݛyW4 @ ^)-?0=:"yc>/@=O'OE?|C&=\8u*o?6`]{r„_SR퍞X[+>|Ӱaal -ꛚ]^)'}T"|u8p8N0<=պԵHTL\QxD4w y"l34@px'D 8^ ({r<-9VH; ,PhH,y,Wf )&`ͭ)0WUU̼Ǐ:q9}v_ST!Dr  /{akhl4׭e}O?=*SRE=oR!!l apl,D\. *Q 2T~pEPib)kk5@6bDĢEC{k!a&^_0X<ѣ{6x{흚QvvYzzaVVFp؉ۏvd?ZLƺDnnҥW_KN.%3ԯw{ժ1]Ploɒ.Myn̘k֌3g ֵ|]GO`0?00u9Lӣ_|1㏇tK.w&'6_w{օ@l-hPk@(B '4}NNeZZŋ__CS;?evƑ# MLZZ7ؗWOߥSSѳF%ŋ `ڍ+%+&@^OO*MݱM|ΠPhDmr\JU*hRJҪ:TRiZK_Dr㝩TB 8&( <rqqRΎx"wPV'Ruuzx|Kop@t.Wzў<< 첬w+Z}@#.4(JNY%\e`ɓyO8ر=Lns {fJ-*8>mkk`77h4XT FGo洅~_Ë0/pDs]CCZ~&nݤ=]փ hCkbb:EFXԶbHd`pP(,B mDӓ 00 {zRV|:;w^+)iZxXBBX,@F"55r9"xΝ=O9`Ѣ?[Ҋ:&hˏ+*t: $&^U&S#G$$_?.b*ves6o~7kƍV^7`zV?bf&K׎ܹO kPZ}]t:ر6M߯YVg>}-r÷c0ǎpvܭ۪/=sf (,(~ xiP@ bH$JSqrL1aArKݺU1yǏ ?xp=qǎ_xp @( ryѤޚ(c\\Hh./MԋI(VW(4RZ.W`"Z.H**L-rKm]D$:T*H| P(DP{ _qX_R`gPAۛp x0Vhz虮Zҫt%wwW`&]ɤ0ꒅRTI78.3lX7h[[+6OmƱcw-;qpk$/8SPPM92rڴPJ {$>p]Jm\)*ͭɩwZ,V899DG} Nkk%[\f0(L&J `T4{.&e Toqo*(ɚah $F#TOO*l AqrzQ_NNW ¼,.rQ; >ljlQrLhjo3JKFm;7/-mm@eZZSy7nSİ)SjƀH$?xƞ=Y&|Pok#o3x<$'*'*?ç:ӓң?0Alk"~W{Cv|_㳬[V3n胃W3gK/Pg2۫WռQu `F'bq|Mш fxɓyggif 9sl!V<]ܚ2meTڼ괴˗55.nSa*v洝;S_V֭;o_QO0jԖX_ƍӦL~'ΛwK@lz +ihӯ_5?@}+- v6Cяw:}P4}VVSy.=vp2yrH!}U0}zŋl_۔}Q*u{V9::v/Θkܪ݃[VA~XnRuo>d L&H ~H| }#F2rp2[dR,%D76lÙ\WF 7.e# wV}8aQQA6iͭcj?S IDATB쫯%'ӱ4ȅ /?Aٱcf{ji唔cu3~/.^Gp)D!"Xbs\?XԼK{Ӧpr.]zb 2c̞=-Ǔ: 0y avO%K΍ǺqoX1P@ b:`.=Ǔ3Óm<}#+ƎN'j|6A7ggeeݹ`0%>٦avLE-Gܱ1MyyUN>}_0eJm9D(cn~I1uj&٠ ao3x<$?.'*':ZGBCbb:وUoNNerC}~YL>zMh:p ;#cyhRuʸ8 ( GKKz@pRt1*bѼo:͝ʕ`Nghh4Hj`͂^uqqlkSu6]޵Z\gÆ>>hhw7-YreF|qѣdfkW%^͛/|oo|ѣepak̞OGXbY~=o|Е+G_ AW_7mZڵld06 .=NI}Fy@#9{#I@^k-ᇃ.b[ rMYzֵ@ }!`Xr(#bJ۽obbXbb-7҅ot:{zT|_Z>0pCñ6$$l+`ÆowS>PU6Fo`ǿvLJMM&ESR"Q&H`TBmNӥшT*ш &)BS^,/TZYP3k ].  hߜJFtMm\ų#g~{u-(-:wd/pSDMdZ[ w$T֎ɾ'OU99hl@#::z`8_mK{.+:l>< [S_IqHd O߾jy9/&&hԨ@\ Po fױan\w۹uYmۖQU%6,lٲXٹ TS T!Dr hll__l,{ner~kی5kN߽d67}}ݬI ç ñXԘAݻ>h4]RwoVvvYDy&in`ǓxD\. &B>F#$N0<'ÃgN_7M .\VmR{fyzz+ōpL7nk׵>}lvXS9A:}ԝ޴[߳ċ:m[%^(.n=zÖ.u-͗˾wzD?G/]zy`]} ɿ̩Sy'62<5ӧ8]\7cFQJGG>u!aĈM?x5h?=zrA WBTc^`*0ersA"Q" A ABwI4F#zF#h$:Av[@X/p< FbQQxP@4D0wb̧B9(|M0ȍ!oݪ.,H.}s8X+ Z~_zŋNXԤp!ܼj:4ztQA-6nTPPIzc[R{}1|V&ԣ .5koRRgqΜ}Dˎ31l>xP#=AodoD/ho~~޽Y}m޼~-/Tx̏|@NpCD3G8 ^o1"ejk4z.16o<sgO2,-fdfeq ?XEχ/\8AY;@y9_c][waMd]'[ 􎊂  *kYQ캮еcAUl "!Z|n>^`$p~O2w̝̙{w]eѸx#G04Ժys# xw~~׏":(+?ljjѹs ZTL焢v|{d{>)-^ei)8ZٳPE)SUW>]vP ٪} ++aÜw[ӧ_,8wԩnD"s1cru[4HM gmk,Z%PPdgZW<1JFQRY䔖rKK+ʸU,VUY)F˫'~ATge-IOgbˉGwÊ2ߙŪd2+LNQ`Tۑ$l^:]PN5441122226֖٩}MJDDʗ/yd2 fNvN6&-HM-JN.LI)c(`adiiocl?vvzM ?,,14ߩTʰaݦL;dHWZϟ':77:LG-˭MJʏɌΌ.-Rd[[Vbhnv377gP_;̡C]j٥Ɍ†}dZ\ӧJ.uq۲KϜysjǢE^moͮb08 Xνutt[+R{[&H#D}>-,,$mhٯaFpfN޻ePt{{:!OaChHHt@͛17~WQQӥ˦ z{;rKZuٳך3- ^FT:]XYyĈpM'=lؾ#z80X qhmUUm&O+Z 5e򬦆*(`X ;?UXX.USS6731ѡut]MMDB\YQZʭPJ65?^x+%p$@32j:x>'ݻM66F>iя55%4$$: <- ;;ѣoߦ,^|…D#쪣G_:dީOZ l23g޼}jee0s$ÀNu[ʛ@\`<=7O"::(+Ϟ%~4pݍ FD'ʞ=[sȔ)ǜLvLt "#'O>Ĥ]RtJ*6C2l&U|"Mk`L"! (/(*(*ULf 6x0lal1u:]CsZ ::ꎎ^GG{{Z+JSNceT0ߟmd ŠM.HH Opi4~t:kƄ RJ #%TkkCq]o RPP(}Frox^lYYe>c8<ǎ Ktv6[rؘ19_,~VFGgR(d;;L12矝8Z()Ẹlyq ILR0éFګnoLLfyyH\۳2ux<޽χ?,:ۊCYNegmvcObUW3T8 ut%똚6caC7FӶ2[ ;U K**bi ,gɓG;:n[@]/\XԞᥴۣ7 ogϾ z;ͶHBB G,ܲe,aȳӦL9QYŋn=zC3?X$BW>->#ڵWDVUF>kV?OOcxy1aBĆƍ'DDl }V(66'O 52vlAf믰=|KAf޼ڪ$:VGORҮկ& QT3юbb_jhiSA(Ru5é;0~5]o+ttuuh4mŝƴc%)) q51-- _[[Ox".,d vQyTTt.Mk4bLfŇ)/^|+,,PBfR7;A--U#,qYWuhNǫaIIaX)dYY%Xi8"R_A\Dׯy$ i(`yz:ndF@_[C`w ?W.l8Emm7mXZ~>ƍe6+#,- ^]4f3,VU@(~lُ7M{ݏ23-Zj"> ZO|Tb1kVɓuj=cǺY3;zp?ЙA/Zͮz&%,,ٳNw777H :ܱcm2ѱ+p5/$:V( YUXJg-W.<w|[g^.,ƪ<R**J I  xB^d`i`ade`a`Iihhhlw@L EXonnHRd33=TȔZͮG<KEE Hrm΋7oR""RrUUz0wwrQ醸K6!VڋUe)n۵3Tv[a0?xIWֵΝXss /g}ط (=Z66⯌?e1W?;yr}P{N/\Khm +zc$vv6Vh 4&6oBBׯ<%%J׮دłU3Ξx8BY}\+W"ׯy 77< Rວ**Tl65H0,@$nnnXY+c,V۷)aaEEMy./…!=m4ǚ>8LukM׷oZd0{؞׏·Y) ٳOOSјcrſ#]d/FGgM؛pZddcc}|zl<ƈOBBnppdhGeeʸq-jqOjDQ(;wE6pžhܲ䰰ׯD(6fèQ.20D"tʡ?w6ݼق Q &N<ҭ]_Ç|kL@K 1yyeyy2&d2IE]Ш/k(hZ4&7Vkdm`a``ĕ))?jM o 40Xoc%#|SXX^PP^X.(`ccT{V515661ѡ-026354ԂdA %%c#EE ==mq~^iWϞ}jiӧ 9O>|7 Ý}}t߯dg94`\žpjsߘ*uuegg3lW; }@/_~[޽-szvF[ii `[\K^M _CC[7SYY%gF\2w {SL~}&+d͚11K  ZQ{Ҥc**ԛ7)Vu'8dV칍wwۻwW“l2P(sgс&=9wjŋ:sξ}O^q=-7nD_>?=nW L@~\~. IDAT[Ϟ҅Nt,t(P aj’rutԽ 6bD= .^|m۝g:9ڽaxxӧkLۢWFݔ?V`SR99\`!(Z$]]5- }##-MHHXPX!LacCJ+*2t1mx  v.((Ft:]F25գѴLMuͰ;sttFm׆ҤR. ::^q8^-R\\ 5yܧt :"a9$M{,y3{a2+ }۶D@GžhTm ::ٳG AN7MAPYYۿ{o>Xۑ#ϯ] }ڵ> ~c^\EvQ 1|V^[S`p쪪*>ԿAuu 55 t::j:ffz0Ҫª0-q^l^GG#²2.66{rNN)f29yy,P XX@҆@٥)؟*CC~== reDɺɌo ZAin ;[jD"Џ}m^Ya|N+)Qhn˭MJ ߿O+-Rd[[Ѹ-5 ?tiΜ;vL2)SӷQˋU[Y89[To 32ŵ<@KKK дk>:|n+WzcՊv.]ze˭W)\q?lY.Q`oSVc_'ZZ|_\Z0zr2P(JLdž1KYn}ߜҵkCav3A({{: xm|ǏWئ}+;?ߺ@QtĈ- :(/ѤI}*i4^}?|yttF~vVy{y9*r%(.fftF 8a˖K^~jбA/c*?Oz<իo\nر=z+U<_aGbhH>MHIt MPZ{Ȭ{I֟>z<@:ԢF^dVp8ռz(-DF63#dP;:+?HNf"W!8:cjjPar߿OH O-SWWhW @/Ɍ|,Xio׮NQ8ȑü%'3BC?qM|}NflAU?qLP(6+UpžPTĎΌ~jkZ`Cb>zlyTO纹?e?.`D0J63kup߸>_$_}"鯿bcl/:lXmE3N?{VmVM _\\boSQb_LLt/ԲXeL (5ֆj7El86J<Ï?vmu!6 {x3ݻ4?6qD"A?W@cĈ_dVs\?$' wƮXq0_EEʕW^eEGCC?9&5hȐ.VyueVS?}rp0=O{5zA[2P/_~5ŋ}Ұİ4 n͟?00ЇX100$3sс6Psӧ*Z4B  T-+,dU<*nhI`evv4SS=M Y`|aAASsX L& X (g2+(4.cjgjkbcfkdsLV}MJDDʗ/yd2î7^lh^<5K{rt4 PQQ龾1a|϶Ϻ{76$$:-in7~|hx Ԝ?qtxM +WhcP+k|۷7::3'B!ѰOww[z,n@/[vi|f}|ӂoFUT;:4;`U/11?>>NOgDEϞVrd''KL[ӆ<֏?Yhкu⒎HW 8,V%6 lhEihiR($PTU//d29Ctu?G'M %OEf8|xwV4[x۔3WDFk^=j;1eT7O~v-*<<@sΜsϧiM\%UԺihXeewp(B69ɡ_{fLxoZБyxxb(/VkȴSvp@\v-z~.*jr^ #J-+r%? nuU>d:4qZԉkƀ]#Vb1k?p\xqѰa݈x55ȷoSMLtMaΜDǥ`:ɹ_C$WѺu7mMs'::2=@Fߏے@h+KKbkk$rs`8 .@[yzqEQ))EJJ/ݿGmׯ_3 `Ĕ)}m ꯿RR5wey3fPGG'OV[Zy/^|{($@I::%: Vd}@巑#{Mffh[[# {!25՝=QKNfX[ޭ[}|zhk`r/L; `xlQq%$>u8YYYy7?Ӑ FSd#"[yG /_~?`iӘ{yii}PЮžs)/`:66F-ZECCkWF(*Ё-Y2wd?gaWke?f\9 ̘9TO+T/YrnOciOWxqѰa7np>yҋI޽6n=vlOccmCHK$B׮ qp0^tѱA/\bcE"͆@ş>**bH]dd;n\'^MWQѧOY۶ǫ7c 4 WMg͚uܹPEWUI&]6M сHzx/r%׍JyqEI wڴ::jՕe9EwgϾ<9WF-=?\TUĭYһCK##Cf|EӦC/!H$o -:xIf99x_wJ'::(A޿_fFFa++HFK]]=$$$::z~~~O>mQ#=Ԕ{z.Ek 䤫~gEׯ_ /?~7p[-Z4gNǏW8vlĉT {@z"z5kkˇ  t\ÈMC$55=6J۷mކ'5@[,]zqXQ矧MVwڵk ֢ nncDz2sKQ2j\8OϞ|aZaھu){x Hrrr6L%K?^$̝;wΜ9%Hm۶vZOOO@ ^rO>]xmu$2ݡ<Q2rM6z~h(dQ"Q,>aH8 AvM+Wfee(;*˗GlHAs%=-!U$#i[ A"??oĆdHmd -} $jimtkн<=w]Z; ZcܚѣVP:B' r@Z5sI3տvOt8"/|]7DG׹Hs Ȓ%K %-:JfC!;" >>@D`d_Q&L^=zA>hllL|> $ʕ+]v@Dm=| NDkئP(ܷoր>|Pax۷3{{{==?o{999h+WJ\q5{R֭[V_={,|޼yk׮A=733cX\vѱE}~ .lUUU[[˗/K.90eJ_&"<{֚=bb~tt 6lX.]$ŋ+W;zH$ҥKc4"鐺rʅ b?r?F$88x۶m EܔF```pppGz[lzp=#Pg7 2e덑9Y$O7>MѳT0`uP XreݱI-!UDKDsHsu?|֭[7HL9|h|$ܐd:91onIILfͶѷoiiL\ZKH1s|O\Zk [;sܲt]ngtv6ۻw*ѱqCKOg޸l۶T#“P(JH=yܹg7gϞ"8ի ;OCV˧իWw_|@UƎS[{ˇX I?o\\\B ޽{|>E={L<9'''!!w6l2e :}4 :G9 򂃃a2 ho.((x葩)#6 ˗/\n1c8έ[)))<|𔔔({{۷K\(ͧ #4g˃[bYUߖ53g:4===!!{خl!ϙ3gܹs PI IDAT5HlSzc|KQQʉ' Ϟ=KRu8N ,ҵƌ9x6nZ^$؜U(isϴbf AK:sfbCP$$$D-!UDKDJZZZ]Gט9䃜%>B9! Vc\ܛm7xSھ}Oz0vƥ*?L&ݕֆͯйq853g`08w,76&:%%l?80GEEQsX>CFJ E;;#77pw1":@˗߾}{ѢEGŖHJ@"$9 QJ cǁ>D@ԭ޿O>s3,+** [=&TWWO:500066zmZ[[NjXbkl?1IARRR]-@98DǾmq8p3Vpp0WWW766P(t333uӽ:77ѣÆ [fM+lk7ݽTWWD7o-\pر8@##jjK9>E7Wd<-؄BaHHHPPx耀l8#:ԩSubKG4~Hs΍7hnn-9s;0{9r$Ǝu+yE{Lءd!xmXX؄ [#>s"yYTiu)V6.Gn{e_$'IKHµ"Op!W@8\A . m9p!nBщMsѴZ\\Ik׎;yПҷYN͌'rsBBU];p Op-[*VP(JNfG\ywwW_9g$$xfӦMsJߎL&?ݻw4v .W/j|pժ=zXcSBKIy}~T[[PwF+WN2%+++>>~X|9y!u&;eپKX,DzIeeuk_E޽[XX[[[/e˖uuȐ!7nq9giM|tmZZZb4C1r%ll-i "I%.O=C/A>H$-=i ?E2Ht8c={z";wƚdd0ޔH$0ر) !{<{{{ ~aEֽb0nJ|̙3VVV+VPO}|ݺm>qUKW2LbjjUbfϞm``@W^J #Gx<EܹCZ4W47۽)++w޽{ 7*>.(z+Vdembɒ%ÇD$٭_^Db@llСCtj*.*ި̙3}xHEQtҥjjjV\5kwﮮWUU5 -6wkJ {w,&Q`ׯ9vX!$j%E"$+۳ FZ6LƾB9C6VTD! gH yKg-dhHmd Xm-lÇqү";<_Wƥ[>ƥzҊ~aYh.NMM-9UTN?or{Ĉff_<sF~?.>_gcEn7@yZQQYS74jtwww[ww[H_Wݾ*} (kע޿OղGs%% uKRBڐ!] .]zk$c;C;ww[?mӯ0(+SOtPؚ5#d!!>|0qğ~iD"CC,RЧ@J*. d?n2݄v츯LYһM+22=**=::#-I&< ph=r%̙D@žOTT۟ލ E þgO^Ih'Nf! L&ڱO? e=wysda۶qoߦX|2Yc֭mӿ}~r:\ 4(dv(vE 4BrH R c߾+MHݻЏOVmcSիyxϝĎ{kßy|[xyk׆v쥩=Ύfa/͂$RXXnٳBt,tvP @XZ+)yrd&ѱ'mm'ȑV`8yDF_x$ABQbb~TT3vlO I }]aP@,PT;'*_3 }ѧu>Ć\>]8LM ?0ƽ{M9^vTL `//'Ñ 22}߾'QQCtyxuϞ]_CљXֽ1ѡNdo_gwҞ?O~})с 7ߪ3M}r\DPn/Xp.+ҥpY'\6z$ʊr)ᰰD77П∈\I WSSfv={Z* @JΦ`Mjh5@Vjk_慇tsۑ–ӆ Fll= |VvviVVIm`"/#Z~ oog^u۟.]Z˖]=uT7\bC$&&sZZj]TU۾npp…^۶~nKH/YmJDDJDDJAAJ~˖ &T49cWk1ռ /TSsl@s_m6ٌXž]`pLNvvivviNNivviZZQ7?s*P{fi[؝ /grsrsӋ׮Qe/D 1yȐ+V_AG ;m3O>x7<,,ϝ[0}Mn+

    v۷|%%PbpR)P $BQ|?oߦfº<;Q##" C$rXXoߦ&% "ee*6 HR0/lR݄O|!BRUuW"baO`@x<VԛUULOg{h P g۶;7nL!6o ֯xСm}t.]zIGG}iĆ Hppͷ r:zt*^vH?X\VVyQh R>_x_%% p,p}MJDDʗ/y [7xy9zx[=4hO/_&510JQSS x`8K/`'ѱžBu5/','47,'TA lbcaoi`5kB>XA*i(1PPUU̬BKlH(d,D"D($("P$Q$""I$" ظ#(FNNHD"Q2YD J& JM*hVWSkjSN"$$EduEPݻã~@N_pģ;w߾}B?xwqM]{&,Q@֧jU*ay_[;.G:h]ժ,23d k" ޛop99onn} r;Wϟiٲyi ii[X':曏vbU^~{Zk 0[$?bSYyCzK*m`0kEK C=V褭J]bŏXSDi4vhi l"D^|MalFq(;_$^! C0o)0xAneK0Pqw/_秧KH [q#n% ți0(Cf?•8h6X 8 ٌCQdXpnn}vy~}׷n]hR?Je;}wjj'O; \?֭{(cc2Ynao&E<. QGi_~)غRgb v>+t2FF2=@,TZFsSxzo% (X曏ɞkע}Pg4zH0h3=$aڥ?gF`0mڔ O@ ,(D"H6U~~aa0ڃƱXdFpX^^ٰ7@=%pf[]Oպn{ok+o1Л e+0RW}jHPWZ펩rIG46VN|hK^cL\~?Idp$&|uvR~~|W[`{"$$d>] gϞ۸r;v&x̙ 7ݝ3&I IDAT_$''$%ŗ^' &SJ_AL&˶m=[E0d×F} _:ݗ 2j4b_%p8A|׀?&LXd&Lh4}2$BBBƌ I=tmǽ^f3lI"y-]lpRyF2cpł 6/C仦ӇO j::H8ádπ8(Hx= `W[KA$.Nn@F~8NF,]Ip[,A2Yž#߶zkN;w}7FgvtWtǎ{^߾}%zl|x\#c~Bwu?V J}=zlF-v#]lܼٞWPXm ffr7mI#D׋"O(z{İKBlIKE쩧^mlFH F#` XPhKv`׮k'O /DCO7B 2XnLˋmtttLA<Zz5$8*UϘ1AQ͏d@? ͝;믗{x@+{"(DٿY /̙'& lǏ[⌡{wbnْDI;V:yr/rߕJs}++;8哖.M W_Z_PШR ɓ328p}.QuΆqmmg}Caq8.JNmm?>  _pxg͍dp8d?c.CuG^7xޱ@ ž*@+D"&mhuwqs#c^& 4ԡc~=P g(iKJP꧟.~l?$ZVȸ/wtui3-SpxnxOn6[?| A qa'Ng;wD}===7=99t0*gqC #w]\B\NK/-,^=Wf \Arb#?. m%h26sHH9D UJe7"b EXֲ'${ ߝ5w 6n<bMoh:TQ եU(zbPKܻX~,ϋ PMZ;ppƳ]]('&_{\@;T*{D"Q#:;*͍@`.mG9@@0mS8.))4:*omD*Qh(54B:PZh( ʛN'_ gO]kiƧOΟ^fNJ|O%x_ Hx8}䰱ca h||@\ݽ k>re%2OO8P3IPmt^. >d2﹣lN `lglܖxz1dxv *+;c7}.ϝ{Σm֊Lk& @i`t/LXB ӱc{{%sw'쁻ya1Lm\Ĭtd+Xp0cD$đmx6_wwOO׿OF@.E/r ;8WֿYo/_8Nh4dHJ %` /׭\`0vs#,ZK`>YhKaa"~@ѣ7^xaO:$z…`krmvVїX,~?1T3O?sVVdɮcJC~~^7gO>\VȍZ]-HJ Y;%Ǐ76B/cX}tT=%%EEVVO&{ELDkR47K( 64'H9J^K==O]<G$~yiz}c.k\T?{ ;!݀b_؂M/-L{%0g==݆7 "BM$##!'O?=u%ִ7х ǿct`ʪ͖ _@[_c7\̛EQ VO9u|ݺfw.w~6>_[p;bwwºuzZWS#(*KJr-SEF$&U_;cF~Y@J~ NxqBr`M૯Ξ>]J[t%lHG q@ Snn[Zxٌbi+AΝ{$hhh+/o3LX LHYYkvVJo6{w3>8lPT&p)jGޑ[D"Lܽ%. #GK,;{dٿpMɓ}(.y_-YCtksr{o\gł/=tX7=+2!ZZd'N?^ZY`Ν;nI|_\ -4"aGUp{K{݉tki/b3ؾ7?..=X5!B DOgfr5?|O>9&Mw,@F5`ԁ.sEaaư/l^lzV7bޤ>+W:U;Qy>[9;{[O͍VIəpj5;\m+`&⒨պ}K' Xl…Կ66w;|D6-f҉f6=jӦrڵwRzS;(B" TپW-8z\HRF$RdH%e2MgR.HtG _LL2 ^ZLgEыk7n` wEB'O椤VkHlp0ŎqBdgoP|}ڎҮ.;*+ۿ~C l6O?܃蠯Je矟ٹj|| RR"+aN11%KҖ.M㼏@8}ĉf??37mZ$6E"%UT߸"iD|||PjjDZZDzz< R tuu@+ki!B&{3\VL H{ϗlxС:7~7`()iYp[o= (@ Q6fxA M&KcuoeeGO@ս6&MZ<ŋS5Gc4/]->}F;79;{R]wcK~{}0_x`|~z pׯ;$:B,][Xu{'ܳ'^DcKNPz>Νp8bA?d0FVTxBAh711899 * Ofo;d()i嗂KzSf&g֬1f%;v ϩS3fϞ=L@bAٌD&dL+RLTRZ.׈jTc`| h> /IR}T:m&#b@lc>,_`?:mms+b_l[j`7zKA ط*.x<矟9sf~謁@ĺH&\rkx_|)"6,_gA |AddWL L"CPtggoy [>lulٲIYE  fypg߰wP>.xqҥs|C 339۶=5r#rlIMᇧYKxٲkZ5S >[G z*cp'XC?ٌꬕ+3a`4 Ϝ:u\(Tİ}tܹI\)3gN,+-mzyedpJ5mmbEE1BBƍ ;6g6!NS,V#}I{CCwϞ_E5#7F`Q(g<66`5Ќ!H@/}vlnTRq qB1FQz^}IFڌ NNNSFyT=pʕS?u=D=͍曏[&ǧ>"x^E{wwfHwwO,VFRXW* >xS寽6f-ą6:U~LK==ƱcgL={̘1A((N(;w M AAwtF?`}D}!V@K=2;*e"o52F"QKjL#jI^P7I}T|h4A% Ngsk : ` WޖP W0@Y#PU+_dhn'уd+۶]u{=\WUuhY,23IJ RT&z{{TT| HC={{zneϦLˆ+ҌOlf<qe`0gX61o޸HlS?kl( U܇$<F˗OEv:^P{bb?jv$wSf͎F-O̘?3X,ɓe_}uIzW^ Gs.^x&/~ѤGg\PtBsUMM??3w)SnɝʎjAeeGYYkGG  ;6OpPP46yz#UCxO_ᐨ(jkw\R>1o^^TsҴ'm%`cp͖MJI#adȈcǕ>8ipÁ@FTXtl wҤ(Pon~Vz(WΝ:{Rw_Sc4e2\rF.e\֩LTD+4N|T@V@Iɕh QjHHԝ T#*$P" p8:D _6ۏeL&Q`E7qhw"wܸ-A {íZ hGع3a=e&sTWg 滌 Wg,;F ss/fdpR׻m۟܆ -dP!]>ϲ-JW:q;v\]8eÆ%CI=s7P~Z56̷^4~k͎b%gG4oSD>`'(kϝ:{J ͘0kV¤IQ:6,ꎪJAUUGWA00_(s ;'--:auT!k^G.a0+ݼ|Sd5kZ/?{.]CN'9H|sv>؎WyqܸP{@}!qFI3+*zG|| 6ʹ0ݛMJ3'n!56sr~EӦއ>͛fa_did׿r/\~?w}xݻ/0ߪMN ࣢]E - N]x_s6 (ZQ~rݵk EEn헑<9*==`*(hv!/h4GE132'ONM*l*= 5'x*uÃ9ny{=ګVqe^aapf'FQ=8fKeeŋ5WӣgΌ>=>4 EwmmguJPUQ[i0 A AAHFqc^(iEۤ IDATo[,( r8hfT3:͢RA4?|uǎ~޼q/8aSPд`Pڑ#/Pǜӧ+֮/>xc@ B `#)QnM;ս$G\u/ryJ;~d=Okcď6/֭{܇,oXd׮ʎh㏧egE"B~qqsOkxii&EApa47\4)OFmda6[:\_oTudgRRhZZDbbȄ wKz 6ii~~2> EX Jey?yHtƿu@Wz/<011$''=++f}[νtX,h^^=~@ϜɁҜ3…x*JW֯?1vl-9C\MT\}jnÆ%<2MGlz^4o^ꭟsyd2Ma!??!?FHL ;==jĨILLȮ\၇BMM93aڴ؁_6Y!1$bY`pPu/p8|l̚5a3mϵKTFѣ7(lo ?{^ct K239C]^sbn@/ (btEZ +*ZF3VƑսba^^n%?dƘ1NP"$)}LM$l`0??.9(ǎ wP "_XXz-zZZdZZ,[ WB=qlԘߟ73("TW *+;jjmmrAT.ʹ쨮TUuTW ::a0|8pXd}tFX$wJex**T*?L+'F#:;+9n-,1堥6PeX ;B6v d(@3ibV h@Js-G$Rbee@GE1A011x`h E[ON?^6qb/ K(_h4U eI{G.^}ѤޛDQz] ׬`^((nlvHI cb&6~|Xt4^]YaapBBД)ܴhD54A$(qw'FE19&p11HttR#P y=:JǜOl~ȑǍ w,d@/E"Uqw'؊zN!L^,(6-6^pB uM-\8~Oं HG?~2p33v PtǏqF%@^(E(X䴴ԈqB^q. >͛K#ЅA걖׋@)0r,.mcPt;jkXr,æPR dhzե~Z\#W!Q(>76T ŇFp `LT胅B%։UA[lнb0ƚ&:bKecrs}]u~׵s-}GGps-}x8^>s.TL&&xz;L'Yw [fjf&SD˭DQAL֬`->Wd,Eޖ-VlHy9>dKPAA,-myo=g(j*Um^~aZZ@hۿ==3W=Vy]*pp:XϓlIR]QX/*7H77B\\ F̡Ng%|ϗ45IWFLfq8w!!T8"pRnmixBO&XP"DޘvX-66`RΝWV7oK/͌f;cNѣ7~_/[8ޱ@ {}!zPh[gIܱE9Sj4;ކł^11lRFKŧOWh>s&ggO2g)|e@pw8tHϟbEFB+[נ/*+ !11l{q\P=yOJ$' @ł@"ǻ:W /ˊdFD0""QQ̰0DQM^_/64:jA x*ݘ1OR->*wvW ;֭(5{냭ov)8ja0\,V *uutt_X+0* C,(D"%Xoe?r _<,`px4Z" C`09SgO+hrppϞcrrҧLq^m>\RLJцJ۶i6[Vs+ ɓɡo=g(W_I{|IcX"Q#F FE1BS¦ۯ>]B]jJv$'{|5vlΝkq:,hƈOu7”kYכΞܳ'zhQʓON ;eľ77ݝ0o^ʕqq? *Y@ VOW""kLYj k!G6@f복еOFh(Y/⪫x»YAb_fj,*_y9J%Ák`4r\H2lY0==݀PTi%-dc4RHHbJ$RdNTUbJ3= y4Ȩ(c%/]:1(b A޾ʏ?^FQt͚kNEM`˖ ǎ#3g& TF_~yF P_$6ze"#$ :%"a:acp6 0,…MΕFY3uΜD`d6[>@(@ Fގ.0Vtw'Yͤe2 ͤl?&ƱP/j_|q Z\?qĉRXMZ8546r_1-mmr XKp8,.`߹NmjTVWVvuwT;Q7ZɌ N]ȋz'fxB /l(ZȑY:}z/Nw^qsd,t孧N qA N B gg$sQFD PtǏ}(ҥi?>N';Už˫Yc//yƭZ5%66q  zEEv_ZZdjj,?j{ozI.fe<܃QQL{ n &fz1h$ () w$HČ{ @m\`>[0Mf2St &bT"Q{nNV;(`jr!*L6 ;B ֖0M9:&E&SD{*rR@`?hy]3z{'$a L}R?^㏗ycFD"Νyw_Suٓ^xaz@݌FsAAW>]!*{,y޼0GUU]54o&\eİA UUmmrd*2;0u*w4\ z@*8W>D+H?pIfIBBR82 Rm# ^`d}``& oNh˵CZ&dڮ[OrT˵]]FP4JIT*P|h4D@}̨B u`C*ՀµH/A8 5*P9/@gsȠ d46j&AooPz΂ŋS׬jw%@ҝ9s37^@…'dպGos^M ==jfc\ݿ`ǎ"HZc};,"<.jUfoZx+Fꉋ 3gykh_e0L|H{%jmm`B"dL xY եmjKK[AJä&xbEƪUS({5 /x-[r,oX b_( KZW14:!X{Ǎ e0\M Hǎw311$++%++F`m1wnҚ5S\$"_XTQѦכ|}=cc""Ə\ٔb`W%; IDATW\5S-7/ah]B TegK3}( JP@`PN'pxL٩N\zz3 0W*? 'b `tp7GXY0,8)zIb-(8mO<O0l|m`vW{NRg ++uƆ/HHqqw\. "*7h<@IDxKłss1sIQBii޽ǎ͖W:fL]"oܳکS%K֮} $:S͖3g*qqkN]`zTsbɓYg6[Ə5+:5dio77K|iS^ as8,tw'9GkAUM&jargȑ"#4J@n".,AϖeGE1ac6}WVt.HcɥKO>ë~Y (@ vς˘_a 3FIUzT&',}zy͛yUb_ 0ok׵LNNNu`⪨rतP$Uils޾}%\9%..AA [XK7oKL$RAD0ISBPɢW . @$:7 N'X~L/If'\8/}*1& ˵Pd:NZ4pB`Gx{P|S͇Bo W`0uui500 V*b5-,_`SީNбC& -/o3n-_ ,wztref``UG'P\2:;ٓ".Mp +щJs{:ӳRrQtǏq[`&()ٵZGGWFg͚3fc\XȿtŚNibg3}z-cFs{ϗ67K$@.CB '"ᰰGH.2YR %Xá(!dWHa&$N.-m鹸E'FdDF2HFd$@` q7ZRS#֬:gN ay}Ѣ-?䤻FBJW^ ]]Z77B\\ YрLٿ`ϞVyzzOL3'C  bZ PHj JBR*Uwv*R Net/&#nitF [gM^ 0Zχ @/΅O0E}6 D16Xj`X%6}.RP |XE6߲VL&{fQst(=fL)AqI?g+ɿzGz*3>>qAhtĉS*,ˬYcrrҧLHf˕+CJN,ss#,\8!'gMu:S\d,I]lbx8,tҥڼzVɘ6-vhXZe;~]]^oB bk~\6EAT=vyGB ]mmrH $D77hazr8줤1ccbp3bm&,%|;"NGE1#"QQ mDjRm%@1}zK/͜0!A?hyڎdb_2 XtFR{@J%]սbw„p*u-9ӧ+h4s'BQ-?y@"_̱LJJ IKHL IMdX?۵+j { KҊj5 T#)%Ba2} 2Ef0HLH$ɢRdND r[F e2}TDq5ݸ=poUL  P|`~YJqu{UJl Zy7h*J+MSj`'X(TT:lgn'^kh4_Xw ءqٲI*lIEEŇպɓ]/:@Qpe*UOzzԢE)s$٥6͛;V*&LXVT_pÌKN|8V_o_>_B"yddpM}^W'ljeO$O Pttt˱펎;|}=}}=Ddht`-&`޷!Âd貙D}Kq$]y۷_1 ##jd1B.ΟݝpK6@/Xs#6N)8(_i-+kHlս))ᣳHVcx rK8b@!)++''P0c4kj|pRS#"99 } rsZZdqqK.X0ɄUE܈*@4 `y8;3ϣ@$ENR-#;[bg<ɤ6;U[fkvk9IˉeˎvlG%:@/u& 6`/~A4M b.Q!5b7;Vqq:vn7`daS(Lf 4tZy ,54qNseQ65M*QTRl"!&d2Jel2I&3d6$d2c,tZNaiptvnvG G"|,&E,& f3v3.\.a= ]bYE J#3 {Fc4cιh_LF9~-q]~Q}r%gOG$)Ce ,;P.)&ӿݱZZ|>P㛧 ӧ|p8 &/zO>>3>={:ϟq|dzvX';;;;SU|65vb* `098cc)}e=;pץۑ$<0fpYqLT*Ng,:rkտdwq3SE4_;tqKw_߳H}xregr,l @f6sFaQRx`1=uj(ڽ<_=)n9PL(~աP( o~mfۄ|wwIy+kdӦ- dNٻnٱc#E]-,b11">b"hTH$2gɌqg5\ PnH7eYUU]QHDѨJ%2ǁ|G#,,@TJRU%Vbvc+UL*-"LfR,Wpk*0ԂThRHdbxWà.@ǁ#X:#L҂*2# Iچ"$r57\(|]~18w??߹s /lKNz}t_cƎrov( 'Og>H2p?ȚZ|y ?Or8'XS6lޣ$?osF}>G~1 8p|mkmooܶ (Ép|xؽ`0!2 (jl+\NS-^ u|0dBD1 0a]kiZZ|UUe!GICW? 嗷ܹ$roco~}X-@ ʾboƬq__$Ġ_}i2AvɓCh6^0VjU-|9w7<(ݷlǎ?}?k8tv]S(v"r%v2]]΍tt4mX \N_.c|p3ϴoȢE @N$hT4d2d4r l` )U2(PN'tZAB8V .#a+,rK$b1)2I|]9bj ߼f7J՟\a_,0i ,RZNKPxh^m`,8N2H2ٻxOA/^]bʽHwwp#{'X[ˢ=\. qIoÆ3ϴ?8g8QUر?>cc&ϣyѵV{ܨN?GYs}n'JgɓCv;}&o:-?>pMMn%[, iҐh`:eʶKf$FGS0?> ҡPzd$96K%E9RU s.R١X/:>BZgsg_Sٻta%oўPOO?[[}KaVŒ ~|p{{׿bYa[ou6nl,@ ʾb0G}E)){OL$2?_=;0=&2(ސ؛o wFʮGQut47`4|'~ouX ޱcOojvxdSlޤRHxf%&aqI3Qp4]Q4Iej&Lf=qpvj#tNt~w8hCv8*V(LxKl* 'UnIf2jj #Kߞ>l6Nk7syiӯv'Vs;6.K ;]]]o}kî][`OH*쳋|/.t}t|̙t\x7۶lYr{ˡO?=Ze˪h26 hܴi|UUO$l# &Ɣ0MM+@ RP:GGOgq۪UUGus&) ĆѾ` =^%zl0/`l` v::0OZU8Fy(*oug?b|<+﷯_P*seߛDU>:{Cz}>7EԎ :;:;Ϟea,˗Wut4nٲ ~s߾|yy䑶e˪ʽ]dRYн\@T*kn (ib EYH#l6z^Q4UEfs٬R,&@59|q8@̝#Ð$n%+~rE4q S*-~QK֙XVL,lAlNú GQT*3 9bfYAQP4b` j ҥKӸv;]͜1 ¡Cw裳Eti.~酮5mܼ}W/?_󋱘X[7ym8"~ȕ?>?M,iӠb֮ooo[ʲj&D0NBi0)aZ띵NЪY_節uFa=TA P{*GJ'0O Ć9q08nj.Y_/LuLهP $΁w="7AMӟ~_mBDz3,Xe~Sk[,Pt3|p&J׻o_ckۛ6U+kL&%Vnd0f0iZ.KR.QAPO0`#A$7 Yd2 sf86B {^X 7X"KFGo  'CEl~Je_.ťaזo߾@th('?ѣ}|aʚWl߾rۘxD/"I*I⹜\.f@{{cGG57- ?2KFG##X*}hu:ƥ5aF?% t8- 1&1f  DQ É wh(6:Դ< N @x<*Mˏ&b8xq㢨 :g nhp54p톳[ ~CqK/}<X$㱊孷o+@ Yʾ9=^G~ۛ/ݟ >=|/ttAuٽ.]nGѨpPK\׾w2GgTW0q ˗WoԴ~}ڵ;ki7, Qg${'38el1Dt8KVU~[u*pF rh ƇD+'K%dYEZ[~cT[뀣ͅGgg~-giv1 {oIEoَ^*BE.<9pX{Ko_y=s\(G=> uK1o)yVYPP#˘:{N|_`rI8޻o{l` 晍<|e::;:WK3,͝81xXCN iZ~mZmkݼ[ `O s9 A5UU֯e84@,.^-^p0. _(V8g퍑@Tdd f/^E孷BXÃ՗{*6/8p^{O{[ e_dvY-ؽ%Őds,}wΝ[ Y;~7dZ~KD3g>s 4reqjRrcz{ß|r5 ƍ<V2 fsEBpv(`' Ȃ NK XY4AłlF1̌&)M˫iIRNQYdYe"- cJe-7WOt=/20G%ײ(ʩT.Kdb&l6j,ɲ4,a[0$ZuyMhT(9|f9hTńx< ` .xRrY}>d\.enb<,\<[)\ C*d;%\ӹ{I:۶u, ${i㏯ݱccGGS 2vwW ۶7j:8z̙-K[nE?rr{K2Ʉ ^{}Cx:N|_~:lrwJ= B4K=ykjSnI&GGSI<6J&3>,KSQS㨮:jk>[T>%J==h谿.dJ"7smۿQtxl~qG?{B (B 3C 񠬳7<R{%vٳ#ؽ01BRKw9˽] (A7ނzʕkӧUU8Cݴ v9pý|rO.i?/5E H&, PuJNKEJQՊ8f72B) +(hV7>4CCx\D&큀 @AJpa?O9]w=MrؼΟxO@P@n)<וQU?jhAEѬVˊՆdif0G2رs;@wV}?M+2Q=v?LhsDJMGGU0WsF'N ⸹{Zzh%ro' `E$QTÃ,a%Y%M|qłY,c(͈Ʉ"yDuM˲(*H)(`@ ZI~j= =dQ1"|=oŷӟ3g'b`:_GF x"> ';2 `+].v Fbjx8><OQɬ;xNZZ|.A ;;;W`wO`^~yި3Ot:?y/Ϟij|[}FlT vC'O:5<8CٻysMwݵ>g#I'O걘0:Kt`0Q0G]bz߶ d234N{I00Z-kgw] o eW? ˖Ugi_ny:=ڷk/wO~R~@ 3 }!1tAM/u~Sڽ cY <#A}M7 r@wi%sF[Z|>[vxrz:΁%)g;:7onxro#djQ.rK{nֲy!I2Il~}Æ mm%%dx8~rҥx*t^Ʉ( vkc{ꚭ[[6n |[zC,7U.F0pAq3mmԊΫ`ȌG`L!Ah1吠 GU}N_8>o`~5ǎ[꫻ , N㰦&/:7ؽgs9h NzWyƹʾs7< 4-vu tv\ >ƶJ>hQUs/Q9Vni,a,NoI<-!8zpҠz`ll60U,_, ;6`:/x`0cbʕ0ؽูnLm+1fTߒu3](ݽG(g_y垆Wk \ٷ=##I`Q[Vx֩"10yP<.b5f;[[}s3) 3ggB7ծ_/ZB!$BpKƒdEPV̹gr9+'}wy<`U 1τ|<.bb8HFXL3!z9nf~e79i,*SEp8 3"l>W]z٪*6!OK`xjm;A={:c1Xܿvm}7j3_ccw׾G? tȢʾEDw0 UUJ .,2Li: \Do^4Vc;6 Ӳe߹G?_paտs;nʙ <:5t@=A;:;:6on2OdL&'It:+I,[I#:'GB&??|9<}zXUu#.vZ]g|ݮ]w^][Z@ٷw=a6|r=8܁;hraC`HYDc쳋cc)ղ~}=nֺzu-1@ E,@^0US|V MQ̐(h`Y 04a,KJ0K&[²k & dʌEe&b5f?fw[+ČXL6'UUޥ;vl4Ozzooܹ FJeM&SCk`[Wpże&\4~×. s9EM CZ,X,8ni%QԤyIR (8*p74,r(x c/չjj,K'cc Pv6e<O۩ Dp8bX*GGS`AVUٽ^rUUyw>>Nx\w8pʾ\ .O CfG/;tZwo^;[08p;яv$/d&銧猊OpI:cxؽWG"/{+!` }o~e0-ÞzjMm.be߲~/Æzw/]Gz{ÅB::j׮ZťK_u] U (b9"I!-JZA` T$qՂfq3M[(X C3BLFtZʼneQi)e(*:-%z> 7#kRo$G[P7|>vm$ )'GOe r!sLgg~'W{Ri_wck_ʾ +{AsX(*.\{\ .C=.ֽe˪ʽ]k@ٷr0~1 }uWw\YStL{k yj dJ4-G<9nqMV =A`4<(6J``Jff&R( BP@t4Ma&Iv;a(Ð eI 3s04afX,8I cq3 @*LFE%UAk0O(ll6.,I$)vd2•+ёd"! < zQR B+ۗ*|(`bx812)N Ii\jk'nYԨoɟKO *d< ٿԿo>ԆSd/,ZI͔~34@4{+[ous,}wΝ[հfo_^4cg8|3%kG;;M$24M\Yt=0~@ Ke '8ͩNg5-/ 03E鴤 (eUepifPd6QԄ|EM|Dkt0$I`%A0!Ga0a&Z-re2vdBE"&(WZeY`> IDAT2T)rhZ⤂ɮ*I6XPOkQkatE\ 8βu8@3Nz`6x^e͚z@ʕȞ=wCڹs˶msw)\|T* QT\ _흰{DP [zŊUj|>mLFDXLP(Hӱ`f3J0kZ^rnOKFM`7222jDf RhTSX<8|9t57>k8nnl,]om\˖Uv;khѨFiuYp- y)Q1ϣR(R$"DAQI(j,ŧ lQ yEQEQ0M[\Kׯ_zٲ[Gi堬ߜ$F/TJ^.z o~o.g{>P ^}w_-@ 2e_좪XD}^bƱ_y)/ӒjrZ6(.j.MnU_ B`2DpP 0M$I`qǀGQ8E4mX0&faH (AƲ$@D1E 4M(Ziٍ@l6* \&tUVDqB#y)U$Id||L&(`j|ANQ8QZ,$qja )'a.b9$2ˢ($ (txe'_9ⸯ6 n.l6 x& b<.N|Ÿ\úݬeuY:iܬ7rxiPHmclKr:&_rJ_uP-'0 }9cD_~ye#}t$Z3[,wQU}h(WDB4 4M,Y^/sNx@^LWfrո aHAY%ɥRŋc j r9-s9m5E.tZ^eHtY JeR)Mˣim77{A8^PlHd yc1!L"!bb*uQٌ:Vn7 \.fn\V]KCC+W`w48x˳gG?snR^;/ 9}"|wm2hV+`W@g@IcʎF˽$;;;qbّ\Ns8ׯ[װaC`ݺŖ @ \.gꂠtZ* 鴔A Jƙ"I$4bUtE4TJdBQdBPT(L&M&M.Ebb "4m0J`eI0Q7ӴLdB)FX}q( 0H3B #8G"`|$].cMMӚ 1\Mb4j|}ɵ.Z-f3Z( %P(=4M'@QÐv3ՎZG YĻ|y>1) 9mm^n$I"SћHdRl2I&ux Ŕr]5xnfF>xwr [Bw?P{{+˽Q(~>_~{{s HP[@$I?r$JPI EC55PSkkCC{/ fR)AY꘺:jٮgf&;{V9t(cѨ\_lݰCs}Ʊ= vuucNח[8P@.^L~eՊm}h_߿m۶;|Y?C]c1ypP`PMc[_sjp|Ϝog@:ibʚ͛=XJ@ E]%IU-$)iLF2Et tLfI$Dqz!i(ELm h6Ef3JӄɄEMG(00 u8AƂalf i68>B0lq r&( B g (f$982EQdEs9=d9&'aJZA`@&)`!-jX8v;\9~B6Bxf2L ?AZ0't8q3e<-; 6Jmő>hv!FCfmGڇ|ww̙ F5y& ?`; Ț5M<--; dzzWubYւaf!3| Sl$J>v;m||>iq3 a#(Hm*\pL(GQjzzgsU[묮WUٍSBHr|<56r04AHxXfY̠&MTAl4*Of/޷ Hob,K >?VQAԻ9xoϿӑ?Vsȼ5%fo<6Y˙"_~[ܛ@*Ⱦ8kS`Edxvzz۶[{~mDXVYUjXU#~w}M[e2,tNUچw> /[o@qb63 GsGꍕy~钕&üqATb;C)}{zB'N 81x+|PW\l垕@ 1`A#_1eU$EQE1(*P E+ K\NWuRgb2!b 7[@F0fHy$Ip77`4TTAhqٌ, M[p0C5`صa^,(Y,I$+@0nO,5?N'S"2˂ NK.1w<nFb+NgΈ5>?8Es"oUPl6B3ǣtQz e2r0N LJ0 u:#V tihѨ qK8XH0|>_(|*5D"JeJ<fP뺦u`Pv355f_m|Z}>[m(B!D?:4R(fDQM&AAZ0+3ٌ:au8v;pNᰂk#4O,<;Su^khpͯJ$ȭ܈b6LfNro +G`Ι3@t_7ޒ%ro,RZiڞ={}rm b1L/gqc4#COw<쳺>E[Egy߾wdo?sw8qz2;˗WܹAO:yr;_ 44֬3yR@ !b֟'^~jX٬|bIRu=/I\<E4P(rZ&SU-o~ۀal2!FEЋP!IpA0M@0\|ӰML02s\Ul>7dfʠ\pMD Cl,4-ӀK(@X&Z撒⬩qeZ (`YmAfs'(xB! I81 ø~c;?xХ*T&$"I2` ˲"!"d^'P(TH剉qݺi:rDUUb{j8Vo AH$xZ-jz2,j4꼂.ϗg%BWjҴ#GIM=5UINkw (D6!h >ZbuԨe왰vOVtM9J.Bk^OsBE^^i^^ǖ.݁|4Y V'ŲAy<6!B6@q!˲l0@ n09^aހ8t8?rz,u-^Q8%!8QcR${ T A"IB$AZ>*@ATp!$PR)E%,D& f>_lq} \>06gnV8f #Z`B$ G+Eg )L|TRJR!DB!ʵ ER|4X\V?mkj~H>-hh*e>g_Vx& >^ iJi`n2m6ꩬ/UY/*"RI@A8YTdxX\lƗ NLtmnpmq\y˦"sIdNvRbE#V+"hDyvNz2,W:tW*%RP$5B!jez(nVV4%JF#:2>^$wSUe?~p޳V{?JD\)TMR{w^M~O\gOMդj]vMr|VYD@TJ >hPwd+++#& BxcJ{{+@+ IǙGKB"pp \>yN/BpOYrwn"Սn?r cgcY9>ed!ȘCY4IQBH$)@ O`?zUR:4n[fgKSC?a؊ [qR\l..\hܻ\eGCҴ4-A  : |└X.^4ZF[elvY,.`إ$ H 4PHA&d<ټVjuUkqqRZ'b1%H!D|c{qX).6|k&E"Z$$$(RT*JB!Mӄ8^ yy4Mq\hlPHTx^HLTj32IIq))q"ږF4iH[@8سriӆ=| Qn5dIJ&]egg쩇On ۇCԦ.!=ۄrx-@y< ت IDAT ׏lB@n`((H$B$bIA"5\"$!NQLӔZ]SpT* _c.^ vnsR@QJ%m~;@60ËcqoӇ5]avO \~GpL&(BLӔB!ƇHDLDӔR)(NP pJ%( ǣkQz}"GM$CWyl bhຉjX,P($U$_JhÑ8 \Yi// 4%LHPR\Rb9rEbLa6;,r:=>_U IE MSJ!1r,˺\`A,=?>hJrLRɤR! 2^ofslj6n/J>riR D"I",Bl0wvG*Dn&)$ ].S'KHP$%J'$(:BWB8/3/3ʕ'Lk `zըQ*>h>]zlٹs}w,)>}MᆤnH; С qơn D9]oGG9>>6 \ ˲N8H!DA!$"E4%PEH"%!I"-B!^@ HBD~l:s!U*%8Y"D.IibABZ(ld<|Y_04)/].oh>κX[>#/!x&^Ya_-b"a͍ N$d+H8J0^Lh4r{2D)*M&de۷/B@ ƑjTW훨*mm4g++F^YX6juymy&IR(Mͧb1Eӵ7,0l08Қ]VV՗__&+"L D"IDXA/C۽2 vG*j4xF#ïxEB2>^j:_5:rk^Cfuq]SFΝ{>} cƌi5t[n5)))'N\`XN?.]ٳ'q/_K.ѣ9i'\.+gϞ+Ww̘1ͣR9tw}7###uW_}5a„Ko7|s3ǃc&QF:.|EWM;:Mգu믿^RRB$q\nΝ;k֬_EQ-RjE5"bܸq7ok9tGEO,2~u|WT^h7mSeNNNm[lIB߲,px| :^<`,>q X,NCY?۹v̰,C3 ñ, qp] V bN pTcD@QB T{i(HE"J"4b1RyF# PH $ErX(q43biL$EڹPZ 56nDfs3 tzx-al6ð8!zVaqrb>%$HD_K3,ig iE"\.iRPPJ±x-L&ƇS \>tzs}v~pxvvl6sl # e2T*T2)bB,d2\.R*%2P*d¬,L&ɄuNe6;UUe85yy]H4iٞ頋uW!Ӗ`hubqԸF[Ulvۡ $:i)t:ebZdBh"8'<55nSQazaI !DԿ9BJ$J4@BHD!Nܕ|y,*41QTJ;~m7nsoߞ믿x㍭P p7eʔotlv]~WbW3==}ذa+Woh錮]Bb>ՙ3)o}*+I|-/ٴiB'L};\zuРAՍ谵f͚UTTuϞ=bfk:|pX )M=\蜦Np 4(!!a噙gΜyݻw^j&•qdz&O|СK6X5G@~x!jY9pDA[fϞ=k֬*j:AvU999O=Ç<ĉ%%%ƍb* >4)1~x@Q-[lڴ顇VJi8=[L&99B V=[~lٹse6]rB(!Aѷor߾I}&eSΑ$Gmq]8R!IJ^|?Xۇg:^wq:}8Sx!qqv?Dc>_kLg1g,Hӵ81B ΅"IR 4Eb\j4>T{J%a'H2*UmdÔBjas?H"J$kv;CŒ{&nrb`",p:B,]$IapąDz,N/_<~/X t4MqqfTU?ľ[9t E ~E.\K(H2P$H$B8z{˗+copD8~W EbP"ŵ?pp,;Nn]S㮨nM(jR)d 4Fqٍ]- /̞={ԨQjf=/nH (//߰aCQQ>}ڡN_:_jUO>Vۺ\ @H3br8˖-?~ "[|ő w'+4it'ŋ?~'Ͼ}+V4˲lnG7޽!Nz)S>Ng0߇|?g:%Kt?87++ׯ'|2s̖,Rv2BF"H$Dխ/3uu 117_Rߒa5´wy͛`m۶ 6,111M&Ф(j MG}fΜO1nGXNz(233!33koCX\gϖ=[~\O?]׿ Mݺ铔eЧORzb#5t\\ ;'Nd^&!,B8ˇCϲ8&?C$,rbYp2 MKL?ONX"I"4>X$XL4 )I6o.~K* N,8PH!DڴR)\LPH/E3GԲ}w~?tzqavrڿřu:}8ʺݾ@A  D"(Ds J%IMJE"IeI !޹@ 0^ogw K$BLPhN]BaYPHJ$"$I qeYAa8au|.fV$$ D"J*]H AA(`=N gV%2H.TJŁO/޼O\ྮ|@4zz֭O=Tŋxj>#)))sz! 6lЧOFo"B!yz}BB¼y@,k)>A0l0|_ ,{GP 2䧟~"ˡqc,O0\xqZZN{ᇭVk# P=W~ =z􈋋{o߾W^ g|gF_KI|e27l{O6 /t:RoVs'AΝ;oTV5ޮOXE<+T=䭯׬YӧON|?<##CRx Bh„ [la~m۶?>_oRo syФxg狋P ֭,# !$F x53{ƌuD&'' 6nܘr41"8=7F6thcXzҏ?λr#G}D'{;x{#F1s+wqEc&X,P׫ӵի?*$;;{sύ3pԡS^zX1~Ŋ+V<Ǐ];uکMY_=k{y?8o^bnԩ%gμz̫-xK޸|W,,|xEIɊeeoeuKG,¯{,~}5kתU._;ٳG͞=j֬?=IL8x [ƻ;um[ثWbF.#CWR\̇l*GeԒo:̙ӧ|`gw8mۉmNlr|ڟ;{zkk|`s7͞a֬/O'Nqs]+o}ِ!K xOG璒 }IM>{G粲naM7t͋~uȐC6laÖo⮻Vw3qGSy lYlU֭yCg J JKk˲LSddt=7{ܸ&6}9sY^e:4k>{ϛo>f߽͛Ç:ʕ7W?ȑEYO_zҫ3Ӈ ~ֽwDAI([n͚5ڵk׭['wyGvؑ-w%[<`8>۷R9rΝ; >Wt { cH| h} ^6R8k@(T dm,`k*/]ykN] (kZFc޽Cgr޿F177rM8QP,^!79rd˖->ӏ=ڳgOшz ?^z 7׿5uaÆu]999m0##W_裏o=QfYf֭[; Olٲz+. |93aʕׯ[V{1cܹbLnrˢE[+zSLi޾}{J8rzFq8_'OsO}>qƙ3g>BnCƌ:thذa.\;v,B(bRDX_\}4)1 Q!\>a„\ ={HR|oq+ /8W5(jݺu7tyзT z[n}gxgyoɢls4MAQnsժ|c~1/t˖ qF.+K߫!+ːeHOoG@rVmXfr@meC6 Xn!TS3ou:ϬWt:#`Yf>_7dWFgQeqkI:~C1 ^cM\F7dHb (@(4I3)A4sr"Up}I~?CC( Z?~1EwC-uJ<OްnTiPׯ_a\4M|o!.LbD"hYT$bZ*)b~ߒEb@&- 0w^xaҥG<ڳgNnm]@ą@mڴbAD|Sumz7O?B.]tRGݻOݻoe-ѣG,Yү_?6lPou+_o`tի׶mbΝ[=̎;;Qߦyyyu?Bhጒ޴iS="ά~lĨxa>{~`0h0~G˗ Ç_t8wy0́"~u6Vؒa;<Lq[Re;U?>'''''Zp;kJxWS'NUtK"6x cƌy'9[lȑ# KmQx ݤf{RwG'od2Ynn.q=Ђ &tۉr˧'שf7mVΦq;yj*RY\\꫔q555)))/2I:Rm~`yrs~^:n{7ܰ01ħoaرΟ_:RK[@VW諸|:yС={N]_|qdݺ;ײe;9siksט1}?-5|/|\.׎;rrrnnmѢE/?ĉ#nތ0 IDATA.cyz쉧ӧO_tGz;%$CoF/d޽8=Pɓwyg'O}X BQرcmۖo߾?_n Ba~~>t:'ċ>bQiwygȑa8DD,z׷ Vѡ(jC1a„YfZj۶m݄16,uM&S}E4HѣGoٲo߾;v aD>^C7v͚߶m{=<'zNZ=cƌW^ye޽u?.IJfs/V\httr]yf!$zHCL z:\V͛7՛E젫k4Qׯ²o׏@ٰa}ƍ=z40Q~wYxq,X?: `W\ MQܷo߰º[73ݾzj#b,ϔ)S.\x̙3gs64s|'6-֞z˗/;v^U6t`0dɒ)S4XBYx1BpiEc9:bkPUUe4Fcqqo+C{,/RE|U~}Q( T*}~#Gt~l{mPWnRP뮚ŋO:_~DTGB'>}Cgv͚ bŊ+W?WJt,N:u֬Y7nܷoߎ;P]OOdg \>ܥKaՓƌRI~9­ۨAS:b#Pu]M)CQ^c,Rg=yYfܹ <\goqqqZvƌ.+/-HusᏋA߿dɒ \>dȐ/K۷{#x޹s&%%T &ĸ:G: -I}xO>$===>>~֬Y'+=ct:̙ӯ_?XpÇ?vq=D"[)?FL0!!!!j\HmF3L3ZIG-CoV=d2ِ!Cm?>'''''Zj;~}q?Xau Tv».u~l^Ҥf{Ҍ3ro}:  E!_!tjvӦMa릉q;ag˲FWR)Ow}n}׉I:Rm~0WT~}޻={ß^OL|:1F5s7صe˱'l6w[@^ M7vS7,b'pc;NƏ:H |<6֭['.^%Ir˖-\CڴiSffP(ݻk~@Įoa~LJu=l߾]qQGа( Xfrס)^V B\cƶRSS'Md2w5p7mڌxofB[rr:c|^zݻ/\_~ ?Q*uߍdz2ڡG-CG|Wo?Ѳ[ter'bӦM>`H={wOk6Ա'N <p 64y ]Ag:fbEZ`ڼys3RmҞt-U7ow4<-]]qZn)6\Td7益̗.<?BHkӵYY,CzgOD"l":JK35vΧ;wLMM馛[n]toֶΉ ЦMj3^ Zb,}ŋk[dۺD(69Yfƍ-[*OfgKS9 ÖX^zʕʫW*qE))q̄̄wOHJR$ц_p`&//oׯݻw^^ދ/OuF|g<}g~≑4Mu vfJr̙~1c<#Fh벴wptYPz㪳mv?"u-~>@)/8 Ν'M&;BH iiZOdebA} ]kp̟?v?UUUݻw:uj=)33jWu7;w>ݯ_ru`=zt!>XfvnÇX,m] 3]5hPz ꬠf]"J p,Q73-WAAUAAuaauaasvY,.Mqݺiq1DGЯCҥK.]i4t&pFw\ }_-1cV.VJ/Nzuq:!F : VEEWPRbaY!RIYY^ ݺ+@$.h1mP }@{IJ܅ G\>trQQ>%ںP &&ر rl9ðF${2e ͅU;N jii4mZ6-MMM&%sE qiֽdm](tyy% l9s5O4Muasʏϗpx)dY8O ^\yX/\עj B:))m bA>}$ KaauQQuQزo߹C4Ɓ|pZFSї:*t_- 0 }^ ѢY??rӻwb@A/hK||KQ$݋sDB!n뒂p~?UQ!3ݓ'} MSq 8E,jz Tuam6wQ\\l.*2Lg^o!$҉4mz6=]'22tp GZyrr\R:)I wk@;ԭʕ*P0 8+-|믏3 ' n1 cEţNJD[U@/hR '~/W=@@1 Dz,JgG.T^Rr{" dۑTlivvjLa˭Ŗsq~8SY t4Mr&%%.%EIMH¶]Eqeժ4M[B+SR隔$urr\RR\JJX,h@'PM8~ĉ"aGV_[DsJ /l=tر^~ izǏoҀ[ 4..롇jF(ꫯA{yiOkQdVV. 梭3X{"z]kjNn0L&j("#t/.ŖR555.F#ñ|/S"B@U[Zt>M& '?j LiiMiiѣ,qA"T{:3jEEF@Dhxc[K3 TTXfW`Y.=]{W3g9PDAv;Ӄ%LXhq4mXnQu},/c]3]u̍;v%:^!F\Td.*2L6^\l.),iitmz6-M+zUZ%@gzw0&p矿 Oz~;} Hw_ڝw&7tD0q(grkyj t00$IpȈQc8|l&0tЈo\O?=G?!,oҤ!$ C?O?H)~j̘'6]&a8F[uYYiw~R)NHPj3)4WD.zqYs|_Ttm6h6c2M' SV*Um^*Z$!A ,)ZJKk%%KewqJ”Mjj\b?b299.)I@]\9l2uqhK~)n[oLh@gnI.沲~pD$ JAs^bm$Iz;vE@dv/|GϘ1B۴m }@PUC} B?SBG=]VavnM&dܕG/E~TD5/NW_{v/cf)_W%DwzSVVSZZSVVSZj))[ʬ5>_!DDB")INIze[@[ZrUBO=9siJ8z_-ܿBiV EӤB!~rr~!#\xJ6 ?*׫JK&'t]ֿ4M\VVœ9uq$yc\  *z>ʼnbY7̙0ap G ̇&&JI|N}f0 7bD֗_>{4PH RI %wh!4S,\ZZkY 4^JOצin^-) {urN,9~ĉ kj\"ڷo(ec/Y2 L X,N2vA#G"CxqWWv ,˥eHaSȑ}×Mrv>Gݑ3P^ʅBhP [+*8pypx2J$)IUIIjN{}6,-d啜Ŏ,MSf٣e*GEd6V^n/?!ASR4Nl}d!C2[@~С˻w޵+bqzkc͐ nA/qت*2]8T*+/DIxN'h~ydjI!l{l67~zZݕr+JjT*^ݚ=>vVVVc2mVۗO-IIj^g0p^LNnn_ bY^2F~+pG.pL&[^^innAnSJ`B⦛ҲS >p`X,k^h+csRS5Srhc2+*V[SUZyhnrr\rrm/{ S7{p @kaCH++6rHDR>ZT (Ҥ$5h@Xh+fsWW;0湾jDW|h↟f4*+%%>7_e9n<ů~҃~6~& v {\Nߛ[P\l(23YYF3VϜ~?wMׯp]vWqwҖ*Z,~ӵ 8\Զ_C Þ>]z3﹧]wKNk@ ȪյZ!M i*+'߳XΪ*{gD83NOk42VTuM~f4**ɿ IDATڧ67JW&&#j^i0Lٴe˱&|pЊ۰TԧqT1=v (oN4(#;;ۺ+.#\w8ŋ.M&[e2 F#xq>AMNboV[W 5bD#A/F|hulvNȧ(Ri4rVjѸ8F#Z97G_\ X\{9_VH5\k!sFr[qjG0{ A /U:B$G@L~o|L|n+ǎ^+7)u80{|/nv9MpohT IBȜ{ر7,o۰aYCfxc \sЩ0 {- UUe8},?mCW!|/ h Rɶ1/hV{?-WXgZRfzVj$ON ߩ]7MEUekW{a9󷿭A(| ڵ_ {Tqn܂ =\.'iРe VKۺ|h3lFd֘L NwVjAe0p6$5 = ӧKO(嗫r)nmu2- `N}CL&Z&=t$RIjJ%9Jq`"31Q=js^oםdʰ?CW Y`gR_'~ezBF)/q:}|6RIp|pbZnq@3cݻho&]ð/W;V[p钉t٩e[:(]Tda {w#Y 9Ug_zvfl80rsEED$(vN {BX olR Q(΋ Q@ޘ,Vٗ:uW̙ꞞG9Ns>cǨ9v>5e:4f{O?,ƌ׾ox{݉{=,=a_XFJgJNJnZOVjnB.-c̲ԉ Ǎ1}Xm`{|zGij >ҾR10%ÛDŽaz=o^(a ]'O?sr݃׼vFMYwh2^Xh}rz9z^.&@aj <Ғ':cy+Np! 7gyr$ 3<8:eAw~o4n"K2Me|i౱r,Rؘivݯg<߿{X Zn}> ?ܲMJ>}ghس'N:>3s!;SSw/^Frwj.xN~{ ]Zrcǎgfwߑ׼33Y7-D ٰ ͠ݎ8WAccz6(hSV!onD<#m]7,7KKj议KKʊ--yj4 ezڙ0 grҚ gbœvuE?X?2>FJu%ܠ HN>77w;IW92;{o^760fŋ Hir=vF^;s g,G/FÞ923sxfO1}a_)8%A睲aeY*uǎp0ok5^7k5ݲ_J 0RJxy{e7.}7IC.MPrsH!7VZ=cwm ]3EQ䮬.뵼Q4ҐԔ}@mjʚv {zNe3K=~s-R1fYɓwu_qr5oy1;ҒK=xҏ~rT=~|;Ol<9}w4>=&cצWVʈLybHJ=(MrQsݎFm[2}g{ayy<\;~` %p}k͝;7?_v{4PSwQEpuUq[]eeţٗ_vWW}^(h8ցNn8LLXb vN'W~gϞ]$ p+_y9q߶ˍǾ ޼+Efˣ%Ñ/yz]a}kiɛ@4m9݆L,-40SKK^yP/Y^JӽmkxGn\.^|y|1VsX#GxEnt}o8/)EuNgEFu#KW*eCk5qT26Um[sw#Ud@&`OBw?^>}ҽ g,R}N?y!8`?ʲл@C2ҽ4qИi*{wn׍Οo?ߤh/M\Т яXcoo躼7./#`vN'ucd4Z鶭ٶVp謪Jr^RxE#ZN oK-K5}2 ¾{ʊ/R璤k8u`?v{VA6j͎P,n]ucz/>}nn/cN ҽsRA}/^ӊ,/|m# {Pe ;/ܹxоxsb祗IҥuuځÇnNO;55enjKK$:>n4αc){z>z~XѰC@vJ`O qԯޒ(MGռT{ݺZ"1}Ғ;7wnn~5̑N" psE [ WWՀyWW}h^W3uc|ܬ׍){b7&'퉉AVӷl0LWW `u_^C`Sל'&)krҮ׍igb¬-Ql}}a_/IiMn9p$_jnod;TUIQrQU%UG2pbªVV{5϶n ϋl~/:?B@ ~>ETUyan8x| ;n8ξӧbQ}^wvF],IKKҒKE^>7Evlyz泍s` /a-/{.ݴ--yb~h؍8 $׆צ7UB a߭/͝;3,ޙó'N:vF]u. o46<"z:`eeij˃N,4a(Ą9>nTb=>n4U\{v}v7׍|?⡾P~⤔&J0L0 tv4MmkuٲaT1 ٶ5TRPG3 &mϻ'iles]7 4 8nʲT=HӦڶJqahVLSq=gӉ=/vN H|C@v|Q޲4RExqn'B[+'NL?ȗ;DQFYf3hV+fjfn|jCf> NNZYOڰAnfnGvn4jGSy0(T&&z(/~D I2Ju8IIҥN'NlQ s"j* 5ժ*"խT L0L]7@0},lfQz^yqa 2(m|tx9i$i[7L9 ^wZM[wؘ[aߛ\;?!MsV}+4m>uv;j6U heŧ$Ȳ86FA^UF`t(;Z /ey$UǍ1clL=|ǍqsjʢY ¾p ('E a rY>qf+F6UVֶɖft]4څu]4Vtu·8x9=w0*M~(H.&x(4juaZ_VL¾4G6i2,Jm[4-iTx6FC¾7"ϋxiJ.9XVnmjfS<@0Rwy[\tYՠm4FwNNh=z_ ;:gyy;oEx);>] Thm65 a_ IҥF<Lq(Ff0 (ʥ8$Uu]mUe]Msuٶ5ZHI[bY*M۶wH.]^^N|P8eij` N|?|Db*eǂy2qt@J }3/_;w$ZW=>3sdv}nTCX%v:wb'oqmzڙUhh؍=>n$dؓFv04D#{;>6j:KyyM/¾ӍRl\(KG&Q) W׍|?FNyHGej5RٶVi궭ңf) }n0LKI W}?Iҍrl$$]7ZwT벢5M2KARTTU2 ކQ}ߏ0c q܍ Hyi4M~EiAq+kŻk5MEM-Ke4RJXaYu]6MUERFx'[Vfyk2Mg-Tuwv ?xҽss\7uU:D_76ž7٥KKҒQ%8zadv);=LMٵYĞnoƒt2-OŊ"ZJ:8mkxh#Iʵ Bve)0OIɵJNecXQ$ \*mmJ{p,M{$aźWQUeJ$e1PkƬ,8tڔ3Kʽ뾷I=ʦP$:u]uܥm۪H(nccؘq^wbl̠%MƾE&4 s>]7&RO]7a:fYaeضfۚeBRm[ۖ;\i*7Qx5M0L(K.%G{q]] ݞn/RJnʆARÐ%jۃ0)MSei\-eI5IBALTE8$OYApݹa*.IӾD>$M{AZAicw(KRVj5ZPɺ.rv.?*(wk(Vjz.E8LP%i:h H$g说q^eY,H,U/$b*TYa]$g]_8}/4(VЩSz mGom)˓ÉӡFވOĢ(bF]V9< [Xٮ;Ea1s( l(JiӉt,.;F/u]qmlL?xfj.p^nAֹaR}ߏ)7EY{^AP^pݸnK+BU*_7X 3^›m漋V(JTKx)Hnrmkz02RGQ]j|BEQFӉ7VV(h*y4"VP&R}?s;(HwgK^׍]ly~4R莣jCcw}VGմFO(tO%mQMʃ_O},RV3<ݧRnVn1FQeYptpv{R($2%/Պm "U S2(ET*Rxp1ƨfNvi;'蔩U<NQN'${dY/ CŪa=(]<aQU%Yi;FܖPj|m4#\ʛ)Ci[ݱ,RkSw~QqjjgB x:]Qmiɝ_;77wv~B擓֫_}gggO:u\Up+x~g;"NO;SSq'>&zpbz5yq0gJ$:5^z^r5M([i<⹶麢a{e#"(\7.QQ -I zu#Ƙ>iy^P{+e)O|՟KYLTDBRMa Jب  m18 V* C Ooom{+|?4̓ EAb]LaYۋ!fJExy?j:)p۾OŊ+TD2UUJnA@aAy^l:,GndzwF$HwAU }tK7qݷ;t(2VeUAzqYVÇOdo~EF KNH] g4hcc赚NZmEݱ1q4MCM)\J#t: ׍"ZuczWK^߭k("`jkסU:pzXF;(/fEV^G4ZٔW}y3z;($dY+}VRIbJKExJKw:qD7^& ?rvߐ]/UͶ3̪K./\Ov;yjJȵkŽ^y A~0v/6<m0E)j= tە~m,b,K.GgtVf`{! Qv:1c╾EASr͓KEy {^7EžUŊa\SJݴ`(:h5Rb1m_.su?zmxqƘ,WHy^r,rIiWIWeSMSʙKY窷"ƧR2MrjS$U C(%pAxx!{O<Z{i"#ejŶ5GmViֶJ^ ܞl. "1-hȔt ɛFAz H whenN-k1Yw:_v7H.4˲\廏!TDǼ˒T)qܵ,%2U,TuV{~v{^!B^9Z; ia2cVËxeK:7x-Ĺz~v7W矿ۯg]$nĮnDS6tdFND2Ek5qtJmj}ӵڠjw88zޫV(iڣ4䁟EU &z~2,/|?eWc*l$UZMg8$. :mIEMC OX`= YsTݯV+a^]V*QZǺgXT*iz^iWTBZ@|" ~c~+'IΘ2 Z `r?[diDIt7fO8懓*?~ێwؽjG>򑝼"~qߏ]R)k v5R,Kk4'a)w{Ɏc{>(EiFO/9B( /&Y=Tg)tC"S]eYc/0ʲi2_Q?jb*V_KWΉCqY)9Z^N*/״jY):H|ҥvE#WmR{"clb6Ms T׆0Jp^-JUlН\^`A$ߏ3Tqœ\f1)LV+ժ@j2,HSAuQW*^=>"UE+1AEEATE*Ę` }彼ɘ]=Fvߓfbbw /ܱmر:Pmjڍt_V6&xAFGy!H= W3 3 `KWN:ޖy^^e=/$hWPw#d^/ʆaJӉtYs|Le~Qq]wwn@4:4\hEQ+W+5 cP̍AMȏ¦5\Sm&jn(VyuӴK(ʺAڏ.v{ԠLf%lf;/77}ٱ{G}ꩧ4MA mIDAT~aa{???wqWyя~td|+Ϝ9sO~ / VWW?:tDO}S??}nۿ˿}n}_b׻OZoooy[?Gydm^paBE}̮x~l__S׿O=ԯگm?C_Wo=Cy{&'' a/ҟ/˿~6o|sssO3}kO=׿{6G}t㻯w>GZ^L+˗j 04Mcj4Z,B=0-KheJ1f5 Bؖw|` )3Ҵ7Rx\HL(x_oY޲qg.Fͥ~dizrzJ]4nƭ2˟x t:{6 s=Їw _wf_',;{#G4M7M?Dn4g8gϞ-7~߽ݮ,1vw{l'x׾5~4cƇ>z|Aַ7(j6GWO<6;{ηA0ÌoƉGQ}׿NKΞ=W033dY>s{ ~Eo~g裏O#Z[x'ַiwwq\??fYco]^^;{p̙3&&&oRpY\\\{u<67A7rUJx[[=7|+wЇyqq__?яn4M,e9G}1~yA~~K_yYIזZfN>}졇*_G9[󌱿q]:hk/|aee#$IOy|`ee{?__`#Zw#x[޲WPU?\pĉ?zSwox# >@////%n 'aoŞOnM]C}`9rvߊ=.\[¾;Teoa_ a_ a_0 wHGsIENDB`XQilla-2.3.4/docs/simple-api/namespacemembers.html0000644001725400016040000000401413273140074017024 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Here is a list of all namespace members with links to the namespace documentation for each member:
    XQilla-2.3.4/docs/simple-api/Result_8hpp__dep__incl.md50000644001725400016040000000004013273140074017601 00000000000000eb7c4c69bd4a04981b7e37053a084a73XQilla-2.3.4/docs/simple-api/inherit_graph_20.map0000644001725400016040000000027413273140077016461 00000000000000 XQilla-2.3.4/docs/simple-api/classEventHandler__inherit__graph.md50000644001725400016040000000004013273140074022037 000000000000000525a9a3943f734c5debc2cf66b0a093XQilla-2.3.4/docs/simple-api/DOMXPathNSResolver_8hpp.html0000644001725400016040000001000313273140077020021 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DOMXPathNSResolver.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMXPathNSResolver.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathNSResolver
     The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classXQillaConfiguration.html0000644001725400016040000005655013273140077020504 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaConfiguration Class Referenceabstract

    #include <XQillaConfiguration.hpp>

    Inheritance diagram for XQillaConfiguration:

    Public Member Functions

    virtual ~XQillaConfiguration ()
     
    virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)=0
     
    virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)=0
     
    virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)=0
     
    virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)=0
     
    virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)=0
     
    virtual ASTToXML * createASTToXML ()=0
     
    virtual void populateStaticContext (StaticContext *context)
     
    virtual void populateDynamicContext (DynamicContext *context)
     
    virtual void testInterrupt ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual XQillaConfiguration::~XQillaConfiguration ( )
    inlinevirtual

    Member Function Documentation

    virtual ASTToXML* XQillaConfiguration::createASTToXML ( )
    pure virtual
    virtual URIResolver* XQillaConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr)
    pure virtual
    virtual DocumentCache* XQillaConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr)
    pure virtual
    virtual ItemFactory* XQillaConfiguration::createItemFactory ( DocumentCache cache,
    xercesc::MemoryManager memMgr 
    )
    pure virtual
    virtual SequenceBuilder* XQillaConfiguration::createSequenceBuilder ( const DynamicContext context)
    pure virtual
    virtual UpdateFactory* XQillaConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr)
    pure virtual
    virtual void XQillaConfiguration::populateDynamicContext ( DynamicContext context)
    inlinevirtual
    virtual void XQillaConfiguration::populateStaticContext ( StaticContext context)
    inlinevirtual
    virtual void XQillaConfiguration::testInterrupt ( )
    inlinevirtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/Sequence_8hpp_source.html0000644001725400016040000005522013273140073017610 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Sequence.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _SEQUENCE_HPP
    21 #define _SEQUENCE_HPP
    22 
    23 #include <vector>
    24 
    25 #include <xqilla/framework/XQillaExport.hpp>
    28 
    29 #include <xercesc/util/XMemory.hpp>
    31 
    33 
    34 typedef std::vector<Item::Ptr, XQillaAllocator<Item::Ptr> > VectorOfItems;
    35 
    39 class XQILLA_API Sequence : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    40 {
    41 
    42 public:
    43  typedef VectorOfItems::iterator iterator;
    44  typedef VectorOfItems::const_iterator const_iterator;
    45  typedef VectorOfItems::reverse_iterator reverse_iterator;
    46  typedef VectorOfItems::const_reverse_iterator const_reverse_iterator;
    47 
    48  // constructor that takes one Item
    49  Sequence(const Item::Ptr &item, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
    50  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    51  // constructor that creates a empty sequence
    52  Sequence(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
    53  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    55  Sequence(size_t n, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
    56  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    57  Sequence(const Sequence&, size_t start, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
    58  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
    59  // copy constructor
    60  Sequence(const Sequence&, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr);
    61  // copy constructor
    62  Sequence(const Sequence&);
    63  Sequence &operator=(const Sequence &);
    64 
    65  ~Sequence();
    66 
    67  void clear();
    68 
    69  const Item::Ptr &first() const;
    70  const Item::Ptr &second() const;
    71 
    73  Sequence::iterator begin(void);
    74  Sequence::const_iterator begin(void) const;
    75 
    77  Sequence::iterator end(void);
    78  Sequence::const_iterator end(void) const;
    79 
    81  Sequence::reverse_iterator rbegin(void);
    82  Sequence::const_reverse_iterator rbegin(void) const;
    83 
    84  Sequence::reverse_iterator rend(void);
    85  Sequence::const_reverse_iterator rend(void) const;
    86 
    88  size_t getLength(void) const;
    89 
    91  const Item::Ptr &item(size_t index) const;
    93  const Item::Ptr &item(const ATDecimalOrDerived::Ptr &index) const;
    94 
    96  void addItem(const Item::Ptr &item);
    97 
    99  void addItemFront(const Item::Ptr &item);
    100 
    102  void joinSequence(const Sequence & s);
    103 
    105  bool isEmpty() const;
    106 
    108  void sortIntoDocumentOrder(const DynamicContext *context);
    109 
    111  void sortWithCollation(const Collation *collation, const DynamicContext *context);
    112 
    113 private:
    114  VectorOfItems _itemList;
    115 
    116  friend class SequenceResult;
    117 };
    118 
    119 #endif
    VectorOfItems::iterator iterator
    Definition: Sequence.hpp:43
    Definition: Collation.hpp:29
    std::vector< Item::Ptr, XQillaAllocator< Item::Ptr > > VectorOfItems
    Definition: Sequence.hpp:32
    VectorOfItems::reverse_iterator reverse_iterator
    Definition: Sequence.hpp:45
    VectorOfItems::const_iterator const_iterator
    Definition: Sequence.hpp:44
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    VectorOfItems::const_reverse_iterator const_reverse_iterator
    Definition: Sequence.hpp:46
    An eagerly evaluated result of a query execution.
    Definition: Sequence.hpp:39
    XQilla-2.3.4/docs/simple-api/StackFrame_8hpp__incl.md50000644001725400016040000000004013273140074017354 000000000000003e593313d3d95ba703e6b12eaae19df2XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLResourceIdentifier-members.html0000644001725400016040000001742113273140074024371 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLResourceIdentifier Member List
    XQilla-2.3.4/docs/simple-api/XMLEntityResolver_8hpp.html0000644001725400016040000001036413273140077020043 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLEntityResolver.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/XMemory.hpp>
    #include <xercesc/util/XMLResourceIdentifier.hpp>
    Include dependency graph for XMLEntityResolver.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::XMLEntityResolver
     Revised interface for resolving entities. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/DOMNode_8hpp__incl.md50000644001725400016040000000004013273140074016561 00000000000000ab31ada99e9c12ac5548dc76c7ee6d22XQilla-2.3.4/docs/simple-api/ModuleResolver_8hpp__incl.map0000644001725400016040000000007713273140075020406 00000000000000 XQilla-2.3.4/docs/simple-api/StaticType_8hpp__dep__incl.md50000644001725400016040000000004013273140074020414 00000000000000c5ba084592655361741ab825ee349802XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__incl.md50000644001725400016040000000004013273140074017515 00000000000000da1933cfb1c45a7325f8bb1dab2dbabaXQilla-2.3.4/docs/simple-api/StaticContext_8hpp__incl.map0000644001725400016040000000325313273140076020233 00000000000000 XQilla-2.3.4/docs/simple-api/classFunctionRef__inherit__graph.md50000644001725400016040000000004013273140074021702 00000000000000d5119328aaf0bf937f770534b05dd14cXQilla-2.3.4/docs/simple-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.map0000644001725400016040000000105213273140076021422 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_50.png0000644001725400016040000000365113273140077016475 00000000000000PNG  IHDR%UbKGD^IDATxoHS_ZBSgɦ3*0^h,&ZI` &2aVP*Cm]0-ݝߋݚ6o>{sw{B@6DYRh Z;`yw.^H5Gv&I/hλwz[XNwY,.s,;/h Zbz|byF#0 u^ZZiӦ̪* x=l`TWWFC *f za0X(|2s8‰ >thrrR"dgg?x𠯯޽{)))rvAV+B6xRRR͛I"f8`fff2ͷe!z8ZTT!<}tFF9bJsNM:; 6דy+ [@`U?- lV{ƍ7oje˖CjdΫW.--tkWZ]zL&۵kD"AGLLL?~ǫTiۭhALLѣG'&&x< 7b8?-~qY! nggggTT$l6ĉCCC?B=ƍ R9996bVTTHRła֭[U*\s&o(gϞvIzLcǎČyݠF.HTQQrKJJv{Y`9߿d9r4"?}4ǹw9N ={Z®.0 033d2_~2677D"X܌,o߾Em\PB].׭[233}E#ԛ n0D"ќ k4}LsN{i{{{SShDux<զlH$ݻwgddhZҮn7a0%}ll P"hhhÇIIIȒ|Bmt?NLLlkkvZOOOQQQddd rH+**v{aaaeeerr,D⚚lFT*?TVVo ۷ E.+?? 0 ~p9>Z~=ɴk|WP)111)))/^ ~>O366͛-[\r!i'{0ݻW&233P(ѯ_b\ѣK.\.`0>D{w@oo'OL>|8''nc&JjFIKK0 ð۷:u_.,˾|W)Js`+ e=Vd2%%%jo ZZZ8VLV]|95L&u:ϟOMM]bP(,//d 76***!!NPp\R²2_|),,={嚞VT|>ڵ =05;;cǎHGmmP(|ݼ뉉̙3.ۿ)++K8|ڼq3a]__)66W"""""MxY O bs͚5JrG/ދr7owxA^z9_, &$$x[~;66b~Lm6.c^;^zwxd5]IENDB`XQilla-2.3.4/docs/simple-api/classEventHandler-members.html0000644001725400016040000001502513273140074020556 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventHandler Member List

    This is the complete list of members for EventHandler, including all inherited members.

    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventHandlerinlinevirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandlerpure virtual
    commentEvent(const XMLCh *value)=0EventHandlerpure virtual
    endDocumentEvent()=0EventHandlerpure virtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandlerpure virtual
    endEvent()=0EventHandlerpure virtual
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)=0EventHandlerpure virtual
    piEvent(const XMLCh *target, const XMLCh *value)=0EventHandlerpure virtual
    setLocationInfo(const LocationInfo *location)EventHandlerinlinevirtual
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)=0EventHandlerpure virtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0EventHandlerpure virtual
    textEvent(const XMLCh *value)=0EventHandlerpure virtual
    textEvent(const XMLCh *chars, unsigned int length)=0EventHandlerpure virtual
    ~EventHandler()EventHandlerinlinevirtual
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.png0000644001725400016040000031730613273140076023216 00000000000000PNG  IHDRp_S)bKGD IDATxy T3IE ٲ$P7)i׾ !J"mTnJuӭ(݊rSIT֐l"D2vNY\g|:3){y_X3  *PP6 pAޞB`'''w5`* O>:,` x?) r&&&Xg#T l`(@A KKZ_ee˜1c~gϞ1=7@ALJJJUUUyyN?Ż_iii o޼ŋfxl 0ǏGDVVv ,puu=wyJuttt\p'ԩS]\\-[Q*p8޽{#""h/m&...''gkkA&%$$,--icBGkݿ_MMMBBҥK=4iӧi'H$;;;)))III;;;Dk뫦6nܸ+W 2{lAhUACL޽{pUZZҥK3˗/DEE>R`A{NDDvlnnx⢢"<qYggguuu<ckkhAAAw_=155mnn&=<</_644,--'OڴiSCCݻwA^#Fl߾A_3իW7773 x@ VRRRQQ K;fffBpLTUUvrLL&UBBB3{ƬGo3//B$&&Қ3W^(J[񸏔΁k``+((PTTDBЎQRR*//GDYYQRHHA~~iJJJ_ ddd~8Tnn9s|wڪE*HUδ JͯRp\Co^j RRR|||Ŵ/ȔrrrnK&;qqqCCCZZgk׮zjC"ۍ233i_#˽>(`HLLܰa×/_= ??͗/_ũS@& | ޸q=H˗/wssVځSbbEJJ ?w܍7hekĈ펎3[RpFSPM0ܼbbbGioo谵655yEEP5^VVVbbbwnkkL7f̘JJJ6m$###$$4k֬/]vmܸq&Lpww755U `/)0AV 7r|pLl`({$,%*RF188#,C}} 45}{QJQWee;G޷yPPWe^^oBB2fh8:5` T%nn11$[e I@AEY7o}X1>=):9 A6!pPB§?}Zjki>|17~`8ÇR'))TTcpP55}wqyk-- k]]E3n Eχ >w3 أۡC?| ء1cFbpT9:L(155 @A,o;zilǽ{8PP;(x`l0n3I֭!++y)0 EQ'۷vwpX;|8YPP(PTbmca(^$+{>L:-PP];v54dNxT?{ÌOA5^AAP66{45NxT z/?>z @_BQ/2k%ҹs^^;xTл7b==-.T:^|9ܹkja +ы[ۧǎ-۹S\` ͛={ZX9ztֹ@CQj Y :Hi^߾#:0 *@ikܰfG),쐈 ׋-"X'[ʰ! "PTV6j HUUL:u uPPr̳ı΅^FFFXC` ^u};;=3&b `̐{bk 46(CWa| g=\`:D56~ߺsʔWc PP"2{î.{VSWXXh?cWpu(rt|YCBB\8X\ w/Ts9:}KzU]]\JձGBBbe0BZ>~|G`/  m::sa=o)((@Q/_644,--'Oljj qss ߾}Djnn1b}||:ѱ9ssŋx gNXbE|||ddDBQG]]J3p Όg}k:XPUUUh111333QD?ٙJPi'Ҏ{G h/h'xEdP]rK8 /GySrPLl ֹ`DZZ0@HHA~~())-??׮]ZZZwD2XMMMMM&555 EQQRIIv ƍMK(x\C^$ܺw񢡦<ֹ`L\\6DQ!--Pvvv7eddJJJhYYYNNN?+..,**a%ٳgzzzrrrLg&(_EEO73u.immlܸޞH$˗1kĈ펎XXX:u@ kkk"C&&&666_|!?D7oL> G&S$)9ECsaRR҂1pBAAAOO{… BBBZZZ->}˗NFDDի檪 ˗/700Xl+W~֭[222i͆_ !6䜜==#"L*u.Ljo }[VYUWYu^uԩ___zN711e7% f nߎwq1ӧwミHyy17ΨϷuvQYYy'O` PPږ#G^yֹЫ9..7>>aܸ *JK/6IN{ ۷`s0 D{ \ju.P%CC?tL2~:m})JÇϯ: àNw$ =z$ֹodg74|֖[ft))aSAA˗#OXɳO67w}w/)S[Ym8c$ AAl:;66Yu.)zLJ۴itAAlΞ l|h]}DQˏnedJ>vӦct40 ;KYYQsE ׮ͭ\\#8zlEd(++:Ah5X hllK4Pdk65k͛)  &bC4x0=KBqaaAsARS?ZFaXg#A"::lݘWBC?,Zz玥w@A Z߲EwBU (qvu&\u08y2P@`k1!#'֋_4r$ -[o Έ) 1ׯ?_ɓrrr1pԁ۷ӧm6WOO**x} $ ԁ!XPpjLz<)zU` (X\\nX/ܟ%O{{XY><:Pt,\xYGgnl{Wf& +qwM0.^ oo';VT4l|j.gAAӋ=Jo3q1췠f;""AA֒BxL<$EFFw7䶢GƎf`:ϫ/_ݻ䔛А{pnv m QQpz̡CK'OZBwԤ@0NKJݿz)76v6Mw TSL$y/_||vsϬ̘͛1)nJ0::H \֞ΥO* ݴ<1bTS L7o649:Nw_ԚQV{ ) PZZ2)\订䶜8n t)߁aǎ>U'$`iÆG < ""`p 99?**g7iCCwF#T^G&S-s0Ak ./oxFׅ_޵tG$e׮EE_CBl򴆆k^ٳ"(zJJ>%%IŨwaǷrQFaCTK8џgx{1C}1ӧXg1mܸ,B.";?7 qvAG[[WhG̡P(FFFX'2p82u -*ϰLMgs Py΅͙xTRSӴu._6\/0D=Y1u{?\G0DP(Tg fr EyRSkAdSVVa+VpBz"p8FԭLAAa̘1g̼'(<'0=ᥜ͸(;[D9 dggwlhhHJJNuuuZZZ~~~7o655}wz-$7(*rjuQέ;WC]`eɒ%aaaϏB׎ .:ujuu˲e˸;VW7>lŵ{<ܰA{yCUg}7mm۶vttP(gg)S ͝;۷gw{%HvvvRRRvvv$ AC<޽{pUZZҥKdGGGyyy KK/_TRR믿sP3::HZZg}4~>((((7A P577_xqQQ8{k$%%+++#""dddh'w\t|ˆx<^[[ɓ Xss#o^^^ ׯ_x|NNmwz栠 A}k|~~~`#(<-NQׯ͜NRwz0mN jAAQYti]]]|||vrppҔ)S#<|ZUUE;ԬG3//B$&&ҺPQQ } ȫWPP( #=T 򊶶;wvԗDk^xA'-=w122ڹs555 EQQRIIu_pEdڴi?DC{ܰDZZTnn9swڪE*HTVVu7 r=i ;w^uu]ȉ/^\]_:9ΞȉCOO%999&&fKII^*((+ǏǴp+**~B\\6pDQ!-- Ak^zg!HvvvȔЎ|ն *Ohj~n޽ EDC[n٢༆pϞ=f͒Ni~~~/_ss{مVWWGGG9sAAoܸs7n'x<~nnn899%&&ZXXsݸqV&;;;F HKKũS@&}|S9X53L]TKK#uv]]d(+A~xBLLLZZȑ#d2YIIiѺ.\QTT E~lee%***&&{6%%%6m5kVXXXwn׮]7n܄ MMM%%%;::lmmeddMMMvgW=i5T vpׯ-_g?ziTTNL]Aؾ!8ϏnJnj;rN2,?j TUW7;^@`{#uvv~VVz˖i72wֶz)667#Cjƌ~@AŘ+͛uDX[ʊ:8aodBQÇH|||ާOU#QiR K}}S[>r$!.]˫>6j?{#s%I$ ͞8rpcXAAҽ{37g,^}xuf%%N.EE_>MΨjTTܴi5S`0 *fzƌư߾>x&&:?z4==XFFkԤo *f||RIVVzlI>#MkUPPDY\=*Æw7>( (w&n٢+&6aRS  bcXHI)x+//vMfrbY( TlylSmozƌl "EóY&߽klCCR>>O- WJIRQ}f͚|fv$(˗_3fԳgyg5&+QyyWO߳g<AJJJ޽{7>>+Ws b7,""KJݿ1]{A$H5MO/|925h޼)44d#b-~iSgW@=ܹ ɴoy FFdfT Tn{_vvuml|g͚u+WfHg'֭[&O <0g7AA嶛7cW>}Dݿv#zR~~> U>`WrWC}|R.Ud,lrgE IDATܹ ML` Z[?jk|pҥXuCHMMsxx xJTYY & -nƛb11PMCPرk%ZFեK&NcK@44 3x K>>sزS[WȑzzffYƨ¯w)jd55|ٳ[b{|ee#&k-&6:<0TSKW.--z[1,\h-!!AA冷ou;ҩSArrv^hss;~uj/E=xurVPN֟AQԩ uuY=xJPmm3<>apP9_,(I=yr($ַ  #TN $(3Ys\7nzǫ[^l((뛶jtAV$'½HvťKص )PP9"/*+a +A(7o O?;ujN+X>D_ X' P9'UAA\WW ~e*#::'66K_aCӧOӱ FIΰ^fWFoۦ7ysYb={ZX=~wMWW,3o #T jkشۈnތ>]Y@ع|} 423QQlL55M۶yN&b`fŵo>K}hmܲ#U`Pklq0!3=#8CP} `D xgf{b9˙3!II>ܩ ι^8vҤIʎS\o̙#''}fQQш#|}}yի|B;h|oF@AeV#$%}NI) ]ɓfff)))UUUT*u˖-gҾ)3P>w{mxW{+|;ǹ.fdddddi"""iii/9 ~5jTII o޼>|xNNKtY^^ HSS_b/A8!FlqLGAܽ{7..NVVŅVM~zPPPDDDBBB~~}kk/^\|{xxϣ.] /_޿̙{n۶mMMMtCCC:TZZmmm---EEE9sqz~"gggO4W^z( zcee)TCgC=J=#$4΁ʰyy1 YZzKpvPd/Pow]]?l[k0u<.6:<=͛–{q]\mmwa}d[wcqqvPM *c**}61Ν'ԩ2իxx43Sy0zٳj?&N_ 9<~I::}\p\xT.\КDMMߟ:U+bǎy^eݷoTV6YkkOr`ʗ߿w2:|(up>cY'2j C1~ ߟ=;z#T$%}&(߄JEߘ=SS2ݳ3P CTT0(h <F ҒgAF 9,vM"QN XPˋ'_CQQ"$) *P[f=J;Wyd {q#EC0$**COoX^e55MK2PPؔ%%n݊].//b(y{b?l9. @?%redDZ84e4Xĉɓ%wb=x+ZʵN`@JܥK+Lfq䂰0ù4(KMMSNN9C~i65a߮.ŋ6͜1C8xeoxJ%..o(~==eOֶ,ƒ.5\HhܸS_mڱ)0 jSKMMSAA Pę^&ѣ8xKK֭===dZ[[mmm'M$ сuRchJeԫWG5k='VVzLߚ5~0_!(vy׷;vozA"4a„<7ob`j_>Ϛ5Υr}kݸqs}~ 8yr%+A!8#g+ \!!!7°N 0x@A%E߼)9La׮by_quuYuƎ^WWG{O$i$NJJJRRΎD"Q[n &$$p釞?7G7ʕ+dGGGyyy KK>(Sׯ-Lc<##&?$>C܆e9;G?ywtWSA\]]|3gxzz/^?}enN{?$$$55ʕ+'N~zPPPDDDBBB~~S ~3QU J')*oi`/C[6dmҊ&N=w.C1Gd2vy >>>___UUU㘘MMMuuu//>D?7GQAEhmUTTivڜ-/ত_JM-љL10Uә;7&cjj燘hۯ;,Y2a-'mmmϟ?722qppptt<~ %%%' wuuijjv3mڴ=9@FFA~=L$Z LEٳ9H*cv$E^}a`=} @RrC|Errrh/q8ܲed2xAAŏ4YY?~>~ ϗLII 8++{W |֪KWA 7nܹLtS~muS"=+AAƌciiibbQ\\bkkkjjJƍD"_|BCCO<  7ns^s8u@ qluܟeOHzN^貽}sXqm6O-NNh\\.':)gN6M@@@AAĉ/577[YY޽&M3fǏi]\pADDDQQ144ӟ( Hvakk+###,,ljjGsֿ_P 7{zv¯[9?SLǭ[=##hj3/~onk]<37ݻ/_>}*IOwBeeea711dত޽}[s|%KO\5cAaA栠"5P@`ĴiS^PPjD//.Ug>9:+&򦒒oф/ PP55UNZ={ќ9JJJ0 ^Ϝ@ϚŴ.qq>}6((rro^Eʢs^$|\-""dԭ[ΝL/ڋ"sYk3%KwxsS/p  ˪i30PpPGg2l @AWW332J׭cx9ϙĈvOڳ硚+*+= |sI[Xԩ2X̀Ԣ#3v RRdܺDq#ǖsKW9,,?=%pXu\\Lޕx֞8rd?  ;͛B}& ?ӪFo_Ԧ%KzzZ-^<]%+++:@//˗i>VW7\9nnqS0NakO޷oe{/L ,,`bce'##®fڼy3BaW@7a]]] 47}1u꣢rԤ='".**͂zE޵KEEĉl ^T*uFlnnDWW5k4>)FAA "ji_PsVqK~ɉ\p_t).&.(vE~~5..&lx ,QPꢢ+Vlf(oױioMrq1QPgK@vy:…BŒ%So4WW:#g IDAT8(} =FEHHikfOw&3dsAK-?;9=rժimؔ8 \h+гwTT1ewkkÇov5eoArWnmhص􎌌hl?lj R`3g*}ZUUcNNɓQ L|~=DDd|xp'/G"Q>|sJУG/uF((5qUd$^Hh$CϽ_Z Mvv۶]ҕ\\VVBk%> WFQSSer-bl9(|UUtm7E~".>a X?=\jnYY^S8 22J,Qb77 "߻zRu܋7o BCmݝ-!ӱcOQ9^%^7lB5#;v賖 HMMY@ϝSB"QΞ ٲ ǡ P'3H> QOOyLTQ?wn>hܸѶYŜ{U٦M3JxP'38a8Iɾt (3-S]]kh臝;Y_k0(˗WM ޼)\jKKgd(Uo57w,^|wʨQ#6lZvH}}ٳ[͞b(}B婨0a1I$O 7 ۯb1dCC n߶d{A "TW74OOAehmX ~xCn٢mnwqM|"e8ZÝH+*M'-_t:dl*aB^^֭Æ ;Fu0/ _ >v@~;vT v#*22/I26ܜ0a\d/( ٥\@]@(+KLf%J/3g֊qul <~w86,TA/~ޕZhmm,- ?`l;A陴w-[xxlyNje4>IN'( 30=D14daMoc?J' z3/7N޿w: *Ǘp8 H˛>}D_>뛺n Yֶ\w©Se.r=<^=;S_6iR?w$.ZDzDb>={6d̘~]۶KNd/TS`P첾/TV6.X@oAIQSw>$'<{Nieu/'.T@(߻IIǎ6`3g2L=sҥK2h0ӚoOii}p55.M/#22B`1~yذ5/CVV6~33IIs*5=n0ƍ/諧W[۲y&Ip_4440c$ ,5Té$2VO*Ek b.Wؽ{/o55M6 a^M!h5VL(6v/߇Ė})D$~\mn>|\>|K@_[6mr6 AYYQNwPu>ɉ9KWQ)\2Տ8;Q٢uT*|-`iPss+~3))Nrhqt QS12HMM 4 j^^uBRR =;TW7%'b./䪪F{5Gg'y6怀"r̠{aT_RRR*++cbb<3EDDN85oJ˫RUc|:WWK;V`yfP>?VY+( č7,,,n޼u^$!!1~xA/_f/tSP6PuuSAAͼyt]@ zoh8cf@q#DZ[/f-=P=~< >>{WOcǎuww'cdgg'%%%))iggG"T[Ԅtuup8\ωӞ?7G7ʕ+dGGGyyy KK>ORR~P(SL;w۷om\\|rr2>mc~KS?W_ z//8҇ r&rj<; Lӹs!r9 YYّ#G.]ٹK/_644,--'O𐔔 C?7GQAM6544ܽ{A:ggguuu<ckkw󬬬O>-X?}kz/##C{hMVX `Ѫl>Zlm֮P~K83Ïg:Iby;FVHHH& drZZ544|}}i﫪VUUюcbb455ս>|ssEIHH@QػϨ6J MPQDAT,k{aQ Tl(iE;! HߏBn8+))|:vضx/F!ꬡ;U۷^2Phaa{,Bq/_&\fݵ}p!Y+ z>F$CBB,--;zAkkkAiJKKɓ'3gaym30ŒKJJ^_TT=}VyǓΝ QZʰ e;=A? 131ƪ2gff23JL;`SRRΞ=˽8CiiiUUU{m`݋!C7rO:[($$8eF&ΘCqqE11ٮ+{#C~~M^ ;;uօ}ʊ5k\\\JJJoݺyfggÇdddO>ׯ_gV޶86=z4#####c׮]f{ū+*****X k۷ĉj*A}/9ޫ.[vJxߺ V]B4M~fWT }_xř3gdddƌ̼i}A㖖'''eeeiii++zřccc׷mC9T*z%---qqӧ3z:)#3A]0DjhtMMg.5ٳ[&oQ;ۀr/2lzy:| T=CtQ[BVjM  KIv.E81-&4t\ 2DP+ƌQׯ(ԩ+!|zuEGg&&8`قrszxNA4 j~~t{ǎL*)"w. W6334թ Kv-iz1॥G n@mok!/Yy,>s{RSK_>ЩRgϋ-[fm0gk x1t| Q`jw˗OٜML8qbeV AnԂvjB`dɽ#gT\\Ξ-[< w^HhB8[QшǷ9~^(#9SXXҥ:v-zٲ\Fĉ\\h<057##i7A7j~~%KXlmzzّ#KByӦS Lz=F9?!""L+ nAP ŀW!++>r$m -5tZ#5Ȉuv7z\N`lΝ.8[_VV?v޽ ׮S7UlBAHh(>0jW7ޛD"OjhhN}=wn_'_O ZSu* DŽbU Ggd vR{R7P UZZʊ#ϥxyyCjjS]f|ɓ;U='="UV=׆ŋviuFf͚j!AP ŀZXXp/1&P5$%a~Ē/_ ^m失y.9stfH=NGBBR]˫07A hrZPP@]}DۗQ'q).!1lxv3ft|vMٷϛFC]h b Kx1z ;wtt!P1YÏ EEEH7Oˢꨨ7vm=| o#FH=ׂgCRSKW41>A|l)S4Iׯw"3Ý;Fu=dnjڹ50&&{zz= hz8)(ZffM8U]ӧWPB nt4NMfի{㳣S˞!P }>+Lr'1}(zpK.ĉ@ejn&{y}spSۊw~ :n:z?,,mZGqA4 eLj*V__Kӧ<"lg_[[)jPM A_++'w L:v,@\\ŋ: eLJ I QQ'*+r#*G++Yn-EdDNZ՝z'<bo?ȑ=A Lꈶ^ւ*gӑL;;^i [p[ċ'O}1vy[,ߏ- Z iie4IJ9~\HxWXXuLȞ= MLtR/GZuch7oh AԞCbk8HN.QPD}&SMmG}^\4}>ommŽ{u(/oؾiFF-[f LAʐ wN::;uPh'O=yey/~*!hT,N]ÊKpHm1 (=qbe[-1/s$';wVA u&D[Z(EEmgz6 3;Vi4ͮ5\msZ{&MjwYAԡ!PZslOfeh||%OŔ5/::3""ҥbb%N 3)۷o݊A;>>[1t{{{w+_ii+W jYY]Q6aJ{rO6>A>S%%wmMM-]k4{v'n}rb9wӧOV &0O@wݺu݊_J)hoNG|%}_XXeg2QTW׮f[bܷoɓE4 J@^\|4=7 ԴҺ:c;뛑fnU<~ei7ONF?t-0A )C%7=D"C1OAARGG{ ͑&]kѣVVL'];};f̡p mOg 9su8 ,ZlRZ[apΥ@$n⑒alz(88PTT$'-222rqmmO||뭬:ԃ%!4䫤Cͭ4xǏyơ;?z)mOqqÇOZ6Y*.^斢69^@ihh~7tzmm-ɝ?ŮÇ??̬9:lRj@hLH)F Ǐ~P+))TTTΝ;w+W:u;}oHP V3߿AÇ#GP(xyyM0N#NՌ+xZ^6zAd5x<{ݱ47ڻEg 򎟢)s@EJƞ>}ZOOB=/gkkkvv6@h>|`:PuttOfee19ޝL&P ƏZZZ޽{Ǹ7nc<F$CBB,--;zAkkkDDD KJJuuuuuuYYY3fʊ;w~𡮮F3󳖖VYY㱲2@XX0 kAZZ ##m۶SNEGGw)Y.2PeiWVׅ[@\V0??BPk֬  gu򭖔d^`(C$rꐝkoׯmϥaE܈TK{.BЌAǍ7yd.#Hk׮]|ykkG{*++c0===@JJJXXѣG+V|ә^^^ ELLLXXB?PXXsY rrr޽444TTTJKKo޼`<{lٲ Buu0{@wϾCǞ9Rܹsgҟڶ?~SپN9_eHTYrsq r3T pz1cM;UGC6$$$֭[[QQdeeż@ HHHdXH;Gek./ٳguuummmw)!!xPuak{934z9m/f,5jjjROh\\[{7ɓ].*J=y򤾾ơCH$  TBBq#n߾meezs򦥥IYYYZZʊu2 ʒӦM{󥺺:[[ۑ#G}1Xٚ7m$++;rm۶7nL4L&#FJq(]OUu?CUϡ2TVV^}vQQQ<ZpVw%1|Ew23qqEWHJ:vsonnūW\*ܵ˫6$dk bÅTyGʕו_.%Օ#kxV' 0>:Vׯ3߿ DI8V]=`?#?=9!1[Ugϯq"ׂ˹%[""O^թ6z\SxQWG'%%嵍)ԳDV2\ʰ9,,;dChiii)//mxF$Y,(RlzLm.&"ҩi' vBN8Q;@hG&S .ddllsիWرcܹWPkk4]A"aaT/_~_l(m58;//(ǏAAl~1gfPhԃUUx[@-(Rh{q||H{&%a-,xTM.'!}Lotdy y頧g@ C"HH:NG*ؚ32P/$$5xx|>pg'8Ϟ }|zbHHܞCCķ@F5ʤ*>uF{UWfgΝo݌/͛1wsw_g ;sfu]9|`ӑ̐Լ Yƺ77()9|7~~~Lm݄@ ㊤b.S@ppʕstIԸj/_ ݵkMzXUrM a33 ,N@~ Qq!$$Ěch4ZHH~ik~LaalHrr2Ўlqqʕ܎(acǏp8GU[zOD[U]}`ceeciiݴi'PTzxxڶmsy# nnO<>>׮E_`9kjj_=R_߼xCv̜S˲ 2ȑg0+Q(BOy+x O*vͺMIqmO%ٸ&۰aM\vBBB'`05mgBFW-)0Ѡ$CCuuuJm!r'ܝfJKm{x $Xrƛ̱cϜYSFA5#F9ԬZžb##Λ7Z[QQNN<qcCBqpxFK[ [FGgܽkl٤Z^8bį T"0joC--۶XǏMM˖uNG]^@W[ٷ?,6"b?Wb"þ~-02ܺpnAP?J`@-)m$'c)Z{)"" y J˫wocZ oCCS=sh HO/p!lSS퐐=c :B@e3S#((6D4ӿi4ztts;FzYycǏ;w\w Xls!!', !z"Q FII-@J ߿'vx#FZڧOҺ;\is!Zoxs{Un27׃sAl<644ʲig&-f:⑑ڊ%mgӑ7c,,wDbƍhK :L :9;8  rll$g}j}=QQ+Vt|LddzAANF~ |Dľ79{D`rrɚ5SNX SAq'IK %%5g6Z 8ÉzYY%%޹v<&&֭i;x*+'Oz2svts7-C PT:HfP)Zyyٴ2ee}4EEɓ;8Ēg-x1ر3fhuB#O~=>TZZffz"jS Af@-+lCii&qwSӱSZ#kj;w>]]eg<藚7=|xnAР2H0|1Z@j) Һ{SR?=k-ӑݻP(W9#RK Hssw2Vh A)CIfg]eERDD;y3FOOTk-v-ׂ]K۷../IO *[[ˊ & _XX~Ʈu.}+tw:ujU?&IA>>+V>ZAa`A4ps@mh 0ϐ)+gˑV"vER}=1!m;߼)2Sߴɴ {9NN> MKW3 ?ϡ$ a(X^^F˰^Vϡ{!((=k. Ȯ]^ׯiSS66LxA=Tm*IsHHp[s{995ktaQ^9JIq>W1:d20B~65nBiRVP8Hji|hϟ믹'Y9'Oj/=Sin&3:FF>h&0߿ {IxCMK"۷B}ӯ""B6pECCss7lnJK+o:Kv|PVVo߾;5 PQa W$}xBbk; >A>N ȣG畱h?:XZZw+_7_<ʊ17P򿶅"ŋ- J%w)riUUӾ}/>}۳g}fp)AP/9TEI RIXlmqqy\l$X^`05A۷ajwr,.,l߁0B~C ʲ/OV$&&[Bbf{u`l\]*kCK:UZ[mt~T+ C$I_sʿqي{=kX.kw<0uaR_<ЅU]P\\mgiifA7ziqRRߖo Һׯ3;{,L\\ѝ;N^Щ]xAA0kKKKg+)((h?7=-)))k;A T*0TuLn.n8e_߾\6<|^7x^M6;42zx--vPݐ{$,ѣ`ggg@QQCwʕ+q8+&p A!_7|+~^4588x\U/6ocѢE%%%>|5k1c^xvͰaRSS_Fk{?3qD===3fp̙3?~xⅭ-sM[[ٳ^^^7oM8… %*~fuffu2l}MƆ?)^5QPPec<% `W?Q>ĐKKKccccccǎ 555UU^#?? //OYY ''  g>dAAmo)0⟇geeϰrr=rdiW ;ycKK#?Rq!!!aggnݺ_:99YYY1/`mmm%"""$zѣG322222vŜmϬYTӧmmmY߳gOAAߏ9a5k\\\JJJoݺA}*epaƔUUU3Pq~[KQ#Bno?50]իVP=@hݼן9o. v=>r䈞͜9s_)cUFF666ƍа277geѢEfff/^~wƨ/`}fK,177wqq9sFRR`޼y&MpB6Oyx|;xllύo*e\y}~ox{ǩrӲ:'Ou*/_m„_Fǧ[с#GX[[3d H͖=RA=T2c/yiNdLNN.15X痥K'šC~Rbssw*1=^?ZZZ?~m w@a94r * _HK-ͭ~ݦ=rjOycǢ=<63[QbF!,6mH '>#jaa SĶ/N__mDն/JL,r sS7y{:|dw%R7o>|I#gk9sII yʕ/_w3ǷoߦO߭ 'M"QCj1{++ N65?-(ځsY3G|Zŋ{,tvKTz\\QLLw9"3f9xpq ,?4M>Ҳ[AO|P&vib.*0מOQFFbt,{]iiݳg=gAys,x~}OV7OԩUc;ݽ A~H55f,,Z|/_ Gy{-]:*?]޷oQ3-P(4Ginm zKJj33cc tp-c] A4q@?;\[K`+Zʐ`N.9Ⲍ{G2۶f;O:qo FOLDGgEETʊj33jo*#SFo9RPPP `Bn`jfASW9c޼uC Ͷڀ].Db۷iof75/_p( 6R(TT]F3RU2.+B 5~/EOܼy`kH$SSgt;TZZgm}Bf[kg2""?|ȡR&&Zhl7 m@RBBFA @aa̞P||.m1**v/]hjj9v5VX[ߓ۩!0%}}GXa=A T B EE홉/66fO7gVNѣOYtgibb]][o OHKNƊ̟{ͼy%$zuo*FFEU L`J$feعskro߶mNAW2r^ؾܹn߶QEEchhjHHJBFZZt۶͝?|EA|?* %,!1ӑ护 J76mEw))Q.)yK"#saK 2:bHHJppr||%NNӧkǻ T*F566ȈZZ(c Erlg$Ze]CfLҵVݾ0Z D~&˄sP(Y޹cgn>QXM PJ`j*ۆ 7Jur2Zݣ._:sfMV@@&S?| I OkmΘnb}8? ACe${BVV qsr3k6m2B~ žCCSDZz}ɤ ~ 4 %H`?sHdc,Ӄf5HGGʸ-AԩG>_nZWL*+?^+ 52{$F],NMm$#Y1ij4 aa>l6Ar.J}:˄o%%/[6];}}nAůlllSbPr\lh4AAl\}8GM 7ŋآIԎYja&!&~ t`CC(D!5G}ee#k ߰T2zSyy0ST ￟d?}u} |-22]TTx w}z S5MM-bXl ԤJP_.;w.TAArټߚBǏ[MMVzKee˗ Ϟ}bkΞXf jAePi4:LhtQ,%c*7YY%]$'c<md2I\\ώ)S4z,:zw9bF&)!πJdXb"FNNDSb^"&&ԩ)S4/Mp;Z={~wؙFA=?*cDbTQ,V]}$ N678lUrBBqXؾviil('˝=NzBZZ7D!!+ lߍ 7Pt: ##VRR57gJ]VB?nii4iOM mۓR_'Ԩ>&$kk+,6A?*[I$$$cu $%HH 9e$%%v!{+*r/ uG||@`j?ئs>>;fߍ sPÅ+&OLxt>7{99"L&Se%0R/_6a&eSގOmmg8`%[}}<Ο?g)̻ۓn߾ZWWaÆ#GJIIݽ{$99daaaÆoذa˖-z\R\\{'ND"@ 0o7|pԶ6OOO0[={ҥKlصkWEEE||>>|?1+;v'O{zzZ[[ FFqƍ~EGGO<)$$cm:::YYYǬ (*##c@@[RJJJ111,Y=B#^))ض3~!?z͛1m4Z&1|yt w%$m6gFSAX&ikL1nܸ2֎>@DD$//@ p A- 9Ş-mm%%%̖hc\+UVVl9BY& @__͛7k ?D[#Vt:By=R_\]gJ5kn1+;'ܻg߃Y338:>=sYw|E0v:&l!!!5_'0:y"Ao@/umtt */_z`? fظqݻ^:a„"ggg;;aÆ1/سg9˜Fuvv666NII9qL&HSN$%%ABBf77m۶ݸqc8fkk{Q ]Əfq aau9::>xH$;v1j֬YT*ӌN (PML|VvЏ; #J.t횵0.ɶ{xli*d]:%kd鹵R, Ǐprr*))QVV:r666 , VVV...d2 xDFF666...VVV?~055EMMM3gٳ@PP… 5cmX,H$%K\xz7oٳHDDd...Q_ƨ'< Ά?w0J %(,zpӼys]w0ƏWfD&S^.)?}&O3Sc~hkk7pQ s^.gAjqIumFom?xݩfͽ:A]f<_WG|9ळ)>}r )M---EEE?fl h!_+V1fC[T@ (h4#Bgg߹sǵ=ץlm}/) CT*-,,4oxQQ͛gmd:bx9ӤnE[z;Νm  u댼\@ ((F˸0zA7(e)<SKJjKJjڒJ|e%Bif ws̩V@.~ ƣF{G@@̛C.Bc}AX%""w[]Le*X }NGXlmii]ii]YY=_X:BUUVMm·oA<㷀 X-B AA[6>MQt:nݴC)Ѷ`SS˺u32ʩTZW=?.5=΂f2@X, $6jQFTUE~M;{g3kR)*DJK$TDdl-E"KJ PH,!ZH jF4xٚv~w3yttq`\[{cc+'ٹ^SS zSJ;s&{͚i㴰sqqB ` UUUfGJX؎㱧O{ZY`0FF;w8hQQ57o7lzvMRP1::k~ qB HC,\8ݡN矻̙ezEEUU٠ ;dž76̟JJ2!pPtSQQRag~kAFT 'tׯ(kz 0h x km}AJjr]ݥOQQ# )BJI@:tt4hd:B5hM4No(gE֭[w^U8p#-98//͛gǩ.mINNz}t+-XgCuppkzz:nkCZ[)XX*!=mt`ש6ň`K#11ܓ'7yc@T*QͿsƌIII4vH0N/@ } %_EEE93IYx۷Áeչ%|Yɪ**Jtܹs C$JL}XRfQJJ>ϙstС<0{vz6ZNN<@ N\~^% S"A@8CyE6n .,((Mio`icb'@PLr]ƝiӦ\\\X6nheeӧ~678bf9a'Om?q|hM!!X _b9Cuqq9|ѣ)Jxx6ڠ:::æ_mm::_W=yRه2!o *%%u ?#''`ƳFbfgg1 xiҤw2V}ݻgiixIVVViiinnns9w͛7gΜR{sppۙ|PeKKMqqq7^|tǡ?~ԨQG%G \pĉaaaNB۟?~ӦM?~Eejmm 3gN||khhhkk 8KKK_/^<CCÖ(J~~ rȓ'O˗GFF>>~~~vvvʹ5k(**jkk{yy/_>r[nyxxhkkkiimܸqذaܤT* ---D"&55UHHիfΜ~ @~uXĉUߜ###I*s5`…666۷o# IDATH$mmmwwtᛚB@FF5\ DpfPmtttXXfuu5s5s111B]]PSS&%!!~…SN-\p̘1yٳpKKK9(`ҤI[t)z/ХckLC/_0ZXXdffjkk?y׷S! M/5رc[lAoJII'r^GNN]z}Ç]\\8J[nmٲҥKĹQ[[{+VLC}<m `ҤIv422RPPT'@~! HhhܹsnɓlEdddMMMIIɆ .],emmUZZZZZzСnR ?33BPT</$$MB\zA0mmmtQFF&""⇑c'N^__[ZSHQ0X ƍtnIСÇOIIYt˖ Wwt htATUe{dtP^jkdo[˥R1* $С((TԿ|iB> IM}!*&#%%ڟvB @3 QnvR}i:[&?~&JJ ʪʪ˪ɪBG @ } t?;tK^YIlnX59yJ𡶺7o_VTmW!!ARrrr腒  )..C5޽{ eS\\6`n?477%%%UWW.\pY,?'˗/7wilmm$ wt%$XzKmсokkG۷o8@x*߁S|xIkfv?a6dhkk9ZM'2 dggʅ7n؟6}}S^^VTTz꺺ÇI]ա:88 Kk+͛AF:PTT++UU45UUb ~$^Ww`N$҄;BB4"&$D^9HfҤI,oVG%%充]G1 =hlq׿СB AXnݻ?m鵵.]~ j^DDP"DZxq$zuE:^W׬K"UV^C-oWYu~$:κuq0F*kjDZ{^QV53Gd'8:;vzt~cttp ~۷LP9w!Wտf~8gKR«W l4[MfbCn# (xRv횇ܹso aYjUuuunn.BYpڦy湸\rݻ...@P(͌ܶ*GҥK999.\Xl'zرcW\sqqcvx𡮮nuu5022CEEeĉ;Q!JW/K#+}N%Hu107PWtHF[ӔqԏvabDsNh O2jllĸ_UU^1"2dȐdW^1٥уh47qnId{{;{099YGGڶfv=T T3T!l3;w1wh$$$P2Ç;v044pgϞ6p ~~#jŰ0ht$%)F:T*1JRiWo2so6„={rb5kWd8˗/믿7H$㡔O>\WWc`````MJFFΝ;ܾ}͛nSSSC>ѩ%o߾]lYssȑ#9jc}{3n 3|a>j'N)JjjØ1cƌ} 6,\)n CPڮ\)\V8l z˗Ƶk㢢1wԕ+8T !== @]Gގ%@z?9rdԩgΜAo߹su3HU(++={vՀR---t:=11=..n֬Y?&?JJJ8dС߫ ®fjkk;uT_(n 3X,IEqq۷tttO>Gd…hs 3}y(͗FNIM}oB F: 5s,_~UʕSlYx<|p4ŋ$ mlltww[|9Ba~Z[[QR$$$ zLkѢov? ݻNZZWG5됝]DzKAWI`~I_^FBইGK4q L6M4|𡪪X,l9QQQ;; .vܔ\:"8#4aLbpa*yJJ,X@ "#-XpÇZ:L6,5uͅ +%%,99u/tuuu洙"<RTTtɒ%/_v<ݒ2 .]:k֬:F*Ŝ-|…QF1RٕY!φ8Իw7=3.[[[QLL@$DE %% hѸ͆j22b7n,32RݼyfFƫwJJRANNf „hO ty179<#03ެm\“%K\r֭[.../K*))\,-L4-ǬښL&o߾yۛYq?4W$#%zꋝ]6/_ ii** ::1ï_,,LB&w=>nܿ?mذ ?آ>藆ϊT*544tȐ!hm@@sV1َFIJJ?˻%l9<˗gpSޥUPV:ܾe =[Բe >?Wa[[[vs6.(8cFzLnQ[UU9$ѹo_qcnySmjjՔS’: `6!\v]S XמDNH3'3g ɋF$LAqTT%'55-+"B!UUĮ 7INL"D*3hq| ᦦVIHJyS 18;hiӌj)Ԕ[yŊ}XXXEG{޿yd={ܽJUU}u 0sef0c"_*!DR6tݡ67HR::?Na32^1ki),X0&${|ʧO/|i6=D[[aNm+VLp!o]^^O~~!*vdرm8y[Ýd./:TP /^| YX]V,~Ɩӧx3FI~{_rJn޽93."5? Bn|aekW#= ]){CII!A$Rcci3f߻ªJJKN>S##u4yc11Y۷_ApEKKaNO'}- 7n4)֭W\Y;z@[5m`0C%QQgIٳGc>%̃CBxw0cc3lnחcጤD؜?<#//>9$?~LLLh+ 0-v̚5b22Ho"Mx SU0bj~~c66F6OK+tv'xyMV݋p:u3bbB~~6}:"n` = ؜se Յz6o 9ȵk7_11˦N:@]b1bbBX,(QQQ01Q/Gۈ YY_Ev::J;v#w:x7{w]ECC. 6??'--FEe Lل92~gTZ``)S޽ zSH!A bŅZ>|M5ٍ*8v7_df/''~pFYF\c  955 MH=~| /X^ʊuuYQ4i4:#yfڴa„W XuNcG  qػѣzo=X-4.A~s=*9PWלfmDL;%)r?>+"B:u(K/ʶmv5Eo۳w{ap2IIaocw:K@9'Of:8=Zu_4SӡXt*&##F&CguQvv#=*i`Ѡ2>8*s,_ngϼ;Rn8z,3e3ggeۏgb7BAvLپҦM3M\@Lb:ܷoƓ'eVV/rn`C!]Zus~c+=D.=yLV?~ׁ7`} AM<|?' R;'G0*z FEgtuHF Ϛ593RRkL;q.\'..v9qΝ| ?BBG''z`ItttJ:G|ϕ+bcۛ 9 t8áeei:p8,y^TT!\YYM{{#G\27mJsiB@m^p8wَ={}h ҾxqWVYX 9Av*UVF3gŅA3F[]].9 d4;] ={dT{|| f pϝ9ﶱ9I&S:@~T_JHHúC/MVVNG*D3/̙32))c̴iæL1HjδiNtOJ[*4Hj)99 zzJ{^51 NOKRi?.;wBt8@!22b4E]]LM=h?iuuCN{v[Z^Grdʔgz\̯=2XWhc}%KNغ"UqdAG% jmEP*@&SW LU_8&45- ^[̱Ə׉]~v)f'n IDAT#))`ڵ)SBgώ8}:wFE->zS@"+## hh}DF.55啔=*a7ok--_o-..wn3f>~\q 7|x[\ uuݻSGܾhщ'B }Jߵk9B 0P|d2EMM^YIFC3Ǥ͗l{?#F;畟a_Z=rˋNK067?D >%/?aꩮD`*K% oYlB̴?.eBrcn:Mƌ޲BvGPp7oKBBiӆ8VXcϞy--Ǜl_ݻbP_̤I7h[ ա #)ҢbFi76}[,5{ojjݹs/°a*kZlm @,,8Eo[lj3nH t: k!A~ӡ2 ;de(߿600 IJ ?|ê0IСKܙ*r.HHϙ)ِsqwܭkW14.qC~rNzQYY1~گ_p}n3|}"zcaG|ݜ!%$Gύg\Zgϕgŋ>K7ht1"9sbUU[E/}}7nLгncc$!嵻w_Yvر;v0XU5P0***~w+fe3ژiGG=uǥffPPoyF11ի:9}䈋i!]\ƹ#)\)KذἙilm$56B~Uٸ1QCCni]TSSspp# ;,**Jۢ+VV3̴X (=|'$$H=`wLllNȈ98FG{>}Wp|QQbpѣ93<""kX)er\`޼t:~MMy_nYro$e{!!ΝOlOM]el;&))_߁Ç3h4dmt@kk;@QQN&S #. 0v612"ӧ^LUQ sk,~\=Ōe{֮V[KY>~mf888&&FSSSRR200GB9!''PRRbȄ0.]ʏZuuŋ"nnnrrr***---vmϿ`.*@QQ `^57׭n(-e-PQ<ـCMNRRέ1]> H{{;5*$%%v) cmmN DEE744DEE_pyyyy)**2?Z|򥺺Ç!!!jjj ƈLYݻw?޲e qqŋ;99]z$;;@ V^]ZZŋEuj'oS$ږvA}Kч 8q.G=+W:usl@ssI GWg޿q'//TVV1Aoyxp{99˃o߾=fgg(**n۶r'ND#<SӧOwc8];E$ڲ2]Çy^xD"222rrr˗/P(;v~~~RRRΌQv)AL$/_CG/{.ѣ,9 ~dfv X,Çh]vIKK<ˀ=TkqTTOKK GT*\\\ 266ܸq#* H]]DZn7~x/;$zIÇZAHYY??tihR_!|}L6LJp˖-|vUg !?>b3T/?aAsE}Yޟ]!2PI$)ZbPIIRNNewxw?MM UON=thNC`06 cc,jll.gg .h_d'G_reȑ$ u떺xkf kkk9s͛:::222ڌ`Ξ=k`` ++ ;v,͂g6dҥTssӧO~۷o>>$ 2 Cmnll|ܹsGp+**ps *ׇxgEMM@[k $;hԧOd!::**2wj.11]\9e5k&&~**ҳfJIuO3Ο?HNN4i@HH ""D"P+++4~ĈL0roood2YDDm'!!G?,ʙ\RZZ Ug5ښ@ Uϝ;ꊆ9sf̘1^^^Ǐ/))!PWROOoӦM d~ YRR6..)A:uӧOEEE'N8{7o2Nj ܻFJJHu tEEǏ:T(_Le޼B~܇ҿs*11sGEGgy^#~?9rws+,1_"zÆ܌U_^"[QF>}=F¾Ccqc=Kj8nܹ_~Xh ##CCC֭[~tj,6߽{WGG0+((uΝ?~m}GVV.' ~RO8 HmdVV~msbi۷9{\vVܴifx¾cluMJz/M}Q3sL rقFzuKK~~cǘpc 8sLCj :F:88\x檪Cfgggeew35R_jjj^|YQQabb˜ |5Js@E*#( *SQ2aKᰙW}Vy<='jzM._^yƌg>]G9s֮];ydf[[[{{;Hliiپ};"x(a1)˂EGGǎ;P~Ν7oyzz>yuNCo޼ioo?vXAX*+?n>?9@ :TBKSRqq!i*..djclo*4ń-(+~wCC*ET .\H&w-ZlccÿB7nTQQ9p@BB0%Ǐ'cohhxaÆ9991W#:ŋoPRR_1$|b1*m/;+@Jӕ+c?|؏ݾ]ŋ#Ņ8cn;vp'aa AIBF sߌ謭[Wճu 'O߹3edxM;F9eeeh1#t: T*t0LBB>"$ڵkmm999u ֆm{ (<>;CI ^`eePWG)(`<='&%uirVVVmjjj^|gM۟ ;%%%ex4bMHA#zkyS*x~ӧ UUҐߍ q{v}E\\ݡ'R410 ܾ]4r$篱޽bcs֭ s)SBlI:|xQ) 9;wYG3=4i@SPqz~hߞFgg͹~0a CSss_$2*}^(&&$--ʘTI(C% ..Nߥ\$9?BQϜY3寿.{yE~Q,--<0ƒz22 55i#Gnwv>r‚,,7FDEEPutܫWF'<{[ ü%%C=9Lae˅9up8M\ףGNQ )) \=HBBxhM&x)'k>"wI'ʊ:A縸vv%%_k'ji)u/T*-66gܸ]JJ$'JOsq! ..u^? JKhja *vCs=IS \2v; Q))LuuCG(/,4'}We1_#zRw_Z{?(^6$ZPХGJbZNNN?'B~ʾZ[s>PKo~D~>ܐ AJHhg L W}I$[xh#uuct$ UB g{| IMcj+ R^^~.%ĉ~~ YY7" IDATϟ}kАEEEɏ88_?]MMC (>S V^l/2lJjݻEG? |3@~[WɓCWi|CP;:`rK޻\oo/_.^n֬9ǣaa>|9֭7 YىG˃b`F9)+WW]]JD?/viŋ[iOFK d~pp_N>>m,P Şٳ @ka4K&UV00h޾ 0~|$9SU8qI1e۷NN}-L "~<=ϟ"9Ťf͔yzFKikR/(rrttޙ3O^D˖9Meeg>~\MMM#=fff7ajQci==f23FIIՍO| JAQQ!˷oY_maqvWd{KUo!/?K?~ ];}Ra`Pı)Sԕ+'tef0өSBB%`br ߺ5pkC0iZOj35Μyb`~|QIUU#3M^RRd̰8 ?vtP 9C5kd\\\GUɊΌ޽lyM͊f[:d?ϯov8d80%D"Go:g8aPXQS906V!I虲Rݍg_yVVFg",g+UTI um##T4xSk+v…4|fw8urΩaҒ&r_η jxzW͛]"**0%$$655"""444:::x<[JJJRRCiii /^WPPpttlnn$&&򪨨ܾ}@ hSi~STԴ0uT4H$khh ͘1#''"wjkk?ĉ@nkjjJJJܹa3yÆ rrr^^^4 }tLL;w{z?}NEE/hm&t)]Iɫ˒ό黦M1YiFś_ ۿ/(Ks[Mv# j|ׯ____/%%5?~|߾}+((jb/uD^U׭|8aڴWaׯKYC PP.}:i$^PP@&555ccc?bh4ɓMMM$H$Sg@ EPw%7ihhܸq"M5==L&p8J;cWM&Ԙ |p(el|"))wWUUBR"Ez V񵱑=hytt^a!=ct˗߻P0 @ fffZZZjuuuE[[Ғhzzzvvٳ333H$=utttDFFLLL8PPPC%VSS3iקi zsE PҪL+A D"QUUTSSclNB~Q5p)(4P3.XH+%yV000PѴDsi @/( 4P(TEEt\VVAVo8#: Rjl\SoglBL;@ ~~^*pY5k:dyPBd$ʒH[&F&YX{ gDFF"h?mkG_6zU!--g'T+ +i&77gϞ%&&BVڷo_uuuAAŋ/\[ϯhǎ6}… cbbZ[[q8秧rUcAAAGGG䊊,///;;;3m۶y{{ק|`X,LnmmݸqsGGGPww̸q욚Zd29**JUU[KK+>>:ͩD2L E&x̙3!`555iӦAj>S} @n\zUQQQ\\ """PGa3Lbbbb ÃAo8cEItII)`ܻTy^}w\g$D"iʔMbɍyQQ_aA"߼)AL633sss|={f#*̣g B@?3W^ iGII)⁊HNfe*))WSS ժm6acc|B*|QQ#GYb y…=2{dņ7n-%Q` ;s?0BVZ3{{{Df dGޡ̷ M<'`p;?0q}۵10cګWm.[6Oyy+bb޽ySΒ"ʘtҎw~emmT ${g)**>RÇ߿?sL9>73Y2s 2(;v$::o)\5Ϟ}17K#UfjLmmSkkU߿7`EXaFܹZ~~1,ib1SW\>o< ?{zzp877wWW?F1cIOOOJ܆ zk6k,л*3Y&3ifQ1v";짭1G'ϝկ #/(+55X ='wUլSYKQڵ*24ȝOL]=zpލ!!!Ǐ GO222RIIIRRӳ 5I۶mkmm-73Yf2ɴ2<|;Nq5 d2J =#f2Ym'HhV÷suݯyNWȑ[AvZǿ%3oxjyOYYG H$ʕ+V{EI`Ac@hkc|1jjYBUӹ7VVFqqH-X8n_PP2̃F^ӧv w˖-_ƕ+/-MH˫_1,npqqЬ+!P2BBFbb+fG0!::B]stvZ[yN(ljyHRqq kL9v,ѣի˷mekkbb’.@17fӦO2999...s̡4™yR[{%G8r$@Ad_NA$}k/+k-+kl! Ԅ 'Nl_0Zc"BꚅNiia ]X++..q@\@'**Հ s@lJnj P(V }|[<=RGcٳgc$%%/]4,-HK5 }ҵwd֬YC >Y[]-!!4uڵzzrxhgLT?US:ȴTWVRݎ@ fP\mmM6lVUHe^5w;wެ_?U]pus@lss? /_ƾ;~]Eůs[ U4ї/K*B&&p:n???7..daamp8{}t7̝-))mΪcNNAA-(&&Ȫ:Kl8SJJx͝!!P7aD--ʕzzNN tu k*_,ͭ!HI Z)3v -M{]dQw IT!UB5Ņ2Xf cc;| d;Λ6][7  v00}ILOOrϟyjl/`ظܹZ7of#V0Nc˫Vqc3S00l]66V޲ed vt_ ㉔ :gp;3+U^~|APG)SSMB3֯Z^SUU =~BB6YE]]*!a ז.=sʆ3ԆӾ@z0ÂyCCK$.^t =>PY4֭6cz =J@WWWWD˙1Cںyߺ?+pO^~݋NHYtXIHegwqϞ%S*#U˷cݻ#,,&eex ̒ZL 3gc0paPwu~n7,$ī(^TThS>^o@E"M;>mϞ%lx<'!!ϞסYjVKKرG⥿ݻ#MLTxĉCWVBA&el:o ux=+UNn<KGyCB~W];ԩvvS bknr^4B 551KJ^(.>l/ 0Sgd|Xt` )~jZ$* љ3EE IDeeK/[6 Ү]|>琢_3g}Ѝnnw|{ԋm?J{7ŋ=Pu!dž אH뛵0C5̨'9MGe;:8trP-'<72/ &)+j?Ìe*GoUOO϶ZTT$ğ?/f&_?}зo+LQfO/ũE>>oJ2))oXX=w~bfST}׮{FFښȠ_Zss+ :olMaaPkkh*Λ:ii) Wd;q]\TT1{Fcxm{D;9]\k\f`>Xaphhhrss+KJ깸::ff fk؇hy]{{lYh7cR&J78k/GQ!!Wy0Äihh@_7mő"Ҕ eɷo{ѩSU 39T)ϟ<}۷!dfO:U~~vh)iq[vAA֭7{z.9r0,|CCsG.0rƙl[Wˋӓ36V1502Rf\jf(CorrP g<k bf*rpvrBgOYyC< /{׮5k.ݻt۶/ 47w^}D^yV-Phzߛuue/70506VC.1moij꠹V@>n>C`/qFh::Ng[CC%''S3g=z<ƍ~}ǎ%x54t/޳g׮\9Cntb򷶧gTNN˗bݍ_蔤PTa|A,.suGsP7BYeδv/]w~w4hffץXlɊ*S› ]}rrQ(duoK[[Ço4c8==Ǐ [FF|u-E_tKҷoǶIJr۾W &}ܺ6'֭=?B"KK*33K^*mjD]\)(Ae T4%##R].Z{ƫǭyY̘~ҋT)gkN;W~FףGWM.g`F =;vyHP7>~'Um"TV %͝<۷AfT1*@III"#sx"?ŋS>|fhL_..s/ɱ1۷{⋫ûqՎMZل5p 1Lnk[$ɓ;ﵶvMtv[J$>}+zSLLpdEWyfi`FchwotY\i-)38IVi-,&2pIuu ty`kk#8YYe>>ۼ7m?G1 -C1oS >WVڻAff) \iӬϟь]p fCxe%7T55)!!XP"ۺuNBB>wb& \y/ G>]kƯ^}0;Ϟ}6ѣIS߼ى?} ȑٳrrʅy~]xqȹs"?~ yu<MaF=c 55peeA||3DddDΜYKlVVٚ5^UQ`;4}E8R VVVӧ} EE{,QTn`X͛rAA9QD"{ϞqгBn8322G HD21Q C>y󴓓 X؝u~ddN\5kw6mc?Attttt4tr2H[SXXm͇FnPj"a0L{k+7?FG..xwOCH7 CPJ%(*Pf^ rrI{{aqfHKK8qBJJׯ_/D?RSS'O 0 * =Ϟ}@ҥ H$={ްoe/9YbLyO {Fs&gʎ 0dGӇOݽԩT_7^]8dd;KTaquXzeddX,Lwz{{;Lp^^^^^^83yyˋ;88455Aj䄄===ee[nd<OS1(-TgX,77www7=ݾw=~8븸8 77nvGGƾibbb]]]4 }3X 0x q/+k` iӵkAm9sD ?xܽZt2Ծ8::_^JJ*''j<~ի}VPP0y{BzssϟL0ˋV{{;ϥK]LS9<nذaܹ޽gFFĉw1^bIIÉZZ22rr1>.uu᚛;뛫|[NN˗_<)JHp~Y?;y2c8;pt [Ef:ФI(0nsΝ8q"RÇ ZںqFQQQ111gg玎s~^^^222ƍ,@E&TUU[O8˫YDaaJپY$ z͡^zUQQQ\\ͭL&>|XDDDUU5>>gΜ)((}}}>>>%%={@d2:88a0zپɌjlmFas::G0(%%j@~AAǞ d)fd|yʗw>{v-*H n4r@ jjjSVVNMMM511>|{337_Zx^NNN9WM[GpLS>@ /wvxbggOp{+ ŅFQ77cڵBBB4 BzO;zHFDb?NNHI ;; }6[Ѩ+W6ѨD"ï7c!!ef6ܹu_s[~N%c4ɉ ~X٨]]Y XRxxi[SQQ;wkklΑGŘJC*Y<AQF%p@c6" :b3f X0.=AK@3=ģ\޽vq40Wd1èOC  ˲23!+p_wԪUp5=nf,VW,';9#npӏfCI^*URi+2KL)vt0#6azaF1p*\s?}i IDATW\Xlh4M'6 aɓ"'vyz..1jP3<Ա@ <<<{a,!!!p*hi47w׷HKc fjyc"xWpc7; RR¬zba1)}vfȏPut0:ulMZb ƾsqˆ3KW:e\-6ԙʨ500^Dhz y;555_]7_Zz\qq? }541/2ZbRTT.{Lh?;vwuޚdHJJ^tiNn@0kz`mm\RRrB*D@ʪƛ7_$-ݾ}ޮ]>q00000c:jia}Cj}[XldEmml**m2X,>Y`A"#],,&m|ԩ![T ,̧0uI t^.bj i/uTgɓ߾aCCѨǭBCfa```&p@}}yf2gWJՕ56Vz bg>-*uݺ%#2%z|Cӓcry'O;pr2UUݻ{ ޸9$6,톁MDEŘ0AVQQ,%di1:~!Օx1]YYe18@44ӧ }9~ :p@FFJD"ɢss7oʙB:9FFήALL08J&88L_[;֋۷;/_̜yt% (@qruEYY E$=AWv`dah$SSFLqo8ڵL<-߿vvshkk[UNNыƻv f2^ .YYYʽ[ö QQQall8tccp@aai[XLlngRefK^DD89#5<<\W_ԱcIMzzxxL6m ]]>uf a߄4uU$-9>?# ƽInee{ްԋ_?8u^F#%6`aeeeee5^ ~222X,L&߻wO]]L&p8///III ///WZZ x왼|zz k}drBB[d2uPZZJySSdee===MLL4icǘ1N-Iht \vMKKK\\رcnRRR޿?=RRR A)p ՅSPy˼\do~+(xFDd]?xxDhi2k ÀPd륤rrrǏ^۷o'O޻w/͟?0a„B///zZ<<<.]vW{{{pp0M4 tuuhmmm޴iSmm;w? m4j߫Nӽ7`ggzUukk˗/p@,,g^>>?[Y3rCxԋSΞ}J prgS#GV_")idejjjΟ?`OOOJ8%N455eggC_FF j?r=.b7olaab3 >4emm0V; {¤{1%d2n8RcdD"rrXxI] 7ٺw//++{xDqÇ\\\єxnnBPWW'w`ܜG3oR"##iv?MH$ҦM"""={Zj߾}/pBo-??;vTWWB  .immph4zKK 4Hu W}/hΝ;+++oooOlOO1{!bCƣEN8,Eop8/X޴i9; j9c߿9k9HKKCkedd> pqq}"bSZ=YYYue///;;;_ji銌Y悞~ϝ;7qD?|@+~[[[7n(***&&{KFFfܸqvvv}drTT*77V||<u|>Xg6$$daaavvvyu4iG5[q_x̙3R% ̂YRqwtiV;%/\VVCk0ztԞ]]]ggg2m6CCCJ,^ח"| ss~*g`@sK/==II7^SP`[[8)gp6% &&?hmb^erY-W$zӧpv& !!t۷Uǎ YY٦&@DDFGG{{{KIIIJJz{{xDwq1Ӵ/^ڔD !EJ-ED%rm$*KčHBT}j87LӬә^Ι19^>}秠 !!_T򪨨ܸq7hrYȷ"##^E͛rJڮFss=<<˗ &22RKKKBB"((ƍ""">>>h)))222y&$/:33ҥKsIIIA/ Neq"99垞7utnIQo/HDAn h<`Dho:ҊO>***#Gxyy]-гFrrrڴiІ \\\޿p8ghѻv:qĂ GYf JxQՁ$]h up&&YY#[a׮[PMO7VqqYkQBjZ׬[GJJ;|pZZi':"1(=--RN>7u/\pddd/X`ʕ3M;F}{oii)zGR]]͐u7onoo700&D.++%Pohє={bG9kQup*Yx~~n**I&&i@&::>F}qT߰d'۷w2j G8Ϟ=CCNsssmm-|4J-YϟC%JMMͮ]BBB,,,\\\oC^|6Ҁ4 W4y%Kzzz^JeE+**;э&*pmbbݳgˮiϟxG? `0 ooo?pw@ ;% TmňRL}mo0rssʋ&(L̖ږ[1S? ...zzzhc+y}V_###II~oPCJc//Ǐ744ϰNICMԏuw{i( BY[[:JGGQE3*qs)SӀFI^~oj gҤ 9J]'].gRsrr888>GϓN)i uQJH TUUEDD%$$t#xy**n{a$%CF?8>;T睝#i([O{4RJJx u{~~~>Ϥ$tr:QJ{7oڿq30 :Pڋ/.^%$$4{l l--6qenW=T+WNOK+jliqȦƙGGǼά,.mmmp£!!7 2q>4P[[ԩSKKKO<zSN]v-/// ,,nnnaaa_~}ӧO}}}ѹyG}cHl?.Q5}4uw!-m i{=x  A7YmlwJa3t4]]ݘ񱱱h֧c0Ced_,Q*~~Eri( w& 9SmϟO''g@@@UUUWWWQQ''[5C />4w諭|IC6644NTҶWA eȇTvr- k|\[[K4$3fMHL& FHrEEmpndgA!UP)16Vi/0) @ˠOKKٳ5}|ЖJBB11.<<\W_jjq*"QQSN988hjj*))[YY}vww۷8ql $$d``0g}}`%%%333 2:3g֌(Uee̙Ǯ^u7aԥu!+׬1!9jk[-;'&&^ &!!ΎW[]]k}}[}}[mmKCC?~2iLl E7o2?)))8N__֭[޽coX!^a擮^} i/j(*͘.v팠Ofl"[/?aCDt 🇰$U bv<Q ~> sb`D,YׯMMMw߿ڵk>>>;v`w PannҤ- hcǍߛ&PݻygϦ:SRqY͛FDlpss#r}}~B&9ki#X"FY^޾I)455[yyyuvv.[^EEeƍ..6]>`0>{.شbD {{ Ӧvr^O~l ӗzKȍnQ-6߾5/:^ґX,@@Z[< IDATZ?4Ռ9Ő&_)iX,̙ꙙ%#MŅ3͢oL55ɣGі|D&OOH7=,(bn͛/]Z'(5 XQQ 8996n45^B2uu-Ŵr>ѣG<r7onvpSǓ%Kdf3G U ؎`0!^mB,,4{*GPQQlL4mf1o]f/ёsǵ0BW:_$,NyE|-[, `dqqAV$P$$-7O~nt??_룢^ҜÈK%%pqfɒ)YYmmH}inqVVb{{ zz&44Q4$)*>>w^H8:[ N'"224g2"%%vvp876Pe=*Hhm%rqaKKH nxMf`0||\x<%%kg̞9~cqss~C8NI0Rrr|G<ر۷`4}shjʄ-"+ˢ@LkkӕՈ~~wpp`lml ߼zJfFƧ^II!ccUssӕMppp`o-44`@Jo/AGCKf4-&Ј~&z2VGǿjuҒeY˼~]&(3y==#Mg}}yy^4Nlds\/4wƥG/p;*(J |53$3SP@BcteEʓ4AX:KcCC7[AOXY:~ w 9މj.i~>}cGtuucPS=HDJKeiSSԩ0B #_hQӧuy=tDž_ /))zMawgHaWԋS?$NX m66vs*) -0LljIC_ff#"6XYM]]xK˓ׯo'54ov`ە+hǽ{y/]rQ 99^}i&*ԑqs+/ON?JNN᝝$z}bٲs'OZʈάhG Lt)cbm,5ۊh<]YِSٳO߿7qXXh F0̃nhH'tgc4FnnqMM.~C_>lFs!?ŅҒ57@{ԑik=ƆƦιsO+&==} Ʊ]]/ϝ}-[BYD 6>uu-99_33K^(j֖3702R61QeH!60ؚ5#"6ЖWw޼1, [{{:Ӌ=<:: g$w[X̙5 pE 99_KJjɃ0 :bѯ~pS&:;񆆇ncyWȑ䘘t/9X=O?x0ך/q˒kml1A5' u9tY& kl2E';~<%!!';ۇ?x|$%KRS֭3g[xF'h4{u+Zϟme$M>TW 8~b?0q|YZSBs@Ԕ9>]LLqX,'OJI S?>yx.ԛ=[ɓ'N<|| UU%O%3 Irt4uralɉ},22gXCüDCEddfPЃh흘 xpڵ?vWV?7@gΤ}c|ݻY @BB޽NZژE74U] DDQQ\\cLuC9PiQ[bhx8*%N++͏90 m#KX\_TQQKAG55Eׯ#*,h"^^z;>|9Wjoyŋ~ute33u E4Pidi550{sضzIIݓ' yYQkkYJn4GW%U֭[+VHD֭ /.N_wkNNy~~Uo/\gTg8oh́F/>;s&Ç4~X3o7͝˘hc=ܼy]$$$o1;. mT\ѓ?NldlKr0۷Fc[-,&ќ宮۷w2V;wFx9-SJJQy *ǚE¼n>!2\g'ۊ򜜯x|)ZXh[p::rPw옻rܯӧ+3V ڳ'66e4hk˺/8q⟹s'MfwuύvYtu?|FK?t6'%%ld CPiwW_ftىU-]zft.Jx:1@ .=GLI3f"99==0BEO/Ɯ%K׷ySAO&۷NK+*qV)yy8}zMIImxsveTv옛485uM͝wf2ZDċovw*TU%ե}秠 !!܌60zzz***7n -b677wTTTddd``իWo%[[ۛ7o"u'))iʕ]׋{xxtww˗/1LddDPPЍ7EDD|||RRR edd&&&o{_|IYiɒ)&&*'36[0:~܆]a}}}cwƼjj'>EΝьɞ=**~1p  铴wTh*;62888̝;@WWߟ;;˗/~ͽqhϟ?)ܡR5;TAdeݞ=+f`㦽^{|͓[RRːZtu?9w<(*Їzzz?~@ҦL~ 2iҤ۷o~=0Ucc#ɓ'Db[[@*9D":::G;ߏ Htty8:T@x<ܾ}[MMфyyy~ۥ===N EAGVVD"2b#`/DUl,Y2ECC:4CjEu?Z<=GQG!QQ-[m۶BFF:o޼_555|RM0ٳgYYYf*9111III[#mmm_]xq]]@PUUEPSS&?kms&pssXYYFEE [<=T'D=P` ô.z2Ϳ?QCOxqmrW33;}_YZZvBNSSSVV cǎ H$&&&666:;;/YqCٵkWHHKCCfffmmm/_LKK[lmAJJ Ŗɑ<==.\0/2{ IEhl/`>,3?Ғ {̐Z6?97+3)"qFWW׸'OܿݿbŊWVVXYY?<ڵkX,HRR9גRpqqZj׮]_~-,,ƨ(ϟ?꜓="?Ȟ_6ظvZ11177~O=:qDw{{{II^333AAAAȷȔ&?CE9;GΙL 0Iy D;PQW~QSSkjjjժFFTVVKKPVVV&&&nwvvez @*4Q6 {99&Z0t2xss3GW4kǏ5rrn?qi }9[/^` m| `MsG&_ưMNf@G ߽?~x7wv7n%0<Nx:&FE>Z#bËAo@P= ɋ̼t钶9sRRRx,np̈𿧽{ aHVfo!Y T\\3i7'fB{h ;TA>!'疜nC)7pC0!ӧ?ȑ#Aޡe\5IE>}ZNN.55>-- MlPR=>1A«W_dddd|?A=}ˌY a@XPپ̙d2nFE>,n32a0ʀkUI!!ZnLL X4Po4wt.ɗYLMUedDcHV9r@ ҟ@sh?28!g!<<߱11*P>>6mbx)Ch'|Y7[eۗ䉧MSQks8X|V~~n:ȅ hb-ee=-?vlHnE,Az 6ٳ &!!T+(fez O**GFn?7 vm77KoD GܵeGTTxzz8]]lr<$5Cvv9C2LL۷۷`W)Sp݄Kh)MH5g]fnj`GtP ]T`e%l5u޽x|AYM޿VX8(sw z )X| k_+5hAeӧTW7ۗ@`@eSSU55IFuM ,˫dT,Y2ʕII,O(v򺤤7/9  0х =}dg?z<؃Ųгg#9wΑ ˂!zͳgkR>jlPׯi;QyΛw1GGIYVVSZxz8>b;AmYrNvA#|H\\p2 ՂN:~<P&&11.YYe7FvwP  [!egw'ATڴiϵ^10Oww+NBM0o99wLĊ}c*4Z\rӧ+GFRՇJ<>>KX; 5ubbj? ڵͲ]Tpv6/jlrmViՕ{TQÆAmyⶊ[[ϯbwu T[H_RRW ;fST=22KQQ,9y_h IDATXY4 $*nsw䱻::s.իnh'B1,챵(?eeǎDURA\tJccc) 3fF TVPWp!]VVTOlOWNIv:kR XP03?& tL"3GkD<PQ`wq]]kp/Jtu夤R.qS; yx])huTT$ccx$,+;gVѕR{<␐~h10PaKe HTjcnK_{CL*`==}Wd[7gP..YX9F׮{Bz[[2}:<_m6( cLkSSӛ7o"8o{.PRgwqT6򺙙Yy䲳W<3Do/Ν˗3kpNN3/Ǣ.T &!!Ύ5$ LGuӏkjvV!zQlcߛ4s|}u"vvӟ>LNޥ.u-?/99WbVx?(heff̙6n/4;Tغ/uii̘l^BJNX?(*LO=--Y&Pӧ#"^dfJ[7em'x*{|X3o-gk2#_\ȟ$%޹W[ۂM?_wccUVA :::8166{oɤccno33SgRsmJJ~ZfT_X]aa>3ϟm7n{ƫ_gP_jEz|6;wZ~]W&fv45u0ƚ4I*5u»Ocm}60Azzq[[7J''gbb"iOrr277?;::_|An@c۷qq['L߻7~]b23KDCeKN(̤[Z:--O""60ji|˗ee?XmmYccU##qqA곢7<}A 'O֖ёё4e5Θ1۶m}53;;ٳgXOv;::tuu]\\=0fvvv_s9&L`b3 4%&&R&ڳӼy:&I_~05UuqδijjL*$$/Gg*nm-ϯ**ˮjL #+;iЈ掊211QRRz7oh q)bbbΝK!||YDDd4?D78]D?Os`@e' c787L*e߾EYYe6]}`XEXw\s?[[?~^Tիk^uu8ꚗw֭+W$''{zzŇYmڴio߾ݿLL̼yHM/ իW?΋BhY^aFqtA!#㓌̞ׯ0:u}~~w]ШHHH`l===_fl3<ܸYYY?? HiiP礗<<{xx ҥK?~r ''g{{{HHȠɛI7ۏ=7o^HHHEE+44TRR555<?+%%E=5??Loo/ s-+++(('>{{ֈ]kk˗~jmm޸qcuuutt4ϟܡRH}i9945554PodoPG{KDf-]zfcMM.k47GUmjj'㿟iiiSLA 4i۷W?~HɓMMMD"@ #GbؘFTTk׮Q_2s}<b cn߾F~}Єyyy~ۥ===Nj*hѺAƢɇzCl[KO/fvA\\ x|߆ WxjA&**e˖m۶vVTTȠ=K͛+D+++[!QKKkC0a³gϲg͚1TAutt}|| 8o߾O쥧(644$3hD{x⺺:ߴ*jjj%$$@$t צ-4@[ՆzC袧?_ĉ(|ERR(:zKqݻcYP~߾}믿,--I;84455eeeѐ ++[QQ?vPDbbbbcc%KJ>(A֬YCZR,X`%%ߓ,**B79Bާ#88T^.-//G,++#>ây6hъsw2J?PG/EE>,`AYҗ.9=x4AHܸqk\\ܓ'O߿_b+++ Ο?Ojڵ,,,,,,ܹs'EhT fnjmm\\\C%oiiA8o :99Z^ ]}`uVOOT___U__ߟ?Ν;755Ν;rrr۶m\~ٳ'9..UVڵׯrpRkS.zq;vzqCC4J8Pj ضmg< (#ƾuKJeMql35Wܹsx<A;w466"ںaÆ &mٲ[ww}SS`*ATUU555)$& }}}zzz|||JJJBLPP=&$$DMMM@@Ctvv/nzLccڵkdddܺ(t;44tĉ8… xPC TUUEDD%$$}k-nPIzяff-ڲekJ<|89223.nj)0=aLhh( 1\e7?oݺ;z򤼲2\mf4ݼ"4ʕ&N`A>>K6oJIͼH^^>,,,,,ʘ4߿ڵk>>>;v`j(ju#9~SDKK'k eo߾ ۘ3zAИemml2111gg70DPG)/ׯf쇗ʕݽ6D4uUUU]]]EEEmuZXGG. >J~}SaaM>\  PG/g>P--˗߹wX `@fP͞y̚K]βB!:PG;??ʆAe˦;r!.8lfST۸ĉ˖g׷ۗ(,̷x>ʅ &[bb"kg0nn nz{l5+\-,ka1ECc'&&5)##3ԫp!*_?;ϞSQa xxܼs(A1 cC_q޼EE(gM ]]c=*u16VaqAc46prr=´f(,9KKuX\:AXPǒmۮyS7??7F"r,. hwcںϝ{9\٨[۷A(X"))auBziiKqcU_ @fw!  &%@Wg>]1Sj|TW htpp`NLUQr8S+p^[[ѣ15UeK\ m`@{deEZß^mI 3kp`ϟf3@McR[[[Xhٳ/_nv}D^?i4kAvSҘ$$2!!svv23S]T?rX wcئMW?|NOac5AA.^|p`[11A6V ]vG''ǡCKn^Pm@4 Lܹ"쭌իO)*>]YHU b%;!bgwׯGGIWۗ/KZݭ͹A+;Ա N bD"jjRA:扈 ?43S1cʹڐ-UUu b; oii\˫>r\۶fwu hl611ٻw/+1z :>[XeTEvW6gkkZ@lm..ך;]{''gbb"iOrr277 奯/((hdd t5k()) N>Ν;#0 THfAm`@0Lhj{wml``p]v577ZZZo7yd@[[۴iӲ򼽽ϟO DEE7 rrrV^mooV#: \\\fF1k_?ӣeAnjhhї<<T.#xը(.boU//͡)))ͨLPP֭[w&?ʕ+vss=<< &&&FKKkĉ'NY, .]3gNJJ !avO*((|r`=͟ѣ׹sO91cƱS^eJHQ`k{4uA455'1%mrssoܸ:::O4ơ*0wܲ]]]A+Wljj 444ARSSn,\0==Ǐ9h*7u~WU5?:%+핕##GFf̙džm/ؼ<,{MҞwrqq+HQQqڵ?$H$ ~^QQQ@@`ڴioi D2g~332F?[ G3H$Z[[cXGGGN4^P{zz F@SSӠX,jjj={3hՍ!K9_sTWoKMQ=8;DYX8C}@}ՏE})eeebbb?}||Ofss,g%tkkkyyyg;RVO¯_$%%N<ÓJ}UTVV"R__o߾%`x !!!#ٳiddd'%%%'IDAT';EEEI!7nn+++CCè(t D$ӧO쬫#~555{ ++ BLWVwwh9,V$5EIѣ }}Grr/!IHHH/ĆҟG{y{{xyy+HNNnwQQQ #jiiIC޽{f"7{숈cccmmmwwwWWד'OL qqqF!ȟI8߅==ܜ9Zjjjvbaabff&&&ppp8z>F_tiPP徯]]]vvv7o\dIOOիWK.=uꔩ)dtttoo/???-//Gcak8! A@Y@W׍zZpA@/bAD)mThDBUE"D"E`HB2r~Mf=3p}39>󊅅ĤV RQQ!;?:=cc㞄'KO &c|PGG/[1Ο?#33;vUUU>&M}Zv x!T__nݺ :d6MI$RJJ ~զM"""d}䉭-~ jΜ9?Ƨ"9lǏ׷9D_~ u p׬Ip᫑# T<988"~׵kUm۶XYfmܸjԨQK.e0+Vxyg "F OOSSB(&&fر~~~ZZZgΜ@Qŋ8py˖->>>EHHHDDsaaI$.Bȑ#^^^ Ʃ'Lpp\qJ*,'}L@W▖--2bPvD7"bCofX,m?'ԉ^ld_t* b #l{N:.<==}}}322._8lذ s X`7lmmlsvvdٲlmm>}J|2e /,,tttlhhxbrr2SjS"Wk֬rK.֎F={6//ԩS+W\bEhBIIIl6;))ٹ/v}a 6+MHCKl׽{VpB?rHVVïT'M9|;wDGG?y<***77wٲel6u޽IyfooٳgzΝ; .ljj;vs>S|~/tuuhK,ټy{ɓ'7+V044daaavڳgOHtgEE)O'ɒJ[M~qѓ'r8Ǐ|B!tVzJ$oijJ$ҿƷÍ-D!A@ 76 zCߏ:56JbX,?|ϟ?QXXd2544L&BBHR>O-Z~m?Cpd23551##cʔ)xiYOxX|ĉQF!vg]]˗\m~o>c̙3wܹtR9qM0A$?D= OU :% 9%%գGo^&EU]}B0//OO:x@vӐH7o> ?ae|_<=0NPSR8?1Onn{ff&Q_֣Ggǝe^|;o޼D٥]&8uqqinn.//G |<ǣ>]444 d|GYu~$5tJaii9Eh4x<__7oܸqc֭+VPuP QS#Xv1?w/qv$HT*!D.[7lؐ@Jiiisi׾l%Y۷ܚrss͛'; 4t#: u >4i!P">h-ڕus;wy TThi/^:{v͛[ׯ`2L&q8D"<<<E"JokAMX>k׮%V[]]]UUUQQ36/AAA,`N~:۱cG|||LL i/)))**^~ŋm: 466qd޸BxI[ۍŕ}]x[?z6g}}}&`00 ;y򤵵5F3f 0L,iiiaN11 rjjjN޽Պdz}/_Fݻ}x^^^fff,ܹs⵵~~~ׯ뫲ˢK￷љ={61220fZ[[7aѐY{zNcӁŒ%KUTgf.Z!g[E"N<|cd2'NLOOgwUmT޷JCJ޿D"]RL eӀ@BҌ^QP<""j* t 4CND7ƍ3KLLX^WSïj//a0nH$y{@aBl9zP6mL\T&SB>b^^4ፍHaoo'!DJ<\"y[at&@ 𓦦:nnv A{BZCzJөcǚU\ *P[׬\yYkgׅdt~BtlpO<= 99Yd倷H$?mtibeeJ6cƸkעVF,eRd==G>AChlljh@s~źuWJ-- JKk(c\]\]X,+SSݾXhQ^^ɓUP^*hիsLK lVirr]Rɨ<".,|p EVcLБ&n0БXKKK*@iyLRRVh>8FD^ !;;˗yI@ w֭uuÆƏ7gFXV,0D@ trLo`ٳQQTlٔO93pn*rK?~FfWѣ{/$TЩkמ$.Z7ARS}KUW7@eAB\d6{c#ԺX,).rKn*vqm;aWW+]] *xLՇܷo20ja0XABw|ApuUu,`PynleО8q$~8$T5N,[;7J<+ׯ?khW77[==MU@ .䅄uwKHX&K~en$Tw&k%'ipPRP}FT2 H[gUrWT2  O EFZ򣨨9pC!P!2?޽P}*ӧlڔfiit83U;[JZZxeZ5J]*@ %()^ׂ硡3CCg*?d+yyO^~2Tr@B!brg=LQuDtի.ϯEE/R  f۶3YY?q۶ffN j99Y@et$T|W>ڲtiŋYj:"ރ xyyO+*d+|{@BB$jMNb/kk{u---Wr&&&b0HKI$Ϥzi[O쥕 E,:޽[Wo.DtiP ^ Ox3ƅrvPVRSS/^quڸqP*3bܹ_b+N>BQB 8tVƟ?a )P}J%{zxz>ڿ/}Tuttlrp` %%MG$KKm[[i'} ffWYY̝'^a̝jaCff6{5*hZScOٷw}*P 33ݐ!!3:Xf7kx[[cU<!(gxI_n^ T,bbܽ_.NI쨨ӗ.!*q[wޥP(iiiCݻlnn8qŊn*20*TD"-(x ;Arr.N2G)mNNNfmhh0aBb1ںh֭YYYYYYd2YT% /dƍTU5+W@hjk1+SuVVakشiBfcBmח?OIv8..<>شi>_ŋ333 b1a)))ǏJ>y$f EE~~>LNMM%Ɯ={Jx^ ooo MMMӧOwu RGSS{@$0iN>v͚/reGεHYðb26| ޡC~'&9a„ .MAR\:~<`!Bm{[MMӰaNH$g hJG<B~ժU^ٙ8-$$!<<|̙]Zɀ*qABOEE?aXllׯIaaaSNmmm?.Y#Gܻwx{%"#F<~+..nҥKfff{>}۷)ʮ]ݻGD (<<\$_l&yҥm۶1LCCC??Ζ0ܹs&LPWW1 311~l$MMMeeep]] a1caf``266dT*ݷoرcMvyP {t;::jhhv~S9RqABT*ϦN*H0 DԆѣGO6… >D1 P(juu5B())aD^^^~5k$Vall|!e#]:5o߾}<޽{~axxxgK|uu|2))B|տ|||f̘Sgoo}v B^^^uuu@t&8`nn~…ꬬ, ߣ/_h/^ (ϑR x>|HrjjjN?0{{{:nmm5uTn&g*յp8DzzzVjnnn_ZzFcc υT*;w.L?f̘/_YYY4zhуKRN*655I$Zq]ۆH$"EEEӧO`t>#;Lxǎ#vq #PX\\%INN+# nP(TEDFF.]T!=oNer0,77KSS=33ڵkr\r^G0t BĿrFaa!ڂ6 IЦqssstt~Ó䡗/ F4iRٳ_~eʕݍw~G}TSSO244mbq>1̬SPPR@*Ι3,:bbgEE Emذ!???!!A{ n޼Sձ^aXPPC`` B(,,xڵ l޼͞={޽EEEYH$GzzzccH$RÆ C]~ر#>>OT*uš%%%EEE[lQ|BBB"""~D""9~)P(h4@ F555|= Or3ʡCaoboii 733&ZC/cmmMƌp͕zyyikkXsjkk LMMׯ_Ot%.Q%YD[[[̞=a$hi`Ϟ=L&3!!ۛ`b777--63+^ϑr0xW5 Pǁb( &9qDczz:;{jj|t͍7nݺb U/tADDě7o͛W]]=jԨx*.P(l6f:~J*$( 0 ~~`O%]&&&1H` ,Pu P%+T!f?qxRtYKKKffoLLLlsP%6T@ J PH?]/G&JϏIENDB`XQilla-2.3.4/docs/simple-api/Sequence_8hpp__dep__incl.md50000644001725400016040000000004013273140074020073 0000000000000068afabac0491baa60f29fcde9e788beeXQilla-2.3.4/docs/simple-api/Result_8hpp__incl.map0000644001725400016040000000131313273140075016707 00000000000000 XQilla-2.3.4/docs/simple-api/functions_0x78.html0000644001725400016040000001736213273140074016325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - x -

    XQilla-2.3.4/docs/simple-api/dir_0b62eb81f5697eac1f344543267dff7d_dep.md50000644001725400016040000000004013273140074021312 00000000000000e08e9d9cceb2c26cef1bc9ad2156a367XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp.html0000644001725400016040000001230113273140077017041 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    LocationInfo.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for LocationInfo.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  LocationInfo
     A class that gives records a location in the query. More...
     
    XQilla-2.3.4/docs/simple-api/classATFloatOrDerived__inherit__graph.png0000644001725400016040000001607713273140076022700 00000000000000PNG  IHDRP jbKGDIDATx{TW@AG@(Ks`k=]=*(b-.եKmmWGۃcWWb啠U[U)"BVy 2iHBLbx<37;I2? X;N Op<lJ]]ݶm APS;JJJ233MB7nK؃+egg*zV\ROp< ammT^^>AAqN6-//,aTWWc<_.H$H$YjMMMgΜw~c@իW\[[lx?Qs] ...cƌ3fϞ=O3g^V +WxzzO+0 ;s挟={8'&&zzz[]Sez؉'O$ׯ_ᑐ }ypCnBػwĉ삂~g}2A#++KD-򮮮M6EEEQ޽{Ŋ=Dog}VUUEVSwyG tww@&JSSS{Dbxƌ J6M[f͚H4y䤤$za up8|>/r'7~+{ckk{=U___DB.*[H$TT(1004i'ݻwZܼ Jnźs󽽽xR cȭ8qS L穪\?1sLU+++E{{{-Ta``@SrŃSڵkj%%%SNy1,DVVV+++Tr묭˩ oÓ'߽{x~9;;SRiqqJM,--W]\.\.//ꫯ4_d d!mll\]]Y,Vmm-Y^SSN.8hllƐ[7nܸ ݻw4]ANruaaauuu3f̈Sӣʠrbbb@@X,AAAZNNNk֬vZEEERR… dȐZXcǎ'ON<ѱl2@;T 4C8ιs$ɥK&L0N6GB5jÇΨѣG;99hУ$\իӏAՅq\;;ӧS#]->>wuy-rٳmmm5޽{_yYfǷ=<FЦlX\ Op< Op'o!LǏ_}z~r8lNP5ޏ`ׯWY>1a)/_.gԷI.WttȮ^4w8ƄQ_lE^-scLǻf[p\q񢨯o x;8ߏƅ9._ӯ0 Jqa'+J^3dD⩽ǕB/qa|?DaOJRY\\a 5J<&!4/++#/^͍Z'LeanO˷mV__/-Ztft`4nܸٳgSsݮ],X0eʔݻw7<xT6}U.-----Mme-˰Gy '8@y ؉BXC0:U88yx"""Onx?FiyPo-XcX0:_ (,| ;c(O׮UHF(OJ%˄4jSJn (-H`FiEcY ] ;wyC2"b0r( IO997 }IeeC2" TUR]{AKK߫S  ZZT rEffY1:tK.W .olDMa[j_d;Wfx^L`#FS(<< 5#45K6Swww W9#OwLImdHD2i'c>-33q>++k2t,k|>? W?d'$--- ˋ\nhh uI@]__C.i(MqN|}}46 EVVցџd:Vxxx^^^vvٳ=<"쌊=zSLLLOOf=###_FE%Nc2u !ɚΞ=ktai?ԩS׿Ο?\18Gk0v<͛7\89NJJ)@k Op3w,ƄiRAQm| cҨQ0S^^MR.Wdf̤)9&YVȼ!x*)yAZZ41ӹser9qC2" sTR趷ˮ_ןCO;:d*|-ct)/V\qBLf/&x/]㸚Z}}rC2:Lw43>&xJԿU(EE&eE>ݹs'6c:)466OOWˀ  '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@D'۶miw{)H>x*))4Xmtƍ LlSYrB'8@y ' ȼUTd߆7 77א/dÇa)66o[sj윜l ayQQBsuW\$}}}靨$_l1`' k׮?~^8Q4VM0?~}O:88N>7˷mV__/-Zt֮]_ܹsΝ;qqqo11'RpB]Ο?h'- u՞'W)O&0;;{ժUdkÚ;! Op< OpLMJW4m8/&9nnށ#,ֳ?#L_rSR_usbL0@y '8@y '8@y '8@y '8@y '8@y '8@y '8@y 'H"͆VV>,ПRH$dr1Ӈihh\?K B Op<ߧONOO$KΝ;LMM\{ BCdNyD"3gNDDRL-N2eƍdF!ill40NCz0ABSPPH$8r0j(ÇdÆ d;@ooƍGr>|x[XNdJ</&&&--vAmmmW^ 潇>zh֭Uȑ#ɿS*Nj>}ǜ9sRRR/]4-s``Ν;t&aooGF O`ʔ)o@ 0#77 &DEE1ɓ7ovrrp8]0L|ؘ@+++M.]e3a„X*6;;;cuuoI/8q")j+VP/+j92((pܸqׯ_OMMq>aMa JP(ܴiӻK ¨( ôѣ-,,$رcMMMIIIIIIf͒j/ BCCO>Hd2ٳg?A3g$WaKK YfĈ7nܵkudddHH֭[sss?XŋǏ455[ZZ"..\p8Ǐ>͝;766ӧjdͻrʼy---rѣG[[[oN^ꁚ玒9 AЏ/ep.rt'8@y '8@@/Ҕq H޽yj=""Bi?~xxrAa$ Op<5[IENDB`XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__incl.png0000644001725400016040000024170313273140075020564 00000000000000PNG  IHDRT+bKGD IDATxw@SWlYqp!ZGժuZmmGTZq0BD PPHH퓦!Ԑ +\=w/EQ@.  /PZ h]AAMӅ2],HNN>s̘1c.q]B/~@uVK|7L: /PZ@i!;vl111> >>c޼yjjjnS??}WjkرzKk/P*733o}QXXoVZZ}vcc'Oo555Wnmm9sk5h \JE__}BZebbeˬV^}ڵ|rym ߗ_~yA5q!СCӧO>}C!cǎr… LrBL1cBnΟ?/삂|رcfϞ}%хׯ__lل |||N:%^- ƍ'Z(;wH~jjy󼽽O<)jڵkϟ>}}|ԅ 0(#xxxQEIIIQWWwvv&>|~JKK;~8HbbVXqᚚ:8;wק͜9sAAA[j088xƍ^믭W\yȑ*yeww)SV/"7oŋ-uW__cǎM6yk""uwG),,ӱtjJUUUſ˝kkk !iG)--۰aeL>LSSoqFqqݻwЧ}A>px<}ǮW^I]_~>>.\ lذĉGyرc-ZR^r;455ΝaÆ7_322ի_j/{qpp])ոq>y9J,9@gБϞ=-=}O`J](7|cll, =Bеhiiy{{e!@е]- /PZ@i! *66]CJOJ]X뢬ظ _ q8o=g8VUUG/ fh8[EEQCC6zy۩eyaQt hllz~XXzT]>zTItu5.M) Kr3 +,-Nuv5c.EC]@ u 445,,qоS80]Zx$""#4466=Lq6e.A]PHskmlz9sӥ)HffaHHjDDFii5MԿ u/_D^VVC>>>5b4f@W }_HH'/pSsy{Ϝܧ!ӥ/P*tu\Z~޽{z;ή7uu\}4ooSS]K_ K܌ܲ='NwvdXLixMqq܌KzţSSQE Nҥ;\nFJJ~z'#z{M܌44x{;Ldhti t>ϞU]fi7aX[tiJf\yG]] Kh+_iTT]Z9a̘*LyW M}bFe?q:ӥttUUFD܎7n̙Ðy1嬈۱l֨Q'MB /蠤,'wtiDQqwO:_б Mt*++"]V|ע@ :OĽ;j?)tI<^S\C.7ҥ;^0m6ӥ³8CA npVU+:v05e4Kp))Znnl6 A#R\kllzx{Ϝܧ!ӥA;zSjf?i% /PԈj:1c1uB=|Xq|GezL0)7_Ў[gXY0]08w.-?wqt]~Ɵ!Y_Ǐ_Y֦LMaaY!!)wNZ_;mS8I/x[OV^(P#y=M/+>>5b4~*)yqHM-?~رҠnpk`PxcTV]r/"ի=={{;3PUU@ )XhhjxxzmmС}LMu. :_&/_q;6 ^SSҠKr.yG`S:0]th@zޕ+BCScc٬QxyOdtiE566?r3.^wr0}6ӥ@G hh'$ds.d666̙&Lti-ur.~tJUUFD܎7n̙ÐyȗR-, fr6e.x :˗""n>PQaxyOl߭ӥ(Ԉۥ/mlzx{OԿ u@~0)6AxxO?͖}S~BBvhhYѣxyOhJTjj>{M/+S0a}0*͛y6LTS(TA ~%jϞKE?Jr/ih;9u2QWWC@ u˽V^^K`3g:c(u}O=YYOW/W !`@MMg )UU?ww!.͸|9qоӦ9i3X34G`鵵[LMuE:S)&&: YOhl?^hjBl!d5kާ_@{CPaa!IXdnTVrt2L"54\}ors~ӧ-3fuu5@ MM~p@4E$vJZ˖v~ \9wUUULMcf KA/^._pfP(ƽ{;TUU\{#],as8*2gGu.@ݾ];%RWטȪ@ΞM$_&aCCG~}0/}x{W`u/_^z KSXUeyye`MBΜ9cjEеGһw"hjO-8 EQ҃ ꍙ2](kݻ*ڑλE!8KO|~Yy)E1@TX,֚5k\]]. xJ(|¦&Ʌ::CtWTi{ňr4k֬µk2]H{y>3BUHF]l%X\KA˜ qp.lĈLWJ=C(%J (-_~BX,/dxɇ~Z+%ܻcX.8h$#z(O[[rZ$c w!==ᄄݹsb%n>qD#uQ+_3_ _|[?~ڴiQO^^kTo +=<{ɓc7A͛W^]UUEyu!CЫܾ}[Ueee|||+hdCڵulzB/^cc2@YуL}}=!‚rބh/slܸlÆ ƍ'~^Xxxѣ[m=^Gc ¯%<ڴik׮lll400믿IaX'O޽?H1b!D9ihhĉ h|ːMQjަ@ ؽ{͛7%i^ӉHLLX?22'),,l&&&Wnll-;`RG-"66v֭ ,On6455I\4Ȉǖǎ566޵k׉',--꫖ suuݻw/!f["DVUUբE׭[ ud(jݺu㤚Z@@cǾǏoppЙ3gR[=>͏@bdƘ (P" ,X`…%%%7oޤ(&&&Ν{_ennNɡ=VSS[xqQQQ`` !cǎ8q~yIffƍϜ9caa! ) ٳ'ϗgάt2R6g߳gO/6'Nz*%yyyUWW={R^^N陝} ++m۶I](7'((#ȗo5۶mTTTЍ 8~PWWLQ|iӦ֤w$&&(G/٦BUUuϞ=BF HR+2Z>-m8Rk)w 66(@ ^h堠 +++ >ȁܵ1j>jQ/ p9nELW?--_5BRSSy<ڵk7oެZYY{I&۪deeћ;wN}M/c|踉E ©SsO>$ǏOe^-_\nz|UL˿曨(zI^^h;;;-egg/[ё^X[[ / Dumԩ r-IOG &&_~ٺuӦM&N(Q!$''Jb[9!ѵR6 ej8pԒ]lmm-ڪHBEZ{_<~XmkkkkkVR7dx_TVJJJ||\3ydBHii@ ߿?-,>23  'Oz?s̩Stҝ;woQQQ[Jq|dU0f),,ܿq>szI^u]-Ϛ5kiii^ti„ uD'TVV޸q2gΜC>BH]4"QP( XdwEED2ȫ ٤%mWo"97kO[ dggӟZZ4Hk={K222vVRd~eek^͞4iRXXXvv{O_***yyy=իx%4.{С3g4߅gϞ^zݣFںu+$n?rȚĨ7~oKu*Lk /^jӧ\r !/^~}XXXIIɥKnJ ?e`ƌ6mzqff 8@ܺuŋe0,ٳ<OUU[nB?^oryGI}%Vh6/_ʮ>MIIټyQ?-[>ǏDƗ uw&MtÇzxxӧO>UUٳg^:???++/7o^f qƏ>A|(Zbݒ%K!U7WQQYbDclKReqTGck /"k߾}<?̬m߾R[[ԩSD=(矻w޻wΙ3 Huu~h```hh|r&y. IDATE-_\[[[~R$bw_#Gjkk ﯦ6p0'QvyAF|Q211fSSݻ\]]ďvښzLM}122ZjU}}ԅik=ZTkuSOOoΜ9rtDN/ZjaUUU}]]چ DUTT̟?l͚5umll6o, KNNf١B8 QؖRr|UXbdƘ XT 1tF,+((h֬YoHnn5~1gϞ_ #z f`P>/%bŊ,HeСCmY3/PZ@i! @j^jl(U^idTb)A+,,dPBׯ_5kUhih4x q R*k֬)**zmy'RWNj/gEGWpad 77k??ITTx HNKIG-AՙsFG/.24;vGtuΆ Wܻvm,s鯿n| Եk9Wp޼wc$NJ} Ǎ97Ow䊱cX_S]۬ڈ20 FF:~~#>'a׮elS-RB!TU{bf\C>_0|xL0W/K|(:uJh'ܷ7(7PPP~䍓'zś2aŊ1b(%! sJJ^ji;9A|~1ŋ׮lwwCCmK3V5vvey@oR1?L;~yƦY\uKiW@׷Gw%#c{{֮23 4g#{g(e&R99))tVU A@GK^ M NYg3ʄ麔\iK7>|ʕc۸ {Fff~ۮ)FYYMHHѣ ϟ׼ҥm. @5tt4,tF =<}fdd̙\\,Y,իڵm/ ڞ=vka .];,pt]]@ -/_j;9qqtw20W;wĉO4}:uu!99?;gX۷㏤]wogƔ롡jj*.˗ݻ;Et!:_oIx?Hv-Xgt]]тG=\ZW^߱wW? N>~<䥛ҥƍ[ &}HA z/or$J\ AAXBBvrr͛¯V=.Aբw >н{w->"1qs^os֬9։=?~<l6k4ŋ4c(0KEQW;|86))wР˖> W8v@;eכp|ڪU' oaQMMCXX#q99ΖK8pPDAX||vJJ~CTť0~C gGitQТ;#_E_ / O_ӧ?˷KZH ~~s00 0CE!|_*((f(䥛w_|1iobOK(((?yF`ʕcmmq;J<KNkllaF]=m@k,ŋGaNGF6v^2իwΙ3쉏ٳ}v<7Çh}k]Siiu``R@ yz^jjArr^rr|0PJ~egr垻7L8ЌQwu`\9s=x𝮮\x˗߸[ 1?ݙ3ih2]WxnIa6Ζnn?"t.J~Wy!C̿jk+}11qNHȞ=?%300zHHcpNF6r5yO ïz޾}чŘn4ہzgBGP]]s|׍'˫kr}}de]K^m!cKK_zx Ztȑx(:NNx :e .\ܶ|uu5/^쮪tE ~u#oo76C?\t'0zBBv& ͝;[7  Iٷo,K mzc@)OUPPW^}euT܍BW}eג%͛yӧKOlWw8l( C(9~BB>ƉNKAa]SӀ'\(CU_;x}VV&}ҏ@V>QM#fSRN--m;)ogUnnK7n}-$}5B-MYF60hSqONY'8RnZW,pSQa3]ٽ{<=<`|V[qTt=Ĝ}>~I@QQQT=ujaL oK%$dge TOA6=p`A=X5(N~~ta[N52f"h|p>"~^^$''*ώK9ѣ{ϖ @jkӥa6|tv Bæ(꣏[~|O_\nƦM0a@{}0wG{O&M{Ɨzdɱ@ bd|0Ha++SK:kl;:n_aco~T Y JK_nyw޼_=U[[銠ĉ?Kۣ;w-}GЪ55 ͿbBX[x}{ ƍGIIII٬^*&Z}ɚҟ Ug:{Oڹ۳~X*H酆޻Sl6"5(ٳuuREQjNnqۧW wך4n$;Bȋׯ?ڷJqK_' BBH@˗H(쬩JAAAJJ UGG6bP &[(Yx 󿘧2i$ EP\SUi.-ZdӷJ7ïΝǎ%xy=KWW@^|uՕ+ǚ_/̯M69s* a5l KV`4/nl:Up~>9%!={vƌLWFSsiߡ+bpB.*15cPŠk[Nis;_gժq&ٛ yWCӦ?~oӦtB]Ǯ]wG:}nCa P*.zlٲ'3r@}~BUU c3]\tgK"ꚶowp4N}:U%۶_̙ݝ銀z k]3: +77>_ɓ?-k=/ї~-ڵk۴)F$>gΜaI!X,VnnD$拖4߉6/EQ~~~o'4ޥ5n @9t𫶶qc~;vPn Ԯ]&LO1=Gq_|nuiӦ322j~MQԙ3g,,,޸A.>SN-.....NJJ"ߦS/$- '%%?{,..N(ڻxϞ=;y{d7^S[v b_%%/.̙Ç+((88ZR^" P!!!BŋP?}ѯܹsgggؼARy]}$555555 !=zM_М|!A|oiؘ̎9bnn^]]-w. !o-e1|ݻO'O\WW߳Ҽy#llt3{UYYI9}M]]P(ܿkLL }+#"""ufff&{\KKKSSS#Xׯ_ojjjbb~z>OaXǎ566޵k׉',--+z+.kggѯ_'NHEy̙ѣG7nmX'Ov$^zɒ%wkkku떞.]ZhuZhjjںu dI76`իW766t`%DFFZYY|$j}"u!+z؉:HJO -&"62R'>F ݯx)$11)RVwM*s(-9m|Y`k%%/iyy%&(S9mu ,\͛E>|ܹsϞ=믿 !999Euuŋ !eeeE;vĉR7>>>O|-[ |ݺu?I陝} +++V!˫ٳUI4RBZ] 5v&Nxm۶I$G IDATo%ujhim>7Q-SRO73f 6jm~"~@3e/tI99ED4J4cᗿ\Ϟkl9$` ^0`=oee%$}ږh&NsJ"77W9N޽Rjc|5~ u낏M8p`y:ヒݻ9nx/T| # /^jժӧO_rB/^~K.mܸQv#<OMM~֭SJ]k !dƌ6mzqff 8j,ٳ<OUU[n}%$$͛7OΝRMMM۷o?~wAUUu٫W/Ojlْ駟>~X}g)))7o#-X/_yS--h;s imhilԩA󅾾>!?ĻSdLmRI[-ڢEVZ`u}ҮI=st/oCt=u \z=\H^5_dd#܇e߾}<?̬m߾R[[ԩSD=(矻w޻wΙ3`ҤI^Dk#Gjkk˫?CCC˗Q_AAAWSS8p`XXkŊ( _h>Ԭn]?ٚ5k[hhhXn]Ϟ=̙SYY)ޣ=IߧO##UVTKFpJ`%>4HJ$KEرC__aaa) h2G]К)+:EqClBٻF#P,7 x|`7o>eÇS@)̚u[cc%(7k,BHpp[kmm)[l)((8y$ӅBN9h6fX 0w(@zkrNZ u711',l5#Ge}ٳgǎ;}4ӵYt_E}EY ヒ<ْ ﻸ7o6lcƌaY֩b /)9s(=󋢨͛φ;wZ3gn>zT.b_bee<=Z:u:tH.KmJR*<1(ELE(D*)h!ZVݴM[V*KjwS7&Q}|ːef,s1xΙ.+rQA_nw&@W *ȑG8͜9\@M1UZZ}5k&) $Hӧ|,E"ү_a4̌_[[s8̏H+))oӦ+V18?kG>VPss;A_$Ynn)E$$d''p(Dh͙3BѢPd%c,'˖,he5gO]nnotRP;_$NMMCBB9>&&0 r&&Z& ڼy:}?@dҹsKdd=9G̝; @H$F222o&~Ԑb(1^l2D\/H,Qr,*5;>>Jz(udee:wft>0\nr6[[+)MQd2 Y"l5ԧLAaٕN%Sf3ܚ'yb+V>zGy>H=]D((ƻ=:t(DHb7g`m8ԩ/)>]}ZzjPGR֭8Eow!>>3>>یϟ la?+*)%ך򆰰9stǎ'FOJbjj*-˗*%#C߿ǀ=ut ٷow>6WTTTg}ii}YY""+KTQ馪MEdmmm>Isˑ#Ν\?l& $ɬY'Dݻk_عaB+]q{Ѣ1 gS=Ο_t)w2kֈ+'ur4r䂸W޽b2::*cпo?(޼2vКrѐ{#55晙9:F+R,-TBB27[UV6_KAGGEGGE[[ e~[><˗GE73w,2{۶;%/uo͚I8<$$;ӧ}JJQwf+/rc x~(,ok^փ&L4vjOc99?==PYnn==qXWukثWi>>3{Ɣ(6JƶLK+BDGG\BѲ:T馟bq~h-.GDVV*dܫ1)GJ$JJlm--=gOzС;==bԩ>-D: s- >r⫸4#W[Ϛ5w҃Es?ٗoߊu5Jo„& 22n9>?8B7eeIϙ:u[4Z>OfSWSȨ:**ͱ&{9ED^ԯ_sttTTڏ/.7lAA7$Ƶku76vn_c eצMS.w 3Pݻ7ҥ8??-re.1oZͯZ~"{\9aK|/uuW?N~ϟOd4j^nxG'!{xNO{xL]zTRRo_Tx{Ӄoj ,t: ]?CU3byyek'bqLJ䗟_gμ8t_ba؃;LM}֭|xpB#"-tp0٢ݯ_%[SPP~pܹ֬5zϟՏ~K\\>\{ʔS 4HHץD]'gϾ47 'Z!Yʶma55Loo{QI`Gfh  rii9PKtHC⚚ɦy?d>th΢EP5 s\7} 6 ÇYfʕt qwyŋK'N64MLvyyMN&/JKgnoNO|ySlW"`agkklooү_/C@/_~ݺ5߹RdHUUgm=agMMe#Wnnic",9Ed%L6.u0-*@Jt)UWǴ74wr>$ϟգG_v3VMt(:Tjvp2>߰!$+8:z#NKL&;,,جɓ_o+譾"hQQIoޤH266CLmmt.wh7oO<g-&$d{z)((߼yl!%;:211D"a0 EKYb?'Ǟs$ӥ޽nſ|l!7˖㏉xڋ_|ZU#F3UWWsore:.}ɓsǎ5ܰv}aGh҈DĉF3fCnN!8} tV/ E+0p!6Tj6dRR&Q(z#G[tF^^i}= A99zzzjPW_?͘qe޼Q HIqNbi"+wwR^^3oْ۷W353۳t؍Df:/Cj[7v@2ph||fh(Cɶ'秡a?gsRUg?͛񾾑~~.cQphHH޽n<^IPTjVTfjmaKhx^d6/U\]F}U%x_L~ul^=& >|ȝ1k+llKƌ9ba-ށ_zUU|!}'>46y3g^ܻ|ŋGWLMMCttҝ;T*5[MMBIw,7v8`篼ҭ[^Jsu)KlnJwlu$VV V&BwPM"Q<|iժm21 Ϙ1c*ށVWf9B؟ᇡ {'R547m !A,'&o_NQqu?߲Ox%]o|+#chn/%%UEwp0=xICa4Z>dz:EQ2Y +Fh#dlΠItz] xN~g::Y[PL@ܱ\C5NZw,0q{{;Q1g)L GD(گĉo_yZGI:^tz1 Zt$7q 4& t)[oee1u2uj v;?VϙsDD%mmt=OFFmMU@20ȏAA32ǎ5Xb-::iǎ&x3ҿ_V@\IMNR$X,6)BѴ9rdoز~QQeq1#7{Cɯ{TNgs`Ӧ)6x.Ӧ3@D?O1wmf>iQ/Z Hjj_11`fwDHWf0ꝝܬJz;vD$;9[DEjjVY{yI2e&'h4Z~||fAA q@5,fnkhH 좢k'32赵LI]ݾ/3z{{ݻg :& B?Oyf|6}1Kˁv;?ΧYwqիo|}h4=c~&c8={f;"$DEEK.\E wIRN(zfoرxG$r\4$$~HMM倀y^IPTjVTfjmaKhJa%54I$_N lM~ݹCݲ%54$&芌Isq1;rpsH]HLiiݻkIEEϱcp |}RSLns!^dd˖]ZI &D);+Jrsi'I./tְW\]-}|f)_MI ҊQʄYX)+[lYb_MMYM1m>R2 ڕBQt$??\ ZbAAӧbt0cƉõwv>U^^s:Qدj \@:E>t?*/9W/N.nzɓ!%"V1u' IDATeeI9 ;C3h|-J~>ٳQ = #tTTӴ9Mr6yTiWɓK/?5xbݻٳOY[;5a;iW[˜?l^^Ddw?lWUU}Y,Ν;TLڵ/߭,A sb/^|E"ɸY/[6.9ͷ22=bfs+ޱt]]#GDJ(q'2͛,-E.S*ǧ|"x߾"}eooc,r|ӷbba̘sܵkޱtƂ{;its^?(oAuk9ϟ{߰XWս ,,6 젠AAW7 A:rǎd''3_ٽ{NZy;9U^^vrrjjk4ZYPP.#C8P KaR\;v}MMehܹg䂃 - ^~xʛo{Kg,\xo_cԹp={"OX4X 붼'W66ػw֨QzxGzmbݲe`6Q͛񾾑~~.cTrѐ{#55晙+i*5J͢؊LM-,t)-ss]v.,l^b?+PV򫨨ߧMyGtz==c"ޱt DDF~twsիP?{mۦ ؽ73fPWwDPqqQmmtЀ"!;+JrsiÅ,/tְW\]-}|f1a))߱Ց4ZAZZ ::*X0 ݡC5a"6>D&+5& ȰFVggμLJ sO7~:-.nު.YrQIɓW_|yznqTv訨ԥ 'YRRy+D y\4"8hc3)r`\0ZDG'm.+K:tIkH :AhTj9uu̞=卌[XYX%P+%2uxyI$C[/?Kˁ8 3 .66~ǎekm[rN-;ic쓓& Z(.w_| Z?r>hh(:4g8C#oh-[RS^=qF[b_D|\q;#c*l;( JJ `z$_ffhtEd%L9||/%P41:A3b:&J}]ݾ1& +޹| <-ZtOqIabE̙3D*Μyаߍk>ĉGF68p@+7tΈ/:9TUO>@Xǟ8\ag2A:ѣOΞ}in0WO/={m[XM ~B+ÑF FOyTjV]QQ gl ie K2.J ZM~]޽))3*o3n^=~ cUg+-9DϞ""{"ҥHK2>};[t,1VaCȷoEScXO#I^uk(Qs.'kUU~~Y[>|R-8pX.%2a&&[{DL,]RUU*O&+ɽttTzkK\.z !DvO7oKW^}Eϟ@$\]TEEmTqO[:z7V߿14[oW;4c>ĉg:4g lݻ ׁ%TTV8ƍG8 @[==o<֥ꆔj%(Ajľ<_k' b8K~L@ݿv퍘C5Źxq)ށH2.]۷n0@p:vƌ,'7TFpPyh6ޡ PVVoޤ;:;KYk6{6q˖iP(GDDG'A"w>p@` PBbETj6dRR&Q(z#GkYb[=J L__~v'LͰX w|cwuu˗$ۿ?…CBVw,~[hhBLgE F_(~߾(gϬٳGm ߳羖V'\@Wnq޽%sKM-}*k//;("jk4ZYPP.#C8P Kahh`5_;Ae"NB}T}}5|_VxzDh%;wgμ<~|e6oEDbc?]r%@pv6:uC׭q~s{4lq[Lp.0fx$L?\+\@3Xڷo%MnTݸ @$PFF Ϟ],WMnGD$ܖMÇKfAANx6bN`<=xGr-[B ;DKH'O.(HPVVxƻ{wcc ȁs)-c}{,!';a/^.\xAB=="Ngh4Z>}N]gOy#z#F訨D҉g˱V%T-#ɯ~;`**3֭Z5XNaaEHo[)jk="]64g8k!imW6JO{xL-L}ї/-[6gԶ)SXؒ8y쟹0>H}ÇܒdeeF sEXffhtEd%L9|NWzVn| 6MNMbyyeا~k'55aҀG7Dzf6n y63.n$R /}{5ށH6;w+<ب*ɓ**VG8 =w̰a a 0 l߿]MOup0;iT[˴;nH… TYZfӋ qSC0>QY4ZABBvEErg;aa> x,i@Z)?`@_%%!p}B#A kP2_(xw?EF dRpٳ=. [C"m&O6޼mU[Ly7@h^N[򪖖ں5,'٪p"P]]߿?l!QS&>D@))u7p8CA8nFF1V&,!!;88Ed%Lv۵>|aooŋ@vG*_PP%[NSSSQ'OWVV3 _% ,8WRReEoȠw/ 񎅟DGoʾ\.g}G盘@q pnoo?\erݻD"Y3i۶B ř4Hnni˚A^&KꆔrjH$!H EkРoΟd#B$ vʼxYb?'ǞsdK;$01H WO\jTy򫡁mhfA{?od8; cXCc3o_ #"HMao|ɒ=ߴvxxB ffpHTzy݉tsS(z˗߻w}#FoJFǐ!?|Z *{@imIEWRIIy,FhZX9{w3O$$d7"#Cr FTTb:_ͦ :VT_BDN޼ľZΰٴVx{l~IzA YWr)Sbc5i][w,s;IPYY;m1 ޷n!nXH~5ŋ|0lɓ::*xG$MC{Ӧ[~ +aKKqq_yy-;!++bq, +؀nm d솝?Dȁ᫩i)?11Çܒ*hdԟfA$QQ۞=`$4=ac l:%j|ypf؛`""oxSvc^Tz{\.x_ cb<$O?~TL`qhT#uH]{#'秏̅ HťGbNNA?=B"ɰac --c J@rr~yu:  $ @سgʕE8h'OR D"EQ 9< 455 X sa?ɑhkVXQQ 222rre yUTz@ `X,N@@Df][]ћ7 vmA"[ghM'N<ݶ-,6K>Ptׯ_%=|QWӁ:&!dX,رF陙   P0@ A?*3Ԭ7oҳ~"*'Gb2(FQ(ZF/mmmmʺ<'b$3iґ l׭,aiLFFX. K}ZXY# é={k77+;Eg~Fg=z H9s楿__ԝ틊|:|<{dŀ-xZNN9sNaa&&%Lc gggggMƆ 7Y,N`ɓ70 Us]]_MJJJ!ݻ&& 7hP_\ @֭볲Zn6%1*+|\#+EnߞA^^^_3a'~"~-+;栢՝ _ %%%K=zmn=jvR嵻̯ eFDQ|ժ B@ 4ۥtTaaƍ!3go; J}v)C]FAݳ$g޾} H߬1c_dEWW={f)(5@ ޾F?{sҋ bBڽ7ok`GrŪ]O~1}%vc^F=ZA:VjjqEEhhh())zB@}F+j""؍7@PTSS멩ٻ {gfxDpPEu#*JZ^y,{9rPf ށɯ.p6CBCC QRv)[{p0Mijg)V]:uBTIIXIѣ|񑑑rrr?F@ .sӦMk:x!^WGf_:*~իW/{{EҲtK`vsB<F;rciUEz0eбc E ofݻgy_޽nѣ߿?k֬cTUUݿm5}D͉ l dh`\#"]v_XѨXX>|;v_A5k޽{ذarrr>}xTyyW~?S_ک=)_:*3֯~s܅ v(!#^gm$ݯGu僉U3u_+<}jjDHDB5h[ii5-]:H IDATTUU>ѣ|zϟ=z޽{㱖4~cX^^^d2YMMˋb!B ._lddԷoÇ_~]WWW^vŽP(ݺuӻ~zFŗy䉾C\9h 55744|3o_ q۳ڵ7jj "&5ז-a'Іx/DOڱw۷ŋ/iy l6[GHM c]FNNʕ+/_>tPpp+Wdesvv m'<<|Μ9||[[{U Dg}}= ͛FFF}$6###rnv76Zmkg+PQQq̘1޽kv߈ׯ_7{>Is߹s٘ŋ,YRTTD&߽{s޽Ǐjjj" CNNnٲe7n@E˗/_~!#G899h#Fl۶ EQAϟ`0.^ 8w ??{laaKH$RuuuӶ3f #""{Ĕ)Sggggg_Y|F;`JDGlW;»x_>KdMŋ={hϟ?5ӳx<o9 M<l:`mۆ > ׯ_GE+**~8(5쨤jllU9:5MQuuṳhCņ,A̙S^^~AJKK[F.!˗t:N/&_1 GGǑ#G_[ݍgn-ږ]G6߿[_=@#v_>bx`^pACC#&&ӧ=SL n~w6el<_^|q- Q]}#m,@"UT{w Bu#~g0߾zt L~kjjR(ʕ+Ozjɯj7^!xmN~S&)##޽{>q HrK";j$++;alnt:8p O}}gb#QɌŦdcZ{[e]-GoDK'F333!C4,}ב%9y<_JS/rSPٿv| =cgBw-񿌶内-_=muxf FIKK.'=(:dee|}g:ŋ/0uxGfѢ } aTirxAZK> ?''{$))s4yx!|Ǐ{n77fkǎ[UUOGU;|`g "222YYY?333544$CDvdcZ{[eʀھhh $"}Rg3m֨Nޘd=_G_G0ϗv[W!AzpށjW]С9}]lٺunݺٳhA-[YTT-oCCCɔ۽{7 UUU3gjGG۷h4;;SN2`0eʔd2eeeh!rʶaÆ;v4%AQ3kֈ iit;iiExd%sJ9sxA~h"oooliڵksss[;hCD޽v8qDӦNJfBY|9 d2yݺuM/##faal%%%EM|{ {@7;w볳w@$qHȎiK+Wnz vCĈxNmt5e˖'Ob5Z $!:Z;=|qZ{nKjә7@$'hhlz @p(DZiiʕ]?U{j~ZZZO?oJ3Y,رc{=`0.]jժy|Ν <822d6m3\O~/訪[mBLQQA=}p5k -5nt0߿^ϟ_^=ax6 xrؿ޽z@;V4~yyo߾5>BRDbxx8dEԩSs'-o []9MQ-++[hM! !Q5$4dm-hH;[a=z>4}~#xo>)̚_'4xw.0Fjk{}S;Esp5$ =`B.xpLpyZC-D=BϞ~3C:7:emqÇNp[Xt#;6wX,> ?{6yc 6h4… kkkwڵb Q$xr#GM6BXA$!rr~F]k3f>ޱRRRrsskσbaŊzz}W_vJJtާO89;\" > :g˖-f*))[lYG = W?**i?~I}W^wP#22a83fG$*j _:w\6ABCCA$%]B[[p@gTTVuM;b  ;dȐ%;8%%ښAƯ}t \@vòGU_ YJj3_쑷?|N?uj2_tڐ!7H2&&zW/ j\tl6̙E|6^]YYiT炠;ww, O蘀ׯ/^\X4䗔*+9}OP%&~Q.Y2XWlk;^Ϟ8GSSmcR KcǞɑܬg0VܸJ:7LFx䈳vm˼tv6wu; %J_wvϞxǂ3H~5}ҫckh( 0" }o???_KKK8!uם?\,rэCdC!4@AG]`0x6蓠 _ZZ}w #(( en2y ίN"mE_䊊?ЌéDT]'+:.OKcZ{Nՙ;עOW_={v<\DѹsTjvdndݖ|II o|G }<@ $ _n `-A|ҥ0]Al1.sTrjܸq,K@'#E}|͛xxtpw_>Eu!':StbKC~&b뫭qh ^X|p=}IK+{i'R_Bhիׄ A8k72(x/uz0bԩCD$A`# ^}uݡCs|v'] Tp8Cۛ\.@pukw x+~޻zpWNbńǏJ@QOtF[!ׯ3̙'nx`/hkܿH$̚uR\rv-!!ٗw, $23_xXg>DMM7|MhΞ=޿sڊ{31Yi(*&dRh%ns朂X,֭a& ?XH~IzѣO-c`@;B$=ށবf ,'M2;ܼ~6k ]] ]?!D\d͛55 ]?HD!g,NJ=pr3c z^\\wt wWSSrt ʂ=qsYY%I4R j %-Μy`mhw %SZ;Dٵ@pz~A7n))ui.b2uB\()u[2:zË[ll:|_JJoCC'}+;i{cO6nӃ@@K*V=}R߾R_KR/Xq⫍o-^<%$>Og]d훝y%%U..'M?453-"%Pv*%QPEPBmZR" "-nmdB1b?[fΙq|^5\|BBRɨu~=RZZl8h~ ǎ% [7uӟ=յDXX={$,P4W[D:ÌڵS+^~~ŋEG;&$8=dϞ1cxx-.F ۠&caXOdy{/ @AV8; v-*?oBAhj"] }b*}&.;y򰠠d&Gh(Ǘed߸qFTɓmԹߕ+kTT.=u~kWĢEcAΠQT:;?O?|xI?<ᱺqҳaaLM:֚5Ӟ<+w_޼yVzދrs]ÇP0 y^Yyyop왏:]{={ s&ᦦZZaaɟ?bbL G(*J^!D$ Gܿڵ$6ǟP^]+--xql06'OC.@CM%&&pㆽ0噟?цbN="@An:"]+%%՗џ YK!QJJe._>H$bوhmVVLMO&%@ለaٲ55Mp˗o6[TTu/EҼj: ̯}s3)t,ͅ ǠR7n]{yk։rhQQ%K]ܯUzGvɉ/_~dzz>0޼iŊ dT1=ii1kk]A4vH$"֟f~UU5:t:/~ǎ-[ [d5k~^GܹsћD…7njy _PQٲKopuǃ: ݂wjll=~aYX6(!!+8xІYf_?~6BszСEwdL`гgmıxhGMT-h~qsnQ Ǐ/;uQPP2> ]@u~_\7NXX`͚p~2󫨨ĉNNsTUQga/_JMLNQcc):a@r늊Ysr2zYLL`SNNa,,^zs ufIJba)|||xeeu=ut%!!: WHHߎY˜}BC_Xq~޼׮@7lmY0MΜ̰yc $zʤ/Ǐ?`("31w|}WG#HD t9ȑ{MԔCt:/)lǗP'%1?E3,XncLݖkX?g¹nΐ0qQQËQYvvɉVJlQPӼy'1ݸ m*`pҫW_l~Iƥ3>'JH26c4wARL̻o ߆:g#s|󫸸G۷:Tu<~ok{QEE*8xv)V/0҂_7:p҉;K 22bW_nm>mÃ];5% W>tt *rsZ@o/FhX--X'\3uPӽ{'MRpȑr$a4s7cVSӌ:g>] ďW_")'~~Ki4m܋s,qqqQ7ő_|^!߻ѣ^^||33((>z xQY[5&ܹǭ/44h6*S-\05&NT YzV_ OF ǠU8tWs3㮹8.$<@]]6*QVVup8D"̯^ZRo۶ٻvE<oe^__˄,|+grxyIc*@A}Nh k +VL" t:5NxXSj:H_XqX+$d8&))rP{@ TU̯srclxѮ9  %o1SEECaa ʨ'b_٥]^PT*-&='Tņ8nϯ3?鹘sJ54\s͕+mlʾ3FE; p<11Ν{oe&sg8g蝌0zA84}}RG"ys=l j~8hX]gKKkovMgJKns+kkիWss#""PgǏWRRSߵX]a=enhxT++]ʲ7o d B>)u+**W[3 H9fϯӧ4m:H/TXYhQQ|̙3) k! -,o~35=)../ (JXXil6 u `nnNv H8ujymm8g9t:vXe F,b_?;~H `+WNܝ@ׁC :Ho_㔙_ϟBN~Z/ sGYY麺ϓt55±&[ǣ&:}/6~#@  ~~h#q+h~Q}9SuCoq28p`=8$ fϟ<|DzÇn;Q6SF"H$??OHҥQ'Z$l&8ׯ?[:ߡRi..'N`!:xwVVv+:e9ǝ:o~˧/19rwmmSޥsde>{cMN3@G$i4]8>u?mu;IJq׭[Ç 60ikkߠs>>l##c^rqMBB˧wDQQQ xyy;=f(((e`hh#,,<|'Ơ7ð2*:l0UUUwc$aHOO>}Ç{ z%wwC{n 5440`vX5TM~p,c8Hnn_c +*fȈT*%뾗 EEEfrrrb\} >|BssŎ;޼yȸoddS.'PթD"8:::;;{̘13g|arr2%##C"O͕!&&ٳU=!!+W~Mkf-#''WPPxݻe v{r;?3(&5hj"ׯ_o}Ѓo߾Z/W _~KkUϑtȟ {6 [7uhj"]uKv66Y<:Fۼy͛7=zaݎ;KKKwsV2ܼo> 룣,XЋ'IEfff`fll8qD^^^+W(*****bkii蘟خײÇߵk[ZZz~ bbb =Dm濺aŊYYYYYY6m*,,hIʃñG&Sp,zt:_kpUK\\op??//t+n޽?~ķ,g! L);4,앛,=n\lzz~hzCX^^"!!q{{jggM6m۶MMM>>>=󳲲RWWWRRZlAUUc_=b:tHTTTGGg̙Gf^ohh2m4 &OL&ӾƏ?{ٳgvW%(((16.o3 gϞ3gСCۿ;tH;}Dz^}cM-'{?~gᖖ~FpIDD@QUUS[=G,,,0 gF7Ny߾LaeVV6;!߾U._~B]I3DBXXƠ馦'%$][_.СW/_,+? ""KwA{|uu5a7oi4'O+zX#$$$++ŸXQQ!,,|uyCLLʵk0 4iaBjjjV\)%%BP7tAtX_ݯ51 #ׯ_8p`]~kl'z1)fz䄨@LX8@رcnb⧔\::΢RAAI8daNn85Yfm۶l۶m!!!AAA޳gME/^544PԤ$t:}UUUPUU[]]MTj{M t:l;2L"FFF><22qǏ]8V.k2F $#zCݕðOt*ڱBfff7TUUˋ.6ܙvsqtҳC~ҭCfaXXXG  IDAT^nMIR54|}pJnW>l##c^rqMBB$$$|sf ;vy&00q1>>t.ohnnhUUUW655c.ȐH<Ƈrrr+޽c,{2d<ԓU7P.wUcL0,;;./!ĉd2u.P]">ì?~,_\IIIDDdwAM!"A6o6xӿ٣_v0%% O+D"bFFۼy͛7=zaݎ;KKKwsV2ܼo> 룣,X aٷo߮#ɼBBB0 X^^^KKKGGݻw[YYX=+++++kӦM8V.k}٠ڞe˖_Y[[p ɞ_߾U%a$..:Kgd;Kaaigꡎ^*++T-]tٲe }'% V005J! 15׮qxx⨃01Q(T6ZX^^{{{{}}}ggg m۶QF,_"~~~VVV®˖-300m FFFeee...EEE***aaaJJJUUUUUU4MVhgJf۸qM!8.:^fjPPI;wū& U <@_uϲ[Ynx[6,WwTۺ|9md }&c_|J}}}aa!quuSsssXt BBB%$$t$a222dAd2BQSS>ٳ>>>fffG鲬… 1 f\USS8qg{./KN0,<< ǚV_cY*.VP*i~1旪*;ٳg""4CZ[)^^,-'ji AWy:QQqؗǏ;^LOO?~|SSSYYJ6l㺪*c;v~k16rYYY@  󋊊o򉌲NzUSSc| ðS;دM),|35D,wSv8X*+0 p0e/UQxƙ22bHtBn8ì|#OOϤ+V|233N01???++kVVV]zԩSxh"WWL##ر#::4>>~޽;jkk{.e˖_Y[[p_QSSr-֯QXXAe 0 pN/A jk3 OG2z'd2ek7n Xr8cРA߿{y?~ٳgϞ*%%u!''1cƬ\JJJ:$**3sѣG{{{;88رYUU7n`ܹvc[YY͚5յ' ͳgXIH$8 ||<|@@WvviXثcǖ1USӴr/_J6L:QTTSW^tݝ}a폟={~QTTҥK.]Xٹ,ׯ^z՝uy;wԀo޼yeׯxFFر8]QQw\B_haa@k+F$r&2(%%EWW㢚o_EcY?t'EEUVVZ[)11[TUQ%^^дM p\;l矞;gWMf<yeqqf ?a„Kl87`@#t}=ICx577gD"ͯ/II_[@$"Wӧ N򒢢6C?-vldžVqq5vO_RR?ֱlx%%7ol8d]z?띝C>lo?cιJ׈DV/{qy՗Gd'&&6 ` iig~KCCv(W.66ڽ[(,,mC⫨h/yyj$Q?'M}CZZ48xK._~fd+_xΛr_ݾ#_YZNw}KK5yyIKy6DqqsKAA I~%5+q8!ֺ;EE;H"ظӱxc[7|UPP-7llN\dG>[Jl|⥺ܧ_߿Ww< 0CJJQ ""}/(y떃OAAEk+,وe#vBona|1ؐjt[|˪JtF*eRTTaי_[[)HxU!:8;57 IrWccӏV*/%Lqpvz3+6l$aBG>յ[vIqqVT4[AN_t_߾UJI/TU5fg[VCC66vo뭸cǖ4H$,Z.05uR[۴rϟKCCe9VJMM%M1D#?RTT4d՟7o,c t틺uq,*1~0u)3FI 55@=GdΜ7f676}.ò_ .$mb(!!̂:)-:_U頡r?pǏvX?!QUWc=0:{2+.&&8mw53sF 6`/:7H$%H))rbbL?nF]{dJeE/^XXn +޻UNNzyUDDzeeÔ)X[Λ=st^[u~X%-Y2>8Ǐ?Оz񫢢!C`#B0LCC_LU.XKK˟1;13˸ ĊoHݹHPcuy…TT92wgN̰͛:P(4.~c={FKJo1cKܻ߲}W\\G=[)uuh~1Qs3qY0֌II.zzj66A;w75Y0(a͞_^^47:}b)S؋ xt6Yg}6=kDQQu.P4رJ Y%s玺{e =̯Jv< de}PhLܧ#11Agmbcf\‚=޽~nS J^>zsu搐ٳ}%%}vp?8x6;OP$Vg|#s|޼ѹ?|)ŷl_5յ0tVjy=Kw?޽&..%ORSY$3ttΞ=tDٷ/ÌHc 1sg{(+ ې#eH̝;)==߲+ eEEUG ")),?sqw %X݌ ^szQ<}ښZF3?yvTf}dW,XÚAYYY[CBR +8l0[J_$*]]<7j$ ƣ4Dz}[H_ uVjX$ikE24@ML)**8oD*{]?6h4׽9sFN¤!:k^ӧo\;_mmԇ?)~.u{~!0}ӧ_p/kl<ӧ_^weexQ]o4qJTԛ6*//SCCkAAŨQ 3(*J޺pN-WRB9"H1 SLIYYMyf_nдWUUzzj+Fqo3*J"UM~Ⳳ:1N2pGUUq,kyyʃP)Җ ~˗:+Ctp0wjn&ϙ6Z̛F󋷰0|`f$;$B݂g VJL;K3SzEFfXZNLIT;_Q(4_'}*g54dcc蹺޲:WVV:祥'#wlꇻdf>j͛ ]:-m YJ 0A!N&'/ź}+5kÇX?D]]wΝMf޿:Lh͚irr$>_sU""6JH3{8Q[2kQ#c^mb9[Cܷ73ԓ\llv oj"N ̘uCU-B۱#ɇGZ891o vF}}/\H243>~0?t,BGTH$qʯ^^yd􂖖6+  .8.9cc]"jk:{aj11A9sFD<{} TPb.@p,XVVg|AA>vD^Jjj+kf`(ןaaiWo)*,{DhҤa/&^V__Ldd^nVXH$FGcY_!('##:j?}KMMfɒOX69IH$"/_))+I8쨼~"-ĭֈtK3Ss'c҉{6jaT*,{Di$ |KHKff[oQ4KTT`Qi66Y+)IQ= ^szQ<}ZSSu(wcAAExx_Ozrs4-*j3WY, IsM[uΜaa8O SQ(=z _jjG5V~~h3#ןI9,-`mSTTp޼T*Hq{] /W޽fjzb\m I108jdt,--V7o;g;e?b_hFQ{#䳲q/[**W xh+֤nyy8O`EE[||q_3|)z2XXjjʇo>4ٳl{`-;V1*jӧ. N^T3~3F_#G#?1 H|zjcc+kqJNl~aCtp0wjn&ϙ:"^/oÇ61Pxx][+" $>\BQ(4-٥ 8m8b.>|0(J YX?>+{bZ deQ~~ww;w6W̚{~&D8uȽѣ̚RT-//vw7ݯK==cnjٿq㵖ii{Mp>[Q(bx畏D"ACCaӧ֮v˄,cc-fVPq8<vBCHMKKJLټzBBV` SSN=%:mDDzzzU.S Qe@Gg۷p/*l;/_Jf@5:,G/eAZ~~FF`eD ~so1OD"痷I ð֕4 IDATڦ+/~\aD+3($$%22J͞=2,lGO^C 6grwUU?֫"ӷRv)DII-wLh $==5;ÛVB_=>y9%%Hզ' +##7q\3}o6͛NtzNS0 =uuJOfߚӧ à0LEe㼽jsHr_]3gKijg'O.N341v.y>.:?`{[9gFx :'O.5Ju..A1 rrT*-'LKke%Ս8>|c_rv6*+~=yiXyyA"S0ӧd, mkND10/^|]𔊊TT#t~ H8cҳ߾=c/1e)*J ~\oY.xH&efiiUtavvG͟=p w4q&Ңk_Oݿ?㏧O[kjʡG2F;T{H'wM!+&d2%!!+$$ii%K[YMBb0 HD55ϟ[V^^@ |^o}h [ۍx=<2) mDnbNQQy$24"#3K=FPP}Wy˗ROX7^0Y}&b%ih>K@w@߫-[. {l/Y2^OOIRMMӀBS[=KHpr6:Nv;6c KSSK:~X±codػϸ&7zG VY!X@u(+ UWEm}bFQQ{A-Ez/ R0>yx %!d3Is;3HUU5'^<UƻSWWw\CP%,,>MZZUBu?x,{=^ LN8a7<𕒒RYY+d z{_rtܷetOϑExBH%n܈g8vfv6vȤ#GÇ͙3kkzK$0U\\uh̨QNN6n)1Y4f9dE VV!|TPi?cyAGJPwu/GC/>iiMSo^Y6iҾ{K~]bz̿|ɿ}{͸qG\˗:Ͽ3}ޖY=OKKYEEB ɯlm xR^-Ι3ɓ/Ĭҏw 1dÇ~۷-]znԁnCxvg3w}ee͟Bo鉖Qz+WUm\޷we. 'j;fJKʆ 3I/ M$||vxڐU {,{.s/:PuڻŽ}%$d*$dLNDć9sҥ73g~rӵk+܆BKBnB+-Xc*(Hvi۷$ְ+'@,:ޱ^YYg=pnQ' l_Oo:~ӧn.\xcĶm3_ G$~oxl#1 Wt~Z1Ǐ/{1`rrnhh͛q,OX8eh,%!?˗| ,''xbVLR[1Rj_;|W7˴VRINm8t޽s||kMf#zU${6>_ž°&\y[XXՑkޭ[wu޽sypOMM5&̙3FSW<@CgR($|I.D믇x)Bhp۷׈3^L_ZXXfs)JCQQK+2 3N%BCCB ]=ׯ"ծel6(:z4&00kMS0xX||7o0L3%󀄄l)8eʀ ո\^AAa7{mD"`'54?_ll dyxgt~ c~Gih(?d׮g>wrK"==~7EEVmt/8M,ʣGcF1?c/ba Lb3f !rs˅8&]W fs /+)ҹsKݏwfURDe@ xzY(OicJ^}yzSmŋܸ Fu==\a;s<_Ϟke ^BET|yyn.Oձ5l -MA1lq"dĨ(z㾐]9{޳X#Gb<=Gjkq䜜r*#"~:+1sy3~Μ^mvm 펦MQFh-#e5frr1f]3b'61Qukuzzɼy'x* '#CA54@5VVڑk-OqqeRWddRRR..k^kKI¼V-IN]z׬"wܯqq[6mj` ܠ5_H&fHb]=zF-:cff^nnݏ]BYYNwSdw NZiɓy{_4i_pH[B\\˫exL&9:Z=seoo4`#2zv@ӧ+*ʈpUUΝ{Ko9̝;JU݌͘1~us*ސB@޽d!,yZ~:_dajj'+ aLtWT } +**)e39n]Y[ˬgh UU,ЫWߦM;n!h)'o|C:m<|/1 ۹3b;Sw)"6yCn?yCQQ{z|#ǘ9l6w BJXVU5t4ߣG_dd(#F邹"[JEEÆ̛wM$dd(22Q,dloo{&^EJ>….g^>;+V;ѣuٳnts|sF6Ws֬l6A6;}-B(?!pqL>th-[شev xrœ'5?7gq{ݷo;w7\F)$S04pq#ʲL~))<~"ѱ'@yH$m3ll |}%%<3rkh(mL/r ^}pmr{P~t5!zzjMZZ["rsg$ss7VUV_/⇁ahȑ#XY>5zva ʕ[N?6;yk+zUPqG!YjjD۷8$X$fta&&=q"$@"/3ݹ&7| >Mʻ5 @ձbaw@wd52L&{jÛrΜ9sw?vN"x,.$ĉ{{vCB¶Y4fy|!BCC_~-($NM =ׯś$AQQ_~5PDHW~ڵg:fͤ.]hh(;ӧ4I!8^aa>xpn={dӦ}_ؤ=BֽzuL||fTGƸ\^yy3VYYes((`4iX޼&++5s栃߮yFyuqG$xRQ=x<,&ڋt$PU~T n<s/.ŋFS`Y|K%PwaaȈfmOR--Bl6F׻vm a[ɂDiiq3_S(,d4\# ݻgC nA_"111<^K_!lȵcMS޼[)Bb]ޮa݇R($wa ~aL0@Օ wt;Rm:DቮGkjlvm\޷o#GFԄVUUD޽$##WG-X0jЅ 7UU?>2vÇ~O1o%-d.dr.=|V̘1fsN?7"66W3_l6w72D$-][&/rM0l+/r8ƫ# ׮k{bWQQBH[[Y( aXDO<z$B22M^ ED|W$]\ !Z$@1kkի'޼:%eWHȲEF#Dry_kT9BLL?'H$Ұa&׮Ə_*?aD"@@4.^\R[z&bŅb~-`y!!3H,*UQXXDz6#/1}@bu]{cbobŅи@W}}5$"ZZr))E#F֘<}ziӼFVzuƫW <v5G0nP'[<~)V<А!ͪAjfp] бcd"BLM0ŋC>}*H"BD"&aFryaEEϟ۷{HRTTm"ɔu3g,XΝ;55Bk%\fff-={@ 6N2%***--Դ h4atzm7O,*j^7*DaaVVZ%BHQQf^w7!65oØi sϟ? qnԔdjji]SirrIB¿um\K;j4rG]zz r 9988kk+ IIȵ,2keE$iiD%DYY2D!HDYY2ϟ{$F߾}ܹsgƌ.]w88+++)) ٳg MB# !$ *DZMZd@?6C#GbwΝFZ07LMf /7n'6Wt8|k{G'ǎ|=ÇCCCB#[O4)44 ;v$D2;?TQQH_/^Lf#)dbBq]zdŊ J4SS =Axx.@]rܼ!f׭[n:6N bbb yӦM4iOqqOHH}zͻw>~855500Unnn^^^YYY7o^xqmmC^z BZ󚚚4(--m߾}>q=z]PPdddrr޽{w܉ksLL Bŋ?F}𡡡aիW{<n-BðhƷ=ztMMMRRB266vg[z[ p80~ݙ“_55BH~Thi򫾞u~ibb2l֐Wl6Wu^ga X\\ca@'}ӧO퇧1 ==l۶ҲmccJNN0֭[_|?n~NP(c0<t+N0 ?x^&ך.SPZZa X,V WPP`X{@@Ba0{uvvƯ%Hw֭[#_!GaXHH~x/? hii`@?'"ehwF\DZ|̳Ώ#еk |KKE4>O*ȫWO|W!6?>8"֝; ʛg;ze˖}yʕYYY@ 888dff---Bfff++3gtǏ߼y7vϟD԰lUUUAJII:99 <ܹsOPTTDQ(& 3! IDAT[ V^^>..ٳgӦM}Ǐ'Pqq1{DSSӼƑƍk.o-44ð&k[y[F"f͚u֭Gyxx|=%tmmgkk E&7NNi4NUU~Ӧ/_g Sz2]Auܐ!FqqB0_0 TP/W ~ d2!&%%Gׯ8p°avލ/FDXwC!=%=rȤI|}}i4^a!dattt#>|[l~U}}= NxyTTSKA׻[.!!رcmDgg簰AM0!::ٳgxKSSD"eddMWWq$'N\z_5)쪫_xm ׯ_k$FR55 $3!dl,׷o%qqt:==57s9_Au& lq"ʆ {՝;wf̘QPPpҥ/_"0Qo6 b^YYjժ[!T]]=dȐo%$$lܸ1$$ёvu{UMeddཛྷz*x5k\rѣGYfggg''';99=zU ,شi},--^bf[=O8p@MMM__رcX``d2yΝJII_?N_`J񩯯o)zss󀀀Ʒx'O =ږ~x/[blUUU>Nz~mtrS(4bq߼(EKx<ޝ; #G}%⎨w.ڒ /_633ûnߖ #Fſ64jacc#++{n`ii;aT*!ɿѣGϟ?x!BӖ4m.\022RRRڼy3~PWWcX#F8pa0aXhJ#9{,~/<woO&w%--Gq--&cƌӁ׭7 Ν;k֬ihhmiOgGEEe׮]LҼ ?~Oω۱uuroKy듗Gt#2ryvvtu}-;V,d˖x#hc… -ZTTT[  [nܽ{oJJJJjyyy!!! Μ9sELP˔)Sbcc ^7o^UUթSBUUUB ð`WWלAmܸq?aaaaJJJ 0,>>^FF/<8qoߒm8> x< >K[۸q#B/1 ,kjjjxB>|_-Yho޼15577l < NZUUuM8EK_}jVIU.trSmtS(41wqOD12K7N~n]] ӧD"yzz6~Y^zwnoV0ڵkm_Г'O0 rxHxP|UUՀ_" / ֛Oz*xKK+yP%GVǏ7=kaa-:cj&4lFe˖}yʕ   h}))T'';w?XSSfUUU^bii҅8EEE?eeeikk :88dff={lڴiϞ={1]qq1ӧ~i^^^Hpqqqƍ۵kWKpҥ'O޸q#,,jiiT}m|p͗=jfmBHMh B7vX:PH3#TU5 +$FF }dn~QQǎ-ˣOr`sIIKh}nR͘{ȑI&Gtuuϟ[}ݺu ǎFEE999t xa[UxV`yH$:;;4h„ Ϟ=Ó_$)##۷o#EDD8qի?n~ {ߺu<<}z.lKسfNNNvrr:z(BرcÇP('NƍWX0 [|~W5kglRTTT744,Yc_ZZZP o~KOO lN:UYYkdV@033keʔ)!==]\Q5&9Td2T+%HJl`@VH ^Hٳ wXg޹FVVIBC:y!=Аzf|uر 6?~| o>>>fff۷o߳gO냨߿h޼y'N?,j~a+bܹSQQv„  F988444;!4j(}93tPGGGGGGǓ};vh| .\>y$B:uڵkxWx%%4o׮]۴i… ;vF_7 ?cҤINNN~FFFvvvK7/++q%x]_Effd0-fϿ(#aV%t_8ΝmmKΟ?BNNJA.^|B!ux/_77/`?bF!Y8Eׯ񸻻#_qD@ 899 4ߩ׮]~ZZxC D$seܰ0yRUUTnv ޗ^ zATjo_Ç=^h{aöFW7s%7 RRR| vu~ƍg?ikk+''$.]RSS]6?ð'NWIIi„ x66n:MMM uֱtc``ŋ&>|TUUu!䰰0 ooo&)_D"rB -aŃ;}|_8}};fm˗ RF)Nx,@w|򮟢 F]SS|wvuu4hPZZھ}+Oܹ={lذN <;wB瀗ʢEBt:]מ={&OL&M}vڳg9rD__QQQ7OQQqƌ!~ } ><000$$u 7u!C5tw+ٳV;;>pt.c+[hh(aM333Uyyyn[ "x=KYM{H$88wΝ5**rrpM!}}'|}>f]uu/+\}}u;&(g~?hiiia`0޼yҚ;5?HMMox* hةʯ" mQ<``1c̅5 =CM~ fr}}:uY}= 7rP}w\QW>._|ذaL&bIIIoݺ!T]]-pgzyy_Ç山۶mS$fNNNvrr:zhN:__ْ~-===... ӳudrz~ qOLրZaO7ۛF󯿢+*D= O<~'ׯ_yD߿h޼yNN $%h=g,vt2dq 44tyr8b-[tǵB|ԓ'ODxd[ZZ&''^^^ 4ՙʯB߾Bd(KKmΦ "yy%K-رXgC^=Q. ^^А Tjl"EEEqC_nƌ&&&/^|yURRj>-\ܾ]O JJ2{g{ГǶz..[6vd:ܩSPn^C$·ЫIr6 $sm۝#"~?|ZF|Ģ·1oމwB }[B޽clLboW,G(S(~ss @8^ c^cx*Ӕ%j[['~"?nĉ'ΏlmsgDbbNG j\n_ Fmaaug~a}{I}:9=$:Ȉg{|VO=4h[``$Qa̖.=Kwv(HJNCם;>mq q4S\VoI/:t.,D"a!Ox>۱ʯOU;Aݻ'`RTvW=~ /O]Dɟ>Ȇ zt _ۙ.a.@&wׯG)\ԑǏ_x ??N@_!//dכv9n\!ofձ;Ǐ/~Q< z777'5ĮP>#CkϗOH(+eȑnnn⍁HIuwH? Щn55Ç^WW30 +BH$kfabalL31QWR !!7m(3lɰa&:VV:TBsOh Gxv\UU{F=|Ĉ>AAn]0iϰ`I*UСoMO/<ٺS~ׯ7)+w%]_"TRR[In."Tu?##! LQQeXX۷gV#45,-ӵWLBHe$cVV9ã*s7l`ٲq9uqu=bakv]uKJNuiiœ&ݱc…:6 $ˣgdfdfdddefTp<АO54_A++RRRSRR>}ʯgD]]Uss- -@:...s/_wu`q8s^sFSܽ{ر]9{w4eʁѣ6oviU{ K|2ΟOyyͽ{>8@o:d2ȈfdD0TggggW~^rvv9~! R]\l*))߾''ݾP[GTOӠnիtMM.|!d%Sܲy'\\l];\ձde{U||a4<ӧ)ސ '"f m?ǙLNQQ%?)Syٳx} ә2!UMMZoJ2ТEv68+(@1[If!YpE] HKMM5LM5oh`W5^;iJvvyee~r`#*UB!D6[W*(x.3/rrRa4CC*?@%VV:7novn3N($c29M~={ұ8ׇ 37ox.7EO&#CPyR,!! ?Og* W2~-|SN/kҌMm%@ps:n˗4o`z6B]ɯ9=^~^ZJ5ﲟYVRR$5avX IDAT4@`8UU ϟ9S\_BII _+>1oވCǎ ZjBw\bSSӀj:/R\ޘ1+#СM12Z$ 첏% *$ըTyUU9e~C۷SL _-9ϣGN|o_Խ{q2u!_Aq B]{\kٲqbuu\zNNy^#/ͥjTU孬tTUdd$0r +nbMj j5B!yyM駁7M;:?g/ex>ˋjՄNtXlrr>d2$@gIYXhYXh59^_ͥss'yyj LNNȈ*'++M"jj޼vnR~~21MM%MM%33MYYX; z2 l##ˣ?oxcܸ͛]fҫ 9++Q{_of鵓'[k_?J!B ++enen4)fs *E99 lLRVUTF$%唖H$>``@R&{WnSIrï88>dިz۠ 733MqE**ھ͵i-o+l/ב!H~DzOUVUTegѫdeL/ofTI1 ? )o%3݇n:ie9urm<ð3gj{*#`#󿟀nAYYnǓbUUxj,; ?AAAFQQH$TTUT%'U1lXt2t[4jIz῝;bϞ{w&:nzy|>+7>}m6ǁ#hxR&PRy< !$%ERR% EE嵵 F=CIKԈRhJJm (t_%K]\FΟC*KT*+QuNFvUUկY2vł#; ;H~n (L\??'yy/ ,G  *rrʣtz-/SV;7Nh((HA~ |ͷƏ/v=r^EE]xݻ j6ټÇ=L΃Q&&&&V l+V^^gBL&ׂZP !OWSW@Fu7zn%̎ݱ#<44.8@A Yeeb[|*k/]zʕjj$@oR[/ë+ɯҜr.W[!T\OAnK YY)__'g6NעEv68m\gcc 0)\ffmaVM3ƼsmmXʜJL +(`!:YF$\^UUabx}1&{ïXYiq#?"#~rs*-_UU I۶Mo˘%KΚk[7II}o+) J|J~VVYUU=BWUT}jj0 '54> zL/P~vE]{%22iYj⎫S0 kڒy3@@3f j˰7 *kojxoo⩨c ?<ʕ7Ӧ**s^޸R9w@A ܃5UId2#fssrEEU9ƫgI12d* I5jɈ}Οt޽`!CTGV#hT~%%~{m&X 'D@ PHʚ͋DYYTTpx4H$648BL&ikQ/44TOm%BZ_@vumیnaII5BHCC._~cj1xQUTԭ\yapk!_qJ +9^YY ^VD lC)(ьi+jIumv ZbhHtiyto 15++ЭSWǺs'ϩx<";~|!t@ $jWҬZfMMçOy))E$b2JZZJxjX-}_-qp7|x{߸u}Plss-q&TZ.<<=kևڿ?;wt7 H~ʹ~~>ϑ6oajj1,K FF4%%ٮ^4HIIfǎs ۰ẃþ G$%%?lu[gTjkM=K9|Ѯ]66B _ @/,belH"Y,.BDMȈ֧?)D)[=A)9)@Č._~cG]ǏwDY:%-cCCFn/?1yc-] 0A ެI\zqqeII5H$. T\ȈD/6ke3<~!}SPۊk JTJ|^6zD22__3ox#cOZ^^drZJ~׳.]zlXii޻|@W;;sQ _!PVSVWRRrsEEUŕ߾|V2@PTP60P32iIfs3s\&&׮q#~S܆;(TXXz]}=kQ)ҢEvaF ! ܼX:?((HM-(+(`դ#"O"deTcc!UWWUWWFS׷&*U~XQLed7{s%<<10@\ !ьhYYe!--euw<+fAAXj.ZNU[KǥN:SgTm.8Bj]2O;t&@@'Fv'wn9q1>;3 e쯖-IS3yO=h4ꌍ.Se| "xܸZ2S6V>Zm6+)ӧkMdPWTTy9)) nB_ jCbE {nNdt܂M11 j;v,BHg?hqy$`hkכL +M--7\ɄBTPjitLT!j40p0ύ0妦%DZ-IjC+al~v\.ܾvl~|S!MSEY6GaDEɎI)+-YMSӧdg?+HI;qƌG 0al64r**t/t6d6[* QRFA E0MSܹY%% Ezg]MM-O*KJ8$yk^7ngՈ7+r\1 #1!۽ ''*$_0]b(-mrQkkmhkGT@T#+V_y% ߑ'J^z@GGWj<_eevXd{>/sZ}vVz#} $nd_,Z^th0\vlv>YL qT!JeHllZ-ʴO-rʕxIÇS(ߗ07ntݻOgۗq; v=[eZB:6667w&5u/(4࣏8FQiuǣE"GxbyiB~lY,sw^hy"E>r䅉=E݃ƽi Z%4M'&b?1 YAr`pJ<vX[,V_o,+UT諪mε~]cM %*! XL}eC7f5'_,X ~+/r]w,ȪU{NHJz6V+x]]D˖M+J4Ggg'?|=1,k{){<(__%PXڵu!ϨT!*UŪ ?P[^ol4]^[\Vs\0/?(7"BRh4GԸkiڎ=;ܱ3arEEz}EHMұj{l'бaW !6󙺺nP|Z;ǣ-۽F'öG5iV--_z^teihh4uz}kk덎NC)x(Ƽ֓D5X]]}lUqq]gϧYp!)<}YY-[egT^: [7yzɒϜ(j̘muM_/B1 MMM0H$ Es愕ar9?~T:۱څ ˍ,{T=S xʔ Owf={ 04E/Z !0}V%8:H~|H{]j?`|2EQܟ_x5(UVd?x﷗ GN(jzʕC}e/_}அ@TVVJ$ojDM6wq͛7oذseff?"wtiNWWWm2&MEVCCC^^^ii0!+6ٛd]s7o~#HYFFFXXXzzzEL*FDD̞=QQQofwo޼IQ*O|||rss !ӦM#BVkVVV 1cFQQc[vyyyRtݺu7npF,;;tшH㏵ZmGG!l6rLf6)P*JR*\Ҿɵqw-׮]5j嵿vt67'W_هSsEQڵk;]?Oۉ???̘12lÆ n -,X… .\\](޽[ӽ{<ҥK7xC&:tرc{s̩(,,h4NcB.\h2#'Oܺuk|||qqNqZYYYne].B{s Bȶm uj,rgϞDGOGüy7֭[zN:B eK;wFvuꘆj999|Wqq1Wm߾}NcB XZ /1GNHHpLt:'&L81c:t{ڵ]󤤤/{sf[x10˗/woNWws%vr 5B#$`öGoSN=z֬Y_}M-z &LHH[LL KmV9 1DDիW[^X]]=pܹUUU\yll,!>c.]VnfY,;Dz7pmWPPpvҥhϣsxy(7ol$''/ZűZ>wǒql!*ʵUCիW}݇z(55^(H˗Fcaa!WΝ^]]͕Jw^gͿD, !ޛY85ohhذaCVV̙3333׬YxX~M50e?-X/t{;9ބ\vB /oQ5o޼L.>˽NYvmZZZ~~^/^~e^|ٳ7o~ !{IDATikkyf{gRRR>~)W裏K555ʼnvrlbŊ-[p*Zn/^G$B׿L~qhq؜e5k$$$$''BRSSryJJLl0z}}}?ϥKVUUތ]N/&\|BalX ]^uo߾h@ϲlYX,YYYVtw޽{jL&KMMdo?׽'y;s=tuu,{ᰰ0,ɴj*Xzꎎǣnݺq𠠠_F+wmźήͻϟضmD"Qtt4cqNsrrBayy̙34M8p޾ISP<䓎iyCn'={T*DrMoCzw0 mQ@zt嘘- ..N&u}`B fo ;$:2l wH~XH~X`4 Euvv ¾j^'H~BP(4 %%%Hύ=ʺe_/ /i]nrIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMNode-members.html0000644001725400016040000005171613273140074021450 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMNode Member List

    This is the complete list of members for xercesc::DOMNode, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__incl.png0000644001725400016040000015517313273140074020553 00000000000000PNG  IHDRs6bKGD IDATxw UsmH;#3|%QF$%͏槥e4ݐY5B%%[||$dsq~?U^~PE0FX %Xb:`,v"X%!!q)S@ppo0+V,Z `T~Z\\ = ۷`T߿S@:+0c *+0c `+222""bݺuV":tϯxu~ztR^^^mmʕ+LOOw[XXXMMÃw8]TWW2-EEEY@eT EѬ,!!ʺp¸8Ajkk=== rYQQѾtvvnIII/Ƿ~z11O>x" 9DK\\[xx877rssnTu`@>}TYY}*Nvvv~~~~~~ caaAF/Djmm222ԩSs̑{ǒ jhh:tHTT466v8N4miT*+RYYYjjjYYYoرc666ϟAɓ'֭311v 6l@ʊ|TzzcS+WWWWzjŊpK.})Klٲe˖Ϡ !x<ܜχH7n888yzz _xaooonn~UAȝ>zaٲex<~`XPY5" 3 ]]]}C[pp_Ǐ{EEEyxx\x\iooollבlee%y;&&fΝrrr?瑐!o߼y6$$$ իWn``Fyyyg𸸸h77+W888<{ŋ۷o =OLL yYϟ?@ڴiSzz:X ÉH$yMCCcC޽yf!!!fw Z[[߿ Hff VONNvww;wWXť H[[ykzz ;#w0jE$-,,zdggKKK~VWW7H$Kqqo߾TUUf͚[>*77CPPtƆoڒ}?n߾=11WQgϞ~%33ޝ?t?zW޾}{1gVWW{.44hsV@ufΜw99911ligϞuwwgee׷gcc믿899WZe``}7oΘ1Ν;pqq]p!"""88FTTƆ.<==BBB.\uqq9{up8¢ۻYYYx>m4???]'OTWWw@>>>]]]~;GYgH`i3@W F2assTV//֭[0bPY崶vUTpp80^Z[;+*޿+-/-+-lDQEh0:2uE>~|a`Ae#A JJj޿khhGCVVXAAt޼irr|})ExT@ϠaVVT{WM`ggQRSV76V-8e ==( UWqq1EL``mm]%%5U_JKKJjx"77$qO )65Xtã92""..޻"=/::_||bwA&O""">cgo/ԜLw))oU YXhX1 <2O|ˊO$qq>UU r)UUuFC+?Kl싄?.[|֒%jlX:;{ >=yR4}ҪsHJaUe%&ܻW<'tDe4W,>1׷W=o~! NQU3Gflim#meUWr>|ԔZztDB߿}ɓ/_V׷2Ϝ9u֬fMpJ*k/QQOn|Ƽt֡gPYDo5}ӏMM&q͝+3gT5)pB1VYZZ~ƾϭhPUzg TVל Ο/;}Njꬬd$QYTԓNNK]\tD]"hOccÇ伯n7O)N[[^[[׶瑑^}%ch8`L9+mϞ}ySZXXĄАQՕWWba55C$23CCs>,SPquձ!bF *+Ukhh.(~]kkCWWt``4TY{}ҥGW>acc7̉*?JuDҫW32J99ٴ +:4++YCC{t m&&3֭ә5KPԢ;+$5w?NW24>,;;\%[Yxbjj _:E{2MAeXCC{e$i޼iʆed&c W^ϟ ˽{7_Tw:ի%X*+6|iw0=ɓrff&##ŋU&Ou40ZtSY>~|Vts^^.7E ٱUJQ?ON~HdƢE 0m:=J~ËsPut\aC@RBUUSJʛo~63S57W7O]%dmm]vv6l[*8k!W*'M45U]T}B9(++ُ=׮==>Bn /c ^t..6ccssEYY(++YO!:yPPVuuҥ7 c u̐He/!Lm`0d)9u``FyWkkͭ[/1P^5)Ul"F+V:㎅Jro}tŊ9>>'a @enBZZaTԓ˄yCn%`8LL8ssu5c:EEW>E01`,2++lK˙OjZM yx8Eu{[*-=yժ0 ~PYǏLff \\t`&8KYY}xxn\ +4 `xϜwv>p i3K)X`AeWqqMppvb+nn0 RWLIy{Eoܨa> TVAΝ|ཊٳC ~'8nRuМNۿdֹ3 ]?H$4=o[۠?z._vwgR (766 sswϙ#ak}֡ ZBRLLޢEǜ„xnNJ22Ri$aa3g<~|zbC0r TYQ([RRjWE% Lk,8r䖳sÇ%$H0hpnnkdd&߿3$d U //m\Ɗ]cx<P6)ңGoyDe6S%%Q:bmm yo}gBXD &-݄g33OSQ:+kYY_+mn:Dn͞}mdk D>|m[W7n46bccWhpSS÷ O|ʕuQQnPVQK˙MC/M<|:4_WbasVuƍQEE5ww, U{ ==ţ=DEy8DTw׮_|UpOo2na*`lZ5/2rV nl:sW֞vX'Ԩ< *++# y(oJfyybl%''755!ruyytY%%'Ο??;;<9Ȁ[444DEE{kLCCÄ 899{7o ""}}}|}}x< 8.<<\IIiǎr労IGrpp\r__/l٢o|xffKM}IJJN<ѱy+--MVVѣI9,UጎXPvବzb!-PZrOlllȗf͚:aagϞ("$$_SSsm A\hmmeccsvvBׯ(_reCȎ?nmm]YY?s̝;w( ]kkkhh( !!!444ֆBYYYii)''gDDį755z 'N(++̝;w۶m?,Y5..>)ccҧO߿C4e'n|UR')5Yǿ);aV֦& UU_ʗ.]}˗%%%D"(jmm8!dtuuuEy===YYYO&p8ӧ]u8q" ~nnn.ӯpuuEZA:$bF>,''GVRRZlـo\LL A&=PQQjt8`qMWo|u@?(ZΝܹ3CСe0 ٳg }||{߾}[촵}UPPygjjs Qmjjztu:;;I$Rlllccyccbbbxх 'TWWݐQV_A***o޼9| | Hii)j'ٹOO-[a UÇo=z{,XʑH$ggM6]~=###%%Aggg__ߤԝ;wHwwwOOg}ikkKJJ ++]v}9??ܹsCpqqq===\\\%--}ɀ򗼼DFF9sfz 3Þ={ ===?L2x7o.//۽{իIv0۴p11P\X̠s@@7(ùӃhBBhcccOOϟ5d(:uʔ)AAAvvv|||fffkiiqss:99 utt}j;::zڴilllIII===}w$Ȩ7_;mڴ$u;9ꀗlm&&&6i$;;O><44TJJJPPpӦMu~Nk`LPb\?cǖ;8,E$&&f픗Q*ǎᢣ?zZt`RXXnD FcGcbYe@._>5ٳXg4l|+o}|nlݺxq0b<<<ׯNm Ys7n1q۰ږ IDATZ>>ǯ@ȏQb g'#`ff:wACCjժaФ/^|rr s8uさ…bb|W_hj%oZ]x < 9'r\@ FD3 u=UMu#4U8w,ڍMeK}'qEEZZQjjAuu77t&H$eeDE=*Zr/ХGNj'OXr.YU  g>D K˙FFg͒33r]]˵kO\ymj3{4h]7UT$TTıhYo70V L޻WPU7AKKN[[HYXt s~xbjjAhhN^'qGDž0D|W22R^HtXJCHJz|fliOO##eC7K/_~Éu@uF^Y׬ kfvv1 P3"eEJ[׷HJ )͞-M77W^ xìY^^J=FF'O: :#,ɯ326BYe݄E "W32RVUu40B).ZXPPul5"z˖i#?9tt2s֎nmJᅨVݍԜjfjj:URR{|Vb+11>WWGplpŋO섉@_#ǎݾtѣGF˗/473Gz2MBBFhUV~x1'*17Ep}k>ꪻm YZY]WK֭LC_^Žh^Tz\[h}…zp:G.-=,Zveuw\\\3MMo}dڜ92XI^Yɾo ʊx( m峘'Lt,Z^ebjz:zT~Ƴw 2{7&該}q3yyaoocssuQ/V߿ qjqyNݻ͡ҮI_mPEEþ}op17W ~e~ی _YY//]zX.~~Knxu@~6A  "q9y}l..K׬Y 3ۍ ;g+/ӑ#=hls(։Ş=qw|MK+VD_.Ϟݱ *[8\;矖Vu(mdGϥK061s`A *WQ{S&&̠ %%1C:Ŷ}Go;9/\({rYY!savPP\medCw߼IqV-(>x>d#YY%{zu*QQ3g=o72:Յ:6tۻ^``iDBWC4bc Nw;trf:`Dsܻm (:--gxN@W>Yl&KU:uo۷ǨKff&%ys[,,L:TSttQ_ߊu(Jsuyѣr 8?KIIs) yٳY0/oߩS+aPI7nUv)C)+ϝ+u!`~.#3yLIʤ ߠD^}Ѻuxx`/@ttw۱#666Ӧ1ʝM:_hu`x<11ʕsa:Cl׸Fhiݑ#/^1 =Knnk22:y|6H:%,^b`'޻Wd ,Ei5'޽ s57Wy@Dn޸QUBZN4de_a`ٳ?fP2 nھ=fϟwx T@OXY}|L7}]_?5Dhٲ))o{zXʚU"//"))@4 [ y<(S}ԜkfgO|w7}kkͶwX˧n)R2 c'""̙ 66?4_Vf{􏋋J>>я?HK O7oZRŋU(jkk55ܸᮣ@L @ ]ԩ{x`P `A&hnaI*26Vfcϭ ,,L*&Bmb|SLLZ[N4*'OgVS> yDPPɽ{>0@89LLT@$֚Fi3n]Ͳegi3$`2@e-.QV:r?6m|999wmh7@-dVFCCC2%śDB),:ȩ}r˗F b ?|XvkX(/։,Z8q~YX-,5e RUX!UUo[(e221ICZ[;oY6l,_##eJceeI&˖PጊrWZ*] Œe33L{J ÝCBM:L< ?a|l7K11yXm&qMq)05|gc3AK͝+#(8mYp}} 133plrUDgtkN(j2(͛ w]Jgÿyywr@ TU'feqs7b033qpp-緔c߾DE׭ӥ|{BWֺ11fh(:q&.G"uu-p.ǯHSNN[|0kYL$v`]ڗ=Cnda(ŒhkڼZVVɁ4w_"tivSeuffefbg0'Odeei:T֖NA`.ԸDtu~ALW[jRu'0jSYɳLd]]x7KGCPPpniiiƽǒH߿C"oy󦴴td $''ɓp3gJZ7 YJԱreGׯ[[SmXINNojjB$ٳJJJ'N?~vv6yp1[nihhpqq &prr;o<ADDD/񾾾BBBx<A4ycǎ]rEZZzҤI~~~RRRTUU988ddd\ү/7n544TTT{Ɖ^ \\\_~oyڵ۶m-~a߾}'Ovttln֘sJJJRPPOZZ,ѣG{SkWVVDEy/|6~2wEE{z(cۂ=TVVu 2GG5k ?{ Eѐ!!۷oKHH RVVFFkk+sUUUTT _~EQ4<<ʕ+Bvqkk3gܹEQAZ[[CCCmmm A=886,,o_(H$ii鐐E٣# ˗/ojjx" ߿GQ4**JYYD" H`ooo``Ç|z[8qℲr~~~AAܹsmүs_cll\ZZSYYYr?ؾYdIkkk\\\TUC$::zȗJCC…MLۻF8u @ ))oDEɿV^Ge=q۷6`iIBBBUUKz_p+kwwwIII{{;H|(Z[[766xbmm-y;==]]]EQA^zhOOOFVV֓'O655H6"ط/E>}Ѐ˗/)((  A LE̎;6x#}BOO33saa!xYY!Bo c{}V$&??hr?ؾ>D"o~M(755?sѴ3\\ׯu @ %PA(p&JM-X}TXX=Þ={ ===?<Iy򼼼ݻw^2x?7w_SSpRkQQoJFS\1-u*2묁jjj===(&$$666~}Ycxxu2Z9昙yy֮ %Е5<<7 ޱc64#BϞ=5kE2s_~L1l4&N|ٵyko;aLL_ž=Kg4钮ncc#)6`N!!1iưQ Ycg|tbǠwovcV w :dubLj5' W $n8:.y,1\e}ڵaVV5؜5s옍ǨcU֪&g0mm'lyG;;KhS]]o Y=c޽fM(߄ $$ΟwHJz,n1ʽ${[xx8Coܸgll\\ IDATzJOKUXX_`LRYHz͛-z=z ڊOJxAYo굜#h攔mۆXg ]G6N}]fff33e˖ů_WzxDm0F5*IhhNPYhԩSNu !kמ8v66GTr򛠠bky5[=>&Ǐ)): mVY/\xme@Jx.Yw@M6IKO:ј`=thٍyy22`5ﱱaWx"Y SY= ۘv Hefdnh@?֖ޡfM1?~ĄU>5O:Y )iuSSNݻ41q #0>8֭ NDv̙ׯ+hTǏӋde$(cfv--E.OUfnmKA$ND֖֮߼jW,&Ie%Ѓ kk`յ\|PIb&bb6G@+39#NXkD'5.EQQKqnϟ{U!11<a衲^p A}Dllgc ?朑QljzH w Xg4+k{{wPP"aa!гg3.GLԹX LMgdd p/YwhhL5<[++: %4_Y##ut(Ⴟ//7ED`n4

    >&y133,X\\mdtX'1,,LO۽xQqSAە5.ŷom0E0 ?jaqFQQ4#WSS D4c횚R˗ H\~b:%յ`(߷: wmm]_>x00"… D4fD5{Z9ag[։hɶm&||K: 4\Y+,+ww:wՋ<}ڵ0K#YUV(ǿB ,3%eEXǡ[S|--ᩒГ;p dez,q⌜ݻ[dekk}{6VVÇ(: ^4YYcc%`}zh@@kku0ep .]rMK+8C֖77W߻7ne}N қnW׈̀0OaSSDSS99ﱎC neB{{u+bAM*YKK¹s0SnܨQ_ߊu@hffhhHO:3_W(zӰ&L`?a︻GvttcJyxq:F,X=(fg8:.:3֭XPyG..6гg~˗)H]}Kp:aggٽ{gԚ5 TU`P5uu-ӱF\܋[oXZ~33͙raREs( [FYYd96|):Jkk7܊-~j~=n!:8;tv^(pd)49뷲b\L3>޳ܷoCG?>n-z<7⼠ imm՝;FF̖ r&?䦐׬YSaCq[.`QU欌m= S0s+,O"bb~#G,2ǃ$^t:a<7J-0>ڭp$/O壤$.''L!`66:p+"nnaakׯjAde$va|B&QQЂ+Q(A8\-\-:ٳ/66MMpˁ$kyZۗ/í3 Y+*Ɂ"،Dgg󕆆XIV!IL0cԩBpˡ:g'%yյXYUW7-fg-3 Y%%&91ǏML<)S$ (D"- n90{Ͽ=yn!8aUUMߏSݻeeGLmhoD x"5 r`w۷UYYM(rm0.ߵ+~ǎEs  yƍ7'mUWETΜI'@cx֦..V.ySqsދgu׮=[<ܹ:# n!`}֮.nhpt ӛ`6D||0Z3}jN=05Uf R`9kWW/nikvq ]F ѯ}1 ?tuu%%ǂ @|CP4>vlѣɓ3yŽ>}{B1LH}ڊb׮][UUAЯ_µk"##Bɓ?,--9sݻ AڶBR[[{U4>x,ϟ?Sd!AK.mmmsq >|x؛ ōfBVVٔ)>>>qx<;˗Ķ~ݰ!bÆhcx "֯ ׷Μy2O=kSSrDĿ_R7nݳ|𡽽?''gY[[766ۅkkkיׯ_!ן?nll`0gΜijjmmm"Y'0ܐ 'O~bqqq] ߳HK{N.jizuX HȬ}]ecÄ00// 6nH7 jjj[bfffZZZě8o^bbb@~қ\\\a0!eggJJJΛ7ӧH$&6߈CD筙6mbUUUܤ*jNqq/JptivNhxVppbyy}D77ح)AeeePP7񎄄ě7&++#ěfffw655 766[¢&6 38I zGIm,Qt)""o8W#R_[F %ώ_)/OBx<~ڵ[lJII hڵIIIuuuwHOOOoo/:tAmmmIII˗/}{{;bŊ{Gii٥KcC  .sNkkkoo/agge,2 (<yyE/XpUyy{ ٱp"s>|ٹr޼اOlG}}u >~lY] V3:Ǐ^^&&߽>wnգG66:(|ȑHFn#G,tQOOܺ[oTzyE wUUI--:FCK@&-ǎА[˸鲲sVee1O rt/(ؿnܳgGE aVĮ][pk ؾ>|o~ YcVZ_*5`ίؽ;AP n!Çp3?~}-ѧ"̟`,?߂J{&NI)[u=[>0pBCe"@4{L ~T seffٙ3vJuu֭LM׷޼閖cB}`DEyNpwagwnQTd2cǬ2nCXdXuT :Jtq1ӓ[ I47wΙO~'l'.'Z0sVfյ>fϞutԟ k;55u̞j{/qeVV3ׯmZ{!edUy3QJ >>~FFV,X{[sq3 aT7ܞ=$xy[ZB$*3"leg~ML,kzK[Wmk,## Sh4uNA> M_߸ŋ}[e9sJHsTTgcv^nSnu2ׇ߳'d2Z;w/+6ܸ&)(f*(iiys>55U޻wѣiitOH]PEP3.L[Y'#߾>|x9B%?'{y^@ nĚpt{Dĺ7o* O=i7n4rq1|ZFDXuHkk[3_dxIGkkٳnntq {׮xiDrrvob5)| }bdt Y͝nU]PkD Azuu-OL:@ [-  LK+=u`#_<٭.q/ tIP1> s74rYNNX[[cbtg\TT4\cFL#--7G9:=yF^=qq˗\_jdt]]C31 ,ں׮F""xjzJK TVYUT$Y>OwӦcRv^Vb0'9-,yB$%Yv\Z R[Yi%&21LNccGXXƍ h۪VaӦfC`\G@snE$;Is&%ëxցp+[[?R_\‚^ΐf#>y @xPfh5w47..ᵵr>hV]`8EDyxl)*ʣ'Y7m߾6#^tdFR q:{~dxx.WS=[Z]hYxG9<+3s\(#-rSmi`++`@>3q_E:OnB!/]rdgǮYs yy=ҥ7Ԗ,2-UUM E۷/AQu_mFtv~==}&&sX͛n ;wކKhy9IuBe@-@-Ο絶֦@ݹYKk O.$sqjiu6l6QVHM}Tڽ{ϟWV[ 89M.,^_wטWruVY(%OmIuuS||֭N_Q`iۗmҺUںkk[6Z!HOO o,enJu܈̛I,說{WMJc##%>>v؏4""Ԟ~TbE{[&j -ӤXQPMIo}ŋϑ?hφ t7o}=>> oHi/dܢ~Y۷_P{A87C`i9X1sdفD"|yxؖ,+g_&CJ{Gg h ϟ?|$ ^RzC~Z[c$@255ͱϷm3ބ5/|͚aad: Q?3ӇB@@F_}reMNΧ&>АOCC;)je ge6.^ᶵE%ϟsufj|jjb,,,ԑ (r\AɾT.++t-3.VT4?hiY;aڲH$;,Q)fd*~j}iL Ì_xx  4zbH22|zzpƧsVg^}{ \77Hl-+"“ RF0ˑr%Ύ*W*V56V vnuXV`F#.TQ1m7m2:r$iݺkp+1Cbݺ4;ͤ;tϊD"V+Q#/Q YH3ZH6wo5FF'í`05=^^Ѵ94kԷo::Hķdڇ5LuXq~W׫GGoeqd\\,-[12  L!!K_Mi ]\ umELj hop5o|f'\#.KY}29KBbbO>CU'?[@->>n-􂎎̰}{SHH=|jSzǏ6ܸkϚ%{P"Oaٳ p>xP Ķ "6l[Z".ӧZʚ}..=9x̖h4/Ri2jժ1?E%%?x#%>dQSӤUG)/V\.;vĚ$E@HȓETD)h͛ʝ;oofja1f㾾8?BozƦRz;8[ULe7WR1V^^X@-TVU5QO|gex޼|}>mvvzzFɁ2Z`S[.KblOw;W sgexBBUU%uuRw;<@mllt[MM>>C- #c0,3O=l!n@|)O:AP__ߡCG?xA nn11%%?/6‚woMY J__n\UPSCC:3,+A&bګ+V\AИ"]\\DDD?N BCC޽[SSs}III>LX}ڊb׮][UUAЯ_µk"##^xǏkkkA}kkkxx8A544'OZ[[t̙w[d @HJJ9s&@x%++kGG@ppp066kiiÇ+!JT;DU%%%mmmmmm՛6m"n![Q@{{ \ʕ+ʥo߾1H]]e.RQ2 QQ5{j>һ<8ǃ$ I]]wRkJtv2q )IRRRMM;7nݳ|𡽽?''ؘ@ X[[766󬥥t w5kk3233SCC˗;vػw/ijj:}9/ zݻw+!^ܹO> <#D|@˿% #5 qx]b\}t(Y XcR)hN/+[VVMA߾VX.Um+)IAJҽ2$l}KffIL >1xyy7lpȑLo߾ih/6,[^^~vMMMv7|ӧԑA f5 11(** ^d ArrrUUU)**??1#|Y^^΃]`$ICyFj ..>1m4ⵒhܷoO\YYup- 1.~ꇛ)U^VVHFFɓ|QV*SWG_֭B=GQ (TVVx{{HHHyo*16lmm}}}_~Lnf6b F#) 'D'%%Ϝ9sD*""B}_2_JHH VB$%%%$$$666;;{G`gg_fMYYKS#5@"m ..^QQA.))'QXB+9y/4vE".9vvQЬ66ɴgYպzEݻz^ X <v-[dee@vZ__ߤݻwnvuu:tLj#)WXgϞ?~]t ss`]]] cll1eʔ)S@`켼ݻ;88mCQQqݣ?77w[[[{{(<Dݻwm޼ǏN$%,,ΧKY.]r422R6MLʪ++Ibl<۪:8+g0gell(bOOdځgx񢺺zoo/@wXcccoo,''[QY ¹sDgӐDӯa[[[]]]6l@<܌F;F :::XΝ;jlltrr۾}{WWH;(!߿'ߒ< >>><<d\]\\]\)2:`#""O\hMǢ+(葻|y~D9vuRjT9?K{82+D2틏訏BQ;>6n\@)WP7n<#ߚ <?3zz?:Hmm!Teeky;v,LH `&9npuq{T*6[MJ|LS||ZZ2ʬ$"£*9Cj<+#q (x{Cqq^' bŋnZuϟvjc"==9wd25U,S !:V.8g>oǏ?wܶm!USC!555Wѹw,2͍L̙ d ;w<+*,,.P@`HD`CggΝn.\U]Wi̡?FADF#P)06A, +7@󇘔?..ŋV!}&((HeАNK! tq@\/:. ǎԩB㚃jhHS?8`3"X,T<FYfuuSBB֭h 8t萑Qxx3lr-?o@q\H!ڵTk\OO~PCET>|Gz{ i`0-7A?߭X,ѳ$fDXto/6B IDAT%OWU5"T``06;wlݺuC]zx=R7__]pm:nOVPP200x 322?>0hRRWOOϰ7)b1X,yݻsm~.VUڴ)0SS_}6bE޿14Tx$~C<+ :a`S#;mvjj^lf:vXŇ s`͛^xÓ'Ob-11ԩSvjll$έ#5 /_|Ǐ<x̙'O۷XoҊ^wށIppppjjjJJJZZ@eaoF@xzܹ Ȑ#G&lDGGc\wvzcƒ(/_Vm!7#9z4*`}BMuxFD&A@!Rxg5W1)((]/o>U(Yˈ,[ٳ}dTTcgg[__AՃM q~CΚ )ŁDAD;M)ܹYOo}H\ *g%)qcbۺ (PǏ?Pr\@=APSݽ7X,Uцׯ\I͛P+#䔟_ZZzȑ@baBt1Rcp[Ql֭_|)**ڻw(7$Ύ w2ٱ#{x-//O<4ĉixx)Sl2PnMx~YZV!Rj/!=7^T^~WO8ZX\&"$" \ɁE(DD)+[<>HnE=7Ya1b=jj,8UYH 7TS;P_:ގUU۟걛*WW7OjD49{~zVII*||]Q͝VV ɶИ2E"B[9bq~Jٱc֭㠦&)&;y?%>=+qJwT%1x֬dVc]ƍFR01nn.Gwh4E>Fz/ab2ګg˷_@&x֮^z;ŊMU,[LL;s(JRD,YYT}K ہ>}Z&Қk࠿dWtK [ GHMƄ@ NT#2 M#)ɏ~Eo ӄ1XQQt|EJag"##u͚˖]vmE?5bs(df2'xj?\銡A~\Qc<+1RWג\| d@@@@@bXx__#Oje`v$t/M[FZrLms\>޽VV$\Py;XR˵u{W`fa~((ӝgׯ0lƌ$mmddd! U1d(THD zrq::'%y=y\<]ݣvvSRJ&m1YX5!ݻ*[`Ew4?u)ɊZ[H?'Mz&~5M%Ռ$W+B ܬUEIu@:C@}} D[˗YY16E9pxMfΜܹlم2ӓc,%?cxZZ)O[02gE3fHЛg@[ѓib.]TEEBKKBFj`h 7^8~w 23;U9`PJV>>e.%D"Wt;2fŋ<(%H;j44JJ(_PDD1=z'g)7nn( 0^h$=qASwGSΝ_4:B@3!SMMjŊl ˈ>m{f) ~j{DrH3g~1PHQQM|..il $@s! sBC]JKXKˋ矼t|vvlD۲ekք߻Sj66;vĎ^SIILQQ41Ա[Z:?|[0gUWm\R笽}Xx qB',, Nt:vGGG|w̚%{|̙A4yQ1oͶ}_5KH6}//;j=ԩB/_VVHJWU5­|jo!'ADJJɟ?mγ) 0ó0smsse?T_Cmv?8poK,.斏^rfccG~gRl"Yz< Ys>+Q3gJS6ffbbd #bc17wVls==:ܼlW-5FutA55Id9\Y__+]mKIUU512T?>3 kYYW?֬CAUF cu__˾iS;o0IcuVЊސ!ly$o_,m[(rfZ[OhkյL;(UڦN詫k[U(.O-ܼ///Or`90rhKQAO3@3GM?O+x̑,_ѓ dD:c8G~>-+(@Dux(BV{iiщuIL|4rhxzۨ rཙ3{yE?}Z4.H ۷…̑EEyW{N566`FH$b,gH- ||LYMLfLݻp~ JL4OJPRre]7ĥK2E޽-lUOi[~N7'kڲ/_9+ VP1/3]EN&”ÇZr|HҞ`\xؓ jfLsRrjk-Ud`4*--0mHvffe;Wa"#Ĵe) 0agma17wv\ٳ.uwVG-XNNܮӽ}~SX8vD/j=yV=/d)zz>Ox);9d#P(FO\|$&ƃ;VSΝ-@ ~~Vw y2޾g54?~*)IxIGGlJ1g]@zY6M/_jښWݍ36gMH(" kk-ʪdxVr@ĤEE7o^iibOOGKOWG??˫WsPhg7+9kL;ZZ2/_V0ke Ϫ+:f!&d WQp+lU J&""<ϞKLܢ&yPLJvWfٓ0;66:ff۷Z1hk65u|{\d2g`P*£1A "LY?Lx)ŋo?:9`bRų5kSŇ=3| ʕ᮱7oWē'm:;{pf53S}1 VV X1cxV,Q+*^_O/OcH?VV6Nx)8*@UUR]]dF qAIO1oKkivq OI! pJtG׭F-cVܼw!UfzU1RVm3=c{V##%@ )JV1zQV{N mmNM}m Y'ѣVGq7gOfl۷7~>^˖iZX{{Ƕt?g[c<ИRRoh؞`҃ &'#^B"'޽W"t nb V=z20_<0*cuեge 9<&pr󼳳wReet۳Btza߿G+yO3fG />gpRL*mQQ}hhڹvYDrӦ$%yYZ^$10??ǩSvz^O {44qI[H&&ؤbj!66۷Up D  C7VR\|@2-[>13;9v:CR/1q ''E…*+Wjݛ0y9/׼~=oS qs@ H,,hssVC"jjRYtuNlS(--7<+&IOߡ&y}MC#$u玧%͎F|s:kFp@ $g%$yVV.-r** Y Bnnp^ZԌO@&jCLJGWܹ/]zD'V롪*icLJEnnsV%&{EUURSSzi4LKHrRRwOԤ:B>>ഴ͝+WjS\"xV訟#;{j3g(:ll؛7ϝ`gi{& .̷f͜JF;!s=(zC3HjݻƕCJH F>}Zǡ$>ύR\"4FQQt߾Ň 𸩣s?ubi  qPwvr@iXZ‚ٷ5yy٣G АOd,`Y!ѩm!`bּ9sM ަrpvga_NQA77äcuM `訿aCĘWXV a,mo?Jv' >!!. L3YuuFEPO 騫K1|_ŋsL@ߘlIP /⼞ƅbcyhts@=j~cV3GF{ބҋѿ3qxVfgdLڲ^U0Wq񏶶 xVV`1W sVzD]C>>_X'/]zDw(ˉUrFo@/8Ԥ# C0>Ϻt:;)iͬYmmup O g+*R0n aa.77Ǐw5K6 cC:wHU@@z]45b0(+*aQ(?[B*("A+"J^.pmlrq|?|{3)رcnNyիqXI57W/)}ȍ׷[fJ yy˗*/ tvۏbboo'~hsr*krr*^,,-ʪx"ݻ%%)qa8QVvr2[z۷E~ZSSefm4ر }}_D9fY/*Jt陓,tM,+@SS'JQ+y}lK!?::{F[i6wm8DO cZ~{(ѣǏKKI_>$$|x0)飮Մ(B}ܹV -83OSRĈzzx|fC|iut4a>yKHv-~('XJz5z>CzzS|9?WBRRd}^d YC+@PTmiMJ1Ph̘a.l!12RٳgNZځg7m <: ؜;7aV%wzZII,3#bf6t--lZ/~HnEEcuup/_*H;cee%d,Y:$c54 չ~}۷֭sx0o;; I2{kkBQ޽wD< 77nKbp*x"--1)!a'ձӻsgӻw%WXruwM֮ukPYT'@?-Ȋ\cyymmCC˂c5mqII= Lf:zs `ꤧuɒs~TQ!CA,-56fd/[vO*ے54dg϶`iC(ԟY,OXvvy\/={"#"Y_޾>y$g籂Lͭ\Rpn2c|:;)̱LQQBg'E ^/+khhhQ݀sKAA}™3 B\WP46Vy2_X 梢tvR3,Z4ɬ©asqWg߾>j336mjH?s&aC&&&&>>DDt:AFO{F=4=;NCCe~=OZ##yM?<!*'RR:}*k5kk-==E5D"…׭sϝ6WW 7ֶ,Yr~|#G?}nnU2t?CLv (30f̟ʀ,3 B|S4II1''3>i9jj2&.S#Wɓ;&Lq~2HaHӝk<ǏsH)vبxcc> p io޽wKgpz;PVO""ϝk9OcݱcGE =SZ(H"_ [A?z- I^ꊊ…/%ѐd@[[עEg l<$$9 ( YQʿ֝BB'xpҥ~=]-~cooTRR_^N=PIM-֖WVC?9qDy9Y7oI\@ ![4=7/+*q~vtII1<< L UTdz|Һgl8,,4y xfY$֮u8u*kyʹi&MM_K/KRS$"⽹:b KBBERi_ΜyիB5J8pQP̚R;q HUU&ppr*`Æp8ҥ(x\Zlg.B\B ÐZTZGGҥz%!!vHp ()ukbgEAuu3 Pt jd-+/ƍߝliipqBYYY@@իW/_6a4́BCCC_ ׮]C ??yo̙W@477BC""R ,:>Ett[EEUkNٳfЏͻxeYY==YmOjEEuuuRSxYII1HK^k|{'^ۚ{$(UMMJZCiiCMM]Y#"Ol*?F2AzweXև:88O; %GGs:99v˰d@|%//["\/^lki}117'$|\nHM-wLTT&3- y𡺺zcc#֭[FFF sNeee%%;wR(BAWXԄֳ **BLLLOO/88@RY5jĉ***f/_|葵cǰ\zDQQرccؤIN8 H8@deeMMMVRPP V3VVVM.^Ν;a\xxEϲzm glll֬YlkkOOq 2uQQW04L Xn8:r`$]]O{yO gŊ+WQVVNIIWWײ,]vfΜeeeeggO0ח]6QQWWW_r@ ,~`E1YX"jOOϊ/_f\|r@}}=K<8{lE###lllP}X{{;˖-6mϟ8IFFN3j&`Z}QEE%==EѦ&qqqԊpV쯿P((˃{O!11v@ 611["_,+ޡO^U/)W~f Wx 7_F 0x+++󝕕1c"""yyy랥H$Htzkk+FcWՕD",+&Çmmm4ٳg HKKCQ>|eػw$%%d;Dbccc``Yx<>''+a`` vM*((ؼyݻQ qrrbԪ׶JUQQIHH@Qt֬YǎB f wܶsT?K䍌TL;cj%xddd֯_qFFbII* 899cRCCC,dJ&&&yFCCŋ8e6 "+p7LH~~qも3=@$]SZBB"55ͳ~ybbٳ4M__+n``8#55uԩGdلŋ߽{EnS:C[zU /\0""ɓ'˖-cٟȄ_UQq l}rrr\0}̱QO>=}tF6BQ͛7X:WSS+))R222>̮TGGN{.DZfܹsI$ⱱvttܹ3-->VS17k֬|GGϟcUYY}|ϟՙ5:۷5޾˗=Ü;(x߹s^Cc-@YYիQ!ph քt loo󳴴;z(J7ji RX)ocue⟈8;-/'U R(g22ʬ}ZY٘V6o5_UN=118z[?;uꔥ%LFQ2aKKիeeeׯ_μ뫦&--؈,hXXqdd$d2[ʸuq999MMͳgϺ+))L+Y*D :h{{CDZ|;::iaddfIII3gpUmƆ FwSuЮ2Z׳=={ׯ_)\8h5EѮ.ssף(aÆqaNQ~?1J?^{5tt`bqac ߂stE`8ܡ=..ӧJW_L~>,kdd͛~SNKJJN8ӧ׶a`:GEEYYY5JEEѣXb]]eeeF'OhjjxeA+W=z )){bd/L8qQmhh@EQ**###EW\)//ir5-t:Ҳ ޽#Gfw۳gN2ζ|XXm<022RTTܺukgggņS___FFȑ# `'±?x1߂xcQITUi&saa/_ n+eittt|YEE7p႒RDDDUUUtt46Btf^[v`3+9fINNG222Z 6cƌ7o`>ܴ3gNKK˽{g)\Dz(o1zz~%%(J33s\`qx^ ~G n|+ei$%% -kO//33į_ٲsf^[(t<܁ ׯ=q}7ˑ=s+P 300ಽ,@RR4 S,+d Pfv c׹Mn%YQfeŭMTTy,bD"1vkBzzy1@,,zqjXzm&%%=}4<<<22с***( ʹ7 Y=] 9cc㊊ .555l7 >D"ߗ&'wǾ_R["q,2\pnne~~p ^^ꙙ Ƹg|5ۀ//ֲea<[;~ K<ό ??_MMO7G66+WNxP_/ƈ21kdd6 P3g ׍G! K//OOϝ;wFFFb+`|5̼P򲰰@(++oݺ''Ǐk׮_j `ضm[aaajje yf}MľywMMnFڵ F;rԶHmd4* 0DYA"dhxˋL&, ˇvemmm[vtt^ boo/))ɡ,E`bٽg0kh[O;~o1&=_cVV9UCȲ:;;3 9sgG~ 0 upՕo)x:,ECv01pt4?fϞ.~˚>TL_ǔQeutƎ!\cwx\hhܯ.'ϟ755rtt|<9q dee= 9f%%%ooﮮ.|9DDD! m{'Y6\_bٳO{FѭUܨΘÁk-Zx%@CC˜.]RWW700}q>)| =caOmmECg1y"~ RW^]oA,iHׯ UUZZ!dY9p=d<44! [C{;)| * c,^lw۶loGgة~0Dm+k,s~ܜQ|R^Ou@p8C{{W@J!̘aW)˫TQJGGgB7VA5~x˜.>|.8AzA ~ ˪ n7or<봴RWefyz \ e͛7544<}7azA > @zodݮ]w|ʇ88% Ἴ*SS^EF[[k 3G nnn>|` ˖-366qwwgmeM6lڴI__?00_Ŏ}Yw!/29iҡ~8O'eǎNN%]]--8g#&&' D)>&3<ɧO5 K;f϶V{ׯgee۷oVjx H^^^^^@`7B`kqw<==E~4I_SS."⽿~ϒ*11n/-L`}ndhyzzzyy Z))L9XYYaP`@DD[ d7P(4(>|HCđ#߽{ñu}[CNر^m/ aaannnV2 d @DX}>Xض͛|'yyn_JLAS2e7?d ǎǏYCu.7QQ&))J ²V1|Æ|rquIGݨn"9o_" yp @ ÏbY9~|ȖHKIDAT-4/\8'ss119)c[[X@ A"HI:~ӧmsm SݻNю>~VS'::kx55~+#0N8.l-H FQq 1+޽sc^y&&~k'Oj9קPhqqi*x횚\DoP44RT(47 QAҥK섭wјcoSR6o=3gZHH Oݴɑ$?fd?1k_$Ǐ &O6\[''3!꣦ر0"42\cVςQ_p%,X`}(ZTTgh!Ott& +jk[~=}Z?mY@ #AgY? ))EO'K'ս_jhlo22b;LrTή;z͚)iiN\g A7aeo߼?^j43Su񺼪%v^* ڇTф˗xof~Ŷe@ #8fXf̙c7l^Qj,{0u2SPP4̱c5q+$$Wׯ*< ^ˊ ȉJJWۮ(Zt4Nl-(0LccTp?d0x-+@BB4(hmuuΝwxUߛ߾« QPPa/9s}} p1 -ehjʝ=<22ҥg}۷Ņ_xU!3_ ~+D*,.Yraה>>βV @81-+oBdx3,+su۷Ԕ7N{ Uyx|sdBUV6 =o i+.]z.++fO)p ?l05kTV(8"N*O*+k躺,,kFFYiiÈdD1$-+;sfh--GBBut+W\\faYcb55Ǝ\L@ #!iYׯ%7m1c\W/-mx2*)*y+&&k, A.eB P 7%'>xa+12Rӽ~))i`ZPP[XyE g* I9KKǗnjUr[C+*54dLIIbluR @ Cx̊b7s߾0{O).gy166{ s<~w5;b*03}۶9յnt#,l^_K'&oD$Jl9fi,߱U;ȁғ`Y.mY&&}-b7g>}8(Zu֘,qq)SWzB ;%:XbUUS_::\ `.7::Ǭ119Ӧ yQ @ 2L,+@Lx:Q[Z:Z|:I/+#JtsiiHI<747W|֊ \Ǐs&s=S!O + PUqc]vvŶm7Yie/bby9 moo(%5g*fYjWxdsO]\^}ng>͜9bTв /^\|h4DUCBeMJIZp1@3Op?s&̙KX -jDg'lpllTp1@xpomڳ瞔Ԩ˿ᦈWB pƿF?yy-Xg*lYVM&v^^7n>jDy9 lY?Ho @ |bIw;TBBtt^ki;9=OUJJٙ5&&De~u~څ Iu'^B wƯ<٠^^S,8}ɸq:_QѨo,~E?^Į @utWtWQ'LгѾxم :t:}cUUuXbOϫ2245TTd; kO;stzUUӠ򷁋ݻKݫɎ-x APo.4}˖P 5؊i8H| mPɥ YYDZk<(C>!uk@ZƖn+WNNHH2RR>~<"H} ^7=q'O.7ZRFFW|n*#'BCP(J"ht,QDFcV]-,s/9/3ULn wr} FИB]{-%ΝcjL{(n<O"clz E&'{؁繹b֭b`Ph{[[YABB KFH_?\pr2s'M3]&e< 5Bq3xbV2te…Hϝk}۞o;c3!\jh1Y(-Q(R]c^*TEу#9"X# ;xX[A$.G$Ⅲ<#ѲNN(+k`EQP]4zرcjml8#?s^;w޹x/_Zb`c$}yyn m|@H'G|ϱ)6luw{WϘULhfA "N-SW吧WT?޺};FpȢEEDFQqT@ g nnN9x0-l~oQ x|BUW71~XE&&pV0!L].u_ ~ǏFo1IZZ| R e| x77; d2Ƭ22rr8c [Tu?<ۭ2sʄ zd~8̵8CC{Dϯ_>p ))6o`R# ` @F#β:;MO?x℻nذuϴ0:+Nqd @_۔`hnzݻbEAss6pG̠͖tMMՄ0#βDŶ^ Zkn@w1T*~C@ øյ1ozUĊo tWz_Λw2/cE?~?D"~@ f$ZV qr2y`Aq2왃W*\ɔ)8BMMEƻVsQRRGΞMW26VpW02R^HxY,xHģ( [6971!G먫ˢ(PU>|صߚΚuYq""²~ ŋm:: ;;;}-[-Zd󩢂tnMf+iiyx| <@{OzSS֮n[D(9Qbbչ5n,QRRRT2(,,S&&L'鉉%//o(yHssgl'[[M==9j%ljk뒔-/oo2vNAZZLJJTFf(iiEJJlP&%%III##no 355UR>}j%oq=9Oz:7P-L!HhY!%вB Ke@  [ZVVz^b^. ݻHl~ +VqȏdS8_XO!HOWb |pbZ̟?孢"edd~'vŭ͛6m ;v,4g׮]kii4aIUUUhhh^^`t0|P]]p-##vBٹsΝ;) 69b ƀg)@TT^pp0J,^__/!!1j(8ĉ***L8@DD$((իGvZPPHd$A6lͮvqYg\\ѣG9f%%%ooﮮ.ܾC}4-00hѓ'ONIIa. WTTܸqׯ_{, ^Xbʕ555)))X/ZVVecck׮̙3>}z33 &+&**z+W@ů^(& Kd\(`׮]C1'iXlf222cw `Μ9---c5̘1#??͛7`MG$&&r;JJJUUUjjj#FaܵkW7Y=@ ‚QCC‚kll\]]][YYa,Enjc\,E"DoH[[[i4⮮$ eeǠ...x<Ã|mڛee'KaW'3$ES` GQ4,,e"ʑaYY!s'1_~ee@]]nz>@/Yedd֯_qFFbII*ɩK766b)&&& ,`WJVV611͛7/^p,Q(YYnܝ(гxhhhRRӧO###4se0-7ayyO N);g ExϸӧOa$*((0~766yKV+JJJÇ+A޽K"֬Y3w\IJxll3bT*PYYM+ ow?i=CQܹsg,:Yz`c,@~~>g8utt233r܁=3@ {l;vF::/_Qn۶055ÃCs^ 6ܹ322&66vjatUw I2fԩSd2E﫪bK---W_~}{{;JUgg{cc#޳aaa"""Ƒ,Yf1+v!}}}l"EQ boo/))X V<((HTTӧOopp~7 ܵe˘8KP'c [n`e(>d~yTj``ĤIiv묷oQRRB{{<>:uTs`а+23ؼ ?v0))iHo:@1p@ ZVȿHIIyyyq@ v@ %%s@ v@ @ /@ ^-+@ ZV@x uuu2c B ÕeEsXT a CtAdU &@ \Y!%вB Ke@ @ @ /?P#bIENDB`XQilla-2.3.4/docs/simple-api/StaticType_8hpp__dep__incl.png0000644001725400016040000000710313273140076020524 00000000000000PNG  IHDRp0d5bKGD IDATxkPWBܡJahNV4C;)E@|,E:rb[.2TJMt x Ѡo $6öEܸ9yΓsv@ND'H1 u"]=z_"*****JGg=t~zyyyppL"ݻwJVVUH?y}"NĀԉ:#E$pܑи8*W7r8/_޳gT;I )--]`^ t\'OD5o(Ou277z߿駟֯_گ]?8rcǢ?|PC}7H$ BCLJ:tH&`f0 o޼nݺ2,+P :GFFUTT "@uu5`bb믿*--MNNf2cccUUU\.7??{iiiZZZЕgggrUSSwVGoۏ;65`kk+LOOgXؙ75&#Ӳe***8{%*Z\\bggxh 4###WKӋ/P(/tТdWWW?… gرёF%%%]~}jhssUVP8.^_RR`0BCC'JD"///-\]]cwwwwww-FFF\.Fڵ +‚aS05d yyy===Gz뭩K$;;{Æ ?g}%]?zݭ}777766988`^ӧh[YYr8SWWκ*()&#ଓNx|>ݻ`DL0BJabbBNX>|Nr~Ço,k͚5&900ӓ^SS4k Ɉ#Ȧ?~d؄l޼q 似<33*'b+nddl_z]b1 زeÇ! D#,YD):M/7:qDtt5_/mP3p  j}O*gϮ]vsIIIޒ%K0׭[K|p+=0NĀԉ:sg!WAeAtqu ܹS㾜\ydw\ЮO'Od;xI&:xL`҉ù/HɓmsNlvba3"t3 ibBz$.ܛ۔ppt:wAl9_ G'6??g/Ôp@trBو ܹsNN^Yi STUuSP]XQ( úTd(,,6AQ3zttdT'b@D H1NB055+++K,[*ٳ} Oqk&D۷'O֦zzzTTv nnnN/]< HWW:p-hw+ά9}tuuF䨨(eLƓeQQ0100+VPӧ|MsssgggtRvf6m4665T^^zjooo!APYY-Q0RRRlق Bss@]]yh4yojTΟ?iccU]hcJJD"QkԻӕEq<544,Xt͚5jW>ǩTjBBBoo/࠲v~__۷o/_<55uP(GEdݾXQ& \SSL&CWPBSSS󋋋)P(Ī-Uڵkl6`hhN>.JMLL1M,ٳi^ cǎ7ndffnܸQQEpvvo!dV@ mmm_GGGeũ...VVV111$%%tF … 322ԞjS/ߺu]p!JE&O SK55LO,~"HQ{vAD233cccg Ol3xz b?嗹e밭˖-KHHՆ,--t1+1FFF^@C C u"NĀԉ裏^|$\vmʕʖIްaËMD +WTb'b@D H1? QdNLIENDB`XQilla-2.3.4/docs/simple-api/classResult.html0000644001725400016040000004050713273140074016030 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Result Class Reference

    A scoped pointer wrapper for the lazily evaluated query result. More...

    #include <Result.hpp>

    Public Member Functions

     Result (const Item::Ptr &item)
     
     Result (const Sequence &seq)
     
     Result (ResultImpl *impl)
     
     Result (const Result &o)
     
    Resultoperator= (const Result &o)
     
     ~Result ()
     
    ResultImploperator-> ()
     Returns the underlying ResultImpl object. More...
     
    const ResultImploperator-> () const
     Returns the underlying ResultImpl object. More...
     
    ResultImplget ()
     Returns the underlying ResultImpl object. More...
     
    const ResultImplget () const
     Returns the underlying ResultImpl object. More...
     
    bool isNull () const
     Returns true if the underlying pointer is null. More...
     
    EmptyResult * getEmpty () const
     

    Detailed Description

    A scoped pointer wrapper for the lazily evaluated query result.

    Examples:
    simple-basic.cpp, and simple-context-item.cpp.

    Constructor & Destructor Documentation

    Result::Result ( const Item::Ptr item)
    Result::Result ( const Sequence seq)
    Result::Result ( ResultImpl impl)
    Result::Result ( const Result o)
    Result::~Result ( )

    Member Function Documentation

    ResultImpl * Result::get ( )
    inline

    Returns the underlying ResultImpl object.

    References getEmpty().

    const ResultImpl * Result::get ( ) const
    inline

    Returns the underlying ResultImpl object.

    References getEmpty().

    EmptyResult* Result::getEmpty ( ) const

    Referenced by get().

    bool Result::isNull ( ) const
    inline

    Returns true if the underlying pointer is null.

    ResultImpl * Result::operator-> ( )
    inline

    Returns the underlying ResultImpl object.

    const ResultImpl * Result::operator-> ( ) const
    inline

    Returns the underlying ResultImpl object.

    Result& Result::operator= ( const Result o)

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.md50000644001725400016040000000004013273140074024455 00000000000000ed34dfab7d1f7f5f734e8ea8f95584f7XQilla-2.3.4/docs/simple-api/classATDoubleOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022723 000000000000002e26a5ef506a97740a24c8aa61ed174eXQilla-2.3.4/docs/simple-api/classATGMonthDayOrDerived.html0000644001725400016040000012617513273140077020446 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGMonthDayOrDerived Class Referenceabstract

    #include <ATGMonthDayOrDerived.hpp>

    Inheritance diagram for ATGMonthDayOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATGMonthDayOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual bool hasTimezone () const =0
     Returns true if a timezone is defined for this. More...
     
    virtual ATGMonthDayOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Sets the timezone to the given timezone. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATGMonthDayOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATGMonthDayOrDerived::compare ( const ATGMonthDayOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATGMonthDayOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATGMonthDayOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGMonthDayOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGMonthDayOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGMonthDayOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATGMonthDayOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if a timezone is defined for this.

    False otherwise.

    Implements DateOrTimeType.

    virtual ATGMonthDayOrDerived::Ptr ATGMonthDayOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Sets the timezone to the given timezone.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdInInputSource__inherit__graph.png0000644001725400016040000001365113273140076025034 00000000000000PNG  IHDRx=bKGD^IDATxyXSW ]T3.ڱlZuGkPZqJ]Z վ.`HMlH=M<}ܜ{wzM cxn&.@bH d;\kkr _|pÇwL;w|aˆAcH d 1 $FzQTTl)//733x!=3fhW]+`ܸq))),_<55ߟڠAP(1L$F 6ۯ[!vZڐ3PEEŔ)S PAAf9fyy@ "c,HX,ðaX,D"ijjB`0D"5vQ_$''#l٢ڈv횓S}}=kȐ!S&F$WdddOOOnn.Bh==={ao޼rǎGJC)ǂa# Ҕ>>>|>Z>q[oEM3Z믿*{ SS;vBBC\ b֬Yt:=&&FJƊ+֯_1>tдiӔKRgD2`I"FWiid2''*|_>*1͛7Ne T\Z[[SSFՙLAG/3g---'MtQu8x𠵵?d29:ƧO.LaaaX%1KRոֆ\.T}WXeff_ܾ}a|ܔ( 7 Jj^yPѣqtuצo;::RX&9::XZZRW@$P瘫WReee]\\222{g0~#CBB '' =111<}4B(##Fٮg&F 9;;^Z\Iu-[faa3XBzHIIz΍_ұx)X,sη~[PP`J5?Ͽ;/:ua+s̟Ô)S@1$2@0ڗ2ྼSSS`1v66#D3t!/mp/ƘcԤxŻz1I:0$fBNT 90$f:!k.@b/'L&G&%% ]с<1^Z?~Ödl 1O))lbIT*?~1B'zzd e *)d$#G j\Pk$4M/c 1uv?S. B/$y^W c||~/8Ab+)$+4q8y2e\/2L.P5lww @bH d 1 $2@@bH d 1 $2@@bH d 1 $2@@bH d 1 $2@LW6t/ m*^QSSqs㏉'~駃3?>׻ }r͛"#?d 1 $2Dњ}XHbFeaa흚*zAboo|PWWWRRr$7X 1FPܿ_ᤧ?~ذa'O޽{wEE,/71B!TPP0z^T*MJJrtttppHJJJ4өÆ [`AwoQ `2Dd2ݩF}_mۦܲ|̘18q"Bɉj:t}}:#NoiiVݼyUǀsBzxQ(/NHH(((8ydee%>gΜ\.Pg566666\RyèދFH$SS!Ch\jժ/ 8ӳ{n-E"BjGiii9wŊDFDD$&&޺uqÆ :$)=}vzҞ={|MZVV,0===-U=-bbmm) v^c6iffS^^{vULm;b{{ꂲeOOrj(Tʊ.,,,Fn:H 9;;^ZۀzωnŮJB/Zc,!fçx<СC ]Ԕ&UǴJ򢢋ʸ$1Llwt~-Hcu2̌BJ0=B:Yw'}ҭY)N2@uxZ+˖}wNCb@bH d 1 $2@@bH d 1 $2@@bH d 1 $2@@bH d 1 $2@Ϩ_::: U񨯿***2t!Fa„ #G|`0C@S!Q]'RSSNjڀٴi\g} d 1 $y ח9}|DK{{{PPB(((]ǖ@?zl(abvԴyf6vڳgfee!|Y ]cVz s̙Kz{{$&&={!P(zzz ]cV"K̹s>|!L5{ٳggeed2<_WWqʕtHDދK, :~8BH.k쮼 X2dQ6Z|9BhΜ9!Bq>`ʕ>>TO?j* .PqqqƍZxǨQ֭[秭T*G;fwر{QQQlٲI&iٰ0++ӧ#4^4n'gV,N:h"N6IVVV3g+ecGGܹs---wwwPgg2bĈ#Fhoܹ8??QQQںk$ϝ;7uT_____geen|q4{{{4nݽKuoQP(T(...Ԗ$pmqb޽[VVo۷/%%j޹s+BH$ >J;;QF!kkkcbb4W(iii2*%%hx˖-T h4ڄ *++ltMOOOakkh4иAEΎjt:޽{D5ښ|߹sʨI'\iDvUo۶mΜ97n|sI&tvv] ͽu֭[vڥHhIII555R`k{ȑ6mW^T=!>̳g  .|z̝6{moovZnniӬBǏE53ݻw[n兄t;s d0Wx%Kݻwҥ4mُIIIbxĉTz/33ggg߽{%55L[;vP/k׮=x`NNN{{mPP'|rrr;wѣG¤Riff===7nH=y!!!k֬fffK,ٷoߡCVX/ (FGUVݻwٲeU=wO}Fvx111Ն.dlڴiذaʖ XQilla Simple API Documentation SourceForge.net Logo
    XMemory.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: XMemory.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_XMEMORY_HPP)
    23 #define XERCESC_INCLUDE_GUARD_XMEMORY_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <stdlib.h>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class MemoryManager;
    31 
    40 class XMLUTIL_EXPORT XMemory
    41 {
    42 public :
    43  // -----------------------------------------------------------------------
    44  // The C++ memory management
    45  // -----------------------------------------------------------------------
    48 
    54  void* operator new(size_t size);
    55 
    56 #if defined(XERCES_MFC_SUPPORT)
    57 
    64  void* operator new(size_t size, const char* file, int line);
    72  void operator delete(void* p, const char* file, int line);
    73 #endif
    74 
    82  void* operator new(size_t size, MemoryManager* memMgr);
    83 
    90  void* operator new(size_t size, void* ptr);
    91 
    97  void operator delete(void* p);
    98 
    99  //The Borland compiler is complaining about duplicate overloading of delete
    100 #if !defined(XERCES_NO_MATCHING_DELETE_OPERATOR)
    101 
    107  void operator delete(void* p, MemoryManager* memMgr);
    108 
    115  void operator delete(void* p, void* ptr);
    116 #endif
    117 
    119 
    120 protected :
    121  // -----------------------------------------------------------------------
    122  // Hidden Constructors
    123  // -----------------------------------------------------------------------
    126 
    131  {
    132  }
    134 
    135 #if defined(XERCES_NEED_XMEMORY_VIRTUAL_DESTRUCTOR)
    136  virtual ~XMemory()
    137  {
    138  }
    139 #endif
    140 };
    141 
    142 XERCES_CPP_NAMESPACE_END
    143 
    144 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    XMemory()
    Protected default constructor.
    Definition: XMemory.hpp:130
    This class makes it possible to override the C++ memory management by adding new/delete operators to ...
    Definition: XMemory.hpp:40
    XQilla-2.3.4/docs/simple-api/ATFloatOrDerived_8hpp__incl.map0000644001725400016040000000133213273140074020527 00000000000000 XQilla-2.3.4/docs/simple-api/dir_78395f82a4cb2f249a968d7b21478d82.html0000644001725400016040000003205113273140077020551 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    items Directory Reference
    XQilla-2.3.4/docs/simple-api/classRefCountPointer__inherit__graph.map0000644001725400016040000000033613273140076022650 00000000000000 XQilla-2.3.4/docs/simple-api/VariableTypeStore_8hpp.html0000644001725400016040000000700313273140077020064 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableTypeStore.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for VariableTypeStore.hpp:

    Go to the source code of this file.

    Classes

    class  VariableTypeStore
     This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. More...
     
    XQilla-2.3.4/docs/simple-api/classATBooleanOrDerived__inherit__graph.map0000644001725400016040000000065113273140076023172 00000000000000 XQilla-2.3.4/docs/simple-api/classAnyAtomicType.html0000644001725400016040000021712413273140077017304 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <AnyAtomicType.hpp>

    Inheritance diagram for AnyAtomicType:

    Public Types

    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual bool isDateOrTimeTypeValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    virtual AtomicObjectType getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Attributes

    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     

    Protected Member Functions

    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     

    Additional Inherited Members

    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Enumeration Documentation

    Enumerator
    ANY_SIMPLE_TYPE 
    ANY_URI 
    BASE_64_BINARY 
    BOOLEAN 
    DATE 
    DATE_TIME 
    DAY_TIME_DURATION 
    DECIMAL 
    DOUBLE 
    DURATION 
    FLOAT 
    G_DAY 
    G_MONTH 
    G_MONTH_DAY 
    G_YEAR 
    G_YEAR_MONTH 
    HEX_BINARY 
    NOTATION 
    QNAME 
    STRING 
    TIME 
    UNTYPED_ATOMIC 
    YEAR_MONTH_DURATION 
    NumAtomicObjectTypes 

    Member Function Documentation

    virtual bool AnyAtomicType::castable ( AtomicObjectType  targetIndex,
    const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    virtual
    AnyAtomicType::Ptr AnyAtomicType::castAs ( AtomicObjectType  targetIndex,
    const DynamicContext context 
    ) const
    AnyAtomicType::Ptr AnyAtomicType::castAs ( AtomicObjectType  targetIndex,
    const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    virtual AnyAtomicType::Ptr AnyAtomicType::castAsInternal ( AtomicObjectType  targetIndex,
    const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    protectedvirtual

    Reimplemented in Numeric.

    AnyAtomicType::Ptr AnyAtomicType::castAsNoCheck ( AtomicObjectType  targetIndex,
    const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    bool AnyAtomicType::castIsSupported ( AtomicObjectType  targetIndex,
    const DynamicContext context 
    ) const

    Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination.

    (b) the input type is a derived atomic type and the target type is a supertype of the input type (c) the target type is a derived atomic type and the input type is xs:string, xs:anySimpleType, or a supertype of the target type. (d) If a primitive type P1 can be cast into a primitive type P2, then any subtype of P1 can be cast into any subtype of P2

    virtual void AnyAtomicType::generateEvents ( EventHandler events,
    const DynamicContext context,
    bool  preserveNS = true,
    bool  preserveType = true 
    ) const
    virtual

    Generate events for this Item to the given EventHandler.

    Implements Item.

    virtual const XMLCh* AnyAtomicType::getPrimitiveTypeURI ( ) const
    virtual
    virtual bool AnyAtomicType::isAtomicValue ( ) const
    virtual

    Implements Item.

    virtual bool AnyAtomicType::isDateOrTimeTypeValue ( ) const
    virtual

    Reimplemented in DateOrTimeType.

    virtual bool AnyAtomicType::isFunction ( ) const
    virtual

    Implements Item.

    virtual bool AnyAtomicType::isInstanceOfType ( const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const StaticContext context 
    ) const
    virtual
    virtual bool AnyAtomicType::isNode ( ) const
    virtual

    Implements Item.

    virtual bool AnyAtomicType::isNumericValue ( ) const
    virtual

    Reimplemented in Numeric.

    virtual bool AnyAtomicType::isOfType ( const XMLCh *  targetURI,
    const XMLCh *  targetType,
    const DynamicContext context 
    ) const
    virtual
    virtual void AnyAtomicType::typeToBuffer ( DynamicContext context,
    xercesc::XMLBuffer &  buffer 
    ) const
    virtual

    Debug method to output the type of the item in SequenceType notation.

    Implements Item.

    Member Data Documentation

    const XMLCh AnyAtomicType::fgDT_ANYATOMICTYPE[]
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classEventHandler.html0000644001725400016040000010300613273140077017126 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventHandler Class Referenceabstract

    #include <EventHandler.hpp>

    Inheritance diagram for EventHandler:

    Public Member Functions

    virtual ~EventHandler ()
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)=0
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()=0
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)=0
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)=0
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)=0
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)=0
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)=0
     Handles a namespace binding as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()=0
     Called when all events have been reported. More...
     

    Constructor & Destructor Documentation

    virtual EventHandler::~EventHandler ( )
    inlinevirtual

    Member Function Documentation

    virtual void EventHandler::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    inlinevirtual

    Handles an atomic item as an event.

    Reimplemented in EventFilter, EventSerializer, and ContentSequenceFilter.

    virtual void EventHandler::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    pure virtual

    Handles an attribute node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, ContentSequenceFilter, and NSFixupFilter.

    virtual void EventHandler::commentEvent ( const XMLCh *  value)
    pure virtual

    Handles a comment node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventHandler::endDocumentEvent ( )
    pure virtual

    Handles a document node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventHandler::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    pure virtual

    Handles the end of an element node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, and NSFixupFilter.

    virtual void EventHandler::endEvent ( )
    pure virtual

    Called when all events have been reported.

    Implemented in EventFilter, EventSerializer, and ContentSequenceFilter.

    virtual void EventHandler::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    pure virtual

    Handles a namespace binding as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, ContentSequenceFilter, and NSFixupFilter.

    virtual void EventHandler::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    pure virtual

    Handles a processing instruction node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventHandler::setLocationInfo ( const LocationInfo location)
    inlinevirtual

    Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

    Reimplemented in EventFilter, and EventSerializer.

    virtual void EventHandler::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    pure virtual

    Handles a document node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventHandler::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    pure virtual

    Handles the start of an element node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventHandler::textEvent ( const XMLCh *  value)
    pure virtual

    Handles a text node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventHandler::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    pure virtual

    Handles a text node as an event.

    Implemented in EventFilter, SchemaValidatorFilter, EventSerializer, QueryPathTreeFilter, and ContentSequenceFilter.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_26.png0000644001725400016040000000426213273140077016477 00000000000000PNG  IHDR%!bKGDgIDATx[LSצʥZ."":BB4щ0^CI NDLLDK|0@턄Ag&Lap0rk{yg:Pi;: ax: @Cc7} dYYdT6t혘O'.]4==,DBB [ώAO`@ x3o @Cc7u{*8N8% h4k0w>r[כ#l8ہW\qZ[[GFF+kJc㫻wKϲ)^~P( T*u0y;ݶټ Fuu{5 ::ڽ8++^*7+N𚚚y&.}yݏ  FddP(jF2:::44ԩSx/RRRX,nÇ+Nr rkjjl3 'Yt:cwϝkRNw,BRt: Ұ0&YZZj0]]]صkWlllss3X;V O>r{ׯ_Huvv&$$0̒N0"j]rjc~~ƤRirrrUUUmm}RСCB!a*JMOOrĶ&~lRX\\J6!D" ÌF/ l 2 /:TsK> (ٳg|e;w޿/JSSS^V}}} œ'OdZ;5 R<OR=~.9NUU/ qzD" ݎсo:ݻwjd2z {jg,X]Az\W#)MTe+nOh### owww5LqqqxX-\.TL&;}ZNIIqBf ec7@vܽ;d.2Ll0\p>}qFQQQ__krrbY"tzPPPOOσ*++SSSN8ATl8J1 Ķ=]\H$XDDa/_k4'322t:ݳg6qPoLJQrB! Dy_]$3eS~~~ 5.]GFc6%^okkȘ7d2yffƽd24Nx~~86<<<77quu"??Ar|qt:^OR5͛7(VZMԤP(.%Yq)+ko[[Λ7}o@Q-c4"}|(ZƯvfffYYY]]JqqqZZZmmmzzzKK˱cz=B3ϟggg?|Ю}>/^lhhP*׮]+((pBOEǶ"KKK'O aX@hZPftz^^Rw^pppTTԣGL`8z(F*l5m0U۪+pzT3s11ˆ5U}Lc2&&&JAAA!!!ūD8*ىG޺u+000..-9bWhjjڳgpFq>F0/b{D"(ᇡ~YヘL=Natt4>>i'.0Av.x4/maAoVktRGAt";3gθQp[`2n>xo @C;+3d{߿ 055fHoo/ فL&~Ϋ!22ӗY>١ @Cc7} #IENDB`XQilla-2.3.4/docs/simple-api/UpdateFactory_8hpp.html0000644001725400016040000001073613273140077017241 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    UpdateFactory.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/schema/DocumentCache.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for UpdateFactory.hpp:

    Go to the source code of this file.

    Classes

    class  UpdateFactory
     
    XQilla-2.3.4/docs/simple-api/xqilla-simple_8hpp.html0000644001725400016040000002001413273140077017236 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xqilla-simple.hpp File Reference
    XQilla-2.3.4/docs/simple-api/dir_21314fd8aa3f00deb23a3694b8fb0d10.html0000644001725400016040000000742513273140077020774 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    framework Directory Reference
    Directory dependency graph for framework:
    framework

    Files

    file  ReferenceCounted.hpp [code]
     
    file  StringPool.hpp [code]
     
    file  XPath2MemoryManager.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/VarHashEntry_8hpp__incl.map0000644001725400016040000000026513273140076020015 00000000000000 XQilla-2.3.4/docs/simple-api/classEventFilter.html0000644001725400016040000010714413273140077017005 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <EventHandler.hpp>

    Inheritance diagram for EventFilter:

    Public Member Functions

     EventFilter (EventHandler *next)
     
    void setNextEventHandler (EventHandler *next)
     
    virtual void setLocationInfo (const LocationInfo *location)
     Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. More...
     
    virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
     Handles a document node as an event. More...
     
    virtual void endDocumentEvent ()
     Handles a document node as an event. More...
     
    virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
     Handles the start of an element node as an event. More...
     
    virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
     Handles the end of an element node as an event. More...
     
    virtual void piEvent (const XMLCh *target, const XMLCh *value)
     Handles a processing instruction node as an event. More...
     
    virtual void textEvent (const XMLCh *value)
     Handles a text node as an event. More...
     
    virtual void textEvent (const XMLCh *chars, unsigned int length)
     Handles a text node as an event. More...
     
    virtual void commentEvent (const XMLCh *value)
     Handles a comment node as an event. More...
     
    virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an attribute node as an event. More...
     
    virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
     Handles a namespace binding as an event. More...
     
    virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
     Handles an atomic item as an event. More...
     
    virtual void endEvent ()
     Called when all events have been reported. More...
     
    - Public Member Functions inherited from EventHandler
    virtual ~EventHandler ()
     

    Protected Attributes

    EventHandlernext_
     

    Constructor & Destructor Documentation

    EventFilter::EventFilter ( EventHandler next)
    inline

    Member Function Documentation

    virtual void EventFilter::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    inlinevirtual

    Handles an atomic item as an event.

    Reimplemented from EventHandler.

    Reimplemented in ContentSequenceFilter.

    virtual void EventFilter::attributeEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  value,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    inlinevirtual

    Handles an attribute node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, ContentSequenceFilter, and NSFixupFilter.

    virtual void EventFilter::commentEvent ( const XMLCh *  value)
    inlinevirtual

    Handles a comment node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventFilter::endDocumentEvent ( )
    inlinevirtual

    Handles a document node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventFilter::endElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname,
    const XMLCh *  typeURI,
    const XMLCh *  typeName 
    )
    inlinevirtual

    Handles the end of an element node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, and NSFixupFilter.

    virtual void EventFilter::endEvent ( )
    inlinevirtual

    Called when all events have been reported.

    Implements EventHandler.

    Reimplemented in ContentSequenceFilter.

    virtual void EventFilter::namespaceEvent ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    inlinevirtual

    Handles a namespace binding as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, ContentSequenceFilter, and NSFixupFilter.

    virtual void EventFilter::piEvent ( const XMLCh *  target,
    const XMLCh *  value 
    )
    inlinevirtual

    Handles a processing instruction node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventFilter::setLocationInfo ( const LocationInfo location)
    inlinevirtual

    Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

    Reimplemented from EventHandler.

    void EventFilter::setNextEventHandler ( EventHandler next)
    inline
    virtual void EventFilter::startDocumentEvent ( const XMLCh *  documentURI,
    const XMLCh *  encoding 
    )
    inlinevirtual

    Handles a document node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventFilter::startElementEvent ( const XMLCh *  prefix,
    const XMLCh *  uri,
    const XMLCh *  localname 
    )
    inlinevirtual

    Handles the start of an element node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, NSFixupFilter, and ContentSequenceFilter.

    virtual void EventFilter::textEvent ( const XMLCh *  value)
    inlinevirtual

    Handles a text node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, and ContentSequenceFilter.

    virtual void EventFilter::textEvent ( const XMLCh *  chars,
    unsigned int  length 
    )
    inlinevirtual

    Handles a text node as an event.

    Implements EventHandler.

    Reimplemented in SchemaValidatorFilter, QueryPathTreeFilter, and ContentSequenceFilter.

    Member Data Documentation

    EventHandler* EventFilter::next_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATAnyURIOrDerived-members.html0000644001725400016040000004622613273140074021346 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnyURIOrDerived Member List

    This is the complete list of members for ATAnyURIOrDerived, including all inherited members.

    _ref_countReferenceCountedprotected
    ANY_SIMPLE_TYPE enum valueAnyAtomicType
    ANY_URI enum valueAnyAtomicType
    asString(const DynamicContext *context) const =0ATAnyURIOrDerivedpure virtual
    AtomicObjectType enum nameAnyAtomicType
    BASE_64_BINARY enum valueAnyAtomicType
    BOOLEAN enum valueAnyAtomicType
    castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypeprotectedvirtual
    castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
    castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
    DATE enum valueAnyAtomicType
    DATE_TIME enum valueAnyAtomicType
    DAY_TIME_DURATION enum valueAnyAtomicType
    DECIMAL enum valueAnyAtomicType
    decrementRefCount() const ReferenceCountedinlinevirtual
    DOUBLE enum valueAnyAtomicType
    DURATION enum valueAnyAtomicType
    equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATAnyURIOrDerivedpure virtual
    fgDT_ANYATOMICTYPEAnyAtomicTypestatic
    FLOAT enum valueAnyAtomicType
    G_DAY enum valueAnyAtomicType
    G_MONTH enum valueAnyAtomicType
    G_MONTH_DAY enum valueAnyAtomicType
    G_YEAR enum valueAnyAtomicType
    G_YEAR_MONTH enum valueAnyAtomicType
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicTypevirtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getPrimitiveTypeIndex() const =0ATAnyURIOrDerivedpure virtual
    getPrimitiveTypeName() const =0ATAnyURIOrDerivedpure virtual
    getPrimitiveTypeURI() const AnyAtomicTypevirtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0ATAnyURIOrDerivedpure virtual
    getTypeURI() const =0ATAnyURIOrDerivedpure virtual
    gXQillaItemstatic
    HEX_BINARY enum valueAnyAtomicType
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const AnyAtomicTypevirtual
    isDateOrTimeTypeValue() const AnyAtomicTypevirtual
    isFunction() const AnyAtomicTypevirtual
    isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicTypevirtual
    isNode() const AnyAtomicTypevirtual
    isNumericValue() const AnyAtomicTypevirtual
    isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicTypevirtual
    Item()Iteminlineprotected
    NOTATION enum valueAnyAtomicType
    NumAtomicObjectTypes enum valueAnyAtomicType
    Ptr typedefAnyAtomicType
    QNAME enum valueAnyAtomicType
    ReferenceCounted()ReferenceCountedinline
    STRING enum valueAnyAtomicType
    TIME enum valueAnyAtomicType
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicTypevirtual
    UNTYPED_ATOMIC enum valueAnyAtomicType
    YEAR_MONTH_DURATION enum valueAnyAtomicType
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_18.png0000644001725400016040000000221213273140077016471 00000000000000PNG  IHDRc%XbKGD?IDAThK2]ƏNӇ)~AEAm"3E $I j "B*(AZXcijI`h:b@jW淚s5}yYA: Sta ](cAT~755R '''._{ ֶORXAOхq.StaKN^!z},O WWWZ쬼>9K#H8v\Ph||Al K.RT%>xv˽(KVG"rqDPHR|`,OTWWA|^TkT*U(*Dmddl6\.' E EggW7)344 R)A~nhh(Dd2DELP( Zm<'*BNbh4Fooov{ccX,a`0LLL`zɎS22KRtMOOx<ޕӳL&, VWWrIf9P2h4(Sxh4 B\nX2L Ow A|aF@  8p8JeuuZv:ʹ9>T*N'x۞r\GG4>ŢWAZQy ]8E)0Nхq.%OAPD-OgTUU~L ]8E/XX<IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.png0000644001725400016040000002520513273140076023726 00000000000000PNG  IHDRpTõbKGD IDATxg@I^)6DDA,vPTX]+P .ZPkw+ZEDAEAE@DB)@ |?fl6>̙73'3oΙ9C@Q!*;($$PSj,*+^r@133ѣǷ5F|||||:D ۷/>o-eeeҸ\nYYBb2 ) t& FǍ :¥KE氶633Đ"UUU+4}}}E:T^^KZQqcرW\QTi@&PSj @MAv'!}]d :TOOy<DV0}tPXX(O*H8fmmǿ|RAu/^ ·%&&jhh~Zd3g1cMkSw .]$(PVuR:{yy Ю=5-eee111L&sĈG,kȑϞ=;p@vvvHHȅ |>6CIIɫWRSS,\E Ob0`LT}ua544ZjC ^oyyGEE(d|a_=AT}7k,¤#KpN.B>|HQV ڵ {yff{iliӦm߾466vx W>|n"1tA܌N?|P!Ey͛7m֡:::(rJgg疖rnhh]&cbF%8CSU9Qq ut  466fhWj ˗|5aʕwڵD"3ao\rBB¼y,~ٲe֛7onnnxwݻw=,YiM%¯ BttAz`Ν fffR.\4h3f ={3B000޾}{T*bx$"e(9x`}}ɓ'߾} [bHLACC#666:::444&&&66BH\/ 9N|ﲤ$[[[##Psƍk.kdd};{#x A޽?~,;T%D"OH]1u-'''---c%Ȩ*͛VVVuuu\xΎ m}디,q)AķJH'"^7l`ooYx ?~ӧOe|vϞ=344DQ۩ Cd'Oc˾{gϞ/^@QJVWW#R)Srsss!ׯ_=z߳$03g d2O< Huu5;wniiinn#mۆ-5o޼ӧO#RSS#˗,b}eժU˗/>b2~~~eeeX娪Xӧݻ`0h46~dPzKٶm Y/ٙLfaa9sFJl̙L&իޏ8E/]Իwo@hbbekkH&^ñOf}_q_}@bpQt:]SS322"**L&ly*4dɒKVVV?}([ٳG|/K\foEzN111kx  333vZyy;w,--Jj $ ##_v!!!(Ź )]fkk;pk׮aS2~999XQ"34mذaRS"LWW7??}fG M2/\c ]" >(*f͚E"-Z$^B8q"ރ wYJJ XSġ(ptttP]`Hm&c3涹#T? o'H]c.B>|N X,>/O͗󓀺:kkk''={ek{YRť믿뗖{Jb Wtٯ;A}#bhhسgO b_|쌿򊏏GQTvHt:c-++Ӏ) ={zzz`M¯1%%%X%!+'00QPP0m4ggXED,**rtt?i@vɈ/J 櫈ϟ??~|ԩ6m'RJ"D"1&&ɓ'N¦H}?Y(5՚`TVV~ѣGg#~mˮ]Lr޽>\~}VVVD;wn``QR"p 2u}͛7׿|}}/^c!t͚5>}BAs1cǎ̙ӧiӦ˘fKbO\nKKFSSݻaXZz-[jjj/,ծNNNlڴ|ڵͥ2/" QWW{nGX Lb rqRUf իL&BPT6J'֮]{ߺu .[K}-Ѐ]"ׯÇ9XW\XYYy޽]vɳ%)g_ W^"M69::RT}566biKJJ "e^[[xb 6455577o޼ǧs߾}E"5\|I@@Ñ8gkk tuuŋBQ{fllܫW333eG`ڴi=z J&Cll񢲲DbBB*'e2uO+|iZ_%6 q@xa$^x4@%.D|r544oCn~Emm-ַ%/#mq׎th >| www|5:tVGGgر?~i]6DMII>^|ݻ&FV?+ ){22RS?3g~Ѐ,:nX[[ E#TmŸѭVJc6&?f2q89 HD&-,,m@С>|n&/c62917^'O>PT  D"ɓQ(p:Q]  /_@Ν;פZnztN u!lʕnk TLfӶmWsǛD±cs8Ktٳc{B!xmmC~qɃ:?xѣPDW8:q!FD,qt$JpM.sΝ?ΘԫqD]{qCZ[&&#F:9Rbxj奦qŝ;x<>@S_|Sb@\QQUj `$(M޲e:uH~1++ZNSSMI'N8n®RW7gI|Oa@=||Ν_mn;cdȑ6W6W8viǏ RS RSߗi镖֊"={ꇇ/5FYHE 2w&/B!\<=? GySF$rqsw?yQ/@@P}#FYTTΝe@=ַiD47>{15 -͛2`bj7fLOO3E.w'İ $J}ժoVw $$7^Vp~~ee\\&Odii ?{VI!+V=Sg{ɓBi;e˖kN祦des>}L\\\\&N ii!JMLt[4a%F PVѣIFMMz>}h<_@hP 7m ٹߕ+Ad2\$N=\Y ]SQ4t:3+8-F˧LLtǍuq4HRHK {Vg 0OAA眜ϜYl_ijݐ! {} L46MNblYn3‡1v~ʋK-p8ܜOQ(7Gg9rȑ0GQTC}髪XOhy77fL+Ҵ&N_VVBP+WNڸWYO1CmE<%֍/iiE|5+#QߎrA}}F]zzW!'N,f2w:qCcfyc@@fTŋgΤ (H02>yC|Oj =zd6c3&L`d`]$SccKvvIRRWZZCj8;uusww躰U߾R @W2Ag>SVL?z~pRvAu5;#0- 9myy}~;$] `Əy>qq +V|@?vaBB._ZjrH |TWN=8thgW(7.b#ϛ5$@IIy%·k ׷˩XGt--[\yqƍC7gG_"JbU_ߨɴp7ӧ--7i=\Ajk9O|t&Lbfoe% L=}0D23hGGښ);.o LK+o45; QC?4Z^j{=p퓙Yۣ~L_&_vfs32 iԂmm#­j44HF1KKk##);ukײmaժP ۋڟQ 8zM{oH$@2YL}Su\.o˖+ةk)*)d8uJw,_PP!67e|;OMgΤݛ ;rd64bÇV:omm:V'ǟ32q@x.94Z^AAp":,v&(:_ @> ,OR>wQ&HW~=Ի @{j?*ɓƏm{fs7lnDmmżA!I#`pׯ=) d+.fGWWOXO!vn={e:+A񇴴}R9n';4…c󟹐֮ЧIT>GJʻ:|oa( $\>|fsa2A_漝80&PY.ᦧhywK;xx8tQyd2Qus6ozg̡[~]M& i (RS JKk ݍđ\]v{U&袭?ۺ5~8E]ْX;b8@}@-1_.$wQY_0a@x.7plK _vBfc]q$@-TU>-ϯoCo̘X *?';dŊ*U3&ήÑްbEG̘= +3H/ծ{{ "c6ռ ?;;meӶ::QQ~hؒ-zSP+GGn$/LG啖kwwwP--.=U;Ndoօ!~7A%$U䊟__s˗T-S@J$/&%egcm;_VVO?koHDTTU;ܼ/:(  :گW/^jJ]];W|rZZ|'I oޔ ~fgݡGO'O.0a@EDrի㬭wp:2u5ʦ  *$&7fz)|uwÆ޺ի(|a(FD$qwuCܮin8a##X#j :=ل;ZZE,np?:$ۨfgd<|˗:#t\@@gny*n`֮0kk~G4s/LfɓFQHMM-ϟ 7Й nƍG5Z45{kj%s<^BJ&44z56*4#lE3\_"r\'mQTᲑdY* ꮬl^^^JY{}pKq3Xj X<[QQ+@Abff6i$eG:޽{*A@ $$PSpa ݄|СAAAgϞUTTe$ [ںukVVV\\U"H>?naa!>|Հh]]]A---?~#GDA*++lmmX,֫W,\ETTT\211Qفe@w݇[XXc;w0,,lԨQ...wfpvvNIIJOO6l@d2] $-==}޼y, A,^A9{ٳgGFFx/_̟?˗111 ekO|)l .LJJBK\[kh%K`1ZZZ ,hI&C>zhĉ6Hl6{f:qDKKEvݥKzzzIII>>>3f̈߿tҥKZ A9s洽G@<ƍ^WWc---A***Nrܹ[?v߻woAt56O>}ѣGbbb.\8zhi˯ ظYxB;;;I://@:@Fʊ` ";xGQTAdkljj*2']\_}vlѣG5cӱӒIeee~),,\hĥ\@ سg{oܸ!mq9(z1c`oNzܹÇ477_xQ:dȐׯ_?|ӦMrnddD$+**3}yy)҂$Z"m;  @P=x9svܙMwqq9}4N/..޲eˍ78sǏ?~믿tiKTJ&555-pܹ#AW^ܹhҥuuu7n*++KKK 2555k8#6h 1N&܎;VQQy8uTc&%%566^v$9h m7nܨ!6l 2d'(׷988y̘1t444BBBN|@5 k֬^999:u o9RN,//2eBnnngKxׯ_+WR(ɓ' #""V^&bgٳ!CΝWΒPs9ԍ7ؽ{x3 j 5I $$PSj @M`A yyy{Uv K!ζ`QF); F \)H5I +]oIENDB`XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp__dep__incl.map0000644001725400016040000000046213273140075021353 00000000000000 XQilla-2.3.4/docs/simple-api/classEventFilter__inherit__graph.map0000644001725400016040000000136713273140076022016 00000000000000 XQilla-2.3.4/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.map0000644001725400016040000000031113273140076024270 00000000000000 XQilla-2.3.4/docs/simple-api/FunctionRef_8hpp__incl.md50000644001725400016040000000004013273140074017556 00000000000000a763674a0a793b2e650be319b75d3303XQilla-2.3.4/docs/simple-api/inherit_graph_14.map0000644001725400016040000000035713273140077016466 00000000000000 XQilla-2.3.4/docs/simple-api/XMemory_8hpp.html0000644001725400016040000001507013273140077016063 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMemory.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <stdlib.h>
    Include dependency graph for XMemory.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::XMemory
     This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/classNode-members.html0000644001725400016040000003527313273140074017073 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Node Member List

    This is the complete list of members for Node, including all inherited members.

    _ref_countReferenceCountedprotected
    asString(const DynamicContext *context) const =0Nodepure virtual
    attribute_stringNodestatic
    comment_stringNodestatic
    decrementRefCount() const ReferenceCountedinlinevirtual
    dmAttributes(const DynamicContext *context, const LocationInfo *info) const =0Nodepure virtual
    dmBaseURI(const DynamicContext *context) const =0Nodepure virtual
    dmChildren(const DynamicContext *context, const LocationInfo *info) const =0Nodepure virtual
    dmDocumentURI(const DynamicContext *context) const =0Nodepure virtual
    dmIsId(const DynamicContext *context) const =0Nodepure virtual
    dmIsIdRefs(const DynamicContext *context) const =0Nodepure virtual
    dmNamespaceNodes(const DynamicContext *context, const LocationInfo *info) const =0Nodepure virtual
    dmNilled(const DynamicContext *context) const =0Nodepure virtual
    dmNodeKind() const =0Nodepure virtual
    dmNodeName(const DynamicContext *context) const =0Nodepure virtual
    dmParent(const DynamicContext *context) const =0Nodepure virtual
    dmStringValue(const DynamicContext *context) const =0Nodepure virtual
    dmTypedValue(DynamicContext *context) const =0Nodepure virtual
    dmTypeName(const DynamicContext *context) const =0Nodepure virtual
    document_stringNodestatic
    element_stringNodestatic
    equals(const Node::Ptr &other) const =0Nodepure virtual
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Itempure virtual
    getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const =0Nodepure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0Nodepure virtual
    getTypeURI() const =0Nodepure virtual
    gXQillaItemstatic
    hasInstanceOfType(const XMLCh *typeURI, const XMLCh *typeName, const DynamicContext *context) const =0Nodepure virtual
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const Nodevirtual
    isFunction() const Nodevirtual
    isNode() const Nodevirtual
    Item()Iteminlineprotected
    lessThan(const Node::Ptr &other, const DynamicContext *context) const =0Nodepure virtual
    namespace_stringNodestatic
    processing_instruction_stringNodestatic
    Ptr typedefNode
    ReferenceCounted()ReferenceCountedinline
    root(const DynamicContext *context) const =0Nodepure virtual
    text_stringNodestatic
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const Nodevirtual
    uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const =0Nodepure virtual
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_42.map0000644001725400016040000000067513273140077016472 00000000000000 XQilla-2.3.4/docs/simple-api/MemoryManager_8hpp__incl.png0000644001725400016040000001364613273140075020217 00000000000000PNG  IHDRp3bKGD[IDATx{C@ L+D @ +{v@x={x<  'Nȿ^8|}||\\\dXttt(jDGG+Ȱ(//?xBW@]A u`=PWC&D.C޽L&fg$<`ԕLhkk{'x)tfu%?YfAgFPW2ť\0u?^.啜rd2gϞz5k\G]|ʕ+lvKK L~葏Oppo4%tss36mrss>{,j$ׯ_,% .\X~;***d]i.[,''&{u뼼9D#F {dd2W__ߣG͛'[XXHRRR?ѣ äԊЬ,:;;;\4W~~~TTTPPݻwg޽knnnkk;32eJvvvhhhjj]wILLP())) Cb_5++k˖-gϞMLL )SD޽{vRh#G^Q x<~쫢^___۶m#H GGGvZ777reeeaaaց׮]Csg&UUUׯp!LKK 722"H>tŋt:]bʢٳg899JuU[[[ϟCCC-,,OqFAJ|IV̻mmmނ膎H$l|џ&LD---x<>3D"رcL&Sd166v@bɓ' XYYIuU###BKDu%+$ rD"fgA3%%t:ǙB ҥK `$$$_T*믿bTBdLnllttt6mڴ}v 2Ҷmfll9{l___x,X0LgBCCcbb.\k.KLjժk兄 'cǎ . ƢE"""̙#VQ _7o*ڑARmmmOu$yO,O%'+5fh˗/7rիWcX555r]-Ԅ/^||b{%K-[ꊗ#ѨyPy D8@ +{ 쁺@^12AEU u5͉D8ƎfX ^ zE E#ٙ *߳pN~~ѧ6\K *z##$%/]I|>s繢NswI cG^qX  rbx~np8͛^demrvm8!/]];x<_b[uV\ ;ugl7VF޽TOO+"\_+(H;)+d?yҔ4Iumٲ ˧P\dZ*u&ׯxA+*2c<..oٲPWW{ޢ^VDb9ԨB@]t:7+?rwyD">*``wR~T5kR::%%a' SjmۖϊY!qQԕjX:(,bee |XX6?r[<J Jio$xpssá3 Ychg~i-8-TUNihCMM ܼWPPEHTW:W:gyy}hwGEˀԹsmSSkjԕQ_߱r)33CCE#Jee/gOR5bR1?oY:֖țcE? $TUY&e43g6j)0/U7V%ٙeg+Ckk}}a0Rr)GG`f̘p|XSӻ+Ouw灪AEKԯRMMVJ;V;//HO8^ee/|}S- *$*Qaᖾ>֊ =vG~@]);׮=߰!}f|*ow|NцڠziTq3|| ?`jYK|ׯ*yj4P\p=ݙ-.jb2oXudgWP(P trsC ==_)uddٽ`jRsB̼Vb /lrymm=+W&>ʆPeA]aOz}},q;khxjURo>|p8G}9slD״8ŋOX` 89`Ay3^a˭G D"aRd6PWXro?tpٰyJ*Twp;pׯG*+PWA89 <bmm("(tt0n>0xccc飢w%3E1111330aL>u\\`L&.-EWaN}*s) 9i|;>#߰aCXXXnn/^WXgϞƪ*77D\֭ۻw/*[666 ùt6#1{iir gΜ'OWb P(AAASSӰ09&lkkkiiu떗WCCÎ;S`eRԞr۶m}2 CYZZvʕK)-""BZl^ÙϜ9?=E遁ƍ322 v9~x5ktwwv\;wFSSsڴiK ;chhhccSZZpϟMDgffjii?X߿ en'N`K]JQN|-JN48,,dJ4J rG*|\nllܹsс}y`^^D`XP-6R%ₙj!JI}})S%-(tW(Wu5קP(1B>DJNNq@]A u`=PWHXL :UQ]Hf`Ro>;= +{ 쁺@w"i`OIENDB`XQilla-2.3.4/docs/simple-api/bc_s.png0000644001725400016040000000124413273140073014244 00000000000000PNG  IHDR_ kIDATxkQϝ̤I&m&156*nąܸR,4 +H(Ub1J.(EmߏhJmKS'C(х & r3g(z&_9}՟@mu ` h`ԯ &~M4%3?h)\Yi>Jb @giވkg\轭EUv+?E"pB\Y&$vM+Dn)}:Xo 3گ'.f0u9Ljf6%3Gf#sm(,k*ʒJJˢou_~ r]%%mnu]zr5[ưXeI XQilla-2.3.4/docs/simple-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.map0000644001725400016040000000102113273140076021370 00000000000000 XQilla-2.3.4/docs/simple-api/ContextHelpers_8hpp.html0000644001725400016040000001766613273140077017447 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContextHelpers.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/context/DynamicContext.hpp>
    Include dependency graph for ContextHelpers.hpp:

    Go to the source code of this file.

    Classes

    class  AutoNodeSetOrderingReset
     
    class  AutoContextItemTypeReset
     
    class  AutoNsScopeReset
     
    class  AutoContextInfoReset
     
    class  AutoDocumentCacheReset
     
    class  AutoVariableStoreReset
     
    class  AutoRegexGroupStoreReset
     
    class  AutoMessageListenerReset
     
    class  AutoStackFrameReset
     
    class  AutoReset< T >
     
    XQilla-2.3.4/docs/simple-api/classResultImpl__inherit__graph.md50000644001725400016040000000004013273140074021560 00000000000000735a825023e014b6bc40e4156811c1cbXQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.map0000644001725400016040000000035013273140076023020 00000000000000 XQilla-2.3.4/docs/simple-api/classATTimeOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022407 000000000000000d2ef6a8c57b00749985bdb279d26462XQilla-2.3.4/docs/simple-api/classATDateOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022366 0000000000000084ab9f196a00308dc00905e182fb89eaXQilla-2.3.4/docs/simple-api/StdOutFormatTarget_8hpp.html0000644001725400016040000000757213273140077020235 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StdOutFormatTarget.hpp File Reference
    Include dependency graph for StdOutFormatTarget.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::StdOutFormatTarget
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/dir_0b62eb81f5697eac1f344543267dff7d_dep.png0000644001725400016040000002015213273140076021421 00000000000000PNG  IHDR)FbKGD IDATxy\?3 "@VjZmi *bV SZZ]ܽOኢ"dZp! [ !1$3s9ߐ9YZ H6$ xd:>ydH6%'炙Hw Tq6$ xdөq`/@/Adjj*ɦ_ yW]7"(r>ܼuPcc>$zJ×]ͪU˞?ųgOHX9f}yW$lŊe7B$ x ԏ?;##cK-t̘7i/-GǁӦMj> ɦ"dmp3讂b 9U Ol'H6$ xdv@@K.W(qqѮBhBA.L}uGgA eCkZn??;;?/`%2{|}{7>/?ҥwkϟ.Z4wÆ0PjjJfϵ-[֒ 9th_bbBr>7 nFF.[b3gS&%ew|ߟ,Z7).n<5u-mll=<7aG_7|WZwXzm޽63R0z_Ͱ)//柞?,ws,755#_8::/ݪ*6ydxY}wa宮:(OϦЂ[޽{|ai)vX*UK겲~!߿__ܳ'_"*+״wHolʄ~fMtV'OΝyÆ8ry`}ΝSA._*ƍܵkW|\33sPzu{|G35kpW7 ̟HEUUUzzzO!VL]:z~/PHHؔ)diB>+VLJZt1PX筭QQWW?>6/]:lpŋ/,J!))NMkwQ"yTspoϮlnn6mbUUef/FFFW0{w$%FYXX օ\pZ C.ys|LW&Rզwammm{䑴3잸s֒%>x(lK}6iԨw-v-Ǐ+,~ IԶU^^Ԩoψ'OS[  6dm\^*Wped⹭ ja;Hv7(/ٳ'))`SH$733rM255۵Ǣ[M_kcҮ]lllu>AnnIo۷oEU,dzE۾}?%^û3r/pqqsvvEam``rtس?|t՛~#Q欬,R&eeeqqq#GtW":::11ή><&&!::Fr&M244 ]zH$0aBCw =֭*6dW{=SSÇ/͛7{bbիϜ9CmaϸrJO>yqNNH$7nyyy.~K;wرcW,߼yS݋Ν;:eʔ& cC p9 zHYYepp0EE$Nr^__p=v~W.k.JbHv{ׯ_߿XX5^x+W)sdz#???OOSNe2ى'zَJ_nmm 03c|/#СC R(ɀieee_bÇ>}͏=z޷&tbѢEFFFtVՏ?FT5O?NUVi=2֛7omVnnnl̤IfΜIarsmmm=;v,qv^^ΝIw-/ A~'O\vmРAvM%33644P۬'=}w͜c|Jn\s2`M6ǔDDD̞=;88ƙ&G7Cmp2`_L7|k׮C]KW&####G<|0<<\3}}c1Nnvɀ ]}w1<>;l-[OCf1N J5ydkkrTҢ~qvKK5K^vJ\ RRRڝ xI{{իW_}WK' b---5k1c躗GFF*ʸ8G' J~1zh.200 x_qqqxx3m۶YXXT*]wt! |}}93~e];P{x<ހo ?peP?5:rM@-Z~uq}ڎ L&[r%vp8:j#RSS}}}kkk^wP(RSS[[[uڵlRo߾vWF׿t3:!R"""BBBry^xQG]n>sLUUU*5$$$++KU姳USSsVwauk%{Ϟ=rj $ }ǎ?>P۹#IPdddZ=qS<$yN:q jӧBO>i/'N mgOi:>{LLL֯__TT{uI;dnݺ^> {HբJ:t}\UUEwi5x`u''666njjOg}ҥr!';;BzK,nΨQ ׭[L&_;I޽{B\.W(]5$ibbb_.&iiiz*/ׯ<66[paǏ#:Gjnذ 222>䓺:cc޴WVb~G0H$JJz/zUN\ĉ==={kÇ^JaaH$Jt%9 ˋɱ~~na'~322R\zdjjzƍ#F5>ߌӧ[_DA>dN$bq~~>'tdD"dݣրdða|> Hf>HAYC߱cpx[ ٬!>>,j@VTk@qFzaiAOP(BUttB8qℍMMM B(--ťu͚5vvv ={vmm6'ǏwuuZdIKK G#s"(**!DDjj7oLyIoooCCCgb| q)Dblllmmu@Gӑٴi˗/WճgϞ3gNUUP(Vl陟m__ߨmNނlqrro{_g͚5v6,>>~ԩ555=B_~wﮬ$;͓BZޫwE`[-?n{CBO<􇯻uzl77JoFNkjjD"75ZzQuaau)ɩdr.yѣG5/pBX*xĚJU__ͳ)lRibbgϞld544(K.us{2)//&f2nܸ2 ܹpBr ggg򵻻ɓ!YÇvcRHI!CB{.ZXX\p!''G$=ʕ+L8 x7~r!~=O 555999l߾wߍ$W2dy;2͛7׭[!w!t=2 B.y`mll~'/d2J̔Jaaa|Ye2ٴiӢvܩYH'ɞ2eJlllEEE~~~@@;T*ռy"""Ξ={IPHHʕ+ /^\QQK.-))]bEpp0m<oK,)+++((XjլY:- 9rN.x^`9uoKK\.2l͚5.~>PzxP KK 466&''rZ}1kkkT5d333gԼlsrow^{{{@! ŨQLLL/ RiHHed2ZFih^;::|77Ǐk3bCg\PQQQw78[V'%% 8vΝ3gδRwoR$s{vV$㥥uwC>_]l կ_?777 655  6cd[YY޽*D"]1"٠bg=zDw!f%j_jwJ0$M$A t V<'tf+| a(H6[ j $`H6.@YL,2j_dD"imm-,,&d1 H:f1i0$`2lvH$nRTt8M6Mu %%%...ZnS^g1bƌf̘1b///-ڔ/>.[BBVR ʰa7lؠ~E"Ν;CCCܵ6`ztw~ׯc6lŴ\훒ܿw H6I$'OTVVӋ/nd-WٳO"nd>ǎ[`zH6M$$H6| $H6$??w$Aq Hv/$H6s/+$H6&0fܑƄ~۷sG$վ0uŋEEE]dcB"r^Kb$nnn:ڗEsG$\.wذaDhHdC,n͢# ]ˮ# X\WWy(=5w$Ar)jnHdŅ6$H6V&eРAmusG$+/;Qn޽޳gϺ $H6V$IeeeUUUO7AgΜY~}PPKwޙ:uٳgj5bܑ<_zƍyyynݺxbZZZ~ Jz;''GP9r. 觟~O:h…cǎ%%%%̏ Fp`ll|ߟ ~%%%)ʶ U*+q!A[n xdtM&TLT(JPNA1)Sbcc+**vm ?~#Gr9ǃ;V :tԨQG(%$$ 0@"3gӦMl111666III醆:Z~t"籠=}_xd XQilla Simple API Documentation SourceForge.net Logo
    events Directory Reference
    Directory dependency graph for events:
    events

    Files

    file  ContentSequenceFilter.hpp [code]
     
    file  EventGenerator.hpp [code]
     
    file  EventHandler.hpp [code]
     
    file  EventSerializer.hpp [code]
     
    file  NSFixupFilter.hpp [code]
     
    file  QueryPathTreeFilter.hpp [code]
     
    file  SequenceBuilder.hpp [code]
     
    XQilla-2.3.4/docs/simple-api/Collation_8hpp__incl.png0000644001725400016040000001517313273140075017375 00000000000000PNG  IHDRpdbKGD0IDATxyXY¢[7-.EPJJJ"Tբ}܊ QwQAj(* Z41F2YXp9=''of&'abd]%TD *PuG۷ou[[#G: q$#H| u z^A}QbV7oku@%TD *@ Q{}xxW_}x ?CnnnTRKEܪS%2.a##и8p 77._Lӽ)˃@O8d6f'$$L:;J$.?633ntQ.-eX㖖˗ZĉGmܸqѢE/_F}w/}xMXݻw}}}?_bΜ9#=V~zdddDDDNN QG"+߿uVkk#Gofhhx@KKK<öv+V> !$̓֬Yӯ_?WWW4n޼v̘16lVEXD l|>ÑH$C mll+RUUU,Ν;JSR^}---\NI",A]6k֬[BD"### 2\[[>W_:uTVp齑*++Ltٷ~[XXӊ_~%99yÆ !*vW^={]P(T@ Gx[Y!֭[Nbcc?~̙ *) eN:qDhh(dz;x3~?7o766^v X,VRRҸq<==o߾-|qqq111Q;,X CaFp?J@D"۬UWW,T 8 QCB Q| TD *@ Q +))u瀀~Ax fD,, խT~Cbp TUUa=Go۶Q xѶm p[ҷ=^?d>( S2880bbָةާG={VI<&s!\qhV^+&߱MܨTݜH$05A'a$J)\n{t̘a#:"TYNx9y/:"qD 4"-]Imme>>3uRS vF&vX[ Hq!BOKK#"vK?\9d#z %1%%兆^733Z5w(]GBvK&j}=\J"@ %^5XWsr*|}]wZگ#RK{ر{Gޝ0.:zQuG(AwIW8:Y3aP]GiϞ0W-22C(A<~\d^li@{ڿ?ʪë\]t#(AIW\ekkz@]]SHȵ;wxzN޷o_(}$JiiOD"=pMZӝ;bIHs"Oaa+ \\./:N|珉\icAA0ҥnXZZ5{vᅧSd&TW7~W`A7AjyL(,Vt/{ѣcb֌g눀@*@@}} QeS^yR(14P]wϞ^Y% H$pB{u|V\W@Ǐ+XJ6\ Q TD}zGz9&H}ܹ}t-DGo!hH]wRS 0@gA׵4M[ t$ʾ~UkzAA+?05A yy̫~ǎ6mrR*G ePRRd&mڈÇW3tPe/!IΟxCDG?[rә.dY::,mtdɓe~$FF,Bm7/^|pC6u4448Czo޼;7o6v,JDݣ"2c}BԂ] ~dx]4޽]={fQNN3uP:fkkA+//xG[gWT4:9Yz bf/}p>a!DZO*|СC_^d bFo=ӧ&f z222 > Q (@Heyy9#x损a>>>t޲[I_._T*511QZbhhX\\b&L@ӧM)PƍDzD*//Zs}>Tnh9 5Jv6>| J^O|Ν+VtRII&4 'N lllD555}wƍC577O2%'''***???88ŋ~X,ڸeee~g;UQQaeeճu%YD/BlQgj>-\IHQWW2!%.]֦Ζ$B cc0yd@o4{lH$ݫeqqqM PYYY4'O>^|Ž{R(][nbbb.]ԅqԓן2j(U_GGG3"_Edd)ЄvX!#;,vvv\~pI~/Pjji4ȑ#/\DKgd>ut苚P]G"a=RNM<٬}}}߾};hР N<`0kjjnݺekk? >r|MUUŋB;w… ؇-ŋ߿pG=s Bh\.ɓ0СCo޼)**4iRpp.]aXJJI0 ˣhy{{/X˗EEEcǎ !$HYV`Pxx5644tG 0 *((h' O?---vpp S!l2.{5| PԮZ>+hKXXsQQQqqӃbddW[[{Y*M:LBMw #:577W:_Euē?Jp8Ǐ|yD={"ߋfp8D,䅠N:P]T%JE%ꔥ3ðS(i]4pDaXJJ ^YYYssW~*H/}>hIL,4?2eJvviRRR,Yr1 *++B<FF?vss7o/lp.\033{F~|w0Ǐwuua.txڤ]+,,hj~Pii6AX(fQv+h F+..G~/ >|rJٳg߾}[^$J'FM˗/Os8l2dɒI&͟??---33sҥAQ( |/_FKMM_PSS=gΜM6wBו+W:;n?Y8| JKK f!ڡ %zpg^ː!C^~>>x+v8 \rׯ OðD:pB tk׮]`AEEEqq޽{Ed H-[6w\A ? oSSӨQܹŋ7˃=YcᲲǏ;::D_ӧO766*p&6( #9Ϛ5kƍx4-))ԩS4.;gϞmjj/d\O'FL˪˗Jթ? ~ښf 1NϜ9%aG0`СC?eaa_)JI;2 !YXXXZZ466RT wkk!Œ6f׭[giiimmm6(*"ۅ^|1LNJJliiٱcرci4ݻΝf͚NoO^ۙ3g feeuV| *P(tuuJpvhBQJh3QF4sd=((hȐ!fff^^^/'o GNII!] " SRRve'F}8--}N-L!_OTik$JP%TwR9QIENDB`XQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020373 00000000000000203b0016a358738e3d365259e9042dc7XQilla-2.3.4/docs/simple-api/VariableTypeStore_8hpp__incl.png0000644001725400016040000003157413273140076021061 00000000000000PNG  IHDRpbKGD IDATxi@I7rSEEjQD9 *" ފZQTT[BP! jA۪7 \;aۼ!DGGZBt5tsg ƍUƍfffUSS[r۷o߾}B}C"uu:r+V >>...kmmլRjj*;%&&"֬Y;w.^аsٳg:tNsӧ?xyy9;;'$$X8yz@hLRWW3Ї>~heejjj }M޽{G e?h'B ;QQQ]577@=z_SSL&#*+W3f'-׮]khh8|˗`tҺudA|}}߿+‘#GH|Е+Wիgeejv񉉉ǨQ \z^ FvvޠA,Y7_AbPRRDW!t &h??7n8;;$ӧO4=MߟO>[|rWWWʼ#SLqƠA>|J677߾}{ڴiÇ>|O\\\LL-^T*400 1KU$dg Lwrʛ7oIBe˖-[lhmmt{6oӧO B}QGG޽{ B |"6mZXXѨQbֿ|=@ L0!==.444DbYYـBZZZm+Hm28yI+@---?f~ Pkk+ Ht:_`mjjZϖ*))yUll#g)S9r888855OfffL&3>>|6uֻw=СCg"Heeeo߾=z]0Ɯ^} 32[[۬,Ώ^:,,LQQqo_ϖ3f lnnvpppwwgZlWXA |}}G$oK6;;f[[[///^8qȑ#%%%֋/F5ŋu߿ժU666^^^m6innge}x~tݽ|hlllyyM?KJJۼ(ٹ୭݅ 2XRN]tIԱ@|wBeee%k<Xe+V6$̝@AvqdgGi ϟ?s~w3Av344LNN޺uHTTVM"iQWAaPC?2DRbuil#Hzzzt섄;jjJkX/[fE$r Z_Zsn7[g|L}@pO-RPuPnıc{f?~38xQ$̝$zpɓN$//Fl;v\8wI[/{6dKppҤIa6ntukVBLB핑CBUUG7޽:x0̙{;v̛?"$ s߅ OmKgbTX\MIydlL޳g8l_>x0;2S֯lqM`e/"=+jJlrnm7nUzLA b/^E<^5ʕ 7 22?Pգ5588D'}рXwW\y1b~LB'\T; -mݹs? abK }M z](*).nYffyK8"6ΝM˗O Ku Qdg J/Z;{vtMMS|4{{ޚ9))82bC @4/vw?8gξiFFZ/JJZSU`oysJ]]3iNNϙ#oi9DAବH 呅EXl &%ꠀAv=ð3f8,?y b͛,>,,fwN+QD 3v,|sωnj/ĎƍNFFZ ^(/ dgЍgɒ::/|~K <1qǏVV7b4A`'+g}:JL2$33̙{;wf\9|*N6Vfr+ի>\/ $ NN61c{Ţ @h᧟ET5eʐ[Ξ'  )tRSԩ\o~Z5Q,_n:.**_&$پe dgF׮QuPECCyvBCSf4zY dg Zo8`0=<&ikuPkHsfe= I:u5?h+?O3xX#70 [pڵ6jjJ ioED\k޼=dgЁs.##bՊSUUE lg>kVq:.%p3˗={.[XZb;!5-ݻ32G"̚ t̝yر\ee9K(*ʉ:( 3~~YY7m:?iRkÕ.yPcbr˖YLtʔ!G3gOws !`&XzpɓN$mUKK:a*/ݱ¹s'M2޺e}QG}%88iҤg7:ߺar+iKͽZtWFZZ UU  @]g30رcI$ P.\xm[??+/Hׯؘg|q{7lng7梎 y?.ٳWM,%o8n܀Urw?e5)E^(x4*j+Ann6ztWz~ NlHEG_rň11 F'}ر֝;o?Yfi2 M܃o-uvJm[lDۄ۷7-_>%2W_:(/ΒJm,-ŋΞ]S<-2hOII. ڵ_F9qݹfƌ=t,**j!jΜhΙ))i5oooAbdu𢤤5UU 75e0Xq)= ;KϟW^^SZZ'HNB"8$A<dB'N~!͛ˏs,a\]ݗ aYYgqHYY>#' dQ $}  K}“]2g ͛'6Hi߳!I|ipqKܺUu㨟~r055mW~FWuɓ5eYrc`,1jkrf\B]K~]נAAAٯ0 mJx1_TIΒ6omR357Əe(@yy`WGz@vuu|Mja׮,Pz믹< CL&wU=4,zU]r ޾|Áim[gY,VSp]BZ}}/y̚B@ D8x0'RbѢɶ#dUOYY髏z3̏Ŷs{6WCCg̓'?D dD"A]]Pc ~4'N$`At锥K jj=+y'O>W2,Lss{gc|Uεyyyp~{B߾dB߾_gENNb6&&\!@ C"ijHZ:$ٳ:`PE駟~[ZZ0 35OaÆ{{[kh(:cKKopYYHJJu BتqpYx@tuEH}Y!777QD/9/]AG@AvqQ7f碢"Ò%K0 VQQO_.<~D"qS(99O666=ZEE q#p#v@ hûx^A0x6N>]#쬮/|k9s攖&$$x!?qwa̘16lA֮Y&44tԨQ߻woΝ=Z~ɓ'Lf۷˾&Nkii M )Ak ru ޽{v-*z !Da***] [aa!#>fΜ$Ȗ'B 9rʕZjܸqt:&00pʔ) ](&&.:<.>1tޟ={ٳh+ 属zlw%&&8o=:H ru 7l7}uknnnnnn%ve˖[644())=~ѡΙ;/\pѢE:::0d2󥥥S?:99K~ɓϟ?cvر'N`_O>=;;kEg]]]ll,Bݽ0l׮]>|;vm6sL (رc1 1 򲵵}M~~ȑ#lI^^BbS3- lׯGK+́sN߾};qByyy_u ޽kbbeu< Ν;p_>`k1nC|mٲ4??ӧ'N UA^^>&&ѣ$!""ku>W \!^zc jjj>um L$_xQSSð'OX6':mܙLR ػ455co?;|d^~}]]]1n9??OEУG0 m 6 o0++QQQ? deeTjDDČ3222pyHׯ_b͞=[FFۛG ۷okiiudqðDu< rrr0 c2xH\wklqO"mHsC?ŋkUWWFFFRTU__d2yUs R(Ձ?lS^^g7\0ڜ,RwӧO}}}pj >?'{>| Z׮]{ԩSsssD"꼮PLM`sssKNN0ͲIps?ʕ+^^^\{ѓC3Ǐﷳ K 8`}9h4{PPУG<^|ёW(s(|N-*z]"8c RPP0vX7nYGGGFFHp111gΜvZ.GDDXYY~k`ӧwǍ' {G _^.Bד~H^oEX,Vrrruue˜Vo e}}͛7%«|2RRR,--ztsζY`2vvv۷oMKK0lǎd2955ҥK;STp%_УGKJJp}ī"{\ϛ7Mgĉk׮0,99YEEєbjj lmm>}jjj+!Ch4.X,''S2L t'lmmСC/_ 6 drKK˷7u֬ ߿?x^>rHMM ul`}ɓWXFSPP8{lee@ѸVޕG3kA~ ~uGԚ5knmmݦa?1 c0d2YGGžP֝7zhޗ==j:m۶XXX:uv0,**o߾;x𠧧W$\ZuuuK,\r%_MM Dߑhll f墨GSSSOO履~hhC ٰag9߿O$Ϟ=0rHcc7N:㛎\r=Yxk {%IDAThREEAƾmvk|@vxDې<_́jjjT*/z!$&& 6BpN97aaaa i3zTuGTNNB6/[jb]]g:&w;$GKK˝;w{/=pv z؆ ,X  \%F;F=رcOu,oA:=/v޽/]tڴi֡-sghtL]~贩SVWWkn0wqdgG@qyWa3TUUEEswwu]dLKԁH;wXXXp|5wVUU%=<w͟?_QtJ}&˕Ҕdpss,j0bĈ edd$>}脼!!EEy,m>]oe>]oJg߬6*SZXgf!tv6߹3UA/G]A7hnn=pકUxv˽{=bjF99h99ئ3@PYY7m:Kk ?}Ə7JOst%% dg@Ǟ>r[Wq6" ,n`eOEE]ppҌ{tFZںhnM7sgw[TTϛ76 ,n ;zsҥS?{ee;,n XQXX`ŋ~}ƍN=,n ` `R2ni7a@QEB&0a/n@vyIQQ><|ނ=̇;zqV6v;v\񙜛S3BhLf^܀ z泏ϟ eF'^b慽!@DV6F55M{sp:".|qHu)SSR̾x'LH7` - M}… ;7 ; +wgoozR##-QG$i^܀ z:o]UYBo|rIIH7` @ba}{ڴyK Idgz[BBR*.䨪(:Ij7$)CUƻR ܾErS3 ;{45޿a߿Zag~Yj7 ;K̿ t\r\܀ $ޣGg# ț7Gޔ.n@v@'8;(߁wkj:(܀ $F?x0l==梎{I̝0YYedd`h֬1!!)%D"aDc4q _nme&%g0# RSnP>w?{sљ@ޠw ijL4KdV/.#22Ļwwvx'H͝ {RyyW`u}LM ƌ?b𩓮矋LΠhnnx;)cg7,--vpeemj6wNmmQ2;vӧgggoٲ4??ӧ'N UA^^>&&ѣ$!""kcǎ8q0|_x!qlׯGqvk0 Cr?˫MN!''s! ޽kbbeGµk***o#ME&ϟ?_ZZ6'`cczY T;lذ2qVV9~%c6tϾx}jYYH*bL&ꮮXg3:b͞=[FFۛ5kx 69!rrr~3~ MLLb|XvM0dȐ8|3gf_W.Haضmddd8Gk/555JO>mNZݼys޼ySLx"fs^dg'N]~]AA!55gqΧN7n7&'PAAh4^[cM㠨Y|3>?\B_` J޽{/Wo߽{ojh4\]]l2ggj/_@ҋ6KKK#""BCC}}}9Q쾮 ðC͜9q62mg-0@KKϏFq-?zre}79/011QVV_aZ8s挑Lhii::\B_D|(**IENDB`XQilla-2.3.4/docs/simple-api/dir_5b066a3a11d24837d6c1438f7c0507f7_dep.map0000644001725400016040000000514413273140076021156 00000000000000 XQilla-2.3.4/docs/simple-api/ATGYearMonthOrDerived_8hpp__dep__incl.map0000644001725400016040000000047613273140075022477 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000002_000017.html0000644001725400016040000000425613273140074015713 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    items → framework Relation

    File in include/xqilla/itemsIncludes file in include/xqilla/framework
    Item.hppReferenceCounted.hpp
    Timezone.hppReferenceCounted.hpp
    XQilla-2.3.4/docs/simple-api/Item_8hpp__dep__incl.map0000644001725400016040000001421713273140075017325 00000000000000 XQilla-2.3.4/docs/simple-api/sync_off.png0000644001725400016040000000152513273140073015146 00000000000000PNG  IHDRw=IDATxKhTW1I&38MII3b$c I1V1-(T.* t!K[čf`l(l"Y6gT}sgܹ d{8?̝;u`:!FB?Űm'y>ѝlU_?]Y(N8f1qn-etm 0}b%׌=0?1s08;_ W|%\Zð >舽lnp.a{ )t; b n652?>Oдunm`׭ZWjC~>־0+ {{fMŕټ` ݛ%uA6,]kWu]7ihu1 l Ҷ̺:\cxhRQt$ fd<4B[fd7=.M9//O a},j?.5ښm?X2#d p(?c!a1ޗةܾ7dK:)3],H+ku<|`LhC7e םt H$^2%l.aeÉ|s }D^hz~Rá]|#@חև[k<|(*ݹdtM:,]' X_n| /cfOIENDB`XQilla-2.3.4/docs/simple-api/DOMDocument_8hpp__incl.md50000644001725400016040000000004013273140074017452 00000000000000cf78874a136d69bc3bdc4d37d33987bbXQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp__dep__incl.md50000644001725400016040000000004013273140074022321 00000000000000417ed36e8319c03a3146435d11c886d2XQilla-2.3.4/docs/simple-api/classItemFactory__inherit__graph.map0000644001725400016040000000040213273140076022002 00000000000000 XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021354 000000000000007052d0bf86587183f3b434b478fabaf6XQilla-2.3.4/docs/simple-api/classStaticType.html0000644001725400016040000017441513273140077016654 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    Class that represents the static type of an expression. More...

    #include <StaticType.hpp>

    Inheritance diagram for StaticType:

    Classes

    struct  TypeMatch
     

    Public Types

    enum  StaticTypeFlags {
      DOCUMENT_TYPE = 0x00000001, ELEMENT_TYPE = 0x00000002, ATTRIBUTE_TYPE = 0x00000004, TEXT_TYPE = 0x00000008,
      PI_TYPE = 0x00000010, COMMENT_TYPE = 0x00000020, NAMESPACE_TYPE = 0x00000040, ANY_SIMPLE_TYPE = 0x00000080,
      ANY_URI_TYPE = 0x00000100, BASE_64_BINARY_TYPE = 0x00000200, BOOLEAN_TYPE = 0x00000400, DATE_TYPE = 0x00000800,
      DATE_TIME_TYPE = 0x00001000, DAY_TIME_DURATION_TYPE = 0x00002000, DECIMAL_TYPE = 0x00004000, DOUBLE_TYPE = 0x00008000,
      DURATION_TYPE = 0x00010000, FLOAT_TYPE = 0x00020000, G_DAY_TYPE = 0x00040000, G_MONTH_TYPE = 0x00080000,
      G_MONTH_DAY_TYPE = 0x00100000, G_YEAR_TYPE = 0x00200000, G_YEAR_MONTH_TYPE = 0x00400000, HEX_BINARY_TYPE = 0x00800000,
      NOTATION_TYPE = 0x01000000, QNAME_TYPE = 0x02000000, STRING_TYPE = 0x04000000, TIME_TYPE = 0x08000000,
      UNTYPED_ATOMIC_TYPE = 0x10000000, YEAR_MONTH_DURATION_TYPE = 0x20000000, FUNCTION_TYPE = 0x40000000, NODE_TYPE,
      NUMERIC_TYPE = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE), TIMEZONE_TYPE, TYPED_ATOMIC_TYPE, ANY_ATOMIC_TYPE = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE),
      ITEM_TYPE = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE), EMPTY_TYPE = 0
    }
     Flags that determine what item types are returned from an expression. More...
     
    enum  TypeMatchEnum { NEVER = 0, PROBABLY_NOT = 1, MAYBE = 2, ALWAYS = 3 }
     

    Public Member Functions

     StaticType ()
     Constructor for an empty type. More...
     
     StaticType (StaticTypeFlags f, unsigned int min=1, unsigned int max=1)
     
     StaticType (XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)
     Constructor for a function type. More...
     
     StaticType (XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)
     Constructor for a function type. More...
     
     StaticType (const StaticType &o)
     
    StaticTypeoperator= (const StaticType &o)
     
     ~StaticType ()
     
    void typeUnion (const StaticType &st)
     
    void typeIntersect (const StaticType &st)
     
    void typeExcept (const StaticType &st)
     
    void typeConcat (const StaticType &st)
     
    void typeNodeIntersect (const StaticType &st)
     
    StaticType operator| (const StaticType &st) const
     
    StaticTypeoperator|= (const StaticType &st)
     
    StaticType operator& (const StaticType &st) const
     
    StaticTypeoperator&= (const StaticType &st)
     
    StaticTypesubstitute (const StaticType &from, const StaticType &to)
     
    StaticTypemultiply (unsigned int min, unsigned int max)
     
    void setCardinality (unsigned int min, unsigned int max)
     
    bool containsType (const StaticType &type) const
     
    bool containsType (StaticType::StaticTypeFlags flags) const
     
    bool isType (const StaticType &type) const
     
    TypeMatch matches (const StaticType &actual) const
     
    unsigned int getMin () const
     
    unsigned int getMax () const
     
    unsigned int getMinArgs () const
     
    unsigned int getMaxArgs () const
     
    const StaticTypegetReturnType () const
     
    void typeToBuf (xercesc::XMLBuffer &buf) const
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Static Public Member Functions

    static StaticType create (const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact)
     
    static StaticType create (AnyAtomicType::AtomicObjectType primitiveType)
     

    Static Public Attributes

    static const unsigned int UNLIMITED
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    Class that represents the static type of an expression.

    Member Enumeration Documentation

    Flags that determine what item types are returned from an expression.

    Enumerator
    DOCUMENT_TYPE 
    ELEMENT_TYPE 
    ATTRIBUTE_TYPE 
    TEXT_TYPE 
    PI_TYPE 
    COMMENT_TYPE 
    NAMESPACE_TYPE 
    ANY_SIMPLE_TYPE 
    ANY_URI_TYPE 
    BASE_64_BINARY_TYPE 
    BOOLEAN_TYPE 
    DATE_TYPE 
    DATE_TIME_TYPE 
    DAY_TIME_DURATION_TYPE 
    DECIMAL_TYPE 
    DOUBLE_TYPE 
    DURATION_TYPE 
    FLOAT_TYPE 
    G_DAY_TYPE 
    G_MONTH_TYPE 
    G_MONTH_DAY_TYPE 
    G_YEAR_TYPE 
    G_YEAR_MONTH_TYPE 
    HEX_BINARY_TYPE 
    NOTATION_TYPE 
    QNAME_TYPE 
    STRING_TYPE 
    TIME_TYPE 
    UNTYPED_ATOMIC_TYPE 
    YEAR_MONTH_DURATION_TYPE 
    FUNCTION_TYPE 
    NODE_TYPE 
    NUMERIC_TYPE 
    TIMEZONE_TYPE 
    TYPED_ATOMIC_TYPE 
    ANY_ATOMIC_TYPE 
    ITEM_TYPE 
    EMPTY_TYPE 
    Enumerator
    NEVER 
    PROBABLY_NOT 
    MAYBE 
    ALWAYS 

    Constructor & Destructor Documentation

    StaticType::StaticType ( )

    Constructor for an empty type.

    StaticType::StaticType ( StaticTypeFlags  f,
    unsigned int  min = 1,
    unsigned int  max = 1 
    )
    StaticType::StaticType ( XPath2MemoryManager mm,
    unsigned int  numArgs,
    const StaticType returnType,
    unsigned int  min = 1,
    unsigned int  max = 1 
    )

    Constructor for a function type.

    StaticType::StaticType ( XPath2MemoryManager mm,
    unsigned int  minArgs,
    unsigned int  maxArgs,
    const StaticType returnType,
    unsigned int  min = 1,
    unsigned int  max = 1 
    )

    Constructor for a function type.

    StaticType::StaticType ( const StaticType o)
    StaticType::~StaticType ( )

    Member Function Documentation

    bool StaticType::containsType ( const StaticType type) const
    bool StaticType::containsType ( StaticType::StaticTypeFlags  flags) const
    static StaticType StaticType::create ( const XMLCh *  uri,
    const XMLCh *  name,
    const StaticContext context,
    bool &  isExact 
    )
    static
    static StaticType StaticType::create ( AnyAtomicType::AtomicObjectType  primitiveType)
    static
    unsigned int StaticType::getMax ( ) const
    inline
    unsigned int StaticType::getMaxArgs ( ) const
    inline
    unsigned int StaticType::getMin ( ) const
    inline
    unsigned int StaticType::getMinArgs ( ) const
    inline
    const StaticType* StaticType::getReturnType ( ) const
    inline
    bool StaticType::isType ( const StaticType type) const
    TypeMatch StaticType::matches ( const StaticType actual) const
    StaticType& StaticType::multiply ( unsigned int  min,
    unsigned int  max 
    )
    StaticType StaticType::operator& ( const StaticType st) const
    StaticType& StaticType::operator&= ( const StaticType st)
    StaticType& StaticType::operator= ( const StaticType o)
    StaticType StaticType::operator| ( const StaticType st) const
    StaticType& StaticType::operator|= ( const StaticType st)
    void StaticType::setCardinality ( unsigned int  min,
    unsigned int  max 
    )
    StaticType& StaticType::substitute ( const StaticType from,
    const StaticType to 
    )
    void StaticType::typeConcat ( const StaticType st)
    void StaticType::typeExcept ( const StaticType st)
    void StaticType::typeIntersect ( const StaticType st)
    void StaticType::typeNodeIntersect ( const StaticType st)
    void StaticType::typeToBuf ( xercesc::XMLBuffer &  buf) const
    void StaticType::typeUnion ( const StaticType st)

    Member Data Documentation

    const unsigned int StaticType::UNLIMITED
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_24.md50000644001725400016040000000004013273140074016361 00000000000000e4d4fe08bba860fffe5cfb3ee29fd613XQilla-2.3.4/docs/simple-api/dir_f2fa734b64154a4ddf51da3a7a041eb7_dep.md50000644001725400016040000000004013273140074021416 00000000000000086433e5e6f74cbfcaee42caf8052a24XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__incl.map0000644001725400016040000000010113273140075020515 00000000000000 XQilla-2.3.4/docs/simple-api/classAutoNsScopeReset.html0000644001725400016040000002035113273140074017753 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoNsScopeReset (StaticContext *context, xercesc::DOMXPathNSResolver *newResolver)
     
     ~AutoNsScopeReset ()
     

    Protected Attributes

    StaticContextcontext_
     
    const xercesc::DOMXPathNSResolver_oldNSResolver
     
    const XMLCh * _defaultElementAndTypeNS
     

    Constructor & Destructor Documentation

    AutoNsScopeReset::AutoNsScopeReset ( StaticContext context,
    xercesc::DOMXPathNSResolver newResolver 
    )
    inline
    AutoNsScopeReset::~AutoNsScopeReset ( )
    inline

    Member Data Documentation

    const XMLCh* AutoNsScopeReset::_defaultElementAndTypeNS
    protected
    const xercesc:: DOMXPathNSResolver* AutoNsScopeReset::_oldNSResolver
    protected
    StaticContext* AutoNsScopeReset::context_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_func_0x71.html0000644001725400016040000001134413273140074017323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - q -

    XQilla-2.3.4/docs/simple-api/classEventSerializer-members.html0000644001725400016040000002064513273140074021316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    EventSerializer Member List

    This is the complete list of members for EventSerializer, including all inherited members.

    addNewlines(bool add)EventSerializerinline
    addXMLDeclarations(bool value)EventSerializerinline
    atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventSerializervirtual
    attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventSerializervirtual
    commentEvent(const XMLCh *value)EventSerializervirtual
    endDocumentEvent()EventSerializervirtual
    endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventSerializervirtual
    endEvent()EventSerializervirtual
    EventSerializer(const char *encoding, const char *xmlVersion, xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)EventSerializer
    EventSerializer(xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)EventSerializer
    namespaceEvent(const XMLCh *prefix, const XMLCh *uri)EventSerializervirtual
    piEvent(const XMLCh *target, const XMLCh *value)EventSerializervirtual
    setLocationInfo(const LocationInfo *location)EventSerializerinlinevirtual
    startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)EventSerializervirtual
    startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)EventSerializervirtual
    textEvent(const XMLCh *value)EventSerializervirtual
    textEvent(const XMLCh *chars, unsigned int length)EventSerializervirtual
    useSelfClosingElement(bool value)EventSerializerinline
    ~EventHandler()EventHandlerinlinevirtual
    ~EventSerializer()EventSerializer
    XQilla-2.3.4/docs/simple-api/ftv2plastnode.png0000644001725400016040000000034513273140073016132 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/simple-api/UpdateFactory_8hpp__incl.map0000644001725400016040000000262213273140076020210 00000000000000 XQilla-2.3.4/docs/simple-api/XQException_8hpp__dep__incl.png0000644001725400016040000002006413273140076020643 00000000000000PNG  IHDR,P 4mbKGDIDATxyX3!J؂,l h)j ZA TDAz<۪| "DUmE Rk**`D`d2c1&d7f0:4@A@1HB(IT0B(((?@Lbfeed2D9;;S {Bӿ/#T0d9!$bP A"Pyyܹs%ܼysϞ=#^Ĭ]/ONN[v B555lήFZ>GDD|gឞ&&&㣯_YYyĉ8pF!"##uuu!N痝RUUuuuF@=WVSSA?~\SSŅx+11`O>`,+77X`h|lXVSS`$N^t)99ҥKtÄ<bG9r˕+W$Tx֭+W!z궶6>j*&be͛7o^1""_!|rhSS-[tرݕ+W<==TA޻wmҥd"-_g@m„ V066& DV677$Z?ϧMvQ6}~ȑׯ_ JJJ"jdX111,))'ϝ;o߾;w>}:** !%Çꢣ└ƍG!Dܹs'666$$$..NJ4*H$pF{[u^7z{{1< d֭˖-@zyyo۶mҤIĚ.]ڼy3411{.Qo```ii흗'6lwՀ]]]5k֐k:88.\!D昰UV)++Ϛ5 !DfF{ 0+WB}7|8$t;;#GX,yuIsss%FQ|{~gb@Ӄׯ_?gΜ9s(++?~<>>رc555ZZZ=ڷoߎ;B7nܹst:}˖-Oڂlmm}}}׮]n: ̙[мy󂂂Ν榠'Xŋm޼922OQQͭOzpW,FO¾2肼ʬXww-;;;xpte +2JEEeҥ(%HB`0eQJ"+P A@1HB(&/?T G 2T\$~FFQNTUl g;:;5ij'BrNcFvܺUyڵ2Օ9jR? LMM20#u؀$ ǡC>|XEx<mǎ׭WWg 0 04zHo9^^% d$eg~UU4 0 c0FIe7Hغ5-=.a+:@srTpp8mwf8gڮ]֮#jjض{ '4> \8eRI(}55쨨ӧo 8>rN鞹ܜ|ςY̥"HBsr:zfEWhݻfKњ:<(*-ݣ'2~={3JAAlbnn3ި7**ݎ P,,t69E–-g0wI8 RR|tqLCCoP::j3Dvo͜TB|@QNNO-RR_7mhgHaL?޼3/ ҒnGG{:孠ha..ЦutƬ^930OY!|y8M>$2>_uoz֬ 'NxaxP >yZ5}^G&stz#-;ہnD!M\.SW>3g"Y~ңě뺺z)]Wjj$H߽k曘W'L;1$7g2pZ܎|Yoi 7HBhmX^&'NfDu8⵴t|mܣG5))66p#sB)hi+-JM D)++=a <.{;yr 6!H~!.xr22\ E/ Jhս_<}f!!EEc<.#_Ku8}T[qq9322/<88=38*jşR=a_TW#̙ C4B4vL?ČbÑ_0#P|Y|l̘))~T/2"00 @Hީx3&%w̤mW#Қۥ8!H^x%ԔyԺѣGR4m0!c9O/Ñ/=UZZca161qÑ 檨3MMAA G@ݻV?֌Hu8ogЌ6/:yIؽ۷1,6AxZ3TTFlޜҾwr ú0/W>_p#n *(xϰwpTU]]mkk(@9;;XWAt[[[''$z-zܸq0X?'@A@1HB(I* +**9s;/Að>%S0!Ǐ𨫫~?< c۶m\uŪp8SNmll$ݳgϴ6JB--rC[[{رvvvgϞ511o=$yA}}`#kzϟg &477 HKKѣGϘ1K8p”)SuuuONNȑ#MLLN:>>0޿SԶoN=qD&iӦvʹ\npp r|zXXXWuvې 0/77xUW$''jkkw>xtt՘1c/\Ո oydmmmBcǎaɖ?cWk ޸qC$ SgBiiio|Ν;wpa2YYY^%}+//'*pBo޼niĈ,ĉt:ܜՕ!9NLL B۷Ě ,(+++**233۵k?Ê+^|YZZ:uPψZd 9sLuJ4>3'''''nW#B`˝P" MX}}_~.// u7H&ݎؐ:W\fcccB/^$4=ɚnjmul6ښ nҤI 'OO_$ KJJpY.//',--%VNKK333‚byyy666Paa!|>:E %%a&ɓjO>mv;bC",((F'i Dɳglll;PIIlѢEӦMKHH ɋxEEE_|oF9zh2ܜX~纺D[ϯBH]uJhH6]u1λ?sdUMdd QjM : "##͛D?|\ǒkhmmuvv.))"/V@аvڥK6446N+ !TVVF>IKKfEEE7{z#N Ǐ;xbeW]!>B555K###~Idd sv1IfǴwI(RRR\ ~/*%%֝;w"޿/a ,8s PTTTVVB7o(...˿/^.ZѣwN Ɉׯ_\vѱ|BlW 2 Pbb"9rΆ BBB._\__]vˉId$FIrHu^FDD|8={VWWcƪ3f $8~! qEEE2LLMM,,,E6GBg5⌌Z[[7p8k֬QWWinnO"z蜐4n877Z]A|3̠v`0LMMMMM-Z{LD;,˝5kjW!]NW An1nuB@l}hhp}-OO#RHB0Ν+QTT.qTQQiI[FF1)TTT#RHB032-HB0Ν+QR?ʫW%%/9YIUVV WRw#Gp' 6nMj55U.[6|/&P) @|jPX Q(I $!$bP A@1HB(I $!$bP A@1HB(I $!$bP A@1HB(I $!$bP A@1K2ŋ|>@#222d;vKK2!++kŊTG Nr0@x!BV.sB(I $!$J0 0 z&duuuRoE! gϞiii h c۶m}֭[,:>>L:QaaÇ@ j߇JǎoggwYp9AU%''[ZZjhh![[[رc\npp ra^~~7.\0eeee]]]"x<Ν; =<[ؓDq^{233[(vHn[Bb}.RMMX@)))[iʔ)[/^077'------jZYYyٲeVVV999FEJބH?'OL[YYuUmtFt/)pT { 0".**"ʉmmmuvv.))"{9?wuu<i]5* cǎ-^X&N!TVVfddD,7/?~Lɓ L"]]'};Y&+(ܴiʕ+?ӧoܸQfcvҥ搐PIIΝ;=zѣ3g[؏VzyBBaFȟ( -[f``(9痗߽{<,,iĉ޽stt$ˆ000_߾}?qD v!8ƒQuսvvvdT;v[۱$ RIB.;k,UUUYF]]]SSǧYܡC444ƍd2ڶnݪfqVUUUK?~4dܸqnnn6!ZIMM?~< jooq|޽ 4;;燇-Z(;;[[[[laO:'qqqqFFFZZZb {;֐2IDmuľe5{Jկ(bl}`UyacCAklysA7oJ .Be. Z'-PyF.lp&.j7rez19HG%qz׈c_k_")HJn~֘5 q5#+9T Rܸrzϴ̝ =υ{áOfwg|/$;֙ƭ]W"/< DఽB}yIEc^=[VhM$l];Kr¦* t$]M;I1!M (f<5~z mՠ>کIz;u[ie^ӳNF6B\}7+,'a -yHY,^f~?Hc{Z+4\sٷnߣFơsغD?<vkx0MlذIxdEEAMg*YE7ۙ^[uv[wG=Edn׶l'pGk+C82 dz3H BS[wŘ ~xptmţiQ歉AB1fى4uI]6% 1t.NJphz̠R1"3-"&1[:N mW0_œ 6&)ꦬ}~{m]zMP~^:eQT_*798ˍ 347E¿uSɻU_ NWeNӏ|;;d"ȉ޵ᆴ"ĴMM+bY_E]PXKНIޥoE<_(EP|m,өZߺk,kM`jzeU t36˷r}w:Χ |TܵQK_pໃYd0!a –W$$/\$ 2mLH dHV,:RZJaz*>_NT(‚^SVFU8E܈nd;8\C]=m:bDd=ߞUU5O|]Pv\]2"y[yzg{Y{Ù5;w{N3nĨwKݭ29Id y)P8ũ@mPwjl,6 hWd ump.DžtwR xBδYcxg*vo y򑕓[?V0NO난~󒯷h#Hk8kӍ^q@]ӓ,56-κUn[>]@nϜp[6# 4tn:}8T9_Y$/GK(ђM`dѺ;OB &P{qhJ+閧l2M_1ӫtlya L^y.۽[ u/]iS}N>e1qjf&iT\=kϛX-.84V5u!TE .OH4zwTr. xքHHg hT$yqzp< qrwI]I鲘s":ՖbզL69VW<;3?M3AV#ޯKUr9!qtH+6V/TS^pqgLP'5E ޺ n"2|;W"֬TwtO' +W+Z̖<&nO,I06.Z.h*INڒOegBXZ9hDSʍ A/c`A"z|ş;H#|%OOD mcƤqmu&~n πZj =_n[nN$_bE)8?6l}#bW( d-p&a"9ņ$ڛA!;{~8ޣ10`#kuN Qbh 8Mawhq(bK Z%m֍(J)@> 7% {y ohf>{p.­_%glZ\B2B #Һphݚ[<#SpA7Ht4:|gtL*($Ʃ$;b`=MM5ǾHH.HeA5}rd)T};Q5i2O00;,냔}g]79_{C>h{.II?[Kswz6u;OJa˶zvd l舊yc'rTWӰL |ʽhB T'ò]K(=Kx  L,Pʵu׈ž1ݫ;pGDxZY kf676oھH~޸ 8Up6(? K+?%ݷ/19U?B)l @=ޞkIENDB`XQilla-2.3.4/docs/simple-api/dir_78395f82a4cb2f249a968d7b21478d82_dep.map0000644001725400016040000000174513273140076021217 00000000000000 XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073021621 00000000000000d6049d25470a0c4b7841695a242afa18XQilla-2.3.4/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.md50000644001725400016040000000004013273140074024340 00000000000000202294ffdc1dc0ef73608d3aefe9b8e0XQilla-2.3.4/docs/simple-api/XMLEntityResolver_8hpp_source.html0000644001725400016040000003265013273140073021421 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLEntityResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: XMLEntityResolver.hpp 1701582 2015-09-07 09:21:15Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_XMLENTITYRESOLVER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_XMLENTITYRESOLVER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/util/XMemory.hpp>
    28 
    29 XERCES_CPP_NAMESPACE_BEGIN
    30 
    31 class InputSource;
    32 
    99 class XMLUTIL_EXPORT XMLEntityResolver
    100 {
    101 public:
    104 
    105 
    108  {
    109  }
    110 
    112 
    115 
    153  virtual InputSource* resolveEntity
    154  (
    155  XMLResourceIdentifier* resourceIdentifier
    156  ) = 0;
    157 
    159 protected:
    162  {
    163  }
    164 
    165 private :
    166  /* Unimplemented constructors and operators */
    167 
    168  /* Copy constructor */
    170 
    171  /* Assignment operator */
    172  XMLEntityResolver& operator=(const XMLEntityResolver&);
    173 
    174 };
    175 
    176 XERCES_CPP_NAMESPACE_END
    177 
    178 #endif
    Revised interface for resolving entities.
    Definition: XMLEntityResolver.hpp:99
    virtual ~XMLEntityResolver()
    Destructor.
    Definition: XMLEntityResolver.hpp:107
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    Definition: XMLResourceIdentifier.hpp:95
    XMLEntityResolver()
    Default Constructor.
    Definition: XMLEntityResolver.hpp:161
    XQilla-2.3.4/docs/simple-api/classDebugListener__inherit__graph.png0000644001725400016040000000641313273140076022327 00000000000000PNG  IHDRpI)bKGD IDATxkPWV( bD"hi:J(wl 2J:ŷCũ Kj֨0%#善\p}cHx}:ٳfK$ 0do mhbYYYZZjBbcccccE555ۖ$yimm?HvvINvma|C`6/\a3{{{-kݜO&6_VVv۷r>/lSBMJc-l䟛ghh_sq۔t>ojNkaA֭kll&???******??_xmmmRR*J$IVVV~Gk֬ٶm[CCIR+WxUV%%%={'}3kkk7nܸnݺS=a!H29aw܁mP(J ~HTTT555999W^ߌ橩9|֭[=~LZZTڵ喔|ᇹJ2//p ._|13=KKKw81?;!y plH$wލV͙36l6lp8{oN3pΝSq??IK?@(KIIIaaa}LILړL*?xz"NLv}H$۷o{yyVuvv^^^n݂===VWT:n׮]/)6xS'6dÇK{nQZZ: ?={bJ믿Yޢl}?EBBRꫯ}||V^vZ{)hx< O mhC+\x$O' âB4 Hrwz>sK,톆c11K7nϷ[Lǿr͓'uw<?Fwe%@92S_oo93wyť_ h559Zn4s8WUdPhs-3*NDtFݻv4s8>իN7qQ]m{I3^^nꊮNk폞l}m~hs`]]]PPAFyfgVoFM6|>_.ݷoܹsLRLOOgXt:=11qhh$I|>F?O,J>s_&JII/T*I|󍛛[@@@EEjA@@N`0FS3X?UUUׯ_BҥK-,4?| 477"HP466ܹs˖-FV/PwK؋LBr7oޜ0.<4>>t'#M\\@< mhC# yihhXb~W_MHH$cb sU> mhC) !IENDB`XQilla-2.3.4/docs/simple-api/classATBooleanOrDerived__inherit__graph.png0000644001725400016040000001501313273140076023177 00000000000000PNG  IHDR{\bKGDIDATx{TSG'$ !EP(GۺtWB(`]@Q<`nz[jծP7H.J7"$UyEyÛ}}}_,YxL7NWgM 55}r33372mmm_ܬ|…}}}MMMXr̔3*UsNZUUhp2:!Qss͛7߻wx~2LoHTVVT*U{_킃@ 媪/Bk׮=x 4>}Z"ڒ䆆X___?}tXJйwՊӲӹ(A=b$}||Uz4P(,'$$̝;x<__p-1 6\~:11pyJXXCC򊏏ooo?~ӧׯJJ G>bB fΜ0KL&6mÇX,޲eSGBݡupp顡ˤ AAA/...Vlkƍ ~ǎp޷osH$˖-h.J8+,]:h]   uhE l5QFQE l5QMMM_tރرc3 aicAP\2ONof,QDVXX #F\y D"3v } ?o8F.RL6ϿcDF74$eTO!Fh7oZ$ٿ=~1)A٨X<ܗJۈ FZ.+dD>cE2(˻AWEd>y"u^&S#&yyFd5Z\|W5 n~$v>a@h~mL!EEw ` 'T*7d2А|Qo&>{).ں֯ ;fFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5Q Fʕ+8laf>~>*:Կ  R͛_=ٿ?Bl#=Wnr,X{n844T,bqjj*c\IoF=<f/2v HwJ- /9!gv߸oo1nѼr9О'O޹#r"79!Ͽcbl njj2nqyyrgPLΝCvNvFL* >lJ%+{rX Fss+$MT*Y^I$ !krw[[++ ` kR*MB? ;N^BtgZZo~nѕ+g)ׄ쥸j[['O ȎYQFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE l5QFQE -**^{k L&鹾޳"`G~~fdl6;''g HRTu5QFQE ݻw/DJJJ2z'*ՑH$MfeeQUU5C%"++ U?4440̱dO4=n:P( oܸ>k,X~flhZVWWHۜN|XvalCA^hVVʕ+W^|H3gxzzZ[[߿GG{{{޽%Kbww͛Lcll JFFMRRҩS\\\t={Ҩ+Jlll6mݭe];wn,+&&fhh HlmmY,V\\D" /J.]DD@@@RRN0L_bAAJeeb+e>apݚEbTmN؆60P(%%%~ht5++K**~Ξ3g,;88T*\$^AAܹs/^$@tPsv 6of,[q4@lmmdrCC\>}:88X/T@mm-|2L>O HTVV6T=Q'O(jn߾ }pa,JY,mffNaaa <+>>^Vep0w\|}}Õwdkݑ9a???>_^^ jh Lhddo\#]]]?B޺uԩSbN$ɲeh4ڸq#߱cupp顡"Hyj߽mg̘d2?c@,oٲʊ`DDDi?hڨ~|aaas޳֌g;6&su֭[ .ӟo;66mZddB=cr+Wz Tb%2Ōl5QFQE _dGf : ;hPi/ѷ$.^l9ϼL}z`@- znH ![6mcgpп>x𸮮 {Y F >li5v qAކSJc'p7ZYH(|W},'\W/ -,C.d;pȅP"^^WHd*e*C.D,z(y FW<);Fd5zRzTq 0 krwC%%5c05zJL& qR?{s|E l5QFQC3:ydfffxxxXX)--ݻwȖiiiEp۷[ZZ~s---|/ 'N NNN˗/ !UOQ7o^TT(c==c RpF}}}B0::ӦM=zޞ #G|7zlzGEEYYYEFF:88<|o>xrySSS~~~DDDFFFӹ:1{}F݇666ڵNqG>f0gώ(//}x!NvJR4%%eׯOIIJ7oY&00'lw?pڵYYYdӦMʧYHHHIIIKK_eeTbHkזiO?>\E"=\].geemܸ1 ::X C?`Ŋz-X䊊 8-JyyyB055OJKK~6ĵk׾Ԟޮ.777xnnn{nww{ڪ)/_ oUTT.ZHNڸq ﷵXb @?6mOTZZZϜ9s˖-%%%j+pY,̙3###˧Lroai4;ŚH$OFDDx{{뜶ld bK.Yzqq֭[/_`0|||_QiiL&[nḸh_ӧO ܹ3++K$rfj+zq``bW^P(_}ʹd2T4ں_WnVWW7k,XvrrҴ͊`#c]7nHKKӴT*Uy򤷷R:88xY4S$AK,CGqss5k]]]a@09u\H$z뭷>guu:jkk;{,ŲP(~~~|P("V^R˗=y򤡡a׮]EEED*R(ax=|"hΝW^b2ʣJ쎎={`M14mqѢE'Nвk׮=v׻322RM9ZZZ`wGK Ѱ@"\\\ٳ}GnݺJZjÆ j+ޏ>ѣ$iŊQQQ:ujXX] &177233SRRZ[[l6Jb͝;S#cttt"BYrKV\e/TD"9vXgg={mۦjBфiKncc((j`6(j`z)␤WU6#bǎ 7 6(j`fd L}IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_27.png0000644001725400016040000000256313273140077016502 00000000000000PNG  IHDR%㤽bKGD(IDAThK,sM|VQ.IBB$ڈĆ + @!"Eˢ*"ĭB)[⥪RGv$Ms)/UG<3y<339.0[_~0 f,gBP(E/D,GCPPjhh$@nn\._\."Y~0 f,>aɄ}avzz a,ð~>?5d2joHBBBF"""|QTT帴TPP I_BDDDoo/ݨ4Cdrud-,,HRרnoiiD---vR|~BBI\^^111ԠetP"~^+=0lff&%%%,,n&*m#d2| qtt!Q z=Rfee8?::zss311rq fWWWw}}=== ]]]5 IIIH<dh>eE(.T*5LH9*++qCzB8==]\\Drss&gdd<<< L&p8(VU8p8vvvPδYr!~PV$Askk Bh<,jo~loo'%%91F|] !ݕJB0??ee *ʼZ3 @ѸPeEt9ONNܗO9lo~FEEjPx{{.T,:b2t:bQB:99pF#]_T:ΗS"κ͡Ő A~PV$fN$p8"}BՖcVRRh6m6@ ZV^^^OOOMMMkkkFqssBH`KeE48x{!OB &fsmmmhhhxxxCC3z#yE=saXL?`,X?``H* ]IENDB`XQilla-2.3.4/docs/simple-api/StaticContext_8hpp__incl.md50000644001725400016040000000004013273140074020130 00000000000000f9da89976510c279484f0ce79d50cbd0XQilla-2.3.4/docs/simple-api/functions_0x79.html0000644001725400016040000001120013273140074016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - y -

    XQilla-2.3.4/docs/simple-api/dir_5b066a3a11d24837d6c1438f7c0507f7_dep.png0000644001725400016040000011011213273140076021155 00000000000000PNG  IHDR;IZbKGD IDATxu\Tϝ EbT`1QDX^uA5WNQEq?|a΍<99όSyhT;@D*&b!i*&b!i*&b!i*&b!i*&b!i*&b!i*&T; |uݺu\.jG$:jllL#]X?K#Qcǎ%X8r$.HoSBWc!i*&b!i*&b߾ePVV ZB2 i^j/ d+LU+V,lf™6]n=?`̓DiS3M6ŲDF[6dQ-a+WnXr 222n=ՓTWWk?wb%ee)Sf>kܯzlɔX~I]]m߾6 !8*h >}bA;vlDhkSs/-444Ϟ;7ƍ'@_!+x5k~9s'^|]ĉBC7?xpٳwolnihh8x0P[[Cb\Ξ /// Zu UV;W9۶ik;Qۖ-7lX}}CfM$ Xl\tiҤIԺ[nTŋ~~~T;5},"M@B Ttcdd"QCb@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B ~JoGݹsj/{/RO T,Qܹs.T;3ob*@]ND8f7Q B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@B T,"M@vq~23Ӥ n@vqx<^yy^@p*V`ٛ6[\kӦUl6{1}gO[#/sr01Q?|x7`pg@:wltu3x 5o"Pѣ}~(ϟ? 4~|>=yyOD-ܺu=&&v˖!!k**cbڀs,ʕgR^!X,Ν;gzz}Zz𮗗Oyy W/L2`[0g"ɓg**[ojjx5rSdgWɓ!bs)J99_m_eeyy_~񍊺һw߻w>M$nlk\UUƍG b-[nPo b% 7*+Ənkk[[[{S^JqSCC=Njt)S|Ҋ Wbg￯4a׉<4{˜^^a/b!7/޶b۷288  }W>o޼ xВ@BAIIyW899ٳT֥ό3㏏?:;;;:::ujPBPPP3gNbbΝkllZQQAk T,X.\3o޼{R헴 !_nݺ޽{&M~IPPRRZlYFFٳg7zx&b!d`0&OSRRM_~J _0KIIk|>A\LÛ7:tСC߿}ѣG>|YCBvkht\ϻ{__n„ ۶m377+ 8SSSxqM+_z5\ z°a#;-ٷ˗ϝS6,E<:tׯ\liiTTTDST,|gp\܋KxYz1~rr'让˗da:t": ⺈7.))ĉo677߹sgCC~I P?&L3y`-y>q4![XX|EVIH 3g_~ǎOT,.TUU.XiӪU8t鬥%o_!c*T#88X k֬III pssKHH)/_}}=?|x{EVh855wFMJ>Vl4mc:KEFFtggJ X:qmmt%}XMYYWQVV9ztJ={~G2م .]ԧOv . XtϞ޽A ]tkU̙L᧲({ݱPx_n]G8qbjj_@@gJJ  T,JJJv8|8| F;BZZJRRHCb433r%>>g̘vm$'[SUU=tBCC9N""/^ѡNrz* l6{Νrrr3 -JX8~xppaN8+tlLg#G;vu?5k֘Z C$3N_:ƅϟ?$%%\=p nƌ4m֭</^Hsrr0Խ>[ӯ^پ};$v)))TC,PB࠮~>|Q-..`n4ۘ-LRRǩ@b;'11аW^d~{ìY3331B&MMM֭h&MBK.)(( >v7oެԄˆ#f̘!uuuvvv,V;$#]]]##W^Q @v۹s' cd6rVZ%UVX,1=И>}vHˋ`l޼R@ŶOMM͸q A~cqYF1Gpm۶1cVUUQn@ŶΤ#J0`F>|ߟ&sMӧOh6.XYYeeeQ@iilDDvl,+&\.wȑ[#uP (ܹsvppxUϞ=)̙3L&s„ ba0hO+&4ٳ'Nd%p`?>rH//]vQP!AرA+VPVbΝ3g6 S|>?))IQQqŊx$}vF:"@|>Yp!N?r7bm߾}ݻwx"6$**JQQqԨQҵ_X~MM$|͛gii1b%88[n>}pCC&O|||ݝJJJ ?bKKK]]]%a!NUUuxD\w^|~SS{*++† "3CCþ}b٦z)33յիWnnnT.]TWW7}haTL& XqqqBBBL>}1 ww/_$$pPAqqqݻwwtt,**ڗ>qD|mzyy$tjjjeMiͿ0bɉIMMEݻ]f56Q9#ɊZZZT",iǑ#Gt 8վիWҹsL W,ϯ_YYٿ?O8Μ9s q]q:t(AGh=ҢX>_^^ޯ_?b}t|b'+++NJ(((`2.\ Y9@=-)..655uqqڗ֭رcz}}=Aߏob[x<رc)//'hы RRR&L ໸b===bcc}x<^^/^L\>}Pl͙nnܸzjBŝOʮ[jGڧ++IGG'))j_:ɓ'D(--ۖ=\.wӦM -UG\pALeoeeellN/1cѭڵV|ٳgqrrjy߳gHh_6nd2>}J#qh0իWfffT!W^ $!\wƻwx<d^xe˖-F:u*zBr肊|䉮.]w]f HDDD@u'3߾}ٳmii)վt? ?`444dĵݯ jPeddvI#K)۷o&&&,K*Sə)%''"׷JKK:d4ݻ`xjGCQlNN*Wi-lbbBΥ[hbdd$qMw\sjFIII6fxF244,++>ˬ}d?Y,3%wwo۷۷o.Mݹs¼#ӦM֭%+((skxb}}~FgΜY~}fΜI/KJJjH }%!###z/_ܴt(6::z6lNl[YY9::RiGۻ<Ǐwww_r%Q)PlllɓgϞS vjkk/]4gj ''/_&QIWǏG9lذ?j_ҥK SN ߿SFנ_~3fXvmSSiJb򼽽mmm/^ƦJ/cƌ>U[[[A`7۷o/**:z(i-Jbƍ|5YYYW^QԌ>⅞ޢEmVUUENX7u7nR편8qB__Ȑ!T;y<޾}iNBl24Is 9sL```GiH.㋪U_XXHBsذ#GP DGGS.,+55jGK.USS۶m mIbcbb.\m6ʗU"<<|СFFFT;lll\.U997?~<##$KӦM4i~]IXsjW^0VwfϞݫW7ݐ)fǏ8uꔪ/Վ:nii Noݺŋ6$)%%%QQQ T|>ɓӧO)Z| 'G;ä́")ݼysTTԥK 74jABBB lsz* Ǐ6mZKksssU'!Ezz:_N\ޗȑ#q]c͛7w\}W֜aX*cڇFFF6o[u9wݻ%#"",,,ws3gSEEyɇfZJ[[[KKkժU-o#[n~1:[[[GGG]?S^^jGpǎG޿\e/ 0aBEEEXX嫭JN2ĉ??cǎv5~$;;k%vX3gTWWʢ "9s&^tϤIŠؤ$j?~C0J{d˿|~>}o-AKeLO:sٳg{ID;\ܧOVO{GWlEIId˿Q~d;lذl}C4h֭DL˗/߸q&m@XXՎtJKK#BkouF<ƚhg+**p1+*7o/pLb+++'O}Ýqƭ[۷oIII^^^T%Bpww߱cQ… "##%9C}z֬YRY,֏?vBWZM{?ѣ]owH˭6660"̚5KWWСCx$Icǎ2e 9-RBxxAF H&***Pd2,Yrr\ Eq8tT-nݒ5fX,RΝK@h!Cׯ_?'444Hh*N:%''GM؀$4gΜÇrp/DE-SL666*]vM|S+6((HII I#665$E>F IDATX,.L#]###___\֟U+Wo8&pkkk SSnݺ1 ,]466V *rҥC%IҥKҘCFYZZ'pss߿,]bEtm.^(Wp4\+ӈ#GԄ>nܸz*_7!Ds=z /QIݚS3h?a gܹPoU0###OOOU$y敔DGGcb333wqI;w. @z+++AŒ#=[tIpp0%bi H&AAA| Ίy#G⸙>\rn\.&#GDDD`bWX1ydԉcbbwͩ4VjG~ tY"""?1pte׮]{Ѧ$sIUUU񒓓/LJ~PQQQL-ϙ3gׯ_8quqcw޽aÆa ###%I #""V^ݫW/hhhsNUU2\.766ǏO߾}[__Q͛b!000Xl]:uxx ׯˠC' 믿 .9tP6o޼*[FL@deekjj' Pkԩ8z ϟg0VG?f0gΜŚT0uTggg ww^eTTTýSSSe<<}z{MHHݺu+nD@@pPǏߔpEEJ kkk׬YCB\=zعs[li/֭[Th2n8===Serׯr FC$} 5*//vo޼ z_s}Q3L&sͯN+** ǎxvZCCCb)t=.\hnnNhC cƌ0a¥K455{rP~={ (0}V!t+I<X؟>}JO<۸' b)ŋ?[[__{nŋ+((y#__ &tjeee;ϟ?o.j*ofʕWHbɒ%—ǮX.kcc3yd3g0 tǏIn]__?44W?N[UFFfe `kkԄbqF}}}l?h?b }߲e rcT,۷)SURy&ՎC|12}}6WSSSsݻ+Vի8p@FFFrWZ%davF3Ruttl6Վ@7-"Ӎ[|РzC 64z4rmmm%dlf!|̊uuukq`=@l̟?͍LgƏ<˨ 2dpwysx<7 njj};@- XtbmN#b!xѣdn\{ӦMAAA'OnV,)/////Dqׯ߿Ԗ/^ܻwo޽{$,Ġ!"B`Q1c_wIƎ;x`0'o^| "ǥqŖA{GbbbY{) 99Yֹ\/ ,X DVlZZFr^I1L&SJ' 򦪪F]~k;R˗ruuuEZ铬}BQQQ4Ӓ"+6((gϞD&wVQQ䍩)i;Νc2Hݺulp"i&%%%1SSS#+++L Z?~9sfuUN<9m4inڵ!!!222B =@rrr^ PYY"ﳳa˗/ (**0ݻMNhXJ^|"]n߾ݷocǎ_O<ӧ̫lii)daaᡬ|M}=rȥKНa w\L4ņM:UYYY Ǥp;;;"#GZ[[i޼ybcc)8^تNx222#F5Ǐdɒ*⋷wiiiBBB'j?yٕVRR:rՎ'o233^ױ˗/ Y~#Fؙ3gLfEEHv֍EDc;doogD p͞:u*ՎtBVVְa&O\Tƍb {G>{L@iӦttٳgKM-7o>}*0TWWQ+`bbbiiֽ{EEEa nnnn:'1˗i4ڷoߨv !mZMM F#4SmmM(((DFF Yxڵfff\O<Ԕ̝ra1|>:uv5>bĈVy7wNK/_zkע HQQĄЩϟy<},é>+##;v;q3hРʖ Sѣ}O~ڞ$iVٳL&ShrsPl̻ ت֭;*yyykkkkkk~F55QF5?)..NHH wFH^.NOO711Z>2dȝ;wnݺ2̗2FcX+vxa+::YB$y.ׯ_GkJN:j(ˣv"wqyyy̗-.\ŋI_PPψDoٳgSq7`ccDfnn.|RADcǰǃvHl>))NmdddccCcDppp=6oW@xxK߾}a066VUU%.)==];KKKUUUE---E Wl`֬Y۷o5C|훚}޸qg`}VXXjbbvUNy/"h*[TTTYY)j)jCޘu>}lXXXt֭ ~ǏG&1 f$p8+W zny#$EDRlYYzyy}%++KԊ(FFFӧO?p(t)11WԼ~;1I"'OgX7 nܸ9^'op].5{!|l}{nДnXlYJJʃ0[eJJJ/ R{FAUյ}fIMMrHlM:Ǐgn6B0XZ"bE )))XOOOSY96z˗v_Sp8/^$+ eۊ .SSSƆbNF#b`&Ҳ ɓ|-?iӧǏm_P ՒylwM ݻq,xK.?Ǐ[nPٌ)Oh+R̊g=b̘1f @;Զ/u'Oݛ@$3g\r%.sUT(MMM/_ {A'N9vń'AZkiiwAAA'N '|SYAI:X@ccce2...ǎǏы[>dٟ>}RWWoyCU dGW__/RPSSM <63wܦK.cD$h4Z^ccJJJ$_LH!rrr4335WG䨩BѴ~Ѫ Ɂ=Vb^|cǎ)((?qDpk0F}O54ǵtEE;wo׷=W^^oAN~NzzHtxzzաafڴiϞ=C;(''kMMMQ6* AvmӅ f…?~dJ|ޒ$^0Tòzpb̌ęqA?+۷?OӖNgΜqqqlXXXDDD&DGȚcǎݿbbfB*;ŰTVVF??~s1"%%%mD;Tح[,2>>~ѢEh@ALLLN۷FFF8-[W&9 ҧOFR5N.qh2A0nof̘1{5o+6o>Ç˄H8*fgg3 }}}j 1osqqѹ~FEEE(6--ŧlCCCo@ 0`@cci4i[ж\FF^. uHT^^.~kffK13&!![SSSXX ib}ݓ_AhD pqq_C QRRqtPqC0,S^E -((?* 0 NLj9cNDX!]CCC555\.777bl0`Rs>yXCCCYYYH*~ èXMMM^^^ G ȭ[wI0խVlnn.i;ib̛LbL&^|Ū }3bvvHpT,v|}}޽+nvآ"Q?SHUvc3貓9l63`T83謨<ivXXH+tSY f\]]qqqbѣ#ct9U7ێbqYt%{Eb%$$oj̘17n'jtƪ*B"~ׯ_E x8*bccc7b[͖G%%%|>_rrA$1f1)))a. OYh,,,zM9(L)b`U;EOi khhv/**%˜1c_trN|?E.p;h")0(A|h }}}333$:z œ'@CC877dD۽{w|eee333\NNN cx2&Ĺ:77WOO՗SD햅hQFwc)k7oׯΝ;ч666rrr&&&gΜ8;;$A{ju=.bϛ7of<ąG]?~]zz޽{׭[WRRR[[;qE}uÆ gϮE vYj#HISlII .҇*//mMQ1zT_,++ÇÇؕMMM<FNN.  ?,[bnn0{{{-TWW3V=( +3-%ȤyyyGFF?~ԓH TCo cufnnT"bjվ~~~Vz]-<偁>>>m C:U0mhh(++U{l6(>>>>ZKTTTZ=jmllljj߼y3AÇ_zd6_u@ۍ|>[Aׯ^洵WWWw>VUUu߾}ӦMӧ)SN:f==_xQNN ߘ.b4 KK˂Z>>>7np[~Q1`ٲeeee999 ,8|QQ/##1%%eY9 5Qnn*:::Iq6z袢"vY !u`.z }}}kccӳgO?~XkjjbP,X"vPK" F@BDZԩDO4ceeb}||sx^!T,D40,Kb---qTUUUo޼A>_TTXXO>wQOq8"FKKb񳴡0aÆ8hllM}}***DU9g[r1ɓ'\P?*".VVV C,z ۪DTG8*vȑ|>?&&kP|577~*YD۷/UWWwuuk`/##9T,DdX,HEDƢn OQFݻwLccGVb!"#R^ł QCH`,M^^^%%%1nwR +dlI#ssrrY[[޹sG|S}PW[RrvbYYY8>|8.h ===c1(t|1566Q17b瓠X&b F߿/_xQ*KKK&T x0*&M&&&999AգGqP<2V >ĄmAFq]ly<^jjj߾}}S29p+W5\.WKb|>Qu0Y u֭[7,X@VVN>]^^.jZ c-[Fe|233ݗ8ν{~*Ǐ7}۷o\ŋTr<-))5xzzx~6ikk߻wOZEEE߿meee 8pN\R$汱f͚tacc# V痗ccIVn}}}UU=<K :tu떃EVVwɻEʇ`09g׌NG@ĝA ?MOO/**0`2?bi4'aÆ͙3[[jjj fD511a28't:]SS>+/dee,;\@ŧf;-CCçO^zMIQvMUPtttc (w˗P*9## cdd};vs`\~^9%XvoCA}/_ Xggg0ci^SSСC☢vcKKKEMꟑAUKb,>Bvh'NHII9x?~x͚5˗/0aBeeBGGXEQؒ.<<<㫫C5]\\ Dzomڴ)##CvrLL :{ycw*Q<==\n ϟ?h{N+bׯuڵsp,-C AOW9;;KbQ 3#H-Ne>|8dȐNAggꔔ!3W^IuΝk׮Xbܸq"<lll>6U}lzzYۻH@UUSٲ>@ bq-]l٪UpNܿ?.._~"9C9*u:k U[;UUU^5#11QoǏ8p`br]OOo8z ڵ Q7 XXXȴJ}e'gϞuTÇvvvjjj@'YY٣G޾}3޽۷ٳq1cxqȴUx>i IOO"!аzyGXggϟ?6hРŋ K,y۷ommm_zqhWOKKkll( Ѡ%tmS~===*V|7oDk.yy˗߿omm=hР\&qSd:޻woEEEA\ pqqy]q111rrrN@eeܹsQQQ{yͽ{رcĈ*((h9h666vlbb"//O "#w4h*?8;;c[_NpB"~2ZADZlmm*Eĉ#G,--e+VSRR1bDu BO/s܇z{{ i*?Ŷ<{a~zܽBqttLLLtvvyRsᦦ&&yykk7Ğ={Z=\n]Ϟ=7Я_?YYY̡ SN=z ˜Y\qqqsGGZ-;EEEo\.7??ٳ-RSSl6U[;(Dŭw5jFbFWIIɖ-[p-޽^v0fff֭[ u UlXYY΁  kggd2[&jCS0$m '=z۷/!!Gڢ?b}}cۚ :99emɒ%***yyyx˗/?x@^^A033ǫ HFӽ; fHh1T8;;'&&b;v\t).De„ _f~~~8NvvvHH^XY7w܎{dZ[[ fx<9 jjjEQmsSS8DAAW^v.EwUUU-+\ݻ_xW+;vhIYYYnӻw,--EM \.iWlP1331Y-ZDI"K.EDD]Shx4ڰaC>d XI~I>͛7?y KEK8@W\Ma @r8_|^nfϜ9*|>?11Q}˗*<t94""BCz꺺:~KСC芄޽{[ MGU233!!},!k׮=E*srrMϟ?̋wܹvZSSSL>F͘1/&N|pN:iҤ.רDbH$.3fN52}ӧѐbI۱7oެ={6R50 geeIÇJ0iiiYYY^^^GĮ࠯/JGGc)Ǐ;lfiCSRR`F[ZZD B]ZZZ644|@83k555T500% @Y9 \pbFࢼ\8c )9MUZZ{ni'faʷMJJo`ddDPbPc60HTz7R(CCC±XpqqϟժU0 &U*`ӧO)ShjjJ8K``D:vX^^޾}H۱)))ӦM밲E8c $1rӦM7oMT@-EEECbSSS1T(֭Y`Wa0L%%%)=q℁KMMM+**DF8V0 gddH5U}Ř>}_6cرc/^j*QKbSZZ 0336lbbfШ),o#}DEEihh\Rf=DQQVgԱD$))iܹJJJ.SWW'=0 ?~Xf]TTT=WhjjJJJtuu***Ƽ}vqqy_ Rd±ڷoʬ &-[Ff nDD~o9PZZ8!!o&v%RΎNr` ؿ?L eg~fCBB! (11qzzzfff6mB[]t֖N'''a .^sBQSS#=4NƎ8rHRRҟ)~|}JKKnݺu͛7߼y3###""",,QQQ;vkSSӗ-[VVVq2:2lL"I:E|y5josߎ;Ə?lذoFIIIFFFѩ/֞kmmUF___!P(2_5mmm7jN`޳g.]۷oΜ9^^^h1p@tFPK~%&&&&&_?^3f`[wGTrssǍU)Sx}.|y=ci4 puu5oAExyy~pĖQFz ܽ{wѢE6D+RXUUU±1p@}}}\Q`b" MMM#G}ڶmB'O(++K}b%%%-ZH5'6-3C8VNNN.>EDDDEE=zo-ʃ;ɗRSSnKE ѱzzz&wU0\YYYUU?E!ѣ%mhh(FZMMMttzd2YUUUرo-Geeeyy1c$1֜PLEk;:V555kkkyp,w1@Eݻ4Q8{g2߿eeT/*:gɒ%}@@T$Z3T Ç!33U)((U׎õPyᦦ&;XZZر#< ~ ~^2nr^YYyalU𝜜km655ݼyS''zw```CCZNTTx]>|믿`޽{z:88c|G>|b-D|СC466.^saߗB׷7pL:ҥKrG (c^\\\||k"E"##{.Yb'Ç%mz{{G׌3.\d2"***bccׯ_/ 6===%%%!!o߾ +..;vX+++;;SNGGNʊDll,Yv-B/b``dQ,X`ɒ%{tI '--X1e ttt=zc^xq_UIII,kڴiNl)i> âOG(Κ5gO{$aĈ4M!Ql2a @䄄8::uҥ0Anܸ*Ikhh8vؔIz0aÆ)T%&&L&\R5ǎ}TMMM)**{U}}umm-&2D"?^8"Xpׯq&q` PWWOLLxbjj"H"w177$U b p8ٳgڵkk׮Q( XÇHxL2姟~[,^XGGÇ]~Q1J]]]hhہ3g@t]Z-]`}:I_xk׮  eӦM+??I(A˗1龇1lذkB" ի2 |/ʭ[Cbw*****qqqD hѢo#2-!!ׯBF(+++&M4i$?VPP{-2k,CCÚ[ZZtuuUUUYO:EP0#9`+L$tzkk+B$eڵ~.-Lo渾ux! e\t tTWWA믿:4Dˌ h8OR v0 t؝]t:K!c[ZZc={6*$1Ώ{ ٳ]!Hiii駟dŊ EEEt+Y<=Ba@ݻWEE7=-[B|*++]\\F6n(Le{,.d;;ޕƆ D"9::vx#$999@y{/QOOO/ ^?g޼y^8sRsO˗D&544޿^?wd/_v+! ߿? o!d2eM͜9;{H$!d]f,~+$]fc3f/^t9P(}bIe} 6DrLΝ;R3RZZZcRT*jaaaKTN"7d"M6ijjbwqq[ZYYu0-J~вexR˗/OI̻A4qD`e0/^,UN4 װ<$[[[-D/ȑ#***2~M/ /_:_T6$?Xz5Fkvp ҹz166Kslaa!&;ݻwb +@۹⒖?,--!522BQwwapqq9{l{{{UVvׯ$` x7QWW0PZZ:byE&;&dh4~z~G+Jsss߾}QǒH$tqxʕo}dICCƯ*`~7:-Eg[Xu ;;[~7oތF0kg׮]`kk{qoE@LL <Au!immrqqILL!!!l6y߾} p8ZZZhޒy/8842 ÇG3Hɞ?ٳg.Kxfg^ Aɓ'e/L:GTF8q۷?|@ϟݻ'OYf;v 0cƌ8322rڴiׯp@^eT JffqДⲇdرc'tԩ7ol۶MゃBlPX3f<СC7E0'OHI&]x۷ǏqQ䒒yqq1ҥKG9s̝;w0Qf eX[[ݻwݽ$b9FX-[\ +//L4СCNNNT*u„ )R3g\reiiiNNƍ}||:UQQ\~ŋ[ZZ0YANNΑ#G"##es[#2sL###)'7/^W@y,[Ƈ5kV>}ЀGh_kiikK eǎ455hu:3g5kX,VwX,Ŗ-[c\رc8&O2LSSS///5Ȍ]II޿ MNN&HO>$$3*FLNNFg&8ʐ 0 (@GGG41z谰7oDXXX(T <>DSkȩ,+WZ[[0 U@[lٶm5ZE~ 000zW/^pvv( gmmAȵc666O>yݻւ ::: FTTԫWN8!"!L8166vÆ )))xkb*+oo۶m۶mC [7PWX`G`~i>@+xE1 طoԩS{cB⌇Q  R__#---O{{dV eӝPYY߼y3bĈ[Txɱ* t5%%%Ϙ1c,--e]PP/aTTT|hҦ_~899ܿBRN ^|1mڴvϺulllV!2߿^bBA (cyܹs\.Z$==D"-D4 ZM! ȥK(JXXBs I$ݻwzzz~~~x Eu, 'O$HQQQx ۷BX֬Y hiiqtt2d"d>>>L&sʕZZZ2[tG`---yK"˗/{*ZD[tLttBLѳ,[At;.\`ܻwo-ߒwijj-ܹC6n܈Qx">}tuugϞEZZZN8Ap\KKfHJ^^O?{}:IP] #G4imSRR>|Oe_~1˔)S$ՅA󣤤ZYY7.77o9,ώ-++[nݺuFhjjp8W\QVV[dǒ:'''}}<ӧ)Jcc#B庹 }x=Zݻ2bUU-[-D|xv=}4Z';A[XXX[[o-]DPΜ9A3f̘aÆELT"n\>; n߾pƎ[YY.PVV:tݷoߣGh4Zġm'Ohhht}J=pVZd `Ŋ7oؔC,Ι3~I{[[[PP<222544"GHEEСC 7M6 0Ν;w_$ XVVv 6lPVV?ô~ss󌌌?;V1fGDDPQFDN  'NTQQt钴ryyyŋ h42L"$ j*رcϟ?RSLٱcgϰ},_g0 _J6h"2ykkԩSH·fh4M Ba0666...]kooZfɓ%QGsAA^2±ؿ?AjX9r䈀咔`F HIIQQQUZZ*vPTT4zh:(pp7HJJhӦMknn޻w/*:w\Ls8 B/^;SVVV1իWw4AssseܻA8ܼySCCƆAw$~vvvwkjj`.C/ǻ/<\7nXXXٳf˲kpP\tJ;BXZZbu4(( $1'`^ZPPPUU5w\www,~oÇ9s@G~?cMMMY+L޷o&]455u8h uiTtpB܆??~O2H'))I[[_~Ÿv$@! ܺg2 jw!v#m `1bF nC(~PcK** ۋL476RK.;?.CPlmm!hȐ!n9sHcǾyF2z0cALLA ޾}yh45\(//744 >󦦦555cc㤤^s~7n̞=߮d2yРAX-A޽B$viQ }q˗p8gϞ511Aki҃p0̸8'''\djYXX7Ǐ萘L&6Lů-,,xv%HCu떝B 5NJC^^/ҷo_!:$'իW ]:thYA$iҤIĦl1 G%\sRYYڻw-I''L:<]QM%!Ѹp8=DG_׏7.''f_B& x/_~֭'om!! gς3\~A&OiAx۳kkʘHe%x 533]Q^^^?'Nr l24Tl~+477372liivC~J Ǐww )((x"~C7H`0};wt+J L&8P__k׮3gΜ?^{c Df.]FYXX 8\]]CӧOxxxdffVup,Ȍ@VԖkGt钝 DT,-"5۴iSBBG?^\Op,,inn5kfQtȂ'&ow ±XEp,"A8@ K@H% P$(c  ±XEpFFFL&pi & ӧOHH.** ֭[&&&wݲeܹskkkh[.]dkkK͓;hoo2?##@~;m"\s}Q__ӧ臑ӦMζ_~}aa!`ĉo޺u!C_~]F%%#G|!!!B466e(]FF)AAL&_~[n}hee7n >5Ivv6 ΝCs*g&rxQ ţˆ7C %_}72< !~6l:<AMM ZZZ:::MMM@mlhh1k,&~޹  hVVV/^ P9:FFAT bTL@H% P$(c  ±XEp,"A8@ K@H% P$(c  ±XEp,"A8@ K@H% P$(73f@[Apl78::cc쌷 K@ XEp,"XXXIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_31.md50000644001725400016040000000004013273140074016357 00000000000000b7a6f31f83ae1442ee3e2ca17fa3ad3aXQilla-2.3.4/docs/simple-api/dir_000021_000018.html0000644001725400016040000000375313273140074015716 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    simple-api → runtime Relation

    File in include/xqilla/simple-apiIncludes file in include/xqilla/runtime
    XQQuery.hppResultImpl.hpp
    XQilla-2.3.4/docs/simple-api/classAutoDeallocate-members.html0000644001725400016040000001224713273140074021070 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoDeallocate< TYPE > Member List

    This is the complete list of members for AutoDeallocate< TYPE >, including all inherited members.

    __pad0__AutoDeallocate< TYPE >
    adopt()AutoDeallocate< TYPE >inline
    AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)AutoDeallocate< TYPE >inline
    get() const AutoDeallocate< TYPE >inline
    mmgr_(mmgr)AutoDeallocate< TYPE >inline
    operator TYPE *() const AutoDeallocate< TYPE >inline
    operator*() const AutoDeallocate< TYPE >inline
    operator->() const AutoDeallocate< TYPE >inline
    set(TYPE *p)AutoDeallocate< TYPE >inline
    swap(TYPE *p)AutoDeallocate< TYPE >inline
    ~AutoDeallocate()AutoDeallocate< TYPE >inline
    XQilla-2.3.4/docs/simple-api/ATHexBinaryOrDerived_8hpp.html0000644001725400016040000000727613273140077020416 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATHexBinaryOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    Include dependency graph for ATHexBinaryOrDerived.hpp:

    Go to the source code of this file.

    Classes

    class  ATHexBinaryOrDerived
     
    XQilla-2.3.4/docs/simple-api/classFastXDMConfiguration__inherit__graph.png0000644001725400016040000001414613273140076023573 00000000000000PNG  IHDRfbKGDIDATxyTSWoHH@Q`Xm,Q+ةXGiEvJ:NQ# ZQ(SqeAG"VADR"ԅEI-߻o޽o ! `7Z`4u3|WMMM!.T*511R,jIII?V7f48ydeeZY>ׯBFBP͂o~-h5554-++t6 P(r<==)ZHΛ6mZn]gg'+"""..ёHZ2=-++ӌ֑E7o622ڸq# 664&&$$$ɓ'׮]#vZbţG? pB||}]]͞;wnTT@zzz ơCZ[[i4ZOOݻfLKKS&$$$5ݻ&&&555DqƵ~+J"rx~RRR@:x1~aff=iYJb\.)>> ٵ3g$\WW!6mZnn.qb.g.+J%@A*._J5>22믿fffd\$(qFD"zHDRW"Wnnlb? !\dΝ;_:~CRԧOyD__h01/Ǐ?~QQ ѣ.]9slKKK!+%%TyT6A :C#"""##tǏUi«GX,| {XXXrܹ#;ZYY555痕ABaFFJ(@477BQ!Xlll\VV6~xSK( ou˳x񢙙ف.\8xWoDhѢm۶q8"n:oooVgܹ_|l✜l6͞7og}6P.@֖#ʮtJK.ussH$BHO6p+""brqEIe~C<<<l֭[,ȑ##兒,jV0gjjJ\xUV2̰^EEE؊ NvvvdWz}`0ݻGjΆ28@6+R9Npp0455]~=y}.uẺ<oPEC"6m P=ör'NjE>_{ոvٳW^`Q߯nnng *7Z`oZEE y%PдC10XL15-ch4UP z}}o~:ooMkkP%2 wwo3 ŋwM+/5sFŒ:@iEc Z~BqqmJc95BɩҠ-sr?)H.kPߝblBp[S.(4АURDTZQIF$=i׍>}zce߾}MMMW|]rY0GVVZo~-F&{O?~s7&&ӛ3gNbbX,ܿXNqcZZZ,--\\\ ! S0嫄nNR%-[LLL\.,!!8\]]ݻ3c wwwXֶqFa}}=Q 1,+44֭[{a0ΝSEBfÇBRd2(ʕ+WT=-  fDġb2qOOCȈ~GFFF-ZzTevBXUUEv`0l6711)..K<|Ee{p̙&&&diW^-8S!\.7$$doذA @vvvv2LlRӧO0a{aa!@VȒ)S\|YQUR^ !r$r\@[[\I& 7ǣWnjj<{( $ 00ã!>>Briii.;wfp===/\ڪSi.彴_ R˩TjPP$jooK|U##A wH$.]"ED"J_\!ŋD~888;v,]WW7NTҮVQ;vXii 󉠁ܼ͛yntoxYfeddACCCcc۷_X=...|>ӧښؐڃ@Θ1C.|G Ju*eҲnݺݻwŭ]8m6O8sNA >>>d|ٲe{qSF"`nnNlkio[;wcsslzžt*2LyB@\*.]M"@E"?qkڴiΝwަM,K(2s\ rYP]] !| rJmmm||<য়~" hlld[n%> ooaa6mBikkwuu}Gr"I$K;##`ܻwTVVjiiegg===6lpppѱ?;}&M4eʔdE_QQe˖5khZ|?id^^^mmmVVVW^vE o%hM y4?c7Z`j_1F"PB8̙秾WRYiޮi!#ᆱ_^׿…334eAqͭ\tմ9;:z\'Vb.(JavuMk;+dVU=lmԴ1-R)KRΜѬ1-ssoPb<H$Ҭ,tʺ.<ܽoO4(iA?{ޠM-,k B~TikS'+5G# ~b[WxhTqAs3W!mm3cGSwaM(t:MD"AoTh mϯ={b&RP|?03[PȲe35-dAe<`o~-hF 7Z`o~-hF 7Z`o~-hF 7Z`o~-hF~ߡ\B(״Qs999Ӆd-~&x񢆴aFoFn7Z`oZdʕ+~cc\E~~~ϗ#pww 7777 ~~~/_VW!p힞!TF|0WMMM5<<>>1B뇅e11wyyg}x+V?~^z544/K@@?H@bccϞ={رghG lٲ 2`RrHt钛ylŊ%===;w\|ʕ+<(%%%!!!˖-;yZr|~W_}U^^NL"hLnվl6[;䄇Ϛ5kժU svv8qbAZff\iϞ=֖L0!)));;ȑ#oV@@ܹsK+))yfRRRtty*dff&Y`ݻCCC &>|ޞ ޽{~R)Yy[[mddhN!hii^x!fh4b)G - RSSK2(J ,Yi&!cNNN!!!{cK̚lё쪪{OмyN:%b`jiiC,ƿ;Crx^.Gi)ea4M$9r)JtttYY1h4r<޽{>Cw}Gpkkkl*91۷oBCCkkkwq֭?k֬h4wwOOO_hJIIx555 K<]]݀:%%ٳgfffqqqt:qŊEEEϟ:|0h/(b999?^jww>H.n``z8@ol߾ . T^^^$))><<|əvvQvv6#o^XӾ}K)//gXnYYѣG4JofɧO&#Phllܾ}{}}P(}ÇjF??͛7wvvzzzմ(~*i!js~-hFωǼX" | 'B'BtXd7Z`oIdZϴ#IENDB`XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.png0000644001725400016040000001355313273140074021664 00000000000000PNG  IHDR%8bKGD IDATxyTSWoDJQ V "8*[Ar"VVbS.gF=::ʕ+oD"_B/^\d 9ծ^RRccco7a(66wޡv8,=-//W*+W,ӦMښ`B/cVXgmڴIc(*`=zDL&BĤMAQ@ ;w@ 1cYvrr/P(hooV&LX`AUUkvGW]PwfӧO8::RS;kSJxw-[FZ;VQQ.F*--cٳ={vƍ;vPv+++###HDȴ@Z;۴%((ĉT''':N 瓋_~%yIRU --Y ?~Tc'JRReD"$3((hd2k7n(o~P?2L.ɓ'?~޽{E"5k9zÇwUTT_͓J꣧v+V9rҥKW\ =Ϝ9=!c!;;; B4-##6111++kڴi{8xiiNLLD)}999nذɓ'9"?w666r YfT*[lD"xddŋ744TWWs8*qr\0PeD"\VVA:| 4dmݟ>}RTTVUU3g,,,$dY=>cc7ot'BPL<ŋA,]411uA(J]Aj^]+PljⷯL8!D5G#ZCC͛R'i{o4<|PT:;;I266^zuaa ȮK{{{FmiWWW*,֨G e$ bquuCd>B[[[khԲ366nnn&2E.{ԩ wc{LvR:a)C*իWwޭ_dÇG`d}!ݼy͛[l{Ft:}͚5[nmiiy~GP|'1==ӧm6@P[[gϞ`'pr|…]"DDDXYYDEEuww;WV7dmm=eʔPӳsN{{{ PXCgggxx ͎d! bbb^yDE2!==}ԩL&3.. at3бΞ={֭[7tmmgq:5|zzz222rrrN0yCddkM4)::z(F}n-:ށ>2< Mϟ?e(4c1-;//OGugǏ!Y<~ʕ+ }>8,u.EXXZEŝZw.3BH,PAAs1@!tuprG]M@e PAAJEz0eS+9RZ}gd24Aׯ߿7D^>@VRQ&&FŘ]Aǝ; 2/q">nn!$CTr\} @h4B02< (36!h4G:F#nK_ eXZZcl(d&&&r}*A,#rrrf̘ݭR&N]QQAޥfffl6{O>njj:},Fedd&&&feeM6b޽gqq̙3Y,֭[{{{Ճ;;; ˵8<ñڿ1mh4.ru۰aƍjjjHKKcXmmmgΜqttD566j$  &R RSSE"7|cbb"JA BCC%Izz:B($$D"!?~Lz.^|G8|޽z//ݻwkl#Bhٲe S8Cp=+C,;::S{a֬YVFoo۷RR"՛X,VT]]]JRC|> >rcc#Y__O:r8ꮮ",yxxhl#B R9hL {O<2**֭[Ãrpww8hhhXdܹs333);XYYUTTTWW;::78)&Ne * WlEh'ioohsF=+AAA;v -ׯ+˷n8L& IHH)))ҾL&ST6mZ|yg?JA#Ld2^J,WWWkWN1hhѧ2T*Uddd\\\NN΅ N>LHH(..noo?wݻ`0d2پ}B]];F[x1ǓH$}}}t:ln۶M ٳgV^ܽ{~ɒ%F?}t1hh(5yơC̙GĩSlvggg__'|2m4sssooo 8 "))zʔ)))),K\gggZ\\QMMˤgzzԩSLf\\L&S.H"""lll'q^蠨1GАN16t(c&M= 1u/셄 .Brss]>2< (MO<jP,V iZfa& 3luphff/Nt.ߜ}g;3`0g``u FbV]jqBZfV}21L7od5 ))I,KFs1V##n0B#\z ?`nݺ'O ]ECCǶmH-%I]]}d;_n -FL&8`[[f3555v=>>~bbBo^}KNZZflmmm/?~p8nܸA[&%%eee*Z%ժ):~8m蠟C/!BXs'b匿Eر\ؘ߃j]]T*^Z% v-!hS盆]vEEEy|D@XXj8uL&#Iŋ (,,|):JRӘ˚nBhii{.]~Փ'Or9:ڔJe~~>pjjpFGGfffn߾BX\\T*cbbx-E"`aaˑX:2P~jaYYYtt4jgR٩!&&ʕ+o}600_~ȑa_ZZ}/nl$I^^l|U9ammmtt4EQ(޼ylZyW75Zrv}`` .&au:9F^x@ݴo߾A߽{@ԣnE"чPÇ6ltePY2tk1*}ijjtzBXXXKK p޽h{mٲ%..Ҹ:R+**FMII͛!X,$I8ptrf)us/_ϟ1LT5 R馾~ͨ,Js0tk1yVBԔK;|̙gώJ$m뜜VJ7hXsWɛ..&99yƍt666j:766_G'b^*F#s nڷod2zQۙ{y XQilla Simple API Documentation SourceForge.net Logo

    items → runtime Relation

    File in include/xqilla/itemsIncludes file in include/xqilla/runtime
    FunctionRef.hppResult.hpp
    XQilla-2.3.4/docs/simple-api/classItem-members.html0000644001725400016040000001573613273140074017106 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Item Member List

    This is the complete list of members for Item, including all inherited members.

    _ref_countReferenceCountedprotected
    asString(const DynamicContext *context) const =0Itempure virtual
    decrementRefCount() const ReferenceCountedinlinevirtual
    generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Itempure virtual
    getInterface(const XMLCh *name) const =0Itempure virtual
    getRefCount() const ReferenceCountedinline
    getTypeName() const =0Itempure virtual
    getTypeURI() const =0Itempure virtual
    gXQillaItemstatic
    incrementRefCount() const ReferenceCountedinline
    isAtomicValue() const =0Itempure virtual
    isFunction() const =0Itempure virtual
    isNode() const =0Itempure virtual
    Item()Iteminlineprotected
    Ptr typedefItem
    ReferenceCounted()ReferenceCountedinline
    typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0Itempure virtual
    ~ReferenceCounted()ReferenceCountedinlinevirtual
    XQilla-2.3.4/docs/simple-api/StaticContext_8hpp_source.html0000644001725400016040000014413613273140073020641 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    StaticContext.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _STATICCONTEXT_HPP
    21 #define _STATICCONTEXT_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <time.h>
    28 #include <xercesc/util/XMemory.hpp>
    29 
    30 class DynamicContext;
    32 class FuncFactory;
    33 class DatatypeFactory;
    34 class Collation;
    35 class VariableTypeStore;
    36 class ItemFactory;
    37 class StaticType;
    38 class ModuleResolver;
    40 class MessageListener;
    41 class ExternalFunction;
    43 class XQUserFunction;
    44 class XQillaNSResolver;
    45 
    46 // Copied from ASTNode.hpp
    47 typedef std::vector<ASTNode*,XQillaAllocator<ASTNode*> > VectorOfASTNodes;
    48 typedef std::vector<XQUserFunction*, XQillaAllocator<XQUserFunction*> > UserFunctions;
    49 
    50 XERCES_CPP_NAMESPACE_BEGIN
    51 class DOMDocument;
    52 class DOMXPathNSResolver;
    53 class XMLEntityResolver;
    54 XERCES_CPP_NAMESPACE_END
    55 
    57 class XQILLA_API StaticContext : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    58 {
    59 public:
    60  typedef enum {
    62  ORDERING_UNORDERED
    63  } NodeSetOrdering;
    64 
    65  typedef enum {
    67  CONSTRUCTION_MODE_STRIP
    68  } ConstructionMode;
    69 
    70  typedef enum {
    72  FLWOR_ORDER_EMPTY_LEAST
    73  } FLWOROrderingMode;
    74 
    75  typedef enum {
    80  LOWERCASE
    81  } FTCaseOption;
    82 
    83  virtual ~StaticContext() {};
    84 
    85  virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    86  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
    87  virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    88  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
    89 
    90  virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem,
    91  size_t contextPosition,
    92  size_t contextSize,
    93  const VariableStore *variables,
    94  const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver,
    95  const XMLCh *defaultElementNS,
    96  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
    97  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
    98 
    100  virtual XQillaConfiguration *getConfiguration() const = 0;
    101 
    104  virtual XQilla::Language getLanguage() const = 0;
    105 
    107  virtual ItemFactory *getItemFactory() const = 0;
    109  virtual void setItemFactory(ItemFactory *factory) = 0;
    110 
    112  virtual const StaticType &getContextItemType() const = 0;
    114  virtual void setContextItemType(const StaticType &st) = 0;
    115 
    117  virtual bool getXPath1CompatibilityMode() const = 0;
    119  virtual void setXPath1CompatibilityMode(bool newMode) = 0;
    120 
    122  virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const = 0;
    125  virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location = 0) const = 0;
    128  virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const = 0;
    130  virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver) = 0;
    132  virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
    133 
    135  virtual const XMLCh* getDefaultElementAndTypeNS() const = 0;
    137  virtual void setDefaultElementAndTypeNS(const XMLCh* newNS) = 0;
    138 
    140  virtual const XMLCh* getDefaultFuncNS() const = 0;
    142  virtual void setDefaultFuncNS(const XMLCh* newNS) = 0;
    143 
    145  virtual DocumentCache* getDocumentCache() const = 0;
    147  virtual void setDocumentCache(DocumentCache* docCache) = 0;
    148 
    157  virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0;
    163  virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0;
    165  virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0;
    166 
    168  virtual void setModuleResolver(ModuleResolver *resolver) = 0;
    170  virtual ModuleResolver *getModuleResolver() const = 0;
    171  /* Retrieve a list of locations for the given module URI */
    172  virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const = 0;
    173 
    175  virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location = 0) = 0;
    176 
    178  virtual VariableTypeStore* getVariableTypeStore() = 0;
    179 
    181  virtual void addTemplate(XQUserFunction *tp) = 0;
    183  virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const = 0;
    185  virtual const UserFunctions &getTemplateRules() const = 0;
    186 
    188  virtual void addCustomFunction(FuncFactory *func) = 0;
    190  virtual void removeCustomFunction(FuncFactory *func) = 0;
    192  virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location = 0) const = 0;
    193 
    195  virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver) = 0;
    197  virtual ExternalFunctionResolver *getExternalFunctionResolver() const = 0;
    199  virtual void addExternalFunction(const ExternalFunction *func) = 0;
    201  virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const = 0;
    202 
    204  virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location = 0) const = 0;
    206  virtual void addCollation(Collation* collation) = 0;
    207 
    209  virtual Collation* getDefaultCollation(const LocationInfo *location = 0) const = 0;
    211  virtual void setDefaultCollation(const XMLCh* const URI) = 0;
    212 
    214  virtual const XMLCh* getBaseURI() const = 0;
    216  virtual void setBaseURI(const XMLCh* newURI) = 0;
    217 
    219  virtual NodeSetOrdering getNodeSetOrdering() const = 0;
    221  virtual void setNodeSetOrdering(NodeSetOrdering newOrder) = 0;
    222 
    224  virtual ConstructionMode getConstructionMode() const = 0;
    226  virtual void setConstructionMode(ConstructionMode newMode) = 0;
    227 
    229  virtual void setPreserveBoundarySpace(bool value) = 0;
    231  virtual bool getPreserveBoundarySpace() const = 0;
    232 
    234  virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const = 0;
    236  virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode) = 0;
    237 
    239  virtual void setInheritNamespaces(bool value) = 0;
    241  virtual bool getInheritNamespaces() const = 0;
    242 
    244  virtual void setPreserveNamespaces(bool value) = 0;
    246  virtual bool getPreserveNamespaces() const = 0;
    247 
    249  virtual void setRevalidationMode(DocumentCache::ValidationMode mode) = 0;
    251  virtual DocumentCache::ValidationMode getRevalidationMode() const = 0;
    252 
    254  virtual void setMessageListener(MessageListener *listener) = 0;
    256  virtual MessageListener *getMessageListener() const = 0;
    257 
    259  virtual void setModule(XQQuery *module) = 0;
    261  virtual XQQuery *getModule() const = 0;
    262 
    264  // XQilla context specific accessors //
    266 
    280  virtual bool getProjection() const = 0;
    297  virtual void setProjection(bool enabled) = 0;
    298 
    299  virtual bool getDoLintWarnings() const = 0;
    300  virtual void setDoLintWarnings(bool enabled) = 0;
    301 
    303  virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0) = 0;
    304 
    306  virtual XPath2MemoryManager* getMemoryManager() const = 0;
    308  virtual void setMemoryManager(XPath2MemoryManager* memMgr) = 0;
    309 
    311  virtual void setFTCase(FTCaseOption option) = 0;
    312  virtual FTCaseOption getFTCase() = 0;
    313 };
    314 
    315 #endif
    Definition: XPath2MemoryManager.hpp:45
    This is the wrapper class for the variable store, which implements the lookup and scoping of simple v...
    Definition: VariableTypeStore.hpp:34
    Expression Context is a storage for contexts.
    Definition: DocumentCache.hpp:52
    Definition: StaticContext.hpp:66
    Definition: ExternalFunction.hpp:32
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    std::vector< const XMLCh *, XQillaAllocator< const XMLCh * > > VectorOfStrings
    Definition: DocumentCache.hpp:35
    std::vector< ASTNode *, XQillaAllocator< ASTNode * > > VectorOfASTNodes
    Definition: StaticContext.hpp:44
    ValidationMode
    Definition: DocumentCache.hpp:58
    Definition: ExternalFunctionResolver.hpp:28
    Definition: StaticContext.hpp:77
    Definition: Collation.hpp:29
    std::vector< XQUserFunction *, XQillaAllocator< XQUserFunction * > > UserFunctions
    Definition: StaticContext.hpp:48
    Definition: StaticContext.hpp:78
    Definition: StaticContext.hpp:76
    virtual ~StaticContext()
    Definition: StaticContext.hpp:83
    Encapsulates a query expression.
    Definition: XQQuery.hpp:75
    Definition: ModuleResolver.hpp:27
    A class used to listen for warnings or trace information.
    Definition: MessageListener.hpp:33
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: StaticContext.hpp:61
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    A class that gives records a location in the query.
    Definition: LocationInfo.hpp:29
    Definition: XQillaConfiguration.hpp:38
    Definition: StaticContext.hpp:79
    Definition: ItemFactory.hpp:50
    Class that represents the static type of an expression.
    Definition: StaticType.hpp:33
    Definition: StaticContext.hpp:71
    Language
    Enumeration used to select a language to parse.
    Definition: XQilla.hpp:65
    XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__dep__incl.map0000644001725400016040000000046513273140075021360 00000000000000 XQilla-2.3.4/docs/simple-api/LocalFileFormatTarget_8hpp__incl.map0000644001725400016040000000053513273140075021610 00000000000000 XQilla-2.3.4/docs/simple-api/classATGMonthDayOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023343 000000000000003d51d8e45198008d682ae66c0dddedebXQilla-2.3.4/docs/simple-api/structBoolResult.html0000644001725400016040000002320713273140074017061 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <ATBooleanOrDerived.hpp>

    Public Member Functions

     BoolResult (bool b)
     
     operator bool () const
     
    bool operator== (BoolResult o) const
     
    bool operator!= (BoolResult o) const
     

    Static Public Attributes

    static const BoolResult True
     
    static const BoolResult False
     
    static const BoolResult Null
     

    Constructor & Destructor Documentation

    BoolResult::BoolResult ( bool  b)
    inline

    Member Function Documentation

    BoolResult::operator bool ( ) const
    inline
    bool BoolResult::operator!= ( BoolResult  o) const
    inline
    bool BoolResult::operator== ( BoolResult  o) const
    inline

    Member Data Documentation

    const BoolResult BoolResult::False
    static
    const BoolResult BoolResult::Null
    static
    const BoolResult BoolResult::True
    static

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/simple-api/Numeric_8hpp_source.html0000644001725400016040000011506413273140073017445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Numeric.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __NUMERIC_HPP
    21 #define __NUMERIC_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 class StaticContext;
    29 class MAPM;
    30 
    31 class XQILLA_API Numeric : public AnyAtomicType
    32 {
    33 public:
    35 
    36  /* is this type numeric? Return true */
    37  virtual bool isNumericValue() const { return true; };
    38 
    39  /* Get the name of the primitive type (basic type) of this type
    40  * (ie "decimal" for xs:decimal) */
    41  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    42 
    43  /* Get the namespace URI for this type */
    44  virtual const XMLCh* getTypeURI() const = 0;
    45 
    46  /* Get the name of this type (ie "integer" for xs:integer) */
    47  virtual const XMLCh* getTypeName() const = 0;
    48 
    49  /* returns the XMLCh* (canonical) representation of this type */
    50  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    51 
    52  /* Promote this to the given type, if possible */
    53  virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex,
    54  const DynamicContext* context) const = 0;
    55 
    56  /* returns true if the two Numeric values are equal
    57  * false otherwise */
    58  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const;
    59 
    61  virtual bool lessThan(const Numeric::Ptr &other, const DynamicContext* context) const;
    62 
    64  virtual bool greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const;
    65 
    68  virtual int compare(const Numeric::Ptr &other, const DynamicContext *context) const;
    69 
    71  virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    72 
    75  virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    76 
    78  virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    79 
    81  virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    82 
    84  virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    85 
    87  virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
    88 
    90  virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
    91 
    93  virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
    94 
    96  virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
    97 
    99  virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
    100 
    102  virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
    103 
    105  virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
    106 
    108  virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
    109 
    111  virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
    112 
    114  virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
    115 
    117  virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
    118 
    120  virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
    121 
    123  virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
    124 
    126  virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
    127 
    129  virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
    130 
    132  virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    133 
    134 
    136  virtual bool isZero() const = 0;
    137 
    139  virtual bool isPositive() const = 0;
    140 
    142  virtual bool isNegative() const = 0;
    143 
    144  /* Is this floating point value not a number? */
    145  virtual bool isNaN() const = 0;
    146 
    147  /* Is this floating point value infinite? */
    148  virtual bool isInfinite() const = 0;
    149 
    150  /* Is this floating point value infinite? */
    151  virtual bool isInteger() const;
    152 
    154 
    155  virtual const MAPM &asMAPM() const = 0;
    156  virtual double asDouble() const;
    157  virtual int asInt() const;
    158 
    159  enum State {
    160  NEG_INF = 0,
    161  NEG_NUM = 1,
    162  NUM = 2,
    163  INF = 3,
    164  NaN = 4
    165  };
    166 
    167  virtual State getState() const = 0;
    168 
    169  static const XMLCh NaN_string[];
    170  static const XMLCh NAN_string[];
    171  static const XMLCh INF_string[];
    172  static const XMLCh NegINF_string[];
    173  static const XMLCh NegZero_string[];
    174  static const XMLCh PosZero_string[];
    175 
    176  static void checkFloatLimits(Numeric::State &state, MAPM &value);
    177  static void checkDoubleLimits(Numeric::State &state, MAPM &value);
    178 
    179  static const XMLCh *asDecimalString(const MAPM &value, int significantDigits, const StaticContext* context);
    180  static const XMLCh *asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext* context);
    181 
    182 protected:
    183  virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI,
    184  const XMLCh* targetType, const DynamicContext* context) const;
    185 
    186  const XMLCh *asDecimalString(int significantDigits, const StaticContext* context) const;
    187  const XMLCh *asDoubleString(int significantDigits, const StaticContext* context) const;
    188 
    189 };
    190 
    191 #endif // __NUMERIC_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    Definition: Numeric.hpp:31
    virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    RefCountPointer< const Numeric > Ptr
    Definition: Numeric.hpp:34
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual bool isNumericValue() const
    Definition: Numeric.hpp:37
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    State
    Definition: Numeric.hpp:159
    XQilla-2.3.4/docs/simple-api/inherit_graph_0.png0000644001725400016040000000315113273140076016402 00000000000000PNG  IHDR%bKGDIDATx]HSokKZ/r2" *DK3" J".zp$BnP ]fCšOlgN<9g/*DX0sqZ)qZ)h>RCHFAǚv\s+~~͛7Ei\KK˜!-ZZZJKKE:J8JaNթTk׮EhYYիz-[mT?&z>{hѢ;v)3CyժUC>fggLLLlܸQ9uC=<%I)4ˬч ȇuww@ xJKK5( VT{}:uvbLGIJflJzTͬ:O\gtuuݻl6J^Sog|1''[?˲2)d6륅"n_r+v{$q:yyy4M#G(KS i:##ǏT!b{{ڵk333 | u!jh0%\.͛CPA\ZPeZZp;-SBFXP(dٶo.˗VuŻvzYY:7q> ###\V^/844q DSSԔNK ȉΎ80===o߾mXl6t+SBFX Nwwņ&Uhkk+Mǎۻw/?+ ":;;k_zo޼߿߿keY>_r~JQTyyyWWOʤ/bΜ9cZ}>޶mӧ9X,uuu4M䴷KI <0DDV}{Z-OH#EReH}ĉ={[Ѩdp"^zu&t]MMMܹS4MWTTP{ܹVk^^ޒ%Kn "AThrr*++ǏB[n_mkkͥiZI!"qK.S"UL t:EʐΧ,\ (i@V i@V i@V q~::i$G‡/^h4q'sF''*$V:J8JLm' q%IENDB`XQilla-2.3.4/docs/simple-api/EventGenerator_8hpp__incl.map0000644001725400016040000000132613273140075020365 00000000000000 XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.map0000644001725400016040000000046613273140074021654 00000000000000 XQilla-2.3.4/docs/simple-api/classEventSerializer__inherit__graph.map0000644001725400016040000000025013273140076022670 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000003_000002.html0000644001725400016040000001321013273140074015674 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__incl.map0000644001725400016040000000030113273140076017752 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000019_000021.html0000644001725400016040000000401713273140074015711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    xerces → simple-api Relation

    File in include/xqilla/xercesIncludes file in include/xqilla/simple-api
    XercesConfiguration.hppXQillaConfiguration.hpp
    XQilla-2.3.4/docs/simple-api/Numeric_8hpp__dep__incl.png0000644001725400016040000037641013273140075020046 00000000000000PNG  IHDR !<bKGD IDATxwxS}Ӧ+--bYB) K PA D!C) 22DFFP6iwrcx;>i}9 2 hdT26AP=l4slWpX j߅@Ơ(50ۇ*555%%eĈ.7chj{1W@h @ cdlՃ z4;裏(rׯX/''=dlѣG9RoDF5dlO?dɒT*رc .1cFg=AlmZ~~?z( 鍨(hтnٲe˖-& `0*hk{L&cLj;CL&#+`0y &ݻ׽pX,RYSIo6"" ^_\\LpAh n޼y̙cz-lcvvv֭ ʢChR JO^O~km۹"]mάP(LuVH$"FqΝU?O>}VZUPPp9sڵnNNNsΝ;w}߾}K|999Ƀ a@#(b0v μo{/9TttСѦ'駏?~y Rĉ/_aÆiӦ?~'8q?i$ꫯz7f<{lܣGW_}n_hQΝ]3Lz5p~l60`̘1̐{5Jsm(o6i;Jwz;ȑ#6V_~)))#Fi` ֤јZVkv.}Vu:%\v'4 k26-Le#4FcL܏.K*K$|/R~˖bի^/`L&c?\Ikb=T//§~*@%fFcTMQ16٦јj#R\l(;#ǖR@*dPIva2"RIrH");dmSl6G˖ F!pW2l̙Uiyf&e33OTPRp7p8b&OۻwۊCGfV-{Fdf2÷ (`2{34TZ  b3me33Jﱞ&I.IrfV] :w N+Eáw:N48&tN#Eٽf+ڔ@(>VAf-lnfF'de3@ ֬9Pu-Z?e6ڴy'::(5u.]h[ZPu7 f1 _?+}j|-NFL1ͥ4cQ ̌^جqf̠rҥ)rY2go,(mgƍU㫴jw[=4/Oc9F"\:vlQ T TեͪIP Af?ܵzqz@&s=c0A-XwذbƗ  /,Tz`2:(k|J!cdfMf:u|ffQQr$4dvs;w^f2yYi:ze}6 #Gz5nw݁3f %* d2>Irxs{ b&$,:)S=Pd-/ lȪ ylfFcR$9-m XUT1bۅeWD۳gF׮[,{6sd0ٹsT+Z&\1HD}t;v7>>:))aN| =l̤R>IrH 'K^x\ߟے3h"`0j_:uW'͚1co:{eՖ-&;'IrjEԅjef%%FzLV:ڌn 0>*u駗&HĻ~K_~I{  ƚ5 Or8oy…D޹Sf͉OD0G PX *Ž'{ 23LԙLm:ll6A/pXb.Y2:8X,<6 ?to 瓫WO?yƌAmx0 9refbͶ 2bC%*g枙H|2#4jqٲ?V:tRX,w]dСˌc#X,G=;qbBW`KʕG23㍁T26=3hLfsh3ffR$9$Ff*77f0 W ˞97gfe{=XL;D¯rw…II Cv2P-+!fHh$ɑJ~yxq8 2_~QR믗X,h:c7՞[b1Lf'`?cc2u4ٳW>>u ۓ$9\ 4RPjxl$qf2_&xݼի_|ȑG>9~=Ǿ9VXT$=#ۇ*¤Sfr7 y/+ (h萱ԄxbͶJ۝#3F@۫s<꫏KJ єl[B!k>eK~Ɨ pbFRn݉5kN g9;СYL&fgXhJkמ-<mowffjuhdfh3 xSO-ٰar~5>ɞ=N]Ɨ$amj}qo.0}RRB>]26*FcXlfPQL*$$e6s׮ks7 <8c_VNK>NN'>kF @cULV:̣Q.{Cf.55cv޳gڜpm;}Ug%'嗴-&NL3wQP4U4lh#3CQSO- [T (!!L7m:sFꑔ'4Tn!cf@V̌^ ef -m XsiʔxCLU*ƍT J߲c%%g<}v]dlUB23o33O 3puǎ˖ /#9XZG>9[Ccwo*0}RRB>]G2Zyf%wef2Yh3:3 0 RZںlf'DbcC@Wl8\vbb?rc#GxII ÇwDM Ʊ@Ž'83^ 4w/ D_3/Oݵ;wNѣ`g%'嗴ѣ{\> (Wf-l 3+.6l3T+3 0< :5_ϟ3g/?s6dw朗mta&&v6XEA cz➙i4&to33T@d#3=ҳg#Ft{ァ}{ץpl\P\lؼLrbv6m@LLzlPCZ]:ڬ6zf$9R//9[2jOgS\6piLw˖ѿ׽{MJJ4KjCjxl$*L&@V\l)S}~Ν(jι\vbb?rc'w1iRûLWU",b3me33Jo;y@ǻo?{"'?{aKϟ0<ܗ˼5FWdZut׮4BKƍ{T"!]T@Qސ2tYL& Iǩ43 rMϞϟĉ uq~?' о.ܻZgX,ݦNP4C7efjuh3FRpx̤R:6c#35+رNx>Bt MPGoZ֭g/C?liĄ(Ti4kU%3J$!INY`a@vNQ߾_.\8rnuwc .]:.Hl]Җ- E'dlVfVTs:vOFf k#Gauw>ۓEQ'NHN>v:DLwu@ cfL1ͥ34"3fڵACv m~~֬7ħWΏ?ڕ&?qzI$|143SKGi4BG/#3gh893b wΠARSiKU.+O_#MOf 4 U4b3mṲRIrH *Ξ=lҔ)}kYx=L纾VәSRήXqD=lS*]T3 P33h6۵ZSU23tG\.Ss\߾_>Cs6lØ`@e6I yqf^3 1 r:&22p͚ vo=m۹S]rر='M+]TӇ vz÷T'IIr4Iվ}x]t+IIkgPȫ6UYY?|jSNsS  @嚘mVqfVRbZd` %#ѷ}7>}%>ۄt攔+VQ*uC<8eJΝX EfZB n?srJ6o~%|E,&Ət׮+ m||l`wKjΕi4Fn6*̊ 6 BB$Y,;4vl-|i&Ѯ]XFF~=_pXg^쏗_^xމ<!_Fc2KG63J$!I623hV>g䗫*]˥nZwܕ+̟cѢƍ땔 ]Z 9~xvϩx뭷/^*GfV6yf&In*4:Zyٲ?BB~) 6VqU\DFFfgg /X,Ze"m25yS#chFv֭[]ŋf7Zjxl$*L&$*\ypZ?(*) jzgϞ.;e0FS$&&m۶/clT*t?@mT3f 6%Cl ޽ѣzML>5K )3KGUdxJ3!N @-YrH(MǏ5rQؠ9@w*R^fV6soT*L*c3623#;dS<ذ<P]4/dfMfṲR>IrHSAf(pXzPo*= !bc/^*@3rbps[33zFdf[;v_dtCؼI1 PUL ԧ~`0KW˖-[\taV^z饢^͛ F{S ٳg?Cb8>>/eM,307ohZu>}W?^|‹?NM}g7֭Kc>toIJJHL4CncbBC >`6aBJ9 IDAT0YY.Ug͚۶m N^N+:U (j˖-QQQ)))g}6/////ԩSAסC N:vZVj]T&;>_=#Νꫯ.\0o޼74pݹƕz#Z{n-Zd" <]oW{t bc ?4%٪~vq޽իW޽{Aܾ};((kiEꐱW\vի/]tu燅v!"888,,,""_~K֭j]4((޽O>߉ Bٳ7l@_QQQ'NnOtÆ 9s&}b PpñpvډG}?7:}sZ 3gn?~wd}hn[ud8-!!ݻAу 0~ѣJظqc\\\``_MEQ+Wl߾D"߿޽{ѡ #{9~wc7nx 7n;wN&_}?޽~xܹ .СCzz+Ww>k,1j(VLĈ#Z?@Rj\.w„ 6l uxII AEEEeX;X]e^VdoEDaéSO-5j`UA)))S"""x<ޠA.\YvOV^xdժUATUVEDD߿СC<APWl@3RŌ̙3l6[TRu \Cu3ؼcǎ,kƍͣJtʭgݱcGpڦM*Сel욌}&m˖-v}䔔;V$7nhӦ P(\OIRҶm[a\\\\\\3b ܷ rׯ_4i^ҥǁ2,,,ҥKtotR׮]ؚUp@n߾}{xby[Ν;Z:uv<&?S~b4V,+v8f3'EQvv:)645N'hzK()6Va;o* w-]ogϞݻw̙3z;{=MW֭[k߾=u5 p8RRR/^o̙wU? EQ+Vx'nM^%%%gΜ ̤t^"M&ӈ#fϞ|;3O>o[ jȐ!CWwQo믿v1Z|먿k^E#t촴?_ӳ(Nw:|e׮=a Nq~ϞK{\:tǯ?~YYywU5Fc4j2ԅ;OYC]mڄpf$[ E=ʕ+Cv;{zN-[t^v@0 ㅅcƌDtѣ/^|ҥ#D"qoΝ;{졟z͛h"F3yq͟?UVAL>],jr&?&Bch|An 0w6m_~DDĔ)SjS34x?pƲkgϖJݻwt|@躭ϫ3f%%%رc+h,IxNU)HM{:0v=p8,G yAH .pXtDg0>9PȽ9\.fD< bd{Lb>1[۶ 6٦MpFFjD/ȑ#/^?k֬QFvUŴi̙#˻vz>NС:dl[l0`@HHnӦMJJJ[^Ȅ .>~g3fҥ |+e0q0tЯZEdof̘1Bp޼yF2dɓ'];H$ .|ᇳgϾ}vttQfΜy cUynnג\nbbM^xWcyhZ L&j'lY,f n26N'՚,EQ0-6h(B1o^;:#I6IrD"͢9Td2$8@|>$9<[ ?)HFdÆS3r*IVի?w}ƍ#G裏hժU޽ Nz SNSNU*={믓tQ9R:6Vѫz= {֭[GO͛7۶mym؈#غu{cǮs[el8ztڔC6hxo6hZvjfifj#EQZnw a4Z- FV}>}.J%H^}ժ4VL JW;p|TʗR)_*j]#IIr jj&bk&zLD` ~d ѢVʛS,&PHt[(I$|w?+ yb1)BVkZk=T_\\8EQׯ?Hki̙c4 VTTԺu &T(Ch ڴydz}alNh>",ڼyZPA1bӡó۷w8Ij2H3k4F Y%T*4~HRHԀ5|6`h4&b0X VkF`tfd4Z ^ojK Fc,{6)b1O(DLBGnZIVѢ՚.zVkLw華Z՚Vy$N]I bTI1*@CWP]9O4 Ѯ]XFF dl ohѨզBm~F1竵Zsd3L UbV94X 0aB'o\0VY$9$) VzfAm=jMF^ڵ}kOlrl;EQ5^aƃIMjcIĨVsrJJJjV(Md2\@0 @(4uc :?tNZSqm%VFE$R&TOT*Uiә ^h,)*@2m31 PvZ*JR~X[dP)* q8,Wٿ ZlEQ?qڴ;GƬuO?>wϯZu@a=\dIXUv`BYbG㚬24T*)o` ɨڤ*Hx|MFF^~ _}-GB*66\6h2!cVX-, 4J>/OT5EEb~6)rQXT.GHrap88XBPWAAba`.3zt)S`W]v8v;ngl e2v&T( ALqfvT\B`kN>ݳg y?:~OߒJk8T}J AsGvOt\  q@@v`P.c`\uU# \)ܽ8IH<H Ĩмddڕ|Kh8A׮5oݾ}6K+ߵ+ۧFPbCQP[P-*htR_Pq_P*(H$ Hڵ 墐IpX.y5$Z PHL݅B^ݺu/:5I|ba l6ư٘6fc:L[:JJHcSaQQ\ng;ֶ:(T={&&&Va6PLIhBFc,)1p &u tj( pp"z<5Q@NܟYԨVU*=fJky%%bls7K.@+=  M̂bbO= L*XRsoVvv'lXۆVO͠~Мh4|kF׶Fc)1,n+0Pq!ڮ`"zpr֗_=СX~}'Mb:>C(tR d27o~w5֭|sSq6La,Y,v\5֪켯 *Y ]T&9/f}`\A@>N~+=FU0hX4$D" 7-ŋzjɆ kdaըQ+CC%Kw!P%{qvo?C]K}CM+*Rw%=<W^4,+6k׏J]ud0KJLu_|qűcY,fz'U\ \q+/Tzh*q\.nD4FE1pņ=oInQ*AXL\(CC%AA Qh*r!]b2͹k.>dɓ7x߅@UAⴴ` Mj/)1xhw jFIaa ]B!JKaMgѢ՚d̘1J?ywqz<qsV>N'E8*^2[ zq rkƠ = -=!HenX" ",;ƩTzRn*,(*zNd2w'8XL/7@]KM8y]HM(֮=p8[`H1`@{WT@`;J]nH[RXSh5ZHb1 4$DҺupmeAA"B$ a Z1~~{|gͪz A9琱_0 zSŻY!AӣT*}Ar:ey<6On \楬%zsXXEkŕ6MkxFci1(EQ 6hPFr\b߽j:ߵ@%~-`?| ߔ.Za6'5{ɰ0iǎ-EȀ/3SzqlyaY>tXmi):n^Zlu˭J6.h4Ftzǂt݃70nD<(Mr'4,ZRR*Nh/_R*uZ?\.;4TBgFh$,L" r8.:D"IN˖򌌼'|ߵ@E~*E`{㍁!cs8J.;[:ޟQC`h$&&ozE4|9$Yݻ/Xq$##/>>zʗb1ϝsm`0b2-Z\btd2|NJʔJ֫ΝX,^: pnv4y۝\EE::Q*bŋwV#D"^pD.+2(H* JۻB^ttpttk{U^ޭ*!!ܪЬlz63Sn] XEFFJ8ݝuNN>Ӂ jnwjssKrs5|M^&'HKBb0"B" ݻmx,8XIB'׮=[yeg_{ӧo#|ܹOJ76 f̈́ |TѶmo("##vjyfFfhJJW􅅥3mz |nh$$D" a墰0ipH.c:ZnRYS.g6;5fNࢢ4˘r)X5{VAV*"V?OAD^}WU fs wuwO:T*hR* ۷]heKyH$22P %g%'۽L&x/ܻlڲeǶXl~z<  7߼ػwm? IDAT߸QpfG#ڳo<[ACsv4ō'Nܠs1*"Ͳ@O͡RsrEEڼqbB!w-p87ntZ*v8vErŇ@lUĄ a( ΜrSssOI5o?g{v<;aBOڿm'x'qC?-'$== 6Vp08@M7̘L&s8 1.Z{ss5ŹjύZ+ h.h. KhVLZӦw!>ЪUIr22ek(ڷ/k_ Ͽc[ ch:l6G^:'G]@Z~@ YX4"BPH¤JigMZL7o>b1G6yr@{^;._{2 wkN>…̜kW:l~G+YZP-, J>/ORVQ^ҹ$'8X* )R\tq8IX$(Hb~ 4]4wUΝ~˦g8I!"fbÏ?Nү~Vb1۶ w!_(:O9Ο~:} p֔S]])Qgei]gAZ@LLB! BB.go^}K |H^T|sয়NG8v\\xTg%`p^&1;v}S m*Uv: “'oj4BE;\}IzN}%ѤRAN^Q՞q-JpǏ_":+9\HCj`߹\vRR_3qq|W;OyOQRzXLgI~ w]UfR5; {r j߽G22㣗/7ths:;nx/H}6p`{w_|興 :4UWPhEE쒴yy"\.;$DP-,[* 6o|eY٧T*}^&7$+87WEE:zXz==dDD@TT`dd`X <uNΟTS)8z^x!>*Jb1bcO;OG"!y<Ir]`=anXxk\S-Г_q8@aheKyTuwV VX[ڵ'z3t2_#;n(<7$ʕyB3 ڂM~~i.,Yvz7>KO.I ix,$D'l6GA67$;$7W[BO}^`!bI######B!ŭEf;ωrMg\Mjj?gMc˦W_|o w!yFj<۵TInѮP Ҡr%{ժw_FHJ*`JwMOv&mFw:дZfBA2CPq"**ן^^DM ʐQdAGGڤ;B'=9I y`Νǎ}?bbBz-TMl6INmj266Z uumkYYFg&[$ 23G,E"Nhh`@wPFÃÃ;>uc׷Ç F+vl$~Ɲ;+VO 6 r1aEEcrPfFР$jjZ<ը\&8fPttͺX/}hu'U}3h.#n׊C^=g̴^Qp0+8 VWZ¼&N Cnqo LAڰAk60 PHY(~L?UO?=<}f"7(YTT96  ^]\]RS\SR]RSӢVl6=440"2jT|XXPxxPx8O 0 %+KƏOz&#Czˣ^U}O[f  []]X_ɩktJhhHE_E"nxxZч"{F[PXsUOohSd$?$s ˻ 2HwNzFZRv񘑑H^Fz"-(,,>iSS~zllG+~SG۫7[^H;$=p`؍Op:FVjzFWPP<3uh4rhhPh(744(,,H,ŁAAЊYxoooEoUUUUMUU/VԴN ØLh~ttpx8_ެ|L; S796rCN :qb0!p 3Je憇-Yr㏏̈́Wxcw{mGx"HhЉ.:ӨWvڽDe'BDf5IWru պ_~ɫj0L&u6). &رgk jLky_ p'Q))Ѣ~iޭ;FzaEFzc6c߾k+,OKYI &WT4_?<>};L=-KT*rn|`յխh \mmK]jb}b17,,(,,P,  wJ_iI\QTYTQTQXXXw`.ZhHyIpttpLLD"7ӃÆNU>*!Al4Z c]!n(p96bG3j F0 1 ~y62,<2諯'$=G?=)/6.dNVtf⭪x++k<}0e@8\FJJdJJFל{/yoaaA11![llHx8\UY_=slx҃d21@(*McJriUU:๯K n|z׮l6}Μa dD?o&ҥ-wt/.2d2QF_\F}mmZZ[ۢVֶ>]Vh@neĤ=ّáOw,trl U_lBmkjZjjZh>ɋgdHED"#AT*O.тuNfg {i3f )FGvミ9`ϞCC{.ZwH$\;xpTVF^4[U*͑#W=mhQrH o5p*wq8 EDRމb۷5m/T(R~ Ⱦ} b.ށqQQ=Q9Y,ʦfQli۝XH~d$GME## +%+KƏOzNo9z!8pgFEחeD]֚kK߮^UխV0" puWD/""(" onL\ږƲյaF&yqq8AL &&D* @`;We![Ŀ^wtrlpә;xniqܘTTH-Mgq@NM}鱱;=Ʌ Kj~^xa~B!˭jh0JԴk^MMd0D"D܈^d$e""x< "+l۝*]_XuYa, e26/n9o0XE e(Lhh0\[SR]r`nmT*9<ՙ4EG|(D\]uw+.֨T={.58.2$udp @XNg^8@zI\B!C͗N96pֶTT4UV6VT4UT4VT8-()GGgfx1< 6a)2qbҊSSTZ83eJGM[nZ6xpt7 W*+-;aT*Y,zx ݼLkUkP(䠬B.RN/vO/\8Z `K/RIHQQ# ;pS6Fǫȱ]KnVUլR]8M* 7mc׮l6}Μa dDܻ;޺1wX4z{Cк7ta ]^VV6UW78f0D"[tt'xǥLNoS4EEN6mHB2(!!4*:OߝNעEWz]X4?=%˭V775iju+Z1%`$.Z46::X" Onr-Xdvjߟ6cƐ{^XXkY995e&3~z@O#h${oZNҨT4?JVÅ]/?)Rl 6V0imAT*MnnJ+¤'& O/>^H$B!hן\8墬,%Ql*Mtl,+k(/o,+khD5́aXP3&&8&F0d$&&8C` ,wߝP[G߸q /ju|Ց\.%II-pGh42Jefl۝ju+JUU5UU5?^T]l0X0 PHaaADr%?=ŮRiu۱CVbdҤR\ NH0 @za&xB[F+G}+. rlol6GEEjހM740 PHRh'!:QYٴu͛O\SSzjl\ylkk{- Zvl3l*)9RP_sA,J$!U0omtJnzDSTT_T).[^K 08ГoKH@57~ݩ+ 0\vU*]=nw:.X_nz3TW7Դ\nz;(RT%&"Ub}Je憅{Vn=;aB‚%T,>ᾛk>uJU[t0v¨jbT?&FW9уG{tbMnnmnnMvjݺVû$Aeʕ s"#y,rlju`amm沲miiCiiCI5 9$dXyLLHl *Opl6Ǿ}׮=^XX&YTtˤ$q93g AP-ëw⭪Y}[d$_*d"$ͦzHOIOAF/7v˖3Zoh7oCH/^=?xaQQ=ށΡ3 @rkjZT*myZs0:O'Hm6.OcaNu--ƉV]xcWvolCs?4f9+*+*+WPM `n11!IHl 66"Q($L$<[< T*Mnn֭g,;L((떔}qq©SS7ry(|d0?@+B{ 2D"nvozwED{ѻHTr|0>^fsTWx'Μ)mqD"!<' $y6^U.D"A" 0 ,)),))|poK?, ~; 9тa3w!EՕ4x>5խQ(H~|0#C 8t?}hu'U?mƌ!t:_YٴdK^|q‹/fgTr\ .NDKJ\ih0`FBCQc4N.p& NHO>mjuJݵGvQ+hTֺI~GRR"&LH;<墖Sc!$w,#ֱVS셅uMMF 8zttHT]&C=juȑ7.0!oByEF_PDtי?)59Q3{TlŎyUD~a/r33Ns1?__>vpÆl80<))lbc,nٲlծ]P Ê!惮ԢWukNWMMJ))ѪTZ| 9xIxa\P Kee֭g7o>rNM}ꩱf߻W^١T?^{݅e( +ե(/o,+kVizz8Al &&$.N k3>5fld5n.T~}`2i EZ/xcG;`VaaQRc`PcpVO bիjO5T>}L$aL,_>ܰ^?p.ﲡkS7**矗$%wLe9**p vgyycnnMnnRYv'CĞUn~zп\? ; .^; dcݕ IDATH rlpwP+oJEE6L&I JЅFΝu[Z'&}٬z\.mז8,_|HOIOlA@C}rS(@ox)8߽(AUnf-?6'&7ĉ"M(䠕p)),5_7 mκ\n\/ˌF.*ܚZZ\)*G_U*@kݗIX,t!?_ivg=6'FŁ=ZM/EX17vwT4*ks:]h_d$_*d"Top1Th-(Peժk)tIZDOG۝V6kVz|X|\j6۪E[6%ȱ@Gz}{QQZKAA]sG-==G5sG[w2;[+x){@k?dz!LlTD{tͧm6@D28!A,TjbѼSnmm˗/]rj͚cPɔԨ( l9^~~!2H$򾦥12 ?ĢRi1 pRafL uHwh{oWT4q  ,j@CC=[NWuu3]XXwX!gF&BQ.!!4*2ƍ'Gj:Bͭٺpɑ"bhf_Ga0Ek)8w\|uaa]AA]aa}MMf0RH.|Ow>y˖37v:]>Ot}|mIK k!IDåVyŚ~RVt(DjKz^ rLI2%0YXXmZuULOIK())cm[d{ xsrqQQ=QZZLRGpI Kaa]AA}AHc2YI$bT9sbLɇvnqtߞ8rjx8oɒ{E+*_|qk^W'.Z4LlFgZ%xG4i$:?E&QQh ၲnw_nql6]" J2H*)B!BR("<  /W]TuRg4Ԕ!C$N<,N'ށbq~űcǎw,=H$eddQ ?{b %ۍw НZ]nn-[[Zul6ҤRBnwwoc|rĉIPvot?;tB8 qڴixGuQXSXXf0,$Pr8!!T.V4.U?_q|Eyy#HIh3}t 4ZVvd~GRZ)H)2ٲ;wށ>h7tZnnMAAd0L((S$'[vT]{Lw_<8w^Y^hѸp8f͚ D  pcc<[t:sqFkrrjo?=R(T#," r1 [rrrb׮V#$P U2ք;wΞ=.))4~}ZݚϯzuSpC 5+-11̲ʦ볷m;K&gJ_hlo>p wݻ:4 uCBrskT* -99/8zF4#Ca*(P+W+WFB$钑#!J.,hi1n.~rWT4jjխ&Da&qp,/oDIܚZN$"<34$)xG kMMƬsg77'NLZbvjjT/`:>ׯ~:owDL$<[Z}AA]A:?_ڸb0rUW(C>sKdnn͎ʕ+#aq,~.!Aa)hژLM;| @f~ϯ-/ot\.#))lਿ}a}l#+/o֭ܰgT̙>;N,0 ~kmm'̜?x/ooڲcǎ9sܸ˗ 6**j+W HJKKdzw:T^^.}^{Lx]Nغ>@())x 9B!g89bk^U_ZWP޻hPHRHP(“ +K<%%ѷMW?_q  =lX᱑||K3"Iuumz};w,0L"6 rl^`4Z hZnnmIvs T8f&(PknS%֝e͛ ޱcGdddVVg#cVQQ1b0>aӧ%TT_|Ejjj^^^`]F[^^ԄaX``믿~g0 BO?뭷>|abNINHNljugjtdp 3gaә/\pR,߻ >t;\aXQQp1F8xGȱlϯɩAnPMNxAII}6l}.Y{q&-M &LHk@UUrr_{gH0 :RR)aF D"!!!!hKXXرcǎw߽\.Wss3z'{pGT*}aÆ v|>w|Ϟ{p7B!73i+r[PKD"r80)7.1~|*adRR81>`}00vN@Qrl>BщD8P vgqf׮oGOB¿Nr_kjZƎ^=̙|~Xdݗ 6ojl4\kj;KLJ ?z}^M۽ib:sύa;v3f̄ ryVV֝N -Z?cVZZzG*>C[[?W_}bۺukBBО[lyg2̥Knٲëw ={6>>^t8h4Jd2͝;f/_ð{9sfO>… DFIIIpxJJ{ލ: wEEŅ ^`pv3gkrJo1xvaÆ]|'/\|ӧOꩧ5k8pe|>޼y7nD?;VK֭g5 nwbr-?8ʭ97&/67vժޫ LJ R}B2D2d&8҆+U+VfY#Fġm6ouQ믿/_uqaa}ϝ?6\.JcǹevM**U}w],/op\x wtׯ}>2p cǎ#88س%++kwt$1 R*'4NjNsڸZ8440 DW\0a\2x`We𕕕bp#޽;11q/_6{B4Ŀvw ܹ?JDptjr5tͦHw _(ED""x''oQ/7B,߶zJzzLzdР`wD"&%'%?8O'UKlQQ iFth)^ׄt1@:b/ƋNg>Bѹ\n96< ϟP*+JJn[(䤧ǼD"<%%ǫp-i-[N_m6~8o!n}X+.<ږիΘ10NgVV֪U.܀Bf07B!BkBShkl:HD6v}Q? KJeW׬gtIZD3Q6d=[%%۶%GƎFy7>`b(;**N00 b !džf âxWCrskʊ *m,-!!4#C+ ~݉}.2,?3x<&Aa?`RRC{m0o<s]jՕ+W^dbNgii)~ 1 ۴iӌ3xjlT*w0`0l ÌF' (ٳ_|d2_m~ǿoVXX3n&T'dRkwvd"y-cgz @SH$E0H$t k=&F&D"Nv:>2(d21 3,uhڵ?L(1iixdƏO?>ðөS%N~Շ8ѣcǎ}(Q+ftOx?u_~ 2D"naaݸq7]zGUUIȐc:Wj^lrzdpiqG[w2;[5`@؇N93ͳ4w _~dř/t?;v?^ xfeeu=d1bz1z/QYpp|+|GV+WΛ7d.[lΜ9'NTգF{篾jiiiT*uY<ŋ˗/_tiyyD"3g/Lnfc,^xРAD"q~i]]]HRgΜm۶3fx6x8Flj}}Bضm۰a0 {'ǎPv޼y&L0LsYl*ac#4ZɓuN2p8ؓ@ +ZhESh4 IPlv\*vcf_;2%?Stz};J9.Zb[,v0Em4^h65par k;Xv;adKk 24 D `h;JB+ *B®/R,.D)C*{l6===&==0 **Q+˗l;\FjjAQ))CD{&)?aXUUsv*;[;{F+*&9`h\ }u6ʠ7,X 33l6?/ruu/1\\\WTYϋ0 #|R@_V;W~BŋUu+$ᙿ hݻ7h?>qRs.пrސ!^xE5k֬^x-ЍJKK;\wcbZTv[t:N'jV8qE= ng'xVY,v~}$oOqNy3U%sskQ(~Z-qJju=[vxѱcE*& :bDq ݗ|a;w={6ܯe50);[uЫw}--p֭'ށ?9z\P*+(RRRС1>{_jjTDUW7o|f˖3GS7lX'ah޾-[̘1g\k,S7 hT PPXfnw Vfvnw61vSow:ZpL6D1m6h8.Ct:ͦ3Ԁ*Echt:ɤXj@,Nrh~l{yEeT IDATv9Yņahu8\n[o0 }, 2-N`\.dA%:ѳmm.\} >Bw(,J%3JpSN/߾PUtB;!r<|-Nnj#[FEGXߞ( aпd/o*+G; |gϖALI4IwhԊwm:^=Pr7H[91#;:6]ϟ?ܗ ,7o?>1+_kV>ܖwޙBan{,M Fţܾ8o>k:u뙓'U. "1nٹ\n4,&bb4Z h1z}{c*NCgl6ŢXt' @Y,Mg\nIgil6ɤCuA\F,|$;w:kzOmX:3ߘ]F\F``@ۡ%QQ30 kh0\ᚕ۝>;5*p G77)8rO 4IC)hࢢzȱᨲ ð(f˫=sٲ+ 555ꡇ$GXPl9y.{O=5ƗM{v~۰g"'ON~dLwpEExG*+(RXXށ rl(O^̙s Kp0kذؗ_~7.@oR*ׯ>x07,,&<'nbOΘ1Of2_K$47cZK9p ʐ!#)a:ŋ3Gq8w e<8]oG9RSb2Y `A3xrN(Rqt-i i p#d f6Ol6׷FRU|=l5-7PH(It6bHy@e-} QFct s׮=9С#GƏ ۨTqq}4…sn=r寑S$#1LgEkŚ`ћ q:] WdgNTtf>22IIPv篿}KU{>>砨g7յ]Cƻz:ֲw:hlG\w9݉Rqmmz};3ZZXX]nwzN@FPеfr̠ ڈSк8lkk.q>ҞjuFpTһ-"*YiDC'kH$a=DaUU٪lswXAFfdH}$HHOIOyݩ/V89ןHBz(n_BlLVp;5$rlfy矿j[vT~}%߿xh۽~}OK޶i |y 6Vju[iB!vL&G| 1|55-L&D= ɤqL&24ԿG((YlQ黩ɸdɶ'/|(p ju[CMi4:Wk󔏣bqP Jeq?a$J%ϝ;  pt[7 O&cv_FİN~NH{{aD"DbHL"M"1I$0wK˞u#K&Y=>6mQ5Ow,xv֟<:}_mabGJ>rI C,?r *s+N,^xJiiNXVG5]C^nu8-1ܹ 9覶Pȉ Ю],ry]G á/X0'xjeggk4|G[_dFF \mmVjkiϱ$H$8.KI ?=cu{V&&͜$iҤIt|~l[[MƖSkjjm5= b1<gx̠ &X!!컫:۝6.{{Z[e--&@ m1Y>]t{D^ߎnI%os.T}aK#f2i̠X,:7я}ynm7SBBH$ȸǓLj閐zUouwȱгNTxjuuB } 4.7w8rQ8 fvHg+c;\>q񢜜KI7N>f,99ߴNg>tN*83f 7oXtt0!Ϝ:U2k H$soQvo9w\SgD&!Fe ".pkU܊ZU{ NQA\%2d/F3mCk7 yHy{ɽy9d$:z5@P968}VOJ*kk+qƒQ֭F^YUn*:MXX`k*m:;{ML~շlqsu5A죢L$]] v5uSlyo96AAC͛ 2 mrMߒ8-2(R_߆ÑHcc@TUeqn43L%(d2CŐd$uN`ttigyĵ/^ݹ󱺺Lsbٳ-(w_/{{""B+W*:`+ρG\@P96~HE96=XYYjD={{ cXqqE7nDD(._>y"11d:+##7ntپ-ݨ ꍋ+ȋ̫mUR2XKKԩw}3EDxmߗLkC$RۗפsZ938K8vlO?0M#fjcc;hh4675Q('KIVVVTTVFX0 P=&jssGCJ&S䎦EDI#meeiee),VFQQREEhTj{;)h~LǏEAA e->~hOH(AnDEKo (7ˈck{zV7AnkUU͒vv8{{C}}eK *(ݸeRׯ˸tiI#蚾9: 60**S!Ʉ J7;7)$$hdz2]]aXVU)KPPycy܀ X)S-nZSRw )"ڨu()I*)I*+K܆NgfjCC{SS;|d؟b⣐w$""7&0!k <275Qo܈^YV=&DT//[ح#ۻtv ,[6Y趮Z<022].BXXPTt͛ak6#\[[g}+}c?me'EEUTdɉ[~ Le_UTKJЂmmDb^TT~KK"1qpwʪ Jx,MXX|r{6Xq3<<7PTLK"((СЂ3~9PTTeh>ȱ7VN$feU4`/ү_..n<ס5n(G^t:gçM3;uj00ԺzSSs߼ɪkUPtv6"F?RqVl``,Ƙ? S-y "|}B(,,sڻutQD+0O`gɉ>)n9H~P'KwMCCxյHRWZWZ_OmE&&6J]]VEEF]]NCCNCC^]]V]]N]]LVNN5?x,Vz P_̸q#LsJ3- a@?,dO[[W 93 DjmkkkD3jܿ $R[m-oijfObduR@2Blj.`_YZ긹={։ǫ{xzxՇ'{⃂S$ IDATԞY,|}pw|`oS`0W<}ᏊX[Zn&W)޾^V~RRox7 FS՛7Yod6*+KLl[~08M\\tvʊ`.˅h߫~pX``ܹ掏;/ʕ/^kjʯXad(5_?jLvVYY f6L,$KA"Q22 b@7xV]RS[22MDD)wCׯ{8!>!54MOo/=44ʕuVVSA&d[<|,oMHHPHHd 77۾(+-!!!@FG_W·WL&+5H{SyyV.mddij=K$:^8vݚ'|f0G;+( MK+sw7dRo5Ex!!;{vpު暚V$V]݌dڐZZ H y)/) E1jk[՜ȃF +zQ(-m|&+,,3;Z^^bTMd06Ç3g Dtvʎ-R_faqK tюǼxe˃tdL~}ƒ%vh  Ctp*f070 A}t7bBB$/]AVR=;v< ܴuvު{ 'ۏA xSS 罘LVddeeUvCoߎ 33D;n4J"Q {,s}d)*&?o&{ yWK8f1JzxTW{Z.--F xzwr2e붶o݊k0]~НCq/G;_r"*j'LOriibcw rlotyS@3mmN50UUE;40 |ի23+-,Wv6'֯^}L^pNgy9EE$YYq{{=mPFc?O,/orq1پ} %׋IonSPD;nZe%\Y\YIjik`0X4R))*Uˀ_++[IICiiciicMM PW3Fi%==e䁆< W>z)3RVVtl [[kI3߼ɺr}ff޺u2fcǼ}|h }_ϟ_8sڱK"c22m4"1788ÇςcCfxB Jy3DLfz=>Mٵ+xx̀%X,7ojn1Py0) Lzyo6f;vzxRx` z}}[| Tjkp8==edAA}aa=]~T UUxI"g[Ξm1D xz ɜ7o0sq8E;sB IICׇal ^eVTq8OqsLQD;.rc2Yy/Fi\i?k%7}BCk/d$Xdxu@j O碊 1AAիFyy޽vhB{7ƍ֮9s&l0_[kbM11s/p:.]q#:#H ȱVSm'995jjSX2`t9w?~|ڇV__{{A -CON.)99ɓ \]MYJ_{tuu+`Ɨty-on@;H i2YVX\Ljhh`0""BJc 7OډuHK!Cݐ}K.N}.[LLm_~^qq6Cթok낆PYI9RX…Wed._^v \rlԗ/3?OOOPP45Rhe ]+'f\ÇyS=8 wps!{μڵN|_#=<`_%9ZQHa)*.&uvb0q$EN(򦾵nd?Rq833 33M,8|CCCiO(z{[y{[q|`0uJ++;NlSݻHX,#훱h-ڱ-d޽3.al96E f||qPP»wBB~ NNF0)#k}qIH[C$yբVV~4355FM$':W\\ƍ.&?̘q~j]~B;7$R[a! d,LR-Ğv؞[[][SVdxc5xc |QPPI2L4`b[Sp aqqEmC;yn8ÇgJJ*5b\o#a[A pGkjZ4/5˂` FLCv44ki)88!*Ù3}Teec|&S7o~pROh|J)-m(-m,.n(.n()i(-m`0Xv>mcVYYUYYYYU995]]HTPeXu99~-I1"#O@^^j"]]/˲0Y4{%<ܹԸ'㊊O p>MV|.chjo I$9-BCCnMקKX9iw7-%,<<ݻ욚yyI \]MJK O _Aڽ7o&)>> onE7 u"3 &$HK("Y7d>t\%7&'&7&#DjT,,--Ǐ20 y[/]:IGG(,t)2$$]]]nFk>k F),0nܾ \VvD;>(@Bwo܈+U\`6_r4.4‡5 ![Z:⊐Z[[=@;:rϞJ1'HI^n*'ihşލ߽;ڵe?4X|º^!!A]]E5<^X Wo ۻ?}LKȨȨhll42Rҝ8QVOI7Znߎ{4d͞mb*Dz͛֬qZžҐ`dzEW JI`̛wYMMhoۻǎ{Y,Ў@ 2QZ'M2upu5bx޽s瓡YPPSP`͵S~P~~Q!!jjrKȡcǓWpۛbwC݊H,KZz*[LLcꪪ32*+RRʲt>T*Ӕ۷㊋ ׮uA2zvܵk""B˗Of9p $)mho^ܰ^V!%ȱʪy36$$C\|…6KiiA;{x:Wvv5w875<<<۬VIgg#hą7))e.EFD]<2;Fcx{ׯrw"^aaAuu9v &uv''&'%%ұXik18++]CC\gd|doo+Nknu+h!!+&Z(--Ƒ#A))e^^pj;=zgcϛ6m_[FFc\ zz˖MZF\j"PƗ`ڗڗ.q?de%9&H̍.cj++],f"[YnÏDxx?^~`0KKjsskjj0:flfjzz7;:%,&09p8,w^^>44CVV|R+de9}ڵ7c}}|}aG*ӦML  ( ߸e:gcFc@1BB/_~s:(G9`ڗۻwxUu?`yYYU&M2  ˥; ٳᙙ'2G;+5l[ݶlqC;ÄB.+>;&""dlfeA Q_XVՋ;:jjʣ`1'0K֬qVV̐9*ΝK Ʋe7mr6%j]]OSF;k`S s901q/~RpȱBtݻFls3u,5k96o еH掏\ K[[憷lwx1dV `nތݷ۾&ht:!+ ꆤ$$DML4 %%ɥJNN&HJrѶWS( l0EMM#GF2m/F \is7(*"9: Kfgwd ۶XnCshucO&9ou9u@@9*o}ne3ii""Bcpܾy+W76{y?e۶God{ zrʪC R9&0'ZPPRh8M.yC"[Ξ i2߲ōS ٙ6!!+&^$%6 wﶙi Z⦈իOtv~ŋmюKA |7r{F^ϓr40p0tۻm{]m77.H̍ȫoSTtr2"NNF<ц4 t)JYpYׯ jMRRRn5HS?ԴKLdjn 5^4#88f//͛9300haa!PSUUfeU3,uu t|7٣F$浵u"==YY颸d~ر7Yo;Cƣ\ATTdZ+` Jo" iرh󚚨/]Z2cxc^c?֭899[||"LP[J IDAT ]O?y3v }fgSS>w#nnx=8. *$$]UUv*ŋmV\}PݻL1F;ITaaAu++]!ʥE`$ә))ee}U]ݢ!a:u:}9mNkj.\hy3AQQ#G&W|y3VBbԚ5N t'OΛ;wڱ|tzrl_uv޺{buΰm=(GkTSӲzӧO>drrcc sSSEEt )z K"_dhn3+x߽֭yv"ڱm$R[rrYrrYVVUff%b)nct o߾.,WP02C%M}Kt:cFU8C2m1rr9/Yb60˛vSS ca)GGý{=M~NOOh Fcܻ_t:sZU (G @CC&*:;{?~,B&FH 9''#{{$MN."sMM56nt>}Liݴ3/h gtvT#%n%‚c([[ZY隙ipXC/3rrjXϜina=:*/WPܳӓcMMԫW?ܸ vҥvFA $}}2zm%% <{\Ҙ¿..n< ?CdĥK%% ..&[kస… ڵNhuufeU76KHNccgk7~dP((*ٳ&N{83&mMJ*>}`x$v^aTZ8y;LLЎEE/^|-/T ZGG֭͛sF;n96`0ѣq4ieű=> ~C!1dݺ"Oϯ}>JTV~'ORΟ'64P7mr50*QGwoڱA**ɥ))e11daaAu{{ĉzң𛬬/{{NNFsN0}^44_GkjZ\p^<+i+d788al 9k<ŦǠ }Cii$ЎAmc2Y%>6z޽fYng- (0tmtƟ~=ZBbt{{.6LMM8ycGtXmLPW6[X,ֺubb ޽ۦv8F"-9,609ɷYYZ[:8x7*=^}z89)TYYjEl튷~RKzzǏXZjs-.=JRS۸eQ ZWדqqdbgi?< @xˉOv <rl#Z~~gfV,[6yΩRRg pk߯360**?$$.++>}8`(*?dqׯ0y&nJ&_C hihhOJ*IN.KI)ήSֵMlTT=Jz0Lpq1Yl7۳9s,wuUUŋ%*m2{%dUxzKM7J2sEccգGOݻmffh 6But:.00f8cM C׾KEH%sK X߶UW\ џjAVUqҥh=)41$!)*H-h4۷w~/Q\v"Kz,Сgyys%% gélO`0$sX^7ݻBB6OZvC%4@xFmQ(]6}Bo|?}ӧqgΜa CR]vMMĤIbϟJ #CBUTdVvZvhнii]Y)7 57QBTjOFFELLarriff%V㜝%%a$!w0%KVvbemmG?qƌǏ{s|[aa3^e`3f6]"#,^\|\\|{]޽` PQW'QW'aaрv Á$R/9ӂSocYiOurɓTT'!!vx?*11q C9:iуéxTߟ?|b^ɩvËO+@j0\0LԞǘzQQak18C<^SAy0) Lzyqq~~.\Xdg_i7ZDDg|OVݮ:= 'Ơ7\ ҉oSS?:F-[Խ{=/B|:~50t`b05Db.]=zQV{Ӧ/$'GcǪZ \ `$kj&$FFյ"}qNNFrhGx Ip!d7ss!=#O_\~߾C$_s^NKli0D?OۺaEũa8"cWWĉ,YbcTp$#BOᰛ7c wik+iHC9wڪU0t"$։ھѰﮨ? hk+0X iiVVwxQ==c0 rllallC;w>a7tt4q`DDf϶|ӥK?t}oM70._^joۿ?$%ƍki)Ǭ5k^pHؕ+׮u^ۺibb?wr{%c kީnpa9 911#c=h8ܹ 7tܘ„b cnqé{&<~M@@Ԝ9'N='?jR8O[[A[vb[:^N$>x( ǫp66z( 3fGFkOܾc6/\hck{{ڴ3+t9~ ?nԑ#aW;-Zd+-=|wĀGhk>,Zd(v,rl|Ӕݻ mQD;0zz*CCTTdXih 7tu0t ՛ZmVmmGGo[NVVթS>  sK 8{6ڵe_k1 LEGx)--6i)ƚhG xןyYڊ~~RRCUzܹ'N̛g=gQS=rd+Ϟٿ.YE~zFSH$Nhc`owE܉W ]JrLL!]@3Ǝ՘5˒@0VlBBɺuw$%GyXu H?cƌ-$̽1LqqCLLAttawXYB  |``ŋO$ohPm$$DoX~_۶=ɩ9pk'c{mQիn܈qq1ٴeXkmt:ҥ9s&hW3)'TllkcP'Yticc㐞۫ v…:::VVV/^ؾA@@('+Z吒 `c0ɥG8ccs s촴m۳gofX>>:`#O:tě%%pa$ɣG&88?CPb;?W4g%#˖ J ЎpѣE6lpILc}@Բ8/. _fWWP!))됔[+3f\8i ^)+ˍ9?C@@رc]RffW>UѱcǎqIIIYYYt:˧b#pٳg~~h{d%JJRsx]]]QXXxy lYY١>쯿'dsssOOǏKII}v?KiiuSSw6W ]맹""17< sw횶~.R|Cuuի>ְ]x Wto#/=rdpTRRRQQ`0NNNNNNgϞ=xPWQQ/߿ƍן:urlL&L&ol{{е #"rsEDlnjt:ŋM:Cp(/o w/^YYj-|LLLLLL m!r̓uJGGס7& 22'jjʻuwkc7Q|` {wן~mE6߮giŦy.{{vrapPXX0߼KY+fDWC)))EFF"5>v[n{s/=xX[ El+L.Xp+W86k׾~\:J@s}cccyy'N Oxꕹ*o͛7;v=]]]ӧN߿_KKKIIiҥ˟={y߿?00y?+**jhh/_磂Fر*++رF|R]]<|utt{U?rrrGe#~~~===_"~CRYI>rՄ Oxd`%sw|baqի._^6lpDę3/*o[nn}{yq$F=@}łx}o.9p3qQ'OxWy.f͝OS(nc܅@GE:g΄ݻ/,) ~J׬YޙJL,2@Fc OKpcG9::=~[/W-۷oɚĎ;;H--~XmTߗ߾}59smې!G ɓ8NJJjҤIIII_֬vbV>~~;#<> JJJ,ŊVPPh,+((3L%smii~:! eԨQ+V `0 3,X@PZ4 rU TTTO<㳲'N/X,$o/Zť$++kرjl ?>gΜʬ, ]vXK.[&%%X~>}:ByYoͭ011Q___&96+WPЎM/]z][uOzS%|zzh;vỵgW;~}W,~@0Lk"9o]r| .MW5뢆6m_-zGv\ddTyP\ԴLݑ]V:II%W6n@9WLիWY,֞={x|'|`233h}-WWYmllw?bXSNBmۨ/i!K_̙3ϟ?}ڗ?Xn^ >+|/3tuw,^|GNWQQdXӦM;v%߿gX{zzT*fqQQOϑ!1LKKWA_GQ]]H$?bhhh};`0"++ yǏo. hЌ~:姟Άfh#+}B1Jst<իo߻ϩkږ~:k`W9pb29ӧSU2c#7XXrr劍Mww7{O}LvTCt96àˌM ~UW:cK"/NgD2}2e [h-=WW7+SӽZZW`G ~} ax5UDaaad`ZZ c?<_]H-!!AQQͷsl_F}9,kwp۷ouΝظs5:w.|G0ݸs@…69{a0!!ٳg?,""͍@R"""5pժUT*ܼѤ 䱱1byyyvvvg_>::` qb0}}Oyyb`0YYիW|noVpu,=/^[ :0`2YyNɩqu5 ̣-W0LVVѣG?~(*u@Sk#% *!DQP u{BAET0(%و޽\DDv|yv9\tWQ^^ӧ#G_:u0:.##`P(TYYxiifu޽ … [nK=voU ~у@>u*c'O6zribsr.^|z~Ԩ};vDo>3#c۷{r1Vf/^|`e++ĭBL||BXtbPC[[Whh($Ozg7{ 77N::s 7"] $CClB¦[?Jmm w"wުNo 2 k$j}%O_F<Q(cǎ͘1G% V2{zzFEEYXXprgγ{,C/ j#"2q=CPRWH힞<Ⱦqr<_SSK77o߾qzB0.^=PT&%%B/^{uUTT9r˗/~MNN΁Ο?'p ,ذa÷o!|!;wn@@@EEENNΌ3.^b|}}ׯ_L"SƍKJJ233w˃Gnn w,-ܾ&3s SC.joG3N62^$'m{Ķ6ǎ=޹s֥Ked㌍B?жm-,tBCG3Wߟ?@vZɓ/O9PϞ}9t(ĥK7III88=(/Plc_NtةSMH CBB|i11kjN=;WWWuU:СCvvl6{ժ[&:u*."Ha0 Hiii^^^rZhQqq1ܴx0gpu߾}ӦMKLL,..?~ի?J/=^Fѱ?}ZYYY[[ҥKjjj?ڒ5gm۶ihhhOOϮ=544Ǎ'"xbuu͛7wttx:nmm-''?H&}||TTTVXAPGElvLL:H ׯd%'͟I]} tQO>r{Roޔ8d3ZZ[7oؼiSx W[36ޥyΜ7n76"]v]QG{;{ɩ22ڹ| VVVPWSsEW=<pE[JJN/+Wttt6l؎;8؏[;nxpU6ֶuV333SSÇ_C_Fu}z]XBNN3'N >\VVvĉ8߽NKkKnno<Jݏy"- DݽJCCǚ?>AݻܹÍDSIIA=>ػ  Bpꋲ++[S!*QUQRRnII)͏mofTnk^^6x-{-Hَ)dk22{Wv$`vݙgp'17oJ"#3s;:c:;ϝk,X>HI߸1\UUe?B߼}[yeŊɻv9qk>y#+;y jn~sHׯGs80,dG[Zml3g̡CnD{Hϟ(߾B(N;;;kkk_~]k` o}uHHZ{;<$WZ/<jh>}#& Vb0Xǎ=x#G1$$-, =xG__ hذ<6zȑZHW$jLzb *%%N::mcAk$J^#=&G;8zxX )-W5k֙Ç.Z4+8q؉7n S>'HQQYo {i{{O7\< ;r$ABB|H" @&LӋ넄 PV^mggt-MAAaʕ}y>ϯ }0FIIy$))))1k,O͛VU~|_UPP{ʻw;/^|8e%VffHWImm:*>Ap4w.-VPc `Hiݺ0WѧN-@[=IYb_.~Z`lca)zIKK{ZZQZZQrr^}}R?lFFʕ22>#F$e/>KM-1B}Js-P*O+/_v}DBfCL&72N8_go@W%--(14z0-*)(*ʠу1:ZJJޱյ+*[Z߼goo"bM))))ޕX1ct/lccݸmvvƁ^ -iiE'N$fe}WMIE f2Y&b%%*S))QdFs3͆zC}}m c0T*HZ"B$uK2D^YYNYYVEEn99eeYee955yAD]]qikN. N;s&p|ٳG y@Wӧ%'o]2t֬//3 IFF@cTSy4<޽|8gΘeˬML4OC @>G"u8(w Bؖ/w ҵƶ7ڨ..AAKH5o55ʲVV'O.>LҬNz@@TDD5Sf bdb>-8u*)'0.nرHVg'Δ@ "%սSbblM~=獍!&&AvSS$ QPWW40` J**rrrR(A"udZRB'Ցh4g|84ZQ`hE]ǩ+eOYXYX<薜iSͳ0bHDrl;"/s笵ks7oM~jǎ@/#bbbVVíGGgݺ&,C}|lf 4uu-X,X+ׯKBC\୦&t-dlΝ;vD^=un'k8_޸%++9Ѫ*˗iiEϞ}P9s88/89ַo 7xrxɓ.t:36ùs)Ӧ$&nA|]4TYTQTQQ^@&w, ^p֭ׯ_ηjE *(P66I HRRNTɓn^N1)@ ʦ+򪫛BQNruuUTTL&ĖvDjh":ZZ[wC;pr4 ^LΝׯpc** ] }RRgxZXWs~gTregЄ C&rNQT( I[8kwzFmmTWWZZ7n3sH71H"R@&n~6qZj=q I/&_R[=hۛl))Q~d/e5 zK55ukС\ NgVW++MĪ*be%35JMM^[[EGGycIҊߏfC S^~ЧOUG>2?(gKJ,NmȑZIII`0h cM"s&TQєVT[YIa0 pic0 zzpZI'[Z:x<o隿4bh0 msrף#Gͼ'Z[EEaVr ?--pݺi{<0nq4w 'QkL55DAf^Ћ;X,.DԀMpݸgO̮]??"##,b74tXluu0C޽C-xZϿ~Z͔b8Z#uuUll n>y`bٗ.=GsZ?>_M"rFZHH\pڵS0zg-IiyNX,ZGGTs,Сj336Zyyyy@4lNg1,&Ʉ fi4-*+VV?O *ϙG[WWajڰ>VLL<+ 1?z>#xr}?T6Qm8/ 8~33##,c9LlX,ZMMAQq\_~ᴏ޳%.[,<|ڒ%V{ĉ789 ۷rĭµNҮ]N[xի/NNbvI#]UZZ/.. o?ֶѡ[$$|wo,Kh~5@Vx#ضlr.&&)!*)9DRrRC1Ć[߷L --*kjjw}pp:z#F#]TSS_*zѣuML \s3e͚oߖ><[Eihhuի/%%Q>>~~`A8VT4iIJ44MWWidQXCFFXMM= l0 H qq olח~ &&&Ů >nO$>R+9n޼l6;!ɜRbbbʆ##u##ϐC82@./odp%g&rTduASeh?JI-->\ njk[@o'QU}}'Ǎ[NLJJε@zp˹s)vߎ6uTM^cc8^t9hׯug]bV26Aiۛ69n:Z5?&?&7窪*"Ŗ@At:ĤP11G޼)qwlѣ\w֬" wtвʓ<ɩmQQ2tdc1/zu٘1HM(( ^dҊvB ~2 i/~~VPHTGFfDWB5hAttw~zDqq1}!+1,n/A99x7mN!4H2?:JetKš͔"Ba!_X˫A(pچXCC˭t {l:~mHJe9-߰XN$!ۯqc9 :drg\k^,-mg))B.;l# /?߲qUzz…ϜVyήxirrСC֯7o6lC$RV ]蠝?z3*Qkk̙UU壢~ ǏsV ٿҵ @ڶOUpKII>h11kז͚os-=8'8?Aik5RYUQJJ˗ LR_S##3w3FʕrH/_j/_~ASSvI҂@@3kk[8'Q$'ݲ48Zg ߝ[S]ZZdh#[Z7Zg؞f++DFg'lo{;mP( "#p+ݻֈI˖IH\]{Us3ҥAA/A HOO͛ݶd0X55EEDnEE:*!!!dhn\_5}*g%<*)+~¡edaD2ZZ(p )) %pC(~bϟy3 zɒIO,"]p{gyػw?}G?{ bŋO<>0 'z ~JI߹3dIH֬slDl6{ŊЌM$'-_~sCܐZ&L8鑘wUv?43 Abaa˧N}]t:311>UwΚ*LVvvyJJAZZQNNuvE߽~mf߂Zefn[4! 3VDM_W&v~RSSS]RB` 86ibyFC\\f7Q>4cG{t"&-Z4QwݯiݘlƜ=;vDEDdΚKJClYWYpF[Tɩg$J_goÇ]Ngmpobc+ NoL8 _}j9:=XQ[XpPQtwt'$ECbbڵazuY}G1f<-/?8:z\.SiiO>kĉÐH{YKZ!]+/oܵ+"111W{rSOxfW@&@޼)Y(h|c+JN[:xG6D&wFDd\uƌ+W Ԃ}A$R^.NION';tuUMM'L&gZo֟?ht9Ae'O&YZ[7d}n UDBBߵL,ſk'T+.&lx!kglzbC$!!$g/-EN/gۏ7T*tPu{ǥ?ZW;9hx OKJ꭭ m._,D[[94I~~ͬYgrфb}\LM5Hd56p{#"X[ ]]ܹԮffdkLŞWsY|2ҵ2 /_'M~ڲx6 IDATA8Hc`' [ɭ +W>y`0!TL&{'' jnnzBKJtٜG>Xq>.2_2 )$%QFi2,;;c71ӧf?pOt7x%RyAC8 zf74-x<'յֶږN::Ekj E/Iv-9Xׯ_䛘h,[fa V,j^^Wl{ttT~o'O'=yظO&Çk-w h} ߗ~#));vD46uBD X-ӧ2re ҵ8 &Ws;wVrᄰ }kWTףJOO%!a3ڜLMwS [qqKseǏs'.^lŋFAKO/NIOM-IrvvvvƢqvh;;@od(t:36߾5LfeQGxu]kVUEG޻fi 0<@ qTdjGFH`p& ߿Ncֶdߺi{{O$)'O>\IJeW^?L& qGG`'=[lzN;%%?**ŋ(3F";CL,/o;[EEA T9[sYin䚚fTWp:Rmms[? dd45X"RRWG};?ۺEQVEE @S"!ᳲ܊,$+ kiiZ]M{wՈ&5gN ~pݧb##34Hyӧ '$<ݾ}1y! *-XL iz*7WnY%47 T*=!a`5!ȵܿ!=ȹGerq.˃6PS ;ի/+p8m??aUQєVe!43rp0qp09RKdΆTF@@kL `_vZx;xPW7: &Si?5Tofa,1nP估jjAH17%!!njq֊^AZ[;t')=̷Fcu?>~y#ړ󣢲Ӌ;88;O:B@Hv8r+,~_`h 'r32ŽuI$xQVB$R; k>pjj S =Aw@ȫm ~y[IIMWW BS}رz{{8jQqHG$ܹy} 苃~]BN]]˄ L C$!5 iuf׮ {ǛT.G a]Phn|lڱ#ի"/ sZ̛w~MAҒ{WPZZQQ(Cuu-Ӧ_?^`}PR_TWT11tt4SSh;յӀ [[;oz}s*9a͚)´|(p2-~k]N$RP(aD;r"99UYY }̙na<ϝ[će""27o,]\\_j&7o޻^fNoPWQN|oX,zQΣƍ"[ꖟ_C$Rn8@ nop߃O_/^|F3.vT0k~kpo˗?{o9)Ӌvjh 1k2kJع_S=yr҅}Pի/!1ȸ{wF|K9|LRx*ޏ?@Ɔ$:xB|\mme7'N,Ѕ hOt:S\\,44.}Ƚ]!?yr…x ~oaX _Ү !//^|mmU7ut40aˣλw+Wу_C\CC[]{fCKXY3EI S]-ӺNvg˴1zNӬo--CPMkH-'$|y33tӳg_/e-L.Xp뒮iYYܿG*#lޘ˗ :͊<[͢ _X/(3i Fnfd54Ęib^8~ö&AoW7tҵ  cCΝ11xCnr׺ ׯ\-tvҏu_onٽ;mk{,ɩ ~A]]qɒI`X,v^^uZZQrr~VV#<?̙ӧ"2\Ytګ;wZdvҜz\ijj X A0 `0Xjyy54IINi$T0&MIX%]\F˼.\ݻ6s}LfStJÇ^ QQYQQ1Fh}-u_пKb93Je7)) uu7~ph 5P9n'|lJu5u֭3@!\X,}1O\`_}zvv@o71(O@׬]]M6ý{uu-zsZ7vKA(n>>ֈTKX,vVַ11--zsZp0梢""BaaʐT{'tOs8"ҵ g@Ό:s&@ {{O\^(n=8{zE&sw|$7-m Ng'С7_/Z4"lW\X"b3 'ȜsWZG$'.? qqW}\(M33m`i#?g1c߷U$ڨzEmm˴i&66HՃ&8W{bj:888`"4ݨ"^֖gf~pijj1vժ):t旞H"[Yuw&8s7m r횏ȯ Q \g$>pŊii, NLQi4F\]8JT ߗ-XpvgkO(z_Сx?rVRV>@ Nc0nncV6L*Re^%%喔+)Z[ۛ8:/Ys[SS)$GGCFFŋRR--׭foo(m?ݲԂ2ڨ5pS 9F\\@d99Uaaocb>N:BTU'L8s11wc_23))7!_Q(qSwvvBa3< NJJ,Mot@ 䖖ON] n6Tƭ[/\xN]n^zK9p_97wG'%m1BG ooWYY G!zD㯿ܑ.D@=x~Nd ~y|oHW'tҥ5Q؁g>ke5ʕ{䎀؏^^3x0K3?&--kP@V_26œl躱ŋϟikbLmm 'L&㼿f_;;:oo g$T k94egYZk-'TFFXNfh߾5<='~~9 ER 8KP!!QZZ>GFffeуM<<, uGEE8{$lyAC8 5K׷—oC(ph 2rDvλTn'^(\ׯX,YYY鈈5Mptt6oIαc Gdr%IgϾ,[nU Ȍ\3f.ҵ D c㫶69 7 3!UnIH=Hpd|Rs QG&Ҋ4/V@&$%'׷:8&7^'_ښ}i\y:zAKܗi`N,"|a! 8T#tA ')VVc D.ግ)::y~ƅ mmTO WOAF[$xޠǖiJxqj4ϟ+[jG 8>12233󛆆Œ%DoqTEFf}lhh'to薺迩eb)''tMIIAꪨ)` pBqQ[ڈDJSS[C?_6" ^0&##"7d>' Z >zuH"XDyYY赲"~bb>_0o=Z։-KVXqJe-G ~[~~MPЋ?**,Y2FI ^Go55ʲVV&ӧ;#77'R-44ڵWl6{qyǖip+tڰajB}5T ofa'DɾbEEe=xdͼ'L7 dˣ>HP-,<<,]]GV j)*Akh13AnIuuj"OIuu$FZZBCCI]R@P(68o#)pFijjkll#n9!rrp* grrgcKJ,ڹsP+W^:wW_g?ow#{g4BC0aa[@F]H8du{^*\ڒ%V!]@26~ͭvu=lվ}H3vҤ၁^**zw<WXׯ_䛘h,[fa0MU´gϾP(TCCرu;ߴQ7m ONC*ի/y+''tywvŸ 4H[TP-;HHH'j8Ȍ謰M8Xw:nG0cR^z(dMl4jQzURkExOkVS\Wo-dr:Z]]QKKIdRtדxRץPP6ufO9銀:~I``sε ꈛşA/_,dduk|BEEĉ362#))/!_dd͜rKUS\TOVTD(,R⚚J\78u36V85A&$ (0:z #VVGѣ /?xet_q#}ؗ/w˗:f wo̗/G+Ngx,*j&o^^AvvƗ//A(X,W II[vFH˗~P~#.'@}z)ڵӌ/^ Gk$RF4/s7lcd U[}ӄFFիYvn-8y*+y(L*-'Tɩ'HJpBQtDrB|TTݻHI{{O1c@U@Us3ѣ̬rEEٳqc--mпoEE*x[ii=ɂ.%mEp IDATp5pAPg'd| \u5omIa558ɏkF ^_Omә8,VAMMAQQ44ڛ6pћ7%wG7];mݺi Lw? {oggӍt)p8K6_qih7GC7W":W"]@`2Yօ߽J0{ Eƍ cbdl_^Ʈ77A*/o\4M?Nr~dlл/_joH̔`xe3?RXOMFut4up054D Rl6ӧ&92G3e/>KI9RkݺiNN>{˴ 8Сjrr"۠Ng5pB**!++=l!uDLLta.1ϝzT]3JJ55f9ȑZH%X7xX,Fd&rGM]if0X6[=Xtɓ x{l֭>xqtOWJI>b:(99UOy"p=+֬t-c5 &Prr'/Z4Zx+#u_]]rdl#p^Zcݵ~UINmmܔ)'+( Bnt7))G X,ӧΥ|Pain4m5K]i( nY -ݶ Px8TFcI'j8@ww|LH,)>`_wOQQYMXgQh/'/*"<9X^~NG7CC#28dBYUEdIJe9s  r@@TRRׄ}\EV3!dVV'ڱlGS*>)O~]gw ҵ/_M;E(+CBBB|ME@egW,Zte׮-gGdl[̙O\t-. j̑g. @M.]zVX~6]lz(%%Bifecc`m卾AA˸~+ΌpiL6mr=4{˴2./=.(7wF-(wZ5 ##uN6ֶdߺi{{Ots#+ Ə dl}b~Ccc>u!tcߑɝ pG78uh HAa*'u1hggVxlN78"/?"bH ?DJ81r{y5>|^GG=$](6úuaE"KO?$00oW>58Ӌ}|B @&@T*, %lq\O6mrضmp 8{F$^z*V`2Y))iiE99U22RVV&^oytŊX,u_mme.FcDDd;B MM M-tuUn n!;~jrmh gGN#\G2ަ)]h, c%L&͛܎1sGn"ׯu oYpfd1BCUU[Ms Io9p߾5sIׅ9 #[W_O$9"-b]'zP\TT+)"][[;cb'ʲn-Omҥg֭S[4XBB<$B?cRp-%%Ο3dl>{v,iRS,_~KGGͥNNNWUE,~(j-LCf9м b>M4 oJ>1*,ӰXIfnbPTTaJhhJ}=m{3f q-hlbYÇ)EE8ԩg" ˯$+Y,놨n..V$}4}AR҈#H,DG~v5~l A8 &2 @[Dx3060)iyWT9IKx(* }[9lܸvvW,]2Ǘ/3f۶mªUcж`vw?0dӦhۂw&myX}fsׯUSsg9_46qr@Dp7o6wkX,W+%7;/PJJ_?YUUe֬A>PWrii%QQQQ95ڞΞξ@@9" j%$]UU[7sDQssÁ4h-A"#3R ,,gt7ScMrռx5$sy9r>쀣JdG~~ nQQ-WSvjD7GGs:DD bki4r " G!Y(A!ö:@p8G_ɓ?>[GƔ M#Owڴ ׫pxuH|dIq,ө"s8<$] F8;/u$'/u833}oj]ח2©SoO|sRoãG̙yRMvaxɒ11AʖgYII6._ݿ?bym,[d i2:憻~} ڶH7o~~ X]46^κ|96-vRO%|>]mNjj]}|\Ǎ*JN %Tr6gS9sOܧó]0 GG=K]׬q "R=j})jgSRGܹC%YBMj?drus?MWH DuC lٵe: (x(pee 56DYZ Pէ Uz}}C}=HF ЉDZ]]CCSpXDLDDX\0153]2PSCYf^^&LpCAЦM_Gfx(e֐\/Bi:֯_Wmax~~n-ҥ=߷o#ѶEyƍz] $&~Nrrw b߾7o&ܼt̘h"PHWu W㍍Ă<Mp]Aۻu>wVYbqut4zFmpum~ K֘2zHwhl҇DE儅~bU<=Ǎ :C2KJꐊnVZJ H__TZXmՔ bu5\QA"WWD:r*glmmhmm mli6ZSCPJcmm`G]]H[$N @PK6{7W}i:o޼JK /_nlvt`ΜWnSx>}*9SsmHN.1۔-Sŋ~qKA IQ|رȳg-oT!_M _Νe^^;y\ I@(-%{7χgb(q]-9χ]]m||z\DKXɴgϾnʕEKhfs#"Oz[YI:ߚ5^Ί6Y99H r6bقdѣOD"}0'??ɓiSI46P߾A* kt;>eJMۛv>eoU?*>ݻQMP&;XqNꆄR%}˗TjdylϚ7H$%^r1&Hu >5b}=M |ٳ~g)+WB14611Ť@M>@USbcGGFc9;[#,,ɓ/<׷oy L_'O~sr2u3C.S[^^MnnB)ֽE^8%Df t8DC^dccɡ/-08$5% kkUUd'8p C9=I<`UrO7ի[>Q }"n܈?~|ك6GO=}:jǏ :1Ǐ~rVʪ6ܼyCT=$ʕت*WeFxz:w5SU:p`W ܬ h\lǦ%--9 GG NQx qVM ]{~EÖ-!H@T+(0la/YvbCM 77[??w??wCCt9hlI^^MXXjXgLydM߾v"͚u iR T5H[QQ-WSvjD7GGs{S$<ނboN0ƃ~ {@An_$4ioµ @1o9'O a/(5\.? r~>>2rHVttWcbzPem g_zuф nh"ΜzCz~ɢYK({w]6G =JL,XkӦ J:ᡡcb2ym_^hl)vZ\||~^6˗6{L?޾y:dl3lwϱc{)| ydLDK!i= O۾}^m<+%…wѹ={Z1cNjii Uqp0G4l퍌@PdRϞ}s'1;|ΜAA M`0ѹaa߱XW??Q\X7DuCJ~6Uݜ,0#5TUȕJ`Afmmdcchmmhkklmmhccdmm$%"›p8dx8\S 30ж2T7o]'(h<ڶ(5JIg5?^#ܷȑGvl͓֯T]R.qh>{LERWoWjktqBY_wxS[ #Ϙqy~~h"~֬ reĉ 46C._cEˉ>{Ng9;[tw敖Am)&fY%Ku5yɒeeYЖoܳg|)85^2XwWTX̊ҭ9 'ߋ"É_PSÎN469Ln|"#4sjjwOKAT7$ ސzz] *9;[0H 圤"JJTr@o %M7A2TgmmK%֭bŨ?-J͏u&;yoތ?tEz~%}[ŋo6m[̋+WNLܥEċ.ܿB]TT +@ck7l6縭qpp ڶڱcO,\8l)h"YYjkM~==eJߵk,x.ɩʉʪT>˫D͖M4$ɁZ,f*w{))˗25ջys/FH㯳+{[#;롸\~QQ-efT668f VK*rx;wˉnn1}zNSUE~*34sVVn'4v,)C*!R4T__TZXm,# Ä !eNovvƊ{`08ZqUUd'8:ʅvmҥ#U'../ H<*ٯ={y]Сo m[Ɍ n\!$-tkvvƷo/75U 'ܺn%_y3>6vLX rS3 dgW^nh`%K<ۘ"D'$ إȑwiL[J#b,(kQ\ΟӴӧJK뽼zn2wol$d?"eeU0QO; yL}1!\= `)vZhl C^^͋_?RRRl9yr3tPF jkk @[ un٣5rkDBUߊjHnAG *P:A$Ete C9gj' ۟>M[ޢE-J͉oΞ ]%fٕ11A(&#p|_66w*NxCNN߇o_"9͛Uzz:_4,7 ݺp--]&͜9d;PT>rsƏ?Ep]ɟq#͛ [Mڵ=-?- D^^MttN\\ǏU4-VSCA 4[2HUwTv{ӪUcv؊^H]mԨw;z]dŋ޾ݢMe%iǏ-<ոq6m9ɓ1 SΟ9~۷+F- Ep8{Vm]Iq#NgMwj[XqqQQ9>q^p>>=*kD4`!*&^+/ysiKP[p7⵴/tCCidjh`~V3LZݻ[ D5gg tE'%|:KKKmʔ~~~<46=L?rdIL+ʃꖝ],,l-ovB"6#fd\RRO2BCKapMVX[ CÉ ׊2l3gti`V5}4̢Ev|9APQQ1=?g`m,۷|KJڥx]t֚5?~|;Lrrɓo ƌ}^lж %V~:qڵh"~}w*46ZVݺYOOs˖yZX4,rʍ,V6ǧgKHfKQ HUUDWxA"L/OmpK7[$G.Y)T*wQQ IlD5ÔДz3s _~@2߼z"o꾾&O;jMZWVyy,WUUuCT7+- %HB0  2@V rN"#mkkCo(,L ׊!SLN8NYX ~gOۉ [J O[&ҥDoߑ#~ *;^NL)ˏjk 9oߴ m,\xtzMgl3g>}*pغu? %hlmٳ!h_oRkAخ]Gm@0PpZ\ttͣD"=1 ***ѥ!h?\.PVF(+#?RS }[[;;c;;;;cdT{%<ȑW.,]:b߾M`deU=ٵٚ5^3f 6dfgeU UV 1'OP' 440_ KMH(П9rAS㩈؆nDDPљT݌p8c[[cwhEE)w"T*_VWPWW&ÙHt&(Ū똘蚚ꚙ뚘蘛뛚똚ꙙ^9[\*`0X==O:=ǣAj>խyr!!!R3 .N<)ɣ7zxx50 OK A~2d._Sزewf͚@.\ MUH$&VK?X`<_KR5kVu!!ʌH6$HM iWTT 2dӦMoJ&W[˰-I>d߿~x<%'*22O{H@kk9816sq3ڵtٳ/\8 3B(lfbiX ?Ӧ2GCMtP16d]ib1|Lo<@t0t1mmm+:O|RCCIA!%drˉݻ=cnws};qajôt<%/WZJPd>7 oȆʜ^gAitҥ# )^.ׅ81GaJ+o6G7}0˩Ss'M0,?ofGE億R.&! +i6f0Ç;mwӾ}~L]] cL@x#!q #?SD oMcsdٲW]e=|ƌh"+,PD:L,<?)04Yl6o^GwE.l4`29{<6߰ah"~Ν^(#7dժ11A_bٚ4^[K}^PPW@ki#LLtuLMLLtTu}}v'>K u+qZo NN.z"֭M;{x8^8_ ; _EDHvݵkԩ@n:&T8w.H=mC$™3Q+WB:`Μ7r䑓'9IҗbUZ9t2Q[KP(e,.VU zY`<}6{ mi<?xz:mKgildoիl6A1$V˫y4-< ?{8!mEEA?Aw8jgXxxNNeNN%f߯G98mK {ƍ;IWOצ=xp:mhlUwESTTqm~w_~ڏ=JII3gܹs߼yӮFMMM{鎝00 ?|ѣGSNNJJ '%%%UWWWTTܼyJߟL&/Ж5lذm۶u?|/_ر޽{>>><)a ;i2.7۹s'p ŦNyyСCmll޽{igg陛+8_0=d{HIIdB"kU['du!th }vyuBC*2OٻwyѶE̠>G4w6|: mC~͞=6mHǡY߰ŞmmѶHTV?.\xu7V#1qS ꦢ"0 ` :vm0چH+nsdV^={l=[lnyL *((>_]n@'KS=z藇edd`0(D>m|`bb||>G+xezz: d2Y[[^=vlT/jqy$6B0Zx228nc;bF444֮]keeEP>VFzHtROZÿ&^vN2Wa `%T*j,Wmw?D)A~Գ[ΟnW3Y#/ƍojC߾{7l@c% G9IPBe%nG)=-3\D" l6fgg#>ya޿ #D&...vTTT߾}a&H8Mk )1J6E4L#vt r$HTSS;~8D < A 0k[p"jɀ֑[Vrr*2D{kb}Fx<އ^KDPIKKz6bLf[~Ti}ۺ:::)))0 ϙ3gǎ-|-n߾Wrn&6Θw͚\BB.!ePYY AdvuJ\.2&& &9rGxFYz5򐃃}||;?88q۷Wj ^{5ڦU īW_Y4ϟ63ӛ>$722:t`ϟWZ"r352jjj6[RRbee% CC#ٴQpf pqqAl߿{ǎHA;UQ?jzv>r}=z$F PWW_|9Fׯ_+k ===w oԬׯ_mKoZYtmmSHfOg}qsskf\A\`iiYPP*0 CD"[zbg̘77h$ !_lÇEҠj&x .,C wI?gMv+#so2O$}w|uּyC$w! 3QŅEa!^mjM|xCCCBBBTTԴi;<{PG]HС #_I#>VF" !-'mm#߼ɖ%`G FF:T*Cmv>^~}7DD۵k l[ |pûw==7{+Vӯw[[,'&:e'mT[[kbbo>^x|:o}*bh[0 Lȑh")lnzޱ>ZRRgmm7h DC 711ڸq#B5p8ÇEvRŋsӇf0neeE$En鞦m F!Ƶk׺tbjjvZVN<"uuumiD"r hieXWxwppضm`O#Tcܓ'O^xqܹt%gϿfi4͛{ꥭzСƦjZuuui4Z+scǎ9::xxx ~ybt3qu?阛5\B[!--K__e4O>G픐+WҢRW,rc!É … ";6i/jqy6̸Кݖv[ڑ7rV#>@[,]@g~I}ڐ]ѱӥq8jS3g߾=K7oll6޺!m`;igyS߾UmNԇ=rwoe[S9ty\\+߭ǓgwimDxvڶXBBBfϞ RXX$;mZ3`֬Yt* #A F7o(O"%=ʗ?ڵ޽{h")@<2E`l,Ck;iqSO_R>vtvY;pt*Q]|Uca$)*8ԸqO-m͛{-[/])S9KK ))IIUUdmm :hPm ";!jMϙ*AtzĉnPrLfUUՍ7[b`޴/%aa-,6E|?|`B  C8ZЫL:kl|>|3/FmXϟo>mCp^^MRRaqqݞ=Sd|%@:RRIh9\oUiiÇ;98m?X >V<9mC |YlѶy`:rei)a6JZ]`\]m&O;b3P0ݛCBRrr*my8Ϝ9mCbRPOL,LJ*/P1 kzb.߿WTSQbbH ,_>m}TFjjɗ/%?}Zdr ڼyc6 6ddYYe-(t:J&*6|>|soi]&_:<%ǤI}Ynoo*KpVV>|KK+rݻ[zz:oچ@ׯ:|ީӧGۖf̙Α&IH޽faa0jTln'Qjt:s˖h"A**!@bu?} ˫b!r.m~X]U9 ! ((J]ϟP ,VEEOx|D 7>>?#ײ/_Jx*A\.^bkkkkJRU\VF(+#PMEh  D;; ^o Uз375F,- @ (y!/ȑ7:9Ykɝ;I{<ݺu B~ltrr>\9bDwI_χ+򓓋|fa>>{*[R?+V~:Zijoon/f͚%vbǏjԩSaaaj 0My` td[@"WMp!F6{$pFAtzL'g@ֿ؀( ji;>CguuU.+޳X6 K_gcyLuL,rU`Aa00A|7 0k+ Y"ƑǏA&^\"QАό aNWg2 mQL={Zm/h_rM1 $FU\@ȯ A jiqhͿPJe,Yrwoܚ5Zrʇ}n>q:-3gJz2W^D'$GET33#?ȑ$zi@fQ^ܹ,#ǏH?X 4hΜ9V/6nXQQ! ƈn<}bq\Z+=`~33=SS]]SS=SS=ccSS.]z̚5;|ck_[7˗?0lEPUU-(>}QT&O>wHH߱XHhv=ll,- ,- ll !0QV\ )X]ޒA÷{0Sll}-0N[rk-:@M-? -- ȈAXFx<"QL$4\55 KĜ9s ԱsSR55zƉ$?}}6A΁MaVa UF Z hֽ._~`_d9N=~=SWPϷo'׍ի}IZ|>k޽QŪ uGC 0m >l<:t',_.'$ m[@ 46O>yMCo0=lt17|P$lyR P+ &'"ի VUUrc9fL33!(U}{&27o.;)&]aehAbbrϿP,C3f߷o[&<;yaakP, m I9|xC2C۷>MSQ̘1`..ڇy11>tkk1czcpg]] I\STc۶-4**')iڶH5kʈϞChpLL33+ GjjE?YL&Bi$Ԛ xlx#=<A' w0Ԓos?OmPSx|r.UU9$_Jc~1wmi7uu IIWƵ4穢]l->M{`2JeO/]Z y1>>|ΜAb_c$\eB -[YG-`{) C=w,VRWWݼyڵLPpx<"[M BirMx@[Dx3060BdCC-33}0 zXdvv%z0Ƕy3 dRիqw$b0@i=޽m9-Xo ƺ};,ODe16>lS(c㢪f0aRm꭛zJSۗ{۵nVͺEo͛(8ˆ2ョi@S|̃Ǚ0a^/JeQ,jEtt;:NðlV^'?A|X;Q۽>|ii)B!`pB>6kVAM27#c6#L5dn:LaZ F.~x{wuX&FDbj0䰾22F7 - 8mjRFc%EE8p,7HMMٻwCr'1Pd箸nJXΈ˵2R&5@F#BTQEEΛo!Г2M}c**\Y{ͳG0967kg-k]zi(Odeilmm+x7X*c]_VOI@*wީ۱~͚đac6N8az,X<>_=Ѹ\*Ml Khl6ͦZF&ټyL#ofP(b2t:^06:VQy29}l͙S> EOcEE΋/.wߵYX};$" or`˖Mۼ1658v7--KJoiWLpI54(R)Z[a $ J)7<0L-mŊmh?Y쁌:kּ9>t 3.jzp q`E-htP %Og2b>':g3oYYL 2X&<W B!krsɲlNbo,1ô݁UHrɔB(/Bu>55,ed w}0"0Ӷm[U]ܱH,{Jà ¶mnokױ vڵfΜ9b(AmHWS(sjkHW.w"/o78W&nР|OZ_z1ѡ߻ySr /\(򫮚qh4ڪE92YO ,X Y@hQ Qb il ;w+$p8:cƓ_ȑOz#'dɌ%K*)JKh4ѡǮ:rn /Fd y0BʕFcvI@FÇVvb1/c$Ҍ%ǣÜ`҉Fcfbqtٍ|o&`pL.- Gph"p* ѥzG_Mwa08t:;`0 KOOB!C$b )гh'1!&U* .AH%%B\x+(A|1\j\#)~F#UWLϞ]+3ur˛X,-->=;vݳ1#{9#04vlذHLݺuTZa/aO?x1$FkWY|ψ/smmhCSbqR1Z  aj{bQx/`Fc~Xð~8J,kk}}X6}zUWU,Y2"{ؿ6^W< y,FO*۱c۲kךy=Q/S=#;VZJ,Z=`a:PKEa(,:`>7 76x%eQ\J&3('"@Xw$$Ο!1½fB/i6d2m2/ G JARYRSS9 f!O?[o|K{}OկFe.6@gl^tiՋ/ep8zurͧE0+Y,{7#N3ˀ/-V\US?~cޓO^92YϓO~ޮ=tՈ/Z=w)Mٔ-X Ҳ,JeS)Z=JE/\(Y@{H"SEc_C_|. ,x~ɒ?iY$?8$Ნ<6jl`0HZZ7 {q{"6]mNm4fX_f%|`p-*I&=>_w{G.ݻ;߃΍{XD HW3ǣఁ ͮ]Ǟy "1o1>zgᥗ2~3XV6b/7[W8x/--VhQɢE%")56.[Oi˨k7﹩P;\ %D)މ_(L\ HXܿc2@w@ ohCxO mp Ph&izkv:}j +;6B~'Y_m2f.˃LȡC S_{m`J&q19[1~?;v|`kG+Jezr|>* }b /5+,V[z֯[f_ 45Rd=腐ϩK\Rt ʣGW{A6R[+7t5L~Ql٫}t…S"X; "ם0@Ƹ p]jRPRpA]ri02D1mFXlvni,(vǣq8TҸ\@p(á&~`0lT7gxf px\V!`Xs$M*z?aXFFZ~>D/A(jeeYbT͜NKjǎl?ʐVR"aP(DzM6l Q8u˖_~ْ^ҕ+{ُ=vԩh4VR";h좹sj4ZZ(}_rR9& _c7Nߞ== UV>nwݵ(cAJꄳ<6tKj=׺8L If2,$C qv'\=^=E($~xc,s!V[ phIaq8xox`p(xM4\~ i29=٣T揆ek6h93gh,:; kּk~WL s}C˗Qyy[o6G Jt4b?;_UUed%8'b޽-^ѵzu.pHg۶o8UZ*78뼴P("kz{﷧6gNMƨӐB(*;xx8$؎W_{+;va+4BkkߕWtY \^o0^xõ7$ˡvHDKnL&2fL ,؀bLNa4:OtL.ax<*MEf8dár8֌C:`ptvoG;Y ð,&Ob t!1 J' 6V['IDPR",(d?B2R(YRiT*)`3m P(eW^+_|q% @F͚5MV\dgG7m?y_!u`pӑLsQee'.ʇ`woܸEbE^#]9R?Y[+^//?ǵ_S.נHyR2wax--FUCfP(]/‹.ʇu0  Ǘ_ޟ쁌ok8qb#SQi&>2@. ;sLeBP5nv':*71wB߸PZm7i6=' %izBV[!krscD"Ѯ.\b1Tʍ**r~Anݎ–-ΛWLBu7=h˖ߌ;1mɓ}>{cQժwkԔ"~eeM&30lpkSO]7}z? KKr~'kZZ4--}}ԔaMMYfwp,265Tǎ*H$*1gGӳ2-1`2kl]]K.[og${,cw${ 09Kcq\A *tX,r| e|@ΰC(1]oj2f7~KD"G|>M(D_|>Ф E 5oFdNMOO i{jnV zq:}>sիh۶VQ1FeG{hjj I`d "޴eteeuu7u?yAY\:7! <هjrx<*+s++s:eHhZ΃O|0u[}g_xa-MXƈe6=^TOX`J Ev/j۽6nZ^݃WaF&.hCӲ6IatQ'1]fbX,.ez~=0@@bx<`)\. mp3$U8x ǎ!7<,tȴɼ<6hEH|aRK& x<\rV[֮UK6.|PsypJ*¼\EٳTjri>zM7͂I`dq8|P[m6ʕ{iAw 駍`xٲoWS#F2 C/kr-RtRI7++sKJ{X,T[Z4--fMk "Y3g͚UfC*LQ&䓟?Mқ7Ǐ9 P(b HnHujzq$[U;3a9S(CVOB9Iƃ( 2rPhVѤp + 3ddg bq( ,)qYVr&BH[[?ʓ6\ii)|T\[+=0/)J8ݼW_ݿpW~Ӓ=GSjn~WLOp&'\ 4T$F">kTSSNBpQ"{xo \AfSq^ziu OM``_>u1 KAHټ-eعǡ=l631du_UގDݎZwTn IDAT}/t%n1dڤFcEǐi*[[jeeYbTؓ'^|q'kj 6n27&O>ix#>_pɒU.X #e h` `JKEӧggOU\,ޛ1ڇVhz@UUyUU9P /2 567(e<$c;TKzb1/c`z!zU3ny#r8I ]N}"p8Kg屇wp8mT( ^."{wjjJNK"Ǚ3 24p8:w\S37${,cʺuL?;`jD8Jp۽Nn9?OxIf NLdfS'Lb4O80,##t(OfBcS8~ߌF4\zlv;,_J2 t>.mp2mR7I$D)(MExJ4b1|B_*WT䀆4H$߽Wso|@H ǎ)׮ -^ZL [Z4`N'UUIZbko^Ke \ Hvlط7x򚫯R/Mx(ABZwe21S@06]꼥K- szmm}}ڶ6]0H+-UTTTdWT䔗jFɦ}y}}OLD ڪG&8 B~(>A&sND9wNgwntʱ=FA\oCNl6%  T-zB7ֆCM沧ȄjnVLРC4z`B0\sz͚\.+HpL8ݼW__z< . MM*ŝRXȗJHޖH%yӛo~ѡ_{_|bH$Рܳyf3kV7^tu[;MJI4j%Vq1X@"lrd/|ɒŋKwE@ώ\6F"QTZ*-)J$믟y=СC~u))pE7xQ^޹VRi6JsOI4yA è 'xӦ Lf:ŁzGNKJb%!֦kkӝ:֦й݁B^*ܦL|eRmmƌdgٹ'S\߶B^3^@/ =v C͙SwFÇ;C˗ge1GcT:ؿ}'D"\jٲjDxXܽkV*HZs8BXÿ t |`}})uiRiE%BZW \Q( zlL xN y$IwۍFמ==f۶o~R\Bis:NˏpT#Fh$c+.MwĐEqkv:^ EelXC>EFQ&ĄƥPB/3d͛FcEv!&'RP(֏$M&W|مn}4׭An߿dVσ~'W^SMslm⺚Z u;w6|iZ_zi,Zm9pԾ}' ӮzƕWV 1 't^JeE5ʂ?nQ_,rb^v6+IRY=ѩ9uxbB'R&5J$QyQ22ma^G"ÚSC&SdJ\ܬ"!xS&vƍg.ܼ7"$w)֯ߑe˭s%{8Ad=HWCO~߉^kz>qcr&7bE-e)(pYY!Ev]}}ѣ=Gtn.pa…%$xXi@_;; @@ %YVUR"B>ɣkj]!bYHH$bFFZ|\fS'ټϢ'2ut z{MN +6YTğQWʃJ{VZVU[+JssdqtiiѬ]VpEΨ _|q{5/ɜB.YtczmHW+)9[9?ǿ-##kVΙS8N#|>-/[P4n~>'?P("kA`Q&…@y Cdm)jLᇯEXc2裻.,IXa ENYs@mW\(K;( WThJDT#›V7l6=kyvoG4&frl6%^cȓFA"6\zlvtm08L&2I \*C|>ǣ  .y<Gc)[ij=EMJ$k'˧AڪFcUV̜?)__~k~$&V(kּRzU&{8N8664(3@?22FƩ8gO7ߜDOY\S BB8pO65NPcѠ<'N 8zx7 s)/0im u:Gѡ1Q 5o vW!B&S:^ %wDry 7(?S[+F-Va^(&>RZ*JX;L&׎H@%a1U.LAXD"{&p ֙sƱX p8^މߍ9iMo >ߍ&q<,&JJHx+(W5\xFBcg0_^ޯoԭ[WIȀfu(蕕VmuHYs`'r-xq%_^>u<>^tgzlvl6%33=Zn'H"WU.\(iy.~'qQM4a5ŬV7RE>Lc'/=߼Ac{ڵ&IW]ܹEO?}}Qr\.Gvwq: HL=SIeP$DfP$#3*bIƧ[nT pxm6Á}썣P2b8$Xd&=.$^/DJ C4+`0fSf*3hΜ3r."vN˵ ]Ң $ɤP>_Pw$HHWv$dekl}}9sݶ뮫NX@4H۸[npp8.WoCw8|nv/Ӑ؆+sT*FˠPHLϔ9*5 7e,޸=5uLSgQ&xv]E`d&R&i]]7aXzzHĈW$aQzf,L)h0O%71@^[ +&i]f}}ֿuM7JpΛxV.עHR99yw2z)r&33`Bɂ3r&N ;ZmA*ѹ_!O1lJ[[?RM&WZZJaር30ږmCCO{htbXzzjjjJ0ArCyEE<'s׉` Gmhxz|<KT*ܹٳa֬dƎQ;SM!~aD"HD\b2)I ,j\žIx,JOeQ2B -ŧMvt Coagy+,SIKCH[[?ʓW"s yb17IdbklPnCW%{,aws>ήWq'T+sjB\R+dc02dCFhtni6NofD&0Ih\.ϧs4&9*Gi\.m- 2m2ɔ22O InjQ,|mw߽GOu:Ա~6\9Uv<.AypP(rℶAyhO}} ,ZT`áޡQ"Lnߏ32LU(d3@f qB{ℶO.נ*M>VQ3cFNee̙yBya{]ZVO0FӽLN EERa~>'?K&S35>kZGKrضhl|:IKR57Le.7sثǡ(ߓpϜ '0PegȴIBf32%%x-'5Əlm64(e2eccRܹ\:vlx]p۶Ub1/:ChmV͚U A$2"OCUM?c v{eI\jMxܢ KF )B}_i4:xu|0~Ƴ\G{zv][[~;aYY3rХ2ACH_MՖ'QCȚF `DbMa.(o¼< LlxHX~ڱ?c+s@n>݋_l;?rb oL&WL:=$tzD "P( ›Rir&cfP,+^[fwiW{k~W`~k~ A5rj2ӧg#]mΜ\hhtQ %DO*T kp8jV2\ht{ѬV~c&|@@iǣִ3yB_]ޮCB"ii)ܲ3r**gEc0k6uwvsښ 29](d**kkg.w@R[[[eW IDAT,X IXUWð.!.^CWL&s@/2YE!&j+pOH%%‚h݁UHrC Q^ jj ⋑ƘP(eW^+_xaEGܬ^}ٽiӊ믟a{HWS(sjkHW4:ҢA5ʒR^-Bϧ3L&XY(m]<}^ԡPe2vvF;aE))ʲJKnw@dMj~VkP(ih #Jcg<^DX\̟I݁.zᇯ%{,IV[/XW[+NXHBt=zB<t8h 8~<XLD""'IdP(dr3t#~ : ѷwLhg~ϽFɤ\a9_'٧|/Z死3MJ$‘2\j\#)~F#UW:g=خ/8zn4Ѿ>ۺu46~{tE;pT;T;--/)Fi_&kZ[| *1L&{u El6Z=VbذZfAODb*Mp|>˥u\.áp4>PGjaGXLs(^Ri4tv4k$MI!沋Ӧ łil6;mE'aqzéRY贴T-#55b~ XZP+(sb^A jm^{d]xȑ_jks_ 1!X(٣o?#Ҿݻ:X`9y.A4ĐmI. a Ƣ`P A}8lŰh̜\~ѡ˵ >Ճ?J$ʜaih'bEt- ð4g9~Uq:Z-Yp]cF 7̤P2Rh8Xdr RQ\AR1J#oK1e~ s0F >+W&q@t}'cyu>Z=X`QɜsON-w.O1PF.F#h %F$ޙA&Q5]ff:Wzu;4t].Ña&i4N2tL:DLi}.N'vOən6 krYY wx7BPT*Ko Oyr*fEF91ncgmaFgJKEYeeIxvnl]Z6&2dbLt,ͦrT62D`09PZmFע-DJ222RRRt)--á2&3333HL%S"h v8|f[wg]&2D"fv6++ۻzg@; ("^YEE Ȧ"ZQd "j|֥JmZ[+_-J(H'L2$!$|1ssό,y9ݻ;zҽ{Nn^qеk7F>_ |a?- {5hN*:CGY@'ian`M僊 _'[Q;r&)ťi٭=u :Uk4NP(H$t:M4Ok w`#̢L.uOF*wOOԭd&w`Gw|I~$\AMMek#u0&n={ʃzNcb񯾪9prʃ+ܻC"(={: =M7]piJJ V(tvOu8={ԟ}OfK6#=Zo_C_}U+_kkO ( /F]~[7{׮VU5t2Dh WUy\_S*WG]e_^dlU$p%;^&NXUq%#z3)3!3͘HD"!(Dbp8zǎy>lhv2OiVi&_V*w[ͩ^UY>p8ZSSGʃow=ZEdH)3 (0ti䥗~{h4~HuqqfB*e&>\-W -a%%Ņd2zvޠLRP-Y}$j]YQsРn79f]o = 嵇8pСcׅޠ]мސ #>_ $nRU5ZFUFV$BQbq+!;ec9پ2moBG>M&C Hr쩐sZ=Ӳk )mI'C&jIҠ5* `0Ҙ^fݻ;N?(Wjjna% ;P[xUUr7߸VW{kj|.|@  Eh5^1uF4wn0zNh4J,#nw_Su1lY..],,e^%y⚜s=ܸqc޽w=gΜ5&,TC}].OF{ΥoGkzNV>\'D$DbP=Ie=ݞ,3_0th/U5 "  F6wWVV6׿߿y׶LAA`̘a_r}GY[&ڀd=B>_gk-aXͦvjXVb1ʂ3nkgd5>_ VUyTWkk2\zUc8DÅ"ZN4PQZM"!x8x<BQ!B^kKLffN9?ߚgIX/Ȣ;۶m1bk׮V6m[=q2.X |`0"+B[WRhÆ ~ v[o͚5kܹg}>Mj 7nԩSl?qԩv۫6ᄏ>|'Olrcʕj06mڵku:ݦM 0lX=mdذo6lXdj%DɒdI/,ZBn: E@$xh 1? Ep( 1 !XQeǎ_~y$1 eee]wO<1vX!ݻ ˿Vȑ#V-++Bڵ묳Blذaɒ%[n<(_6lOd%<6#XcVEE)+++..N] i>|\H},uH6o|`ѣ"%%%Tr(r:)9ڠA9`BHN%;]ZlF$gϞ3gzd/džC***bi&'W3 $j7xoۡCn߾}ڵV]9q.ױ#)cFkꑢF#ZE*(hBQzNM$V!L&N! ŢWdhNpZUV1fQUFNVKkAZ7h%ɓ'4H&g\}_%رC~iX[[[^^>f̘O?ϖ/ϓCEQNW_%d^.}aףG 2Dw]dISeL՞={䗒 l?DU[7['@v**\\0꫇|gWwi̢D# &lذa̘1PW^ /$j}qB?={U%SO23θKzU[u⋏e ֦9KRX֛oyĉ}׿>&Mgo҃ڵk/Œ3ϟiӦm۶-ZHt:^jUrôiӖ,Yg}gw}\/\o{ݻwŋO:5ƩcDH/ӟnc??~g IDATN~Vj\hP( C y<Cs'N3g?|PK/F>iӒ; @hZ&Xnɓ/^|W\qg?_]@fM^ZU] c4TtjbDn[ox޼enرc/Wuܕ6Ц[qqqi)֭ۋ/ؘp:͹#P$\.#` \ڀ(//TZ֭m;l6XuĈ>}};o 1Qfd<ɧϷtwN*n @P2ȑ:6esoas=\@Kj^Tr3ʌR lZ-QbB뵑H78bܸs+NFEkl4z.P$2:aT&R32mflBsҎkx<>thϽFe8P-8̞ άLVɳiQYM?n4f3i4Jۿq8Μ.Wh4DӋ>`AdGrŇ.0k #cY2YI&f-8r=Vt-wJvҢ=ʪ}=DQY>bCQnR2sglBcGle4O;jfͺdb'xfD4YGe;4Qan7L'؄˗26N{-Afu2 cr*{TV[gVeʜNvK֫W\!D^7g-_8lٸt QU26_M=@{RZT&Lj9wdlB_0mGZ͒% s޼_U]{knΰѸNzZ][#*s8.: %H{3ևBї^~9}s=xyO:{5݁od ОdiQ||N{BulY 3qV?ɓ/Ա\`\.PFe Uͦ_?c͚,j۳E1 FY2١1s̨0eņ_Opؾ(8=kבu왗I#9זQܢL3{3֏̋/rŹQX 4FlZTVSҪDzDeNIU6IQAVn2w7'M…Ξ\;ѸVNXD0IJ22G7*'_V5&E!*TAV?KYO{+VL0 TX,FҢֈʎwh&!ckܞmg~ ֭ѻw\OJ!b݄@{=*۱U2o:N+oznҁ@hRTr==aTh1{TtZF^k'֯_&O^hQgS%OvUbUUyxh EezhgFeyy/;@bGX,_yݺ??>jʛmϦ(̨,bCQYe7KʌFcY2yhbE#7t"=٦Fec٣2b48͵$ v̨,z2hhgFeyyUShȐ۶睯'Nul@GՌLvh*3*s8Lvh@󑱵5EQf][7gϼ&`0zKc IQܢL@ΑUW{Ϙ~g^|/.nVP2hQMjjpQYZX4f3i4Jۿq@̀]l;w&|kg~㯵Z>ulHjXLVɧMɗc EevIQ@ƖKVn]'xwW`2wJHtJiQYZXCQYu/eFTh%dl9&g<ٯpêufWYF^hGeu;`Tv|33]2*s8m%HzȑN ޝwinjhm^z=3,Qi1Q@CVGQ /w9C"!:qÇܹo9!FY2iU7gPT&njF}fTg1[EQ~ &z"ֆ &N﷓V5UVzchԩ!˞dɨL5De$\Fe.WfGe}gʺtڜw:26\ |iQlHT@EƆS]2;2{TpmQFT@GGƆN"dMd<ɧϷtwZ޽{KJJD惓 .Wy:y\@0XwVFe.?s̨0GN… 󀹢wm>_ 7ޠr>_(](nٌK/ܥjU-ͦl&ݮllGr,_=+:]{ya*,t0j5:fh,f3&2ِY'^cwϞ=kjjo}>_<_zm6E]cEQݫ(JClٲeflCUUu/*~wu/p8z+7mtwmΜ9P(uH$2nݺ͟??dN/..{'7W l|~uڵ:vkgԩ;bԨ!_\Μ֭[?u-^8YnЉ5~?F뮻?|!ĪUzꩱc]{˖->hOWZUTTԻwo!J}A8^WUӧԘLAϟodh"6}t!B<%%%\pe^k_yիWz'mۖ9xf?Kٷo߰aÒ/:th Þ={F}9HW۱cΝ;{5r?M#&iJJJA9r$ԁ佮gNGB;ftbdlMpիW_y͓Gz駟&_g!L0a?׬Y<8._շvۘ1c:ϲ2`Ϟ=20K*(((++ٹsgn&WYnЉ5V<1c=[om߾}B3f̟?ӦM۶m[hQABP86 @GBx<(2jԨ7p8fsSzݻŋNzo,--=x]F /!^~崖3ˍ:1]'aYرc .?g͚u%<h;vYgSOM<9 NsʕSLX,&M=ztEEE .<|~mUU:)S\y>oҤI].]z>\ь7'B̜9/w8M3`S A)D"shEy'Lp2ݻ$ikL1q 6L8oW$4dln5kV7(YEzE" zEN:6i!c h]'ЎܹSQ\Ϣڹsg2D"9 {>rHgù"c!c h26i?ѲVJ!IENDB`XQilla-2.3.4/docs/simple-api/ftv2pnode.png0000644001725400016040000000034513273140073015246 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/simple-api/XMemory_8hpp__dep__incl.png0000644001725400016040000023614113273140076020041 00000000000000PNG  IHDRuP'KYbKGD IDATxwxTe3-{I&eB@DV+]\tZP`um&J* ! $H3$TRx+\gNN$ᤪ 0ȗ| k֬CN^x>0Ae2ހ|@o@ 7 _#D]]ٳߏ9|ܹs1 9smFcWy'fΜh. _#DVVmݶqF˅a~ח/_t Nbpe0r~0>7t݉'V7o 1 _#L~'oo߾'$w ߏ8p3B{oɒ%K,yBa3gܾ}˯/b׮]7|… ?cZvŋ-[iӦ@ hfΜY^^~7s=ׯGKzu<[o?0 m÷~%K6n ;/OZ :z1 %e0ToqwqR֘1c^/jv˯J[nmoo7lP^^'eee6m{>>>3Áa؛oi4{u;v/Dkmٲ'\bÇ0adѣ~͛7bm۶W_}W^9z_|qEE',YqϞ}4A  Fі"-"8}t";v,ƿ}GyD,\Ϳty0 [t1 s:Ph޽=L&KOO;wލֺ{Ə?i$2\YYa؞={͛G :3UW]6fw}999wuNgo07{O0k /8rqҷl…c=mNO6sĉ_1cFl2a׿VX0Nww >YH$"ݤ$ш aD"qڴiLOO/++[zu,0 Mtfwh{l^y`m4%p0-F$p`se$ܟ~Ϗ R ͙TzAټq{7//o6l+R;v9ydiii\p^$ \.bx<HlooOMM0L B-<.((?6vXiQZNOO0 y/;qH$DH[$a JJs  e0hXػHy͚m<} >=;1[Z .\a 7/[>, j;''Ʈ>mڴ?sݯڨQ~H&gΜ[o=c>>3gN2yyyp?=܃駟 N۫Wv:7o;wn3HJK'h -u6޻T2JLf"DphD"ͦ$#11LQԄn\nlv0ճe˱-[HqR22HD"ڵ?Fd2O>}t|3gK,[}ŊowM Or}Z}t`wHRDJ&hF%P6FQh`$R&3ɤR:=ͦ2 y`x#D]_\~pxNs8|~# \=l{͛u:]lu4mݶo߾ ڳϮuSA& ]'=4穧vFo8u:}`|A?^on|A/h{ހt8|haFϱ(EeJd0,Jd2DwL&Ldil6ɤR(? `@A tI;^{nϑvuNw@ Sva0˗l޾}s=wQ z40pðG^~˥4}lL󻪶P(v\.x Wټn;v=i*bQlKri\.áxtt\.}q8ta4|`>_nl^|۽Tc;~d2J$B@ c/c2\: 2B}c#h4{q3gHc4^ofbTP[_tmu-`i,JD2bH4A7vVbi [ `D,v >)A^4vNg߹#]?H"'O~틿S?_#ך5/é^Bs/tD–H G `P(D-1!>2ĝo@T:nkdꢂbrs|f#  ͆c`ڍE +PE"V yχ 0@2PDehnSq dʖͦ46&p23l6ŢX$1!'tvi-JP"HBr8t|")d&%ހFcC9rKQtvn082$Q$bx]UX4&3l%$hBBx;][z\)Gdr.4ZD YB!S*e E"D "K,fciii19f+S0JPdR)R)G*bmf2\ݺ:X\;hlPB|>C,fl-J~F_pepV]揾:vc}1(۱JCUjvj4:ZhoLN<>ci(;FD–ɸb1K"̸ V3Ju:hi1ɤPH|>C"ᤦ bTR)G$%dR*F 1`qk_"zj}KKv7~q3vtvݫ;?&F'? 9O?\D9ǝ/F(FQ#.4Vl>5l>Di2OUH$bJ\t+2e2HĒJ998ljkuǟ"c F$ÃcvqPZNjVkkoLg Qr9O,fܴ4%F!LXzŦ&z]wf#R)ӦTQ"ᤤ; jfSS )B " |@.uTwxL6w$1o+44 Al fgK;]%Yn@J4`1.W>vl\=_ 7Dl4^my:6_+ƫcD$<{Bgkk`t s-"ĕ˹\dP p.ju[,n[iq\ƲO˥xsy 8T5S[բXZ("b1;)'scoe2PtjEVfA:/R)')Jx9.|r_@LK>:K&ȬY9O=07We˖oq߾} / lrh/XZL$8T* a&U*ij 5UPRSYY!.(.Fuvůh_c[ E+vNts:QL|sn'; FcU-jE>&'2ON%'x2G.INKv{kFW[ki1j+jߌ3cHfSK ޶Q`$*BW( ?%"8_/WbF J -%BT&P;57jkuhhmmTdJ-EYXzo=P(2ujs+b;tЬYBa\|mT4!vzkl|PDbbBB*N$&t`2ɜbF(T\HO=Od@pWwc&,KHG"Pa{(ї.=11_a1 Fi0 #,Վˡ 9:AsfNk+$*m[{as8}]0jg6&c: D`kDsahKi6tZe|\MI᧥ SSJ05U#ȗ0l4>qbqi"|Ăψyaؽ|QgLTwˎ\.;55FcSdy0 KH JazH)tD9hxղZmU-mmu1NH ɼ$jpzeAGg;DžM3}֬+~+3}&u,CYO=SJKw**:n08)R8A(LT({<Тƍ[s4MI=6âgw_jm)S2>|F׏o0-:L$ @xݺe~E힗^*#]Z0;6֭Y]e7u):@Ƕ4Ƈ bv= 窡 tyGw+⃂6vR)p4\>͋Txyܵa}2^ʇ_ޱq\^f';x+Y55zC}h60 PHtazJ()1X 5Xݜkюjjtz%TRJڋ]HkYh{tǎSP(w~=Uǎ5Q įNwx,'G BWwehD"^w݄vÆo' S(ڀ^֭w\5~~twl"b0NO,/_EQ6a{߾<>E )S22sԌѣ~xN|ܸ.:ŝuwh2drvɅ&/GwqLJgδL&igwNVkCEnKV qA$֭[vMS~۷O"$I>:Gu ߋ/G B$}yy)Jz;pe+Ȝ:5#?_qN 9V81fSsLN<6F`pZ\Wf$HĒJbXXv :zNgXvP F"K2WDؿC 0\bqLNa6f@}DIH L%1PD,o BƊwUUiPD_RI99rOmj257h?4z3uXLE  ,KrmumČOts4! ss: _qEVIIclm lɒ NT/X:>]28ujW_݋?'UU[obqqxՄ h_koa…6m#vƫzOHne+,:+.D:+bNrWlvgcD  a--撒cǚV4Z˜1I'O2%b_"t -Wlg ]Z~؟ofr9wPZU&NdV-zbq9~tr@ FNh#r}t%ӡ*Qg"qȰ;&]U9uJSU9sF[_oD"!%RI$YYlif$&SsɄzFdR*P((MI.NQV[QriڳCG :pĎ'=ĉiXw~y՟:v%&0v )*:CG"pL&֮[3?g' hӧ_Ңhn3v7v_d2qؔ?+N}ͱU{N&22īW_`A^לNߺu?Dð~4??Sɚq/u;w:Z ٸ+YL:J9J05UT ~ѺHYY֭?xX0?6ݵԃF IDATw~bnD.}9;-a|E4}ݽ֡AEN_G//@ vAg5{vn*Sh$62eGWGW: 􄂂;NegK}g)֭Ze{FK~!5: ;_Q$ qî9g稩UV pB!)似Lk ݱ_䊽Ӛh|EDzPvt:`pѩM&G 6*pƠ2W(D,S `\:׃pcR][;uJcI$br2OGRP FC}d=Q($BT JQZِcn%A.*"Tv& İb墢~(7\*pҥ:Bz=M\ky<y}#P.t %cK/7B'OjNh9~J`" FbN|hIG'`744 -HĔ~F(#Cr޴4aRwyMO̔#-JDKK* N+_eii®W|_^ݝ7{ꩭYYnߡD"Q&DP]H$nrt_l6ԩcO05"PQ"ylڴ,F l 딹/E֌f':joFt~a6;& e)PȒJBّD"T2G z{e?Hب9//ed%ӳK;Xj cwh<-1͝A20_{Mtv֦QL9L&'^H2%b1[(d^:FLǏ?zx˩S`01ƏWt2EN74PЎSVw)]m|SZ\|BwX&ddw/fǾ޽;= G>P(B"iU^^ ZǾˣx8xNðôivo}p n0|4o_A4ߟ)<0b@ \ pdrjvXQn ŨT\ΕHcPȔH8b1 $_uرE&œ'+'MRP}VW_7v\LqF'gfJ'=^Eɱjjt'n-mi1+n%}:T_ķ޺O~].̙k5O/zٱWT=קOk# x@_j_z͛vL)Wؙo⛢P(#s~xnCj'ON?_7)32Lfܥ:xq mǯn>˥I$4juܤI'+N / `( Z,fP R2o--꭭f SB!m*@epeTl0LM)fPPWYn 8:wELqJ/ɘ̻걅&ON^۱iޅ ǭ_, MEEwߕYuHtڟ6o> EB! ū0 "=gz:ݩPȪx!W?@ 0IJ+b6Rfdg͸K6tbc!wlEH$`8~ر:}$MO]vYڤI.SfeIszrgL㽪:DUq3J\  /=3cPH|>#6;뼒x3E(9}ZsPmIIӑ# NŢfeD-ۍF'al6--MJRI ~O|۶oh0$%[X8n$倞M=Z[=wmMѺ`xΜ%'ƷߖH #X1m͚k 7l"D"@ DQ@h8D;v oaU˗D&h_\"o9sr!#C$eFFL֌46ĎsZh\5+j7aXBS3Z'9Fر[=MCEW\9fLPnp,3z7l,pq@ t%x1^|bN>-CeeͿ^ ee~H$b<r[[ͨ(5J%QYYlHюzZQrZ[EE'l9VWɸ ]Xðh4Gٖ֬+۸ ƍ{^}O(RWߴŋcNa H$͝rHXjTG3~k{%ð+sz߾'ӶkC*eFF^֌~E%3iZ?NB!𵶚KKlvٴ)Sү2+2ss^;~fs[,fCTbqknpl6M `$}wy<>1X %e4ͣX5k[Ej46tDR)IIs_ܔLƑH8r9{q|ʶcǚ))i B FNa"+;ȲLQ5Mi∼};N8vc̞l٤+̺8a\ydUzj3>GB={f4rކ 7v@ _WL5 tZ(|ch0v.}f2#^oLO-(Ȟ;wntT"ngBCohe݃;Z47Z/?*0PII=UHB9D"2.ΖTB|qh,*:QZ-,̟93b^ֽo_~Hy&MRn#wiU_vvWh/6[{.aMK!kusbiCX硳ͦ Q/zna08QٍF]B! ,R8fLBJ9b1K& (: h<ɸ}2JdlZmU-z7PHII_,tVݿcDZ݇W^phyy)".f6RGq-8l6/5\=ȍ(+.'.)/m>]D[  Ar2?9SYv򤺲R}xZm0 ~ǧ.X0p|H[lll455LjٗP*E"RT҄Jbyv*.ط L6MhѸEh ryj ijfFϜi߷ΝU͉U珝;w4@ %:9Oۉm@DKwVН]cch'C2 B"C᭮nTWVUVhH$ NJ\~yO5++FW[G/::pxw={Ѣq  ß;s}>=uƌV{=Z+^)=4;ZW]7Oy^G.eF ksF]vWOCNaٺj m08@_%#G%Lƹ`|qOðLƉ SSb(IL&WEEkeIueeVk0,) ÍFՓ+(5w36hhl465FJ`JH22J(=]q^z=n-ݿ@ ̘hѸkc2"2}1cݾ}ix1q 3cʂO?w;wɑn }4LSf.Z}.ա>ݽjǎ&K.[vҥI$mӒgޡXn?Z q3%q..eV75\;vN$Gjd& ,3|@X|>#vz.K --fɅa@@לjQP(`8vPHyy)c&%&&45*p5efZ]lށaB˹ @fgK8}С ?W R-tH?/]zڵ~ﯾ?|̙zرoWyUu$] u)3Ysw@ E~o^rN͸ rz26}nm5tԶ`ph6|-sY!gvHFjX,.tk4,6]& %hFK"1H|>g  5N2MrdHEdbr2?=]T.!H55VV|A66qb &hj2}miq )?>UlZ]k͂$J% J)vIֈ)*:}I/8aBjaa%`[|Ni@ 4k1c{^Ԛ5o^㭅o^;# eF k.Bg6&ڻ̶mwWÑQ_ JѨ26&(}6x}.KHR)yb1[.(y]CƍFw7+tB> !C;*F&|@otz}]^eƊ˹(JV*EtB!PH}Ƞǂ3ڒ&FVG"32yyyy)'+njI& UUO>9{wd2)v'`T*IvEYYju Bر810"к _qEoܣڻaw{ɼ^kݸte}9GCr>1)3Ysy8PC%/nejtP(b29FCE6ɩ BHD%sQTʑJ92W"aܡc t̠c~03h@"_H/`0j74uu0˥gd33ŨOnFXBz8iGʚo9uJ B i&N.0]hӧOljmcXBER)|p8RVּuk?w(V.,Yzg)\bZ?XuW_}zmtǵ0L&UWb/G#,eF k3>|Bb"95UM)*Cgδͷry^L@ju[ZkP(xv_ BݟF'j mM&繮.mDj3D"PB! u@-6`ă|x<"Nl !9!ʒdf33%YYp]5zM4:T[RT[#B`$VKMaF)m̘䫯]X!EE?P*,t餡|{Qщ"q}~o--ݻe`85O>Yqcx$キݺxRB?2#5:=G+0 [hO2`TvOlg42hGu6 w4^B5LN47G]m6DB b@c7ȗ hȵZ}M^Dxk*U$G'10ȁgʇնdB!y iVK4GC- 555 M7MA.DKK* N+_eii>8+o߾[o}˖*w[p*Փ0N0={J%ݼ>nߍߍ}}_9yRX`qè/|ni1+>[V[997~/2wы#tb"˥v KH8;D‘˹n0dA `0\_WWꪫup8B$YYJ%5J‡O#OKA"9ۏzgs8ty/#CL&7ܲX8[o:iUV}Miq ށb뮛0,σ+|͠g 3PW,sVBgay Vk ( zCC3h`|FvӧUU3gڛPB!)lJ%Ζ%KK›nW/gNlkiA #`X0.LKTT)8:o={RR+VLICpغŬP oaRVd[Bțoz~k>%~@>a?~|:.K$eF ke2~5mm>:G#M7MCP_!Ύ;ϭظ>+yS'pxQ'hm08Є2)S> ,zqH3%PȤR)#0rӧ5OWUi#ɼyn<'G%|.CTTYC!!@G/<#'G6j~PSɓgWHb+oj2&'zlaɓz~z]wM47f\ W,vZZSsǎ=l%2#5_L= /Zrm+}ͦ =Rt;tϱ# 4Z&<.II<&p8Fʼn IDATdrNm2 >$a FX S,f $0JST\_ÉlYn|hyN|h93PSV>rkj 'a$L&a RRS(=Q"~[曻j…V,W ۶oh0$%[X8n$PGSOmUo}[z6wa[e׮ gXwGױJgO C} K0eF kT4hDKr BGm+wՖe&Z5/97;^nVk6ή;Z^oj&u0 hĕH8R)'9'rd2NR qS@ dORXr)GR.|ā|w挶R]YVYGQ37//%//O#F0jmKʓ{d21)'q)ih0xūxʌ@_ntхhtF"gD2KGMQ 4~2@0@ O5<B|>c„|#@0nn654CCbqc@mf8#Cy{l~rϞ7//kΙ;ztRL[ߖ]ye?87W ً+Pf-,/(5ꬭgmm瞻ۦ^=yFv6}gm;kש@ 4mj+2KJ{k /jXVl6U!IӦ-hѸ'ht^Տ<2wժy-s,.X?[>Џ-?mk0vU>䂻h edH1tNIᗖ6r1E7li֬>|pFxv=l}.h;&!ʠ;б8x~2 uh# G6>DYY)SW^oGϵnԵY"(LLJŕ2)]tD~Nx|>?N?PAkA!ybj"0}zE,yW_$&R~Im^o`Wd/[[76cJgoOHH/(6tFgkjY*aΞxy*49!3GH8 'Q 4:dr!$H K"aD,)pЭHĔJ4=23믵phc]H$ʧLI)S~B;TJ2\V[oRn2Yee_?KnBoس֭W3-w5yݩvv|/K/{ե9:OI$~_<̷q\.UWd5k..&H a-.tF[B@<,xƦٴZFc:]tvepBY.J$Tʑ8<+sp <٥f4f+ %b12W(dJlJ? e~ٻ︦7o[!{LEQEn'Eŭ8q;DPp(b {GA)&)s&OMx<_ ED:#GYYYZ:@Cu-f^ /k?:XWc-?GD{䛌L''%Kl4 .h_ŵM& VTľsYYѶ=DtŻhg99 ffMuuu`~ ~HHHHx[}=_ccdk;@DVUՐYUG"/|OCC^__E__Y__E__EOOYK/9qmSSVvvyi6{{OOnbJxӚ[-,M6d, ل ȥK F[Y9;v&>~ ?q?ogˊNgLxP?o)są /7ns Ev5`YxPJf MM y-^hh(C[T*}깺 KY?))}20 A5MO|{ۋeeu}Jc4:B1*J33K˲JJg%$<$Oc0gϾ_w yw..V<R7 rat,11?74P ӝ6mȌC거+,99k"Vw8?Ys5:ڋ{A@WoY=|=z|],s\3bEؕ++?&gEzzQiihtkdf`©idtF;;ݟtw]ܿ2|2ϘkEE0(sԳPI/Cq%/_޼XYklj ;Ammsnnk̒*&1x_&斏mt.s TCB}d0FDX_OZyڴ!glzKYYEibCCu̘Ǜ8: 2}B~̜ Ԙ ];(``@JJj-gEH ozO:gdM:DJ/)E53[ XgavCseehztI R**2)O&'C@2A'ŏ}y˻wG:9O4VVII DF&UW% m*&h`ˣ98_=Λ7bٲ1FFjYt\\ڵWmmc1<04Hm4sGz@Thhܹ|ń~r9Ǐ}1sV_:8X4}P~/ +00׌MM-W_IHȸx޴I^ k35DE)Rrguua>BRieeuh깨44:!Z ''5ﳚ l!L2AP[$'ܽ!.sqqIL DE)XG봶(C%٥ T$D66V#/._N@>zJ[AVBO޴ƢE0Ȼw911)11KKд9uuM>|n]h]]ɓ=I\FFg/^=_UUx m#wG~\pz>͟Uqqo7O^f-e9kAv}kRҹ_p tyVkx}ݦ3ۺϪr~0 A ccS#"ޥ橫Oj6m7j4VBV27Jj/@1n|sx\cc焕+JH&?]\O/EZq%=޽O~;mڐyFbf*ׯKIk״`޹aШ ÆRn[q-ѣ%$%%EaO`'o__=r!̼Š$3]ZZ`ga6\c8ezׯy.W^^r!fYPffddgfU 2lhj`bh"Rewrr-JedϘqn(?\M+GF~)R4i0#sK]]. `zر'Nx<.hkWzu)L TkC#.%AzzSLwO暱` Wx%A8m->LUUUUUEEխtYEEVSSAKKA[[QKKQ[[Q[[QKK6oF]QQ5:MD$!$&.!&!!23K^Mu+e9s7ZT vvv4MA⁷ɓ'̒⬬̒**BOO# D4i޽ӱ*@:dxZ݋6mt)&tȪܜܜR(jii fY]U[ۼsgĝ;-g4\^w֭/w**5WZZh.-RXILܥ./rGLEi FSm ~}fե6BGVVޡR0tֆМ**cc7sڦ?ʘ|PX[vޠ` eeUh9/2?2?@"TTdI/^9 oll)*.++,.+Cu5̻)55YMMUU9uu9MMp 6g) Vz\\Zhh˗jjr+WuwQRꤟiQQFu`ď'OsN ;n2ZׯJADE)+Zj=^smŋNNFcGDee͛k:}v5??ȑ6mL`§ &p{Kի,/0~J;;Gzz/m@ϨG8}#΂\.7pDDZǿGaκ旕5ˏ6&:mDs'6l Zde%͵͵Y'6m5VBmF1ΜypC]SA]n1H,&--_TsH':: wlM*{ܹ]{F,lfȑ#f&zѧ(Z2e̘Li\d(lk_NNRNNX8;Hp g)0 A…w~Wzhs `].)fjV55>>bcS׭yv LK 뚥$l#z;"=S:khѨCuĖ gʪU!k )C'>>S1HȊ~WoFFjXǂ >ꁓ'NW^BK@QQQyG,]:f_iѿ[Zh>>SĖ8С:G^RK E游wf@A7`~ zۋW9:33?uLQR(p@57#/_ .\xz,X /k""ϑ#ߋBB^=:O1Q_H$)_HJʶ ƌ17=|1A|T aJ M5o߾#Flۅ L.QDD}TTXZZgCC֭[ͥ--->LYYYC HYYY<2P;UU b|}g\ 'eiӍu/ŏX.^  JKK1Ν;ݘI,!T߽/XZh >~i͛g)bRekklccxH,&K-[_BB׷3|qO>,d0)ܹs|VzꜻtLK_zq+VO7ng2׽< IDATs n<(((̛7rx]cA86$а͐SLa~}5z$!!1zh^`to 7_ Z[׮5oϞH''o=릯"0sN//j@MMڵk}}} >|7o?|}P:.//m6G uEssbb6.[6OpӬ'\RbbbQQQ~~˗kkk-,,-?~bС7o|1P;:r啿ŋrr8sV7?~mkŴ1{"p䜧Oc@_ÇoץK|||@==7p>Θ1(11P/SSS~!\\\V>͝;èЃ&DO<هXK=x~̿ۍ[/[hTXXwNxh@nnnJJ UUU/^t;j0W;,s)...mR /CDT iܸ#;vD? 1qׁ0X{n%%%}vuu[tee'OL2ho߾ TRR*fS9󬲲޸DهM劲ܹw)- FEEO__ZYY 8pׯ?~8 IS߼p5u͐!֏ Cu&NxP AKw>|BYYyرgϞX*!! P(OPUU0a­[S"##ǎaTLUGt"U}ÇX3=x~̿ۍ[/[h>|#GuNx)'nt;j0W;,s)G ijY_ʠAϟo?zt|̓н{R(JJJj֭aaawS]]S(((>|@MTTJe;^!rcwiӆFDx*+&ѣ}V'%HիW߿zɒ%JJJZZZ[linnh:::ʋ/F!nᬯI$RPPիW/''g >>>***>>>LLL= 9r$yx 6{%um̨6{VG!!LcYY{Νk׎{׋w2z>غuUe;ӋK!++x;vϟ?A=>faGnkzIIɏ?vW~t:322}~E:::/_g u{ f?ttnf͚Fr#z>pٸ?jOtv3MLLddd>}V`{dGnVBQQQ֣ǎ322=z7o:ZVh6gg[n1GDDnm&mYTTTLLLNN׾5`s̙6mB_STB AD(Ϟ};iݺМ2,ܷ͛۷o:t9 PV6Ԥ$EELt_֊-[,???44PZZf&''۷oя;88ddd~`߾}l'v]B#XGg/_ 6ݾ{r233Y$''ˣ&L:hР};v4555--j˖-5`y^x݌9rȜ9s~jaa}vSsέ믿DJ_6fݞQHm~1>]jxɓo{,-}Cힴ|-M7od[_ɢ<=J6 m5>>^SSS\\رct=>˶IhGn?OA?޷oVABCCMMM FG{%{=»0󩪪9 ߾}#1eʔ'O>}Tǂyazqq .]tIDDm?:4f cccۯ6m Ԯ~7or~O1)w1Y;2n7IT} Ƈg\?nŋ***B'\OvthT[[q8pष'OƯNo6[/._D#Ǐ,//gb_ =>j ]l6K)((XvҥK1_:j qㆎ( 4 l*//CD߿]TWQ,re03f̠P( .dNDs^5D%%%'T*۷ot:>={ $33xjj*3x;:6\S8kֹv| W?mrKK B3:=22822W5Yy.tEEE>|8dSO>e}'<+++UUUlm=b|_njjٽ;R]}͂YhO0 'ӧi- mr͡؆te[h_>pA(JXXV>˶IhGn6r?~ ԩSiWb#/#2k,OOOAЉVvЖ+++EEE?^UU`0t:Avr8(v6NGgݻAL.Hw1HY;2?ڇN7'QmmI)LMM 痹<8Yʢe##]V o[ܯ}ȿ#;v@$44aHiwUvth3ii_2ch68444HII}AWWWG`;sL6ǀ co*4#8x*Aٳ'ODDDDEEڏ'ӧpXFFɓ ЛdsCCCŀ9L(-3|NN۞G`Yϟ80K233%%%t:} 000's3115kV9OF檫2 mDUUկ_NLNN1bDcc#CBbE1%%xxxr@gݤıs7nodMw|3gұ 7nXYYٳ'55uΝQ\= 2{G1^zV 8Ә6Wl?ׯ_kii&$$0@'k;+\;}G2̏c'w6cyq#z>pٸ=j}{UwkScȐ!̏!kdGǑ>lmۆ,(6Ѳ:` tp 1zrhCZjٲej68II3fDDD444,]1T`~ \km>t^o}+,,:vرc}}}WZ,"vAf_~f4o<>t6)$ ##=t4bg̙gw8?љ3G6r? Ǐ?eggkjjjhhS>},Fp8w?zVUUktzs6O~ ֓VIII;YĊ# /O?.֙3-+55vRSSlD^^%%X9A,XI"&M<;2[wܹu떍 `5^){}{ aaa))) 9ۏ7551˗O6 }t{rdG1F/_fpHTN1d]#c'nvd\6nlO|^p))r˗/O8<8銐\re^^^iiiG16QK+4hM]]˗/>|8s.ӣF{>$%%,Yfs~m=qh P=aÆ1T`~ BΝFsBk  V233Co޼YUUuݻ>>>>##COOo+V0O*"&& @ pgÆ YYY;w\p!SJJ޴i%cb6v(%$dl`/ŕ<|֬Y999(...^^^999?޽{ۢEvϟ?[E^^pʕڳgrٳgرϟ'O><7?~~~ϟ?_hQbbbjjϞ=^$ݡܥc,,vv8x0kk0.{'I[`0J0 А7G4X:!--xb#11q˖-7\= `Q]ڑcƌhXh{lIJJΜ9sƍvvvD+l?N"n߾][["***))a&煶BPl;צayy}zz'ߗ@zqx͛kdɒ%EO.7'QmU߭Ol2⸸8noG'\#}(ȑ#\^5{rPn/Q eΜ9VDRdvb̉5 deei6:m |}}Y;GwSA '3d޼MMo|u 7UәS޾}K&#""?7o}ڵŅCq.AN<0|uڿF?د_?%%755U ]@:KNz32[II _+++-ZԷo_uuuoo簾-[hhh͟?YСCn̙s،]tB߾}=<<ؾFZZXnnܹs544ddd,--~(构W#_/|219vᴴ|>-ORR~iimH0:uYWqQ\n4m߾}fff۶mC6{t} eG;2M}Uի%$$jkkY~pG Hll,*+ͯ;d͛bbb j)kװ W}ܴt:t_=g pW67nꪨl޼J~~L=ilڟDGx;v?EKKˁ/--mmm}54Z'\G:8L633C{%F;v영588lfsf~gϞΟ?Į5__p>| Beeesrr?n9l|ҬdSAw pݻ?|PԤ$ϖ2ۉ=W2zxаo 54z8޳f1ǫOP]]Mt(?YiNg891,V 7h ƍ׬ұ @cQΝ;,X{GIpxm>S)<+V\^}V/aoFoxhOWxƫMi> вgKmp[ 'Fux:=p„/&wK}}eS?׭ k YaoOڵ))yqq1֏Qaر?Ξ= Xp0((X q.<:ނ A|B#;’%F2xrNJc;?Vf"x:{Ѣ&L0rzŋGcM#8Y"&/_>q8L6 &]]3,Μy`π`͛Ç/[lܸq̉<+Cl{6UJJjތ_as07>ॷAV}=񿃂 Ҋ67:"bSQQp7ӗ.0< xJ;w8ց@]1/r_{L_| AoW!{{O:/a|?MƎw/e!XǂGm&p^{6 T?~3dwWx\1a``tPrWugTpt6 AP/#[~m#dBf: "JLZS Yڵ3KbD`11||nz`RR_ ee` cWvr2?u*U!贵DJ`~ 3\QC$jjnh_?߾p5 &55oKDI.sţ"uBW<">~3q sgĈgu,>oo̒4 (Rvvց@A': smK˦Lu8PSh_C=F2 2򽱱С:XҫWY^^a4Օvv&X#W&oIeMjvԃ)S䇂 ۴ 8!u5ABfٲիL2ŋ0 XQQڊAAθw/'5!b'NĹ1dgۈ\j8zoq&&X@m<۷‡`A=%''QSӄuA Ά!V rrݻGuD]3o<Ft:N'd F0$5zIIZO R eF2wtq-y>[ UV6^!%%u8JL*+m~9)) ݤyO}?g `_FgR.~떖t:]`K- hׯd%t(HAt^fFhYw~~>Q@-Uoh \ڟw` aaRad\W*6m(EE)Rwkry:GUVBBĉǿ|)#Dݫ 1zB?ga{D\mm3q񆄜TR IDATXSWϴAAV`~ ~4~]|ٴiCde;|[DD :x^AAΠPUU]/e`a+"B ٥7^>D,3z51(( V78o +TTIB67~h6_`0t rK. T߽/XZhKowJyy#^=PXji6lX?kk'XB$'b0t:NG~ GS~D:Ψ>pĈ'N>L3DDe;Ak@A/_z''ǏZYaQR&L0a PD<|{=\JBBFHK҈L&uަMT2 RXX}{T_wsð;>>a@द144)3m}  H$WW۷))I;|Zk+ʕWBS^zz+W^;_.'G :t(ZZZk"ցBo~fݓ'߾|):7n?NgOzȌscNg59pĈD2= 8*x/0"ybXG}-aaI&}]ъdҴiCo\áw3jkXp ]315``0))ݷﮅ󏛚j3n|RjUcҺϟ Əu l47FE}\/3G fg'I yǎL/ҙ ji' `C$44iS.͐,nRRxJ2`5.^|u ѧxJ1tƅ OOeebیA1jk,3qOt^A0 A47dɥ>zcmM৳K ׮H]]7DҥcΝsIlht:ҥ0a0~7u꩞J ˖YX><XQ  [27yoΧO}ܹØDD(227o?b{k/?xyA!PVVx_;wF];]/•ع1Fm8 H㢢>Wa aLj&MI3/04DUUtQWkiy}ae p}B A]{5?97"BC^ׯU߾ƖLL<8{R,4665&03Ψj|L1_97ݝ7X*A?XDܪ_6NHO/wӭ[yyFFj^^-UTdo3g+ lbRMMN`55BAҶl)%%~#W[AA Ol:>`,c:b8MU"8|_Νs+N==jA OBpB! \#%7A|:[RR-M.ל87lؾ5k.\Xs\L8PYYD 90p)%%57H$\FUTwuVd2iF]nD":4kɒݎpzK˘kXZb\&0ŤI'Ə?rA<{skr0|.Z|L荂L.^fd 47sgٲ ;;'O krĉxO *X!_RVԍ;S߾C꠷`0M >* d{SVT"++yTT+*JaAqbp~ӦϞ}߰~F=` ^e&Ʀ*)IXRhN aCC= Ү^`,G.(Cf-]:MDĻ?X4xֱt_UUCvv6mOw/owO1$$\P$Сudt11JKSt:#))۷B ?))yօ,9ph>x:/ܬO~xJ XB CRR?DMLOITP$$Ė/{ZQ(w \TT4f9A zƍפ6tMii]x+Wll Mi7}PcwrݳtFbbVxxrll*ư5>q\BS wy[\TrR.s\p`ޭ[k/]Z0!D} …AA k֌'DBs':p u LBn;]0cBݳl٘3ZZ׏%M** U 8u8r$6 ɬYϕuD]"*꣄CVkdI$ Du4X]]sfbyx\YY hY {~K ՍFlu,=}MM L{vٳܲ[[;w:pPXX5{'ع󶭭ɘݱ!c/Ϣ?͝;X@WWI__ٰR(#m`Pͳumk+]D!mԍylOVEEŲ  3bC+EEk\MI+bjk?%|^df7gΜa\︸_e[[ֽ(eݺ wH$fe_߻N1F ܹB}KI2DKϯpڛ2CCUws ' %}˿w/e[2{u8|"+?`HT{X3Mj`~KNNOZ[d2LB'$$ժ7Dfk^$==۷=G#XDBQ.+*a}  `~yƍ&JUԼФd2iLsLM8l4iӦIUU GQED( UUݘȰ$wwfryJ[ R̿ɓoBYkq4Ƙwr%Nr|,n{es B3tF\\*q7zQIsw&J*'JKN_~2ֱt&//uZz)'&MtC5qӦId2۷UB7KKcĉԩf7nL<8 `5Wddl2Z^^u A /C-q̃S̞=i*10EZZ…e((HM4x3g Yӧ߾/fyG O()椤c޻wƈ**-*EzDĻ4 loo|ܸD%*+GOOIQQZYYVJJ,<>7c1AxѝD0]7m...Br!AAaN!V~~!߿<9޼XӉ7ކ%56L4hica'?緶҇ U22RR8\VVvU;˗:G ݻwQQÆ͙5BJJH80 hwcNjmT=A1.^|zߣF>=_UU쨨1,^%T*(QW H~:EMMYE?B2Y捠[ܢPDSF&`e tB AV>n]o֭Ф/3ijEu?Bbf0/0 ѳg݈8n[_()tMO/wӭ[yyFFj^^-UTdx$>edī*ׯKIgV)km{{Su&~)Skk+^p ;LVsgС:x>#:2z}Q}/u8-R$V;AB@A'<>}ȱc.Q\\򪲲ah OjF[>:TG0Y$K1_ի̻wde` dfw5'khOb6ϫmTUU#QtSL'[rq+,'<(h9ցtc(ɓq۶MEgosV Gp.[Ҷyǎ#?~  # 1AVW׼q㵇l>s` ^e&Ʀ*)IXR:.׬Y[0o6¢ֱϟW[v^ӧ$%Lwfcc{:yΈ;w>,[6fϞiZQQS֭ '9xJ%XeVǏt ֱ…u8Pwl4m[C_ G6:  N!/_ VL"# JK^_ecch)7\[ sccatWu,k/]ZI(U2*UQQ]{Sfh>zΜ>#T^^%Qp%+jff+b6Z[vݞ2eĉxpFSSatCB^rO7ݻ\OϫU/G"~mNk+}W=pX>}DT :Ab#_/;9c?RSBC"#ߓɤ3-Νs35~٥]94\[۴cG)~/4Ĥ'{+//hvꔫ1⚂$!/'adOoxP"@-Y2zqqw7ȟ.4鄟_̾}3tscc] _Դ5DD :Bb!;tɒK-Z -*10EZZ…rrX{YY%]ɍb޹6 :()@Ri/^GDKPǍu1**7oїK;7gm`MAjmjD%m<XLWWرyk\64 5|!(3 V vw͵#GcAu'_==GFSVƸrvvo’[&M{1c 23Kll X)DF Z&u** ]NDĻ at̚e!%%ux(USӈ >.{"}Æ""O8ػ At:EE)VI^^GM>7^pk%DE)d ?""oވɓ2*#6j߯_FFj^^-6&)(HhffpRiǏGGG ^HM heEΟW,4$H~~s>~zuȝ;aDE)dѢ?,ቇs ʪ߆ 'Jy·;=='`FqqMXXRHȫʆѣ /\XW\ࢫ;wseW0޼$=-  @bzfٲkVaR@^ MMURvqrw۞-.(S~}]P2yyY[v^ӧ$%L d~:4BUUXA׾wT߬uDpkVaHQ X`!Usjܾ=ZXcÁIBB,$dKܹ##ik+bٰ2AD>! '޿]q\BBl„R)(H6my 7:'3:UPPMc&M(uM&a -\huubM}n\3wy?Y*Iuu͟>Z| &K " 1Av·͛oeXV "*꣄CV w*-UQU(>S{D2 _#55/<]Tԇz33g(|C]]3į'D_K۲妴t۷׍ppdHUU9[RG\z{xq4鄧՛7ߓde%__=gs:!!@ޝĴiߔVf)E)Km*%-$\(K$CE+ZŒVhd+"}23onM̜+ә|3

    N-|;^!..'223+HLLp"GutK}}#I\\996]{&^1XSs3놱Yؾ{q'EEimQׯ?2]\gOx}'+;(*j [sׯwVV:#_`(-=W^^wF 74Hϧee*)Iolhk;u vy8,;EŻill1+@45 D.U3gvf]I\\2a.;yBD!CĘŝ8qϚ(vz9wǠm[xYY$NNN3>iӵm>lGNN,<|]̴悂o*g˜'xy!! c5?}y_WRR{=茚А˖]ʙ3HqNԩJ `/ZZ[ļFFf&$H}֋kIe@ ,TY2D9{iӔdžɓv4;=55xy9住`fm!~_pqN508q 4iԥKvvn f+%6jp^ @TSgժŗ.3gG- Jy% klu̕+Oy?`Uy}}>~QQ٫W_Yu'8@UZZmk{͍ZU16ŋPWknnE V}}0L`;vD(Ld=[eLkמVVqp57$//b]p6qqAPee#eo1dȠc}|γkMyyɕ+.TTdԆFEeAMSrq}SSs$ .zK_t`5ݻM;͛/%$OWq91![lo^RRΝt&[ƍ\\SS'e2&b|q~{Z]U$&&hѣ:: L5uIG*̠ŅB/4zxD޺QoN#6}2ٝ;yjjbcxg,,IܿߜeWΗ\KKǟ>mvQQ~WWz5}eb kd`;px胣--W󯗦&RrriYYJJқ7N4.MCg ƾ\2\S' qj}%%i:MM<"@58x̙cUI]%\..$ճgessi8ZU6!db2qϞΟ?,psm~=q,^`eu^^nzeg-((=|ؚ.Q dIIuygO~e>mhh7O-<||GQ0 cU[bdb@E`YYQQY11뛴}}MM5qeF ~$tD;?)[Qנ''s1A_FȈ(eCde?c--`R&/ĵkgg2ZZ#?duN uk}6ѣ#GJ_?z0ݣ0 ! f|)xݦ[ّY_Ⱥ̵ԑa®;c77]?Z?Mf,00uN#_&N228pvcc ??Y8c=<&L,w@+WN'>>1BB|~c}}Slm+LvN tԽo[7oJKCC^^WW90~Buj 0HPؾH}q#F Bd+-ω&''`-NmW57Ņ>FddGݻl򺡠 ikyc -k׭w0<<gf9;_NH |ΰz~mmGײe}?{ueSi-:fΉP0 ?s恷ɚ5/=~!$iBBda؂w :Wŋ+Wqmmcbb^||΃o UOW*4 "Ņ35+WeyצcEE Uq!iiIa !gw@[kj"E L /<_8Llu]eȸrIqqӧ\H1 ۵릮Ҝ9蛍L'*#MahNԩ{[\]їeguuE,::ǒ@C$۳oXZ,01;ZZz$nn@C$ 777޵)kkk }8 Y H$B0[t);YB u}/.ptjIa}RS bc]Ğޘ'Gyv*dI$RxxҥK2EDDXYYᝢSd22"" 8(KDXV֗2`bb}08o񉱶%w/ Rw;`_))j".eIeah @4bDqq)ky}'5leeaX?F?zB9o! FN]>:N7//7o={vC qssjϞ=RRR'!y橩9;;vFY7n\iiÇ͛A1bBHRRoZ@Pˈ mi!{CCc8#ƿuVbb&BHJJvvv'Nh[!46BՊxgGV)))YYYw~ ++/##oii/o9ΐw(1!d߫8룣\ˁˀs_x.] *$$d׮]2[hhh"2dHzttMn}UUU+V6l֭[_#cǎt萊ϩw]~V1t뎣ѬvXmVnYWW'((իfz맂Kyz.gΜO>檩`< 7n| dr_o֭[reXluuu|||?~p77w]]y`[Z$111rrr8x263+pcѓ 1 P(F:{,amC{zw>xYwt=V *^3__IgxgXЪg ĄH$ڶHm~ɓ']޾}[WWG&>|H봢!TYYI3@ss3HϧƍJJJ!cpas CW_$ٳg{QSS#k[!=/ѣG߸qz7o?3Eaؘ1c~A9%%e„ UVV6L]]ϧ[G$1t]Wݣܺ˗BݖI1hFnf/H$YY{apB??? crddС_ҟA_nKXX͛7}زcUTT>|B֒.jðz!! ì=<<:]=ܹ߱q<;~zza#aϞ=榞x!ݛ`׻yYwێʌ3X'uBk|_kE@޿?***&&zlǫggg3xyy߿?|--`222nhh'LVTTޮۿPg.AӧOZ9nܸv`ØfNʭIZy#ԩJoޔTV}0ɓwܙcǎu[|; 1EQTT4d@  Bbbbk֬yڵk{oɉc=(a:w &V]]hm\x1hm[]T)0K$,Yrƍw._fNm6qzkzgggGGbˎ&..gϞ 6L__?==A DEEŭ\wv6 5iҨϟqL1!F"$%% BͣlK׿mcz:wqXuv4h lˀs:thƌέ˥-_|޽B˖-~߲e˺ϟ?K.ݶm˗/O>zq@@@ۿlCBBZZZeddDϟiСԟiӷ3rׯ_۷?H$nO'U&B߿wv#肮@x3G0&//O0o]:>t=y_29;;S/~*##qFowUZZj``{F''.ljjjnn珷7B!C;;'O޽3K+++|//ΦѴ~z77111Е+Wjjj?[*^PPPuuuׁ7m;vvq#肨qr}VVVo'Oncj<==7l@ 닢uK,KnnO:EP7nxwu!b}+Vlܸ1>>޽{|||{Tm۶ IDATĔ&&&ڵ :CghYݶ'UG"cggz#[{G;w3~[[`=ٲcCC蚚fAAnkаۻn++1<3JŜ7_~-_\lll>|uT]쎪QfqnoYXSuBy4r0BOVp +((h%##+**Ϻ:WWW555~~~EEEOOO}}}++._0ȑ#>|ӧ-[&--MBNNNDDDGG'66uvvvC ټy?+?v~L>zAϟ#%%aؾ}~`֜혳e6anl?((hȑ7n~` 8*_߸)S.=\ِD" ˻Sn*''7hРe˖]s/vjjjV\)...!!f͚'Nhhh477cv!CTTTˏnj]t?zh~~~OOzh>$СCJJJBBBSNNº+?V1`V8ͺmUqiK@@z/S(%KN,Xp?kz:L-,,ۮYlኊcƌnmͬYFXX:.yק8 oΆmwJPݱN뎻kW!B]h.sʌ3_N:;}u@O>tSqqq٭xѱٍ]s\W wnnq&6{ wuuGFuQe};v찱7aaχ ے.Ѭ:%'m~Sj:QUf,f' cwʔ)x\[[ۗ/_644<{lΝ]8Ƅ #F};M(AB566~ŋW; jkn;8誩 ~k&MGxQs B`e_JHHZPvFFC 2cQ>Çx#|T&Mrtt9sfF+~~d .ZUQB R/^|~S0}; BLJͽo߾}{ҁ=V``gLQ; b"%#YQ3}}ދ_$ ZTT,5i|fgFtoG>Se` 0aĕ+OX _ 0(M͑jđXU88޾w-AKPV2`)aaϳoN JUU۷JVe`&&BCee_˛Ix!訧 pƎ"ySw qixgSR!(EEex!EpuwAA#$^w Pꆆfy]w?EEi" 784ٮ]pYk8o"n=nnnV{31 뚚TFnj*d,DTI/00Q>_}%((8GB 7_?ZZ~P(MfBq&/F#.@}RpA`ZZKh1b|67D⠺ W`EEe1" qss[YYYYYd-"FsotG+Aؘ@&4%11Eaus) @\j F8{Ǐ5ɮ<)XHMM){mlxyu_=a؇5VP(WSR5JDVVyԭCvQ;S]H$.\_3:)uX9F.]~p!WWuW`II߽/"O\zzzii));mEEEx {;/JJtZ TTd̈ ll"rrHI0b\nxgߵ&HdЍLQdN`0@&yƎ)3j4% ae`;qqxWUU.޵,x{ʕdʂ/\p;+&OIKK, 991u|$LL&޾AfҶm_,u a~`MMDHdE m.#T<<N'(i-^}|eu]::{9`kua?=sssߣGVa(q1l%x,&eeR\D"ɓ< pj "3h/\{OL;]{=VVgd Di-yz.fBufOFCaطo?0! C0xTNN||LEEY}Iy⋃y2P$%w˜1C޼hu|{޴)c/]r8qbT;B&SBD MSZT#jTAJKn$%jOmE$r,yyIl ))is0Hnnԩ@G cGD͛kf2BAQ(7nț7?NX_Ns3)%嵋KƮkUc/}NayC!/+ɒ/_`2faϞ8 зowPc(\vFaBB|L8jjrsN+W}5hWm/ SπB$e _#AQQ_x,` )"w\y˗r7/^ĸ89͐13ӤL ڵKJ2aZ'`؇(޽faaSR^M4 :]HDߠ:T<8xU77yԘqՇ~;p*+f̱cEEe'jkZ!0))Nvh((HUW7/Gm+ysoSW?yIm+JqqxWyz.&ii!GiE4.޼ϟxgAӜ:d$tIGGanv+.P/<{llw|Qen~zж RϟDgP0j[YSDz+t*+뫪d K"qqA'b-FI~e J㳣_ >PHCGG\xc||6_ 39`}rrl 6L|ҤQL{ii76? !vZZY///< vw~L8ׯuc̃^^Fx3mmK eeuwk4Y1|/ozyĽ\m? tz{S[V>}Y2wwkeoB\\^^b_a+_4x{̞=۷%۷%C&S6BW:Mi\ka&{Oܼũl ?VÑ0}|..s'Ç7PoeQ$?aXˀ_7kkמϚ5֭lVnsӧ^O;9kjEii| D"ɓ**C¤VÇ'or:Ttt63'I? kP@@bs3 P=5q>>?pȬ={m%'5kLrE4gAYAAׯB W$%egf,p$mQht%Ν-)*;VaksUU`eu>*jȑ #'/mH$JpE,2aϙPV9th)A")HJwpvΚ5SR'28*r`_j'L8 ZA+ɋ*4H`qFFfKxس'ѣ[\VVwѲaG$9e-8㳜JKwyvф%$Nԍn߹wΟo_nt0 308$wւaҥ췖=`GUPPqI#GJsrUk.#rr54Ft#&&v'=DI6?~1W\F:~N/_~>@PPҟwYYAg6 i9\y/:x,޽7QQY74Tݰa̙c8[4Q(X~wSSM63h`x B0_l Fjpt-8i֬15*={wL||  \\ pݻcDD7lw@`ǎ%O;vYXС_mAପ!%u||΃ozz*G.[XC@hӯF x쇏Y[#^g??O?\]]ӭ[.%G9 bSӉu=< GThٌ_t͗/:`"6?ae 67/e9︸3f^HcqS=f ̐}Eؾ}ƈ͛={eZZ}ի祤Do^;dbUա]{woݻ}}gwLQ|ˡDxxD돞7O ,,D9db2QYY,,JNN,#3) ᴥlitpRW:|*/oN)VUOz@-X0Cinn }$11┪[62vjZ([sA?~T?OWVQQwQ>}o_;6LJB8he -))]\B'N޲%aܽԶ0qS ctiL̫y=Ы99]23Ӽzu?BǗ_t֬AAid2PU&?ݓ @~矤((Hᝅ%7$Holl)/Ϻ`$`&RZZA\\;y-#=<iJH%ɔ7oL;f̙c#.==k֘;^d2'-[ ]]3'*3gS_:aC!~uii&po;8sA}}ӦMxaiÆ#9#47>,NLkhhҒww_hb2QJJh҆f HNN5߿y&&)As&ҦMNٚj29*quof}{1 q興 |3٧U䂺:0͆6С\\+PA LycddfRR~}}B# 22xGcQ99ʲxft>>tu}4COO6+V\gX_S()(Hڽ;&>>gǎE81Cȑ2yyIc@"Q<= T T*EExxRR"߿W /")/^ܺNEEe$YAxGcuŪCatzz*II[ϟheuFSs ʖ/?GP6)*J㝔KKmz||9̧)/"ŸZbA;ZXXv*~FFf9 fs_xW}C`YYqq9~UQ5207zn£&cwrsnz),?e“'k٧ۣ+֭bCd~+.pq.^tdj kgm2,\iiurV..Y؀ݹ;` 0Nk[9>>Y{iffZpji!}[̡> {aϟ[^ 62ebJsRNLHҒgr}}?2.m||bD֯wVFDrIIQw * Juu}MMO摚:}mIS ΝlG MS:r$IKxPPZii5q9Ȉwq gf}1/_~aN'IOgL2@Ν77}J[B22>FAAi||vt􋢢i( ҷ9d׍{QgO0(- ..;v݄UnzN^^5縸l/3g2buRR^O ak--dO ϝ;,e.3 %%w )2VyϿ?<+70*.`u>z!(hyjq67>,HIy8 =dd4A_C7_TRb'F^^FL0} YwVQRRuh\&VHITTB= Ҹ~"p(ڠtf`pXOOy.gCPqqEp*mQ]oL&S^(˹ueyyla=rsҲb7Ȃ6ٸq.//c?}Gv@G JIIƍs]\❅U89]zwX-W22>xGFfY B"))?..;3p` -,&A[qH**ۏ_nb2,ڞ!5Ȗ2uļ&mQ&JJ 3.-[#(LcBd2E]}\g癌 <^jj;?all^zX-wʦMMJr?~Y<}^yN^\\vVVѠA&[ IDATs320kXnn#cx'Oj;` >竪jHIy[nnŤy`E͞?w;p|߾% WF r|T11K_wwfo}B!!>:tqqg߿Wml~ ì뒒\ᳱ>3޼nn FU]ݐ:>>'5aƌ֋i mǟ8M]]spFFKe:: :: /\H?v,Rt׭絞9M׮=ۻ7׾t\`"={buCFfxa/?ycL&h.Pe%˜1))m[yb ԅ9oNdd6L,sVٝ/+reØƐgollYjLϟ5qQQY~~C߿k55}-hS9;!)O|LJʯoҒ72`d4AFFhjkǎq񢣡Y{0ȑ#Gl1ܲes?}y#= | ðݻcxxwXdiݷqK?pp<%e+EHc$%>ox@g>>1c2EQ\\έ[/TTd]\ZXLI'7eOͤ͛;fca1 8RT~͗{ΘkޡX@60Pݿ?￯᚟KdvSR^GD^*Չw_.IJr^( V@>P;w15=~ 'OUU ց))XLE ,JK󰰘tPBLLit/_[ZȽxbCCݻoo[ffӧ+㝅%yS?F; P8r(,+0..'>>Y## 33-):ˍUxr[suuM!!kƍcUD?iShK eg; ii!;zp|keuFXGlС;?LK󀕗B HIDFt#pYHAAi@@iʶSPmm#AֶY#"2 ToHm++)ISUUׯ2< SCo8d?yek~! K0("T*j[jEQ:omjVYEPā@vJȸWVKב''qu_yxcobbZO~c4u*Lֻv۶킫ҥDRҿnch4#AZZ ]O> 0F*E22CCuM!"RL&WOIIɧ~*!̼xT`9rT&빻7td_ZZ|w~{fCSDuY,&qC 11}KK==ۻQoKS@@Ȱ33 :fϞ={l6"ŋ÷lyGcU-m~HHtoSSmll>nkˉ eC[ 92 gΜIMM~RSSϜ9(CCI.#rTŅ3ebuš%KW8{DT"11ɓ'3zz6s{\FӳQ : e CCqHG;OwŊ#.Ct, B`ׯOɩ嗅:V@ŋ;XDz=~HߎAPd'x񢾾~VV܁\]]-ZT[[+;2e D*((?IHHȅ z!111&&&u_4 C.ZBi^3/];q~puƍÆ 311 ꫯb1gA VQQg*UţW_(/^|D"8Hp4ennnFFF^^^۷oD#:/1?~\o=߶[ ֬YԄ {o>tPUTT;v1[SRRs'$$Ν;w޼y7n+:uԋ/177ߴiS6PuT C:t{!TҴd/"VwHLL#:~Qޡ5779ӧ{y͛&M$H}KU>S r(_W}rSѴ?ٳgΝ+++;rŋ7l@tP`0Ae * H~~uϗ=P( \bV Px T:vm۶FDD|g Ǐ2e |-{O0?ѪjKλm=ГapQod+m>;/HR*gϞ={v)֯_?fXznU5է êLjzxΝ%'iD]cnny}ggguƥ2zNe]rgoog˗/3LCCCww'O"2j(A?~ѯرcǏR O"VZuUٳg={}U"#)))** ܹs}o~liɒ% cدI$ҩS,--kh(zA[o]rqV|[}Ç;"yxݼy⫯yE[[5kBvsu5NID6l鶶6lD޽{۷owvvYh>pV@#GXfͲe˰[ZZ322.ΏD"=zfϞ='Otss333ۺu+"s!bF(jؗ.]rttlllDޭr[ګOw7]@#-..n۶md2_yȐ!7n Ȝ9s|CdOѴPE EE-^Oݍ_ZԩrMz5sZ5S)Xb܍hG6~911awUgmûƍ'Nܷo_II Ty![[WUU]z`tiD樢&e{V_r._, sss[ZZ$ϩ T*uRY"tNsHw}L&Hy~9??>OQ8q"xCC _BGGL<'ݻw(x)|oʳ, EQHV=wXiN|X(&$$xzz*|Pቒ۹]5 __jl֭[Ç}E>>>ϟǞ}y+Z%X,}6SNݳgQxα5={),{Q6Bu4-TQFQ`0LQ-. 2(h{VVJv=ϗ)а 2gckkkv RCvuR_e7Ng*l zׯg99}wݭ]#SRRvH&@@ O8էޛzK.l]y>\wgǏV{nJJ 7n\rrÝ:u޽{wIJJxzxx>2{DEcXXXtlv5\ZZZHHH[[˕H$<==+**eAс),, [}}}QxOx r ߕJW ޞD"H'cc繴i~~~]m}Bˑ}PG[ 3g<|]]_`|䜛k.RԴ+VYzuONN\}WW˗?rw֭MZ%vhvvvr+gff*VٮCy.MBtu4zw7nd^۷_\ybQ7NѵGkk3gy׶nb>쳍7bvnEEEÇ7g2r;I"O_ס&sٰaóg~ATаlٲiӦa#dUUUYf߾}cǎݾ}ʕ+qrP_~mÛ>|x֭3f>5}oF#r\\H$266d2{[V⒓Fnn.,])ԟzyAlC|Wj% ?1%%{;%%%#wj'.9rٳ/\ppsPWPMKP^^O?M0aݺu= XWӫ~{d ?th ,عs'6pAy>}zϞ=YDQסD dJ*]>Puձt#߽rc3geTkh(Ο??++ D"M<E-沟LzޥȽ7Wu%T_ ۷oGD"M4ܹs|>Jc뷴 ʕ+L&6̺ut~ﶶTVV޿?22O>=.L5kʕ+CCCmmmeڽ{.\c?yJFGGY8;;?jB|ƍo޼Y__%H|>~)=^wa<> -->QP0fΜ駟XYvۅ nٲ%;;;;;?>M筺jrp:r0J1cƈ;v,\PiᗾsÖJ~ӧ˗/wJw>J۷mۅϊR[;m۶q8'޸qfϟ?_ ,_\]u{H@w܌}ާ.'Ȁw ޿?ZOOAvrP111YhQttիW?~~z[-366vÆ /^p8ׯ_JKMtCWHo*o---~yڢ(ᡯ{EEE"Qxx Ǐ700w$W(i\.sC^IIITTihhK.\heeeoovvmJ$xxxEDD\xE]v{xx`}F;g|dφ= ?|~ޮAl] /]jŊN _l޼yx['Z~EUV|M: ZONu#DUѴd/=aÆ @Q… r[LwC}zROVyhKK˺u =<ٰ!a0$Q5}+A@jc *,+&&ٳgmmm)))[n~ rr%={ P#\_DOOw{pTI__ԨQ}{V9 p~'g/߻w6@{P@lܸmƌ+W$:(h4Z>4Z>}z7xX]}{{rY~嗅&]I IDATCM(WEݻ?z<40-irWHLR0gIUmٳXPDL3)bt˖s){D-Xc^ٳg5yPݥw1| R>/kמv-Ϙ1B i/k0 EoΖ7&oTi#N ":hkvdEBt8䗁jRF3$:`mlh6$5M輿.Y쨉Kk<[^7*yze>=-$#APX !ۛ6ɦE @@~EEeeiiŹU"B!HH$%33<0q8nYYCkL+.E;.=*?xʄ 6lHz5ׯ#ٙ67 Gb ,rsl.R)je5rJJ 4>ǃ>JܦK˙7 )zz$}}@ VGDlzD E|^M^PS^S#hh( zz$2$R? P.\8PSSGSSȈO&K>|͟hڴWZp,{(%%OABD*EBX,J$R@`14t%($D(YO"gjmOVi:),,Lɳb_}h~X`m=~ Kjrssr*yT*Y$(Z89Y9viI'szH(vRSIB ?TDPgg+gg+(RR 7mJ,,w6YJްa3^c H܊ LVYxQnUض]UZ{ {xZZ/y; fͩGMt,GJJJg( +YtnnՆ SV~s`%7ŋܪK7lX$O]e#ܺ{7L֓H 133ڱe:%-,]\TA#ΥozMK1w}Aܹ9sfر>*s[[{{ {w =D"_Ϙ1pԥfҤh~!:"%p̟[;fǎ Cw=0oz{jw$Ijla*lNii= fft&[04ffMT*Y*E, ߰a Z]e ii}e˯ ([(*ii"B̝tnbOz`T`~C2Mj/D"47 (=ooaÜ sb20z> #9vONJ骟9]jݱo ɓ)*%o=ߗ A_zz$ ٹs֒%5-_j՛%4זa*Xr6W-T Jf2tZm&l2jx]ft_j mekx ,Mx6ٌ3PYوe- (vvfVx@C/ t*ߴ)1+E<=};kbU46R(zL&tb2Æ9C ڄggRHWQ#Hh*?9xΝ֬iTcQuΜ=u< "{O;JT~[2~?!鄎?ǿu֒B!O:k[Y 7oTLLnXq| n„}"}<(Տj`jp'UT42N11a׮e%':ɓ+llL Ukxmw_9u*eݻg1紴jzl6''A:d:y{SVUpH 2PǏ M=Vs ._VV/קps15IrT);rӦe %iAA 6 *ήlo'kfA`X~CvoZ?.I!H));9Yrcr8ѣbb¦Ne q%G%:=/P(2jb|}H`TUGƍ츸'ښFE,X0A[r/>!H?P(seCC3#" (r\511pwŧ pBlh?/syyV s [[P}|0 K7geU!C L}1ٴkOzz͞GGR]͓Jq|VOa??|Çt:mQw,3,&7ooǗ/n7&>"Wѣ-D4 ٜӧSx_ *;T,D"}M/iztYYKo8U+/z/^T WÓLVCy`&_"%%|[Aaqg''K%!,VP(611_=*J#핐Zmhh]'N, g*."5Rfl6g܃66+t/~Rt~f$$YpbFbbZZZMdyF98+\믯_EGGj8Nz||ʨQ;wF9hb`q(h>>>>L06@< l_`g_S/-綷w ]puA:J.yyGO7{{u7Y_2|6D%IϞ+wܼ3mp%z @r2v ͍&7DGJ9v\vgii <.K$I{P(ryV RWD'wpQQ#ixmx<VBstRX eu2"4;;w'M$EEx93L$`t4|Xm+n cGҥDPVVɓ/\x&K&M \|lHAFMMy6D#"d5b|AĀޣK2S^={BEPzW\o&fsrʥ㥓@~.DNE6vl(A<ݜVZ\XX#Hi4#;<&i,V9,4lӟ%$*%rǎ=ͭb2bbf +bb~/-;}zU@#ty„|*,;9$F_RRtT>z,##A ԁҊw츔QyTGGEP(fSLNezkkkyn[[ T*S k͈VaNN\Fi[ҡaԨ]]$)%s''K GCXt}}Ac|}_:-;QCC݉{R)]qVNRRzii=e#UT|KlxϜIn v=;d֬`IJ?+GܺuСٜ̲fAt6 ק"X33c:FdΞ0T_O74|h.p\VVŲeGBA$dޑ#}hז~ȃz&iٲ13fRDGU?ررc}o=|YM"P--ݯBҢF.X0՚t[)6>mx^mY~U 6<K%{{X[l _@ry\.[Aa ÂL#6򁡹Y[(t39+O rbck, !s.Z֎VN,~qի} K%!!uӦ]&&7ndC5)/緿gLLؔ)L kǿ㑕'LͫEXTTOǗSЊ 3{{S _B kZ[HE6tnFtຍ|,ji9D!n~ҏ{F̝Tnp6))_0Ň9qb9сh5>_pRF\f޼ % FSSۑ#~>eժ7/CRXNY->_@^@~ȆL.a;dс$>jSkpxx/MEp +(+/+kna(<^[^'-85*jȦCB͍U{_?OiiDD չ޽}̝ѱt+Wxlma(pSRJJLQQ#U~Zuu-;q!B~q7АZYfs8Bh4C{t2 dd T_@),QTTҢȆ- lC>aƆ6gf6#BBCCBT1xe >Zr2v t%Ϸ3-Kt,}Ct B">~\,##Ӈ/^<: ,|h!e@ww۲61^:[04,_`lp8>wV^dB&j tg-=L 2YpbƱcssL3Ǐ?ڲ'L^n2ѱ˃ys|s+c!P(y3;.Ç11a V&23ˋjRD"ښkd:1Nt:H vj"ŵU w>ˑM746ʥ s60tpqجkIIӃbcTlޜz[[Ct,gI@IJJ |oT)S5X߈DZt2 al s_[M-6@ /S^dC_bo/_dԐl9-J%Ý)/cx#G3N˖1cJ&:.Ο{oOӆTP9rmTK2N|UU~ڄt fzDNnnvyyk2@A~; PdC9,ݜZZSց't^633_UJG\Ʋ2gNE;9Y }ѩŋwAxٳw6;f(V~RtҤp//Nhi`.lNNN%V=Naa==m{T$ΚbD _"%%|[AaROo%$iAA 6x*?↥{AryIIǎ=pxG{Ąi[ŃWн{g+/f<}4kNa5gӐ*}fsrAW*EML m--`(>r$Kϟ? +=e vr\.""64 *{[[#tsVV@ 2'ˋ>ΝÇ<|OfnooNt\Ob;oM">~\j766>}ţK/z/^T WÓL911O/[6&22X /FyyTNivTW=bYrPlbb7ŵO ""jO=z|ٳCM%(* …dUܢӧ=Z_2zWTiӆȻobiee#sQ }|}|켽LF` C\|ط8)o20*jwM2@[tQdoVE6'n~Cljjkڐ{UqqO|n },5h_{|@*"o̎{[_0ي踈ᥓ8ٕJj(;;[pxΥȬYFF]f v`gw綷w B;ٰьGDZ<ݜY&Iы8ݜUq ŒI/F`ͥ9^p8|QMK2Qvvmtthtk&DǥiW.B16'Jf2tZ=}:%117}5aBME$TU5(-ڰYB)IDATFrZ[99 7WpR֟\`$%듧OK@X,fϱcJv.rR)^~(N=56ٜ̲fAX ;__{}~]ꦫWY/g͚ٙ5rѢם,U:@kjyn[[E6\\^We9--/t: <|ʏ<^[bb#JKLe̘1J%k2w_1c7@9:Wsscu4uryIIqqO9bR/.‡݀ X*.(EUZ/_hFo=lƌaa:] ٨hHPΞteP_~YNs 7 O7sQ_f4F*E=ʏ{rbȜ9bT{o:tw͏D"}:CN6lɒpRaQQ >_NNeCC+ -O OO[(nIJJw%7fwTȈ0A~u. l0}i,,|,ji9DQ6Bرoh0wNnl={W!))}ݺ3, š3gR64bce<\JrLL mtutϻ|9?YB=MLp2P(pxrŝ kZ["t:N7sqROr/t3A^ #GZXh{Y"޹{tڬY#cc}ܻw_.]z$&&l׮j::Wi*!o̎{ Ü]}׻x {EW0{nȺ~=#,cƌoԉoPd?%e9X9-85*rȿ!!nڛ*."yjՉKPQ`۶h*߹J`.::$'FE|-?$XZYfs8+d2*,Dmm[97nd'';:Ӧ 6m0@~BrX޹x"uu+VO uJ`C33jkWP7%zC|Fv\ܓdܹ /-~c۶=߼{￷fs?.e8('ˋ>gNܹYYXoAx6tr^';BstRX eggK~K!֭[r<) BC'N 6m5 e(".!HZZl54RN6ݜQZWB&yxbi8&1t(HYY'O>pX,4)p!!n8ٳi|rzݺk'pkמ.(|#?iӮ\yN'O=;do)HRTTfsrXiu33ct2`hHplR)]qVlŐ&N xM? N_"1٨l,n )'tg-̈́:kn\q*&)&&l`>s 6M *١D">|o[*ap8sO|RVVXmO~UZ(Sd77_@쬮%#*%3L*Enj;{(m}e f ),QRR wvrSK XZXtsVV@ 2'ˋc$;?x0N͚5266޼;ꫫrDF];}oWwaǏ?|n"$c ^]xQ*D^ Of2X eulLI)LI)zL p|50033cՃ2rWd;s8~ii}~>Ȇ "rf\(i"\\\4>>E14&&,<ܫoI].:tcOo{5 {p^=w\ɓOL35yy( hʄEC|~{FFYFF)o]]ȑn>jGP V2I DNE6vl5$EEx93L$`^Ցnʪ8y bɤI˗ q(nޜt#Gb'LVzbv ,,c~NՐiӂg.a)#bffN9'+I^z43,#EQbנ gP /t=l3rx޹ց Jvp0TdÚF3t3VF"hF>>vxǮ/YpbƱcssz;W*E?8ʕ^#nn}7Q#?{lڙ3O[ #"|9|xzBO%3Nt:MU-EKKABF3 r r r>Ɣ0@+@~c***Be&:a0]=FEED"E^ vk`ygOOzo6 sr*YۿL) H_+TP##ƫBaq#GttdmgT 9NY X _%8:,]˗U99UMMm8898{xj^l6';Bswe2!!n9 C"֮]Ft @'O8p, lxm l0dr7YK66 UH͇A"===<"K)t4C lmUXU9p  |~; a`X;L]] hO` 6mZBBk͛wɓ'|'EEEuuu:t߶|ӦMڼC큢h}}k}}K}}Kmms]]3ryM55UUMBlM*L|ӏ`0,,,}zhoÇ?9{_J=t߶zϞ=ڼC&_|憆XY=+!4{{s77QH۷9r[njjZd5X~@ @D":u믿FdԨQa[D 6t[[ 6DK.9::666"riooVOtE[[5kB`k޾}Ç/_f2'OTxܛ7ozzzZXX|W]Q*O~~~aaaw%H j?W\ 266W5|]dwH"=gccgϞ'Omݺ14$:/:K'?aAbwnbvq'u&ϟ?jH.@NA$!!A X,X0~B_`jllϗ$;k֬25bĈ͛7(hѢŋs8:SEB$33Y ][4iNIIj)SܹsA&?ϟ?ݻ X2Q.S[]]-ߺuk(6662 &:;˝)dXس X]m@R(J%Ix=E%+;VW(mƞ;_ĀǏ+8qBy~Y(涴H$^b"_~.+@# yPE׶+@à>`/^}0---$$J$qOOϊ lA*p%%%$D"M8Ass+V^xRS&k{nJJ 7n\rr~{rOu>VW0/bQQL=숈Ǐ㏓^u155E^5?ekmCBP/ӧ7ܸoA[ RHDmmD9dPPDkC kihi !ZaCw8S}l6k6[ZZ[!?+b l6[RAHRsssT\ rSZ(\noo/NONN ɷ(.ݫ/SDqyyYxZ}Qnw0Å?0/TrAH:2/B=;;K$+++PHxfffﯮTz{{V.|~ggt5^M&狋N1 LF$h6AD"Un7QL Xx~~^}IL&(˂ ȍ KTrx*H:*݀uHkkk}}}OOat:zVn(nlbȃLfbbjNMMolltwwKv{:.%((Y7l6/ǩ2EF;::L&SWWW,+ݴYqr[7OOb%IZ]]mooX,.k{{[P֚Ng8mnn.ڨ4/E%H~T5tePe|}2 hv:J&vww=~YT3U ໒-/544LOOpjuI| ca'1~(uKT22/ Ђ2@ -}??`u: RT<7 q@UkS2rj?8-- Ђ2@ -/wx%IENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_22.md50000644001725400016040000000004013273140074016357 000000000000006ab4f19e36c31b6fa04d7690e8ef9578XQilla-2.3.4/docs/simple-api/dir_e4f670f0fab752107ff8f745d16ebbbc_dep.md50000644001725400016040000000004013273140074021522 00000000000000311d8ca5ebf430853b8490529b34db56XQilla-2.3.4/docs/simple-api/functions_0x74.html0000644001725400016040000002203013273140074016305 00000000000000 XQilla Simple API Documentation
    SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - t -

    XQilla-2.3.4/docs/simple-api/classxercesc_1_1XMLPlatformUtils.html0000644001725400016040000031647713273140074021771 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::XMLPlatformUtils Class Reference

    Utilities that must be implemented in a platform-specific way. More...

    #include <PlatformUtils.hpp>

    Static Public Member Functions

    static XMLSize_t alignPointerForNewBlockAllocation (XMLSize_t ptrSize)
     Aligns the specified pointer per platform block allocation requirements. More...
     
    Initialization and Panic methods
    static void Initialize (const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
     Perform per-process parser initialization. More...
     
    static void Initialize (XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
     Perform per-process parser initialization. More...
     
    static void Terminate ()
     Perform per-process parser termination. More...
     
    static void panic (const PanicHandler::PanicReasons reason)
     The panic mechanism. More...
     
    File Methods
    static XMLFileMgr * makeFileMgr (MemoryManager *const manager)
     Make a new file object appropriate for the platform. More...
     
    static XMLFilePos curFilePos (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Get the current file position. More...
     
    static void closeFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Closes the file handle. More...
     
    static XMLFilePos fileSize (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Returns the file size. More...
     
    static FileHandle openFile (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens the file. More...
     
    static FileHandle openFile (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens a named file. More...
     
    static FileHandle openFileToWrite (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Open a named file to write. More...
     
    static FileHandle openFileToWrite (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Open a named file to write. More...
     
    static FileHandle openStdInHandle (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens the standard input as a file. More...
     
    static XMLSize_t readFileBuffer (FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Reads the file buffer. More...
     
    static void writeBufferToFile (FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Writes the buffer to the file. More...
     
    static void resetFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Resets the file handle. More...
     
    File System Methods
    static XMLCh * getFullPath (const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Gets the full path from a relative path. More...
     
    static XMLCh * getCurrentDirectory (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Gets the current working directory. More...
     
    static bool isAnySlash (XMLCh c)
     Check if a character is a slash. More...
     
    static void removeDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Remove occurrences of the pair of dot slash. More...
     
    static void removeDotDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Remove occurrences of the dot dot slash. More...
     
    static bool isRelative (const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Determines if a path is relative or absolute. More...
     
    static XMLCh * weavePaths (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Utility to join two paths. More...
     
    Timing Methods
    static unsigned long getCurrentMillis ()
     Gets the system time in milliseconds. More...
     
    Mutex Methods
    static XMLMutexMgr * makeMutexMgr (MemoryManager *const manager)
     Factory method for creating MutexMgr object. More...
     
    static void closeMutex (void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Closes a mutex handle. More...
     
    static void lockMutex (void *const mtxHandle)
     Locks a mutex handle. More...
     
    static void * makeMutex (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Make a new mutex. More...
     
    static void unlockMutex (void *const mtxHandle)
     Unlocks a mutex. More...
     
    External Message Support
    static XMLMsgLoader * loadMsgSet (const XMLCh *const msgDomain)
     Loads the message set from among the available domains. More...
     
    NEL Character Handling
    static void recognizeNEL (bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default. More...
     
    static bool isNELRecognized ()
     Return the value of fgNEL flag. More...
     
    Strict IANA Encoding Checking
    static void strictIANAEncoding (const bool state)
     This function enables/disables strict IANA encoding names checking. More...
     
    static bool isStrictIANAEncoding ()
     Returns whether a strict IANA encoding name check is enabled or disabled. More...
     

    Static Public Attributes

    Public Static Data
    static XMLNetAccessor * fgNetAccessor
     The network accessor. More...
     
    static XMLTransService * fgTransService
     The transcoding service. More...
     
    static PanicHandler * fgUserPanicHandler
     The Panic Handler. More...
     
    static PanicHandler * fgDefaultPanicHandler
     The Panic Handler. More...
     
    static MemoryManagerfgMemoryManager
     The configurable memory manager. More...
     
    static XMLFileMgr * fgFileMgr
     
    static XMLMutexMgr * fgMutexMgr
     
    static XMLMutex * fgAtomicMutex
     Global mutex for fast or infrequent operations. More...
     
    static bool fgXMLChBigEndian
     
    static bool fgSSE2ok
     

    Detailed Description

    Utilities that must be implemented in a platform-specific way.

    This class contains methods that must be implemented in a platform specific manner. The actual implementations of these methods are available in the per-platform files inside src/util/Platforms .

    Member Function Documentation

    XMLSize_t xercesc::XMLPlatformUtils::alignPointerForNewBlockAllocation ( XMLSize_t  ptrSize)
    inlinestatic

    Aligns the specified pointer per platform block allocation requirements.

    The results of this function may be altered by defining XML_PLATFORM_NEW_BLOCK_ALIGNMENT.

    static void xercesc::XMLPlatformUtils::closeFile ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Closes the file handle.

    This must be implemented by the per-platform driver, which should use local file services to close the passed file handle, and to destroy the passed file handle and any allocated data or system resources it contains.

    Parameters
    theFileThe file handle to close
    managerThe MemoryManager to use to allocate objects
    static void xercesc::XMLPlatformUtils::closeMutex ( void *const  mtxHandle,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Closes a mutex handle.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Parameters
    mtxHandleThe mutex handle that you want to close
    managerThe MemoryManager used to allocate the object
    static XMLFilePos xercesc::XMLPlatformUtils::curFilePos ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Get the current file position.

    This must be implemented by the per-platform driver, which should use local file services to determine the current position within the passed file.

    Since the file API provided here only reads, if the host platform supports separate read/write positions, only the read position is of any interest, and hence should be the one returned.

    Parameters
    theFileThe file handle
    managerThe MemoryManager to use to allocate objects
    static XMLFilePos xercesc::XMLPlatformUtils::fileSize ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Returns the file size.

    This must be implemented by the per-platform driver, which should use local file services to determine the current size of the file represented by the passed handle.

    Parameters
    theFileThe file handle whose size you want
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the size of the file in bytes
    static XMLCh* xercesc::XMLPlatformUtils::getCurrentDirectory ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Gets the current working directory.

    This must be implemented by the per-platform driver. It returns the current working directory is.

    Parameters
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the current working directory. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will be allocated using the static memory manager, if users do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
    static unsigned long xercesc::XMLPlatformUtils::getCurrentMillis ( )
    static

    Gets the system time in milliseconds.

    This must be implemented by the per-platform driver, which should use local services to return the current value of a running millisecond timer. Note that the value returned is only as accurate as the millisecond time of the underlying host system.

    Returns
    Returns the system time as an unsigned long
    static XMLCh* xercesc::XMLPlatformUtils::getFullPath ( const XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Gets the full path from a relative path.

    This must be implemented by the per-platform driver. It should complete a relative path using the 'current directory', or whatever the local equivalent of a current directory is. If the passed source path is actually fully qualified, then a straight copy of it will be returned.

    Parameters
    srcPathThe path of the file for which you want the full path
    managerPointer to the memory manager to be used to allocate objects.
    Returns
    Returns the fully qualified path of the file name including the file name. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will beallocated using the static memory manager, if user do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
    static void xercesc::XMLPlatformUtils::Initialize ( const char *const  locale = XMLUni::fgXercescDefaultLocale,
    const char *const  nlsHome = 0,
    PanicHandler *const  panicHandler = 0,
    MemoryManager *const  memoryManager = 0 
    )
    static

    Perform per-process parser initialization.

    Initialization must be called first in any client code.

    Parameters
    localeThe locale to use for messages.

    The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

    All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

    To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

    The default locale is "en_US".

    Parameters
    nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
    panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
    memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
    static void xercesc::XMLPlatformUtils::Initialize ( XMLSize_t  initialDOMHeapAllocSize,
    XMLSize_t  maxDOMHeapAllocSize,
    XMLSize_t  maxDOMSubAllocationSize,
    const char *const  locale = XMLUni::fgXercescDefaultLocale,
    const char *const  nlsHome = 0,
    PanicHandler *const  panicHandler = 0,
    MemoryManager *const  memoryManager = 0 
    )
    static

    Perform per-process parser initialization.

    Initialization must be called first in any client code.

    Parameters
    initialDOMHeapAllocSizeThe size of the first memory block allocated by the DOMDocument heap. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    maxDOMHeapAllocSizeThe maximum size of the memory block allocated by the DOMDocument heap. As the document grows, the allocated by the heap memory blocks grow from initialDOMHeapAllocSize to maxDOMHeapAllocSize. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    maxDOMSubAllocationSizeThe maximum size of the memory block requested that is handled by the DOMDocument heap. A request for a larger block is handled directly by the memory manager. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    localeThe locale to use for messages.

    The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

    All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

    To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

    The default locale is "en_US".

    Parameters
    nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
    panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
    memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
    static bool xercesc::XMLPlatformUtils::isAnySlash ( XMLCh  c)
    inlinestatic

    Check if a character is a slash.

    This must be implemented by the per-platform driver.

    Parameters
    cthe character to be examined
    Returns
    true if the character examined is a slash false otherwise
    static bool xercesc::XMLPlatformUtils::isNELRecognized ( )
    static

    Return the value of fgNEL flag.

    static bool xercesc::XMLPlatformUtils::isRelative ( const XMLCh *const  toCheck,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Determines if a path is relative or absolute.

    This must be implemented by the per-platform driver, which should determine whether the passed path is relative or not. The concept of relative and absolute might be... well relative on different platforms. But, as long as the determination is made consistently and in coordination with the weavePaths() method, it should work for any platform.

    Parameters
    toCheckThe file name which you want to check
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns true if the filename appears to be relative
    static bool xercesc::XMLPlatformUtils::isStrictIANAEncoding ( )
    static

    Returns whether a strict IANA encoding name check is enabled or disabled.

    static XMLMsgLoader* xercesc::XMLPlatformUtils::loadMsgSet ( const XMLCh *const  msgDomain)
    static

    Loads the message set from among the available domains.

    The returned object must be dynamically allocated and the caller becomes responsible for cleaning it up.

    Parameters
    msgDomainThe message domain which you want to load
    static void xercesc::XMLPlatformUtils::lockMutex ( void *const  mtxHandle)
    static

    Locks a mutex handle.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Parameters
    mtxHandleThe mutex handle that you want to lock
    static XMLFileMgr* xercesc::XMLPlatformUtils::makeFileMgr ( MemoryManager *const  manager)
    static

    Make a new file object appropriate for the platform.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static void* xercesc::XMLPlatformUtils::makeMutex ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Make a new mutex.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is. The returned handle pointer will be eventually passed to closeMutex() which is also implemented by the platform driver.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static XMLMutexMgr* xercesc::XMLPlatformUtils::makeMutexMgr ( MemoryManager *const  manager)
    static

    Factory method for creating MutexMgr object.

    This factory method creates a mutexmgr that will be used on the particular platform.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static FileHandle xercesc::XMLPlatformUtils::openFile ( const char *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Opens the file.

    This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFile ( const XMLCh *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Opens a named file.

    This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const char *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Open a named file to write.

    This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const XMLCh *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Open a named file to write.

    This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openStdInHandle ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Opens the standard input as a file.

    This must be implemented by the per-platform driver, which should use local file services to open a handle to the standard input. It should be a copy of the standard input handle, since it will be closed later!

    Parameters
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the standard input stream
    static void xercesc::XMLPlatformUtils::panic ( const PanicHandler::PanicReasons  reason)
    static

    The panic mechanism.

    If, during initialization, we cannot even get far enough along to get transcoding up or get message loading working, we call this method.

    Each platform can implement it however they want. This method will delegate the panic handling to a user specified panic handler or in the absence of it, the default panic handler.

    In case the default panic handler does not support a particular platform, the platform specific panic handling shall be implemented here

    .

    Parameters
    reasonThe enumeration that defines the cause of the failure
    static XMLSize_t xercesc::XMLPlatformUtils::readFileBuffer ( FileHandle  theFile,
    const XMLSize_t  toRead,
    XMLByte *const  toFill,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Reads the file buffer.

    This must be implemented by the per-platform driver, which should use local file services to read up to 'toRead' bytes of data from the passed file, and return those bytes in the 'toFill' buffer. It is not an error not to read the requested number of bytes. When the end of file is reached, zero should be returned.

    Parameters
    theFileThe file handle to be read from.
    toReadThe maximum number of byte to read from the current position
    toFillThe byte buffer to fill
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the number of bytes read from the stream or file
    static void xercesc::XMLPlatformUtils::recognizeNEL ( bool  state,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.

    It is only called once per process. Once it is set, any subsequent calls will result in exception being thrown.

    Note: 1. Turning this option on will make the parser non compliant to XML 1.0.

    1. This option has no effect to document conforming to XML 1.1 compliant, which always recognize these two chars (0x85 and 0x2028) as newline characters.
    static void xercesc::XMLPlatformUtils::removeDotDotSlash ( XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Remove occurrences of the dot dot slash.

    To remove the sequence, slash dot dot slash and its preceding path segment if and only if the preceding path segment is not slash dot dot slash.

    Parameters
    srcPathThe path for which you want to remove the slash dot dot slash sequence and its preceding path segment.
    managerThe MemoryManager to use to allocate objects
    Returns
    static void xercesc::XMLPlatformUtils::removeDotSlash ( XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Remove occurrences of the pair of dot slash.

    To remove the sequence, dot slash if it is part of the sequence, slash dot slash.

    Parameters
    srcPathThe path for which you want to remove the dot slash sequence.
    managerThe MemoryManager to use to allocate objects
    Returns
    static void xercesc::XMLPlatformUtils::resetFile ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Resets the file handle.

    This must be implemented by the per-platform driver which will use local file services to reset the file position to the start of the the file.

    Parameters
    theFileThe file handle that you want to reset
    managerThe MemoryManager to use to allocate objects
    static void xercesc::XMLPlatformUtils::strictIANAEncoding ( const bool  state)
    static

    This function enables/disables strict IANA encoding names checking.

    The strict checking is disabled by default.

    Parameters
    stateIf true, a strict IANA encoding name check is performed, otherwise, no checking.
    static void xercesc::XMLPlatformUtils::Terminate ( )
    static

    Perform per-process parser termination.

    The termination call is currently optional, to aid those dynamically loading the parser to clean up before exit, or to avoid spurious reports from leak detectors.

    static void xercesc::XMLPlatformUtils::unlockMutex ( void *const  mtxHandle)
    static

    Unlocks a mutex.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Note that, since the underlying system synchronization services are used, Xerces cannot guarantee that lock/unlock operations are correctly enforced on a per-thread basis or that incorrect nesting of lock/unlock operations will be caught.

    Parameters
    mtxHandleThe mutex handle that you want to unlock
    static XMLCh* xercesc::XMLPlatformUtils::weavePaths ( const XMLCh *const  basePath,
    const XMLCh *const  relativePath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Utility to join two paths.

    This must be implemented by the per-platform driver, and should weave the relative path part together with the base part and return a new path that represents this combination.

    If the relative part turns out to be fully qualified, it will be returned as is. If it is not, then it will be woven onto the passed base path, by removing one path component for each leading "../" (or whatever is the equivalent in the local system) in the relative path.

    Parameters
    basePathThe string containing the base path
    relativePathThe string containing the relative path
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns a string containing the 'woven' path. It should be dynamically allocated and becomes the responsibility of the caller to delete.
    static void xercesc::XMLPlatformUtils::writeBufferToFile ( FileHandle const  theFile,
    XMLSize_t  toWrite,
    const XMLByte *const  toFlush,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Writes the buffer to the file.

    This must be implemented by the per-platform driver, which should use local file services to write up to 'toWrite' bytes of data to the passed file. Unless exception raised by local file services, 'toWrite' bytes of data is to be written to the passed file.

    Parameters
    theFileThe file handle to be written to.
    toWriteThe maximum number of byte to write from the current position
    toFlushThe byte buffer to flush
    managerThe MemoryManager to use to allocate objects
    Returns
    void

    Member Data Documentation

    XMLMutex* xercesc::XMLPlatformUtils::fgAtomicMutex
    static

    Global mutex for fast or infrequent operations.

    Use this mutex only for fast (e.g., increment an integer, check flag, etc.) or infrequent (e.g., once-off initialization) operations.

    PanicHandler* xercesc::XMLPlatformUtils::fgDefaultPanicHandler
    static

    The Panic Handler.

    This is the default panic handler.

    XMLFileMgr* xercesc::XMLPlatformUtils::fgFileMgr
    static
    MemoryManager* xercesc::XMLPlatformUtils::fgMemoryManager
    static

    The configurable memory manager.

    This is the pluggable memory manager. If it is not provided by an application, a default implementation is used.

    XMLMutexMgr* xercesc::XMLPlatformUtils::fgMutexMgr
    static
    XMLNetAccessor* xercesc::XMLPlatformUtils::fgNetAccessor
    static

    The network accessor.

    This is provided by the per-platform driver, so each platform can choose what actual implementation it wants to use. The object must be dynamically allocated.

    Note that you may optionally, if your platform driver does not install a network accessor, set it manually from your client code after calling Initialize(). This works because this object is not required during initialization, and only comes into play during actual XML parsing.

    bool xercesc::XMLPlatformUtils::fgSSE2ok
    static
    XMLTransService* xercesc::XMLPlatformUtils::fgTransService
    static

    The transcoding service.

    This is provided by the per platform driver, so each platform can choose what implementation it wants to use. When the platform independent initialization code needs to get a transcoding service object, it will call makeTransService() to ask the per-platform code to create one. Only one transcoding service object is requested per-process, so it is shared and synchronized among parser instances within that process.

    PanicHandler* xercesc::XMLPlatformUtils::fgUserPanicHandler
    static

    The Panic Handler.

    This is the application provided panic handler.

    bool xercesc::XMLPlatformUtils::fgXMLChBigEndian
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.png0000644001725400016040000001312013273140074022152 00000000000000PNG  IHDRzbKGDIDATx}TW;&(o1hPZ=* V\ӊkZ=ngCD,ZUT"(H5j! H0j!:?f7IH&A\g}fe2y IA. Hrp@nM6d2WصkרQSA[57v…D! n… a~p@n 8~:rȡCRSS.]JTUU}k榦N0!==oh;cܹsΝbgPooÇkkkryppptt%K mYfݩ˗H6{5kVaaaPPv$8X,6fڴi"!$׮]K-# r&M$ |ooo5k֔U@_c$Gf===~~~iii<uuu_|ŠAsC;et9Tssl"J ===9a2!___6駟rܒ7L*N}  1ȑ#{o~󣣣srr:::Μ9cC;et9TUUM0aҤIUUUnNĂ jjjW\IMM?z(BG-ZZ`0,\p…999͗Yf9sfʕӟ=zܹ?v\beK,:_x[u疛={>Φ6ϧzd2}s]v۷me˖͟?\t)99y…{6ܙ9"1cE?x!vvvRZr_|E}}C9/ sss\rdfݭZV(֏@ >\\\uP;;ef111-ZOOɓ'\$ ‚䜜|-['Oܵkg}vU's87wyь3B3fhiiinnv3_> z}Ι3g6lpFvڵ~vxb//9s .]r[ L&, l:mVROQp׬Y;uvyD/vyqUUhhn!!!u"x<Bddݻwk4?x7xxyyQCЖ_*N4ɲT:vXj988gwNʹ===MV]]=jԨ˗/`<=f ! ,|y?vϱܘL&Xϛ7j9tX,^jV;H,//2e BHR|޽{[l9y;inW\T*7mt5Lvt6my~ٝrɓ'Çϝ;Nm ,ؿK ŵk̳oN~Νٳgi?7UUU'Nbq_WڵkW_QnooC YtiLL̖-[?_:>>իWgee1cƌ4Gw&zyy}WyˍIHH`X)?~fL&s̙ϟ9sX,^߿'Oƌ}vݻwGFFڿv~111˖-JFG7;vQ2lVƻ[=k,SUo̟??ܼ|}}7mԟFGAn 8 7ߏ?:CZp[ 7tWQ!ol|Y?{i}gW`~cۉzkqGzcyO{/^ltu9rcX|Kb28q#ȍ "u&sB`0>-ht@nzzt5 hJ7A;{\ ΅' HT7hгw۝=., Anwɲ$ٳڽ 7)/a.Uρ<:~d2x꒒晇^b8uKr[gJKz`0:I$3?yz2hyxz^1'g.u rp@n 8 7rp@n 8 7rp@n 8 7rp@n 8 7`!eƍW ` uuN{6u2lʔ)/MW\/6Spȑ A:{a~p@n 8.7AHҗ؛9^=/q\rcv=6\|Y|Ĉ)S O^ p8z!DD~~~xx333 BBB|||onSNEEEyyyqL`رcGppWXi]Cgg{f|͛{{{R)Aϟ8qի5jo=s߮]BTeeeƍp8ׯj6_A}yvg:!!!!!gWC555$dY}D2qĭ[R+'%%Tost7 B V_nsVE}ᇭ$..n߾}}jZNhv؁JNNаvVZ ,kׯonnnhh裏-[F9::`0|'ƼOonذA*n۶mv݅ӮozӽvJj*??Pmr_˖?r줤$ۻyf㓔T*kP(\.wƍ6 #Ir͚5C QT{ds!//7d֭3wKk^y@m۶K}h̋;vյ}~3\zNIIywհaV|̜9SP8O[ 8 7pʕ+E6g ON DmN6[ZeȑSNupk ŵGBkqG0!T]RZƆ'Oԗ.= Ntm1 rcCy!<~#ȍ %%uԴ$ɺV ]{6D=d0'm|,5+-`u !d4JJRE+)5ݛ It玼Å%!sJhX,FE W 7X,Q7~5 7FvD[ە6bv sŢbŊ+Wvtt^z$p8|7|>!DfR<<l^_h۷ojX]]Ml9B`XwV*&h4rS__ON-755QkJ$~ r9\YYIGЅ Hh937ntB ~!==jw^d䳿aƸI&>|NX,3gμxA0tPŢ-R aaa2ZZZ\.5ٳx!ڸ63kWnڲbcc?%((͛~=h4ČlsEјLBz+ GNF*fl6|S*555֛ۜ@F1L)))֭;vط~[QQJII(++8{֭[wju:FٱcBr ̙#T*NcX^^^aTZ[[m۶˗[ӢE>VDo>P^^ӧO139r؟޽{'LH :uѣG I{9rdvvvRRñ.f̘1aaaeee͑ŔzZ3//7d֭h4TUVhe /Q>1z}`8fذaiiiN%re-..^xszm%&&"0o 8 7p秘L&u-Y999iuRn+7'}=,IENDB`XQilla-2.3.4/docs/simple-api/dir_a55428efc10bf6e491de7f7537e23d85_dep.md50000644001725400016040000000004013273140074021316 00000000000000a209352c12ce42c9a6f9d44fbe38482aXQilla-2.3.4/docs/simple-api/ATGYearOrDerived_8hpp__incl.map0000644001725400016040000000241313273140075020473 00000000000000 XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp__dep__incl.map0000644001725400016040000000027013273140075021123 00000000000000 XQilla-2.3.4/docs/simple-api/ATDoubleOrDerived_8hpp__dep__incl.map0000644001725400016040000000046613273140074021672 00000000000000 XQilla-2.3.4/docs/simple-api/dir_000004_000015.html0000644001725400016040000000374513273140074015715 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    events → ast Relation

    File in include/xqilla/eventsIncludes file in include/xqilla/ast
    EventHandler.hppLocationInfo.hpp
    XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp.html0000644001725400016040000001033413273140077017163 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    NSFixupFilter.hpp File Reference
    Include dependency graph for NSFixupFilter.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  NSFixupFilter
     
    XQilla-2.3.4/docs/simple-api/classATGYearOrDerived__inherit__graph.map0000644001725400016040000000103213273140076022614 00000000000000 XQilla-2.3.4/docs/simple-api/ftv2folderopen.png0000644001725400016040000000112513273140073016273 00000000000000PNG  IHDR}\IDATx]?oP9i4i;iiZ7`b٬,HU'$*T]TDP6w};C; aӝߟjAInS}9Hӎ|? =_Ɗue*;YEsYBėsٌ ɫYq !Gǿv̇خ F}qb]70)d-}PfY{4@}2ԗNIǃc%UImcƝ>xt9$ OVE*Û#׈r@l$PrHaa dZrqIoT\,tj2FAxv-Lp׌p TI/ \sf; jViTo^cpb]€<a՜y9:+,E f6NEKU}^;nZuUS4 ѬbN.kjT% iV )GJ@TxIENDB`XQilla-2.3.4/docs/simple-api/dir_3a8298c6d836e3decfae5f8e60ef8e7a_dep.map0000644001725400016040000000103513273140076021730 00000000000000 XQilla-2.3.4/docs/simple-api/ATGMonthOrDerived_8hpp__incl.map0000644001725400016040000000241513273140074020661 00000000000000 XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__incl.png0000644001725400016040000037040213273140076021432 00000000000000PNG  IHDRpBTbKGD IDATxw\gYv)V$`¡(Fή,1;vذ$5bvA{K4bKE T EP|ޯcy;73(DQӑ;Pee(22@;F ("Jrɒ%jՒ;D P\zǧ}rA9w\=(Ce(B4o<#;wNg((C Pee(لv);Z +^Zpa~ѣG_x} E A={֡CB>:txYAġ  z 8pݺu $%%^zȐ!k.G?o޼M6uq׮]{zӻvظ2**[n8>e e(9 4t͂ lٲRJ+wѤIww׬YO>={} PjUALMMGU!Zm||0@B @N*j̙'Oܽ{ɓ'gΜR?شiS=ziӦ >7o֭[;v۷oݗ,Y"][^ o#Fprr0` 2dӥ׉K.֭[޽7nܘ&BN>=dȐGc гgO!m(;vlС_~)S._,ݟy{gtΝ˗/ם;wvvv޳gϻxo~K׮]wޝy_uРA=zXn]zzz@~dfccӷo_//[[[g8p **jͫVy;}͜9.\Xdի>}RRRϟ߽{wA-_<%%%11166FYHx vM6-[ڵk{/]~zWW͛7'$$lذACe=??7nϞ=...ׯrܹ3f֭[_~\uӧ{yye^szȑ%K,^ʕ+R AJ4P2Eɓ':::YO<9qĪU֮]իQ4ir̙Ç׮]zƌvvv+==]d==Ν;?~\___EA E222Ξ=faaQvaÆKԽ{wcc?\21=y榦͚56lXtF&&&۶m0aBJN6))аuւ dcƌ_ȑ#3 %JʺӧOߺukڵkժ4󬷱I/9_xaee%ԬYf͚ګ|W>p;lll g/_B O> --]YNWZ}ӣSSRR_YT* Y (ʝJ^'&>fnn\]w y" v?NNQZmdײe]]eP[BBJ~:4>&Tz;7ܹ ʼsFuT;2ҥ?_s`nM>`RPfzŋ!~~ə7;8UtN{c5yۚ5~֝Yχ5a׮vmhox/ٶBŊF;Wڷ-_%W۶ܹG/v24]̛/_~ThQ[?Lh2A|}N3{vc;~qJ})..ҥ_>!!ƦZmV7hZPȝPpILy$G@Tj]~V5jdMPQ( m0wŋ i%o$%%ڵp?~_VV۵JtF :e]Ǝ(wR+Mn]OSM/P%ہ'M3mZI"e@LLb@'n? #CӰZ@.w4@(C`'Oqu9|x˝Qi.x_FmmjmuurG(Ο0f jU|P)zҝZxnwjUOUѮ^ +CH. {V)F |sehiϟh6dVTeǏcZZ\nխ[%cP(ynxܯߦl7nTPByݗ/j֬hdײeoߺAY,ԣ P?kC-[Tū (CFL>(詙a66 >M] jEA Z`͚ffR2@Ir^T^vWH\i~pR2@qد&}Ƙ J+WRr #C:t6w}))E J%PZ||5{PH8^|+(jA#Oш{j:tȤ{ŢWq\{$ )m{sxssEFFN<჏7_+U*)U*rzzJiff+.eY>}NQ(ӆ zÇݪW(w g-[ݻe((=]3rYq@i@ ؑ7?Ʀq@)A xhnniJ8 PhI{G5n\C8Tё;?Qg:p[up#wH=|PP"Æ ϖOKBѻwoQ3cB B X޽WuX_,@Q3331cuȑݻgVrBH\DPx(C Ke~pQȠrK.}߽2j^*t%vuu7n i.($fߺug-ݭ[رcqqq ݻ&))Izzz֯_|<~ĉ&MZXXdv111FFFlRjժIWZ===]B}WReҥ?9s?noo_\ڵk撾<))JΝ;O>k׮liǏyՓ'O/˖-V\lٲٳgO>=xY\ @6\:ݽر33QF3F kܸqAOO/$$s͚5۹s4^B\v|BP(j:<<\/_ ^ PB@++v]xQGG]s?I&#G{/4M:u/֭]OA^z [[\ P8yΔ){Gl;iYBSOOOGGǩSJ#o 888#$''͛6lO:չsw\t (qqqMyΥj;bĈ]ƾk.;v[lF͕JeXXG,--kժ'^Q.!$$DjK5PƌϠA.wiÇݻǏaG}SfΜARSS͛'BBBѣGuҋ={zxx|xڵYf 80AF%weΥK!Cztrg ׆ g̘qFWW֭[O6-##cэ5Z|r9٪U\\\<<<ߩS'UV֭-,,AXpĉ4ilٲ<+Wn׮]3fxiڵ}}}Jelll.Z:t_sĉ͛7ׯnZZڴiӢ#zc}tqqqttLJJ߿tS|<@٤|7뷩Cۍ+f5W] ls֫W_#(qJ<[ڦ͆ PD݋gc7mR A IDATfbbꚟAPãXmX[ݺuG>ViӦ @(CgXzEoQzree(y(cc}2@!Io޾}cLM 4')=]o :P"!!oߍqqoonn"w^rۛ7 EԔkd^H $Ub)2@KNN2ŋÇݪW(wL<922RyEٳO[›(-M*ffui ࢨx]B04L71I35M51IעE P2Fq5kV;P{#!22nϞ=2q$'pq㉛GWӹs?~BBʭ[.\vVDzܤEm4onmccP( |RB@IO׌ʕ6jd%wa!roVs`ÆE3ibbwܫ?/el_Hyvnk.\^JƍkhaݦMÆV:: P`4q|}4n\C8 Eqҥ?_s`nM"?P ˗:k0;Qv [fMH@D ࣬Ybũ+ R,e(XDī ܾ!uy77ŋ{l&w0=PvPp۶];C;KqA$=z4ቜ+SM/mj*SMaazt ||L;{vc;ʝ EшI6"^@;wdJgl牅҇28pI{M&&r'(_=eOρvvry,LPϹshQOG(<7o>qsUҥwo*wiĉ{n|^zJPҥAvtժ~%(( ڵk֬oݺޚ5MNTZq ֹԬYIDb2@~ݸ_M:n8Xԑ;N1ECBϚeĈ62{Ə3竁SX((CKp^688ٲeJEN(@(8jֹԩSUD+55cS7-]$baz {zZoookH.ee( Jttԩ>wu0}JC&MګhVשS B =zUʞ=zr)(CQ ~˗/Z-wƍv'&\ɩqYܤI{\ 8Q=iSZ@ g11ΞJx]Qäk~mm܉ QmpF,׭XVeɀ遂B ɽzOLL=|؍RP<?ѣh/Gl+w{?y3wn#'>e(Rx+ {Eqyԯonu_ii+Vڸ7\oŊ\.,L'P#99e1լYI8%e(?_Ol>];))uժ~jqD oiiÆm  V+n~qc~Zc:5+ɝ@)T<81dm5@ҥYfE ޽##cj@_o [YY}r(￶r婨T=:iӚ2C* h˖N-(C =]3r+Wۨq4YPBѲeի夥Xbޛ7*3T=w.T|<}400 ,8{TTf0X_`(<0}jjLF7]m!PhyӸq ur})IQL۷o߾v_BB+s(U*eM׮PPwaG={zJutY];{5Uޛ(ƴZqҤޣhB@e35224\ر~nM8Jco_޾ȑm.LwU~y{a+WtuRՊ:uZ1ztwjSȈPqرwPG8PJ{DH JGx=i>M֬^bQJ?Qm@A=zyJؕ+aǎ~]]}Ĕ/%5iSSw֬Ьϙ-(Cl>>WuX_,Pz|Yg={{We227E!--uױcU*BuTS-Az͹F 58̟ȈGʌWZ-[Zm'w(m3wum;žcBP*uJAӵAAO׬;)dfaa֣Gr^rMEQҦ͒sq|X^=Q~^͛={v[~ lҥ\"ZD*U@ɳmۅ+N-^,ݠ 333f^G޽{aaa-Z)?ZE5jfݺu!<<_ZJ* oY[[ٳ &F<%$$h|ٲek׾{9sO>T*e!׻QYׯwg߼-wdw={~A^z-jڷut:: A32鿣][[MYee^@ se#gw2YP U\yҥﻗ }-^߹s޽{~~~j:$$FAAV*UH#˖-ڵk!w}WJ3gHէްa;v9RHwev)ˋT_o>-'N jfPjUj̬MU3177577V܄̹s]3CӦw;YP;v2..N{$%%iZOO/_! @P<|PP8'NhҤEfgcddd``o˖-,-dzzyժUAP(۷o_~*U.]?Z[[Ι3Gʕ]?m.Kv9::ۢT*V*~СC+Wlee5mڴw fr| ݻׯ_b˗KszN9sF.]zPVaàÇ~u֣G>\o.gw1m.6on]zEPyQ%ɓwL;rdI΂櫯rtt}8uTis>}߼ysÆ S:wҥR'D\Zv#Fڵklllֹ4_SL.CCïӧ/_477W*aaa=z2+ǷHpNd$%%-[,3*oEDDİaǓr "b>>>H-vRR?Scc-Z,Y$sB!]cy;$wwO?|͛7_xq e_Vg>!O>#H)Ö8C1JGU*Ut =zTOOΝ;җ|Mfmmm``P^ye{(Oe(P?8pk666 V*<>V>|޽{O>}qA~ϟ:uj̙$555--MOO/99y޼y $$$=z[n9n/-.BϞ==<<>>--MWW0\/^|򥋋 0 44k-~#""-[Vz*Uw„ wo\\\rz+Ƿ]IΝN::u*44ß}e楻%ٌ3w#Gt=s߰ʕ+B^SFw-*****~!^reҥ7oޜ9sSf}X}I1]lٲ7nxxx޽[Vg-3oQQQ;v숏oڴׯ3ˇ}+oHGhҤɬY&L }믱cΛ7QF?KHݼy۶m;z{sEu>6h0_rgA~g[O?MKKEiii}Þ={\*_bիoذ*T9K[666 VBJ/Zj IDAT*5*))IʜyYe}}}ԩgkk{Ѵs:99e=GV[N3f'IGG>00PAUTb9f=f-Zj.'8uԆ -\͛79&Ef&/Rz[umB/ƒmviӦi&###s$11VZ6mEQWW׊+f>UN]1nݚmˬYT iiiӦMZj*UM&8 l۶ֶrK,SV-oFرc5׷m.GEQﲝ?ժU϶ن ڴi#E]j{gcڵf<}t/^vߴgϞf͚Yw߱c[n'OvIII133;qDgdd,_^z׿s,Cׯ__N33ŋgKGR[JJJb^ -wm;OMU*ŋ.:GF*ϟ| @ ͛ۥꄄb2E Y?( .#/XZZ+V<~X ϟ| @ g W~$w7P/C⬬3;;;ڵ+'55޽{sϟ霝Ufx߸qcQAy(iii^\2..N&$$h4sRƍ dbRsUr[ʕ,]$"""s,r<\ ,iu/AзuIIIFFFW^E_~D ;wNE驔2֭[7A1/E\EqQEQvMT80k?Ң(fdd~w 6T*wo_~.Cy:P$Po߾1rA"V)w fffF \),,qƙ~==Ν;7klΝ`wPؓ%eHH{KZ%%MnRRQ*EZTZKZPNvf̜s$13gf_q<3RY`0Z0++KMM%ɇeee o1A oNLLٳq߿/""ҤzEEE6l0 ZK.֕ҥK jx{ 1wADߟ}0..nʔ)-_0-11ikjjX,֙3gJJJϟ?s̒}1WիWЬwæwﶵm|vvvMݻ}Z}˖-'N8#z0>¼ϟ?߽{ÇWnfnݺťl-jHlٲ}fPPPYYYwbŊ̧Onܸ|7ofOhf~4n$I77A͟? e˖#-##hccs?|p͚5?|~Iz: Cljb]3KxannOnݺeffֳg\[XX~B7' 4z2?ZII N߾}{޽edd O>MhwU]]VAAaڴi 4`0F-##>^^^쬠Э[ VUU mȾ}JHH}6Gշo^Reeǀ5n8gb|ޕ[s{;v쨮6sZ}mMZp {]^__w^--Ν;G6KQQqٲe555$S*fP޼)=4yF&zHH۷o w߿rL\ $))i7TBAhE]|)Xvڵk {b͛7544BBBؓ)(([r&w^YYY##Ǐ7#>>^KKKAAa׮]Ϧׯ=ȋ* L:@d- KL|>p`Ow>|xׯ_-[۷o߉'v>vݺuh׮]Y0//w޵CnHgNII2e155---ݺuKo/_hڵkcbbl>3((+V|ƍZ8 xw¨Q;6))a:;VX1dKKK/_4ۈӧ̙p%%%t5krss tiV ,066nY&MdOor#/P1WoJp-[.񇥓Y+Nq/;hּTdffjkk7ك|(**Ɔ#9ُPTTTU,((xꕱ1'Bܹӿee# ;l5PC. ?DIKzvDI䠸 Ūkg^Ý;wPɿi(Ht5k"׮xssskAk׮ٳgSB 9&?fURmn'44CJJtΜ>$woJm-t44dC6mZ֭>Vlݺuk)pjᮮcW4: 4ؚMSSSSSpUq*==4%.|ɒPww3cc'N|y\~0zgDDDNΝ7'3ڶ͜,I99%++kϟ_J(ACgzuDYYuݺɄ.ܲlϞ..ǚ|ZPJHHwvmAu|yXm-7ITgB_Ι7hP'\%$siv Çx)F9r:/;hDEIII&AILLot+NϚ5?mĸ |F7{%OݻD(pFyy] _Й8&*鯿WٯֻN+&&˗q{\*PN_0$66 Y xܻ/#Fٸ,j{ŭVP>;w&A1**jmlJK##UT䨎 lk_Z[x0M[Æxqy@Gڱo_\m-k>|nl4mnׯ%dgN:p޼~~7y@ ^55t'%] bb$9c$[P h4̙w_ȑFF>bS(,.:wnaTVqq{Ҫ,!!矶[u#` !A1]zWzFutArrw\QQsINKL|hӴi<=O31%IrrJVV֞?LOO0S$%|}|Wױ'O.|9yBCڎ`.X}*qӇϟg0G 9&UTDeѧknSR=SPVVy=HƮT:!##~'~î \Y]\\9eO\ @P h#&lYXb⻈E:Њz,7fN hht#";WK[[>{ݺJCy⣅š޽ϜY(CuY[:`@[cZI>J/fiy4e (E\~zZHqI?3ghKKJC1mkiy1cvݤnm?|fXq#"B۶MDޕA88>|5_߸&S ~…GL"%%NuFcbStku6o> C18(y=Chx^U1sgI)x kѢ3gEu(h^HȃKCNLO &7Ȼp^:60)4…! nd|[w_>r&&TgrWS~mɽz)Eݻw9pbbfps;S)ա:j8ߥli9J^1c3YYa)[P  M+3!Tg~tzY9Wn|Z e308~YHqvyP@$1w_Bu[vjAAyXأ6\;|xKVW͜P h{{񇥝Htg<55еk֜XTTYYYTdbS;4ɢ:TU_Z:ر~~ *ݻwqpuЭʥxryN3g{s(JD-[.xypr2: @Sib;k_Zy~^eC%..:61qӜ9ýNWTz7'\[9O,]:*"I.WV^2lX/[׮l6>b(EG?[&r)O: @Gkƺ<_C;ۥ׌[:oQׯsՁX[<|.2ҽPQ m-t,y9slcQ@ W^:vJSt %͞=L\\KI捀U>|)*jqIIɾEVPJVXZeg;t0MŲe ϜyDEE||6lzuD@mfg(Ν7'3ڶ͜,ȓ'߿/n> }R$=Z5}^6j}ڲ$FNNQwbm7ڹ%wع3vKP tg` TgX߿W_DDhVV<|rwv9$Is oJƮT:N,^<>'$..8;oÇoop#BP%%e9;31Qt韹sG=>}*-/F*IbɒyNzuaozهzVY4C1:^M37 IR IDAT!RU߳ʕU%ҭ s:g,\8ɓ/^|lS&&aan7orq Az::@=0QL ?3ZTeݻ((t~J =DFX6vEm-c}˗Vլzǎ`HucÇl{.g.gYYab(Q^^cg`0)(t:@G_:wLJ\(~4theO|02ڹs祪:CsPllfPS2D#"c3Ժ\F͙z(C (-tWQ:@EdL YQTT@ٳ,S4mL=7l~1cv>~Vyygϲ##ݍu##/_[++˞9DD]MB1:SP~~ytuT?~cEȳ ޻#CE]]>zi7FOףGE KKsIu13"""r"wbCEEEG=q32#"Ս8ݹsIwSkg;Æi_ءvڵŭ[UT,-}Gu( 䔘=~Y$"++5a)h\YY̙Ţ" P !II٧ORc0/gÇkhD@KK HJSSu:TE<3R+55C=z+gʳ))FFh4Ab(tDL&kٲwIu n|UVVmn>Mu"AFDc\&>ѻnT/>Ξ}wo3g+*P&鋈Ю]{ɥUT䢣hM`IIz6Caȕ+ï_O q50Р:A;dhط{.im[ %BDfeÇ\]w'66$IsqKBBaanRTǡ1:Wpe<ܙ3kk665{P $IO_=a_ADEE82Gm(7o +8ՠ ѣOΚgy.(@DzcGlD t)$sACC-11G29ՠRSg˫):T[_`0 yti_ىA3>xW,\R_j_)ٽ#w71ѧ: ܹ$}9NjPFFr w9ՠc` 16;`@UUo+}@D.^^3nZx&/ _ݷ,( 0'ێEEb݈',lYO#Fl)Sݿ?;P !l͚ȵk,^<,TVVQj'33Wh4ڄ z7o]}(>t̒* +23 Nz`0o滺v'O߾q$jj I ԓˆ6ev/'S6C1իW]Ҕ,Ќge I?\oedo܄ѣpw?I; vmv$&& IkF]%С))9qKLذ!Ν7 P uwmfNuh^ll\tܸ~:I\ƅׄS JK\_l:sɟSgϲi@ŧ?~Tׯs;xzNpaHZb(tg` Tgz%==|Ib.%s}!#%%ma"}}"#8ETa0XYedgSwСG?.e?PBIIYLL}}mDD4P…ݻw6L{]̜981]~~NH5<}\RffE69...JƎ5E~bb")..zo]v?R^^Z P6iiȥ.cn>0i~ΒWr PUUHiIY}`\i|F#DDhFo>uj1: #p{Vz:]Jdeq#6vl'O81y }OIJG2̯_llʪn߾8hrhXii v-4z욛 q}XأcS{"ϟKmlջ.o|"/]~$?^OYY.*uS9`VV')SUUZuXuxUxexU!d>塯y>})-%*O8p{ +++++֜,W<-2eӶnmҤ&hP_--CCHR~ѣwyye3g/119sGF>̑u}ڍgGܹ󦢢nɨ~sw݂L-񣳳skl?v_ z{{hݻwM4D˯FDD9@2339`Wtz{[.XRUUGuP d- KL|hTݻw}ݺɘ ?ҥ .7\{EEE./$IFDDhhhDFFfi-J>| ߞN,WѣΥUEQ:4C@XʕׯhP~^˙3yuRcOOϻz5RTTlxSSӆkY,Vqq1ׯ_'''fi-JvIUUUUUUII '..ޞN{,_ %BUU䰰GTg P$IzzF_ R~ݻo+*NHU]]SguT޽7o̾*66vРARRR}9uT؟FDD7nҤIuh0==]ٳ ˗ϟ?Jii/^H[oسg5k^[jhh())9::~T9MOYYyuuu{aRPPصkWC&M}}b0A]ghK'ntTg۷hhxǿ:@K. Y0|j36_zXuZj[`~xS^^ǏI<|s|r={n%$$\\\>}JDAAIǎ;uTXZZ~1%%eС6l I [[ >LDQQQeed```nnnppXeeeHdX{>|0I^^^ =1gΜңGQ\\|nݺ1 $CCCY,V 4{{'{.%%e۶m-4w^}}#FYIGdcjj A3f(//?{lTM^-il?|C+%&eeoh, a׮K={p9A~uu7>| s^vm ZY ---ٳA\!!='NhZWWJ&y]$IZZZ4{ nnn.ׯ$IIM>())---eXL&q_$I&&&$DDj5e n߾ݸzUU՛7o$9mڴݻwH[颢/_siiiZׯ߹s׾zc&U9礤4|}a#Ν;$I2Ʃ4[SWLOk^%A(((ܾ};11gϞƍH"""i4ڰahۜl+V|ƍPAAAeee-wmS;)99%m4Wn+Vf2YTgP_֬\nr۲S_ݻwqu%%Uh߿p nnnk֬YtUou]tٷoĉKJJE9zh555;v쐕2dȄ RRR'NX~}=)**ڸ'*++7\2tо}~;ɽ{zyyir ޽/bjjjjj[hijj:yѣGkhhu6'IM6evf_ ŷM} }69NBBo^j꧃oP:Z|T71۶S' a'U32/]ZIuTV֍s ;fԅQQQ666m:33S[[[+ :4oMM}kkk Zsvv#W0.(to ڋ,!`d(;w޸tt4B%@0k^y6 < %%,Bǎ[`YZ"(9JyyͧOsxR.?ʕ길/@C$$;;[X ni ` _VO: MjhjU:y]\\Ғfsɹqf`z=AC@K矶{^: tbTIIYLL}}mݓNll!zu:HS4m^ b---!#?nܸSX99~Mqf=~^GGEQQ{]p3ׯ?3y_~Mur |$-1ctEE*0gǿ䟭z?6,Aa_S;cdy6| \k@G11 $KJMDuZXOOmLaWdA~F۳:/l߾8Ï>|( V vjNA55]bb"muի)FiQ쩰iӬ۩ Pϥ66]CCJKKP8"_IMܾv%YIKJ 3>E1,ܯ~ҡ ed$_P ͇޹fxu?<̙3|(|CXBD8sɓGS@ʹs^[ IDAT%奩ڻ*AZ?$',Y:Ĭy?Hu2CuuJ+WD$h)>կr4а"#ʏÛ<Я…ƻw_6m>V))ۏ*qA6;9&3Lعsj^RR޳cb^ܽ, P  Нˣ@uT%%!C4sFڵkg<: ?*-rr ھ=fIǏqee5rr#EMLbΝ' uի/TkIp} ʲTIO:p˖Q5CzWg.իq[RN("¿;|b))3 G?.Zt`=BTTt"0Cuig7GF>9~С5kANT ^}ٷo.A8f3c'O>?,Y@`d(\ $))i7ASӧҗ/?O*0 69mŧbb^P/yj|c_ o衰t{6DG/~@ G5x zusu{, TP a2Y˖%&X4p`OťJEu۸qa.Cugj|c5W ehFi{|ۊo;vÑwߒn7n|%|#(W0۷ ' 86o>WƳGܕ3g8z%̛7_?z, $P ۽#w71|ЬWSǍ'##Iu17ϓ'p7W,ǑǔO[7F^.*?VTԞ:pqRR*32Bu(wW723BuS : ;>ޣwoE3wLՉS5**Y etuѦ-[fǿ42ڹsR.n@y?ظqӧn~Cu(ۻ7?,mmGRx֭uup$xn2aanwlfv<q77(( IRIIm'II>zi͚G޻jee;est4XgIn@1%"-f89Qx'.寿QVΚmٲIALo׮(rQKS :uX81qӲezemMFt\?S+(($!!ƥY.^^3Yv: 3m8*77cN V]Ful(ݹѶmTg^qU>J{+QG好fܽa~v*.:Wkq{j|cg|45-&fyiiĉ{v\SCo[SuuGs6$?Q8_:6Cҝ-,z{[P(p+D^NL4cn %OXAAR.Kk<|}mBCq64PVVݡXa2 P,gc&&644==oTZm_ض{"aömtѣw6x651 m "BFF+W+(h[fԡ HTb(pFZgc;LR#F::u;w˫6::ݿniyhMO,|^No,/ ƔeZcZy#wOj}UR[OevvqѢ ٥<ʖULF`Ĉ>7oݾ=fѢԩe!!<=wJ(ACw KLu<(@~ ]@ݸ@CII Wnzu337or߽+xIZ--e--mm--emm/Idp}oƺe˛]KIBJJ?zuē'{4>ZnGQOHHڎ }|$? Phʹs%奩T"IWuM{H9lfSYYs\RYY5A]H>xA= RWWlNo,+GԭZcׯY4tƌm3wr2bOOϋ|w9Q@+WRJx@[׳S5˗LL"TEQG_IIRP5^ @wr?:?,%$~=FGG kAteǏ' ? Pi66/kTMb7nRQNu᧤$$;jjzZ甔'O>g֭w2n.:S.Q: Yfʐ!K~rw7}Md;{ͼys_اY@PLM )(?<:zIϞX  n|ebOLk{;z_rwPf,K!,!KThjKDISڤ)9)KuEȾ]$31+Ygksu3DŽ̠$:E\||A{;Hi78=i Jqpobfju".2mƨQX<(7 ))AOffXx<ɓt!!{.\XE-/*XGFeeX&?jj2WOf0%Of`%K&& ^PWT*}˖[))ejhb-sNU:Ȱo…cFG9s%ݳMI9bk;ѣ)Sov;?ʾ1(CML7mu+W^`,_nT]MA/=C@ {{Ģ XpܩSF:é22]wybٞ diAX&?0^^(c)&&,''~6EDEEP)((yXg<f1rn<~hJ8gLzsT>|ɪ`ATϺϳf^Urr""P.﷏n~0 7Opa՝;oh6AdrP E}mo 9{66W ܾ966ޏ@9X[뵵Q>b([ׯǝ9q+M0I~o(2m:A߿MZ4><٥?zɒKO .>|q03_*o܈߿#{`۷DDd>cٸ @)<< 7@1 <9tll^畀w=޿b >* cdX_ysӺuSY-Svv0a d`jUFNv[^_ٸܹ9tp1CGRTϞe"{]\1t5N1vi|xܟ.ڽ͛,9+BOOyׯefVxz.Tﶰ#48Ņlbf]_ߒQu0!(0֭6mqFݜ]̱j`Pvoٵ˗v2wtdП99YWLL?&Ϭ[gᠲ3;wO-+woĔ)jǵ44d=o PaT*AEQ}ei9իBBĉ2oim},G^8F]]WedDy tmmoWV~gG07mX<ڽ{/QAQ4<<_a 'OV%a![p`io˫dW8NGG%ӧ  ǝ?RJJd˖ 񸜩FRRIk+ A1`W2]O@Q?CΞ}I*O`07o `Fc{Wu 0|ڄ܅ٳ  YYuu-3f@184gի;:hh'&5`4 aL'**/sm`` Vʃ^A1`hol< q/X@>2KXR0\3))ohJJ*١gϮdW:۷ڿai7d!&&ɥXT||~^ޗ.kxSUvm]d3fhpLZn~k׽.3.]߭ ]]O߿b[ ߿-_n4k&K:ܷoޟN6~謬r汐 CKb "u꺗/͟?j_ik$'Nu_uпW K㻵m۬ P`JN.&jkjpwYȪޫ+|}X'O?~tG*PÇ/_h AxSRpa%A}PDҧMbhh]8O KJ*檥?q^^ˋk||bK FكCBҼ ~44dw8y鰪 I$2/Iѕ+88.w[t?.>>_SSL:|9&'3(E6of?ǎ=qu?3Fz^# K'N.v7O3G0|8]]rƏu(--MNN:jh<|`捞0AJ-z\=㳶:A:gF0m`߿=xcҤ1f뙭̐nCjjk0Q汣~~+-,yq4v ƏE)Wb(&77Sp)AVL̬5˗\-?ּʽ{ch4_mHh4zQR./OX`gz}yț7||8ccUvg].D; 4ر[퇫V^Y D"珷%M/]|ytee_5˟4IHCWUU AkNw[;|B%%INy2>p|XWWA'{ԩS󳰰\۷0TQQ7jW3M߿'|j]-999x/!HSSnH0 sx.]r[Q9s`Ph7$EcsbTUUYEF ȷoMX\ .^caa}v###A===w999kkǏ܃@FFsõA>}:o<A( hnnܸqc}}PNI$o>͛.]RTT=}tDDD_ggx&E>|%93P{zC${D+=J##sDE&NT(7ڿQQk6`UfȈzxb]DED_C0oݺ5''g+?v"oee5a„[n1/677ST A$$$^x0cƌk$ Av'uuu MM͊*--cann^RR H3|266!!!OlzzzKzzf1km|66V:1AJtzCC,-u>Rq߻x*55H?xp&$a-p8ȷoX\ /]dffļ"//٠-[955LJy1""ʪ۴i& F.))Hu> HeeÙ3gO~a[[W>vNg~r:ujʕ=[zfT*}$(|6L{mSS;JeO tAe˫tq mmgfe;kC 0u  `߿?:::44Agg琐}IGGB!mmmF)$$d…8Ç @  7] ׬Y]񇛛[YYYff˗{s?GQVOOoӦM899d{{{潇277y~~1cVZ޾y>c}B]ђrr☌^XXܗ=ƍrc! 1zu0h``ː4QQbK46mt`5YqȢ{ u  ǧUBBʕ+{ݹsѣG==={D\\ٳWTVV^r9s:Z ޾}U^^ܹszj333kkk+++77 Hg?}t:g}v'J1;wo~CADEESRR ݫ~--O!%'a6-T\\յzE:[\\,%%ņt7֏W:^lҍ  ȓ'izFAEﷶv\k/jj2O=s&,'(N:R8Ez˖-C$((hcP(&&&2p9[\ D3\v픾??`}y)߂;c_X8@MMu̪;-_|`Q g<}Ԕ)߷x{G=x Y~uʔkLvs{kde K7~:xHdy%FF,.C[RR:.XѱoĈǎ;qD~~{yAŋxyy :[2b~y:ty=:::))ԩSnnnaaagΜ𨭭miiYt]iilllZZZ% OKK~{gZpd)ϟgݿn|}\I;vYx–-3һ%qdAXL@ )aիWOЖTlddz/XXXl߾AoooOO]NN= -'' HCC O>7ſ7o޼t钢ӧ#""םI$o><B0fAA73g:{H$椝 Ս?E67}aabIIʕ}e@}}<=yc_o?NKN.: +|t:KA1@/KشW\\|֭999۷og^)..?~|g=={ VVV&Lubss3Jၥrrr8ÙW "H.xEbbŒ3x|_p?cp<Ԯ+555+**z&D"?,N$ȳu .G7oI3|}7X+kk=c1G2`b(@?TVVZJYYYDDdҤIo{@Qt͚5""" 13*)~ndQ.]233srrb^lsmmm˖-svvNMMa^RRR((Z__\X #88nӦMϯXgݾ0o3&--u --[rNNYYoo:K>0-SXXFM}P ZIII+VXrIeenn. ⮮ Y\\,%%ż͎qClyfRR"{f0666ߏ E9$$*""b߾}=wAPDb[[Çijj Ypa훛777L++˗/YXX<|Baap2W`׮]k֬"|x֬YNNN^^^꤭ AѣG#"%%C- F+"FRДR==Ev,񩩩quur劭m}}޽{w訮~QOOϞ;?{ի555W\9gΜC*++O6MNZD200={ӧ{ ,((xmWWWyysu;KCd˖-zzj333kkk+++77._lióY糣G:Z\;~(PtҥKOYYٷoxy~NNNmmm("秩)!!qiE%%%!(20(`0\E"f͚Ŝy-7CCCǏ/$$$++{_x] reUUUqq'Ntc iii{{n/G$00}&{Xq4g's?bO/en޼i,u1BXg] WǏڵk߾}z{{?~A|r^=ٹDFF9rÉ#rΝFooAPDb[[Çijjbc~rNv*,,LNNvww_fMдONQ@;f/ZZDDdac<=._^kd4,,~Tii҅ X] W)))K.6mڳgϞ|ᑖmnwyEpo+\ҥXa'OwIaa?"((hz~=#]v옽clV Y[ru޹sY؅JO~TӓWxmmo#rznďudffݾ}[SS333vvvX N:kij t0ҏ Q@XJ$240Q^޿#::h/Ǯ_?瓵shb۷۶Yv"B 98`9GKbesqqYpE$%%7mdccckkuۋ [X` pGGGEEEA;lzA H^Ⱥ{M(7wHU6; Sut :}1wbݒ%F:3C0tTW7$%$%dfWU*)5b=<<<<<;W"$J=JggWt9_Ν;</_~y*ڎUUa(Lׯ%&ܽ>~|7G=x) 0ñ|hq SiiR LLT)Zz'csPYYʕWtu/^\;kkҐ*Pϟ?gd|,oll'Ǎ5~d)QQ!E[ZĄ{orr>S'Lңr*S{y-bӈ>՞:J( bT*ERRM?m>W $GOL,25k$]H.K']}rJgCCcc%II%~më)XX)Gdٲ@)IAF/ Hs~ZRRqddӧUU 3gj:9YΜI uhut$kʊ!R]8 >>۷ϖC3c1s,[57w^7 .*ʖ=%&!j--9933+2333+ Q%E׮hdÜۆ*qrEp}}QQ9ϟg75kh.^<\{$-HKN. CՕLEA[{gRqG o6fƪǎ=ER֮c)aW^x W8yr Y`(Piie充 J&^@_=FlmXԲŋ'p`ڨ"<gd4yyz?Tn5N=ݽBOsH$#8K$'<~vF!!b-MLƴtdgWjNݰvsj$??~۶Y?޽ۂCCOIIII%ߗQDDFjS;Vvݖ<-lh o)+50`׆ ]_%..ljJYM<ur PU71,ZU3pw8mnRR"ż[ R[̬1!Cʕ.D^Y` (t:kff9sOw%%IT( raBppeXy%4X޳"cR#F74"0/''u D@H))eNϏʉIIIlܱc{3^]"5,"©/Ideņ;wWĸ132XzDҷlTCWW8X"7m_;waߩepC!w߽+ dz IDATIO/kn  ~M XܹsΝcao{A e'#GBtWPP=k退}`9IgHj[ؼܘvڵS zyE89Yiis63צ3g·l&LJt)؄Ng'$޿M_[bh.ܹv9Xg 6oIN.IL,JJ*,JJFFc_0qU苚{_ȳ2STT[Z:jjedH+dsqP $`s3oCSR&LPd'?VEGDF_* ojq"sqܶ ؽYYo ٚ? wC}kwOQQ9~~[ ٵMo!׭/7o.(H:PXuuCRRIRRIrrIvv*)Ij_?DUQq$9 `I;#1lEEE AҚtp07Ӧi\9hz} t:#%4**7<3C?N ϺVDAmmyA*edƲ-1wNu.e _߸bb(X7o}[X^^G )Ndid"&&u@ 45;/aɒ'O.ak @VVLXXRzS.]b('%Ei:T76cVʛ7鑑9m@ϝ[1q fs;;[ijccbYYoߚtƐ_PWrпM>5͑#Gɢ3fF1EQ7!!i7nLu"-MZ_];C0@ o2 ߈D~CCe&"bKߗtܾ|pJJ5]irՌr !bbRS ZZzmYQQ凨/?0++]Uվ,-k׽qmy&2YNg|D&)ط/XPC EQ'!!C ܉( V\\3r3g={BBgq݌c7n>sfY8(4%&GGVU5HJLvfiK`{UT}"JM<mLW`''K&1$EkkyKnn%JIL,qFFcΛ'''u@ָx1:*j_eeEX{ܽlG" | :@˫b(J߱nllݻ[LM5p8F@CFc_AAј͛Ϙ1V[{OK<}ꨣ#U uu2 ?^xD/+W^xxE4#QAjjx`=q˖ jxy-LE Vz{G<`wB& ՙߎ{`>y`!$* Q(4[ۯ_ܹΎe&yz%88ab(0L6zUEE\c X Aϟgؘ<8H򝕴4IJJ$/s[;͎ycQȔ. A^6k,z*U^\+*no?~h3Tgh;TUe-ߛȊZmmo nhu^"$D\Ν7vv1Y A1^>~ΉOH(D@itzÞ=>8xǔ)\1DSsT^^ew^mrڋN^T O""Ě&XttnLLn{;UGGa) :U}>>[L3?bٟY{xy}tbI)\AAfPKKdž ?V=zS[귵k\"66< G#"see޸q4mm'޸oKĄN--n"v2wu ޾}w`x&qg1XddG,27G&"B?~ڶm1%;1G,!,Z].1'ʰCyyׯ XK46^}.(hqx)P < ܡq9Z`9876n;W8CKKݷt:ekKNp!…U0$++wSNgFE冇gHJ̚yٳ|*<=IOOlEv72Rٰa{#Z(ۤPmmw-,ƭ];U}*(H|\`߾5Xqchp0֬1fhdS}}Ktt.scGPiqb Qϯ"ijʵS?}UQ<>>iK↭[[)oGF46))I;wnĉ*LeeU!0cWDYY6,PLCQ&Pb0P{{>>ٳ+XحH*^SӈϟWF~h|04wp@@%Y7(Cė/ߟ> LJ*!O{b q#6TW>p&SZ;v,m1A ._9{ի8 aHQqdvv&CWTԿ|!** jhdo?J/ 33uta˥]ĉŬ(++ HuuШW7g/'b_V[\\((h;e!@[޽ݻ%s 氰bA33+W͞%,L:Ï55eyqhɼ/z6q{Xnr~θqp Q^^?~ Kʪ"LRGTTdeUa_HP(4'ɓU׬̪>edDxܗ/C@Ģg#Z8a2k{WTԳKI)[1cʚ5\cOb(۟? xTʕu:Cf2.kW>rq˒suJKKÇ/=4;WwxE/77q,ÓVJ}} [/Ȝg2| 1s̙xɢRyy_6mΎ:}Yew?,O 9狡̭Bgڴɔee**8"#m3c+W 1(+KMK/} M,Fc̘1k 鮮RR"y,-Qcv?eJ 0\\^^ǎbh}}QQ9ϟg75khssITSB)0*7HI)WO/ea/d(O3v#k56Y Lrv\x3a57-Y2%rP x Eó::Ӧi?x\~|}ؾGRV69rd9)WVVFe9sMLT"ݳd6x<'FEDE$&8#1="/3\HؗEyH[e׮{S\ixXTHH74\sxݜÁðk`~b(*+%%~30%%E5}N߾L8H323+{oe|LLT9 @ ]_%..ljJDdINYYPNz[SPvL{$>}eyyK1^^غBLL}Ng8/ԩA]H$A q@1(܈Bz#FΟ?vyyE\;oSKxq͗HiiRjjYiMM5<JCCdf%' .dk;rXppѣG>{樥5 8?ǥ[Z'֭3.\\|/n SUimTU5XkmyS ܹ'`yLVVؘhfxDةg>?yrIϻK0Bko 4ӧ\^T Y&Cb(iT*ɓ?*:t"CQ߾5;9m6eITTPUU&5Rvvs.^q Cc RTT#''^QQ凨/?0++]UUnY΁I9ر' mg,g@$~~|u5lUxƔg !*(ȖqG<^ĉ%xv z Mwu: }wC?N=>nlX=tq 1B 8xǐܔP)-/-ED8h)S`Ȑ!GhVVaTu/喖:BXt:#7<||\ׯ yVFxhUU#b OrBNK" "A&g*?\itl\yUPP1lP(ZPP߾5-\hp֡cǞ%,Y2%JOf >'Ȭ^=޽l@6ZRRqddγgMM퉉E:9YΜɵ(C`fhSS=-,-\heeE~偙T#F][_FT*64n|3= sq2Yٳ]̱@ WKK._ijj_n6g+?{^ss͛w*57w~;Vx<-+**`0[^.y<]CC?&T<=aYYD"uV 'p2Yg(jo_ZZnJf~@3Xgiuinxh'lU9<gaP Kcc+_8:aô[gHJ`jRQ.D͘10MM9aabZZY_L2ÇϘ1HOYYmTTNTTNbb32}D82&辑#<]X ?.ܱ#bܡ6MWz/u={⌌TUuƫ$jCg6+g2 q!VZQQ;`@?++ݻg 6W5*2 tW>}ށtu gLK"TT2s7oٸqҜ9x&CtΝg<^jd'!,,8jNJJ$Cd(1_w튽?饽*Ƈ>^RzzڵVtПdsL=jWsglh"@{}RRR(4CCՅ [[tݐݻ 鯿=*r%ɿy# (Dm^iŊsCdhuuKgn]رz;vBx p@eew"#_\z0|qqo6n&or ?fuaa͘R/11a ={\ |~ν{9EE,-uvnmmЩi11aeewr/-#zzJxEw3&O6$4BLoЏ/ZtB3 Hd(=Css˜7֚C7nV:j6ޱ$CnaX11;vĊ Ϟ?ߢU 7n8lv7>}D yqǓ쌷n-* (ވ`|>11Ν~$Ǎsq=~h!uܲٺ*y V_QQӡuQ]xH>qb gh+Ccc_oibvWSVRLIɇd(s7.uJM-qvܸN\GJJ{+F; >0>>W=c̘}!!=$+OBYY IDATqQQ!2.y“T*=&MRI|>'B%o$Ga~~~3/c%'ojw P}|b lv /̙S #[b2rkd;~޽Ӧii)r/<))9))L&l5lm___ԩ4oS9e3gIMsOdW HJ4cٲnX' T:B jjW|6ŰXhA$JI2dY7B#:T'/4ʸvmi8lBBOcA2w+VzmPMt>\+&ƭ{QQ! .$Cs:PLLtfzZZɽ{9ogרʍ1qX=n(,,_Οмr&߽yWH2|LƝ;o/\Xfdw,qqo6l46V=q6 a16VKO/d(g :ԩwߴ6^ -SM1YQP@޶m%0lhݐL& Xr۶떖:b|ީŶ O%&ܽ]WG!͜9/ss P+6͔73vJ^^hs6n2oń  "_w( vxcw,-O.;uђ%voz" ͤ<HB1/ƾssy7|XSw측CJL䟕fXݻo}Dn<\os\]0{g~=11'11'5aPM/I'wj ]S+e>Q<#((};_i!+*p =~1"u腾~LI_|ƍl ==(aA}80wΜЛ7L:q >>1WDuvL&+;sbbN\\fa!YVVR'0pεJ.ïQtNB̈WcJ, J##_}s˖)C_2]UKK}]O AkCj(=Xh$Cߨ[ķou׮60P;..ͦM1bW67;~G ƌIN[֪ 8l#`6X,E͒W)DžXhEE v1l@䯿?mb 7NXE"h~pUqU~ U%kt QF8LVV\KP  SU0o1 ~:5xӫRyb;Q`eer}%pmS|}=XbL|pPs<ȥPh 606t4)X!CSOjk)=2tӦh11mۦV}2,eƬ[g;2ի#=+ޱchBŋ  ҏkh^ZYmz;~oS?yR~e 2n@rrެYc]RRb6ƐFm-#, M߾#JxkZ+Ko_W,6m򥚧1ttHqqGWu}pݴ@gIHʊЯPalWe)fLse 6X!}cm7ݽ2mۮkh'$x@&&"JJ*v@2[\%Ww Em-5  Ԥp#0nn{3 P]]ܹsiG5 ' ++JK;?ɓu@$+ǖ=`[\]pjL}3"C-))/+F)+CK^GSSt:SHvh/ݕ++;uNGМ9s^XUUnذIY[]ps۷Wݻw/::˗/s!.n{@"B$iD"RQQ PkcLb"""tN hhChhRTT䒩SZYYWTTGDDHHH޽{޽۶m[x1Af͚effVTTSYYG"ot9--v/Dݿ?--m߾}>>>YYYسgBxoP______VVuVGGGQ ~]|B~u7?~oo着իnJNN.,,c?~@$Jʽ|0LVQQnzgϊZH2dr> ͋=|XrdN=yy'?t> \TVVNR ǰB%%%_;{aTTO ~w^1eJ0gܾ79;lu籺ZUUxǎΝ;***FAsss^^^}}=x!v2Ś5kVUUU3[gee!+ERv/^ weŸǥKpP1_~-$$ҳ!+""[ 7n411:t?ֺkX l_HNZ2rO98ѣ]\h|? !ӧ+++숊Jfff 999Ghjj3g׫WBCC K{aGc%,:55U@@.66l񉉉=’D"QPPݻw***#?~<22[eŗ,Y_!66=QVV~=͛7-33P]PZ ; eX,ׯu0+듽?qq<`0K:@2ba|E$B2#HtfV֧z{{w7nL>rUMMM7o޼vZ5ʏ?VZkdd2dȋ/իM6EDD0 >@ ,Z4"&&aee–fg޶ &f͚˗/߿?..!K&6m~f**""6mZ.H3gCVVѣGBvvv&L0`Bs]vmiiivv6JHHnڴiŊ -HKK׳ 1w̢Elْz>tred*&&ﶡd~+ ׭16V;."BdrMz!TOOʕUoe=BZYY-''wر˗WWW{zz^][[{׮]Xs6deeϟ?a„*l}w.dSLڞ={LMMǏobbuCP(cƌA1Jbeeeesss_ %wTUUN 1wĉGտN/[‚^}1Bj%d֯vޱtLDΝ EWIIQMt:' =lJ\~$n{RԵ=ĥ J=?x(62@{@~\ԩVVVaaaw޻woaam/^~YfTVV"B nnn߿ߺuSCCCA߿o>ٳ+444>>>..Ν;m*.KKK322|x3fPRRki +VRRRSSC!t-la,Je2bbbK.ӧOAMK ~~~={lHHQ@@@BBBGc?fK'((&;,M>cmxzzJIIaHef6X-,17߾}ټrn@Ogabt傂|b2YZZV;PR}2r6, &&.2yr6ntƚ` IJ64prr8z5:!, eee]]]srrV\)))i]hll~B[[ci4BHNN.99955UUUu̘1?9W(%%ʹ==ϟ?@.--E؏:xŋSRRbbbbcc[:͛6==>c?vHl\3'G[|[s!$dҒ%a]h#---z=}Jhi)xQ셅duuy11ߟ}G>tc (C&[YB^(|yŬYCxXP(={lmIxMr*$C{9 ц*Q$Cj"T>>}beeQQQl9oPSSӜ9s^zLHHhd2:'U"BMyy"lTjSvc?fBeeek׮=pѣ}}}/_޲hq /_o߾糹6!nEp1yrz4{AJJ2Os8TTT(BBMM557^?61){aG`B27Cm(l@2@(b;BCC+++;|jOOիWkkkڵk rttSWW? ZJΝ;r(11ΆheeegggkkK{쑒255?~I@@Z>F󉉉'OĖ EEE]z!$--K333OOO-[:-[n'>lnbb?jj}cbV}\`FX(njj*..6o޼߽{#w3Çkhׯ?x^*7+CCBlO~F"R~uhSS xUZ޸cXFML=ys\e?w_6X`0NgI[}=O([2pmTTG'Ŗ`w 7sn]u~~qFF[)--skn,y677s>iee;Zm|P˞PTTQ5d΃x/JJy|hѢgϞeeeܹ~~~!aas]4;;{֭>|cfΜÇ,[[ۣGX+66L&'$$l߾;3,,Ǐ]n]qqqzz͛.\ 謑#xU˻w_ 6>/G>غu<.pc֬Җ-S'Gm'M:(,,x3ĸ=iNNʯ6Dcc3BHR믷1L3 24}iC%>>Zr M\::5553f`Fz /_677;8857oޜq"eiy*:Ygii1"QZ[ۄcTMغxAAݻwe&!TTTLV򠡁*))ԍ}cH!4b֠AJ<}ک]z;}KCUU3BHBBHEEBUUBYYBEEH, /‚۶Mur:dȡCyQ u "?k%KF`Rq˗/Ae#Fh]ʃf;EE&s{6Tڵ-,4-㩹Lr $ %i>`^mAA͞=G)˗EttH ^Ц&Z>| HZLnn_u-̙346RϞ}|}!!Aooep|$,wTJp q 8>m{7;>>̙< Q#ӤbΜQ + YYbbS(4aaA ccU]]l@~5q:۶]sgo9⨯ew9EEǏw ѣuh4FFFѺ\dVji,? ]VVKV{^(Y<\Jϭ[mI$iPEE-SOo~bQ6/ߛ]}}^P*$C@2r@s\h4FTTZ`%֮RKeƄ= {1ScJKqp0wp0'gŽ;I7+ĆlNg{\XH|:(mlC!ikSmlbb2Q+@psoKǎ-Ac(i1>UQ(4/ɓTT1/>hX[[mr=⢢Bd2O[Õw+&&R'4t.%/_37de9xg55`<H"۷O3'4))ox^"&uV/_q<\\F:bɩ$hх丸7W<}d֬!ٓNHH@WdEŏĜcǒL"56V52R/kW\}1u %%'3ӧ9yq\XZge}};*((*C26V56V36V#9l2mۮ;kܺ~Ŋ&ܷa{³oCqW"QK'k.]Z,/,$Eױc~u(̓Pkͺ:-7v隗/?0A_EssuKX,4] ;̙'+V;x޽ϟILЎ6Ӟ=+NsgZg3~U‚X騃ÿk+*~`Ѭ11AAwB22-ujZZ=`5qq{g-\xrt ѿ7^bJJ}Px:BBp mm\gd980p,&Mb RZA$ʰ9Dzehfmۮz~۶MUPt{uuy LUTS&BW  ܊cL1ì(,$ݍ{cnq ^4oš XZXZP(Ĝ O(ohkkٳ',,ȽىDkk%MXz4=…gT*#.PENN{!u3g޴)f<,$$ess/Ot:r᜖~X$$xGуIHdhqq onqʛei"_ȥ`|ua40022w ǏF'\DEW  fVZx>3::}ɒӲ'Ϟ=\k6Բ|PUutHX_&YOk׌1cml \?~~اT:o<R]-훘w,R޼Q4N͛7t(_gƍ;~S>yR4gN۷Dž7޽:wPoo;=g>#6\bkEEx[>|wd(оqƏw,Ѻ`rq,bae4.šb2Y11Vwp06TJw}٣ә_TL~C؂zlQmm"A RW-B;pɓMLvijj?7{ѣGNnw,<~\gO\NΗɓM||&Q~ۍk1 ONVTs*\]++vB]|qѣGvMM-24-[N{z*pĞ=qܻ/\xwﭼbLLZ5aŊxtiQQ~ÇGFxl =3C͛c,,4pUDž;vͳ\;!**dmm`mmP[tnv||U$$Dml G}22vdңwmhhPUk! ЯS+mj}uss |7Wzu͛wyx7E@m2Gd `o?hdӚW_.X0l:k\?ƌE=yRč8EEZZ0eccs355Q o&xyM[))1 ѮPj8|81<ܩSK'M2Z 'V?rށשSmP]Я.S*Cvjk54.^tݯ22JJL1T;6knʊ{^$kgg0K-M8 Ȅ5/( UX,Q]]RnX,g糙 Fs3'GgXWOXd7JbDv;Kaxih.Y2j+ii~ٌ%CZhĚ5Vו;wzO׮`0tk<F9s ɇǏ'#~DGa|Fӧ8p6 !:9pY0c[[wGd(99_-_>XP~~yp-l#2t-pP qqo^}7ɬYCzĖmڦYY‚ Xݨ.P͚Ɩ-zm-رGbb®c. sNgvjl=ȑVsv-&&wP((K9njjko [jk˭2Ǐ ;~b{A\{tCMh8#̞}TKKq>3kgNqv>`Ý௴rȽ pcuѢIO zHwRו0ݬ-mYV_XXQXH~!"Q2darrLvx4 WuYUUɓ)g>pvt騾}]唠IxD4>ĉ)>}BߝJ1:JٳB)4hGJSڅR*Y%DLdkN_z?O7|=[ÇjSSCBt\ӧK/㲃TTf#pjjZ (,?v^^w?ӂE׷[Y;;/cҺZ`?m߮t,bb>?()9IJ+'SP'QQ11hms'1LM:CGP߾-ΎD$,P51Q`ٴm֍֕TCFFHFmw[ /uv5kTuNBDY蒋m'0g~Q;J͟Yk":.T}Lw(88رP))77ҷӯ޾-v6iiӧ_5(ѡ3 /F:y_.HI9ѕ\wZ d( K?yŊkd2ŋ']OOkqICG$ CBrK0,/_\ ZBB@FFxTQQlLo<34t? u+IMM^wry&͵QUשTjxLP_~Zܳg磻2iڽqkk1/^|HO?F5_޽M&&4~>U֭:'O{)o'}k+Ϟʪ46w䈉ζ\< &d Cm^\~0 ᪯o75&-a)='S=.AGG_dd~ppvNNմi\&&jj#CPBAX,/'YWv%K1ެ/7o&͚ſaƍ nIGD:RVFt)&22_IImmi#B^PP")S趷tǽZpPWq"O--7lJB o W>PUu3 ^^qy..qtDX[{wҁȃax޼KzbZ,@])F3KL|ϞX꺃ӛ7m)E&S_Ƚt)gV} .34^^{{u8f4.-Y""|+W*_AAϚ?kξѦ~֭~\\lRR0Huu uu2O+ׯ'X[kX[kSDi|9%8 A4Mō^^k=j(t\Hח%oߖ˗ Hk?JRϜY3Ν/\X;mx} aS)jKK7;vIiiӕ+oh{:2"]ŹsH0^druumLGS02w18th}Wa822umm1KC0TҦl TP ^ll,_?oo$// Κ|'O=zQW׮&nmij@Dz;axݺ;--=11~arr*ϝ̬;/#B̒%$<H8tU~~ͳg%%&so޽wF:!9Tҥ}իG2>R`)BcL?/jrr*WNL<$++423+o|F_=߾HN>O4޹sČ#o_,Lwo ,05UcߵX-++xZDӯ_<ف0J/F_ema:**/\;ztq&wqy922?1x%K,-&q>|tTU̚ſ|egAWiӧ;4 Z[{I?ݷpo1!^]?v.֫x>RsQpPP k6()᪫[oL |_|{ ʕONk599*f`"ɹܹckbF[}|R?|pCP M>f0QB|뺺6++!ia md$ga/D m{hnzH"(_|w"-= M{Eg^^Mdd~tʯX,ҥ-_@^/]]D}zz2W˂^}}kqϞpt\:);/89~tsԋTV~]ltzo0/&!Ýҫmsv(=|x6R(.nq#ի7Neb"oa:;Ho߷oo#3++6Rv 9X7J, ü22ƣ bP((vYuuk\\aDDǙ<<zz2s-vWT*uX ]v6Kbv|$v䈉4qѓ\K2+A3ϋ .PFF6,{S>XT .QT8!h6=EllRP ?P4m#+RGw 99abh8thuu**EDVT^^CBqRe%_߀TYkWap`OuD"ip[=m`uhm]Sʊח]lQ4)KO/}G P\;zDQq|7GO$K˛3g޺q+ܻrVB^#im43S8{bKWUUi#ǵChV֗7 ޶M\?+_[UU|B_VzTJC&E**n7k;8!D>r钕*"$CN'&=<0aC)$$'$$@--U--BFF->ʳ}|0D 2ZQь7Muyy5_vCnX/-R22o\##ES7``pA^^MlT;Ysu]9wd%zROgF}Fȑ`<w?.!#idݻI/HKc\Y7N#a/ͭVS߻Hn%(wl25Eypw0#ҁ !7+1񐬬"|Xcbr5%刴4f@ ^^ϞعS?,ÇU@pR᜜ʐ**--VTb4ō6zdT9X7ZPPW^NRaYY!Zݨ"cӟRPX-$4pmm\\^MI92s&浙I5a$uu>ݡ'3֮5k֌4(88gAA,:tTT799-ݹsx ѢRᨨ˗ߔ (6˟pp0ӥ{x b³˗rz$:>ŋߟ@*۷nJ,(pgB@2ƪ֭$3xhI$ʉag:899-ÎT?954$$'&ՕP56hjk۬ <({{+* hQyyQT㖖6Vb%tuqK7[r5//kh<=_ֶYY;9-b.?|FFfzs);;ݻ:sѢ 檧O"tOq#;^IiVWm 0ݻ) +W*k ##8,/{4.^|!"AEe6ұ a"O]]SV!;7#,@2FoYX0v-ڶMne'NξyӖ33P:j]]޼Qͱd4EttmSVFxN]]pF`p"m`}uu+ASr6ңRRC;18!(%(-50'!F,,"ގZYGׯ֚F3f9,._y]n IDATn(^}}G.]:olWTԐ$ԩ\};vihH*)͢m '*5/(`?_6yISSb1֞;wOby3C:Qniy3=55mAA٣Iaa{K$nL~=zzURʡ9>>M2{,ƸM|=z?UUg?ot C|swT2 '۶!\@2t򛈈<55cL54Dx{yy^]3 (?D").0$$'9AYX.Z4gzZ6m&mUT[Ԋ洴S^IHkn m564t32NnnvMM *k={/%%TNQF#MIIO:=ml7}"#ȑƎܹ^镯_=x rҮ]Fwjs jddY"}U[,rF`Hc@TawqPo)k~sxej8tFEgTMeb"oa&>Oξ;eeU^nJ ;.Tx͚}}_;;;hi+*)*77S+55urs+)cQVFt)&22_IIȑڌرxKE唽]Ft/7lWW3g^ɝ;g_egpXYiLLnEœ{@E_W1~a50rs̮;ϝ;gpPPAA]L#R$CzoNIݷZX.DijJxz NY""|+W*_1aF2z+ԭ[uN\'?W_;rD&ZzAp Oї_]Ew7Q@giMMIMM i4T\;zԄ1K߾-9D"IJ갏c#:Ɖatܙ>d2?iӦ=kx񜱯I E>>iix99MZXNdJg>a* ;XKhzzF]>@2ӽXv߶MmgE$C$}شI}K&SK|j== 8(šR᜜ʐ**--VT_嫽7leXӧ˯> 66vio%% 'bO20@n&N®:"cH0 JϞlh谲R?|x9??P]͛Ksu]PCONM- ɉFtue,,TN~gw/>zd|Ǿy3(B N򲮮n9t(}:z<7}PA[OwMMm &=##==_ֶYY;9-eIw73]xvOjn+@&S>Lt)QKK1.7aallt֭~,o"hk]xj5aa;w{SU3E*d(KKû5[2WͶ Z6x 2oo| (42ki-=NMmn@ll OFQ|Қ22c-h'<<"~tp01cO)a":|89$d0ׯi50}19\U>Y>eb ?޹\\ //jgz 9v,),l/ҁLJզ^11H bp !1O,'#2+T 2ˆL?> ]wRFCJccGTTADD^vvд׮U?_fG}}^^֋o|HH?16뻅'Q(T}}`xy9.^ZldlƢX\܀JKrs(D.-ӓחQTcj@krRto"?~<,#,)pnvm1.Y T*liy[Lx2#<<"BCs=<Dz5 30}W׷UuMib߾uA:pq KO#8*`(GgdAsynOf2`uC[[իeN?|xg(e@MyUU-8ڬYt>^^FBML,HN.൱ѲYO..aHBd2UEN @^oozH@ t{{oXR f;wǎhk㐎h(խ.юP js?63S\Zyߖ-BBNZ5ҳ{6L| &'ouv6%'fd5wvѾbX^yyQ9ffJ3Mut޽yu4&~#6 ڰAx[ %%߾mkjVW\صk|rwE tٳx h;((ѣmjj˘.KD:+ܼ73EL'&[7>M˗֭DO11sEh;:._~>w*uuM A:m8 'ZY{{w0n3gX[k" [%&BDl[ӏ͞=&dF}qk2gbKV֗˗ߤ%3Xxc&7%o߮~r_LqB:.{ srM21PUS>WYB˦a0h uuCyѨWܩ?Nb, 덌.p! ZrڟkfEsswffEJJqvvUUW h4 2K]]BFFPNNxt-ڥ2¥K1JJbG,N&T*UIUVtu1B<.,')yJP(Z Ξ=SRrYW+ M?>jl76*+Ϫh62``D8iGb5}Z=zL,Y2o6]UUq91`8tZKK5cO߹Oح^}`jo` P`rRᨨ3g"ZZznٷ`2힝]\*##kעUcX ]GPUXl`ﯥ4<{wO'sASScO{`PZ?ie_vCN KQqܹpXyyQ;O7zy3QEEq:PyysxvVVg޾u={傂‚&[.X( ;{WNa"- /_.0~$SjbGLZeyy1;M[^8s&϶mz֚#>}wꛮ.`Bgk*-mA+)n9}{z[AO>%905ݺ/6JBʊNOM,.n((ʪή" baP(k!NP^^D^^ًSy\TffuܹrN"Q.on~33C&" (= 99AϘrDSD wS<̙"##9w#j/[ZٻemmjiIN4ʕ狜9@FuG " ;[cbk `^Vs`rK;~'20@RSYA//'fbM52 LMyy5?Ք6pw7 oz0Bbg"0) efhbkm`4cW0<0@Y˗䄇,ÇFF\/ODRR_XJk*TL"eHP .Y.eHRYXgD<JCCs<<"z{v߻אŵ: IDATϞϼ6h/226 ܿhz=tKPp*ЉtT˓U@|4fB jAY(0z2`7H*P(S 熆HJ 9bt;0Prlaǔ)R1JұLDݝD|5;2+KAA]YaNNV^^.  ,߉2$$e׮ES.ii9z4dӦ#ݨ> G2I$Zu #2r/=!JH8D+\;+ ?%;ەΜc?P\h^ uqqߟ8r$,,в 66 d2BmhRጌ̘O+V(YX39XUuIķl ڍt \\^{tvϟ].0// -=*##(++~W jOr KK54}C,ss[5{{K jh~: JTԁ6 AP|3mdә3戮Hd }-nYYѬ,/b NNσipWfqw_3ب:+>==/ PokCCNjuu66Zk֨0Qإ]{ӧH2b_v^ZX]ZZgN\yBb~=ÿLeڛD%- x>ȄOdpEEhrڳj#&{0Jha0 ǥRኊH5ijjZZZ"f bV7ZPPKK~T0 '.m228,ZʉJ&K0/,uWHJ*IH8y2^^{PSXxJ d2w[ï߲E47ˋPS6lФ3=lmAKJbc3AAYT*WHP;;[ fB2 ]Z坝]]nl;S!"1jl 6wS5 ;dB1PѵXYˆ}}w&9;/kokgUٻ+Wbd_i_Ϟʪ~f\~&޽׃0ɱbdded-- "̓21S}||QGGz^"A 0 Mk<AFPP-w^(4M8LԴYY >,JK yy5yMEE(3ⓒQ( ëV) 5;dτҠѐ[Ann/9d<.(w]Z%%7'sAVV>>`e?//'A(j )ji`Мw^n3t&4((;Qp]]ۣGVV3~ Ra eh8O΄B1e {SPzZ@yys[4|TTӫAU0Vg}XNEE`XX0䀀KL,y/ Dmh06ٻ j8ߌBkC:"q85kT\]W))9񣛟uԅZZ?g9g0\]jm}wխΝdXX~ӖLTow~6s&ÇwBd(A(BA-|(M`x+~$&22&`ru}]L5_&ˌG2TTf #g;8!UO>v,tٲs d@2`P$/?f!baAӾΡP3y.]pY>*]A D:9/ x= Z ةFFrNNyydp-iRm'N[}Ǐ]&NAbccюWӚCSRreS**aIO/lk &?ww~:VV0t>>.a%A/r&1A]HG12116mBlT8.\x_Ӭ+ ={6.wHL2`4bZWϜ4pqH\\dNN2''!xkd% sܹٳgqG܍:;k0 0Ȉ=8{Qٳ|}XZZSjjj\]]6n˞#rii_ƒP(=Alٲ2)) wwϟ뇬kډ"_Ь LVO A #wwuuVU74t}F 8,,WHm*a.++˹f\XX/_88ziNAdcorrzڳJ^k'++ZPG\|4Qѩ""SED_{|k^HƢ|P /4,ɒOfrss)";w6n_xKM-I{2d(hgffjii!d6}:E$ +tW^=dhVVV``_dCXYݢ0CBA?ո 6_U:-Ld˗/WZɓj C\UUO=55]]]///;p.bGǷaFP(Zq(FHWRr:'|Wb!-NJuv:#ZmvMQiRR[MIݻ ٶmju'N.0--WBֆF<AB㋊ c3f9x H!0 rHYYA˖-KLLtss+((铆wvv;w466\xw{1 ôc.lll[n  0ׯ_Aڵk޽ APKK/sww711a8<uҁ{4STԱ> 0  Ht7vyyy77 eeeH˸0,##Fhzҥv*MP~wwss6WPq{zz(JJJ`V>0<00ϴXNN77cXYY/^|r}1ϟiw >χ t6hQٳѣ0  ^˨g`d2YPP0!!cÚ?~ق앰d .h]`hkݫUk+* V*u"b( 0FB u6"f\9sog̙3ȑ#}kSS)S<\^^^`v#,WYY{zz R 9rdNNNffy<<<233>}:w\AH$ñmmm-L:СCGh~.r?Q-Zѣ0 ,V Ai e0ׯYz" 5mr͛tƅ %U" @ Wa Fr|hii+VPWWBNN=HߧCP&wygIIIQVV.,,DDNN7" @⟩ "̙33fضmo>^DQB~quu5ؓZ1 .H&׮]D&6OOOm `0/^cǎoߞ;wn0yy9s椤1cL>Ç@ `0 yEE %߸qӧ}ĉtzVVÇyU0BCCoݺ0qDSSӁ_%1e*BC ~e # ;wtssSWW9|0Fu!3(Ck-1BIKKHJڐ !IR];wK`=>>=ʬ2&Mf># n8PBg #Nz͑#G޾}k׮Yfq8]7HpO0b53EK/Z䩣3RҶ@$'[Y\9AC߻;s!5(@d3tܹşbȿ ʒJ D`o9zĿg d քvqq@QtÆ L& TTULLL@@H?Ӂ Rę3~sss֭[FFF %F[z^DDDGGյ}vccc--e˖Q(w+EmllSRR6g2 Y'ԩSfffΝ[l!ߏC@8hGGΝ;yp===##[2b0QQQ?zFF gϞU= lذAUUF0Ujsn >XU~:X8q@joo<|!>z5İcFEPE.oo[ᒑ%mDܻ36mlvݛ,! C 2!%%H]{{;L&s톆۷og2AѣGfffO>ݷo~xx8O& E;w=ZEEի(X,͛/^!!`>^x^TwwwUUU,{Co(JPVZgbbm69 ϟ?Gŋz޽{Ŀ磧666ڇ5}͛CeuB(x!B~0slmmy/^țfp$NWUUEls%|/61T"p~7GGGuuu__'O?Fw(oUnF~t:u EV99m۶(fЏ-2/_rm܌xab>qmϝ;7iҤA\HV_kZ ɇOЁb(   Օѱl?|Ȁ;w"RZZ;,@ <^| Jr}uCׇ%pM [KE$^G {ǎ,>TU5[Zn?e0 @ h䳁 DhkkGDD嗼FFF̙3A)vA{.\W+O~tʔ)ϟ?ؼb05G&akk2􌉉splll )444o < aÌ+uvtt,p ڵkO|أ~}_nJHH8q"L*i@NNή ''ǿ2Hd{311)((P\\P'ϙ3'%%Ǐ3f>boϟqӧO{B? cXXO?\)Yl׏9lٲOn#Z>1`hR[P՗rrr˖JHHyP%%  O~Yko۸aC!DTp5kl޼=JMM-Z{YV{)*****ڴiSMMM_f͚uMd26OII?>G[[AWhӧO s@f2 ~@N5Ғ%KlRUUUTTw޾ AΞ<.o|EQtÆ 4Glj Eߟ?eLLL@@@_KDGs \ĘLǍ_!&ÿwCCCCt+uMQQ6PVV޹s'omaoo5Em۶1fϞ=SLYd']7 |aw^pa"dML '>>|[]L8|.qz&&[o (A r,O~ 'QQQ˗/BTS x񢭭-{/^JRSSUUUXÇyutt= v>NNNӦMn(2۷l߾dѣGfffϟ?aٳgmll:޾}`]]]w*ap5W^z1|:ZKE$(}t3Q̘q|XI[}A8=s摱˗9(a@ BҥKׯ-È &Hy*^0N3fLYYى'v ~uW^;v#x~ʨ[?sUUUnnǏɓW\a߽{wŨ(^sΥ޿ȑ#@D/)0MIr>{VZ\\9U҆@$C{{w%{͜,AOL?t_|1AlB < @ ȧ9aț7o֬Y3uԁ3aIKK0aJAAӧ@]5^7jkkZ A2,_رcgן1cA˗/9slGMOO=:mڴ#GpB;O8agg7v؃İIZjIzӉF\">|P!qdSJ(Db(J@ϟN0dʔ)d2S[I[III!!!x<~=6AEi^jGVTT5 lTWWkii GGG恱`ggkUWWNEHd 8bXӤ-`jjZ%m()i__- E+/N58q":jTB!zB @<'NYYY>x;v}ܹsMzH(..SRR6y[(ׯ~99;A*CAx$iC Nں3-ψǏ@%"Y @ HHCCCn&`0~AtqƝ;w>x𠵵ɓ'?#5-Z{EGG믿.//ɉZbE?;!l`h(]bhuuݻ[ Dٷ:vlBQ_~yxpʕ0"P @ /.))ᏑGD[[ɓaaa˖-\_}նm۾+Ǐ;vL__AhhhxxxL>ѣ=z[~=RS_͘1cΜ9wg' X-[҆ï>45՝;M҆@$ÇGhz,m[ Ν J(D9C!@ C^)SmoݺW/LKK6m7|v޼yA K.]tIlo#vڵk8;!lj!D2-HCC[rrѣGjA&wdp&W=+|y0!D*b( (!Lnkk((++Qdr_WׁŪ)*1QO" Yܥ">{@ @%tPpwr劣#7n(idcu!& DTg>60! {w?@4cRD=2@ @ 411qb!gQPdQTAQxA\WNNAEBUIYٴ"?KEEݎ\NNYb53% F)2׏HCp,VfXMl6YW'0GUuŽ|.;SbBncH,V_ƍnÙ;wvvv.Xz͚5߭f~>IADEEE+*KCfo~R28nMK+v-BKK.45ї/?ڞIOہ@ 8a0KJ޿orrrNNƣF;99;XX S>>>;99J4DLj9̙W'ΙLn}DAA~L Li_q8ܪ?|h,)imrQUUe{{r*A7 dصk'YZN\.ZZXXX_TTWTT_\\Ow)*a\\L]\L#t\||<! Ixzo)6L&&yJ"f(3f:xpHi]켢LLtD:@1@DIDUT4q8\%%++WWSWW3HMvƾ,,31Y`Lx8ss=ԃ{p1eeGTUE7 OKԔgr r6i9X,Nee3GIx<'Դ"foqpc]]MMFDzhoqͅ )~~֭>fW_M墋kiiHjV63Ӎū @1@DEAݻvA0M{4WW3;;Rq8ܗ/^4{KhĉvbKVZJ6;0HMK+HMͭV;5$ϗJ,-%@)XOh~!>~>::sɪUBCUTYm'q2=V {{~p@ Ě5TT}m8q"ҥwË'Ϝy|QDdVe˵Iϝ ~"4?xRII9j)+#%$$$d{zZz/\8F#L&_(R;wݸ]Qdj3{K}M?ֶ?|hjfʊ#;;f% .\xN[[mWOQTTWXXWXX_XXW]݂H''#=VMMTP 8O O"**br&I~;[R6@$›7!!g_zDэ㏷/=t(dAZb( !n\ {w'&Ti/Z?_˖[[jo r ~~&Ǔ_~yIpӧuTA1f8zuBLl}ɱv횳q(@C!d@i^L& Hc!pe9w\Y.+Vg8|?,_/, \.[Zp[ 2(}1"夊2RYd#halm MMu鐣}λgDooMf%?:jfo57UP 8O O">>{cShwTTD H fgW>zCD-6\yܹY\D1"D @ NTT4ݾ6>>jbŸ HU￿_ A&&ܿ_?6$+ U,NJ //7yCHhgh]UUUUUU-lP(())XXYYXXYX虛 ܑ#U.fD##mɚ rڂx|#օ =dhk |9HRDJJuYmvWI"]hjjuuciaaC QRw,#;{{Wř0٣iH92rwEo֬]{IWW=6v| P2LBUPPDGDKK OIgqpfsgv 6Iӓgf.]z|Tj@VT9sTPNulk묬lGmimii5403G335732҂n@KK{|drȩcXHڨ6P^TQDDOOckkhccDRSS]yyِ,S>q߾6DJaM99Uٕ8\]Y EQ F\EE4@t8;r$ի/X ΀ 56}!.޽ɓ'۟=sC P @ 'ȯ{:~hHR44ݺ,$+8sH8Q||l-v..55?' ՚;-(Zv?L& њVQYލ 6G-, 5X- 0씔w?-)iZn9ҩV'xbmm+3 dг8;)E)8DMCC$"X QhZ Uֆ@uu5HC&kD(jmرš=~.]BQQ}zp;g2{$믾{\*dhP"w'G h;~DsŽ*34 t_lQƒrQ;]/Y#i[OLMON~[Ulf;oDzec1JGF}="SEyΤ55k/+/^|~L7,7<|Mh]55x<'Դ6vw_jX, Vl/R~ZH$jvvUvvG(( 0lMnn>>Vf._aa7WbB RˡCi. wyWKK2h]`RR8+ y_k#n!IP"OP#3 -$55%% ~be^ssP:%&VkiΘ1*4{DUyDHJ`z$56֖Ism}.\8&"b-`QCZQpM`cml %"0vD@ήR;{;8`%m#ܼ7AB=i5A$BWk9%eXӧ9s\_ %ulP"8n]?kk(jj:8`yf#F(IX!Brǩ̛c-iD 篿"Nu-"r~aBBvQQv@kPቤ@RieeS{{78G& Fфۻoxs³zߨu&Od/iGw7L@DII\ZZH[H1c~6M6! -/oO8!?`0c CYYe+,I INBBΫW{azGFDļ~]yfa5*/oꫫ-_bP@(B q@u}Dor u+s wS{e֭֮,iCDKi)1--nvwjl쭺e۶SwWVz (B CwUU5pTP75$n s*35 6eaa΂c<""bʎ sFcwQZZӧ%jjʳfO$z2!h:rCCG (%%ccm_O KJSRBL&}][`0GT5ژJFrȑP_YIC$ұfͥƿfCi 9&; KCP @#'AhhptFcܹSedhgX/|t-3%mRZJLKOḼmx[XL /QTILvJʻ矖4z{[[7yW9$&ll RA `x^ήή,,b89L62Tgݻ3QC ݱ9͍:q⾚sCB dXPDwEEJ??/11]˝5*aahrI"phnnUjjo)OOˠ  K4N$RۈĶƶFjCC[W 9shcZ ^YvvŋÙ醅OP端b[[L&Z[ZZO*ֺ: ERlPz+oo+WW3Jryqc\Uq߹WWj&ܞ!@^^_\47׽|y y+*Vk@1Ar2HEEo(f+V[`:zϯIMF҆ @:Ĝ Xۆx¹'Ji$W j&6736tꖋ_ZAA~bȩ:;3هEmaG-{QVFb0(ZX;8`RXiAw4aۚvP$޼\ob-ř2列aB"%_Ӧ99bp;s adPdbq*+q8@Oj?:+=0))7+ Z|\u6dz8))7#ー!!^-A$H45 Dc0ZX63h] ?%~~6myy5AAdd|goETjgi)'&r=ϓHE"pn6>cc5f޻\^Сϣa2:??wAֵu9ҥ禦:/:QvB C(B C*ֆAIIyl6wliӜ`-'3tEEtu?.@zCv>xP zMMՙ3GOsD,Ln>$?E)s)UVVQ`@fR ={0IO/όWWk'-\ ױ9y2 AI$ZuuKuuKMMkUUsMMkuuK[[' JJ &&:>THPѺ2'~.˗Ξ">i4Ƹq/ݳ'PX}BM^8p`ъ>9<{_\jBb("p,.'Hhhhu+/.UMMYHWp@ ?%e SLťTaZsXK.@!xa6 Q ]XOO}ŊqkNVH-e|bI"X@rSߓT~/"h]@˫&;@@=/(L>lqrڳkלU&R]{_xz~Zx}t:cI7π)!C!DR"@+*8t Ž*34 t_lQƒKAQvסCKH'''j63ӝ7cٲ0w{~RpRWKNutт: dr۾?" `m 55ږVFDYY\Mz0˰A"Qp8BAdkjps3ru5Çӏޱ#@(56MphϞk' C4jϞS8>I7iiGܫ#/Y}{-A 2 C! sIx<GXqqnzdNuyŀq??(%dJKIIMMt{{lhWH#̚ Hg' 75 r^^5Of+(ȃ())kihikk70Pnkn替  9A ))i(@=(jn ee} qLgl)ns纩)K4QXXw³wj+W_znHmn7674PZZۚ鍍Ԏnp+Ŀ>$n(1eF?I"Z2;b!jjZ0Pf꽼,aƤΑ#w>|*4,JMC.ɓsݎ 9޽[pf?Q۷w ~O0w$˫ 0{P:%&VkiΘ1*4{D;iС @w7Νwg>V6͘1jӃ`Ԧ&:Dkn57I$ZK KW:b |HXm}}u F@PSp/\y/@zMdPd#haon Q?XZ H4ќJ"qí_SYyLEeBvw7{ʔ#V&D b`<dLx FMθW.e/ٴ>]C ȧAvAOd?X }})1@pRR855yCBWR篿"Nu-Ôz EE^f "peљ⋉aaR;D۷ {kk@S(Ή矶1wgb>.<|xL@d (B giicwwOOwwsj-U45y]\\okk8ǒ%cMMR]\L !IuyLwu5 7r=>Mts2td1c,$mhKK{KK;DW0ЉDjKK;DԔ1-}}uVK߸1'- xuDjS'd.EI--P {Fc);;atXkFX+ϯ t\7<{s!d;vO__СC))XGDL=&a@>(B5l6@h=<&:8``Nz)dd|HJMO/TUU5@lzzIĜB5fEh#$mD0씔w?-)iZn9d)6FSHR hnAEyy9yymT1垠ߢ55H Joa0I 454Hsr\?~XkA7}[\L^^yWa~JmݼyƍP IDATyӬh}=w[dT77P /xx<|CL ^SMMY ̙W'iC fgf&Ov t tEHЂgf>aRjicc5L/T[['PKU1-ɞd@{^=i"S..oTdz+SìY'Nu Ԇ\.ȑ* _0(*߿NV~\={JObq ^eea0^WOA!!P,?e *35 .G01Y`Lx85wSVvkROKԔgr r6IQQz]!bׯVP_'2rJKbq-Uw߿o1xzeX,>pRmm5BRxjd3>Y[K& L&wMMutMMuLMu@'!*ً^@}vvUnn59Re(ck9E~ }rmmӧ?RE*//KWޝEU?wvavDAP@ܰ\r77!rʷry[,+[eK.;Re0Gotf~.w9=3=˵u\:$FPS#ڶO?3xo1"@j^ BF;K`t =Zʶ69n~0^{8sL&cҤđR*UY4_~vݝ;u^^NgϾE:֊ONIɺqk7ujx|~7؛I$m_ B_~yBt#Nbf'uԞ^jʆ)/666566A3/illnllkWW7>..nn{gg{Ky57Sъ AeRPY)lll+p86>>NN>>NN>>iPܞ '"=Ғ:zÆǡRx-[VV fRS#J}wfll3g~mjj3ç9]R~)Baᲇ SM&OM?z:G'%'$CA7PEEx𣢢ڲFDk~0x7U\\wp#|ixobٳ\n_uee !b1L] =w.#XEԩ̟~įyby]].ep?Oy,wߥ}a BH"FY:tՍNNf.?Ʀ;bc^j…jJT΍^8$CAw"޺U~sH$Ne9^ɝ3ghB]Cn/S?_G|Q۵Og9r1(chN99v]>y2!1q%OX҈1 Rok֫M!P)T G0іW>{>ǁ&[hYY#w vTn%ׯ^~wp #Pbbޭh-A;;8,s|.b:8X/X0zݺb {lE˖Uզd>^Q!6gPͷ`"  ~6*yj#gTAhnn~W$jCHa2['$쒂ǡR7nd&_ttp_vWӲoՍnhR?xg{n;% P`A$[~SO_qyJ8aB /<1fw >dfPw :FեKNA!d2P,қһ֊$6j}<<8O\DVU"TV *Ijoo1&):Km81Q5ʢ[ԖXo2Wmym8*X U&^=צ-J^^ՎiNe:;;\9GQOk8u*ԩ̂j7>SϘ1dU  R|gy$I68؃j ϓ)RiS޽?:,[:Ri۹sG޸r?x~hgjoWļ UvLh3Pb2c2eĊB>#_|q|%IT* vEaa ;7Z/f}`}ybV7B4A۷??sÜ۩:@T_/fzOdldCxjn:↥VBf:;ۻ;q<<8TcRwwǮ.9;T+83&LL..'mm;7gG|lҥ{~k'˵qcgՅHrx׮˿V0pET}w^٧NeU8L>}#t9H)(#<~I۲e{\)!`͛w=z7 ɃHC֭;84 ?ݚXrB>~N:}z!/^=zj_&׹&7rKə\]RҨEPc-^rA3s'S߯ЗٌӇ|My `f08m*4Ba@,)XNN....38g j u)*>_[VWDZ$wp H'7qb$P8#_edxnӬ[,nzU<=m7uI&Sob1XߞTv~|nq/;fLJEU槦T8:OActG ּ {{{_x998?8:xСIڲAD5ϯji1 ~9CGƍҤRLE oMd2}J1gڴյE]"%%kŊ}Tf3xcefj5g̈={Sh?)BbZY1o>.nPזHK;/ݻퟙYNϚ1DR͛:3wW 8rdQ&=hBL=ФTɔ˵U ťO)hN߄ʊq<<i9=c:ׯTdgWd &"/&_xСzWW {!wl:/6vjkQL&s֬ȯVoP _{7+o0'ǻ'3+7207o^OefVG#"|'O_JEX[FmqݝC֣-}uBP]-*+--$9;{yqp{͍cqAAիjwS0DF.G˗qd2JՄ |2ӓ%1_رز%>!a:'Fb1Y,ϛy޹^NT]Z|ͳgsT*r0Jŋw[8iRؤIa  oxVLJgɓ!Ҷ۷kqTgPGPG$>;B] c]PG X[ B^GT]Rᇧ f@1ĸqoO͝V;v}A[b2cڵtcM]{_Ο_]B2B h `A@B[$MvsVV,޴Ν쬗.}0HIkvvP=fxhxwS.7p?.Zk?4ٷo_X,˂CT=~Df]84Գo_7ƍRL9vc*HWR=ʊ9th?Ǧ!؆yxzy{TEr~Wb1ׯzf.Xg}fBtww|D:h[TG5,ۛ? !)߯ GaC߿$SW=`3E5,3DPhWhWHW7Gm8!:] A __k4g%y_"&M ۷giڡC֭;! BbXYyAgd/]W:,3,Wk_n+Bg/Z4K-g;kvoll7[VJ3m]:9n[&\)46xDIlブjRɟVR?XL$gqz**4gZP RIΙ-sάކ1yr؞=K4W1rAK>[-kpvY'Of޹÷b1Dkñ><`FzQ8,&BT"U* T*zǎf..n,[`X H7fdEE5[ـ%:„/검.sM+(*RxO} 0Kqm5`0!REJ eNN_9(plT*26v…3p66lGCZzӦ8iHϢ5i}DGWT񩳳CWueL卵>_^ZW'ړMDwwTW{ȓ?>dݺ1Zq82!NN:>g$$$2o.:XRQ!d~:oh[hoW:СQmyСAJ TY[=dptt!CB/xzZ⬬,h+||@~aq>>>;SJIIIeee[lst,ocZ|HDD7JDddv;~咍V>d{W9R}RβT(TOߚ5ã`.`S#)eeuuubINe7F~a-@VVg}X.9t/ZRk|Z[+HZ[MqVQ3Z*+55tjjjh5cJjܸ690kܚ?v!` <Xb⠧0֡%?ñ>_~>o^h@@푭羪RGؼ9A3þ:ݖ<ŋ|\2wҤm1@xaaa]X `EEkJ߽[/#tLe^Њ kkv__hP**RiB`!b1쬺t(???44{ܼ-Q;TY)v6H,WVV;1ci1Y^.EGĀ٢S圐`T*'stv QK;55"Մ*(r++Vpĉ4 B>:_tt?jLs_R¿waHcӧskjZ"4߽[ȀY:UZMtt#GG-.g“Aׁ^Jmۅ~G[\(TUfgWRAT32oɓ$HHX!!^!!ݭUA!6*U*/Չ-Ba =~{b1$6%*_ hx̳ܿqw,Pؼ};HRE-L !de"I$+YcB@PpS:osZU%ϯK'/R(T99+VΛ7$<G]ovM3a0dHߘ~"#d ]@wuU`NkJ PM/..X0x#dADž֎WE(&ɓH۷///_hQ 333Y,֑#GVVV$?SA 2"%D vrtt6mZiiiJah>#'Ĥ)tbhl \X f3pV`A0Dxߚ5S_Oʖ 5ѫ*z=$`Mtdv~.l4."=IDATE=ROdeVw֣%:sf`șe@E322rΝD"1$!^7N-TFd'(` I+BB`Fn8| ΍vtㄚ&25\gy{{7ĉ߶m[[[B~~~f+.^^_~_T۷'Zܜ9"#}9 `8RϬ: =uꔷP(DOAAA!\vZwwwvZ\;~~~iii6msssKJJCinJII ߿B B #F pfGkg(js޽{wGٳg޽l6ZsܹGZ٪k8.c$w߅r8ǟ>}/ߝ+W… NNN}U`jժv ;&f T/uUCיD Y !DCBB?@@Ud2qBO2d'AxRu֠>}=Qۏ7n(&sZ AA{gm8knnn/bKK ҠvaZyxp.}۷9r|D&=5MAX̙3Ԑ}rp_ӦE{  0ISWWwE#III ,uww?g)//ɉZ~}qq1B詧?y睰ÇYFVMMM}]MM?bnݪuݻw߿$I|,zBjsB7o/Dݺu#33$IHdggЀ*..+oaٴ^]_v}ܹ@zwJ>m4Dr1PCC^9..ڵkօ#'/////O:0p?jVVa.uUƌڙ$0a„;w 4B(>>^(ܹ!بYrŋc|GJ"̙3gذa$IJ$++ŋWVV8p!Imo7g] ]* ??^]]}///haԡIor\k1ݥ6VȐ]k/kǏ~k4/^j"5IOVs\GǿյO:j%* }||7שfCdppo ך[ 6駟 BJ%JJ͟y@@>jDmT3g2ćB/҆ HuF9ʊ+֮]\[[{ܹ~[mo|ct!\:¿5իpBd؅T/Lzjxe\UUU]ti٥!G׵^[ zz3QC-|'<==0(dѢENNN...˖-knnokk[fs=' rͭH_usLO yf.+cccHn jݻښ>I ѣGIZ4з~AtWíXuKTn۶- qʔ)nnnj}k]+j]?xM@պ\4h gJ@ x]\\<==_{5HZc XQilla Simple API Documentation SourceForge.net Logo
    StaticType.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _STATICTYPE_HPP
    21 #define _STATICTYPE_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 #include <xercesc/framework/XMLBuffer.hpp>
    28 #include <xercesc/util/XMemory.hpp>
    29 
    33 class XQILLA_API StaticType : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory {
    34 public:
    39  DOCUMENT_TYPE = 0x00000001,
    40  ELEMENT_TYPE = 0x00000002,
    41  ATTRIBUTE_TYPE = 0x00000004,
    42  TEXT_TYPE = 0x00000008,
    43  PI_TYPE = 0x00000010,
    44  COMMENT_TYPE = 0x00000020,
    45  NAMESPACE_TYPE = 0x00000040,
    46 
    47  ANY_SIMPLE_TYPE = 0x00000080,
    48  ANY_URI_TYPE = 0x00000100,
    49  BASE_64_BINARY_TYPE = 0x00000200,
    50  BOOLEAN_TYPE = 0x00000400,
    51  DATE_TYPE = 0x00000800,
    52  DATE_TIME_TYPE = 0x00001000,
    53  DAY_TIME_DURATION_TYPE = 0x00002000,
    54  DECIMAL_TYPE = 0x00004000,
    55  DOUBLE_TYPE = 0x00008000,
    56  DURATION_TYPE = 0x00010000,
    57  FLOAT_TYPE = 0x00020000,
    58  G_DAY_TYPE = 0x00040000,
    59  G_MONTH_TYPE = 0x00080000,
    60  G_MONTH_DAY_TYPE = 0x00100000,
    61  G_YEAR_TYPE = 0x00200000,
    62  G_YEAR_MONTH_TYPE = 0x00400000,
    63  HEX_BINARY_TYPE = 0x00800000,
    64  NOTATION_TYPE = 0x01000000,
    65  QNAME_TYPE = 0x02000000,
    66  STRING_TYPE = 0x04000000,
    67  TIME_TYPE = 0x08000000,
    68  UNTYPED_ATOMIC_TYPE = 0x10000000,
    69  YEAR_MONTH_DURATION_TYPE = 0x20000000,
    70 
    71  FUNCTION_TYPE = 0x40000000,
    72 
    73  NODE_TYPE = (DOCUMENT_TYPE | ELEMENT_TYPE | ATTRIBUTE_TYPE | TEXT_TYPE | PI_TYPE | COMMENT_TYPE |
    74  NAMESPACE_TYPE),
    75 
    76  NUMERIC_TYPE = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE),
    77 
    78  TIMEZONE_TYPE = (DATE_TYPE | DATE_TIME_TYPE | G_DAY_TYPE | G_MONTH_TYPE | G_MONTH_DAY_TYPE |
    79  G_YEAR_TYPE | G_YEAR_MONTH_TYPE | TIME_TYPE),
    80 
    81  TYPED_ATOMIC_TYPE = (NUMERIC_TYPE | TIMEZONE_TYPE | ANY_SIMPLE_TYPE | ANY_URI_TYPE | BASE_64_BINARY_TYPE |
    82  BOOLEAN_TYPE | DAY_TIME_DURATION_TYPE | DURATION_TYPE | HEX_BINARY_TYPE |
    83  NOTATION_TYPE | QNAME_TYPE | STRING_TYPE | YEAR_MONTH_DURATION_TYPE),
    84 
    85  ANY_ATOMIC_TYPE = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE),
    86 
    87  ITEM_TYPE = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE),
    88 
    89  EMPTY_TYPE = 0
    90  };
    91 
    92  static const unsigned int UNLIMITED;
    93 
    95  StaticType();
    96  // Constructor for normal types
    97  StaticType(StaticTypeFlags f, unsigned int min = 1, unsigned int max = 1);
    99  StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1);
    101  StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType,
    102  unsigned int min = 1, unsigned int max = 1);
    103 
    104  StaticType(const StaticType &o);
    105  StaticType &operator=(const StaticType &o);
    106  ~StaticType();
    107 
    108  static StaticType create(const XMLCh *uri, const XMLCh *name, const StaticContext *context,
    109  bool &isExact);
    110  static StaticType create(AnyAtomicType::AtomicObjectType primitiveType);
    111 
    112  void typeUnion(const StaticType &st);
    113  void typeIntersect(const StaticType &st);
    114  void typeExcept(const StaticType &st);
    115 
    116  void typeConcat(const StaticType &st);
    117  void typeNodeIntersect(const StaticType &st);
    118 
    119  StaticType operator|(const StaticType &st) const;
    120  StaticType &operator|=(const StaticType &st);
    121 
    122  StaticType operator&(const StaticType &st) const;
    123  StaticType &operator&=(const StaticType &st);
    124 
    125  StaticType &substitute(const StaticType &from, const StaticType &to);
    126  StaticType &multiply(unsigned int min, unsigned int max);
    127  void setCardinality(unsigned int min, unsigned int max);
    128 
    129  bool containsType(const StaticType &type) const;
    130  bool containsType(StaticType::StaticTypeFlags flags) const;
    131  bool isType(const StaticType &type) const;
    132 
    134  NEVER = 0,
    135  PROBABLY_NOT = 1,
    136  MAYBE = 2,
    137  ALWAYS = 3
    138  };
    139 
    140  struct TypeMatch
    141  {
    142  TypeMatchEnum type, cardinality;
    143  };
    144 
    145  TypeMatch matches(const StaticType &actual) const;
    146 
    147  unsigned int getMin() const { return min_; }
    148  unsigned int getMax() const { return max_; }
    149 
    150  unsigned int getMinArgs() const { return minArgs_; }
    151  unsigned int getMaxArgs() const { return maxArgs_; }
    152  const StaticType *getReturnType() const { return returnType_; }
    153 
    154  void typeToBuf(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) const;
    155 
    156 private:
    157  TypeMatchEnum matchesFunctionType(const StaticType &type) const;
    158  TypeMatchEnum matchesType(const StaticType &type) const;
    159 
    160  unsigned int flags_;
    161  unsigned int min_;
    162  unsigned int max_;
    163 
    164  XPath2MemoryManager *mm_;
    165  unsigned int minArgs_;
    166  unsigned int maxArgs_;
    167  StaticType *returnType_;
    168 };
    169 
    172 
    173 #endif
    Definition: XPath2MemoryManager.hpp:45
    unsigned int getMin() const
    Definition: StaticType.hpp:147
    StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)
    static const unsigned int UNLIMITED
    Definition: StaticType.hpp:92
    StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    Definition: StaticType.hpp:140
    TypeMatchEnum type
    Definition: StaticType.hpp:142
    unsigned int getMaxArgs() const
    Definition: StaticType.hpp:151
    unsigned int getMinArgs() const
    Definition: StaticType.hpp:150
    unsigned int getMax() const
    Definition: StaticType.hpp:148
    const StaticType * getReturnType() const
    Definition: StaticType.hpp:152
    Class that represents the static type of an expression.
    Definition: StaticType.hpp:33
    StaticTypeFlags
    Flags that determine what item types are returned from an expression.
    Definition: StaticType.hpp:38
    TypeMatchEnum
    Definition: StaticType.hpp:133
    XQilla-2.3.4/docs/simple-api/inherit_graph_41.md50000644001725400016040000000004013273140074016360 0000000000000040955be4ae7e970ffc6a1d119db6b9acXQilla-2.3.4/docs/simple-api/classAutoNodeSetOrderingReset-members.html0000644001725400016040000000645413273140074023074 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoNodeSetOrderingReset Member List

    This is the complete list of members for AutoNodeSetOrderingReset, including all inherited members.

    AutoNodeSetOrderingReset(StaticContext *context, StaticContext::NodeSetOrdering ordering=StaticContext::ORDERING_UNORDERED)AutoNodeSetOrderingResetinline
    context_AutoNodeSetOrderingResetprotected
    ordering_AutoNodeSetOrderingResetprotected
    ~AutoNodeSetOrderingReset()AutoNodeSetOrderingResetinline
    XQilla-2.3.4/docs/simple-api/StringPool_8hpp__incl.map0000644001725400016040000000030413273140076017531 00000000000000 XQilla-2.3.4/docs/simple-api/classXPath2MemoryManager__inherit__graph.png0000644001725400016040000001074013273140076023363 00000000000000PNG  IHDRp"-IbKGDIDATxiTWo5jd .(TEAE[@hRT- P{XŲ+#RAb{ E Y:M$imӝ;s228A2 h&Q o<}4..NP @ |wSNUeF{nnnEAFwU!j7|@F(8NQ F` h&Fpvvv֬Y?~o3hF<}AX,3hFYbE^^j4lbkkkə>}P(dh sshLcw)STUUo(jժ>/JH$R(OOϰŋүV'FFF{immmjj:pF'''\~!]H$RX,_ө_̩S&L0ys'@B666d2ͭl0TkH|۶m3Xw%%%>~ǎGG:wٸqcDD:D4-888,,epvv6pD"111111^z F` h&t,fտ9E "H$pfD"MBtt'\j'D՜2F uFF##Ba2FD^Z )d2EiiC_l QX,AbQ@IaaO@^}ԁFyKoo_ECՏ|~9@Q.W(q4QRPP1"f]]۷9J_f}٩6QAWh˫(CD^w74+: HCC{{8?+􈬭)o(`bM>=$,'@JJp YK(L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 ߨmmm= 1ؘ:* ~' \8nS 1ߡ\ w' 9~D>wtt##cz*9sbt uuu|8\.7%%ɓuuu?#Zχ2̚ tb;}tgg'8z{rrrШ˗/ƆTWWRљ8֭[aaa))):[^z5###222;;799YT;;!2 mmmx<ٳgvرvZww@>066NKK۳gB177Bz{{H%Kz{{x5@D.\(**ڿ4K~MMرcU)++ۻw9F SCWZضmDrssC啕wR4-(( ?ED"TTTZJJB=b$1f̘իW|Ζ-" . ҟ *GTy_OEEŃtztt933S"H|'bS(;!_`0/^`0ƍwqq9~xHHTTm=-H$TFJimmىLNNN,Fݿ/P?1z8q-_|>aO:U!aupGG'Oj|H$ L&+++LyyyGѶH$jll62LQ 5~x<r?C˗/сjc⒘8uT333,b$Ζ('bqA'Oh4www-[ƏQ2L.DT^PU BaZZZPPɳg&xҥKO:5k,d2_z?Htuu=s mmmMKK[bFGGGBO?/u'q,#%%_x |W(׮]BJ'j̘1˗/tppPB5hmmH$~m \]]4;s}؄aIm޽'N ^hF "hҥ:L\g:[zxxlٲNo۶-777<|H$to[JɣGׯ_oȻ[n;p@OOJ]fͺu 54 ;wnqq;%!!!!!!K#(L@@0QчR*_nnn~ٷoχTdaff>3 (L@@04 E4dIENDB`XQilla-2.3.4/docs/simple-api/functions_rela.html0000644001725400016040000000456613273140074016544 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     
    • CompileDelayedModule::compile : XQilla
    XQilla-2.3.4/docs/simple-api/MemoryManager_8hpp__dep__incl.md50000644001725400016040000000004013273140074021066 000000000000001ea5dadda161ba8ba5d933bed9e324c5XQilla-2.3.4/docs/simple-api/dir_000006_000007.html0000644001725400016040000000433613273140074015715 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    schema → xerces-c-src Relation

    File in include/xqilla/schemaIncludes file in xerces-c-src
    DocumentCache.hppsrc / xercesc / util / XMemory.hpp
    XQilla-2.3.4/docs/simple-api/classEventGenerator.html0000644001725400016040000004000513273140077017476 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <EventGenerator.hpp>

    Inheritance diagram for EventGenerator:

    Public Types

    typedef RefCountPointer
    < EventGenerator
    Ptr
     

    Public Member Functions

    virtual ~EventGenerator ()
     
    virtual EventGenerator::Ptr generateEvents (EventHandler *events, DynamicContext *context)=0
     Returns the result of this expression via the EventHandler provided. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Member Functions

    static void generateAndTailCall (const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)
     
    static Result createResult (const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)
     

    Additional Inherited Members

    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Constructor & Destructor Documentation

    virtual EventGenerator::~EventGenerator ( )
    inlinevirtual

    Member Function Documentation

    static Result EventGenerator::createResult ( const ASTNode *  ast,
    const QueryPathNode *  projection,
    DynamicContext context 
    )
    static
    static void EventGenerator::generateAndTailCall ( const EventGenerator::Ptr generator,
    EventHandler events,
    DynamicContext context 
    )
    inlinestatic
    virtual EventGenerator::Ptr EventGenerator::generateEvents ( EventHandler events,
    DynamicContext context 
    )
    pure virtual

    Returns the result of this expression via the EventHandler provided.

    An EventGenerator may be returned to be called as a tail call optimization

    Implemented in ASTNodeEventGenerator.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATUntypedAtomic__inherit__graph.md50000644001725400016040000000004013273140074022472 00000000000000cf80eeedabbff5d23bcc2aeedcba1991XQilla-2.3.4/docs/simple-api/functions_func_0x70.html0000644001725400016040000001625713273140074017332 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - p -

    XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.png0000644001725400016040000001545513273140076025311 00000000000000PNG  IHDR}LbKGDIDATxyTSOHl# hEmY 8SEaѪWZybAx (YKEEI j$!qKS2@@?:w߳oι ( A*͛>|H*: NOHHxWhs*" Lh4R    |jjj ɓ'5B&B4m]Ϟ=FѹU@3zm۶mܸQ$!>}nݺ8ooo\_~ dr۷oٲ!;}tٱh]BPvv#:::B "::ёDGG+:VZZ:tвC:88,]LzB>>>,-33!T*e&aiiiBPPPNNf rzShiii#Gtppؽ{wffal;H$Z|kTTL&n1cpvkk뚚^EЉ'Yte/_{ >3fLll@ @͞=^^^<7.**ʐW{{Urrr}}ѣG F{{޽{DT2&66!k׮. \SSB@oJ+88X,9r!`Xjnn(*44tڴioxFn~IIB(*++KV?%BO||Y__Ν(zWޛ7ojʺ^ jMRr7Z;w.N_xq [R5c ]oJxouu5EQrKY r:~ 앗|R9xR}ݻww?3'|B5=l<r(ŋ666'N,))1nL6}UPP@@PVVVSRR(-MIWo?1JX,v)Zn]DDDSS|AO9;C=jFE(޺u rMMfMH$EuvvfddCx葭Ç)JHHpttī$Q*666SQnJTw?ͧ(svvNJJ:u5RO駟<7nom7n| VZeK*X,.ta%J =SɓU*EQr'88X@u֍9ϯ]7%;Q2mڴ;w|//;wvџRp8k,zxYwrrjmm(J,Xn ɢlvppP(v]/N8d2=== kД322~'MUUU\.RLYYB())IplכRkmm]dSddT*?֬Y3`XƢf۶m!!!=Op,HEnC4haG:g`G<4 \**/g擟_W(Ts鯀DP >}Ϥ鯀nu" k鯀$7aR*U%%4R՗.nhxJ$ 4^އt:ԩZ];`ПiUz`TOǦ0 BfS"[Y1_?L&i/τsdr%H_$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?(&Zpdd$|,p:Y!\]]MRiWo޼5&}C 2 +`w@@@@jjj ɓ'5B&B4m]NgϞMp\Іo :~ׯξ_QG޶mƍE"Bӧ֭~~IP(w{؊K߹sΝcUTT 4z#s篨?lقurr>}XTT4yn0F!Z҂ BЖWTT" B#F@)hGGGP(h4ZiiСCtR<3BX,77LRC薙LfFFFZZZBBBzzzFFh`.h^oD˗ۻFEEd2V_xF9aݙÆ c;vG8uѣvލ?~ܸqQQQۭ=`0ݫ]$1]viB?kjjuss3BH  mZ( BCCMvm7jԨxV#b#GB ,)))fXd2W\ì,Г'O$h7455;wn'N^џP(tuu񉏏===qܹsa<W_}5//y󦦬jiio>PVT*!w#sŋk۱"""nJQTVV֌3(-_r9NqjX]]MQ\.RnjooWT.\ƞψ#=jԨǎ(OtzccbfrG׋/L8Ĉ233l X,VAAƎCVP=П!T7y<nuG·~wŊ=ןGzz27nܸqc3EfΜ+r!O*2EQ>>>aaa?qÆ 􀀀oK0 .ܸqݻwoܸ}P:S.3LTjkkûg϶o|ah3ړ:󝜜Z[[)+V[zuGGK&EEE9;;`P^sd2=== kД322~'MUUU\.ҚBIIIҚt(jmm]dSddT*5i(j/Ґ!C:p o=p@@vJfg͚UXX࠷K_YOqq5\.'__/^\]]-H.]cǎ>OO?111߿mʕ|( c׮]v"I@I@I@IL\`AoQhttg?6 RIre"{{)\C y뭷LrQ0ɹ:udVjҹW|".\I( Kg&--O5^0Lj!j˽B: LNO)z^}tFП9ŋgΜ;~kOMMBۚ.nkk}mVV5kV@@czZQ;4+**Z|9s6o\YYۥu= }رIIIB0))飏>bX!.[___TWW999 <{ud2Y||Ǘ,Yd2.}РAQQQeШQR۷B&L5k׾իWVVV=ztڵϷL&JG1c:tB(//Oc/)99yϞ=W\ÇJ"ܹsYYYk׮MMMDuZ dffFDD;v,444))P$!̹ݰaCuuuTTܹs===̙36mp8nnnUUիG]ZZrJ77aÆmٲːB(J*2Yf[YY>}Z͜9st! I&!*++x epBkk3g"BBBg͚=B>xw̙tҟyڴi=7쫡JT?~Æ NNNnnn+V8wv϶LѣG7nhgg$c>}5k|M6=v+V:0o/BclhhlСCB/ˆ^xD.>bĈqr7Δ)Se55B`t)k\>wvvr͛7?~\սnjjRxť qux}R),{GÆ 5/ :0GO<;vC4'l6;11o{{{kk ]CCnO]]ݥK/^׫SV+m۶r7D"W^wʶXYY͙3ȑ#eKR¢?~loowuѽ!:;;z-B<#x]777lw.<{icKQ>;v\v'NxΝm3g9rݻw/ yhB`0 wtt>}Zk,,&M#GvKg<[#D'Odggs8A 8!tYDbiꫯ޽{ӧ!P(J%,V"] GJJիWbqMMMFFj댇3_AAH$ f0~|ڧ]WXX8o޼.Ѝ_h4ڰai4 ;tPVVVDDܴi׬Ycii9uPv]v 0 $$dڴi111\.; $ǃj*TħOzyyYf޽H_1nwpBx @UVVr8wwwY^^,rrr4x Ν;׿Agg͛7Һ-υ?YhL&۾}H$rrr={?NjX?8<-Z@o7hF`UA]IENDB`XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__dep__incl.md50000644001725400016040000000004013273140074021436 00000000000000f94cf75443b72527f755d25c434638baXQilla-2.3.4/docs/simple-api/MemBufInputSource_8hpp_source.html0000644001725400016040000005344513273140073021423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MemBufInputSource.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: MemBufInputSource.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 
    23 #if !defined(XERCESC_INCLUDE_GUARD_MEMBUFINPUTSOURCE_HPP)
    24 #define XERCESC_INCLUDE_GUARD_MEMBUFINPUTSOURCE_HPP
    25 
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class BinInputStream;
    31 
    32 
    61 class XMLPARSER_EXPORT MemBufInputSource : public InputSource
    62 {
    63 public :
    64  // -----------------------------------------------------------------------
    65  // Constructors and Destructor
    66  // -----------------------------------------------------------------------
    67 
    70 
    94  (
    95  const XMLByte* const srcDocBytes
    96  , const XMLSize_t byteCount
    97  , const XMLCh* const bufId
    98  , const bool adoptBuffer = false
    99  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    100  );
    101 
    107  (
    108  const XMLByte* const srcDocBytes
    109  , const XMLSize_t byteCount
    110  , const char* const bufId
    111  , const bool adoptBuffer = false
    112  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    113  );
    115 
    124 
    125 
    126  // -----------------------------------------------------------------------
    127  // Virtual input source interface
    128  // -----------------------------------------------------------------------
    129 
    132 
    143  BinInputStream* makeStream() const;
    144 
    146 
    147 
    148  // -----------------------------------------------------------------------
    149  // Setter methods
    150  // -----------------------------------------------------------------------
    151 
    155 
    171  void setCopyBufToStream(const bool newState);
    172 
    182  void resetMemBufInputSource(const XMLByte* const srcDocBytes
    183  , const XMLSize_t byteCount);
    185 
    186 
    187 private :
    188  // -----------------------------------------------------------------------
    189  // Unimplemented constructors and operators
    190  // -----------------------------------------------------------------------
    192  MemBufInputSource& operator=(const MemBufInputSource&);
    193 
    194  // -----------------------------------------------------------------------
    195  // Private data members
    196  //
    197  // fAdopted
    198  // Indicates whether the buffer is adopted or not. If so, then it
    199  // is destroyed when the input source is destroyed.
    200  //
    201  // fByteCount
    202  // The size of the source document.
    203  //
    204  // fCopyBufToStream
    205  // This defaults to true (the safe option), which causes it to
    206  // give a copy of the buffer to any streams it creates. If you set
    207  // it to false, it will allow the streams to just reference the
    208  // buffer (in which case this input source must stay alive as long
    209  // as the buffer is in use by the stream.)
    210  //
    211  // fSrcBytes
    212  // The source memory buffer that is being spooled from. Whether it
    213  // belongs to the this input source or not is controlled by the
    214  // fAdopted flag.
    215  // -----------------------------------------------------------------------
    216  bool fAdopted;
    217  XMLSize_t fByteCount;
    218  bool fCopyBufToStream;
    219  const XMLByte* fSrcBytes;
    220 };
    221 
    222 
    223 inline void MemBufInputSource::setCopyBufToStream(const bool newState)
    224 {
    225  fCopyBufToStream = newState;
    226 }
    227 
    228 XERCES_CPP_NAMESPACE_END
    229 
    230 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    virtual BinInputStream * makeStream() const =0
    Makes the byte stream for this input source.
    This class is a derivative of the standard InputSource class.
    Definition: MemBufInputSource.hpp:61
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufFormatTarget.html0000644001725400016040000004703213273140077022265 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::MemBufFormatTarget Class Reference

    #include <MemBufFormatTarget.hpp>

    Inheritance diagram for xercesc::MemBufFormatTarget:

    Public Member Functions

    virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
     
    const XMLByte * getRawBuffer () const
     Returned the internal raw buffer. More...
     
    XMLSize_t getLen () const
     Returned the length of the raw buffer. More...
     
    constructors and destructor
     MemBufFormatTarget (XMLSize_t initCapacity=1023, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     
     ~MemBufFormatTarget ()
     
    reset
    void reset ()
     Reset the internal string buffer. More...
     
    - Public Member Functions inherited from xercesc::XMLFormatTarget
    virtual ~XMLFormatTarget ()
     
    virtual void flush ()
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMLFormatTarget
     XMLFormatTarget ()
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    xercesc::MemBufFormatTarget::MemBufFormatTarget ( XMLSize_t  initCapacity = 1023,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    xercesc::MemBufFormatTarget::~MemBufFormatTarget ( )

    Member Function Documentation

    XMLSize_t xercesc::MemBufFormatTarget::getLen ( ) const
    inline

    Returned the length of the raw buffer.

    const XMLByte* xercesc::MemBufFormatTarget::getRawBuffer ( ) const

    Returned the internal raw buffer.

    void xercesc::MemBufFormatTarget::reset ( )

    Reset the internal string buffer.

    virtual void xercesc::MemBufFormatTarget::writeChars ( const XMLByte *const  toWrite,
    const XMLSize_t  count,
    XMLFormatter *const  formatter 
    )
    virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/MessageListener_8hpp.html0000644001725400016040000000727013273140077017560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    MessageListener.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for MessageListener.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  MessageListener
     A class used to listen for warnings or trace information. More...
     
    XQilla-2.3.4/docs/simple-api/classVariableStore.html0000644001725400016040000001645013273140074017314 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VariableStore Class Referenceabstract

    The pure virtual base class for accessing variables at runtime. More...

    #include <VariableStore.hpp>

    Public Member Functions

    virtual ~VariableStore ()
     default destructor More...
     
    virtual Result getVar (const XMLCh *namespaceURI, const XMLCh *name) const =0
     Looks up the value of a variable by namespace URI and localname pair. More...
     
    virtual void getInScopeVariables (std::vector< std::pair< const XMLCh *, const XMLCh * > > &variables) const =0
     Fills the vector provided with the uri and localname of the variables in scope. More...
     

    Detailed Description

    The pure virtual base class for accessing variables at runtime.

    Constructor & Destructor Documentation

    virtual VariableStore::~VariableStore ( )
    inlinevirtual

    default destructor

    Member Function Documentation

    virtual void VariableStore::getInScopeVariables ( std::vector< std::pair< const XMLCh *, const XMLCh * > > &  variables) const
    pure virtual

    Fills the vector provided with the uri and localname of the variables in scope.

    virtual Result VariableStore::getVar ( const XMLCh *  namespaceURI,
    const XMLCh *  name 
    ) const
    pure virtual

    Looks up the value of a variable by namespace URI and localname pair.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/URLInputSource_8hpp_source.html0000644001725400016040000005211113273140073020677 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    URLInputSource.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: URLInputSource.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_URLINPUTSOURCE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_URLINPUTSOURCE_HPP
    24 
    25 #include <xercesc/util/XMLURL.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class BinInputStream;
    31 
    47 class XMLPARSER_EXPORT URLInputSource : public InputSource
    48 {
    49 public :
    50  // -----------------------------------------------------------------------
    51  // Constructors and Destructor
    52  // -----------------------------------------------------------------------
    53 
    56 
    69  (
    70  const XMLURL& urlId
    71  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    72  );
    73 
    74 
    90  (
    91  const XMLCh* const baseId
    92  , const XMLCh* const systemId
    93  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    94  );
    95 
    113  (
    114  const XMLCh* const baseId
    115  , const XMLCh* const systemId
    116  , const XMLCh* const publicId
    117  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    118  );
    119 
    120 
    136  (
    137  const XMLCh* const baseId
    138  , const char* const systemId
    139  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    140  );
    141 
    161  (
    162  const XMLCh* const baseId
    163  , const char* const systemId
    164  , const char* const publicId
    165  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    166  );
    167 
    169 
    172  ~URLInputSource();
    174 
    175 
    176  // -----------------------------------------------------------------------
    177  // Virtual input source interface
    178  // -----------------------------------------------------------------------
    179 
    182 
    187  BinInputStream* makeStream() const;
    188 
    190 
    191 
    192  // -----------------------------------------------------------------------
    193  // Getter methods
    194  // -----------------------------------------------------------------------
    195 
    198 
    207  const XMLURL& urlSrc() const;
    208 
    210 
    211 
    212 private :
    213  // -----------------------------------------------------------------------
    214  // Unimplemented constructors and operators
    215  // -----------------------------------------------------------------------
    217  URLInputSource& operator=(const URLInputSource&);
    218 
    219  // -----------------------------------------------------------------------
    220  // Private data members
    221  //
    222  // fURL
    223  // This is the URL created from the passed ids.
    224  // -----------------------------------------------------------------------
    225  XMLURL fURL;
    226 };
    227 
    228 
    229 inline const XMLURL& URLInputSource::urlSrc() const
    230 {
    231  return fURL;
    232 }
    233 
    234 XERCES_CPP_NAMESPACE_END
    235 
    236 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    This class is a derivative of the standard InputSource class.
    Definition: URLInputSource.hpp:47
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    virtual BinInputStream * makeStream() const =0
    Makes the byte stream for this input source.
    XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp.html0000644001725400016040000001044313273140077020460 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    FastXDMConfiguration.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/simple-api/XQillaConfiguration.hpp>
    Include dependency graph for FastXDMConfiguration.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  FastXDMConfiguration
     
    XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__incl.png0000644001725400016040000022601513273140074021265 00000000000000PNG  IHDR`gbKGD IDATxw<1g6ٳRJA4^o(*EEZEQi4{ϳ>?>{~.29qqz|9yO8$H\x:|||ȑ#xB tuu˗NNNxzhffw7/_;0$ׯ^f͚Kb%qqq|e``5k;v(C")..vqq덭D"QIItŜ.377?kCCC]- 90qqqRRR`ʔ)wEH$_{ 0 ~~~4ݻW\_D"322AAA%Kf///11199˗/ɓ{d|b``Xl[nΦo+.....} ⒒w4{,""_.**zԩ &(((>y0p-..nرƍSRRaܹ鏱>}Zhѷo޿f[[[7o"vZA,XСƣGΛ7ߟD"!bnns77s熅aWƺ$1bŋccc;MP({{{{{ Ob޽… -d24-,,lٲefZ~}zzzǏnܸA޾}l2{{sΑ. $,--6mZJJJ۷o߻wFhhW```mm-A{޽={" رcɷn߼ysy/644466VWWw]]]}"xœ'O~ի]nii+lCd^^^cc.o{nxx{HHȲe|q>|u֠ z'ʃ9r>`Y 222˧M ȴirss!wwwCCCaa˗/oܸQBB׹)J\\܆ deeUUUWXh3f@Q@h[1bDA>y[JJJUU#))'O\__OA^xakk||Ç===MMM%$$&NQEO:AKAAAGGge!`B"Ty%***}HNNCab***:qDKKKjjjh4Zyy 챤$VGAAAqqqƵ!;;[SS}=_ZZ@@N2իW޽  }j1HHH B *(([?. yh4Z||ڵk̙\z5>>~Ŋ>Ç'MD/R/>߿~2AH5j %%%XNtE놆inݢT39}4햖ΝSWWԤ`w}޽~RSS.2._",(,,IJ!̓ZSScmm/++o={D"v 0&&Ad2B"H؈~ss3Wrqq?D"[heexjjj|||$%%< eee999[n}Z466nll 5ksmuuuRRҕ+W+=z:??⌌ kkn =手322j\|||}ׯHII_t YjՅ BCC׭[FAAA//-]r֭w3fǏ_maax/]tՀYYYKKKGGGnn ȪU֬YC Mѡk/^>}:d2߿JMMmϞ=Ҍ'N풕͛[[[---ABQ:7o>8tbg477w6 H`M!& 9NTTǧ7`$ H?~;Ѕ&T@Ta#""b8'P5--?;LDĢ\JH6 '֖V֖AjKVVv*L;$*A>FUUeƦk5JTTBG@[<<̷nRׯ}qq͌'̴\@Q(ܸ?JxLQԝ1cArl!--|ұc;_ʕWRSbcwwa^tӒ%Rca_lj"*͜9vG@0|UV6nzٳΓszsu&yAgG>xÇc( 6"(>ĤEG)+5JJn Hԋ?l :}z꿻,+LKK^)"*ϐ:FC?~̍IjNNv10@rv[|~/D<2:o?4Fc(bo?>c0ߴiVVf! 𒐐i-2z/>x0*8MLUՑ #%%og{y3WɷOmc3z|CssKz 9 --9 &·o-0x/\;zk'MROyyÓ'rfҷ741Q-HBZZڵ! G,7ϰ,,pA EQwkII911[AUZZ5*Ǐyg/\8f/8E/_N8x0jxseeE{s׶m__6r6s)iip/]TT۷/9Sn,Cw\@r*+}|n|m6~6… z0@%s]f-&4:ݻ)yys̟o%HC?opfq kVjxt7o&޾|y8PMI{sTԗ#QM7HXxޡ^0QNx7{ǝz]wMyr3w޴ӧߟ=QR`ZL@޾͊W0{ML`R0deyz^+.9rިO~w҅ Rx]jkٝAQ$*{nf6 O~scBB8WɊx`HHޱ㎶ -L؜PP q𺑗Wik{~ܑ# :deݾi  |Ar"(F]r޽s3/N|m(|cbXq̙%Ƹ4d2ˌ;w>>y* 0nѣ $ ;#ĉsG %%ӧ]b&{ѣMZZ284DbIyyJO?-Æ45e\=oժ+m\ O('O|gdjjah{RTt$km%s~%`^Xbhc#& ׷޽ڵ)X1uΜ<{eEE۷Rŋ/^~} t+)GjɉEf_t"77ם;ϝ{{0~d9 v ✝':0󂫫&O>f3!Chk`F1&fxHmd2oAAsG_fFpNNwE& ݻ=|ݻ݂g8$q[(߾,"·hիMm$%xx\ Z#; M;rk ?۟w%K)-r%!4}K i^^pAr`wkf}sJW^ź˯^Mسӧk ii!ED| |[ac3z:qjꚚ6o֮`ԙ=))s瞽~}@V:0ƍ7^xl(ޱ }?ZZ2+W:9u%%Y,))k޽^&LPe`ׯ3O9;7XXWz:?.2򳔔ٲe}Ar`Q$3F9/ZO""1AyڐwxQXX}[>HI [gtDE+H,ڵ;v`Os朹}kTM--Gʊw8A@LŤtӰ||Wxz^_$(h#|rv4dqLt"Ґ!++?Oljn&YY߳~CC+A1$z͖-ឞ-`3/_f60vz++]sC>|UUD__C'?xiڴ#j$&9v۵k c}Ɨk\x;0ND1gObHE?>?H dddLMMtK]]_E};vIJI;v0$ki!-_~95(ޜIIA(N`޼yD"H${AyH,**zj}}QmmmKԥ''';v,%%eǎ7nܰR 8996o DJJ>KHlxa?~KG񺺻TZo.FKXn̞=󽃡}[_~%Õ@$++G6mڴ{R]jՖ-[LMM) ʁK*+. PT{N_#+@?TwoߊY]ԩ* r-MMͦ&秣#$$dbbO 3644痕WVV 4i 222d2WZZZJJۮ@ \rEGGgȑG QQQٳgvWTT#TUUCBB:1,,lVVV;z@ xzz>zwqR(})))9ch,|BCCXbxBII͛7}}j"!!3رf -Q(TOkjj[?|w,] ۃz=nnn>|@QŋRRR+))y葂 ; yxxV\YTT Hyy9W\ ̱c RSSoߎżdɒ A/^ Heeecc#//o@@H|2WcccPh***/^DQt׮]zzzr=(&''.Ǐ饦~mĉ[lPmϢW~;UTTt۷e3gΌÞ jݛ7YGﶰ;/r8H}F6oSQ}6񐒒'+GVVY/MrPSS~DOO/88~k׺OTW]ނ&X,O>(J":<ʪ>qDMM FkhhRBQ411EєA})u IDAT59ֽ{?~`;$<._KJJbv׊2+9@QfS::;_`Bs AQt׮ɗ.-g߽˖VWb`iii^^^XINNC} <<<ƍ  dX77bksssr!!!A;>>11QAAa  P(aܸqcd!++KMMwqkho}y]bt222_|P qʊ޿Z/;G!!ϝs;JNΝ8QuYYYm޼++khiiqrrӅ §Ov#=JWSSc---4-""zժUvvvۢRNj}ct(Ϟ=wqa?ˡCz_9W=ggڄcǎџ&=`\g.=rdc׮ ii!Q 9ɓOΞ]:wAW|##eVHV\aÆ[n=<** A+WFFF>}tWF"xxxZZZۇ HCCCddy󺼾{`;v秦ڞ?ǀ ݻwI$777??˝tҬ_;(---..~ꕽ}nn\lٮ]mE_X [^^niiӬO8Q^^޻Ú\\L][xppt[A^^II9isƎK"Pluu5D믿TTTMLLn޼t;ESN+**^paɒ%bbbf͢BL&O:UPP+_b{SS.hkkGFFHmyxxش4MMMm۶miB)**:;;ĎqnٲENNNDDdɒ%555h9?T7o~aC($[]\999__# w8}SQ0ȑ#edd߿z())$C,,tnxǪUWH$ .1@rVk`UUcx M}}knnОp)*ϟOǰMLL T*㚚BBBSLCaĨ9rw!22RKKKJJjƍmmm]25b&&j7n'&ZJ[{0X DY쒮RcW2de(-H/Ne SU테hXXFCQ422RNNL&wySڟC-''A9s߽{AJQDuuwYȌ!G?iiXDarӬrpA㦪>l{J'ݍƦf߾}vvWDDdĉ_|ٻw/vePP#gKޗ.]ٹsK7OllF>ߺuLhw7o_b Sc ""B"QJJj'%%5ŵEE$z1199Q991c=նx 3Hu HZ/ re%l\VV_XXUXXSPPUXX]PP]XXURRK&S1[IIBAALYYrduyy1?99QnnNGI G)tCnnAmmXLd2uժM""9?>?*?ׯ6cc*%1jx7=66$ M! nngY^Cra_ܿA^^lPjka$ /@D75tq1Y^PU81 klz̙$ ;<UG%%yyyyUyyA&))!EE EEq33-EE@^^!dd = -_~YSSfZ .^|u̒iӴWB+*˫˫˫ͭ˫ϯŽ,$ab4AII\QQ\IIbĈ{0֏đ#(Rwn &OVgl0<~s睝;g;:z2ZRRaP 3M$δ^(n0xx%'zy]bH.>}_>ur;u23K33Kt)#--'[DԐKZ({fGN-9i͐w.HM 93zkkh4XWPPgiff)%PXXMH<@IIBSSZKK~A,Jihl?rdEWp>t[[ZKBRp ABZ/_ g۶Y |= e4ZXX{Ѯ]dJSS ɉ*+TV>]KEeQYAAUk+YKK5CΝi{ܯ2߸њQsTg9mlbl̘#U!9`hjj<'"+,;ׯ_ʱ=98dgWU,9j}4@~U *w lB(G/^w}scvٹ,^8{vɢEڎ`mr^l_تiiaMM--;;--#G?,./BE~R9hvZOu7*ɓ=Lp;L.,7 9O(dfY]UWymm3 jjRjjRF5%k%K&^=m0Kͭ40w 9bi||<;wΙ?1// V>8uӏ:}@*** b AVVvԐxujjRp-,vu 8QȑEQj97Vs%]]Ǐ7]￟8}zHbu{y̙3T@r vHK+nBDD_SSzh iiIH0l߆˃Xኊjd*9P77u:qt!ܹ}}omdH`?ĬRA))!MMYDMM;%BWW7?z0_ ۿ GEGqԳczy3Kɂv>Sv_ Od2?KҊ32JՕWtt4Ԕ֖T}$%޿^Nn,ͭc [pm>{LkC󏳙6A.iimfge H譲:l 503,#H"Q9UTFjiɸLWaX؇7ϻ+WPtT52hXg6o|iJӽ{xN#Wׯ=|8E~]kjj QN(*kk˚i]k-*">l3c|#caJp0X3 Z;vIIw1ge;wqs ZtվSVVV{q^^% ֖ёup#%˚UW_cw,̖W9s>Q1l[9:6cƉs*믇QQ}K 0|եb/+Ge\G__A__QCCF76-_~YVV٥m;9E@l03uuh={{z^ONݳw3NFGk.IDz@z:š!'i'7z3'2[R]O-ҺV2,UV!xNX4u֭KW`ӓ_`ܡC3fAk!LT;|) R+'矑_{w-OhA%%9?V77Ғ]ܸxqݙ[&MRUV};y߾y\譊/_ r2/Q$LM5ܦߴGի-Y2 XXX #J; Y`ߢElGr ٹsN7Ia@RRnVV@nŔ)=wTUո|y=sթJ#R. 󅆺ϟ-Νusi©S^̰5 ߾z&ݻ:^^.CQfO:~/T*+@ \:|޻q$5`{Cx)cddD<9~}hPЊaݪғ' 9=hoF?^mʤIjJ0 G> MStLE NZlk{jݺ0a52}fp.`Hik$%Чraj9flLΜ \xxZ[ JPMMmU \ngw';v;11Qx&s|?`(ϯJHLHȌOollO#07l#!!ԩg9FMM//\>@||]k.$4B__!1$C vALLڳgߊjx'OV߻w6lVȎjϝkr)ޱ&q.CAo̝k圜.., n~HLvvyL|E̴ 픢!zUii' ۨLz;:<<\mm(w=r88rd߻w?wX1 IDATd8K^׷ #HB!'6{LLZ^^SM.жm킂'O|`㱲{;} Sj It'O.^,vcƏWЯ_ LM;?u5~y( ++=I`P>"++G;vRS =aggqjE/W-s9$,J}yZLLZNNs.ff!{[Vjd4j[ca?55wXX|RipqqΛg[{ݴւF)Πӓ[rHDRR򢢾FE}./oY>>aMMmϻd~i974oӧ`PNN]7 …#"w!fߋ6Jt 9DyG_=Kk;Vqg뫨;4</=~떇4wMMY[qssHAddD&L^ @8|xűSRWRi2!9`6?|oԔYtq C))G>ڱc0٤Pmn&Cr0 ||]0Oxsr*;Cr0X[cb?z *fb{\[1RRBxD6rrr9[S A%?R=_:R99 xGt]HZZd͚=wui,HEE2?A'qj[hԮ]v 9@9y"#7LhjjE<~Q 'BŋoݺzzOڛʊu !9`  MJʹw/%*kCCˤIje?{٣ƛ7!c񎅽a= VP((`prr꾯HDqKܦ %E22"ofu(`~,r*l…ưH>gXWx c56"`[fbclm`.-PA?EG+++:k1 xXL.&&p8MMmC{蒊Hss[> 䠲FCoA׷<{=:k\\ޖ-Sj2н?~ >A;0͜{P>RDJ56 !9 }.ƍ'O蠠:!gϾ_p̒+A55@RR,,teP`9A]]K`ΰ`ҺgcL9_TTsCjꁋf 荼Jonnehj"l,q+V͕ @pttl?sS!;;{ iia==W~Nihhm_=]Rie$w\˗`3mmw`{ːɁmz׃ϟO7''g„ 3Ν;/:ߋ/]]r,BB|׷/䠣܊{R’q^p#`h5O?!bIIɣG>>>^VUU5[cu֙0cث/%>.;ˉ U0?$%*ˢES M?]]\LmOX؇۷O^ K[Çkjju떦fSSF211z»9644痕LVVV 4i l2+---%%K&!W\9rѣGCBBTTTDDDك?bUUՐmaܴi{m?{ls/^PRR ƪP(SRR9rkmmm/WLLؑ#GDFFjiiIIImܸ^LQQ..NA:eguW[{+.ƦQ(TlǏUխE7. ``y?tuuuss+--/^w^IIɣGjgʕEEE(zʕ.o;v 55h("dɒ A/^ Heeecc#//o@@H|2Wccc233^?.Cn9sf\\ܗ/_?۷'nٲ Ȝ9s޽ՏUecc. {ttt[Νd\ɎȲ<}}Mh4Z||E9M&{^VVwP`o<ЂdH4źu!nnA AMM>GOO/88~k׺OTWQupp6H( ȧOP%HgeeUWWsss8qF544Pm&(={VXX7A7v*v{jjjݻ]y%VYYYջ,o͛ﵴJvDdeҾp8+Q""-,^bCCk@kBu,H$(۷G44\5ŘB\HTT=-- +100_} <<<ƍ  dX77`mm !1 bbb񉉉 ӧOOHH][ׯ744\z5 iPW=ѱ!_%EEE2DK wȎ/c<4;WYYɓO 3F ȍvv(,ÃO\,--w,COrPXXgeeyfD^^ׯ ҺӧO.\ >}jkkrEkjj{FEDDTWWZػ@ ƾfV"-ͮ]6nuTԭ% v%Vd1f01n朙3t}fyNPH$^|ŋϟoy{ϟ?;P[&mm킂>߿\*dggs.DaanGʇbffڵFjwv81 nMx,??cW8y9ֱ&#g~~~ŋŕ?x`֭7`0H$Nߵk6..n̶7ql۶033188Ӏ Ctt4Fc0222e``pȑGrz*F;qD5bӧO֬YSXXȽRSV֭[۷ϛ7s%KCr!~۾VLG6ýlbƫ<=={~kbbUA+ܳmdr}Ǐ7Nᥭم3fA*/9Yx+11E• }q|ds7gC}[@  :T*9(, I  ;~2H@VG͟?f֬X"X,,ZRPPE^yX]QQO &$N=}05bqV.{7<@% [BB߾뱎Ϟ=ە7jX[/?vQByCDx+#Ggf߻ǽ @`}Peu h'Տvq!&!|A73ML&'PYIJ2: erPRB=qqDDzPL TUխ^6usE0pBCFF|~X6!K~9vQDD~ӧ3+A6n!..X"rL]sLFF !J.^L9w^^VpP֙3III_ccDm   m=ց`@&q=Yn%Ns>:toV#a(pɁ8h?I$ IORR%QJ#H@3yyyu𷹹UUu"U~rp~־}ǯY3I^^ h+V\;dŊ XƴiӢ?볳krrmjb+*W0YGGOvž}GV*+GfQFuoKKxqpOp{2wd_Xu۶ݤǏρfB *,JMNM~~,^?ildXqe ME*UUu/_fd~U"&F8Pgƌa2$ݵ=J0{6mHmyA u $2|hAP+//hEV}}ӻw))٩YY%D"\ֶMSlbBu|[`ĉv;v›7}C쓃/[ljbyH%%}rutBuZNgySC۷mի' _)zx{.\bo?i:aݻEt`4ߟjI AX!6l1jaXqxB+,˗))y ,]:DY͇rpۣnj1Jo ,,Dz L8>q A`0XV vdc BT5JbcnjOD_?A |F)9(.^u%:BP/ߟPXX&wQtqZAHkBȹ Q/w~΅_;wN:,<~yݺjj DG꽔!!)3@ Xֈv&BM$6;r[Ƹ~H5Jcl',;eġC$vABԯ[wm$ֱ@m#X0jBݻg%'߳'9< s^07 J_,"8 [oÇ=jxCCw!jW. 9s8\HK˅+9|Ѣ6Nw@(,{:6ϟ'N$6:+(+3f ㏨-xn|˖iX1$IIVҿŋ>jjxOAyϞ;kL;X کM$!!>lXcǼqYdr@Uo  XZ!ց`say;\ &zu:y9z_HRR`*UU|E ۝wvvba1Ap3EnpB=%mfN`-_32r猐Ȋ}!,l [MD"75i^!x@ :6ig$]kϓ61=iQ^%L&{˯_DF$~ ^hĉMtƛ7M$) \gjū 6ov>&ׯY<{D#<9㏨<@B-4EJص)6kYZ2q+iՂf\g>aҥ㰎{MYYRc#∋ g!}\1&Vzz^`ցn?x^FF^Bz^T L8'ʕe"-DΣF9rrR&v3<,ئ4/0u EuyL[X"@dd9O8% o]]ecAUDl6XҀPíX_krظ!>޽NkGT R:aÍͼPXKuum5~~'{x60t_522:젇jyU;=Ҥ\;i)_LfuKA`ݪ[V;!&{m:9k\dvә{y۱/ IDAT`^o>FS5#X"5ĉfn~_io?@K翭o .]J $">~,ә)),:4t 0Opj#묭Ph>;O6nBw=gEE#a`$9@d׮c0,'))bL&bWW7?B?'^h͛-- Mnk8rc}%kk+m8С{3g32RGJL2~Nw>ݿh XcfPlMײ2MI\BB &=bqjj ٲev11obnXN]W_ߔw'ց&wqiqbT%//@WJ/Dh =Cs8jɁ810u֬w1c:vQJJ6Ŷ3:ћchs**j@ddX߯#B$MBy1""m\k4yMY,.NDh#=SYI+ȑVu\FF=LL2lX_$![  I?ZC@+.8hu]Btt2o_UUsu8M&YYɆį_h'mۜx[$%}]` ցv۷UTЖ,e!Uf]go?1owA Ğ?m39Ym"4iIK5{r7;{P ͮ{{sD&'Ϙ1LGGA@ѿ/kyELH$;gs³g֯N#]qm"4KhXG!**j1^&""\Y~{9,ۆϟ;r4ϟ\(..tb33 6W\DD:@p8ݽ!'ׯXk2g1cWzJJ2XG!~<%.NBѡNM=vrv@AtPxlqq"1cCܝ|}ݺk- W WV2ڻФ,[)QJVllLgq]W[\L?g` kwd>^=h '>dĈD"a(L%7`ҤI/]ZHD ڀuB/w5n\kL*YRGQ&R$%}i5k8@PU\M~}ݺJlNFF#)09虊 FJVM~,ЃZ!pց 8QEZ[:74:7W3y2,ؑAnn&@u @uOy9{6Ƴg,++CAHY /i zC\(//G }ʭ^=ԩ'`L:FfYY:V@]tǽ{M4Jǯƍ7mc " } $uuyyAي uj@?z_YYY_~x{`GTSSh\ɋ*%%XAm0}Q +55L :䠾@|[ܹCRp8N233NJJBw00l0--O>2,+++--ѣG45:d2544L&@ \tLMMaaa;w>+>>BJJ0,,U_?޸qԴ~p5333Ç֮]dȼFZՋ-RUUݼysccc?Bbvڥ`fFیT\\܀׮] ʣGjT{UUy2(̯_455J3_ο?qMk/8'- MY-X`…;wN]]=&&ݻnk?h$i%%% A.]S:ZTT9|["h!!!v9L<{lYYŋZ 1008w =ܨT UUU}a2s8i#̝;wҤI?~4hݻ;[3336oҪ6fll %3FnUkcɝ&iAXG!L {2 +W^;v?k׾Z|,ݹ^Kk=mBG*kaaonn|Õ+W:N~ZWWf7#JP| iYYǏ ݻw0Vsrr(đ#GT*ée-B$--M\\L&#[@VVIII-dXO-X09g~~~ŋŕ?x`֭7`0H$Nߵk6..n̙m_WW}m۶LGGN&4`HHHȴ+55bܹr3gΜڲX={̟?p OOϵkiǎ-wj>}Ӛ5k ;8֭[۷ϛ7†tMwrpMbUT**l|EE5k&>5tƓ'_v~+r!.z47ʚ'O2` EP ƞ={ 䬭_:\s HPPӧMKL&FNN{F(++g-YhqddD255c0-upph3r8##-[t+i4Z(飥a:j466n޼Y[[[QQۛJ՚6ҷo_UUU???n=xal;55ZZ~`vv#Qڼ9XQAmɂD ;l߾}Μ9XGѹVqWfS=k@{0Qt"**CWwoe|d_?s =)pMC<0P\\u<ĢRTTdEЕըKHaH7O91ouF[[ҐL0%..u h#%%$ԫz܈"Ӏ >QVv]ؘqں'ﶂ;H^VV NW ќܹ}:BZԭ"rٳGHi2LLJbaDEe؞97Gܾу'nQVv.삂ORǥMMX҆ SCC_t_U GTU?9 Ǜ&%mqwGz/<Y IQQӪ @yyЍTU||lOzݣ^똙!%4}XG ĉXOhàŋ/^R1  mmrtZX1jQ΍̄BCtcܹ>(Cc((H> =| 눠R ȯ_4!MeVBruuCr^fCCӬYpN`rWaauO>$5uV4ig[\wH@hi)5" PNnҥH$瓻xTI A &X{)pSP:B?GpAhj*‘Nq_"mm9J.[fwB2 `yy͋9(W093fwEl>cXc#\¢EpAhk+‘NqenfKJII\ATkIP `rؿ?1HRR<1? Y r^]?a!8 4@ZiiLwKYYI_!!)UUuykB#`rvv]{11kLL4'>yoeesinP]d:&~xt'oV} 7뛶nyv^^V[TTdϞ]x‡?눠vik+`VddH/^L` *굩h?09x ##o#o?t…EY!<ٳ-j`j\ر2;[iij45åW+ \\N''o(O˗?}FcЗ/XGfTYYPFl&#CZb¥Kdrw~ނs_ {yի44&wQO+*J;9 ~rI (Zyycle"RׯMlK F1f_#%e ~՛7;>|,(*EE09hFo HȐVUW?U`x>ɹ//QW$]\zee'}#R\ vq\p قc$.^Lmyڵ4MME;XE'09A'RntqʼnC=4kְ+l:")/a2X"[9q2r!؄$h4f8n3JL ~|]ž=q~~nuD&])Sfe`Sa9?RD@WȐ~y,]jG*+k==0 ?`ruɳg&O;'"&fͦM07L2ٳ-zz*Ǐ}W)bH__gSZ}-)(H͟?ܹgLiǛ*cNx̝;c=?n܀'OG4:"&;g8}/(eeY99I~|]mmcDDzYYurw`i#_\yܹCGKǍoժ0{uPHOIlWYj'NMM*8 \";y99|\MMtlP7 X0dϞ82}zz}B@vrVTYYRBB p&PXq㍹s#"V;K:5qﰰW..'KJ8TR*+MVOOX2`r_tΝ.,ڻw6Lƻ}ԃ>bSEȬnfWXڜ`rǣGN=&&F|piX#n{eX8ŀ}}Z:h[AiiuZZ1C<_,gKqqk2'))w'ܸ>s 8}> ZVZZBx>}du49;L (/qu=ubѣ'N̕:":"޾-tt>p& AG[w}1.-:"Vh::J-h={1 7`r k\\NEDC$//e˴kք}wehV\L{G[b9Vhld޼z±-#}|l^}Q[ۈal]~``mmu8"@ ^=eO|1r%56_Җ~1lM+Žoh`~@…c8ƍtL7nn ѿsg>d7N=7 CC5$ĭm_ IDAT˗;9Yޟ(iyB2K09!O?]Ŷ//1f_8u ,{jjrpAK%%T 1uu%KƵ˗ەܻrT8l 8p;wXb<\|hk+l/{,B iiRpakiP$/+pSZN@HHʈ}:u3Ogr`x߉lz+22=(Kؗ~3>#%%eJ.׿ӏ.g[tRPqOÇY'O_ ӧȳ4D-0U: `\y5&K=3̚5efВ CSǏX#`VJJ(::Zpp>};>nĈÆ_4L𬾾iIbiYd (b~ ֙5Dl;VMM,<9>>6%c{GP:S߾ĬؚH16 _xxH^^%KڭY(v5 Hii5n|S_=Lc3gSVv- p &TRB5DM jc/d[oRswI<%&F p>tg+W^U_?UYee]c#O\y:; F PAy22ub*[X贪fsO9VͳvmyjjkpEE-iiRnnցn܌$'l.޿pᘚzMPo)gZ&u8|6ap}ܼr{w}M }ƌ~u`b (BI ELu @Lhkۿ+ 3 V }u8BD@W\Ljĺ[^/Y2}|ln~O�P(^^gʼnaa)$OhjlS;VKx*۷aa:[VVb ]XcAAA%%%`ay=8"b,j 3c%%T-oe/_~ݷ̝k^^^aus璏7n@א yf߾yf쓑+]+&&drZ,SI U]]ARR/\H10P7/ۙ6bȌu&$0܃ B8P==X?11Y' GhDrIcPcc._>I!!!:"""gE09>XquΜѫVM:K QQ܂QC-ii)IbRRR͍7{S\Ly<'LLAy 66&b =UU՚gp@01@TR" ˩ !Acc#]%v LIUUݜ9TΜYЃJa.)(HGF45rq ~pŀZ_a)B]ƍj]=+}~FhEBW.U*3)tǧ+w/@GkddHaaF6:y33-QJm;fsΝ{1JCCΜ9LZtW09l6gʰ|k1?G@IIi˖-}۷g͚ܼt4 ~͟?Ǐ|309.^<0}r* ߿}}=9uꔙuRRw8aÆhii5d2YVVVZZGhjjro`2L&@ .]dffv0EEŝ;wroaa!%%ehh֪QV=zdll77`uuk655y''?>}Բe_בSSWUe%%>}䰝b__p ma%vi!.z$64wݦ ,\\CC#==AsΩĔ޽{WWWm4D"-^$<<PQQ ȥK| סC\]]233uVA4-$$AΝ; uuugϞ-++x񢸸x]]]˾-VٙFEGGsovfll{6/v[pwwwwwuM}M}M;=xÆƟ:9:V_.Q_Ŀ.-@.pzN*kaafnn|Õ+W:N~ZWWf?]]])JO255-++>~СC{AqNNB8rJp8l6e_HAkZ={ "335766nbǿ'p8-[D}:BJ_=wmflܡ@vv67{h"qٳSSm:QT󅨿C@޽~~umdJ"`r ܹJp/^Xx\\\yynq#MMM D"]vjkkfΜuu4sqqٶm[aaaffcppph`0$$$ddd:諗BBBjj:y7Yn]nnׯo>o޼.H$yϘ1tT;`&H54:!#g$ik+;;qp$'' /N=9puh#:=}tee-[Ϝ9KR7o޼f͚ 6ٳ7tѹs皚{ҤI q߾}Æ 8q!C:iRRRW\ٲeNPPPddX};e*+;9`ܹӦMsttܶm[A$vrpaU!RHU}lL/.&IIq'!ѰRZ.@ AVV6 SA-ɂVX,5ᆆfesqٲXGȌ~6ٽZŌC &/sRNw.HtTjő#9X #?=u CD_Aa!o_U"U̼rŒ%f=POO%6.KlL 7p3g0񖂂oW.bBLx{: ]P@c)TXX%ts ٠#@5k[olj  $@N~ɗgbK۸{B@={+".N ?a…!>a pQ[vPXHd_=?Te>}䠠@FbcUTЖ/r&&zpYb`r jj|}C'L0:$$Ο_dn}Ǐ /`nD}}SUU]߾BAgfnn#Bku-69v J ]y{|I*9HL[xLz>}h}}=ꩬ,K vW^^LEE-ѠA:_1lAIA@ `HW?8\54F2{c緊quee;v.^l;qw(iYY h APZzTTdV͞}lLjEE:EߠA: +7L XPP@T/s32n0'!Gg0X$ph#XBd gvdii.X,ϟoh|BJfohP("~;*i^EK&FϛwLL4%%EgAQQU~Bر66&dQ[۔"ZC;%,EDxsTGD~"""/""ĈÖ-31S_hkoXvӌ'_6dގ3+Y-tt##WΞ}RX2au>> XPPP%,G.}[E[ CKKipw?6G0SQQwoev#G Eyq>}uVwv>Zf+::ʇ{ܽAVVQoh"+dŊ+, $Bk#Gi0f1ցiӆ{uP8P;<|96Dp8Wu~B.&]RB10P:ν{W_ h/sDw/O@maNNerZg`rӧL:.!}`mKھy޽54$$ͳ~jǒ%G>;vx+Q8yH`#"Ұgde%5>~qyy rr>yAt&L0:l8H@ L`rLt];66}˗R/g45<ܹBt?=z;'~ A񞂂Եk;O3W#A7c##u'!XҮ>|(9]<u Xh41SGGreX%ddj̷͟oeXc\2Lw[XefxY^^..( ߹~67@\\ٳoX=G66=| 7o ykvo;02r%\7e;bz4–fo~ Xzn&n \˫429y,+ȐF6LM˗2l]>{oLfUҥ9"?|gB‡1cVF>^99K^ ث+ZZ277n]^ (hظqs\]&&­3288hh`"UU{,`}JJb_LlbwӔ)bk%```Eaa\\,1pny3>>a]]PgB599x<n!SV,xrʕ&p KKm$`,MM]/_1sk닏;w>8x'k0fRYdaq&44+PרH8:04T༌JJh15&YaPZ~p@/z@{{So K\y}ݺ,X|i"bn{fgޥxxylEQ6b8_jj9BQNn 4=>R^~Ҋlm3Ux8)`、8:buuu]ɓ^^ wt`{VVִwS6B98(*WU[pӽEoT' c;޿nlpr2c򾱱DFH"렫+ҥ>ϙs688}OTU%3::̙pk##Ŵ44X8{B~ IDAT!t)D 33oߊϓ~、<|u|-fV#$GmtR}ZZ2LBP(χ/7 ^fO|ʺk>ܿn-bdXRaU(.nPU[̬>pOUq(ʚ|)\ޜi;ֶ\tZŋkY*8]T;77ҥy¦_Waf2&&n-ad %4յwvܹw h-ttdq8oߊq(=*++´ Բŋ/{ojh@[[իݗ.1o޼slhJcG5pkɓ'-J`)Arri||6lOWn! ape4T K#4Ob/H lm ܞX%ڡP ֯U_14䴰OLLn!ܹwӧ+[XVZ03Sm1§OyLJ Ozk?6;"0[W<`euĉvJb1oo޼n_n9`dZΎN(.nPWg__07WimힰaqBCSMSVVfl nݽK1a(zz_=sfIs瞍e8+*y߻FFMp VKU8>Rk :u0 ;@싎ζgl.{k/_Z̐{!0 4hܹ7޸vmmܢ(EAa;[޿Ͼt;7qssqRg*r}vZZ5B"^NA֖m+*/li ۭ/ϸ`ADouh_%%杻};@`ӧ+;g><<n-cbtue9RO@mm; ^dZ | 􄆦X[p| Z?;zٲ+<{}r#11۶}mcs].Y3}Y=KOg JIIpzY$U_j-Uz,Fb**KL!-|ժ2"..Ġ]X^^uT;Ǐ/5Km˖;,{&bj:%/n!PTԀbX@3k2d1 &$$YLLpl F,g&&Jla,{׼xbi#`Wߴkvf6MH9dAYYOJiiB@6m%p O/^Zeˆ?ի(޽{!0R9x/unnQ}`kuu޽OY0yA\\HQqrr2',ճ™O|9z͚**,FF[J~()/o^ p|yyGYXY阙MvԗD`Jb5ӌomcǃol_cǖO6e˖pk""vPXXB9hiz5yO*r^.@x:@AII oϝW5㶶ՃLJe $ s?QB߸? 26Vd:xs._ڱc.|FF 28<AWgխϞ9s=NvvxrX,Fwt3cJ\ف6ܪc90Çk [05UNJb,:MM8[.UV<|ݚ z˛T>.hk끰dK7nlTT K1w!<Ȅ  --ϳ`ĕ+>: S)uuUUl䒟_! gʊ[7F FGGL8 ##"u/^|ℝ*$ rX,fra' ¼fqx9S5.FoO;;YBo?~<a߰",*YsnnMxx6+å!T޿϶&O~'kظq&$ r˗ =b1+V0;>[Z}V n=wY2#>lml4 32X+݆ c^{{/$!;vڟuyR^Le@ɓ_''7[ z©f1wc`;PXX200l>߽{Ϋ29˗ bM{ڰ7[իq,ҙ^YYƍ aai}WɴiSX @PK~~\g aai99;QUb1q@1>귱7$8]]9RZkk]z;|զfꇆ~*d`oPCUFn!BeeKȏtikOxo{wKYYg0\MS`PlИ_Fr)(('g򾰣&YZ:?Edd<oR2,$o$$$;v>3gfddYfHG ?lZO*ʕ猙|6a\\hee&* `ΎdQQ==[4)/?IGG酅}=p|a"""~jgzj555O]rskV/r0fHfc~Dpq@ uVV:MON.=|kYYV={M$Q(C7oKKK!f̘8Q'Pwjii={ѣGSL! 񞞞x<̌TҧF{xx@ DEE߾} @[[ۦM<<<)! ASSKyX,[XXx,ICz@Q޲eKUUǏhhhAݻ=:ŋ𡶶vԉ]^͛455 xܹ+WVTTdff8pĉ666 p8###SRRxyyAttt,..9vP%"2 } $U)HICHZ֭[477?~ԩYYYӧOk}atRXXoaqZ_bdeݻȴ{5Ӷ.ii׏WMML؋-;u*n#->85kq>vMN.a.AkkޱcHL: ~y㠿ׯ_]]]ӧO \8$34=& Ԭ%-c``"((800v!,z%Kb0lҔ/_UBz@~~k} AA#GJf5$`M^˗/Irss?u: 7@۶ힼ[PP,+S… Q,}]َf>Ηvmh`^p ~<b 6mn38@'SMO~~4A…ȅ L\oDDDo~3%%%+ 7N&77wAAmۺ mՅEEG9DBBB`aIIK/i[XXP@@ 999!!!(((666!!!>>zBZUU5T s>}^Baa*===Gٲe#% 0_^^FzE& sk>=.7>>noߢԲ[EG 0z3ThTRR RMNN DWz~&nn_'í 1T"#~ܿ 䪆RYY`www3?MNNz{{W^陖v5ғQQQc$}Ս:H.[[[F,Y^PP`dd4q ))`JJJHӋeee*!qƍϟǓ~~M6Q)i\5ߝLYYqFFƩS(P(Ç-cj!E4H ]]cg@ǧ)a5SҘ'EǏ+Y!Ð4Abjbcs h3b/ch$Hܲeݻ={-[<==ꢢ8@~nnޣG0+V8x`yyyffիWXdɵkצOb---߿uppسgOiiivvÇG.+ qgg羾>:;;HW3UH_;;;;;;{׮]TMgixpq/S> xI&_vmڵ~#c~4lc͢'O޾};)䰭ɓ vwwsss{yyިe'O޷o_ooXz{{:4)A@ pRGJv4 <<S99X"нrj"den?$3z3{>a.HJJkee B  H*ii׬*Xv zv0 q\}!pL0Hq@>ϛE!ܕ+1Jff*PdOWr[rddvnؐTzJ C73Gӧyr֭NzC$2e`p貋34"rlֲ&mA9954x.)ٳ3/g#}+$Q;ΝE Ne*pq˖}qfˍv~8/332ׯmm1=JSSz*mHH(Jbkcu#cX%-!A]cGGohhʖ-zMMͺu디MMM`1jRS Xp*7| [+L>{sqyĠ..jB+MM]c1qaEmm=pҗ_9hVM?XXP} X̤x)888))i͚5k׮}=+ѿ䘘Lr^җ/ynڜ^qr43G=1ͭAO8vղeHhyDDZ[٣7 O ((@=ufQw@$$:8Lx$8zyn߾=}tmmmwwݻw_pDbs3!PpX֮~^"CҒ>rK?fHZ}X~4!cMM-#$&M4KO$ÁeV..qq-7b*ŋ{ѣGܹCz|pȑ .;wۛԒq$w9toWĵk޼yyY2O"Ԉ /^_wGG/:{vSF$J̜Ƃ~חgʾxwLj9 :Vo{ʥ]80$$jJ}}{XX*T8ZZZ]xd,x܎#;SǏA$Cg988xXOcaLH U&&O3nrwF~*M^ޭI% )WFf_tt6+{&9iiמ~@FEEkzz'9q\Yϟ]xȜdnn'MMM{zzY&7SfXka:P( pJJ:SwdMMߪF}N}f0߲eW 6νKN.vٳՉDwJl̬APOOeDȑ3Uml]S{n!A:V֘?""ri $$'bz >c*NgٲeC?~YzRþ1%G-pIrPPP@zBH!ݸ{3vqv;Ν :U':Y̬vUǏ/vYTsIQQ~ aIR+GEɰ/_ʚ֬8UɩS>}~_fff?~< ԩS}EDDxaGGG@@i<3#GH#o߾>N͜{%'':tɉ̓n%Gyy0"B]B>!2{KU;̬<ࠫ/rƙZZK)3 Hb1܈q0RS)TMy"@AKKAXqq~{{Yf{666WdddLMM-ZhѢA"f:;˛*TW{99QH`0hN27deE HdgW(MMJ3|)D2kZx[+ P-}Բ7?ҿZII m1.YYUD"dшǎ "mÌRK 1dgWHPo)&&H.PUTD?JZVWWks\jb J( nj>>jϞ}ո&(c9''ywGG B٨-#++;PRrvFHDc<խD"82ueSWkgD^RGyA||ނ 0.. ˆp|NNfQQnsh^ol|lH0|jOQQ*$q<~/KL^*>}ʏ:yrD Ho$..1HeICe XF ԕ7ϟPICa"==y__cAAN}}xg燦'NzSV4E[[&<|WNIfvFFEcc'bh 9ꖰ~akk|:A[1~~ɓǫPF[F>CKqqAll脋 .w<<\;ljfn~8 TɉQU\"gzuu_BOf:Ր?Viֶ,J{Y֑n`T== Kb)k|-1' CFFw_ IJ,˟3<پpT'_Ls5gyӧ3f1d!;㠪H=Dcj6**|~o2}}̉9ohs;\6gU! .aoܘye˗Ν{8hk 5X,&0qϞw?3őFKKL MN.9on Nww?`) UUGynȗ7v3XKS\?$% ΚhUCB@-NNfqqQQnӦMr%bbr)H]|}.]>|%=ٸpԎ2@JJٴiSh fDGgYHI)31Qmn_ȑW+V#7-B:V AUUKo*Ɓ)II TT4ʊRX2N2HbIq V4 I27?p=44wB-.^Ɏ/_ =>0AeeKmmWĴvB AqBsz F_1RSSFaOGG_VV̙ql8PTT${YD#WHv6}싹jx?imz2--~%$'b}}Zj#7\9MM]& PL- &p|#_803SIO/IVmQL$檌0 vV M[LJ:aRhR АzA\ͭmߙZZff3afvzDDႛ3\\ݻH ƍxn,-mnn.`О &9VHI)CPW%g̛^11[ֶ@IA^^mww?b+7^bjjKSSݻ#=#^^!4dz ԩ^^~y[W֭aeo3&JJ ȿM^ԒX`jK]H%!!'O8! 5ijcMM: 3f` y@"..4r~~n55)ƋB2Yp͛5?1p U f#v^pk>xz`); *&ZYEO9&Jh,xi3H55m22P&)d4^%g L6F͚ˍX`KARR21ЫW}{W6sgKXX֭TH[XJ uʨJ1m\WYrJBOaq|5=mm=||>OM-C'345m㾾+[X2 [pпJj冞fK)+GE1d!1@PGO eeMV ' TB^X}V<8H$?q`v[[Oz:}NٗޱNb[R҈pF#rpNNf{/^w^hd宒F{kFJ9 A{zP8J'22zsUHSm6qnEQP)?>>O[[FR7րq|RJJb 3`M{DDF)5r"44DxBq0>Rz׮#S>>a~- J44tv^.+k|"wȬׯ)oeSZXT@Rroߊ-,pw=`TUJJ s9>׼ydo.]O>^a=iie)[D`$pssɥO|;~|9%N)*WUe{ݻL++A-,YOT}}qˏ45u55uiiI3GHH&ڙp|NNfQQnsh^ol|l~}Êƛ7 Npc^0{//6:✅ξ2KKmJOϐ9s4/7V¨tvwqP[ۖ^acG~EƁ~ii:Y71/uulpqa`/0VCOO.-XPS_!qU}߱c7>R8ZQQlާRٳ5 /S>ΞMQ+1-OVX5 FkSHg*FF/^@!=c׊IA`4$r-<<\;ljfn~v=Q(Ro量(蘑QߟȏIL,y>|ed(*:~עmLCBlm ǽ4ԉs?8B~~r/h4 @!##bOpNE/zy$%-:kŋkb_PRX[[ܹwS=-J$?~̃J'yk;Hݟkkl< %?NUUazYYU5㎤"W6mn`fJÏkXih g pB:V@B[yscfÇ/_8wW㚛&naڝ;[>{cJ @eihg2EELM@xSS_Nqp~bzzjb;~l% ,nl4HJXLL'.]C  uNHǡ/NNfqqQQnӦMr%bbr>[p;bbrn?H~0_SRxr4aVV9P˕ё%?ݮ] ! fg-vz{^HYf:%0TXQQ,nnr5jk::z55b tlkٴ)nni0sjH_))e7W,4((.;z1VV:}߾A"Ç_i}?bbB{.dS )/onoak==kLd0e|J.b츼:cxDNkbIq V4 I27?p=44u ^U\ܸzq;-m4Xiާc'BR'=|3蜳gum"@Kfffco{vvFbb 8-3x+  E<˫QT80$~TT$H=s64<B^44篆;v2#hk+*cccO߄?0g1mm=G99͚EEHʪRS[|RW 89UMQqullBrH*#IqIIG<26V{;~<F:TJRknJuƁߨfPh)OH+ [gE[|9؎>.`Zaay/ 4)leeq--w!K r.JfLbbAHHS+Jg``0#b rX|WW*TNYիj'(@sIYYYrݻwx@*,tʠŋ/͟wHvou[[uRbee E\\]W3!w(.n~=~z|,$};ۖ43giiI߹@tև7砲YA 8 cc%)Lx_X޽3`[DPǏ/߻ww?ŅxqMff՝;_]D/""ZGSSWzzŨg D7&&JכQ&|nXFCC+ѻw[ҖXGqB煇NVb{4lcpp8`0șg!Exz^^_=25=F{2xxX:d6jx޽ ϝ{WZɼZjj22*ALN.~9o޹aӳ.p;RUlnn. ء1EE ȁwղqRTT`׮M:F.Dݸ)̮"sPUՂx…A"rIpssֶ|ѷ;w䝜x-ŒMM] ӌٻ٫W W˪ֆ.. K\\h朜+Wbx'=ĀYԊc\ʎlN"..k 6F|.͛Olqv{{JH? 9hl@bENND)5q)p*"..;w044ȑ0_VV: ۼymDEemv_VV֭MK^>qUL̯fRB}}{KKdp=_Cv,STԠ :o`gZ0%::g,5 ?om>x5kϝI"4+XLX]{W㚚恁N7o:119۶A%;dʭ[ eeCǍ 75uԴ @$ >y򽢢|(ES>B%>zt=ڲe_::zY+뺪F ,]jŅ3d6gk6nAI J9=y֭D"YT Y-@zӒgp3u_s~M]]d*ӧO2 D"q͚kNڰ̂k3%5xq-O!!Isj -"K M+T_oߟ\ WHw``'KnlTWECF`pKaa~''3''gϒ._};D"B?|d! !!>[[IFc!`0(aLa\FYYihEp )uEE$ejk {B(c^[Sz DaWׅϟ  FzЀ &&S22+) "&u3/]ZvlϞ# h 2CP》 3ed2@Q(jY޹!<}CTZƑ_y]++Wׅ. YȽ{aa>Fh %..(ZHI)#) 9uZ#GM,@&D$A]] `~Ba aox$)Voo--@o6z8`Vaa5P #ܕ֞awt s@d^$-Xp`,xnzҥ(Կi(@ ݻB("֖!0+t )t)<|),+k7[8tt9:-(s$2QeyDEI|h텸8M4W2a?#77/\qTV'ݫ(޹ `qq"'uK DBm>}HG7VѣoƊZZ2p !G_~[ݏo \iӝ Wf>= 81Ο?~RD"ܿ`4,*KiG5򆁍uz?c0঄krPUU`4 .$&&[z<4hPbb"n>}_~3:<0fuakVu|Lp'<ź"՚ Μy{>2 ?:wOO7~@6vHJ[X؜>}b@BBomm-@TFGGs\T*333 ˗ݯ]fwww''*8Z^.]X[[{yy}:vuuo ðnݺUTThO~:a„cǎIII1~u^7Eb=z5kyrэJY0ܹOfHڱ㊍cp1cy~iиq㙁1>M0a„ o<-,,lڴi%%%\.Ν;qǏKMMѣGLLLFF`СW\YvmNRSS?~ܫWzIR++{dT}Xbk.]֮]7/v >RSS1 ;qӧq^"BlٲE,k4ZTNjD"LqgϞIRZOY0 S( BXx)X,6lK"'NBmM%K/^>UFFl2 :4x`]VoSTΗ/_0lذa6mz D[ŨAr>F%iܻe;>=H(|i#oL 55fѧٳg͝;ox*a? 77taرMb0W^}k~_N$uvJJI Rx qSu޽{Qw^zuRZ Br޽oذs &LHLL0g.oTD"7ĉ.]2ŢV aiԨ~~fˎuuП:zt^Ϟj,L&~ƸaNm( ??4hPdd$f-ab۰>\\\rrr`Çׯ_T/LhE"ѬYF)tv?|pppSJB2lĉ<عsgX1"8lذ=z|G/^?qrI$RV֫}/_ښ@RRR~׫W657n\xb&Lpcǎ6*YЗBf̘aXhh&'38L&kWHNNR?.Yk׮|ƍU*x릳VfFBff^ZΥ>^` s+Ґc?^y׮n&kD ֮=T Nծhmh43g.X !!ҥK)))}ܸq˖-MMM ޱcvSX.͟?9l܋@ 2DPP([[[ݓG_[\P(TL&[f ,ΰav٫W/ 2pxBO"""Q+4G>}Tjԩ͹8 N_tҎ}136p ݻw_|yDDح7oޚ5k{=@MMMϞ=ܹiӦ:thȐ!jݮ͛7_ǰb S`}#v3.Yԟ:ѱi2u"'B kFb$ΜyHTk7~}Tj^ۻvP(0 ;y$ǃ[dƌ b͞=V>**1$$D,ƽ0 ;z7JONN]P~Hc[2L77;wp8LkcUUUuaV[[KR,Y DSNeX<oѢE2)d2˵-ڵk;v4G7Eb9sH$>} 6ic^WWל3͋ 0 ;w={6as U1 V K* <ݴ4#GI7]\=}Zh[µkbFRjzF϶iY?e5dpnVTy`۷_2JG./_>yflb 99ڠG۷o r |`4xi?`RRRufccqFX^^>qD X,.]vu{g7n_F[r%:g W_}ioo߻w#G7E+4je0m,6>>JݻD"1)) )J###;wlmmbŊ~}'ouef,X 8_Rdoo":E4%W9y3eٝ ÇoYм4AAH(\eo&M)2"<‡̥O+2+ qW#Fݻh*\ IDATСC cͰ槟~СÀ+2A[ je X`R`[n[ "A\٧φ3|pRZ?ˉ1ןY2cwOFF)S)ߊ= _}bxJg޽?ŋB/;)JhhP+K[$/CUN,8\W'7z0WZ3rÆmUo>ܬ\ybԨ? y/_kEƁzs7yfΝ>˂؛N6HV2oEiiixxE\AT\Τ sMsFL䐈C$6oI==C\߂ ʸ/3_|ٹsgKǎi-VmhT[ n8N\\E@nc4lѢ;kV_$& J~=24Yth6:/>{VdzoVh MU/|QLgϞe'*BaA?L&MNg_gsT@`e`,ԣǼyỸbWUթT'4HfUTǞPxҒ^L)1Ñ#E7nXngE</^][()̥OkqH4*)))ԭ[k(ojK͛y{/1q͛_wɿM)%8$$\vt5&Mbf'55uٲeOMM]jnn8o\qA L\.z6}uyz:\++~2`l'Ύk(̼Biӄ>ڼz￟l^Mt`JAǒ%KƌS^^5sK]aeeE X0[Q^^3aúL1Tj &TTH7m`! z0qd})S~8QDX0u ;ZY9<4lC66OL .]/1qG7Pc`~ߺL \4gO]G& D+eswf,Ѭ-ݬE~~78bh];ɴU4),vfr Dkҥ;v\ްa|| _,iܸ׮-m֖cG͛?xܺ4 Dk$#tC&hTA.=0`Sl4٭P'aus_rdlo7nd[`@.OyI)/8; @pƲV{K1~t3 2(#Q*՟}_T;H 1 KL׿;w ߵk }o3!@ l:iȐo?0DŢH$ү(%cmTզ@h&eL4* fc''G899cK+c5kFٽK ǂf6z?x/[^_9Zm6č77\߁*٩q<@mc&eɼ~B  22J9r{߾- ׾|YQVt-ooΙ3 us7²_&x[fdZJ(*c' @`oJ{v8r$u [^N`]Fa!՚Or++<BcUVVTUTVH$6۾cGe#fI-s']eQp84@yy,Pͫqҥiig 2mֻp߾bq-ag24Vgd@kŋLA&==:tp?`^^;6FVD|q~@TX(V*{{+O)Sz ,??g.-D"4K4,Z' [}ЉD"=͍C;ݝ%ژbF駰1c~ ˁH$Ip[APQKŴ$LqSqNݺDkAsr*+23^,{P`$͍)r<&Lxۛeu?rs+ss+*4 d2B!Yδ]<>\??gsDw ?J?_۲弗鈀5BnEp= ;<;<;t[OO@='[ pbkU%%շo,).+KbJVx,طTRX(.,߻ ąUbr͆g2Bn~~ >rifp;ҍ ko̲3%md >|{Р2̭ H|G?HDÃ6ܹYl:zVJRSSRB3˲W)pW/ogg4 ^ 9n8ݻc۶ QQfpNtrrxCaII2B!Ņ -sݝեȑ]LJK 'O /_~ ,(JY\.94áyx)4?Zq|e˒9U[_4ógEK$>z7mZҥ-4i(r;@ Bߥyy"x~I$5 72'f \K` .ݝ[8:'.ZdD77feNakKPH"XB&Sy.ukW7skv@4mx}|'Mb[YY5P # <)%Ӛ/}ɒc۶F5f/[յ VNslCBœ~̭ہmf;`C" UYY 8{r D8tď >}ܹL#ՕQP QjFRS.M| r;@F.Z#reYYMnn@.~v\bu==٦wscvvm{[VNڿz`KB5zG’љ5_FCph_??*aZ}nD.*9ss+;xn܍-ՕaΎچSRXqH$l=[r;@z%auA6 9 B!)jDyy @Yh૯feϘܹ<ݨܘg<[KFerr*-KrLاGnPg psc:99l??gDR_\\yqjj>D"r84WW+O_>ܘ|>ڬC;Zq@1zӦ9u*ֶz-ݝYV&V%%Udz`B!/<̭@n# J)<Ͷt-GwscT'O 9TWW&Od a A>h!JVl9bwsoL-yz:aSIۊuFbzňI,,@&IvxgDZg?n ~,=KѬL[.A.WK$55Bǯ<2ϏGr4T;an =aŽKlHR<=D"!;ѶZf$)fݺǏ=hPDŽ9|UN2 ii4.F0,}]B"UW$pؑ7hc6]@qqfB_!J%xr˾uIk&[Yy᦮UaJ DqI@''{{{k++r.R\$H$2D荇AJ[0uܸcLCSVV7VT[ӧEK{(ڴavvm< +JH$sKyy^LrrR ۛ#֗H55{w.L WPPF)W:L3ƓbGǞjY+J$ [^صj.Ḓ)@nm<4/< |wp"D77D"+/Tj< OO'@@ڎqy;6gOOot-u/-_~\*^=UTN2 "JJ2@~H NPHT*gKd2R.-׫}ܘ)@ |vކ.+ UU٨TZuW9P Gg V D"h4&N$j4@TWWlmtmeooN5C G2$C'LS \GC5 ZAy9v>}|ͭy@n ΀SPt[*Tj4B!)*@]B!>\ @֌-_>7ǐ]ǏnEwwBP'˽{K&T|G  RLہ ()@2.5B!*@+J%~ݙ66Fr@ 6,ѣsnj>eǎ3H $32Jl{K6l}{{=ݰ{+v` KHD J!rJs7`>ڦqpvv9cn1cϡC):뜑QP^^ьv 7:r;h J wF@nneQ$vvT*Vkkp#@&Y,{?@ڬqG?ٳ#ٳvEŭdg$WɁ+WPD ]:!P CJLRuu H&X,; ݄D-x䓟.<SZɩYPzo=}=N$CiP\\U\\UTT 7T2B&\T*հf숇@Dۦ=<f-חTdl+WfLLbqqUtt9tSC )^:@/ɩ(*־ jM}*3]]..tX*Ņ 1@ Z ?|߾~?omMYj;#rI$J|eBEM +'%%<ѣs]\&Vuva؋%ee}̭WKiXXXUX(ϯɔD"T*50v,77 gk0a WD3g͛˧]z>Y>;`oo%PZ547L4ʺh#Gninqv4֋X\۹ɓEJH Bn' 1<EZ_H$P($ ? Bphs tscڢ@vr1k]ݤŋ7Wmp/0:\rՑ#^Y,ËDgg_.]qAX؇rR y̿L GR66  z,+\"J$D HD͆u xr@@ ZH;2'aXdd2)"bT2v<K[rd./_Xqlh47X#Όouum.] \l(m73?xL0xg*@-hfe狊 r|/a@y-vN@e>Z}D"Lk{9g΀{; ڵJ"ЭAtS*&pp9x]lYRmb͚vW9y}OS-źA\@AAe^@\Y)H$$.x<:@KD”;0yr`m|oEfs/фBʼ^} g>>+l˫\+ǏXf4\ƚ Bڹ3lЭ?"tijCS 3,/2H0 ﱵxt'K\CCe%'?JKufJ@5Ϟ=juH$‡DcM ÈDBLLb>~66ڼK;ztNPP;:wϙ3 .j2j(p843P`Ѷiw+~ݻYM}4x|Ym-|x媰2m@$ss+|FKd\yvû.]:xRrUIIu]<(ƍt՚+O68.Lʄ\\h@+AQQնmK -JO/))]R),+cGUNWx(4@蠝ZyB/UVJ\AFF3SRxg7CB&?BR*C-n",3gXqq*0*('"7 ܮ$Κ˥x|>sg'CpLLґ#U*5@ɉ VIDATEvm@JSbvv4L&Xb-K:p&HLF^^ʵ] H$"T* Bz=@A߾7F=zg3"Q6|3˲|QiD"5X  :Ņrr mJTާφ2Uzz+Wh4ŋi<󠪪. KL|wUW:tkff)2Ra`δ@aϞAǎ.V[wIF(iB3߸'q7WjLhc48~a;1#^LNxlڴCx<ܹ ̙#G('ߟf8:Ƥ}}|ӧ͒ @ 6k\pa% 4Mee%?`'Ozyym۶e2dY,_~=c0|>_,|}}kkkJ2::r8hR o/_~ڵ5kָ;99ō{RRRtbmmuAJٽF{? 8;;&*o߾7߿?>>B40gΜg659 B!ظq#~58NDD\.$4Pձ~;w6>4wܺƲ\1h`͠իo<-,,lڴi%%%\.Ν;qǏKMMѣGLLLFF`СW\YvmNRSS?~ܫWzIR++{dT}§@V+r1q ]]]t/../^֭NMM0ĉӧOǍ{D" eXhjjjjuSǏ/w5F3zh=_N {qДtԘ]aZ0ѣBPg#S:g})|}}88ОgYXG  Đ>t:}iiissrrx<t|ڵkW\IJJJNN6tꖑ_:cjut6Zoi~~~n?tg4i7>AC 6!AEFFl6ŷo߆p%''<|pMd&11Q$͚5kȑ"Hgk+R͙EEEE}]fMxx3X1 ~Çi:;4 ==> j8S@#ϴ4=iOã o wD 6F3s $$$\t)%%7nٲe;v5u+V6Ջ@ 2DPP([[[ݓG ǡ_~E"ڢRΉhw0,<>ŋxݻwDbRR 6eʔR\74>#ٳÃf/X@&l35SXR B;;޽{%|~W@p"##arW #A_VVAX*>>> n K:uj>\vDU!x d F7@ md 5@ md x d x d x d x rO՟wH$4PCπ@ LIp* =ocÄ@feHD ~@>@ ^@ ^@ ^@ ^+IENDB`XQilla-2.3.4/docs/simple-api/classATAnySimpleType__inherit__graph.md50000644001725400016040000000004013273140074022450 000000000000007e87b149015571afed247ec355b388a7XQilla-2.3.4/docs/simple-api/classXPath2MemoryManager.html0000644001725400016040000006260013273140077020345 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XPath2MemoryManager Class Referenceabstract

    #include <XPath2MemoryManager.hpp>

    Inheritance diagram for XPath2MemoryManager:

    Public Member Functions

    virtual ~XPath2MemoryManager ()
     
    virtual void reset ()=0
     Use with extreme caution! More...
     
    virtual const XMLCh * getPooledString (const XMLCh *src)=0
     Returns a copy of the given string. More...
     
    virtual const XMLCh * getPooledString (const XMLCh *src, unsigned int length)=0
     
    virtual const XMLCh * getPooledString (const char *src)=0
     
    virtual void * allocate (size_t numElements)=0
     
    virtual void deallocate (void *p)=0
     This method deallocates memory. More...
     
    virtual CollationcreateCollation (CollationHelper *helper)=0
     create a collation More...
     
    virtual XQillaNSResolver * createNSResolver (xercesc::DOMNode *resolverNode)=0
     create a resolver More...
     
    virtual VariableTypeStorecreateVariableTypeStore ()=0
     create a store for variables More...
     
    virtual ATDecimalOrDerivedcreateInteger (int value)=0
     create a ATDecimalOrDerived for the given integer More...
     
    virtual void dumpStatistics () const =0
     
    virtual size_t getAllocatedObjectCount () const =0
     
    virtual size_t getTotalAllocatedMemory () const =0
     
    virtual const StringPoolgetStringPool () const =0
     
    - Public Member Functions inherited from xercesc::MemoryManager
    virtual MemoryManagergetExceptionMemoryManager ()=0
     This method is called to obtain the memory manager that should be used to allocate memory used in exceptions. More...
     
    virtual ~MemoryManager ()
     Default destructor. More...
     
    virtual void * allocate (XMLSize_t size)=0
     This method allocates requested memory. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::MemoryManager
     MemoryManager ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual XPath2MemoryManager::~XPath2MemoryManager ( )
    inlinevirtual

    Member Function Documentation

    virtual void* XPath2MemoryManager::allocate ( size_t  numElements)
    pure virtual
    virtual Collation* XPath2MemoryManager::createCollation ( CollationHelper *  helper)
    pure virtual

    create a collation

    virtual ATDecimalOrDerived* XPath2MemoryManager::createInteger ( int  value)
    pure virtual

    create a ATDecimalOrDerived for the given integer

    virtual XQillaNSResolver* XPath2MemoryManager::createNSResolver ( xercesc::DOMNode resolverNode)
    pure virtual

    create a resolver

    virtual VariableTypeStore* XPath2MemoryManager::createVariableTypeStore ( )
    pure virtual

    create a store for variables

    virtual void XPath2MemoryManager::deallocate ( void *  p)
    pure virtual

    This method deallocates memory.

    Parameters
    pThe pointer to the allocated memory to be deleted

    Implements xercesc::MemoryManager.

    virtual void XPath2MemoryManager::dumpStatistics ( ) const
    pure virtual
    virtual size_t XPath2MemoryManager::getAllocatedObjectCount ( ) const
    pure virtual
    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src)
    pure virtual

    Returns a copy of the given string.

    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src,
    unsigned int  length 
    )
    pure virtual
    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const char *  src)
    pure virtual
    virtual const StringPool* XPath2MemoryManager::getStringPool ( ) const
    pure virtual
    virtual size_t XPath2MemoryManager::getTotalAllocatedMemory ( ) const
    pure virtual
    virtual void XPath2MemoryManager::reset ( )
    pure virtual

    Use with extreme caution!


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemoryManager-members.html0000644001725400016040000000752313273140074022763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::MemoryManager Member List

    This is the complete list of members for xercesc::MemoryManager, including all inherited members.

    allocate(XMLSize_t size)=0xercesc::MemoryManagerpure virtual
    deallocate(void *p)=0xercesc::MemoryManagerpure virtual
    getExceptionMemoryManager()=0xercesc::MemoryManagerpure virtual
    MemoryManager()xercesc::MemoryManagerinlineprotected
    ~MemoryManager()xercesc::MemoryManagerinlinevirtual
    XQilla-2.3.4/docs/simple-api/classDebugCommand-members.html0000644001725400016040000001365313273140074020531 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DebugCommand Member List

    This is the complete list of members for DebugCommand, including all inherited members.

    briefHelp_DebugCommandprotected
    compatName_DebugCommandprotected
    DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)DebugCommandinlineprotected
    execute(InputParser::Args &args, BaseInteractiveDebugger &env)=0DebugCommandpure virtual
    getBriefHelp() const DebugCommandinlinevirtual
    getCommandName() const DebugCommandinlinevirtual
    getCommandNameCompat() const DebugCommandinlinevirtual
    getMoreHelp() const DebugCommandinlinevirtual
    matches(const std::string &command, const std::string &toMatch)DebugCommandstatic
    matches(const std::string &command) const DebugCommandvirtual
    moreHelp_DebugCommandprotected
    name_DebugCommandprotected
    ~DebugCommand()DebugCommandinlinevirtual
    XQilla-2.3.4/docs/simple-api/VariableTypeStore_8hpp__incl.md50000644001725400016040000000004013273140074020740 00000000000000331cf0fbdafc33e6d0886175c58155a0XQilla-2.3.4/docs/simple-api/ATDateOrDerived_8hpp__incl.map0000644001725400016040000000240713273140074020343 00000000000000 XQilla-2.3.4/docs/simple-api/dir_c1e9a17863af1db543cd17273f791be2_dep.map0000644001725400016040000000100713273140076021375 00000000000000 XQilla-2.3.4/docs/simple-api/globals_defs.html0000644001725400016040000000564013273140074016147 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/simple-api/NSFixupFilter_8hpp__incl.map0000644001725400016040000000154313273140075020140 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_51.map0000644001725400016040000000036613273140077016467 00000000000000 XQilla-2.3.4/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.png0000644001725400016040000002173113273140076023641 00000000000000PNG  IHDRPvϨ{bKGD IDATx{XW7$R."BQ],ZUEպXVBm`[q"(QJP d~MӐ~ə3$_LâiH @$D@$ꨬlr:D-]u]NxbJJJwm#99{;DO+00{D@$D@$=~y{{4[oXUVV.^l„ z)b0~\pA$D">pB{yfOVÇcƌ155MJJ[hQPP?KJJ\nѝn~~666vvv`ggx<ɩGK(3/bUU_|kugB.Cz>066611`fe2Ydd-Njd^^^Icf=s挓ӹs7ua++?(rrrYti}} 55uݺueGEE8p_lutthiiQ= N/{'w1l0sssooK.qЎ&III ***}˗+ow;vMBjYYYR}f ,رӓ I&EDDh_,@]]= s1bĶmTkVn_nΝ</--tppx̼Ufff7oT.ѣG݃|m fgg4BpiiiL7o*ۯ^WWbXׯ3iii|Ľ6lw}l? tcc{奼o߾鱰P5hkkր۷U ۷@ h_mmmϟ?,//o񍍍ff9۷jEEEP+{ׯ_ek׮p>yajjlٲ7n+\.WXFFS2fO?%>gΜ/Vd2-.))a߹sg4EQPQQ]2w΅7n N4M߽{$ 3`I&YF/ 6LGEE5J oo+WVupp m'N`VYxoII@ ܺukMM 8pѣGC m[y<ޱcD"ɓ';94-_ZZJ$˗0:$$QDZ`aa<и:Meee ,ppp0778qbFFruuuK,g5۷otqq9~8!2lʔ)fffڶNQԎ;\]]_xɓ'3|nzrr2.3 "| "| "| "t7/PܿРA[ޞt/z52EgvhU~px˖y}b(O2~1c2<#8.P`>KMEܦ _SӎV*3S߸1S,+51+FF~oQ.Wde^_ߤǒ Ξ-(BS*p`> #CSR8zB"BͽSUH/%ޞGWi|f8Q~y󑖖 (R\r ~dr{٦>}8l?~9]D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D~РA˻O߾n2Y\~8NVVԩS^~='U^^ލM@H*s w<@$D@$Dҋb]3C껊gCȯBxپBv;;;fV&EFFxHL,+>>&::СCC زe>KysF(4- Uw<&&޽{|>ر6mbI$@``D"n癀E"39zhq~~>MmmmjL']ieeeY fզ{x*X H͇T*e&ϟywYf޽[ޘgg)S()۷o7773f̙3_z饘gPz'8o\nnn1a78"| "| "| ѣ]D.gٽd4hP;(V^]mm׳hѢ'v{N_-/9#!!DߵdiiW 'XܨZ 㱇 ' [|Ү,r"%1FJe\C@p떨J%^26f*p`> 51[mL&OLK=We2yb>~cPz{>^-kؘ}X~chz{> ?\9~~/y'?~m!Z2<2_88ƾ=gh}b(za> `> `> `> `> `> `> `> `> `> `> `> `> `> `> `>?姟~5amm껊0anAXjjnw[h>EA,y Q? `> V>>NX,m&&&4)(xa@i:11))){;)))r]rƍn;wH$D.\<==Q'ԑ,+33n߾ݹiD(hV hHLL>}_?:|aaa+V`nJ׮]#tvvvl}}e˸\cDDDKK xC 2b˖-r|(***fҥjÇxaaa "##mmmy<^ddL&;Kt bȐ!qqq4Mʛ`bx߾}ÜkkkLFtBBB tg{>?bĈm۶1[ H$@DvI"""TBmCdڼEEEL111cǎݴiP򑛛pjkkiz*&Φi B!EQvvvgΜizNT66}uf6--ՕJ~~r+BPҘuo޼fCcL>E"033s{ga(HLL(J,2))iĈ̴3l6{iiiF:}4WNrŅuuu-//g͕[QVu]777fÃSe'Leee{A򤤤;w6aIIIǎ+. _)zEmQZUcP02ĉ–|R'O (JͲ[=_A͚ ##bz{>Ν+R\8{14G}5k1m0ft`k=fϯw# QLU89Y5H_~|AdD@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D@$D*++ۼy3q5nY (576vw#///11Q=뚻{ݳ/gTrr:Gu3 "| "g>X*.]ZSSn###_z%ss &|gEILLdirѮ\W[]'^paȐ!r믿;v@ ظdĉ&Nhkk3tׯoٲ%33lW;wH$җ_~7n֭3#̴$%%ug YB1mڴ[jk/ mDDԩS)R.Jtna^EtbVZ?2'N3f}tt4xyy@&EFFxHL [nU*^xȄbu''sii'>>&::СCC زe VXLKRSSk׮1:~y<^XXXkkSut΍4M_|ҒiDbbb;'$$(cbbݻǎi&X 555j:-믿%JT D~ H$qqqP[[4cmm-hNHHT(LW_}(77u۶mnahmmߥR\.aZ"=z|\x2|՛ϧiMm)}ں(̙34MϞ=;::ZFYORR+[mtú~P(tqq+WJ1chl\VVfoo+((SmYPP0n8fݽڴfϟ6jԨӧO3MYXyySu ={ooVc{fH`b.sss 88?V}븱1&&f֬Y̬E & ===99yʔ)(EEEOۭ9555UUU999+--]~=477GEE@CCT*e&ϟywYf޽n__SN I& 8p^aU}K,Q]nݺ˗/ovs8huCiРA[wiee5hРo6((d)S1 $ `mm,Jވ#LMM===oDkyI>PkVmZ_~Dr׮]LVݝA .Eϴ>lqq[K@a>ZZZ*++9Z>.]4~wygƌʅ _QGO>}z]]Bz:D@$D@$:93,KפPߕ<ɓ'[~px˖y}b(O2ٳa|<&32G-Vr Z1JOr ԫP޷u/)iGk+yS%SsRzE@j#?V)+~ocIMgQBu!MéS}d80))x|=zEPYPީz GoGuW4fN( JoGZZ7(Jrg182޾rOĤ?_88ƾ=gh}b(za> `> `> `> `> `> `> `> `> `> `> `> `> `> `> `> ^LٳNE}ls}WO᪑KD"EQQQQ*WJJJyy 5Q? `> t>?_咬,M|ӦMo?;w0khiiQSYY+>}ӵ[j?qFtq+V̞={ժU5\S>YhѿnǧӕwN惦鬬,\흚k.HfΝ111aaaw+VPue?{}}}};WJAhhh(,|Ds%ijj uVhh޽{333#"" EƻvJMMMIIٸqccccHHT*H%fffAAAO[u2۰aCqqs>},--'!!aȑׯwsssss[vԩS|͚5pƍsdXhܸqr… G?f+ DBn?XZZܹsĉSN:ydƖVVV\.w̘1|򉽽}Boaaw]'󑕕K/7)++UիW+/>s#F4{2y͛7/66(xʕ+g͚τ<.\(`ƌ3}t֥Rittܹs>>>O~̙.̟?_+W|Ç3K233.]jd=ٷoEeffJŚ3gNnn=U]ԩS?oUd2ٛo~uBdɒٳgY^g\ڴid2Yee33lbb,aXϟߵk׃-[\ѣ"(../?x`SS֭[V^o>Q<99yӦMnnn0bĈfؘ믿|vܹݻw5440DZZrK.۷oÆ H$RUm]]]ݻ׾*5T꾾999L/_ܧO &h\=555)))$$СCK,%?Lu&nzi`ڴieee}2U(8::.^8--mզ'O\n:thhhh^^Ɂ¬y<4662CBBƌlhڴi!ŋ#Gu<(ZvСC/_^cn/ .4552e 444he}V^}~-^wÆ +.?~|޼yj׭[k׮UVϜ9388Xvvv#G駟UhjjwރVVVoe7jԨ{*#V9Ϝ9zlL&۳gÇ]\\l<{*Xrr… |=>#d|`> `> `> hx}죏>:!qڷ['.ZHgPo0cƌ%,i" ? `> ?*>[IENDB`XQilla-2.3.4/docs/simple-api/classReferenceCounted__inherit__graph.md50000644001725400016040000000004013273140074022700 00000000000000c11ef55b9b5f1e562d38d7a40d63d6fdXQilla-2.3.4/docs/simple-api/ContentSequenceFilter_8hpp__incl.md50000644001725400016040000000004013273140074021605 00000000000000fe3baff3391e8e006c554cd41c499e68XQilla-2.3.4/docs/simple-api/ContextHelpers_8hpp__incl.png0000644001725400016040000075302213273140075020422 00000000000000PNG  IHDR`=FsbKGD IDATxwxn B!XJP]*^EXRQ*"z%fu ;Ixds$I̜.(-B/Tz^Piʕ+j^^Z""""""ԮT >aÆG}TPӧO !@Z%Td֬YjPTJ *=B/Tz JJJzwOL8ѹs7ob͛;wvpIz;522r]tyw9RNn߾ݻw]xZ VZ͘1Cnݺ7nlӦM;X,dO*J-d2}Dرc :ynjӭ[CٳG6lXϞ=׮][XPeT+33399N:֍nnn'|x>ȑ#ׯ L0aɒ% .BlٲEW_}u%K̝;رcQQQ:tx,X`_]<%0 9Vߧ\m׭[W#6mzWj׮=s>}lذaĈs1 _tҗ^ziٲeʺcP5TK$!F]?N4)((AFڻw>}xxxt]ovʔ) 40aÇ&M:v{nwıc>i}Z]Vƍ;VGƏߪU+gggIrrr\\\z_/iРA;vB+UP#@PzjӦMs}ǟ|Izzb CBBk???!Vkvqqq[&VVMOZjܹճf͚Ν;ާZjuԑ,yeyꫨCk.I5jrcP5TKoܸq֬YJw^tu !nݺ%g]a2ooy񕼃Ν;[n}.\kN}ZqF ׯ_:hXfΜi6^{m۶m6ڝi j*B1cƜ8q;}KVZe˖c !ZmΝ?۷o_|y]v-+N:-]4>>ҥK/Ҷm$I3gN~|?*\>mn?͛7ϝ;lٲh43fYYY&Iܹ3++bUP#@PWz|-ɩSٳ۷o/wʔ)ϟ8qNҥ˰avRff͚׮]B1c̟?ܸqG0a¶mRSS j_|͚5ypLLLk׮ӦM3 =\gᏸK,sNpppdd⣏>jٲe K0UF$U޴iӠAۧtÇ;fv*YfߴiSP.*]zjժSűY*ʝԩSUˑ *=B/Tz^O?[ r(B V;k, (FhfQ9;wv꜖ŒU杗ݻ]@h$IR%&&nبeFm۠r%qذիDž,A~{WOUsݵkjy$^Bzv|!$ķw-!5^1-g3f̊^Z1V-}Æ;x7=B3*qV;w{⑽zr.. w\I6ѣǍ[ߵņ 6F6GP+|yFʜ9u:gPh$IR5m|t;6\`*5~-[Yt^*{72-|k{˫>Qgo mq!!x@t^))Y&:v}j#qqiÇ5v9ɽz>}sԨNNNQQ7V4NˋڵTNjh{z x !<<\WFZ.p9s58βe?O-YԣG3IygGjjΣk4j6P)+YzkʕLmڴjsw7~M=z4aZ+3s_<;=]NQKرQaaA+W^T\U?};ue+WmѢϹsGX9[7^=?.|;vG !vz%^BoySߧϧ'N\W *^{Xزem&]N zm|g)lGƎի士UsURV5*jLDD1c]@h. Hv eIwٱtgV7'&MZӥK F:Te2MN~^Z]Ny9z.Woʱ~~jzeeǎk+Wi>)_W$bYf}]ʪH蕘9x䬵k'4nv93cc㣢ƴk@rve .._ϲswr$^B_j6Ll۶Am;v9jr9s5ʍ),pr|]Ct={LNΚ=!Bծ@;x΀ ݾ.GNN.]{{[RtiQ(Ggz 8({ݺ >>jo=kڵkzx]CU+:СKj~82ٱcW}vY@ך5kVqR8|RD–-[7KѺuݯ~h4 j8/:x0v%:EEujSԭ[믧j ,:r3,ڵtjSo0s!Co|Try̙jPT'O:.\8īNO>bzkRjWP4$]C>}3"baVuƸh.rX+|ٿs $&UXΞ5`fjZ5Օī??~ʖ-,]:Kv9^/~XX_ujS={knW UvwqR€ MU2?>y z]ؿڵk[7Z5W˩j޲Ѐ~oY,;8p FJ^i- ^v`zE\ zk޽WפIڵTYׯ'.9zdٸptu (z͝ݪUΟ?];*/×dd NNڪJUQB5k~;woyjR`2V^ȑ+~{UFE 9k_FuR*.< |@pte2=rFbhJr3gn?{Ν/VszmgTԁ>Vӑjs/ޙ1cqA Zbcc5݋B\vmԨQb4Vի7rȄPv֭C֫WãM6[nuLmh4jW++8fLTF5xcFt_~Om۶O>ҥK~~~ʺ޾}ƍQQQ[NMM-eEqטԪU+ww7>|xC ٽ{wF)7*&mo_&'g_?Asv̈={|嗥b$%%)bk֬) yG}y͚5]_cdddΝ-[&٤I>{Ek[;wpP+;v!֯_eXϟ߸qcOOχzh߾}v7듂P'11Zjnnnf922N:#GTT>~~~j՚>}`Bh4k6nܸzsBo^!gTB4cƌ3fL&yJ)&fĉ;wBL3rvrBÆ/(""""""zȑ#y晸]%Klٲ֭[;wU… 2z7nYFqIVXzjI>æMFGG߿kע[n+؝SJ1.\~ G$i5j0L$YiӦnUZ1dȐtyӗ,Y"HLLTN*99#ߘ5!O?yft-&&СC3gδx$ظq]o FSnu>77\QCZj5o\'6mrJUVzƳgfff߿_/75ڲeۙ3g\ggSN[l $Io>+0&<<޽{[liw6O)H^ff͚?$IO>￯=44ƍuppBʕ+AAAʗvgaͺ.\ Wܯ_-[4oᅲWh٭eʝ__3gtAȑ#=prÕb62TgzK̲e?ހzopwuڴirKHHȉ'N>]x9991cƱc.\(7~w=z\"_?~|B@ggK./^ m~~~:Cٝ5b$iѢEO=eDD֭[7mԱcGykGUٝu}'B^z͝;W$5k֘L&wwwG&/BȩXA W蕞nx ݻ?`4D9X,G4iZ1z3fl߾=..{W h4溸DFF !222o޻wo#FN:u?U!N4hɓ/_|ԩ7xcذa)_W_zjttt=,X`wOY#KHHy{Sԩl~GQY}'Bٳg߿Ĉ5k֧~*Gb|cBe˖>)S9r^>|x! WFӜ9˩p„_~wѢE&LHII>}?/6lߞ3gN̝;wذa2dc=yWuֽ{;֩SGpmڴ֭[n^}U׫Wcǎ}gVtҢE>,L&u1:ժUkĈ{kօ,&˯wƈ;ڵkǎ*4Ǽ1q%$$>aÆu'ѣRFP4ֻƕݻOb1?޴;/ !6mT~bcc6lXzׯ\vZ ~*JQh47n?(ecrr iW/`u֊+֯_v-oEu~w=GU k„ Eie7dzÇ5{˰۲RVJѼr{zzuPqٹO3*˖itu{{{{{{:WWu^^NNU2= o->{ܹ{ꛖm4 SjjvZZҘn0ƤLbӏMN\]69y:;2 j/ (>{^`#1$a69hNK˹z5InLN2l:z^WըՒTV6"Ɩ?`e!(qNf0 L JY/2#' ֬-:4~o6p@* 9'+#IÔ] RRss6(9))9MxVN\vT5ezd͙kG7.}o*""B4=?QBmV* w%zfs2y[EeE%'=E#IR)>}?=pU2 Ȏ'N\u< AQfe]z . IDATidr$f7,x@JzY{nѶm2,*RdrFdJxi6%'uZy٩LWCk]5 *49||DuNf4#ҲL\_ Uɔls=t:2:D CU~MK~.e[ 䜬X &9 SvYTr2LRRss6(9))9MxFN<$]ѣ;k ;EdFL>~L9Lgd$WTԁ,ĉ˼@WLXQfلgJNf0s$IU׻ZeE%Vsq)*bA03ӸhѾ1c(UO(ɌFMYBB"tb}D:ᙏO5WWr2*_V>kY(G `{dJxVLyyi42:(^e2-_||˩ J9Ybbf^Ŧ9|DYɉ (c 6o>1ztrG*eN&ae9Y||%%ewzV^=f7,x:x WLL\td)'OW%%ewzV^=f7nNVN\Sz<{Vj߾S @#dz`0aˢYgJNk9"3r2P%ڲk9GQvל,55hǏ))9Y׷pNgٳsuqX5(Qf,2Sr2#IuZE*,*ǧ+9(/%'gu~êÔINf4mL2,ɦeEHLy{@TX{jP>'3L])Ybbf^Ŧd^^nL*^}rX)zJarDݜ,))l{N&(Q?'3L])Ybbf^Ŧ9L9&'rblFG_ѧOkBn3 vsXaլYSNjWդzRdr&ohǧ+YRR\L^dTqs5k~[淙3 gn0mv߿kýL՚L&Pm~!J**G%'gLˡlr2^ꪕW >Ofw]32r^^z"u lYS=[>/VB{cYUh^ڵkF*JI)&33swsskذadd`(noE[Z^=6mlݺFvU?B/,pue c6[ uF霄իzgN~w9(//y嗋ԶmSʡ/]Wb&Mtر͛7_vm۷o1cFQ/$))UV7n<| {R΢@ٜeBj !Df_kZ@7DFFvyٲeM4裏w^YS(2^^bj:}TԘsۼ&N|d׎;BBBRRRׯ ʲX,oܸC=o>yOBvoUMAAAJXZ5777YN#G7>~~~j՚>}ǠFYvmƍW>g!D5k֔2L3f 1cd; b^^^ .TbGyի?)R6oæMFGG߿kע[n+؝SJ1$޽;$$\"[?bwR7(vg'PvGݚ駟NOO߼y"11Q[n111 9s?HETIϠ>B^EjPz@BԪUyJѴiӕ+W*7Zh4={6333//o͒$_N}5je3g׹ΧN۷l*Ib߾} rW6Nxx۷{l,lRCڵkm;)%'' !RRRsݚ⧟~$)//zh7mۡ " ! 'ǟ>}rҥ-[*74o޼\\\bbbz\Rn4LBW6lPnoܸq߾}yyywz :88Xwʕ Fh˗/۝5b6l h׮ݛokKE]vgx;9ҦMlG=?y'eFBxxRFt[@9~v:m4%$$ĉ O.Θ1رc .=zW\?>{l!D``K/6y ???y%$I))); kH4tГ'O_j4ݻL.Bkܹ$)wYd2;r=M^%S*X,G4iZ1z3fl߾=..{W h4溸DFF !222o޻wo#FN:u?U!N4hɓ/_|ԩ7xcذa)_W_zjttt=,X`wOY1rAܹҥK>}!Cl;)J b1bg͚駟ʑ#.XlYZZZ! !L{ȑ^{m49 g W3>-ZJuܷ֠~~=кuDgzIzk^p!C|}}|Ie0}`oo!C(']%''1FAAA/bNN$I#kԱcG1==}ԨQ5j?~|VVY(OZ#Il9sfի/C d34;I\2``OO϶mرCcnUAD-[Vn]??I&m,ę^^q|Uns`ʍ nӦM dbcc6lX~P1^V7ʈ Pzk„ Ei@ABCCٳ XxqQPB/Tz^Pz#@U2V+h4eԟKs6+2꼴\[Lw+JqhsrΗr9;{yz>l0W$Tck&)d{bɱG܃ ѓO>y漼<+I")svv\\v||dh4.5kUkڴ}yyŕaڿ5M>u۷,erO>`ǎ%~Ņ^Ҫ_)*ĭ[[^ wvք4o^Ynnj-%!!kݸ+׮]vmڵ=j׮榭Y rWěbbϟ;>ٹB@ݻ7nԨfXX`&!Yu1$$d|+///wz|v!\\}ů<ٺuW)SDjj޽ė_߰Ru{lٳg@(OKt;v\Bz5ovpV[nD:l"3gneeW#"TڵkIKfA//SaGFr%q̘;wS~GDh/9fvI~ԯ_~"0;0лS0;w2F6 ԫ]l >|iL&_1*_X8yriz_=˳<GdNumznU199'Oވq_r!r֡Ch*%œn}sn;w۩B@FڷoĈrU3:|G嗘6m\9k&[SUm63gԩ4۷*58;;u֩S`:p 櫯7#~OPim۠mc>"I҅ q["44m[}S^"0&SޥK 11q11q򎅱驯_?,,Kaa5[veb~̼y{֦MMݱcE7hP3gnMn[U^MizzݧĴi|sKnٲs*iF2"%%+G^9z!C?\ ,:uj,_>*"b{ڴjcmm6x^wꫣ- Cι]51tٵ+z\ڵk5z&jW 9^sn?wsbcM<֩A}nԨfxxP:5q\Œu`ҟ-ˠA&MvQնm9sNA}[]N_w6nCQ:6o^[ש]lŒW87qvQefРgܚ:u}ݺ5Z?{ն|H_4]RDE ("bWKJS 5Xn_ Jwew?&/lPߕ+a=ː̳ M|BHȄ+ݽt̳zƌ! չUee;Iw$ݿTrv62eG@/S]ݐ\G޽+d[:r`2,,4ee%NdlvѣKKcǼzAcmuYWW |%:]`hѣMJϮ]mlh(cc}=q77K779$_`ǎ[NNfNN=#t=SRRRRrJJۑRk8:ru8nΝ^αԎ\S0<ψy:~͟$>>u^6,d###=b"TxMM7n9{Ytt !6y OO##es@A )=0>>7>>YH-bX;KN.ڷnTK fͲtf]]ĉ "Gaa|C}}{kOȘYYeڳg:; ?>E/&fw [F,LK+RR i}K==%Ksu$(Kd]pSZ',l.Wfn {xo IJ:Tg7ވ Oh`Du(D @2)WJJqrrQjj1WTb2g~w,:w11ݻs'Xeǎi'Phh><}7E-u{8poΜaחNIIs1'N<>ua3gqt?@@*SRȎ\^e(b;;XffT'mGR,-rp0FSY[lVGGՂ8]GBBgͲ {0<^KAA-uN҉YYCfͲ:t$/6„FPDòj*"T'oMڹ9ڑ cRJL?)kaIu.%%%=",Cyytc; ;LJ=ؽ),34T:t^!pdGܦfqq]]&SłR35蕏&Z7Ҋ퍯]37נ:TnKvvבTjRRc.y;n=3muoCNSSvj+]j{O?^nxh|>EL oԜ 95WÕ7`bXZZr㮷pQQ/w]d0T:T7uuM'Z*&&5~ﰰRӧGR~xNçO@O|\3_ꃾ\qqlv N{>}պ֖:T99NNuԲ˷mqbJpQ N钓~x‹~`P/vjr9)ŗ!!Z~jk8Zk%)PUg{ީkYdTL3Qٳ wK:8vqw l~VˆkN42R:Q?~?GD74OYx Bz ͡ly6m\_p8\TGx<k__ICukT=?wLWW.>t~/&O⬨(EuNf7GF>ߵVii"ա`cb'?ai\SSsBB~||N\\n\\nZZ c0X,u++ X,uMMYc5JKkzpH))QCJL?)kaIu yիq6]4eFKHP Μ9**=wF 7cfm;/yomHVV".g|_z=\un\\NrrÕ35#*W_S0<ψ󇋊 SǠ˛?H||~{Yre_W{'1`(C(tg(z\XXA{Δl11䈅 lqqccXKN.ڷnTK fͲP+_guuM'Z*&RUVqGFF*6Mg99NNuhg5k.>x>#T'")6\NJ*pr2]r<Չ[adQR3YR 4{WyfLLf\\NII-A˖fT$LI11۶|(R1/ct unu?jAungha￷mۍgc6n W.r޾Hm$57 _~*'..'%)(Hiki__}ʹb{{ǘkP>(\Gs_ST w]XhTFnJ iiӬNGz;wf ^ƍMGkLAu"h55WLLYlqqccr^.K@Sq8ܨv.sr2 drE]]ĉh**{x| dd6Zc#{ǎ[~ [_Guu޽hh lFu"כ:2! x<D|Լի첲:AAK-8JDNǃi6M_64O~zZpomm  u?Hrr1Y"wfVDECB&LdbE||F9 Ob!!O޲E'N|O.*T[$Eh4qpod~<5…#--T:&$YYe..{JKk44dZg{ީkYd2@y}r[i1(z}Dҥe_yͯzX[Phk<8ٳ/:8IF::t)(H=~fEu\^ZZ Y⊏}:JI35pv6e-,4ee% =Y񪪪#?~wRRATT=yxX:((HR˯|}Ox|.׺_o*+Q…#L){N}:׮-x W] 0m@_ B(z} 55kԌB55\SB%%qq9dٳF11aUK}!,:H"|R=UU < }4}͡CAZD;+\zΜ]gQS9qʕ׫Vs'q!CtEh4Ƀ8p/87ojnAu.^[^tIb{HHPpw>ɓ;w;M˗9/_ffW 5 ҴW\БZU;lǓ\xԌ6}{JMQp8ݻos\4D֭@*$%%+VD޾8c۷V͚xBiEDs3tϞBBtA7!$D tts p[ᅢb}}E Cv ǎy]zŊswf"H%*6\5*4$y P.U_ߔy'ieeu:: VVҿUry%xCSS6<<_TTzr/!!zd ),,4Ϻ[什ǾSWhnnGl|̹sϷmА:@ot..VBNyfBBWTbjeciݯ1o,uq122f,.&#G?MpkmOOL# ,srbmxŗt˫0e(C 4mΜÆ/^|b̘mk׺̜9P]B̀C駨;wzS @ :@s3/))ŋج윜r+oar Q<*^4MHHϧ57s|>OWP-eeƾ}\]j.w3µk~v{ժs&աhٲ];tV(zu#iii|>vYn]HH'v䱎=Jܰaڵk7o޼j*ٳo+ss󖗚vvv۷o2}զ~֭[+Vg͊z<3..-%o -77K M >ŹsΝ;Gu h+fJt:_fHWD+,L緐´]CMMmǎTҚ>}eeINq#bb]:R^Wc t.=5z}fYZjSK\w[uV"||;aa̙z!"ҥXJKK{tы4|8֭OO7(h?9._vv˗!{=S |=99-[|Vn:w(-+//t=͛o޺uk)))L& QQQQQQ PRRj<٢:rȑ#Gܹs_~[?߽{,q1̱c0ѣ ,TO}}Sbb>Yj=;̀C/NungȐ!THSt#jjj _ aooyQRR$>=嗫/^d3CJJP]j@7o>L޾ݣovvR]|YUU 3g0zw^###II!CܿFmW)++xEEE[!ZU8NPPBPP!F9rH^^~˖-'O֖^f Օ+WX,V~tttN<ȗgϞ1baDDė-4mѢE׮]#, wxǧL[jܹrrrjjj߿'w)##oݺ\3<<|ڵ;up/=;ʕk\tta`} "Ν;333_xq{]lsNLL̖-[^믿nܸZz?89!9}ה)SE~zzzl߾zzzg~ˋ믿n޼JGEE=yd֭+W***233`s33w޵>zzFvLL.<>ps~!LKK;=cb־z9 YY a,hx7n*9})q(`kwNԩoN`xî{3fVVVAo[nuuu%BYYyӦMsig"""qqqꢢATWW_v-,, =z}%%%uuР͛7$))9{ ZJRRr޼y .xuuu7o;ٻbbbrssLBɓ7mڔ0`yZ 8p \={6..NGG yŊ֭#g0sks\.;/2_ȊJLon))I[Zj/]`ab]S|vbEӧ['Du.տc^q'O$Mu(E`0|||֯_m%##u#SRRZ:q8v6RVVny)-$III >X&BFFvZnEppq>8ٳg[׍"""蕚A#?3H鷩VOO///\VQQi} CIIA>:@J?όɈ)QҞ?8n`t&:] Xuii%SQaPKh llt-:ΝGP g]!77w޽dj\\\ =((˗'oܸrrr|>WVVC~X<ܹs^^^r#""vQ#"">W8pɩ ֫56OMt:=#㟑UUUe3f- m9Ӗ @~(uǎ8jTƍWORRʭ[,Q>mMNNμy@4_s5{lrn`ZZZ/^|R+ظq{;^̦: Py3x޼?vEO],:Ǜ?3gܹs ϟtҥ7nZ455laaFrK.~]]0yxGG}}20F3f̅ jjjlXcEGG̘1CM>=55ﹴ(??A0 N8QSSo}p$!!!Kfff&$$^zƌgڵ%%%7nHMMx񢵵ŋ?.tgo'nt7#L466.**ڶmرc) h}U|&|)qq?eKO{W$ az3(y{?~DZc > @oҥW""">xNjjj^G]_儅=9fb\Wwĉ7nrVBUU=.77777׹t钊JEE?}~]]ݳgͽ{hYx_rLTTTIIidcii;|hkk8qs8kת͚5\ }2_~ldف 򁁁l6\?044ۼy'V^j>}zРAree9sdeeUUU}hxvRᆆ222|>_VV EEEr+%%Ǐ\[[oskoErTTɔ}}r ;t3Bۯڼ0W\\|/=Ǟԩ'>>Bªw0n|Cu Eot[D}jj>L޶/wZZMM̞wgfyE/>?{9s)**>{_WW'""uuuI||7o<AL0… A)S[XXZ\ӳ^SSsArOUz9 g̘aoo?`~ډIM:2,, $,R~S"3&%%ӧzzz?S_:k }}=K0`PwFEo۶x<q# ^Нow. 1bȑ[""#c>Tg*++X,VKYرc-+?~WSS۷o.b`955l6NOHH O==63S~h'^;'EZlϊ Zzk}S"Ǔ+DDDfgk }}Kdi>5TvK]>9>]LArnǹC/Nu@ go&[222ZV`XAXX8%%ۻezݺ:###Cwڵn: qegg+쐜W@@%++KYY%9)/AA }9ڔKDqq1% #2>j'^;'E~5[(**&%%LTLϗ,Y11OC>ފhoԿ5Bg6WϞ}xҤ}4NDoFF 1Qgތ֊ٳKKK?s۴4ms4---[v +q' 8p͐!''Mh855 \P5rss@ŵ݃^|~ƍ-+xsUTTxyy9;;WTTdee+~zӦM-;\KʧO~>c|>NNNA(** G骪dnnn&"??>yR&N}յp#&&)w و do@ ESq1lҥe&VXXEunE^DžyyyGC cʕ/kn>p5*tÆUU }KL>)"z7|__3gܹsʕ+A̟??((ҥKEEE7nXjU;ijjb֭#ҥK... 4m̘1.\aBBBbbbf IHHHHH9ɓSd*RiiiQQQ~~\]]333 XtifffBBիg̘ffAĉ'jjj~O#6mYf=~8>>~Yj}>|puuulٲϟ3gl:PUW m>zb×.:5 ][Nќv}[@unXKu ֮]5Gos2&A5M}}ӳg{qw߯tϱqq9\.& >gN={l>Eee劊 6?kkkKHH 2Dsz;v_]]}222Ǐo}]]]aaaCCK.HKK{zzSzrMMͼyddddee}||m˟LT]]}ƌ'R5k_cce޸q#սtjv}Iq8aÆIHHʚ:u˗[~)+((tL^ԔmlllKmh^ꐫv9Zx6\VQTgLUUIi:YIw=AӃ "lv``|`` &?߹sG]]ѣ䩹`\z͛nݪ/!!akkfk߾} _~}BTTɔ}}v}n~ @wP[L[C#@YyZc'O>~Chkd6/fM7,zu+(zuuPsLS3WTgI[;wfffx񢪪jܹk׮"bǏ߿?+oNn޼)&&6v67WPPضmncc+oo63_^})S|||_zb̙3f'G(-}:'&&3::%!!kjΜ9sȐ!zjj2ToU]PYIS_UPUPYY_YPUՐ,c`PIu@>ee%"Wv:raɒwwKP EѣWRRRWW "^LKK#WsvvzⅥ3g̙#(( [nuuu%BYYys&M"g۶m'bӦM!!!dF)4g223K P2Do8򺊊:UUO)EVx'$Dc0ed 1AA}… ?כ6ZLLNru\>AC l`!u/P[RSSuuu嬬,eeIKK 7sqq9+W^zol33f Z7-yyy4t+dwSrrUǏgYYi[[HIRGuuCQQMuuCuucqqMqquUUcuuCqqMqqMuuCiimj !&--&--$)`/ 1iiQii1CT^^J@ֲIZ(((LhF?$oֽXʉN@ 8>'''򥜜***"ۅ>sٲefff j)D}ɓLMMیA>nLMM8p A)))dU(WIiVZXhYYXh365jkההב֖WTԕUW7,$D_ yyI99 %[[=yyIYY YY%deť(<"{4 ?3MMYl@ܐr\.7--ʕ+&Om۶jKKe˖1cTVV[.$$-Z$--mmmkגk>|ͭ'Y-[vСq̙4P&&&#::%&&3%5qR_6URRSTTUUTTUSeMA%%i)CTTTo魥 `I zԽ GV:O^F]].66qe˖ L2%44͝ >}zԩ-o.""f Y,ӧmll9rdE3f888{zz~!o+)},B&6EEե5%%5BYYmAAuyymYY]bbŠJJRLҰarrҲrrcD3y3 TǡF`#A{@߄WoG9rHKK9>?ls ?z?/A6: ]{NqqMNNyQQuII s+;㢴7VOIIJAAb{_lʔ|>|i%K:5\^pyqqɓQ}Y芉|<͛<:FBB&JJ:`SVVW\\]PPUPPU\\_YXX]\\_&VUQTVQ;#EE)`{077ܹsT˧ͮjlloikӧFnjjjڜ:B5u຺ VTǡʕ9yyÙT"(zŤ.\9 ]Ç3Ƣ*** +k fr))Q CCCE,-%%JmΣv9wwwt."#&f, VVv/,s8,)9)J #nnjn.pJ8bA0 IDAT55-su"""yyyx=sTX)''aooLujL(+:矾R+Z7wE0P(лA*+?N{(ѣ!!СC%**Lunl rrJJ 4YRRb2z/^dFF>|UC{HC77 L;MM_m8s桂[{z~(11?))?1ۂ&:]@[[Xe5ccn2(Q7/FD,Ԧ:58a^L]?q:zz@o~4?INIJ*h,C,-Qi!;<;<'e&rii1MMYMM3&!ԔQ@W>…g<(e2|}ܬ$;p99Ç \GdܡtDTT\\:>>/>>7%|>_JJ@R70Pb2MM5DDzu[uuܹDE+RBBy'8p2YY t.|lަaʳglvL__;; *rsy+?!$DWVfɨɌm6LUUFMMFUUFHNu|XSS[ ϿwפּD?gg;YYtAyUmT[[~ΦxG=ڄ|Y]ݐXTqc6YHnh…[y:ᦥ$%'%z-..bjnniainЃ ?o춨(C t G_?=))VVJY3R@t]}vvyVVYvvYVVyvvYVVYAA'BVVBKKVSSkթ((x1ԩYYeLҲe=<亴CUNNAm"BBBd ˖i=p|;!!)A\./-$>>7>>/&&С9bXVV}7-tO ɓ سgqx옗o:@gA zgңS_)&& <?11cb2fCCa ӷ5! RRsrʓK\AR䰄LC'}ƛ_W|JG#G;, E,/rɒ y?:sݤY"#<۷ܳ_)wf7߼$::EOOj!T{*-%;uݾT\\-++ak7|8TTzvo[PPRRD޽+}O,h`R-gls3oS:ZX5˖/ϝ<8$͛]s_ػ(o Ct* (**څb-"(%L<>~3sp_0+2ss300\XXUYMUw G.{{?hgAMrr뵣GXav5i|Y}CQQ+WV(*I=/R<O\m<6((̂&JJ4;~d``8;&9<%QOo6}no+-TQTQ}KUUs}}'Dbdd&++$''"++Jgg??K΂?7ij@; @1PGDܼdɬ'ԠСdJp{̥?=ۛ7% t)ؿTV[\M0^JJkjT`ɛ߽ڋ ,?!!Z.+Ϟ兆feg׈,^@xmlN;d={BC ew̬y3~~Ngg+$%:~ԽZILlt/WWԖ7~N"] է+(O1cݩ&"VyHU]d}1+oTVӄ-*4588]sVڋ hhH++hkKOx}ʮmj겲:=wShg(^Jtt__5cX/_j[[˗۩}Rʕ7cbvpsvflSSwXXV``jcc9wS2L##rqH$133)(b"_>0V卡١=> hO͔**:2ZZzLMyzaO`s'rs?DGGGֶspHaq8,vV;; vDEY8.$A ϟ>w.z"4${<ݺۏ{ϤF/ZYV>{օ9_zFrjjeӦ GF \ee7oK\rr°PЭЬj11Et\] 5~?KK> OxKFftqEUUKRһIJʾ!iiAeeCC9h! '44kSuwIIAQ&>/_?rdx:XXן?)^*y*_U{2T MMh&构w))}""ZʠBFFNDTxc'ڞ \C`~2G12BήIH(+)-jf`clmLwڴ^rrY|.nNzz-,Nʟ?OI!z5Ԯ]{H$]JKk9{U@@BJ^FG$}}CܾVRҠ!rllhOͭ/MHxWTTh` knhn(JoS撒^AOWVPV'deaX²ߴH;9.\I*Y.ǵWYY)Q<QQuW]Ǘ a8 +Co}Ct7=2&8& 1]ֽo沲Ƃڢa&&3ɽ %n0uvGF߽^XX'!`Ԙm<=wg`IICbn&409Ԋ⸸O:EDxUQ70 Jݯ?x\,YNnnMBɴrEjppdΐ'Or||l[*9ydgW/\xرF4h Lml첶V4-b"BWaa LrK]]t\*(l"Ilb XtuuI &a|RRYXXvTT!$~:u^mWUH 8iR*ޘ?ƍ䘘3g1>ƍ䔔r+/ցwJތm꒒05M]\܃ $^.,VdTCncᛎ.Z3gf[z壦6}܃]TvEPd#*0&8#é۫N_sSz`x\.99aE''3mOY}lY@w@dVxy-tqlF''?>P}IWW6ukꋊ޽44gffbEUU%TT$UU%xxQ 55uGDg /X')9 \4Rt#dppYҗ.Q0QzUeAjj FFrk͞;Γsn޽?; @ Ξ}38xYqIC##9<H$YX(Λig&f:p(&&#;z7nx̞=ξ5a'^ohg9ċH$ߺ" Ǎɇ= ߬-vQ!DEe@C׏6up*X(*>ʕY(##'+.)//gُtu/Y2Acʾ<}(7k ;DDD9ؒw 339s995uUT4pgavlx>(zM ==AeO/]dE yK^^"~%&fzEC&'']y57Ɩ͜)deded` L0_Vrs?211̜)>]]]R]} &=~MUU07ڹPeޠu?Tuu婃ZeڠEgg˗o+ؘq8 ,-`j:tihhvz^n3Aֶ?&UnjM'ןy2 N-Xu<@ț jYX嬬--i{ݻr+36ADDxfʐk]!|ttQXXvBB)''ƒ%f^,^|I^^ 'vHĽ{SSpQd@@mhm퍌mff??NN=^WWULv획vԐ+ii{d ƠEbcK**ݸ!$Dٽ;49y}/^]{mOe<@oU/_44t pYZ*p*u>~yyzh?̙΂~fuKPk);9~^}Ipz yvzKccKJ{{XQNSՕ`~ @,+kʪ~C~~mee3@Ԝ!!9Y)<~뚚V,ViM&q]|mJQ-#"jiQ*z ѧ#䤻pahojz\i6g_]///Y1"HgϾ:{6zv[{w=3f6/AkSjjw5Y~<@cee995,,L28ܹ4XޗSC//oUSSJSSRSs q)P⠠ ^^v ww#5hk ff]]JI",<+&wܹW33}yxNGGǿ7o64w>IOK  wuLiiAP ahh77ҥ""h0Q?+:'&;&?oMKKJGGJ[[JGGܠm ]\~,5{:ӤZEc=.({l35s'}߾G^PR%hkQ}޽OEt֬1URG;o쑑B; ::<9N0@ы^DFo|R%7vv*+4>e]wg϶hhH*H$Rjjōɱ%҂&`b-*/АTllTTU)e|:כ7U\\ZZRzz2zz3uueQ]`rx9<<7$$]]]rɒY@m"V) `5'I繸BB6Pc|@ngѣ&##իMT'Yfˡ͛턥&(zх˗{v#(5FM$[[{O҆԰lNNV5kLץ #H$ikK9:jRaWWffuFFUEEuxl젬ٳO995]vmܹTMw"3͔/  =qݺv`xf~aan#oj<PPF"zvzҡC W6꽖/BB6R.SKu\vkm ~sFJ{{Z6X¼ L?EGGD԰0b4Tyx)xׯ߿~]Q' QP54ן?SD\ D")-"44"hkd,KK%hcH ׮5-6o^-У>GC[PPƽ{i[ jhwp׮hgAܹ礤B&{whHHٳ˜uz҆{Q.'&w|66*&&hǡ.AA.//5k=ʾ~=)vKssXkUYYcdd^LLIAA-2_[Zz^~YU]XXӓٲt0zM!!Y=`|-nn6sMZ##^qq>w1;z#05II u+.$$So񼽭MMhGcʴb͛^^VhAݡ t=@A 5xoWYY)Qv۷?;![0_;3:>~YhD"%&$+)_o`633#ڹP@ɩst~ ENBRԙV-LL ]<<0MhuuGD䇆feeU-Zj --v6#4x]22BT4GA"SS+%7n;W(tuavt kkiƍVhg~^Z&0/ݻkuue}-_ˆ>kSFFr/O%%  Opw74*?dGRRcb_*jibEq8NYWW"KRZ[{+**Z e dg͒ ^UȀéOdԛ7U ^=Hnx))5TI9GQ\\j'fnnIc۶qq{U&&F; jk?VVEG,…45Ly˯ڪΟvRVpu^Ǡד^M\Tz ~⨨aU+V͟-'' ~HN.OI)/*`0**JwϱPkCYYcXXvHHf[[ѣ.Ԇ154t211 qSFLL -pv_JH\cFc.Ĭ\ifk2A::f}QKkYбhN``jQQYw7Ӭ/ʽ{L/ss+v5Kz {DDx||7W$ܹfoa} 3>4&81DҒڵknYή̬̬~AJJeef Oggddݻ酅uznnRRh皺>}M79=NL-HI >p&ד_Ov-i -$:#,~^Ɣ-zHϜ)Q69hoHS..W@!eeUSB񼬬i|_ ;a>'x``H$>v4޺zfEFKmQwj] efVXQ33)H jCC<76_d쌧s##+4h|k7k ;s8=s}}Cn^ ^^V欬pe==jjO;;9额o~;\L}l<I ^0QWff533+WV~m}|i|_jعssѝ " ȫWEP_7w͟y3NNNh0Qv_Ww@rryB»Ʈi8Nr67NJ)2PLccWddoJKE<4Kt}31vvg/7رc ڹQQ^ee񤤲)[27* EE/{u++˗Qey::h5kԉHz3*蜅bN·Kb׬ TTݲӯ)?:8,,;5kVqJN.-+nn糶V޴JLe#11AAWTSv.@<(XH޽?yl UU-lPRP43S :yEx]f\iVxj23ŕ5""rriiP@Ea䊗ҥKhV+Vd+UU%v>`HpxMZ蟎T`˗㼼e?z`h zUInb;ffF{{۷=Z-9<&8) 'Nww7TԦO_ "]I0B1 `1|EDxQ `Z8{lggSnNY@EW@YToa[\\܍ŊAUUш3gz{Rvv5;;E:O.x<،H3YXRS+t΂Y?!t)ʕ7MM.\B$>H3w}Ho>:f(Nr޴ڵG#֯ts3I1,,;44G]]r׮9kiV?.$&$1]w0;OOO@===QQ..z**hmbE;UcǏCзu11{>25=cULUhhHfgLᢗHQQ=|Aы2jjZ-*~Jzxq_j` 9ߌIH?yϝ`0A ~M^a+ ǎE^rulhG hzǹ-"Fϒuu^zU{ ch(c6Dssg+m@?}:TFF H$Rqq>4tS16?>gnԦ+0ux!(zQ@ccK8`'=4#6٠ꘘ||-,֭ҍʖ/7@;#.w-[po^av9;`<""#"򲲪EEypttOYYcllqttqvv ;; `w cff,(O,|}.j|ؘH%:: ݃S!QU(*G;Wh&>&&;wɫɼڎ>KKEЈT\zUD K5>\>>V\tZҍ)kךyzO{իRV[[ookKKQn !SEAuu"40w46vXq]JJU?z PDg\iЋnAPUXX?/:`LED̙ffp5HbEDF{SE200rO7 1گ_W((/^ٳyxd?+:)NWWWZZ p3wF7R]K~=y:sOO3hx[ ;;h.NM)*lm핒QqttՕ` +/Omm53HJK zH$ڪ޺fj0)55^hؿ8߁B>bNN5JGGMCC{8:j<ǁvIEX[D~SGF8 ֬ n DWHefVӋ//^L<4v ?*//XܾzR++Wld H$W>zeA_ܱ߰cgVW^(HN.㉺2^^vvpXi=H"0̓'f/UT4df67K` @A@͞fbb^^A|xg?I~BPՕKڵ+NgjRQQ/)i@;jTT$UU-?_r Ɖ@ z{քy H$RvvͶm?G] ggb^҄\s'm c(}PS9AA>a6,Y;FX--=QQϟW000+8éAPD?v痜x<޽ 'YYYYbb|NNzPl_jlbdDyܹ҂˗_+gTRR?s"@4ȑ5kut<~| eeSFNNE/t^A"v )~`q掎>]]ŋqeYcv!|ttQPPFjjֲeʣ:ӧθҘ℄RFF33??;;5 joz?""%Veeg4vch( MDQ;K**>˗_h{133A L <>;;Uookssrs?\yk'~ՑBll13 탁 [JJ/hĜC0<|8qg>|/(--bŊ17ovܩͭ{1<?Ǎ>#c&ׯ'}QVxhA~~.yy:WCCիs=t|XXWA \q8x@D"ĉ6Y ALQS \\D"8Ǐ G;D%--TSӆv Ԉ66v}u~':5Z+V\ןyY~(3 Ag|||wU ,|mUU^k+UƓED"=|pƌ' FFF@$==]FF@ ?څ|||0zzzDDDN<9s̢"__ߘXFF&v9}|W6ߔדS=<``l#"I+*0YTt_[Vfku-IRR/hI$""1ojjJ- ỻDDU)C^}[XX~brrr:||gnt;shvՃ66v5""<~~~NEQps&,s*&&U A ~kjCCCĶ6j"ߋqaaaiiitt4+//b#ۋ 藗 ?#!!aaaaaaqܹ{}סC%.,kggI[azJB@@;6ٸ?2"AAQQllvvLL5?:822?!{ {{5u۶m!A&Ǐ^&& 33 V~00033011 38;;^&.D^CCC$IEe 6UT++= Fڡ!L5&&ظ۶=pr߿ޚ5plDDxss?5 MMP@W`>wzzCBqqufQg6lPTT}uuuǎzH__߲2^^-[7WrrrWVV500@DTTAΝ;$iʕǎcff`07o<}tkk7o|aA"""[^^...y/r(**i`0ׯ#͉`>8000{ .}6#3YPPݻwɹsΠ yyX[}Ӧq~cW$l݊sqчhW>|qN[[ٳ.s樳/ ={R̄)RbccYl0E89~&nADEPHHSPss3$7m[k|̙?I$"4wz!ܭ(vw8tYFF͛EDx3)5ylllmԴm۶ NN7n>|رc徾+V ===/֮8s̞={bEDD8::~ׯ_#Bx!rܹ츸?yĉ={DFF>}ȑ#mmm}}}NNN^^^555[zu__W"6\l /3#//<G?P^^~oGwgQSS555߽{GZZZ(B@w^VEtbdt4(('@?yK^:Y^Zސ !&x{vebbs?rux$ԍ``Yn޼ h'0DDxV<<쌌 p&E_μq#ܹeZZ>(kjjZTT$(8?gkka===A.\pԩ ͙3/_pALLLRRA.A?>wܟ\x%III55'OFEE?sNnnnr?@cxxH$yxxtttww}yŋ#hѢ⢢yI [}{O=c?@ |?˧K?944$//Oҷ#3h^^͗!8o^.vFLCC袠riiM.%yԴbV;9Θɤzz~NZZٳ-۷?\F;eGgs.ၢ;~c||2*%%rr”][[{%g$$$??# 8;;ܹ377ߟɨ({_<$D"utt^D"144}͚5_ދ@ ={۾}{ppzH+W|:mNqqW~gK A'O~6?N9RWayhPWEEѣ87eWSS׍_8ykkW|wC ^aamj89YV=ĉ6£qs#5u><<݃h(z}Ț5 \01S!H\zM|lppG622>};WNNvܳgɌ3~}g]q<<<999fڹsebbbXY'UEEWWFDl622ޣ @55=>kWȌaa^n`) ]D")3j׮-w;,7e ?Ƿ{^`VUU}ٖ"WD@[[ϻ?@3Ϟm?B]]q++3 Sy?33#O|ٳo74C1= L}|떧2YFWMff y|HHҥK*++@c#;ԩؿrАD7`DRZZEPPƋKZDLGn jhёvv֝?_ LEI)_/慓Chh(;;WR0Ϸ`0GhhhqqX;c0 99ߍ)О77Cooj$\RRbaaAJؒɫPd (P~ul-39 *(wKK::Z/**{ A^_p`mv HQQ= L$fɄl9s˗ tvge߻ЬK0sl[ݍ&gϞIHHttt ,G$/]mhh@ZZZbbb'N  QܹSDDDXXxΝ###`0WIIIHHĉwޕ%_6s̻w~u/mۦnݺog;;;WZ%((8};v ӧOcXnnncc7o$W?ֈO>UPP޼yw?9W`B^ ,|hh̘1CHHhŊ7?͘1#55Qyd…ޡ033"2:N/t 3\a6[Mqq(/ EssޝCƞlY =K(([,I%E# ,I,)RHLR'-:3?[N+Y1=yt}}_lYwDjHK+~DolESRrgGj]xt7?%y2v(qNNwxxw^^bbpppBBZEE/cnnnoo_PPp-{{{ggg>>|##/ϼDSSѵ=" JGׯ_///?wUUUUff eLLɕ+Wؾ==}JJbjjlT^^gkkyСwƍߏWVTT}{)n#}}C㮋;lllv`XYY^<<<999/_`0...m; LMM]`*?9%;1)*j"Rkx72C¥K^DZ,-cC˶nMMI{6L^@,--IՓ+<207֭+88XЎkjJI~gXA+%900\PP~ZN EVVOq`&77IG޽{4vTSSqޱ>ޑӧuuuc"=@L>͛ ZpߪU^[lpႋ˱cHGxܹsI7o^cc#x_B=%$$HsP^APbee511Ζϯ >444BR㾃Hit @0̞=FBB܁CvF;`qmt@c,յbb` &&}ҶrY =s枺zHl썡!]/tUU5lݚxqpf惵k9b7nٳF? |}8]> 7> ǎ[b鈰pee ߿Վ;}444"=L@Abco硝`|PBikݼ26hw dܻwӧON^p!iS޵kdSC=66jEK?56>UShyyy`@ Ӌs絧Ǐ?^[[>f*D <==333_ ӎ;.]TXX{_dhhhxxi``UUOOϥKLLL=ϯJ__?661ʕ+srrYYYs/qqCEFFhmmuϟٳ700;񒒒r۶mo޼y𡿿wƌvdʕAAANNNc}[. -[N&m}0qLL=jm{<Hɢ>lMBhmED\z^|||3gDDXXX[[[[[;::z?|"//&? "ܬب"[;v24Tз*3g>}jmbYUՐVvc&##CYY4;<|ރ&Pkktz~X A-[}֠?hz͛((ڼy9YH]])ȩS;6k,yyBe˖hdd#A233ׯ_0"""LMMW^6}}}}988֬Y HGGC$$$/^Jj`ˋddl\*mhR620JHp()igUū[Xlu|SS,snnn?sЂ^(z@1KNƅ䣝?7g]~ؗuusPss%=_>$;;[VV6??ߞ><<4vDAAa }/"!!1v=&|/&("fmsj *OHԥ#[Pp8cva֬Yx℣̿n3o<"v ϟ3-hm핒yfB. qqh'nGEوO54/[&(H700 ͛Ct'l۶MIIIYYy*++I'TWW|{Ԍ?A0Xk|Ϟ}Y]CWK23cԝ5:gxxyRRÇ{{\n '4Tmm3fk̔4}:"hѫ{㌾ Y&@KK')&RKK ;;; i`ffwС.WWWm۶{+Wvtt;vZxӧOIg&%%YZZuk۶m9& S#G߾]f1o0^jqR??Wֶdd<ȸ;/ D%-ˁv /۴iYssYNthk|DA&@_U͈\d Y455?~)((ddd!qFmmVXgccGZcc3 ĉ۾FFJ?~&ٳ'n_xl{01x뤤_p:9i8:j*R_0^ 2iksq9)+ K5XsٳSmmPHNNNNN;_mqǏ~|͛78;;;;;p܃` ̘`hc8<ہ**hMbcKEm̔li9s^ZZ˗˜>l 8 ABa0vvۄ4^;vd*(eb!UO̙w!!yk54T3%ƍQQE **⩩.r_SUp$ҥ vvf[[u̚5 f&0<<xYa:" Az_3m_2IUK*H]K\\h'-WhhAw`HA& uzQNNN779P`윜-EE@K뀃WNN ͝|qq%FFJkZ^TKJ*j߳Nm4&@nI!"D 3f NxѫK~12ӳg|]½{ɳvZUUUSL6NNN~~-AVHN`9sfaƍ) 2m?KMcG=f0xOHHEzzutdϞ}Yxmt_meMO{Zu墢<_=x\yb⭏;.HMuYB QQQ\tdA cee17_U}ٔ;AA&sNOe}̙\c_%wNJ*~b66f@5p5%%/?~dcc^Pc9+)//2S+::N?|.&Ren իNNɫVE%$А;c,F XZaii f4V^>t=z{%mdgL~lLui͚reoPጌ7zzmlԶlY. rW_Pf惓'Kڵ]?{QEEf5SŋNNɣ**Κ;oδMصkЦ~n_]VWWpsKv2Rϙ9U od05,Pyyl&(袦f;99 500|ԝQGG 77/}O,=slddZYs>@&#Dg^swxߋeddgڌ>mO)##„ff>صkڹ'QQE?vZ[jyؒ_۫C 'TWjJKk ]薐;;7m:]V6*j*I/z{Æd}/Y20tvBThBݻ :GYY8~_+ػ et}Xd(uwOvQII}wZ.^O8sĉuu::2Z%ll>>*aaOڹxrWۭUoכ9kK7n8rzիT_߆p5oXxnpYt2}yÆC F;".WPm[ڵAA&Κh'ԣ^P%www_{z\T^jjꊏ}ޗ3fhkK=j75-iiIeg?De͢/9:.upXr뤤R+8YY!GG KK)8$$wq iks/I`__Obb/ >Y_ߪ#MYY հPBݻf`SVb%EjǑ-[ҤϧYvv椤 qq%AA_jBeE@aU9|VG'"(Ch1.rPQɺ|K[nXIxk}}aXI,VCjݽ{/$#>'4wwrs q]yy-WY#==FVVd\r+#}whVjhWr/{opR_?2)i…S }D"ӛomt?_yK瑎յŕde p٩MƄnTVu58\ FNNSWNֶlؐ5EYHs_nfvkPA`yC_]q@s@ _12R$ H$FEEF9;k߿M5TUؘKK_[ ?chhhX^.6-:+VR} ۚ(44_CoOO&>+<"(GE$/ ~ ffԳ}#'TWjk򨨈 2625U>xЊDKHܾ=DG>> Rtz@V56^pa šqK*^n>~|=A˛7N񛆆F3/_<|J0jjsJKkȼ5FUu꜇kxRZZ]F'TYJȑ [| ڹŻr*88Es˖,;tΝgg6ˮ>/0DSSrl2m}}C^^EE <""MΖv/GjۂuuچЎu떜;W{fPۀkVVSGl,Ch5^5$s$%g q߾^$sEEՏ+Kqq%^^VV48H&.WT䓚z/WXZdv##ԻNfak ŋO{bj)sю j~419rˌ 7jx _]DdqLAA%qYN/h--=))wBUi *ݗdJ͚5AƎ6m:m`mC a޽hg#"<=W=z/;)GP6 XJJ<민 _UjttCu##ٳy=^9ŋA uÇ8\tw p 1[L+ݿ5UٳyЎ3f`p斺yr??#WW׀$')SjL.kVV*)& Uuz40PݼHDDfa;g>ظ1eݺ%Gڑm A3)-}v4k֌ "79H$a,-U32Zm`I=ڡ)X^To%(}hA}}[ZZ[eï 뻪p{E۫T+-:~mP"a` 0ި#{0,mm)/}Q^^d͚jjsɹ{j45u9;'y99IWW8)(bdt8&n*jXJL~nih`7ncvP*)z={xNٳhAǬY3vyÛ7ټA;RUgcc.-}nLEYnwщ03S0}& 12Rё/ * 5SUv.0瓏?ikkKGGݽ,,?] ?~\WZZ<ވ`䄱XɀCU9T!ϕsuMv7k* r cFG }}mbffpw>x*4{`BPIAr2NFFPSS Nrr:if_SB^MmNii A&Dax-]Z;v(_RS@[ǏhodYIGGX_fi74ْ *^bcoX[[[ յ::\TQ{ m)$}?ʢhg:ӧ::.p 2B;`aaѷU lo+l:{6ڹxlSSÇ>u]Cuojݹ󺩩yQOO,VR^^q)VV/Iəh!k3grzu)y2M١`Yvh-hA̪*hKtrJ⎋[GуR׷?~|zz;wkoC;U>r.#ݻe"6<"x$臇G 1@;?k``ѣ:RF #''"\[[j-ӆhǡHjjs ;9%Zࠩ sAhHo OLuԭ⫫? b}2mAЧ =X_߆bk99ccQ.P3f͟/RZ (cee/)jluk:v8;wns]]ցBX }ahxx߾ E} 22OD= .,ljd?}:AO r_UWW.16q ,]*1g_F}QvWvCCCiӘ>YY!11^T\8* jAjiI?E;Y;?+kS~={.hh}n@ׯHM~%7 vHV23匌Ȣ k>u럞ANU9!!f˗ Q|+6}sVMmn|:..VPЎv0`yC+++WJEE O_xAȅԭ[L}]]STT JUUV8''KpiQ##q޽݃h*ǏOMuyIS3,2pdv(ZD$J|dAe~Gǥ?M@ynѢ!_X^X/RKTԩxR`SaikK_Vs5q cxxص/\xvP*J]ސ@ ^b,6FSSkmS9E$27H6:ХKg> -((xhbjPTEWWq؍+WBܹz:9]eeam@FZ[{p555M,,**66UU稩edG; Mx⣓S(ŭЎCxy{g&ڵCD`27WHo*œ'u>u8Ŧ-ر%%/O}W3:J@;`066jw\93xccڡ ͛LMmݚ҃v(cͧ;?z/@p}(E͛TU5eemzשּׁM>>X$TF^^QwaT&wZv3}ppD`R B`<S^^A@(u311^iiAFFzu8\͔*+MMTw@eeA77kxK[?|:{D=s5%XlXRR)'Ipx%KB^}Xj"# ee *($$8TWn0b%)kЂMΘ+gem?xx>ȇ0Ɇ ^1 V)\ H:PRT|jS,V2*OaOt5Z}/IJ}eeQ/eeb[W GFZKJD;UՕА+ *?p+ͨ(.ik# ǯB;Ex<WSZZS^nhhTTWА> 4ӦeeoZ[,_.s QsN&R0_ZZOhg9^5{ע7 dGSSq t[V ,-9 HSX'\y<ڡʴiL>>7o06>ukz[[/ڡAuSӣ'Mcqs[vfx)V_ߖV*'G_?ĉܬfee{""Ⅾo?ǼzՔ /x]^v0McD;hiI1@;(Evz>e_:o&))0k֌g ̞ݺOF04%{m'N>zOZZzrs=&w?>g{z98`)~Z[{++WL*ŕ<{8yăM'f EJK_A牊dg{$'BB ͙Çv(㣿fBc33}̘ؽ{o}aJH?c`=~\W^^<{HO61Y)6(䬷whVjhCWWe NG&%m:Z\'ܿVWW,$~qkzzl^=>%bbtGjϜlGCZZRoö^yʕRRDCQsϞu}IIUSSkE۷w qZ%땁 ?ՄG)(urJjXɳgkjn0b%Ejk[ WT/4w. ̎=8 3ddn~vP{lho!@ d^ijJ=zMT,FFF﨨 7nTGG`0KK=2,\FF\etpiiҁ))w5vsF;/>p55`55%X~/<3]] !5uuuq 4Ԕ=)X_ߐWfQ3??_`l@BB`Æd}'7Lg`0Ooad/+{cn,V*-abbXH Xܹ~~wH1==fv eԔ,%00P^$`9rNWWnqqdea FZpJCo?{Psii+T#R\\ky<TknOlmF; @ @LM;cɂV}}[ykoxS'…[,b%EhL5Z?(իMM[YY,R++tz¨ q(l쭲(}Ck.nn*)y9QlnJI嵒fwSҒlhmpmzzh-#E+cs^XH:SPXWEEʕNADEy,HO+7!t껹-OKseggF7$@KCC֭֒*^$15] Gu5>}PUX% #,Ԡ=˖Iyphhtǎ'wMɚ5 pr:idsW1ڟ<NE񄪪FhOFUU#OPTʪU ܬg>Z9k-gthh˯1VDCCpիBBhpqsZX,^⠃ݻWQO/0bN#ŬMc_z2VL/=ݕeDbz\>Y`2(*۶w嚚Οy T_;3dY"^BeIIB)jI(i!J!TBiOT EQ-v 15{y̽s=p:"q㵑ѾW=>-:ysbk+LB>~oll ss<߽vΜѐx̬j@Q\y/Arr>[XD۷7Bk:T(.n==ޝF(]Z!`//$]5JÇ\Db> S~qA_9{ȐПx{kk!te^^n|mk{ XrP IDATbŌGNaCܲe_p:ޫj\2f ZYY~0ᇝ Xx F(>32ڛMivަeKLQPGjO*NGh4LtcSjWVtxxq:wٽ{o޹Lho5'OtALyQA =MZzzJL4^vBA;>%f1uљLm߿IOr:LFFdZЈtn`$۲UG8O˞N'tE@?} 6Wگd220𺿿ɓK8` '&_rxV4T*-""'gcH^.0̨Q *`x.zk& (?G@ӽ.TQE)TE44dnk `p8TU6ltk#&OVyv+9]6ftP=RZZwɓ'AA֝sZeeud.\X) 莶wYY+44ѣGl pJ\+8Jp\J\\Dpݱ(w%1AH$ [ `?mmy2Z\\)XfWIO*&@ܹz=E]2xɒ)BL\i4a*$<<#KS 9|ޛ7q$.vU.=lYdii-bn̰7ևwx6;98~ ,--eY3hҿH^^Z((' ء988s9;w߿op(кgOd UU_!ᚤWqq5m;NN##պ}ǪU,88L&9Phb5R66Gyp>>>M>ѱsW^;GqqqSSǏKK랼=ܼcǎ/_hiilڴc_ %%%N }GP2qRRCtNKK!CVSSÔXd8qn:;+Sjۗ/hhXحӕ`UHAIII|ۤo߼) wynZpa&8И5k ӱpŋ֝k(wQѾޒ=!++z䈳mۮL۴i?6mpvn׮{3$fq, ,X^˗/'N%`}aQWVVNHHhOzY[[#R\\>qvqĉ#Fxܹs]3Ll©wtiP[ w(NUmmmHMMܱ:aF:yy幹oGtP_=T* 0&++ HUU,{nqG&A$%E8w۰tѢϟa0FDϛ7fԨa=oB a _gؾ)SRR;9^˞0m&OVMN۹3%-֭-KV_>>NUv/lj!s#))}mD.KF`}a߾}LSSӂMMMAijjBDNFIKKc%򡡡VVV,[YYYXKSS\WW7::zŊ J]r#D8 p:ÞFL0Ȉ"RQI/t;nDDZ^}2uI#`煅~~seHud2Ugqvv<:owܹ^ƬtYCCͬM=x}Zmd4ry 7n(((!Lю;-""2eʔp"Yc ˷~)$$$ ^w]L&dAp8\TT}.^*&&}vVjjސ!CFq}a?͞=[KK+!!o ##˥}}}[[[Tخ-p.]:thXXVH?KHH/66{'니jiic932#F=:88866BA///qqe˖!R[[x|&&&BBBFzzBTt$ܑFjlltĺu33Cyygy{c zLfgw"N3p8; w1g΁jy=?r̙=AQ'H,Y9o=<<޿zj˗/#WPP`aaa``655d KJJq8355-.;,"" //oHHHܿ?''GQQxq:HP}ii zzWO*&&ZX > y:{v|o;ǎ={V͛ ޿ϸ{{{??'N`+JIIF%&&ֺ[YYER8_ c \JVV@ |ϟ,d_]E^9;;B944}3d\.]vpuV677oڴi̘1'Nܻw/B*7f &ٳ= z񫨨Ͻ٭e Y_N+>>ob?28|}}UUU444:qH@QHz'**I/t[^dHz1 [4-O텏ڹs//a,X^˗/RRR,^'%%pEݛ3Nr7oKdffSV1B%Ϙׯ͘7""D1u͚ /tz8O^:k#xh4ڵk޽ _JJJEEEzz͛7F"ZZZillLIIr,fkke˖_D Ǐw0333KNNnhh H}=~Y ;꠺۷oJJJҼ֭+..~ݶmۜ,o~u)Yf^vmҤI Cw]%┕/Ncc?o߾͛7ƚg1sU }-[.]djjJLm]^^^VV0nܸ_z݇K6cnݺuݺu^__?=Czڵ߾};w\JJ_} rT* tJ^~$tJ5+lhǶ67sn?ŜbͶ``ܹ\BsСlo!t31<~@P7l쓙ӱ j--**ӦyWN2z.矕}McF 6O=:fkkkkI$Rpp)S._k 80tP%%'N8::JHHXZZҾ%L>}0V*!!!))܌y넄555>>>--Dߗ>h4555пQx^NNڥKJJJoܸB6ܯo mjj W.} o޼pwAӧO!Bi/ijjRQQ9uƫ8{l-;\Ii4ڌ3R}^ܻVrR-zxx(j*캀vwH[(Cee- ߯dQyy]\aeNGHzA @Ikc]\:>{ jߓ':tqqYlYEEQ=}իWqMEEEƷ6ʰ;AUUU(FEE]x*Ѕ ~H$7n(" }CCӧgSS??Sϝ;Dgl @N >gΜ{aS(~"I&v~7o^CCCrr2>֔YAAANN;,oI/ET#6egq:>~h_xGS>ᷩԿZ--LABk0cHwhOFQ4 @GG.wA={lС(ëW?SYYYk.6hWnn./ X.8p6lXI/]<ҋ 'Etyxw8\u 6mHHH{ItFF??KJJ =C{H`slp~{߲e^^ߎ I/ w$<=c! /"b֬02ڗzx밮NQQQOOmom}{Ç.\=)}ZZZs%ݹsG__EQAQ%H^򆇇hF*JJ7ÇEEE}֓N N$9rիW>| <@Q[X)SWWﲰO&PP6=ӱD=PMm1oߖx 憇Bkpck]srrxxx˗/9 ,CyKvv}UABJJ5qҫf!!/^(x-[fCC,9ņ <;z`P IDAT:4ښ@ ,Y>~Ƈ4 %'''88XWW@ \t ړG^1AGoŊhO\$7ܱb0"x>BHIIp8AT"w@NNDq]{{3 5^aaڟﲺuRRRsssjj럪0w6]nMlҥK}O\\̓ +W9S{zSDݿ訨TWWnQQQWTTԗfw|qUU999vB/004##`ĈNNN+Vej^if͚^XXxڵI&)((7W]]]QQ{{{3hKfffuuuAAAnnn b[j!m9 /9)ܠ;k[@QSOOAYYٵkbepH 888ܼy˗/پn߀<:eLw#ee"4/X^~ZOVF9z1cH$׮]%HSL|2pE80tP%%'N8::JHHXZZҾ%L>}0V*!!!))܌B]NHHPSSJII!H}ha0uP\wذabbbuuu=i9|p))k׶tYD^jk ̜Z_ӱ "4ر ׬mnn_!!>=+S;mmdKӧ﩯h5Iװ eeeݳVTTl?K].TtZ܈yMw433GFuy 5552DMM- aeddz];}:::!!!3JJJ njjbPB߿_]]]HHhʔ)؈nwwf}+dM/77Jwt8cbb?}^ <P(;vPQQ>n?}|l;ؿޣo+`Mp(7n^{=c%O>Ӂ >U̙sk ˖EJOiW\i]EEE}oIpv{{{A\׼yUU._t8_mm5E۶YX1?Wq=+룩ή]6ʒ6󻒚-#Y0KHHc?(jlllllsN6B\ED"O<Ӂp+&^ܙXUUcc>å'E85JFFj(a6:l|7`0 uQKK~ݺ}-~=tⱱ}_r>ztΜWaBDMME_ޝ/_9|ؙ/VZuMG2'+++##G& cbb ,X>[[[BT*u"""ӦM{yadffKHHݻ,)))#GYn][[[xヌHנkWׯ5Ǐ/%`%2  E"u6HDEE==={R8`hk˟=-=ie }6aMMٻwƍZwn:ŧ3fMLEQ䧿.Kc:?^>8`sQQCCTUgϟM.ds*0:`]dddN:ՓP3"bɓ^p:m ϯ꼼+f<{m1)*JX(!::رcJJJG MOOCCCMLLjjj[lOO:fcc#//oii WDDda&Mڽ{wll,B\A =)z #zD**ׯdkk`kkWrrbtp("2#:/,ܴᒓ'q:窕+c._42v$$v|ydyyn}}C s˷JLL {E_EPP:))iԨQ^Suuða R0k V]سgaCO`KmO?~t,č,, ߹ۗWƊ~Ls'O;w.Taa!(`弼*:::&%%ݸq=չʛ7ok0:(,,^`Y?R,v]ٹsn%**5 l 6qǎ-^>>;;Ev뫮|el˕+WVWW3yٖ[laPK^_QQڵ˖MxK~~sDw2 vRV~)L[;_6 &~RWAA"/ii㼬HTTTTTT{z{>}ӌ#!v:.**BݽC]RZ/9R~ǎ=~3o: Xe@F"U 6ڄ n8 :t2LPjwM-^Mw 70Pt8$'ʕ1rrb>j۲C2(t 7onHK{zիM֬/Џs 2D_}4[Zefd'.nZEu}<{SSw}ÁFC׬mnnKJgM 7orW=299J!XQ[۶sK/Q\Ǩs˹s [Oד?.wYYSCACm3aB7c-/ūV]t8!6Y@@9z.cV$eÆ'ige?{LJ߉{ohxq=)kkk(8E_?߼PhFI8:.]kqqJIu(57Sbc >}#+9q`!}oGRRRGGtI{յrrb=en;~ʞ=kzXeȐ!~DE?lx)rg8nX?} ˈR",#_ 9RNOOIOOQOOICChp8N6ĸ{DlޜۜoWxxׯ5ιu۬׬EGDdx{<ٹsL -SNp`SQQQQQtlUXXyƫļoj45|}88Luͭ>{vh&/G~&6١Co$,_55M1oߖEE2'O߻wQo(ʊ/Y2eǎkپ}>Z0%sss--'5޸*,]6xa,dɔO*_?h `p0 נ"OO#;L@7npSST#oO_ٔWrQ[DD,>hx6w""Cs`d2˗jlXz&KPU)* 2m;60>77M{:3'ௐH?%%奧%:ϯ9S@]^ʘ1r\@-[>}ZoݻSghx >TPPmnm^7m̙׮\;6쑙`lܣp×-thcc:^^ȑr#GaS*VTTUPPQPPA$:Y[ی h\cVvO֭;0F1&8uELL{WlGK4516:ix<s'ɐļk^{4pKK=!!% +]]t&s8CCMCC͐7^'&ZuAFFa&@Mށaɒ3ZZrG8毺̢En[YqF|lS@{>^;y҅r`%>@r`rry,<w䈓IXh@kNӏ9r74֊33e0Gyyő43!//aŊ 8eKRl;'OVcV N߿]RNIOMMիM&0鍚e"G:|ةEEiKJ~&%] `XQQNԶtBdk߇l4gڴW?l~AssۣGyAA={9;*a.YY1SS1SSߟ>U`i7EE4***0r\P0 vgSNN,(ho.$KPh۶%_bʒZZH]61rpȔ%$vqqbk{T'8fpɞ=x`RRS`F`VeuGSu!T_*--eQ<ܫ%#]RRޓ'22"O=Z}/DQ4My^^qRR^ppJ`5ssEƛh0)$2S^^^R SɉN?|$Q!}oݻB͞=jh-Z4~˖SbbK56~H,+( K/^&(BBjj2Xl0œn|aC\VFmVsT[{:̬mڿ sАxΝ;w""6nXVV0:DWG秸xK WP0tF!K |CP[~ QzRKIIiʔ)+Pܛ74L7&Ɲ*jՅiikRvx<m>?=mRRdeE.]?/o $^8jgn /\x~#"Ϟ;lm=6%啯{6qj0SB X{Iee=6H,}VY454545eYwp))nM%ѣO+WƌI8󲳋RR,_FLL0 `Ӥ}nZugAAutX;Ǐ_NJԔqg5|dii-`==%==;_,IJ;z޽7 T,ǥ31Kcc+6ߓ'VVc""On?g@[ 5 5w\pZ~B NN&Ȉp:@`KK{뛰~%,YiӜ5kb Y=Ws烶<wB#2mbb`X{OX,5MQQ& )>LCCgf,8$42&Ll IDAThc3n~fBҜsxؑbn1wJ"QNzp))mm {p[(@cӫ>|)5}7wL:U}Ѣs Ih4{tBx0f E266g["(,K OIYf3_oĴǓ'Wd͚}<OII2#=` >>SSSS0;w'%<LwѢ>-ٕQOOi湶C q$OVt/Y SFb8?#]lȈ,Z4yX o[`]lY gk{OFF#YWsUIYΒ%SRSx{ǧ{ HDd}L~RͅH$޼Ili!TUA`zzIrY׮ܱ#)fDFYCX۲ ;p;ҷ}IIy>>掎fϞצ:JJC0; .YQQFt] keoe_[ۜlY; ,PYY&112 ;ϯ|=jΜ!! 9`G]{y'bg7aB`{{k|X+<|1&њڵfiaa.=khcmmn-s }R Iv2>>7c]{sTlCm.:i44/8))ԩO4-YrF^^<:ڝ<ghihYU՘ҥg# p}>ՎtubbV[[iŗf5a'>%e=<"bb:؏?}`o2i4TTT`H`G`{;;ONu"׮UUfCmm[SS9}zҥSvanx$?9"k5ovڵ|[[ʊ'Z旔Ӂp@{!$daFۤʊ.\8q҈8GzƍWy߾hjʭ_o0'CZ٦4^RHi $22"^^gfv˗ޝzJɒ) ttᤒШ(w/7g[7]sУG ȈisXlaqә,`@LL~I֏eDbŋ$EH_MMFSSK9:N ϰPKV::{:=wϟMoMs׮Ze5k.7wFEG9T>\rp&ډ+WrF,\h !ﴴ7▖zF_IeAZ[ɮ窪nXm:ypӦO^_;9K(,]:@X@OAҋ|^hqqqK<9rDJJر =\紵^m{wYʒLlL H,yB%PG&)* rw͛%K(+`ǎeZe2l8{z<ge?{LJ߹|ƍfNNb64> x)+K~:^d||,6l0{ʕ={Isv2e#(~JJKO;d5f mԕ+?|FIi(bbnnnnDbilkVV+W.I/eV p*yRΡCw/T 섢{]\2eoow[&z0qWxy ؒ`vvRiEEUя_z`F]onI0==%AY"WȱcGEs3 &lf-Z4>""c˖KYO rHYbpw!ZޝCfȾ%KIE$ZZeIiQJh$:TZ()IIЉ0q:43 bg&qzKWwϝ edDmm--UZ$/_W  O&S֯/+{[@/gdT;Wdh0V}ٲpP$0(z7o>ZXD%$vɫViȈb1=/kswga1[D۬QN˫wSR:k6~y9 cU4@K@ыP{G]VHKVV CBϜq: ]DTot\ZRQ࠱sg9.qxx?t(EG_jmm__h23Q((Xo+h0t-[18Ҿ}ܔ&debc]Ϟ-ڻ7#l>+^HJ ~ɖ-FQQVV'EfبϟVW(YZv(ؑrY'lOfi2xxLa\\ |X U!&vvj{" WϟF?۹t GG' Ξ-^{#??Wߑ`ϞM"5VU5H wzGIIʊR`Fa6<>NjWYY3E+;:j1x7ly<#)ɝI*^TzzӴdI8ÇtGdfgwL0NNvGGӧ =؀zBBIIB+Ӧ53S 24}ݼ\Mm27ڻwNHHHv`K@k țViZ뽥F"5ŕ47"}j`bbC.Q+^>zGM*`oW뛪;1>>*..jicgO%LL}}MXD_&nhh:6~$'ŕŕ()I]L凣M;srSGvq*YYwwJ3u͟?umqq%G͟?E[SSyY`u/_<1f oRҚ=%v0>6Y袸1 q/޼9aRa>2<gdTDE{OlkE &BA8z[ddDA]DQ75>Iyw )2ҁ.vvv{{_t֭ == \QqK]{kW>{{[24&~ EE;۷fZ[YJSL{Wzz(::rFF0-[4`K^^F99JNHKk\y^L_BSWwr ]|s65iil^.N@LLN(I\}Gw>{7XUD"5%%%"++J-)*J;B.<`d4QkRR",4ͫәWZbc]͛2O՝TKodj&QjѹON1LMVS{ҤO gggGAAbvc33'rroڔ⢽a>Y H05U25Uo_W,Qvvs WPb.oV8!##֯_Pzx)YhCYhyGD܀KLUgѢשLF}k`ԳIlҷo]llɓEM` \\d2+O20k~!-+ٚg:8fc#ddlD73cbn{{/d&njjߒ*]m22{>z4''{ccׯ]prNGnn1w/: M??ӋEEǗjjڪ/\z`paH +W:U<&ƅUش 00s*M ARqq, C mlzu"Q CIIrq w]HPELԼjj"km@DT@77\0s&Cq,f*(xfMԩcϜq=g+s ts/ݹsici&LhCCo˫LI)/(x5`)uplQ``ys;tׯ?usw2tqvrҺ}:*p͚|66sM!ӓYZXD̜)*/*{{ qq`zz(/55eضm(2xkK+VNO;QLKee`EsGinqp.̇/^41O/_%N+&'ZūĉQQ/Mha&LF$ -+8cڵaa+**v=j%K0]:))jj=~܈u~|R54ԂU:G2<%rsYg͜-޽WXGh :BIK{sJ>PDk$qhNmm Ɔ?|xQXbݕ+0xw00sYLG#,̛QU˅ nZZmm__h&BA8Ĩg!*(Es犅xMiL.<~AXLuusFFErry}YY ԄZFٰA99## TU'h/Z?#v z`' lbQq%K*(wvZL%ެW..猍f+Ɗjjw9<UIHN4[O6Y{Ϟ󧊊WÏь Mvw?_P<&ƅژw$X{{gHUUM$RCl읮nQRR"2$Mf8uu$&ut" (ys׮%:]Ù*͈}`NBBƍVi5(>}z|޽W)\6-DRYY3EkƎ/em=PfCXk9AŋUfajaZR̙͛CC::jڪqb#Pؕ+$w˗8`ݻ(,3JXgjmm9v^x׮H2~Y[ϱ:EYnk nUruwkkߓH Vlҷo]llɓEM` C~o66CJG&S/_~ptڅH$h/_>++88P&]#{EkGGMpr۷e*X!#!!x}clOY& QD"ANNLNNz!LyWUTUD"59ځ (_Y8ۋ+3z*2iSBfhy{;.__kk+k֜-ٹs8z'&LWu &E"5$'_|ӧ2Z+Ҫ+KZZd~m?ܹ'oZZäg/gg]`Вh__ :u…R  A3 _m[5LB۷kjGE:))̝+a])ff*۷KLa+fg?¶腢Oʕ+W@Sk`47QHƸ\O LVVLVVLVVAjI`!72ysbFӧW1kҤ1'O:r ^؈>,4#&> cWO6v޽ttBBCapጓ'oVW7Ȉb!003),*QWQQ~}}~}O)` IDATھxD-ef>ɣPP>>N99V0Q<wl3gbi_ aÅ+WHϻ`rr̙ge= 鹀ْ_v| >[R^\\-"kbdi:c& =zu0l6^axt}O_VPsr:kP@xx~pp5ktBcƤuGZ,Yyy9ɵIx<Rjj9~dj فWJ"#1x" ..˗ y[*aƎ`gg{D0ڋM))IIw[[;TT&ݻlҙ<<΅hjjj>{e^cg71Ļ[$ o3CE'5<*ܹ..>pDo0Pݽ;-$ʡC+eŋjY3fHu CTX 6 se}XZpP_FG޵+:H37gWW}LMھ9t1imʻr]{!cbn9r-4X[@@פx5--#*+` AǍ'XWׂuySxx־y>vpиs7=V*^N{MQmm s:;i\\ɖ-I7@k5z΍iiGY:ZC#(*߁@(_nx1- -^| L:o+*RUyoJ6o6 hC@_2||׮=ad:%/ǘَE--}|RssuWܜ ( LVVLVVLVV~c\9N[ GmVܻ70Dtx!lSM8 ޙ:T1,̪iM0KoN :t(o*իuh?ĉ-[6m2EQ}kjEFf?~YAh@ыz+^ :ݩL46Vس']GG+*c6^۶%zЯ<H$hhHW3u֭͛[~cv3$=TT__wX[/eG55y )''F-)(ՑY7zz^ppXN& ̙_d׮4ggУ1H&~ BAo߮NNw #iod4~UkfnttӷΞ-vrtqԣw\K5!--r11G^_B}رXGEd2e˖K:P8 g{I ,O2X42 KHkm͌ +#C ʀ&/ݾݘ{{\ye4;s $RcUU{{( (9E͟ϨNڳgxuu$%…M Vdcѣy~,,TD?Aٕ\]ۍT5tGxy99iEE>]x-GG-77]?*}(gO3EZ2g$`<^^FnnFF?{eAыd͉QQ#hr-)(2WKJj89%i:;kݛ>T11~d\;/?vڴtݨUg-hF׍Uׯ]Kcyy9ɵg!H ٤oߺ'P$%shggYNN'1 HU71Q s{>}֝;5/_{o[G$dL&I1 47ef>JNqqmlL(u.޺uۼsNul::C;nLlz15<"Ž1{rqvpHK{qcPMM? Llܘp ymm90ƍ))K2X**+o99wNt: @L.)k󷎎g;{# O{c.__U4￲f;g̐啕oBAAC}{O^^eJJyA3.QL55eџذAE;:8<ƩS74ׯWw7#6?Yt˼yS ?D"BuYׯ?*tp1CEL@`wE/dwcb55eQ7_טE(я]{kWN ~hhwygޒɔ$(GVW7gdT$'۰AJFaZrpЌ)>v,?>Ykj~k|;u K ټ̙̣G98hhb-äRYZw75Y&aK~Ϟ'jvv6&iXz9'<(sHٓ^[^ZZ+ww]\}Б/^B20\}Gw>|z Dvv֭zGIIʊR%8}麺SrBڵ\]uvwțbbW yoEǩLC{OppkV֣{XHaJ5zOc <<<}o9smhnnzUE[^< ʯ[7T&-x\۶-ruՉ( z-//C ll{?km}RP+5MTZ3?ɓ7Ϝ)rpXflP% ݸ1!726u)0ݻ&'cqYT%%5K:ůYX^t;97׋06iҘ.^De2+bcWOԇ=::u0ҽ{Ν+/q! ԑ`ɔwUUMUUM$R#yH` 㕕' "O_7n`k;wi4|R?5o_5ϝ+|C|ݴ)ADW[[nho۶d[JJn~?7AH{J"5$'_tVƊRĊ ɚ57}|R#" (::F͘!q3// 舏c:='' JoDEZZnl`-PEoOȨ8{ICyB1WLMGamuu-sPyGDذA,#ԩϞMcbny:Wטoߺ{oGQEQ'CΛ7EEeÇ LBq8x .P(j>5͛iiKZde֮ga1[DX<&G^[66 ""YO]\^xἤ2+ٛ6 ` 9hEQ_Ԥ(G==:ӟEyy?z1YWV 5~͆W-R:5exbbV˫kBmNbf]]=EEU?AAY>} CDES?mkE &BA8z[ddDk`$R#;;|N~Mo||tl;VP(=+VD^yhgcz{/:g811~AAMAQ4,,ktuwϟs_\\uTqD$$CC-o(z55xlmխf=,Q޼ٰoO'0dPؒpK/!!-[2fO<8wմi㘶\]u32nۖ1f@sӦmhhmoRToȋs͞=y]oo|oDj=JJJDVVZST!I?_|oV#GGM:M v2DvF]VKKvI&)~֬tp|z?޿o5kbBMMP ΎylppEv04;H$XX.]:Z YDy&>E'O haf*̈́={cb\ҏ:]ޥ 66C+._kZZXiOGF9*^ccٳڵ'O'OްV Ai:;kݛԆujx!˗dڞ=yҁ%YPj` uA{^,k#QYYnٛC ?nk`0--_ BA.=fgw# $&EQH$Q?ٳ'M&d *-}pnrw!_߯2*1q E?=?Ajjaa9߿`@WaωϞS]݌u.,.2˗gڵܜMÕ.溠VQQM5kA~֭ wJ:߾4..p8\t3觪 _|ζUg@m//''fje{RkN/45iXK1pdY3fH~簳drnn!c Lp3fH$ŕXXD|ŋڵ'tM2յ sHU<gazƍ'O+qJێ}i޼_h:]qqƍ֮zYXƞ=KEE2{^KHbqr,>ia$Fqq?TY&#c )vN 8 ދO]]vwKBc!  o݋ߏq8ahAf(zǗؑjh(`IEECC-52/72o:iD[XTWuuCm[4y2|+(z E}{ʒG aC{euAE߯۰A CgRmCrce(. _ݛ}!S $EKK_]u$<Hpr̝/^H$H$QpGHIL"6i)1'?~4'ݿzƍ<< P8N_޴G\gl}"~[kkͩѣymĝ;X[QSu8Ыט1&;v,[ ΍(bbMM=ӫ <a{?4^ld * #[`|⽨CVhÇ/fM0C}2//#L3kjj'R;::W8.$$O֤"?HLLÇ4̀jjjh }Z>~׮͛ O1o>?"@O/N00"`k^Zd~ӹs/{׎u.נ}Tf.VC𔗗g``X :w/Ǐ?~ٙ3g>|XU5v~0+)&&&&&6fAA$ҫ{ݸl==W7Naؾg:ĸTTkh@_ם;۷gfVe v&^@S(hx/{ݾ]Ϝ9g1Ҟ=K;;ua0^==w\\go6QAa<+WxWFFƸq>~ HBBlGGB9~ԩSyyy "++KYYK\\9s "&&FCww֭[EEEEDDnݍ ;{ԩSnj;i$~~~233888&O^Outt,X0eʔ}Z8.>>~ԩBBBxzz:;;S..)|iժU[lS}5zzzv%))9f{{OIoNRrrr"""߿ ujrEeeVwuDGEە/^`M6577oڴ)..;*** 88~EgΜY]]}A#ijj455Q?=|WoܸsNׯ_/++ "H CGGG]]SGG{Q%\r% ?pVRRm۶˗ >yd%%)[իSMrȑ삂^D$"""+++33իԊ^ؾ^ZQQq̙;vR?[mm_BC;fɉY &˨{ŋzzƷv`..v J \#=B\|#|\]]]oQQոqΞ-b#ʻw~(!!{n-ӧONLL ߟ={2|-Q577omm!TSLy-k׮)))( ȃPV"x?R(v2w/EKKKZZZP> ?~ A 􈉉(hѢBee%K.IKK) ''w%c>}1U9!H}!rMEdrT?,faaaaa˻ Yy+U=3g./.BSP1/)B`tǏ_6?:V,iQcڟai\dS?vxz/Z訉uan^OO ܷEQ%  xsXgP?nܘrl&=@O6Q=uꖙ(=puu}䉻;."A^HEE%::z/_x`]]8p^ˋ uUߏ,(((--)**?았#,,TTT5vؾ 33K.\~f0P577d)))ҍ| ^~-##Cxԩ˖-YNAz2e 5^ؾ_KFL(Uhfv|Ҥ199UT&`8|VQ +VD~Mu (R?''ӧor 'EIAd~ WHH]b$RB<ܔa&O1?$$DЫ團@@YEe))..lP~iM;77]:p xyyQo7nܣG|+|r֭<ޘcdd4=a(~zr/P(ɭΦ}"IIIj͛ʳ?y|ŋ555%$$(@~q~2:vغ:>x~sRQ;KFkm?wo炄5cbd||AA99^?v̛?<$+ѣ60ʋDBhOsr3lǏgl@lؠ?v)X/־;uY;4TSNVVϝ+Օ i ׯ_Di֭MMM999۷ox߿wuum׮]/YׯI$Qxx/p8ϟ?wuuD..{{Ɔ>ٚZZZ==={"ԧ@$<==_zUYY׷|}}++++++׭[ߜT6lwގ;lmmQQQmmmoߥ~v#\M.21yqٛ 12:3&+r54 :@!)L3 `z?D d0ݻkj`e3G\RGwXYftljc vv-oxR"JK{WrJ))Fmɓ`u}vvs~DDm&((x 77?nٲeݺu6mٻwohhL2eĉ+WkmmoWĉ555ũ*++ϟ?_QQq m۶q:t())@ +11QOOODy3gJIIp^ԓ?lnnE~x Ǐ;v/B/CCCMMMII_Iecc`EQ®^oߥ~v#Ðɔ\Kˈ3'o5k H+(4199!!n__ff*YQQ]]𝉱n2;;)~o5 0x<9YU3 L ɓdcck[G}1Tkk>+W{{);{/lmp֭z;vSdz…2;1PڶorLۗ}bYYN;3~ŋПM]?_c~I?~\xS54nx~~ZP/ݻ7]X+ i ;+VX2rX0+fTXbŊσ80B(L`$kD1)EX x1mNzUYE}!Ν;;CC`d|NNNlvc얒 ӫr=k9CxA쬭={ի2VICB[[;6hb Agk^PMJjUĎ)_0 ,+.ah8FP\\IO2;;vzuuAWc{cݻ={ҝTUYF]IiEzϖl.`h??s?n:ˈ}{JkӧS= 'cpTcn?\9[wޝ5k.YoN>>>777R4\|qt}˹ df>:Ԉ^`Ԃ(;k$(tҋ)` yy93~WWOMMBDNNUw߾6 O==u&Meu{I.\(ӛ`::!7o>q9xЊg։T`j&`22G\UZZt͚G]{ua:OL/52!M`A '']Kˋo`Doټ@P{^zG>6"n8ͧq} /?07Ɔ?< 33MJ^HJ-(J* BZ,%lI%!JPiQҞ6-3ͼt~s23,/}QS=s]7#khغ5q͚ ^ffND |qqG.OJzfnu5ډ꒧N9޺]X1z08z4P po]I@0!^rYZj۵+wrqˋR|ez~׋rrJl##۷HII,TQ_&!AS +[/B}%2\0kV`~~ŋNrD<ܻ!,ceu<46gO:%眚omaggC1o߾s)AXR'$č ȷoQ stttojv/.9ɓn5>|UUX}dls'zy%gg{ 5 ("68{{=P}~{FĸqcGTrrL[L ؂222|ZeeW'+VL믅Xȕ+Oq^qD*Tmm˗7[Z54Tb)# E/k||x< a7;;{k+kz##֬1C; ))焆^PKNN+XƢ]}Kf<~)BK_1(RWF&iE$nzf(בdccea)%QjA .[AQrHHl Bc__-PWK"r=ཽĨǏUROK1iҟ+d 88MiSyH@RC/Wn)9xE],54(pg%I||ht  rC ϝ.ܬil_ذa.Cˎ;Vĉ0ԗZ/&ƴU6AhqIccǂG!@ >8aaWSp"".\ȣ-[f5nIɍgzz^NJadˆ23,ww 7x"xǎןkkcHC04Tptiׯ̂]\**::zN/0aaV(zy w[[7*QPC~v 7Y/a\xq[ϟD5ھ׷KRd5FltZ+W\1z~陌 s8kb1bb4-zݸQ-#(}͚\y޼Inns<<.sss,\Ei N 5a ϟWVV^K֖:U^GGAKKn4azV{3ɮB{0 <n1m-LMMSD;?34TtOK{alpenA~KX:R&%wt8:5##5~~ L>Ao 6(vc7nXx qD޲%QB3DEyhw^o/13\Ċkx\j6eeqnMغ5l<ק=qqs'Ν;A"SCAAE~~ybCذI*y؝\uu7B!g0tsdma,OϹx<P {L]}͛/ս#BBn?}E:;{3>xpiFTBD7.94tٳ9lB;0PzpWpݣG%:H{N/[BBpxXL;w}ԸnL?l˗GǏujj0oyd2900 ꐐLoy1 mm݂<413g_V'1E@#|16V:SPPAP'##lks؊g^f(vJ%^rrJz{.~uinn{{=,տ NZ> 3Cx BH IDATs8]]*Qh˖MC; smUUsDD(^ΘL 8q;ŠƎ9s&lG&Gܴ)̙x qNSȭXqfa;;cV01yUFƛ~~£G` XtJf[\\F>۷%$M~ $$\z;I$2Ac%%%1L#92 awwcԍxN(zh]^ ĉ{sEB#=;^Νw;}./nXx wq11NvvQ-4u_8xqG]\f~?/w6v7K~ƁY,j@77NK{vjRPu3DDdE|e08ii! 1%D&kk.__D_?SCCR?id+|Ԁ 2̴ئM3~e#ƍlveܹi3/))[P~:;zV8UPPw6.(سk<^99gg$%m43Sbgcg5{8XXzC2s&yy˗O 0:!.^`0԰4`d~QB^oԔ5X[OE;矌l&NN1 жn5۳A3_ ͓Lʦ3َ|Xp ..|jvUU4Y9/^Ɔ]oQLBm=ZX.\VSr}~֭nh3?3-7gϞǏ561#`Ϟ#pp/>vlŋOmm#Yb(7`hBB<>>ss},,&8jdt89E/08 ~<W]݊v~n+*ɉɿ|#))8i AihݸqV@ϟGrGyy(4Dl.MK{u{еm%BS;+#㍠ ԩ َizUtiȕ+dޤ;;{юCad2ٳm.hiw UUmii;/ryyQGGص\jrNNmĉ~[$d1jpiÇюIH,yd%7h bb0 JJ B^ f/zed`̥w:ז7**YA?36V?^kd2㲬-hg)2GMLƱP#FN"wZ`R/_ZǺLCxmkkˏ`5<=/;3?ww͛ƍ۽paXt#:;8*#"d @JJ($.;kDigy>~\v(4߾}5akR~qaQZZVV6}|A~\d;NfB$IxK,(04T^LwLLĬˋ^ݻի wトޞ5+p֬s'feyny""|^^CI]]} P덕}}x{_rs3G; D y|TQQlXAbcozaz>PKK669+#ŵQQ+V7gٲϞ}IOQTW@ Fě?rŋ}nKj}Z$\Sr~~9cشi츹s8pNUzusR.3`8A'-x<?i}`(DUUso/dr~~ƍFHN.K˛Nac>\?sZdJ8AAnww4&%%^}.,,**+k ɲ"rsutƏ9eeqwwswwnzyzQd}ii!s66S55e2WL(o_JqqmH2z;A`+?~gn0hTT]*##v %)-_xǏuLYznfwϻW䊊FEEqbh{,04>w׮+^^[ex,-5CBq O&H򥵤Ǻׯk>}j'qs/edsJ w355 wwו+11TUXYMZhKsv6RRߴ)~㱱k]qW=~?6lgL9Af99QS .'$SZZ?ŏOxFQQ9~a^XXܐۚ2 j-X0e=fmwr?X\3jwDVppf||ޮ] jXAnafz0\**yP֯TSWGƍD;!{02R55pbP8:_+UW滼2Dd2yϞZZrS΂44s&|z̙{0nk5]v%r,Z4edtt ԴWjjOBDP[^^TNNb6I b1K +RS_EEH֖YD**ݺ%nɒN pZ]kx-[y{33v.'~`HTU%\@Y-z]^D(QRR7ln=/+=)>~ EV}Xp8lPn|pqqrAAAEF˖hnN Я{Zm8 ,nMض޶}//o٪hlljiBŌ+(''"''jd*++"//"//E=QڳgAvK}|8h4--Yg|={Ysm;$))dnLGhCCU__+kgz!RQ|v ~]RQSUKd;~wu1h~E'ΟutsZ[5$'.[6Ϛ::zN[jƄ RhgA@O]^'MZWڵ~~vdαqq?oǺ.Axҥڲ"򢲲"x<o2(<7g΄9s&}OM}\eeq;;][[];lp8l@R{oյ:dc- RQ8uqOڽ{cOjFDVfTU45ut4l0vzJKO Bы ikolMCCUEE>A(z Uf̽{ւ2Avv6'{QOaaIYݻvde O5 9|ئ鬋^bqqmqqmss' &.Y &//*-- vpsp{:90223,,&HHJJh愚ӧWܝihk߸w{E;sN %%uӧ+е_8_dE6NN<Ƭ->iS|j^(zIIk`p?֝?$0FH+66 <^-O-Taaƍ/?ԞDRq^‰deEut䍌TUUL$+.@)OSSFSSWn/"ce|qƢΝxы?fff6X=))?88 ]]M89hz S!))YRRE/0_7a'N.*qjk3: %%uYӚ>>N7˗O{v]Tuu ڑYӧ~/o6e^k%%|1QRRUWU1KFf %KMSpg%Bwxx88Dnxm7|8wn(Y'O>04Tw#5uHuIIkk99E4ИI^oTԪ Ør桳ѱcO޽ u:;ܞ5+(5%Lwee JJb8CZ Ɔ?~,1CKKŋ*:iĺӋu:d- mM Qa0߾ ,Tyo}}X Ygggh?^J3K>08nTlm#MM<^ylG0 ޽urց㬬&ntSUpw/$$x9sg‡`OW޸ǟ?D;ԿЀ[^ij@ n׌JMM>0ICKሌ\WvADE5rjjcL;ؿ?etYBxy97nݻZ66$g yy,]:,`eulŊSx<ҥ y,[6RkhH&&<^iS|?TO45e \9#&&GKk֭h s .\yFk&#))d{6 paضm砾wjG`A2o~ac@Y&Ly#35?Ԕ{ЭO@(yxegDžF;ed),ܽ tZ^_98(V2aP>5Ysb9Y~+'꘽)AA.FFj #dcc/Wm!!!n*/̙]]߽v. 1C99yӇ_-;q)SnPHH&}]uum F@SSXVVv@+za}}f*zqp3MfOaFr 2.Iqq-Y(`dmm9)>>7| \jo^򌲲xX=5jHWZZj;(뵴ds7nNՍpr8;={,x°wߡk45ennc„ pS̚0r#"gT>-gs5LwCbVtuѳӝ ŋsi_O܇_-:~zg~Fhu/ %66]]7o*M,{='Lڲ%A_? !!H$k$Ǝqc+`ZZZۃn(;wᄚ-/`4tt**%Οa͜4E/~~.8555uL8~K\wwqDRX]JKKWTTlz밡7ܭTy}j,NھoghjvGnNHˋr lO),CUJX, $9:Qnn۷ݝ  HBB^V{2[˗QL!''lchy8M;KTMUUPLNYYȕOyDZuQQ//@WWjzk6qq~͚ں152JIIڡٿǥ ppDDxij|O ʬX*, JQ@; HMM'HUAA DL&H BR}GOO5$(5tLD79y??m/h0…Z99ޫWs/>Sc/?O,KWVݗ^z4s͛Sa}e%h䮮>>΁z{Аܰ<5JS*X[Oݳ /c͛/,؆Wp,HjfNn0st1Zwswvddm4ޮB^/$d2R_ߖHK ޻硬,a1a<ɛ8mm`Z`v{pǶnMliE/ʮ XJJz4 sG$+=P 55-h4{HQq'O:׷ܙn0&ky see KKM0QQtzUW7JJTD7[Zl1KD")$$)t\jv It҄ Ia0߱`0{aYjjcΜY}e'mm޾v!IJƆ]3ٳgaCC2/_Z^-ܶ͌mo}AIIZ 7DԴJKJDvwO2Eniheut~￘xa~ =h#$ kɲ+Vd])iCyyYg<OU-_~U^BR Usr>Нa\RD440y}90n^^]UR?r66+4LƎܼĉ{>+!d6A@mm+e׬iao>lèhmo\eO<a6.) G; hQDmc ''65uAL'_/g, լ,g8`x>+Ǎv@#MZ@իj$%%q--2B6JL|hv_vrA@<v#%%T_O($Chnb񆝝V髩sVIIi66[ׯ_D˗ifBCCkjjNAaʷo{|֭W,ƠT-W&HI ]kvh|ɒ)̓]\fi- *45ei0iӔ8999%vvhgtdE/At, /.e܊Ԕ.*ZrYCUYYÚ51;$%ipr=<溻_rr2PWD;""DEymmG⑐'56v#@|i%,u؝9*V8:(*ŭllt ~v`cî]ktԐ۷_LH;| -K_ݐD;(PPKNޔtWG+Yi0=6(z iE/_ΧRژ2E v?6`ܫWtw&󱶞:~T@@*A~q͛MkdƎBMiEDJ^UUя<<,Zp֑*Wlz z (8-m{OaΜڡ~j訿yshg A/'[]]6w(8!`n3g=zD^ $'T Dree mmhHgcs#&f-y< `={deΔZ n! ~+Ŋ^uum\\삂ܔZnߟ"''JoqRRKUv>ijʤXzlάYG;_'?LFNٳ5:_v@G}:N[wQ# mL h@ggRةSRR"#S;1Cl7Ihg[SSgBB '', ljQ..G֓'eo]D6l:,葷iGZ\)''bo8jff㝝cJJbhLI]]RVV$+ %%%4{Fll5І0Çh@R##5o1te]{,(+r fv&%%80";DEE"oh۾||||xkDB?,>>~Ǐug&&2̊ٵDbڵD& ۄΜϞ(0%qaqv6z򤬸ihX=;^H^blcys‡_))X1?/.\\hgal"UU͔Z;.\xZ\w  dq,o_eee 旿ϟ A SVVF-2 21iokוeNVWo ?~ۺ5`lڕbũ/_Z^ W66vP6 hk p?x^,@N^ñzu =+1MLNnmB1D>s桝.sWhCNNRĘufNM2{UfrA>|xsΜ9s~D"57S{n(exnns2/>A'1EF޿z^SXR?:77;L%̄@?em=…MC38@ncD"i^ r'$uÆ~517gg#NNSP̐񺪪yZ#30 99BCeuhhRtٜ; rl̰mmu͛7Z[[x񢪪jWWD 7Ȉ[niiiqssKJJ555pqqx39!!!!..A `0gϞ;|p||RSS555999럩(Oܹ,$$t!3SRRŷnG2xIj9scbtgܙg@88||++f LHC;`BrrJVE #.zqq/_>ܹ'B?eьo߾P03~qz$ ⩘77119͝he8y 0yyQA(2@oofN p;8ns- *^,Xtǎ;vHHH቎?x`IIߪU_cҥSL)-- nllD$55|) uuu=zhEEEaaaVV3{>}֭ׯ_9r]]]666k֬^ٌ/^޽"##oݺ 45e236nM;0j u55[^tJ]Nç*`&&&z{ЅYڠ#-ВD,s[#8?uuOzX5\\ӧ{QQ..ƨ|$$99I&EDxFipΝ朜x옜\o_˧fGA?5gΜ7"xbIIIKKˀWxUXX mmm͛7oƆL8100033sq>>bۮ]imm#HNNN]kdw;w  ***ӦM HHHA08<nq涯_v9yp8lDJ<˸7@Ayyed##Uׯoh26/@I&dfAFS Ϣa2#al~Kz`;-:.nnv㘘G4{<0Aj4Eo͔00E:Z[#B9f.mKOvivMffׯƍ)//ԫWݻW(**x033bd2:0{H䖖kZYY em_<ج)L%%%U=81q}~~鑧O?FCclX}LLΥKP=xt b沲c㠫W QƼy]ϞP=oClY=`M*z17zA͙3ffA;w &(v4Eӟ>5pso0^qqyy9-BX hEEikF ^AArrlZ次lO$i͚5[lx{RSSYfGJJJ]]]ff]_B#%%e…|~g!K,zEDDc09s\zsss(C$::z`Z mVVVVPP{nAbl~NuuI~ܸqcڙ3~z|4۷ݭ&mz% xi((ihH3 `(Dۨ.aQ(cFX n4߽w"ihc,h ǝ9ZAAtCCqN=َBbS{{=6laD8EIIEn<>ʇ_SS_e9Csrr"'Ov?lllrqqimmݹs͛wء WWW_|IKKۛ $%%~{>>>--ٳgO4)00999⼼BCCp8/v[+d IDATb{{{SSSKKK ooA%&|,;v=___,@ÇذzzJ#>>Π ugfe1O~XZNJK{E"Ľh@ am ^x<&7hPX:onC..q:H__S?i??~ZZ. cg])T$**;4g~<4[ss}ddi6:4 ]e/^쓐:9GyڟR脓S-wb;߄@跶hlHM&"K h">{ E"]eeU"" ]Q*PHM }}v]W)ܙ>nrHsnXX؄ zÇ|U?Ɵ1 p>]߹ʆ#G j$CMMjjҡ_E.Յ-c׭L1cƍcyo[ /ÇZbc: ĉ'ec P[dlʕB/ՅE|^939=_Lů\IBPXH_UU̙APƌs#GraAc2K__ ð7{6^8#0>>kz+^_5;88x+^^cb kʔ?wA2{GZZ)W>:tW-6ɻ6H`'GF?#;12RWy3u@v Z[ :^j{14//?Ġ45.\{hK0=DE}|샂45}7o?}oh4%D?|(:-ҢDvݴ>ܘ 9灁  ܹoo:vlΜy4a_F8pɓܿ:eewrjjʹܿ|F2u+yUk+ ]mcн7/PgX12%Le'w05U;s֭B>>ͭO'B04ڦNqqa!߮[Bܘ~ 9}}}_O8љƍ%5#G"fdtF_T~t:t% ٳ߾鏋x)BU]݄a o<:L@!;O{zªJ&Mvfyy= JthB``,0ox[B_OˆKG^zz=o&,;{!߿/s'kGBb/?5]x3~![FJJȑ?u@ŋa:5;11f̰_6|Μ" :TɓYm0LJ׆wNwcE/MM3kԚ\3fPem۸;o?Stp}.qbرrr]t|W,.inlͭ""uhnx{L; nq|Bsf߹~jn^_?e˜n,{E/ Ä6KI:tݻo8q&%}Dp^[kf0h<6ǢKUpaزeN,1uNfwܓ_Qgkjׯ_7oXRR^rr>fdN6࣢Ö6)zDF,^>wƏϵkq<-QPL7XP*]{vߐ/˵wRNƝ+}II98]1 u]]Ç44TZZ(:JB ;oda~wnʔ]h~~CF{{^q|_||Μ??u"rqزŋk֌11MM_ m/t:◢aFF*oB 0ԩGBB'#OtS>]ﴵ/_̝kqPEEȑBBoqv>0pƍc;lttںuEEOڑ)#FFpLSSk{;KBBuԨHNpcW63 ;0 sqpp0^&rS}! h4< `Ō>:y1I]"’M:h!aFF=,z™^ _̞=XT}FmN%xZ";6*^I\ӥnj '&^5amHÇoUV6p7,''S/Kg~}qNΗC@+/Vog5^R_ߌa:|󢗘ņR| ð[=+O^hܡ = N;xp駞=:ծ166S U?{Іh!a*5uu^]PG,?sSRRmq ;vDx{϶waӾ'NLu+a'z}7Ԍs(/ W C,/ cmN7^VKcZs@0vz}R,:J)9 R֖_x *X8&*ţN>y?tO/~`hLRRprr>hoo0yru"**^wgJKM%$%O~K{xϧاN@499aÌ^8E3LVEE=wz coQ-rPWټ9 ҥ11995xSRq׌fˑ;z!ׯ|XMMZRR'wLҪBl6{p##__{.rs˖.3p_>XMM}$][de5a±rpMƊ5.\ s'ф gw߸m#GqF*ї2~|ߧOwSxCuz}RdTUza-CGY] GEPM|^?4dŋ=_O*|lj}m8(tӋŢ|WPѣ͉r%ٳ;wzRP _g Ki<^MMdDEfk5c(JHLNI'ZpGMMSr'f~@֭޶_$qt4z 3Zh4\LLu0]]APwHivvz6\?/[: 0S>Nt"))uq|v-DcBvX%'Ooogqa7q^V0k ֯iڶ-zAZ]+.WW7:.ώMݞp |<:3-\x!$3~޾פI֮ !7ܹ\c63gf޽@vvߢ^" @wsr%f8Y\\FQr))QSBG]c#tz bo;n7 Ǎc#04{d>;hPIN>~ wE7amk+mokc޺1n\NQQ&*z{wl6ͦ(\:s汙AqlQI{} e() @Ԙ#hm8ovhc}͛DD7mN;w ЗQY%##6ztӏ|u@N+OI)@p@]]0r==n0L@.(ȀHێ1ҥ og鴥K_OU:Ϙq÷㐋ȑ/zHB›&ww+N11+zյTu'*Qwj_ii[g&nK:Ry}[g4EEɞwz}-_+;̙]0*勷806\%5lզM׿~m'*-1C}}ˈh^1+/_ZGj*;/7nVP^^(:rs˵Q@ONN4 nvܵˋF5.\StںuiʣiL2ܹz8͏ j*[}v!a""|%""#ϥ !!ӧbǏW$\,(H=$乿8qw%.ux:89kE.? u8Ѷ4FDE:8KJ">XZZZ[9T{^4 l'...I[ޕv۷3O55^|񴎺WXXҚ5ֽoI cƐagre~zz5eݳg޿/EHyy^YY%$55xEm&&&be ͗ut4ٶ-g8yۺu.k׆:)(hv|ڦ'OޓƊXSS+`f^ZZWV} ^CˏiifuN8ss ggS֧̀mu{UUƖ67hUG;6ʕ$R oμ{ A8d;ަwWq800BE j.sJ?n`2Yd+zywoUQAONN : ^'Nxvў۸q%ׯ'x…vy?~oðIݾcgbc_hCoRu(a5T ð.7{Qwap >}X8d޼;_UE*+NR ?3gfFG͙%U a''W_u)uu͏sq1'.UunpioRPJȽW  4X /4:#(jb""?Ws$[g@O;rG&C"WQ^D-,H7;vvzwS7ӏPܣ"=taHH" :f+;!#''f YpNKC_EEz"Çq6#F _3|i1?wbc_8HӏDh4:0 35U;^8Snahq xPcqq!oD,Nu{z38tQQG5yne bH=t:MJJWյtv*;x"ݻ)SXXҢӎMرc\>ZZSKKE/ Zx ^ 7ovu+#9޿ࠎنmyyymp>6&OޥIVˢN? ڨ/SAVG*(Hfmx9Nϟ699h!^(s]U($$BWjjAVg:cb4{={nqvիGg 8 w7QaA۰50pڵkJKp4s}\"j,0 +,0LC, KJj?~,wv?rB_0l}-u_supt4Y& tܸ2eɺq̺z@||&ڼ0 ֖0rAMGG^TT03k(kTTiZ?$乻5E͛ŋ/oCl<^;ȑ!!;:醆|ua؞=&&jSI!;v+/;r. ftƒ2wqKǣ~߾-),rt$ׁ^I t:D-=Khn_ׇœsrLBD*j5+L}o%_AUZx}-rXӧ8e_Ϝy5蹚l//A8L__1&f'ܿ?3Kr)S_H=Xð*ee): y譭 䢪*a%nd)z 2Ξ-%%:y&q~AMMfQGP/Xe m̘]+PiDď'޻---jiT㸮0 LK?NQQF tDD>XVV_(YYi8崵1 fӧ}pGCKK'2:@խ]h2wϟ9aENNoc 7RtڨQ樃pЉ3v:|>]2uTA@Ue!z gިNG+$R0LRR8$įe̠Vﺚ5k5l6lRR~}۷3Q//?>v~aFt:q}})XZjfgwi0ۖ>}mm4oD,NEW_|l99q.\NGG'&BhS%r 9L 0 HDīQŅP!ԩv 22F .FpOC,5VihȢN񗴴FcAHGRRXRR;~ ׽cee,D94w|8WMLL((hGٳaСF ׮%MMII # }}E~-zi1߼ qq!wz]"&&@.΄7MnnVD,N9ݹz5z)szz mmBh.QQ3g|ss˶lԚRRS؝:ɩ5O*RRyowlmu]!;zt|%3gz(%%uk:: S%!![MMkZECCO*zafd43.Ν1Ym.)E8ou\6o\&ox1c_~Fɻv!Raa -/--V }DīcXȳe}bnu>{l]]E)1ZKGGС)= {ɩ5ZY艫W_ˋBprr.]?lɒ6ԉcau mm̢*==EAu ֖/(R ] ðxS W_2 9\`sfGFx{l@@^^6>Ur^T?gbdp73SOOBKLLH=mIvv'!ZxylC,=pٲ3g늋 )*Js=-_5r9׮ ̑ƍs}C|ڵq0d8qt:mJYYnn.o񱏊J-- SE{;K_EϤ=WH)eܸ>7ݲFHH",?#""xO_: ##|R3f̡wJP!ի% y))T~be]Ņ/elmuX<**feNRXX5});;Mܸu}}\ tz}-_oc-,4qҿhǏ|r' /?~X h5jT9〞𰖕;}1 grspёG0 11Axõ{45HZ0l޼+V|ў3g͑pb'cc**RB(~=iyyCt!a8[Zjtiϰ--]qqFvzXS8Nׯ'i&))LTQ_sZNNرHU-_`Ўвz,hr]@vPD a$$ttbb:8Oa 2ftSNKD-SUD0#L\]]KMM ^\9r5ڵ.˗b/sq93(00uBxy׷ܻB第3,-5Y,E|p{;^Ofܸ>D,^ZZE5SE[sΜUU/*QA)+KNy3S,qLK+xGVƏ?nnqٲK/_~lkcĤ{{^Çy_ P=c$.rsIrWyy}RG~rCd@a׻Ι3855u$(ؿbb⇐R7^"(nˮ]7WkkcNaRvvaa/;ɓ Ѧ9KKZڦ,$.7ii H0"╕&A'DF jDTiYҨ2)5 CE-q9pfzVMMSkkknnZS8l_,1c`TҬsrIBBxN=S<#7$Eׂ 2GN]]V@@E/ 6n!o=$dm5oް-["aW  ͼq#+̅4ݻY,;1=ه[Zj촴BAHO.##I!%QQGPc]رiVVct=@N|56~mogq97QK\b29ױps:_ @ϵaF996TttGUSF\ 551cEGoheeõkɨ-S@0֭aÌDEI1h 4^8H%իea!&''#FaGRRIEUUN zzOG.g&--aXu5^ mcZx~~eZZ!S;Yvܴ m Y!!E'[[7{v3ANPqش9kpcccS|):ۯl6b2Y̝{nw|yܹyp?PVrw L`g%4UU5ӫٳcZBvrP@(za㸕I%(8xpΜy: /zz11ӝ88/;{{\;yyq##ԉ~mÇsP@R3q^QQˋ22|Kׯ??aY0 ֖ˣp7?iڹfqqݻoNz0!Ыڵ.NIR8Ϝ9(**u!rN{;Nˋ9  چ Ӯ^M8xyy=D[N c.N7RMP!;y szE/ p?rd[2P1KKGnM1, :f]n.^܊:gL>&::mQ!C ~&jb0hB$,z57޻=f Q[8oHuu t))9ck{7,Wu w׫W3,m[ԫWQg؜96\bccOa }`+)I??̇JxxXGE-).qv>w@FF*Ç?~u𽜜/bbB2`׮%Xl_SQ x>'L>psPKml,1q|BܽpaaD-߿7h8@@)M8ҒyfbՍF;wZ[ }ivv18۰eʔRR"'O ύQwxב#SbbG;wy:{f&ዎ8oꦝ;op)aa;oSkFÅW'=rLLbcWq〮?xbbnr'A?dg12RFӧqA JrdI8o>{/_:hSJKvAÍcc3,g 4Ȑd}h=zu,,4:ahMM3y!::}@nEF()IKdƜ5+9$ehWRʸq}ǃfxobի/j0@O't'ŎJ۾=i(egNEDRT0@u 00P.%Ŋ^8y…W p8?*wwP;wPgH[[>*jA' L-NFR7tѽ{|R|ddDȵ}bgYl6{ժ+ii.a4x3yAAEFF᷊W6o*fР^W􆸶ϓ01`{!Cft:mJYQQ[2xy;vhAO#>יbGD混ݣ&-&&@-Tvգ֮Gƌ^"d &&tČ]?BSzꓞٳOUX'&m EE՝ydYnu69Ҕ ݭX̶oL9uT u*srJPօ /}7l6{׮<ٻw|AAc==?fʔ|ܩotw8|w_Ty֭uu#Fq@8;+y{[B~~eox*)n42BۂʉA8C rT-zatn/_~ds嗨gkT+W'&~pvOl6ˏ}Z[^) &&j11ip:AKKTdiiё$::޾Q -,4XΝ{ză}& b:sra;w,.El66{YY! ˝{TVV,<?uӋNX\0%*,_oҤぁ 〟aiCzƾl(*2_0 32RF…gvvzz!A!JԹE/ &L=}7**m@KRRȑ);{),BBB% .58]]iuuСF6'Oާ1c,cbIX'R'^JJee$*z56~w/{ "8)o6lp?*Wz-h?bkj,8b֫Қ5a=% @ MP@o^t ͣGOnk֌޽֢Ek$AT7t(z!]$%##0Cii]B›i @9P^99/x꣗W v.t֭7>]]-g ޱ#Z^[mܡUT9'ͪ11XZjwӫҥ£FA-JU?8T(_0ZťuGv#՝3l}} , 2g>=SW׌:Qg%%h34]]'N<@Sԣn¡fzzag$Y,veeRuFLL$L16V54䗡(ޕ2hOY~HΨҒ:iVٿal޽AԜ9s֭QM^D__O˗s08WUTTyh.(j0l6{'Oޣa͚>>΄Bo<Ћb0T@__d啣o襓'3йsQ' Nutܷz'fԩvz)uu=>FFuFr'/f͛7hr>}g IDATOOlqVV _?|(eGIIð_ۭ[݉X7Iv?uuF}c2~Z{+s6h4nh`2ږ2B8p'XzTddʡCw6mrUmFCWqq>+V(**BTTฌNڵ Qg!޵䢣X:y͛fl'p߱ÓF?n,ņ>|(CªI#@E cc p~C󔕥"#~tqGAA"0p͛.}&-[n,\xl'R3Ƿms3gI$}Ikk .$o`0 2tusrxm8jN"!!~[;bӊ#Irش麕m()IED,{up0x5~|{/_>~x)ðٳ).XppPL55q|wQQC߫+i?.B!!‚Siiݽ{o*yS:;^tڶm{x>|w@js߾~~p@\:÷I~455_GGGG8PϞ[Su޴i ^ K֚0LQQ ^L&7΄y}m^l6{ժ+)).^Nw= ڵҒ?u{/Ϟ/.(`0孭xER|#clQN jtT.^L5 UJ36V%M|׊^Npa΃oQ?ܫWPg0޾W\ 99ѣN~:IIyOCK54Tx8R3;3$էʆ# )zg65Z8lrꔯ ź39 gg3[[;bˆE_O`*q壣LtҥYjԆ .STT0(27Du6'N'(SXu7^ l%$ⷛTT#".ZeK%!_Q'6^heG}u5ڹwMӴi]KiB{,-5ژKN۷_+)xdd N$'8 `Ґ!tzEE6nE9{}ˈWM ӾW;1Q'Ya׎A/,N/nkogySln*@TTjiiԩvP*͆i ٢a7o.U;Ph q0o{ef~F Q/naQQuMM>];:=޽lꪉ 1=ZZrbpHN۷ [R_r~5Gx˭[6n;n\YTFI93kk!C ۷%p q|BY7nz{+/'ńa؂7n8ɂN/{\%ɓƌ֖GԤ%%E޼$fmiiK<jՕg>;^XXmU f<RVVOx[1ѣ6l3{`ԉ7oq74T279tΘ!C RWEE}|Ϝy9qKKʹ_mǏ#GRy3bIog\|ӼyCQg& ammBF\vɇ lgl޼9((hڴi \ %?Z:࿏ l6_u,\ߧ};FGYYt#%K ood33`%%% t\w޽F$2rogg%ӧ/_NUrrظqW~JLLcN=ZXXfd(qvNz '3\78ndC 0 i+W:k,^si_MM9yh4رi?\:ԷuxP-w{ "̓YKKNBǟ6m;l؞g>sf :q~hYS4^2^l6ﷱ,.ĿhrDhh';7uݪUΨ􈹹FFF!ak֬"##݋CBBF/Ϟ=i^__cǎ &w J6pFph4|h+$>UZYY_~ɒ%ҵ ,ؼy_9:^l6tSN}˳Ekkk-Z2jԨÇaӧoGxmO.=;P`4GGԉnݺP)1z~V uqqv͌޽UQn`i_Y]))I1Qxvvȑ4nyy/_~8і+Djj=Qg)33 R7߽{wW܌a&#{K޽{߽{W^^_OWCӦĤWUquxݻΦg;*k׮UQQS={VW7f,8qbQQ_|YYY91bDxxEEE 2_ Ȉ]ۻϙPf󟦦L) ðv{(B5͛O/X0 yjvv1 pIR0L[[>:zСӦ gP51QۻwCwn@u(##6zӧm*['XQZZt\m +/LAKlvZ/ZgTUe0 ॥NN }$9hP/"G.'˔)' DDɐ5KKk Z?**JMMð˗/իb=zXBB8'111VVV***WTT0eee :IHH|xPPݻ/\#%%qƎ^ZIIIQQqmmmvvvUUUhUVad2eddn޼aXMMUZZZKұ2^jeGǷ/_EW| 166ݻw/a7oTPP>}zMM߽?n-(HvͲ?dk$T^U ={6((h׮]gϞx:߽Z1 חٵkWWuVCCC==[U v4"":dg͚ȆQQԟ c=އYׯ%@~7o4Z9rHWsS* _ H<i~~grj3gii,)Ԛݳ;xa,}-kʚVKYTUB"JQѢ$-"$*Eƾ؍~qg>>{g]cE8\-2&=~8II'^:+!C؋$$\Ӌj9 ""rWWB9rooAx8\\\?$SҠa @,5<𕕕b?$oY ~#!R]2֊qqْ.MMUfz%$iժUփ3CCCHݻw DB>|XVV:Ч yZF<#~11o߂ lٲsQ9p;@,*_茶ɜJR BZ8MUR:B$iG>99u)Cs>>/V2EB 2{ԛ7nklvg}}Ď`eooirs@D eqXqtkYFFpĒNOtP5n]t뎎^MMoG,&##PQL [D#"2ϟ.''D XZAѣ<ƍ-Od_-)6M:M yB OosuEFeeG󾡨(jo'|舳oiooݻH ZZ2MM#~)22H}q?=K\tt&&m8vݷeΈ=Hˁuui:***LLL<푔/Qݽa77 hg||pU!+!!!pvKKKzz:Ӳebbbp8QbbbJJ 4.**\\HRRr7n<~899!pppl۶-//߂?%y v(--~̙Q 66\z:^+i3gJ|X+f)jggg___OOO{{nܣ>ʗC޾>VVnOOOcbbVZEE^v{YYYvvY`` ˖- 7o qHH,,,,7ntvv.))=vؐk#8999{ʇAA҈Tѣ{-++S3wxV)|X+BW hooc<(**D󟴵?~kڴiSffuϝ;WDDdBќ}}~/// ˗-OZ}J "b`cA.q)$A⵴<<<[[[hkkspp={6ss粲9tR"ȀH#ZZ:ʚe.s;99$flLIh:>hԩ璒.۷ihh]CA"BUT<MM[KJ;MX&&ޱ/WkPP$B{{ϬYNzz`b;FFfʺ"W fI$…g<0 mm]W$йݩϹsV2 2g{={]D {={3x6)n\܁>_EE}>ߍ5s8~Y8sѣOBsd+)]͠eeN땘m\y-)n@֐HtNy^1 ~ե@Z Tuz %*oߺoCut.^ٳ,5BأGW<|hQlb f$$ZQVVQ78UZ{{BCŸؾ}+PHI 7MiiFF[ &kjeDyu+B̑Ejq4˜Nko~B(o]F=SWNe Gt ++6()/~ 􅏏o׮]yyy{\N+++333 vvtt~~~ӥ SSS qss2h"RYe( Cʣlsxw%%%EEEĐOUTTzDBBAjHNNkppn۶Nե:Z2@^C# yֶ@KOLR^֯k}+[((a`覢"n]_<,9Z898XeB5{uuCpdNXq;&&R#^dd**ӧžNBDD-pc={ՍVVM bhCy<#aԃ8`0.\z5CE0119x GRRǏ#ݽa77 hg||DzIss;͛<} J^Ad T---lmCʣlsx}}} <==N>M$ZZZ>zܹsl8NIO/fg:|hG''iӨyD i, BAAAA?clH$Z^nduk֭tF?~|Z(uiv'NvM\|˼ 0//=޽t]DgdGsNbbb}}XXX888*u߾}?Zv{YYYvvY``((A{{{uu;vpAQQQ''''N֚~M>}===vvvc=cp@Кϟuu噙7Hg8՘6UIIrZ01^,,XƯyy9.\n_mhx>,<(LLkNN;C1O~}wҋϟ+8gCC7չَ՝<|<2h#OBC44q^ e0%{52.]eu ̙#$tz555iiiqppDDDdddlڴ\\\,$$4~;(G݊g,qg~ҁkeZZZRRRԃ ,^\XXz?#D jhh8|0??[ZZ\]]⢨uFTTT,--K߿aIIK.EDDUɲe~ͭeddqyȫI  MLLuf%888""ӧ|U[[UCC#""ѣPrџ1HΝ;8Nx޼tk5"-RSﯮn} IGGǍ7jbb2~PqHjAݓ6@>ꦏ^ʟ"""VyxxߌwG POMM ڵn7ءTooO`7;f*mIIbXW׈sOӧ"H AAAAAZL/ll̈/xd^\[۶xy?xZKRPwo˗?.]a:TD"M,;5wھ}ofv)'Ǎ_._YG8M͛;܉ )/*C9"$XR2DTHMaL! x%Y:trٳ뭭hmm9,)3i!0} yhu۶mBBBRRR===`0᪪T && nnn"""nnnH$*))qss/ZC*LHHPPP?{,јeeegg!w~ ںxy( Y,,,"##EZ~=ӗ/_B9ϝ;Y7n̜9˗P;C}۷222iiiAx=s9Sbz&Fvғ^΢!M~y 3}ZhivwU`"H\BNJ7-^|>9M[`.%DE}iC~A>~Wǚ]@s2<i!BCCJN3X:II#=08:5h Msz3/ϜYeB $pZ[[2p'̿>ڽ{VVVfddŽ~zPA<ӧO.\8|pssszz:Ч/_.))۷oN8pG:thHqqq߾}s率GSӿI^|GrZ&&0:ǜaYhQGGᰭ-))"}ݺu/^tww'4a,yoo˗/{xx@u~??kii Rbdb5ڶwCB> -ᱷg|fHڲX4BUU| F?JJbhCzRQ_~H55NNal]YLӶbdd~0ÆPEСCHrkܸzMM+Θqϰhhll3甅E #.!ᒒi!4szQ.p?x9ykxmۇ_qhoHp{7i!sS31PFFy\I 08:: fjjJۛA$߿/vȒf >~vA}pڋG r{ cǢDK~0^o?IL1; _CUL-&66,pxA[EF:4'hQs;w-$H$23cV1`bk\UbdtŋoE$ \\lh Gž}ǺnXajv>lEEsCC;2YUXX_]j` Ͳvv6!pܾԩGWl߮Օ˫<EEE9pgffnWWW]]H1c_AA?aiA?WN XX^ZZ*..`0iIIIEE&!d+**B***dUC|ddhkQ]YAA>E(caa6deepfff:::!!! C,**5k̙3?3вAmq \ (( CB$Μ]Bcth--Yt 0Nn*@OO11(00iҋ))i &0FNNpබ.Z41!A4!Rhj$&ZY-ppx`oupgg8PSwo?d;.s3g^"-~d0"**ppzf7UI˖ihxz>?ztZ9sI߿3n.@*Xr@UXX@eff...IJJBTUU 4Ef*$$-1A%==]NN 7t!}Тp84>IFccǷoeFFT[*'@M͉eezzziiiW&ްa[VVVPP*:%eeev|h bB7<ݻ|k[g&=e֖C[ݗӡ-mm٢z<i!(((((S dج,''iӍ[ao]]}۷ߥݒ Hb'O}Rr芇33K/>O zk… CC?^ Y=}zͽ{iq <>>BCCx;::k׺egg޽-&&6>>(88}fffzxxX[[S9x:А5?IIKJè q׭[goo?w\_ @{Ы,xС'OB? kh/fdcb֯_؁IO/RWqp~~vvI2VttH$0+i!(((((S1N'$YY{v>>???+++999KKK33!Y3fp႐0Twd XLs{{F堠@jj}\W&H B!#,-''Y2HFFV HPW?𦯯^ RRkvrtEoXUˋTT< Q?~/)iE^^122ia|46Ϟ} \ЌÝ;)$Ұ n \T\|AA\n+W2HOHHGZ#MJ@kkh [XXXXXZT~6 NDDX5IH}FkjZ%%i~Eepl7SwQQQ7;iz衢ӁzqBw(CU\|JoX$QQV޽4Z7'H@AAAABL/\v01a,,tSS=ƛR6VLM<=W=ŋo0ܠ  ss7o\EDW?(]? ,M;ff]!998]P… IIHkMM. x hB3`dr;o׃ }Aԩs۸cr}}E?}*BZT|Pm!6;x#L)ӏ?ngg(~IEEbݺϟc,,B천<<+Vb&L3MSy3Ll** q5%>WN\ Ã窚;= H -`0 tu坜LL./3ZD7;wl7n zQNNF Qٳ댌.xx< $YY3gJ|^vpe IDATE/~Rffɱc+2lkA:@$">rьyMe ^FZEDDƍ9NbmlRmB5+ULnX7fl/fLXYAA6O?oy\buukyySYYSYYS]][]rtAxy9deee,Q呕TTsv23KΞ}^8e,,3{z>WUU+}ߵo%$ݺ +ojl, Ǐ]}E =ghxn{xy96Ɔ ݹfϝ&V-:C"4 2~XX4[X)"L#Ǐwox}ݺ轌6mh}9sMuhh<|N  '(S_奅OL3m<1LWWߎw, y98XpwBʕ&h:~ϹsFU VW64WRC`4V15 @__uukUUkuuKEE3J*"S*m ;᧨…/hjJGF:ڧ2$4{A rYXZXgdss)Yb -US'Z^MtqYhw!e0a^ӧ#b\01a,,tW ; w\Lk{Xخ+q7<0D"vP`AGG냧O8ZZL~gZxEƍ##iX9qbOENNO:NtZZ2b+)WBʖӧװmln=z[[Ԓf]]Q (/o 嵆˗_+*( qIUU-kFaa]WWllXYY!ee1#P6Aiif H GA!͝խUU-UU- K")/-- d Ϟe07VR&7i|97nlYB(@SV__I__eeMyy<֖]TM__I]q}X0 㵷_L&PFܹϞ}R@AAAAM"// `eehe5?$$-00w[99S7K\/,lך5? F'M Snn 6̘!rȚMA6vIgt^K˛W?y /2 X/% ((L|8 0w~~Ûҥע<6̓o߼F[[wl3D3"H 8\VVh rs^q։^j[BJ 2Y!uux;eeM x|TJ*af6[FFPTGTWZZ¥`maa.[ۻvv7nlp (^HgVbOu6#XX%$DDxxN9ƓsKOO)2涅EЃ;@M:;{CBҮ]{21@=^||gϮ˫JLKLi4V==ESS5Sә40&rr*:/Vӵkuo266O6"e@ς>]Y$z[oz^֭89xS0z4R;q!k;vlENNWE׮Y++09ϴwް!=3gJЮkar/gW=WKK&>>B55ɤ|Z4 cB dd׬)Z_yM11ް]P8#1*."b|$WN6ﮩinkjmkjŷmA-)ZP-DrVUlp g݃H$իgμlhh߼y}N <~n~}9˻|)MH욚V!!ŋULMՖ,Qsʕ ".m񒒆%K.8VQӧu>>F8DAAAA5E==EOUH !=Mv5ٳsNcƌ>>6n!I7on]\ |0󹜜Е+#)<>>jJM54Vl}ƉGjH;g>k! { 2;tlnx b OdF׬k׬*τ#&޽a^}jhhכ7?߽#++hbt0uumٕٕ>ut03cfUWRWVWҒO޽;L![eeM`L[RTLyFy:II\\즦3|T>.]Jq#y9_ߍ h]rrd/nd`=ɾ.rz-(!WZڈwCeذbbP@B11r-))~F?оiH99! ߼yܫ<#D% "w7y y_0ϝ;Tl?nk=x`9o^ ZX uL__ٳZ3ttdʐVA[١\_} J jQ =ޢVtCEiC~":8Q`ffboiebX[/SEgTݣfϖRS]823KszM.N;II'O| ίK21a]Ke@K"DNS2gKBaLDEyMMyMM;/]QQUvww$SWVRpϯyɓi<ߚȭe`m(+OYw;Hɓ'*٘s۷?ݣg[Yͧ6tzR_qϞ%3JVԔ۶ʕvn Y[]]<[7KIIl9<<""< 0aa轛7\{hTRSqgμɩ\B#8x;K'8á,,hԑϋNxF9@WЏűQCʊ3GÇ酂Bk&J#Gp禈דkh;8))oiy gt8mV1' 7%ZusYY˗-եi'r88yx,g1~E`ccG\܁QUUKdpV%{˟?ό獗DOZZ][K?ѧ>q\s޸eL;߼o<[VVP__TPu:PↄWUH$C+~fWQ|`M$'\y)&'74w-W;:zĔddp R]%22]]]z9kwhCC/k9n<ۚ:,vv6ݻxFOii-;:zCCw2ZVf(ZMm"!{DEyeeEDx$$3q=VV7˛?ޭʠS'Ν{VtJFQ F[5rׯs 8LLf.]6 qqyTR6!jk/>u":,lE+/'}i!(((((4#g ǻ66z ]䂑F)Puݺu7^qIH$ N G䀟 k"W3Q;;nnv7 ae~}_99ݹc;AW~' MMM2/ F33Ktt9,WM`5\`w>ݽuK.\#F^.~,6>76n:h ++V\WIIL__zPZZ`zhJuug_?(*WPٲeus` `TԗSbXYwښ˗89vkb99/[[LLfҳuzzY׷CS?YX8EEyEEyŖ.UJHMGDٶڵki ?p~~_-^ʿKk X,ܹΝ~芲ļ>뇋7~ UU i|)Y>hϞ%/CZ 5p?0{2*/͝ei9e)zzzz>jgϮKmlnCCwte\=inuu(+rrN/ s߲ekutYE>suugϖ3y@ny !10!## <ܨ/iiVX~<\筴'>l<ĉUlZ3\DW׈^^ko׃I8l/&B>[ۻ߾"-G>+*,E'a^xrۡb˫25Hὀj"#3xwQh@TU8ujLf& +ÍOrsnzy ;; 6^$ Egg⑰]FFHkAGFV8S(SW?s&6* 䊐I↭[BBvhj"#3]\Z^1Ɖݻ88 YRs>Xm>頧HW~pTDWd ۅ.TuDss+SSqPw&&ҥjJeDpZsPGom25(&khS[Ycc334?']XXWUOou"w~~*D"(_?g)5qֻOxq#\m{sqj;R@ JyE]IAf[Mխ*60ps59ߵO!ƍwoqr2ټy\o:^S|zzj&&3޼/xŋYX:F(i AA;B&k䜞3**o~gffnr"?z͚En6eX[[Ǐw(#eT\20>9򤦦eKh#omڵ+۷k׬\Nx3AccGDĞ!?SR:rֶeai.&曓SX~kn:-:kb !}vx,9wUt׌--iiļ:*, i]{v?$K˛ukjjpڲV  ĄPQ_PPEKKfRӇ'O<ҩ#gaj?'5.կ_5]B|̋ 72R sUbooml fAI$%xp !SR~?<B%dI1l*Rdk$MЪ QwK$*Kuf~3_?ueyq2gι̜~]5oDғ'o#iq)oLrŠ˗4TRRyO Ҳ䫣c[ףߛCL@@Çi]/eWUrL^qB߳gxKK͛ ̬^ޚ5&k5pDS,]mǎuu׆sO}yn@@&SQ],nD)-muMG ]A .Z5gSNwDTaaǏr̓Aٳw^ b/ol\ߛYȳhk^:o7ŧ Y$B3,  >QPajj2֬YBBp99BlB IDAT$(BB54y`jj2MM|]W9;)*2wdcck\g͒b=.(+k M{6_@`Қ5& gGF^4tޠ|L>Ic#D"IMǛFD$ԩ;v,޽rd&99۶=x>GFG-**=9%K.\/дc?Q_߀ڱ +W2|˖ǕIIG8J5`7?DAAF= 8$,fP׫W_@n#_#{g 1'}]Y'ɉIނeL޽Vc!6o Ca0ahJ&S""r/qr245U",<;;}??G KAd2ݻ=L<>֮a0!&6m`wKKM&\y/ߝFҥ͝>>93Ep::z_IIRZk޼Ǐ)/om$/>9d:_o!!.g>+)|ÆNʊN@菈ȹKKK|0a֭nb,;}H-6mZ8~rhhHaG؀ML#<; ;//3|`Wc`Ev.D'$AgGKkrrNˋ vvG!+ee-&=y⥪ cw9@_@^^=ÐG\|#&-=.1:JJ<<ɔ+n0 [p .#//K%+f{..F/;3<ήbPR02Rf`>@_BJ>LM^dOʃ8j w"/ qs/.>Ν{zkkŋ1?o.ڨTի]\Nbg% k[Xhmj'ʿ,!IX\g' rnbq=>` QQX-ڻ{ =bt44PHdiJJ%B֖G VV?jQ9slݺhnLw`0x 3x;.&p -=ji9 1_7q,iPՕ3G,~Okkׇaa-+)kuumGdgnܸQ'9s˖ݐ}x/w{hKhh ںiEDi`"%»w>xz"Ν, 92(;իL:˫tCVV ?sftƀ'u/ <I&sRhW]\I퇍/_P(ĸ}>>ᅅ ]F߼{0L01+EJW)…ϟ ߾8umaaɓv *$tޗBwkk`GJnnڵ!z7o#*wzN;-~W_1m(c-9$?F߸xs"HY{SSش U}|KK?}:R!825$y 7ԙ3%$ȩp̭[k54dGDnV֭u,~XNN]NNmIIs_߀ ~2YT.$4Nx NM&SrZ*uW=q4!x`{L>%.pB{N'##"--Š𖈜xk}aaF"@&S7m -,ͮ7UT޼H&&xq{'$dg` jVVZffj#kc0ϟ\2/AҴN9b B@@@@\)z֭Zu'>އk\Lٳ̚)S)jp.bee- [*"**W(%1rho\xyڵDXi&Xl}/32-_F))|ӦP7/ê11{q_YLL.]koHHЖ,).BSR*}}泻1ԕZI"Qp++-33*+֯ur^YߪDbAvc$o16N ٱcѣcQ=eP蘘o9MM NNW6ڵO-^~&I$ Y`]`8|bb A4\q %% wĭowwH$=}jjXz{֮ ij|nHZ[nތ*{LCXiiO^BI5NN??KEBBYrr9H} lٍ}y!44O%%y6V+ !$Ka1TWcTʕsXz[,&B_@@bhh#Gl2e۷;w>~uRms|Ps3+W9簿}U ~~zr5["%%FC25{,S޿/}jjʭ]kbo?WBB1%K[ظ)mdah²UTXʬ>ӞҩSo_vr2p]- e^^ ]c zC C M]zܻwGīW?=|ubjsPhW| Jts? VPPDN04ieec+'L,pB1/ g:!F;8y _7L#\**0Ak34͛+W>ϜYl8$W!!ZZ\9B 5C` I&Ξ- +SDIM̋>u*…+`'OF}Xlo?gE,_[[X,„ RRB²ʊJK KI G Lu+>3$uKT#:8Mzf/z{=J H㛴cb&z-U}ӎJCʪ`%kk-kk툈GҐHw3@0/^mprvp]** >7 z{޽SWUNl7h6o$VTZX\MI9 cw-# 3D}P=Сj(NN PW8/[Ôc$t˖s__ɍхv=/(8+%%9{uu˗G} ѳ0߁KwNGGOssk/_v0 pRR*~Pɬ[I=ur//8>YB ?$99![p S.u>.|CM Q[I7ut9͛<#__i,0~B x.[,-?}d 1Jۉ|QQDDI$J||Iddޗ/S/]mgoavŋ|rU)(hXָ**Zoތ-3Gq^$0 /^~I44UgBJK:_Lg,>rg߾55ؘ},8a[(44|-8\fliw BB g54dG}4*}G˗ı44!F"$4YCC6"{ۦ ^Z_8;:;3} E X,}*J"QTUe/VeɉK>xo/,,4 d?:FPj|X Tv?;H3maqUXxSLMUn/ӧ[<**:cnC^lpg *j7 b~(*JmcUbDF斔4Ϙ!hzF(zѢ+c`=T*MG[뉾}qz\RRɬC/X2cǗ>1q˗ِUX^Z=&fEG:,7wUUYk=J?w=#ffV3{$e]p&3̙<_[Yp`{zHʊ (qˋwNEEkTTWx|ܭ[hBDֶ>c߷ VSrsJKTT==cce]]9s~hN }\^%--b(zXCb --]d2sd>QQyZm11𜀀Duu]utG2*0vXS3zPLٳ-`w/ָ{wh̐:{}U~C(l@ t#G^5At⦄1i 4YRIP孬4tt!C ·H$ii}{=Zd[f@(rTUaVԔ{tːĪ*Ltty?~p;;=Y5 cn~9)鰺!֭=ʂs7ܹD"Kw^bi9ۤΞӧ߽ygc{jև]"++VlKJ*߰៬Cjl010P#RD6lڊaHyCYCNPWZ*>4/^@`,336j)ܹgn]{vP([ *L_'))I RPg勥PUP^2cXt%n!/9qŽ.ƃRii3 Ca0abAACDDNBB?u MMUt^P<nuhM'##"--ŒmQѩ0د?гk oiڿzlI8v,2.$38oLG׷C$>2j9b\IOZ޶m_lqqӊzG@oeW^4଻c9)/Fy{mB_h~Da0xyyEx$W**ߺ݅@@@@@-z`o?].)/oqr+i(4=;6:06#+Z5gJ}g>>>~[1E֙3JK}Y6̑[P!mۢի ƸhUsH׮ -i^^޿o=sȧO˫;|VVcWFq1RUٲ1G t37gCCGGOFFYPի(afG k qĂő#Lt ѷ*+[I$ "" EEql̪N !ի RO[[wDD΋_p[+2l@诨h22PLHIM75bV 4O 1+""8dNKDd*(k͘!6wŘ/ZZj9Θ ՟@\tiݺyl)`BOiٲ0pxaʒˉD.ceef?_*en$$ԄŒ! ׋^%#J#"?~ss`_ PRR*cb}00imekǁ1'x|Ɖݵ@{EE;wֳw$|STؽp,0mGDdg׮Ycr4&{(_pjSw8|fL>[} HHdڱ˗]\m==D<WOO+ۀWMKC1  AJj֢EhD ϭ_?e쮅Q(4 fp56vq } 2JJR]t% \o3fij+)ϝ4|A >&.]]7ADH$JWW8ҕS[P*[e-ЁPLLp„ Ξ6"L2_]]vܙzz p8l:hoJ Οwegcyyյ`w;;}61Nw>xz"ΝNssȰl<EVxcYu/3KOyRDG\S^SfjjitQ1vh4iZ x ^h…~,>&NNNulmn\;[ʾʈDܹ66z? |/++-v1b'?$7o7o6sw_ "2U-UK&Luu5a٪ '-Yr@U!/,ak{3-#: -rtd2ɬ7׎Dcuc4pκ%K"&0)5k FҚuygμKJ*OK;B ;ؙajj2ٳYA;;{;:z::Dvp8\C>$AE%%IMMQ!ҤKWGp8b{;%`6"NDmmh4;N8颢TU fɉ`"x-!*V](ӧOQWLLf1F|RRW0caÆmmOs(B#0 EGGOpp)RRӽ֮5nTږ-k?|ǁM< w^uum~o11,С/ D"ܹJZVVZ?ؽ9KB x ^?%5(~ Zq9_>}\*.[ +;ݰrv1bZZ?y O3BCd5&۶-ebwZܓ'r Ym߾sjѽ{_n۹!%Q(4 ُ4ɓKb텄|zcZ1VywhLHFv0+1KRRh|o@vK}?$99[JJ064ڊb 6BKKW[[7Gg@&KHIJ IH`?+*J076'+:#*# ?i|K.DzzH !uG`X,#TpO~IeeE$%KI O_WמYUW>{WWQڒڶܺj FALWW`覮[||KJn]t2Nɩ`W,%+ϯ=¼DO;wo_e?{JL>yH L I.*:?+nyz"NXĪ@$,{$8:0ȼ_A oGD%Kžsf=`}Ba~W.3{4k"1ZZjj՘*Luu[u5ƃM22"0tqqAqibbXIɩ˫ɩC&Lё75U55U165FkDb`Շh<K@ x|/hHF >Π!8%--,*:upȖ0ؚ@"QK"#'\dt4"TV 7Ph,CÙkAAw$+^93y݅vwDӧ[C&Ss^HvD׋/[vSSS-6 F ^vvpYQ}DDnfIaaV }޴cӮޛ7M]_@^^}||i\NFdS8^;ýz*[Vm-H$ '++[p+~rnn]^^}aaCAACGGTT`**ҳgKfϖP(ܺܺ: ?IOOXdlּx|` !`0x<hkfLM'**8X߶&_΋',Pqr2g/@+*j ۉ&M=[ՕW"fe:9FHdƍ~ɫtuzy=**j vg] >OOĞ=K8_}"Ap=gΙIt:}۶'ٵa0(o?~RSQHdiJJ%B֖:#nn# xG…ϳ b011v|oxƎJ$˗!. L)̟m]KXp.;a//3v4?$'W((oڄXdd2ɓ?M:hqݽyj*U6!t$!lGwVYRXxvd2UEq+==?N]ch830MF70.CCeYf"~/_2!XbPh͝C 1fqp8\1¥ ήZyykrryJJeNN-D309w*LLl4ft̢o '.'67w@TTHHXYOO6D?y*[]]X,B7L@OLLp LǶdeEG-쵶vEE|]W8;j 1SORV26V62R5Kի/ZZj^Qz4}R%%6B&S}|£ϟwشi!Atzll:\]\6yׯs rSpsޗ\qpp_˗xӫ҄24/))h'ӹtCL̷6;B@@@@@H$ҥ_l'<RKki ~u5a_g^x|78:=mmoTPKEww*TUTioomD/""r qp?ُܹ\}}{||iBBivv-N70ifffðX‹~(vao **fv;h4z||ÇUrr[d+W|JOG);f;oqk'+Wsh`pgWW?s]VVu|0sOqOW`"?6vES(4et]:ъDԂ (hi{VäWOo48#e`ڊB#\``} ̜)Ruumw&}O+W껹͟;WKZĸ?gdT@-,4*e50:lv"kc ֒c;w ^Z_K +W>**_:8+TZBtLLU02ReѻGigϾOK;(3r&0g[>ʽTVo ^1 R,xԽ¾?#8Phw[[qq9B#eၘش U--5.c/ٽ99btѣ߼ɏ٫.ZxPpa\o/_*+RSQ]S.T53S33Xŋ1Uqq^X>~,޲qJQ?n@쎎SSU766#Rpsrj^vڞ8b\(ڕ+:~ǎÇ۟v9HIIuXa??gݻ=k`2ހqiir"fۆ PY$΄Əग़ (k1Ff͒T;wbc$6oF8:}1k`C˗Y_ -Zfcke5V=mm8\Khono',p8"L$)9.)9]FFXRRHZZXJjtL?.{dd^zz+׬1)-m hݽ{ܺ,%% ##e 6e x;`E{CN!IOn?6dXX6۷Ϛm99NNAgάڼryyNӽ֮ 6mHs/\~(=6v8DpHd)Yk F;WZ &g.ܵyqyh<)E&Sۉ?z޽/G_i8^ Z))B & F 'R!XJC .]Z LyVzz &hiB9 .]PThiyq]yСpM3]9s/GGԣGsm.{J,9hauoă44^}0մ4Tqqԩ3lltG7[}3w{'o168c-%% NJä蘘"uuYoo+؞oW[yfDD.gezƨt:ލvpD,϶֤I%$IH:`YK\V|h4zz:*<<ӧt:}RggEFFn܈ I64y(l0K\C Tehx= z넄Cp8cG#߿/D:eEmm_T$$TJJ`tH${vX݆[V~IrrC-8\fFCEO)00޽/rr'O-]^+*Cѳg53f[7oaYтyZ AFWW/KhibhZƃ %$LGC.""'""`ѪUs)1رHI1OrrrrjKJf0pNΛevұ3TXytu%MۿzqzGk׆46v||pDvcCtϳΜyW\<+︻/8sfո6 /i U4ɸܕr31:xV>@MM-КNx1Ôg!4 -\\/@Ͱ\ L]Rבݵ%Ⱥu&7.$F`JJ250@v-.88FUDE2+bo9.#*!Dzx-pGQ{qH IDATQ7ZXh0Lg |FFffetO[1}Yz 'oUVQ( (qbD2b\43:ؿ^ćJDDݻInn/֘8ߋҴ<-H% '&&Z`ߑYݜuLn ##}}ZJUWc!ƢƁSeA dǬ/\: Cw&}D;gxu|LWk_N8Ν )~ L?UsNZf||ɦMKHa!֭Wr~=}22NHKOgNLsyfe:׮p=G̬F"KK >P_8"0< IO HXN UWcz{e-W@;s]xxsx$=$Kgg,2>Pjo'RjZ'NӒ~).n|:͛~p|y2n\鑑yνs\Le&mu99M 3 fK/Xw͖-,+B#0ЍaXsí[͹z|d,8"pKE*&&?ްr< {u/8gΙ #\Ow8ssK?~,nm풔ZHJk"u7ׯwWq u[^~~7SRi߿7WeguwM36V?_d &|ňB 2jjxƕ+ecb=['##zH޾ND/Zs+ yqJf%޹{C kiv_Bݺ1JMRG\w[3把ݻpa1Dh4zIISZ*>4/^@`,0f`og°UU ׷9:#jݺyOx@$ʚy`(fl4?rkE,Z6g{_Txz>\D3( ?dq7n_ݵ{Lnn]Z*3# ,/o13S_1p;>>}qMMx񵾾qv6tv6RNNmPPY5cVsϳ|̙wfImPQa=g`pmln+ѐoj8⌌ zRi!!׮XȨbi+(!ŋ5ػ˙oUVkk-ƃW|*x:tG[[K2O5ćf\ִ&MXVءiBahuDPϳOʿr''CcE'r8d2/ׯ͚%}923=Fp8iٳuug L|y.өowwH$ݼEggBhl<;2r'c2YY5kO|zjHmZܹz'N&s!/[Yi^–fإ{99IJNeDDa+Wk,gՑ0URZk޼8B=v|}c?|(2:;{9{3"t@X\#GlvZ2guuq8b[[w[ikb n,ot !iiaII!II!0CK\\HFFXRr:C~=4 9??ǹsi098`s?bXM>>UU],bI3|$)uuTUaoxXY;@PoN0/KKMDW$&Ltu5v_U)7/6'RQ[Oϼ_s糷owsjΥ^b ޻F;gg׺ݹƙP(z$,> #**@--5fܺUUUo(-m^g[8!!ÇyyxCaaպWӤd2R^^G&7LWVR(t:}99 "QBNѴ$ "QB^^RAARNNmkkݧ9;[z@~ S a֬ Z;ily{G\mj:ԩ򂶨ct&V:*hbbvQ(ToT++={%/ի-{=7O|GVMml㳬!,Ԅ 60Plmm{~=22ڷv턵k'_$z~72]f1.v3g9:^ Җ~I&$LHIH*c`uua4C#^ΪU~E_TMMӧ_iGee7kͷ~~L%˞J7OrW}󮮷*+)?~:ۧ@k ~sJ_yyAuurr*K8}cT55@RRnJl LH^j@R}bT\dt#B[S(7o-)7NG׼˃3{s? LdÇ}ff,p! QN/*b+m0qѢ8hXXX g.@ {Տ"QҒ4i`!RRϴз22J32Jx\ht#eeCD ~.ƍQQi..vCd|A 9Vws^~(^J0pLiW,h`<aTړ'Ge**w ~򻳳32 :ԉ#oaoefffss+멠*Çs-8uꅿ|b~;I-bз8p22E **J+*JT?tD˗ pqp'wJW,@s3#"⻿|\\ɂfڮn"--zرzsfΝ{L&s`՛7xQӋu]>䔗45Ȣ.DkdYYݿb{{s,``}ݍF8a<>]SgͺUJ8v(ҽ{bX473F:bc3ABz>{4c? S^^ɔ ##@uϞGw?|ͻ)**cbң^Ьdmm`m=xĈ}zj <| ŰX, ʕE67^>>?8q3_{yzru-\pt&=S߾&%$%'%U@*hid܇7,~AWWqÈVVܽ! fc3dʱÇk L}Odd=a $'@ddԹE/^|CupVy.f~a00HNNmʂ<-']I’ {{Ϸ$uFHS-11/""5<[QQQt'O/H6fdVfNYYZCpaaae78i6WS(샅qc4(ŋ..f09}zRq]~XfΝSr'>|X_O$XL2޷'Oxr[ ~;vţw*.޹D}p&,<]pQBu!N`?UU5 PMC8lS0:Ǐ8P+O?ǗpA/^l9rTy 8wιP!(s#G<8s1%Ǐ?{<[._dCIjjԩv+V.= z>;8SDw yp-;;c;;#EE.WCCI>>q?~X̙3ӯӧ:4Sukhh67?D 4x0~=q-iGBPVa7nڜ`60P=vlWǏ[3t:s|ӧ"; Hpv6߿ߦMɱod0!CԬtnjѵ ߇'ә5YYeMM40NSSNOO3Dl/whsr,..ğ+m9i6ՕVVRl'-N-kI&y.wbA=d2erԢűwR^^%0CZZNN#5T§ׯgt̙.]9Ng^sTOڋ޽yx0;`4._Qtlca`,Y'C=(cXX2 &p7K  ҥ7޼h`Ԟ=Ox`YZ9Kж\[^^(^,ajո]pҤSii c#"͞}OƬ6Y~&&' +fkƏ?@m힋aM 0_-z꨻v|quڷϾrU\zަCDF.Yr35pw'\0t9' هRGQ#Ξ|bKYh4ƛ7aaɼ_g F ͟o6o\;'?|w݃j֮q5rE0 ^c[3xRt7obhHѹtLMn~jɫWa0w8.0- +#+t###ajk¾^&; ".,58X _81@H$$|9kEkޜ8<1qpEP|)++xkƏ?Qz?A//ZƏA umf~R]ZWפI4`dss^> ~XggG(>.z!ܽocIk)޹v!;vnd-h[L %PlRdD4e82bs\nɥ͌ԆfSSɓL2UVV{Nݻ e IDATeu晥77=<[x+|#ܼ`JȲӧõ.kaq0g6KK$6?~a? wj27~hCZZIZ lm #"-p81(hMDh0 X ` yyq4}щRʙLQׯ/xĩ+663.1hQRR[_Lm473o0q mC3)L d2RYIol D$f)*JD@Suun^!7>>gқ)߸]b! '8#m?VVRt32ehxW2|` 99)S ߏ옣mS!Y8` sʢS Dg11h=̧O !!I dI&$xP {<> L&de%H$}}I$55N4q`Fvޘ(=W bxqWRts,;N ڼy۔3Z )Qibc#rgxس_Xш,uL?@EYuk`RRުUmè_(oww6e˖vƏ?1vށ0~۷_߿}$=tAzz$BUZ[^xm-473<VSӨ4y! ?>La //㳌MNgQWGb~~ML4*47bof*YA^*a5|ۅ!ќ =8v8=_99ƝaܿMwQx8=&&ł T[[ 5k~>0^-Wnł/}3|n1H0AOEOp3FOmw ޲f6AÇ^^]edL<4xrOZ; m[24K KÿʊO0`ȫW `9EEh $ 1ggvJxѣa-^,X,ʕE~T’n jn3LsଥKGsPXXMFllfLLz}='4^7#Otk6rfB6 oGQQ .\:: 6ҟ@k-29Dg Z:%//g`^Nllgaǎ Zzzϡ7}4`Oٖ:w&5YZ\\,lm /-_@ϟo14?~OX,VT0{)*9Gq b SW!Nh6fZ?JWQAFKB/)((ɩ~HVVٸq'V7Pfg[` /ysvGXUUBxȾ}޳qð3H]VddjddjYY̸qVV& ߸Сtܼz**'L8QS ֬c-JGAAAAOWKJKkDDΘaac*ܽc5k&3]жs\|~C0Ҕ̲2 )*!Sɂ5e˽[;԰fmKC<:zի>MaX~E, ;y<%K<=gUVR&L8Q]Zb12o%X}=I|d 4v^@*/ZCUU3V}=ڵ7Wnnf2a4>ַً23K`x2r{?p K^78H`BsY֖Ғl e P@A9qp %%㳌?V P(́_QLYLBGgs"yV! $&&MKKJx,C$J3}ΜOb߿͌HEƆ#G66PY0gΥl 27׹xх?޿vr.]Hiu '@E/;t(n k׎z!0[{C:41ٿfu& ږP(͙%%ŕ(BSQ 4̰?d>wڗ/|ݻ,MMHN6  DO OYź$**_C`m0iVsQg΄hLȧOϿL&rbb. Y~bV>_گԇcǏ>Bi&&M"WoXc䂈7A1d2Ǐ⌌RD,DI$$I<-59gM3+h[/X 7ZZA3G:Z\\"0' t󦫍-|ҥ7LBBؽ{-L]&09xpյko әa0I&ǏvBTɜBB'R8 ٳ25՚9s =MNg}St갧`ȟ?tM]]U ڜ>qcc˗[9t/o;Ү]%%5,bXjyEZyJI2a [9R\%))0h 0AJJR Z23Kab!<wk["Οj1 Lرm)^5knj d(^jYIǟֶxeѢUq8KGkiii)*JuX֗//Gxł4&zS+*ꫪ(UU UU UU2귇VU?-11!"QB^^RVV\VVDR%++ E$o[ZZ7^,i]A/dm|/,,%mO,<շL7tǟ!--g?DĤXaY,HXZꘛk[Yu>Dzz b1#F sgyLcyn–-6}ԛcGΜ9ɓ$oJ d23ˣ:Eg,3s0{Qjj1d9KPBD?igRX,r(|AA][:hrY@/.0$@tT3g^=%7ML46mk'\!!'vBGY}l2bbڛ?ggggɓ$  %%#O") %)E'Y`鞞G M@=G>MK++"'ӏfdQGIjjQZZ1($aNg"\}b+#މ߻js3c(RQQ_UoKU &&ؼw=2Q]9|kV]{b1 %i(i`O;w30o楚bϞ} -.i,looZZr`WҮ\L& :C3` -mmZRRb۟hѨ9'/g6?l#\vLL;+n|ot:ѣK"wի4/HctMMȑLMCͭLR4J?f ^EG@F<}|LDVV ^^] Qtu+A``eO٦n={^Oﷳ t:YkYw'ONUQiӇi GcǢ_rG5nL&7nV\\d\k<dp''C^. A򱡡 ^#Ņ5*Ω`k8!BRQ!HJRރ홁ϝs!çOg_8thҥ\4Xݻ,?Ty]޽n} a; Èݚ%KF=ډ֕MvvvssYSLGǻ 8f@9ccE%XynpR~'n:zhu7\xÂߺuk…ODdDR8`=ɓNdgkaaz:{(//8\OYA1"qX<+$@˷JH'ŇWE>2pQQϟU;+D…xa<b`fkVrPDHHmla4-,SRVP"TT()I!EUTq֬ឞa\vmS_st:sJϟtYB%miMMYnhg:=Agn,w{}ࢢ"$=iҤ`:v/^κn`4={=|fxA ,,,߿/h+PO.CU]ݐ'*Ey+6 JO&"Æi,{zСj[33|~vvFȸǫ~`GL Mׯ_z枊 9gOYMttimm`jIk/qo\kŏŗ/GmgY&qc@\\ߊ?TPPPIhhjuu5޽{ :}vEEE۷m IDATl^z~ yyE~> fhh(""}zzee9@II Yn\\ӧOMLLĔ[n 4H^^w0`޽{2PUU`L&SFFٳg%KɩQ Waظ _߿r?x`Μ™r]֥}Æ l2H "&&˗|b͜irnBJȈ[[khLC/:G);gWcΜyioof̈́Azi&^kͻrO2jiPkb\Y{?-75 j**IM-H-+e0X<*$BPTRV&()I+)I)+?(jsV޺oG by$-=_ ?T:c0m=IJDd7nI8qm"L&k@CCE,\ƍ+Ф((} {{nٲĉ[l x{{&&&"˾})͛7>|A˗/?rȩSx3f<uٗ/_zzXX !!al;rI$ӧOcbb\\\-[ā/_䔒r޽UVm޼H$6lԩ^ڲeK\\dtt4 99J?~ҏ?644,X@RRٙm,;vzիWD" FP(Hׯ_EV;vúoJ]pիWq8\HH6Ϭ7]J/##n8 M444:eΜ !!_h4df2ū|QUݒ^t:*!!'8?Dhu/#**[7++oVQbdwӋ]߹Wx`%55=kɒ߿ DGG0`0~-p!Ⴚ6e͚nȯ[ "h{ -.h+έ[o55ݲY(ڰ_[{G\\V\߷o/N/~pgn?ZMM%%{ݑYYY=z5--*<jU__d2: a,d'g?~P(L&͛7,III0 h KLLh[nݽ{7>uԩSsX,[xDޱc ##}U@Zn; \.`0^zԩS?6ff'N<)QV s%((Cs  m -Zdpś7~~֭#++>o Z'NNʊt;;s甽¯][r8FMMFMMz|:YQQ_\\]VVWRR[ZZ[VVUU\\C|+**(%'')''(%''A$J*)I Rbb򂱱F@/Ysʕ8\te`ƚ""+b1ꆆMlj}3..+&&Ǐe0d2Ef/\ʯA-+V%hG~~G"\@ \yyyE V__?p@dϠA Y222 nkkt Bedd+$$b bbby$Ƿn0qqO>}… QQQo߾6mdv&H~ӧOƍ;zo[UpttDZ6l&S bg~葡aTTիW?gdo;vQPPPPPPPP*М^ A,q…8r-44!hz:: !!)YΗhܦ<{{?**#Lf|>\ϓ?~yG332Ref&<֌,-H;IGϹrwŋo>,5gp;wVĤoߣujj}}m|oн{>(Iu .] ð? —/_p8;; $$DHH۷odž;vIHH;v`.7U (;;oʼn a=5K,0ёWR } R 6+xyb &ӧo~رz,+4]8?pӸ>0<]XXx…I&m۶SNNFa:!wÈ/***yyyȞ#GuVSS Zl]UUçLҖHMMMNNN۷oOJJtulm:ujHHHffa&L[DRTTb?DNQUU!,,ʕ+HtDU=zt}}}\\\dd̙3۷ÊbǏ߿?zh555R^[CGAV^7A?>p_閇 KZZz鹹on'~f>E})n) nnS6o݄uHH̘a8rp-A[׋PSy`%k |+fƁO>q[ WNN߻GtwĩSNӧОu/oQX^fX6lXn)fϞ~ڕ+W9rӦM.\g--- YNN#`[K ϟ?eʔ05J;v,ҒF!n^.\شiȑ#͛$؂]vݻwӳ*899]tiX!D8spp]L88";*znsk8&M f^cǎ}E7Ww]a)++_~]MM9; @ ÇÆPUboΝ UF *+뭭O,g6jjPAKJjRSbc3BB}c6]񒍍ne-25=4a { \Yw>~jL@@|h藘? ޾h}䟦6e's}CC3/)CBBTTTw8p h_ӳހa8,,XTTTIIرcΊ '''D"@QQ}VTTzll,7oח;v۷<<<h4F377?s d2m۶0`0ӧOa^x1HTUUݶm[SS%>>>H]X,ֶmی***8=*,,7~%%ҥKVVV]o\|Y՞|QVmJ|ƶyioan?yvb._ ɓp su-ƻ K!v޽`ޏsISӍJwD1\;pG-att4Y0Fm벷[ZcyH$>}͛7g 9^TT4))ws]hZŠgCbURR 8hNlk=cj\@-.s$/ _*z y744ڲ^\\]A?[5zz<=CV"`IK+24;umϯLI)x49 W'O>߷֭+W:9]6{ÇsoKj럪-$εk'$|E-^TQQÇ0 _zUAAѣGϞ=C2+# ;+//a֭[w܁Rlmm_~]RRDnܸprrCWVV0| aÆڵСCӦMa8$$DJJjذa0 '&&4440S]] @D2NeeepO[_rɓ'gff&$$HX_`uuu>Dn8"*PѫGPV/A+s\1ߊDڹiS{{eO \~]UU5<<"22D"!y-s602C|% ",,|ʕ7op8 u'֯S:uꔁAJJʷo`z83gp;oU@E/.ԔY]{Nrs+7'&vDr!QKx ׳62\#ݞ?/;yu0 HOOWRR 555bbbH8D-h] 7`oϟD:ðADua^p?}#ٳg1hhƵ S׎~T=腂LeeoO)+o66޷w466ϟEOoׇ9|+֯_ V"`)73IZl#뗔 466NLLh[nݽ{7>uԩSsX,{2ѣG$d ,kƌX,Ņr}=콳 p/0 H$y0d2u' AEfܸ;w?66cڵC.D@'#LLLBxۇ dee}ȅ?:m=7oBuuz5DѤ p3!$3os\AG.F~ L>;333%%e…k\mܹ?L>~BANl߶ reeea: H;wffMH|\׸g>qwo/i'L߼ʍYh=$3JA@[[|-u;ceeEDYYqtG?*3sa6̎Yf۶mׯ_QBB k֬ٽ{w||Í75SH\.ȑ#+W.[h($߮^}nncӦ}}][[{Yz&0`M/ i51ٞ,:PZlb==ݫٷ&ZX|wea57兿< 7665_wZ!^o޼ikkrQv$YӋdڵDWWw坝`rO8aggP&`M/ABCCVtҼyFxHDF})SyDn$Us9m!o<ɼ9x,=gkk 2 4xu 괴4AΜ9k;_mM6ihh0 B $[K.*χ5 ;:?xuuug&Qy $ Aqᥦqy?y?9󸱱];:z4Amuv|dY.wpQHU8:3LT$b^x!V$Q ^|%KJoe˕Y|q7_`b=&湸~MHH(,,3..cIId z]pNxN pQcBB[8::?~,|sM>o999̜9Ll6{׮]h4x׮]l6\=zdnn1gΜo/wupp066޶mr>qrBAGceYo߾>hZ ٠$Dx@³ALo8n(++9<@8r6oosR :~d}ʳ/wAo̙'E^#VVF{zZ~iT ڸq䛐@̜hox1SŸ>54^KHk\>~ڐhٳg .444\v5k>PXA$11qڴiԊp8sssAVnݪ#1䚧NΝkdd4{#GmӧOO4III`gΜ5vYp! `?hoowرaʥ^ڻ׃ײ&Of͚oo!H qPv/__Ç'$]ɇpŋGYKKKmÆKS>RQQ_[˖M}dڅ Ν7PGى{#4jh4ܹsoBBzu#{~``01ڲeXxO>9u*%4 $~?ӃFHAAaгgW޺bAcRuuk^H# X˖ @Z[11P(u5A$4}̔0 _dݻϞ=;pA!!״,--S^^^a˗`06ȐdAAD"m\")i  `K :DnܜU{OK| )))9]BWWdӂHgZ!@$'44T/x1I/눯ӧ?zT矫 A@ ƍ}}}hp9b٪_} Crrͭ[ٳ'99ɓ'ŋݻ@ 9sfΟ?/̣6}YuuuNNξ}Y(LNUQzAAd|z3u钜DVSC<#ծ^]Z^1 j+01:jƯիۻ'H#W*&23?૯و7-Y|`nCAN^  =XK ~:^P?ecݶlٹE~~}pz[.^ݠ_&mm_]1cþ}rs~m;Aff?wsR,|ws[[ԩbssMW=֬ SA+~*|}۷כ7oï8s?,u떩) :::/^xp'jAk׮]vryDO  =PQQ vvpxOV&&cґ#NjxynƆݻ~ѹSׯottĽ{Q2yz+dVTWBB~ŋE[Ѿɥuf,Zk~~t{bqo!Kˈd~q8?n0 1 bDɈӀ޽{/_H _  JJз3Ԕ(ZMMMh Hׄ4{?}2!p߾[_| swM1aK sVsWnףCWW+W֯XǦMϝq7$lv--"HMMF ARJgϮnORRJ{z kپ}ڒvHBϷUSS#H$i컒fff"ُ||24 A׷pBfccf͚7}( P.ݺ^|;2"fffK, TT UT0JJ}}:(fᤦfM]!4eeeNpq8(*)+:ؔ UT@AJYPC^]݁cttGopTPP+QW a2E\K뇩,.ipN+ہ woű[qGa`jhbb0'&kj{̜餬<FׯU{3k(7nŊ?|}/\X Ç%;v02>wn A(y#+ '˸Wϛ7I Hn޼)Dzи :k1Y@[j*SQQ8989\\L]\LGO6Iݻ))\./ aq4~6H-/'5wt"q&8GGH95%&ݻWT_fjnVbz aa898!JvY$R)}4%,]]]dzJKKKKJ55<_KK;:D"A4Pgg{؜z==>pc-]8ާ^{0w5^Sd"nZPиc-[f0A|lߗ_~ >tuyx|K##'|m[Ν"9A^HqrBѣ UYZ8^m-@h"D"A]]M9up[z4˫OH(s'*cZUE_V_! w--NHɽ'^b_ȑ #cП]۠G@A/h$81ew$JJ tUT\%kkc773<l>_[P4Z6*jrdd FWo} UUE}jihhx#h[JJenn*XЍY*)9*ɻe;>ڵ77hED~<J0D$RڑqnjA4a4bRllytz` ~R߹s]e6ߙ3a[_+m}; H| A2mǎyy63{ h>>G[bt2/^|=sFux<~t55II;G1 Y^Hq~ǏPQ*JURYI)/oa00ip&VVF"66;8`/6!`0kjZkjZխ6.( q98`x ET*plpw__QZ"ûren)))N p@ FEE OKK- MdB wpxiiqqIInn+;7ڷ >jm펎kmmtG..` =q#7.-KɏܤѺ?z\9z4Ō) zA#1rv~%б1"D"*$tz Zx<\& Xם;40fR_%Tx֚ZZu5$1<koCj0afbb!9s\溺8x0bʩR`oKeed0򣏦H2LA4:0*Pxp_=Jy۷__Ro/kK99uIPZ8 ѩn ^2 |ѣ ߈DeJJ'\QQ>"-A"̹2={õk4q8V"RUEf"bh舵8{{ 52a3)866͟&ɴrd ^_VWrյ\Au166ƶh;;-@䉣.ap Тm}VDG{HF m_oxh!B zAwټ@|dyaz_))7^ rU >)'q"-AWVF./'5WVRLȝdb{w%n:EE->Wڽ[n-^x:;{?4E#ƨTzu5Ք11ѳA;8``ngxtݻGHH(ͭ vֳuH8^SSG}}[CC[}}{}}[}}[cc;EDCCmcclgEڢŚfe&'޽b]yJ}rs듓wI#_pb-z2_!^ oʪbu&GFH}@E=<,,#G3}nLpD"e륥C6o) ϟWGFIHJbvv:}zeD -;G"u$'coDUWS+*(ee ryy ܅ ӫrDx6 jjʖFVVF66F eg#`ÒĢ %%ŀɡ`KX\jn$:IR`lYYYZq0 bBBaRRq_*<#,]fOpwZB,79$&EFDo"իD>F!  uqqwXܠ G߲Su.y,]sr6obq, | )P~;gˑ#,- #d׿nr%3snpAT;ή< W>!#")`0(,cNƎں5xӦ iE56]Ƹys"^Ljllohhohh/[X.8 C33}Fz/ a 0D8KЅJRMM|y}YXZZb0( FfR"33 <(f29^^ƺNJt)3?xyR]zf/Se@0"A zA˺y…^5B<ߞ;/vw3˙Vڈ!h$8p㏧m6[!Y<? ໠ FJ9.z`Ϟykֈ&@`Ϟ}^~P| IDAT< "r76vJX,uq1p6 h˖=7onvGdNrr_75տpahƄܖzcc; j ZsmbOV@DEDDxt4Btz_CC;ʠR)qtu51xa0(4%;`?}ZRz>XWD8hɉKݑfs>,yYF"#'Z5@LAA/H(zbbэYeed33s'I~KAA=+9W|IK̬=HF $8^LSRz{ش)HWWi?!A/f;}PqPEXvłGv'$I [HԊ6dmmc`mL= bcsvYVv =t[K~#@uum mmm=(**zHFH2[Q'$ݹ2-Xil "KnhmeL0zFXnY[K%-{KAL>_b] zmm=.^\*Rm-7::zMGiKa:D zA@ 4ݻGxP]݊F̝;i޼IӦK n=v,l,jii'O&5LbyY@~ŋg<6Y3 h~ϑիv+Mx$#cHvҳnݸyt{!} UYIFA::TUaB)koqw?_kqv_|.24tҠLNX_Oc0( eiihgy@-ѺQQ##'~f99+a*י MM 壘00enn0.RR^źfϝ;i~y3{޸g1KK˽`hb3q  jhhOI)MH(ͭP6>,}<7e]ܹԾ>ҥ~uxI ͽ};R[|2-8>5 n23w6whӦ+GQ(1j'>ְ{AH}}l&`P $'9 Wss eaa|.o<5":Cr|Ir^}fx(a:Dd zA㗖6<=-CB\&M2w ~ڋk^2mLӧ;|@u!4|Oa0"P "[drgO @ȖL B0C4qɩKN%펈pWRRJDUon(LA$Z[>HMHObuM:N|}\ew?~\drLk=EjΡfpGs,]ƍ^ּyn+WN1'\mO><^f9矗c$7"8WVR|@[[-Ƚ/0](펼>_@_G::IN HXXh5߻WXXhaa|ʕS VĨ/%4..ٳ*mmp GCʠR4 Fa-0XJR]cc{rR躺g;O(]BɡѺ ]{QYI-/LAd$|ДVie~~ó22vTSLLc29%$=zTbqA+4tGs--]'dg!nTV9m&_pʳ33}P %+vѢ_?λ\]\f\ױgӦu{tu( BT:n\$&hjj3(L47ndWVvL638}` HKbUUTiBQ 7 3>H &(ܻG!!=ɉ$1(-BII1 !2rrh褉RWWBoi2HN2Bjn8gKKKT@-=N55sFQirriNNVpĉupw7v_@hyqVBh褨(iwJ`:DqM99uZ|}mQ⦧W&$&%,- gv qG>^V~~CrrirrISS՜9.!!.nRUE߂ijps3x| H(2C HT` LN^^˗ϟW7X\ss)Sl,1Ib29ϟWVUԴjiMf?scP8m44gd32OV0Lw3HFxtbllNRR@ 5)"sX[rr=QQJϜG.a Hf'/D"H|jl::Š\NN&FF,$sOLfw"q7)zss03!I"ZBUUe33}33ssss33FkEo/+5 Fihŋ֤>}ZPA1򲌊(G0Z[ !xNin>"]]M~PXg A(b]wԴ͛>yD#J#2L};ǛjC ht` X,n~~/_V7Q( ooK//+h46UUdf{zXAA~~6rr^ʪkg:~~~~6S::]1 =RQQ=9"#8! $O8;>-=ϝ{z*@r埵]a;4q8**H)/oTV45uuu{{#XGG; ǎ%>x@'7lѩT3I~Z[=*}$=لN;@THx;w=,SgNTxN&w(FX@25՟Sĺnίϝ;),IKxxN vvv6v K>|7+ OLu+ؖDFf޿ :U!J  xLCҵfE&()bnn`jojojgff`foj[j^}A8̘pեGfXם;40fR_WWSjZyLA zATw7,R]MF1 6Aye&@PWZ,,l,)ifjjNN&f..8xQ'L&'#TRփΜ4kc@*NMda"P9wQl{'<Ig H@K8փ؋cAggSmmD=a-N")L& r Kmro.(hʪɩ˫aLӧ;̘(gx3)866͟&r}}l0+Bah *hm ) @1]cc,VH32`th,V&YX0Ofx^vvhiwmHM#7'-6aIL̋*49yժr\yq`:D8` A~a@h)0hH S{q&:9DUKJKJHͥ SIIt$3gg\ Uɓ&z, G''8Ƒ3g:sHWWs{:vm֭auu9'v {[nf] D@Q.Ұ2@B!K&wt2Dlijijn"; &XGKKTD31V^`oGFͭb75<NÖ{ zzNQQ>⨅dr,E2>>d@Ajk;l67+69ZFdʬo%'vGƫZY7ofutNf: fh  zA~a\_55UxnAhkvq1(WW3-Q)a.`(4uq1GӐ$uvffVedSRʨT% :sVw73?lwvƍM3fkC>_x^LlI [֥C hkؠw/X xuƎNkh"[[MMr/zAѨAaPYZ JKUUT@`iick`ii(H]WW_JJi\\gU!!.AAc-!),Ʀb0(]] ]=xI,7=2!09`XׇN2v%?o|v vG7V{>P+*wŊ)|/0" w΀ @ aY04d2JGuu5uq1a0 C0ѺJJy9RPP03wtX=FUu|AYٳϫ_f:SOf7m= ^}sh5<)fp!!J'."*+)55<_EEw_p-4j<DRdrWss'^h<AeeE4m?)\1ȑ'O*Ҿ{a%%EEM55|A[xx{xXxyYMC FÇ%EiiJJG8Nkmnoimeh4Z7ʠѺ[Zmmmm=‡'jXkdłl(cc-U>!0)mŊ:U^N>qv iENtݾwҳ.oo(Rpމ7˗}y7矜;߾__Q Atz[aNd@h0y >ybq)p(fnh݃l m|֨}yee ֌d^VU DtzdrT8 ZZ䂂V.1N1-Pƴa}ɥ I&/ Zkk8t⚐WiE '~%%khDDxZ5 0-d zAܺ6<<0]%v:B$R| %cca"z*VWVWGcP66VVF66 $fccS#ʬ>vnn]nn}~~C^^ާfm5yE IҾDa:+낃GIGGo`y9h-B]YRUEB++)tz:%,h4Zwk+ByZd2B"ZZ &XMMMtMLq8],VTbuh_}XZźn UYID*)Uq..&(g _yZ͝\Ǵ|1{HfCF/%UKQQa |Xܹ&TU<ɻy3{޸ph׮_y{!BI0 ^YIhf"lee` Ϗ-zw!,rԴֶ::궶h22620ee>_@&wjkhZZcc;H-b`emmdiidiihaahee =;@ ԕ@ut8 $5(gWEDxbgϪ|Fƍ RS~aTTTU kqQ:;{;8)wO9fXvAD=EDE֟ bS"_ |QAPQT@QTwYؼsvvl }UtwUTWקr9H*-2D'2T e27iz(IC"ȴZN;R6l]/5*p挹N$B Я,'?_їdH  [.Wl^p8,\@ZJ99h2wht攗^7}}w2N6mDW{ |G?ٮHq}d2iFTT04ە;D6@誩1;g9wΌh4xn IS6JuB},,55:%DI$3 Ūε C!kk[mz+ rY4L Uأv8PwPnwF·H`,\QU5}K/}}dΝ'O>{- "uɍaD/*R:caaaPP@F[Hՠlt>cT"ء{Y,Cb$,.V#ߞWSRMXkyV|vbiʹ}t#-BT J%VETZ("F,𩝫[CYSq#FeBS;wصŜ0F]wHENB/>wٮKltd'OTT\|rI!@thmY˹ssZB?^V'ƚ0|򾘟\E `(`X<8J yy]J :yfXUeD >d2&L(5iF8UUo=cljkrC@ꁜ:2yk|ٮ `0ckc^/馱eO!@*@~J$<(8=KK?ЭqRrS~rS.m/t_4T}Ν3{A"O$:RYtXM&/xAL7xpС2݀jx5Cou04CN2L]O~xM~ؠA&Ak!mxfZb Nmn VVNTtRFjJՏ|ZMM~  >)EEbug-~^}R9~DcfrP,0 AJT,lN ?Xy󑯿FcW]U΢ʸeˑ͛VW ICG_}m;W{s0 9c~9stu#w@ mZ2͕線I=(EPB2BeQJ"wZ,&GKht .4]-0L(24U˴Z^/ɑj;U]m2YU!buYYNiҖj[o}mPo|{?>{U.7ݤʗϟuF5n&, qUHZVht!elvɅ2)'T"ZJ5N'hz\2JL&wKccZJTVq 9StR\C,XMQ*Eqѳ\.졿S%|@ mj4^"{Tm|dcŠqӧio Hi]719u//?=7t]Bۏ]o3Zd̋νjܸbxXΞ5ШjO:<.s,~u+4gΟ?m!(hnvL.e0L&WKҨx<6e)#鐥47WޮnwhSc0ޙb(bzuĐDb6Fa2 4\NCMmT"4 !MG]x\34T**R!ؑ#KKs:04xZ& ݸi/AV>hһlz:4+,1]P0=~ÇGk-h!QrP.\( e4˗o۷v֬;w8|>%x`O97'n|tӦ4Y.@Ǜv<~:k~bu '"N6epNxV\jݧ7T*ŠKfϾHz> ^t!> M[459cz¨rc\+Ņܵhj47;mJ3tOD8T"QJZ-F\NT$+`4Μ1Ԙkj0a .) 4H`uw-yӦÿV`0HpGnq|po bŝY$ncUVWP&q jU ˓gBGT0ʜp8jz[W6]F ״N'j%r#a5,Y,ZLM"b&˿gOߟھpXH4#l#\M=Q ??`+-)/ucٮлd-[LB5 +/u%]5 SjjW^a,38^\;)S*]; /驧0Kd07߼}̋&]ASc۶cر&Nv#q(rY^>j1-3KqC$2V+ٿ 3L/8f;ȑsǂ+>Cz zBy [Aʐ5\6fQS\.KHJV+h(֗J%R%8'q(1=FbLnk&l6q\.KY0RRjR)TX) NNa˟(!JtC1M rD' rsփ=sTWgY4k㱋UEEbuQJzYgɒ ￿bF"ѸX, /t]WU~\tC=ab1Сo $ N،-]z#x .p!VDJ$"uiigxl6l56aB!T[WբYbZ :F qE9h fzEp2VIu:F#͕d|Ot0H fЦ,i| Q$Iq{M _Wn|:L0y򐊊qBȯ۱Ć l6/Һni/G M}vWts2ڶϞ>}ܹW Ճj+w@OD/J,N<řmu B38qQ=?Qv\,YHs[^g6*sVg$Z9FӚhSDJHS[kY=0.E `bUAR_x MM,%8,m8Ńl6/|sb("BшU*1%h\ط}\z[} jTUԴT*(,T"TL7c Fcq7ǧMf,F>g:T*>|K<9O2weiNjZX[o@ ${^о ?T#vnmhZnA(H fxTX "nw&Y- 1<8Njjw޹ֺf_'ONnsvo?eݻO3 Jgͺxڴu2Λ~]m177>͛l~ [T^>F8{M48,sԨ džƵk_ħMQQ1n„R/~OJ%Ӆee9٪*)t;XWK = z@ |Yeb$fyjE6 LRVILc"BD[(Ardz, nvEGt*k[@M2R Kќ#sp {ǖlz[S`CȞe( ʼ<J(~ ,F1bQZݽIj[34yW-^\nxFZ^xaFoI8py<B-B/^bRR~\B&H$<0/=;Glݺߢ?89tԡLWę/ BVl A!1pZrOXC QD'RD8 +Hх4FL.$NH$E~"?_˓\R)v݁^?̙P{ W7ر|ʱܿYV']I?8l;B{E=k^l1 ?f,Xpe{'qw0,Aĉy}DzP( >GPتU Nvڹ7TuM>ܗ+. vz{͝>}Lddԩr^};{ʋ/Κ;::uo2 &Cw$W\@|b1O*drڤCBR(k-BVr! h! d2!}d*BHZ"N9~TǜgDG@6R NI 9Vۓ<~۵\*+7瞏~ }?>j}Aӏ|x inv,X-bS ~+,G]{5:I^=}ڀ,.}[[%'7^Zs !HA_)L;իZKbdg>ksE2qIdxSFt ”M;>tV{2dRڔ0!F"]-įce @ٮNz@x!Phiq66ڛ--fGs)j%L)rs幹,0 ;z@ Dn߾hĈ<&AO |ާQ4?ܱ8RX,F#Ӆ 0+U~\|G(D~6vl6u tT;thnVL.z`Z)"OckxV=bǦ_ *UkHl)~ 9K]lvY,^lu^o%p(&H0 >-rE"DS(ZH.I|lP"K$<f!_/ܾ|v 3g^ _(D(ñX, l6fpl>#q%LG*Q?˔Jz;AN]uҤW "RRᇧH$+߼wTDp7<{l6=|/gSI̛o|mY1gpG6qguW& t.9vsTX V.8Pmz8VǛk8+v 6`<0$b7 R̤h: ;af3izrMjItDU"J8~*v|q8,z)TB&Kj$:8U U \N;"Z,2]--NхF RZi4_ڣvO&X=g7+^zi}y>zaާ{V,P,K<Z^Of3Q@6¶X*"J|LQp xo2yfs:}v&|> D "H$a  br,sbX̕Ʉ Hj4R^,qtO?eѢuoP7gy{i~1*[n皻^:w2F<_zڵwƁ(u}Ww7k}P+QUeWd2J3ϔWTZD/ ~.>WbqD—J(Ip%RY|A \-*-8qJXZ'sbr9D<]#dLiW4c(MLB]f8-XnDjA`hȔ=-[nD(Lii߾}`;+0|?w@EP>_Ǿ_蒁(g׮U*.syYi8tf'y)S s?OHl}p=ɈFcǎ<$u`BK&0nR{\!&D%P FNZ} !+P( Ӆ0Mb#o[RшZJ%efcT\#Gt[osgt6-x.` $48~ݶj#?B F81 0$H$3W j =zTz祋sbަW_Z$$//'ijjtϸ\D$BD "hbd(o#W>+(zZMs(1yFMRHܛ>8''' 0 D8Q2UUFc,0Cݖݱ!FS R%q@Ga,E; ChdKS"E"^QR"Ci"7Gul80ͅ' }i4bF<|xnGHj.J CĪf>.4R)RDZj%JHi4((ua8<x /宻ϛ7>7Wg02lvE#NgRKKWTj%[NxD:e Y,FN4ƬV81ffZ,S (tn㱕e0RJR)l+`FIʕ{}wפICzq-x$Z} ^/k6ԩӧN*+kjL`1 EIDRWg?d_$E"4]曣Ԥ5!0 EiqHB7˓[DmJ|VI{N5~ F"L]AD|? a9'5A?D9H$V"D|JHK,Fyb1/'t5)Cy&Nt>.YrP^AjCa$ހ!C P-(PS>OfOy'B!W(tHU1J*lmHB2$P{Z \RT\9M >P%QYWgu. B!G hPh$%%Z$ IDh4"t`MM9%F3&J<y}e7ݔ76*qlv8|Ԥ? C3z>2 BٳN_pM73R)?tR '[N6<2`y^~ʕ?lZd2M~DZټ49>n2@"3,R4hV孙JPYGPz +}V,r< '08 X Ţ6Xl6C"D|' D"PȑɄ,tL./]R8P#a zJ 8L* /G vP fIZsRʐUCHXEidj&pxkyfټ&f>\ʒjX_=xsNU?}MwułW}/*R~dHܽ~ɒkjLl63#N0Z+WQ(*X)wAoraqFWȅ,Ҵ|>n\~D PqIM$I&zy< 2ȓ˅B!YӢ>0sHK첁]60۵z z (*C)iٍ$H18< EYYxf#Ihc`0~ |M9 ۼ^ ~ $(|Dh$|>G*s8L&d2q0LaH0%Psgn7>0=e=6pzP= fj^ &3a~l7Ot ZF]}#$Q XڑHtj@ v>_0|ȂHA{`0hV Ibh,Uf6)qW+r2_W*@fȱa r("Ca%"Ȣ+ Ln?HC`81XrYE$FraabD\6)1 cL&#h443TC) AP:i\@pԃdX80$I&V EBH  yd"QݘX$W,DFwaa=wߝ;ukeRJ`0aA)*|~l~DlBQ'0 q&A$I"7>,p,e)"/@'=ž x.f4NٙW9p8v" "@pb dJ$$_IDAT<sT/(P0 fVGL$p8"h$#p$ >_݁@ SI l6b1l&pKbjAqkvhhhXtUVSS3h $zhܸq~iEE߸qcEEGѵa8M,,,+?LwܱaכϜ9SRR uM 6nQt^pҏ(CTVV,aT">㱑@' ) KyW ` \|}Ա9s&ҥ=$ut񒒒jc۶mj3IlQbLUz6h]AOn~~mӓjb5*q2jW) uժUv%H&L[og^Lq M"nûM=6KFdH D"1@*^>b|D8s`nD8x? $1,E!V#ϖHR)rHӫ8|>źG"'}7_Aӓ;zѣѦ[7LX t'=̻֎t3=&]D&W dNi(I&駟3gO?yMD//\ :.!P(CPQ7Ɛ(vHt$ҭ97!- FQ7NxWiBuu;vϓ~l6JT_~9/ꫯx+V<:jǡVsrr0 ͝8qĉ/_'9`VPPmKV+:!q<}#I ]zzRu@_{\sNMnڴ骫ںukQt: +NzrkQw/ fzrCMOv\)]:bvV\v%I5F+@HNVX2D?rd嗗LPzu#Gves&䧟gnx啊W_eŊ;Z>w۶Gvxt߾ſԩ_niYS^Lq KvnBT.0 |;PPcpV^KVZz5NUN_… T_WܱcGII\.饗qƲ2FCiZab1wΜ=o矿⋋靂P$l/kb+_u|jˊ!ç?a}l/5kܽHzJ{7tPD2iҤ-[8N{+ 4?,V8Iuӗ?*4TdSոJN]wݥR}Q 0 qO>2dBxWVjmq0LT.a[l3f@ tuSEmz2,% _D6;O]{$7̜+Ln$we2ҟmܹwyhj+|WfΜPYYyE=gΜ0{aÆUVV;vK/}GSz\{g0>z_{k֬!I2y3)|I Ö-[FK#Ið3gKܿL&K_:49`v 7cfZNZ]]/d\Y=dðӧO>|$I)%N||#GxhH -tʕ۶mX,;wD1<7OuJJJfiIZv8hѺB /?-^tLҞ^>J#zѻ5NbFGꩧH\v)SHS;dn7oNZěpB'Pe?Z>*Eۧhe蕴Y&v IIf4 1L /QC0 uGP(UͻBJoNl6B`0۽t(Ig^xdxT*ECP(>=vXy"Ir޽f &LoRxOabuuu&d5kH={x 6tϥ;6}IIðjzY @yQ43lt2yFcտ7ե@1=Gv>|0ZJ߭%R^<=޽$͘1cŊdfC\fҩ7!}|>ѣi9B|t+EۧhIh~7TG©nNқ[j7^$4 'SO6w=+++QC0*M%B񆚦]mܸqG7oq}ԙS]lb KI?=Xn{Ӈ^8f}s6oc/rUW >[cckfѢETJ|_~A^C9GySbn,XP^^nۓm۶iӦ+|v777grqQ8O:un; l@7x<2 ð?v/hכB臓$y=9r-ZH>pihgb4sM7>#JUoٿO?=gΜ4Iu .|6nh4m۶dɒ4g[hխu]Xf=$G?|#L̙3K.Dĝ =)uKܺT?;l68'RIoNVfP2Q~AIGܕC=T[[{ŋϞ=;j`(p8@`ҥX\iHuRy,m2i@O漮zQF!J!?n{޼yr\T}>nOģ>Rmp8P~Q$I[ng7nLzx([lL&8pƍQpx"Lwի\.y$~`|]}iϞ=/=9bitPR=@ if@]7_t=KD"ZIIP(ӟroH,Z( !;x#O=޽ð~|%N%mEI& F˗/8pT*6mƍjuܨ{d:NzsRVӽ!4j70y$R$vwܡT*u:?R6= zTc L;׿P(ynMѐ4X='RbE$=gUtś>N|v=t5z@_fРAq֤1'O8qb'Ko7z{SO^-[G6ׯ_l2$C:ku^髿~Niuذa2?Kt֕uEPQ΢!ЙTVVΙ3СC~_~ygdRh} V+H$sO&q?c 2` { t?YiPF׵Ipo@/4h/O<θ^7zУ= poA@z= z^+MMM%۵z`0UWrĉlW<,{v%Ig *+ t/FM:H$*P( E+@dBl<"rrrX}rF(v<8C? tУ=/Nd+bz^^@D/u~.bcIENDB`XQilla-2.3.4/docs/simple-api/Result_8hpp__incl.md50000644001725400016040000000004013273140074016612 000000000000004b478d5fcac6530027ebf637960b179cXQilla-2.3.4/docs/simple-api/DocumentCache_8hpp__incl.png0000644001725400016040000031110713273140075020147 00000000000000PNG  IHDR`ǵ^bKGD IDATxg\SWldfX 8Z k=:Zںu[AEf{MK7p3%!O &yr= bRT@svhn @P3-_%߾}_|1a„#GrӧOO4۶m\AA`e˃}YwN2eȑN"p=:vرc=zᐷ 5k֘1c  ƍG*<<|mcϚ5k娨?'̤ϟO6mϟGv݊|ȏ?1cرc8f;< }=z_p¥K÷m۶gϞsν9r$ ĉQQQ'O\paPP9vҥcǎڵ+.."##:`cǎ>| ˗/Q___YYill^z衣CDcc ,--ϝ;p'NTWW#gN8zwGj[qm۶mݺٳgdc|ALhnp߿xb===33ٳg޺ukΜ9fffk֬{4i/ASNUTT# ۷ow:::fff ,&oﯬ|ܹEEDD|]ϝ;ϧhO{n޽Ǐ_~#Glܸ_~! .\e˖=zL:uСW~3GEڹsc3'WXѣ? t 47h˗/}׺@`܋t MCɤ3 & Ku4a":?JAIu(hl"f dd4,-u-,t̴u,,t45 @ 47v켼ªZAAuaauk+ jh糩 'ͫGWUWl.ɩ(-{8p PRR03ӲѳQƜڒڜ܊Jryy]]5ccM==uGG9NGGȨCF#.m{cߟAmiimzziVVYCC4!//khd:: `akߣE @jiZ6?"tuU5 M:]UGGF{RIIIAp8jt>l)+=KKkqr2;,#xjrrZZ*tgg {`U6m؉DeeC~~%&|]PPUPPU]H^AEE@P@C__]__Ȩ*+)u15xعt ;QFRrk%-[{ 55YYqq9 e dZ h4BYYAGGB\47QR >KIIm~~UA*!hdԳ]CSUU컮Ϗϋgsr*UL]&SҒ.%%+_:(aّi/^df67i4|CzT1561212141RUAup`$|7;ɩ(mhh! mhff zՍR9N_~XGGSĀHvvy||9EUU E4mi#.z!*Z WQ%W 50jkRRQ5$%#++mjMm(!Q`̭W^khhQPWWWW׷VMo?{AsDl6Vrs+ 8}*J tWUm[J|"I'{Nfhn]奥xbx|u[[ ul6//"+<' YYiCÞZ &t47q ss++ss+rsV֑=z4404 /hkwǜzrlkAjmhggُ$4nVWUnllN\\Nllvee3ggSKKC/>/##e`A1VVƚ=?dYTw@seeuyyzVWQXXfs Cظ&&mMC]];Cv8F ahi)wg$QF!>^YfLLVvv9G*g:ZRTWL M&nkk-#~hOsr*7o;Q: (-{*7::+::\6`hzx0=<Jm\\\C!Y^BX@IS7767a2u--u,-tE D"OEkL?礑3G j]M856f3_tS'SM1m6K˚QYVVBs`aAg2u-,t,-閖t#yb' zm\ϯryA˴@M[Qպn|4ǏRSiFY{yY9:2 $ZbX,V1 9N.edҭt--*}jk˳+ڞ_I&//CNk4642ii=m_`.b|K.U&Cs-QQGRTU4z +CC~B]]szz)9"^bUp8<)##M=++]++=kk]SSmYY~D@947.0ZNN]귤F0US(++mclJ1t,ץDWFFG>ybbee}lnzz)RSRR9JWP簔%XBs,F#/df׷[/DG&SWAAВX@ ii)ss}01wBs\./1 "unbll'sp{33Ol673]bx|VV4K]t91Z[9EE_ԑ|$غZpxZLLVBB>\\L;\nlx8-44݄fCsoaSR= RSJKPSSճ5ӷ3ҕG u|ۢL&ZOFU11Y/^xVQQpp0Ӈѧq>X\x+6SLNNѣnj飣UVVTXXXY嬭z277yCs1vՐTrgJX%%5YYmXsq1sv6BsL55w&WGl6lHѣnrcK '%lq rr2vv䈜19'As+ʳ22ʲʲ{XjffZffڦ&&Z&&b-KJ* ZTTzyy`~,pCsp -'ߺ`;VQ1sr592>>,r+.hN7IcĿGҘLvWVYY˗љ--r;l{{C33yyhn@jiᄇ^ΝRR4OOQFto9^ZZ\nbbas3[AA‚Q}BJ#OQNNEFFiCC A2 `^W!rr*3cbJhkLHl-ܠƿr%.**CIInpcݙٚڍ%$45*+軸kҳRohn@vK;驑;Ɋ9i&X 2"VUՠ(ggg@+rv6UWk ަ֭ϳutTԩMM?ekfsSR?ώˉ.h:NN}M5a2X@jmdeKJJj/dCj"u'byOfDEeDGg׷hj*ofm> +3ʕJ{{S[U.mttVMM>οhnUZZ8eYY噙eYYeeeeuAH43g33mSS- I.$#,r~5Sfކ3Bs?N u+>ݒ.Zyv\\vllNff73ׄLABтH.[ZQJ.Hnje+XUP:2lnrraD+<nv?ʕW 3L"$VW7fd45jdss3)@s*KJ22JK PV77ױ[Z͵u̴Zt[MM_d!ɶtv6ҥ: )47dE4$$=jìYMm75 g4jj*;91@ ޣiZZZISS+4r<-c3=lm0Φ..fLccM@s¹{7ĉϳ,,t&Mr>MMM8zsM&%%y'''ٴO4(v4*˫!5LxjjPs3;&&[{424HwwK==uCsU[|'SSMv0]VIzxxiFF= C. )jk[gfr8< t :px/_DDEFbcsZ[9twwKww96[΂]?xrÈ^@q \./1\ oggdc:%147TRRCxLM-lF6YS,,芊rT=99֣GM::*{x060Р:!47RɅOGĨ(̚5pl=~ -qq9w&޽W(׷'ǎĂO nD(eJҊJK32J[Z8A骖tss  0OryyFF?NP8b@K&θݠɈsZZ8&[KYkZJmm3m7zC~X: aiiũii%l6WFFb2mQU "ɓGR>L*STݝniggwmܠ۴p_q@XffСV ˀPdݽpNBnn6l_-1DPkcJJQk+GFF@\;hiI;OHDfsL];OOffB~+47f<޽;n'%j|0#C}ⰰĻw?VPuw5aذdDaedO#(ryo4&SWAA⦴ٳİFmmWWs-Fu:thn@ >{߯^yx0׮٧1ա>EAAՃ)x|''юF9DelnzzIjjqrr9Wde̴t--uE̴147ʡ|䢤¤R6+''dҭu b IDAT5N***’’=Jo2f~LedN)m_\&Lh5JVcc/''ri\)=xrD )SϘ1/@47X%,VWhooDfm,ANNEhhbhhbTT:A}0|}73Ӧ:*,vv틵W/;wS MUU >iee83us~iyyܹ&447 R"ݮeeMM8:kk$~bcCCyQڳ޶~~cQ^yڴjSt(+lÆ+%m:^FlOG>{h7CF*&Н@57SS RR   00аշֳ333⤺1,,JFǧW>xqu/s --)I}ӧRRRnn澾||pb!H dsY|Cu(`g>׿U~ǎD,'"00( Ϝ9 ǏWk江pĂĂ* Uz23˰W/CCjB<ƍϟg+(Ⱥ[0lXoUU̇2e4.'%E۵kI.T' U?|ƍ~~mNW:Q'+/?va`#mm%K|&O령ЩjشڥK od ϯb_)/'NW%W7b2u &RSo|4tСrTGƥKϗ.J~^hd^RYٰqɓh6=/r%}q`hn \nxfMHCC %F~`GrdBBASS`c~&KM+ܸjCCazڹYK;laNKu޵Ggkd\7#tӦ%g1zzT'q"'b4 4q<W^MH(,ry** vv{XYbL#(lׯ(+c2u}|||lMCYpW'N|5rY>QbbX19 7^--]7 L/_o‚ wL/P̀EE\.OSSސZTTԞ={Dr\y1!`ڑ  asr*֬ dMaT'&&Eu~=̙F!+++& @ k; yc,*~NnxH˸#쩎 N5^(55MAĻ^lNN d]wV|YY9c8bJ$HKK}P7 ۞=So7 Fv`nzs޼>>v۷Kቡ rrddhmOMysTLLVϕRu7x,k\Ǐ ]d7j88#g \|SS+Չ:oMtiQFFx^O17mii]QQuQQMaaUaauaauNNEAAUUU#%$P>HQQ[7nS1~„~FTᥬ,o==V s [[}Cu,V:to7oڱc%P b܀J4NWU㗕TUM4޽x4U>>+W[Frpp0ZܨQ{l7u+Չ:~Çۯ\y{G@תU~rrx7 %AHIIt5''ȑL.q-- oX:XAAљ??Ã.==3~;Ξ=C"FM0ïL?!*02y xZvmHĆ߭_?̙{CJ@O3-лsjllٳgJB–gU@AlYcouUm/K.^Ewmdd֬qܫWƏ?TRRKu.!##5oML4'N]s;v0L>{ڹ{ƶmۈʹv횕Β%KZZZ:<+hffڷn-xGQ ѣY- l:1>:񇱱1׮]g|>_?~|nnn||ڵkwagg\秥6mСC322{i& Ç~}}$$$$$$|棆U?^pĉ_ʡ:[{3gΚ5N?{;vLGG˅n244$BZ999s;w R>ԩoBz1eʔ@ &NX[[{1 =ZTTtI Vp_OHKKcX=z8}t}zm>yEĨQjkkO2yG,ӧv;wm~K_ڵ!bt~r~?cpp4Y@HYRL|HskhhPRR'O^nyںheeueHRRyViiiA|y &̊uwߪtȐ_{XVVGu(wUUU:aggwΞ=Ғ\__r=zD^?Û|Av*++eeewYUU\n} çk&}[x!r䝶{x/wRn|iafҤ#uuTgZM?x`̙'B%%_|qҥ7n+Gh4OVVVNN%]cǶQ%%%\.ܜ"??lmm-:Ǐ`-Xp͇ws3zu{iiaV$uuą G233lNboo ''b{`}}=x |%!++2A}͛ߜ:|o9@'% kkkA>ȑׯbžt!͛^^;'DI)S\t}jiiOggg}/tiiLˌ ҺܶL|~߾?D3tz{{X O4*,lեK1(+7gΜŋ_p!,,ƍA̙3gժU׮]+..sڵkCZZZZ[[䚚6nHD]]ݵk׾O>s=߾70F?kkk[[[eeeq_;wܵkeO_uǻaÆw y(w}O>>ik/668]KII~˖q.-JN.2۷_SS4}ynee+Ξ=[CCCSS3 yʕjjjSLl6]YYUee3455-[twynԪn z2hv=Æ zBu(!J8p_rEOO655UVVvss߉wwݳgO##ÇO2ECCcĈ{\3Ϸ6gŋ䬭]݊x<A79Ύ;,,,ȱOG>@xbA -Ӧ37_}^YC]]Un:Pc`EIII^^^TP;;;H'O'o!7anL.ա:GppI>u-==W?~w l\bީc:Q;Չaa+W 4֭$~b.(3kkz넾}MbBUUurhJ/[vF#Ə򦩩|Ԝ7lIcLL @l;0yr9sԩ ǨN!ttt=!:ڵ#y<ҥ%bI.X||}wn>aܸT'n n\Ɂ^ 6o01ߏӇ8Ȩ~yŋ?|}EE9CA7AsUU AAQgDreqؐ ?jjj]ad6oatw=:FP8(-۵뎛ۖC'N|bFm2nT׀3T>]0jޫW㨎cn-;Ɉs瞨?^ T>4_77,8{"''Չˋ7ohѹµkGJIѨ]MZUUUS^gdFϘ1@^'vݵJkj6uv GAVM AyyyTG&%E۹sRUU̙'n\*9.J>}+VTx UTDsssffh6uttN!3ثƍ+-Dvvu\n7WkTEbYB]4ٹHZk++33+XR60hjpfQswV`bcs;$< @@s<޽{xlC}| Y*+KyՃɲ2F9 k]ğu~PГeeɓϞC@ԌD…eeӭk9U~LOO+@Cs|>Wv;+lPۥK}1: tEs#GFTV?߳_?NnP0vѣwLuY_5yg@'Csj|>;wIK+wZSL06kn$6{c͝$iC 6O5kF,Z4,8t֭~q… @xEDnmf[[}H*l]3O};^SSytٳ=zT;tNElpĉÇ: ȇpIaI1Qtt=}sgyކT'o]&S^غYnnEPPɓ3q!D˜9,Vҥ[[/*sxXڝ;'`%3q17c4u#q>@7uۘ[[ -WXΦyalAT7ߺG=BC,8m{ L~hn"1`5kkBu"q&*MFiaaI i3f %ADW۷o*YY̙'>th>vuhn+)/>st4nnT'["W(lnYYeNE^TJm@ݻ4sfSǏGuj<5yQ왂sD'OlԩRRxJ|[jkXXX=py޶x;lÆ+.< ]ibEujl2_'Bs@\\ΦMǍcttTN Vĩ [sx:?(IHHgvW:@{))EÇ^lؒ%Tg̹sQkքl|n ++]PС{۶:}zY࣡t6{ݻ_?ϘE 77ͽscrwZ $x<w3IW]6i9hnUYE,^-''Cu"'!M@$@ttɓokj*O6{GϞJT RR ,: elĉkYHuhn]yǎgDD $ Vs#VE?:f…C?Pn׮;G> _''dtp0:uj!hn](44qݺK?j4W<9|2-lH -WXΦya/sՀZ!C~YTgRllθq$|Q䠹t_ݴӄ> 67ϏL  Kb04Ms1cjs$z0ec˚,T:xގo\ڻ!Yt2>tmtu~m9ՉD ۛD de:yS))S@C꫓aadd$wOxݕ8_t/<{x%X㠰47Rmmspp 7Sʡdg}˖q3f : rs+w̜9GS ܸr:]u߾FT(lB̚߻+;t\ɏTgҹsQ]}{y^Tg@sUU ˗0h͚r!P>X67ׯ󃂞(++Llw}}]GeeÀ[/Fu*/<ľysƽz4cѢs4qU IDATtWW(lF.88Ɉz?{gJu(g<A]]5KN.6l֭_NFux47Owo=S$yP>$47ͽscrw:7Ϝ9`ժTgئMW3ɓTTo.Oll _̞Nu!Y$ _<}a:ݾ}ߏ^&4WWKzfhn"66{3 mm tP:67RnnEPPQc8.\8FP >]\6ϛbY(vȃ;A5mi ȑ?<,147fs׬ ^oRl=@BaH|>?22-00<,,М6uƌ=_~yFD``m=[Lun?Wy:Pغ[[YYeNE^TJeaCu(a˗N—ojj)֍: t dgϜyy{RJ(l@s{Smmspp 7!$'y{ ?d Y(o_ѣ6JQ~93g05:uj qF-4%GDuf8m+tǚ0ᐲsBʆ}7S]ǃ)8رY Tn(lB^ z0yrٳթ"ʕ;++.Yr>)0,lA=47wr%n߿Ϯ],H6aꂃO=g~Tqrڴ`TgXll{oZ֧1Y_ܹ5kB.pH6Ql;{coo4w>w۰JXXEsՖ-1\l/Y Cs4yWij*O6{GϞJT!Pƍ}2B}B6Ё Z|ˇQ zrx8k֛w,|T[EEh"&7"((1c.bcGu(Fm'P,/uٳ PAshҥ}V@m&*mzwg3khhr%.00*vv67s{ii)sٱ?$1j^++]&Q _O=~q4Y: ș3Thh+5F:4ߩS:>`hN:cUTZLr@g%GDuf8mkW#"#&N<&&ZTgʕK^]Lu. O}{9IuO&y2ϯR Ϝ9|sBZ'MxyYS d@WovH6!o]&%cΝb;v,Z* scnjooo4w:%޽wyag@u` nyCrݻ+{2:jhhr%.00*vv67s{iw%̀ș>jٳFF=sIfs׭4x5jt6` t= 5Qۨ$?}۴ii_Cs43x55X̷'sp0z)gcORR܄ uག۱8t}7oߡ!$$f֬@G k^"b׮ɯ_o>{vބ ΨmV\ _; !.(HQ@l+V@,+6Qq(Q)*;*XPҫɼoz 9{aaܹBD">{5y`ܲ%<3՚W=|8n0Щ14T.':Ņ%32ђ7Tzk'p3 gNhh~/^x]Dv]DDDDD)xNIp3YA&}||Չ@UU}xsW񇶫8s$J!Gv3N'TvhM鬢A<ر11Ky jj6nvn*!Kp E0$"""^|9zhCYVHʳeB(44t֬YYIHsq1KLdѢ@MME-,סѰK(RR'Tn::of Ae!!/-, df/^[m! "'g[o=:<<?BBÇOQ4|*?CBVHHtJ[[۷_yzȷDAxP@#eesGp7mJҚiMMK^NjXX;xD=AA8 U;qyΜNNg[}c ]Bʔd$|hVp`={/\xJ"7T3k1P _OPZjnfg͘q,"b,!@Whjǧx** mm:[W_aT~ !D++C/(-Nn[᚛EEǾ|)`s0urEEU04B yioo w{<ӧ< -m55Q_[ /xfjee\v]7`,B(/ (.":ђ}V_BIIID̑wvNW[vxCL6mPHff6am_tUnn];]𾂂/ݻsN[KBCCӝlddDRJJԩSrrr]+Gjkkww]]Yfmٲ!~jlld}/U"55-w%̇OBҨTZuu'Nr45H\C\\='EEIP~~2d⥥DP^"mdԟ !Jt GD#ڽrVߺ/l>g&:EHIIyzzvw[nҷ#JKKY}1 ߿XXr)((@eee3ׯBŋ幹[sNuu#|}}cǎr†N$7iBZSXSX]).H #q yy#11A _l'ZVoQAxȝ;66F24J͹aUUu/rrG9M,$=dLVV*>>>""BXXߖF }?~˗x t0B!rs999|5rvjϞ=rrrx3e WWW0lާOPx)*JB_sʍxpYY%&$))BO^^6NRQQv횎Nmm-F;y򤞞ѣ>|H"233;522QRRxmGZLMMM MMM!t===99^|YCCCRRrǎV111BBB|r/CCCǏonnB&JeeŋeeeUUU[Hp"t===C CBBv򚨨GHH~$ٳ BHFF*73^FF̙37nXTTqƐQQ{8p ==}ǎ .츑j;;;cc㌌Ç{yy bbbZ]zB?++۷<عs'o޼9x𠗗Wllljj߾}jkk׬Y}vV}C%[XTWW? ,]ϟo޼{{|}}[Hv;D[n|СC啕Æ koذa_~_9r$88ypii_:_ۉֲP9 ްeKD=)`PXX:OMEEݻ%/^ }˗*c|e n-((_'$$ 6 01 gh:##B>|FUWWSԖ}a+~~R ޽{c]nk3LBB߅F2v --- [v;DAgIII/_⽤vϊ1â޷F-ڿ?0)9PRRRR˗/ӪU%߿oyаӭLLL.^/ijj`l%%%D",,,! 5BHZZÇ^RUU?~ӧOZ,++K"LLLB]솗RzzzN4 ð"*O ;/rSRRZKII! 7)'**XS@t %dn̈ݷiK,ʚEr޽$$F|[l:t؈#|||SbH$: )QmmСCMMM8pf.\HH֩އg~[WoC~qIss͛7KTTT>|@_ӧOPWWӧO ⬬:KXNhK..//oJ ;zh6mڄ_zqȲe~Q\\@&۷o*** v_ G gg={P=ח2͹7-$''ӧAEEE |3gMM]Zt‘j9'sOwEE-Wn̚\VV ߜ>yAA/Bׯ>|ׯ<[XZZ?^~s6t#))ݻw^^^W\hyŋ? 266J/=t4eݺu׮]~LL B#**0..>~{vڅa>>#Bh^^^999VVVN40DjllP("""-ziqqؿ͛*V+%%%jjjrrr -+++--m l~122277QQQ q""]H@/;n }!3nl`}n~v[VhׇH$RBBBiffff%555gϞ0 !b }8,ڑb߭D-aFƍsNGb\s;qСC1 y󦒒Ryyycc={444F}U}n=zTFFFMMNNNӦMB_iرbbb򪪪%KHKKo嵵? _ijj FEE566kŊ-FijjzzzC=Wo/X_~JJJ7nce !`gkjj6ol`` ""o>ЭVfXq[oν]om ˗/0lʕ&&&)%%EK`w1Xza}n;uKDTn'~MIiCa/+AY ^p ]]]11QF=xϠ111Æ VTT888\zBcc;i!ty]]]YYYK.KHHl߾*::zȐ!.]jk„ ٳ^ܠjӧOᑾ~:fkkk֕}t/;N?~<Ԟ>}SիWMLLkAAAxx7KII2ܼСCbbbcƌ aX:uJSSSJJt-99u3\u*`)밭rcϹڞE[[Q߾}AASt|߿… ioZAW,=᰹rv핖gqDP% ՝J`.~]pE ^~aX@@7o߾񧇪*?鋋1 p˗nMMM566޺u+a!''@CUUU@@BFPPٳϟ篩ia4MCC# 0ooo}}V*F`q7==]XX8((+^0b<\AAqԩ<εܒ;-7LJa(kQsdSS͏=-*'BhƌUUUnZZZzJKKk v7`v^scù Ϣޱ-Ϩ8|}K:=s޻wOEEEPP/;;__]9K-""iwuDZ"#￙*7bcS647S珶~Ⅼ,bX_%!!w [3w\m𵵵o޼0lܹ^^^m-*'BѣG᷸dddFB3P`gƆs/E[c[Q1 h666d2y-w|0իW{100 W\+g p\EEWVȶ83@b!2a~o5ڵk\]]o`rf V\~6&&>]ѕ~-ռ3\MOD ^+0rH^ݚ=//dzfڴiS3diiYQQk.\[bΝ~xOׯ_m۶wt Mseó(>~rna+V044\t)Bh ֭ÿSLLl…o/[-_mp3(bEE%+)m :29bJq!!!MMMoo;::bmn*h{_3w3<Ǫ9;;m-7o^ۼOKKKTTt;Mʮ[>|XgP_ύP=xFUU+ۖ?5}iƞsoT(zEAAVy /;8s677޽PXXX]]aA{g p~}~ VONY28?ߟ qpp@LmmmAnll|QW1|D"4K1맆H$RFF%a&L0aŸɆõN{{H=ٳg ߭z??ђ>I@@6H$ʕ+o߾ᡠ //ԄoLLL߿ŋ񱎶Q x m7R~~~:::ׯƈҒA4h[CCÅ8FpO':HHHX+ Ahkk ŋܹ1ȑ#222jNNN[l9rDwȔ)Sn.//gώ5*99yٲe 3ܽ{7999!!nӧOƖϟ?_~m]Vp)}ozF^^ٳ]Yz/((ɓjjjC ×N8QTTں۷k׮-ZgϞ=tЬYM_Rk]\\!? !tamm#G߿t{ Ax۳p` 0_ۇѿ%))h!~INNnoFx0lPLR0Z`1c/ƍ;}_Ȉ7??a#W^3g}a ^Olٲ &eܼ j!S 譎'p… KZoj7G в333BK.glB*7A&CCCޅB\||$JbC*:~~bb 9ή9>"}DϟzOQߵgD޼)/pN+'&%&?Eqvvuttﺂd}}i##Y==i~~^)diӈN: 6ʼn1rDt^^otq1۱Z@S֥Kf0vpgC<{aeex=p)){ڼ9tȐFD$ %9;N7i8J;v,?^TT-cnݿ)))[[c[[c KKiz| ?|i=} *71~vmӧYpL/[{S J8MLLԃ]s_Сj7ZPPm͚w&$|ڼ93LgƌVVCv8@sKYlmקOk{_!>2i`-p0#%FF]wWSYo|g]wRVGpt<u]@`d+#22bqqML))?&M}S J8ݹQH2kɕ+srX#g'5uϡCBB}bv |RTTrJۿ?vժ˳gDDf<}%SZdP.0tZdЕEl^V`"p{w=|BC_WUճ:`U.~ѹ#Ç_אfb}N|{hk?11֮lx,5x,㺺ܺuu/떖vv&'\\ΓH *LlðG)p}p?̙F'O?|8ʕW;v̜:u{z>}Ca QQAKK}{{ӱcYђs'\\&mTOԇ0QB۶xlWנE*IJn?gLMq|v&A`'˗_5$$d(x}}ɓoX]:nST3(*JwoÇNN#&L=u*a-DݰFyyMs`#3qkj J89}M,⬬c ͛^Ȩ߽hQ`B'ד@%**j=sN .kLfQ/55 9bQJ8ЇP(5k&?|EZZd̿vYS@H>>Ӈ{N_W״x#=z!<*7}^bmW^^eL }uշfژ1ڬ낛@  ỦH<Ѓ_ #$D1 _YL.^|6|gbbR}r0L/--a EEƠAz.p>4OF897+D]|SW3g"Vdjg؟?: gA`g矛2 2r{4?[A 8ϻ<|/))DB![[ [ל9^.*7s`s{V5 Oԭ%XܘJ8ɦNE[[anj!44伽g}T*mKc;v,&Tn&hnyx9!-$iԨG@ 8xpvONo෵5~}͓'[gtφ W6Pz%Kozy4} *7@O\. J8@,==;w6jhΞ}2::8ru}f{3qkPrr.ѹ} Tnndyka/U;={1f PȈrrj# y+(hiQQ66ǟ= :π =n_ҼyO9Ǐ򼼊1ctJ8~|s8|ƍ8io#YXĬuk ᴍODPʕk׆,_>go|PÆt J8f捺ti,OL8bUnY(7@rtŋϷlXj&IJ24T(L9o^Ζ Tn9w={lW@tT]]^dj: ,.Ff+'8`l< ,lUT[}}ԩG|Ot(  vuXѣs.Gtz6JpE$W ۟[BTƍ5Sٰj^^ѡ*7@h43"(٩S GeʼnJ8trr⑑kddNW,,܏w~&vvRP0;2<<)0p̙È󟤤#GPI%`"))Us**":Nf2~x=^}5jԾ'4scCB^8laOt47RR~$\J8WPs*)3D׼y틙87&&Pb@`N@'9jBӧxpdeBCW65Q.a$%Ego_LmmѡOtg |wh05b 0x gooZ^^96͡ff:3f >}<ݻ_g#Z>\]II`}Nyy]?tȁ82b{6GFϨw۶M3g8gETn\j׮[3-,}bFt xsvkdŊ`G" GSt$nox-<;}v) Z0Z?IឞVDt~(/,5|:Ag⁔ E"!=O6pǎE?z,LЯؑ#wloۿ?P BC7lts3':Ksd>CC5}%ܬY/""4~ 6+VL7]r{Bw{ բ80'8ĉϞe*PPB§ի/-[6݊,IMCqM 7~P|FpCO_f uu}14Oϸ]Mt(AKI]ꒃÈۭ҉ԟp t SJ?Y1~~>[[c&ifqԯ}% `Q^^mDga&]N^׉}$:ɠr-Z8j>5aii? UpMMMx޽46qc#B#;?>/<<)**,Lfcc:K]i5 O UQQ|NII* `?? rr*+57K-=˨nkpqo_,6bd% a8?BѢ1yyDga2))c]ٳ&&~&:9oZ|SҥeD\jO2o`e..**B0aX@YNU3'D=ۄBodSJ2]JJ]00߄ ypa-}N@{rhڵ!E!!ʼn%$0= `2z sv몪 s͚˱T*-%%/)) g2g@Hg?vl޻wفO'N88beu$99D^ ^{/.Ғ':KWO$]\n\w~͛CkjߕfjEٳO:alP2pB$B;w{C_o{'7K&OxuHW^`G@9} OO?bDð<{ЯYXS(Qh4*xq`UU={" '!3gSnuxpΝ6Ǐwr:[\\Mt"@O@oN9p v.3`z~MM[ѰGZZ}Z0Gr*ik+GA}}=ΝTDru>7ɓN6!of]qulxtOj2o`%iz45+Mg*!*|FiΙ3|ǎ55 DgaCGtv>wHJ?l_tiĉ;wRS($\ """""].H{HRiV]:t褊 kGՉHwdm X8\s;ps'rrʪ Q%:Q(dOiI_MddD^]dʕpP|Hܟ;V,=SIO'̙ TKtq?^8MTnp?+֯jkkdXׯȊ$"H7OKt;wddڴ<[D0\5HQQρ,k")qb%%%==g 2lVTTTTTC)BSNrxn IDAT٥D!B>~|Փ<=#NL$:?PmWeT0/}ygUTT***B׮]ѩh'O=zÇu񋍍522QRR%mGRT߽MMM MMM!t===99^|YCCCRRrǎV111BBB|r/CCCǏonnDr办̡CBnnnK.ſ[SS#""A#vrŲh477ڵrrr .h 9񦢢 $//ށm%>>^KKKZZLJUS\3g))I?- $iS3m0x@TTS֭m)%:seiyi;]m…-*,,TPPx5a7nϿ}*B(##EEUUϟ?CBBB]p 7榦oݺ0SUUU`` B* !TZZZSS#((xقԴ 0a>GМ9s***oPYYǏԄaXHH>F렑V>V}677ʒH$P-$ɳgϾqFiiJjjj_jii]_͚5c^N]]]<@{%8'mjo!s Κe 0VW̜9yuBiDA0lÆkrr{i(R :`?~WS-988xxx¸8++7ůaVQQիNhKZ[[J=z_6m/+UB7o ;v,>4Fp d2߾}SQQt蔕)))x9q1Pzz:^u2kmS-dŋ*y#U@ sAAK6mFt r}Z\\,yeddt<433={,X@PܲҶoRX,X흖vڜo~̤m۶͟?s`qmjo!)j`Q}Ȅ /.Iپ=,.., JNB99e>>ׯ02Otf,"44`$o9}tII3gVXQQQvڍ7jkkٳRRRGqvvUWWwrræ~ۛ{]N9o{FGG{&*-UWIH0 򺮩)lxDvv(SNDFW?~|yy9):0ٳg>æ~'a엓^=WTTLLԉkn'TVrgvʫ/=:+(TUkhd)S bc?t*/ٽvEj$l UUuRRVW|xCC5DvvBhJH'OWRZ(8O-))Bt &ܴi AX%'B!++KƌђFTT0$dYMM˅&*q~PPQ[J*ܾ!QQAJvv ?B(Γ'((H^4%%?JO((2 :45Qw5} tB99e0T #""toQ_$$D!: g2DѹV]1b̙È7 p? +.Aw8/U΋~٥C0jDDD}H$~IIuu ڐLİ&woQ(""~%"ĵo ??R2qn}}۷Yc0+ט9͛CׂaHT75Q%%%f$55Vvv)\s>G}^10~CwϜy؛@K""?$:G*i5 ir`2 *7 3uSS C~~% ð'F==^6"ݯX&qsO}bBB^G@gl<Ç\Sp4ǝ߼ɺx9Y6P[D~Z9 lWC%iXҞ=QnnAA.Li@%- !:n&˭[#n|ϔ~jzza}}A8ʚ5*!: \*7~=xpCÇ::Q$: UpǤ2edMeի+6o"HjP-5 !yʕܮĤ0w^fhL9 nӦ) _RiDg{@ܧOy$Óz)Da?"#Nz_??@%#1kC<^,pKK0AzzԃsG()J%aXAA2\s}Rcc7ܮ:9 [ . QRi?teetݜ9˖]|d` }븃o.r_WnxWPPz5?z JJ\tS+g>: `޽X<IJt:I D:tB`W >|ʭK6n"(HAP.khJtRi'O&ΞmҿOGU!JLlnW]]F>wD"(we:2 #Ν{6-' vq*ܺuK/@*7+ *GGdg[gNt*)Fˋ0ԩE'OI[[=kn8 |byff(34TRiSHtt05/x7z*7޾NJϣ떢* ,%}Cyy9?ݻmOp`C_466wk+!!ŋ;L^^q755 SFtD"3ݻhނ pwEECϞe||x[qqPu>|1uь7ֺc[C65Q{pGLLʕ咒"s-+aE6F&Hgg02oooz&*Y۠r,D'#G6?AحJ>!$̙ nlֳ`wL$%EV!TU1;0TnݲyU~~ed[зAVUU}j1cCe'|Q\\-'ӓV[۰j%Oψ'\||7IIKb!!k]\.44to%PWђݢ*mooz=@o@˗Et'JJS !:X,۷bk뿞>Mzu >>bF` wڊϟ/Lcb07`,\s뮍-_O":}Tnk=}>x(Az><͒%fCZRR-++Ft 8} ݻƏD`!CT?}Mѥŋ̍h0_W+*tx@B#?03!:EEG'766ϛ7 (/*7qiǺ\9(:z y U22zӈ \bbRvɬ`\o~QNt>fz7D p)7?Fhi %%ytZHi ͞}gg,==ORԩC;xv`޷DDDEKKt'ASbqtWRVsReoTnC`vT۷7*$%--\8f˖OL ъD{ R9r`P3'AP}}Ӌ'i7nsrI&'^IKCW]]g@IB]:A@NO,XNQ 嬀g '+bE)@#RB/is9 I&y-obn={n[親*;Qc66\~M.r(W˗{4/`J%%USy?x!+ ƚӤHuu,ܢ?~^1uj_A)-Bih夠@$%ݻkXt88MiUUu_۶Mw{7@~uI* EskGG[mm縃 ~run|߻ 90b0dunr jDEwfY[P>VY$ii{Μ闞ηPhh(122Y?KrAĉ=qis^ر=pZUUAj^^a+W^?HXbmm܉ZBR,-r{@WNf}p4 *=YYͽ{I fHD&=f- IJyyX55)(rtPI6{^w!ꔔp҅88ruD cN[[sN.,NL]<rL)Ę-K>wRp paiG&Tn@r\ZYY~0+Aڣ:!!gȐ}n@*+-'|gθt66B,[6|͚KџڐR)!vUU^L>M\.|ڴ>rr2Ǔ'qԂq?{vh;QG鴢RvS/w3of ! #CAn4hELg)P 9sNOa;~UU0ZoeM"}1cjh(>x=xO1$Iv#H{NׯܹEmKȐBl6Tn/߾}Z;*7 !BB7Z?߿W>_Q! K?2|mԿggg)@+i\.ۯ_!4O߲,qc$STT٩}}DXVH3 0g@AWA[=- @GjtꤌeUH$ҁmmisrTTjioա VALVVqޣ%c:˩T LPVWhIPWYYj&8|VRRI#}}I_P1k-##Mg羸GQQEN?}vAdkkrC+;瑛Xo [pFK򑚚BwDTn@|nRsyy-!Hd2 *705@D.;|믛oDxDxhjkE{ Ȓ_ %o5rtoL,L2,)QZZo]hAVVk[8^[!&&wdiÇ|A_߾]88Y&+DCCIUUwjj@Krb#.ǟ6l+ DcI{|( PWW_vϾƍ'Nmzz[ڜ26}&LyǏ?ŝ;:oh Tn@lysЮ[OuulyysY%mvwިQ_rm5"D1IJZrĉ=-;-;,|Yܹs')$,BN *7 nzmucqZTn(+y3aahh`0B.\rǏRQQ0`@tt4o` 7o޴WTTׯ/_ۿobB$)((J[[{gϞ555USS۴iU]t9{lKsܻw\CCc׮]!]vY|y]]]#t:Mпtn0{Jq:*+*7>7*7 jkY>>NNz09d7M0aĈV*((XjUhhR@@믔M6|ɓ'355uׯ/,,DEFF?qqqo߾СC_~}Ç=zyf|rׯyfBB¾}vQ\\\UUtҌ7UUU5_޹s'>>>00pÆ ;3lANϰXq:$;FK<@XXw[0x`)DˤI6l;@h[nm޽{px!!!Tcee%ÉLɓKJJ| Ony?߿Ύ۷A0F?P3 .[QQp;/@Ǜ|1AaaaMnl_!,,LhsSRLHNs?|KuV]*}D ǝx}S>7 rs'OF\9JWW w Txԁ.\xbޖt;;lm[UVV6%%eѽz mdX-0##C__D"H#G~]EE!DRЈhC} LnK[kG!2?-,,x?t-''LGIINLXZ:r򫀀XY)+!}n -[nꪺTn}#Fxzz~䖏PSS3uToooߞmZߥK~$*ε&&ZW H pH;܀b[=`; ee)$ɓ' ׮]q)Zg޽-D]]f֭Ɍ3^RRcGyc{{{=zٳ!!!k׮5447 rop7OࡡrtZUUׯL)"ڵkO-S><-)"r/m; ʭwěJ!YY@Z…!fTBB!ܰ &nen6)0&92AT*R/))wV q2}۸4-#W/cA6^Tn8p۷ p"H:)V"6:tʕ%ijvP? H$RǪUQ)m(N1ܻww78'8gQ BwieFo6@wz~~)aժU994rI%%EE %%A盬P10kOG+IIHҪ(%Ew6##Q:ΝD H$n)Sz'$d^}TG#qL++H!yPE[{!܀HcZu_?s30P˃ʭM<ؾձcc?GFJfe|݄ ::*Mت>eeΉ?papYEP&5:VVV]ҹs'Y~–-̝;qw2{;(*Ȑrs"'"?Сbtcz^^}~􍮮k8y5<|m!ClC `sT>fwݻȐez ĉ9T*>~`U,%ۓ')C:xϜ{Cd ff:bW!]rm ǝ%'ձ{ H)J0ђի/m3i=p10P/((p ]ꨔo.zMAAY>9KZwrp}۷o*<iX! `A̙qA񙪪 ڸ lݺ+l6gib`fs*tupgW5._~W}})SzϜO.:ʪ^}a82?äI$ҥí ,9;qⱠ 7Ɔv)?_L_.xü~ѳ1D8ݾ4#rsaOpO,_~nBB_DlC;G&Vwe{͛L\鴢J~v㯿v Ϟ}0 o0RUU ;6߾yy͙3`pkYhS#I{Ǐy7_2co~~Ή]4r8ܿ~6cFdej}J{Γ'p!#66d2ILL"d҉sՕ,8dq{AATn؉s 8%g7ow rTjv6w1bqnx;q=|M//:t-J.;w,=Қ5DgB!SQ76 OZ} WgҔlmEk}9IUUw iϹ<m͛+eqgLB)DZAAٕ+ d>b;bu.{sNV]U]]Qp͉,:;E;65x7#^ۖ-߼~qqPI մ +pvPa+.\on_HEv kCC;86Tff_q!Ā] NsVVQQ::*c¥tZ~~\rZ5jp ʅnjj<@N*%%Ul6w* VH`233킂:AD٫V]cӎ[ĬZGLnWǻf'RX#g=sF$))IL"H$ҡC0/y4Vr LS?H&tBRKܿ>66~~0G@2pjP?֭qgKm%% ܊*hi9y~22R1!(詚v4F"<=G뫯[w97tgtZxx<|lw=uu{G>l s/_N!դr`AĊ*WYYG~L6^-[n7>>=sRRֲΝ{>w`99=̜5<|cK\j{2(6v`) |2qbOQ0W/%~4?w~24IY2nJi~~1u[lmi434TGnA/99wsnnu ll kkY_|K6lW#=.nӟSQ OS?~suŹvYX膇/g'KOml %iaF&M2"_ցrm;~($L)DzAb܀^Llw ,-dı %龮A]=~vZZʸCa۷o;θFd Iׯ939۶ME/O*x{Ř1P?T*E[[57W#?X*rꔋ̻JXYgkv9rk8}z6P8eg<|ADVn;uuŰݻ:9;鴔& "++뒛ض-};kW=ss@bh0Z#Cٳ 55pgo_/cb#mu|ܦMY-N@@o4!!Ç[DE%t:~;h?=$k޴ ADE%PI~dh9eQ IDAT %1 _7)gS~ii5 x.k^^aNN?}'XTUU}NIRNt>…7n;)JIиq=vv?"]vn.J#MFKb?""ڶmү7B AUYYi㏨)<|f։ CK^23~d2i׮)C-;w q:D"H$%nإ…!{Ν##MC@ifeN!r|eT27'ʕ׻vMti t87Dę3OL魡!çI$Ϳ[;NH$%<2~~sssKonܸ35*-f0`I73lADk߾ig<~熹yYK@k9ӋpRP))rq75:rd& @ }HMw =ii.-9|x&LӤ_~2o.kה}v;K;47Aax;k^u_ka۽;  rr2|Y5TnjjsF.TPHY,N|| !{żya&߻5h9D"*=066Ehܹu>uю4 dbpap]]l͛'O-`)2Թs'p ]s` X4F\APd_s+K7,uccNÇ[f 8thc.&|d2Z*&)ᑕ9}z^vv[xTTT9q t~lGP b͚KOϗUp d1@aaܹ=eJG `1*)gÆ+yk\y=/:ٹcqؤLRR[޷koz6ܹ r*7 yr_ݺz޽MqR͛ \Y~9r߮\Y3 ('$'|ȐӦܶ-L&9;ŝK~ĉ9b7lN%'\AgY{zef4yu5޽djhI\ru}@@ĉy[9y޽Sf_ɤBn85s_>]]ݿ?t5 !fs x˅ /TK^VU&@&807!qm֖V[JK+DowYsѢ>w&1 cj]YY{ *7ЊcɤZ'_ ߸ƍM@Ԩca6pr:~ģ['SSSf⥬6QZZu=6bM'@SٿځQG>,,R5`!$''77=>K^k7xru颅n7,r-y4599%85e+/X0ta`GGHC""[SüwK&H;B4B%nՐg'&22d++}iBڻvM {7>}:}z?@)*jBhr 6p7N#FXV{'lm2ϭ[+uݢ`0\B!kil<^i۶MܹɓpgiiSSxz^,((k_hh(!_$B7%E*5Pf}I*5p\%݃oN H'KK=-A,)5/8wths"F ({CC ,}ƍwy YZgcCKJrI;'kh(-Yr'}oVZеާOPah֩Sdd>:AAxxDD ְaZ%&s0=ƍ$Oa0 d%I ܹzR ْ%+W\ҽ{M )t:N:SQT=qbOo|45#,-> @K]{\5k.xrp!//O ]\b„#:{a$&$XqqE  HҶpAE:,-6R)9`!dkk5z׮/^|ѫeu/((õT4 4- ɧVdd(d2ɩWT&w@p 骦񎿇%bǎHO0_Ϟ]sH&H'On`3is'',*bi$ muYlUU]yymTTҌ07 mխ>B(%EP&TTԆfÍJH~Yw,-\ԢR)Goxc2?9rducd 2H={vQ,2tl;;ٳKpiNKH>7L:ztVYYOĵkoH$4a=P }}5UUOq:P&=j!C޿? L3!!;5?JKM;ѧ Mқ/ǔNeeռH$aY̓J7 4v D"zݻBɤqz\lj7|d ]dZ5I&Mi/v:).exxmPF,ST9ut@u Kb K]|˸SHx5UU9[ŝH(ʮ]LLLp͚8g``lbbNkmDakNbbر=pgݤ?~_%Kp'@lt_RRUPP;>˗/?w iDU}.VRb΂ŋ_|;hI^&&Z힧$**ԨAA[.Bn_CCNcn֭Dڦ}yw;=:+ ￟ 'U4)s } t={ngNؠ I$(O+D !4`K.N ,u &L {v*Ȱas ܾݩ]jԩSH6~1ƍrMu=xS S`pϟ9%.={LU@[)'%:8X"ED ԫɓzՉW1l0?&/ю gd?t:2?_ Kۋ>0x/m[8\ :$@XZo}{_ں?'lD":4TſwgccH&vdH?CvEzzjO;w9_@&%hI Ļe3, ԩ9  B6~$/O _UaEbIycc-Ҿ|vup13]{97 Nef(i@,9:ji?nL&#$"">8}{dI_}I񖹿֍LR^4Q@;---7ď? ++Օ ٳg+++ #h^xo!>>^FFhᲲ!Rjjjƍk&Hiiim¢1cƴ4DRO{s>5Ӧ矴 M~$g!S A޽kiXviG&tC)s+-zwUT=yrN\ܗ@kkn$-ڵkU7nܘ8qb^^޹s>| `{ 6lX|yii)Blɒ%[lݞ={rgϞӵZnlΜ9f*..mx}n #66H9sWݹo +&O>Qt{ 9ۏ,wOHH6mZ =b[0n\UFmtTYN/-,D e>MN-Y}{ׯBر6G݄IZ*7--ݻwݻ7jԨPΝKxo!qF---ޅu׬YSg˛< ˭Ě3}W^/^}Ĉ """@aϏ*8XeeˬGpBj,,,ݛRXűXyzƛj{m`kkD"‹℄3{%fg_7 +.p8"D""*"""  B… UUU\.VVV*** kaT͛7/CzaΝ>} I$RPPݻϞ=kjji&,[WWWGGۛb 0СC2p8nBΛ7OKKFyyy6J;2A^^^vvvEEE BHVV6888((h׮]gΜ RM~ !fd~<377صkݻwǧk׮fff>>>QQQ=/]Tʕ+SL?ΏK[>̖?={Ο?geeb|||) fOnĉTT##WEApjY**++\Fgwhsȹs第455݋b[lܹ o$BoW-H$;w4jjT |WXXhnFTʑ#3OZ0nZP[+&BT9;;;;;ܹs} ttt]w-JMM(//uss E} g6ܳ1c|ɗAO|V9#Cca댶bqƎ=4r>&-`MlN!-{$BH]]}…S`kkdeeSRRFݫW`JKu yTTTB M6rȯ_+))z*66v„ cǎEp8333srr&yկ_5Ν;G]r%<~ܼ7ؐBLw… EEE^TΗ/_&P&?V?V? tڵ̚5w}55|}]{3~иq=] ,p?lgSMUU[ vsT̴lee5iҤ6-WeW\tZvvIii5tþ}eܖedGLK~A@|uĝBZ}喝}#Fxzz6099#L:۷'Om=zts/]4¶Ҫ|a0qqqd21<<<%%gϞߏ]3R(t˿|bhh0 Oddŋ| yyy˗/߷oߐ!ClD#m|?>s-[DFFhkk7+**>}zXZ8;;_~ҥK ZFVVfѢaO/?222B=Y-RTT7o^rr2o_\gv+ddd~~Ν;@@V/]\\)5"B1ÏK:%ff:֍=|ق X;ʍ庹-[… |xpp1BJN6m_~MJJڸqc}GJJJ]v]nݢEjkk << B pjEEEɤ3@w3gΟdffL&81[FxY,3jk%$H~vCssWn}Xq-`5{{㬬"<bvP[8vX=L&Aׯ_/))a2>>> 8V?̖?E)((7A𜛸پ=pJK{Vp1Ug!S QUU+?蝶c&~mmڌ3 F /oYǟscjogc(E23V_*Xsg$S971`T?w ޕ[[x͆ fΜƝr#\.w4갰5ݺm8x.BA!!zϾ}wK ӆ WzFΞ}fh*. Sr_ܻ6RAGKв  ?=ue>**TV@{ tv23[yll ~-wK8PaÆu[|U~J=<&$PIŋ޽{미~pV] }7wܸa9g< v۽Hc !/kKӸ\"99W u~9jvͯTH {of?N+7sss&IC$]Bd^0z4~EÎ{{f8 69}z^NNׅٮFNʉ9IIyy3O݇(*v8j۷O z_ `; IDAT5酸H>ɯxx߹>thF]AMM(,8Çg;wkakcc( mp5yrcm**j;~4$NSPŸ.MHH$Ecƌ!HiiiR5$:I ƴ]M RlԵkϟ1_0˛9sr>}_jMWes=` dd Q:&}n'CrRSھ=/Gx d.6GT*K*7h8/Ř2e'qT[˚;7 !!好z4ɽtږ-xJ,^|9}3fܽ{GNOOqڰaEXHRR jjiNhֲ~w|\_uLb29!99Acʶsbҧ) Tn3bĈ˗/gDDСC1B!s8ֺ:yyW,i-I"o?i~Zx_45x F&d$osYYX,A}z܂8;;_t~hܕ+WLRۛ7o޽D";wJSSs޽I͛7y=,[WWWGGۛb2=|s?.}=sss ]v>wUGGguuuMn''(2 }n`8 {uAehm[+z+nٲeK`` yiiih4//چc !===?R8ξ},--UTT ŋ&¹LL||&:0AwRSSLH`o={|?b2Erc2rk>}LI$M Jr !>}ODiibQQB(55\VV-'''44!wޫL`0BMohhUXXx}sss޿={&OгguV3f̣G*++%7n\yyիWBEEEGgnnu&7bH w%+Ϝ+ɞ;7ku(3+(I[ Bf͚5|/_$$$_mß<4ZCSutt]w-HE,NXPP.VxL9yQ Gm-n:~P#Չ9:c|:w)"1lxr^t:ruuu?~p8111FGGd2[ܹsm?wԭ[|uU$R4R4Q)FKZ|KTd%Hlٲ8ߟ${~>/|#FYYz6RaBBd2vϞ= jp@'u;[m:D"<s…Wrr:#[KK C@ `0</^#۠ %ݿ XBT[[mnQ(NaV],t㯿$$hezd>WI$2P5 c@'qńuíA%銱qHHB%xի,Xp/ְ؆9۷oEyy BP+W,+'stܹCʃB󮐖Uuu0-9 d2ȑUTFrɓ.\`pӦM/(O@]FFjwww}}=LKII -m:3_/)UUU'(**B2f'ݺǒ;wh^j<ᢢPg֬Y\4F]6 )6F-p@ 8qPUͭRh芖VGGGrrrLL̆ gee |ɠg!?b̙iii= YZC_;00АɔG{~ 10u*qHHFb"544r@#"Ϗ`훐5DfP.82gΜ%s^\[ƃkDvv%M'RP&u4>ܾGZNY$%gV-ɀe--]ԭp¨/_h{ ΍`0M6mjj Ç}||8~g?~:tիWuuuQQQgΜD-]uuI+NVm2vݾpвihmm+*:9t [qn#BLlOZw2s7&&&C%r助ܹs̙m۶իW!ϴZ0pqq͟?JJJFۿccMMMuuu׬Yzj''a"  A9puI0k֬̾>ccc--o߆@?={UVZ4sL;;;ݻw39soXYY?~\JJ… P-\[ czvF,;;ܜ}w0WlMMӱ0 ܺxy}")Z 캑bJhJDDDNNNvPqa}+R\zMΣրO ٤t~?LXBTtt6/_fnS^֛vӁ9SɝjlW= NBB౶ fժˮp`R$$BXdύݱcGVVVwwwZZ9ܢFl==7ZKڲr<ܺU]OoF! К+wrt I)kI$&|݌Ssғ'rqM:{%='e1~b\\p ϟȞYHĹׯ߰aÌ3۷wރXnn_ ˜<u[Qwd7nnal ז1s挡 ϱcO@dU)* KKi18(+k|>[n ˜&!HN;Сe˨>8??K>>}w/KK LƼEJ<<"EEglڴS/_.aʩS/=}TU H$ M[3Ĺ! '';- @vv=w׭S>uj-04T޺U'554(([[^NX,ZVVI[aa9NNX,<6..FDVD;Z[McV6 45ˈD2BXĹ! ''{o/Bw)2/n:|R9ztGHAAIka}}L>޽240/--]t0Z[14??-9 T*&sC@̫W%''Аjpr ƆmQnJ9''ΜJohN@SXx|o7O8/間ӿ<D)Ummsda2b뚚Vvq!4y/"  [Vib⯢rNFرǾqQQ_onյɓn=[ޚ:uRpNNv:('7…׮Ea:!%h.'5Ўx![a\Yn!LcUUL[hTrr *Xx8TUc4E_ Iǎ311ik뮨h..Ԫ dc̞͋ pbb3p8~99SX+==ѹﷷ}kC3E99UGGEΙ3{{{AtwMLd+djj&\/;zwv&QkX9ll_%%5&-HMqn!3[a|Qpa3ϭ^Ji>61-O#PunpK}}آigw͚=JKyNcݏSzz4 3UU]]X,4V([nUSSSQSQQG l..KJA<<8' ## *:CLlD7)S8Μys[ѿಛۦ}ED~Ʀ)s~@W[M d+(r$˗Y&DD:fa4 F._̙ lؠB1i ӛ`áCBC?!WLl6N[#=>ٱ2222GH$JMM+dW;:z>.Җu/_v޻$3 IDY }{ZMJ Ǝ=Ww u>S?f 鐸Dd;/޽n-Ǐ7ss/2"ZPPKDQ/a0 ffw1!gv!!~~f/vv˟fd`::z׮=■ٙo3v`8eG<#H$7Nhk*|ep""hmtv]{3۬ɻwy'OгV p^sa>8d W޼rǏȌtNF;**utܝ۷n-Csnbc}x,1wOH'O~Z o)//ccUs+#"r>sp}o8p?'U}k00ްAݝ3 SffN96n!''jT_XBYsx|]}};9sfp/h)@RrtΎѶv_:>Blݪ>tv-^yBggCĿ YYߟsہ,]ꡯpĚE;uqq xaPuqpCyFw/^d&'[X ¬ܸa qn#;aw7ǔ*ˢ?GD1wyuw7ޱRT))Ύv&ꠔS( >ljЎW]j*!ho J~uI 7KM=|맥kRk64kFn|ѣ˗­e8* `Z`kӧ/ szuc&,qw|9?Anqn55||LȤza6u[[=j Wo Zdl0l8-Fr2H3__RRLmpr߶ŋF{he8jjZ_y䓈{w\ Q4y3g Ն[AċG?}zh 냯olnE: f7gFt{qqIINP_11dgWx''fj=+11: ΍45uZ[XbmkcGńZ]]H[%(-#{d /Gf-MllAl^>3AEEsaamSS'ܓ̙eA^ntcժn1t~nތ{*[Ksl: ?6>qFػnAAm\8MBjM|332]4GǐcCgZ[.i"J~ǢE&&ǎ[ȿܻ)O2v@TR:s2KpkaF[G<`9~k7/_.P|Nxz u׶u&~L9:yy!Z/S(mZ޽c.S]zv“'i(j慻wk dfV^ʕpkܿ׷/]uٳ++{ݽ ؎O[@n-#% O 8ז͛­_lla8 ﰲ jnb8XfqnD\f[hgd+*:ڵT==i2>W8ett݁%%4uP rq򣯏??w%ukzzFǿyc#'7ҍg>ݿq"[׬QdM np j3ۓ'i_8<٭0jѣԏONp~Dӻ",<s0}0Cftټy! jhA똻# qn4a~~ɓkiRWAi1>11{nڵk1`LNYXc Oy?g`gJaamgPiimߴ馛&3E >pp` LL44$7իl+omnPLX}X{M:x>* ?::O3n'ߑ\bb 90YYk^YDd:Z…CB/[ sSW׶`K΅[ 87;g<;iciE>}j@+a]]}Ҏ3BZ%5WY\Q F\|4к ^3=:gmm_BB222yj0Edwuu ompk9пUW._wxnތ{793,`Np0Z²}\Z8!;Eg2e93m~FMz{7o^aL͓#z-*5 څSΛwV17 L[Lԙ@LlA}mlǟb=UơGHHJM IDAT jj&&J }Hnތr]rٳ'z{Ϟ}ql%n˅Y Myp.Sn[\䒭Ra ^^_n!bgŋp aΝ KJ9-E@,,Դzzn14T\ ߳GZշv566LxQfL Nf8+ Ѝa+-ܙ=pK! cIHHƛ7IEEl:eClV;/vݿ_gpL-;lǶgG,[aND"YOټ[عzݭ[y(8pB-_-rݸQ^n!@||ٝsM ΍:d8: ѡ&annW"Q_{*yS:L\P%$90p/MҔˊ梢N&ۙ@LlxroBrrIDDNd^"d֭Sb3'ШO@1A[yyǎڅ;ap${zF;0uy^ER!Py,[z‰kUU-?Ғ[ +C=ibb Vqn㥽yDD޽g'Jڵ>fe[Ї;vuƌcNCqLqI5vvbcw  errBSN^bR>""'*kw7a9V(1H.\iiÊ&[f&|9*.^Ro /߷.5jjk[X,Ճ[xycC^L D:qV#pk?F bSr0•@۸ή|M1ёۼ>Wlی\sJԓ'H?2ps^_zk>XHMy[v[_;uD`@%5'*:CLNhGo/ׯsbc :;TTDW+'+ gw3~h>oDYs{rHV]~4=-4- s{ߟ`{7n`PQ߾5hk_zNAAn-kWf(F޽d7׈ s# &])cJϜ?oi`DIAaRRId ݺT ECSB5SRN1ȶx H^bb3B"QjjZ'P\Qя^'ϙ3s`g))>&}&H>GF~+hl++x4sGOZ~+ML u_xԡJqq;wдIH(ھG/QʪXz@}}LT}ht$yέ75Մ[ PSӪvɓȭg m,45uZ[XbmkcG배,kCh4:<);~N.`kՍoh1-Lmu- 0KII3]Vqq]ll~ttXUU+׬QCG ׿* NzCIZZ8i#es2IIo;;N )׷inXYeeU$$8:@ }XZZ_Zڀ}PZ͚ŅKJpRR| ފDde{aEVёNY֬QruE|A7n>|jEft 3 n)-m}k()/)omk)'-͏ Lģp<.!8185[OAROGGFGGf"q&xyE&Mg1Jm޻EE?F]yrԫWIIN6 ;vϨ(;Dh=@i†Q(ܹNg2JR.bc#ŒP(}9]FĹ7o= er%O?[?!A2ÇH[w6m @ft`z66 \qC]Q?mg(eNZR77@LL~LLA^^8Pj e4ڰoq߽{_^Q%x*2ի# yjqS'Iݘ K}k, ߾MM*Kbc󤴴!"(BĹ^͛zxlg`=o12%npD"e* H]]ʹ_.:%WD1X?GΠä͞1cthDSSgR>18!ډҒa1ңG=1qB',K:{6,2V^^h/iUUuu jDggߒ%/|o LYluuc<ޝA=,ZvɓkšDF~ݿ^vyfIGgL6x|ÚV/-:SBssҙzzP]ݺz ;wvû,\xTf0猹7109ڟvJK뻻 Cv+*CqbbO߻ g.^,xR_wp{=B7lA&#"*ѣ+&plNJrX]íYxkw\9ܪիFF"iDw7A^-jpkab[BB2Ceedg#4|WGd `2X[3$dDц N 5yn޼.38mЎ_WQ\XX eNZoD|z>??6nٲ]OO_xQdy0+,]٢d۶[׮.ή44eu:&c$#p 77EDf\n!..9iiK%05=y2{@01s^9{j9c89EA͝ϞY-?ܺ~ Ϟ;:;3ᔫV]yn:t#/## ##Hȟ.ӧ ڌUU'(Ǐ? ;: ^=y4nnn h- D_yή\ڃ溺rpk ɝ>qb݋P(5$MkD^ 2#sLvvnz')gu\ <ʋa @$CS&'ML'Ŝn7Av?eE MRfpB 9r>~,II)ͭP(ܓ7mZ.!LJdPo==ŋK <}2\yg?n(-/o>o*R^޴h+dG'&oz+1IJn-LmOU .E*Ĺ I/kjJ2#e>yY#mMx$01.6-š)w߇5 B$o #AOf@)s22tܸwr jkH$,uuI uu  g˿ED:04JSS'COد_SQviiʕ^NNk'Z.u2qRs"0RvvEZڷO\7cT55qMM)55q99!,v=4SoM˖y8:$LZs烋KĻwvME܎(}lgq,_Ȕή409>$ $ho5k/_o]ahh˫JPSpv6&s,,Դzymx}32MI9Dm>.۴馍ͪcǐ116?/ѓ_)g-/ozFٳa7:VP7(()z%Hc8TDLlƘ;S(`I?AeeM RQSQ?_L^^utF[mOw+_ׯ涙ku|\͛qii#lΌ,YrI__ fwys,fLB32bc|L,*++gD^GD䤦2h?q^{1H 2rܫ tk<*p+W;I$ }# ƍ>>aP(ԁK_tI [XXQ^YƆ*(("#3 C7b?|psN~K%^eYY=z쐖eDMM׍9n-4KAs؋Y-&6ߟ$'MLkOA(έyDD޽g2z^K]n!gٯ_gӰ0ca Z(/ܹJJ"th0 slo`ll#Gtu#>wY^_ߖ^^[SI$8ũK ~ ߈DeBlCIx;F׷/[qWW#j$F[ ۳n~ |7lqaA0d2EY2$NuL疝]iic#υ /Xt.ZF H66kn|fc׮^s~Gll]gӮ70׷ϟPh4 *:…#_c8/ٹQu VVUV6c0hII>ũϛ'Tÿ}Pmۭ'O.YPP@Ś^;w))g!Hc&c%"6 !2_Ui o-`q```ŋᚚR>>||[.!L!+;"6cƄN5ݿy%&$s066Vt98< Z " "(())X>8nS]ݺhˍ;֯L\\Ν>9 ;skj괶ZFImþ}wI$ʃp ;6>.v?.^q 4 pHpUUKXx/) tn$hoh%//z!HK;c,Օda5j88<2c %'HI=,8oin-ٕ'%$fm1SŢxyܼC[)ClGqq#( .]lfI#.*:CLl [CVVEVVENNeQ"=IQQTII7L DV㮥zu+t-((e~^^Π_]%/&;ת5k]> LO2[@@ Ï*+av˺uϳN;_߸a\v-:# +;g|<ǝQU/U/_A6B՜[uu'.ރ!(v( 9nX\VMMH61klxֆ{2Lt鍿{##7vApUXX6s<|QX6)O~J$h۷?qw")¿ E߹ZۃR|yx8|9p""EC0ss9^%7$xիlKˠrr}|b yy5==4Ɔ#P[}Zgд=hyyʕZϏdZ󐻠̈YSo4K:͹ IDAT@RWwٴi ;D%3ڸϟ1 [taJ疙YA 454y N*3}}GX Dd[BvСaa0%B'Ofs>%fRQѬvVxq«oT5|8KEEs Z@M355 `"JK,-xcVD[[7#WQM Hsts۴u:\R_~t֨ullڅ^00sklXĽkKtu}yBOO&-1o閖!i.YadK"@Q~~fHqCQrIƩְw]vv[4l]ZRRCEߺ ""ӫZŢAnտ>ɯ;; jJ'FJVʿQ(Js}RuDׯU(B ٳf047w**@Q<nQc{ AÓˉX~>[XX /WN7rL >7_۷ǎ=ybյ]' ] @Ck||o)o@/-6Pgn-Ipk/9sf˜SYlaq.ll, m=})$EڵXQQ1TVVLTtdwCW׫vA66ʍH ޼wқ_u :7´iLIS\\">zz|s" ҆˟qA夥p8A>>Ǝ/_|ͭ򥲡FIIW:ba(pɒKee^<|xQ(FF <<#?tgfߋXlOOx:Heզȍyӂ39?~jk \DQǎYE玥c&o`0h>> >dʮ] EC`0h7Mpc|ں54\͵!*)*B';:z? F-\8lTUPSӺoߒ7L(:kj~+)omSZ_FF@JOFF@J W]ԉ%%:EE 0ݾ 2 2#,  =1kL ÌI"Q=@U쭬9 '/ƍG=}ĉ7e˫10&)0STtYwӬR(e@xOAIضnUg< 뻃ym$~J!!s<<-۹s1:;{{Ϝw/A PE`TTlSW2s涞bk..pK#666W^B Ot:'''9sf(* o޼pI=_V?x𱩩BPP͛'4Ǝ@ϷmSё_`OZX,d`dt#,zƉh48{6 A 3pMReC6hm,o:⚴s碀2zjj)D} ׮lۦ6F`<+W=y$fd ڱP@da0,˘7nP]T[4mc+?5Dj`ffEUU4׹?+ ~Sܪ544lmWT[vv43u*۔)lXNN)XNNYPWp?é90en`<.4sUU o)-[([ChK;ٔ #,,0'OݴiaVVExxvxxe..6N#ZZD۸ƫWG| e ,&Irrii~0h?jX,h~ɉ;}ڷo'| cUqk1((ѕ̎+7/<88u8W׈!H$rNNk,q5 Ɛ$Xܹ֬pbK֮Urr G :""r9 NNs6XZ*kiYTDDDxb_kv=sbD  -B ʚx|}LLR::2l}}|x ,##_DZ?N` ǎ=[pH$%%,q߽[^!@8kۗ,5p%Lttn~ J/^qLih֖NI)OZ:ȶ(55 _HAcdx5&NN.YWo/7nn-AA^X ŋ jsr*.ס9`F"Qxߝ@PclQg.Ih4 `0۷wңϽ{bb_aD"?{8aX~W'NXSɓ,;;VFF`` A,?}^\ŢihHN>F|ÏD"yTYِ(1{cII=;=5CKh/-)/*0ҥM͝PsL#T`c[le4*wOM=wٳy++[bbMTRUPEPǏ?,@D"Q::zϞ JK6ԀB\ Dni22oPšUP`09As%X,/[3 -.>3*jbܹ::2p  qqE?u{{_:3g2w_%d,{Q(&# ~v-z`,S'ͻvm[~ӧm`FŢ_̂[Cs۷Vrn}}sC`}0bb3Vrŗ>~<w߾%RR|=_V5  FFffw*+.҆ag人FF7:8ڴiS^ZFDѨ=@ ιEGAQ(qq"ٳG+1[BFM||RoP'* ,su5B$GC>C #w66VeꊋC5Lrzy\̟/sܹ 'HәM,ء!ektdOsC`hqY G޸a]I{ZiGǑŁ"/G4=yٱ*$y&_wcw/AP rsOrv6`֬9&~P3BBױR?X!'*:p D"99|,ni HL: EtjFٳw533 &,JKK!~{P()))<?𖩯URR2 @]V,fܼqu겳ǏWWYWQWQWG{MM[CCHP(%%u⪑ kl,FOKK+ϗ"-=c߽$'H^\z)}Ü澃F]ఆhDzzY{{e087_ɓѦcɩQSdߵkTccܪ98Z&7UMMgPŹPVxln8i׶0sLunrq1$7γch~~:ˀmذ688n9c˿|ODL TVTsP?~P`P3gN3gN吒␒\I?:yy'| gnlFj2? H1ζm/G|DMP߿/#wϝ CIOOŖY kض[0 yQ {p5iZɏjq2̸HHH[Ÿپ]##ر'7VS3s :::$$QQQW wn:::-ԺpG,ŢA=k$,))>))><i$}gڴ)k*=}[\\0<{6L\|z<n cb28sn O;t!@ӫapnBBBt0,+ƏOJ*bz *QRdjۋ7l kVӧOY,jȤVp6b=}T [sU}[-mqu)SL&1>>ܱcǘ1c SRR:vbŊ,A ɓ׷k.%%%55522rɒ% %͏=ZZZzqHk.8qFQV*[ZZjff6}tqYAl6L0A(;v A ?Ar۸q!CP%;vDQ۷(N8_~999)))۷_~H>| \.d[C铓SRR|> ,RX؝;wdD"AQٳڵj|5)RLAMM[ܐȩS/J٩X,cO?fŋu!mw=Fʭ! D.~6;}0J]ئO<%$$dʀ/c{ءC RRRPvmFF\/.kjj{n'+**d2YC3ʔ跶Ǐ"H&$ ߿GQT,Y۷omllbEbbbLMMy<ޮ] 566Ʈ{׮]Q X^l y*++kܹ+WDQٳ +WJNNN?FQt۷o@oqٱN )MzL˝9sia!G z0 0Çw>ǢE޽Z:#rD"q̙?32??p5Fjh/7o޸ŋFFFJwDD")$̌NGGGwԩSxALMM,740kkϟ><,,O>2d ,K&y{{}|| H{޺u+Q!7(Il$7r,_ѣ]V^^ѣ'*=>LJWxA0@Eߟ3z\[!A sPe%EI&h~hji8.;;j~޽L9ڬ$ݻw:pS,**:x`/^q!Ey<ޛ7oz !Tj~~>XÇ-[4Wuu\.|2˝1cưaø\ݻ AǏ_t>1ccctzǎϟhll vɡh#ܼyѣ.\xiCн{/_>|l$7*7nܿ{ҥݻ~ ] M7FBRR fu HllYjj*rٲe666۶mJHN:үW7pKt=GXڿV֭-N8jr1p+ 4H_L-@S-77^=t[F H\|9iСޔId+iǎoi/ \>}y?=y&X?z+WDGG:tHqɓ'Z d/}p8^* bcccGhkkkbYuuuP鯣p|HSS~:uASSo_KKK[z+fϞ]SSnj3k֬:d2=zHҍ7N@aGʍ`Ȑ!UUUehFFEϜ9Eٳgw |OQ]d ^"ѣP>꽡H;Baײ3g^ibHjA,3(G<0|o_;g qv5*\L:uԠApYh%dڵ'OƞnܸlnnyEd2 (Jҝ;wtج)]X,^d BqppXdX,VlhY٧~ IDATݼyCNNN۶mC>rȑ#x >(d2F[x1(#WWד'O5x&[nV?~< ~۶mgΜ WiY?QMC+*Ox5*7E CC׌{P ^<^$u5'r߫6[ll,JoΟ? f~.] U<֐ J_ֿRŋ `|СǏ. J/aaaӧO[VTTXZZ/.E4we@[ܔd+VݻB\vT*A+ц zlm*7PX_EݻWVVC^nTYmСBիmk܍MD)(]~;iQzpɅ>>L׍c3猺Zʭ R]]H1U(;׈QzC[]U +a"qqqvvv8o|4 8NyxҪxO.}y>>߅S +6L& ]fid2yk;ۡZ@yΞr329Tbq]ЖWPjJ[q:`?4i{ZiAc?!*w+%'JǦRbz?uǛ7?̝T*\GCVV޹. ^zq\S_"77W靫!^ZeUs={ɓ'W\Nb)ÇƯލ~pX_K =0܅n(uhd12EG߾MNRR%4(X;ݽ|umQyW-uPbkyehRlVڊ{yxx(Z7ih;(A>~߭mz'JǦRcǏ?ΝD"P/Μyu%ПWhJ\ J믻vٳuf͚p&Ni&*A &?۷o0aBS[(-|"BөTjKH7:]4R V_.ݻZ諺Zta:DGkI(z[&(..V(Tz6 MSnJ ZiE" g^till,ɼwڵkZ4{ZW4=we˖=xb78cgIOv;&yzH.g|9o?-..'5r9Е \`2F#((Κ5+$$dƌ,^q޼yk׮e2 >Nkjj~~YY Adى111&MRxtCE#+5ATݻyܽ۶mMFi;}@?DAΜ9# 8uC_LzRFWŔfZ7]J["tEQTk.kk먨( DfU-YL&۷omtttll DpVrCh[R=zMC+TrPN j]>yrݺmYZ˛2yncH46)B!7nicc&07XG"ZYUSN+NKHH022r Q$-^}ޫVի׷~ۤ,ڱc͛W]]m Ei -,Xp~}]9;/HJ*B_,p!^ }iUgE7oL$A#T/{`_@}^+rG0n޼+WzBk^Z@\?'!}|9w9+ja;w%nٳ$iǎ`e-*%Ҹ/Ps:G5"6..NӽhᯣfÇTb^[P;6݈ܤjbOc4nu0zn&UAwe@[PQI&͛7k֬i<9/R4f!6[l&1eJW Çe[n"$L 'O`cƌرcVVݻW\YVV~u;w._*7o޷o_nnnLL… {Ǐ|֭7o޽{w퍬@4Y.]t=CϞ~x{0͛y<*(m555'N駟t=@)-[6bĈ#G3fL>}֬Y-ҡۭ[ j ۟RoVVf?eeꗅ Ht n֭(3 yrrAI_,~ܹD"~@*~۹s7|coo߿7}O}pɒ%x<L޽722r˖-@VC+!@mWiZff&dRRaQwĈ/NNG˖ t_I|||ΝO޻wo*7M&VWW/YD׃Q7ņHÇQoӧ ,~f\2RW-A^Cߌ[1GQB9zB2$4>>Wƍ$//vhE*/Xp>0=5-Ӽ52@ D f?a}ƖM{+f\2nzh\@4J>z oh!oSS>BLӐ+NJTZJQX!F4 ]IL+. 뛶TƁWzq҆02­_?rÆ[ޚ?|MD-͚9tW;?Ǐ={L81 c„ \V9s/^lo-lmϞrtRl @ Z%*Iw麗RE.]Ju+PiL=u:jqq9ӧw*ySvSlC4iH ٶr@ HϞw.4118pkZҔÓKx1A]Ã@ W133~Nzrm>vv֚hvY|mcϣ~_ŋ=_{OqذڑRh|{@L|y6l}*k߾ ͘N$Z>С.o7 ZkDHKK$,)ço~G B: LJx!ӥ79ҌMF_=7eJѣ;LJJoccߗBB\->..vFF qr%?}ڪ߿*}ÇHo/D4 ɼuի 3GTgϞ{ǏHHXkc& HcpK^w/"׭N X6'^YڵgꭁB , !!/!!/%(%V[8GDxEDxڕWb0x{S|}}})G8[Ҋ))wݺh;Dֱ{,\8P-ZuҥĻw<RR¿s'ʕ))EC D?sot;*7u>L_\.ߴiaoÆةSm0 BZT*a'&%$䦤0X(::""=CB\BCjk%,.˖J8:~~NNnndww Q]l7ZYNǯQo[gܼ&6L&:{R%]yРjoFc10r@ MJwcǞh+ zD";t?R+W4(XO6 DcɗqJ*;tp33ӡX,+*St55Almnnd'żWUS||𓤤 jX  Ν:t0,EY'F#Ⱥv2xpȆ #u=*7JJ?`5kGEyoQw˖n%;/Z4pРBaurrȫLLLM@ayuHdEE\:[Sfrff&^^ooӃ@tBd#4г綞=7oV[=#Gnr̙ TW}3T~zׯWwnd*7|23[|(GG:O?u+iDpKI)P" 2<ܳJBa5p@),|˜vee- V/q9G'G++X=,8_\̻|yHH9oOSK/_ҿ+̙W- J(Rud2yz۱cb@@Zӧ6o9ܹTߗNg<ی>uj7ii RRt:Aww28 q sLYs@eZOK??'WWXk).\Ms3,8Q` _Sa}}(Ru._N\‹+ "<@@Ԁ\ﻃ͛ׯS'w/?wͅ <^en&EDXBP8.%'TYYkG*.$U7ܲ\vnnYN;'SW!baairprAYY^߽(4Ux;ߴiIQ-oF2r0:AE\34uu=C*76P}(}/RX,};̙W#Fؤ LDdl6PqX^#SqM*IVWW#bee$#Aci(zٲizh#Gw j.\{ޅ$1,HչqÜ9g?^֤"PA sg2s2$I/33.%&0rdG// Qb 9FT̫@PUPJprs٠ܜ-V̠ss3D)6?Qc[j&9z7+ "UE轞G0PA M^oN&'L2iRT氡(mIo`+ڷ ֡@ 4K͎ ̓@EFzxi)^% x dww{`sw_R{Ϟ}?4q6PX}/-lNg~_'E6HVO6PA m ɟrdM =x0==ʬW/z R9lļ6B12"³}{uKbɖ@ˁKK~l 䜧o!PXĉWc%%MM><%xC'^kiٶ\IZQ<wGosgO]Ű hlӯ._zʡ IDATN|M1c:،IA3=J2Fнo~ݺH2D*޾ͯcy]x=69W/ L ÃaJPZÌW+WQc;w=>.1q]K %ل Go/o+<åE61c\0[1xr@ :Z|Ƈ˗߼ɱ92lNM*$Q[+ML}2ˬ"E۵immN\֊T*a%&%$eg*#":wP B"XbUW155RX%Bpr(…0\5Hd&L\lPAQt]k[pnF]a]KTb@@t )u+ҥb4rd "m#YYY}/詩 ##7%"3<ܳkWXD*E&&F^^=}}5Z[.GKJEEܢ"nQ,pL$neeFvu,TeΞ۰!ӧ*yƇs[=p2*E6 knޜ끴r@ zAj*ʕN<0hPHKX,79 y9LL٥wD'1_@^eBB^BBnj*Fbcc92*Gk fXBt )No 夥ٳ~~)5v!<ngٲeԩ2$=-ENZZ79{vf>Kk*7Gd׮{06$eC)-irjj$Eh[DgHkǎMJ@Fʬ,~ΫW[Gb)Lb+Z9: EH$2_w;vl疷{ǹs3{n#xrr'OZ~dǣo)Hՙ>1LV PA }D&{f[X,;vÆ{/Ȓ ߽+HJ*LJ*(*"֡{p0 )5?}9Sq~~:|B,:b X,aa! 7lmf)":zo.^jQJW_{8իUK/6췎OM} EwcӢu=VTnDwܽZZ4(oߠOq *SS@j`]ۚc5Ā` y y))E))ER<" 9"+"Sɕ`}Y p8 jGi4"JtqRT*QOo,]z)7k7̛oΜ؝˭>7<ʕCeHՙ3'Oitn*7b(TxNi99l<ޢG} trUW/yyeIITFZC(166oҾ=}{{AD[*IHKh 1!WT-.敔KJee` SJR4ŅFUW[qk ϝ[ڻw뚡./ݸ19Q#GvXZPA ã $>(Ղ\ʁu(pRSii@ȕp8;9090ܮM!BaMrr!PqsƞzW8`lYPa,0?L(ԙJ0H&&'_0tWbZh4p&6uGD6m oܘl`}E6E.yJ}T#PA FqƓ' ^{WF^|>}*()(drKK3@j`3r8DQ̫LN.>=:y綦F eq1O*#bjjlggh[g6#QmyCV'Frƌ9x°0&툢EnpͫةsQd()GEm޹sFz, H+!7ɓO~ϭh}uWCkb:QҌb.AGGk^ADcɗqJ*;tp38Tb y H@P1r9F#9;RD;^og߾AV mv S_wscǦ}MfQd Az\j8O@@ZR<# \XN4c ,fWT B|}_J| @^ebbTUBmԩab  nUl{ s dB2tGϳX f7o=״Afxl"׵Fjͮeڵ#Zq>]iTUr_z*+-EѠ jdwxgdRyYYL&rYY,0KۛMxy9{mRP*.%ÇBDFCC݀ l51dER~iWR%%<K(f ɉdBrvuv&H3 C''ol11WUU4Pq)) : ;x֧[*>ۥ1QPJ_<wGSR67ϯyCL{4)SMeMQ&*#"6-^={vo]iTV־_TPYYK$Z{b{|Sl 9L:  8SD7725Nvs#N`p\J #!!O 2k׎T\HǨ *RE]ѡKt}#O߽[zw}w$::߾[]h9vs넄5f@@:2<; `y`LL(I4"³}{?U99e,99x7͍ 'A U::0ikJ*UD.Gʄ 䗖 yAq1L/q8RΟkAC5  1gHd]l=&?s0"رiz"5MEEMxƟ3]uIIIIiiZ)oֱ[X{n] d,ә55AM@1+P ,x{S[OvMO/*.!!cll HΫTL^VVQ\+- ^i)`ʄr9 #J%hDgg"FHT*ٶ76iK.J%}~~ȑ|}ϞWvQؿ#OK*7iDQTCARRaN[.Gi4RX[pKpK.͘:FR9-*BNa!p8 Nvsi̷hK͎ ̓@EFzu=F}A"q/Bx l0 96azxثz›74i`w:xp*G9z2O Ej*qdɓ.[6Hci@@ "$'&%~P(.!d T\pK4a" :0W 99ZDabNG@(U&&楥1r˫R_< XZZ*a)Ba5c:)s֯ӷ.Z^DQ~755zuF+4G>۽n|!425HM-NMe痣(J"Yr@L@Q<r 8EE@qLHnnv4J%QD*D(8q6ļ7or**u5਩(F"u<QpI2?uŊTD5&(6yfNX~)UV^WGU{Z￿hJC@H-#ʫxQ,FFn5*lX*7Q"QmFF1d%'RSScOO'??ǐW??'wwK_-EEb^q1aoL0TшTgu@ZWm~u˫:5Pπ_Q\XeXp8\p rpK^5=ʞ=?>o7ޗPXwGlk*Eݻ>xʔn?ɗ6ǯ֡zo @@ VJ3?~,,("bggD pp 9Oݧ:(Ni(SKh-X RyN;%(11/!!/;* }0\WT -rѮvv4 xӫWY11ChUx? 8׮}Fh[f>sf1 }[Z9PA  ?}*łr% ёbqh[@-<[\/)<6[(155bzNR4s 2..\U숈 uHN.=oߝX C-^G"T1ݻݿ!ьp 6."ђϯeD~~N~1vlgx6ofam*7i TUssrs 8R>sd VwwˎVA՗ I@a &ikkd[f1!rsrSRX^%8 q u377QuleCI[ěĉQu<VUkLLg͛-qC/U[O'R9 usg! 5 ͛G2޽+ MQT&ݙ9;\]nnvnndWW;77;h=[nH|*lPA HE"Y(`!'֬tHT BsLBYY[mI$Za:2ٚB!dkGG[{{2P! k {.˭EU̫ޛRdbbll[tO?# 166ڹs܄ ] $RB/\mff; ;tpk| iiSTby8..nqCFA6}L-(dg@](Ñ#Oo#H5Pi m(x *,(EE\[\U&..v-FrrRff& XZ^.*-嗗JK埥+b2{EDvpWvv6NN2a"yEb@ u qX",ǴFܵ=t4|Uٶ#O]rtٌhjjvlkkK-G&̝oڴkށFK;VÇw5cxWrppL @A9ww2_b۰X3g^a##܏?Z~nG @  2XÁG"  xGJtvmn"Q--,/p*Y,!S|u"6[s @&8:d'Pcc#*rYV-2m6m@KfC_\äK7/KCGiZ)_WB&S TvBYY033!lmuDeIEO`+>|(xŠKK3X )bbbdffbiӺmv+}}-#Fn/o.^LPfbb,f3dHW?\nO?ϩxxi`  R&S@3t&4^\?ssww{ H;dbD_]? bd^A٦%r@ H)+`2Lb^i_[y h\:9h$--%#*+`\n%[Y^.*/B$ X&mvv`Y1r4+s%!!rCd;5cGwTU#"6pU~o_9t˖[FF$2CD1fjj, ?@x*ݥOWYYbdLMgjZSQ:8?L(AA׺@5vVxU8n>k pPA D#`:&S%^'dyyeX6#wrr"P("$ 0G,LS(:#pD@ gll8{{;;kd &gΝ7X.qQ$ '^^}mӦQ3fT\fͿǏ?…ϲ AK,8!FFFct;]vɒ 2T*OJڠ'o8r嘢+-GeFtovy F,zz.CQt֬0ڦer@ *ϯbX.%3 JċpDSx\ǫ*Jłff&_DaΠ^Q7-Nm|թ]i Cڸg#[ =rݸqQΥeg/Ik6 9h7ԄoQlշ߷ ss󨨨:+bia!KNA'/#K!,<<<<쁐N3>4oٟ3}zKK6f0?|o0 զZk@@ B.GENEi\TV&d+y*Vi#,AmGG[MbM&B+;6d_QQh{lIDATW9élD(D4nrСdԩ=&OJ43[[Ŀz;gld322B)ζnnv4-F OJK66x|s=ήS!Mх w*o_ɤY 8;99a)v-{߾Z.^=iRүazzzmmkSo6|֊۵k[1@ ##P YJ+L!|+zz1Fq%x 2نL!@  Td2[79Uq"Ngq<^@PXAs[[+"ъD+z[[+,NUFNo=ؿ!?ԳS'8AŅFvqsu%ڹ[jKΛι6ij$*" jL:i6 䜛IE9W LrUk\KD]d}sssmvfZ @Q(bSŸ\\V*z} =Ym_ ,&V$@MD *ϯ)/ՙFE[[KshT3ƙ3O߾\iƌctR({YPPBiJ7.l6;##C`rt\:n( LB¾NK+ƚF8v}3fLgL#b1+C6 @ mZ)rȗ+9/گ Lh2kH|Yc-Y/xur5177:'~IJ^nj9Swkaa6aB̙\] (7H+FsM)eeyyeyyݝa߯u52¡(dɠa: | }*7@Z7zϯkks' K<#|~UU/Ju]zϜĄݮ]; eGu촴}G@IPի!+T*7@FeemC)t# [[K0c-mm-9`$oaf:S0EUxU۷Q"2Sr>(:{?loocdd$;u-Xн_.ځMuZ@ `mmnmmN&++kjF$ BaP?jfu"QXVVVVVVx)`immnaajccnccaaajeefkkiiis,-,-͜s2m8bll, h``u֝gcta ȓHDO(t[6,g::4XZbݺŚm6'9Xvg1'0ZP*e >S(h L&V*e L&BZ!(|HO͝m&cp>|_իWǏFh4WOXbl6/[6#Gtuuu}Yzzŋ5hii)--mjj꛾6D}V$b$yTJGIOOuz}ֽ̅*`27p"݈u:BMs98I3@stt8,6Xvi9;:NenJJ\咈x*\.<񄔞 1jZ0LD\,ѧ2DJ$b4BȽ{ #nn6yo5~QuܹsGEE}!׭[wСիWWyyy111mC>|8!$666#####c7n x2q#FYHccy?m4n\\ZZ\j.55666RxKwׄp^lACJx.\6>cYЕ4sf3v{,8ݻv=vv'f3GX`K„"""Q-,~1bȴi)))!*PJG]vm]]Vݸqܹs].G}֦R p5x„ ÇƀռLVTT4a„{oRzi ,Yd֭4sGx]y;wYÇsssM&o]XX_(wgW~4k3))T]TTD+^m۶޽U/[L3JKKׯ_ϲouVGmy>Yw;ƻmuu {?_9uG;r\iJJN ?nVA\v޼y3t͛?h6lدJ ?䓙3g^v&===//2uԓ'Onذa̘1555/^|gWZ,j]v~j oJJJxmBqpsv7x<ӧOYYYK;܂NK)DyvӶy~III - ',**߆܄c;rHoSTUo(HĄ0JSos撒fz )FxK.-][0 0'OnhhɄ:洴4z}ڄcB=AS*BV̞=ǖݻ̚J`2577ܹ^2 ¨(ST]]MbZ?~8x<hoo_hk0رcŽ\.Bȍ7r>---+V(,,| n{1iӦnb B}+DcMHHpt`cB= †R):tмy//_^[𭌌d=(۷ĉGoƚ5kjjj233 aܹs׮]Kw-_Q L2eY!JJeӧz藂,ca6=<-ZD1 Æ K'߾}h4޸qԩS3fhhhXreWZV={fs[gϞ Q qZdɇ~XQQa4;~ .Xt6CЇ+3zjy<{nq,p!C,^C:f[jV XQilla-2.3.4/docs/simple-api/classVarHashEntry-members.html0000644001725400016040000001153113273140074020553 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VarHashEntry< TYPE > Member List

    This is the complete list of members for VarHashEntry< TYPE >, including all inherited members.

    getValue() const =0VarHashEntry< TYPE >pure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    setValue(const TYPE &value)=0VarHashEntry< TYPE >pure virtual
    XMemory()xercesc::XMemoryinlineprotected
    ~VarHashEntry()VarHashEntry< TYPE >inlinevirtual
    XQilla-2.3.4/docs/simple-api/XMLResourceIdentifier_8hpp__dep__incl.map0000644001725400016040000000031513273140076022575 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.map0000644001725400016040000000066413273140076024446 00000000000000 XQilla-2.3.4/docs/simple-api/FastXDMConfiguration_8hpp__incl.png0000644001725400016040000014261613273140075021452 00000000000000PNG  IHDRpbKGD IDATxyoݺuʔ)cƌYhQttt}rm۶3ӧҟ5?;4%:ٰk?hѢ B<ػwoϚ5KWW8Ǐ/]`O߽{{[RR ͛7p@99Ǐ۶mӧϧϏ'(((L:a{j> Qԇ' HEEvƌǎ#?~m۶SLEq+111fffN277wqq166ܹ*B:!DYYyj> Qԇ Ο?zҤIϟqtt6mZxx8!dɒ%wpss ussc0jAƏ#Ç߹s?yݻÆ ޽{&MYa֬Yץ&L=r$1"22r֬YǏgpk׮͞={رW~!o  5E\\˗/}Dxzøq5޷z'\]]Z^cǎ۷?~ت 4 ' h޼y65|W :>tP䝇CII_Bj:**j嚚s̉hĉ ! .]hѢ>}(++[XX̙3 ,077WRR = !ŋ;vhll|...Æ Vfffj>|ݻ(**fddt֍͛7]\\prssy!ߛ=ēUs ;0oQ m۶䛶QǎIj= 'cUUU6m2eW\?p6mlccnݺo'>4rxxxyy|||w;tЧO޼ymiiYAhSPPXx֭[[n=mڴQF^rرc_|СL{1iҤ7n?}LJ7b`,YdСC%,[W_]]1bDPPo&p\EEG𨨨ԩӶmCWVXqСEIKK9?ĉl~ڭ[E޽[YYwҥ?.^5Ox{1334zhggQF988ߢ LfFyxx > bÇzzz;w܉'MUO>M>?yLL:,{pu6 X[^9r'['iikm._~eHdh>.3thW/@IBe'TWs-:"k]}hoE $'xz^OHxl\޿ȑ[\p0]A,w?\@r{E+V0޾ockN{LfB,w-w_>l|)t@3No?tO@Rh _*8C$H;0w֭1B$H; ''h< ?i=˝={ѣv V= 4˝Yx1B$IS.w"`Μj=IҔ˝e,^<ԩ99_@-tO@b4r'f4ddZI/X0٘22@C$˝5kM .w"@NNf֬AʪMMw/w"`UUyLuh"XNOȑ,,=%>˝XhDnnիqT /YD@ǎǛ=z =1%n˝X`XRR)TCđ.w"G8q rN,X0,2ujh{bGl;`eսs>> 1_&:8?, BNp1A@=/{޿㽕NjRPs\ å: '@ .{WF}s"9˝9sЇwᆬ: Eo (Bhpݾ}S$eNM'VTlu#A@$0RZZBqZv Raf:3 5]gl6|Ԩ]AAj1cLk6O޽/p]YZ{`u5` #--ega~4BC_2Rr NOӧ-J:'@kk]BzЎ\C[̀zTCZv,b| ]ZZ}lH ==u5m߈Ă2{M-44N}wbBTUUo߾ѣ;6,::悢"!7#k> ##&{MMMF,-- !Wkk wΝ/]?.Y?nddT'&tݓ22ET'CF;k{ !%..ˋw0,,ښ ,((ptt7n\AAA}s^$''wСRRR\.-,,|!jWw͚ !YYYNNNw:t… O6{;u .xzzN:RG$!__YYw$'p8s]| "## !suqq  sssHUUɔ M0wFtRqq1ɔo+VƮ[n5gdd$$$X[[>|Y3<]p#!YCCc弟nܸ1;;͛ɺӦM7o^}X}1ѣMnɆ żrss׮]zȑ YfٲeV200زeˮ].w^###S5?UVgΜYv־}[jUߨGvww[***9gϞ;w;\I5Y,VgϞ8~8oK!JJJϞ=իך5kz׽n_?y^P F/H{{JMM500(C1̸ !$ /)+}}_ᆁ&' u0Cb … ſxwᆳ`R O Gʪ{U+:: @Vvo =]AAJD_ORSSFGE-  onn.''ɓ)SL:͛*kBڵk2--MMMZ%ΨQ&99ʼnYT`PcĈ޼&&&{_~HEE!SN555OOOp8ע/qwj^֭ݻkQ cO$̥KVXQ󈇇ɓ'yfϞֱc5kTVVBh4q6mvE۾}{Rcf =zȑ#CBBxSfny/nݺթShjj%x WUUݱcfPPP׮]՝j=(܇`4m[ $)**622yPAA7lٲ'O޼ysΝW^}]֮][PP#BHvvv:'Oܺu֭[jժݻ̙3&MիWJJʞ={ssskWhhh||ɓ'׭[RAq0rQ||FaaA 2,S&)%%+˗/:}6BHJJJJJ ?uΟ?;3y/\nUUURRRii);{n>"ܹsy\~ֶaWt|3F&'DUUUCC+_lll>}srrl︾~ff&u!u]oMLLNwdkkk ӧOQ1x'k``O/UAqتo.QQ#y=0Ǐ߻woF/ŒАJKKֿk jչsDۤ}ϯ&|fGEEK\\W=yM!ɼ#Mnzfs ٶmݻwg̘yl۶"--moo䔞ի;88|KGEEmڴFBΞ=[\\|ob2222ޏJKKkYx_~;+RSSccc׭[7}:Qʟ?@utO$Lv={VUUekk;x7n\vmر:tC}rwwK,qvv^dݻwڥuVgg^z͞=۫TTT`dd3uTkkkkjj ϟ[w`ѣGX[[KzPLQC_ŋ7n<>d~:O ٳ'KnOmZ|pB\aݺqqV /Ay9ϟg֦\" IDAT G넄ww3g%$$lذaҥTjn 3:{6&?m[B!lNjꗄ ?bZmgTܼB@@yTY'N՝;w… U;%%ozP d %E exs+y$LyyYڦMM 5 7f3w!'S߻^H@0໪9}MN~05/ꪛvtw۷onݴС~~N T>}Ǐ?TT0zt޽t%+oR(Æc`Au)oW>~Ԥl6Kv}vhg2 k|55tOy*(({ %::7>iaújkiC aXMvILfY+VX^+_b3_oZ篊N:S݄FhkQw-'h>8"#_GE%zI,,tڵgO햹pe%[Du _ӵk{OInS !dC{~K~}U]9uw]ֆ c+.{ͭ[J;vT=d*A dNGTW׀ ϝ;N _ؾ}RRRܹ>7nRTl%`o@sW(): ' 22򣣓#"ypuӚ5ke=:hoHC|}ZZv \" lЀ eesXq9-W6h>}8N_ $p/oHx>OUU~=mp#9Ӊ.{͛sllLEz9s7TN;yÇ-%lOUUHtO' X,Ç/^|Q1fa2W3֮ | eڴ7NĥOʪpI>]֯ysI#M" dp~ )=UUU}ۈİyy'Omiiҷ.>~Ξ=azz+;5MSRr!)2ׯ. ]&ha }o{emS JVd렠*V].5fLNRMLƦdd/[6RZZi9SIIO=}:=uAžsMPP|x ր6MTG_ŕw:=|ٳ4_21j| k{yh|AIԪ{wtO'@1izpWKMM]]mƍ3P:HtsX]޿m'a-Vұѣ3N=ֳ…ÅRS" dHu tO2O_<7T{ɒǛiiRK|]ʍ &Yl4U3X,vjjB+g`C77[4 *bn /TgBZffŋ/>MK54l?{ͻtiGu.pϟeK Jm661 ĚK|2sɒsZ27JKKļ^TgBHe%+""ŧQQI ƍoS/IIY../_f.X0|kYY*%&~jJZWQh{N7oGS׮9nW13A ' -޲&/>z5zp#/=l_桲u":ڵ=ՉYFF ]eeϜgm5AO]@u ' *YYE?SY'w'RU`IWas4BHbn݄ηxy͘>x^,[~)Jb 260**My[>vv} +!ʷo}hi-0p Չ묱cEa]WeӦFF.bo. ɓq̨C˗'g|X`jcd[>Ԯ!\ŋO7ofx{ϱ1:|XPTTޭ0reRR֢EgVUHeuz8)^n-3~PqXCrvm)Ӧ߸q,ՉeHKKQthM׿?}2dSw5?| j~~Μycz=ƴy5}={ԃWw:Q2;zOY66\]kHE~tO[TT"GuRHKN5k0wmbc]]22-d)Ž7mwܹ>}tqpwDztKnTgZ{Iɓ7n$t쨺rU\\{wSÇ=;_[ Չb_4kVcerݺK}6Mi螈'tO0AAG~s>]fؘJIѩDD$]f?ֶq~L&W{³fW yYCC۔{)v~ /&W3Nn9gI|?' ҿ}{DN!**r]5tڡCd?bM_?݄eeUTZ` |Wff#/\x ;oЙ3m@uf?h˖ 55EER2zLњJJϞ?vMm)o4 Ыe "IZtOyyE?PZW]EIJrq x2skXJWɓ)&_;գ֔)>Hih(w6661$a%&~:vΕ+qm6l?s@@,DÇo8if)<|M׮NToMIMcXxE##M331ι,,:?{P %?С[SرY=&Ĥl0~!x=z'%EoknݯIIY [̦sg(Õ?yia;; 3nXeccoBTTT0ya==۷Λ7TroLLjZSN>> /tO$1bgffphVP͇Oŋlv5~>zfJDīÍdd$f DZr ?.KuzSUQ{ q y>rUx#\O{x\r !ynQb̘TKnT 'fGE%}*?nٳ9wEuɬ=ۻ{WO'''fh5D+!)ĕ+/(+reY߾]6:::;.#^r\puk)]]%}}.] :!Օ)QQ)T'2E]իvD#3M;zŋGPgvĦbqb===zή֭׽Kȑ#[tᒗ77b2?X Hd$ձ`XT`2^:;[ +6ps}{ᒱCzC@de-^|̝;mO󫫫 H{{FsMiiկJ$-Y22!!sɒs;wnKuSlM9 ^n~3jʛ7u :.=OWSS B_S8:TTH rr2 X8zc̜yƍUTǁ2""ֶAU+io9?uq :ˏIIѻuBD{ իٲʕ8j%Mu"h^#4i;|mMuStO[2y/Μ>>ΝrGɓ' Fii)r^ΩS{{{B슋;Fiee#}}M6ռ|Ν&MCBBB^j~Z&?<!d֭#Snn#}a6m~wkqqK~o7~;Ӱk%ݡ:9?z tiNUU,h43ghiں5XX{RXXرcGSSSnݺ>}F3uwOJKKlݻwy'sI&p܂ii={r86-=rL&SuJJ ̄5/7223uDDYXkp8&L>}zGk<Ҙ55<1ݝ;w\.afm{Nú'o~\yΛ\+l̙'zsYjTi0sI9rտǯMy_ $&&.^w$--̌iddd-,,N>;XZZbTUU !o~Qǎ M ~PTT$f|g``{add2߿Ih4ezz:!jWw͚yܹuŠ k߾>ύľաCB5sG||ti׌׋N;|xY,6qSRj;BxyEmiӄիi[СCGvvvzĺ+TTTٹyyyY[[Op8ƍ+((oN BHrr2wGc+jWw͚ !YYYNNNw:t… y?rpp?yC!SNpႧԩS,uDeSj\Ο?NFbNAAɹW"F±CDoy59ܹs/_~…`Bܹs]\\x}ԡ}t IDATdTTTxxxBJJJ&L;FYYY]tdJKK7+RSSccc׭[7}?322>xu׬.\ё쬡|rO7nܘmiiyd]]iӦUVVΛ7O<::u_ZagGŜO;s&…GTgdjcF̈́!wQ'?Z={d2\.ʕ+L&s˖-]tQPP0`Ip}iF[[kԩ6665oﯧ'##cdd$p9Ƿygz{{wYMMm5//..3gj۶m,XPVV&1⩫Qd iYYٷo'"Yƒ%M>,NIIi…_Sj$$EzzhE"(+˝<9'1ӶmTgF36uAZ.tOD3b}$>Տ=*5E̢ \.qEw bla?:˿LL^Du hƚǎ͒vz›7˗cLkannb2_[II9,]J % |ŕӦSRj}ϚZUU && ˨ ВѨy(-׿e/]Z&#C?R~ZmvBBfrr۷ٯ_gUB44 ڵFd>^YYՅ K'L0_JW(nT\\aayZy󆊢>OQQyDDbd۷˙ݻw4?@Ct7m{w64ɱ*:;[p8^),:iE[!&&\ L90f͚q |i6pG޾0d>Prs˰t \ jamlfb,ˇx:ԩ+W^KI}}G;((Ha2]\0d2EEѣMݭF2!y.\xwbb t,"&<պu7Oqsӧ{' {@xsܹ#xq|:]˕(J+HjrsCC/]GEEvQf r!/S ƍ-=ɓǏS߽˕"u,_4UVVmibik܈6۷GOG|@+/mkWJ, '3BD2V˕* .RR ON{v???9s (ӧiާ֘ rEAAUB·Ԅo8nP3wwKUUޮ]j) RRRNBº>}$~ill?C7]P14%*3N^0KzKK0?~y_|:cc~O{ {@8ȑ'-.%%،J: ˒`+q%$߸ X,4.ñ>/]$$aa;wFUZ,RZ鹼8~]Δ)Wc6(42ZwɃ6(@ {@׼z5};~o1\ 6$5hJ==%|r+ 3@aYNef:UT39L.NOQZZʕ`}pLM5zkj_O:~ {@jjrrʰ%}*žGI6B[UUNCy9…g{_?!*AhPPP<`,;IMG?m3g_JFFgrrR^̜6+tKWtOy\DO\|yr KXՃmsga Avt:'o⬬R&E$b%XW(+]%MIKqӈ}sY  8rdNUIGVv]T+!! vݻti&t}|Fz л0*l^ɯ"?[XhbMݺ57qqk/$%e?ɓ&&j\Ӂ&N<2pfP ᚵ NI)ZXՒgR$%e{x;xs4~.xII?JL$/]<@'h!C tt,\ֲʬǏV>z52>i&m׮]vV@(X_}p~-mDJ8Zҝ9;#ΟYBB866Wۓ߿r۷[%$'UfH1T'MTYeUͻQBC<8%e7 K`Ԓr*Ҥmf7e] ~\ \ẍG<)sr V;{>iD V۷762.]gG2 LKɓsNY[ΛQ*+k+*=!'@dP( ƊPSŠ++s鞞BB渻[q¦7'OƗLdbŋ/fe>~ZЁJNNٸq&NR~2 '=vmF8~iiՖ7FAK=B kW(*++M-@#R?z^;;cǼy7`UVֆ%&̙3.Y2Z]]AAy"":mtw?,)IX&.|AUfW(xČUx1|}yqpdOPr%X[Yb-!K|V^^oMii͙3%%#zirvHCC鹂˘L؇j9T*..f|mts;D$[ޓ'56V # {`_o~h "r%-SB7/S.sq1T <[*ܽaGSe˖.s!C; lL̗:2}99e;ȑY\?7Ӌ]# {6N ijŲ$Jccui@3fZN:nJM->}[{Ƽo>>gV|s7Ufh#G\x0C.iӎCEEAk {YZW`jf٧w3gc.E?4#y. :(rՏ׊t:vH[ߵkZ62eTj!YY۷r8?pwA {RSӐSM-U "''_` mUU9A5aa/n8`c"DžU&Y/]D" :(aiEJ1?ldeNpqKԩ έ6@ZXDR'oCI 1xOt,]A6^񸪪VMOOIA 5c.t ]@ ˫\APeS=J;ot/a\9MSR ##shm=tfQO2>8YYL& ˕`J\I"S >~U-/^̙,kƌK: AA?_oh"X:Ng~R-*|?$$e:?څ /@ @od y%hld4klamdk[5ԵkK'|^y˗_H?QNNJA &5bn;' :N`ЀKqq_o t8*m`P3))11_/keehs=豚 NI)8DA+t^cc3g :ljO#">+̟mf<wɉ-w/\xy|GG!AYƍ;${v@7'攔T[[o}{7{! {C`m)i+V☛k܂ IسgutK|)8v,.:ţ'OL CG}ݺF={?w\Wׁ}PeN&&6mr=[ ?Ȟ$,WžZVT^NEZ 63ׯ ԑ#֬'Xڑ}ԁ.urs ݷaíg_(%~ݻ3g̰t,Ufٰj;'L8hcm '"Bimpr rrRzzJXcc5uXeV]{,=1qaи>)FR'3Asdg98/jHHΝ̝;BбtTEdǎȰ˻SfŊ+\ p `E^+QWfO-!tuE`p*/*)ɰKq=ij Όp2'+WBЌ)ubAҪSv츷kd__{A5,ɚ=LFFIL*EEwȑ'W~j3wc-A@\ %VdfXh/oSJf33[' fX,42r-mzɓ5&Y/_bd$b]uEӧiާ֘j:Μym[ΝzNꤩ^Xe:W::W,Zݢ?/\x!3s5Ȟ*,߾D"^CC냃Jzs`^{>rt43ܻ+kUUsν3g]dPut 6p邎3gmi[@c^Ue65p##7ovţGڔ_Ob fihb}, X]B `{דX( i>$Aj.^|y3<7Ͼo_('aa;wFUslɟN\hc^ReΝ˖]>yrĉ^9H3 ;6{D+^ {M\ 6$5h>ged$ͣ'E斧''?JKk_Ff.@ 3?v<'!!~v Hqc&wG`(pKc'_y}ҥNzR)ZYY\P0ko޺1o&qDB2CDZŋG[7{]z˖S=@[XhaIMG|Ci5H UTdo\bcSØL^cRR ,_?++kml ĦO tQC̙gѮ\Y8jIgJ, '3Bmpgp+WAildJHeiM HƖӧO~HO/8H]]cTZn966,_-s^n|7n٧OӼ`kx13g|3(: =g =:c0{˞={C@9gDwbAbo c0D"~F G*,߾D"^CCDRr%6p8vu)?OrFc;)C1FG5<@xVe׮%V$$̜8Ѻ#W]{#11A4/@|y!{ 0dv*%:X PHE֭߾p8즂BӋ[>6N ij%Ij $u.^uE+4vkHHBq1 (F,-uԠQPvwrw={ܹ?RPbNa2YE.Ʀ7; Zut][iݺ &L&sree-,ҥN=ILMջqUMY|d<^ EkJM-dJ%uu4W`}oo;Iu@-))h #GN7/vWUUɏ?zܬ g2YSxy 55nЀ]]d2Y׮^f`JDP?}} nhg_8B?Ϟ=yNEQ}}%Ȟ}</++N %%  WR'(:YAfru5Ǜre^ 'ƍRۏ_}+A8nР1ǎ1EhǏ߼yAA)`?;;;߼y=wÇ?@N򎙙ܹu{Z[X@k(--ky Zlm fkǝ;K~ݝ֭;&Ϙa;dx˿ݻwOSS AWHZAt5kTUUUTT֬YC333q8\\\NBB֭[utt̙Oh-B$**BRRҥK0 GJJjذa!t/^DGG[[[KKKc;psΙ*++_tI___^^?l-0;;"RYY)&&zjALf߾}߿ ϟ?Νzꆆf`GFQtVVVMOinܸ^s֭S|OWv` IR?~+AN@']~>A@aKE ~̜9s|||UUU߼ymܳgϔ)S󓓓 ~ Aƍm۶%''eСWnm/**!!ǏP@Rqs]t EQl,lcq!..WPP Hii)v ٳL>B:u Arرc„ (FFF 4EwIJJ֢(:k,''dssm۶5ӧOX,v)`Q}MMMǏ(SZZKdddp#v`(Jњ=e`޽hVڸq#Hڷo}x|JJ ˝;wFvZA2226l؀hxx {;Ǩ=vc0jjjqqq(?>88W*dOwAH'0WPPPX`Ajjŋsssq8sqq ׿lɓ[۫o߾_rttLLL;J}$68Lvuu@VVA"ӧ۷o?>qDkkϟO0A&ihhnddTPP4۷oG{nOaڴi7oDQٲ66Υxǝ;w˟22L&4h̘1ϟ?Dz'x<>;;=++KSSi$k׮Ƿv #GyEll,OOr:شi޽{ƍ#GjiiuYꝸ)G Hdd/_p-[7NoZ^eLs]ґ AڵkZZZ_ [g.>_ې=+4-LvvºuGQQѳgX,w7kڲ;/t@/b-[v'ODEEa=<<6lؐz{͞={ӦM))))))K.en;v۷) F#w4iR666h4qq["RSSӑx:Ǐ?qСCDuuuuuu!3fX|yNNNJJ͛9Nӧ-Zx)S.\hkk۬iHO2G ޞ`رcyrz9| X[[oܸqX %Klݺuðz|jյ1uPkjj ͛>_><<|رL&k)TBzQ\>a„:jZyݑ_ 0\jxBj#كs="zGh(޽{W]]+AP|}}`ڦWHCCի544===-BQ놆&&&whXL58Я_?mm'NxzzArc`?$vBQV\\|ڵ*++gϞr֢'H7nlz MGOHH@si;0̢E(J/}P{mn} 466/XEE <o( 7nduq#D坜uOدcG>W\FPW^^{QT==Cln#ލUcpGG7GFFjhh`gW\߿?JEQF^ZEEEYYy4 P|䉶v||-[fϞ;Uk8pŋQw/++>}:ʭ" h+_ػ->?TTT4}|TT_l?(ZUU㣨ȾAžDABCCMLL믋/m޼cHM{j-f[ACCCݻww H˖-khhั+ Wq7zyyu̞OE߽{G v-!!vȈ-44,}oc{dMMV)Qy'o7{b2G5116lӧO'4Uny=?9+u6l؁Pp(2 h=,, ;hiiYVVvBUSSmܞ8q޾ [k /VkXM`qjw6dOpG(Q;YkO>P(L!C4}vX2k###v6{@ {gee~>=鑟#MhbCwwdIˋԩS***w)**>V,ǏiuRǴP-Mz_~]xߋjjrxwmCwt{HGfIوDc<NeOmJvEk'f/" (2̦-c6r&dO'MBBB߾}.>gOz,kҤIx<ۻ"ڻZT;=iyQ? .=i!z뤎rbv…[wyC8ixu|9^c1}7rwvF%$$5}|V[`Զ[6; Ö@ٯϳ ;fXYY$z˗>}z֭f=杼Emee~EG1#;sP԰M};aZaiqu|[k'xEhۣbm ;rmwWmSV;-m:::M:Cm|փ؟q!6ДжteHz)PTT|}988lݺu…M/{;yˋJSSiԶcuRoB5kΝ;xzz^z588ӳ[8 -n~ }el/\`mm,‡~144tƍJ'Nzappp৆s͟?_б&..>l0AG! {N[paG6VƍDGG1BQQϟ9U>f/nPPPA#>w~MIIyǎؾaaaǎ8p={bbb{=zt>}EzjYYY'AC oc#͛!C5{;9>\c< ?zl5ӦM7o^PPPXGSfSB enneXPvyyyzaޮ7zWwvNnddv5?>\cݶmiMl {miiiM Yfyzzrܝ#,YdCC}ݻWII A]vZ[[3rϞ=͎6|vy̚5y񮮮6lhc# >a#pttlZʕ+ٽr/^m?2::zۚʞ;wܹs4ϙ7;H=E7oڎuummҢdx< \QVЯq߿Ǻ6lpႉIrr z.  }'P( g Fr @ ;X1<^@' ~x< #Z\|E ILLJ\\HԐ!([oFNnUK*!MAgwNM-:uȚ545vP+CB|xq0@WP(yydrIVVimm# rrRzzJnnV$J>]S_O{.srRROt:SWWޞrXGGc99) ?f)Bd ݨџwwEF-[,.ΝOmUUyww+ww+AjkSS ߾IJ9pϟu}H akk`k?d^߾}2(ܧOwloOz(LSD dONg%)2&(x E}oo;]]EE~]`~-LL$?N~&Fc`yFϟ:^]hkkq8'?Ν׏R\ԧV"/"))ۜ'(hcoamkonB e{34Tf4_>+++4s(^'+0*v˘4[}clnelƋ7m˫HL$cL디dVqO ),1${w`3|(wvEEG^7_ߑ ČՌռ))$'OJIJʾq-PQԱIH ד}`Vpw$ :(ȃ;5[}W "GGGQWWXX$))ŋj kk]=i@-!VY:sI :P(GƝ9LWWq۶G6`0t:3-1Ufy9@0@cgg~D"ཊ'dRx= ZW`Tz6ܾ}C޿9((~2'1;*=rͷo?jj')$$B&&VIKeL/^^]@8?bcd]]EAG M!''ǚ"A;dHLL,..t"ZxZPtUO. Ffw}~zȞh?b28/"/۷ee57&&rrB4S[CDrJJ33Ӵ'f(T"Q…,"D;ϟu?:Ν| Y55 >'%e''yE4`oR҂",:}rG|ΙbSQ@3n6(~:7\9]) ȞЫ@L.$X[} tv?|}=ݻIIX ]]Eǭ1O ȭ[Vmk}ۖQm[DBBNL&+3vdr1ccO"$+ܴɍS&ߺ.11s# UU'Nğ=LYYvrN dO7$%yy%4l: 1_UJJ\!`}Z1y&Fc3&#Gy%KމbcSl[ZZd'YM!''old(+ZY鰓)u:@Z[Æ *7^~p#ooq,DkO}B /=`WB^'t:g7?JKk! $%U41QWVt4cUc3:zx7ov_xc:y}H_?~!8}>_gT5myOAz"CEEn!vBWKPOPs\YքB^'Y}-!ԄyMkLVjjaRR۷9Ϟ}Pتtˊ푡SgͲt8\VRBٿ?ʕC1LSu vX}++I \II{'O4Eб ݹ7#F:uUo~ht3fخY3NxzȞ@;Z,7m˫HL$cL디dllZL֚57n~ww?1?' ύGwRR ޾y2뇍%S7RTt@$ED|_0zcW&#nkoj.!1R0aƍn6'*=\}C&PNoH$5UU9AX$))ŋjޞ4p(. :p)..̙cƘ :xs罪EF-[æi`퐱dJJJbChх֭w*,,<<KKpʾ >} =i˖9u'*=^uN'ϯHO/*e2Y7ZZ}S[HVXX%-->x1%uu4s?]8@I}=ĉǏ?UWWX~@|cޯvJ>C=z^ }2ͷџDIv=iz`vvٞ=?[[l6|#jdOU {(rvL.*mDQ$TՌT{j^VWHJԲ5pp fH$ P(g23K._^hm#pǏu#G߾w<kۜ11C튍M9{\77KAҪ꺨aaii?H$iӆ̚e jHH zzJWY OȞЫ@`o~eII^^k"fleLm5wUTP?|æ|R д'98lm $$zڍ*+:U^^sꢞ8h۫WY[MO1s''ݦ;|#۷9 t99IKK[[}h Y)넿TPrWwg2Ycǚ{{ۍ_6?XYY+zz=W @F^^Kk^H|?''&SR p8=V0Cah(@U3fd0X׮-St8bo۵+NgZi;7o$ T>C*hWmmjaaCjj"#?^ϗ/*3gΘ1TII'c}`;P'*=6VI)5]}chҧCzڻwϟN$ 3g~}!!G*n᳒䂤"h =<:5uA ŷn|UmmQ&S?Bs,z砠貲??e˜D '*=#o+QFGhMQ /X7oi4;c2rd}{B딶v˗RNNYpO..f;vL+մ?dVTPDHe˖7n$ŭ+X:qJx/2TUL2gpm~_#3&mȞЫ@ xuyyN'2&٥ F^}ӚF1 PHys\y22hRRg%&n*3gڵz:/6hܛ562\]++]HDYY׮%]vĈvX)7o,׭o`,H'*=)'JiiET*FROOEdbE.=F4`wnتCz"7tpӧB O$]Aj)*BORRNuu]>Fw\SW𓅀ޛDU ցU+jk]ն*ַֺ֟.u"h(*B0# KV! qmޘE<ߏK<9I{Vx$Juy󆩻,]s/^|z:Ҳs QOtz޽737lpWٕ'Ȟ_^^/Ȓ7ڔ:$8 i7-:gdZꬆֽ{oĤ:n>U~(r rȺ䧟^%p .=;uAYYsdd郌 z7oucoo#ȞW {P 7 Fm^^ݎ233vu}םϘe]$3&E&& p>J ~uŋOW<ct@U[\IN ߸qb55M-ܣaC{ ?66ƍFF'a ?Q}}wgmcŊq:֝ 'Ȟ:M|MnnESSBf%ȒP{; UU5-/7664 Ϙ| ɔ ./]:z0uEݾiꦥKG-[6FUv~aa'Eů_ /ܫ:N製QQ.(RuuӅ qqJJ]QLa'SL&-Y2jpdO+="qMiiDGǞ0kjj=*'}АүS`!C<88t]md(uEpSDGebbvN吳J9v];V8t}.hi0 772284ڵC'{=o^Ȋcu> dO+=:$Rt6gd0n&/^H>}CCÇS=ී`uk){D̙蔪*޽7ΜymTet\.ի7ҺqEDjjj~{]Ms3W3OzSmgww Ò^VV7sf`TDkJ-zA^QHW F-Q[QSӄ$q05ͻF`ܿOOIgg__Pj`!z/Nx<~TFY%J7nYɴi6n?T'SDCs0UWk)v GY3QeQ.+\.FFxtB߹3);׭ suTYi'Ȟ*jld ـ.օ dO+=@q7oGUTW7!(9jgI\]-}|졃b gLӋvM`ѽoa2YG  藊ݻ? ޺uK̶ >OXr~~AAЯM*+Gyƌ۶MUwYTiy3;66-55ʪVf51,_' z'h yFIT;}$<?'T^.fc#(l꣚>۷Mg.꒖Vi弼Y֮X9&A/L$CV~ݙs_-B--}n?~|l03ן8=@@M$>Uoo[##uY1))t_CCIpW@;~Wݥk3gnnV.^;v$r+???D"PzI!hlvM??@XKy:3ݻk?_oo/[6z޼ Fll_Ѻw7 ??wo=bCL| ^YUDFPv.3&E&& p>JI'kY~311.~^9-f2ا#Op,0uu-F4fL}f,Jc׮eܙTSӴ`AcsFUU/>Mc0j##Mdlv {^ *ؚ;׵yy<I}ܪthJ zccA LШi^(:;[} j={'&fmT}XT3 CJ%`9dźy3{Ǐ/8ˢD))[YVHZ<ȿpIRRBC'Ȟ,L& KBWV6y IDATK*նW/;//[}Ejj=*G0~= ?-4E_|qo_LL8@W f= ]"&ӧ%- >Æyl5]bE\rr;?XY,c׮Ĵq|7oZ[NLyJ1c9.A}oϘ07..T]^vxnê]mmsFfED14:|8|:YFVgCl3g??,_/73ׯJ4ZillڥKx<}##CBui+dO+=d133ۯFhvF}zJ =;@ :R݇ EN8 o.кw͘T__ۧD=MMm|?.b2YLO؁ff:k@RS3g9|O>(7 :{ߏ@SS[B4f֬3tdO+=@oLMܬGxzt#4 y}zzz>24/0?$茋\y622xǎpc\Wmr%99/,0}fCW pRmu[wҥwۛ,]W_rcY[Xb;U^4..=rODI&dO+=o^0 Fhv˗))q8킌IH7L/NLٰҥׯSwY@ݾiꦥKG-[6АY^ VDfۭ{"H+c8dq"}ܹC-t:)ONwޛT_'' '@O562ﺓv}3&{|`ѽNw/nΜ`ፇk׵ —,EryN=pI/V[Z|G dM`{@{P^Wxdʔ{DL6hǎT̙ATwd''ڻFs3{޼+ƪl(kaa;e0 idĤR(RK<('gKP Ȟ+\*_z܌1ts}awh S^I{LfM O|T"mo61mPa[&?gOHJh*޽7ΜymT__GutyRwQ^sg҉-,L[266[].0 KJڳzYY̙QQ{\./99ŧׯ,-Ϙ8g77+՗D~zX(g ٽ;BE dONio痗 $xDd8....pS0))V++`w|vCu|}UO =mڠO:F+ݸg%Ӧ ڸq£G4Yk+';F+{##}-←Y_/_^ԕʼnZ'@a0j*v$xƤW/{XT{F|1é~ 3ZZ؁Ya!"眗Wy|8t ~|\|9rOqQ|N^(2L.1[[S|]]97byLܶmڼyT\IWW7ݺJcWVVΝIPM5=xv ##bX|jorĉvvkϟoս@h7MMm! KBOxJ zccAN~ob7N^x:T>|С;kNI=zޖ- HY5z Qs3srȽ{;zc|͵~9 \'͗H3ϩS_< ^-EGlu†Re:…G%%o(S i4hٳWfIlPH ذ!\gdOƑ8dcO}-**֬d{t9wiz`Rs >:d$>4h[KKF@Ο_}BEE㟅x^=!2hS @ز哅 GC!hOW_ի7%%'SFqJq!'8ccdzNXC/^ :G?wo#G=2*jbX}wJcca6noddph(U ٽ@055[aAAKKD6޾Z: '@^EE5Υv}CWq7T-ΝK߰Rk+Gn/_U9#w3yD"J>Ǯ]IGsK" ɗ/ꋇ 6m\Ulld w'ǎWdX!?yR555w tr \5lwtmŋhЁJLv 7͝{|A[J"kk{41XKG1W3OzSmg `!HD"pɓl/׿_kWW˴ J=)@ {:VQѰwsx ǎӵp8tz%^gL*Lɣo||LMaVb^}ΝWk`'wo紴32SRe14>d' CMAAy¢'!?^z3n/|{RDD|y*P?.*-^90Cƴ~~޾m"aժ KRK_f?r9|!PH~;nʏ] þ̕+"ihM>8:znܐ\>[&YrUWw K34dO,-}D*a\.B!_rjӫwIJ| B֔J}lXUα\. 2qc…#X,ӧ%Ӌ-]]-CCæF-9P/CIl $<~ȏ?~LADDNO/ "hffxj''nԨF+KO/|dH[>0p`Gsޙ!!j) O֬9cAII)ԛ7_9vw{*=mm۷sbc>,$pm#4k֐~K=JAeke%*AH9y2l6WpB!͞g 'o͒T1U,;N"Șc$G$||w9߫С!!:0S PCwN&ٙ-XlfѢG]Z82byu!?|XP[LzvWild]{ADin:١b_}uZh ]JYoͽ{oH^O$~iƜ9+Z0m~~9 I$bp Tٽ:CxjeQ {DqswNb2'? tFWW7!(9jgI\]-}|쭭{"w9f`@1# $:twg._Br}8.Z4bAtȃǂ7J˞ dRPǙ3`2i=$rE?$CCʦMRۯ8B _ N}9nNw([=,,L<٤cwNLٴzBd2Qy y _lӦ05'|ڵ[**ީD0NB$ˉ׿EZfĈ<PH<Ԩ}7N53,ʹcGl6H$d.]!3f7K]dMF_I@/QmB())r8\>͟}Te%11s> H< BRwgȑ?WA& )~!ɓ}@ ddl5S' ,}^__xc0 ;w.}KOb .-1IIY` B](x<~QQMNNyvvyVVivvycc+B[72u¾fK ԦVZAiŊ˗UҺ chR77+))>/!L&c"f>>>>^^޶:6`F+0a_O# Gu9}ڵ tib LeOlK r|]# B>4ؘ eee )r.nii=|snz= Z׷42%% uum~`jjnݺ+` %۶~οcgЈ.)w![ϿoMPoֲ Hvv]\{wwpaooB"iq`y]5s86p[Z8<E D8q"BQPЦ&βe7eQ@!Kl'''x!++gOOܪ7EE<H$P($6'2@@$}NNB2nl60__eЫW>}߾mkih`յTW74׷׳Z[9gb**jT[ZZ@555uvV|_}vSOEOH77kjݥ.d >PccRJj??N$GH$"\DD++;=mlL\-tX'`kk㫋<ѣ77%'iM\\,\J=LBv_455ն􎵵u߾c._]]F䔷pd`@GgTW))H ?qf##_jE[n$P]݅i{={;:tqptd`noo`{ 5$̬f@@BǡOO? 099994ZًeFF:5[;P dggfgg7ߌodO@u&MSwA5PI'hwip»?L&_pA=!!ŋ!-2kĉ BAA0$Ҋ!ÓvJS`49P}ʫCʠ@EǕYXXXqqqJ"gH|xH'rpBL* Oe~G͝;F1 411{"V#.tvgO\2e***v0`uVXЀjll\t͛{\IIIVV`wXVOZ1$I*iruv/wĪ@o';{urJz)$Px\y޽{|>?22S%i? G}LMMG$@WxjjYnݺճgݻw JЫW/+Vlp?{uX`#eK?c}@;)]Z iW0o<+++''իW!B\\\޽-,,~g@@A"" `llloo/#r N!yMR{1lذǏG 'ݰ~*ŋ_vMqDsL=VW?..zɒ%.ܽ{ iܹ_|EeeǏ?_~Mv|ĉܹe___ŋիWK۫[nG8~8Lnnn' s;(]`ڵ;voD=ðcco"'Dlr%C:<ѣGoܸQSSsm///|›E d2Bo߾ş<~x:#//-[H(;0bFUUUwi~r:,ʑVٲ#9ڵvIZJ@i*1fDð9s3F$PDDD}}ѣGB%WRB*+&YPP0mڴcd2 ,XPVV$܂#K+x "\۷ҥKo޼v횃yPY)g,OR/ >y\J;0o;<VG\#Ixu}xI}}pSQQ?}vFa֫WK.}^uuu _~MMM<OӧOú&?^!lٲðqaBF~HLLX J}̙3Fp$''c? |9///ŏ&B! ?{ɓ=+_[bUԮW##fDH$ z%<Bxsp\I -p8Q(#F ~Uss3ǻwpp܂#K+YTjLLO:Ϟt”ϞdXbO^QD-Ҏ)L#2AU5K>Utðm۶H$g 033[ŋ ðԈݻ^~]MMM'O 7pt:]O5q񇙙ٽ{ \ B(???99ˋO2/&W?\%Veee )h / N.do244Qh"T];aUזXUq@j;)1#rϤhx !dRy -JHH ߿? 8E^n])y##L?~uBII1 aIo?zip=s̠Ad]d<Lzny ūK!Lg---cǮZJJPRRoܹsX,ϿpB]]ݗ_~^WW'q7nL0A`ryBd7oެX"::z7o^hLQ!!!MMMoߖ6zH:'uuuիW#t: QF'Kv%Vʗ}.Ul'+P$oaa#HijJb>ӨÇ I-br777eJBn$Ѱ~* ao>;Ncj{ux[ _*9@Ct.{,X|g߉iӦ FM0СC{}ׯ9|7 C^aL&P(ccc'$$|'q nIDATBOf2𩛛%^-Z/DZv'HӧO_hQ``jjj*tJeT.[l͚5nݪĊ7ǎkll}oɓ'֭,(qTIKWʗ}.UTUd#]b_?v!r e̙+V(..ްaÜ9s$V@ l6X͛7#Jdv 9ŋ*++oܸi&'~!.$Ѱ~*'-myy{NZ\\rJy.:{2};| [j͛.a߰ /_lood2ٳ_"᭭mfffgϮǷaعs<== |||$p&M$\;v{zz&$$r!!!&&&X:cbbu&RaXzz:Hx"&ԭ.99!t!9H;x"I$ܑX Oiff6a„kkk?رcVVV˗/gX7*Cu6%+GZkKr*q ~$+0?@ ThQ TLfg}YXX8;;>|x666WSŊBxgioo޽{pp0~_4*a)Taﷴsnd: 3iԢP_+*?tssYj:.2LaMNNӧ=CQر)oooT;~ȑ#?8@hNl}}}EӵL'BIET`,A'4=_7^~tL=jG"##322Z[[=zqƯJ݅@Un ֬Y:eʔ ,ZSG055EF>*P=*4@] : F́V;@+@ 4 #wp^~t '@@Ȟ"NYYYMMZ> d2MMMu(T Pc <@- @Q˞899)c<(555^ Ïhnݺ999)P~NQT{nU +`Y { dOd ,&IENDB`XQilla-2.3.4/docs/simple-api/InteractiveDebugger_8hpp.html0000644001725400016040000001332413273140077020405 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InteractiveDebugger.hpp File Reference
    #include <string>
    #include <vector>
    #include <map>
    #include <xqilla/debug/DebugListener.hpp>
    #include <xqilla/ast/LocationInfo.hpp>
    #include <xqilla/debug/InputParser.hpp>
    Include dependency graph for InteractiveDebugger.hpp:

    Go to the source code of this file.

    Classes

    class  BaseInteractiveDebugger
     
    struct  BaseInteractiveDebugger::Run
     
    struct  BaseInteractiveDebugger::Continue
     
    struct  BaseInteractiveDebugger::Quit
     
    struct  BaseInteractiveDebugger::BreakPoint
     
    class  DebugCommand
     
    class  InteractiveDebugger
     
    XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.map0000644001725400016040000000046213273140075021436 00000000000000 XQilla-2.3.4/docs/simple-api/classReferenceCounted__inherit__graph.png0000644001725400016040000025745713273140076023033 00000000000000PNG  IHDRP{{bKGD IDATxy\TUsaG-ET@LKKTz44I}(|B445_ Hhf""2( 8,ǭib(~ s3R4Mm PX5 PX@WJQQQddRv Nеb =VVVv ΝKJJv .ky+,@a ,@a f֭[nTKrrrZD$Ɋ+zmddzꆆBHAAEQ?PX|@ P7N8Q$DgBDiYdɥK۷x?jԨ@oov@օ~YYYB.]:w\D"r/_&m۶Ç̡W_}s/EQ;vׯͺu~޽{3SRRkkktRLR.x<;;;[[['[C6~x#442eʔmw9xsVZUUU5uԔBAIIIӧ!prr7n܆ Ǐgee[.22СCׯ_v"߶mۡCRSS9d{ƍ/^8qDtttkWZobǞ[YYItvv6!$//OPd6BNO6lا~\\4_yzz2/KJJ49880;vlaaakWbo\S* >>/wi8rHgggBMaaayyy E?ىueBH~~>SӫY[[ Bf-:33qlm'kO.//7KXXP(l+(3g2-&&&i>|ΝgϮXٴ\p?1cɓ'GFF}m97iR@Rҿ,w(Cg?<Ɣ_}l)+{l>x}ٲ 3ر~‚{ݴExTt\ܑ4qjx avbqâE ..8<wm kxD53f_uuK\U(uhƌ355LMnO9T^^;lusNIY~x"<_m]i;a:7nPU3+t))׿:!ajxHutҤ-Nrbss< ٳK$g kx*TTPPBq kx*z{zxj; @GKMٲ%#66=p=в˗.]03k; @ MUUq6k8,3 @kT*zɒ=Em2U5<&>,2vBa qLMǾbA.-3fСn~;KY؁kЂ>Gul qFF|=m` knIIYX򒒒^z)"";w5tG~))*,reXnQݧ1cȑ^>MPt nُ?~PYȚ5k(ZnS-i(Fy_T djj:t/BP8ۻ[QQδE=E:5t98vB4wuuƉ'D"HtYB/>>>uaٳgsss===MM3jkk r…Ȅc*,))ٹsX,iO UVu?"tÇsϟs2bݸqرccǎ"B$ !]eccLjoogggWQQakk䴘 C?~Ν;trr=zѣ7ng=6ugXP֯?2iRA.B!|>ԨQ\n EQ #,]tܹQDr/_ ͛ڳgOtt4SU3y<ޞ={gΜiґ >|Q.x<;;;[[['5ڵ1i$3wd2%3BJr^^^#F8^5@?gUX #442eʔmw9xsVZUUU5uԔfsJJJ>}L*J$DO>$<<9555y&/ܽ{)<==o߾ͼ޸qcaaŋ322N8b3R=rǏb͛7oذ!666???**jʕj2~~QQzǞ[YYItvv6!$//OPñ.'O4H >## &[N}P(VGכY]]MhrQΝf6 ,,,"y]&HRcc㬬,OZw//]vڽ{ck (mlkB?Q3VA E v#!DOOL<<~w}EktbZ(zxxBꢣ̙sܹ&XXXj QQQRT}s?R433+,,lD"Y|/Yvm]]]䚟...eeeb޳իRf&C͟?D"]P_xx5챆[_~mӮ !$&&v\UTT O֞—K|G힪;vݻWYa5M}UA 2gΜѣGk; t7X2_xkz뷞jԨQUUUNځk`\LN <9XvHX\2TA k`YR҅ѣ̵[6UUI=ʔ!E`Wtu9y^Νcf τ{i;PXRSsƌglúHZZP讯oKHYw 2|pm` k`MMM]f[gtی99w׬%3[o |ͺۦh5nBFWWUIW>x@a}ߵ&h k`_|QWO/?䀞 wv4o7__R^^;oޮE~=;#XvܺUZU%9ҳHKýVVƉ1£&BccbpBno9gM22Y:5…€tud)+!aa/>>+PX; e}K~Y-"ѽ{U/؇aVHȶ"PUS5;:/8fZZެY? ؾ}!#tw21aI扉zz:c ,yS@v<'/11VBa-+CO$''GGKKː v*ԍ'ND"ٳ_|||!gϞDs̺:۷o[Z`aaj*Vh2dȅ bcc###Ǝ5`%%%;w555홥?jԨ@oooEvp8Cs\ƒԁ租~br9dzxryM68099yɫVzۓAs/EQ k-!%##5 `ܹ̙^|gϞhx={hv?sL`E-\í]f]v1'Mtdͻ+{yy1Ox:ig4is'}~+*w}MQQQ>>>MNhq:''V,߼ys1114Mb}}9s攔ٳR^^.H [H}v]]]DBtll)S޽G1?6mnii9k֬j<8p@u4BNZ]]B>|bBoqĉ_W^r={TjBHEEEw?.H?WipႅUkv!;sT*M)))Lmmm8Ç;::>kxʡNY:6qW_{y}Q]lga[YYItvv6!$//O kMfffL))nܸ!HJSJOOoÆ *VT4- !'N 7o|WgϞ]TT|u,ZФ>y$MӍL2]rssiV(4MO0aݺu4MVX;wZ;l+ºUkvWJYYY4MO>=22^^^vRϵ{nStu9r;OϞ=̈|BV__߶{ BBH]]ݦM^b}}yI$LKK˓'Onڴio!ܘ[ZZB[{{{B>q+W0RT&INfWO/Mp8'O>p?wB,,,srr'''{μn~-vr'Nܷo_SSS(-vollS 8 N޻|uuݜ9>Rt%pyݻw>$$]ti۶m **))jܹovUU!Ye333MLLllle&.]jjjjjjJ󋊊j#CC::n1!C]|''''&&9ٙi ѼT* jҽ 7F.ͯ_Zw77+W{]v)m|yQT}oӧhggO.//7KXXP(d6ݻ...6662Q__~ՄZƍ~Xبr !'O,.. )?BիWy<^XX8!BpÆ mdh;v #&&f̙1cƤ aÆ999-Z7Nzw Dl~խE7n\uuի̙nl}…</%%4---::wЭOٺakZ: **(!!AADHH!$11QAZ )ff ͋`ر!!C9pΝ;v̛7OYS(ŠJTؤlꭷZ;!C̙3zhmgxNv{)Fz7djj\ϝQF17-m5t S:?zTxNwh)NkźAѫ= @ PX@s !55unjS#bhgjjX^.V6\P_ k,o7U*W Yfׇmiiuuu !E=Q/rѴjӵU(lmb}lAXKp„ W*<_.WGe2eP˘1NfCCBa ecc{y]V&.)2wg4449A̙/[[n5(ki(ҥ}о}ǎt:@a dQ_X]]gee|Rq@[%+nغ5bޅF k,gg+BHIIQnSIs""b8]4@rt(ܜ[W4M'$dOO_ѻ St k,}}] t !_QQb rX k`UIIJEٙ8rV֝sw<4 G` k`l.W'%]njys#NG'pvwr4i~w̗=TÊ5յWQQa`OGo\cǮO6 PX mhh;8wrw @襗Y PX l!rƬ35Κ}~~}ϑt5BOOW.Wuÿ{ab⿻f] _^P[bqCh7W8U5G*xA:/P(Oӌ?v{ }}Ncp ;v^5KKcdD4wuuƉ'D"HtYB/>>>gϊD,YD[kkk r…Ȅc*'3KJJv)jjj3ŪUa5@O&Sm]^^+LL ԇv8M=k-S˻qƱcƎE122222"H$Bf!66FpBp8//ܹor:ѣGq>챳X[[k.@;aK277kB9s^m݉5*00[sѺ8-󺦦f+VhhhhQM.x<;;;[[[' !rꊖ~YYY1{쉎fj1۳g"##̙3MbSpÇC]&M`d2KKKfݕJ뽼LMMGq'}czccD 8m{o|WMJ2eJ; kT*Hjkkoݺ5sL}%%%YYYG9zhlllkj7n,,,xbFFƉ'kkkL  7l }sŭZϯI!ɓDLcuu5!E;wښ%77WG… ,Jh>}zdddkݽvڥkݏ1մ}{&&Ri!F}ǽܺUWaZ7>P(-׷^BÃRWWiӦ_LT3xxxب9TQQ7477ϟ7oD"iHc~ <-''g?U5bw.;q}?55˭uoll\J8p`k1z0lv(*Lѧ߷駳 l R)k!fҭrͻw^yyùssNNN-6j,-3[ՙ!!!<ҥK۶m oQsɓ'GFF}2Q__~Մ֒DGG3&--M(&''6iѢEžSyB7hmqUWW^zΜ9m\… y<^JJJiiiZZz6EOyS[Kr2)邫i7ޞ= ,7nfJrww_j=:::dUUU͜9W^˖-oQsLX{YZZkRx+++m۶$Z",_ח]yr...eeechvo2MLL$I =<<,ky( eebKtu9o…訨Jw!!!n X8m4!Г`+ʘRSSlA O[M Svq jjlluӯ)q| XXp::Evv MPXk,,B-ܩ5Kۉ k`%bff(4 kxXZWWB:::/h;@Aa 2GGۉ@aaBrJPv ν{?*(Q?G@a aVRH%vvf3sRR.۟{Lv{@8;;k;PXk//^z_RB**j|昙͘1mmM' k`W*]P"i(+{ 4}H޶m'.]*u 4)qЭGXca%\vo_E)[K Փ5)o*/)n.GJo:`66XZr !EE& t ~vm͛7iSCM~(5Ƅ*XEEoʱcWxc֭3PR5F__H^beffu}}m'npvJHXk,y(M\A}# KkR_/䓷gٝϝh'&CC=]]aEVVJVL(.^)//ƍ۷ogmll!#;99k}ٸqcT25)&&&###((kYYYEEE;wl~rw,s5C=䶶v-WFGhNE-\[ԯgΜ9t萿?upp`ԗ^zboodٳg[[[;;;X.!!_~VVVqqq̙{쉎p~\1۳gOO<֖rvbM4IpDLfiiɌмR\~#Ο?o/5NTI$2rww۴gJ2eJ kB۷>/ܽ{ǔ)SB "##+**233 !M,^$++ȑ#Ge*)!ѣ:BI10pι7>P($__'D(7idtռ !͓H$-)J%%%kGGGBۛbaaaooG >/IM67ց}߿ySׇxK.m۶a8Ν;wo߾ļiIyT9c[[[ Bif=44t߾}===[vuk׮q= k`GUHr!Cܒ.pӧO%,,L(ݱNzw /YXXB~GXye2Ycc~}}ի !!Dy޴iӖ.]ZXXxO>$<<陙^ZbjjX]]6Lۡnjckkn pwwW_~egg3gdgg3&׮]|򀀀ٳg7haa_{{{9Rsc֭C7nܸq"##[cff=d駟?EQ%l v v`lٲyra斨TihO} nnn{}iJڵӯ37W``}̌!'l(23BJD" z #)~|- IDATWӯWWK{?':_/GWw֠:r Escc[mS]]7q>x}x_w%!0(S Ս"&)S\]_x055ȑV[͵ z8).ܑ˕zzZ|T*KKKI|-BȈĠzh+U |G%K߿ƍK.ڲeĉE"!_f^BzEٷo@ >}zWD={l޽Ν;/bee%{^~ɓ'8qsW^y%33$Ztu"Y^IU*+^I֨@kPX˻qƱcƎŴ=ztvVذ>Jz?|ȑ}/cccwM-Er{{ҚrĬG8,aja+<>?jԨ@ooo@n733۶m{W;ڲe˼ϟ$555g϶vvv^bECCR\~#Ο?Ϝ)y<-Ǔz~ޤI"""2í BQTBBB~!/AFFҥK57lذA=~;lLfKFF3g:rM8M4EǬYJˋv>=/>y G @4MBAT޽{w4MGEE=z`رׯ/**jW(6C FFF;wlrNxx1cn߾7>><8|#srll)S޽G1>JEtJJ\.ocSVWWj&lhh)--e~l2QlLf7xĉ"H__Μ9%%%{!7y?]#H$̿>9RVxy}{;86'pw_b]~!D]F7_h-LKӴL&qD"Q*NjŷKsXa88|8e޽y'6fÇupp/S {]N>]ZZ=СCܴ|BammnR455588xذaÆ OV^rʰ x[neZʔJ;󣇇GII EQ~~8Gg988]P(h2˝8q}zaǶ744  !VVVO:fkgz{{B͛'Hh|‚ְgǯYYO:da]-(]^uB=ݫO@T y1-W1114My{{3/E?{?${DQ9 "X T,܊h+C@-dC!~7ay+\{syCΝ3 7ngeee<_PPMN$߿off#@QQŋX@m۶O0аNpNEpǹs8 ﳳXMR""",X@BBBxVrq0Ói4Zޕ=3._~]1e mmNJ3A/Ba2 @=bLBBBuu/_!))j*ggyfǎ...w)""u>ٳ+66gffٝ9s[^SSS5l-B]v-': pׯ{{{gfffdd8pŋ\V>nIt:HRfH\}o_,@MMDmtU]x>>Q|~0Y5AÌ hxTB=kmm*qF[[[%l6[__EQ&~SSSqqqooo*ݸkNo6666+WTPPPUURL&SLIJJ755YFNNNAAͭ&))}I_gp"3iӦIJJrVLOO666޶m[KKYے:qℼٳg]\\d2O$_/xzZc}n3f&/*q(2Lڗnm ƶFjCC[c#iL? 4OzSjk-Y2AuZ갰duue`J AHkp|c jrrr<==߼y#**:ypjoHz5J^0yq6zCC[CC[}}+BimhhPڰ?{J}5,INNBV$+KRS=Z {bũQh$L&Jɓf0X/}zRR6؀≤_\ɓ,<Owyʝ1_5+ʒLLT9eeIrr$Y/v-[kNndgW}vرgOtiiu6'APOJJJ**|6]WWӦMp6@>~&&|'>jh˓]wflvӄX슊&EEIuu999W,s/EW6s=큗WgOtBB΂7onTWH!An۷oh499 2Lb0Anܸabb"//ht5 @H7o.++KIIyѓ'O{{inT+=G,G"D"zV@P?+)ŮY?^H$aE㤤|[s^xy=z}$  H<֐@ḳd/,--]\\tuu9011y63//w!ŋ3g2 ";P՛%%%y5O-### 333ǍG 455_~=c H ,Ν;;w|n_Ry VjjѫW?~ p Ɨ[3FDl6ͨ>AOO)S !(11188OE--S4߿/|y?[b##Sml9⠦&;Ѷ?|pݻހ5PrV$iѢEQQQGw޻wEEEf222555TTTrss`, P(="aÆcUUU,3Rn``PVVCOLџ2E{ҚէgnL 444a[S+/׭\9oVhD[?bb".,>tpp!Zl٭[Lm6ss &b _x%   %gmm;wsO%|ST'' hՕx|AA6I~~:w}!''p…i ا JKKa+аYv UUYmj#;w{.АL&>>řvvvgΜg\pׯ{{{gfffdd8pŋ\V>nIt:HRfHDDDnZXXÇ={>y22Fwt< SnD43(̙JNUC Y0ԩSU-'K.4>t萔gϞmffƹδi8]%$$M>ŅBz3}vRVV6((XGGΎ'ӧOYZZek34RQQٳOѣ3?ׯp  ŋ@x!h:zxogrϯy<Hqҋpvv_#<7B HH9}:AMfqƶ'W=Z=6ve?l h A+.(wϜs̙3g8pۭ P4  h89ɩLU2޽ %%9xpʪaaa3f̘3g1u0 ///eee2`0޽NPn222jmm"'ZAnܸabb"//-I$*bkiiYXX[kB"[n۷˪1^^^ܫ~'0A>>nddtUζ]ύаk!u--U.&%նo7,MZXXTTT, ;vlkpŢs( @VVqqq|ikkfϞ]\\̳-555ޱD"1''gÆ ---<<ooomjjٳ .`ddd̙3{ &pwW'H-=z{rttSS€a؟7A NP5AJJJLLl$))۶46?1>F@VbO8۷cOlP(IIIӧOϙ3_~DڰaCiiiuu5S8W3JurrJOO?{,SΝ;ӦMqoggdz:Eϝ;?t|Wwqq{  ;[]GG>~7 15$ϟWVV ޞ`gf֧T4~Xv7!!x4XHݙjWWWI/\._ĉ|Kaoofiiyɵknٲf`NTRRjnnFӉD"JŦhnnM>}:㞠c߾}VVVֻv޽{7mTZZʳ,0UE߻wܶmPmmm)ݻx}ݽddd&M)چK'H}ɞ=ѣGt6""& BQeد^}rs˨QVWTUe8?zƍKl7g kd%MMMk֬SPPpsskmmt:wQUUGpIIIhkNϜ'N<{ LxSS–_~eر$i̘1jkk븏܁ijjVUUqܫt&))L&SL;{0?AGee۩7o&8:Ntt"G A rp!uꈈoN՟18&& )) Mݻnܸ!@ ""B؁@PoROh4ӧR?ϖ[,8x゠f99Um-~*6y߻ZD&K/]:Νt,`l/""xhoo///rʭ[ A|Ęt*1uٳ+godwfpkEypLc6o1˖khXlSP$''/YdӦM3gv,kgIq#He6gIfl4|L?W$ J!|hk/y(.SS;qbfׯs~!ӧ & Hp|v1cF}} S0Έuf.7NCqAзn XD *a9e- M$6M&K߾O>@\0fQQw33F? |@P<~y : +.#߼Rյ"XC4 gϔaGAL!>Ĥ& IDATͲe` xTW7Ynڞ=DE9QUTRRWYX]T\\W\\WUTVVFȐnjQ7ϔLVQRАq^ w' 'YHls##>|d{YLa{104o CC7hi)o`b0X-UUMu%%uMX]TTDڈtYYYTS[[A[[LԔ'0AP[W񶴴Ts׮&I;.h,++v el"L&N$%E4nllƛrz4ED///,0}ҥZFԻ 'Аl2aAjj޽65HYYa$==%a4xzzN2E؁ WEEt:dh,@{; EAnnAbb 'pGxˡJKT ,oơe45q~΀>|bu,--uttX7o"#>xfmm^nla7E4Lxbbb9 [SR]ljyŋ-$%EA=Eb0DDH>6wb-H񆚚,v w񆎎bG!F6Xpm|mdEaAPـ@P8?7|Lnb0X<$!&;a@A4bzdJ>BC?q66c7Mf3]vW&pȨQ*yyUrcƨ،VUАSSSVwz _0i>}J Oo0Aa%K,$$` 46. y7[^pA0x8wnЬY11Γ{wl+< ȱcDŽ .~ CxLLx@$q8'sE) A N7̗/?EE>~%&&2wXGGKX ;99u EѱcǶ˿{wIAAUmmmvSF@aaԩS+** """h"""QRYYeeIIH=7 P$A7X 2\a%aaʗ{ ^e0S##f%6EE.---A)D++=++Eo PE_*  LUUӥKllg8KL܃|f̘1gccprAnܸabb"//غuug[ZZH$gpo''O\nCCÏ?cǎvl+W\111QRR:vuuuedd JALҪU#qb]Ǝ5L&oݺF 2Lb0x 10 ;;[:ánV}׋ @Fc<}Q|l }v\ @xxxml Pݽ{1cW_t)Bx"˗ E1c`:$77Djmm9vc[qqqijjtɩ… ZNǏ3fLfffVV֤Iv<'6''')) $33b׮]]b׆n^z hSP}ɞ=ѣGVWtr:FvP$(A뤤$P[[hZZ ++/P\&y;u'.N>|600 \NF81<586Xp,cc㊊ la\\yׯL!&Xc=DUV6޾zVrAAO?rt"](,,d**Ecǎ8x{{hSSgϞavbX؟eeec)))Vs+..644tS tbllPTTi ##EAАky^՗N~>uAL̖/wyxXìX,Vxx'}vlkq"9GG;wDDDL6MCCCN0x<3??_]]]PԊ}81ظ5 ''ڠvP($ X;wF租3ΜYde' h%$$TWWJg幹]=}t&rJ;qvv޺ukaa*x+Wܽ{>|ywm۶o+Vgffٝ9sF &`>|O]7h8s&~vv'RR mIOisxa[fmmM&9K,,,UY455988tۉδi8OVSSk,c콫j,.KHI9o",",M&K#=Aз &}]bŅ,`?xqRiiA z1';.*mjratt=h4V{{HKOn4}:rW&ªflH$pƶl[YYZWWIJ A`b'ϟg]\&e& Z`5YY=]\\SrDTc3--##}}2,"ڷl22$SS&rjIJm,NHϚvκeeiee XXAзy|||X.8HrA@k-c ޹c; cOCCĉŽ-()sjH쁖| 2ydMM H",`0T*Jer]<"Q*+&꺰˼hC }kw<"#####7 =zTGGT6':Z[eyA< ũ55mG7u˥+f0X {YaI s$D}񈌌LLL2e-Ydko?n;ለv_`wv;]ZZ3^8}ъSAhMMyNW /'CP]]ׯs{}{m KtfE’kpx Kd{tseL]`5Ϟ)ol:@;]XUD&3 *a$or?{ѣcѠ'׮9~ԩgDMS lKaIBBNyyg~n"SX"A]5F\ǣGo%ΜYҎ{34!amaH;}56qTAr^^Ummҥg. rj9Ůi.+//o>3(A]]NMMVMMVCC>@q5ǎ=3 R~~UO{ɡ?}ɩjlRɡtTttw/agڵiӟoa5?8$]SēWʒvd'%*+>}q45q**2**2ј?S)X]^ސQZTT "*A7XCRR RP`qq`<UTWWbk;+02RğdxB'FmdO~ÆSnL:uꙘ Ė-sv'QQggXAwY\Νy漼.ڣ(zAC-[wwwOHHJ?5kP6= 6@޾-}Ҋj6FjK -3޽3gwpv>7e!]ݝSrv>wF,ߔ0 1qOx' MM5aV u + IND |`7U՗?Z|rRҞ_/"#EP=u*nS:o9vgIXXOFF e6yyyuSjmm233<<5njjs=Y~vZMM37X캺pDDTξ~u6g0+.X`M\g,ԩg[p?eeD"׬VVFMs'7eˬBCb?}k4mu#/+++;;ӧ666999FFFqqqqqq@KK @EE{7zxx̜9g9_ݞ(**r> OII)>>KeΝ;vؐ4VRRVWW9s̙3ԵwAn}A>X׭~R O&y%K,YL&~wHOOwvv0k֬gϞ^z…aaaxGb^rpp{;w;vlѢEΝ܏;ޱ찰+WΛ7oٽ{(gOzĥK 55Qѡru }u=ڶmL۸qcJJ Ϻ5pss?~Xg /^,))MMM]AAaҤInnn,.2Kff( ΄>}ZSSsܸq?Ɩ{yyIIIZ k.))5k(JH{{QQ99GӧW^ĉ:x<M4A hp ̯][}vB?z}6RRRJKK0?~AV444 `ɒ%;zh@˗ GfgGGPuuuFrJ@@3g*++.:5(w@QQ* /Sjkkkkkw\qq1'￿ɓ'l\]]UxvLvwEnLHrJbM( XNoe[ا"jZ̗o)܏{A]]%]]%bU'%|oFFIUUSN }^ݻӧ_̹re(aaaL&;cǎ+Ⱥ7o^~ӧ%UUU,K__{"aÆcx]t}ؐLpp0vc5vRNNN ,hƎ mo֬YRVm۶av6s~ΜWwqqٶm  ;[fffX?vPp|xufhkkR$ 0}/nڴ500ؘ^4غuk^t ?y򤎎N[nGYxxBBBtt4K@5k֩SE._},,KK+3"(rfYx+++kk]vcSoڴRSSS#))b{aOun##۷BҮ@&K{zޚ:PHHNXX5ܯ=lƍܿ>}ZMMLJ$++jllbggsꢫbNKK8q޽{]\\DEE;6:uʕ+%%%8? ~$K.,츺׎; n޼)؋ uׇng G&{B #""_x!h ́""":>]~Nzd۪&"bwe˜-88'/?fw}w: pZ|A***u zzƍDEE)OO[''!;z=!|?"Añ 3&&j&&j>>?ĤƾSU&FPOu_( :Kltǎik+hk+hi)phjppfkhYtbEч71zɸ-[游LnD A ݷzKAAr7k'O.ohh+.+.}$\\e:: =PԔ郠!k۷S-:ylO}|.]z=5A~CP7%왿vg_K'\؈u%%uuO|()~!uҒ7nwÇϵݪyׯ;C?؅A&$55C~զM쉶 \l< z@CCq~$&&EyWU5Tq̲w3.ǝmkk+(IKA<cҤCʹϟ)nnBCݰozff[Ó}a|bu5S ϛ7OLlH:_ j >>QFF_mD5&fo}ѥf %ԡsTZZ}Ng=gy3i$&\w?: mm4KK]1 )+'DH0YYeghD"ny3ΝtMMkX1oH·55Nr  a!",+ iٲI]GQ4**{4knn3;$ E^}}Cii{.\h.술PWײmͿ@D6Hٳ?ϦRcj،3nP(7tc#dx7{,^FJJl֯?T|[[; P_A,L5xvvBc#5!G.67<wK}}O78!HJJ~%,9z9|]8$D0$(^p@,xg\܎1c팷o >F 3ml̘1Hs-5kjZ$'US'55K ,y6PUXT%.*4), oo/3ܕghh8s挹yR(\2&&E·lb?sʊ;9Y߿Xj}p^]?L?qBDG!o.<#F}|ӧSSDM3ck;LJPGeeӓ'vsϟ544|&k<~%*J@QGw^@÷o Mv س'֭d7>>?oL[K m׮ի;zti-kj߿|dq Eߡ`!Ŵt:32ٳ/JJ7ۺusGX#k``Џ(uQUWW+++WUUoq'UU&! M z$%abbFwχ5hzϟ~eܱ5 ))zP麥k볳35 M;1y;#>2~uB#"z9":%!ʕEEǝϥZ#^^^gl1 7n0110L___---%%UV544&O ^TTTرcG{{;>;!22_.Af0^^^d2ˋ`poqSVqubi4 uuһ}{nhl~}U_z+-h޼`E<oLcl'، pJKvGlje?xի/&b!66c=`o(츆.]`/&&&ٻ@?gf[{!-R*EIWO*Z/TzB)i) l0qߛ71ƌks{ޯ;瞓gϞ 6|~tRjj۷ CCCBVۮ^<''ڵkׯ_Xg>}i&qqq|ՁJJJ|͛ ay'44ֺr)vDBY+99-k۷1 kiiA&&&k_zyKK Dz<11Ȉcmy+f33666{#XXX~鬆Z}@=שּׂjӦDnڔX^/AΟߴ)taܱttyׯw>TĉcdžsBGhp3g&'А_뾫W 0x.2uT!Qѿ/++366_Ϝ9TUU1 CÿG022*//Xg(ʊ+,YZUZZA kIII>wu;45四 Uw+ƥr L^ Н:uoݺ5k\wq~@bIIC?.3爵uȊg.\x\W$ #555;۷o8يԢE^8*++n2cTU嬭uKK?+);v/++M ٿǏ9ss sӦinŽX$q`u6m8J[Znrw?Q\\-5]@eѢS..To"//:{l]]ݡC_xŋիWi!EEE̙[RR 4׳* *+++((pss%mdbVVZMM-۷_Wٳ&'?ht۳g3wjjj^))~b@O?v,'d x+WKiZ{6%޻Fc;4W>-_7u7^;὏u ;w&%%!>֬k*9`ooo2aFsttׯ?_SS:F`0JJJuuu/VPPPRRZ|9B{}q֛-,--ut}D]Ҟ/\xRGlcPЅݱ#x\Ww͉80u`0ssK_ݸ񢨨JAAm!Wo_ڝ;ey0qXC=|kv!!Od3g2=<8Κ/W<=ןttO;w!&.XpbL7! ʾLO0[ہӦL4HKKAءqɎɹ3fMĚLn ?֭k0K^^ٟ%'WUY[̜intYA3O2ӊ-H52AQz7^QML]]-]]-Շpܺ5nrrŽ[@bݞ^X#FKzYL…U/=yRF;;ilf$#@S]]?iRZLrs~ kBt:3/4=յk()Ɍgj9nh4ٳ0?aBǾwĺ=+޽;ti-?\32^_{+9fɔ)'Z)(H 2 з57g>\Sp"4-$֠5Hrr~nn(ipWW)Skh ;С'O30PٱH$]uiQB-n~mc[_OX/iiSS `M2m}̺uOך ;sAb +%#͛ߎ"ÆVZy˖?_Z3!nOJBff1 YXh((Hgdڽ{yBJݿ_ JN__EQȑۻv9Tƀ^kбfzNλ7^^VSرfǛKKCGpӦr?[E\\D}/H O11YӦܿ_ƞyJݹի7n=aA O̜yxƩ0d5$֠s޼y/<)6Lr4kx_0h4ƙ3{\UVݶm#.X%qq9֝gȌ|DC׿h4ƃEii_VV~Ԕwututp0C4O@k-$֠|iu͛nzԂҊSOwkWʥK;wz ;.ĺ=..*rr iiaaP_Oί=s|V7F6 ֚5ܺ:#cc'}OSS˽{o6mJݢvذm7nXOح[pDDDݻ'Ecdž {w ,ťK}zK. t MRXX嗒/0ݻ'"҉DuU? tVJJ_&GW<&Gl6ٳ311YMP***S%$<޴i̙Cz'Otv =DX׈yƅ GEDptE{KKO2ʕa޼ [.JŽ>Xa#pr5E$''S>b|~5V:: REEUC^ oofڕ+O;v aaa%흑B e222Ç߽{7$cNb %00ZVVvذavb=~== >>!''ON59u노6WH0WTTTTT<|!T 6;@Mm@X'[<|XQQQ^^UWW7dȐZkgપج_~q|mGݻw\ q?myzzpxQTTԫ[#B(>>^Qtnǎ+,,V]]'@_u럶[FޅaضmdfgX^ /%={F Bo޼i) `t:AOOѣ!VXXQQ^ |^'NhU!TTTzd2nj8w!07^Lzxtm=7E7ھ\yk.C N>mnnv9}}l޼/@TUUi4BHjkk-Z@RcccåNEEvӦi99!K8FE=6l5|v\PW@ʾ3~+1H'Ž?✜\\\xB"XKׯ_333[|9!bkk+%%kg6a͌ ]]@ \2557O3f`Mqܬvsw^YYYGrzo?u,m:m=BH]]//!c!]WWwIW]]ݱcB?0,<<|֬Y߿/((2dȯʪdzyy\ۂ++[Ϟ=L&8q!urzkvʹg=k'NܟBx3JH]ð Yaؾ}i֛tFwk&1 Â---[huF"VŲJJJFEEPWW'&&dɒPuu5֥3[{adff{4iҭ[obcyyyu7ctQ`2%%%ijjh4GDD&&&~)55USSX\:t_N<~6E]rlljru5WޯX://ðVtV=GR&$ŋD###۷o^'G.fyhSZZ~vv[s#͛/54jhu5agdɔ* uXw1\ pL>|:{=ׯ_7440wJv%WVVXPP/䞩}sV EZZ:''ðsItt4k_gΜuucc lSĸYU \nU4,BHTTk\iiwGUUU1 CCC|Qyy9o:#DE=nsmҤA;:~ ,JJ2!)):ЬYv.<^BʕFŽ!t:]VVV핗WWWwvvf_of W^tÇK -[`kk^g6V...°_]QQ)RRR/^HNN~i{ذ <0z˗Z rm,4WAk)lPCCϙ3gbjjj$ݻw۷o߲VtulqlFocÆm M)/' ;4Л(*J# CIKϜ9ܹۦ>әŽ1lchϟ f/F$233?/ijj yYg*P(p777-{ð#GL2K7x+W쌍\OOٳg^|'!Ξ}n,#=v)~dyiltu5<<< "##BVZt9s|}}KJJ^xi&N牋LfNQv.\x0 ~ZVV_p۷5m  BݿG+**{j'$$녅ͣRK.mUR__߾}677555mٲ!T__KB!!!iiiEEE/_1bO?Զʏ?޽{w̙%%%Gx?M0L&oٲeɒ%\b[re```RRReeeZZZHH/-+(` wڵ?\ޏu x/@5M/^|r gaׯ_%%% ??N}hn]gi|2az:=I"V'&Nd2'OX.[K+VL0} 444ܰak ֭[gee%!!ahh4g`a"""utt~woooUUUg60,--w6f OUUkm7oUeddlNkdd$--=rH"ѣXoؐ0~>V˧ZS~d66(##ruC͕</ ! @@ 難MM-8ןTm==d#;mڊD"||nn-t%// tVϹF0L[-˖9Kǥys> ޯ Kdd&'ut4>uQ^^G#L;:гKHoߚXK vv6>vYEEmaa/111Ȫ?n6ͦtk5ٳ'N,ش):d޼cg6 ;:#HKc¾b^^LQPs獰b|++-==n~#H#*J4iɓ_ =uj͗ ~{?7;@ L22 F4/usm[ѝ; +6ڢә׮=Հ_ tC>ϟ8}zJaa[ Ȱ#q*F1*njj-WP˗;7t4$%Zeػw@IKhf:!&ddnn?zNXʃEjjrjXa?}oyy; ٺpYc>LZZaXSժIJegJlA rrg=sfiA} 6ndkeڴuEFFb2[O("Bܽ{JKK{.hI}}YVVV_HNNs0*qɍ/jk+kjd*&֕QiiiPPd= Dڽ{( *8СFEFFvz#G 72*-uW@ EDbJHܓc O3wÇ ;MBBth;fnIK3gxAAE̓.<U]ݹ"999qqq-_; AǟMloi-ji}Ç;w.߫aȑ2u |^+OUkx̋kz7^fe3ذa'Zt낾=g{h/v**rH F9cƐH0\yJGG(=伋rP_~qvq} t%,AQzcnqEWWiѣML$&q "$…Kl|֬Wnn֭IcƘ^j(#$Çquܽ{'wu_M";lX3KK-"nt22x &oߞC}zZZ G.H=i6Ӧ`է;w{Mp .XZj#IN1Xw۽hwjnu|yt\O66p۷jjur%ӦK y~%*JFtRk*焄_aϞ}%%xӓoqq1O u0@$Kad*"B|D"FF:T#JK+w~Ҩ~:;q⠬%KFCV@b M\]-CC=mhj^6xb|||wp!n11]]JK퍼fe@pJJj;Ǎ <.n޽^u5[bŪU*++H ##A Q..o}DDNX4n+W?FB䳾2+m\ʕgOuk&|X8???33˗vѢET*`ݻDVVѣGxIH9zHjVފYp?=zNB*񫶗/?NQPP~ϻv<H$Rtt3g-ZľjՕ999 e޼yrrr;zӧO-[cJ$mm[_} hw\SccKCC3\|9/ Zх|RpYÇ4-.. ھ}{LLѣG3sL ɓ'稨Ç 4(<<<--MH!:hi)47?nh|2s߸rڴAW]]RUĚNgZun, XիW.]!`o?|`cX_jhhZRR"{QQR3kk+ >~$]5nի~E@kMXSDG?8zt=^0@X "yq|Dz۷ZZZzzzϞ=cmKrQQalߋ3gԔ' krrm~U}k0AV]]G$dz5W>f~_۷o[QQ9sxbӦM>>>+W LJJLKK {xxEFF stD"Ngr/#*JRUk/FIJyNJwNNa/&jk$ _f_C jX+V>|XSSsذa&L0aBPPЪUo%w)++kkk;~xkkp!}^Fchii)p 4##hѢS7^P#멲0QQQմi LIY@V}7XoΞ=jV5ʞ>}lAѨT~;PKK奎]0iҠ׮شiL SCC3>KhgxyS0h X০&UV~^LIIW u>|Ʊb.\v?$5i4ƛ7VVZ핔G56me˜~qLFƫ'͟@e"s99vDzhT5Wv ws4`ӧe\kIIQPcc   oT>}li`| 0.]v!`0?~$%իWgFDDFXzѣG<L(*JA?C%P7$,{x@w<׽`t}֭hj $$$̙3_Ak|S[(//6?"D.wa218cc~/Ȩ@5 :T͛J2܊RRbX0KW8-"ih1uz(#Y̥ yD:qҼ{w#-,4 7rr:r)L"t(yC}$QQQ =f{o&LfOyxkǎ!,,$..I~~~CCC@@-[T*ʋy hmm-++;lذ]vq|=<== .OT/Kw֬qUQ|TTDN2EAAA]]}ƌϞ=cm=MhAb ojkƙ}2"Hd08/`dzWTTTTT<|!TKK_~%//ҥK߿?uTRRR`` Bݻwm뗗߰aCg:tǏsssbcc]]]9~Ê򨨨!C򲗮ۉ8v9v쎄…=m>|5j֭[];zW^rSa]uuMkoze0[Kk1 P|||Ş={F Bo޼iR^^>;;ݻK~ѣGt֒=='N****be2cƌ W$y<Og/>j!L16!,m+Vpwwg2% .\`_M/5Nޏ/5mD)(H$L<85Y{I$"#X999l1cB!uuuoѬߣ Bll={B=zBNNn)))xᘘگt```LL {ذ6>>'W?&7oķoMii/ږg0B`GDD~1o a{9@ L8@c-{fG$O4p/_޾~}va(Jxx92e-~ϱdrvvv{{{{_xʕ+vvvm>{𽅨(ue巬yR[]hD" M+000//g|rBB6gu@?wA6]pIOȶwED\֐PGn߾M"P^^kIۮ .411IIIymffڵkY%v aJ_猌 SSSaطoLMM]VXXhii@R[F4s玻vmm-w٥Ϟ=1bիۋ ,ؘ||cs3M`k3??_ZZzϞ={֭[ "**Td2@vBwDUUUԢX{KXJ9rgw6?}Fۍn dnŊ&L`_d2 7lZ6w[n|ÆAK2׵ƉaX^^ٚ5kUܛJDD/_rd]]^LobMAݩnNOhjNZ¾pȝ>>#WvB||WX[[o/]sN|PG/ݿ*-}zٲeŽw3"WMhej~MT*MBs~e3fPRR,Yb aDZ r[=t p=:t%KƎ+Xz8(*n,[dk/Ri✇WDDDvܹsNaҏf^ljjyoaGC999qhkL7 IdelnKH@b u:7Fc ;"G@b ?h4;ָgϧ!I1:@bc;]]%MMyaGHGK 8KK-/ᡡ tܱB!"BјGco 7Τ4JyJ!5 ÈD+@Ab ?X2Ν˺s5BFB`0I$BA` hHi1wwg;w&#$$8{/"""s̙3gNHDd F$<)UQW|ADBXRҬ*,3>̞v5qB^uVeeeD"M\9Doʻwռlb+ӧĬ,􌬨Sϟ0 ueH1q~VroT߾dS;85&JJjBZݐL̟|߾+W֘wCtwWaaI]A+LM]`}lt:a~аaŋ&(,JLnT@7FF-wfMi!iiGl6#22cƌCFr߉.]z~HKK>-Vb$H !T\\aI*ƽu+KNKN`kEoVKI6Ǽy?vkl(*J xÒ4q΍abvŊ۶%Mvˏ] kb06\ o׎3a2E!h"n`^^YŚUT8)==@LLdҤ͛/6v)L}FeHjչGx{ 0@b 1uq.˗Wy&%z=ѵ@S\\d27^Fc۷:~)ւ X!CVUՕa0t:S\듔y33vx :tjBhD+.eL|VW S*N?芊Jin#:Ǻ-YY޿qƅg x-Dd' 2P`4O暏Ln^<5H[[o__K]))''p… #eŽ!޼TTRS9`X3^*,-- b03RñUk|6viF+.i5N__݇:tn .\@g}Ž!0 36Vk/}̩SyWǧA^;СN+H[JS}}]Οt?VPP1bTBB<x0gaGB99% s׬xcgkNHH@o^;vtz tkv˗;efn0g@b \\,?.k; @{h4Fy9J '%=ݷo*X $oxs"Xs>@pn|dbӦ~*KpeƸX%0З@b $'NZ|.ϼ}vA XKb.bzS}Qt& f_aغuq::J7N@ j`)S(((Ϙ1ٳS%&M-XkS(@kkkYYaÆڵNs {=5@b [̙3<']qquU4ZOcaX\\n|CWTTTTT<|!TKK;eee~F O߰awG'44ѣwr:{f?z."blèQnݺu5]]ѣGz 6Lw^gm<|<**nȐ!~z~С? uuu8 x(ܶ 5nd)ғĞu zׯO:_XX/TWWWWWWQQACTęL/_t?ZYY--ilVUՅX1ZG1t:::;vСC ]\\'?r劓Sgmkii7]|***nnn&&&999QQQ|ܣpj:3D¬YCss_=kA\\=Ů!把{A#B?#^AJJӧIII!H ޽{MLLdee=zS!T[[h"eeemm퀀*|issss0`͈q:e]]] tᶥP9ƾpƋrrCgXFF/{}zzz&$$z\xq٬e.w ###ݻws @ \255bkk+%%g7B(&&&$$Dwiiedd>x~#7h3f`:4 oVkjݸ+Wjhe2ӳbL&S__رc[ZZ*PTTꢉ***jo Bhd2ĉ/_p]%%%aXLL% L00;;h֭Ϛ5C _#""TUU?}ާh۷o N<򪫫;vBϬkiiYPP#Ftœu/_67|MMwytm`T*H$VVVoKBӧO1 3w4KԩS.]zSSI;wkmIL&3$dlSWW(**E.2^sҥp9\%{@ᕋ.[Ӽ]\\ثϷ{.L338}#8n.%%~E d; BuЍ Տž% #>>>""k|||\.d_18˗߆*,,S~~?L&gggK?Dz۷ZZZYZZ }[HOYSS?xIqqv5``bB#Ǐg_ضgc}}g̘Z(wp#avȑ)S ~wVgcP(p777m{>oD{{{{_xʕ+vvvyBuwJK{'֒y rmTUUZOw\ۮ !!!޽y󦭭%KXk~sgOUUUԢw1nܸcc㐐 |}}gϞ6bĈիWTaطoLMM]VXXhii@RHioog{z~L5`0ce-ILyIWX1a%L&pÆ %mgSSS ` Z6Ah2222+Wcɓ'3.ew H)R 6Į)"b,Q#bLE ƂJ bR.K2I%46;ҫWq`KHHHII-[f۷OCCCHȞk,)| IDAT|RRR֭#ºnÆ bbb...mlqR Ǐ1bKCXmaü +9]`8'%%YYYjkk]dG<@4YwɵZaͣIIIeeG˛\&~z]]]AAAFVX8l2aaa&-B^ 輨ĵk/ܹ~pի+V/(C;99!{Xk˖-999!!!ÝI9ٳ|Z~ڵOgܻ凮:g5wF)mvxIRprn-RWWu̙Kz˗كQ-Bl6wѣ6t|yCa as]\\fLJA5p ccŋ?PTTtonhTCbJwyZn@O02R9SΫk5~s~iܸqM;v<իɩy.JNt`̖-xs=@5eѨ!gංnd*aTQQի4,Kv4Aa H-Y2n F-Btt}n~Z#//FtWokz_@,))t#P}=֠{Wx=N ~vRʊ PX9]sBuu d ݰ!JLkme-<='[Y ;E=Xm㈈/**R=pļ8h=ȑشU A7i'/i%%U[)EdAuuI{?:s..ʯ\Y,Iv~JHȎ(q|)5Sӡ&&jZZ0v_#zB`+ʆ*d'}wdAWEE],9cITOf8}NHȎ(/(Z[l2DM\\쌠++k.={ziiaC>,,,ҥю_nKVijʒ V|JKˋώϪgʊ)X1DpȀ}FR H0dȆ\Ov``UParpp^"=F !+O SWS"z< #+0b  F3g۶ِ =nn8|j'UEF>\'3@ ~A UGPpt4!;Kz'@&nTd>>?+*J#55z<BPX QX#F%%z{GI w>jj?xn`|򤻤PSS (BLLrv矸t'E>Kde>|(?wN6zIFEzX&*reΩW\=%%ő559EOO z<@ ddDʪ\B|k <Ν{,8x)ˉ?| .M8nffIZZ^F A+e::zKJ凙gf8;JI ]:` x;211!x}+C HY2vwFhO8;QktO=GŰY{3::!Bv5jZk=&&jjJ?@a UUuÆm Y>av]tn'ZXhX<.ټySws==ec>> GWTq èT !"brkee @i44d/_N=4GGO?^0 9,;BIK KJ II KI KJ IJ "MVN/i~).fʊv1 3707?s' ZkXIJ IJ .jPX Ca7\۫_<H#))$--}AkDUUͭ󻭮111ߛO$22ðݦt@صka{-iLOO1cmjj*oC 455܊7m4 233;seffvwK6(I[[Ç^TX#>}ZXXY1jԨVʒFpUUqBB_bb͛CBB9---ss/^|)8@,yss˺@DB$$$8`0tŋ󃃃B%%%w7gΜO>5ۻ!TZZ@qqqӦMw$d_"\\\ ƩSBNNN >|(%%bpr:'ONOOmkqpFmYEe/v^{\.WMM8oٲEGG M: RTTDjXz\rr2㕕eeeǏiii{rpp8y$B˗/M9s&tq}EƯҕxsa8@\77^j ~]"Evo4hPjj2BׯM9{䔕Zk P(S??#G3ے%KEDDݗ/_^QQ!%%<oL sss>>GM8… , |߿_SS!e˖m۶<,Ph]yy||TbZݷB 9))_ syyysA~ZWW|r;DMR̙n``pusss)~X,VhhhjjСCB;wܸqmBV_pҥK˛zÆ """:;p7҈Uy7MΚ5|򥉉ŋ.\HZܼf޽vvv!yyݻw/\1: kd)it=,##C]]!Dӗ.]d2 [\9''G^^RLLL\\\NN.%%eҤILII122"n~kukZJӻ{.1M j"X~~w햧'BDU݆͛#> þ|faaamrrrHy%K|}}s8Fihh5Bm|]5A@sRyb+悂666#FvZrrrk744ZBzz(pHJJ3f jkkg͚U__KKK߿_CC!TYYYTTruuݹs x~~~k׮%^Q|uĈJJJbzz:QB}n bb&&кE [D _t)d۶maaa;wlmz8 beeuĉ@UUUOg62P7222ǎ#%X :IL!;t'++*Iv8( PX\.^UUGv X5^0ƒ#[XXYTyy_+**\.EUU;@`ffs_?^BL*+225D(/ON爈 [y6vq':Zm-b) ͚'BNP0{&JXSk_PXdeEe2655;w.鎝gfJhhTXq`}=!DrEDX "",*!R & 0뗔:-r`b[-۷vA=۷o';B55'K4>Pt:-+4#srΜypTi4 BHZZD]]Tbe.G8~͛iN=:uqBBvUUrgh1c4MKITRV[OF2lg@o#z2ֳgOKv>LK*"''su%w%aIIفuE#6!!ϷobqXZ T UP=zPmmy*&+}zi8njB\4f\.`Ǐ[01Y 0Uq1c˗(qM///W<ɨ(55U35U$ ("q;8YRҶ.7Po&u3EYx{Og9lv!d:fzh+˗j=*bkkx~JHȎ(P0uuSS55==a#] kHZZԩo9R,}L~~ѻZgFHJ 㠡!;uuu [=2DUUwP 0k…歭\ZZ)>>;>>+55-++LنCO<@5^q#yzN!;KcoFERSw޺6ןh3ܺզ[NLQqplbq޽Q^/6 IDAT5qqz/o `ҽtڵ4EVV…嚚={n9ύT*uP)o;vDU[7cBDbqs~Ac1dj:D :F頰лܾ$%퐑!;KSW?ψ(zz-&p'<`9]vԨ!uuÇc55eq02R%1G4c@NIAO@R[ܹ۠xyf0L[[ڵyׯ5+-2w_~Q9F۷JJ hj1" @cXUBo렰,XpN> }ObbάYB ql1.%Z[>duOiyY[9ebK Ҥc!CLLԈ--Yst(:AAq^G0v1e|ǎ-։˜7؊g' Fݾ}7{ {!.5S||cDFFD__:F@w@SRR5jԶӧO`ng> wܒ%/'Swի|oׯ ~rݺ)} l6c/_Dљma #VR8rdWΩS <۳o:믳M1B<ի|5ԩG{tto+|_;(ȑJ>@;.%城:"1zFF;~!;K?bq.>X,N3{&ׯ\@/uCii;S.T\u֬+:f`>{ă|}tj1"--lh8xP\࠰KVzml-'l׮XZjkjv~$!!;>>4eE闠ЫM~@[[.A;Ϝyd.'۶],vs3߸qZ_XckcxRe@vÇcvB7Hwq3Ք0cc.' }7?<݂Jퟍ999 ޼]b28BB4UUuuQ++. J>}:?z@33ߐew͐*h.[y?iiun5;dp]LMv՞{.o0@+P(_\݂u%{{{$~CEEjHkRoQZZs+݊ ew&[ ϯ誝"&3zYYdt/n|I@a =^t??߹sKKKp2/;sfqFF{o6tU͙cTUU{;g.xP(I&kw>u6[7濇sЉ !(vbGr% pp𲢢:jΘ6qط]{H5> FA9UU <^qv%$a,8]a@a 5Kۯ . B:L]]+˫Lٿqcx6vNv0lϞ=%XKRRRB3f̐MMݕ+W*))UWWG:lijj6yMaXfffgv^^^"""&&&{[y󨪪Й||5>@LLpxmFFnQQ{쾣XXhݾ> `nj[uu;p UQQ -),,,,,|)B_:::yyycƌQTTw͛7UTT,--߾}eX{l޼yIëB=ޝdeeIKKNUUqBB_bb͛CBB9N>}ZXXY1jԨ$ߴi$Sϕ+Iʞ%%  wjjiԨ?p}ĮRSS1 A}w322d˗/rXpuHH??NNqqq4իW9ԩSޒiӦ!222ڿ&'6ldټ%L&SUUɓS5ޜ;v֭ߔBaaa5ad~~S2P̙c믳w }*Ǐ71k֟YzĞ:nܸI&ikk7nMll5k"߿ӓ|ƍ8{zzYFWW򒕕bXׯ (DCllʓ'OB WVV.ZHZZZIIiÆ uuu! BBB.))I!9?fΝ;w&oݺJTj 07nv7 "~z[}}s8}iiixoS f$;{u%%+Wzp>Ο\^g'oA;#\.WMM8oٲEGG MG(JQQ:>|4hի~[7gΜO>5ۛ`ŋ#JJJ#N6޽{L&!{99d+++пcƮVVV?~LKKݾ};!'O"||z̙ ҥK Piii@\\lTM[;ƛ}8ttjqsϟ?߸qCAAu2j6b 5>#6º2 ,>>ה<{q<6^%%ϟPPPc^,?NpOLLD5hR xetk۶mC]pBmmB똘w1LCZ%;DFFƪU6oތxpp5oyCCJ}5rTT8x08NOgddVX?{LZZTWk\X7?ƛTWW 8>w\[\KK+((wsuV}رä\I&;/3Ƭ^g8q G.x"g2f;liii ÌBmw!+/oyWWWܹs/ɑ'fҰΦSN522 jv㗎87)..p8K |kbXs!VP)8RRRLTeddb4?7v횻{k6k-Fgh3/]zIv0{K{aجYzιs絙.$dp8aaavOOObM(Չ'/l^=M#}Z絵NNN^^^IIIGmr¢ɓ'111岲T*5+?***}gsuuݹsg9@Nb*g̘ڙKddիW455[\UU(otH(%vv22߾LvðݻM- ߋ:ӧqff>,V Z?.))quu׼y2226{M6رɓm o޼9777--mԩ t:jyp*:gΜ˗9;;Y&;;׿+1X=5[n-))uVFF˗GbŊ+<|.;;w'b3m툓'OضmŋAyxxxyyEGGݺuk֭mEz.;z]d b9+W5tƧO3{LkLMw7,^|ɓ/r6m-iqf$+++QQQmmk2L}}+pwwZlYuu5Guqqim^ ,///_`ujkk@_X, aa&7d_^WWWPPPGGǧ5W]]]8ƛ7ղe˄Lf}ihh CxPk *dޛ/RkOpVŋF \BWWq˖Z= !Nb@" ˆˀK893< ;@DRKM{:ݾ^JJ)Xr򧞏@ǨJǓd㣞:nbU>)FP^aƌ "+ Aa qr2yQKvzȑOO/"+Ƙ1W [QVV5e$̞ma^t~~Z)x43$Z7n [kԩ IcYO@vM@~%% g/䆱Ժys]PЏ'_Ǐd``@dUJvMD885}4`0Zgcɸq{/? W9PXƍ&//HvNT…""΁?WΝ nofMHNNٹ5>BFs@IJ ೵=DzOBf2xŋqKdAAٹ@?5$?dHZZ8*'))a3>11onj * !D_E}شi Q;wFd*UUiŹr%YYVV#<=+wr999 pERO[5>ǾSSw "; @!v޼+Ȏƾgiq4##UCZAavvFl6WdpCYYdiBun [QS0kAC11o з-Yr _Iv55 nn'ӋV.OvVg܋yz3Y: k}[LwOnQQ"; ?&~%/z*-_>|Tmm9 vvF4|: k}519oh/idgQS~:55/8xqχݽ~=EUUzŊ s 1PXvJޅX׃ϜY\Jv:Aa ?PW9s扈IoIn`0lxAhvEDo=EQQnݨ_kw\\EE07 RXXyz|Xk۵!33 | ϛB($ѣrs(+KȈ PX'TR$; hϵ/_'Ls 3Fˋݸw|(u˓ ]rs(/z(*JkTEDć'ddkj:8ϙc Nv.Я<ȝ;tuڥxYYՅ ˇW >EF {Q^^mdhbk;6@a _q|=w;Qv*=((GSӡdb,'6mxxBl[:6mH[QZ0H5رv`RWZ{r5ˀ8ݢʕĤOӦ13FJ t @>80𾢢2Y@{hٳ ۣnjciy~pq---C9Ç":d4fM5~h cb6|Sm~ݻh~>S|jwbfOgbc},[&;{n|jq=`Q|jkERRSN:rX-:?=g@4q^C!LvRQ}rΛkR^糰М9SʔdG5̙Ǿד tDNN .L]]8]&"""""⛫54P|`0!Mͯ22ݟnRwVUU~@`a(** TU\Y-!!dcsd2Ϟ=jt:GAzȲѣ44*{ ۀ@ITlà8wwK~HCBB:K___DDgWkSUUͭ䝅CAa [`Ǐ%qqd]CHhЙ3WZƍl6DP0B§O" 7fEE{ݼySEE۷!___w^~͛xUUU ~~~7o p8W~iaaa~~ٳg ƨQ*++sqqM6u8dOŧNXxxgr&Yc{LMM0,&&!Ç&hR-_Ɔ,\͍:$$?''8իΜȆ ,--l6o TUU=yd5B\.wر[nۯ9PXXX#?ww;wWt%GG)ޟ8]/44tܸq&Mn---ss/^t1^m`mϞd]tTUuCh K;G\q߲eN Q("eU#u>|0hРիWoΜ9>}JKK5j7/FG6mڽ{BMR6^dX8 ..oNv ,edd>| oVF0 uu,fs||jgasVVVxbb"BIFº!+[EݶmB… jkk_׿{dr81qĴ4+**Z,={&--xMY+ºo;j!!xΝy6 ܹs=VXC+m Q{F*A@ףR)[ tJtr:ZZZEv.f1 322B "''O:߮s6^#//OammMӧNjddxemmm1XJJ f222[;z DFFVWW_vݽ xAa `@2E٦힠߰1^SXuydk$T[ۄBXYY8q8ѯd9b+**?^[[啔t+_ܹ ~~~SNmf8Θ1KddիW455[\UU7 B͛7-PX(-HLIK%h͛ell98㒒WWW͛7/##qcϟߴiSZZZJJʎ;N>c GBvsrrBaaaa[ `qt4㣆Ɠt;33w44d폜:8`@"$4䯿\ Y5uǎŋ0d'Essw˗Oظqy8h?v=KKN kԧO_?vm }8d׮k#F(Ғ#;otx&a[8OǡCwY,١@_5kɒ/^d|"; ܵk?:3ujjى@5Bs3g`=(l|؍f{Mv(@a `@[dlttrQ<. А!R+ܹ'S@ kOz gZVVl74 PXtڂci}=|OYY9]be7& ى@5n"˗z \\~xp…-:C^ k'Nnntg[EEñc!-lggJw(G(:1cqV 07;ѣjL_lr`8ܛoHBa щɹLMYtg!]_`d2~ٲI66tUBa QssO哹?ҝ'OȮj>i"mm s PboEwڤ.n\Y zM;PX(Q[{b/Y`(}z;))7/wq? sAoPO33uu<,Exxx\\u>BGQGgTP]Lo@]]=++Ws[fzbAAtglĉ32QbИj D]5r66_^;ם@+ kk`Sjw[]'? @a %77ɓʢ;PXڵ/]n9A`Ca 2o=fX˯/A`Ca 2 ={,0ر`DGGx<2_ONNp\ٵkD"|x̘1&&&ǎ=z֭[mmm\.Ԕ嶵B###r333mll^ c͚5iii]-8ȑ#TyɟbddDyT*ݽ{#Ś2eʍ7z kWc}wsEI;)@@BCC ! .uaŋsrr#""RSS v޽sjBH\\\qqq^^^fffVVVdddmmX,vwwﰎ{&$$xx(yXÇ΋+z)LF9n@@۳gOLLLQQі-[>|D=&njml6~m6A`~luuOd|BHaaPp^%!͛2ñP(dNNN"^SSCpׯs8j:rl6:tyΦ&==Ldɒ;::9rD~WV>1=kn177\jjx9 'H8 wqq,RRRbaa!ihhf̙3^^^ԱSW vvv]-tnPPPrrرcSRRnݺVŭtWWW ݵn݌̟ÈT* Z&4[SSM RHSSSLLL`` R4W$:4{,tzhhhrrs缼nkk{mw#9eoo:}x9 +WTVVfҥBP u,XQZZZPPxBHdddee3ӅB3g&L`eev+TUU˗/ϟ?XMD+_SSm۶+V$ۚ5k\ٳgbqzzi{聵k߾qQ~~ A`x3f055SWsNoB 󽽽\֭[CCC322:0yd #G.[L__???_tq455E"ѢE^mݺu\.wӦMQQQ'NP-=3gff_AB9y$A#?U5@ϬZ5-=Jgfr1t5@0jVMr*+ k[؇NHfPXu`7VJGHw,PXl䯾ossY`PP;jWޛBwx]]~]RaLMY!!>]HI&ѝbZdU&{R[bcC-; ;gcc۱Q0ܡ蓏>aw4Ca 'f._~y @3}G3_~gEXP{{{R:mc yytڠPrA6(Tc32޹SNw ksvr2?t k`0Ow/(…_|!ӝ;v0hPF (]|yUUUO755q\777k.K>V /`|̲g}w 0d2gcc'D"H$v!DgggBȵkD"QYYY|||}}gmmm.f7oެ ޹111ǏJ?: ֖3W\Qaa{@PTTD177777711!FCCbbbbnnnee5}3gμqqq=(Q (@GG 䔔w* PX ?:56A`xSN9su715k֤Q/ڸ\)mkkH$۶m111Y|9C`0>?667vid={6'Qkjj---KJJwVxEHH˽y; RHSSSLLL`` R^4yWCCCϝ;%;C鶶o[ w#(&szޝ{Z!ʕ+aaaYtP(/XUU%/_<b,XQZZZPPxe˖mٲΝ;wY~}iiiBjjjxb۶m3fHOO gΜ0aڵkH555۶m[bdk֬rgϞ~G*Oʣ;X^_L{{͛gXY[[UTT߭WZܼi&KKKCCКYk^#FX[[}/=Ϝɧ; kzr.􎋻Nk5m6n ,/9u* (h3rQp޽mmWJee@1C@?OJMJ]t"YZZ$bq/Tuե5MM-cc֘1 5/w!8GCIwPMYcEE}ii/TT ]QQWQQOR7771633pu5x(cSSO?@oxH(haɓ|~λN;˰VWojhn겲1Bp(c__G3333Q d kYYN⋌MM57Qr捲gϟRc ury(?Ԁڍ9҈ӠKǮ\oK$U-d!l^ccci *]5o<Ayz0L`0T u(zL$I$!8ز2SL >eSƢE>-@gX`\TdΚ5PXRpp0T)));rrdd„7;yCLӏ?{3VYlIDATcƛo;Sff#-1 $-/wbggM]U"ɿ/(߇.)oț7F2?~4mjj`c3BGGe^F&edݻ|aa!ɓ^F5o߼ab` e?wB"i'־hihiuYE=pgZ ^Ca niOԨ3we2HTkiVڼQ\\k󆡡f c++#j`(Aa _ ƢEN<)ڃdzhHok~={ʞ1 PF?ikkidiidivu9r CKK#5zൃ%''%K l͛{7W&#bFd]M8vKK{>D:PXիW[nڴip9ݻϟk>|hHHlod:7L{w! M?vrrZjU(ȏ Çnjcbb}رѣGnݺrLMM\n[[5=33ȑ#Rd۶m666&&&˗/}eT=։E|ڿeI:ɓW/0ܠGL&ȑ#/^LHH攋/DGGGDD޽{ΝՄ⼼̬Hj޽{<<<S.]TTT;VWouܸ1ԩuBatj_n;{ Ơz%ǏPX/ 6<~;\.Z|9!+!555[[[7.&&&==3}t=_۝;v7%>>~=S۷<,,l}zʕn.EpL)))444)--uppnj3f̘>s=xُ? t ЃߩǏ7yD^^^8ΥK !b:X|B,--KJJ\\\! --m˖- *)(x_zƣGϞ5BFΚ5w  U(ѣ?zf !G]hѾ}΂ """SWWj* 6tlٲ-[B֯_?vl/}tw%S*m`0FhA5Yzӧ322!gΝ7nܵkWll3gΝ;7lᡦp˜'Ot4k֬\Y&cź~$2 6 թih0``ß'O.^x?t0D&xs44?t?;@!zzm!ǎ.H<ɜ"HN~N%gF# k(WZZ;opСKLF-_Syyym} 꼞pl꥖Jo9qc_׿.v.,긥E"KX\WYY_ZZ]QQ_XXQec㯷645330335x(cSSssCc++#uuHo,VBŸMxoMLXS8 Xӣƒ/?~e%&X k i--6oNdTفs)LFWw,QXrJѱcU6Pw Tm,d 5ҥGXqE"tl"H_>{IcIm'Ojkj<j*mmRB6;zSAa x%K%QE!EMM#KLX̐Ɯ fk|{ٓ'uҒ U&nn6LsB!]9 `ܡC/^|())ά{ܹ#F4w; Ftt c(#_._Q\qٶ6.kfffjjr!TUMrʙ666W^}y΋+N?rr޼yԔ###jӥRݻY,֔)SnܸӏPX+̟y.''qu?C wnssۚ5G}|oz槟 XΡ %,\5!ÇrrrļdÇSSS/^cŷ⊋233"##kkkb{E߿Oݻ7!!!;/tzhhS[?^WW7 @}ٳ'&&h˖-|IO>ޒZyy'Naa񗀀gEWVWWL&'* J8BP(T{0$ Ñ...=ZD(B***R)uL/++S)6~}&U*URRbaZlsss@0sLőK+C*]\t]]ݠcǦܺu魭[鮮]P!@QSc:@}Dڕ*VНn0J|>?6676jd={6!̌d>z=[>|heeES7+//WK BF MmdggB¢HxeȮW:=44499ܹs^^^tnkk{mws; -ʕK'N6-F "W\ ҥKB@ xĪ*X\^^~S_XxG}T\\|Ν>,,,fB=Z__o>u6nO?W|k DFFVVVΘ1#==](9sf„ VVVk׮~ȮW߿f۶m+VxI5kpܳgϊtyvK @/H7nsΗ켸FpʪU_2]"޽^OOoҤI?|k'YP涌yYYq[{7/BBB!'O;(`0|>;"F[[c9sEӧA3MMYtX,,͸zp__C.yzn[PRRt0Z1Ϳݴ_RU sEE37rF6 ^gH#(k ֬ɥKgr:~|T``_Y~5||˖w%$ڕ+ [[%t  `R-"ZuDWW98筷 <,h^?u/>di],lEw@?~Dw /x@ ?,NM$%Kvxxx\\)KYYY^5 伳go55xy̛穯Ew4PX"ᇟ L5??EMs` ,0=OIWfΞhoН 0,<=u*ԩy̛ikˡ; (`x/9}:?%EiMPܹlsk5 GSRn͚&//9s܃u6kn݂w_?'5{Tu\;0pn/@w^XsO>F]]h0x6- %Ex3l h0Gٳ ksϞn  k^{n.)yjiɞ5ul7jj/TAJ"ތcq6 tPX@iiuF]@o9SNw4 (T&=5z&PX'Ojedܽt鞺:wDZXtG~UV6ݾ~6uٮΆtGUBa 0@'Τ޾|gss`8;;S h͗.KO/t~}1c,\\\]Gد/JK22~GOwD^S(_x…ۉ9݂`pyҥ{Zۣ{PCa 0H544_t¬uunjw pqw;(qqqԴzC[N&>}ؿɆuu,___Uµ&NޣYms)"T& kX[[ӝTCC k@a (T5k`ǎ #::Z~1J?x`1FSSusscX>>>vH$)^vUUUݼDs'L&x666|>_~2((H$Dk׮BDqvv&\vM{G8eCCwnnnLLL~~~DDRiTzOO\fo޼ii vݻp႟_QQ#!DGGGGGH177Wbbb̃zzj˨(L&Iqtt pqq_reVVVӦM6mZ\\_yQ15`N:sL'''M^}9ȑ#7mLIMMյJۉ'=11122)zzz\.711̴zj15k֤Q/ڸ\)mkkS~c޼y紴Q+t.JwbLrƍD`P@BCC ! .faԨC'rrr444,\S(ٳ'""*;;" !bݽÅ߿Oݻ7!!ãsRqqqyyyYYYJ:uJ&BΟ?t}STTe˖O>;SLO),,T  ;uKV&yjӧ[ZZݻ(J/_L +B:Ļ~:áFBal6:vrrDqFFtErrrd2ْ%K"""x^YB|z5'HD]\\^>K(+XWTTHR;;;꥽}YYfQQч~بt˙f 3g*^^^ԱKȯXRRbaa!Pt]]ݠcǦܺu魭[鮮]WhR)ϏmMxx85̘LG>zEHH˽yN RHSSSLLL`` RCCCDLvСٳgS/njj8Q:=44499ܹs^^^]M}|ݻw{ kʕ+aaaYtP(^SCCc}Qqq;w>쳰VMM/^l۶@:B1cFzzP(x8{瓄<|b4M8-p"I'14[ou!]eW]uU g  .묳*((u-oϞ=SN}s]9C[fΜ9a„\W͛1c z"I'!b -U.cǎ b tǏu].N+*@{C!5\L&/6mڴi/^L&^z \}_}3f\yO=Tkn߾}֬YSN]lرc^z;3gΜiӦOJ$v#:xxm(JSG1[hٳ׬Y\j򗿄Bz駟曅;v7|%\O|GZY{-Ydǎ/N]v`e.k:|O_|qך5;0TWdb t 6~Æ ;w֭[믿pLyĉ~3k)9z'W /\a !D*B͜C}]lVQQ1}Mөo8!lnݬ!`,--7 RUU`{;VaÞ߱kɐJ5M$ZZk+?h !D("µG6Lq=`+iӡCI_,s24Q6@ ѷ-ac!b th4jۅ^x%K~ =nks_r%$ >&MjeDŽDw1tfЭ$%rbܒٸ$5?=+֑$Re@+))9묳OBn7l0.袹sg ?e]DUկ}kfͪj:dֳv*O&ӭO>3&T5َŒYۙdfN,OFq};OF D2Ɍ2qd^a0da[%iXL"+kh4ȲwFc|(f !F-('v:%}> ' hI8v\ ,0aBkipرٳgm;z?mdk\z{L5T$;Tvx:RT* Ųլ9 @DtZBD"x<%R™ci'GJ,6Ea"f鴉n&ȫgfe^岙LF!׫OhfO^-80A9WޞJɴ-fCx78sf3{ǡn=zMG ]ѥb1egC ]~jUHDODxDJd5N$Rp\4g9~>4MS=|ILk^IHY4xM)B[2xBl[hi[m6htmBK2,&sDltN:=v.غxǏFC*Lc;2kքh  @ D2#5HMM(G,4aXLξnh$ EDl?n`ɲ_];e[,x<`0JJ>kW\TU.,Su`2{vp8L޸7Tt,TՄi@ThʛH"BQtZ4 T* "f3K5sZ,f٨Gu^hНWVl%bdtl&2єՈhh‘^8oN&өTZ4MԔ$$NJFx2lBj*δݭ!D< bd:HF"TJ TM'Yp8H,lqfnd4Nb-Vf{vKe/.B@ V_OϦ,_uɒBe{򸵵D"/yܾnV!DAAycT$O&Sp,՛͍')=X,ǫCd*I_MY;jlh4\j\.ded2ʲd2\br:mzW:6vۍFDl Y^_q6"!"wl6օ\n$O$X2'p8(DjVY$`PM@ Jnh4Ȳ˵ZvE,dczw^n4dٮZU:6=k6@D)3 &}aҤ/亐 ^햄WǓh<MbH$HX:h(j2X,&T5%"x"T*(tZSh2bD2r87ub6Y]x^>Ykv$Yl6Weӟ [# Ν{ꢉi"ߒxZ+RB49gkjjru<.*l=} 0&T5tND⪚ط=7$Yl6=qӬz6u:%N J$RjMx*VD*ni~mXdG2K쑮v}WOmq3#qџep8L%HC!5MIEp8d ǓH<)Exa5lt,cZv]u0-s`,K,vtZ&KZiyر֧ !{Ə~k߾[TUIw/[r ?wxqjݓsZ6GNk`T x*R'LQ=c1=śDbz7raaZrvY&.Ifuە$%Y&Kie^БZc0f͚߽Le&h43hϙ$Ka1—Œ°vDl-IHgry}.'%>h4x<OFmj>obIUMGFԄ8~o Qd$kϦֹ]6EcJ%kY$3PG[ /}twlei?~H+{?It:-x;ǎߵns>i"?Lhq]!@ HaQn2F UMH$`P cbp,MD"`PUD$ove,IV!+v*IY$YnӦ7u:zc]vۍF:~Іϗt'Fw3(o)-+Vl&`8̢̽k0d6e .M^f&vnzVn6 -uv-vt\.,۝Nau:O7v pH&;\mݺf)gwU?᳁@43` \k6;vT*}=.ݒ=h0ѣdnN: &^5tW2lXw;qƌ z[kٲfI9h8[V7d㔭`>!br嶦mn+sO:&o[YԴqqx<HX 3H\QPC*7)J4@>'RAR&咼^{v햲.-{rFKZ}tz䱳gy_{?/|!;G[\޵!ѣuoOxE#-ۭ8mmq3#q-s6htBhn0%-b%*IFI4XT$EPQXzҥkƍ<{˖Ò4M[姟 &f0.hs"__d6|@~KM'KEbd+աTq$Y$h0?erx ̹.BD7?^j Ni/>~`BtZ۰a;3WT5ibVmK !RupWXJ,zܸw}~=G /Z[.).v]ǭR}hz^CvICU]GkjBdyyN#@>BFJ}ҥ7lpخj8v\.>j;\n\=)4!TgH  :T9$}vk3,ۛ:C,]p=[2TXuŊjk\0G=u^o8|g}i.-׵@/@xO{ 7:o(J4s E 6lؽjMJJ<_9_2/s̟4oƌs]A]=' pmF,TDSǑ#{G*+emyH6 ]E=G.'/37}cL^WڵK/zZ,\]N!PՄ߯9oxeNآ GG,4cƄ|g:-?!Su!SC@HeЂCM#F}}8k;{}>He{^mO~u9 W آgI{`/n\uُ>:Js]W'x7mڿv }YqkkÍuq`09\ۓXV770n$q;yyL֙w9kW=Nmآ8xw,_s=O~G>O篻⊳;oXk qt ksf,7{ƨT>HK ͞+JJ<2' [X,|սKn޴瓧O_nt{+/!ׅz1f3|:cGuuWGo6j+|g~~!C{渒d鲇]-rf#Kn^x67W+MN>ɍnrr3Ew "/3lOG~oWB?V s]# Mo9KTV*SDyy֭Huu(Jg/2̙S\,{w}<=[ttZ{睲K7I|gϟ?庮.W[^h-\R\u-tsZo-SdF?}r_ɜ鴖E?-|OΜ,*FC?J}YtO?;G֍7_s͹5uuG}j5ϝ{i  ([WǓzI Z0thAHE9-TV*9"(]n{?7!.1\A]%KޥK7oTV\,_{f͚p[>\.-׵ӑДxωDuuᚚPMM6T[ UUjjB\o]΢"wa+?ߩo \BW@۽ʕ׬١(ѯ|e7\q8٘r`͉ IDATy3gNu!5=0:m6pX k}ZvC\_I`߾ _ "UUtZonadꏗ9@?AFQ/gٻ?_~a+u̮]_ziO|b15D;&Pmm*oԄ}*}@uuPQuu \EE|WAX.,GEEn @s}tZ{睲+[b?U'0 .-_CLB)G?^f͎m5 ~iӦtr]Wnڴ[Ї<$YN0ztbxɺp}}RQ_ʞ=G@MM(Lg{<Ox%%bY#>g@/_[x<+{W~TP:3'3 u TzuW\qy u-<8qNgQ%-QՄpHGhEE6D֡nEre~tDlq Xjsm _ELrZr[Yr]:Uդz$W<.1>HeЂC Z *+PMMWC#v *J4{"wq\X"wQ7=EEnk1ڦ(/\tG +w'Θ1a@oT5p˳gy{Vt"=o[Y4-{_@pl.WѰaE-MǓ55`UU&\UTVTnrWHf,KraD![R),tL&c<,7!bVھzt:=y{ĉ#J wqy h^Zz<`w1OՅ룕JEERPȾ}dx>KJ';;`GnBI$RoU7ltJS~''~s]Wo裯Zs/u!9@E|êjBLw~Ri}f>&<'= [!DYض|{uu .csL9b1庮^g}/@([UL@,C Z콉D&+JUU@URQ'ǏdCᰖxx%%bwIydY"Z0Ε+mvh@﷿}wsAii^,X_Z7s\j5@n_~eժm˖mq}^%בן})S.VWRtqld:`Ђfﭭ WV*~WW+*XRf}>3` z{]xSJ}ҥ7lpخj%7~ r]Wnڴ[ ЇyРbyOI -. \h[\bֆ/`#|{du]}J*?Wuyr] z @xcȒf "JeR^^&{ӷ9)?y|>瓇-(.KJ~izwٵzVӺJر^ѣu).v?hP&t3\/9zbټy瞛B@"~l~r]Hq*7N =zjkËmK|>9׵򸵵D_yܣG^r%?s]ZZX%Y.iKT5+הה>\iS z ^.̙SQQB@"Bo}+UZS:x*M&\LV`Q\5@[ٖ$syƏ+8p`Ĉ5=bYY{Բ_pӦkޚ @_vKnTZמɡPθheRV毯(J4yf5W/~`ᄏSiKTg̘t|Νrݭ3áPV^]QQQZZ:syIԱZA-ϼR[!Ļ}N |믿?;Z=D*?Wuyr] 岹\A^yBi˗/2dȊ+:mvӿ\zwuWK~<~СC_Wm!DAAA؇zWJ4 O=Ԙ1cz衿o<R/¨QoX,J,X&Z _5kȑ|0 -_/FbŊ̸`Xl٘1c~a!mvM7B!ñsVitZ__7y睪] !/!Cp ߲e{_[>C[nݻ׿|hѢuֽK6lh9bÆ ;w|'wohɒ%o;<ׅ4M[|3ӧOώ !֮]y~k_xd2)x 6~Vit__Gݺu ^y7x׭BG}tׯ7ZS4w¼}rxɒ%7n4hɓ.\k/S0>}9SVVpyUUUklƍ7n,,,3?/G_:|'7R?zt9ѓr>̽G>~k?b,\.NT*UVVy3M72G,++lFeeew'XbV^74-J{67xcШQw/\|{gn>(-[jMv!سg~7в"dIIƍzɾ&i޽5kWn4mԨQk֬3ۺFWj FOQ]wֵpI&[lyƎk2-[b>( RzK>^?τ鏃^z'ChmMrJB!!ĺu$t@b s~{' 0`0 I&:t(//7زeKii_o'=uZsWv !,K#FG>zh+K 8PѨfwoh֣jν4ׅY~eHg-|d2YXXh0=\!Dv#[20si25kTWWfj"'*R3d2p9i̙3٣4 _~slhO/ZHl饗/^|7xlh~JBȲ oB\s5+//߽{)S{10yիW+-zBg}VQ?ͮYT~ضm=3{컞x@ Ё[YmZ`}ii̙r]>j4R)mǎf׾h4~ەfr0s̲]v˅^L&x9ssrb\vۡC{}e7mӜ9s޽{ݻ[ߴN]զ/^\n_~};sƌ jF/`'t5[TUmO%=;W ODlT嚚k}g_FwuנA~߭XB_?O9oњgqĉ бf͚ue}_2eʼy曫:{+kuv~];b1=Nyyu: !4MK&SBJ=z޵>clj˗/׾V\\9s<+VdkE>}z4\9s{gرfͺ,X N}Gf͚5z38cƌiɿ=P{hٱR24駟[;;'8p#:4{ּ+~Uҗ\wF"^oj+Vl =[׿nj^`4RСz7.[Tp~'˖-;W:O8[g]wֵ0-W*\u]y啝]#Bs]ӽ6_֜k䖪&A5)JTQp8 P,V v< R` O?z:w[tDl{YΝ۹Y*?Wuyr] Ӣ(j8#p,UX(1=ALc].y<tJ.e${޴i~\r%rjN\rxŝiٟ\̿x .gT5D룱XBU@>D&{XfMMٰ$Y%8<s,^]$h4T*'X]]6\W Gڬl6LF_\[[۹kvfU.{ ^)[Z _5kȑ%bd0B-fUlVYUQUM4Zh4vY.|>ybӦݒ,۳&<G8Ԅ"puupH4>V^3/ϑsˣF{4j A9nqwl][׮Xޖ-J"b hɒw\B^@oۨYvz٦lfב +IϨQd91$dдh _9~^PY?Ǔ]R).^'Y}>qxllT{ii4b1y/Omz(0ӌٷboU3fMn @!b 46coOu-@J&ӡD%zˬ"v0  HE ,={VYۀ#K<-e\-=h-6zvVO͖d"zvW@mm8Hev!C JJd=JGu^{Ӝn ^RV'm;cǡTJ3%  Z0thi={|C@DӚд2 "@}Uh4Rz}ni!4!2`=!C 5 \{zJKiY}꣠d2&IUWL& 116R"2tڐL40xpPN.N6>k]}M!\vywϱzÇk}墧zk}}C6mi.7òz6ko4wz#D⵵ꠞ#Yنl2pXl~3?5thA~SO2!L755VB1!C CqL٘L:kwL4 \2*O !#={iZC]Ql)IJDKJ>M!3Xv'SkZUezcKx2i0[V ㉵@G (Fl dJL͚ѨiI y|`kԺO+]w]'ՅƒN6H} Bl؉^ IDAT~]&gwjdJTEg:hy' ,br% v8qiӺ=؂KKfΜBЗEQA5@   bU~o(* hrIdrInTZ7zYdvKYni> %RɾD+*夲=')Ҽs=#sSe{'فGTYZ=J{PUxz /9{-2`?- O4 7\̤iu&l$ޝ7Qdf}IBKK <*xx (}"x.SPEP)gJC9zPr'3f2/b[i3NfI4=1<U&EQ,8hexO$Nn(/i~VJۭo6R˷l7".qMP4ɒco2);Ml>V"w>L7gj_&bfgwgdgKJ(5#B-2dȐt]V׉ؒ$^P`ņK 䙙>#'[Gx=8/|n<`*U=*j41cz_xac ˫ IrYn9s&_|q3]sou4VEx2)2vC[pX8͘}ðW}ۭee_@W߹f7iڹ<&0zhg i i>O\;۷W~1QL`0Z[L&FݷYrLRhJYkl6}n&ݘoe͚֘<h]'bag4 ޷o֢EwgfgHX1L(fU}̙4kWdE"ܪU{W' A=fL.s%}srL4s+,2$w„=N,t4qϲ|j4tenXTF`P *")d0*4Sm5UFFlhrNE(AKQ7HLdJ7flzE7>SXtMfOӎnJQZt{Q|{w3qY"2$逸5@ZzΚX'IC\.{?\ҲC(UV;Z;t*+])x (-=(6m:}aРs\g.zKzTU*ߟ6w74cɰsZ=_aI?03.|S-6hPC<}.A)JPq$ðnwh߾aRe:e433uv!3S6#Ck2ifuD,yS-v6,8;iĔr|ܸ?zH$3>0l;.ĉ& EQ}fX1K}o-ji/]Pqqt儯*_|5ܤhit,QL?8MM j"zbfGNy>GzCh{a/GI4R)PbјL ٬5{8CQZv͵m^V'^O=uȑ ҽsgΝ5ջw8AQw^BAlPb0 剄8~|W_ml0=QT +{5Aה)|0zF훽f 4h"I|ҤaszzˬYJZU*뮋N/7?d:[\꫓1QWꪷNðH۳XyyͦMk\.:L62vfX4!'\S`LZ8.ǰ Z ɤiԠ+:.8Xp sLjLO6N6RIQժd麽hx#CxU0hl̓XNgAy~:#1 S*K4{snY*-=8cG\.xIݱj۶ڀ(r\&K&HaI T*ENqnz^O)M{aqCN'tp\.(R rL`Y>5:/ɌFɄ4FdҘLjQc6sl|9@WEN&`?\aX|L&fͺ&,X`nQWL-Eݴ55~6R(m~~NG ].ejm;GB޳c]^TmeB?pIkNrˈ>Uh9|?DR:pe}d5XAr)hG)i6֑=)رc{]0p`^~Ĉ%2vl?̼#ass-'Y\[/m;s>෗^}O1_QN"%n+*j˫b$qq]Y(&$m6مY)/Er\.[vH{j<}~3?K?trnkX3K/?gtwQ4GXH2LaXBlT ^Sz=׫t:UJw^UJiۂHaip.zEQ)ܖz1}N:͠n(RI˳=2J\.ej˫={Z9)ϒ7쩓ɰ?kV] 3N'uڏ>Z;{dCeŋUN5٬ݱ&վ#_>x5CͻTCro~!ϟll ؅ 7XK"f iml1o,)?&O:Lpw۱z۶=~efV$a$T,+H1f.,c͵ 8~7t^o\:~"^o TjP* +!"'bx4X?dh:qѣޏ>*]pNGuׅwy!ڋsc}t1aSw___4kѴnqS,<+x[k+أ^tDdabPV@aYQ(hpr "S:U[7JТ-vS8!5JE7z^{ZRɮݮ.l,C.EiQ-EQRR+mz*fv:pbf鋊O6{qq~ %% qΜIRYxB|Պ{k?AzgM&s?n2 ۷ZlAܰ᠔0,,[V~ C_77r}JKRmzr.L&O ˖=rݟ]H$D\VP`<8ðc =wXh…O:oRIMoySˮ(G)Bmٺ(a*iU*XuU{hM&$gg 텅v/;;x,]. z>_ {<"\.ԙAQj5T$.s/J+lz͐c޽ǤLd22vf&<-\AW}E3fU=䒯*y] ľOJ;JmNTmU;vTm^}{5MGJoMj"*+݇ATnf H~ Ú,=՝qI7GH}07\HZ04Z* $)d BeyB1BlXjh ҷR`P(AmS4@ {|oG)$_~UU~Ahs0JqPG$?dݳG.]xhG5d2k7 hv=վ / M>:ciDls\f"E*dL}u",ˣ"F/0(=aY^Z^Qff,-ZufIfmm#.S]Cw&Ѣn7{Pz=էO˳{o_ݼy{>d8~c?>o&X϶$O:oHyUom^`%_~y&W~@aL&׬y27MsTjےdIɀSG[jkd!U;vTm|p&XamذBA;ܻ؞=a$^Y#c`6p8s`P[T=` I[?b0 "W!Ilje2iLJ 8ҷI\4 aKBAN2T:e4LtV4TZ-tHuS ;/;N+y8㲔'ݻ_jϟ]{`ڧL-t̞}migٮ]Tlb-Ű,q۰bE\.O5o( ~85_+YgUs4fLzP^^}o͟W{,M-E"\}<(FQ"=IHӱQ@ ّS3CFZ?QXG,MGQʓOHO~x1(,+gMVS$&BҢrG"VZvuӢ(mnNXU++;2w޽m<@Yw]{ ^ڿMa_hnL&"a˖=2thi3}Gp\~=?M|/,J \qśÆmE϶DB:om*OWWZ(+;RVvZrȐ}(bcG0fӣBAbQp|VvLD(t[tc K;SKr4^)FQ L&qK$0 & fB,`PtJj)j'gt*E)l;-q#[_u8wuу\2? frY"!뗵z?7K~q׭^sj4PgЍ7΋Fe ²)~לDߥfhH8wDi`0v3 h} ,T*lj63S߹‘邢螗ivZ`PK N\t}Im-J$tۅaXim[>8d@;lXplX;ɰ_Im6=\*I #\&%IA kɕWw}ϝ{Сyhƍni#̚uy;:Tj`={XL) L&M;l%be{˖#ee7l T).Y\?bDX,.=SvvCXJⶨ98t8K3 (zҷM$.S R@(jZ-׫PWAU?j8(bɤ'P654K FT$KI\E+EFhJAۥ4ЙEtj1b F]'\ԧ=#:c>vŊY?OJʎ\pAo} ]Y駿#{kЪU{MtC==S-ЊquZ*L7qfjQ:V:?Ѩ6&`PN Nk),Ŏ2Z m6ꠕ&4-kh:t2n7iQO(ĺ{ IDAT:]ݶ!yϞV,*6xpBA{-'իʝ;kƎ-|+@j[]|;0O|ɺM͝vddhVN\hӴi74&GV?t~gwׯoϩRw;'.SGӻ+PY޲͇7o>\U#yu5`|JtһvxUtun.*>p`A`PCjzm2e+wo[AW/kN)ݷx8E"l(t,a6"cRm$†BOQo* n}D$W;EY\&%EQEC!6͡H$zsQ ȥ-J`JUJVG wmcElE1[_x;$yɓ{D-0!CkM>0g4 =?[/xT*EA$bI}4#c94u ݡ7X7+97kSy><">_a|zO s_VXjY,ZYԙZYCxoQgDzŠ=z+qjYƹ].e˫={:-*5n(&/+r֬ ޞ?>xеz|"/O?eΜʕ{~-^I Bw venahs 7o>iӡuVVI:ǘ1ǎ-<8=Oh׮Zݵ6 3<8wȐT X]tUV@ aFDB{^ւkϞ:ޘƃxSi~fr܉ %J%AQ " %ERi0(T*IQaI $aIQL Q$ϋ,0r 2L esbQ(}qlFs2"(u:JWi4JFVCo.sWVT<̷vN6jQ ͟k}lȲeO=$3S2xpnf_~'^ݔ [gTx\Hbs6n79 .r1qd94xBISU`Ɠ:+˨w7 N' Jr.hE6KJ0uRU~F.ҥz*Wz {y WN…wilNάy]soezK$.}8-q%K~X,%Km%OhӦC~;PSWƱc ;tH v)+;\QQcGn=dH^#EѪ*߁NU];py;1 B{>IQZUoQW/FYHLO4i aĉoNRןz ?{[n1eʈVj+:thY3thc rYVvd֣X\V #=C m R|.p8'J[pX[aO{n^P`qb 9NHq!\<.Bl,,ϲ|(rrb4|R*qBArq9Ar edd0AEQL$Ȳ|"!MPU RjFR)4^RHZQ V+T*hTTZ}LWVtzrT#7~Ł@?]q &rcvKXN)L.Z1_)G;wY֭۫{@@wsP͢9zT 4mP:G[WL (D}XVO 99{NAVWDi#"uiK4߽VVVDw!Cp /C!/K̂g5Oe=ٳ r }?;&Nx:KsɒmD vR[ ۖ:~m?ðVnĈ^c^|qnLK&be=s+*j˫y>Sr)$mDe(};`@NW=#`Y責 Ms-Ӝ.2\Һ&K&ddqE)BNJE*E(KZM jZҺ&Ft:jjE m-Έ- G?kM I+ώ ,[Hjjf-޼=\ϩ7^pw9&{, "4Y @4R؜f J9Z8N#wu>Z7,-Z L&ujdnקi5(-Ѣnښ?:0nZt|aOX^>Y(V;bD\KN~ai"2eC]j8ß{\o>zw=<˗W^ݞfg~wN[ }|Աnmێ|:fL1c nj)d57..9lXJq1 {p8ӷ9N0f'n67ܵΝ'Q.ODd2*8' 1bðpQH41C(&!q(L& Qz#H-r$ dJeJ%R)(kJVErYt B.jB h2LWaSrLVS[sD">?v7x𴌡|C_x;-Bu?4//o0 '#j'gw6<)Z b u1 h  @$JW hHGXQc2(`f/6MEe`Q:MԷBo(TFiS6%h(m(sNСU5'h~Osr. /Xnp1c̝w^h0=(?֯eÇ8cG'L[䁎VYꫲŋ7tlԨSG^qEѹЎɲ-G֮u./9%%KJ ح'./!/,cÆ6#C%SujgZ fjm;GPHej PyOؿ{Yt{NpڴQAgQ ZC_(&'O~7XXZjk'M6mڨW ",-u^]tQ]KыIYّ<(?|xAJ?Y\.p8t8b0 S(=2ZPwo[: PeOn9N`Y>Ԓ&U(pT(pZrQ)d2T+IAy^sMtJ^)I\)k0TRQtNGi4< /bbŮ3Ϝ?nݺ)O0Yyv׿n33#je78/-{%$ b K4">_@ Dp Esh FUfdRLIc4Ѵ٬1fdҘLjFՕBx!AexZM r15(S[^^p\ޫLmQQsO~Nٳoᇝ}[NA,)ywo~69ᄄƅaVS7{.oն#G<_|6'Jm'LamDwז:֮ulXaؐ!y]6`W"h|ڊ-[lPI/{# 22-jnQCnCeZ:){0i~HDJr9F8adR& ( AH|"O7] \zJW *;`&޶V{Dlo;wԩ#_~O]rS]]pĈ{ﶫϜp>7˄ V;mK*.@QLgH AY/R sɒ'M&٬RX1|5x\"`fNfR+i ðR+0nA2o(ɸLU҅(J+ѢnZ6ðIU0.p(+;k~yπ9?|UW 갇}oï>գG٬gȐx`w^ZCfw^N뮹-|bŊ]|u͚}IO:2/ϒqW@{wqƍ7fLfVUݵ=/*6dHuuADν{"0Aw67RXh/([5p 9a.P9n,gYab(+2LeX,,+DtS\"r9AȥgV21y^^FRZhTt*Ych32蓔шFZ V[fZlYK/0}6Vmܲ. Fu!youYjD1ysss}4#c93qB0 c4X0B"M\.R* 4`P*̀"4MGSS.rarh;$M}PjVzl6CNISAGݴQ"$qY#JQnLjpۻ=xЕL&S3C05f'PVv7V[><Ǘ HN G=gAf?HɌc[e`QLpÿQnG;'ǃ϶O>Ytl-"UӞmێ$^\ܳdW \ ð۶ݶ֭Go?sZrȐ#z \uVWdnQvhE" 9Dϥ X<b9NDHC#.Oy"5϶\.S((RVT jUdRlѨ:P pSjۈqGGz?Q nC%bqS?K+۷ᇿozu9rO|zt@Z9YLVYujŌ  R(Rc҉kJhTfszAcҢuVUB'Q`(-[@:';VVPI2$ŧe?%UO;vTƌ)LجY_ہk>`Q};h-aJJxɉ?Wަ qÆʅ 7c٬<[/+V.-uС=. $ܲmGWUH4( zѳNGր&vp8ӷ) l6}}֎nss͝&tX7eOVr|0E^t t,b|,Ƴ, 'BBDðjH"U*Zj)4TE*$EE j"J-&F 6=#ߕ;K:wsςݜ>Oo1ν);ۘcƼr̙1@c<# Q?Dif8#rl֘LI&,٬5f9pvϩYqX]] Rfvժ@V=dY:/F Z)J{a JVx>qj+*j˫y>S}dX=ss3ڟ%QL^7V}KϜyِ!TYs|i\3ֿ_~iF{뭟եꔟINo.Xرa=&O>i0"=aY{~i˳\z.0rdȻ\LYᲲ#[ٵV.e-.;pޭ޽#Gvmݿ7o-bGṢ(r;=6}{̙_̳^3ut猽Ϊ^n36>c9ckXG8QŠRODT6;k nh:MmmP,uK&Zh 8Np:FQZ/ *g> x[VTp*˖j mh1O,]W9?O8[\4_*+7ޘ2iҰVY[X2mݴXT3y'd@Ҷ8Nx\tQ7ޘb=|c{lBt7Y7H ߅ܻEfbfdhf-xl@8;v3n7N ݌zC^oXZRVlL]fjgdhv}F.3Sg,-Ii!u5Ej@jh,6juUU(S{X,(?&يDž[?y:ci!+(Mǚz4TF`85Od1f/Md2A7\WzCuuA7|x I;S)V%UoL&MzohS( ZF R-gv:LmGA{LmQQsυ_(~w]n: O۵_A.MGexB^o|a'GIj6#Ck6kM&٬Y,ZY22t h:t2n7FSҮ:2Z4PIQZ!uE1aRI=zd‰ۍTTԠLmyyqy^'3EE)L02/_L&MN]QQs^wNyůYd߾Y&˾lgڮVR[kL>ztC8~h/tc!vn2ln2t䣭$.Jtqf QN .)%qїRI ƙS-V+;?{T=&ImiU6 YE .T ([PD@QFQ2d/RFt;{8pmҒ&i~>}nn}ϛs{|{$wʖ޽cm{i9rH$ɮv5(ˏ{uذVvD+{yq j]+8-M&*׶:\VDȐ B>)-B hFDi.9eoջf31bF:v|C~}QHlZE&Sǯ>Y"RZ8p޽WsrpRQ:yx45IqHdǎILLӿ;B+Y6̩W>p!g Xkѡ>ڜ'[izѣLSbX, mC@G7$YQQD"+. +~~w{v/o4֬;hP[WƎZ%&~بJUUF&SKrTN.TUe2D"5dyeR( \ <|iDVDx@AcW@&S Z;v-JBRS)%RSۥK>ִϯs{\9ӧ:5i {|'j@/fN N|W|={<A9?׮]r +nbb"`Ç5!& 2_ϾzB ݺLHB gYj <|X!̔ffJJ B EG @Xfy[-JU  8ػ(:$ifB. fZs]\U1 `x% :R J|5U|BP(>C >CROO6N`34&X2Y,:$3X bѰ9qĶB5bFo5l K4jC˵+VݳV&L=uI٭[KWL'xbL&SdT.ʪ4X[)id2uIw`0UT(6ڎ.)H-U)-)f2遁I-|`rj{CMmǎa~~>~~<__P=#.oRDk\Z0J& d͜RZTWB -(ȫf&*Һ)+ jSRNgbYm-[u͝Ԣ>{ЭPw}W7tn|_ݽpSkevaɻw;lm|ݹի|yPwNNjo7i4ʋ/3kBNw>|СΝG2rdTkײ.]ʼx1B*ҡCX^b:v sB*edH%tIjjRC \X#E11V =a2㝅EEUUEEUEEU*\c{{ya nhOhP(RrUTu/NkR;0^6di}lڟr`F=WoZ_LY'r͊{^81~Ѣ.Loߵy>=O,G[ht h\Rȋ,*HUW 7,ϓFszhцxT@58>|Ғ:Z, m7h4?zTBjjSRu:#j*LU+ A&OͧOz}^~s;޽[0dȗ_~9~.7f_'N;}z-[E3ǯxΟ}695r;/Ţ1cLM^&?d<ϡC S1GwyvOWYx1…s+\fzqqQ:mKo +z#B?ے-Zaۨ1*`0T:VzFc)h :Q FJg4Jh l6Z5T'FxzT'Nzx 2 :d0hL㱨T'Bs('Fxx$ݶ_k״^h@ ܸqqG,e_jϞw@5yWHlee T^^,/WJ2 +/W)**Tda)qYq2Z__FLQTTUZ(*J2D&%\(?ߟ( |,)$RZD^R"-Dҡ'RZƹi6$ĻiׯgaM{Ãպh!Y[IJߥK̙o$E!AJ>upVa_%&~عs}qSʔ '/^iөTVktZ>ڒyd^^\2lq!kHlQQeiD^\,++SLf\ח `AH$(@53C謬_a0h>>xT$Im2EDcAmnmt[.\Xϛ7svx~qG ~۴ n&mpc2Ke}v( ޘ̈́T*ϯ˫ϯϯ((yp|X,:t8mhox/ggj Z#N[-..f_Ng|j,fُlc-/!be\< @=%R{l}rf%%iol$&&A>a="SL_9mZœ9/:Ɔ$@ZT*Je2/TUiJJL&X#EX'bYP  hD %;GT.TZ\ɤ{{?O 0_L4 9 d6;TxWTВ ލBmXby3BES[ ڸZ@*#7l&N~aÉ;w9N5, 6!a:XrU k VYS_R$C ӠAm_{GϞ%y];|Fc8v'គ˵/g?~lZnn9Kܷol߾D"AUT>|(MKdfJӋ33xx#cb[ l:H,Xp:ղJь~PEp~܇ksmZ\y ]m]Pm\{>[0ۼ'6C\q#'Mzվ4JKHJ?aBҥ/q8̆qѢCߺtiay[(HlN(+S)%%rUILQ^,)Q*˕8o BJx~~~~<OG@ח")XHW.pb.)ThI4J#l@ qNN)Я)  01"SR699TAQ##Ņm,YG%={Pv,Xpر;/.h:uZ}O@WoY;Ph{w p}| ;tƓ's̀]&NkJss/\ȸp!TRۿt޲1[ +33iibHQZ l*E _x#<^[`oKmXox< 41 lV*uFY &Ơ-UzQ &Jo2JD(Z d2 Bǂ]Bk2*Km@Qy<6J!dQT.dҙL:àөl  ǦѨ\.a.FX |>J@ ^)QmgVС:5L?Vپܚ5ݺ(8@bbxn8C WQ^^y^.}i'[ j 22)DNyI&ZNJ*pBdl &T^\\UTT%ȊRD"z H IDATWq̠ /% D" mt:D"&-Ը@5)-gGG @ڴ"2UmF!$IAmnxhD Ço}URnnС}1:ZjDrrr] iđ#;6P?TU}'श!uK~RsEO}ฆê_:>…|٥Km^|]HwVpL悂ʌ IF$=]Rl& ZD\\HLH,o" |bABB.+94^T*hhMKjvjhVtFYҚ~*:ɌeI֛LfR4')x 4 Ã`pz]H'Jxxt*V4&JųrBAF%w y'7oݻ\jidH=:cFy^l4-ݻg~ܔh>rT*/)Q)$YYR**JJ%%rZKR(??O({{ |??OH{{CFVk UR*W*F{yV$ ^0 `z?RZ˫af9uaaeMRA!̔a%,ZWlYbȎf wSh4ӓ}{ 'Hd:-9thf-HJ?e// urՍ֐tϞ+.dDDO}ܸ~~-[GDl [hprW5hUOV>NK.,Z j l~ &t6b1Kfxe.k+%qmCh4'w._~8z'kj_A{uٲ#!!>_}5>.dpР}7eȐ8Zv- RL&˔eeJ!bѽ8,YiBP( jJJ RyK ؕ`COچJヂdR?L=ԩ=-p!#)D60ßRv-F9;4585(5޽*Ppw\\Ņ.LM/t -( _"X9RFk4T*L(Z\1 v JPjT'Q֛̈́\EvxB\.3T$>CPxNxl'JT4yvq ^*bb/X i@ĶoBCOι-ΝY3vخq.Yr8,oӦ m?SLݺ9ͤ Hl2(}LI[Z oXt7,ً&LAuRRZMFAKB~@d1@ t9u|6 FG%6%%_3xVTbzGYr׮۷hS6Ws~ngYYOc2 ZѢEn=v6/0`ݑ#t#_d瞋zCܒ{UB뒼jҥ̤'O+)Qh۫x6}6Im\IK+&gfJ  ݺLHw#r4n@w ]֠-?t??mW3}z1QWj9rww8G9ЬU&Ns ]Qm￶KUƸg+|vٕ+%YYr__vBo G׸錇Koj4}zQ:9Y.`2oIJzpt'W~ZBOgzL*+U7nd_099O3 7xp\ǎ-%8reNNYVVivvYvvivvYNN)=b[ o?22 22 2ҿ9?@BzBW[z ]eIrj%qhKV?3\6 gIbʕGew61"11A#T*lVڋg z Z/ζ ãZJ @z^=7|sǎΩ[_1Aym;S&B! M*޽{ҤINtp1qqoVTk//nPWpwHw`W` $G(zX53'X&hLrl֒eAUM~LۄD%`5!cB}9&3Nh~ó_YPh{Zտk:ʦ WLPU֯?WgQ[uيNr!d/8`c1}Go{{sL9i>>tW~t._~۵ ׯU~;thʪSxvS3%'L( v=F(revvGYYYYdeF/۶l% h.9uɓwszzȐ8uaR*edHssss32$/gWN n7,W,ĈZm§Y=@QȆB=kT&%KdTnZ#_fEOt+tO0 flpO'&&߾_UqȐC1esj/[rekyqVVd pB]ytjsΜg-[Nš=Mտk'K8foJO>O?=""{?| R6(11{+(<~nR9s} aԎgG&B@($$Fgefe<|XQIJJ÷JBӓݲ4QQ9Z^VBrl&d"J-BHКLf5 BR*uFY7j4z@r!R骪I#d25BH&D#6 << q,@AqL&NScf|>B`.!"!&0 ÃԼ`'Oc0V;kFy ^% -"•YlTJ߾N~\L`2ct}.Ns'h6 G g!V :ƍ 2.^ػ*AmۆǷ5ח|izM֫Buc̝}: aB!>rmmlR&S斧K22yyG*1!/p۰0@OTT\!B1tFɌUr l&^ٌ3UJd2T2h4fyyB4c]ZM@P(NӓMRI.b0h4BAFO`oߏ._QTT5o`'x@ٶLVVo8;wbbD.O {oB3R)8ݻ7z]-[Ϝ:14b{32G/f^cy@[v1cU&S'%=믔/c#]F nฐcpn\7..\c0J33ddH_!) haTT@`|֞6t^^W5hFˏ:7Z~rFczlNX,:DteO3ja$1B< 4>Fo6%͙3(+tqf@`pq˕R,#C$߭R!dbbDbP,~tL@kOEObE/U!L#ʫIŰR5v:f[ԋm&mW<ŋE6Z)+ZBfͺ|2Ŋ_ti^cP(QQQvYl6SN[nСó[~atti2,_|ѢE_|'|۷o5K޾}C*jҥ'NxQ֭G5o<:P(G>p9R,YrɬQF͟?ae kvٝjv]C&uBT.Y~H$!!!&LOl32ۛ?G9&u; uV;VGacX]tep r[hb!WxkUMA,5( ֢}V#Ai5ֆ/<Ab[u2ݧf>M&O~O bVk};͜7svᄐ~ :عsxmĈf f6+Wrbѣw츰aNF0lX{H  B !5 Ç%L `0h-[GG b|6dZ'gEt&-/ZDj`0O[̾l6sao;#۷w|B˗/GDD8fVVVn{_>s BhΝ W^mݺc}'r/++W7.--ͪ~@; עE"#G#{9U(ݺu XjUdd{%%%%%%h4W! W^ݲeKҍSNa7,1l22226nةSwzy=}6?n_tkնI9sfnnoTTTl޼AwԤV ?3g۷!]ᅲH$#Fo\.ѣG:uy&y3ª ZЕWG! Gi|ѵe/o9zLg&JȐ\!ԥK9mC$!!˗zo{΋ӧy]{ #GH͜[ro;pFg0hQQ6mڴ n&m//k}7 oؾ}c׭3߼xgƤŋŅeBsy#>>2>>\c0J32$yy3gR,N'bX, EG F>rt딬׶!$wZ^TYﵚ"E5sIPp2;yygΤ~䆨_$=\]0Ǖ+WoŚΎ;իWڵ˱>Փf E"њ5kBaiii@@C;w簾}˥K>??UV5MPmԉÇ?~SN!M67on]fG5GlGk``իO6nܸgϞ}hS.Yd͚5!N7n8\T(+sBRxꩣk_K GUz#&=ץe͵kY֭YimtbQLQ]Q؁< w! /9sf;orjsoP=bBHo9gy-\qqB*aN;ڭ[nZϝKOLL^%Kw>|x0QL̿gU\XX!ȐKn޳NgѨ!!޸ 'Nzh6rY$4BѫTjM& \Mj!$k 0 !5BH&PU!d2J]<`4!DX݋dhT Ar!,R)4c#X,:p,9 NxزJ{3M~IWH}`醰j!W_EFFz{{O<ߒ8|p\\RbkՇjU-Pzhٙ5pY•rY='M4ydD" ]V C[m+hY]MSXg]4PotYa kآŜjG=`k׶i&%%ݻݻw;we]t۠[LyrŊĈy:-پNט$*r~…uKtfX^X=}kyͻw j6:cRk+]@=덩EG^٫6!ڹv_GNM-덮vW"))KK+s'ڵGX{=,=pݗwᄐ}-[N[~XV;s>ImĈXۻ*,a& eĶ6$uz#.V?d~Aa/ A*A꫟~).[\\:t耍={ ^+cB)V6RSSJd:w\MOz=FwGEEYZ87A&Yx5-[Kx<ރokjEEXn]eelV(&Y$ ԌHl Wt?//`(Ûz\ൡ{y5X?uڵ˪MjFQ$C Yjih4^zuٲem۶h{%j\-mX=XQVm0K@dm=bjatCXk\ȑ#333z5eʔ|FCZZhU T te|+GVʐ8XrrN/j_ٸHkzca-!jGbjG'Bvvi`GW*xzC>&&+-t|1k5 mrrޯcS~yscnƏf}wRnhӧزٯrgp8zZ۰d]GoLfW; zjeeܹbV%Voz#.nu!tȀVj+dffFEEU[rGy֭['&&޾} $ s 1E"ر#B PeeO]mV266!d2322z-R몆T*5LcTTTAA`Thr+҂ՕjENzUV>{W_}xN:}駃FԢJ&ӌɾ}Ffm۶H$JNNׯjO6m˖-x=9`-15Ìtܹ3^DeffDz힁nMwЁ\gՇ&u nRh/w)JJLL3fLݻwg-^x&LVB6بU'ko٦ 3W_} /Z=j;X=1!HZrȑ#322ϟ*JӱX|g@ѿj@W>}ҥIIIV@ȑkv/05W6.R0O!aZB,5GEjժ ZUΞMdwk#&F&qn`\2[jժU+a[ H{ƍIs۲Լy ko9h\xC۷% ɣG%YY;vTѨ~~~aa u_lưa kVOzp|ڌչ_VLf7Q;`@`0=|(MKK_X11ؠVcb[p ߟ;ˋp8Ld79u2[~%du nyǦZWAl&KUķ9:tpB>TZj@W<{߲eK̙cu+9r&ro5W6.R0lyvXr87oGD>pwZBMqQzzp#+Wv5 ^fsj?W;0 ZTT!q3gG|pβW|S_GhϣG;w^2^ ۪‘#7͟`Ӊ))jޅ?e,[fNg1Ǹ}ޤFم8֪UШQ,k״kW|%>>DiSҘ1[۴w8zJsfwmφrƤ{ ?Izjqku۹lذVu8rSN% ˟~innnJJʋ/uVqV9ʕ+w$''/]tP~Kt:^d25ŋB 1nܸ> ;;޽{}ĉUcLf>Ç޸qc W(ީ٪ e\. zyy!~'\i&I݄͡ .L8 &dff&''jѢEd'Nhٲ ZiӪXnGGm-*))ׯ333:Խ{wyS;wnԨQٳg϶a*vvkoy9"H?h"\Iv=B$$$e˖x Ǜ4iҸq㏬˗/ϝ;Nl4oY5;UM/<׽ qE^^իCCCVO7ӧOy޽yM0huoV2wjMj6N:s_~ԩSdafroW6.R9$\@,98g޽cƌ@Uخ函{8jUVVo>y^vv|>g̘vMqcܹss˧Lkeߡ׳2 &xzBnjp]%'/KM]y9sĈ%VK?q;V<7RR<>p8 L$'mpbuZ->_!krb4[+Tk|[6C 2eSd<OTkro;}tJEZ,5.gϞ<֭[~Rl߾}lZ-!kٰaOhhmƏP͓_700p֬Y˸;fΜIZv㉱cǎ=u9Ď!d2lj߿?22d9r\bWdd#GpWӌq(9iٳg̘1p@5f922?&T r9sڶmf###.\ػwq5l60P(#ljZ .ۦM+V>[vP'NJ䷶{j֌Fڵk<< G+Jz*jatcu:/ ̙SUZ5=kF2]5}zښMyz :XQQA@ȹG9jLp/㫚)F׶/s,i}/@,դ#ˏşVuCp􃠠Y6<( (=Վ8;{;Zܹs++tq|z~kBCgϛ_" w@3䔝~IWHܽkJ+߲ϯ kץ+V$>|(}fєUrXzkgϞ (,lk?`_=>TjOFK?:'8xVp~֬[ם;y=֔=OA}#;6nv aM:n͛kM>TC عsg]7lj{JۨT*w1Qv9=￾povNuN޿z֭[NInBhΝ3gάU,\0''g޽Y~՜t}G[F!"٭pXE~L !g'F:GbʕZr gȐ;Kj Boվ48l]wM&X\1;`wC=zT)̔>|X!-7LT*%$'**@,ŅDGt/r,钃9xT*Ect=P(pBnNgȐK/LM-*)Q uֵ|N /a@W NxzOZZ"ݺ3gwSS fT^^u!A࿕/A CCƌupwNHY|xHú4L[&V1"KKKVT>|Xt@Lukjjd:9Y)djՈˇ=xPpݻoo|ǧK``azPuL ZL&﷊.[d+4n*4ggO6?-SgqK.SNNV @kҏrB48eܦA}^(r|QX95KLL&&*ՐJ545%F66fԗUN$%y۶SXcMӿS+4MM}imMԩͲ8p-?F9}QǑUl*<><^Z^^rtV%l߾֍ŰX||FϞ󼁭YyX~:hS=.{ D"ٹs=Je6mZW722pqߟaOT51 % eÆ73f8bD0@A$\Бyy={^P(x g..џ--iV5\.I( b.6}nP xMr\8d2N7ьh4C:݈B!Q]tCtB!Q($͐F3 tc2T OdHKrOS$111jCZTDnnEp.BOzy9FkȑX2KKjAA%U,f]{SxҥCT uA9UZZ2={!nnvX WWUuR)!!!!.<9qQll aiaaY@Gic~qqe2mv60l&h!,+HGs޽W" *r;aY . IDAT'|R($Hߋ @dRAx A``3::Zv.fM<V;w{ZoRU +\)Hnjqê6b]b1n\|;n^ƏB/&nCB<)/}ދҮS@w9U2]m0w,..c߾6m>|x##ͭx"%رbB!ujťVU@\.I1(~x RL8ǹX4,Kdq R($ خU>RLF$%KGvk-Z'ŁX,-.~dI5hVZhΝ:tha'O!ҦqM Dl 3fovO rsu]:Ʀ͸qyd܊_WܹljD<2u&*ɴe2mWy%KDF& =$Û%@ hF]|}_J$*m~7=nL[êcG3x;-biJAJ؎\,qV),۶)vVV4"8vlS}LSVR"E?tj@ #V8ǏKVa -333iN7ڰ!0"o#F fmUmxͼyjjs_ώL8.!!Æ1U+RWǿr%+..}ǎ=q}owrLe%)˗v%˩TC''+4tdյZ*@ rZR(JfòhN7477%u5,uzAZ$*oVK"t|j͚<^֭-?w2Z`ff,Kk@,Nr9?K :կ]T33=ǏEw%$<^̊C2zX dӍ||^=o]wN!!FQ-\/\~Ng*rs+RR { Kdb׮ݻ۸tpu۲r-bA4;[WGkk"D ͆e--h.V1Hd"fD@pjB_T@"9DGkkkj++޿os|A=vW.)/k_"G9rȷԆH5"@p#Fho"а+#ӧOW1~ 3 ,H$ R"nhHcmyryd2\$e&L_d}{Ѓ466B0=CѾ *kZdM/Z-;u*)+S˗x kWT! <^Glu+XL%4# q߾6\>}:u OX? F1bD͜IOβRjٹڵ##G޿">>cꄵk/ ?ޫOf׷ X,}mnnLO@ tpua2m]]m\\:=9㰬R.I(h/*e!tǹX",KA4,ۦ1hǜ]=,G03L& r\.%rT.!L&" AT?GR^CzdrD&ڶ&p߆ Ț5>-ti033S HÇ'Hݻwݻw*)I}x Hv}{xPTvֲ3gV:WXE3!: P(-/o,+k,+k()Ȉl} Udkk2wn7C/*{F.GdVr)TKU|>ƍR~4@|A4@%Uִ?S՚PWV_@}Z^4ǧ˾}5\_x5#/+|ԩYX7U}ҰȄޑ뱗/>;vhm*+N9S?}ݻzA,-L-idegnnu0~$J<^RgXV) ngT@ ׵ken[Na\.?~Tp8'q8zC>M)p>>]稰N@cR?bT'5L820~ԩ~ u}GlX,{V=yL&' r\*@ SUraAAe߾q8ssi4/l“?Q ~ס=5u5->1{ь;w_Uo}D^=*"2UI>}nZҽ{kغ]DBta]>HL̍LrK #{?>rAvv[  rQyʳgϜIiݻSHGPPoT-SVYCѣ#ܯ:~.4j߽]aY '|PHT4_~3kV_Y.ovc׮D-<Ȉ| OUT)D",[6t0mPО]*ͭ4hEN"bKYӋDRYS[-*99?4L&S~H$t…j55~FD"tܹyff_t\~!@iXZ.;)˗ǝ93G.V.RD"8|xU!ƌ],^k3b%&..B~ѣ3\4#/̀[_CVry||ƺuDʕ#BBiD[roD"C6.̷}顮_Ϟ=L&~gaA2w$FP6]=t(]X`[Ibb)N DN92} :m3Rmӧ˦M轢[_zHWW5M._~ztjZZ%u8PNڪi: ¢/ޢ۬2HbbBvvnHvbZ_òhٺ:Be[R($2Hff&9 `Ǐ߯<%%R}6zL*Ǧ;''#{Nn>t[ZZfڵ3v`wС)Gl9!07Vr<^O"&&k~W *[\e˵ xpV3;uLv#G?9D"X[/^mrr)B)z@i۶q) !C\gۻw'~ @礥 ڻqc}5ߟkDl+bݒò&KH٪ɣGE˗Ǘ,Y2d̾I^_93txmowgΤ=^Y2iСDcbwh[,;\ H{vhܖɴٳ#3'&CvV1(H\Q ~E)B 6m l-\x:!!+׷n-Q놽"dW]`eExql33_hjJ$2AΞ H$x1{yyLYczZ!O𛣣31+mlv_LƩm4b=mWkPZZlD,ww׮[ j/g]{A"^=*$]2ؔ7 F^}3hD"+*R$nsr*DJ[&ӖB!a])@)²bGy&Z?òJXCv8d2e1beUCP1B"f9Rd\.' >)8w.Q8dkpw9ߺx) ɓ_MM|6;?'ùt@ 6GSJ,M*#G0@/AĶ}#G]]m6n j߾M>| $6!av3cmۚ??cG/=f^ޛq4:8%_瘙xN /]sgY֮)$&Nr.VAV/9@iRSR~ٲG L[|1/ڹցwڲ%Rؔj&6,'0,DVPP]xAH" +EnCo\.Vi Ծ ʔ~mvB!Qߠ Ѐ׳g̈Vطkg+7ؔ+RK  %nƦ$'XY{"I;f55s8e ߟb1w 4Fgj/xXa=J`Zڿh[L~\ƺuDʕ#?4Apffj~)2dGp86"xꈈ?0z[OƦ$ q9*@$$|wm%_>~<(~VW7|,B"I4bB!Q(v |̙Gn&!a HJzqfNTTP ),:s&F__ǰ0CD,u*+yii/۷}51!١q[&k k#b+:v\ ^H$2YvL߾N&R OemMǺjۧO_Zu.'"sO`iIb1 p- vvKvPqٳ^=Aډ' #UU۶]?y򑏏Æ ANNlXRI^/ B I$¤I>  ֽN١CI.<133 >eeE@3d2q޿oqcB°T6uꡜkI:~nΞϏu-yN=Z,PI$D";ŋZ׳W<'6n >/Ν{fQaa>)M9w125$ăł7F. neeDSSJ׮֊mhZŢhv8kkfd"b\lff&~:)?}ĄA;ߩ^;#޼u v9緜Jelv~RR~jKHbggb1X,F߾NT #]\zI= ̞}Ȉcx]\.ʔoamyjU[DvHm׍+V  "A x u|%ؔz!3gk|]nڕxn4q#d%K\y<]s…4&@M$RiǎG`0 >!<`ݺNs hgnBd+%c۶P6.]zzHg I|t#M?/_pӋҊ +e2%Uusk2PòJ ?6m9,Kd"faYN8@RR~[A9pn$<(M~clL9GD߷jjed$%998ťgxyu60 x4bܹ͘UAh^S%'<8E 'baaddBQQUxôgIIT*eΜ~81zD"ŋ{5i;}:k̘^pV@q8e#Gʕ#faRl.d>1`}8/j_jmAL7γ[kמsgthӰ_,YrF(o l5Ο7/F3<|x HO/>q",3Wxx]ZFann)/(𰇻&Z * פty$,q.PH F3D۴1˚5kV_~ɒNe%7>>#66ɴ mddGnxnU{'}Z3m>Q&x͟?T*["ԩ  IDATskؾ}ݸJ||ň !11waa>hmtB77s8e%]8$st ےWEooߞ~Jex1?`U7*,toԤI4hCkkL&0`kvMĺV^~'cӦ`hgnܙ3ޱ#tȞ Ν8~ozgh7CC\n<NyzzqjjQUU= vvl ",l.}T1>ݻO)~UhhYtB!hQRkB}V}w.\XxSvT*Ҿ6..ʕ,0z}\]mTuj6;?-%]PY533ud,\UhU##F_v4V\c;n-Z4h!X7؊ңGlzm[_+GN7:ztօ TT9GQzNߣ%KzsX ??6))ȑ,2]FFQgd|gӗ.=fs`޽K$V$ٖ-;mk͚QHƦg3#"XX+TVr n?.i$;[Y[&ӦgώB㰟Ţg߿oJeJQeŒ$ǃT!@&?/_Ίaa0BB'MQm~4nf߻^`iIb1wiӢ)Ҿ}*l$^0eZ_,?fGF&Ι޼dΜs^H{¬"̃={V#8h7M>p`ʨQt4D}DᚚC"<<*C%sL9TXE%{,֦nu-հgӗ/v㏩&&d +ΞMf ۴ǏK|DoiutԒKr  Iab)Bl֔@c]hл@KA9 DYQX,3G[UzrvŊXnȞ3x] o HIM^4 %**Ʀ }avZ[u!=*:r$lpDp_h*+6x㱪޽s<&f/җ.=[Rօ/s胵k/U R($2v533=|)8w.Q8dkpw9 ))lv{k z`6pyJ9b{Dʺu^؄UAh/NtJ5K,޸fwnɓPXA Ο_лgͭ7/͛ 5_lvլB;xo]OM] %KH$V\iѹr>@:t3 jp{DzmyAA\.2L~}}U5}gю aYeBXjS~B֭ؔ++Z``S};tPlv>߶Oѷ#w慅&;wډ'2c5k#z];Z?.\5{۷vju-"'ر xܘ1Mci-/С;1`AIoݻ︺=S.@VJxX/Zðm@;[u %?xƍ{Æu9P\gΤ74 q Ֆ0U?yRYɓҺ:>Dpuqsͭ}^Pe63(Hx&R($ Dt1L[:G~+,:s&F"sr└†9`~~pZ!mI>}^]\.?ҥrA /_><,׷=bbc]MO_ohe"u븀[2|Ǐ?س'l(7Q&J._~zǏK SMLX@-*+iiiiNS&JTJ==L[wNɔ$裊A9d-er4ڇ,nPH4A[z~D7?40  3Wٳ 6;?))ѣ"T֥=>@+˶nUMh&KN.8xp4_N/sWol-^<8"O x1s޼{~vpB7|MvӶiXwD nМe^41q&+.~pދk֌nDcSkRXڙ9Bרxx3 b] GFOHx/ Hom|u޻۷geahmbi^m *r=id_qbB ʔ6%IhُMM B{G**Yq-$KYM9mެ~M,޸fwnɓPX=* Ԡ\.?{6}+2|Ŋᡡ^Yǥ#GJK[2躟{7Uh@mnwP֭!&[͐KMHx|^^. (v144 5Ear  verאJeUNYzzqZZqaaL&2Lgg{+"ڟNYllJBcT6hP0 K5433K|B!xzvgx{;/~Dlqs[;{vz /^8 fx,kkZ%L&?w._/Hĕ+v)V{`]ɩ8vABc<7fL. @p16OS,嵋~ 0/13kuKΝ{˭pbZUTmk㏧$FU"9~yݻw/SYɋ}}àA.Ӧv(J-e b}λw2ٗeFtbB!QwAYS^R}ButlUw _Aڦ^pb,BC=CCM0,>5οs'͛:ccr^v j?GlL9dhhp@ @WNx@ <}.HkȏZPXXLLXW%X5hP EN;իԩ~v#XriNKQ.Ʀ_l׮ L:f~ݍfgdź?x23޽吱f<`Lc H.,ԩ-|1Xz:'::9-sYO!Chsغ&ŠP9 L8lX2D*)Bl׎ KfɓҜ XJefT :Gkڌ)8w.Q8dkpw9c~g5YXzy9Xsn^|#;v܌KOI|A.~jE ȕ=aC mMAbb׭ieEúwİamM<τ ^ڙb];|8i gQS?.?z,b`];jRddBvvŋ .@aaU~9'ֵqe,-{\U- (rGrCN||!$s~z@q XŠ@,˯iJAŢg۶5J 6;?))?5H$3g,o_'*k>b"4'kP Uij}䂃 ]j,K}oML(˗-;?&I7_`]z?qѩSC9¦zͰa;h`u?'bXz޽;c q`߾XTcEEUK{zYYe+W9T~ذvvO@".pLjLL۷͘b1. Z~QXB1\.A4PK^UUYY8b@ljJٳ=i&Z-ª3gNNmu :%æ&QFFIRR>S\\:X W^0|ĶIjAA "V?u*uI|T~|Y"?xPyzt~ 06&c]9t()*G--Xעv"͜6;"43,Gw{/:tq|\u4K8ww':gРmu]rօxu@GgVZRl;vׯΝMIrs+F}^۷Ǻo%Ko>t()={ aYl]D4Ub L&hFtN߄D"+*JO/NK{VU5wpg2m K@=]ޝ\`aacggu]i|gKK ;3X,F6x<@C"S;vj t\.߱-x\or7n~؎hYUBޑ#EsˏǍkTnc]VXٷo/Aۍ}{ks||0ج矇Mu!@eir' Uf9suźqz̙1׏`a]jp8e)qq馦㽦M󳶦c]oeruuMBbP pOC&tfs BPHhY:ݰMcUe%)OK+NK{U&I,,L{dxzv𰇛77mׯΟ|ȃ7o|}Gm+JnZZ1offƾh=و7NNKO_]11ɫW'L~} ov,K}e˵vLׯ;`}խaO}Ç^xdچ@rWd͞}4:zU{d\ue~e̙}U{p]}kΞu-@e<)1bOl˗NZfTocbS_窪Ç CΘauQEX\, 镣òJXCv8d2eډҼiiNYJJQEE-C[/1d bcS_G쬍JKֶ?TO,cnVV4=وGE{=w7ndϙs{NVU%rbb5竪?@_"o'z/_>ZatѸq}lmͰ. @**j;**PGNHxFvSuÇ{33b] Pq!r _&..}xgg}&6E IDATE LL̹vmQ.GbqR&vt֘1 8rJhTtEX\l J5`ZnhWbҒdڢ۞=;ez"VYɋOM)-F{K622fH$g*Gb9`}vR)Xz[Xrѓ'pM贔ݻw% &K䒒k֜}Y@ƍAVsg۩t#k #&&[cXϰaLؿD";vwcڵ*z؇رQQ_؄u!@Œ ƍwmsñڭ[ǏrH$3fP(z'7&5I7ndmk7yr|jυe\l]]bP( ² L&hA D۵p6/)pӋ>,n =}: "6Kr%D"db]gǏKr<ҁb3:ÍF->EdڴhDzLMxĉi4'fY[ӿh^"75g u̼Q>"o!Xׂ1TvnޡCIvv&yOmffu]qÇ7n,rtTqG5k?yRzOXTotGg`]b8*I[TUT{a]TT$8H$1cEY\bP  blMMX,U:\.F3R ϡ ۶5JK^ۜrLn&n적:][ r/gİ0V!!&h (+144pw`ݻMwZ؞>r幜 mV^^;q@|]|eM.sW: 0kV?8vu_iikTCk /_;u*ĉ>_4xp0uQjR4nܾ[C&LV/]ʜ3ڵg# XYvu!@sL9t"mZpjgiwju9:gSھ}|hֵQc'yq >@Z~QXB1\.A338 &54=HO/NK+NO/t`2m==}}Om[p8e) R٠A|jii5ٻ&7TVEqUQTPqY-VZW[PhEaj@#d6?8~W}!{{L%11ՍҢ?vUU::+h01q}{YCCmmӪUK]?Y!/eG}yb#GȈ F"ƍSfb0B1BCSnxYldr]M*+f8ga~+wGNK+?Қ56G.ȣqW[N:0(/I_@@?Uo웙Y|mgumXֱ .nE|9a9CѶX)[SԶX&qlŲ|P, 6E+nsrJY,Zq 7Pb?"--eˈ˖YJKbWX,vvviRRL}S}}4Dа%I` _ݕ"pӐhܺioLLg̘пAW.Eʟ:ܼs"ֱ ;~AAx,0]VWWf,'55Κu^VV,0p <SMM::}|Μ 7 Naa6o E3O q㭣;d/^TTK\\pBffݻ% :9Y_OcGŲ4ڿ=e9[ZMiW,۶.(('('!!Nw߿/x.ÇFij 00%߃ݻH7rt46Me0XYYd25:Ng$aT=11qz˗#o݊~Hgd8AӎalvP;0k׬5kl`O確f"ĶmӡVWn݊Bcz[{{#ƍ'O>y [۱˗QQ{+iibbjj` ,{3' cǏyUGGpFҺ3Y[k]6;z{467ٲeA>vZ˙S^^bѶX]]ĿhYt`}TOU -,4D ss 99qc0AB1^ɖXlRXMMT2^Ã0AD"= =WG`! Qf_…;wܵ˾!rff-2;ztxr߻xDDv }棿?/hf$qMjjw߶mwG z{5 vwϟGݻTU:0 %%57fd:x2K?/_~X2Z[!!)^^2}ƌ 8<{H]ŢgMh`2Yvt |L֥R(yJ_t8V* P)', abuu:..ֳgs _d7mm $Hr1C- f72R>wih`9rՓOXԧ,\?Dm:w;1FFMMU52hΝ6M:{܉i6Mz[8LPW^q||<0:R(yJ^RR^FFVS- n0@Pb;Xlg҄7YF__VMMHd I$am-**u0(z.Ed W>bu {6((H8/\xC:yrBpД#4l5?z]jjjM%0͙v;v{2BCK.2绌 ߜ9B9FVƉakI󡶯<=Ν&t\ I|927| ےH\˶bb־XluP, SC-%BE+n[Z'D&) OgPb;%TX/Zd6\H{ :J&SӋxxp&(H[[$ѤW%~~qG>8+WF1ۨ-9Df0XwĜ;LXXpm~蕕[Ypw_:XFBw||< 0:46/ˋ?| yox*wG}߻>קGV"񄋋}spӓ'=ё~}8aLWmmg;RAgd~…f\bYF--g{,䓐B'JIq01b %/-0..۷>>}}E "QFGJJ Pb;rMm=J OEzX`'&~!^}FDD`$5[[D02R2H׫ۺSӣG.X! AuQZENRyyD~T8'GRYAY睝[Ξ=:tVk pV4ob3hj ln99q`lm77WtɹنIvr A}*j\ɼlmʸ(.XeڧN ?>vJHC'TU뱎eq/,>ڵe`\ZZ[֯]Š"S,i],.g":Oyy=]lX kg%%9$$0씖R(yhw"6&maA$jZXhc kcXm@i0NqjڦTǏ%%֒$[,($d25:Z[$##feE"~QOII ?zUb K=90Νeaau Ch<ɓd&5sΨ4LVff1Zk䨩IH`kKP#HoKl,^v>sΕ:Q @;jje߾G_=¸#o\aaF `|mܿnk,dN\?w?'d7c2/ m۶qĖ+a)Ş?" َǏȫq--tN],XFcp:vXUHoیȶ+,LI:i…&LPD jyǏc[m1bmllvUU0I$jPF幬?"--eˈ˖YJKb7Г򢣩d25#(D/@wzGJSCC& rHmھ}ÇO$;9eۺubcnYr4`jlmpw$577?8}~~ݻcp;sfY烃/6:XĖzK OŲh]0g":/oŲOϨC_okgg0ȟxccccmlvvviRRߩ^^Q< [[ƤI$ޖp+,==_80WHPcGIIjb_.^l܅ڠww^jdٳ)(h`d2Y/\LSS&LPtr"zxϙcSŢٚ&tbuuSk+ bѺXDAA>^ aIIqD~~%K,/6"ڵ7W21Qݼ9sG5K # yggkAꓒrs);wbL VM N#Cv"?ĢEfWOVV::7N嵴B%1ᢢj`lu>^'X^@0Zm>#(()$p%3*Il:}Ӧrl?^boӧ(''1?{_ -l޽sBBRn&-mW[SL[;fb־XlۺX,XVP8xŲ޿/v;қ6DgSdeΝ8wDAZ32Ч-'ee&NT%5H$2:^ɗ/eR>Lt7Vɉ, d2L^.++fiE"OWP:Rև3Ɖ,X`zv .^|p<<v*A6m%O?QQрuhi715Uݱc "!KrrƍSc'NpӧOs<|ćet\O:&mtݴ[qϞ='N8uIWŶcZ/GqQy544޽[CCCHHHGGѣ---}@6~|}Zd|>Y6} N yxPHMMjkSTܡ؏?ao᧟.]興 ^^<. 5/6۾n^%"bg\ܡyyg}3/lJoo .98p.m,pp03 5uu$FS}- )wWɷo-,9\\\u\@⍍U֯~}uzׯ/tU_Ђ<<_̬k:X@߁$:-i2up0 O}۷o+((H؀;8\b<hd;4xGK?xsRE)UW7=ze_RL#߿`A~5 ]-]nDqȑ/_FFV6 IDATF,:&ɤR/^4iRzzdw6Fl۶***?~ܾ}{UU˗湝k"<^;c럅 6i {WX=qbbbbbbB( $v~G('O.eTNjeiӏ$^7vӭ[c[<a՝$/Snھ{n`083744߼y5X,[[[ww~~?8 ߾}EDx -""2B>S߿UUI`32)SVTܱt/2Һ/2N 5뼒7+۶e_3xİM6;FirGP{g Y56ҰjWR 019f`phÆ;~~q>``s띹sUTݸ 0 }A8޽{ƍ;s ѣ222VA AyyvԸ?^YYy;??#N߳g={tz5v mmm))RHHi4ZaY::rsNl6X"s4޾?gImxLbOJ}mیSo->>d5vv1ÇL2c ==,1Uپ}uwSRRa-ww9DDD&,QQQ111p6m;fLmsO;wDhRRRg2gϞ%bbb'ONLLW+W*++mmm祴:MMM'0vw2zu:6˰0cccAAAMMM???v4:Pz tO!}}l6ڵk&L6mZxx8:3"''noodzdūW{YB_֬Y=Jb2YXC""v~{@fGGҺÇXY45=q[ `49zL6;=Ѯ[___FF~~~GAgi2薜֭ccl&݃MMVuhCAMMz3g?\AN?k0Z,;Z]}wiiw}bÇ6tzۻھFѱ͛TVV={ ---==riy_|IKK344()x iiRf m !!!q .>y۷obkg^JJJvvvgϞGx׮][TT HYYYp)3^tlhhvZII۷yyy8tna!bۏ? :ݧ؝}}7oTRR(//򥶶6 w{LLnԯ۶++ﴶ>yۖ:\DKLjM] nKxzF&&~ime< ;'dǪA/_^WWw-A.]ZWWwu4mɝj4M۔)o:3r+ж{6c`OmSٳϸ C%턅uSbk6ڊ>y}7++ }⭭<<<>oɓ'ڝ1*QQѬ,Nzzz%%^8y򥉉I%o޼aL&9-- ! @[[ӉtpPkܞ9 5=ZZ{wopB:" ۷34<\RR3k};ZSsoMMNz2IHH孨`^n阪0 yy(4ӧOsĶǷKXUƄ.EDD( ^lفZ@ ܹswvz-ag^`$$$?~А޽{xh4ǏL۷o ם>nxݯͲܹs,drv}C\bۏ? ^lSξ>CCCtq);";ϟK219U_߂uD1OJ6lc`pHAMKkO ܊u;'dǪA޿/#nǓ&w zwtYH|dجYw5]?cbb..֑{""v+=tҤc{fe}:4`t;;A]QL ﮮcp&p…ܹ3 S=.1UYdIppp``2:QUU5''3ǏyyyUTT:cvӖv?}l6իsE*c˃BCC8;.Y*330FAfWXf͚m577/]tϞ=߿rJ7v2uqu7fѣu988TUUw9Fڏ? P>55Ǐs&Urcvͺw/#%%5XpՕ_OOwt16V^}k„Swo`X؇*)'ڱA``ׯoG=& T'7 M^~|퍼^Mtlƻ/_f2,jNj:8941H|c~r嵽cc`gq"+WZ{yEйÙ$ uuu.]fΕ+W:t(#####_~)((༅>iyyyn{-Zt4{{{//vߺu1לt3 u wȑIIy3fXH۰᎑={] rL&9;;gŊ` d`0?rJDWWm۶EEEZJ@@e7mM>=""";;;88RIIig.//{qq۷o.\sN3&3gVWW=zmcݎoڴiϞ=!!!߿pwwG}Uܸݻw/_3hV~~G"R__vNSnxݬqp3g|q]]]kk+c6{[nݻw/*++_zu1ed,''5Hebb޿?YYܾޗ/eX 99 'FDLK;~+Dx`f_##Ӧ9tIX؇.TV6T۹I##[ggc~$>%TF'7 M+м<=]jj\]o'<<‹ jjҜ;ACNZ[D GcWiiޛ7{01gWWgC<'OJJJjiip3[ZZvޭ(!!|j6MmllDEEl6zHUUʕ+vb2yyyuuuk֬ްaCccc۵t5&5:[Əm۶N'vѡ{.b"7USۭGEXAmᒒ^Quulo7Μ9o>ΔvCtVlڴIHHN?s挮C9vݴ{a׮]'Oljjy***ΥwϘ aQQцng0gϞFt ̫0cǎ ۷mf/\0n8+W,_\VVDӔ^յ;nZZZzzz!!!;ժBEDD7z3N?,{ tOuܘL%!!aoo"##{Gwx0>y\@JJ;VS_ɰ/RPp:m_ׯXGa;UAa?e;LMdf8ψ۽@5䔞<fhxXIiҥWBCSZ[X=:3r+C={BCSz8o p쾴oѧ!! v|ahܹ>>>X2566s<p1(h?hc Y]]shǏ%*KKH$F#Go:UoMSR~k7UvsС{ap72ѝ fɭ/g۶m};x p'?>~ɓ)))Fua~vӧSBB}] Ŏ:w."#xƌ ۷ۙa0Z)\ %/11!''N$jH ]]y wӮ#dxx&L`p%M粆Lk+ lYY1GG gg+uX5,46޿/"܄ J$֖`eǃu d[߻n-LF篿^@ ..bbVa3gXH|Bv5}+JXL֖@"xc@%b..֞VFt7nDEnn3sZblrCCSލur#tŊVRR"XGmڴɗHW!X]zzQffS`]'11q…7o:u*ֱy !, ퟽{655O嚚k׮p/^쒖5;ˬ;xf,V0m۶a2V:;_tə끁ed_+y  RrܺEMMՈD `h 70:0_ +~}"ϫ ,( (,5FZx((Hl \֠*- J/(46Vqq^LXZ.&YL&SJ.PSFߒHIIap߀""--qT/W22b\ 77eˮ%%YXh` #CBR✜ji.[F\rhJs-QQQYml99GWW>66((CCWTrʫ];SVA@`olblu)J^RR+pQQSS5[[z@ϯ-ϯ~VC3WU*=qDeq Rזʊ-//`ikm: X`ɉs>z|D..*XG7\pgГZۇl@D"DMH53o2޽zhXckK$j^3ֱtqvqNK+|蝧竳g#f͂gG'QJ^qq5)`qXG1)\{͛a/GZ?O:4KmLVNNYRRLzGIjDie 4#7>dxA~sggkږ Y!@KI)T/(AA>##e"Q֖3t\(۱cCׯ'ih |@korÇ&&X ='xËNNW54dVtr?Tyy-~ӦMXvVA[[VWW~` RTljjik`RU>qb3|}coxvͺuuuuu]\)($J?73SGm!C99eTjINNy^^o5l6)*JjhrfjjhjʨJszLIIA<7{m >&$$9MŹs3gBΉ pmd/(![[D02R;喷oG>뫹2 )Ӧ雘^Xw:888dg&]̙gS o IDAT9:ϙc&/BB|.9ٹ-?iV040f)(H"RRR Áخ]k֐||ȷo]{l/L:4`QSVSFm _Ο.$offe5y*??%%5٥Tj)MM ::rܔ)  MMtwp0Y*=H􃱱ʙ3*G Isr%lq2Kiih2 YY1Z!2zrGD6M_QQHCs]]oW`?z(F-u#ݚ5ii*XIGGСy{?iĢEf 6kRZZ;o͘+&&zb0Y`--Lʢј %%Q(}Y++DK7Nd.M~| 땯o;v̄g}LSSUF N7ⴴoş?oi55e &LPTP͛7Vlx||H.8 *)ܤvl5m#44eV7oiib :t:͛OAA'MZZduonl@<ѻgvjkΝ?~!^A1 75x܅ ˗.3 5&en[ii]869thޖ-ӆ80)'N,\@@ׯ?]IZZj9D"`0"qm_T\\-,of``0X_h QQ}}EcccceccAc3T0@'N޺MwZoCuݽ,;66ڵ7o|sOsEKO?` <;Vo ÃpbbՍ6fX=𠭒'O܉-)13S_\PFJ2J&S߾TW"''N$jH 9C%:~nlt99q Ş1㬑ŋ+`mMmAyߵkLx /Lʳ~ i/͆s".]z^k xOO,芶>NND}寿^FG67عsԩzXG`h [ ZnkkK05U`D6))ݻӋ[[""FF'N1jj LڹAǷxxx<9n5&]UZZU񸨨W:o_t: GG"Սf޴<6L9|f_ԩq8]<<8Us;8L-?ٳ4aaM֬W:defhjB:&M"H$”)BX֩SԼtə#X;7oԔ:ĵkI| -=Cv %.~[۷>|z IIa` k MzuAAEKkx!!~;}%VUu*(z/]̚0AqM `8嶱9%%5""&A-tfFFqrrw}VÃSP75U8QE[[nrrʂ?N..//o[i#..j2 z L&c//…ezG};+͞}coZ'%%XLFEemn[0ǯ_+ϛ7q|SCCGFҺ$JccĒkjjjMNΏ"<g`D"lm X[A=K_'0p\F7&5u&Q`L)- zWXX A HK }޼x>ݎeӧ~4%!Яztn46vg2=Ο_>>1ыT\N^^ZZ ڪo=p#XffK jpmcbr[–Ij""X86>z]ܹ-#d{xqLyxxttd7**vFɪƮsyIk)i4]Krw__yu&c-rI).^ӧo_'#㤸?/\YYj,#p-@L=zdz`5t>ʆׯBB궶`h `ERb ȪU7 ^ U@e@24ֱqFD C4rsETTa̙,,4<<cQLJm MFd^xV4LАYZBBOyxyzzm6ZNqq07335c㷿zd2566Sn u*`'$|PӋl Уәo| zÃ3pt4G}^^<  he*;wŋ+waQo!aP QԵ;WuUV$$FB@ A`UBiy?}]5{eA98.7ϩ<s[i4%^ii+sb0{ܒbn'!!Oٷ/H`0\ff=_>y}iW-AJQQ;{O1))mm=" P;׍Tf3sYo`:lJ52R~ | PqZcssO>st۫`?&D&;8\$DQQWBHH;iF3{{-nԡBӋJ+zƍӓ74T00P5kr#-L.#˛xyէpbbr찰ܶ--GGm;;M/ƹJL,`0n4;_<'`f~>L=|XOO.$dˏ'h[~͝;IC{,ps3冟' uW{{]-,k >WK ɡRi竸)OanXX#gai1R[ sR̭[/L>0.KRSIKG0N"<~ϳh \ (*qٞ= Pe ܷ/$9|q+G''=T`Kyyw&wt^ÿ_?}:)(1CBc*6S\\FBhhMsh ^\\VZ^+..)MDMRV-#kb2SLLu@U_qFQQߘߍ+~tsϮ]{ykرk+kkیQDZڡ:Q47;)) )A/kOpℽ7ooN<~dtm쪪ڂ/tuIϯ\\gr]qLP?ahm-T\^NPgx~/ `D{+//E[`dhƬJ$)]ggĉzz 3ҤwII**>̙3@A__@ E"";41z{>biY#)qd!~~/~^dr9B""%%g?++Ą+xeǣG^xka|WWƐਨ7 X$[[u[9X_v]GR%psΆ+a;>9D*ϯRR8ӓA6[ 馯:T[pN=z4,=0ƸO30Ppu_@7k UU-d~++UWW}<:6<5 `4\;uxy˗m`QZ$3L.ёffN- 9J˫IN~.'=JSQ66XNٕDbvhh.B51I ବTGaTǼCl3h:jg/ ܹW<\\\E:tvR/>E">RSӶi~hDě7wm-PTWl```(6חR:iX{{+ aaM&H%55mZZ2SҰ4[ v/ 럲Q;Y zCRR@vqѓ@ ` /W衭-0FffݵIO/Op=KpqH:\rn˗œ&us3tvփ1ɂ}1 `UUxzdL2~f(]32*>ld8~(ij(+/jk두WJRR0O)4DD ʪnUSF ,5T*С'~~g\]yu@wҔ_h4ξ+df>ʍC z311}::~Y9um_76v2k*(HV^ch?=xUUB"0kodϮmxŶ윫ö#z `?%<~5rCCsSkjkNC8T| U &9{6*,Uza1XA6i#BBI..74Tpwϟ<6CPg:x庨QC'۲(~YY^NP?m_lcpp(-,>()IH_OOd1v֬ɨӁFF ʪ2eܒ%ZNN~pphV]ml?}F?l5ui]O/"J:>]Ss(BccǩSO*8a?szvm4k(jtt> 4d(3b` ?#^`0{nA;.XI-X~FOM-%GG -ZA ttPF[mm%+Pg̟Q[[)AXգGi/^`04Ǯ{zUU_.H2ZZ2#t[Y_o99UW`:n};'MRRt:S77~aIg 7*9D*)(RVcutdEEQ?ŋqqIIJJSLMgё.f188H̎䳴Tqt62R={z֬yoﵺ?󐮺?;;**>յssch4̃k,-U=wzO j Y &6oek >o y0]KKQ@n# T*MEEZ[[VGGlѨt55qq{~͛/>OO?t:,v#IoXd# ].$x{kkꑇXX(MԎ~;:z/^NQRzꔽH0"ӧ>~kko%+ ][I$fZԦkr355uedH%/_ֶ#9cUUa7`cT`0ީG<}mΜsD`WedɣS }}))&ZBtqԹG$foΪ Pg`0cRSv&:;f:_yy,.֖]xB5Xk!t[[g: @륟YTTp:5kaKM46v0F2*ZZ2o``(182M|^UWҒK*fO$f'lmꪯ6 UjW||~}JoNr%$Ӿ59\uȢGk:8~ XcmppVd>>ŋ54UU-$R cPGGĉzzx#GBa= y.VQa8uugF'N,>]|k3f㓖_#//|βestwzUŨU ikɣ8-Faҥ{H"|.^vœ'8,,slTTTtuAѥw޹ZuУPDb͛eeMuLMMgi<+/oτlӓG0/%?fF+ ` 23+23+˩T4bj:KTTu@AҒޅZ000[@$f|Y$,,06S=/\s]eKpya)ۙ$%ȑ5ko3fnu: X~~䞞++U7wl;33+H1c45gcx,,a+ ezG.C91wsYUppVVVD{{uN:߹>}a Y;k /.CLmѢ9Rw/Ėnܺu&fMF 0˗c=J9hnu+$ M `@zzrs _åF0ꃃ3CCsdlmml'O: ]I$fQ 3m*?1 9Ggga|kP(ToBz{^\XXk7O]ۘr:FMחR:iX{{+ 72UU-$R TORRTWWΝ;{ - ܹ3緹sgE;ѣ#쀀CCEWW}++U79ԴYZ^23u+,ЬYΟ_訍: [>}_,Y:h>ZԦ/Y c0;?| r%ח}uv3kÇm]]Q`߸JJJl:S=6_}7 {:~Zuuk/2$=<:8ู `%41+1ݶ_JJLGGΛ7{d6#/:88;44WKKQ^KX.BML,f4yx-, l&QVKKJaoߞfWxГ Ll1GU-=$$vO '(ȇ:2 UU pWQ d[ QA x=Kpqa]Z[{tuO۷pZcY詩YoxyTx,\8/y߾{ܭTQg+ ߼:81N̬Lx̙6n4ӄmim:v=,Bո\EE;بCo`ECCoވ9=BFmm=AAYY&8-)s{H hma4EDX`KYY1cO2" |}׍ċ7xFg_hk;aO])3lm,^d.@חyEsݍfϞ:[ccGff%Tۆ *jkȪoBPVl1̩SbbvK",رWdaXAclQjAAe:˖JHiݻPg: ֙nh:;bLKe6?KLLu@Wl1LyyUEX!daXJ_`dL2|Dҥ:מ`c4}Ŋ%%11&W/*:N.2 +FFp3WWUU5ϛs:+2͆ ))ed$Pg쩨ʕ8޽VFFXԉ0<>MKI)mk두W㱦ǣN%% >>䀀!*x<0#]I$fR(TJr>ysgŋF4OO߾=ŊKߏF?y}dBݹ݈If(|kd8tm9HGGoDěRI8qQ_y\B"pss)+OX]]9~~^@_`0vz{57WBX@ccމ']]Qg+CBr߿of\r,_ Ͻ¶2sԃ!;k**SOGaֻhќMD :naqQAA͕6Suj\\\} `Z?>h4zAA c2\ffЧpرcbc |}$RD'']ggt5+)ixU]ݪ6@tIcǏۍM|z?0Ga}׮߹(u==yԉo0%./חC+:Yb;jn&HwխBB81ǪJW b0cb ccwM6u`bŋ1.9rY{]2&Ę{Rgg=YΘ1^^noN6…0 >~u+ѣTnnU ׮5]OxզM>qq{fϞ: YY.쬷c<(s*(=r$$3AEL^荍-k`h`Q(OO m=f!?vH%55mZZ2X<* | ++<[|g]s]Xu~c/EMmך0a \NJJӭcYc:wY͛nS"I蝨]˛^}#-=a6 {{-K{{iggClPgo4=*ϫ4wﶚ>fj'%D*!JZƌ00P05il<ڊ ׯdXaf ~Ҥ|JKK+ Ίʣh3 k,)ipv%**~Ѫj?YO ÇCZZ7n4۲Ŝ{Dеd!!9׷ki8:j8ؽTU0N`H^ }}<kj:KZzpXrN"1VZ¬|UYY8QQXmmYT b`.]z5.0p# o۰ݻxd Mmm[XXÇNX vx] LM=(+;uc㪪uu^^/}|$%Enɵ`tϡ!Zx..'Z_0s׬1GP'++k:s&*6kh*$ďcx48PlleʎFFpkW…euuO,]k#GB޽kps3ܵ˒Ix62˗E<:t.cmppVd>>ŋ5\]ͭJN.!Jkxx2zz||<[:nwffEtɓǡݻy߻RuFή$CBrT*l6tsܻ|hأG͝;uo_PY9Z9B W[Yy&}VݻIכ÷(){={CUUuKwwի/xׯ77x8Mmm͛i+ :Htێ^IIQ]]yss%ss%1j>= (8uVNݽ|hئMsA#8PU@?N?9BݹrJCAז3utFDy sqg8BSSWFF9TPTW>f ƒ!UUiNX9b`ll r!,VuF FOM- z,@͝;&۠P7ZZv N:9nf:۪i9َ9s8Wwۉn% nlfeG0: ٬#: …瑑o̙vu" ;w_!""gkX䒎^IIQ]]y<ka,%%6BML,&󹹹Vfrⳕ~{YyLq04]:yѣa^$)c:"#DD~/**8SY? XŻw DbgJy쿗 pqq)+Oetmut`4[ 矱Wko,=3\0:;cb씔R))1,Lo_phhNdv,v,?oPQq; ¶:;f:{ yUn5eE54tsu?|uGQQ+eՅ8h4zTԛ'#ZZ۶Yk~>.=JH3z*r0--GGm;;_7;>SUFS_߮it:=2͉O[[{6n4ۼٜջkQQyеC䔔Ik\i(-=u.0lZ[{RSK33+*eUTaB?Sc-N߼7!8*j;VggD6A@),,700MMm>F$foJuY~ƛ7 \NI9װ#FO,MX9ӑuu˖ݻvpF;;ߪk Sή9D*˫d[0J3CUR:((UMm[DS\NͺqM@*׍GכB{hSSm,`MM[t4tm9->zBBرBڮs7iLAA TZ5l~bcmmMR7T`0e|_G&P9||P 2cc xmnnv,رG÷JK.SOO/)-=e}3QotuҒAp.:vW>xW(j``ŋ{zW2ڲ\LQ_ki޶bZ-j0 ?&CCdLWW84Ԇ:͜93 \ {f{6j߷oOYIP(Toԋ il<~|44:ܰ(tSSp.cg vwg&7Bg;Bf57Q( }aom$/)i6H⚏:ȿJLLFutOS"=<:d*7ejjӠ_;Bx֮5vpк|9/?tuP~lm0`$"jg 655߿_SSsX /:CZ2{Y% covo?S/ uttW===#8VGG8uƍvwǻʚs]{Nrt-[ N*oo&K|3WFFu'!!RUՌ:`7}}]{sUFܨCNG&?t.K}}yY@CXcg¥K1itEH0FB;LRRvFRRi=K?wq &ʨSǜ8%KYX(?d qԹgmgY[[ &43/ |n?ڶ">$wJK;EGG44.[OA8K{{ڵ45g9ua(}2Y!..+ZMMgdki[Ҷmc%+8@7C'#ٳQ۷[$&~-H yxdzy1m VTEE)u?|h16>sHhWW?P<$6df6KCc_š ё;~i~7V 0gѭ[H:: ?*34Drc*[UU 77GBBB u &HKK>&&3:d#**:~ڵ&LrAJjٳtu~큵eCgС'&&'ǃ:gnb⻀ 662nn.mmYA8}CXXɻwTP;<O۷Ϗ-˫F! kk;{mVw[/[楫{ԩajA'N<%uAex|2y8~~^A؟hw@_ .]l״i?TRRu(0 NÇ@/HK?~iTԎ1c=-*,E `gffBBrϞu|)SơN45u-Yrݻ'O!u(L *,,Ԥ]G#%5vZ/_[X3((W}}ɰY ;w/_^6 uaSU"##:G`Բ[ZzPǮݻ--/m$PQQon^%##: LJ]}ZP֯jA `7}{ܞ={Jb^WW}ԉUU-K\ ݢ<u@&3u +|˗f͚z{2wPtFb+^^O goOO޽{EDDtttΜ9344# [-=+*GV5sClrs=~a GԎ_W840(,ݳ'hF3;;MYSUUЅ " uz(ݻx鄄g>ݦ#:ODs;fgd: FGrϯ16>woPss7Pxl\\{kƎAO8uO ׯ_222nnn?~$eee\\\?{zz٣.**}V~%Og+Ae"/`D6_[RҠ:Gxʠ_ܻ75www޽[VVVHHHQQѣ1- j>7?=?oO~md+ܺuk{{;شiѣGUUU1LWW8{lnn}}}ϟORʬY^CÍc^uyޝBE#YJK)$]tRtP[RP>>.J%r+.ErJ^{|}$Te_yb>=gWյ_WC#AiiX!y&ϩSGzHNNϯcqiiiii)|𡴴ӳA]]O3yyy""2~w Cbb3g<뫧mYa\3JJR1rА:@f"FE9;/{,mS דvؑɓwc`~;8<1?l:v>A`[E"""ԁ$%%xĉ/_\x1H\lYBBB~~{۵K/,,W~if5!ሕ՜/ ^9sZLE Bm셢€2L(a%pqqpssTWCUz˯_w$7o8::]Tm9gr0İ֬z>>ﵴ\h? /&]l~ZA[uZZZffݻwSSS$$$$$$DEEJHHHKK3ҥKNWWW3<\1111-:xzz<l۳gikS;4^}0AJPp@Wtv9EQsRppSEEE̙u(aAFs֯_/"""##o>q8GyYƜV߿e=Gz?xyy1-]t޽d!!!~~:F;wH9sǏʄg͞kps`g' 6V IDATu 8s??a{ׯ_(͙3{:~iiizˍ{_!TcDEE---;] ]twA__߱cNJnݺbyfnRz>A`-@ťcJmm- ]挋9rdϏt$3g/_^TTD"8xt/_|0BAQt:100hhhx UUU%,X ;;;>>^AAɩۉ=nc_dd~Vu6JTT-^rrvvNҰ?QJjOHH A]Rrw~~׳`,Yr)ɔW_Lq L Gs3yѢ 3fVW7aaOZz߽:14 t[PuttTVV2Cz 999'&& vR7߿A_,,,͛74qDFCASS;w R]];Q!UxCjj*NӌWHH/^(&&XRR!%%scd*0-t:gRR{Ο68uu{=#aEW%%w[Zsii#F;w㡟naؿB;wNYYD"ijj۷w>.[hwǚest#s'ӯco@vRSS;P(=444|įtw-N766&k֬;UUUuÇ"""=?]Rii)h555ƣ$ EQ**!!%KN>sTA^~(FclB{%@*6kݻ`᯼֭zz$%wOzRC!۟>u.)uV~7)͚3Ԙ1]\šڰ@Odʕ7&M: i23KlܽbbL*22MI鐮_> =$A:_[gd2933FysC˳ Bzz:cz`` ! ȫW30hbUAυٚyxxP]jt"ձ.oon +T-J hϟIIk,۷Ys瞕h5Jǟ8qbĉח1={xپ|uOY}\N=z,CQO^^ ~e+tYJ'9IJG/_\p1 m͍=R"";LM83v.S͛7755M|xիW( T*A?~tѡZ3ŵ?~|طo_Ǩ?6nyp>֮]蘞}>w5=Vǚevvvw~?o6=vIlS<<<=5bĈ) x<> mSSĉ999ǎ設r^uqq;vlHHHOаa!!!aa-[4773:ȝ#pqq544tLA ׌%5JDDdǎNW:{ H{;USA`dtYJjÇ?~u($磻bdXq)XHbb?j_iiyGRrWΡ{##Ӱin&_BQ񀲲ի/d ։AENڳ㶶?]`mm`Stرc:\\~(//x^A%\xqȑׯ__zB5k//okjj֮]+,,,))gFCWe77KKKk9|.ڲe //oSSSORΝSPPb 2Oѿl}_2gΩ!?::CJjOee#A)߲KRr32~BRTTTFĉ򼼼ZZZ<`ؿB?۷OJJJ@@`յ_3[;/Vǚ_=z4zh111;;;2y] P8}_r~-BΞ}vˋWC ,{|C+-x߾U~-ݻ+ ZA>|ȝ1c,)ߚ:U>4t$wmӮፍmXϘb;p>~8uԍ7Y}L`c{އz"li(S"՝֭s KPhX~@&S7n;ふQBqq-A꭬<ׯ;uoZ[밳@_9ʕ/ZB,d(k66v[ׯXH;559!y*O|h$w \\LNO/>] p8CCo<--wT*\C jP b@7 jkkԸֳn޼ٗ,,xn~u,RRΞ]FQQ9㄄^nI$J`eTWCRRPe)%FF XbZL~%P=~<ڵWXN:g]*:ˌ.MMdCf``ݻ½ ǎ:dl 7..wX1qq~&(hɓll| IL:[`-kjqssܾ ʎܽ{AlW/VzhEw0`hx>)~2xb ŖuQ.\\"Bl= X <p۫W,]u/833ٳ9ߏNJ##o*<]hq 4}߾Ǘ/G_r۶X7qqZZcNEDnvvKX[{Ta -..]ؚfz(hCEE٧N+WOAt̬[OOyXgT55l#Z:pΟΝ7GED4ID*wGnܰ46u@︸8lmW=t(`ܳL~W[od-^|IP;2NEE8ECʕ7Ny0>9 PO[RSBBR^op7$$j*́[ kmm'\`GlrrʵO1@! nxu[{Xg 6m̴icN0oT%vvֹY ]uu a;jj(Xg94 6IIA۩[yc5g"qaHggg=#G&N:':zjf{L~.>NPADEƏTV7N\QQr8qy47䦦֦&rSSI2UU99eEEՌ@xNQ:5ot):eXV)b"f&>npܳ۷ϵ1Z0^L&X 6nn*&RY/j/l:7pr))׷DEe|ZT yVvv>Â7pn:ˑDQN^^,%89s޻y޼ XO477n cnZeΉ! ^00Put4:K4 /{.[u]Ɔ P(( **".2؉C9PW^-.ނáL*+EE[zTUqUUqQx*Oh4qhw+$PEtƇ(A>ۗ=jyyƶ]cNJCB\ܷѣE$$ ;;a-u/wn>rhx*7bYZN>ݏ *GTwt:w6nn Y0 ]QQv{Ŕ9RRZZx`jjj|||jݻ8nAɮ,mfzߋ_\y{8?(_8oo+ּ{pp F75uqjܹb;̔x߾rƝ;%NnZfaa6-/HI Z5Hx$蚚SG\#oAyrݺXA^4&(Yק'?_P.  [98}X ۗ/"<( D~DI _[[{;JhxeEqjNyOQ/^e666VW՗.[v|<ɶm\+9||tThc]^^O?^ג+%BB09򎼼f!ax6ҡWU,3tee{.\8qxߦvLW* 8~~N -scp LCG{w籖0SS qp22\Yf9x<.'";=4457bL..,jD;wްij2+1CaӦ9sڨ~v-͛fANNڵw.UwpXuxz=ZdXa9QQy&`z[WX|&x ]?_(ۤO^EE|z[?AA +n2-(ZnnE\\nxx[Ϟ}zTFr N<'%%t܊'LtLxA|c||^~~E[AEtq IDAT9g^^5T ff22}DEPPh?߹󺩉&7bD]#%%zYYe=#p|7 IJ &$ՐTAA?::c:w--^/fy}mlzduWP?q"DDUӧ`{6sQz ^UU#8~Ǐy6;V۪耢Ph߾Udgeffe}ZZTTMD(1aTBBk/)܃0b]y^lÇ6f{^L]b^^BCmfc 3t:ksssl٢y? Kݻ׏Lny8[vvd==es"bq8| xE?^^^FQQQQUU4Iw_ 'lٔsV ۛ?)>0A,tӧ$EEɽ{,^2, mmmrjؿxA99ٗ-~ M:Lz)(z0\ߠCQQwraHq8ƅ 'bVŖLNpǡ(dʙ3fؾLյLvb۶: `44=իLn (͝;@OF]^^`id'[۹VVsr]~p }^o_\\}qlj~K?<HߝC߿ϝ=x `EFm3+;*/.*#gggeT66(A$J** bߚ~꫅ŭo t:~,{E?gKKYu6ܺUE 00FRc'K-:x _qqm>Ʌ?ȺJ>46M ` } G:͌? -$RqBBTL"}//o@D\_EEQА!cǂm{s-_~UNNҥX%+ڵdQQ> 6~-Ov\Rcg'P( ׯibaIEkS68T*ɓT*4}gUEtWbF; W?~< {eeR%$U UMu.pppAA;TUe΂cN\r4g6o=3"1xŋ'O:Eы_s?pu ϯ\v޽ ߇# -W0a}}KVVYG˗f2 B(zuu'A4@aCYّWT~;cc#̟? #j޿OPhSnA xy9w[~fݰF߼駌923O񸤤/O+y$~47;LI9..b][碊F俍imܢ(vGubZTEŃO[yy^^?N K_?k8厢E23K<wDTCcLp:DFm88"Q"&|)ٽ/%]agǛLs1'%qƁtT__fMMoެu * J JFIID}Ru ߵ uw?~}d`Jyxl\hYXNVVKbݻ۶m޽ ;2{OI'O.:4ѣGRvoe5nZ🎎ʬ28;FADqFVEEfi^eܸmOX>j-[##I]_llxyyg츹{)ff,^|yݻ/7n|}dX4g,{RdmUV@…7t!+ŋO ("(ȝҗwnܦ1qqiƨz23>+m?e@ZZ<=efL,~,#c8ɤ##_p8ܭ[ T9%Mǁ =x`m*п(W|tw{`Kg,WmhhSVv˯mݪ,ثmVV>o;sYXN{;uX7-ء$$$11>774&`M55͛6yddqr޼ X`#h~~.%SaEQW7^9bdc/ˤPhyyevjjP㔗ԪʉÛ>>DDx~O"#i4ZGqs=Z75?WRR߶ ͵FFQmll<٩Cllx))풒}_`Wz`@PP2 .\J٪^K Izz ՈDqR]v{; +(1UQ4Ie6/> ӧcXC8#,hhN:_ٶ^Dg e:;|pV]LR$%v|K &N}l@[=::W p3c- Wߌ2m==eooAlt>rpÆXg`F'%| Iin&O2Pmٲ)0?W _?^g3/3\?4I,hts;w:6gP_x NNK{&kuxۺuXͱ| ڥBnxs@?riqT' 66¨Q!!;mt *Y5#UU{}^cn~B=|h-//1nI⤤f661kܪ;sR(4%C..&WO:  sr T͛!?pQ~FYZԢ%K.uƆ-&nڲH`ӡQ+VlԎvŖ F8~eS0 X)/or9~|ڵ3^CCi_J MM[מ=##ӟ>MpV}ٵ Wa@84t'A@OTQ=gX'o]ԩSөgϮf@bc ˫ioR7Z[7mLL9S9[::_47gj;ƩſD&S^}qJ (~JUG`)7F?_kSCE&$-_~FZRA>ۻѓ'ٲdeJJ<<6VzeeV **37% D/#vn~TP[۵q*7bB(!!o+p}>{?=KϯUSU:ZQ\*+t0zkpqY6DG?,$d'ܘeR66Op8=:r$/tîXb [RRg'¼::cu./^|>tm '~Tϥ7Pm3zWu"/M#DFmQXxN0{t_ͭS~萁d'OXbk;8!B%9NGY~!7fҾ~ݴb_-:?VPPUF"ggeeVT4"" M$+*J**2&H½ːoKJY`c}+W^qǦ?s611e5n/_zr `˫ΈcN:zYƩ1{ɶp8ȑQQv);v\9i3aS[66¬Y ` _K.%&htFشicXGcF,Zs獳s(FGQʕom}߽A %%uZZ.O­I?+){/!!jh:msmÇ u\>:z/_\h ,EQ_x'`"Q5c`++߸ѣM9sJ[^}y9G)cPjaq#;EE5(qˋv-Dk9y27~ 'O.hjjZ(*!vv-5kn|9s8+..soddr碢ꨨT@R>茿uk]a;7n[ [559fiܮZuSXڵXPCC__mvYY=M13f(̚5NYY AQT_첰]K1&xef%KT._11ynpϟM(=ȑkY䒨(uh4zx.Wpjj:spΝ[ij:Aw߆4It {eVdg&Wʎ42jմcŰ'6O2Px(|(0D׭s(#..uf?Q޽;uehxYUUeA w:;(]l.(Ȍo[= -ܵKFt E?;;4oݪkk;y0[::%MMdAD YY/p'OlG:Cn~}|رbέyb hÇߏsu]ni9czyyógiɉ\&&ӧƯKih3JZXz5MjZ>*,NHKHOHͭ"QQ#--uy&kzw)._…tkp痰w7M:PHN.41gςݻ`0PPP5g)77KձJ۩od>{FQWefal<h~ɓ꣰¤NɌއuuVVYPyN7ov۳g!\ ܊͛=++][up%Sd *ϟ**&%D EE ee#yVN&S<˞Ǐy߿ݻZw@G9}:"((9>@[[-,nVGEPh;vFF]bah>7-kƶԢ-L6mD%/_fnfm| `IBB;-:ۮ<=c woY۷OK+~>frTTFpp_ s率01jzu \Kǎ:I`+5ƇJݸa!u''Nur ?|q$cnj55`@Phyyee$RqvvYQQ ||ZYqq.υ~ߨo9gܹO4؜9ϟp@AƶUn7n5fgJJצ:NNyhhJppʷo22B+WNSPq-LcJ++;:dnMkk$'~]NJJ!B;Vl֬qs玟=M6?occ{VXهҜyGQQ?ӧ}{|bۍݻDEeDFe3QP99庺gnܰյuu-ៃXpdmmEvv-11ms_uもǏbu%%wx(x9 EލuvQ|\PDvsGƍ5Y qx0P?jڬ2۷ NUT ʼnD "QkFXX<* IDAThhf1k,7\Xخ)SFihh53ٮlUQk,[* OTTTM$Jj =6nyyG۔"}K_;Ҟ}Nll6T>k8==e= d>VVs,.+LW̫Wی.BBvrss`g聊m7(FFQ ۅҘ0-6GD?}*\@PMGG ߿_АsglNVoo+v"[,Q: +jhh{yڮ]z{,=~ݲ+7…UX gklٹs>;;x!F1N$o쫦yٲ o/rɠ]y|IIsd&Sk -0pߠgEEիWߢڌ-g O>$WU5ȚN56,*:?&c ۩||JJ["Q/oxE"QR^EFt6rKNox?b СiҤ#3f(`-qEO:ΐW.^|hٳ+-;lܳ-uQZZA K@@k jXGRs32Zbf/%AX٧'۷ ,')Eћ7-N: ::c22Bw㏄oPG>9Eݻl0@W2FDYDFD\QeS;i ןffv5(h$4!By{?}:b(gW h gf":; Jl\*;;! VHgRs[mۋS(ׯ'?N!LYDҺ4nSS(Zύ[K;o$0]Nhhӧ$*b`sxG BGw?>UWu *Y+VulVVEEϟŔ~W\\/!!jh!; n葒Rii! ֹ pY`Q6a<|Y]b TQ.E-[6)F߫ozۯ$_:}XkillϯdtjH p3ƦetjGWC󫂃w%_\XXmk;wNAڷog ܎ػxjP4[Q$44Ɉ2J%)#BC%YR({~%{;?zyq9syGcbblF/,,eeE-ƏC;:z<((3KKk"o▗w*n]urZmJt0Lmm))r^?|hjK&niiaZo;[,C;[^<}mhga`Pb;wןDG.^<,0UUCB,UT`Z8\MRR^B»S'['Еӧnx FhaiWq}kڵ+,?] ЏONLxXEEUʭF(r8\ >d2y1bb522"BB˰m[`^X,F[a2--iK4sgpAHHVn WU5]}{qQp^Mee)Q8i掤aa f]ibISn?}#IHIMSPEq+!ڀ}W!!tJ MMMqڴ}BB襠pl(13^, JlB"m |kZ@on iwoԺhǚzI Ȉ !,1x7 O2D;K{Qi:mlBss+.^4ްA8PARRт̙vUf&ϟ̖<FJAǏ5p\\bb,V`ٳFB"dkQm 'H)=Сx&)+{.^,v>Z)/ӻ:cDn^#889v#v Ǐ511o"#_54/_>[_ tI{{3w_/SPPUVVK"yyJH`(=n0O )VnM͋Fqկ9SQZV! !*-Լ4-P3LPbmmxy޽7Z)(RW?v%9hg JmL̛X,FSSVGgYh}eFkkţG7ltMLL ,yѻ/G; +*"IAAp0Ξ3gR/tw70Hx<122=Ah Z6SzRjj ;;{88؅'RJi)}j̙ua2֭`|ȑOl(wVT\tT@w}}iiPѣGљ3):8F{Č7iicr30Xr%vk@@ Aۻ(=n)||22‹ȈдI6C~۷&+U*ן_X| }} Fhhh߰ᢀh[x>(O44.hk/ Vcjܙ B"߼)OJzRkqBQQ~jk/HIM dƫtAdeڵvvE0wߑ?8 W^][Z: UU~hhTWW%KfQssǏ55EE  R j)}jL>|8WkH,TAA^ [^}$/ϕiEEfoDґ#w#"^뛘,VWך.22Z\\P[{KMb$,-oժ׊[!!Ǐ|l@ ⢽qBm(3gb~׮4m[ WMYw7Z}}KJʾI`?*A2I!o+45/M[kG10XPHh0.לY\7ozhauFFBB/9$wTGK6:hD"e:0ecgKYYɓ}PQ:uJwt RSWֶ MMK;wxI~~׮mԔC; +(:x0k1ۺu܄vxU4!Aѵk[݆֯U~~etMM˗_)7f ').왞(%5Onm[omii-?rrЯsf+*JLV[Hb|kϞP+C"w.1~l!0 (,O{W>,:HمvK#Io~y𮽽[^^TSSNKk>ܽ u;off셾Cyi'O՝>Q0;oxp1qF;[ܹV0Lq?--W٣2nhH㉟?p58R?7zLޚZ,3c܁p_b,t^HHbN RY٠p֭JJs__jh^`D;--%%5cEw7޽Ϟ}]`l0wԑ^Q k3`q!@޼)?p qm1tpLIyH*^@qXlQQu\AquM ̼ukX0(,2}{ן0hh`oޔki]ݭ0 ,tw?.=',_>[KKN]]zDX*Hv6˖!ih\Xdhauqq{FCf.|PqF 3<6v(5ccmdRuu#ǚODΞ-pLg縳g̖>s66zy}}3.^|PPpVzy죹y!տ]-?~FD쐔Ѣ!):MddNyy SeZZrcǎM[ZUR2P3K7`A==ӧ3Ϟէ}݄ .rqq$$۾;wG# }钱B0(mm6\?~ݻBuppGFD;WGGOzzQbǏ?HZ юJJʳa@YUGn@;~Ŋ3{,v摛[an0mě7<`t]N%޺DI #~hhܹNԁ қRS[XXك  PΙ3/޾1YF ,ر]\魈PS󒸸 FhǓ'%۶.=}Z~؏#"bǴi82Wyš=4mjK&wP--%%{+nqw[yyI; @dAuԼlYEݑA+W޾haE:{{e0(7>ih\PSt,0BJ7moGX\W>3MX`X RPPsl t`:eeOe幇iՑySZv&q~mb7nl{l;=o^v.q>|]=Ysʔ h'knA!!^JoZJy󄹹 --QqtTG; "/]]{x\Iw4˟ TQB;KRSmlB--WQ_^-[nL>),l;Vp67w$%xȈ.ݸQ_|_\Z~/׊ۅ Ea=@0}k9׬OHxgkd6# ~~oߺ J~~UmކhgaBPbӋm U_GGgAەGY@sR Ng<7{F88ۧ:̡pA `pdrVViX G.27_.&&@MgqpIϔ[noEb* ]]襤pHOOaqz#[H 7o>H-*:vw_Լ4o޴PGPb;/_NQbl엒ohg譵MIZ[ q֮佼cюݵ;8 cb^xq L&?:8@G%޼)߻mǎi.E;<}\*?Ç545N`QxyESS%..8{^1haNPb;d2*}""Ў#A[ ܡVhy8&ӧDVOOA׮d]%)){ۡ5XqF_޽mr¨zz{NIy{{}(eFTmm[ݻo/}ꔮ(HjRԖ|!pqq HH`X!JABT`cD ZZƏBzzѣw[Z-,VI}}'nت.v ._~x֎+f,[fdN ii;hP<0 *JJsЎн}e-ǎiAZ+{cw ̖8>қRS[XXكsD, IH`̙2j'aBWڏ{_ֶ%ļԔssO뒅d%3 ,ww-[ Uk?I#"^QS}!SZZk}Ǐ6Y) nedǎ[@/S,wz m|Y"ȶ732J̙vf%CWUըqAZZ84Ԋ0/L:! `A`UW;kJMͷ9sfr0%KN/g+ AQ}:C4xML::z÷C; ^^iOVz{% wquM$yS@jn A>>n,VHFFҧ HysbYhǡ#$9"S&=(w{ntmҤqfh^^i/>|DOO~0'INNQQ9αVȶ7!!Y8\3WKSYHhhIn\\I }+nss+~[@MGܥn~ggڵ7oZSkL ӧ|KJ]t0U$|脅'n׿y.Xe$%w"EDA-`Am[TD"Kz`7o|=BB|h`޾ط/Y}Xagg30X*u5!&捛(ڹt:JM-WTTDwFB"%!JFq%QQ;<_efa FnhhGGž=ZZ~rggώϟXY#92 ĸqn]nn,;400sǎPaI+7o^2/^|ZHkSQSQoŋ99goŭ4r|yOĉAA^}TsQޛ}sutPeL ќtuĖ>]y׎b;\ѯ}`oE&UTŅ~\@ssǃElVA-` uuן  %T]lJdd1%%g`++۴隠 ;&NA;Cy/ ʕX//éSy-93ƍZL9'~\O)-+%\\bb22j IDAT,bf̘vXt/4ˠ^tu}|]PVvs[//(8(5}&fl-]ssY@ii͛V d<:TQ3>n,VHFFDB ͛' W6i+WL`ԩĉyΜȸwwDF89Eb D"iϤ<-[o޴8݄t.'糯oƃ3g ڵVOOvȝ&D]mmsNNyNNy~~%֎_*nϟjUȠVuXPxvH TTH$,)5+V`e +ʺu/ Pяgݨr~Yxҥ[U`8?p ǏkCfRgϟ̖:v0ByJj**~";VTVRr*?8ò/N2oNNQULp13bvVV^}IO/bl??s w|w2kk%^1 45]w*H*+4ϯ,,섊[}[qU;Z.=< .nɒTW(?Y HMM%!!ި(۱c6%ԔY_ٳCtvde&%ݻWՅjj  j45/ihȞ?,LKS҂3NA;k֜AZZ,tVV\1 ,w3&;g(/?D xbhh=nчk/~"'}"'^)5uߤI, ~~Oϟa0g K[[s6,B; D wء啦k34Wuuaa7n<%uuvTq+)9u"1Jѭ 9 BBcmfQe@C뭭])){a4Lժ^PbK'ZZtuH8 `Ց%Tk׶hkG; HRTt_TsY]]L\RR^ZZAGG܆  _CC /*hGWܹL&KK;۫l߮vzAu!\͛r'}TmlVá K<}ZORr*ډHmms~~Wc W[R򽧇>mD,###L)=[JI舣cdb=^Q:LEGmirtTX?wٿN~+tu׮,/76VEiCynskLv(@ >}omAAUWgܹS) nedD0Ķm ϯzqD*ܑRXXffGceEE**^YYGf΄k(ټD{8Jlر؈䦣hΝWNNYYGDD&PMxcRRރ--]X,FSSVOO|7o^]ݔwdX6m&&&av_۷twBCBw>hn``9rHCCI9+V0@;ǎ~ӓwqц掏kzkj;:z║b1XFBbќhٔ`K)9.9F~~&9XX÷:d[ODD&3fLF;c۽;e?W:O\sΞG; rh,Ϝ@ǔcl? n|~tbQ4͛͛}ׯx.EFA&cb޸&rr99c:G>W۶mtZZ:KJp?p5~lC`B ssB;,'OJn8;k*)$$ܹT~g+*JjۻBxUXoz+{zǏ3gJo-+ 71'N?%AeTy?~@ LvtϽuk,4(ʆ .JK X%+S˗I:v;kkX\#11;,-F~ ((60Xࠎvw=lξ!tzzd-\(z挾$tdt|\)7AQJi)}jjI$2`'A%shllи( 0>:v(*-.O{!!Yyx0eӻ;B:"#wd:lϰ0]~h۸*DM*7V3cp>}sRoMzz{Θ1ŐL旊ۼx<*nQkkך5E}}p=55:ɓg޾y[蹆'2-׬D; [zrƫzzmB; Dppk˗DŽtD"yS>55'Hij.Z$'tMQ:K_h~ cc9s̞-4nxz֋ ㉡BB;Wv"JIWPoVݐdǒi&FFսjlwߛ**~.]:k簳ijʩKGFxz 27_ao lClgNY̕+ssS_[[+s(C@ny9..ZP_K?׀lmTV6چ?:q̖_/ hg!!PwpP/.v^~jjAL̛IxTU['j|^YTT`k ȤIx* 5]|P̗/?vZcg>[Xc [vEh@ɓ 3=QRr6-m&VVVB}-@aΛwZvwudtGuV (io^^ Cce_k)fsǦj۶@J/C0/>M;vyxFڵ6;g{r{&!XX=zwCm۶gVVbA==..NIEa֫UE; Pb;89o6i8SS0[W;*00 DD&YYJH]AGHiigCZCJ{O{:,ۭ~];A; ""^fz{ovC;;k)S&xznB;IJ[LRһ w͚5 $%%_^^TH!>>c7srCԨ(܊;o$%d/^|ZtֿjqG.۱#TGJ^WZQpp;);410b1fS%&@ Iubgg-_A7n[ۛ;w 'psV |܁v`x'30XjinTyڗ}|}퀀~WGlݺb۶hg̟?Çhi%Evv6 ;vVV6P7! DNn|UU?&Bz: љn؎ /$իχEr%G@460Xg^Pp*(bƌW<\MI;퀀4od't2XNbccsww}Ν;lω'nڴ6WVVFų?~EΜ9C X^آfff=VVV6a;;ҜGXĶnǎP==={T_w^kLl8S fPLLpf݆58 o1a!!ѯ\1G; mDGW{յ&&|dnCL\KK2h7x=22Amm߿|RRR<߾}KOOC+|kk… _~ÇߺuKEEH$dJ쪪 455 f+&Lprrvv֥LC>I;L=qsssGFFl޼+* 9#4'<.00s @KK'؎7oMLWsFǂistuMw,@MVVv`Z|FYАO_O\^: `ɒ%supp Ȝ&Sӥf :8qlYg{TI:v}o*5xoP`ce˲ݻ߿D; P /K˕Oa5vvŋg=O8m޼83ghx]V"8iIhcHxEEEee9sh8H755mݺ_XXѱO|Xvpʣ__)S&P0w} AҒ̶6nnwiO{~Ffcc pww svvFH \\\O. `ffV4_On;%D2_<<> c;ԟ dc~N&_Xq&=EP+jJ]ϟٶ~ Aן::WZZ:Qqduuk̂3P>Sҥ;ΞOKs 55og֮ ̹ߩ&yȟN ݻw7K`` #u8mڴFAn߾by/dBs^AVn8L:AYynhh6N>>(*Sϼ~݌/("4DSS?ichgill=A}ƍZZN7kA3QQ9]hb}wA;i$ILLϏL&=zTJJ'qA֖%%%WWW]ӧO;qDcƍ_~_`CZZZFeaaQUU H]]e7n@ϟ~leݺu?nkkC^~=a„?<$L&'$$L: ~-%%eԩGdÆ ---wEǏp/_~~ynק/CBpO  /2/{[;ӧO'OLɄKIIH?WK~ iӦ??{02)%%_PPdGG߿Rv? iLjNn.~?ށq><}ေ4oѻL"6mdccC矦[7ty08QQJJqq ED; 'dQ^horr.jj4Dddδi.]J(!ᝈNO"r;&'w<**F[a8ß9;$7O\Pf J>9_d2ܼFHHիW)hB5+06UV$I¾<0eol|};h`ZUG|hg%ްᢂ©ո%IImk. gw9s|t99>ħOuEɓ' QS/)[=@17p{{;ONNL޼yÇr,һ~Kl322d2H%sdddC痜++NЏrr.h7ߗ0.ew`=zDI޻w ~wݔox Xk{F;@*п ;n&_7-u,be___.Ӏ_-ٛFG|:FRBB){yv7}w^W"$+(٥ |hWIA:|8zݺJSScӦ۸Ǐi97sSMrN ECC S}2(,,,##[;p-&TC+jDDK"/w;r$f8ϻ&9Uϝ{:2 NdQVZZnv";WgرC ,'Z[+Z[+іVVp`HZd<5yӧOF;#CׯٷO,Ν;y RqqqA:::.^f͚Z"8k`C}eʔ)5jnkk?~'S0rqqQ9a iyyyϙ3g71}977vLLܹs(K99Gdd_Bgz﷫Dii|%?A L&ܹMhgT3&ϝ Re^llÇ)=W(~! ~/4b]{{_ %%%%%%XDTsmwÜn&ÿp@EC{Ϟ==zhdixXih,ԗ^t.gg- lh' /_~k],t%-`Λk2z4mKA{\\yxF/‹֬(q:3)ZUn ->3Ccĉ-[ׯ_>}as/M0a'OLOO̷&Tg ,uwOԔ5AضlYvcY57wꌌ|X Z)f&MukǷoM;v$Lcf]]xgj4<|nAASNpZI-9'57Q46b1.1"y@rss[[[WVV qpp|_>}6mZ҅ricc˗/;;;7mtk׮}/111quuOᡮNNnׯkhh)Ɵ^ndd(//{UEEEgrAG92'O|50,:Ü>}zYYY??|)""ﻵ ⢢VX!,,;AUu=S~<77~;@;`r۫߹'Cpsx}48~ߎ6cӀ-tuo0gmPM! :be k{KJND;_gYY/:2:VVP?rnD@qVgW0kd6'//pן/(D/'i4e29tBKKۻIp<Os/UVV^zUYYa0mB1AطT ZZ:Ƣ|XwE\\0"bǐKȃ[͘19,ի{F@9جnm톏@?Ǝ"uIQx+qqout,^|"ퟦt99E57w3SH<l*o;ǡHe>>ݷOMo$ˣU[;bC/_~bgg[dmZɓi{DF:'teA*VXkkX@Q ( M:$BB l>$x&3'̝wľmۢDwEMu5Ѫ iŶm۞={6}W^lڴJK$ٳg/Yʕ+>l,9Pi,X0ĉ'l6PTGy+ pb+KJXYQϟ ^07_s=lX>gϐZ!B$?>pԨ̟vZ[.wH$K\3-o-: ,~D"XYY#wu/c ׯXӧ-_rtttϟ_]] ޽{uuu̎=:e*/V\쬦uV>Pl33iӦ1 eH?ަϟyH$ս|f^K,ޮz6"/̚5뻫?X.o2F sbo-ҒKBp׮]vvv***k׮Er( B:\.Wz -< 5*yK`֮ZXKKkʔ)M=D_ ZH Tw5vnu#-{Phj_m>=}WLNu.hU]2AJJJR }tI.]76^ o!ݻ{w@t!!ዑѲϟK$"?x^lcjΝdڵ7vkDr+?}|v{IiD]r o\ `llq_-#}!WW׺:An޼iddb=s:T-Ah yݎwto󌌖%%g#?NѲǏuHI)tt\;v!o-V# 9U>HZҖ-cg[ u13f[ Ca!ٳԧO?0ON#Gj- {>ط/&4tZٳK,&lz7}1J={Ve̮]׮%$&4ZLAپ=*4Çw릏@Kڵk.]ٶB `uuFTTVeڃ<#pNO29(ֹGkc:h_~7g5#"l=Ξ}ѷXYQV$lxѣ/[HՉ,#GG-jAko\̙C8%Gf1x (*\j\\ԩ7q*\ h:TA8rtmBf&g᭥+R8y=CCgh52n  y@{('{:TL70ܹ>l>thFٵ^ޛ ۻgB#*Þ=6o+Z@!9ҵ]cO6l S[[˗ytӓ@!uCBnӖeˮ\c.ٳ}bO9o9Y-Xp߇E wT}\kA{R{-qܚɓ?yگ8k!ax۶'z̟e6JpgdzyYTʕ;wN};yii%8Q,^Wk䭦tld[q5RU98;aQ77gB[?.-+Z%r],^<ҥSz-B[[߿O@%&&={XX eM"IzCҥ {OJ35ե(k@GCP,XВFnBxŊ [ (..ʊJ (^R7oƎ믿`vvIK #}z YYׯ~fWnTQΝ Ņ ׮%@D&}|-,tte;>bHsiRR^rr~bb^^^9 JJ$HD.Ś5 ŋd"ZKzzIIySz_?JǢ.FrrAQQ.x i&jڴU7n,rt4[|`ƌS.[Qu@i^:,YrqĈ}Ϟݕ8uv5 [(jjJ y~ns%{on֬~Šӹ**d--5(<_̘qԩYJJONؼy,1͛98mkOqÉ=  eeMc>}*M};̙纺9: 㔚*g8i2^Q?A^^֦:PǏ.Ø1nǏ?ٴil=vIAAŹss{wtBB.A**d{{#77=L{0)D{Y,V<~Ï RSSӧe^t驃Nb$5͛/_8>D D$0EZZ E_imb ?VQ1II)JI)|*ݻ|@H$`$ uu"%%n{u۷߆V;!55uG>>x𡽽QTԲ=VܻbadWLrD"DE-31I$hх3O_sd6ΜyyشQxkj"?Pfw#Go2m[PT{^ XlN x*{Ӄ9>M,:4mぁ'##kҥW&DD$Mo-h bbrUT: C__o]O0sicf2qBQaAbֵk AMoo۾}(ƹyٳ!C.*]bZ_ ))_, ߿/HM-% B" :nO@'chE"E"1_y˗"Hӧ/II)LH}:ٳZ" D@$Ք^elnj+mGUUmllÇ=(jRSz0D Ebޚ"Xl e~58gPgԵkop׏ O$`q^OUÇO^0OOOC XyHETwn7o&)vff -ݻP)~u҈D zNNٕ+ob HTT)@gcd\"WXdf2Μy շuyT+#/~"=""A 1%Aw?b ]݂վ.hj6" ~,+1o!G\\֜9={93[CCo9@&O5cƩSOܸoE [^lBӫ+3|Sg{鉀.ԩ?ٸ?޶-wsp0r 6Ci)FBy0m޼#F80nyq{E8::9`=| ݻcچn*bDY!@H ?c $jhQC$b ka@\`hHlmwW|LOK+f霊 ^E@k"0n[FUP(+-^a߾Ǐ\V3笖J14YXYZRhu" Y11+K$uO__ʕ`gwy`f"G97o[Q,RE|iNNp4"bq׮MDxxX-45UޯuHȭS6F~ri~g<_xZ5Mw͛ǨQ`p~In Adŋ/Ns0f5M9HcGN7t?fہcƸCt1(ѣ{K,$%ƦEE}8p VWW} __Q;|ٳqw\Z!e0fc߀Dbd1zt|RЙ`"dѣ{@u ;̤{4!`,-תvQFpJ:Cs+* K$P\I/UUyyOnnyVŪ|yN]])VTTLgANZ4IRtubIu +ϯ(-Xa$--[[ür>ޤ*%%R]p pt4_Ќv0m YoVr8|_4T~LMu@qֻ˗_9dnիóZ5LY4Vs^ʈ.0,/!!77m##nJ͝<ؤI""+%gk-IMݻ١Æ9}:dvsx;Մmoرne(-h -\vŊ+3f۲et$t{{ӧM;rsqx6|߀;>o-Dڵ#+bcSccS->4b62O?^:OuS^^UZ)+ee<dV.,taҐPjtoQQ’%2W mm5*…yy[ȏGݴ̌ zv6 !0 0dhlߔ)?qYfKK9ŕlG[Zʡ9EE55_:ݺ}hE"ADBNNъ_..f4{{#;;CP8~nn9fb2`VR"bHðAD55uⴴLFYYAT[[C ֖ffG" rv^bUKo@4~}?@4jԨEC[=hN0 SW֢(+ {r IdVIofhD!Hj.H$M4jj}'UVm^ZdR[EUV= D"FDRAbAR> u$Hb1O 6aX`&W0 Ay*$EE~II%@ HDA$DzVUUR50UUWV&Չ|E'IWaeFIh30d2o5?իnTL%i0La 00La" D&APU7U4D,nSYL[K$uhcHjD "D BACX\%2 "J/ϞDvGz[tDXdDLpŪ^BA]Kܺ5D"l8f^x+R`뤤 %W_zΝYQ 8"#"Pxˑ1hЮSW h'(!KLLjttJI [__i uuPqX#h/lR$çӹL&ӹ/)jJJ$5iﬔVrgϾظ66H$a=C-- |5he&'[ZRfδ o-B$qƌ~+V(%n׮谰ZZjxk邔SS0ԒrXloohooii8G:H55%Kϝs¬Z L1bH MS>ܲ}XƤ^ O#FONGdDXY7#`k汞573351i)/畗WSS32yy%%슊Foofn 1czD"IVW:usj*@ak0DAMPU%;u&[$ih/w6EGm"!B]$anϦ u$mQIMUz @ =ưFX0A Xo;{<0:z1ZZAzz_]OJʛ1ߟBH8pg[W@ ZӧO9x#bLYYdtt#K=J1 =|+8;:5Kd7EAQttnzz28_D{8hD"(Q4rۮ8ZL65{vhy9ΝtPqKDOW"66uә;44@d;O?@ٴp\,Aho=QAĬ}/p$#ajLL۷yʤ>}:v2amC MpFE-# LrI [:H[[^-l`@iݻ;@PUU?ٳuu=ڵe.55*bɮʖ-wnN~f}۪[yѢAK [KW@(|T!23up0vr2vp0vv617ktժW!`UUoΞj\MQϯ@+2=0MoVQffm/c}S^@2v<.ᱥq =y䛉B&&OعsB 7KsnlL APUV&@Bmb)KJ- 1ѴH$Bm*/<3.HFvv7n00`$]KD]]uIL&7<ر>777 )yތ,dDDbDP̙(!^eymaOŭ.OOxo!X,YjDDҡCF)@9 °c#G=Uii%:S^{$ôǏkjꜝM}}}}z0&cՉ*+Q1?zdrl>6So)زj'xhŋO bɬk 0 #2~Ν{(0 qʂRwW$$|II)JI)VH&w7pq135tsk{ٳ/n Y` Χ)t}q _eds54TxZXB&|i$=K$cMگ!0gM Dř3eH*Mrr vr2]%Œ n=WSNB1ck8 X%%l== KK^ ŷn۵+B4d8~rr˗YY|VIIeUssUSS]GGcKKL9wnXQ DTSSZjXPPi{%ی~Aʡ`6@6ockkhl-[9}9 WXp AX,YfXˆXinX"GH$7[+EIw199̔”LǏEl6D"XZR]\L]\ ]\Le3ìa0;$DccmNLr|~n33˗(Կ^]]rz_v@ٷ/&,,ݻ8 gԓ,V l+*Ǎ;DQ\d"dǎޑX3NW\0gOsbUH E%%eK@TW'679M=@! ^dA~9m8m[x_ݿBQ\ŝƟ _NpᅧO?:4p=r*6 ;wnN#(LI rg @m0117&&5*15ug;6léD* jtf56٤ Hbbn^@q0`Gv6]& ffNrr[NF:hl} Z- Xb(Z >|(|"OLrr2qu5ʊ*qSAJ!Mh+G}0LFF=%03IHcckk-H,X[a@t׬)øh,ahTwtW?$s/Ը5v nAp@u?zt\:'f6  h0-fJVQQRSSp%z[F`poexՕ]\P3޿& ܹ6mjf]~E n֐F,(`ayBa! CB k=}Wn-HR ٫ARTW ҳ*lm >Olʹ׶5߽AX m ž=&M&AIJJQŬBzjjޢ[h#[o/aÇh|ܲk#=?=$dtN2۷% +1u uu˗k%C斍wB]`yuqF-XsA?nxte!fkj&O>ߔ˶5cNz#J}nue+Lљ0ሥ%U.TW fMI)pA#,D,^|OܧfӧC\8@C$ӧشTT:9Sxkz??Rrk5oRh4-e4'2}pmϚWneI$aϞ殮fz  G۽AR zjj1IQPC-GSUF${o*)aD"A]]iժf'd0GE}Hz Hg$ 0 Ć^@# ..!, 2ţ *&G]L&Rn􍌴z ݻ0K02NJڀm\$`٥VMMƆԾ~q{C~\l@A&:: Ï._~ ZII%[fLSR }|·zQ0 !4g΀Mb6k=6&N7v!*]}FDbO|O;;6p /[Dpv6ݰaO?Yv?|zwGG"ɬqjޡCZo *+ѶD22/57װ̛vl??g|G:ښcGsȖ /׮-ӧMy qUܹʊYƔ)Ǔ7vBB$gxxx®]'O o9Xݻ)B@{0^!-WUՎF]$u9}l>~|ƈmQ7oKHX߅;9mm>>x kySg2/PtV s&$FD,OpL~GF.[BVlljLLj||D Z[Sqу cB2cJJ$5iﬔVD1򤤼#3gksI#<5qzp߾ևOsyצZЫ׆>oxkbkGEa08o|y&͛ϟK%{w=P[mS&NS>ڢ"jTa!AzM[KKDw7rkvvBtuJJQVAqkkk^lmihV:u4t:gР]c1Ʀ[W_9(?:~e2ݥ<1wY//'fv(G==-O_w5x il~k׎\prAbqmUVa*s5GasْH!CCCgjGƴi'DOvGE-ss0ŅϯY6 o-KqqDžBw릏@,Gmpo/17[wG޶xkPSSɬ270i;ن44b0A$mmzزU+Ff: tIB_zD ÇA?g2y!Իw?,Xp˵VW+$&&$fe1ʊѽO(VtmEs;`Bڼ2SIǒ&QCאZ6c'L_ӣ& oFF~Hp&L3zt/ԈSOkH96k#"JĬrv6UVVK1y4ʪQLGG]SSHa \n-_WVV%!"t@ S FkhFGtu^^Y`رn5K$ȕ+lrk֬xFW _Lzjj1U A&yuu[bګE'Pe^^/_f`BcJ55B4Ȗ@duӦyU[+f9%%_ ZFix%.ԌV!/|c )D5Á/ ժ[ՂQ$I|\fg3$sc:F(X<-m-*DXxVٔqD"A&O>`p_!s+֯x0iǎ##p! &v_rcƸ3o?eʱ?vlQTdαcOn\bʕ23houL&N&pQ{_D",#9]Lg~ oެo}aZ eˆ0\>>;/\7hZc*[ ZU79<55%77~tsGQ A̪6)),.,-唔KJL&50442261122221AJ!5ff Xhjtnyjmm e8㥺ZPVV̛ zTk Y&So@$gϜyNˍ Ŏk WW3KK3UpRMLr85\nMEv}9\D&$|A"#wCw Hbbo_K&GòU9b„>ff#ҶLϥ  2n?}*~Ϟmms  *Pqd2]PPذH$aɷ3--zJss=33=ccSg|$ۉ+#DӍ/.6y.oGpP(sâEzw#~[;ɋ_٥Yǻw3f^0m**cHĈ8^@kIJ?pb//+@!)+zÇiOx !C||uGˆ&ZZ4FKKX iNfe1[G6gϾذV[(ܣitW@4Lxq>B$#>p˗t Œu܊ŒW/^NQWWw n4l͚aa/L.]ZLDU6bŨ HIdd^ep{>H_.Yo4QENTT[h++*/X<ZژZoQ?1 M‹o|'ZjAH$ ܮ8N][rtne JK+>|#~u`%eYsp~f|3gAm:vɺur;3f<=v=䳯 qq'KL 11Q bK8{ڵ!!}C3x??H;H$†  pjD" 911DOOC"Anzc݊ |-ڗ/Km JM-LۣbcS<o!-ؿ3@SZ= JzW8ʄ G`pگx "Q[+@[RfW|dP E _)IMX[!YJttʭ[9:-б뷽ރ PPwH\9N~4bb>>ZnK_mu 7fjkϟgxceml 7@}z([\\JP*bj#7E"Iqq%jȠK'k $A 6!<<<--Ց#]z>wŪf2ŪFݴXattQ"JADNʈ$X:)5TW Dڄ\\\\dU{65o㶤}fRXRv~6{ZubҥjjMs8|,a|i[5lӚ:'u }غ>lnVͿeL&Nr8|PQ6bemմT ]uuׯs""ҾZd$Zܣ<8D ԞI5tR4x,-uf ÆPX,:}{o}}oߕ|rkk}S:m"?ݸiG O| :u8H_sMn9!0 o-?(LfU^`27{jo fdG>,Y2䯿F` s^}_Ur尩S=^\ty&'o20lqwbPkSD&M:flݙgCE̙7ޞ8c $u *6ec3xq˗&.AN2\ H+)ttygae~PE"AL|}}}z0g;ڞ= 넷@gл撒JO"z̾}qT H"A6dӖ-c ҧ/xkp+bcSccS" =oo[ooہ:nX~L0-V5aرߘ4* MṲ 17-ǠVQ[+M~ӧDS@@oL#AĬN jI,)aKG*+0롖Z$Q%٬,3%`##߼tZz:ZܪjoNpǏEVV1czW(=D(+[YQZggfL2%ۆB/eQ}Zkna 1fi-驳׮ڿby6p 9~$maժd+LAi ꏷ9A{bʕ`UxJƏ?eu,رԔ.]ZtB5 ML&K-ԶamU|~˗Yh1q}} {__'{y3ܾpmϚo-N⯿_Z(omm5ccw cO{Qގзϟem-!NEftǘO<Moo۟0NV!pҔV֔ugdSRАZ4^ 45֖&'9B,zxǚa߾廩,Ū.+*/>[^ΫB#<54tu 45tuuu5 44uu4 K<;ֺ|axS(EEF44TRSUXJj RQ!<猷y(=D"9>RSׯ͗׭E%&1H8{vN۞~^aoNQg㋊ZC-]z9:}SƎu[Ŷ+3mډcw(]YƔ)]ޫ9Z 3]N/Xo)˲*A05&&5))L&zxX`lcCÛ7_&M:6wu! J{Lvv66lm4f7[72(o-YJF޽x 1ՂǏKy8 ԁFgn$#ГZ-5Ԣ!1f::(tzJJax;wʪ\\z㦯Fb9OM 鳍ʐ 5UxJJ$#ZV\WUUiϟg6A qw%/_TI$ڄY/^dkX/̓(?V"aQj4V((w[S-=Luӗ6P;Ue^F}~6LU,V5c2**x|NbUU%]]u*USOOSG5:vܦIҎ[39M iyX<@4l*s`pmq#i-[ƚw`4!c25=thZ'쫨rʔuu+W-- :arի +Vf͈Ezp$!!To- ~f͛Kz0[P(vpX /Hx6@ ȝ;lծZ5<(?'[6Zn ֭wK^[Nܸf|L enm!66uܳӧݲe\@3}P[[ܹx @+J(b&Z& 2ZИiN'sXhmLL*[Gmq+?iuLyH?t<5OnLC,##/Xp@pNX:ٳ5ruX"A\]C~u…"l>5Q@ rss1U QW'*-mG+t|4J(}c.6/ ff1CjgiR p))qqYeeU&&:::b*+ҡVJ::jhĬWDے 4dkP9K>63mF"ADMt7n`iǨ0')K44--4_hqv6Մ+W^s85}Zz "ou33o/_~:P>}*JI)JLe$ҒCib&| : 5].4;.Ν/>.uq1 7]MZ:'3|NgcP-aob ߥ"+ :ck*484z-jzCw//ps&_gH?*69oE?eeUnnO5lXWF}ZZ//04-'X."$dtpZÞ=\yt "$0dFFݻv~QQV. ˗{6jjztc;;]&ᥤQ Ƴg:m 'R)V±yUx +OՉ.^/=ۮý{)炂7mRf=J>Tt yN=ri--7/b$))/66ŋ̔B55~l|} qٕ#GPT""+\Z@V\zxT ϯ~1cSRRO5[K9)_!  YWWoi GbkKhd:RpGbLzJJQf& JXHbd!fl>UbUWV++Y U]Y=!hAy==oٯYiCmk-ByH[TR6-h[7 E /_z[~ͶXRTTڲSR>|(`2 BcPќZ3Z }uu>]ERzO{$'u]xxbbb)?MSr$%`eHHC?Dt@YŨM36ݶ4JJQzwp0nӫeeU ^e%]@OEEmB IDATtuեh.Glrk?.ZKv6C"A(;;#[#'4l9ii%99L'Vcj?;ApDT@UqE϶]VZU*Ϊ 2\%كmPCn<<<71y͹} *[~EU Ӧ_rGk.'O>ٺ59/os[ _,6혇]l,4~q;BNv-_"4᯿&]Hf ƌEjp?711bM--M԰4bMއ+W&Q&O[.[4ڔwcVw7333r+*56ztO++EE[kDѩE"#qF%!Ś5 hsŵHו B .Mo t^#"y~):/_$Æu߹mf&ԩ[[[MBJdˏv[0A&۵bsLԀP ghfM `48Y8=sm%X_]&I,,tqrY?࢞ ?/]d_#/,%x$LގM۷m!0 E&Nh攗Ӈ 󧟺FGOA]d멩h k\lNo͚ѡ.#˖](,^=?}F{mI.]V];Z͗: |}ݎRqgNz[m…ŋ%KЮ@ۯg̈wo7@ ȗmm-\WvJK;Z@ (sMJJ^e%@0@22d/7W.W!NEcݣGPku޾2dw|=Ю#AA{zjm[څ|"/f޹F* mAC4mW +*srDRh`I[Jjk(B#ԉH$a0L&2|d$ xs E p73@0'̀i'=ONξy3W,>jTQz|l|p,cH-2ڷ'[*lMKK{vܦD"}0..\++P)STp=\ԩ'oTvl;qbp UI5mXZ6 lnP.U=) SRLM{FEt颢pND)Dbp !-0Lqq*yy,@n9˖]u+$R󋟛JT*z+glZ7xRŋ7^544XzI sSGvrBҥ'Lٵ+h۶]?|#@fxxܸk5wr먨ݻ']}/!œ'.yL?駮;w*bJ8nP(vw_sD]~S.(%Nhׂ&Ǐ?ްJXX?oTl/]l_~v-%d2{]]D$L&\@E8 "cm{{kRS)wy(_(vCt $uDmۮ=0.nN@Y)BwL~":z >hע넇% .`8A.>ZZJu5ҥiUUL//㽿@ uFEB׶)8H^ƅ  Z*`lm^^@uwswoR Xe SHflvPgSS#ėEY"\ޣ-RYffIrr/L=^)Y_UUL`5r[$NV,E;7";pr&mUl԰.^biu5^^NȡR ٙ|YY?x>99wom&+#jǦjd͛;x˖%LreccgrCXa".DuұcE"u +V$D # kD{\@Q 2k׵˗o6oa˔[oIIj?zX,ܹ32J n`{&[_^vЮ@>L&]NEQ) vM S>#D^o;8ᔖ Ѷx..V?mn-}0nf*>Ѫb޼W>+,ٙ '~tjKJXؖwjUYb TNy[QXHJeX3P{hvJJe'%eȧWK&&c0mZۢoB޸*Ѹ:vTNj)mD*t[ZJ1J[L< O{͚'|!! ܪ*fy9EOogiijccA"YVV9`N$~neeA$+7RtGVZ[/It.X wh4.8/jBnn6L6sݾ}ǍDEoʋeoB*ٛ7sϜݯ_'H$eƍcLѭ⺡CwϞ=`ŊhעC͘SZ[#N23K~\}=w(挄Һ߼;gɷoӧ{/Yv!(PRRymѳg{ˁPfƍWn0}:\@ԗW_sÇ+:vmD@@6f -3iJ 22J?Rrš] Dܳ(v3|26.nG3c]ԱaD&ySy˗͍#"FFo]7 EzWV2@*Fn|P(ur"B8AIIpj) `XSWWk2$ecn`l,;8ESS#5eq<@ /,_df~011tsvp76H |?oΝI'NTrTg?cGԩЮ@G* G}&] |Hf2 |XJA"axa$V/Bh}=#pq  -0]>Q3j^… :i &U=kVգЮEwd#GD=ϟ?h܁єiiv3gC.F1HbVTЫYJFe%ZZ88x{{sp y@j$u@PWd2CC}[[ X Hpd ;TpLL %/N{xs -|6,.*PjL>BĩBΥrM^=SNmycPvݻ;jCBX,~rrNllwd]hϔ)}fy88gT.(/V[Mq)@[rT*4)VU 0TLÙuD"m]\FFjbY N}kbb8g)2*1l]NJqυ jַF&;: eڴcڵ;yR3uuTV\\u PD"ɬYϟ]r0ߋI}j#څT*3&Z*&'k'h['=}fIK+ <z9>!ŪUInd2ZR5 11cٲ 5RK_:iԨ{Lܐ[g[wv-=UCS#dzzzR)$˚"wZYYjԴ7uEEHD"J1$a\]u#!-? 9,ؖv:17<..ҥt};SjK/O|R]v 5K>gܺہk__73MWlE$TU1NZY jA]"#v5{W BT*4G //Νm6F|:` ΣѸt:1HKVVD9h䦹r-w߬\ \x،"㧸j6]7Wq.sΝCC{+qeeɓJ$ҳg+_߉H$1īWeII =}:gڵ@ LR+HFm-9[Fz"8)h jז uu߻ѣ|6H"Y3zҤ>p@u.ǧ_=YF 5Ve#F}t5Z5sݻSrs/C||Ю ,dӲh"8u >ٴ8KF l G2ell1oҔ@0SX,24L8Fd L i!311,,Qh4( ٶ 87BR(5/_~y  8!>>h'ڕ -vO^ؑԣOMXYN&~mq]VWȍ//瘘vvx-Sl?GӅ"TΪgmmL}$Ur#{k,*EbnsrʅBq׮vdSϞ3Ԃ NM߽pls89h&"Z|*.[bj*e JVL w+d_b,/f.^|>7w_=yQ 7W("o ş;wE XڵkMk\JN~Z8ݭ8=ztg?h3VL۫(FzzKL\ؿa3@#z0kV4w쓯_W81thwˁ;PlI>z?] 4CB‹/R6hFM wDl;8uID)H$_~zMIIo@r@Y:AD:m1 zbx1-RS)aaQvUukrzzѰam(xxS+*Wf;ٙCxxt.nxɩ %us47h`$$Xba薭EG߽v-[ xu?@ƭ? ޽xIoMN9wY^^L&f@qdU4Յ8"1W!8^^MD"Сml,O ,`z7tH; QX<ͼgo( BЉKAusu)3f⸸9ӧ3ftJNr~..\I*5jߣG+Q|QNeK]#:tX~Ԭ!C]K+yj޼S܃ ^Q&-߳gޭÞ=2>]ԟawoY׮hע ޼:a`L2r TluLvcǦC!"$ `;v] 0P+p1^~}f ,mmm=W!|ybt |TÇ IDATL&ٙ8pG` ߿1 1beRBhEHv.\Xʫ݄qƍ޽֭b1D  ,$ɦoiYF@ BL&e{@ wsY p VQy111411066P 5?&7ݻ*K8Xd޽J+*4gGԖӑ(_yY qj?'17r323?f#Gz;Z$"DVP@d8lm:>*Bqqii ||߽KOMٌ+<v@O?!H99e>>@ՙ%$F"oֈ+R+Z2ZY;vd <^纭[LJ+}JJ r4-NG 6[v{Z{8t#lҝsfٿ^X`Tҽ{[m|pŊ+WV` n>A{k.+*IZFtǯ^mԅC\rri:@VdV%;(]@5k.>yDm$t:VhÂ$hI$.|,>%A2D~D]Gsr1LϞx{rզ5xj|nv-:pagտ˯][`0oߞlѣ{RP惂r:H͋ZpubM.+Y;9(V{ر@m/ >ԃ>J X ݮkW++G^"ΐCG w$%e>|@c?όPj^d0x*d]˓tY-(^q36_N}B_}0u֖{cqƭH$IIɓ7L*XHp"K]]mX-L֔0YY4XY3##]60%%u]Ç{FDJet:Nܺ:.7i4.G$#_֖VV`ʂDZYYXYQ4X$wu[\^ڨӤ']{12nG:rQ|϶Xԩ=U7|3/v-Ok-B gOx[9r_u[tWz]3Ə?о=q߾hҶH]nEGߛ93`1ZsJQP-d2剉113 v9D"I[exk@ *QdyM~b$O߱ȶ=N/Ctǎ> \<^cVV;o}SVF333v $av<޺u?DD]Wǹuk/-\x<9Sů`}ne&|04ԈʯC pdӪU-`lv'Ad6p8i`8f78A011bM,-Mq8SKK2ߑ|g`.6?BR(5JMi) `&6Sz砭 ŕJFe%l0t1cGG#Ltt$8:Z%H>-LL̸u+O )$gZb rj߽$ }ؿ'X[g#!'8sos;mZ?gg*kFyVy27Jeckܶ@:%%ug>?9^;WG[y{YxM.dj6Je䔯Z狌*=z'>Mxd||ܾ@f>),Qͅi.Yw'ׂ͖\|CC}1Vwh=+;eĽ/k'Սsݽ[7G==9bڵ! oѢG7no*:D"o~}̀2@ M۴jzZ;;ڵ@ e˻{y$2;dp`Ys;Bt*5r>YTJj*ѣ|6@2[@6ۂ`0}'v-HAuvÏ883L/JqWHy3w̘6l}zV pr**|<9iq(&d2"w"Y&`i YKMY,7CŚiH! TZ _SXHJeZ2ٮ}{tsv&*nnybbիYt:u`yg1A2buDRzRlssү\ %Æu߹u=OHxN7(ȳ35/( q+aXMںE(HRURM&~%%eI׮`P(5`!AAU&C&ہ]+^7k\dKEE+q4\0 6|d6UaZ7UJ/uTdfF44==׭_?fڴ~߳Dfg۷DDUVy/PS7nqRBMyEuy{oܼyܔ)p̷-C駮+V@PQ1De%￧ߩ^e&Oii4ąmWnׯh7W1{IHr贖,@."K-u+ e @ P%8 cѮ|J`G6hmm2Aq kpLz251ٳ"T֭c@90Q.B>IϿHL\v-ʕoydgG׻ᅬQ+޻vɒ&&wENz#"#"L|Pf<iMF-c2 cL>Ԡ+<3Lq8S 7mz5EG1[,VV2P ZD Zww;2;j It.Gdz!72'Pj/^|C=l7ztmb(oTB}vNN2N鱎MŖ\'_WvD k)IRR2|O׮D[^I5Ν['@yQ^RY0K $Q]]XӶJ 6m Y+K埈h"8)ocee (*R# 9:JK&ۺyxطiVnHZDQumIUjjXׯ$'ggdG юntmi¸CSdjjVlAlK/%С[e._8l%oyoR޾IWPo￝:[tF1r266};O$.Y2,*_dH|,Bw2dZɾŵǵdQCHτB纕+GDEn)SsB-jǏ?nlc6\&ʺu[t鰙3U4 Leܸ^+W6Q? cb0[6\ شirX;%Ȏ=l5k@[IRR%sr6iٳOֲ8r TluLWbc DC9|?Ly|v @ &/o+4hA0©RDؿ}8 WA*:ԾySI0 g?P(~(?99ƍ\TM|jXTT60hס 1{l>}0Ikbb9c0uj?OO'ռ:NJʈK/-yy9GD?[;>#b}V;w>v`'<܏H4WK#aԆ!1bj* /?|};?E);DԂ;w^1nUb8Am-FhΥѸT*Kqkk\n#`33#;;-K"Y⬭-qVV66_N3*.74wp+}3b^׊Ï`0g纺Zbe]Մ {l̶}r0U޽&-m5څh3V%^Bڄ 2-K?{׮0%3礞ѣރ令TVIjG Nv!J֭~;fӕ|@ٱv E`0>_yd?Vԁ-< A6gDPksګ l8V<^cVVǔwP(5F>>v4ˇGիKL MO8^}p7~CEb#F۷umqqk\6}ɀ@ @TYɨbVV2*+̪*fu5l Ù98x=ɉ`oN" Nh<:`?ɫ2+䕂72{c_NJ|xk|<<7oÙS(T &# `yz:i_D@Ѹ4U_T*-# YYY߲occA"aI$lwFNY^Y$ İ}{` w_~9CիZ#O̙0)Fx2$`ܴcc{-j{ /^?5uUǎ$kZnJIIYv!mŃ99lX)ʚ4鈓aVg 11E}=WZX,㏛ޏuM\O QCb `0ݻSe(k@  9p?_;PH / 24'Qpp$ʎ''Ĥ_i**_5n*pWd94/S'RX)}a]$TU1Rڇ Dmy^innȑv8iR*ɮ_ٰjCpaQQM?R,dzU NL^.,bʟ6\k5}6GE/Yv-AZb԰jkUUL:鲷;l[[[tC)(Gt>r$RM.iG=dgJ$2d?p_kHNΞ?գ,v-EqqݠA;ׯVMybQms0 aØٳ"iBUVFH' :o$-b1'oOl76tn}=Ch4n]F<:Ki4.X++K"ьHYDŧ0ڏÏ h @D5G2ٮ"qj9%TV2\JHxQXXH;פIj6ׂ8ׯ+H2"P5PŶubSO** vo[~KT:t(F[lUn܂qrX,Q籁DxTodd`on]\\]m؏yRl}Ɔ/.T;۷UW_,?{ÆDyK%o斃bcY#VzHR_ϩf׃[N]M;Bܼ޽ᡡ:1ӧ>q#66ѣvv~U II }ޝm[ȴispIjdֲA)y>"R󿑴@yuuz.gkk?46"/jll@$ZX[[X@>kN$rl P(鉶B1t%@BmN$ё#iA8~D9rIUL9p8QzT𶁉m,'m{h5g؊D'%e޼kee;e5u}6[pګSySٹĉZ* |ոѣ=-#z}5"Qor:G"o\G6q%LL [lvî])Nuu^\xd`ؐɶ>0]v!ZKbbƊ;.IIɛ3$8~:v\mۄ0VyɁch*8%&.߿ڵ|/"dl  Tl!ч6][4Z@#Ѓ4ڵ_@HCq>-LMxQBԘϯ#LPm~?N v-:@ 4hӑ#mZ;wJI{`rw{J…q;vL Z46kj-/##R#ml+te2X,>bb>pH\$v3MAqPJ@ oD lnnc$Ilf#i#7IIo7dH=\W,fȐֿhMQlKJΞ}N9"oPZDaúGDK[4Ըcҥt螳gDoL!޽!ɘ:ռRLeKH$Yx،ʕ)ƌ 0l:wg fFu5odd@ |gccyJaaFBӿ`o;;߽z0BkGQs7ojty3wΜ;E7cFLinM<V._Z(~ٲh\Ou.oe`H$qqY3#(ȳeh k\OV_p7ov9*EΜyjU֬v-Dٽ;%&&ŋZ0s#Dn*d3sr"ñ htϟ''ҡ |3T*ŋT磌ƽzȞN>klp%66-&f]ѮExGOOm~5k.PqDF[~ h7v+RYHO8kk SS#}vL&Ct.t:od͒HXmeeaccieeN$ZXhD$ɁڷoxF ɁPOO'/.i{I8nn6VS">}ZqV@ ׯSHψ^jq{W8yyPHTvݺ9jJ抭P(}u\\zZZ :oVhpn&%eRl&OGmjbqlkȄشw謁#"KM`[RSWdoTׯ+Waxm~|r߾DLD"q.`ظu fU[bkj>N|/(R(5"<Dނ  k`N&B6iEv:{2_YEC. Rg>)OiJܻkWkN<) =%i]1th!;lĈOiujkn@ 4h]$'g/[vwд.].@ g>[l! Ffߐ-5|idd^);{wǓ'gD$VAgb"ݑVV8H$ih2 PUr=#m+x3|^ ByFb0 dӂ]:NEҶk^qCB|Ǝ텺5HM XSww; Ԓɶ={72B?V-(^q3_N}Ҿ3Ry3.W0p`銭 -+UC^ݘ1?DF#ȿ6+bM h4eX+X~cbbŸ#I--ol˯rѣ:$k.+V$fgݾiҤBg;v$uHbM 0|lcֶކ 2/>|d=ϟ?H6B$.;z4rԨhעIO_ZȲe^JNݮOOHxjURAVfeŋZ$!^܀V6nt5>ٔ)~6SiD׀-y._Ya Aoǧ?NsWC тkᵵlm4cc|N-R[~@pBzv::RP@vեKY%%u;0E "B!U nğd-lP7ŶQ|븸T~8(enR[:-;aOddLU -8VkײcbR߿{Be!ɂ۵ӻrz$SHNl1rtJbiQQ-bܾyS u@B[t5T!**L&㖔._XQ3L.`0CC}@_OOQf 955,`o!4sg[[kkΝ{t5kF-X0{_ܼ[ϞUz͚QSCmw.ո/F$LxsoX>}Æ+ϟߺܼ;gZ02(hO6MEV]`.Wwo8QZ~Dqzs/ܾ=B 7o`ll3 D! ^ Z&_[ˮ`H$RH$YǛK$B @rrm7le~-os.,rs32J?$$ĉDD0zꆁA#GM~bҤ#.tB"q%Kڽo߶& R{^?%: kJ 89B]^N//]Rpqq8Z[[vE`7R(5J -+d2KK772v֬@ 8&YH򑴁dIMP쌌;;ȑ=FAeقrj./C<=x3V@ rRRfCpذ ;=GYTT{>}<[[bii9vw9|T*9H̭*[,4"oDD_j~-[0}NHx]W^}1',2ٲȤGӷTJL Uy2 F""'?{a0x:v$t//gWR <{VD:'֬f _U4r!sB ##}ҴQ]˗  ! . qddV'=ܸ{w8YDsvZ AZkGN s޼goVyxqё~mzzQnnm.5woNSH$-20%_Yĉ O!Zlْ:Q@ X-خe^'vvXdu1^( ;cG(ڵ1+cJj*%/B__kWǀr` OZ?ͤAYb_(9~ Pfž~]y޲-vD?; [@ٻ&-{ wEX׺6ذa_ \*umb"** ETE: -BMe!Đ$p~ɝ9{{kTw,+Ŗ-)ǔ*JߵLfCc#׈?jkjjR(:op_PIMU7be%XAd64TLIf>ܼguu!C:{fyh ˺,ٙjU"}דϝ{CqPoPPwE]U*X,Ν;Im|Nq%=pLfçOMűq#5"if&vx/9wO#Gzn:Uod0jwN8}:v۶Mj( +}&/׳Μ <X۷Ǐ?vy~]l6m N˖]()pa-(3O׮-;V+_BjjʕC,lQ ȑ]dܹ9]0xٳ hkTMjgyyS!Λwɉ{ K"'lȾ}mS/MCCAg2_ =zt.𥬬13$$2(ht.],CعsB;l߹SV/K^3u6)XEcq1#'"B$TTd%"M DQ76], ұ/_F\ɉ+up0y)i Rl)i}}my5zP-F'_nH46ۯ=A#GvuiVɍ*efR Z%.b8VarŽpCtZ޿L[+L&-.{wslRۀoO-ijq_qYfd3.Vsv'Ld::SM#11+*uWImg#b5j\4,lor+WnDܻ7( [?.Y,NQQ%gΕUU%JMLt]Wƾݳ'omŸ\~Xw7m kkgnJ`"`bcb#;x_ReX,N^^Z].mh`aih98h"Ufٲ!ի/+M^Gꁵ'(aQU%ɤ5-vٲ!;vIԯ0 ݻKIf&F}<~|ށo֮beV/؃9=xS7^O~r=mZލ$d[<@'E S5.RW; 99eϞe>j--zsd׳f8CALwws0{vss pEO~ :}8"(8n>; pmN&Sss˩ʺ:D" TQOOBHTP [DX@b)ԦbXQٙl"i#xSb ~kb5VVE߾~Fի*+kl=Ǎjmu說22ybX)ENp -m?mUU]||JddENN LUo}kT۷44Tq=eGV8sܶemiiuLLRTrlRۀoogd{׮'kO;,l ',vdj_t+J/_i>F޼y}2!ggs8z4- XY,NiiuQJ*.,,Sj"D.pػULMull (RngnqÇ{߾ƍe^^24hא!ZU*:_j\?][,PuE졍8:gkA!YQk>z?ϟ?,lmJlH^6cFSe&G-61]?E%%U[(762҆B\׳&L8\VVH pQnngII/^|-*TWWtzVppDzzv;a^e?z&Z &u]~ɒk:dE@N. 2232TjUiiUee%H+%iijYX蛛6F04R' ^VPSl.,ٙd"VMIeLIƾ|޼rۼrl |d1rOI-GIFHآ(طod]yQhطνr86(7[4|oJ8nTrYQQ/|cMc#NnA[YY[{filkjlq.P\.:gNWK-)r[yȞ?ӧ_Nݻtz̀aH,X"YNٜgH1*ΦefderrJKZ:ibmfkooL 7IEeeLߺFgg\ FϯCjVkR޼q::0%>*;-&&)=Lw0};ud,';+$JKNJI$u&&:" JlKJ/_N:UNNV:vl7 7DL$58#mJlBJ'[qKUƾ9{E~~mHHߡC;UoBC/޼/r+WntLVZvD@dbgE99eUUuMJo%K ---?55f;=RVc2 IDATBQ{->-͵4<̙}6o#L聾4}wDV5225յ16aa\y{^D|…46EMc&Mw  r[z8ށc͚;w>$&)}UU}2jTWwԳ?Ӷvkc(E%%տz9!!=8pep%~- :z|1Wm۶mܔ)~x׳E뒒j"Z쵩nG4@Aը11 }|{8b8~w8ߓ'_L9NzYiY,G+̴@!X,jZZׯ"zi)賓DTWWU3665ձ37ǞRuuXMmf&7Q!6W3X%Zwq S?ݏov0woGYij٢-}dWbۼtƌnnfR?PUZZ}z/|bctŚPb+ϟX,,*nyݾ;uu[Q]]߷a:o |ϔu뮤Zz­)'+}HYYT@J|/ÇzL5K) ]}ȑ޻ݽPݶ#֯_?.IVT\+^ZZ`׳ytL&ijhZ[ubfΜ9%I?~n[3zB׳Μ <Xڭqm6@QQQӣǖKp߸w?|آ&f:hdl[s4G6U{7nYgDLJlA'N

    I'etp55d&d*3:2"JJ\ ƦJ44h4 *U"Y[3,,d 2_:u*SR ٭R%=PW޾RMMÁ*8.-ϯ+˫-/Ѫmvp`?mjkHD jⵉ/MP[7ZUV|hD72{҂JXmFFǏEYY2*`#jvjmkkXX#?Rkqȗ/ $O_46M\]˵<ɃS5Jv|Ur&:w\A55;ijUn~…W_&|iӎIp:rϳg9fM^X'exNc0y-Pb Zzcee/wq1;\ݻirrr>}d*}^J*)R FmQpL&k`::jMha@ol$*+ {T#ݻ۵ǝ=?&bm墓&ϯHHX%ٻӖ-cx/\xzI1bħO|||$i(<7"lee%MMu EJPSx;s;V\U֪Jq&;y<գPtZ{}]EM FD XRѨ^n%96}՛7o1B¦M]GQԒU M,-UPjx(&i$bnd*~E *jjuu1:EJU=ziCC?Ol޼[JLIE:e"-\_O|eTb8))K LfKBUՓCEV("~WH(ğ922R_O^8םruSWϝf`y9gsx!3u ?p`ʨQ]ݻ=ZLy[ɀ0y>,@Q4::)<ƾ}w;"!GPFFZW,6ĸqvfwDy믿JhAEFF.^(/-)]T4?(cuFFDb[~[pҥ={ԔVj¶mutW).f,_3gD"C^*m|Hϳgo0J 薖O?I P,˖mv$K H16С`CS!ZHIi=d;&ū6ȓG= nNZdlJ ?{o)QF%2ԵU׮VM3 ))?zc%J MCFFFŅs'y 40<{۸w!C:Ill k}- [ް5 ;}V=$oX055e#n A[[f4hdlV*l:wڒ:k**J6aIhk&xm}+y˗ߢ^ٓc۳}.Vrn< fe_kD^vt̙ӧb˓'wϻw|l{ ffR t4WMMooooA"#k/o|lZ M7zO̚Eѳg_x%9ʝ;yշ sݻ/mep%@Lgφ,^|~cM1 «ga F-EYyM`-LWkmxڴνرLru5VGG`LPPw}} UT= _^.~ӪKKi5kjۿ(-)rup5}@@mCܹA`KO%! K ,I#rE7mޯO?o| ˫嗁K V|[ >eeG7o?֭;IK"R:ޞ::Ig(&&:ffpf }6;4))[RzDts3ݮ{w;[##-U CtYx822Pj &BC{3s۷Czԩ~3g)1lUTl6GZa ٍ޽a@?/_s8_?gGGIqnݬ%iDn?ӧxTeem7/\x5`˹ss-,A-@ظqڵW ֍;"QKVTQ**ŊhLf6!\O>hڞ6BiiuJJ^RӧY, @;^edڴÇ=s&f6xQ vm 8L7"֭ZF--z:wP s1:uC[E?un$&f,q6{^Biibw,/0=СII,L)Νxnii9RXH_$H$…ϟI1Z ٦%[l!;o˥K)))dff1BOOB3&55Fo8l0 {ז^SSjժ.]hiil߾f |;Mpppii{@B;n4$I& 儴Rq…555v}|ycQYN"ܐH [M_UX A ScHa8nUqEEE'Oz*.a4!sg 6Qd= ^^6{;IKK{K҈ :@ÇѣY;vד'k(1qoDד̉g@~FGGd3N_}IUU%؆ٳ'+MNugbګW=y؅ xL7ŋlC- >}V 3;w/^}U>}>}{oNNNike~Ν;߽{f͚<P jUUUݺu%]]իW6EqS 1A* )mX,k_l6d؜8qɞMra㑄!IvÍQVb@* $9ۑn*?^UU5''Eϟ+))}A_4'QzH%@`$M{ٍn· A YZə(u0f&! d$;ɓ/sdʕ+K.߲qƓ'ObŻjYǛtA.^TSSӪGBϖ>>ŸqㆇݹsWOOONڵ FIɓO w9oqmQ6nٚc_T^^y}}7geFZ5affZdd$߯M2e߾}KKKԩSxx޽{⊊nݺeffs奥u_m~#GVUU]rA2@C |ꕃCxx?ea@OII/ߕ°^~̌b-'N R^^MM몪*eeYfDEE!RRR"MCdžtذa>d2M~qJYY;ï r=,YrԎ邂#99zF ޱO,'8ۺb4xs+_r[ݻoKrPrǎCQtݺuMvhoD*(  %99EJuu2^ mh9c9JKKs&,tFZqss$o ǴiEƍWw"I7_z=| Mno"_?F^>,Z . mh9˗MziO݄HD[&'ᦍ*n BCyͦP(<@Qt;>HڸIꩈٸq# ._?CrůH+-!UZ>FR`tÞDF[Kۛ>wd}-m}Ф!u ͚;樄 Z"amnnՊb kdiEE t:]Ožt ^ikx Ri ؊ 2{n:r9N {_כ7_wv^CU-[=<~kyC2:uZz,-ÇqELGG/X¤IGsҘ1 _~嗸b^X IDAT[h4ñPPP@ <==y^䘚4?O"ȿ{MFҕdѣcccnܸ c};L(f333̙d2v&m zxZE`H0-55e__;__E6^]۷9.%ٓ@")>>^^6^^ֶFx+CJ[b͚O jjwP튪*̙CAAG][bl%Ik$qӦ&z"_'_ga/ɡҥKl6А%::ts EUU5++ QEN6a„m۶5Y]EYWWB 4///uK< YYY0D&DL# 7BCyD7n\\\ 儌Rqʔ)6m O-ĵcIDREN(OCDZZZȿ# kL9JJ屎@fK3y1Hٳ'\/0WG5===O>ٓ͛7 .|IEExWUSEWWwܹ6mw^Kh65gޣGύ7vm͚5Æ kee|\t۶h9{ҥUU[LVDl6wj7%Ɠ'>ˋw#~^x!uuuVzÇԤ͖bkG AIi5{v#G߼ِԩYÆu. k˚s޽UUx+>7o.-+c+>>p-- HI0֫6\gettDGGݻˣ@H$8wEn[޽ݻ7fvWGۼs2e͛90555;w:t(ϖyE92b쟢"?ZEn=OC&Lp՘޽{[XX`!q'T8MDBN\||=vD$-!Up'<э_OA>(}?QҬFy ?9 uqqVF&dw1jԨ={eTTRWWJ`Lql隨m\HTSHHbtfMLL"##y@m,RwcIw%@`$M{ٍnSZbdimLC`><Ydc rG .;far8r}GTl/))1002eSSSb񮪚gРA[lP(9#ʣ mRO_xթƖ?~\UUmGeݻff̝; ʢ=BYYz!a;&!კYK7>>oՊUi6Y[;vՌ>G'Jl\y'ӦM300055 cٻvrppþchUU̙3 Ν[SSV vammmhhx⺺:BI7ܹs555L&o<ݻ&&mٻwÇ'Mdll,MC5 Q;FV޽uQ^ijK߂O}/uux(gxznWcio22ҥ"~Fl?;(7͛7d-\.~ռ-ۿ~...K.e2]t~E?~ ȡClo~rd2WXѩS'uuuww[6,2e SCDD[&j-*z O !(Ο?_MM?O k"$Yw OY~3֭ZƶqT' RN_PWg׮O8tARRvCx[P̙;'\z?=;99偁++k%ijǎ:v^㝁F~{֬Y?ޱ"7@D* x @4<8&ùs/z(k{´[TTjoolم 6mC$Y)'_'O|OVq8\A ( 2LqvL HuuEiiii11oI@+JEE.ܵv7<_#GvYR^\/'1ϳgCě;L&><]޿Y55> [YN-[7!!؄=26kkk][ˮe+)MM''H$D2F"I[c9$o 66s&ǎ==Ϝ9?ikY 퉒qǎ{{䔇&Z]0iR_KVdj۫i ޽A uk\|!VQ^Uπ|Jcd2AXM-oq-l6RHVV6tzCYYyD  \.ܻw?+K&T544H51]pXdX>I7'쀟~H.yrϟB@_9)ij*ii)*ki55::JܰؓX[()l.ϩWEE_8."JFFSwzmomf&ށ@?mmU55r]v6W Y֓'YRܑG% E+凢("p?|(LO/BQTCc B+..666Çb-HT!UU"QDR#T" 7pu41iZC[_WIZ "B"iF(F6F%_߮::jZZj7ׇŹŲ())i '?S]|C4֦ITFFJJ(ZT ép8jJTáb?AKiŸAPS#5"B **dmmUccm =[[#ww.], OK+HIMNKI+*$Fnnf....ffmt''O>UR"͘kD_++|m㓗.з=A};Λwŋ ]]̈́L1 h9[]]Rk;~xkN_H()rrv Y6!!aĈ21K$# (+GQvEe)/_zyyI҈@8=6 9* $=$bbbUWxwD9##CF$MMo--?irEd~.~DIzؒW!JNuIIip<8niiua!Je:JH JJ$޺\!?*XꢢJJeP{>~Bv%%2{woCT+oٲ{td.{)bcw(3Aqz:dժa=l^JK;Q|//d8gļIH1eߴi~[ Gzcǭ@P W_D$fs/AKKR lwߴU߾ ݳ[R.`.Y2hٲ!p.oP4hbb;(XaĉWJQ\\YXHREEBzi?7DL*( lDI1]/֨m **jh"ziii4Fi)wodedE 4Jxduɒ&mKSa1N @۫m3fzzaP޽ W/]z}*kkŞƍ~SWWL)E߾͉{`a?eȑ]zZ%@xJe=<,l[[_a4罳gmDRٲ%>22K˥K&1/|Ѣ ;9Its?LfÙ3yB-T L2161612PQQ+{>XMp8OBw T`ضl?~ /CdTϹ_?ݥ{Ry9ŋw߹?;<*wj&{M/BH(IBGPpUWYkY.ek(: !$!!d&l ɤ3Odrd>O"p7K!'=_=[W=qbP 'HLw*F¨Vڌz/cx\41o]qh ?._LnɭVL&Ne0] ggs@/YYt_Z pX,z#̃scp8p.&Y|BOngd(4A֯w;zK$o= C. B~isw/4 CL"Ƨtgo,=xuŊ[wmU =x֪n]˷\i(J,?sFoinw+ȯ[ȰCw^oWN40Qdyᅝ~z4{@edot`|}0Lu^uVn=%  ~hQi$͋$Vi^XQ'X̆ շ2R8`0b1ĉWe08_}uΝ8ba0H$KO'X, `,o~~Z[MM:Ң:,D06t"CEE.@v:,JU(m9,%/duzu]]W}}Bab1sʔ"QQXͽܲVCf&&,\X2uj~?_V{<ފoeʥ YΝkW*-s~ԅ '@'#s8%{?.Tmjۆntw> ~`v|?`0C*5ml,,S&e0)*$%х U*Mp8 80!cѢ Blнϵ1q;vuXDZc79uDYj3`6{::LsGӢA>tf&PPPww6l8SdoeT=H/ţՉwݷnݏpp8{UWχ֣o4_WMk6{ЩHp`ݕe'ﱱF,_[]]꫷);s7I _z˃X< 5o޸!&Qi!2~0eJU܏8tO?ٽϞ]hQuY>mJڍ7Ο?~":*C {?_" ܋/g_|p8j0۶6Ri{w̄Ú&O|qbOWwtr%P ,2W*QBa/U  Hs+PtuYO ^P~&&7,Ǐw;֮TZܔ)$ر^g86/aCuiiFF;p$Ԟ?oX<f#RHXX(HO鮛o-I$|O/I)x0cAh/֭~z[,0JڪUVE#`0vwۀPk4fN@ 6+sA+qQ!bG{g\uP"dd9{ӧ/ps' v~˖:i֮xu=@ ÙP(suʼO>yJմ-[;w @8}-{4c8&\\,2X @ !(vᇦh4|3f?] A$[=ԳgvՂi?e \.͈Db|r׿O# gy<_ޥR$fcݔH$zYYfYYFYYfEEu50`m S]]Zm3]HP(v ϧDL>.3xFquu/1ܠG.W66jB(G4) 5nI$B\>_Vp8_!x衏$?鍊& f׫rUMIbJJ$rڴ|Ԥ]x<.HAtuY/j[[!idтSTž|!7yA"|>'u4x4\ Zmã 55oá^`ŊzyF^_M& #f$A(d=e褙@ p[pAo>6q $dL'NRnzjϞ paIgE,X0~ f޹W:;@yyΒ%,Ryj;N8uJx<ڬY/;ֻB Tl!Ú>S[g,ܸ Czݲ=v=X,榛&_`q{ǎuk@r+D";{׮1y`^{~h:z]$by紻 ; R(={mheeKVwS755.hH"\9嗗pZxࣃ[Z"R9 j}wvժOq$yǁb ʕ3|p@EtwtݸqŒ%/s{;xQبU6A:]2JK/]ɑA)pX F`h4Ѡ4<-XT2R ټ`ptޡ;zVkX< x H +)O`{eEurG"rsy\5+HXc\PmrVupFcG#CP(zd-T:=}ܢi N͕J>~m?_VglieeL ts֭X,~N.H?GmNn۟a`0%K&oP-#Xk^.W56jNjx<6//ϓG"X55lxlV租H̙{nʿ5"Й3#G55f-))TVds:σ9۰ 4т~/=0vxHDB\Mv:l6s]r)Vfdռj"ءCg.Tr-xY<4244t/YnZj@`H$ZZ:&+#ؤI7<'J$܃nl׫OR<\jUUAUUR=*Nm>p~2'@ 5d3L&yrʕ3BFUk XX=x[fNR5E&_s-[N>6Kp3 n] HWOn&ټ3fP[IkkkU"[sj^㏏ױX`طZ~kpti4;s_÷ߞ$b{`?f33cO-=Cs?+:`6\@ml׫m6/P^PEoҤ,"qm.oPQ($.BD$"3PأtnK$O͇h4NpFbL&WR GtuYE),#223 63dq$mkhqx楗vbq ?.zi^`{/t?x>FxWxc)H$wo'mKVsL@-p;m" NXr^gNxi+bYsmٲD?ٳG>Ek3^x=4 mzjwL]zNP(Z_ʿ;I6nkkUN@О΅A5zI KKt>bd"HbnTBWՋ &o_Uyni4vpjێ6"33`D )Ɣ\Wp @H( &L@S:UmJbqeeĉ&d p8zF.W*pd2qʔIJK3JK39p2D"1kaҭT*ý v7o>~2] Qpsx;npu 2 2_nA={]f'y XyyN5çOw9˕2!;3k\_gOç{W[z{n -C `27o>GG=E<02m`pnrMnZVYIb1K"a,!bXYf"-kڌzaDb86;3nHXT$*(?ȘU>u>ዋ&HJK3&L(.[&vSmVب0Eq:TRsҌ@.O^0]]V#z0ɩyy|R +cZUs6OtPSV1yr6\A<܎͛O]9fe=L%0qv}v74\9K.W X,'nxꩅ('u';3 lJ8:58xzCHRpT*Jٜ"(>\ʣ =ZH?\H~/x|D .<VCFx{[_x>DG^]WUWץP ܤIY3gΘQXQܵßh4ZNؑξu~ܶ푩S;ܬmn55iX,ũ-/ϑr5F㝝ffb1yy)S'OΞ0AI *')ڰNOOp Bc}$/_.[re4;i4҂o<:C&{kjze>L&/.]605zΝ?dWU*.[Vl:y>Pg>D$}v߼C端֬O{(nVv~ճd'\015M {>:r+wߌ_htMMFZmK$\.$LY^spҢkm57nh„ $b'2b a֪zc29~?n6rݻltE_VY]]lYp߸?X,wvYJFu)`-ݸ}v;z$/^\V]]UV_ب㱽 i}74qGP.ٟ:Uv~αd5kH$TZjkU jrЀɓEf4Im}=+drl68`F> Re2axI Dbn:fnX. [.PBCpx<.Za0.xn8.&3\X"!xQ.Riq8|<^~>?'bu:',ni[,A"aQR@ `D"1tZ9}[x<HTT$7XDR@ WDBa #ᳳR[5bscD"ͩ-+˔r'LȀ{aHsߍ}t…zs͚ORYsO,/p#_g͒w5~駷|HV++C(p;BȽQ?oD">'g* 0i{h"h xn.Fgc`0b2;de&\ix&vR@ !n&ߴ^?lS #ɥPڌ '4)+9]]'ztah;o޸ /?oφBaD0BT*Jee}.;ޠP[[ `!ͦD&HR!̩@P:-*}ٕ/̙FG*ؾT WdŏؾEKV,ZT:LkjmcâٷaDu~R,O|ꩅR 9s 6yZ 5n++sLrJ EFW/J4v};`߂R/d4VɩfmyAt.r NU()  1`]cs:io6{4<葧)4yoduٜÇnySoYa^~ywEE)(YeZ\:q #a,9Epq]]ض6h^qq2H\ʣ-/BuFVGNt6A|HHĄLsOyAo#`J &Ԥmn> ͙0AU'Np~=n#H|ɗ_ޝ^Ή>%,Y.ٳf`Nvs[[PdǍIKJ$:bGn2]$T2Ɖ8\PH?ƍ^{a"s@ FٵŢ,_.[rp[P(sR?b1gμ7j71 2d@  1`bQ-칰ur1LDpHM$B@RPyW ֥#w/ONڦV[׮.Zmٴx??tád .T 2NN2xgMW(86?_VtRt'ի?o[z8d*3qb;nrUmnwϧM?kt,) p0 vEGR`x {$G ۦ,ʥjbaO!5o|FϿwW*2ڌmmڪWmX@ JJ$@-)\fSjl<؂~߲~xNJeFRi(fPP|=W)}/v 0wvJ fS |q"X<4 ryb l^++s{ѝIpt36jiїeVWW-[V9<kkU>jBQ AM>{`P[20\{ݶMܬHX2 RgSNp7olԒĎKi +O?]{,fʔT1\hm}fؼ<>pmuPE_ ujH$f{-}ټkt"Cͦp8TnpT6:sQ [( >D4r_-ܱX\[Q>vx<ڴi u;yQ mmF„X{^P뒕őJ| $bDDk2mNoĕB2,EKb1 ~H$jkU_}o|Ѝ7{T 2|q8|J@H$asrK$D hJe}pX6'́$%R^N3f&"QtT?H$ڪU';Z(2Y&'ؒFذr$MIm_fK,[yƥz8VSPLɖrg͒f SaZmS(  ƉsOh!$- 6|Fjn F-X 8\.ϧt&й\@@1ȵPΝX|m˖U#$?V[U*+Pi;;-fÇ HZT@T0 x⫯op8x]wMi;ß⒇sOtFc@ Ʈ@-A8jf&;+bgeqrr,PH$f7T]]֮. :9 lڜnn.7;-(PdT[Ȉ>}֬'Y*46jȮ],erʕ3E׌`+j @xNcGݮ]@dK+nibzuA#lGb%+~{ѣի_}IG4``'66j`JM+.۲߹N4]wLVWќ `Q 0 $&ǣo 2Ӈs;@_/@|\.4ܴ4 x4 FzgW.G03 $l@}/@kA:a,`dr*`64tG"1^V ۉ`N| ZO>šC׬oCC$[ǵk/ZT[Y,#AڣG6yrRp|˥=;2HնoܹtsN,fr˔n(.z\(UB P+ Qt`9|W(ƕ+g=A8{Vsn_Ō}rP_h X; Ab  $>yo+׿)4!Gw>iӡ}YYfuuղe#w^rt((0N];vԩ6TlY岑U~q@.Wnxϕ<؂ Əh4q :TT$ԩɝ' Nn9>gټC[1"g,ͦT6 e(,"|ѡg8-}V Mĵ| a24ZD$x<6HbP(Gk΢_77kcv+.Ӧ召A"/kx99Tha~::=fz8#ʣGۍF6eJV;aBp1{@Pmkk3vv-; `'H1&[s .ѥ9FDۤb1S,f  @P N@. E AM&7zNpa0X̄aܬۻZ[ 7)iXft Hj"pl %Qk(,, )Dpijm.OO'r4~ {q߹p8:ZVHe2: VF;#623H ֍@ cBFN)Wnt)٩20ܛ7裣OpѢ]Q12Cm!vaں.x;HR=aE9ݺu?}qDVͽQ<߹Qa pNPS=G WB ™Y?tol*;`l60nz o3qD.jkUN2X^3{2~VI4Pk yA/Qj9g|e6Pi2p¸ Г +5h//6h%<Ӈ@X)޽M{6ihфEJ &L.Gpqj4v0Q`|ZFK"aedOɠd^ֱnݏ[81o1*tNPd4FN0\Fl@P= l@@{B!BQu!օN-ɡ&nf&:bb Uի7? !FٵŢ,_.[rHLQآP[2D"CQwoK++55¶y#\7E[7ҢvS"?ƭL;Y\E謁<`/qy!v9~p@o8&`3 mMf0pr0@miilv/16׫NLO'8, H, c~B@Hc>fS6GpͦrT-a08zׅ Zm3\~OR,aPDZ N^W(cX,GNFcO$pl6^ٜ\ j 1B0*&eAi.nSFC8ިUZ'%%,O&-/a)(';x7\636-2X<'Ovlqٜ Jnybee., e ųĽ&Кarׯ/ٜ?i7-j@>pgu:/2Pl,2}Db0uDbN zw`A-Z]dx@BFD>pCڵw2\X&}fӦC--e*P2[ @ A[qǎ/kyfZ=ff^cxp\.˥t߳+ G(=uС?o UUs玛?|^?0X<Gwn`@-u=2(F`(w` VK]]ǯ>-1׬Yl KNg<q;::yNJex'M-BUV{8z!Ms\;t\.ߥPҒpL2~Kߦ2m۞Hc qA\nD6!D"xFc~(z IDATyډNO )p=iOAFf\~4 C|> hiD">Ha79.>$GL8S@4umFF GDٳrR.Wua*5ml,wg`HQ*ˆcǏ̚%=[*͓,p8RYGfT(L&p, 6+# p' (PL 4GJ`fټVlvs+J͇.܃MEǣxt"0x<* Zd5'Ov?qDg J捛;wԩy#7D` rF7`pixPL&L>.1DD4jXnߞe3gClyFA{da.PSR:OYTjxУ#drtNN}͚=[ ilb XGV?S=dhlԼ]Y,岕+gDTjS-B ;lRI7N?М=^Q`\q2H;g!G J1()INg +{"g2 %$rUGP%RhR4ht 8,`X0IPH|>áX2 t}5j.+q^o(}ZBIRh4F&aD"rfFWP0!0Ҏ)0bHA+(H4[ Da =]h4iUFBaDe\T0[F۷>Tqcun.Lڌ>Fcۖ.HpVĉ\U[jjp"rGV Ba(HX-*fgsƍxTwxI&{j-InӅB:Z' ^F:@gC\Kky+0tt-Gribٳ';N˕^oϧMV0kVܹ$V0= ]#,-;>vV/(7IW[,|>ǣq48J$XNX,fxtfx<}=6z{nibj2&-d4yg?-ZT;(&}fӦC--e*DTlQ`-UD]jǎ;#؜9EKV,ZT:*#.fm/,skd}x衹01I|!V EԴb1-+L$ێvY^p>cSef239YYlxDf#]Fɽ?ry%7&2? Bpm6w8|v;H2ŵZN ' &Hñ+"OXd.&Y, Mal6áT6b ʋv@s:ABlo 'L&J%X,&O\v,$wădBF"oRhãELnP#+G4) 5nx5a~::=(\DOҮEWpS=a歯W媚ESŔHf͒dӦ叵(p_ϧUUTUTU R=@fټ&8F ./nI \X"ϧB!LU\䚐 f^DW$&#/.[T$bh4f6{,7 }& A:9[Ԧ"WOygڵ֯ @ }[?s ٰzڴT`L&?\gWTzPCXVl0Baܳa۶Z^Vti~7áz\Xa<|901; ݑHNO/*dy2YIY; uw/VoAW<+1df#"\\;vNo.W\^dz:NOg0t&3l3d:= =b.)R.^FUioyfOrg=B,O~x,JH,ǣD`Is` -4Baj4ay=NNKÓHDN X,&H|!3pXcK,-Xۀ dm/7=Vo`ԻMNP2HU/@Wցc2YneeLIGHlݺ׮ݿhQ[o-_:t~͚1^ΜQ9Q47k1LI2W&˝3g) |wvǻ@@-HoA 1unʂтŃu2QPh6{@\Xkbؽ|Lnn^ն@@Gns16e%0Wq4= pzl߂ ;tHr;ʥәL2zeKdؖ_[ k=H6n1 ED,H CM\>.1x<:ݓj&Nq8k?v::aop8y #p$HēH'bX Z=/M^Ànd1aj rhDHHGC%q {a0n'N̂R9z}͚-Xlڻ k~OlIK#lP]Y9JBhdYgKG}T4mmك V* c(bDt4k n%*#"f-c=X^/zá lVǣ׊HorI|Psh&@Hs**r*+s1;4BQC 8áxtvdg|+`9~ÏV6yDl8 vmDfSB(*&.(;ZFdr'׺˥g˥ 6:Mq<sO@ e-d }{X+J8ݽ̦MZZeeU˖U%"?ޱyori0#ÇvۻD",\8aٲʙ3 ǎU#l/ں?;z|A k<`k5n # q+啗猵>ۈqzsV-/?/q?4_o4ꫪna1'5$IJ=[&tu2l˗B楗.Fq׿g߹Ǝo59,k{lu]_hGv֭=aڛB19'N' X,h)kJ;0.lM>Om*R0μ\|q>k8'UW3 7@ Y{{oaUWlp:pUIdu8[*FNv2pIgiYaҝ-h,]~+MS]]>NʲѰq,b*eg݅Bax8;4ЊUX[}[u;HY@ HE,,zz_o3?\sa@$i7nkϿ5V- cmG{w<۹xKׯ_nʅ"Oïd׷qG`Lr݃۾N8o!ඵ~Yq OW d`8 ^/]AWJe@\9!q%c8n$.O]vBDQf\N Lrcc` ˗ה9s{Go7ڋݜ$;v7a^4f2|&3q7<U3wW ӞdV )8[ǬsiUUՏݒf[HxL6+wo7o fV^-_{?ZQFbXp(~}[ׯ_u AAT(݃>u˖oq52cj@WFFr<㏿7E;;Wuv 4 E؞$?T4> UnTLV}٬@ĢEG[dè>:ʖT8 0YU_D˲f,ތ{0dʋ>c1Gi>R).EQdJFl6岻4 ='n㨩e!LߟLrT* JRi{0 #If#(F6 LTJVqSU婩Cտjo$ 03h8qJXs3$%IŊ2c(D-.+{ wu]]r=}Q{{7KMLH+5t=馎hP(~m6e{w֞::hmm-W/Oo_ӌÇݿ?ӓ/|x=jVƈ`9?Jiw.ȝr p]ˮiF*f&#@n'R(䩪LFۺC!w(䵢m2~駻(v5tӚeˢMO|/~qMۂ@ 4HE,P~WjC}vʆr7U՟}GyuϞֆ .l[Ii)' E '͛wl~w[׺ae '"lOM3l/ gozpU$l<vw=,I*0hl}*%Y:t(% aUw[ȡ30֟NȠ0m\N,/m6Q~wпd}FbNJ Le%럦ʯNӔizi 65U-1%A>:Xs3,{0̃S$ BSSQ0]7|厎~;ð?vUwusϞmzn+EW^yN]|}j{z== 'I.P<aٲW=` D$kUV-}.<txN`*%촳KBv,$@q64TOOJ1 F}[{upkni1MbYeAlVX42C-8gAW09kaYjlP]e%KqH ] d,FiJQ#rƄy^)y!8UUbG{ϰj@'O>e[>K?sYP?W[?KA-b2<'zw|[B#/9E2mƍyyoyͪU-n\) E *>tןm5֯_v(C =ޱuVuڥK#nTeC)|AUս^sj,vSL[LܪjU CKGJ.XE PaIWE jfd\*ōa (1ps8({<~\Dhih0`L8W}AQUc!D4\ Ӵ#n =uu`SUDP]] CIcc1ʠcbH)wg {o ?'I¦ [?W6ӟ~V9e~< __0VAW"}QGG+Ud{G 3 3q67WABm,MSnL"Zq5Zx5h'-9B<1Jf2BUFؗ-{©b19<2uٿTQt(]lY46\8/緀l C@,+e2U (}90>zOfY1Wyex^d٢YeieA相1HLIDXX\TjH7{M_@uwOEgO0O>^sͅn@ ) ?sΉT`|ѭ[ _~㍫Su) E *7xXaU]w1,PbuϏ~=#;(*0S@EW+iƹre1\X]=gZw Uֵk8GbV&nqub|&#@ cf#j2 V׋ I2JqdBPPEKL(t:)v; F8&Wb"rPo|p03>O٬ 2+ ǗFAxP4,zFh\B3+C\feLnC y+SzzC== X8Z޾%,|^o~;Α+nst |xq{/dqGG#*wO -a,vٲ|JI6`s$;2eIvh(+IEQ[믩GL]] E@4CCgIRJN5|>d͖DZnPMMD s M3H:ڻw'q`JUuhh._^E9&,YЄW?s9QQMOG IDATfflKU|^ebA|^yerq2˓N\$6~/ZEw] :ҳ鬉%xc[}hg>sɇ>b]#_o?|r7@ 0 )a==nmOO{>~Mc Qq<ȫ{6lpYggQNvE3"sd}z*{p]]k/g/mn*w(vF( ˞xw::b.j*w0vwAHnWjFOH\e-֯Bb˅ ͊`f2|&3|:̓[|AjZm(4 yPh<f+Ccc|"M&y9NyI4EQeY? Ap].uB>n(䮪L}} t[WTUɍY)yYcDj gg0F}55p +'bȒC)(IQZIҥy`&\w`< .hy{y|{ݯ}Hy [W:3p뭛8NOi\r6 TWWm=j綾.舵TV-Hj{z &dssxXdٲhO4#,wvx8Lrh.` ?~+#_MEYOwix% '*;Kf@,,+<8v@ԡCi]7 .[ŢŢXtn^UU}j+Ir>d%J%ާFǯ|N%l+PDXK G|^.ɗ03 ^/^K{<4|Pfu3cgm=pPsEM-ϯa&~Fĝ *H$ x'l* e! 4DP$D">(:ɋ{Gnٲ3p_}7QRlgj@ ,ѻy-[vJ,Y~? vE{ZnW_}n[4I&Y+wypb ඵ [ABW'vWm\0r71 %k-{J[崱[VZ !'+˪3qpPN'^a\zm*b6PUgyWimmذζzmcAlBmơC-[vn޼? yz.k&?ï_|mW]u tQlvur"EZZKF*Q;LmXXYҀ%Z-^F6GUtS).i!bi!|:W\՞P yao( 55*O$⫮CƸ(l:-pKce(Ib0N]Nn%1 ð|^߽⮯}ݗ|%F s"q}=izt qtw>-[vo55r7j>۳ E f M3^}u;^xaF\}ׯu۳޽#ߞyfҥ/O~JyP n{oPUu-㶽}QSS͜W(H%醽cVZɴ-PJ*ZUpBEzS|>W]]RLr+,knN;i:6r8Hvafi$#gHkkÆ uvx3Rl(8Ol޼'d/nlڋ|sڠ۲eκ-|S%PLBp{MUUr7s~RlYYHJ#dcYq2K&ٱ%Ynu5$+,+&PTfE+W4UE>bp'IHQIQE7͂t݀`]EъGXqx.a@, C؏ dVNIkpMMUPM:(%0Luwq{@P(45Z=Jwnn;>ZYoA|g?{#}fn&\<~x۶[{NYEv{GA J}P H/+w(U/%EQeeQTE8YTY`aZ 0w:MS t:,\bGe] GMUuI[seYy%%IyZ(e?$Iݴ{x,[Â`i(8yFGssOwȒ%kqNY}PmyH'Ѩ曯Cs!0c۶Ufs 8ʂezR=m> P}l,L(;>O&T'xުl᰷"0pUDJ.'sdKt:Ɉ'•WYTU481 H II6a8caj뺪v́Y{<qH_W7m ݑWv} q,IO Av&ƒ%-{8x}z~MsG0,ʿ֡mzޞI+Vutʫ9<j{z$aEZZ"˖E/;kM)η:0} MƘz,+T*m*/>(iU258 X(Cn+؜H*j>Z&C (/; r,$i1GJ^ q@-qRzo~6\V 4݃>u˖oquW"H-(87x啽O\~U{rk"lCCGyuӦ/]qMk`Ttwuu֡T*aE-P*0'@LImq0'. r1>ΏS).'l"Ind$W,2mmm fjk} eVb$|ETʌc<>gJPj4usXp') 4M(`Xìx&͆;H ܡF}`( h?Gv&ƴBq]7JY== X8Z޾%}ϯ{[6qy9'駻 ar70l|㍃xoWW]C6niξqr_x[> ~APE:BеB-lfaAYKmnFrV=Yˊ`ض%lJ zՁ@ )&Z.'J Ya*責r ,+ʲ.rqtw1Eд p8uCU ]u9(S_x@SS "9Nuhd>/q:˚fri:jLjr)$Ix<4zApPi딦aᠼ^() LŒnm"h( K&5 1 Ѫ BgITd{}wl,_W˗SGӌzg?{#BcY@-qjl~o%haX2mƍɬ> IDATyyoyͪU-nB)sjX${ݧ̴6_PSvCP$_F/|a7_1'ظ{YV-stie ]<ʆ%-91O+gd X+3(ܝe&|\ 8>1;;0ce C@ z< *olSn JOn'kj|-u f;vw桡,z˖ErN;~pP_na<jCXtɒYzdM)KLr|~b~T񱸱1T< fΒ' z,%,+AffméJBgdW+SvZq8f%{ )MOҊa'hf V(`ilqR6+˓뺮n|.ni%/XYŬa+˚ (fpApWӎd߂+Ij>/+. +[xNz<1NIqB|>N .I#O[@ㇷnٺg!/^~U+/-wf={F~39qj 8eDQcm[?H1=[l:Q4ꬂ۹ E,(r9Oz駻zkjş%U]a;f WrˇqsĜ0̃Svw5$˚Xn[[*gV!%*.HTΥR(H$;2KqCxu냵}}RI٬ ,(v+谏n?V,͆p~W0D|--3? 0iZZrh< h0 `ܮ\8G=^Wۿ}d./]{~t} >.ΝGZ Ö,tt֬MbfO$zz,$QWv2HF"0M32~꜖HN&ja[N/DyM3Y1r91ى\NfEXˉ٬`enG ]&o#;t(b) ' j$A?YyE @TUCw7u?;<=# 6\6G.,4b;7A꯽/~ζի"lAsW~~󿈢O]r@C0 lY (2\8 ]b 8ĚqdI.TUO&DeIvt4Lrùl2Ɂ*Dxu5S_ﯩw[[믩f=/ġp.ȥRT*_ *Iǐ$AQmzi;w( RPwֻʂ`asQTwd2Eٖ/mkkimfǧP(<[V747W1n7u_⚳󢢨v֭=aYW;:b1_f޿?ӓO;AnnZg/Ybwi 66)Qia.̷RIRazƤ#;NZOVv>t~}x@ݎF`Y I1 B(j l>/ (f[= pAMSe IanM "4q\BidY3 STE%i"Cnsm&IU PP(Hi(*qxֳjw.B!8$iHմmiuGQ`mIE00lX~d$72M$T*?>g|6+PU ]71l0sæqyAyV VV0议F" (Q$tIIR!%1TWt<~ݻ;޾ /l*K[n`߽nUg=t79>-"I}x7k_4\ݷoTUu(n͸Ͳb;[|Bv;Js`o%s9e'fYV&`9N*|>]>s5/ 15eY$XMn̲,#QTѩ86nvIA C<3 C$ Y&8C ĸ:|8 aeÌ]zɆI2ɦRyHɚUPss<+e8UdLFyt4M/t|0K,k݃pEZm[[Kkj3*$ _'Haeki6,[oT\(wVتe;k"Bڏ#΂R w3K;8 ź z#IBd2 y0LAP4e0'N+MVUu4-JBXUQEv) 1H+'I  l60L$T IB5$ 1YVM IaIQ^r6 iŒ+xG:%I͆{4A C0Nk*l M3A1 e,˲lX]7INLFye%IRA$ 6fƓa60Fx<KtevN ^a]M|NxkT4wxжm485֬Yv饋j6+{- 6Y@ *"3/oZ?;<=# 6\ن&b[YP[Deq/ڼy~׺u6\Pv-DPmiƖ-;x5\xW/^.w3 I"ccyX8 -"ejq+!| ɔ HG.)ߟJd&΄L}}͓APfb:͏Y1aia8N8EٜNmzp xCCz+eS S6)4#/m)p@^jkk@֭o "z賗^x_zE$~E]7޶g֞xI]y9uu3yrU{{ݿ?ӓґ}>xPEp٬P2i>a&|bwRi+*gNѦӼbq6LI,!c_aI?FQ$I8A`va6Q(`6nLn Yq$dmIv"npj04,OZL}zwy%uGij!V)aLرp:c9YEMAPtݐ$UQj$i(n'iNӤew:>n3n#plGXQ"Ezoڹ_Hѱ+ut,[ -W4uݰ2E "3 (? /l˗זE3"6mz}v7߼f*4j΁J"8}?45k_jE"l+M3|塡5\կDyK2Zoݗ$I,Ztĸ-WhisB2Zf518id$74ّ͍pnt4g]55CC!+Bb%wdf2" ,+ ,jaBiyC)a9C|` yAw$Ⅺ8U_|(ngq8N~axp<޻cG$cE-?>{啽gUşNj3,jzeYDE+Xvڣ.,+G;| <)E/zOXZ7) ch$Z^Zfb.'͊ ˉ\w \~hyvz@ bZ(L,+bh!INy@dirW(f! par t4 B0L45iI&K$MSzB,aVO0 Ê9a#=Zӌ-PO&EdH=wW(H$If ituCtU5dY$M׏RvdgU'j.y+0P5ꇷb+{ޣiO/ z!O avן~}w1jjV__Jݐ]EӋDq(kвewO/[0Ny0.Kn.RԢ AnIy>Ͽ>ko0Zihr8 %Igڋ;9kMSPEP`}J4ɁGߟ޿?gψ (ؤQ X,xq¨XV,vg!58N| $I+8k8\vlVTգbqSׄ0VE1 ZJgUU]Ul2rOy^urO%IV4IRdYWUM5]7A5MC6$'"`A~_7A`Af '#@+Me(n'N$ 0sb8l6E\v0 `].;,i|^z b0l@"{Ă:G fΫ{7oq}=;z.$R]tQRfDQw8l6U*󌌌$OS!>p Dbkd#ILߜ þd򲁹X6TpvƟ>\Nvl<9/Xfj]BZT0 ɤ_JU9%%K%EO$;|啽c'~{VZ('~gֆrt{G_|q #wfNhhܭ85 OQryUQU5 04 V(!J:>t0@(IUWD|᰷jk}H}SSϷm끸S(6@iss[3aYV|6;4eժĚZg%AB@zġC)0I 46Z[:;ۚBX4aNF&[oH4mb6xb .`ZPig`C"3k66ݎ.!GwR]HMڙ*n&LހDRH'5MRs9Q YA) ,+cXAU]7@4'Af`8 cQ04M(q26Îaq\.;a W$nzv&kNNӔ,k6 1U 2aLڮ 6i jmdRSP(I<)NlsPOR{NNqAQ6x_zi8p0q%IG[K x^y|~be|^ˇy$y$\vˑeg(Y(<>]#I&x7ݵk ŋ-/_ ƍm|ӗ^ʖ" &"3㝝m֭/_?>T>޾:V^nݺrbA$9#O0OGXY9S`F?}/ hϿ`ٽ7"0?A>sy|ewrI mJo KQAQR@@AOpu=u AwvAA*Pz@Idf~eI>df}y'y!/l֭o\ }OhUa;CO?M@V.Bk[HnYY}YYͥKjq؇q)3 AQ4 ݾFWyy]s!>\.'˅Ҥ8NffjWN R+ go(,lJ?_ԈqYoXfyNX?\B (-Miitu g۔ʼniM&kMmYtq57jTFi0ĩ >F&gB,m^/'p*SxHyftHqWtzqPϏs$)j.BH p0(_5E|>n7)r x|Rg%I6t]-7[4nrwE>]vwѽ?T*8!$ 9A$'H_OM8%p[LqxpxKjuR" r\.rBTe2B!'>>}˭YvZb\9 } e*S*$!m6ŋŵ.WW[fX6$2 i$),/o׊p[m M]{.tԄ;8p'7n}]7np"RV.ڒX_UeLFrIiaM3 4"I&5 tpT.xb1_"IZEz&--AS%&cw: MKSg2 S]m-+3pq %l,l|!*qر'h hsp"C'~v]Z]84~ju8ڠYX#IIoJ A;\>ˉHIr!S4lnX\ ^Kӌ!IOQ%I}R~hdDO3 yguEqPILD">~IsU*ERP,xaI%0$IB{'p\ |>?a?V/Y,.OUU9+gEݾqEO, p.BFU(DA3r8\.R*36^EBrz*WB!B\Dk@(r8\Vt%ő.9^tzvju˄n׃J%H@**bD/*P"\ԩ_9 $IT?^_qxiyy=IKS!F4_{&UU?>s1:n\ֻ.81˅}\J4iر[~uݻO];mĜ.ۑH GC^X\ltb2Yuuv̓MQ M38KG|孯wTT#:nB p *bV1d0JLTۺ8**bq B Vjk:JU*%cm6{,;.\.W j ^Cl#IlnO"IiEQM3V~'[< 08+~?S Ð$EGv҇!$pBr\_BR#(Q P~J 8|Cp8Gxf|>?8^/Iӈ lVδ=9\B6>c-Br&Wt9* U$TvNPV(tA&8_l"e W$11RNL+ )=l=~՞>]j!ɳf]4jTk=lwСTxmC-r_yBD"ҥ7qǨgr޼.c͚I]].@&bq]XS\\c4֕UW77e(iiiF~?]Ue)(A !b\A +b\.RIIl}jjVDG]^x-\ө4E'xdþC448I281߉CfcceWA (ŏw=4M#-8dDNpCahgfu8E4v8!q?IK~?0hNJsjIr @#ppWrp+K0 2 A\.?^,`\OI~?xs88#Hrf֦" [ĆJ$ҬR(x1LqBB!gr8RiSURp8JBԔ#8]& Ő/ޏV7Evݤz8Ca)nfx$-p5NT6+eRb1_.m\$RL& y2M )(:q_~)khpG?g5IYY0:t/N:Tr&M;wpς+*))}z0ܹswp8:C``7n͛HhCmm^A̜9s׮]l5SO=gL~u]?H$B3m#oCƇ^ӈ lYJ5iҤ[67ڰ \'٦e˖WTTp8M ä,[,///tNjܰ`0q<h>+p~ i .CQ4Bipp[]k[HT*SVvr:4fv7I~N$)Sv\.é# ym0z+s7|Eށg׮=ny]fѣ nχ=[ jժzhҤI*jk׮2Æ :u,˿ٳgٳgojΝF!RV\ٱxQ:i=U)***zWoT.uPO??_R^^hϒ z衆_,ׁU4}Sfp2 SYYC_ $ ԑu5k?|뮻9ydEE̙3#؆VnÎI:ڶ Z[uh@n5jZްaCZZڙ3gx8pl6ZjΜ9G dM3mڴjPii1c4B(.7B^h]_G9Q+ Pj xȚŋ/]To2l6zIMT4No}!D_31Ϗۼ$B'̪T!Mh6>^;;^h~?m64~:v8LE E \6,F.'dEq)D hRIU(z컳)Z[^/\>SpxB;^v:=4lal67BMkYniu8<8$i;R!Bqd2@H2' \J%r2HO&Y# #@DzX\j/ èM6l qq.f7O4?E;sR*Lq'Ht]@-]fҤ&d_~~w|4!!A"Z/hjkk0~I~k֬/V\[o=c:nŊW׮]{׿;999&iӦMpdP|| :4M~z~„ &Lx嗟~.uP%K<&L ݻÇ#^{sl ԁU4}Sfؖt/ԩS[ȺUk4oq׮]l>n8Ny6rv|O!ֶdZݪ{GXy晄Cɓ'4wYdIǾWׯfS(K4bX,#B(S@g [WQcNG1Jz+7aBv4˻>ZTdo>ux؞g$Y+gΜցOriIr}>v^{<>Kgi!)r:}!d3z<$ϊx|>EQ4 B C{'^(JQGQ ^/C4A S "`gEDS+M#NQ@; a(dیaR4#+8]L&=250*Al*BH"OOel*BHCލ U۽8jfs㎇Yi)hË.W&@փo$h C9B!J jZMQz} Kܱ@ )^ |.5R@wcϟyj/hI>"3S Eѿv駟)>~%']}cM^t5ói7/ꪧw:z8B틼B9A644%}>߲ejuBB²e|>0_~Baw؁lll{zҥKnwqq1M裏<JŸ.tx&%%? t[nMKKST?<0xݻwgff&$$y<3#{'J#/?x^(or'|2)))>>~ܹͭ4FZѣ%FO 0?0;;;&&^`'h4&` _޽{qbqtPݻwСbXծ_G_ mO{L='t?9b<Z?$Iv7fggǯ_~ǎ))) b͚5x,r`ZrLvlHA5I8 BL[?cƌ:u*><]rry®gݳgObbbCC0?322G6"o}sLBQ믿-F}СF԰3vVl#G&G~_ȐdcƌQ.Ewvkw-ۡc,0NoFsG߸Lև$t9G=)@ZA3x㍱cFd5lذ %vX,>y$(8l}}=Ũv -#l>턭+5s}۶ml`02e?b{-̟?FZ;D"7Ɠ(+hsOyJ\ՈkƏp\uW]k^3hꜜUYYHK[òeKGNNHknGg?ڷk_~x ef>>|SF=3j3W_ώɛfz;~[h㿼/\kݺ/߲ {>(gϩ/l3w!ӧٿ j_ubq->GxHM-ls;Wv~*f{޽ngI;m^zi?xs3. }/dvUK[Ou yo6Myڴ;;~G?';țoƟb_~yj'ӧϟ.+3pydWe8 oc^އoC7M3flpӦo{;;{Nk/~9 |@דJK\a׏>|Lm9Naٞ{[(vɗ_~X,'׬Y3k֬W_}uڴi_ f̘!J|Atqy]wod+Vؼy3AH$8V.\ڼyۇ ToԩS/^gkhh3gN\\~Ӡk׮m#F,[lժU֭4h;?r㏟}W_}EĢE{7]+l$i2Ыe2LH{cǎ}{EfddL֭{wG믿w}kt0gΜ}sYpaG_ؠ{M q<Z?R4li?k׮Eq}ђ%Ky䑸n~z{X,]n~A}Ԏ״>} }o/X@׏7n5k``_ewL$=mg=/£>_J5"lS͑?B3VH}7|sѧN7o^-Go{QAeZzܹsڦM{/7+.¸-B؄ӧw}G7n狊f̘C?N nЎܷև$_pG=vdcXX :4ha֬YZ+̝;x{IMMenjjjVXqUWF3pe6Y} !$ɢ?cN`$###??~?~Bׯ_?}tPAAtmdZcccU*UhH mb >Ծohk=gΜzl=#(矿]vرץݛͮkX;c |/l mQ@E~li\3VI˗/{;v{ŽaWo6s5z` /{NdeeZ* t;mw1Af̘e˖Q3c2턍jysm(v۽[?@&;eZSЩ x7cM7ك2SЧ_% E ϗH7U@ B]??=K⧴G&[K(k{\.o4K\>fIb>&YtblKep2?m#5\6P50@EI$>iGElRٴ_q\.[QSk;H ٽX*xpx/^),4_**2=[Di4ܤ~IÇd]]nW=[e2YBrD\#F .н ſb|߾e=6F#lWh>{r= ,8vXDXLӱK*ʘÇ+k׮>|??ZJOOtD"6mڧ~w^6 .tx"(5+11!Ğ222ص7 ;عs?pСɓ'Ϝ9sڴix~ 10`eh4s΍3]ĉ?\ j#1pB`:ޜ'D{u8Y6tPŸN(r]i#w9Dur+R^>hѢ-[9Ns޽fͺꫯ5k֬]vŊl{hyII ;R/^O8p zH*B+O ``DoF_ ^ynh46W aM2E#agϞꫯ~l"(au#[Ɠht׹6{Ƃ>JRi_o 믿}h rg̘lQϴ_ئlysDPG!~#GO鳍 @۴,v@Y,Ɗj BH(䥥4Hdb @w4baE'N׷߾e2thrWw8=oAAKJJ ]R"̟?0d||ÇmPM'|>裩Sh4.{E[y^ٳg?C1b[Ѝ][b%nnf7QUUCmܸqܸqk׮]du]DEIJ2믿~WWV66o|5װ5$)H|~s-ukpY6Z}x'rwqǮ]Nz#dZ,^6'avLD\\\op\p8۶m=dٳgM6MfGK${w555͕!HJJJC6}wA"aL`;w>}|oiQT(Ⱶ_p#[f} &gOϞ=n۰a/&c+j֬Yw}wNNu]ׯ_rDjSْ-*Ӫ8AOqwo߾=4.ҁCkk`|y2ǍO2%6"sa)?ܹ*Ӌ.'9Lmf6#C;}tԖ7\`{BAh4Ԅ224X_:t_#Gv#I[^ο9ӊN5}~s̙7oa%B<)2h3fW·z̙3k֬7{M7566]vЍwޱZ 8qbժUs̉0;`fɒ% .D-]TW#WܹsW^}̙3gd4iRSS.dzhѢ67رc~3<3w o6[T3~s`m;mcNMEyC=-?~|>۸i.ih۷Z{ aO/留n%'LxaU}_]ݻJJ^8u-]zԩC}0~͛]b=s/ 6;{Ս7n?͛?^*naz{oN|j^0ixz;3qFѿusUF\}"/F/%RSSW^t:WB)R(F^f_LLL\\ŋ[|iii ;;{Ϟ=xɆstG}vq/dU+' ;!>>>//}ӠkޓJF4yBaaa!;O?eZdzlٲDR9{F0_|Nkhh`mC(ى^G~&b3V{g/ɮ~Q:6'77/^>¨N7Kk/jzhhNsMneK_z ,j7n9ŷDOZk&YǍlǢߎXtAD"QZZիǏw2Q7YPE1 ׿U,l6vNFZUy&Fv3 }5LG9a2p0@#NwTr-oQhNyy}~5?_L&ksKF?޶oA<{گLK$W_~oĉ e:#K۱e?WU%$ILs**صozyyΚzC>yM{{mG8[XXvs`aszh).NS&۷?4$###h ;3m۶?%RGm'ڷo_RR>lݺuNRQݦ#mP^= GN'о}}SFTQ#.Fx}71wѣGW^]VVs6o/M}Ɲ2eZ޶m[GUUz!s(i&))f„cƤ_sMZ-g##@kOW Hp\Td..6/\!I!b33,mNNbfvuy;Euuzdsjj{]^_{n'hrZ*jVqqr@Eĭ2%sԩo81 C`?۷o'x.6z<{>Rh9A Ð$TT4_c tk5*tm98<$kL"saaGi4Lf,X063S3p^*vuy;6muuZW0m:Gu^WZ Wqqr!nȔx BԵ@{@-= A& 4in=4,0c.nlr Œ%K :ۊ+\.ן tVnӗAM"h> t8TAM>0aBW>ӋAnJ8$)؈YM:t.GF6c=^ t-WSc;%aPm ݖ #s>TO/e6[/\pڒsqqMEE0|>7=]Lmjj//o0몪,&Z]mlxHR)zJS  ڸ8Y|ÁZ -''~I[|_{?{hx@oBT~~?Q}7tuq@{ίO8`Zajue0n_m^W稩&΁8*DpPț={t||o_G\k/^))1/6gɄ괴 <^~v篮LFc}yyKE#BVLNjC$ qBQ$@@-AZg/_7 !DĂch힂sN(*2y<$Aee{ w23u 7! ݙXƆj2٬V~jꪩjZRI)sT5R)c-x߾_i (-mlzTTdhi1qqɱу748Zh#8BSo0ďe0ĥ 2K [zD3L_ݻO?Xhĉ9=qAQtIIM~~)18H 0 T][H=O.?~ȑ~DQ4WFEih;{̙3g*M&+0< ;H!+/o(/oPKO eg'B6G qFmBZ-r4r9EgdhGDY\yV+ l4nBH qC̙Wefj LH"*,4qz;B&&㲳'LN35 [zL8g5w5ȑw q =jnvh fz)!) B!D$%vEAwѣŕ>_e?FUvI!ayw^>7`@[{?쿠uԦ`<aA q<遼1XB< 3ʩS&OեQm>qo}}]~B8jtU:Cmh++81))ONMMc8Hj =w̙JB8} MV6>^%Y6@/c6n\Y#oyp'A0 WSSs g1}o+*C1+3221Q)ZebbNTeez)j6B2<b3K^f92UWՊDZjBS ~:jŸ\ѩӦ KKSgfjpڨFoܸ1_qӟvn1ZLCsMxR2'vOĜ9sn.EAkflm1 -鉙3GQuȯ!VXSv!sUqC'23a/D$IϜ^36V(zNhz}Vѷ" <Ǐ_|ՃM˅~UUV]mKhJV(t:UB\W%$(r󟢧[,fETtMF&=]$%® l/_)4f^S]m0g#|@䑉 5 J8(VS)pr7  IDAT$* 5DI!NLNfeiq@m~1:s9S[YXh"IJ egrr $ nBl,׾}?X~~ELL4d®.Z_Gߟ۸3g.5ܻ#RX.VSc30f!$ZZjq5F;k>qk,;[wЊ9lϑ4/km&`$$(Qٷu*+&SOi4JՅb7qJyy0.Lmf` Jh+]P[Rb..6Ԕ\PB"#CƷ fc>~\ffϾz[sA-}SmҥM[Yو/J7SRSRt||-l6[/W Mfa qV677)7_V6;['𺺤@ >ؼ;u\(y ƎLIuOuty`ɓOi(f>4le^LGO Vq9WxȾz9h;q;E| ƽwb5m='(WVtJB)^$?>a>xAhmII]ih#hoaZzSQD[QPQSvB<'11&996)).%%`OIKII_-EE悂"Saauqrsr8IMBl!TSc?pwߝ=z&%^w]ر^ ]?Ty"!lS<LV|᧼>0iEEC`S6q\ZHJH/$eeu[ڵ8B9sٰaVlfLf2YM&lث,uuv6W.t**5NR剉1 r>!Wr:o֭O eQӕ8̥TXh:g4W())8-Ny(Т/;BH ।gei |{HďSʧLy!L4p͚+ah"hىD`$IUUYp2ZO4WT 8v'3U"F,]V6+K;`@:.+ $I.Ԛ8R)ܴ+DlB#F<Դ#R:S |=JZzl~D86-MmlBS~%˞.ҩՐ @/!f9c.;VrD$Ii4#:bDkk핕&Z]m1p^(u:Ub2!A'$IWC .vjjR^ګzd\,!A*jy@$_„1)RPtfЙCo= KNk[ z[qUC|+NrrJ0 Q.{)7o677iҤA "h,مd8M65NB):NDϝ<~ĉ#G<'5U/77)7С֗f[ub6[,VZYr2|>7.Nmu:eBW>-80qlX\gMLTuUeUuut|NsOeeB8= AQZB]h|ҥƪJKEECUUHzUbbLRR^׫bbc][+yBMIIͅ .IB%&Oh]]^k@-x_-?}̙J'I8P]]R-Aٸɠi.TJU4N1< ?BNkjlQt>ro1%rZ;OkZ@4^d-/ǗzuʂDBJG<,ـڒ 5 NX,HMM`jiijDE EEEӧ/?_r\Njj8P@X ڃ$zGuV]miZ[kPZZ-g;OB\U5"6XrD"jxxl)CX@3G h|qlpr.qcF?ΥK*ǁ4FlzhFl6]0[-ղ-EJEVjU孴Wq ac7fx[] T(j:_^~x?NDlFͦ㶷nuh.?Ԕ$avu5LMxݶvwmҀH5kz}~cYRIVJE+RIV )V˪M>jY47?[RIVZM+ե%\VeZUCž F❂zb2l L;7]RO>Y_Pf3~p\L 1A[h-(#?Yo_nu-spgcܾݭ :Y\lZIժRXYїr~yY_]-T**֫8%Z!|bM&;=K AmS8nۭ BTREVӊETeRQŽ0.b]4 ݶm B n5V*kJ%YpM%y0ẁ,-ݶipvZ-4?o(Ғ^.VZ‹3 8GݵnZ۽Fì{ͦETy|vyY_Zʟ9/Dlղi knovw^av:&L+KK:pWVJE[YSm/NٳK åE1;gk5Vt=)txz`{C~czwn8fol4hN'WW gϖ^AiyaaҴ[$h>-1n;9ک %I(ZM+rY]ZeVca̓6N4wvFì׍ fmVӖ++%}u5#88"+8͏g\K3 󵚶t`\.+7x|9ۃbÍG'iE.tsyO ?0 6⟥./foiA0noh5pJ_}xŐW.7G-Taپre*j2K.^]t\%<O!U,H!$ t:{+U 5Fݵ 4u0 Y~2BR:u*v4i_<\SSj "p35vMN,1u=A)9T7hX^, e&}f1&'LKj\f /g5^p݀19YMQڋx|s- A sYku:vt:Niu:vt:vaNm#TT}RQeRQeTR*ZUK%%I/gQ4jVZvaRoaZVn2HJ-/뵚MW*Z < ,!3\)@dpa!hnn;fmw:ku:-udY('LJJrJJ$ r |E摈f⿩q/az]kcVxKK/.jڢ/d߼ىQ:\]-P8Ծ+:'@z}:bPovBQrY-bQ)eZiK%Tyg7h^7Z-^7[-ղi|1fj5RQ+VeeyY/ZMVU -FiVn6Vj6-J1fe BTRU:TE&r(W*j]"ݮBӞizpyJ~qyYǜL*vw(:j p{G/{6zܹq-֪pW~饝]1iIK.]ZEX-ܭE"]=X_d.b8QhF!q-cl4NeZ-LCS?imew:-J$Im<"5|\V A1\tّ/]cS1d .߈}d҅B1f0ԭHVg4 Bje%O˔Svm90\ ^~Ey!cLs/^\:{oůmizn;.w:6v:N;Œ|>GK2ҹRI歴Zz, Qew:vi)HZɰݶ 5V*ZJT;@ -<8piɛNij٭8> Ž%qB!W($.?ox)cLӓmnt̊>ݶm^7hAi m{C^N#RT ^*s0Mƍe(4K;A0`j/ҲgϖΝ+-< |BcN훐@%|媢~p{HNU!A p:1;KWNp*:U,ʅLm2|RIAcLs)ŋKkkU6DowT}Jv,ciZ2ܣLO/g2E?e؃-ܭ^?;K eg KB;vݵ][ *xEyҿLRJJJzn`Q# PO Ꮹf3z;@<ަ+5jmM| )c#}n?I9J 04'LZ6ݵ:ݶM>? Xk56>-ժV*,0ow]knl4^m\ּzh1QL?TumVpSէǖiz7nƫ\gb&h{=4u Z樥Z-qhNǙ{.M`Ź^Ề/͉_DA)Fݮ'3n'%)MlZ?Z{_\^ֱP @q|B\ǥ(FAI4FSANQpxjs7ΎO'OGSۃW4ZfGEn6f[-1ib/.I 'G{l_Rmc?M{Za=ǿiw & #|c5$ NfEXHlۧ.Ckψ)X*)Z_X\V 岢i.S[8,ˣa >@@?ʾi+S%ܬִ,F8ZG*NŢT?AiR3.Zv""^N? D/g}ʺ7(vf'Ftru@YKΝ+]\~x0Mƍ֤qJ&Rign#  .9r+çeT3n|5ɼVWVela8~}w}>mll4ihI^F#AH/^\xq~tհrH0.$hN5MwǏct2^0iS֠8qT)#>:/2 ~6;pAN q+\in wO6dscl(FaA̎M u:Nیk`_x3lL> T3.|O(}W?/, =* 6U!`!A p]l=/ϙ',k6uM%Eaww(8" i(0n*fb$IpLJA>kwO^܏,4PX(Ч7W(CU65MZԫb8lZnۭjm#RRI.RITbQ)RITTZ$>~Mپre1]QƎlqdIA׮5È1VitK8y Z貺ZM-ˋttxt4]ZA(nR!ŗ˛[ءYU(Qdq^O#]у"4fYc}l3Mf^ϵmRqSUQU*QI:h4-("!_ 됡ɥ%MszpGQ4Y]6Z-kwtNilۧRI-rY)bQ.rY+Eu[R-_|qղc&?_zI$ ~l_f1&'Lik.-]Pf3~jD ڝeyHs~`Ym{׶ǣYO1ld .>^L3Mײxvٛ^ً/XiS҂%{D׳tJP2 S BjQG0{z5cLӒ!u$H㏒$ yܩΎP,*< _|G7&H N !=t4uݽGqoD(Nh)y|JE]8-(O*_FNzE}Ol唻JЊbH,Re$Ů)EgUUR*exj"4x9hxQDrdIDQժ b W4nm۳m߶}۶ϯ*A0M,YYERQQDM˪$ˢ5geyUE1w%a9$;;zpTdéJ|lͦݛR`]||]*<$G۵j*޵k0B 0AǴ'2⎡L;{{j q~bJL#e6M׶}goEteqe!fL& 0"Q|Kh[8؍i}~X.Hs.[[h$ކ˙M[LQp22~n㫁SS(<ŃKK<$GXlve34M:B5<}{:9d3칱^__߼ىQ:\]-=;Ν;Wz+Veea-,-!ȶ=}ұ=6Mq6 6'0mJ%e1!SEETUъc$?pq|/Trae킷ڶ7]ʲ(GLHNYEevv Q!b u$ضoY@׏o;O > r91pp.'jZ6>4eYAӲ,*e2iEs9S~*r]aNtvnvێ]:ӱ;g0؋jT*ŢJJr+bQs |Q'a)n8=0q˕ pTAtv7)饝]˔_|&!A pfJ=o1UY:uisѪ1;a͟vA0%'5=%K,"pM tޱ@_P.ߡˇ5p$ ѳ $(Jafy6FݶiN25.g8ɜ01:8n˓ݮCy\ d0 rP2Ll68 I6Ѡw^sJtiҷkkUP /܊n4GszΞ->&h5a.1pdi˃F&Ƒfe +ӸA˲aOrwQaZ]t ٦$iYs9QҊ"rQLk^RlFӤL&-ˢ,o)h( xLӥuL3Mײ<~0|۲4%Yj̎0 AڛmƘ VV[^*⢟/p/~ _UEy>H|!X40Nn <'8J6IxZM*x}Z[qt`8ma]7t x Os[Ofs4jviP-nHcTRi!k|nl1O .zv_˖*Np޸њ)}CZMq/  ۷n+^ڱ,1iGҥ}&h)$hx 8InŤ%͓m?5ZoY煞70AN)Ɍ'S#i&30//sL.'rFӲĒ: -C}|?nhp86|]fE')5+ˢ#Κ&r"n` "0eA0mq 뺡R~]7U~O,rFRd.'҉E餦e3 @g2iU_)):I )M锪Xء5nٶOm{sۗ WU%EC׳]/y^hG]l6[;#b8i{< ~Vf/.I ǎiz7n΍nzڥKK5NӒHX>xj*ԗdY:J w,ˍaL  r&sg<["Fz0PE-Cpáe4,8~FpGÕq`Wt:t:(" +Nt=Nd9Mi c{[M5Mײ|sm{:kԃ$ UzA(8syZ[K>`:bwvx5/ĥZb-ŧ*9g+WYzNjqs^TE?_xf?[[h$ŋK@v핯\Uc1y-m#A pٶ~?p݀{GQÈjbi)y^~H3Ã`hT*(R6+H@( ٬iL&-Y$)M (hf-OK0\G48~- "rp8dm۟~oH0 AEQDУ=]ϊb:($Iiu;2t.QIӊ">-Dl^^֊"tj-;!WLuTP`nIWѠ*%s¯Z%(<(o+(o1េrYMNo n.xwN%q' ׯﮯ'}/)ť*>]'Svs}Jieϟ/w$ha3`/CtÑiH K{qi $i( EAU\n/vI#?LxJ~ia>Qd^&;b``/G!e^"R|>L&UU7v _J٬@;b\Nk8i( , '"`6nUkض?{=w0:OP.q d B*YAtnFQT*L&4-H$l"дl2_]AHlV8'^ϥ\'0M׶}Ƿm0\i۶=ǟ{qeY@h(eEzcIDѨu:n;;ePȕJJ( 'W(Ţ\*ŢBAUWPi{sR|'gcc^xTO˂p47ZnfvGMi(K}\=j889~ps |k|>'VD"vt+WvS4<{_כo| }?? mF yBzk3!!}(AͦY f1H$A '<Dtcg;1fڶ?# 1+=.T*(H!Eݱ+SI4"AؓW h^7MҦ$Ma"^eQ&"ERg$5J@H&R}e(ʜˉԴl:RU{? f!b ptL_BPHVHcF#SrIg Ii:+sPrW׳\"(KkMɄ,Ki_f7nu 㺔t)K]S\qt:)˒IUV2Uq6W}|/a$.OƓ6fa1빥%R<[hKw76׮576W6]kZӴZ…ZϞ|R}|O,q'/Я]k^X(_P[[}qL~6A(k-q0/sh4yJU󔔹mo0 4\pؓɄ,`N:=p˻H'4e.)IXh].xoD0ƨ v))d*G3 nzG(L&4MI4i8e| k:8L&hPdy7EAH2i-]ƑVoׂt݀@?!k>J0h1<7nALӥm{nԏu(KݹZ\Y5-;銚uUuf3&Q::v]vNixWRŢR, PK%PEP m Nns"8ҫ~^.Ԟzj-| t&AW>/T),86<F-a5R(Mpu ]d MU鬪*%IES,4AHQi-%Yio&L׳a/#+ \-X>qAmN@@DlN:w8E#:Ha\:~?SԼb'&(iIhIjs]6逡\&IY.Z?G^~si0\STKg iC|~qЗg\~Ӌ+s%ZM_^˗/WUDlqEy/_|WwDsw_䷌1   1lR2x|3~6֥WƘuCվuC>>`p^Ȳ|  1hqF9Ac`YP2+.X+S,cxr|G ICG,94] 77۳7;bMMjt)eN2fϪ[>8$j5n~?0 u (6n8~m{^8m{|c8ZӲf369zCt='IB6+/z6DQ]IF}$ ]NtNOѤN\ڗU1  r|XET=w?HcfN#Z1fh4.*|e9NIDATN`8>c4=煣& ,9N'eYbJ;\ٌ(D1ELRL*˰T% MA$(b2<Q.]4m4 NJ"jzTZ~jUTRIմJEE,T +:~o^!s _' _d=Lh^[`|!a3Zdã pdcl8'_y4<caQ2UU&IfTu!˙L&iL& ,f2)M B:Ȳ($I8wt\h>vNۏ=ť/ r( w܉yzq…h4qH$^voP?3gFWJrUm%)^ƍE-dM%}GcFшw弻aV6HZ,>f}=.&ߤW6Ig[<1F@eA 8Rt3mg,V&~lW:cd]d2Ap𷑿oDT*#JPu+v14MJ$tlVXʶ BJw^-Fˋ~'ϘU JyW,١>W69LsSx6o,ˋy\8^3i>A| n8.0}0b C &ߔ_9nxeBM&So54wRŪ*jcѱX+/j<ޚJ6TRUEX2h,}B!4!5v2q0B/N)~ڞ|O7&݋N;? hj*𻢪R2d3]\|SAHɲw^eFpR( a* AE~jYA0Aa7`IY(OR&e*e2)Y(3YYj}UQL&($ |3ݡ:9WtdhqŽ@Y+p7^r{Mx%Mq/~.$㵣1Y$,4:NL2zpHd2H$dY/Oo#b~C{o8zޠsy2 7[D,b&SޟTjGbSIW2 Io+'eWjnW88924Ud=P/e8xTpbwhQ/ˋxk/+F٤G (e2iYΤ(eD"1pEHQ4F$`H0p?|?i Nkv+__B_>^x!~_?[nկg??W^pA!~뷮\>}cS77O|b}}}eeӟ//nllL$/|j}CZ]]'?t~3 >tݟ0 ?+_F|;? 0 oxCG>}̛7o^)w(S?NfVJ\)۟\ũ$_g`]D*mG[,bElfBxc+\p<9(ƧrEQ&3WR m "L$Ͻuq\.wxu 0ķ^p׼5}k'ow^D"~}ETǜn<8ߨT*(5 xLGٛ$xnfR}ٝۤ0dYH3dYCTp.AHr;n6pyDIYG è߿Z󾿯 |ì rB^wCjC\7^;`t(WlFϋBT*52L$ ށt:L&H$h4ROT*1DaxN1a"#]t/np㍧q[kRll4[Tt0ͤN DeKX]U| F9X&3?b5%Ͽ}?o}~=2{^۶_yf4};?O}S??ԃajpm<ӷn݊ƍ>xee1L o}CѬt:wn1foRh;Ffn@ĈhtݾQ|O,p]|ز _2~ïOEaj%i\̹}6WDzg@T5v}&{i-bܼyOO~~C__3VWW?}#k_Fyo.EAկ~o|cټyU*]__,W.Pon׫w|Yw|ݾp8[9k l˦EۄEͯdy^_6nPm'F`|?KRvA&q]ӟ4c̲ OO_ ArN箞>/}Kn3<қg}~ x#?#o}[6|MRTR[я~T??{?9 >5__8Aeg}7hHWWGo޼?+IGz{;S?Sogoݺſۿ^%ɷ-c}{'~ǜn'kGqjslll\paG }̻F(_|>7.'p b i새->?* -;~IENDB`XQilla-2.3.4/docs/simple-api/classATDoubleOrDerived__inherit__graph.map0000644001725400016040000000101613273140076023021 00000000000000 XQilla-2.3.4/docs/simple-api/Item_8hpp__incl.md50000644001725400016040000000004013273140074016232 00000000000000a4ed29ad9dba0498b9fd588e5848785fXQilla-2.3.4/docs/simple-api/ATNotationOrDerived_8hpp__incl.png0000644001725400016040000012710613273140075021275 00000000000000PNG  IHDR\@bKGD IDATxy8øPXE_PAQō:`-6lB;j(A@wp8ĉQ%%%YYYp#C STT:5E_PAQEEOgΜщRPPӓ ;vtÇ:::MZٳ ݺ{6440:[-|O>A .]J8{saVSSIaaŅK555VBBBZZZdee߼yy޽ .X R߿?wkTT/{_6*p͛7޽|؟WBBBBBBLL 00ȑ#uuu}iJ666qQQQWW} gΜ;t嵵CCC?~xҥw:u]dddRRRKP`ʔ)jjj#F(((!D"qĈAAA?ܼo>333"xɎիWcdnZr}]l 0Ẻܽ{WCCϝ;yp__߈Γ挌{ٳ۝{{E۞={9s`6gΜo߾y/˻s#L.((Xfѣrss%))I=KS/Zp!a p8*J:uT>>ԥK֮]+--=zh77;wxY?aX~~𬬬UVikkKJJΘ1gZZZ5557+))X# bffֹPAA/ǚ_zk׮oR|nnx֩MPSSBEEŸqG񳎪:{񣅅E x8//ٳGuN&Ž= p;{|=n"=T*p-O.,,trr#i&gglqqq..#GbV]]M/`wرcMMM0llzzzgΜ:ujeŶYAhYYY3gΤ(**za999 裲?;\WW788x̘1ƍ,T?}W^)**wxm1zE)=eeeWUUUQQdddݓ?rss;v\Z[[1 #Hd2~ŮziG6lsNUUյkݥwjhh}mjjj:ׯ}}}322~֣Fssstta755=y7ܹE… ?7ÇgϞEDD#8S`ڴi.Ǝ+++[XXfW&&&׮]wǵk׆Z@ ̟?O<ŋBBB7??ҥKuuu}}}SSS;wM,SN>Z]]-##K$ ;{zz_HKK:us%$$dʕ8nΜ9nnn==wsvnp@"N|`ooN7->EN ((hbbҗ^@Qmذ/ "/((AwO<vi߯~h4"99>.#..9^<{ D7ncjj* N70|oϞ-JM9s"$ NP/47_iAӚIIy&̟4{XiiaڢH~RYjk^L(|??H PA*+^"79L4I~PSs 77'? EӣGU7SSpV͓G NE?+W/_~TUU/..5V[{С"1 KE/_DE]q|+hkC E` -yyO󟴵IaX(ґHGN߿VEe&v7(^ 99.]*+)yM hh(lQtȫ/IJ \9wٲBBC!(:}r#hi56b`0YXu4E!*ڙ37x8<8X<1;An₺J&&s`Hܞx;$$v:22bCƠ(red^:99E&/Z2}?.{E' kk̦[`!C(rokzYAaCCyL>+XH$JFFѣoMٸqqP@Q(߾\RzS,-54E:2YET|};u(\OWys+GG̛7@B\̟H$jx{µF~ "RiIMQJ6mOnѢ{ASok龾RRy~ "[z:)NffMӦ325 wgbj`09)K/҃oN22JJ>|?j%>Ákyxww+8"{(+{w+->B]`X}8(?q0"xa//KgrqE?(,{b❳go~EEe ss5b .t8p)-]DVEEVBnĉC (=yR~+KK-[B(.*v+ï޻fء&3nR0&NMI-߶-}:z/xkTԵ;mm$ՀS5QCΧ=ĉ J`E۷__x05ktmlf ś6lXhc3c۶4kK ":@QDۚ,^< ʊEF:m "m11ףdd4寿O\u(ٳ7 *+kCC]l*TD:O[Z:CF3YWN0,4tpqeg;x0gݺ@"\]̫W]]uu}[{s^*TDIxyϜYYRjCCEq|7YGg˗sr6,X0 !T+**Y88:8 $>#11׏߳v\8P\۶ݽ:0 vrdՐ|奷|,/Οߎ=D\\Ec7nT^}FD?<| 2(Dž w:_[۴r\w/[ۻBpp>ANNL^ܢ=lg`0u/?-]3e"M "ŋ"xkLvde,Yb\"6v[RQgC޿w[uukjPgAU>;|l^x,#tÇ8.77ðϟa[芡aK5N$Db~ '>"x`#8L…Dɓ328I?%''W__aXBB¸qNRCBB555 m eggO:U@@@FFsVPPؙ3gb6l0$gС>>>$ 04dȐ}*((n۶~UTTFۭ/sӛ0aB<wY%%% @ ü\\\, ?Hа|r)))yyyooﶶ_OL&1bȐ!˖-kh6sқ?~W{{>n\2fqq{vg#)~~F/?fhG<ËoݚF&SPgAg˖-sttСCo߾M¤Ҫ/\ //a؏'/yxx0 3F[XX{lڴi~~~4 0[[ƈ ì0 mnn nnnFR aaa4_YYG ,--1 kqq$DhqqqT*F;;;]]W^M4iǎ| -8p@YYѣG3f{Q9,Xŋ%%%cƌ 0ccsuMխ߻?9S۴)yhFS)_>ǢX__///}ݹCLLLEӧ МE]]]M0:77WUUFaVZZJ:::~e]]@8x`}}=JmjjP(]h%%%ܵ4=zGvmL&6,??F۷F<ciiicƌ[laiiiceeeqz?خ0 +**h knMyQ [YPU O8dL]p;<|9LGbbb-_VUUAESSx@MM-::D"r۷oeddwWy]XX05aⅅ%%%sνvWdSSS0lx%KjkkݧO(S3s^Bʱc_+))Y,'aL0glWρ?lg@/svjo'3GᄢH"Q\X߇mܸENNÇ;BkkOii'srr ~1T%%%LJRSRR\\\LLLEP:?6lHJJh ÈDbzzzrr} :ǿ~W~:ʾ}w}s0 { Ml#Ʈ|ۻol_[[;#]{j *f͚c㓙ǜ??iooimm 0)33̬/,Yyʲ2Ǐ20[`s;::@׾]g;;;Yt˗/{yO[[L&ܹ@zǏn?~cOO1'ڵk+**޽e{{{'lDDķozǦ~ FĉↆtI"%%%]]]N=NJJRTT0aBfffGGG׾,X=RTEEM6UHPWW )))##~_O[VVVTTֶ?z|$[N>: IDAT#GZf =@?>Yk]9re 7n0zw\45؜nHLt?~8,$99cǎeC۷gϞE_MM}+++ j!O~͊b&ĮçQoiiPA?~:**jʕ]r8d#%%|yD[[\lYI$[W)( A۷o;;;ϛ7uSDDm@ﱩlO FF:{W;0g R(T§II#PaE5| oNyyO/ػa LF^8:zTD=^^۷?~uج(Wfr'MMEYLm1- uة(>}=>pq0龾LM`!CCB$$z#u>ch8KuAajm^ƝFp[nijj2}-[2eĉLv 6lpi}w##RR©yxأ͛7ӗATTUUB#G67*!Iv~~0\@> 'D/_rr6 2#0hzQ$(]^JJu_y󹚚psҀPGSS__O}|dDqjj+>l: @~MqǎGΜY ̧O߼ZY=zի=$/[6|,05=o߅˵ |Yg0]݉EE,Ђ: 02DxEjՙaDwX: `9i`pH@h1//k݁%"y8o>8ep<Ǐۗ5@bѢwoӧaa||Yku땾VNJEeڵ}Y`ŢXP4,x^˱cXHccoqEEM+V¡ S3gV޹FGg+p8'O:K" \QlllI^x*: `!hi}BFVӛXT䫯|y[̷op80BB++k/8ſjo'i:`+V^:v޼ >#VN-uBOk/P'#GJرɂ{ޠ8k[^=[g$<0 ờѣ$cQ'#S 7M:&tv2D`ҙMX>!*7&Md"|uJ~XԉЩSCC[GUq|i :`{,TTW׼o% '^":%0Њf41Q2DpPP9̰aơC7V)}{@e§OW(*ڤ:ɉ޾,88okQ'boZZc׮Ai'X(ܙ:v s{2,QTTu"p+V̹|yc[i [1hUSph.,DQ-~m&8?vm[Cc }uu'N<^tL?7Vԉ~~F!!yeeQg }QP{dO>}4,/>NNsҐ{?A//w@Yb;ws5Djr-5Q7&ׯll:@FZ0??5.?gD9 wgz?pq^: `K]vt3Xmvtز%uj QP'BOBB0:!k_Q'b? C.{mSŭu虾?zlhǣ`DƥK[[I (Exzˋoru~P~tDF^]r{OS~KGݩ9sµ7Dt8/--?ŋe6(ǗfLVYXj']yO ^^]##.Zt3X 7̜H$kllCdEL:Udk;N+Wjk#?l*8`r^ё;㰓32:`'ȊbffiMͷ+ Lޝ?ҥ CȈx^qc" qT5`Zdf6n8 jj,,B"#8`u??D쇛kFU `>iS JC4E':Hzt C/\XtLq؛ָ B""p8޽JPgMQ<{֬YrHzAP`m:wJJ2qTOO;2`(/Ə8{Ϟ QglAQj:L[" PjtFF_:YD p>|uRnn.CCw ͛/Ǟ=LDOobn ҄|} õXKbr]UAAx@3>[谈_NΆSGde8:jlۖN&J?ec3cdtAcvQ|cY{"Q戈lYRJС"p>nn.`k_4NĢp{X޼Ygՠw.wgTdr::W||ԉ%KԲ>|h008TZZ:2ez@@ܝzԢH22!5`1a7sKEE9{x袎3)+]~aK=۲ŤBAbjQ|aI0Zii ʨ ^gϺ&{ymk#Nr׮?yӧoԢDJJhdyfv ʕDI䲳p8p˗'>Kݭ\9w`BT3Ƽُ̓G0cFQC=)J{SZZc##yyQa%K+77|ڏp"Q#.5'瑝ݩ6qPrq#**:` (/_~0l„aL Ǐ?۟RWu2.45HHbF&S/:ikXSQic? yyΜQYu3bUU2eOT[[2exT #\IJ ͘1ufPRXA13;VQud.)''~Az5ŋNL$wK/mmm/^P8ꊔp3aS;:5jԏGrt _X|O ཽ ֮_zرCQ(1c _o&'3#窪̎ˋ'&큄4 cR( 0ikkҷ53CQ4=;yr,% ɉ1#~m^4TL?&fE02a|vL:#ĬocZ\| b\\uϟY ,%&]SgwKdj|*.dʲe.=Bcc;j( L[[1UC-Qu,W蔔0nZdq0cxQljjki鐖YEP==<rIqJ8n.+lؐP:OE0Ch4ggάTVCo73N>uu,ffH_@ܙuܽӧ|2޽srr˞a8]0~7ݻQga*8YPIVFġCËWBDLLlӦM{TFFŋ;}_]0;Vz{-O,TuW 3)BQd9117.G45: &%%o߾=ʕ+ ,lhvvԩSddd:kgmm ??3g0lذg%H>>>C!Hp(%%!C۷/66VAAATTt۶mΟ?7zn}uM5 usʕ1cƈݻrff㥥{؟_OߘO wJHrwJvD>}-fcxQ~ #BǏ Ӧ %(Nb}}Jrttt111O677S(ΚdaaQWW!t&LUUUhhn_|YWWG Kzeee1czoϋ"Fp}|K]6jǏ6ÇO)a08hnn;%,S7;ׯUUU;wPQQ/^EGG7677H$q&x po޼o0@ t{axaaaIIܹs]՗ݏdee1 ϯfر&Le#C8ᐔt' !tL11ȫb"`?~""CBB6nH"''{oǧĉ999(%%y6V___RG[[[TjJJJ]]I]]]__w?*ð/^Ы62є2'&Ʒo-恢8d?Y9j$Rk֬IHH;>>?~뽑ր Ú233zܿbɒ%7o,++3008~/p ;w@ vaXDDķoXwڵwݲe}/xO_۱뢣l}uDGFf{wSVv}zj/LAedd:::vܩ $$zMF:tHBBb'N744sO%$$D$...))wZ+?{3a„̎}us@}[9rԚ5kZ[[{/b@)v+cdM{fO܆:`(BA7;;mF_v ؀EY:|;3YVS[4zodUAt]u1>vsP_Fu9LM7lHp[(BN;:z1khhqr0 uDDD ++  ˨0·sA9J#)N-',JZZ:44/QNR}| gE)`SPg EAYYd7 QF1/QUz1c)sWfv[2g|P9ձn*,c/?S23Xl C{]hj]{uڋ>_^h쨵65ÇK3`޿5kwh2##xf3?v8ǥK239xЊ*"J->`'OwﶸsgƍH[{\NΆ'=zTw۶A??ϙ3+%%O~܄:΀>\BWwbT5A@Q͛6%kND叐H;{"ɫ|5yyZgbZ\{EV?3g>~<:ǯlmC9[^=yR:`(/E@wvSAD<}Bq_L -s)ooy󦿧GsgwB RRBn -NNdq8%%H8YLP9A^ޓ' $%%ܹMPTa[EEACPC֭*[Οȩw3|DB]]9ZݫmF <(lmӦ"Qcr\ܭ3vy{'iiukcv CPbII] 7M j<ߏƍz-[Ρ20,-yoEo߅r@ ĉuv03z@+YY1ԹAQQ:,<<ŋ#޼:cM624tYBBѣ 鱱7TX@Qdo+ IDATΜ`FeY>|z̆A٦My._ۿeK/s kVU?G 0t}{ 5Aڵ;vdVT|HZZu".|ÿ>|]C:CkVW7 LF(*Jkj*љ: HpƲ޹ák!'ŋ6ZAE™mZ~SS9u\jձAOk u0(=D:/g7$5#cML y<oe5h\d5\޾4-ٻccor`\k]+I$fFIij*B (ѣ{f,pCC˶mFFyrsw2gIvXwqs [ Bj!;o$F/8vEW1k\CRRji~pmJǸqP;v,.*$##dIcuC I>|u~24Tm8E6s7+ Y16nL47Wzu3:RPrʤ$ʯs۽;vԡy']NM:Kx"QcL(M9Su57308u]|Cq2mq[9sC[{oJ]xdk;sժy7&޸Q:K88̪VT u0(go6@_W>?f?AA6iiJJ2 ~Ŋ9Wnӛ~}qXD__yӯ_4FI͚p($((G__yڴ`MMmɶaJJ>VV,5;ПhZFZ0hT^ȗ b8.W[~V~݆@Qdn`EEtt< ]e M.(ҥ2-= %;G^\\NwtيmvE=hÇLRUE9[{;y۶t;S 7" p8͛[mmgnڔhy:T?IJ EG<{Vu;~,n(>|q#ʫ/^|46>|g~bh0㜜&&GG?ƍ|ң˨;55`vvE PÇN($FpaOn&&NXsmQ3-WqYO<|Jr]Y~ 6}t.\x \Mljjsuٹ3sŊ#FH"ׯoYD2-,B>e{Smlf^='KKK8l"8~h b=ZoSS= <3~ߵҥ d2u mқzf#ɮ1oްCSq8ŋQE?)+{1]53;&//|bG&eeyddΙ7%F#pǎ)(H-[.+i+*[ꂃ&N,NHWǮ_ᡛZZZDMzo޼ %,_Y]݀:T_rGEtŐqW[޽U0(,֭Wwef55 =w۸q!MK|拶ɁCE]y{yYDGGIJJ(#A@?AQdiypss[V9s3_3fٰa9<`'O?rԩbGD59 (׬cZw-,B&OtiØ1L0 -,05=m[:[,abf7`pKKׯ˿9@7PYב#'Νˌ5v` +V̉^+]p6!IIAA6ii,(x:ѯmdh+++Yr6l "|RڵLhBnڔrh}[E~NaᦩSG۟Z:˗&ԡzႂl ut`KKI$ AQdQ!!y C UQKKSdZ(gYiiPٟؕQ:QoycbV5]3XX}+,#n@K}V[pÇTS#t뼼'?"rb٣GUeeŜEc]݉~];wށÆ'QQΖ'i!8?%''>sbj=}}eYȊBC E,Qch/>5Z[ ge5J} FF^%BN# 2*..E0~~c}6$ΛVV]]!0jq㆙OC,-7oNmllG>e9oZ5sUW7,YBP<sE0DF::?,,XkwM>:/a_}Jc97&G姌pqqee=@(,'* uCqnn,;P4~!HŋQQ0o[m3fvq9k3,=[|c?PYKkk]\yEeŋy<0giy)Ù 9uu\oٛ7ٝbxe9eo$5}ϐ(V区7k))aN~b%VVLx$5O<߽:ԉt*/kW,=3g0N(2Vdc3A媾M(*&&.ؔtG"QLM"J*44|4}|"YmRII1kII877עE((,$3;@7k-e+P"*B6=*JR$KJʚ3f^?cΌYΘg9s_KF-s92rzёYl`)0pJtOcᵢdc&O6&@)!!(O?2ŌJ!ee7ozr>iGK7~agoxc#׊cF, 巉,`0Ľ{0"釜˗s>0 ~~""LҒ31Qk;-FOl[IȾ}.g䃃A q'NHE. 8 ( Ǝ58P-9wNFF*o/1k?n5xL8yiva hwᄒ~]d?x0vvv8xcT O\;EE+WM=~iNJ*ynΝK7ăa hǟiFl_}|'T{%%pɔrx44P޺!ꎎ&˖Y pU`FV<~ĪE.n6-a 1BqÇk]]FZ7ntdŚ^k''*@{N0mʕa wٻvZ_ #Ghh0;GXm۴kזxPNw~=?llt$߇>̒c*+oJۺusS{uAt8߾}^v-{h|n'ȦM/J-ʊ_h䣇?sࡒ6VPWH7@cΟOlH\\\ΉOs11aN ggg X? \AA2<|#mNJ?|x4NM26V۶mچ 74mmҥW?S3)/il\`H,.pv3ǚSmB @ "#{@Zlre8mc$WPhyIDfpN5J_򊚚ݳ8&# #)͜C%{8kj[Bs32PxàhhyF?>au:=~;HO [m[ץzx Ϝ&(6Ot,7a4<#&&۷RxmۦÓk <]"%p„<-׮ቀX[WT9(S'M2auuM+WcaÑ#??1`ׯ_,X 2 :@`QQÇgd0Qݸujj#"xxŊq6m =z[@^thN5pJ=:[ Uddd믞ֺsδiJKK?| azTVVVVVćSG ^+W\ ojAz & hGo2 LF7<?|8B#EG8zԍۓ!//gϞz㛚\u! zzz˫2@EDCHȂǏM;;(FzUփLȑBWNJH{Qe/^|T(OaFpܽ{WMMpU}}:~ ###IIIx|޽{bbb***mR\\\TT ]|˗/Vp.\022RPPسgϕ+WtttT*uݺuJJJ֭R666h(zuu5h4YYjkkϟ///A 2 fffy$IHHHZZ+IGͰ@ "<<Ȩ_~nٲESSSAAa޼y]G ĉ^Y(gx>ĉw!!QT>2TTVs'lؽt:#-^|jUwvvvvvؼy<==˕޼y ș3gJKK߿3|QWW'$$po߾~ ȅ \Ҿdĉ={VVVư"ͭ.$$RWWw@ee% {9sׯ_333-,,֯_}I&!-%%eaa HZZHCC sε-((8p֭[+AwtzEDն U߿}Ŋv)JgIGͤ*sYfԜ;wPUU~cc̬Cw>=22ի#מ8Sss ۞MM&j0E)/v GZu+MUu͋nEXSSnbbuV􎱱qhhh[K.17---4ŋhaAfΜY]]02L*P(eeehqqqfffiii eڵ7n$H555wttDlJTTLn|mmC@:-IHH|dgIbWP ǷATTZÇm 3Fʕ$MM?/І7:h?=k}+S }%--:mEw`so K,_SXXhf_nz- 988 <844Y__OReeeV144"$D"uF)**RQQAA|bnn...0ess󄄄I&~Atuud2۷o할3jIFk…L$urWtU@UUk##ӧ(m"#''L|t8СbbB+W^UzdYY!Ct""P(== s(IIM&n)))9qℝzGMM"rr'ojjrqqYn]zzɓ'ћ]ٌ~3 mx<1::://bܸqqqq QTRR"h55JPbbbN>}ڵxC?~NN n5wU>>}t: VPW{wՐ!:fq#} iӡCRS!>v&9\7ݐ^[:o^1#[nZ-[?*j$MRA߯/))9|7o'p1Lݽ{w[--- ora!ĄΟ_cjUD`m.8-^JCCNAE IDATs^>aAR73Y:$zQM$tx9 4}m-"##;$hc>1v߷o]<=kCC_rX[ػfA˧BBD@K vLw57SOUN997nt*BVVVIIÇoZZZ6662ImHlDd hNnSahhئMHXZĬnm;9ʥ^uWߺ·\cB_FQBBHvGIDGG99 [hiiݷ  SL9x`{FRĘhmm|}SV:'f%H8 I\e ChXq oc UVcnŅCA~Ϸo̱M#'TVM*Ad׮]/^HJJܶm۱ctH S[._\WWwرngbٲe퓁%CBB~&lժU7ntwwgr".,\xʕa"\8/;6w` #F/KnVTVQY[ F¯_MFFwAU=EYfJJJZYYݽ{Ω-ٹsntt4h!J1bzsdqqq4!æ_---yyynb؇;ЖXrTUDEFpvAGVǽ:..JA~ԛFxh`nJb 9C1EA^h`uh[d_?x{oͯgD"`p!U]bv 55 gϾX|A }Q >\S[p0+.KAAS||¹G8vQuuCff W{gʊa'\f8#UU[~F"zX=RRR^^^܄w}utg<+aaSrsL02RQUۊ|F_??˷!11o֬!lPUUҫ+P]`xiVnBzk'M2]|XX2gS rh\rrg[ц( XE99?kA&D3fG$$DpHD">_uyzfUc]qmm#)r ;bbBUr81޶G]jٲK;-:4ũ6;3zE1QnHNwrb?3%%Ezi8;[{%$|rv>)99Çܸv;N))QSS͗/Q=XE%%rLZߓHD[Um|QQ6'ˈzѫ99S͎kapNف#^̥!QTQ)-ApޞDBSMA &>sزeO82X WTTYRR͍!QTSiii#_wr2(#[BB/)@qLj IwJ$(r%%&&3gc|\mO xi:""|n4a,>?!e{I$qFUr%N/Z4{3f`YXܟBڵBBJ/m qqmtk ۷O_`D4HaϞF܅Ch|Օ?  " (-56Và;r^1{k ̱mmmmmm̺<8/..k! ~jyL}}eg!nn¯@ q& +m3Hf#m>Xq%6v-ǝÇ }6!=SQQ!yy_0苷6~]8i{r_s'-mDbii1ww'OƮ9r$bץ:uj^XXB5?~u#3bޏu?92u0 ; GWܹ&ZZrU͌ƾ}.YY;[[8y+v݃L<,,+119a**2v͸p!˙jJJ@TނQ$9ͷЖenjKGs\GVUtid/^1cpdbb2T~'GGMv? fs) 54`O-+-3Ɛ%%ձY˖*HOSH{{3g?i6~vFD" CZZdj##Sܬa$_A$i?YY߷ݻm;v(*tu=5jԞ৕D Q[[nƌv{& K%jRR"_TױffW,{ĆBKKzϟu..\Pa>KDm=aɓ[ЃUnիlltg>IBDA -, O(jdgc7KKV O5J_[[ lC Ӯ00PFqNr@ҹsOhх۷{Z}(WWorz=th8S E33Oʱ|𽡡F6># CLm/_npws'}]S Kf;!,Y2zʰg_mzVny?<'`jd% jj))Q2YG^}#--:a@.MS%:: ~~_ozuMͷ\a8n7Nڶ-%%Ev{(7gk  *`jx}55RGGȵko\]a?!N7r1~C!! 7mv;s&~ӦH7oް nfE!!&4؃ߣF)}Y}={($AzC<()Iy{&%m]kbg}s-}/ɫVER`u"z(bFTӧ>sTYYmiimO3'[[l x<) }\ӷ1멑#w<[ZZkiaPXG-wѣnϞ^^CV!0F\JhKp8:Ur m 䈎}M.^|9t>1b^d䊴sϰ~!: bp8^F]`m55e1Kdg_AR .  '*Ho  (}΁vWTTki\3*j/'YOKqڵXRF=޾-iEHoY*66>b ԃi"Νt\%NG౓DH@ԠŋGEG =XQP9 k>8BBăg'%凇fG oبaaȩ_ZZZdf~8P߿פ~6͂{ =uN9ׁ˵6mea% zV7^KcMM;w|I$i +Xba|ح[1W2D;#kX x`GkiiMO5?~цRRcrOx<Ԇ3rlmф njlM6s搥KC&]D8rݻK^ޅVqqA ^*%'Ё߿ײ>S|?p.-NI \d@4#/¼mo Á>((,azkY ^6oɊ=YBx>TTdm7ro gpmۦ^mv׬oݺHDWъ, c\R]Я84JJR11ù {PS8S@#jy˰d}}eg!nn "B w5*F"=uS]]Xi\ݻ>GLqC<+$7ؘiߛ7)CĹ55~5~^S\\U_k]:b6Ok 䰰u)..~x{=X)-,-e_4&rJNNԩycydV NL۪̋ q.  K=47Sr’_,=cyih㵮u+m͚v1vkjStiq }[~,#d"+cc{tD*cLL4dE ]+`oo|gJJʕlm <7z0kŊ+]_ m5SSMhF`o? .. 7E!!|w>̚8ѤjcD"̘a;AAYYիMno g6n0l9,li||)y$%Euy3n13W^E}E[[_0@~ 7А ŒRܖ%f C&O6۠ǎ457ԨQb.Сý^.XÃ-Lf_7ꚘcjВkJ!c8th))'Ol2lϔ$H/QR&w,KZX@/AEJJ&.?6vц,,zzd`9岴ԹqcŻw_2\ݹsFofQ""+}#%-cH$nj1,RRR͢Q|(f϶jN &&;vLnۉe.9~e \cao>ʕeƵk-Xp 'p޼3 u^ I| /QI_*ݻmv>EW1C_oԔc^4y&b )mnjo+&fڼS ?]K~=~pYLl&"Bv?pq9)TRRH 4J= x({Ӧ[~5]f}X-7!!"JC>\kjm7 -1}\*a[vw;z wJHc KV s'J%߿g}aɦ08+)(|RQQU/YYFʜ9SRdeE9RԠ+ǽ|@짫xwEoS5gӿ5yJU"ZD!!fW(&O6MJʯa?vsJzv b0=IJsrJJ޶/_nsD}˖;m򺔘BګW?~t~i:: QQ+j2XZZFCliimݚJ EE``X02y-%>~,30P؛7 -G` )x@^^&Q8+{mǎEEF~5Ιs@ffꕔe~.C Hffɺu:/XH =g#**dg7 &ݼyxꫫX1ϟ"q9EEEVGHI5y&ڼVuDmm>}*y3={ Fvw8ANGjjN=v ,#S(]xF—/#Յ3E{G{/[v-JJҼŒ/SKKۢ*ü#m0qssvU⃛?hu_̞=իV5--g9fn3f?q֮mkKNoL:|;fzCW(n3EY fRQr|)ب 4k\\\h4'aaf'V\ƍS?r^^^9Z=t{:3KNJOLwAKRSxz=իM))r S mmET(t+2cIHDEZ3 ~*0/Cƌ1Ff ×TׯRR `lv˗gͲ$pmNAZfPҊĄ8 琞GFQX8u)%4ۙbzzqmmرFب@ d|Νn~kk8c߉ .;ٳD"Lb'iEO= j nfϟb b|uKHHZNwՉ:8O8ʴ"4Jy{?A ~;wN&hɒѢ$?ij|<6ÂG^^7Z2f0dp8333i (fͲ<}:>(h yBQQRJJI_33K||0S7n|k9qFQ{ѣ>|;u\EJJJCyeTZSH$cee@E *J\hRU(/O!ccѣ-TU:[iin>V]}{€͛L9ʼLllښzl$ggggggeUUUӫGB+***((S(ϟ?v,̅/\-oQQNX!;;;;;@ !>>ǏQDdS ,Xp~ٲKݶۏݼy<==˕޼yܻw̙3~iaa~zwĉϞ=ۺuqfffVVСCU__/,,|鲲3~…+W Bf~ʄ.\۷0ϟ?Յ\\\Μ9d(l&MB$::ZJJA4AΝkkk[PP9p[Wfffh/퇀񣲲wl3U2]wU]]M"8PSSCMѺ>sLt(h/^Y:P(IHHP(knܸD"߿K ھ⣢dr{%u@@ӧOmϭmϟ?{{{oذA0{{ Uu;n*++?}AGG={tF'lDLLґk"Q[ۘ[jc$̐YtiNNnp8goo!XOOcdd4}jǿ~Z]]}щxxcttt^^ŸqPD  .((PSSk%&&׮]j#F˗/ڼR?d&"ׯ_1b:O Q̞=47"^ A  PL6 \zɓ'1113flذ833!88}-M6e+Wl\ Í?֭[uuu D"1=uTj[ZZ(PSSӖ-[fe xɡCH$[[P------DruuKvv͛N ֯_lٲfC 3g򲲲RT4!9rdkk=<}t.X1\2K`ٻ`8ڠLn!$D~_£^6LV VV:@ء… K,ܽ{WMMpU}}:~ ###IIIxtIɿ{TTTكެ(++>}Kq8܅ sii@J]nuTÇx<@dee߿?sss%hE@HH(44… wxbhhh۶qXXXPP_qq񀀀p6[,hEEE___4@xQ:Ǐdݻ޲]to6ܰIuA ~~לO2)eo/H(psYYٍ7^b3g(**FEE޿uu_xx cR^"QQFs\qhhh[K.17]8WAtԩS {fۓ31Su~ڏAH2x~ϟ?GFv&SIz2KKv pqmLLL0\Oƹ?ٳg7oތn{ܫ=gtks3-۷o,+TUUx٬]0:|m {(~x>d6,?(tUSS{}[-0 W{q5jԖ-[ЗΝctjpssz={zܘ0;婪8ޮ` ڡ &7Yߍf22b,szyyɮ^MM-RWUVGs4R۟};ҟ ø؅ [.::<66Ecp> ɢE~~~JJJ>>>AAA=߿9s/^+**u3`ժU7ntwwgqEHHȯ_L:tf`qb+}QQWפٳܮ ̝{fXJppph:qD}Oq%=Eq e:::666")\UVVŹ nLII7oD8pMFڣ6|ᛅ%//xT#$$$* @FI%&~fͪ9wasΩVTTőd_yn,4d{\Q4\'-틊ꔔB^ x0SEeuK ::x6dXbGsgXr).!꬐K^4㇗]ogH$p8ooۘJnD u]EEFнl:nnQ]]CUKL5 c==c)s!^Z!#3Eԩ?>z4a7vHv4e0aЗν \x4#g!Q$>>v~~||b8pc#HwN[jk;{Q֞:ZLLhɒK!|2s`mmǟpƖkT*-?̄[JJo+66kÆIA~~"B  3Ed**T*.OQQɓϮ]{"ida‚@ `&FhL> uuV0'77|/_~Y^mZxQD'7ovm.~Xyœ^^:4;1q (C7 _Fܞ,65Q;~P:`P))!yO;;[b@ݭ[i\Ylj0(^6,Rrrڴ㵵.-~d3,3A >}8*,ˤ ?~A/ 3iiӎ^":ޘ׺ KQ$M}oJHW00Px_}:qp84yyyDGk] }(L10@uoJx&u~OII%%)%P7RG޳`yeeص.-67.a۷Ekse !E?dE+*vNÏ:<4tW@ G1[66v݋Zf?d%v!46R""^<~T/mmy^@ vSF_ӦOL9RSmv^> S .-׮9qI}}8eei^@ kFʪqF}5ZޤPѦRZZK&k55 .$$h4Wס>>v@ E&L8a GR[I<鈞| ;A >L4Mbgr3$ASS- ߿ל><<h6L5jOxx޷F#O#uiIIٳ/’%7ntrwxB:QԔ?3f MHŠ?'fw@ }'xkޣߙ<y B,Z,*t"zVzj]kUhxke쩰BP"dǰbp31!_f޹vwGdy;UTTT7N}0n;fdܭ{5̢HVw};~ڹ@o>[deevhRH_z4>"sb/ᇢڑ*S(lF;A!=cCׇSI*80qM{'N@7M8O1rL55-lAo=WZZlٴ]Νz/ɚ]wJ-gvJt鴣G͜iF;a>8g=#cg-.b{\3޽Ĭ-@a_)"wXvk_;;N!dA!}+W7N8BrVKVwӗf3r>7uh֊R>՝mKPD

    ++s??rr\q\ "'ߢ/Hr$w$E6 e2 !rΏFU--v՝FUh&km[Z_A9$DttV{{=Vd psw-\1R kiwѣ*`u4 U9`Zk _~]X_D8i,77+ua$vtSSKd~~Y``Mg\]A#R)Pbff4R,dcRd2VS֯c0T= lm9+WCKKGHȉfT. ~b9yyz-4G%$CC}ӻѧ2q:u$Bo;aee"Qw25 DZ#Gn0o_DI}Xccc[c$47&fɖï FOlڴ]]##ViA##[Kub2fJHW+~4]xJњ5sߒ֝GDTJ }|@DKg*X1+ "W.(RBC}o嚰X 1eBn|td۷/50Tס'+*b8ΰuފ2øSEЌvn%:+{{eo< &N48ѐ˝0iM6m+-//ojj߯E}U~ 荠T^^xb_sڪwz"AAAA&""b*++ zǏ3+W(~hY Fy&Iaaa&&&/rub?ON7t>(*?z9˥9.9s+P[[ۓfΜ9z-~}}˗/ϟ?/HTWWwixB?%4Sw77o P]\.믿֐/r`bbMBB¨ZNN˱cՅrt_Ooo';;;Xt钇Ggg'BH*[YYxxTJw}cAAARRexx2.׽ ]\\.\d*777q)}5RsL!f333ϝ;wgffX,uCð\uЏke޼yÊSLx===*{Z ryJJa0zץx캺\[[[tPK,QtKbbR]{xhPX,izzzSgϦMJJJH2eJvv6iyybVuQXLD{{\.W=44jPTdzjF?Q=4rv*E]t$r9U$I^|Me"ѻU <<<233geein[0 NxH͛cbb.]t֭ׯS!!!{ %%%'OڸqF;v rap5Db&L2@ Xz5UA}$--^uGGg'I2**+22!gee3F,jkkݻ󫪪v=Օy̙6Ϳʝ;wVVV>|p߾}aaauަNx@Аw )eӦMhp= ={y>k֬^$srrlllr$""bҤI[n?޳gb1?I/_vuueٞ@e+VvAJ$IR*.XĄH){ffH)**qի}hJ7{6lبh5Mp'''.ե2Q.?S$U d)))nnnͣ.=Sy<^\\\OO9PHcGXeftz`\>233L"edd & EEEEEƂ 7bԤ'V 07h3uqc\Jkq )} (} (} (}JkIENDB`XQilla-2.3.4/docs/simple-api/Timezone_8hpp__dep__incl.png0000644001725400016040000010157613273140076020236 00000000000000PNG  IHDRAbKGD IDATxyxSU8{g^B" kQfg@t\FE2ˈ .:WF@R M=i~\tI<>>iܜ&{@ z`@$ V@$ V@$ V0C=D5kx߿CӧO߼yH$ @D4SL/Bjzɒ%6B  th! B W=PȆ:ApJrw}=̝;w֭{Y`ٳ?#{vmv{vB7_1sLrS6_3g}]Ӊ{[m6}8qbѢElBȑ#w}mo\wL `;yCmڴѣ~#ќY!BQXXjii: i*PM6iիWڵ !o̞={ØLz-ZΜ9WۻƍJŋ?n;ùŵk]S trVYY!rɔ)œ'D!_׍7>4mڴi/Fٳg߾}>={,_|ƍ?0ź-Zԫm+cƌ R4s̕+W3f,Zo>qȑڃ/VW+</p=obmD#"c@Ȝ;Wm" iӆDvqw߿?tTJ{ٽ\xǥtgD%&VV6Wu###g洶t:`km]7Ȟbt:-339339++MLJr9I)\.'339.nwi֬ZZ܁o; +.sI+S4ܠJ4Wd2Ax<^:Y;O?#|Gh4wK~fs'a2utl6w@>L"|Or9ii \.kzFԎ#;&SNgh,l_T&21!Dp$>T_ HpzAN&WAVV^_1X! n:yyYYԞxV^^f^^fW/'5YY) F_NnBV_O7l.NPvvʕX .BvtnrXdDƇPx4h<'??+//3??G7p1`ID&D D  L[4VowWoVk uu:]SS+>J.,qh~; ->i6k x $zb"=!HK ~ǃt4%=Zwh?Jejh0(m$O?}ছF8nԊoԨ7B(55'f7rr2 1ݯAhfs D ztWo͝*\C]EWwl k4/V;Bfg 'c%%ĵkݴ6C E6O` X,|L/3su8FmW/NOBbxDW@Wdz*FP}O9!QcCyy $I2ƹp5h}Nm@A$ 3>:$WoAY.G257hr 47AH$|>advʕ;`0hL&h41mW_S(Lb6w<(߷wb1nOZZk]eϾ̃~B!FH"|KƏ/n}:|i٩ JN_jl(ᡂ씔%=ryl&Sgנ19$-ԌWoᒺWo rF#kI~MNK [{o׿ٵ$V`2l6g,Z4ok^9EE/TV6xI'4O9sx++Wn߱CF-tw#g%, ջ9RgϪO9 6rs3m%׵֠,;`OQjj '1"A1`jjSMt݅IӲ33SԬd.rSp:p0o+d~\~9s钶É~{?ܠD,NYFw֊ w^$4 O+w^ry?߿l`NǧA瞛ۯ?g::3flP*nou B! pHH*-UWXFHP\pxT\LJ}d2=we}{ozOiZdҋ?]ZS=_|Nc0r˽ʹ ~_RO4mƌa>xLV_]掤Å9Ri)C22?㏍zPq1/ÍCBdl`/vSb"yԌd.7pvvJЫ) "AŽخYu: Nj-zU1 V~$3NI=)A>y=\.'|~qe֖68dG:C5d CͭL&}pQyd4IYY~ƌyFnfn#nٯ_f3]5d/ᄏ*8EӞxb%3y͚{J!,'f?t{钮A&kYVVC#G)ZTo}D+)p8 :5Eg>+[ RP`@$@P|zQoX$JtWgrJxm>20MM2Y}ee5--mQRii?eɒ_]xLFjjwr˨0cNh4/ϻ^!bѢ_љŢK"07UO=l_/+++H~L3N:~b'' &J ҂A*gյ}>DCR  }TeO sHh 9ZOvWR"CdgJ1!=r֭VA;3s8͛>&1}zɧ>Wz /͝  %$<''c^b~zN]' pPee QӅp!7ht8}f >BT˧A>*V /?>]i~@nIѓRىB.%ʔȾ|@*-0w4[.1u$ó]/]E^O>>Ppi߾ w߽z\DF/kҀr;}xNg=sE&kl]))cJ9&2\ZBL&]$J 6"Ѻv%`VeL Vd04^.CvbWD>C+Z%P;pSK$"nhϑ#D&N, K7?k~c2]h۷?ܐSYs˖8aɤx𜜌>G[7?[޺B MM [Z*UȚYח PA`9p{ފg6l0؜N7~$ALL;O.qp2 ˿Xy[25SZ/etq{Q7)),pB~Hm[[{RRܸqysл}07i{z`~xSO!cDv릛645z(##С5ii3wΘ1p TDedu-MJ/ <!S!28;Vj'xd\?+r(g EVzZm-j6d'!-fgiWo))s-t74p.|yZܸ]"xP*VV6TT5ۓƎ mٲ-UUͫVzO?ˈ~X&pA=k֫nw۶/(Y,O>W_Zhs JϹ\ T2YCuu˱cu ɤrqҜCcfs.EVkz״Y})5 &@dg^y;@fqY%88d ?Ah%^S_DsB::Ǘ˖ })CUWq6nkHQH,tfqJKsp5VK$<ώ֥UuBE>_0&఑PM w ܁Fy"J\!ܑut8ϝSTW+*+d0ؘLᢲRĉE:-Fc)N_~(T5Sz+,g(X = 5#G~NB~~S5o0aD\FX:ǎС?c2opʔP'h^⣏*ѣs~{Q3Vk:2j^G6fLnE"ǹ1t&SܩVBuRd6wRsmjA T| "D 8 ^oQ*M*35c0Xq_jPb"[(LJ ӲdĨu[<6H"s#q5sXjrS&L%U*"A*ud)^pY1>X/r 43aԔ"*Ebqzl =e9j>j_1i2z~ۇ+>WyWm7ɂż~ϡCE?GG#MMP ´Ph0:TF|sQ4-&qt#1=b#<833"Ӆ|8n쳾̧Ox(Ng5Gfd$qr|>~p W\6^j6w&,|h.^Tl63??,䜗YR"N nwUW2YџrIYYAxv¸lٖ'rY,Oz@]/ *!Ao|T\Ys`H ,H?exlN4Yھww>wy"v?hjg^S_D75bD jjȎX:JRiI 5C&dx ;"هJ.K鑸DQ7"´.x18|htdfsCqqQ+t!jR$OFcXw= w= fA$ԎmTFeq0 .y[.!;1Sdp?џc\.>J oD,NIE|^xP',x<ۿ~ |s@ŒzNVU5WWBv+%%~̘\r`(55 o.ۓU ƈ+>q"5Y<ƉRS|y Gw A$)mARkj:]!mb{N{ԩ&쫪>D$FK׭}y-zOׅz8a*+:2\`Ћb\O]"?ب-Ez5P!/&<0l8c &o%@Y@@H dm:7j͸Jez|dvvJvvPrTҸ\Nvvr*)CLm܎?vQfs>EL#]^dsKK?y]wM p”z>~Iuւsdď+HÀp5䷾L"ᕔ8P:\R Zm6Y58Qb"[ HJƱ! ˽0T(V Im //B^vɀéo.kvr.vӉ!Cx~ IDATyEF**)^L:$k~;jgzD+Vlc2ohҤP'b2YCuu--mL&+CQ\|,N8^//Vi4WCE*`T&JNNñ!>?yԨ,  ҩVqjRij-Y2,kt O.X: d!g\Kv8i.JJNLLjm:$5D%S ȀO!T/ZYٰl̿V۪U˟~V(OZZӅΜiq:\nѹ:2hЎ,?TWkoR@zpx.7eƻFz8+|򋜜w޹k0a:;g* G^2lt  a_/5Z!dEtPWZ^oKQbm6`@$p64jnn^9@Vk M52l.}ǎEg*џrIZTr b?_~ySsse[Ϝ՚e 8 YYY1l6 ,`!N\e1 TcuqFH1Vmnn-kSdC.X Cqs H?ψ`4 õ˗ou=z̙C=v{'N,zͅ|>4 sӅmkkgÆ JKœ&ű/#+_28Fcid^Nf>iD|H  : XRqە\WpAqh8n݅/^Ti%> ÚVk+*2YCmU'N ?YFmp;, ӧ.l0^~yܹB=ԊWV6_<*-Xzl%PCGٞ/lj[U*Yĺ"Q:,  @$HEonn$T(dSr%וDb4b+>}5t{!HGr I>\T^.J &L(ؽUSYdsS@{?q̆ Ctrl畕 8=dHLd!&O.L#OK$<|%#??v!E @XmJjRi,*I1{=Pq|>G(LNoZSv8(Pv[D&N,JIS^]'~@G?cohD1?xp ] I#G!gxOUC n`ULz&΢VZ؎FӲSpO8"Q: bD"z$J.҈;+jȋ34lQ!{r8 YaÄ2s萼L&fY}Cj/ r嶟>}c>4V{UU3^Gvxҙ7|P*-J ƏχYΧ=·~pRjFcVLzB(!-] QDp @؂H1DAA6D >/_$kb<E5J,N&J 7P|mq]9Nl5kv{Nx.骫[pPm ̲ ҅ JcbD]a$z7C:>$PЂHUǿN3{"q;}vy<D/.B&EPџ/*Ƅȑ" lrlѢ>;71꼆@SSҥ[ΝS<r~LLV/58LN6rTZNhl'`0n z =Q +Vdb3WSSkE\&K*)1}uRiTZ8aB! џ;qa-W_Fz811?yro,|quuL.0"niHxp:pNZmY_Sw'<–4CD2ls + {Oŋjfg2KJ)rt"?G\R8ʦ [{xc}\.pTӒ%V Ϛ5*iA&w8NѹRiAii΄ PCw^㴀ˠ3C1.^q&8=  #ZV&-q;TTȏmkkOJ7.|;6?@.,YNf߰כ77oK/̓(a?p` I p-?Pjj"I."\6@D'R(pq-V1XӸFSW# *3al>\k4''Ǎ џ b˖cry.\Pd ǎV&^Xx9]H*-Rǡ=YLHm*C_b9T*Fch,*QT&Ƭ՚z>i D<G H ӄ4 . I6x74qyuvO~~6= W6nQtVtD§xħ=qߟY^TVV9\>K"oxWa!pE0,5udUU.eeG gبX쨋CA"BuL4+D*3|~D A$#ΪRU*RiT(.P!3p^,NǷ4(-!#$C Km܎?p.џk,άc!Fpx;jkKlBro7K^} @0B )^.4fL. Bȧ=\V*nw 6 cWL"j)DqM"8"A`+[}AL7N3''Rmh 9Z۫OvWR"}a9vjs)&@'|A @\/;~UYY 58h4'$GФIYYɡ#NCNGryb122%fug\.Híјɝi^q;u=ٸ:t'2s萼nwx\RVV'V/45dx.ېb__&kZ BɤD>!tM|C;ÏN%fjYD@adt:+Kq'77D1֌K*^qD/*pf[pgpS?CC=@p Pc8@dګq`H&k0;JRiugd$zw"G/Q:>"딣[@D@]%ᶚ/5ͿƥKZ߸ ׫#BgYEOy:#zG?;x>x/]LP[%"//#+2b\3/zhovuyRvfp\DbZW >>9(z1t74p.ϟ̐H=7,DBC.A/Z~='xbҤI .a|ZT 'O>$Aھ};q-gΜh{E^wڴiO?tW߂UVn͖i&GՃ+3 s;0z9PAϟ?~Oix9sx^{/  fH@1Cf͚OOn޾i>0 BCRp8X TܲeK|||cc#AGa2gϞ_G;'C Pv|(ؗm۶]3g,))zF==;vlbb@ d'ND|cx<.c\.͛~iAn6))ۼy3Nsss>oO>gm͝;GOq8x Ox<6lH$)))SL9~x7aϞ=/_:.[p@ 5F}GÆ ~f0Go?l2j+B>9 -[׿f%&&>} 'A!߱cqeΝ;͛Gd2{YYYbxժUv!DѶl2lذ |gs(lD;4ԩ`)S^ G}tٲe#GĿ x?a?}=ڜDa?-a~bp7' u-((x xꩧFkQYYFbaBؼy3BHlaݺu󟛛ǍOF^y#Gx<[ne߾}6WqJWJmBr|krKJ B(?b|!_oǎ+..~g3p ]GЂ ,|-ᅬ9֕4t:]Nƒfffc#Fz0C3ŋ|>ALD@~-1cF]]]uuȑ#{7ohܴiB{+a]>SZL"19AAA-]T f~0ǨCA J@aMp7בcǎ1LQ ?3gRYUUuu%%%|9sܹs~-Nt9fҀcQ@:7 B:pwugWIIIAX,]mX4񵵵xὪh)OB?/,--E 4Cϟ >kZ!?b=o)u=Y&"w ;4LElѢE=ܝwI0cIJY?8h>Nپ}kF=8,Ξ=!y?cN8WFرcE_ooo_nݬY]}P_| v7\wu|jK_50=\.Ǔ;AL9g43fC=ꫯv1uTXnL:j>|x޽s%x XWW'-w?ZfQE;4*~s|"0v12'QLK*!>38;{ m~j{N8$ka_ҡs& /4mWƛ[ -[6o<ܴr„ K,!l6:߽{\./G1eqի8۸Ԑ!Ci]O7\]jݻ 6mD(!Jkkke2ِ!C~wv>!k>a #zoӬ*))igΜ9}>;n8IHr<?&_fH@1CmذaӧO…3f̨?{#{[@yfQ@]>Svhݼu ճ@ou7aԿvQ3'CYD_%L4p7wŋ|{^oQQ?N䟔h"Dy222rrr/8 IDATX\S&''X,/===33jool+W9211qĈk׮@>c zdn &MÇĵ2~> ///++kҥ!|XM~1g}fA:ujƌd6mW~8!!bP_f!9pBw񹿭+V[Y/ˈBC x;XSH@Lnt cP!yVߦ%S%&s>.H] $za'\paG1` Ye]Z Z$D0 OM t>b4ݮR>>,c~Po+Fp/^ܓ;c}v7pC2`Y`sL@5r}zr'}sϮPb (-$$!*j@"%Cu`h4M;V X@@NPhnn=ykjn!ظ͆9z!L՞jkk,)3ztNQ õ< !`ІLX4~|bqzDVG̙'Ohl0;tʹ]))<^y9ũSr:;wݿz-.kiis=Baz\./dzzxKKsF),̦h#=>?xUO>9#dzB;N0"?cjkf3nK ^ !D"ϝS;n9s  "x2;p`a2Æ ,7c7ܹ3$CܬHM'G{NOevo=xCdW*YN'!ߺ\^ciEEAyѣG4d Ev8N'{W B A\sݺ7mrj---A-̐s8Vk\jj1;bg ۙٝp?< 1ݞE2:LU4r?O!NHX7*|~* O1Gut*]./A2tM*h4<Ч  nٳ PBP'.|M$hŊ b/7W,&},C _8Bͦwt8׬) ibqP<BR;x"tA7@  ?~7zfc E !h4`NNΤI8߂+fs\JJred)).*X(<g4Ƶ%\t:HOwXk?̝w)JA8p GNhox(4S[ZkvA1У~ZvʤTjZmV**f8]qWLƓO.*s =oVa;B#F]5hF &v{ӧƒӇ@ YŁ5{jzI_|q޽N Ah8pqyAxg~yp\\.Jejnnmjjmjj7tqqL=N#jլ?a4 &Nh aR*M*fߝ' AڡC5*;L&N2T fN{ǎhkk'Di4r(ԪZZ .h: bA*Sss32y<)(ȆRQ7nvN̩tNgEX"naavaavAAvQQ@,Vt:O|OBX,Ɯ9c_} ׵~!?>+rK70zD(Cj~\kb,c[é] r/+*k~q=AS_y:A`9 FCcckSA2y<^PFFR~~V^^f~~V^^ց~ڧ@N#TXz!NZmjZUtV֬YY>erv_O?#DBL&N^r嬱csCryv:~nD㣥9|n[il[,vD]L^^fnnHd9dlذ%D~:v-6t r_Ԩ@ _"ee*rSB׀j;:h))&NX4iRQb~>+ǚ:u߆7UsT4鸂NOOO8pLHFcN58PUHIg>d^/zV͂b_%s| ܾ!rs3%С,7?&tB(77sŊOx2P=,###,9rI6%&._*-J !$=m*YOѾjTZ8~ᇇyFӦAGkjj++dZ-A<7{J F?۷(Bƍ};%~(1;jj./#jGX 0 9S8ބh48+Vn  +=>k2d _w1>{k~K<m]|M#,@$(\/<+?͝rK*d80v\JF}.]mMF#Dڂo/ӵZ3>ʹ!(FWJMMW\sHe+%Ē}45VTe_~R#Gi$ 73+ƀ; ƽN~? @ut8oqRifh C]:fs?ġ#1=b4G*-<+qquѢp-!/bj&unnXá:]yK4RWe޼2H JpR2>n= H(.J(5>ZQYp뽚SZ*;6%ݴi/09I9xpmA]EAyoq`08|=d8!ax A$,BD݁V80aB@e,N\ JH[_yyYCD6L5VF^dTx֨Qb ;v7!}#'jT?}vL{>)y~mkkgÆ qgҤb8"bp8 `Ҥ6B<㓗 ]V"lZC2^S0 r @$KV,NrOjF|CWJS7ri/.!Õkowujޮj2YCE!yss+I>\T^.6MRVV #⮻sp-yxJƌ5oExӛ[+4mÆ.>;Lx櫬`̘>h̙pDv0ܣZ'~Ln9\.'''*` ,NҤPT&_KKJej-̇ggDA@&BaH́%wQ2̒IB%(=mO+`S7PӢb]zԣZ yZh`&T}-$d&no'!L2k{~0s}_CX&Dw0ȩXWUeS9srj.͵pv{w/::K|׮?Dž;V]]qOtw{%o{8'ݞO?=Ojl6xaȠOG SmEįk8w~i6:fdrvˍ$%%M5ҒRS D3[11aY, dtZ SRūi*>;~#!)XlXP2M™0kIw/Hoʔ>1)/Xi7//*J 1ۏYSժ6o^~$'޻-""bڴ={~5bPfh3kmx:2E6a|t͎Nn2[[;f{kfs=״ZNNMM4zD?OLx$A/эreH٫<e:֍ŹI1O'M41x ֽK{7m*[d|gccʕUV6s_[\AG}>7w)x}"jmj:5)'G'jϘ( x>P_ou8)x!Wr͢Q,;3 8ǐqM9^>y2H\Uju8Z !#_5f^oʼ)%%!(C@}T}۸kw["fGeeSYv{.(-.-͙=;kNH>E(!A# ql΅0lvtȣEPڭ8WAF|=B ,HS>OyP>kdh\7B"Օfϟ_0~/+^mowmpxyg}w/Ǘ1<y'OZ**D\Uek M6k2٫μqny kHyٵrT t-~a`xH 2XH4DIeHĮԐp[+'N$)&&*++# Siv3]Ik$)/O/Ry`<º=<^syx^ʴbū˯ r%yHSQQӫRΜQZ-~ql#.HfeiySAgrJ=Ibb͇[# F !3p}UWR\~,(Ћz*.sH=U"ef&BW]v{wݵeg-3cھkQaYY`(X*+**ƺjL~JK/$[#ίkVR<oGG|aϞ*ȑ> dϛo0${/~{ nj-{X;XīDY|_ptO:RKKsJKgbOH gehkҬs.M9BIB|>c[[;mm--bHOII0ӓ!`HiiI$ :ql^PUe2⒦:${OWСUW姦 ؙC-(Hٴ,7WM|;v]\ݴl`/'g vZ,ζζ6,;6Sb Ĕujj^NMMLIIx$DH$"NtMAߘu:uZZ^NII9¢IyVO(GbvD*d4uPIIviiW'{OMeŊWL}?(q:{~'_?{ÆcrY~**:;O\|q~`q }N08ar8Ajx ![NI4i&4 `"f]*΂n?-R!9!B-0 RbcPwz _xThӧO  gyw/xzf̏W|yΉjhh5_u^sgʤ/o(ȑX|VjuvBы@%*8^m0$t*VJMMj_&0 `wQb: Hyz-R&%>} 8TH|?`  +Wtlx÷}I3A9O?Mz:+Ǐs`S]ёEE%%٥sj`q|xmmvw4f"x'wrtD9k@" C=mbG4PD.6[Wgg۷ҫhG-g0t|把:Z2*)ɞ1#% ].}KT0=4@+^6[^΄b6ۍ:Iբ櫤${̌`1˰ve!3Ac``#nmS$y\o0 )?ەg@i䄄~ |^Uu, iW4%:wGTgqi)3C_XimW4W|}I把tEikΜ Ư6tH4Md.Gl65mn 筷)WE3.=*ܵ!/OZڳWS͙+JH.4sk|ƌOofh=zIT}O/.N/-)-͙2ɷf:}F#$b[Wj}D4Hia}ȩAthsIĮߏ{o9;[E׾}';&DWqt /#nGqmҒh `,;==mmflvM&domZbl$IIISSRԩz} 5jZmѝgRK.I)9L:L^;w^oɓ:=2rRnND?%%0OX8z`" 0^3&OJLSVs~6l^oKK`@yYThϞ*J;sfƂa vˉmS:{گhf愝_Scۻjުg\${֬pE@55+^2Q=G'c4VV6WW}>_ffrIIh a]v{3'$La_E`>R55ӧ2>#L}YnnjH>kɗ_.ЎG׬)Wc}$; QZPiSYn.+ >F[񓋊RKKsDĸ`q |m:k/#/Q6:V=k? gCvmhhOEGGN6TRy;EhOCrɓ#33g0L bпU}TXB󮻶s"llݟaƟʦ:Nxzii, Gcb hƠc S~$cKK))mK&󴴤x.p}c)ϧ<.RE*d4_5mmqq1W\UZ]Z3wnD EEMʲhݟuזɓ}lΜr?ED?Fc~:..DsUӦM GhZmlloncnvtt)U;;.Ӹtj~p!H`8]juv&%MÙZ:55A|MNVqM詯WO0}E#IRLLTVWF} }qMkWR9srbb&®*ӊx?/2uݞG /ُ{~Di#W9MMbc/4}B}T}۸k8a^oʼ)%eb6 3KGD?%%3gfl z1]]n1XlvXi6;l6ٜ6KIөu:ċ*UUMP0a@Caӓah}ZxkX8z2\&pںܸf=0~1"9c'Nj,r}N.r*d4UUT4{\j|t$پȚ5Mˋ{9bݺ32m|sQ!Ɵʦ#G{{.,#w>'NN08#`mWÿp~(7dErX)GDooߩSr"r1#kk-bB)!lvS9srCOmkkU_jյwܱhl{ٺkl`~BVw#*jRNND?gH  8]z)ט_yIrԺ!: | $‚ȉzdk$xp)T{y*PTԤ$ӧO " ŹIѽO'Mⴒ gG; {ׯ~i6-{E-ё>[6wnnsf{eeXg4VV6^V5sfFqqj駲/ta!-jFz{]6n9VC|\rݙZ=/!:;&`H׽`<o]M|<[cpio0$vN%KVs߾Ђ q^W8aZx1;^|qw/ `'-uFcX9)7W'G?r.ڕE`X9ʌO<2&&*))NW5K}$5~̐` ))bD6't*RT<LSԗUW=Ryy fa6ZHB /HL n;)~II!=cȑ+^\>z~ty5,ѣM"Ubg(-..>gNNi64Yi>5l==b[vhow9\D&^:ZSO&^O d.h:'=a`ӊ؝lOH{e݊ع w*Ӎ}2:vYr* ;װv+F;Eu6qѷHHHTVK>)) Zm|rj1 $A7{^|EQH77?&_i#sH=U"ef&BW]?mZpR!gݺ曇pʔtj׎m 9GѣnO|䢢y7 cXXяY.ג_9\~/Yޢz H%fⴴt!_R]Z:>Kpt۔#kk-bQ2}QQLms܇7 LJJ7G{~o?rzz\6?}͛_tQjsfOeeSEEXW]m|bWii%;%I=>D(= )ES l3a:I ,= 8/9::rڴ-=E0t5u׏f.C {TG4ɩUW姦Q*q8Pw|{km[nߏ J6.Qe4N|Eg6\qE֨zX{>)3}l[ʾfI`XlvVdrN4i̪24hk-j4*^=ujЊ8r}rh2ӲB%%٥9faZZ>1cweelTm_W67>~E|8P5eJ%+Y{>]lL+,4z7]rˣ,8ESrC"$v 5P i41(k8Ҿ|WFgd/]F'e*U/X #c73/{챥cѦ+^Z?dɒ٣tfhS?"))ɞ93cDJ=:k*Z.1^)W{K޲ٜC'IR\\VhTZJLhTbNGF@`nKZtVvUnOHIQN:$W33y 5ݻd2ɿx55j{Cϗ.)G;?&"B˦N3~zDnnBYYnbhE!^ozg}7**blUv? `LL ͧFuX\%=mmNg`9ZMLrSϘm 0L==~ۈnYp78^)`S^o6L]uёZ0iҔӧ+Gerllӕ4BZrixL^q7nٲ\v{MT 6677wȑhk?-l0הGn:O$AfȡϴZu6юZ6G#&&*+ˑɅVue˖]Om?>sYY sLy+_r䖼N36Œ`؂6! /!!.!!nƌ>SVTV6Y,>`h'O1#o%fIk]z?mllOO:'m v#IQ-^|If&+K3}m8oKC٠GY\Zb:{Qc_}77+ X}FuبZlK/ ="md.LT0^ ]}vl[Ni8l6W[[g{bq곘(&>%%!99^Wth~+(&/"B:qDK$ALLqq1l`\6bqX,N)*mu36k"""://oDpU7/w>87ёMf74x^=mZ|rr|Tm  Li4M|a!FDDHs-2,en?w\}}}~x3x q>LVDFF;vL7|^7%%|w7l|>___x^|>֭[+?ޥK.]k0FX}}e#ꄄqCRIw[pVWUUխrf͚%ihhl=Ӆ'//Y.,,$)22{7w?)7*IҤI_C-?uaa|؀w h4bu[ݽlٲիW:tw׋GaJz>22Vɓiii⶜=-]7ܶmۼy>{b$IUUU"*NDF7k644TVV.^ðv=OLLLww>(I;vرc+Vhhh[Ctt 7p;v+++;^oۛoY矷C/iժU555֭[|w p͛'W_^R͚5[e]&wk'|0++릛nZxڵk-Zo{޼y?5l޼955dѢE-ZvߑEXd|筷jZ^RYY5\~Wd;BP/PF"""nݺlٲ`/d7555~NZm۶S [l Za ߿ٷrW_}JVvmr'@bO; .[t` 'o'Njj,$ZBI|`tt$Iuu>k rBI|>_y>I#|PWH8vPC[[۷mC ؛oaꬨ zBIx( #W Eƫ> 0.g{}GewgH曇&M |&}x=I7}}D "|>_p3zo} qAZ@ #33YvIuEa$ \ pA.HI@ $A$ \ pA.HI@ $A$ \ pA.HI@ $A$ \ pA.HI@ >/k<ث8NgLKK|a`/YYY^/ ?` @ ---C-[tuuo޼HR]ykǎf͊3 ۷+W˻"""^|Ţ"VaÆW^y%;;;!![o͘1C~n[yիWzNzށ xw򒒒}O"Hp?kN|wSN}=#UUUO~t:,YrWWWoܸqڵVUKWn單.ڵh4nذaڵ;v쨬|'֯_.sرc;w zꩺ{w~.rΝ~֭[71x"PK.]kё^\\C{.^zI~/,IRuu8xv.?V>ũS7nt:?$I:tx<~#+++Ńnݚㅅmmm;sLQ>}1'I֭[ 0)11뿎?_RS[[;sLC!&&jW\qK/$qVRR￿o߾ ݻw,IDAT$J%IRttmY~~QXXܬz kTI71x"Ai\sw-IKK;zǏ}e˖^СC=||ͪԩS?Ͽ:u|)6HTUU%bFw!utt۷o(1x"A[nYr-[vڵ}vInիW[&=An㉉~%Ir:DDD,Z_w8':::..|jժu-_\[]wڵk*++/^?AnC<@ sY5kDGG͛w=x;j^z饏?!OM:uڵ7tŋfؗ_~y͚5MMM999[n=ߥ]s5]]]7tڵku[ׯ_jլY&Mdɒ{L[oꫯNHH8cy>/keٲe$m۶SSSēX@c"""n*~c0pA&,Z}m1GFaHUaT`O@ $A$ \D{ 555{a$A_zzzyy9cFUTT`*@a<@O@ $A$ \۬#<ԟIENDB`XQilla-2.3.4/docs/simple-api/classURIResolver.html0000644001725400016040000005373013273140077016740 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    URIResolver Class Referenceabstract

    This is an abstract class used to resolve URIs in different ways. More...

    #include <URIResolver.hpp>

    Inheritance diagram for URIResolver:

    Public Member Functions

    virtual ~URIResolver ()
     virtual destructor, does nothing More...
     
    virtual bool resolveDocument (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
     Resolve the given uri (and baseUri) to a Sequence (reference parameter). More...
     
    virtual bool resolveCollection (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
     Resolve the given uri (and baseUri) to a Sequence (reference parameter). More...
     
    virtual bool resolveDefaultCollection (Sequence &result, DynamicContext *context, const QueryPathNode *projection)=0
     Resolve the default collection. More...
     
    virtual bool putDocument (const Node::Ptr &document, const XMLCh *uri, DynamicContext *context)=0
     Called with any document that has been updated, to allow the user to save the document in any manner applicable. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This is an abstract class used to resolve URIs in different ways.

    The user should derive a concrete class from URIResolver, and use the DynamicContext::registerURIResolver() method to add this resolver to the list used by XQilla.

    Constructor & Destructor Documentation

    virtual URIResolver::~URIResolver ( )
    inlinevirtual

    virtual destructor, does nothing

    Member Function Documentation

    virtual bool URIResolver::putDocument ( const Node::Ptr document,
    const XMLCh *  uri,
    DynamicContext context 
    )
    pure virtual

    Called with any document that has been updated, to allow the user to save the document in any manner applicable.

    The uri parameter will be the argument to the fn:put() function if that was called with the document - otherwise it will be the document URI of the document. If this URIResolver successfully handled the putDocument() request, the method should return true, otherwise it should return false and subsequent URIResolver objects will be called to handle the document.

    virtual bool URIResolver::resolveCollection ( Sequence result,
    const XMLCh *  uri,
    DynamicContext context,
    const QueryPathNode *  projection 
    )
    pure virtual

    Resolve the given uri (and baseUri) to a Sequence (reference parameter).

    If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.

    virtual bool URIResolver::resolveDefaultCollection ( Sequence result,
    DynamicContext context,
    const QueryPathNode *  projection 
    )
    pure virtual

    Resolve the default collection.

    If it is not defined, returns false, otherwise returns true.

    virtual bool URIResolver::resolveDocument ( Sequence result,
    const XMLCh *  uri,
    DynamicContext context,
    const QueryPathNode *  projection 
    )
    pure virtual

    Resolve the given uri (and baseUri) to a Sequence (reference parameter).

    If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_7.png0000644001725400016040000000431513273140077016415 00000000000000PNG  IHDR%pbbKGDIDATxkLKǧ@E-"P.54H4bH@EHbԠ(J1V BPMbEER5 "^@!ؐbh ۝ÞYPV#7ԝ\lٓ'OHgUTT`5*++T*"RRRb gg-[466'iZ;;ə*޹sgʕׯ_'Y(s ԩSBmI'''GEET*HNww7é dYzyy544|޽{K.ER;T*ڵkO< !lnnxxP~kk7uǏԃB7_t:]YYeee<F.bNz~hhСCV*2 W\Q,`0Zu(sB`X]$455d2߽{644B}V\\200eM|ULϵk`@͏r|͚5oɤP(D"ɬB-8˗hJ׃Ÿ ҂֋H$tBoܸ9 03jZ[[ۋ/t:AzlvPtB=O& Mww!TTl6d6###cbbiS8NGG۷h0ƫruu5 7o:x<20n%%%h$:}׃"8 [npJ%'nF1###44 <# 'Y/fsMMMaa?^SS]MАe7C{{{y<>ƦJRIJ-Lӡ N4`bxx似ObX?>X888ݻ |3NLL RWWjj5---L&Yx ]GGGop$^'%%EEEuvv 3g@UdII eb//۷oꦦ4ѣ JrÆ ߽{5444==2vtt4$$$22A(ONN`z]F}%摑G0 ˱+`lll&&&lv}}F)--e~ڭ@얖oAgeeA%ϗdhW?~شijwr,Yr1lA1%)& 00qƍ!KMMuwwr4Bɔj*痕͕B!BD"?N2EEE|>5..N&yzzZlvqqL LF-ͿMcc#~U__m jI4Jk׮qBseiF_ĉ۶mh4KKK[hQ֠bI$DBBn4@;h'P$jf]WWuALirٳg,›ɿ?zDC hv 5Nn{4hIENDB`XQilla-2.3.4/docs/simple-api/XQQuery_8hpp__dep__incl.png0000644001725400016040000000614113273140076020012 00000000000000PNG  IHDRpYbKGD IDATxmLSWOKQ^(s 8ز{d8`&ft uuqF2Z7Q!-ݠnt!,@𥰲->>}zi¡x~.s9s{ a*t A Cҝ;w9b:eC@@@QQs=7kMܺu~غu}aDիWN8uE ),ðwR{Q(ʎzRwRCX,Vttt^^ޭ[xnnM^{5R2,%%Ž}@ff&x7x0??ǿmmmAR YL&KKK_P(`PPPhhKg}9]x<+,,h4x߅J&&&vtt}9|իW]r6*%%lii"Hyy؟)H @֞B׊F k׮utt ƩSbcc[@ ˳֮]{ `@PQQqTGw`8p`ݺuyyyRlb4lOLL$))?D}@橈˗/gffr;X^xa H?/돍eee cpVx<^MMMFFƬ5a~ΤhǗŢhR;"&H" # A $qeI`p .,<@:::9^}^lv.(@:RP tFΨPx_c^ع`6[ffl33i2]LULo2miڵP_R^RLxtjp~)@*j;Gl6?+zܿOrJ2<|hysݎݼ9t$ hl @in[l xnjk?ygjm_n ð>Z]RIĄ1"i;V" :1a P@^^@,Nd%h@ $2Hd A @ $2Hd A @ $2Hd A @ $2Hd A` ;:Mag/lP( [믥6o޼{ ?$2Hd,a2lpvP( - %d~GK%B ?yRnpƈNt맦v{yyy||Ur9~ ͛6mb0l6amjjr+W>z555W:p\Gg/ٳg恁`ٮ_WvBt:>99i\(J ,^SR9{\\F6n2F@{{;at =w>xdddy.wיW^yٳ8忄N[oݸq}QUV]qqqupܹf񾒓=.3\&AGZ]^^/lG"""~L&SFFP(T*%dZV i>˱~ ~4;9N龻 cyov{NN/]$ɚ999Ba||~DčfBM&ӱcǀJ8 %%%N[,@C?㬬,碝;w9rݻ**55oH$G͡MG<mذb`?lVkX>쳨|]9ð*44422b޽,Zn::;p6ܷdڵ4Lλwy'$$$,,,77wjjj>mfR&Yq*"mΡ#&a,CO? &99Kt Zr A @͛7GFFBLhyV;;;=TPP0ItyͿ_޽ @sd A L+gIENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.md50000644001725400016040000000004013273140074025647 00000000000000f8f6cb1223d4c782552ae5286e65115aXQilla-2.3.4/docs/simple-api/SequenceBuilder_8hpp__incl.md50000644001725400016040000000004013273140074020413 0000000000000095cb490a545a53e7bf24573e8114f3daXQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMDocument.html0000644001725400016040000040426113273140077020711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::DOMDocument Class Referenceabstract

    The DOMDocument interface represents the entire XML document. More...

    #include <DOMDocument.hpp>

    Inheritance diagram for xercesc::DOMDocument:

    Public Member Functions

    Destructor
    virtual ~DOMDocument ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual DOMElement * createElement (const XMLCh *tagName)=0
     Creates an element of the type specified. More...
     
    virtual DOMDocumentFragment * createDocumentFragment ()=0
     Creates an empty DOMDocumentFragment object. More...
     
    virtual DOMText * createTextNode (const XMLCh *data)=0
     Creates a DOMText node given the specified string. More...
     
    virtual DOMComment * createComment (const XMLCh *data)=0
     Creates a DOMComment node given the specified string. More...
     
    virtual DOMCDATASection * createCDATASection (const XMLCh *data)=0
     Creates a DOMCDATASection node whose value is the specified string. More...
     
    virtual DOMProcessingInstruction * createProcessingInstruction (const XMLCh *target, const XMLCh *data)=0
     Creates a DOMProcessingInstruction node given the specified name and data strings. More...
     
    virtual DOMAttr * createAttribute (const XMLCh *name)=0
     Creates an DOMAttr of the given name. More...
     
    virtual DOMEntityReference * createEntityReference (const XMLCh *name)=0
     Creates an DOMEntityReference object. More...
     
    virtual DOMDocumentType * getDoctype () const =0
     The Document Type Declaration (see DOMDocumentType) associated with this document. More...
     
    virtual DOMImplementation * getImplementation () const =0
     The DOMImplementation object that handles this document. More...
     
    virtual DOMElement * getDocumentElement () const =0
     This is a convenience attribute that allows direct access to the child node that is the root element of the document. More...
     
    virtual DOMNodeList * getElementsByTagName (const XMLCh *tagname) const =0
     Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree. More...
     
    Functions introduced in DOM Level 2.
    virtual DOMNodeimportNode (const DOMNode *importedNode, bool deep)=0
     Imports a node from another document to this document. More...
     
    virtual DOMElement * createElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Creates an element of the given qualified name and namespace URI. More...
     
    virtual DOMAttr * createAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Creates an attribute of the given qualified name and namespace URI. More...
     
    virtual DOMNodeList * getElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree. More...
     
    virtual DOMElement * getElementById (const XMLCh *elementId) const =0
     Returns the DOMElement whose ID is given by elementId. More...
     
    Functions introduced in DOM Level 3.
    virtual const XMLCh * getInputEncoding () const =0
     An attribute specifying the encoding used for this document at the time of the parsing. More...
     
    virtual const XMLCh * getXmlEncoding () const =0
     An attribute specifying, as part of the XML declaration, the encoding of this document. More...
     
    virtual bool getXmlStandalone () const =0
     An attribute specifying, as part of the XML declaration, whether this document is standalone. More...
     
    virtual void setXmlStandalone (bool standalone)=0
     An attribute specifying, as part of the XML declaration, whether this document is standalone. More...
     
    virtual const XMLCh * getXmlVersion () const =0
     An attribute specifying, as part of the XML declaration, the version number of this document. More...
     
    virtual void setXmlVersion (const XMLCh *version)=0
     An attribute specifying, as part of the XML declaration, the version number of this document. More...
     
    virtual const XMLCh * getDocumentURI () const =0
     The location of the document or null if undefined. More...
     
    virtual void setDocumentURI (const XMLCh *documentURI)=0
     The location of the document or null if undefined. More...
     
    virtual bool getStrictErrorChecking () const =0
     An attribute specifying whether errors checking is enforced or not. More...
     
    virtual void setStrictErrorChecking (bool strictErrorChecking)=0
     An attribute specifying whether errors checking is enforced or not. More...
     
    virtual DOMNoderenameNode (DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Rename an existing node. More...
     
    virtual DOMNodeadoptNode (DOMNode *source)=0
     Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any. More...
     
    virtual void normalizeDocument ()=0
     This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form. More...
     
    virtual DOMConfiguration * getDOMConfig () const =0
     The configuration used when DOMDocument::normalizeDocument is invoked. More...
     
    Non-standard extension
    virtual DOMEntity * createEntity (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMDocumentType * createDocumentType (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMDocumentType * createDocumentType (const XMLCh *qName, const XMLCh *, const XMLCh *)
     
    virtual DOMNotation * createNotation (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMElement * createElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0
     Non-standard extension. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeList * getChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMap * getAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMDocument ()
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMDocument interface represents the entire XML document.

    Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

    Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a DOMDocument, the DOMDocument interface also contains the factory methods needed to create these objects. The DOMNode objects created have a ownerDocument attribute which associates them with the DOMDocument within whose context they were created.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Constructor & Destructor Documentation

    xercesc::DOMDocument::DOMDocument ( )
    inlineprotected
    virtual xercesc::DOMDocument::~DOMDocument ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNode* xercesc::DOMDocument::adoptNode ( DOMNode source)
    pure virtual

    Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.

    If the node has a parent it is first removed from its parent child list. This effectively allows moving a subtree from one document to another. The following list describes the specifics for each type of node.

    ATTRIBUTE_NODE
    The ownerElement attribute is set to null and the specified flag is set to true on the adopted DOMAttr. The descendants of the source DOMAttr are recursively adopted.
    DOCUMENT_FRAGMENT_NODE
    The descendants of the source node are recursively adopted.
    DOCUMENT_NODE
    DOMDocument nodes cannot be adopted.
    DOCUMENT_TYPE_NODE
    DOMDocumentType nodes cannot be adopted.
    ELEMENT_NODE
    Specified attribute nodes of the source element are adopted, and the generated DOMAttr nodes. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.
    ENTITY_NODE
    DOMEntity nodes cannot be adopted.
    ENTITY_REFERENCE_NODE
    Only the DOMEntityReference node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
    NOTATION_NODE
    DOMNotation nodes cannot be adopted.
    PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
    These nodes can all be adopted. No specifics.
    Parameters
    sourceThe node to move into this document.
    Returns
    The adopted node, or null if this operation fails, such as when the source node comes from a different implementation.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if the source node is of type DOCUMENT, DOCUMENT_TYPE.
    NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.
    Since
    DOM Level 3
    virtual DOMAttr* xercesc::DOMDocument::createAttribute ( const XMLCh *  name)
    pure virtual

    Creates an DOMAttr of the given name.

    Note that the DOMAttr instance can then be set on an DOMElement using the setAttributeNode method.
    To create an attribute with a qualified name and namespace URI, use the createAttributeNS method.

    Parameters
    nameThe name of the attribute.
    Returns
    A new DOMAttr object with the nodeName attribute set to name, and localName, prefix, and namespaceURI set to null. The value of the attribute is the empty string.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMDocument::createAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Creates an attribute of the given qualified name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the attribute to create.
    qualifiedNameThe qualified name of the attribute to instantiate.
    Returns
    A new DOMAttr object with the following attributes:
    Attribute Value
    DOMNode.nodeName qualifiedName
    DOMNode.namespaceURI namespaceURI
    DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
    DOMNode.localName local name, extracted from qualifiedName
    DOMAttr.name qualifiedName
    DOMNode.nodeValue the empty string
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace", or if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from " http://www.w3.org/2000/xmlns/".
    NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
    Since
    DOM Level 2
    virtual DOMCDATASection* xercesc::DOMDocument::createCDATASection ( const XMLCh *  data)
    pure virtual

    Creates a DOMCDATASection node whose value is the specified string.

    Parameters
    dataThe data for the DOMCDATASection contents.
    Returns
    The new DOMCDATASection object.
    Since
    DOM Level 1
    virtual DOMComment* xercesc::DOMDocument::createComment ( const XMLCh *  data)
    pure virtual

    Creates a DOMComment node given the specified string.

    Parameters
    dataThe data for the node.
    Returns
    The new DOMComment object.
    Since
    DOM Level 1
    virtual DOMDocumentFragment* xercesc::DOMDocument::createDocumentFragment ( )
    pure virtual

    Creates an empty DOMDocumentFragment object.

    Returns
    A new DOMDocumentFragment.
    Since
    DOM Level 1
    virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a DOMDocumentType node.

    Returns
    A DOMDocumentType that references the newly created DOMDocumentType node.
    virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  qName,
    const XMLCh *  ,
    const XMLCh *   
    )
    inlinevirtual
    virtual DOMElement* xercesc::DOMDocument::createElement ( const XMLCh *  tagName)
    pure virtual

    Creates an element of the type specified.

    Note that the instance returned implements the DOMElement interface, so attributes can be specified directly on the returned object.
    In addition, if there are known attributes with default values, DOMAttr nodes representing them are automatically created and attached to the element.
    To create an element with a qualified name and namespace URI, use the createElementNS method.

    Parameters
    tagNameThe name of the element type to instantiate. For XML, this is case-sensitive.
    Returns
    A new DOMElement object with the nodeName attribute set to tagName, and localName, prefix, and namespaceURI set to null.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Creates an element of the given qualified name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the element to create.
    qualifiedNameThe qualified name of the element type to instantiate.
    Returns
    A new DOMElement object with the following attributes:
    Attribute Value
    DOMNode.nodeName qualifiedName
    DOMNode.namespaceURI namespaceURI
    DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
    DOMNode.localName local name, extracted from qualifiedName
    DOMElement.tagName qualifiedName
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" .
    NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
    Since
    DOM Level 2
    virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName,
    const XMLFileLoc  lineNum,
    const XMLFileLoc  columnNum 
    )
    pure virtual

    Non-standard extension.

    Creates an element of the given qualified name and namespace URI, and also stores line/column number info. Used by internally XSDXercesDOMParser during schema traversal.

    See Also
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)
    virtual DOMEntity* xercesc::DOMDocument::createEntity ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a new entity.

    Parameters
    nameThe name of the entity to instantiate
    virtual DOMEntityReference* xercesc::DOMDocument::createEntityReference ( const XMLCh *  name)
    pure virtual

    Creates an DOMEntityReference object.

    In addition, if the referenced entity is known, the child list of the DOMEntityReference node is made the same as that of the corresponding DOMEntity node.If any descendant of the DOMEntity node has an unbound namespace prefix, the corresponding descendant of the created DOMEntityReference node is also unbound; (its namespaceURI is null). The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

    Parameters
    nameThe name of the entity to reference.
    Returns
    The new DOMEntityReference object.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMNotation* xercesc::DOMDocument::createNotation ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a Notation.

    Parameters
    nameThe name of the notation to instantiate
    Returns
    A DOMNotation that references the newly created DOMNotation node.
    virtual DOMProcessingInstruction* xercesc::DOMDocument::createProcessingInstruction ( const XMLCh *  target,
    const XMLCh *  data 
    )
    pure virtual

    Creates a DOMProcessingInstruction node given the specified name and data strings.

    Parameters
    targetThe target part of the processing instruction.
    dataThe data for the node.
    Returns
    The new DOMProcessingInstruction object.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
    Since
    DOM Level 1
    virtual DOMText* xercesc::DOMDocument::createTextNode ( const XMLCh *  data)
    pure virtual

    Creates a DOMText node given the specified string.

    Parameters
    dataThe data for the node.
    Returns
    The new DOMText object.
    Since
    DOM Level 1
    virtual DOMDocumentType* xercesc::DOMDocument::getDoctype ( ) const
    pure virtual

    The Document Type Declaration (see DOMDocumentType) associated with this document.

    For XML documents without a document type declaration this returns null. The DOM Level 2 does not support editing the Document Type Declaration. docType cannot be altered in any way, including through the use of methods inherited from the DOMNode interface, such as insertNode or removeNode.

    Since
    DOM Level 1
    virtual DOMElement* xercesc::DOMDocument::getDocumentElement ( ) const
    pure virtual

    This is a convenience attribute that allows direct access to the child node that is the root element of the document.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocument::getDocumentURI ( ) const
    pure virtual

    The location of the document or null if undefined.


    Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

    Since
    DOM Level 3
    virtual DOMConfiguration* xercesc::DOMDocument::getDOMConfig ( ) const
    pure virtual

    The configuration used when DOMDocument::normalizeDocument is invoked.

    Returns
    The DOMConfiguration from this DOMDocument
    Since
    DOM Level 3
    virtual DOMElement* xercesc::DOMDocument::getElementById ( const XMLCh *  elementId) const
    pure virtual

    Returns the DOMElement whose ID is given by elementId.

    If no such element exists, returns null. Behavior is not defined if more than one element has this ID. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

    Parameters
    elementIdThe unique id value for an element.
    Returns
    The matching element.
    Since
    DOM Level 2
    virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagName ( const XMLCh *  tagname) const
    pure virtual

    Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

    The returned node list is "live", in that changes to the document tree made after a nodelist was initially returned will be immediately reflected in the node list.

    Parameters
    tagnameThe name of the tag to match on. The special value "*" matches all tags.
    Returns
    A new DOMNodeList object containing all the matched DOMElement(s).
    Since
    DOM Level 1
    virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

    Parameters
    namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
    localNameThe local name of the elements to match on. The special value "*" matches all local names.
    Returns
    A new DOMNodeList object containing all the matched DOMElement(s).
    Since
    DOM Level 2
    virtual DOMImplementation* xercesc::DOMDocument::getImplementation ( ) const
    pure virtual

    The DOMImplementation object that handles this document.

    A DOM application may use objects from multiple implementations.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocument::getInputEncoding ( ) const
    pure virtual

    An attribute specifying the encoding used for this document at the time of the parsing.

    This is null when it is not known, such as when the DOMDocument was created in memory.

    Since
    DOM Level 3
    virtual bool xercesc::DOMDocument::getStrictErrorChecking ( ) const
    pure virtual

    An attribute specifying whether errors checking is enforced or not.

    When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMDocument::getXmlEncoding ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, the encoding of this document.

    This is null when unspecified or when it is not known, such as when the DOMDocument was created in memory.

    Since
    DOM Level 3
    virtual bool xercesc::DOMDocument::getXmlStandalone ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, whether this document is standalone.

    This is false when unspecified.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMDocument::getXmlVersion ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, the version number of this document.

    This is null when unspecified.
    This attribute represents the property [version] defined in .

    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMDocument::importNode ( const DOMNode importedNode,
    bool  deep 
    )
    pure virtual

    Imports a node from another document to this document.

    The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document; this method creates a new copy of the source node.
    For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI). As in the cloneNode operation on a DOMNode, the source node is not altered.
    Additional information is copied as appropriate to the nodeType, attempting to mirror the behavior expected if a fragment of XML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node.

    ATTRIBUTE_NODE
    The ownerElement attribute is set to null and the specified flag is set to true on the generated DOMAttr. The descendants of the source DOMAttr are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the deep parameter has no effect on DOMAttr nodes; they always carry their children with them when imported.
    DOCUMENT_FRAGMENT_NODE
    If the deep option was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Otherwise, this simply generates an empty DOMDocumentFragment.
    DOCUMENT_NODE
    DOMDocument nodes cannot be imported.
    DOCUMENT_TYPE_NODE
    DOMDocumentType nodes cannot be imported.
    ELEMENT_NODE
    Specified attribute nodes of the source element are imported, and the generated DOMAttr nodes are attached to the generated DOMElement. Default attributes are not copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the importNode deep parameter was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
    ENTITY_NODE
    DOMEntity nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId, systemId, and notationName attributes are copied. If a deep import is requested, the descendants of the the source DOMEntity are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
    ENTITY_REFERENCE_NODE
    Only the DOMEntityReference itself is copied, even if a deep import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
    NOTATION_NODE
    DOMNotation nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId and systemId attributes are copied. Note that the deep parameter has no effect on DOMNotation nodes since they never have any children.
    PROCESSING_INSTRUCTION_NODE
    The imported node copies its target and data values from those of the source node.
    TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
    These three types of nodes inheriting from DOMCharacterData copy their data and length attributes from those of the source node.
    Parameters
    importedNodeThe node to import.
    deepIf true, recursively import the subtree under the specified node; if false, import only the node itself, as explained above. This has no effect on DOMAttr , DOMEntityReference, and DOMNotation nodes.
    Returns
    The imported node that belongs to this DOMDocument.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if the type of node being imported is not supported.
    Since
    DOM Level 2
    virtual void xercesc::DOMDocument::normalizeDocument ( )
    pure virtual

    This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.

    The actual result depends on the features being set. See DOMConfiguration for details.


    Noticeably this method normalizes DOMText nodes, makes the document "namespace wellformed", according to the algorithm described below in pseudo code, by adding missing namespace declaration attributes and adding or changing namespace prefixes, updates the replacement tree of DOMEntityReference nodes, normalizes attribute values, etc.
    Mutation events, when supported, are generated to reflect the changes occurring on the document. Note that this is a partial implementation. Not all the required features are implemented. Currently DOMAttr and DOMText nodes are normalized. Features to remove DOMComment and DOMCDATASection work.

    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMDocument::renameNode ( DOMNode n,
    const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Rename an existing node.

    When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. This only applies to nodes of type ELEMENT_NODE and ATTRIBUTE_NODE.
    When a new node is created, the following operations are performed: the new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an DOMElement its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attach to the new node, the user data event NODE_RENAMED is fired.
    When the node being renamed is an DOMAttr that is attached to an DOMElement, the node is first removed from the DOMElement attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back.

    Parameters
    nThe node to rename.
    namespaceURIThe new namespaceURI.
    qualifiedNameThe new qualified name.
    Returns
    The renamed node. This is either the specified node or the new node that was created to replace the specified node.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised when the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
    WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" . Also raised, when the node being renamed is an attribute, if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setDocumentURI ( const XMLCh *  documentURI)
    pure virtual

    The location of the document or null if undefined.


    Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setStrictErrorChecking ( bool  strictErrorChecking)
    pure virtual

    An attribute specifying whether errors checking is enforced or not.

    When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setXmlStandalone ( bool  standalone)
    pure virtual

    An attribute specifying, as part of the XML declaration, whether this document is standalone.


    This attribute represents the property [standalone] defined in .

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setXmlVersion ( const XMLCh *  version)
    pure virtual

    An attribute specifying, as part of the XML declaration, the version number of this document.

    This is null when unspecified.
    This attribute represents the property [version] defined in .

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/dir_cf50e6b7905ca68e8eacb67c516ef759_dep.map0000644001725400016040000000043313273140076021564 00000000000000 XQilla-2.3.4/docs/simple-api/classResultImpl-members.html0000644001725400016040000001554113273140074020302 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ResultImpl Member List

    This is the complete list of members for ResultImpl, including all inherited members.

    getColumn() const LocationInfoinline
    getFile() const LocationInfoinline
    getLine() const LocationInfoinline
    getResultPointer()ResultImplinline
    LocationInfo()LocationInfoinline
    LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfoinline
    next(DynamicContext *context)ResultImplvirtual
    nextOrTail(Result &tail, DynamicContext *context)ResultImplvirtual
    ResultImpl(const LocationInfo *o)ResultImplprotected
    resultPointer_ResultImplprotected
    setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfoinline
    setLocationInfo(const LocationInfo *o)LocationInfoinline
    setResultPointer(Result *p)ResultImplinline
    skip(unsigned count, DynamicContext *context)ResultImplvirtual
    toResultBuffer(unsigned int readCount, ResultBuffer &buffer)ResultImplvirtual
    toSequence(DynamicContext *context)ResultImplvirtual
    ~ResultImpl()ResultImplinlinevirtual
    XQilla-2.3.4/docs/simple-api/classATAnyURIOrDerived__inherit__graph.md50000644001725400016040000000004013273140074022620 000000000000003807335652d6c0a8921484fc46095e60XQilla-2.3.4/docs/simple-api/Timezone_8hpp__incl.md50000644001725400016040000000004013273140074017126 00000000000000db129134735297217fadaa8ddb6d17f1XQilla-2.3.4/docs/simple-api/dir_000005_000020.html0000644001725400016040000000376013273140074015707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    debug → exceptions Relation

    File in include/xqilla/debugIncludes file in include/xqilla/exceptions
    DebugListener.hppXQException.hpp
    XQilla-2.3.4/docs/simple-api/classInteractiveDebugger__inherit__graph.md50000644001725400016040000000004013273140074023402 000000000000006d5f0d5dd44acf34faccbd1d913bb4e3XQilla-2.3.4/docs/simple-api/DocumentCache_8hpp.html0000644001725400016040000001667613273140077017202 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DocumentCache.hpp File Reference
    #include <vector>
    #include <xqilla/framework/XPath2MemoryManager.hpp>
    #include <xqilla/items/Node.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/XMemory.hpp>
    Include dependency graph for DocumentCache.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  DocumentCache
     Expression Context is a storage for contexts. More...
     

    Namespaces

     xercesc
     

    Typedefs

    typedef std::vector< const
    XMLCh *, XQillaAllocator
    < const XMLCh * > > 
    VectorOfStrings
     

    Typedef Documentation

    typedef std::vector<const XMLCh*, XQillaAllocator<const XMLCh*> > VectorOfStrings
    XQilla-2.3.4/docs/simple-api/classEventHandler__inherit__graph.png0000644001725400016040000003575413273140076022164 00000000000000PNG  IHDR|p$bKGD IDATxg@F]@E+\,Nab[뺺,Ya-kPQD """!Ԕ~̽٘>0sΛsf͔3C0 ^@. 't9!+:@;r+:z߾} ^ȍ۷H˗BK8ȕ͛Ep~MQYk@. 't9 P:ÄiZ>| zJK}/5*^(CuAe~)$$$>>^ >Hed```dd$29Nm^6l8rdfff"X,Vxx &LbBÆ KII ;vltt4BhѢE'S͛=iҤ(X&É>}ϒ%K={W`l쀀|4 h# Q}}}ݏB#FHKKß#uuugggЅ >}w/ݻ^`ADDDuu5⚪;vӦM]v\pcǪyŘ={v|_bcc׮]۵kVj@2@͝;oJjjݻwx{7o&Hׯ߿lC?^GGgȑ{zbYډ'B555e^r%$$ !dll<;v%Bh;w@I"##&<8--6##رcI&qg? &wt|po9&ɥ{쩫;+ޞ_ٙ`:u ?Isss;vϟ_~z˗/(mSL&"ɍUZs;ѣÇO<7Cb*~jђ%K"d͛7=<<3gΡC͛G ,X L ^zM4ڵkkYpm455L2bĈիW_tIp3̣GVTTteƍ="b8-TO ?j?1*@. 't9 $]@N r՗/_n߾%s8@@>QZXBe2, (H>o& bJQ(fjjH$}#%d0X[_8|g2U,VŪpdS4x"͠>-//}]IW (2a,@ƍЎZZlFFɇgnϟ!bq&ڨ[7 ;;S[[NL,$ ]tJǪ˗ssee 0 p]L&-0V*V;B8Ԋ VXl 3x%]p#@]m[BbbǏA͸IqL+OB߿߹S$M:qqKufnc2Yl6H$_@IԂk8'G$V9n\?OM}V]݀".eIXX_PDw%6 .@o0!wH$+VxI\ŋYd2!b]˫k(a\== y@ [7FؠM Pv={Z 02ػmLN~ʽd0Jsg kjL$44(݂ Pvwᆲp8d%d{@xptd55RTiʿx1oRd9n=*0ә3H$"^H,>~٭[mmM'V @[IjkM6lO/]Zz;&{)4<<{TQUU^bpa())_by Y@@ZޗH$tfjee||ܸ˪F  a 9;aoR/?!dbj(@ cg)+r%GesG::4@ iĝh\]w8 'dX/PNp /ݰ!.+d73619rС7m+}]c*Wuֳv5߇_uWnn6e-êR P UU{8uꮳݶm{l>޿oBwd2qӦqs纷j)㏫yy=֬i  bq"#ի^X&..#s@DG|Tgӯ_? Ъ-CEwxӦ/3f ^GGG]>26jotssHJZ{Cw_Fښ(* [pz>Uؑxc*+6XZ;c`;v$~P/#e{(䭾yDΜ'}*H$ur޽7bb23Uth@rtrElx -]mBs?Lý{fr[xMr՗S#f<ѧOu+WzCB65#cڵcc:;oݾ*^@A::nÇq҈`KKEhj͝랑矩gf mޤzEZn" .\xm[嗑f iE7R`4>}2p9s54( 4.߰bn֭mh舚.ȑԓ'h-\8lƌ{%?9mիcGޯAq#tneθmc>8q#2>+R#],1ӧ]XYԳg3. I9st2snƍ޾3矩rzT JK+EG?lʑc!/~d߾f1m(kkݻoZӻEg==rJy@HQQ Nkcc;{{7 94ZҠ ֯Hׇzϟ?B!):"n,""=矴vW l58HÄ g<1hP;w-^<2rrtNHXN;pɓw hk7ny#݀ /_^bGp4?TAGtp ՜;&'&0-%11 :o} ?*:.@,ƌ?=}ݴiD"Ei_%::ӧ*/= ~\AteQ&62IN  H!)iѣ3 ?sٲJA4d? uPtP@fDoߴOcձee*!C)ڰ!rѢaKxB5ۻ{ވy: =8{|ƌcGmmM֮\ WQ($??;wm>F+m~VqH⏗K>=PAPHӦfd_vtlCg۷_BðWs-qJ}|+QPMMéSwI$q?(@'vQ_:~ ?wﮛ;׽]e\ #?޼xc\]>|6خhתj7n㳟D"&'80XGA%x7 ڷ/y?Oold): N/NX;w&R(_=yU8, FxLLt/D&Ñ[@=wxӦ/3f ^GG>~:z4 ssK=~⃖}jٲ(?&&7o qAXZwFKHȁ71Ag>|}gV3g,7StP6֭ܽ5{[/ZtRX .hCڿ?9$dhjjO{{7 94ZRjtPq^}:5b}tLO_r<^ Rn))VVǍ;p^RRtPYtzW+ ,GGˈ?Gu).MSt*ZR&Ο?/ "pH@. 'tAR\\Цɧ% Fhhf׮]7o\__/΂YKR5߿J{dddaO_vqq߇ B&׬Y#zE-tҷo^xcǎϞ=[lٷo _͛666wޕnmI==#GTTT},N:mWOKKC;w䍖S4Bp'NiQsq8C9::꺺^A?6b6olcccjj:cƌ*!Hfff|8ftuu꒶ˤrrraXtt 0,>>Ғdbk׮I&{.//k׮ |aX``uw'3F۷/^Hjj*a~J0IHHh6 օϐ'N ?ʡ%1 cX[nٳ'Dj@3fj.<<|РA,9']%t)Otnݺr?78/===lIA0~uIA@DN2e C[[_9!^x[8tMu3466Oݒ ܹs, lܸʪy!Cw֬YnnnnNJKKSy&ݖ6fNNw'O%ݢ"g1OCC#??_0B555۷oر#` _h]RnGpMVt…+W 0k׮D~233N$~Kl. "ZZð)S#GX,5W]]U9""l1uӧO[YYq'NiisYYYr/((~ƗwgiiYRRپ}Ź͛/_4[[[˼  ӽ*++7o<{l'N\n۷o򼽽>,d!A<ܥZT2hљ1cF@@@bbׯ322BCCZT`CCCccZ]]͛BB\xܹs=<}>}%Kpojjq*ݻ]vuԴƿiӦ Hy%7|[-tY ϟ_SSxZ d2 ;jc|K բQH9dՒ,k˖-{Դ]fM]]]S6u=r߾}FFF;v|}^CKKG8BEfC LVz3iۛSK`` ͖2<ruuIQ+V(--IQ@@)D*ޱX=³ @@-v$ɝgf:RQQ :UC?aL2eТEml)~ /g#Dd*M]Ot@˗sr6~+B!ij=:cذ`4DG?ؿ^fca&&YY)tQ#М9h,L&ٜCC(M 9+VD76X, B$1vl_ij}A{aXnLgI$b>6iik$ȸ߾ݛԯߖ[++klBD\S&!rH6b?5jߘ1h._߾{"O/_$v tA;bq23_]wz~Yw55rc#wٳ6mY^^_iǏtn`ESSM >D"ٜ~l~ӳdX??H$yG  Z[[OTӠA]d3I/ _''\򤼼JuR{;. ISr#zۑ8$xzL&Yx|B0ɕD"٘?SǎG&KrZݗ{L&_?f\4ZV_A2+ޒ2V(H]k{eBB΍O,|}ן{ KDr8BD"ayZTˋeTj!CC^ٛuu5:|MΝBϐ۰wѢ[Qn=+sgS KK{A`={Z9P=a / UVUUK޼Y߿oѣ{w`7guuM BB[7ZCC&=}_ Md2i2Po LӞ~U<{1$̸q~ed3xQR\UB.5vAݻ䂄ǏKciIDAT%dݹS'24dž RޔN!ƺII+{RxN==\]% @Iy/^]C701n3egc2Y] V'~5~fB!S89oР.WX,Nvv VCC!Czz9@N 6>- ._~ccaú:bǮ5/o <3B:?&jՏ;BL&k-ݳzRS渹9j-mV@dfp;yy9QN>6 .hKlNVVIBBի?1R|}(ɍ܌һwdž~H$޿ں/gNp7ff ;v4b9?|.11ԩ9Zv TU޹S=S'c77*I?h%tAJOA$%PN{KC˸Ćּyښl:A1de_ܩfs~%:>ɱc3A߼ZZjdrJ.P^II={ZS=ƏߥX﷑'WIٜИ9rdOEӼw*ӋxR=T^|Ҁ NeeMJJիii/l>v̘>J#eθ8 ֯iE*+k{ :S'፿@I@yNQBBSPۻ7i߾m&̚XdGhEEeZnn^^=DVI  rmggJOe2.u9sK+z9 E d۷7 OW'bwȭۯn2n<Ejk|L۶m$] ʤ|20fL|oJf\\x[׬YX 0?TC2p-`.Z]] n=||zsT8ΜXBh^E˫o~Rxֳ2 Z\{J˗wT6ϸg3֭bȕ+G*:Ũg>z&9E<Յ@6 fpML-)jmm8rd///'WW67V$⢢Ys~׏Qt, EYJJArrAVV BrqK _H@Fփ |Rk%Ю2..:AhhLHȰ |R*9)^  }Jkǎ3.eˢuߴicQ",';F+LN~g-77O^^NZtB}^\Rxfa}=\;zt[[E܌ҧO;ʸ+W,Y9eʠ;&>u23v HnVQu>@ Sg*i~=<r, iǎp&'? GqiBBNVVk,A员hY] fs >2+>AmG7d>zF__ ?!6bD--5E, II);yWLKK{A`={Z9_/?y >= d\nz6gQz80= ǏK sʾ j>F4 jM;v4g@;8^ 2o?=WCAޕ <%jj$TӨQ +H*F+qiyy5v..R۬_͘qlpC9iw/޾߁i3*k{eBB΍O;vܸASfӏ ȑwzuzzQRRW_ C% aUU4Zիii/l6=xMJ@m_OנA]CbdooT' Ed ncխ[7rиqLMZ @ƕoNĉweΝ"|ﵝ:9/] n]Erߦ3w/xd J,/}``x߾6'OР(:;7/v_'ss=EG$IW~ @ӳo_xލ J)?400{w3gKǻwEAzY62pOKiK_.4>N1 d\((pYȻr2~Tã4|#tA[IWp^wc*ݽMAƕGt1O{'w;E_uu@Q *6= >X ˗th5n/P_RR SS1 $IWa:IIu tlTdV՗ɓEGe\C_x+o5))y}}}HZdVuɇMMuC w~:yy9yy\ѡwtÇmD"wR{(:4W޿6ya==͘FFwEee ~Urr^}A]L!_vf+0 s쯥5d''޽ 䴺;;;J_Ν;wʤ/G!.]zŋ{XY5XXXI_NIIɣG/}ZpAN3g:(:"H>>>Ҟm=0zNShnag~e.ŋ00?B]ߕ,mxX0F&˿^2, !Hx{E;Zn{`2P[{$ {خ'eX! N8 YjfX1112)= IQl6/66V&#SJVuMR@. 't90~qʔ):::Η.]mXbb0vvv]vݼys}}B"Abm@ K,-#TjjjV^ݧO;v>ͨ?f̘7oވlqq1h#}x*- :tʊp`֩S َP _[QQѯ_?--ݸqE~ĤU-t/{ĉVji򔑑Gk֬GQ.\/ѝ%NHC[!T]]=pܹ3;;{ڵ^^^1oϏ?q8iӦ55g:n8G222Brrr2,-#=<&$1144͍bq0 [[pמ߿ UE_-!1יZ{RK.믿zxx45s.bvB6fVIt/^|r)7o>qj̙&&&֡yhdd{nРABRL&sժUfffVb2,wȑ Owwo6U 9t萣kjj*9Lbb6olcccjj:cƌ* %xٖy󦍍ݻw[soŊݻw?>&0PDg m+WXYYUVV"Ν;PSS#ݺu333[lYCCCsGEFFnڴD,ګW=3g>'z`xyW:tsN$Ъd{{{CC;v:|-tjZSRS#$͛ŝ}ZD3nݺr?78f#.$] OOOݻw|ߥ2UVVZ[[OȤm'tys.##D;X, 7obsN|NޖP(x744<{`촴4,BFg&]nk ݦdCgMݑ6o鲳x?|Rh%L0am߾}DuIh2lO߻wwÇXSS{P]]>=//OCC/^o6Eg78w ٸqUSjjjpkOXTT,f<M]ghllI).l.;KtnJ">,_n-Dꗛ]"ZXXM}zFFF^^ov)J@@e޼y 6L:UDQiwĉ׭[ۼ}>}%Kp jבa(;;={ݻStgpfϞtsΥ$$$;!|G"4MʨT7:wԴy7m$zYZk%5Wb%%%'Ouqqr _߾}>}qVX#3L&sȐ!:::D:>k,CCCccԈڲeK޽555mmm׬Y= X`cc֭[ttt\]]n۶K.ܯ/fPfooY ]s on?V\\ܵkWdJ8S>$M?666fgg"$~(KPy:XU57&qƭɓ'ϝ;'ۨh@u-X@Q 8pCUt,{Nv+: ၏ rIH@. '?ܽL&Q \``L!dqH$Rtt4lL&} {` z]}`:PζҗsΝ2iW,,,ܤ/ѣGҗZ D{;`Du 0V $]@N rIz_B{%IENDB`XQilla-2.3.4/docs/simple-api/MemBufFormatTarget_8hpp__incl.png0000644001725400016040000004121413273140075021137 00000000000000PNG  IHDR<E`vbKGD IDATxy|SU&]h mF,ݐEddqDp( #?Gd"3,R|A(RZҖ%mz1[M4Ͻ9&y'$IZyp@-T@t.|͛7o* Zvɒ%ڵv!#-7oܹ edd3BhܹE]/##%OFhjFhj\տ6mڬ_^(/?aÆ6mj;g `Ix|V}J\w?϶VJJJj߿>IW?^\^^^~vqqq${^y~W_}i&N3gLOOBs=[nyyYѢE";##C -}]=:TՆlR9} :zduu"&&ƶoC3z^^ B !DC`9@5-iFF$I?߯_?寵+W3f̘1cV\Y[[+߿_|裏=>ڽ{ĉvZjB+W(g)O=t^gEEśo9jԨpчzĉuV?C ;vG}m;Zn:33sǎ=ß{^/C|sG4iȑ#7nܨly1cƼ{FnnGhOҥ`8ѣs-[|_=O>}ժU5k|+$TUU 7o^tiՃ rT+۶mSZ $xwV\[o>|?駟.X 99yU7o|W7lOZvӶvs֯_OG&Mz:;tЪUϟzj0n߾}ɒ%oơC14??OiߵkW˫8g}6&&C3fz(88xB~888xȐ!Br 6|)Sdee 0侊~v޽f͊СԩS#?x={ r^U@@5kfϞ)VYYJ1N:ʛgΜ&,,wSNu~۷a|';u?AeҥӦM:7Lqձc* :jY̅U]]e˖{O>|rB-yfs֭iӦH^NHHP*Nw~`0?˸IGy۷W۵k'/8:tDFF !,qB+Rvn#c-]vy'9[),,wޑ#DEEEIIɭ<00pWVΪ2LZDDD$&& !󣢢?Y%G/^x>}Fyzzv7{…:ȍyyy­:"|K.ɩQ#c8= @>Clٲe:uʽ޻jժk׮̟?.?  B޽͛ί$… k֬8p݅FVWܼyS<]mt=>8r^׭['GN^)j˗/rO?dy]FK xGnjc>mڴ˗?1c+|gFӾ}ŋk4iӦXbÆ O?~z>gΜL4Ό }'_{f͚= ?-[v:v_qFm2y7nty̙K.NoݣG种 8矯0`V[h p݄ -ZB|ӱcG|WZU^reNߴiӄ Y@aF&''_?w\uuӧ׮];|poh@hd~WUUeeeqqqC9rdWb#V;mڴiӦw=+0FhjFhj\nSXX*5p͛7Ov!ޤL7]t8oWC#Ik;͜w]pM U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B U#P5B UH n˥99E{S:bD#{x2y@WZeQӮ]PO ~iQ=G"B ^ƌ][kmhDvQ:y$!%))&%Fj鴿]^) c-07~~o(ѣ{z!k^fٲOӵk|BBJB Z3L/%we-fLw!w'):B Z 7Ymeܸ;[Z1v읒$ !ZCy cȐ/-<ЩE o{]M#m۶/_vME``BXJRki*̙l2oW Ka]|yΜ9}v!MoT,[L) }w}]~7ov \@-T@-TrũSJ4yPoPvvF'y~GNgyxzzz@@'&99jCj4l%=n1w#[Bhuپ}ѣ7nxios;]ٳ… gϞ]VV&qSO=hѢ]=~ҫos}]5^DEE.<{ !DBB˹.!^~娨^xA`+8p0;vׯ_+nk Ba6_n G)\sl(GF{%K(OhzzzjjjLLٳ6$OBlڴcL裏^z566СCr[o5v؋/fffkΝB :t޽/ܹsff'뮹s:UQQrʂ5ktKvK$oKnnAAA@@?~ 6! ݜ8q^_zb„ z>B-W_>|$I-Zի$IG $iҤI 8|fff.]/^lYɱcDŽfYI,VX`^z^~VZ㏒$˱ܹs^ǎ+`4,G)Pp>6***j1b^ߺu9:x`RRRUq+IǏ_#qnݺY~LLKK+((ӣGceff$I۶mzieٶWIIo]ZZj6M&cǎ-))ygΜ0LQIjjjvȑК{n…K.6lW՞}SN=Jcnnn\\>_~~F1""nv һwuY>yB+eG3$$|~={~7>|ڵk&cǎr˗/[V";|o݅7fddݻw˖-V;5~͛7KaVIfĈ.89v9Zn-{2Ҕ6- .]|>JcTTrIuֹr˱c^uG l޼ysIIɴiFYRRb_~9dGE5 &L7oѣGWX>7lذ^z={ojsrrϟoӦe%;w\O>ٷo.Ϟ={ҥwߢEf̘au9{߾}8gϞѣG;\,Չ[=dž-2?!T@hԙ|֬YW_}sN|233 [zG^z饓'O66v֬YݵZرcg̘__111V+/**jѮXN|=ղ!Xz7og>|… 'O5-|뚖{{555$}gqqq%z~ԩӧOjܹ[ 8qbiinKM6u1 ---==nb *-[ֲe˶mۮXbĉ111үl2N'_"_YY0|eC%%%Gh4744T$:FzĨYf)[5iDh${o 34ͦM&LBegg'''[m}O /-|ܜ9sH,c0_*>}?U@qlB>_ZZZZZZZZZZZZZZZZZF$ohz^\Pp_gμWFy@$$Dj4IHd1Dh˸qwjV|P/#Ftn{oJTTKB ^‚KjPfi;RZ5nܝӺk z>;,[t:z$/!Y!CkI;KB ƌm46kпB ?yO鴣F:a Fhv^b1c87 6{h4 !Z ӧB =CTTs!ĸqw޶ Ç{ U֭޽塡7ov-j B `ĉ?oWjZmz.Dnz h4\e2Ə駟z4nU@c9T@-T@-.^8u:h,k,1… wBɓ'h4[]ՕlG(y9<<^p+((߿l};q\5@#”v>frTTԛo{tttVqqqVηn HHH5p;viӦTTVV !Fybcccbb͛g4峕넄E%$$DGGO2L^m/!Ν;uԡC !jkkv/.. i֬Qw-sSjZ6ڵgϞqqqrN܄;wnUU9pFYvmN|׷o>,,cBf{ m޽;)))""bɒ%zSSScbbfϞ]]]mLfǏaSLyG^{!;vŋ333{`s !wŋw933ĉwuܹs \reAA5kt:]EEҥKv_v%I%7*u6*%IB;v\ggg?wyz}@@?~ 6! nB6iҤ?>33K./< B'իW !&L?!Dqq\ҹs,|C'Q1b^uVyrgee>_~~F1""ª< JBHJJ||@@@VV֐!Czn:+vdرϤ˗/[YͅVvB=kݺOqNKKSjp#B ٥K/_>p^iR>k֬?ڹsyyyC y-{=#/ɓ'O<39huV^_SSl{zzQ !oe555aѢEBrG衇fϞ}…'O˓&Mr}[{l֬Yvp_=y)S*pkvb7npg}6;; .T&}p'/+״{ݻw$>/ SN>}zeeuUUUsmݺuXXĉKKKv^$mڴcǎiiiv 6̲^{-<11r#Gvo{ v86s?JJ*];i7eĈÇwvBܸqٟܬ/^˻.h"]hɕ脄;Zvܸq3/6+K["I}V))))#SS\o9gϩ/:11R))c1p-P7G_~6MJj=1ljPs;}剛7kt4ݾ}B[ErsmcL@](%cZڵk7 3g+aar>Y@ee79Wtuum^#G9{ll'pErsQΓB &|Jŋ?瓳g>_YY- VIjjHoyz޽gv:񓟟R h4)SAMMNצMDBBQRRb;wny#/=vݫL#A6FZ4(lcLVժ*U[))]7AhBr>˻~tjqTu#ȆCv#ȆCp+zZ&䧜A6Bҋ-s%Bhe:/BkgTW `!Z!8q_.fy\AG/Pɱ 4Mg^P|aKͤX>9)΍ NWbc;1h"-}tDq}hy9]4A6BH/rRu5 4J3'7)!ZnW]Pk5{CcCh!(6A6BK}^XGg!m_mdXX -H/>buimIIiz8Dhh4o^]3j/ywDIMmDg?n1"c;CIrrlfg@--0'q#H 4KñH~e1]so! "QG%}q#H"44ҋƘUUFa1B nf5Mbb$6n!xRmʕR'*1s6!!Nʌ/^g3Sm6(n6#xe:u͛vb nAhf53B`9(3'$$FEh"ҋY;uj͝[Eh~E 寞={JfVn~5 Uq@-hqX~;IL1/FEUH/*❸RSbb1! ?/O?xO'H/U駂rh-.8t^Ϗs#g7n~h4wx&ԅҸXŘg ˅-Z4k.ЂF;+kz!DAE/^ɱ|U-n22~z)44ԩLH/-1%4-]?}:ufnĸ5wDzV:vĻ87 4v8_1"@]lohȔV-]oSWZZsqn^zi &m۞^) >饨frrDzCnnm еkey41Gh78u(l(ܩSkUݻO>ơCN&r׮5'>|aԨY5FG7?I2}?"WLדESp'B ڻLEkV3={B,8,Jʿ_w jV[k^dʕBfΜyn٤Ht睯)-'#Xb0qKյ5o?+W]Pw]ykVflsRɏ?^>#Ç/,Zر?|o?t{+aa_UPPh6˯&A6Yo2,۽{n.mXyzٹ̙?Wt6m׭Cj*ת5255.[~;55.0Pwwc-ܾ IJvvkܽNW[k=/Qok8/΍ځfXW^^][gS 3dwLK&&F~^ nz_}uZyq~ûբ(qBNr,FHt/խ[[5B ~vz;?S+ ~O߶mKh &˖h/Y36thaú}wNG.mwINN$ ݳ|z"48hl&c!M72/q|o@rrlf^ALҰa^ziH!@ܼY.[oѬ|C8vUI2[䓫gWTj:Hfm3glx㍱SC@m}w_oe:0/\a/ ֯{5kc f;ٳյoݣ"5^ƥҤM~Xd^_e2ٽ !#bSRbcÃ=[/gXwFmk}W_ 6yy_$;ZO?=]aDIk?yg~~΅ڱc2忓bCC]|$I+V]s!4cdQQ͏aп?~yӧv-e0'3g9W٦h4|j""B:q]\ ů|!ʚU϶$I7o> &&&:gs%h/#BP\\m45h:tTxtE߾mOԩSޮEo<p뿏^Gn{7of? !L&sqquxXO6Eݿ -zAr~~m++zI4h}竭58Z^B-o`2j!DUUmMI!_d4VWJz\0**WHW)55:22ۅZuuuQQQ?8gLRLL- r5v|--.--.%%6 vàht][iiSg9SyܹkCdRP18805U׮m:uj*,}PB ~%""o}͒PCbnqܴpO¤a=H,=CŋNZò;H( GNyf==== ĉ QvM2%Il߾}v%/ s…g.++Bܸq㩧ZhQ׮]rK}]AA˗?C^߫W/7n?p<3rss?*--oMNnu\ʞ»2Pey\߿l6O<*a@ָ^C !DBBʃ- Z~cǎ~˸<,ʞW宁*~Wqqq=zXjw}'ߩE׋-(㔔J!h7o^lllLL̼yF_hѢ)S(?#Bܹ[nAAA:tX~n␐f͚Y~,}BvBu֭]vɒ%~u]hfΜ;Z~ݻw'%%EDD,YD9驩111gϮhxMp !Ə駟*nٲeܸqn,*))KKKfsyydr}ر%%%?l65JNHtIw{9Jh;,2VZ$IzWZ庂,W 뫩z $ƍ {9^^^N^|沲\eׯ ۿPP=kG֕]%!DVV5 AAAvmfáEjbO~222fѣ?ɵ>ɘK.Y>233SHBg:)CɸJOO۷o=9yit+kvlqq+͚5;v옲Q:8"lKj1"☔|\\݉$ʒOpԨMm[^^~={8E#2Nƌ՞J0 ''ĉ;w8<5P=KOT/-/'9ztPZ\ʻ}/Cۤ+O1_Z|rL6Ћ:7{...SSS5M{ 3`o,c {ݻw!3zԩS#"""##O^YYiUUUsmݺuXXĉKKKv^$mڴcǎiiiv 6̲^{-<+vvcwxSIJJJyȸ97D)IDATs(vLzfz2@lٲ-[mvŊ'N?Nvv-.nvҥIII!!!}k@$AAdd٪psssyyy>@ ƍ  E__&s]|yͼ&>$߼y%I}:Y6N'@~~>oNrÇߝ&Haݻm6ߟ"d2ݿsڵɒyve|||l&a,ˁ۟={vcǎa lrʕ(EQR48@0LJVnܸ.^"رc^߿xx8Q6B"WXXȝܹs{/## t .$?<..nwܱ*++ccc.\Ǵ7\x}t:{@. 0k֬]|~ss3ibݻ+**rrr <{7n=z'N(~'UUUh4JR X$< ۷/:ᑑeeemEEԩSmH$ ǎ6ڵkڶm[ffZ&SN~G׮];~`w}ѬY`֬Yuuu=MbBחlذ;v͚5v'''? ~嗛6mrcǎMLL~zWI h$턄!Cدߨ.^M&Ë֯_kuuYYl̙3L;lO%%%74EJKKnjӣ$rT*h$m{Z|\F``'OjiiYti_dSL1)Əo"m&9mƌeeeGzCOTcǎY/0 N0.3Fciio`9|pii5k,jEQEEEӦMoooB1j(hnnp8``2?6+.kll3s޽U"@TTѣGMSQ!XEv} Ǜ7nP__o {|'Q v]RJ;wK#**J.d2[[[JǏoݺsNBAbXs׿P(ȋ(Rϟ?/((0swfffFGG?qС޿۶mNիWT-[\~]._|9))ᘟ^XdWm2uTFsȑ۩mѢErR~zVV_<{LOO7턹s vJJJ&Ol~w%((߿TDrr2ipO?tjݴiSzzlovڌ?/_6?֭[;::͛'>|hzhڵ֭c0fJLLwwO?bEFF B6ݣ"[LXٳg_xqvjc:O<7nΝ;~mLITT;KA;mb]v^TfΜ9?`p//\; &lҝ`OA!z,#}wԁ eF|jfz|C~b+ӡg8\*֌>=ݵЉN"tk@3}Ov\\Cw9tiktC'NDrrp]KwE<=ZqZ٩/.vs C"zq^$J>g0KJ>$qRZ[U^o4R;g-NzPTtfusc1?>%\]q8Y,^hQ݅Љ3^k=@ @z=@ B@!z=@ @z=@ B@!zh6oL6!C̡tW|Ï H.O6 bz޽O' 5rHPo z=@y`0d2Y佫ǁ[>>y^ %l4|Ĉ0x|0m40BNrSRRt:0Ç;vl̘1;w̙3</-- z]jժVZ[[z-n! ŋ'OvZSѸ7֫>@ NMMp„ \.wƍ6ة=w(BP(|a7(ּݻw/]Rt۷o'cbbjuff&D"Z}Ax1p63t:Zvuuѣ'NJo~׶nj]Cllldd{R~to[RRrY___NGQTvvĉF-X@VK$R$0o޼r@`Jkrss 8 iUUUEiZ6Ibӧ;;;ܹh CYYmp%'!tg4,Y644H:gggVuuumooߵk/NNNnhhf/[lƍuuu^llE戈^řO76m$***vرrJ;Wt:̙3=<j'9r}:;;ܹh CYYl Rf?cJe4 UUUEiZvmm-)JM%̇+ ... FtEQޟA{/}ڋvVO82ӝ}&Mj):y$S*Z>3fӏ?vEٳgȑ111\.׺qƹZ )u5jٰaC{{pZfooo__߄gϞA;3O|!{9{_<h6lXbbb?NW^^޲e@$@^^s@z=@L, 8˗;6_7ҿkt8w @zɏgcIENDB`XQilla-2.3.4/docs/simple-api/ATBooleanOrDerived_8hpp__incl.map0000644001725400016040000000114313273140074021041 00000000000000 XQilla-2.3.4/docs/simple-api/DynamicContext_8hpp__dep__incl.md50000644001725400016040000000004013273140074021254 00000000000000adcdd88e5519abdaf83cee9f0d82087bXQilla-2.3.4/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.map0000644001725400016040000000065713273140076025300 00000000000000 XQilla-2.3.4/docs/simple-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.png0000644001725400016040000000722313273140076021437 00000000000000PNG  IHDRwbKGDHIDATx\Sǿ[ nR0A 0 M,^^:EPL0BP"ynRaV$C7@q;S\!sc:=s>3x̌i c=C A ")D R1H!bB A ")D R,:Z,bBPS^~.00HTv  ھm[IHXm2 A ")#F&e1b:b]b)6a4S bJJNN<?1#޽{jz TV{y=p ?Ϯ]y3&OzvSf溭[߷:z@~~H^"6>>i͚W.޶reiw))lɐo&cogÆ) }'' 'P-he\gx.< ܽjoh:6**v۶cՎ9۷ uVݻ>nf؇2y~Szf3/i J2!!nٲ22r0.FVf|l첼ΕI$P0++DSogJ6o~"rJe^^"`sΊlm6n|ﭷ[Z-y%33ugmۜ1Cڮ[<4t{xŋ <+i~Lddd{{'?dצOU9Az%!aɐ!ܣG 󧅈A)<= $!bB A ")D R1H!bB A ")D RҦM iOMݤǂzwg}MeS__wDj1reK/E,f oM2 A ")D R1H!bB A ")D R1H1Wvu6yϵk5fl0 b!Tf1WWw09 gH+++N4$i>LJ.s١C{'N=r<k74ZRX|T^^v$OMiikϞJXXOeS>ogg_^m\.ʪUۘm7777p8/#̉ gajjMH/8ӳ`ڴЎ)!0add #Fg< 11W'#!X^^{s>z6dY,ӁA ")D R1H!bB A ")D R1H!bB A ?WVP[ToL}}kYL\ܫ թ߲ƍZpwiS;99=kEbV$$,l_lؐ9)D R1H!bB A Zϟv^ceZjޏpׅ\HLLd;H9k'3A!s R1H!bB A ")D R1H1e1EY^z*ۉxKH _zq(-- _}ڴil'SSTT*֭[ f;ܤ$kk몪*h)1 "W^Y/bb/^|Ex111`AR]ʕ+ yyy'Of;;w3f;yl'e2JbڵW677طo[tEP!H4DvLj_jnnvrr(ǟr8~1vvvaaa=g6^+`b ::Z3tEVGGG>1 J#3wew|xLLLss3S{+(..}{!Ji>v˗/k'''GPwTgﭔ+'wo\ Mn챴kmmm{{h;w!CNzĉ߯z+u^?arg`'3gYFѱIP(*++C|>sM6jZ,K3ch.Rz0Qqqq .)))..fGDDd2T:k֬;vtmhѢK.]t)>>^&L |ǭʪ?4^aХ=n߾= >'inmm]dɰa/_ΌL+R)|mTTB`woE#G\OQQCz+ՕF;Ht{vyǓΐ_0B A ")D R1H!bB A ")D R1H!bB AΫ/?JC&Ϋ&FLIt9&A1H!b_rlIENDB`XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp_source.html0000644001725400016040000004032613273140073021763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaConfiguration.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef XQILLACONFIGURATION_H
    21 #define XQILLACONFIGURATION_H
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    27 #include <xercesc/util/XMemory.hpp>
    28 
    29 class DocumentCache;
    30 class SequenceBuilder;
    31 class ItemFactory;
    32 class UpdateFactory;
    33 class URIResolver;
    34 class ASTToXML;
    35 class StaticContext;
    36 class DynamicContext;
    37 
    38 class XQILLA_API XQillaConfiguration : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    39 {
    40 public:
    41  virtual ~XQillaConfiguration() {}
    42 
    43  virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
    44 
    45  virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context) = 0;
    46 
    47  virtual ItemFactory *createItemFactory(DocumentCache *cache,
    48  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
    49 
    50  virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
    51 
    52  virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
    53 
    54  virtual ASTToXML *createASTToXML() = 0;
    55 
    56  virtual void populateStaticContext(StaticContext *context) {}
    57 
    58  virtual void populateDynamicContext(DynamicContext *context) {}
    59 
    60  virtual void testInterrupt() {}
    61 };
    62 
    63 #endif
    virtual void testInterrupt()
    Definition: XQillaConfiguration.hpp:60
    Expression Context is a storage for contexts.
    Definition: DocumentCache.hpp:52
    This is an abstract class used to resolve URIs in different ways.
    Definition: URIResolver.hpp:37
    Definition: SequenceBuilder.hpp:31
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    virtual ~XQillaConfiguration()
    Definition: XQillaConfiguration.hpp:41
    Definition: UpdateFactory.hpp:32
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    Definition: XQillaConfiguration.hpp:38
    Definition: ItemFactory.hpp:50
    virtual void populateStaticContext(StaticContext *context)
    Definition: XQillaConfiguration.hpp:56
    virtual void populateDynamicContext(DynamicContext *context)
    Definition: XQillaConfiguration.hpp:58
    XQilla-2.3.4/docs/simple-api/dir_000004_000017.html0000644001725400016040000000377513273140074015722 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    events → framework Relation

    File in include/xqilla/eventsIncludes file in include/xqilla/framework
    EventGenerator.hppReferenceCounted.hpp
    XQilla-2.3.4/docs/simple-api/ATQNameOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073020365 000000000000004db6c2b8369e36c3aa65eca44e8ab9c8XQilla-2.3.4/docs/simple-api/classXQillaConfiguration-members.html0000644001725400016040000001645113273140074022125 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XQillaConfiguration Member List

    This is the complete list of members for XQillaConfiguration, including all inherited members.

    createASTToXML()=0XQillaConfigurationpure virtual
    createDefaultURIResolver(xercesc::MemoryManager *memMgr)=0XQillaConfigurationpure virtual
    createDocumentCache(xercesc::MemoryManager *memMgr)=0XQillaConfigurationpure virtual
    createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)=0XQillaConfigurationpure virtual
    createSequenceBuilder(const DynamicContext *context)=0XQillaConfigurationpure virtual
    createUpdateFactory(xercesc::MemoryManager *memMgr)=0XQillaConfigurationpure virtual
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    populateDynamicContext(DynamicContext *context)XQillaConfigurationinlinevirtual
    populateStaticContext(StaticContext *context)XQillaConfigurationinlinevirtual
    testInterrupt()XQillaConfigurationinlinevirtual
    XMemory()xercesc::XMemoryinlineprotected
    ~XQillaConfiguration()XQillaConfigurationinlinevirtual
    XQilla-2.3.4/docs/simple-api/ftv2blank.png0000644001725400016040000000012613273140073015225 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.png0000644001725400016040000001420413273140076025640 00000000000000PNG  IHDRbKGD9IDATx{Tgwȅk . GmWݣVD+ UoKp . z,EZQVЈ@$@b.3?'h$Լ1y3;ϼuf(@P-8`X11or\"3˽v]?3BhƌN¿]?F`XAV8n8n޼d25+//gMMM! _% hmm]7~mD"Bٳg֭KMM2e BGGGccz}Px ӎ;lقJIIqqqټy@ߙ3g>STyw777P*,,0aB?BHP$'';999::&''+V <<|N҂Z`K8ΤIx<^SSӴiӒH$晙]]]L&S"8p@gwHLKIIA޽[!t]gg7oҽsXz EQQQQx'Op89{{{BAQTAAIH|-zC' 8ǧ^xEM8~Ν;e^bM7!7mڤntppPPXWWG7Ot˭[+}R)I\.W .\P Ǐ80{ԸOj0s̾`ͷ  F[[nnn +--=u̙3_9I#Irʕ񅅅/^ۗ,Yuxgddhپ}{sssss }ӦMNNN0o #:X;vDEEάYJ]bbb6Ӧ:#G}JQZZ"(+V5jիk K&%%%FDDB]EQEEEǏg>>>t܄zĉ?̬Ҹ VWW#222u:KB^R)111...RT6ښ5k,--b:A}jH |~xaak̛x?^r9sL]` Ox58 p+ 2 |>~1c`(s\<YY!x.䷚1c-M[@"v"x3pOb/]"Wgb1JJngϕ}רP w5d SW4@ sm9,*.]iq p))i03c WUCA 'xJ_*demXfڪFΟoR*IpTD8>AhLRO%-$$ږ>SU5@̙|zC!D|]vnܟt$).:zF(ܐF>IEQ|>|M4 H4fRz!dn1f"1>-2qq .+  p+  p+  p+  p+  p+  p+  p+  p+#~1c=zdMvA].(|7bHLL7oqڵC/Rӧu2w>=  p++ڇH$IIIƍNMM'/6ӧO?|077<99لaÄ$ɧO_ٳgԩG={vZZڙ3gLX6 ܙ3g܄B!Bp„ !B蘜P(Z[[ 𨮮NMM=zҥKE"=v/PEEg~~>BHTNoB{YA'O}߯^|ĉ ϟ?9Bt{QugϞzY$-_=))I&psbb _gҥ˖-vrrC7uԔЂ .]p&M񚚚MD"177e2:DlePKKz944T(fgg#>}Jt޽:///C7]˚E]p|ܹPp}7y4tN^yԊ #= Bwww???nꢗ+++?zry<EQ'N,))߽szY@ `X $IT*} ]|(\NkFQTQQPGQR۵kɓ ɓ' Fss3NII:',]v1u9֖\\NԤ=v/jjjBCCg͚uܹA5¤R)haa{iN"*J%I;wtss(z@7Ø;p&秧nڴI>BngX!WW׎֭[_}^R$I.+bcc.\(u"333F{н{\]]eR^Ȧ&%Aͣwrrb0mmm[wssd@CĠ5S$ɕ+W^xn_d֭[HwI%ez͜c:88Wݻwٍ?JP̜9ƆT*9~-[/ &&%11Q߀Þp##[~@~w}7..U$133U$8`XAV}.ucƌ1&DQB DI:ˆϥ&&&O߽; !+0u!ߘ1cpo+X:yNnggerF3ٳ$IRu<Ե<8D!˽aZFazzm*Ed}ghٯϳ0DE-3@ ^WHzY릭gāɝ;?SkҢFJKWe7MUH3?)/oKBUT pC֋ox4 b1JK3BA J-B^'I @ƍg,fkh0u#q1vC||4vz;BO/̈cv" B(+k y  p+  p+  p+  p+  p+  p+  p+  p+oMUBX.kBFggYfkJ ^3&r 9s昮rBй֭C-Yn*++SGϯHߎpPG}! 322onaa*..O:xʕ={:tjd'88oٿL&+...))I{YÇfff۷녅:]PPvlHP2LA7-M555qqqYYY?cPYYٞ={KѣGB%%%䆆䢢Av|Y2x 2>_R-ZC7?~ƍqqq?_^z~XUUrJOOqmٲeҤIz) R)͞?~EEٳguvӟMT^t)>>sŊ:eٹ F/>ӠٗM666COk׮uww/*++_yDBqQQÇLr…Ȫ*};>8h7|Kkkkz!N;vرz;*..˛0aBddiu:PH+ͭ!=,|R 4[toN4988lTWAשO?d9sĜ8q"333 @ߎ]+_~>:zmF[[CчA"_Gg2BƍCEGGs$9Rڶm[YYC7j(33.z?~@Qϟ?p8gƌ Ώ9DvG<==B|>ޞnTT ɓ'S{n///zO>Bߎ2kb%/YdΝ7nܨgֶ͚y沲2^AAA999Vah""99ʕ+ dYeH$h`2iii]]]:U(Jdre```9DzzzggݻwsrrΝkcc7m4T /꺺n߾}رd@Џ0Ű3\YYH$`2?L;ƦZ ٳgiӉd2lqqqtv/6u֬_~555f. XQilla-2.3.4/docs/simple-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.md50000644001725400016040000000004013273140074021276 00000000000000b82e2f2625033a78d8b3083184f48c10XQilla-2.3.4/docs/simple-api/classXQillaConfiguration__inherit__graph.md50000644001725400016040000000004013273140074023402 000000000000007cec8a9d7333c60b001c0c063715e3a4XQilla-2.3.4/docs/simple-api/XercesConfiguration_8hpp__dep__incl.png0000644001725400016040000000771313273140076022423 00000000000000PNG  IHDRp1=mbKGDIDATxkPSG7BE 8ܤ PFu:Ţ@a,( (e ڪh MDm@ EPy:%B0ry?߼9PCdrrC@ CC hhh=H$RYb455}]Ycw~K, .n޼;!PNDܼysV! ! ! ! lm۶oF^?ydPPWTTԭ[ASNyyy]]]U mm턄[~[P񆆆]^Hc*e1KFhh(H .na۸q#Jc2 J"d2@$#""^HTpв*^x6..q=C,geefeebtloo ~^^^``ORR:(l}6Bؽ{w]]Z_^LXXXll,ZrgΜٱcΝ;ϟ?/  aaa_|Eii)??? 7#rʕ/rGmiiAjل/+уZZZ_\\<_W7`oo/r677D"EEn*mmm ƞ={,--e2ESRRK:::h4`QQ||~bbOiiihh?\ڵk啬Z }RSS>}u{?####22NOMMeff***\vG="SSoƦ(:::;;{rrRaW7;wdgg2 SYYt;wF/ iA444?~,!VVVwE7n~zxxk%xӳZ[[)$oܸq!ccc++{ף/~gـ΢<**?$6mڻw@H__?''Æ/_@? sLtt}dKׯBCCi4Jݲe͛zjЈ|h4ZYYY^^ݻ?#===400 sÇ?sjj*ÑJ&&&hӧh [222"?_GukzDx<~hh(99(f-y'FrڵT b1OKKrtt KIIY~>H$h4SSS:ÿGltt֐T*MLLׯ_?qDee͛L~+zXM"444X,곑t{ 3px<@ $&&&&&:;;Dy + jQ\ ^2IIIھ}; D";w}O>닍o`0SSSkTjSSH$ q鮮}xsX,VNN۫Nokkp8g~~>D"X,B0̠/x< w>d0J b3D]]][[[nn.j[<OR8BPߏ\\\"##X|>J|''H4>@O<111IHH  .?>!!]ԩSNNNh(--[qH$sH$R(̢ν}UV޽{۶meeeׯv|Waق77cǎm۶ Ĭ xҥE$B&׭[TXX^U  u_+ Eg/;uTOO@ 믿rss5q2<|W_}599illnQYz\m  B[1008z\2 ! ! ! l*ޚ YA r455)MEGQGQ*ojj>D"utJ_CW{6{GZ4hҬn@\S!ID"IMM$V!x<ZD7n^=jg]CC-kj઱ 15oh@X,pU^V!jkRD"ҳXц(/o{jYYZ,V!ǹoHB*EnyTeV+W q55Kfٰr qrR)r¾N&B 1881(*0 Kj9?LNΘH$/6b4455&'gV>?n!g.````````````````````````````````ATcX**ΝJ~R9rgh4U;U蘓Ν;U +=444r7Doo/p pE! ?a,wC9sf9'|P!\bjjf%%%R4==^OOٹrL5557n166Vxz-++Bq8\nn;s̙BKKK"_jVUU{d2@>H$Rk֬!T*U$RǺ:kkk4_Ηv'd*gϞ5kܹsA:N&+**FFF^^AE-p8>44TTTx|\.W[[;++bx.+kܵka0CϞ=CkzxxtwwZ[['&&7?{Ǐ;;;?s8T>zL&SUN%I_l6Qv  !o.+H~w|ZZZl6[*NMMI$YhooGD(*5;;;L&ZB6l;7oD}򜳂GOuP ""+::mذAVQyiӦ|Y?H$Rccckkٖ-[nݺ1xZZZ2lllЂАK=266Frww+0_9tnnnǎC#UWW </ Jgff2x XQilla Simple API Documentation SourceForge.net Logo
    Result Member List

    This is the complete list of members for Result, including all inherited members.

    get()Resultinline
    get() const Resultinline
    getEmpty() const Result
    isNull() const Resultinline
    operator->()Resultinline
    operator->() const Resultinline
    operator=(const Result &o)Result
    Result(const Item::Ptr &item)Result
    Result(const Sequence &seq)Result
    Result(ResultImpl *impl)Result
    Result(const Result &o)Result
    ~Result()Result
    XQilla-2.3.4/docs/simple-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.png0000644001725400016040000000666413273140076021421 00000000000000PNG  IHDRbKGD iIDATxyPW eK GSR]dhdBY6d   JvxXcɄ2:XXXB-!8t2!rHu7nv\݌N#2wc@.F%!@#h\Kr 4B.F%!@#hdir#ޛ _FEE;… 'ם;/4nKB…ǎ}ε;;M6m߾myf``~Ginn~WXɉBP(d͞N{{y{Q;wܘs1o߾+ַ?ȠsF4,,,==mqqqz~k׮MtR&''9s)˻N>e˖VT666CCC~STor ;wf_tzͩm#DvÇƤf:%箚Uomoovaڈ#Gx]@W.8ӓeoo^{MTfddJR//‰+**}gbcc#""LS NJsuu߾/[);{;?lplq2sr2= ?l{v3f,_K7o~^8ߏB"\ށ!22DmckmmT02?^??]Kr 4_.===M}_.I\Kr 4B.F%!@#h\Kr 4B.F%!@#CښDGނx[k~2qMM:U M\:+&| XΥ&taps Kr 4B.F%!@#h;wrc[={,O}=긐JF(,+q%UdQƼ& /F%!@#h\Kr 4B.F%!@#KeoooBBD"qpp{~? Z[[X<KeLLLGGG]]]}}ݻwSRR达>6QUUUgϞ!燅BBB.]dQ~iee߇<<<!rȬ#R xzzBvg8q-55jԩ.9s/AAA/͛! Bd2N+**|~@ x`5W)pxoomێ=:u7nF0---ljj_cccG6xc:`)#[ry@@@AA!D"$$$~oڲZ-0u jCOOY HBjJbALL RJ$1;wnɒ%&. OK++xѳb#|%!$66VR=hcca\@˒8%!$>>^(lD(- rVBaRRcqР3Z/ !73Y`Biyx˘VK. H$K.eFծ[CZ ^/_O0<{HGъ@A+!(nmMjk2Nزq[GJ 9ҢPH %DENsa9rbB) %X6h\Kr 4B.F%!@#h\Kr 4B.F%!@#hd\VTT(JBHYY !DVgff:;;Ϛ5+33SV2 SSS~\ww3g&&&޻wmt/BHeee@@)S<<<> h4c5&S W&^$11q]]].\`y톆-[BVXQ[[7w܆Eeddk``СCG{s(1GL1e` KRod(/ع}~zt/B! ۧT*ZmG>xC9dy-g\t|@ݭo2eȝH$bRعK}7k׮>}eN:G]oLJ#Ll$ÿioo/-- KOO7:99OT*ϟ?϶WH$nb[\k׮z irB+ZJPg# _`Z sjΜ9SYYɶYf֭mmm +!!!;;)55m^ Ä?~OR iӦMf(LaG'NbB7m488:^[FFD"DJmKdٳg oF0bs'O0D&#QQFOc2ՁF%!@#h\Kr 4B.F%!@#h\Kr 4B.F%q}PH4sǏ5k]xZeJxN +Wq `8!@#hp<;IENDB`XQilla-2.3.4/docs/simple-api/Sequence_8hpp.html0000644001725400016040000001534713273140077016242 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Sequence.hpp File Reference
    #include <vector>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/ATDecimalOrDerived.hpp>
    #include <xqilla/framework/XPath2MemoryManager.hpp>
    #include <xercesc/util/XMemory.hpp>
    #include <xercesc/util/PlatformUtils.hpp>
    Include dependency graph for Sequence.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Sequence
     An eagerly evaluated result of a query execution. More...
     

    Typedefs

    typedef std::vector< Item::Ptr,
    XQillaAllocator< Item::Ptr > > 
    VectorOfItems
     

    Typedef Documentation

    XQilla-2.3.4/docs/simple-api/inherit_graph_47.png0000644001725400016040000000407113273140077016500 00000000000000PNG  IHDR%IbKGDIDATxYL؅IR(ei`Tc\HP%D )1Q/ HDY bTKjYŀ 0-)2{nӹg{oY!0Jn0\p>1>>we47===>SyU}}=÷TWWWwg n0\pÅP7}}}|>}ojj @ĦM, bxxu@X,>z LV4M+ 77sv,9:o .deeܩSJQo2u:˗/z驩N OCFGG% OtMM͡ChVA Y<š!ىnbO7&jlllg ۋ:[tR76+츘F74M_t}D"vqb1Jd2i+&&f왃pTWWNHM@tttSY^^N;k' 555:$FTT"].m&ԍ ;Z7\œofN{5ooqr劽(HQT}}VMOO?vVn(ʌ 月 ]]]mmm`h-++sY*xQA6\~=44IպNʰbPY[[䏊ϟPTG)--eG%%%jZ}̙ {QA>|$IL&@j/|nnml錌tΖJ|x<^tttFFݻ===-۷,)d FQT^Ga@ SՅΌ&%%%33ull]P$''0EجJG_>u֭;vɓ'2L4MdjjڵkO<9??^rrrbqBBNC~(ƍBa```SSp rUU{zzVZ@(--E}[اn޼n:??OOOF[ZmRRL&;{h?ۧfۢT=tz\+}`W.>>f0e(?=?``u X7.``uႍXScnd2Ϸ o>vc87.``u B_IENDB`XQilla-2.3.4/docs/simple-api/ATStringOrDerived_8hpp.html0000644001725400016040000001075113273140077017763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATStringOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/items/Numeric.hpp>
    Include dependency graph for ATStringOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATStringOrDerived
     
    XQilla-2.3.4/docs/simple-api/functions_func_0x63.html0000644001725400016040000005276313273140074017336 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - c -

    XQilla-2.3.4/docs/simple-api/inherit_graph_48.map0000644001725400016040000000034213273140077016467 00000000000000 XQilla-2.3.4/docs/simple-api/XMLFormatter_8hpp__dep__incl.md50000644001725400016040000000004013273140074020647 0000000000000077017885a1e16637031851ecc13053cbXQilla-2.3.4/docs/simple-api/XQilla_8hpp__dep__incl.png0000644001725400016040000006311613273140076017633 00000000000000PNG  IHDRa7 bKGD IDATxy\LLVҢIWl!md˖n׵t,Q,)"WD%f87wnMc̜y2Ϝgs0(d.  Fv%EDDDDD TΝ;utt C%;QKHH9s& = eCd     ,'NHckk\mcc-Z4eʔK2LPaa DŽ  ]  ,·5jL]]]@@ۀBK.UPP;y/+##Hvp@\\\?:qℒIΝSPP=zE``ϟoܸ!//AjpyFuVhh[|}}iNŹR(%%%ϟϻWӧ/~bag<њɓ'TTTBuuug7o9B(\tx@E[ 0m4ܹsxmmm@nxwCu%'; Q `>UW7n[@bxOnnˉ˘L<17]]3x~X9sF'%Z (77qqos[tC𣹙IQ:iŋIׇT*%=OEErFk4XRUpʶijbܾ;YYə3M352e@ ota u͞}$9=2oرcˏdE?F99 Mv\} ot1芾|61kq!aبQѫH yz &ecc 5+ zu5HN=\k^=͛B}}չsMCyQM쟑Q۴n "IPCysdgwxd^feERhQSܹǯ_̛g`{ ot =]]K<[T@v BbӧhbCvP_7Hߧ{ O22 5\]Ξm~ otCt\O؈)bKԄL7D!G ӧWM8\ݘ , !$=0o 473cc3BB&&fꪸ]` P 7 !D l_;4~x=OBy@B o TW78PTT9v6 !y'uvӏvC89n:8Θ1,-wN6|) |]tC4pA VTԋCssK׮JvP tI ѓA <,~zZ@3f\֦ˀnBOakk|ƫ={nYX6mT|tC|hXvSk'( o3n `._~pJgV{ny573’TU/^ tC,D_7 ?-Zd)))FvPy$n7̙GJYc3hBvPy"@P o |ڷΥKtt7nJvD"y@ o̚ee   WCN۷̵k'9yCvڀ8| ERUu H45}ljdִk 4޽{BzNʊ56ftvT]{tС۷9R:EvcƌYv-فtI_4H~Ȧs~Y!wc]I W7m;0{PTEv\ AKK(.3Upaɕ+/_[βNvPߣw]ŬY&m5<TPPAvDy :rrR[μ|yE~~ٸqd oDmwx/]:᯿n  {r|z11ڔ)g0?jkk/%%e˖$''盗-X@GGGFF4**{C rrrȎ˗/i4ZDD$::Z\\<##x[WW3|p33;w2 Q[Uqggg>?#:~hGG__Օ۶ڿ?@v#?V\z?x_~8ggg'ߜ͛Ymee,n  ƚA |&CCC===MLLt:1‚`g dk7+!UC;f޶99_;?>suu---mQRUU%KIIܹ Pss͛]\\***Ԟt:=::Z]] .ֶXBȑ# ;v`W8O>+WlllZ{8?FرCBB"##]bGZXXN8n:Y,ֱc,++;a„6;Akii%&&xhGߟ'M}Pc۷544$$$hR]]-..p‚ׯ_3t􌌌ѣG{{{8^QQ"s4qߧ83gNEEEPPBŏݻwϞ=Ǐ#GqͭXUUٳg7VWW_|!TZZJlccǵVi;78ڶm%%%-|i޽y \0:uPPFlllIII\\aʔ)3Z|)hGD3mXqp)HJJ? Tjhh(ߣISS۷okkkLCϠA\BfffBs-t*k+WpGݿ'8n``gu\\1FFFC!!!q& aaazzz\ yox# bSTgggv!'O(++6 aTukCCCm.\;o j,Z|/hGQ[F#)=ٱ EtBhћ6mJOO߰aOų&Olbbr+'^0 ìB o޼Yt)?[ ?- p-]HhhhBB½{"##B553XF!Nx!!CZ̀iD7ގHƎՋ_?d9Gc;`IB8`hM4SCCܹsׯ_zQ+TWW:--mӧsBBBUUUTjnn.Q{ uP A"HJJB}VVV֭g pa"mkϞ=[lYdIYY1i֭oeŋwcm5 aTu7oo߾}~MB?7ގHzu"??Ç:8 o!ddd\]]͛wƍ'Ox{{s.kkkBMMMt:]\\a˖-\\\~ׯ_~zŊDy#GX \ŋKWUU,VIIIٰa3B%8d##E!֭[rJb͛o߾5` 466Xg[BU˗ܹs޽{~~~)(( Ν;W]]}ADoƒv$-ZdyƚҚI|8q}]TTT߾}[,z/rʆ*O=?s挄Ļw% %22x[[[n:CCCIII]]}ܸq}=EFAwsd2tuu'OݧOǷmۦKtxBڑp6.YrFSs,00=a;w.B(<<@}}k!o9NOMM3f`Wׯ_>G0_|y۶m/_$7* CHR7]ؔ)"#gf͘qByеL&ngw@Y@?ES )jn65QL&Oz [&Ra.6QsՉ++sMj FS<Vk׼~ه/\Xbd%spp:Y,DiFJSFSp#+(43;AR 4ZLϟoffFv=0P8VU%^Q!YZ*DP޽T]xNÐ ]IAIQJg:3hG| pw?={ӧ S:LM(P0dj0F?rP?83n،̺&qq@1 CY,|Μ#Ϟ"S8}p+ffD3Ls3sw=yy=@ڡijׯYm(JΞ]ZQQgddYX qtN?=|uVÇY,N`TF= <|)ׇI JqqŮF!HY%&L0:idî\yqԩF]9 }NJܼ9^m0 Q(SZ[g;/3,*KMOَQ444bZ CҒjj&""e 41 330u0'$%ń 6 ߰!…G]mm ppz NP0& ?bׯ:#G9r7/!`0%޽sE4 Lml Ĩ- 3MsE 6 ۹s[k@O !Asp0R[ av/J|zEtÌ IDATq>#"RZD_-Mp(&ۏYµ70yy}2޽{B[: Qa0lnknnN_޼)\䬵8X1=0 Â~4I`IB(22 R@4Ə7XȂJ Ңg<3nPAA> lT*agS B!%%-?7$05>~8g $99_s.  dgy([RRO5Fuu᧟ҶmTU9{:)!8s}:6@s܂VV֟9(.ΘTLVVrɒqQ(4 ^Mm1z QNΗ,@""RL'!A;}]\F4*SUݸq:YQIK=i4ȑ:AAܼ>i7dGZZ<$dE:t/Yvvf8TYY4:ګhGwwK==@_HinnyI11*tUqW_tts*ssݻ%@^$H ԴanS _,kk?8!\Kxy{ud=p/3}3D[aziʔ}\'+lq踴˖mܿggʕ/?__NgX[)9sfڿqVVCEנz _i˖}k ߽woׅVVC֬16GV0}#滭Ĭ&%8>S:Ie͚n߼v>]򆞫yjq#T !|ZC.,|<8 47HRh)11+T\vFDDo!}qOp {kV7)'jnf%~Ě56;k<=mb0X 3u޽ӡ޽+^\aa_͝>]tCŋLiׂoz IGܫ;t} .ӧeνyS7ݒpo 7l~\||RRd@GGyFli9]X|COQWtÇkkǬX񓪪(Aptf11iׇkk+;]ˍUUsi@M6<.[^^jڴdð{6])NN zHR--tTFF繪z;/8pդթqt,Sii N%JKŋI~ Щgض-T!g5zѣ+Ci4ѣ.tԂKKkbcs0St76EvMru&wѤN-?Wx4 ;{aX&e@'3޽+فO}|X'**6غ(!x8gŊ̌ӹݛٳ1> .}}Ugv>u7~gÇRpsqqo6n{h%$ ?ȑ!i`02&fUQQL#g :|7焼k{W<D .QXX1{ÇnbBؒ&L0ps ޴)'ˀNN^^z'x yCWYdY+=o74Pt+UU 7otwt陝݁#ml`}޳'%%-zonnI`k|zS*v%ؼiSik!n_[8fŊ0@NץK}XvӬY&dӳܸf۶+Bk437`}n}3HPSx#G1yF\i"KvP)9pT9)$$h[47_ǎNh྽zIBcMMݸf랞3wv\[[)>~p.IRRl֙c OO8vudLZ?O~wHrr[3gyC6yyzzsp0YICW7m8oyyS?$;/8𝒓sqigݭ=WFF繪3gAc645/_^q?IIKT8q! 7Ӧ̘qBĬd!n`gw@]]>>~=4nF[7ҥ/^[YMI#;qyy=EXWR_8tFFJ66f:::_O/_9廊Ґ)SYYitB*:uTIɎ&͛Lfˎ.944;/DJ Δ@j·?=6v&h4 #3F\Wϟ?[sĺ&._:ve`~u<׷O[`0ΝK5w\A.``0:b%8<;H+wR^^RAJrRjGhQPPK`kI s CNN7oXTT`SSӨ(a999dG!/_hhqq m]]eddv90Ta6[ݱ}ߪxG 0}}L¹;qwvvAM5f69Jb;IIõZO OiEEEV80E}bԜ&..\_RR4΋2Baaa/Degg߲X,KK͛7w:QX|y8KڵKb U =<+WlllZ{_"i4ڎ;$$$222jjjqqq-f>z臭Mu-OL1bu-!k;vڰa$$$9Uޏ<8b[[ۓ'OxdW uرN0!&&֕$&&D\xw𪙈=޿1R8Cd5'&&MSsmqq%ZVRRRpRss3!!!C%.9sTTT!ʪ.\XPP+1cuuupp0BhܹǏGӞ={1zhooo+**Bğs&NtCCC???(w={?9qWWW77bUUgϞ:`kk[]]MܲElll8y㾾m۶K_RRbΧOݛԶ[:eʔ{ݼykek͖Gphnnڎjkk%$$?|IV[[˵~ޏ8NL^|xeetii)0 uPPFlllIII\\?QO>zU ^5}ހQ1xG??dKqPs:[qq9`A CMMݻ8O:u׮]E߿8N'ojjzmmm-|{!W#1'l~4hЕ+WgffB<:NR_~Mr办Za >L366qBSSȈx 8}HOO'f Z{_d ,ޞJ:;; f_ZZb'O(++VSl97Q[76[õݻb0~/_o8bmm.Fd644 e… 庉.xw*u)jN9UZZk^5EQYf]r4>>ɉ=:BHLYYY'O6119s deesr攟O| ^m߾x=}tJ,--JRssskhhp1qHJJB}VVV֭'`Y$B(++=mvEEE^^^{챴ܲe˒%KʈINNN[ne_x]v9::~s* ٟu#FVemqk;jhh,))9qℤdCCgy7pv˖-}ii 8s---''/_p)%%U]]͹Hͷo߾޽{kii=zQEE9Vu[]]]^^ёWÇsQWW533#]\\flnn.##CVWW/JJJuuu>|8108**o߾-kkk+++\}doQ{_u wޱK)Jdd$񶶶vݺuqVm6]]](1-"olx '(,,LWWW\\ ::q{?n0BGi^ ף? Օ}pnE=i8|V!.j&ʼw:&^ V? PsH9uuMÇo㏫Xy? 6,X+ZkHMMMO>hoe9[IKKc$)wBf+9۷ﶾ%%N6ؘ{ԩŋ p3fM *[O윚Z__i&www]>}Zxs 9~Ϟ=9sҥKǏ/v?rrrK,*lǧ~ƌ%%% XpakP:9|h99)O ߜ9z41 ;w0cD ~" N%HTkoy,w֬çN-43s6q`~$~ t-۶]/)tɓ!ozĬ3g9⬡"7tR,^RR]XXY\\UTT9bD?}|Zjg7|ƌ/yX,Hen IDAT*** +** 1a珆0+Ck^O@͛7o^VaDYedLbߟBX;830p}g|]>' !Lf=b5X׀o 0HJ55}q:فt4~+4RRQ( r E-!17OfٵfJJ$۵\X\\=vnׯܸqrP}X{|ׯ kܷ4I:::}N8_>9+B!ԇ8b2B*[|T[k-/p۶geAv,J:udG\7od?XNpmڔRS2K Ջ3-A{}愆>طoyf]9赴ܙg6d'#&---Bo [?͊/.NKKCA{! Ξ=T>%;!۷_?q"Wa~d@#G/!8zڵcwsr"""KKbb'>xkf6øE0LYׯF啈>nð͛7l}VL:o$ "!,'˻wpksp#iP0 ۰QHDѣlOs?|_ҀzBBL+,";.tt##IhSi4jNΗ_ ;vѦ O;v<޹>SL:y0˗p,*bn:ȑ;vX?gt`76nrW43@bHhllxb {ڦ/s ={_](++il̬S0VMii lhh"5 CW^tdb}=}te~20Kvٳg3gbuLC|JOԊ:3FH ?|d.F~5":]\~ sd TYY.:9ٱcQ"I WhG/ YO ##f=GVV9GT*eY?<!TW0+ԴԩFT*t^oE^ę+(HoN2*ŋrsKUO7vp0Osk^.[vB9p`AnJ"3hɒ:M` uvw- $32ukkawgJKTU#NB@w9sUIIzG^ެGgjk+99qqQN:b0XÆmjq/ҥ%ȉ eK3gT['q (%%qõD*H>\Q55yA; W_z,$dO? &'&R5ySGdUU22#Fh72=Zw:~R`)Sy{O:C^^ɩS.^LR)syx- w3]\9ﻅΜ9rdE81'Or""RnHgX5yoKOE˗*_ȸ7+WZ[7Ym:tc}}Srjoo|3)QuYYT*EWW̬i1ct/b[ÓOH(*8q@Vv-Ϥ_s]qd䲲Z;;ٳM{񐐧۷-_s6oy3}\Z_Г}R^ۢ;Hsӳ' {738abbСnncCScȐ<ð_L&ϕ7n_,3HWWeƌgQ&;.ˇ>>II}}r P/>ߋذ@ӍESQ_OHIɫKbu3ffu(8IDDy-`?bOpZ*2y򰠠ETUSq{H 3giN~:k TguۼaР 55m>2+x( H#Ztgi FvBII͹sϜy\]0y0p>|cصJ;|ZG;իOt:CUUӔiΠ/޾-22ZbL2ɓm`kiϐyyimm6@ _HHkΜQf cc_oSXXhhƶwۼӵkig[ihgd=z]QQ'-->tѝajڿ'f199ě7ӕe,ZdٓF tnDa*&Uxxׅ3ftr 3zv L!o_KtgdgP0]]##Mbpe/ y`Μ9rjll{66CLaBWAd 32 ];I7ƀ^IIMZODFSCEEv~yc~=ɹMW8}8La`"#GE lm@]Hs3ڵG*6m6s{p573߾-".x$VJJPanC.'Ɲ7Q HK-A XYY11i)>f waZ**BB:x*krBD FEdd?$3T?߿z (fKԄ' :&&-&&-%%O]]aLG!;.>><ȾGm'9\@HSSӘ1998ܧq?bT n۝Q]x n: hjbܹmޝG5u $(=$da lKZUǙ3gꙶqfig3̴ӱ-vtZbmETvY"%d%&,ٿ?^"<.7}Ѽ'y{_ܻPTPj;'!n6A3$sd$qc誼ox lKYR@ܰ 3 W4NNj7n MΎYqNOܹ[ز%Vt+DSllta20@U6W'9''>''(*x6j檌]6ݞf~'3>~W_VWw3fg ֩Tꦦ>hh蝜ԸHMX55"^\\wջvſH;eipa)&]kr EE9ܧtʎK߸@oo_ ``Ot:Cw2=DST qc(e&׿n=z49|x:;;ʤ7,BUVv\pƃ5kH=D:chjtիMR*))hޤ_ O ~~g`3xrbb6D&RRФoqڿ?c ax\nåKq|r' ^x!v ut]k|Gf{秾rcgϹ@0 W +OKBB Jg$']zWz\Gܽ;ȑ͡4kw XHwʕƋJxcK^^* h4޿{Z_AA츙r.y tF}OF$:O/㙑j @?ro ɟyf5O: y .NwᅸԘԔ޽Λ7۾M(TggEG# `< _i:`0C{QQ;+.TE"9GF2Qg¼-7fѬW^y&77v"A(T\Wá_Lx 4ݣG#MM}bby%&&$&&l^+ Xe<[[ 3<<{˭ws[SPvP-mgqR9uƃkZ~!&''.779%* 8>7 ;:<ހZP\"#M#&Jԇ (ۊ(0D;}OܹȑIIf=l6n0ur| > a0CmmCmm##cQQhVL +* 3[NQQOedR3Zѕ5_ |QG[(`Zx8F nچ=8>I$$)'+...{$>)df>i۶(s_7 Ɔ /7j4͛#rrmIU@&Suu;;E^/ ]K Pmӛ:&o"D^77kMgz@4dP2_~9|sX>nͥ|aϞDs8e}}aGOaF&@ PhG n`дtF]@X%*LK vw_ƻŧO)//Wb̍,7Dxyysyys}ܳ'0-8]}T*@ $==@#H>/C 5X Nv4MJg/o%,-?yP0Ǥjwߵ^PQhZҎ1Pt">0 J{zb0"щpoH/Dtêd:nr\.1<4DvGV|dz 4gT8i|d4\\t5hh$Hk)J%N T=fTnnc)vsFrrZ/NyyyyyyOߎ듪: H$g+ E v7Le L X .[RRoVZZZPP0O^OP*8N Os l0`f3t:DJNHj]*KKKWAKa|hH>00%&0 #t{@O@w@7f0<-GT@6+j FFƆdžCCrJb04M&[z5`3v".*FF(,@!DDqq!2^,'`xY,u\`G n;RȈB,Ƈ ><<&## P2 9;;LGFFby1 u:@6ajJ+b1. T)(B\"RR.th4w&ӃFsg0><8L??X ovUUT*|ٳ"={"344t=uuuu;ݙ57A nV& pbbllR,ƅBB1..DOOW:݃Nw gfyxt+E@QO7d77ׯ=sKo'55U*>ѩw`<==r"r8f~tq!PT7*.11JPn뼽)T*Fsz[l)**B?FEE 'N|E}{tRR`PMAӦ|iЌ.}mݺ@\\c&:;;gwK/yW^ t:h49 ðf,uvv.hcǎ|>&44sC§1IDAT~ӟ"ɓ###N"*jίaXvv6/^0L*J?dfb qG/qO;v&o<.j jatt0\nUFڊ~tRhhh0֭[ J4'A7oތ7rfΌq|3q6\x<zsC;GGGI$҉'r`P*z~,UTTF:o:\ u`q7Xb0|EGG>}z gΜYTTz۳Gbr̉2^|=&o{''7s-˘?zzzoE[ |>ΝIIIOO 777W3&GVS7ڵ?ZՕN;;;,kΠR3\.0l``?޶mo~ed/|tqYt!4 \.wttСC999&ϵN,cbX---3ohkk[cǎ566~'3g%-2L;1۷o8p?cF" z-@n߾}4R޽{}ݾ>soG-n~spѮ{o=@ رŋ8k4aXQQBX3ϵN,:xcʄB7yQL&ONN?~0Tc4c!D&&,Gdb\&斚zՙFGG8`0~_ONN;3_ жV̤P(h'㯽ϑ#G?裸8Fc4/_`0FGGSmQQQ`` J}7Q?9))) !eeeO:0oKKOp8 %##/o0߼?B63s̜i|  ʰ&\\@())|u<ےbX8WKXKq/K+˒Ncx`y=Oa Ob`p7` nRAKE\腁.kɮY [X鸁fs\(׷YD"`X1 "222,sA} , X*T aM.YIENDB`XQilla-2.3.4/docs/simple-api/globals_func.html0000644001725400016040000000537213273140074016163 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/simple-api/classRefCountPointer.html0000644001725400016040000004333113273140077017641 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RefCountPointer< T > Class Template Reference

    Super class of all the reference counted wrappers for Items. More...

    #include <ReferenceCounted.hpp>

    Inheritance diagram for RefCountPointer< T >:

    Public Member Functions

     RefCountPointer (T *p=0)
     
    template<class T2 >
     RefCountPointer (const RefCountPointer< T2 > &o)
     
     RefCountPointer (const RefCountPointer< T > &o)
     
    RefCountPointeroperator= (const RefCountPointer< T > &o)
     
     ~RefCountPointer ()
     
    T * operator-> () const
     
     operator T * () const
     
    T * get () const
     
    bool isNull () const
     
    bool notNull () const
     

    Protected Attributes

    T * _p
     

    Detailed Description

    template<class T>
    class RefCountPointer< T >

    Super class of all the reference counted wrappers for Items.

    Constructor & Destructor Documentation

    template<class T>
    RefCountPointer< T >::RefCountPointer ( T *  p = 0)
    inline
    template<class T>
    template<class T2 >
    RefCountPointer< T >::RefCountPointer ( const RefCountPointer< T2 > &  o)
    inline
    template<class T>
    RefCountPointer< T >::RefCountPointer ( const RefCountPointer< T > &  o)
    inline
    template<class T>
    RefCountPointer< T >::~RefCountPointer ( )
    inline

    Member Function Documentation

    template<class T>
    T* RefCountPointer< T >::get ( ) const
    inline
    template<class T>
    bool RefCountPointer< T >::isNull ( ) const
    inline
    template<class T>
    bool RefCountPointer< T >::notNull ( ) const
    inline
    template<class T>
    RefCountPointer< T >::operator T * ( ) const
    inline
    template<class T>
    T* RefCountPointer< T >::operator-> ( ) const
    inline
    template<class T>
    RefCountPointer& RefCountPointer< T >::operator= ( const RefCountPointer< T > &  o)
    inline

    Member Data Documentation


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/MessageListener_8hpp__incl.png0000644001725400016040000001605013273140075020536 00000000000000PNG  IHDRpdbKGDIDATxyXB"T*R\P\Q.Uъ"+hmD+(\VPTHEݢDDi%%m?ܘL,Wr2s{ΜL&$ Ț$JP%(h:Пb45++SNi:  LH$ҧ~`04腦rx'j3أl֮](@/:tHQy%(D @ Qwww___X^WWDèswwT<8-)(uћ7oEOKKK5|t:[֫ VRg<@AE...Κ Gccc???Y B6xDrssEG[`U>zիW|P~~mۖ,YaÆ__`K.JNNFavڵ-[xxxٳ?&lHt_5B/;w6o_\|Y֒xCׯ/++gʕ.]Eoܸq?##,-$J]4qD}wvvϝ;WjZZZCCCllpOO˗/oܸɓ݄]]]OJJڹsg\\\kk͛7wڕsYY s!ygƶYʕ+!!!?^qBSAV! Q"2<|軠`ҤIFFFWoݺw1 x< 8J]tiVVa!JpB@@KΫWرcƌ...[nՐ [XFVt:?GiN֒~~~SNh5_~С!<"viee׿5;;[N!':-**j۶m7oxyy6iii6l5ka!BaXGSV__?n8QcǎՐ [XFV! pIkkkB$IJ۷o 4iRWWWYYYQQQ``KƧODutt477p>Ќ *JX>gw-˗/mllOY ɏ0 ed),)LI׀bXxjkkL* hp譣SN9::4o޼ƚ d2:;;y<B100 ,x|>Bp\_WWglllQQ~qBBthmmm# E%#+xY#p7ntvv3gϟ_xB0rww\zDmΜ9}v4|*o߾ئѣGQTt!JݹsѣG aÆ  ӧO999ر#**!+*ި>,`'ܨvv1S냂R>sc2Rp $JZEE/+>0sw E31B!СLusi$ 0@AfwGE݊ٶ'OPmmsHHjn //ÇW tD``D T";پ}i]]s4JJ&_v MH56>ҕ+23k:"mm]ǎ]tEFD=D:@Að c!k,xɼf2mꪧb(Axmpš͛]:鈔;{?ܙ2:*j#5F(]coo~ʔ1מ?g2܂C(Gyɼbٳd{_?tp'׺:h:"E Q>]>!"b#mWo~r萧:%g!!i|AxMv{SHw'^^.Ç}.6u;>_}r0/>D aإKffF?qby,^aa RW:(?̔ځu9sL0*:zIVh$Jd ßǞ":x@ BwY@$J@>F(u 4Hpŵ@H7|}aMppjmm3 Qa(R}P$JwG@y(u46%+D $J]jj QV}RWW:`NM>Vߞokd5ӭ-`mmd uzkOV8 6Cv?~=)`b'֎i0Ayȑ_?t "{z7vOR Qj֮E|P__ol۔YY%SrɚݻqcܿU w  b|!^B"!UUM[ ?:;{NvDee蝪7}+Wv:~sC"!* ~;^lr2kgyh00HZ|zotc_~)TT@^-3A(9s7+DSQHڨi׮Dv|Aj꣼ _~~UZxW.ŋ7jI7A:=6x|Y'EdR``Jw7Oqu}]_c n@x%_( ajk[xo@H$JP%(DYUU 9^~uV |}}te]x1BIMMgffRԲ2igggpp)St̙3#""|>ӸWO"HUUUjkNGHb&Pgرc7m[9]ΉDibbwޮY__ҥrUjxNڊjkk&Mjoo>}zaaadddqqqHHHRRҒ%KA-??C۩ssȁ"—ķ٢$T|ZXx6=m4<BZ466`oH@.e,9]0gĉ~~~رŅ͛7;vlLLt G!TYY}GN kӧO>՞zI4n Be&IL P8ZzMF^Q^vҲ!?;88tvv 3g8::6lΜ9999^ׯO:uСF ߽{ghh8dȐٳg#FsLq]kkH".^8bĈq<dZXX0 &̙siPss3L B SS7n Z[[lbnnnee-&((ݻw]@QԄ/FDD'$$तrCCK.az333Ǐ`0kk^EvvvM&фvX!#>,aaa#FشihwIz-PVVɓi4Mbb"B.EAX!%'J&D"رs#/%TϚJQnڴio޼(,,0,66`߸q !$C$zfTW_}bBMMM]x111lٲ~pE7>@YXXWWW[ZZGʊ|rNNtϟ{%#G!oo922ۻ&!TQQ1zh%+ IU&j ±9x9>,G~^RRRr1Ykq8Pܼm۶+W677.FSOBvM:0 /9㔬S}O|hooLE>Z[[e 8aڕC{cM?y䲲sn߾]ZF}~hpuY_xx…իW|[HO'JMKj*+++Ѵߺ:32e s/5>|xܸqt:}Μ9%aN>|1cΝ;mjjJI+2 !xfnjjjjff]JP3ܝT*588XPssƍF{n#+**ޅӗ>$iiiӎ'h4[[/X`7Q ? 7^?sso\]]tA>MjWu&J±ˆftww=ۻ/'o)))T*u„ s\YaѣGMLLlmm333vŷ$X]$Tiװ1c|||ijԩ'(?qoSSSyyΧҪ1o` -../P5l&.~o_-_/77O?e0RΒ>Ds߄:NuO% 8k(@H$JPj`FFFULlg$J###9@ K%@w0 OhEQ(@H$JP:M'c0IENDB`XQilla-2.3.4/docs/simple-api/LocationInfo_8hpp__dep__incl.md50000644001725400016040000000004013273140074020707 00000000000000dade789f0dbc05dc1958455e57ea2f71XQilla-2.3.4/docs/simple-api/classATQNameOrDerived__inherit__graph.png0000644001725400016040000001502613273140076022625 00000000000000PNG  IHDR/_bKGDIDATx{TSG'$QABăbkAYvkZGvW`EqbQA-j u9"%$J<mwcܙǝ{s A31wԀE"X$"4?6=Q0MIIPBxyyMu0hmm-++\k8Θ9HD"D)IQ`޼y555{n1'CGGGHHXzu^^^b444P(ɷ35GdiiP( <yǎk厎nJ֎.###S^^s7oN妦&&9v&7Ɖ㖖Ϟ=cX*+k툏?{,\\lYgg'?Me\5G0בzrQ$͙3ghh.ƲX, ؑsss ";;`... ,8vA$..ΎdbuaeeUZZ---,cnnnccHQcT*=~3Xvmff:rjD۷o޽ǎ۶mǏy<ުU>Dh?; iiid777===cccյ/"Hڵ+ -_|А珎rsKK;w(V+//[[[p=344T#EJ1ܻyԐݻ7%"uѻd2IbLiut  f,|g6߲eɓ' $33S"YZZRԦ&R)]_cCmm-Y6=_촴zzzbttt``@ 􌊊RբR|wXX͟>}jnnk׮;w&$$&!!!MMM|>-..ٳgs/[n GR W]׿X,իWBaAAŋǴ L6fӳw +yҢe&&&)PA@6mll_~Q$[[[߿׮] R"0 uKd''W^ye͚5p OHoc"D,HD"Dߏ,++1Z3 4̴}NbdndV1>i>ۑG݀ 3g;nAph}E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`0`OΙc=g4~}?+j! /HIIikkw \;; }xAvv#h#D,HD")JCCSY/d;@G\.w H///\H$dXH$ jaatҥE9rDѧtD™:;;S+++oݺr򤤤O>$??%'''&&Y4f5ryI]\\B!,\V&bddDLB?mܸ~tD:88ibbobŊcǎ7HOyhrqzzzzzʳt9X$"`E"X$"`0_G޽{wl ( e޽f͚I6;fȩD?/Nv5kَ̜Izz/?BHqt7jr9A<}g-J @ήw݂'Oz~I&#r?6vvD:e׮30x1e6J)(ή 'ɐ&Hy]]yINJ +2/J(ө׮W]ȜJ7/%S<M75=@^GKK׃zkyj5NNUOiAAVI$I$ tvBS̡)gz8w?fB'fՋࢁeBF 3g;nAph}E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"`E"X$"h咒rN[[ ;;[Aƅje:.J,(ZRaDp8ZX$"`E"E=zB$%%%(G(?ì[Adees8mɜX:tHݣoP( K&өB0 CRوdc:"jnȬ,??׻(O 믿vuu533;~8 ::߇ݻwOC#^^^+++2L[[ء!KzzERRҥK-Zdbbr0Jx{{{ wy[ vҥKY,Vtt0@"8pҒb8p@WE;`G\._hљ3g榸y``X,NKKtuuݾ}\"'^Q׈ҁk׮F|KpppOOٳg۷o9s d nnn<{zz*RG*s:6lxQYY pرm۶=~ZÚ:YVVFў?NDUU瓛122JVVVn"bӦMIIIQ|~GFFTbnn쥺E\__Ot\m]]Y(TxÁ\\\B!\YXXrJdDg>R% Y|9,lNT*uww/**͘@L|>{{{)9arggg :::00P zzzFEEi~Vg92""bÆ krCO|0o޼1H$>>> DЋȡX6mbb,{TC)'sم 2?ٻw 5?3Qv|!!!S씣s^kЋ 144ё7;&flΙr|{?΢ 9ϟP̜YDN< bRSSdIE"X$"`t D2;&Zr+II5ÇW;ȸ *(Z OCSb%Z>Gϑ׮UhTw3oS"\JeR,+ i!(yvZ{Uyt "̦ѨW9M6Yr9R,;R&7@VdiiCWWI_yt "~W!4A^^4EJ$r\HkjFFf H.~3 )2'FS9*芠R TTUEVW =K[3X3_ӿEejSt󠠠>?P\ϑE"X$"h;;/^ k\ѣGGLKKsrrpByyyGGΝ;T*/>>By#Fw....Ο?_QQ! }}}eKK+VDFFɇ׮mDrY,Vqq1);''  `0D477;wĉp۷oZ?0Ƃ """l6QYYy3wr5'''<<<==` hBlhh o ̝; 皽F]xԩSBƍp͛70FJJ믿N,((]̌dzxx=z:;;{vsEFF^t 3gΜ}Ν;"d;"\U_;;;b##*##L&s|>?Sy撒JLLL7o^HHH@@aaa eݺu1RSS;::t`bW:ϟAnݺ!NH$Ortt XQilla Simple API Documentation SourceForge.net Logo
     

    - i -

    XQilla-2.3.4/docs/simple-api/XPath2MemoryManager_8hpp_source.html0000644001725400016040000026110313273140073021631 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XPath2MemoryManager.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __XPATH2MEMORYMANAGER_HPP
    21 #define __XPATH2MEMORYMANAGER_HPP
    22 
    23 #include <algorithm>
    24 #include <assert.h>
    25 #include <cstddef>
    26 
    27 #include <xqilla/framework/XQillaExport.hpp>
    28 
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 class DOMNode;
    33 class XMLGrammarPool;
    34 XERCES_CPP_NAMESPACE_END
    35 
    36 class VariableStore;
    37 class VariableTypeStore;
    38 class DynamicContext;
    39 class Collation;
    40 class CollationHelper;
    41 class XQillaNSResolver;
    42 class ATDecimalOrDerived;
    43 class StringPool;
    44 
    45 class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager
    46 {
    47 public:
    48  virtual ~XPath2MemoryManager() {}
    49 
    51  virtual void reset() = 0;
    52 
    54  virtual const XMLCh* getPooledString(const XMLCh *src) = 0;
    55  virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0;
    56  virtual const XMLCh* getPooledString(const char *src) = 0;
    57 
    58  // from MemoryManager
    59 #if _XERCES_VERSION >= 30000
    60  virtual void* allocate(XMLSize_t numElements) = 0;
    61 #else
    62  virtual void* allocate(size_t numElements) = 0;
    63 #endif
    64  virtual void deallocate(void* p) = 0;
    65 
    67  virtual Collation* createCollation(CollationHelper* helper) = 0;
    68 
    70  virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
    71 
    73  virtual VariableTypeStore* createVariableTypeStore() = 0;
    74 
    76  virtual ATDecimalOrDerived* createInteger(int value) = 0;
    77 
    78  virtual void dumpStatistics() const = 0;
    79  virtual size_t getAllocatedObjectCount() const = 0;
    80  virtual size_t getTotalAllocatedMemory() const = 0;
    81  virtual const StringPool *getStringPool() const = 0;
    82 };//XPath2MemoryManager
    83 
    84 template <class _Tp>
    86 {
    87 public:
    88  typedef size_t size_type;
    89  typedef ptrdiff_t difference_type;
    90  typedef _Tp* pointer;
    91  typedef const _Tp* const_pointer;
    92  typedef _Tp& reference;
    93  typedef const _Tp& const_reference;
    94  typedef _Tp value_type;
    95 
    96  template <class _Tp1> struct rebind {
    98  };
    99 
    100  // Should never be used - for compiling on AIX only
    102  {
    103  assert(false);
    104  }
    105 
    106  XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    107  {
    108  _memMgr=memMgr;
    109  }
    110 
    111  // define a copy constructor, because we don't want to copy the singleton object
    113  {
    114  _memMgr=o._memMgr;
    115  }
    116 #if _MSC_VER >= 1500
    117  // Needed for Visual Studio 2008
    118  template<class _Tp1> XQillaAllocator(const XQillaAllocator<_Tp1>& o)
    119  {
    120  _memMgr = o._memMgr;
    121  }
    122 #endif
    123  pointer allocate(size_t _n, const void* = 0)
    124  {
    125 #ifndef _MSC_VER
    126  if(_n==1)
    127  return (pointer)_singleton;
    128 #endif
    129  //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl;
    130  if(_memMgr)
    131  return _n != 0 ? static_cast<pointer>(_memMgr->allocate(_n*sizeof(_Tp))) : 0;
    132  else
    133  return _n != 0 ? static_cast<pointer>(malloc(_n*sizeof(_Tp))) : 0;
    134  }
    135 
    136  void deallocate(void* _p, size_t _n)
    137  {
    138  //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl;
    139  if(_p) {
    140  if(_p!=_singleton) {
    141  if(_memMgr)
    142  _memMgr->deallocate(_p);
    143  else
    144  free(_p);
    145  }
    146  }
    147  }
    148 
    150  {
    151  new ((void *)_p) _Tp(_v);
    152  }
    153 
    154  void destroy(pointer _p)
    155  {
    156  _p->~_Tp();
    157  }
    158 
    160  {
    161  return 0xFFFFFFFF;
    162  }
    163 
    165  {
    166  return 0xFFFFFFFF;
    167  }
    168 
    169  bool operator==(const XQillaAllocator<_Tp>& o) const
    170  {
    171  return &o == this;
    172  }
    173 
    174  bool operator!=(const XQillaAllocator<_Tp>& o) const
    175  {
    176  return &o != this;
    177  }
    178 
    180  {
    181  return _memMgr != o._memMgr;
    182  }
    183 
    184  char _singleton[sizeof(_Tp)];
    185  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr;
    186 };
    187 
    188 // ---------------------------------------------------------------------------
    189 //
    190 // Operator new. Global overloaded version, lets any object be allocated on
    191 // the heap owned by a MemoryManager.
    192 //
    193 // ---------------------------------------------------------------------------
    194 inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    195 {
    196  void *p = memMgr->allocate(amt);
    197  return p;
    198 }
    199 
    200 inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    201 {
    202  memMgr->deallocate(ptr);
    203 }
    204 
    205 template<class TYPE>
    207 {
    208 public:
    209  AutoRelease(TYPE *p)
    210  : p_(p) {}
    212  {
    213  if(p_ != 0)
    214  p_->release();
    215  }
    216 
    217  TYPE &operator*() const
    218  {
    219  return *p_;
    220  }
    221  TYPE *operator->() const
    222  {
    223  return p_;
    224  }
    225  operator TYPE*() const
    226  {
    227  return p_;
    228  }
    229  TYPE *get() const
    230  {
    231  return p_;
    232  }
    233  TYPE *adopt()
    234  {
    235  TYPE *tmp = p_;
    236  p_ = 0;
    237  return tmp;
    238  }
    239  TYPE *swap(TYPE *p)
    240  {
    241  TYPE *tmp = p_;
    242  p_ = p;
    243  return tmp;
    244  }
    245  void set(TYPE *p)
    246  {
    247  if(p_ != 0)
    248  p_->release();
    249  p_ = p;
    250  }
    251 
    252 private:
    254  AutoRelease<TYPE> &operator=(const AutoRelease<TYPE> &);
    255 
    256  TYPE *p_;
    257 };
    258 
    259 template<class TYPE>
    261 {
    262 public:
    263  AutoDelete(TYPE *p)
    264  : p_(p) {}
    266  {
    267  delete p_;
    268  }
    269 
    270  TYPE &operator*() const
    271  {
    272  return *p_;
    273  }
    274  TYPE *operator->() const
    275  {
    276  return p_;
    277  }
    278  operator TYPE*() const
    279  {
    280  return p_;
    281  }
    282  TYPE *get() const
    283  {
    284  return p_;
    285  }
    286  TYPE *adopt()
    287  {
    288  TYPE *tmp = p_;
    289  p_ = 0;
    290  return tmp;
    291  }
    292  TYPE *swap(TYPE *p)
    293  {
    294  TYPE *tmp = p_;
    295  p_ = p;
    296  return tmp;
    297  }
    298  void set(TYPE *p)
    299  {
    300  delete p_;
    301  p_ = p;
    302  }
    303 
    304 private:
    305  AutoDelete(const AutoDelete<TYPE> &);
    306  AutoDelete<TYPE> &operator=(const AutoDelete<TYPE> &);
    307 
    308  TYPE *p_;
    309 };
    310 
    311 template<class TYPE>
    313 {
    314 public:
    316  : p_(p) {}
    318  {
    319  delete [] p_;
    320  }
    321 
    322  TYPE &operator*() const
    323  {
    324  return *p_;
    325  }
    326  TYPE *operator->() const
    327  {
    328  return p_;
    329  }
    330  operator TYPE*() const
    331  {
    332  return p_;
    333  }
    334  TYPE *get() const
    335  {
    336  return p_;
    337  }
    338  TYPE *adopt()
    339  {
    340  TYPE *tmp = p_;
    341  p_ = 0;
    342  return tmp;
    343  }
    344  TYPE *swap(TYPE *p)
    345  {
    346  TYPE *tmp = p_;
    347  p_ = p;
    348  return tmp;
    349  }
    350  void set(TYPE *p)
    351  {
    352  delete [] p_;
    353  p_ = p;
    354  }
    355 
    356 private:
    358  AutoDeleteArray<TYPE> &operator=(const AutoDeleteArray<TYPE> &);
    359 
    360  TYPE *p_;
    361 };
    362 
    363 template<class TYPE>
    365 {
    366 public:
    367  AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE))
    368  : p_(0), mmgr_(mmgr) {
    369  p_ = (TYPE*)mmgr_->allocate(size);
    370  }
    371  AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr)
    372  : p_(p), mmgr_(mmgr) {}
    374  {
    375  if(p_ != 0)
    376  mmgr_->deallocate((void*)p_);
    377  }
    378 
    379  TYPE &operator*() const
    380  {
    381  return *p_;
    382  }
    383  TYPE *operator->() const
    384  {
    385  return p_;
    386  }
    387  operator TYPE*() const
    388  {
    389  return p_;
    390  }
    391  TYPE *get() const
    392  {
    393  return p_;
    394  }
    395  TYPE *adopt()
    396  {
    397  TYPE *tmp = p_;
    398  p_ = 0;
    399  return tmp;
    400  }
    401  TYPE *swap(TYPE *p)
    402  {
    403  TYPE *tmp = p_;
    404  p_ = p;
    405  return tmp;
    406  }
    407  void set(TYPE *p)
    408  {
    409  if(p_ != 0)
    410  mmgr_->deallocate((void*)p_);
    411  p_ = p;
    412  }
    413 
    414 private:
    416  AutoDeallocate<TYPE> &operator=(const AutoDeallocate<TYPE> &);
    417 
    418  TYPE *p_;
    419  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
    420 };
    421 
    422 #endif //__XPATH2MEMORYMANAGER_HPP
    423 
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:270
    XQillaAllocator(xercesc::MemoryManager *memMgr)
    Definition: XPath2MemoryManager.hpp:106
    bool operator==(const XQillaAllocator< _Tp > &o) const
    Definition: XPath2MemoryManager.hpp:169
    Definition: XPath2MemoryManager.hpp:364
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:401
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:338
    _Tp value_type
    Definition: XPath2MemoryManager.hpp:94
    char _singleton[sizeof(_Tp)]
    Definition: XPath2MemoryManager.hpp:184
    Definition: XPath2MemoryManager.hpp:45
    ~AutoDeleteArray()
    Definition: XPath2MemoryManager.hpp:317
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:274
    This is the wrapper class for the variable store, which implements the lookup and scoping of simple v...
    Definition: VariableTypeStore.hpp:34
    virtual void deallocate(void *p)=0
    This method deallocates memory.
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:286
    void deallocate(void *_p, size_t _n)
    Definition: XPath2MemoryManager.hpp:136
    Definition: XPath2MemoryManager.hpp:85
    size_type max_size(size_type) const
    Definition: XPath2MemoryManager.hpp:164
    Definition: XPath2MemoryManager.hpp:312
    ~AutoDelete()
    Definition: XPath2MemoryManager.hpp:265
    void construct(pointer _p, const_reference _v)
    Definition: XPath2MemoryManager.hpp:149
    xercesc::MemoryManager * _memMgr
    Definition: XPath2MemoryManager.hpp:185
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:239
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:344
    _Tp & reference
    Definition: XPath2MemoryManager.hpp:92
    AutoRelease(TYPE *p)
    Definition: XPath2MemoryManager.hpp:209
    virtual ~XPath2MemoryManager()
    Definition: XPath2MemoryManager.hpp:48
    virtual void * allocate(XMLSize_t size)=0
    This method allocates requested memory.
    AutoDeleteArray(TYPE *p)
    Definition: XPath2MemoryManager.hpp:315
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:322
    AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)
    Definition: XPath2MemoryManager.hpp:371
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:326
    void destroy(pointer _p)
    Definition: XPath2MemoryManager.hpp:154
    Definition: StringPool.hpp:32
    Definition: Collation.hpp:29
    size_t size_type
    Definition: XPath2MemoryManager.hpp:88
    const _Tp & const_reference
    Definition: XPath2MemoryManager.hpp:93
    _Tp * pointer
    Definition: XPath2MemoryManager.hpp:90
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:245
    ptrdiff_t difference_type
    Definition: XPath2MemoryManager.hpp:89
    Definition: XPath2MemoryManager.hpp:206
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:407
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:233
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:292
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:395
    bool operator!=(XQillaAllocator< _Tp > &o)
    Definition: XPath2MemoryManager.hpp:179
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:217
    size_type max_size() const
    Definition: XPath2MemoryManager.hpp:159
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:298
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:350
    bool operator!=(const XQillaAllocator< _Tp > &o) const
    Definition: XPath2MemoryManager.hpp:174
    pointer allocate(size_t _n, const void *=0)
    Definition: XPath2MemoryManager.hpp:123
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:383
    Definition: XPath2MemoryManager.hpp:96
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:379
    ~AutoDeallocate()
    Definition: XPath2MemoryManager.hpp:373
    ~AutoRelease()
    Definition: XPath2MemoryManager.hpp:211
    XQillaAllocator(const XQillaAllocator< _Tp > &o)
    Definition: XPath2MemoryManager.hpp:112
    XQillaAllocator()
    Definition: XPath2MemoryManager.hpp:101
    const _Tp * const_pointer
    Definition: XPath2MemoryManager.hpp:91
    Definition: ATDecimalOrDerived.hpp:29
    AutoDelete(TYPE *p)
    Definition: XPath2MemoryManager.hpp:263
    XQillaAllocator< _Tp1 > other
    Definition: XPath2MemoryManager.hpp:97
    Definition: XPath2MemoryManager.hpp:260
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:221
    XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.md50000644001725400016040000000004013273140073022140 000000000000000331d2cca7edbcb55a42d9456a2859eaXQilla-2.3.4/docs/simple-api/ContextHelpers_8hpp_source.html0000644001725400016040000023031413273140073021006 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ContextHelpers.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef CONTEXTHELPERS_HPP
    21 #define CONTEXTHELPERS_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 class XQILLA_API AutoNodeSetOrderingReset
    27 {
    28 public:
    30  {
    31  context_ = context;
    32  if(context_) {
    33  ordering_ = context->getNodeSetOrdering();
    34  context->setNodeSetOrdering(ordering);
    35  }
    36  }
    37 
    39  {
    40  if(context_) {
    41  context_->setNodeSetOrdering(ordering_);
    42  }
    43  }
    44 
    45 protected:
    48 };
    49 
    50 class XQILLA_API AutoContextItemTypeReset
    51 {
    52 public:
    54  {
    55  context_ = context;
    56  if(context_) {
    57  sType_ = context->getContextItemType();
    58  }
    59  }
    60 
    62  {
    63  context_ = context;
    64  if(context_) {
    65  sType_ = context->getContextItemType();
    66  context->setContextItemType(sType);
    67  }
    68  }
    69 
    71  {
    72  if(context_) {
    73  context_->setContextItemType(sType_);
    74  }
    75  }
    76 
    77 protected:
    80 };
    81 
    82 class XQILLA_API AutoNsScopeReset
    83 {
    84 public:
    85  AutoNsScopeReset(StaticContext* context, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* newResolver)
    86  {
    87  context_=context;
    88  if(context_) {
    89  _oldNSResolver=context_->getNSResolver();
    90  _defaultElementAndTypeNS=context->getDefaultElementAndTypeNS();
    91  context_->setNSResolver(newResolver);
    92  }
    93  }
    94 
    96  {
    97  if(context_) {
    98  context_->setNSResolver(_oldNSResolver);
    99  context_->setDefaultElementAndTypeNS(_defaultElementAndTypeNS);
    100  }
    101  }
    102 
    103 protected:
    105  const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _oldNSResolver;
    107 
    108 };
    109 
    110 class XQILLA_API AutoContextInfoReset
    111 {
    112 public:
    114  : oldContextItem(context->getContextItem()),
    115  oldContextPosition(context->getContextPosition()),
    116  oldContextSize(context->getContextSize()),
    117  context_(context)
    118  {
    119  }
    120 
    121  AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition = 0, size_t contextSize = 0)
    122  : oldContextItem(context->getContextItem()),
    123  oldContextPosition(context->getContextPosition()),
    124  oldContextSize(context->getContextSize()),
    125  context_(context)
    126  {
    127  context->setContextItem(contextItem);
    128  context->setContextPosition(contextPosition);
    129  context->setContextSize(contextSize);
    130  }
    131 
    133  {
    134  resetContextInfo();
    135  }
    136 
    138  {
    139  context_->setContextItem(oldContextItem);
    140  context_->setContextPosition(oldContextPosition);
    141  context_->setContextSize(oldContextSize);
    142  }
    143 
    147 
    148 private:
    149  DynamicContext* context_;
    150 };
    151 
    152 class XQILLA_API AutoDocumentCacheReset
    153 {
    154 public:
    156  : oldDC(const_cast<DocumentCache*>(context->getDocumentCache())),
    157  context_ (context)
    158  {
    159  }
    160 
    162  {
    163  context_->setDocumentCache(oldDC);
    164  }
    165 
    167 
    168 protected:
    170 };
    171 
    172 class XQILLA_API AutoVariableStoreReset
    173 {
    174 public:
    176  {
    177  context_ = context;
    178  _oldVarStore = context_->getVariableStore();
    179  if(store)
    180  context_->setVariableStore(store);
    181  }
    182 
    184  {
    185  context_->setVariableStore(_oldVarStore);
    186  }
    187 
    188  void reset()
    189  {
    190  context_->setVariableStore(_oldVarStore);
    191  }
    192 
    193 protected:
    196 };
    197 
    198 class XQILLA_API AutoRegexGroupStoreReset
    199 {
    200 public:
    202  {
    203  context_ = context;
    204  _oldRegexStore = context_->getRegexGroupStore();
    205  if(store)
    206  context_->setRegexGroupStore(store);
    207  }
    208 
    210  {
    211  context_->setRegexGroupStore(_oldRegexStore);
    212  }
    213 
    214  void reset()
    215  {
    216  context_->setRegexGroupStore(_oldRegexStore);
    217  }
    218 
    219 protected:
    222 };
    223 
    224 class XQILLA_API AutoMessageListenerReset
    225 {
    226 public:
    228  {
    229  context_ = context;
    230  if(context_) {
    231  listener_ = context->getMessageListener();
    232  context->setMessageListener(listener);
    233  }
    234  }
    235 
    237  {
    238  if(context_) {
    239  context_->setMessageListener(listener_);
    240  }
    241  }
    242 
    243 protected:
    246 };
    247 
    248 class XQILLA_API AutoStackFrameReset
    249 {
    250 public:
    252  {
    253  context_ = context;
    254  _oldFrame = context_->getStackFrame();
    255  context_->setStackFrame(frame);
    256  }
    257 
    259  {
    260  context_->setStackFrame(_oldFrame);
    261  }
    262 
    263  void reset()
    264  {
    265  context_->setStackFrame(_oldFrame);
    266  }
    267 
    268 protected:
    271 };
    272 
    273 template<typename T> class XQILLA_API AutoReset
    274 {
    275 public:
    276  AutoReset(T &orig)
    277  : orig_(orig)
    278  {
    279  old_ = orig;
    280  }
    281 
    283  {
    284  reset();
    285  }
    286 
    287  void reset()
    288  {
    289  orig_ = old_;
    290  }
    291 
    292 protected:
    293  T &orig_;
    294  T old_;
    295 };
    296 
    297 #endif
    ~AutoContextInfoReset()
    Definition: ContextHelpers.hpp:132
    void resetContextInfo()
    Definition: ContextHelpers.hpp:137
    NodeSetOrdering
    Definition: StaticContext.hpp:60
    MessageListener * listener_
    Definition: ContextHelpers.hpp:245
    size_t oldContextPosition
    Definition: ContextHelpers.hpp:145
    void reset()
    Definition: ContextHelpers.hpp:263
    StaticContext * context_
    Definition: ContextHelpers.hpp:46
    Expression Context is a storage for contexts.
    Definition: DocumentCache.hpp:52
    AutoDocumentCacheReset(DynamicContext *context)
    Definition: ContextHelpers.hpp:155
    ~AutoDocumentCacheReset()
    Definition: ContextHelpers.hpp:161
    T & orig_
    Definition: ContextHelpers.hpp:293
    virtual const xercesc::DOMXPathNSResolver * getNSResolver() const =0
    Get the NS resolver.
    AutoVariableStoreReset(DynamicContext *context, const VariableStore *store=0)
    Definition: ContextHelpers.hpp:175
    ~AutoNodeSetOrderingReset()
    Definition: ContextHelpers.hpp:38
    ~AutoMessageListenerReset()
    Definition: ContextHelpers.hpp:236
    DynamicContext * context_
    Definition: ContextHelpers.hpp:269
    virtual void setContextItemType(const StaticType &st)=0
    Set the static type of the context item.
    ~AutoNsScopeReset()
    Definition: ContextHelpers.hpp:95
    A class that represents an item in a query call stack.
    Definition: StackFrame.hpp:45
    AutoNsScopeReset(StaticContext *context, xercesc::DOMXPathNSResolver *newResolver)
    Definition: ContextHelpers.hpp:85
    const StackFrame * _oldFrame
    Definition: ContextHelpers.hpp:270
    AutoContextItemTypeReset(StaticContext *context, const StaticType &sType)
    Definition: ContextHelpers.hpp:61
    virtual void setContextSize(size_t size)=0
    Set the context size.
    AutoReset(T &orig)
    Definition: ContextHelpers.hpp:276
    AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store=0)
    Definition: ContextHelpers.hpp:201
    virtual const RegexGroupStore * getRegexGroupStore() const =0
    get the regex group store
    Definition: ContextHelpers.hpp:172
    The parse time static context interface.
    Definition: StaticContext.hpp:57
    Item::Ptr oldContextItem
    Definition: ContextHelpers.hpp:144
    ~AutoContextItemTypeReset()
    Definition: ContextHelpers.hpp:70
    virtual void setMessageListener(MessageListener *listener)=0
    Set the listener for warning and trace messages.
    StaticContext * context_
    Definition: ContextHelpers.hpp:104
    virtual void setNodeSetOrdering(NodeSetOrdering newOrder)=0
    Set the ordering method for node sets.
    virtual const StackFrame * getStackFrame() const =0
    Gets the listener for debug messages.
    size_t oldContextSize
    Definition: ContextHelpers.hpp:146
    ~AutoReset()
    Definition: ContextHelpers.hpp:282
    Definition: ContextHelpers.hpp:152
    Definition: ContextHelpers.hpp:110
    virtual const XMLCh * getDefaultElementAndTypeNS() const =0
    get the value of the default namespace for elements and types
    Definition: ContextHelpers.hpp:82
    Definition: ContextHelpers.hpp:26
    void reset()
    Definition: ContextHelpers.hpp:188
    Definition: StaticContext.hpp:62
    Definition: ContextHelpers.hpp:198
    AutoContextInfoReset(DynamicContext *context)
    Definition: ContextHelpers.hpp:113
    virtual MessageListener * getMessageListener() const =0
    Gets the listener for warning and trace messages.
    virtual void setContextItem(const Item::Ptr &item)=0
    Set the context item to item.
    Definition: ContextHelpers.hpp:273
    DynamicContext * context_
    Definition: ContextHelpers.hpp:220
    Definition: ContextHelpers.hpp:248
    AutoContextItemTypeReset(StaticContext *context)
    Definition: ContextHelpers.hpp:53
    A class used to listen for warnings or trace information.
    Definition: MessageListener.hpp:33
    StaticType sType_
    Definition: ContextHelpers.hpp:79
    const VariableStore * _oldVarStore
    Definition: ContextHelpers.hpp:195
    Definition: ContextHelpers.hpp:224
    AutoStackFrameReset(DynamicContext *context, const StackFrame *frame)
    Definition: ContextHelpers.hpp:251
    AutoMessageListenerReset(StaticContext *context, MessageListener *listener=0)
    Definition: ContextHelpers.hpp:227
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    The pure virtual base class for accessing regular expression group values at runtime.
    Definition: RegexGroupStore.hpp:30
    The pure virtual base class for accessing variables at runtime.
    Definition: VariableStore.hpp:31
    const xercesc::DOMXPathNSResolver * _oldNSResolver
    Definition: ContextHelpers.hpp:105
    DynamicContext * context_
    Definition: ContextHelpers.hpp:169
    ~AutoVariableStoreReset()
    Definition: ContextHelpers.hpp:183
    const RegexGroupStore * _oldRegexStore
    Definition: ContextHelpers.hpp:221
    AutoNodeSetOrderingReset(StaticContext *context, StaticContext::NodeSetOrdering ordering=StaticContext::ORDERING_UNORDERED)
    Definition: ContextHelpers.hpp:29
    StaticContext::NodeSetOrdering ordering_
    Definition: ContextHelpers.hpp:47
    AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition=0, size_t contextSize=0)
    Definition: ContextHelpers.hpp:121
    void reset()
    Definition: ContextHelpers.hpp:287
    StaticContext * context_
    Definition: ContextHelpers.hpp:78
    virtual void setContextPosition(size_t pos)=0
    Set the context position.
    DocumentCache * oldDC
    Definition: ContextHelpers.hpp:166
    virtual const StaticType & getContextItemType() const =0
    Get the static type of the context item.
    Class that represents the static type of an expression.
    Definition: StaticType.hpp:33
    ~AutoRegexGroupStoreReset()
    Definition: ContextHelpers.hpp:209
    DynamicContext * context_
    Definition: ContextHelpers.hpp:194
    ~AutoStackFrameReset()
    Definition: ContextHelpers.hpp:258
    void reset()
    Definition: ContextHelpers.hpp:214
    virtual const VariableStore * getVariableStore() const =0
    get the variable store
    StaticContext * context_
    Definition: ContextHelpers.hpp:244
    T old_
    Definition: ContextHelpers.hpp:294
    Definition: ContextHelpers.hpp:50
    const XMLCh * _defaultElementAndTypeNS
    Definition: ContextHelpers.hpp:106
    virtual NodeSetOrdering getNodeSetOrdering() const =0
    Return the ordering method for node sets.
    XQilla-2.3.4/docs/simple-api/Node_8hpp.html0000644001725400016040000001237613273140077015356 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Node.hpp File Reference
    #include <xqilla/items/ATQNameOrDerived.hpp>
    #include <xqilla/items/ATBooleanOrDerived.hpp>
    #include <xqilla/ast/XQStep.hpp>
    Include dependency graph for Node.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Node
     
    XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp__incl.md50000644001725400016040000000004013273140074017562 00000000000000d7b6e2bc1c652918e57a6b8c1f00a9feXQilla-2.3.4/docs/simple-api/classAutoStackFrameReset-members.html0000644001725400016040000000672013273140074022055 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoStackFrameReset Member List

    This is the complete list of members for AutoStackFrameReset, including all inherited members.

    _oldFrameAutoStackFrameResetprotected
    AutoStackFrameReset(DynamicContext *context, const StackFrame *frame)AutoStackFrameResetinline
    context_AutoStackFrameResetprotected
    reset()AutoStackFrameResetinline
    ~AutoStackFrameReset()AutoStackFrameResetinline
    XQilla-2.3.4/docs/simple-api/functions_func_0x78.html0000644001725400016040000001264213273140074017334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
     

    - x -

    XQilla-2.3.4/docs/simple-api/ftv2vertline.png0000644001725400016040000000012613273140073015766 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp.html0000644001725400016040000002224113273140077016707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ItemFactory.hpp File Reference
    Include dependency graph for ItemFactory.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ItemFactory
     
    XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp__incl.map0000644001725400016040000000114113273140074020567 00000000000000 XQilla-2.3.4/docs/simple-api/classATGYearOrDerived.html0000644001725400016040000012571313273140077017620 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGYearOrDerived Class Referenceabstract

    #include <ATGYearOrDerived.hpp>

    Inheritance diagram for ATGYearOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATGYearOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual bool hasTimezone () const =0
     Returns true if a timezone is defined for this. More...
     
    virtual ATGYearOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Sets the timezone to the given timezone. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATGYearOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATGYearOrDerived::compare ( const ATGYearOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATGYearOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATGYearOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGYearOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATGYearOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if a timezone is defined for this.

    False otherwise.

    Implements DateOrTimeType.

    virtual ATGYearOrDerived::Ptr ATGYearOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Sets the timezone to the given timezone.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classATDurationOrDerived__inherit__graph.map0000644001725400016040000000065313273140076023402 00000000000000 XQilla-2.3.4/docs/simple-api/classATDurationOrDerived__inherit__graph.md50000644001725400016040000000004013273140074023276 00000000000000df8c73fa0e90c89fe2b837b7c9024406XQilla-2.3.4/docs/simple-api/classxercesc_1_1MemoryManager.html0000644001725400016040000003120013273140077021323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::MemoryManager Class Referenceabstract

    Configurable memory manager. More...

    #include <MemoryManager.hpp>

    Inheritance diagram for xercesc::MemoryManager:

    Public Member Functions

    virtual MemoryManagergetExceptionMemoryManager ()=0
     This method is called to obtain the memory manager that should be used to allocate memory used in exceptions. More...
     
    Destructor
    virtual ~MemoryManager ()
     Default destructor. More...
     
    The pure virtual methods in this interface.
    virtual void * allocate (XMLSize_t size)=0
     This method allocates requested memory. More...
     
    virtual void deallocate (void *p)=0
     This method deallocates memory. More...
     

    Protected Member Functions

    Constructor
     MemoryManager ()
     Protected default constructor. More...
     

    Detailed Description

    Configurable memory manager.

    This interface allows outside applications to plug in their own memory manager to be used by Xerces for memory allocation/deallocation.

    Constructor & Destructor Documentation

    virtual xercesc::MemoryManager::~MemoryManager ( )
    inlinevirtual

    Default destructor.

    xercesc::MemoryManager::MemoryManager ( )
    inlineprotected

    Protected default constructor.

    Member Function Documentation

    virtual void* xercesc::MemoryManager::allocate ( XMLSize_t  size)
    pure virtual

    This method allocates requested memory.

    Parameters
    sizeThe requested memory size
    Returns
    A pointer to the allocated memory

    Referenced by XQillaAllocator< _Tp >::allocate(), AutoDeallocate< TYPE >::mmgr_(), and operator new().

    virtual void xercesc::MemoryManager::deallocate ( void *  p)
    pure virtual

    This method deallocates memory.

    Parameters
    pThe pointer to the allocated memory to be deleted

    Implemented in XPath2MemoryManager.

    Referenced by XQillaAllocator< _Tp >::deallocate(), AutoDeallocate< TYPE >::set(), and AutoDeallocate< TYPE >::~AutoDeallocate().

    virtual MemoryManager* xercesc::MemoryManager::getExceptionMemoryManager ( )
    pure virtual

    This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.

    If the same memory manager can be used, simply return 'this' from this function. Note, however, that if there is a possibility that an exception thrown can outlive the memory manager (for example, because the memory manager object is allocated on the stack or is managed by a stack-bound object), it is recommended that you return XMLPlatformUtils::fgMemoryManager.

    Returns
    A pointer to the memory manager

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classDynamicContext__inherit__graph.png0000644001725400016040000001245013273140076022522 00000000000000PNG  IHDRBbKGDIDATxyTW߀oHX슢OA{EEqEywh]n[dq"ë֊"(PV[AJ $MI@`ܙ3Β0?`:=jY`Oh=,?PQQP0TLfPPP^G (.]͕Nd>;w A'4{B 橠bIkRRR444  Fɓ ϿtRBپ})ǃ֚޽b 3s\@qqjmtOm۶6olffi&ޖ:fDZZp(OJJ9˅^xƆCBqBaqq1 ==G;vѣ'y+l!LMMݻ!"HasreGX,޽{555 ٷo_DBL:522?) lekkkddt^z}W۶m#񼼼 -,,6l ?p@ooorzmmV{ .򪪪211yYٳgzf7o&p"##Y,?x浵e͛7#t={fjjJ}:::޽zl^WWwiܹs޽Ο?/^` nիW E"0::_~ң=x-޽{յK.W^my \pAOO/33SKK+99ŷo&3fA'!U||"*J6E|ʕ+WZ[ لzzꕱI4zS :--,H"V YYY¦g2̚7GeeAxx80((Ą,A&&&YYY]t!6ޗ ~ٟ|gnn.`o!ӧmJJJ ^={VSS?ƜOݳoq!}444433^Qw˵>iH vN~Gϟ_ƅO3gĴy!4|xǎ3s!?`Oh {#$LzoeiipC_߅2Tub:I^5?wcQ&t;?%%DbUǢLhI$޿os/ULh)#i}}RKJSu8ʄVX,5A^e BUG4㩡AoEDܸjCR"믅kH(xJHxX,uimm CR"4T[ېAH_-TUHʅ&RSWXG&I$V$IN΋* ISuRLˇt)11!{eHlftAb2?tF=/zM@ ƽ`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=`Oh=m{}VVIRKˆ(۶}p|r79rmm'̙Ӟ6y[ >?`Ohб|_޽mll[ϟ_ի!Cr'c=Y&???!!իW)))7nА:>\9jjj;oZO@eժUnnn???gglކ5՜9s̙Ut={.\PU!ĄLKKspp655 A/K njjM]~}}}YYYO !DGG߿_>$ s˴j&L8x`ii)YO= 444+**o޼QSaq wBzC</""PSS#3&ϙN!$"''gΝg2 555=}L@qqBO )}KI! HI-&ϙNO|>?&& rR"l߾m^JJʨQ-ZԂܻwZ;x>(L !Hs*08˙e2 ISbb =XL $P,B篿T 3FxJHxΔė.$COy"XfxUs(H__[n###ő;;==eZzOyTTd+++.;dȐ_D"kmlmk??1iӦ 2O8q^ ӽMv%r/]e/^$+]5cƌ/o3g+f̘$YYYgϦi&7}9s愄tc[r%`֬Yd+ BCCgΜ9sP ]]]7ollliN::1cܻwO,ݻgffַo_rw744ر&::zŊߖlٲGFFX… ԣ5>>>+++((ѣd^k>r{IM[[ؘ,;v۷aLLluq8ÇGEE}w x[nҒiN:z,f'N`||3tuu'M SGFF]А܏>||ĉ:::...poookk޽{@bKFu֚5k̬-Zt 4vںu댍}||rssk֬>}rvy|WQQannPSSsttʲˣ622HXC tttsRT---ɲk׮eee6gϞǎH$d o*M*XڥKԩSϝ;wVF B:|prrرwܹ}]ݥMMM _~}kWjhh(}sr92667ni``pׯ_zcAOO/:::######--޼y4hРSjxr޽{945X,>w9p5H$"b ¨(@CC0qӧO|˗ǎ&/^{>y򤤤ܹsK,X,''Ǐs8/_FFF:;; @@#""KJJ6mڔ !zbŊݻwkkk{xx?~ӦMIII7n8|p^__?<<<$$$ @ sϞ=Ҿnݺ'O._\]]}ܸqͥ755={իW/>yҥK ѣ}||kkkY,#GdZOϒ`{ӧOWUUm۶= 7NNN-=Pp]6u]XOO>?`Oh@ՏMDIENDB`XQilla-2.3.4/docs/simple-api/classXercesConfiguration-members.html0000644001725400016040000001761613273140074022170 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XercesConfiguration Member List

    This is the complete list of members for XercesConfiguration, including all inherited members.

    createASTToXML()XercesConfigurationvirtual
    createDefaultURIResolver(xercesc::MemoryManager *memMgr)XercesConfigurationvirtual
    createDocumentCache(xercesc::MemoryManager *memMgr)XercesConfigurationvirtual
    createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)XercesConfigurationvirtual
    createNode(const xercesc::DOMNode *node, const DynamicContext *context) const XercesConfigurationvirtual
    createSequenceBuilder(const DynamicContext *context)XercesConfigurationvirtual
    createUpdateFactory(xercesc::MemoryManager *memMgr)XercesConfigurationvirtual
    gXercesXercesConfigurationstatic
    operator delete(void *p)xercesc::XMemory
    operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
    operator delete(void *p, void *ptr)xercesc::XMemory
    operator new(size_t size)xercesc::XMemory
    operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
    operator new(size_t size, void *ptr)xercesc::XMemory
    populateDynamicContext(DynamicContext *context)XQillaConfigurationinlinevirtual
    populateStaticContext(StaticContext *context)XQillaConfigurationinlinevirtual
    testInterrupt()XQillaConfigurationinlinevirtual
    XMemory()xercesc::XMemoryinlineprotected
    ~XQillaConfiguration()XQillaConfigurationinlinevirtual
    XQilla-2.3.4/docs/simple-api/inherit_graph_25.md50000644001725400016040000000004013273140074016362 00000000000000677c121159ec37e6e1c46cfd2fcb1fbdXQilla-2.3.4/docs/simple-api/dir_000001_000019.html0000644001725400016040000000362213273140074015710 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    xqilla → xerces Relation

    File in include/xqillaIncludes file in include/xqilla/xerces
    xqilla-simple.hppXercesConfiguration.hpp
    XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp.html0000644001725400016040000001404113273140077020276 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDurationOrDerived.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xqilla/items/AnyAtomicType.hpp>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/items/ATDecimalOrDerived.hpp>
    Include dependency graph for ATDurationOrDerived.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  ATDurationOrDerived
     
    XQilla-2.3.4/docs/simple-api/XQillaConfiguration_8hpp__dep__incl.map0000644001725400016040000000072113273140076022345 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_18.map0000644001725400016040000000027013273140077016464 00000000000000 XQilla-2.3.4/docs/simple-api/dir_0d8d8d528984d74693bf008fd4d605d0_dep.md50000644001725400016040000000004013273140074021160 00000000000000d57cf16c82b2c16ab27ecae891f1f772XQilla-2.3.4/docs/simple-api/InputSource_8hpp__dep__incl.md50000644001725400016040000000004013273140074020603 00000000000000f2c98cdaa03d2bb60975c77b27b4f6afXQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__dep__incl.md50000644001725400016040000000004013273140073021050 00000000000000a4d10cf41d1fbae87f44023f1158542fXQilla-2.3.4/docs/simple-api/XMemory_8hpp__incl.png0000644001725400016040000001331013273140076017041 00000000000000PNG  IHDRp3bKGD}IDATxyXOA " 襠^rUJ Z"(xдzmU( hAEETqAZ@¢ B1'$5yg{sf9gwp)xE!PW@]A u`Q!t:NWt*@Qt J~2'''EJyyyA]A(T2E>+{ 쁺@ +墶vŢ'K.}D"At޽D"5779TQu\L:L&'$$lv|||@@-Akkυ۳X*&V@])6l0008y$ԩS֭={hϜ9SAButD*Z\\]\\LRĿo3.ZL8yoZ啜$8 `gϞ-))Y~GZZZСCk׮MJJhnn&H --[V[[+ݻwV\ @=oذ+!!J4ʦ ԕ2KL"?Cl6c0'O~zz:jw^RRRpppJJJEEEjjjhhhff&O}eeeNNZT*5((-,,c}vJJʮ]h4PXXwݾ}ٳRjԕ2 HCColl ǻS ggg}}}∈333[[[ r뫣/utt-[`X<4,,600իhYf͙3H$VWW]cFX`5ZYYM>}Bjԕ2rڵ7oZ+ Z[[I$Db0]GG'E]]]`ĉOKKˎt.\x֭{-YDbAhT3JǛ7oBBB\\\ Jν={nddhYxKKK@OOOggx1yd@KK JELl6[?F-]TQ̀R.JJJ޽[nnF"MAAA:::[lٱcBI&&&!!!s^777ȑ#o߾yɒ%T*uܹBjc>>>*FkmmoF}ss3LqưFHs"V%Wa`0şcQ 3 |Q=ءrʑx=2 3f̸xhKܹs$FW@]A u`=\iooW]Qu%?tYނf]/ps8MjD yֈ y A={*ɫV@o< ""矫iŋIj ԕz MJ_u.?<_sgnAX |懄+r+uoݚYZ,3s…:pxjܙ ֭[jԕZ10PN[3[ϗv^1~Vd966|ԕ7VU՘:{dֵmb޽TŮ46I 16pTg~~',Gj&8/oY&[+e'6yxHH V++ xqc />ؼ9wO?C o"zz{Ñoڼ!T`_WoudeUgS(wz<$n`baazu³g E#[v񙚽Ԥ?ܹPG މUUGJ׿rLgpϜ|Y PpR.PQ^**qglSuL㕲 ȁi[GUt82G-=}8^)[H݊_?D $'\9ߟ/J"糪 Mfm㕂QgUAB9NUa3C9Uj"N|r>8n^OcjJ13糪Nܐ36d '0s~vy|VODBT]h[{?oZ{׭Kf0 àL@>yƞ=** ԕ8zʛ7^^ o5k_fm"u51UA NܽK²ĉ|H$|Nz;rx<>U9UWgxx3[O A<wWJu%z{}o?54::zyyjq̾AU"zc~Mp(~e8Ÿ\.px IE -*'(('z֪@]a9~:/5xkdzMee}@MTT(^ϲ'-W6#nr}|zz$ ޽I\.n! /,CưXy<ĵ8xE_ANJܡR{#G7Qu1D"@Z5tׂSާOo;@$˿tM %,V{zO 54~~n%+AuuөS7 x./+\P@]aѣc : 30i͛ CU˗i_r]V'W0={?O |$<|"(RSoxurrRD`գIKK'Op8I&a _*塽;ZZZ{`=PW@]A أjll `]]z7I ZD"N EEE=Ẽ`cc!틆GyyWW@"c*իWK\ tpC5k_[@ww֭[cbbe(;xUzz:tuuE#HKKKvvӧO2#3 #T^W%%%W 7oޠ&&&Ro111AJZXXڵKfQt„ $… Cmŋ---999l6r̢\.:^~ں,&&_g,^ p%mmm[[LǓX׺ƍ܅׿&LCMM͌ İip˗/G]#YRRbooodd+썢"GGG33p#8B.T+|ÇϟmѲl;;;SS^بADhkkq2oFwcccuu+J,_t߾}NNNՏ=O*ӣ`0RSSDbOOÇ%OKKD 5 5 Re4yZ+++ ׎ʧ(?d^~zpww?'(HxǏo3FGbKEѣfff---/_8q"ڱ;GL*:.m.+++~6m@^:sL8::k>}*\/٩qȑ.@b|PŽ;;;Օ8@ $d2Y2m2 S@YY |>K4~AΝ;goo/шHERѮpppni)m)S%c}t ȁB[[Т-:  @>zH܏x)A~/BWWw…?PY,֪UeDdffܼyS[[P>MC$ٳgϖ^pc>EԈօzC>֖h&|o͜QJ lڴ),,,''ڵk.]Bk֬ꫯ-[vqR6lسg*۷744 U ù3́ ŋ<==Q?3g0cǎV#!P(...AAAHss094 ݸ͛^^^;wIChweDDD]]]ee_M&)␐袢+WݻWHa37nFc@t<0!!aƌ… ) 422266f٢ctTTĉ ֯_ՅK!r9;;;MMiӦI,>00b 2FM<$,,OQ yxKEw1;|yЁ}y`nnYdd$A/EaZRRWW7uT]IK4Jka&~x*_QB" e$Fu5133KNN~@]A u`=PWHs&DʕxFug2A"0?;= +{ 쁺@!?IENDB`XQilla-2.3.4/docs/simple-api/StaticContext_8hpp__incl.png0000644001725400016040000047335313273140076020256 00000000000000PNG  IHDRwm#bKGD IDATxwxSft{(KUeP 2p { AbAF -M۴{8c[J)mӖ9$;'p:F<]4bH2@!ecy͛7o޼UXgϞ)))!!!-aޢE?M6͜9˖-#@*+U ^vmg̘1|oڴJgIx/H=@믿r؄N42x`ɓ&L߿!C6lPn@^^^Ϟ= !v}ڵ#F8pݏ92d;v̙3N/{aÆ-]bBz;g駟*dٖ-[6hРA-[f8qbСZ1cƘLr*ܹsIII??~|̘1 Vk;kތ3.\0t3flڴIP=!d֭)))ʕ+U*-[9r?_`ANNNJJ !Dӕt{…˖-/Ϟ=qFرcK,8q˵ZmGܲeKAA˿ .]k׮;v\dIYYْ%K}Wi.O^r̙3WZ?>;}4RfFGٴi… ۴i5jp8իW4~7n\tttTT;ӪU+B$0Jb80eʔ^zi߾}D~B*vؽ{ԩS'NxBȔ)S.\0}{E|#Fݻw'IЄ^{-444>>~b* L'N#>>>>>~̘1֭[lY޽݇Xܯh4Vq@BJ#"""""!b;++Եk׾ۅ j4Lm???>Vaa{PHD Bz b* )3@t:?BԩΝ; 3s̙3gN.]Vݻv@__¨(Bȍ7N:5zhBHn6m4w\Wo>r h$OerϔT*]`AHHӔRTTm۶;~=_J"777::CcaY;wfr0NL&S$y+ ;K,a~^^Uq};w믿QZZtRF[Vb,˺u!A wժU FFF/رc?쳁Gnݺ?'X={.Zh&iO>d5111qʕ^[h1eʔy C}̙3ׯ_rʼ|xj f=`76-˿Vkv8wqFM6CP&l~6Zmx/RGsөјtÙV߃/&K$B\&-pl!D"1 //D'nq+yL&(?cxlr;"wr&rN1B. >xٞ.1=zﹳj={7oՠAbDCdIi4Fl&kt&AZ]3lvr;[[5Nr've&8`0[Lj4C=bplby \BTg0fқۭN$X|>udYG"%>خU"ai4ƌ̒7ׯfg+ eB὿ % dH~-Zmt*A5˦ Jehtd# ˅ O&~rqpLT 1\[vrZ66ZE6)'pX2exlᰄB@X"p,OgX|Pp PJKW\Rpr^ff1t-5м<..0"7::`ܸ1Ş~Pg8_\LVڠRjZmT jѵD{ㆂ)+3Х\\ǩt=b4Uhj=55#jl5ZbtfڨPh4b3,tvB.KsjÒJtXrYW(pl al|D«g )3@mjMiiWΟϺ|9/+vkr:4PQQ͚GEGEEE OryCެUۍh# ss'_6h4J3 i!̌w괷fL&"Nl] Z%t5.M;\LV[LVFqD;jFY>M9u:iK㱹\Lj'5g32^-8w.ҥRt=BNl<..u됨(hH?_ rBnP㫞(]\MO=QTo{',i\"Kd2!wy677,:h h0X `Qt`(zSn?sHytHyG <'pBk[ H$<,+<כ/]9x3ee[,[m&}cc>鯨СCx긯:(m(+3Tzpg۠RUWmsE hL ]ۘUH5/q'ЉE&Dt|ZVk2,&9@JB!W mCe2mͬiT-4 EP`9r.\Rj&z`0d2~dVA:Ehr(o/Xvy6l\%J{C=DͰX$&&zd*B]q]\V`4 @Rui??1Zv@}*C6}TBi<\wz{ 9)3h4>|ҥRBUl63 @ڢS=7oz뭍'Oޘ<33xl/c0?jXO]<4"vi 5j K{G"=Z,I|/nAoG/<$2NG__X: X i&Ǜ\&;/fpG*.&'//*lj˖uXdTEZ6*\BʣiJG#/k-Jw*:˭:ĉՇ.N3+KyÇ]6 " "#ڷݻO4hTygݗ;ϙ3~_^{b7Cmx ʠVnTJKee2CYLTKKu^ G#B[4XjA5Q3k&>hI3!D$D *Dy2Wt'}Aӥ>}|=!e-;[ytݺqCp8rThL j>"11.11sױciS/ݩS˩ѣiƭ5f<4tv4s'AJ$u e*41*̠RotO&Ӌ4}3'6-RfhXNgZԩgd:QPrY-[{{ jõkz%6V޳gti&r=]rp8v{y&a޼ y3fE\\urEH*Ui+ޭ{Cڸ#0P bT!eϳwLٳǏNRvzk|>{^{ tɍXi~ʔo|A{{KK+9rT߰ab`4}U$tb;FҮ Af2Y+嚭i㗊ߔ.%hRf qbֱc'O<`=hTǎl6+-?.""|zǴ_'s:ɲec;vt9Օ[6r2վqĨ(ODѮJXwGmqnѥzM+ ~~"_'e2g@XleeR=N{t٣S*iuowuEpr~~b|P+ǎ?vT^o vc117{\:v,fstկ_~ZGFy&t^}wbѢQRi# tT*Ø1+K7lتU{+7HSXr\MhWkOdbB44qTO4]S)R]qV5Ƴ;+|JVC$Z$‡P2@R=vhڱceezaǎ>'q칼{rO<Ѽ_}z&E5Oqi>oկ~W7ܹ[k֌KLt9vY\).֖芊4%%:RWX<]14r_ O+d0b3;' NgvrYbD>>BzN|4 HNXtB#:wn֭[lAݻ/yܹ[R)'[ӪgxL /ͱ| <rj2%eϞˋ0:>!nV\Άv_fV.x=4<$ht!=eJEEBsk|>Ѯ ש 8P5Pkfۙ3G=vR.j&G}#D.]BӘ!n;<Cx1+J[ ])т ߃OLV:!DT MID[TQ*ڲ2k0}}w6Db': @2yСk^;yhi"G={?X4"wc_.dK<\nb1N/$'w!l6զ%Koowڴ4jQ\U(4EEmaDWRs) R??\.9r((H+5vC5ci/;`pX"\B*}}Es 14@jh;wȑ{/+Nn}ٳEH7c6e˹ }['%ѣE;&k;u_ 1QOS'֮=[_z)q܁~jCa5.QH 4WZThrޗn=m8wwHe>h2}qh^=s&nwiڣG=[t隘p8OH߼￧Z,= {OVt^3ԃ7^|q^o^f\v.mv77|e3C~))'M5\ Oee^Zsz/ur6ǎ.6VvXhb0X&LX{LU/=DsOfP]i3輼2$hW[Wh׏| -QRϧ8 5|Ua:?_j!q64} HRf oƍ O'$%}䑨*:)m.\y8=]ѩS?tYy lӦ33gܿ GxlOPX7S/4 vX**P_Ph3>, hv,˥R,9ڈMVҽ᰼kx^04T!eh\߱㯝;, 0m;tzRvr))'M&KRRIzhTo5C՜N|/ܹG;V:gCƌrr]0+KP{HߊYX=^o++,Tjl Rcl&m$ ˂ehRf&Pkߛ7t)78XS IIm;uw`/^^x=d/=9T*:,۔)?s髯F 4\K]xƍv᠑YA*?_W_VPvg\.+(eo:4'8X xșͶ= jڂ@>:8X" vKeaa>|>dzTRfF1ǥ]>pP۷հawNo|ݟG\o.|Ҥ^[fK.][f\׮1.ر?xfZ<-;[>q@i@$0P'=[?gYRBRAnh4F:An4"7<7$p eh"vlj76o>6'Hmlfu~hڼyϟթSɽiUC T1cVdgn0UO8s ~; :b[5\-q=[?gظ>It~j1;$kxBC 襦l|n # ǧZk[;|9q3g>ձcd 5W,O?rom5k!h* M^^^och|Fg=ә-vGQ&7,?_W-/W-K<[<4aHƍl9wVI\\!]ͻm.̟GNNiRR)S~ ׍E?T,mj` ]߷=zEXOJ+ Hj&._}\Wj /JOW_?]"m^^Ynni^*7C1>>B4 <',7<','<~?hbNgQ5Fn Ja2aa>~>bOy觟2}nGw߿M +W?hǑ#׻w{睧;vjmr6S^-2-ɛVԣG ӧ3>p[J+xДi2:;4;[Z9M.y` Z=斺oYvB@ wsxODtP248V}׮׭;vlfxȑ=5[ND7o7NH}、nbjZ#7}&M5k3 3flںw%?l{BիII  /ta.0blevv) q< 24 O_Bf.ݻjsM7jTg\5"۷5eJʄ O|᳞r:|sٲCs<׷oU 6dWBBjUG bgZWyEELb0;vLEs՞s6 5M: .N޼y`dDɛ3q},.Xlo鏵4T~u T{?c70K_s>Xt-V s=Z#G.?s&fg2:tؾ OM^oR޺Ur2+$?_e;!HHH; @!j´4EŞ+(Hؼy ={RfvJʕIN -)Dnwʺ}ذab-*xO|v%h\.+0PdzypsuKOK@gfk&v4}ƉS?2ԟ3g2/޿ո8/?>dHiAk?xǖ-iCdR*3DϚn2^9@ IJ4ׂiqq<UxB,v}c 3֭zp8,Ftt@HAK egd,Yr`߾ڴ <mtnrnl6O?tB oǎ&MZ?yrw}ӵfʗ^>g@O0Xl۷d4to:`UhFϮ by9:?::Y3@K 7\j\si+o~ֵk arHj }gFFq-zovuO̝=:G< 7a/f}߾n4:3xVjjΊoŰZowjf28n\gk/-3$-N޼~v߀H?کFi-Z5  5Mυ99nr&ήF_co߯/_c8$ӥvF P ˆ .=XR}o'&&TMR߳dvVs-j"(%U6eKI9ә!S&93[$q9-d: 49i\6qq`W-&]׷弼qqzcLj~2u)3@)-կ]{tV=9$:t6E;wnVGP}vhkXL&֭/? Lڴ~. Ug&XɛMXqƍ7o,VZvB\.i, &&y󠸸̒ob1v#ГHjA^^6l8Ǎ>n\wm^1LO?ݵfΛ7L*i4:E&׿ͣGf6^NPЫ<]Cb8p 1MKhٝ(#D6BxujV>e&`0H_}5">>СCRiXSV}'KrWH3+[_u_^5TjO6=]S?bv6l__G]{l6G^^_ٳ3,T'o<еNZDj@i`tڴ1BN'>}zn߿^Jg-#eogd,Yr`߾Z?;2fٸIfz]9}S2~yRlE[6ʵvy~v{%RG.芞} \BR Uq8Ns͚#GlޜP?e4Zn=fk {he]cM͢ի_߿M= Գnvо}kerT.&&ƹՆ ]ٳYYJBX̋3͝cbbW_&Ӌ`lB$m, *?,̇Pzځ޲?p|Æ&e%jRwɓ ޻w:`dyq?>lH-<] @}J>jTz4EzbÆ*BǦ 6o+ ŗQS(Ԅ.M?V   H:*kRf9zݻS}}E'bw__Q=۠As>]_y剱cyvҬKf=Z)38+KVغ͛EvfFE'$>mۆ=X9>ѧj# <]H=A P ޼mۅ5k^V7؁f郚ͶSܳ9ǏN SNN /ҥ$yZvƍXYq{eggϞ={ڵ SW=jܫro7 %ӧ8q$>>4hfs=@&\{V{FFqjjNZ"-pEEZrg]mڄbN4d^^:s]}u-?^-Ǔ[ZuXdt||p=ud_8p`] ܫ:qDTTnOKK[pa.]$<[G}T*۷oi&X{#Gn߾_~lf͛Ωii962-LWhw\\`BB(m+G h/jv^א2B`ٱ??/~w͛7E=½*@BHHHH=z`szp8JK̞=gϞV?lٲ믿F MCv#7ⅈqcqqrd]p4ـ&fuM_ii~G`M^;vl֤I-b줤obΝ+VޘVqܱcGHHHYY!dƍqqqzp,^8>>^,w ƍ%ٵkWAPP:D(|BΝ;x<^tt !6m/Jrm޽111ޟ9cZg̘!f̘aZ ! c͚5_|룢R~Xͪa0oFTT/_hhM&S52,nO7o!s΄B~嗩S={իW)?\N{ѧ}͛fҝTӧմi/{;׮}g۟~:$11N6XqxUm_|=Wyoa#Op  Ej]WUS(,=So!&杨S:uS]{,4wf{#-Z7eJ ))sYYYhhhBB+lժպu\~ᇪSf|UNg>n BR6_9Vkۛ7ouVW\qmB:t:vP-Z(((׮];:… NbNOOgU*Sfd2/_Loݺ5&&ҚxPEyU<)z~RBHYYY>U-/55شiSLLL;+׭QҫՆ{vjm?xǿfH[M?phz*Z)32BPo|Ngdn{ ܱ+ϝw2IOul1 IDATʺ0y{dܹsGdddk5 !!#p8 &tӝ:jz{{B<Ξ=Cfzꩧbccx !^^6|uVPPGTJ7b1!fۮNUJOOo֬!DPvM%ܭf快('EHooo\~ʕ]v={vҤIr*ދ,-Z/vV`͚uv֬f3y<Wl6N_㋗C")8f zX̿s_]`J ,Bل&K,{b1c2"Ql0-Z8ݣPSSsSSsRSsW8Ph!r$!!,!!4!!muFf*_H'NHI9g%>޵rXqxΜ_{oɽ=[ ԅٳݺU{"''gO>ih䐐m۶t?SF礤$ټvZBȞ={p86olX6nܘTTT|֭֭[B.^ot|~~~!T{>{VU\t3hܹ'Lxӵ@۱'/۬Yc]p7nʔ)z˖-wܙ4nܸ3fH{ŋn1ƹsBZۿK:`7%%'X,l6[ 3ߏ$Lͯl@<T*xhdtZ> gS"7o+k7˿;mڥ՚카e˹Gӂd#F<6zt_Ou۲e>xܹǏӵ@udƌM%ӵ_\\;KN8{ӧOloVqqq6m͛7jԨ*"ɾdP8k֬#GݻK.<~xwrrr7mf͚~yU|ԩS۷o5dȐrIqͪ\'ϻ./^o۶ힵד޽{PPV%?~Æ j;v+>ggg?hRSsRRNnvjzGzg2TZ'裁/ Xl<-ܾ;1bă_޸q#66WPJ=j;`06m4|xcmqlDkj6[i՚vFcXYVd4ZfZm4m&U16כh\ǑHx\.K J$<+pD"D B!W HnK$|+ro"h\V{FF1霚c6b^AtcE7i.(:te˖ېEEEW\ѣNeFOlrOݺU}FcU~ORwOu/*ٷoFU[Ӎi`m0XfFc]U*펭k|~žae @D(JEYE8ꪻ:j](\U܈ đ jDVBGZ^""~^yɝíTW԰kjإ,55؟PRSVeUTdedUUrT<*G ZHZZFFߕ .CQRRiBgiXI +*j!v.JII LKGWjkKKKKkrrkkj>훯$+\C`2@Bbkgk7yA,V}bbvl,NO?u)mlA98BIhPe߻fϞ;/^d9:ۄѣ]:㛟 odNv;wROJ';7n:29556 6X,Zi˷NBEEAEE @ ʪkkDזV_XTTURRi %MM% %mm-<@w[r^̢-[n԰f ;%\nnnqq1)Zf~pOW\\5lXٳ99._~9w]&Jv~kk$|PGv͖ALDUR]-]Y)_d)ŒIMpq)#/O13SϧT J((4P:۲'IIM6/.*).)aʪYEE꒒ꢢ2TT֦ +::TMM%u45T;gOI(8,%%Yww ww޽-w7DŹSJKKktaZZZ~zUf _CyΝ%%i̚@PMS{Y3, B+VuÇ+TTN=]>JCCiqV-̙G+oXrW]WpԏtzǬURuv6h4s77stkf\EEUuUPRR'ZVVJWWE[zzؾ @tJtzz||Z~~$A dׯڼFnn~BvoRS] @@eˍo:TPm`Ѣ11wtr94[ZZҥyxIqm++~`.]ѣ"ڵWgxc>de FdHII;zzZ):=_RR]XXYXX%\,<Y|ߵ*UNWW::T}}5CCU--*7h*?j %OO+ook//CN|(td2 ի/''9 57onN$**qΜǎu ; PxxUn^bkOvh N|\d것bn1S4 ::Zbx@7*aoG##99hxyYyxX(/)a}9?_Q\jAKKKSqVSW14TWSUWa-%|-U/^*:AAUAAQ/'xyYY3VDm&'guFDkӄ իwva^޽SsEF>Wyy5aIb'&f2F3uxځGaaUVVptvvS&,@HsXC؅DTJ';8.!8~KDF^^6z3|#Tx?ݾ5 Nv$Ə?PTĺ}{,6BC/ܺ$Kv:EE_lh+JUW{Z<`|/8::9 (ngZ[INe02bc FF}}1fe`7|X_W[W_cE^^yu5[x*U^__Ϫjjj3QM ˬXf\3))G^^W/AI_Pem%gSR, ǎ=Z毨NNdgh[OFv:W&XqAYYnInnd{vE?% x/5o8\~jGaW8fEE fFtgut>]U*\ iZEEDDXP> +޽7￉O`ۿ7WW3,pCDsgt;vL%;Q.8p̙^+V '; ssˣh'RUU|{Z5R^^u44<<6f)yڵEciiE FqZ^^fNYPrdgŬ򜜲ҜrKFぱ:B1fs 2}X d?`*頣CD(/b޼+zwԩrrʣ`5_ɇc?sfv߾6dgz2kΜo uΞ}|ǏZ~o'O0SSo#* :=,3pu5<=PV9;r.O˟MMY=S]Ͷ4~ ;WW3MBD֭?tVKKib~լYǒ, B`ذꊧNZD 9~}OVlsĖߋ;;=_po(,Ӆ5s|p{WW3KCC4yNcyNNYvvivvY bJFFZffffP ))jw<4S2@۷ڵĉn׏n_]o}X}U :_߹ֶ~dҕ,Zt ZxSwvG[mBBν~{OacctzzbbvCOGJ :XK]FNNYVVizzqff톊?g4\޽+v-Ν~#F<;*3Z΂׮IvkOB54"$ nis4=y!8S]]d̑#)~M3>]il&I:ZNrr.d02i43//ko,07̂7ֱ53RVF1̒۷ Ӑ!UUȎARaaV>fNv)޴r̙dgg!sY9]2 ݹsb[y,}轗/ϧѾi׽!xr]5JJ&4ffq?]AzzscZZDB[QQT^^zF҃o|ȑ΃;,Pe6]:aAIIӧɎ#rgHJypum,d>xp:Y9sx#pV_uw>YXXuBpFx<~ZZA?~W!//`@hfnn^vvizzqzzqFFqzzIFFq^^@ P(zz*VV:ֺVV:66h N]ѣW&޸fs{4sS\ m jj*:$$^}H!%1&;7og|(?ҳ˗Dnם;)E:􃶶rh/>\55W 6[VXXE k$' ΁jdF0RLM5:2>::W2a^}HJJ DUfVF֦FFrϟg>},q_٘,@MOq6o_SPP~qӾeъ >11;6I'&f74tt4lmC]٧ 2LfAvv@ 25մxֵF:۷/\x{#z|}VlwMJKG+--y<qaܸl6ʕd6ϚŋMf/Xp޽7:v$wcN) IDATQLv+W=[H_^,W{Nm-'99Ȉe2 ZZNN4!8},xݻ ԶԱճշS%;,,xŋ33Klltǎ5f>~KTx&˫|yc02FBfCQ߾ʆ :Gpq1UU4څ }Cߧ&ـ .QU#.YQQ$lBhnn22Rdgh'ƺohoo`oogogomm#HJ9/k2cȐPe t=*jYO@DnٲsiqqXǧ͜yTȑQݳ'f߾ ƚ6i7OSSi>|㧥1tziyy249ff!&{4b߼wNJINXWǑ076pt4rr2j ZwvrDēGZZI&Nt J1/>GAvQС s$; Vyy5kFMއ,?]{5~޽E4 us[#dG6oYY,R:=Ƞ3)) ;;WW3JMMXd$%$%&%VCtvt4tt4Bgg E~~ťK/{TPP͝%>>ڦYXqw?wnVII,,^k~'5'O>^gVU;J'Nh&B Vɹ|DCs%Ln*(83os8\iiI33-aFAihEG':46ui`}'*3|5>_0v7'UU={3fxDg[Ϟ&[#;^aa# ҹ|צ޽-mk_avo> DŽb'&f2F3u(1fs߽OIM^JJ^UUXѰG рAvvOOzbՏs֬d/Cھ}wmuObՎ c_J'; ֋Y~~nXdLv ̞}w{Ln ]{5{v˭tpؽ{caBZ\ rsX&Q_ߠdLyyY;8!;ԼII9 LG=  qýr%o滺zQuKݼdɐyn7عs"A@.LHȺ{wA _xLͼfۥrp@V]@qԏ®qq̊Z%%Ygg͌F3ws3A7mw^$%zUNIIBG#ݻahsw=|𝹹V`q2d& _'0Yp2ADBB;^]bJvӚhdgNp YZ0c||>={8rӊ|dh+<?-Ƞ?N˫qp0i4377 \-@DaasRRnBBVII!f6D22}tSyyY)+_Uf KDĬl.ǧ=x rrѢӯ^SUU ;hܸOTjI'Mnxq(_ҳgw, YYtz:Ag0RRvvf46 :==))*+u'gO vwIϙ>hQ -%|}wP#"fq=], rG\ɓb{0S9}:*ol?q"p@;QޛS|b(*,Ӆ5s|p@KCC5t Y/_f%$deeR(ss=M\]z2E{5GCII3<4PeN8"n< 36 ; Vu5{7O#;X{*găǏoĄ"_6kg~IE1>>11;6I'&f74tt4T'$d%$d?]SæR]]M]\Li4sggc؅)/9tѣqRRs BZj=jj d!E?|(zu!A@.\xdY WRRθqz2=|8@NN˫ذcDŽ%YMSZZȑYm-'99Ȉe2 ZZNN4!}*Ц\]-LEECz7r>% "O|;+Wq|GUΚ՗, rӧ'NHv񕚚v^r奛7_?}R;_lr.姦~vՈcVT*):;hf49~*t#H&k{xX["Bh;n9{w5kFH -p%l=~63"; Vm-> 2HM~{{\LDEEˇztRw D@O=~W!//` M$԰_̢ӟ.޽:uA13\Ū۸ڳgaGޏ0SSv:8>11;6I'&f74tt4%{x<~rqqL:=cbieջc* |CPPKb߼߶mceaa~fů _Fov1]ܻѣ{ %;܂ "#D]tK))Cx<~ZZA?~W!//`@hfnnT:bV\-)V۷[ݼmձϪGĭ_տ=TyuASVV< (-,1c\N!^|\b&"?w /%%al.څ{8m@l. _&))ackc;eAYYtz:qNʾ}w$ \]h43OO+55Q@|ii)"|Q]ALLJl,s<Pg$I]Q(@ g:t?A[II OO1.11B8:D&+٘ b V9th=/+( B9|xP{*3+AUtzƱcq|DCsaH#|.8x`cK}(x{[ګӞߺdΜ#F޾}]72@s=t\ccu, ϟg@GL>{v?RT BHHPNe߁m/_NظqLL]ω >11;6IGFx::T\Xtiy'wii)m⯣#6 #g5,lćE1111)K%|@̴Ȏ AGz ͋ϯ;wىT9/^dcEv $%8:CBB&j?%*kuB7e v1`=1x[ mEYYNXF!`d2WAKKɘF3vp0ϊsiij>}6];j$wl]vPPZN|;wRn {__{$~;##5k.UY3 ̵ ccSGt"; 97L`A@&OC]]idYtzKtuY#YQQkg ʞ=۹17˷ӧiyA qԏ®qq̊Z%%Ygg͌F3ws3G7n$1P dk$KKmg02bbRҊTT|| s߿4@͋>sݺPhvX ի."=rsˬt,>ݒba߾{%LDQˠP([ޏRRnnGDMJJ(0Л㧥1tz3v-//`@hfnnTܳgRR <_ u a}t=+Wefܾ|<&++=`aQrdDŽ7rܹ'%VEvNUfO))54 t|nZN^^~ŋmn͜V)ʯ<ك$^^;v1$))!k >|(z,ٳ}JKK::}XkKC ]\w=K ,SS͠~AAjMvբE|AϞ&~~N#G:kk+҈=x)'uuUgKv UfO-4-HJJT r> ["|aaw㸕+H\JefׯsbN؟t$w +>M􈙐-y<~FFɈ;+4tLh?)7n$mxu+Ç;CSS6Frϯ\q:1,$Ub## \,Ҋ%5-_~Ū۵kmX! ʪU#Ob]j\ TG7yᏼ7=z[ ƹ?>39yS547nf„g>~͞o dgZfO۩6/PLLM5H]⯿^FDj:S>_Z쳳 "8e(eee97jP(qq. r 7~=[RR \~~~q=<nj1ҥjjjJv (fscc]r奐s{[~}Cdqؤ9sNDE-D+RAp6bDcʔCZZ;wN$;eVu7mf)))'1fȐ6 mgg-#DFW8ͯDmĉgϞ44}~^ S(@86 M0a™3gNzJHPmF1|xҊ 2tdg锰_y1o~~#68 Uh!BT̈́'2@JJ = ttdPTTfFv.+2||".#mGQei|@[[YOOUKK݄HEEAU`AAK/Οg\\k8B xcǎ;v';K>#дRAbu2ǯo_Uii(,+dg<<,<@v 0thwS}}Uܹ_~C~H5jODē6ˤ%/=m[UfhZii e|vyg ExBvUfhZII**j RQeJJ2O2m6kkkee>}<{xmiii&nW\^`n+pr2޾}|B5kF%$d}o|e2 Nɠ MµҨ2w}tXKn;/@dQ?qċ/ DoVPP>>3% IDAT/.,,\xqDDÇׯ_믿2UVM6AX,رc{۷qU??Ood:yk׮%%%m۶mÆ 555+W1cFMMsIJJ?~<&&&<<_i?سg۷ld2–-[|Oݼy3!!ȑ#?s2_vի7ol7yē}|(@ ;vlYYYw,x@ p8:~}YY|>x%A`T*5;;q&?~+ާx@ xId?k(ް᪍MȷoN$녑Odd&"A|z輄?kqmoCyy6];wPPP5jԅ jjj^ }jhhطo߸8 k޼y΁f4<_>On|.֭[L'05 A 0`&s@t$$$\-:2@ E]xHg8q \\\4µӧ?MLLvdzz> XՔ~b,''YdWouuuƍ y'oݺ5d|@bں:>3g\ǎ?tLM~-A0LaN4RfvH@YYͨQ{F{n]{em[^^f͚3f43fLhhhVVVRRҐ!C7u԰0aSyeee5޸ ii/X ###99yʕ'Oi晙iik+3$f3f̘?3gbbb^JČ3BBB\RPPp֭+V4?p8222uuuk֬!b]reԨQM^$z 10BxbUUÑVPPhf.33۷رCegmdÇWVV6r…iii 2eJ3'EB2dHW^>>_~<tRKKu֝>}x?pofLx`KNRX؈~O_#"x5 PeVݶ?M,]+6uPWW+x-١@ yuII }ue]AUU=A15ܻw{LL4&Mc?CAZ#9SOWIʑӄ$%:%kkݣGg\n *.f Wl2v,6kK::TWIT=}cÎl.١CϞY3Bqr2JLZf& s?pྷk^ 2)@'7o>bD6VX~A)jm>qDē6@RRٳ!N[&edjk۬ࢦPfg74m4a„6ā̒%C&OشzPPx~uٹ BٳӋѶjhh۷혢c:9or8۴iӘ1cNeӧRR{,?9v$Ko}_/\H-//embcҭFwuum@ =id%8x>22 B[|~2Vێ,!!cvFNNF ի;@bjjjjjJv/x2kܓuu Nk#q>̛gs߾)8AYYqq̸8͛oϝK71׆Jo߀F3^eˍK^n򽧧5١@_f =d/%;H`b AÇcGۭރEZbY^w}L)S@HKKz߽bn9~ NV eaǃJdgʜQe1R\Zԓ'V9sW5Rc?~oT]]6YJJ(8x`YYM|8+/(۳Aֺm2W168yr֝;)߲e˸C :=e g99'&搝<|g[nnkBכ7*/vNJu8:}'+׬gOL~[<<6,[vĪ6y߻|@3.^|Ū';tnX -fsa@"Y8''rCC5ݶցƌqٴ{EEY޸xk?pdduFIb" )S<\~jǸ8fttO)(f*UnΉ~~NKDuΉVd Ufh'⫪ꃂ볷7|Dٳ33Kv4vl/rr׏vs3_48p`Znz-506&fǏ?0y/| Cv(|1Ttdn)) *3!!!qPbn4bD;w*) -5tJ3)**qȐ_璝:e/J,+=?Aą~jj)^u5;4¥K/fZzdl ad_wtzTv-5Dcr#G^~̔)d'UfGBvqagsSׯsg>QYYcGv$%%d|A?Ť3?==9[ӧnB_yFbb̙^d#YY @ppn}}wC:ruL2KKѣq-5=Q(gΉc|A瀵GunbJv1bg/޽ˌ,ߪf3YpТEfRDĬ#G֯3Ln$iuOAA'vo6z::T97n$m> PJOIC:#$%%.\Ɏ(J`ܹ'||3_nd"Sx1xsO&$d^=}LUfhŋ/eGr&;xP(z:5.{w]w|}w옠@vsv6^lٹɓu} -5*c1ٸ񚉉u߾6!t Ғ֍vq1]tVVSѦ М$#׍ ))W1wW׬Mv6,wlWeLL467jz@a?'OJv"舰Sr7oAđ7$n8jnVVV}QbnzO\_W$9–\Y~W?]d:kqw%{ws3tt YŮ&-cZֵc[uc-B9%]A)ݥcl֨Tӧ|g4q@ t33\orr -;9cnn=zJwge9s̛wGw[jܾr˽l[ uv^p؇tfb}ntǎݖq@ P(y0y3;KgdeOIO%h,=`99;v|9fL_!EE֪Uc i׮)ݻz:Zj{EQ3fݺuR~ UfΝW.JÆ; @|33Hç7曃#Fl^ijw(.v--))5&~DEUUž}M]]\;kk ۲ sBot'Y*3HvKK=KK=t^VViiNЌE<1%$dtkdyķ[\X͛'tBw!n@*JJJMJJݺ5q͚8SSmk!Cl44N c0!!^**}w7mGt'*3HvBG/StjVVȸ`eeMd̏?; X,f@ݾ6m_oNwKD3f*3HYAFF!kGwN[7'ӝ@2MZ[Nנ;>[bbGƏ>>wLfh4?a cٲB믇h*3Hp6[ь ~i離Jmm5ו}wʕᴵWoضm~CbE_; UfʕԡCmY,&A:n !iiPerjܹ~~ww`0|}]73瀛!މPߜ9A| 3hH ݿْ A %\d@ ]'&,Qޜ  2eϲe'|!݉ڊ߰yڱK{{㘘&cɄ ;#".܂S 5kݻtg`.34qnee2R/=[7<]b+qd퓇 wf9LPm -5:+M7&fq2@CnehivwM?=s~g$508{v!qo}Ξ}}9ҝHJRcɓ:}z:݉@1u .E?bS@VS__@;s ̝{h޼CUUt'*T+1},UfhNNtB11)(@'?rcn5uI t'jXVݷoŋzxlJIyAw"z[jܾr˽l[ uv^p؇tvש?Cw6tyޘ @!&&< Y9vǻw7p!D8훻{@?ȑ#\\:ER۸9s h9jTo `ѕ @!&&Z"TAk.K>%$d4}А}7?xb]K۴sMMUCLRCUڵԘUU5uur N 7nW_Sle2D+5)|y44fo9smؼy"kGw"'O[ŋ Q?rrB6A&&ډН:,OaCΝngt'\ll Ξ]fMܴi{'MrX40m SSmSSɓHJJp! z@K\vk֌:tmtg*3CUfbb_ ;ٳ?z˖/ƏGwNJII~ժXF߹s[[CCh ve}zux&vl#+HCCK?veDT~~A9vL&i7jT@55#6s8풸FX!7n,]܋Vٺ5qPg }X^^MwLN端\{2^EQtg6:t_s̡uTV{3fFWh<9w˖ +V};c h1R@v0u>1b> jvX2?Pʔ5L&իr@qփ8/,3 bH.wSMվ,),Qc#/ȈMw yy9MMՂTCQgO-]vx1%fb[7cNjDyhxpGQQՁm?^*ՠ;4,8rҟs]NSdZd̽{V:}vmաbK[￶u뤏>&픾~oۖ8y>˗H-9@3{5Gܢ; mozz,s51ޏ@ }$$:9YН>}L.\#I~Z$/;QG-5>'(W?84992NGGmā;w 3" IDATୂ B.2}}GrN}_,曃˗{Ғ >ΝS>cSӆiML\CCR [j\ E!B07xԨͳgp-̙Ν{4zt@+\fx2siQSܹm(.woˋ= 8 O (QDYӦ}t泿ʣ;2Tj55%&AwhHOOJ/[A(̚#7=z{ǎ/n@wFhMU;#!MOE)"Z++}7ox+|ug#^,r6Ybmj}m@+CުP;H `^R [(_(JDQB>_PU[𨲲5:yy$irϸq^ݸNwhM,(/VWW;HХ гgV6n`0/U%HGqq՜9LPs@$~!棏ll 8[|#/TRSQaɫ˫TUY**0կ#CObigggtUfxF]]  UfxK EDk,**j;t,m;&?\VV-E;//T3ۻGAUUl ;z8Wac4xse2Cm<$w/?y T 511.^C J@ 민/J9U'dggdamm3fE_aVxǁ*3 OEE 22ǹ6o+"''GU>}RR2`5!E"jӦz*IIitVVm-_QQ Y.2~~ ('$" O?r{o/ wl5kƯY3Ĕg=|d2!u=4 2{*)d0g3g; TZ>Qee5t[w&=b1B%GV#Fs=НoثWe ?z5Xr|03uh˽ s-[('E[eY](K/σBɍ_zKFKZSV >}tmN[GOjkܽ{fεk~wod.)%==ʊ7X+;;{K,iv'׾}?Z*$$dݺu/DEEM8<ӧOݏl6FDD%FUUUX… cǎ]p!=JJ/3U[WPŋd2߾};**J{f)(LL  ȳ*֮a2۶1ܸqرc\2)*>, /l=u ݡdEyyyAA)bً-k:uj̘1ufddUN/mLLL˻~:!$ovvvׯ|2!!!77wܹmYsNhh{:ry*]w7d2))/[<@A(j{Qu֌ZqmW/;#H~օ ;,^W$A%?… \.755ښL$_]WWW>}Ȩrkk몪*H}ݻ;;;_t`7є6..O>***uׯ_*++׭;p@R󃂂􂂂|>!`ݻw]~ͻtl2ZJJJl/QQQC qss?>)--6mq```MMͻH<.w8tPݵă!!!jPPPddx񢉉իWq{LaUfxˣcRP` ^=m^Z`Add={VZve˖M2TTT?o߾iii7n .,,$6|MBH~~͛7gff޽{ŋ[HHx<11ׯ{ц V^]TTTUUKΘ12-Ǐ*sUUUeeeEEӧO,Y_ǿ۷o;w󡡡uBN:uƍE;884_o߿~/ihkm5  UfxK$Cb1|)lrEww9s899Bn6vXCC#FY-(**&''oݺАB!gΜ9rd+۷oW^ uuuqu{ӧO'xe ^z\222R`fNJ)..~W<&Yח944?VUUm<*swHD1. s6=s̔9sG222ϥoz xkjj6  rquuuB|ۄMMK.ݼyxȐ!IIIL&ptt$d:sZZEQEUUU-ZO>(իWBRLnrss%6}\"]?@6m``>|(>BmkWvYZ<UfxK$h bxv\ekFOޒ%?x_u?Z`Կ$WTTCq͢j…{VSSsrrZn@v9(nSmwDUUUAAA{VWW߿ڵkbW?ٔ)Scެ/q vC_>~Mo)((TWW/_RQQ%qJqgee=z#"" ĉ<O^^^EE &M/"-- 󳳳CCC9 ͛ɓKN4I`M5>.wѻ 6,>>>--ɓ 022lҧJPe0(Ife_NAѝu}&&'Nܥ;Hv5[凉GqU7&lݍ&9͛7m `0!O>md...nl׮]EBf͚צ,I}(H$x ".oootwҥW^ʦ|ȓoڞ={Μ9ٳg;::x<2Ml6͛u|I 7Mτ'O|xM6iiiq8;vL8QSSsĈu{[}tMMMmm3gVUUQo%ގTPPx5k,ww(,---Z8O(&ioo_wچ ,8X]VVVSEEn:{ !Iኊ* v  c]ɓNEEݲ\(=ӵkb>leeUYY) mfkk6p~2Jlluă>>>&xzzzj!d޽:::֭;pҥKk>}W^h/CRekkrGݸa```;v#_ D-9fBK1d9NRRRBÇߵ۷OkUjjjlv\\AXXڠAėjaiif׮][w/:uZWWwܹ555H,'Żh|z7x48޽b֮]Oi)S~>C[ *sK'gvPenE5۟ti^@2TWE'Ǻ]ܧ;Hv]isL2u|}}[nQ{n==_˗gΜ166nV^^0cƌ\qW ?~|vvGxb!'N,//߳g!ǧ|݄ׯ_WVV***ڵ+//o޽,(Dw(jɒ%vvv ABHaaanܸE=.55UYYy߾}-9BⱿ+Ƶk{O7wTܹfu_]x"⺹%iӦ\ rBFU^^~ awznݺXB`秘2KI!qwӵ.&nڰz꺑fO)**r 6<\@Ж<|mz& UV ҅/g c]w11NI\ma޾cgg/ jx˗ ǏO}WֶEBBEQSNKK+..߸qcIIH$ EQ͛7Y,{=BH9cKru^~]GGe-[hhhdgg7{Mco2(^!ѣG̍7^UUUoߦ(?~֍O9 !;EQοiii 2GGGwM )W𤐸ӻZT(J$yyyM<~Oi͛7W\ٳgO99CQ-xk3Ufh2.CN?=l̙3SRRꮞP}[PPPHMMptt_ă|>_SS?nhh`0 B&hjj^t͛C IJJb2 %ttt #! l׿z𡭭moO>߽J%{G!؛!> BHSRRrfVWWDcǎW% 7mT7&6;iҤUV^B&NxȑO8bL&s߾}׮]駟8x&MZre] BHUUUhhhկSGQΝ;G%>qǏ>}ѱxu33 x'!$55U\||נ“BOmzy6l|Yf)MQ_|c Ax׉aZ01332eJaaa MOOx緜-0, 2{D3f̘;w#Gccc !3f Ϗw}mBmm-SPP^|9!"&&K„qgee=z#"" ĉ<O^^^EE &M/"--BBB\SSS-,,⋚__Koܸ1<?x`555xyy555gΜYUUEі 111<f͚^E"E穯2 gϞJJJK,2dȄ FME"}ױ(${***vvvW~Mr8I&5xWo3g/ u릪,awgSSSsVWWK#;yR4^@|48zϚ/Ӻ۷o3Ǐl+VWVV633[hQhOjgen _p\]]CBBw/Q#/sͿ?= ʌ*: <_ &U贗q)1gNR_O;V<:aÇ;::ox@===]]@''9ξ}ׂ ī԰츸8 0+++55AEFFJ2GDDXZZkR?|N՝;wnMM̭K6{ЀNjpJSVVVϞ=޼ysffݻwKKKM"n~---b'N\paxx88%q]v 8_ Ν{ABBgΜ)ܱcG\\\qqɓ'MxPe1k֬ B{~΄Vo߾۷s8^zNjCCC?cUUU񏞞EEEw%9rdԩ,Kv ;v#֭['qcƌ!7nhee5`5kֈ'Ak44˗7}>nꊊ</000//KD~CۯD&Mrss8qbpp?FVC@:Pen?u#7{ݻw7:!$00000Ai|;==W_}W JvUfxcǎZSMPIIҖpZkk̂쫭UTT;@DŽ*3H`hhb|||aXBa9E LU99e>v;QMMFmm'slGQQ177W~hDCCc֬Y-vUfŅӝ󅖖 orh Ν=ҥEmSR?gbãWrr2|V3۵kWKA@^(Dڄ"ںpuquYO&$Ol7\'tWUE?Pe_B̴ !VM J]]u1*JHH}8g5kKGGMja÷-+HCCKBxFsvv-ILM}}]cb%' &,YrO^^[칒WJK*h_0@ڲ^oXŎf4FV޵ki7l8rӳ7kgoϡ12T-+mdtzMo:** \kW[+};…MM<={gdm ih_Peϋzhb]LcY....?0ɓ܄S{E[[m==;&EEE:#JBXo$񎘄x 먪-/&UIybҖS$vFFyd29OS.\H6mGYã1dݺuƍ;?<).,:KnGxc=zh^KO/?t(MSС]hɍ1 2Uf**p2h_4Fj9?a/^\WBBJ``…G,\;OO}} 3-333333SBYk޸˵[\Mwk1f̧{KK{c£GU#==Ť;@璛[B16g2 e)//fd9y+|lг+<<6?{&S:g f鹅:5w~߶.1B!QcJJ~~Ò3=ΧORe)_15 E/^*RR~ڀ˵r{o.clڱWGEݲ۵k4gIm tٺuҴi-})}v=2UfzDGGMQc&&ZXe$qv}v'ED\42c[.W UUru˖uuk?8qT_dQ߾ߝ8qwժӱ,~( v2H˗%FFvRvv]ZbժO=LH#2փ˵th7|at 󹾾CL%5yye4hdx{r֮[ȉ֯]J U/_vڰRcl]LK6ecc`c]tBJl9s((\\\;^4~@Qnݙ/JL((CCC0yy]vk*aa>';/ZtlȐ3g W/JWML:\fLL}}]cb=z*4ԛt},ںgϕ/K sR=<6͙sW/W_j,%fBH~~ U9-[6zzStR2HՋ]j645U:ZZ5?e\7 %C755|CRe&(*,j=Co }C@J*jjꙙRN)++pv\@ yllrd&&\s7 $$%Xj}},#99ńm2_||fpY̳N6xH;2BuQen;,۫Ø'OrRN~w--O>0d jL!Z&ƍg\ݞ=:LF׮l> 刈/]]m-ƍ/mlE>̄ ݌RLI1 {{=' #+(!!%6i{5ug %;::5ɂD)'X_K f-=駛֮NtYuK]K ݫWS LM^-~3!!%00?o_SOOO-WGEݲ۵k݉Z_nn)ږɓׯVQQ;@{*3Ujk1w-`neim@Qo֤kWΓ';r%5!!%,z4r{J [j- k~6q9;;UfB3 c ?H~fkkHw(vHIYY5"k4Q.*+W&$8p=_}{Æs|p|PNN )d`xٳy͚q';@Б_dJiifSUfss]&Y*,PTdqv\ݺuݻ֭eKKDt=7 +m"99g ;lݻv3!$''{x%%yO- PeTu32 >=Õaa>KwֈA,\xtoԞ8mtݻJrrX,! 05>}zg=ڵq"Ew"R* )BKKۻwjիimK\&ӳ7kgoϡ;#;.9;ջs^1'kWMSTP`Y3_?󀀨?xc %CTپ̄ ZmwW  E=M>tfxyGݽs\kG޼ۗm[>|@g~rr9MSoؾ&&Z_}ԣ;lA@BQeeM zEee3N0huuW 1O&$>p+Æut2FAe/_YY;m';Ѧ;Lpt41gO-?4u`k "lT[NQ*sd29؇ӦURVVtgDRS>tq˘Dի2O`b*0 ?a~~SS왎2Hx.sK溏}"Y.*۷3.\H9xzxySSm77;O3 cvX/_#Gnitؕ(' yӧ5ș|:9Tb6%1 ӧH!EE^=OHܹG{^Q:aP[|%mϞ˺}LT%.G;ɺw7<{vԩ{ƌv݉h*34TUժ4_b&UҥБ1,,,i~bbʅ )ӦPvuvsjj-::+WVV֎aW|pk71=z #M)66B ZZ'N}m۷O57݉Sid"3!BC첱11S| :9YpvGCX _OXo+Qg$^[TT9}ܹnJ4l/rrєY ;,YrbΜ%%r݉h;@MBKp22p@ G5:zNrʰ06[e3+FD\ly"QvEI[WJʋS'R|h uII\o2ڵ%KBrrД%{/^ܶ5q\ۣ޻|ʘ͛/l>˵rr*0agm@$D_ZRf͚7qv{L37ץ;f;SjCwvozPPtQQeXɝЉ UUe&XXb.3k {&8q7""ٹ[V|cKzڴ_=dɒQrEE>>;jBxdD߼lРng,g3@WjbMwd'MMwqQkNY*UcXbbG-Ĩcb%cKk P ( *HGz~/"Rfwvva 0{⦅3U5Q$3@M :4~b!<%@y@ (w \zxTԷׯ/5Sxxѻ|}7ٳ++kg9H*)DP{sР-ii/ OQvdW%Ydd5#c6J͓],11ioK QXXt5A@?1l2cL[[+e: PePzMUfݑHQT>yƜr{zsE_%kҲH 6BBB<| E%&&ҸB2ѣ3?Μ9g r B3zSRQ}&&&/nUO6lثkUUTKXP8::;v ֻH??Cξ}6!$>>>-y񢰶V^fU׳+O1PePfGqwHd/U 4y3Zz/_ܿW/UFy/Ǐ?}t޽>oނ.Ϥ!|>%72TU.0'O?~…^}6Rʕ+-,,&NX\\WޜʥBCC=<<,--͛WSSOl/_vss355]nݫTuzKH57741g:N^}ԩ(4*O/s2 lmMPef!C͟??77w600سgի+VL8EFiӦKBΞ=;xό (ܺukJJ^zڵoFy<,,ݻׯ_tsbbb~5kּ|"88x٩_)S***K9b̘1#Fq;wlܸqŅ#G JP:4HaΜ9/^{ .]aÆw~>q_v>oIٹssΞ={em]p!::z޽˖-{ͥvYIIynnVL!3f2W_w/,ͥOt ƄF|t P|_gcehh4)~v966_e51cvUD ~iEEE۷oG|||/Z $$$(HAMMӧOe2ٍ7'+#F{gvv+W:tP(!QQQ ㄄B>iӦ"\^VV&^Bx Ǐ+E~ JRkkW*A_E^jkk\'Oo>|x$ZSm)?ͥvYL-\.g vv'-/׈)M*35o?BH6V B@M222o`;;G:!66FhѢ;w*^xq _hnnzV(EEEa7\.?~xaaԩS\XXd2ٱcǶlRJZ>^Y;n')o. *-+ssCY~V\\5waePe&I`XR#{5o?BuyyMffC&SL;wѣGΞ=K2eʢEBCCsrr.^dɒUUU+W$:˕>K 8pǎ LQTO8QZZZ[[_Wxxx^^޸q 1v؄m=zHUVM0(?>?zy楤|g͚Ϟ}t`k;ICtxv.<:u_Z&4'~ޟwwr6z@I$R5;`e/v[w#xz<Cw"5NNN޷oߴiӘT}ee-YUfi/`P?LN6ٱc)Sݛ, 7ь3hYޥh\FIIy8k :@$D*7"`euUfr)OGsSicwMLތܴ z*,,d:Ż՛rݴ_R4OTZ^fښl6n_{l']tZm-vv@/3)gedf\a]S#MK{Iw( $flىOt2NJQev@\.i~/CahAbbEQ..LZ__??XS#e: @CPe^f`vkN4? Pe5HJʳ51029!'tڳLghʪDLx72ܼ^fBM||4 v)Y {N+-Nn!2ќ̄ ӚqΝQF1BTT jƵotz,\Nuո ]Ԁ8@/3*ccTv-eNNΫPNܵkWSIu5/+PZHq0:"1ٳVX|s??Ν;be\aš֭IQd?P?2N+-6 227F*'%{yAN&r|f;{ \\̯]{{}7ۖ:+=eee5A&&[;CA;ԅ^fieg?TJ91yB,|-22)0е%fB\Yhggr#;VWK4oޑrZrgϲ)rs\f իGppe()d: @]2N+-\f`2?ͬ2\ϱ Bw/KZV3 bŐ3g Œ%nϞ ?qtleh(d:շkמc:@]2NC/3En-L~ b tU !5mZKH$mۮ,[gXl>麋Ny7CNs', ,/R,h82k[S#i m>y^f`d??GU0 ;sA>3lK3x!x<[ˀm{X~=M*3讼RKKvP>̬'jQ,T""T:M^^6.|ekk2x/_~bd$ZzSs32 {ZcU Xdzg:~;l4&@tWn.O *+k[mEEMzK"G~~Yrr~.V BBf}6oH9,lW_ᇋ|jjkiimڠ2#FlxA"1tJ&fh}}AeeMKVpXfHr9N5ݺŭ ?xUWK|}/^J(}ֵkHL$$Jr2…=tu2+3QPe2 0X&22HT<8ڵRVVM bʡ4i,jth2{{nzE?bZUf]ܦUfV30ж]l,2Ɂj޽=CC%%|PS~}ɰa6lSgezyx(_++n1t}*),-7e:@Y |.3!..3MJK=VP7yxX-->bA{{Ӑ?rϞlIͱvLfOc-c%Pe^Hqt4c:@ʬZ>1mY\RRIK$5{7Y.WttBqt4;}z@:t[RR EQwzuG{s:i-)O]^^s]BtTFF!EQvvevPV 9AZ!VPe @ "#ݭ _'fؘ h׮o_a fYYŅި2Qv.W` BAZHؘje"I]0<ccc};qeS rE~?qUGfR*3͚~VVџ>b:(T@Gedĸ `TYHTZZum Eu$&&CӪ̄}}z0[^W6g|1gNߍ/|BMllC+##=@nm6hma ~[ :*=C+S4!dŌJJ2š p~D"*3!9Mkg|Y8BG\\eݹtE2(rtDXBRېJlYNlJcwAr9?8v'fa|n=+V2R bcvh> CUfE "#3E|!EV36֫mǶVOK*L te:EC޽=>tϓ'u'7n{ cJWYYVmtgL~~A@ eʙ-ognƚbhh>D2^swԱӘ1|T\\\@/:@x]AtQbb!Ղ q(B/3BZ>纹Ym411/*+k5Y3b]YYoԩy3f^h~!bcb6"?8ӁdrnAtQbbX,2b:@cQRR)bd1e/3-kg񋖯RILi==S&Z^^ <g|vvl՚gz[Qẗ́ ee3t , E/3:&fBڷwyP(Z(2mV6˲Yo_ﰰƃx}5'TL e2nn~~OG1t sܬN4|>sYM,ܗ/[T%%-_ @ErŽ{)?{{Ӄݾwo;8$dԩ=_s0Y wj A@ (!!͒M^f(U+CZ>>v<ѣ/"ϞeWb(s;l:f~9\.gvpyyeLHԂooT͐!~׮=e:T@TUfeXvffTnnV112抈H22yz09 po9u~J]|-?~sYeXYF3tsr&fA~C_[Vo͖s[6c:@`.03gb!}{Ǐ hw7uEm򉾾pRi;*Ţ{'/Z4oOϛw]pcb2ڷw`:Hd7o>g: T@$&:9\4 Gk١2-%-+99?7C_gdg䨨͛/6|&EQgݷoʥKOF1rɓLTϘUf9qqY^^?sG\fB- 99%3fܶ-ZiddHׂ򥷷ʕC)Νwܿ?_TT9xrʪ}}Ye ڠ :'..ێMqv4ec@gFÅa~rw_mUgg۷+*X?vҤn}zϟ'Z?!nNTCc IDATx(w-^ϟ0t[JK_(e:@a.033,-قPe ammDDV3fnOϥnyVcO*+kdcN61 ٧1Ol-m+`nnvfPT@e* T}ˬ Enn)-)4EQQe2E\\jjش'^憛7rWs@۱cyAΙ z(2C_ *3薸,}4A/3BrriY}{jlŢZcZѭ_?!C,3@(Z`?+e2yl,~]DG)_gR2nB#3ǕHW"YXqZVk֎bhhKKy3L,,_ў=7z'pwǫtPKHe:h9T@WH$жlsˬMkjt-:**X@.Wl6N(W͝SrtT3֩SpN^9ڠŸ\̠j"..Fך q%9)!MRk>w`(B=:urf:jٙOarys^sܹѻq~j@~#!V2iS{0Pbtfe66|>7=0 ;vt>y燉@,t UOϚǏ3=zx{ gOl׌/|:q➱c>qbu 6MeeiHxL-*3芇;tpp(42k.ckkN[/ATT*̬KRSAD=aFЃI$ݪwon^":n/|9jz"tTޱzn,301tţGX Z,#(shfJǎSh55LDZc|InތONo==͂wmaZYؘv ,-%ULm*3脊\__l,qˬ[YN ȑ;-YD__p433ѣwЕu䤆水4"2d28؍JO8:Ѹ!$ uZ2wpcCBԴh ox#GTiN h++#BH^~L :GG3kkc4ϫq:ѱUVVLFs9*:6fL`yys[aHLT6fJZ+5 ?c֪h SS}>^fP!T@'ܻFf`;>i 3DFFLFFznnV n:qA˗6٥URQQs۶W(27 **3h?LaZNLhZՂҒ:**A%&&RUO<1g^Uq խxO,;;cfedNS8vE"*Mfh(TݳUfϞeVw*3@SQD0))5[GGcrN111YxqS:}a^]lnntGTz;@EjG|$s佪xfTEB!~Bݻ)bMk@Hd @77Kz++ksh\4z˗Z\%{Qy׏vL y|If(yy>uȑl'>LHdNt-,"jjPeZKPfB!jګ YoȐ!AAA͝?Ç ٳz>>>~Ŋ'Nlx#F'$$lڴiҥg<3#""!99ߺukJJ^zڵoFy<,,ݻׯ_tsbbb~5kּ|"88x٩_)S***-{pBtt޽{-[ꄝ;w;wٳ.\xUd -{?ch\S'}F ֌J27kA`^fP)T@eegf Z@ Bvps))+q̀'2kի5kVΝ !۶m۸qmll vچW =ڶm!r? l߾]v6lxEbdX֯V.Dɓ')yE.\(_i&ww.]] C\5 !={z=;+WeRhY XG(WWWP!T@w F7ze&nn|o_\\IӧΚ5Ky$99CNh߾}+߿_y\"6ǚjccCQEQKIIQń>_1!z p8Wn&[[[B/^h ] hWFۺu޽7nբұp(l**3h۷Lh)2kGG3GNtFdddl߾=((h#vvv=zuBlll+TUU5jѢEQQQ;wTx>^Y~A!i#:nɦMw֒u22 ssKP?BdcdznܘN@2k.lK㚭ZnmJ㚠~r|ʔ)s=zhXXٳg !SLYhQhhhNNŋ,Y"555jʕСC{~yytҴر㝁)߿'JKKkkk|~j!{Qi_|x޽e˖?t=ztJGw^jڵE|nv4^Wz x\S0á!(2k̢®]QenRáYxx<}MOwMP;w/^t׮]3f(**Zp9sϟjժ76͛Ǎ4f̘}Խ{wk֬~~~ X$8p`vvv[l9v˭^܎2m4f 7n\PPРAtҨ_?NHdL:….t|B"#ڵǫC"x6 d2'9-k[BF6Eʬє̨2k oo#Gлf.WJC̙3gaÆ)7#XbŊlj77777Bϟ?|W_yu& u\,۷o߾}z5jԨQ_rzWv L:uԩu>zҨ{6QQi]bWU_ DCtx_DD{"J|>lH*{Qnc;w;vt޺eár\^fl5l^(*-qͮ]]+*j>v 3:fYFD$Ӹ&͘11U[7oyo'6$BHN*U$syPeʹ2m얖ŋCˬ]2k [[SS,פ(KWe9 1KKݻw7*tZ^^[P~Nݻ}J)22D_uIuD9 UfT*u!v en<|.EQ552kOOkz{ !]DF&G#usJ裡.\.g۶qݺO7661DD$46)/62c:n&ʹ\]e11n|޵r4C៽55SmlU!j]]KJ*?x ai)vr2 U7ivcNNo䊊L ehjXt Aꇹ,'oJӃ lBQZ5P mmi6?nl04)p#wT/^5pݻ)2Uf++22BiPeI$2OwLpʹhdŕzOʬel++k_Ҹ&Cu 4L<8U+ѣw痽$WW "hj3Fw0Ds01C ܼ݊ l4@1hms>Lw.]\IĘuF.-JI)P파DGΤ(2fzωHPf&/733d:ˠ ++6021O ܼwo&2k>ZE(yy^e t-((V`=z46>Wx<æ^ebk=z4לmBF3bnnxȌ/+Ə{kjc\@ZY1etI V^^PrbmlUYYA1e8J@ F Ms}{CCaDD%+C]v-''Msfɓӧm n]6az\8u*CÁAAv]Z28ںW\//'O2;mZ6 ۧLwg$Ԛ)z$/UA!jkeFnNHdݻ3e(exB!Zt S!! xqҵ&ХGLGhWNXdܹAMҲر?O߾ލjhRPP{f=ujOԻ3l5GC?Nssk`ۉ :3g5s3J̄޽=?݊jjpf.7_yՎWYM\\oԫW/?`d$24MNN)!J4 PBze22UXX\mN>e|B!Uf-n%T19;8#eA|N7ln"W_cf\5߹a7_usK"a^^yyeuwOB$YTT*24IzKBAXUfY2jOfgd6Ź4@kjK h8jΞ*kwN˂(+7##[2d۶5{;J++U߹}ڽ~OI%<} hdTV֢IRS ,,ĺt<2@=,!,h7Ś:0}(R`df ԡ <֑. :B"MFFz-\mޮ_}%Sk^ޫ…!}l8~>3ڪI87ztoz={nZZ]\,JF/d2@=t}.rZ@s(kCPAY |2k??z ts ſ{TTh2[7ƍ¥llL6n]*_Ξ}lV`3zϚ̙hggKcQzz9)UfGyy C e/su5J9S\\qpPepB!zPǎ2<**etqIM--wYz[\۷kΝ]Fb)ZMqphq㨰EnnV3g<ǿָ'TSR2B\Ntt)&`4ϯX,yАjɤI{ Tsǎ}ri|]oZ:vlMw{ j@(0Ve};A.WMÇ'%ϜyP*3ou~j@@kSP2BD2Ε+q0(`. y2k.]\"#]޺@ﲠMrv IDATŜ9&+nal|G7n,/Tݮ^EYY38$:<<];V ^޿jxx'J*+ksPenT2XIIye|" Ufz^ {u/uwW˧깣ɴi=lTXX9:9? !C͙sX5_kkl{hS`.vMۯ2 @EGKr27Pr33w:/wtp(BPfhOVT}Vysҥˍn4(/Tw׍υB۞z0ὩS{,Xr^hN te:[0rB&f顗EJK##b:Q ' vfQիW7h2Sխ;k`Ǐ_̜y`Ԩse$@ppvW<;>yҾ}?:rX_:P~QQJo6n%t"v·{}O?ݛ`L"ݿң;A Uf*O06+)A/3k\-Da? '`@mջ)4?ٻݻ)5. 앓S{;wvٰ! jհNr%V2ڸqԟΗJl7H~~ejjHYPܺ_︌W8jǎ ..\PPlݔnPen&T.caatwn9QϞmv  Qef={z;w]OOL~vKUh̎|W?55x ''sGG3PWVVm 57n{IIy. e?}xwwܹA|>g۶0389><}w$u=7e2h"BHEZGK򈈤ݛЏٵ ۷_=z4Bu4ŋO2@]YY662\P a.UUׯ?LR NYeAYk8hdb,44z˖KV ״N=CC_߿VffIysɴi=W>3h.ܯtAjYYuS_?zty,޽p/?S(1PeNV 8*ػ@gfNBvڢfMIҢE{D~ro7JE*TE(d-KY?N\!5sÙyߡ3hPecey||ĉ5?cD"k&%AӌA/[^۰bJss邳GcN߱&6v y֬?=ڷ項W2V)#'N8II._O`(SFc@ Я_hvvx'#)""xgC&H$"TyoR阏;6MB?mX媫/RSD"t~DWW7 D~ c?ie-:SPPAd2s}KJj?}*""..-ݲZ Piӧ; A2~Zw;Y;;wV*ƀ*3*3o:Tdh؆2rR\GlnJ]RtlNG8H0MB*BBRǫ9w"ؾ}o~[>>"kHHȜ{v^=yѢq7^Nɼzi?TtPXX*wb͔F]{sCC-8RTq;AArk+㔕)ƾ6ȑJ DwǏ/8Q\~1j&iqpfLXƃNE_mgϞ崶RMfamlF=~m֬KT5!!kŅJ +۷^O;Qp;;Ǐ-:q Zt:g*D"C ‰Nd2iݺյ,[6DxTJ\\HBBDBuuSYYމOh*3w*(미K޸roj޼)ZTT[**ܹ۰66# f|< g>zSG&q3- $d oLkhR\*kXhx2t:Fwn*=b .;ݷT*ØCGEapL[W s׮;E2޺ԩJxg͛>yD~YF;54dNc5oINx3 67 OAA9L>0enijw"FVV5Ϳxɜ9'TcƨSʪU 6m )/g`7&yd̙xS _0 *Pe"o6MDxJK z˵G]TToT] t$9v۷1nak;Ba^qsHO/RUkRlqŃ a;Lfs39<;`0ɟ.Gl|G~lVk5Pe˫Ԕ;cb2b f;i3gO)(d2=גE&w|.!!dlKJc3}}}}+1edFVzaL_|NGыkll;HmmӧN/44doX ݻoΔԲiGE2 =ի/=`:cggw.~(*PhPeDGërr?~20_I$g7[l+7x)މECC &&*98޸1d--CΘ1 7o26eUl'&hǎ=X WTS./?DLLDH0ASw߼)ps 5j֭nL;ob˗ 55e&H'5qL pӸgr*0(ab2t cvw D@ƍuOdqVADE ^~;U.>~VPPiggU  رXN;qMMӶmo*3rs7?cny.B# VVVxS޽+60w c=&Sh KK=%%k^b$6=#+?=+H$hi߹ܹCɌ'RxL*~|݉ǘ"::CAAHh"{SxI m߿7WT99qsMPeCNN,Ypɓ)iix'2ߊ-WV6=4~'3ex&+ZZ(99e ~ A&kGD"aq7nPl15uՓIS˞>;_*(H&Iw M7}ĐW]7a}}%~IFFqXXaa]x@/UT46CnjnLpJrD\v*۷ERRÆI*۴i:22)Ȉ99q +Wcv\flQW_Ptli$3j(cecZ8Q#>]SSn޼6L޽22bcƨ/;?ztaHȋxx  7nFxˠ A 3ac3*#o5x'2贵Q;/#k3o<A3 pgrsr1igg@"cb20 !.cMM3 겷nmpEEE 8jժI _wb met %%vϞ~~1+W^i66nk;fR%.\xYr|qPe sLЍIUFiH**CϞ]7sLJJ 2oNntzݖ-sNd"OZ[MI}qM]:#GN}Ve<޹8>J΂$KKݘVM;?S]117֋{9 +vׯfff۷oy- T ,(--;  NNも{zcQxݺl~RL&Dŋ'N~>>_@AZZՌl={) !&&8aF/ ݻgo~}ʎĉwYhV1EEo~a{+peWŋΜI~,gdmvzy!YSRR$8xIq7#PEEajA,X0֭7ccwpIJBCS27 @ ؊dfg*6ML&=xDc <,9)D"D=;$00\a];ڵ} QW=Z5,ư/"@ 6lysǟgoHO/v,G˫8~@#zu8IUfHQQuCC.t聈ޝ;oNdpP~TDܹ&c)))yS.7M")) Ø ˫xØf11UUx'+uֈfxut8Ǐ?lwBB\5[MMf&Kp ܶwwh2!Pede 7xIh hggu5OT:.M}0eٳ44TSqc ͫYix'3*^Sˎ)*JDDl[䟀.o2~gi'(H"Slb=lmASB *3$3DEE)BOZZ3s IDAT@`ةSK ꀱѣUeeN ֭i_1p6 c9aaY]{w"=dXfߟ.>|x_W)[SUW@ɤ#G>EGg RR|}<BS^#ΞmzVkl+۷ozϨS@_-]\p0lذǏ)xCCÇæd2;?f" .8;;GDD46r] z[l3fYEFF:::yfԨQퟯ'MG!@͚wgkk&OW:{6ԩXŜ?2,ULŋ_e&&&FFF?d2{ڵo ;#"/ߗ*3jf)tyl{haM23Swtkmss-qqATEEúuNa ,Ӄ̽5"lÞ8qۘAEaJ2w"8(..>qGGgh3 ٷ Nխ"""KJJ^Ɏ =cccoo-["RWWaQF=ѣG cҟV'򤥥i]]СC,YRUPAAwX<~Gv픻wӿ}*c^A~ы4##CSSs…Qw`jx:~^O dduzlv>[h1eކw ~dމANgl|_>H0صR tt`,so*(ܸT۶m[`1vͅ /ۯ%%Eط Nխ>|7Aaq? w<{Ν;<<>7_͛XYYT޽{wʔ)111X,`79r$…'{*ҥkjaMzG]~~~rrr]n҂ أl±ǎ;*+oEAA"<|ΝaKsӸǏ[I0tȎKWU;K0՗wJHˠc`*08;sM]]3މweeu/^|?4މݻJJJ555\~]KK`:uJWWWLLlIII!77+766VPP`*++EDDA5hÇ?} … tuuedd|}}\6dȐ={+PTwww999YYYwww*:~xtdzuu5HtssCNKJJFEE!R[[b iiaÆvd2܌*++ .\8|ŋ'"Hh.Lz𡆆Çѣ{xMր[n͟?i̘Z ]QXX8==)A&\\&hTm55gXUpzL&2g)u;!]W^:t 4g222˖-C2~%~fѭ؆rr<_Npڳg#KGId6Ylo4މA'.c``3>jix'244jjz;ØbP[;~. Ʀj˖-[|yYYܫWLٳgeeeܹSRR5l0ArrrA}}=??ׯ_CBB;ɼp•+WگzlkkXZZ899!`g"RYYd29PTTabbsϘ1dFFF0ׯ_ 6551%KXZZ~%##cȑk۷oa0-Xv܉ ȁ/D۷ =zLn;s۷oHrrrT*!OәLfmm0ZdvfdBBB^xuݾQ<}:ISӳØ(ޱYuCC÷o6lذrJiRg+ 466j?~MM͹sxq~{^qv6mۮ;96'wBfڵkE~L*]];n?2`} Sxg1xxܜ0`㙪mmTC=GD#xTSS3l0}KtҥNmmmYYYt:ѣGCuu5SFFF7"d2)J :::h8##ׯ_R(۷{{{䚚;;;t[t;whhh}v3Yb0s!HK.mۏ2!SLA;WL&Ng SEE=o7nd2CBBY˻<-= FOHH`2vvv=GkhxVV6`Y]…'Xd1QQL֚Sp]l4.W@w𵵵ܹzۯWT`Ϗ9S7[6cc}>|68g՝;wn/?Q #c%?RMMۘibbBԤm|lNO/]ϫ?T*}͚પ]n80Qϟˠcƨؼnthʕg>M>==5- ahh(**:vÇ}ivXXg=7TN߸PqqSv؁.QRRzO?1eiiiXmPܰ7Y/_D;;l ǏU'999n%%ݻw̙7n$%%u>-[O<յIzy/Ǐܻw/((HF?ess󆆆OwZOݙqtt y󦹹9Na_nڅ O*+2)'3|zgzoOXXxŊ?~d}7X l6)**߾}{^&iGDk+NM ""f0~}݌..Ο.04o)޹^d2=}:NdOYY%WO;^a0...7o~z||{qqqqww,++E;wB󷴴 9gΜ>l؛͛UXXacc ]``qdepp d2y…[lݻ+""suֵ?&j``Nc99͛7Z۳g>?oI$رceee{<-͙4iFۿsy$113g 8vX=zL\\ux]>|ÇM64wɫWyO *snۛ B&s={ |n>葷̊en>}D\=0\\C*>fvテI4 }B;wƌ3MCJmȑk׮e2֭355P~fsssCKQUUUϜwf_:c,;bM}8:bzӧ644D  ejjjǏvmV&yC*++:99IJJ RQ~aCYYY]>_rڵkjkky=<c:iV[[[ TSSBr@tt6l޿VUmժ \ۋ7J[۫Doev텂h';2ysΜxg1=.X`ݻFPSS|r9Ç/_*..{n֚ZZZ2227onmmm9BqssqsscY:c3ׯ_:tH@@qqqv8iҤ>uuu Cusř2)(mؾl`=7y{{/^+^jlU@>~OO,'.tϯwVV GÀ c„{vq?{5sYmhh54܃3ޫ2'$d*+o?z4@@ 22BSX،L&]={նm˷m""":t(;;{Ϟ=˖->HCCINNѣG***wެYijjrttܸqcAAݻ]\\:OII~FFX`߿޽__۞8q"?? {Mzd%255uss޳gȑ#хeeeBwⳛڋIOO?w硛 _h33Suz^5//… k֬;mdyZLHDWש7nc67ex'S~]_8&LЈRVV7oީ_k0)&DE6ntYyy޹Qza 0xh2qbV+!!aׯ;v, 'O;wk֝xɓ'C$** B0FAA+W u.&&Vw)&&NXSѣG555Ǎw^xԩSʣF:rHlllo>&+y"HŢ:`d2;Ld3ցغ́p@||繻v~`W^=eԩx炧Kɉ>U@'q<+(Hܽw"W`۔֭#G*u[mmwHY,pXlٳx'xǏߜΎiAAOJh0_Z53SKHH]ǏׯGk``}~~lSS`tacc#JDDRR2))˗Æ 2eʓ'O:aĐcMMM􁎎ׯ_@AA@ kk|A>yիWoݺ:uo߾p,o߾nTo7) Hseݜvc0GDڎ25U~9@CC҉M2x??ݳn~^U@I.=o$ Vz9sӸ"?RU*3J]Y$÷hjΛWyX|OtyEEf{% ֖ ZI&N 0x~] **)w"yLtU\\|)++;vK޽{Z,X=---00]kccZ`UWWZj֬Yտ]}#RRReɓ'W,Y?NNNׯ_urrXI.Pts7'|Tiɝ*ASSC֖@ U{ܓ `3 F{rۊD(JJJ/^***:f̘p\pM *߽+;RFcFlsM_M\\U)St.<cbBg$23K,Ғ Y+,̏w:? Wzz w֭QQz^ ͛_=A\\\###bccw}6 HCCCdd9so߾]__OPd蛢uTooKռy󼼼 322lllzLg2VBdǎrrr7oFw޲2kkdgg1bŭW3 HPPP3z<ݜPhҒN_<~ ?7=ݎm􍘘󄠠GLr*cccaaДE999=x򤥱X UT3N_ ñ̷nzh#3 ֽ5sʜYχX檪O$u7bb0OT* Kh Az\3+1PSSʕ5PbRLR]]Ҷ?TIi[ttF# 4n m ^xy.sÁbryyUUNN(l9:::::f9@̜9bݻgdd$$$$//aV!!!:::GAv^`>}ZWWWLLlڴi L&BȸQ(?->>^YYɓ'2 PWW8t-#""ddd6oBNENk}^ĉXigq?BqMM˥v׵ rrr \秩)**:atz%׻<߳J0L?㮕?VΝ{S8pL$uulv,:jhhUP=1123ﲷ?هkp eA*-` ;%oc3L.|t ,n[#FȬZ5 DxĉѦuuu. _{ IDAT&&&999Gb x⅟guuuk?'N޶m'_~w^tc.]dll!Ø{{{FV޿޽{111,OFFlFˀIDfeee>ǛM6}5%%%&&nuCPVV{ɣG9r$;;{׮]]KKrrCiFVVfS/Μi(""nhy3IGr'pAFƱT* A2 ׮Zw>;v?Y**nط\^^1٭˜p e}ҶԼ~a1ٸq f-okkjll=B3 IIIL&Btȑ#^׵k Rta\\<ŭ$''3Lt̜+jhht]g ?"͚N˅`egg~io՗efϞ}ر␐**,,,''G"_|QRRBh4A}>T뺃W*lzo.?^cPnh A]] y[Νŋͺ̙ϻܺys:/xҳV* B bb<7׷""*Eb ۷غE||PQaaUuu14eƘGD8AOWؿ!x2H$WWױcʲQ(~~A7nxaUUUbb}Тüy󼼼 322lll:D ?֭[sssSSS.]B0zN>~L{A23KDed**]SSһpaULM/4Xaz|Z~6dGHt:㦯o#;vePeի<~~QNyz}=<< D`WW׼cG ޹ : ,j.A cǎ-YDGGGUUƦOM]aÆ;vlذA]]OZZAXvl͚5ifɒ%VVVvvv666^^^,خ]3ϞM(4"pGZ222o޼ikkstt477{?n9uꔢ1cO>}t///iiرdŊDVUU577WPEqFwww777 AZZaii-ide+aVVrrD6Mҥqq7m w<ɹsx[+nCқ("x'QCC+@LqqpΛW-]:"U [hnx'›v}4/~~oE BCC,Xsͅ ںuRR=$$w 3M߿lhhxޗ˅d<2̅ OWW7l'I~3.} ;;%ܟ; 6jԞ;g\iUb}`cs|{3NQQWY[cӜe͘a_~5OJ--]s2E_kƎ518Ǐ]\.]np~/?}Ȟ}n՗!˗t:Dyb"!=R(oߚȬ*44޽w!!k ~IFFץKttt222ٳqF܎@ :ZZ;hܵkflcb?MӍycNgdgLk^ȈNP홛kZ|>*3 :uu_|\ՠ{C'8`1""jذa'N8q[s"Q@@`.@adØ 3m7 BF~gN"dF'**RC>|hFWfit؝-f{{#F?x8].Ԉ2>X;;UU~FfooC̸\،ܺZ}}+^gZ[Fc M]h;f<>8p۰gΜB0pm`qn76HX-Z4.::c+T&p w`a HrrƸ$M|?}wr2$ΦL>Ds^:KK]MM ~"nPZZ;t/5㌊))v;6l7w.qݿvKMА;^6tȚ5SNJXtmY`0_οwݝ;oMMU7g1Zի/D̟98zj7[錏䧦9]W,%%jb2vڤIZ#Gp(А!JԖו׷>W3Lt+V/]]>|AEEJSSNH0ɤg[N%ljhq'++cb!X=Z5>>*sZZrιtٔ)**l`atˢ>>"aժ{{xr[SPPʍ=(+ZhW<: lPeA'%%hvM|I^^3|\v۰EEUZZ6L? 1˗-\85H$ՓWOJ}} &)uc Ó'l"!!q#!!/m6EEU**후G>R 12B32X?fJsy!xӳ茛7S>|(akkhX}6^BBfQQٺu8~OM$; *l8χ֎k}}1 tFzV'O75!B&%кcgfgr6m yЭ_ȥKykh5EE L2KK+ƶvssy!zd={{֝;DDV́='$<ҥ6Y$}),1,Eҏ>}:d/3o*3 .ŭT..w[MUUeF p"++]n<OI_<(<|34hCSSNUU:>>ow߾-Bݼj$^lBuu}22bspe&$>xaLCzPRjj2x'Cqq W>~jդmeT`py⋜-œ~z;kNakg>hk=~֭ױDg,Ɂ$Od_c{d7"8#p<>}:""&&8U)lܡ鳜8!30HK%K:Ug<~Fre̙[w)8x54J/>#[**Jw5s^_߲eU11A ]NZQQbTW_@*("މ ܻT|{JJT`py,gx #ck1޹ w6SSՃMpDIIf8IEEJEe|7cƎafϊsddϜY) L9Ȫ;Ued|X^^ڪsg%%^֛H$ҍ7x $KUSe}٘@"DBױ{/(QKg3{lO\|4JNVh&֯砩SuVfl<ڔ^ᔗ-ݯN&(Q_ LOD0O/𪴲 z\\\<Vhb .=5tmϞuuk_:vNzɒV],(TUq0S)Q]ۼnݹeҞ=ȳ9X^nPt]]}Ѳ͛Ź(:͛ZZYEo|PDA IQAn)%\ UP 1l]@iI%TJjA@afrٝ_|309s>}k.o< b551߻w5j` 6uv\>. y<|[X1EKb xxfʦw{>6tʕԯXCII!ø۷]ML?ܴ顤7630* nn)HoDF@_D]\\`F gg72@ /r.^L*.>7>ka$9/g]%f %))bsPzp8)*/!!())(!! !!I/_Zss 6*(Lf=)>t66jTp,xr͗/->0j(~Ӧ  7=җ/'GFBaspu}`{`? X=ױg۔ɓ 4TA@@@w|[ZBM6}d%ᴴ J Xdc+zzKzZ6`̙$HNGg밣x'݃II,ǐ   8o J`[[_`໘b )__=~M7RŸw|6FEWVÌD")/.* R>2АvrҶUo[X;Hrssѹ0zRs76;;S5$${M|}]C1-&H֯WrUu5Meek==M QΥROϰKN,@"::6o֡nmo//wLA/ZNSSE8 +VYO~&/>//}֌c@54ZPeFl$"ǨEigX^^]vIޯEL]1icPomm}\cg2HVVuR%KXuw=@`P( @P^9HqcIoPPPƓ'YRRǎVt=CCX+ۼccTo3:RY[Z[ΙOT_8NΙKSDgEEqiUts=Snnt+}>ͺ:T|| `k Υ@z22 ovUR^=(Ԁ/Z?UYّGHBg\W3MM6QSzb'Vk6m 3ի]nZQW224etFjppܵk; )l߾}~߰Pe.DyS/ڹ1HW׀ݻ->~NNڌ۶=9BX$ 6deUrr\Bs&n;4DH AHd2{6(?%rPX_IIAZ^ȹ{ܹ̝u/*?.-(GFp[J…L`<$WGËͧʘv|lu7د#"ge .[no𢢦={VgUgbjz]Oo}32la|^>8:CQQZQU'̘Pz@ha]:-'jj 6xyww>M溜 ?[U TA@@@ vvOKK/`t-ӔkgfGP].! IGX~>zoʋAA[U] (Of`MP 匌䴵e{? hЀG |Lp#"ׯݻS=ʼx11,l)5 FLlA~5 褤/0X* h3ފDb +:ɉwƍwdH\' jݟPoPD"FE$LQL +8>^JJ-632SS䜤\݃gCCLzw0YfiON.xutE IDAT'jhiX{wPjn 1_11 UL;{"; Ӆ7S_.(*:B/x`F7o~={PRRQePhmMH( ף:˖1 FPtZ$L瑓β"nַ%^E-vdwTLd$lnSY[EEAQ-[V2~椹c,X:su|\iÂT\_ܗ/@Zꢙŋ ^ZFӝ?TVPpn62zv^aSb[͑8AA7 Z 2LHHܾB5YY..aaku?ښ2(^SjOOr_u>>9B~8.e =2A!RPTX\dez5ZV̮++K|03`p忍EH$ZNNFIR$ꠈ("-//UPcu'׫ܹJEq<&hqq[\Ԥ&1=X-oo榷xBjU8ݠ45KHLCa!x^ 1-#">>99'*whDBBiba:"~z516sGik^SϯߴIyyu 0"7UfiGX+N @ 6ddK&eqp45UttZZ5_uS10Y!!`Nn}Pz(k,/o9s7?(%xP@gh5x-[VȊQE%Inn[ZzRRtpx@ cb10OL,+\lcq3{"Ć.ފ8dd(Y**os_=qvֽ|ّöz{G۷qD")/.44,̴=_arÃh_=vZOfM3&ZݽarKdSbbOӨ* py21jbpdŕ54ݺ͛Nld$CӚY xի\ 3BOVVO3sqqDE0Qp8§OUqq%iiD"ijy;; ss9slxXR}=":WT89g.Y"Le=%|Ϟ{>}چÒ䐐=w@{DDaodkg o45',X0Mg=V<}}zׯij?tŋ3"hldXҥaaA*…8xS Gbbu ooswwޕaI ӂS b =b۶ϞX^bx((ߥKu>~ܽ[&mV5PP*OOf zz1<҃@v@<(%8>&x0=bg7o:3撎~{͎>0>>+23"WSt璒枞Af K3YOϰ; lDbnHy@OoؿNJ* +/oظQc˖,B ǣ?|pu8zedt91oMŴݻ_TVLbo O44ld$h_oxU;N?z-{{MN4MƭX{f-[ӱ..z'OZMhUV>}: a 2-/-ͳ t3,'&#X)/.dl앋%B xxjoKJ:BXݻ_Z[޾Jf <P.ё1434cZ=˾w#'}Lv6O:OD mm}mmmm}wtpűh|qܜoXN7&ܨggwO@`nd>&_xLH(-..nᳵUwpbD)px+,''JO5!ˡC...9R=̙%%Mrgeen :cЙ/ǏGϹ~Y_ˡ>u-h7ٳo ҎNⵡ1L!!t߾:,nH$,`aСr&( O]ё ]檞=\QQ&H$ZGlN(]-_ Ȳe"l` + t TD"'']3n鹎7id2 }}--uuHy 5hl첷 !!%6,so64t-[& ͬFWW#(sm-L&ɉPtgYY] RSzxPZD' 88fg {{Me P'RS;g'9z4701jb"D_֬QrʼnQ?IJ:b؟,qq%a~`9rͷo{Qk!˗Is:}Z0 |\iS vV\\ѵ??VnTSS}O!!y D޽&Yu%;PI$Y__ zNNN_|]rfoo f9&%k|ٜ@ 9DbZZzD5s"oЈzŋ^`!vu H::ji1ꠈ("-//UPGQQmϖ,Yn*H$&1KD}|^^fNNB$&~9y2z<71erm<hD_I֥KIbbiQաOtNESV4bTUx{[mWu5b˖\ϟP8px3Lp ݳg֭eH5pT̻wp77gmY:m=tѣm*͛_ʀwʕnnzNYӢ05`n~CYY˝[>t(+1X M.#=ܹ͛u ϵ6==E[/ 쏍yE׮1ut賋Pٙ)mwvl!n㊎.zSXxf"a,€[W1d 6|҂),}IIeOYB++;og24zPH :Hi硈 DEHJ NZ񡆆ԋ;YQfdT23SQ[FaL@GQD犊a'%K)W1H]/kjwjuQQEh֏{{53_N3͓eB,,njj.{ ""yyLHk?nMBNm۞Ir%+:0]YY=k{J |<@PeasVVe?~j孝; YeXYݒ BX!ǫ†֭`t9?ah[RsY__ɷ ޾%Kml0)=laqSRR͛ԕ8X+:4|CLl>EthRR-.nvq 24{h;}:hNL,KL5.Z4Re&mV #D"%%==TW^p=h8ذ}L()̲eeE6mvr}3][[ݻPQQ~OuڬDftw^]dcvG^^u#$mg Z[{ /;EM!2.]JzА&*ISa3Z?VU=;@S֮U8qJQQ*D5sݷτ*0 $$|9pnt blcHLCjp C1hߥ`LL>ʺB3@m-2!4&[NNFu&IIAFECH4oNJrr 8NDe˄>7X,!-+?>w.ք֭[O}7ȤIO@W8- [RGufkۙD'CJKOV62{쓴|:瀀IJ 6\>7PqK i*^}3( Ė*3^_dt!o;|uZZEZQR娅gXeeLJ]SPPg 慄a߄a\qq*iDqrVie6o@ |[Zz4 ii f4>H`;[[[\'T6okj.vrҶUeMFPtZ$L瑓β"?[Zzh6߻E8544?.ddjղ-[VZX(OZ>>};haᱚ`F.^L ͷQrQ@%3`GFp+nL +(.>7WZZzxKo4`FMMʊ즅A3০z:`csGFfݻnzMe={^vw 29ZZV9n7-D" ,-U>0<5oo͠gPKK..z YZ޽-,g#c "§PHNJϽTL&'%]޷uѣ5Қϟk]\/\{q8Bg'":S4>%''"-pͷt0t_$hTQc``":ףD//"@t^\TAAĻw?ܽ"褠 mqXX䤵iuq8B||ippFUU̮]F*dB|XE /_vQٸҥ7nlw-аd2yÆ3Q5߿p݀\25UUfv۷5kK1L?[[I9O WED@HI-c~=QP@8o(!+:Po Peag2_{D-[&lkno9 옘"O׷o>@8}چѵ0)}m15Udt94gtTq֖Y|b۷˗+ Ν]'::>zkw>c?}Ufetbˎ70秙~&& To#Z޽O鏽}~9/^dt!LGO|x$KBBqKkkU69ǗzID;رm:=@A2-?Vn0!D")/.* }3& vÆ;3=Yڳ۷εk54ct-EkkTW#^dgr 6 ^q=sNN}LYX~MWW=V-yرSXKǚoM@`[[H@ fq.ZO ZXOJJIBOU֪lH䢢bdlQn_YJH@ ^2#''BtjKHN. /(hX^^S^~##7ӂ>YIT6Yviy?>5&P2iAlrt޻(!38*K孴JJ`cM޼)8q"SD">}CΝFnnzt~hj60΀*3rۼ1o*JH(]M0 IDAT7oF ZokiyKOoXwرȼϟO@ ޼)8w.nୋ/dt9XŹWqVP޸28ݾsVVyygbקOϝx݀v>?X,pp擐IIA1e쏍-DmlT7oDU_ km4J3:-ҒliQD"[^~ :/_. FӤ+<ے+54-b-A=x 7579tGp!>=2'8yy'$ͮܽC&&W͕7QqX2\Y; Ǘ>~YW֖ٵˈQ>|}c>|Pea[ /+k7!.YY "~\a#G?`F44|}mh@(c?Vk~,NFWbv(kʪ`F89gHdUUIK##9fXx_vNpp•+ APMȷoeTYIHD98hM%L&5EE a;8h^-Ba(Ypx+K␑ڜO== hJ45بk .2:q#588HڵLX3_hBkfK22q?ԯ;v< cb"OaϞ}]yc+Gꭤ$^Wz*͛3glܨs2'Aw΅3gl U}UfWW?2r,ka0*wC8}˦MڌdeܺZ\R&!)ĉsgߺH:?kTT+*jF,!#ch($ȏg'121%rzio::j1¶utя@x"g1q8BVVuttQJJ9\ffJNN̰1(PpdfDȁό3tu*بzEthqr\D":+*Oڟ #|XYNADalpyV79œ>M9GnLqU޾=4άC>:7E`Ff>llfv}6|^VVdv''yh7.]J /BN})Uf$$$_727WQEߤr%9((] 5$Y_?`:E'}}COŕnٲ 45f{jkׯ$&~14VQosvv =˭&ed$GOŹzjY /'?|=dك 4pg_ NJ*`bb4UETT$lYqdj%cjDAAaE;4 B >J$|0򤤲*..NYkkUZ+L[X)׮mfB3qq%yyS'((޽pxss6mzss)^}ezW5&D8c:jɖܽw||܃XSSEww&Y`Ftt.8!d@=ٹ9@zj aF~ǜdWxB—Ҍ.gWl,+umɹso999npff@߼Me^^66j?=H$ա`ƜyfKZq43,Nfx3/&>z_6sarX1{@ A ..Aύ,8ddۮQ]vƴNLd>25#{PDojyy#=D+cEg99Qi@{OJ*B֮]aev(7Sf/^//}0U]VVKpi ܻ#GFpk^SVxhTfd!J ܯO[>>px[Jd'ϟk̙cmLuA~i*3[O?n Z_}c3&Oܶiyy[B$]2錋K3^`t!@:A38}(O oSqƐHZ$8\7DQeե;F$76vzOL&Ƅ<}njrO۟1~~@q,!!]D#'槤sp45Uܲe%{ܪ>Tdg$%% CC9##9=?hpu5;"d2??Ew7CeRRYf淙3g-V57W*? |.}=VASZ{hO +:!"7Ym۞66v}Co NKIM`m[CCJp8huugNIf{',w6ft- TA@@@ؐ:'yy̼]աKbcK79FfrM46v^~b'MH$=s;qqk61uw5vOShpͭ;wu瀀OVV L>~<*"5k]c|Ayd2{rwwC VGDij.vrҶ`] f4':3:3[{{\##95k~700ZUAQD"[^~ :/_. w{xr2<7vƌ׭SVj M8rMm-ۜy-,njj.^^P^=p7޽zՕ y,D{{OOSjy\DG*oK`1WW]KKoi;g '@i2!eeUY̔L?QDI2&ٰ᎐oD>flwjFBoH۷%FFr'ɩp!^z8uvUuu~ jhZ$@$ MO e%=?gf~+)-mIs88f$2kEA8q8BVVuttQJJ9ipg1<ɩJ-"gndmr?.azEthqr\D":+*aƴ2-!!zrpp*TUuzyFx{kE2W[RS;; O|ř!nuIJ ʀ_w|^Rr^X* 8wx2eE?th2qs{B z3V: Fm-J|62?ބY[2gߤppx*.|}"Ťsʝ'z{yOtrftEʗ/-ur~~ѹ✗W?g,-_*X,aÆ;D"))z$!xC&޾-/]icjk>0[J^^}r~*3>__=dis`IIsm֝M&-V}995gϾmnٹaS&3aZkhH-etE(k7g,%%q%FFr::KfIF 蘘IJeκڔN=4zA1niim%d,yXV@GKKV]QQ\JJpv;9,)u|'x:H$򿢳(nmMOHKϯ#I**&&&&FZTW#TVv<ӔZpɓVx9s=cX5 =< 6dei۶3gxbԇbZq91,)_NN^^SB>Um \liykyjfa@ظ;w\]ͩE&$75uɉبVߤ]\Uota h?SP^%%.$`NYeu@6@ |do*)ӿo۷v`FܺboΜyqze00ؿfS-$$ڭF$%}.jnZ`j8I̽{ntsx-/O}i TA@@@؊a3nVet-D'&%&~EEX8odgWoM/ ѵ?۷?9BhNGG+@ٳ͝Z ^ȹ{ܹ̝u= ؒK͛Fpr\BPHN[[Π02۲qm-2& ;>=XGHM]SՂsml]]uǮ{wbca}}YGG-kkձMh0sB4 ?Ϟ >-%@Ll>KBqqsDDaBB~[26^>E}``":ףD//"@t^\#;&#[aa=G\BDDAKk1+;iϞ>>EF||"/OT?q꘬jWGoӘr;B"'v„H䢢Ƥdxgg8ـ>9 hc+Ǐ[2z lEttwxy())IIel7igngm] \y1(W8 HO`ppӧYbb'NX2g-#"ׯݻ,$΢7%%߼=647Pg=v(..؃̈Ñ,2cFw쏍- oiQQܰA 74tɉ:9i99L( #tv)Yp`zq1ju%' yxӠVzOlhkX,CFFHEEb 1茌`nd$gh(,~Au_[\ԽjU@\ܡ(8;zv==]30cRF1:74lb"O;532Lc1 XڐVTD[郞F]pn6}ڕ:9ݟ0U4Uf=хPf}׺5mILr@-ebcK3;/>ϟߦ..2Tvʻ͛u||,'ɝ!;_ygD mA33 bGGD" pp,(8 %###{>DD@;;!҂;veD ڟ[ZzGEJ3EtڟmŋQQ0^^mw0K)R}=":WT89g.Y"tGO@EE'3,,k` lt-5~Essѣᅅ &ǎY-X]oC֍%==k_}_>~*3߱ÐѵPJ_ob5{{MAA*?.:IIe^@yty~6eT y8LnnCmݪfLF&++SY14֭۷Ӣ&@ ?Uuu^Cd2 1C ..; ϝc}tӧ+qo ͏+ZAsduAyyے%BvvκgLinm? >i/C~~,'$$@ ,ؕZZ^T9@\Tq*ץ7Rԅ{_Ynŵk( d, >lTPpZJ ?f9:jE7Y ͯ_:n槯oɓϳgΜoΝFz=557Rʝ9!qOSZ 6O`%(,Ba3g(*kk/72cnnX` LalΒ?238رȨ(kzLGG۷aa7ͺcEonٲB*gJ4`DQ߷?KHppЩyhMappF]FD)px+@ <<99g ̘1CZz2PqޣG#<Ufe/nPeaaDe3ossk?}alUL?''-z4elެsfIOo4'7ݹJFO˗`7nʎu}plR_JK[P(̉VTSXӪOWv]p8m nZb۶SS=rMccw\!jFEPU>U.5 ZZ2ƙ]|ڃvyߑ]ѣm{@ٳwp-6_FI+F50TJl33E5k6Bˎ6h:@v^-&ƿiSлwG˕47<}u/lm?Ox==M]]:7͚c <DGC{QK ((yRa`[T>>> ޹jhȤCC+|x))9?g:qW.$1:>Q?VmWpccWqqOм~4cQ_\{KIIZ (+Q\|^z@ŵ?իܴKQZ۷u=}naŎbEEҋ  " H 5u?|y$! 8̝w% QQZZ];Qjjޅ Ϟ}RZrM޺ ʹSb գW)NLng'hpbuu;>z!zB,x`ŋbb>3(0I\S'чCU cC`P&4V PnO15Øgs'?,mux;&9~qs5]p(>Ϻ'24T=rąwu@1*^MJYR^^< ([[9:Z|EFflzGQQѹÆ q~~Ow8B$):[%%/_ Mݼ6xeYXh]Hį[N^^ܹGz99|hunhάY(oA߾-HN&22P̖<['O>.[v…f,d *=ӂO@Z҅YÇrG3MLԧOh01yjO|x%;;a?JӦ|M<_s="O3G6wwUT,L46˩So[Y.[6|ƌ2s0G|}#_d:PyzBQHH.Y2ɘgNj-OOGS1X8ۛ()ɘ5' ~~s'NuX'ͯH2ҴR|zW7>rRҞ=P=e'O;׶O)'>|NZZZ>$pΜ::$`?(($ Z?CQWVAA ٮCv,VCtfjj^TTFjj~AAec# رVV ?m'W!{Lt*up|aif֟ׯܱ<LiiilOojb[eˆ?~imwҒnGvvرG.^\֜9g{QX+9LJHZW׬sР^;'M:rD:s{ֱAX@06ܼwv AP=tyBq#"#3c9;Q Ŗﮮ,,4KI/DBQHϟZ83@ɓ/\X$:zo.\Hf˗[bBmmQ7;r=Lڻ7"7|֮OJ"aK+CQt(WIUU^envv)W/o~ CLtҤ~;KtΟ;,{-_[t{ 1 If\\\ -"262Rci*?ovNg9yH*uu͘w 4rrff&LJ~DFflvW^^Q{?kj3 .[SߣT>>BB^$ <߹s߽%cw4!jj aak~a*+V3&C/&?ѷ5&=_VUՠ"7lɈ=:vv( =*jgz;wNYbee@ .wXhh*^@%Hj駩d2HPds::=,,4CCӰCuFXXͷ9_o`̟?t*߿~/LW })ISLzz9Uzz^}spw^$,-wXWq8dh@7nx&ҥ<̓@ _[k޿?*']3kxZ4SUհdIPzz!uF4 Y٩b 2hf\r%o_EJhzҙe_2WTa)߿/LHȶ=~|h %>>ӧ&OyEEikktMM5+:Ǐ3]]= n]HDDo_㭫k:tuuC f ʕ||&RΜ;r1ڪgyD"^QQʕVL0s ;9Y_vvwz *o*̏_7o&%%[[áC717ɉMn?yOqH&79855UvM/!b2C HfǎW-,p8DFF2.nKge0=-re8c9;6̤ >=GD[[)%ŧr/^Lfxy9n8巛Ǐ3VSz*6ҥ]::dIPbb6ᐸ-o~9$*À;wN5.E:WWWzu;K/?ݒa21GӻD2y_ wx8UvGC{Wk`). M K-*0uԩ6pEEUvvx<ܹE逥6, hvgeei##uM̟=l655?%%ܼ E (*''eaaegecekj=T?>>ģGP /bnwO峜{ޭ[b'3ُ?h*2?7p8Am<<)Ɵ̪UWsr~xuddqpܸ޻wOHMMRS_@QQ2h#;;#33M|9yǍ-B18AQtٲ+>x)+Q*Zfʕ4v=\6Xe qZb=z`~tOyٻw#:XѣOcc`9|X4LȑǧN3}ʖGJJo~s曲aL,sr` b?rىNz5Pm Sgpsݚ^Wv_䲲2EoOmjjöA~\W>~\TQԻxrn7>Uh4d͘k(M֎㝜9c2/rn|G))¬YߚF^ fӭ3.) Jz0gO933ڦvgjj b%߾-x2Ç"*.)I$qT&S:kZYZY阙iXXhAF"4%ljnŎSYYcGxdEE麺&=2 /mYii-ܸξy>|ٳ-؛<3$JǍ~}EGS?''oow ?~Լ}V]%4CCCS.ᆷog ܴi† %'Nc7Xzz=rZ^^SD123߾&r2(*񸚚:I${R̜Xlٕ͛WRO?=w.kҥÅm޼/_h[H~~ȑ[,II}+àd=6CCdV'wQ6?̟Ngnw _9tJh4ƧO%}[_ZZC z8`@Azik]r1kk˗k-g\EZ҅{rLˤH臇{|yk eߧD*ʸ{ma/OLt4Q %5#U_޽w ;\Ĕii{_tWʕ;18uu.ǝ;iZ"dUFo2QTCAPJKKLf}pȬY֌B:D''GpN1~a(,U^N./'?ϘYCC->xX͛mmyymffqffQffqjj~mm#SVqT*@Ζ:-~vWTpNgc־sMI!!ٝq~5RRHsTbxCCO7T:tQ``[$R$7끝;]P&J^f H~0 $%eϝ{sve0zhJMfǏ4yy)kk=[^VV0B47fk~SGxc3D- DZfœ8ĉ|p8EE E3gx Rӧ3̜9ڇ oټ9q񸤤m϶`/g"o`^$36lA K$0oy 3x7ks-"tii7s.A++݀=7))9ߐ =F,3U؏n3K錹Vn*+78Nga5X@L㜙Y֐!(z̒]]]eܫ8dcX?kb,qPfa;#VTԵ7o`>=w57ӆ?PZZ,~ n~=p8DVV꯿ot5q8q1Lpp8jnykKXFII{k?|QQY\W,)IOZZHU܌`0W~&/2rE./';975U~}'"9@ `7EQܹEU174P֮ -_Jxee{?se_ic C+"8xyj>855w_Ō׳K†qF:<gdfe3aB_++~$%kϞ _o^%n*fҥA/6;@z @ ,D{ϟ<9#S A9--:>͟~JE]߸ҵƯ_}kj 4A\w۶M?H'ji)Iqp ǰzhs  Ǐϳ5\4^Bw4W!p|}H"k!wrΝSNI/_~|T`}@h~8KKKKmYY/<rb[[񊪇Ǐ=D@-3ta$$ J 3^vKrU "7; _y"?e)7o~e}}3 }?&fK~6!$ܽ!|ܗ/?-X^,?ODicy8o2GQ[dd$jj%xHKH}}g ȟ@UUÇy}4''Xv QQh4&"L:,:YU0mک7Vodg6/_~ec'O A.+**)۷oq-5HԽ'::ثj^Ex 6lKN 1:CH IDATDT|ENb"@(֭w,J[[q( MMTĉ}JJ29cUC';Ǚx< _SmbbfVIIuvvׯ_fgHe CzZXhcf33 CCUL1}rÏ 9%%gƛ֍]leiӠC@]V xiӦǏZ._wRA)-m4ϋLJyYAU-@B\\;XNrr1ct@DUҽ_AϞ77l!UU}E5:Jxzz;v DNݯg++KkikiPHRRN2nTT4Θa:x ߝ bmmQu|}}F5aCˌ5aڴi4kTK:::en8mLL$6MMuuyyEdrs}=DknS(&PS9q¡d\ttt:ST*}۶aa>>׬#@:Hff#O%77K' QݟK. Eٳ+5|RsǏ?i'NSSkۙ8 0m.>ruMM޽%$S -亏l'C(*:y278y`ڵǎ=PCHe_VJLTRGFm/.w#:Qݻ¹sNf'qr]vvs&~ e@ Eqq!C6m$jA Z]MQQ`͌:.x<dd={`ťTR: PTDh9$pXcP( /};]͕ZAn~|BXw)))7XƍsKÑ#G>yN(3ul3tttߎ(ZW\WG"upJHۻ_EW80aRRRx<]]AG6-?^L@Lη2`(@DIIr߾Z}oy{\uu2W$\ b`(!A&b;kPVV{tܵk/0(Q<["ӦL\::ϟZ挌ﮮ5+n*氰]1!mDuvv`:j)'ؓp]n >\zOoݺgϞh4k׮(hѢ,YڵkW\ijj8qb@@3HܱcD믿,X@o압C hhhaVX7oެٵkWvv m@$((ϯrڻwﮪZ~U#FxzzVUUlڴѣ CEE%$$dҤI5557n;woqq1K}a7EQooVo<{ٳYZfͶLEE&((P__ (SMNϟ?R#{Ys… ((JJx`LTFFr@4kwª*AVVJ_ Dc銊҆j^T U{R" iO\j(64x1EQ"1xd$;&l쁫WlϽ{|}gWd_XL^bx8M$DlZf@ k3upOOÇ{zz>|PVVpo,^x˖-_z5111<<ѣG,_|~~~\sܹɓӦM{ҥKgΜyY###LxIYYKN^ccc}}}7777e˖a:͘԰˗dff޺u}ƍ={)663%%E^^>>>}*9SQQ`06tР^ rΜAPV:JPKUqJel@ʆnmM뀖2 &+B}%..gչrex׬p͛uA!Dpvvvvv. 44儆g%CPӧO>}rDHyyy||@w7/5 sleew^Vyii)9:::''ٽ{o|̙H$=zd1ֲϚ5 EQ.,^ U__`0999X3QR->cp [999*i&"X]]1v=cccvI[ldgg T999۷oGQ4$$U6Ҧ`t:]CC#66EQ''C}y j܊ _g?d,=NҔ:tc3foܨ[[{lm(1?}52LK˝m)5}z@CEԲO^6f2e W @ @ʕ+?zjVbAA& 888hyR,,,f̘Z.eeׯ_9299q^__Oє +!!A" ~<H$ܚ`666iiiIIISNIJJ4i`ؘR#--mԨQgg;w(`̣-m gΜy޽ʘ"&(?xNNNj_~n*##^Ə?v޺otiǘ1c,L$xFc l վp8$%%G` "$R̙npo-¡x0c+gs7?qj!@ .OQQӧǍyfV fohuuׯtLݩUPPddd߿\MMML&Ν;UUU˖-2eJUUO>uttlMHަ&oo3gFNp8SDDD߿1c0-:òM[[]sݾ}s uuu)))ӧO-U G0gg B@UU>H$Ι3g>}ڹs'W`YYY33m۶ZkxYmmmM ? >N۷oܜ? ҷoћ3lJ Iν?-s444lٲ_~rrr] ᆠZ&GʲÇ^=̙/_/'' <0--lgl#̚oRNիo..g4BBVJZpo޿b.P @ -̚X婨`n;˗/KKKd2ڬ?~ܸq˗/ioO "A g5555kٳo߾e>|`媮NJJpK |ާD a@r̙[*++={ݽ+//occ3f̘~>|=Ǐ?a{{{==#G`霹^uVmmcǎJIIqfh3oi]]] ͛qpphnn9r$`СT*3d8}֠AƏ?~۷VmwkMpqqj.5ڤM0d2y֬Y؝*SZZ"8xu-hߎ9t?yСC۶m ?~x 33355S(m'L뀔|\9,, iFpX\[x=bl2zsvGT/H`Sgjj*//?lذ7o޴QD\X(zܹ޽{+((3&** ؼSpp0h1C8yyy/_^beY5#*r9IE ;~|-,3nTLӧ-,,1/ <st΁spr9H?p^^^#+EQ///kkJ'$$dCVVv˖-7nh}jm»5D_"::=rr]Ǐ SRu/'opsQǏ#HG1<=o;6wɒҕ@ ւ .\hQYY7oÇϚ5߶mĉqqq{ӧOffǏZzIIsΕz???/_|u6YQdddՑܙ3g8z2,!!t␐ϟ?y2;۷o{e!yK.\\\d(߶̜Mz[t"`d29<<>~xkccc-!@r@b`G}}}_~x=555222O5lxp{?ٳ'FCQ4$$O>L&EGt-3:ػرcjjjǣG#\'?M-3ŋO>666y rB(CЖ>ُIFdPm䜤l[f Z4pnTΟ?t"Lr xBQ7KKKflsi$4i GQ۷RRR (+?d1i`jߊ7իW=zh}cmiZ۷K!߸f;2b|T1;%t6L&7RKܹxQҒٳOo}ӗJHj!xZGGʊ}cnn^Z"::eff(jffv=/_>s檪"Gf2uuu fͪB۫ceGHH$9>Bdee3D@kZf*Y?ݻgll~Cӱ[|ƪn=lщE {[Xⅆrʌ%r S-$L&sڴix<͍Xyxxl߾Eѐmxpmk9btFll,NNNNT2s_#LMMY\z5m}|!ky/}7n`]|M@éC͜Cc2Cд\g%5G$72S4pnTt-(ύ֛elsi$o߾R6m!~~~NNN([_-[#~6?˗/UTTq7Z,tt~; n,Xp1(G]BHY;wD-KK +G8hmbQ>ʕ+?zjVbAA&!??K777b3fh-r||ׯuttFfh-C[;3;JMHHXHHHH$GG.`acY7C^^d̵-| r^UuY2sM뀼qFBBB\\ݻw#""Z\|E[vºw^eeeLL+VtAŵۜVEEE֬?ZK{훥%޽{@pBm.Yujm I*`3--jqF%//ӡ5vzk 7y἗VAbcc#++4uTx,'+ZZڨQ8Zn~4440`v222xZ|GªsW 8-y/)+VU5;ACCR" rY/^ܺj쁢?{W8y FKKmQݳ@ƍۼy3+3%viկ_ұ VAAr5551;wTUU-[lʔ)XyO>uttd s\RRO+8󦩩;==̙3/VWWyyy؟߾}grDOO/77gVV@GT{yWvD"a;Ňn9 ~z??#Fٳׯ_եDGGO>~FtAŵۜV>|`AHT^Ydee-<|kBAo&N{T숏$]qxWsݾ};>> <6?7f 7oޭ[:4o޼߽oẫnm:UYWGIIYYSi0tqȣGՉX$jq e@ ]&tuݺu+&&&22K9s 333s-X`ǎةɵk ALJd*J$eddf6mVڵkd29 j2'BPT ={ZH$Ι3g>}ڹsgk>>nnn<ńn9 Quwwm޼Y]]}ݺuYfڪŻ\gb۷`VbT\iUVy{{GDD=}tݭ%v<<vv]m׍ Jݷo_^0< ̾sr͈6^@ `q$$$lªϕEѦ&SSS7?(o޼RJJhǎ#G3go7V*gvVky$Rw۶ݙ=t;2X6d‹)A?iӦT*]ԲW^׮,n2C BPzHW;2C^JZf1GZfDFFfdd{.mRLAAAL&Ks#G\Ys='NNV́@ D`եDGGc&MMM...gΜaBJ}}ϟ?>XUWWc!.κp&bG$ SCǏ;>. xzK%%պ=(TT͛w.00n@X:8mj>z U!@ D``N3mmmX JJHH455ٳPWWǵWzxxlٲ~ۻw//9s 333[v%kذaCnnnZZD} xqɭ[oVBE-"F$$|:ԄHlWTW?|a[ uuXi6QQte@ @ %++]@II`޼y\sr͚57o^fߑ#GTTT666cƌׯÇ[b Vpuu7ny$B f7SRr\\U/jq EΨQ}IzzL^*h4 . bz,&'$|zu#.2C @ :rHvϞիWQQQG޸q# |˗Y0snn.`ٲe˖-kHG:]2ի;"<{Ag11_M:D$}fCVoy2tD-j!+aֈP_/PWo*LLPRtF, % DA mRqee22499$]># aO?~p@V&+K:W+L&rP(\ʺ݀۷_z<33s׮]R\\ܦxWL&+(B3*sҠSΟ_8bYNҴcpnȑfjj˜SΝ4pccg6*z$/b[>;}aTC P @ gggTD'$ C{hN![Z*ֶaL&]IUTTHb2Gd)ϟ2 EdeiYFF t60w\[[xF;w.] lh4ܷo NZܬܬHeDRt: ]V&'G5;;;,Pnj(:::) ިzKe˖ӧWTT.]ݽ*((p5AGGG/D-5jjk7mzaV'1Quti~wPX+!!م ?vl' ۷ߍj[:KZ0 =yLCAPScҍ)/,,,~@YYXYZYX[IH[EEݵk/.^LDQbv>ԩ'O6YXhvR?%&~Ln9|C#͸޽Fjvvٗ/%_~˗Fnss޽,,,,4{R%` %џ|X,)I4׈}LM@uuulj[YZ[멪F9sq ycGQN*(HZDuٳ/_1c ƕO?nvǟ81opή6mSʕl(>o2C nKy993]㌌Vҕ"vFAA!!/.bHrә3fP(G<;{{A3 $'>~,"hѱ2$RyvvYffTk)J'ZZJVVjx<;CCEE]B#Ln^r n:z$2LL"egef䔣()YT"t!ptE޼sw:~Q>b= ljj >݅$'9ݻDk jÇd:o_m, DT@-3>_`4He͞p s (/[6bBMTXob{Bw ١P99$Rׯ$RyvviQQJJLLMM55MM4uu{pP-YBokk8bVV-.&~-e L& mfzdbGDC?qE)/]zzz]S,/A!Dݼ]$$aa(X ⲼBL.&Xv^EKVO$RV t 2C .L}=˗b `УpIM ܧʕ#g '}Hȫm:XU&jNNyvvYvvYvv)T^\\jg6?^bF=y(syy)Yf윑FcIijב(4C?quAQ4((j Mh2hl'}Р^k׎?;' afEEE"2j[w}:ֶꪳZ_gwj*o]U8p A{x"Rd%syqēryM e֐V u B[Q-+kUU*+yuuBވ`)!!F>LA{{S'8]^|^-<8 55E3Z{I,V"` ϫ_?0O8"P=xtrsy`cdž[ YEoohw`zh-֝4[gܸ]-_=3j~ݺWAl 2C `0UU\XX\$s߾^lz̙wgVW"VJYv *MHs,k9fƺ:aEWU A77`z`G@- M#^P}2#83D&$KHG"`p˕ :,O  MK%  zÇ[m!<7}t2t$Ξ}0kְO>ԑ$f))iLMn۶3fĶ ]W atbm׋֯?UqiFM ׮ƐM&yx]2C h4UV> ZVoۥTjvU O4RBC;ypq^-3g_Z܉[gtyBEe%[S# X,REi@@Z7fCV d2 KJ9\` } eQa(+c֮#`aP.v%v6`t :]$LO?1zhk(׬m>sԨ0kt2ӦQ(/n ˕%$l^8uba[\d0H[L>ZwoWBC7O vEH@X.W[r0j  \Bfƙ3VH|kì6",,VXW'`0KR}}>>jwDD"[\N'&$MIl b|<.W ?5(H R yHqq:b[ƍMO(0У#pү:Խ#C?|J~61̧N9ָrŋl'i#Pe@ D7re%@]a2/\(ؾ2NLLК5lpG`))[~xk!l ZÑ3Ab {RR" yRkj=X1 b` ߟ 7Yd6"bׯZz+p.Gbrskrs ZܯWllpllА!Tk<'rrnkp G`0xL}vtO」iis'NJZþ}v |W^Cu"&m.X F~jOgA ̀*3i+z_XXr0xFDr܇ `Ԏ:;v ">(?kՙ9rgݺǏ1"ڵt6npn(-64u: 8 {y==>>^^//;N+dR}2#ʕ& F1"4>>,5w~t:QM Fb ,^qrr 6(C@7V:gϜC]= *^^P-MC i^l/s5||it:֭Ҳ^}֭a i ✗W#x\x7Pcsre}v>|Jp}_!v@FFw5mA"QߟvY.n,s SٰaIj_%Knn7\ɩ۴ibd+@: T!3,?zhɣ)ϗ˭+W&Ȁ II&$۹skzuzH NHy<<LI <Ju"#8+QBs [,/iqp7mSs TVVVy7hXB8?|X-CSaJ[oQZ4iҮ m6}Gh3fqKVtOEw۶=I+swv˖7oVLJ_?~@ZD @0ܚ{jU* `a_bm#GnH.o5b^r_tj9:g#s[h~d@ Ck4̀tPݻG><,-sYJtug 9'N'< *T*]Q!ޭpؐPccm:}Y(ɩڹ3#C׮}-&LA 2C TV.,d׊J8pw^QQþ}󾯯Ea#\ڵaVZook(@3Ib2@BIݨպ~fF&l^^olh D,-b1L&ϏOR}}}|iLn݉g,\iDfcZ˫hSx7Pa{>|fLLW_M&7gLkh\~{oxќ_Wݻ36N\ɓma]2ޭ6,R< 2C K PXMWggrrs(Y$a!JKMK=vlios&>_ҟ9'Ѝ҆1/4a0O:z{S'ˋܫ~]fggd_^5kA}b@Cd2Mii#PjX,! hp^ll!ǥh2\yv]_2)%%EY vn4qѢ֮:f"tcD7}@ c_jpNO/Q(aakpnTx3zbEf8q"ȑ#G {f}-[3gTj{bE…Vυ۶].*jHNx[@ a3C@xݻ3IIVDGX([޽;ҥý]6b2|YCǓ55Ix<9H\Xa:h;{z  (% 7ʴipnFf&P4agp>z|MCx#m0aѢx i\47&7^3HEEQ(֮[^[!!M&5䫯W^}`O?=S.ם 7ҮK,^`6J?r 8q&iݒ HIJJa!k2CV<87)c]& ~tma )Svi Vہ)@sG b8\p@[n{>Zt-u'>/ƍ ȑ}RR"ǎ tBfE v^fl@;P(~~ I;l ?:VD|tz(΅r 4q<8R:Bu5˖=I/ ޝ7'}G8t(O>dIB{d-_q k-'#Ἴ"庽CG1|9P`AU)V}wy/`\zZce48[@%||mjx&@ 7M`7i4N'2dAb0t:ӣWKg縸|5k7߄!lmی3bqѴv퉓'v=iAMEҥci%M2毿 ''GInH/5rhr^^DqAAt)4%7zϞy.[8e8V~9BERҷ veZz l#&@FKǓq2Px<ÃE $h//N'1$gguE5VgGx=^oh憥->h hoo Z"*V>vZU)￟ (Mй5`ܯWllpllА!pz+xm.;v7"{ }]g?g9kvA.,_KNNՁ ZTYT԰wo==K={uGn3xܴiCէӊ@ T!nRV%>3bYy@'kOk#f93WkqǹztΜ}iis'Nl8ihpeeqH*P>_b8fd I5NkJrxֵ L؈n$lQHlӉToo'ӓEqIm 3;~q{̍ v9Hk<8+*f$sTAyJK|fQvER]wqر8B]p޼СEϟ"eLm!^o|ё#wCB3gΙ3@,*3ҵdҦܚ:Ow0ޡ3gݛUVƉqSX_=Z %hpq߫DdǓq8ϔhG*ѝdW :$h MI YeųnW^zz"&ϗ׋% JA< D'ˋM$mj]2vH[N#L)(3R0<(QQ~}zZF=_s*>>O'{["HO˕Νϗ}q{j.hϖtcMpttpwwJ4dWoo _t֍.i7R2Gw={RU[ךMnr NŹ:h9, S)dg_%%>pÆ4kWܿZ'"ߖQq~a~?0MX4Ǐ㵦&IRRĪU)ZK/\(8v;UYd. *3QJmqq*++̆ r?r"&NzujPE!&ܴiE] vlor.W&9@h0 $ I ==vɒםBy9ĉcrRs ը2C /^oփJd&\ 4:>_/n6#ӧǮ\d]=wޝy^֮ކVk B9+%_~8d258Ǝ n[vǓs8G pdMMFISI>$3`2>>0$:kJrͺu'ΜypaM,yhܚZZG 8{yPknz㯿tΰlY%c\]a/+>vL~0#ݵkVRRlyhg;wbRՙ3[XXL5ko!UfMEU^{5,ÈΥVp`#I$xq ھ4e.pj2t tX)\tC"Q5 @c-dW4*Bqi%h47ddgd<48LJD$RrR6[H $reMMtD// НL' M tuBYkhD&*wtp-_pa<".)iھ}fچ+@q%* 8Hv +QjQ:{酏RO;p:z4̙7:(ky8'O?ˣMCa%N ^=VٓQdIԩCp8}en݉W 48CڇNg Ǔ JP?BMh4Fh47$XB<;thPbb?hpA4=h<Or82%-6M`7Bd}}-+zcII#P Ah;xp}B 7Tezk {7.WӦN/Wu۷]D 0~yFuE#+33<V \Yaa=ͭJU>"..ߟf; @A\*e8`  ߹sV`5k˵10ca3gh=)+/\(<{~NN >5InjgBՁ*3Ğ4hF]A>{`TjwoP4i{籠2]\Z:gξtD[*Ӌx<9N:4`NJ ;X*UK$*THd2 r4'ڲEaPN8+V ޲eIA wǓw Yde;L@vv˫)*b-|cc [6[sg>>VL:JuvǍ}GIIG[|FG޸QcEG͖aL}ңzpfMI8qPRR4A ]T!vB}5,WTpgc;MÇo8m0gΌ["ˋb -vzG648C\T.OO/wDGFLJ ky9$5H J?lЁP\dTLNto9|r&"kϞm4WjD|7Bݬzzz`wTj✓StܙqT'yʤ3l7պm.=&&h˕:uk ͘~x [ kJ1LBBj@2Cz6*ʕ\K@T0jFwWWG.Z4Eҥn;& ~PsFF1+Ӊ }YG"zQ$RDJХlDJ!)3 } :?W OځI+ |ի%V~jgu|I"(|= ړӓAd0 ÃI F1ߐ^ͭͭ~D~bccc?F44kG&\,IXh4tt\yqiXi7ߌk-Jtԩ{7nc0l~}7;]6[|Rŋ^{-*99Dr T!= X]raaÇuzDr`3$k %%MiiYg,^0{( IDAT0( 'LعiEF[Hk@3A 7nTLHf!'H "B,V*X)+F3[4TWFσg:X[͊wgϜnF $}s8R>_'|˕T:tgAӁdt"D Na0xyy5Ֆ/ǹ5!]?t(q޼K!~陫WK'NgSrOm2kN?sZR|Q}6oMqee DSrrkE%&U*30TV.,j `5,1m[gOVf~<-K2eq|߻wg^Axk hpt?b͊Ã0|xhrrDjjdW%R 9-2U 3$3$ӁfFS(OԞ5L;wؑQ۶M 8D8(V(-BA@HF&9?V,Vpo8GEiou<`ŋڸbuR?dwo_?2lXȿsEL:pۛq^zݻU,Ã+^{-jԨ>= Pe", 닊jSD7*+ހl|{+#``0MK5\rf6{j@3*q23- a))11AVаQY3>DiT9E+VZ\ܰ~QR'T xr>_9BPD9t"I 0$:H-r@[%gay+n2ā}PllMY"*OE,RaS`0-[.O]`TJ\ܹ=˫L89rAVN}뭑]*J$*ؕ^,hɑÇB'b#@b2`XͭJUx<.("#}:+Fҥ3gݛUVƉq11A. QX,aJG_?A{w޽W23@3Q*oWfd_R$#F&'GDrfF^}nzU04Ghn>q"oS!!{TצdBÑ  C& @.)ѝAÃHh4/@l&45uuB@W"Q/&7k2LPcbld2_x A^JJܾ]}߷oWfͫqq-tׯedq9::`„A& vr9rBb̸UROvvTXȾq,+} cdž޿%SA *35%%a L1 ˕oϗ˭]4 BŻvZGG\if[thpXKQQSe4=:,j4 HHRϗk4z:::899(eРOOOTiɅBq!" i:C%DT@)O]Ҷ  @q%*RQTqzt<#ŋNmy<&&h͚qF5A*U?_pzhO믷a2f̈[q"NQ~A˼й)::`|ls*3j~^^ \dAm* v%'re&y KAa߾kpNNPxgmcGLͯx#?lU t5bp>|ր>Cve58߽[m0Qa!Єk2N}~dh%-H_JdVhOxfww4{J%yZH|HhBH+J,Ot"R@RF^Pzdi@ x|?^԰B$:ϛ7vD$RyyNZѝ \ܹ,7nɓA`0]X{jGO1JJ;دNg}&&?0%%7+Ү^^ַeSDw$99U7n ]\ xn*s"#X,VMӾ *tɹo_/TYn%]ShhO˕Xpx<]d \[ص+c˖K-UAb ȪU)W;3 Fצ#6999Zvܲ1%33< }F 7KjT-!(2Z"QdODjLV@pjA"<T$% xWaݖd I|H&zy:3Hx:pO[#\]##} ]\\˽ZA3fĎݷz$aŊDQvx3x<@p9qbED˖dϝO"QȰa!F)'j֬a۶͐JUO79ijjCW5ؑ~#e~& JJ@?|㹿S[+9nUTѸ-R>xqXp8LD< ̽Z ^-%KK7UhO9Z@p Fee'|A:6[x_M&3yЎi,0;<#2晒gO.)RW_n ppF8*U!j ^Qo+֛% JDJX))bpI[< Hquutww>h+F6{3{yy5EElũC{ەӦAdA_|1Ž ݻ7K(TL4w,9\Q3j8RT' rwh488z#F<9ر,3yrҥcBBZ!7:=¦&qΟ?::A|Vő#w._~₟8qy###}$|rA >oJzQ^^M~~ݻ5eeM #'66A TZW~ @!j]r`Z;7Ap +bl'OŸ9Ņ~ @z!"rժ߲J]5p8_1wk"jp~#g>'X,qķm!=`pqUVܜFMILJ W3応?pW{/j:!%ekMl>sƌ/2Z&dj\-iRx(rTjrM#8H$ L$O3I"r,U<͚߱Z?ڱUѾD76˫ɩ86$瘘 Õ[/Fq˖%9NKKZ[+xnqp>vBKټwo__@O nUddw\ P.q/]xdޑ#wX,aTߜ9xc^oܿmF^oD/w4LEEZ|˕(ߡC ><@zPes22ߓ\ Jb&Lde0_++A?b)[% bxSHb0 ^{-*Al'֬9n2y,q- b]t:ݻWdesܜF3fLo >[ IIؾM qPeZFSD\b KK۳69|8Y? qtt^d >e2\~D?Ѧr fknX B@&D6Fʸ\2n''392$ў=zh`UkllpllPtth 33Qń0oL&(.nhqb0LZ[쌟RV<^b X,vʱnnNEQwqopZ5ŒH.JBqΚ5<4}㏏ Qǽ^> Q?ݻU2Ht4,=Pe[jkןv ŚLϮ%xìYqcdžY@@稁Xx8;㝝z6{BqˑNgIO,D& yXT}Z AAho,,wpS?lJۧkjFmnQ`0 mی3:D8**-ޯXU.׌9fL? x_deݺז-KD\_;}R`0ÆϜ< eI&Uf;DݛkWٌxrqz4`o/1n@Z;e.LʐAWէ۪,Z/:VOZ9|x[^+-fyc5kOWH W(ڀZrrdjj;U{<;!pjjg۴^&S'$|+iF9!ojj+ۇlnhR 2: \JUrF.*IӔ\L;;㟺Q}H 8ӇD3D&ZGt,օ6 "r|O#A7EÚLȟ'ddo*h4["m[e88?8/2ҧ4;UYY%YY%55|Y4;!pD;/ܹkEF[eXf1* @qϫ<346D 8=͙@p«D hBX%(%XbJ"QI$f`ܜ(W ݕBqP]n?yTYgX닄 .GGo6o_V# Dѷ0ᇯǙ3W:j267TPP`A@] {>}jݺDd/W=MCeJ:Ί@:- yy, 'Ξ]/Fb; d2 NRr,8Ri1lFFzi47Ca0qqqqVDg.h4rS|źugYv*njE 0kSg̈ /#C _{m{fz[rN! LL =:ˋK:z J Z"QY>DekRT> sss"]g77A;H.ۓg#؇Bqquu):lG<݊?mcHzۯ=ߺb0ȼyq+V~[b.<",O{,LfgώY6~fǎÇsھ?=;LJ7L/hObbX8u7{u46ī?|Z{.'OdB,WVZ #Gv;:) ;KQC 81dB8Q.Ύ͆ʞ61Zժy<^c7 I4iiRz%miV@@n*+RPP&EDQQ8 PPn*P9R<=b)Xr5&Md?Few4Mtggvw&aw|]>oYR*Jeϸx6->h&OUkj wzn+v& r?ݳ&+wMkj:? 7ift;]Yi/,A'fZͨP(wF :|6=#QvZYSrWLjzO?=;,.34TԶ}'PQQQQsАP)b:t%W?~:<<Ųii}0ժc;v"lM]VFFEEroz]Yո8ohI==MsIj5;IM'EߑHYNIs'ܴZZI/;v :qtD7ҫHsSڶ K1 v3n7ٷ/w_uK1cPzz-R)?#G&޽Q3 fuyy- @$l]G }5t8j,۝UU.p7,ϗ5vlv8.Vxex6""Tش^t&Z ӴihBMHdN WjZ[ !-܏fV\|NO[,ޔ4}#{4Zxf^tks\6m)'|Yfhz2Z0Vfs:5vM;5Vkl-+lGX]ڪ*#GDh56mB4M^АCCC igHI%]^^u\?)vvn`_vj<`{+B ,K7o,[QQ0 ͞y=ܹs„ 4d2M0_; EZZZAAIQFR$5[{o+}"wjo~( USRٵAZ50O=85MbޓG>Jf{^Nl5-o߾Ċ BΝ;;uTUUE?~|||\\kjj w};eʔJz4a.B{j;vuVBHmmhpNGˢv !tbB4͖-[>+Vl޼y˖-js„ 9_|1~xڍW7.F.awU2 ǎrСmۮXdܹs\\\ffMi?\uVXq5tY3Vďq[z;Ao ogZYY9uԘyUWWB ㎨zKԠ TJE%8pwaaaF*no&۽rN:EDDw}'NG#ZټÛ ۷>Sv]XsPCXv=}mv=Gzz{g3C_|q̲e֣O UI-$DI1t'ۥ-"Aj6&P(f͚W_y;יcJqȑ7n0L_~=>>ĉ477nܥKhѢBBȨQKv-//7o\6-44t׮]CBBl6ʕ+EG[neE:EB/_M$ڵ /WnnFFЍ7&&&|W^tcs{gjo]QQxV}ܸqL}o;vJȸ),,={ /0̶mۆp'͞߿_Fݻo߾-kǎO0 vΟ}YZZhh<<'~2h7XmYfjI\aoᝩRTlٳ!G.[QTn8At:gϞlnѣu7{do ]_KԩӖ-[fɭu6Wb3΋78s?HoMrr\RĹsG^vw7y{Wj65t\ ,30˖-ST=Z-`=}8\ ;vl믽eZ=ro٩[ Gjڽ{@䤥y< 60x_{ ]N;u{\ mpae ;;x)V+(<O#ω0?-W8\bgj}Io (}$bw/_GJT2p@+4`^z=u7{do'+,"N~cG9!Rb9 Û}ېa6HyFs))N'JKį~l@Owq]wI,zL.\ @m]fB˗aÆeee111YQQqqN9JHHpM}׼r8g׮]ӧOEx@tJ1q%Yf3mڴ9sܹoݿ?MG^xᅋ/9rڵ\'O~<ŋR(#Fؽ{bq\j:,,L4d;v,=Ndd$!O>X,h&z" ̜9GӧO'deeϙ3J7n̙3+|oIIuT:{ :t%Fٴil.g-**_/^!$~>\r*,lo/]VU@%t>4]4ϟ호`Ľgg֬YӳgOȗ_~i4"G'h۶mtt3xTWWϛ7/!!`0,55Utd2fw\GVl呑&[SS3`6m0ggxٷl>0?T* lKNN!dڵty VؤDF3DAP۽zT0rH{[6yӦM)))111sq8@5?_[. 6o.ژ+f Phho=Sa'Om4ΝKI4&'P12*#Uڷonݺ{,..ޛ'+,"ڕ+W{%˃&<[s2/ Tm|:tr:L]  )l@O}&MvA_ގ+6 3tUxo߾gϞݻ/_NognMSC͛7q Oҧu&?K@S,֣&Q4TLXj|s?4o p%Muedd XQilla Simple API Documentation SourceForge.net Logo
    ATDecimalOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATDECIMALORDERIVED_HPP
    21 #define _ATDECIMALORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    25 #include <xqilla/items/Numeric.hpp>
    26 
    27 class DynamicContext;
    28 class MAPM;
    29 class XQILLA_API ATDecimalOrDerived : public Numeric
    30 {
    31 public:
    33 
    34  /* Get the name of the primitive type (basic type) of this type
    35  * (ie "decimal" for xs:decimal) */
    36  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    37 
    38  /* Get the namespace URI for this type */
    39  virtual const XMLCh* getTypeURI() const = 0;
    40 
    41  /* Get the name of this type (ie "integer" for xs:integer) */
    42  virtual const XMLCh* getTypeName() const = 0;
    43 
    44  /* returns the XMLCh* (canonical) representation of this type */
    45  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    46 
    47  /* Promote this to the given type, if possible */
    49  const DynamicContext* context) const = 0;
    50 
    52  virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    53 
    56  virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    57 
    59  virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    60 
    62  virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    63 
    65  virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
    66 
    68  virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
    69 
    71  virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
    72 
    74  virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
    75 
    77  virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
    78 
    80  virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
    81 
    83  virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
    84 
    86  virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
    87 
    89  virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
    90 
    92  virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
    93 
    95  virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
    96 
    98  virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
    99 
    101  virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
    102 
    104  virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
    105 
    107  virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
    108 
    110  virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
    111 
    113  virtual bool isZero() const = 0;
    114 
    116  virtual bool isNegative() const = 0;
    117 
    119  virtual bool isPositive() const = 0;
    120 
    121  /* Is this floating point value not a number? */
    122  virtual bool isNaN() const { return false; }
    123 
    124  /* Is this floating point value infinite? */
    125  virtual bool isInfinite() const { return false; }
    126 
    128  virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const = 0;
    129 
    131 
    132  virtual const MAPM &asMAPM() const = 0;
    133 
    134  virtual State getState() const = 0;
    135 };
    136 
    137 #endif // _ATDECIMALORDERIVED_HPP
    virtual Numeric::Ptr invert(const DynamicContext *context) const =0
    Returns the Additive inverse of this Numeric.
    virtual const XMLCh * getTypeName() const =0
    virtual Numeric::Ptr cos(const DynamicContext *context) const =0
    Returns the cos root of this Numeric.
    virtual State getState() const =0
    virtual Numeric::Ptr ceiling(const DynamicContext *context) const =0
    Returns the ceiling of this Numeric.
    virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the sum of this and other.
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool isPositive() const =0
    Is this Numeric positive?
    virtual bool isInfinite() const
    Definition: ATDecimalOrDerived.hpp:125
    Definition: Numeric.hpp:31
    virtual Numeric::Ptr round(const DynamicContext *context) const =0
    Rounds this Numeric.
    virtual Numeric::Ptr tan(const DynamicContext *context) const =0
    Returns the tan of this Numeric.
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the quotient of this and other.
    virtual Numeric::Ptr log(const DynamicContext *context) const =0
    Returns the ln of this Numeric.
    virtual Numeric::Ptr atan(const DynamicContext *context) const =0
    Returns the atan of this Numeric.
    virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const =0
    virtual bool isZero() const =0
    Does this Numeric have value 0?
    virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the difference of this and other.
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual Numeric::Ptr exp(const DynamicContext *context) const =0
    Returns the exp of this Numeric.
    RefCountPointer< const ATDecimalOrDerived > Ptr
    Definition: ATDecimalOrDerived.hpp:32
    virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns the arithmetic product of its operands as a Numeric.
    virtual bool isNegative() const =0
    Is this Numeric negative?
    virtual Numeric::Ptr sqrt(const DynamicContext *context) const =0
    Returns the squart root of this Numeric.
    virtual Numeric::Ptr acos(const DynamicContext *context) const =0
    Returns the acos of this Numeric.
    virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0
    Rounds this Numeric to the given precision, and rounds a half to even.
    virtual Numeric::Ptr sin(const DynamicContext *context) const =0
    Returns the sin of this Numeric.
    virtual Numeric::Ptr floor(const DynamicContext *context) const =0
    Returns the floor of this Numeric.
    virtual Numeric::Ptr asin(const DynamicContext *context) const =0
    Returns the asin of this Numeric.
    virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
    virtual bool isNaN() const
    Definition: ATDecimalOrDerived.hpp:122
    Definition: ATDecimalOrDerived.hpp:29
    virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0
    Returns a Numeric object which is the product of this and other.
    virtual Numeric::Ptr abs(const DynamicContext *context) const =0
    Returns the absolute value of this Numeric.
    virtual const MAPM & asMAPM() const =0
    XQilla-2.3.4/docs/simple-api/classATGDayOrDerived.html0000644001725400016040000012563613273140077017441 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATGDayOrDerived Class Referenceabstract

    #include <ATGDayOrDerived.hpp>

    Inheritance diagram for ATGDayOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATGDayOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual bool hasTimezone () const =0
     Returns true if a timezone is defined for this. More...
     
    virtual ATGDayOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Sets the timezone to the given timezone. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual const XMLCh* ATGDayOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATGDayOrDerived::compare ( const ATGDayOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATGDayOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual AnyAtomicType::AtomicObjectType ATGDayOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGDayOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGDayOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATGDayOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual bool ATGDayOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if a timezone is defined for this.

    False otherwise.

    Implements DateOrTimeType.

    virtual ATGDayOrDerived::Ptr ATGDayOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Sets the timezone to the given timezone.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_17.map0000644001725400016040000000033713273140077016467 00000000000000 XQilla-2.3.4/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.map0000644001725400016040000000040213273140076023707 00000000000000 XQilla-2.3.4/docs/simple-api/annotated.html0000644001725400016040000012215613273140074015502 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Class List
    Here are the classes, structs, unions and interfaces with brief descriptions:
    [detail level 12]
    oNCompileDelayedModule
    oNxercesc
    oCAnyAtomicType
    oCASTNodeEventGenerator
    oCATAnySimpleTypeThis class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType
    oCATAnyURIOrDerived
    oCATBase64BinaryOrDerived
    oCATBooleanOrDerived
    oCATDateOrDerived
    oCATDateTimeOrDerived
    oCATDecimalOrDerived
    oCATDoubleOrDerived
    oCATDurationOrDerived
    oCATFloatOrDerived
    oCATGDayOrDerived
    oCATGMonthDayOrDerived
    oCATGMonthOrDerived
    oCATGYearMonthOrDerived
    oCATGYearOrDerived
    oCATHexBinaryOrDerived
    oCATNotationOrDerived
    oCATQNameOrDerived
    oCATStringOrDerived
    oCATTimeOrDerived
    oCATUntypedAtomic
    oCAutoContextInfoReset
    oCAutoContextItemTypeReset
    oCAutoDeallocate
    oCAutoDelete
    oCAutoDeleteArray
    oCAutoDocumentCacheReset
    oCAutoMessageListenerReset
    oCAutoNodeSetOrderingReset
    oCAutoNsScopeReset
    oCAutoRegexGroupStoreReset
    oCAutoRelease
    oCAutoReset
    oCAutoStackFrameReset
    oCAutoVariableStoreReset
    oCBaseInteractiveDebugger
    oCBoolResult
    oCCollation
    oCContentSequenceFilter
    oCDateOrTimeType
    oCDebugCommand
    oCDebugListenerA class used to listen for debugging information
    oCDocumentCacheExpression Context is a storage for contexts
    oCDynamicContextThe execution time dynamic context interface
    oCEventFilter
    oCEventGenerator
    oCEventHandler
    oCEventSerializer
    oCExternalFunction
    oCExternalFunctionResolver
    oCFastXDMConfiguration
    oCFunctionRef
    oCInputParser
    oCInteractiveDebugger
    oCItem
    oCItemFactory
    oCLocationInfoA class that gives records a location in the query
    oCMessageListenerA class used to listen for warnings or trace information
    oCModuleCache
    oCModuleResolver
    oCNode
    oCNSFixupFilter
    oCNumeric
    oCQueryPathTreeFilter
    oCRefCountPointerSuper class of all the reference counted wrappers for Items
    oCReferenceCountedSuper class for reference counted classes
    oCRegexGroupStoreThe pure virtual base class for accessing regular expression group values at runtime
    oCResultA scoped pointer wrapper for the lazily evaluated query result
    oCResultImplA lazily evaluated query result
    oCSchemaValidatorFilterWill modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache
    oCScopeUsed inside VariableStore to implement variable scoping
    oCSequenceAn eagerly evaluated result of a query execution
    oCSequenceBuilder
    oCStackFrameA class that represents an item in a query call stack
    oCStaticAnalysisRecords access to various parts of the context during static resolution
    oCStaticContextThe parse time static context interface
    oCStaticTypeClass that represents the static type of an expression
    oCStringPool
    oCTimezone
    oCUpdateFactory
    oCURIResolverThis is an abstract class used to resolve URIs in different ways
    oCVarHashEntryThe class that stores the values of the variables
    oCVariableStoreThe pure virtual base class for accessing variables at runtime
    oCVariableTypeStoreThis is the wrapper class for the variable store, which implements the lookup and scoping of simple variables
    oCXercesConfiguration
    oCXPath2MemoryManager
    oCXQException
    oCXQillaProvides factory methods for creating XQQuery and DynamicContext objects
    oCXQillaAllocator
    oCXQillaConfiguration
    \CXQQueryEncapsulates a query expression
    XQilla-2.3.4/docs/simple-api/ItemFactory_8hpp_source.html0000644001725400016040000011475213273140073020274 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ItemFactory.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 /*
    21  Factory base class
    22 */
    23 
    24 #ifndef _ITEMFACTORY_HPP
    25 #define _ITEMFACTORY_HPP
    26 
    27 #include <xqilla/framework/XQillaExport.hpp>
    28 #include <xqilla/mapm/m_apm.h>
    46 #include <xqilla/ast/ASTNode.hpp>
    47 
    48 #include <xercesc/util/XMemory.hpp>
    49 
    50 class XQILLA_API ItemFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
    51 {
    52 public:
    53  virtual ~ItemFactory() {};
    54 
    55  /* @name Atomic type factory methods */
    56 
    57  virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const = 0;
    58  virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const = 0;
    59 
    60  virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value,
    61  const DynamicContext* context) = 0;
    62  virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI,
    63  const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    64  virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    65 
    66  /* @name Number factory methods */
    67 
    68  virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context) = 0;
    69  virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context) = 0;
    70  virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
    71  virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    72 
    73  virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context) = 0;
    74  virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context) = 0;
    75  virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
    76  virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    77 
    78  virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context) = 0;
    79  virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context) = 0;
    80  virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context) = 0;
    81  virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context) = 0;
    82 
    83  virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context) = 0;
    84  virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context) = 0;
    85  virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
    86  virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    87 
    88  /* @name Date / time factory methods */
    89 
    90  virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context) = 0;
    91  virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    92 
    93  virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context) = 0;
    94  virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    95 
    96  virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context) = 0;
    97  virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    98 
    99  virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    100  virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    101  virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    102  virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    103  virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    104 
    105  virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context) = 0;
    106  virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) = 0;
    107  virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context) = 0;
    108  virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context) = 0;
    109 
    110  /* @name Other factory methods */
    111 
    112  virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context) = 0;
    113  virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    114 
    115  virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context) = 0;
    116 
    117  virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context) = 0;
    118  virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context) = 0;
    119  virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context) = 0;
    120  virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) = 0;
    121  virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
    122 
    123  virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context) = 0;
    124 
    125  virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) = 0;
    126  virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh *prefix,
    127  const XMLCh* name, const DynamicContext* context) = 0;
    128 
    129 };
    130 
    131 #endif
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    Definition: ATBooleanOrDerived.hpp:30
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual ~ItemFactory()
    Definition: ItemFactory.hpp:53
    Definition: ItemFactory.hpp:50
    XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp__incl.png0000644001725400016040000043145413273140075020404 00000000000000PNG  IHDRZbKGD IDATxy3ts>(;X3$f1Hc\X0Q+H;--- $f +ZZZ: /:t֘ 1Ab 0? v[nZjɒ%#o߾=tЯ\xq@@߿rEEESSEqrrvyԩS;KKK踹"GGm SN󓗗st 10o߾ȞCBB)))Yn1 |||GQt mWɹqׯ_O>u,F+(( quuy󦐐{gt)'''??ɓ[l),,TPP@AfA:/ qWWq]QQ3g0CCCggW^Y[[wy(k ]]ݍ7;;;aÆ3N:Xc`o7NQQ۷}kcԩS_zlٲs޿?,,l7oޤ?J̛7o޼y>>>T*A"t΃c|||-".\Ǐ.]pٳgww>8w}e) Ɔ¯h899YYY[.--wׯ666oǏ͛wE $fc477G̬:|ʕ+?q㆛۽{yaIIիWO>-2\]]֥55|㠠۷ڝBqq1w{yTTv{zHHH``{|||}111۶m~:e"//Gܿt 10Lzzzyy fff999ov…,YD@@`ƌ444 ի 6HII^:66wp8Fꪧs׿k&M@$""bƌ*#fSSSqq &n&$%tLA455W\I${8A֘۷s8fи<+--]`AǏBBBbbbYYYƍNVV?VTT]wrrrkyyy?}өTjH_G「t 10Ftww5kȭ["##$5lذgҋ'1"baaq]==ef---iRԮ3ECCCzh/^;_O߻wϟ?GIBnnnatzt`*#1jjj(,,~MMM}}}ʲmA-[VSSyh777 Σyjkk+++SRRbooC244$ɷo߶!ٳg_rǏձ%L^x+.**JOO~:@ 10۷o;oͬ.''m Fqqq^j333[z5 ׮]u떏Oqq77-[@JJJ[[ڵkSm0&O1ybP(W\9r={9uꔮnGݲlii177wppO\r/ X^F z`oo_QQo>aSEEE]\v{g bt/ XMo` gTU$**y ?AW}]QZZGX0dAb[m***OL, J4jp8QQ--4A3l5=4-85(=4= AAi4CII|y##5==EMM9^^.U+@ !FCRSҊJRSPmk44p# tuƌ:pCGCCKNNEFFiRRaRRAjjqcc+ bb8NPLnijN(**Л߽{7/`ȡ+҂"SL%%%* $f b -II߿'%T#""?zxYY}bbAuu#ҮdCC]]E|yodKKf?[RWN_IɥJ K_  hJ9RFTQTjUgM>p( F4Z[E 4*--;BZZ)9̊QQccuIԤp8vA[MQQ?M؜}|mqq͜9֙kh'.jj (0/ AII1cǎU;Va%~d0 $fvZVVyRR}vbbbA[UXo(Ym r䈈 >>UMMMLc*ppc2ցBiws~J7H"Ιs ^4z" ƍS$jhhIK+N ,oouhkPS+V,.&&;>>/!!?9gy]]E]]E]ud,:6jiS24T`;PW}Ɲ;/?-Yd9? EѰ ߿盘7l 00n56Yޱ0)*(;r/MO03Xϟ山_dfUqqqhj0]]Euu..A~(|2),,%-X@X|i ñ~Bi_/YǍSfl㡡?wJ=҅ >Fno^ا&(gvVFmgwy ǎ*_ped1e&RZ::PS 3zQ_ߢ$>eʨSG t*F$ܿݻ ,19R auuMTT4<|xxz^4{ڤRig΄UUW0]|0֯\P~3 5HL!S9էMӜ2eT ׷^XqcaZWUU7B]Bb=Z2J{``SZZ+WNcMHR4)ܚFNN#x`*HFk+566;,,EE5BS"L%,vH7>ͱhggS%% TV.L&+*ĻJҖ,Y&ii<$[/_~{;II;mltL Υϫ캅l` 54}e۷iMMmZZr3⯾ {\><CtHҼ*yii 3ư/޿'hլ--Bi S9yʕfSU^`o΂%123ˬΟ?1D*=t(4""@:p`.+L8uuM} axT P0@bWiiݫW?^J'cV_r+W"mm ܦAa+.邌M7O^hф%:Ӭ of&~,l`P &"1ķoxxLLgҙ1c_-묱5 ҥ557Zɱ亡277gP;Of;rQOi;~Ri_NzJ| BD*(ML,hkvl!K)`0 ڦW utY@GK&z{_NIIy&&펕uBǏ–J# 3054y=**gn>zl=at?7Mjnny3NN+L\\SHNNeqq@RHiƌ3999J/Ϟ%ZcJ겅ZJJQSSTG6fl@b&z]ท/Z[&gbROnhhqv6og?]y`Jν6={UmH죽VXXC"Sor9992Tm8e0$Ab䢇< (̞;lͣ(y׋ o2SJJ͂ee]y` C?2ۃWO);w>7n2Y (Xq3)H܂Uݿ'a˖&LW9j 3(/o.dJp!\SSȑ)D/qq9ƏW~}EfM55)7n*ʥK.%{򤽶":oF"&%5jz`]eeݼX}J3 >..gv8:N"tmD5_CuXLLg.ƶ}ZZɶmA˖ln5VΥK+ -'$f%%\-3VP--ӧDOR姓ԩ.]r+{ O޽رÇ zyN2 `P<-11j::S"H im>|D*54Tqv611ٛ7?"m`1|Rۉk/|jkΘqFBB(0 [YY޽?O\h¾}sDDfq=O#JDy/C/`h w?޾e<+ʹ޿e̱GiDFXqcƌ/:ǏY; XASn B {A p@-ED54d4? UTܼF..22Øorrњ5wꚽlgaB[+W޲Ҿp>;kO زg~~mltO6Llgy{;jjjRl/Hfbc/]z$b??3 (zF n)V^I{vOllqp>:Dbʶm0t⺔OJ*hmv)ͯ8`6 H=sMbbʕfVVL[SӸqc۷i76nzbwlvP S \JΝ_Hrrgll\JB X$f``ɭ\QSdooq(chll]?<>Kmlt ;w>|I[{蜧%%#ӴGHK`&H@o} &VMlII͂kז1?6Iڵ~]k}5OY aӦ36l l4=auuMZjx /CO` 5`H56޸IWOqq1jڸ+oIHߺE'O>]A{͛{z00VS[dfemeu,ݣ2=t(t V_ߒ^j| (H#57oll[dݺiPd_ IDAT޹3dʔQގPYϞ%Ysk l:sFK,bQ{x=}~8ecw{MO/>} f [SS IҌ҄| ]HWSSihhjqss#^^$f1(ӧ444/^l~0VP}ܾaf͛ L(:e?+h4Zw=}baW/6'r7;f' m6kֹÇϜ9v "/*sLXMMҥ֭Wk+u͚;ѤX[` {ʕ7yyؽ[Zpa<}c/l |IKKpfTϟyZJJQSS[GioFԶQ((8q<^9/X$f_Ĕ#GT8:N\BZ'..[ehm0l@8^2!ÆXaj,Ow?|{׮[u 7i TJ"&%~[S1r /=@yp.'[X?ŋvL 1}XppǏYsTT$mrrVPP}&o]  K^&{y("+;l͚NN0ӉTT4:?ko?OxD6giy*->\Axڵ珃X=;s捏O0[WrVu3Lk=+,IN._QYY %%E(@xcƏg?40 1y[F۹s,˫Z //w@jYYfo` HurEьT7n43:bbrbcvX[Սbb~9`#FyyÏE>FC#/?3AbzFCCB<TW)S8-x+JJd*͜y&17lS:A&00vmX[sΞ ?܉||XG  UWs9q8u00TAb˗w?,[jƍBBXGy.K߹RP6o|Yƶp8)--ٍ_jaQ -'x+W23#S<<Ů_w-_]oKJ.哛kk_5...oߚb$f'eeuG< fl~< ֪_\RR;wE @?7ofNlϟϞ=74ڵ~I1-0ͭtqUZZ8u(m||ݻ E>@88p<2222|x0II {{@{{{`{J;Ox)"b;;C#ꪪh^1nЬCUon͚{ L%^ܴcCGkv찆Jۼ(JB'-=L]]Z]]ZEERUUREEB^~8T  H@7S}\^^afTBqtN{p-+Cni7lh:Ȫr9H__i׮˗b<`qK)J*(e`> ҥ ذY\%%GIqܹJJXG?\DVV^]/A b.: r^ҥ:0$fBit)b55Msyl׺ݳ5X»YYY8=wvv3 N.]ZQQnݪ#,,lhhxQ*9}*))),,uV}}~mmNMT qqqǏێ; B{sϙ3ӧO?cc>{lVKKm,;;nu rٵkCB997cLvx6ܶocyMW W.\ *)mo16$E333:ںsBG_dffvhfff{݉j˖-T*LVVVs}0o`*S^ijlll`,%hܸ&Xb-w78@0;JM->s옝p#S^on=f*//_SS H@@ollhޚ'Najdee;F?XYY)((q 22۶BlݺUZZZJJj֭ AwMMMMIIcǎݻwOEEeذa{졟3mmm>>>UU{up8ܚ5k^xP{޽{99-&((uV???PTTCOw/~zc2, wz_O>АZ~}kkk/ SSS>|WG]] lIssۣG,&F{b0ϟb;\oM._\BBBAAa˖----555N8C]vufBiWT3BNNV[ucvvi}nwp.]lٲRii阘E^*%%ѣ/^((( ێ<<<+V(,,CEћ7o޻wS?`$}}۷( ŋ_ }}}իW$ɼ>>>%%%7n"ɝB'**PTEEǏϜ9۷`~}m٨(qqq F?ҒD"}EMMm=7جYCBBtߎ(qɓh}VgJJ[b  FۯYϟ?ƌC bkk[SS HUUUmvD5@;FOlO|gϾQQٚ[ٟFzEFAAA[[۷;pΝ(hݞB7jԨc"( (uyY]]}ԩ޹/ĬPϟ?KHHOOJJt,J@Qرc'00PMMf;{sL~~mz.beCB6?r$^ocddB?399Gѯ<DFF͎rBb`@Л7~6v}};v̜9}eff9w1*QQQ LHH7nQA/~''=zN MXaaa/C?Smwh(IFFM1۽fHԞ< ֳvoW$//?"RVVN#q_*:;!JJjmm/>l˖O\Y ۷?TVpuœ -,,<==G;s [n|2ׯg̘&-/_1f\]]bccS]]s_(^rw&*vx~;'觿z[?~dbbBEGы DM.kdU&GFgf DXYŋDGkX mtLvpps玼VYKKKsrrfgggǯ$Wk  1Tee˗֭3dCC>| }ZZZ۷Hkkk[[Oss}ihhx9s}>L??;򒒒f̘qҥ?,--CBBڸ~(**j޼y9997o]j޽_| ^+NNNoذ!+++..nΝkuu1צ~w,,ć@.LMAA))E0PS]vʕ'Ox77… ׯ_{nj/w/Lhk:J^~܂u8}F8 i7k.^ֆǏeee<"$$4q#=y@Q̙3bbb#F|ŋneeK3)x}}]]]q``ȑ#yxxFӶ}џaĈeeeToBQL&{zz3F@@@KKj։yE/w5kw~ו$$$<<OeDEQc㣖Zex`,v7**-SS<ှ-S=1"|im}ٳ =+CHaa>#p8{{௭Tc(<<\>>eˮGDb$ ~~.2qמjj~|MMݻܦ` ,gɒdr˫WIX29wqJݰmy劓Pd||p99M:Xi`8}z%\\n%c0 1rs+΄]kᰎ;w>^=EPX`Qvv>ebpG,pp0Z6f<.}}w޼TP:c( }([D @]AAA?[  x8~ȗ-fZuw_@>0R(uu|""-<<4 `Fn~~*GUV RJT*ck_֮1c[.bbX0(n0sYth(RQ!.^V& +ѧ\"a)F?E[- 6}ӧNNJ"1erƚp8ԩŵǏ1wa+\oQWW[Z*;,7wXUE@Ie%?$&-qINm53)IX⒓ +*p8˵eDEE12(97..f;)˗xuuic:I[[9KIIoFQwyZZwe*轘y.FDlԔ:fPOO~s4I pk˫&EG[MMx33aLfG߾zHnnIG<?^VU}|]%))~=aѢ \\NKI)"S? yy Uc+ yG::pp߇+#..籱9oԔOk&Ok׬65nyeBQtҤ#:w` ֭#S`XMMѤw kySj]vbny?/.=w.ee  88psR_LZ ɓ5xx`= MM+VLN.sgԩ󫢣Io`PlbjjW, ??Hvve}c5''[qpa[NN3FQԢhRXXʷo8NKK~}33HnnNDZK6n$t9>aJ\\Nۗ=q͛\iY:=Lѵ<@@К9sY#fCnno[޽UCuɓ?23Nzy3髪Sg٪]2AƏWk"JGה45eorIH?zżyOkM/VHJ R\"15:t{ccuA\SVul3Vibrʼn(ݭ{X2(UW7^I_exmͭᒕߗ`H􁍍޹sa'NسMn!!^s\pp?`mѣDDbb*ыBގ;xx*|}k=),,93LTT@-- c HXףG6ndѣ ΂ڴ7iֱ m7oF{{ᐵkq\w4޻J15dTv9kg,: ddΝ{Hug62dlM-Ǐ;mٰ/{4ù87n\ܤ i3A@ T70wYwqsk,cpo$Qg:Bi =}MCC9rT[QYYVBb9kk#ڃАys>w?:C`bbb%%'O*.[5@sJJJJ'67}IKbbꦦxK1RRCs;#fҥ#G{zu,̰l5/ IDATu1~>SEQQ…lɴ?{֯'\iqDOoߚ5SWœTw2f3҅~wwwWX1df*7xx8][o[Z(;Ο_2w>s),9qeH7cc1py[^^B$|FCh* ,:3ւC׮E;ft)[뫯o8y@X}mwZZN@%%quZYI(H,A/5bر ϟ'mb6{^aa͡C Ƞ(~~=vB\\3.88;ԢEoJJ+W\ic&ѷK"Ņ&MR=}@@bZ{rNjc҅saa)L>@XW\\ѣccs,,F_ࠩ^ԥV>Tg66:/G;fǶMOͭtwzMM9aSC~bϲʫݖd0~̮g!$Cϟ'n<لQk2x-TɌI[n@KK@M hh$f,ŭ[.^t`4VMHG m gφ)W6ik9 77bX**>eaZȑ?gцf]9 'bٲ/^l=ng*\i6f*۷\>>ѣ{/ggg8}# =th_mH22kך6?~~O~#))r+8 (6Gy::#z44Tno%%brIߵk֢E{2oEAȑ ޑ.&'Qrp,-LMXg.pl,0:&56YZ`STTs<1 FMMgY:OͭTVMEEFCԤ0 tfi9ïӂ!QQ۷]llotj|}ʊbxmH)??W"1eǓ'swnikvyuu#}5#G+*MMSj D FaڵS^9q"ֱ0[xxر X;xnr%(IIa//ŋ'LJJ]Hp HXu<1-TCNK*:;`P3{Ln%J{SHy8<&3AL'oǎٚi hbbavZJJB$24T13[ZW c7n߿ɞ=/7: DEe̙u#[pB ]6KNbyyU䕔,BOOQFf؛7l!2m-U4lf*v|rB#^^ {<^gqaLNN0JYDbŋG<,G=w{Y3X0P\\[ilu Xjnny3-_obǍuPF-.UQ:b dnnCp棉ĔM,{7RRV捧0`bm8Jr~~"<遬᩻vzm2c S&͈v@@К9sVRвԂ@bu,1ڸ}ooehjDL@/^$zy(*Yp-3Xwvv벉/?薩);<<ɉ-իf:wbk >7ҒcJy<=gXYiodiyj2ۭ1(!))lgghggHshҍx -ssM*H0YxDXǂ2خIt4дbkk5JJ,tӴ[99y~Daa w1Y)Fɞ8aobNLŁ[YQ3As2Ԕ })^^,59p8ƏWٝ_=):tmۂxA >`ČJ,e{ή()51afqq9G>ͱ}ႃ&S'YvvjuUT$iU#GBaF0eʨCBas珋&_?<| {TL9fB/tާ kNpvv':|8*u-#T⎎'Pr޿'yҥQQSS)@ JCQ:E2ٳ BXw?:zu%$=F$w56֜?>v_ɭxwWYXf~`WUFFCBM8XXESS̙g>\&ºhfdG߿xͭ4Hhz EA[kggu8];)QQTj1 @iK`,<JU**BC=+CӧL##!ef:D}}n*gӧWBB99PU(*++KYWYY=w؛m)q{|ee IIoX?1ziS'NKK`Կĕ&::Nlnn57,,ɓK"MMcXy 7ČIPݼA||ޣGF:(S[JREE5}4 ^BMPz Xh9YѳgAԳPOTN{?[UdBMلSXwg yvf9r$MMN4i '~z%Q 1'f!/__?@D%y)[9t~™knnMJ*\ĵWW~6= :mdիݼO+(Ȣw[iӭohTq+ I IDijOKml{99VY̙$aϞs  Tetؘ+˗VV6hh(aY`˗iV]y8@:"Fg2z4"# ($A:qHX >zoO6mÄ.46yt'#FY{zi L8^L۳'f..X"|ɗ:>oxѣ6m!5rii|c ԵQ̤_gLlu,A1c}/ֱ(>}Tm}!CFUl4fꫣG͡3N6hEִǏ^Lv5=wwkww[[}85/O:S1-Ғ,I s^?+W-Z"z++@nJϯE ?p˗i01kGCCiY r5p%o ^5p!%Sl3CmѷfEniaca8|D"Zیm)cPzƢyzzjs)j'ʄ]`2ۮ_ {XWbŸ4GN/76沵4BlkcWv 2WW+W: Q9`!!!ן=[& (^g۫y*DwVZI)(n4z͚G߹s̙CY,۷tzKxCaÌ> jՕǏv)^ZxA`t5O1VrXG I СCbc^\WEJVVY}}zz7%hāWN/qAHT?DʠAF/_Ĭ#g͟Ƀ03 H_3ǟ=$a"5ik㏹b^CC Fkkc%%%%{99i33mÄ$Lѣo?ܽ{&P|) q@߽~|.3rÆs=WJ6M >y!CzUV0cF^(+Q$˖Qa_#'Mc FJh F穏'8`ֿ4l<>>>Or_J?{ȑf6Y!PC01ﳎ{3~_jkLM`meeCDij3g^H={fΙ3LJo7@"BlmeT!l7@KI"";XVVbZNpݻg8wҥzܦM#$sNVV٘1Vݞab-AN=cH3/tt`Xa25 ;m`{]F+sZn45W_1Ukxv;B|j99}LH|'jjb 7$ $) ^}B:ѕYF LZΝ{uS\hGE$'ݥQ**t:8Hpp84;+Vpq#ap"KZF@]]…EgϾڹҏ[}#//fb6MB%m|{Æ mPj?Q!ČoΟt/Ǣeef LfaaWuPX*)ill$#B!T:$[یEii#u26LXNI3!x?p l|%/S~2242rsjjj!ѣ;w>?P9c@T>ywO g6Bbb),u ?+YY elLEJ wo 'uu%Ӈ\64͛LE W@ lr啙3÷lx  ,:s܊MnmxFFspJN]1k01ヶ6VP5իݱEef .B_J R4qW62:"QA3zi~#11#d yCnnEPgp[L|hNN&p"W@(?Wof\. 4/vYإ͛۷??T1sց`bOѣ`I j2YUKKE]]D$F쉉Y=:ʊuD%;yccR~~/ ǎyzqpjEE}pII,qʒؐ#V8S|mmUKml/8q3g,,$a -㤗/Ӄ]{FVI */",,vjIΝw9Rdw{2YMWWmH#=˗Ç%9;?xGRFFiW (@fmthmeGttyӣG֬V_b!od~ OzzLföl3nhcGGNN&]͙4i aBB'0p\uu#.,!Dpupw=ڒ@F3 rȈ㰎ED BILg2̪jjjͭͭ³XHjj0҃cO<0**.BFFyN=<N/ 6CttD*}߱#ʕx<]h'--Uu]SqӦkt$h3xoLV}{Ŷm/[vqJp+JMM۞B}+@ -_~ dal%{01Idw2[ tEȑW55:y^8S߿3 z^EEEACCNgc)9rd V$/KJj'Lf[LWAŋo .\]- 9矯Z~ڿ.qi߫i˫8?]dIю3] \r<ggg`gg8]vohbl>f֑B+-˖קs4l18X#1))5_eǏ?p\-++""9D"3sΜap)`X,WPĜrֈ3gs#bissOq8ЇQ{1c,vQSQK0Ѹsԅ_ Kkvv'N$h߿3w7kaX" 3r}kx76ڵW~'vǥK]58X1n (Ɉ26&Wx(6uuZ c!F#v{f[+..C>>>>>>d˩Sϯ\yIW'4 IDATWAII)>o55I$Brr/2ǏY[n~NgNs[zFCGS?N>p֭ixxtG\\OΝ{}Ƀ<L""YeeD< fNf1V|k+ ?46|} ;@Nz0J2@XikcedcVV:b/cTүFfg3NZˁDqqhme}Uٳ/eG4sw7ΊLn+ӧ)22RMM?|9..y4?`bk%%5OV}gI a`A"襤p+W) bqL_jme䔟?ӓ$%V[+;uD@NWwrrqQ@R_\]X]X]PUXUucc˪UdڬYmdb ^?xudXj/'ʊ6odA15~͛gM;z==u#KxGGcGGc@^^˗^n sswwst AǏC#oޤGDa&f{}"d #G޻WT={/Ϟ}lcWfƟ> &fϯlnn55TFUUEuu%:1z4aFYYNYYN_1WQrru,-uϝ{ʒ)|͟I\V摡SSS˛7O&߻%>߿3_kme{uzۇ22J&&\Lsr*?DWpA~c:H䤤$#BGZRfŗK.\H*$gDff _tqU^^޶m6m홼Cuy˝;wnݺuϞ=6l@\vmΜ9/AM622rqq #H| '(oѣlKKiӦ[NZZ ܬo܈//'a}WƖJV@YY&'Kzavp8\PҖ-WU5NxaOΎYOefݻ .TTT$%?8;k()c*-m"tude"QQJ󿣾O 5QpU6}>\ȮodD{{՝;wNʾ6;;ѱo=Ak׮^~M2@Ghjj޾}KRӏ92x_Coߺ:GGGmm}m˖-qqq?"u <m&,X{VV~Bg_~TZZ{\⽇y'RR8G? ]`4))\cc˽{JIr;ASgϾ442yѣX;q$AQWUZ( '\B3"w^ѣ(ZB_5%%ѣG@}}=@GGr=zѣ>cǎN %HOpdDL&3$$D[[[KK+$$dp8ܹs第H$޽{/_LRUUUlق^u=;;;yyycc˗/k\]],--_o cbbo}CCׯ_w| D}}߿믿444ߏuV1%%vw̐!Or[Z'`e HZ\fݨQQQh~~뛱?q}|6mr[@Qvv HTYĬG"#8G ,#y:JŒ'Ovss[fMii5k"##Μ9sݻwoٲ߿Ff̘1xnܸ]Zy=ooo3߿())A<|0NÓ'O>}uVǏݻqhڵ'000''g .lhhhw/t#lƌ}HfffYYY]vESSӎo;e_ b8rȓ'O<<Sp*!ISRRSU 3.ʬ[7o2m3gWcL̺wzf @!//}ߵv K]giiiv@ttׯ_8cǣv냃Tٶmе(Fg\23VEss+W~~܂#zzz4k֬O>8q=D"1##AAދbEEEUVV.Zۻ^mmmׯ_?tP[v{UAV@aa!ihs-%%~y7o^hh({| аo>;egq$h9{ nKKrJJȖzzoJIg/*t#au߮nTU5<}2kց g}vigծ o\PSS/l۶=-''[UUˮ[bŧOnݺw萐vQq[=n RTTTFZ1Q Zp+^{.\]RR.7ߙ斖YY٦m۶ꢣL|("`7nͥh^^^<< 4$H\׮{ÎGz~su;r%%5X"T}a;vRYYyO>E;]:uݻgoog gYZZ={\tBl޼:;uTԱ-AطJzz ̾]ޓ_A駒mm=o߾3fhoذ?~ӧOonccCѾ~:lذή;ydqqٳg8s]|$1 r6t׮]8RSSutt> Huubyyy׉Ç8.k[Nbq̙UUU'?Ӌe0qqq\I&޺u P^^ᑞ{SS۷s=&f{ƌFƏ?}w01z3\D&(hHX`2یoL]KESVVywii-ֱO{NҺ}vQQQLL~׉Ymm… Ъeeevs̩=s `֬YNBN\[uS/oԱLz-,,v-mm]_*}}};;;eqq1:..hXXXܾ}dWUVVyfttt}||y̙3nڵkaÆmٲFo8q-ݮvVVրjmm͵)v:KKKvioNFF)/ P$^cl+.QP%,p&&}/ZZe,x]]ڦO76j=/]*\N]4ի-v{ &fͭHI)0Yu :@G|U\Kisc-o;򢢢+W8pe۶m˖-kWcԨQuuu_붺 sEp8'^G\gqVmߩWt0g^vĚ4>cDdcOd2:w6 @]]]SSsҥ Z:gvYŎW!ruYYYKKhL03]va2FRVVF:Bnw Gx͛7%dϟ?5fJ[[[ongg@P֯_YTH5fDu[[ÇMLLTUUI$39_m9sȈH$XEs?444NEE=˴O:~1۷o >}:e}}}owܝ9гbW?;{,x q1a¡[lm7>\7^ΠP7l:s%44J*++;99k컮x! 'N̙3G]]]S:;uTrrro_XP]ݠ޽/4åݻw˗so޼iooU\{}!YXXӮK.^|×K3ΏruV&f]Bp0>֦O?n !ܨj`X"@abUJjha , /_F2:H h4ߧO߿e˖ŋcK,-w*9xPgp8?~d2CBBBBBL&:ɓ'.\@'"N:uڵ%h /okk;p9@9r5Gٳh --+W677s=( %%"be%KF!*).SS 8'9tQd;cޑ:EڠAFjjX ĺuN`0.\lٲnRQQx׃(5_n(bvv?/(fffYYYÇ>TWW/X`֭ΰ/jhh͙3gݺuaaa8Ç\/:xɓ'%Kp?1cҥKу'N~eey:DODe}j! fJJ̴< FܹË@ ٺkÒ N, #,,FTF+jht'?nT-5A555u{gb444())#2{lt@d< IDATwͦcH+=X ٳ/~ν=K!WWV vZ"|Crr!ֱa\{pČ̲*WW.aAPYdYX5 Sb!011A_IUU}n>EE)Sܼy޽{?򖖖f#i}7kQ@"!3S%QfeTܱpaaOә5$ {pg)*hu $$%22R;_\ +A'_v!9sܼyݻC a'K/P(=Fvcl˫4@ @%!SSTBFF 7L̸2"- 9HK+61ђKkT* @WXXŋiӦtv%6QUUm۶ vf֭虒[bb>N@ ]fbBνp8NtC]]ҥ%yyV]AA"\'5_**c#F WVV#{] AƎ;p}uֈOqq̙3;^ljjfXdI[ϛ7m„ ^^^7n⠘%@CSS@ },)A7 1 ~~1م};|ֱ@P7JJj* s! V)RNXNOs ¹sΝ;>pԩSNu}9 88888]t| XhZ׃bFˇ!bB! T*ɓN89l>u˖vvnnXAY{tii<_k3?{SP?ş\|ؒ_ɯMP 1;NeV0 ( @p8 EShw46&= A}C}0ׂ_]+4[@`Y{_ZXxoJSSƆv@Pii%,ؘn~(A(: +;RZUT335Ϙ5<0AG1'7+&-XAAАσaJKKɓ=9(~-ptzPXl 񗜜.:z3gz@0+X [!{ IssmfPT*~$JT t:C?ZZee9XV#"?zt c .`b?rs+jk`dHw#A(+LVBvbP`|A5|Æ wGwŀ AHK㭭{kTssGHyXGYYelwZ/cca'f$`Kp/d|XA&f#5J%` IMMcii GFFDQKDW@B3-'A*UET(8x f6*!@ ڹ(+STQio屝w999uqBmmSyy=L ^㌌0H`$"w̙C~HK+6m0Q@𤦖 Jzߛ[/_@DWWiMCDRZ~}g~FjjBT}b<Ҫ- Dbf]prr2 ,w@nn;KFFͭ F6,((cX.YqA HD?--yyffp Ŗ,5x:O77*+YY麺ZX6l1NV$`DAFF""VZt{o>_B޼Ɉ|Xs9oD3de2$+ 5_yy01M߽Z⯻wWIK=`bV6ց@𤦖b#J%~,-!rii-h>TU5HK㍍}|ff|/^Οedä>x<ټ޽ċFiϚ;HT׍*ե` JCڪyyT]rH81`xUܱ`b!+!%~%PZZ@AL{544'%X*F4kxh(F֭^=LMw゚Zle%hUUhO0z̙CǏw^^#$h˫7}xz~~o-iLL֭g}VVA2-'Uee5UU S9Ҵ׶4,![hkx{4t(E]]IaVCϷPz2]\36;;;;'޻ڵܹI$B-(46M @3F^L̄aRدVFFF p VBHM-iH-- _|D98P-rvt462¦{$^._~;}55F0}:}ٲтKPe}}}}W?}šC'N0os*G{8b0ꛚZ0Yc04.֒Dž<}y`8Á$LSTrJjjASosz+\;j٫W^| [** ,\I /D&?ex J ײ2XZF44CC01hifާ26%&gh>VTԳmy eƗ0mW?D։99DE%46(*=68wwwwKބ?=r$wҥ*N0)?ÚCrO w:H쇲Z1$GZZ1Îꍍ-߾ed"ȏZ?<ʹT,"i^X\LLbee_?G2c2>~bB!n:%(?>$րz~~N{3e $L01V$Gk+++̙-[6jkkB)GNڦ;w>mwXBuB!.Z|S_ٗf9K$Vqq5@G\OO NeJP׭[Ν{/c 01C#K78ΥbP8Jjjj)+rZ<9s(H23M6oޱc 'O>z3\Fjuu%NLVklliTU岻$PD…ǎ=7o8CBJKkG RsЉj66z))|ll5YcYT*]3A@ҥ7>>|)\$i˫PUUTQQG$`Ԩ'\n1BSRRM&cPTTL˸Kޞ:bݺXI PY@$©TLJ obegaD;;Addv[^^gc+xTrrNN0pÏFH L~,ukLf[JJQ|޹sֱ@&fd1mJJ01@][ZZUT-,66M4ȈHfXJJرV]/T* VOSNWdF|<]b~)ٓ'< 7:8nzoՌiuLVCː@Ym;2۽ 3hhh()IH,hF)++]*vϗ1u1PħOSs/rk"1m:8P|lPWv]䰰^^ܬ< $$4%%5Յ16o9r˖X01f"1DE]" !}Q^*^*ַƓ BK("w--7n8ǀ+kkca:V^^_WȨ8܏,6ۡCǏ?>R1CPU!)PGGUCC/uJ%56ik=Ν55MsobZC[P4{x>?kÇg̘}f9y ĻZ&f(mmsB͟?Ǘ/ u,P?3`ba$7Mø.7P(U@tL…'&dx%ftzto;8c@LL=1QQ !!a7q`DH$@"N~x9C1K,9ӓ (S>|8_|cT $$FqQ[n`ѷ hi//K9y1˖vob FHF&Z?_ܾaΜXg01G \*Yee헊 װ5;L#f8Ȉ+ٳ/uhz;A,rr*С>Zea""٥KoׯåTe$AzC:}g/5$80122RBCRb,֏b珰3ptb65%jT*V痪ϻvMP?u)'ސvV駑'N<[FDij͛ܬyo&NKK$^ki L̰lcy,@S`2a8hͭ%<(spQX\$//uYpRIϟ ؕ+dM" 2JHO2H@AS+m4illmAx`ԑH)D"efس$Jr=L 4sKՍ22RT*QK&)ʊ,b&,r;__G~HQQZ7>^S~駑w==nUCx`ԉBIF 31w**55E"opi+Ʌh2O˫i:8P׮fX%'Z[ Jjhhf0i9P=y_?Bwqt4~.S)<[ #a?kn[5HiiGcD2QuLLJ8hz|Og/SVuv6 ;|mBSXX]S(̒(UbaBuSe}X_H::^i 5c={b;ns4CÞni TV6S$9sGF1g ֱ@L?;d/ #̄%2FŽZWk[mmuWZ:q/WElA=dY?R2ɹ/'Ha**)`ٕumۛPFJJ!FstTvaFѬ R%K1\ND7..WE 28EnLee]AA%w̧ }Ex\6F;Yib!J$R#Ǝu?|w]v-?S(PUUqVh65,Y_&Mr ߱c&{@gϲ$ BH, <`8![LLt K*3II!gg\KYkauu5|*f^45xYF_߾֝7nWǝaQYYO%0UU8 &NtݳVLLjȓx]xȳg#>߈)heXbb炤6[hIt/^䛘ꩫ25]7o&3WzxXQGVVE/l600B._\]-qR9UUD,*+ML0# S{{77/B*bDW6lnX"JJQQYbk IDATZZj}_|eަ3̋}.Ch4h3'NDhiMq=<%JI (Ż &bp>'r(_觯LUU D`.d;qLʕg: RTg=Ř7o@@Pzsxx\TYuuCBB^TTVbb~llNyymV)S ໸XVT0u;<G ¬{D"ɉO)wwPuܽzUgex]ٳ]AӖ-6vڵg&OiqW3%777,CKK>///kuuӧ0r҅ebbBbL2x ݻAbyBXj7WWK//^^zJ^,H18'O>nj?,>>o֬~]9+*\yZZ:S"orn/BFzWwהfNjȜ7o,:T0C}uζ|*J`ٺ[e˼{KU,11/*J,*jp`*4IIzz8jjj.(y$ɏqpwLH5df"\!h4…Sc[~7P?BzzUUPvN@T06c˖KMOՙp\`[B8(?$!&¬1!!ݭb7O0l~(ߋ}1 . 617=HT-^LB[{{{8pg?쇫*]>B@А!v{)Ռ@>T0SWg͚u3P`Gr"Hd∌|q9BE][\]-?dd|*F/^M.W_1>$PWtB"l|Y*b7NzI=?7j#PT[ۨ;ſj3`GDd@a`'"BRt„5~{X֪*C"8""ԩbHj4+ww+ݨBqzzgNY[B.:>Z(ϝc''.HJʧjatVzzZ߹a lٰmۦX ܡQ(K45pMMF)@[,ˋ5 YE@a,{6MK+И1ND"=}:o45RH$mmۮb'#]]-L} b?dx<@P;98dL/qL[[㤤SطzUqhik_}1:Zpb;E7#45ٸ&w 77SpAxP^^<h ƏW"H?W\w͘3ަPYRR|>e%))EXb\;BHRRҜ3D"\"! &)@;1, @w0{1Ţ+|Rѽ{`F v))Ee-X,Fbb}HJ*njix<#1~ gg/mmCB3U':|1kƝɉ+32Jp񯥌EEE"ܹs`TVh`0Pi~=7W*"TJX,X,iX,Q~B3/^PLIJJ! "hDD_54 yy幹99,22J/C髩16@ P|EلinT0z4z#efvp tYk66FׯY>/vx>P 1է˗P /~@|,@/2JHSSc:8_917o&,X@QbgG !vȢ~멩?4_KX73thnlRwRsr2{( w @*11Ŝ8'xИ#ǻjyR5 3o0{F䓑EF>ׂJ܉HICpA45RT6뚦& 0s]]pGSZZqTT֒%޸yvvηn(-^a&3x;i44~WI}}3eK+1qzR w@ ,233i4Zt 77wҥ]yw}Gvrٳo)[xqii_kuuunnn:::E"xFՉDBd3;M_\\,R)vS%c\˗?ߟGϟ;i7kh1 .W!TTw@ ,7mg]re-pI6cTzY++L6(""!T7gggPDDDQQQ~~~@@@uu7oٳoQjjjݻwl޼ԩScǎXV($HƊ:Aҥ%K*mn0HI)D22J44ff(>|̚5n, :& !b1BpN1X"1r>SݹsJ$rg,/^HIIsرcBZ'ɮ9rȑogߢv}FFF !0~x+Ve@F ylBu8ʨѦ\hY{{tJֈh46/.:xp!B$ vy0tHα;:fb 3f@.ڵk敕3g888I$:99 <8,,FuNƍ\.8)++hyAPH( BF;~Ѯ]N8n*{]]]mllN8f,٧gϞ1bcI.h|IHHȻrD۷[YY-^X6[Wwɓ'm&dO<)%44*<<_ ļ}-d ܀fj6RF̞OWWwv88fdN!O.|008VUCh"$Jb1fÌn\:uڵkKJJ֮]{I--cǎ}w}zz֭[/^Mjjjf͚陑o߾͛76h]~}ʔ)*.Attthhm&~޽]vm޼ƍ{ݱcGyyy]]ݜ9sVZ˖-k3lBfAaջrO/^ KOO߹swxwL͛7mn*xAAA=y%$j#BNYYm4(Hl ۫W?˫6 Z5vD,,$HK Ճ3 =?7O?0`B_~ٳgό3\ĉۭ:ZSSSKHH_\%B !2iҤpAKK˾}޽۲:::𫯾ёulnnH$K.͒+***//o֬Y3g&'''%%;ANYڷo_!Cw}:F[޽{ԨQZZxL└"Bu`Ƭ!C윜wo ljUj88޸ɤO3.D]@0cF`Z S*O}}?899O?]j=]lvzzW``bmmP(40l.+8vX@ bXm>FEFFZXX1t:XgϞDFyyy!z0iakk999?urr1cwh;B__4>>xٗrttWfzpٿT$Zd:R@VkXR3f2&&z.9f6%1fYp;x𠏏eWZΝ{a۷ovD!JRieelccI$WTT,_|ʔ)?c֭[,vT*=rH9̲e_߱=vex@u$$ikg3f zh;;qzY͘ɤjKdg|2dݻw!4 4 v}w @#H-[矟9s޽{ׯ_G-[իŷoꫯ:ISSSss3nhhؾ};BիӦMk񲦈3gn޼9'''11СChƍxbuuuss3l=Ǐ_~ ddd=FiiiqqqAAÇg̘!֭[-ڲeKRRRRRիsrr:MZ߱ضmׯnjs파˗/8ܼeV@Ν:w @D_ߴik)Hml6?o֬~7yO-vG>8z~|a?L~}'U7 ݷo޼ypg!??USwijǍ#gUvD?|ٽ]*MEr@yIIB3ft::#PRRAll֭Sq\ަ_TVkS(;Ll4Q[[mݺuuM˖ ?a)#A(<==MkkCAgccKBwot!Q2` ,%#D,RV#nLӗ,!IzJ#H /9PHafgg+11ՂF#+ -kf:aZ33ӗ5f${aZf3|u+/1-[.jh`M#a? +"׽@.7_.Vx<ŋKKn;33=ζ{>@q]]Qde٩S,}L/AFٙPGZZ1z5kn|j,)""(??? ͛7]yM⨭mJO/ll߼DzDܹ45ٸt)2KM-uڸqʕ#ݻF @T56669ή]∏ϕHVt̿?%7ɴH +[L+V*LYk4O> }* MLLBlahhU``l![΀njj200{:88 :ٳgƸs玝?^x޽{MMM^T.WTww0`xcÆ9wP8EEoH}jmmSa޽%ch4?̞<bbqB !doo+ѡ߶m<<:i/^m9~v/۷o[lٸqcnݺ|岋qoݺ2SE$66B ҲΘeg=xt7 I$Ҽ Az.5P*ŒYt?y{;|1U~ąYk۷ݻo߾-{QFiiuΔ)SˣBgΜLfO?z={f̘r'N({ۆ tttO]ܷowy. yD^(cccG=r}|=ֆ4kZZjI?zt1o`oee 9fkchjjN6… }~z\\ܻrյ fff!:_}\@ *KJ<<=c89S`( ѲCcIDKKHiiŎNꬠSx/^\A5@^${YB*9rdҤIO9NFFT*J,ϟ…k׮yyyKo?%$$<+9UvȐ}.uEa0议t%~]S_q ('kiiE{:.Kԩ*>O8LYiiiqqqAAÇg̘!Z:y̜9s999zMƍWYY}e˖\||򉿿իWo߾ݲiرcUUU\fMffϿ vpEup0R|Qee]Uu :՝'^NA珮8ǎ-}(mǎ븳02d˵XhvLLL˒;vxxx=m ͞3gNQQٳ[.UVoذo=}}Q[L8w\@CF5;d'&-YB- ɻǬw28槟Ó'G=fVsǏ\kyJBoB6lذaCǙ˗/_Mv/ wbŋs9K^,C (sw'z9 wq1'E.>(/B(X Y-9!Kg4-[.:8 `;PfJM-ovw'~naKq׆$,_>w8b$? p!uƏǁ%%,cPɓʕ+rRsp0Kll8]'O>UWgOC7BegɅgtڡCtu5>(H(<=z+P77KaTgX,9u꩟ RwUK+;/_@acjǏ/OK+曫5sY >:KI.(x7ws8c(Jzxy/FQ[۔D%xCɎ7o& DKJb ]O\\W5͑#aQ0;}:}ľ}-RR ڥҲٳ >>{>}d9Qr)c``ر]_AM"ff"w.IL̳6ʬ ׬{`hII5,@V/.܃&˗ւF͙M{Ξ}hsuuM PT*%:F>CiiϞeQ퇌B,\9@s[YQ0;y5Wsmm4ccsm&&ˏ]8f % (#-_?Θqʨ1<w01e0*`©17mx쳤Y\57 ]'e!fLfM..ٸ\m-L.d;9u c~NuV36]|0;BX GYiiMII̘)̙^~{w %*fO?n4clZ93f-u[z7njq2G$-f2ҲIjgR)=? df_TD,!!F@a 4m۶aa\D"ѣa41M<<:9)S<~ũz%9; X,eHҠ'fy΢@ff1KL̳ꥯ?d [_߾}wM"$Cʏ?>7Jyr / \qȑ$gPQQ]Fƣ[(1?<<#3D\=Rfpm29#ƍAd([9rd7>714Զ2TjƎu~`رKre=.@yzZ^|ef %.22)/ŝs}:F54_J0i@Ԥ>I36<?|w  f yOdZ%2P~7oKrgSVd P(NL#3OrAދP(>{…CX,, ׫Brmmtu5pQE_~9.66'<z @WQ0;t(|Pb%Q6]2TNpz"Qدweee`гȽڵ:?A(6BЅYllٷ_L@Q0)u_\W&a-@::{̽xqUFFȑ{N|;&*J`h-n"5Y|7f 8ԴGt0 63TYf'/^@'=#ʌYAlCC.W-'|5hކ'w䂘Uh!d҉|g㱃)e::E5ċQ 1xy_xf:DUa+=0/߅w+JO|:o@uY3fMM/ 3"XhHJJaLL @tyI'߇ 60R II)nPHMe۷4СP(3YLj&kS҅ lD1KJ <=]\OI3E >l|˗͛k׭gϭ3~%+])j 괚`ffd 6̡woSA3fqqֆ;w["A(R;hWss@ _X,ƪUcn^({PX, Sd+uuhf-]*][#Y\\Jb!ɓjj>L YBB^llΊ:')dBB֮_?~ӧw" 7Ϟec;<61q^++j(::ˋ;uHH @hT(~큋y|mVuBG;&.:%cuDFfQ,dgL76 ϞZx(Ieh% xDUIIU^^ŀe۷B1 @\1QRRe- e2$4qt^f߽{o\;x/EEors˩C甔Tc+^Bf%`0ВPLqi|V3;0 z1uRss 'ea:{`ĉv\ӧX,::UAAOLq72mm5g̢vzqV7njFx'rf͢S~P556̞x V9+ ౯/^Nzٳ,WWK 6 rF119 yCFV0(zq;IIC\]]]M… 9TmCWv鴅 n40М4Ν71DF4jBl6#KpggsU0!+jkU56 ŒpF]YYe! @P.̂Ljbkjɻ5kk?فι?N635:Ȑc~EEݍ˗'6f36c+aƌzi1( / ccs/Y,FGҕ6Bh3Ggԟa,"#_h|Nv6 2:TM5mwzM DG LL,,u%16x]DD& @P$. RD8oee 9rwd+܉@'=LWWw񌲲>c&KN|`@m.u-e8o[P!vOfRw(Y ڦ+Wb/Jє91NUUqq9TdSgo2=ƍ~XeeQMT`&s^n_ qܻ2?Ri[L[[PT*Ɇ f5t]mmv0p!Z$̞OۛxS<XX=ɑ#oH3fO&Rt&'KcOI)3ϑJ99g>j m)cf늊~xۛ63hY SNGr }qcMNNfs޸\]_/"%K56 TeRv( ǡiD!>~dvoMS]_O,&&[Cl;hF4s @D,̞?$',ZgѨQNɅUXFWǗ=8$$q̘}wU*Eb4+/Ψ6KIK]@3fOb^^ָj|Y; g&=ǧOMM*l_?"jʏ3<SRBĎϞeBۏ44ę1|n 3x ⸸y0#23poF{)?1(CB•J3o$Jsrqi+ w!Ԍ>}RR0HV=Ҳ،;bUVkhB,݃R}\GSE99CP0u'6[a uuA2վzU )8:rKp!Sa&I._7oNd&SƊwݾn֩&TCXTt_K ?NWSc55:+""SuF1u+fBlt%?N"#_;YaVX w f5aa)wLvأ{{$??ڵX,-*r30cֹO8p().:dxfaD\B(_Qeg͘;H[&%'#*DicDD_[tR̲eÈ L:BH,_TbjWR 9 c t`^nބI3@u*S]ebǹsQ"dΜ~߅Ռeeii:VWׄ; 9 +WbO &>n f@3 (!ŒىgӃ5rc2!<`0h\sJzzL­c:=.. 333e'Arss.]ڕG?X!6gΜR[h ]CکR:>%KAd !$1{8N0# VCf/$(.]8nno&&/F7mg]re-p8 HX/\ֳo,}:r!sv\`_)1po ]!%0X;H spODwJ WW?+΁-6з?hjjJII>=X*Κ5ݧ8::>{,sllT*mnnnqFFFEEڷo_eeD"ŭǒAm7@;ݨ'&&U޽/]${˗/[>nT*eo}+TlggŎ*ej3w&wXx1r]aa%I޽d.˺&,K$wmz IDAT}\~;E;>8;q_^;ha=!YTTVIIntn֬~ w$)qrr~*WNV[t___//@ZPh``\.FhcǎZbXm>FEFFZXX1t:]c^cŊwosA;馜{899͘1/ !D?H;(/2m{[1? ׷/et{KJJaj tahkkloo;H8#z+h5c^^}||֯_/bnn0w\Ç.޾}׷'r8|T*-tt,Dr˗O2]c􀀀'OﭯD"PAAAuu233Ζ}֓M!eۻ.˃jid  䂘%KGX2>~jet@[I[MfA5D"Yl~̙{]~!l2W߾}&MMMl6aWN6>9s͛srr}}}:i`6nܸ/VWW777X,MMۿS}}}ПY]]/t:\.F]hі-[V^#~رXfMffϿ vpQ.$#G\?|>';CLUvD>L6Av@v}SXf$ҴD?ES}r|o{M69rdʕ6lXzڵk={t|}}9::x3reرCGGcnnnw4zPPЦM`X-V\#رcK,t]yqƍ?ʪ[Gtgĉ7o\$%嗕Վ?dx%0+/;HO0E:Ќ; Fr?e1묜ᨡYaômT?D&AE\ illr%w@VAiNN9Gxʦ&jnG-Y2W+ C*:FC,4d}+P{ǡRut=p JR)TlFw562Xz5h뉒cA% ܌)d.2TbM76 w1~~uuݻ֯r; VSPZ35[jLx׷o>w@@͛woyf(1ڵeˆ)n oRYXX*F>ݡw!VaVRR^B^[,cRSVW7"G9q"b9.5~1j!jw3bc\__sۿ<[$ܽ` h:vt$ 﫾/̛wɉW  zjjFΘf3ǎu?߾aÄy kJuuPq+RK$ғ';ř}A]E(EVTTTRZVWr޴l$D ىk}7}ݮd}fY/i3IٴiJ1!fD")! 50!*̒K'$~~.;y&DL]FFeW2/]yheXaw`KKO?A!::o֬LpF b$}[PSӶuj z{i1+}f>,\t 8eeAbpp +rr" n[88''uϘKMMy{8}:TW7d8ܕ+n)(P 4fN65UST଀[߾"++<}@+ceeKMMSfB+Wjݻp'X 8_Saػ8-2 ;;|ξt;RRzir_cm`USL?*+[w>2iafEG+f>pss"f..Krsk>}*C:DīWc/&,݉-[ q_;"[F@gÈׄ7kk .XX\Kԅ >ˋUU_y{'KI .Y,' O2jl,,0KN.7O`1g{ Ho߹me`]E*q߂\TUqgN00PX]83Q^^I3f-[6Qhe%<[S֮Ձe4VG}?W `ntQefVP(l11~++;wmEH$]پ̨**8DbP ./(h˶yynmlq3̉5cË|wd2kɨ&qꬬs{$$Nt߽lqTTb'O45aOŲjkۤ:ELL^[. 0* ulRQђ1X&&0L \,b̰X1Uw=uCC]}.9+&//J jk'136tɇWmm0Ux2gb >>Nt¬^AAPS02Ry Oز偙FTAj 3 ܍/xl1pMHp I[u?nZo_Iץ>>W;T]F{K:.̾|j?l4!I'O>zS]A|웆fKh?V;޹u%pe>ZZzB;׮㷷?GOO._st|d`p+|'//ZY9f/_洶vobHHo˗FF*&*,̺jkYy Ba=ׯ^vғeTV9>X,~P&슅u/mm>)*Mv;yrMIIA*EbMխQ0JLj*t¬L&\rLṕ-VV7;:(žDDQ(묘]#++~\xUR?z"%ZZ/+**{j 陜ȤΘ}-=YMMA* ˖ͦ@,[88f`6ao?A¤QzBB!?eЏݻM-,L&;Y]LhzDE`g\**8DP8(?o[{}֬a\F9X]ZYRQRYy>A *-Hy?xn s! 6Q/Odd…* ¬Ғ Rƒ cf$ĉ;w2\ƟUYe͛[ݵžf5aaOJ̵1G0؂ Fÿ SʈDHz, '}Pbc .1MY*G[{z.\XG!wGNN$6rsD"ȑg>߿4UAbbئ&&?cvf[RRp>N16Vs'^O7;!!CH* 849h4JWWvd21O _Btu^3p(/o&T*޼'I`#+(lGI?OܽŋqbW$%;NAE--=] |d<<33sg+ѣ::8V>\))A^-G^F"H$r{{AYFII#J'##-R@aBQ~RR)۱m09$0pϢEjHţ /}XN ?ɶfSzc,23n\v-rWJKʚ!Q+[<%=ˎQFm[tLjc1"HL,ARCf-XFo*/{{C4ig6nWPPo\QAH bo?!pNN޾=|' Kǝ;/]zի\f۹sѨW͞oa6j`.ueVZ IDATz*c1jG"/J¬,ikk{APggߦMwZΚ5tT!))APCsfѹMM] 29jjO8SBBPII#8ԕ4 wzrF,U7@8`>8VX=o7`c>x@[IWiiEEe PcpsMύkI}}gttnSSuZZz]%E-<<<zٳϦj rrλDž /Z) Nggǐd2|J>kr,~ F D" Z^^vQc㉥jjޛ+ , pM͏dd-uvMwppL/!J %(ȳeGݬt.`i1$$}jj_߾Q޳ǔsll/B~Ɏ #,rS)k*-m$hjJIfc0Y#8WzDE(V#XMRR)2xFTJ([33 #!!3]yٲk˹MCC$- àhgKJ R# +˫`SR+cXXl^^ LD4DklR,())ȔYddL~~. A޿`b6lgiAw0 ʼٳ={9BtihHz{tֶ\IKڐ)̈DRGGX1!ݧN/kG:-HH0+7eut%&SԌ@ xҁ. `n~24 HL_L!hԣGۙ)=ϯ&\=KeA`)DM~۶eeM{o7z{'#jkǿ/ddTDCC%PKXXƘ=d2ΝwvydCJߠ9sd|gg?A(U;33peU/_$6""R8` 4+ki fx󓼼g ڶmݻ/c"]]]]Ԥ!%L^^t qYYYNHw/Hg5L&GGwqbmb.vOff@z,]RtL \kr[mkj:;45a.rsk~mvm#cA0 4 I qpXxېώ v d CT]y!FcZ.;yd`` ]'h.ʡ/ x!ϾXG }qӿBssr=xPS1uM)uh4 <2Eutd(0/d   n D"<46? [am -0 aŒL&m0w"&666NCPaϯSPwD"GFfPƅA^^N7&L&8eXv6jH6d篮nE:l{{AK@|\1wL}0a-)(0!I995zz+(p+89~xztfҟvsv6MN.)(e0ړfŒ"TTT=oa? /lh+f'O>;~bycJIϜӿ|ATC$$$'iii$4=b@ **B ~LJJ1̺uZZZ޾}koo?A(Dʵ㾄aUUU***544Z,'AÃS =7'ST`d zqM KJ FWīZx"A` "{aVSSs֭K=z3f ?`mmm?y'cbb,,,~(emL&Sv ;D ikk۹s5kھH$]~9BY<`D)Aσ'2`0_͘1cܗ0LJJqvv[GIAYׂ RnM ;'C 7Oʚ>F(̨@ Ɔsg417%''q\芢Oekya,2I$Ҏ;8ۨ(vq񈈈_~eA888Ϟ= APwwwDD娏|nݺ'OVUUZXXܾ}{(jٲe]]]CCC<<<ϕdoo?7o.))0cccp[NpK`ggsuu__֭[O>cN:uj˖-O^^^cOP?$\ٳtee9sd`8]3d;8M$hpdQP,X(̨#2+k4BQ;wüCQ(Ti)3f$uup xΝf777!!w޽رc?|) ((x5{{{uuuyyM6"//odd$))Iϯdɒ9s wی3_`+00L\\|)JJJc\hF%յ~qnݺ%%%lٲe˖ʭG MCCo~55mL٦`)? i5g0.n::55]aFYZ0=PС:۫'+]6.FyIIHiy`L)~NMM-/-mYWW?A#++t(+;@a'?X?Ca.VBc<<22_0,~~.]]"}Yl6\Ξ=c֬I\ 0+~~n4A_YVV$''?x))ZS+!H^^T^^ br0?P#rv#==9Zλs"11yV͡#//VXXAWٱqCC#/////OP _ofwX+MuѣPggߛ7/^a0hcc ZXh2YX,7\Rű&&j03N񯄄ŋ~aj3` /=8s9cL b˖;}66$]:ksGEe# }Ϟ];#ŇԾN@F);ܥK6x45]]cc x"UgGDHH5<Hg>e}=H j-(ff6 &Ç3/\XGM;p`ivvujj9mmjS|HPMɓjk6na & !!^ ϟ;fQUhΜ3 rʪ.-m hIIuu2?TTp7" (<85ꦾyw Z;:2ZW72`sde!ErhmC:T {8O[;峕OD0TUq<<̴B322 No]]c,&,ee\i)deE3KL%>mӦyVV7ThHo$nn;;xJ VVLffV!z䃊 n\yTcc8?):PMbbNNBMBC?76v" zl霜R;' L&9;xIuPRV1I=j|*> .MSK׮UQ|رØR׬QUTtv! GDžScc8P(̦(#222߬`Z6M66BB<%!2LbAЂ*""|ȸ>|M8~PVomioR)Th?9bl痲hџ tNo>Ư_rrjZ|< !!(( B_` AafSA"ݟ/\TϏ88||>tu ڲ_6 66ڵ:ix܈frsk.\:vlJ}.3NuFoU…P*V3v¼ INNpԔ~+RI6̥Eݦ.@afSW{=?Fpt\H"SmmY) 5obuuoHZpp:AOܿOZZJYW]:4D%gݿq-Aǎ Wh}}CԘ4-g-E/EBB`buڅߊh9ippZYYӱc+h9TW#Z$ n|h$))t͜)p;H.==yvv c];.z6?^߿9-:**D"y.bml}|rr_dAѣwxҥ3lmu@ ={yX'88Hv-4tʪ@a,9 i}{,F:X\\ ͡)Tl,LЅs,?)*c0ho8< -;sV θOB$89yc7n;n;yp 07 q㼠~ Cjkde "I%VoSS3n|t?_'$o'&88M--==]f ffVr޿,,,,S' &T!ںuAttncc'AQ\pc,̑wd%%F&*q'6n4x_b.\xq۫W,,4MB$汳c`z**KgݸK_~yfa@oTW `H@a6!>>ڲHu$%e)2Y֮ LC:(Ϟ-w/{z`I=jéx7QQ&&MM/]S^ AL>{6޽7ݻo:6mm?ps[SCfW47w:*O 55m22& Pm d1..Rzef<ڞ߮KKlDYh蒒FO袮 )3NBtxccU_ߏFF\\wݻlmi2_…*0އ uB +({0}^x3&%%,@a6OSVtٴi HDLu [44t{Wt޽s笨tPSTOH F(zxXgf AP~~-@u+=46vn2arʦ\`o`?KJ): @a6q{?|lmA:pX55"L^^tB??j7t`THIU3N޽o:]hiI_w}ss7,|R4vuUg_]YrOiUQ P#.Kmm;~޶m77ǣGIH:SSH߶m ޽+d,7S"eeqVk8,Zj`xm^N99˗_Fڦ~;LN`zw'$=֭3g,nmyy3@P#$$PIQcNGwu#eLLԋڑ3 3?fybc >j_窬,Θѷiӽg|}n;D.^|WHHv_\Yٲq#hL;;Uۤ'O>L.Zu+ZR҈F'fc|zH;P(X{CJ3ۢ޶mӧB]mmǏYMTTpL-f:׬:sԨbThyy7oCtX比 m_LTU%`Ks4?>~C:;x=cmb()iaL(K$VB:s9:.?AZd7O)w3nbH&CL7_B0̹sV4KYYL&cfeeMkzrpEF.nn5k}|rs_l =v7o @Z6{?i7fJK>F`)0Kxx 0pqYtPU1CC ff6{D>t詔*ZΫ"Q\҅Ycc]))p-TJH89-pMKs?rdyUU'?|(-/ofֵ7O%7b}|&wR-Gvv Q[YY~Hv@aSƪ<<0'y|OϷ hhSf99- 0^iOc몪ZHWlyr>B -5eqjjMp57m8ĉ=.^<ut\xFt:\!D F"~(jϟg2]mNp/Ԫ8"T^Lw\Dvv4V yy9?}5> .MSK׮ŀ˾;gm½{aeeM>{.Y6*)(ՀltIؿ 'z{3ޥX,ʯ^"*uq8,,}vw1,Lok62j3PS8z11GUR-RUTb B?os碽{}?;E/_q|&YNBB@X (FQ.izc1//ǝ;qH+޼)H;ħO?!dB LMՑMhbț!&˗oNRPO~ZRk`37i;Bt镎YKKO? ]aG`7{ׯikX[43lSryymߺuG;hAa,f# BE۶-<="dr45B-wte dҒKcuϚ%%q664+fʪ: Fx길/uu#~L<\ ر -~V+88}:S̡իܙ3hŗҘo: P[34D`ŒsӧIڊ11yD" T1cкuzo ?f͜j*6YY18HZZ2/HEQX,SNKl :z4PS}nw/$"D ~zX./hk뵷 ,_  Z6\cUB @a6RA7,K^^ ԵqswcSJJbX,7A5PT\ܨ2Jg&^gƺIQQLEeAE^^t:_hQ|?Y&+fCwe!?EDwԛBXwÈ3G.jvE$.\L$OwGOO]clgXXƈEVV58` f#42aA Lnxx&oa:thYmm[D, XX}Hg\YYSߏwrZD R@@M14NJJiQD0?@ nt88\D"8sӧLΎ9|xǏML|jfv96SF&srj@a f#4NA h4m9YYHgބ"Po迮u+E*++1#Hzqg&km?&gbI$Hϗ^0s"s>ܮ)HH\l{LVVkӦ{U 9-}s X({SEE 4|wq1}̴%-SZE$HD%Th_$""dK٢EdI6ZRJRYJ}f||;;Լ>ŎBC6 s/]:ѣWH"֘Bǖkג5#qq~n6fyS[۶c*DF RQ1Acb Ǟ#I))6SׯZ%ۋ?3a}4^^^ /N?>fj#RKfȎ/Yn>Y@A{{/77+YBTWWwgOOz8{t++4H7cOee#JERV@@4(5#2 r8pn fӧ5kΛ>'6v_^^͍/HI ڮӓCּrr",mP ) X,FP 7OHGG-vmmذ.6vʶ A֘7H]d/_hwSpƬOϹfq^U[[;q9889O?/[jkkN1[R<<7Ol Gqq++s'9'//FAa6)@1_xxXQ^J\\++ Ͳ@XY55?|gjJ(1{t=E nW׀[r4'%%Hc#44[Tw9=7O_4Oʙ*(֞Z,t7|kj@:f౲RLꢙ_TU T䴮-"" ?:{6H$G:X$%Ah ۗyx$ h̛7CCOɂtHI To($$KMm. {So1OoVVFII,X0v JJ*E#n~~ @=0.DlEZ_4Z0b6m @@{Oؿ_?(%AE (*-B:oXcưlMtɯUmb2e(vDԑ#뭬xd쌋 O^hgndiW'%%_7}Xc(7=h`f8g'2^K;BE+]KFM!!{YOUU__hdb߄f s^-_?#G6٩0].۷/MHxᡦvʕD`znbP f?̀t dpSK^(G:˸ F:uݫJ IC:ώh?IIwNA1!!Y3f()I?ȃFF˱XUUUw>laa1+'<A *QhsNQǎiGUٳ;9u}xϒ%3W:r3?O? iJ?GNJJ?y2VZ&*>{Vԉt*`]҃lg#c P IDAT$$޽"3fCC#o_HiS3`h:tП>+**jƍߞ[SSKc}U<=N>qBw.2`0;TT^%%5k..[vI^^ D/_V͞=:?N'tkkD:ȸqrܻemps3}[{Fvv&c))OZBOwv!Ug['[^^544=H$R!7%Hӧ\IxQfq Xl77))?^q㵥K(^eeWTE00fkk7Y~P!88V&q~w3kk @"y$//q"&FJJH$UU?sd)_H111BBBKHHׯKKK/_<%%oqqqrrr,,,귖VVVffo]lA !`0ӧO?|HHȬY899]]]ϊebb={vHHc}" 11QLLܹs猎㳷@ :9=K|yrBRRQ#qqut䒒J7nlٙSsr'ىgNQQRiI$$"2DD=G:z{N88#d\>|hrx 544{w0" (-62B5)"" !,|&?|Y"8B15fff$|||O> _X?`iiYWW Aׯ_I$R@@@HHȨO!p͛?\\\hѢÇ3o۶ ۷oCOGGX;"aÆǏ/ QYY#&&vQo!""dCC#;wΜy).={6NI鬠~={V;8[%%_vQ<$BAHPBS /:wʪB:ȸ޲:)"<ի07G<.E_rsA:dݺ")288 ==oNS ~+ddd "((hlpp@ }6o6SȤ_'%%-\D" =<<ۉDbww7@~,ү gjj*D" C[DDD fs8W a>~lM309cQу7}};STT.P/!@U0(,eF#fѣib/޼tҒUP/'H:ǥ)) oU~EF&PqoMii]ȏ,\c߁RSSS^^>00`OO07XaQPP`0uu>ggg !NII^jUFFXgx< ,?ݘ$%%UWW7ƃ(;hl웝]{JR̙Ӭ#"vxр…g45/{z/_VX1f6}t[RBFF&N㺹5 %cK`Kgu̿}$%i1Ǐ-ŵzz YB!jkk_H~DHHcߡɩ͛555~"//Yߦ'>lkknkkXgn#OATYYI~ tvmz!2N^~&q(U_fŧ,_jj^VR:{LWQtt~?0:QQ={T==:{х4u2D9 LQ۶!sIHwtu#d?~ϱ|9|zJm?ȈD޽{Óccc!trrnll?|7b``?qAѺ^6mrqqSqq7~hhh<~khhe&9A~~~9d߾}UUUG166AT]WZssOT4JK cffԜ͛SQQ{׮?out/>uhdVVB+   {9OB:m$ Twڶ|23'%:VPHI HJ4*Օ+ ɒˋRo7o677:t֭[;wloo?x={O>}űoidd$%%%**m6UUնDEE̙3rrrk֬Y` ~)((СCBBB/_pE ڱcGssiiiijj zkk_0QQ{EEio8VAa˗GRRYY,)۲冬q{aBZZLNM@ЊrA/^#\ItG:՝<51jґš5: D !!YHς ??tgg΁ 4C {LO l9bӧ_4xԑ9sw F@@)A8իtt~Sz-,VB4'W'HW&Qu쪪ǏPuj`0:cU *ʻ` b16?40=z趲dhN9DDY[+GG溚*>jfa~o/ ;5 g7 ? djΝ~א77 &{K˕gOƌD"):ͦMcL=l,o;wσ(痾=SSE3FF07//s^ޱ#Gww88/Xp.ŋIZ <<:*}}C Y&&O Spx& ꆆҲ**?gp!||| #Nvs榇"q:U(+K XY)GF)(8uN]]ǟL`f,QVtt?88tn۶֭8~m2p8zII/^S?d:9;%%ZZzZ[{Ǟ>}3w.^BBCBgΟ/ 488kW{7nXX(!E 99իWK}{\1:>+먹ҋZZ^\I❇0./44t^tؽ[RTҒ=y2U τQ1[2yRRxilҌD"%$[SK>W30]YvvU_ЪU?398hdfyAYY?cR733*P",}萖w2W rz5q4 qڶw3)xϲB8 A||켼lH3o64t[7aboi^ׯ]qqf#uJ qqș3 NX21[Y]䔻{ϭ0r}Vzo`PPANDdgׯݔ1 B`z47cv s>uD"ݻchԓY~nn}S5<^1o_ttu[7LW'?ۺuJNG6@kkeCsF..]ܺB5~ib..IG|򤠴zJCiiZ2^Ϟss¿!2SS%њw398##Ǹ&' ;ږIaMe LQ[[KAK?k׌1$%Lٳ溚)޿lG h(̀?b׷{x#e,*,.YKO ~䴎Pn֬(o(MKKOAkFFaa9۷/c`KWV6m޼^m+8q_PP)QQ^77&&+|}Ӗ,9g_a,+% t+WJP𞌌t۷/~ ۗ^-u>v[$//t8<; y{'[X(\xZ队<ʹFTTԵmRE_̝+to/1fv1UN;;?CPUTT fDGۏ KL,]ROX/X꼳NŁ  iX$Y~ ?UXtcffpuy ?;12z{wVF0ʒ,,pw RQy\4gb{rxhGH$RrrU1M/.n?NWM)5 P##͛&o]t_ڻW :u* pWz8oxb q FJJ3fiiW=]iQGG2E\VVÏN`GHgF0;(:9}EEw?~/Dw]B6m`giEEX&[`FT7LKTT.xQH F 3`$%JʪB:7={VTtc`pA?%ӧEc_{nvv&x!k\AϘ56vVT4^-Y2B,-֭upИɳ pL}OZmyDCcٳq n}32v֋ q =e$%\s `tu22\TUދT 3,,TUۇ􇻲ܑ#ߟR-c`]]c\vZ2 l%%//GU00. 7֘*9(zc0W!$ARED77WX䴫կ[w'O*P{*>DCCfbx|AHȎ**"fE`0ott8[`n6;uJ{U.'tDҹsOuAsswP={Ԩq:͝+3HNznٲ90gP[13#H>MsxyȽ>-Z>+.ѹ*(`Bloذ RUʕgf0(4/ڵd!-o4<..'tCBGo}v*;;r!HJ `P{4Hz==zebrN"j3mڤss]=< ?Zu̯3!:{wrl a˵kFVII6\^mo EOO@:LMW ;8# 7/VR8tǚutܹs5="8cjն\EE EkΝ{Wt9|υŒ[?-ݻV{{OMM7]3:yr_غެ_CƼ])D:Pi+7n\gO( &^Hg[>~lqmEIK1cj;N ~8 ڰa>[{y7n0TR`8OauugȽ44<>̟ jMqq6mlڿPU׊FmH ד'{̔lm 3.\fݱ#?srZ_^7$*+j{?cǎUllfCܹxΘU^-g?&&+`Y99W_B\ݲH(%%x+$/gk!8DG/Y2 DG=ztÍ&uuQS( cee1++pYFsj9t;W/X xGwfDK˿?|hA觱 ~RVG``8?POUW MjRBBh9QF\wإKO{zƏL^SSӧ `! 6H[[(>ޱH[Jqq-q/-pA֭h4Sb1UU_X,eeYX(qr  s beeA~ax|F*05]xn6㹆FZ[QzF7nnzMLV-Yrׯݿv:=vvpF޽kD:EGܼFrrqo 3*lYcCxQ?l3Y+oX(&go~CB{{W! LL(f]5{t~~x~q˖Űa ,'TrG)>>vGGc66"#_+(vv~slm""</F;ZWACL!!;6l.Μ IDATX`it+ WWX[mmA:(vP^`ƞ=!Fݫ&.oo'd8VZZ:(;zr18G ޸qє8%I{4P`0Rqs>;vL;%݊a|C=).6mMAOڶoÿa fp7LVVwQ ޺eZ_tzym{Sss q4opiSGPQQ-?~15m?Nz,0j@ˆ`muðn͚7_WQm@[M(/oxV1qgS(*b,)Cgs]dpnfbb YNZZ3 ##TVV _ GHH…", OϭksҌG8+յ _ǔFPk"QLVt6)fu͝tQlذ@_cDSSY+9GH ]-*+$ p}OOS쒓ˎ}|%$ ͘}=`gbGvӧ]z0/⊴TիICme@aPkz[tQ=y߾)^ܾ"k/8;WÖh5cvvec 0`~EEA[.ݽ{ UBWTTvgffehފbAAed+*l ZT^^}ӆ 4{6{x^|rY`jҖ>4#G,, ׮ggWݹtj).ʪU7Oh>gPؙ gOG6Om0#HYK?.[6ܹ- 3::WTT'iiQf yg)(yzwv!v ,斗E:*\pn&Y` ,sㆉ4SS?qrZw\B>>x%%q+z ׯ?֒55۷/g8uu p޾mFGG_pxn\+1]Q OޭB~[@G~Ço$!c !!K̒g8 vtZ1%($M$hf,+JMRyy{5Fiҥna_aK;5deؼyJw޽ܡ f|9߾;t!Y~`233Sj۩Ӧ}{DTeիI fTTyy5m0;>O"} gPrXH == o-\(tp*ss]=< ?Zu̯3UN%ZPDL6 i5k>FQ/%u0`%##ca[)Hg''ן<=ζ殮\kkezz[X(\)o߽ps#"Io|mIxxBxϢ }}ͥ :}:;==?:o^̙M\\|8~ZwׯNJ*Fکٳ-[t3xLMS(=vL=66 Y~4w.ԩW&%$L<#Ixxznmm9{)"* YRRt{@^~& c{rnU`da8\EeeI8b1x<Ϙ+RU왃٤Ib12Ϟ9DEb13x02iEkkC88(fv\megOhFF%Y~dbb˖uuhH$RP-[sp0_82RR Y c~AGIIAz񢼮} HM}w4 gL > TS?(80;(:!QJJ+WKGUTOgG: s'%"P8qBWSs]4([,,h{_zzeuWS_~FybmQ*FCcׯ?-\(C@BCfϞXpz6hÆE$j2{泪'O^߽km@!6pQUtiO._Sϖ-sֹsq4f2X A33CPucc޽4 cgS@%bx.T͘}Ҿeˍ3gbׅs3.f^ {{ O~^Dt#oZ& \ 3ILaa6}}wPAa /'d6WKm۶!̙88fVXH$Q0#Inݺↇ 66=6cxt}~;;ձ)&;;ǎi[>hjTV>wTMUV6~GzO<)@: 0P n޳'mn]jjb{ŵHg3ÄsW%WN`޿M/? 3w^("2]^(ceNǏ?ͭl_pv~`k >g0X[+ge0,.[梙߫WS|R]]GUWUkiy>#$ĥ0\QR77WtqyDCGڀ @@PUjj}Oܱ#, &hYXWܻC`!#pcO4 jm?\I ;ycCCauu` )cG8Zx>CyJ!/!BT\\Сyy5HGѣ<<?B:*P0;0**رH==msknŖc Ғ%KζS=~A-"P(9s+7o@:|t Y~\i+V'a}|LNF0TǕ!2zqqv\;)& k9,!$wcF痾v'.9Z4(3Ƽg<=G=GSS_77K?4jzz(rధ'>c 3]鹻Džf#?D\痎t "#_o۶tboxK ^R<$$mhLMM]wo686Ϙm۲军[޽QQ{PDd^^qssE?%KN>ilvA_ߐoAo>miX並X 33{; 3nnÇWU!$h(ԱXy#^xȆ'мz>!W_Ʉ~ckk( *)Gd:YYajbZ|A;86 up.e|0_Ub[[ӧ8 est?iҥnaaapD" 'D"k> ` f#*ʋP(l߾LZOC435--W,{c{sDDRxu 3rcTÄ;67wGDeC:(xjWᆆKC!>1Z[+ggssի/޸۟'yEck)`^.//HdaWWҌJ-R'O/߹3(!,YYYį,?jjLM04T}n4y+"IVVVǭmvaFm?H$_ 18&47S|" ڹMMcd35]rqMMsKKDÇyvv!h$ s膍!iJJ**RgJT@ P(`Μdd&0)8a1_`͚fǃi#.))p򤮷ws|a[\ woX U;ZUk "!!.jGuvsg˗qSautސH$ƾAsm}a v^`48vL ڀ @/ y۶wQU|}xnc;MM]H7o{q Tka˜9|"%}֥/oN0\J,cb1(̒V{TAQW-gϊw F!AnrK6"--~x/Cj ܹ- ;vLvv{vao3rskN~.\gffppkQdeg]}K fيbTbb;1t==ntpv~`jꫠ0 gM%8/nĄCC#paÊN X}?I3@; sBL-aw϶ '2?x? %W|qp0ߺeQC&LVV沓ڝ?m?Sojή޷/dŮ]*Hg!!. f֬Poy77+r_޼`qfd.D"''sx-;;qBRR`Æ/'NOh{b1^^P8҉%,SOﺥe@`y So:,''xE3)~d-X0ӧVY74t|M޽66ud7UUT4ZZ];}3YƋRGuwńlذܹ-<<ȗd?~χgbmmC]]#pX,"Hegv?a-,de%#V+W}4.%' h(ڀa^535TQB:ѿ$$<إ,5]gg q={T MHpba`+JK!V"u Nc;҂W 1\5IZZ__s--...G4cbp8,cرX֢[ϐHhY8D"8:^F:膇Z3"--6; f[`)#@3׮ʙ7 y-bң f qSX,==..q133ݻ"n##ּ~)?z %8+lm⊐? Ȩܽn΃#II::rU,ꍂY0f҂Իhh4cx`m}74Ԇz+ q Nd&=b͚o1} f/Y2H@c0̙3zJv?|·XxVXMJJ0NL,:oTT4\]#_Rz גژ]$ 3rcckA$B?Pi◪I$RCßprzmmyׯ?a@ݚw 3`0S6ݫvs? ,bb8:އ6y(>}:;rpXrmp[[/ǂHWO052B*%EŒv~<Pg!-Ms V3&'^}!!f>>` e$%||R 3V9;;|X1" ,zETT84 >^Xtt8[`x^ sYMס*-e$I.Y]< %% L//8;wv([X4% 0ʓ'm@a0;;UguOn|tQUhWdgC/I..Ӽ+W`]#VL*RRkkhGTTsOOH Oի/&%(6 xQUU`Fb ? Hll㵐_A033+**yf{U">>_4z m98w8ض ֪U|u9ļYJ f :+ŋr*TT4RiF+,,g 1 jܜJ^ڿ?n2Y&KX{_w47_R<%кuaˆ\\\gEEEmܸ>,,_gee544444ˋ_q;v ˞J@a< %oo;wR+˖ ή XȨg;ϟؚEm3`]P55u=^fdDKm?d]\#>c:6ʅo""l$Uxyyϟ?JLL HDD _O>]@@@@@@\\ŋͿz"M-c` zt@)PSM66Ԟ?`m000^144f45n>s̘meuJ/ N 7HJReFU_mn͟/|ʶ߮d x<ר3fm[~Nn 111BBBKHHׯKKK/_<%%p1..NNNEPP[̼l2_4sQ`O~Yfqrr/vrrsrr^|AmmmX,nnOBann+,,|L"ԴWطį2)fRJi0uu/_763t-^<]^}22=@'&.Z$ C?Ɵ11߾mV[zdS C?R* IDAT%#퇾bZikdtg46+[?1M"BCUU/65uxрxTvJWWWSSӱoݽyEŅ< APNNAߞ$&&6!JNN;K\\\qqKΜ9 Aׇ^z/^?~\KKeff@͛SWW?$$$\p$rrrH$ggϟ?@S__1###F1~ëꂨ/:tʕ+?~iJJJee ++宮W3Lochcc]t `⊊>ϛwLKr[[YANڵ---@\ڵd O%$E0E_:y2C jSS hH[ҥnMM]HgrA[QѠ}UDҥF6]XXXVVɓGddd>((ߓx`yyyOO@HKK#_L"6o߾...H&_ %%ᅳ zmhhGooot钖8H11vvv kH?%ccc+++vϑc\@0ASRRʾ}=1wSR:K$]((Tf̀)EVvƓ'{lԅtIHDGwu]gC(,k n8lmW> 1&ojJOF;,Y2&~D;aa6||R\/_:F<<=B|8QMii]ȏ,\c00`OO07gKIId5Ǐ ?| ''ʚ#''~zœ9sO> Y~~իϞ=@. I$RooΝ;---LjK<铸8kiii==q;W4VP@@aL5bb|CC#_3xtukj~$%̜9J{eâE3ml(V6Q]UT{Ko_FRORRY͙Çt #1NC֭gu11tf ^~]MMёPQQѷ JKKǾCSAA͛7kjj)2c'//=''jiiEGGWVV.Zh͚5IIIŒԐ^]]-$$}XWBXXXKKKI?sf!.b~7o-em\RTjh(̀)HH;6vռc;~~=k_JL,Evc?wo( 5')YGUU$&FjW883>88 ŋg!##{܌iiTq7,Hܻwoxxxrrrll,ANNNэ&CCC 'N ;::ZWWwOOM6|XSSƍiiiݼysҥ3gΜ9s&A􆆆>|())!o%ppptww鷙c?~f."ٳ"-SZQ6EiQY[HZ(ٲ:?_$̜C׽96̙|y?ׯ?x`QQQQQgMM͔N>zYY(U3[6`688ܵll.@R%##`autqJ3xy._^eiXsɂt?wjrU*~ߕQ/_.{V!Kf+.]jmmݷo''˗]]];;;wk.))'N'#((AFFFLLn)8Am,lll$'!]]],Y222BJ TSS[rʕ+}}}8)Gbgg'N5O+W\jogOedde> LVl6 8~߾D!!7`k##mnܿG"QQի̮OB&V9Jq=wI˫ROϞ}rC@k֛vv۶[fv@w"">   3f0 yk|}QhFwX}{LPPyzu2pv^jkq۷? =QW14첱ʐ>[mk l-H$޽46:>-2IL>00u͙ ~<<^;Ń-@<=tT='p8UT{ꔥf˖==`k2"_pj,{ \897^՝$Miڋw'8:.~rҥi ``srҺszqdonJ5)KMM}…NttfppԩTsX,5`8g_>mH tpt\;T0K)a`\bⶏk/67w-_LLܲʬ.MׯHHP2B)nܒ[ycL illX▌qqFF \\,]R9:^bvm3r(óg%˖FG>|49y1u`8p8BK T&(@~~իn| Z`͝Ti+^CCXC D^x^ZwGGIugy]GrQ_pT.4~N%N۷EEh,oPȰ0G4euhn(HxQMMM@XZ3hcF)Hܷg%.rrLÇYٞ')p3s;w}ѣ׮]#wWWƍyxxv=444p#YYY...eMMMΝK:ٳoϞ=X,ǟ={VZZMKK+77w\O>D"4dӣp8(>133Au=؊//o_1oޔ/Y:Q889)KnnVQQ#S bcsϡԂԩԄWlА[˴HNt}$bge5{hLWWWSS>ljjz}=V{ѻwݻ윓#%%ooHHHUUU^^);r߹s"""455 \\\]ɓ'֭ۺu+K.ttt8::rssTѣGA&&z+E7ovuusF@  e+cfƌ *~}04dwkK` դ%% cihcGpo[ˤPQGuu EVr{{ FAnq`k!Vd^7 3f`@c1pႄ'ܹ3jNNNttt7n ?sLZZZDDD``5kH _ٽ{7ڵk7t?wF@@q_89iw|l!d2P J1୪j[ MԜ1fMHIIrE^^(5Ջ|FF_aE6e wZyЃw*gTTD?~mluu(ryxX-ԂÇ>ljc2-[џ34ԁsʣ/)m҇xyHKJJՍ= h4zkUWW  a``PUUU[[4z¸'E"%%o탌̨q_̛ǧ-l!dP p3&&44+y++[VCk$$xSSyMM/lhhgϞ)--ȑ##s߿7f33Ç` !Rqptu @w, P\ z6ZBG8s*4mL۶M?:bcyyUJJ3/0ƍ}}nnp8(1$F.P͌@ uR*c%IAiRRҰq5]3nØ4lyy11΂(<[YYikk?~8))ߝ0AAA55+W\חGEEeƍ,&&- @_666eee}}}EE3gxxxٳgݒ'N%:l+VYw̔Ƿ8 ^C\}b-: 0*#s8l-0H@+ l-sy{}|2G<\*RvxUOElQP8leuix )SXc`!JꗐC l Rd^8 Ԝ_- UPPCiFtY` 1cODnn%*`dO44 *,[ο`0>>~Ù2'BCs][oQQ--mT{S`\B{&&zx66v\qc3==8Wȃ4<z&C**3qzf漼 C)xvJJ[g˗/\966{VDk(="(2~huuhiC$r%}66oJ14H$&$>\pRR Y_2L;;d^XnÇi%$##8H2\ ̸Yب,Y"900W !فXY_-<<;8,ccϧLY]]'9w*Zmm7qqϵw'(geXVJ{`&/""b2/mXY b!m;X< g`(8#;;S]=$$xee >ttS,ϜxU?UT@J?5u<{HxHN  %%QG+鮬L1uuBB_'..WYYDN3ބw>>6pLR"OHJ`Ha0p)# 8 OOg`(8\uuhdf q0qEEkք7%gYY"#1 }iuЃƩF\qbf߸>R*cV_)$4Ǐ?iRD`x 蚣6ڧRR>ۦz` g``f:7o;:hC;RFZ`&$ Qffʝ3H ,Z$ldVmA K ^RZ Ų `qܹ3 cQQklH6 Lyz'l~ÇXWjfQO~߽;aZ,_++5Yc0#3:ȡtii_2X@,plDE[ I4P^뚚|ٍ/83+QQMŁE3M$155Ufcb=}Z IһwoyffOw#2a`ȃ^Oo~jj!BΘP{aa.(qmؠwoꆙ5۪4y+W2/57PZ-xոի幹Yy$&~g2_}2dg-_xT˗Si9gL%'ڻ7Q]ǎ=OKxdbɬ@GfTgժ<{VI100BsY 7 0%%ڍ6;v ˗_-XY%%hl608M ߿7!x&j׆ Z^^Pu;;cLޡ͛@ ss+HSSOl} e))woݪ嵒W#mNNQ66y33BCPpV͘. H14 VTa(&-GMM!2,9 NS5};x86+ξ?m;wΝ;[w;9%44VNgZSSܹf9s^<Ҿxx޸Q3_ -[v565:y@Hn'|\沬A))""6ykAիnnԎ_KNb]ӗ/\^==ÉZL%F_oݻC&&J3h p#XTҥU$YY Y!&?ݻEA11 t'OZnpT@l90@ijlٙ'--,T)xSS7??#ȵkYYe.O*hiI?oy}fdaXYrs+q:@lm%,=K[[ݢ6mfnh zG}[amv1//؊&d lޯ{=;˯,, **۷/ёԟpx8022YYߠ?p`.e kjJVn?b/Y" a&FQQ8#cw@@1EV#%A KvY:H$tUێ}$ z<(**byax3fqqzz2 ?|ڼʕ ϝF[[_`㸸\`+3||h45#YYee_ԡP 0kת,]*9o+P<83@ <P_?35*q)))%M37WMHp/) 6FKIؕ;*&F=f0˪U }kx pǼ 23gvmsDĆǏ?JO/養8*ieeRR||V>17XUO"//[\[ssMQô:eE^z: r cm$6Fqp8>\uyyiKW@PPztkYY<55"z`0]M''?c1:55͛UTf'ڃQ(b EEBwÁ ŀm]KKRL'!=B& 'vviF3 `f1|b/;b:;[84ebBL'\BO FDȅ]fҒ||gL-cCUYYUǗu\aMHp!*bw>IǏw; 9sYY6`A;2xғ$uu 8*,@CX l0Hݻy##n'vv[\{ܓ e㋏w {꫞ޙD8#ɘBGtv^+#3&bǎwрu8D--ɟ{zc#++H=뼺uaJLJT]r幃Κv!(01߹NT;,Qm3ax,,߿7cxOmmP_ll{z>-[厏w/-mܸ )a iWFF >>FF߿AfF;wεkoeܽ~:M|SUcf7c{{HR`?Rx'QYEEˆ Wml.pgeͪv߁pL1kn![T694 @x( `C{{_L5rח[ԐHLt/,usEc8;;ɓ/_a]S## /*giƃ--\\nR4h7Sflk`J )L`lkۿeg{sglMM-:iiޟ?<g'>g`p.(( %%"0J__vÆ4h? [k:.mmL)cklH 7ui†>[?=80YN;9:_#Imc mc H$*up8 4% A FmmR@  44$ž-dhhHܼ%-틫MfH;fAɛ7PSt+žo^B!eeAl--IއF&_WZj/%*#ɟtuO_䤝kk 躺NW mcg@ATُ/@+sƍ׾~m[ё{!! gx't@Q6XX?qC F"ϵh4k}.XY>/_൷tr"YܹsttJ˖ 8)LYBu?~[J\Z޽u/^50@ zxIAA EEkGf8@uppJv񣣷wh80PX^2LN)//da6s B! "yƺvtY~I TEL!j=6< ÙGMשALGLgIfjj߾ӘQ[am})12ÇΩSRׯ?+F~?lh#~祉La4 tt@bu()i@"22j< PUV11QKn0\Bƕ+`ˁ dRR=>856>of FEDZLF8%$xܾ|ss ]&sd[[7~~v}}Iֵk/ΙÔNը,?좻-EEϦϚ=k`۶eiiޅ'HƄ8 &xؕHӎ~zQQ b@rY{{oHH:BȇhkygpplE03FF %H3" } rv^>yy!'dӌ u]qL#՝sm{{loT`?jP$TQѲn]8//[B=<:='2i2! 6px۶۟?י(mSPA  2&p8 \fs3- ξ}F.(*[˴ضM?!=+뛱PRaf,, zz2II;=ڎBB32`8##kjuuO?8~SR>S֖F_O|KZZzզKKBB\wn̥ɠk E_?!2)!}wߵ66U9l6î@90YY80$н89iGz$ZddZ##ݪUAO|[̃~o#uumm`޸ڊg{ϝy _S3 <9gkkKGD8ݿBeYYTTDfFccsx)*\T;6֕%ø皚~}xrůB3~6&# gkk/F P( P($ZZzPR[̬ZǂD"ΝYlX3/`˙l߿ {`& d淨KK6^''[k*@hR[F!"si16V쨮 Xj ۷a`۳g5՝k"839xoi}EiJ*)i$%VO'w~8{IW׀2we3ejk;UU< 瘁CBzr &Yt3$%29~Eĵ3-BB-;r۷EDiI;4ɃeeBCv6>!!Oo]"r٢E4&37Wģ(J>IFFw Ș就1OGOQQ޺B);ĉ Ճ)hOG򪳲ʲˊTyRiMyh4S 'p`6k(`~Hh7޽PT^_3ly1ϞTjXCc-s'O[daf+,S^y7.05UvqY L%# hmoy?ff2mlԉDO ܾ}TPf}ۄ H$&$\@}˗:[702^W>}w錌=aO(..*ͭrH{xΧHeCQp٬.e" xHl0 f"8Ν1.H$>d!)ɗuDҎ_Y-02Nd1ܱѣ l17WGIIG>=e;VcV'{Bnۦ?ՐHTfW77=D"&hyS^]fcNϟkmm#E_2':߿"_{6645-0ԆT7Ϳmm)mmkײ/\xLI[Y֦Rtlm/\8~<)22sCssU]\t CHt՝?2ͭgpb珮'O>#Ow6\]T:"‰"1ȍ١XX-lm5 6K XcfB2<^FFn|bEeKC0Hׯ˕Dւ̌ kkΚ1ի?l7k~4 2w) .oqiRR+FF!B/Pw ''˱ckn;]q/>YEUvWWPHGGxΝ3of=@ܿGG25U&YY6mbł0!X,>!sOG6n2фmc2ՠp3?bq2@rbeć'ddmݪYȌ 5jݺÇsC1LL%M~__c?g>>v00Б?|~sЃ+Edב G`֭zg>qsu+__%KC ' =]^}=zld">2/^nr}jP'22F}5<<\ef~cИo|hmcS1=XS\\O <Di/o66Hl{v<3)0C"/:ED<|9Ё=:c}9q|Fo,$:<۩;6>>766'**K^^V\WIIHNXZH>lp!ڻwn׮84ԔLd䫆q%' ~ן>m9Ջfdܴ\h=Ͳj?cc]c>6NۗCmlJ r ;n3ssՒ90TimɔB99lz "LLo̱ ݙo_e0d#$YWGſVOoLKVT>y2UI験STr')HbX׮Càc~hƅ2ټYvRRy+hjcdDge}_'1ˑSU oڪO3*+/ovu61@zT600]bhxukת$$$${x,WPQQfplbjD  r'45uqrnw"8]C%fRƌcLVKp[ۈ=H7vv&??s##}.[v{.ah0O0(s睛->>vKE43g23S^Ec20=<`x2j44$^fk;N-SOϐ߸' O.ǝ;c\\t2!;> Jw/oBDwmmi֡crr*Xhۘ tZ 2V3̺*MMs΁LNNEss< J̼ NNxw+Kff /9ٳ=aaϝK9q\__lQ0`")ɗ9~r02MLLL*+[>OHx\AAq !{Ο=moc voxyc3==3x lnyddO{k]%66RR$% a׭Sy]ww*D[[߅ n _oj͘==CVX0vFaee`ggG`~fdeeiISS7??;*RS?HJ3MD8e3G+?~tƺQtOL?_[[߂`Qq㵯_OI ^}MHx^@gldk&N{,ǐ66ޫ(tjxba"aŊvv>~H$Q(YDKND[s-**NNZo8#"6`UU+0:́W"yuh3zz:77=]jmɩ.{񢴡6t0ŀrφ9' ]jj'DɛF_l]vvۃ+chz|Vݝ; U3[}}Û6E5ܾ{7/%Sss)BP.췳ضM_XÌBG'7< C 11[dFɩ u,W~pp׃**bwnCQFѻ1kM?=`jZ^"-ޱ[3$:##E__#"Vdg=^ɲh66%:; V @|pd0TƍgΤy۷ j̞r8;;x7oʍB˛CE0@]hs66Cu|T) gw41q믵Oz5s?~y$fdDY묬2m;v|2ʂͦ=/82+.nD)c745mۦB|DFkH$r܉h4RH3:z "]]7ofwv=kppJUU˛RR IXcm}9Lii>NGeø҆ icJJGvi߼Y;-hgҴ.7 (ȉ[[qUИGe4ӧJJFe}))[耨o`dH46v*)i -gdd>)-m03S޽,? U)*_܋{g4$,]TV3('14\rŸ/~bSjI"uU;VQѲ|oU$G+YYp8e{SDdaX,~ӦkC_qXkl`lRR86CQtcϥGgD2y§cѡde޿V`x+99" 3:9$iJJƋ{s"??Lkm ',\(DPW``WhϏ횚))^**`k,վx):!z SƊU&ԩԘwyyGi23X|@@իY/>vlgJN~[?mX??s{ OϯNN.|sCC O}_rrHMVlԦfJ SR CC3JK ,-FDrq>zlHܴڋ&$Q(@zغpӣddKKX4en[YS>f=|ԥ088vs`;1 PU{p;@ܺfFFXH$BXa~ɌTbg Ot26FhثW_{{F=<89Yx!b{._`bɒhccceehߏffݣPIk`Cׯ޷x]ݗ/awѨc֪Kx{ǿ}EGpƩ 00ח??88]Wr li0FT̬ BKKYӧ119LLh--)ccU<H_8gڋ79b:yku$ajdj]8((:;߻Sq``'$O(*jx@nE11u>>cD,X @YFů_իg" 7odވBXΝ1O#WM&sUVqd[F#_.57_]YISS7æKJ.3Ih//{C̛1HC z2n;}h3@0 3k(,Z$gbru޽g imfn<&&Jmpl69/&&l3zx,HO/z'~nŒV-׃<ܼ:+N NB::22~ʀak#>I" Bi - uvݻPR V .A$Bl?f,/ 铆̙H{esiٳ?}>x_a8C Bǎl?h6oްϟ߾MCbaҒ(++҂f::0C0̞=gwuK 'OJH`\x͛=wxeפaR>[ <|F/b!by>d57%% e22Ά+Vu@ !V.**NWQy}Bis'fϞiCsc9@DOih(ܾjׯGΜwvv9IIܢE#w>ԑ5k;C#MKKTꪬ\񺴴C.ih(8ӧ+qɓ^Q`.\!~GMo%͝ѣe {;uGUU"**ʎg emmldc;o/IOMVFFr޼aQQ;Yhpw;)§OQZZ?k_p8Ooeeَ 乻=y>;Gk +.mm劊v/**լ̹s @1` rۻwc0Ϝ>t?dfV{bgXė/yh"4Ӧ§O7hoplѣ/UUt\.=w/_;| [X,?Ҏ`{!A\Y<ǃe&MF`0s80bq!er4…pa%%_LJ򤏑:Av.7;w  ߽DJJ,Z4*=׿1e(dk/hk+ ~TaamII[5MyyÃq>y'fI_sj?% SDĎ  j&M:}ÇLk2xHIIiSO yN6a81ӧ=ۃt: \-8˵ѹp/*j0IIǃsr߽KaF6GƗǏ@f;Nj$ow##G]`080gKM=?)ͨ'v}b1RRfRRxL**/dٝ-RQ 4`*#ׯSUT䜜~BOOu\rܵ뙏ϥ9s왮.`}!1bf̰1>>OK._7BU%ˣG_Xzbu:)O{}U{LMy|Ԯ](*JeD[hV.HH`X,pxmm .ѣwnu_{⛛YGtrŎaaYYlv+z_-]:j2Wz 0? jGJ~V` a ::IS׭~ ra:ljjkldhVERL:ArWk1!<$;>--Lfj JFF:ΐjȠq8<;;yjkKۥN OjlgGW;,((srԔҒ#55唕; kkw܇V6 `0uxJt۷_ D4`0cƌA; Va뵿x̙3+++ݻWRRDr T;XhhhD/4TU5۶|Yk+k׮gs8Ż-tfp%fiƏ<!80s:4_=o܈>v7z mme332E ðܵ{t ,,8$QTDd6Ś8NAnC{w8ۏz8?\;iim - *jRTjKMMS]FkeD;ju|uB/)/oY }IEEAzzzh3S@n{xx|{ꪩ-Za˗666҆o$Ѱ IDATaf |xmm ê7***$$nȐ!ǎCAԎ;vm<{>|ٳga`00 s8%%W^0аdUUUmmmܼyyny<СCkkk۟?*S^~Ξnϥ/_lIӇ Oss;s>y23+сlP'f Nkkq] v8ᆄLzNKk)=Klkj ÙZZ gC3Ggd 9n[[[VVr  d\i}6%&&˳X}׮] NBӑ<Ĥ}$m۶A\) Q_~Ν0 ߽{ӓ=np8?~aݾ.1۲ر'b:{A8 E0̴iv;'x4zӧ \UI9;^4!aڵcCBRF>OHHJgA(6ի Rri%%իWgdd]gqq`0EEE[5daa1k֬X1cDEEaXg0l6[YYY`qrss'Mx֭(((@$))vg%$$DFFN>>22SL Bp\c{~QOaܹO|pBg?јI  C;~ff@?dd$׮gɷoqr:p+vmbFCCa_~%%u8;8r}freDDH.Biie`󓗗@J炜Brr`))4۶m:t˱c8SFai0L~X21+++pႇ?N555dTᆆX~$C =)))GQ<ɓ'T*uŊӦMRݻI&u$rV[&%%]t}`X,+88877aܸqaaaHbF p8\aa!mm BBB._ϟ?wv Gaaan]?]I`s zѣuttz, ׃a4Z wnj1[lt? 1HVVjJ_w;1#F>s]׋Պ,JreI|? v O- Շ7wb())m߾Gվȇ]6mAPSSӺugccANwrr;~xRRҎ;޽;a.s[LLLI^E$*<o7n|BBBgϞsΒ23j{,QWF!/j ?:3eʔl."DNᶶ6kkիW0/8::"m`޲e (a``pI";՘}@z'Cϟ:t( BJh4ڲe˔UUUW^%d2lB$ϟo0̓>b!]k:{KϟkXm566JHH>|f))m۶DR-Zo~Ukk+DڵkWShp.^ؓ=C/C zTl5foސ֭hmߢrОHT*$kݧOmho}!+r'$-߉rA"t0!L`wl.{ysssyyÇ !h/iua811QBBѣiii555:.][g/^H$uu72nD:@>2+))=zpCtv._b[9#@zO۠l׮] ,}::ŋ w̬04z~>.tT]LLP`0܉:O-}W rq9fsÞ}ʕ+ϟ?|5REA6n׈;v@\VG444@$r}UEE'7RRR &ƚ zr_M:F={ yvA3944@z$fPkkkAAf:`PSCsv>0g!v v-~ƍwyBO9}a6Oxڵ0ű?=דVVVnoubYj1v 0Ǜ1ck3bbbj}޺Y0#A0 s\$$x_bðŮ7юG@b6+++ڵd֬#vdOay\41rr+W9}79t̘K:5'F[['88_$ $$U<>A]XXhggֶ=lZ-ݮݻӧO@MMMd ;~*#X߷2 mܼ"A?&ŝ TY)n1f*|ɏ-ؼyBaՁ+UUE00xgHJu~ҢF/s ^C;.t`'}:d嶋={+ЎṊ];65ׂ~;ݱSSSdddtMůueeMN:o߾5k#ZpC!&ϟǏϟ?G lex&AD":;rѣIÆϞ}er@2j "@bp8ik\8q ,RP;ѣ_Z`i&<͛QTj3щ';;=?v^|֭[߽{TUuA`j1v 5klmmWXA?@ظq#ݽ{VWW{zz>77hL&sʕ?w 꼕9Ak~~~BB®]zx s]9(WTU|a0SSSN}_/ =njvfX4441b2vhZ,fݮoݺ%--ݾ,>>>}/166?ƌCaBqnϗf=Z^^'[!:;nIJ…ЎGJA{T,HD:ann֮]P||ֽ{,T55;wܸ6}xss[hhFpprxx6AcǚϘa?aڡٳ/HII<|K/niial[,+))i}z~nI_2DIϚp 2ЩS><X$ɓx۷{EFg tRRR}Vpx4+s}1Mӧz^VVVKKȝ ޽{***'OlK/_liiǍ+foݺ@ hhhlݺfc0?EGGw044DYYرc!ihhlڴM}̉ ̙wK꟬v+deAkn0ry9_#5ȵk, ͏/^|MWw#mW Mg8h5y{_9^'Ekuu e͚58XNe,/jimNH5~ʘflll (//]AP}}-]ݻڰ0d 4bu Fh?Q ɮ]Omlv766 %SLzf{@+22*3݇TW7RwL eڿ|JbB! =wPb~;w0|]OOO]  ޽{c!;!>ZOuVÇq UUÇ?d$$eXn$xl_~\'!}!g3f=tt׭_Z5%t+66{֯Ujs`j1Ng^v tHTlt:=:::,,l̙XC$pK}} 3fee!7_uZwkjj"!Rͻbq=[ЧY;mUR]뱀H&vh"P_=߿OHػ{4m;ֻ}} ѺUڵcϟ>V#fB̙f}e{-ׯ_m۶O>߿.X'(#G^Y3ҲoSP i t:ѣb z $f`0aa[ zr̙uu C~~#W`oo?nܸC8qVZU[͛… =<<&Ms.W۷?USاG)/o=" ڠҧ똉͛Qw47y{;ZF" ϾdrCBRBC3hVIsڴVh&B~-?O e3 \ 7Μy~@1P1S^:t(gϞ>|899Z_'O$ۃg6 f! j|}QPyp-"ACCav~|{:;n0ò'^ 22VVl67&&[ݻ_Ϝyo`6y͸q..YȈ۳繛II1Lffffff?D,Tjsk+ 4}d2yΝd2yϞ=ׯG;(q@4d>rs}}/kj_,w!Aϼ".nnlhoo'%Ń$n1c̎NN.y6-44>2cƘo9n X2=W#~Q%ٲÍ^] k HDtF;1mm__5k뫢Hc2 Eoߒ++UUG48A;Ϟ=Ka2ڱϞ7oځt$f@O$'z䳛6ylthC@V P@b/~Z%q1f9JH+rg;Ξ}+!7$$NNcƘlmuO%СY;v<Ҟ<p V./][57]{;&&ƍ垞VB?0qȨr%ŋ$"QyJ ?SVeeѦ1ciJG!!onbΜyERTH/LQ;w.ځ @n?INto޽3B[jPSHq<?d ŋGUA%%QQQQt:S__Օ$ix땶6q8ܐͲ u=|k׳P[qqΝ;\.ځtŖWTkh6rrh>րs.6hiaMrN^^ BƑUhU99wWU`D~ps:Z5H$Y^`]]InnÍh2g__>@OFTT? (Ϟ%9ݰaǃ =;o>Unn!-[ܸ\Q\HJss[PPիᅅF\a)eE\]#::7""'""IQQvHQLG413XOlJJܹ&NbVJKaaG߿A;۷RS}|z  ߴɣߎ8p<|fGk]\[6{pH@@{N31WFXZWt>a륜ꨨUMM~H#MG216[?g/]bk_LחMZ_?{mhgZXhss\05%?>` r\.^9Aɩ޸nQQݩS>3$fL.z5"$$EFF@F' IDATrt98Ԁkr#"rhVuuÍ]]IΆffhؕM-Z49` bc&,_v LK >]Q[[yviP cӦ{ wF?hHa]u+kk k "@b&h֗/SddThSSYbedTDELb$ʭ߿O_ر.- f &N IJ*%?&&۷c` n%%W,/!%%qbP,'ΝC^G7 d7n_ f̰>ZNzqoIg@oliiazq|llĉ6ӧ۹Y!b2drYBBQddn\\!AFҜ ]\ mltPo^dI喖Dtfdr˗Dԡ^N&ЧOY~~W2h"ZJJWY^pÍ{C6{N̙3X||Q>k' xOOiƎVP_W@1]\ Jko;=o0TbҥOׯG}@D S=v쉏H("26mL__{oǏ)+\i'H$fT^erpprZZĉ֮$IC7HMZ||QBBї/yTjٰswhȕ+.TPo{^L^naI0U{"UN&F"}{%ڱV֡C/c||WXnniv;wNmH̀վz}zJJ1f'Z{xX>_\"3KK%$tGWWR?U{m!CΞ?jIoߊM+>~2ڱQ+'댹;,Y2 @ЗTǏ{ǃ_N=}]AA[NV0 BeGEr8<}$C}Bi/BaWuv6D*H$BNcl844}r;UOUU5:: 8l0WD3ǟܹs ځh;q͛Qskj*ɷEES ݺuX  $f@WLvTT.Б<<,==me}@@,'(>p߾RB;E6D޸%)7G;mnn{iBLL܂/E$?$f ㋐4;;=C##ii csHe\F&'$x0յձuv6Śsߏ[7n't֗'deA;~2p*/opq9妟7 TV6^X+Vt.y<81Ġ$n4ì@_з8^ffE||\_Y() "ue"vh̬ ˑT-7 ? mUQpҧcdeE#AW}iaaK]N&32z_/WM%%w(*Yh?'=yXZZok4k W j]h8898[XtRRJKKRSt%?F"ivvQ}Z C>>.⮭ VU9~3I :t`ruơ0DyC64T_~ܜ9N=*(yUJzz(d35TjsbbQbb10m2266:zsn?22<3mF6߾%0 ~|\\\G$*yyN:P Zr2<-a55y$1ֶW`CIH`4lmuttTcbʨΆ.S?P2…Wsځ tf22ȏ!˞ǃff$D$4MM `Z|әR㡡6A8@Ғ r|k''lf4xjllѾMM-^gc77.wpxIIQQ))%<lc3~CwIO 1˫ɩFR\JUU#ARHoބNFF>dJJ0 Ł HSSҒhaئ f_ϝ{15ڱVNiǾ}3Df}=۴ׯS|S0Z`WII}TTnTTnDDJ ]\\]Ib3`pәEEH[[]ZJaj&&]WE?>44#$$%1HNNĄ JO/ok D*!׍y͛23"WB}MׯRRYLba%/ׂ߱/_"#s!F Q @bAt:3/SGήˣTT4@$##5BXʨ__NMN.;J -+ffVfeUQ(MYZj[ZjYX4I$M,p۵kKlю{3 ^;7T[+iԡ'vNJ cbcc ʨRR$WW3;;]pD H@j99HV[[YOOU__U__XQooQ]-.gmnnN"iS ExGf!C@ I6GGFDFFTT4C<<Ǝ5GF,f$KL,NM-kme)+99 f4|.H@ 늊jj k kKJrFFjFFjjzzzzjj`^PWln\\AxxYY#F fhСތVV6;S]PP$%qD2U31!Z5]իh?@9Y!}5SR k~̬  LO/`0VVڮ$77ƒ8< Ά..:0 h 1**ُ5EEu l6 YY)==U]]}}U==U==]]U}}U6|Bi5?.NRgk\!vq1tf2yy꒒:auuULM $Ą}3;W_99ځW&%˾~-@s0lcc 771cH#FRSKKSRJKiVYY);;=ggCGG''$τ(+x0AHdH *B ʱX+iH.>Pڼ**H,8o.p]HK+4lgopO&N`['p#TT4|X~M||/aI$+/oHI)e 2Z?DpejjjА)JB+-G} ĩ<=O U ~t:354)49$%BpXI^oP]KKmKK]_([K))ϧ a'H$a35%ypx;! ? =y…Om?('cm{Tw0ddk+[NNPMQQ!yAattTFK XX-,ullttt $fFcVV6 IZeecUUcUU#BlD T$D%|II z6 L./,(K"z?d"jHZAA- A:b@@U__HT@55soJ\.IIܺuo νra::<{VVff%\Z\OIZZrڴH\ a2 |WW7**e)@PO$5.D6gdTWddTddTp8<99i*&D zl]IҊJJꊋJJqKII* V.*::sJd+koɯ_2ꚚZy־QpF#IIɥյt1$##D"ih#xLL4zRySP\IDAT"Gd$) ҐMM-6~r'Kii %%YMQq2RIi*En -/RTT=?jOrYPDH]OOU(ND[^C{7oF0dmudK![oސWA0=~{۾}/_a|}>vsRV8 A֚^P\UYU~eiiI"QʊhccnE"ikNg::`0X,f{@bªkjhuuzF]^_\WGRKJTU54rrx55yUU~SfsʨHVXXSTT_K4A$!U50@&5~$iMM-Բ_I\^WWL$*o2 b<ljaَdxm37Į_ܻt,#!cH5<a}}ttTj{nvK&AJ"Dy wx)E-hE^t|9s (P*\D2x9 z0cS(-3NGGcv4Ism~Z{g^]^o2n,5U;iRiyyl{Ŷo3 +/\`B`w>_ge]4~Z遳uv:>|J46!aFQFjo%&jrywvWZ_CC=9_tBXcii F*"1^BZ}U.6?`5]Mx1|>~үF+͹|Hb'&efjZ"#3gm;-L?4ؖuuu^7Ua׮_byL2S dffGn5ryi'梡˺::,dY(΢RZ- ZBNk4 FV_.䱦&{SFA))ڔɤmO`km۹N%'$@at:ڵwۥTb}?44bbbRSU.SQqdRff&LnZ׹#RTע9ߪT*Riwz掻6Dd1:i$>DFfs tfY:v7},Nk4Fv3xj+/o(m!0ud8,.(ㅀ:J-57;ZZڀXRR{ЧM0y@pڴi[p!MXp᯿:ym!^3gn߾=)))e~@v@8@(11Z-W!YlgK# ܹs~O޽YYYIIIk֬qlw! ?5_6^3g|wBc/555555dɒKs{oUUUSN-..6̈́ĉ7o˫~6l,J;vhiinjt:KKKfߵkמ={xעBvAqq1!d˖-am,juw)Fy'9;x !PPPP[[{͛7L I8yd[[[s1h9)N;tPssѣG]{GX\\wk;3~2ʲ 30l)))/---￟2e \UUĉ:D߽|p<0˲d۶m6uuu˾`e? )7o޼E;M ̂]+SRYY|?<߿?;;;`"҈f)999eee_|ELƌ k ]C?0j짟("UZ^rK֬Y#$^vh42 0ٳiznn.!a„Yu]KќyNJDof={әZ׮]).\xwx<>oaYvŊO=˲;vlΜ9Bi_ҙ3gZJp5m`xΝTe7vBjkki(,1m/^(tRmLOOxY-_|ݺu9Bӟy7xjΜ9~8ŋ|M:T^zar#HryͣЕK>#m%UWXA)**֭ѓVkkkkSSөSϟ___ꫯs`eܹG!duuuϟߴiӢEB$F][Gի7nXQQzر~;DiEEEB-[F»]0ڍI™cs====<ϗF:M^xA$$$\ruwwoذ!99YR=s6rss+**fy'۲eZʢy1cرcI]Hcbb80M}ejj?/!vܙn:01a)~}}} ⡇}WǏtEEE^vEpc 𪫫0awUVVN4I >*'Zn@80 @)UV30NcǎpB`e @!01Ѯ.^jF0p0Lk39Rjm0T*z9RbX,p+cxvF512fQ DSKϋtIENDB`XQilla-2.3.4/docs/simple-api/URIResolver_8hpp__incl.map0000644001725400016040000000214613273140076017620 00000000000000 XQilla-2.3.4/docs/simple-api/StaticContext_8hpp__dep__incl.map0000644001725400016040000000103413273140076021215 00000000000000 XQilla-2.3.4/docs/simple-api/InputSource_8hpp_source.html0000644001725400016040000007230113273140073020317 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputSource.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: InputSource.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_INPUTSOURCE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_INPUTSOURCE_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class BinInputStream;
    30 
    31 
    62 class SAX_EXPORT InputSource : public XMemory
    63 {
    64 public:
    65  // -----------------------------------------------------------------------
    66  // All constructors are hidden, just the destructor is available
    67  // -----------------------------------------------------------------------
    74  virtual ~InputSource();
    76 
    77 
    78  // -----------------------------------------------------------------------
    91  virtual BinInputStream* makeStream() const = 0;
    92 
    94 
    95 
    96  // -----------------------------------------------------------------------
    108  virtual const XMLCh* getEncoding() const;
    109 
    110 
    117  virtual const XMLCh* getPublicId() const;
    118 
    119 
    128  virtual const XMLCh* getSystemId() const;
    129 
    138  virtual bool getIssueFatalErrorIfNotFound() const;
    139 
    140  MemoryManager* getMemoryManager() const;
    141 
    143 
    144 
    145  // -----------------------------------------------------------------------
    148 
    160  virtual void setEncoding(const XMLCh* const encodingStr);
    161 
    162 
    174  virtual void setPublicId(const XMLCh* const publicId);
    175 
    192  virtual void setSystemId(const XMLCh* const systemId);
    193 
    203  virtual void setIssueFatalErrorIfNotFound(const bool flag);
    204 
    206 
    207 
    208 protected :
    209  // -----------------------------------------------------------------------
    210  // Hidden constructors
    211  // -----------------------------------------------------------------------
    215  InputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    216 
    222  InputSource(const XMLCh* const systemId,
    223  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    224 
    232  (
    233  const XMLCh* const systemId
    234  , const XMLCh* const publicId
    235  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    236  );
    237 
    243  InputSource(const char* const systemId,
    244  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    245 
    253  (
    254  const char* const systemId
    255  , const char* const publicId
    256  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    257  );
    258 
    260 
    261 
    262 
    263 
    264 
    265 private:
    266  // -----------------------------------------------------------------------
    267  // Unimplemented constructors and operators
    268  // -----------------------------------------------------------------------
    269  InputSource(const InputSource&);
    270  InputSource& operator=(const InputSource&);
    271 
    272 
    273  // -----------------------------------------------------------------------
    274  // Private data members
    275  //
    276  // fEncoding
    277  // This is the encoding to use. Usually this is null, which means
    278  // to use the information found in the file itself. But, if set,
    279  // this encoding will be used without question.
    280  //
    281  // fPublicId
    282  // This is the optional public id for the input source. It can be
    283  // null if none is desired.
    284  //
    285  // fSystemId
    286  // This is the system id for the input source. This is what is
    287  // actually used to open the source.
    288  //
    289  // fFatalErrorIfNotFound
    290  // -----------------------------------------------------------------------
    291  MemoryManager* const fMemoryManager;
    292  XMLCh* fEncoding;
    293  XMLCh* fPublicId;
    294  XMLCh* fSystemId;
    295  bool fFatalErrorIfNotFound;
    296 };
    297 
    298 
    299 // ---------------------------------------------------------------------------
    300 // InputSource: Getter methods
    301 // ---------------------------------------------------------------------------
    302 inline const XMLCh* InputSource::getEncoding() const
    303 {
    304  return fEncoding;
    305 }
    306 
    307 inline const XMLCh* InputSource::getPublicId() const
    308 {
    309  return fPublicId;
    310 }
    311 
    312 inline const XMLCh* InputSource::getSystemId() const
    313 {
    314  return fSystemId;
    315 }
    316 
    317 inline bool InputSource::getIssueFatalErrorIfNotFound() const
    318 {
    319  return fFatalErrorIfNotFound;
    320 }
    321 
    322 inline MemoryManager* InputSource::getMemoryManager() const
    323 {
    324  return fMemoryManager;
    325 }
    326 
    327 // ---------------------------------------------------------------------------
    328 // InputSource: Setter methods
    329 // ---------------------------------------------------------------------------
    330 inline void InputSource::setIssueFatalErrorIfNotFound(const bool flag)
    331 {
    332  fFatalErrorIfNotFound = flag;
    333 }
    334 
    335 XERCES_CPP_NAMESPACE_END
    336 
    337 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    A single input source for an XML entity.
    Definition: InputSource.hpp:62
    This class makes it possible to override the C++ memory management by adding new/delete operators to ...
    Definition: XMemory.hpp:40
    XQilla-2.3.4/docs/simple-api/dir_0d8d8d528984d74693bf008fd4d605d0_dep.map0000644001725400016040000000330513273140076021261 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_49.md50000644001725400016040000000004013273140074016370 00000000000000c71024baab9132f1bfdf6a5b8cb51c4aXQilla-2.3.4/docs/simple-api/AnyAtomicType_8hpp__incl.map0000644001725400016040000000072213273140074020161 00000000000000 XQilla-2.3.4/docs/simple-api/classItem.html0000644001725400016040000010465113273140077015454 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

    #include <Item.hpp>

    Inheritance diagram for Item:

    Public Types

    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual bool isNode () const =0
     
    virtual bool isAtomicValue () const =0
     
    virtual bool isFunction () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0
     Generate events for this Item to the given EventHandler. More...
     
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const =0
     Debug method to output the type of the item in SequenceType notation. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Static Public Attributes

    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     

    Protected Member Functions

     Item ()
     

    Additional Inherited Members

    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    typedef RefCountPointer<const Item> Item::Ptr

    Constructor & Destructor Documentation

    Item::Item ( )
    inlineprotected

    Member Function Documentation

    virtual void Item::generateEvents ( EventHandler events,
    const DynamicContext context,
    bool  preserveNS = true,
    bool  preserveType = true 
    ) const
    pure virtual

    Generate events for this Item to the given EventHandler.

    Implemented in AnyAtomicType.

    virtual void* Item::getInterface ( const XMLCh *  name) const
    pure virtual

    Method for returning arbitrary interfaces from the implementations.

    virtual bool Item::isAtomicValue ( ) const
    pure virtual

    Implemented in AnyAtomicType, Node, and FunctionRef.

    virtual bool Item::isFunction ( ) const
    pure virtual

    Implemented in AnyAtomicType, Node, and FunctionRef.

    virtual bool Item::isNode ( ) const
    pure virtual

    Implemented in AnyAtomicType, FunctionRef, and Node.

    virtual void Item::typeToBuffer ( DynamicContext context,
    xercesc::XMLBuffer &  buffer 
    ) const
    pure virtual

    Debug method to output the type of the item in SequenceType notation.

    Implemented in AnyAtomicType, and Node.

    Member Data Documentation

    const XMLCh Item::gXQilla[]
    static

    The "XQilla" item interface.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/functions_0x72.html0000644001725400016040000002647213273140074016321 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - r -

    XQilla-2.3.4/docs/simple-api/Item_8hpp.html0000644001725400016040000002413213273140077015360 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Item.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/framework/ReferenceCounted.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for Item.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  Item
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/ATAnyURIOrDerived_8hpp_source.html0000644001725400016040000003373113273140073021203 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATAnyURIOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATANYURIORDERIVED_HPP
    21 #define _ATANYURIORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 #include <xqilla/framework/XQillaExport.hpp>
    26 
    27 class DynamicContext;
    28 
    29 class XQILLA_API ATAnyURIOrDerived : public AnyAtomicType
    30 {
    31 public:
    32  /* Get the name of the primitive type (basic type) of this type
    33  * (ie "decimal" for xs:decimal) */
    34  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    35 
    36  /* Get the namespace URI for this type */
    37  virtual const XMLCh* getTypeURI() const = 0;
    38 
    39  /* Get the name of this type (ie "integer" for xs:integer) */
    40  virtual const XMLCh* getTypeName() const = 0;
    41 
    42  /* returns the XMLCh* (canonical) representation of this type */
    43  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    44 
    45  /* returns true if the two objects' URI are equal (string comparison)
    46  * false otherwise */
    47  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    48 
    50 };
    51 
    52 #endif // _ATANYURIORDERIVED_HPP
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    Definition: ATAnyURIOrDerived.hpp:29
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    XQilla-2.3.4/docs/simple-api/classATDateOrDerived.html0000644001725400016040000017575713273140077017503 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDateOrDerived Class Referenceabstract

    #include <ATDateOrDerived.hpp>

    Inheritance diagram for ATDateOrDerived:

    Public Types

    typedef RefCountPointer< const
    ATDateOrDerived
    Ptr
     
    - Public Types inherited from DateOrTimeType
    typedef RefCountPointer< const
    DateOrTimeType
    Ptr
     
    - Public Types inherited from AnyAtomicType
    enum  AtomicObjectType {
      ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
      DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
      DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
      G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
      HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
      TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
    }
     
    typedef RefCountPointer< const
    AnyAtomicType
    Ptr
     
    - Public Types inherited from Item
    typedef RefCountPointer< const
    Item
    Ptr
     

    Public Member Functions

    virtual const XMLCh * getPrimitiveTypeName () const =0
     
    virtual const XMLCh * getTypeURI () const =0
     
    virtual const XMLCh * getTypeName () const =0
     
    virtual const XMLCh * asString (const DynamicContext *context) const =0
     
    virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
     
    virtual int compare (const ATDateOrDerived::Ptr &other, const DynamicContext *context) const =0
     Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise. More...
     
    virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
     Returns an integer representing the year component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
     Returns an integer representing the month component of this object. More...
     
    virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
     Returns an integer representing the day component of this object. More...
     
    virtual const Timezone::PtrgetTimezone () const =0
     Returns a timezone object representing the timezone component of this object. More...
     
    virtual bool hasTimezone () const =0
     Returns true if the timezone is defined for this object, false otherwise. More...
     
    virtual ATDateOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
     Setter for timezone. More...
     
    virtual ATDateOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
     Returns an ATDateOrDerived with a timezone added to it. More...
     
    virtual ATDateOrDerived::Ptr addYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
     Returns a date with the given yearMonthDuration added to it. More...
     
    virtual ATDateOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a date with the given dayTimeDuration added to it. More...
     
    virtual ATDateOrDerived::Ptr subtractYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
     Returns a date with the given yearMonthDuration subtracted from it. More...
     
    virtual ATDateOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
     Returns a date with the given dayTimeDuration subtracted from it. More...
     
    virtual ATDurationOrDerived::Ptr subtractDate (const ATDateOrDerived::Ptr &date, const DynamicContext *context) const =0
     Returns a dayTimeDuration corresponding to the difference between this and the given ATDateOrDerived*. More...
     
    virtual
    AnyAtomicType::AtomicObjectType 
    getPrimitiveTypeIndex () const =0
     
    - Public Member Functions inherited from DateOrTimeType
    virtual bool isDateOrTimeTypeValue () const
     
    - Public Member Functions inherited from AnyAtomicType
    virtual bool isAtomicValue () const
     
    virtual bool isNode () const
     
    virtual bool isFunction () const
     
    virtual bool isNumericValue () const
     
    virtual const XMLCh * getPrimitiveTypeURI () const
     
    virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
     Generate events for this Item to the given EventHandler. More...
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
     
    virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
     Debug method to output the type of the item in SequenceType notation. More...
     
    bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
     Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination. More...
     
    - Public Member Functions inherited from Item
    virtual void * getInterface (const XMLCh *name) const =0
     Method for returning arbitrary interfaces from the implementations. More...
     
    - Public Member Functions inherited from ReferenceCounted
     ReferenceCounted ()
     
    virtual ~ReferenceCounted ()
     
    void incrementRefCount () const
     Increment the reference count. More...
     
    virtual void decrementRefCount () const
     Decrement the reference count, deleting if it becomes zero. More...
     
    unsigned int getRefCount () const
     

    Additional Inherited Members

    - Static Public Attributes inherited from AnyAtomicType
    static const XMLCh fgDT_ANYATOMICTYPE []
     
    - Static Public Attributes inherited from Item
    static const XMLCh gXQilla []
     The "XQilla" item interface. More...
     
    - Protected Member Functions inherited from AnyAtomicType
    virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
     
    - Protected Member Functions inherited from Item
     Item ()
     
    - Protected Attributes inherited from ReferenceCounted
    unsigned int _ref_count
     

    Member Typedef Documentation

    Member Function Documentation

    virtual ATDateOrDerived::Ptr ATDateOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given dayTimeDuration added to it.

    virtual ATDateOrDerived::Ptr ATDateOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Returns an ATDateOrDerived with a timezone added to it.

    virtual ATDateOrDerived::Ptr ATDateOrDerived::addYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given yearMonthDuration added to it.

    virtual const XMLCh* ATDateOrDerived::asString ( const DynamicContext context) const
    pure virtual

    Implements AnyAtomicType.

    virtual int ATDateOrDerived::compare ( const ATDateOrDerived::Ptr other,
    const DynamicContext context 
    ) const
    pure virtual

    Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

    virtual bool ATDateOrDerived::equals ( const AnyAtomicType::Ptr target,
    const DynamicContext context 
    ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getDays ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the day component of this object.

    virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getMonths ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the month component of this object.

    virtual AnyAtomicType::AtomicObjectType ATDateOrDerived::getPrimitiveTypeIndex ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATDateOrDerived::getPrimitiveTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const Timezone::Ptr& ATDateOrDerived::getTimezone ( ) const
    pure virtual

    Returns a timezone object representing the timezone component of this object.

    virtual const XMLCh* ATDateOrDerived::getTypeName ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual const XMLCh* ATDateOrDerived::getTypeURI ( ) const
    pure virtual

    Implements AnyAtomicType.

    virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getYears ( const DynamicContext context) const
    pure virtual

    Returns an integer representing the year component of this object.

    virtual bool ATDateOrDerived::hasTimezone ( ) const
    pure virtual

    Returns true if the timezone is defined for this object, false otherwise.

    Implements DateOrTimeType.

    virtual ATDateOrDerived::Ptr ATDateOrDerived::setTimezone ( const Timezone::Ptr timezone,
    const DynamicContext context 
    ) const
    pure virtual

    Setter for timezone.

    Overrides the current timezone. (Not to be confused with addTimezone().

    virtual ATDurationOrDerived::Ptr ATDateOrDerived::subtractDate ( const ATDateOrDerived::Ptr date,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a dayTimeDuration corresponding to the difference between this and the given ATDateOrDerived*.

    virtual ATDateOrDerived::Ptr ATDateOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given dayTimeDuration subtracted from it.

    virtual ATDateOrDerived::Ptr ATDateOrDerived::subtractYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
    const DynamicContext context 
    ) const
    pure virtual

    Returns a date with the given yearMonthDuration subtracted from it.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/classxercesc_1_1StdInInputSource.html0000644001725400016040000007171513273140077022021 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    xercesc::StdInInputSource Class Reference

    This class is a derivative of the standard InputSource class. More...

    #include <StdInInputSource.hpp>

    Inheritance diagram for xercesc::StdInInputSource:

    Public Member Functions

    Constructor
     StdInInputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Since the standard input is a canned source, the constructor is very simple. More...
     
    Destructor
     ~StdInInputSource ()
     
    Virtual methods
    BinInputStream * makeStream () const
     This method will return a binary input stream derivative that will parse from the standard input of the local host. More...
     
    - Public Member Functions inherited from xercesc::InputSource
    virtual ~InputSource ()
     Destructor. More...
     
    virtual const XMLCh * getEncoding () const
     An input source can be set to force the parser to assume a particular encoding for the data that input source represents, via the setEncoding() method. More...
     
    virtual const XMLCh * getPublicId () const
     Get the public identifier for this input source. More...
     
    virtual const XMLCh * getSystemId () const
     Get the system identifier for this input source. More...
     
    virtual bool getIssueFatalErrorIfNotFound () const
     Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
     
    MemoryManagergetMemoryManager () const
     
    virtual void setEncoding (const XMLCh *const encodingStr)
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setPublicId (const XMLCh *const publicId)
     Set the public identifier for this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)
     Set the system identifier for this input source. More...
     
    virtual void setIssueFatalErrorIfNotFound (const bool flag)
     Indicates if the parser should issue fatal error if this input source is not found. More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::InputSource
     InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Default constructor. More...
     
     InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system identifier as XMLCh type. More...
     
     InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor with a system and public identifiers. More...
     
     InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system identifier as string. More...
     
     InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Constructor witha system and public identifiers. More...
     
    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    This class is a derivative of the standard InputSource class.

    It provides for the parser access to data via the standard input. This input source is not commonly used, but can be useful when implementing such things as pipe based tools which exchange XML data.

    As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.

    Constructor & Destructor Documentation

    xercesc::StdInInputSource::StdInInputSource ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    inline

    Since the standard input is a canned source, the constructor is very simple.

    It just uses local platform services to open up the standard input source as file, a new handleof which it gives to each new stream it creates.

    xercesc::StdInInputSource::~StdInInputSource ( )
    inline

    Member Function Documentation

    BinInputStream* xercesc::StdInInputSource::makeStream ( ) const
    virtual

    This method will return a binary input stream derivative that will parse from the standard input of the local host.

    Returns
    A dynamically allocated binary input stream derivative that can parse from the standardinput.

    Implements xercesc::InputSource.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/inherit_graph_26.md50000644001725400016040000000004013273140074016363 0000000000000007115b36c7841f1be6aceb69cf382ed4XQilla-2.3.4/docs/simple-api/ATGMonthDayOrDerived_8hpp__incl.md50000644001725400016040000000004013273140073021216 000000000000003ebab46b76fcccbae88764585fa51303XQilla-2.3.4/docs/simple-api/classVarHashEntry.html0000644001725400016040000003355213273140077017135 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    VarHashEntry< TYPE > Class Template Referenceabstract

    The class that stores the values of the variables. More...

    #include <Scope.hpp>

    Inheritance diagram for VarHashEntry< TYPE >:

    Public Member Functions

    virtual ~VarHashEntry ()
     
    virtual const TYPE & getValue () const =0
     Gets the value of the variable (overload in derived classes for special behaviour) More...
     
    virtual void setValue (const TYPE &value)=0
     Sets the value of the variable (overload in derived classes for special behaviour) More...
     
    - Public Member Functions inherited from xercesc::XMemory
    void * operator new (size_t size)
     This method overrides operator new. More...
     
    void * operator new (size_t size, MemoryManager *memMgr)
     This method defines a custom operator new, that will use the provided memory manager to perform the allocation. More...
     
    void * operator new (size_t size, void *ptr)
     This method overrides placement operator new. More...
     
    void operator delete (void *p)
     This method overrides operator delete. More...
     
    void operator delete (void *p, MemoryManager *memMgr)
     This method provides a matching delete for the custom operator new. More...
     
    void operator delete (void *p, void *ptr)
     This method provides a matching delete for the placement new. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::XMemory
     XMemory ()
     Protected default constructor. More...
     

    Detailed Description

    template<class TYPE>
    class VarHashEntry< TYPE >

    The class that stores the values of the variables.

    Constructor & Destructor Documentation

    template<class TYPE>
    virtual VarHashEntry< TYPE >::~VarHashEntry ( )
    inlinevirtual

    Member Function Documentation

    template<class TYPE>
    virtual const TYPE& VarHashEntry< TYPE >::getValue ( ) const
    pure virtual

    Gets the value of the variable (overload in derived classes for special behaviour)

    template<class TYPE>
    virtual void VarHashEntry< TYPE >::setValue ( const TYPE &  value)
    pure virtual

    Sets the value of the variable (overload in derived classes for special behaviour)


    The documentation for this class was generated from the following files:
    XQilla-2.3.4/docs/simple-api/EventSerializer_8hpp__dep__incl.map0000644001725400016040000000027513273140075021541 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_7.md50000644001725400016040000000004013273140074016302 0000000000000027e0a76f05e4036a02455998d8fe7747XQilla-2.3.4/docs/simple-api/RegexGroupStore_8hpp.html0000644001725400016040000000636013273140077017571 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    RegexGroupStore.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for RegexGroupStore.hpp:

    Go to the source code of this file.

    Classes

    class  RegexGroupStore
     The pure virtual base class for accessing regular expression group values at runtime. More...
     
    XQilla-2.3.4/docs/simple-api/classInputParser.html0000644001725400016040000001124113273140074017017 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    InputParser Class Reference

    #include <InputParser.hpp>

    Public Types

    typedef std::vector< std::string > Args
     

    Public Member Functions

    int parse (std::istream &input, Args &args)
     

    Member Typedef Documentation

    typedef std::vector<std::string> InputParser::Args

    Member Function Documentation

    int InputParser::parse ( std::istream &  input,
    Args args 
    )

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/XMLResourceIdentifier_8hpp.html0000644001725400016040000000720513273140077020637 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    XMLResourceIdentifier.hpp File Reference
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::XMLResourceIdentifier
     

    Namespaces

     xercesc
     
    XQilla-2.3.4/docs/simple-api/ATTimeOrDerived_8hpp__dep__incl.png0000644001725400016040000001243613273140075021366 00000000000000PNG  IHDR!bKGDIDATx{PW4 JT;ZG UU-XAPVmG T%E((#(DCh͛&!\ xo}&>>Jg̘vҥEit!R_uNNNXXXX[[X`钒SN>ٹoI^|ڨΟ?ҥKk׮Ϟ={ʕEryRRҥK.]$k֬QZZZ\HpVXC1 [dIyyyWՇ_|s޽LHdT*ϝ;pO\UUU!!!jܼy344tҥGd:}X}1Ml}}}hUܽ{)))o>ydTTTFFH$677'''9r:uJ, `466]vM8Q{::D[VVF{1c,++++"""###444))I"WTTܹ355XL@~~~犊g niix{{!+VP(UVQ(@[[ҥK[lh&LsNWy0 S*D;""R]%'D?pڵO{xaa Νkgg7s̮6"ϙ3G(:W_ KJJ g}!:ľLMի˗>jԨQ<oyx<ޤIsW|GGǮnaa1{첲?֭[)))]  &az8!f?{EM+J6qŋSN찰0kk_~xOBl~~~OT;::233U]ㅅfғ\p__ߣG2I&־ٳg...Dze\c|>xfxx*tzs\P`x}̝;7%%ϟ?߹sg~~>`ڵBp۶mw7n܈Ro߾<طo_sssPP:1cX,NOO_pږ,Yr7o ;w+/^ޮI^|Y]]`=^tIIɴi9L8ёf>>zj#2o޼qqqٷoƍPͫ??۷wttj`VϧX[tJ:SKϧyoX@Ç I Ӄm۶$iX@adt9)--5zɓ':ׯ_D{Mx~0 {䦧O>`L8 L_ǻw{2\_43a(-6u9F"Rҥr@" c"TUrRӖdL 2b6od2ŕ+MXŴH$ar*2l`LXŋT(xYBa7Wu7b:7+W/\x`ZL_UTP.,~,񪪆/@aŪR(: ?1 'Wd٘1D[PJr \WHNBYVa ~mjԅ(L2 4, ӰL2 4, ӰL2 4, ӰL2 4, ӰL2 4, ӰL2 4, ӰL2 4, ӰL2 4, ЀFCiޕq غuwN|֭[ O&>>~f֬YL&_R!4@KKˡCLr>|8s;vh3.G߿駟vvv2 3gL2ETj/ŋE""$2Ԕ3 UZ`d2ЧR`յh{xx9㝝m"󵨨H*>}T,+2ɓO*,aïMMcix@adiX@adiX@adiX@adiX@adiX@adiX@adiX@aCr(׽{o999.H ZZZ;\e)C_ d~0 &AiX@adiaΆ 00eo .4J .0]XX$ &MjooW* nnn#FbO…  A"wwwKK &dddn~1 KKKsss=zt\\\FF㭭ۧYPP0ydyfT\&hL]+W Dg^L&ۚ5k֮]+{{ Ǔi4Z^^^SSŋt:(I!|3g---Sb 'Obp"(55$DOr~\|ycc#˝6mڮ]4xbHbͩԿYYY=ѡ/{hZ(twwwRM2%==]_oZ*>}T,+2L&>|X(*ʶ6Ba8٩Ѯ%zr\sVVPL=<<4PZZB6FPFODDD<~8**<C]ss󚚚ӧet:ƍ{&1bL&kUL8h|?;88s-XNHGGGƼ:sh0/^$$$m߾899=x=~XDpUqsV"(ʜ@nݺ@׷"^pB *ڊr:2t3a J2<<|ӦMW^-**z˻vҟD*vvvK$X@[?nLa?Dd2B-[x={^ZO˖-۽{wCC 8v 55ݻw}ȩgOG:ujgg'ϟwpp?㭬Ξ= q5jرci4DYYY...殮Áڮ]MLMM7nJݴiD"Q.lmm""" ɩԿ:"uj90Q\gN27#G4B΁'zǕ d@0,++X}adiX@aI$ҹs  5e軬!mH|[;B O2 4, Ӱ&IENDB`XQilla-2.3.4/docs/simple-api/tab_h.png0000644001725400016040000000026113273140073014411 00000000000000PNG  IHDR$[xIDATxM@~ΒEv"!d*rGq={SݧH uO^[_Xvyұ=VCff{R%_rug(?gh\i>|sIENDB`XQilla-2.3.4/docs/simple-api/ATUntypedAtomic_8hpp__incl.png0000644001725400016040000012636713273140075020473 00000000000000PNG  IHDR\@bKGD IDATxyԩSN0 >wohha`^z޵0 E`/_|UPPPuuu}}=}#??A0 ^~(J67738wz=?Z\\ۛLE0Xqq Z\\[[[bl2 ΝaXxxxhh(mmmfffϞ=Q^z.<]cںk."xNzsι&''_p"..6|JP?dkks^...VVV'OڽǡxE0}0cvʕÇDEE9rð, f̘qUsW^1b};wرƍ낙 QQQaaaǏ?uTZZwbb[dddGѽk <Çݻwߺu+%%Ν;G~zllҥKefffܹsuuuIII7bbbv~(Fz 0 300yikk+""2{l z^7ð"SSSGK*))-Zðsέ\RVVVEE͛yyyK,ח2eJL...^b ÜLMM1 ?a---]9sSEEEYYyڵ;)==h?]0`b neeh0׫<<Wp "/((o(--7xy1&i44v(_"//˻e˖#ǧ?OWׯwXQxq*Ƣ% EEu}FdMtG#O}QQQ[VG}H]]APc )pNɓyyP4 ..SNUE "֎˗?*.~YJJd1fM>RVVu:C[Z[;Ν̼}ӱc.ԳC "]m˗V]LDL;akxD%Kf**J7J U߯o?D}`1X"݇-7⮼}HK ffEEPGc _޼wĉx~lj k @@QN55dgW<^YYr"Dɩ8x棅٣FɡU|vBUf+W ZZNppQZ8(ґ܊Ϟ3G#(hȑQc$nA.+{y>cb5s:`5^^{{m;;[0kV(`9(Jݾ23vNNE[iҤa۷NnΜffyFWo'AAy~ "GzMZ܊[&MnD=p8++M3ii7=]p1<~5ENܞSR~^sNRV ӯ)ȷoǏ_//]jx xAQ uII׳P(TSqzz#f֢HȑK22~~&OPZSԛ'O^⃆g)vvZbb0D]9uGCcȶmsNȦ**jko2uXԡP>|}s ,B(.* n~9r`+g)p7)`c22| 6mʞ>}ҥ˗ò`իOqqSSo4CB#G.ʪصkEnx}rr+V͛7e/XL@fylڔtt\QԹ@"2=֌ݷo$0(6ֳ*8΀3OO}7 4PhnnOHwӧ [N`b>mڈ{ n=}nXؼ#dQu(Իwїpt=aa퀀4=s||fZc`"^}.;yE ŅPO^Uz.;guuEԡ`:UU^;.^|e[!fP5:ޟoaq ?YThe p~~`'?={ݻP'(2w_ w?{..γ`8([͚vbmx|Uq`$># W,ܱy \8HR#ś6eݺ"4꧎rllYDEgp,/N;wjTTd$$?ˋol(zzٲbb njG?E?Μm[/t,Xy&<"AQQ֭Xy'.ffQXyQ & )-]v9TDNgk;G@;9Mfq0(+kܹZ/g#~}㯌BGGu"jj /^˜DX[ka㕂OUU9pY@:g?G&SJuu>sށgϮe^=Zn(9PKK߿oAwԚuʕ צPzˋ'u\W56~_]u~jnn۴) AAsPL$cA] jecm3gV 9tN-8(+,9sw^?9r0DtpI3hPF2]]UG#/>DEOEzxĚ#u`t T??oTܹZ))Gؑ?ddnpԉHKL2JFę8J Hok#yzNAQW]]jys@3>>d"Q0(%%RPV}Xee'o|FqyQP۷{zL%/+_y矣mp8ܮ]M4CߟFjj*7we`W]]ɓ>>,]ŚVVkk?tp)oРAk׮ݽrrrlmm}ⅴ4_4-55uСiiinF$mll]aXIoׯ?_.u۷kƏhdu_ oٳgf^۷o w+,,0ɓ'kFz1# Þ={ƤƉD"H߾wW\bl$~)9sH<<~RNw?'0 KII5jׯ_TjDDnII }A' w 6~QXXXPPkߩSb&''GD ! أ/3f0663fL<wI555IIP *$$?HC… z]L :t̂ >6^sқ=z_GGǏ>.\0b ;wvԏg Y?2EG_RT\qcLA_>>OO$ ޿O{݅n^4iҺuh4a1119::677GEEaV~~ȆX^^}h4*Eтջz0)::ðO>]tIJJD"h$uuu*G#=畕ƍۼyO={WVV޿ʔ)/=:5'=O>-//1b=@lwYZZ677:u{Mə"ڵ**AS''(R(u2DG_,MMMJJJ]w]oHHH(vtt|5]ϪלTVVvz`0FQ(z4ExDS3?i~S2rerJʍ0/4hwUUҥK[^x LMS333--xV$!!ǎ555+MLL^|I.**a@0 r%%3f\|G_d2YZZiiia}UAA{x<~ܹYYY?~,**rqqF޽{GPTUlĈ]s~q]jkkGIfgggu52fz}?md*PLL3̂"DYٳ `_UWWallOߢx޽7TUUB[[c```EEő#G ~2tMMM?MFR322EP?k֬IKKh7(t===XO}J/uz~5ab[[{ORS̘1uAR===WXRTTti <==sss߾}[PPnݺkkk 0%77Ʀ_̝;wfffi`gjjzԩN $$Խ˗/Eϟٳ>'[nussF@ ^|7v?)77> OMM],:H7n9s&,}5C)'cc=^j b'?yç 7QZRM͡#F [;|ڥ…1;w:Mcl|i4ںu.<$i IDAT_x_e?xu8(nْ~3&CWWu$'ǯDG̚: uxxp~sqLQtIHHvPk뉨XMFF4"-?nJ?xQ%}|'1w= @mm||T<˸h8n@tu]]]浯7hÆS& ;E΁>mjjaq@ZZ43sgTqjjj֯_O_a@Rquu"Æ()z)A~0J@|eSCԆyT"-"" X^I$sd]]3EPʕןjhz!/o?/ ((t[Q``:Lٽ3OCg&&;_Sܼ9'CE??GUTd"YJJΞ=3'+3 wNOuzغ(9s+va"7+rh;wjSR$$,B;I@hcb[^>0\DM700͛ϨnþE MBw:p^qq,fd4t8XϟNąBBlddDWNa @iQ$(K߼uv:l53'$WZ68ؒ:e9s22 îccaEHlZwMTu^_nb7%<$&#×gSFr~u=ر(?sȑQgl-((ᰪlIE xxpCĉ7o44}22J~~'I`+큁鶶DYGOoGaØEꬱ  c}||SF剈pzu%خ(w^GiV;AuѢ˖%Μ98p|P\\(4رׯW|)D\b0͛m-}%,WQ~ɓ;v8HIS0,/̙߯OK[z萋0DrBIډΛ_dԉSgzuj{oC@lT:Sc2}|wr/D1D[ #㶩Q'{:}vuب(su.AzEEg |i|Wh#rieYT ##ja?,Ba\FNN<822W.EeeY7Pb`AʥkMLQ'bEEee~6#DUWOoʕ0( ŭ[s55:;OAT\hƌ]EEGE N\8n"Ig%%]GpPdž8[ª+WmdñcgI::ț6eEO>$h,D3z\~[܆:2Dr::YB_)&OVA[ 7' IM]rKc=7o@S-\5? (&'xaz A4-)9 kNިǎU?}{>|n߾y/8kǾ}ݧ I>~luwٰ!s2ÜåQ'BORR8>k߾yqqkk?NyeLοzmcHVXɞ'Off-s6{sr*P<˗))Ilp uyP~}$gOS~Kg'981/^%wj"qoo:Q'$~nbIg+QgeQLN.ok#yx#XG<8g ~~mbc=.^|4gξǏa0u*|uIE2zX8M8.\x`ftJp3EEnIBBldjXX + _-2@Lݾ=#dsGC]?Rppe\e`:dE12f"p844|-۳!AA>ԉ8//YjKZiڵT* uGYI\yjf3ϟ:gUPFRR|_LL8PU:%uœ'Ow u׮3NN3f.(WSG]hJG˹O߱LSWY@P^q2,7WcQQ!S!!2ePj|YXD.0pA@P+xyy5X5`/?X[zmV 2ec㱅""Ϝ:[ 2bO!(鷬45TRxΜbbk&N:7SP];aӦl2V*y:`w.O#uX/` 22|C[$';9u"6Ã۱ڵj8}cuQLO$1u*I^*y˖uv N4̝g3}㰩 88hI,-4-'"Q*} ?w~\8sG;7"9?݆ V--GKG MMDZSlffZ[; ֘3pIH<hw:ۑ]wᅠKŋEƏWbe.\x@$7N1?,58x{3ddD QAp4f? 6L,0UZ4{{={xy9uAĭ[s##Kwlf]~A_4n̒YYwN'Ǻ/YX#`Ç/^c3VD Æư/rpС,#FȞ=JEE@v6,Svv44lݚ:`G.+-}L FG$ 5((}׮w-QS֚x"ȩS/ %'N[qU)$;p/11_Yї`@NJ&8S8FztsNW^^ݤo&DNRwA}c--e ..^:` (Ϟ0l9׮Ǵ=C][I0lm};p'3>qjm'Yz(^Fqr::a8/>>?Gy1 2EuVPSSYI9T]udϟ(qAzoRT59ӧoxWgϞPꊔh+a&:: >CJGJN |@ʕ˖9r08%V^S)=});搒DjAHʲgY0Ҍ:͛7/%%Gu&1[GffET*xrG.@Ě&EA,OZϏ4H0!aQ02a|RF&ADb| GϛyF_!xxpV>}YJ,đ (--G%\0']>2rՄ ϝ:G:h(o|VR`AGI1߷.<nxܦy{gdBxxp+W'ӋbKKo=˾(INJZ,,' " ðط|tpY&4hڵkw[[ۮ}_x!--̈́tW-L,[6kNGT]ߕŻy6egPNBհv'΂IKKڵwpႩi׾T*'fEv&,U~}&:P԰TU=tua9s/8Ժu殮%//OQQ ðQF}JFDDꖔЇ ϟ8q|W񣰰`׾SN0LNYvI$R``eeeI$a8...NMMMFFf׮]6mui }uOŐzpˆ#$$$v܉o 977wѲ~~~nϯMHI>@"nrFY1*yU_v0#VE%h?i$--WY`۷o| %++͛3g())a3zk߿hnnOJJ04-...11]vmooիI&[FaacsssTTa?~lmm珌lhhmmmgϞ1aͧNޅӧOGy^7[ D"񧿬>U FRNA"Q&O޺aC& ՘^˯P_$I6;;GH?ibSSFz|||.=jmmP(.]IB7f̘BMMMaXEEFٳga޽MMMT*Bt؏z|Vh43Ϟ=wQYY1׍}(h3g 8Pb\޾@ߘ>|J0 Dkk1QQaРAUUUK;/455ޠw |||O>533Ҋolmm%H}M QSS#//p8˗/EEE1 #=^c&!!QRRR^^4cƌ˗/J_{ W3rH1c5qKKÂ?ABeb"`߾%&&.""ߟEQQ޽{]o껅6GG#G7tXSSSyEokkR^^^VVVW^V駆=}^5,,&>e E~~^//_|C$$$ҥ gуT*sŊ)))EEEO0300077۷֭뻑N>> ZZZrssmllz}kk+ܹsׯ__[[[YYiffvpNjnn$BBB}aO]reuu[6lFp7o>_Egss_^O%%]SPX}Q 5 &tvvhlyyέ[*++&''c}^Sh퓔2dȑ#G%$$ͻzz'Doonn𐐐+NKKSUU3fLnnnggg! 6LZZzŊmmmnk3dȚ-[r&{ڹ3vA@Q СB7TU@w~8^i4ZnnŐ!knel2Ap]u5=zoob1,{X[Olo'Y6nBYDt>M~\oq+:~ϯlDQ',l^ddIXyY릁g܌J-_D&S[H Q;)ؔlddlDi2J L'~~91l#ŖPgLE[pʳRR" ""rrb۷E 6Xzz/_TRuƛ3gСRїPE {7X6ڋy, ,ZdzgAQ6ׯ??|x۶jj̝0 h gj/||x?ldРYJ x<+n?p{8-X}>+)g%'Orrf.Y~|fhϞ=K_>(+{{; 6kœ9Cʕ.=qT[ho>y0yy!7Ç/s~}v#dY)klْYdElYKJ b/?cJss4HhiLQAaudڧ˗骪-DmmQuu99+ DaMYNqu䂊H }7oo@ =z}6eNX,%%tqfI#qqQEK|غvmXYDIK#V@(UpVV.۾>/S>|: $'/y#//ן?|uPĺuBBe:HH;'OVti]B"=s){Z,>}GRu :+HK$'|#:cRSEE=<{rn0?,A"Q22n͘+8ʥkwVU4}}_hnaCY{CHeʶ4=ׯop]31Q߱!4\J 7<[_tAq}jo:ȯ|͹&̑EٳǙ9sOZH@:Sy9((CBBl<8DUUVWW5)隡Y#"ϿW^bV;:UTG89UR(-]geYZvjc.oOq@3G˖%޾u?[XXA#AQT;Dm_.>> VVI$jNΊE\| IDAT+M 72R[>b\x %Μ9= Bp ȩ"#K?|hYu{nh}b<ɓUPbk:^(%%bgS[ u(yqSUuq9]38G D'˹QAQP>>|qrQgLd`޽ fRCcПaHK['6e77H/>>m߂߼ p(iӢ3Pݽ{uҵ:<<pՓ돺p!௿L=17HH'%y76~]8DbZ+0|jRuA@Qwn{L]]#P1nbT{v/O6"rk֙cUUi'uP'B2'N,NK[Z[iƌ]۷ځ:̜9fnbXۨ'u$\" ;?s昩SUQWkkGp)3}<lf'**:7UXaWwfd܁.S,zj5,6KicA@Q$%%ox`:ȿʞ̚;7yYYQ'Eee덍Ǯ^p 21Q_7 Ӧ6\"' +01Q4i XKK{PPsŋ:l5;Пh[N=;lL^ȗ᪪*-:Ňp 1 զ` w܏\m&M*,l޹szz;RR9w4U@yyۤ6"gh_03rRM..ǴDp8GGk6:;O]6cΜ u~z$gUw8I݆AQ gV޻Wjӧo--ܽ.%%0 AH/8زꀟɦCǨQrqq ;:qqftP9Jۿر HhٳÄ \]u?5vBNΊKK팉)6M{7q Pg 2::` E9sɓk֠흰ukE323}B"G$\a\-[r#={S͛l٬+Wϝ䲉j(b H&t;5@? nfw2:{vئM--M~xo/9! k8{.^|XYY;]gdܲ9$QPK>qqTHܡC. pJbb&&0Ѡ(cǏWbeeWN5JK[&++GS͜9fժ c߼:ԯ獋'L挻:_9p@Qdkׯ?yF촡᳭mxidٰ޿9+k˗w>|S͗۷FIK:'(l-bxs֌!˲~x__ !k냛6esRVV+Vvf wp~E}8P8vŒ8]h{^hA|"X邻)+ˤ- ug֬Gڵs_8/ij=ZnPPTus*W4aD uڌ wrظ ."pJJN8زe>6ONN=/ή (EMED)+˘k0o:=\}3gƖw>La _p5kRgܽqpzuʨQrvvP!3QgONSKdjo|;7Bfe-0++M $g߯]gf*)I0}.`k;xGGy؍ƻua#/gY æM!--s (ŇUU.eb4?%> &5[BD݈ :;衙Y<Ãp%^^4fҾϙ3'T}pdxK~hp8܂>\UW|-QwqXxĺu7>|]wq+B4'/L__.&VTΟ`VW,¸G0d dSSW{x \ʊW!_  pᅪ:~k>~+48m^}&,[F "XW^ˌ9*o~  Y#&Fܺڵ/^|vv>.~9=&8 e߇>B̒gkoJݲŕ*{>x:7*j߿[z5{j[$%G[tСN j/|7n`ObmDAA…&>t葿30`Xo-NFϜ;/--ݐ؏ǎ=ݻ‚s;ܸ("2Lx~ukTbbΡCvj֭ߴqp.^|OCCU~k.K*.NV˗_qs1Î[mB @ #"qjj>x{rs],\@㶷7PU+4ʕ׍ٳse55wƭ6!.1h%66Pu!!|T{N76R(9;FQЁFohsOثW'~sGzqq t%%鰰E[F\W߿W拀6oUO~ E{NN;z֭5/w~}irrޘ1"COOљᯯ]{뭢"ApQ'OƍgɭHkj- 1۞+ rFNNczo߾͝;A///ii d1t NKc-k45\\]ŸNNKZfFw`@ njQ&e@X"x2;#Eù`` *~N-O_vmWkݹsյ8<<ӧOk!׉%%%%%%醆,|8z젤$}ϲeח/ohCz h0yGm񽸸2 ,F?87x0F+EEN;|ؓۓ{zѣ:::}Kq8MMMw}e}}}99 J]fʚ5kT=^YY4MAA9s())iii466Q H@@Uyyy!2D"rrrIj=jh_}ᦦzڻw/e:::ʳfͪ}ξ7&ƟNGƎ=EQR>}z矏{q׭!Æ?~ WPDEWW_^ ?#t`Yu77777N͚5k٥o޼A***|R!{XXׯ_?˭K2ǎٳ555!!!wwӧOٳgԩS}nccnݺm۶7A(YYYARSS9sCnnnzzz>}lZ ;HU*--ϟ?ҥKRZET@mmmhӦM:{,b߾} }%+W^Z}n`3gkkNJDD$4Q(bMiikoڭ[^q lŪ*--- -[wCCC.^(655eeeh/^:ujee%(x m&&&%%%hVVVͫWްaDڷo Z@ dffU"##)Jk%u`` ˗/3[d{ImbGPL ŵqdd$ZӧOkYurrOh]]gN?Eϟ5XۚZmwk)քpu~S~ =g`-2_hǏ,Y˳/7drvvs~BCCћT*UAAi*H$Rkuuu)??ZJJ*%%%>>~ĉqqqƍF)[+AIII1b_P H]]ϼyXHj3 0tT@CC kSSɓ')#"$%Npt8钒e.+=Tp[Q`FS[\y={`11.:)##q7)EEEǎsttGhjj~_Ǐ'ohhpww_fͻwN8ތqvfϴ";())1SUUׯxKTTTvvͨQbccQJ 깹DGG:uڵkqqq ))9gΜ?" KTsFAAzsN6`ALj11ˡ?c֯ĩS}Ym=OlG*/@)o9 qqӶo,)I~kz'O[fMTTTiiiLL̺uX7L&6o OTTԤI8Ȏ)S_0=='N 8D"988H$3337m4sJIIō ++ϟZ:ܥ(7n\lYaaac~c>{S+PKK $$dcc4$'lXHz})eaon;{GlnnFꕕ۶mחr ` {ꥭ} OOOt3"6UTT*^̝;WAAAQQqѢE+Muu5Hܱc uuud2900QeeU:R`ddaÆChA&++6#766hhhyzzVUU)/[ \*-Y>|wpmt a 4ؑݻ7}]#uoMGNiEAr,,Fړ_Aw]og}ڴc--4lzlΝlþ_HS8>_?]kige=b r\Im1J;7/5X kØ1}*?.kkQĈ?bb2]{BˋgB \8s晝;!b43 xxUQ (bDh+EEq,έ[o߽+رc 3NCP0xAD11C{9|4yNdg j st4G (bAc# ii{^^&,Ϙ1COOOZZmdczz_$^^W,NMwu=ZTTvr 1U7fLXv EtBMиu+UBDEEziDDDrr====z򔔸 Ep`ܸC ]?}zvrr#n.j$&F²SH(xΟj,ӝF CB=l޼yȑ!!!433ۿ[X'mݻ+ן6č)DI*h4ھ}ddd ?P( vbtell|&7DIIssVt N  sp0[9G0yKKK3x,K]}eO>> b=l$!ዺʄ/"܊Sh*Ɖ(ik.DI*<:zhܺu P^^6;zׯ_S(67 fqzy_]]׿6TW_YN=>ʪNUꚌ֝=;h1cx{ᖪQ0di6FM6NTOFh2R[DDDIc1$'a<>II9ZZCC_6m߳fA:˧d2Ԅ].Sɓ#2Ǐ?6l-U…OZLIIg@6$>DQQ;@fۜSabbP&SlmWǏ;-z3Xi˖;>6a}m Eii1@}}3;L\yb(q MM-{>pw`bEaĉ8ڼQTIIIC IDAT-ZZZ?~hTՆI$I>N{, ;;݄{+-,'O>z;z.Ѐ[kHaE))1@mmOt(mviܹZ1R%ܹŋމ[n=rij yyyKjjj9i,X,^u2`dHHߝDX"'''%%eÆ ^^^,nBDZZy  _,E#Gf "v#"vɳ ٲ?+sxݑe˝ht[tî] RPP0m4 ܽ{QرC^^ ** SlMJ2DZZ>DKK˾}(=iS`HH#F<<=60k444؏"#6AGv׽Y]}elG^w$h47СGid뫫y$,FQ`3DQDŋǏ?g /߰6//oO7v3|T\D"08PЈɨswq UUugμXd$A anpv>}~~Ἆ#9Ҵ.=@O$]{3j<-?D"t?{dee}||ع w.W:ӧ:Ĉ'O*9t  T]CC>.n+ X^+*zoUee]BBi9nW˖9BEEԩS܄tkזg9w$6nh4ؤ\܆MQ0R=kA:Dtt4縅ÇcpC"\e\? nAfV]ЈVW "ONst4$sVOXXҲeřǘC 6:K/ȵBp8"f{7@||6ﺀ 6FQGʺ9'|sn8B = 77p/nn':(}Ќ7R}ϭ6 ++ai%4 *[ZiVkr`YK^p X 1ZQZ{˸ȑ&7~Vm2˯XEuu*gO&8_;=w.H$t?316VwoG?|Z͓TTdyj`ÂJ^4a,|SSKUUC}:gx΋2)$$aa97n O¾k"WFF.О:Xl,jqo Μy`k/.NJLE뮡() )@"G2ˉt:}Uł]vM2bb7׮&'"]llTut8?_ )) oxk޼۶M;wHW+ yÆq0w11bz/_~H(51莿ܻdiK 3ҥcbVs9|`ЗmUX> +)IVA_q㘧?3 ?i!C$x}Izy?y&&fkcblGM   ;yrVXXB5?y+Z3dϟ5992}0޽UrsE/ÇsV..U^͌޽ۏY]]?gιy:h`0l7SW߹s \?XRGFF"5h%.uSR߽+\h8UAki[E'&LXź)SEDq2::Jt|a`JTWף1eJ?WWU<"ogg4#h`#f #Fp8MQQ$aÌ9mx3o0"?Dۀ5:rdfZIYY%' uu qGH';MY3XmpQ"-L$utE(7''qvD#o@Đ ΐ򲏍 Y=|ll̞&솿pI7OڸΝ8>D"?sKې!oA)~ԄBQ*A0F }i'++ aB$i4Q{YXho>ǎy56R/dkm{=!z  o3gZu_BzzJ6Mb"b;;L3l?lj*ՊfQ5ovAXC "kĈh G|S_@''7}߾-8 #;p`z}}֭Q׃lm߼μU3 99?13jj|)0GHVW//{^p0dp:))~~/_~ut'grX[ܾgG9˘$oիoroB(ҸLpHM-Vr嵲ȑԀ</'pUU4cÝ;~Z7wń잓P޽$aÜgdɳ]]]N!"D03bO!5@__YEEKZZ)v0C 4ZOp޻۷O)((89lǟ@4 )Ǔ9믩x<>(v7kʊ~ WPcKKoX ))yz]_jmy9"MdeŽ=[ĉ8k"*++qb{{O=yPYYCGFCwdx=k06ڙ?D,VdkՊIÆ)BcBO[>cc5 o#P9IgΙÀ}xrݝ;9iґ$c…×- ;sEWo JK@RQPT>|Ԕ|YY EK^}#''1fLp)v}}eׯ7]XMMn[[d9۴i† nj>aC<=٪:bbD=E<ק9uS:v퍇2;a q݁ȑO wRu8t鸍# 1dY֯ d4؃ߣSSmmŗ߫O#I ǼUUY__č11-,vomY9mϜbŕ.Z (//fM]E(ZZ|R*2gJTWw53pxxaV\!؀Ùbװ޻ݻ۷O)-qr]W[wpvѣϳ$>Y);pA^^Y6:T*Md?|(pZW]lhh GT׎kqˁL ǐ!KSS f<ϟ?488Srwԅp FQGGQKK!11~yDf޽ed4"0vl_ީt"bw02jȱu{-u"#痻`?- W2maW+BR$%Q޷o;w9;$H7!t:&d?))  z7hN`za 06Vsǯal.'&愇Gݷo 8>A())MM-wuӿ~?RR]]mx' MSd[hh:~DWWq[66gd|4NQsg9Dtu=WN%KFnrrziiD`YQ2İ;_(+.m(޾NVVbީtp<oFc߾-3{ZUI&>"s떯GLଫrծ@7\‘R'(jj*hkJL}%=58qD*H7! ۜG,X0w 䐗Xbl>uqv~ߓ#Gf_xBB:22ROM-P('?àAK^^_*k\>ņ9^]]q=XwN5GJJ,,lA';-on|_gsYYBT,Q|PأeVUUn."`ɿ˧(bmDĒ/Mڵ7vvr~2x oﳏevZ~r' Eek]ZD_?Fq`aKgdt&*ԩt {Pgchqo7<9K\te[ۭAA|;H:9ujEB$]Do /^|~66@ PfTWQLۂrv*S>r\ 99hgW9Дs YRDD2¦]JտD3QX[A &=Aln~Gtif TPWuHJ䰶x=9Yp[\zxօWk͚6de%zVъ, #F_\YY׫4t**2ig*HAOLQ@95>:Å /’{z ګY\|ϟUFwTD"80}Ҥ#ׯxx `ekkE* ÷&x<..._IVV9Ӿ7oSFs񣪰ߺz:rr^^OarlQ~:5)mlty4&~RQQYaiv NHȎ[kU>iӋ^k’^&7eJYikⷮu+uժރv옂1wkhhvpghzN|p„7)q[,-|)=--_l3<\pW&D|~끰F\ź)SED!8S?v;,,)0FG=<i}hH44G4Qgjnn15`pfo*QdMO1y'LXM(ǿ}…򒾾-,geu8*$d͛)+W^hw ʌv4BLhl&2~E==%O?Qg|\B$)v duTXXhS(*Ldllt0W$˖JHvp؇rm?<<ÌK/w4 (&Fں5,-uQ~EYlGj޽Ud|w>;֢1 h D2559__W6FD,12R mmypvaQe-XpI^ ={nL}q32 Wg`+?  YY%&&lm(Ufe;;$H76*6a_@8 8rdfZIYY%' uSυ8wx׹gzڵ7kjXciSWהgJ!g8p`oYY'Ol6lO3$H7QU,*)@/aEVV>66 &f&Ǐ?2{vHttS.[[7 ;hbal&.Nj*)i>E"?bpźJ6GNN0WP0}JpTd޾}[jl.^| gu_@DĒϟKδ{Kj۶ɗ/'1yW6w9F"O(GE߷Y!VVk^2~)ܹnŊ+o):zz"뒕uN7mP_ܷ閭ָW?Eڵד+*j66 V$^Ow::aaddћ>>Y>~ӧg=ܸx R3fJN.PPx`^552fF0 vp?0nSݻG YY%&&j+=8|1B-jکC 5:}zvJJe^O 30Pu˷쏻*/3}iܱ.J/((Gd2RdszIA o&X&&攗 G°ϟKLL:9I^`$4PYY@Ə=UU9__/7ܹgay}7\LHt!ի?:rd߿'N~iG1㔣իʪU2&A5kƴ_ lFA RGFBh~֬A uϿP(*8𝂂~ de}ܼyZ [[[===~9^^^^_޼zD xyُkF|K#UU&9uj1l#77̟BvB [G``g<6(}X۷UU))&IMݬ!Ϻ!CnuFxzz^v* )~_i~ ,O~U~Ǐ3ь**ӦGן8WwY&%^&eÁ6c"}޽=yِ!FCfgePЃQgĜ|gk %%Çz)3E!{11;YTKnnrNqqYd2ή76 [qb996A)jj;jdH;w7Ll'>VF'&ozI&;]pEĉVy]u˜_@{ˠA 2 f} :r (66`D+<G&1811Rdiiuio EeΜ!M]]Ŏn"@FqHSiiwŠ_ʬh#L@0&::GT*۷J'y,Z07>6 8~/?6`_55ߟ?!C\YYYP XF0mSqk%yye**2,]^爙Ǐoܸp:ƍ xÇ?|xHSS e;;NPf"nπVT$ JJ$277>FCC㹅?65QQRR޽4~ a¦M'f]&&&CSsUEE-62QQQ\rаA怀ee倀_{l˖- VmmةSJJJΝ;G$kkkǴ/_kћ-))!{XXׯ_<==kjjBBB555O3m۶q!%++kcc Hjjx]] 3gtppMOOӧϖ-[Z+IKK+++C@U}YMMTWWKJJ3b{U쌅(**RTA&ߓNF"PQ|~ i˘1o˺ l쪪,,,l¸ibbRRR^ZYYotA###O?}ĸn_D"߿NFuT}ԩ蜵QDmjjʪh/^`X:jnnnsh/,55UZZy6l HUUUsqqA+>22BV^|xn!~~zAœt, kiiQSS{) ...w "D$ioBRRҖ?X"Q]]Uloo$̐_hǏ,Y¸YPPp8S~~>zPXXhhh155v(((@拉ܹZ t:ƍϟ0aBee%111f͚wޝ8q1]\\mllFEUUUOvnnfk%(ѧNvZ\\\GC2dȟ?^|JeY077۷o_~}Ȑ!ZZZ?%DD>}`VV۷U)&%嚙i((Ha ty^ɓh)S֯__XX|ֵ7n܈.-[;Ѿ=z[jjjI$$QQQ&MbL&744l޼vt8...'N8p Drpp H$˗gffnڴKJJxݺu/nlld:0uT_v :e۶m< "{"pcDEE䌌 uuu صkWKK v a,r/緊HH[͛iCaoѣ۷-s*(((**.Z>_ccc@@'}}-A""" dITTfJ=EGի'<==UTTVt]3V]]M$w؁ H]]L dtTYYj*g{U FFF6lh=ֽhǏgGUca- e55lm bYYڵkV0s;wKʅuX AAAjjjj HMMɰaY\\|}9DqQSS4\U\Q֭[`,"Z)$%%ՋHKKtB[=ztvvׯ) x~ǏuvQ,SA|)X_NNB"06bCCC.^(v*bqI&//a[3wSc  2>? FC%1M 2SKeeTTd;[[v pqyyya[`*qϟ?͛7PMM {&--ul>7z1q&&&߿gsfMh5kУG-a--0TԳKDhF?niŹ/_|߾}Æ ۼyOEE̙3oߎNW^ݽ{gWk1l 6L7At&Q0J^^ʕyMEELGhi)ybONԓa;o޼5kDEEĠh,`*bqXXX̟?ﯪ~\ZZѣ޽{Ϙ1q 1VXa///6[[[^tM,nv뭂wml47t^g4|,3g^)[;SMG /rOi\lssm\X)"UD,544TLLvcrr2y&Z>}lܸq]zn35LXhk!!!JJJ~~~ J2DZZCf\3~Y d6(EEګo~G e+Ӌ~JMM7;* DFuE(((ٳپ$N?y$?rH.Yn6 ?n`` //_!hܹcdd&VOs-NQ $^_i+FAEBnj9G))y+ѓKʴo BdYXbG>mڴg***<{fLLLYYYll,BAk΍&lG^4F礦櫫LN㗀W65Q~zJ.rE)X!\癖ӧOxg KsHg+׸ "}~}('O̙y(/ ?BkkSqss[`Ν;ۤXB.\X[[kmmݺ ~pocZ277O>*fffdϸ/'#UGyC_VaʩS+ ) dV?JJ߿?PĂR,#ocm⟕^΍̼!b&wB_zՋQi#K3-㊊gϞmٲ5om8 BcDܹC\y]Sӈ}55 L?zNGu1cqwwj^^^3g411(FiɥK/]`߾}{URRرCFFzԨQ{i… X 9sY܄@ |'D55 m pp;ѣLBM OJNXpww\~Bɽ{---޺ukǎ߿f999OazS]677&<̬p8ڠJ8>a޼sܚ %YXhc)uׯ_E ___~Yjjj:= B|p߫۞rk~ngQzwhI&***Ο?޼y>>>oVVV};LoTTTde;tñyfD[UbfάC**jCC_=@ ,X0tarȑ@ ^ F@9_sݛD"}Ĭb3ۣ(.>y2ʕג /\8# w)ԩ}^گR_0^w)* =xΘǥ;C@VņD[/_R4SS|9'NpqJTj GRN/:14˧0aD(9qGÕsr~H,\Qu$))1 $"h׏6lwxxك>ןzzJ=Ӣ3g^%*)l0^\ "QQ3g1SkMHɼl;A aժ48\XX'kNLٝ HO@deNWw)VhkQl5nn0 n᪪t)FtGMMcuuhE pD}G"֬{zrfnYXX=;A mpuGk4Z?-,qڽ-M ٝ 5"7ozѣ1cpc[,ύNG>LfGGW\"/N՟4z˖;#Fty۷ a_;EY9$?l~}- @_>E XV).gVY6d:/^xq@g55e_{ĕ? !CA^ -RUq-WB+ (st.z>. Ma*=ݵ(VTX!(GJy$ct I@1_ |{ܰ!e3dH$8՝`4L"("v\{/~1TR RWWc 'E.gnc+A*+)/T"B($dAPρ{^jB:!!T_߁a"ccBA!t`تUi[!Daii[Mx& aZA!*j# mm-_6{}}+{Vw3)L !ffĶn\qնD*NRkOJ%*SRm[ƀjk@7qP8Qqs߾;~(J"ll"I"( c-,RS0c4GG?i~[ 7!$O pIDAT˖yOT::zŒ]V+XI?BC_@W=0gy%% zDDioiڮ0F{LUZGGOxxDb (\TTey>ߺbqҥ^R)Pccc6R"W0C`,cR O?0S6n d4= xkNCGGOxɺv\T*yj9ӧO-,ܓ ;l"Kc(Pɍ>U(G[#^8v *+. ںpH8zM1mrP-;E&n,WFc`@1wnJ_ߠ*‚SQq‚kVɴBl6z\R^ƨNzŊgx69tu=3̈˩2DD}23c^@5fY brA&\g>ߊm)*+0w@+E6ܹwff\$:U]̌4$IKO(S HV((Ɲ`ZL4("wy3) Mu-88()ybp| f;"b,/g#-#"BH.Wmg-` /:uhٻNcQ0ݠ611AACIy*+4᰸\6EQyyL0?\P(B?Co/<(PM1 W8:v-uwյS _q_[[j̪i#aQzr [[q;_*5u=IYY"\]&&A 0dUVV5% >]j3ߵ<Kml|{)ӦYLfO0֗ sҪ+Ν;8O^7^UUU+V0\{17O3Tkԟ)*!!!F룢Fܭ`fUb.ѣh-22RLqDD˯y?FF#a^F۰0_=y<O>і7ؿ||ڹsgjj &Lwijjzŋe2Ӷ M x}PqFppƯ"_|~)ϧ&'';::&%%MZO>9(((??رcvC͜ +ѿB xtPR)B(''ۻ!$Abb\.;}3g,..NMM9s}dd2hx.еk|}}/]R([ZZZXX0q~mӑ`!.y…#G\x133hkpAh+y\,ƍGQX,={@ И84g]T*Ҽ,Yr]f^&;;~ǎϟ?^Zfhii}6Iddp]:ѣ"/99!z[n>>Ϟ=ӑhF왧O.ZHWGinijj?}ɓVJHHP%|?RN999)?Ç(*773::zݺu0P(B /Ze˖0Lޡ o̙3k׮];mejT@_!?~LMזhF77>~>[\]]0 QxHQ֭[rrrn޼y5:=<<|߾}<$$ԩS\7oNIIڵK"hEDppիWe2 Ù2ebxt9<!W_d'N0x 㘘__hPBBC\\޹~ {M1r|ҥVVVx#"왙fff*޽{$I^reMf36mҢjuMp9WWW>ק1Q*?SĚzyJ(4OOOKKŋӗڞ)~7nnn !!a``~Q 5&KG @P4E666111IA gώ&L E`E`E`E`E`~cqqa@ Aj~7ڌ~]rhz[ϕN,`DK x3E`E`E`E`m]IENDB`XQilla-2.3.4/docs/simple-api/classATStringOrDerived__inherit__graph.png0000644001725400016040000001440013273140076023065 00000000000000PNG  IHDRQbKGDIDATxyTSWoLP`%H)*RERcm P0e8XtP PHEADdI*;T@7<}MCD}x<ޗw_`I Op<My/冊AGl|*))IOOܸq#33S6QFFxŃPJ > Op0O%LLL<==+**0O>133m-((=++ aR(TTT$ B!wrr㏵mkk;sLUU nnnl6$ 00ʕ+czhGr]>}:`}P۸bF؉:~89GV(cpp}222>blڴ[駟* jmmmoo'HW'0;\0gsssOOϛ7o(cJl***z{{{{{[[[mF<_oܸ曟yMM{}}}CDd@gggBB qqqD.M{]WW,Xg嘕Cv>`0\n[[_&9Ao+oI33*y Bo쉦|>_S|Ra fܹ\.oVUUEvD"388HRܹor\GGG-Tv̙F43~jjj'O?-]xX"NWM 55'r`hxj*7+))Yx'O .,,ܳg… x ooz@{GN8ӳ~zt>۫io`dgg K.͚5k؃u0\>uԆ|S,M6*""ɓ'*F@H$qqqL&N1 klle2K,!f }YXX̞=ܹsZd.K\C~cP )5`<<8I~>\C#$Z&S(Wb|Y` I}:8e J}< H&361qDa{@y '8@y '8@y '8@y '8@y '8@y '8@y '8@y 'HО@`<;QcFٺ'zlX= @PRRRmll8pԩ3g]v2a"`ömo(?IIIǏ%q$4/++ÞV.+K<ĺo4jM:Le°anO}}}xaÆ _|ESS_fѣG ށՓòeˈn߾}nnn… kÆw >a%F]v777OIIIIIQXK`=^6'8@y '8@`b:rٳg8\NR{ t>ƪ&592d&c' `ɒ%cG/-JFƭ?wq>}:б t>.p}艡c'WXXɑFTrr Y2Q# RraXiiPmy<*+(RRrÆG˽MRu $$yddD.x^dt|ɓiC  &cժFFȹsϜ1d0[l0  Op< Op< Op< Op< Op< Op< Op< Op3M~GBP(qqqˤzCҥeee%Bܿ_.:1naKK=O+W\jռy rgggKK˃bbblق?gjjZ^^eݡqqq Xd2Y||<ŲٴiSwU'>ԹsΝ`0bbbA:O b̙IIIvqq!Dd@ggիWR)aOvqqQ(ZQy{{{ ٳ.51BBB qqq{286W...vttP[ OT\\Lܷog0t2lyyy]Q>|T*Ν;&uttĆK@M0w\."8*ƉP[ {ﺥd2=^`^f2@)4Jݰauuugtttٳg㛎---xYMMMNNNxYNi@ 2o<<MiǎޮOrf>|9۷o?i\~~~YYY˖-e[[[*Z__o͘1CPLfcc#^ؿC*@uu5,|iu9tYx<J jJKK+(d2akk: A냂ݻ5B->>U OOpzohx//'''<__JhקիW+(ٳgg#ebb"D*.[ 2'Dd2tz``H$RQr86Ǐ׬?ⰰiӦYYYEDD&$Oʛ Op<(?ɓAAAxM~~޽{LNN1cFZZZAAAWWwppɓ5 'xF%Hnݺ% Y,TJ3///lkkp­[ZXX2ŨcaX~~>x'OOO x0uCuttinn?# Ν;2Y``Hz֭[Md2N8QZZzС),[;;;Bbff6,mfkhhhnn޹sgmm-xʔ)94NNN111B!O#""Fɓ'-,,>d{{˗'&&_tihc KKKkkk77{eff2b;񔟟pEXaۛfggJ\]]۶mlذUVV_|X~͛70 }o~ qnnMOcc \Jx LJȡ*ׯ_~DL67E*~C+kFGGϣ8#/z+Vرwǎl6-322>s"0׏={SN= rttTѱY8mmmxٳB0))СCeeej{{{_zs֭)SplvDDĩSBBBFmĞݻ+VVXРŋl7|_r%(((//Omˈ777cccu֙XptE´LMP rҥO?`̚5+22Dm7b5k/XvɉZ|ϗ}QfΜD")**z !!!iiiZsڔTYZZ.ZHomm9s ҂'oܸxW^Q}ʔ)W^upp(**JNN]&)fFIPxm۶}xMjj* Ӕuð}X,w]WWGd'R{|>_$5yΪUZZZjkk5u111Yz_bPxcǎ)L#aݺuIIIb<-- yfH}k׮mݺZ'zqee]B!qgz;w{___ZZڵkʡ}||;VXXURR2o*%trrb2<OgΝNJNNnmm6mWhh(`鯿ƍ/^{ ֭GqqqJHH~wmmmvvv~~~FFFC #ַ-[| eŊ?V F[re^^ʕ+ʡݍRc:;;gϞk.P)>>~q A,#Q///ϟ໿W__Ap}؀DW_uwwٽ{~zJnٲe˖-d\o{9Ay T_GTUU$0`JwVPP@!Ct} '8@GT۱IENDB`XQilla-2.3.4/docs/simple-api/classDebugListener__inherit__graph.map0000644001725400016040000000026413273140076022316 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_9.map0000644001725400016040000000032413273140077016404 00000000000000 XQilla-2.3.4/docs/simple-api/DOMDocument_8hpp_source.html0000644001725400016040000007766513273140073020177 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    DOMDocument.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocument.hpp 932889 2010-04-11 13:10:10Z borisk $
    20 */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 #include <xercesc/dom/DOMDocumentRange.hpp>
    28 #include <xercesc/dom/DOMDocumentTraversal.hpp>
    29 #include <xercesc/dom/DOMXPathEvaluator.hpp>
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 
    33 class DOMConfiguration;
    34 class DOMDocumentType;
    35 class DOMElement;
    36 class DOMDocumentFragment;
    37 class DOMComment;
    38 class DOMCDATASection;
    39 class DOMProcessingInstruction;
    40 class DOMAttr;
    41 class DOMEntity;
    42 class DOMEntityReference;
    43 class DOMImplementation;
    44 class DOMNodeFilter;
    45 class DOMNodeList;
    46 class DOMNotation;
    47 class DOMText;
    48 class DOMNode;
    49 
    50 
    64 class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
    65  public DOMXPathEvaluator,
    66  public DOMDocumentTraversal,
    67  public DOMNode {
    68 
    69 
    70 protected:
    71  // -----------------------------------------------------------------------
    72  // Hidden constructors
    73  // -----------------------------------------------------------------------
    78 
    79 private:
    80  // -----------------------------------------------------------------------
    81  // Unimplemented constructors and operators
    82  // -----------------------------------------------------------------------
    85  DOMDocument(const DOMDocument &);
    86  DOMDocument & operator = (const DOMDocument &);
    88 
    89 public:
    90  // -----------------------------------------------------------------------
    91  // All constructors are hidden, just the destructor is available
    92  // -----------------------------------------------------------------------
    99  virtual ~DOMDocument() {};
    101 
    102  // -----------------------------------------------------------------------
    103  // Virtual DOMDocument interface
    104  // -----------------------------------------------------------------------
    127  virtual DOMElement *createElement(const XMLCh *tagName) = 0;
    128 
    134  virtual DOMDocumentFragment *createDocumentFragment() = 0;
    135 
    142  virtual DOMText *createTextNode(const XMLCh *data) = 0;
    143 
    150  virtual DOMComment *createComment(const XMLCh *data) = 0;
    151 
    159  virtual DOMCDATASection *createCDATASection(const XMLCh *data) = 0;
    160 
    172  virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
    173  const XMLCh *data) = 0;
    174 
    175 
    192  virtual DOMAttr *createAttribute(const XMLCh *name) = 0;
    193 
    194 
    212  virtual DOMEntityReference *createEntityReference(const XMLCh *name) = 0;
    213 
    225  virtual DOMDocumentType *getDoctype() const = 0;
    226 
    232  virtual DOMImplementation *getImplementation() const = 0;
    233 
    239  virtual DOMElement *getDocumentElement() const = 0;
    240 
    255  virtual DOMNodeList *getElementsByTagName(const XMLCh *tagname) const = 0;
    256 
    258 
    261 
    360  virtual DOMNode *importNode(const DOMNode *importedNode, bool deep) = 0;
    361 
    417  virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
    418  const XMLCh *qualifiedName) = 0;
    419 
    482  virtual DOMAttr *createAttributeNS(const XMLCh *namespaceURI,
    483  const XMLCh *qualifiedName) = 0;
    484 
    497  virtual DOMNodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
    498  const XMLCh *localName) const = 0;
    499 
    513  virtual DOMElement * getElementById(const XMLCh *elementId) const = 0;
    515 
    518 
    525  virtual const XMLCh* getInputEncoding() const = 0;
    526 
    534  virtual const XMLCh* getXmlEncoding() const = 0;
    535 
    542  virtual bool getXmlStandalone() const = 0;
    543 
    551  virtual void setXmlStandalone(bool standalone) = 0;
    552 
    560  virtual const XMLCh* getXmlVersion() const = 0;
    561 
    569  virtual void setXmlVersion(const XMLCh* version) = 0;
    570 
    579  virtual const XMLCh* getDocumentURI() const = 0;
    588  virtual void setDocumentURI(const XMLCh* documentURI) = 0;
    589 
    600  virtual bool getStrictErrorChecking() const = 0;
    611  virtual void setStrictErrorChecking(bool strictErrorChecking) = 0;
    612 
    657  virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
    658 
    659 
    719  virtual DOMNode* adoptNode(DOMNode* source) = 0;
    720 
    741  virtual void normalizeDocument() = 0;
    742 
    743 
    751  virtual DOMConfiguration* getDOMConfig() const = 0;
    752 
    754 
    755  // -----------------------------------------------------------------------
    756  // Non-standard extension
    757  // -----------------------------------------------------------------------
    767  virtual DOMEntity *createEntity(const XMLCh *name) = 0;
    768 
    777  virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
    778 
    779  /***
    780  * Provide default implementation to maintain source code compatibility
    781  ***/
    782  virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
    783  const XMLCh*, //publicId,
    784  const XMLCh* //systemId
    785  )
    786  {
    787  return createDocumentType(qName);
    788  }
    789 
    798  virtual DOMNotation *createNotation(const XMLCh *name) = 0;
    799 
    809  virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
    810  const XMLCh *qualifiedName,
    811  const XMLFileLoc lineNum,
    812  const XMLFileLoc columnNum) = 0;
    814 
    815 };
    816 
    817 XERCES_CPP_NAMESPACE_END
    818 
    819 #endif
    DOMDocument()
    Definition: DOMDocument.hpp:76
    virtual ~DOMDocument()
    Destructor.
    Definition: DOMDocument.hpp:99
    virtual DOMDocumentType * createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)
    Definition: DOMDocument.hpp:782
    XMLSSize_t XMLFileLoc
    Definition: SchemaValidatorFilter.hpp:35
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    XQilla-2.3.4/docs/simple-api/functions_0x6c.html0000644001725400016040000001765513273140074016404 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - l -

    XQilla-2.3.4/docs/simple-api/classEventGenerator__inherit__graph.png0000644001725400016040000001275113273140076022525 00000000000000PNG  IHDR;HbKGDIDATx{T!A\ TBQW;Sm*-P=^Uiѵ89h J-Z( % K_BI,x>y?y$0 b+sX4B@h utt߿_ј*!rDDDDDD$555YYYʆ5_unnlA1mBN4a6<@h ~ 4f ;;J<0o|Uh͛7{{{3gΘWr8 *L&$H$ڰaaOOϩSgB={챹sfgglܸqӦM}ٽgnoowuu<_N CQ'.Yڵk1V#f>qpp **!!M $$$T+V`^p뫯ԩS?C@V'%%yyy-X`֭@~~={e'%%eddm۶>Cccc{zrSFIII7o^ppØdW^y%::Z®]&H-[o߾VvZc=\YYB@: ߟ HR000`ll"$ҥK5'1ڥ O>sA&7ק ~ͺWe2.-- AcX鴼aR ?O HXssnz Rr/_&?ʘrN8 8yߏV2=22kXB-4T*N\.V*N.nnn찚|ddFGGID"eC)ήAP__?~cܹ۶mkjjb_quu#˫1`mmMd3ea233U*ܹsܸ\n{{;iokk dZV@ww7_2\;ooF]@SSeD0= ݻwwtt466._|ΝzﰻL'%%=RT*o߾xoo˖-[*++,yfX.J87o\~=ze⇇~a@PXX(JJJ/^< x/ h4wdvhh(::%&&fddDoEchÌ{zz:88lڴIwzapqa:::===͛_ٳ^|E8ryw}||(~TիW|cꔔ___{{+W}M1߯t!3yo?/ ~ 4@?BaO^ wGgg… Md~xxxx<~b8:U(jj)YrR鏀nK?~̙:J" qJsl=ܼ9-.R@?nS^8xVg\2w9qK<՚O?*]E~ܺjӎqui9?qc9K'?VV?|nQі}38xˌ%Y [j-ayJ8{ss~]jo"ko$aqK: >dr9ōgݏ:cjmnn̖cq, J1_7{r{mcc3N3.--*44܅X A?B@h ~ 4@?B@h ~ 4@?B@h ~ 4@?B@h ~ 4P1qS3ZN[[;UL P8n&_kɒ%3,yf~mM <3bB~ 4а X^^n򎺺>&kk%KDGG|)^~墢"2?ᗿejj*?~GO~b~ptttvv6mNV;44|G^}U"hdd7mSV@G%*矯Z~קj /BCCW^7$C]]]XXcO3 6Hүz>lXXӧ'WP(}uEDD|GJR/`Y~NbqEE0P[[;gΜ ˓dǎ{?N|W~allcdž[RzzzI$ӓL3'%2''g߾}B"(33sǎ郃J}}}iiiD"aY~K7XjЕ+W… >,={ŋԐ$/_v-χ%zQNc111=322v"`dd]Z.++۵kŋKKKtE: zs JOO'ׯ_ Ӆۓ WWW MWWyw;i,ˋDvuu{r\[BB,?!=CoIP vgٲeGK4IONNNNN^rJ*))[J&릞 1\Xeppp`"=((HP8qBw 'x"==ƍ퉉T^z?رcW^=ydqqnL?'=RRjT*ɩɭ[ؕx#Gd.##㩧,ˏ;wMx5kYF~ܹ۷o񉍍5Gѥ9rHKKˮ]~#Gn~L3甑|>ǎ֭[bqbb^%{quu}lrvKJJ3,kXB@h ~ 4 mjjz7g{AҚ흙fQj5]$tu5w-S`0~3Orrj=_=cZ,<PQqE.2x~ܦ_QYJ[~zhL^^˱Џ^$b \L6h,[ة޾r9-B@? .qr|F􃐛[p0f,B@?իz5$\FJUcz, /Trs(f.utw dm-,z,ǹs 6?aA2 O=A(*EB#B xzƥEKa_:B@h ~ 4@?B@h ~ 4@?B@h ~ 4@?B@h ~ 4ИAccc~Fcfly{{0ϰ7[]eqFjf-zG<@h ~ 4ޏ~FBh";;;H466YYYC444p8IիW94ˠVw ZZZ~_;99 ?_K?fڵ.??ڵkEEE n:L&ɪ@? //O/ Msf;;;WZ% JJJx{N+1=]ipJKKʕ+vGGjlEE{V. 66Y&@i>zƮ[NZnj~ rw|Iaz-]֭[[Р~Uy2\" _{QZ}!HWZIJe||@ X`A||Rdnݺ82=66X\\LItAa\\\͍dp;___CCfNd(⋅ ~Ν sww_:åYMV]hѱc{> sySRR:::5GkkkKKbl"$ҥKSSSAAAAOO'|I<v5Dlٲ} awp$:yzzT*Jp\ Ƭ_Nf:~N{L&w"^<\ eMGuu5#;K.T*սVz뭥KrSN50?kt1J^|D8qBɓ'IUZZ0Ȉ}MM 07nܿ?YXrRa{9 F$ 0|Bh4+18\ Sb?ݫ7o0 ?V$LO e)~h45k<3---$FGGID"'͛ }KK i4Dw5yh4[[ۺ:v]4s$C0EEEW \@gw|hSSSu{W_}5;;[7RDr8kגg:㕕?Hmoo'mmmBۛ}D&\]]u*jzw6m;{sHDObeetbfrl9EZ[[hdddBBB]]ѣG'Wbp,s7nZ.^ W\\VYYbŊ{?}EN,KҀ>|X dŋݻwwtt466._|Ν$[y||I$Vƒ*ֻVwLihhOLLlllONN^l4wpJJJFFFɘU2yǗgyݢj}||^uajurr>jggvw)jO?.f``_tqq#/)))+W$o2a\\\bbbFFF>>k3Do[TիW|݂uuubx{Q(?(HJMMuvv^pѣG7m$*<\DŽߏٰaaE~DFF@NN 4@?B@h 1/<_!7ndND>_<@h ~ 4nb FIENDB`XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.map0000644001725400016040000000330613273140074022241 00000000000000 XQilla-2.3.4/docs/simple-api/XQException_8hpp__dep__incl.md50000644001725400016040000000004013273140074020532 0000000000000079323f71bf6129b7173b19ebcf5410c1XQilla-2.3.4/docs/simple-api/Numeric_8hpp__incl.png0000644001725400016040000012523213273140075017051 00000000000000PNG  IHDR\@bKGD IDATxy\4MdK$IJ-YH(J)Z$EE )L~]df~>9nP(0uY@QEE_ݻwS0/<gϞQF٧-7qD ATQQQRR pг?>Lu "/((X{ϔ֦_վvmm-"` W^-,,dXw666 $(`ll|СFt',,Ƙ"` -7{cmm휜GGGSS˗/FEEQ@"I$ֹԦO>mmmmjjgϞ>ݹsٳ=InܸaoooffA:}\Xݻw/]4ܽ{nnnN*))\zulllss3auuu'N.//?}4Ucǎ~zڵ={}6..ϾnݺuԩM6EDDP0,##cϞ=ϭ[9`Pːuss @ommǧa1 kii0,''gGvww}6UnnnSN~R9rȑ}0 >ByyO>s$(V/\xww7ohhxS!!!222L]81 WPP0ή`?|ѣ1 {-j I)`1RRRWNNN~) a˗ގ֩S>|իM6edd4==Çz<;;۷owV[[ӈ]]~)cll\\\| Ä]\\;Q\\֒׮=3''ĉ2 3f(̙3vذ>e|ԟ6 A; jps+=loF|''+WdFTssGiiUqן?{VO UU嵴͙3vڴ,6!-1|{35UEH$ry뼼yyϟsϞ=FWWYWWy!"էO-ɷؼ`ʕsơ{ ?ok#*)I(LTS(Ruuu>e%KI)++13no!//:[aO. į^: &{PYB))yWSsN ]"USӷc #".驻|,@oPׯme7>N6rYƪ0EW]޾mܿ?'-ܮ]KO:"xWvgj:aΤI2C C(R=~>00͗j[ P\T`.;7'(K- g'..vؕm^YòQD$""pu:9i,*+ z{EE_JI on( qj͚3BBN0A u}sZ-$={CC 0Ѳ=P[}ɨG`TU};5v숢"MCEduSV  a9"ii.r|;4/_ڂ/\8Q&#c݌Q'$(wuu/Y"!YN,pC6<<ԡ 8S5|Yp.^XX}l5~qâ4bc]ZZu/,^|p s_le ӰssW[Z#ú†6#۠(TssǶm&&Gy|6o6IJVVTEE?w0vƌ ))bbrq=PWܹ;{X;1vԉ}YX^oM&+__J E+cQ7@Q 66NN (i4CɴsP98p0v:xܜ'N8.]:)2!u f? rl22֩)NG\\`1Ud24R x Kaa^.gg-ԉ5(z;M >"fiVZZaϡ5V\\u"n5۶-BE_ Ν22YYLCa`iS2M&SPa:mۻ֮A CMɅOݵ}}2 L}H p,Z˕ђ|}{aP35ܹ;[6m$8K>ӛ, И< syʕ0 eHjmXm::Pǡk׮qr?w 㔐pGUmܸ9"-196c~]CWgW9:EWWuګ#Hɨ.}X߽{sV+@1!WSRSUU%%Qǡ#KKKВ246~[6.>},Ez ;VJ\F;9y {WDۻROO1_Y`C(>y^O@Y디5xPy0!\h飖/?%Ȑ 76>,++50餠0_P_l^)ѣWYtzBªaQ'+:څTkk'8`{Ngs`.~yi sԾzܵkۻwIFiUUUѰ?4lٳ>^㖖0/>?x6-me3Qaa"""~~~ SSӞ׾zJ\\/c (//4lBI]]]]]͛71 ee6k79a%%/SQgMo޿yj„-Ƈ뿢΂W9͛}ٞ044lkkлp< Þ={6lo7va؋/Ը^{}Wi ņg/Vڞ=[19yB0455a0nܸo߾䰰0%%%AAA Bh[?~.\:u*T`cCC???//okg͚a$ ]]]#F0 EEE))) >|޽ ۶m*++KEEgѱE211q޼y .0aB<wY%%aÆaBV>>{wo˗/+V[4H$R``|oI9Meff?^BBӳgw._VRR233YN z0a5>ި~lg@:BH9Ā;E"_y挫4qX۷o.\M="##'TVVB{{oyycǨssswxt_moo')))...ƍNJJ:x`xyy%%%Q(+YZZ'''kjjRNJՈ#xW_|RFFoׯ߿{cN*aϟ?|}^!7!!X׷o}|?Acq֫5Gedggu%$$geea뛙Y__#D"=00ðL>J}t͛7TTT=zq8޹s皛D"@WqqǏmmmg/^>?---sN{{6B} ӳѣG[n}K=zڵkkjj9֯__UUUVVe;;;'lDDׯ_Ǧ~vŎ(*fX ո-MuZY0a \m CCCLB$)JzzTcc#HܹsF||<5E raÆ;vFTTgvuuijj P777;99}߻|5a„L"ػ/www==L&+**Uxyywo^LLLJJjƍ| =FGGMSyKw9ω9ruߟ_SСrr^7nw\#>|j9qHrrgƎ˺ D@@ׯϞ=:/|ߚ>\VVVj#O z7rsEh&ĪçDGLj'Oާy@Eի(WWWY*9i/\".,$;O֥QRbfnݺ<|YgN!!!wwwgS4lOsGF:yӸim>%>&E߼2=} R0#Z [h;|#?{XϦm3 ĸ@E`(Xp_?zT: `,V/ 1c4,WWҁ: `sTϞ- ݹ+ Qo:|}"/).=OwrDhÇ _p?!0h ȓ'=m՜,sjׯ7oLaH!qo {'0rdlyN@Lo'G?SC]Ԇ~HdKˣ>z pӯ#0d1{Q$)>@0ןo|ƍzڃIZzcx%~]7D޷R_zTWEWrH , 1޽7np~Çg=ڵ:HF,P*,[hs{LS7g DBBl˲~;EҥGG^sUUyY3>~PSsݻ5 bbV]$SH'(*6ֵZ[{ߥKacA-/^|X.a,Y3]& IDAT޽+Vh^y6љXT䧧7)=˗6ԉP`7&0 r(vuuY;~ΝmJvko){ᔑxy+-} {.ZbҢS][: `.%%/uu$$x(( GTT֯'OPgbYYuxx0^ssMG% VCgθ޾]e8e%OOɓe==vu 0]Qlk#_5nr_f=MGD8Ĭb]g.XTIWWyŊHw_ᔑ6899jjrPglm-$0FCCʕ׬?•+-|AAV'O()Z@qsԉȑb۷?~ΝjY;`WPd%!!: ` ߟ?ÇV9b+*ʏ:12RX7ueIB,_>k 7&vt:D|b[qT 5`kիl:m <"Ç vw3zr6#))`^xYkcuÉEGBDbpj "?]]eԉEFF4%e_~݀:k~}< J?,EGwt:@ʕ'z℣0DV{wGGעEqq%0dUW:uuNRxxъhwH44::FlْfvFQ7ltˢBkj>Nz{z_z>=؛_|su6`=OMZ0KK](G]#++e9AAH$;ve M cH!IlmOΝ;`ӌQ'bFI^rGٶ6"D@gYX YAYϞ-ijj||^Hjc^~w77]fNO/>)lfRT 8܁: `%ȊbWWvvGF0ˏvttee71:kן3lᡤۨ㰒@:`%Ȋbb⭏[<< D"})JWwbNq$Q'b%RR"))kh{{'PEE`ŨbKKuII8Mduu_"#ou-//D[?1qիaB&SPgMQ,+~^I_[vF8ij6L`D5qX۳Ǣ6!uųgK&NVQC;`n޽VRBHIz]}{ 񒎎s', (YY`ovk'C||0dJ3ԡO C^:]L p\FE15 ̦1k՟,9i}Z:2 'dg?@ ld}ł_BPnNa|׀ .^"$ē5u<8LZZ$=}[̶m$TS˖͜|jf0*CuHYY&'gK}۲ŸBAbhQ,/m22NlmUFg?{WӦdOϳ]1 uWYbhQtѨQJJҌˏ,-M$s u8C)KYZ.1~uÂo8 q-\_Cc̮]f URm_$ss99YuCĝ;3Ë~RRwng\r$qKZ]Oϳɀ1هOikO`X-ظ1];$Ću+"ap8L^~Ę1/n=ZPz:lSffTTvD0#.+*zŅ={ ztM޴)yދY,QV9,-g08 ǻ^6n br8\),0(T+L}VFtrLKlo?u6_Ss,0>prreoɓEWio[5kEv: +`\Q,-}5shu衩۲ewNL\NM~\uXt:%''*l0_\tgD=qq+煅|چ: `+&2/@[o. =zx\m3Ktty脓#(*0dmaJUxϨiGGŋꊔ`+aS;: 5bLMǻ1<zG5k;u#vpwP('OwGϽ{dbrDVV41q/o7$3, i}u[lYBBrul:[0@d2eK?: @çf@G}ܺ|yoL+"a$ 0 u +&fe¯^}FXnݬO֡PbDQ Et,_~D"ǯb?"SN=sUYV=xM ||O:CQO33dq{Q+, EIyܹ;N1yUUUԛv~|Џ7o899 a8]ЯA 0ڱ#s 0,q >0LP"3:xҩSWCCm,PBDDDw_ajjW^!]ck,س+C.PFI0@|i^%K΂ݻw_ue==גϟRGppjwDͩdPRHUQQȑqa uuu tgaQsssOv1cl߾σ,-----G~~ȑ>>>Id2Oa]]3fܲ%uht/YY6 $P_eڴ66]]bSSJ/nee'_;;;+ Ê( u/^Pnj ^)Jvyyo_ߡRGg@>IoDkkIAApNNFiUVV^zիW=OPQQ..ϟO>=::zKTT~ZJJ p8]]jqAAA w1 -,,,--7o^qq1@\w?0?ߚcRL0ݻw+c쓒nf0;/%"y uPpoޤ__5:څaw}6,,l…#222q5A7dggu%$$geea뛙Y__#D"=00ðL>J}t͛7TTT=zq8޹s皛D"@맯?ð_뫪ʶlbggA02r۷]ttᢣo㳙6лKqq77ߥU:e"HPӥDΝ;444~)R(6LNNرc666=_۴Npw_/^nrDo_t^VnʂҋѯoX1~TA/ʢ#hoGŘ#>|n t;vd^d+c6EY[RpS"s՞rrff;p *"L˫>ww߾>+" ii:~wZZ{mKR;r9*&om}qhFNnĨbA@Qd ~~vv::Qg#]]II89Eips=8XUݻϟ7kG ::Pb!!Uxϟo˖Ogtu"(('!n~xgc}JWU77:@?߾=ꃵ !h$]]\zu.x˦M)Q#qq7'h Y؅ JK_iPgs0k㲲EE~AAVP88pƪEE~7KwPg oi>tyg{PYLp'̚:ȿZ[;tg.3AAԡָؙ<-[Μ'%u{ZjwU 캺EEOQ4E>u땏> vق23/KK[$:ѐ@ W{ 'nܘ`aq 0Uvu=-;j0݆M@Qd%ӦDkiش)愒tA:S ;ϟ_ѵhQͩ,/.,NQqϟYoK&;a 2*{q XQSm}bbV2Ci#/\,'BS󟄄RM!DGp..Dۑ:&!۰<(B\ןrQNҶm鶶'F" p8͛[mlf,^rԡILL ::OϳU Ռga ˃.^x୷7ʫϟJNoex0;||\FܜƇ<=65}Cj0ƍry| uck;+n(2rXuDi$(JDĵE|44qtFƺ{""ngٷ2$rrr,AAaXz@Qd=Bs5-f̕+祦zˋ!YZ_e;vd=yzsS-f_ߤן,,rr*lڡ" 8z$ <|NOݻSS=<3Aݵ,'NjD"/Zm[zK ޼P_[Lu5ܤdTwAAQdv+*zx,`|))e&&GdeEssa'V4i22ݓJ#Gl"Xe' !!]]eAeiP]hh…'Oed]knܘᡓFBB^? V| PFtw!XcVZI7om̡"S+)yykui]SТދ`'6 *b֞G X΁#]n߮޽; uVȸ:$(L-44_CCCwv?~ 0̙}?x>k8yC6'O^eu899Uo "󪬬zٺu crryɲ99^cH0_0Cp(ߒ%mKg6U׭ 8w& na'V|":t(oDyqFPݸ1aʹ+a 0<)iup𲴴 ]u_3XxktM _SU?^۰((LcNN Xhrp޽[Eġ:oTy;k~Ԃ:Tp8\p2IIaG濽lzzzyWW7 AQdRaa TQ[)2-nTlzw`xcl;22Q'??wL|s_uЇw˃}jo)5Rݺ*?qϗÇ ]X;"NN1īWvmܹsw﷖dҝOdeE-,ߟg:OȈΚzGWWu{(2B Kӵ׏%N׾Yvk,>> Ȣl_1 0՝8[v[55 ƍ43:OYXmޜ.$ċ: 0|t%&Zj>]T{ҥa䴴C"bflJ`D"x9ڥ3FO;YWǤ[YNx:ON8> @Qd:QQ\\˖ͤ_MG999RS0@èهmj:"a<<u55ŕ0羆۶-9sϟ[Qg雠 ,z(2v]\EMgSP~~#F aP\FFt9GBNMM!/~ͩ'pe8<#<܁@;;G1$OKKj濇EǗwXAX>|>>lJ%ٴx++uÜiik߼`Rԉ',TYYkyY6wa`@Qd"$ĉefҩ\55}[,爋sG,JIIZQQսdTDB~oS$U*)I9bYČ˪qrr,^<"kD23꾺ΥG㭭'[Z:V^|B q#Òm[YJԉ@ejm\VXw,%$DË,Q\P"bED]ݗTYYQLM8oe0>}ԥK#<=϶Q'[͙35Nd1 ={ 0ˀ, WV֮^M̈́)wңGW /1rLj dccU OPɓ+30;r&* ,=a$|P^FFyXg'NM&/'7 u"fdd4_^^Ppp.(";&vxʣGUUQE)ܻ7~s…i811aߛ4`$$cc]$4 a&ݜ:u&hhxu0 PBhhcho֭;bPXω ̜90bd4uV7~sLqʪUS<`] xAeP{ˏ<B!ffB77^}u <syi ٔ)fWLOOZ ̀˧ڵ7%q͂5kn89Y5ڄ@X@{{;ờݑ<>qwdzumcH+4ƍMM FpVUUeí6!1|nLq|TrF%K.75Q(98 FQЁFohK֯_7~s㌌Sܸ8@zdproo]"=<+UDx?#"SefVo!f@7R߉N=ݵk&<wxܚ5vnJL̝8hff1_dhiɟ:5/$͛"=94|ɓMuimmcpAp /E!&))LƂ>ALLlĈ̢Ԝ`cQUUhooj-[6ĉ? sQ^eX| MO׭)2226mi{͘18$$ϼk!o޼))))))IKKsqqa٫G 7nx^m{k͚F>زea:K\{D ?k+hÙ3#FZXhrQQ'Nrq{=8ZO<0aBcc#@CCx:JJJJJJzzz*/2^5xooEOd̘q {wP4Fk+}ݺPփLxQ'O+'%=(̒/r+KTee_G6Jjuu5 44T__N>}HJJ&661_,}r())*={+q8˗ׯkkkKKKTƍ6nHRmllP*<h>,\P^^^MMǧeA|||***I$LJRQ3,A@ 122ׯߡC;v߿kjjj88 ӑI|~Q%ϟ_ŗӧau{dOT1ޅWqt:WZ[СnbSϟ`REEw!ry}~:_֒ŋ#88OA._|%ۮ'Mgg***9xٳfaayݻwO<AH baa Hrrh}}= ͳIKK4hΝ;+AwtzEDն U߿Z .E,@u.v:gΜ/*++>lll>l0gw [n 5 O?ֹpᅺlmOXXwmm#5@"֔hhx߼+ݽ/lQVSS311ٹs'z8((իW̺:K0 gϮBŴ4&)))tF  Ę%''KJJlذa֭$Îh]V m|mmC@:-IJJ~dgIbWP ƶAxx8Zm 3F7A\o t:}ɒ&&~eeX۞:u s)1Â~p-!##|O>\kf&&&[ YYYAAAͺ:**++˰aWQ$5J~~2joognn.!!7m4ss󸸸ɓ'h4Z]WWǏ할$%%;?jIFcL$urWtU@EE k##3g(lV&$Lzt8رի+=Đ!p[Q`FSZZZox`.:.%%mTΛӧOy{{wTUU?~էO'olltvv޸qcJJʙ3gЛ]ٌVdyy6T]][<eaa1~8(***\zNNj{%(QQQΝyfll,!/\ӧOȿ3ΒA@W_VQQGSSSǢ̰։ "Btt<PΝ[wS: bb>Q4~ 0ELHi7 _R).N5ŋ{yy>}4** x7FFFFGGo޼y#---d2qǎ߿GFFN>Ȟ5k֖-[ gΜ6lD H$5keddl߾}޼y000ؼy+Bn5m222222V^]PPУؠ,5q wBMM9MppT[ۘϳa!]YWsNCC+r+{N255miiA$""BYYeڒ6667nL9vX~Ϝ9*++ntSlCEA@J׵-[|9JSSSC$݋ H}}=Lm먪]NNNYYy]jllߺuk!tP FP(yyy?;K0R6 0~SSkuu5LўbŸt_؞1cGksQĎleu))7g}}ͥ57ŢMtxwCl" &&~+Ǡ;A~j3gV6=g߾Cwc/[)v\oiinivffŋ/m(aw#"v'b0'*,!́F#ӗ,oA6mmb3N!Ӷ8oޅ} b8Poڱc>L\SAA *@AA$'O6尝wߧ; -nDDǏ=g8xy|$Oظq9l$>!܊Shʪ;Uj נS6nT;v}2SL{.mv„ YYYo߾mS&,N9o54.!Cv-Yrw]t ;LYy]bb.f=B_몫98CXo|KN'uw-U|XUUh;LR[w:$MR9H /^ B7ۖ",,Cl?l Hbbmm#IHVSw]tzc[x|J&2(D9?}*ںu T.dee?fRRUCC(E:d@$$Ap*w[ CC6U oBJ;*j]k+}ʔRSkkkws1رFQ44#ƍw&rrlzC (w1mڴG7oT*U\\IjV@QQQ:حtN"J2qߓ`YYY&45s橈a!CV؈[k8uaE @]]_t(}XsȥKqu7o߾/_y&--m׮]'OD!1Lm!##vZmmɓ'mI+VO kfgg'%%mݺ͍MHJ\x1W=<w~~XŽO$^.yx>[^[Yyݛ7ټHٹްa{h4:-hdu\TSDϟ3gСC߿QݻWFFFGG'22SMJ9RRR9DkkÇuuu%$$lll jN555彼ntcS@[b^IEe}x{^4'Ota[|uGFKKۏI#G<20RSC7b{ sD"ky)S[nɋx'!\˧$FttzUUP[pʕ㤥Ź( Wr IDATF6xh}MMt,OԔ uqFUUii<"X}*++e(H_*$#..NI?VPLM5^F`a)f/~$٫^SpkbblN4!>ȑzkKKMW^^97vQQ5ȑz^}Q(*+W#<8{B0hoKqD"TSH@uRR3gkq;vLWP Q#+ x8u02ͭ}b)S̺/ʈKGctJ n߾0x]Dl\DQD}11)bb/\xɕ;`e-*Jz&CX,/#D?ވׯK*&߿֬Yu'!89 ැsfNbO2BZQC٠-sBBBʕ%۶]3-y88ph|qWs0ccU /vJ|9?|[nWSSۄf jllf~&&l SVvtdCED:ڰV+GX&$>"׮-8~ Ƕ :`q\|)ImE>QА#½ѣ k {xh"? Db)vǍ]33K\\Ύ? Y:+H$™3  zIS7N20PZ:rq8p[`&rBlZs[; Nx@ bH{P(bnn611>ƌ1 xnasn9O߱cmw{!$! ='_=ᖶ#޽˅S߼yMƠAA\])Q^"O D}Ϟ>:}ڭb5+= LXt_^bP iio>u32"(Q|⋑"=J/*^s !z"sDDh G\ٳܺ8|>o'q1a*0pQT%K.76LD //].MAәbnn'$dFߌo^h":: ۶MIIBFF_[?@{{;w<߿g; #;ztnCC]pVVqg )EccƖ2zČƯ_K߿W~͆ C2؃@$//WQW׷95""jg<^DyyÇ]BCq嘛at޽)Q44T%r-O#Z=xƍc3x?ц(*[21Q۱=𬢢OrYf HLdgK?gx?R(oT>T#-;=bCRRVOk={Zgg+()r"fwl&gĚ@VV E,4tܹ>B("v~DЂ6|cQ$d7B++V I=Z_KK lC iW(8gθ9 9CTt™3-,G ݼa"_(77~ZeŒ/0`_3rz޽#M~288@9l٘ի/\xvpkk_}~Ԥ< ELWWGBCIKM8G l#q+mknPpۧn:y׮Ȟ=~ NV57!T(AԄ5))JGG͛\\D G_S䄶@9&L8p,00sKAqcm Qȑz߲ϟl&\$ff(b~ffB6SLNγY˗_;w$A8A(yOO7oEGo01Q;pࡹ pvpaaHHڵ7zkoƍalw=lhkhjkМ)URRS\\!! :zz=[q`g=D!甔]{*-rvԨGF[wpp%K.'8y[I;lNnny6T*Mh?~,p&&jW]lhh Gd/6MdrʫaM ȑzaa;Ch/Y2?Sr,-5q8F]`m54d߼Ƹ_Q4`@)$?H$L4w @$Q}΁{_oian:/ i)n,aM6Q zZ |8KF7!AHbz{0Mܻ0HBBG B t;!d?IIKL>|zjCCo 00PwϫqS,.ģGy-,4߿g"m`MJknnžkc UU'%͘a;IAO݃En"i_XJMMmZXACC޽5$qƌT\rΝؘ+]֟{|0#G575eezBk;U!x wqf3{0 Yu5;ٚݻ 3OlASSnݺО@XXh64|R–R;(ʪ{]sB7hPόif$w B$9PPZtgs.CFF<,l''OʕuD&')sap]!IOOFF߾efõS.bÿ;vipq9;#!!lpg3Yݖ76V]?节4*(_ۣ{e^QQzذ"`ɿ˧(bUXʗ/7Ϝiy;k9?sL<~Ǐ3-f† 7{:d)b z--/3/g[@8F1FOOq۶)8{v(iժVV"|;H?:{˃<&]D/ ^}z@8?FQEEFSSWf4հ>S|>?? >pW.ML[l̓'@4…#Wȼmo !L--z&-Aֽl""Rtuz4}*(+xz&$lo 07{+1QpvX~Æq _?A]ƍa,:Q(bъ, cܺXUU߯4pBFF"EAA4=**uV4c(_>^*88A__i:DEI7_?b$ѹӧu+e(+-k~ Tyǎ5q!%ƬN޽-/ N&έnߺ:nn6Ϟml 䰰q5&@|ݿѣS0ZXh.Y2jǎ_4&E!+Y99gK';pϊkUpwY,-bœ&jĻW))IϚe9pu~w&_>|Y8cǺ[zzW. N͛mZZ f;xݙVzvO##e?y.hk'D&z %|y,˰w66{'c!O'*BL|ӧRmp U WPFqڦ<>j`ܟ--FF*(EAfΜ!4Wk+}Ts@XDWWa۶)reu_[,;M3 \tNҺu7Z>\?lm@Ih2 84ZZ:: Ϟ}H*R8::]IIGGB0D]WWB =D"? 1Y@zxƌ1 xnasT,\VVڷoớ˹{΢h,@IT~U8R |6D"~Xe X4\QsPkB=3?|u[SuŊkhFY=ksaa+|)qs9_?ݻg^ж[SӰaE.!##?>h@33m퍯_2~)ܻvv ] }]CCyɪzSSsOl6'44 k\QQk--rr~޼xVbee݈zs :LT~}+sv>!\JJ4y'>.~mՀKqZڏF*d"JC=`jk} 9o HHHΝYYCݲnF^IIlA8dڐ{RT:@^^]p(h7o=J:t‘g699?((PBC=de%Z\bbo?$S@hR8˗?ی+[y !!bk;#XCC%Vޕ3Z^jکC G?~AR_fgO Q{׳j7 ))@jkO+A-"L05*\~"EԩodWTa_vsJ~v  bpT*m'PT}j{^&&j;v y0}vk*."B]c)NS(;BX˗n{S_>kXCl$A JmjjaJHbb.UOv{j9Vm҉ HccY85{x<.993Q\ pg82""oJ䷐.SR jjƍ3F&{(f'3u_KK7o Nq?.\X "B$ 8.--i##pzzdV_43 ZZZ fu~, -Z $tIvvvWNt |ҤI8.;,W$'3T*38 Y ۻww˖#!TTQCFOH>bte;RKWW֭$A<6''[e8vCݻ7cƌ␐~atu~~ǏIX]]?i%;;ǏVjQi4z]] 4Fͭt:B CUU K籍E}('0𱇇֭Cŋh9stY[ 2p8 (̱:w.y$7\AABcRׯB//;TA}ﯮ.//^]]ֹ ̰˗_kћ-))!ɋ/Gpp0ϟ\]]kkkεϟTTT0{ɓ'#IP,,,INNGd޼y999iii ڹsg{%:cff~/_())}Aqq񊊊6Y+ca.Rd'"DF1|K ^Ẻ할׾_=!}eA3TXڪ3A8EP( )HD{~ HQQ5S$jj23mlt0222˗/ʕ+n+++p8goo744wfΜU-YYطoߪ3&>>3^WWGReeeD%YYYAAA HIIH$R뮄KHH$%%M6<...66v2ϟ[WWͅU4v?'!899ݾ}A;w̙3G]=d&cV@5kVxxxEEӧO͛yB }A4""i-`^UaBx[aaӧ켽nˣA߾}G***}uUN߾}jɒ%SNbX=::3~7nܘrYwttʲ?~|LLL\\j Bn?1999할DEE;w͛] aȑ~ULLLW*V999EDDܺukȑjjj?%DD;wXffa>SLH8PEVV3U@/^Ө(YlRPPоmիWNt&Lpږ$..ΰzddәmnnnii!ɍ;va23g F"lmm455555$e͚5yyy۷og8咐000ؼy+@ ̞=cС AcŠQF޽ݝ#Ev`Ĺ~H$1"##drzz:z___SSSIIɡC߿pHӰ]Lma„#kք[[;zӆ"^ѩSLMMQLjeeetKvѢErrr˗/o㣢"-->ڹ aaa:::d2022at3bGǎׯ3g\]]vt]]3VSSC$݋ H}}=Lm먪]NNNYYymNU566oݺ۱0b 11Z6sO|ӦMHGy9qĽ{%傂n:LƂA???%%%?WMM ]Epׯ_޽;pqƵo޼)/oNN\W}ɹKpA~OU6ܼN[{#'zUXn [,LFɓX)_(D HssA/_ Ȋ+,--m괴Ν;׹ V"Rg1X;mPfδ n JRxˆɊABB`Pm EA Ԕ{e˖[ ߿Z]]  ׯO622EԘ|Лbbb%%%g444^zŰ"|Q8pummmiii???JݸqƍTUUUx<@dee>|YpOSSS%hEL&]|yW\ j6'CBB7$$֣?~ddš5kyEпHg|:u]2 W8W͛7NAzXD{s/]&L[]]]42>LR[[{]3좫~ЛODEe}\w ^^L Eh!QkllVի̍bWB N>}:@pssk۬u{޼y31Suc aaa, Ah4*a o2l޴| WҾv @yoJW7RbeN!.9.677xX  ekHHȋ/?~ΝȶνړھqJ]:1 xBEEfuMh?饥-TTeŇ!C0TԷKDǶ>}bpUs-..^fÇGcJyٳZ\]]CCC8Ay< ++KEEvM]0:nN5qe^SYY'//էIIjjJJzXjpX0]xƍ###KKK]4&0 W8WA<<j+WV^VS:ndҥ8Uq^dX*]TppћKgϢƍC"Ɗ0 @GGGFF?D}ܻwO__^^^MMM obG?P0innNHHu/uvF("|yĉG( ))WYyz[g~-QV^cU\E&)ϙ3ŋJ%/^]^^b M*^!h!"INSV^/)+kn2ƍm]e^dXbGsgXrРA!!?S]CˍY!h!SVV}l({',-,-5/\xɯ: ELf 5H$O!\iҥb #_lY]]y*Y{Ò999 j2p@uo/-#UWyC_Va¹s+ i˖N/(K|Χ0)p{.SsA1/^8p`ehB9;|9~QsF%c)uҶlrUCCô4???OOO~Zjkk= feٲ?~TGEu tBa` d a@ H/Eն&&b]]]0)B/&zQֱlW#"@ ᡗ9ڴzE򺯺&@gG),,}6U0F&CeOaa:~zQhd|3gyW}}3@BB4aQSS}6-PpdqqcI!55O ZDDN~K@xN\>p8OOۨ ^H;HYY{;v-ȑG>**-{:,ؽ`n;|;o+szL0}ON9~ܕ54:̒ՀIee]PЫ_KG-]:ZZ zQ$^^v7 a8pCC .13v Sל={[qqec-B;z)ٖZZN=i/ ͝NTZvO## S "Fe$ooh!_3Ed*&۷2*fdO'?̙7oSVٶmp@ =SLZ:fZL&(0aNff5!F۟yzҥE@ |EtxNrnn7^ن/%zz7!(jgwӧcoqs!{2dbHL] p„#yy 㼘ax%5kMQbcc xbe"gf8USp'O|N520E̙rG>E--""Y&/+^6A$&g8z֪5@ ]"$FHo8)"\oJH*(q/NGbb>98[𒼼Ç##׌o] BbӦ r#Lv<:;"}vTIcX蒒ttWk[8pM/oiŖ[ZhRd|VwCK9~IQQAAK` uQٷAxj.6Kv.Ub7ޞ9󼲲nt7<- @A"`&3Ngϭ6;/~Vfc˭{/uu7o;}i]]x%%i~@ 68tfKmtu`uu4eEA Ql`[ӑ}V%ߧN=-,pepyy[وv+xj@ /O+/}3 *{Y6m}|5^|Rh! )W=y9CTUe{Z}HFAAa)`v'a>aV};?F/*Mfw@ +FL&M]p)*Riefw@ W"aqz 87)N}(vagwƍ٨^PP)!!"//uafw@ N[FQOOqѢ?2TVVտصS @8OdADx7S4ۮ 1H1?ֈbb>m6իK@t }{o##֓'cNze˔+ǡr{L q8  "&&c4==Eu~2|Hffٳ):: gδ,3O~J$#",-@@_4t:2u_"kN-*ѐ >lY\l Oe.#ԩ|44T^bY0'E3޿ߡCY o)8_IK\qv>C h4: 99A4/Ą (wAM}l\Ap %^"JmUZ+R:TRmc:xX^Ra<0N-*3/ %9ra96Oy>,gwA}Qtl٦ψ5:UzF99qQQ]w^Z1 [2"V/&%]T*8g)dEPn߳gFݭ(,0iZDN0JMM]11'f`v~T 0_2hV'vZ_۝L#*ju0 J_]XV?GW0V^2!-Z4+ q{#([sNDz_Nh7##o?:.X8%-`Jt:f\}xGaaIQYO-ٺ5Nדh4gƩ9zVĜljR*jZ"y3uܜJJ};n"pBnJ9r?O8BhԶhL@* 9DLá0ڑ#o۶|JH/L&&xwtvtEwgM#0CCy %l6*f1*)Yב"B:~# :W㨢9^=G?yGb˖3ԌR*5K!# c+a2"V"A$ Ϲ\{&S^QL]ô l׮wml&{+Ko T]];5#L ^^G0yBa9!Y0bI!`͛CC}caUY٨ˊ FlD&NEd݌R*bi3 IDATLUNN#::ڼΔM0XM3 v%&h4b*Ob27/e2] VM}?:d]][>oM01 d Pz"` :)/1=064ie2RMLɡPBt'ĜlhT*UzW`2,C7(N0CJJ C F]h4 Ō}RR/T<tueq4ҁ?W_/hL&]ѐc..vf9{y9N~~\~~`__45kbJ$Y 0QdHj3Fc^rkRZ**ګoq;Vrgx3fdϜipqaٖZ>?o<wZSS9}߹ӂz-,ӨYSSzj, /~朹*?1k )# )# )#,>)>}4>>~j0˗/bb=~x:bB3~'㱱o~c'Z;^06,>)zjhhr2/ U78_!z{{wڕp鋜Ν;mmmϟ?p\. !"ѫ5??4Nqv#""~E}Tꫯ\.w0==}6~5??GZy``! W|e<z{/xzzd2ХKBJ2--Օ秥)Jӭ[%IFF7Nj#tk!ŋB*Jo.;;;6M=E.!777d$Y!brssϟ? .2LCANhIIIņڡn8ۼ~z@@Çs)))CCCz ǻ[# ujuVVVPPo}]j]&??ߟܹŋ}i0Ro'޽{(_XXZ\\A ba͚5䰤k;“`I2K Ph7nXx1פ9sԐ˺zzzL? 4M__Z6T]$MduFٴiNnn>VR4;QbM*D"q\V}Qq @o!n?9)Ia={V_#<f1kgǎ;w$ ݉)֭kll$ʃB́DܹsBZηo.++Zja BT:;k<ʕ+b47:&qvppύZ1Gٳg/&? #QMw# 8~ɓ'׮]Jr\dLVVVFW<<<~wj h4˗/$$${===zDFFRSTQ~2DzkkkJJJVVʕ+322totq̙37n4;am꽩8B Z1GѣGG§ c޶5ͧ~|ҥ7o111_~essseeeddS>gvlFz\.f23f[],oڴh ~G\~qj BP8(B&4beTo ƽ{wCm={rϞ=5Rh6K$%%oHkl߾oz.u<O8hѢaǯ]N\...;v^ܷo֭[e2Q[ ,Vްa5LOq\TX׹DU=77ɓ'dɽ{0 rtoYfm۶xF$/uΞ=rq}#C%T*UVVV@@ˉCpC'___>:445S?Q֨>00K F@RF)IU`P?oH$X >oNi4ZggEf7F=f%`kkkNL2˸D{z1?~sIENDB`XQilla-2.3.4/docs/simple-api/dir_3a8298c6d836e3decfae5f8e60ef8e7a_dep.png0000644001725400016040000000657313273140076021753 00000000000000PNG  IHDR}bKGD 0IDATx{TWd" *XQTZ|VrEIRkE#T ,҂,E YV[Q(#n(A!dH ks;w}}}@;F N!q q q q q q q q q q q q q0֪H$Dc OOO~}V|~y Ol[ U*xΛnɉ3r??/W).z}r—z{{:pK>>K^:W_3kMFFjAA3-?8޿nn38xիu{%%Ŵuwwl„]G\7X(66,><|8-!a_uuΝq XZzJBBjRR̅ g&)@ZZ2 Eط/Ύ +t?'簗׊={vKM~ nSrB^DRi'( cc&RW/jRons5!!ꫯZ[[JJΧ#௷daa|p˖ kbDDڵ۷9]MMgN6s cDz?n d2<lӦJE||dKKG89qrs |ܷ^=^ m q q q q q q q q q q q q q q q q q q}Sa:.~PT6ܼyRm_+t=.c''Ndd8d|ǁxǁxǁxǁxǁxǁxǁxGO}]| cccLj7j >xbD&Ok v QPP2@@@@@@@@@@0r,^:(:D":u;0{kkkuuwv-{PPPly]]׸4xǁxǁxǁxǁN{zz>ˌ=zРfg7뱿Pi֭[8iYdvyzB'W611y{OɌ:y777tk҈w _25kL8%A3V23Rψw(,dX) y@璙L@ 0|7XRM<_GLiЯYlnJ#~@ (J(*88W>goj쌴~= Ɔ `ƌt۫lD" &(LIOދLMMgΜP39sؤϘ1bϞ=5fϞmkkc\\TFEEFEEhr X,.6;hL}3}ΦARIvvvsscnjRS $INN|DrQhooWxΉ۷oڵݫqwwl]"P% d2J%bƍbAԝjkkLںNݏ:::*++Ad2>uڵak`xӧOK$Bd2Y,A뫪bccׯ_?&&ݻ555>>>~^\P((d ˜c(ǩjNNNEvnk8::Z[[d2%IHHդIl5t%lmm_shwuz2Igw6j1mmm ?VxǁxǁxǁxǁxǁxǁxǁxǁxǁxǁxǁxǁxǁxǁxA7qe#b/m_h%/?@d|ǁxǁxG8wlIENDB`XQilla-2.3.4/docs/simple-api/inherit_graph_5.map0000644001725400016040000000032013273140077016374 00000000000000 XQilla-2.3.4/docs/simple-api/inherit_graph_43.md50000644001725400016040000000004013273140074016362 00000000000000951908081ac975fcd37540ab2829a658XQilla-2.3.4/docs/simple-api/dir_eb0099cf839cef65d350c0a3df5315ad.html0000644001725400016040000000547113273140077021104 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    src Directory Reference
    Directory dependency graph for src:
    src

    Directories

    directory  xercesc
     
    XQilla-2.3.4/docs/simple-api/classAutoContextItemTypeReset.html0000644001725400016040000002121513273140074021506 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    AutoContextItemTypeReset Class Reference

    #include <ContextHelpers.hpp>

    Public Member Functions

     AutoContextItemTypeReset (StaticContext *context)
     
     AutoContextItemTypeReset (StaticContext *context, const StaticType &sType)
     
     ~AutoContextItemTypeReset ()
     

    Protected Attributes

    StaticContextcontext_
     
    StaticType sType_
     

    Constructor & Destructor Documentation

    AutoContextItemTypeReset::AutoContextItemTypeReset ( StaticContext context)
    inline
    AutoContextItemTypeReset::AutoContextItemTypeReset ( StaticContext context,
    const StaticType sType 
    )
    inline
    AutoContextItemTypeReset::~AutoContextItemTypeReset ( )
    inline

    Member Data Documentation

    StaticContext* AutoContextItemTypeReset::context_
    protected
    StaticType AutoContextItemTypeReset::sType_
    protected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/simple-api/ATDurationOrDerived_8hpp_source.html0000644001725400016040000006300613273140073021657 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
    ATDurationOrDerived.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _ATDURATIONORDERIVED_HPP
    21 #define _ATDURATIONORDERIVED_HPP
    22 
    23 #include <xercesc/util/XercesDefs.hpp>
    24 
    26 #include <xqilla/framework/XQillaExport.hpp>
    28 
    30 class DynamicContext;
    31 
    32 class XQILLA_API ATDurationOrDerived : public AnyAtomicType
    33 {
    34 public:
    36 
    37  /* Get the name of the primitive type (basic type) of this type
    38  * (ie "decimal" for xs:decimal) */
    39  virtual const XMLCh* getPrimitiveTypeName() const = 0;
    40 
    41  /* Get the namespace URI for this type */
    42  virtual const XMLCh* getTypeURI() const = 0;
    43 
    44  /* Get the name of this type (ie "integer" for xs:integer) */
    45  virtual const XMLCh* getTypeName() const = 0;
    46 
    47  /* returns the XMLCh* (canonical) representation of this type */
    48  virtual const XMLCh* asString(const DynamicContext* context) const = 0;
    49 
    50  /* returns true if this duration is an instance of a xdt:dayTimeDuration */
    51  virtual bool isDayTimeDuration() const = 0;
    52 
    53  /* returns true if this duration is an instance of a xdt:yearMonthDuration */
    54  virtual bool isYearMonthDuration() const = 0;
    55 
    56  /* returns true if the two objects have the same duration
    57  * false otherwise */
    58  virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
    59 
    62  virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const = 0;
    63 
    66  virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0;
    67 
    70  virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const = 0;
    71 
    74  virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0;
    75 
    78  virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0;
    79 
    82  virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0;
    83 
    85  virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const = 0;
    86 
    88  virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const = 0;
    89 
    91  virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const = 0;
    92 
    94  virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const = 0;
    95 
    97  virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const = 0;
    98 
    100  virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const = 0;
    101 
    102  /* return this duration in forms of seconds */
    103  virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const = 0;
    104 
    105  /* return this duration in forms of months */
    106  virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const = 0;
    107 
    109  virtual bool isNegative() const = 0;
    110 
    112 
    113  static const XMLCh fgDT_DAYTIMEDURATION[];
    114  static const XMLCh pattern_DT_DAYTIMEDURATION[];
    115 
    116  static const XMLCh fgDT_YEARMONTHDURATION[];
    117  static const XMLCh pattern_DT_YEARMONTHDURATION[];
    118 };
    119 
    120 #endif // _ATDURATIONORDERIVED_HPP
    121 
    122 
    RefCountPointer< const ATDurationOrDerived > Ptr
    Definition: ATDurationOrDerived.hpp:35
    Definition: XPath2MemoryManager.hpp:45
    Super class of all the reference counted wrappers for Items.
    Definition: ReferenceCounted.hpp:61
    virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
    AtomicObjectType
    Definition: AnyAtomicType.hpp:34
    virtual const XMLCh * getTypeName() const =0
    Definition: AnyAtomicType.hpp:30
    virtual const XMLCh * asString(const DynamicContext *context) const =0
    virtual const XMLCh * getPrimitiveTypeName() const =0
    virtual const XMLCh * getTypeURI() const =0
    The execution time dynamic context interface.
    Definition: DynamicContext.hpp:38
    virtual AtomicObjectType getPrimitiveTypeIndex() const =0
    Definition: ATDurationOrDerived.hpp:32
    XQilla-2.3.4/docs/simple-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.md50000644001725400016040000000004013273140074021324 000000000000007e39b9d4609c13f5603833a75126311eXQilla-2.3.4/docs/simple-api/ReferenceCounted_8hpp__incl.md50000644001725400016040000000004013273140074020554 000000000000007ca82c963ada2c9faa7f9a517e37078fXQilla-2.3.4/docs/Doxyfile.xqc.in0000644001725400016040000011512513232476422013506 00000000000000# Doxyfile 1.2.18 # 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 (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla XQC API" # 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 = %version% # 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 = . # 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: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # 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 = YES # 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 = YES # 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 class 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 = YES # 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 # 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. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # 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 # 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 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 # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the 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 VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # 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 the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # 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 DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = 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 # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If 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 # 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 # 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 = NO # 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 # 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 = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # 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 # 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. 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 = \ ../include/xqc.h \ ../include/xqilla/xqilla-xqc.h # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # 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 = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # 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 = ../src/samples/xqc-api/ # 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 = # 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. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. 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 # If the REFERENCED_BY_RELATION tag is set to YES (the default) # 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 (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # 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 = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = xqc-api # 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 = xqc_header.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 = # 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 HTML_STYLESHEET = # 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 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 compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. 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 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 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag 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 and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = 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 #--------------------------------------------------------------------------- # 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 = NO # 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. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # 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 = NO # 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 #--------------------------------------------------------------------------- # 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 optimised 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 assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # 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 = #--------------------------------------------------------------------------- # 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 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_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # 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 # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # 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 intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.4/docs/simple_header.html0000644001725400016040000000100613232476422014260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.4/docs/Doxyfile.dom3api.in0000644001725400016040000011575613232476422014261 00000000000000# Doxyfile 1.2.18 # 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 (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla DOM Level 3 API" # 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 = %version% # 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 = . # 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: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # 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 = YES # 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 = YES # 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 class 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 = YES # 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 # 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. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # 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 # 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 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 # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the 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 VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # 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 the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # 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 DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = 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 # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If 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 # 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 # 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 # 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 = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # 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 # 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. 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 = \ ../include/xqilla/xqilla-dom3.hpp \ ../include/xqilla/dom-api \ ../include/xqilla/utils/XQillaPlatformUtils.hpp \ ../include/xqilla/framework/XPath2MemoryManager.hpp \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/dom/ # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # 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 = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # 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 = ../src/samples/dom-api/ # 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 = # 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. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. 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 # If the REFERENCED_BY_RELATION tag is set to YES (the default) # 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 (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = dom3-api # 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 = dom3_header.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 = # 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 HTML_STYLESHEET = # 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 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 compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. 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 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 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag 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 and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = 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 #--------------------------------------------------------------------------- # 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 = NO # 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. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # 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 = NO # 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 #--------------------------------------------------------------------------- # 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 optimised 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 assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # 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 = #--------------------------------------------------------------------------- # 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 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_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # 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. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # 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 = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # 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 intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.4/docs/dom3_header.html0000644001725400016040000000100413232476422013627 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/xqc_header.html0000644001725400016040000000100313232476422013557 00000000000000 XQilla XQC API Documentation SourceForge.net Logo XQilla-2.3.4/docs/Doxyfile.simpleapi.in0000644001725400016040000012154613232476422014702 00000000000000# Doxyfile 1.2.18 # 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 (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla Simple API" # 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 = %version% # 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 = . # 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: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # 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 = YES # 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 = YES # 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 class 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 = YES # 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 # 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. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # 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 # 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 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 # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the 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 VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # 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 the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # 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 DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = 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 # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If 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 # 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 # 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 # 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 = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # 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 # 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. 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 = \ ../include/xqilla/xqilla-simple.hpp \ ../include/xqilla/simple-api \ ../include/xqilla/context \ ../include/xqilla/context \ ../include/xqilla/events \ ../include/xqilla/fastxdm \ ../include/xqilla/xerces \ ../include/xqilla/items \ ../include/xqilla/debug/DebugListener.hpp \ ../include/xqilla/debug/InputParser.hpp \ ../include/xqilla/debug/InteractiveDebugger.hpp \ ../include/xqilla/debug/StackFrame.hpp \ ../include/xqilla/framework/ReferenceCounted.hpp \ ../include/xqilla/framework/XPath2MemoryManager.hpp \ ../include/xqilla/framework/StringPool.hpp \ ../include/xqilla/runtime/Sequence.hpp \ ../include/xqilla/runtime/Result.hpp \ ../include/xqilla/runtime/ResultImpl.hpp \ ../include/xqilla/ast/StaticAnalysis.hpp \ ../include/xqilla/ast/StaticType.hpp \ ../include/xqilla/ast/LocationInfo.hpp \ ../include/xqilla/exceptions/XQException.hpp \ ../include/xqilla/functions/ExternalFunction.hpp \ ../include/xqilla/schema/DocumentCache.hpp \ ../include/xqilla/context/MessageListener.hpp \ ../include/xqilla/schema/SchemaValidatorFilter.hpp \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/XMemory.hpp \ %xerces_include%/xercesc/dom/DOMNode.hpp \ %xerces_include%/xercesc/dom/DOMDocument.hpp \ %xerces_include%/xercesc/dom/DOMXPathNSResolver.hpp \ %xerces_include%/xercesc/util/XMLEntityResolver.hpp \ %xerces_include%/xercesc/util/XMLResourceIdentifier.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/sax/InputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileInputSource.hpp \ %xerces_include%/xercesc/framework/MemBufInputSource.hpp \ %xerces_include%/xercesc/framework/StdInInputSource.hpp \ %xerces_include%/xercesc/framework/URLInputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileFormatTarget.hpp \ %xerces_include%/xercesc/framework/MemBufFormatTarget.hpp \ %xerces_include%/xercesc/framework/StdOutFormatTarget.hpp \ %xerces_include%/xercesc/framework/XMLFormatter.hpp # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # 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 = NO # 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 = \ ../include/xqilla/items/ItemConstructor.hpp \ ../include/xqilla/items/AnyAtomicTypeConstructor.hpp \ ../include/xqilla/items/ATQNameConstructor.hpp \ ../include/xqilla/items/DatatypeLookup.hpp \ ../include/xqilla/items/DatatypeFactory.hpp # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # 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 = ../src/samples/simple-api/ # 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 = # 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. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. 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 # If the REFERENCED_BY_RELATION tag is set to YES (the default) # 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 (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = simple-api # 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 = simple_header.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 = # 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 HTML_STYLESHEET = # 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 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 compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. 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 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 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag 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 and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = 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 #--------------------------------------------------------------------------- # 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 = NO # 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. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # 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 = NO # 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 #--------------------------------------------------------------------------- # 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 optimised 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 assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # 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 = #--------------------------------------------------------------------------- # 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 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_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # 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. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # 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 = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on 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 MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # 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 intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.4/docs/xqc-api/0000755001725400016040000000000013273140102012202 500000000000000XQilla-2.3.4/docs/xqc-api/structXQC__Sequence__s-members.html0000644001725400016040000000766213273140102021023 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Sequence_s Member List
    XQilla-2.3.4/docs/xqc-api/tab_b.png0000644001725400016040000000025113273140101013674 00000000000000PNG  IHDR$[pIDATxM EǻԸu`V0}:t]Ds䮂u|x>1&m8SxLU޲iEOsnxKN~jIENDB`XQilla-2.3.4/docs/xqc-api/ftv2lastnode.png0000644001725400016040000000012613273140102015242 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/xqc-api/ftv2mlastnode.png0000644001725400016040000000036613273140102015425 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/xqc-api/structXQC__InputStream__s-members.html0000644001725400016040000000534513273140102021522 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_InputStream_s Member List

    This is the complete list of members for XQC_InputStream_s, including all inherited members.

    encodingXQC_InputStream_s
    freeXQC_InputStream_s
    readXQC_InputStream_s
    user_dataXQC_InputStream_s
    XQilla-2.3.4/docs/xqc-api/structXQC__Expression__s.html0000644001725400016040000003577413273140102017767 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Expression_s Struct Reference

    The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times. More...

    #include <xqc.h>

    Public Attributes

    XQC_Error(* create_context )(const XQC_Expression *expression, XQC_DynamicContext **context)
     Creates a dynamic context suitable for use in the execute() function. More...
     
    XQC_Error(* execute )(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)
     Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContext if provided. More...
     
    void *(* get_interface )(const XQC_Expression *expression, const char *name)
     Called to retrieve an implementation specific interface. More...
     
    void(* free )(XQC_Expression *expression)
     Called to free the resources associated with the XQC_Expression. More...
     

    Detailed Description

    The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times.

    An XQC_Expression object is thread-safe and can be used by multiple threads of execution at the same time.

    XQC_Expression objects are created by calling the XQC_Implementation::prepare(), XQC_Implementation::prepare_file() and XQC_Implementation::prepare_stream() functions. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_Expression object should be freed before the XQC_Implementation object that created it.

    Examples:
    xqc-basic.c, and xqc-context-item.c.

    Member Data Documentation

    XQC_Error(* XQC_Expression_s::create_context)(const XQC_Expression *expression, XQC_DynamicContext **context)

    Creates a dynamic context suitable for use in the execute() function.

    The user is responsible for freeing the XQC_DynamicContext object returned by calling XQC_DynamicContext::free().

    Parameters
    expressionThe XQC_Expression that this function pointer is a member of.
    [out]contextThe newly created XQC_DynamicContext object.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    Examples:
    xqc-context-item.c.
    XQC_Error(* XQC_Expression_s::execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)

    Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContext if provided.

    An XQC_Sequence object is returned which can be used to examine the results of the query execution. The user is responsible for freeing the XQC_Sequence object returned by calling XQC_Sequence::free().

    Parameters
    expressionThe XQC_Expression that this function pointer is a member of.
    contextThe dynamic context information to use when executing the query, or 0 to use the implementation defined default dynamic context.
    [out]sequenceThe newly created XQC_Sequence object.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_TYPE_ERROR
    XQC_DYNAMIC_ERROR
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    void(* XQC_Expression_s::free)(XQC_Expression *expression)

    Called to free the resources associated with the XQC_Expression.

    Parameters
    expressionThe XQC_Expression that this function pointer is a member of
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    void*(* XQC_Expression_s::get_interface)(const XQC_Expression *expression, const char *name)

    Called to retrieve an implementation specific interface.

    Parameters
    expressionThe XQC_Expression that this function pointer is a member of.
    nameThe name that identifies the interface to return
    Returns
    A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/ftv2doc.png0000644001725400016040000000135213273140102014200 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/xqc-api/functions_vars.html0000644001725400016040000003005313273140102016054 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     

    - c -

    - d -

    - e -

    - f -

    - g -

    - i -

    - n -

    - p -

    - r -

    - s -

    - t -

    - u -

    XQilla-2.3.4/docs/xqc-api/structXQC__DynamicContext__s-members.html0000644001725400016040000001064313273140102022175 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_DynamicContext_s Member List
    XQilla-2.3.4/docs/xqc-api/tab_a.png0000644001725400016040000000021613273140101013674 00000000000000PNG  IHDR$[UIDATxK 0C'o([Ž%x#٩ We# 3t I 3+E~\D9wM}Y_A4Y}IENDB`XQilla-2.3.4/docs/xqc-api/classes.html0000644001725400016040000000546513273140102014457 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    Class Index
    XQilla-2.3.4/docs/xqc-api/globals_enum.html0000644001725400016040000000554713273140102015472 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/xqc-api/nav_f.png0000644001725400016040000000023113273140101013714 00000000000000PNG  IHDR8`IDATxK Eі[BmkHprӼ.ꎤR6Z VIE5jliIJ0/u޿6sH yIENDB`XQilla-2.3.4/docs/xqc-api/examples.html0000644001725400016040000000302113273140102014622 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    Examples
    Here is a list of all examples:
    XQilla-2.3.4/docs/xqc-api/globals_type.html0000644001725400016040000000522413273140102015477 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/xqc-api/open.png0000644001725400016040000000017313273140102013572 00000000000000PNG  IHDR BIDATx 0 ׬ՙ\39b!9{|I>$#ߴ8/z/>2[giU,/~\ 9ٸIENDB`XQilla-2.3.4/docs/xqc-api/dir_d44c64559bbebec7f509842c48db8b23.html0000644001725400016040000000454313273140102020327 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    include Directory Reference

    Directories

    directory  xqilla
     

    Files

    file  xqc.h [code]
     
    XQilla-2.3.4/docs/xqc-api/closed.png0000644001725400016040000000020413273140102014075 00000000000000PNG  IHDR KIDATxm @!Gk7-`&sts@k}2 P%_N .:0Dk›x" ֛)x5IENDB`XQilla-2.3.4/docs/xqc-api/structXQC__Implementation__s.html0000644001725400016040000011153413273140102020602 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Implementation_s Struct Reference

    The XQC_Implementation struct provides factory functions for preparing queries. More...

    #include <xqc.h>

    Public Attributes

    void *(* get_interface )(const XQC_Implementation *implementation, const char *name)
     Called to retrieve an implementation specific interface. More...
     
    void(* free )(XQC_Implementation *implementation)
     Called to free the resources associated with the XQC_Implementation. More...
     
    Functions for preparing queries
    XQC_Error(* create_context )(XQC_Implementation *implementation, XQC_StaticContext **context)
     Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() functions. More...
     
    XQC_Error(* prepare )(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)
     Prepares a query from a UTF-8 string, returning an XQC_Expression object. More...
     
    XQC_Error(* prepare_file )(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)
     Prepares a query from a FILE pointer, returning an XQC_Expression object. More...
     
    XQC_Error(* prepare_stream )(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression)
     Prepares a query from an XQC_InputStream, returning an XQC_Expression object. More...
     
    Functions for parsing documents
    XQC_Error(* parse_document )(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)
     XQC_PARSE_ERROR. More...
     
    XQC_Error(* parse_document_file )(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence)
     XQC_PARSE_ERROR. More...
     
    XQC_Error(* parse_document_stream )(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence)
     XQC_PARSE_ERROR. More...
     
    Functions for creating sequences
    XQC_Error(* create_empty_sequence )(XQC_Implementation *implementation, XQC_Sequence **sequence)
     
    XQC_Error(* create_singleton_sequence )(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence)
     
    XQC_Error(* create_string_sequence )(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)
     
    XQC_Error(* create_integer_sequence )(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
     
    XQC_Error(* create_double_sequence )(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)
     

    Detailed Description

    The XQC_Implementation struct provides factory functions for preparing queries.

    An XQC_Implementation object is thread-safe and can be used by multiple threads of execution at the same time.

    The method of creating an XQC_Implementation object is beyond the scope of this API, and will typically involve calling an implementation defined function. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_Implementation object should not be freed before all objects created using it's functions have been freed - doing so may cause undefined behaviour.

    Examples:
    xqc-basic.c, and xqc-context-item.c.

    Member Data Documentation

    XQC_Error(* XQC_Implementation_s::create_context)(XQC_Implementation *implementation, XQC_StaticContext **context)

    Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() functions.

    The user is responsible for freeing the XQC_StaticContext object returned by calling XQC_StaticContext::free().

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of
    [out]contextThe newly created XQC_StaticContext object.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_Implementation_s::create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)
    XQC_Error(* XQC_Implementation_s::create_empty_sequence)(XQC_Implementation *implementation, XQC_Sequence **sequence)
    XQC_Error(* XQC_Implementation_s::create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
    XQC_Error(* XQC_Implementation_s::create_singleton_sequence)(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence)
    XQC_Error(* XQC_Implementation_s::create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)
    void(* XQC_Implementation_s::free)(XQC_Implementation *implementation)

    Called to free the resources associated with the XQC_Implementation.

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    void*(* XQC_Implementation_s::get_interface)(const XQC_Implementation *implementation, const char *name)

    Called to retrieve an implementation specific interface.

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of
    nameThe name that identifies the interface to return
    Returns
    A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
    XQC_Error(* XQC_Implementation_s::parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)

    XQC_PARSE_ERROR.

    Examples:
    xqc-context-item.c.
    XQC_Error(* XQC_Implementation_s::parse_document_file)(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence)

    XQC_PARSE_ERROR.

    XQC_Error(* XQC_Implementation_s::parse_document_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence)

    XQC_PARSE_ERROR.

    XQC_Error(* XQC_Implementation_s::prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)

    Prepares a query from a UTF-8 string, returning an XQC_Expression object.

    The user remains responsible for closing the file after preparation. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of.
    stringThe query to prepare as a UTF-8 string.
    contextThe initial static context for this query, or 0 to use the implementation defined default static context.
    [out]expressionThe resulting prepared expression.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_STATIC_ERROR
    XQC_TYPE_ERROR
    XQC_DYNAMIC_ERROR
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    XQC_Error(* XQC_Implementation_s::prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)

    Prepares a query from a FILE pointer, returning an XQC_Expression object.

    The encoding of the query in the file is determined by the implementation. The user remains responsible for closing the file after preparation. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of.
    fileThe file containing the query to prepare.
    contextThe initial static context for this query, or 0 to use the implementation defined default static context.
    [out]expressionThe resulting prepared expression.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_UNRECOGNIZED_ENCODING
    XQC_STATIC_ERROR
    XQC_TYPE_ERROR
    XQC_DYNAMIC_ERROR
    XQC_Error(* XQC_Implementation_s::prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression)

    Prepares a query from an XQC_InputStream, returning an XQC_Expression object.

    The encoding of the stream is determined by looking at XQC_InputStream::encoding, or by the implementation if XQC_InputStream::encoding is 0. The implementation is responsible for freeing the XQC_InputStream using the XQC_InputStream::free() function after it has finished with using it. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

    Parameters
    implementationThe XQC_Implementation that this function pointer is a member of
    streamThe stream returning the query to prepare.
    contextThe initial static context for this query, or 0 to use the implementation defined default static context.
    [out]expressionThe resulting prepared expression
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_UNRECOGNIZED_ENCODING
    XQC_STATIC_ERROR
    XQC_TYPE_ERROR
    XQC_DYNAMIC_ERROR

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/index.html0000644001725400016040000000247613273140102014130 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQilla XQC API Documentation
    XQilla-2.3.4/docs/xqc-api/sync_on.png0000644001725400016040000000151513273140102014302 00000000000000PNG  IHDRw=IDATx_HTY8i4-g6&kQ)!0URKڅ/PE>K-+K.YdEPaAZSܝ;3wgfsWK.Da'q_k DQCg 0Y:qZ)~L0HV z-C%g68%wUϿ }? ?3 K@h aaUe s~2&&B*Alji*˨,oƣT,d[3-*> LɟfkҠw#*AEjKUy>&{8m5Ki jjD*Nigw7DmzK۾M!k?o_lX#~XӑR*EՂדE;6e"Q(=Ezæ5Kؼָ_ 1zBJ X96jL^7{J1i@%8'7M_\Q#Uy Wo x8sv|Sn q_m >b[JX,4[T{Ratjjzz'ȶiIws KC^Y%6ꈺ]vhiWvh'̂|[^YrD= XQilla XQC API Documentation SourceForge.net Logo
    XQC_ErrorHandler_s Member List

    This is the complete list of members for XQC_ErrorHandler_s, including all inherited members.

    errorXQC_ErrorHandler_s
    user_dataXQC_ErrorHandler_s
    XQilla-2.3.4/docs/xqc-api/jquery.js0000644001725400016040000031436513273140101014012 00000000000000/*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 },lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av); ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b })}})(window); XQilla-2.3.4/docs/xqc-api/globals.html0000644001725400016040000003020413273140102014432 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    Here is a list of all file members with links to the files they belong to:

    - c -

    - x -

    • XQC_ANY_SIMPLE_TYPE : xqc.h
    • XQC_ANY_URI_TYPE : xqc.h
    • XQC_ATTRIBUTE_TYPE : xqc.h
    • XQC_BASE_64_BINARY_TYPE : xqc.h
    • XQC_BOOLEAN_TYPE : xqc.h
    • XQC_BoundarySpaceMode : xqc.h
    • XQC_COMMENT_TYPE : xqc.h
    • XQC_ConstructionMode : xqc.h
    • XQC_DATE_TIME_TYPE : xqc.h
    • XQC_DATE_TYPE : xqc.h
    • XQC_DAY_TIME_DURATION_TYPE : xqc.h
    • XQC_DECIMAL_TYPE : xqc.h
    • XQC_DOCUMENT_TYPE : xqc.h
    • XQC_DOUBLE_TYPE : xqc.h
    • XQC_DURATION_TYPE : xqc.h
    • XQC_DYNAMIC_ERROR : xqc.h
    • XQC_DynamicContext : xqc.h
    • XQC_ELEMENT_TYPE : xqc.h
    • XQC_EMPTY_GREATEST : xqc.h
    • XQC_EMPTY_LEAST : xqc.h
    • XQC_EMPTY_TYPE : xqc.h
    • XQC_END_OF_SEQUENCE : xqc.h
    • XQC_Error : xqc.h
    • XQC_ErrorHandler : xqc.h
    • XQC_Expression : xqc.h
    • XQC_FLOAT_TYPE : xqc.h
    • XQC_G_DAY_TYPE : xqc.h
    • XQC_G_MONTH_DAY_TYPE : xqc.h
    • XQC_G_MONTH_TYPE : xqc.h
    • XQC_G_YEAR_MONTH_TYPE : xqc.h
    • XQC_G_YEAR_TYPE : xqc.h
    • XQC_HEX_BINARY_TYPE : xqc.h
    • XQC_Implementation : xqc.h
    • XQC_INHERIT_NS : xqc.h
    • XQC_InheritMode : xqc.h
    • XQC_InputStream : xqc.h
    • XQC_INTERNAL_ERROR : xqc.h
    • XQC_INVALID_ARGUMENT : xqc.h
    • XQC_ItemType : xqc.h
    • XQC_NAMESPACE_TYPE : xqc.h
    • XQC_NO_CURRENT_ITEM : xqc.h
    • XQC_NO_ERROR : xqc.h
    • XQC_NO_INHERIT_NS : xqc.h
    • XQC_NO_PRESERVE_NS : xqc.h
    • XQC_NOT_IMPLEMENTED : xqc.h
    • XQC_NOT_NODE : xqc.h
    • XQC_NOTATION_TYPE : xqc.h
    • XQC_ORDERED : xqc.h
    • XQC_OrderEmptyMode : xqc.h
    • XQC_OrderingMode : xqc.h
    • XQC_PARSE_ERROR : xqc.h
    • XQC_PRESERVE_CONS : xqc.h
    • XQC_PRESERVE_NS : xqc.h
    • XQC_PRESERVE_SPACE : xqc.h
    • XQC_PreserveMode : xqc.h
    • XQC_PROCESSING_INSTRUCTION_TYPE : xqc.h
    • XQC_QNAME_TYPE : xqc.h
    • XQC_Sequence : xqc.h
    • XQC_SERIALIZATION_ERROR : xqc.h
    • XQC_STATIC_ERROR : xqc.h
    • XQC_StaticContext : xqc.h
    • XQC_STRING_TYPE : xqc.h
    • XQC_STRIP_CONS : xqc.h
    • XQC_STRIP_SPACE : xqc.h
    • XQC_TEXT_TYPE : xqc.h
    • XQC_TIME_TYPE : xqc.h
    • XQC_TYPE_ERROR : xqc.h
    • XQC_UNORDERED : xqc.h
    • XQC_UNRECOGNIZED_ENCODING : xqc.h
    • XQC_UNTYPED_ATOMIC_TYPE : xqc.h
    • XQC_VERSION_NUMBER : xqc.h
    • XQC_XPATH1_0 : xqc.h
    • XQC_XPath1Mode : xqc.h
    • XQC_XPATH2_0 : xqc.h
    • XQC_YEAR_MONTH_DURATION_TYPE : xqc.h
    XQilla-2.3.4/docs/xqc-api/bdwn.png0000644001725400016040000000022313273140102013557 00000000000000PNG  IHDR5ZIDATx DP1lm rj.e D[ɾ|6V3?Ls'(}>+ Kch` ^ލnIENDB`XQilla-2.3.4/docs/xqc-api/xqc_8h_source.html0000644001725400016040000041174613273140102015577 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqc.h
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2008, Matthias Brantner, John Snelson
    3  * All rights reserved.
    4  *
    5  * Redistribution and use in source and binary forms, with or without
    6  * modification, are permitted provided that the following conditions are met:
    7  *
    8  * * Redistributions of source code must retain the above copyright notice,
    9  * this list of conditions and the following disclaimer.
    10  * * Redistributions in binary form must reproduce the above copyright
    11  * notice, this list of conditions and the following disclaimer in the
    12  * documentation and/or other materials provided with the distribution.
    13  * * Neither the name of the developers nor the names of contributors may be
    14  * used to endorse or promote products derived from this software without
    15  * specific prior written permission.
    16  *
    17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    20  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    21  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    27  * POSSIBILITY OF SUCH DAMAGE.
    28  */
    29 
    30 #ifndef _XQUERY_C_API_H
    31 #define _XQUERY_C_API_H
    32 
    33 /* Include stdio for FILE */
    34 #include <stdio.h>
    35 
    36 #ifdef __cplusplus
    37 extern "C" {
    38 #endif
    39 
    41 #define XQC_VERSION_NUMBER 1
    42 
    50 
    55 typedef enum {
    62 
    65 
    70 
    75 } XQC_Error;
    76 
    88  const char *encoding;
    89 
    93  void *user_data;
    94 
    108  unsigned int (*read)(XQC_InputStream *stream, void *buffer, unsigned int length);
    109 
    116  void (*free)(XQC_InputStream *stream);
    117 };
    118 
    132 
    136  void *user_data;
    137 
    156  void (*error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri,
    157  const char *error_localname, const char *description, XQC_Sequence *error_object);
    158 };
    159 
    160 typedef enum {
    162 
    170 
    194 
    195 } XQC_ItemType;
    196 
    208 
    226 
    244  XQC_Error (*prepare)(XQC_Implementation *implementation, const char *string,
    245  const XQC_StaticContext *context, XQC_Expression **expression);
    246 
    266  XQC_Error (*prepare_file)(XQC_Implementation *implementation, FILE *file,
    267  const XQC_StaticContext *context, XQC_Expression **expression);
    268 
    291  const XQC_StaticContext *context, XQC_Expression **expression);
    292 
    294 
    300  XQC_Error (*parse_document)(XQC_Implementation *implementation,
    302  const char *string, XQC_Sequence **sequence);
    305  FILE *file, XQC_Sequence **sequence);
    308  XQC_InputStream *stream, XQC_Sequence **sequence);
    309 
    311 
    318  XQC_Sequence **sequence);
    320  XQC_ItemType type, const char *value,
    321  XQC_Sequence **sequence);
    323  const char *values[], unsigned int count,
    324  XQC_Sequence **sequence);
    326  int values[], unsigned int count,
    327  XQC_Sequence **sequence);
    329  double values[], unsigned int count,
    330  XQC_Sequence **sequence);
    331 
    333 
    343  void *(*get_interface)(const XQC_Implementation *implementation, const char *name);
    344 
    351  void (*free)(XQC_Implementation *implementation);
    352 };
    353 
    360 
    365 
    371 
    377 
    383 
    388 
    393 
    405 
    420  XQC_Error
    422 
    434  XQC_Error
    435  (*declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri);
    436 
    448  XQC_Error
    449  (*get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns);
    450 
    460  XQC_Error
    461  (*set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri);
    462 
    471  XQC_Error
    472  (*get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri);
    473 
    483  XQC_Error
    484  (*set_default_function_ns)(XQC_StaticContext *context, const char *uri);
    485 
    495  XQC_Error
    496  (*get_default_function_ns)(XQC_StaticContext *context, const char **uri);
    497 
    507  XQC_Error
    509 
    519  XQC_Error
    521 
    531  XQC_Error
    533 
    543  XQC_Error
    545 
    555  XQC_Error
    557 
    567  XQC_Error
    569 
    580  XQC_Error
    582 
    593  XQC_Error
    595 
    605  XQC_Error
    607 
    617  XQC_Error
    619 
    630  XQC_Error
    632 
    644  XQC_Error
    646 
    656  XQC_Error
    657  (*set_base_uri)(XQC_StaticContext *context, const char *base_uri);
    658 
    668  XQC_Error
    669  (*get_base_uri)(XQC_StaticContext *context, const char **base_uri);
    670 
    673 
    683  void *(*get_interface)(const XQC_StaticContext *context, const char *name);
    684 
    691  void (*free)(XQC_StaticContext *context);
    692 };
    693 
    708 
    720  XQC_Error (*create_context)(const XQC_Expression *expression, XQC_DynamicContext **context);
    721 
    738  XQC_Error (*execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence);
    739 
    749  void *(*get_interface)(const XQC_Expression *expression, const char *name);
    750 
    757  void (*free)(XQC_Expression *expression);
    758 };
    759 
    779  XQC_Error (*set_variable)(XQC_DynamicContext *context, const char *uri, const char *name,
    780  XQC_Sequence *value);
    781 
    782  XQC_Error (*get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name,
    783  XQC_Sequence **value);
    784 
    803 
    805 
    812  XQC_Error (*get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone);
    813 
    816 
    826  void *(*get_interface)(const XQC_DynamicContext *context, const char *name);
    827 
    834  void (*free)(XQC_DynamicContext *context);
    835 };
    836 
    854  XQC_Error (*next)(XQC_Sequence *sequence);
    855 
    871  XQC_Error (*item_type)(const XQC_Sequence *sequence, XQC_ItemType *type);
    872 
    886  XQC_Error (*type_name)(const XQC_Sequence *sequence, const char **uri, const char **name);
    887 
    901  XQC_Error (*string_value)(const XQC_Sequence *sequence, const char **value);
    902 
    915  XQC_Error (*integer_value)(const XQC_Sequence *sequence, int *value);
    916 
    929  XQC_Error (*double_value)(const XQC_Sequence *sequence, double *value);
    930 
    945  XQC_Error (*node_name)(const XQC_Sequence *sequence, const char **uri, const char **name);
    946 
    958  void *(*get_interface)(const XQC_Sequence *sequence, const char *name);
    959 
    966  void (*free)(XQC_Sequence *sequence);
    967 };
    968 
    969 #ifdef __cplusplus
    970 }
    971 #endif
    972 
    973 #endif
    XQC_Error(* get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value)
    Definition: xqc.h:804
    XQC_Error(* declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri)
    Adds a (prefix, uri) pair to the set of statically known namespaces of the given context.
    Definition: xqc.h:435
    XQC_Error(* set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler)
    Definition: xqc.h:814
    Definition: xqc.h:174
    unsigned int(* read)(XQC_InputStream *stream, void *buffer, unsigned int length)
    The function called to read more of the input query.
    Definition: xqc.h:108
    Definition: xqc.h:165
    The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data int...
    Definition: xqc.h:81
    Definition: xqc.h:60
    Definition: xqc.h:364
    XQC_Error(* create_context)(XQC_Implementation *implementation, XQC_StaticContext **context)
    Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() funct...
    Definition: xqc.h:225
    XQC_Error(* parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)
    XQC_PARSE_ERROR.
    Definition: xqc.h:301
    XQC_ItemType
    Definition: xqc.h:160
    Definition: xqc.h:760
    XQC_Error(* get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone)
    Definition: xqc.h:812
    Definition: xqc.h:172
    XQC_Error(* set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value)
    Sets the context item to the current item of the XQC_Sequence given.
    Definition: xqc.h:802
    The implementation does not implement that function.
    Definition: xqc.h:64
    The encoding of the query has not been recognized, or is not supported by the implementation.
    Definition: xqc.h:69
    Definition: xqc.h:185
    Definition: xqc.h:58
    Definition: xqc.h:190
    XQC_Error(* get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns)
    Returns the namespace uri that belongs to the given prefix.
    Definition: xqc.h:449
    void(* free)(XQC_StaticContext *context)
    Called to free the resources associated with the XQC_StaticContext.
    Definition: xqc.h:691
    Definition: xqc.h:171
    XQC_ConstructionMode
    Construction mode as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:392
    XQC_Error(* prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)
    Prepares a query from a UTF-8 string, returning an XQC_Expression object.
    Definition: xqc.h:244
    XQC_Error(* set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode)
    Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0.
    Definition: xqc.h:508
    void(* free)(XQC_InputStream *stream)
    Called to free the resources associated with the XQC_InputStream.
    Definition: xqc.h:116
    No error.
    Definition: xqc.h:56
    XQC_XPath1Mode
    XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:359
    Definition: xqc.h:189
    A dynamic error has occured while preparing or executing the query.
    Definition: xqc.h:73
    XQC_Error(* set_implicit_timezone)(XQC_DynamicContext *context, int timezone)
    The timezone given must be between -840 and +840 minutes (-14 and +14 hours).
    Definition: xqc.h:811
    XQC_Error(* double_value)(const XQC_Sequence *sequence, double *value)
    Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:...
    Definition: xqc.h:929
    Definition: xqc.h:376
    The XQC_StaticContext struct provides a way to specify values for the static context of the query to ...
    Definition: xqc.h:404
    Definition: xqc.h:175
    XQC_Error(* set_base_uri)(XQC_StaticContext *context, const char *base_uri)
    Sets the base uri in the given static context.
    Definition: xqc.h:657
    Definition: xqc.h:168
    XQC_Error(* create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context)
    Creates a child context of the given static context.
    Definition: xqc.h:421
    XQC_Error
    The error enumeration used by all XQC functions to designate error condition.
    Definition: xqc.h:55
    XQC_Error(* prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression)
    Prepares a query from an XQC_InputStream, returning an XQC_Expression object.
    Definition: xqc.h:290
    XQC_Error(* create_context)(const XQC_Expression *expression, XQC_DynamicContext **context)
    Creates a dynamic context suitable for use in the execute() function.
    Definition: xqc.h:720
    Definition: xqc.h:182
    XQC_PreserveMode
    Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:382
    XQC_Error(* type_name)(const XQC_Sequence *sequence, const char **uri, const char **name)
    Returns the type name for the current item as a (URI, localname) pair.
    Definition: xqc.h:886
    XQC_Error(* get_base_uri)(XQC_StaticContext *context, const char **base_uri)
    Returns the base uri that is set in the given static context.
    Definition: xqc.h:669
    XQC_Error(* set_default_function_ns)(XQC_StaticContext *context, const char *uri)
    Sets the default namespace for functions.
    Definition: xqc.h:484
    Definition: xqc.h:392
    XQC_Error(* set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler)
    Definition: xqc.h:671
    XQC_OrderEmptyMode
    Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:370
    Definition: xqc.h:392
    XQC_Error(* set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)
    Sets the external variable to the value given.
    Definition: xqc.h:779
    Definition: xqc.h:181
    Definition: xqc.h:191
    An implementation specific error has occurred.
    Definition: xqc.h:63
    Definition: xqc.h:183
    Definition: xqc.h:382
    XQC_Error(* get_default_function_ns)(XQC_StaticContext *context, const char **uri)
    Returnsthe default namespace for functions set in this static context.
    Definition: xqc.h:496
    Definition: xqc.h:173
    XQC_Error(* create_empty_sequence)(XQC_Implementation *implementation, XQC_Sequence **sequence)
    Definition: xqc.h:317
    XQC_Error(* set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode)
    Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED.
    Definition: xqc.h:556
    Definition: xqc.h:184
    XQC_OrderingMode
    Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:364
    XQC_Error(* get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode *mode)
    Returns the ordering mode that is set in the given static context.
    Definition: xqc.h:568
    void(* free)(XQC_Implementation *implementation)
    Called to free the resources associated with the XQC_Implementation.
    Definition: xqc.h:351
    XQC_Error(* get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode *mode)
    Returns the construction mode that is set in the given static context.
    Definition: xqc.h:544
    Definition: xqc.h:178
    XQC_Error(* create_singleton_sequence)(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence)
    Definition: xqc.h:319
    void(* free)(XQC_Expression *expression)
    Called to free the resources associated with the XQC_Expression.
    Definition: xqc.h:757
    XQC_Error(* set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit)
    Sets the copy namespace mode which consists of the preserve and the inherit mode. ...
    Definition: xqc.h:631
    Definition: xqc.h:843
    void(* free)(XQC_DynamicContext *context)
    Called to free the resources associated with the XQC_DynamicContext.
    Definition: xqc.h:834
    Definition: xqc.h:169
    Definition: xqc.h:61
    XQC_Error(* prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)
    Prepares a query from a FILE pointer, returning an XQC_Expression object.
    Definition: xqc.h:266
    The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more d...
    Definition: xqc.h:131
    Definition: xqc.h:163
    Definition: xqc.h:188
    Definition: xqc.h:187
    Definition: xqc.h:176
    XQC_Error(* create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)
    Definition: xqc.h:328
    Definition: xqc.h:359
    XQC_Error(* set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode)
    Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext.
    Definition: xqc.h:532
    XQC_Error(* integer_value)(const XQC_Sequence *sequence, int *value)
    Returns the value of the current item in the sequence as an integer - this is equivalent to calling f...
    Definition: xqc.h:915
    XQC_Error(* set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri)
    Sets the value of the default namespace for elements and types.
    Definition: xqc.h:461
    The XQC_Implementation struct provides factory functions for preparing queries.
    Definition: xqc.h:207
    void(* free)(XQC_Sequence *sequence)
    Called to free the resources associated with the XQC_Sequence.
    Definition: xqc.h:966
    Definition: xqc.h:370
    XQC_Error(* node_name)(const XQC_Sequence *sequence, const char **uri, const char **name)
    Returns the name for the current node as a (URI, localname) pair.
    Definition: xqc.h:945
    XQC_Error(* parse_document_file)(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence)
    XQC_PARSE_ERROR.
    Definition: xqc.h:304
    XQC_Error(* get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode *mode)
    Returns the default order mode for empty sequences that is set in the given static context...
    Definition: xqc.h:594
    Definition: xqc.h:177
    Definition: xqc.h:180
    Definition: xqc.h:364
    Definition: xqc.h:164
    Definition: xqc.h:359
    XQC_Error(* next)(XQC_Sequence *sequence)
    Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence...
    Definition: xqc.h:854
    Definition: xqc.h:370
    const char * encoding
    The text encoding of the input data as a UTF-8 string, or 0 if unknown.
    Definition: xqc.h:88
    XQC_Error(* string_value)(const XQC_Sequence *sequence, const char **value)
    Returns the string value of the current item in the sequence - this is equivalent to calling fn:strin...
    Definition: xqc.h:901
    Definition: xqc.h:193
    void(* error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)
    The function called when an error occurs.
    Definition: xqc.h:156
    void * user_data
    Can be used for user specific purposes.
    Definition: xqc.h:93
    Definition: xqc.h:186
    Definition: xqc.h:387
    XQC_Error(* get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode *mode)
    Returns the XPath 1.0 compatibility that is set in the given static context.
    Definition: xqc.h:520
    XQC_Error(* parse_document_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence)
    XQC_PARSE_ERROR.
    Definition: xqc.h:307
    XQC_Error(* create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)
    Definition: xqc.h:322
    A type error has occured while preparing or executing the query.
    Definition: xqc.h:72
    XQC_BoundarySpaceMode
    Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:387
    Definition: xqc.h:376
    XQC_Error(* get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler)
    Definition: xqc.h:815
    A static error has occured while preparing the query.
    Definition: xqc.h:71
    XQC_InheritMode
    Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.
    Definition: xqc.h:376
    XQC_Error(* get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri)
    Definition: xqc.h:472
    The end of the XQC_Sequence has been reached.
    Definition: xqc.h:57
    Definition: xqc.h:387
    Definition: xqc.h:161
    Definition: xqc.h:166
    XQC_Error(* create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
    Definition: xqc.h:325
    void * user_data
    Can be used for user specific purposes.
    Definition: xqc.h:136
    Definition: xqc.h:382
    Definition: xqc.h:179
    XQC_Error(* get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler)
    Definition: xqc.h:672
    XQC_Error(* get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode *preserve, XQC_InheritMode *inherit)
    Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode...
    Definition: xqc.h:645
    Definition: xqc.h:59
    XQC_Error(* get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)
    Definition: xqc.h:782
    XQC_Error(* item_type)(const XQC_Sequence *sequence, XQC_ItemType *type)
    Returns an item type enumeration for the type of the current item.
    Definition: xqc.h:871
    XQC_Error(* get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode *mode)
    Returns the boundary space policy that is set in the given static context.
    Definition: xqc.h:618
    XQC_Error(* set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode)
    Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE.
    Definition: xqc.h:606
    The XQC_Expression struct represents a prepared query, and allows the user to execute that query any ...
    Definition: xqc.h:707
    XQC_Error(* execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)
    Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContex...
    Definition: xqc.h:738
    Definition: xqc.h:192
    XQC_Error(* set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode)
    Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST.
    Definition: xqc.h:581
    A serialization error has occured while serializing the output of a query.
    Definition: xqc.h:74
    Definition: xqc.h:167
    XQilla-2.3.4/docs/xqc-api/ftv2node.png0000644001725400016040000000012613273140102014356 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/xqc-api/structXQC__Sequence__s.html0000644001725400016040000006557113273140102017376 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Sequence_s Struct Reference

    #include <xqc.h>

    Public Attributes

    XQC_Error(* next )(XQC_Sequence *sequence)
     Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence. More...
     
    void *(* get_interface )(const XQC_Sequence *sequence, const char *name)
     Called to retrieve an implementation specific interface. More...
     
    void(* free )(XQC_Sequence *sequence)
     Called to free the resources associated with the XQC_Sequence. More...
     
    Functions on the current item
    XQC_Error(* item_type )(const XQC_Sequence *sequence, XQC_ItemType *type)
     Returns an item type enumeration for the type of the current item. More...
     
    XQC_Error(* type_name )(const XQC_Sequence *sequence, const char **uri, const char **name)
     Returns the type name for the current item as a (URI, localname) pair. More...
     
    XQC_Error(* string_value )(const XQC_Sequence *sequence, const char **value)
     Returns the string value of the current item in the sequence - this is equivalent to calling fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item. More...
     
    XQC_Error(* integer_value )(const XQC_Sequence *sequence, int *value)
     Returns the value of the current item in the sequence as an integer - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and casting the result to an int. More...
     
    XQC_Error(* double_value )(const XQC_Sequence *sequence, double *value)
     Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item. More...
     
    XQC_Error(* node_name )(const XQC_Sequence *sequence, const char **uri, const char **name)
     Returns the name for the current node as a (URI, localname) pair. More...
     

    Detailed Description

    Member Data Documentation

    XQC_Error(* XQC_Sequence_s::double_value)(const XQC_Sequence *sequence, double *value)

    Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item.

    This is available for all item types.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]valueThe value of the current item as a double.
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
    void(* XQC_Sequence_s::free)(XQC_Sequence *sequence)

    Called to free the resources associated with the XQC_Sequence.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    void*(* XQC_Sequence_s::get_interface)(const XQC_Sequence *sequence, const char *name)

    Called to retrieve an implementation specific interface.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    nameThe name that identifies the interface to return
    Returns
    A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
    XQC_Error(* XQC_Sequence_s::integer_value)(const XQC_Sequence *sequence, int *value)

    Returns the value of the current item in the sequence as an integer - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and casting the result to an int.

    This is available for all item types.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]valueThe value of the current item as an int.
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
    XQC_Error(* XQC_Sequence_s::item_type)(const XQC_Sequence *sequence, XQC_ItemType *type)

    Returns an item type enumeration for the type of the current item.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]typethe XQC_ItemType of the current item
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
    XQC_Error(* XQC_Sequence_s::next)(XQC_Sequence *sequence)

    Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    Return values
    XQC_NO_ERRORwhen the call is successful
    XQC_END_OF_SEQUENCEwhen the end of the sequence is reached
    XQC_TYPE_ERROR
    XQC_DYNAMIC_ERROR
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    XQC_Error(* XQC_Sequence_s::node_name)(const XQC_Sequence *sequence, const char **uri, const char **name)

    Returns the name for the current node as a (URI, localname) pair.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]uriThe URI of the name of the current node. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
    [out]nameThe localname of the name of the current node. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
    XQC_NOT_NODEif the current item is not a node.
    XQC_Error(* XQC_Sequence_s::string_value)(const XQC_Sequence *sequence, const char **value)

    Returns the string value of the current item in the sequence - this is equivalent to calling fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item.

    This is available for all item types.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]valueThe string value of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
    Examples:
    xqc-basic.c, and xqc-context-item.c.
    XQC_Error(* XQC_Sequence_s::type_name)(const XQC_Sequence *sequence, const char **uri, const char **name)

    Returns the type name for the current item as a (URI, localname) pair.

    Parameters
    sequenceThe XQC_Sequence that this function pointer is a member of
    [out]uriThe URI of the type of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
    [out]nameThe localname of the type of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
    Return values
    XQC_NO_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.

    The documentation for this struct was generated from the following file: XQilla-2.3.4/docs/xqc-api/xqc-basic_8c-example.html0000644001725400016040000001314013273140102016704 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqc-basic.c

    This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

    int main(int argc, char *argv[])
    {
    XQC_Error err;
    const char *value;
    // XQilla specific way to create an XQC_Implementation struct
    if(impl == 0) return 1;
    // Prepare an XQuery expression
    err = impl->prepare(impl, "1 to 100", 0, &expr);
    if(err != 0) goto free_impl;
    // Execute the query
    err = expr->execute(expr, 0, &seq);
    if(err != 0) goto free_expr;
    // Iterate over the results, printing them
    while((err = seq->next(seq)) == XQC_NO_ERROR) {
    seq->string_value(seq, &value);
    printf("%s\n", value);
    }
    err = XQC_NO_ERROR;
    // free everything
    seq->free(seq);
    free_expr:
    expr->free(expr);
    free_impl:
    impl->free(impl);
    return err;
    }
    XQilla-2.3.4/docs/xqc-api/xqilla-xqc_8h_source.html0000644001725400016040000001732313273140102017060 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqilla-xqc.h
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _XQILLA_XQC_H
    21 #define _XQILLA_XQC_H
    22 
    23 #include <xqc.h>
    24 
    25 #ifdef __cplusplus
    26 extern "C" {
    27 #endif
    28 
    33 
    46 #ifdef __cplusplus
    47 }
    48 #endif
    49 
    50 #endif
    XQC_Implementation * createXQillaXQCImplementation(int version)
    Creates an XQC_Implementation object that uses XQilla.
    The XQC_Implementation struct provides factory functions for preparing queries.
    Definition: xqc.h:207
    XQilla-2.3.4/docs/xqc-api/structXQC__ErrorHandler__s.html0000644001725400016040000001661613273140102020211 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_ErrorHandler_s Struct Reference

    The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation. More...

    #include <xqc.h>

    Public Attributes

    void * user_data
     Can be used for user specific purposes. More...
     
    void(* error )(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)
     The function called when an error occurs. More...
     

    Detailed Description

    The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation.

    An XQC_ErrorHandler can be set for a query execution using the XQC_StaticContext::set_error_handler() and XQC_DynamicContext::set_error_handler() functions.

    The XQC_ErrorHandler struct has no free() function pointer because the user remains responsible for freeing the resources associated with this struct.

    Member Data Documentation

    void(* XQC_ErrorHandler_s::error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)

    The function called when an error occurs.

    The function receives the components of the error as arguments. When this function returns, the implementation will exit query preparation or execution with the error enumeration value passed as an argument.

    Parameters
    handlerThe XQC_ErrorHandler that this function pointer is a member of
    errorAn enumeration value representing the type of error. One of either XQC_STATIC_ERROR, XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR, or XQC_SERIALIZATION_ERROR.
    error_uriThe namespace URI of the error code QName as a UTF-8 string, or 0 if there is no namespace URI.
    error_localnameThe local name of the error code QName as a UTF-8 string.
    descriptionThe description of the error message as a UTF-8 string. The description may be absent, in which case this parameter will be 0.
    error_objectThe error object, potentially passed to the fn:error() function. The user owns this object, and is responsible for freeing it. The error_object may be absent, in which case this parameter will be 0. Some implementations may not provide this functionality, meaning that this parameter will always be 0.
    void* XQC_ErrorHandler_s::user_data

    Can be used for user specific purposes.


    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/dynsections.js0000644001725400016040000000564713273140101015035 00000000000000function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function(){ var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l XQilla XQC API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - c -

    - d -

    - e -

    - f -

    - g -

    - i -

    - n -

    - p -

    - r -

    - s -

    - t -

    - u -

    XQilla-2.3.4/docs/xqc-api/nav_g.png0000644001725400016040000000015413273140101013721 00000000000000PNG  IHDRrcf3IDATxݡ O@C0:B%#GdLrERq˱/9iDNIENDB`XQilla-2.3.4/docs/xqc-api/files.html0000644001725400016040000000437613273140102014124 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    File List
    Here is a list of all files with brief descriptions:
    XQilla-2.3.4/docs/xqc-api/structXQC__StaticContext__s-members.html0000644001725400016040000002075613273140102022046 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_StaticContext_s Member List
    XQilla-2.3.4/docs/xqc-api/nav_h.png0000644001725400016040000000014213273140101013717 00000000000000PNG  IHDR ,@)IDATxA @BQۛТ) ) aܿoRlIENDB`XQilla-2.3.4/docs/xqc-api/tabs.css0000644001725400016040000000221313273140101013562 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.4/docs/xqc-api/structXQC__Expression__s-members.html0000644001725400016040000000534313273140102021404 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Expression_s Member List

    This is the complete list of members for XQC_Expression_s, including all inherited members.

    create_contextXQC_Expression_s
    executeXQC_Expression_s
    freeXQC_Expression_s
    get_interfaceXQC_Expression_s
    XQilla-2.3.4/docs/xqc-api/ftv2folderclosed.png0000644001725400016040000000115013273140102016074 00000000000000PNG  IHDR}\/IDATx]MO@~uؐlp]#]PYEC\9y`xC &=qvZv3m؃vLN}}ޝZA@n ONp xKxj8s _[D'yye+ 7#rNlk* 0Ь_d_(Öz=xvhzP-䍒̪u$\DJcB4.:Ϗ-}LE #gN;B6䬜@p&h>p9EEάʑ"un$R"?{<%PNt$߶+^<"2Dqq\ҙaA"ԵP}#Ez{.8i p(ADwDE߂z;Kק8t q:uvvݛvEn{MFXgfZ֝*ߩ:jYq#3SWr'  IENDB`XQilla-2.3.4/docs/xqc-api/ftv2cl.png0000644001725400016040000000070513273140102014032 00000000000000PNG  IHDR}\IDATx;H#Ao4ႇK ,m vڞJ XY B|drcvoİ 0Ò3ͤe״1X8nQ88֧3*rb-$P1@Z-#011HkK wO@!fuc;sB[EA\>]Pzf| +g5b i5mM_q,cod!,{Y,zT8H]𤕘7/8Q!F~6?Y A@Ũ.@TYr8*>?e[6xIENDB`XQilla-2.3.4/docs/xqc-api/xqc_8h.html0000644001725400016040000012643513273140102014215 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqc.h File Reference
    #include <stdio.h>

    Go to the source code of this file.

    Classes

    struct  XQC_InputStream_s
     The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation. More...
     
    struct  XQC_ErrorHandler_s
     The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation. More...
     
    struct  XQC_Implementation_s
     The XQC_Implementation struct provides factory functions for preparing queries. More...
     
    struct  XQC_StaticContext_s
     The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared. More...
     
    struct  XQC_Expression_s
     The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times. More...
     
    struct  XQC_DynamicContext_s
     
    struct  XQC_Sequence_s
     

    Macros

    #define XQC_VERSION_NUMBER   1
     The version of the XQC API in this header file. More...
     

    Typedefs

    typedef struct XQC_Implementation_s XQC_Implementation
     
    typedef struct XQC_StaticContext_s XQC_StaticContext
     
    typedef struct XQC_Expression_s XQC_Expression
     
    typedef struct XQC_DynamicContext_s XQC_DynamicContext
     
    typedef struct XQC_Sequence_s XQC_Sequence
     
    typedef struct XQC_InputStream_s XQC_InputStream
     
    typedef struct XQC_ErrorHandler_s XQC_ErrorHandler
     

    Enumerations

    enum  XQC_Error {
      XQC_NO_ERROR = 0, XQC_END_OF_SEQUENCE, XQC_NO_CURRENT_ITEM, XQC_PARSE_ERROR,
      XQC_INVALID_ARGUMENT, XQC_NOT_NODE, XQC_INTERNAL_ERROR, XQC_NOT_IMPLEMENTED,
      XQC_UNRECOGNIZED_ENCODING, XQC_STATIC_ERROR, XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR,
      XQC_SERIALIZATION_ERROR
    }
     The error enumeration used by all XQC functions to designate error condition. More...
     
    enum  XQC_ItemType {
      XQC_EMPTY_TYPE = 0, XQC_DOCUMENT_TYPE, XQC_ELEMENT_TYPE, XQC_ATTRIBUTE_TYPE,
      XQC_TEXT_TYPE, XQC_PROCESSING_INSTRUCTION_TYPE, XQC_COMMENT_TYPE, XQC_NAMESPACE_TYPE,
      XQC_ANY_SIMPLE_TYPE, XQC_ANY_URI_TYPE, XQC_BASE_64_BINARY_TYPE, XQC_BOOLEAN_TYPE,
      XQC_DATE_TYPE, XQC_DATE_TIME_TYPE, XQC_DAY_TIME_DURATION_TYPE, XQC_DECIMAL_TYPE,
      XQC_DOUBLE_TYPE, XQC_DURATION_TYPE, XQC_FLOAT_TYPE, XQC_G_DAY_TYPE,
      XQC_G_MONTH_TYPE, XQC_G_MONTH_DAY_TYPE, XQC_G_YEAR_TYPE, XQC_G_YEAR_MONTH_TYPE,
      XQC_HEX_BINARY_TYPE, XQC_NOTATION_TYPE, XQC_QNAME_TYPE, XQC_STRING_TYPE,
      XQC_TIME_TYPE, XQC_UNTYPED_ATOMIC_TYPE, XQC_YEAR_MONTH_DURATION_TYPE
    }
     
    enum  XQC_XPath1Mode { XQC_XPATH2_0, XQC_XPATH1_0 }
     XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_OrderingMode { XQC_ORDERED, XQC_UNORDERED }
     Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_OrderEmptyMode { XQC_EMPTY_GREATEST, XQC_EMPTY_LEAST }
     Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_InheritMode { XQC_INHERIT_NS, XQC_NO_INHERIT_NS }
     Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_PreserveMode { XQC_PRESERVE_NS, XQC_NO_PRESERVE_NS }
     Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_BoundarySpaceMode { XQC_PRESERVE_SPACE, XQC_STRIP_SPACE }
     Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context. More...
     
    enum  XQC_ConstructionMode { XQC_PRESERVE_CONS, XQC_STRIP_CONS }
     Construction mode as defined in http://www.w3.org/TR/xquery/#static_context. More...
     

    Macro Definition Documentation

    #define XQC_VERSION_NUMBER   1

    The version of the XQC API in this header file.

    Examples:
    xqc-basic.c, and xqc-context-item.c.

    Typedef Documentation

    typedef struct XQC_Sequence_s XQC_Sequence

    Enumeration Type Documentation

    Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_PRESERVE_SPACE 
    XQC_STRIP_SPACE 

    Construction mode as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_PRESERVE_CONS 
    XQC_STRIP_CONS 
    enum XQC_Error

    The error enumeration used by all XQC functions to designate error condition.

    All XQC functions return a value of type XQC_Error.

    Enumerator
    XQC_NO_ERROR 

    No error.

    XQC_END_OF_SEQUENCE 

    The end of the XQC_Sequence has been reached.

    XQC_NO_CURRENT_ITEM 
    XQC_PARSE_ERROR 
    XQC_INVALID_ARGUMENT 
    XQC_NOT_NODE 
    XQC_INTERNAL_ERROR 

    An implementation specific error has occurred.

    XQC_NOT_IMPLEMENTED 

    The implementation does not implement that function.

    XQC_UNRECOGNIZED_ENCODING 

    The encoding of the query has not been recognized, or is not supported by the implementation.

    All implementations must support queries in UTF-8.

    XQC_STATIC_ERROR 

    A static error has occured while preparing the query.

    XQC_TYPE_ERROR 

    A type error has occured while preparing or executing the query.

    XQC_DYNAMIC_ERROR 

    A dynamic error has occured while preparing or executing the query.

    XQC_SERIALIZATION_ERROR 

    A serialization error has occured while serializing the output of a query.

    Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_INHERIT_NS 
    XQC_NO_INHERIT_NS 
    Enumerator
    XQC_EMPTY_TYPE 
    XQC_DOCUMENT_TYPE 
    XQC_ELEMENT_TYPE 
    XQC_ATTRIBUTE_TYPE 
    XQC_TEXT_TYPE 
    XQC_PROCESSING_INSTRUCTION_TYPE 
    XQC_COMMENT_TYPE 
    XQC_NAMESPACE_TYPE 
    XQC_ANY_SIMPLE_TYPE 
    XQC_ANY_URI_TYPE 
    XQC_BASE_64_BINARY_TYPE 
    XQC_BOOLEAN_TYPE 
    XQC_DATE_TYPE 
    XQC_DATE_TIME_TYPE 
    XQC_DAY_TIME_DURATION_TYPE 
    XQC_DECIMAL_TYPE 
    XQC_DOUBLE_TYPE 
    XQC_DURATION_TYPE 
    XQC_FLOAT_TYPE 
    XQC_G_DAY_TYPE 
    XQC_G_MONTH_TYPE 
    XQC_G_MONTH_DAY_TYPE 
    XQC_G_YEAR_TYPE 
    XQC_G_YEAR_MONTH_TYPE 
    XQC_HEX_BINARY_TYPE 
    XQC_NOTATION_TYPE 
    XQC_QNAME_TYPE 
    XQC_STRING_TYPE 
    XQC_TIME_TYPE 
    XQC_UNTYPED_ATOMIC_TYPE 
    XQC_YEAR_MONTH_DURATION_TYPE 

    Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_EMPTY_GREATEST 
    XQC_EMPTY_LEAST 

    Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_ORDERED 
    XQC_UNORDERED 

    Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_PRESERVE_NS 
    XQC_NO_PRESERVE_NS 

    XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context.

    Enumerator
    XQC_XPATH2_0 
    XQC_XPATH1_0 
    XQilla-2.3.4/docs/xqc-api/ftv2mnode.png0000644001725400016040000000036613273140102014541 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/xqc-api/ftv2splitbar.png0000644001725400016040000000047213273140102015255 00000000000000PNG  IHDRMIDATxݡJCa( %4 bȘͶ3v^EL ,b;{Ï/aYկq:\IIIIIIIIIIIIIIIIII-l揊_t/ϻYQVYivk_ۣI@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$C[V=[fIENDB`XQilla-2.3.4/docs/xqc-api/ftv2mo.png0000644001725400016040000000062313273140102014046 00000000000000PNG  IHDR}\ZIDATx1K@iBҡ(h"EI'oک 8R- BTP]zB3 _㒻}]V}dIiJb+|K…,[P\ʘMƢ#F`JݤkA?Y4ck6"Z)0SHM@㋺Wmo4HJ+Qobt *~8_+3Y- PwA+^}+xhϕMAE]TD~EÞߴ^R)`A9pq-۾ۍ3tƛTH) ICxd#1 m@V?Zgo_3-\IENDB`XQilla-2.3.4/docs/xqc-api/xqilla-xqc_8h.html0000644001725400016040000000733413273140102015501 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqilla-xqc.h File Reference
    #include <xqc.h>

    Go to the source code of this file.

    Functions

    XQC_ImplementationcreateXQillaXQCImplementation (int version)
     Creates an XQC_Implementation object that uses XQilla. More...
     

    Function Documentation

    XQC_Implementation* createXQillaXQCImplementation ( int  version)

    Creates an XQC_Implementation object that uses XQilla.

    Examples:
    xqc-basic.c, and xqc-context-item.c.
    XQilla-2.3.4/docs/xqc-api/structXQC__InputStream__s.html0000644001725400016040000002021013273140102020056 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_InputStream_s Struct Reference

    The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation. More...

    #include <xqc.h>

    Public Attributes

    const char * encoding
     The text encoding of the input data as a UTF-8 string, or 0 if unknown. More...
     
    void * user_data
     Can be used for user specific purposes. More...
     
    unsigned int(* read )(XQC_InputStream *stream, void *buffer, unsigned int length)
     The function called to read more of the input query. More...
     
    void(* free )(XQC_InputStream *stream)
     Called to free the resources associated with the XQC_InputStream. More...
     

    Detailed Description

    The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation.

    Member Data Documentation

    const char* XQC_InputStream_s::encoding

    The text encoding of the input data as a UTF-8 string, or 0 if unknown.

    The value of the string should conform to the EncName grammar production as specified in XML 1.0:

    http://www.w3.org/TR/REC-xml/#NT-EncName

    void(* XQC_InputStream_s::free)(XQC_InputStream *stream)

    Called to free the resources associated with the XQC_InputStream.

    Parameters
    streamThe XQC_InputStream that this function pointer is a member of
    unsigned int(* XQC_InputStream_s::read)(XQC_InputStream *stream, void *buffer, unsigned int length)

    The function called to read more of the input query.

    The function should read the next chunk of input into the buffer provided, returning the length of the data read.

    Parameters
    streamThe XQC_InputStream that this function pointer is a member of
    [out]bufferThe buffer to read the data into
    lengthThe length of the buffer
    Returns
    The number of bytes read - this will be less than length if the end of the input is reached
    void* XQC_InputStream_s::user_data

    Can be used for user specific purposes.


    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/structXQC__DynamicContext__s.html0000644001725400016040000004600213273140102020543 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_DynamicContext_s Struct Reference

    #include <xqc.h>

    Public Attributes

    XQC_Error(* set_variable )(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)
     Sets the external variable to the value given. More...
     
    XQC_Error(* get_variable )(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)
     
    XQC_Error(* set_context_item )(XQC_DynamicContext *context, XQC_Sequence *value)
     Sets the context item to the current item of the XQC_Sequence given. More...
     
    XQC_Error(* get_context_item )(const XQC_DynamicContext *context, XQC_Sequence **value)
     
    XQC_Error(* set_implicit_timezone )(XQC_DynamicContext *context, int timezone)
     The timezone given must be between -840 and +840 minutes (-14 and +14 hours). More...
     
    XQC_Error(* get_implicit_timezone )(const XQC_DynamicContext *context, int *timezone)
     
    XQC_Error(* set_error_handler )(XQC_DynamicContext *context, XQC_ErrorHandler *handler)
     
    XQC_Error(* get_error_handler )(const XQC_DynamicContext *context, XQC_ErrorHandler **handler)
     
    void *(* get_interface )(const XQC_DynamicContext *context, const char *name)
     Called to retrieve an implementation specific interface. More...
     
    void(* free )(XQC_DynamicContext *context)
     Called to free the resources associated with the XQC_DynamicContext. More...
     

    Detailed Description

    Examples:
    xqc-context-item.c.

    Member Data Documentation

    void(* XQC_DynamicContext_s::free)(XQC_DynamicContext *context)

    Called to free the resources associated with the XQC_DynamicContext.

    Parameters
    contextThe XQC_DynamicContext that this function pointer is a member of
    Examples:
    xqc-context-item.c.
    XQC_Error(* XQC_DynamicContext_s::get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value)
    XQC_Error(* XQC_DynamicContext_s::get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler)
    XQC_Error(* XQC_DynamicContext_s::get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone)
    void*(* XQC_DynamicContext_s::get_interface)(const XQC_DynamicContext *context, const char *name)

    Called to retrieve an implementation specific interface.

    Parameters
    contextThe XQC_DynamicContext that this function pointer is a member of
    nameThe name that identifies the interface to return
    Returns
    A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
    XQC_Error(* XQC_DynamicContext_s::get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)
    XQC_Error(* XQC_DynamicContext_s::set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value)

    Sets the context item to the current item of the XQC_Sequence given.

    The user remains responsible for freeing the XQC_Sequence passed as the value - the XQC_Sequence must not be freed until the XQC_DynamicContext has been freed or it's context item set to a different value.

    Parameters
    contextThe XQC_DynamicContext that this function pointer is a member of
    valueThe XQC_Sequence value for the context item, or 0 to remove the existing context item value.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_NO_CURRENT_ITEMif there is no current item in the value.
    Examples:
    xqc-context-item.c.
    XQC_Error(* XQC_DynamicContext_s::set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler)
    XQC_Error(* XQC_DynamicContext_s::set_implicit_timezone)(XQC_DynamicContext *context, int timezone)

    The timezone given must be between -840 and +840 minutes (-14 and +14 hours).

    Parameters
    timezoneThe implicit timezone to set, as an offset in minutes from GMT
    XQC_Error(* XQC_DynamicContext_s::set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)

    Sets the external variable to the value given.

    The implementation takes ownership of the XQC_Sequence passed in, and is responsible for freeing it.

    Parameters
    contextThe XQC_DynamicContext that this function pointer is a member of
    uriThe namespace URI of the external variable to set.
    nameThe name of the external variable to set - this should be a valid lexical xs:QName. If uri is 0 and name has a prefix, that prefix is resolved using the in-scope namespace prefixes for the expression.
    valueThe XQC_Sequence value for the variable, or 0 to remove the existing binding for the variable.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/ftv2link.png0000644001725400016040000000135213273140102014370 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/xqc-api/doxygen.css0000644001725400016040000005645613273140102014331 00000000000000/* The standard CSS for doxygen 1.8.5 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0px; margin: 0px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ 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 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } /* @end */ /* .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%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: bold; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; border-top-left-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; -moz-border-radius-topleft: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; -webkit-border-top-left-radius: 4px; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view when not used as main index */ div.directory { margin: 10px 0px; border-top: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ dl.section { margin-left: 0px; padding-left: 0px; } dl.note { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00D000; } dl.deprecated { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #505050; } dl.todo { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #00C0E0; } dl.test { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #3030E0; } dl.bug { margin-left:-7px; padding-left: 3px; border-left:4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 20px 10px 10px; width: 200px; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #ffffff; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #ffffff; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } XQilla-2.3.4/docs/xqc-api/globals_eval.html0000644001725400016040000002404213273140102015444 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     

    - x -

    • XQC_ANY_SIMPLE_TYPE : xqc.h
    • XQC_ANY_URI_TYPE : xqc.h
    • XQC_ATTRIBUTE_TYPE : xqc.h
    • XQC_BASE_64_BINARY_TYPE : xqc.h
    • XQC_BOOLEAN_TYPE : xqc.h
    • XQC_COMMENT_TYPE : xqc.h
    • XQC_DATE_TIME_TYPE : xqc.h
    • XQC_DATE_TYPE : xqc.h
    • XQC_DAY_TIME_DURATION_TYPE : xqc.h
    • XQC_DECIMAL_TYPE : xqc.h
    • XQC_DOCUMENT_TYPE : xqc.h
    • XQC_DOUBLE_TYPE : xqc.h
    • XQC_DURATION_TYPE : xqc.h
    • XQC_DYNAMIC_ERROR : xqc.h
    • XQC_ELEMENT_TYPE : xqc.h
    • XQC_EMPTY_GREATEST : xqc.h
    • XQC_EMPTY_LEAST : xqc.h
    • XQC_EMPTY_TYPE : xqc.h
    • XQC_END_OF_SEQUENCE : xqc.h
    • XQC_FLOAT_TYPE : xqc.h
    • XQC_G_DAY_TYPE : xqc.h
    • XQC_G_MONTH_DAY_TYPE : xqc.h
    • XQC_G_MONTH_TYPE : xqc.h
    • XQC_G_YEAR_MONTH_TYPE : xqc.h
    • XQC_G_YEAR_TYPE : xqc.h
    • XQC_HEX_BINARY_TYPE : xqc.h
    • XQC_INHERIT_NS : xqc.h
    • XQC_INTERNAL_ERROR : xqc.h
    • XQC_INVALID_ARGUMENT : xqc.h
    • XQC_NAMESPACE_TYPE : xqc.h
    • XQC_NO_CURRENT_ITEM : xqc.h
    • XQC_NO_ERROR : xqc.h
    • XQC_NO_INHERIT_NS : xqc.h
    • XQC_NO_PRESERVE_NS : xqc.h
    • XQC_NOT_IMPLEMENTED : xqc.h
    • XQC_NOT_NODE : xqc.h
    • XQC_NOTATION_TYPE : xqc.h
    • XQC_ORDERED : xqc.h
    • XQC_PARSE_ERROR : xqc.h
    • XQC_PRESERVE_CONS : xqc.h
    • XQC_PRESERVE_NS : xqc.h
    • XQC_PRESERVE_SPACE : xqc.h
    • XQC_PROCESSING_INSTRUCTION_TYPE : xqc.h
    • XQC_QNAME_TYPE : xqc.h
    • XQC_SERIALIZATION_ERROR : xqc.h
    • XQC_STATIC_ERROR : xqc.h
    • XQC_STRING_TYPE : xqc.h
    • XQC_STRIP_CONS : xqc.h
    • XQC_STRIP_SPACE : xqc.h
    • XQC_TEXT_TYPE : xqc.h
    • XQC_TIME_TYPE : xqc.h
    • XQC_TYPE_ERROR : xqc.h
    • XQC_UNORDERED : xqc.h
    • XQC_UNRECOGNIZED_ENCODING : xqc.h
    • XQC_UNTYPED_ATOMIC_TYPE : xqc.h
    • XQC_XPATH1_0 : xqc.h
    • XQC_XPATH2_0 : xqc.h
    • XQC_YEAR_MONTH_DURATION_TYPE : xqc.h
    XQilla-2.3.4/docs/xqc-api/ftv2ns.png0000644001725400016040000000060413273140102014052 00000000000000PNG  IHDR}\KIDATx1K1 G⁂n lE(nࢋMA@ tK%ܕ ]BI%uͅa,e v祫i\tun0oV\$G.&@Y=%$um6'߫9Q\b)0-ZTH`pcsm 5:>ަI F] jgo[ on Ԭvq?\ 6Tee lQ c3*dWTM\rh61F fIENDB`XQilla-2.3.4/docs/xqc-api/structXQC__StaticContext__s.html0000644001725400016040000016710413273140102020415 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_StaticContext_s Struct Reference

    The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared. More...

    #include <xqc.h>

    Public Attributes

    XQC_Error(* create_child_context )(XQC_StaticContext *context, XQC_StaticContext **child_context)
     Creates a child context of the given static context. More...
     
    XQC_Error(* declare_ns )(XQC_StaticContext *context, const char *prefix, const char *uri)
     Adds a (prefix, uri) pair to the set of statically known namespaces of the given context. More...
     
    XQC_Error(* get_ns_by_prefix )(XQC_StaticContext *context, const char *prefix, const char **result_ns)
     Returns the namespace uri that belongs to the given prefix. More...
     
    XQC_Error(* set_default_element_and_type_ns )(XQC_StaticContext *context, const char *uri)
     Sets the value of the default namespace for elements and types. More...
     
    XQC_Error(* get_default_element_and_type_ns )(XQC_StaticContext *context, const char **uri)
     
    XQC_Error(* set_default_function_ns )(XQC_StaticContext *context, const char *uri)
     Sets the default namespace for functions. More...
     
    XQC_Error(* get_default_function_ns )(XQC_StaticContext *context, const char **uri)
     Returnsthe default namespace for functions set in this static context. More...
     
    XQC_Error(* set_xpath_compatib_mode )(XQC_StaticContext *context, XQC_XPath1Mode mode)
     Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0. More...
     
    XQC_Error(* get_xpath_compatib_mode )(XQC_StaticContext *context, XQC_XPath1Mode *mode)
     Returns the XPath 1.0 compatibility that is set in the given static context. More...
     
    XQC_Error(* set_construction_mode )(XQC_StaticContext *context, XQC_ConstructionMode mode)
     Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext. More...
     
    XQC_Error(* get_construction_mode )(XQC_StaticContext *context, XQC_ConstructionMode *mode)
     Returns the construction mode that is set in the given static context. More...
     
    XQC_Error(* set_ordering_mode )(XQC_StaticContext *context, XQC_OrderingMode mode)
     Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED. More...
     
    XQC_Error(* get_ordering_mode )(XQC_StaticContext *context, XQC_OrderingMode *mode)
     Returns the ordering mode that is set in the given static context. More...
     
    XQC_Error(* set_default_order_empty_sequences )(XQC_StaticContext *context, XQC_OrderEmptyMode mode)
     Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST. More...
     
    XQC_Error(* get_default_order_empty_sequences )(XQC_StaticContext *context, XQC_OrderEmptyMode *mode)
     Returns the default order mode for empty sequences that is set in the given static context. More...
     
    XQC_Error(* set_boundary_space_policy )(XQC_StaticContext *context, XQC_BoundarySpaceMode mode)
     Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE. More...
     
    XQC_Error(* get_boundary_space_policy )(XQC_StaticContext *context, XQC_BoundarySpaceMode *mode)
     Returns the boundary space policy that is set in the given static context. More...
     
    XQC_Error(* set_copy_ns_mode )(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit)
     Sets the copy namespace mode which consists of the preserve and the inherit mode. More...
     
    XQC_Error(* get_copy_ns_mode )(XQC_StaticContext *context, XQC_PreserveMode *preserve, XQC_InheritMode *inherit)
     Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode. More...
     
    XQC_Error(* set_base_uri )(XQC_StaticContext *context, const char *base_uri)
     Sets the base uri in the given static context. More...
     
    XQC_Error(* get_base_uri )(XQC_StaticContext *context, const char **base_uri)
     Returns the base uri that is set in the given static context. More...
     
    XQC_Error(* set_error_handler )(XQC_StaticContext *context, XQC_ErrorHandler *handler)
     
    XQC_Error(* get_error_handler )(const XQC_StaticContext *context, XQC_ErrorHandler **handler)
     
    void *(* get_interface )(const XQC_StaticContext *context, const char *name)
     Called to retrieve an implementation specific interface. More...
     
    void(* free )(XQC_StaticContext *context)
     Called to free the resources associated with the XQC_StaticContext. More...
     

    Detailed Description

    The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared.

    An XQC_StaticContext object is not thread-safe - threads should each use their own instance of a XQC_StaticContext object.

    XQC_StaticContext objects are created by calling the XQC_Implementation::create_context() function. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_StaticContext object should be freed before the XQC_Implementation object that created it.

    Member Data Documentation

    XQC_Error(* XQC_StaticContext_s::create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context)

    Creates a child context of the given static context.

    A child context contains the same information as it's parent context but it allows the user to override and add information. The user is responsible for freeing the XQC_StaticContext object returned by calling XQC_StaticContext::free().

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]child_contextThe newly created XQC_StaticContext object which is a child of the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri)

    Adds a (prefix, uri) pair to the set of statically known namespaces of the given context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    prefixThe prefix of the namespace to add to the given XQC_StaticContext.
    uriThe uri of the namespace to add to the given XQC_StaticContext.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    void(* XQC_StaticContext_s::free)(XQC_StaticContext *context)

    Called to free the resources associated with the XQC_StaticContext.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    XQC_Error(* XQC_StaticContext_s::get_base_uri)(XQC_StaticContext *context, const char **base_uri)

    Returns the base uri that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]base_uriThe base uri that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode *mode)

    Returns the boundary space policy that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]modeThe XQC_BoundarySpaceMode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode *mode)

    Returns the construction mode that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]modeThe XQC_ConstructionMode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode *preserve, XQC_InheritMode *inherit)

    Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]preserveThe XQC_PreserveMode that is set in the given context.
    [out]inheritThe XQC_InheritMode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri)
    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]uriThe uri of the default element and type namespace that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_default_function_ns)(XQC_StaticContext *context, const char **uri)

    Returnsthe default namespace for functions set in this static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]uriThe uri of the default function namespace that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode *mode)

    Returns the default order mode for empty sequences that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]modeThe XQC_OrderEmptyMode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler)
    void*(* XQC_StaticContext_s::get_interface)(const XQC_StaticContext *context, const char *name)

    Called to retrieve an implementation specific interface.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    nameThe name that identifies the interface to return
    Returns
    A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
    XQC_Error(* XQC_StaticContext_s::get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns)

    Returns the namespace uri that belongs to the given prefix.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    prefixThe prefix of the namespace to add to the given XQC_StaticContext.
    [out]result_nsThe namespace uri of the namespace registered with the given prefix, or 0 if none can be found.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode *mode)

    Returns the ordering mode that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]modeThe XQC_OrderingMode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode *mode)

    Returns the XPath 1.0 compatibility that is set in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    [out]modeThe XQC_XPath1Mode that is set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_base_uri)(XQC_StaticContext *context, const char *base_uri)

    Sets the base uri in the given static context.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    base_uriThe base uri to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode)

    Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    modeThe XQC_BoundarySpaceMode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode)

    Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    modeThe XQC_ConstructionMode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit)

    Sets the copy namespace mode which consists of the preserve and the inherit mode.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    preserveThe XQC_PreserveMode to set in the given context.
    inheritThe XQC_InheritMode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri)

    Sets the value of the default namespace for elements and types.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    uriThe uri of the default element and type namespace to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_default_function_ns)(XQC_StaticContext *context, const char *uri)

    Sets the default namespace for functions.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    uriThe uri of the default function namespace to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode)

    Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    modeThe XQC_OrderEmptyMode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler)
    XQC_Error(* XQC_StaticContext_s::set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode)

    Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    modeThe XQC_OrderingMode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR
    XQC_Error(* XQC_StaticContext_s::set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode)

    Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0.

    Parameters
    contextThe XQC_StaticContext that this function pointer is a member of
    modeThe XQC_XPath1Mode to set in the given context.
    Return values
    XQC_NO_ERROR
    XQC_INTERNAL_ERROR

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/xqc-api/structXQC__Implementation__s-members.html0000644001725400016040000001300313273140102022222 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    XQC_Implementation_s Member List
    XQilla-2.3.4/docs/xqc-api/tab_s.png0000644001725400016040000000027013273140101013716 00000000000000PNG  IHDR$[IDATx݁ @@ѣ?Q"%If6[HQ<]dr s?O=w'F -~rÍ[芭m֬ݯнF)Y% `n,9B!ь\<#IENDB`XQilla-2.3.4/docs/xqc-api/bc_s.png0000644001725400016040000000124413273140101013536 00000000000000PNG  IHDR_ kIDATxkQϝ̤I&m&156*nąܸR,4 +H(Ub1J.(EmߏhJmKS'C(х & r3g(z&_9}՟@mu ` h`ԯ &~M4%3?h)\Yi>Jb @giވkg\轭EUv+?E"pB\Y&$vM+Dn)}:Xo 3گ'.f0u9Ljf6%3Gf#sm(,k*ʒJJˢou_~ r]%%mnu]zr5[ưXeI XQilla XQC API Documentation SourceForge.net Logo
    xqc-context-item.c

    This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

    int main(int argc, char *argv[])
    {
    XQC_Sequence *seq, *doc;
    XQC_Error err;
    const char *value;
    // XQilla specific way to create an XQC_Implementation struct
    if(impl == 0) return 1;
    // Parse an XQuery expression
    err = impl->prepare(impl, "foo/bar/@baz", 0, &expr);
    if(err != 0) goto free_impl;
    // Parse a document
    err = impl->parse_document(impl, "<foo><bar baz='hello'/></foo>", &doc);
    if(err != 0) goto free_expr;
    // Create a dynamic context
    err = expr->create_context(expr, &context);
    if(err != 0) goto free_doc;
    // Set the document as the context item
    doc->next(doc);
    context->set_context_item(context, doc);
    // Execute the query
    err = expr->execute(expr, context, &seq);
    if(err != 0) goto free_context;
    // Iterate over the results, printing them
    while((err = seq->next(seq)) == XQC_NO_ERROR) {
    seq->string_value(seq, &value);
    printf("%s\n", value);
    }
    err = XQC_NO_ERROR;
    // free everything
    seq->free(seq);
    free_context:
    context->free(context);
    free_doc:
    doc->free(doc);
    free_expr:
    expr->free(expr);
    free_impl:
    impl->free(impl);
    return err;
    }
    XQilla-2.3.4/docs/xqc-api/sync_off.png0000644001725400016040000000152513273140102014441 00000000000000PNG  IHDRw=IDATxKhTW1I&38MII3b$c I1V1-(T.* t!K[čf`l(l"Y6gT}sgܹ d{8?̝;u`:!FB?Űm'y>ѝlU_?]Y(N8f1qn-etm 0}b%׌=0?1s08;_ W|%\Zð >舽lnp.a{ )t; b n652?>Oдunm`׭ZWjC~>־0+ {{fMŕټ` ݛ%uA6,]kWu]7ihu1 l Ҷ̺:\cxhRQt$ fd<4B[fd7=.M9//O a},j?.5ښm?X2#d p(?c!a1ޗةܾ7dK:)3],H+ku<|`LhC7e םt H$^2%l.aeÉ|s }D^hz~Rá]|#@חև[k<|(*ݹdtM:,]' X_n| /cfOIENDB`XQilla-2.3.4/docs/xqc-api/ftv2plastnode.png0000644001725400016040000000034513273140102015425 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/xqc-api/doxygen.png0000644001725400016040000000730313273140102014310 00000000000000PNG  IHDRh ;IDATx]y\պ~45%TL QPE"q11]8aw*(*" z`8 m,p$%B(8k6lk[߷;?kPx'tz3_Q4g@m ci{~4:Hc'PP7^h zbcP 3}OqNkT(?d ~z<4ǡ؞vz٦Zd,6k]Fz< Zs?sU2Sw1c`[}%ѽ.Լ6BLZ!F8[ T #g]:vu?vbR?wgb$kF~;عƕX?lNʪ,HCgAzlӺg ]jM3oҳ'=$f}GS_co.ȹ:ds:1={9?zqviDp moaEqҵw}~{j{ºFNë[OqOSXO]>muľe5{Jկ(bl}`UyacCAklysA7oJ .Be. Z'-PyF.lp&.j7rez19HG%qz׈c_k_")HJn~֘5 q5#+9T Rܸrzϴ̝ =υ{áOfwg|/$;֙ƭ]W"/< DఽB}yIEc^=[VhM$l];Kr¦* t$]M;I1!M (f<5~z mՠ>کIz;u[ie^ӳNF6B\}7+,'a -yHY,^f~?Hc{Z+4\sٷnߣFơsغD?<vkx0MlذIxdEEAMg*YE7ۙ^[uv[wG=Edn׶l'pGk+C82 dz3H BS[wŘ ~xptmţiQ歉AB1fى4uI]6% 1t.NJphz̠R1"3-"&1[:N mW0_œ 6&)ꦬ}~{m]zMP~^:eQT_*798ˍ 347E¿uSɻU_ NWeNӏ|;;d"ȉ޵ᆴ"ĴMM+bY_E]PXKНIޥoE<_(EP|m,өZߺk,kM`jzeU t36˷r}w:Χ |TܵQK_pໃYd0!a –W$$/\$ 2mLH dHV,:RZJaz*>_NT(‚^SVFU8E܈nd;8\C]=m:bDd=ߞUU5O|]Pv\]2"y[yzg{Y{Ù5;w{N3nĨwKݭ29Id y)P8ũ@mPwjl,6 hWd ump.DžtwR xBδYcxg*vo y򑕓[?V0NO난~󒯷h#Hk8kӍ^q@]ӓ,56-κUn[>]@nϜp[6# 4tn:}8T9_Y$/GK(ђM`dѺ;OB &P{qhJ+閧l2M_1ӫtlya L^y.۽[ u/]iS}N>e1qjf&iT\=kϛX-.84V5u!TE .OH4zwTr. xքHHg hT$yqzp< qrwI]I鲘s":ՖbզL69VW<;3?M3AV#ޯKUr9!qtH+6V/TS^pqgLP'5E ޺ n"2|;W"֬TwtO' +W+Z̖<&nO,I06.Z.h*INڒOegBXZ9hDSʍ A/c`A"z|ş;H#|%OOD mcƤqmu&~n πZj =_n[nN$_bE)8?6l}#bW( d-p&a"9ņ$ڛA!;{~8ޣ10`#kuN Qbh 8Mawhq(bK Z%m֍(J)@> 7% {y ohf>{p.­_%glZ\B2B #Һphݚ[<#SpA7Ht4:|gtL*($Ʃ$;b`=MM5ǾHH.HeA5}rd)T};Q5i2O00;,냔}g]79_{C>h{.II?[Kswz6u;OJa˶zvd l舊yc'rTWӰL |ʽhB T'ò]K(=Kx  L,Pʵu׈ž1ݫ;pGDxZY kf676oھH~޸ 8Up6(? K+?%ݷ/19U?B)l @=ޞkIENDB`XQilla-2.3.4/docs/xqc-api/ftv2pnode.png0000644001725400016040000000034513273140102014541 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/xqc-api/ftv2folderopen.png0000644001725400016040000000112513273140102015566 00000000000000PNG  IHDR}\IDATx]?oP9i4i;iiZ7`b٬,HU'$*T]TDP6w};C; aӝߟjAInS}9Hӎ|? =_Ɗue*;YEsYBėsٌ ɫYq !Gǿv̇خ F}qb]70)d-}PfY{4@}2ԗNIǃc%UImcƝ>xt9$ OVE*Û#׈r@l$PrHaa dZrqIoT\,tj2FAxv-Lp׌p TI/ \sf; jViTo^cpb]€<a՜y9:+,E f6NEKU}^;nZuUS4 ѬbN.kjT% iV )GJ@TxIENDB`XQilla-2.3.4/docs/xqc-api/dir_cd286eaca90d603742dbe3f2f44f956c.html0000644001725400016040000000400313273140102020367 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    xqilla Directory Reference

    Files

    file  xqilla-xqc.h [code]
     
    XQilla-2.3.4/docs/xqc-api/globals_defs.html0000644001725400016040000000403413273140102015435 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     
    • XQC_VERSION_NUMBER : xqc.h
    XQilla-2.3.4/docs/xqc-api/ftv2blank.png0000644001725400016040000000012613273140102014520 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/xqc-api/globals_func.html0000644001725400016040000000406713273140102015455 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/xqc-api/ftv2vertline.png0000644001725400016040000000012613273140102015261 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/xqc-api/annotated.html0000644001725400016040000001103113273140102014761 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
    Class List
    Here are the classes, structs, unions and interfaces with brief descriptions:
    oCXQC_DynamicContext_s
    oCXQC_ErrorHandler_sThe XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation
    oCXQC_Expression_sThe XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times
    oCXQC_Implementation_sThe XQC_Implementation struct provides factory functions for preparing queries
    oCXQC_InputStream_sThe XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation
    oCXQC_Sequence_s
    \CXQC_StaticContext_sThe XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared
    XQilla-2.3.4/docs/xqc-api/tab_h.png0000644001725400016040000000026113273140101013703 00000000000000PNG  IHDR$[xIDATxM@~ΒEv"!d*rGq={SݧH uO^[_Xvyұ=VCff{R%_rug(?gh\i>|sIENDB`XQilla-2.3.4/docs/dom3-api/0000755001725400016040000000000013273140101012250 500000000000000XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__dep__incl.map0000644001725400016040000000024513273140101020561 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__dep__incl.map0000644001725400016040000000025513273140100021564 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLocator-members.html0000644001725400016040000001127513273140100021521 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLocator Member List

    This is the complete list of members for xercesc::DOMLocator, including all inherited members.

    DOMLocator()xercesc::DOMLocatorinlineprotected
    getByteOffset() const =0xercesc::DOMLocatorpure virtual
    getColumnNumber() const =0xercesc::DOMLocatorpure virtual
    getLineNumber() const =0xercesc::DOMLocatorpure virtual
    getRelatedNode() const =0xercesc::DOMLocatorpure virtual
    getURI() const =0xercesc::DOMLocatorpure virtual
    getUtf16Offset() const =0xercesc::DOMLocatorpure virtual
    ~DOMLocator()xercesc::DOMLocatorinlinevirtual
    XQilla-2.3.4/docs/dom3-api/tab_b.png0000644001725400016040000000025113273140077013757 00000000000000PNG  IHDR$[pIDATxM EǻԸu`V0}:t]Ds䮂u|x>1&m8SxLU޲iEOsnxKN~jIENDB`XQilla-2.3.4/docs/dom3-api/DOM_8hpp.html0000644001725400016040000002033113273140077014447 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOM.hpp File Reference
    #include <xercesc/dom/DOMAttr.hpp>
    #include <xercesc/dom/DOMCDATASection.hpp>
    #include <xercesc/dom/DOMCharacterData.hpp>
    #include <xercesc/dom/DOMComment.hpp>
    #include <xercesc/dom/DOMDocument.hpp>
    #include <xercesc/dom/DOMDocumentFragment.hpp>
    #include <xercesc/dom/DOMDocumentType.hpp>
    #include <xercesc/dom/DOMElement.hpp>
    #include <xercesc/dom/DOMEntity.hpp>
    #include <xercesc/dom/DOMEntityReference.hpp>
    #include <xercesc/dom/DOMException.hpp>
    #include <xercesc/dom/DOMImplementation.hpp>
    #include <xercesc/dom/DOMNamedNodeMap.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    #include <xercesc/dom/DOMNodeList.hpp>
    #include <xercesc/dom/DOMNotation.hpp>
    #include <xercesc/dom/DOMProcessingInstruction.hpp>
    #include <xercesc/dom/DOMText.hpp>
    #include <xercesc/dom/DOMDocumentRange.hpp>
    #include <xercesc/dom/DOMDocumentTraversal.hpp>
    #include <xercesc/dom/DOMNodeFilter.hpp>
    #include <xercesc/dom/DOMNodeIterator.hpp>
    #include <xercesc/dom/DOMRange.hpp>
    #include <xercesc/dom/DOMRangeException.hpp>
    #include <xercesc/dom/DOMTreeWalker.hpp>
    #include <xercesc/dom/DOMLSParser.hpp>
    #include <xercesc/dom/DOMLSParserFilter.hpp>
    #include <xercesc/dom/DOMConfiguration.hpp>
    #include <xercesc/dom/DOMLSResourceResolver.hpp>
    #include <xercesc/dom/DOMError.hpp>
    #include <xercesc/dom/DOMErrorHandler.hpp>
    #include <xercesc/dom/DOMImplementationLS.hpp>
    #include <xercesc/dom/DOMImplementationList.hpp>
    #include <xercesc/dom/DOMImplementationRegistry.hpp>
    #include <xercesc/dom/DOMImplementationSource.hpp>
    #include <xercesc/dom/DOMLSInput.hpp>
    #include <xercesc/dom/DOMLSOutput.hpp>
    #include <xercesc/dom/DOMLocator.hpp>
    #include <xercesc/dom/DOMPSVITypeInfo.hpp>
    #include <xercesc/dom/DOMStringList.hpp>
    #include <xercesc/dom/DOMTypeInfo.hpp>
    #include <xercesc/dom/DOMUserDataHandler.hpp>
    #include <xercesc/dom/DOMLSSerializer.hpp>
    #include <xercesc/dom/DOMLSSerializerFilter.hpp>
    #include <xercesc/dom/DOMXPathEvaluator.hpp>
    #include <xercesc/dom/DOMXPathNSResolver.hpp>
    #include <xercesc/dom/DOMXPathException.hpp>
    #include <xercesc/dom/DOMXPathExpression.hpp>
    #include <xercesc/dom/DOMXPathResult.hpp>
    #include <xercesc/dom/DOMXPathNamespace.hpp>

    Go to the source code of this file.

    XQilla-2.3.4/docs/dom3-api/inherit_graph_38.md50000644001725400016040000000004013273140100015725 0000000000000051899fe9c10cc178d036c514af17f787XQilla-2.3.4/docs/dom3-api/classXQillaExpression-members.html0000644001725400016040000000654213273140077021031 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaExpression Member List

    This is the complete list of members for XQillaExpression, including all inherited members.

    DOMXPathExpression()xercesc::DOMXPathExpressioninlineprotected
    evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0xercesc::DOMXPathExpressionpure virtual
    release()=0XQillaExpressionpure virtual
    ~DOMXPathExpression()xercesc::DOMXPathExpressioninlinevirtual
    XQilla-2.3.4/docs/dom3-api/inherit_graph_18.md50000644001725400016040000000004013273140100015723 0000000000000043df67f09efed658298f334fbd20f71aXQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__dep__incl.md50000644001725400016040000000004013273140077017641 00000000000000ca89bc9ddd7001413d8442e91df4f73bXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMUserDataHandler-members.html0000644001725400016040000001243113273140100023117 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMUserDataHandler Member List

    This is the complete list of members for xercesc::DOMUserDataHandler, including all inherited members.

    DOMOperationType enum namexercesc::DOMUserDataHandler
    DOMUserDataHandler()xercesc::DOMUserDataHandlerinlineprotected
    handle(DOMOperationType operation, const XMLCh *const key, void *data, const DOMNode *src, DOMNode *dst)=0xercesc::DOMUserDataHandlerpure virtual
    NODE_ADOPTED enum valuexercesc::DOMUserDataHandler
    NODE_CLONED enum valuexercesc::DOMUserDataHandler
    NODE_DELETED enum valuexercesc::DOMUserDataHandler
    NODE_IMPORTED enum valuexercesc::DOMUserDataHandler
    NODE_RENAMED enum valuexercesc::DOMUserDataHandler
    ~DOMUserDataHandler()xercesc::DOMUserDataHandlerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp.html0000644001725400016040000001004713273140101015413 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMRange.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMRange.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMRange
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classXQillaNSResolver__inherit__graph.md50000644001725400016040000000004013273140077022211 0000000000000097a937ac1b16d81716be83b59136bb43XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp_source.html0000644001725400016040000003545713273140077017372 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLocator.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLocator.hpp 676853 2008-07-15 09:58:05Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLOCATOR_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLOCATOR_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMNode;
    31 
    32 
    41 class CDOM_EXPORT DOMLocator
    42 {
    43 protected:
    44  // -----------------------------------------------------------------------
    45  // Hidden constructors
    46  // -----------------------------------------------------------------------
    49  DOMLocator() {};
    51 
    52 private:
    53  // -----------------------------------------------------------------------
    54  // Unimplemented constructors and operators
    55  // -----------------------------------------------------------------------
    58  DOMLocator(const DOMLocator &);
    59  DOMLocator & operator = (const DOMLocator &);
    61 
    62 public:
    63  // -----------------------------------------------------------------------
    64  // All constructors are hidden, just the destructor is available
    65  // -----------------------------------------------------------------------
    72  virtual ~DOMLocator() {};
    74 
    75  // -----------------------------------------------------------------------
    76  // Virtual DOMLocator interface
    77  // -----------------------------------------------------------------------
    80  // -----------------------------------------------------------------------
    81  // Getter methods
    82  // -----------------------------------------------------------------------
    89  virtual XMLFileLoc getLineNumber() const = 0;
    90 
    97  virtual XMLFileLoc getColumnNumber() const = 0;
    98 
    105  virtual XMLFilePos getByteOffset() const = 0;
    106 
    113  virtual XMLFilePos getUtf16Offset() const = 0;
    114 
    121  virtual DOMNode* getRelatedNode() const = 0;
    122 
    129  virtual const XMLCh* getURI() const = 0;
    131 };
    132 
    133 XERCES_CPP_NAMESPACE_END
    134 
    135 #endif
    virtual ~DOMLocator()
    Destructor.
    Definition: DOMLocator.hpp:72
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMLocator()
    Definition: DOMLocator.hpp:49
    DOMLocator is an interface that describes a location.
    Definition: DOMLocator.hpp:41
    XQilla-2.3.4/docs/dom3-api/inherit_graph_2.png0000644001725400016040000000370713273140101015751 00000000000000PNG  IHDR%IbKGD|IDATx[HQϸJzYIԤ$#4TH鲤&ԃ>jP,V iZfa& 3luphff/Nt.ߜ}g;3`0g``u FbV]jqBZfV}21L7od5 ))I,KFs1V##n0B#\z ?`nݺ'O ]ECCǶmH-%I]]}d;_n -FL&8`[[f3555v=>>~bbBo^}KNZZflmmm/?~p8nܸA[&%%eee*Z%ժ):~8m蠟C/!BXs'b匿Eر\ؘ߃j]]T*^Z% v-!hS盆]vEEEy|D@XXj8uL&#Iŋ (,,|):JRӘ˚nBhii{.]~Փ'Or9:ڔJe~~>pjjpFGGfffn߾BX\\T*cbbx-E"`aaˑX:2P~jaYYYtt4jgR٩!&&ʕ+o}600_~ȑa_ZZ}/nl$I^^l|U9ammmtt4EQ(޼ylZyW75Zrv}`` .&au:9F^x@ݴo߾A߽{@ԣnE"чPÇ6ltePY2tk1*}ijjtzBXXXKK p޽h{mٲ%..Ҹ:R+**FMII͛!X,$I8ptrf)us/_ϟ1LT5 R馾~ͨ,Js0tk1yVBԔK;|̙gώJ$m뜜VJ7hXsWɛ..&99yƍt666j:766_G'b^*F#s nڷod2zQۙ{y XQilla DOM3 API Documentation SourceForge.net Logo
     

    - g -

    XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__incl.md50000644001725400016040000000004013273140077017473 000000000000006e2fbeca8f5b828d4807d5ba128fa83fXQilla-2.3.4/docs/dom3-api/classXQillaExpression.html0000644001725400016040000002226113273140101017361 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaExpression Class Referenceabstract

    The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object. More...

    #include <XQillaExpression.hpp>

    Inheritance diagram for XQillaExpression:

    Public Member Functions

    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     
    - Public Member Functions inherited from xercesc::DOMXPathExpression
    virtual ~DOMXPathExpression ()
     Destructor. More...
     
    virtual DOMXPathResultevaluate (const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0
     Evaluates this XPath expression and returns a result. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::DOMXPathExpression
     DOMXPathExpression ()
     

    Detailed Description

    The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object.

    The evaluate method will always return an object of type XPath2Result

    Since
    DOM Level 3

    Member Function Documentation

    virtual void XQillaExpression::release ( )
    pure virtual

    Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.

    Implements xercesc::DOMXPathExpression.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp.html0000644001725400016040000001220313273140101017162 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMConfiguration.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    #include <xercesc/util/RefVectorOf.hpp>
    #include <xercesc/dom/DOMStringList.hpp>
    Include dependency graph for DOMConfiguration.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMConfiguration
     The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSOutput-members.html0000644001725400016040000001211513273140100021647 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSOutput Member List

    This is the complete list of members for xercesc::DOMLSOutput, including all inherited members.

    DOMLSOutput()xercesc::DOMLSOutputinlineprotected
    getByteStream() const =0xercesc::DOMLSOutputpure virtual
    getEncoding() const =0xercesc::DOMLSOutputpure virtual
    getSystemId() const =0xercesc::DOMLSOutputpure virtual
    release()=0xercesc::DOMLSOutputpure virtual
    setByteStream(XMLFormatTarget *stream)=0xercesc::DOMLSOutputpure virtual
    setEncoding(const XMLCh *const encodingStr)=0xercesc::DOMLSOutputpure virtual
    setSystemId(const XMLCh *const systemId)=0xercesc::DOMLSOutputpure virtual
    ~DOMLSOutput()xercesc::DOMLSOutputinlinevirtual
    XQilla-2.3.4/docs/dom3-api/ftv2lastnode.png0000644001725400016040000000012613273140077015324 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_39.png0000644001725400016040000000365113273140101016041 00000000000000PNG  IHDR%UbKGD^IDATxoHS_ZBSgɦ3*0^h,&ZI` &2aVP*Cm]0-ݝߋݚ6o>{sw{B@6DYRh Z;`yw.^H5Gv&I/hλwz[XNwY,.s,;/h Zbz|byF#0 u^ZZiӦ̪* x=l`TWWFC *f za0X(|2s8‰ >thrrR"dgg?x𠯯޽{)))rvAV+B6xRRR͛I"f8`fff2ͷe!z8ZTT!<}tFF9bJsNM:; 6דy+ [@`U?- lV{ƍ7oje˖CjdΫW.--tkWZ]zL&۵kD"AGLLL?~ǫTiۭhALLѣG'&&x< 7b8?-~qY! nggggTT$l6ĉCCC?B=ƍ R9996bVTTHRła֭[U*\s&o(gϞvIzLcǎČyݠF.HTQQrKJJv{Y`9߿d9r4"?}4ǹw9N ={Z®.0 033d2_~2677D"X܌,o߾Em\PB].׭[233}E#ԛ n0D"ќ k4}LsN{i{{{SShDux<զlH$ݻwgddhZҮn7a0%}ll P"hhhÇIIIȒ|Bmt?NLLlkkvZOOOQQQddd rH+**v{aaaeeerr,D⚚lFT*?TVVo ۷ E.+?? 0 ~p9>Z~=ɴk|WP)111)))/^ ~>O366͛-[\r!i'{0ݻW&233P(ѯ_b\ѣK.\.`0>D{w@oo'OL>|8''nc&JjFIKK0 ð۷:u_.,˾|W)Js`+ e=Vd2%%%jo ZZZ8VLV]|95L&u:ϟOMM]bP(,//d 76***!!NPp\R²2_|),,={嚞VT|>ڵ =05;;cǎHGmmP(|ݼ뉉̙3.ۿ)++K8|ڼq3a]__)66W"""""MxY O bs͚5JrG/ދr7owxA^z9_, &$$x[~;66b~Lm6.c^;^zwxd5]IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_13.png0000644001725400016040000000365213273140101016032 00000000000000PNG  IHDR%bKGD_IDATx}HS]ϚR-]2 _Bph%L"zR7jAnfY6 2_2foĨh-DM sW֖Νs-{j9s~{xJ`֯Nd HR@!1RtbbWeC2]'O-?tggg6%g``ԩSn y3Ecc͛݌>(J ҁtg*M!pD" qfH$iiis]jձcǜN'r~ (J__DVX,^tihh(˕d93!<<\"(JݴiScc#, /KDDĹs熆P777Ç^3QT?~8ZNLLd0eee߿z_?YD$|d>{ 7nӓ~A 򔔔^!}yY֐ZɤP(VkMMWaTnmQF]]]QQQBTGGDo޼aX/_Da¾~ cbbBBB|~MMhćBð:Z5k N/ˉ勷eMOEi l6Ǔ1))d2FY|9ʬB҂F_~=fspp'0 s\ebb—/ӧOt:w^T !T*|>ӫBө*++SSSTJL#W BQBXYYIR|[h4U2Cz3](ܽ{׏/<Ÿvڊ+Pbi47Z6>>r]pUj:|pLLg2ohv;2vwwh4aZgΜ///Ǎt: t:F#zѣvjjj2۷o_nl>Ik׮EJl6[uuuaa!nζX,nݪQB67fHE`FmӧOǟg#GfڊeeeBO222G|e2z>++kǎv;Fknnx"F)Kծ_fёիW߻w`0dee9H(={$''1Fq %%% o~]GGGff*vvvr܊ tW(###6lX,?Viii|Efm͛`;wl6C,GGGGFFnٲ0dBi͞=;))IVq?z,^@VkyyyjjjXXXJJJUUշojgϺٽV</448p!OFK.-YN"Ǫ8Z.1>>=g XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSSerializerFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSSerializerFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP
    24 
    43 
    44 XERCES_CPP_NAMESPACE_BEGIN
    45 
    46 
    47 class CDOM_EXPORT DOMLSSerializerFilter : public DOMNodeFilter {
    48 protected:
    49  // -----------------------------------------------------------------------
    50  // Hidden constructors
    51  // -----------------------------------------------------------------------
    56 
    57 private:
    58  // -----------------------------------------------------------------------
    59  // Unimplemented constructors and operators
    60  // -----------------------------------------------------------------------
    64  DOMLSSerializerFilter & operator = (const DOMLSSerializerFilter &);
    66 
    67 
    68 public:
    69  // -----------------------------------------------------------------------
    70  // All constructors are hidden, just the destructor is available
    71  // -----------------------------------------------------------------------
    78  virtual ~DOMLSSerializerFilter() {};
    80 
    81  // -----------------------------------------------------------------------
    82  // Virtual DOMLSSerializerFilter interface
    83  // -----------------------------------------------------------------------
    90  virtual FilterAction acceptNode(const DOMNode* node) const = 0;
    91 
    101  virtual ShowType getWhatToShow() const =0;
    103 };
    104 
    105 XERCES_CPP_NAMESPACE_END
    106 
    107 #endif
    virtual ~DOMLSSerializerFilter()
    Destructor.
    Definition: DOMLSSerializerFilter.hpp:78
    DOMLSSerializerFilter()
    Definition: DOMLSSerializerFilter.hpp:54
    virtual FilterAction acceptNode(const DOMNode *node) const =0
    Test whether a specified node is visible in the logical view of a DOMTreeWalker or DOMNodeIterator...
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    Definition: DOMLSSerializerFilter.hpp:47
    Filters are objects that know how to &quot;filter out&quot; nodes.
    Definition: DOMNodeFilter.hpp:49
    XQilla-2.3.4/docs/dom3-api/ftv2mlastnode.png0000644001725400016040000000036613273140077015507 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_21.md50000644001725400016040000000004013273140100015715 00000000000000d0aad12459938b78db43a8fd087f2e67XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__dep__incl.md50000644001725400016040000000004013273140077021100 0000000000000029a16892b76179ea8e10c42ab0133c89XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__dep__incl.md50000644001725400016040000000004013273140077020772 00000000000000d746b790b8cf1d0121901d98a60686dbXQilla-2.3.4/docs/dom3-api/functions_func.html0000644001725400016040000001545513273140100016112 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__incl.md50000644001725400016040000000004013273140077017352 000000000000000cf4235a12b32de152007b59b4cc5e13XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__incl.png0000644001725400016040000003170113273140100017741 00000000000000PNG  IHDRQbKGD IDATxg@Wۆ6Y4bKD_ 4 Rׂ%@Є cD H0ȧblV$"(cnݥ¹~>s3{Ι)$A2 A?W@_A C%Zࡢb߾}|>h!O@_FaasΝKsHw_A }?W@_ 4V^؈-d{kkkWWW[:cmm]SS  B,R"{ 222###--mϞ=^^^---謶6oo/_z{{ƺڵK ^z%L\TTM~֭7o+VAʁ"UU#FhhhL<:::iiiӧOFDDL6M__uuuW\A L:5//O޽{&M&Y,VMMMfrD"-_xٳ^^^III֭FKO?NLL9~8 33ϟ߻w^@@qrrME2 f066iHAAA\\ݻ^VVVHH?PPP}%H$L3g: E{yy=z۷ ǻq֭[utt ssssrr|||fϞniirʶm waaa7*5ydee'N3 @kk+Da t:]d f477M67nƍ xuuuJJJ#F(++:u*@YYܹs<<<BV\ᅦm۶ l@.W__O"ݣ!:QWWgoo/+**v*Z]]p{a3 Hؠ0}E0L>iccsɓ' OϞ=q'Ld2>|sNiI$Ҟ={6l믿5552\[[;j(ׯ544h4ګWƎ@'TTT>7: ]R3fp\!a3Hlx=.TUU*8q 466X:99֯_fwQXXX]]}M6ihh`JCqƩvM6?IRڿĉ666˗/{.*,,LHH@ Ϟ=;..͛7wpzSx<*ىza3H&K.ʼnye|| "-[ "66V8vRPPMLL~μyi46uvvʕ+_۷>|ܶm[ddF/]\\T*ˍzرcߏ^$HsƦ֞0a˗%nhhVRRڴi׮];o޼ݻwc3 O4ᨍΝ;͛' ~u /Ο?BĩquuY=wijj ;!< WGUUuǎ W@_A }?a>5dADF۷o555?=nPT^@7P(d"[K65e[[mYp'[@@EE#Gdfn%a\ܭoY;2쯆:Up\]] wrzzZCZWCW::g0ϝQUU1˦isp,@_ ]::V>wGEOSxyY,*~̞+ "(o''{ .;^ld&CYY~))j(ysVR\.kV9~~)rr%K,uY8x9T;)SQM iSRg;K$諡Eqq'LLi=W >_|ii-,FrjQTTzu)'NlHSp|7gjrrƌij_Ӧ 'Gyu[[FίnSSevHPPP3}'3@AaXR +,WWsǻF#Ou۶  ֭?׮7on4h9`lC4@_ fn|W \GJѶ1cCNG>}h-_xr, EL<43Ӟ6͐h98Nrs{z<,̉LG <_S[[h9x}5"_$'iRk*K++gfn?\yy5k,vSNPRRwDkAEv-[<<愄8&?61Njjw_-.<޲%*0p e ^^V{1Dkx~5H8s&>>~KK?OzuTmkv] w>iӗ2j*J>vp}%>}oϞ;~2|ZZ*))h- lo_;px,Z4aj˽{޼i"Z'ϯd۷tV.mm 9oٺWʱcr0 0رu'Z1|8}~Uo |6tÌ)ݻ~%U:4;ΥĬؿzU,}%;ff>jѢ D!cN}%0՟})lV֓x M7[C߶n]ܝ;>_mۙ˗<7'Z(~m3Zz<^s|k[%ާ\a:qlI sN^_xDP4YVO$>￿_KKh-=+Ϻkמ "|<܉nTUn-g&<*} \\b<$Jt"'G{ۈWDRRRwr"::xNNQϞ"LjY? )%%h!=}E$׺=;@~䜝- +_}E,,OK&l8kψ{"OQ(d__Qoa1r%f+9rė_;u4}E  ُQ>_`eeh(|.Y3F@_?_BI$ڵ6}i`N.355ŌG~~R+|((<<6n9hQFYrR+`'ZΐN7f0<>'Ezپ};5V2AU]]}3f* DDDTWwmIF)460UGt8}tGGGB@ BҺ/@g6{i50 "̝kv^Y{;h!*gtt>ƻ( 2 B$}aʠ𦲲]$XVVo%a=z[}}=dkkĉ_<E"Zx1D*++C 8::b IyIVU.mkB_MVV]w^mmmuuubbbSSӔ)SY͟BCC=zo߾WQQQTl]Pzzzjj*ʱٳ[\CC Zյk,XЯi555/\`hhxatVpp-ZdbbjժŠD zqNN}}}poP9 [F {?>0+X*''GOOfΞ=kbb rZZZ ߟ#ׯhjj /^醆III'zCC< 311>|̙3 _}]$)!!aܸq?cRRҘ1cTTT/V$ҥK䀀 ",ttt<pM}v333///D{q]5SjommRa;wD^vHMM-$$D?;;Ԕ`uttH v(*ʵs|{ { 554֯__WWUPPCCC+++LwRŋoܸdnn^\\d2---wU99'NPԖ0`0_t钮..yzxAAAh׬Yprrjjj444`ӢKKK* ^dܽ{WKK Kmm'O ب ̉N'&&"44)O>mr'z[ZZDe˖555eddk-`|## 1Aѓy65qz,9Wl6[__vjkkI&kASSLt/X,F gwUޞb!bbbrISN:;;)ʳg`ffǏ#)2´GºC$99y؜‰#G(++WVV r%6SjD$tŋ=( //A|TpjjĠx6zr6Xr鳯 P(o޼Ft:vkd2BΝ;gϾ|rW՛/_N?}T8ɓ'*ϑN#ZE|3gL:pBaݼ<###@`ggHϷB^.Qfvŕ#$B etAl"Wߪ*V%>_ٹs0!܊l6;?zh4nEEyU-#X,-ŒXի-BG^v{9@KKBW^:lZqZg]\\W fjnnsNnnnW.drbbݻwcccшD ^AQQ#JJJjWO0|^ qk2Smll8bsrrиzYr˖-a``d23gát:HZSS9rʪr务!kΛ7d =WشhPx=//oŊ:޿ojjjeeuʕLss3gco޼yܸq" v)QQQnU3WxrlGA_{hakkBcc n1^W.co:zĉQ tttS&www555uuu//Vhooߵkʚ5kl6 Hjjرc fff-zgg%Kx<^XX3У, ,kݺu:::۷oG"ŋشȇg)#Gtqq~iiiٹs<&x4DJMMurr§+ 1o1t'<|O*!C# WPVVM/^zkd7 FtttoxQ^^ohO?+έaC_A xdV yKz4>}U ˧OK ɈH@ܿX Ç]tF,W۷o9t TW Z2cƌcYTT6}рIWDj^yZdK Ǎ!ZdwaϞ%d2iǎsf-GzlDUt a/&I| wDˑ%^x]^^x1D;w.i~{A @<<-Gfx񩶶D +G"D:_/mxBG/O}b}E<7I&:m_yӴf%BJ*+/O پ7"&RRϞm"Y֯I&K;-GJf߼uD +)bݺɤ={۹|h9HLLʢEW҅ 2Ao%Ztf=h4Jϥ JXf0?@h9RDl-99R}JB&lIp?`45'&ٴZAaZzJJY|2Dڲ%Y @BB!*LrwE^}%N"HI8[v-VV)JYl"N۸1;Yk,/C7(煥6\h˖dO>IM-ػw).5R/"B^ ,Jsz Ef.3B8s皥x_7\aΝt!S+bƌII7nyPVKKGPP5S&ZK߀%OuKNr+[di Ϝ.((߰!c0[ѣODk3LR\\zuI d*Y-X#J&%h9sЕÇWˢ2anݺAfG*bb#@ŋQc2}}p##FRvVWgffnkcۉuDD]SAVzoUxccr>s DF2ÉI@_ Ǝedd}f-#Ϻo3ǔh- <[PP)Lټ9Ӟ**;WuuL_MBkg'$_E4g~홇GξyS<  <45q֮f͟o~LdRdݔ^zHȥ\@'M2(*+&jC_-N& __K1iR`[ۿO>!jIDATP}e~TKuOb#<ٳիccXyIBC/ 5fEE?EEQ--ZW3g򃃳%W,VS .!!i}5>@%>)H"rHYT*B!9:~y5˕u!Ag'/; 2D w/>9%QA&o߾P%JWC.ȑ $Uu{{{ ɓ'bN:P(Ϟ=CFFFh?~ Hgg4 "khh۷Acs '9\YY)D)q5H!b FFFHO@_Lo| Hpp0By0mTTTЍىe2yk!rEEٳg_|˗/G>}*@UUb:|hilZDΜ93uTtZ[[;77WDXTT… u򌌌]LL "W|> (PH/]F,lЭ#_TTD%gGRUUiccsVhhh?6i4@WW<}iii,֖bI~EѣGc/=EPWzl68m.]tqq ^b3̚5Ν;]]$ɉwލE#Kl&zcxE5Uv=qz|́X,vNNspp@/+[ZZnٲ{haad2L̙3===ptzzzz}}}ll,Np8Ԡy9`0jkk\bhh.zڵ+//g2HO6-^g[b~cc#:VVVW\)))4779sf{{;6͛Ǎgmm-PagOq]5S|5"')LtX[[H u@:zĉ݅ tttS&www555uuu//Vwڥf6k!:vaÆeggKٹd*fdd8c ZnN7z6-5#G`Gܹs lkkI8vH\W`•&.fJ\>Э?j( [r8nvaB>kDω }_A }(++{{{&W Cݛ`_@ + @/,}222VZNrJƍU /505U%ZԁGZW>=:z哈"+ @ + @ + @ + @ + @ + @ + @ + @ FHwTU>F= f0-- %5BcϞ{]UV#+q ;ll>$qFYp 1wY\`ժGVtFYb FB9x%WE4eժϩTHHLn,r+WN&DL}ja> ji)O: E2gtv;(NNH$ ! &L3FSM!P}VM 1nъ+H!*z%r+H_E+V+=}-_L?j:Zx?"@&f9Zx?޾} j[cc xMMM쯺 (pHD @ ABee{eO XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.md50000644001725400016040000000004013273140077022323 00000000000000345a0e88c6dc6d64ef68860b5a0825e1XQilla-2.3.4/docs/dom3-api/DOMLSException_8cpp.html0000644001725400016040000000712513273140101016552 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSException.cpp File Reference
    #include "DOMLSException.hpp"
    #include <xercesc/util/XMLDOMMsg.hpp>
    Include dependency graph for DOMLSException.cpp:

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp_source.html0000644001725400016040000015342413273140077020227 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    PlatformUtils.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: PlatformUtils.hpp 1825016 2018-02-21 22:04:13Z rleigh $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP)
    23 #define XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/util/XMLException.hpp>
    27 #include <xercesc/util/PanicHandler.hpp>
    28 
    29 #include <xercesc/util/XMLFileMgr.hpp>
    30 #include <xercesc/util/XMLMutexMgr.hpp>
    31 
    32 XERCES_CPP_NAMESPACE_BEGIN
    33 
    34 class XMLMsgLoader;
    35 class XMLNetAccessor;
    36 class XMLTransService;
    37 class MemoryManager;
    38 class XMLMutex;
    39 
    40 //
    41 // For internal use only
    42 //
    43 // This class provides a simple abstract API via which lazily evaluated
    44 // data can be cleaned up.
    45 //
    46 class XMLUTIL_EXPORT XMLDeleter
    47 {
    48 public :
    49  virtual ~XMLDeleter();
    50 
    51 protected :
    52  XMLDeleter();
    53 
    54 private :
    55  XMLDeleter(const XMLDeleter&);
    56  XMLDeleter& operator=(const XMLDeleter&);
    57 };
    58 
    59 
    68 class XMLUTIL_EXPORT XMLPlatformUtils
    69 {
    70 public :
    71 
    74 
    87  static XMLNetAccessor* fgNetAccessor;
    88 
    99  static XMLTransService* fgTransService;
    100 #ifdef OS390
    101  static XMLTransService* fgTransService2;
    102 #endif
    103 
    108  static PanicHandler* fgUserPanicHandler;
    109 
    114  static PanicHandler* fgDefaultPanicHandler;
    115 
    122 
    123  static XMLFileMgr* fgFileMgr;
    124  static XMLMutexMgr* fgMutexMgr;
    125 
    132  static XMLMutex* fgAtomicMutex;
    133 
    134  static bool fgXMLChBigEndian;
    135  static bool fgSSE2ok;
    137 
    138 
    141 
    173  static void Initialize(const char* const locale = XMLUni::fgXercescDefaultLocale
    174  , const char* const nlsHome = 0
    175  , PanicHandler* const panicHandler = 0
    176  , MemoryManager* const memoryManager = 0);
    177 
    227  static void Initialize(XMLSize_t initialDOMHeapAllocSize
    228  , XMLSize_t maxDOMHeapAllocSize
    229  , XMLSize_t maxDOMSubAllocationSize
    230  , const char* const locale = XMLUni::fgXercescDefaultLocale
    231  , const char* const nlsHome = 0
    232  , PanicHandler* const panicHandler = 0
    233  , MemoryManager* const memoryManager = 0);
    234 
    241  static void Terminate();
    242 
    259  static void panic
    260  (
    261  const PanicHandler::PanicReasons reason
    262  );
    263 
    265 
    268 
    273  static XMLFileMgr* makeFileMgr(MemoryManager* const manager);
    274 
    288  static XMLFilePos curFilePos(FileHandle theFile
    289  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    290 
    301  static void closeFile(FileHandle theFile
    302  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    303 
    314  static XMLFilePos fileSize(FileHandle theFile
    315  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    316 
    327  static FileHandle openFile(const char* const fileName
    328  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    329 
    340  static FileHandle openFile(const XMLCh* const fileName
    341  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    342 
    353  static FileHandle openFileToWrite(const char* const fileName
    354  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    355 
    366  static FileHandle openFileToWrite(const XMLCh* const fileName
    367  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    368 
    379  static FileHandle openStdInHandle(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    380 
    397  static XMLSize_t readFileBuffer
    398  (
    399  FileHandle theFile
    400  , const XMLSize_t toRead
    401  , XMLByte* const toFill
    402  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    403  );
    404 
    419  static void writeBufferToFile
    420  (
    421  FileHandle const theFile
    422  , XMLSize_t toWrite
    423  , const XMLByte* const toFlush
    424  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    425  );
    426 
    436  static void resetFile(FileHandle theFile
    437  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    438 
    440 
    441 
    465  static XMLCh* getFullPath
    466  (
    467  const XMLCh* const srcPath
    468  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    469  );
    470 
    484  static XMLCh* getCurrentDirectory
    485  (
    486  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    487  );
    488 
    498  static inline bool isAnySlash(XMLCh c);
    499 
    509  static void removeDotSlash(XMLCh* const srcPath
    510  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    511 
    522  static void removeDotDotSlash(XMLCh* const srcPath
    523  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    524 
    538  static bool isRelative(const XMLCh* const toCheck
    539  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    540  );
    541 
    561  static XMLCh* weavePaths
    562  (
    563  const XMLCh* const basePath
    564  , const XMLCh* const relativePath
    565  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    566  );
    568 
    571 
    581  static unsigned long getCurrentMillis();
    583 
    586 
    594  static XMLMutexMgr* makeMutexMgr(MemoryManager* const manager);
    595 
    604  static void closeMutex(void* const mtxHandle, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    605 
    613  static void lockMutex(void* const mtxHandle);
    614 
    624  static void* makeMutex(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    625 
    638  static void unlockMutex(void* const mtxHandle);
    639 
    641 
    642 
    645 
    653  static XMLMsgLoader* loadMsgSet(const XMLCh* const msgDomain);
    654 
    656 
    657 
    671  static void recognizeNEL(bool state
    672  , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
    673 
    677  static bool isNELRecognized();
    679 
    691  static void strictIANAEncoding(const bool state);
    692 
    697  static bool isStrictIANAEncoding();
    699 
    707  static inline XMLSize_t alignPointerForNewBlockAllocation(XMLSize_t ptrSize);
    708 
    709 private :
    710  // -----------------------------------------------------------------------
    711  // Unimplemented constructors and operators
    712  // -----------------------------------------------------------------------
    714 
    717 
    723  static XMLMsgLoader* loadAMsgSet(const XMLCh* const msgDomain);
    724 
    734  static XMLNetAccessor* makeNetAccessor();
    735 
    746  static XMLTransService* makeTransService();
    747 
    755  static int searchSlashDotDotSlash(XMLCh* const srcPath);
    756 
    758 
    761 
    768  static bool fgMemMgrAdopted;
    769 
    771 };
    772 
    773 
    774 MakeXMLException(XMLPlatformUtilsException, XMLUTIL_EXPORT)
    775 
    776 
    777 // ---------------------------------------------------------------------------
    778 // XMLPlatformUtils: alignPointerForNewBlockAllocation
    779 // ---------------------------------------------------------------------------
    780 // Calculate alignment required by platform for a new
    781 // block allocation. We use this in our custom allocators
    782 // to ensure that returned blocks are properly aligned.
    783 // Note that, although this will take a pointer and return the position
    784 // at which it should be placed for correct alignment, in our code
    785 // we normally use XMLSize_t parameters to discover what the alignment
    786 // of header blocks should be. Thus, if this is to be
    787 // used for the former purpose, to make compilers happy
    788 // some casting will be necessary - neilg.
    789 //
    790 // Note: XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be specified on a
    791 // per-architecture basis to dictate the alignment requirements
    792 // of the architecture. In the absense of this specification,
    793 // this routine guesses at the correct alignment value.
    794 //
    795 // A XML_PLATFORM_NEW_BLOCK_ALIGNMENT value of zero is illegal.
    796 // If a platform requires absolutely no alignment, a value
    797 // of 1 should be specified ("align pointers on 1 byte boundaries").
    798 //
    799 inline XMLSize_t
    800 XMLPlatformUtils::alignPointerForNewBlockAllocation(XMLSize_t ptrSize)
    801 {
    802  // Macro XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be defined
    803  // as needed to dictate alignment requirements on a
    804  // per-architecture basis. In the absense of that we
    805  // take an educated guess.
    806 #ifdef XML_PLATFORM_NEW_BLOCK_ALIGNMENT
    807  const XMLSize_t alignment = XML_PLATFORM_NEW_BLOCK_ALIGNMENT;
    808 #else
    809  const XMLSize_t alignment = (sizeof(void*) >= sizeof(double)) ? sizeof(void*) : sizeof(double);
    810 #endif
    811 
    812  // Calculate current alignment of pointer
    813  XMLSize_t current = ptrSize % alignment;
    814 
    815  // Adjust pointer alignment as needed
    816  return (current == 0)
    817  ? ptrSize
    818  : (ptrSize + alignment - current);
    819 }
    820 
    821 
    822 
    823 // ---------------------------------------------------------------------------
    824 // XMLDeleter: Public Destructor
    825 // ---------------------------------------------------------------------------
    826 inline XMLDeleter::~XMLDeleter()
    827 {
    828 }
    829 
    830 // ---------------------------------------------------------------------------
    831 // XMLDeleter: Hidden constructors and operators
    832 // ---------------------------------------------------------------------------
    833 inline XMLDeleter::XMLDeleter()
    834 {
    835 }
    836 
    837 XERCES_CPP_NAMESPACE_END
    838 
    839 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    static PanicHandler * fgDefaultPanicHandler
    The Panic Handler.
    Definition: PlatformUtils.hpp:114
    static XMLTransService * fgTransService
    The transcoding service.
    Definition: PlatformUtils.hpp:99
    static XMLFileMgr * fgFileMgr
    Definition: PlatformUtils.hpp:123
    static XMLNetAccessor * fgNetAccessor
    The network accessor.
    Definition: PlatformUtils.hpp:87
    static XMLMutex * fgAtomicMutex
    Global mutex for fast or infrequent operations.
    Definition: PlatformUtils.hpp:132
    static PanicHandler * fgUserPanicHandler
    The Panic Handler.
    Definition: PlatformUtils.hpp:108
    Utilities that must be implemented in a platform-specific way.
    Definition: PlatformUtils.hpp:68
    static bool fgSSE2ok
    Definition: PlatformUtils.hpp:135
    static XMLMutexMgr * fgMutexMgr
    Definition: PlatformUtils.hpp:124
    Definition: PlatformUtils.hpp:46
    static bool fgXMLChBigEndian
    Definition: PlatformUtils.hpp:134
    static MemoryManager * fgMemoryManager
    The configurable memory manager.
    Definition: PlatformUtils.hpp:121
    XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp__dep__incl.md50000644001725400016040000000004013273140077017774 00000000000000169dc1234ececcae2b50f5913f8c95e0XQilla-2.3.4/docs/dom3-api/StDOMNode_8hpp__incl.map0000644001725400016040000000064513273140101016533 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_4.md50000644001725400016040000000004013273140100015636 000000000000008816ad81e611cd1e10c6111dc4c66204XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationList.html0000644001725400016040000003121013273140100022276 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationList Class Referenceabstract

    The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...

    #include <DOMImplementationList.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMImplementationList ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMImplementationitem (XMLSize_t index) const =0
     Returns the index item in the collection. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of DOMImplementation in the list. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMImplementationList ()
     

    Detailed Description

    The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented.

    The items in the DOMImplementationList are accessible via an integral index, starting from 0.

    Constructor & Destructor Documentation

    xercesc::DOMImplementationList::DOMImplementationList ( )
    inlineprotected
    virtual xercesc::DOMImplementationList::~DOMImplementationList ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual XMLSize_t xercesc::DOMImplementationList::getLength ( ) const
    pure virtual

    Returns the number of DOMImplementation in the list.

    The range of valid child node indices is 0 to length-1 inclusive.

    Since
    DOM Level 3
    virtual DOMImplementation* xercesc::DOMImplementationList::item ( XMLSize_t  index) const
    pure virtual

    Returns the index item in the collection.

    If index is greater than or equal to the number of DOMImplementation in the list, this returns null.

    Parameters
    indexIndex into the collection.
    Returns
    The DOMImplementation at the indexth position in the DOMImplementationList, or null if that is not a valid index.
    Since
    DOM Level 3
    virtual void xercesc::DOMImplementationList::release ( )
    pure virtual

    Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_35.map0000644001725400016040000000032713273140101016023 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter-members.html0000644001725400016040000002433613273140100023636 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSSerializerFilter Member List
    XQilla-2.3.4/docs/dom3-api/inherit_graph_32.png0000644001725400016040000000670513273140101016035 00000000000000PNG  IHDR%bKGD zIDATxkPW$p\B!WT*Li+Kd--N륀tQFeG+7Vq *H-7BEA@Hr}Z#79gsv7`! cTt ``0v. c|``0򾺺zFR`4-''e[nU3ݻBsUWW755=ǔ0*---3?TTTt}Qc.[UU\R`t`bb2)(fUVQu. c|``0v. c|``0K\&$\\\ↆW^yU*NEgxxIwwwkk+N'?;R[[`0b1e666nݚ~ڍ+V 'M\Öd"hܹhkkf&!'AV@.o޼wAz#, b TcpҥgFEEaV*zxx“'Ovtt=zt/VT(NI$KKK@WWpǎl6622rwE;wZ[[-Z/ɞEO9@yy9Ek׆\repp'))@ggg||믿h$ < ukh߾S%%]9^@z >qJ544IUM:2;4Mpppzz:z+O!d2Q{キm6bmiiixx8ĄWbb"/S*:ՙ$|su hG677766:;;޽{{tA{wa=N2g4ˀ*mDc9׬SsZ.+H vwwdBR)_}UHT*9sF ;w.==] 888YhGA,X`nn>wB8993\2 >|-zq B[\\F|EDDtzvvX,w``c|}}-,,lvNNb|WWW[[l?\hQdd$ʇ|qqq>ML$ CY,KMMU(DQQQ)))hq[[ǏO_~E;[J}XUsOqvKp9ʹ~U[AAAPPaϯfs߽{_E|۷|-[Ϟ=..\(Ed2ss tL3|dd (ue[[[Tw.^L)f Ȉ)}nٲ@I?ނJRg:t088=抈JG vvvZXXGez)gnn۫~b4!]dIOOO{{Wff&@EE3)5\㓧O__D<^ %2,9ԥ }zkjj7\:5g$s |ooLÃ!ͫAkoܸA,kGI$33={ k41Z/\O\MMMD n !@occcBBBh4j幹6m"B.\P__rowٸqc^^^pppFFƺuE+}(+WVUUEFFNLLeSSӒ b-[F%ciivڢ"!4Dn޼9|@OO#i&___???wwwhX S"^x>$fR# vvVwNSnf@;w\x1[tt~{4N# Pl:c.ZsNDfPƍ/_{ڵ &%%8##[, ?\_B`2G***b2 B_\S 詈vttt޼y詈ΚOOπtioFHHgWWF jBT*hmxxɓիWQ}ƴc, E7?sEd_TXe,Y͛b3==|Z'&&KKK}V”*++'&&OaCKt_٢aU ۶m8::NLLs }xjo ~3J҄;;;(ɍD".kccM~ruuue0 [$2,55s׮]>$b nhhKKK;::ZZZLMM9 koo/ ''')KфR233-,,\\\҈a<%PVϙ3֭[UvD"Yf p8)))IDkkkEVJŇ'ZW.R/sV$dn߾](ZlQ[3pIBgM+W=03Iee%"eǎVW_v6n:9AeI(ʫW?n_>t sa0넄>ImmkUe>~zr ';쓒$%-D03Kk  ع0 ع0b__g )uRLMIIya0@ϟ??ϟC3 ϧ3 ⃯sa0;1>sa0;1> s0] ZIENDB`XQilla-2.3.4/docs/dom3-api/classXQillaNSResolver__inherit__graph.png0000644001725400016040000001215713273140101022310 00000000000000PNG  IHDRp)bKGD$IDATx{T'$$P(hъ)`/@Z-5 zF؋T)"A*BQ h!I0$˼ߚjm:vgy滳_ff7hBPc `zCiA1Ci?XR0=x qJ#?h3f899C>|X^^' |rch`ӧWXA$ރb( 6(`b( 6(CH 6,((ܠ=22rҤI puuݻwF!by<|}}i4Z}}}UU LH$j{u˖-#hX. Çx;wT*077wss~+*H82XXXXh".+JQL&3fG^^۷Ϝ93nܸٳgk4`0lf ۷oGZ[[Ǐ|}}gΜٝ;wڒ5z8uQRWWGܲ?ڵkO>-..4i҆ QFt9$?HOO 'Š䛭};vS@숐Æ KJJB>>>۶m#jSRR|}}&L [nԩ]>xy"tw]vX,6p8!ٹlMMMUA*H iii<O.C;;;Agg'''K.رiРAdf!] t%Y,VBBX,NNNf0r|߾}]iOР8YJKKW'*f={3::@,Dׯ_okkd|i 2d~GOΠ ,dgΜ ۡNkkk͏?_4Y,}߿oѣGׯ !j_q!VsNuu B!!য়~rvvF?6hR/uJ`PTr|P($ njC,C'OF!GB7o$ $RNkkkj݅w0>h "O>ٺu+055[/N[hN_z^Į֭[r\T-**jZ/СClhhЋh4w0aN?y͛7{Y]{gg'N?Qˬ#G-,,\!\r%.Rzg{n:NӘG Bˇy)! Bxe??? ww_K|||yآ"/^811Q/?heeU\\lffv%Ξ5kɓCBB3hmm^@zxx̝;ESN;iN}vGGGC%7o1c+ÇJEUWWeDEEr B|Nx)`І;;y.KT*uJ\\\rrrqUU2F)aGGGJJ Noii.;C;y.bccXF3dȐ sH|葵c _~!C]`wU(,+;;[) JBx] @h4m˗;ZH4`bWÎfК1bYvNNKZZڻKճ^ʛTΙ3gϞ=ܹs|ƍ~~~߿q7l@sN>/D"[hhhwQJ,33رcfffJk">|5SmmmVV3qkׯ_?vXOOO"g]]N[`Vvvv|rAJ4-//=** PYYƧ0KB;Ht^޹stƌ}YJx4ؠJ 4ؠJ ZWWUTTDz{{߽{T5kֶqFTw988 Iv:q῕LߛAVVVcǎڮ\U8qN>庻'$$_~*,,uZp~+t?a/_8߸qcii)Qpllllll\u?wK4(;yd^^^tt4 ???((effrʂ=44gҥiiiDe˜8 )>{L&C|>?==t:`XXXSFdɒ%K$$$h4@YYٚ5kΝpR.W-ZlY||<|GEjz…]&G^YYb H}ҠQFX >|8*dȑzy<޽{zȦP(vRSSÓZ[[QIttkΟ?YYYDUTJRT$''{{{LXxǏT*Px~)00oQTC577'$$|N"{yy er<5FUBT=$! _2e q}}s FccJes̒%KJJJ۷i&TRfϞ=vرc$$$xyy~o9rzҥK <~QO.Ju:СCQ3GGf"b6,)),}Ҡ---qqq֭8qs9qɓєgϞ3gC( wyGV5h[l裏rssQ 0&&(h4kNNar㓛 !DUll,/ږtttt:Ph.^m۶gZ[[z A3{yyō9rԨQ\.&G6ox\\\}˭>j%@ hlltppDCVk4ى6m BCxxӧѩܹswU^^.kjjS BT*ѩ{RRRSSݻwΞ=K"##KJJj5`X b/3g9\.OII?>Qhǖ=^pիF #22f;׬YsҥիW[{!exxxLLLPPWTTa N:83gNRRRHHHLL̤IBCC?x`6M XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDeleteArray< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     AutoDeleteArray (TYPE *p)
     
     ~AutoDeleteArray ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoDeleteArray< TYPE >::AutoDeleteArray ( TYPE *  p)
    inline
    template<class TYPE>
    AutoDeleteArray< TYPE >::~AutoDeleteArray ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoDeleteArray< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoDeleteArray< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoDeleteArray< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoDeleteArray< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoDeleteArray< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoDeleteArray< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoDeleteArray< TYPE >::swap ( TYPE *  p)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp.html0000644001725400016040000001100713273140101016147 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNotation.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMNotation.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNotation
     This interface represents a notation declared in the DTD. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__incl.map0000644001725400016040000000007513273140101017436 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__dep__incl.map0000644001725400016040000000100713273140100021004 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp__dep__incl.md50000644001725400016040000000004013273140077021100 000000000000008df611921fb99f4f974a6846062d1f8cXQilla-2.3.4/docs/dom3-api/inherit_graph_12.map0000644001725400016040000000035713273140101016021 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__dep__incl.md50000644001725400016040000000004013273140077021245 000000000000003675ac710f5c5962685150afc80b2830XQilla-2.3.4/docs/dom3-api/functions_0x76.html0000644001725400016040000001050613273140100015653 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - v -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_35.png0000644001725400016040000000460213273140101016032 00000000000000PNG  IHDR%pbbKGD 7IDATxyLǧ-Ȣ,R@$@ D0"(1J\[[H qA0TUT i$P65@+FdXm+e~8|{3w|;aBAX!JB1P$`niiiii%]A]b/_&HFݚ:844cԭIEDD477.`0}#NB1P$* @077ݽo>OOOX .--vvvwVT rxx&lll  qscY@  |guuu9555ufOOxh4111t:4i4Ztt4 @*H[ng"gkkkSRRi&@~̞3DX ^82, R*յXTs///6`0\\\% ȦAГ'O( wA*`}looƍ/_fLL̇   a0Gvttf]]Nbmqqq]]hfdd477Okkkzzv€>srWW׶?DR... b: :2&===)JII b @8ڶm. ð[[8[X?J$YYY]rE,k4eZm,*j``488PR3{3g0\WW9Ab߼yrZBwCð\.{]o^UUllLn 355KVð}TZZb Ӯvx<pO< A``@"_~mmmAAA *9ǎۺuk\\S&*++hfffOMMx :^QQ#@ dxι^2L$ZՕF$tGܠyfW9Ç"ᥥÇoܸ)//O&i߃Bh޳щa篿 xpKhT I$ҩSTT*6l؀ ͛kRiQQQppMPPЅ VVVX 6 AuCbb"CHt!'''wwB\RLmDD(ƆA, _:PRkkkxxx}}o :Ġ0G*h4τLT*cM`0& ]?ŚW됑+9P$* XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.png0000644001725400016040000001534313273140101023112 00000000000000PNG  IHDRDbKGDIDATx{TS'.TPpSDD\HTTPGUc U쪠rVb9R TK@0AH B1R>r͞<3!!^yvuum<88xӦMMMM6cmaaBgΜ SSS\xq̘1aaacƌ=zt@@=(z!rrrNkccs)X,V.Y} Ɔ Ν;vڥI뇄$%%Czp8޲ nݺ>((HfƖl6[$I$̙3͛j>P$; 655޼yWFDD,_UUU3fرcGmm-Bh….] wpp5kV%tttbcc\n||<Tvq2BV6撒CCC{EnPׯ_755ž555,7J 6lXBBEQx??yݿj611IOOoll,+//O%&&fo~~T*:vLauâihh@uuu6tuu VQQAwT^^qVB Gqww߶m]illL|>ƍ^KK !dnn^__k***ۧʫK*xuoxEQ111-‡~~~{?9"BaDD']ttt\v-//Ki ׯ_5<߷dzd/sD"qwwoy<7?k֬͛7N¦NZ]]]]]=gΜ׫p8---qqq]]]K,lkkg?>qDWW{;88̙3G$Q2Sg}6i$777M9 ?aիWϛ7v튊211r666Xq콾@mX%GGGGeddx<׬Ycdd4jԨ P(0HfGqEQǏֶR.ۅlY=iee'S%m6yd==={vvvҾX@hz9IRk?j(33[vuuϞ=UƮP"F+V@;o, #99Lx#a_P@P@P@P@P@P@VCz֭[{|&s'Bo-˯ ,(( bILlz}e#(C> +!Y#JFF v8CPXxB[-KBiiѐ'~ŋ#KZ(|1! @a}"-TC)zz$vgBzXJhh[;UJRr|`4SoJ% 7K$|HS2(! -@a].ǧ(֭G\n4BZ-DEgA 6}>ήذDcc`2U ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( & LMhjN(h,--`?zrb8%%e4EEE?AdxJaY@aY@aY@aY c`mm"k  CBB /i &mZ.\`0accի윑!5m6௩0Paa!}IBBB{{3^>媣w-))(-- =<<$|~AA}ٳӧ%''Z_A=x\ᵴ;ǒj(ZP*Ν;w׮]fb@ X[[?~zzzܹ>pBM6\R;6Kmm+@ۗC~^YaYYY<ӧOO0A PfMLLFfq.\|]|>nMы)S7ɓE(u͈lYe>}.X>nbvttҒ8e666999\^^w^U^=3U@ ;\zm6;HW,777˶~e˖ѻ4>sGGGŮqSGG'++K*vuu!B!as>J}_&J׮]e˖3g\p!''/[,44ѣGUUUѲ^_۷o߾yGb0OKKkooS~Ijiiijj?\t҇~Ԯ]>}:o޼_~6##c֬YS˃gΜibb";}]r߿j?þ}Teŋ]]]aaa^ T !7X\}D5ҫ񇾌 333moo_fѨQBB$lss#FE/㵵Ը,Icee!@m۶ɓ'988ݻo|Ptt\=EQ3gΦ[F sEQ9rѣG}}}MLL&EC*{s<(v*׾zm(<9%%_T^@aY@aY@aY@aY@aY@aY5ۊ+>DԄihhP͜9sժUjk LfϞ-Wɀ+}5QQ}|;! /,(pn v,C PX_y!--W8[R)Q0^(O47?/-{VJM-숆 >VJMQTeeCCopC*S"JC&S#+|BziMMeX eNffl E`4NjjIOZZPPX/HRSK^Bffnll++{< 9@a^&KbB yGO?nzdt 5d{+^ N46d<X%7E"߶'Q?Cv  rqq3/^7&?P9L,#._Z޽   ?͍.:::nܸАD%%%\.w̘1...VľNb0ۋ,,,BϞ=}ǎCБ#GRSSo. >\SS痗f駙655ݿnoooOuttbcc?ox0%]dta!CCÑ#G"M#55u͚5'O>|?y͚5-B999 MvM|0}|8vX<ÔC*@GBooŋE"BH,.]tҥb?pss+++[reEEEBBʕ+8@O'^u͟?տBH"(u](`07a^^^@@oU~O?ʕ+qAAe ꫯpY \dOLLLww7B-77700ӿEc^ &… ٳgB}Bhٲe {|~tt_p8\.رc}YYYBBOIIٱcGeeeAA"##YE/HuYN$q8l6[ecc#BH xl/>qOW655ɮ͖fرcǎUe``pV^=k,U}ɓ'8#G999~׭['D=zV9B_WTTT{{T*!,,,ZZZpYOO!d24 TXlO>prr:zΝ;q#"##y D5iܸq7n|'J^x!JbŋwܙʽP{Cww'ON>ފD3gȾSL쬮uֶmd[3gNrrݻ,//O,ihhp\hll Jٔ4WIe˖}7<ꫯ233eϟO?=|ÇQQQͪ FHHHAAP(a2:::܅Bs6ZYY7p+VS|>/,..~իW7nhll,9/4i4кu*++Ν8q"==O?E1L77~>|0>>]}zz-d2nz)S[ȑ#ׯg0s nmmD"QHHH$zqvhhcǞ>}jnnʽСCx%[Fm޼LLLNG,zzzqqq fffҒ[VVҥK2`hh5f̘}_|qȑ 6hii}G~~~%튉RjbL|Ͽ~Ug䦤\ywYpM ( ( ( ( ( ( ( K?Ue3ߗo-W0#   XqoOgIENDB`XQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__dep__incl.md50000644001725400016040000000004013273140077020657 000000000000005a6d3b32ce601a86f1da0724cc45ae45XQilla-2.3.4/docs/dom3-api/functions_0x63.html0000644001725400016040000002646413273140100015661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - c -

    XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__incl.map0000644001725400016040000000027713273140100020432 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp__dep__incl.map0000644001725400016040000000023313273140100017654 00000000000000 XQilla-2.3.4/docs/dom3-api/xqilla-dom3_8hpp__incl.map0000644001725400016040000000334113273140101017125 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_9.md50000644001725400016040000000004013273140100015643 0000000000000055ecb098bf4a70a094373c16bf2b82caXQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp.html0000644001725400016040000001040413273140101021072 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationRegistry.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMImplementationRegistry.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMImplementationRegistry
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_13.md50000644001725400016040000000004013273140100015716 000000000000003d8a4562f29f6687f92deafd0b68e6f0XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp_source.html0000644001725400016040000003366013273140077020156 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSException.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSException.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSEXCEPTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSEXCEPTION_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    43 class MemoryManager;
    44 
    45 class CDOM_EXPORT DOMLSException : public DOMException {
    46 public:
    47  // -----------------------------------------------------------------------
    48  // Class Types
    49  // -----------------------------------------------------------------------
    66  PARSE_ERR = 81,
    67  SERIALIZE_ERR = 82
    68  };
    70 
    71  // -----------------------------------------------------------------------
    72  // Constructors
    73  // -----------------------------------------------------------------------
    81 
    89  DOMLSException(short code,
    90  short messageCode,
    91  MemoryManager* const memoryManager);
    92 
    98  DOMLSException(const DOMLSException &other);
    99 
    101 
    102  // -----------------------------------------------------------------------
    103  // Destructors
    104  // -----------------------------------------------------------------------
    111  virtual ~DOMLSException();
    113 
    114 private:
    115  // -----------------------------------------------------------------------
    116  // Unimplemented constructors and operators
    117  // -----------------------------------------------------------------------
    118  DOMLSException & operator = (const DOMLSException &);
    119 };
    120 
    121 XERCES_CPP_NAMESPACE_END
    122 
    123 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    Definition: DOMException.hpp:52
    Definition: DOMLSException.hpp:45
    LSExceptionCode
    ExceptionCode.
    Definition: DOMLSException.hpp:65
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.map0000644001725400016040000000030713273140101023676 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__incl.png0000644001725400016040000002625313273140101020455 00000000000000PNG  IHDR(YbKGD IDATxw@ǟBɲUp`ZA-j e)KBDU(PdZP-V@Q2Ⱥ50%yu3]y{A@" 4x@A 8@n۷owR D*[tӭ߿ss4gҭPFDZ_ k< ƃ@p^&Wze޼yضΤI444`GGG||Feaa ''1bDBB@OOLLlooܽ{76zݠq ֫dff뫫G͉#F!})PԬ]sjF .ƪ۽455=<<***Μ9ãGD@}}ׯ Ѣ Ƴgm##k׆N6MEEd?~uܸq"Bbbb&Ra]]gVVV_QQQqtt[PSCCcСZZZSLٻwnZZܹsǎ>}Eddd}}իW999XQ'O>:;;GEE  Ta ?.R!ϧ}l },Ą;^C1_˗oܸvn(7n@?Ν;7''kRnn9s$iW^MJJzI$]4Zͽ{6mڴh"[[ Xr%ÇNNN˖-KJJEVb0[n9;;wtt̛7ݻ666 >~޾FFFDFFr\477 YXBA(to[[ۡCN:fͻy󦫫ϟ?/RP{,@Ă'WkkkmmmT*FbVVV'NdX_0Ǐ7cbb\\\Ǝ+bo&&&{122JLL:}tKKKDD ##[XXxm۶`!Z Yfh]v)**333&999355USSL ȻwD"U7$i„ w3gP( `2]5+))͞=`0J1  6[[[?奯f?> zLJJP<<<"##aXd2yѢEsUPPhkkĪro>s z~(WWW+TTT#GtUU՞؃f Z>_񪫫***C-//777LP^^nll};wnHH8͛O>=~x@@9sCv$ȑ#,Ȩ;Æ ΦvW ڐK={ѣq 5jTSSnbUUU?gllf͚3f bh4G'`ĈXEZZZh{?"5 B15t̙3я?wֿ:::OELMMۋ>|44ѣΑtvv988DGG.ױg/^hnnY1э*[}刈N>tŋܹ` bUhjjĺ:cmm-귾4AdE!BR={{իW\]]i4ڏ?x;wxyyiiiY[[H!4ާ?Y"@A 84xr]rQ[[oRO%H:o2NZUdw-A5kUҼՕU,ttlld$'{/KH@$AwѻU" ([:С[ull>ccpƍvvӧMLtWSS{ f2pp}%!2 2^Z7Xk)OWT='A&-[6mm66-xˁL/!!?((k^Ig=rЋ}dׯ1%;w^_a%d(Ռ-66%%5xˁٳ*o{~~ 'Ԇ?9qMh^^)r ,j{~I$i)px[$WId ^! ƣR˖PUUpaB$ }{zJJ#W!Op8M\޹su99vC[[7m~C D&ne=yRKU ?LSS)00 H:lj1yꐝ;Y,޽6L!+.޶-jO2K]}o:vQ& TN47-\xdg7mnziS9& 3 .._ߪ6o9BaWӦqqUTr37}$̘1.-mWWGP"H񊊪c۶Ӧ[Kbjh4ʕa24 DLfE(To99)4ZΔ1c liip$gdlV]˗xˁ ''8`ECC)%Dwp2 CMmebdsF:̙ s-HGwU*-8o!W1ӧ11 <+n<>ٱ#}q3ւ?pexAҍwÒCpex@9|//X2#ѓ+[Zڷn]IvZL }|9onn[HzCAzErĈ?n '&%yܸ-;Vx_D2\|[]] _mHhwyx O75km\dGG hvv||.6^}>/rNe751RI4^b⽎κu":t%..O% 5 "qC$6Κ53U[PVpӹ\^||^M m`EAzGWP#|On6m Dg\hYސYͭ[SJJk+Bk殮 H$dgdd6HW$^lժix >&L~~P"=GF$WD2իES"hknlQ`Hj D"rWVj r&yyQQoD8% oE8O5,,a 4 fAwXɻٳzMY]]_*o{?~\0"Aƻ{LGG}X$9s]"] ].$hr%?o@ )>|v,C@ իW_ I1˗u ѣ-$xee FF:R ?s4XcƌqqqijjLd2&MW_8p墻O ˟ȣ"m IWWSGٷdffX_ϯSNmiiAw1iӦ=x 88ѣG;vHJJZ`#o߾}թi4nO2eΝhiށkv͛7ZZb"###{{SCe;s3Y?g11 %%_%K >cʰ8Ϸܳg‚b ƌsi4Ev܉퍏2;;;'N 9FS []] hmmVByE sTDa)I,U*)=^s3BQWi.]1bF$''3L ѡP(ܺukԨQ999Fvqqz/_633STT7n\BBܬ>^^^^aG@ǔ)Stuu:9s&`Xׯjjj~A6-+$ݻwOKK ˻y;v `2|ڵkN9s˗/x<^nn.ZTW ^jz/^pD1$ )))"" Đܡ&')FCC^^=[]]]tl޽32I/Ʀ\s̹sHhjj&O133444x<4hhh^)TUUNp[Xejhh >ӧOͱvvviii3Qrrrn߾%TMb9992\ZZh"ssD}>y d26lvD=#RvZǏ#)Ɠ\󩪪 ?֭]KK ;4k}<}tbX|>?--J-[J~ڵE]~̘1ϟ?ɽy ~zĈNخ rԩ%K~Wld2K={6˻qlmmoHHe``{bV^㈈}:BxxxnݪӳN6M&Y,V`` w^[`0,}<s'O,+3&&g?Cyyv܉/zf}L z 4i:}E]]]rN_^SSsذaL&SpﯧHx\geef/^r!!!_5"BR b/_x!X,hjȑNNNBSmmm[n8q҄ ۇ  ^zu}"8~رC92""ёBp8ٳglv'X SSS Ⱦ}444 Ё1"pi6+&&fZZZ>>>,KdPAk듻v]c^31pVr'Wttx@I1oyxx%HLLWT4wbL(Jddd_/8ދx @I1!EKK5B @RG Ow4dP )̙cWb;tScԠ(ŋzNI fΜ9rȁ& $FUUUAA$V>}K ի׳#G F$߶-@mm)vb7n"6v\TR`m=EEE19o!2rp|2% N,)*"451lm++gdl:u4r  Y|SWr H7մ+B:23}Ǐ[D3ޘ1Zg[SV`m}RAL$x ,rr^|!(EEU+WgdlQ[D4h &L4ȑkx >{mg1yȴ4o %@E[xzɓ'x &nx_ƺ B['$x L:u-Djxqc_;+j<?~wǏ-D Mrw{*"^$!-;HJKی&<ցWvZ-Z }Er{<}+{}x^${ /Yytt!=Ν;wv()ق.< ]|3@$ v-c2;n-D`goF$xڪ?]D튊SN=ȧ CM[fB;Z𧥥9d?DB //lOJ}LC6]'Hӧ۴iN`Śu~/ TIDATZpM(;Vo9B (l6w£::j{z'իzՒ<U[s@&u/ 4OT\f` ]'H=<륷o2p啭^1mژ$UUE@ă 5QlҥK|drk׊==-[6qG/Rv.dRt{/㭥IM}kd ;ch"#=<߿@&ƶm.=~}Q \h>o9~AZY72YEEEy cGzrr#/o($]px7'>rmxQ:rZqDmn]̭[/6#XX޽+7n<[gZlH5 ~~W]?##| MM5kɞpA,ZHt E^3T]M?=nj[d& L:{M^^9[G :tݠBTNJro8JǛZ1`Ԩam*,|Oixk Gv4idDsj?v1쁗TUEmii µ!2e<w d VV7n`1e~[7Z {Z5mޕ\A_}ʕauu99>H%g}YYI]T[['kC 5)SFH_4t=o6s|M=dva|>Fk/((oh{y׮[~7W" #((+=`zY G:q:6*'G8"Pi%tDܿJe:u[ewdx-B\'J[@XM6'YYB|dxlwN;rrյ9sGgOѯ x-DN`xgϪn~Errr_@6'WlnV֓c|O$+ 997cjPyy˛9s_YAlGnzoן<$>Ξu[`+8{Z1k[71.!҈,*::73H00.޻/_͟RdMMufo` WǠ0JEESddNJJ!uKLcNNQOKbB|qT3h?tzر23=UrIISex"\XxMMMϟK%}wUi)sF4Zǝ;Ug:D,J /[PΝ;-…/FeJ2ϟ?<*^~@ 84xH*++ׯ_kr)-lC0'OH$RZ$eee,A1cƸ455Akתrq( 7^ff+Dz捖ֿUjhhOe2eΝ;}}}[ZZށ\길8:>uTTHjkk^x10 "@CCCvv6"U,Y]䮲2v b;;;'N 97(++>|KK={t^d^))))))鏒e.]4bHNN666f2CP8:u֨QrrrGw|q\.Wdfee!C 3g0dr|||ll)Ʀu@ xzz^rr2_nhhyAhdeeP(__N~-  㹸`[[ʢSn߾ao߾4a„3fwMAA!22̙3$-$$Dd؄N5eؾ};`߾}~m"GzFϵ{+SҥKt h .,---((044 {OSGO7nL<=EEEddd{_xmwER9B|>xeRȧˎ󭭭֮]+~mқtW Ax<Z~ARRR Ed>_khh"BOʪ'RRTT,..ZN\ZJYY?.;X|9-],--$$$***fffLQ{K,LAu%X,43EEE |ʬfUUUXXn݊oF+((@蕒۷oӧO].ҨT۲e˨T׮][h0. K+XZZzxx`צu ȩS,Ys(},SQJKKzBď xݻJ>ҥKhwժUo߾}ٌ3l"hffV\\\\\7lڴ\,KQQ1==)::ZQQb̾vښי3gZ[[mll@`0Q=`v>t9s46mff8MCNɱoiiKݕyi Уo޼yeee722ڳg`_}2mI&/ꢗIt:}Æ swwg2ߏ===uuuGGGƻB$%%L&?>++Kdv6xbAa000Bp8gVQQAO({||«WDbzzz7 #G:99 {2&3zh---%2x/^$ ̔!z^dgoN kdrF#jjjk^ B 8Ԅ|:ph< ƃ@pDG D P(xKJp4KK ^A 84xA63ƷIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp_source.html0000644001725400016040000003453013273140077021526 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSResourceResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSResourceResolver.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSRESOURCERESOLVER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSRESOURCERESOLVER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMLSInput;
    31 
    53 class CDOM_EXPORT DOMLSResourceResolver
    54 {
    55 protected:
    56  // -----------------------------------------------------------------------
    57  // Hidden constructors
    58  // -----------------------------------------------------------------------
    63 
    64 private:
    65  // -----------------------------------------------------------------------
    66  // Unimplemented constructors and operators
    67  // -----------------------------------------------------------------------
    71  DOMLSResourceResolver & operator = (const DOMLSResourceResolver &);
    73 
    74 public:
    75  // -----------------------------------------------------------------------
    76  // All constructors are hidden, just the destructor is available
    77  // -----------------------------------------------------------------------
    84  virtual ~DOMLSResourceResolver() {};
    86 
    87  // -----------------------------------------------------------------------
    88  // Virtual DOMLSResourceResolver interface
    89  // -----------------------------------------------------------------------
    131  virtual DOMLSInput* resolveResource( const XMLCh* const resourceType
    132  , const XMLCh* const namespaceUri
    133  , const XMLCh* const publicId
    134  , const XMLCh* const systemId
    135  , const XMLCh* const baseURI) = 0;
    136 
    138 
    139 };
    140 
    141 XERCES_CPP_NAMESPACE_END
    142 
    143 #endif
    DOMLSResourceResolver()
    Definition: DOMLSResourceResolver.hpp:61
    DOMLSResourceResolver provides a way for applications to redirect references to external entities...
    Definition: DOMLSResourceResolver.hpp:53
    virtual ~DOMLSResourceResolver()
    Destructor.
    Definition: DOMLSResourceResolver.hpp:84
    This interface represents a single input source for an XML entity.
    Definition: DOMLSInput.hpp:59
    XQilla-2.3.4/docs/dom3-api/ftv2doc.png0000644001725400016040000000135213273140077014262 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_14.md50000644001725400016040000000004013273140100015717 000000000000000afb037537b5946436a670bc2fa55937XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp__incl.png0000644001725400016040000001510613273140100017376 00000000000000PNG  IHDRZrbKGDIDATx{XWOHP@BE.E+("o( ^ŵV@WB>Bv]%[E X[jju.Q$o:$:оμsgsLfA +@O&=L鋠5557oV}`ʾiӦEp>B w?Ȱ~0 `$} loo?f̘UVY[[Ǝ7nd2El윗b7n,++;r䈳sPPP```jj*Y~ɒ%.\Mn+S3'9rvy;6A=B(##Q<~ԩSٖ/_Z&!!Ço޼g333Г'O>|(prj/^p?̩6xbE&%&&E;kkCqm߾ɓx7|cmmw &€Xɓs ~~~ uձcR}9++xjF,&~bX׮]Ûqqqx(xEiӦI$y/RĸٳG*"""&&&33S|K. ]fͿo\SRHXR___5^!4|}۷.\(J޼y3666,,ѣd+W,]422r]]]uaBzB †P[[\.'2HT[[ˣFR*>D߾}{fff6muֿ/8kllŻvqO:tRXkdٳ999ѡ@?PaaP'Nشi׳>C\QQΝ;ׯ;v̀(zbi4\633:u*~ѣG2DP(߿gHJ:ڵk]]]/_^ZZZRR`kkO\Ν[n@ puuMHH(++?8i7PƍxZ.\hnn>ePkk+6ZJ(9?&jZQ0z\:'''СC=<䓲yժU|>?""tS޽{GIqUN879NPP7LoCgff^rE.eggYYYO>}ѧ~ZTT}T* u̙v222CM>݀(y|Zf .srrbqCCcpppLL ˥F *..4PXX?|MnݺD.r8ϟmٲ_X"##cʕ,kԩ ѣΞ=KZcǎ%-!!!6lų2/o9q… 1m7ّ6;=,,,zc4"~'|=Lz0 `>I}8 0)={fggDO^zVK0E2s̾'89X?Lz0 `$'I@O&=Lz0 `$'I@O&=Lz0 `$'I@O&=Lz0 `$'I@O&=LOGwuh6H4&w&Ž{O#Lm@O|Gϼyb./9M@K ?̪Г^dzl]ûϧ_zKTxZep11%~I/BY9OքdГ!?8u6lS2q@O^噙a3|2s1fB&bbm[7>lBH!;SGqf3g6v:gC͘1rs1y B",G h@c'bp8K.|A]]'MdLYNY`LW8qbLL̻M 'I@O&=LҿT[[|r-cuu5ˢ0bĈFj1c <>/U*bݵ^={6Ūbbb^+W&[|o=͛{԰W^duuu999---{1u7nصk׭[6o|ӧj\d ťK 31D9s|RXUUկ7"fԩ[nś*6bĈ,;k֬>ܛ;{l2&B(!!aС2 2}e^0f^o|*))qvvV(Ǐ{xx#RRRAJJJWW'DbggGߺ^ӧOx>>ƼAtر8 <== e]/\rwޭP(4MkkZ% %?dBHxm :;;c&o_~瓾_6oLđ#GONI7dȐZROv0jH$A]UU!"??_$x[=m66ScNJqt|rttE@@ٳgA޽KsB!R<.25,AcǎᲃCiiVb3g$}%H$h4;pA'Z,i0RAUVVR{?2~yy9ǣ5=f? 6F>OwBq5lr!''l{_|KTj4'O+VrZ~a֬}A;beBl6ѣGCgg{G ˜9sfllmȫ9P{{]LzR}fff999W\9x &OMSij>k`@kꐐ۷rlOJJƗk֬.RSS}||RT*GY,2_=>֧' =CZLf 'DE]\٬ /kksd岵%~I/O֒ 6VJT}9c6{#d„ @rS"3b>\.{qgi900Ӹ)8?\W!##}uWSL$:!R5v:l![[KWcct?EFscbuq\ϛ1x`Gnv߿S2uX,",w]Onvzaڴi8''(()"J O&=Lz멶v=VfXΝ;ɓxR/rւEaĈqqqdKKǯf"Ӟz***7oG|\޸q>q}gIII/^^:55u}9Wd___ - G} (<}… DbΜ9/_UUUA]#իQFgYw!TUUEnj4SnݺU_}~>>ܻw޽{TkO%%% !tqvPWWWJJ@ HII3O?"HRSS]\\ȓO !tiꚗRTMMM bdyĉ!3i# sΜ\./I JLL>>RT*N]VT AWO~_ٳg XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Classes

    struct  rebind
     

    Public Types

    typedef size_t size_type
     
    typedef ptrdiff_t difference_type
     
    typedef _Tp * pointer
     
    typedef const _Tp * const_pointer
     
    typedef _Tp & reference
     
    typedef const _Tp & const_reference
     
    typedef _Tp value_type
     

    Public Member Functions

     XQillaAllocator ()
     
     XQillaAllocator (xercesc::MemoryManager *memMgr)
     
     XQillaAllocator (const XQillaAllocator< _Tp > &o)
     
    pointer allocate (size_t _n, const void *=0)
     
    void deallocate (void *_p, size_t _n)
     
    void construct (pointer _p, const_reference _v)
     
    void destroy (pointer _p)
     
    size_type max_size () const
     
    size_type max_size (size_type) const
     
    bool operator== (const XQillaAllocator< _Tp > &o) const
     
    bool operator!= (const XQillaAllocator< _Tp > &o) const
     
    bool operator!= (XQillaAllocator< _Tp > &o)
     

    Public Attributes

    char _singleton [sizeof(_Tp)]
     
    xercesc::MemoryManager_memMgr
     

    Member Typedef Documentation

    template<class _Tp>
    typedef const _Tp* XQillaAllocator< _Tp >::const_pointer
    template<class _Tp>
    typedef const _Tp& XQillaAllocator< _Tp >::const_reference
    template<class _Tp>
    typedef ptrdiff_t XQillaAllocator< _Tp >::difference_type
    template<class _Tp>
    typedef _Tp* XQillaAllocator< _Tp >::pointer
    template<class _Tp>
    typedef _Tp& XQillaAllocator< _Tp >::reference
    template<class _Tp>
    typedef size_t XQillaAllocator< _Tp >::size_type
    template<class _Tp>
    typedef _Tp XQillaAllocator< _Tp >::value_type

    Constructor & Destructor Documentation

    template<class _Tp>
    XQillaAllocator< _Tp >::XQillaAllocator ( )
    inline
    template<class _Tp>
    XQillaAllocator< _Tp >::XQillaAllocator ( xercesc::MemoryManager memMgr)
    inline
    template<class _Tp>
    XQillaAllocator< _Tp >::XQillaAllocator ( const XQillaAllocator< _Tp > &  o)
    inline

    Member Function Documentation

    template<class _Tp>
    pointer XQillaAllocator< _Tp >::allocate ( size_t  _n,
    const void *  = 0 
    )
    inline
    template<class _Tp>
    void XQillaAllocator< _Tp >::construct ( pointer  _p,
    const_reference  _v 
    )
    inline
    template<class _Tp>
    void XQillaAllocator< _Tp >::deallocate ( void *  _p,
    size_t  _n 
    )
    inline
    template<class _Tp>
    void XQillaAllocator< _Tp >::destroy ( pointer  _p)
    inline
    template<class _Tp>
    size_type XQillaAllocator< _Tp >::max_size ( ) const
    inline
    template<class _Tp>
    size_type XQillaAllocator< _Tp >::max_size ( size_type  ) const
    inline
    template<class _Tp>
    bool XQillaAllocator< _Tp >::operator!= ( const XQillaAllocator< _Tp > &  o) const
    inline
    template<class _Tp>
    bool XQillaAllocator< _Tp >::operator!= ( XQillaAllocator< _Tp > &  o)
    inline
    template<class _Tp>
    bool XQillaAllocator< _Tp >::operator== ( const XQillaAllocator< _Tp > &  o) const
    inline

    Member Data Documentation

    template<class _Tp>
    char XQillaAllocator< _Tp >::_singleton[sizeof(_Tp)]

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntityReference-members.html0000644001725400016040000005416313273140100023214 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMEntityReference Member List

    This is the complete list of members for xercesc::DOMEntityReference, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMEntityReference()xercesc::DOMEntityReferenceinlineprotected
    DOMEntityReference(const DOMEntityReference &other)xercesc::DOMEntityReferenceinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMEntityReference()xercesc::DOMEntityReferenceinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.png0000644001725400016040000001252113273140101024512 00000000000000PNG  IHDRp)bKGDIDATx{\@M4aIha H$LM#1Y=0rYTH!Nԇ!ǩwn:Ͽ}kg 0@};@( " (P43֭kjjҗ+655ϒ4O$7ߴևchmmy&)Z-g͚JB ҥK6m,A{PAE$PAEC0O=ފ433 e2ùr Ϸ $$ oW]]'H"""sdEEERRRff bEEE1~gccU啘;ܼtҋ/R))//5jOpp0JՊJutt/>t0  ؽ{7TՍǏ ۿ @"DFF3Ç999555)))Ǐ߿9Bamm-L;::.]t׮]SN511iiib&޽G|~DDDQQQRVVv_jΝ---~Qv) 4=כiӦh s733ruuLc`ՁRSSy[[[Ǐnnn.]»rSL!!!,KK@q---bbbnܸ!HzPVwuu=B͛?vttV]|yժUfffp6""ӧ L\.O(JKKCBBd2@Tfdd,\p…Jۛ\~=777 `"kXroPPٳg*Gs8nZ 'TUUs-['KN rssaG֖'''566Z]+L`9$$d֭2Gs33ݴ.=DݘCCCL;;;Kb1Ǜ1cfc''}-[lU2L*J$Goƈ#$ƍ"##;;;{ ?Ύݷo.;W9sFg6lv~~~KK'R=''gن ;`ǎmmm?Õ+W9SVV6W\hӦM{{{zcK5kx<^LL'N KJJ֮]kmmmoo^]] \]]KKKWXaoo?~ɓ'fP(0 JT*uΜ9'OhN>M$IVOOOWVV9R1ai?|ܹ}QhhhWWWBBJDEEYZZb c̙FAlmmvڪ~ԩ;vpqq9sLPPPii's;{l@@^ϰ+ .Yd/__d^WW۷ś̾1CO??^hW;;;@KK-,y_ެFVPPfƌwf{999Yfm۶mʕZ;ׯ_OKKc^^^I@Po.JB,--=c.\X^^m۶kLrg͚5iҤI&p8 -OrnݺgXϰ Z ikkíh4ڌ3ƍr{&^ _~qssKOO߰a,455MKK?S(KKǏ޽{UUUK.J.ꤤ$RYZZaÆ a;~puuŷ2ȑ#auqqH$555ׯ쭽}׮],+444%%EwB.'%%%%%M>]P1-8bH+Vyf;;;]!HӦM;y-F3gNqq1ap~ѣGVVV=ڵ AV 0%ð[~ W^r#;;V{Çw؁tH$.// BhbStΎ'O&$$ŋêP@nݺꦦ=22j gjjI4obboo/677߹sgAS(JBtww=~J<Ɍhv;m4HpΝ``.,,\d BNMMuqq1bʕ+w޽j**88X&lLuTW_}:f̘D*ڛyggۡV4/&Y,VVV0܌G1L .**Zpfٳgkjj" fW^[LLL"##7olddPhѢӧO3kjj`666ޟ}YFb0]]] a]v~pp*OPJKK5wA}+~411=nq;MMa( " ( " ( "7o(?L`1,}{1$IIXċRY@]wd2; (FE]@"H**ۗqАlhH>q⪾}> rVP)ZLo H7R9LK nןap d2  Οa P*׫ PRRT5KT*38B$Aݯřa.r_{M؛ ,z 1L*.} ;@_cjzXƎf ju0CNJT.WhJ&tvJƎЛC4` 33Tߎ  4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 4HB 6w<^ *I2Ko<~}ݺuv?JjjjSSxb 0vX}{رcvAE$PAE$PzvBQ],ƾ[&&&NrrRܻwin7H$?_g&"(&&fFFF2 71221c0c uÆ QQQO^:11  NlٲT*33WPPc՚5kx<rrrl6^r|>ϯstt П p\aXDD[ww7P*xcH4nܸ ݻDo-,,|-afffUUUx㲲2;;;ݻxUKK 幗\J RgɹVmܸL&㍍ccc:X\\`0L-['7ȑ#asCCC*jjj f=ښf+ ɓ'Y,N?x lgYYY[ O4rSz^xii˗^bw3 ؼy3^"mmmZ-+++-,,t'N"BP(677^zx?hѢ~;>>^$h >CPD"a>>>߯svvNJJj5aEEEcƌQ(=vM> .n%*PZ=|2tR ɓ'Z\UnD* @;v9AkU*UUU~3L>t,ךLLLn޼[M83;wnʔ)۷ojZ(Tn2–'Nppp~WuM1*ЃB^;V3g!P ÊfΜ9eʔ˗ TRyyy޹sD#G]Z`cc@c*ׯ_C5kjja˗=<aXcc#@*B::sPPPllH$266sNoC|>(e I677geea}7۷ooذ`mm-@ H%%%*a::ۻw/>><]^<_ONX$!Z=( " ( "C6_kIENDB`XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp.html0000644001725400016040000001114013273140101016555 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    MemoryManager.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <stdlib.h>
    Include dependency graph for MemoryManager.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::MemoryManager
     Configurable memory manager. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/dir_e6bd38fe602a947f4224dfe3c9d24481.html0000644001725400016040000000513413273140101020311 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xerces-c-src Directory Reference
    Directory dependency graph for xerces-c-src:
    xerces-c-src

    Directories

    directory  src
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMException__inherit__graph.map0000644001725400016040000000106013273140101023426 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMError_8hpp__incl.md50000644001725400016040000000004013273140077016341 000000000000001ca5833cac87957ae400845f51a9f4edXQilla-2.3.4/docs/dom3-api/functions_enum.html0000644001725400016040000001161213273140100016112 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMTypeInfo.html0000644001725400016040000005527013273140100020226 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMTypeInfo Class Referenceabstract

    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

    #include <DOMTypeInfo.hpp>

    Public Types

    Public Contants
    enum  DerivationMethods { DERIVATION_RESTRICTION = 0x001, DERIVATION_EXTENSION = 0x002, DERIVATION_UNION = 0x004, DERIVATION_LIST = 0x008 }
     These are the available values for the derivationMethod parameter used by the method DOMTypeInfo::isDerivedFrom(). More...
     

    Public Member Functions

    Destructor
    virtual ~DOMTypeInfo ()
     Destructor. More...
     
    virtual const XMLCh * getTypeName () const =0
     Returns The name of a type declared for the associated DOMElement or DOMAttr, or null if unknown. More...
     
    virtual const XMLCh * getTypeNamespace () const =0
     The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available. More...
     
    virtual bool isDerivedFrom (const XMLCh *typeNamespaceArg, const XMLCh *typeNameArg, DerivationMethods derivationMethod) const =0
     This method returns if there is a derivation between the reference type definition, i.e. More...
     

    Protected Member Functions

    Hidden constructors
     DOMTypeInfo ()
     

    Detailed Description

    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document.

    The type is a pair of a namespace URI and name properties, and depends on the document's schema.

    Member Enumeration Documentation

    These are the available values for the derivationMethod parameter used by the method DOMTypeInfo::isDerivedFrom().

    It is a set of possible types of derivation, and the values represent bit positions. If a bit in the derivationMethod parameter is set to 1, the corresponding type of derivation will be taken into account when evaluating the derivation between the reference type definition and the other type definition. When using the isDerivedFrom method, combining all of them in the derivationMethod parameter is equivalent to invoking the method for each of them separately and combining the results with the OR boolean function. This specification only defines the type of derivation for XML Schema.

    In addition to the types of derivation listed below, please note that:

    • any type derives from xsd:anyType.
    • any simple type derives from xsd:anySimpleType by restriction.
    • any complex type does not derive from xsd:anySimpleType by restriction.

    DERIVATION_EXTENSION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the derivation by extension. The reference type definition is derived by extension from the other type definition if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and at least one of the derivation methods involved is an extension.

    DERIVATION_LIST: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the list. The reference type definition is derived by list from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by DERIVATION_RESTRICTION or DERIVATION_EXTENSION, T2 is derived from the other type definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.

    DERIVATION_RESTRICTION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the derivation by restriction if complex types are involved, or a restriction if simple types are involved. The reference type definition is derived by restriction from the other type definition if the other type definition is the same as the reference type definition, or if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and all the derivation methods involved are restriction.

    DERIVATION_UNION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the union if simple types are involved. The reference type definition is derived by union from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by DERIVATION_RESTRICTION or DERIVATION_EXTENSION, T2 is derived from the other type definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.

    Since
    DOM Level 3
    Enumerator
    DERIVATION_RESTRICTION 
    DERIVATION_EXTENSION 
    DERIVATION_UNION 
    DERIVATION_LIST 

    Constructor & Destructor Documentation

    xercesc::DOMTypeInfo::DOMTypeInfo ( )
    inlineprotected
    virtual xercesc::DOMTypeInfo::~DOMTypeInfo ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMTypeInfo::getTypeName ( ) const
    pure virtual

    Returns The name of a type declared for the associated DOMElement or DOMAttr, or null if unknown.

    Returns
    The name of a type declared for the associated DOMElement or DOMAttribute, or null if unknown.
    Since
    DOM level 3
    virtual const XMLCh* xercesc::DOMTypeInfo::getTypeNamespace ( ) const
    pure virtual

    The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available.

    Returns
    The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available.
    Since
    DOM level 3
    virtual bool xercesc::DOMTypeInfo::isDerivedFrom ( const XMLCh *  typeNamespaceArg,
    const XMLCh *  typeNameArg,
    DerivationMethods  derivationMethod 
    ) const
    pure virtual

    This method returns if there is a derivation between the reference type definition, i.e.

    the DOMTypeInfo on which the method is being called, and the other type definition, i.e. the one passed as parameters.

    Parameters
    typeNamespaceArgThe namespace of the other type definition.
    typeNameArgThe name of the other type definition.
    derivationMethodThe type of derivation and conditions applied between two types, as described in the list of constants provided in this interface.
    Returns
    If the document's schema is a DTD or no schema is associated with the document, this method will always return false. If the document's schema is an XML Schema, the method will true if the reference type definition is derived from the other type definition according to the derivation parameter. If the value of the parameter is 0 (no bit is set to 1 for the derivationMethod parameter), the method will return true if the other type definition can be reached by recursing any combination of {base type definition}, {item type definition}, or {member type definitions} from the reference type definition.
    Since
    DOM level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp__incl.png0000644001725400016040000000737713273140100016714 00000000000000PNG  IHDRp!]#abKGDIDATx{PO`\^!Ҏf$VDjPZfTDi֙*U{j[-  «  <${;{ ]Bhv|&0 MLw_ @''N@O2YSSG}466fȤsBCCCCC Πzr劏!Ee`O O:=tzd"ҥKccc9ayL&svvھ};}rss qC*++/\$9JroXX9Px;) 1 !V[ZZ_fB666<~̬/LLLBϟ?x(RY]];ӧ;::;fkk|iRGcd2YLLLaa!1#8Μ9s\eˎ?蘟:<9uʕ+|Wjjj{{~YZZJz葻teeewvqqp8"(..ÇHV1R=a0fqqqDD>X۷>>>}8_n-4?Cddd@@+WBRT,?|w :s(n]={B[n,*,,ŋN0'okkCrb.#x{ɒ%*'OYFw'Outth;쫯믕J%n,((HNN***.]DxYЍ7(VTT'Wb۶mk׮E2 sM)3CO<!f̙8FWWWb솆ݻrss OMM<"LM}xٹK_Ν"&VG.c` ðիW~~~ϟ'F#˗W\IXBD"Oz񓒒^xo2+Vh b[ڊ7ZZZpe QFH#˻?Lo"## ž}*++[[[amQ" ÐozmJJJ qJ2ȕhkk{UzӁw 7L)E/?ٷoaNQ.z=tz iI9 R:;;mmm Ѡzrtt4555OO:=tz @''N@O:=tz @''N@O:=tz @''N@O:=tz @''N@OQsOϷ{2M5F|i3͛dkk!NN6'J`f˖ed113cn۶rz͍`S316@OZ Yd25 ::I+Rό>F$r217獍a I!!+Og0͙ƒГ.=ȟLL!!0 .j4a6-΂$.L+˞z$l(b2MBj5|1v@O|}233ٰA8;ٺ!~͞5ݵ;})q0s1.B( OՄ bs1 [x2vMw HKK0Bq8 \:;;'X` @''Nfw9aD?BsssD25OA_qJ.^XWWg^ DGGGII 6شi 宆 4K,0,&&sdddʪBTGvM/͛7E"Ś?~nn.B˗ݖg&bD{!1MpGdee%''ggg䘙i+Ʈi`0bbbnݺ-_zƼs@ INN&^…  SY\zO?nnn8|0~[;zŋkjj$ɪU8ͫ֬Y2,33ԴĉYYYShOj$ >JJJ"kc;;W[L2͛7]~?ׯ///G4VGP(|H$"[hL&x}555-\ƍ޺:%NؘrCQQn ijj^j޽{ɧQBBH$H$d͚5wRX,ֵk׺X,JtJxMfffoooPP" EJjz֭'Hct 0D^PZZ{zzɮ-fzz:?DbqCCCeeˑ#G(@|w̙KC7|/Avicc3wܨr8񬭭wءP(payyy ,077_hQaa!ƍɅ%%%q8 yGGG׮]f1 =Mpə5k֯JX*++MLL]6]m6o޼0BBwv1'h#dddk\.?TTFbӸ쬫yQQ466L2Q7! s38`TXYYEGGc|U`80S @''N(~//`RȖq㓕aKf0O:=tz ; |cckIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementation-members.html0000644001725400016040000002176013273140100023103 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementation Member List

    This is the complete list of members for xercesc::DOMImplementation, including all inherited members.

    createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationpure virtual
    createDocument(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationpure virtual
    createDocumentType(const XMLCh *qualifiedName, const XMLCh *publicId, const XMLCh *systemId)=0xercesc::DOMImplementationpure virtual
    createLSInput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    createLSOutput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    createLSParser(const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0xercesc::DOMImplementationLSpure virtual
    createLSSerializer(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    DOMImplementation()xercesc::DOMImplementationinlineprotected
    DOMImplementationLS()xercesc::DOMImplementationLSinlineprotected
    DOMImplementationLSMode enum namexercesc::DOMImplementationLS
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMImplementationpure virtual
    getImplementation()xercesc::DOMImplementationstatic
    hasFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMImplementationpure virtual
    loadDOMExceptionMsg(const short msgToLoad, XMLCh *const toFill, const XMLSize_t maxChars)xercesc::DOMImplementationstatic
    MODE_ASYNCHRONOUS enum valuexercesc::DOMImplementationLS
    MODE_SYNCHRONOUS enum valuexercesc::DOMImplementationLS
    ~DOMImplementation()xercesc::DOMImplementationinlinevirtual
    ~DOMImplementationLS()xercesc::DOMImplementationLSinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.map0000644001725400016040000000073313273140101023100 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentType__inherit__graph.map0000644001725400016040000000041113273140101024107 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.png0000644001725400016040000001000413273140101023066 00000000000000PNG  IHDRp'bKGDIDATxkPSwHCQy% *J@QPm U(0NEABxHQD%A^hzHsz$޿>묵S A.ShF 7Z0qjooW*ǫ zVwUU˗vI7EEEEvv6Zߐփy|'Zz7Z`Xo@Koӧ=} J\]]MLL( 2wa4:Qi4yԠ7wuuq8ybJ"{Շ駟.]Jxhooohh SD2jr.?/9ͭRRR}988Y@enAA'5yTT֭[κ3R^"p%T WIImiiiBByXXG^d2.\P(CSaIyBg:N:effŠ,rrԄ111ObƍlllbccrRLJJrpp011qwww0}mZW KK{AC:::͛s·/_~ƍD''F`XMQiii|> 7))ipX|)6ÇԚMMM ԧOݻw---aaeeu}ٳgdNhjj?~:MZL&u:8q"~Q"Ν;FFF׮]&\z_x 2YZZ HMMdJZt)iPaÆ)SXLP(퍌-ZcM}Z'fLCy`z-hF 7Z`b#k3FtvvN:UOfX CLMV+J^-Mkó78j yyu߁Grz ( ?߾4y? W;ɩe0 ڵF+)ho ş/ſmI:-G=Gh995cXAK=EW*U7nG,Òt Bz}eeM j$/*I wAAltrkT7U*Uee@|LJ=}țt:nPwnn *;Z#xŚ@.0?lvLZZʕsƺ]|`Xoz-hF 7Z`Xoz-hF 7Z`Xoz-hF 7Z`Xoz-hF 7bP?6XVV` -wtBP%~I]>P(ƪ8%;;jboQ97̭[Y-hF 7ZW_d5::Ԕ4gVWW|[[[ktkmm}cǎLkkkjr7o>zh7o|=z?bT*UgggNNNdd3g}}}ѓ&MbmmmO9z@ TA=;7or(btfffsݿ?"yySSxxx "VZZJ*//3gzr*TŎX@D())ٰa\.(իW^:--MP_ _r˗[lYfD%AF|斚*RSS[& r|>?==ѣuuugeeܹ)))pz\.OLL| >,˹\ᦦmulll?~  \Mboo۳gϖd---TZWWNu岗Mhܹ֞sG% \422 [[[@ww L6mڴiLLLRRR\.qpp Y`pbٰɓ'777QE//!'sx>4!>2339jFɓ'yyynnn'Nصk4N81%%32e@ 1crCFxBR%&&*]vk  .\}||Ο??w\./]Dkgg羾>WSS}]o2 ÇYfݵqԩo&???;v[SF+++J @ST*-,,TobP(|YCCݻ|>pH_WUUuuuݾ};::lժUŋg͚Ep&2aĈOaw~~X,^nINNvvv6118~Mh4ŋ={FF8\p¨(hW׏OOO NHH.96`۶maaa⒑AT3228NZZǏY,֒%KƍG+WV^>drAYjeeep5mRy{YYY;DٻwyVViyk`Xoz-hF!ݻWu`<vKzϟ?ڵJREa^^^AAAT ߋE|F 7Z`$CCIENDB`XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp__incl.png0000644001725400016040000002633713273140101020171 00000000000000PNG  IHDRzzvbKGD IDATxg\,R"ET,DT(QDX@, 57 X@%Z"HPQAE#X \Rd,lI@]a̜3̜ggK!T  @!J(@055ݿu[OOOVv ***Xݚuppm6eG:=x~!0||)((prrJOO'KܹKѣ˗/6mڪUN<)B%%%R_":HF É2eWLL %+Lw7Gqtt,))ihs0ciiuСQF1%K#VZmbbիǏ?zh޽L&cqƍ/Rr˷o߮_TTtZ___XhѣGB?s^,X':::cƌ155,++t钶.X,۷oXRGGΝ;T={tʕ555tS@3h4Z```jjɓ'SSSi.+/^^`0,Xp5wZݻbŊSΙ3ԩSdy'UIIIl6IHH8Jh-Ϗ={ٳ###|>Bݻ˗/uT**q<# غkhh?!T[[ WZejj:xo\Btʕ+mll,Yo߾Cjii!&M믿>_ر/8uꔧBBBBBBx<^jj  eÆ ˖-x".!"44 ߞP(GNIIl\MMmԩ/^$vqBaHHϿ~zPPPRRJYYY߾}Bzzz-;99:tʊFr{CCym۶effŁMM͆GEE|2 ))B߼yh4555x2|0::hW0a„ 444~瘘===//ܝ;w._\VL&sժUꞞNNNlnnnnz!~URR_Km____CCfkhh /_~+VP( &7=z888N#֮]{+W~ .QC_@J6^UU%޽{NGjҤIׯolltrr"*V(:m~?~eee52dH6%xyyݸqB]ñ Z 6F A>@i455ZR@>@ittt֭[גB  @ [3I);@>LMMmۦ@dtzTTyQkl|Q_  ;h dUUՅ_9q^!!3'NH]ջ .3g]бp8[]SWW[~ʂch4?*+{~5>>pFWggkeG@ۃ|: 8wΝkk._֙TSvP(((߻rJ{{݆͛5UvD%Cu+?$$s?i=L M6ntO:t=~\z޽!!3WvD-rV~HHRaaEO`4^UŋOmmͶlʎӧR[YwR? @'(Auu#72zOss>FZbøA(T>z8;aba`X*t ÇZCM7mr7B EDÇZw_Rnam 9 :}uCwv~hgϊ]]M۷#@{ÇZ u==@&uC ݛZ_]r:1 ) DRU]kh:x𚦦ںu]g`J U+' : tCW\\㏿;hM(;"|ZjOCV!!36VvD|>!jnq!/un}TvD|> j[xXΝ+*j-_IKK]A0|a?;//AM ("0|H1bco8LCB 4)Xyy;}WN277X~ ܑÇŋLxm-[=hot0|~)8%47  u@noۖn1O54RvD |udB!qДe׬?  4>7{b]9VEn ujeeïgYZnl@C]FAA޽5o6t#nuI M6ntOOA7Ç[CB +?G|->oߕZҥzaE t}0|"i4UUU tt'OvC~VtX .s@>]͛gÇ㳆5ݴm8 eG:(] R=n+xX֭3Mp t2O]x˖0|4ЋϞ ޷o/iW(ŋ Wc9Kf]CJ`\]JJ?pcS\]hYY͖-3VrTb@ t5ӦWU B##w7#0||s{sWN *B(**c۶ BB{̟?ZّŁ|96ΘqŋJ>_RQl>ֶ/ u5MMu릸 Ӧ Ur@Q t<=W8`̘[̰@gWQQ~ԩ>}znFPh4V䃎N($c^} E˩TWW% t1;'-RU Zr!CPmrd/疖WJTIHx P 66#޾e)#(P:}.ē&{^VpHKz"!!K$I 4̙sVE|qݿz|̙BCS9ޱ7)0(h:܍JK:Fu t=ྦBi lٲh +Qf w|h*AB1xѐ!ƖVV-- ᫌA[ihV+,+-.fB(jjT>_[Μ9⧟5wI䃚'O@Potuff}01OM}eEkmݺumO7Bh=i4]CЪNxʎ ~[账& W,&ƒF/۷MMmpúxر֭k}Sd~(@ؿqqh Mr&}}7W!TTه>}̛7Z HLL+||!v7$_QTTtR LHκUx1F}bLsssaÆ1?|׮]|>}vHVk, RXXuja]_~/ذa=z=zΝ;qu---O6 =_tӧOU (ʼyDJuuu~~~WWW nll$+ǍɓF"_w(E_ttt6l𱵒f͚UZZzɼU1bDPPB555W:t(BvԨQYYYw x`Ϟ==ڸqɓ'9O>%y&~---- ^^^ma;{lBBIk֬>w\QQǓɩQciiQ^^~ /puumhhhɜ%'B A455}gA\rȑ\.gooZuuu\D[!TPPuGN gϞ={̛7D^$٬^ &Lغu+~+FEESN "N6lSN[.^SS#5ZB>>>={,++IΜaff&rPyymbm{jK .TWW#㭬BÇܣG;;7nk9M/^1bݻqaUUرcB{F^|]~R+R(޽;..[l3x<CCCggggb!KB߿LMM"!ëDW!Dcccwk8qb֭TLSS3 ɓ>jgh``KZZZ{DիW-,,tuuwE2EZn!u[!i=Gt/^|-Y !bcc`0B|>_ju 0++=z7.++ P )B\|$8q7oޙ3g?M={vܹrz|'Jo0} G}--#G ޼y#5UUU:߶p"5k_MMME~"-ֺ/ŋ/YݻwYYYA=z󥥥.]255EI~%_l:lٲb***#>Li㏲2Bl6رcG"سgϜ9srrrlmmoJDrr-A>d0A,\ŋ999}YHHh$VP($\R`` B(44,'J {޽={~vC=yCvnm!!!-\_!4}t6}9.BrP"bmm;f???Y"##ʎ?N¤V'{E,ccc$wт@s"OA ,KjbGkmA۷oR6uuuExǏ Ǐ?|p<ڡvƌxd> ?JV$>R_3|@ 044sΨQ233?d~ o"8n'''`F_;::N8qɒ%x6Uⴵ322 FRRY޻wk׮m#G?cF[#Wӧ +}P~~b@l[zfa0H"sԴeUER,;h(뜒}ԩS#Gį{&XDDĔ)SȺBp֬YGkSVϗW%d>i/kǓOAB-[LLL$#_~رcep9ppg@@@]]&N%6x~Ç'M~z\bbb":?Ù?vv#Gp˗N* (bKx333UTT\\\mmm˴7o" T˗/q/^FDFF>}ƍPZZ6a„`>… wA߽{n7$w{B(??ظ+bSAHV=bllk\ɓ~AV-# Y,X,ꢽ_~G% B .ܾ};?B{ma񵵵oNKK %¾-њJLL̝;w~gr<== eʔ)YQ_I{=8{ FIm:w|&\I&رb… Aܹ )),55 %55Gegg{yyH^N"т__߹sArcƌHLLd2R7--dZ[[k\kk[ʊ*88ʊሮP(>}@ xxx555ttt|σBMMMjJ7+[ZZQ%-Y_DTTemp\9y} u[zخ7n܊+dp8 ٳ?3p8RYӜ"; D%DLqqqzz̙3MMM}Cjjj~~筭Ǎ(իS IDAT( =ɸ>ڷzk0""=%KXYY]xŋw;vl6}!CcdKKK~; :thذa~322bX\.wg2vvvNؿϞ=s]]]|u敬h`` ufK.ի7~b{wrA,kѢEz22298UPP*ƪ>Zٳgۺg c6mrpppwwFL/ug֎;ַo_==5kn-}yhРdչ\h/aaavvv$!mgrwJ^^hć}O> .jIO kkPr+xzz:Bb%|Yַ[ !!!666۰a* --W^}/NYL&S)N%W%y\|{8yyy'Nz~iB_rx]QޑOX.=?>B̙3l/ @ݎ.hpHB` Mo@1lV4u= ݻwN|%]P0![μyZh,:BgONР0>> ]@B` B` B` B` B` B` B` B` BQPv .Wf R$%}7jTG@;23CH·NLOq ڑAc-T)AG|h_捒u_zQ о\\l^P*Ӧ U|<@գiنJUqr$vW# Ĝ9# 9;[EKU(+ @SSبsQU0ʍ |PٳGx2g͢@tt4kmmVʍH|PMel[UU*F 7̚e x<ٶʎHASvtM555\.WQt,}jo03ӬTv8 NVn 8$ef Ǝ5Qv BqppPn p}@ bȐ!c8QtHyyyʎ@A>A>B-] ) ?hdyrr2NmPDoGd2[~aaa[DAA> PRRҬYNz?raYG{PMMիUܽ{8&&fH*--=ydGA@> իW'O,uP(k==ݻw˩yf===3-jq{611qttepBfff |r\pĤ!oeeU__x<ߙ~YzzzppŋB)))666 <..!VTWW D;v,BwH6XuN޵kWLLLll p$Q(+W^tIV;6^jaak.rk$''8׷IjaKrvpƍr,^xɒ%޽344…{3gNQQQNNm```AABhڴiGHHuNNNnn1cdժSSS,++;~8F Z=:::.. ,\HnN D*((]ttt/Oզ(lsBUUUɓ'gffZXXH-oܸ!|@hI>655=_ 4 NKK>|8>1pyyykZ,KUUu޽BV Ȫ>gE|j> cBp̙T*Kt}uՈ򁬥YmB!D'"!!Bj!! oNREd0Wr\v$kqsjjjﲪΘ1=E$Vⴵ322 FRRbVN:5rHK'gڦ(P~~p >}`H-lMTyÇ'M~zPOOB%k!V7,,l„ >>>Ϣo$#"""Uұ)!B(??XNa ˖-[fM||kRRRpW_}q7oL:~hѢM6={ٳg}ݛ7odբP('O>wrR'''Ϝ9_lE]WW'uEDccc|r ׬YU3WVV{$##cٯ^Zn]K.cǎߕk׮-,,|APPŽN#t/:tаa~߂gK.իw}}mF???cccmmmj\.Y A%''Kr]\\D 0`@rr2^.?~<$$UUSS{9Yr}g϶~x>}.\( /]NUk±cf#PNO :"Ezz:|uWXXhii)vZ(6p_!ɴ|||ZR)@>Od``ْN  @ );& ZH7#):dCMM UvӠʍ   @#IENDB`XQilla-2.3.4/docs/dom3-api/DOMError_8hpp__dep__incl.map0000644001725400016040000000022613273140100017411 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__dep__incl.png0000644001725400016040000000755513273140100020504 00000000000000PNG  IHDRp ־bKGD"IDATxyPg_V \B`(" )H**m=*S-8:SPŢD E咣RjJ*PPPrݦג 'd}ldwM( 0l;i( 'Cд+L],,,bccK(ʟM222=<<ƺ_Z=~>j]c%L#$ꪪ"ٹy%K8pF:tȑ#m c0|>|]]]@,o߾x ӦM 8q%22ѣG'NڹsX, ]]>`Z]F9t##:t433x*55NƺXXXq8/+899*))7orϟngggee痞>ѣGBP$'O600000 . \~}˖-t:aΝ/rygg'x[n} eժU7o$ 7l@SL *,,$=<<*׮][l@ Wƍ#""F4x%O>}رJ.%?АNj4..Ĕ;w(~ɓ'lӧ4)))"""99lnnntttTTTiig "˟5Iʍ7TWW?~F]e…qqq/_^vիW.^`0lvYYYAAlmm=k֬={̙3gR)۱cG}DM}||tuuy xe4mҥ@F'44n䦐/d3AD"B'''BٳE/rӦM===}}]yVWWWqqq'OV4x?k,=D")))𰳳[~}JJ !.Cheeeee5\r쳹ykk+! !۵$7,|!/ᘡP(/^L,zyyGH$Νsqq!K{{{޽[QQA\]]ӕJRd,|>۶m?b|3P(>\[[KIPɫӧOOKK|>S7nصkWYYH$_BCC.%66nوM6UUUEEEݻw;͛ѱ|DBpWԩSFL'b1k~//_r4پ};`888$&&%4-11r8&SSSOOO5i$-0̼<__A[鉉 보>~˖- ݝfSTD.H/^f~Rn7,,,>>>$$dҤIovpppѣ#-ݻ% q.;>y:l,!ϫd+q~а`h8㘎ʕ+GR8 8NߵkH G'Cp204 qK l">TD j6W2xgnn' Nʾ}Y))YYYd%g rr* @ߧO%{{`o BNN6z{%EEFɀ~ŋwRhiQoG'._jT~ݞ~vId@v-*+W?b'ϯJkJ 5vICLdT) 2ڵvtdH^f@5ײj&P8*(Jzz:5MNhL6fp pFR8~d`h8Ni*q~ğP41xxd`h8N?D]IENDB`XQilla-2.3.4/docs/dom3-api/functions_vars.html0000644001725400016040000001064513273140100016126 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__dep__incl.map0000644001725400016040000000043613273140100021164 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMException.html0000644001725400016040000006244213273140101020427 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMException Class Reference

    #include <DOMException.hpp>

    Inheritance diagram for xercesc::DOMException:

    Public Types

    Public Constants
    enum  ExceptionCode {
      INDEX_SIZE_ERR = 1, DOMSTRING_SIZE_ERR = 2, HIERARCHY_REQUEST_ERR = 3, WRONG_DOCUMENT_ERR = 4,
      INVALID_CHARACTER_ERR = 5, NO_DATA_ALLOWED_ERR = 6, NO_MODIFICATION_ALLOWED_ERR = 7, NOT_FOUND_ERR = 8,
      NOT_SUPPORTED_ERR = 9, INUSE_ATTRIBUTE_ERR = 10, INVALID_STATE_ERR = 11, SYNTAX_ERR = 12,
      INVALID_MODIFICATION_ERR = 13, NAMESPACE_ERR = 14, INVALID_ACCESS_ERR = 15, VALIDATION_ERR = 16,
      TYPE_MISMATCH_ERR = 17
    }
     ExceptionCode. More...
     

    Public Member Functions

    const XMLCh * getMessage () const
     
    Constructors
     DOMException ()
     Default constructor for DOMException. More...
     
     DOMException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
     Constructor which takes an error code and an optional message code. More...
     
     DOMException (const DOMException &other)
     Copy constructor. More...
     
    Destructor.
    virtual ~DOMException ()
     Destructor for DOMException. More...
     

    Public Attributes

    Public variables
    short code
     A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured. More...
     
    const XMLCh * msg
     A string value. More...
     

    Protected Attributes

    MemoryManagerfMemoryManager
     

    Member Enumeration Documentation

    ExceptionCode.

    INDEX_SIZE_ERR: If index or size is negative, or greater than the allowed value.

    DOMSTRING_SIZE_ERR: If the specified range of text does not fit into a DOMString.

    HIERARCHY_REQUEST_ERR: If any node is inserted somewhere it doesn't belong.

    WRONG_DOCUMENT_ERR: If a node is used in a different document than the one that created it (that doesn't support it).

    INVALID_CHARACTER_ERR: If an invalid or illegal character is specified, such as in a name. See production 2 in the XML specification for the definition of a legal character, and production 5 for the definition of a legal name character.

    NO_DATA_ALLOWED_ERR: If data is specified for a node which does not support data.

    NO_MODIFICATION_ALLOWED_ERR: If an attempt is made to modify an object where modifications are not allowed.

    NOT_FOUND_ERR: If an attempt is made to reference a node in a context where it does not exist.

    NOT_SUPPORTED_ERR: If the implementation does not support the requested type of object or operation.

    INUSE_ATTRIBUTE_ERR: If an attempt is made to add an attribute that is already in use elsewhere.

    The above are since DOM Level 1

    Since
    DOM Level 1

    INVALID_STATE_ERR: If an attempt is made to use an object that is not, or is no longer, usable.

    SYNTAX_ERR: If an invalid or illegal string is specified.

    INVALID_MODIFICATION_ERR: If an attempt is made to modify the type of the underlying object.

    NAMESPACE_ERR: If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.

    INVALID_ACCESS_ERR: If a parameter or an operation is not supported by the underlying object.

    The above are since DOM Level 2

    Since
    DOM Level 2

    VALIDATION_ERR: If a call to a method such as insertBefore or removeChild would make the Node invalid with respect to "partial validity", this exception would be raised and the operation would not be done.

    TYPE_MISMATCH_ERR: If the type of an object is incompatible with the expected type of the parameter associated to the object, this exception would be raised.

    The above is since DOM Level 3

    Since
    DOM Level 3
    Enumerator
    INDEX_SIZE_ERR 
    DOMSTRING_SIZE_ERR 
    HIERARCHY_REQUEST_ERR 
    WRONG_DOCUMENT_ERR 
    INVALID_CHARACTER_ERR 
    NO_DATA_ALLOWED_ERR 
    NO_MODIFICATION_ALLOWED_ERR 
    NOT_FOUND_ERR 
    NOT_SUPPORTED_ERR 
    INUSE_ATTRIBUTE_ERR 
    INVALID_STATE_ERR 
    SYNTAX_ERR 
    INVALID_MODIFICATION_ERR 
    NAMESPACE_ERR 
    INVALID_ACCESS_ERR 
    VALIDATION_ERR 
    TYPE_MISMATCH_ERR 

    Constructor & Destructor Documentation

    xercesc::DOMException::DOMException ( )

    Default constructor for DOMException.

    xercesc::DOMException::DOMException ( short  code,
    short  messageCode = 0,
    MemoryManager *const  memoryManager = XMLPlatformUtils::fgMemoryManager 
    )

    Constructor which takes an error code and an optional message code.

    Parameters
    codeThe error code which indicates the exception
    messageCodeThe string containing the error message
    memoryManagerThe memory manager used to (de)allocate memory

    References fMemoryManager, xercesc::MemoryManager::getExceptionMemoryManager(), and msg.

    xercesc::DOMException::DOMException ( const DOMException other)

    Copy constructor.

    Parameters
    otherThe object to be copied.

    References fMemoryManager, and msg.

    xercesc::DOMException::~DOMException ( )
    virtual

    Destructor for DOMException.

    Member Function Documentation

    const XMLCh * xercesc::DOMException::getMessage ( ) const
    inline

    Member Data Documentation

    short xercesc::DOMException::code

    A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured.

    MemoryManager* xercesc::DOMException::fMemoryManager
    protected

    Referenced by DOMException().

    const XMLCh* xercesc::DOMException::msg

    A string value.

    Applications may use this field to hold an error message. The field value is not set by the DOM implementation, meaning that the string will be empty when an exception is first thrown.

    Referenced by DOMException().


    The documentation for this class was generated from the following files:
    XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp.html0000644001725400016040000001040213273140101017105 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentRange.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMDocumentRange.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocumentRange
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_19.png0000644001725400016040000000455113273140101016037 00000000000000PNG  IHDR%N}bKGD IDATxiLSMǧo@VҲ "ąHPx!, . BYBjA!(P @X$DDDe)@t4!Wsϙ9g޶!w'.D "F G#В;-=`-;bUUUww6ݭGVVVnKJ8#FG#Bp!h x<ayyd:;;ر7oޔH$ؽ{} G FGGa;Ѩd+DׯJJJ":tСwޥy{{oll YW|>ۉF%5d!RT:nffvĉZNeggSV___[[oߎ ۉF%5"z333>]^^3Lflld2GGG Bkke{{{ff%JmNQ''']]]QZZ H$Jm9B\\ܳg! 2}}}&faHHHeeӧ;(-@ SԜ={P(txY###ssU;wy B234668pL&&֭[7uP, E BCCAaa!`nnB蘕&CCu!vppJ&#H$RLLfggQTpp0/**+,**233knnx---666H3Z(RmQ|>)++KfF햖Á۷񣬭}>/J666Tb B622&$$Bl7MBg bX=22"DND"魭SN`+UP(ֆM@cYYlˑկzM!BDe]]]^KPPrbTG1 BԤ&\B,//?x jbmllRaa!TEaSRls\ 2r8]]]B/]H$ņIرc...>,l޿~o qrr'""Bf477M.F! hhh@~*J$uvvB?~L$UBNR=##&%%K$P(˓J$٩79!qP, n&D#~kkk!lkk355TU2"HGGN*ȕA]yyl VRmaE*\rŋ :11p|}}QiiiCCCCCC/_PE NΎdb1DZYY,--)M@gBBBJJэ>zXB3j޽{h511YXX ݻw^xqyy{&''R(0>Q'OX[[H$;;:5!mlػP(LJJrtt$,K$bϗo꠴(vG.,,DFF$&&(n3qqqzzz@f4wXXXܿ?,,XUyyy ׷JnQ1ܚ?XʶgF gggtX]]bdR/0VWW~Z\\|…mDDDD7oޤ?W 䇱8IOOO@@@||ǷmДH FLLLll  <bXz G#Bp!hJV\.{_˵ʽNLL]$&&n oGp!hq4\8dz}sIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp__dep__incl.png0000644001725400016040000000652613273140100020033 00000000000000PNG  IHDRp0d5bKGD IDATxkPW&)b"7c,V: %dVk QDAL3bEZEl-0r+Z-\D}}m@@@"I0!y?lgo)1>d<{M`0Ĕb H'8@:HLL֪ JȘ;w.= |M&i!HlذҌN])jjjA4? Nptuĸp8x֬Y . 0j4&B1gΜ(*:}4aD>Q"xyyq8\ZϗJnnn\.7&&Ψ2t:?!!E51Fxaz%%%۷o*J(:;; OOX| 4j3q`̜9u_~GQQ~ԩS #+++ ;((H$uvv^pd򊳮nѢEzj||ҒGNfvڵdXL\Ieee׮]/2{ʣP񡯾oƌ/]oߢ/]Dݶmի׬Ye˖}N}zXX_|РP(ܹsq3Vt4c0,))I*jZ{AAA]]]ONN.++3:wūV2a4{1~d2srrND._yrٳ<D8ɧOmoowvvp8[n5]CGGGP6}h.L۳gω'>ð`@C933sѢED{G%44t׮]%G9#s ޾iӦqpϟ &kךc|QN HLL4 H'8@:}az @J&[ЩGRs=؂N2&N/*jzձ޲j=<~I]z>mJ6~9sHeݺq~V0@: Npt H'8@: Npt H'8@: Npt H'8@: Npt H'H0X T:boϦR^~;wܗiQPtB1u"ELOpt :a$Νyf#7III .trrZlYzzN#ҲlU{gaL&YH#,X_'@]]Byyyo6VT.]СCׯ_߳gϙ3gVZE|!x__T*B,̔ˋᔖΛ7ȑ#)ܭK}||>ƇCCCkq}ȔЉ a}D"IIIRD$D|~aa!1GF b9;;gddd2agϞ?>LHHh֚:p/F-MMM `0Κ5 O{]ww7n ~:{4 zzzaaa ,+55uT㸭|>hf'sP(DR#""ݩsέX„ݻw;99__L6xAj"SQ_`0o4כ7o]"`z)k5X7 F5Z)`8~5k`LĹȎ:NXV\T*^ZUU7>Z[[q!2Z)Swwwggg{{˗y<ރ)))Ogώ"Gxٮ],X@z뭴4JE 555cǎiA14b^suuOjq[auu"$LZ̘1C c:jLH$2hu:A NptaK1_|` \S˗[MEb Npt@*$IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.md50000644001725400016040000000004013273140100024277 0000000000000084efa1057a95eb0fa512827667cb86bdXQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__dep__incl.png0000644001725400016040000000741613273140101021252 00000000000000PNG  IHDRpbKGDIDATxyTo D A@8!PBǢJJ5 Sh`Q*[+PԲIEPA"yVكڒb BcȚ0?8w~s~|gL&CA@:1/`WtN ۮ]d2`&d2zͲ{OӢ0fG{{;`R_a5c.طoJ;WtN0_ɴ}w˕+Wk׮] ^ l6;((>/..?8|gggd8#1]s>ggg>?Wzԃp=痙oı ecc'H!!!T*ѣD"{eeeQ(鶚f_[d766f!!6!!xb@@?ic;wtss۶m[IIzׯ_߾}(ҥKB5wwLD9g[[T*uwwwww͕Jpu)P *Qrr-[L#Gb1ٹbm޼ QyKKM95d3n,((VvppNTf0jݻ`ëBqVrpp/UUU'B =ijjJ&cccGDDp8-[,[L*<fԙ_eff۳X4žzI\/~7.]*))qqqQP$%%%yyy}gS000PYYxpވ@iC544444TWWD"\T]]޽{tt1DGG^Hs 5#δ} (--fÆ ÇkY,`lllss3ǣP(pɐH$RNjB8jxxxq` 裏zuE,>믿]V5k߿+>> ]zullL"E!IxÇr FqN DD=յ;v x|\\'|d``WXXx>offvr?s>>>...񕕕O?TrCCCUU𰷷7NOO൮111BWe ڹs'srr %vbTN6˗٤Uj#S~ӳaY#J;::^~Ms  d߾}劈&6C744ܴiULDs2J">smd CWtN0_ } g!0  AJ\zU=gOFBttׯsoޱc۵E,ke%+,>ZJ$sxPwh[&X64xVm ׊V<^ Xۊ:>.#}Z/W4}pMZ UThQf@-::Yޯb2L&X,VESSAl6L&9sFݻKX!<000EzzrBKKKKgg۷_}դ$HAAcddfOENT󣣣7lؠ2"ƍGFF***VuuttܸqN'%%!oSN :44DzW?p Dw>zH&Ope.lmm'&źw܁gΜ8AbX6%%@$UFr A2 nK}6\ԩSt:1~[͉:Hp8յ|??koo>@pssspp8~"?===޿_&pNxmQQQ\.y~~~j,_333_uX APee%B_5Httt,))jϯ/Y*''ۛL&+"JSRRt7 %::Z @ΣQE/^y枞'LOOW9qI{`WtNdDqIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__incl.png0000644001725400016040000004742713273140100017553 00000000000000PNG  IHDR<E`vbKGD IDATxy\ wD@ (nZ.V hU Uk[Zn/`qVbk$$1iHhI0319g(L iHZ@!ie:`^^^b1Ӂruuݹs'Q O3g΄ 6@TTT>^0ƪ>Ν;SN%\~}ƌbѣaaa'Nܼys]]ssssTTԤI&M\\\<|~mƌ&MڵkH$Zd !dɄz𺺺-[L0!$$d߾}B2|y֬Yӧᅦ?ɓsUP*$-\]]KJJ!uuuҡ_RvϞ= !4hGFF޿ԩ岿mlll'Bkg>gϞ 6={_~ټy7|SXXCٳ߿Q<>>~_}ս{{BΟ?/޷~[YYu֔SNo޳g… OOrݻw>СCҔLR  %Hm6#޽۫W/ Շ766oիO?^~]{˗-[v5kL0Ϗrszyyuuڵ=zWXaoopd|ŮHNss7-[5g'N433{7 !ҜDVXX !ҬFama">"gggBY.]ew8lذ۷ϛ7-cܹ3l03f;v,**jĈʞeff6nܸǏtIyy+AoM2Ez)!ݽRax|>_"ЗOqqqikkKr粱!>HMYmࡧ^EQ/^8p ȑ#O8!W!466:uҒ^z=<==T/ɡdXŭVQQq…`zX!Ʀʒy͛7/]$ݿ(,,lvii)cII HK wPXi["0xHZjjjw]\\_:thԨQt!=gF>+--{leӇL>\rΝz olllll8p… ͛{X_}…UUU#G^^Βkʔ)e[bݻ-ZxpemǎAAA{\`0B0a9s&,,L 뾗_^]@$~)G0iHZtP)#&$-ceej*]HtiHZ@!it%&&2G1F ir?S fϘD\\\@XX?:S-:^R Ӂ@aN 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4$-ӐNC: I 4EQL6ŗ>`OoǍ ?>=L)/eKJJRE0< Vhh?.ĉ} ($-`&M nn,gC #Œ+r9Ӧ `$$xHZcysdތ/I H$6ի S!@{!iClջbl6+4!@{!i7uj_i- '$-`y) zUo;;sBK}8ԩ} I )SREpc00|c{Zx˜p}33= Ɔ'=ltܪUc:[Z… ^^^%8?3;;ׯ3wyyyGw9rd\\/^:tlEeZhӧ-[4TBb8.^ !N'DH{{HHDA~{bbƍfΜ)hy!ҥK^^^фfWUUvY,o߾|РAݣw={5k !,ȑ#vvv[lڵ,wږb-ZteǘO>Hw055 9stٳgNb7YMPvwnoo|򦦦BHvx[tI.]l۶MaW^޼yr*,lA> iu3gΚ5޽{t֭[LRPP֧OueffBƎ{ƍM6#---==}k֬QvT]]]NJKK>ro߮#GDGGSsN{{ϗ\|ٙnu#FNKKٳM("L>] :t*O=-sff姤XYYQE'r~spp믿OjjjLLL$&(G~IRRMBmehԩ|>O]#!dܸqܹs}SQ\EU& imLZ|k@@P??RzڵkAAAִ4w~y=n<رK$ZX)STWWS{1i0Ǐ'BA?ۛ(B) rt.!=-BIݻwmmm.]tEČ5J*27PS0iQqn޼)w[dB)gdffTR I 0 Ղ >|xbia^^QF~~~|ҤIʎyfRRСCW6:HdmmM),, @)//ݺu msssBǓۖ;B9SSSvHMM GQ±a 7.'p9*n[%--;߭ҶD8$-p#G\zV'%%^gg缼<$55/TvTCCD"7o㫫~ʕ1cЅz!!Ѕ...^i[(j߾}o6cxxg}&}V!~֭gy秥3fϞ=G͘1cÆ ~~~X,ѣϝ;'B!311QxxBB„ ,Z(222!!ʕ+| !ㅅ-_<777##㣏> oeOK,+++..u֤IrssWZEO>1bĕ+W233/\0`>(3eʔ ^:䲔C|ŊYYY)))~aDD]XWW'[{nѡC={)Ta!04x9mӲk׮@PHQԅ `Μ9666 ,DظfgggKKӧ|QEv/!!ABޒFܼ}voooSSW_}m(zƌ666NNN+Wlhh9MEnѣG9-<<\vիWĤG_|NHٳg\, or!}:akklٲH4x`333~T7Jn`sZ!,J3)3g0,-SX DbbccM: I XXX,\P*e$aÀqLAO 4$-ӐNC:tVwh$DB\)AQ66 h)HZCHH!( MS^_̴ɱ{Tfڴig: ccϟ g>^|@7Fb.^L=zǏK""^4i'F0HHZ@_ *cc;1IK+{\.{„3gӅ KAû/*]ҽ#:^I gϞOBpROO[Q /ꂤLUU]Xؾچ3gl"IeemXؾυg,vwa:v@ Cz&$d/͊[ht8///I b~H^s yYxh;$- CB.Ŕp/mt]vvEH^;;ӧY[N" /* iUԩEVV&LYxPI 讇M>&fY쎎YHZ@GMxۀENջsyL0t@tNrrΌzNL+-II3g|Ug!cQ/ iܹGFkWa:8qyGƎ p.t8z/`𐴀NvǦNm[(b:0`HZy/.[3mڀ͛"cyIxÃe1~ z `ҩSIg-G㙎0 `LLu/~cÆqLbz I 0>oZ&ӱt x}o?v[+Vb:/_s.{X::t^@ZWvt,7tCڳmۏvcGXXXc I hEQ6%9ΝBB15HZ@( ǏNt8Vx4 Ν<5k^L톎` Xz?5ztOÁ"2k֠=ڀ4E,_ﴣGzw;^x<9Ĉ!iċHLرy2r</QHZ@D"…7I P<{rN\t8%xA =pZZ/۝p@sYLLB P1<|A~~NL:/yyU+V26i3NqHZ@ w_TT}__GƎիcOJ t;yra.ڏtxYϞ=6-..n-RR[Ic88X9kW;f^JUU]X޺3gxx0/ǏayDBrF b:X`xqaa{E"q\''+=S]]Lɓw+= oH,a>aBoF!iTRR3u.p@_Qun]?ߺeXV^zf:KEESq"cb^{ٚ-EQ;wzulsD@O [A}ƧO/#5~ R4ff@dgWL̙%X@-ΝIbDrnɻ*+k@;dfuwY`nnt8кhwer8!E"&+NKboY1vt筷26z`h8DG/(}1}ӧO3E+x<{ρX˘X\6ۘ.cY,.%Ĉbݫ4 ;wnLG@?Mx|SSd,zC,9s@@Xf sZu r;yr!22$-Њ䜐=}z92ؘt8 iU?0ls;u`B`PͿ޽3.HZ@͝{x^wGph'=siu,%!w8Kqrss[EQfff/x%-X,%DFAkΛwt~v!cm8q_VVVk׮U};wJKKKJJnݺ%H"""Z]'O>zE.rif)S->}W_Me-/\z5..N$ӧOm[[-[>ёtAWWW@v*!/tӖK%:C|ߏ7oX:/|BȩS|}} !"(22>22R$ѣ_qFwww;;3ggky!ҥK^^^фfWUUvYvdt{:Q8tJzxj;F IDATp8t?C޽MLLro߮#GDGGSEEJ[-NQ!$55V deeM_"֊beO2zѤEz8EQxCʥMMM?ŷnݢeIP(p8ϟ!tߧwۦ~E={ !Ebk2fPAhqr$- B9vuή^=fÆqL Z`Ç/^,-srr5j([???BH~~]?i$eGY[[߼y3))uС+Vxx]]H$ gLåP(LLLɓ'cƌ >vꓗnݺ?z{{9!m+6^!D=l3!DW'Ya!Bd6۸qʕQXX{#G^ZZhkk+󓒒rSs^^]_*;A"UWWϛ7o rʘ1cd*ZZCCChhhddݫzgCBo˥%*>\.ͭ--wS|dk:QVtt{\>lC!HΝlٲSNϗ.]'O~1cٳG3flذ!#####Wv=zsP(x&&& OHH0a}+++Bȉ'w}'[5={%ۢI(544lܸR[[ |܌>(<Ya!b`Htv^yȯLҖ9-v  E]pɉ"̙cmmmcc`zyk֬qvv>}:ϧ[EQTllln݌. z- ++nݺ%$$DQ-&~<@B;wvm޽ӧOWXzƌ666NNN+WlhhAF"h۶mݻwa4z:akkl2ir*'Ĝ`jj00[{;vg:ДPBș3g#&U,+66nNڇ%;"6n?z7L:/á(꣏.܉ہLbaap¶8$-X,Y&?5fL/ jK!CҁŒUN'$yѣ{2@ i(bɊczwh+$-H$^[9~}>yIIYO/۷+ 3Hjj/ǃp I!{\8{ӧ30>}b1Q9dz9OiΝXhݚb(c.De"Q9E5k.]&X)..ѣS쨡Z('G0j˨Qw> "liaifgYkYYƧObmlmmml_{SNjUHZ @:6vď$'禥=yRFׯk@[]{ppؚ '>,|۶Pm>gB">O\]wҊss ͍֯_W++5VO J7 %biiaan#pqr5Z@G={w tjt8`h˟%'҉ʃBaq`>=WfMlrr…׬ө ]/O~33mtA47K=*V+fG$Ȧ1Oss+kk !<R̸wah"$-.,l@Ӗp5=zTV{Nӧu\.˾d__-*$n~ܴY{K._n27rky -0-099ff߿k>66f @aLq1YBԉh)'aӭ=Ƙ@!i1(aa▸0+XUAQ$Ptblc*իOgf^E5:*+k?ٳWS4'(,ήHK+LIMN,(~q[YE@Tw1ss뢉>"wHZ GEEmh^Xђp@TT>xP@'*ɹϞ=711% - W]]44wu_;vyyǟ~n]\}pÆq2<(HNΡϚvss吚ʞɍ1ήo"2cdOO; c- :I(.懄rqqK@D"qNNeJ =[~^6o7Z@G4m~}zSR@/~U߾֦LǨgϿ'F|eHLI]&jh&D"?TݵhN˫1ÃET쵵5;}zn~7=|w`JOrt)uÆs/&v m~ p0__sd Z Nٹ1OnrAAF!Ȉ$?^;vM@Ң߲*BB::Z:Hkϙ]b4Qї5>ܕ+S$=mYs:#xac`]υEiiEiiIIEE|ݭ ǘj` I, a=T;.Փ һG1d&hyJj'6OɩS1¢3Ӂ iWӦu>9)#xժSYY:d&2j;Zj-S^.(/H!CҢg˙1z<8[/fBHЋ'8/ کj#˕.//I>{7{̃#F_X,vxgiY+CeHMe(N׵T;Sss+kkz mBҢ7nk޼#os׮.Vw>4zȘFЗ%#5AT;XRTOԉ(?W I~G<4ӓSRrE>Y]\[2Rdܱ#P?+_Z]˩ee**O0 i ?`谰[௔^]޽jz{,ƒPkvMMeec̲ʟ?%tj5P!iu/1~ՔZOC6`֪3%#5AߗT;}_R^`꿋5CҢ.\b~;Ljk?.G^uuC.g oHM0e(ΐֵT;M3߅@ҢNvmol0X6,Ca`O@Rd&Hܼyʘ1G޺[ܬtnȓ@ iQ'Nó+WzLҡΡ`D޶`JY2R uJ3u-Վ)/V^.Mf :I.J󋑑cLDǏK!())O1t%#5T)]Q_DL$-:g_~æMt,W<( ݥe:򒑚СT/XUAOZjeZv[xx ݲgt,յ:cUKFjN\R:캖jp^^@Hp CҢCoڗ_N={ӱ鷭􇕬r|۪ X2R:2j׵Ԅ2̙F!Ȉ$?V!i E}iÿ~~Lc JK+w/G h05+ϡ891,MXRF)cz꿫5@ I (cnM2/19 qKF2PjֵT~NNE]XcB0>|L}fV蟖s-,BKd$ v`]K-k  i2〱| I bɚ5,,F(0>͎_.π.ď`]Kpyrsfݻo @X4ҥf1#DZ z2Qa_56͍Ղ=tz=pjƜ9G(bY&sg#,i䖡qqDBò2H cUP-S\onV:[7{SNL$-ꗗW5dWt7%.n Nm\.eiuȵ/GhhC\ȑV?ŒL [oG~en<O/4ecs)/V^.Mf OkX^:2$-1/Ezbm~SBQٳo`+FXz<<.3fg^^?*X2K?Otq8Eo0w]˪McIc©MDOO; -M%Ț@ Ynn!o.[bțo:rdv,=AfXݺ_yۖT,kY׵駌9spl##Ά fO:H2-e-<(H5<q\%o[փo5?\JaX:q\Yo( 캖W]]_yER_}ÁfBuرcZ\^L)W)4;(cS_f\E,ہ iQ'YX,E,,{^~n]\E@͛kww8SRrE١N[vPO_yYQ6}kvw՘kڲ ߥJp >dSr2r'e"BI~꿗}qW}<LL0inL? Zins8,__}6hfpU[fRRۙ6r@R,kӦ e*H`DA^}lEQxmfxˎT}}7 !FF\7.]my Ȉ=w.RP$-j};nnb(-"AէThݺ tЧ&ߟHa<'0m`=y70&));992srBa3E}>輊AsWlH{Pg1}29*>Hr8Ν ? 􏤥1''i 14E!C}JonٲE}-F׭[h,jyvvv...Çp႗7|l熆B;Vhbvȑ#e˹xСC[nNseЖ+f+''޹s^B_oj/V)h.7%p{i[mwrE>O9uꔯo}}=!D$EFF:88GFFD"O7ntww9sQK.{yyEGGB^UUejjڹsg; !'6 !FFFǎ;r͛=z1,H5^ZK,kѢE/_Vvj9^mmmyfHHH޽˛Yh^lx3gHpϞ=;uT5@e5eWZSS3{l[[[WW5k466BX,ɓ'tm6AlCpz !?C޽MLL[*EZk۷o5774hн{Σ}h:&0 7AuEEEE+o? {fmBTj o.n7oR9sYݻGnݺuʔ)iii}Yn]ff&!dر7nشiS= feGu)**\.n ?rHtt4EQt]ttBR֭#|4dff֘beev)2n8@p9BHUU}ѣG?y$)){ӦM U E!䯿rtt?)1116-.LMM'e7P* یܕR>bĈ촴={ 2uT>ABӧO[FzrEG~+@5y}R%Ν[TTC3+eӕײsN{{ϗ\|ٙ>TrkmlKm7OH07JȞX%P(<-(SN5552dȿoe־;+ɓ?iіn266ΥQv )ٺ3444Ѕ<066VXlP/VbbD"8qh3rWZXX(gZZݐ!T夅2Ć]%$$ <8((~&qʽ3+ؖUȖΝ;J&-_!iMj9i MRZyTQMP]iΝ;%ImRorT]VVlk|t۰AkOS}R7_u]:Ve3bxȑyuuŋ˗O:~ڀ}pƍ ?Ϟ=[YYyccㆆGDD69|g&MDdrPz@ˤYpD2nܸCcBa@@ӵpiEG'&&N0յ-+;g 29=I'(,TIt*,mFJ)zwGޣG!l6{Z R{Z|>ܿRjؖUHK^˷~koo_ZZ?zyyIL兠&bmRComiiyZt׮]?SUU׻wbQۭVVxs|}ijk׮@… NNN?@0gkkk ^acc5k---OGQۭ[7###?? ·zK6/ʪ[n t"hfffT'wc:u$f@QTrr2>{/8Z77pIu*"t![[e˖544(,Tt'} !{}㓣.Wx~6WJQTuu3lllV\)M[I4Tm&-P)v٥K77onuS 0MNU@tmjpu:@4TVU P\ &%=b 'y0; ov`0+ ߛ-vGv??Lg}mzMMxh4VK2LV7C]{pZv`j#G:=y}}VBBV&ʒLfKTpsв}ܝ%B6|>{{vrVU $A%42~y՚fr=N#Z,#,#4q.hhhaɾ8jJAp)&.왻98(J(7l6<$TkWHR$KZ69չ;: h h h h>j7IENDB`XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.md50000644001725400016040000000004013273140077021020 0000000000000087095c6494653a8413c7f26d2a2e7b11XQilla-2.3.4/docs/dom3-api/DOMException_8cpp.html0000644001725400016040000001111713273140101016307 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMException.cpp File Reference
    #include <xercesc/dom/DOMImplementation.hpp>
    #include <xercesc/framework/MemoryManager.hpp>
    #include <xercesc/util/XMLString.hpp>
    #include <xercesc/util/XMLMsgLoader.hpp>
    #include <xercesc/util/XMLDOMMsg.hpp>
    #include "impl/DOMImplementationImpl.hpp"
    #include "DOMException.hpp"
    Include dependency graph for DOMException.cpp:

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMTreeWalker-members.html0000644001725400016040000001716613273140100022170 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMTreeWalker Member List

    This is the complete list of members for xercesc::DOMTreeWalker, including all inherited members.

    DOMTreeWalker()xercesc::DOMTreeWalkerinlineprotected
    DOMTreeWalker(const DOMTreeWalker &)xercesc::DOMTreeWalkerinlineprotected
    firstChild()=0xercesc::DOMTreeWalkerpure virtual
    getCurrentNode()=0xercesc::DOMTreeWalkerpure virtual
    getExpandEntityReferences()=0xercesc::DOMTreeWalkerpure virtual
    getFilter()=0xercesc::DOMTreeWalkerpure virtual
    getRoot()=0xercesc::DOMTreeWalkerpure virtual
    getWhatToShow()=0xercesc::DOMTreeWalkerpure virtual
    lastChild()=0xercesc::DOMTreeWalkerpure virtual
    nextNode()=0xercesc::DOMTreeWalkerpure virtual
    nextSibling()=0xercesc::DOMTreeWalkerpure virtual
    parentNode()=0xercesc::DOMTreeWalkerpure virtual
    previousNode()=0xercesc::DOMTreeWalkerpure virtual
    previousSibling()=0xercesc::DOMTreeWalkerpure virtual
    release()=0xercesc::DOMTreeWalkerpure virtual
    setCurrentNode(DOMNode *currentNode)=0xercesc::DOMTreeWalkerpure virtual
    ~DOMTreeWalker()xercesc::DOMTreeWalkerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/inherit_graph_29.md50000644001725400016040000000004013273140100015725 000000000000003a435d8f3dc13a47fe17244c42f1176aXQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp.html0000644001725400016040000001170413273140101017000 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentType.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMDocumentType.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocumentType
     Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp_source.html0000644001725400016040000002251413273140077020667 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaExpression.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __XQILLAEXPRESSION_HPP
    21 #define __XQILLAEXPRESSION_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    26 #include <xqilla/runtime/Sequence.hpp>
    28 #include <xercesc/dom/DOMNode.hpp>
    31 
    32 
    33 class DynamicContext;
    34 
    41 class XQILLA_API XQillaExpression: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression
    42 {
    43 public:
    45 
    54  virtual void release() = 0;
    56 };
    57 
    58 #endif
    59 
    The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to rel...
    Definition: XQillaExpression.hpp:41
    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__incl.map0000644001725400016040000000027313273140100020021 00000000000000 XQilla-2.3.4/docs/dom3-api/classXQillaNSResolver.html0000644001725400016040000003572513273140101017275 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaNSResolver Class Referenceabstract

    The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings. More...

    #include <XQillaNSResolver.hpp>

    Inheritance diagram for XQillaNSResolver:

    Public Member Functions

    Non-standard Extension
    virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
     Non-standard extension. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given namespace prefix. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *uri) const =0
     Non-standard extension. More...
     
    virtual void release ()=0
     Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     
    - Public Member Functions inherited from xercesc::DOMXPathNSResolver
    virtual ~DOMXPathNSResolver ()
     Destructor. More...
     

    Protected Member Functions

    Hidden constructors
     XQillaNSResolver ()
     
    - Protected Member Functions inherited from xercesc::DOMXPathNSResolver
     DOMXPathNSResolver ()
     

    Detailed Description

    The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings.

    Since
    DOM Level 3

    Constructor & Destructor Documentation

    XQillaNSResolver::XQillaNSResolver ( )
    inlineprotected

    Member Function Documentation

    virtual void XQillaNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    pure virtual

    Non-standard extension.

    XQilla requires additional bindings of namespaces. This method will bind the given prefix to the associated namespace.

    Parameters
    prefixof type XMLCh - The prefix to bind.
    URIof type XMLCh - The associated namespace.

    Implements xercesc::DOMXPathNSResolver.

    virtual const XMLCh* XQillaNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const
    pure virtual

    Look up the namespace URI associated to the given namespace prefix.

    The XPath evaluator must never call this with a null or empty argument, because the result of doing this is undefined.

    Parameters
    prefixof type XMLCh - The prefix to look for.
    Returns
    the associated namespace URI or null if none is found.

    Implements xercesc::DOMXPathNSResolver.

    virtual const XMLCh* XQillaNSResolver::lookupPrefix ( const XMLCh *  uri) const
    pure virtual

    Non-standard extension.

    XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI The XPath evaluator must never call this with a null or empty argument, because the result of doing this is undefined.

    Parameters
    URIof type XMLCh - The namespace to look for.
    Returns
    the associated prefix or null if none is found.

    Implements xercesc::DOMXPathNSResolver.

    virtual void XQillaNSResolver::release ( )
    pure virtual

    Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.

    Implements xercesc::DOMXPathNSResolver.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMException_8hpp__incl.md50000644001725400016040000000004013273140077017206 000000000000002ddbc83098dfc5fb7258e5bb6a887e6fXQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__incl.map0000644001725400016040000000051113273140100017523 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNamedNodeMap-members.html0000644001725400016040000001317613273140100022410 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNamedNodeMap Member List

    This is the complete list of members for xercesc::DOMNamedNodeMap, including all inherited members.

    DOMNamedNodeMap()xercesc::DOMNamedNodeMapinlineprotected
    getLength() const =0xercesc::DOMNamedNodeMappure virtual
    getNamedItem(const XMLCh *name) const =0xercesc::DOMNamedNodeMappure virtual
    getNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMNamedNodeMappure virtual
    item(XMLSize_t index) const =0xercesc::DOMNamedNodeMappure virtual
    removeNamedItem(const XMLCh *name)=0xercesc::DOMNamedNodeMappure virtual
    removeNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName)=0xercesc::DOMNamedNodeMappure virtual
    setNamedItem(DOMNode *arg)=0xercesc::DOMNamedNodeMappure virtual
    setNamedItemNS(DOMNode *arg)=0xercesc::DOMNamedNodeMappure virtual
    ~DOMNamedNodeMap()xercesc::DOMNamedNodeMapinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__dep__incl.png0000644001725400016040000002117013273140100021772 00000000000000PNG  IHDR/bKGD IDATxy@Lǟ33MN5 i-V(馄m"bKҽKTʒq]~%*Y EQ(Ff9?;1M̜g3s30 ppppWa+0G u? `Xhv444/>@bbˬY>ӧĉuҮ]>&33*+0G#L~&o%XYYLJBp;::Nݻ`gr.[ѣ k"Coihh{Çmo޼A _| hmm}3 8|p}}}ttthhhqq瓓CBB߾}[<==cccO3g err2F9tЃR999^^^111͈.]k$&&n߾]]]=00PGG'!!'66*++ -..:u* H#F]paٲeGGGG[[y*,,_8(\o߾B&= f@9s&2$7nC=&y 6jiiX"==+W=zm xqqq,YDBB qㆯWQQRNJJjΜ9'N?7nܨhmm>}:N9 ##%$HaL&^vM\\L&F033\8GCCC__՜\Qd`XUUUjjj)))yyɓ'wP^^95kցVZ{0#xcc#F $eȑ#GQl 2~PSS9DTj|:x`{{򑸸3F[JZZ:<<<999>>^WWwɒ%&&&\@AA ֌H~+E0 _z9={ӧ'Nvtt?w0nܸǏ߻wo˖-|#4 1wT* 555G,])bDbCC"++:ndgg㳌Dr %+kM 93$7|`c}:*NN]]@CCNGG{!&]WGwv>5 1J;;f%`7l  -,B _}\,…>|b|A@O8̙cdrYb#n|8Q2l[۰: V_o Օ6 y]p_I$ 2(&F䚡Ƃ h|#2e" `ccUKK?rq~pv6& 1/AFfr?Wk5gH"(.n̰Reep u""Skg0`j:FR/DL&UU5~Zq"$%ݛ>]YѣAC*&Fyl=,ĉ7nwZΦ|n**z0:{6„֭tt_9Ȗ-޼yr1g>|u1 #f:;燋\;<~x 'զMNwI˞=9ppxiԥly=`ׯyy/lF77Sɛ7_8d:9E es)*J'&<>6ٽ{~~s^II񘘟>|s0kU #YFF#OGa,}};_N΋]_o|5 -+Wڎ[.- B  =\'C_ۻΟ/\ 22ã{n53yYYUh Aaal6d[~23WC[g[v'O梭E__|ztLMld祐WE_ϝ+PS̞7DTssZdsu51O@ mm"`ůo?kvto(䯿J/\(D[?_hf3jm!c@@C[ r&h m?b3z[\_]+#Ιc!QQuú,ի1 -/(۹s))"p_kkMD[H6Xl/"X_SSJJϚ5m!}#0pN&Z?5$l&2Cp5"+ F8e[OD.B…Lο}m-5=ӵuА>uie!~e0Xϭ@[weQKK}|/ZFDٯyy媪3'ZF1H߿XNNb3,m-!~e0XWN6m!aio%Uw\VPm-(ރH\\odggHB %5@!ϯW&|<{Vo4d&&&$VUo0Eد4#trrl18#))Gh_a.+8hNo8hѣZE -D"ANNm!8B1n5ã{V###iiS۷dr_6w\ .p.dhM~*/?k^^F&MjjjB>jnn2eJqqqhhΞ=kmmb}WYYYZZ ؘgpիWT@L***ꖖ/_ G>ڽ{bFFCQQQeee||vݺ3˗ŋ{Jqq1BaP__ߣHnn2Rٳg***>aIBBGpݭ^|#CCà}P=JǎKѐ&L@Jݹs{N~̄as2?z\{m*<˫3@PTTTJJJzd())>>D"XIIbbb...7nxɎ;ݗ-[o=yɓ'ׯ5BN>Mӏ9u988~ѣG<2 qqq?___uҥ<FcadǎK 5W#Fpww힡e˖-mmmH ;-[ѱuV555YYY77F$gpp0B3fLjj*6~t\t+<==[[[d0fffRRRE:Ѹ#GR 6sMruM3}fӯ8};6`~K^^ÇVU yR%vt0>#y28@Q:z%Pܿ24& gpo_54FTy> h᪪F&20A 03&?_xm6:͆ml ^ ~57)-}܁~qs3Yz&A\7nЫDܯ3fp^-HɤݻWJJxhE",0A 5q͛BaBY/Xd2YB"~̝;>-ퟯ]{w**9 ĵ#FkkȻ~#~7o|cckQ+{/;煬]:jUWWEOccwBzS ;w- }Dv~VwBCNNWT9dm} < m-;IՍ>$`2>>g(={"`¯zz*?rm!p7Ǐ7_S]{@[7-g?g>:8Ljmx44_f޼KN=7_et6^>ap.hktWVU ܢ/G=TFfZ uqTŋh WaasɓGE_Ĉ CǏm6$̚5v*s+ݴY@`޴<>D_d򫦦¬YcOA[ded;!~~ +VMdcѣ`98mk~o0e޿H$֭s/_?9i YS(&gܬWXh8п*`5p ܯAotӬFk=Ν A:::Ν APyy & 8"W@^^F&MjjrVss)SCCC߿pYkkkӂƕP(\_UTT---/_|{nEEŌ [[[]]]x$ٳ8^jaa5;y{{_~9MHH $?lURR?!!9Erɋ/V4mmm99@yy9AzzzJJJ7n8XW+¢899999 PVV=B0Q$77WYY)30$!!uL$O?DSRR eee/^hkkqM*.^k6,`!IDATgJ$h׌3[JKK?uttLLL鶹&ZVV6fBQQQ)))鑡dɜS''$yjjj&AƎ[UU#W.ݻ9)544֖bffܜ߂/ Jk}}}MMMuuuVV}EE͛ꬬn޼YVVveuuuNqdHellŏ]>~Ȼv___uҥ<qt?~È#kkkghiiٲeAppp[[,r_ x}}tqqq#GR6lhooU[:_ ˿~=5W x"rG8BFFˋD:X())EGG?_q ܯ8Wa+0GD IH$aa}5 zDկ8_q ܯ8Wa`IENDB`XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__incl.map0000644001725400016040000000047113273140101017401 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp.html0000644001725400016040000001121213273140101020122 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSResourceResolver.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMLSResourceResolver.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSResourceResolver
     DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntityReference.html0000644001725400016040000014565313273140101021572 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMEntityReference Class Reference

    DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...

    #include <DOMEntityReference.hpp>

    Inheritance diagram for xercesc::DOMEntityReference:

    Public Member Functions

    Destructor
    virtual ~DOMEntityReference ()
     Destructor. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMEntityReference ()
     
     DOMEntityReference (const DOMEntityReference &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference.

    Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the structure model, instead of providing DOMEntityReference objects. If it does provide such objects, then for a given DOMEntityReference node, it may be that there is no DOMEntity node representing the referenced entity. If such an DOMEntity exists, then the subtree of the DOMEntityReference node is in general a copy of the DOMEntity node subtree. However, this may not be true when an entity contains an unbound namespace prefix. In such a case, because the namespace prefix resolution depends on where the entity reference is, the descendants of the DOMEntityReference node may be bound to different namespace URIs.

    As for DOMEntity nodes, DOMEntityReference nodes and all their descendants are readonly.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMEntityReference::DOMEntityReference ( )
    inlineprotected
    xercesc::DOMEntityReference::DOMEntityReference ( const DOMEntityReference other)
    inlineprotected
    virtual xercesc::DOMEntityReference::~DOMEntityReference ( )
    inlinevirtual

    Destructor.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp__incl.md50000644001725400016040000000004013273140077017005 00000000000000f030aceae7f267dbfc4bc570f298afe9XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__incl.md50000644001725400016040000000004013273140077020003 00000000000000b9d499169067646a1dc8b7cc102e16afXQilla-2.3.4/docs/dom3-api/tab_a.png0000644001725400016040000000021613273140077013757 00000000000000PNG  IHDR$[UIDATxK 0C'o([Ž%x#٩ We# 3t I 3+E~\D9wM}Y_A4Y}IENDB`XQilla-2.3.4/docs/dom3-api/classXQillaAllocator-members.html0000644001725400016040000002015713273140077020610 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp > Member List

    This is the complete list of members for XQillaAllocator< _Tp >, including all inherited members.

    _memMgrXQillaAllocator< _Tp >
    _singletonXQillaAllocator< _Tp >
    allocate(size_t _n, const void *=0)XQillaAllocator< _Tp >inline
    const_pointer typedefXQillaAllocator< _Tp >
    const_reference typedefXQillaAllocator< _Tp >
    construct(pointer _p, const_reference _v)XQillaAllocator< _Tp >inline
    deallocate(void *_p, size_t _n)XQillaAllocator< _Tp >inline
    destroy(pointer _p)XQillaAllocator< _Tp >inline
    difference_type typedefXQillaAllocator< _Tp >
    max_size() const XQillaAllocator< _Tp >inline
    max_size(size_type) const XQillaAllocator< _Tp >inline
    operator!=(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp >inline
    operator!=(XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp >inline
    operator==(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp >inline
    pointer typedefXQillaAllocator< _Tp >
    reference typedefXQillaAllocator< _Tp >
    size_type typedefXQillaAllocator< _Tp >
    value_type typedefXQillaAllocator< _Tp >
    XQillaAllocator()XQillaAllocator< _Tp >inline
    XQillaAllocator(xercesc::MemoryManager *memMgr)XQillaAllocator< _Tp >inline
    XQillaAllocator(const XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp >inline
    XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp__incl.md50000644001725400016040000000004013273140077017303 0000000000000072237d4d9aa933ba52f5f202a12304cbXQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp_source.html0000644001725400016040000003736613273140077021074 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathExpression.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathExpression.hpp 698579 2008-09-24 14:13:08Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSION_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class DOMNode;
    31 
    36 class CDOM_EXPORT DOMXPathExpression
    37 {
    38 
    39 protected:
    40  // -----------------------------------------------------------------------
    41  // Hidden constructors
    42  // -----------------------------------------------------------------------
    47 
    48 private:
    49  // -----------------------------------------------------------------------
    50  // Unimplemented constructors and operators
    51  // -----------------------------------------------------------------------
    55  DOMXPathExpression& operator = (const DOMXPathExpression&);
    57 
    58 public:
    59  // -----------------------------------------------------------------------
    60  // All constructors are hidden, just the destructor is available
    61  // -----------------------------------------------------------------------
    68  virtual ~DOMXPathExpression() {};
    70 
    71  // -----------------------------------------------------------------------
    72  // Virtual DOMXPathExpression interface
    73  // -----------------------------------------------------------------------
    76 
    106  virtual DOMXPathResult* evaluate(const DOMNode *contextNode,
    108  DOMXPathResult* result) const = 0;
    110 
    111  // -----------------------------------------------------------------------
    112  // Non-standard Extension
    113  // -----------------------------------------------------------------------
    122  virtual void release() = 0;
    124 
    125 };
    126 
    127 XERCES_CPP_NAMESPACE_END
    128 
    129 #endif
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node.
    Definition: DOMXPathResult.hpp:46
    DOMXPathExpression()
    Definition: DOMXPathExpression.hpp:45
    virtual ~DOMXPathExpression()
    Destructor.
    Definition: DOMXPathExpression.hpp:68
    The DOMXPathExpression interface represents a parsed and resolved XPath expression.
    Definition: DOMXPathExpression.hpp:36
    ResultType
    Definition: DOMXPathResult.hpp:163
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentRange.html0000644001725400016040000002041413273140101021215 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentRange Class Referenceabstract

    #include <DOMDocumentRange.hpp>

    Inheritance diagram for xercesc::DOMDocumentRange:

    Public Member Functions

    Destructor
    virtual ~DOMDocumentRange ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual DOMRangecreateRange ()=0
     
     To create the range  consisting of boundary-points and offset of the
    

    selected contents More...

     

    Protected Member Functions

    Hidden constructors
     DOMDocumentRange ()
     

    Detailed Description

    Constructor & Destructor Documentation

    xercesc::DOMDocumentRange::DOMDocumentRange ( )
    inlineprotected
    virtual xercesc::DOMDocumentRange::~DOMDocumentRange ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMRange* xercesc::DOMDocumentRange::createRange ( )
    pure virtual

     To create the range  consisting of boundary-points and offset of the
    

    selected contents

    Returns
    The initial state of the Range such that both the boundary-points are positioned at the beginning of the corresponding DOMDOcument, before any content. The range returned can only be used to select content associated with this document, or with documentFragments and Attrs for which this document is the ownerdocument
    Since
    DOM Level 2

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_12.md50000644001725400016040000000004013273140100015715 00000000000000d2d4f6bf1ee94e6fe6a98d4c7d579a16XQilla-2.3.4/docs/dom3-api/classXQillaNSResolver-members.html0000644001725400016040000001035613273140077020732 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaNSResolver Member List

    This is the complete list of members for XQillaNSResolver, including all inherited members.

    addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0XQillaNSResolverpure virtual
    DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlineprotected
    lookupNamespaceURI(const XMLCh *prefix) const =0XQillaNSResolverpure virtual
    lookupPrefix(const XMLCh *uri) const =0XQillaNSResolverpure virtual
    release()=0XQillaNSResolverpure virtual
    XQillaNSResolver()XQillaNSResolverinlineprotected
    ~DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classes.html0000644001725400016040000003504413273140100014520 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Class Index
    A | D | M | R | S | X
      A  
    DOMImplementationRegistry (xercesc)   DOMXPathEvaluator (xercesc)   
    DOMImplementationSource (xercesc)   DOMXPathException (xercesc)   
    AutoDeallocate   DOMLocator (xercesc)   DOMXPathExpression (xercesc)   
    AutoDelete   DOMLSException (xercesc)   DOMXPathNamespace (xercesc)   
    AutoDeleteArray   DOMLSInput (xercesc)   DOMXPathNSResolver (xercesc)   
    AutoRelease   DOMLSOutput (xercesc)   DOMXPathResult (xercesc)   
      D  
    DOMLSParser (xercesc)   
      M  
    DOMLSParserFilter (xercesc)   
    DOMAttr (xercesc)   DOMLSResourceResolver (xercesc)   MemoryManager (xercesc)   
    DOMCDATASection (xercesc)   DOMLSSerializer (xercesc)   
      R  
    DOMCharacterData (xercesc)   DOMLSSerializerFilter (xercesc)   
    DOMComment (xercesc)   DOMMemoryManager (xercesc)   XQillaAllocator::rebind   
    DOMConfiguration (xercesc)   DOMNamedNodeMap (xercesc)   
      S  
    DOMDocument (xercesc)   DOMNode (xercesc)   
    DOMDocumentFragment (xercesc)   DOMNodeFilter (xercesc)   StDOMNode (xercesc)   
    DOMDocumentRange (xercesc)   DOMNodeIterator (xercesc)   
      X  
    DOMDocumentTraversal (xercesc)   DOMNodeList (xercesc)   
    DOMDocumentType (xercesc)   DOMNotation (xercesc)   XMLDeleter (xercesc)   
    DOMElement (xercesc)   DOMProcessingInstruction (xercesc)   XMLPlatformUtils (xercesc)   
    DOMEntity (xercesc)   DOMPSVITypeInfo (xercesc)   XPath2MemoryManager   
    DOMEntityReference (xercesc)   DOMRange (xercesc)   XPath2Result   
    DOMError (xercesc)   DOMRangeException (xercesc)   XQillaAllocator   
    DOMErrorHandler (xercesc)   DOMStringList (xercesc)   XQillaExpression   
    DOMException (xercesc)   DOMText (xercesc)   XQillaNSResolver   
    DOMImplementation (xercesc)   DOMTreeWalker (xercesc)   XQillaPlatformUtils   
    DOMImplementationList (xercesc)   DOMTypeInfo (xercesc)   
    DOMImplementationLS (xercesc)   DOMUserDataHandler (xercesc)   
    A | D | M | R | S | X
    XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__incl.map0000644001725400016040000000007513273140101017537 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNotation.html0000644001725400016040000014702413273140101020264 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNotation Class Referenceabstract

    This interface represents a notation declared in the DTD. More...

    #include <DOMNotation.hpp>

    Inheritance diagram for xercesc::DOMNotation:

    Public Member Functions

    Destructor
    virtual ~DOMNotation ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getPublicId () const =0
     Get the public identifier of this notation. More...
     
    virtual const XMLCh * getSystemId () const =0
     Get the system identifier of this notation. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNotation ()
     
     DOMNotation (const DOMNotation &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    This interface represents a notation declared in the DTD.

    A notation either declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification), or is used for formal declaration of Processing Instruction targets (see section 2.6 of the XML 1.0 specification). The nodeName attribute inherited from DOMNode is set to the declared name of the notation.

    The DOM Level 1 does not support editing DOMNotation nodes; they are therefore readonly.

    A DOMNotation node does not have any parent.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMNotation::DOMNotation ( )
    inlineprotected
    xercesc::DOMNotation::DOMNotation ( const DOMNotation other)
    inlineprotected
    virtual xercesc::DOMNotation::~DOMNotation ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMNotation::getPublicId ( ) const
    pure virtual

    Get the public identifier of this notation.

    If the public identifier was not specified, this is null.

    Returns
    Returns the public identifier of the notation
    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNotation::getSystemId ( ) const
    pure virtual

    Get the system identifier of this notation.

    If the system identifier was not specified, this is null.

    Returns
    Returns the system identifier of the notation
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_27.map0000644001725400016040000000044413273140101016024 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_32.map0000644001725400016040000000077213273140101016024 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMAttr-members.html0000644001725400016040000006004113273140077021040 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMAttr Member List

    This is the complete list of members for xercesc::DOMAttr, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMAttr()xercesc::DOMAttrinlineprotected
    DOMAttr(const DOMAttr &other)xercesc::DOMAttrinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getName() const =0xercesc::DOMAttrpure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getOwnerElement() const =0xercesc::DOMAttrpure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getSchemaTypeInfo() const =0xercesc::DOMAttrpure virtual
    getSpecified() const =0xercesc::DOMAttrpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getValue() const =0xercesc::DOMAttrpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isId() const =0xercesc::DOMAttrpure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    setValue(const XMLCh *value)=0xercesc::DOMAttrpure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMAttr()xercesc::DOMAttrinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/functions_0x6d.html0000644001725400016040000001255513273140100015736 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - m -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_11.map0000644001725400016040000000035013273140101016011 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSParser-members.html0000644001725400016040000002646413273140100021617 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSParser Member List

    This is the complete list of members for xercesc::DOMLSParser, including all inherited members.

    abort()=0xercesc::DOMLSParserpure virtual
    ACTION_APPEND_AS_CHILDREN enum valuexercesc::DOMLSParser
    ACTION_INSERT_AFTER enum valuexercesc::DOMLSParser
    ACTION_INSERT_BEFORE enum valuexercesc::DOMLSParser
    ACTION_REPLACE enum valuexercesc::DOMLSParser
    ACTION_REPLACE_CHILDREN enum valuexercesc::DOMLSParser
    ActionType enum namexercesc::DOMLSParser
    DOMLSParser()xercesc::DOMLSParserinlineprotected
    getAsync() const =0xercesc::DOMLSParserpure virtual
    getBusy() const =0xercesc::DOMLSParserpure virtual
    getDomConfig()=0xercesc::DOMLSParserpure virtual
    getFilter() const =0xercesc::DOMLSParserpure virtual
    getGrammar(const XMLCh *const nameSpaceKey) const =0xercesc::DOMLSParserpure virtual
    getRootGrammar() const =0xercesc::DOMLSParserpure virtual
    getSrcOffset() const =0xercesc::DOMLSParserpure virtual
    getURIText(unsigned int uriId) const =0xercesc::DOMLSParserpure virtual
    loadGrammar(const DOMLSInput *source, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParserpure virtual
    loadGrammar(const XMLCh *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParserpure virtual
    loadGrammar(const char *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParserpure virtual
    parse(const DOMLSInput *source)=0xercesc::DOMLSParserpure virtual
    parseURI(const XMLCh *const uri)=0xercesc::DOMLSParserpure virtual
    parseURI(const char *const uri)=0xercesc::DOMLSParserpure virtual
    parseWithContext(const DOMLSInput *source, DOMNode *contextNode, const ActionType action)=0xercesc::DOMLSParserpure virtual
    release()=0xercesc::DOMLSParserpure virtual
    resetCachedGrammarPool()=0xercesc::DOMLSParserpure virtual
    resetDocumentPool()=0xercesc::DOMLSParserpure virtual
    setFilter(DOMLSParserFilter *const filter)=0xercesc::DOMLSParserpure virtual
    ~DOMLSParser()xercesc::DOMLSParserinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__dep__incl.md50000644001725400016040000000004013273140077020607 00000000000000f173144d13162c931641ca75604b0303XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__dep__incl.md50000644001725400016040000000004013273140077022007 00000000000000b4c4c69e4fe2e0b0cc7586a93c445933XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.map0000644001725400016040000000040313273140101025132 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_2.map0000644001725400016040000000032213273140101015730 00000000000000 XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp__dep__incl.png0000644001725400016040000001020713273140101021145 00000000000000PNG  IHDRpWVbKGD}44j0ŋ5)W@RRhs-`Nig0W^E:__vxV"FEE},ĉJ  uN 7Q4Po"-[ZPP ɐ˖-ꫯ|^9BPFE{d\]]CCC322̙cee588bXd29::ٹȑ#7oloofرcd29--mܹT*u999666.}}}E]]]dGlll]]RJ&TjLL@ x왾KiXYYyĉDҥKx1Ǎf͚˗/ݸqc~~~+W3&۷geer߿^gpxy<^```ssFnMMM!!!'Nuuuaaar\8ܖ9#sss >}:]h4FeWW׎ رյb=}ě7o^xQxVb===D,'O9r.*))MIIx|?cXX% СC=O:g0haa38\ӉkА\.w޽{ihh@{^_x<Ec!AG6D"ȑ#AJFGGgdd3gNqqCfΜyjtݺu˗/_|Uʸ8''' 6r XL$Ο?oaaP(\qF _\t %ݻ333={qi{`` D裏bTu됅B32˗/ߺu+--f/Zh+++;;;>WSL)A 8p@,kk׮%''D"~ŋ srr \ J=.zʕ+iii%%%nnnsWT&M9;;?zieaa1iӦ]~=//op[hT*i,Tz;ɓ3gN0sرYf~uJRpt\.ԨnY^^+޽{ʔ)`<==ϟ?ϯ xؤ>>a===?^XX|rDLEEؤLPx|__Djjj:z(36_.\p…$B!44yϞ=QQQŴbXw?~|pp0HHH(++Ө?755 Ǐ k׮ёD"D"\~=[p D_;iҤ;wD@\\\fffLL%KBBBԻMhѢE!vǏ'sYf!N|||6o,H P qá|zΝ}jP(Z[[g̘ao*B044fTqT՟Oy,=CXZZ`N!dM^D| 04ZF hAa<0 KooI 7L$>>^\~?m[Iaa]Iyyi>JA8-+x/@׮{Lr˕NǨ2 I^kt J `f/-iꌌ xY*JBuBԴ)9]ZzJ.WVU0#E"qM]B(x<(-m2aJF-NWTR?[]o hqΟen\L*54)wU*$)T8}ob55)T8]ZڤTtAr3r>&e~anNliR%*H$"Rۢ{uܭLAE04ZF hs-`Ni904ZF hs-`Ni904ZF hs-`Ni904ZF hs-`Ni9 |scff=n/M4ω@ * ͐f޼yL&ӀQO?dh804ZF ci>^{C"p8u XtL&oݺY\.߼yeL3vppطo,.r|>B2uF/>ws?ԩSnnn**33ښN]nyyٳI$B!Jerr`ӧk׮uppR[lH$wQwwwGG}?~|666| ʕ+'Nt|OFݻ3^={vrrJ:EClT}06@qqu#"">|8qĆrssΜ9UQQR>H$"۫T&M0۷o{9((H$V^-rss?Fb* Pb OD"Qii) Nuҥ4GݤL&d!t?J@w-,,D*#;-Jϟ+Z"ܴd233;w3gh43ǃ H&iLMNNXYYutthիW!R*p+8۷oi4NqMjX:N薖+fB*xxxH$}ᇅN===JނEOkLe˖uօhwxmIW׿;ȲtFèNwvvfffl޼Vo+Xzj6񲲲sMpĉfff_^v[ %<pBbbARL&#bxΝ 111w077 su(ʄ֮zyy={6rø8>ظm۶Daa6Ngdd2 2 'v5}t+++:~I08 APjjɓԗP(i4%NS(xX 猌:"""T >Q[O:aƍbX8&}FErai3a„ 6hdƖe닓SNN΋Ffl9F hs-k8n޼y'O6H4 7tӧ `{ N7)ji904ZC;'IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMMemoryManager.html0000644001725400016040000005562713273140100021242 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMMemoryManager Class Referenceabstract

    The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...

    #include <DOMMemoryManager.hpp>

    Public Types

    enum  NodeObjectType {
      ATTR_OBJECT = 0, ATTR_NS_OBJECT = 1, CDATA_SECTION_OBJECT = 2, COMMENT_OBJECT = 3,
      DOCUMENT_FRAGMENT_OBJECT = 4, DOCUMENT_TYPE_OBJECT = 5, ELEMENT_OBJECT = 6, ELEMENT_NS_OBJECT = 7,
      ENTITY_OBJECT = 8, ENTITY_REFERENCE_OBJECT = 9, NOTATION_OBJECT = 10, PROCESSING_INSTRUCTION_OBJECT = 11,
      TEXT_OBJECT = 12
    }
     

    Public Member Functions

    Destructor
    virtual ~DOMMemoryManager ()
     Destructor. More...
     
    virtual XMLSize_t getMemoryAllocationBlockSize () const =0
     Returns the size of the chunks of memory allocated by the memory manager. More...
     
    virtual void setMemoryAllocationBlockSize (XMLSize_t size)=0
     Set the size of the chunks of memory allocated by the memory manager. More...
     
    virtual void * allocate (XMLSize_t amount)=0
     Allocate a memory block of the requested size from the managed pool. More...
     
    virtual void * allocate (XMLSize_t amount, DOMMemoryManager::NodeObjectType type)=0
     Allocate a memory block of the requested size from the managed pool of DOM objects. More...
     
    virtual void release (DOMNode *object, DOMMemoryManager::NodeObjectType type)=0
     Release a DOM object and place its memory back in the pool. More...
     
    virtual XMLCh * cloneString (const XMLCh *src)=0
     Allocate a memory block from the mnaged pool and copy the provided string. More...
     

    Protected Member Functions

    Hidden constructors
     DOMMemoryManager ()
     

    Detailed Description

    The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument

    Member Enumeration Documentation

    Enumerator
    ATTR_OBJECT 
    ATTR_NS_OBJECT 
    CDATA_SECTION_OBJECT 
    COMMENT_OBJECT 
    DOCUMENT_FRAGMENT_OBJECT 
    DOCUMENT_TYPE_OBJECT 
    ELEMENT_OBJECT 
    ELEMENT_NS_OBJECT 
    ENTITY_OBJECT 
    ENTITY_REFERENCE_OBJECT 
    NOTATION_OBJECT 
    PROCESSING_INSTRUCTION_OBJECT 
    TEXT_OBJECT 

    Constructor & Destructor Documentation

    xercesc::DOMMemoryManager::DOMMemoryManager ( )
    inlineprotected
    virtual xercesc::DOMMemoryManager::~DOMMemoryManager ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void* xercesc::DOMMemoryManager::allocate ( XMLSize_t  amount)
    pure virtual

    Allocate a memory block of the requested size from the managed pool.

    Parameters
    amountthe size of the new memory block
    Returns
    the pointer to the newly allocated block
    virtual void* xercesc::DOMMemoryManager::allocate ( XMLSize_t  amount,
    DOMMemoryManager::NodeObjectType  type 
    )
    pure virtual

    Allocate a memory block of the requested size from the managed pool of DOM objects.

    Parameters
    amountthe size of the new memory block
    typethe type of the DOM object that will be stored in the block
    Returns
    the pointer to the newly allocated block
    virtual XMLCh* xercesc::DOMMemoryManager::cloneString ( const XMLCh *  src)
    pure virtual

    Allocate a memory block from the mnaged pool and copy the provided string.

    Parameters
    srcthe string to be copied
    Returns
    the pointer to the newly allocated block
    virtual XMLSize_t xercesc::DOMMemoryManager::getMemoryAllocationBlockSize ( ) const
    pure virtual

    Returns the size of the chunks of memory allocated by the memory manager.

    Returns
    the dimension of the chunks of memory allocated by the memory manager
    virtual void xercesc::DOMMemoryManager::release ( DOMNode object,
    DOMMemoryManager::NodeObjectType  type 
    )
    pure virtual

    Release a DOM object and place its memory back in the pool.

    Parameters
    objectthe pointer to the DOM node
    typethe type of the DOM object
    virtual void xercesc::DOMMemoryManager::setMemoryAllocationBlockSize ( XMLSize_t  size)
    pure virtual

    Set the size of the chunks of memory allocated by the memory manager.

    Parameters
    sizethe new size of the chunks; it must be greater than 4KB

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_8.png0000644001725400016040000000440213273140101015750 00000000000000PNG  IHDR%2CbKGDIDATxiL]ol]V%PPфC*F 4 1!P nDZE0-B$y*o}s=ә;AXkV: $`B, XKbޱ@ + *,,[/ghhƍzF+`Ϟ=%%$qqqzFX^!W%bIz%زeKbbaffZYYܹʕ+ MA"hcyH$lbyYNݪWׯGFF 4zJTرݻwYYYUUUZuJ>|Bϟ~~*D3g~,yVsh4&wz<r###߾}+JQ{Ơ馦@RSqM<˩F&)333y>`0t:ϟGo ---mmm9994-11MMM>>>ׯwqq,,,>fDرc?F+++D"a>_YYb[DGG|=OOO_QQuVkk/b)544xxx94z*`Tѣ۷S(GGGٛ>|0JeXFpRe,FbbCFGG ƛ7oPcAAATTԷo߄Bٳgb1 <<ٳg^^^BǏT*jݺu%%%###w]vJvQtiia 9wuu ~&&&+j~{4,Bb EYY 66VPܹs099@XXXooogg'EhL3h\^ZZ wP(drRR0;</88O(z{{ot8Fߋyjjj =Yrb#Ap8###hy۶mhrBA:ϟJ&HׯrNT*Z))QT*Ӟ8q"++ AP|LzFDb1~a531ͨZ[[ {G|RZm{{h4D"Q$:6m4y]߬e_mll?}tq(JGЁpnnn3""”ֶbxb͚5KG,;889c111A3+++Dkc`s8a)Sf>)a(d2߿pƴZ-:W6l&!Fq)B3,S?44t֭ HR\.D𜜜R)j|)Zt@&=zt2̔| r}<///6033SPPr1K``R|ess~;=Ћ ]r SfS*3Vccc|~wwwqq H$}}}L&sF{4\ǥˍztIIIO>mjjB푑YYYBU ϟD"ɓT!,,Ç BѐH$ bJtLLL~=""b``'O&]Ĩ]veLƩS$IWW׹s>NYd{{{GGtZm*Ê1\G`tJ266OB"*,zS@V^,6mJIIY,V^,t:dX=zX^!W%bI{!/3 +WzzbqX," gbIzX^!W%/%[opIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_30.md50000644001725400016040000000004013273140100015715 0000000000000093cbd43cdbbec4efce2b5bcdc62ad10eXQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp__incl.md50000644001725400016040000000004013273140077020766 00000000000000d3d5d09ec13f76e56cecb7142d47b18aXQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__incl.map0000644001725400016040000000027113273140100017751 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_cf50e6b7905ca68e8eacb67c516ef759_dep.md50000644001725400016040000000004013273140100021023 00000000000000bca1ad96bdd0e292c3f0c2a7e717d314XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp_source.html0000644001725400016040000004152413273140077020765 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMUserDataHandler.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMUserDataHandler.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMUSERDATAHANDLER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMUSERDATAHANDLER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    40 class CDOM_EXPORT DOMUserDataHandler {
    41 protected:
    42  // -----------------------------------------------------------------------
    43  // Hidden constructors
    44  // -----------------------------------------------------------------------
    49 
    50 private:
    51  // -----------------------------------------------------------------------
    52  // Unimplemented constructors and operators
    53  // -----------------------------------------------------------------------
    57  DOMUserDataHandler & operator = (const DOMUserDataHandler &);
    59 
    60 public:
    61  // -----------------------------------------------------------------------
    62  // All constructors are hidden, just the destructor is available
    63  // -----------------------------------------------------------------------
    70  virtual ~DOMUserDataHandler() {};
    72 
    73  // -----------------------------------------------------------------------
    74  // Class Types
    75  // -----------------------------------------------------------------------
    99  NODE_CLONED = 1,
    100  NODE_IMPORTED = 2,
    101  NODE_DELETED = 3,
    102  NODE_RENAMED = 4,
    103  NODE_ADOPTED = 5
    104  };
    106 
    107 
    108  // -----------------------------------------------------------------------
    109  // Virtual DOMUserDataHandler interface
    110  // -----------------------------------------------------------------------
    127  virtual void handle(DOMOperationType operation,
    128  const XMLCh* const key,
    129  void* data,
    130  const DOMNode* src,
    131  DOMNode* dst) = 0;
    132 
    134 
    135 };
    136 
    137 XERCES_CPP_NAMESPACE_END
    138 
    139 #endif
    140 
    virtual ~DOMUserDataHandler()
    Destructor.
    Definition: DOMUserDataHandler.hpp:70
    When associating an object to a key on a node using setUserData the application can provide a handler...
    Definition: DOMUserDataHandler.hpp:40
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMUserDataHandler()
    Definition: DOMUserDataHandler.hpp:47
    DOMOperationType
    Operation Type.
    Definition: DOMUserDataHandler.hpp:98
    XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__dep__incl.png0000644001725400016040000000637113273140100020706 00000000000000PNG  IHDRpbKGD IDATxkPSG$Rn%R H&hi)DQ2C!f )8Elm`ӱNXFA(m@PFH$ p1 1$,}v>iZx& ] 'HW8&RRR$xdrnn%K$;0^i hllD6m“lnF!F$_ 'HW8A#!66677W. ή]JJJ}V?S&)J.*`˖-oV||P(4eTd2M/3B>l|>}zz͛III?@Tx<'''.qGvvv߿D"||| Ewwqwruuq Err,888lٲiA'hE|eeexֱch4Z~~~PPWhh@ 8y$^ 00PwFҲb Ο?`0h4rrrss,,\0))iAt|0,** Oo߾?5qbccdxxxcc#Ϟ=vZ.TjUU(D&4@ `l6[ h4a}$RXX[[[,X`|+WDԩS[n=}ɬ'O޽N{{{svܞ`gg'͛wdggg|ullHcjjjn߾G=͛7S5k nx^^^~! qMzH$âEbq``nXtR"&$$[ZZ}}}}}}mO? e$ 000Mcooo,^X~ "HT*Kk׮{aˋkhhȈ|TWV[]]oɈcǎCy???RyʕTggg/^Z7Xp<==S剉`ZMfRBB(D"ܼyaFy8,ܹ3<<_d22Ž;FFFRRR%ɹsx<{%K VN0Wmmm2쯿*((H#Yk׮WUUZh4 errJ}݆ /_k4ĉ;KҫW[Έ||%F:"P#GB@p-wwwpd2?fTА?JR'''&sNHMMgXqqqx3 _KtbHF0Lh}N~ƍ5h)))+ ] 'HW8_■SF )ILcɎgd+_LhJKK-K$ڻ38\[pt+ ]vutXd>?66|rGGUVh4b_+~m bLG3"$P(}7r9P(V\ѱo߾/ݻdݺuSS_ ͖###MMMV胕i]]]]<==Lfee𬬬,WWӧOGFF.]>hoo x1׮]k>X U vu qtt|`0V^7aMv/_H$9NYYV5?G`*kh]ZmAA d\\\VVqvIX֬YP(Ο?___ðF<zzzpfAlZסTzY6}<+##,r՞<\.7((N\TTt6޽[,wtt|FtM/b\\n{.[JJ566:g:IYTTK/|*ʠd/5o]].9F0it5 \9Fj:.1,HW8A NpbL7md-ז588~pZޯUʝs軃s 4 NptzRk_!2IENDB`XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp_source.html0000644001725400016040000003544013273140077017552 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNotation.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNotation.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNOTATION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNOTATION_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    44 class CDOM_EXPORT DOMNotation: public DOMNode {
    45 protected:
    46  // -----------------------------------------------------------------------
    47  // Hidden constructors
    48  // -----------------------------------------------------------------------
    52  DOMNotation(const DOMNotation &other) : DOMNode(other) {}
    54 
    55 private:
    56  // -----------------------------------------------------------------------
    57  // Unimplemented constructors and operators
    58  // -----------------------------------------------------------------------
    61  DOMNotation & operator = (const DOMNotation &);
    63 
    64 public:
    65  // -----------------------------------------------------------------------
    66  // All constructors are hidden, just the destructor is available
    67  // -----------------------------------------------------------------------
    74  virtual ~DOMNotation() {};
    76 
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMNotation interface
    80  // -----------------------------------------------------------------------
    83  // -----------------------------------------------------------------------
    84  // Getter methods
    85  // -----------------------------------------------------------------------
    94  virtual const XMLCh *getPublicId() const = 0;
    95 
    104  virtual const XMLCh *getSystemId() const = 0;
    105 
    106 
    108 };
    109 
    110 XERCES_CPP_NAMESPACE_END
    111 
    112 #endif
    113 
    114 
    DOMNotation(const DOMNotation &other)
    Definition: DOMNotation.hpp:52
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMNotation()
    Definition: DOMNotation.hpp:51
    This interface represents a notation declared in the DTD.
    Definition: DOMNotation.hpp:44
    virtual ~DOMNotation()
    Destructor.
    Definition: DOMNotation.hpp:74
    XQilla-2.3.4/docs/dom3-api/DOMError_8hpp__dep__incl.png0000644001725400016040000000537413273140100017431 00000000000000PNG  IHDRupXbKGD IDATxyLgK}π\, $(*j D'xbZ ^ !$P) <~%@PǼk)P*-d3vg3Jdƻ-/Z_Щ ՚ fO~KKK?~5֍(| 0_ȉ'ƮE8тE  ׷a&֋/p8  {|X\ZZjggG۷:s VC_@RRT* wޝ2e @&q8ss[[ۺ;w]tFkkkY,J*VUU K_б`0SNXdɩSLfzz:\`0=<<\nss˗/ae˖U999 nF%bÆ %%%p177wǎPL<988877.zyyEWZ5VD"wEEEPPPNN:ƍl7N\]]VUYYYHHH@@Ț oxڵ>A޾ F$,˗/0`Z@wwwEE5\.rUZZڑ#G+Wp܄>ѣ|ۇx0ٳsΝ={Ç>"8"tG AJi4g^^*..^p5ݻՊ׷pHD ś7oܹ;w޼yח01AAAT nԂaaa#hkk 2eԩSBe˨BٳE// .ڵKc0}ƌjvR kiiʴiK5h QT*Uvvʕ+᢯oJJ yrG… e2YuuuYY,"(44Tm5%..2--h~I@@6A~&/Z_`h~Ѣr3"}fiiSHE`gv`0t]*ɯSX(`2> ffV}} 9ן!f-^N,h(i>- +} ſno"7$-1 99kAe1 e4ڏo#ƱIZb~%YAABU*=fgWj@a~>-S*dT*KJj;ƥIڣ~~(/Wiy^~bH+t6g2g2|;M&t#~O=v?aY} -/Z_`h~тE -/Z_`h~тE -/Z_`h~тE -/Z_`h~тE ݆58&Ov422=:: :&11Hu1HhgC-E -/Z%(;vPY;&&fŦ+V8{B :::qڵAEEEb199sҥJ˗/ 山<#'N^PP r666pL˗/U񖖖_={͛KKK듓a___Qvv63c zq8$&&&55.촴4x֭[իW,ܹsPHDVV֜9s۫1jo!==yD@@|R---jE aϟ?|QRI$ccցuׯ 5kjjjJJJX,ɓ'5 8%4w4lŸ?6$455ݴi/^ttttqq9s yZh D ̚5 `0lll*+֩έfU*НNC @N4w\ "ԯJqƺubHHH||>>999 33ΎaleeEut 3QTTP(G " ݺmo$ӧO +5CWWׁ,X`ll<ӧOd2,_ 4 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp_source.html0000644001725400016040000003226213273140077020117 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMCDATASection.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMCDATASection.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMCDATASECTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMCDATASECTION_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMText.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    65 class CDOM_EXPORT DOMCDATASection: public DOMText {
    66 protected:
    67  // -----------------------------------------------------------------------
    68  // Hidden constructors
    69  // -----------------------------------------------------------------------
    73  DOMCDATASection(const DOMCDATASection &other) : DOMText(other) {}
    75 
    76 private:
    77  // -----------------------------------------------------------------------
    78  // Unimplemented constructors and operators
    79  // -----------------------------------------------------------------------
    82  DOMCDATASection & operator = (const DOMCDATASection &);
    84 
    85 public:
    86  // -----------------------------------------------------------------------
    87  // All constructors are hidden, just the destructor is available
    88  // -----------------------------------------------------------------------
    95  virtual ~DOMCDATASection() {};
    97 
    98 };
    99 
    100 XERCES_CPP_NAMESPACE_END
    101 
    102 #endif
    103 
    104 
    virtual ~DOMCDATASection()
    Destructor.
    Definition: DOMCDATASection.hpp:95
    CDATA sections are used to escape blocks of text containing characters that would otherwise be regard...
    Definition: DOMCDATASection.hpp:65
    DOMCDATASection(const DOMCDATASection &other)
    Definition: DOMCDATASection.hpp:73
    The DOMText interface inherits from DOMCharacterData and represents the textual content (termed chara...
    Definition: DOMText.hpp:51
    DOMCDATASection()
    Definition: DOMCDATASection.hpp:72
    XQilla-2.3.4/docs/dom3-api/inherit_graph_3.map0000644001725400016040000000031213273140101015730 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__incl.png0000644001725400016040000005633613273140100017516 00000000000000PNG  IHDRe`*_bKGD IDATxy ǟ1F!RYE-ݺjmk+jl۱kuQYG*HD ьfgLygk~p)@ __@ ~~SQQ{nVr֭%K|W`ǏHO8p@: ?c" // @@  >quuѱ߸q*'ʕ+$pʔ)K.hZ}}Hljk׮(}}}OBBB޼yg###oo)SY4ڵk֭[|9/t0333I4ʕ+d2YKKk222c+V/9Օs L_Ξ=K$lvuu;w._hoo߸q/]'NHII?|>ׯ_srniiYvI8 //ŋ_~ƍh )))کΝ;yf5@YY$ӧO744|hkkuvvF?BrhSN姳$- nhh|tmt…'NFDDܾ};==ѣN?ۥР7nO>=w/\]/v1{=zȑ#/^?z @Gp8H)SMϟ5 G/ݻw?~:u*`ԩN2vQF_˗/ONNF?JLLܺu볲[SSS]vT"LIID5k85y)**~pdyyɓ'8qFkkkr ~wvFOO^ZZ:f_}ձc|}}4F*++wÆ h@JJ Ś;w.T^###㫯^r+WBCCњH}}=wIAA`oz*Blf}}F&Uቆ槜r 9Y @O8}v5NmqƍsBF^PPKߒstt4ڧ$&,f٩6mzRSS{YFKA:TVVpƍUQQJMMMMM544OKKKOԤH$ GŊgNmuu5j(=B ~L&^~o>xbUVQ(۷gee}D"nnn=)LHHhkk8{lmmw{ @H?#7oF_hkk]xQAA xbDDDhhh]]H>}@5..n]rVUUxbHHȁh4Ç9^NIIqttvsss==TsssW{;wFFF֪^{upS_^JJ# cĉׯ5j…<.w֭gϞݰa@6mwO{77;vttt3G^C cAsF1] \?@O "_1۷o'/ @@  /b/_VY!"~]cB0@Xᔕ׮rrkU戨_$&曚jic-3}􌌽q`ļ@0DD7fc{ttT_@3oZd%% D/_-==]ZZ = 3"fl۶M(?!(>oX`F"L[JXɓ555XD/?~lp//_bbb Q\0e%B HWD/rs+Z[;\\,@"r~^l`fbǏO #("Z~uEUU՚5kp;'[>>>1핔ƍw&~͑k0sLWZZzM/Stii 6^U2 ${͛7oP H555---Gcǎ ٽ{YWTT~-BIOOG_ϝ;D"H )LSSS 򋜜utT2XGGGgժU:::/^@.\XUU?fΜhcc_PP0aRQaÆHK.IKKScǎL~HAN<W^?|okk `ٲe---ŋ\pĝ-򳳳UUUA.ٳg:::hwz Afyy.y7;m`---wA EEESdpq f[[[Y,VO.\H&r GիWt:ǿy 533C N}9"ϟkjjr~wwF$**ݽ{m/A{RJJJAx̐ "B표 ok/lUUU 7n h{yy9nee477GCϟS*55L'OHIILNR ߭= ,kĈhgგ)~%[yv3f 筗WLL |6FzrxLx( @qq1j(=B̚u꧟bO{b/d2YWW7>> ߲eˢE &l޼|;;gguF޾}ŋ4g+V֢kkk߻wD"%&&E/_|eee666G;[436w\fϟ?[ZZ$&&8;;wttpgi&kkkWW"o ێ&lmmESqu.4kIIIVVy"*~bGyF&I3gtA޽K$Ѧ~KK˚5k444ڸ===e˖Q(4{*Tƈ#dddx&| G|wCCw*c[[[yyyCw<-- pܹ"my ɓy^ O722i4/  +**&M:soݺd,' ŋ&)_{Gp:X @ ="B~ah8 k!@YYyBE%kQA[[;44@0xdm iD/ VYY%DD (+kd0X/ G$ `h"q@UYSSQA?#ft,sXRx<[ ċϟ;99aBrEUէ~T.Ət#"0Roh}>|p99:Q%^899j/ƍGrEyu66]w;wrnإ+{AH/S`rr*==NHaf'Ouu]a_!"~A64h[bx ܨQm!ULpd`dr (׮e]Yhի;;~8US_YBEM ``QCs1fi㦿*  g ?r$;{J/Zee,{ΘN\nˠ[% ~ARZf0ݹҥo,/aoVM! kڈǏ_ݝ߃l@HЬ_0>{VrZ',J {i(GX,-GFM(T@H?/`bG ]['*'*޺zsںI0T[%/{hiPVqD ȶm7 ][쌥YV / TTV8t~\ܫoE,l@0$&k],44%SZb_`?/~ξ}sa+U =a˖>>6l k-<D{Doa{Bl@G>/[jcwk9[%>/:8Ng]8e_*`'coQ`(+G J dx4Ȍ?QV]cˊNX  d/\X8b0XiiVtPELLIfFFĩؽ{l?2oߪT{y-u Gc-7D~A&A =ZVV͛7#IDPR;:~43kf1n޼>~/p3g֭["aň_˝;9ud0/44[Zb5jj( Z%"k!ZIIvTK@ X_H$H6!!. qD/p$R3Bz܊o᫧SZfMqqall- ^IIiܸqGa2G8ܼ3gpۺ˗+**7ݻ { Q}Bk99 nܻwo޼ymFFDhiiqttlnuرAAA999w~;gKEEׯ9R(tO>=Z^^>:::++kҥ˖-믿~9)++BA~ UE=_oOFH=z4cƌAVKKKWWW__ݻNB?:x𠖖Vrrł ***"""nnn11cy{WW &9rǎ~9aٟ>}BAȶG陙lg||>Bܸq¢ `0ttt (HNN644LKK;p{*deeMMM###L&g&999u1 %%%gg/^W^i``p/__###MLLTTT%6lؐڿ?oߐB@@@TT֭[&۷-Zĉ|Ν[rK.q>zLMMѣhȟVID⯿ BӧOGy&N-vY *xUUVx ZpaUUU~~?XRR9sfJJJ``M~~~AA {JER J".]$--MR;3˗###9y򤶶vlll]]]BBz!ӧOC~~m`` e˖/^r@SSwh䒒VUUE5.ٳg:::hwz Afyy&4O49L>fϞrT[KK̷~[SSZǏ3DCSqR$ѽ$'CXYϧ_P(;;;C"H뤤$ ell,iQQuTd2@ ?~BVS ϛŕ+W8b^ x<͛7h`ll \Atzר5pEϟ?vލ HTT;'L&(JO RRR[*b?~rgx޽.~'b"S%l[} HJiӬ_aaƍ9D"Gpww///Gínmm=Rfff7}HFg'A<߽'/Ϟ=cN&BdffsWQQ>|T4fĐd___OOO23Ç=<<@cccaB/++C?|qgABBBf͚>x ޶ &OӤ.C9s9q5`0ѷ]Fi4ŋrssϟ?zyFs'!JӝDϟb-+/YZf2Y'=b~2oٲeѢE 6o]=p]AAAAAuzJEdeeo߾xEYYY3+jkk|ݻG"MMMѢ/_>}#mbt͝-OMKK;wAss3ϟ---]\\cccmll;::3ߴikB?~ٳׯ_ϞQ(ֶsN@nn.}CS H1b͛/ҕU׬EI3gtA޽K$Ѧ~KK˚5k444ڸpzzz***˖-4ڻBe1BFF*..gr:7pT1cǎ)((899+Wjhhm۶h4W(**TÇ{{{744pGR;v찵9tP{{{Ν^hEEŢEƏߞt}4H>|8__II ]Hp?~|„ 3"4?ߌ7Z[aիJYYuQѣGwg.KQ8ǭ8yB/LLX yyUFxpFem8JPxNC bPz   ofSXX-///߾};NȠ;ER{γa֭[KKKٳbŊ^!BC`cWTT PZ\k"ĤIDʕ+srrTTT'N266^lɓDbO֭sҗ7|{^!jo[ ??"|xnE{I#|)z?66by*:/ _(.nPVQPGYYyBhJa!]%% r-ڡBhEIIy@BX@D {{҆LJomhhlnI#r~0F [\ G #(Dr^^դIf/QFF@}At!r ׯ1)*%`K.$ѤC:7WM'}<+mkYҥKǏ>]Wl`)`ll| AM==dbbN6s2mԣF;6DbbhjrSUE5/$w_@]]᧟=R @0vqVV mivHO8m,[OBN∨_g[dYhm-<.ߺ˚5Sn&&;wBa"E{;[.$mEW>^2⧟a0X鎈st4r;;R5z'wϖ%:t_EC#~7ŋ2aDRf:z8z;JJAA^YOc"ر&z%66'4t'¸9sԮ]1pGtѐ@gf~ZJЊq=oߜiӬYD&# uD/d ?_Aҏ6\]` Z@GGy׮oΟOvF`$R#(>>acDhUUΣGy7"NN#8KPP(~dhU22"|YJ Mkϰ2ti7΄@ IBv2,}_tʊiӴG FBNNsa4I(6oDGg]ߗZ omA$u k!C I#Ӆ;om>cΜXk_JIyk-C 2ataP(`Eu57mm_cF,Y2~;--4 9D/Ə7%ܾSRG:WQ>sf@.AphBcMvA4CVz;^#}͆KdH?PU %Q œ'Ń Fnעo%>|Xkd/`|GM32:ղ;ҠB1U>.``}I%% Xk*_HI&O6.򋶶N_ff:?,|XYw튁{ 1 祃F ;vZ&})xɓKsr*n怫ԵC"44-!!X#@Fr`\C e/DՑ#(=z={fOj0SMM!00k!x` G ^C"OaWXkrr2G,{T Glͦ`Z63j<={ubE߃dYٿnaaKkd"xZ@яKZ$#6Onڴׅ v!66ڵ'ZXbePPWWػw6<}PV46F$.޾ qZK'q Knp?8 k- <}'qr2. A$.ldNfH*iiqG ֹs%c+L2w$AD/ΝKNO/xq"Zz=w99nnd8g|_̘a9$Jd"'?9fZTPWzU .+k|L+/oZ#f~fmMi9W}ƫ..kNZ!eSR޲z^ /-%1  ?pFKǏ}jU8}^~1P/GVV~*.lbJ> IMN. R;gg;;< &Ox(Gih( l 9hիw],nMUȒ$ <^j ۄ|fK H0ɧ~KIZQ'ii?ckj? ᫒$/yyUv #cwa0ؿ>-8hh(lްv i9@/<d@κ?ĉ%Cۢ R{>{v =ENg>{&$ 1?y"/:]MZ ,X0&!mmeii<'S0D, BDFFZL&{(}}]$|'%O`b2Y_WaJWx@uɓySsax^p \q8NZ0$ÆI3Zx̙Y["rR?]%1/q#Xs้o'ڹuӦYL=kjjJ$jk-!9=G\0n?k!KUU՚5kp)'[>>>1핔ƍw&AwgnnޥB:sLWZZFE)Q_HKK͝;:&ˆ{_oN\8 k-˽{͛7fddHGGfֱcfgg޽,?_P(ݾ};::Z1DhW.}Z[;$j ]jҤIfXkt=z4cƌAVKKKWWW__ݻNB?:x𠖖Vrrł ***"""nnn111l]\\ Z~w}W_/0DnΝ_~{䧟bx <OP7nܰhkk0mm퀀֖ 8`hh p};;;YYYSSH䙼IAAANNb;vBIIŋhիWkjjwttp8˗~H}uɶp 6$$$oߏUAA! ** }u-Nۋ-p۶mVVV~~~+tdmt&ÇT%pH᯿){UVx ZpaUUU~~?XRR9sfJJJ``M~~~AA {JEi~r{IDATR J".]$--MR;3˗###9y򤶶vlll]]]BB>}mmmk\lYKKKxx8`---.\455qgF.))lUUUAPlllr={}Winnojj䉾(..@ih>tocu---wA/-hƌřfff<7#!~A"5lOLH&;%Iഴƌ ~_P(;;;DB_'%%988?|A,--cccO8" fX/\L&#baaqWt: kff^cnn. t:k1d/?Iw޽A(www<9/8~S{ێ;8a ϡ^EEwRh46C&}}}===d2>@! :::x<쟓>|qgABBBfo@[[[PPw'Onmm}iRRROC9RRRϞ=x"S<=|nx @qq1j(=~}VH*lו+OÒ%!}T1鐏O}GX,/B&uuu-[,Z>0a͛+(((((pvv^n]Oh4۷/^(++Kx&_bEmm-Opp{H$Rbb)Z˧O^VVVPP`cc~ME9iiis500hnnF?KbbbqqqllsGGw6mvuuR(oc'$$}ѷto# aaa/v\]]KJJ3K3ltm|k~{IzšC--$O~q{{{: ݻwD"oiiYf_[[_ttt驨,[BS!=b++8t7|Qd2;fff"B&W\A$mFѐ^;[cÇnhh@Rwakk+//occsС.Ν;%_lwwwM.y{E 722i4^~ %/RR?6{ޙ7`% :C7q/ '@";Q\\,uuU_r55d]blmWc,DH_HI}v?熫\kyyXv 6ׯ'K(xyYI?Ҫ+R(]Ő[5aW{!ڡ~)DGGy9]ʲ? H4x{O| 'qkk+ZA.>>2Xk@Ab\GYY;_#2GFs{jn ~d yˊqL(rCAR'eeaayG|ܜJt`mm_~yŏ?XYWpxN# f0ZJJ&Z$iii"C6%/˗;<TT`l]]l܌Ҹx~w/Ǎ3ټy E -$e18W_JGGy`Ә1FXiMGe3.n >[PV3!22cjgS(c8>o:;v}gaal6{ɒ 7b-j"~}j{|&QihhADޑ^}믋\hm]HHj\+55u릮];@bXKKןzzt:%^@d;66KLfIVVٹs)]de{B/qÆIU oows?%@ PSCLQ(G+7wM`` _٬/Ꮩexnmsٽ̀V~=ӻxɼy_`zZp=II۰aa۠/^|u&xA'X^x)I$6ĉ=eK80Ч'Az 8^9>R LDr%$771{/_.-ڸqnoiK:uWqqu\\իWbtK [[~H䤤|C]н"FXR??w10p X^ .[K:-h=tIAEՒw֝=[2uwQV֍꯾k֒12?11ŗ/UY׹RouV|!Ν!=zXϽw&Lp3B>+WN^!U9Xl1a$;7$س笿^,Z/Bb]v$ '>B$ Â.=z8==K׭ЉTYßWK ɓ?2\6OÇ3ws8,%%em~G^ɤfX+V7?xEsx—@!JwA$heL*--5QVǏl2qDDw{{JR?I2eƍX/".\7GdSN 7ULzwy{{wfƘtBr2޾}3 z~ SN]zkJʕ+pvv.//,n݊3FdFFFSSSXX؜9sϜ93}tz:::BզBϽ&**jΝSL oll샪 c8k֬s01&˔@ rs'F^$dDC,X~ӧ8px 6P˗WTT"bڴiYYY*Z[[3KyQqB!Bرc*j߾}[ZZ+Bw{xx!V^-%ITѣGuuu_j)+ cbb:1cÔ~m+~7|PT"~ٲenfggg@pBRI 0FxRѽ}̙mݺU(5J*Rj4__߁b{rrݻwuk׮XLsW СC-ZDw{'1uk*BRRD"ikkc4v`IENDB`XQilla-2.3.4/docs/dom3-api/DOMText_8hpp__dep__incl.png0000644001725400016040000002105413273140101017256 00000000000000PNG  IHDRbKGD IDATxg@${QAA" KQW,(k+؟説+AłaJST R$dއٗ1L(is$ܙ; (@$  (8@A B(Εݻw3LQew u}sz gggKKK'z-ѧIII9x𠨳c8@A B(PpB2i+++㽽Ɩl*maaB&/_F~ΝYYY1,,LWWT;) #83gY,ϟ<==/\0d@SSƇ"""^xH"_|)))a !77[677P 6`Rk׮{.6|R&Nx!uuXK.hiiYXX|%!!k`llv1alYBBBAAAAA/bQAgffbIII`!))⒔ZZZOΜ9( #$$!$$`ddd8::644?~Ҳn:E:y⅛ۼy\(//JOOwwwwpp۹v IVEE񖮮Oe##撒Nꕹy!n޼IRϟ?իiӦh{JJJ={p-N?cǎp@xΝG9rW^fXBH3fϞ=;v,/h 7oVQQ1bWVV`ƍ^]`~NOFի0W#Dp\YY`Ȑ! 5ޫ?|eVVVVVVT* goo_ZZ`^(**8'---lA[[#Dpp333Vmll.]---׮]311a[ƎԔ lYYcΪ۷oc=Ajeeeϟ1EveݷoJ]d i4ڶm۲Oooo%%%A۫p رΝ;(/-ڷo˗/322؍x:޽3gΔ{.<<ֶ#Dp<alAEEeܸq,RRR!!!NNNbbb޽cUV9sf͚5̘1Ν;uuuK.P([n ;vرc/^C'&L΍+666>>>---nnn{HWp.99Y Iyye:l/Wc`'x^Kʀ͛NjZprrr۶m-8@A B(PpBrf5AQER_}V)PxwdiEE|%ϗ{VZԌB &:{6Pll6 o2D)l;@dҤaҒy33`0-[͚G<hW[K߲Z[SB!Y[' S)n޽?ƍ 8 .#Xjv%?plM;d0X(޽za;C V``%gi4z^FFHK**Җ sܦG--i[4$( e2;˓d++3ŲeӺI"!߾љLO!@LM# EQ!sB!諭 % wݻe:P3g{PH..$tD|V--yC@IΓ';ml8vȈ*pu5o"@0IF.,UBCB?!ҁ#'N&AH$Au~ؽӧx.Շ_A۶]{m{;+Z]>իb/5DQGT1!"wy9MWwɓ-W>[跖?cliӉnm&vm_BCSuM\] \V9^,)ڻ^؁@UU99v)\ \SS[``B 7FF!!o Iu. .""mV;F1{>|/11_Թ(s==-+rwnׯ?:~bk^9thɈ+#**DKFX衡VRB / ),leBZDNEX M^77 iiɨ_6z{_ 5231tŋ=+'\'BܥK,kŊ 0A_EF>u./޷1<<[g͛P\\m--y[[CQӯɢ}er[.Zd~u. hXXӔp rC/ppg=}ZT\\r%Oo刉~57"#00׭,+ݴ*<WQQћ~IIo~塨s)g ހ鈀ӧEG?u.}NXhLLiB5ggQSgF"*q ^{v8wxOϋ%%UΥn|1qn܁ HPȑ˖~(t*-!!q2.z-b/Adժȶ6#Vq֛a׋ؼ֋|a(E!x`"sO"HK+3U_q8pZ$=p( ݇pu5{ E|/8p14ZZXQZZ#\ iDBΜY.bEDcc#XAÇju-ϟtLKKWf!C:^ BIKKTpϟL}[N:UpŒ%KT*EPee}4i/%s̜ z MqCqI2HpL&R__l G~knnU+HG UV~ #પQV%jt:}Ǐ2eʑ#G ^sA[puu2dȔ)Sn߾{hC9vru999]u466>|РAzzzhi῔Iqq1Yί9 `/-111=ȠReeeOן9sfBBBAAA\\ܘ1c,-- ֗B~VJJ PTThMMʪU233߼ys D^B(bƌ=aJRԌ uE+VXYY|*55u6l;dSRR-WWWܹw ο@;~<r5cƌc0utt°g޳ꏊ3g띝9E\A2/**\ff&{555U[[op|ӗkWg ̵M-z1ԡKpp̙3, >""SMM-##oCCǏy ݻ---QWtE[[ã7뫢޾C*))c"@UUCh|rEEEMMMflӢ:9RNNȑ#lw5jƍZ;{Oq,/-\vv4 P]]ݡKzz:޽{Uꤤjjj0XZ>B(b~yEkhhء{guԔ=~xii)ŋ)//oҤIv:~a^^^~~opnnn%%%yyyFFF~~~ئ9::h0ׯ_;o}}}}\\iggWXXOy)Bܳgϔ}ׯ_{nEmmmZ1Q̤P(ؘK@~~>g΂ 722"W\T*[NJJ0aѣoݺY޾}-s\[[L믿0[tuuMKNNp{RRRPe2Xg^^ &&FWWy]Y*$9 ''ƞ166f:99Ƣ(zMGGG]^^^UU۷}L}h  X3 N~:t߾}yyy{ٱc֫T]]~Ǐzzzا]Ed2uuuʰe XW}$ҿv]$8A7Eϝ;7w\lb􀀀ٳg-ӧOohhxiRR… 9͟??00ގd d2cbbǶm۰mWwEQWWʥ#2k,%%%D233544JKKOsrr~箂c%%%r%ulHb}8*v޽q|iD]]oF),,u떡9v Xn'fRTTtssKOO./a3tP777 EF###)))CCÇ755bZJJ 88ERGGG iii{Ύ3 5rHγ_}7nܸAܹN(Z__O?+**zzz___ YY٥KbӧO2dHе[neR; Ç qfPwEF>54KK^%p=ɿο@p24Z|$; NEEEQX !##ŋ=bA'&Fy@ NL&h`^QQG{x)ɓ'oof22 AG8CCM77ۺuСivrQ|fFKK?l,8...&&*KSvp0ޱc~̨ MM2/_H=[0@\^zzHpiiw+ɤe˦BՓ^8@UTԭ_%Z4,l* 8pӧ1hv++}ZΞ}r#`dXopᔕT@pW7?:`&PEaI66c>Uo㯿;bExUU0$f+(}Ǔ#}W>Κ EA R(dgg ߪݏGp'jkj0faWg +.|A9s޿񩪾Xd-[l_'>H$d~fX][s/)*(^ ss$L{x0> n2e|ll6^{($..N# p7HIllv{{ǩ\_Ą V&&nSQ#${ 22DZ7B=zsӾݻOJ:th(==DCC-&j&$8jpu=O.]ZO~ɒskܻמmlme w#,9]EEnEǏ_W{\NopܬYFJJ.[⩫kZ,TCCi7x',811ʕ/_hhniogzz^lllZ%%%.t8 1Bo3aOuu9Q_pRKb79N~t3g"Y3.!]Z嗇.P/&NGGiG;,z3yy7mtʕΥ"m+(ahaff#u5_XwKǏw fXwnu:apYEE /.0/ &l(8=='8˧ VijgaصOj^jA MJ?yrIDˀ@VvDB߇ۻ~xgAWpY ܹda^޼)8yݺDB肓ڰ/_ ;TV/_>v/,u. j eei{⅖+###WGB$$( yiẇB׭\Zղ\{*D`ggdkk{mX؊ÕE \cMD(ͼv-@itE@8(m`s-aA9(޵mvEZjgg)*qcW& yNYZ>w΃Nӧݲ>\ȸGV;u M*8ڵVw?~$5+"X,4"b%t$rgݽT/P^P@Z4D ="SNr}+Bx9? ;D 8رZ+/ / gE|R9ikc̚,VXիg?pwьpqqJ`KffqdSܝ4cskLpIm:^~~naތv,zӧ#-L7Тʇ{!$onm۷ViXpee3gVi#GySηr45FDw9+--ƹx4_;qrdeG&F&GII*N!RadB&KkݝBQ*>pb6trrq?m/A!,4@PpB P(8jt:}Ǐ2eʑ#G؇>e3gA;lN;eddPԲI&ΐɓ'ggg|rW\e2yp47h4ZZZPpieeu#F>[޿?޾}{tt4cUo޼e?CWWW^^ѣbA޽;zhM6r5 kk!]b'''''8-rrr(h4@uuu.骪Xwީ~EѺ:))>qqq"]aaaffW#/[c3Y*DbÑŋc3MJJFb! ˗/婩>|ضmn߾mjjULLLTTT8=CI͛7gggٳgٲe!q6Cusslcdd$%%ehhxᦦ&v_lr`0>l0%%7677s5pҀ#܀d@o= A$&&dY*?'##ŋB0Sp***!!!!?@A B(PpB ?ϥׯr ,ECzׇ 41P !(8ت _ϜbIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_34.map0000644001725400016040000000053013273140101016016 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp__incl.png0000644001725400016040000010123513273140100017035 00000000000000PNG  IHDR`bKGD IDATxg@Yz'H"( VlbFb׵kw_{u-(v``A A)|BK2I8ϯds&I7w%a]#EtHHHH؍7nܸAt^^^^^^DG/HλqFRRR~,$ր@X]ү_[@!XXXXp" pcǎe=յ[d Lf-RϟOMM-**266vrrƷ500tDbnݺpcxǏWVVjkk;;;qdkkrʞ={ q5 Gٳ'{TTԢEΞ=jhhXdŋsssϜ9իJII!srrjkk߽{{wG)))ȑڕ+WaXUUӧwyQA= L&CKKk۷oٳ'kf/C9:::99߹s_aРAIII?>`޻{… d2'3`455̂|t?XF"N?MLL ;q 1c$%%a?}ѣyBII)&&BOmmm#""` ^xpB777+W ~1v7oddd<|fJHH[顡3f̘1cFhh(N؊c^www|2kϞ= 1cƟIѸ.l Q `hhXXXd `133466 ߼y3b퇄y3$$$""T*۷jCCÖ-[×,YV]]_h۶mӧOvZ``}T*B(22ɓ|͹sط277˗aaak׮=}4+ٽ{]^|-@dAb "d2RRRFGxjjj7f+++++χ:;;+p!##SPPpFnfcccÇ###ϝ;gaa1k֬!C =<;~8V-qԸ̻,Ha,//͛?͞=j)))OpX׬YCRl yH=(ooﲲ[G@@Ç\o}u~@{PkIYYݽ= qXHd2yY>>>> b.)--MJJjjjdxwla6+9'IK >jkk o5y7nx%%+%'g '/'g$%PZzN&nc/ JK1:F+$3FhhȠR $ &L yZjZZ~JהܔMMtU;;cG^4F_˗_Oo}X4뛖.?:u@k[.^|cj8DZG^ &%%7%%7557#0M^z'xRR7ر@~>a07G_|Æ˖9^9'ڵ˗_444O`0lHsR{ n :Ng#%%7=_ eez9:9\CWrNcyDjӧo3wӶmoj'$d>855L$ $@5}x[cc>ѱcoyy_z_Ehl9y?_qv>~`Ѣ166ah&?c<,,tEj`CFFALΞd+^:{i;;g)+˷sZjls|Pdkk0lAJJr A`0|)MM{+dd 1Æii#w?h||!dոN]'ؑ䤧N8oeO Ab PCCsffAjj.9]SӠ"?p >,1!+뇗q;;yDJ^^ yyk~Su/_U͟4}p GXJKk߽+⥥h ]]5|(o=|4^II_?Gގ 魦Ht]SqDʕ}P@(Y;o`06)&ͅ ϲ~o8| {‡nkN&>3߸T{+*꼼3Xl uSDE6m9##5{45EtC!(*8(wҎNsHw?ttnX(RJ͛ig<#s$ $DL|(eeGButT>.>O^gΓl9ꔔgZ/ 32rt̛7y^^==%ݕ޸r³jb $}ϟ$`C!(/:̈^Nt85+WYswÜ9# 4w Ab @$~C!oRi2]lÆÇߢ+W/\xVYYw`Od+A)PWWH&>oUUQQ%GϞ'N<^>hwM13_<}mb?wHw$N|(f(-\xի5D^r򋆆9_@b ćB EA]]Ӕ)*DG/'𷋦&zBBӏSSst||@@b '>LMͥRisC!DE-q99&k'ѱ3Ltk>`Ѣ166D$ _CCs@eD#wfΛwv~Y BRccߞ;Ç"|3)) jF  &>$Vccs@e<6}'O&׊ؑ䤧N8oeOkć"9((e' Q\^^2xOfyx 7odϞdk@0x7ιzuH'44cʔ墣ܲ+W^^\[KusS$ !`C1E1-:W7!:|Pvh ":jn߽ɓϽ{k 5k(̋ԝAb 5ajj_`C`0/OL _4th!wp~M]rzjxHwr :(@H@pȐrr0`0+V\{7ҥÇh4ĉ45U""Kg5ļpYV֏ Ϙa,Ot\@x QJ$WɸxqU#--ʔߏ:uѱt>LTkiΝ;J蠀0@b "&>xL&/Wnzwₑ#a^}WUU :.PoL;sO鞞a%50lݺ)g?ޚpDNEEYnNt,̙'r^^; rNXa`nð#^}y\~D#Ν{o761;11o. {q $0!a׮['N<GiG޼0DBy %6ZH`CN{>vyx &:13q!CaasDH O?NM53q VZZ;f^m2 &C{5t@ˉT45B5?g/Oܷ۷-ZtK˞D"Tii/>}+%E26Fc*%E9s0L@b mA;=z׮Ҥ9:gg`pKL&6f̞!CMt,P/_~g'ii!Cz;7_ܧё0X'tBS}Рm$DBP\\cGܮ]g ::1v]nyU]]XpJrHuٚT^Kԅ k@&>]vML !9gd]RWdouI ":?ZR~}\X@@ćkLA0c0 0IYY$/>?ߩ z{VV!tFyyɇ/_^4xp/Z5@5]cp'~mmÀa0!ط c2ѪUW1 y{;d "%%wȐD555͝0** -M"H$Hd21㟳NgR=~D"!K aԨ)6 IpP65}f!:m0$YơC~))[,YHInHD"Ν|z .~  .y}Q%-d6+044;|ɸqt:@"-)uuɅ||j5;?>j#診ӧwbC2nݺmWGGNNAb @AAU Ft @HjjkjH$ t~A;;MBŋoEEEt:mtBy9USSDDt bC׈Qͮ]KZnܸщ ӡMLfEEE'%0DB(""(?|(w/YQv?xx' (=##SVP=| ]rܼð`mmlн{>|e###--*[avŋh4y{{c6mڴUV T*Luaqqq PTT۽{7axTt}UTT/o&BHW={5kɓ'-@%%%>d_@ @b $󹱱oǏ?\H|fbaXPPٳuuu_|/ܻwG~~~zzg'N|m뗞1dȐֶ -**:s挌L]]n~K.av5ccc&h4 "''7o޼<].--mX:tHGG'::!srrmllm~%%%-VG@b $@|Ab o8׭>r.< I mmmmZhiiYTT?NLL0`ecַoh߿g=nUeeLfmm-hms^^YY9%%0__cÇ:#PvvvpB577KKKgffOt5T8SM^۫2hѢ%K~gϞ$D"---Byyy++3fÇ G)))h4 Ҵi"##:!rrr?vss4h[;߿0ֶ=ۖ0+Ŀ IDAT>}OX Cz {LmckkkR~ǯYPKK+;; JNNƗ"}/IKK۹sgk[56627nTVVΟ?ݽnnn"##o޼9h < oll y[;SSwޱfeeg[]]]ii_Osrr 끴% H?@^œ,iPPPYY!!!vvvvbf#HY 'NH"|?-,,5k_P1 PQQA/_ُX_\ϐ^z)**oݺJdQWW2e Q@HܴYZͷDL&s޼y+Vz{3g\~}^^^zz۱cط ܸqcfffffZۊD"FEEQ(fYYY%%%N6 WWת[Λ7_,''ظuVPmmm#駟BBBbccl{ۺ:ʕ+sss3337m,O@ qcp,?+"?^TTTPPiӦnP(GsΧOnjCmedd޾}j`{8uttϟuyyxaXYYٺur-hjj⏻>Xz̙3gر_.--}葝?),,|ĉޕlkXufp: ]&;kDGDH|?/_LPΝhѢzJ뫫[aѧO999KKX777O4#E#xС=z?~OGGkU)++6 k-F9r xeee``fϞ=WZŪ {!ܼĒ%֓'OnhhX,75jԖ-[NNNxƀ355 ÷uss۰aϟ8q"e˖788x +!(!d2999ѣGc3kjjr>[&=|EWt| 5+B{n^n^͛UUUWZXX#h4ZHHNHHFqRR֭[ZnUPPݻKBt:ʊ c#Fx%Buu9s I$ٳgsҥ^zo޼ٖO"~۷oO÷l"--ZAYY9$$m~:ߑ~gnz_|ʪGC :!~0,44ZMMmܸqnb>}z֭*))zk333 ݻwڌ۷ʕ+.ښ(WjjjǏgMl1j(#OZg{Wwӧ\rӉfE23Ԏkʵ'ƭH'~~~~ !ooo rIPyy9{T2aHq>Ϟ=#>~]]]%oUk{zzVUU!***;X \m***]q;8(Д)S(JTTm~999̌UKc!ϳ/1 {}B(--B|e̙0G_5zykT|,4eG5GuͲ.N_#T*o'N<ĶB=֒ ԞZ+rɵH'~o޼01jT ---ֶ˖-+Wq< kkccseVkW\XoSuOYq!0 c0`QK Ŏ. \\666ҬӛJVVvMLL>}:{kSN=x {Nєxߞ&&&1>Ǐ볪f*ڶbdxBxJB. Ϛ5+##J"&L'3ߵNh"x D32v!L\R?z(00ۑ#G s,[lڵ p^D&B/^P(GiUuOY:ӧkjjx?%55uÆ < (xQgQQQ }ׯ_?;6 VQ fE2!H3g~`0i:b" }jkkcc2ܧOXm$(ﺧ+?}֊+XT9rJ?XENjW'N߶muXjeL6Ƴ0mY[(ܡfwtT_URN c͵*HaExiӦ1L֟fϞD\h$n^b4m:@R2d2y׮]cbb,,,WXAR.Ab $֒aΝ666_⅕ѣG;Hh$Ǐ?w}s3U ҞĚU>J RʊJJIIぱyQ/aYRh"!b k@6nhdd`mm~FtPܕ,^= 5TL~>Q޽4"PIY#tUJ+tJ)+BFs<;V kGԮfJH`"[&2- رcǎD6,D_loorf3gOq^>llU6WhRZUUգGN.\_=Qf / UA ަNFC^>kUlSG(%%|)_X:Z/Cڬ\ْЊEBb 6uG>H'ZN[f9 \ܹҥK֭KOOOKKZ&m4KTHH tuzƾ%:ΠhJ׻N0aȑ×=zT__u|{{!dggɓׯ_;995?~r>]2|AKKKSSS???:_{]paYYvǏ?i$777ցs]~$Q Mt t}||I+6 su+#cB&$kk|ܜ㺐ߏ3n^ÑDG!$L&R^]YVs1$))>$d IJ 6h 2 $)Sl&A:k VZՉ;s!UQ!_QXUa$K MM*!-UurSt߾Urr & 6}}}Q@~P :IƯkD[[u޷oIMMmYQ0UU߻֭wIIL}]]5qΞ2ŮMeg,\xرQ%<D͑#]{Fee?`( >$&f=|AZZjԨ;wzL_SSEp;=t讹._suo%88/Z5AJ ƅIXSHt\]mnIM>܌X@75B_7ّ#8VEE^л֭wȇظ1ݻGJ|iA&+Q(q- Dnbb$ր(X >ߺ>=;4~ΣG5jvìz.^|@X\;;# f]]ѱvqu}֭^Aa2̂ĬzkYϞdgg5k&c)|f7hiBBҥf! iZ\;v~NNi>0k`~-.kz:Ћ_]ңˋ{ٲ'Ðk dEPMMѱv7C̥KP(P$y( H&zJׄ7ߖZXyx vqvtMthfڸqW?~,<~<:{E!--l%R|AAAw )HOͬZX 6L~tw53썌4,87}sk a"Di :..,XYYߣ2ѱȂΨiHHȺw&!!'OٓLth]n^k93qSq%--"x;RZZt;X3 D2N:u*ѡJ,zzʬYzzW0D(+'1=$@ mUqqi_qr8pg„jj>X,JJrN޽?_)-xGO]] zΨQ}OxȁAb @*EMMq(Ç&MUVd.BHw5 DڰaJϞ7UTToӡT;d2L(~F4߾ǏVV=t/X ʹ=ǍZܙ]D`w5sK^,.9z4@^>v8QWWk1ӯgِX!o8B^ML|o 41s03)$bM?<|gO931TTTMtcHC~,{QDHAƚ֭툝̅/Def>ȕ+uuՉv!?~,$: a#F7 QSOqqi YJ^@0wzD7]bi3&f3FD,12AtDM]] #)jFFDHA7š%>>pQ3gKLԺY5o\q4*j9@+BUqdaY6$@ ޽n{7YvFjMMe3g\fbS3F&+4B6C"7˲eDH*,~CbbVRG))ҨQ}w_KKKdY]7@ĩ+2̺&VaeKLs3]N $pI_Oiّ#8VEElOw(wW๵ ȭSWWB4Bb-vF0oll~6ȐD HO'&OON&+o|}[GwW)FD,82Y!TS`hAt,cLM 5=ˆM9阘99*cZY3A'sf> )^_#: Ѝ@b kz<3xp/(1fQSSre o11+z$H"04t߾;L&&F@Ab Fs3˯ Y7o-+b-xuWhh(_㘟ɿZLtD?)ee9HŔ kѱnk Tړ'2)^PiS8vWhh(_x#__]4bL9bU~ _ XUSӐu>466dibpIWd. G=xw$[b!]2vݞk021c=ՕtƀX/>b egg˝s.ja>^}Xs c!QNGGII.3k X!a2̂Ĭ7enno1lщ1 fٺuZ^^łgWա*ꙑחP@75,d.n+)11?/IKK;8e Z#*X0#(@U@ JL̊(/ ֈ$vWTTϜ;imbv$:}JJ#a "#_;kOOfťg444Ξ=bƌA{kdj>}t]肝1DQWWә**p_XЭk**ׇ`Ab !11֭w}b0&kNrw%,'-Y2vÆ-,tGJHŔ.BbHAb :d.RR$Gޛ6OnBth݂wW䔔ŋ/ܹZAAp@C&+"jj 5t%cX pXLȑWU\tWddBCƏ߿}{Ν3t;XCa1fa]Bt@Ab ӧ{RSsd,l$GthQZQ&^I$kz?H>HA\bc~R2v%LBn]2uG>G l ÍH)+Ab-tbb|X.Xŧ;Pc„ ܫ[er"uWl6O7F ^`qglYUUO4) dXG3߼..miiIv0H8UUÇ}}|B&O#:Ѝ1D !_  *縸L ja8|ԁx}"@,ي5vWFqȡC 4dRMXh '^{HI!uUSĬ;w2 2]bvZDrEAAv<%KVTujmۦ%%}ܵ>D$V}}ի/ꫫkjj *NPkk 3*ja}z^^с uSYY{4ۛ[7}ѡ.*H$DNJ:sIff:ݶue.7!t3P IDAT: >.ٲ/[NgbƱq"gb5,H?HLz⋌Ł>&m".?BFFFcL:wuk̊utT0Ӧ aCΝ@p467)e29SjL#f5+H8)Wqiӎ8:n߳綂/\XY+(hn_tȐ;vQ(ݷLΝ>^@Zp4岲.. :==z%^|:1}zw egg+(>-}+ә s"$0YX͞=b`O oY[KXN1aflqV\L!: Z $$d=+)L,=#G;vի/mm /\XwqY8-o9!$%E2e@P$:֬@1NJ": p~rJ ڛ@WWW745щH2i4cϞۡIaQQR$5˭[JJj5]\: ŧ%aEE\~"nҒ%c?gH(a\'ؗH$ފrE:OWW ðRx kUTTpw11o7oʕJL̊(/ ֈШ?57svHI|| 7!.}'nNt,@jgNgKdd t:Bk PXO?/^|g|mqqMVVa>OfťݽY[KŇNnߧA2؞=sNIIn2{^p4p{޳h `-UI$RI a0pP,))KS)))Ax)8qqqYb FݡDYKLMMx4%NeeD @#\vU2QFmٲx=zu"r+Xvܵ!#:jX߼y !tU zF hQ766NJJںuvPPKV8[[[޽{_t !Dӹn^^^СCBzzzX#Ο?ݻw;w󲲲5ؿmv?~5QFDϟgEH"._leeգG}!0 VSS7nܭ[җ`ff{nV}YreSSׅE$ ++>`8GEFFʢY`[np83gapp0Je=>}eiiiV!!!Mq $RWl~5}`0oaa:bĈ/_+<B$ٳVVV{tR^7ol'H?۷<.i Vk82UO!KS KYv;fϞ]\\K|޽{=<<W'>x`۶mKOO2dHpppk[ˇ9sFFFn\7?{K_u Y;v/D}QOO۷UWW+))#=w500wqqٿo8"a=_"|-kUUUaaa0D333?~Д)S(JTTBofff۶m㺐;.k<Biii?~XtܹsYѱVa>|*..nm[ѠsNNNzz _ςPYY[3]]]=: ;{ڹr7k:]XXxm}}}kycP(OF_{wԱ|aEMPZnZw{]U{[O[kmպuiQ"jU\Ҫ-jUEeEf͍$lW29399drfܸqeee?UYիR]ɟ ;w/^w~dBu.ՆRTHw-;b}Пmİw0/XK$pG(JNNر#sQJ>̼zYK,[XX|WDT+=Z,ӗ{TJr<oҤI/#Bf͚xbJ޽{ڛĚR*SRRV\ۧ5*B?Dmm-xXXS~H$2YYYSJjIv:hOȑ#g͚E)]zu߾}pxÇt?ťZOY/y{}ۛ&&FxڵKݻ !Z0ruc]UĚhs>֯_ooop0FIII& ߵnbp5Kα^r%SϐE\oLe@َf-Jŋnjckk۳g'NWf}dff6%Qسgï*9sDHVVH$ T*#FhT*UJҥKFŜ:{nmm}MUqfffbڬ+y@ ZQg9֦;IEEELLLn=:x8.;wj= @ZZc~Zᑜ\M6 8ZOY==?p^7McmlWujj7nBaⅦΝ;3hs> E޽1]ì4jFN չT;֡k5+HAAw}׿U!34*HRRRrfW^^SzjUUU)ʃӧ6L,k~AÇM9:=z4gΜ^z-_|̙ь=z_x199SJ'LܭpOSꓹU4m۶};w6u5Gd^HdSgcc{ݾ}=Tѩ2dHEEž}n޼9rL}gCݝ2OsrrǪ8qĕ+WfuB***֮][AC'twr~=_m #o6ЇUInڴiȐ!Ӧ\M\r;wtҖ-[k=LҴ7&jeTqzݔ1!BѿUVbG2s3f s]~W^|yxxxzzzzzzWJ $$$oٲE TUUi>iҤ207ݾ}ϙrՕJСC{P((Ǐg^% |G!!!}SN4|D)2eJPPбcrrr.]ԭ[O>ƈu 6:uٳRugϞWiO>YYYW\i߾e˴6G7䈵Iv01)G2i$''jz8RJ'LЯ_PUP5޽{/ ޽{uuu- {Ϣk)ۚkʈq^}ׯwss;rHQQ/OӇic#֚Wv{"h>>>%@~oڴ瘧wQqF}#֪\XelA 6DDD0Ϟ|S:999;;Ϙ1B7o% SYR`ii) VV,661 11ٯL&ѣxS}׮]VVV+Wp܄"!_N T+r|Ŋ~~~ .d,m,V(֭ ppp4hPbb-3mn۶m۶...gϮZݐIv0AP(߿__Z'N0;BͺZφzRX:;;{zzΝ;W1[J111aaa666MliNzÆ3okJbmW\. ?Rm}63224J__߉'ywM\PJeTTi_aj=ML\Zf7ޱBXgl<}4###22R3Sv;v7""yzСXf^5Z0KfFH$С۫7-:asߝN5u;w>47n!l-4<^mxnK//ee`Zʋf"--mҤIׯ_LIIYtvP+8ؓR@TUX2>@,XrĈӦM9sf57Z'luB_ֶVuV;0RY uccccccUmM):!w-^̇i|TUZ[#=T0Mm86 X!ԦM|1Qy(!뜗Wv`DJK[۲2$`ʪjX\ 5֭!bqہ5 wa\e֑P%]8NFFFFFNZ¼A5-!TZO?5d2Eyy+{3Bvvvz`zZjv:vX[eXZ6Vf͚QFpqNN{H~%JJ)FA^H\+[9ppp`;0 kQoZ 4X,% k0Y[ەJَLPB\v =#xx82$`ZH*َL[Oہ@3Jl 5,ggXDF ElGPX(OAXɲWHaNR*,f; 0qHd\\v`vL*,` 5,>'!V f bX!eaÈ5Odd [P[+ #֠oHdX 5,sAz>u Mg++~$`0b )LK+ҍ_V֓ wӇLa;0q=zx܋8(ȃ(!U]-`; 0evvV:4k#P(sr۷Lj5k0Y5525Wd;Rz=xPZ[+Gb LVMU}Giݻuf/8SA@Xɪa*[Xf|_ US#0b rz BbmRS;vlv`Xɪƈ5Bd܊- ;ve;0 Hd--1b z׻P&ShcǶlf5*{{Qssk)c;"55@b &K,pre; 0 BL6N#C@?%Tn !2R4?@.]ڱ $`ҚZ9F0vLHV ہ@b I,Bl̂ﭷ1{5 k0MI%!#`0.dd t);"Ί@\ $TB0 &2RX^^v ?.eV{3LSi‚*0v\۶ulIYnn1&X!!3//Gv `FzFbm<~=‚ `HH415Qy޼YPZ*e; nNmml,k0M=rb; 0/=zx܋B<{6#**@ Ӂ(YuAkybqŀal5Ë?R*JNs tc;0/|Ѝs:u*]( =۵sH*pK0Hڵ']{s35k;Z;sLy*%%j+,ܻxժQlf5Г B*y3?-5II?‚'+ *vv,g~NJtv `vX ]Mz ̊TZ}D:44wpY;uVdd@Nj`"BB<[Xƌy#,sYx}1sOG᯳#$`"Zur҂  3#tik"mA=zƲO!ہ9Bb C:?y3fDz{{_\.gw,@oDG l5^ )I IDAT3b֬lfGQBfrEyƍ| !z%ǝ7o!:7vlC'p8$ֆxuk=k0!!J_+q8յԩ= M\8GG2Rΐ>lX؁#(C-|0KKT &V4˕6w-zm aeg~qڷw19+xx<.!Dcm0iXXLJD/Q(ʕ#뻯0-[#[c0jj N >5ГRڣGP^lr˖ǘcmIIRiq]&>Bhb;;>KK֬YϷo曏--s*{#Gnpqiu{: ea[(Z6'NU7O?tʕWo}XoYxx eg?rĉtKܹsǍv`v8MKEfIۻw_֘È5`2СkwuH;|ZYY?ٕ@X@Ku#Ftrwg;$bDw32͘ћ@Ab "??ԩu _Hf9j&O\\\eEE#""ZjեK?\.3/q8׹9Nvv6!D*Λ7]v۷_|yuuuQqvhm ^]gر4+ol}ofQ^l@kxG1b^ߋ wYVV֩SgϞ1/W^]vk/^o߾(⯻ݼySլD"TOgϞ}Co߾=11q\ͨ.\Gp;EaBHBBB||o))p!"o!$>>(aȐ!u ^E,!$++KUT*{l2yz)UHR??[2u dիv|ѣGǏb[&Nد_+V08~m۶BƍWVV?BJJJԛɮ^H)e2:ҥKLݻwzxxܸqR3UNcZPS?rBȘ1c$֭[ ![n>ydqqqrrr`` !z:thYY١Cl<`̔+Vh-lSQÎX3233wI_콚wQj}/66)"biM% k#ҔD% U'''wؑKKK>|y5##CXX,ꫯ$R,//W(U=zX,ڵKݻ !<֭[LÇc~:c&WP5K_*)?\\\Tug͚xbJ޽{)SRRV\G%iT/'?^=0:c&ZvÉH$2pãj-` X_>??_0:!a+-.ͭW 8::Θ1~0//ӓ@TTrPHyA홒#GW)))>>>{pZ]*d2'''BHAAAǎUBl0Xɓ' ߸ۄwwwx{7~?,f5QJ7m4dĉW\!bڵ-ѣŋ7N0!==ypYI] m۶́3ܹa2톫hK B233짾B#>>ܹҥK[laJ0I'_Q=bJdY~ۑ#G~wگ_PNDq2[DÇ<{y{_233>ڽ{j?裐>})S;sҥnݺ}'T۴"߰aϩSJJJΞ=pAEՎֳwJ֭[UǫSf>}dee]r}˖-ZX3Taa*׀ ?n8f;v옯oDDСC7nN5WZ(]=a3b[2k񙵵ev`c iii&M~zeeeJJҥK}05w>kV?d`l` ,XPYY9bĈbiӦ͜9S;܋Bb}i{{w}K{xiHtrnnn7onJ!nrrڵc-70 -ʕGǎv ˆ5NNx FM+W/w`chF%$yyl$%%%E`TeZSڡnUW~0Pv,1F׷(qnnS TWVWg>b;Νٳ+>\ATv FѾ77n- lĺʪ׹JHWB5J%II7OH+*zza"ti M P*ԩo?u*݁p sXr|7WycRolc~!QQBh {R${GȪBb `= R-:wXtѣ|cvŜ(h6 `\ {=}-cxyc ` de=>7߾}*~-kδ\Hѳ#tP `;WQ-:sdzee-1~HzQ YNNlX`Xt@bD:frС x,BBU{ ΀+..M2YȪd``kuJygRIfyy9 0YEg:;#6#akwdeeOxx`!0)HLjљWcV fܺp|}[;цpt o΀18s&sgۧڢˁ ˆ59¢3S-:8z_~9T!0kEg~BĢ3zbΉ\\m-X0b;=Bb RUU{"M>}ڃ᯳~!`}0ӧ۷Oe;ÏXttb?-76oҺ5+khyuf5b]^^=cRg7`>vDμIoȟ5kOEE͆ { f;Bb /49$rr'wo'b;"C ,:<(3g_ZZ…~ؗ!0G3 0kL>%z~D=k1,:T?pK>dG!}3*XUŝܹBnk׎ @5k?,:cburErg ;  $`8Egn<}Zn‹$%;vSڵ<W'ItXbK%K۽d#0"H̢3Ǐ+1Eg֬9aYBz{;]!"oN})0mڱoюk`I.:sΣ~ⴾda=y Kw_꫓|>O^H@+$`,Llљ=>1+- 0xDͦTo^}|ڴsoJvP 5բ3rY>=%+{?QJ7n<סw>BUff>? 2%4k0^LjjÇn8*,t,[(C&S|鏇]stiIyW~թ3{ ZbxH[q,HxEgFFuq66Ve?T*QpRR>mJyii޾+p:uj#Qyr„-LT|>o_ΝϜXtjj~ϞA FwԖ Z($"5) T*ܑr?| dIח)}xQSt7p*qL\.57xРVx-khd2Ņ 'N:uT~B֟W`9.nA1%%ܸΐܻw6J$Y5!mPJ`&5բ3IIb fZȎӂ 7-$>JLOJ%={߿Zݵk&LF.Wjjo/ysU! Dp7Ο}\YPPub Eq !J%= WӷFPQQ5&H5<' 5Ӹ\ʪ*{eU+A~!܁_3طiv( !|Jɖ-"`XI=N}CB(!ȑJ ҨQ !fnJ||x\ ‚q) `6SSSΟ9_0KRynQtW7j7C ^DޗǏ+ ʊ'ml,,,,ll,lmUNNZN!$@C@?XPJCCCYu8NVV++%bo/pϳ Zx\wV>p쥎PbeoJPv԰ suuewz08hӧO@0@Xk@b HO:ͲWq?x<112==]1Q7yN4ήggg"Rڑ#GF\汣… /YdΜ9Ϟ=#<>Z|k${QQQaaΝ;:uDգGۗak0kO0`֗Jeii)/hg}$ߋ-\`ޢۻO>?u۸ҦM`&XA=z["B~Ǡ BL&?e23ٳmڴD˗/oӦɓUñ!IIIϞ=\zIInݺB<<< : !vڱcǚ5kvܹk. ip8|kGӧ֬Y:nnns̩Zn`(>>ꉗP(,**b'''wؑI(f^P=֬%-,,+DT* E}G-&֪ R9|p7i$Δצ:BH$* f_SJ! `h3f̸}~*dnmu}\(BlQԩѣ9sk3gTM30JM MlSs~9!&dff2w}f5R6mٳ3g$%%1FZx ߫zw03>W 0СCeee666Z'&&>i>Q"IDATёeee~RQN)9sfxx !111g61?~Çȑ#߿駟6em۶ϟ7}%KL4Bsai'`2zÆ ҟӓ\VV6uT'''gg3fTTTO7o% SYR`ii) VV,661 A)d=zsTߵkս{T%W\r >4__߉'>yDI{oM8cm۶meUUUZ  c &C6 QO>Ȉd;ЯI!6ۄPL$<3glJ!YTLfT01$:@X0HhTYY=Q F@g؎Z t01`@Xk@b B0*OIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.png0000644001725400016040000001154413273140101024422 00000000000000PNG  IHDRpbKGDIDATx{<Ϙ,\gU]l-EQ[QrB}xQ$i#;m-v!eu|~}v1Ϫ9s|fB0 !E? !A$ai%%%%%%eXB tzxxogxֿai ߧ>""bXhѢj _&99yXB? !A$H"A{'Ohii8k֬q͛7رc<ynccC"EAUWWNGCO>w\/utt|g%%%?޷oߕ+W|>r)&/޸0#4ZJJJ{-p4,M SSӠ 011xxɓ'B[kkW/]dcc)RUU5\+ׇ[L&իӦMp@555UU@. \mm`mm'zxxKƍFFFT*UGG'!!4ޒٞH$͛7a6111((L&a)99-855qh乤peeeM>]UUuǎ=== . bmذFy}}}ee尰tx8pX~}SSڣG`ahhëW***Νw^ٵ{nHHAEEEee $YuvvFGG38 yĉ>Y,\D@l*))QRR0 ꣥EdP>TSSϟ?WWW lVNN۷@h{iH$%kҥ/^(** ^nnn5553g 9::2Xwa\FUL&NaCf̘`0`:''g0^M>===^}jmm>y$|>_$Bnݺu߾}%&&ZYY _<2p0 ~n%ɿ,OOOՅݻwV8cU:tL&777%T*Ux>az{{Jvĭ0 {ɭ[1xaZ]]=''Gܹs˖-mtuu]LL Z |0\l6V(//R}꯾^fEEJ" Θ<###---Bdriii˗/aӧO=*Ɋf VOOϕ+WJ2 ;wnŊ0v!njmm,Y999vvvCˡ/^5552\[[ 555ZZZ0-%EГaQ@?>oiiyVuulXcGGGb۶mUVVVVV.^x͒l6JMMMmii9*`?sL999#GtwwpQQQ">}Ff_paҤI4ml6.YDAAAd***~~~p/&P$Iqk֬_Buu{~jXzD?D7?~7^ 1jtt4^ ? !A$H"_ף$/ay7l%HJJ nN jGǨ ;_2E : 2/ʈ>A"\.?; /vg7D_GGBxL;c!Bx[*^= ;w~:rro(s=DJK+%П PHK+'|X4FA4,Vw~ O \a+ri7hYA7hRSKїF.H}$I?T.^^&9'HI)]w<.1vwR>22(}_~ժD;2VA/HD ? !A$H"AC HD ? !A$H"AC HD ? !A$H"AC HD ? !A$H"AC Pp~~>A@b,',`0x<^pp0Q!>lRRRKXFGEJA$H"AC H>̧-xZMMm֬YJJJx!ùtRII 611qqq!VKK+!!D/ٳ811QKKKq==oFWWwts޽u֍hG>--ŋ n__ &x{{kjjŕ:uJJJ TSSK\qTbb/_,ȵ`0||| k׮>WIIIYYF͙3)))˗ϟOMLLn߾ +M̞=[qeee:6yg:05BAGGǎ@nn;xh{{{{{hkss2ggO;;;?~&n\t;w|>Os؅xZjժ"KJY^^߿_H LP(0[XXyfkkk$Xhnn/_~ժU׮]`aÆ+Vڵ:g@5b%i>|noo.eիEB:99;wq A?766b2QQQ~-J2SN{-//?~xDDD}}}bb"*npBBB]pRSS4WRR OC5]]W^̙3lvMM l•9f޽tww%&&ƲX,h(oo[n%$$lݺ5))-**JR@Dzđ4b%Ǐ;vѣGIIIgϞ---ѡ%%%W^s\/۷o/++ 1c,}Ν;UUUuttaל9srssk)Sٳ@0fX[[߸qCVV͛}˯XB<=H$@ +(RRp .,,444?~pM6-_|厎wqvv222qqq;vPQQQUUtuuKvvv ˖-̛7OQQxƍG\H}}}tM@w۷khhlܸ)2}( _}Տ?x)6NÒI&M4Iոq"""RSSM`IASS:\]]mll,\zڴixĉ}nFsŰ0Q('Ol===a+lcc)S'OE&---]L@ hii5E5Xb͛ ccg߿***FDD=(JSSxuuuQQѺu!!!</77w{0ajnll`aXXXի8もXnbb\[[{LaK^p͒H$R```~~~WW˥P(̻n޼)Xַoߖ8p`Y^Z~=ܵkWqqqCCïKlmmixxCq廻၌x< X}ZĔ?yҥKp"%GIs1Pׯ_?… VVVB >'&g_ff&Zv-B 7447ngdd͛I$۷oq+777p.\ ŭdddMM`I,ɓ'l۶ &TUUΟ?8rrrϟnllаprr8YYYdĉrrrrrr GO\]]-,,vޝ!negg#"" |||N8g@Ds޽>bࡆdiip,,,dí[۹sgdd_~X HNNvvvBUUթSl~~~BBBllh0 7D8xĉڣGVUU<{ŋ}p;accrQA^^~;d'>())ڵ@Ă ? !]׽o...|>TB|4999 eA$H"AC Hnr?1F8IENDB`XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp__incl.png0000644001725400016040000002442313273140101021724 00000000000000PNG  IHDR"VbKGD IDATxg@I' `#(md,A@zk8 h@@ }@öm۪H$RPPȑ#xqihh`(orssSRRV\DﳣyPrssMs@@ }0H?"mMM͉'(++sL&3>>Bϙ3ɉD"yuuu7Ν;uuuy 533}555wS.KKK-|l^0o`k0.]JMMݹsg[[gkk+U{{۷o"##]\\rrr8ݻwܢZZZ^z%XxZZɓ'9t6[wvv(EU€ɖL0Æ SSS|ժUEEE^|cXXXgg'͎[j]PPbY,ѣGׯ_pիo޼ ZZZ޺u}ٲe.\ vZ[[m۶=~w<].~[)ׯsR\՝*>>}tҤ$n>\f}HHHWW`w?%nI^mm-J%044DǏ`0QY[[gϞ͛d2?c̘1 W/^ܵkɓ'Ï9RPPv޽'NTUU%&&Y(JDDıcǞ?d2.\f͚d O򊈈hiizjBB¦MΟ?ri×KhEgΜssq[*XЖ "QBU ɓ;vDGGs]AAAۓ'OΟ?C U2=!sEGe?0a"o 6ں{rvX8DJJԩS 111VVV .~Oj/ zav7)qhر:X4)*H)&y ''͡C{.[pH $Ϟݨ*jUXC_ bD"oVVZDw9>/7c[Æ]tulkZDe||O>HGik+TUQ׭da- qvkqc ]_\\gFF%$Om#A?FzKOpnΝZ !)iia8 EE=:~III̮:8L{\VV<k9 0 sڔ)#Wcοؑ0tɒXˑtoǯ^U]9cΝ6mm6%((-,`-G9 8r sǍ%%0lƸW"0Op~S\f0pqb S_Ok%vB]u φ㏛C׮WyZ(QT$?M$tr$&(c-D'%y}غn]lG90_dgܽVJ b>[66fX GzXuԎ0|CTUQ]+ܴiީ%BW}Ⱏ_ p  D"[uʕWWGvttݸQ_xmXt]-[MHSUU~[-  H$q\8FH$89ZȀ>aٳl>Ab…D Ŏ{fwP2 rK"g]iiO1Kpe -ZfsvxD ̙;MWIHxh~|`ɜ<+ ? 07;;s $-D7…|MMŹs2''{ggdn ?fs<(Ag$s)SFffjFJsCm8'554;;~ל9w@_M$~žp ֆ:\j(c9oH$,]:ѣ_WVCvu`- '0xj'Is o_$'' HT_pRHê1>|69ϟbI$D"Y^~bJ&+٭X?[xylPI,BaX/^UX ??~|  SGJK !c;x8{7x^7boڴiI!)/oc-"a**PZD"a>+++=<1@ Ǒ#UV_dddk=P(qqqt:ܼ eԩGyݻl6իWbi4ڽ{x+JKKKIrbo:,͛ .bյtuu---/_l``~uu۷o/Z~ϯCXYYrʲkӦMuuu"oVa:deElVV.F$''555544۷sssۧ633# %4{ccСClvppٳ<41iڵjjjzzz~~~L&@ bccǎ~ᄄQF)))ݻXoo+WxOLLD?:::^x;JKK[bo[n511!(f F>n޼ihh89f __ߎ! bUpPПI ݽNSSɓ'hȑ#v*--,^Ν;EEE3f.Wkk!C)JLLTkkkpp챱 ?~\CC#==ʕ+:::hC\\\,Xݻ"pvv+W@cc#ohR(++#k444Ç555Ѽo߾z MMM2эC!vZ)؍|K,.]BVp’>+ٳNk4nhh tvvm1X c555nM6޽ADkkk2'OTTTFxڍ|'W )))BH3b?$9ʞo޼+**ѫI߿G&&&>cwKEEݻyyyzzz'Bvuu&Mcffg٣G`hhX]]n+((Jii)Z˗/|rʔ)܏Ǹl޼y6l@`&Tf#"۫&&&=bo9!\}*44jܠFqtGѩ@#/_ť7AkkǏ/++kjjzvsssOX[[s;MP|wڍ=/Ntt#Զl`0{_>>:;Y11뾘ŋVBzCYY,gFWW.S00Ç|Wo}E _ ECC#<<7"1BG@$<FVV͛@$7 D45}k!@ 4Iի/@<,4q,/7gʕ xCfԑ]]O+zN6}t''Q4TR%"d[n午~;tݻm2舉qӪUӱւpXZZŠ#5 # `ta3y.7n޾¶m a?0}g(#Cu B z{uu}{O@FNnc32^`-dPeu166f:`o0>,mhhZƔ7E||;182Y?_}9)~mZ*lu|O0C,\h k!cS"91SkAxa3=̉--ի#X,Nr,rp 3{BV7Lf{\ୡ<+WRS Z[E lޜX\\䩯u 2 `ժi]]쌌X  K{mBq0**r+VL;s-߿?+=YtǴi"0ʏׯa-9vztWKKH 84EN%>7^l٤/_|k!/K\\faE08;ufeb-DܻϚ5QnnZā# `.g*n*ZybݺX;;EKSY1'7s3gDEyHIn0N߱겳_ $TT4:;M݂xcWzP6)5E}}SJl!C֏g~eis3#""k!pq";Q^~r$F]]24v}}3Zs͚55yH:87 REEl| ]] .\M!V?%2lΖ-OV?eh`-ϗh? vݼ &a- 0 V0~k!С?/\x:sh@CR 3l޽bcZ˗vU66fXk| ^SCu˿7cEjjor@2b DR0(Bi nr$0Ç[r[ ZwH֐ fsB:^J&Kc-?^\򌵵iH+nf:H$bD{]]fb?هYYbr!NtqcGju5Pbr3yyΞ}뻊wåecsBAIJE[Ǐm-OZX.-s=HhiaXq W HXk))̙fsZ֮a2B[[yaYx]@aaUyyܹ55M.mQ!"Gr0(BCoS(| wsbH$1ZJsz1cD^sV~f@ JUU;wF~/IDAT`9%%uÇֆqBr S_O_p>;ƲXHB#W}DY,Nqq%'6 DB SQhmmkbHYٿ_%3II|q]QѸl)ދuʥI))"ЯlNU5){O3CBn%S . CdR3 f(D"a0;;9̀+'#)*eIn MHime޾H*u@޽۶ ut G^rrPlC D7$!ap{$%E$6XlbH! 4';Ϝ}-"Hg~S7h'KIqrSH2~~o:u$@ |[_b RR$"`oo'8x%tҫ# $ܸ#9?OXy|}P GAALဳWihhxFF::oj[g +9ňѣ%vƸqV!zzex޼yпWSSSxh@@ }5Lee /^JMM333eddC3FCzA\]]{PVV& n ag'=jjn(++ܹ'O}}}?}&L诇xB&%%у ߽{7)B*--l8_c񞞞x{{O2T̝;7 BEׯ_~%cȎ0YYY4 lllB?oݷoS0 ;;̌L&$$$X,썍rrrChqgΜ #1ؠxiiDioo+WtWozY͛7 UTT9f __ߎ7ݽNSSɓ'hȑ#vB/^|Ν@SS¢3fuuȐ! %&&FJJ588Xh؄?]\v8x o_;(++\;mweXd Nt-a…%%%yyyB= 8>ˆ04MOǑCMLL( 3i$(,,Dd̘1m\T*UZZѣ4ᴴ;88PTk ͎p/_N"\]]yۯMCdjG#ݕ 77AR^ "= sHznogd2H\33ٳgoܸ\ L&544DFFd!4kMM Zz"&&LZZZaGgɒ%xy ๬|r==]QQQ a,--KKK󍌌{p|aBBB&NF._tUUUOO϶6ߕd())9;;h44. AѣGȘdff icc+ʣGDe2d?ÍĴn,Çu{2L»=b55-[0 wNGYY.!43pz?‹#B ADA a > h@@ }Ws@gZB T,A0H@4 a >y`hIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp__dep__incl.png0000644001725400016040000000573413273140100020077 00000000000000PNG  IHDRp~`nmbKGD IDATxkPWM% D+Dtf@F+*δ ر3ZE+㌗ U?Em0x A$9+cBIJ ߏui I}}'9Y6,A$`Ё`zXb`atv˖-]]] &1rH:/a9s\-Lww+⧟~r]0V)--5cb`a!N:l"aÆM0A(l:h0N>-JU*gΜj*&Ip8gϞ%~p8Z0O>]VVؿ\;#GFBnݺSN 8t:P(KII }ɓ'`0իWaaaT*V+ɬ;tPCCCzzz``7o:jSSS)gJZ~}aaaۻVΠS"4iΝ;CBBb1ҙ3gl\̙3]Fm0ydӳ'Z//2</lS*M/Wl2:(H֬Yᎎާ*11qѢEΝ,h51'\.۷LOw4aaao޼Ǐ_zmmmӧO?--zŊiii"SΌcǎ@AA|rFFݻ=zty;[ѣ'Nl޼9;;~WYLkO-, $1k,jV|add72eH$:x`dd7V^}m;D(r܈/zʕ+Y,֌3@ZIrP8pMM555cƌWYў`0ܹs"""OV :L{Kk8@IEEEjll3gL… QQQt$22R={zcZϿk׮Z%bԩlljj.]]P(]oO+STYIk1#z)L477755d[TO?ziڵjzƍuuu K,*1k֬GDD~3MN3`;vTTTTϟgff,G}͸yN3;zzȑ#JŋsεՕ+Wڬ"V=þj!((?~חXǏdee}6$$$&&&!!4@ (,,ݻ7o>{'J@ l2d~رܯ|WRbcc7md06[ݻwĉ-b͂=@Nyyy+W{n/RLJJrx-]-@  D|}}-Z䚴է7&jia(!XbXU4_^^(X,>ww/@~L.#~m'ms$ZSu}q<^(LJ,(x8oY\,*. o“6an=۩eΝ?ۄT3n!e2 JVku9}@gyKr,^%ڵgYx3wxx-q#?[f#dyQ^9VTfDq[ ,^f3IX8 /P4d т0$e2B^9o6awu;wht<8j=~e;xdJ;`a!Xb`a!Xb`a!Xb`a!Xb`a!Xb`a!Xb`a!Xb`a!Xb8<~B?[\.WP8ӅaÆO>ĩU<8p?JNHHpA!_cb`a!!0aȑflkkKKK0a AN{NmxxA0SAaP^^RrrrZZZ>cFCjL"J-[;wnܹmj cp ",00088K.5K遁oߞ7oޘ1c-[VYYY[[Cm+TEEE65." ֯_j577w۶mL&7---77ZMHHˣgŋ/X7o  ?裠vAgND"mriD*l$j54665H$Æ ھx"88ɓ'$Ij4E=,'… [ZZI.@\\˗/+**¶on1hs"?a`0c\|y^^O>3A-]wݻ7<<|ڴi?3t;*L.=lvppӧO6xɓՄXLBCCécҗ-ݎ' #I233sjbbbzz:y={̛7̘1C>x𠤤tSs |2]xzRy޽ׯ_dݶmsu\~ҥiӦq8PH7fŔ }]MMT*ݏ`I KLLlhh0ݠuӦMǏgXƍ۵kNR'ԃ=jQvv#[^o1hs9anrcO&,c.l)))=.,(((++˞ׅ!Xb`ay!Xb`a?!IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathException.html0000644001725400016040000006030113273140101021364 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathException Class Reference

    #include <DOMXPathException.hpp>

    Inheritance diagram for xercesc::DOMXPathException:

    Public Types

    enum  ExceptionCode { INVALID_EXPRESSION_ERR = 51, TYPE_ERR = 52, NO_RESULT_ERROR = 53 }
     ExceptionCode
    INVALID_EXPRESSION_ERR The expression has a syntax error or otherwise is not a legal expression according to the rules of the specific DOMXPathEvaluator or contains specialized extension functions or variables not supported by this implementation. More...
     
    - Public Types inherited from xercesc::DOMException
    enum  ExceptionCode {
      INDEX_SIZE_ERR = 1, DOMSTRING_SIZE_ERR = 2, HIERARCHY_REQUEST_ERR = 3, WRONG_DOCUMENT_ERR = 4,
      INVALID_CHARACTER_ERR = 5, NO_DATA_ALLOWED_ERR = 6, NO_MODIFICATION_ALLOWED_ERR = 7, NOT_FOUND_ERR = 8,
      NOT_SUPPORTED_ERR = 9, INUSE_ATTRIBUTE_ERR = 10, INVALID_STATE_ERR = 11, SYNTAX_ERR = 12,
      INVALID_MODIFICATION_ERR = 13, NAMESPACE_ERR = 14, INVALID_ACCESS_ERR = 15, VALIDATION_ERR = 16,
      TYPE_MISMATCH_ERR = 17
    }
     ExceptionCode. More...
     

    Public Member Functions

    Constructors
     DOMXPathException ()
     Default constructor for DOMXPathException. More...
     
     DOMXPathException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
     Constructor which takes an error code and a message. More...
     
     DOMXPathException (const DOMXPathException &other)
     Copy constructor. More...
     
    Destructor.
    virtual ~DOMXPathException ()
     Destructor for DOMXPathException. More...
     
    - Public Member Functions inherited from xercesc::DOMException
    const XMLCh * getMessage () const
     
     DOMException ()
     Default constructor for DOMException. More...
     
     DOMException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
     Constructor which takes an error code and an optional message code. More...
     
     DOMException (const DOMException &other)
     Copy constructor. More...
     
    virtual ~DOMException ()
     Destructor for DOMException. More...
     

    Additional Inherited Members

    - Public Attributes inherited from xercesc::DOMException
    short code
     A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured. More...
     
    const XMLCh * msg
     A string value. More...
     
    - Protected Attributes inherited from xercesc::DOMException
    MemoryManagerfMemoryManager
     

    Detailed Description

    Since
    DOM Level 3

    Member Enumeration Documentation

    ExceptionCode
    INVALID_EXPRESSION_ERR The expression has a syntax error or otherwise is not a legal expression according to the rules of the specific DOMXPathEvaluator or contains specialized extension functions or variables not supported by this implementation.


    TYPE_ERR The expression cannot be converted to return the specified type.
    NO_RESULT_ERROR There is no current result in the result object.

    Enumerator
    INVALID_EXPRESSION_ERR 
    TYPE_ERR 
    NO_RESULT_ERROR 

    Constructor & Destructor Documentation

    xercesc::DOMXPathException::DOMXPathException ( )

    Default constructor for DOMXPathException.

    xercesc::DOMXPathException::DOMXPathException ( short  code,
    short  messageCode = 0,
    MemoryManager *const  memoryManager = XMLPlatformUtils::fgMemoryManager 
    )

    Constructor which takes an error code and a message.

    Parameters
    codeThe error code which indicates the exception
    messageCodeThe string containing the error message
    memoryManagerThe memory manager used to (de)allocate memory
    xercesc::DOMXPathException::DOMXPathException ( const DOMXPathException other)

    Copy constructor.

    Parameters
    otherThe object to be copied.
    xercesc::DOMXPathException::~DOMXPathException ( )
    virtual

    Destructor for DOMXPathException.


    The documentation for this class was generated from the following files:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentRange__inherit__graph.map0000644001725400016040000000037313273140101024231 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.png0000644001725400016040000001035013273140101023274 00000000000000PNG  IHDRp'bKGDIDATx{TOH( ("Z "QTLAEB*BZD| "RZDTJ "ATP.De o<$#! g>ٳ}9'  a -Hт-h8555ǫw] flk:+++O>?D򮨨S[>s==-Hт-H-)ƌAtJ'N433٣RXgg,X@P&:466R(=krP_x1eD7uvv~GUUU'N;w.~ᡩO%ʈ3gl,orz9ޞb:::Qu _re[[͛71111((uuuSLٺu ,|2uss6mZLL.ccc' =JѺz H$Gn߿O0J1ׯ{޾}:tg0d>a) &pdkk뜜ւ;;;=yx1nMb1rU(vQQѤIQ0lر999pD"bFTպuzWTTXYY֭0,33sܹĜx#%%eذa?Rwޅ9srr\\\~W|Gǎc{P`aΝ;Tj{{;nn^;va׮] 6115kŋׅ'Om[[ۢ!?>[ZZhӱVkhhǭ aκ::>dȐ;w;}6tu}oZsssjj͛q~b7`gg-wuErF-"""/^,t sѢEsNm@T[fΜyڵ^ׯgdd@ J}!>x~̘1wWGϋB[VڵK$Aƍ'iӦ_%$$xxx{yy^ZW\.###Nr]}R&)Hϟ;ۻ!''KP`wڵƍcXx7}"솆<|m)))Ν Y{hCM8ҹ C$aŋUV >222R*V(111vvv˗/Ю\]]ϟ?G8q6>jԨ0҃aXWW͛'L0tP77ݻwd2<YZZ HKKaF;w.kHb KKK-U*URRɌ3yk}Lfee-[LOA5r[-Hт-Hт-HѢG$OssQKoAy(󻺪Tv%o3f/ڳ'(߹5R!R˻ x\qj`3 wIɿ:;_h4.gANgi4JxN.ɺ/]Rl|**{pK`(ٳ-Ϟe`՚˗%!%YYYJ!1 {`4 w^ޝ^M-hz^Lh47n(% <׋T*…Zm{ *zQRiAC_TaxW&66Q܍P9(Ex+,4؅ 4$Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F Ro F v9L vF+++%~%OsssT*1 FFF~~~,ZHP(|600={6+**݇ ßdFFF:tӧQR]|yÆ qժU122:zƍ---RzH`jj:|@+Eߦ}ٱc8ڂ𮉉 l888ۙL&=zѺ<(|KhhitOKK,~ĈDF;gΜ'00,))iӦM"5 ޾BZZZ/˝(TVVV0ޣ~O><33$??˲lkkF|B֎zFr .o;;;u ayyyӧO]__Ǐg3@P:ujԩ]&ߺuk̙P(qqqw޽p >9 y% T Ew۷oҥ۶m.//Yf9rÇ[l9w1j޼yˣG=zޮ+BƖIRRIьuK҂6@"DgϞn۶M(?^rJX7TVV\z5**ʊ Nƍu4 FTTTVVh4O? G=znRRh4Zww7|#Ɉ8}ߴp9D|rnffzj 2{l3<*,,LP*ӧs8h׎222OOO]BBpD~lÆGFF :4##xVf #eXϟ ,^իnV6mJMM]f᧟~FR݃.^hjj{!ClٲE ک.^= @}`XgΜz .Hт-Hт-Hт-z^oξrʠB2wtttKK`B. !@b\т-Hт-)7d<IENDB`XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp__dep__incl.map0000644001725400016040000000022713273140101017356 00000000000000 XQilla-2.3.4/docs/dom3-api/graph_legend.html0000644001725400016040000001300413273140100015472 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Graph Legend

    This page explains how to interpret the graphs that are generated by doxygen.

    Consider the following example:

    /*! Invisible class because of truncation */
    class Invisible { };
    /*! Truncated class, inheritance relation is hidden */
    class Truncated : public Invisible { };
    /* Class not documented with doxygen comments */
    class Undocumented { };
    /*! Class that is inherited using public inheritance */
    class PublicBase : public Truncated { };
    /*! A template class */
    template<class T> class Templ { };
    /*! Class that is inherited using protected inheritance */
    class ProtectedBase { };
    /*! Class that is inherited using private inheritance */
    class PrivateBase { };
    /*! Class that is used by the Inherited class */
    class Used { };
    /*! Super class that inherits a number of other classes */
    class Inherited : public PublicBase,
    protected ProtectedBase,
    private PrivateBase,
    public Undocumented,
    public Templ<int>
    {
    private:
    Used *m_usedClass;
    };

    This will result in the following graph:

    The boxes in the above graph have the following meaning:

    • A filled gray box represents the struct or class for which the graph is generated.
    • A box with a black border denotes a documented struct or class.
    • A box with a grey border denotes an undocumented struct or class.
    • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

    The arrows have the following meaning:

    • A dark blue arrow is used to visualize a public inheritance relation between two classes.
    • A dark green arrow is used for protected inheritance.
    • A dark red arrow is used for private inheritance.
    • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
    • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
    XQilla-2.3.4/docs/dom3-api/inherit_graph_10.png0000644001725400016040000000560413273140101016026 00000000000000PNG  IHDR3ibKGD 9IDATxiL]o-ZPAQ\1臐1(aQqݠTŕ4F-4@P4FDqGP"B](~8;m -<ܹ̹3og}  C]E!G`QlbqiiUJ!x̜9su!rJF0YrpZ߼y* $´Z^'qG`QXBpE#a?~|ttD"PTgԨQ3gG#::zժU߾}cX_˗/P(ݻwH$,ZѣG^^^BÇgώ7T*tERyq᭭6@$ak.--GT$ޤ^xb`ϟlw`Z܌& .rpUUUpDil4*222--- r*W?~#""jjjBwbbEbPKf N&9;;O2hjj©S9BA&M ~m㣤R)B9qL&t B 7{NGclْ Hfff`` 6h4zmHܸqb-~4cᰎO>)JVhdrEEr>d= *++7mڄvbGGG`XWW=<<388Xѣ?~\RRٳ!C 9" fO>]BFP(zmrF*c;tNcQNNNCTjUUǛ>}+WLLZ+Ek6)3g,\p׮]h'NGU/JJJ`?I,Þ#GR:.;;[*]vҥRXxAܹsK,III/}**55=~~~ 煅˖-O*xP42Uaaa,--DrE&kkkbMM 61'^l۶>s IHH <ٳبWTTTTTlݺXD ɑBh4c?7:zmD"ׯ_hsttJ5k֌=aÆ * {dgg.`?> A7nQT|n{stqq;vJr׮]4+99 bٳgp&ڰ .7No۶MVmFuvv9v}`Ij yyy7osvv_ m?[lٽ{ZZZQΠ @͛ՕeGzrH}5Zֶ.m?ZԩSnnnvvv</??``N*cƍ.-3_+B̡ؓ.$''⬬^*BؓA(FFFpfoof&ac;?3 ! A% :c>UWW_ti ޚ챎2$++@ѲfDt 3 I3ftwww닌VSS:$p?pȭKH&[CSSD3QuFAee%jkkc2_?>˅zzz>裚ڨpR__p8srr._Lع (744d0t:=!!ڿNiiU[ZZL&,~AyHHȖ-[:;; ;"y'tVXXhhhp/^455 FFFFFFظ,::XGG' Z$W^Rt:@0$c="H6m***̽{djdddff&z{{gee+cNNð033`'\mddBa\\{d;6`nzzz݃W~yCCwҥKo޼cnnظpˆiVʩ,ԩS 7..nXs.!Y>^WW7//v<GtȻ3cdddee7X,X.));w. f͚xYҊf+**=zDP(\o*mmmv˖-QQQeff SLy92믿Byyy&&&gΜ={v&6]m޼y 9d>Fss{&&&Xb:;K/?h<~5\ i406l:uVppp__|~DDu8li|JJJfffW\a.B,6maXoooxxq[(2@rr!:D...xh6ﯥEx<@ 311QUU]x1l ;eeeu[ ޕ AHg"@:CDt WG7oGkki:ʘFQ(b$H$ %5;/c~?=+m7⿠ϯ Hg`pPXXDl==oB~~x3@:@ ^ wF3y~Wmٛ77 ҙSޟD"|&Hg{_Ar 7r1 ҙ\px#~j&HgrQXpltҙ\8Dw6wv&Hg#etd2_lG ldD5Ħ3!!蹠 ࠐFW)doQ%%4#5a+WD&hDDt 3 ! AHg"@:CDt 3 ! AHg"@:CDt 3 ! AHg"@:CDt 3 ! AHg"@:C&x3R?$;w R^^Ko[{Μ9a߾}, sqtt$4#Ⱦ}īh 3 ! Aoy0 gmm73g԰X,ccc;;kגdhkhhxy鯟ܹsguuuff5n޼y xuHJJh"577788ӓ'ON:5$$ٳgNckS__/wiӦ+Wlmmsssa֭[a0eY.߼릆y8@Ѳsihh/X.55v)++]UVVΝ;WN"װ ']B:ŌNg^^^===R>`<|dxxx>|z!\]]}}}_ Ú!H+W޽{VKJJRk׮-))UGGDz2gnݺ m@8ݽSRRM^Z 800… ׯ__nݲeN>-c ƍ7W\y%͛VR?~ȑ#ܞq%#Ga544"""$˒uttz{{llaa񚛛}}}uuu2wHLLNMMxQ[[QUUuԩI8߹s'999$$$--ĉ<***B!FRPPpCݻw… 2Ϩm۶EDD۷j>>***___777\Cɓ,YWLXXXP(7\]]>FFFg/4/-z>RMM-((())iƍ$>$$Dm###|EBBB`RTTTZZڋ/ sܣGmxuVXյJOOǧzt&Aќϔ`\rSrd8߾}{RRҦM?3???$zPPЉ'233lrm9_rĆoiizk׮N?xsxx8wrr? $)::=ɓ~-__~=3˗/y1",xC:,]Tn+"y1"օC544v1| 3 ! AC?dggߺuk\RAMgaaammm }bڵ ,! cڟ! AHg"@:C?q`IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_17.png0000644001725400016040000000434213273140101016033 00000000000000PNG  IHDR%HZbKGDIDATxiLSKǧ,"K@ *0%ŀ 1@#FP#1DU1D o.H"R!*J JжVh;=9*\}3Ϝgs9)B0$`ecllmM"H$W0AR/\fɍ9[$utt,S̿ˬ~j2bbbPGGG Fa7oDO&VUU%%%c pww$ϟ?gX/d󳿿 @}}YBrvss3T*@V  cժU`ff݃>}b$Iqq1Zreff&>g[߿h4ڵko߾ 0 ɷ9+< rjuuuQQJ%:t@P]] tؘb=,W^|bO{{{77yER|^8}$LNN>~8*(f=0S/̬/_0/_Ʋ]vHҰSN+5))ٳgBJRLh4׮]啕vvvܢJB֬ fnwww!&'&&&`0߼yuvv+ BX__,[\h.W^a{h BBB\nii [K$+W-&  y<>y$qG6Shtuu"!T(G㗖ʞWؗO3溸 :M1v _b (J}}=.-&X+c`ecllmM,+(3ٛ3?Z[[ :c`ecllmMew@ZIENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp__dep__incl.png0000644001725400016040000001331513273140100021317 00000000000000PNG  IHDRpSAbKGDIDATxy@׾OYD AV*j *je)K .VVkV*) O7 HyL;7BL&_3'w~˙,!AT2L TBuU| L~(ʑ#GfΜ#PI0)//Q98MLyy9."_'P TBZgJaÆ#Gx< [lYvmDDDvvH$Byg޽L&o&9 B~ rͼ|ʕ{^>6]__fX,VYYYllX,+|LjZ mmm^^^c8!~)3hFt''/yuvqgggꚚR‚ $sUVV:::N|D,wwwnxx`H$OOjx,$$Lc6l(++wWXQ^^1?˥Zf2999׮] \n]FF+1ظqϩSdsP㓚* G)Տ?y%m|ܪ*,,7''gHOIIj8cXׯ`uhmmvuuYYY `eesx{ܹp~\Aje`3ر044tppHKK233SSS[[[MLL$-0̒9=qwwpsscX-[$''He˖c+ccc{{{__~AKK+22СCӦM rss+((@*H6ܵkWrrrDD{bFرcH`!c5. @@@@GG^mii q֎`#&L&3//9-Ofq@~TW뚚ׯ ̐}厉jF޽k/0Cj;&uU:@h@U N*,_Q P- 􈎎ƺ7 A]ROϓL6n T)S(z5IR7oDQE,wZmw=,CK޿~Cijغ5DMs |1ݎD"UW?8mS+y}(]]3gnH@ @~=D~~m*"׭sؿ\ F9)H(s peav3 bWSP`ࢸt dC0 ~}}b8<|*Gxc@$n;;~ r uPVgtA`ܿBAaRxZB!zFXQyܹ--]bS(["tԩM\T)R<^ߧFXQu{z:f2BBt"%Inno,Dp֧OZrܩT|}}Yw12rɤ226ImH ?ul6di/6ovEpl @$YB"uL]ZWz[~ YXL&ϛ7c{] } hi򹂒 P`ABW)|@wor_`qӵqPֺH$fߺh)R^^^/CgCWW?&HY"%' wJP]C{KΖ7P<Ϟ>9kav6{TT2T7_OL;Oo$BXXF{+}^(c펲ZۊSр5k llL+*sPA^Rg]7lX/R?"#cw_/Jiq׮%۶/#:̙.T<#־(}8jk_XgW?vQ,kk#:];!XWWc| QTbΐ?8uIHȻ\.?!xtm//'=^+L/3s)]+z_P==ɽKJpT~P\ '-צh̎޼H @"64믪uyPrkkge?),R6ƍk=>?> k_BMl23cζ;H(֏+#Қ͞2aPZ_Xt-1Z}A }}K"z{X3S篟|re޵gdĄEBJƈF-y鹹/"#/DcEٴm7g^mqofdl~O?/A٫{{'p<ٳ99Չ?^@z7 E[{ZNNݙf21iӦ,\Lvpflz{_ė.EtNwwghB]A(,,w*^wM\ۻ򵵧<ݙ^b1sgփϮ\[ӱv>x]_՗/;_&$q8͝$!{ZX2I֓edlOfd2I%ukwzvvѣz_/55 󑕕ц ryjeKƮ]bbVc䢻{/' .~3~~$&cdX.O*z}}Oez&| gZomyz9N ׷}Aez&*pum߰!EWwZFfBB,7h044] D9!˓Zx3++Hkw씔 *N({\ˋ";xDŗA{wEER,gbnI`0vG SZ[n`@ho BKk!Jڋ#::Zrޘכ/^sFUUURR*]\\vލ58~xssd_FT\/> Z'P Tu3g xcd>gϞyikk/\/ H[kk!ׅk֬!H4(4n$iL@'g$ϼ^YYܜ=|;ܽ{711^rH$+<}1ro޼)7pBDAhjj6Fۻw>7yyy]Xlٲxx766U("z{{gΜp| ~f͚!6]}ZMqShЀVq7_'H=OP {ʂw/_ u:.((k׬9:c̙30**R и!\žrssgϞBf̘1}"cdddhhg@ 5...cccf>#:`0bccnfggCܓGYRݽ{FAǴcH ###m}}/Anwww_r (VzQuuUBBQ1!TyHHHHhh˗/n߾ AѣG>|XWWhѢXfbb>|8?XF&,>;w.< ???.p^TO2ZH۷۷+WJ C p>|W˳Z( N>ɘŸ\.ppp@1gΜBxGmll2GGGKA 믿充(nܸW50pf͚h555C*,Xχ h)L~Ik?A^xZ8A7nR' xxxo <{ Sʕ+?11)YtiOOϭ[ʼez? kjj> otVWWcBijjw?~lf2lC*IFd;Cf0Ƚr///_ϙ3g奥=*,,[d$qݶm-Dl1$* 0̆;wX[[K-Fqq9B$ݿ⋮.ccWBt%K֢-ڱcLPP[SSS]]< e5,]BoooLLܹs544:7ӧOᡁzzzN߹sgB]0ҺB&u;uԼy!***211555 rM6|K.҂zWWƍ LLLQ:ȆTOe!Rvk`r+QVȵ).uttlX P*nuCCԱ&U(I@h@U N*Z'PTPP+ɋh~@* ESUU5d7%a&'/248!uU:@h@U N*?C: G*IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_1.png0000644001725400016040000000315713273140101015747 00000000000000PNG  IHDR%|bKGD$IDATx_HSQuw@pҤR"fIDafe #MA@ݭ|Q!ejfLֲ^Nwu͌ |'DU(^t +W,> cÆ 'N">| b@Q!ݻz}8<=ϊ+VkT!IIIz9.B)Z~ft t\4M|w)iŹ8Giiy!0׮]0==7YЗ畢}eeeq,kXv-*++tz… ߿'ӏ=BCajjjRSSSRRjjj֨ŗ#o⬽dϞ=BRUUuVAOJ3o!]!E;&ފccchxY㎎W x<^ӧϞ=kll=֨ŗmٲezz: uV{{sFFFpk8k(xE/_ _F,UThֶi&(ԣzzzZ-ʢi];m۶1ŭ™]vm߾Ν;P(V:oZZ#~SS^?|pGGG$KQ544_offfа_@!][[[w؁5 WRRS*p8RRRN<+eŋ+*0j9xL|fggv{^^^ffȂ|D"694blpO'~655UR Yn BxN$jVA5kl޼r9Nɟѧ%zWYr/>l61Ln͛7Z oܸBgZ...z f91YPPz- 2=zǏy&9;ϟ?okk,//GRjĉr`Yɓ'FBt:ݻ' xÕgX5 /^^|Y vaD<11q䴴jԓ|f8? :ujժUp|kԎ| XQilla-2.3.4/docs/dom3-api/functions_0x7e.html0000644001725400016040000003136513273140100015740 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - ~ -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCDATASection.html0000644001725400016040000020565713273140101020641 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMCDATASection Class Reference

    CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...

    #include <DOMCDATASection.hpp>

    Inheritance diagram for xercesc::DOMCDATASection:

    Public Member Functions

    Destructor
    virtual ~DOMCDATASection ()
     Destructor. More...
     
    - Public Member Functions inherited from xercesc::DOMText
    virtual ~DOMText ()
     Destructor. More...
     
    virtual DOMTextsplitText (XMLSize_t offset)=0
     Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings. More...
     
    virtual bool getIsElementContentWhitespace () const =0
     Returns whether this text node contains element content whitespace, often abusively called "ignorable whitespace". More...
     
    virtual const XMLCh * getWholeText () const =0
     Returns all text of DOMText nodes logically-adjacent text nodes to this node, concatenated in document order. More...
     
    virtual DOMTextreplaceWholeText (const XMLCh *content)=0
     Substitutes the a specified text for the text of the current node and all logically-adjacent text nodes. More...
     
    virtual bool isIgnorableWhitespace () const =0
     Non-standard extension. More...
     
    - Public Member Functions inherited from xercesc::DOMCharacterData
    virtual ~DOMCharacterData ()
     Destructor. More...
     
    virtual const XMLCh * getData () const =0
     Returns the character data of the node that implements this interface. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of characters that are available through data and the substringData method below. More...
     
    virtual const XMLCh * substringData (XMLSize_t offset, XMLSize_t count) const =0
     Extracts a range of data from the node. More...
     
    virtual void appendData (const XMLCh *arg)=0
     Append the string to the end of the character data of the node. More...
     
    virtual void insertData (XMLSize_t offset, const XMLCh *arg)=0
     Insert a string at the specified character offset. More...
     
    virtual void deleteData (XMLSize_t offset, XMLSize_t count)=0
     Remove a range of characters from the node. More...
     
    virtual void replaceData (XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0
     Replace the characters starting at the specified character offset with the specified string. More...
     
    virtual void setData (const XMLCh *data)=0
     Sets the character data of the node that implements this interface. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMCDATASection ()
     
     DOMCDATASection (const DOMCDATASection &other)
     
    - Protected Member Functions inherited from xercesc::DOMText
     DOMText ()
     
     DOMText (const DOMText &other)
     
    - Protected Member Functions inherited from xercesc::DOMCharacterData
     DOMCharacterData ()
     
     DOMCharacterData (const DOMCharacterData &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup.

    The only delimiter that is recognized in a CDATA section is the "]]&gt;" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.

    The data attribute of the DOMText node holds the text that is contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and that, depending on the character encoding ("charset") chosen for serialization, it may be impossible to write out some characters as part of a CDATA section.

    The DOMCDATASection interface inherits from the DOMCharacterData interface through the DOMText interface. Adjacent DOMCDATASection nodes are not merged by use of the normalize method of the DOMNode interface. Because no markup is recognized within a DOMCDATASection, character numeric references cannot be used as an escape mechanism when serializing. Therefore, action needs to be taken when serializing a DOMCDATASection with a character encoding where some of the contained characters cannot be represented. Failure to do so would not produce well-formed XML.One potential solution in the serialization process is to end the CDATA section before the character, output the character using a character reference or entity reference, and open a new CDATA section for any further characters in the text node. Note, however, that some code conversion libraries at the time of writing do not return an error or exception when a character is missing from the encoding, making the task of ensuring that data is not corrupted on serialization more difficult.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMCDATASection::DOMCDATASection ( )
    inlineprotected
    xercesc::DOMCDATASection::DOMCDATASection ( const DOMCDATASection other)
    inlineprotected
    virtual xercesc::DOMCDATASection::~DOMCDATASection ( )
    inlinevirtual

    Destructor.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp.html0000644001725400016040000001237013273140101017273 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMRangeException.hpp File Reference
    Include dependency graph for DOMRangeException.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMRangeException
     Range operations may throw a DOMRangeException as specified in their method descriptions. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/functions_func_0x74.html0000644001725400016040000001032013273140100016656 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - t -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_40.map0000644001725400016040000000036613273140101016022 00000000000000 XQilla-2.3.4/docs/dom3-api/nav_f.png0000644001725400016040000000023113273140077013777 00000000000000PNG  IHDR8`IDATxK Eі[BmkHprӼ.ꎤR6Z VIE5jliIJ0/u޿6sH yIENDB`XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp.html0000644001725400016040000001100513273140101015626 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMEntity.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMEntity.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMEntity
     This interface represents an entity, either parsed or unparsed, in an XML document. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/functions_0x70.html0000644001725400016040000002055113273140100015646 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - p -

    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__incl.md50000644001725400016040000000004013273140077020163 000000000000006f09f975916ed6fdb1c2750a1d301fa1XQilla-2.3.4/docs/dom3-api/functions_func_0x6e.html0000644001725400016040000001073613273140100016751 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - n -

    XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp__dep__incl.map0000644001725400016040000000023113273140100017570 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp.html0000644001725400016040000001376013273140101017351 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementation.hpp File Reference
    Include dependency graph for DOMImplementation.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMImplementation
     The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_3.md50000644001725400016040000000004013273140100015635 000000000000007d5a21a2312d89a5ee0e21f34962734bXQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__incl.png0000644001725400016040000011261413273140101017313 00000000000000PNG  IHDRPO@bKGD IDATxg@JG" ((*lKK1HDJlXCj F"DQ,XTPQ# RDz/Wy>NP`yuݙβ("b3SPNyNy\dɒ P^' SNLXX@ٰXݻ2 2e Ӂ(\;PF'Oo699"Eff{^8 ;ڬOsβ2BHyyy``Y:wLϰk׮Ǐ(jÆ =vX+//߸qI>חH733駟 X Sbƌ{!zzz_|SvYZZz{{?y򤢢BrD"8۔eڵAAA%%%ki׮322i4d ;|hh\GfلPH}ܹs'N_B.\H0ax{yzz3&44"bcc:̞=;&&Z8UWW Ǐ?>((H Bnݺ5gΜÇO6ŋNu;֍MR83f?~Ν;|ԉ )Hgmmo߾3gZXXH~TUUUYYYQQ/tUSSbVVV!!! ,ػwoQQݻ !'N{޽{}}}WRRf:dkkK׾}{ɵTVV߿͍gggٳg<8x`UUq92cƌ-[TUUI'=ԩS7n{.~˚ %bEQ/_d>\.vժUB.CMMmR---SSSBHEEEHHիW׭[Wk-moϟ l׮y󂂂 *++UTT1_+Nz 7lذg͚1PZN@˗/ 4BBBRضm[eeBX,+W999ZKuul믿~zĉꚚ6mZ~$WIg;ʙ ߹sg͚}=zhii)R]]ϟ?/uZ!رcO޸qVUUٳEŵܵZ$ +WXԩStqPpIȠ.~ʚ N6o޹sQFBLc|@ r555$򭬬U|_}j;zEEx9...{III=uqFyy9r/VTTȺTsI,i׮]}LµSŋ;p},\pUJCCcׯo۶iӆޣG'RKVWW5]vljjj%%%jjj9sڵkܹ,kSQQY|={޼ycbbf9s޽;$$dѢEQQQ466m۶mz ,հaÖ.]ZUU5tPOOOor}=(>f͚3HK9}Ziԉ6eʔF C^`SSWW3fL}&Av ~:::K,D0NyNyNyNy\<}EDlBHDح-X,Vc,TTPꍰ(e@阚;v>sr8**&**&VQŶmQtS)?*?iyyfQ>=&&5&&%>>i99uvqvt6j!Z.dN>SSsy65n\sYY1LM9jv7~JIHȈMq#166o`٫WG9nU%OFJ}n\\3>jlդ)Q9o3?mk̘褂r55[۷#oh)HieeG7p9 a[FfNiYYEv-$V3be>ɢvԛ: ;h ڿ?f̘^ ֭={ٲS:tP/qY5=}Y5!!C$-U' Sr[E;g.::-&͜23 "edxQieeqq/cbRbbRMЃ*їUZʥoYҲv|]]]O<7FSZFF=Sp5GgϲĤWhh:8;9Y89uvr#945d #3Rڛ7v]>t薾0'|BLC1/8q}H{#ƦĤܾ"3ؘX;9Y89Yhk+(FHiw_=xV[/έ /1wr]++~>ztOEx`)}*}Y5))fubH?O-MMu@&d kČ #z۶ \.{9sG(HvJKL|}?g>tpwnnnLGԘt>_Hߪbhamm4S4zFJ(ه6-=kfƍ\(TvJ{,_.=ON# b:**j2bcSoHMhՑ`qSfDXttϳ=->ZbvJsԀsNK~fdtPUft1T駖va>S)'#;s&/\GGmvO>QG4|aXX?S\\9m'}禯tP#74>>O5>>ҷX;:ZX[XUdBv fҪuNܞ4o@$uuU"Q-=;UW #zǎKh׹s0TcIHȈMq#166o`٫WG9a:FP,NA)lF*v /jmJj);/s \zP^H =}I?&::\MMm[sthӆt{E?&&&BCCɩSVy.Cv -^+HihqݔWQvMFG'XZ)1C(%'MI}Eff!DZ1qqvrprVc:FhNEj5XiiբEyG)OvJJܰGiaatD oU/&%٬.] |.Bv -FHRRrg[Yӣ(:eN !E]tӦso<<,XBnni||:}j||:/oUuqvt6B)(VťO{Nz12b:@ SHD;pƳYYEN#TT$$dƦ޸ZU70ի#}Y0#ȃ2db7o&͞L2(mvJaa1۶//jtP G =}I?&::\MM7E6S'}#jBQrԘ۷_dfxk'' '' mm5chBAF^'O> ۡ˖d:}?]][HH,**q͚S/^g}*}Y5))fubH?O-MMu@v i]|̽_=pժϙ(o]+.7r!LE$<3E*"74>>O5>>ҷX;:ZX[a3T痭_զA@F7{ܸvfĈgD}eX;w~СQ)83;v\VWW]䳩Sq8lj=**j2bcSoHMhՑ`'E<ed=r} *8? ggɟ)5ssÇc_}oG"-ݻ33UPPPo~=S'}oo1cQMD =}I?&::\MMd߾ڶUyÆu߲evD8*R? B(RQ&%m?2FQZZ5~N@#|2Bۯ,~Y3U yg>|ժ1NN5Ĥ&&rݻߪ];EG $plcgpFW P*NΙ3Gjrt HHD}Ǐ3ϞC|Iv߹LwpXqqk1OCť_Ν lrrJGƦ&$dD`ծ]ߎ8gO gz!0p*T]w;9Ҟfݺ"'XMMo_ g.~j٫Wdž7~b`Et),,f#"]\k>TQQxx800d:"eQTTznJLLÇ|DO8:Z$;y}̛?H{߾LuUToySg4XZٳ\XEǫ9p j<ܾrA}kWͲ>pX"6ߚ5Pï֌ۃmM()!Fތrh܃mmXZ B荢m[E޼{[wzذ.=a:(et^EQaa1Οܜ4wjjE"H$sN=a]/133d:嗋ߥ ;CUbq f_) r^"yjjn@gX1i>RTTԐ!C)=c[ڴ&g^X,6!TuuZ ~矙ӓ([[[վEϞVeyye_VT`X\.[ |YhիWLG` qԔ?8;;7O`;ܰl?ۚ^,+65142554j^X[GI);tM(#6e`i`icӞXZsYY9͖C@X1czcǎǏ[i>An:6AѣWXf.ӱ|6mx }Qz._>rd;/ Z3dC(st~LhڵS_nի&5k_ZZA@qwٳ͛'u2Ϲaa 22  ڴjɒJ֦ dgzrWEM>]CCHrބ8.+9nADDoUW^^۳gO ''YX4֖JNNn)m.xy 2b:&DZӮX ܩS3gJY^^ӳgOMMMGGǍ7 bj=kĈt' /d:6('8jkk=:55KmL>X(xP@M,[N:5nܸЧO6E`M+VxyyB.\f͚=zBJKK{M6=x/$$dBۭ[ո߸lM֯?c`x0iZtn59##%%%{[Vy/_<44M(| =|P7nЯǎK[nBͤԢʤrӧ;GE6퓭[/ ڵj J NެׯDӧˊ'>INQ( 999׮][RR" 9FUQQQ9%'Bz(o(?~>}jjjy]\\TYYYN{$n Mu^.z(}'M${yy͙3~]VV'J݁ i׮ݖ-[!_evQ--5exׯK {è?4FlPrNpЫ =j#NheZVh ̙3g͚k##wRgCC'Ndee;w̌RҟEIIٳ3227o(:pCw_1իR BNZRRo>BȔ)SJJJCˣ(j'NLOOQ޽֮];j("""zMQԽ{ڴiS^^NQСC_x#;;;HD"85o!d)477֎}vv>`BK%`K>|xbb;w,--빽R!d%%%ǏwUZ-ѣ1ffK>ײAJZ}]rOnݺMuVPfiiYZ!Ew+%%%I]ԉR(iu5K|Xd u %>Kޮ]8qӧuKxm۶DRP(n[[[mRU)d>۷e-Z|rBBB.VMW\(jȑ6md;_ \]$Z=ʪm;on'M"ꙝA5bz=%xA;=Nk5/9"~-pjgӵhdZ}ȨH:::|͓'O,X@OIIIիx{{{KPQQILLtwwӧOpp0=J-ҭ[7YigkZZZZRSScccoܸ;88ܸqڵkF".]---;gđbccqFYy466;Xh||hROD=uȨBfSjBĖ+$vnn%5*N/_eսvڝ;w fۯ^T!9mS~'$%%˔j#~;ycǎQUn3a„'N]|SQݺ*kKۂ.rvQ%֤t{d23zxjCj%'^}&$rOa6iGr&/gsZD`ćd^ڵkװaÖ.]JO155ɓ'PYY9e޽xwwwYE~냾&I ܹfGػw!C\tƍtvjddpRRR/^055v̙#G\v&deeyyymݺuk֬7o^~~>uC#N:Û6m:ujC|uhbbREꍲV!gb UQQcǥ/`btkzgz:}LLL)6lUR$;v`Μ9cƌ)((Z\nwԩn{S)&I\vB7o,޼yҥK u'O}zfۛd! Us]^^^&Mׯ߷~KQԱc444J.]аoiӆc[[իWˊj͚5֕ F=h PHQTMMԩSOvz…ϟXbhhX]]Fofe,ziIII111VVV^>{-**åBzP;w^\WK i)Rs iooǏܹJUVVi&<<<77oӦMeeud{ܹ3Uz_۔\,%Q322"##ǎkff&it4hO8akkۿ*Ʌ/\յJ)i}%[W~Z5Q>F4}3j?vrAތZhPՠKSX l9KN㑬?ӢѳZg;wٳ'=pɓ'۷o_PPPSSvZ ggK~vJQ?ܮ]:޽{ԩ 4Yy`݂T=ӒJWWWOOo=***rp***̘1COO}?Cee*++WX! İpmYYҥKڴiӥK+W4ãAMRwz۷\__ŕ^>?` 9;z[k+"gն+7m:1 yo R611֞:ujaa!=]j+ ҥJn"""`֭%JZVOJ.z&w3'甈[/<22믿])%m۶DruUlPv]Ԉb Fן1780gMdhPՠdeSX}N. :xImGHViNbQo޼y /99ʊqFYjjjzh#JS(jj{DΘǤRRR80w\ci:w6سg֡Cs_xej?-٩Қ7o^l)((7o0ӁǺ{n߾}gϞ-gDjkjMCvvm~=ǎ2(5FQkjMIz4 +Qltq޼yG. ={9)N})پ_qvvLZ)@\eܹ22ڲeʹs?TU?lтr!;h}n Ґ@Z=;>_\x ELLBv }t Ś<֝920661N߯[[ `t Vە+G_ꫯ1ny*b:(`$z(ƕhii1JJN[sX o\]λtɪU' Xua**RNRr(˜OLG8pjjj L_ݾq#_e%%%* pbϚ5KGG@ptgUU]WulP999TVr4k:t0ydEp.'7mo`:egbCPЬ?t Є΅sq^~)3~(xћ0 Z^O{$P yآaöZu頔?$\lÆHMI!;޽͙@o?6L St)!RSSY5NN 5k_FF!A6|p= a:PNG..ZZmaaas$% i|Z{zU?@@ ;#z0H7|ݵk// ق"7tǎK QX@ ;'2ߪ*(.UUw߹EGpp舎bӚm,t \s}- 5X{ϣG i 55jbcSOvx55c@&@tSthA |gQAAoz0BhŊXSI.((wwO4|}v>wtm?zÆL)L?<*m0w KKCce@I@6 }dÆ<ܘS钒r\]z }Ç^=VS ӱBv ͛I:GQԊ}t?7ӱBv ]tt%6z,aa1&X,c_RDԝ;/ b:hd[WiiϜٿ{wc@'O2 ʑV+i55BoϘS)nLUڵ=Ӂ@BG_B#zѺL)I..Vl6hؘ|E?@v P@ Izv􍈈}ņ g(dŽ,+MF:VVlpã_>L@SbcS,, ڵe66Oo^,.\l$Ӂ^:20Lw١2 u_LS␝quv߻m|nȐ-7o&2QcZꄅ̙?NޑWYYhhd_NzA^^yyeL.^Lrن y<ӱ);^X=;0( ssC s΋6wC(1ԇqz%ӱ);-,՘~s\ȑqqLGvuʕ6dKwp@mU.uzWGGm̘_B ˙avᄎdpSS]c )(zU^ 2ubxn>v,(իOj͝;@@v / 1`/b&OvysŘ1K4_3ߑ Ŀ~nx.QjA43g.!,Xcv=Μ~6'هLGE }mHjj8 )sj^=yS3P ͚<ڵe[ΛǬY^*;[U_TT4OTxlB@ **rTPDN))VVFLRLطzMGE+FEn~9==1W !?ڱr3Dr~H$" ):}:yãG!Av VZZ/ĵS4r=ǩ5ȤI}@ٙN4k־eˎ,BHDmrҥ'MCIIevvԏ(RWW:pk6ե!Ӂjj*nnT3l-S!glgϬ9Ϟe  şΟG>ѣWRs8l[[67k|do%&* r#Fث0{ nw}T(>_鹧QFl6ݽɓ^M^- ث.$I0֭jj.d 7oJC((Q>L %WbX  YSr0$"8G;/ihԕِGRRP@x΋sM{^Dp\.{Nϕ+GXU>Q<&8wq{P(rfDvĉׯ !\.[[mDCv @!ee;c:ٲ];uB@ 77HDYXmBaY\S~p>ѣ aqN .\XбDBHzz>! ٩Bp'%iיpރap_Lʈ!/( 36z?`Q!v @{@o:EZGGgٲe;88X˫R\\p5kу---ÇR7nܐŋlmm]^^N>>>FFF>>>|>ewʕ;FFFYcǎ3g_[r{{6mtСC@ x^^z۶m%{_'g.|xbb;w,--Nϣ!aaaQ?8q"++ܹs&&&q:t/=zdggGABԩSKJJG2eJIIɞ={@[VX177622"K%k' L|-kjYuI50PF/9s/QS촰^Ynݲח.]իѣGEuĉO>[m۶P$ BY'NXPP@}hv*.NDcǎp8ӧO^7E/_NQTHH%^jvJQ@ sڵk8NhhԨ]$9Bzvvvtq_%5;(90))IrEYZZJX7xIJ*`ŶBjjj88q>P_m$_S@vzm}}}~-B֟uwrLOjZt)BA^[Do>~Æ JUVVDcǎ̙3g̘1R_p]20يZųn:p5k̛7E (--yK;*EQӦMHCaX}H\DZ'Oo={&uQRoFB_޲&*9؝:uFFF'%% SSn]"~mԨQ[OOϵk׊G%o޼Yr jbuwr!=>UW.ղB#PNHaaEv->;Dg^xÇ/_|z /_G믒f̘rJ~K$>|KJJjjjx<cǎC?KJJv!겲2"Yyϙ3tR##ŋKp&N8o<'''CCZK}-ACCc̙ΝKIIu떷ԩS,-xb~~>}#z߾}~wɱ+V>}L1+}||"""^~}…իWBxFFD"N8AW g}vСNNNk׮P޸q˛kQoaavuH4goOʥ(J,GEEQ*uJ7+*JT~Ո~,Jw0{줤$T|Los~~~ׯRPnuٰ%Ν;lmm'OL_?(iժUNNN*jh J/gŊuuu/hoomll¶o٩q#՞dϡڦ?H?D;0(,JJ0S%6̜9LҧFGG3(KII񉌌F.LF˫=_}ωXF<$0( N(ĵS!;sb쬘!;scccIF殳Ƃ(S0w++Q;(殻[lii,t `p\]]pܸ8\uHOOHtXO\`zzĖ~ɨg 3dCx(.\e:  ׮5dg߯626vEdOXUS7ׇ3g#lн)S0H~$11'55/&&|QQ؇駛 ^=`0r-F) LFT$&$%]=h]qsFvkvvced#;]wTVVwĜ۷| f.[6ŅDQ~S0wFqW$0--))7+<<̉x aa^LE?LqqmHӱ G~(ZYf gEj#::xϞ w4:1 Av )YQ,+uu7/2.nBxqjcđ?Xrdcx0NQ e&OmY!\ 8>QS0wl6[&bYر?p…cTA;v<XS0w\.["1RYFMt\yoO0XS0w\.G*Ev `"®gs.]*J-?j7qՈ.~~N%N ;s%)QC1R-MQO0@v e)JOAƎ3RmDGݯNNvL-d`8XkF'}劊z>g[l02QQ|}Rق0 r9]]btȼy Օ,ǎQS0w<G$0h"K32sOΓd11f^V௿(t#̝Eg(@=ߏEYv8]\\t,ZAv ֲ(k9q#o-+]tqpogg@v )P,+up7/PV:@l6k~FFK/=t,ZAv ֲ)R/'$d+FGxC3n7wtb,4d`lmQw ĜMMe <2dqiӂ%YVo3f2 @ᶖXV(+CBC=32JQ@v R&66L`goTSSo2V˱::z ҩS]={(Att_s!;sgkkAqqt,.+=zJccر~{ce:.32a[[̒Ue:~ ;sG_;ōtraὀի]d1xÝ Ԩj(޻buuX,DBȷ̙ 9n,IjܸzHuLIqB~h,@=rN#fXBGGkFP);vikV}L jY=PVjΞ-j$H2gl@?9X/H_LP$K{, ]Vp޲ER+f)X)ԝk7K 66%%s8lF0tYѣWz{]`̊PVji˖2ʝ >L9>rTX-lc 5-NO/HL̹xjQVjܞy&*=;:B) |8zǏ_S\ᰧLA)ɩHL9qX,6-/PVj"X,˧ND*)b.(>!;1iv-y)N(朅 891蒛^ܰ S0k/ʕ? rg0=kMN}fХK'OGpa:.,O<1*6vLru/q%&d`֦Owh(=uj;0Me6611a;?**e㏗KY}}L&# +`YcX/MG !,°^05e"$::O?@}zѢB8Сv )Emߞ)Pt 6%%7>Juu3JađS'";C̝%ðaLĜ*OODž Ǣh3Ţ;Ģ(5t |Ri/5b1wg箠fc1Pޟ}Q&eK7^{( NG/7eVc1 ٩9zh\\ҥKİ44XHllLbW&yYɓ׺ď>dɸy"-a,kҤI>>>LbpyRGKz?=^3uQCAt699쪪7ޘ;e{W-[t`ScRW'LNMNήJ/8r$J!;0==Ĝbkk^LLƍ͹LSåZVkWJ$!;0DeeuN]OHȹswA\D c3@ܹ*-,//1Ͳ >|شiSdd!CƏGI$)tG'xb/Xt (r_,#uN/ amxg 55mj;:U>AsPۡ988̛7BPrJ;;7Imס=x!;#pA/RSSS]]}P8f̘qegg'W^}>,sVVV޸qCQqG:LIO$=`ݺo"#n~)>ŜPO}ݺuٙ~oj^ݻ)V\wq޽Ç06#{%$$ f]\\ !^^^ѻw~ !|9!Ϛ5+<<?zN>MwmݺNMi6m?.]zQ%K(nW_ ^vujOC~㒒\]]7lӣvOS{ϯ\ذak_\tVD=o u}z?CkvmnnP=ˣ(*((Ǫk555x]v577d6T/njj(F^UUտ3g/=YYYr[gee%$77?k.Ls͟?IꩩgϦ>\ָ777s-zo)nVEQΝKbŊ>@~^BHGG'|K.uM6} ^aO"s0W !wԨbc?җ^~*J vt4LݻMUWWײe6mtڵ={h~>V)Wqҗ".MPeLSPC&YfG9w\rr2|ѢEo۷fϞ_(jժ͛7}v_kXcǎ BHlllԮ`z;/¦MjkkSSSnJxqqq6lwWX*nV___[[{̅ VTTkS[n3RSSN81qD///ŋ-g֭0ak_1bĮ]>SO=̾N[[[5+R^^;'P^kﳕ>5cFhzFzRW!LG`#!o ?wMWxR4D]]]!] U3Ϭ_>%%+W\z}sH0} CM)(:qℇ]$ }١C:99]Cd{ƍ˗/onnEoaavuH4gyTdΝ'O/hPԴj*'''W_}cBRcbŊ:666aaa۷oTxFF!/PZNXp%a=S^|~???ggwuu]=_==iڃ(+e0;:oDW,GEEQ*ř"OQ|gÆ ٳg]]]M)@sGD-((͛~Bw,J0 Gnk 5C /*!!ĉ--=dɸ9s"lm-_Ŋ_lӁ#tƧ9)Y |/N_t< d&~ݺu,-v&'HHɩtu7/2.nBxx7A`,WW׽{j4$%979@vsӧpA`It~x1(+ N)>lT\DoL`ʐ ΞOL̹t.+]lQL`CY)!@vjFVV! ktYil;;,mJTCCn7.I}LwtU 66܇?{&&67??.HX<6F*me:C]UUt:snɓ׾rEE=>~e||1蒏OuuCoxN\0.׉urX=%ApNց!ISSS Ee$ދ,Kˑ"ѝ[==dAڑ2 OG*mH%FU"iHy=&8dN}ot 0XXV:d޼GN0PPuNSiimIImqqMIImYYH$aYNAA|{P; 'O^;qjQQ1 ^Ժ~ܹ33 tݾxl~ZZ+X,f :ݻͥueeuu !nn.&u!;TҌӧd2YLL%PV Βڼj:#-,Cqs,w  MХKGE|LRlԨ-6g?X^/vA@:~A:pΝƒ~/n?? W! )@/dGt(+5gt.ZZZWRR[ZZ[Tt`'aa^Æv0~*fN Zd٣x<`ZuzޯT*z2=̙z''Ӄ3BX,wFş'lVj9Bv ٩ɸwĉG\utNLz%vWVhiim^^U]boo=|3Cuq߅2T/ ٩7ď>dɸ'`G#G6o>^XJJjϝ+HK+ɩN077{PWZZZG'w4޾H8#F/Yu r t !;):8Xϛd8 XzV}^^޹DQԐ!V#F/~~NA_?uz}}[Dϒ%,xDf55-cǾ0ujӱΝ+<[- a>C )@/dFJ~1J4::t.JgH:_贁wgڔcǮVV6W/7|3!%:޺uӁKtR]z~̙a11a&3!)@/dF611'>rSSoY bt\cf:obD_8|{D7r8qӧs<<̉0DovK/\x@Ԑɨ6Sg ={cH0N ;X(=hV}tKKJJjzz$\.k(]2jhs x,#O2'=OOGc􂬬lք #s#<< +l d8ٛ(+5=E'SIImANQmW # G&0V;qg淵cZ!Bv ٩aR*+5 8K^^UQѽv5Sy?{ӟ޻w5Ӂ<ɕ+ ΜɫiJOK3mZ]]W!BvjhңG46;|ы:t'RbL1dto;`_}{wZ~_ |wEE afѻ!`ΐBvj .XȒ%㙚H[[wESڈn;0џe?cyX25f_LLجY\aH0d2 eFGqZ&Fvv#G*N1;0d7?X|kb:sYzzAj͆v4'pz`H0(d2B^wLD"6 eJ)FMҍQ߀w^=ԩ L{R³go6CCTX @v ٩J{(+5JS׈DCbTWLKn ӱ "zZܫW+y<=-nnLK F)@/dQ[ۚr#>JA]GLrHɧu˫FSyXZMPn;0FmWϝt,q|s/uvýP ,"‡ !Cv jkNMr…";;#,g~GmMM6?=v\t z-ήHK+HIQW3lڴ ,::/cH0di] 65uMBGX!}Ϻz=aLFWU98Lʟ93t֬p{{k  ;T҄+^Zha(+t }tKJjW3hH1M1+fuށz|+0ЍXVUՔY4-ODth `d]VzC,b$\<}O1j5|<qsg:X& xF*Wc1hm􂴴|wP3/O`9d>nqzzAbbŋE(+,u6)Fuo;`}}:18ii~!֭z''Ӄ3BmlpCa!;td2*'"11ĉkbe%GGW~]„܀!9yxLbJJjϝ+HK+ɩN03 C@{Nz!;} e qr2:F]QbG岽~%"!܀W'jjZƍȑuS1hllpܹ 0-C߾(!@Cv ٩6Zo$$d߼Y546v̟4qsAS%?nWW.>)F|w\nsӧ2}z֭ Ętu.]*Sos93,&&l$( CS Jml,cbpGEOKipoTi7<￟YrLb$'(-ut2?sf٣ b::!f)@/dJE"Ittyƥ~)M1ZXxqZP/TBn%˗yӑXۍYY٬ F asFxx>0 0yNz!;UDR]݌~)NPZZ{S{a# ᇋzj"ӱzٳmmF70$ ;'pX$ }tDw4Q5dՈO191) x?}ioowLbjzz$WJK+8s&k(=-ʹiA\3 `2ehb.ob)Fu7eW_eޝW#z(NKceŋ f G;- 0Nzav*/+=yԼyC|ZL1 ܀@FG1cݽ|bqzzAffT*3/&&l֬QLf0$0!;eViiimrrѣUUM%1fWV*ʪb.ň?X|kb:3"&5fCC|Zɓ\\\ 8d!;&'&'fgWe˗O9ҌJ5L1JޘbTp^Cqc|iiݩSIW+ ϞY^~0¦OAѵ`H0!;eiO$--?11'#ښn&1Ũ! xBJʍ_Ϳ::0YOKf޼HwwC3; 02J-*РHnAAb8&K4}m+)*5ii~!֭z''Ӄ3BL!`V۳J0bf__U0^X رd1}F&y-ȁQbngGm76FE饥Ye yzΜݪ)źsgF1s rr*--S0 ^bO?NCT!;sw^(#٬p޽۷~II(=XVjeś5+|я?bu˫**>|[X-ˇ ~#TO}V&L:~Bѹsvwý~IH~L* i`0 Nȼyͽ-岷m]fv-I6m:zXwktYirǯ ]:,+}eFffIb*M1Z\\S_FT trWPYٰjWo7I$Ragɟ x͊D"?w%߯_>Qcf 4_uXs8{&2~z>#1LQԛo&DEϏevdl9.f__WO?|t9II ҥ.9e2*!!S)b}ik뮨}Qӎboo5|ӺDFGY#uBѺuH775[ ?QɧINQZZh3e ٳG bE$!!tu !l6Ț5Sn}FgWW7O!$4s۶QQ SNl / N\USS|66--]dﮫ=^TeˉZ"ϚٳGzi]SZXpwO1; ;GY,43,%F=IDAT̫𞣣͓O3ai^wIY4iۍYYXG a֯r;o3evHŋ+V|Irlm孏#B/{RT*cY~T\܄A]RW^^&)%V={}ə3g8://1bԜutlٳ7RB ظqvtt0.'Vҥ2XJkΜQ?tP.=`SW*T.caӧ,x a0<̐}2oO7.-RsDl<e d|O'c7onQ駩}b|+ݾ}NvWW׺k#GlEZ65yI%%EE5o7H$2织x 3/TV6^Ao%alo54OQkk7Zl®]qLGz-7էX,EQߖ&~_VVW^~bmmyO)}82S6m )!mf8xH "뼼>uNс?}YX!#''ېO>-(#(}H\3+/]MOԔv苨2sOX[e˓Lz{gΜ^p|}lHޢƩlooܩ\.a=ge0vB,g OIdɸAŭ[+V|UUդ95%ved aۑLF;ZZ:U*TѝQDQԿu~ǎ3J\cWs#/`t,o<GiX"TZU8{[sg~`;ۛyD"?5zh#믿,,T tUx{{?| :Cڪ!5HMd:cRUUΓ6#!Cy<%g+ %ΒZXYy&E*t~v߸rR6jgPc HFvj,--]\ wqq^TTSVV[\\qRYMM>[=pq!#GN{(6lLMԮa`tȃ|vFrلvFy{yz{쁜nd&.**0**Pv &>2'4+4#$3,𠐝7777SL̙3gS.󐝂qsγ>(~u. _daaqY KW^]_iV\iggu)CcXJwx'ڷCpJN*crpp7o^EEEo#Qm*}Y? CU;} h{۞fFPq8ydllڧnݺL?vtt|7ZGyw6lBimm}饗{QF ^~嗚1cБu޽Ç'6PVWYYy Z?cmIу9R`N*nZ̔d+W|HHf\ہƐރ2ކCZZZLLڧd2Ycc#yǎVw護x7-je...^^^ӧO?qȑ#w׋!z ͜9SSNM6趤Ahs8]U1z}/BPHHf\ہƐރ2ކ;uꔗWss3!ȑ#|>"7mi&XL8oFF{zjAյ!VVV#G}(LKK :t,?IIIAAA6lQPf1̰B.]zQ%Ku}Uב<37n&XÇ 6o L*p8~ !)))<򈍍+;.E_j^RΝ;|!C{˗/+mGq%כ@46SmjORwP{{<%%E>lmmOZu5*'?????ߗ^駟uss|2O>Yx;wƌ[oBx .l۶-,,,//͛'Nܸqc_k[ZZݻ?moo߹sտCQE^(Bro!d (")1;;Qgڦ"BȼyBc! bbbJKKmۦvpź:ͯц61VG)..vww~:EQ---666 ֢l腹m :jґRbŊ3foyyyt+",Yy߾}F]xQkd=i E7(Phaaf͚r}J;.r_Ѫ^y#~/}ݻwiOOOz#F(,lK26IS, C$}yyyק[= :m{76'o, Ug7SseضkjjGb^^EQAAAǏ-,,?V]ڵY&IҾV_xqSS5оF:M&-X\RxШӾN/k!EIRŞ )[ߩ_~ߦ(BkNU_'P(H$p8nt+"3"?;5ɶآx<޴i7]*fff*Ow\徢Uzt/|>7ߐ?f6oE,dLNNVIwᅲL#m{>u4MvM=PB/>(JVVV}E"͛7UEQ.]Zd)SΜ9mmmO>$X񿴴TFquڡC233NVLLkٲe6mvڞ={`uÇ+ދ@iSU,MMTs)Ƣ"c==mSkޗ7TdL&[f9rܹdzE~۷o͞=/P\kժU7o|bX111ǎ "ب]=))iv !~P(?v:EQ֭x!phkkk޽pŠ^{Mj~+_ywyG>9څ3VGp8/^n݄ \]]F79 jO^m()Nj۰aCEEE~~ᄏb \+d[ՠG$YXXtuu{^TV'{y6mڔT[[uVh~#)6KljIék/oHV~Gۣmk-mV=9}|2z+$m{|瑑'NxxxB>;tP''kvtt(:޸q˛kQoaavuH4goDW,GEEQ*4V?x𠥥|EQW\aى}hk]|||VX8C5lS+cz svv^~}WWڅFak/~ Qiՙ=ڟmCRԴj*'''W_}nEj~ZGd[4φ gϞ˗R}VuK܋D"ٹsg@@ɓ U?R#{MMR^'ANRݻfϞbmg՞N4T,gL}5?,,@`p*]YFFFhhJWہA21H;@$/,,~CڤHII񉌌 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMPSVITypeInfo.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 #if !defined(XERCESC_INCLUDE_GUARD_DOMPSVITYPEINFO_HPP)
    19 #define XERCESC_INCLUDE_GUARD_DOMPSVITYPEINFO_HPP
    20 
    21 //------------------------------------------------------------------------------------
    22 // Includes
    23 //------------------------------------------------------------------------------------
    24 #include <xercesc/util/XMLString.hpp>
    25 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    34 class CDOM_EXPORT DOMPSVITypeInfo
    35 {
    36 protected:
    37  // -----------------------------------------------------------------------
    38  // Hidden constructors
    39  // -----------------------------------------------------------------------
    44 
    45 private:
    46  // -----------------------------------------------------------------------
    47  // Unimplemented constructors and operators
    48  // -----------------------------------------------------------------------
    52  DOMPSVITypeInfo & operator = (const DOMPSVITypeInfo &);
    54 
    55 public:
    56 
    58  {
    59  PSVI_Validity
    60  , PSVI_Validation_Attempted
    61  , PSVI_Type_Definition_Type
    62  , PSVI_Type_Definition_Name
    63  , PSVI_Type_Definition_Namespace
    64  , PSVI_Type_Definition_Anonymous
    65  , PSVI_Nil
    66  , PSVI_Member_Type_Definition_Name
    67  , PSVI_Member_Type_Definition_Namespace
    68  , PSVI_Member_Type_Definition_Anonymous
    69  , PSVI_Schema_Default
    70  , PSVI_Schema_Normalized_Value
    71  , PSVI_Schema_Specified
    72  };
    73 
    74  // -----------------------------------------------------------------------
    75  // All constructors are hidden, just the destructor is available
    76  // -----------------------------------------------------------------------
    83  virtual ~DOMPSVITypeInfo() {};
    85 
    87  // -----------------------------------------------------------------------
    88  // Getter methods
    89  // -----------------------------------------------------------------------
    98  virtual const XMLCh* getStringProperty(PSVIProperty prop) const = 0;
    99 
    108  virtual int getNumericProperty(PSVIProperty prop) const = 0;
    110 };
    111 
    112 XERCES_CPP_NAMESPACE_END
    113 
    114 #endif
    115 
    The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes...
    Definition: DOMPSVITypeInfo.hpp:34
    virtual ~DOMPSVITypeInfo()
    Destructor.
    Definition: DOMPSVITypeInfo.hpp:83
    DOMPSVITypeInfo()
    Definition: DOMPSVITypeInfo.hpp:42
    PSVIProperty
    Definition: DOMPSVITypeInfo.hpp:57
    XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__incl.map0000644001725400016040000000047513273140100016741 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp.html0000644001725400016040000001425713273140101016433 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMTreeWalker.hpp File Reference
    Include dependency graph for DOMTreeWalker.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMTreeWalker
     DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Macros

    #define GetDOMTreeWalkerMemoryManager   GET_INDIRECT_MM(fCurrentNode)
     

    Macro Definition Documentation

    #define GetDOMTreeWalkerMemoryManager   GET_INDIRECT_MM(fCurrentNode)
    XQilla-2.3.4/docs/dom3-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7_dep.png0000644001725400016040000002327113273140101021350 00000000000000PNG  IHDR49bKGD IDATxy g dńjST۹JdBV6VEmECʢKtmԖՖ.[9r;_23z5>|gg3& F#HTTTTTTTTTTTTT$ҩ2*355ݲeK$Gv {! Yx9%d;t3duxuTTTTBKK٭ҁ ңKɮt dSuW' )Ni~bi8bϞXߴm[Q{7nH=ݝ@_]P(5kV. 0+g ҥdW!}o߾=zhqq1م(=ꅇG]!d235u ?o_J.Bĉ!C>~{ ڧgO GWtt/\`glfcܶ+Eeذa!###߳,33ׯgdd٩1OaXBBB>}###{ꥩj*|f l6>|֭[BF!|ٳgBs355 oQ ޲P( 8p Ob8q–˲~;/:U6٫.r#55s߽k׆_NLw-PiihJLL̡CX,}~~~ttthhhy̼}vdddhhhFFFnn͛׭[WQQںukQQQNNNVV˗W^윕~ƕ+WB<3f Bhů_}/^ռ;;;P(\bEVVVVVHB],_5}B{oBidWCC +Wr *b B>QlDEE3FGGÇL&gϞ>mAhhh"\.Bqqq={߿TTԅ ^^xGUVV^reرjjj<߾}E׮]{ȑ敨EGG'''꒲[55 شiɓ)/_?P@~_nAYY okkklmdX+!lllByyy?cMM ?B`x{%igg~Νk׮eff^vʕ+&MB|KKK|yܹ3z 6>~С cܸqꫯ+ ,**zʕ+[7nmm`znu _QQtivL̮eWVr/7oqXزAzoڴv͚M_nDSSkݺo133wsrww"~Ҋ177rrk֭[agg7v&Lwpp@1?⌍ CBBB& _ãqǎ[R'!!g ܛÑ`)~~(Ftgbc&MܳgOuxuRT`u!@ z } NWBuAedu8{%~NQVm \!¾С_IQZZsg֬222L;vvCU6<^#>4o'YYٴ)^rd=tv!u&~ċo6c .غ;6;z)))uٳ]k8 ]gM?d#_Z><|N$td@\?0N/X0͛whp?f"+W]dR8v?/d#Gh4Z\܁☘ud"1Ȁd\>`즦&ˑ#ffVmض-{d"Ȁ&Lp>rTFƩgA 7oy<ٵH29?~?ΛյeF{kVkdF.5+̞ ŲfWEFFxOv- tܰaNκsYud#/WmB;'O^ˑ JJJ۶ξrT2ٵ2Y؟:Sw L'Sx'd@ x쵗/ Nv.=%֐]H ѻ͙3JOT]uVڰwG]K; RbY;]Yuu߅|/;~vvCVX,OX Hyz55Փ';%h͛w޹sS/!Rfjjv\6aS} kNx y2 }3g.3G]q~%ς ȄY=\\F 2/YZ}}? LӅnK556mZKv!m Ȑɓ0&c!j5Z=4Oδ;mڸ'Or.4^^snذB955e{\\o_=5ܾ4-88"=ɮ%*fwo}"{M-)錝7srnΝ>z{FF@Y)k&M8ppTTمD TWW%&1cRE{VU햔>rlw]af:{wȮ_% 2v^G-_KKߦ1;b)''ADʀk˖ݿ+Y1>T#HYhKD0(0 [~Kݗ,~Yw}"!e!)i2nSb~kP <=gQ> tluFEGw}k̹׮eCV 77/>#0 V$._ֽg</9 &LpVVVx10?a!:5NB:aaFheh-[֓Ut6f̄Sd@yzhtϟ6̓r$};Ы !DY</) &Mrz53BðCGc03fܾر3ÇOA z(pv*23ϓһbfhĈB>d)999sc8b lSMM##tn̞:u,駀~ #ccǏK:وYt/&Mr]6S@Yٻ \.WGGn޼u+ლg3aŊ 2DHoݝNeJYb2M_ (Fƍ bHe2ŨQkkkOX _X,7o:c A|166ECa3PPP-!zFh``kY4&@aaZKK+88zv/N7@  ^dd$(0^ccӷo!i~,6lB}`nkkjaaHl7olee1rȿʹs陚#0 KHHӧ~dddbbb^455WZպ匌 ;;;555&=fmmm`` ӳ/cc8tЭ[Bmέuww_h˗/W\W[[KlRb |ŋ_~}_x1*233o߾yu։j777{{r|V|||FFFzze}p*_NJ*_(jjjTUU}}}\nn$? v޽i&WWW&qF1o߾¢k׮=rӓlB($$DCC!r7X&ٳgOЇYѽ{:tEʈEȀ:hkk_r֭[]4m*))8pO[[[PYYϷ'Xׯ?};R]8쿔򜜜 t=acc#jVF++!zFsǺ:@p]\\8 ss'O tzaH_xab"8`݋oL~򌍍hBUUUgԴ a'Njlld0jjjD* ,`iii.\Xz5B`xzz=~xʕ5ب\WWg-]Ν;ˬYEiiiWU}2Ef@OOoݺu˗/;w.>|ԨQL&UTUU:lbbe˖dUUU*E젠 vcǎ⌍ *QZZZ111666^^^NNN,oo;;;;99Iڬ44z~MօO/ ), (zbCNۨ} 7^ke˖-[ pBPAAB_X*u*zu2ꢹz ?>74dG'GU w&G@ep!2>qjd)8@]p.}gLA?UU% wo2!8*H;&ré&ސ w**kkd.BG2(!4NWBB$%%)I?8B_@vŴ@h:!u9?EE/"##6lت'6%?ﭬHvUDصijjڽ{~~ I)ɔ<| ޼yyҥÇKڸN\\tuu'OPH?UTT %j믿N ]zD#G.[իWl6Ñwܡhvvv-744w/ 8998p꯿k醆%''ںG)UUU4ib2$C|||::ZUUMMMInsrr|?#BpM $WXXaXFFF&L(((zɹsoP n۶|YK8$֫W/Wp8-8q UTT8q---524٥K:ZNNN8p @GcbIDATihh=zT4D|~uuϻwW]ПΈ@@Gtmƌ{mjj:sɓMLL\}Ν666ǏqY'B΅@7n߾}JJJ|>Ru1 {yaa!pAA… LE>KII=z4a {JFN:`0 d -qH C B|.>]mOawNo1M b#4:nbbf͚(9zfflȨ́2$cll|9ѹ{sTTTwb"?~dH޾7"Bz 7F֎lq >} Z |cљ6S ٳGKKKj% 2:($$TRGb޳gOE9sԩS\x F[3`dd0uum۶ɤD1@@1'NS2  BBpϞ=DN3 Sttt.^Fѐ_5551 rǭ bXɽ2L@k.YV>Z]Fv6;55a"BszPG |e[W[LMQۼ~!jjB))u8=uu\7B|Lj͛h뿞 PhĞgK2=N|zPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdΜ9cbbrBIIIVVV!f l6+((0,++? 733={Zt[[[UUU 455Ts[@d>>>s)--544믿QQQnnn^͵ ѣGiP(~?ߊ\/ZsM5?Ii݂8HgzJJJƏ|rD==|roݺO566~%>ׯZuuu 55p8D |vdߒ%K233ӧO -..urrڹsgfϞǏ/^skaxĉF&NS"oA,G@W!ƹЎ; T:udr8PXUU뫭P[[~kkjjzyyq\|z뵄BarrMZZZ>Կe #ўFTJ l=hg\PdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPdPPRB! #=^AףsOvr}/:TTT؁4IENDB`XQilla-2.3.4/docs/dom3-api/functions_func_0x6c.html0000644001725400016040000001236613273140100016750 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/inherit_graph_33.md50000644001725400016040000000004013273140100015720 000000000000000ee779d9d9aad2ca21070e525a04b48fXQilla-2.3.4/docs/dom3-api/DOMException_8cpp__incl.map0000644001725400016040000000201613273140100017261 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.map0000644001725400016040000000126113273140101022417 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentFragment.html0000644001725400016040000015103113273140101021724 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentFragment Class Reference

    DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...

    #include <DOMDocumentFragment.hpp>

    Inheritance diagram for xercesc::DOMDocumentFragment:

    Public Member Functions

    Destructor
    virtual ~DOMDocumentFragment ()
     Destructor. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMDocumentFragment ()
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object.

    It is very common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a DOMNode for this purpose. While it is true that a DOMDocument object could fulfill this role, a DOMDocument object can potentially be a heavyweight object, depending on the underlying implementation. What is really needed for this is a very lightweight object. DOMDocumentFragment is such an object.

    Furthermore, various operations – such as inserting nodes as children of another DOMNode – may take DOMDocumentFragment objects as arguments; this results in all the child nodes of the DOMDocumentFragment being moved to the child list of this node.

    The children of a DOMDocumentFragment node are zero or more nodes representing the tops of any sub-trees defining the structure of the document. DOMDocumentFragment nodes do not need to be well-formed XML documents (although they do need to follow the rules imposed upon well-formed XML parsed entities, which can have multiple top nodes). For example, a DOMDocumentFragment might have only one child and that child node could be a DOMText node. Such a structure model represents neither an HTML document nor a well-formed XML document.

    When a DOMDocumentFragment is inserted into a DOMDocument (or indeed any other DOMNode that may take children) the children of the DOMDocumentFragment and not the DOMDocumentFragment itself are inserted into the DOMNode. This makes the DOMDocumentFragment very useful when the user wishes to create nodes that are siblings; the DOMDocumentFragment acts as the parent of these nodes so that the user can use the standard methods from the DOMNode interface, such as insertBefore() and appendChild().

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMDocumentFragment::DOMDocumentFragment ( )
    inlineprotected
    virtual xercesc::DOMDocumentFragment::~DOMDocumentFragment ( )
    inlinevirtual

    Destructor.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.md50000644001725400016040000000004013273140077020257 000000000000009c69ebcc706e4af8debb71154060ed57XQilla-2.3.4/docs/dom3-api/DOMText_8hpp.html0000644001725400016040000001276113273140101015310 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMText.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMCharacterData.hpp>
    Include dependency graph for DOMText.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMText
     The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp_source.html0000644001725400016040000003210513273140077020505 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentRange.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocumentRange.hpp 527149 2007-04-10 14:56:39Z amassari $
    20 */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTRANGE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTRANGE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMRange;
    31 
    32 
    37 class CDOM_EXPORT DOMDocumentRange {
    38 
    39 protected:
    40  // -----------------------------------------------------------------------
    41  // Hidden constructors
    42  // -----------------------------------------------------------------------
    47 
    48 private:
    49  // -----------------------------------------------------------------------
    50  // Unimplemented constructors and operators
    51  // -----------------------------------------------------------------------
    55  DOMDocumentRange & operator = (const DOMDocumentRange &);
    57 
    58 public:
    59  // -----------------------------------------------------------------------
    60  // All constructors are hidden, just the destructor is available
    61  // -----------------------------------------------------------------------
    68  virtual ~DOMDocumentRange() {};
    70 
    71  // -----------------------------------------------------------------------
    72  // Virtual DOMDocumentRange interface
    73  // -----------------------------------------------------------------------
    87  virtual DOMRange *createRange() = 0;
    88 
    90 };
    91 
    92 
    93 XERCES_CPP_NAMESPACE_END
    94 
    95 #endif
    virtual ~DOMDocumentRange()
    Destructor.
    Definition: DOMDocumentRange.hpp:68
    Definition: DOMDocumentRange.hpp:37
    Definition: DOMRange.hpp:36
    DOMDocumentRange()
    Definition: DOMDocumentRange.hpp:45
    XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp__incl.md50000644001725400016040000000004013273140077016641 00000000000000872a138805addad46c8157dace214c01XQilla-2.3.4/docs/dom3-api/examples.html0000644001725400016040000000326213273140100014676 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Examples
    Here is a list of all examples:
    XQilla-2.3.4/docs/dom3-api/DOMMemoryManager_8hpp.html0000644001725400016040000000755113273140077017144 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMMemoryManager.hpp File Reference

    Go to the source code of this file.

    Classes

    class  xercesc::DOMMemoryManager
     The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp__dep__incl.md50000644001725400016040000000004013273140077020527 000000000000007e6477a84265d6d9eeaea84e0588834dXQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.map0000644001725400016040000000051013273140100020767 00000000000000 XQilla-2.3.4/docs/dom3-api/classXQillaExpression__inherit__graph.md50000644001725400016040000000004013273140077022306 0000000000000020f40cdfea2de605f32eba5f51b58905XQilla-2.3.4/docs/dom3-api/xqilla-dom3_8hpp_source.html0000644001725400016040000001616713273140077017556 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xqilla-dom3.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    23 #include <xqilla/exceptions/XQillaException.hpp>
    25 #include <xqilla/utils/XStr.hpp>
    26 #include <xqilla/utils/UTF8Str.hpp>
    28 
    XQilla-2.3.4/docs/dom3-api/inherit_graph_37.md50000644001725400016040000000004013273140100015724 00000000000000b4c7691b369d99caa86f797d41714b0aXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.md50000644001725400016040000000004013273140100022765 00000000000000bfaa4e6ea73d3b09d70fd798a9aae840XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationSource-members.html0000644001725400016040000000737113273140100024266 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationSource Member List

    This is the complete list of members for xercesc::DOMImplementationSource, including all inherited members.

    DOMImplementationSource()xercesc::DOMImplementationSourceinlineprotected
    getDOMImplementation(const XMLCh *features) const =0xercesc::DOMImplementationSourcepure virtual
    getDOMImplementationList(const XMLCh *features) const =0xercesc::DOMImplementationSourcepure virtual
    ~DOMImplementationSource()xercesc::DOMImplementationSourceinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.map0000644001725400016040000000044313273140101024600 00000000000000 XQilla-2.3.4/docs/dom3-api/classXPath2MemoryManager-members.html0000644001725400016040000002004613273140077021344 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2MemoryManager Member List

    This is the complete list of members for XPath2MemoryManager, including all inherited members.

    allocate(size_t numElements)=0XPath2MemoryManagerpure virtual
    xercesc::MemoryManager::allocate(XMLSize_t size)=0xercesc::MemoryManagerpure virtual
    createCollation(CollationHelper *helper)=0XPath2MemoryManagerpure virtual
    createInteger(int value)=0XPath2MemoryManagerpure virtual
    createNSResolver(xercesc::DOMNode *resolverNode)=0XPath2MemoryManagerpure virtual
    createVariableTypeStore()=0XPath2MemoryManagerpure virtual
    deallocate(void *p)=0XPath2MemoryManagerpure virtual
    dumpStatistics() const =0XPath2MemoryManagerpure virtual
    getAllocatedObjectCount() const =0XPath2MemoryManagerpure virtual
    getExceptionMemoryManager()=0xercesc::MemoryManagerpure virtual
    getPooledString(const XMLCh *src)=0XPath2MemoryManagerpure virtual
    getPooledString(const XMLCh *src, unsigned int length)=0XPath2MemoryManagerpure virtual
    getPooledString(const char *src)=0XPath2MemoryManagerpure virtual
    getStringPool() const =0XPath2MemoryManagerpure virtual
    getTotalAllocatedMemory() const =0XPath2MemoryManagerpure virtual
    MemoryManager()xercesc::MemoryManagerinlineprotected
    reset()=0XPath2MemoryManagerpure virtual
    ~MemoryManager()xercesc::MemoryManagerinlinevirtual
    ~XPath2MemoryManager()XPath2MemoryManagerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classAutoDelete-members.html0000644001725400016040000001073713273140077017613 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDelete< TYPE > Member List

    This is the complete list of members for AutoDelete< TYPE >, including all inherited members.

    adopt()AutoDelete< TYPE >inline
    AutoDelete(TYPE *p)AutoDelete< TYPE >inline
    get() const AutoDelete< TYPE >inline
    operator TYPE *() const AutoDelete< TYPE >inline
    operator*() const AutoDelete< TYPE >inline
    operator->() const AutoDelete< TYPE >inline
    set(TYPE *p)AutoDelete< TYPE >inline
    swap(TYPE *p)AutoDelete< TYPE >inline
    ~AutoDelete()AutoDelete< TYPE >inline
    XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.map0000644001725400016040000000011113273140101020703 00000000000000 XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.png0000644001725400016040000001655613273140101020736 00000000000000PNG  IHDRpdbKGD#IDATxi\BnEZE*zEE[% BVزX+(UR l@y?Lon$$499'3 0@2UdD 2@(͛kjjPv/${"H&Mb0Ʋ2xo8VZ`eGY~~]F 2@ Q (@HCYEEc~~p͝;w-ZTUU?JHHX~%K|>BpA!!!0,22rɒ%}-QHנQfU`D9YZZz{{>|!qA___sssPgg ===srrL@ m...ٳ?d_|9͛ܟ~h},V Qqk׮IHH@;v`͚5S?gΜijj:wK.-]]]}}} 'OtvvJ/"X,ݍR̴PvY0@(Jpp+WҮ\L5y6''LJLhk͕֬~zݯ-==pZD^JM6!>˗Zѣݽʕ++VHOOv횇'dѶ;[PP~ŋ{zz^v"//e˖ sڵk?Çs\•2gee~qq+ۛ-,,zllii )uvvܹ255?11fwvv_9rGA;w!$SNϜ9liisQݻwSRRGh+V/k׮ݿWWfAAAǏx…{ ?EWAЇa؟I&_|)$18*```&wttO}...,kǎrnܸ7[.''oڴi4 !xb3B۷d\.06MR5447[mtĉ_~0f•`0}%%%d2ϟ3gBNWVVىn\YYiff&6 RSSf:T>"&&&MMMhxx=D.-OGyd+++OOϙ3gof``>lLMMq c&\ 8޼ys7N2$:99gϞׯ;::J;<<|͚5ǎ?)$*G& F:CCC|G*`y򥚚<_uww lPCTq~Nx& "(2 þ{sssWWWի:?##o, x $''#d~- 1Bqpp8tP}}/z{|СwGFF.^X]]]x8d2oݺr) ~}%) pqqq-Z$e%D{(vZQQщ'c d27m4o޼yijj;v,99ѣޥ{]~:tDDĈ#<==Ο?/3‚}˗{lmܸQ]]}…^^^=i1bѣG ƌ#]J IHHhll466 RX[[[---):99mٲQsPp?AD"mx<^yyIa;//OJ۬{Su7xB, @(ZZZ˖-g%t Q?tuu7o,J0@ Q (@H L8ʔp>#1b"6Z[vt 4@{W+V24\w_q8<4+}}+~(/FdIG`qccbZX0bcmmm <}ZxZ?L3 W@@y?l (Xz] WϙH +&JrgjsQʎUW7g?ss{ʎ (y ]=[#;d۶d2i۶eV}p ֎.^|l޽nteGD32bZ='IQQ+uPi(A0,3(,삎ΈU[+;"{dild1K֭WSI $J?^h :SXXk⪩IUvDrCrN5Ymm=FU/KѱSUvDiyoA`D UL晚͛o0x^Cwgܿ#*%# QQLMQ?hhh ={c7vӓ?b`D "'Ipp&߾}ΰyuk/}NCC/_~6=<|cbe wG@~()/ڹ|vv*-H@SV}rxkU^g( |Ϯ]Y ̱PvDBQ &̟ٲo68P(pxPD9,1?[d:S0Gq,,fʎ$!N8,&fQ?xt޽羾.ZZʎ$ʡLׯ.⋹d2I k#i+,숀 QMWU6""?4@KBCR(䈈\]*;@ 7,$${۶^^H$8Wi(/lݚqV׬;>r$Ml΁>dǏg(;" $!CeGRZZx,RWWSvD$ʡɓeeu0g0 yWӦ!_46yzn.s۶% ׎yy[ ˖+(L{{fa!pedx}N͘7]xХѫ ALWWsffRR ,-Gnp酪[=~\tAGvfBsދw-ٷo՘1:{5(2 {|uuKM R QN'F'PWW5k%!!\\(;F0 _/ do_5k嫩 ׯ@*$J%`<_C"!+1o ?::|{Q wڌΜ-+ $Jյw#Gn~C"!*~6|ܺϓ8H _0$U +tc狕Pg|A gg(+*zS"8nzTff>ϞRpH$J$]!I[*6.h]]oM+p xx BL&"|ޥKBi```WWWH4_BJ7PIIwIz/^\^^~= p9K8BK.eXgϞw8aڕBG #9%<<ѣG3g T]CC#>>>))BFg}o޼)ܡnnnPx葔b 8Ne| &tyPuuu9 H堠 гgτ}v'/_-\TAAa@K>}BP~~>a|> • )8Q+hvܹseeeeR걱---۷|>_Rq)oyV3kD)u|:E DaݻԄu1~(1 ʲſګxwY "^{%!\hIDGG=Ν;3f̸w'|?bV]]bx==h ,7.%%EGG͛4… cƌW9booɺXkvÇ4M֏*//M3N({+hVZZ*^x) n߾rJ--s^|YRqIoryp@ ӧKo]1an5JPuuu\\Ӗ-[5&&&>n5իW3#G+^,~a<#5---#...YYYvvv .ɹu떫+BhjjjUUUxϟFΎ_ĻPWW3o޼ 6ykϞ='!BԩSo҉X8| ˍ$U{4!e W#_cc?_SRR)ׯ_lYss3aq7>oV^?kavQ%uu*nfMy(|Ӟ={nj믿bw^q…+WȼFB"\%D{{{~fJ*qDr?Ç3g?aXFFN_ha999t:FSOOOGGǪR;wJ*,,ʊfvA ,]t)Ù2el[[իW={b0ݽox7ŧIz߷ĿKv8aڕBG #9=^)SΙ3端Tfh̦cǎh46MX\t>SDA8]DeMMM~~MMMFzTSÇO:?8?Qss3ٽ{qtٳӥ'J 8?v#GxxxqRxAAz,Xu_״R( wGGJ 6ܼvZ##fKf[YYvɓ/߿O&333[lG ዅv>or\{{{:.e'cMHjW E&J}hll҂'oO?~VYYiiiIxI8Nqq1>Ib(!lpUPq5'M`0k*Jt$aG[[{Æ oBanހz/(z@A Q (@DbikkWU0A(/`&AZ%dD 2@uaWW˜IENDB`XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__incl.md50000644001725400016040000000004013273140077017736 0000000000000071e3984bad1897d84e00bda53040a901XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__dep__incl.map0000644001725400016040000000064413273140100021550 00000000000000 XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp__dep__incl.png0000644001725400016040000021350713273140101020605 00000000000000PNG  IHDR q bKGD IDATxwXWB(AFA0X F%F5WcQAc%64APA:(.}L DT`]^0y%KΜ9| .Bߦͽ?m۶͘1իۻw/j˗/Ϝ9?xΝ]v/_$Cȥг&OI\\OBBiǎ˗/466A~Iu .^2̂755x544C &--M^c>:t͛Ν3003g] hjjj A~@m۶}O:?YAAN;QTTD>n<;z+<ѕuy<޶m&OiӦ`$RRAA ?? o;!l6a2---Ν#BZoSSSL9R\\wtuu=rHXXXqqqLLΝ;'N(&&&8}I4m!!! l6dxҠA3%$ 4Ɗʛ z:ރ\ Ըu+zK\$$';V?44M{ǟ>ݺp_ߐ+W^~]X](++)//MU@)SWyb2nTS{\s55MA0tGG wMmRRԶյ7@F\ =%'7p&>{;^h޿w'R"ǷVVVKoꮝQ2*3R~YxÜ9(\a( i|hZ'&X~˖TE5$$QQQꟌ:|&  }թS11Z5ADم }+KȨ Kձ]*)qr2YZ 묬 m/(GCC,IhqддFYYI !ȨУKU^v atEn͚+Ս-MM-55Ml:B9Ք)#.SϨ22ȨK%$ܹ(9ant} ee%.JxR2>{^UՀ  L:v,022LaL뾲ʲe\3_Q]H_IFѵcP]#=ȥUwx{T89xy9P]YGNNѹT""rs+ɉϟy0`2*7Rxڋ_r8ܙ3,qS1{IŽ{gS]BF\ ywcd"{TM;ba}L qdFz,:\  H}|BBCLLԿj>ĉ6mJu! >Q\\---nmckkk;tԨaȨ@ @--wc (;VلFWw͜ivTO 2EEȨRGyy ODh9c6+-z*;TFQCB*LQmlt1mO@.Yl6ѣWAy66^^'3tLnn;>\;bյ@dд\dT>@ձ]*)qr2YZꢨZ2~Eo_VhOQ#"JVwԨaTB.)>>!W4e54.JXOt0>!ohh(̛7z޼O䤨.Jg~ٱʲT$ CFr)@ 17Z~Lk&6v"88eΜS))=TVVe&QK 2*%KW_>\TTd`oo@uQBѣW/&Ơ:dFȎ~Njg= =/ p3gZ-]8l2E,#Be,,(/ '= ӐKW ΜyzN̠A/v>;@W ܥ`0p tR>l" M358p30X,6r)>,,!۷cN*3Fy/S꫚RRȥᔔdZg\rT2lkkoo`oo @H]g ӦY,40P Ѝd\\LωZgK‘Qr)IJ*g7nDJ.Z4vBAP](@.:VVQ/_'BOǪc+(2@K,'$ IWW駟<=G#Gu&8UST7ձBBҐQ:\ @ݻ'NFFjT%0($## 6ȥ.?{٥Ka_~9jb{UՁT%0^ BÌuZ%3^@.mYǏ? HVܴiܹZd?ZgԆ昘3رjjT SKz ͽs';(9F{ @ Х:f:2*RW[˺~=ɠ:WW}<.?B)!ȨЯ  _+W ٶ˗;H 55!B:66DGDDdEDd 244.C 􈈈,_пJPXfyc$.kjjA.:a^E׫߸R͟=TaOu;x#Gs͵bLk&MBxAhs8ׯuul%%n :Dur)@ozSNN&9R?9wwwKT_ | .\xf̰ZlС. :R\ }|B܉QTk//. :9ȥBདM>>!iÇk8ŌVbb 47s|r)A.x ͷoǜ:]drrr~, R!eBG66吠ϟB(CZ<^h̟? ׯ1bͯ*{FYgҤI4-##zIedd|O.CbbSwK/^lhFJJb=^^xr>lee+yyy lmmUTT3tׯ_o޼? `oaaA^*$${YdeeVTT!//?M@!t?hls,ww ?bxС_~ ۷<800L~ϝ;E7޽{ƍ{a4WYYI>VRRڽ{w/¹q#r„'ϟ X9OkjB)lٲx-[PJ0`/^H납7oy{ihhTUUqu!C 3fL}}}||}z iӦ9;;Yt͚5/^0`o>x (((--mΝ:ɓ-[O8q}??޽;<< 6ծ\ ""Ç={w ۻw?͛?nڴI0榝,[yj+n]}=B:pڵF&"==Hyyy>Og0%%%~77n/^tqqi}N$TUUijjo۶!..ZGwww//;wv87==]OO],Y/Grss㜜55578| 8ȨRZZrɧCLuuu n8ۢÛv}xΛ7 Ǐoݺk*AiƢG KJJ >}:skג_ڲeKYYӣGo߾mgg|r3Yf-]VYYËF[hѪU\Gļy~ׯ_~zʕ>쳍7&$$?~^]]ꢠXl,z"O>!hii988DGG EGGoݺuYYY_~ڵk%$$Z_a'NXre''N(//NΝo ''kזP])RЌGZTUSAA %,+;{tCֲ\>At6/F(ݱO[[Q[[qE 11F/ w!BTZZ{ P;s{ TWTaaUaaիW#t:MNNRMM^[[TNi4uB{|>aΜQ/55SK!!yy, L!J>G @)1_>|ny,^3g51ع3 hB_DݿptGZS'!y=á֊de[>|Jr A l&¨RP`IJ󭩑(/h< hl6 .|>G'á'l65|燇 )56\~5Ciͭͭ˫<(,pxAHH0UUɫKo H}|BBCLLwn#!U,[J oAA--wZZ<^]/FSNVFARчҚ$EcJEEVr33`0: b b$WIIA%'BuCffIIAhAhii=ZGiiqit5|0pVKªI5>>޽&!tuttde%߷f> oAصpލ=v,0#lX罜M0 K*\.O^^~w( >6gݖ-{'p8/32߼iit:h4%%}'G~6zu2 E.=~(-XP #--d'L0~猘3-t|k>๴!H??z4ř%d11R>.\8Pê*FFrr 0Wyyٳ􈈬/2ccsY,6xh4~*+,fs%;866ώEGy=&lvQeef1NԎعs…c?> |?b>{luulh4YYF& (" 7LVRo#? N  N9pGZZF# F\J0[VZ[ׯ 'M:~ȔN+) Е8o}?9;;;jSS˳g~~qjll>\dLCS~i%ii%9L%CC!CɿÆ)0@B.T^.&Fww]b<>Ь%&S] 6EA (m`bnE)--NON.Ny45""cl>nzF |ݜk",KNN/ {yb 8u*zpN] <F#Nx`Ͱamg/>o6=t:?Vb9s>\fNHHG** TFt!WNM-IK+m߰JfTr{UU-At:1@OA. H-3gn7o~'zTy[k`A56Vo3ʛ7 ϟ&W4`}{{ Ӵr55y {2zyy_y*Ht:miK:~-͛a2rm\ǟ1h\\^U$L1O QTTx4r?KKk Qtq1usacIV%V21h?5 Baͳr<ٜ`/;UPPek>x s8^a;ZCɩC j?8^RRahhlj94TdH>:jTSӸsKMv\]]~Ӧ[/pL&w'#ʙL&@mUM\k^+/ٽ} fs !u1YY&:::¬>#,3,3,#,#,?h4 y==##U}}CC5}}zDr):ֵkA%%5NN&W}ed98 \olNu-SJKkJAAk(AT g!ATOO _hhhhh'z}/nӦ?L3,ȃc쬨6lÇk9>|l\ >}ɓ|ҥ~ed$777sv;{6t,ݻ{zMjjqI &..NN&Cb99dX%ѥXl 44Ij*خzVnnOȕ+ }lek@xp/^a~M))ł TTYYOBQ33wnY?~T$##aoo0n!lzV^^ 7>M5zm HZ+uugݻx{ =zUTd7laOO$,<\pѣWMQq薂;Wq_\TTرSpu5è`{m>JJ*jhh&Z0O K$$ܾ0oy>!7K}QQӦ٦*{BdkhBB~ZZ)9577 99)%Akzחeُؑ';jj*8:g(.g{8?۳/ee{g'=KrG-X0f$s&W\y1::wz'ڜꢢ'OStP-BkHuȥx<~``ґ#9ZϜi#44dRήl2A45ZC;WYYIr@@ғ' ͂UX4Elu%&.Y~km>od`i4\ٕNx|+--amR߽ѣܫɰ?1 )00Cn:u|mjrrQ}}IH A.nS_|ӧLVtѥ(  |R*t[W X,6IxΥ$3mlt]\LE5KX ol޼>L&CWWI[[nGǎLcbSGV}Ԇ4y|sos(JcqLnvx>_PPEOO/MM-(%@##USS cc5ccu}}~C.n?^\pgδZԱtw/n? ؀XUSHHBrOh ǏWEE**]\L\\L D/2~zEEݺu-vุɓx񓊊\ӦR8~|G^q۷c-߲eUq{u....&sWPP^RR\Zfszz&&&&j**"@\ ի3g޹3hЀy>Y$A]aÍTujh*^~~q$Nl>qpssQFm`v\MVv%%5VVn^eg76o[q#rӦ?O]7}VdӲ֠{ !Çkbd> >Dfjdɸ30+)i'Յ<l 57$DjkwR<?**/mmũS-G,Vٱ)SFP]?\=Ml}eiusefXq!;|˖鞞s͏D4snlFF٠A&L0vsVݢRD$$'&66)&"Rx? ͷoǜ>U>f)EéSO?Ju!"HA#h 78JPik+:;o 6 I;wӄmKm˗_d\+V\(,{wuw݈9)SF7[xV6GEI'L0; Қ6J=|+B.*+pṯohcc˴i+W:Q_& Z&$  FD{3!!ƍ~GVhi ڷZ:0i1c٭OS9U844mKbb {o_ԩ#>LNN>Juu⤤¤└fhlfbndfj(sRxvFc.48B_g_'>9+ Zݎsn%%5*FFjVHL,\ZJJʕNWЯ򕑑8v̳q.gmmkL;VV֯Ys%88o]ns͊ߏNnnӦY7 9J.P@n=%++idfneninyB.Ϟ$*}XO"%mDEܿՅ56[TTMIkhWVݼuFdVVE?A45<;hH}<|WuT]6oiJHn)~66:Gz n@55'65X[Lh:eʈC[_*x -Hhkii`uބ\ hiܽ{ݕ+M0 ndfݸ Յ[Cb'޼Iۈ?ٯ&I 7jkYֹR LWɓdu:SSuJJjb=qbCC?~][Vnne&Ur eGrC$$TW ʐK?**]{M+VL bree K.JmZC:h 54T^jF7oFݾqt4󑮮fB;[nތrq1ݳ]h|ձO>9yybw#qq{Ë-+4Nc+231\ML57 2\ .?{٥Ka_~9jb-;ϜBzO]+;\WVVG5\TC,s'ƍJUwvJJݳiqM11ΝMlNu9ƍw?y3*"bK>xnu'܍ь҃99 f'ɥjTTNUUI:TYS{*C."""'Iڊϝ;J?Qx/ I=:Bz 9 --$-ukСʭv_߼Yԩ#ĤoDS7?O3gԖ-edswz$tz?IO/7n۫zvnvaa7\'7//W#Bw/.=[ 4 11wO579R{/޹\lc0y[f>wl 6זLK+MI)ni U T5+\ޓ'ׯG'2ɓmƌ{ m`)..oC?rYNN{Gs笞>]\L英!7?/.**GVVr8CggIܧ"uL+/#BEEv.zS?e]qdPEEҥ}@MvBkTPA%am ˗_^^\\3z0ww)SFׅ]KK+ ¼ ;翱_ }_zÈofs=zX/ܱ'T=z?1,,dNdg ꄄؼ&qqa- riSzJ8A=vT&NhiT Ak(DSRO߅5+x</=|0`ۈŋ ;[ȷyf .-?ިRR'L{#u{Z?\[~˖i}7MC``*Ƿvsps"EiiMDDvDD`_ ccu1v(%;o!"""744=o99I%fδZS @R>/++;XDG,Ku嗗/U9z$> zB``ƍ7kkY?6w(TZZߟ814cod˖Y؍744T=~|Z[iG[tq19zTbyyye<_UukkkkssMrIGGG皛k-^l?s5f…cW@u!P$|wcħMXP'bYƭ[ϙ3m'wc+V\˫ܵ>[V[&6[kQ]UWNJϏˋɍ--e2&&:VV" @!:ֵkNW;9ZkSk?]plߺPss-2.bwĜ=u吅 M|͛Q۶ݕؽm].k_,tNϟ4ź 9;v=:k]Źosߏ+-V2"";""+!!#''9b[[]ss-;rrRTЃKEP^^ a.xvKDuQT Qm-+'䢊z[C͵Q鮴Űsձ\]<=GP]ɩ/^ϙ3j颔{N5jgYä^ᄏ,++uħ'v IDAT<33MJj9<۷c'L0vq1N3¬SRRdҍFԱұ m5ȥ",wNh//. zZZ=:w lP2rr::AHmuQQ٧N=}2w=}:xGC*air"#un}t;)On赪(/Ϟ^fͧSRBB''c77q 1A Ȏf؃ZX յѵ KEDzX`dd_=n +| @bΞ]j1ryUd %GD33˸\^Prj!49.Ss,q4 BYZnne_+[CCa~N ˜5؋?QP}}C{F ;rdU[JJ?uWW3YY(l.P#"r*+륤--9RgH],l }ri|v̩SNN&^^,Fm-h+ƍ3|o,-!%ׅMMm[C͵^WccˡClmu˥.Y;N^9\.r:bŅ:֡C_:;P[L/(*~$?188N98[-72""+22;""\][[Fv.v>*+pṯohSSŪU*T JKk--޾nh'6 hRRQeel Z ^p8\ۯ#?qӦ?ihlk\)+tii-_GUUիzN7ox֭E7ov'3$ߏ4[N:BU[QQ/_fEEe'$\55y[[][ۡG34T'9G!=N߽+//='+( (ᕛ[9z׎6 ]l 56VǠA{yy'O]r@ED^PVVc?,E~jÆe7n|ivĝ22B_׵OZ=K{U}}3̌VÆ)S]|r(5225h;G=X]TB.3x<>>!&&_}5FB_| 1RSKƏsRЏSqēW_\sE ;rmN[܎˿wouUW7m>ujS;YBbbMS)`9!!70Puq1uq1l !.QYzUUÀVV66ڢ}ri¹{7'ii%66+W:9;3@'Z&%d54 Tnߎb[銜~` &60c߳g}ӦS>x^8Ïz{j%&~g-lzNlffFnn aaᙥ#G?f&>ބ\*ϝ{vR؀_|ae[CJJ U U T UML9sN+!!u֮t~7EFf_=/?]l|?owHի/_g&%9;k .$*+׮.}77%"5$ lyyiggS'' weegxyziiQzdF52šIKNDDOtt.;w(@ J ZQPssM2vѫE]R|㍌Ծ͂Z־}ϝ 7pnw-ATWD=o`QQ[y&ϷeѢV9Ba_em++G窩S]P߯lf(O# Qe>DFV\>6р\*,l;1'O3Ak`DbLk;1V]?ӕco݊64TS Q'nxeӦ.GX;z㄄uU.^`%+VQXXwi,.GTV?y|~|pp Fb:m,եIOֲTTlmo@u :KWYYK_zWWe[Z6$ojjSSKA49PrF.D?x+W·l[ AU{E&u&G"͛oݿfka]}ݔ]]9ڵ n$'*K=X;|ݻ1sFĀf)alnllnhhySe%!{22>FVOiTTh. I}4P-ޕMq8H2vvr_zeWDYY!## ef\7 ۥg@@Rhh:Ա_ 0*+SpZtj|aj&]]7n L=zo33u8؁|;ϝead@oS^imC[ӧ Q[IuAo[+)[F ۢ(rrV f` h{IIёYp… Kfv)}Ȩ Hz@Bh˖j+ 1RR3߇32NR'gxy"@{Żw/3#G~R}wH>"gD>Rϯ^涒ZQssk35] ~G2>866GJj X66vO3034_DQL q+]JSx7w&ԨJ_ a qp@>*Yrr´\Iz9?ӬD ZZzll  %゜F^^{#Əek=Q\\wZQ "t˗_]EP>K9T^46vJH-_ײezzh4<bI ş?$HI44lTftc&%%555Q&?-*6sbYD144W^DCG@Ԅ$"~~vN1ibb\""\œ(hV4p!.1[| `:{VR`ij*"2rLp+W;;q+W24a|5j I;w.fKͳ\\IU(HNN~[-bJ0A;c 3fNBT\bqii>}{iif9K(+IK P\& oQ66qCWRh48iwP +~~s\\*1)ŦM&ߨFgffשZ,&v۷/޴i5 kťD9{<~>{}[H=AWv߾Gbbh0|ͭ+ d **fM#,,AOHJ=g`"ᖖ!0 ӧO7n8y9!KKKj 997'x{66[Xh"haaSC=hFq!6whJJe*ӊpm[x{dvv6{0QQMt7m%I %}ޚ(/]a330g!9ĉg55mF|`h  m;;+:P m ){G˖]xq5a P(i]]Gbⷤҳgy*//bbld$6v) 3K[[{Nxb_5a`Fdhia8NN;m(++ẃޖLtPfHHYYYY ޿/}/ x*iۥ000,`0cӧ_ps-^X`X jiIϡRԅ }*CCBMLmԔR00 XX o?|}c4`_˖.9 30g-IG-w [JÇQ CGYdJW^2FF rryC"Q``ܹKqc+ߴ3g54N^ySVLoaȸR[[[^ꪦ6}tmm .U#99anVX@ ˡ 3OLEoo ''ܩSx/3BF //f1~-j/%%K.ԴED_lM]?(ڿF ƀLjiIgeUSA" 'ܸnӦ]hP_興EGG+wƌVĈ^^.337z֖y8uKzz'N<Ȩg/MMMmll 7o^gg'_===ZZZ^^^!!!&&&HdQ?Ac*++F 7^^ޣGR\GGǜڀhWWWHfX ፍrrr7nG. R dR)dVTYsر(;EGeiS. pGc4&fjjJgeU@esJBB15+TNNN.{{SN_CmhhD  L ;;Pܹu99g^p\J=1ڵ7UUO:9$$7CI& <<|2H$##'OB_]\\ %#핖555 VXA9Lx)++Q?4yMF|䯟>}5kycC @ss9T}[XXXXXPI8?SFD"%Ϟ}dr_("sC(!~ltN~rޕS#*z2pu ; {***{Ap޽8nrQa}pN 6|xֻիRPpwt /2;=_@ Kkppɓ'Q(iӦC_Tx/FFFnذw/]c3f8qh!!!''xWWWaaa!!!WWW<GeϟtW\\K]0ԑsǎ...ٯ_[[Ȩf+eee.^ghP`f̘}Nj ;w()),Y$.. ,,L^^@ :uj֬Y%_%XoLݢokkώ'N<1=0w(jW`Hhtdb1UT980,Ke;wcbV+ve5ۃ/^ fy>݂։FNZVUպcGC>~2+CT`g fff a C~MDD$77N..?#y`ii}]~ H-[4==]VVCkkk ͛GܵaÆچfccSWW ---C/y֭K.(((PQQ9}G| }V\\ۻwujժ?>a?^/)zzzzzzw Nj_\\͛7 D. Tۛ|rAAAaa t寒&UZHEESZ}SV>{.='_ R@fhB҃CNիEP\Ged\?E V.ԅׯ_aԉ@xL}2~wvPwPZإiii{A 611*s]  ᲲCs666B(s>~ke_~%>}gBߟ={&++;3@HOO?{ Ay0]:6nnHȈu TS***C 44~א~CBBBUU.QPPxW k*J- ɌYF5<҉hBw]A#rժ(C\y-!q6ƥ} DZf V. pB-pNcoK`R`y@9s+""kPӼ1aec!?g**^}S{{/#aIwqM.e|bcc_###G.}R- ET`aa $֭wmG'Ɓ;QNhhh=p d۔Շa?LTc05"acA@ ~1x#RR.11p$:BG00S++'NڵJȏ ^}Ç[#pnⅅ;vvsm޿jjS\\Oo``X ih(. H]ԱcGV`[ a?sȑk׶Ξ=Ɔ.D- e-Amm!!v [) &LGG?KUT$::;EEy)bj+Wjo$r|`h<&<<[߲e~}}GTTӧAAI[_v* !"<<Ғ 02O>ݸq#@ӧO$?%·̙T*}[t@{ۅgиtj mo=~޴xWbQyy ѧ|ɓFF ׍A0 ܹ==7R6<߃N{,H$-[be`ܸ=L؏K$Ο \Z#2ҁF) E`||UTRT)&@eSmm[#Eo/>v,e,˖gΝ[Եq .ih褷j |);;٥mm{>ή~}ˆ ZVftt5a g VUM9BCc۷۶<A[)֤GNNM}}'(H$Y 9hVVzVVzMYAA/keb* oQ.ae ^_6@leeqz3)::'cM͙#XQBA9nݲZP#*+o aXBFFeAA]~~mvvMMM( I$ҿ'Dp9vl˗aa{>汲ҳҟ;R{˖|V >`x zW{G 6Ly&f(݂< ##K%aR,,͓|ɓk s3swLdcCD D"qؕ\\lΎ^^sz꟡遁Iׯ'Zfcc)EoX.eVp8BCCgCCg}}G]]GCCg]]{MM[SS},ۥ0S<./6nԽtiwHHL4gЏ탃v)=i3G(. nnIIޖ<H"ؿ_yΜH[n$˗ ''JFf Y98oM[[[ZZJ¯\yeǏG$"5ݾ}VTWWgffRgsQ(-ۓ6 eL)KySV,A^6: ^ZZtGijcjz KLvk$0|ρfl{@Gsm}G"  AHyy]\TO#Ls3;_GGr1*@(,_LJc͘((^^:;JK[; >>=Of%75u-]kZf f2D"\ƍhܴ9yu@V߾mMcݘoo*,hDG@ &+5'fժx013D"hG@LWOOVMMRUUBCC ~OxzƦ~}ފҦmQ(Geeys;<~U*4*n~ -FFpvM?"'v͛OFٝ;/V,3V[[M+N%5wGw7F!<8F rGGf aٲ+ee͖B*KPPFNHtVBBү^};H oD"_bn==UU55mM߿7UT$4).B;ӦQx)㉯^$eeU)*ٳhzMx26FQ g*qq@ ?+kh茎y"H$qp`/`3a%Y,K33v  55m<ڵQ.@"7on4@lld6`~Ggg_cHIͬmJ,TWw}^ݴl 8Z,QH/&!YY8(Ν PG<2%H||\VQtJɶkͺ$_ "$84_ -߿77'$WUD$!)/'' *(*(pq1v1`PkhYQXXw#G^zϞVVzSPSkyGMd{DyN&~C ,-kk`34545ե12? /n y˖)eݺU b03z(=r.@ e#"''s𓦦P;z+211y+߼gjq_/^N55]s?~ .ΗyELqML$%ϙ3)_{{ %5scbr{ +ML>5Y]G",,2MGEd ޛ7%H H*)9?y2@(-m*-mioaaUUIyyyyaUUI99aiiy8:/fn2URCBOxF"G=А;H_(BUUsxFF%:ecCya0(TQђY%*-mBsJ֖Rñc?Nu \P]9ѷz&\cUϟ~m`FX&`TCdd։& yH(YsswAؼA,ZZLJA\]M> FE1Ht_TBu@wӾ}'ps}iiSNNH/r7Jyukk}zCCCDEea8cc?z{h$Ç(d/^`0(Ѩ/r`wO0OSS7ETbUVTSW׎3۵ˈ>NN_Y1$/Am O$Kf&]c0Q)hO5b"=QQ+W(DHK HK X'VV6K޼) UUU UUIuY,7ut]soxpᥥK07zX.MLpw7,H #"7Pv gH+h"#_?s&:5g#CQN(;;FYY۷FrDӢ'bp/ǁe kC ?j"KK-}6ؽ{[AA%/EEEEuu!!>>o/'llh 5}}߯Z&Sq`q?^7>>oYdaIϟ_ulܕQyyx<ZT5Y,<)f 55uA}Brss~}hboa,^b#LLZIIʕp0G έ ,TR?~=췶_QnMͩJ w{<'._be74~yy…@D>Etrr߰#" dZTߴ7'>#rڛ}bJRSCuˊN<~滔r##WSmV0",n>~@ >d0Bװ68h*3*5A)*ik˨JN>"CQZt\_MLϜY+--Ec(O);; |A}**'~z/^8̞W v~@~xz{zDEe+?o>eS"<G<۹ՌΝϟHHmۦO^޽A||!"&cVW46b^|pDH/'xx9ׯ'TW\TŔ" X_XXW[ ū T Y**vfgdfV]*%Pc?Nv)?w;@6,sԴAa23H$PX 2||ކ}/'W*@45)*j@"{.THq#.b0ȥK'͛H$-%eVGb''正 xʕj..tN{Ӗ-wg c4cDSR""26h쒝]SPPcD==~6 )B_ߠ{`_28H=EDM)""2#D|}QgddT~xd\ѽ{[F7̙Ӣf(;8aŊ-F^vڏ<i^>o&&v4HHp3q]vv (TW˫˫ͭ-,Ϝɭ)M,gВJϟ+*[RȑLg]O)aKeg'D?_6*ʁzD"d5 (%5 ttdTT$0 FEe];w7luwcRZZg:A:f’{{ÿl߾`355mǏG}\ԩ53grOB]-B@_{%K}}1˫qׯ M03S۹s&س7N[hԊݽ.Znn^ Vh3}Agl``ŋhN -(ah(j5㢱SS .TT\^(jghzM8ׄ3=F*)kk 0|-Z-5kȔK*6l QStpxK% N0[DoXڌʌj,ͮ(3[GGFGGf SOJ*=s&yF#G U[6-?,& Qml p̝~[R˗7lо|قUUUϞe}ij20۰AL $"OFeR<=c?}BiffhiLfn9L ɓ/olhXZa( ̬͋knfcCp$s|VRZ>S0yffVeeUgfV6H9Bחח桷#C"/_{yu;[A]%%@"w|~]|&a@h̬6P9sTU%4vY)+kMH(64?{vDDd8kN^^. wStbq~~nx$v˟rzu~<[Ο7g%mQppZrrφ ZVVzL1&%nx{ N-ww*am?}:6H۴鎄j28Rd|rK=={67vӦӧ74ta0(>JX]3 TAvvnجꌌԊZ<8gd2`q+l IDAToh#+6meKX.v-֭?RIsswA L18HPS#3[KK/9Sk:˂38OtՌ;hׯ GFl߾ѿY5Ht߱rNssطoɱch\4)-m KZYX8B"%% $ҿ>~.o5!H%%1[G {nެ{ EB޹cMiSΝ?΍[)_TWq^bX4emokkDO7o~D_.˫m=U}}ǝ;霜;1{NFQVZ_K !U_|}op^k/Koۥ?,bjo޺̞-D>NL,tz震-۲e>L:OxW{E uL4XImJ ɹYD%?ޞҞ܈*-[t--uny=>SJqwXA@O0$/qok.U̯_nǵm )aESƓ%$MtLp] @KORR3-S՝ ԕ^^bcȹ U`qǏx)hnȨԼZ<(,M֖QS51ٳ1{.rpXh>/FamPPŋX,[[[_tחY/\xyj9^P#88<|ނr,4KDJJoV)rIrº/)" w=ٳl'&3EdNCKKmFʃ uv/.o0,싟߇6z:EOz{'&~j6]__vѢ)L,keIJ*=uEEE :ee4&&w߾L~\QQ(55A)*ARe"'9̙7muu];o_/_*#:8,qt4f)E9wp<)ڔxʛk==iHGWWll~PPׯ "Z[cPcK͛ssOSJ׫])%z afa1DlDSR""21Ԛ56h̦^KĎ }}?~~Ra ~h\\\jhQѹdDSFkc/_N[JBNSXXgld)MoX"T\\TsiZZ9Rff+WRdtty{~(UOo%l]zZ߇c _ fCR33:;ؔ!_9]0YQQ5U=0w{Hdojp!.22Dҥ p)EQQeWRSQ$Hru}緍1(EssWddVppZMM޺uX>c lR 5{.޷o1>|rق0kWPrr}aa_Z=ahxDIL,w%7nήfj֦ݻOcx55U-S˶|QQ#OYjnik`p~߾..0ԂH$ԲfH;;Deޅ'((*ss{vz+?Յuq1ݹs%ʪZFNiƊ Iݽ}rD%DRjjyppӦqܹ; lR6==/)u𓚚+32G4kkֶ"n<.#@iiӢE^m dݢ5}t JZZzf.[liY qqW73¸`zzD_Oƾg"z+CEP(˗gD͛7 @&$rs+*ёёjR ##PUJo-{OاO3,54f[j+>ڵxCkk}7c|880&&&&`{S\\^BB'^^.cc% m9쎠}Zvhڵ7XPFYaa/[rq1 3yΞ.)iX^Ր6@h̬ȨLH(}B!RU 3Njpii3t:MwH3lj60@]'05ɓL4o%' lؠee'%gx995JJb^@dqU9ې'_Q*krlǽ~]|_̢$QRqcΟu ml ePPQP0uv6%&ƻfƚ5V@R?4.66ȑW ]۬˔,h^/!a -/(!e!V?2222*cc <<jjttdttfkiIw얗NI)0{'{##Ν/:v̌ҜbxAC"t@hb=b6EDdwuaeܱ^BS099ISV&YJĺu󚛻o|V*Pz:Sz+BSΝ[h۷?ܹֈAXiiL0)-m{<|˗eiMffI9;[X:::fVW|<ڵLW0cgzxs @ JJD>>ohBPTUUIC^^{1w#*o~q99az5&hj@F۷EӛCqg ::7""33JFFp߾Ŗ:9 $S ͛︸^y$t22 35/' @}efGyZ؜0?"o../W%%)+D hrNY ~=/W[@{DqRR-,||9!)OAGtsLYS(Jŷo7йpnnͱcf ݍ7nl]F޺0x<ŋrYg48; iIIbbia .N%G Hкtɂ)2vǸw/Q\LފPӧssk֯{vSHQQ;}~igg֙cVQL lz7:}z r*CR33:;ؔ!_9~IC{CB(0mHI)wwhh|rkNN'܈P&2twfdTfdT]qs+*ёёK5 Ymmmf1S4ΦZQW07<}z$w)]zBݻnYEٳ찰/MM]r>>ԙ kP%MhF"mѽ{L׮m63S۶x\wj?m m`;d2R{IIÝ;~rZmΐU 4N##Mjwۇ>p`x#Qǟ\v' {8?wj-XH$ի 47wyx,>gm<=C߿/wzt vEV8vl%n􎃃m~-[Gb_`AA]LL ogg''\$Q#="",,;jՍ %){KNN.qris.(tuEE%7(*αqt4`lKEQQşQQhiLYS""89v0sΞ}/ߎdaXO﬽5ė/_j]t2uuIF 5$ܿ|z,''t&D$ 4MU>d ήje&`, uss֭&{ZL|ՇӓҒN>~H YD"H$uu MM)H)"2ƍM7=KESABfgW޷Yx:K5"$Ru''՚ϯӓOy*g\A--)ֆIY"Wɉ=.Bo7ՕٽW7hU~~]}}Kpr_cѕ+ﭭYX,ػׂM8v\aޥKo|I ӧA3S,o~+-=KUuHdgW9UbƉXw'ppȤ::HI #Ihz{qEEWRQG)0OFQ04=Aʅ /^d_`klHإߝ)\iMM]Ϟ} InSWYv#%**oժsmmQEkkoXX:eHts ||"l ܴg-ݒW}/.. VXCэllٳIDP?l-򲧧ž}PSVsr{xDfmᨨ-u\&""H;/;wFyx̬LJ*? a))a$lNNNMh#n_}Yh900n;w6ԷH$}\-F}ce年Lmeeʕ4 G>?{N͌/]71Q~YL[YKFP(4ZVȨ۲%PYY}u CА>ܸ8cVpOس}ҥ޾=\ޙrp#IəOF<Żj22*22*|VV'''CT!6ر^ײ[MhjK8xp75u^<h$UeeY76v),ۮ`|)U8~y|פ42 p8@ש騉߽ IE\v7o6bx_wMiWUUE=XHnḘ[MzF&ў IDAT֥u99ǎts3>zٓ'40Nc `aMHOMMтF'e\DƂ̙|II%cKxLLML!߭ʌB?lrr"TEEQYEFUΞ}ٗh406m^wwƍw9v($_\*""`klH$A⣸/aXB@ccWDėƮKbB{_9s&2-e|#$Ӎ ޸eIEݼa[MfeiYϟ;w.*-6R-qvϟaTF/ur}6XfFbc Ozصmn4F܂H#MMLmFFeFFSx44H3ɓȑg՛79'*%%{Ӛ5Z,98HظvUUĨl(%%_'"y''CkkuF$҉uΝ22NR%ވ$&~۰vQ96LÔOΞ=}}''CqqȐRƆsקhcs]^^ڵh0:=%ܿ4mmSd2v=6>8veekt~ Kx>z&CF995>>+Wj?nl_?=z$QjZZy]] r0u"& Ϟ}y~ $RRK?'&  v³g 22'<<33RVvƍzgOV҉ys@ u]v˒ Ihn xsmmVVj,}D۱>h%[SrZZz45On]LE{;6(()00 'nؠa>gszo*.nsgetw'ݳY؏bqFF ?;.^|%^L|(`jj#qpKs55uedT"fjXXO@&hḥBPvvhʕ+xyUC43g"_ qQԆx-Se!;`u6h]]ǤwȨ Lz.4UnfuC*2s&_p~{Vv󦳔Վ0}ijJ09j%=|z-BX?,lW?tppУm˗_qcՅKkQQ&BWW͛q 3ov(CFfPB7ac;}}uH۷ϝ{ɮ<Ijh(O,>gϮghesOO .jA~O{_wDNE9 X @1̚5*+[&㾻իo%ϝ[~6.vvv=Z vc9a1޽_d||۷nle뱦.]嵌85\\7n8JJz(q)}Ӗ-RcIX.ϯWW[ ghpCcT}6ۚr!IhHʠ$ @&KhjJ NF ?oK ]U䀘'WRDSRJ3_d_Z `*08H KߺՄievANJ,ի5x9QT_ߨݻ_`7))Wlng~ǏEWfa`^ CGP(\\GH" Xp3g" :pF..F YB&Qz;t+WTTYQy>^^.qHaLrpmnr޸6r-'i}1e]45u={%$$M]]gڵZ||0'ϟguu:WVA<N.*jPWbt%e권 L--maXJJ '*AǏ??t՘yyWҎ88}k\oSS[\+?H,$$[ DRZ{D10 їyӉԴFE֖iG|@ ZZ:9N{=!YYVvSqwKFF_܇Eb׭Ӧ/GGD|CYB64 gάl#ªvicc/=)p TS<-3s22rϟ?/--hAѣ23+?|JkJSl==\\====$$)#!K.ȐH~%vaV,,EW_Nm|:@`qXa鴨իW'TЖS3vvvvvvm3.^"C˽_Eba:bb BBRJD6lcs0 N>k-TVŋQ]6BH;嬫hk1hq&$gͱ(ki_ڧEeAVKW+=9HSSS Av K`%<<<,,ޞтR{{TLB $%uQX,gw7'//APG8xxk56 ḹK*2iiiT@[NS6nM^^76#׮ńeuGT'?ɓ/+ԝ1Z(}}xFKA?8i|)8 %+a=t::m {{7oaUϗ66v(ND'4aCrfyJ`6@;>}@րbggWGDz?ԪvKtt`?z$^NNd^0?`^3G|=vL޴aíȜի5)u37lЧHqMM]3g򁸯I ;;Zt4т\-ehH? %LHpRR޽::>Qv%&{9S`JalqS/)٣VRcowz,@l`U?u +Vh`0UU`:cc xN&/mhh9[%%Mgάsg"sz)űc+1U߳gi}}˗ԕGX.%Hll*<KDEg<}hA`8/F,]J99(9Kq8BTT-]]D4Ztr2KY۷}~RSSեW\Lu@dgkI 'D"ͽ&`$'$'9>ݥϟ?GPH=q⅖ݻAtKFɳg3=gE|oSVQ?;;Uڥ$LP!HKK -b544Or]a0Q(TYYٰƧMfddK!Cʀe8:45u'$|C_`!4q&oa*?~z{{:$##3m4SN ( uT ޘ+/Z$O*!-BWW_HH*}jBݻdg ecpN&22+??,1cʕ++++Uޔ2['~ }p=~R@a" !Z]Cӟ?{]]]PPPwwVgg'SOONffŋ=F3%VUU呛HLL߿c0Z!HFUTT̚5 ,((xu460 MOw4,q``3;;;""&00022~/^d=>az}q'*.H@#w'Ϟ},+1ٳ3V6yر{"kݧNRSSC !!!D"999_V}ggsΜ9sӦMmmmC{ݛXdH?y@@OGG}<%%j2.Yg2"HEA?I$ɓ'?:dbbB z{{ݻԵ:v`kkkrojj #z)2  c?%22GB`uuD5s _vD]Ih7%¨%'jKAAA$G+BBB¼yF}%}}83G"}ݳ'dժWtn[wwo:$#sODJ ?\^^~/QQ:O`~WF$[sk\}] gc{6G5l hiHŁa93k`]J @HKKQUUegg'+C~d$ ץDUU2:Wss5V~^B{{/ec$iNNNC:899^kNx$Gȑ#RRRM isrr^|D"ĉإ4Ro]?t$@X0 ݻ:;ߥX`U?iӸfgqA$((8gΜjkk axD4b[nE*))Zeܹ}$UUUɿ.Xo**111$R&@77]v!TWW+(( ׮];zGHSSHD˓KLu:IX36n/uGPO(7g#p6Vk74e{ha' >y }}'N`0cǎ>|xh@Q'OSRJ/^gBi::2뢾VVWml{dMh/ٳȡ?g`||<5F9{ Z[[3335552M i })--MBB,))iXOlq qPW?sN SS;HdX. H[[*;n0|֭+ Bi&r2Xŋ$''ƮYg-nٲ"CKRRR?f"Oݎ/͛^^^7sέB>;wn5JJJ#ȟ#^P~&:$,Җϳ#FX&wl^k74ea``z0舤" B-[`(773?-\/*뺺>h􂘘C yyYII S;a޽S'5珪իN ={U)A#M~޾m6v0~# 1| $tёniih褠`C%gS ۥR8ܯE(>!!aڵD~:ydssҥK߽{WZZ }}}qqqR Aׯwww#^p8 WS ÇcbbN>Lu=zXYY @D"n>DEEAٳPg-۷,33رc8tppػwoeeeAA7mH@@@WW(du\NX"D^6(7g#ptUӐ*{Xt`t ]...?>tƍV rhCի5fO@xx݅ O˩ӧרSI ۶m KTTsZcלC:qℏϴiӾ??4IQ(eDDDww '''// A>qƈۜ*Fd>AϟB)ɲ#,G",}N y8Sd$%%7m4,:yoo*//o__.A߰z#DJϫWΜ9SRRƍ"""ê Dkf̘aee9{l]]]ܰX,s[CC 11C͝;wƌ7n@ed]' @JJj֬Yx<ؘvgggaaa11x]C?(ɈX2/Eh>n{{;w❝p888|}}}}}(۷SHBg<<?Nx͹s- M 7qf {2݄D@ elh0:HJM-{3: R=)j$plgg-y\] AKCC2 - @[?Ƕ-5xy[&.Ao2D")+***/**GQqˢU4D&'(x<%):.K%$\\.]zjhӧǎ=>F*0e۶0DTEiY?SRJ_{.&mʕYuuBT k=B8th_т4B= PH$nr`Byys\\֭C-ܻ7TM/_\]iR샃D *4O(G~)A3fY\XEYy=QffJ P )*jxғQqko$-=B޸ׯ$--)OOՁ! `r<<)D"GTZ涘dK!ZF|OwDE~Y6<<e>˗,iii; X,' 'Iľ>GH6niiiTl hI@mm/9}Ah\:H#ϟg݋?)**7+DwڬY ՘Oe˰u00@X,# }}~G'`vp[hcc<CF;GPQbإ]`m}-ݣ/lCLLRW7Z[_uӞ=KG/,!!qڵk׮G6恗W> z0C0 P0( AC_ุ/H jv+.]z38Ht--U==-LLi`25j7}` `4:{+ !F`P(__12e2Ƕa)pIH6s& _Q0L |ָz SS۷70Iϝ;E{2ZH$ 9;-e||^'P4jEPVVj W_w+]75uXƦ++C0v~e6͛yu&XSӶ{ܚ;AӦq~z~ / ߜ?_lI7l-,L#ҜmǏGL&{77e܂(I7}}[TU炨 Hyi&FE>T[GRܾ풟6,l:9XsT AAAZa nn9s&RS+ﺺ(nciT>qqQˋtwP @S`nl>ZiixZ/O*?^2o`vzhow-\PT԰r_۶JF,p}}8xy |o0tL$ADV QD",(Ȼd|KK%K Lx@SSzg4ZF|CabbIjjAR*&&\t &P4\vvvNNM 1AqgP?NƉd,on̨@bw|驧7S`'OHL,?B;jB[x|??g^^.FАF;;]FDG繹# BݻeruH[cGpSSװ /=KJbc 㿒H 8!rxy]ϧrlRROqq--=bbK*+(Scc׍֭Ӧ$)ݤ<~xFvV^e%-=߾߿q .D%%$%55u͞=L V13/ CqwUׯ}M'ji޶d~K6iR|ܲ%p<ᠠmcI.ν{7>4 h۶B"Aj@+8r$<22 D**!8 _#%%labib` 'h߹B뛨L ꓒJQTTh(y,H$/nnΈ@]rsk/iZ66ӊ|'2ZZz ML,AvM999̆/ uaY41Q}^?/_Ny;w>HO?!..D;mBTYtw]]F  ˽T`-zzTU] de*'G>#H0ڳg " VPDbe@-**Zx[ma>6d_(>kOπci!00Շ #'{&íԲC0PK&~wΝ{ 0Hch8BnlrriRRIllaSS7yuӧMTػ76*wI$84ԝvR!Lr~O'OںN&+x;;֞S9ӧ<P׮1ɹyǎohjdMM[bb PCCN~)%5믿6Qᶭ粤ↆN>>EhSSyTccم-[]A<(deU\{ u-[Qqq[pssOA.$\PPTSUƆٹk_27W>~ftu}mlT0h*إ0|zի\0w %hBkkU#"<&í2ll(##] apRd1^_wXS=K)<Ē:vvԂȾ(ţaG;55>6 Њ5kʪo9ڭ[ip-)9sU۱))II%11= *(.Y bShAGVMDPжv-& 1'4M !'f߾Ц'V996 >(;֮[DDɓ]SֻpI"qZcgGeg={|Qљ !!>Y##E䕔P=.GX/nn/2U||.AOޱ r{K*߼̴pL~~77*K/-^<ĉUc)<8H00]Zԩմ a*ڥa?~0EMM̙5 T/`Sq-mmSd״g: BVxDRddիkjlmuӟ/RގҒBUU%hb{7o0HH`\ldh(})rg{~~kimMM--)G6QhSS%n) --=  ҇?<"-8}gjt 'Ksf7m.[&//hLͣGO?;K̿p!Li!)-..F[Owԡ֜9.$hq芻hA" "#snPYٲbrr{7a)-Բ~~n}}E-WUsܗzw:dE~Qtl?˘dZZz~P{jf4ƍy2qWOJ:J<&. AAWعe# LByyY!!""]JxNVZ[{.;9ϯ{ %" ??ϖ-[refV"hw< Σ(֮{p3x+ 0 450kk%%2O3~usoIIGQtt`Ow/a#sAA<}[~@`eE_}0%'FQqΦM*22*j zz2zz2jjTK1D"iyy5_7f˗Mneua&*S˥-F,_NOLysDz% ꭬9^IґH H$I[dVg`{OotZB`6=z9ZTGG̵k׭$]7A/_zqإۋ J LloZ[oj/h!I'O| !}̳B ]:^/=MÇj999{z89.'/'>>IcL0 vÆۚ6LSQF^^.##4ZeRe11:iq#6'! J:}:ۃ ̥lCv凄&%ˋ9:H%$$#Ԯ]8G2K)x2GR**ZH$ ~~n}}9i}}م PF+W]sӚ50u.49MS2$qqX,NQqbjTc⋆rێ^fl.5'zhHJ <$۷͞-9}&K'D"9#ݻܚ,A<<Vi(*(b;w}|^eAAA-uum, D1Ē&>>Eh $ +۷G?IðXoFtܴwK:9YhQSlbhqK .yy5LϥX Dy,X]b"Fӫw0c,j)d560! lNrs?~<GS܀Q `U n)*yhߔ~*&!!>ccE4ZETTJ{;VGɓl1Xmm;ɓ&ۏttv|S#..dkck#'7URD&!!Ǐ?ՕshqKi +*Zrskrrjrsk  <22P55mm=B66 WҜLjٵ[0Z`B5OYӔMT*abF/ёd+ړs'!+(Dڵc7o0;إT922vE966Vi*(2Z.ָ?Γ&)K E˫Es۱l" ̝>+#OYYJm2U2:qH$'2 e -@TAA4$m*Mw;f32R01QTLړ<Vر;>7o(+3 P]JeDRjjyttޛ7ee+4lltuÇݻ.eS˷o`j1&EEduueDDa&&~㉪hի'O Oܷ7o07n8ZEl(-m󓖞≐n--LK+'I` zvbܟ&օ 6Sv) Iԭ4gʅ˗1|)c"Entbuwt`2jsskssKJDȽ̓ إǢKXܥKMMuueFvvNXi˭ta*/߱56v6qssɚ**OSU^P֭50hYOTT ,l'pR#ȮLbb D_DGԜ7b/=<]AβK !-<6ӧ⊊N]]SSEccE55`6p8Ÿs'X%{ v)@/߾uq Q99jMOHM-KOndWW4036VחelT}FA .\uӮ]K[ VCEE';i::;آm33ڵrkQQ͛16[hnIO/OJ*N>>n--)SSEEaLAԴ{y-ss[]r˷XuD"it;C QedTupIMW]~Ru񢝝.MeeYaaiJM2IE:qmp;2ȑXqMJJv2K~mLJ*IN.IM-bqbbzzJJs8K0 [[_dί 3n՟?efV~RۋE T==Yuu TV9R''Ç3F K'ceeuȎh}ww?JZzӾ75uTggWfח5030[`;.`s'&&7o:m"O@TD ꒒Jbb Pne=!{ aQQ3 KY d!#2-<3g4.mm)==YMyZZR@-h YE mlĴ+#.d 3G@Zz6??wgg_AA]Ff64GMMGéomhdcCˋ"*T__VAA8HSS}y{[mӧbZ֢RTS3o0r $Y>kh=2]ʺtu}8wl*)3#zcJ˫bq\Ț<Mp8oIk?ov*wrqu @-z?.CBtuII ((+_{wĵLaOEjkjUDm nTV[K]*ҫ岸Xj]j¾JI@ r-0!|?xHf~L3RU7m͚觟Νcd䨅 XKuLVYwnRhjjȓv ׮=&6%KFi|ȥ݅BQ'=zѣVTBbwo޽\]mZ9}޽޸UXXVE__f(x/ 5h޼6hW+,8q>7!aM[١c5޽|=fő#}ElWǚի8qUF|9mʔL S11Wn7CED.( ƽ{켽v""QXXgV#&LxK^C*7,5(=ɢRLlr9{yzzzzy{~t E]VV bҢ߿mA=@*.VFTDDS֔(.\xt샋uCzS8qg 8EӘ& ljdcC.4 Ң^/fJzOO[[otS+۳E;\ӋeR;+API"CCVWR[d.2#JE33CooO+_o3׮e,Y_R"=cƛ @;(UG4eWc֭줤.I74Ug?>GՙC7m[1#x(Сn4r)<Mӹii2;=X#XZzzںxzںڸ Q4ҢOW^q\loxt֑K;\^]S\MM-(VԚ<ƨQ>7N'iDРJLok7V+x1% :8ti)\ nJ r)&IU&UV>!蹸ظX3\]]\l0Wwv_IJ?`@#FkȥsKT*O--iZ -⧍-QU$'YOnnYNN3K(tusa&ƞWcjջخ@GVF7&&l"jrr1g?>cu7svM}̒ vI$v!B(/,()o$LLurH,--mmڣ\7I?;/u\~2YASS)[JJ>يɟm\lhP䔥23ν%U&&6"OO[k{=۹kINΛ>%KF7Zꠠ@+3.IϟX]]߽lhPm<ʴ0СnJ r)t.,,,(.--cª>Ϙ*X8:Z::Z.{pGrp09sԩu0ȥod6(IM}^^\[$D|ww[wwww[77ۧWTTUUY&KO/+klTSeo/tuquqsYt W&⋟n>KvE:00JKLhv9T"cc믻>[kb;v޵ܹsK,Iӵ/',T46 !zGGK''K''KfŦ{efX[}[!!:c8RB;n~~J&D|'ںڲ/nffquu=!e^WWY}X/_1:7$׮}߇t\YYu`nѴ)tIzܹ55~~} Ъ~ff_.]:fܷ!c~`}C)A.-Р*(-c斗U3X,88D[[Y~$??Y#clbklRIIZ]Ąqmyyy]QZJ!1E3eie֐.{DIfp#;#B{/^Qֆ..6J:n]t#[e,ZhǎlmUU=4):1q>si :ХK~Ǝ?Qg9Yhl,t@yIBԄB8ffoҴʞGsr)ha57ʢ?>W$ٙX`ggnk+VVfO EQ-٥LzdhVV 3J6l\dYwܒO^^9+/(hhPBBcgg+gg^4[[YvoI/^k.-4_4_(رC"dzX@DӄyVlSヂ:R\\kc @]bbbmm׬]l,,2㪂3 +KJj5Mr9fB[[X,bN( E"NN vfbLB>Nh0qLutЄ'yy[g2"*tB"<!ӄjDv%!!@`7wҤw%&G4p8w;-hsQj@?e:4drLS&U%%/,dK "_$ ]pp0׽@UU=.))cK?iá,zrsqq4]\,ϯ((LI)((ϯ((+k !ED|&J$ f1[[:t>88uȥc_VTRE~~eiX^\(/.*JM-|9XJ ml&"Ɔoeejc÷64՞{ߡ{i*;,7,;鑛]̪DZ3gn}m^]\{Ryy充7nd=z+?Rm ońOo;wqIH.b"-+ЃpH  ZL&/-UVʘ;wJJ f: ҔiTNm:tNNYFFqMM=!>>h^'Ӌ\IgWT94>ECz % j\r|CD슏SOtR221݃byiiuiiuqIIB*-*+)/fh5ZXXX odl+x<%K̤,&VNNCz^?CC}"uuWdԢ drM?s33CXhk+`cwp07 :u'@O;}tFFF޽Ǐd===ͱӶaU\ٟҵ@ 0~EUyyMU?ry-OV&K2&B7LLx7455455011055LM j`NW\իJJ_y{ BBB&l⒒f͚gr\BHvvݻwǬ_e巠k2eZ7`bHv=:ucVEffRBP(\lYl^19Ӧa:zyٮH+W\`P(7oڵkPmll6o9'%%رԽȥ`f^|BQIMClMMBQ'ו*rrʪ:9c&2 #}CC}>ߐc,gffhdo`ꛙuֶ{{aÆ 6쫯!/$5k!dĈ lpĉCR۠T>&bgwiVjuYٟs[YYm޼ 6 /ؘ㏳O7Ѵ^ѣ˖-/_..]9Ο;wq~޽/p,3us :Jl.3ϝ{x혘+o?~%Kco 'w8s￿DQܸ%5m9tPe[[ۤfOٵkСC۷MV3?;v}Zy]\]]BƍiNKK#;v:<SVwB?nggW^^lݽO?H$VVVSN`T*###mll###Je%!D$٫WTTL>>""),&&|˖-kzx~ĝ>><(dng?COOoƍӴzz75Җ 4M(Jr7B!MfOߘG޾}Jccc7ctرrÄR`:rHTz577uֵ Tp.}rbV2mڴӧDׯ4u>}$''߻wo#l2a„W^yemS. ><###99LJٓ !'Nسg!/j%NA.hɓ]>><(`μ˗/'lذAիW-,,ȥr͘1#???&&R\\L?aѣϝ;W]]P]]m``}UWWtg~jB.B:#^zJX阘??V4^piJ<9&''3sssk)rV\}J#Gh?~,'%%ׯi,+J.´9rٓ !ϟghz I}@@;wrٮiWV\.wʔ)F8_ZZW\j#?|ZR]x9<o۶BV+ Jj_<НnJKKsuu%B[[;w4{;wg@@@BBMӉ'Nlcvvv̂W~~~:vk4Ϭ|Μ9ߟ;w.Ӓ弽Ǐ,gggb(b۳d2J:7-'RIDAT77#7~g=mȈ3}}&M{7rt/\pܹǏ3m罼XǓJF߿}FP[ϟ?5C^tڨċ > >5!6izϐ?QSSe˖QFiZx Bq夤qƵVpg#HRFm5s#FDDD0-vvv;w f^ukט"ff9FtFF=CFSOi;32ì^s'rtMaa n:dȐk׆j Y~8y6VX[[dɒ[nEEE}FPMPly U 3g|w[ml.Ԅ\ ڢŋǏZx1O?x̴G8p}o\ BCCޛy޽UUUmo}…7nXr)ShyfMBj3cccϞ={IBԩSWZì>XbENNNrrQvŴVWW7ݺ~PPЂ RRRV^ANyZ%O()Pg 2iRۈP__ߙ3gB"""D"Qxx8O?Reuuu̠OS__T*y<^mmڵk ! Q-OE9r\TڨYɋ )炶;u}jH$L>>>}ٰaÓ'O4eJp!d׮]IN5-dee^[[j3S_Ui{yۗ^zVѣb.22N k}9sjjjZ?x SSS=*//:uX,^hf Ɩo Bt;Ml6m7ٮhϙw$&&2 ]]]WZ5tРݱcD" qUSjS[xseic]NOР9r[FF13CO۷ \Q}6FEQ6:v9=NYYKK(q#(Z~vE=ŋ|[wLfR۶I$,} t{E}8.Ǟrt r)Zt4C-Z[W0mklӍ˗'?~{ƌ7׬yCxxMtSd("+V$4=}l-k'r8T|_wc\ ""F\yɇ">mN}w^ڲ%@(4f"]\ NY0M}t> /߼9`ʔlKt)Z!Gv9Z}._⥗Ϝtrd@͛6!d4Mf@4m]~~…#{|2]QO\ #̛6EQkUY]9yҥ "`&.\ S̝EQkizl-+2خA.A>xC]{!<|e…*g ޛrz(ReΜE֭;NdM53&lWs!8g50_" .= L0Z'65Z,O>v9] fÆ}:>lvE\ SM2Ȳe j5x?t {…~ F{ \!! !˖%4hze~yQ߾l\ У p%KVv9B.[#7CB[73hR.8xEQq݋/}ɡ3]ȤI !q4M^.t qSw5_ZX`&-\ 2i@CCEaa199 F!ƍ{׬yr^M^[̙HKe"aa1j5vl܊k*fFK˄Paah^n<~ti@`tHثbh/RhQ?Muާ(튞A[DLՉ_ݼ93t/ȥЊwGQ6ou?0 3tGȥкc_(2ol hР曤N2cǎ`vE"(ٮWRٳ ز%Ѣh& IK\9v֬!l/S@[QBKjEtLQvq~e Biwl`0խ[ٽjZR BCZt>bC @;pǏm[[.]`ff!`&\ u3퓺86 fӦ&&]uTȥ.\xGF.y3'<[a Tק5A.YjzƌᱱgϞ=y$!dƌK,9~xQQѩS/_JJ%ǫ]v-!DP4}t~)!D__?((hYYY)))WngK*jҥR믿~!{j .LOOqʕ+LF#h= URRl2}}ݻw-*))۷_~9y6V" obbbbŊQFd2ϟT*###?~{СABvܹpxI&X=5޽;,,lr|ذaHg6l@ h!!!#F ^bkYc{ G4v ヂtwwn Z^(*...00C g@?^`r)to|>?44=Kz4ʹݗMttt{A;!KMȥ&R`r)IEB(b]üЕ>$4@TWWKR]Nrcƌ144d؄KMȥ&R`r)S]Q~/IENDB`XQilla-2.3.4/docs/dom3-api/classXPath2MemoryManager__inherit__graph.md50000644001725400016040000000004013273140077022626 00000000000000d052422d7ba5b58437595b9b6f4eb866XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp__dep__incl.map0000644001725400016040000000222413273140100020353 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp__dep__incl.png0000644001725400016040000001011113273140100023037 00000000000000PNG  IHDRpcPbKGDIDATxyTHAR[bԥύ(. FԃкV ZTN[A@IASEY*6+k60M$FOΝ;sΒ aW"T@T@T@4]V٫7L޽{K(111!!!/<~ݻJьmڴ ś7o6(T@T@T@T@$'66vǎT*@ Qd~ūʤzxxkذaoNNÇ=<<;b&9vX@PWWWPPW...&zСCZA[[[ssX {d2|T*mjjz/õxuR\\L._<~x-XGFF;vpD?̝;7**oh4kZ@%Zmm… ϟ6mډ'B1Bhƌ\-bǎ3nmm/Op3srrh...ð>(""b奥XիW Mv2&&&!!a׮]\JfWWWwN:ѣHd!\Q1ZPkkӧO *+J@.WVV=+**ߟVZZxbOcǎ۷_~A(d/233Ӓ6ۛʕ+x---~-BG)7fee%&&566WW_ ;w?~dxJR*JȘ0aB.][g9rO>9vݷorU*URRRdd'Νk.Je>,>>())5SV^n~D :ڟBT*uܸq @iiiPPPۛ1&&N#t:Fcd2pBb+((Xlx7nܰ抌tuu8q"B윑tROOO&WGK,_`g/\pɓ'O9sfaaaLLD|> ,_F0LT:;;~k׮=LHH6li4?pBxx8Biotƌመ& jTګW/kϞ=%Ipp~D2`b2$$df8:h L&ѧOzꢣIi2^:FI={(@3ֆo+ggee!jwE)jz-_~M%'' ō9Ҹ}AQԱcNJb+V\OOOAMa 5 ;|aÈSUJuqP(ܹS^^VT*G#'''#X`{sܩjuRRRRR|hkGc=zR2o߾Z}0q?7l|k ~wN%%%iڋ/[.//xA[/((dL䈘& Yyoll|'On߾aL6k,744,_ƍR~JLL4?ػw=<<.%%*==}„ o;6--ѣG_zɁ1Bs)JFj4ٳgyBЯ@h,믿d< pM]\\ Ѡq?###SSS˛o޼y!$Q(UVb\hh4q7$nȐ!:OpgΜiĆ`rD ܧ.^`0 rc233Ammohh(!.p,ԩSQQQub Jr,)))-P(ƍx4h\>>>AAAgϞuuuMLLܺuozjPHTПqٲe)))|>K.~!˵pMtzss3~bOgggN4h >{nbvggkצ>~W^6mrvv_ {Ϗ7(ܳgСC6ZL)9fuuuuׯb q}qm۶UWWwM?jGׯkkÄ2t@Rm ?ðeFڀHTӵ| P^NC'lK;ZkSt3.V xo&ۻ#                                $0駟vtrr-Kb7K_*5jHg5kL&w/^"GN*Bw޽6穀    _~ͫׯ WZﺹ >|Z700M4BH$ ARBի2L*fff677{/++۹sgEEڵk=:aoL>|A,a$!}||X,Vnnrܲeŋlf̘qƍfffrrrǏouptTC 9sڸqQeժUYYY$&NB̙3k0 G;v@I$ rԩ~`,]TV,|YkK"Iq8a5Puu~IYYa zYJJJ|M|ު*7obHӟ>>n2p֭`b`fЏիBJf |D;#J 0 ۿDD>rlBABr|Νl6(3fLKK˕+We{(q!~Gݻwr{3H*B\|9**X7n|qhhs窫sssG痘H̎x#F0 ӛ/}ٲelݺus1SZKdw\.ѣGZ[[WX1x`:>hР[* b^ʩ!o>rwieqkɒ%Jd%kWTCHf͚¯u^MQ('OjOݻwxH=1 @`I!rrrrpoQ:GGNkM#Fػ/#ߣS9@R9@R9@R9¢&IENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp__dep__incl.md50000644001725400016040000000004013273140077021224 000000000000002df1ffbbfb7ddb97b6ec3a14646db9f7XQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp__dep__incl.md50000644001725400016040000000004013273140077021755 000000000000002fb006ea47db61b76d3c91cefbfdaca8XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp__incl.png0000644001725400016040000002744613273140100020164 00000000000000PNG  IHDRz3bKGD IDATxi@d. (ZuEbVj{oKﭶ媈"Ju*X$vH2Νf2O9'$'d̜!_Bhx $`-\0''(M6 >@гgOGGGŋ yp wpH<@0p???v{ܹlauuuTT͛7]\\>>ѣGONlmm7m$ !b_~ӧO?sѣ !IIInnn_~޽{{dյx555z7ͬYj)R)rc G`1c]FJ$SKM4I"ЇÆ KJJbgtСCٕ/_mڴiK._}رcǏuZBM6f̘?yB׿Brss90'OGp«Wrפ oߞ8qbZZիW?㠠jk᩻uVDDDHHȁ6>`ܸq7oX&@˃ K,Bˋ٣[ӧOr^(tEE۷H]\\uٙn۶mÆ 7o= 9r$!M`*;6gΜ~sf͚ջwokkݻw/Xޞh&Nhaa1h BΝ+{1sL)0BZnC>|>dGUƟ[jeggnϙ3F**JBggB@12uE^^^N؇;vTYAedz nddtYf={VGo=Q!Hئ4nH`Ї?{K>t;ÖxzzVVVݺuxan.H$rN(<؈f.''Gi^PB|YSSzI&ر?ۄqo={F3B  GIIIqqqQQQJJʕ+'L@6mT*]p7rrr~駹s:88?F7mԣG Ą3f[.===;;{߾}3g$}=ڽ{c ݾ}[d2ٝ;w!$11R.!N.ݻRYYIZ>}ZP6k˖-ߵkW@@B !O那׎;,--iŎ;ݻm۶vڍ1bƍҲ;nYUUvZ>۲e˜9sQCCC 7|SZZ1gΜ7̘1߿'|O?Բ;w5k#F,]4&&3,,,!!r}||7M#EUWW1"""8Z204 22 ի]t/_sN~HZo0;By0 kfeedddٳN C|4iRuuvڍ5*$$4TMc!0!Cx $` WAC󐑑oՌ٫l.J"^U \^^Z$63bnC(4}boPhAQ*+U(3vvWWgUUe*a9;;GXHJIKqtl׷c}_͞}{ LVtNѯ_QgfUWSf||rbbLV6$; ˫>hHiiebbS)/366wذ"}Kf)_}rT2WW{~:5q?@ -WUU-=MJ/ =z&YJ%s#$#!!ѣm_$ ZRkj[xxQL $` NJH2RSY#$gn&&m!CKP(ѣ7ϝ[QQ1$gܸ>V|&YOHozlff!!>m@ KwǍܹ qZJ+WϞMK34O.|Ф!yمbȑ&kh EnHϞM+**wwow:@S [Nٴ[ڵ}={jsO,ӧS J]\pK1*$`hKNNZc~umwI,{7G"I?qo[04/T?eeeaH{sK\[mm-{xѓiOx ̀LVuSRDyFevf=}21Q V @sٴ0Udck! e *@пy6@c@&*̙::UdK8Bji URR)?55rzK^@#BBT}ZK-6[ϝ[VVMo3w׮N|𐀁gTqqʽ: qr;4}CfoNLLg'2F&0$H:U$YzַcG :℄:J`ǻ  Q"w1m!9qqw>|Ѻ= &4hAO23 8&$r!Ӄϧ'&ߺ|weiF *2>>Gmڌ) A~]wI$W>42 =r_0 EAAS)ts8P+. zKRZ|Ќ CC7t:r=KKS*!˗3%3gҪj}};zWN(ABllH NxW&w|;$`xsĵ0o 172\]߈$ k_ߩ"q?ر ~Ɔܨ/IFBBGvAA E$bbniSE66$`ǧdfY[H *SE?oxx?\_ɓhnnG@JZ[ܹ4T&|֢:V8wnXo-J$lm-{x_.x$`CN{tB:SE69{ _CWWW<}21[̌ @$`q1czORs~XWT)76}Y…#y F^^Ʌ $Bw:xۻMV|M `9~גJ:U$MEZO]w4k%.=P(`mqK1ܔIqu3.;Uɓw */ h.7޻MpH4+Wϝ[VVZʨ+}mm-*pᇻK<훩q?y)loOZ6^.(H$\r̬YCy CMƍtr@G@@O72I$Ӧrr޵#__W= )u(J\id${w -26G..!!>'"K}}ތDJƞ0:}:CցBB$)_FI`1< $E.Wnؐ! 6M0ӧ/㓏}{Q0U ֭4 ~:?@OOj: _w|B7) zlhÀ܄<^:}⿣BKG\''1c|ƌݧ ~._~,ܰ!<"]}w//!!5!!޽<[[#{u~}w##aVwOS`7gSZZ-+T Ixx 0JOU_Yٳs'?^/s0˗7o8~7kIؿjXw%%Uٗ"}};/nȾbwH( uz!'N̯SɾBP0ן6mWii%/B@YM.[vTPrGJ&6= 0 Ð0_c&'EEeڞU*~~}>̧\ip? ܸ񸠠ToX؋XI8s&M_;²ͻv][TЀt499gfė/?/3P03gzQ?nnnoիWkjj޾{w !d oiLMM}mM駟.6ADքaB{ڗa!lU}>„ ={>4>WSS0ޣjtkj~MCsjٳg 5kjjb p`&|*--yvr#G޾vأ:BH FFBcc@@,,!B##PHLMEB[ff'&ի| H}6m0</^4`kcvdn Z#i1kP8 $`  >?}t\Çt6v[Ν;FFFGeLLL!k׮*G%>|HW \/ԩy׮]###`u40̔)S![lqvvV*g]]]7oUK,nժU~֭[GƦ1ho9;v8uBzQ?{B>pO'N Tvvkkkl2m{bŊ BJKK͛IW{qJJ [K*^;ϟcǎ=}tqqqK,QK[`t_~OMMڵĉu\ٛw B ~۷o?{,<<iSVVַoߛ7onذ_/8P( ,999{d};C'tnuxŋfeѕR@BzMMM^f͚0̜9s|}}kkk:+VFEʢ+.[[k׮/]-1qݻw6HS/^|y4 T>ϟBt*̟?}bŊCֆn[xr9[R^^ޱcǝ;wh:aC>H_ƣD[T*C Yj}'0=gO>^ɓRr!ww BH]]ݒ%K,YRWWGG~GH6mL:m^effֹshB\.Xܜ;.0Ҷm[e8N111ڳgell̮9~#G0ļ%}8dȐ'OhEQQQl=zhݺ/B0۶mٳO:qt%11nlqqqݺustt\`AMMBۢOTm2y䘘#66vĉjKJJ>CXxjyʕZJ$K,ٿJS* *7jjׯ_+@gϞ=zi櫯ԩʕ+UU|@0gΜӧOӇ:z}{˞+n7>9uiӦ899]~nذ!,,ӧ}Y|91jԨ .^#555--/Vt۶mw622*//߸q{쉎fs]~e![|rBȚ5kmΝ; ÔXXXGΝsvv655 ظqǏU"a[D.JwIyΝ;Ϟ=[XX(H謐*H dǎ#333]zj?q=d#$''Λ7o&k:vTjjjz%aݻ' ո9* FDD1~KMMի1I*,,Th~g'''G |;McccN>ݾ}{!%0ɓ'd]vB&L ɶoN?Fsn޼ikk0 '0=gO lm^z{,JbwO%/55anݺg322eZ_T*U*eee B[bMluJT;V$M2O!YYY|_|0G13 #˯]_K$8p@cT-BQ[[KիNsmQ1jT~n޼Y,;w֭@ `fΝ%%%j6nܸѵkUVi, ; ^"u)Sr jn ü#FNKK`;liiin݆z̙XVWWN# ;::8q"??̙3;w&d8yzdoCJJJ;vX,f?S=Q?{B0ێw[렟>CЛ7ocǏo׮= ɦOngggoo?k֬ X]]xLAv0F-+ kkGiScNHHPw-0|}vܖ-ZԫW/ 5kлVTO'gnP.oܸwߥߌdddwNV"""TzSݣ**_; z=Zw:N~hӒP% 7 s/55uʔ)o߮vʕ+gΜwPze`{B#zYtieeehhhaaaΝ?ٳgj  :!47ÿ^x1lذl JJJٳ7-JC흎9{nF0 $`  N@d ZNNX  'LЀO  1)Xܤ SSSX;&Ml WUeX\w R}]n9s}w x $`  H<@0x $`  H<@0x $`  H<@0x $`  H<@0x `]_9sZ5VV..'.. V}Z2HD!AB B$` 0hecc1th7H5Y(LXX_^B2HKxx_uEAAc0@@#n00)_!$`$(-Q(0_C2 H )ه&~~y0 + ֽUDc J@W06rb8?7$`x>uu BH֖ۅp 0ZZB o=}ׇ TXXw,M)t@P hr..*KhӦkUAP0L6m<<<?7o_ H<@0!x_Çw[Ν;FFFGeLLL#f;N:UN L2ʪ?|!"mHĉvpp˶˖-Vw+VX`AII !t޼yz_~%???''g޽2O>480!HLL R|%]vppꫯtT@۵ktFZU6mڶmwΝ;7V"- &N<,J !rww -Yqɒ%uuuttqqIJJtqqiӦԩS;Zx///33Ν;GGGBrEEE܁evymg={_~޽QQQڂlMS'̙simpm&&&٭_}7u`?{ݻw_ԩSMVPPtuZaÆOgYYYQF]paiii_xZ妦۶m߽{Qyyƍ5V߳gOtt40h!B:k儐5kp u!deeq_͛_>M.BHppL&;v!y577իWk,.^sCPU,Jbwݽ{|,H|||=55anݺg322eZ_T*U*eee B[bM0[R*cǎDSLnoni6SV) Z9|BF'$`Q0̗_~);_333( ݡgQ0̕+W---zYY٘1c27'eff'sS666.]233;q~6є<ٕ5Emi,To0gϞmٲѢElERkh9=ھ}ǏӒkjUUUT*=Z\\yD[-@x1LV[[klllaaz\\رci;~A&}ܗ.//׸! ̞=kƌE999͟?_FW.,,,((ͽtҸq=zp6wUZZ>|x+VL2EGa{CfW!͛7{{{Ǐk׎FdӧO5kVEEwz۷|صkWC0 C0x $`@#^xw lheUp겲2^(|Ae$`0x $`?CHIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentRange__inherit__graph.png0000644001725400016040000001145513273140101024243 00000000000000PNG  IHDRp )9bKGDIDATxiXSwHqBPy) UTR@c "`% 8\@Qme@ d8ӛf09}{VYg}N& Q5jN !  ϟGGG Ue@G2e7!VWW_tiҥpZ2OOOBD2|IX !  !@{LgϞ'2rshI&9::[ǣ8N4~Ϟ=T*1xVVV_ S" ))T(_r%$$$33SGGfǏjff֖Q[[{ 555@WWWKKybX# h4ZXXXaaȂ `T*;MKܹsAei޶m[]]]dd̙3QcQQю;,,,BCCQ{HHܹsKKKK SٳFChhh޸qCSS֭[2ݵݥc ¿䄮Ε׿F߽{w۶m7n,))<|}}DD"BLPtttVXXQ꫕+W\ۻkhhdddl߾088(3+WϟkooqFtFX.Vttt>~ĉ"cWW+'M&Heɓ'O5nܸӧ/X@033Conn<}tQwҥǎ V.Kg0Bm{zz~x555Ay <;sW_jjj޼yA744pB'billfaavO)Q/$$$Yf=@펎ݭwv횸Ϟ=vԩny^8.**|ppMMMynݒnL&N߿?F[v-z(((`ܹᆆɓ' N d?@лB...2GlQ\g 8L6Fx<>O ͖EPjkk?~|9TJI]d2BDDɓ'mmmǍi&*BrQQQ\.!44K{ihhDGGz,66VCCC;<~85on݊6Μ9#Z2D3gRSS;;;MMM}||ͻ2\XX)]wؑgp8uuuO>MRlr_b2zyyݾ}[ Db?H ?tG}{WJ{Q(@gccvر%//޽{cy𤋮4226m-//NOOC(2+Z{|CtZ[[>444̷M!{D[~L&mժU )x<>88888.LPL2.VA(//W9D&Dh,1Byyp@hgpkV<|` ÇM ((SWǫ :w(ı34Ŀyx7\3zB;w mw6w(ıSPPGx<oaw&QS>_XR[?WY@!F>_(nwyׁB#WJ_)?V%ɼ@!ׯ**D߃F zB ׯ?@7q7o˲CX|V[B!rr?{io׷ 2 H}}{{Xa?k3jL@qhxɞ8Q_eO߼-?҂TȻ \!  !  !  !  !  !  !  !  !  !  !  !  !  !  !  !  !Q$Iէ44L54LUj Hҏ~EDD,\P) ا211QYQ揹;88(1 (K(pPLPL7pbL2%00G|`TTٳǍ7|$nnn8y$?d%hYYYc2!?z(::… ˖- |1Bkk XY7$ʊ*MMMP(trrA|>_4````ʔ)騯}DGϝ;&88Fhjj*rssnF~9\xq郃ellldd񚛛q8\iiIbcc'M4a„@!q㆝Evv6tGB- uڥR111x<^4@[[;**J]|hll&&&?F^ gF H@@sKKKCCìYd&/>c~~~gϞ]?-- +b7HOO~ZU3?*DA"Dƙ3gh4]RR2g ̘1=SQ[ڋN?~`B%+8 Pe˖hATec*><<W^PP`ii)3yBCCIu=9pYgh]]]F8^x!  !  !  yaĉJ>UUUҏҾѡh3qD%fDm{D&B`(D&B`MIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__dep__incl.png0000644001725400016040000005472413273140101020567 00000000000000PNG  IHDR rbKGD IDATxy T$ٗiTm(%J%"zKoHBJvKHoc7q߼`f ם3>{=9= aE[]Ww \%p^0DDDܽ{W0eʪUΝ ./]?b]&roܸQ`7K .+Bpza̙ceee]]]fbsssTTTVVVqq/^sUUU/]`nݚI&will|ٳݻw={vذaJHHxyyH$.5dUU.H$jjjnܸQCCKw#vvv~QW%"tˠ[644#_566}ܹsNNN7of0H_2Mսy9tvv D5448qeذaǟ:u }x…\^HBBBDDLxйK999H8䫋/?~@MMm顡%%%)))H==4ϟ7qҥgϞ ܹs/f+W^^^CCc߿oll䨐`P(./DNNNMMݽ˷}xйKV0̂ ^||LMM]lfqqŋ"Ҙ3f03x??蔔???i+_~gdd Dz 0 3vb444^x1vX)))0 2=,իW#x<~̘1;w H$FDD()))))AV!AuuuHL̙3̏)))'NSRRrss ]x1 MMMD"XLL'Mᡦh 3gND b]@$)))''WPPǚu*#GVZG~nn'|}}g̘*=zISS=g5rÇ#_0s'N1bĒ%K&Mj8JB"A$ug7nL<8gΜ/2ے5770SƎlmŤ200]GGرc*iiiٽ{ŋϝ;w6Ćߙ.OZZL&?zѣG!!!--- c۾};IP+**:ʍ"ׯ_?m/EeMMMUUUEEś7ovY\\loo|R]]흙YTT4HFb cdž 6|eeeO>ݱ*Jx|kkkdd$AMMM_TL>=,,p˖-ׯ_`0?nhhRx<^LLLRR{566dڼu@+AAASxxI-B_nrs9 e sEFFD"͞=Ύ a̙III֬><񾾾k׮522222jO޽{dɒٳgoٲ%>>~ر666o%$$(AV Zf 122rss#۶m;{lYY?H$V !ɞO>>ͳgvrrBl\^f'HcccZp !6L } pe$O ##v!t=K .+7L߬Q &$HhpI X@ϵ`0)_?\ouu5?"ܥZtttvv6ob~Xl$8N A ('Z!t:3? OuP\khVٺt:s6c00Π" 3(6]J_46CEEٳ|*ڵWWh4"#QRٍŊv6D5v"` JY}%߾wߵп}+7XH֭ x|GO@-^l|%sD]._>MLH6m+h].0.11qvJk[mD]JKK,Y2v1C…5xKMM_tJbmyyɸ66[dsPEfQuY[O蘰X+;n~7ruZ?y!;˺A8VFߜ9Gf:򰸸J>HN ca ',%ptu>Ǚ8;O[;`zpd;wM }gd򋺺N6J"boZq3'M`)X,fɒ EGii F))o _^lY4jĸ#_ nc0FF#mm' ЛwIcc3Iijjuq13`8AfgX,m_Yts9sсh4:KL^3k(o'eP}it? ][ۉ#5a8..[uuMWyx̔`~K1Lf:s mq  t>zNllӧ#ϟWWd~ZpxC(L' |_%rv=WQq[Θf,xyeFFڦGxno ]>.Ͼz5^Oo8=Yَ.kjTGGm^VāGާRlX,&$dقPQ%y4c :B%Ƹr%[D"~1DI~jagujKJݻoo|GIIqKK][ۉC t23pָo*܌7l0,Ao27?Η0.@/yHqqͭ[yVS]pd]658p'Z{._ӧ_0д0 OO@z ,72ttN //.M]fe}۴),-;-Bx?{JϘ1Br`{g<9Sa{I]=ݦK&ُ}35cgoh >VSHFFDQ'XZWZZ&..ጪGIÆ)-.T}aaٿߦJ.s͛WfU7&((&7§O%-ZKgSg_D:UvЎz 6\r--K}]2iiݻM6nz]hS8qo"yL%Kܤ$'&':8!dqt4z  eyy'9+pիS ˭˶|Rg&5/# wQzuٳG=pVl 3 nΟ :QD266s˖&&cNZ"Phi=~9>>Νℹs--͚5=aK{U gÛ11SSx書,up0VE[ 9|tT*+:%ɓKW@pv<,))'!UDc$igg_񆆖5kED02ɏ" yy_4 ӷЋ6х/\Y%:ڭ "' npX1gV}gboBғEr2! n6"җ/PRе3meYY:qںyk'YTT nZZ $@@߅[<c3'9 Hpj$n eUUu [7'owWfrr͛o`65նhl6b ޸;76=K@4ݽ.>>|ulm' C[Ãek+mʈ׽ )~vvvv$& _hj*/X0V_D7G=m]0n׮;c8Zh7rXZѓ폶.@oرN#]X]tqqYn1 #Ƃ&W3~o|%up8#Owݻo/JKе?U !w^e=DJJ nܺwJBCCi66zx}}qeeX -?g_Y^^lĶhnF7ݥkTFF{>`?w)0oh3@p5|+"3y}jlOKײ{onh:m?F\lVRR{曫W3ΨZYMXdСh )]3EA-nm]6@g\tAY$im=A^^m]k2(ѣwRR{d=KQ[bbNk+XBB_?.9fIDLE}35KK+M 0osΨX[9:N6 7(ܺ..URRH|-[߾}^sAAA¤K@8^j?yMu-K 7Qϋ"##)ʄ jjj&NuСW^m۶-::ĄN#Ǐ#Ǐ߾}bvڵcǎe-ϟ? ٹ= Rd[ p)/jϑٺu+Z <С܏ RTT4Ȁ h׮]͛7O>F132$,, 9lo͙6[ZZ]]]avwwkmmX.2|֛vn]>¤ۣGE" .xڵ=._ϱЕ'7ߺu H&wڅ;3d2hggwU=x[Ĩ8p 222**@ p,)ݼys$M<2߻wOCCCVV_7r"++\]RvX;VSS|r55͛7777#?x@]]ӧlخɜ4rH%%%//_2Zt UUjbbbFb>q*뫬KR!JNN6lإK"&ֽU ѣF;|0G彵AP;55. `ʒal<{LYY9ӧO|5 555l6 ڻw/[uuu `ѢE'NaBĕ+W!? APEEAV`r劺:a8))IEEJv\ kqcn999͞=ׯyyyڻwF2?|]˗//_`Z`K޺{]-axٲe...%%%|g^^ބ BCC#""x|}}=DVmֶ:,, ʶυOuLZk ROgE⅂\OOm۶0L&MLLl2 p8gggr3f0{^?~鈩=-- a$OCCC333a^x1"R8Npw!]dxٮ-slll[ HbT$ܥh"Bttt祥U\\7@ =z`tLyʭmkUwɹ3Ga#> ec~a$nmmMKKЀ H$~LOO/**=***HHH,\0>>!99yŊܗAPtATUhjj2bZ(Z\=<>> +((0ouu˗/ F\\\UUժU,--8&2ju^TocGwmQEE=_eyyyII߿ӭ}|7k׮ٳg߹s'???11qҤI8@I5`vssYjA>>>ׯXLKKKkk+Hljj  aI755_re@$##Aŋ)ӧF }ݻɉMaxxxmmmWaÆ۷3pL*zw-b0+W\~}LL;~4-ڶmۏ?̂1iBBBimm%FZLzqcm<2~ț.}ԉɠAJKKY3hkkKHH3f޽sδ4Yӣ>4baN.&Ǐ4hPHHJ544d+*))m){ >q)jҥ$iӦMMMM ^i{d IDAT--4к#())rD:. ˱X}w.,.QT66eII`t`mKƹ%%FmBLpPee?:st yr/oZ155b0 vڅbC[u gȈmSYkO*+Żqzf&w)BĜƌsSuI;rsP_OPS4xj5ye˦]ۧwʅa85?.`0 9mFWx׮ ]`z5kpaIlZFAGR Y:rek+ܹǗ/!Œ _ A>{6m痘 yHv&zpC 4 rp8 {yAuuy` ygORxCYY`a@-Xۍ6Xh M _C3I[wI#:YϮYhm}*0''A?j RR7O{fd;Ga8&&C\ .Nᘁsq-ᥤڝ=, OZ_X,/J[Yu8+ffc^6p,ii\`w++;ٸq[ޜ=뒐)!!x̙Z#F`b1>\̙e y᧵vv#O{rr Hذnj5x US-*☵W2(FF#ut%%Ax<0+:嘖pv _DGݿ;f p{n̛L-b1ӦiXZxg'TW˴O[md`hi7ܹ`<)BMM'*:n:$5yp;;bGp#G8Pƍ `yOa\m*aw찌v;tn 9wmg'O>H++ׯe#Gn[܍չ̙G$F0 _B]ׯ**>Ζ^QQǫ"ZZW^L),,ܺgO +H?QQ#0ꚍmllkAMM̏4}oOk!˗#6n,\PQt[݋a?z$*T]_?"_'hhOy 0~S]r萝Kwp0qcՂ/. PQ#m_[ %KH hRVE2+9**X vhk}[$x)޽w4i*k̈zZU," þZ:GHHϞuy׉.޼%x)ϟM8:N=grCqqBd5lj^9kiu+E_xǏ?w]VUP\\#x5|J_TV @yfqŊaaJߚ@qcwui3 2mGաEb1?p?gϺ7Y3 29B$#벇˧_ zz^A] >|RVw#))o#"9b ))qggϦ55X:dhkRR⡡.BBEx℣dE**> aCt~~)쪨8m9`Nt06\݂=Zɓ/Vs~ 9WKfIV?0bʞ=I))o#"VNN%>EDAlݡO!c +Z]]~f3s!!;x(x&M=7 ƫW?"z.MM K/^qS7C(XZ;yZvվ}7dJe2ed0췫.*+Kݾ'H5<[ƣG6n4޽wh t'OlnlWhkX,&(ȹ7m-"FŘjkWئMh MMeSSs 󛇶 <2ZDv07KWOKz~.H'=]}+- 2e}ȴivֻ-i4ݹ#bV d.7hkΘ1رh tBiiÙABC]x;lfs]]uWרWvy8s S""R m!]gW32zXJ]]sxqG<{ҚƝ;E4"j6ww78Pm-]COoȤINJE[3MM˖UU5\!//@"ɜ:լxkB'rҤaC(\)5={8}&BÆ &iirs-Nk+mժ˗TUeіKff_\AAZN%ӏy?V^lfƍS?}>BNg_h#-a9j-XJӃ8pk %K&-xy͹{Ǐh op.@ ]pm-BMD14Y_%'nb.sx:e\m-AA)0m[|rrnx \vW ,ȧׯ砭Exj$Ċ}FPЃCE[H`0͹q#m-h߾Wd9S m-|Bwҩ~~8Z0p.3x|dS~65׮%+v , FÇSΞM;uj !{X$~Q$U%YL#66A{pXOYYEEhk黄:zPoιbhhH"*=8nբddӧT/366C"hl``$X1g:эsyٕ+#: 8\/Y+֯_/ Ӗ**Ο'"?C`z.A"؞fwޱb_74<}of6l4MQQO?@ա-!9zYOEh4=zm>4Z AC[ B+qÇ+L~e/ 6לfjpdX5TJ( -˖?y8}w)//a3~ .:bv0dȐe˖gɆ___]]߿ `0Ǣc0n 9 i묭?.NH40y5c$%%ķo"l٢+))i``p =h 'xmҩNpFɫWۗ+5s TϟEFFR( & _M81++СC^ڶm[tt ߼y4U]]c. h~UYY5'&=Zm9a۷oBDmmڵkǎ edd1bDCCCOO>XuttŇ v% N-=w>?)qp8sk]0%##0RNy왲2rOkkjj$$$***vZavrr={ׯ_򴵵w}ȑ1c}vҤI7op`= ёBCdooOPΞ= APEE Çg^^ބ lmm uiaaAPHfSS/_|RCCc;|m]޻nPի#[Z|*cl]"Aw^fJ{uŋrrrm B$W\YTT0 APnnnAl.[ťDYY9##iS677a}}}U__/&&Z\\9&VS-e% 1¯'ָ=I䟻|⅂\OOm۶0L&MLLXmv`ý{Iv횆ȑ#]|9] ؎B̩ƍCB~̜˴4X-3s^^!66VCCcbw2"ⱚ-Wi4:?s`,\9;;3seKKǏtzzz:kUlT]]t%<嶵@ =z`tL0ZvW3GشT^^:OqCmmT??|pddd˖!77WOO...{lKKKt:r AFQQя?455QFY[[V A}c=F;DBށ| IWQQaHf,?)RKKDC3vLܹ3qFCp8s$$D"˗/fffzzzQQQ_qt:HY߿`2Ko[dee=zK553fsNNN{ap!333fa]]ӧOSSS4 ~w$%77w߾}s$Zf?sjXp!}% +_<8Ǭ?xyy9r͍6S@@9::Pj[ F\\\UUժU,--8&2+@;<56Z` C4IK];==۷oWv*++={;w'M?lll 4N }ݻiҥ;vxݻw֭[ddd x"B9}4׵hѢm۶#//,88Axxxmmmǖ7lPPP}vggFqqU?։&0 Z ee#ڵݻ_|6lؒ%KW^͖݁V"AP]?kV"U ʕ+ׯ_sGv@. cjj@PZ[[ D. ͚qKԎ?6CUuSRR79]24hSii)kzmmm 1cݻy.APpp0[zƫ.]*//O"6mܼyfiiiGGj$޽{eddtJiBXBVVV^^յcN*jhh())ɍY:<<| ׯojja2;3C nbQQQbbb?fdffbx#>|ǎ3fppp v  訤 EF/%&&H2S*;|p"; v*`j&_0y˯5ۖC}^&'%8tGx.]{5tƞ[]z3=---/^Ͷt j&_0Yxϕf*o-!&Fhia_745~( Dd,@c eV--Ȁrss&4:;x4 EmtCZ3y.w_YFFCWwڵ܌yePv핟_|CC3ars9[>.ٰ/%>>s=1cT߽²̃f8{d&??DoʭM޲uaDDB94Ж# iswNcƨTH yإKjj4}\mt~0{;k jk!aƛ7~^@ƍ&sj^ɓ1@CTzvBӧz5  С}IK˓GuF--!11G&%FY@`0Ǐ;wujmiPUUV]]h0MM;v\[leeFg@[Zxs3ر;>>f(BKIyˬ4#))v-[xgʔϞehL~pNT*Դğ<2kᰰ$&`߷ lܽuD J?}*FQ`@!04lNd6MիMM|𧤄Bs *'8uKBZwgF"ouv"r & *G'njq =ZsT Q _.^<)&MZ_.'fh4Fxc#opauDJeeiEBiz?{*%AkGoZnnQ=YMEEf(ҽ{ڭw8u6H2dFQ8wрl11sBz+7o8Gϟ#HPsX,&8xĚ5QT*lyF"XYMbNS\?uGiiыH2~DEFBB6ǐ ~=Gr $%–\kWb̝]\\m OnX1=&]Fb1gD~B;}d! htRJFF!ΡuBҮ]n/";@y O\rݳ0vݻx+46]i#=30`-76>xTqzy/6b^(` Fuu/%#`F<ܿfX؊vEÇ[x.lp95}jfUUY$>hlѿw~'|YhakD*S1ilru`yOG,[~ڵ<=/y/) |ßѣEQfgGFduX,7-^\\spJ\\o8~|!pcǪ1?JJK}儥!hVEuye@C(sD]B4dBLǏ˗G47S;ȹp#+0m>EA`8*;'M  K_G:u h(իk߽|yDK lX,fF7^G (<~Ν p ,ts0}>l61"bѣU^bEGBw(m\lljtA=T*=99⤕U`IImH'O^mԯb szׯZu`0f))osr~F 7SKpǺS(// ÉdTUd׬o[T{aُܹ>./⸧lǎkzzI}r J HOonO|:{X~ͯowY\B1RR۟1ÇͲ  =!/IKn3F` еkg~0u5k"1(4tӧݍM= ̈ h/y[^mCCa۶֠~mr`O`}ccGz%zïhT/^|]DII*&ƍu@ At:=)i˛A6\wUU˗_7kN7O&`kswAM\kO@0J^18E ApGa|1jGDbe$eXmkU*! 0L@LLǶ\BC`|9{,d۶-{f{7S*Mhބkj¾K_sk۽R\ܒP6ݳfIM-tpa?3#i1{T*Pޮ9>חu:x%-\V_ꨓcqq=raAAR7<<.q;b.]d]UYY|MTysk޳GqdHʞmAAEddܹ99M-+Kv-)&fJl 7clɋ:qhRS-y<{￿a$w+6{LVv|aaev;'}b񅢢c֯^=!ѼY$cBo|HU55u|>ˊR%U<|O#"bNT<X:]:u5+ܰPm-իflup@&TOGLJ4?v zK j`^sok&iɓ |Ry}lv28*zȑa/R]J$wd$P(hʔ.߻;a›J|-6kJd?{Z5Ν;2֭ȤIQ+Zs߿>wzq[bĩT[ŋm aEK H`H`H`{H#^^^mmmzzzb3h4Z``z=OVXAP LBKjU/{Hw|̙3jz]];]̙3"##2%%ܹs˖-3zRE}}Ǐ:;;ܹc}`/֭@o&%%q\T*mݢ!td2=<<\ҥKRɓ9d2oܸ&֬Y3gBBB JJJ/^l}`0Cٺ!-d2Bp86muNҥ1 WZZH$iiiE,K$eDDŋxaag돺|<O:b%&&j#`L*))r|@חKтnݺo͌\2k,gggcU Cff@ h ,>ڸq#xo޼AQ(ӧO2CƍKMM׺yH$ dى #%Kl۶mb!\nS[[[U~W6sð.ggv:«VR՗.]Brkjjݻ;`."nݺ5d2-f߿aXNN***jnn.--xawsZMRE"Qcc#~R7qa ?c|EPT*!n:ZT999xO!MMM;vXre="~c0ĺ)))I$e˖ X',//0 /p>?`.@ egg''gϞ5.Zm0n߾mz  u:ӧO`QQ~x#0 tD#/;#r)SBt:ѣG 8i4Bɩ߲͛7 B&a0ĉ+W_ t{pPOOOFFFXXYpF__駟|i !TSS-444dee$%%.k|Ǡw퍌UUUD82f;::ARr-iƍ2$_v.ZZZn߾^WWsN4J|U\.J͛rdڵkcccΝbk}o߾]PTTTڵkfXE__H$JHH駟._Dbի_}JZNR{Ai4qqq!>}{M /ѣG s0?,$L8Q(NJJsvv>}}^~MO#?/f^L\OOO;`.% X2wyر3ft: äR)tޮAAAϟGf.1 ;| &Nn:e^]\\ݻѱawwwc6S0 h4111<m Ee҆ XQilla-2.3.4/docs/dom3-api/hierarchy.html0000644001725400016040000011265013273140100015040 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Class Hierarchy

    Go to the graphical class hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically:
    [detail level 1234]
    oCAutoDeallocate< TYPE >
    oCAutoDelete< TYPE >
    oCAutoDeleteArray< TYPE >
    oCAutoRelease< TYPE >
    oCxercesc::DOMConfigurationThe DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters
    oCxercesc::DOMDocumentRange
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCxercesc::DOMDocumentTraversalDOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document)
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCxercesc::DOMErrorDOMError is an interface that describes an error
    oCxercesc::DOMErrorHandlerBasic interface for DOM error handlers
    oCxercesc::DOMException
    |oCxercesc::DOMLSException
    |oCxercesc::DOMRangeExceptionRange operations may throw a DOMRangeException as specified in their method descriptions
    |\Cxercesc::DOMXPathException
    oCxercesc::DOMImplementationListThe DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented
    oCxercesc::DOMImplementationLS
    |\Cxercesc::DOMImplementationThe DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model
    oCxercesc::DOMImplementationRegistry
    oCxercesc::DOMImplementationSource
    oCxercesc::DOMLocatorDOMLocator is an interface that describes a location
    oCxercesc::DOMLSInputThis interface represents a single input source for an XML entity
    oCxercesc::DOMLSOutputThis interface represents an output destination for data
    oCxercesc::DOMLSParserDOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree
    oCxercesc::DOMLSParserFilter
    oCxercesc::DOMLSResourceResolverDOMLSResourceResolver provides a way for applications to redirect references to external entities
    oCxercesc::DOMLSSerializer
    oCxercesc::DOMMemoryManagerThe DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument
    oCxercesc::DOMNamedNodeMapDOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name
    oCxercesc::DOMNodeThe DOMNode interface is the primary datatype for the entire Document Object Model
    |oCxercesc::DOMAttrThe DOMAttr class refers to an attribute of an XML element
    |oCxercesc::DOMCharacterDataThe DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM
    ||oCxercesc::DOMCommentThis interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'
    ||\Cxercesc::DOMTextThe DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr
    || \Cxercesc::DOMCDATASectionCDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup
    |oCxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    |oCxercesc::DOMDocumentFragmentDOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object
    |oCxercesc::DOMDocumentTypeEach DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object
    |oCxercesc::DOMElementBy far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes
    |oCxercesc::DOMEntityThis interface represents an entity, either parsed or unparsed, in an XML document
    |oCxercesc::DOMEntityReferenceDOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference
    |oCxercesc::DOMNotationThis interface represents a notation declared in the DTD
    |oCxercesc::DOMProcessingInstructionThe DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document
    |\Cxercesc::DOMXPathNamespaceThe DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks
    oCxercesc::DOMNodeFilterFilters are objects that know how to "filter out" nodes
    |\Cxercesc::DOMLSSerializerFilter
    oCxercesc::DOMNodeIteratorDOMNodeIterators are used to step through a set of nodes, e.g
    oCxercesc::DOMNodeListThe DOMNodeList interface provides the abstraction of an ordered collection of nodes
    oCxercesc::DOMPSVITypeInfoThe DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
    oCxercesc::DOMRange
    oCxercesc::DOMStringListThe DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented
    oCxercesc::DOMTreeWalkerDOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any)
    oCxercesc::DOMTypeInfoThe DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
    oCxercesc::DOMUserDataHandlerWhen associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported
    oCxercesc::DOMXPathEvaluatorThe evaluation of XPath expressions is provided by DOMXPathEvaluator
    |\Cxercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
    oCxercesc::DOMXPathExpressionThe DOMXPathExpression interface represents a parsed and resolved XPath expression
    |\CXQillaExpressionThe XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object
    oCxercesc::DOMXPathNSResolverThe DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings
    |\CXQillaNSResolverThe XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings
    oCxercesc::DOMXPathResultThe DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node
    oCxercesc::MemoryManagerConfigurable memory manager
    |\CXPath2MemoryManager
    oCXQillaAllocator< _Tp >::rebind< _Tp1 >
    oCxercesc::StDOMNode< T >
    oCxercesc::XMLDeleter
    oCxercesc::XMLPlatformUtilsUtilities that must be implemented in a platform-specific way
    oCXPath2ResultThe XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node
    oCXQillaAllocator< _Tp >
    \CXQillaPlatformUtilsStatic utility methods for initializing and terminating the XQilla and Xerces environments
    XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp__dep__incl.map0000644001725400016040000000101313273140101020051 00000000000000 XQilla-2.3.4/docs/dom3-api/namespaces.html0000644001725400016040000000415013273140100015174 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Namespace List
    Here is a list of all namespaces with brief descriptions:
    \NxercescThis class holds the list of registered DOMImplementations
    XQilla-2.3.4/docs/dom3-api/inherit_graph_33.png0000644001725400016040000000420013273140101016022 00000000000000PNG  IHDR%7qabKGD5IDATx}HSt>lmXfIJVFiWQHh=O[E&!Jz2[BO@L6ԅ)|4Oݹ{|sv `l0N q l Sp}gX~W68l68 jajkkIa*++-/UWW|0,т@86)0NwE# --mllχ{zzرhqq1^d2j5y)uJRq\VW $$$-?gN` nnn{ioo_i5lwHx^lllLLL7,A_ٲe˾}j*`^K$ 699WXXjZ&޽{$~Cŷ;^ӓi&|z{{ѵf@UU-jݻ7??}T(111.$>|.\Ζd2*|hhhVVɓfn)IRЮn`dddEp;# T*???! "IBh6 H$ZfB0(TԔ/J}}}SSSV!|֭[y< vӏm/FEEEdd$:H$q)X-))ٸq#u'$$c~x<<,?~^<00hmۖRd!!!FFEE)T$Ix{Ck'''Ѵ85ЧOB!h4z*"˗/b|>||377@-^T& N}v!A\.733spp0::j;%$$QSS4LCCCOȠ$ˬcBh4 `^#""PfByϟԱ`0\~h4ZVdX;J ___J{̙<ayy1Vkbb">~8_ Xj"IbPjnnwHذzxxtvv: !r ͦ/Ʈ W]]]S۷vwwyqt {n\\mnnF߿ψc@ RT興 ÈC8==-wڵ;DqqqߟhgaÆ:tVV533 !/--eK6r&͛vqqQ,944aqqX,Fˍm333<ORY٥ DiBj===2:ZXX655\9jyICCC]]jOJJh4JJMMxbGGGGGٳgRX OMM=z0666<<<44rСsΡSMooommmTTԺuN:ElvrrrvvΝ;E"! ;q@.✜E7\.wvvɄN${yyL&J B@YYAnݲyEiM˙n߾ڵkע_dAdddx{{deeMOOӭ=77P(AJJ C r*ʁ0 Tz1O_$ryhh( ),,nnn(Jz{ii)BZٳgvƍիWK;wDhFpbxyyzBPR# E/wuuѣG AX#GP- /@86)0N q ;Cs; @رp8]'J{ S`a@bmEho,IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSException__inherit__graph.map0000644001725400016040000000031513273140101023667 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__incl.md50000644001725400016040000000004013273140077020111 0000000000000070648dee92630a5b66d512bf8a462029XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeList-members.html0000644001725400016040000000673313273140100021642 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeList Member List

    This is the complete list of members for xercesc::DOMNodeList, including all inherited members.

    DOMNodeList()xercesc::DOMNodeListinlineprotected
    getLength() const =0xercesc::DOMNodeListpure virtual
    item(XMLSize_t index) const =0xercesc::DOMNodeListpure virtual
    ~DOMNodeList()xercesc::DOMNodeListinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentType-members.html0000644001725400016040000005720613273140100022542 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentType Member List

    This is the complete list of members for xercesc::DOMDocumentType, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMDocumentType()xercesc::DOMDocumentTypeinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getEntities() const =0xercesc::DOMDocumentTypepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getInternalSubset() const =0xercesc::DOMDocumentTypepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getName() const =0xercesc::DOMDocumentTypepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getNotations() const =0xercesc::DOMDocumentTypepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getPublicId() const =0xercesc::DOMDocumentTypepure virtual
    getSystemId() const =0xercesc::DOMDocumentTypepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMDocumentType()xercesc::DOMDocumentTypeinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.md50000644001725400016040000000004013273140100025752 000000000000009f28634e2b104f12958617a76301b4eaXQilla-2.3.4/docs/dom3-api/functions_func_0x68.html0000644001725400016040000001142313273140100016666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - h -

    XQilla-2.3.4/docs/dom3-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.png0000644001725400016040000000336413273140101020764 00000000000000PNG  IHDRe2qbKGDIDATxHyw9m beqZ*Eκ#2j\%jeavwYeօ1(%.D7u]4MZL /֛׃۳8yzY2 o }e(C@7P2 o }e(t^4 ')s}v?66^`3olTc77oh4(C@7P2 o }e31d/L3|q<~iܷsղxr_OOz!@27cqq,-Ho }e(C@7P2 o }e(C@7P2 o }e_@˗/y>,,ڵknFchhhsscBCC==LݹSppp1f0F CK~MQѡnki1T5>}L ڳ'ۉ0uc~a:ݵQM=s{޷ iii{5LGh4 /Դ ۷o755={ԩSx6m~ׯ_h/]+Xe/fsocc͛" jZ :gaQ!;;m׮z4'L?ەJZnmm&fdpq%***%%c;wcfsPp l#cyɒys]uuM˖)7oV߿?qKk Q \a枷;ݮVkNNNrrj_匱$ĕG8 znrEcݱ#g۶+cLju:y>99KLL4 CCC6M.O 33+77l6{jTwݻUU67P/''8o?k着*& XQilla-2.3.4/docs/dom3-api/structXQillaAllocator_1_1rebind.html0000644001725400016040000000755313273140077021230 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp >::rebind< _Tp1 > Struct Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Types

    typedef XQillaAllocator< _Tp1 > other
     

    Member Typedef Documentation

    template<class _Tp>
    template<class _Tp1 >
    typedef XQillaAllocator<_Tp1> XQillaAllocator< _Tp >::rebind< _Tp1 >::other

    The documentation for this struct was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__dep__incl.png0000644001725400016040000004273213273140100021025 00000000000000PNG  IHDRݜbKGD IDATxy{l֬Y{nLGG %iiiVVVvvv7ndgg/]4// %((hҥ666ǏG6o Xx1Z-L󳵵#ݪez6ڭ ˢ<|ժUwgg'¾hX{g`ر߾}455*++w[@YY}ڊx677ggg+((t]OJJիWW\ٽ{w@@@cccKKUTTBBB\]]\R__.yΝ{\ <<<99ΝkHHҥKt˗/9s&;;;((k*** ݨ 쮺}Y޽{Ǐ?vثWhn!q+fGgΜEtuiҥK$IZZ:00PJJjhknnFܸqĉdr'Nسg-v{ܹ1cHII͛7V-;jԨޢb@ϻ ݾ,Z:vX z:9918k3ZYY@PPp̘1zzz](((4iٳO:~nBBBbbb_|Р~ѣK#eeeOnmmv܄] Ə?~_@joQvWݾ,Buu5BV,>>L& y:thٲe;vHmqqJuAAzٍHHHӧO>}V- >jYYׯh3Z}}}mmmMMMNN΁***,Y~TWWk׮WWW ϳgϪw;Z~}NNαc޽{WTTtՈ 6Igg'L&襮>(.....믿h˷/\RUUUTT{{;0 t?3( nέ[/&OO;) 훬OLLL߿okkۭfQQQ__?UAAˋvؓѣGVXajj{/2^Ν;mmmmmmӧOwqqhii֯_Eggg7sL~nꧻ@ddӧutth.333776SSSGGG[!! `~4___8{*//_rӧO,d MΏq.8 37X`A ! DEEw՟Bn0A=`F {A 1ٴB!A﨎HTZQQ!@Аmmm"m#ϯǧQV[::46& qDxGGi{{I{{)y8b R2G^,; RW7k0^offDD=Nzi5px**''jnalpsF&ݹTHkk+ h]//ۉD-sSIddVc+ ;`yv+D< !We4z cFo8?cbr{ަ D0:: Yӂ! 66SnJ8uuBWe+Z[;,-h{8nk!!R pu516Cq|Ǐ-X.--`y/=`@4hܓѪI|x˗fV#8NNNѱtE й>|3p8E_""yy۷7;fbeuݻA APO\Ѫ,EQQH;ijEHmO| =?R;ws  v3138ny?ح'0A =l,CsUZZVA~vͿ{7s۶Pb)*dfQ(T?Niipań }/ 7 /Y+..p&qqTˏ7_R(n yy_UFڼy,cY_o GGApvFϯQP-=kh8Nʅ =4pu>7or\=<<77ՙxaqNhƍ ((8pFWw||U{m\[یuDI82HI 87on2{<# ynR_II۷]]\xӧ{֭jCCK@Јaۮ\PBB'O.~9=tjj>A㤌V^^gg#,<"/ .ݽNKKA☌VU`g#,YLLp`@Z?昚LOϠ 8#6/]s::f&!Dd4rss{h1cFY7RRBN<-A?aֹvm`yyݭ[Ű{!*om}̙88h:uvR\\}[~&%%)a# [X߉66f4*ׯ;khcq6|ȭbfv'#c hDaӌ 9kx`H*}:"f'bnxflوD-m3qF4vh/^LuD4HÚJK^ڼyp ԩ=nr h/׭G^^G7lB764tcffw|;#v`dYY^^akٳ՞>ma}{(qah~ʼnNjOP <)1b#~!C%%5׮5FUV!k;fFFܓԌRRRb gN֭!b,du[#Jyyϰ8, TX>UϘN@@;00q1fwAA.PVOD Xxg۷;nX1NA`UF줸{zڲ nXuy+3Krs^xBiV EEիWWWWw]C[[[HHH__رcd2J"spn]PP0zc3f(;9ʡAxEEEEYYYPPPccn}}=D:ujFFwVV־}BCC)'.))ɡUUWW^hQEEEEEŋ/9$$$=!ȑglBRRRFFF^^$22rĉΝC?:r䈤dbbդI/^^RR.`ffF***j֬Yk>>>III:JӾ'1=%'v텷|N;p6mF߆2m4///ځ$BhdbZFzX!??_II ***##7oho)'DVVinn^\\6qw޹999.PSS+++cPLhd7[3f(l A___kkk#GhGdfooo+++ZDJMMG$!!  uuuׯ_/^hff֟JYG_|MyB#s2ŋeeu&{,//왭mqq]ЏwKnnJ]nݶmn޼MMM苀>oddd߿ʕ  jEEK *beu3 (zb]ƍstt@SS&??ѣG[ZZh뢇ZIIIn(kk׮߸qcssс Hddlmmmgg`j{F[ ?~ĶmZ[[2eA y@'^s̝{P?`}'OE/Q=0-dlmf:cbrއmtA'u?go?_%,,ҟBh$RF} ۆ_ loKH21 A|F;~>|cbsWF+/a+=)ҽ+g1jڴwАI<{!u노F2Zps sX HM@F$Xb, Z56*j3 $w@} ߾j#x!BVV6Z s:i~}XYiN--5O;r~xxxVq"#Zg C4Gpr2Zlb%5Ő,9FÇmfP0'{DE.kК&V3͛Ւh ,̷vΟ?%%)bsIKYY֭M $q>:KJj22_wh ClTSMLdnaho{y-7G>3%$gTh В%, ӧmm/\ېa(!rnT"qHUaSSucɐsrΜy̙N81JU_h Β^D_WW@zenDO?bZ2ڃoee-$&~01QcCx^^77x)ZX}Ay&g4innOO/bSΞD/\psǵfl3gX1_-'oVVpD߳gdʬYjX2FF<|9;>ALkF;V_3$&~2EABB@a̔}S*YtoAw׌[++-:.A>`j ց ȅ [jjH'lnn:( gO*9wXNCfPzaa2*a IDAT便`D"~ÆiiX[ky ׌;0Gqs5%<=mwvZX>p rO0[F72RP NQ[WN㢢~;sfٽ{3g ˀ~s:nj 8cIX|xu)AA@'~]J ut?#3;9A?JKsR ˏ FY%%?^|2?':=}Z+//F ~V=ʳ䚡C(qƫW7|\9s3g::k랹ƍI(++b$rdn],LLN&&:{F+/$ NN#//ϖ-{ƯZu)A\3Z}}˘1Ǐߚʢ~o.-gP&(8P vUheIZLJtt ց@Phrx<ÇoDAbc.:h.W^]]]ufmmm!!!}}cǎѮp8nspo߾XBQQQPPP__?22_)Ki{]M<==q8܉'h%n͛V455O0OEE?lk|!>Vbwl:OHQWeuFx񢢢,((QWWD"M:5##;++k߾}ʿJJJrrrhU%''cʔ)oNOO_l=zoEEEU5&&gxq.{{ܺuKAA۴EUTTTTTxPضm[vvݻwKKK߿1u/ݳgπVX=.=) z/ϧR3gF?~ccݻwjх-,,>KeeC-d<= ~l:M#BR'LpeA~w nm#yyѣG:uQϽԩSyyyӦMsww\׽v=;vf4A6opquoA[iiiulٲo>ABBBi嵵:::۷oѷ ^qZEEZm||ӧO.8%%%!^-.pmeee@3B;t-67 ˗/D"_cVV //=wƫ/_9rDSS@ =RUUՈkoNhǦwYӋsR|%%% n͛7oho IKKӃ`322[ZZ( @YY }-$$%%%(ssb\NNgUAi-*** 555Zt oml3 ^Ǹi[dCvVinnu`ڴiݿݻѵz_|K궶N>;6fe>fA|}}ѷGc477{{{[YYJH$Rjjj||M.\xˍN~~~iiiv@aa,,,|w؁.s/?'OghhLkK6 H|;9%%t q9::v 榩ϯqіںJJJt+G^NNNHH **VsmmUeeewI_3ČظvZ111qq7677]HPPAUKHHl۶n!=+/۷^/ !4baa5 *gZIx2|Сɓ')**ٳKDDD/_^ 캗vmٱ:;)Μc\iڀmz3aCՏ9qf3 !!iޖ Ԗ~b ƍ3-+aaa2KttpXN tfѤ/^LϻÄ_ %""aa>A;v]lkmLL .PUՐVO9!GFSTuZ@`Ԝ9XAwO77˂7^C4""2bO}g4kk L|rB_ctܬF&=@X{7SZZdڴXACyt =w+3G$̉-p^^ᘞz >E$22N@(T^B8h<~ǃÍG(nϋp H)OC ;*Y<wo>..D" )FVS-%4iX%%%]^HK+spcyy}xlB&&6jVM ^ F]7,,N{xݼykG=\]M8Іf֐ꘘX©̸?HPUqcа6 ২"fudO #̛7@PO?|II  ^cckllt`NNT*#"o`0!"bLg6 WW-7_kkdQ@N JE޽fjz2$$ Ν <p`L$5Eto$$O6Yn`@_TQp=OW&)={,_;]@q㥍. EMMرcdik/\XCF_=ujiQQYG!̞ ŋٳOǿ2,rZzzі-קN='&tx8q~ժ_U'RXZj .9q05=p2#44{W C1 jԶo_8ߨO/ݰ!_U.*0RS?PqrLg'%../$$-55x-[,_>}Θ b 1LqyƑuf޼+VL߳'LOo< L6mݺb7o2Ou̳NC]k|hm:;f@x͘qҥU #t!&&dտ7 cIFnrW }X1w;,~Xs{^zu`tGhllzsʳɓǭ_o bp7Ve4@VV'J^ad^r噧gTd66ڡwd63ca9+ݻYD"~Ѣ)k3~DX?V\/$^QQu 'A֬ cwaa' ~ŁJHb ]1\ymU._>M@`4qAÄ PQQn?.8ZXh-6G)/;a 05==[;mU߼ vXdOiW1=b;8cFj%K|vq]N ɇd+e˦sA(pd4Txx=a::|}F#GܔamXtUUAA *+W΀]1h2gNj}4Cg'mh7GMM3r[^߾ys0_nnn:i@]kֳ@X&JKq3+dv;,F͛?1Orى18W`{;W$gf++K^mb@a Sq:: g.8QHMcc)םgn2 jdtGCsR\\}ƫ7^65YYiP?aP>|۾F~~֭[rׯKml.:hxfnjzeKHJ>ܵ+5k`W h2zT1G.65XG.$n?/''ᅥ #8yEE= [d4TUU׃LsscpfRK/UW7z۴B;&KJO/ Lmo?y8AA2*)wkjH[9;d繭bxur hhhw{բ]1?}+Te4@{;ҥ'.=ݽ{>W}nĢng<J#"" Yc8;f4TmmS$EE ww+.ޓ܄wVb}󂔔}l2fGѣJJR˖\9>b.hǎ=34T޷ox#b&t[qq=i208矋\%%5/v02RփX3*#AffY;wZL:"AݹӒO矔?1|J:v@@rB{))a{ʊb4pFFC>(5[M59>mkk5kݭR@}N KzovŘ;w2ȅC!vI Es?/00cY~n>|/=pB~ H5( fb@Ç2*=2γr LB5Kq{$R' f4߂S3F/[6mzc$fMuo7mS^^/""(:..54Fd*쌆tjk/H6[[ի LQ:`T/]ZzBb|Fb8:]1 qCFC Lᛆʕ3lm L7nޯ^}#7-LvŸy%b@l{2 K:BgS:9Ank萐LX\ !bO\Pwf}P*co?VON~6;:c]1 µ&+KXXzTԛ3͛,$g)Yat튱p,ifUA IIL|nV|;<ga`99 ϯ21 \gi9<]1R>|+{n(fd4s~h(/5{@ݾ=͛ҤC_uڋ[^ɔ t6n=rkqhjj>y"@d@wIDATfeijˀN۷lȊKK:; JJYW!>>D렛+('6KJԞݻwM@܌FSWۘܔϝmqffr}O8tnChH{o |x?))'$l3G}LU##1c?hCN< 38x,$񍲰дDIIIRMͱ3gN9sD@ A 8pZZciґU99/Ɠ &Ln_ h}el< [ii9>><<UU)0AfupGƨlHK+LK߉u\ e$[[]W_0 EEիWWWWw]C[[[HHH__رcd2J8sp=YA#hŋeeeAAAv4#HSNڷo_hh9BA())ɡUUWWw 307118qsЏ9"))hee5iҤŋ Ѫ5khp6mF߆444KBBB666:***ӦM- 36󕔔222o޼7ohoa| ?eUTTjjjeee !A|}}ѷG{~DJMMGzCwt}~~>h8häٳgŻvB?:xMMM###M&//J[=tqq100IQ [ 222߿rJ`F&رcWZ%((%"ENᡣs˗Ǐ$K,CSNggnu{rtt4337oվ}BG &TPPs>ل  0q9aaaBIIIhq 0A=`F {Y 11(X.// N0ETgCFFF)))XGA A=`F {A ?|qIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_28.md50000644001725400016040000000004013273140100015724 00000000000000fba8b6c2793c9d6c824e812e0f90a571XQilla-2.3.4/docs/dom3-api/open.png0000644001725400016040000000017313273140077013654 00000000000000PNG  IHDR BIDATx 0 ׬ՙ\39b!9{|I>$#ߴ8/z/>2[giU,/~\ 9ٸIENDB`XQilla-2.3.4/docs/dom3-api/DOMException_8cpp__incl.png0000644001725400016040000027027413273140100017305 00000000000000PNG  IHDR RlQbKGD IDATxy|ս?>=lƋIA"qAlE{U{WDkM)U[+XZ"-6̾|& [I&O&̜v^>l6K Y\F\F\F.B<У|,駟.///@F#z p ̙35Mgػw;B`4^`;-ZTQ[!> #A #A #A #az0V/^LkK/XšCfW^ywX,FW߰aCCC[oe4sgϞCEQV{rebK/L&mb1EQHT(V2 ?> /0Ll6[[[[uu5`0xW>x(+V`3\T*je]Xܹ|뗿\.߼ys}}d+_{5͛w^_[[;sѽd2@d~ctC0$S8@_o~&|>_B\h޽{,O?z+_|y0(7X,N|ͻ[o}C99JkvmkR)պx7nI&(ZlEQPg[W_}5HPx?}ݼ 9!ot /_`C 0L^B{\Ӫٳh[[EQp/XpaɱX,z&y^_я~o{駷l[oko~믿 _|śoI.Ooڴo+BQ~nݺtk?O:;˫VzIMn$ot pd2d^uUg}6gT{w>/~r-3f̠(jZYYYQQaÆYf3?իWk4UV544|At%|;ߡRO>ַ3oVX|SE7&p7z.#(zBƏb1 EbR:o޼Z[[kjj/-Zs} [oe4ߊX,^ vDȱfD>l6;!d2Pe43j5EQls_Íd=L`^ lA 0Ud%K򗿼-c;3Ι3'|W^v9ސ?o޼W^y?!EQ*fUTTPz{w(LeN,Kee%EQ===*j[Q(L&dý$N(` 7F2܍HrX5k>[泳9)<u#X"B.3w|K(]6).,K,^d2$k˅yH$|&L"r3&0 w$ L&cZw׷i&xGѱm6Z}-?NZao޼K.C^y%J2>˖-[_qK.}7t:EQ[n-//'_y~ƌ$~饗֮] x뮻Fsof/^?~X,|ɒ%;޽{ѢE"h wC^8L&r5 ,8_$H&=P<>`06wl X6^o ݑf4H$RbX,{I2D# otqlaDyQ737KRp#&d@~pG.BT{p%3x<$Jqz$d9Oy* #  '4@,MD@ $bd0 h"Ih4%h$FP/y-ZceV{ݳgOoFx;vy督:@ *wWh4v'H?N$ғҹIvn:Ljd2MJS43L0H(f)?:p[i7&t8Saq.f2R):3NQ7)&Hp{W&q X,&l8N¤Fh"BX,IHG dB>#pRZ- B!/Ɍ݄shmk:p]L %>9Jre:KbKH"Wi^S<CX:}<lnQn|>S sϤ{&}%L7ž!W(Œ~狒tN_EH<Œ>_RÕxl\Hfe2j\@>RI F^o !'d fDni"腎$b1vKQ?JqL&Ʉ93  49 FߙL6R9Et5v0d2uUNI2Nhfh狤ә x<|dl6S$S-I'p).d9l-r96]- ) yvXLfvI }P($x0#}#D(NBP(%D %ut<|>G J|'rBDG&Jb/H]yә{a'Dȁz^o$M?b1=[wkM/\#~a.L( r!ɤr .A.HI]H4IʬIW`}gF"ݾ4zp5Yn5 tYD"C2L $tHX0DH"H$I6L';n9"O,I+rbV+B!W&ٰPbߝQ9+w:LBF2mćZT0L]a>_՞S$Kj$xNgȅ94-w˅R@*4z+ˎiv:!gt:CRd2T4 t4H$RH"HñT*C h& dT* œԐ/bŒJ,S*id2٩Z(r,LH+r\T*rYB!O x,k8+0x('uÁ@4Bp8 X(#ap('U$$4R)D]>8\=hnKH^}bhRrXLkTcJ$RhFX:NRP(JX&#t6@LwuI Œt #W5 ~cK$|.-H$/9X'c \TsNi(zȕ`Xt0HI%q( PI`0Nvy̻*+D"D—JW$TbT@RaT؊<2;wy|\xolX}}>5)HhTϯ2o4>kYe6feYJ-%X}֦]]nPX\.eb5 Ih4'ɔM&Ӥ]J*Z:I$.EI=v2`97ϑJgp[sA $0%$i+Cx0 N1?JiJ&cD 2`LKy6]]n Ǔd)pXJH,EnLJ hbŜNק6R EQ d9aTfvr{vZE X̣(J.j?B6#di\ɮ.79X2M!dH$KJRP dGux䘼"y\reIiȤgFXjȇhҚ8yx*x`l#tlzIHQL&$i麥Kgqi<'N8)D2l6^,5@Vl:M p﮼;)J&ӽ>r8_uw{2f}`2)&ԣ !4@L8PHk I%[Ph4AްEh4 72:IK$<'qbDx"W$K|%@, rXc'R4LJt  bdC@ G ya EQ lBLIѰT* .b1!K$&_m-  9+i*]O@'ޠB c`<P(c6)R>Y8n$ ɻY Fre$x876!bg2R@&&SoJiaś,qd2r.3Br:?¼~] 0 WI-9郼R@ J/E7#STyaA)8On'a83'Tp z)6o^1>\І c+W[˶C#] $KHH캺Zod>d3ndR 3\MB}ܧG$ρK"H '*@(Hȕ`"J3d엙s^/ZO \LPe2iD—RX[_`+O=Vcx@n1 dA^Zt-mp=@ qqA}vrÆrWWR̉V0vFUpD"k [fKnL:G{ bO mɝpX P. LvT"RPJB!R*E]Lcg]'=D?( B!R( H.y|;7;ȕ`{" m*S.x]8Ί;0 -OOOxLgG M&ɤ4&hTrIH'z{ZvG:~nVan[cSV-^$'ؙL8wn6dq3Dd

    _$9C@,=Ke2BџNRq0<~YMG\ddrB^ehh &6mڽm۾og+B(_6ݾOg6+n]9{#(rBGtG{V+;̅*:N2X<HG(da٬2ee*YH =E#v:/d1V+j`<1/vrKIx‰b1DJ3:oCA C;ǽ$ G,)52Gח=2U[0хȽ7m4N `V"@ *kkwzbfdfIQϮݹy5yu+^/ nT:qBNgfݡ>uF&ș,SHt:JEf1b4*JJSm}0) HHL2cz.obI|T4}Ix<" 'Kj5_T*HcI#JK&ZZ,-U \X$mp=U{V'O>v3LkС,/͜9H.T =Ƌ2dqs[#S7Ei 8H=B?lޫ3J`*mMHs]D "ϟPFZZ"!WCgX+{_Ie)!0 C ZT*CQe)V+jef"hp=ܝn]YYYRKke!_c,LLUW_\S-)/v,; i;.LQ㱕JZ-VJX)1YoTjT0EPQMwS'Ѩ0$0vCNctqnD/)(dWS<h!0y Zji*@z.i*>ip=n5|y#,Yfi=X;SnBbB#GI%KJ$]v]]Em-Wҙ? [\^^|8)/<l~?G`w[2hg)%8A䠯s8XZz(zhTL ASre n,FZY`^a1|j2^V|3#@`<E}\'n~'3?YXF6޶mߍ7^3DJeNyV;$pg6nYf E}b1]EjJ%!K~*Ut#6[8]L>_X^KԆ\X,tNg l~+D.4f0XFrḤJ%:K\\tt89=\n[cSV-^"(>O?mzwSsݹtBg.hi3 zIܹӧ =0dq39Lq(㐇[R=m\R0qx?ᰌFEiTI*JKUZф\dn#17$tV+3S!_A`oΖ-,\X]ጹh4WFˡC5ȯ[Y -n.+Sd]FF6USr_ ͞KJL&(C.Z./WO#553 S$\&X,[dLwws'\Bq:$oN/I'OlĢ$(rz,/(H02jfG{lHۼyTSGr6l[rO*N|} TLBP 8!;vs udgdT"HF#U%*TXXYtut8ڜmmn7tV4JueB]ܫ'PHpp|GGQo9 2V5N'+)h4⋍OvTj rr!Di%Jca7N ݸqT|^vrÆrWWz8`{|W̞mmf6i4*\J,,ʐ\A'LZxlknx2,EQZFG誫5T[(ȕ`>}}~kqrR%\r:BdTpލ )U Yhp={O]#N?]]7ÙXu;=jop8~<l \__Af>S1NDO8'fvuw;;]6LTbPV8Pt21 ##!s;l7r@Lvz&-|跋^/j9`2Œlmu;05Cd4iӴ"VI0:E`<a <ye˖+p&n5|y#,Yf)seǎY2lYF%5hWnŊ%Exl~wNg \!3~7+pɺOJH4J%*)j4V+C Lw)[Kԩ{K=H1$i]r~LYr5]<0+D^_OΒ]9A(LJQn4*zL2̈́TwEx]].He*feYlV&򈢑d[Z썍=hp}꫟,Z4B!9d۶۸qל9_JSMDPȑv3bɒ i]WWQ[kV+H󊛛md!wXѡ-9\pBd5bmҎKPH|dIOkowR;cnL̙3 \bJ!W@O!AbKHL& riO֩ap8N.wG.jqyyIYlV zYɘL\_#GWn{]PL>MMիnn]{^gR'ѺgB.z]lkn(V+%15d<R6.)M1hI2g??j˖#r%7ohTzDCW ii3 ܹӧ =bp{7L 큱@x&13s{%ir&V(%ιuä=&{dcǬ=(Q1wiҹsK5!freL-OgM"ww{H`0Z)ٙLUZ_YLpa&ӛlMM6R y^jd>ՠX@;y[,T~_+tHY/rhO"js疒9֋d20/UUWCŒ%y} i$C>pw0o^ܹ<Zs_@ȕ&3MM6oEQtZP 1T*czp(.ןiFWS3l6~C&44;oݺ#*d^sӱSF_}eil:Աo_Hsl9JR`<$)3hp:Ngn\!rI%lJ%cfVJnHzJ%@t]_|r8֜9//7|*A 0 $NWGt8,)TTTTqȐ%VMM}d&q)R% 1' 45kGYfR<Ç;V~=ԲoÙre+XdS#H^y[ZhxW\S98L9@47fGn;AiL&CHzZ-1jdXVKfKg;Γ'{SV++?jS(re --V{[Gi\-fB0nTgٖ;!#V+-xf۷xfOr,cGT̢ĦMmw㍗>rBT =3ٳMSj궰rlNl(LXS>]GRg (Hyg{v:Ct" t:F#je[;k4^.SV6mnYہGh$W]5ꫧ_uI8j+^ɓNc8[ܳpauSvCCSc,LLUW_\S- IJ7JGl}lzS!jfJZѨ` `JdǎY>OH23gzŗ|k2 cΦ&[cvd(JjjtӧjjsR&R& ӓ55j ~\O4)6o^,\І c+W[/f 8/Pȑv%KJ$]v]]EmezpZ"7أEQ\.[ Y:qBvo@_n|lZ-1够N'jzLr(Vp|V19r%3~E3&i.8aml4646ZZ[LV$JAn4*rcarvz·:lFS\OL@t]< ;r/,pT*sℕ!;{,˅# !]]Nwg"\٬,/W)-U&>z_.wV7ӆlV rN|?;|f~Ӯ~ҥ5%29!-_~}옵xB,.ŌŒ&>?d#)2jnbI$H *zhp={jtYػԪUׯy@uuɳYKdfsN+,I?iWTH$B\bI=^b5EџIK5)ZL:^oO|={NF"yovٲyJC;;0Սv:G MɐHDi4R0)ГAr[,eejL5}~rדE4شimngYPL)n~'3[=Xr"I$RZtR3$l6sFt7eeXL2&ʹm6?UER`k4RAJu:jxZb_zO0Ե\l޵&ȕhВZ T* #o{ZlټBή۽f;#K֬Y7G4+KcС}-JQ:$^_޶t fUiěH3R;jR%β2F#5tcWbD[b-\o^1kD\\& GhI{zͶC:%,W^Y3{ N0aԼ"Sd̢Nehp=yW?Yh /ܥ ="8WLv۶}73TUi ="Bn M&En-t 6M˚OO*1J2.Wj|>r`z`2&i4NɌF^/e9!P@v?۟:+7&ԣ2L cВ:L<ؾgɽ{O:e(FKש`&IdEiҚ]ΎȺ* ) #ݫWo?~.(pB45V~ٶv>x Ld#rZ0xf(fJN(oȗ'=ʙ|M6ݿW|%[Y\8#X{ܳԾ}pZs5,\8˱Q%L(plmu:1MMUUi5՚ʒʒr5;V1CuH2g??j˖# yF#Mpq+Ys`{ H s =F5n7z/oz͂bGlAӑ  l>U|6///coom/.ppQ&T`tLveeb2Lhp]PZN}N:imu:~@e3gI…ӔX~?npT_?7inj;ya390 8A4 َSLˌF9im2)t:^/33dw}ᅏZ[^;_Z[k.`+&K`uU0)eُ?>qn,~%R\xK`lhOMxdp|oٱcʒ1M:?v2( 555:!WWkJKUB&v L2޹wf۷xfOr,cF#Mlڴ{۶}7x3,OTWk\T*sℕ!;{4˅_}ea2lvѢ?ɝ&6.6Cn!QMM5**J$S E~\fG<4o\VhfbGI)pk_¶0I%7Doqisa}gDkWZ]]61L۝[Zh(LHl\'xg?ۻzu63}Xn޽VZ~ (=:>GM=wҥˏ-&]I*Ͷ: ;:,stD?|3 ƺu,.0z&[sV`fv]IlxHyjB5ȣdg}|3Db8淿}տ5rplpB˒+Q_yeo|*o᷾uRN0hgd͑NglѨ0ЫΜiD_58/hp=u|{#ͲX_sefvrd{jkͅ#@ qooڴ\,k}`P6o{ =FNg΃ǣG >d^|qܹ?B(!m,π556cf:H3o&=x2,5F#r&%&B$Quuf٬+<ȒIE[~x;|o\~yXre1x|$_?@_ky\0'|T_sԩVGs Q%4ӦiI/iӴjd~pFnp=~Uicg-I0f,hTc+W[/#Lvw}-[?H`0ngr\g-65ٚltLRd\8c$H6T'u:D).._ÝT\b˭Vߋ/?à _kT_Q`P<AuÃQaxs9Sw_ME4|~~kS#twvȟv'T%Juyy G Scf45%C lŸ+N&C)p$Z6}Oyf7yŏl&+C`<7]qEO/4dя~{رl<Ⱦȍ=f[sۓf%~EE /rM[A.T}#hp _3 _~k/)Ԩ`DW]|a? wᇷ5%f3 EQB6>Dvٲer&iL&&Xe0Is`u~/_~aOG":<k% xlU p4̙3G>z衷+~he4 7*٬B`rL&J_^^WW1o^YmmX̣(j޽3gh &ǏS5k9m^5cǃ|tGzeP(+z,Pa }ɵkw;k =W}ՑRl;㢸e  "vkEE,ƒX-hc@E0TD""U EXy?L}6˲ 8a3ޙ34c0;M=kkcgg3lSO3ð+/56TF1k^y#4AyYʳg덍F6p!VM IuL̻M63|'!j[>jj!"QBGq z11ONrﭬtE9}ayE>%:Ơ i[ܺ~=el)! vݾVNN~,z(ݻT\hT7#c(j 뢟~RVFi?H3+ŗxECkБ'%%UFD"d̮m'("~aM$>17ld3\I&WUS4u9&=l?Oup0|`Uu9isc]tJQݵ @P]tߧN=Rx~n„17S7m38yr!اgox[̴%#bc7lLc0_q-%sj!Pcck[SOÂC@|D5{Gݼy!df#ozر7osܽ{wĈߗ^t%՚gD9S4\X500@9rȑGB;w} >L"Ətܹ|f\AGGg޽K(ʗ.-:Xp۷W߽g9a']~r ƌohOFF?/:&**M?99垞?Dɕ3+++++KT c0X5O:iwqjdObr UUUݏ*!!J/(z"ƍ_}qyg͚+ ITWTCTG^8Y#1~bbb1 r劭-J0Nꆅ|ǏMMMmfjj3| ־aw4h 0 c0|̚5 0mmm>aꪢb``gf9s^GGgϞ=.\زeKG 2P ØLf\\a e…ơܑ`1 c١...555ܛƆfK&O|P~~~GmۢE5TTT޾}q"$ Xl3PCßLMך54xOĊNL/_ZD;=Cd2okk>tK.ɰ}j„Hh<9ύW\_Ǐ1"rw.8*|g޹sD"Z _(`Ov0t钽־}0 kk|hߩOܶϜ;N?0`^z3g?&61Ycd?Sӵ.v kfhhhat)K*r'0 z.W2Ao%ye ,XpJ}}ׯ_ 7cƌ?fddoܸz„ O>ݱccFFFffwXXXGTɓ'+**Μ9#//OR8ٳg/^rPTT\hQYY>Q]]ofpppccӧBfjll?B|۹sI0 pww0,--MYYð1cfdd899ر;t suu߅{>|```; TUUF_ ðK.9::rfY9N!ն6Q^;wEZZIK M7I+c2>w֭ϟ?߻wOS&DBə<ʩQ(~a4+ ߙd2999Ɔf;ړliGfΜIPN:~GuGNFxNgichts*> Ann=;j>#5kLLr-,Ž彮x n0, J`^\0 d+J goo_QQwuuſ0֭[Osrr8۷WPP8x BaMMM,3fk94-77JXD \:_}`iiit:}ڵ  'NDo֭[666ܑׯ_7&`XbŦM0 tҸq0Qu-d2 yO׿}ȑS PGrt:BivǟlpsQ{i*455.]s0nܸb|=B_2piӦuJKK+!!!99dĈIIIrrr|ST7H}dr@@Gdd$ C)(((077755ϟ&MbXxs2Hp#Gܽ{7_tM âfΜvm40"8}[n>~8$$2?}y1B LMഏ400 EpKOOW@!{{{ζt'鳣V <p!` _F_~Žwk=v@ߢ?(ر_=۰cG''i4 ""bwᄋcǔ͛'K;d§O~cdžrpnlP(ri##|Izz]:jfo޼Y__xz099'ĐdwwѣG?W'EEExBcccHp'OvZBBBGŋS &۷o߸q>Ѓ`~x='l$05 8c9!sNYy߾}=ȷ_ !D&Y.n:?'` _V3~+/R~˳@ [  pܼn:~yzz޽d?"q?aPPPo8t?n# /;wn x`ysS1ɒGMqrOR›{N^^͛111ٛJYZZn߾MLٲWi+ptmYb=O̽cv@w |*;z1lEVZuǏ˧OiӦҌǏs?͛j+W,--@nll |L2Ep4N+**n߾c IDAT!$fݜ'8q[AAa̘1!ٳg^8++k˖-|oUSS۸qnH1cƲe˼:J0a>|8ܹs9}|b8d3?/_|ݺu111<ضm:gh3kjj*++MV\\vZG۶m3f̃o߾mll}'|~ǂyq k[QT$𐇯ѵ/nСJJ W_frmz;w,~rC7E|ӧSL111P(j#F~^^^ttȑ#L&V^^ݻwnUUUGetA7SHBPSSaÆ]7w`W@]11:_z}\ē*9ͷnj``##|eofԨQo޼NLLtqqYr%q lٗ,VکX}ʲ_رc...t:ð۷o⏺lllo.]̽Œ=hyZavukkkEEE{{t:`cG><`SS'Na5ܬ~zϟ?_[[p͚5EJ"ù7ݟ={:~0Qu--_\EEQ'>|e;)=$,d8pFMM㗚0 -''}055 ?T*544IUU1""mߙO677YjOZUWW?qWD֛7%ffk98捺 ++Ѓϝ;W2|"|=$畁THB6СadrW:СwS(իWI$Rss3B`[N___OOoݺu 33gϞm߾LWWw xo[!bcc.^b2|֪XH~ 6 |󍎎IXX^@ ={v{x񢥥enm'˗/wK.m۶H$rVPSS[nݥKݸq%lQQQ3gcG̘;;;==իWh4|d[Q˗/8pG 2!d``sssSUU544ܻw/ :<#--={tz#G8ѐSݥ BS uG;+**FFF={vϞ=Ν~ٛCCCĉuuu\wQdd$'ð'O:88hhh=:..oi^-a!Xo׋/xnD~.-^0DѿGޠ7ikk+**:{%K yЇzSG%W3\f"D,XpJ}}ׯ_ 7cƌ?fddoܸZj„ O>ݱccFFFffwXXXGTɓ'+**Μ9#//OR8ٳg/^aÇnݺ{2f̘Œ '';v` nll<}4Bh֬Y'B[5*jjjxჁ^AUUNSpT'666;vfK;j5sL r)P]]OEEE;*g"&O,t@]bd…%vB^)iot!wzmܸ!ĩCccc%%q8p'k|sON266~AMMM||MW&܊fv4J%y2 ]!XϥEw$W-w|># np2gϞiiiq* Q{ ߃<ϭG{`pZl1U*35]{K2r^B8;;sWTT]]]ӝ nݺ4''}zR(6b:j>c A$)22Bt:H$r-nݲ0 ![ t:k-֥W^pڮXbӦM]tiܸq}O {g)3{R-h4Znn.JeXWyفgϞab:|Xg`^Ȳ/B'w[~N;al6{ʔ)D"q޼yUٛLNN޹sH|2ߨ]u?Obtrr›\wCLR0`[̎FQquj-;Kr^C{ϥEw畻Y>Iw7 oW&qsW{s 敁Lan5p`x}=U1 : ҥK{’CCC@ ƍW\\/GK8mڴZiii%$$$''1"))INNos*`0B>}ruubXB2u~BxY?<򕟟i``p-==Ãߠ7obi@Q8;ޞ-Ia~+ϻdr@@GddϽܿ|7_>gͭX̔)nOv,d0s[cM/_ٳOFEE/|F577_v !u֌]E3.= ]n"?E!|ԝ]WoM=X/5aa=r}WA>}ᅬ;644PGGsBINNƗLFFF%%%]vuԪf߼y~Ł|?x _haa{N0!}}}"XTT/,,,466t븻mð?cҤICBBv܉_Nknn޷owMMM/^:uj_"'GG_Zrkmm5kֺu޾}{  }OA|iYCs<UZd0L&B\iիW8po˖-<Uðsfff%Ǐk <?rssv;% 0O:jw3EC6#>3.= ]qKw ѯѶ#$:%P[-E<&L ҊD AeyRaaa***۷oǟ-aɥHCCyÆ/,-|mWlEVZuǏ˧OiӦҌǏs?͛+W,--@nll |L2g֭|mB g^zuqqqVV֖-[BBB:@nq555剉ӦM+..^v-m۶UWW3o666澂H$Θ1cٲe^^^zzz] 555<<|޼y?;UT*BFtEE۷#W/_ 'l6jVWP J;^555B.\hll&&os:>qDNTL&666jjj>>>ϟ?_[[p͚5XpǦ!!!<RNNN---v<_ȠyS"941 Դ˴b7/xGFF*))qEEEaeL;UTT,,,6l؀'2$yb9rں111|~-l)+ruڪf E{nK ^bW+߹H.$3D|m`1&iwbWݟjWHfx+#9K"##'LKv"Q{ ߃}y šCΟ?߽{w̙yĉݻWBN:cccrJ#V\YVVr۷O@?x~NLLw^BBL

    O@OWlȜO2eԩڋ/^h0%ֵQ$0t@v'nKOYL+z+!7n@ 6L[[=jhhhjj}ӦMǏӜ RSS͛'`!M ,={{^|RPP={իlpBccѣGw8͛7geeeee\fY2 q#U:0 寿2ga2K^STd(47˷77+hLU&D1 UVjO8No]WJ&k5[X4*(%֒Р,b!1*CUPQa(+LOPP"@(u'N<ݸqL| _zzz"ACCCOOo^4 ETĄFu_ O@ֈjl[ZZNZSSceehѢe˖u[ ]w* ?2ɥhP2;)>Lvy9L$+*V:BH__PS]]b76~PA3匍H$ɀDҷ33TR Wdd| ,[`SpMMmaa~K$I8ru06>H$eei @/?ɓ Dí:@0N< d$iaYd;;Cs,rZZq[ŋyCFF|0P*ak{ӈ7Rv1xT"U8KJJj;\}d澎\Dwt4VSSbp)6ٳ`RˊH$$')+ϹdrUAA# \\LLVm-&%Ng̴I$#-I"+*,fci?@<|x̙ QQQ 6c˖[S1c۶)::R I244MM9KՅyyUg0,`j:FDҷѷ73f wǹK"JH+9:''2јyy99sr>PUЂ26rp09nTwV IDATTTmi]!A" bp0IDUUQڛ"9R/|+++We}}w|)++89;9s0Z"W /^|Lïpp08\GNNŋ$rtJ^ZC<{`^ R33˲˳ss+Lȑ --42LJḶәkM~qC:d`},嬭YXU%# _Y,6g]\<'8z/ZځH1xa^|ܐYWY!dd`4~aՍeO^pp0#}(GGcKKvk{VZ>[[xǍ?n?[[drUNNynnŇOR(!NNNN&=ffRx_ ߸@%''n!?Bє$C=]\\3aD3#SFFYzǚ&6JK22>ed|n":8;89;8$-|- ,vSS[,eUU_>|.,*/.aU 24[[_eѢ_k@I; 1RWJjjkg2)bǑå}ȫWh4dދNgZ[o8yrI.fZN第YYe>T0,EC|PA(Hϯ5j |m@/uM >C|i8pիGwl蔏OĜ9?8g9+dTUUcF'|.9=c}}>eLD\+;;lg,n8th̙ @:>|:Ǐӧ'/oOovv츓RQw0 ]PݐYYel6}ϱnAA՛7ޕ8h7G`rs?E>U,[[[5[܊~"7UU}4WssW+* ҥW;wƐ{wǟ{3rWHT]ҷoK߼)IOHԔ\\L=<,<<̿|iMM-JI)NM-.*#껺ý] _ e%UO3{WZZZ''G c=d͐!zz W gΦҎ iG>޿ӧ ԵF7yKXXh@הS<=ws+'NI)..! ,, 5RS?'~]D3͵'yzZB#q냅njjRL{&#GڛhI;@ ϗSbcv IM ?V_n?A(X@Rz2Bưa`ee"Ƴ+(~˂ªF55%OO˅ X;;B.-{DNHȥRix]fM]9}uGTTCCMز֔)Ǡ,,PSS5~({Pk+=3 /un]OI#GÝWn Q%%ۺOQQ BJ5 1D:ų`/YUUjk|.5)Y޳g)F󳃹d]ee\[`NJ"gfqƍstr2&||"&Mr޶mcH[~+UUչs/KT÷n ^+熤$rR ruu7 2T^^!fcYYeIIɅ,dTw??gH2(-㔕8kk^$%\y}Ԇ obkY OsxK;h̅ 0 tsR!T\\cm E٢~eW¤jeeOO%KF8;3G?'S(G?vlISSUA=z`k`+ayy۶nkcn7Kի=<,H$i ֮J&WܹZW_;,*~?!y1윜r{>}(ׯ B֫V9nPZt\Y ee@pp0rp0QmmOs{Ǝu;qH{uu%iG56>|1]ځ$g׮//շCEE5P9 -D:ɳ+0 y䔔6  6̖㼼Ǐ=NK+QQQ6;ihH+~ _ qvZZZbE AE51N#J;\ KI Wd<_aTHFs3˂'Or+*Շ>G23^d}[2**F7qH{xjL.|> _IQQ͖-,vOT_IN||vbb^SSF9?^D# .>6w_ge6{0&{ -aa&Nt62ҔJSPZ*,vOG$yyYyyYm<9/2..֭g<71?~P`c.]Jz/_E{nff|M &-/[leeg'$䦧"EGwp0{WVUD2Xwƌ:s𵄩(Le˭)SAY. 44`~ssSN0 VLGA:ףRi!!QWW>{vO*sr2m>-/++h̗/ >̌ϩh00?zG n0rvvo}WVF՟?g7kk= GP7'׮mݻqqϜyN" y<믿2[K;xX+.6ŭi_W(nML&`гᕮ>jjYȍmwᄏtUF'ccc@ke{aa}w/^ȑC̞5ic]W5j~i-[n%%Vh󊊆:Ap2 sX,V I%JK_*@ ~2a/_^|{"Q.0u!03p ePQQ͖-,vob_,tՃ S͜9.io_N& `cѱcotQַߞQ=H{f^+ l,%ìJJjǎu8yrvjjJVU5FE^\RRlys̙55E_ ,vD$ N>>2ťKlmg=z5y1c@bc矧rssmTd hLUUE0 la2ٯ^ܻ̚&[[I\OY1Ǐ^}iʌs= q,vo:oϼy>oޔ\r; 1®0,**-(SA(X⒒Rz[O|UEJ0LEAPb߼)}& 0%0ЕD2-JvSalg YuOe{z\k^''ZY.Z4<(ȳxQVcc>>ewcj(s5Hh#55a:SSNw7#wsf>ىcm y`+4gee޽pp,-ͨwo}򤗽e#1PnQlm^r(;  >C ~[B@+\](*NOSb~Kqq!;{dӧ|17י7ɉfVK[{!L| ?i[a:! Μyy}%PL̞kQLyqycEovꮤBQueݸܹ'7oVT9VV0Iuaaن !!-#"f5M &:´-ԂC&LzgC&\znBѣw&L讥;*ׯz~;'::rwED7Q75jFU@b2@}={(:yEoРǎM8Cc'y_8 u+:|"Ơ֧05OUIIN]3fK0}'Nx&.Y?[8҉PuC<t_J ;fgjj*?8vlJn4p` uTR©L#IRi$BqqO$&~СKc6b]r3gM}bqgoO4cH8-vQQyi{к•+ k{$K^^/&Of(qaV?NNҌTzJOkct:M^^vboSvvH@ (##u`&XeZufLL4fM֯Uv`Խ{]QTaaCnhIJe**x߾ZuaĈݲRׯ/Z~,Pl~6DɓʧoVXX'H `O]]!πsGܓD??̘1 PO?9OFF>6l̍1x$/$I$Ȉ}7$9ܹXMB8-͛K44F7wnׯof<7P6ׯ!C* IDAT/hCyAu eaa>r6|9r䞌|1牋KߢOВ+(܎y >| c>,- ͭW߾D8.I[^ݻo˗X4ef 2LZajc,RJ|K\rxN<mӤI=]{1(%ew[:9;3tK/Z++,02ORNN+7n [kÆuVm; EE%4Ds\{gg[55up٨7O-^ѕT..,*Av)ըQ6u=;866?IKFkeJ]:h422R6MQwŊׯvv:ٽ;V[[yܸnT;u>NF%b^qqI\.޾8;U\\^h:ԕԩN/((6j}tXi)HRR>}]Gиr֬S))_* x/iiy+$iZm)S_P]@zru=|&2AFF~x8kV'L ;heii:={`qNI}^L54#Ci)G^o)28II, g29r{HW:!Y+ s%˦M1ZQYN?۶]LeYZZz\ YDF~6Hqqq ozT;}?_yII1h4ڨQ6ZAE2N\#G yZWF]Z {1{|XZ~l۶3iᔔ/n߾FC/YYn9_g[4eAxٳkrR7"bǏG˹ԆINrŋEI%+iA06v}nJbs2Cg1 $I_}⊐r{ݻӦkժ[-@@Ξܹ9:b˓')LHI1 @@^o.hnzt:MF)y<͛7o,` R:mo(7 lzTkh 3@% 3tMM={\.\ر-%y._faLIPG<$[9KK y_ wÆ7_=;LK]CC|Ty$I`t˧iݻYY[Yub@mThf8~|76;x,=>>N1 .8 ԦFdasT'6Ŭ\9 od$>Ym<,!!h4`HK3-:mZ?qz]MQQ֬MU .AWF]/2zz|{rz2RSSŖ ~lMSU61Q64T44TՕCHsrҞR" crr X_r7Jf00P=Z-'4=$=85R>d0hdd$ˠ!~ b2Mvھ} (Xx֫:ÆYkD Q/7o&bξ/FdddTTT%Ott@ =ںQZ.҇2۷/w]>Йfs/0vlןٳIu!%6r.7'+kc51ƍk`#W\?~|ia:22:k)-|矠q㺱˗HC?O~ɓ^ @yyyT^Xȱ3:P%;;5;>h7JC;7Jk :ee+Cs'qqI{>}fkk4m)8̴̙-|GGp1h45a#Vh Z?\4Ol%^$׬d[GfLx;`5!&%%5Jԯ)5)WL /^|{/\Y`mMz6D]XZAu<22R =4{otzgR/_^ Rς kºl-EdԕA dL̋;;n\@/33-CAǧݽ{:Y@RYXLjWFVUdq͛c&Nѥ9ɉ)%EZu[\>A22o9Hw s֬S:o/ݳgR)*s8}iɓh"eٲs&&^^v"HxSySOPrm6> $7n\3g޿~V'iiz:zusMMMmGu+n8z QlTTTŋ7oܵkWMM~ݻ7**Ya׮B  khh"MOʓ]v[n}]Ѝsrb~.ƿ/Knnu3E^\)6xfF!_UZٱZϟe͛KF:lcooٯ(-(( ̙3%%%Ap\???mmm---???.+(..k֬100Xs/ LLL xWVZm۶+))}mzzz/N(M;t蠩ZZ5}se!!!Wf0o\_HHGGGQΝ0aϏr@@@e[~蝺t钅ܹs+**zIVu:nz֭q㆙͛+۬iN~ѝ222***cbblll۴iSDӌ$CuQYYy111c[o+>>?bmm``-j:|h~5iի]~ U:44TSSs̙5v#jGQVnC_X )ڦ6$@fŲ{c8T'Ilfi/~p-[Əfvlٲ1lذ7o]Ғf|G/^Ų:~Tqqmj=00088$ɝ;wjii?ϗ/_n۶𯊫A>~f;uvZ$ pqq),,ϟ$7yy_VYq$_+++koom۶ʧHHH(_?zS~t~N 2ݻw=233[vpptH'LPPPpQ RA矅NmHDXX_Saaau'#'Of͚5ea#222SNVsssNG^v˗/fff߽%z|, 1boRׯlfիForrrnݺzMZT{0pkEYU5/s'/Xv@\[J\M<S+CEQ{tuRFq~ֱ\PPgeeUhѾ},Xkkk&Ig*+??_ZZzh$inn~0AAAAp8+ϛ$IijgHp8 +^͒*=|PCCrٳg$boo_Z$IxG[SN #442̏nʩW}H 3330C*z"$I }O:ֲ88JQQ1))IHEEׯ|;wR4ԩS姃$ӧO ĚǶfT6zz KK+~k/eMTlפUnjQ]굉qj^4ojj*hff)|Dt՚m$$$T{ABBBn*ttt I.`={ =zZf/_|ɒ%U{SRc.^Wj~rH)Wƚ/}% Up7_y2̘1cԩ222޽spp֭ɓ'R4cN*ر㏎miΝ|7ٍئ$1&ZIzmU^BqqE`]/~r ܪkmTB].@ݦ[x͐Pĉ{ݺu*(~]%G-ZTym2ydn9#GnRUs Z?6@Ҷii_SO;w^yeE-e}}u҅$y…6mWc-,,2ewIII5x/^ܶm[{$fjj*##Ӿ}K.պ;>|xe*m6333^z $ަM jlIIIU%wMV}}}WWל/(..^hQN---7lPZZZ۷oqjkK֮]keeժU+##K cz.)u?wرceee\.o߾dE~8W.[Z7$ĸ2N=J󕕕SRR?ܹu...ZZZv255UQQqppt钦揎->>')ϯ>w?w r/q}פUnjgϞ522ZhQEE˜F_Ҋz ty6k}F;_'O۶j ֍:Q |nɉ ÇڵZ;G&D}?A3fqoUӆ 'O޻vmφ@&%% 0 Tyvv7o0iROъJ yWͧ06PJ:tƍӧukD_]6w7@l77gϞ>zhժUӦM:T`|A矤Cnm8EedhĤ:4>)@RXXqctH,jdAuyѶjnFTɣEE**{y9+m[խ[:=@Mύm3p`H1BoǺu3woy)*^ef~T۷RztiDffS1О=yyk֌: +h dp͛cZV ٷ9Չnj }RT}sPoM@ćZr Y@TPW_ɞ}GP={־}eJ P<ӧ#Tccׯ 6@\ܹ;k@Qؽ۷7n,ªrr , y~~224{СN_BB4}6WNNۑunuQ0h^ؿ?ƚjQD* KFʟ;7GP~~IAANÛb0gϞh o $MCÅp>s8y| TRR/M.+'g^Z ~^СoݪUVƙ<SJx{m//KK9fӳx"PWFKҥׯruv淚r5yAnxS7o7n\>''[26V22R41Q14T  ###|~ÛQx"ĉ{iHuf?0q>3_EE7@#PWW:E%K¿/ݵk6nh PWNAA6<|V>fTB~ IDAT|޶jÛ222222jx; )\] |),V2y+njdab`NuRMM#ѽsCuu6m kqbg?au|=IK?x1,̧K2@隚T/> V: Pyy._f\f,Չ˗Buu, `-,t,,tzSfgX),Vrxx_0gNA۽Z(+C}XspSaʕ˹TPPі /Yd+eժvK '`2m|QQb/Cnmzwo={\ND.TGYYΜ OJO9|ƍ1Ҍ3ƽ{+R^LCCݏNx99[#.<;/ w1#hO0hnxuଢ଼;'vGu7ԕ7|mΜVe§e0hТIIѭe|gRe' Mmedw꤇ɩLY..܎M㊿Po,V7Y;vL{?eѣmkx@ ePw^LPWzEg54cb[ZRz>eʔwܹkrN 45Zn,Y+ïs7n9~  Չ֭NP;EE|),VrDē;KIMLK2eFu^0:^xUUy5OIIoz<'y4pRRte\NNk L4WO۷ٳfAѣmӄ+$[XXX踹""';bXaa,.,Č鲡ڵ>wnc3g|ZV:Q3{GL7LI@; :G9ih:Y2+$h͚;qc1X/((E5$%AW2SX;V ۱c[&ӄ4f2UT0~Tҥ Luf+W؇{Oml bN\\Q#: PF$)+^[ͳ?QPե!:z~nTgh a:fjtVV:TgӧG))zx,43fyuZx ;MEQD#w;8t޽{Y@||>U)| {ܹҌ9TiZJ|A]m -z"]8]vxxtu.^0f̾ܢQX11/NVkQիO'=y EeOc۷ݺՉ,@=W!wعvٺIYՉq? Z\.,VJ||KZIWXf۷fo|)8`QQyx,## H6>_0d==i5},~`VdZ.r(##T1xe_}?bATǑ]'$dP@䤥VVVVӦ#"--JO{]`]$ mmL[[css- ͘s\\Op "b&Չ$ةS?|9ztrͧXdwLcS1RDjH6;ҥy(*A\.n݌# ._~!S \ .**OHHgYի/s54ml L&CEEYWc;{vfmN$}+ݾ?zxɘDjgNT—@pŊ=LpT:հ۬RJJrvvvvAxO,V q,kǎRRummL^psٙ'sr  ٱ#6ի/H͛g_m[oolB%mre͚Tg&u單bⰨYbix;ԕ J|]VΕdw꤇?8͒S'O>>nӧgtjHu"IrƫȧAAenM>9bDݻ' "産p1,J4$1w О8iSgPI+.HJb<~\XX(kccd[Ya,GuFhLo ݘ8!?d-vܹsb.=;7tҤ6 RE#Fo6SZAu@TTOϻj>ru³%K̴ߚ8*<<~p6{bu >|ȍOaS ilkkܣ:p|;wޞ<շ9q$OrʍAAWj(@8&ԕ1vK֯>~_7^7ǽ 1ty S@20t  7^A|g3Y+9,+˶ҳ1( %-8|x==N߂DMZTg̨ZT>p nƘٳX'%>>桨 B]`>>9r5q$ P?**Ar^Nk׍yyKK]&D8WEJg$)GtpLu&*5%';I6D9rgGwf$ɥK#}>D8DܲcFP@]NTTfkj(>_Ql-֭WYGNݘ,t܂<\"ra1F4bD+/ϜYCCuCCuGG[ |)JHHg3XUWT𴴔t1c6hMN۱YAAΝo(TZ"2--ErrAp8Yo~s?hOu:hNe ~·?dzf AӨNԬI-8 @$45-esׯ?X))޸1FZѡC[[[c&ӸOv[+PF[n}³|`T'j*.\xvcǦQXX>y7ofufHu:hbc/\dKO@Sr}ڴof?>w{'-IK3MG' plssmh5kF+*.ZVZʙ:ՎDKJxqπa:HAAsڷoCu:h>M95iRyufiN77ZҾ}~,2U.M̥RR33'|b%q]Jޱ^fQbAt:}ڋ%%  :5**x^^ !O))۵ Y@ 15|ol6;ݻlnjd3&Tgl.^|6wnkMh-?͛'\ɓ֬=}z^jĦy,1Sdlss@SOarrK_ߐ]Xl yۿYNje,2s8 +,,[lbulوsS$ʒѣ' jYFi9G|V@̙ 8 Irs^HNEV dd(ZEeeyX A6?O#Glr_Ε}Vd:um'qї/E',**edA@@^tINNbΓȜ9]\zTnw1>_4LK̩ qc̺ucQ$),pjoAI g'ܹ'>rsĈ.Tg --Jf3S^$IP֘4567צjBB}^r870"bƢEa,U}pX,+!!FEGՐ W_Θq$ ;;C<ęM.o0v;dC]Ys{XkQ#%E^L== f%СQGG?߮6YY)**OHHg˹r]0L i"++e KYYϟ*A;&:;3#::aƌ c99Oמ?t$I5k#S}]nl8~>Tgٱڮ]7 uu%Oޓ&lFhPo„oU'HJb},wkkkdeHuz***wu=iZ^h4m[5 Y./v鲺r|AA4}^ѣmĐ[+;nI]YG/5KHfgn侃ud00@YHyŋʭN͐JJ_cNw+E8ĉ,+4I~k\~AARfOV#$oOڵ (((UTݹTߗs-Yw8p ǣ0!+k2ui+>8ԓy]3Y&+ȑ{4N!#{;@|JJ*?ǧX)')*2VV=z}a}ٶڼy}}Oٮ]7oVs*iiH$'TsXbYE;@Uja$hDu ~n( '',S46mTCBnj7ww b +\nyl|b%GGر:A75b2mm{010PIS|wǞ;d.=ME۶])$sr ##LCL9^!$Ilݽi"k IDATB\.ӗ/|MnQ@?$9p(nNM-8~<ڵ8&(-ˮ4MХ%Mn!]xv-XpBNNڵ5jj.^+ܹٳMӍƩ`uuu:.kjjvijj:{M6`0RSSN2}۷o1 E=N-$Mٞxf$!!ӫ)00mAȝ -8p`iqp^*&&Ϗ* gffW2Ы+tͦӪ < MM͉'N8ȑ#?AwVQQ cXAL:uذagϞ ptt󳴴y n% KJJ:GYd,ؼٯf1wҕ+Wh<ѣwSRn!.RQTUP޻_͛eeeA\|Ĥ > FXXν{vܩtRQo˽ 200pA[ɍ7_~[}}=A ?433SQQpႾolږ`0V^}-K;vP2EFFLJʕ+E^:o޼V/lUQ3 `Ȑ!ׯohhh{Wg^/^4334hЁ3f ATNDPP:!7݀*l~Yԩ||XqrZ|ݻ\99qq;6=y_~9677D #r;2+玎7n,,,ܸq AGʊ ߱cCΟ?yڵ[nEDDݻz^555k֬޶m۲ejjj~Vw 1cAG޿jj֭[7mDmv||ΝSwp8^^^AAA\.{졚nEӶ8## Q//ƍ®9sf[3_AǏ noζ9pGiiG((( jܹ#GLKK,..nASm]fuAӇ_ŋdd$PV$={!`F{`M;)&|}}LKKb׮]ASS7oPCCC---r$I2Իϟ?nWiiwYYP(m>wR$MLLΝ;'*Ax<D ^~ȈjNHH I5{tZjcjP$66VAAA7>111ʢ}׬YIn:gۯŤKQm]Ɏi[{EDD<:YCCCJJJuu@ lu;׿VV;N=T\\Ew-Ѓt'5@qvvvvv >jy]]7'߶{+roF4`0 ʢMMM 166FfϞ^=Қ0aBtt4luj>HD^^^Ӿa !5hddO#B\\fӶ*--SAAa6HLL5jKggg???$YUQDTt.m]Ɏ^-NHMM6mڨQΝ;sۙ(몫?第bnW^^r"2˫gIw9ҙ\9//~sttEʢӲ2jadC lj$11Qu˽B_iig̘QZZoߞ6m5G5MINN&BMMbeffR<ӶD'>SKWWݻw 555o:㫪߿:k֬w T*i6b͟?=!!Log~QqcYe]@'~WZM4- ==K8555#F駟{allLdO`0ӛM.!ewЇ_)@o[翼~]~z;;Ch=Plٲu]|ݻ9s<==srr\iӎ;t%Klݺ5)))))iڵ999m`0]VYYť[= @իWܾ}zN볲ml:-իWg嘆vQTT4eʔ۷oݸqcњM;Y,ܹsWZekk 6nٲeMj&IHHܹ tCS**rWҝ7︟_,t~>|͛7gϞ9rdyy9VUUull===/^fE nѴ&oυLVPP@;c/b댍.+?~CQQĉV3g999++ɓ'1bMtrr:uutt8@KJJj;ϧy֬Yfdd{K.QgglZرcյ,Y"++?p@-yyxkkkwwwKK۷/\044TRR OIIipuuuttOM\ڿm^zzzǏWWW'BAAСCzzz .6mZ z-J=lݺ)6\ھPH{$$$ɩ[UQQ̙39[NEn"uMLLTTT֭[W__Dm]"SSSEE cǎ*((O9v~owRw~{k2 3gZIJʟ5hnn @;::nܸpƍ>>>222A9r$+++...,,,<SKWWݻwS=7aUUU 5k; 8+LDjj*%j`0ZzЎT]%>>{ڴ081c .+wƺu]{̙wwweb77|Yf{'$] Bpٲe֭|ݻw9sxzzpiӦ;v^K,ٺukRRRRRڵksrrڋ`899]v㉋KKK{@@YūWvww(((}6aqqqgee%%%m۶'tZJqqqAAW"##gϞwQoرhʔ)oNKKqѣ555vrXsZVUUɛj"wR6lHOOݲeŋA"uN>]QQk@wx||p-ڃ.9QBB+D£GD_FFFtp_WnCII…'uuN:_1b#Iƍԣ++++EEE%%+W4}o}}.\XVVF܋*PBB4 y<'|"FFF222vvvT.IK,QRRRWW߸qc]]^?ZXXt~ذa{쩭m6{8vX~wj"wRWӺ֭Ǐ%<_.Q;M|fmu`x2@Bo`uom..u5|VbM^rŅ[`0iiiFFFMuuu'Nxa%%=vÇKJJ6m陞nlliӦ tss[p!ӧ+**ڟpÆ 鱱[lYxq;`j[?ݯ4]@?RPP1wo OugLf+'= IWΙ3^>rAرc~I3gٳe˖4555]vQXbĉlgBWWWGGǚ zzzR^7춳~aOdzc. {8sժsrr51Lw9u ik@dAsΝ;w}A,_|vluCL>Ff?g㮮cv)#5O֭&N4Rtf+eʲOyըCe^Ϗ>Tc#IւkOU_ $._[ @иyߕ+dOO5.rgc; WWZՑA.4c1~wuk,i鞕R@͟?B:ŒԕԑԭKMVv/ ".gy|?srJ.^\9q)Zގ7f9bD{-%k5_rťՕh`0|}}{os\c eeÇ] G2SS23Ə7<\MMzW\n>槧 !C[Xh[XhYXh1 IDAThÇWWU?sf;\ڬ"fWGϷ7vw2gom2OnSR]ݠho߼ѣ $$GH>4fN={613H<~<3,]>FaaOW@r Lܺغu @Q_Ϗ͊J MNM-7Θ6b Iո={|wM]Dɑ/y<&e'fkG;DEEr:jΝ[>~{TUէpKKkĘ66[ݣTV|B[VpN544I7h 5A x{a6}p! гܿz eeY;;#GǡNN5hzo+7䧟ΝkMw9WTTq%$$u̮]f_46 32bc9?-$I55yBRGBB2CUlikB!ڴ5fz,szz^51|< zD>ΰ gF }PeeӧTU^^+.23Ӡ2f !C]c__v?׮ŏmG]@"jM }^XX"7a6|„!!fZTV{x\y3q2;>g]@'egݾzDċvؼS))2}99%T%&55yѣ |={>Lgw횩BwE}Y䘘t$К }bfO|_MhJw9T]/NExyͳV@пNVnn 44TnOd{Nݵ+ =m)5PɅMZMc@ ]woПF/y2tW$I=ᇀڵW} W~B1ede%4HYY{Fco55 +WN\j.ɯSCB㳙L Z3HIyvO~~/^lGw9i7sL%M+Wc0#͋p;Ԋٶ66#FHJ]fOW[;}:ĉ&f䯾?`E&%%&߽V[{Є CM&N4g5ڂ:Q[Z=ꪫDwE^t7ǎ5ܽ{G8(reUUէ2愄j11*1tΟ] ի'X1AB<@&eXkMЦ:13*7dÆKnnӾf2Qff#! FF?2@Vp8YNi(//5bRii͉OG*+m^p4Ť(ꘘ::J&hMr ?-[ Cj]{/;z4)[8gΨ Wxo| %51sA*Q}ZVVP^'?;Wn4c%> ՚LeϞKJSq2Z>MqqoX󯾲߱sܴ^'/C^wNf2*,r{NVEE&uozh<(:t͛O U7l`ϜieW{qȗuJ&&&J]@o L*/?Et~?}dD@55 -^A Еazzuc:66+))_($ӶzH]&mrrJ kN@w١ϣS&&&ZxzkAAO]]9SF^$w~СVM5k$ˮ WF{ӱYeW1 TFX. [oaX1aұbte"#Tk2m0DRzT``- vqpBw9 Nx⍍ڵSOȕ> jl'ٳzȑJJt=**r+WN\d,"7 kMsp0:u*@A }[e[cv옉g@omK3v쑫VM23SA @FaFFQll槥$&O1[XhYZ.WNPIIvIII]@GDEFG޻& bfz tHLL_=%v˗۫ V W*+>ͥ2游첲qq1[XhҗZ\\gDJZ5qrc544r8T  amfO6\KKNhT\\y58ڔxrltJ ŋ%--Aw]mB P3 TUFСnI(Mw]WO\~Ԉ]]%GGs''ѣ К B шڔr?mqy>>1ׯ 3,W0|EreOݕprsKX,(c6L;N믇+VLXtl ѡWfZ%FcͧOdx?Caa_hh_߲S)@UZZߏ^i,]:vΜQrrRtQȕz Q]WǓ:Tʘnj1TQ.PRR? Ybb_ {.!!g#\]X[]{C Ћ ".7/66ɢnISv~PqMMˏޛ7S ݸRo&$JKKgfOl@wu!fx/ś6]y8s wxL/_\f(=ggٳGV+ ϟ2愄j11(c|ώ4F)C{@D&&GElhh41f;85腘-s{yUv),v-/gggg>„\*,p8,.7khh1BVBZOQQyXxhhʕf%&Ƥ(}xqqQQw 13%9|f)׳`Qj}4""EZZi} re~9?5 ]]%BJc,9OPWWXb¢Ec592%d3@?TW;|8kk]TJKk{fbLLЙ3&M2.\?**z4dUTJKKkR7G6Qw-9u*ҥGLgg۵k' (q䐐;w)*ʌoloo8t`>13y/6ossl=_l~uw$=wppg#>Ģ>>+w0=/jjԝh[[kkzhCpIIsϞ_[sq]b ErrJBCCC?ll eoo`bggC }IEE޽A>>1l0ꐐ`nTT*ɘ<ϭl*reجG2X,*1J'N4k vyS[ˋ I}٫WeɌgloof]m3@/Eիqwc3OG]koݹ%!!6a>4LNN>О jl'ٳzȑJJt_B!AQw>UrudXytKԚQ@ Z==bfRRl에7mޯn@eAPPbhs.7OAAz}vv Wjlfdfq8\n~ZZ!IjjTֈ:=)g޿|Ŝ9jʉFFt]AZhhrxxJJcۛ89 SU:134uuÏkjleCwEǏ3yuԩçM>zA?"reOs9..F\efAe̴߆rsTWeP^,{79**ѣ 47Dk2@B M޺Zee۴b}[r&&ls6{>nP+@)2f.7/11ʍC݃8PW%aaON50P@甗FGFG޽jMvtdN(~13|4;v z:c=sTT| 0>>;,,%<<%9ՀOl6y q+@׫%%SccrrJX,(c6L#7&':kLggU&ji)~ུlMfÇk! bf|*o\!tW}_ii Żw(98ۛLl&#AȕVP9:СT_dEGJrXcNb6eP+G%Ӌ>f'&Oe66RRZ/s?S^dA2쒝`*ukaPH&%GGFEĤ$d^ 13ʽ{]2lϞ9::7t/DEFE|(2aɄ &xhB tnx1'$䔔T1 TEsހ(oŋ1S-^l7~q4i^^S_MdM^UU jj; Httjhhraa܄ Cl 5o@ mNE9$NFwE׼}[um`O}ЃVp8YN544Kckoamm^Wq;<ɕ22RmVCCcHHQY غ)(H6x,C  :yz}EEo)jM If2VVNN&hM3ۯ䔬Y3yZGII1+>Lŋqq{{ m&re|AJϘ IU-,t;%;=e|3iFZ_ڂ~=^ :9 [Z -[㊊ڡC$)&TRݿɩU={?%嵅O?46`2:\ESS V>^($bzysuɯК o;oa?8{d3+^d&&]]%{{{{q 䢧ȕEԭg.7ɡ&/ʘ6%߻bѢߩL&C($&O6ݷovB/r;S/_^ ף$ymۮ $MdVGGdDB З&o~۪onVYYd=z رvvvvJJt_ W^G2X,*1&[(EL`;ߴ}ӧAobb.^\ea-g#Wmp1**U(l~AY|PRegg4yf* } bf^˂;nܿ6w[g]&gr8e|F($MLkhggdgg,ȕ/KHNHIH},QAA;p𠋽ISm$c<ԩmݗwƿx6fnl_ %3|5>>1{̱5"rrJ8,'+5j!շ7;}ɴC }/HJwv>^[ku!~Ά IDAT:b߾y-?ubT L Y3 ivth٩Lg\9q>rm!fQ|/A~WY,&E@ جǏ3bcJKkdd$GԵ5=`H]ii42 ȕ*7cIHmI ;JJ;rK3WLk9>>{UCC*V!fQtt723.it99)+\.7Ɋͪ++ZY[Y銋Z\w9r&0t}L ?8p2`LA0 A`2Ũ]DngvIІSS`AB I H%-*:-t(bbbt= bf#=Rlݻg*] |ٳ츸WX,`# T:2oyyy}]wL~j:dB1 99qEE 55iEEI%%!C|U5A PTw_ ?:Amm#^ Xn<]Ο?wt=bf.W^^{Нk1c zŠܸl.7QAAZoH]kk=KK]YYIk&FwA1ݻB5::J*ZZڃ?jjxSisHP_6SϞF q|_~ 0@{yL&~h_>̝Z@~[+@wR$#@ bfN M޹ӿbr 7|篟|Odaa-[/^_xbNNOt![OfiiW_o(P|@ԑ%%㉖?Zz"[Bz***&B]]ԩSZZZ!y f.::RS ,6]UU޾NN~*9UV[@(''5tZ 6745UXz7ojjjqe |;OOOg0aaa:::۹sҥK˩ZED`` hllluo 0:5(z=f "[&Ţt0((JZZZ]]rk ˿Keee---77 ?433SQQpႾo <װ###EE} 2dZ|gy=3ѣy|4]]ԍ/Ol̙GoeA0bb2fem>p`>Be^D($zyZ+].$} T?a2nm˖-[~e>X6mTUUuQo[hEQ?o}ݻw cO=Ԇ f͚3f ~_|piӦ^WOLUS\ZVomm54MkUV5*>>d>}zIIg}vEo|AZT*[[[?s)ꫯJΝ;/^~ w_/رc>}Kܼyg}\RR"HH;=vZm ٳǏeCE=YuyYJU{T}[(BPTZRruQQСiQ re/!Cn?ŋ?|>K,se߬V1\lŊ|>L/MSsRSO=͝D a 13]]o~dȐ;7./-Z[;ΞU9/g/>JQLO>~ד.\HLLt( Ƀ|I0IQZbo?v#F^[nllbSWsrrrZ喗s=f6A8lcNNN]]yL)p8{pz=%%%Qdf"qw 13Ng~[LM߼y0)חUZ2"Bt+3SVT2a TBBD@ !_4i]sJo---$(MJJpUW]EQ?Ztڵjn߾}ʔ)Z{{V}D]{f&'L`22ӹp‡z(((pMQ I[aÆoy۶m&LZ'&&{Y~=yHDQ;sw 6qqq;⾺?:::V+˵X,O>$EQ& 2Ù5kҥKlںfRPGzgaaaeeʕ+ϟ1 cHQ֭[g̘J?[?c%%%>dڬo/`P˖ݼhu<7"@2ګϞUTu3gE 1yy3F) IAQk +@hؼyscc#|8ɜ>}\k^w]kk뭷ϒ=xo#' ƶm'Mb0 6b0y>j9W?13t_}zÆ/OnƂUn),LvNuKɤȃ%%%cRd +@8p Pp{kzZGil49 3V( S-Ǣ7 0uJ7mD]sskUUUUUUUUMEFefJd_h,yVT, v(\qx 5JUg0utWD-n?(?g4C_ye^n"؍&N Y!պrFc(a%%$cdϟmz$-M=\ÇjA2h,؜r/kN'eb[:]IV/F-nSsr02DRSCjYu55flfr8-M.v*%;iZEE)ÆqW>Ô=r'tљzKDZiCT;!A( |'Ш ~B IkkG^yk}Μx=~}qu\n.__"s!9=]qp 262.V$emG}\ȑAaʞ2pٓVk*+!4-QIEEřcHqjtS5gZ'3@$3yW^fs̞=oT(n@7Vi&Q{SzP\Bqt=)m}pESffe:8){ eOBRՖV)UbqЇC@-ns B\زems8ŋ[h@FF[FWSkꦎ;EQQQt)I32$ENKDEB@hC +z$Yɓu$ztMoKv T55 -z}}}geQz 2#yV%Y2`G%YСi!]B6t){ с˞4JUTV)'NԵ|^~~bqqVqqQbqljqɏ"QlH  0MÖ-9Y`7 Bb74N__Рwt2r9?)I,vii1cCȕT=zb*(H"YWgd`0eO!=pJTΝ4ZvCD3hC з3@p׿߶G zk/N( ` el5)a՚HNHI B!$%rc [mm֓'\Y{b%_uUJUs aʞf'TVVC.9Ri4Zoz;6G* v0h=*U֭}ϩ /)q(&2+3hպ]}nTL(qe 2B!8 B WZGTǏl?th+K;u0pVTx)Nd.*J6,Ema}^;!A h8_ r f8^y団GFxn*ܴ9,kCCŋ[uuzJMJ%%SRIIdqR(%E, X,fpre^VVCG/k$6).{2Ϝi g3&+-M6B!Fch --m AK$|6_ | fN掏?y˖qr/ (jA5Fةr5NLR ;V(2>=׉iGs)"gkD~iiɓud(34L r@`jqZmm[L7F፦FZݢV[4CCCŋ-j58&,V(¤$B!LN%&v reFcP*ĉv[\\IYř#FK$xiÔ=EeOåUW45lfV8sL\!tci홀 IDAT@7 L"RYJ"+)px86؍0ڪuvL=huumm(6sP k11 :O?ӳXlkPfn"aʞ"s'ƠTV)U*UmYYjÆ]\|̘, :mm>Bh֨V.Zz3ͱw?W.Z4;F4``jo]gW dcpbg&!E 9Y LH&'"@ q\~Ukl6{Q2n aʞ"|'qLɘʪ$P t56vT:y!;aȌ`7 lf3g]ccׄ+>>VII"+?RVV,a DI..JO S0p+|^~~"$?jTJQkq>8\@ Nv*͞=fq`7 RΦ&SCCKc֤ә]Kd|$II"(LH&$d8P\anw?--"Ys @YT2lX& BS z2%sQQȟ,!4=۬+-Y,_3 (N'קn˳wuܹW@0j#I5?;N 5 E=a}JUaw(9rdF|<JvYiO!Vk*+!4-QIEEřcHqn#\ Atf龮!B$@ 4&S-[믽6w&M*5+FtS}qcEVkxѠә\_^BH.c 0* f 2@2;N'hj2̬_'vEADze_YQUjKK*rQ"!k/0T@7@@ gϪzЮ],s1 ȐQ!>qK5渡fs%]]1ljB :; W,d'O֑,\6" v3CC*&S3 $c>z^>1Yii Z@ Їl6Ǘ_~Çgf,7kV1 vjɤ5ccI165jZX"r@.d|B(%$e2~b(..*;=\`@h*U{ܘnaa26t٩nchC WjP;!A k f2!p%%coa@1c !)D\#LJ@8A 0l3g*r\MQTzdLrht 9}r]T8'r04jq @|iСs۶KX;sf]w]"vhn676ZcS׀c4N*4X.( J JUD*%Zv7thZqqfQQљ"F1ğ}|Ckcd-B >V`Z&0ȱ 13'Ƕn\]ThSG)u&Fc:Y6t`5yZS'& %8B d2~BP"m+A>?Wt8H=}smTVX,fvU.;7WaMMfr@$bA"JUmݻb1N`(tT5F3Nuϴr>OȕpVThUZ%+5dT%K3FcP*ĉvO,.*.5*C, v.?h+7@` fa߷-=Z#?9sF]r;ml0Xjhq-žǐY_$& Q reBb2 566 dW_-3X<^[ZZTVTuihvM^\YXb1L mdbfUUw~2'ORR2v`7 "bZZNgnnn̍&dV,`08Lo̗Hd2LƗHrLƗJ 2@ikoд( X_d,WҪ'Pfr x``@?nl49"Bp'Ш 13JUm?juwW7. ‘٬׷57ͮǮ õ<cc8R:>>LoLc86{Dȕh *URYTV8Qn<888sĈtL4!|UW45lfV8sL\=!bKKjqC@ hlcoéS3Gϙsu|4 re~:_Wgr(\&aVB4RYTVTeeV}.1c` l7+{di KJƎF@oYvMo[I Kt&^fucɟ#ɟK#cȕ!r*TǏlFeDGsFbRYs3;]`BH| pb~LYZl6Ǚ3 $cV*jjt`Z B\5F-n'Zi.tBSQQjIةSG`*Sͪ׷m:dƮXosUvJMQH+XzL~y)\"^VV=a DI.*J4(!mnNظqcȓ꺺'`W|Р{cs>H&5*N X]Ф GjE-n4jwNCӴB! #ꊊR K`b4ZnYh;cb>,0ys?X)69k֘ f=2%sqqfaa2Ev}]>9\:T>rdŽٵKL ͘1[<@3;ZZZZZZZˏZZ,A?cc\#b'|֬1))7 8tKKG&3nii%;+&Ÿq$3HȃX[ȕa@m߅ uӧIiÇ+l63+י>q5!<|r[/Ô ͭ6<`PQQwyn"̓+p8+**UmiiRYE.DG3}[o-f@ ZZm@TG1'cY8C_?unw(QuջKULLm QYj-@H0G|Ŗcs~zz^^B6>8Q7oޖ_~)Rjw:3-\s督 K' L !W`:|ʕ;u`FcTjE`h&W_C m7޸A5v>HQ=:s׮1$=lՆqUvfOi` WuLܣ6of/l6d0KNzIf\G-˘p Ml6E[w|>/{6v>tҮ9VIX\kWieeI3g6mLnSIWRQ1~t/Et!EűZ2Gc'|,r슊8sA"EKF$OuH@o|2'fA?3م`l4gno 3G…owt&b1=7s}֨VJ>jqL=<;gklVt4w  ۝y74MQo.F Ř2e(]C(r8F` F~4-FLcL>P[FU,ƈ1G1"Q(@!W@s:ݻYb~jխ̙! >bDÆy7gɤ$Y?㎗X,f. (?9cǪpLÇ+ m X O<1U* V \? >BhB 6f>y~~D;I<3c=47sϛJeUW;w?n\n[n4a1y`6wtZ]  ߝ2c(Ee reSWqDIu=(6IQ,4LUӦy݁alvyU70xҤӂB[v/~okf2, ̲qKY>|^u1Y" ?h+wpyl6nwxbNi#֮ m8u~-&ϛ 65kV 30ިu:sqx<ޜ 2!W17l7g2]}dXw1m0057pzl6=hP_{mnqqfl,n [/:tСsj,ȻŜ:uK/"}{I 2koi4F;M-nLۭ1v:<- Cs99ήF*S‚H$~)7Oq@ \d27婧 _,*Ddkt}J FZknj925ˡs\P >Y[W*/(ՇW &Znʔ)C۰'} g{]ݨD0 1o^N'!jq+B@~bx- M{ۇu׵RK ڛm ϕlߔB/xs^1qb0KaY1\hl7[wb0ZzwaNӿ+3pϢ*++Zm[}cƯ6 UP_oP*maaL&tSNI{Mo(,H%55ܲ`0&L >ϝ??ttSs.:xoIߣ}Py/ p:4E۶) ci>i<*~E_݆պP]UդVn>x;a<3(?~7ӟ<[WVml.?^* b ԩ^K}uV o>tNOz'<ވd2~NljDrӨ͕idnG't:}]VWUРXlEQe4m9bc&N&8pO8qb_ :݄jOOBOUߣm9jk?c2,nws.(JKK))xBᡯ>"! @ŭ׷2 AQgT̛w@$Mru i`0vEQL&C.dessLiF4#C:yE}1j{rȐ̈׭f2&S;+l6w!fsAL?^a<>'Q|~4ϓJI|>O xqq<7y& 4|H$a:=v9oniV IIBŜ58*"NI''SRҸ` T0h?kq'$r{-Rk0XLA]+\W7n7}{UL 755>+K%ʒK23eb#]дmm~4ۗ,vnQnmN/93k$1=#Dc01@x@ A&ňD1C!2LƳ v+"!$ٕ^F2*_z}[MMP%Z$"UX|)>ySDEӴAY,WOcf/Y2qҤ,ׁe;;`6b͝hkhivvdfbA1ڍK'-:L&Ϗ Ḹ$Q^^HM >:! 2=6I*Wb%%XI--pEId] STVcEFR ]Ȥ>-56L&(,|l6Gkk`im0[[fs;=nmOʴavCLQPˍ㑿h%HB%D'66{2Yt47:0e˶?NX v2s}FN'yǽ{U,i6WqTJ*~_I1jsV{Ai861Q!Ӗx/㱥R>#ξTSS`n ʸ~16k.{r'N(`4r bGi݁^꓎J_ ?UUU=jI=ijK^qDU3/&&<gKf%NN#R39W<ԋ/Ν2e+TE93o:99裏6m5χ?yON`08.XqkM]5n\nQQjfL T0ڹ'|)ھ}{^^^kk+EQ6mʕ B.\fP_uZZځ֮]&ϟB^s->Ӣ"(uh:TW_}5EQ$Z:յ:EQ\.z7~7|p8%g̘sNW>;vuT3h \tҎJ)))+Vhoo(`g6r߾}999b駟vfz}ʎI׎ "ۥ(>>|xLLLbbz۵Z뛟[q86l^{#G:_ġC:->9`d`<6AQ_{@p 7|g"a(t?~>^NW"5sfܸklv…㳳WRxfү`OϻzN'0fiGsτ>xZ4sfDGQgf=Pg_V$I_;"̤_wvbSZZ*|okW.gر  IIRR?geja)se^RTT !??ŋ FQT* =}ZNd29V>}zss3}]NogX%%%K=Wiz۶m7tͭkӞ:J;rrrjeX_~CFY֮Z~t$Ss݉L0;::Μ9c6;g_땻j׮ӭ[oS͕O8W>I租~ۍ^uUk[ghߣZ^׃*}2?vfүFw+wuLW.gjw}̕ȕ |Lw]B|Z_O8:k4}С;366v_|EWLn9eGjr\ŲvZȼ>t}?O+WܳgZ޻wN EP蓗 >Oo~qv(u^y VKWկoݺ5==]*>C4vXvTg7ǧn޼yΜ9rcg=7[6lɉ;v,#PEx}MϽ} dglFǦMBɓ#BZtuC6TxfүF&55uܹn|uuV tcБnt"777]F%(((1SZ'N@>W} }2T|gC%?޽{ݺudo? G;L W9 Y1@ :!JRmmm?_ŋQ^EQ`7B@ Xd@hPZ@O•YjU[[ԩS.\> 4u!B6 4 :*Pz ?|`/ȕ re2v`0Z[ ^$K= @`0O>}tg1hvkoo7Ln3DdvȾt}.+ {"pQ'9 j v+ dY1@2  W_+/ȕ(IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__dep__incl.png0000644001725400016040000002265013273140101021344 00000000000000PNG  IHDR bKGD IDATxy\gn5P"UAX<)UnDRP *hmբX"DjU*CpBnd9@̞@tCtAFFFFF tzddd_< 3gxyy=zTII 뫦=jԨ/_&&&޽{w$ ݻr'577?|_bÇNzwwc hcccBBO?EauuOvvvq׿+Cٹsȑ#߼ysС怀HرもМSkjj4 hxqUUiӦ9sļ{ŋXSSӜ۷Lﺹ1"66$TشiǏ#,NJ,Y_mhh=]V___UUnݺ%:N񩨨CAAKcW\Yr%6D`999]r۝;wnNN~ƍxb zԋ/R(c/V]fٲe'O[<ݻw]]],Yuuu/zKAA!++ qzz:a$d2B(**b\.7&&.&&n߾z绸\|KҲg[[[{{#Gp8?mwvv.YkaQ畕EEE=MX[n>|HXS2UUUљ7x =qD6]^^hmm-**5k`bGGDŽ+W3FP{{;nkk_Ǐֶ}v}}__&ceffyܹxz޽K. \TT|HleddCL&:66vEEEIII|ͩS~vbbb[XXqBYYY333BXӧO ՂYYYwܹ+د m |>&Hش*//oҤI***Q}5D儳f͚ .Zݝbm۶ @R44418::*((̞=܌tÇkkkO:5==&Mt钋իW"Yp/_x Ǝ]PPى(ͦR666Νr׮]hcǎ]j>KsիWmllα^^^&&&rrr/N744\f ^(_kq!***FPRRRWW/++355LPVVf``Ν;7""bB*?UϺP(}l8岝]nnnDDĆ 0K{{۷Νkhhhhh斜cee%IGGѣG~ ;ݻe˖8d2 \\\Ovdeeg͚u ==۷ow}t: /د }m(z3f`;~ hooOKKE'Mѣw z{Ç}||/:>sN|/D7'ټyJڵKWW"bffv9Ѽ666ϟGQ+bĈM2;::|~xx8˽z֭[H$Ruuleeuaa``w\Q瘽Ua+**So߾ӕ_sn۶;wTTTܼyWSSώM"## /(c.ZࠦvСr `oeh4ӧ]yyر#??G !̙_SSŋ,Asss[[[;;;),B+((%%%TUUh4+++{{{|aiimgg'h|ݻw=P(~~~]k.yyy++&9iҤe˖e,Yrͻwb!!!'NTSS 8rHXzuTTڵk177R[l5jTXXv qÆ QQQ>>>222_}dBXXX\zUp)꼾^0}M297o^PPP{{;vA+TF :x'\Qcs*@m@EE%K8@m@UU7j!j!j!j!f]|!ɓ'bPP E]MmjР6ZZ:sZKK… ۆ/㡓&у̛sh!]v=z3*Z{{Gg'pB ޽ٳ?ZHkk#x@mH mm'bx|L }wiyoM"!(2Z[S2!jCٜ/751U rqM\]co,rcjXC!I:;y{C ]]?D޽K*dq)Pر[E ٿqK\`q|, EzD]>;܀'$߷V@55o5%86nr QE_~+8ڐ d2)+_CCQF,zB!Z VVkNH$ˀy-Pc8 GTP5@RV)G8[b^{xVW I2zzb*EEA=y[ڄ;wѣ3346_~ϤItIC#GVfdna.^ر5Sy~eInǏ sCEPŋ[3c8I3M^tsǎ+A.DAtœ|uNHȶmK%w~y6^t : ] V@m/{766!ץKZptMd2q|I3@m#9/vv_H:Oi:&H&v"11wγ?Uw0..3lζm!u눿6N}{/s|> H%%@mMCB >vyV^jlI@m  ްa e:x{~$w!2$vԆ8t/?CBH:ײc3d2?ܕ6Fnsc˖MݱIҿxhhhS%N! ^xz5ٷq8 $d L#+HJ^"p>Ö-|tÆ$7NW@mǏ+W= :m3sEl6?DB.5t8bjO<}Zpd11+5Arr2OtD>xQF<魠@t8E-[iiwVY[I:zUogE:壨(+p$ 7g$&zۍjSj(ee9&oI#ƍ'ϟxAJ7@m|4uu˖EȐujjG6xkgbH:2Ϋ[|4- C2tF+WK:XlX{:--eI#ɤFnnqwt8}ΩzKssZVfz]] I#`/KKGn%7zqwOlLOr|㜝dnTTNTrp~t:\n+h oT$g](Jnn.^=TQQ8sP~y0!22~***f̘wտC1P]Ϲff̘aoo?!AOFF\=zxv ހ@ڀ@ڀ@ڀ@8mܿB󲳳TG֐ɓ'+))M6m\.PVVOt+|D0KKK˦Mƌ#//ގgđ5kփ>]c eee&Y\OOoʕuuu Z[['Olff?c˫/т g abbuր&&Mhnn:u;wSTT2|y d/**:s̛7oo߮...wttp7XWTT$%%X/$QXXw{mٲ%55ښa ^zCUcccnn @zzz:::&N兢)mڴiΜ9\.OҢ[JKKBx{{WWW EQTUU5??O| ]]]hBT*599ѣwNJJJNNl߾L璧bHHHjjjϛ(((h={ &`:ʢ{lׄeddT#`mmm--Ns猍Ǝ{ ,eSS&Nߴi>g|7導55 .:*~U]]?S(˗/3 55ݻwlǏ  4vՒR >>>X.:FpppJJ kooiWf2˗/5Z7P]pKcc#N(e^^poX,*YQQ5Vmm-yy$/]#++kmm+Z(ԤP__/F >okkK&WX&J|mMMnӖw EyFhJrw9qD2B%%'O&LOҮ\2eʔ}566fpd_d0x(:99mٲ+Xb_"''EQl]ZZ*8==/To$[kƔkkkBh?7 s5&UUU?33B<0aB7ިTjIIirrhכY߷:u 0}m۶oݺ5$$ςikk'~իW4 ;bmmK55ׯt 7oH7n`0')((2sέZ+瘽5jDׯ %4J3Xu1LMp}FFO6Gk* ""<,,gg紴={8;;wf;88EGGH"%%%ݺu+..(₟8F믿 c\W )1??fիW/YA[[L&x7,zvvvf2gϞ555Q_ AJJJ~ЕQjAQȑ#-v]]]w܉w @kk޽{mllpٳ+W|MwFfL/^‚(p>|?~[:::S566"rEHtH=r(خoݺ5cƌ7̈Y,|rׯ_fLf]]]\\geeŋGm߾]pR-D 㛚DKK҂}}}P!c7ϩs999t:)1,,,.^XRRidd4k֬vT ---q} e,++sRPP@"L&4qD99q}hEHuuѣGGGG;;;kii"][[[Y\nxx͛-㩨|eXVRSSjmmEQ4==}ܸqT*u„ Xʆ777 f: [ԹPџVpKkjj 0^8Gvuu:iw ##]vyvoBk>iϡ O2ڐ bl4GARg̘ߥ@ bk(Ex{{Fڐ"bbbzc_Am@ @m@ @m@ @m@ L&S" <B&G<\%g>zG4iVҐ2J껓A*;{]$ Dʕ+߽{}Eccc233.\@X`,JzzzVTTjkkt8j(,UyyyqqĉñY,VBBbq\.200pѢE^x1:s u%%% #<;wݻ=44{'J찰0@ss`A۷o8::|GQx<^HHHIIIUUկ_>|} 6nݺuŊ!ҋ&gÇ'OpPC8Ν;nj4s̓'On(FFF=:::YKKK.`0gΜelhhpssРhl6_Wn777tK}\X ?&4ؤp!Y }GL___\!I*|Z<}8iHPbFEEۻ7F#]/; ^bbbzcH9ҥ Dzڀ@ڀ@ڀ@ڀ@nj$vڵACm܀@p'/WYIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.map0000644001725400016040000000041713273140101024570 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_41.png0000644001725400016040000000323413273140101016027 00000000000000PNG  IHDR%"#)bKGDQIDATh_HSoǟb,7h?(EH \bQ]D'"K,hbATa?EZ˳={m~}<;TPH E0&3d&|ٳ}zݺufƍEMOOPIXlَ;~2EBv]Ѥ!|He`6l8w\yy_`llĉyyy ^~}"322Μ9@ 0<<DvS>}pccwR;~٤@\.W%.,Z֣G"?qpԩS`aFcmmhA;44ccc'J"UBZrfv ! .]Ddooh7 Ϟ=\SSSXXt3=Z~E EQbI3srr Cח Wϟ?׭[>}t`` 77w޽GI&˲  %LI ~4?~_xaO8 ֯J***wM8xT^aN$>Ǔ,tq8V5==d2UVVlħk׮eeeeggԔ,_%Qaq'NMMm޼YѠC}Z+N<)wt rʚ5ksss+++Dž1qJw\& vY;oaYkޗl!%iӦp/`2CLf( E0&3d/eGBaHR?LV(0&3d">`fIENDB`XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp__dep__incl.md50000644001725400016040000000004013273140077017760 00000000000000a91f99d982c57c82c0dcbf924e63e1e9XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathResult-members.html0000644001725400016040000002704713273140100022345 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    xercesc::DOMXPathResult Member List

    This is the complete list of members for xercesc::DOMXPathResult, including all inherited members.

    ANY_TYPE enum valuexercesc::DOMXPathResult
    ANY_UNORDERED_NODE_TYPE enum valuexercesc::DOMXPathResult
    BOOLEAN_TYPE enum valuexercesc::DOMXPathResult
    DOMXPathResult()xercesc::DOMXPathResultinlineprotected
    FIRST_ORDERED_NODE_TYPE enum valuexercesc::DOMXPathResult
    FIRST_RESULT_TYPE enum valuexercesc::DOMXPathResult
    getBooleanValue() const =0xercesc::DOMXPathResultpure virtual
    getIntegerValue() const =0xercesc::DOMXPathResultpure virtual
    getInvalidIteratorState() const =0xercesc::DOMXPathResultpure virtual
    getNodeValue() const =0xercesc::DOMXPathResultpure virtual
    getNumberValue() const =0xercesc::DOMXPathResultpure virtual
    getResultType() const =0xercesc::DOMXPathResultpure virtual
    getSnapshotLength() const =0xercesc::DOMXPathResultpure virtual
    getStringValue() const =0xercesc::DOMXPathResultpure virtual
    getTypeInfo() const =0xercesc::DOMXPathResultpure virtual
    isNode() const =0xercesc::DOMXPathResultpure virtual
    iterateNext()=0xercesc::DOMXPathResultpure virtual
    ITERATOR_RESULT_TYPE enum valuexercesc::DOMXPathResult
    NUMBER_TYPE enum valuexercesc::DOMXPathResult
    ORDERED_NODE_ITERATOR_TYPE enum valuexercesc::DOMXPathResult
    ORDERED_NODE_SNAPSHOT_TYPE enum valuexercesc::DOMXPathResult
    release()=0xercesc::DOMXPathResultpure virtual
    ResultType enum namexercesc::DOMXPathResult
    SNAPSHOT_RESULT_TYPE enum valuexercesc::DOMXPathResult
    snapshotItem(XMLSize_t index)=0xercesc::DOMXPathResultpure virtual
    STRING_TYPE enum valuexercesc::DOMXPathResult
    UNORDERED_NODE_ITERATOR_TYPE enum valuexercesc::DOMXPathResult
    UNORDERED_NODE_SNAPSHOT_TYPE enum valuexercesc::DOMXPathResult
    ~DOMXPathResult()xercesc::DOMXPathResultinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp.html0000644001725400016040000001331713273140101016140 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocument.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    #include <xercesc/dom/DOMDocumentRange.hpp>
    #include <xercesc/dom/DOMDocumentTraversal.hpp>
    #include <xercesc/dom/DOMXPathEvaluator.hpp>
    Include dependency graph for DOMDocument.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocument
     The DOMDocument interface represents the entire XML document. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_33.map0000644001725400016040000000052313273140101016017 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.md50000644001725400016040000000004013273140100020774 000000000000000902f8e713e558e0772dc7bb703f45d0XQilla-2.3.4/docs/dom3-api/inherit_graph_26.map0000644001725400016040000000053313273140101016022 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp__incl.png0000644001725400016040000011436413273140100020336 00000000000000PNG  IHDR%`I}bKGD IDATxg\ ETE,PDkA v-躊kD(X@EX@Ql TD邀@%aKx??$3L&'sf$IJ mC?m%55uݺul6B@lmmmmm y@>}zQF]Λ7o@hohi&Kټy3% p6!o6!o601{;vPVV`'.ZԩS1,,,Iڵ ԃȰh-U5sT >|…sέ]dP/nnnvvvWp8 ٟ>}6U\\+yNdee̙#y@H)((tYIIis稗N<kjjdgg߸q8**ԣG/Mh&STT]]]R@ o cʔ)?FFF:88oٳ###Fv)9rd-[XXܸqqڴiOu֜9s&MHÇ͛gmm}СJY,Ū:})SΞ=Kŋ >}:Tll… Ǐoccs*3'/))ٹsԩSmmm=ZQQQc=nɧNm'mASS333 |mm*3hkkzlhhXZZJu)g2#F常GsO_tiǎ۷o tΟ?uر}?~!mֶTLL̑#G܎;V\\MDxx8A?ܸqNHH_aa! \]v={̙35_}W5jԞ={,XPGgr4AbbbUsijjRv횛Rvv LCڬm)%%kݻTGG)((p8Ծ"BCC[sS `0k: y IC3ɓ ^]VVv۷oߟ?&&&>|ժUY{zzzϞ= HKK)444utoH-U%*//6lXee%puIDD$++[nAdffR1똡ͯcPП@Hz3++k̙K+W|izzݕxGϢ߿@AA9>|8##VVV/䤤YҥK iQKQYYb***;>0f̘vZmҹj: ҥK***FFF}}}?㓙niiikk+..ۂEDDu3+3f̪U,--xO/X .d0nnn iK벲[n;w5kΟ?ϝw_Ë-=z]mݻͯ2![ ;Z @XXجYݻGw! aooZ7 daaa.6JFFftWA7h8mʕ+鮂65n~;'p  btEEE5d6&#&Ɛ`p9 ;tmmƷoߔ y@6o\% 11,.$""]Tdp DO$Y/mJHtdDRWEEìq~I^űAz7@$:99?sJ PVf`ENNR`U=񹗝Ҳҥ&&=of\zZQ4hU5Ѱgk׆ {^2|@Ǐݻ̼ uuUtuUT:RϹ1O?9sE44:}7$INٶϞ>(..Z"_gd76byrsjZWWMUURIݺ):;͝;TZWdm}womۦs 1ljj[tiÇ7lbZhzӵU!I׼**X/&%eq8HTƭxHY)F;qayS'Wo^^^J۽VJmƩ}oMQWW\WWWMWW[7Eٷoc)S{{;J򊕕vwp1~OzRmAde&Oߩ{w.П.k99ݕÅ9]JHHBAAa`nEVVVٳ'\Np÷gyz(X0ӧo̩8msrt-kwAƶm6&/۷" a;|ڵh\Cŋ֯paţ}b~h>mh~섄y>,nf+223 EKsݷfDD9CmGBBlYC\܋_uG@H o@{M9T;Arrݻ+];3 mԼS?piw 1n׹̤Ic)& C6Ց]tӔׯ'hht7o0yyizKڻ+/g>OzlDr.(`.Y !ԛ퇵tUYɾt)'ݻL##g[[ _|ڵsmWɇ۝:ɜ:@x6>ׯ$Iv(٣G?w]'KƏ:JغXOzPs۶b\&EEo-;o> ၼ ®,55Fod822gqv6UWW i" 7Qd{Xww&*쯿Nз6pȇ?߿}mJ 嬞=;՝ׯw]L""My[Yq'* :Ֆ;t]IOOmƌAFFZjZZژK}}>}55 Z0fLo!$I;#b,, }f ss/_~9zQI]@p>+]RutT{pplHHlYY.U}_RҎ%sƌ#AA tl6w~n_8 -t-..ڣ2u!_(bl֩ E5Y m F,^|2--_K֛׫o_͛7W.^<}a 4mz5]7Ve%D_踸T## ̦M(..Jw]dIpQQipksVVs,̕$}wǎkӧڅ8 MQQ9 ii]GQQYXS{?,-{GD,71AwQM}e)..:w'\9Cf`0,S_Իw꽀p~Ǜs?~M8w/?Ɯ>XLLdDwQRY^_s6d!C]xuwɓ!] VD oII&&=||&N4jKLqq^T9s|޽40—$$=p`/{y4_Zo/8w-<}+~dO}AC"[^zG!Il3[LBB…Al6im m Z8Q{EDPPvpdֹsk߫Q)*V|O|ڶfܡ-:hZWW voCi|S;RRKX;u?sQtzza[u~|6* y骧뤤r붯ҥx_ߨOrMMu\\njBV^:o~;LfKQTPCu7C@!o4(@n~[VV1yrK-uu.Jٜ>}6Y3٬MݻX37Ϲ..dzo6@m4.+*sv6IWBBI47ijc @ee֝ {it]VV)**t tەJ͛qqFFZ M6Pjz{ML/w%''%$$v 溇۷9=-]*Gk==5]]վ}5ۭ>>XZ^ĤE3fQS?|؞/nݤ `p ߿? Bކ+%%ӧ̜9xѢQ.5)..34_s͵k|x`-/Y8  mMtCNiiQ-]jJK#]#$I=zonÆmխܹCq4իO&$l%II٣G>}mH=~(Pa߲Pa кٜtkYlX3}}wTynRRIDEEh) XLJJnDr6;}a99mQnz|i  LNΏ䜤ׯ3^,7oe9A/:}+~dO} j8rMNNfjߖ/_~xGt1T46Yii/:7>}4dd$:h~??6EEE--\""^((H;8 wr2{')և}dr3dȟӧ_ [n,&|˗_b06 C;l߿p8dBŸJJjJ~&Okh?~ΙMze%; x:HkB)S`|/>ڰ!m' A\&a|*lHC0TT AK׮ckhi߾IM Av릸gϬ!CzU[[Eɖ9sZ5%d3g7ֳg]]O9Ew9 \.Z-["{/**BAA$'ӵjHii66srm *+]h)m{<53_P**'Mp_HI۷WOvpv9s0T64]VV}=3uq,`ܹ,rpMNj&&=s>|ȱ9\XXbU ۔JٳO\]G 6W*zz|rԩwk4nv]_:ŋ۶?94YsС;$IV?yHYg8]`3ǧ>C]]SO GA6;8Xj\h::ٵZ֭˗]oVg!oCTVCCn~0Ct(C`PbbY2pڵt̶^;;>z[֝|r]Qc亸ȑy#G]_y[KK+==j@)(2h99GSS3--\o%""`7/SAeN$RYQEc€_ SYίkSVVilu$߇n>&|ժk^Պ0T@{`0VX1l0 ![̬l DE$Ip8UO'.]j#r8p/}4fΜr7 ddĥddĐvOAyy%^̙>ݘ/ m˖_<})KSC\ nU_СCmmmi)Z¤w2SRr+*X ѡXy9[]]֬߫!pCOPxx }fGF8H0kl{ann'&L8O?94K. ](XXSOlׯ߾LJᛞ:`p8ɓ:fZZ-,b3o1xp۷=݃'NmΘ1Ϗ ߿W( ~嗢 .PVX(8xs猌ŋ;99Qu9==J߾}#k:444n޼Mm{}KT6nHmJDDʯ_:!WY޺J.+<>$Ɋ*mlRވURR.dɒu֑$beefy$I-[:u[Lm?TSy)$CCCkL u{Uٍ"IÇu6>dee߾}K5R^^ݻ6ͻH#А!IP}V_#>Ad?A?znr RY0`W.)nH}}iit|֔뷷l"**{$WXyyy_EEjbbbv/EdLĽ3ddd̮_^SLKII|ҋ/HKK# ))I;BT,YS8}1XMM-22JaG7nw٨(mmm3mڴcǎu풒3gp/p8ëʛ}NS+IIB4))" HNN条VXRh~??\jСCDDDߟS:w*GԫWKQw8mT]3?A+W566e}/+1gԨ}o]W@}򴴴Ç3fժU܉JJJ?ѥKTj˗/mVRܹs ,}zСC*TY7z,,,>|S7R[yʆR???>C+2m=yOR,**"I`ܸqdY_:tHSS˻s玞qߒդ9 kCi-aѢcf ~Ե*?=QCGx񢺺:ugQQSN]]]L&W̲իWwE^^~Μ9K$ګW:GDDԸxEEĉUX={hkk 6:Dd~~yWXAu#o}Y|jiiUdժU}ٺu+w|&nQQQA9r`X^^^FFFRRRݻw_v-whm?4|Snݔ-[VZZZYYijj*++K;-4|֝j\i8Im=y6͖3t;w3gJųK^^~ʵ[|k'+4aٖ'u߄Pam `0BCCgΜYSh>~C֒F&T6k,Oaaao իZZZ^pa֭?A?VXX6_mԂ0n>}}%'燫;f̚5r}6HHHǏ===]\\.۱ZqqL88 xWBw!͢* W8fMXe%e@(!owrrrnnn°RZ*Vm͚5SN6m `eǏ?Ok-&$-̙z'D֯{^xx܌Grr~]4C+OPiiŘ1{UN~7G\*6vX[Ao..ǿ/gfKw98m׾/޹s݅qDVVoꟵ5Vzõ=v) ywlj@w-u]B?0݅æMSwXTTFwEPP_==m3]Kcb>{Iw!|`0\\CC_2qyR^rq9&gO븻ǨQz*AA.φuΝe'Oe{MS~iCҢ | L%݅Ǐ~iÆ k~SE?AV^͕ݻ+ |mոM tg,g׮Gܱm(@DO }?WodJKDD v{oǍ7n8VTTėv?WdIIaaAk'((>>uT]|-++պnn^*da/++IwQP3nvچ%%e߾֭7ϟJJXY꭪*Owiץ )S]Tuf…AVth6ߺ:6vhۼr;TѣLM1T0BnJ{wۻwߕVjZYӷ&z4퐷S|[[oݻ[eU|kf#0yXCki)%%+Wy3qډsaݾU>{֭7׮i(}+>#Gu FwuN!o rN=hb# YL;bqBC.$?/mvrr[ D/6!-lrr~Ls%%.y;oߝ;k 鮥e~rw?!++勞7A6!o bADD,Ir$Is󝦦:;v̠c 5e@^m@߿z×.w&Cmz o R[[fx2MNt%%^+WssEw-rbGcrtЮ!oC=Z0(**5h^^Ʌ KvU~Z>7oU  :t~!oCC9m̝SP3<|Vg3j`XY)))_?`0:!oCS96 f>g.jcg!IEt"PPa[D篿b0CކfAosh>m}m;J= ^5pOwSy͡ɐ钐fg۵k>WH43an}{BWg74ABCoshmZܻ-hȐ:]N޳F\WVh -͡!M.NngϬvVpHkMxxG m6: o ٹݕ+Ǯ\9]磢bbiG[]۷..KJʎu1Br8m46*,_88::9.GRRrv82fLokSqqيgnzv%K,.-Cڠ9P#55oK ؍r1{i7 Iww/%##AwEm69m|l٩n55;]m"#̟ ݵѣ'1T@Avdqmt]lí#Fl=`6k YYAII͞<A>C!v)(`.Y &]P޵z\&ik ?l)~ <Iҥ! ԯ j`+-Z4Zȅ ׬9ׯJGh#5Ao6 yl_HKIˆ n **Bw-B͛ *}} Aw9m6Jmޖ oWffҥ!/^|Y~fDTgji„t"\~td кyGW\朚:/?&…t"tCMY{̈́ mzR|QP\>ҥyo)//狼y 6o]Νagc]N`iH9t" . JN޿/V y26ol!!'ߵc\5\HH ϞmTVk y 6ZMv+Op vieՇrZJc..+Vvk1T@S oCy ֯pۙ3MvSl~ܹgOnęۺyry/6ۍbqbvᆴq.[33]+jŲ sO7ay ۜV n,]joѢo\Iw!w)Sكꇼ /m.x c۶.čs猞=鮨x)\ظ;ݵ~tw? ଣJw9B yfm.0ud8pϞ>քښIhi)8]HY}I0T@- y7o&nr9'hRKww IIq+j.\xbřǏ=tQVwM]0Bh6o 5矗=rĞh m( > ͽhgOe'JkAofŜ?\VVm:ǎEϳg㠉~̅ lN"""h?,@ Uon{=*lE-!yAOOm‘3f jZA6\9mݵJNzx#?ޢ"˗ 肼 \CoԼ#G\\t˖|U|WQxqlKZӻzlxG6`H&6ӧDt&uk 6jýͭ}Q`ƮU۷1Lf)/tjQ_~Gw-͉K=wKqLfh-&&vJQQm6@+zFoz HƍtUUr֓'ի4?+W^v,8aD2hܒ˗]H+VQN|ō""B@hM֭׏}\v"w)26Dټy]U&3͛YշfJJ/]?wٳg{2wVɓkCW6p`7kiYx?Ybb"l ߻uk=Yꅼ Z5/{w%޽ll?}&""/6++w?d$bqTW㿜:l6gvvC1Q0iҁ]uhW\- 3/'/;_lmmmmmMAhۼٷ'C0k';ӏ׬ a NW=5 ],i?w&$DZٜc 퇙U$JС[n03Й3ge&HmBh82!!-2Mdׯ3dd$F+,I omqqQYYÇ-,i޽w]EIRI?x&ww!&&f 5Y[Q(r#Gmo ZFhDDwp7yzN)-O++?~XYY`-Ƙ:.**ji[HgnjmհMŖrWmpBBhtQpp| IDAT6UU$I2((fyʪu[uccc,($$v?~U޽ h!//mkkrXt_^y]|+.^al6'))rOxx 0qAHIGbٵkϱٜ:򕨨ȅ K@#WבohPVVvu6؍rosXltiɓf%**+)$IP勂YcJKYGIKc;'Źy3!$䬄 k ݻ]EԣQ] ~iӦǏN񣎎Nsmw$nݺ۷OYY;dzyyݺu+%%E__z͚5bbbA0 mmdF&Lp>hkk3 Aӊlf Chׯ]E=:++;$I`0ul!9Vl+Wq8'O>QT~=4""KPk$$$Y^^x)@a 4{3g]E:ṛ/_~߿+ݵҥKӦMkf=zԣG68011QAA ڵgϞ_􌌌}(A^߿?TAA^mKKII}$$$$&&2dյ-URR"!!㓕 &&VRRgϞ &Ir***ᙙ׮]ҥ ӧO ^^^6Ι3ߟ 3g;v QǑrWBBIzzzԫo߾>T~~޽{ 8Nqq1ͮmq|$uuuŜ8q QQׯ_Sõm'Ic*r%ccc.Ydݺu$IXYYY%oQ$I244T[[7Vߓ ږw^S{fGGGW_}>KП(+p֨wwwTuuu`0>LM'˗/:::kkږԩӽ{?~9rԸxIIIeeeNHKK^#MA999l6W^Dmmtqǎ J5զ˗/KcccS[[sΑ$YGgzpw>w[jۓ iUNСCrr㍍؜: o;_~urr2jf6ѽ{w\9LG~:vhbb}vsԲ0acƹSv5p7Z#EEYkkcǢ81--cƌYjwDeAAǏTҥKjj*5˗۶mmRsܹ L<9??o޼9~xjb_z-͛7AP?}Q6[IG4in˖-7d2vmԴ8&&&22RNLEVj[JD`3g:o1@#}ӏ?^TT4p@ ٳ]vŭ[ԩSVVV/>fC5΋BIIIQRRcpus^T{8;;/[̙3o߾r 5}֭KBB9»Լy֯_ׯ_/]˗/-`0Ǝ{… qqqii:u*΢E<<<"""o޼qF g͚|ϟ?~zÆ vvȝYJnnnvvvFFFttϟW\Iqo߾YZZRCj_xqȐ!gEEEmllҴN_?~ٳ?ޞmTII A:t(--ݴiAż3p5m:@ߞ4iϟ?L2VᘛoܸzzwqM]oH–=d,1Tn 8VkV;GV:u~*QEXevq'"@z#{nsF! %+455kϞ=ԶǏ_zL0P(uH^xRgfqƌ緿>OdBB3Ǜ?… ki[[[||̙3[$yss>}$&&*ܜO8QP(ܶm[``СCvZ$fϞlٲVRi999һ%ݟg֬Y+455}aaagƍd)))AܹSfHd^S's޽~~~...K,immLLv5Çرg׮]3gtss^A:Np%:vbb'sѣAAAMMM$Ix777WWx>Ox񢏏ϕ+W֭[2{lOgH<{s=gaaA$ͫONP(ꫯlmmyj\$ΝK~۷O>...7o>x`^֬Y#[RoGFFFR{왜,sv9j(IAbzkҤI0Vxeg̙3K,ikksvv&Y׭St>}8::nݺU>B*ppp/%)TB uҥvs?@ b38h~hۘGSܻwߔde'AٙW1Pg!bҤI<ԩSDG,T]+Ygbȑ-; Oȷq%8^5mL}=#?wHII!IzR]C2 I+Y_QН O-; J / @0Q*Υ);Cjy3޽{T=h`@xx݁755[YY_Mm)u>GuLIV*8o'YK䓓!97oޘ1c222^xb5•@߯'N̘1G.???((HǟB 8q℆劊jr׮ٓ'xm9 (… {ڵٳgK:: Wm@rs1rvvvv;rHdyf  FbbbHHҥK.IB @-ZH %ws^qZ1f{t钗Wllە%Awݷoի%]Ο?ܹ?c˖-*h mzRX(f$2GFڽ;@YlllQQիWG/=zT=z3n߾=((h6m:|Z|+ygfUqjnnC׮]rW^b +cr{Oȷb„p??}q"I7x_1n8PpeLn 6@W1~{iՍtb +Ι3gƌۓ'On޼?sLjeLn6@z7<Rطooz갰Yf5~ ~Zg͚=q'*h ܹc--tc9d2ׯ_~z˿'7|7e6T@Kot "<:0,-Cho/ B}?Į]OL=yc|[&Nx)HDw ݚÇ6mdᅲddT a:9`eeArq6mO?̚5 &=P؃ @{'oQQmrrvrrvjcpbbp} UFmٷoqa`0?>}tm>B8q@6jhhII{tB[#zkdCC˵kׯ:tu928&3jT9Ё^{5m0 :u=зz~'ۼ9߲2><(&ݞ0A-Z4WwfdEF S =ף%݁(d|W%'gYszժaa#F4#䁌0oϞȹt6NYٳ'/;8 ʿq#/99ԩ;;w^rq=OL gP }ۣ/>\XXӫ ݱ^xi;v]KfE?zTqbvRR;Acb8'{z:L$et4/^` 2ԇL&~[n :hmНmn}@4ʕ/\򰩩=8'dsu˖Yhb>TgQfVNs^-tx^{6H^^Q[N^wr6,(:qc%MM~c> Xosp?/pv;mA :eoz'-m7J&u+$bc9aAAt:uLO_gmmNw,zرU~0oeaa6ICn4)b͚tǢ kII<^st4'63dHͤ;:ТXf#E$cǟ;v$ի_8`o.w/.דXtJ$gd&'$'gV[u;"YY9ZZDGӞ*njٺ0c"S|nug.;VZZ빗/?ln߄ރcX)C4wޚ~[Fw tP`ov׭^=itbIIٿ-/b;ztΘ1tG,4:4WPmж>8qwG/f'%egd̨11 r;4+`e>rd݁" 3gI-;V[tËsRRnllL=th eFwt…Ljz E |ٳu|3W"H <~\h3|xPttqdsDG094E矟r?ǚWTTKM*X,& p{#1Ň][Jw,Zd -2{OO]f{\j^??#cb8GatGgD"ȑ[ tǢ]@mЖO룢8p͘ݱ HJkkaÂbb811ww;3Q\659:"P6h_+&VZ^}#P7&sȈtqڴ5k&a(roWQQ7o~@L]k+ƍ<ѻq>#Fuc׮;vцX4 C|ò^v̒tɬs)` yp3fMM}hѨ?;PB Z2֢~irŋ9W2ۺÇo2; P@ G!_~Փ:&HO/HJnY3gg1cPcaIwtƣi/Vp(c. E&yo?:KVz t£G/f_{V>ArƏ5bÆ3gddKa(rNA j'))+򒓳x6??hNl,gȐ6eUUC|vK;P|4L w,^ݱ@wD⌌䜤J#r|?|pm6hXrryRS8 hRQQmrrvrrvjcp }`?:tӦM̚5X:Ct mа;T^,!a ݁%ͫ}}G bnѳ:bʼnSCiP]|4nڗyX@D"qvJ--ÇQ󊹻z7m6cAt1 Eȷ@NG{3''c*)zQrrիBQX11} (2-;vk>aE) E}ȷ@4嗷hʿs0))WT4؎'&3fLš#7Sb@#o6 oߘ2EO1jB襤;w -,Xp&N t;4-^|+WV]1"1?|cӦsncfLڦ˗^wcc[ppϘȑCsj˫3fs'M;P|4楗u8.LK{rZp$B :u'99{׮9э 6hƍΞ{ZcJ@O+zһ4jTHL gԨss83hҤwg_T^^O+`) nnv2a(rmC E_JU/ 3*MNNNyҒ=p`ΤI={]  MMmA$AVL GSET5.M^,P:|֭Ӧ9JKSR~=Ԅ11} 7N̙m.ʹ `׿`M4{O_Lvt߲] }z"]v7M^}tΝmnj=O;͛KxFHe()TAׯ^C^6!;)" o@~ֿKw,`=x1;));#fFE92x„޽];$:ugң  Fl,~)Bx̘-5"I2#bǎקMPZm˗>{2yr? BBz|/]ʹx1.ntSzɛ7iVlL6Ur dĿn$ 5Rʾ}מ9tŋ9<^)L&-))ɓ ŵk-[յgϞAxxxٳۛ.]V |}u1x:о 1th݁i9{W}}=Aǎ nnn&B ,_m|%__ߔΙ3ٳg"ܹsᖖ{>tABP555666VVV]% BB+k-\0L&UÃJq~Mijg͛&}Bnܸ`0e˖Cۯ]OC?򒒒7o,ObbbHHҥK.0<}Dk_~-cCU3gΜsVTT߾}ZuiӦsZ*// &\|yÆ >x`ʶjjjؽ{wyy}X,VSSӶmnC$IE-pdsݻ_y啁J,XPZZza A5k /c.aD̙3y<޽{ >}:駟B˓t%M9'MN:EHm(YfA @]m_ߏ:v}}wxxtէOrurrr~T$riݜklbqccH$RiȮےͩ`٣Fl>|$^Jm>d2>}:00PP%fffR+˼r|A$)Ec*|2_x5݁)rppXpavv+YXXXAC MD>}(** N:UVW\IMM5jn$e#<+#$)))뛛?>22w^YY)JJ=`2Es('A2oIs>}$1+\`XoZjjn̛:u݁*))?cBIZ__J-HOOBjɽ{6mڤlVX|ɺ7|suuu 7p~:G!jӧO_|yff]Td2|b||| Uʯp0A \*!W $$dXYpLX,^`%K;vsQ_yO>?~Ν[͞=O?ZxqQQ FllSx<g 7OLL|嗩888qAwIM=)-Ozsu|ssب6=cƌKdeeYf֬YE7oޒ%KΟ?_PPpҥ9sXXXHVPvh !A{mhhP]|zjɌh 0aLJ; 0NDGo|>$Ʉh7|GGGgg 677K?cioo?szjV$I?~< ܼO> 7'NlƍT`ᶶCrKSbǎNNN>>>v9s"(uuugvvvXlYkk %*|-꫐jO?:?ZAvX"޽{\\\,Y"Yf!)j@0HUXX3lؗǎ-92X1ǏO>@@󃂂d~(\ء'N̘1j@?9tԩ gg;|:vL)X,\1@-ZBC_ЁK?:5@ظ޽[6t !!W/~:$o*b1yi"Κ Un̫h2e݁ә>nt``Xt]܏>Gw `RSSifA  Դ9;[Ɋ''KKK[.$I~h/wӞXR4ifٞl{{{A}ymhfk;̖Kf)+oX{0={K/rUe1vnn EA$jݪPt mPꭷ~Nx@4Mp~IFF;UUl6o_^ vRѹ˖)/hiv]޶폾}=ffppO-"̢Z6`߀~ dj5HIuqqmqq]qq-k#̌fG{ 0Mȷ@ƶu_~9 @TV6piiiiO/󅮮= =p`/++! ?te۶ vS_y5˖,Zplnݿ_: -WxOT!=4^hCCKEWTT[TT[\\[TT_'fzz::99S/s 6(_ΊX:G =|XV喤>.-gzv4?<'8]g 3FS-ɣGSׯ?op8^:+Z$Wq%iib1nGރGDZXhq( zQZZ/ `i/Xh/$0)ȷ@ڳg݁Fly46k}CTQXWf3CC=  )Dee$xeeCe%N(^^,fuA TVl9/Aw,U#<ڛЭPQQ--wX QM-A--ٺ]XQ ^TTIUSS;!).}}p8(|駔;sPMU<}h*rK nʯiҟ' ;?}Z/ 07gyxvJwÒh@ Əѷ:=oĖ[;;ˈߨ(o{{kz# ŵ<_X^.)Pphm}#Gnݹ^?\#tFhd'd  5<|֭͘Ew,;hVěrCC ď?^d.sss4*4bw ]PTTKu;rK+DT7u/l KK61)ҟ> vJNȷ} A#FYe--RyjF&,Szee5[$/.~*bmS_5r'6,Xh84kk5BeDoT?7V˪y6jX|}ǎݾsg2 Fl-Aơ[o2fn#QQaa @S:5uYnnE[ ssl^\1stmS7lؗLJ]݁?Јh4tk uߍ-IK+HO/hkZzFEdCwM%%ub:iGAA B `22&OIIaaYL'4b u Z%?JO/]˫$Iݎn-<ܻ?skVe!&m͚׮=v19hĦu :ݿ_Lii -|ȐWthlZ**xT<|xPE#ټ;/Q3d9944._fm!wᄇmGGFA&ǮZ"ARιܒ{͛ՍiiO&LtJhI:ꇇN^^F6ϷY,)S|,ReӦGzy9Us+4b˗ΞG 4;wƍhɧ>x/8 ƆhJK ?+vCϯcnjPOmG]SzAAuccAl6Ɇ.:iի"#{t6XpBBOf둘~=Pf馦6@`0>Nt  e;x qR`ѣ+W|XfVV ZptiB@ `*{Pbb&I ce'js*pu4%'gϛO5o_ݦX,3kk4 6x݃g533{۶M; gZ6nl@?’:*޷CeK`tnB F֭[tGvxzю*=MT]Lܹѽ4СQ_ZZ/nڷk߾.=z/oonĈdc#?'&'˭l^0W2{ڄoI A mWcthF ˧f`jd5@{{{hfZX@w AN@yyCEYe%]Hkn$B $)bGj644h*!ioo|T/8ԤfF-))HburȐ^45T*M=BEď`2"Z`V~~N:IWTdg9R|Lٳg 8vXpppss3A`nnn˗/TK._uΜ9[8w\xxe޽:DP(TyMMt!CA]vlN߿yl6[Y<4y wߔGgRRR``͛%g#111$$mҥ [-tX &IKomm!Fd0G urrꫯPjj"mܣGaÆݾ}[f??7nȬoX뤊!Aډ'$%W_} gOa OBIܽ{w߾}Ǝ{yIgu==[u“. US'P*;2Cّ>{l޼y...mmmtWQIpʕJ̙3gܹoߦnݺuڴi\.wV#b„ /_ްar<Դm6߿СC$IReQ %;\(\bժUAlܸQzV$I KLOOwppP]:}J#bҤI<ԩSAP{MMM ܰa…kBee+WTW3ʺGĽ{y<^~~+2p@$y< JKK>LDUUZ__g jkk%{V IS;v>}~v"9(L^T.uȔ$E gϞw%Iٳg555%A#@@0 a{pBuuurrr``fh#]ѺbcSxr|CVs?]H666*;PYUXgd$Yf ?raaaTE1 ήȷH___.ҧOrurrr~?-.KdHHӧwsrr$巪c۷oō"HӦM#zlN/2Ɍ>^Qtj}J#"%%$IH$ $Ǐ*\H|(!f5>ljjDW^N;ϗɨ,ZBΖ|i_dm UKFY'ICz?$>CJ]ǔq9aȟ ;r䈤GJj={*R'VX'|C:ηQQv+??*̑|&)>}H?#6 uIϙL{{{OS>x@~?[$yƍW_}fĈ_z%#77WKC_z̙394RѕѣKp͕.Ckk+ Mm/0JbbG*~=+;X"Yս{${{.|[!m$zH}X)))bxʔ)?^#P/Z'AuVVVߗ޽{iuw랲: XQx 8&QQzTv??*̑HrD\gWT< &~% ]\\$rOOBjɽ{6mڤlVX|ɺ7|suuu 7py}:G!yYYҥKm6r/ZHz0 |`$I/)jSdԵ \o(2ӧO_|yff]23S`5RJ^\ΖٕBqTK*Ç766޸q#99Y`]⊧P???Ck==uRS. kOZNpwwg2OͶVybb/L xN覦&"9I- 7 ݗ,YCVxիWNZPPGS}ݻAG秧^Z2…z( |>ܼuAP]`5R;S|Ċ .[Nfa(!dN6mѢEQQQnnn2{.h:*NB+V$%%RO~CݣlS:˟e'_uY +Bj+2Gfg̘t҂5k̚5K h E}ؾOBB4 Ǜ?… {zzϜ9Z.IǏ077ӧObb|ĉ۸qC@@@bb"U@ >|-)5HfXXXH:̐$fff믿j?3k,@u*))޽{\\\,Yڪp@?Q=Re/;v899ڵk̙nnnT!DRBmmllJ8>UTK]'7:z(RRRعs'!URJ?“PH7ۏ?>11ՠ`Se'P*._Q.Wx?? #%In˖-*:IL}ߊc$sRPѣGw?$@iZj.NDDDP=uƍԤouw1ҟn -BR?9qܸ̖Եk׾[t Xt.;;E@gP-kVX2eʔ޽{/Xuutt꡽`$Ї ԇ䠇П`П mC yȷ4㓃(--; 0ǣggg]N4X|hI+*m0ޚȮ0 /hF$tb&M}wS34_Q1mC yȷ46bI1h-IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCharacterData-members.html0000644001725400016040000006151513273140100022606 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMCharacterData Member List

    This is the complete list of members for xercesc::DOMCharacterData, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    appendData(const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterDatapure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMCharacterData()xercesc::DOMCharacterDatainlineprotected
    DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterDatainlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getData() const =0xercesc::DOMCharacterDatapure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLength() const =0xercesc::DOMCharacterDatapure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    setData(const XMLCh *data)=0xercesc::DOMCharacterDatapure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterDatapure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMCharacterData()xercesc::DOMCharacterDatainlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/inherit_graph_11.png0000644001725400016040000000525313273140101016027 00000000000000PNG  IHDR3ibKGD `IDATxYL]o "B,e"EQ(1&"(nK FQYB\@QĠ!DE HX)m{d&{s3;3=@0 b@L,: S&+lxF0<~3aHTTp2,<<ƍzaHDDDd2#zC$8NAC$8N1X899' X,__ӧ=zT* ~+W$HphGkk+D}MV+8gzzzB5888ׯ_'%%ߪx<޻wPѣGzFRG9B۷oS2dh4[[[trӧO]4&88cڵ/_xpKJJPz!G9JfdduJ`@QQ`ddbt5225553fxajj3h4Zll,~QTUU\~ JU $iǎp %%L&Mb &1޼y3,,L]˗/{yyhׯ;;;[XX$'')UTT̚5N'$$ U9B///++Ǐ-Z^oߞ;wq lڴJ:880_~ ?c"66vƍ666/^/_l??s\ʕ+kkkfϞf.\d2yD)S\ti"ĉ*.K̹B`?*}}} E=}~۷0hPxE@DDP(p q8774hTWcj yyy~⁄B-[۷o qLL̲e>fT,ZRpϙ3f1 5kVYY|󍌌\.dա?NRq]v%%%aVPPH 7o`&H\.x0 +..vss#^ZSW]]?D"LV__<K$2eeennn*k*;Bٶmw܉y<b힞wwwh QeiiYWWI&s=\.&okkԤ0i޼yfxxxII aӧ8x枞]]]]N핏166p8ͻr劆r~*9k?J\ggs/_w^HRq hx>UUUоvڤ6Mڰa[ZZZZZ:::yHRP(HLMMչ(}}}!!!{쁻RRR}lٲwr 2 L&n߾}t:]{_KIS_yD"D"166ũA##ȄCUsWgJ$ |>aBp͖۶m""d[XXDGG hW0ӳB^b111_~%V!mjj:{Çw8 cŋgΜIRb»r?JŋASsrrt:q1+>akkk;;DX!+uIDDDP{ҿUybRK/b7o߾]Y#:,Hp2'LԩSSSS!bP# E|||GGGiiǏ|ٳg!3pn:v옟F[də3g*++3gnn7-Y_PQuՄeB .//`eeejuuu|Ν;ɓW^/--p8jӧ_zUSSS[[2UsFaH҆tooo2\XXQ]'DEEERndaXgg'. bfMLLp8Deef?:n XQilla DOM3 API Documentation SourceForge.net Logo
    Class Hierarchy
    XQilla-2.3.4/docs/dom3-api/DOMLSException_8cpp__incl.md50000644001725400016040000000004013273140077017440 00000000000000a43a426fe1c3d96f16f90b6d68d8f61dXQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__incl.png0000644001725400016040000005004413273140101020257 00000000000000PNG  IHDR<E`vbKGD IDATxw\SWȐ=D@((VbuZpWEڪT[j".Vbk*jCY&Iu9{C9â(*6tiHZ@q4.>>>>>(@'p8 63@; i1|񉉉~~~LKLL4i/HZ:??u10/11 sZ@!iti1bd޾O>-655:t(99uذaӦMp8,Kիܹ,}r###//S;#q5H{ixxT4b1*cGGGX\PPpԩ DEEB-ZdeepB''ܽ{oeل,IR[[ӧϏ9"hr4w~∈BӵP)@ǁaKKˮ]/tttJyKKm۶ 8eذaw.)){̀w%""F #MCb>Oo[XX,X@CtLHZ@1o'%%?^|y̙t xڴi/_|)~Õp\SSS[n͟??((hʔ)G G믿Κ5>~8!s͞=Zbŭ[1`---w4iҤIvҢn޼9uZBȕ+Wf̘$<:q 6;˟ӧ#F?f̘1iҤ۷ ŋB&OLw۸q @ݽ{7,,l񱱱sTPŅ/$-KQQ!R~ g~~>ݫWƬ,BH}}{ "sSSScccccg80zhGihhϼbbb-Zo߾j7nܹs…{쩭駟,YrѰ;wһ(UXXD133ڵkfff``ޒ_{-[̛7O06oLwp­[666zyyIbccC@XTTԽ{wo鍒)SH%Δ=lܸqoRzM%;WA $8;;K.yք(-;b?5ȑ#~BHSSӱc()ݻwCCCZZݻw^:uKOinn^~iK)>''Gc^^aaasڵk׮?BYYٙ3g%{Z[[ۙa\XXHo <+++6]\\LXTTD*%O +mK$I ~iqqqHHYfUUUXΝ;Elll&L 9!m6___^䙚644ГLBaKK GM8qϞ=w?t~ذa+--Ϟ=+}9!Em޼yɟ~yMBȘ1cߟߗgPv;v<}ڿѣBr$\#O5jrɠ8eV`xޣ7+ebbwރ޽qȑdz#F$$$L4IuE&&&|>lѢE_}UΝy睑#G~gΜ?jĉ"ᆱ󋈈زe !d޼y;v?>zW.\(s9׮];{luuӹ\|m۶޽{555EFF655 ;<0]qLd\Д R>.)*JM a`BBp%&Nhy!i5iR`KH"6 0Xv,KL69 iC2͖m--2<$-`&N'KlV.L텤 e߾nl?#lVHCBnZb O:/HZ?) zeO[. 텤 \׮Czq87S30|S(ǎg:h$-`z=-knnt8>HZuz^c6:nŊ}QN\-,FcW\.իÆ c:pLmRXX8x+V0 b:=R\\t!iݺu f: mÜiHZ@!itД9sfffX,%}̙{GFFӧK. oZZ~1yرcY,Vff%^$6z#4ٳ'Nio޼Y\\\XXxA>߯_jWONN޴iӟGƎ=Z$;>x@rڪ~M"~-lzr@O!iMtҘ1c4zZ[[[gg#F9sC_|akk{ʕ ooɓ'߹s'77FܹsÇ>4_ M,?{޶ٸq*SHZ ǹs眝!ǎ'H{{{;;HPHAr劫kbbu\]]mmmgΜ)驐?ryccchBHKK+**LMM;w,lݥK!Cܾ}ޡz666...Vjjj"X(___[[ۍ7FGGwO?9X .?|gGidddLL cpp'$#N<9un;гgO;;e˖577<B'EÔݢX__߮]n޼Ya.]ڰa2*,lA>nu3gΚ5tMLگ_5kdddBƎ{ 4hժUʎԩݻ8rl٢𨨨hmfggw颢 .899ѭ.,,lȑYYYzZ~=EQӧBBBB|={!ҧwȐdKKK褢\)611RonΏ3ɓ'IIIׯ CݢSVUU۷3k$7:uo**)Tݺ!qqq$-IKUUPbzTzyi=lUYYnZUU%kkkE"çLRYYIQC$>|"8Nzz:]xiOOO!ݣ(J lӹs%-nݲdɒ>ѣGKSE/~g  VVVI0RHԣGӳҥ !l˜V )))2;J~ (J0›{HKv\ ylw+-0IA)((رcǨQV\))|JJJONNNtIJJ_FX_YY9o޼WVV*<ŋAAAtC>|Hp8taVVsW'}ZyEocXX_|!yV!~ӦMg:thmm7._C $,, >-ӧׯ_4iRNNΊ+_}geee#GxbFFƙ3g ,pLpTG\{H/_<33399? ko-ڿMM껧R:GKŴeN#(:s挣#=ϙ3zғ(VZdaa1}*\(zadd㓐p@oJjiiٲe/L6PUYY9c kkkGG>4GInݺJPWWr^z}W 2'OLL$ܹS\7wssYticcP(:tmE*dNL U709-蔐Bȉ'^Hff)9"aXqqqtS& @{.\ 2 0a8 tiHZ@!ie:h[naBb1K,&\.(VyygkF$-!88tXzȚͦ^zkedXfg[6884 L6mLGy zA0{ǏGӍsRbn/OԴ#$$-𽹹qq}}:uO.=aBߙ3tPI %>wV-ӁpCa=ee'0bxP$-g**BCm!*mۦ`:P/kQgߙ<9p:I hEQkמMڽ{ر /8$-A"xg߻w֘1^LˬYCڀ4E$~J=xpd:P%*e@#C4B(-Zt$1C t8~tɓwy<:^@ Ç}O B hP3eCog. tc:t iujl̞} 5х}2h:^@44f-ub:`:^@zMaa{-qd: xͭ|hcc6Ԁo|='N,v`:9mxY2ر>}.TqnB/aڴumtꎗڦ>}>kjr{{'unl# UW|b77k?֮=- !\.(:zAL Cϯ64tP(_ht8g*+OHUVQQ_!yCbX{ 2&0I uO[. —/g{ym؀8wsUU!رcPiooogg) JW\quuMLL\n̙3E9Gtt4!E;w%odd4w˜BHYY*haaa#GJMMիoH]]!d|>>gBHEERFF4PE$7:u>|̘1O\&=hnn~q]]H$~:?(KZIOO<} kw6]s'- ̋HILL(J$I_$8BmBHZArk֜\2hqL \`Ç-Z$)utt5zh[BH^^];i$eGYYY]v-))e;Vxx]]P( w A $&&zzzJoddɓC>yiiH$ѣgaa u҅d^KD>HbVXٵڵ֭cQPPcǎQF\RRhcc#_UUDӟrss钔ZQb8>>r޼yǏTxŋ<}-W!j!!!۵k9Nvv6cVV3-*TǏsnݺ%T{(#]+'OYB۹_,t, Xy>(///555((hΝG͘1cڵ^^^X,֘1cN:311QxxBB„ XZZB9JWM'}x[477 ##uBjkkUBCC-['.ٳ.]?\r%<<|̙:uCBkjjTW|?Xg!i3l部ߙ4-sZoާO@@Qԙ3gi!|>Μ9VVV ,wԴj*''' ӧWUUGQףG### 7|S:ҲG tBpСfffÉUl۶k׮ݺu۵kVA1c|(t B͛{I?lڵQ}ifcctRI2*'Ĝ`jj006cǕ[CCC2 hJHH!ĉL yWX*G7'EQ֝=xwM:?á(Oܽ{[oa:ss @!iXD"UqOgϬLdgg{8$-H$^xB}fӋpIKG!/?iG=tB(";|ݡC>eIIǏGߝpIkl̙hD~nLnHZ YC`iiǏG20?~b1Q9dz8.Ϟt};E"_ь{TTjsNX(, K)ECu:DF$ii\ưڻ.2Y?yR׉pZ bcckwwnrGN>tjslΣGhn*}*/r8,''Sww37.fXᅲ4TT4={TY,Qmmmlcclmm<<]]]]vRcBbư=qq|| P(zΝԂ'OJ!nnt6p`w??g(M.7h9b1uh'Xm:-0P/KKkRS ɹs';5Kׁw0i{,?dR,!&nnnn֮֒ gg+.W5tdHZ PMM;)-/ݖpДܹC'*-}hӳ VݹpU:ub`R~իIX>`f.GOU䊽z EEEiL^޳&Bqrtu7$3]I o_nt8`=zZsfgu\.ndoo{-* E{&nroCivyϧ|Iq7ʭԂԂ;wrmluu8cY[i42OV !:q,dܬ{3h;$-64ŮLJ$gf''礧Ŕ9-> /=ʕ32JW|#"bF]yy_;y|3Ey2--⬬Ԃ;wr22J)78c.}x-D")))+KJ1fݺuD;$-6$dH$_`t8gj<ȧ;wrjjLL1Fmv6`@[C=Z&^vM߹MzYѭ[W-RRR#3,+H1gm͍'$-Ӫ]\.;>~=2hP(.ON'v΋Wmt_W>d|X`&Q[۴yk>7B'Lwȼ Z{ٙY3ڄT233>~L6o߿۷߆z{3 P|PDwMΝ2gMMBBQv꿇vEefrp0?v,Bkϙ]b$Qї55|)SbǏW:t"#`]AzzajjajjARRVaaCr]cTOwq~0Eedrsߥ fv\'[wcpHM2ju-N h).]VWb꿍yg iWOMȑЏ̡g𱶚 KFj#PSZjn*HL[\xy09I^JM->}O>ݢPxAv65 t1q tUg4ڒ2jjdHeE$'焇0s Kh'=>))Vf^!}NJObű2Z2RtdJӝu-5)-嗖%LFFic`?!i3ogϘ=훭3z]$hE][RTOґJ_\{烤Eܺ5s澑#}o/,Awsy<ʹQd&2jZ©99嵵MD{{s{{ 77={`6!i׮5o^oھ=ŷt9^22&~d&2jZj:qdǘyzڛ`*@{!ih'߲%Đ1tzzrrrNSP'+S>KFj2[Gvek]K_RRSV{FI^KDܸ1|ogTJca0}\Rw]Kknn))cY JkvBҢΝ{1aa/͔ZOCm Ug`KFj/Cv&<gg+ *}E9soLjk?.gneeC.99呑' oHM0e(ΐֵT;L33߅@Ңbco^hk׎c: Pԥ#, e(7lԛptk e>jiQ:G;SSs#Gn~>xc7CC/f=mlHd&2jgZ-SZZSZʗNf+:I.ڽ;/EFcpBE䜼gC|:撑`P]YRN*o&Jۚc?hkկq g:B-vv]q$*n KFjBZRD"qff= #k 3ws6618$-e+|s/'͝;X YkuǪԜ uu-Nr>A3L熤Els믧̞=X VJff)m,i|JZj| =sIH12::N#UHZtEQp~;-$dÅRS oMM;sakۅ &,C XR1S= ݉ yE}Cn?ӧLt8zLze'Pd$# a]K-Zeggթoz:&$- (ONᇙot8G~q>`%X2YXR;e꿽$X>ÆI"xժӧܳgk#z- [2+*0X2Rw`J-úP2ow2 I cD";w.e߾٣G1jlM-KK+\8X)XגqtLi)/If22JDmt2zI 3BW>>thްaLsj<ȧ;wrjj6=uteXqXRw(cVPP)c?^BPp~ d:@[Ly- Ƿ:KF>,C;R8?'(ooonooftE '%e. tg:&~8OVVLÒP kTOԉ ;SI]wo@sD=_̡2:KF#,C㰮_RRSV{FڄESʆns23BHC`iiOӧ wٙYҥE}Ոװh5[4ܹBl7 !aqWdHM$ܹJE0ܙF:Ρp3R [wF}.xkּ@{Bo{&BX,VN܋Wx{ !VVs^rV7wufnG M ǘ=ᄏ,.1bxhuR8bXx޼W}U gGkėe>\gOz==399IyJrr;pؿ򥗜hӷ^.+k\._Vbʯj˺&799Grwgވ)-嗖<)ijBS=@GE-={d͢(h1"p8^r,+--sloouV jG\U <$xZk?xPr*VZvB {$BX,rBӧСރy3K0iBN<==_$j[\z5K9 |xkk^'ji{{2̉oΦF}ڠA/^/t /++{Ϡpt媭:8/xXD I-o_Mo0eee|>KhClw>ؼxbƯ+nFeMhGsssyyp԰(C@IDATPLM-{:ab1EX.]\\,(dG)++*U(ݻ[=RVЫŐ G+y(*+-,,,*,,(gUKF76}NennitHLLT:NCߟ WYY٣Gu6:zetqqݶ[..VV|=ois//=a?vMpX,{{s{{@w_={VWXXU\\ݿw&BЩ7..imggPXX,}tsЯjC66ӧӁ:ԛ@?KQ.iHZݼl&N(#fqIK~~9sZ-33^]!}\n|?KHH022JKKD2XRgΜY^^b~LuD BcX^^^23;vUʲy m+ |hJݮ,,,ƍӮHZm! ś]s7NIMЯ7OeakvA]n~jl?o[ٳ'NTlzr۷lٲjBHMMŋ׭[׻woE.͛Ņ#Q(66VO砝QUUU[IZ{r,4TznWEEEׯ_-hٮv|6rkQUOZ.]4fϞ=mll6nܨO>Ɔnk֬qtt5,[[[gg#F9sSscc#!+41I; oԨQ;wnF7'ivh˕P+GGǀ}ݼy^B_ojW)h.7%p{i[mwr9gg窪*BȱcǼ !B022.22R(}jW\quuMLL\n̙3%GBΟ?ollMiiiQxxEEiΝ$ۃ&ПvJ':t(**jÆ 9yS󍌌Ν[XXC)++ܒ3+VJZxkٶmӧ.\DDrQ_O͵6Vu6I蛧P(TMh}9;;_xz(VwSqT)9nUϓTUUKS\\Lo_|9 /55={>}G$GUVVx[VUUZH)STVVR$b 8NxxjҨ֒e%)HQH$ntEyzz*,Trb-Y䣏>(*&&fєTQ'O lQfdT p8 zi!B@,r 5T-'-P>|8 677?~N$]~]qʼܒ3+Vamo-އÇ'-mikZNZ MR<0oB+66VRѣG%-SOn~*jKҢY*VՓP_p8sKWo#EQ7nܘ:ua~'e־+ɓ?iׯ_766>{v.R|=v )3466҅<066VX(6iZNZ+11S,O8qϞ=Tx~T+-((355nH*\CrBbCUѮ@?G8e^nə]|%ms)))3ܿ;iQBȇ6夅26IiSD7Au;w~)))mn 4?eGK[< v1jԨ+WJ mll$AUUURR]NsrrͥKRRRkeG566y?R/^ `Ӷ\EEE˖-۲e˫nݺ JܥFQ?[os*|P#݀!O<Q(+цZ[[{ƍ˗/+{I-ޞdgg?fee9;;lv+o8hDW2!!!۵k.V-K?Ç2RBC$&)CeeIǏK 44?GX-UxUץmU:iK-F_VVV:88;w._lԩSg 4ޓN׭[6dȐ+;ɓ{566nllTxxxxӧO 8pfҤID*'҇q >[%OK(H=811q„ ...m]9'9T>>vVB4eY;V.LӴ,K}vvO8ec] WWW===ah^Gk"ycEsƆ766]eq*J"888pm|\zBt:677Ź35ʢ+*< qxxX,٬jzGݝ흙5ڇ;j4hLtYA???MLRBL& pVv?.Yuݚ}ooonrww|k7t j?O -RLMMe6Ae2,ɸ0 #?ΕOe/ݥɪs%Tvsst}}]///wvv:)YKF@H<*TC&њzPVWWWhUu,C,< ay:a Jh4Js0MG+X h_V pod=nDhu]4sDjJMC"@dԻs"~5 i4Jh4JTO$?vIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp__incl.png0000644001725400016040000001601213273140101020202 00000000000000PNG  IHDRZrbKGDIDATx{TWoHC@0<@E-zã Tңe]TnA]4"hm>-D9.u&DNdiD' =! A%HO*@=yXreFFFGGL&ɉ \~'J%v_m6oozZƍ~~~ϟ?W}vP5b{"7]|tgϞ9sf۶m$..鉏i|||nnndddeeeRRJ Z[[={ꪮێQQQ0D"ʊqpp x0l޽* K.#W^? p=3jٻwﶵ=s <ߚ;7߈DԬh4ڒ%Kneeett/Lʕ++++… |>>\z o`0RRR***N8QQQ`?')Lz֭uqn?p]͘oo'O^|yժUAAAB Q(7o^7֬Y-I*+Vdddi"5ԺLT[%eq6DGillӧOJpʓH$ӊ+󣣣'MD<$ɤRiOOOKK7|ljjӓX\\ PZZ޾};//o֭ХrD19r$...//֭[ǎKHH(**1yn@15133ʂwT*UzzBrʎ;`㦦&xKKKKҤpohh"M.%a(>uttDׯ_WWWܹS(o5Ĉ͛7߹s駟~JHH"޽)SN5778p!((|r / `e~'J#[[ۄӧOS7yyymmmϟ?ߺukYYFKNNvD" >|???Ҥ??|С6m/^$뉨%a(>>mܸnX,.FFF999--->>>塡D˗ݻWPP/,aOOOOOOmŘ$$$ٳgԨQWٺu+Ǜ1cFXXإK٩~޽{b;w ^nF􌏏700ؾ}ѣG_zeggf``nٲE&DFFh&=}L&KNNds΍זYf}8jIfSOiii*樨A~J*zA%HOCqpppHJa%HOC͛CR +AzBP JT癵\7滭:݌F q55<Ghbg)''fɒY}7}O*AzBP JT' =! A%HO*AzBP JT' =! A%HO*AzBP JT' =! A%HO*AzBP JT' =! A%HO*AOG΅ ߽X ɎYzz6c<~|B5\l--qHOD1קX 3R@z"gTɓY)+jI+stf =i%,lRR32OғVl .w{sR FVt i4caғ..u%d ']XYsS4s(  =ADAyx8YY m=> z 3 wԔ3 g3S,[abb8Ե {f`>74B#j 6m4o޼*nx0 G/_. ]ϫ̝;7""bpKBv@' =! A%HO*zjll\vFʁ8qbttt{{;D"INN9s'|_+ xF9::}cѢE46 6PogFBB^1͛7BaSSSaaaggkG5gΜw۷۷o?q℟R ^xQ]˗dbk׈x<^II %lӣfWvJ陚 w<<< ޠ{ĉyyy7 `ǎǏ/Z 3fP(XԢOϟ7nX,:uI"ryrr5JNNp4r劽=OKK;vltt4~}kz.\rLCQQ@P~xԨQJ233to߆ :::?XYY줤$LhSN;vI&ܹS-fi4/^wSSS1766NNN...O?xpbM6M2%..fںIzո|2ñ+˝Y,VbbwH@jmm}mhܷo_XXXcccMMkJJ z-Z?ww$m^݆999Bرc ;33ԽðXҖ/~EFF<{f鰏V,_ѣׯ_bdWݻw1 U{{qㆵ5}Ç1 022z5 OuuuF*,,r4MӨ9,^ٳ0]]]UUIOO'5f'Xf\.1ٔ)SAr֬Y ÜKKKZ|[K$߿_,T.R=,,L$atq^:ch,--p8<0WmxXt-+++1 +..#7:4zF\Oœv4]}}=0z0l׮]t: 0LgffGfM/ î_nllq%m]]]K,ۣFz~Ç/_R)40L}hnbdz:y򤛛ܶT+ȑ#}9J 9z(F'R(I4{_<~uu5$5b}~ Nݲe nϻX,v}}}݋/ѣG{%JU*ՙ3gD"QlllppH$"uĉQO<X[[ϟCgƍga5r vd߾} ,~zee[Q==7nB iO>' P@:8{j3ZDT޽[$؜?ƍK4.+׭[K*2Lޞd2R){TTTss3s!UVV& +**`իW<\ 2s|"Fy_t)G߾}UQQQWWWZZ2|LF aÆSz{{%~G:,^[75O#ayyyx݄w}};wSSSI:@);;{̙p;w-\jtvv]2..N"$ɒVZ%] ðɓ'L2Խ700JPdffr8ccy 0HfKKK[[M6\jkkaƏI1 ޲eӍ\\\ك?|_W5T*~4MӨN~~ KTJj!<]?!F:Ϯ>'BHOGF@Az=brrrc(HO*AzBP JT},7$ ~7>mڴiCUpD**#+W_~}۔~ַO A%HO*AzBP JT' =! A%HO*AzBP JT' =! A%HO*AzBP JT' =! A%HO*AzBP JT' =! A%ٵ<'WO[@o43YdMOzB =3ft:@` wK =i%,lNy{O177?HOZ Ռ I=#'IJ_2T% tlBߗ3zq aғ.|| l3Az҅>}gbb<% s`ٲr`CC]5W"HO}0ogcB qr;HO}@녅XZ; u9ÝOQRyfJxyM˻x˛7a)wӛ7o<~DˀǧϏ7N,N:$Hr<99ښb%''r8\rޞ秥ۏ;6::4.\rL&P(H_~mll a2@3aׯ_766t6%Km)돞"33W2̲F'OΎ7&IPWWG#HRhf2FhD(X?^|ya__-[F+++⪪*h;;/^@ˣGݫK*T3gΈD`HD S(Bͽ%111333--->>Gfa9r$((HwvH?cjP@:;;;@W'R{nHdccsyhOLL EuuƍQZZ`֭%JL&kooe2R=**Ɓl;P@0R/^'^.jժAa/]fwtt'yyyx@a|s玣cjj*Q(ﲳgΜ s%Hggڵk-,,,--$ 2,))lժUb50 +))22Н]GL5 a &XYY}RԨ[ zzU^zU[[>򛧡QMʤF|1@z=2z ' =! A%HO*yw]>?4 F ,}s@Q9={JT'LȝFIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_5.png0000644001725400016040000000327713273140101015756 00000000000000PNG  IHDR%L*bKGDtIDATh}HS]}1 Sg2JP4E6"tE B/`n*֐^_IEEB++Vde%Ѻ]]9y8s9;{; @' 0I_+)fld*q̙3 91uo~5's+W677OɔaI9W_+9Bj~!Yf-_x.\FWRaaJCL[/^|?~z(*)) R8^lYggl~`yfEE0;f($g3euZV!x<IիF#jtxQRRrPTO>5LAtuutd*fΜy%wڵΞ=;< ‰A¶={6}~?ϟd2Cff۷oѰ\.WW z].Sh{zz(,,4LE`=7IH)**2LL2??n/YM ŋ[ZZ3q*DsΑ$It8N&ډ:!J bTTTLX,F7jiicw_2X̮$-- M.]]]$ N:55ÇGܭ[.]LΑ\xqݺup4]YYyes#>c FAbaZ~sz/\f͚:&)JzH|%ʋD"@vvv__ʸ\SN%SEQm6[ صk׆ @28AƬ_55M}}=MDfRd2V NnWVV^^v,p#Jb24s΃655=~ 7md0 P* lUMMͱcn>p@2ak׮{n(b"H"$ի1 |ٳg7n=|0d4}V^^#ZZZ*qڳgϊ+2228g3ʊD-[:tv?~\LtٹpxNmښ PhǎsIOO߽{w$AR t촴[$*j]`3ݻ7} v̮q޼y}C)+,,H$'O'Eǀ444pV2d @&===++6r:8ؼy3@/ ìV+a:C9"8W_+#j ?kkkE/9"8W_WIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.md50000644001725400016040000000004013273140100024500 00000000000000154e9c6d1e31d086c2398148e29d4903XQilla-2.3.4/docs/dom3-api/DOMXPathException_8cpp__incl.md50000644001725400016040000000004013273140077020146 00000000000000a1374e656b5c2897a4523f2b497e9181XQilla-2.3.4/docs/dom3-api/classXQillaNSResolver__inherit__graph.map0000644001725400016040000000042713273140101022276 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMTypeInfo-members.html0000644001725400016040000001262213273140100021650 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMTypeInfo Member List

    This is the complete list of members for xercesc::DOMTypeInfo, including all inherited members.

    DERIVATION_EXTENSION enum valuexercesc::DOMTypeInfo
    DERIVATION_LIST enum valuexercesc::DOMTypeInfo
    DERIVATION_RESTRICTION enum valuexercesc::DOMTypeInfo
    DERIVATION_UNION enum valuexercesc::DOMTypeInfo
    DerivationMethods enum namexercesc::DOMTypeInfo
    DOMTypeInfo()xercesc::DOMTypeInfoinlineprotected
    getTypeName() const =0xercesc::DOMTypeInfopure virtual
    getTypeNamespace() const =0xercesc::DOMTypeInfopure virtual
    isDerivedFrom(const XMLCh *typeNamespaceArg, const XMLCh *typeNameArg, DerivationMethods derivationMethod) const =0xercesc::DOMTypeInfopure virtual
    ~DOMTypeInfo()xercesc::DOMTypeInfoinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__incl.png0000644001725400016040000000747213273140100016237 00000000000000PNG  IHDRp!]#abKGDIDATxyPSOb*<H;}⌂Զ(`2,CeqV[(L[,#UJEk[F chPZFA ?{]:W׹_sn.A`:||| 2Sg2󳲲L6n(HLbWB+--YX6>0up   ЉDa}}} b8!!!$$$99̙3l3ρd2N ɂ+#)rZmgggyyybbbAA=Bɓ')))NNNIII<ﯿohhd2w @cc#󺺺իWO^&,f}BYfq8%K9rBO>f.]bqOOŋq???DBvu5j硡~RټXOT FXXaMMM\\^0,k555pժUV\I0**=33S'|;::jؐ;vX,D"H,fzի"(;;{llLogc>!|~ww7BhppPT{@ >./^XV߽{!444t˗S+3̃޺ug}P(bcn޼YRRR^^^ZZX\\+qs/233ۅi߸qɓ?uT?VTTddd|7n8{c>M jd2/x{{;88L{{{˗wr=<.+ #A3R}"jٲe088j.))Yt)~T*mhh˃. ϟ'''&Ip\]]։GGǯ/;n :;;pf%קT*>|x!\qF֭[U*ݻ뻺\pxZh64 MIIo𡵵uPP.eరܫW*\9 ɓL:u744s,ӎ;pE(̙3 bqww7]fMTT JHd|+W444]v$''ج^:::zll,77ѣGھ};B(!!!''g۶m #000)) !t 2Uٳgxxx͚5xw|l1 ~LS[[;i8~dbBCC'fw=E>t>t>t>tb3{{{7'AKKS@!D{XY9263)nnn~1 _xaa>W{OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO駺[:<d>I(tc24mh(lv/ϑ3 __sg0%3|2Fx/SɈ18{e#֭{ݔ =$DE VV̀i1sI ZY1BZ-1wI?Xk!dc|-oScO!֮a\̝;wp83_Յ )FFF̝KNFܯ2{lz{{'D    Vkoow j_ںWVVJ^{8Ba>A111Shoo#ɱx***6lp8f8`%KԾ>Ǐoߞ=Mį]&˻ }}}q&z>sLKKl'@䔑A> ,pqqIMM$T>mݺgΜ97ncǎEDDܿm;\|9==˫I*ݻP3fb\omm=88xq ߲dy ٜGR/tj͛l6QC}RA_pk׮mmm~@ HOO4n<>T*>/ -\P.rMMί  |іJT؜8qBRiځFcyDDR$'9FՆ[YYPBFL擡qPTB FǢODii@ $BOA|VVV< #,9::YŒJ"  5 eS:1Ŏuuu,bzFٳ~~~G'+ B:AV`cc# OΜ={AC>)*8Bx<^GGܹs磏>2JVkڲ2RT*6~mjb!L6YLhݝzGMt#"77wݺuGLOsG!\SY4Mpp#GJkUUFFFvtt466ر6JKK RT*._|۶mZju9Bbj1112 /?~X$!R400@[͵ZW\7QPe˖iAr@"nϓ'O= (SPPP[[[}}y>7h\_/}ŧ NNNΉCCCiݻ9::nٲERn+ JKK===mmm.\XYYhHH5GlOOJ<؊+ &4/**1cƟIFLs^Ԉ6;wntt4DF{8uԫpvܩVˠSҲjժg^}޼yT4o0g|;4~X'N'N'N>IwppFZ\\\7%8|||?ΝvXIENDB`XQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp_source.html0000644001725400016040000004206713273140077021424 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentTraversal.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocumentTraversal.hpp 671894 2008-06-26 13:29:21Z borisk $
    20 */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTTRAVERSAL_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTTRAVERSAL_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    31 class DOMNode;
    32 class DOMNodeIterator;
    33 class DOMTreeWalker;
    34 
    35 
    47 class CDOM_EXPORT DOMDocumentTraversal {
    48 
    49 protected:
    50  // -----------------------------------------------------------------------
    51  // Hidden constructors
    52  // -----------------------------------------------------------------------
    57 
    58 private:
    59  // -----------------------------------------------------------------------
    60  // Unimplemented constructors and operators
    61  // -----------------------------------------------------------------------
    65  DOMDocumentTraversal & operator = (const DOMDocumentTraversal &);
    67 
    68 public:
    69  // -----------------------------------------------------------------------
    70  // All constructors are hidden, just the destructor is available
    71  // -----------------------------------------------------------------------
    78  virtual ~DOMDocumentTraversal() {};
    80 
    81  // -----------------------------------------------------------------------
    82  // Virtual DOMDocumentRange interface
    83  // -----------------------------------------------------------------------
    110  virtual DOMNodeIterator *createNodeIterator(DOMNode* root,
    111  DOMNodeFilter::ShowType whatToShow,
    112  DOMNodeFilter* filter,
    113  bool entityReferenceExpansion) = 0;
    144  virtual DOMTreeWalker *createTreeWalker(DOMNode* root,
    145  DOMNodeFilter::ShowType whatToShow,
    146  DOMNodeFilter* filter,
    147  bool entityReferenceExpansion) = 0;
    148 
    150 };
    151 
    152 
    153 XERCES_CPP_NAMESPACE_END
    154 
    155 #endif
    unsigned long ShowType
    Definition: DOMNodeFilter.hpp:193
    DOMDocumentTraversal()
    Definition: DOMDocumentTraversal.hpp:55
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMNodeIterators are used to step through a set of nodes, e.g.
    Definition: DOMNodeIterator.hpp:44
    DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document ...
    Definition: DOMTreeWalker.hpp:50
    DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a n...
    Definition: DOMDocumentTraversal.hpp:47
    Filters are objects that know how to &quot;filter out&quot; nodes.
    Definition: DOMNodeFilter.hpp:49
    virtual ~DOMDocumentTraversal()
    Destructor.
    Definition: DOMDocumentTraversal.hpp:78
    XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__dep__incl.png0000644001725400016040000001775513273140100020735 00000000000000PNG  IHDRy)bKGDIDATxi@d,kE!.ŵ " " R\K]!.EP^*""QAUj]Z.W)AAH2Ö03>:w\ … sssUVaƐ!C-[~ᇙxX5++kRSS윟t+WoYholllGGtb%lذƌοի.\xD"9sʕ+ϟe˖ʔ#\7ŊݸwS}ʕ+D"n+*ssgϞWɓ'ضMkkkEE@(Ϝ9S:q[[[Ξ=k.6-|.w鮉e lii c<?~;t֭G677&%%mܸ~Zr%˕9ǔڣG:t(???!!ܹs;v숋kjjŒkxxܹ%}A$ Mќ233srr&L0tPׯɎ7n8jԨ|[,_~=>>JYѣsL 55x= ؝y"##.\000ظqcxxtQ/_gX\.w2nHtRMMYf1#177NDƸzC *6l@[[[__A:Ayyѣ?֭+y>|vCCD"j#c :22U244`|>_*:|WKKcLmX.DU!.\>}:;gΜ'OCöӧOK_ &߻woӣh#F<{ SLw޾w޽{Θ1C$P>LLL***J{hLD2cTWWc~)&w}666zpݵK,^!00ݻ7op8-J)**jܸqҁF¥Q pvvjkk֋H$ FGG6kiir…o~ݻwO8!ϟ?ю;~WiiiBP?)))suuU`d-ܲe b&Nx1-]t䆾yl w%!\ hɖ}.FCq ڨQF{,zO(˧mL!]di#S…];eAϟtj\nYPR'Z{44 [Hig/ۏ06E} AeTOɐwAI N/~nd D0?%#m0t}}-~7DTU!#'כ4ȑ::CYbA_#&fń kמhjjSY('O^xAA\\޿qcWpctlg7rӦRR0G?mii߶["H?Ar8'&#c'C0%;|ٲؐg!m.^, ]K`d" >z..ݸ񗊪BնpXҥ.;"P17 χ%l y44s %@$:zֆ ]c>C=(:~LEc--'֖>߷>X /\(jBBa^]k}*yvr屖TٵɀP񝎎/l;Oj/22JHbhiǯ>C fe>юPaCܹr …v9Yٽ*<}A[ءDC}*HГ'.N/C}*vӧV}RrC}*rfd]ρBjHpϟC=*LI6o юAkY=*\~fI e򪰸gKL!ڑC=sȑFZtp@޶bOI*n! >ycю(CLQ)׎\maccG$ -- xaaat&y<{Y;唔?XqC=r˗/]''nD`ccc,ڵkÇOLLĻK.ijj~7UKC&r-sz^xx8^njb>vn.CWT!>ÿړ}k QEQeܾ}[RRbbb(بY__+++{r(""ɓ'EEEvZ8wwׯ`WIMMmڵ_ŋx[صQH$K, I-@[`ASSSjj*K455]]]?~ǎ+]ZiiCbbbgSRR{U ΰa4["ax.q\c! U6o^o>  #""pˬYoݺm|Iqq1 ȼyЏCCCCYmhhL[nZ[[,Y??Q=GnkLe9R!FHB>_WWWSSc|&NXX؋/\\\\RVVvܹiӦq8<;N:u*%tV8U.]ѣ젠˗,^8$$-&&Fwttٳ,7͛ׯ_?{licŽ~;1۶m+// ]bc/P܅0֝'){>.ı{t@}vMM---x^bx޽'Nаܹsgkk+Q5klܸQ(J򤷣-,,9|r%w\PSSSZзG]qqq#F044ܺukkk\co4kWGg7urɒ%gϪ)˻>LkTLkGP^@\*40Ъ?ЁСC{b-dSNCCKghG r`X\.'B.vvJ=k$ȀB.D;Pȥ¡C5tʞd@! lqy9T? ҽ f$eNNy( B(X;`̘1CB:mr\D*"DFQP[UU`hJ;͌3d.Eedk}邂'YZn\fZZ=&#uFE6gNƎ5  Ž{D;df޼CQQWNɤP[ƅɓGv"-6:FH<: BeEpLkͭ=.7C"A⿧ؘ*k&YB#5(('ٳF' vCFjjM:D;w]{P:9]vCF>h\FF u'\XPB4bccfa?^e-QE#}Сs{h-HB6xpD;GtZP{b!Cd cHB.^, ۣ^:eIg0,B ĉz:F6ȫE++ HIIwRK=<&b]3,^lO_*4bH  ڑ>;nxCl/iX. ͷ^>}{ϯ!!_E9á߯ϯڰa@-{;vwH$-N.w5.A%\H1cL&N8sю7nr : *Mx)7o~/2e$ѾPpb/vG4p8'==m?t&ѾP PKKӎ!ڑio_`l<42r)ѾP 7+vBCS+*^=ѾP ~dzvD))ΜZvCHP@Ҋ^|5|@7 lMLKLxeݺ#vp'B 25kf:ԣOv  PCze~+fxly V QСV&!* 7l}Ɓ*z*p8я>䯩yK\܍U%UXLo߾S Pɤ߿ҥ¬T] PR -WUULOb2*]CGatPEP-K'o BKKÍgGFJ~ꁁ*l檡Kԛ7Ԫ*R=9ZJ+X\}wvŋ,7$t^FʷAZZRR{XR f0`e KKY P_:P( 4iΔ)S8 fѷ#w2`Zꄄ&{{FPssɓ"""߿r)WW7_%,,,ċjhhqܹsF۷ڵknnnG^xݻw+++sINNƋpKd*A4lㅅ]__߳grJJ¯^jmm(//GcƌaX}Y{{\*=mPVV&mEQeܾ}[RRbbb(بY__ߵL, RSSeees疖Z[[ݻW3MJJ"wTj {FDžt:ٳK.͜9]tttl6{ڴiǛXFH ʬ&&&2 ]__dEwaÆh~6m;ZBEccc=<<]??}-@(FDDYf577ߺu+==kșuRL2BUjjj?~ {⅋˕+WΝ;7m4333g:eSXoSkŵo۶ XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp__dep__incl.md50000644001725400016040000000004013273140077021617 00000000000000a1ba302446d029d07b67320154e11303XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__incl.png0000644001725400016040000001073313273140100021512 00000000000000PNG  IHDRp::bKGDIDATxkTG'!`@DEPhGE"­D稀9TZQD.+^{lppPy/→T%&&UJPk.%#f/^X 444\|* Pwuvv_/B֦e33(]}vddp8w3ݑ#)oii)$,,J/2N_vmII ](b7,YB^|9< 9uꔺthٰz@GGGKKR{{W^ٳgKRt,//_pȿ{ZZZTTTFFƽ{bbbrssy*,,LII߿J@,;v~(//&:۷o|>رcG?յsN'Oddd+9tPSS@ ػwΜ9CW^^ ={vǎ7oLII9xׯO>>33Sk-{m #Tq߻wTcpp`ݺut111l6/a˗/oٲb2mbg0˖-(FFFYYY, I\~ڵ͛7[YYmذY5ܹs:믿[իr?nԩ f|p۶mikt0 ɶB̛7… 477C*hhh:u*i9J}'y ӡ%zڭ---|X,^f z)<<\"lݺ֭[111g%}GGG&_("ٳg| ŋ322?_XXM@R)W.hՅAѸ\Çb/<== #;k׮]bӧiii0 +WT///^xСCة/^Tw y ӡ%z6mB ,ᤧl@P__oeezjCCC|.[TT_۶md""""55522B|mj5qD''K.1cǮ[#>>wܲeKjjjttҥKCCCe!͹\g}.QDDѣGO<_޺uK)ZhhL&d ,E;;;#d<Ԅyu= ="㍔lG#to)zr1ibb3Y@MV$ܺupg>B85#XQ T$\@EBT$\>bihcƌ?~^s$\@EBT$\@EBWW6lj;Xh|^TTdddTYY99+A1eʔ& x C0YXXOx疖hd&$$swqqccc[[[o޼ٸqcbbeݻb.;;mΜ9h&ן:ujhr`]xɓ'OtrvV\ExFu{wwٳvuuPSS}T(nnn;wTW_@_ب666p̙ӧwvvz{{&Lbz{{իB011vaaapávvv\Nlbb2vX^,X8q"P٬FFF999ǏOII144TvM }Euq2+WSRR(**1cŊ&4j+ IZaaa &L>jܻwo``W?~-|E޽ ֛ZfffhNT ۷LLL/^|%uh?I(kffv :^XX84]CyiWWWͭc cTWWB#HRXQQA  xujjm0%61kk/_G}꼤RBoiiiii!t_rH$ҦJsssKLLtM51AV\u-cNfܳgOKKĉQ{lllPP˗/+**ϟi&rbb"é\padd:/TJ tT*%tx">zM@@-wW(VZd p8! G(VmZW3##pk0\.aΝFb Ů}ȑ?ݰ~g+++(ֶasss Nd۷[[[H$Ԯ H^^޴iӌfΜYTTDӳb |bL&sڴiEEEh-b0"srrƌb2*ZPP0]C~]pҤIiܺJ*ė'OܼyT*%4jHY\!#Z%m5# u}?rgY@EB055kCkCF XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - d -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_37.map0000644001725400016040000000040213273140101016017 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp__incl.png0000644001725400016040000002265013273140100016736 00000000000000PNG  IHDRbKGD IDATxw@SOA-"8UDZ`CA.@ $FI_ j&;sns: @ }!b-D1 @c@ <ƀ@x 6:TVV۷bNu~888888`O1/]tѩ͛7o(YСCXK4h FqfΜ vuuP(GGGJHH ٓE---|Fjj*Յ N:5|mmm7o+̙3'''dzfjl:>5B>37://v(d21;;tҜ΍>455Lfxxmxx8ݼy&))Ν;NNNVVVC{K۶m|<~왳5kfff=ڸqmHHHoo/'52Lmm:@{{;J 8UUUӧOg0޽tttxؘ{宮.F_eKKKP('O|E\\yXXGTTԓ'Obbb`RΝ􌈈hkk<[ӨݻwGGGs:cǎO>MJJ"/nB l6L$,Y:B9iSNݲe c;GMM&@FFfرs^\__qҥ7o9號z;;;GiiitAJJ &&oyR%%%)568D_dee-\hnn~…ٳgs3w3ftvv?{Sk?}4jt%Cs嚚]]]@uu5"pC*TXXx n:+777?k׮GGSN:u*[$**bI86ׯ_:shhhmm۷o-,,B;v@TUU ###3qqquuu˗/wpp`ffikk;Drm޼944t֭aɒ%ʃ`cߟ^\\K\طo_mQV/m ic=HL|2u'EEO^SC<1=z+%!,~V%%"zKӫW:yr=375؜%wI79dEcttt[YOFfLz {ĉc/ rC)A~H0~RrWIIG<* #ܹ7oihLqv%"' eooxqM׮:pH;"dVo+6=gcbz£3gO8рFlpahO,{PQ9g>v{YY(W꺘F PQ]v(-Z @#5ס.CM7:Hs6Ξ=~Æ 8@#hhh غtѢXk&\--Eg爆v%E1\\"߿o#?(BvچH RXˁ@h{'O4WƎtɫ%k91[͟/44RR60qro}W.)PccH$)Bc?i'w`4MOW郰ȑk7.=[k-bbo`f_~b:VAfŊO; /}I\)GyyK3↑ k9!2cڜ9bspw7mTYYիgb-Gc\-_l޾=AVlj:k9"colٲdڴ/: [m,- n+,ZH#$8w>|=_zM$Ξu^@%`zL>>; lT(`wc-o>1ƨjNJ_)))~"'GNJ" NNt:k9"qq:8ZQVILlnnߴ)h8_^j>+11|7d0lX)$䮁!BF!ftb%L17om߾ W >ssKMMKPccDF>TW'yz ݽo8xlNyZ(1iLPPVss?_cH$D\?gc$$<& 2='/LV|#81z{Yqq7.h1A'n^ A; MK{0zضi BF{ӧ>f>|= 1\9CSs_$h9s մ}UB ?хD-Dҥ|55%K2$'{]HsbΌ Hzsy9 Ӝ923}RR>#6!g׋U4~/^e]FZ3cܸQW*S/H$Y3UPFe%'?Z;cYY -8ݤ w QQM|OTV6laa0je˘LzH$̣P dyk9C[[ (dǏ%%%fܛ d^|ytT ˰?}?nggWUUUTTdddw޲2U߿h``PTTT\\`??J3&<}z`` ''': XnN455qEW.++n~AA Cccc#555۷o_| HKKTSS''PZZ*)) <́$իt+WfX4//OOO/00gScѢ#gdgaFikkro)SP(t9;;{֬YV.**Bd%%%健T'h4nkkcXRsĜ?C"^~xA~I|1ӎˣ[x`͵611q`ڬeIIW^qz%`"2.sEx#))iΜ9貺zvvm7pl1X,)W>> ر{|ACCbcc[V`䴴H2`0xwqqE9sFUU5##BܼySWWzÆ ˗/(..600@>cpEӵ999k׮niiAmmm2nܸ]vqG,]f־}VX 8bb8uqXkc̦ZZ` ]/pfK~]'-۷_^K"<IH}A!7뼋"_A|83e˦fdZ@UզM1GaE1k=zT؆htu22mJȗ?cXXL# /uu-ׇiE|3Ċϱ펎arr=8JѼkÆ&-//06c ᦫ-ÇKTUe#eqjjA{;?'pX,KJ=ttv~k_?k! ~~)MH:m|1}K$^k<:}޼"oo[2X ?ƍQƇbEwػʻwKg?ܴ)((|wl(~pnT0lݻ-ڵWX MNNa3fhAW`0lS5=z ECCcbl1c4! ӚVFDDB:)&Fpa4Bb Yoo{ XkLZZ:SRe#1^^fR_Zڲ%%o--E@dcϳq6U޹gIIzzXˁ L,_>z֏?^ݛvΛ̘ȿ1?l` Gtih…a3رXYPZ>NLaaNXoiiH@kkiwg^tHM-K3 c: 5$BΫ)1ƍ2$۷Ϋ)P bmlB::oE&c-?^Z7 Q@"#"[Zy5GYY1 4WG1VV3ޝZSC)'o3#8H^޻qG༚Bh18tw3--OʒҶ_rulnݴrwwÇmDB[[ 8 . bad#.\8ԩ,bz BGGHQyx@QQuEEӒ%nnѵ-WlT!|G{ {J+D"xqHE߮Q993,D߇D!7FeeE۷uA!^K6ۻřLVeeYcAFȍ3Ĭ⤔|>Vwr~w7W,AF?ӻBB? ?YY ܄ ȢEGnQ"0vݫqpHrr~Zg|]nhow/TtnIU+H$,y>ExA{ nP,ֿ]D\tJB/Ongws0#&F$[i.'GD{g% Q2Dx^e~E7 AGun"r=ߪ{Ν@  ^җ#GE=DDLD$lm/}z 6܌Qnnn+ C3-;d.TWW"YYY2Y} &eBYoN\G 39E򶪪iӰVÇ%%%K.NOX ?"w h 1 UUU]@ p/p򥘘Xjj*')!!Q\\<Ab„ C pߡA T1222llx״BYK {ٳG@kkm<8cH=ޏǏS(8:ndd*I]]]bbbIV@hhhx+:;;y~UVV֯ӧO@kΜ9===#2G6dɒٮ#_~HPEVQIDATdƜO1h4 99Y__ﯦۋZݻsAWWWRk׮d]]݄YIZZZRR{Y^p!@]] A+=vX\\\||`"ش//ׯ]y===EEcǎqFffɓUUU}||y[.fV__S4xq;;"##{lV~``AQQQqq +>f̘p #&&̳xlllBBO 8{9Ѧ! vV^Mӯ\hjjB3X4//OOO/00gp=A{1F644pSLP(rvvY ]TT ɓoKJJ8KQTqq'Nh46b+nggGR58 ^v-Drqqn6 1 @NN eeeIIID?AAA$w'<ё:L...g`)ArssMLLnܸ1X6kkkt{_)--1$$$?|L&gddN^HJJ3gеsV晓@ii)w]h d2l1>Tuuuhh/'ui4Z^^GGꚚhիWG`٩T*uk֬R<ߺuk>3L@m7W'88xɒ%hXΨ(N#̬,??ҤI XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathNSResolver Member List

    This is the complete list of members for xercesc::DOMXPathNSResolver, including all inherited members.

    addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0xercesc::DOMXPathNSResolverpure virtual
    DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlineprotected
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMXPathNSResolverpure virtual
    lookupPrefix(const XMLCh *URI) const =0xercesc::DOMXPathNSResolverpure virtual
    release()=0xercesc::DOMXPathNSResolverpure virtual
    ~DOMXPathNSResolver()xercesc::DOMXPathNSResolverinlinevirtual
    XQilla-2.3.4/docs/dom3-api/index.html0000644001725400016040000000261413273140100014167 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQilla DOM Level 3 API Documentation
    XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp.html0000644001725400016040000001074613273140101016106 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeList.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMNodeList.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNodeList
     The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp_source.html0000644001725400016040000004345013273140077020247 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNamedNodeMap.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNamedNodeMap.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNAMEDNODEMAP_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNAMEDNODEMAP_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMNode;
    31 
    45 class CDOM_EXPORT DOMNamedNodeMap {
    46 protected:
    47  // -----------------------------------------------------------------------
    48  // Hidden constructors
    49  // -----------------------------------------------------------------------
    54 
    55 private:
    56  // -----------------------------------------------------------------------
    57  // Unimplemented constructors and operators
    58  // -----------------------------------------------------------------------
    62  DOMNamedNodeMap & operator = (const DOMNamedNodeMap &);
    64 
    65 public:
    66  // -----------------------------------------------------------------------
    67  // All constructors are hidden, just the destructor is available
    68  // -----------------------------------------------------------------------
    75  virtual ~DOMNamedNodeMap() {};
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMNamedNodeMap interface
    80  // -----------------------------------------------------------------------
    83  // -----------------------------------------------------------------------
    84  // Setter methods
    85  // -----------------------------------------------------------------------
    112  virtual DOMNode *setNamedItem(DOMNode *arg) = 0;
    113 
    114  // -----------------------------------------------------------------------
    115  // Getter methods
    116  // -----------------------------------------------------------------------
    129  virtual DOMNode *item(XMLSize_t index) const = 0;
    130 
    140  virtual DOMNode *getNamedItem(const XMLCh *name) const = 0;
    141 
    149  virtual XMLSize_t getLength() const = 0;
    150 
    151  // -----------------------------------------------------------------------
    152  // Node methods
    153  // -----------------------------------------------------------------------
    169  virtual DOMNode *removeNamedItem(const XMLCh *name) = 0;
    171 
    185  virtual DOMNode *getNamedItemNS(const XMLCh *namespaceURI,
    186  const XMLCh *localName) const = 0;
    187 
    211  virtual DOMNode *setNamedItemNS(DOMNode *arg) = 0;
    212 
    235  virtual DOMNode *removeNamedItemNS(const XMLCh *namespaceURI,
    236  const XMLCh *localName) = 0;
    238 
    239 };
    240 
    241 #define GetDOMNamedNodeMapMemoryManager GET_INDIRECT_MM(fOwnerNode)
    242 
    243 XERCES_CPP_NAMESPACE_END
    244 
    245 #endif
    virtual ~DOMNamedNodeMap()
    Destructor.
    Definition: DOMNamedNodeMap.hpp:75
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name...
    Definition: DOMNamedNodeMap.hpp:45
    DOMNamedNodeMap()
    Definition: DOMNamedNodeMap.hpp:52
    XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp.html0000644001725400016040000001200213273140101016452 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMStringList.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMStringList.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMStringList
     The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp_source.html0000644001725400016040000005373313273140077020751 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementation.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMImplementation.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP
    24 
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 
    33 
    34 class DOMDocument;
    35 class DOMDocumentType;
    36 
    43 class CDOM_EXPORT DOMImplementation : public DOMImplementationLS
    44 {
    45 protected:
    46  // -----------------------------------------------------------------------
    47  // Hidden constructors
    48  // -----------------------------------------------------------------------
    51  DOMImplementation() {}; // no plain constructor
    53 
    54 private:
    55  // -----------------------------------------------------------------------
    56  // Unimplemented constructors and operators
    57  // -----------------------------------------------------------------------
    60  DOMImplementation(const DOMImplementation &); // no copy constructor.
    61  DOMImplementation & operator = (const DOMImplementation &); // No Assignment
    63 
    64 
    65 public:
    66  // -----------------------------------------------------------------------
    67  // All constructors are hidden, just the destructor is available
    68  // -----------------------------------------------------------------------
    75  virtual ~DOMImplementation() {};
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMImplementation interface
    80  // -----------------------------------------------------------------------
    99  virtual bool hasFeature(const XMLCh *feature, const XMLCh *version) const = 0;
    101 
    102  // -----------------------------------------------------------------------
    103  // Functions introduced in DOM Level 2
    104  // -----------------------------------------------------------------------
    132  virtual DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
    133  const XMLCh *publicId,
    134  const XMLCh *systemId) = 0;
    135 
    174  virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
    175  const XMLCh *qualifiedName,
    176  DOMDocumentType *doctype,
    177  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
    178 
    180  // -----------------------------------------------------------------------
    181  // Functions introduced in DOM Level 3
    182  // -----------------------------------------------------------------------
    200  virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
    201 
    203 
    204  // -----------------------------------------------------------------------
    205  // Non-standard extension
    206  // -----------------------------------------------------------------------
    214  virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
    215 
    223  static DOMImplementation *getImplementation();
    224 
    236  static bool loadDOMExceptionMsg
    237  (
    238  const short msgToLoad
    239  , XMLCh* const toFill
    240  , const XMLSize_t maxChars
    241  );
    242 
    244 
    245 };
    246 
    247 XERCES_CPP_NAMESPACE_END
    248 
    249 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    Definition: DOMImplementationLS.hpp:49
    The DOMImplementation interface provides a number of methods for performing operations that are indep...
    Definition: DOMImplementation.hpp:43
    Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object...
    Definition: DOMDocumentType.hpp:45
    virtual ~DOMImplementation()
    Destructor.
    Definition: DOMImplementation.hpp:75
    DOMImplementation()
    Definition: DOMImplementation.hpp:51
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__dep__incl.md50000644001725400016040000000004013273140077021246 00000000000000a08c6f603e8295ee9bad4e3d54aefc3dXQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp.html0000644001725400016040000001165513273140101017627 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentFragment.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMDocumentFragment.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocumentFragment
     DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_24.map0000644001725400016040000000043213273140101016016 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__incl.map0000644001725400016040000000051713273140101020250 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp_source.html0000644001725400016040000004761513273140077021212 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationLS.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMImplementationLS.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLS_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLS_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMLSParser;
    31 class DOMLSSerializer;
    32 class DOMLSInput;
    33 class DOMLSOutput;
    34 class MemoryManager;
    35 class XMLGrammarPool;
    36 
    49 class CDOM_EXPORT DOMImplementationLS
    50 {
    51 protected:
    52  // -----------------------------------------------------------------------
    53  // Hidden constructors
    54  // -----------------------------------------------------------------------
    59 
    60 private:
    61  // -----------------------------------------------------------------------
    62  // Unimplemented constructors and operators
    63  // -----------------------------------------------------------------------
    67  DOMImplementationLS & operator = (const DOMImplementationLS &);
    69 
    70 public:
    71  // -----------------------------------------------------------------------
    72  // All constructors are hidden, just the destructor is available
    73  // -----------------------------------------------------------------------
    80  virtual ~DOMImplementationLS() {};
    82 
    83  // -----------------------------------------------------------------------
    84  // Public constants
    85  // -----------------------------------------------------------------------
    95  {
    96  MODE_SYNCHRONOUS = 1,
    97  MODE_ASYNCHRONOUS = 2
    98  };
    100 
    101  // -----------------------------------------------------------------------
    102  // Virtual DOMImplementationLS interface
    103  // -----------------------------------------------------------------------
    106  // -----------------------------------------------------------------------
    107  // Factory create methods
    108  // -----------------------------------------------------------------------
    141  virtual DOMLSParser* createLSParser(const DOMImplementationLSMode mode,
    142  const XMLCh* const schemaType,
    143  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager,
    144  XMLGrammarPool* const gramPool = 0) = 0;
    145 
    146 
    156  virtual DOMLSSerializer* createLSSerializer(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
    157 
    166  virtual DOMLSInput* createLSInput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
    167 
    176  virtual DOMLSOutput* createLSOutput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
    178 };
    179 
    180 
    181 XERCES_CPP_NAMESPACE_END
    182 
    183 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    DOMImplementationLS()
    Definition: DOMImplementationLS.hpp:57
    This interface represents an output destination for data.
    Definition: DOMLSOutput.hpp:39
    Definition: DOMImplementationLS.hpp:49
    DOMImplementationLSMode
    Create a synchronous or an asynchronous DOMLSParser.
    Definition: DOMImplementationLS.hpp:94
    Definition: DOMLSSerializer.hpp:275
    This interface represents a single input source for an XML entity.
    Definition: DOMLSInput.hpp:59
    DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tre...
    Definition: DOMLSParser.hpp:47
    virtual ~DOMImplementationLS()
    Destructor.
    Definition: DOMImplementationLS.hpp:80
    XQilla-2.3.4/docs/dom3-api/dom-context-item_8cpp-example.html0000644001725400016040000001507213273140077020657 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    dom-context-item.cpp

    This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

    #include <iostream>
    #include <xercesc/framework/StdOutFormatTarget.hpp>
    XERCES_CPP_NAMESPACE_USE;
    int main(int argc, char *argv[]) {
    // Initialise Xerces-C and XQilla using XQillaPlatformUtils
    // Get the XQilla DOMImplementation object
    DOMImplementation *xqillaImplementation =
    DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));
    try {
    // Create a DOMLSParser object
    AutoRelease<DOMLSParser> parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0));
    parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true);
    parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true);
    parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true);
    // Parse a DOMDocument
    DOMDocument *document = parser->parseURI("foo.xml");
    if(document == 0) {
    std::cerr << "Document not found." << std::endl;
    return 1;
    }
    // Parse an XPath 2 expression
    AutoRelease<DOMXPathExpression> expression(document->createExpression(X("foo/bar/@baz"), 0));
    // Execute the query
    AutoRelease<DOMXPathResult> result(expression->evaluate(document, DOMXPathResult::ITERATOR_RESULT_TYPE, 0));
    // Create a DOMLSSerializer to output the nodes
    AutoRelease<DOMLSSerializer> serializer(xqillaImplementation->createLSSerializer());
    AutoRelease<DOMLSOutput> output(xqillaImplementation->createLSOutput());
    StdOutFormatTarget target;
    output->setByteStream(&target);
    // Iterate over the results, printing them
    while(result->iterateNext()) {
    serializer->write(result->getNodeValue(), output);
    std::cout << std::endl;
    }
    }
    catch(XQillaException &e) {
    std::cerr << "XQillaException: " << UTF8(e.getString()) << std::endl;
    return 1;
    }
    // Terminate Xerces-C and XQilla using XQillaPlatformUtils
    return 0;
    }
    XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp__incl.md50000644001725400016040000000004013273140077020502 000000000000007cb789de1180c04890029134fefef7ddXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSInput.html0000644001725400016040000010442013273140100020017 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSInput Class Referenceabstract

    This interface represents a single input source for an XML entity. More...

    #include <DOMLSInput.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMLSInput ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual const XMLCh * getStringData () const =0
     String data to parse. More...
     
    virtual InputSource * getByteStream () const =0
     Returns the byte stream for this input source. More...
     
    virtual const XMLCh * getEncoding () const =0
     An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method. More...
     
    virtual const XMLCh * getPublicId () const =0
     Get the public identifier for this input source. More...
     
    virtual const XMLCh * getSystemId () const =0
     Get the system identifier for this input source. More...
     
    virtual const XMLCh * getBaseURI () const =0
     Get the base URI to be used for resolving relative URIs to absolute URIs. More...
     
    virtual void setStringData (const XMLCh *data)=0
     Sets the UTF-16 string for this input source. More...
     
    virtual void setByteStream (InputSource *stream)=0
     Sets the byte stream for this input source. More...
     
    virtual void setEncoding (const XMLCh *const encodingStr)=0
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setPublicId (const XMLCh *const publicId)=0
     Set the public identifier for this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)=0
     Set the system identifier for this input source. More...
     
    virtual void setBaseURI (const XMLCh *const baseURI)=0
     Set the base URI to be used for resolving relative URIs to absolute URIs. More...
     
    Non-standard Extension
    virtual void setIssueFatalErrorIfNotFound (bool flag)=0
     Indicates if the parser should issue fatal error if this input source is not found. More...
     
    virtual bool getIssueFatalErrorIfNotFound () const =0
     Get the flag that indicates if the parser should issue fatal error if this input source is not found. More...
     
    virtual void release ()=0
     Called to indicate that this DOMLSInput is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSInput ()
     

    Detailed Description

    This interface represents a single input source for an XML entity.

    This interface allows an application to encapsulate information about an input source in a single object, which may include a public identifier, a system identifier, a byte stream (possibly with a specified encoding), and/or a character stream.

    There are two places that the application will deliver this input source to the parser: as the argument to the parse method, or as the return value of the DOMLSResourceResolver.resolveResource method.

    The DOMLSParser will use the DOMLSInput object to determine how to read XML input. If there is a character stream available, the parser will read that stream directly; if not, the parser will use a byte stream, if available; if neither a character stream nor a byte stream is available, the parser will attempt to open a URI connection to the resource identified by the system identifier.

    A DOMLSInput object belongs to the application: the parser shall never modify it in any way (it may modify a copy if necessary).

    See Also
    DOMLSParser::parse
    DOMLSResourceResolver::resolveResource
    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMLSInput::DOMLSInput ( )
    inlineprotected
    virtual xercesc::DOMLSInput::~DOMLSInput ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMLSInput::getBaseURI ( ) const
    pure virtual

    Get the base URI to be used for resolving relative URIs to absolute URIs.

    If the baseURI is itself a relative URI, the behavior is implementation dependent.

    Returns
    The base URI.
    See Also
    setBaseURI
    Since
    DOM Level 3
    virtual InputSource* xercesc::DOMLSInput::getByteStream ( ) const
    pure virtual

    Returns the byte stream for this input source.

    See Also
    InputSource
    virtual const XMLCh* xercesc::DOMLSInput::getEncoding ( ) const
    pure virtual

    An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.

    This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

    Returns
    The forced encoding, or null if none was supplied.
    See Also
    setEncoding
    Since
    DOM Level 3
    virtual bool xercesc::DOMLSInput::getIssueFatalErrorIfNotFound ( ) const
    pure virtual

    Get the flag that indicates if the parser should issue fatal error if this input source is not found.

    Returns
    True if the parser should issue fatal error if this input source is not found. False if the parser issue warning message instead.
    See Also
    setIssueFatalErrorIfNotFound
    virtual const XMLCh* xercesc::DOMLSInput::getPublicId ( ) const
    pure virtual

    Get the public identifier for this input source.

    Returns
    The public identifier, or null if none was supplied.
    See Also
    setPublicId
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMLSInput::getStringData ( ) const
    pure virtual

    String data to parse.

    If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using stringData. If an XML declaration is present, the value of the encoding attribute will be ignored.

    virtual const XMLCh* xercesc::DOMLSInput::getSystemId ( ) const
    pure virtual

    Get the system identifier for this input source.

    If the system ID is a URL, it will be fully resolved.

    Returns
    The system identifier.
    See Also
    setSystemId
    Since
    DOM Level 3
    virtual void xercesc::DOMLSInput::release ( )
    pure virtual

    Called to indicate that this DOMLSInput is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMLSInput::setBaseURI ( const XMLCh *const  baseURI)
    pure virtual

    Set the base URI to be used for resolving relative URIs to absolute URIs.

    If the baseURI is itself a relative URI, the behavior is implementation dependent.

    Parameters
    baseURIThe base URI.
    See Also
    getBaseURI
    Since
    DOM Level 3
    virtual void xercesc::DOMLSInput::setByteStream ( InputSource *  stream)
    pure virtual

    Sets the byte stream for this input source.

    See Also
    BinInputStream
    virtual void xercesc::DOMLSInput::setEncoding ( const XMLCh *const  encodingStr)
    pure virtual

    Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

    This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

    Parameters
    encodingStrThe name of the encoding to force.
    Since
    DOM Level 3
    virtual void xercesc::DOMLSInput::setIssueFatalErrorIfNotFound ( bool  flag)
    pure virtual

    Indicates if the parser should issue fatal error if this input source is not found.

    If set to false, the parser issue warning message instead.

    Parameters
    flagTrue if the parser should issue fatal error if this input source is not found. If set to false, the parser issue warning message instead. (Default: true)
    See Also
    getIssueFatalErrorIfNotFound
    virtual void xercesc::DOMLSInput::setPublicId ( const XMLCh *const  publicId)
    pure virtual

    Set the public identifier for this input source.

    The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.

    Parameters
    publicIdThe public identifier as a string.
    See Also
    getPublicId
    Since
    DOM Level 3
    virtual void xercesc::DOMLSInput::setStringData ( const XMLCh *  data)
    pure virtual

    Sets the UTF-16 string for this input source.

    virtual void xercesc::DOMLSInput::setSystemId ( const XMLCh *const  systemId)
    pure virtual

    Set the system identifier for this input source.

    The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

    If the system ID is a URL, it must be fully resolved.

    Parameters
    systemIdThe system identifier as a string.
    See Also
    getSystemId
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__dep__incl.map0000644001725400016040000000024513273140100020741 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp_source.html0000644001725400016040000004143613273140077020622 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSParserFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSParserFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSERFILTER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSPARSERFILTER_HPP
    24 
    39 
    40 XERCES_CPP_NAMESPACE_BEGIN
    41 
    42 class DOMElement;
    43 class DOMNode;
    44 
    45 class CDOM_EXPORT DOMLSParserFilter {
    46 protected:
    47  // -----------------------------------------------------------------------
    48  // Hidden constructors
    49  // -----------------------------------------------------------------------
    54 
    55 private:
    56  // -----------------------------------------------------------------------
    57  // Unimplemented constructors and operators
    58  // -----------------------------------------------------------------------
    62  DOMLSParserFilter & operator = (const DOMLSParserFilter &);
    64 
    65 
    66 public:
    67  // -----------------------------------------------------------------------
    68  // All constructors are hidden, just the destructor is available
    69  // -----------------------------------------------------------------------
    76  virtual ~DOMLSParserFilter() {};
    78 
    79  // -----------------------------------------------------------------------
    80  // Class Types
    81  // -----------------------------------------------------------------------
    101  enum FilterAction {FILTER_ACCEPT = 1,
    102  FILTER_REJECT = 2,
    103  FILTER_SKIP = 3,
    104  FILTER_INTERRUPT = 4};
    105 
    106  // -----------------------------------------------------------------------
    107  // Virtual DOMLSParserFilter interface
    108  // -----------------------------------------------------------------------
    128  virtual FilterAction acceptNode(DOMNode* node) = 0;
    129 
    145  virtual FilterAction startElement(DOMElement* node) = 0;
    146 
    157  virtual DOMNodeFilter::ShowType getWhatToShow() const = 0;
    158 
    160 };
    161 
    162 XERCES_CPP_NAMESPACE_END
    163 
    164 #endif
    DOMLSParserFilter()
    Definition: DOMLSParserFilter.hpp:52
    Definition: DOMLSParserFilter.hpp:45
    unsigned long ShowType
    Definition: DOMNodeFilter.hpp:193
    FilterAction
    Constants returned by acceptNode.
    Definition: DOMLSParserFilter.hpp:101
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    virtual ~DOMLSParserFilter()
    Destructor.
    Definition: DOMLSParserFilter.hpp:76
    XQilla-2.3.4/docs/dom3-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7_dep.map0000644001725400016040000000236013273140101021335 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_23.png0000644001725400016040000000365713273140101016040 00000000000000PNG  IHDR%0bKGDdIDATx[oHSk״fZma6 +LI jdEdQ 7>a@*,#f̍UA!UĦC\YnkCݿ[{9O}y<}s( A`,ZH,0H$DGRX  *zEF^?444AG>b1^a||<9+&+cw5?ߖ/^8Ώ?j4R <φ FFFT*ׯ޽+ CT| A~s'SNśt:׽X,`ٰa8޼yBCLVYY 1pn޼ mkkkϜ9vvvD"'ȑ#+Vp:PfE3+GDExt_ݹ߿r}>`nnN.3L!`zY^^djii[reCCO<)..hw[R(GVU(T*SHKKZbqWWg7 xR566Qnt:͖d@  j.. |^ѕٴib[A#~444߿L&sxx U*ծ]fsiiӧ!=E"ϕJ%7L&ųzK,~uVRRU1n7ܸ j'dff( ;== Ʉ>|`Xmjjׯ_l6՚hпnDDR]]=11a6J˗ hSOOONNT=f= ...V*a]oݺu08ٌhaah߿Ǯ\.WrrK ' 3O2`hhNcǏonnFQT BO좭mٲeSSS2RԷoBFvvvb7}6T=fY(JR|Ih4dddfggbm@}}}ZZZeeӧO'6[~=fX}}}&۶mlM&SAAA8qPj֭V.~l6h1FP9f 2 p8W455aB: ˗/<99399 %cccϟg^w\ڱcg }v8H$T*Umm-&x<}}}uuu1.ZH vtt@ ɤRv'&&rss9ݻw+1+SuFHB555gϞu\,O_P1G9|;>r XcVz<īW\)))Ç. Eљ._<++d2YNNNFFƞ={h+Eu:ի/^?~ 5VH$,E^oSSSQQQjj*?w1[& pڵ9z ح].׾}Rj --xGR|^ѕXtiUC0qݻwȯÿ%(NKw~'HG@2 @t :H$DGw8?oRBGDBRRR߼$A4dA2 @tOT>IENDB`XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__dep__incl.png0000644001725400016040000000635413273140100017741 00000000000000PNG  IHDRp~`nmbKGD IDATxTSew!6 ' 4:fr8NF"s8T#5F9is.ӗHCA1<alw>{q @vQ ,b`adT0fp8d0J$gXH c;w\vԑà<oҥH?4a X(rdyƌϏg2d~d*388xڵt:eه"lu|6 w {|~ppvp\2K0#,33H,oݺUnܸ-  ;;K$$_4\.']]]NNN"hٲe;wd CR^Y}ɜ6mb8&& \.ދoz'ࢃᴴ@wwwGG9zH|||T;wNCV BPwOOOӾO<y믿nkkD2ѣ(~EPqƜ:t7(,,TTYYY_}U}}}^^u…} ,Fw@qqكPSSKnĉwNKK9r03WA0dT UUU~~~SNEа31Eן={vӦM3g!Go`0VX. F3eee ,[ ֢^SLy`mbŦۍp8s̉%5= i֬Y0eʔiӦ566j8{lJΊCWW׿۴oCCC\\\__Z6 hCfP`à2 Z[[\.MJJRT(6tU⩧!m<==lGxƒ@T =x 9ѣ .$#~~~===W\C$AAA:%^wrrruuhliiAt>͊s16liiiW^qƁccc~7*͛ }s7n8qb:N:j_sfffsssCCCnnˇ Qb͛7/;;E Fvvv^^H$jii9sfHHstt4]=yddd53lP<==wE߄̸8GGe˖H~(6l| Xd@ 0/**={;n-[|4 5߇WOssuG zH10r fLfbbhc X(F1pvUŌ %$`c0Y;f:"aymη ZݣVTT(cŠ鎎e7a}}Ry@@iwM8&̙:]*tgǺL8&F2N߬hW43g ^oHvuZ7Ů] ï^V> }*Xvnwe-06pGXI%rsqJb?: XlDR!+ 3ŒF\T*;&?+K0% =l6s`X_;:1jMvxmD&;0Q ,b`a X(F10Q ,b`a X(F10Q ,b`a X(F10Q ,b`a X(F1, L0cU]T*- #bͯEb TUUݻs2~&aCer~-a X(M#Lxׯ_?mZ699y...iiim˨믿Nק R *)//륗^D4/,/^'>|xu\צVϟ?o}lEl6=~޽{Ѣ;vL>~ ={5kjkkoݺE!;44T,*))1}۰a+L!"..ԩS}v:N6pvvNNNGUw1rV,,,|7ӧO޽ 8y>b>裾>AKX1Z@fB0d2&i4j5 RQQ1c ԷҥKF`]'jotuu@{{B+V\~>3qO &x 4w\dd͛7n߾Ν;!!!B8~Elv||<͊`…,t͹~ 2O?]n0Ac$Ã߾}۴Aww-[Ν`0^x/..R)۷oPL>0rss۴iN3qO'&Yf4W3<¦N*Fua,K$&h#<(F10Qx.100â[JeuuşKܼy9(},ǎ0Q ,b`a2y C4IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMAttr.html0000644001725400016040000017355413273140101017412 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMAttr Class Referenceabstract

    The DOMAttr class refers to an attribute of an XML element. More...

    #include <DOMAttr.hpp>

    Inheritance diagram for xercesc::DOMAttr:

    Public Member Functions

    Destructor
    virtual ~DOMAttr ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getName () const =0
     Returns the name of this attribute. More...
     
    virtual bool getSpecified () const =0
     Returns true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function. More...
     
    virtual const XMLCh * getValue () const =0
     Returns the value of the attribute. More...
     
    virtual void setValue (const XMLCh *value)=0
     Sets the value of the attribute. More...
     
    Functions introduced in DOM Level 2.
    virtual DOMElementgetOwnerElement () const =0
     The DOMElement node this attribute is attached to or null if this attribute is not in use. More...
     
    Functions introduced in DOM Level 3.
    virtual bool isId () const =0
     Returns whether this attribute is known to be of type ID or not. More...
     
    virtual const DOMTypeInfogetSchemaTypeInfo () const =0
     Returns the type information associated with this attribute. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMAttr ()
     
     DOMAttr (const DOMAttr &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMAttr class refers to an attribute of an XML element.

    Typically the allowable values for the attribute are defined in a documenttype definition.

    DOMAttr objects inherit the DOMNode interface, but since attributes are not actually child nodes of the elements they are associated with, the DOM does not consider them part of the document tree. Thus, the DOMNode attributes parentNode, previousSibling, and nextSibling have a null value for DOMAttr objects. The DOM takes the view that attributes are properties of elements rather than having a separate identity from the elements they are associated with; this should make it more efficient to implement such features as default attributes associated with all elements of a given type. Furthermore, attribute nodes may not be immediate children of a DOMDocumentFragment. However, they can be associated with DOMElement nodes contained within a DOMDocumentFragment. In short, users of the DOM need to be aware that DOMAttr nodes have some things in common with other objects inheriting the DOMNode interface, but they also are quite distinct.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMAttr::DOMAttr ( )
    inlineprotected
    xercesc::DOMAttr::DOMAttr ( const DOMAttr other)
    inlineprotected
    virtual xercesc::DOMAttr::~DOMAttr ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMAttr::getName ( ) const
    pure virtual

    Returns the name of this attribute.

    Since
    DOM Level 1
    virtual DOMElement* xercesc::DOMAttr::getOwnerElement ( ) const
    pure virtual

    The DOMElement node this attribute is attached to or null if this attribute is not in use.

    Since
    DOM Level 2
    virtual const DOMTypeInfo* xercesc::DOMAttr::getSchemaTypeInfo ( ) const
    pure virtual

    Returns the type information associated with this attribute.

    Returns
    the DOMTypeInfo associated with this attribute
    Since
    DOM level 3
    virtual bool xercesc::DOMAttr::getSpecified ( ) const
    pure virtual

    Returns true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function.

    Returns false if the attribute value came from the default value declared in the document's DTD.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMAttr::getValue ( ) const
    pure virtual

    Returns the value of the attribute.

    The value of the attribute is returned as a string. Character and general entity references are replaced with their values.

    Since
    DOM Level 1
    virtual bool xercesc::DOMAttr::isId ( ) const
    pure virtual

    Returns whether this attribute is known to be of type ID or not.

    When it is and its value is unique, the ownerElement of this attribute can be retrieved using getElementById on DOMDocument.

    Returns
    bool stating if this DOMAttr is an ID
    Since
    DOM level 3
    virtual void xercesc::DOMAttr::setValue ( const XMLCh *  value)
    pure virtual

    Sets the value of the attribute.

    A text node with the unparsed contents of the string will be created.

    Parameters
    valueThe value of the DOM attribute to be set
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp__incl.map0000644001725400016040000000051113273140100021044 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp__incl.md50000644001725400016040000000004013273140077020153 000000000000001a110ee9bcf4671d52522456776953a2XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp_source.html0000644001725400016040000004331513273140077016671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMAttr.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMAttr.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMATTR_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMATTR_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class DOMElement;
    31 class DOMTypeInfo;
    32 
    57 class CDOM_EXPORT DOMAttr: public DOMNode {
    58 protected:
    59  // -----------------------------------------------------------------------
    60  // Hidden constructors
    61  // -----------------------------------------------------------------------
    64  DOMAttr() {}
    65  DOMAttr(const DOMAttr &other) : DOMNode(other) {}
    67 
    68 private:
    69  // -----------------------------------------------------------------------
    70  // Unimplemented constructors and operators
    71  // -----------------------------------------------------------------------
    74  DOMAttr & operator = (const DOMAttr &);
    76 
    77 public:
    78  // -----------------------------------------------------------------------
    79  // All constructors are hidden, just the destructor is available
    80  // -----------------------------------------------------------------------
    87  virtual ~DOMAttr() {};
    89 
    90  // -----------------------------------------------------------------------
    91  // Virtual DOMAttr interface
    92  // -----------------------------------------------------------------------
    95  // -----------------------------------------------------------------------
    96  // Getter methods
    97  // -----------------------------------------------------------------------
    102  virtual const XMLCh * getName() const = 0;
    103 
    112  virtual bool getSpecified() const = 0;
    113 
    121  virtual const XMLCh * getValue() const = 0;
    122 
    123  // -----------------------------------------------------------------------
    124  // Setter methods
    125  // -----------------------------------------------------------------------
    133  virtual void setValue(const XMLCh *value) = 0;
    135 
    144  virtual DOMElement *getOwnerElement() const = 0;
    146 
    157  virtual bool isId() const = 0;
    158 
    159 
    166  virtual const DOMTypeInfo * getSchemaTypeInfo() const = 0;
    167 
    169 
    170 };
    171 
    172 XERCES_CPP_NAMESPACE_END
    173 
    174 #endif
    175 
    176 
    virtual ~DOMAttr()
    Destructor.
    Definition: DOMAttr.hpp:87
    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the sche...
    Definition: DOMTypeInfo.hpp:35
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    The DOMAttr class refers to an attribute of an XML element.
    Definition: DOMAttr.hpp:57
    DOMAttr()
    Definition: DOMAttr.hpp:64
    DOMAttr(const DOMAttr &other)
    Definition: DOMAttr.hpp:65
    XQilla-2.3.4/docs/dom3-api/DOMText_8hpp__dep__incl.map0000644001725400016040000000042113273140101017242 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.md50000644001725400016040000000004013273140100024620 0000000000000049b98096f519026f30676a1e9ba66a5bXQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp_source.html0000644001725400016040000004147713273140077020575 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMConfiguration.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 #if !defined(XERCESC_INCLUDE_GUARD_DOMCONFIGURATION_HPP)
    19 #define XERCESC_INCLUDE_GUARD_DOMCONFIGURATION_HPP
    20 
    21 //------------------------------------------------------------------------------------
    22 // Includes
    23 //------------------------------------------------------------------------------------
    24 
    25 #include <xercesc/util/XMLString.hpp>
    26 #include <xercesc/util/RefVectorOf.hpp>
    28 
    29 XERCES_CPP_NAMESPACE_BEGIN
    30 
    350 class CDOM_EXPORT DOMConfiguration
    351 {
    352 protected:
    353  //-----------------------------------------------------------------------------------
    354  // Constructor
    355  //-----------------------------------------------------------------------------------
    360 
    361 private:
    362  // -----------------------------------------------------------------------
    363  // Unimplemented constructors and operators
    364  // -----------------------------------------------------------------------
    368  DOMConfiguration & operator = (const DOMConfiguration &);
    370 
    371 public:
    372 
    373  // -----------------------------------------------------------------------
    374  // Setter methods
    375  // -----------------------------------------------------------------------
    376 
    390  virtual void setParameter(const XMLCh* name, const void* value) = 0;
    391  virtual void setParameter(const XMLCh* name, bool value) = 0;
    392 
    393  // -----------------------------------------------------------------------
    394  // Getter methods
    395  // -----------------------------------------------------------------------
    406  virtual const void* getParameter(const XMLCh* name) const = 0;
    407 
    408 
    409  // -----------------------------------------------------------------------
    410  // Query methods
    411  // -----------------------------------------------------------------------
    412 
    422  virtual bool canSetParameter(const XMLCh* name, const void* value) const = 0;
    423  virtual bool canSetParameter(const XMLCh* name, bool value) const = 0;
    424 
    433  virtual const DOMStringList* getParameterNames() const = 0;
    434 
    435  // -----------------------------------------------------------------------
    436  // All constructors are hidden, just the destructor is available
    437  // -----------------------------------------------------------------------
    444  virtual ~DOMConfiguration() {};
    446 };
    447 
    448 XERCES_CPP_NAMESPACE_END
    449 
    450 #endif
    451 
    The DOMConfiguration interface represents the configuration of a document and maintains a table of re...
    Definition: DOMConfiguration.hpp:350
    The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented.
    Definition: DOMStringList.hpp:37
    DOMConfiguration()
    Definition: DOMConfiguration.hpp:358
    virtual ~DOMConfiguration()
    Destructor.
    Definition: DOMConfiguration.hpp:444
    XQilla-2.3.4/docs/dom3-api/classXPath2MemoryManager__inherit__graph.map0000644001725400016040000000031513273140101022707 00000000000000 XQilla-2.3.4/docs/dom3-api/xqilla-dom3_8hpp__incl.md50000644001725400016040000000004013273140077017042 00000000000000e5efd6f72d4537f9d5cc1cc0e92d7dc4XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp__dep__incl.png0000644001725400016040000003117213273140101020071 00000000000000PNG  IHDR1GbKGD IDATxy@3WIp $Ѣc\ؒn9\K-* Qmk*WMrwZR3s>?;9f<39;σ(  0$[`&!HLBl!]u֕]suuuuuűw >J]zⅽ3gpn'e=U(;w]< 3 Afd $xG8885GKKKY^^޿ɓ'Dl^CCӧO#"~ƍ=yݻ[/رct:5|Eѽ{޻wﯿzo fRh4@P\\|9oo'N||| AQQ?~/@EEEAA0cL&ӧ';wP^^?bv>~xn]GKKKGGGWWr4-!!{ԩSZZZ!!!FFF'OnRSS]=x`cl/{qlVVfR!윑=MNN6UUUwwd쩽}jjpHZZ] 矱ǍNNNyyy_xܹsCCC\.EDD̝;wܹ<Eo7o\d Xj`޼y,+((uI?3gNll,@d1mU(`&垑QYYbUWW>޽766볲&N~vvvh4".\o߾{>|?={ȑ#KVVVTTTݻw!q&8<^YY׺;vlÆ uuumVT|1@v_Gᢹ9DܼysڴiSD>>>FFFÆ [b)믿V^MRMLL ƣGZw7ߨO> Lݾ}חF,[Lonjjj&M0̶iQLʽN~~~ "|*}̎+@ L<Ν;ԩS/a_YY ?[w yZSS#044ĺmo߾gEVo(^xq„ өS:uJU455Y[[ [FٳǏc߽{755uȑ R\\O>111)))))).]K[h洵 0eeeX;Cbjq0ӧOUUUO>ݶm[yyҒ%Kjjj֭[ѣw꺸gv_CBB vXXX'ON6y{XXXiiׯ###'O>v 7lpDrpp8x`yy9EYrJ}}}.F??#JZXX=zwXѣG"""h4ڔ)S\]]drΝ%b1~mS755M2|򰰰A[[[![zuXXʕ+d_u{ѣG ߦH-T[W('e [Ȋ[bOKKK-ZoUHVΝ;'+S^^_͞=Z$ԁW^13fGz=gjNd12UXྫ }W%]!j fd $I-p̀ly%%(>4< Ibhh(u "uխ92zPWFJ}}@nmR`Gc_;s@^kmm"Y?۶%?~GSSuÆE&[b9|vX-;w6K[^{{`E P{ǎof)j<& d6 ٶƍD$fŊ3fY$NB"ܽm( !Owihv}|N H$Μiu fB^W>Fą '}yxO?] t?)}U|tٲN]Y\::qL._^>zt%%5ݱDy =`ˆe&wuo2׭.ɔ |} 3Msx$>}ԺcfoT|MݐpOa$^**jX'.ntO, **j=< F;x@xzU+r\ƒTjuuMG54T(Y( Ϸn=w-8T^\.ŊoY;x1=xԩG]KOPy]b6<Ӯ]U۱xs`&ΝI׮=>Z`ؗSOOs!Ϡྫ2z`Q3~t.^|j];q,r}j##Y͖.I"rlS0JDKyIe!kcĥg.**dwrJ^zM81;;[Z~~>t0uʾkr'5jƸq6۷o>}*쪦Ν;8 ;b(\ʊ`/SjkkE|q-899ۿ~:??鮮|=}mԢD)\ꊭx/vO< '`Xqľ}d)D"۹|F L0/ƍt:][[{߾}.{ƍ]v :t׮]׮]k2LP=rzzzT*5 .]daajbbrinj]ֵ5עNlCRT???6-+\ʕ+Ә۷c"w111SWW3gΠ={om[i}\zӦM={4odgg3̺y;EѺ: URR}>|h={v]]ݹsUUU<///b5RLfiiU-[&'88x޽3f̦MX,JDDDyyI$j֛-&6mZnnnFFN߱cF)IDQ433SKK Eњ@eeeY߿k}}'O('55}ݹVI%ͤ@ pqq!-jL>6+Ұu&SSSQW7n0`@VVQ]]˗‰˱ɣG&L&w%-&F:.*LOO?l޼EјGGG}ݹPMMM}ٳg$<8Njj*NP(\'''++趺500_ոÇWUUeffZZZXJ}}=N[Kttt,**NII022{nEbYfff؁t[,//vvv𩫫kBB︂\iʘɲ2??2 ж466dee5Y!BBB/]ٯ_ֳ-]ŋ\ [SS(/_>gΜjlbXo_d< 77kQf(zYfaO=<>>ىD 5Jm3n+Ý]9ҙh7o[=zD Ξ={;$$DGG8<<|…T*N4I]]{\-555uuu˖-۷w}}=LMM)YRR6={LMMoad59`]]]__F]_I!ccc_)X,sss55#FٳA8/RSSj3+ xDj,Q[z>8JC9q0d0ioLBJFDDt꾕3 Afd $I- x-I777KPmh i)..boQvʤ{񍲆!iדŸB~S)+KOON {+EccctTWvuww>i!(?ڶ|}=믇xw~^O0xF67f̀it_dO(-qwX> RI$ˆgJM;eY hBB@ L6B~ƍD&\~Uk֬_\y<|F%%5k׳y<>@ L`%͕--c=}. CLv Ecbef (à EW?ZѐlxݻkQ@i N*U4Çӧ-$a~:]))p;)eQQw?bAd̘`e5'x<۷Uմ`?|(qϐL>}._^k`E"X:cw>ለ@ h``"/sHvLJO2g=3,99H"ih-@$"œθ ij24jB"{XvsHvLvm?|سod2㊱6dH=wWqR0җ$66#$}ѷoo1zXƌ/lziT V:9a肵hdAtRB~㤯orvvAǛ® Iijh̜Jb/|}cnX?|8$*M[aϞ $o,͍3)5 maOtCdY/߇CywWg߸qf/},VkD /p;)l#ҲNO ]>-~9.K fR ֮m _H f|RLvUd䝫WsBC=XWX$0]n3lm[zgkpS)`&%W[۰rMq ޵ڵ߸*̤P]&GDx2wr7.cGݾueDNokՎϞܹB LJ7gܸAx#&Mrp ޅ@[UͼEU<^w!`&#1$߿A3f#F9w!`&r== 2rM1 ŋO**j.̤]ZX]K{\\,bb.dg}ӳf Z:@&nBL.WvofSx<|ܥt>~gx fSdg;zt*޵tԩOw!`&;ᔠ W􂂂xf5kĹ_ePL 3.r)}}={]d<3g2= d{vu#K{]$ǿ_%_`&tbvTԽ`W:w-217fLGxfRʀx/Y]K̛7l6B΂1'MM۷;]KW͚5B΂a5 ZJհx N܀l)11+>ѯ+fδ~9g'/`&u>>NN]/9ӂl?BNO}=89|8 kwcc33xH)xI6o>[]]cw1CSSa&N~}CC=tr7MEy' :3 /_ڕv4{{3k66**w!ZMMMW^ωDdժ2yN7nۙ=U$/'^:|JHKkɹŵ31፷xxGJᆇnj⪪{*H2xRYa rs+.̤4_*/^k1:IeA ff/_]I%ҿ: v&qľ}_yl߾Ho w޽7l˗---h4ZPPP\xа7dȐzCRT???65޺urzzzT*5 .]daajbbrilӧK_ Hllattt~g߸qNkkk۷OاȚ[4v鈮ĕJoPwiN&#IDATn'16mٳG؂Ŕ:::7uuu ˫$&&E/a}zzz.YBOOÇަMAw؁5Θ1,+88x޽3f̦MX,JDDDyyI$|1eʔss;v`~555ǎ|z̞=ܹsvjngy4ښ*fSB80ŅH$.ZH؈et:6%%M(LXcG'3y^$.$66655gϞMJJ[Lmf-(JnnUtttDec~⅏O=033+))>}FaoSRR222޽K D6 {>ojj={a4ﭭE6vdV$,++ۿm`` #ݻc/.\pv:llltss  L aaaSNoގmdX@`k,555 !!zs̩(\H,,,Ğb[5yY.2)Π!v&Qe0˗/bn߾빹&&&}]SSӊ+fs8 `2?@ xyyݼyҥK®V^e˖EXмy6o?899:tAiӦ;wd555Nd ?uV6Y[E plk[ؙh7o[=zD Ξ==eX檪,X$!!!::: .RhǓF¾ILLhXo mllluK]]ݲe˴]__kSSS bff$\-wU]]x}hk666_~n>n(3g;wN Mm&?w-7n\!P7"ë78uA\\AI !$dIYYNŻcxf@Q4=v_LL:X7h(,5v@ :3 66tMMUohnܘmuIoUTH#G]1I NNޞEQ4;}CE`>~vwi3٬Y\@s8{8;,*ı0HO7N&. uf3;jj-hNo0caa_ûS`&?PHS ZO2o^(å.y󅆆@ :f?gEo kӓo &LFE@\\,\Y#w8nj⦧W93^(fw_I$"L YW/ I,- sphLœ9rH$no55kk| Ə7w!PgL~aG\\,SR6ᅬjl\D97otvĻH 0_TB&p ӧWDgEE֭x&7^\l $/9=}**j9;K q_$urv9?%-iHM^,ë* ԧrq;rfS6m5ztoh& Z:+!1D;rfSH$‘#KY3xYqq[]$΢R5_ԩxұG ߼Hl0b4iՎ۷']Kbc3,,&̤x֭nccbEԧO xҦY.e/Z7r fR<^~}_U.,0ǖu+IiRS8ᕛ[wY" acbү!y3)e&&_phի9=~ăIE3)}..֭*mUd fA= l6wOЭwYhIIMrr@ہA ~BEtȒ;i/nzOa  8z:RܙlWtw fMf|Mrs+sDDJY٧[H[HLvmۜG0d0N64H.@jd->!3ٽdÞƍ TU_KCHLv;'qq]-11֭@E 3LSl9yiW LjSid}w5MMU:YMIvE ,_\n0 fqWs;o]]ӦMg]]:8uGmP}u֕]gi45 $\55},-+I$Yn+U( $ &L066ƻ.AQAdJOO9sFn)G|ڵkBq}$I-0$[`&!HL'??A$ }CfR۶m}׸qZs :o>rRRСCT( I U\dIEEÇQ=rJ=|YYٕ+WyyyJkBxyy>||!!!;400f2eJAAANN;.\XWW pss;rJ'+--]vYZٳg՝;w +uڴit:}ǎ";\N{Hl0YXX"G-ɓgfzb4l2dH9H|9xy:՜(iy~ש(|l.Ԝlx:.U 3}gZZZ/^Z G-¢(JnnUttWqqq߿MM?FN khhdrͭ_lŊK6fffelp3YqqqXXԩSCCçO 'xE=466dee ۅغC==="XXX5vKfggh4gZO#0rssжfo\\͛7/] HJJvڦMfs8 `2'Xreo ,+**z֭[EnZ6l-++߾+@dddmmm3^:???33s˖--j=tt<:j(hbb"Fp8v4h=DQ4$$DGG8<<|…T*Rx>I`nn^RR/ltHIifL,A7o@^^^H0sL77b$vڒӟy͚5T#Éwpppppp8"oo[^t_~M.\0v;wx{{o޼={ U?|?ؔzzz:88Ai0ibFkoo z?TC[ZZmccFǏ---w*-''b%$$>})))HG|}} Fyyyrrr@@ŋ}~嗘??X@^^#d0III;??o=qDeeKƈjq !Q(++ &˻VTTo>*WUUĻHmF"6l#֭[$*V^/@ }||fn`2ZZZ%%%UUՆsss ڵkO:k.cqg:::AEEEdD"䄶EPR@pj@ѐyuuu) `0 _v [.==}ɒ%a14ӧO>|5Ι3ٳёdr 9rlD&f2zzzV03}UwwwuuÇY, ۻ'$$d޿? BlٲQ9sPpYpAXYY1Φh\xaa%GGG={,))nHY3=q`` ARMMM鉉)))횚%888Q8gv튎޽{7A~~~<\&&&7o|fffɺuBCCl;2xٮ>"#~#G̝;7;;[Q3 c(**~pc 22H71Myp`8G*v.ő/^;w.*&Ԕ @$VoD2_ W@VaI-FFZaWHl쿎N")X+(HuoijHtsoll߾rqYA$ޞ8Qhiy'ׯPA`d 9S昒Ҍ.7peedZuP,275u55ux 20Pr>#y;cd +^G&8+b͚n BkX*ru]!2|9%X*Yd*rr=|~sްDN8z,OPDvMlm0L& K^h>[:A<=W!wB@b7p&ZZZdnrd+2V! "A&2mb~II;LMiAAbJ~1X֭P}} cGb_p> XV( ή}^:E5ֶ;vmx-?]4)[U* Ȩܩ 9w6BV:="88 m!FO2ӝۇLLh 99Ν"sk'::^otNOrb,zܗւ=dkI?=QYyfrNq0}\ԜzpxdXWy>G AAŵ{ Q,"+&a888͚~225op\\b;:^_J +7vcnOu0` ] r^^7h 2a+WΞ}vvFhkŌ 4Gx(Hó]m9~j)`|ee堭LsuyaFӈ?Df{eeUǗ0Utv99,X0…"פK3 PIǎ]ӛOVʹ'x8k|J.~-*$$KGGeٲOЖ#L)6.kWÇoدKA[>>)MׯbGFp|0`zQЖ#LCGGVin10s|jAތhˑF]{wGlݸm-bCMM)-ͧ{,iA++'#}}nv H>>) ތ)bG[tɹѼz5Hy_*~lٲ|--{{cH |#I\./=}7ehk0?Oee ׯ[I02b?7nhR0Z`'/.e0vȈDc2#k)7Im_X|7KK:Z$ҌL߁Ν޾-e0l;w}PCddֶw cIUWW+[ƢEޅէOB[ `r)fKKXsshO?EW1ȑ*UYA؛'coߞL(zl/-~_͟fmm9(1p}|Rz{22|g-GZ˖-KvNւX21 á[22|55hˑ" :}myhˑ4X2w,(Zhk:II;dGb_m93&ʪpaDPV@@l <}zʦhk0g,Mأ{ggW !ĝ"P+)i4^c)^ɤG/\G4 m9@q&ϔ]XPT4'砭BݻwOdZ -}ٳb)dZXX4qqqqaX1O,,,%( ĻbFGGGMjG871Myp`61$WWW`ŋϞ={'Np8B7U7n atE#>Yf7lSڼ9;; &hhh.Ȟxb X,LII[tioWN/['O|333\._TOOϽ{&OPPǏsss[ZZ MMM;_=ɹr4\re}@}}=?񬭭###8?x``@WW` y7lp!ԍ7 )"HtocC&+**y޼y0 *X,$Pc3SzFtcb `FFFdd$g222svv6-''}߾}N|YAA… T޽{߼y#2r5(++ƾ| Z[[ boE£f{{{oNPh4ځl6=uꔁٳ---+++###aaaT*5,,ldddr=.w #{La%T]]3 _^=L$_׾\@ww7_NGEE,֭[3f̰;uTss3?vO yYfnkkXSScllu*^XX$>y򤣣cKKKMMҥK Is7ڥ0qyy9Bꫯ<pFF2Ȓ_}}=r555H+Wt6M 0é8z1H̄a7/---߾}K$7̼<:n``ʯ(-- Ih"LHҔ.[}} d2YCCɓ'B ***Cݻ [re`` ,s7ڥcb>::: BCCI$LJ3F+!ϟOPEF71É2555knDDsdddJJJH25/ <Ύ^TSS p8N銊VBz\vء;88K܉("rf:rc'ˈ܍v)v`~~~đ6aT*5>>~"8Ɣ;,G$q0nbٜ̃THV1V^^"q>wL,gq}#℄qss[Jbqp11Myp`8Uvi/IENDB`XQilla-2.3.4/docs/dom3-api/functions_type.html0000644001725400016040000000663013273140100016133 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.png0000644001725400016040000000767113273140101022427 00000000000000PNG  IHDRpI)bKGDnIDATx{PWO @"TK@T " Њ-R"(e QP[DaEZE|. $m_eI'@H$Tn<}] hwӂB?|Cd2|eC0%!!!!!!h__CC<%ץ!+V*((|ތ۷O?|Co QOH/_144 >SNIR4fm 6H$+`+p8Q)QOuuu\.NBhdd?lllLMMmjjJJJ_ V)@P[[m`ܸqcoɒ%4*##.:qĒ%K*++lmmt:닽*++6~7gQWVVfnn.׮]DDccq8QTVVZZZ$''[ZZ.Y$""nrttP(VVVW^HIñsyD"}W尘1MMMnbbb~~>,3$6gggM(ٳ"!!A"d4[[[===wwG`s2wx&&&=m۶X,Ç?}aÆ{{{fEdggs_~L&M. /]h>}͹A MԃLLL`l[['O` .|9&4,X@=턅tttX5k֤STXYS 偁999dd2///v8nX dX e---芞,5lܸN8}"RSSPϧ~:22r}&8it:cbb ˗/Ǟ矪G:L&=y$755-++o&88y8p{THNNvttdl6=**JYX,P( chh(77Bbe*CMM͖-[,,,B!\ŋ+WzyyUTTۻK${ƮZFmN /^Mf;vyccR.[QQaee++]#32ONNNpV,))133 ݻ744DX$IBBJߵk@ ~(|mggwMU`mtҰ0T h||5k.\hoo?P@VVrj>nhhhff'RiZZ 3e}W~$lo v؁H_>?>SwB?|Co !7~fN!K. {1_[[K&O(n!ɆLQW ڳԩku>4ÿjj ɽ{lUWwd%L()itf կLH۷YbhVPO^ݹTaK)4K~ƞH졞=締2B<4K~BXmmT*:;{R=PIj8~ c|M%\ab^R=MMMݓ$?~\n7++ 6YG6lZ{C{3V{ln!7~B?|Co !7~B?|Co !7~B?|Co !7~B?|CopwӂBԛ,2\[[B)ٳg!!!Wt &pq.ϿzjooˈM8~ B?|Co}DBPi߾}S"\|ZZZzxxܹ~ F_zqC544Wyyyt:=***44teff:tH$EGGEccc111mmm111aaaL&3!!A. <mjdd=b UUUըnٲEўY /^ldd|I3333Ayyy֭x+.n:r=LW@eeexxD"H[nݺ5;;[*>{F577رNر#00讠WzL&4BўDڼy3n&PP(;w2LXA_w]///lUUUNNNUUU  `cǁ͞+'|ꚕ%{YzrsrrΝ;LaÇ֞>}:##7??.UH$)))ׯ_?sD"a0$$$(ڊXXXFGG| ===^fX,SH$jnnvwwGkN.\O`ccC/f`믛lbgg~ULLLCCGGG;;;WVV~VVV+V8t落qAbv@@[ttt' ݸqH$ zEyEe[[ࠧ'ӳk8m}:{キiӦ+W;wuxm۶E]]]hXZZ,,,gٲe˖-S`0tmhhקJ/^p\]]8-ZNKKtdӓ+VNKJJ\]]/\pȀp{}d2АNr8~F|R.H#G* M)++[~=,9;;@Dr5066f?~ryuuullMNWWWݻWu3Ο9s&((ѣMMMuuuqҥ΃b箮 ("H"h||L&( D6@(ϟ=zn߾.ڽ{@ ݻo>###.UVa/Y,@ [q8XA,L1ݭT(ڵL&ť;88EFFfffFEEH$OOϘϟQaaa$11Q"_>&&rrrTjrrpPxYx@177.\Kӳ|||BBB=h7oܺu+YUUUƆJVWWGFF:88l۶ۦ=O&HFݸq*yWB?|Co !7~f»wA*oš$ 枝;w[NE5~C !7~G"IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_19.md50000644001725400016040000000004013273140100015724 0000000000000074a36ae9517b2c9c10d3edb7cb51dcdfXQilla-2.3.4/docs/dom3-api/DOMError_8hpp__incl.map0000644001725400016040000000006313273140100016421 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMConfiguration.html0000644001725400016040000007475013273140100021304 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMConfiguration Class Referenceabstract

    The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...

    #include <DOMConfiguration.hpp>

    Public Member Functions

    virtual void setParameter (const XMLCh *name, const void *value)=0
     Set the value of a parameter. More...
     
    virtual void setParameter (const XMLCh *name, bool value)=0
     
    virtual const void * getParameter (const XMLCh *name) const =0
     Return the value of a parameter if known. More...
     
    virtual bool canSetParameter (const XMLCh *name, const void *value) const =0
     Check if setting a parameter to a specific value is supported. More...
     
    virtual bool canSetParameter (const XMLCh *name, bool value) const =0
     
    virtual const DOMStringListgetParameterNames () const =0
     The list of the parameters supported by this DOMConfiguration object and for which at least one value can be set by the application. More...
     
    Destructor
    virtual ~DOMConfiguration ()
     Destructor. More...
     

    Protected Member Functions

    Hidden constructors
     DOMConfiguration ()
     

    Detailed Description

    The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters.

    Using the configuration, it is possible to change Document.normalizeDocument behavior, such as replacing CDATASection nodes with Text nodes or specifying the type of the schema that must be used when the validation of the Document is requested. DOMConfiguration objects are also used in [DOM Level 3 Load and Save] in the DOMLSParser and DOMLSSerializer interfaces.

    The DOMConfiguration distinguish two types of parameters: boolean (boolean parameters) and DOMUserData (parameters). The names used by the DOMConfiguration object are defined throughout the DOM Level 3 specifications. Names are case-insensitive. To avoid possible conflicts, as a convention, names referring to boolean parameters and parameters defined outside the DOM specification should be made unique. Names are recommended to follow the XML name production rule but it is not enforced by the DOM implementation. DOM Level 3 Core Implementations are required to recognize all boolean parameters and parameters defined in this specification. Each boolean parameter state or parameter value may then be supported or not by the implementation. Refer to their definition to know if a state or a value must be supported or not.

    Note: Parameters are similar to features and properties used in SAX2 [SAX].

    The following list of parameters defined in the DOM:

    "error-handler" [required] A DOMErrorHandler object. If an error is encountered in the document, the implementation will call back the DOMErrorHandler registered using this parameter. When called, DOMError.relatedData will contain the closest node to where the error occured. If the implementation is unable to determine the node where the error occurs, DOMError.relatedData will contain the Document node. Mutations to the document from within an error handler will result in implementation dependent behaviour.

    "schema-type" [optional] A DOMString object containing an absolute URI and representing the type of the schema language used to validate a document against. Note that no lexical checking is done on the absolute URI. If this parameter is not set, a default value may be provided by the implementation, based on the schema languages supported and on the schema language used at load time.

    Note: For XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], applications must use the value "http://www.w3.org/TR/REC-xml". Other schema languages are outside the scope of the W3C and therefore should recommend an absolute URI in order to use this method.

    "schema-location" [optional] A DOMString object containing a list of URIs, separated by white spaces (characters matching the nonterminal production S defined in section 2.3 [XML 1.0]), that represents the schemas against which validation should occur. The types of schemas referenced in this list must match the type specified with schema-type, otherwise the behaviour of an implementation is undefined. If the schema type is XML Schema [XML Schema Part 1], only one of the XML Schemas in the list can be with no namespace. If validation occurs against a namespace aware schema, i.e. XML Schema, and the targetNamespace of a schema (specified using this property) matches the targetNamespace of a schema occurring in the instance document, i.e in schemaLocation attribute, the schema specified by the user using this property will be used (i.e., in XML Schema the schemaLocation attribute in the instance document or on the import element will be effectively ignored).

    Note: It is illegal to set the schema-location parameter if the schema-type parameter value is not set. It is strongly recommended that DOMInputSource.baseURI will be set, so that an implementation can successfully resolve any external entities referenced.

    The following list of boolean parameters (features) defined in the DOM:

    "canonical-form"

      true
              [optional]
              Canonicalize  the  document  according to the rules
              specified  in [Canonical XML]. Note that this
              is  limited  to what can be represented in the DOM.
              In particular, there is no way to specify the order
              of the attributes in the DOM.
    
      false
              [required] (default)
              Do not canonicalize the document.
    

    "cdata-sections"

      true
              [required] (default)
              Keep CDATASection nodes in the document.
    
      false
              [required]
              Transform  CDATASection nodes in the document
              into  Text  nodes. The new Text node is
              then combined with any adjacent Text node.
    

    "comments"

      true
              [required] (default)
              Keep Comment nodes in the document.
    
      false
              [required]
              Discard Comment nodes in the Document.
    

    "datatype-normalization"

      true
              [required]
              Exposed normalized values in the tree.
    
      false
              [required] (default)
              Do not perform normalization on the tree.
    

    "discard-default-content"

      true
              [required] (default)
              Use   whatever   information   available   to   the
              implementation (i.e. XML schema, DTD, the specified
              flag on Attr nodes, and so on) to decide what
              attributes  and content should be discarded or not.
              Note that the specified flag on Attr nodes in
              itself  is not always reliable, it is only reliable
              when  it  is set to false since the only case where
              it  can  be  set  to  false is if the attribute was
              created  by the implementation. The default content
              won't be removed if an implementation does not have
              any information available.
    
      false
              [required]
              Keep all attributes and all content.
    

    "entities"

      true
              [required]
              Keep  EntityReference  and Entity nodes
              in the document.
    
      false
              [required] (default)
              Remove  all  EntityReference and Entity
              nodes   from   the  document,  putting  the  entity
              expansions  directly  in  their  place.  Text
              nodes     are     into    "normal"    form.    Only
              EntityReference nodes to non-defined entities
              are kept in the document.
    

    "infoset"

      true
              [required]
              Only  keep  in the document the information defined
              in  the  XML Information Set [XML Information
              set].
              This   forces  the  following  features  to  false:
              namespace-declarations,         validate-if-schema,
              entities, datatype-normalization, cdata-sections.
              This   forces   the  following  features  to  true:
              whitespace-in-element-content,            comments,
              namespaces.
              Other  features  are  not  changed unless explicitly
              specified in the description of the features.
              Note  that  querying  this  feature with getFeature
              returns   true  only  if  the  individual  features
              specified above are appropriately set.
    
      false
              Setting infoset to false has no effect.
    

    "namespaces"

      true
              [required] (default)
              Perform  the  namespace  processing  as  defined in
              [XML Namespaces].
    
      false
              [optional]
              Do not perform the namespace processing.
    

    "namespace-declarations"

      true
              [required] (default)
              Include namespace declaration attributes, specified
              or  defaulted  from  the  schema or the DTD, in the
              document.  See  also  the  section  Declaring
              Namespaces in [XML Namespaces].
    
      false
              [required]
              Discard  all  namespace declaration attributes. The
              Namespace   prefixes  are  retained  even  if  this
              feature is set to false.
    

    "normalize-characters"

      true
              [optional]
              Perform   the   W3C   Text   Normalization  of  the
              characters [CharModel] in the document.
    
      false
              [required] (default)
              Do not perform character normalization.
    

    "split-cdata-sections"

      true
              [required] (default)
              Split  CDATA  sections containing the CDATA section
              termination  marker  ']]>'. When a CDATA section is
              split a warning is issued.
    
      false
              [required]
              Signal an error if a CDATASection contains an
              unrepresentable character.
    

    "validate"

      true
              [optional]
              Require  the  validation against a schema (i.e. XML
              schema,  DTD,  any  other type or representation of
              schema)  of  the document as it is being normalized
              as defined by [XML 1.0]. If validation errors
              are  found,  or  no  schema  was  found,  the error
              handler  is  notified.  Note  also  that normalized
              values  will  not  be exposed to the schema in used
              unless the feature datatype-normalization is true.
    
              Note:  validate-if-schema and validate are mutually
              exclusive, setting one of them to true will set the
              other one to false.
    
      false
              [required] (default)
              Only  XML  1.0  non-validating  processing  must be
              done.  Note  that  validation might still happen if
              validate-if-schema is true.
    

    "validate-if-schema"

      true
              [optional]
              Enable  validation  only  if  a declaration for the
              document  element  can  be  found (independently of
              where  it  is  found,  i.e. XML schema, DTD, or any
              other   type   or  representation  of  schema).  If
              validation  errors  are found, the error handler is
              notified. Note also that normalized values will not
              be exposed to the schema in used unless the feature
              datatype-normalization is true.
    
              Note:  validate-if-schema and validate are mutually
              exclusive, setting one of them to true will set the
              other one to false.
    
      false
              [required] (default)
              No  validation  should be performed if the document
              has  a  schema.  Note  that  validation  must still
              happen if validate is true.
    

    "element-content-whitespace"

      true
              [required] (default)
              Keep all white spaces in the document.
    
      false
              [optional]
              Discard   white  space  in  element  content  while
              normalizing.  The implementation is expected to use
              the isWhitespaceInElementContent flag on Text
              nodes to determine if a text node should be written
              out or not.
    

    The resolutions of entities is done using Document.baseURI. However, when the features "LS-Load" or "LS-Save" defined in [DOM Level 3 Load and Save] are supported by the DOM implementation, the parameter "entity-resolver" can also be used on DOMConfiguration objects attached to Document nodes. If this parameter is set, Document.normalizeDocument will invoke the entity resolver instead of using Document.baseURI.

    Constructor & Destructor Documentation

    xercesc::DOMConfiguration::DOMConfiguration ( )
    inlineprotected
    virtual xercesc::DOMConfiguration::~DOMConfiguration ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual bool xercesc::DOMConfiguration::canSetParameter ( const XMLCh *  name,
    const void *  value 
    ) const
    pure virtual

    Check if setting a parameter to a specific value is supported.

    Parameters
    nameThe name of the parameter to check.
    valueAn object. if null, the returned value is true.
    Returns
    true if the parameter could be successfully set to the specified value, or false if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.
    Since
    DOM level 3
    virtual bool xercesc::DOMConfiguration::canSetParameter ( const XMLCh *  name,
    bool  value 
    ) const
    pure virtual
    virtual const void* xercesc::DOMConfiguration::getParameter ( const XMLCh *  name) const
    pure virtual

    Return the value of a parameter if known.

    Parameters
    nameThe name of the parameter.
    Returns
    The current object associated with the specified parameter or null if no object has been associated or if the parameter is not supported.
    Exceptions
    DOMException(NOT_FOUND_ERR) Raised when the i boolean parameter name is not recognized.
    Since
    DOM level 3
    virtual const DOMStringList* xercesc::DOMConfiguration::getParameterNames ( ) const
    pure virtual

    The list of the parameters supported by this DOMConfiguration object and for which at least one value can be set by the application.

    Note that this list can also contain parameter names defined outside this specification.

    Returns
    The list of parameters that can be used with setParameter/getParameter
    Since
    DOM level 3
    virtual void xercesc::DOMConfiguration::setParameter ( const XMLCh *  name,
    const void *  value 
    )
    pure virtual

    Set the value of a parameter.

    Parameters
    nameThe name of the parameter to set.
    valueThe new value or null if the user wishes to unset the parameter. While the type of the value parameter is defined as DOMUserData, the object type must match the type defined by the definition of the parameter. For example, if the parameter is "error-handler", the value must be of type DOMErrorHandler
    Exceptions
    DOMException(NOT_SUPPORTED_ERR) Raised when the parameter name is recognized but the requested value cannot be set.
    DOMException(NOT_FOUND_ERR) Raised when the parameter name is not recognized.
    Since
    DOM level 3
    virtual void xercesc::DOMConfiguration::setParameter ( const XMLCh *  name,
    bool  value 
    )
    pure virtual

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__dep__incl.map0000644001725400016040000000044413273140100021764 00000000000000 XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp.html0000644001725400016040000001472113273140101016627 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    PlatformUtils.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/XMLException.hpp>
    #include <xercesc/util/PanicHandler.hpp>
    #include <xercesc/util/XMLFileMgr.hpp>
    #include <xercesc/util/XMLMutexMgr.hpp>
    Include dependency graph for PlatformUtils.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::XMLDeleter
     
    class  xercesc::XMLPlatformUtils
     Utilities that must be implemented in a platform-specific way. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/sync_on.png0000644001725400016040000000151513273140077014364 00000000000000PNG  IHDRw=IDATx_HTY8i4-g6&kQ)!0URKڅ/PE>K-+K.YdEPaAZSܝ;3wgfsWK.Da'q_k DQCg 0Y:qZ)~L0HV z-C%g68%wUϿ }? ?3 K@h aaUe s~2&&B*Alji*˨,oƣT,d[3-*> LɟfkҠw#*AEjKUy>&{8m5Ki jjD*Nigw7DmzK۾M!k?o_lX#~XӑR*EՂדE;6e"Q(=Ezæ5Kؼָ_ 1zBJ X96jL^7{J1i@%8'7M_\Q#Uy Wo x8sv|Sn q_m >b[JX,4[T{Ratjjzz'ȶiIws KC^Y%6ꈺ]vhiWvh'̂|[^YrD= XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationLS Member List

    This is the complete list of members for xercesc::DOMImplementationLS, including all inherited members.

    createLSInput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    createLSOutput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    createLSParser(const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0xercesc::DOMImplementationLSpure virtual
    createLSSerializer(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLSpure virtual
    DOMImplementationLS()xercesc::DOMImplementationLSinlineprotected
    DOMImplementationLSMode enum namexercesc::DOMImplementationLS
    MODE_ASYNCHRONOUS enum valuexercesc::DOMImplementationLS
    MODE_SYNCHRONOUS enum valuexercesc::DOMImplementationLS
    ~DOMImplementationLS()xercesc::DOMImplementationLSinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__incl.map0000644001725400016040000000012113273140100021471 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathException_8cpp.html0000644001725400016040000000747013273140101017263 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathException.cpp File Reference
    #include "DOMXPathException.hpp"
    #include <xercesc/util/XMLString.hpp>
    #include <xercesc/util/XMLMsgLoader.hpp>
    #include <xercesc/util/XMLDOMMsg.hpp>
    #include "impl/DOMImplementationImpl.hpp"
    Include dependency graph for DOMXPathException.cpp:

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1XMLDeleter.html0000644001725400016040000001144513273140077020107 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    #include <PlatformUtils.hpp>

    Public Member Functions

    virtual ~XMLDeleter ()
     

    Protected Member Functions

     XMLDeleter ()
     

    Constructor & Destructor Documentation

    xercesc::XMLDeleter::~XMLDeleter ( )
    inlinevirtual
    xercesc::XMLDeleter::XMLDeleter ( )
    inlineprotected

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.map0000644001725400016040000000041513273140101024334 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.md50000644001725400016040000000004013273140100024307 00000000000000167adcfd37be32cf03337d93d236193cXQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__incl.png0000644001725400016040000002364113273140100017766 00000000000000PNG  IHDRbKGD IDATx{ T3Ɲr'R֭d+%EE6얤Z|"rHh-%R"ʶHe\f8̐j8יל|9~3A@>d$4Z]]o>5tj #U 7a˗/ ȈիWhOs:tk 1 >@c@ |ƀ@O?9gYUUu̙ `WWW\\\aa!B666vtt$HhYMMxYϞ= L>>|0o<22RWWWPGP !7 44T]]f^v#&&FFF驡OB`t:]5jѣGvk1!9$AŐckk|cVV+9dGGǬ,YNNf?tۏ;zjvZv@]]gHƽlnn~m777w:99YYYĠ+0p[[[[[p&w˗[l|l_]f0˖-@_6$$zSggUV%&&r'U! ɷV}}=Juuukjjӧ37o:::={fdd43g455?~099955ÇAAAOMHHXjQQQXXGddǏ 55B\pɓϞ=EK;w… mmmϟ Pi^^zM^^:g/O)**ڵk+`mmm ͘1cW/ÐA̅ -,,.]4{liFWWWrr2?cƌҧOr1'WTT$ 땔ihh0a2??-bH$Rss"//i(:,D}vAbffvȑϘ1CYYxSaHR---T* e͚5Wnnn4,((xݟz4&&&N:u*%377?{,BA[XXXZZFEE}۷gΜillv޽9@###vޝ> cl,ŋȍChhh]]ׯ.]_7o T!}c۶m肊ADD WWW_d8wss [[JcǎP///qqŋ;;;.?? zzz7nx[矃lƍCCC7oL LLLl͘1֭[dCŮ],Y_'N5kaUЁo~/rյk>x`HQQQ G?չd M:|կ/FU)Bܾ}{ʕXk/OO˗s/--j*J8 JA ƀ@gDy=*gC]]]LLL&"dW_DJLL"(U#aQ3. %,Gǰwhy3SR<V9i6~+?ºu** !"mCC]NTHIT߽ DCDYYqt$$/^؜8Q%1s(8M. ?xJma(\7nLrWYYG* Cܹ۷KՇpb)S<=ܹ3>Y-c?~k~oؼah8.&fÍ/>uA;j'zaa.9o5 l6iSlWWKx$U%%C2 j5gDH~csnpY[KZ" IBspoII~~$%%"HII^D")Ng`-G1n;a>BLb6tw |˺7^g%&+?\k!C}R[Z:&۷Kn] >ssMM^PccDD&bH=gϛ7׭si(e۷[̛7k-ĤIcf~/7l6D"ML#=F|#"k!Ê܋X,>yde_pOD!8qڵYxwwojS %4Ff󦦶 2|Xݻ>>>>F-1Di9w ?{U 13۷MoE}BD"~K"cƸ|@UUDk!Êrr׍; DGݰX x1IK+rp'0͙3>#o]]U#{Pٳ:HX/;{7Y"{{Y/?:V'$nO1?~3wxqq>yqppj=SzxGG̙3eee͛/pwI&9=]|9@DWppp^᳔~eNn?Ə"==fH>zB{.66N_͝;EEEKLL\t)BW...椥h>(557Ơ X*޽kii9i455ͯ_ùr|e˖}ձ )))yzznݺAM [JJ`pfffjjjh4@rr^GGOUUUEEϯ߿sAmmmeeeWWWƍd2YGG'>>d2onndXzzzFFFO{SKK? 111SNUVV>vX|| 8'-o ͛7я OzHKK%$$^,s'ܹs)S<<ܽ{WWWWQQ1((0,##c***>>>||@pEpPoY?[CC'OjjjJJJ [QQX|yvvv@@~IIIii |}}+>jԨp -&&̷xLLL||< NRQQIKKy󦆆gg%Ky󦤤dtzTT`͚5t:… f/,,TPP@=:455>yyyhׯ_=A))fNNt\RR266AtyxLG`ʕt:ڵkh3ъ,--uuu?w1-:rL`1h4V2e BAf͚n咒A&O~[VVY-ERO8Alv[[꯸JEDOO/..#ŋK4 ٳgYFWNZ䋌c%%%N٭[۷AKr,9sFNNc 6f# zSQQ r]]]Ad@1>"00D"566r"dGӎˣ[7o)Arssoݺ_6kkktYRRŋ?@lc0hL&#i~HJJ3gwۆ}w999l6… ?cX,SSSP|mf@yy9w_L& "»CZzTg gO صk'فh4Z~~>hhhTWW/^=zR fPԍ7ZJ-/[ ?ϫW$ yFSSN [YY9נǏ߶feewH$EDD6{au va f,T*UMM-33ۣW',Xm6 JKKKKK6o_)A&SSS"""d2[ťst rmu-YT__T r.^ZKKuɦo.//OKK722Ne˖S|/W|݌DFFrt6u+** &M7 nn]ΝɃYs0 9s&:@~::cƌ6FWWFC㼥P'N2eJFF===+Vb2ҋ-BP׏3F]]}Ν acqE>R4vXggg$ v>}#G:;;$;wO1lҥK9W|?DEE7NIIi opaC`9p 145ސa7;vtM |)#<==\pc m15nTTT\pcqB "!%%UB "nA"5_ZD$1fi~z=93gaJH|Z5kAD8j O=ܹ{{YOVEȢFJw cܹ;B@g7GWoBFOr\v>Z<s)99V1HI)O83ٔ/뚛q].Zot%$HZH!7뢋ˢ]}ң/k!#/j6l^;83`jü6`LUUko]wUBcidozU᥾eڰql{ !))aiV1LN! 'EEբyCa[[׺uLvrr\hrRY$^7._RQZ0KcoRR 9boۖPVV衭-[pi ڵz{Yϰ2L {Mלx5Y,xu``fZZQTy"oo^!ߣOZcc(/[6ܹl -qqyN=vzZDe/jrs+2T\lk?yZD =SxGGOfBÇ_jt-ZD|{+Z)*ް!00P|w蚚YY~Bs/_Q>tBHw110lݻWwÍ/"f w aS=zFWVGp ŘFi!CU rU g11KedFa-Gc(+z{ollZ`_y劷 rD!1\QQX z{Y6VU5]쭩L OK+T ,{OMtð'N]k-yqr ݻ7yѱ"%dk8Dz _]CZHy5G8icG. 5k-|j|s(`66!ݷn$ű/^ԬYs~RQ@"/\pkhh=t(k- Bk Bp23G$p^M!XYtv^{wʻw4NBi9y9Ӌ翹x1;B{biYYrjV115>tlXlUjjza["eo+= HXkZĈ Nݹ*ɌD"nd}C2g# Y2D(*:HaJIDATwſSL ?n"r=O  _ڗ#GF H$^]_>1l0T3ܹY>O0&=ŋ2l3I>>f::J9‘%p1^٤L_Iw7+-u~~ɓK̘`&'257q2m4U2333@zZs d0@c@ |ƀ@ƨqwwj{RRR8 ҡǏwuumjj`}A\\\dd PYY)"ncUUUJJgϞϞ=~iiinٲ3f C}xBy]ll,N744D𥾾>11L^T;@hll|+:;;~UQQѧANӧ{xx 5gΜ!S G6mbb|5˗/_̘=Fff&F$''uttz{{TUUUTTz{{Asrr<9ܸqL&L&Ғ$… jjjgէ8@BB"...&&&(((666..N\\?l/͛n s޽{WWWWQQ1((5222&O78Bv { WWW77UU'OǏԔݻ=-_<;;; @__tjoo5jTxx8Bkoo[<&&&>> YdS޽{Gi~GBkG/'7+Wk׮ | Bc|1h42e BAf͚n蒒A&O~[VVY-ERO8Alv[[꯸JE(l6{$ŅC4Sv4_Nn9997WTTpGʕ+|Ȁ@c%00D"566r"}$G74:R'ɥyxK!koo/--mll|֭Y[[Jyy`]%>>^^^? 41̙3p휕P^^]`b27ț!6Ɨ\ صk'ui4Z~~>GGhŋG`)))T*uƍVR|˖}4> j~>}||MLL<ɹxH+ A0++kGdN+@yyAQ%1X,ÇTZff&񱷷...^`m۸l400(-----522ڼys LNMMmjj oq:4z?::pummm8^r):100prr!.^ZKKe0322pH077(((4i?;m3gׯt:8f߯WCCC^^ɉFqR\reĉSL[gŊŽ90qČ oVFF1FqqqF9":MC>~rرcԁk g3p/ƍ}v78 ƀ"&MB>$!C(/ߠR/ 4h >&''-!A|="1E'A1 >@c@ |ƀ@xNaIENDB`XQilla-2.3.4/docs/dom3-api/jquery.js0000644001725400016040000031436513273140077014075 00000000000000/*! * jQuery JavaScript Library v1.7.1 * http://jquery.com/ * * Copyright 2011, John Resig * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * Includes Sizzle.js * http://sizzlejs.com/ * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * * Date: Mon Nov 21 21:11:03 2011 -0500 */ (function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
    a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
    ";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
    t
    ";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
    ";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType; if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); /*! * Sizzle CSS Selector Engine * Copyright 2011, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */ (function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1 },lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

    ";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
    ";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},ac=a(av); ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
    ","
    "]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length; if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
    ").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b })}})(window); XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp__incl.png0000644001725400016040000001003213273140100017055 00000000000000PNG  IHDRp!]#abKGDIDATx{POB  H0۫(3 JբZǡ:}EQRڋLx⥕QVx\eM[@㼳]sM_g=sl6, 4 @''N@OL=@MM͖-[L=/D"t멸ӳg6@q?~z$%%g ;v0(p @''N,EOb K.MIIiiivJQQQ'N A∈/"bL&d2X,`n;Yp㡆'PZZ糳;::Θ'Oddd$$$h4ܡ&CP߸q<[lr<88< 1bǛ2eΝ;|~vv6u1.o߾iӦ ___Txۻ um///jNPa"цj4V31(X0;w͂H&l9ҥK ٳȊvƍYfQJ$77{>_K$Fs˗矸gooT* Jzֻ۷oGEE͝;O?z*Bh͚5ŋ~xxx``'PnZ|yHHj^P=!ACCB]PBB'ORpx3L͛|i| ]]]ɋ-o~GЅ ܽ{6m:t䤤|Ww=yczA^?1L???\~wOOO{{{ ::zMMMk׮+W,((ˋ9rY\n:gggwwbj T*͞?~~~q%K 6l̙6l\z@ 8qg}F.zꩾ!dgg7bĈjƍ#7ɒ[HBBBƎJV=Rh@ѣG777777SCwwwhll Br) >oH$yii)02rHV7@nnnF ӧMcǎBԩSӦM#-eee. #11ŋd2Ie444x<Śppp8~xaaaaaa~~>\Fh4[n%C\}}=na2:B󒒒m۶O>ZbR\~}qqq}}͛7W^q۷oĉ\Q|իϞ=7Y,X,r?sa[n)#Gξ|ӧO7mڔC͜`lܸ_P,w* 7.]aȤd'O:t裏>2bt|@ gggHakk-Æ ̔J |>Μ9ښA,憄(00͛Ǜ֭KKKY,ZNOOⅇǶmUV1 ??1Ǐ 6e˖455&%%lOO˗/#ET/6l3gNxx8nZY`-gϞ]d%ed/;vprr"faAx =Y41Z'_~ F  @''Nt?p0(455999zX,tXY9h4a)3&?vR銠 wO:=tz @''N@O:=tz @''N@O:=tz @''N@O:=tz @''N@O'?ŋww'GkhRh,REy,?O=z#I/PhX[[-Y2M.]=CГAGh4JB3aap`L6f̈AL=#8x*S bg Г1x<;! ? Y<~H> ++8npp@O b"4"4N=9s!dm͜7sӱt@Ox7Bh\O;;y/_>z8ЂyzoE Br=uww1i$ge\&,nE*fx,vԤe'N@O:=t2T[[r~UWW'?`X٤=77f"g-{f# 7? Lg)''g"? x)m.h}ʔ)[noiiA|r͚5IIIf!~m\^__:uT^N8QQQa^³g !ł :;;ҚtbSSS9r$++x%Iw͛7#vE5tj޽{\.xTB .lmm=<>psVVV޹sG(&''5W&zR*@$QǛ0a\.킂///_ii)AǏp[QQAu ={JFikk3P(7h4VVVtjDz24:I!TTTDD__?AgΜ zQA_|񅕕ճgH á.{8?|ptzo^|ِ{[[[PPnSqee@Dudee988ܸqgj>=5^L&,SSSbbb^xa&FDzz `LkGBՈ5k S__Ν; K^^LJԔQO$HTVVVVV6cƌUVRTܹsGRud8as/_ RF[f…fŢG$-[ S#Q n(!$ǎ}vFb߿KO?%Hkkʕ+GAvWWWBBòe˔J%zq6=a„\===vr=< XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp__incl.png0000644001725400016040000002243413273140100016257 00000000000000PNG  IHDRbKGD IDATx{ TǟAN ]JlhKEiu!]쯍.%mmmBIڮJUnL܆00m8j8Ιיy缟3}9P#T@ h h h S\\c>쌷 r}…3f-+4F/{n%wك2tQlmm:::cƌQSScbbrrrL]\\h4 66Bo۶-;;ܹshٳk׮]|-Bb\|911q۶m\.˫]koop774???@&|捰\IOO־w0d2-ZyB>l 55jjj7n޽zzz誳gϪ=ztҤIӧO q`¢>|8vX߽{WRRu֢24(8Ne 1DP( .ByxxPՎN?g̘!|6663fFFFhpoVlٳg˖-c0bڞ|X[[{{yy7Nŗ-[_Р#֬Y#l0\ 1JJJ,**KPTTdff&)Ma|ElmmC022ŒkhhD Bp$@$55uʔ)O;;g @sss||IѣG7551'Os@p޽_;22׾,"З*bڵd.]]rJ6?dgg_>>>XѣGG!z$//f;;2aE\vv/>$$ב!@|7 ኊhDAA!<<<:::,,BOOo֬Yβ%ڦ,YD4nii)jSSS}}{^zюׯ_. ;rرcb0۲eKssYЎXsw DP,!/^\lYO]ٳgŋ%-RH(**.X'A@c5jjj?COƀ@0ƀ@0ƀ@0ƀ@07D_`---U~g ===4JC^}Y! 22LI |M_nNww6KhYݭJJ>$(>ع3(Y%1Ҥ/?UXX%)mjcދ{>b%+K45qq ++cKDGiikٳGI@:]̙˖VW7HL^H͛$[rMM't٤**-gH1ܖy~SRQNN޿]Сqq~ u])A~]o0xF| /v3@Rg'o [ԟzy=|Xys@ um2 .cdf:t}΅Ӧ:%q,-GEzŮ]Wz{[#Eƨ7oSKBC=Ξ}p8$`Ț5mgϮ=) l/DZ8۫WWV)fs-[|Rag;v{׮G"9oҀYFI>ó?bfsZIA.^4>~xɀ7ooo8ᆣ+ _F\e9J =HL̹ueHzw 4 ^<[8gsƨH^fԡxk!\u7SUUL21߿MKe?aKhԤjj xˁ`@׿0p ù@0 1*+냂R}|fNO%$Vjmm[Dvqu=UYY֖~w~~ŷ߆XYG$EPHg$%=}1~ ȑQQxktlhhh޷SǍ"^c4SV?uh 8B6c5>_mB>ٳG;|'4!I0eg>?"ab>R)..ҧ\i8̙|>@߼lo&&:J{PO Gm$`׳g%ŋDӧoE?CƏ4@8c͛GG? YY-[(*!q>+4KHqq'믿fΜ.]/0Pt%L97-x7aر{d_xoT?f-xfffVVVS]]w}ihh P(QQQ#Fccc+UU]v۹ eݺu׮]C;w. @MEEEsΡ?/^(,]tI͛7>˫ ⻪&n&&&놥 6L[[׷3Bù|2ZMtCg.((211 ~1CcL񴞤1l^>|8DƎ弼<A .wbdee9fACC*#B,&&F(̙3VK4dbb ٳg-ǫX䳌#MMMa 6رAsۋ)\8~JII1$222A? &&&A[1:DѪ:ô#^nmmE2t΅ Hffӯ_U /^z9}<:t<;/`ǏGuuumhh7|#̛abb"/^|)|>=UxjvEwt -Œ145IrҐ;;-[fgeeqYYY~qq1yAbb"Zz X,f7oΙ3 2DϫW:::4۷h͛7hAy?܂נ\.СC%| iii]]@R<G#1 `^E(((@;f]?XΝI=Iٓݻbꦦq___'''ɓ7n(]޽{`0VVVk׮*ǣ.]<3{yy9ZǵL7M/_|֬Yo߾e0Z bѠrmFFƢE еÆ qFAAARRUsshׯ1bFA(44=|џwUλAD[[lSSӀ31a7$eO.{ҥ} BDZC!R1a6''4iK(_XR5 2hР͛7F(Gz-Ӧ_`8}πG]-2@`k;<#5*9 +$1c/kjq-[.loxk!3ƴi&rr;w^-Ynw[t3 1̜9"99B/^Zub>G h x o=<",-roUB~$.OJ^**-  x!-4H涕+#?|hpa2r !APݧ%&46JrB~/ظ\~~E\i'e&񓓟-@/޽ױkGϜD5OAAIIO##='N o-RQ-)y^_oFFnk;o-al5g'һ<8z?;-\8o-RX~%x -\ys~6o-茫kۚꋷXawHn1۷{Ν|HOWZ2(H|·O%%iiy￙~2eqD O^D ;}VzB$Cqqkaa++ }=' _mn!wq WZ=`p!d0য়N[edgϮUR$R [UUτk]")!GSS o9IXV]]aޫx kD}[}ႏ:r $2.{SRӴ4M 6m:I&&xˁ@&cfpLپۯΜY3z!r B*cpZ:Bz\8$}ʔxkٌ1p] ysY`Hp3a;w{2/:^$&,3CbR&>8.BΫ!1 7'8L`+s-ׯoe/^,]yp;iz$l14ԩ{?༚D>̙bh8& 1qsukbY[d2~V{{/N/̙8& CHKK1eeKddϟxxrV͙36jcsaa{Pf' ɾpAB@ [C"#C2eѣ|AuuwߝnnnP(\n˒%J߾6[2 jE!rɬhghiIO{;@Q e2듒6+mAz 1PZZڳUV# 3|F] Ӄm 18 A}(EFIuث%*)(.?u5(˗FccK\ܣ6X_\\p ыc ɍͬϲl n얖vU|H|s8wQ(a_<$p:uiim=JRTںud8#! B&M2" FccݻKdCw䗔\AQ;v pw ]Ab/jm:h4cc~yᎎ'sr 322TfͦMv**//җH1MM~;T*%hO| 9tgqq?&(Rײ+(ͽ{„! Bʕ/8rD}AddhT*eˬ/ .Z @P[[>֭Jm+d.͜y]0c ccM (++$(v0FuuW ii'%ʪY=2_ :Tnokkk9o1>|?c @z577[䑺11  1  1  oOOϏ&+**P( ٟ?.##(1,E!CxxxTWWwAwww%~CBIBAxc$''/^]ӷojj{KAMMm۶m]e7n܏?[WW_~ݻGx!,++p8L***"BUUս{B1o޼&Ubfoii5j ֭?~|kkkPS X[[t^=/_|˗Q2|rj``ffff\.ﯣֆvZ޽kdd{n###---s.իW-,,tqll,3{MMhI`V :䨩uutmWe?>ù|2-aYYY&&&c 6mhhhaa!d2崴cǢ;://AaÆ%%%k˝sX,YY#Gl@b50;@ XhFswwoV 1:LQG$!!3t 48AAA4J{LUUhON3t΅ Hffӯ_U ˢJAAAO!%66VUUt:=99o`Ǐ~Ęe(((ZCt:3ع4QHlϹ*UZZbggeaPSSS쬬,4ȋ/U.'Y,ի,Xb0߼ysΜ跷{4X __Ç[[[޽[qV0ABCC͛QzXfu@__4"꒞|>n޽,KWW755:99N]__d 8444 X-hv@0|jaaUC\Xha]]]OUHDZ [[lSSӀ`[O6Fpp1c^ĕ+Wn:TWWr_ss+Fs!0tP99Ç`fommuppo>55Cmkk믕N3`GΦR.]!ߠ4hhwSD"##i&` 1cHQQ)ѓC 44-*/fPj])Rt````a{􉚌 |@6zH1  1  1  1  _IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNamedNodeMap.html0000644001725400016040000007275513273140100020770 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNamedNodeMap Class Referenceabstract

    DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...

    #include <DOMNamedNodeMap.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMNamedNodeMap ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual DOMNodesetNamedItem (DOMNode *arg)=0
     Adds a node using its nodeName attribute. More...
     
    virtual DOMNodeitem (XMLSize_t index) const =0
     Returns the indexth item in the map. More...
     
    virtual DOMNodegetNamedItem (const XMLCh *name) const =0
     Retrieves a node specified by name. More...
     
    virtual XMLSize_t getLength () const =0
     The number of nodes in the map. More...
     
    virtual DOMNoderemoveNamedItem (const XMLCh *name)=0
     Removes a node specified by name. More...
     
    Functions introduced in DOM Level 2
    virtual DOMNodegetNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Retrieves a node specified by local name and namespace URI. More...
     
    virtual DOMNodesetNamedItemNS (DOMNode *arg)=0
     Adds a node using its namespaceURI and localName. More...
     
    virtual DOMNoderemoveNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName)=0
     Removes a node specified by local name and namespace URI. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNamedNodeMap ()
     

    Detailed Description

    DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name.

    Note that DOMNamedNodeMap does not inherit from DOMNodeList; DOMNamedNodeMaps are not maintained in any particular order. Nodes contained in a DOMNamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents, and does not imply that the DOM specifies an order to these Nodes.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMNamedNodeMap::DOMNamedNodeMap ( )
    inlineprotected
    virtual xercesc::DOMNamedNodeMap::~DOMNamedNodeMap ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual XMLSize_t xercesc::DOMNamedNodeMap::getLength ( ) const
    pure virtual

    The number of nodes in the map.

    The range of valid child node indices is 0 to length-1 inclusive.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItem ( const XMLCh *  name) const
    pure virtual

    Retrieves a node specified by name.

    Parameters
    nameThe nodeName of a node to retrieve.
    Returns
    A DOMNode (of any type) with the specified nodeName, or null if it does not identify any node in the map.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItemNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Retrieves a node specified by local name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the node to retrieve.
    localNameThe local name of the node to retrieve.
    Returns
    A DOMNode (of any type) with the specified local name and namespace URI, or null if they do not identify any node in the map.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNamedNodeMap::item ( XMLSize_t  index) const
    pure virtual

    Returns the indexth item in the map.

    If index is greater than or equal to the number of nodes in the map, this returns null.

    Parameters
    indexIndex into the map.
    Returns
    The node at the indexth position in the DOMNamedNodeMap, or null if that is not a valid index.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItem ( const XMLCh *  name)
    pure virtual

    Removes a node specified by name.

    If the removed node is an DOMAttr with a default value it is immediately replaced.

    Parameters
    nameThe nodeName of a node to remove.
    Returns
    The node removed from the map if a node with such a name exists.
    Exceptions
    DOMExceptionNOT_FOUND_ERR: Raised if there is no node named name in the map.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItemNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    )
    pure virtual

    Removes a node specified by local name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the node to remove.
    localNameThe local name of the node to remove. When this DOMNamedNodeMap contains the attributes attached to an element, as returned by the attributes attribute of the DOMNode interface, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix.
    Returns
    The node removed from the map if a node with such a local name and namespace URI exists.
    Exceptions
    DOMExceptionNOT_FOUND_ERR: Raised if there is no node named name in the map.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItem ( DOMNode arg)
    pure virtual

    Adds a node using its nodeName attribute.


    As the nodeName attribute is used to derive the name which the node must be stored under, multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash. This is seen as preferable to allowing nodes to be aliased.

    Parameters
    argA node to store in a named node map. The node will later be accessible using the value of the nodeName attribute of the node. If a node with that name is already present in the map, it is replaced by the new one.
    Returns
    If the new DOMNode replaces an existing node the replaced DOMNode is returned, otherwise null is returned.
    Exceptions
    DOMExceptionWRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created the DOMNamedNodeMap.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
    INUSE_ATTRIBUTE_ERR: Raised if arg is an DOMAttr that is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItemNS ( DOMNode arg)
    pure virtual

    Adds a node using its namespaceURI and localName.

    Parameters
    argA node to store in a named node map. The node will later be accessible using the value of the namespaceURI and localName attribute of the node. If a node with those namespace URI and local name is already present in the map, it is replaced by the new one.
    Returns
    If the new DOMNode replaces an existing node the replaced DOMNode is returned, otherwise null is returned.
    Exceptions
    DOMExceptionWRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created the DOMNamedNodeMap.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
    INUSE_ATTRIBUTE_ERR: Raised if arg is an DOMAttr that is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
    Since
    DOM Level 2

    The documentation for this class was generated from the following file: XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp.html0000644001725400016040000003054113273140101015245 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNode.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMNode.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNode
     The DOMNode interface is the primary datatype for the entire Document Object Model. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Macros

    #define GET_OWNER_DOCUMENT(ptr)   ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
     
    #define GET_DIRECT_MM(ptr)   (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
     
    #define GET_INDIRECT_MM(ptr)
     
    #define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
     

    Macro Definition Documentation

    #define GET_DIRECT_MM (   ptr)    (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
    #define GET_INDIRECT_MM (   ptr)
    Value:
    (!ptr ? XMLPlatformUtils::fgMemoryManager : \
    GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
    XMLPlatformUtils::fgMemoryManager)
    #define GET_OWNER_DOCUMENT(ptr)
    Definition: DOMNode.hpp:904
    #define GET_OWNER_DOCUMENT (   ptr)    ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
    #define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializer.html0000644001725400016040000010162013273140100021030 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSSerializer Class Referenceabstract

    #include <DOMLSSerializer.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMLSSerializer ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMConfigurationgetDomConfig ()=0
     The DOMConfiguration object used by the LSSerializer when serializing a DOM node. More...
     
    virtual void setNewLine (const XMLCh *const newLine)=0
     The end-of-line sequence of characters to be used in the XML being written out. More...
     
    virtual void setFilter (DOMLSSerializerFilter *filter)=0
     When the application provides a filter, the serializer will call out to the filter before serializing each Node. More...
     
    virtual const XMLCh * getNewLine () const =0
     Return the end-of-line sequence of characters to be used in the XML being written out. More...
     
    virtual DOMLSSerializerFiltergetFilter () const =0
     Return the WriterFilter used. More...
     
    virtual bool write (const DOMNode *nodeToWrite, DOMLSOutput *const destination)=0
     Write out the specified node as described above in the description of DOMLSSerializer. More...
     
    virtual bool writeToURI (const DOMNode *nodeToWrite, const XMLCh *uri)=0
     Write out the specified node as described above in the description of DOMLSSerializer. More...
     
    virtual XMLCh * writeToString (const DOMNode *nodeToWrite, MemoryManager *manager=NULL)=0
     Serialize the specified node as described above in the description of DOMLSSerializer. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this Writer is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSSerializer ()
     

    Constructor & Destructor Documentation

    xercesc::DOMLSSerializer::DOMLSSerializer ( )
    inlineprotected
    virtual xercesc::DOMLSSerializer::~DOMLSSerializer ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMConfiguration* xercesc::DOMLSSerializer::getDomConfig ( )
    pure virtual

    The DOMConfiguration object used by the LSSerializer when serializing a DOM node.

    In addition to the parameters recognized in on the DOMConfiguration interface defined in [DOM Level 3 Core], the DOMConfiguration objects for DOMLSSerializer add or modify the following parameters:

    "canonical-form" true [optional] Writes the document according to the rules specified in [Canonical XML]. In addition to the behavior described in "canonical-form" [DOM Level 3 Core], setting this parameter to true will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration", to false. Setting one of those parameters to true will set this parameter to false. Serializing an XML 1.1 document when "canonical-form" is true will generate a fatal error. false [required] (default) Do not canonicalize the output.

    "discard-default-content" true [required] (default) Use the DOMAttr::getSpecified attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, the DOMAttr::getSpecified attribute, and so on) to determine what attributes and content to discard if this parameter is set to true. false [required] Keep all attributes and all content.

    "format-pretty-print" true [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity. false [required] (default) Don't pretty-print the result.

    "ignore-unknown-character-denormalizations" true [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a "unknown-character-denormalization" warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters. false [optional] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties.

    "normalize-characters" This parameter is equivalent to the one defined by DOMConfiguration in [DOM Level 3 Core]. Unlike in the Core, the default value for this parameter is true. While DOM implementations are not required to support fully normalizing the characters in the document according to appendix E of [XML 1.1], this parameter must be activated by default if supported.

    "xml-declaration" true [required] (default) If a DOMDocument, DOMElement, or DOMEntity node is serialized, the XML declaration, or text declaration, should be included. The version (DOMDocument::xmlVersion if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (see DOMLSSerializer::write for details on how to find the output encoding) are specified in the serialized XML declaration. false [required] Do not serialize the XML and text declarations. Report a "xml-declaration-needed" warning if this will cause problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an encoding would be needed to be able to re-parse the serialized data).

    "error-handler" Contains a DOMErrorHandler object. If an error is encountered in the document, the implementation will call back the DOMErrorHandler registered using this parameter. The implementation may provide a default DOMErrorHandler object. When called, DOMError::relatedData will contain the closest node to where the error occurred. If the implementation is unable to determine the node where the error occurs, DOMError::relatedData will contain the DOMDocument node. Mutations to the document from within an error handler will result in implementation dependent behavior.

    Returns
    The pointer to the configuration object.
    Since
    DOM Level 3
    virtual DOMLSSerializerFilter* xercesc::DOMLSSerializer::getFilter ( ) const
    pure virtual

    Return the WriterFilter used.

    Returns
    The writer filter used.
    See Also
    setFilter
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMLSSerializer::getNewLine ( ) const
    pure virtual

    Return the end-of-line sequence of characters to be used in the XML being written out.

    Returns
    The end-of-line sequence of characters to be used.
    See Also
    setNewLine
    Since
    DOM Level 3
    virtual void xercesc::DOMLSSerializer::release ( )
    pure virtual

    Called to indicate that this Writer is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMLSSerializer::setFilter ( DOMLSSerializerFilter filter)
    pure virtual

    When the application provides a filter, the serializer will call out to the filter before serializing each Node.

    Attribute nodes are never passed to the filter. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.

    Parameters
    filterThe writer filter to be used.
    See Also
    getFilter
    Since
    DOM Level 3
    virtual void xercesc::DOMLSSerializer::setNewLine ( const XMLCh *const  newLine)
    pure virtual

    The end-of-line sequence of characters to be used in the XML being written out.

    The only permitted values are these:

    null
    Use a default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by 2.11 "End-of-Line Handling". However, Xerces-C++ always uses LF when this property is set to null since otherwise automatic translation of LF to CR-LF on Windows for text files would result in such files containing CR-CR-LF. If you need Windows-style end of line sequences in your output, consider writing to a file opened in text mode or explicitly set this property to CR-LF.
    CR
    The carriage-return character (#xD).
    CR-LF
    The carriage-return and line-feed characters (#xD #xA).
    LF
    The line-feed character (#xA).


    The default value for this attribute is null.

    Parameters
    newLineThe end-of-line sequence of characters to be used.
    See Also
    getNewLine
    Since
    DOM Level 3
    virtual bool xercesc::DOMLSSerializer::write ( const DOMNode nodeToWrite,
    DOMLSOutput *const  destination 
    )
    pure virtual

    Write out the specified node as described above in the description of DOMLSSerializer.

    Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

    Parameters
    nodeToWriteThe Document or Entity node to be written. For other node types, something sensible should be written, but the exact serialized form is not specified.
    destinationThe destination for the data to be written.
    Returns
    Returns true if node was successfully serialized and false in case a failure occured and the failure wasn't canceled by the error handler.
    Since
    DOM Level 3
    virtual XMLCh* xercesc::DOMLSSerializer::writeToString ( const DOMNode nodeToWrite,
    MemoryManager manager = NULL 
    )
    pure virtual

    Serialize the specified node as described above in the description of DOMLSSerializer.

    The result of serializing the node is returned as a string. Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

    Parameters
    nodeToWriteThe node to be written.
    managerThe memory manager to be used to allocate the result string. If NULL is used, the memory manager used to construct the serializer will be used.
    Returns
    Returns the serialized data, or null in case a failure occured and the failure wasn't canceled by the error handler. The returned string is always in UTF-16. The encoding information available in DOMLSSerializer is ignored in writeToString().
    Since
    DOM Level 3
    virtual bool xercesc::DOMLSSerializer::writeToURI ( const DOMNode nodeToWrite,
    const XMLCh *  uri 
    )
    pure virtual

    Write out the specified node as described above in the description of DOMLSSerializer.

    Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

    Parameters
    nodeToWriteThe Document or Entity node to be written. For other node types, something sensible should be written, but the exact serialized form is not specified.
    uriThe destination for the data to be written.
    Returns
    Returns true if node was successfully serialized and false in case a failure occured and the failure wasn't canceled by the error handler.
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp__incl.md50000644001725400016040000000004013273140077016743 0000000000000027f42d35e64fc7839336631573db4feaXQilla-2.3.4/docs/dom3-api/globals.html0000644001725400016040000000606313273140100014505 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all file members with links to the files they belong to:
    XQilla-2.3.4/docs/dom3-api/dir_000007_000000.html0000644001725400016040000001604313273140100015244 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMException__inherit__graph.png0000644001725400016040000002021413273140101023437 00000000000000PNG  IHDRpI>bKGD IDATxiX3I]DMDPYҫ(؊+j+ꭶV Zk+OnZW"P.YQ aO _i ~0g7''~ I> :cf .zڵk% ݅5a27ovttz1G7n݅5ʚ:u*1 &YYYt5cf A4pnm //KP B򪪪fΜd2q[~ j5k:tFv˗/!гg"##հ#14رcT*_/^? ږ.]ڿhkkܼyc0G9;;M577*n\ GQUUdɒY԰S&&&fff#F/N8?l۶wޱKLL><^Gv׽7.B*655Ƌ/ V~iӚBs !X8uԩS&&&gϞϘ1 ))iƌ7onii[Slw4{tD"QB &Oxy7Ù9s&wǍE+WƎz=rUuڵsN:u"hٲe_[ZZ)SDDD޽!1ɓ'=zo O0ZΝ;|Ν;q8PrrrUU՞={$?͛7'$$TTT:tUP(?zܹsPILLmEϟ?GS)O>ŷGBG]Y( JUϨ\Uw>}z_}ov]v!N<)W_[[e˖#GW^ݹsgtt={a cbbL2tP|򉹹Stttnn.^x#Fdff.\iРAk֬qssSJ$$)lvHHHjjٳg6o R)`07nxxxɮhѢIgTU.]jkk;lذEQK.-_iԚ!6100 wQ ?ꮾ>aooKT244LHHHNNNJJrqq={QT5Jkkk\iYY eee...qmݺ5**J9jjŽ(LߠVUz,|>_*APk!X,oyŋNٵk׺uBcc㄄QT0^aՃ BDFF*m.JbqffuN>y$y___|7001buX(9rD6=<<ڊo޼jժ8BeeBbJҿQUU8Bӱ45*$I~7oݺuuo߾}555?^zӧe[߿￯QՊ VHbtuuU5omm={mPCCC}}}]]]aa뫪O4|>gVVVK.5332e ޶m۰ad'(n\;vxrB|MbVUUyY@;cUN>0k,rm۶yxxFEEر㣏>"?::j5gP+ }}}rVl6{ڵ{yⅵu\\Vռoŗeo#>c|s޽ԩ`=={&%%%&&>j„ :::G2uTN6N|Ҟ \jP(0aœ9sL|p9}';vXd̙#} AM;~3;hAl;v:g O__?,,*Zgbbg]Z 1@3cfK?)RZ!!6ϯod&utu%Kvkm64Hb$ )#D" R$R)rp` ¦d1VVV,/YX,e0$)E0&姑 z==OP[[Q31ԯߟH; !"L55e\1,ʪ@ÿ`fa ?b`0;^#KCCbId!&APgbD"40@"ttFF#G,[6ڵ|~vfd~u`:А;X %@ @P&aE:|[jٳZXcfHGi :x.[sp0Q\9sԩS[XvqZZH$$iiBH ;<=.]ZH$ql'N55 V *,ش)wĉΞ-;Sd28Vb⼭[+Q"ҥ{/fhٻ-["LpX V\?wÇs^lQgyh EЧ=xPVpTǵ=¼~{X,usWKAb1mlL\j򢢒K$ Bb߿@`EEQQI55Mb!d2BB<!ddܽt@6iA_' E2X짟9uH$!",{۶zzjS,twH$07qY'G22JR o:u B_KSS K..aa^\@@>+Lt^d^&qc4L9~|XӕR)yN%WrG^ `04,{ܸj0Z2x{D"d2/4AuFFIzzI^^K`I%vY SS( A3җØBMy!gX'z( A,XVe%…bƍ2&庅x]@+fdMK+rD"œBC,-ar<ƀf ¸sAիSS .^,ĿQ1eHgg41dpAwQ{87qzzə3kkoTa 25@*jrԹsEUU x(ЛAu ~o'L=v+͢4a zdp0+IM-y 3f̐PCC? :Aܽ ׳g˗x%YY w\ɓGkSma dp0!xrTF̻#{ь@a ޔl f=~Qaa..t c Xm::Ŀ8=$509 1x5a~R)yf9wܹZkkqn@. 1Ur&LǦ4= Ag {^ӗ򓣂=`rxS@ ^¸yҥ{iiYYI1!,;,ˆҀ0 {6$#KǠ I< Hwi@@¸ EZZ^$\7OO;K¸ šF{\.L¸ρ 8ƚH*%ܩJsmaa09 (aW@k.cMAuFFIzzI^^K`I148|DO% {;`a ( y7ʘL+aff@wi@Ra w \y HP/KK {`tB zajjŋw7*L 4 q :a ]8=̙۵(D32Y,9\fned4ͶΰXl}(ͶbBھ(%Irʕt!lk#q,-|7ު*X|qMM5SӧOzTVV\w}M ƍ ݲJ__>[~$I|nf@w!@(U>8""B]F d^z (eR( A40&d8::Λ7VvX///CC÷~T!C]]8q"Aeeex|CVKKKLL̠A7dȐ8PX \FYYL.Q==(=ztAA鹱zmu O)))l6Xnơ]YZ-ׯWUUUVV&%%5559۲e˭[֮]?s\DWxIaa!)>/_/<})))rǏm5kЎ֣Ì6EEEC 1cF~NX@J=4VGnݺ+V566.[,..Cvϟ?rT*TUQ*;رcrK4BÇ]Ta|7&&O,S+8::۷ Yn׃N8ڦ1+Wӣ>|أ Bرcg;R0AԨpzTn,"""""[6E/&Irɒ%>>>J[YYjllTZܨP: x;3g|Б#G\\\Z[[B"(66<66V$YYYqqq7oLB(55ӓ899O!X쩃NN#dɒg⻇ڰa:tߍ8~8BMyڵ˗=HUuoJJ+}}}BrSAÆ 355o:V`a@ZZڈ#k$Ç?>-- C^鱀Jf<?l޼9)):::JwO+aQ;;;ͯ(h(<7o󫫫-,,~7p˖-|ӧOF'NtR||[QQQqqQbbbTjiiMLL:pjiiٺu m)//Ą$IhԵk,,,p[ZZ޾}oVOOuŋ666\.w֭O<*((h+U=HUuoPPPiiiNNs||K9s̙0a£GqaӦMC|ozw0̨aٳe˖-Xof/\w Ro> .x_*677K$UUyw 333?ϵkג$y!.+MaLX,ٸq;矩bTRɮwl$y1gggd޹s/?y򤳳3.xUرj cf ޽7~޽Dr&r;5I<|0G>>VIJSLa2r;:88++$I|ZBFk^3޸q#ɔpd{W/p8b("IիӦM;w\'UQÇۖ<OݻYYYR4<<|Ϟ=darꊋT*]~bdd; w@ +r8Bv͢" {AW ^3a[ZחNJJʘ1c,X Dׯ_aa! [Uh@q_$IOW\p8Od1ƥrQ:رcG``Ufff|~NN^/X[[?y/)((@ J'N WռHܽ{{gΙ3gƍB[l 3ի</<2dȆ B|EgϞ=a„ǏOQ"o3a&655$ 8|kkիBt/^tuu%BiZ4PθUT:vXDBdGGYdQ4cXvT*w-۷ogZN:eeeU__OdSSӂ ?`ŋV/ cbbg͚rVCt\vWvvvs̑Ҳj*www===77M6cVVBhΝr˕񞞞stt\f uCk =ǻ~33˗ H4f;wV\ka LH$FFFmLMMv5k,sssR*Hlll2p@U5Uauuu3$I2dKq ˎ Ruk(y}P[nZPP@MNNƟR'Tg ^UoJ MEFF緵_~ѢEtPEw5EGG]V^^[[pB XS'&&]X,֦M6mDc 0PAF)ha 1@3%>}}MBBBrr2U-=ܸqKNq2;kYZ711y455ҷuݲVg5IDATnG) 40ha  X:IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSParserFilter-members.html0000644001725400016040000001300613273140100022751 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSParserFilter Member List
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMElement-members.html0000644001725400016040000007457413273140100021522 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMElement Member List

    This is the complete list of members for xercesc::DOMElement, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMElement()xercesc::DOMElementinlineprotected
    DOMElement(const DOMElement &other)xercesc::DOMElementinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttribute(const XMLCh *name) const =0xercesc::DOMElementpure virtual
    getAttributeNode(const XMLCh *name) const =0xercesc::DOMElementpure virtual
    getAttributeNodeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElementpure virtual
    getAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElementpure virtual
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildElementCount() const =0xercesc::DOMElementpure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getElementsByTagName(const XMLCh *name) const =0xercesc::DOMElementpure virtual
    getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElementpure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getFirstElementChild() const =0xercesc::DOMElementpure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLastElementChild() const =0xercesc::DOMElementpure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextElementSibling() const =0xercesc::DOMElementpure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousElementSibling() const =0xercesc::DOMElementpure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getSchemaTypeInfo() const =0xercesc::DOMElementpure virtual
    getTagName() const =0xercesc::DOMElementpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttribute(const XMLCh *name) const =0xercesc::DOMElementpure virtual
    hasAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElementpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeAttribute(const XMLCh *name)=0xercesc::DOMElementpure virtual
    removeAttributeNode(DOMAttr *oldAttr)=0xercesc::DOMElementpure virtual
    removeAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName)=0xercesc::DOMElementpure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setAttribute(const XMLCh *name, const XMLCh *value)=0xercesc::DOMElementpure virtual
    setAttributeNode(DOMAttr *newAttr)=0xercesc::DOMElementpure virtual
    setAttributeNodeNS(DOMAttr *newAttr)=0xercesc::DOMElementpure virtual
    setAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLCh *value)=0xercesc::DOMElementpure virtual
    setIdAttribute(const XMLCh *name, bool isId)=0xercesc::DOMElementpure virtual
    setIdAttributeNode(const DOMAttr *idAttr, bool isId)=0xercesc::DOMElementpure virtual
    setIdAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName, bool isId)=0xercesc::DOMElementpure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMElement()xercesc::DOMElementinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeFilter__inherit__graph.md50000644001725400016040000000004013273140100023427 00000000000000361843dcd34d4255bb1c6872ed140f52XQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp__dep__incl.png0000644001725400016040000000572413273140100017675 00000000000000PNG  IHDRp$bKGD IDATx{Pjm'(A^>%VFA[uPktZ(QF(8S-ttF[qFq|bq[a| TQ^"ԟ?u (Ā0$QB:5!?g{v,{(Nl`Y:;=Devmh!@ w(//p… ;ǏG=?E4ӳ/xA ^{cǎ6mP(p8QV={V,dϟ??,,mBQ]ǎ婩|>-0[TTgϞ-,,lkkr#F@߯o^ Ǐwuuj ?aooJR(:::FGG={̙3bXT[[\)oѣ{rGU(111} 2lڵf_q8ѣG;99}kFFZu91|HtuTaƌoߦ]N>xsk֬x'&&oV0>`񃢨ಲ2TϏDbȑaaap۷owꫯ7f/_L/;***88… J|~II?rر.dD֭K "<<<((M9L3{xx<^zFE4hyԩ*:;; MKKknnfqqqbbbttP(wޟip'NK wӧoߞDݚҖ(VIk˺{Qo>s̴#Gx{{߸qcʕ7o4Xsɒ%_5N(zxxxyy^L?+Vy-Algggq(((ؾ}{JJӧR#_jlݺUV?'RSSׯ__TT...˖-vri ‹!]PP5K[C\e˖qkV/xA σ'ʋ/\;&B8+pmm?x6o̔QZ* M\/>>ұ0~deU]]V՝s^TU[:bzP[[VVV/VGff- 4kRtDºP*Wy;l~eC'֭Gn#NQTff?֭Gff/[˕ XrZ2:>THNJy`Оa]qbV?jj^Z$cz4738ccC] bz\TěFn8fgs]]}W|Ƕ66oO#u.m{?jB ^=D z/xA ^=D z/xA ^=D z/xA ^=D z/3+ȑ<oWkbN&i40 t6s1 23!NeFD z/,`ĉz:;;cccM0k֬xFCot~o( Ӄ庸YYY~Ç*͛&MZtiyyy]]]rr25iAQڵk^{Avvv(.ŋ=~://q H(ϝcbb^~m8P{k>VE,s8N---z;mt:\fQA=w}ё 555x겲2OO_~Š׽jׇ)X,zYlr功̋۶msppXd <oٿ}42QSSgqqqy@ۈ<1c]:xg(+34x<0ydzʠqBNwöy@2oRIom'11Qet$%%M0iƍ*ʠ׽2zXtM1ʰ& ;=Fm" ;=E")F0^=-nܽ{wܹi7,,̼>eܹfl|O@ z/x?dIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNamespace.html0000644001725400016040000015132513273140101021331 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathNamespace Class Referenceabstract

    The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...

    #include <DOMXPathNamespace.hpp>

    Inheritance diagram for xercesc::DOMXPathNamespace:

    Public Types

    enum  XPathNodeType { XPATH_NAMESPACE_NODE = 13 }
     
    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Public Member Functions

    Destructor
    virtual ~DOMXPathNamespace ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMElementgetOwnerElement () const =0
     The DOMElement on which the namespace was in scope when it was requested. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathNamespace ()
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Detailed Description

    The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks.

    There is no public constructor for this node type. Attempts to place it into a hierarchy or a NamedNodeMap result in a DOMException with the code HIERARCHY_REQUEST_ERR. This node is read only, so methods or setting of attributes that would mutate the node result in a DOMException with the code NO_MODIFICATION_ALLOWED_ERR. The core specification describes attributes of the DOMNode interface that are different for different node types but does not describe XPATH_NAMESPACE_NODE, so here is a description of those attributes for this node type. All attributes of DOMNode not described in this section have a null or false value. ownerDocument matches the ownerDocument of the ownerElement even if the element is later adopted. nodeName is always the string "#namespace". prefix is the prefix of the namespace represented by the node. localName is the same as prefix. nodeType is equal to XPATH_NAMESPACE_NODE. namespaceURI is the namespace URI of the namespace represented by the node. nodeValue is the same as namespaceURI. adoptNode, cloneNode, and importNode fail on this node type by raising a DOMException with the code NOT_SUPPORTED_ERR. Note: In future versions of the XPath specification, the definition of a namespace node may be changed incompatibly, in which case incompatible changes to field values may be required to implement versions beyond XPath 1.0.

    Since
    DOM Level 3

    Member Enumeration Documentation

    Enumerator
    XPATH_NAMESPACE_NODE 

    Constructor & Destructor Documentation

    xercesc::DOMXPathNamespace::DOMXPathNamespace ( )
    inlineprotected
    virtual xercesc::DOMXPathNamespace::~DOMXPathNamespace ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMElement* xercesc::DOMXPathNamespace::getOwnerElement ( ) const
    pure virtual

    The DOMElement on which the namespace was in scope when it was requested.

    This does not change on a returned namespace node even if the document changes such that the namespace goes out of scope on that element and this node is no longer found there by XPath.

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp__incl.map0000644001725400016040000000011513273140100021147 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp__dep__incl.map0000644001725400016040000000023513273140100020041 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__dep__incl.png0000644001725400016040000000761513273140100022110 00000000000000PNG  IHDRpbKGDBIDATxyPS$l [Q)e"2JB EӪX+ժ A ^- ()yXYV@$HHsCEB9Y$_B.#0.h4 p#;wU \.˥F__YY٥Kǻ(=z2={_E@DEE) p '#rqqg͚`E5J$$>/ ̖-[~z:N.kbbry wQVVbbbB((lR1ZZZ端Pc^WgCC۷U!T:Cḓ[;wnڴi!Hdll\SSs#Gh4PSSӧOj;ܼo>6ٳcǎuww*CvRxRbf̘okk?Y,ѣGLMM-[񚚚nܸA`ggWPP@d…ww-[p8eccZ\\Ť3LMM?vV4AZ۸q##M:uyyy䨳sAA+V "GmllRSSUI 9*Jy<7ǓJ@ 6sOWrNzECCuФɁ __D__5kDGG 뫓Zw}wIrˋ|S\q+>|T[yyׅ M...>~xDԴ!>ٳgbӧOBNNNï?22'22255YqD"b?<{)SIBGHLLH${]fͥK:$HB<|>ŋԓVUUEGGե ZXXHCnQںo߾=!!?}/48]!F[|9ywӇ_|ѢEֿ 󩩛7o^rʕ+}||rss}}}I7n 300077 *++bXKKիR֭[۶m322277ϨJ[nΝcǎy wuu|OOOozȭ:u2̥K"ƐSSS++͛7Sl5?#M6c @`gg8@ FW9J$ggg+++++$J@];wСC'N '555]ZnLLLFFFbb ;::d2 !V>%nffjnn655%[fϞ={:: ̙SRR?|=V 6sL҅fffT*Ge 'srr/^L%''Rŋ/H$zayyyDDĈ߿yX'իv\.'_7|3&&|s>Lw^Tk׮l===& 566mmm1 ̙3Ν*;:IǏ1T=V 򒼾!TWWGtQQVUU u֑>ӎ𲲲;w^^i˗=zJơ)o񆇇GTTTiiP(|ѩSH$e˖777۷o&"22`hkk3 cǎ B򆑛y;)77W$]|yp_ 555555YN_kIJJZr%8b=ׯ_UzR?~>L㨨/3gP{u&y̙Dhddrsm˕+WY9۷o?||||CC˦MTfLfWWDmٲ ˗iiiܹ---{!cO2> o6iii'&&&3)YbmD4.~:9{n:N͠Brܴ43sss-,,B +W;}}}*_3~36RSS_e[BՊ-|>bPkk"ųf"}o&;;;Lf[[u3]]]jǓ'OJKK-,,ݫqĭr\.w& FkגO]4s̡otuu׬Y"Í:|0qttݪF ~B,аRiJ;;;j妧!ccc+pȁw}zQChtrS>#ro߾}!{AOOOeҥw#mC!bp#yE=y PBPXX]SSNNڽ{wKK͛7MLLBBBCpPP?>|aaaڵFMtl孷knnV'""bL&s޼yDԲuFAABĉJHBd0KHH={mbb2]ߕ *---`#ZnBhr|Q㎿7NO*7N x<ޫ4j p I䍱I޽{K,]ؘ$?b,Yd$y&I8AN]mIaBIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__dep__incl.md50000644001725400016040000000004013273140077020462 00000000000000870155e93bc25b5f36fb94bcca0155a5XQilla-2.3.4/docs/dom3-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.md50000644001725400016040000000004013273140100020650 0000000000000095bb9e082257a94de97456311ff544a1XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__incl.md50000644001725400016040000000004013273140077017637 00000000000000cd7c84a588c68b6e05b590bda806bd7eXQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp.html0000644001725400016040000001117513273140101020100 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSSerializerFilter.hpp File Reference
    Include dependency graph for DOMLSSerializerFilter.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSSerializerFilter
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7.html0000644001725400016040000001137713273140101020704 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xqilla Directory Reference
    Directory dependency graph for xqilla:
    xqilla

    Directories

    directory  dom-api
     
    directory  framework
     
    directory  utils
     

    Files

    file  xqilla-dom3.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp_source.html0000644001725400016040000003371213273140077020672 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMRangeException.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMRangeException.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMRANGEEXCEPTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMRANGEEXCEPTION_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    36 class CDOM_EXPORT DOMRangeException : public DOMException {
    37 public:
    38  // -----------------------------------------------------------------------
    39  // Class Types
    40  // -----------------------------------------------------------------------
    57  BAD_BOUNDARYPOINTS_ERR = 111,
    58  INVALID_NODE_TYPE_ERR = 112
    59  };
    61 
    62 public:
    63  // -----------------------------------------------------------------------
    64  // Constructors
    65  // -----------------------------------------------------------------------
    73 
    81  DOMRangeException(short code,
    82  short messageCode,
    83  MemoryManager* const memoryManager);
    84 
    92 
    93  // -----------------------------------------------------------------------
    94  // Destructors
    95  // -----------------------------------------------------------------------
    102  virtual ~DOMRangeException();
    104 
    105 private:
    106  // -----------------------------------------------------------------------
    107  // Unimplemented constructors and operators
    108  // -----------------------------------------------------------------------
    109  DOMRangeException & operator = (const DOMRangeException &);
    110 };
    111 
    112 XERCES_CPP_NAMESPACE_END
    113 
    114 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    Definition: DOMException.hpp:52
    RangeExceptionCode
    Enumerators for DOM Range Exceptions.
    Definition: DOMRangeException.hpp:56
    Range operations may throw a DOMRangeException as specified in their method descriptions.
    Definition: DOMRangeException.hpp:36
    XQilla-2.3.4/docs/dom3-api/functions_0x6f.html0000644001725400016040000001703413273140100015735 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/inherit_graph_21.png0000644001725400016040000001000513273140101016017 00000000000000PNG  IHDR3 +bKGDIDATx{T'$\D^ %bpZ[_ Jh( W)*T)jDZ@B"l ?=<_o@ #}w@ /a B  C@ 4tM}1`X3g$[hh1 w/իW[[[[ZZ.\[o999uvvܮ.wwٳgoœ&M З`/DmbP__ +WΙ3noo񉏏7Dm~='@MT'=zy!ExxxAA Y" V__q ܱc@ ܸqC$tX@*zzz&%%h??]v܂rXJkk늊 xxҥf硡A}8hPճa@AA{7tKJJb1'Nr8|~__ ;wY$%'';;;FGGS!u/Ϝ9ebbzqe2FwbjS'NL2Y,Veeyeee͞=9rMT¬7xȑ#r5z蘘'OEgTZZkffbK>q`0#u+/_V/111+Vhkksppq4 ¥Kﵵ~~~|IBCC/\Q[[{m> 0#G0 2224K$C%͛#GqѡrR?>łKHDbnnj:{,111 hjj%zЪvtuu1իW5DT_^VϏ6~!4c흚J[[[a$8O0ԩS0ݻDZK,gffvvv*nB]Яk׮6lغu+yyy:5riiit:믿7zazٽ{0 S(UUU=}^]ZB3_8ǏSSSI{8~ʕe˖YXX̜9￧p֏_|ł ߋ/%E|X= hkk?/^C~rrr{{y***O>pw:tuM6^e`#F(++{իW|~dd$"A#xY__IIItwwk,aÆٳg:P #xq7|ʟD5occ?--R33+O'~:ܷo\z>}fg]]]VYvT*%xoo/wtt$_*^87dPS<$pvv"/uq0l˖-;w믿_x]xbx;Tooo333ĞHE=h'|2j(ggDFFk\?L ~[P*fJNN|>̙^F?=vXhh(YnݨQ/*EjWk$;[fo3f i/~6!b3gp8$??R @ dpsѣG_x1%%evvv111֦(--655;vW_})F[~}YYo-[F㹻]WH$+Wurr "##c񖖖3f̸qŹkDԦO`Xڪ"+WլNWWOQͨSؽ޽?}}~@7 x?xyyyO?Ç?/\ ٳ'77L$^R4,,lÆ MMM۶m[zT*ݻwFw;;CrDR0=c jjjO>+Pra:~رs?={V(~癙B.)))!!A۹CT*Hsdg[[uUp'OmXz{e1m<^~Uo .)JKe߿ϼϟ7m4hD,Y( 5kBW\\\zz,I(WBBR0tժUfffneeFFFē iZXXw͘1F<裏6n8o<(N>ԩSǏ+ ͭF%[۹]UyM3*P>5VVso/LS϶Sn|E0jI} ! 9OlmmE" q7겲$^DM___~~… ۵)fΜ9fBƍ r5Vkdd_BNId2+ ɓo-j=SL&L`ݺ:Nΐzq 2{쁇Çܹm۶  bsa0 {p\ao߿ݕNьPًE=Pfȑ2"@ I0=0T~!C0T~!C!(=***w/CM)2HC''" bA_PA@ _PA@ !@A9IENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp__incl.md50000644001725400016040000000004013273140077021071 000000000000000ec49aa9ad69661593f33b6e3900ff1fXQilla-2.3.4/docs/dom3-api/dir_a966b93a1c6e79656fff2d418d5de6c3.html0000644001725400016040000000550113273140101020404 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    utils Directory Reference
    Directory dependency graph for utils:
    utils

    Files

    file  XQillaPlatformUtils.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/bdwn.png0000644001725400016040000000022313273140077013641 00000000000000PNG  IHDR5ZIDATx DP1lm rj.e D[ɾ|6V3?Ls'(}>+ Kch` ^ލnIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_31.png0000644001725400016040000000627313273140101016034 00000000000000PNG  IHDR%"*bEbKGD pIDATx}PTU"Y|m,,-ZH/hP:&:T8b~`3RaX0#B*c8X+R0b|SJʮ ys0 `;K`0p=`0G Zp t:KYxeeeOp/fΝaaaK,yꩧPj3>0}}۬G*JT*ѥ+Vtwwyyyk֬!^< Źsб@ @MLL ;77G4P˖-D길8鐐4ۗ/_>33C9`bbHLF.fϷK?%w}NZ0ZAcч!ɒ^8q[P;裏j4lNNa999hw___X, }}}~Tbb8ydhh#JMM}FGG9΅ _z{{sssQ;{laaapppooT*]revv)-ZhѢ?AVR+J18F,ݮBű1I}w//^D:;;߸qà\޽{ɝ$J6lXbPR17xchhUׯU*W_}qC2:\vm___gg'/,,$GAVpJ!+W"k Eee%O$r)G_x᠗WO.olY!Tjutt/}H>O=R(</44ف A---O<@oo/0 ]tql5>>* ^?99LbboV^^f͚5}{{͛7KIl~gZPWH,Cm,Hb!uuu|>@h)333?꧱#k[[[QSWW`,RRxy{gz{gT"G R }ioogX42=GR#WW״ݻw.K@$AAAAAAZ[[?#PgJ|d22S"ĐH$˗IIIo} 6kZX|>111!!<7hd2nݪV)#vv7m);& n`v8кvNC|b 4SX9?;v-!gϘ?ٜf @Vtt4D"!O Mzp)O=,//"6,NT"92k`` $$ HwEjz}}}̱c֭[wuSf!O_|EtDEE|FSRRcB%""brr---&6<5Œ9UNgϞqOO'N yFFFbb"zRrʷ~ RT*Zj֭ZSCCg}jM?"℄T*ՉӧO566Zjjj eAAAQQQD2LGFFt:4 MNN&1vB`0OF/zzz;d]@Z?5aTTL&/((0pJ!W^y%::_*gS7R#ump<2ܵY~>PjEEE}7/_iez@[>#:p?~厏CU*믿ᑖhrqqINNV(Hnc2MMM4!㓒r5,juVVVHHspp޽{WbLWWW/ZDW]]]vvv 6 eee>>>|Irr2͞XdzDB#G,]b;id)_}U.jMM|VTVƖqfYa=OHJ-'''??]vEFFnڴA}HUi0#ˍ,fhM&=CC GG{NxKOAw=胿~o/6~6ߟUܜeK.F&y0䡇ڶm!֎mDl6]QQai+06p=`0G ZX  #s촴 _0}||Ȓupp0H]Yڄ<3SƽB'a# c-z`\0Q'zyIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.png0000644001725400016040000001102613273140101023705 00000000000000PNG  IHDRp"-IbKGDIDATxyTW/IADְTeARZm+U6EZԃ* ǗZcωJ#.%J_b(m $m~iƈ4ν}~sg&EAa@7F h.H=JKKJ2I 3gj^2ʍ7, 2`2j=EI T(\@@p4 oQTjDDc*ɓ1fCl777C1c5=^}}3f^(|>PSS9<< H$ 8xD"y Jmjj sΑ#GBBBsssѽ)GCDGG]t JUC(L&[/_兵JVVV[߿ҥK+V8|0588cǎUV^"H>ǘ]v=B/#aÆ AAAEEEh%J^nʕ+D/\b7|ЀF=<mڴ$2E( PSSG}S{֭􆆆Ǐx<}z{{W@^JPG#;''x:rѦ+Wh|>ŋ?qƢp9ATӫXN= MMMIIIVrvvF++++7olaaaoo{ >&&ݽ&**~֬Y)))sU% d2׷BOO… *çLb 2@ ,^]\]]NSb`` 300|DR[[@Pׯ__UU%'DjiiTWW*L&lڴ0446~3g<===<<֯_g:+-Q144;v؞={ lsʔ)hڢ53f̘1c(##<qȑwy',,>Poo~!::Zaנ@"#ɬM^ ¢EX,[lقG Dܽ{P(Tx PӧfB3c (Ϟ=;{Jcc㼼<_ @"LMMє44tŋݻwӦMoҬV%$J]]]K.U3o"Ok}l6{dd~;|82K2\r6u]vpFF˥P(˗/Qƍ痗kyP"OO=\@@p4 *.f?D5go  M D"X,yoGG*͛ hiK\pUDk\@Dii.QWXZzkL.QfdDr|X,7'Z$o #hY(ޟX= h)-m"hHԁgyQ^WW~DH"UU'VLF*7h9Өaf8!b&!(?X_ϖ^ZQd2˟(U h(/ r@oC@@IIG2RRrSz&!(yssL(47wtt7b+&@^" O|zHl1@~2.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h.Q F h>N@mC&SdD60Os$&&.\Pk!ڧ!//OF ^zTA&x~^@p4 (\Qn߾M"JJJ22 БϯuttԄGrhTaaΝ;J2g622R *'(/_<}N 43 ;w|{AG&:;; Ϟ=CsxgΜI$6-;v?>}6 \.;w_---njj*:Xf GB$<<|ɒ%>liiqqqF._ŋ¹s,FehTpp0ákIeO:ncc/VUU9::GL9AyN{FdV" ^^^̍ܿppP*^|=Fa2*2 ̘1{7!RXXl2Dn=svvBcV4\$)lH$"wEJKKQ---H$++A>;v`5Q8ZWW'/@eO'N`ǡ=b KtqqB̙9ATGNJ~ A\KKKtFQ0^YYL& @͊b={899~ҒbM2G>ùcetEwZyYuuu4O>)Fe*\TTuITr R5AyEGGlbii9jddD$dP_࠺m۶`D"1(((66߷ LKK{qKK/F5/]]ݐM6߽{7##Ca,ZH"l۶-22RI 9D7nLNNtRmmmvv6cH#0ڊrQ==?q@`0A{N>nb?644ĆVx]rE~'h4=xכ ܿB瑑 %11"..N__1bW'@T*spp066-++377Wฯ(v$===,,LkUTTܹsd0k!mmmްamiihjj׮]ꫯ341rxooo ,{{{bcc344z\L"rrrrrr<.3 h.Q {= ,Ӛ vf'rד= ٍQV^@p4 (\!'FIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeFilter-members.html0000644001725400016040000002207613273140100022152 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeFilter Member List
    XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__incl.map0000644001725400016040000000010113273140100017710 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__incl.map0000644001725400016040000000070113273140100017470 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCDATASection-members.html0000644001725400016040000007067513273140077022305 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMCDATASection Member List

    This is the complete list of members for xercesc::DOMCDATASection, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    appendData(const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterDatapure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMCDATASection()xercesc::DOMCDATASectioninlineprotected
    DOMCDATASection(const DOMCDATASection &other)xercesc::DOMCDATASectioninlineprotected
    DOMCharacterData()xercesc::DOMCharacterDatainlineprotected
    DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterDatainlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMText()xercesc::DOMTextinlineprotected
    DOMText(const DOMText &other)xercesc::DOMTextinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getData() const =0xercesc::DOMCharacterDatapure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getIsElementContentWhitespace() const =0xercesc::DOMTextpure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLength() const =0xercesc::DOMCharacterDatapure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getWholeText() const =0xercesc::DOMTextpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isIgnorableWhitespace() const =0xercesc::DOMTextpure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    replaceWholeText(const XMLCh *content)=0xercesc::DOMTextpure virtual
    setData(const XMLCh *data)=0xercesc::DOMCharacterDatapure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    splitText(XMLSize_t offset)=0xercesc::DOMTextpure virtual
    substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterDatapure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMCDATASection()xercesc::DOMCDATASectioninlinevirtual
    ~DOMCharacterData()xercesc::DOMCharacterDatainlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMText()xercesc::DOMTextinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__dep__incl.md50000644001725400016040000000004013273140077021501 000000000000008a29dd3d730f47a3227055f361f06f25XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCharacterData__inherit__graph.md50000644001725400016040000000004013273140077024077 00000000000000f9ed1cbd8e74f8e319f57f78e99b5909XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSException.html0000644001725400016040000005546613273140101020676 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSException Class Reference

    #include <DOMLSException.hpp>

    Inheritance diagram for xercesc::DOMLSException:

    Public Types

    Public Contants
    enum  LSExceptionCode { PARSE_ERR = 81, SERIALIZE_ERR = 82 }
     ExceptionCode. More...
     
    - Public Types inherited from xercesc::DOMException
    enum  ExceptionCode {
      INDEX_SIZE_ERR = 1, DOMSTRING_SIZE_ERR = 2, HIERARCHY_REQUEST_ERR = 3, WRONG_DOCUMENT_ERR = 4,
      INVALID_CHARACTER_ERR = 5, NO_DATA_ALLOWED_ERR = 6, NO_MODIFICATION_ALLOWED_ERR = 7, NOT_FOUND_ERR = 8,
      NOT_SUPPORTED_ERR = 9, INUSE_ATTRIBUTE_ERR = 10, INVALID_STATE_ERR = 11, SYNTAX_ERR = 12,
      INVALID_MODIFICATION_ERR = 13, NAMESPACE_ERR = 14, INVALID_ACCESS_ERR = 15, VALIDATION_ERR = 16,
      TYPE_MISMATCH_ERR = 17
    }
     ExceptionCode. More...
     

    Public Member Functions

    Constructors
     DOMLSException ()
     Default constructor for DOMLSException. More...
     
     DOMLSException (short code, short messageCode, MemoryManager *const memoryManager)
     Constructor which takes an error code and a message. More...
     
     DOMLSException (const DOMLSException &other)
     Copy constructor. More...
     
    Destructor.
    virtual ~DOMLSException ()
     Destructor for DOMLSException. More...
     
    - Public Member Functions inherited from xercesc::DOMException
    const XMLCh * getMessage () const
     
     DOMException ()
     Default constructor for DOMException. More...
     
     DOMException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
     Constructor which takes an error code and an optional message code. More...
     
     DOMException (const DOMException &other)
     Copy constructor. More...
     
    virtual ~DOMException ()
     Destructor for DOMException. More...
     

    Additional Inherited Members

    - Public Attributes inherited from xercesc::DOMException
    short code
     A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured. More...
     
    const XMLCh * msg
     A string value. More...
     
    - Protected Attributes inherited from xercesc::DOMException
    MemoryManagerfMemoryManager
     

    Member Enumeration Documentation

    ExceptionCode.

    PARSE_ERR: If an attempt was made to load a document, or an XML Fragment, using DOMLSParser and the processing has been stopped.

    SERIALIZE_ERR: If an attempt was made to serialize a Node using LSSerializer and the processing has been stopped.

    Since
    DOM Level 3
    Enumerator
    PARSE_ERR 
    SERIALIZE_ERR 

    Constructor & Destructor Documentation

    xercesc::DOMLSException::DOMLSException ( )

    Default constructor for DOMLSException.

    xercesc::DOMLSException::DOMLSException ( short  code,
    short  messageCode,
    MemoryManager *const  memoryManager 
    )

    Constructor which takes an error code and a message.

    Parameters
    codeThe error code which indicates the exception
    messageCodeThe string containing the error message
    memoryManagerThe memory manager used to (de)allocate memory
    xercesc::DOMLSException::DOMLSException ( const DOMLSException other)

    Copy constructor.

    Parameters
    otherThe object to be copied.
    xercesc::DOMLSException::~DOMLSException ( )
    virtual

    Destructor for DOMLSException.


    The documentation for this class was generated from the following files:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeFilter__inherit__graph.map0000644001725400016040000000034013273140101023523 00000000000000 XQilla-2.3.4/docs/dom3-api/ftv2node.png0000644001725400016040000000012613273140077014440 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp_source.html0000644001725400016040000012457613273140077016655 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNode.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNode.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNODE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMDocument;
    31 class DOMNamedNodeMap;
    32 class DOMNodeList;
    33 class DOMUserDataHandler;
    34 
    139 class CDOM_EXPORT DOMNode {
    140 protected:
    141  // -----------------------------------------------------------------------
    142  // Hidden constructors
    143  // -----------------------------------------------------------------------
    146  DOMNode() {}
    147  DOMNode(const DOMNode &) {}
    149 
    150 private:
    151  // -----------------------------------------------------------------------
    152  // Unimplemented constructors and operators
    153  // -----------------------------------------------------------------------
    156  DOMNode & operator = (const DOMNode &);
    158 
    159 public:
    160  // -----------------------------------------------------------------------
    161  // All constructors are hidden, just the destructor is available
    162  // -----------------------------------------------------------------------
    169  virtual ~DOMNode() {};
    171 
    172  // -----------------------------------------------------------------------
    173  // Class Types
    174  // -----------------------------------------------------------------------
    182  enum NodeType {
    183  ELEMENT_NODE = 1,
    184  ATTRIBUTE_NODE = 2,
    185  TEXT_NODE = 3,
    186  CDATA_SECTION_NODE = 4,
    187  ENTITY_REFERENCE_NODE = 5,
    188  ENTITY_NODE = 6,
    189  PROCESSING_INSTRUCTION_NODE = 7,
    190  COMMENT_NODE = 8,
    191  DOCUMENT_NODE = 9,
    192  DOCUMENT_TYPE_NODE = 10,
    193  DOCUMENT_FRAGMENT_NODE = 11,
    194  NOTATION_NODE = 12
    195  };
    196 
    216  DOCUMENT_POSITION_DISCONNECTED = 0x01,
    217  DOCUMENT_POSITION_PRECEDING = 0x02,
    218  DOCUMENT_POSITION_FOLLOWING = 0x04,
    219  DOCUMENT_POSITION_CONTAINS = 0x08,
    220  DOCUMENT_POSITION_CONTAINED_BY = 0x10,
    221  DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    222  };
    224 
    225  // -----------------------------------------------------------------------
    226  // Virtual DOMNode interface
    227  // -----------------------------------------------------------------------
    230  // -----------------------------------------------------------------------
    231  // Getter methods
    232  // -----------------------------------------------------------------------
    237  virtual const XMLCh * getNodeName() const = 0;
    238 
    246  virtual const XMLCh * getNodeValue() const = 0;
    247 
    252  virtual NodeType getNodeType() const = 0;
    253 
    264  virtual DOMNode *getParentNode() const = 0;
    265 
    280  virtual DOMNodeList *getChildNodes() const = 0;
    287  virtual DOMNode *getFirstChild() const = 0;
    288 
    295  virtual DOMNode *getLastChild() const = 0;
    296 
    303  virtual DOMNode *getPreviousSibling() const = 0;
    304 
    311  virtual DOMNode *getNextSibling() const = 0;
    312 
    318  virtual DOMNamedNodeMap *getAttributes() const = 0;
    319 
    331  virtual DOMDocument *getOwnerDocument() const = 0;
    332 
    333  // -----------------------------------------------------------------------
    334  // Node methods
    335  // -----------------------------------------------------------------------
    355  virtual DOMNode * cloneNode(bool deep) const = 0;
    356 
    384  virtual DOMNode *insertBefore(DOMNode *newChild,
    385  DOMNode *refChild) = 0;
    386 
    387 
    411  virtual DOMNode *replaceChild(DOMNode *newChild,
    412  DOMNode *oldChild) = 0;
    425  virtual DOMNode *removeChild(DOMNode *oldChild) = 0;
    426 
    447  virtual DOMNode *appendChild(DOMNode *newChild) = 0;
    448 
    449  // -----------------------------------------------------------------------
    450  // Query methods
    451  // -----------------------------------------------------------------------
    460  virtual bool hasChildNodes() const = 0;
    461 
    462  // -----------------------------------------------------------------------
    463  // Setter methods
    464  // -----------------------------------------------------------------------
    480  virtual void setNodeValue(const XMLCh *nodeValue) = 0;
    482 
    505  virtual void normalize() = 0;
    506 
    522  virtual bool isSupported(const XMLCh *feature,
    523  const XMLCh *version) const = 0;
    524 
    540  virtual const XMLCh * getNamespaceURI() const = 0;
    541 
    548  virtual const XMLCh * getPrefix() const = 0;
    549 
    559  virtual const XMLCh * getLocalName() const = 0;
    560 
    594  virtual void setPrefix(const XMLCh * prefix) = 0;
    595 
    602  virtual bool hasAttributes() const = 0;
    604 
    622  virtual bool isSameNode(const DOMNode* other) const = 0;
    623 
    664  virtual bool isEqualNode(const DOMNode* arg) const = 0;
    665 
    666 
    692  virtual void* setUserData(const XMLCh* key,
    693  void* data,
    694  DOMUserDataHandler* handler) = 0;
    695 
    707  virtual void* getUserData(const XMLCh* key) const = 0;
    708 
    709 
    726  virtual const XMLCh* getBaseURI() const = 0;
    727 
    738  virtual short compareDocumentPosition(const DOMNode* other) const = 0;
    739 
    781  virtual const XMLCh* getTextContent() const = 0;
    782 
    794  virtual void setTextContent(const XMLCh* textContent) = 0;
    795 
    807  virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const = 0;
    808 
    818  virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
    819 
    831  virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
    832 
    848  virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
    850 
    851  // -----------------------------------------------------------------------
    852  // Non-standard Extension
    853  // -----------------------------------------------------------------------
    869  virtual void release() = 0;
    871 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
    872  // -----------------------------------------------------------------------
    873  // Non-standard Extension
    874  // -----------------------------------------------------------------------
    884  virtual void decRefCount() {}
    886 
    887  // -----------------------------------------------------------------------
    888  // Non-standard Extension
    889  // -----------------------------------------------------------------------
    896  virtual void incRefCount() {}
    898 #endif
    899 };
    900 
    901 /***
    902  * Utilities macros for getting memory manager within DOM
    903 ***/
    904 #define GET_OWNER_DOCUMENT(ptr) \
    905  ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
    906 
    907 #define GET_DIRECT_MM(ptr) \
    908  (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
    909 
    910 #define GET_INDIRECT_MM(ptr) \
    911  (!ptr ? XMLPlatformUtils::fgMemoryManager : \
    912  GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
    913  XMLPlatformUtils::fgMemoryManager)
    914 
    915 /***
    916  * For DOMNode and its derivatives
    917 ***/
    918 #define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
    919 
    920 XERCES_CPP_NAMESPACE_END
    921 
    922 #endif
    The DOMNodeList interface provides the abstraction of an ordered collection of nodes.
    Definition: DOMNodeList.hpp:45
    virtual ~DOMNode()
    Destructor.
    Definition: DOMNode.hpp:169
    When associating an object to a key on a node using setUserData the application can provide a handler...
    Definition: DOMUserDataHandler.hpp:40
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DocumentPosition
    DocumentPosition:
    Definition: DOMNode.hpp:215
    DOMNode()
    Definition: DOMNode.hpp:146
    DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name...
    Definition: DOMNamedNodeMap.hpp:45
    DOMNode(const DOMNode &)
    Definition: DOMNode.hpp:147
    NodeType
    NodeType.
    Definition: DOMNode.hpp:182
    XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp__dep__incl.md50000644001725400016040000000004013273140077017273 000000000000005404a32e8d1c2f40f0eabeeee4125d96XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.map0000644001725400016040000000044313273140101024503 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__dep__incl.png0000644001725400016040000000731013273140101020570 00000000000000PNG  IHDRpsbKGD}IDATx{P 6 P2ĢH/ROSTQѩbiV% -TWA Kz P@Am AU9yeC0 HHT !:P&߳gL&SU4$/CCHy E^ %%i"=ztQw⋩ dJ?p(#9@RC*uH3p8y/^`0D"IHH(// ,QSS9sB?쳲Dyt:"00f@BBP(uqq}W222RSS x{{{zzr8իW<8pbcc'qO^½eggsoϝ(|>nllLOOG g2<O__Ç?CEEűcǨT*'zs :;;> **5,,LWW!**'00)::渇6GGGy w܉oܹs'w?MNN~LI CKKKGGgɒ%d٩ӧO3HkkkCCC{{{@B++|UIIXƻwsN?m߾Ą`}Cqq10Q>Bٳgkiiiiiݕ& dppX, e3~W֭r111O<REE5k@a0E8QLаz{{;:: @]]UUUgH$}ݢE455 $$jƍ!!!ɭD{{۷o@CCCcc;::"+..fDG ~? iiibɓǎ밨ĉ<ɓ====Ǐ gώpи8Bc8!^B J:88kG۶m{WZݽo>ܾtǏ_t>r KCC&// ---Lhrss܈m>,;;;((bxׯ_{qpRիWlG}Dtx{{t;;;/ "H__444jkk3.\H:99}7[nU8( K$'''SSSSS͛7'$$MxH$gϞ&,nݪL-zP(˖-J$ܺ:%}899盛vHo466W^KLL~.\c8&Qv܉oX, SN!N?uT||@ hnnf...\.w֬Y8ιs<<<444̙3MMML&|\\\rrr yҥQGWW`D>֭[|)Ǜh]AAA|>ǎfrvv=zR2^0x?6‰|>qqq---9ljjڴi49 DQɓ'b8;;{ժE ?\R~iR]]}B7/<Q!QDPT @+BI^&޽! _ Mpw; ݛP'8Aw04$Ȩ/?K 3,22h4*K:ٷRQ+U@T.yV*xV_ߠjCR* =J&phHvƣBPT@w@^=7THOPaH*E\P-"+dXA:;K HKT6 /;):lJ0VT r ʺ!?$0bqԇZS@zzL6pAf)G $g,kL6<8(_!"<;vQ%ȍ$ :PT @RC*uH!:PT @RC*uH!:PT @RC*uH!:PT @RC*uH~9&S_/F >#LD"]v:ˋq3]r9y @RC*uf(rikkxbMMe˖KR /h\B֎hd)JJJbH$~wF>ӳt򈈈={$%%XB&Vl}}}u_ *8S022ۑ†^r}…eeexWWTUVV a:1 BٱcDž dbbԈ !!!x妤AZZƍs~eccc&yP(Ν[h Th|QGP\.>3[ a6Hqqyӻqa]]]t:}O<ի߿_ZZjll_*4*s65>@T*1PSS۰aCJJ ?V[[{w\~=G,_Dע8S y7`ݼysT7oZYYI.aӇ*odI[o%b)l`j*<Fx니pww',vvv===EEE999x»}>.3O#/ddd,_ߟ(<ښb{{k -//߻wMb1z"23Ag 633oC/??N81rS±xC{utt93a P!VLf(@|!,sxgb e3 RC*uHԙFo_vKQ tQR)cmm(F@I @RC*uD IENDB`XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__dep__incl.md50000644001725400016040000000004013273140077020341 000000000000008888cb86afee89033472652e010ffd02XQilla-2.3.4/docs/dom3-api/inherit_graph_30.map0000644001725400016040000000737013273140101016023 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__incl.map0000644001725400016040000000030113273140100020565 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp_source.html0000644001725400016040000004020013273140077017504 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSOutput.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSOutput.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSOUTPUT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSOUTPUT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class XMLFormatTarget;
    31 
    32 
    39 class CDOM_EXPORT DOMLSOutput
    40 {
    41 protected:
    42  // -----------------------------------------------------------------------
    43  // Hidden constructors
    44  // -----------------------------------------------------------------------
    49 
    50 private:
    51  // -----------------------------------------------------------------------
    52  // Unimplemented constructors and operators
    53  // -----------------------------------------------------------------------
    56  DOMLSOutput(const DOMLSOutput &);
    57  DOMLSOutput & operator = (const DOMLSOutput &);
    59 
    60 public:
    61  // -----------------------------------------------------------------------
    62  // All constructors are hidden, just the destructor is available
    63  // -----------------------------------------------------------------------
    70  virtual ~DOMLSOutput() {};
    72 
    73  // -----------------------------------------------------------------------
    74  // Virtual DOMLSOutput interface
    75  // -----------------------------------------------------------------------
    78  // -----------------------------------------------------------------------
    79  // Getter methods
    80  // -----------------------------------------------------------------------
    86  virtual XMLFormatTarget* getByteStream() const = 0;
    87 
    98  virtual const XMLCh* getEncoding() const = 0;
    99 
    109  virtual const XMLCh* getSystemId() const = 0;
    110 
    111  // -----------------------------------------------------------------------
    112  // Setter methods
    113  // -----------------------------------------------------------------------
    119  virtual void setByteStream(XMLFormatTarget* stream) = 0;
    120 
    133  virtual void setEncoding(const XMLCh* const encodingStr) = 0;
    134 
    148  virtual void setSystemId(const XMLCh* const systemId) = 0;
    150 
    151  // -----------------------------------------------------------------------
    152  // Non-standard Extension
    153  // -----------------------------------------------------------------------
    162  virtual void release() = 0;
    164 };
    165 
    166 
    167 XERCES_CPP_NAMESPACE_END
    168 
    169 #endif
    virtual ~DOMLSOutput()
    Destructor.
    Definition: DOMLSOutput.hpp:70
    This interface represents an output destination for data.
    Definition: DOMLSOutput.hpp:39
    DOMLSOutput()
    Definition: DOMLSOutput.hpp:47
    XQilla-2.3.4/docs/dom3-api/inherit_graph_39.map0000644001725400016040000000032113273140101016021 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_15.md50000644001725400016040000000004013273140100015720 000000000000002f4b6e4a0bda42dcac41363c1671dadeXQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp.html0000644001725400016040000001061513273140101017740 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaPlatformUtils.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for XQillaPlatformUtils.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQillaPlatformUtils
     Static utility methods for initializing and terminating the XQilla and Xerces environments. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_8.md50000644001725400016040000000004013273140100015642 0000000000000043855cc67cf096f0936059408bcc031aXQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.png0000644001725400016040000003417313273140100021012 00000000000000PNG  IHDR!#BlbKGD IDATxw@SWO!l=D0:Z\ Q7VG 货+W,Y2o޼ӧO.\p̙h2秤x<dɒ9s={f7|jAѣ TTTܿժU~~~OGA sٳg)G{XgѢEh}ٳg:uJ(ݻ/?C\`i!욇MSSdh4 RWWNXׯ_:;;=z!Mr[[[SRRΜ9sgee-ÇaaaOKKDۥ*z}=z(##uΝÇ=zFnn̹snjmmu-XSVV9v>47o޼g.^xϞ=l6K<JJJRSS7o|qa?]*1s'Ov߿gIynܸ~zKKK{{e˖]v˗/:t-[\\\N`mmmE}}}+W|fffᥥhy~N) aaaGOKK466FS/ ƫWׯ_E/ ME aX$ҥK$I<Wĉ >|ʕ+A섡 ;hРjwwwՎŸSNMLL\bEt@ @֭42dȐ!CLmmmz$:'N()%hņ{X,/MMM[nݻw/55o h*==ddd8::.Zh1@.Y-x A &?O<9zh)>s~guuuUTT@hkk~Y 8^Fh(=- .+u! (ܛ{ L%x<׿<$1oH\{{{@}}=jނ_F=}tT*U%KtƍKKKψs'O޿}H$zzzT*%s7o޼y---BaaaWW4gMB&MRSSy漼> X,)r\G$9z~;v,ߤIk.--Eyyym޼ŋD"qʔ)ׯ_0kmI$Ҷmێ=[++XD"'%% kݻwԨQ(ooM6l//`g#(BDXll,|EDHo􍧧'|L""_ 3{liz 7n&X =1D@A E=/^ DU1kkkE{!rqg 2ɆÑH$ZdS.D%* }ņD736zSYLKdPr&M]YaQ.=[d'Y]lRk+N *-DQkM^(5ulo<mxlD&(1>_~8yr [0Q|4~!AaIMQS ƍg^}v䪉?pY m~Q @V,Auz(=}\ fW8.&bW'2[޳(uȑ^^#f}303(j}~ONqP٣>\ZvM!5mMYCEȍ@=.$䘋?/eo;w4[.? `LO_N")Ι3 ǭ]) lQNx+3h_@k95k$re@$&B$ΝffRz{HK[`,OQY](WFrh3D5=Y#"<t>qbի֭˄6S1$w촶vL0ӧ e:^8@d2W@''*& +*zbE:ZD6(^Av,xĉ exSKJj/O6STcׯHK3!!`p+c;ÿ/OcXˁ|*s>3y?w냂RFLp"CdɒUU-QzzdȆg,Hvr\H?Qѣ^&%ETV6c2e3*dQ5!3"c\\/^\_[|HP"}gF~oXX9Pҷc]}矃U` ,'gMK c.@>_QSSo?,, "_ 3pam[30މG}E7@ ((V1QJz] Qv_>y=jڕх k;;?ZD*cov$$ՈJHG?6YZ(~ႁַNZXYEx#fRzƍ~iBB6 k-`fw"wJmZ/'Ntp0OM]ikc.Xpk9(_;vt7#%bskֶ ܳU A(:;}҉CbE!06]kjN?ÕԤN"dKK~:^ gWϛG&ԼE:RuvvO+4XkQ8 V``-|IGEڱ?9PLD pxii1TJ䱮.ѣE˗OGeqX,΢E)Ϟ57d0XX %عse]]؈fsR?80cw7?-ρWC$=v@X 8E}Ϋy<~rM~'(׭+WNZ"2zݻ߇N$D bq22 0r\W > p(4'OMI)qG~0NWJЎ57}Ï8+ z6>z3X ?bqNdvxz:c-? z.AZc &&*>>)DQh=j PtXcB^-[GZp'ʼn`gg*Z3::zȑzzzcǎy>}:F (}IBXW: tA˯~⢲C͛7OiݻGR222 Ƙ1c(?/++KHHxmN:5m4>kkk>}*LKo~uϜlU.-[DԘI,O步wF7%ɖ3gvuuVUU}q@0y䘘gTTԤIx<ɴKMME~O81}taN@xxATj?]~ʺ{ ;;[Sq۱zHV t:̙3.mnnnffrmmmbccmmmMMMCCCx-Kd}ff&I֦<<|pSSӟ~)33sС۷oV|q8ի/_ʊ!:::YYYπs! &ܰasXX"ꆸSjxq„ Rn;wzSXXHP󝜜"##%{S+rs} elBCC,Ylnn^RRnjuV9}7nŹWTT?>**ZL&SSS3%%JD&(zzzzff& 733mjj| ^^^_.//wuuCpBqq@`` 8z(M4-"P]VVfhh zimm~޽knn}򥅅Ǐioonkk"XUUUeeVFF~"._h'OtrśXۑd.)`֬Y … C TVVS(8fvLq=gNqss]SϵkFrArss_x!E444KAGGﭺFCĉB1 gϞ\ ѣGp8/Lc711]vmʚ6mhN{DSjD$xҥz@QQ gUUU EbP-ӧO׮]!,99믿-**P(`޼yGE$yO2=ң@xjWHV{]QhaOdAlɕ|坥ls'%%y{{oڴI411nQ:^\\544VVVhɓ'wϟh+V={6FXEvvv?077'555h!VB3g;ypp;W &NqΝk׮v gddܽ{رchDx z_(hGASbמ_,,M;󽽽wI,,, xdd?zz֭=@ƺUTTTTTxxxZZ,L&䴶;vL&X,CBB<433ˣRW\Ggh"// z MΝkccގ;'')S\r277Ãf&_f==={$'',S\|o)œ֎uttHIMM.C {zzVUU:88H !JWtwKN)eair p0nܸ JRm46ҮpH7NSA1A>j;;3gMn}0aZT mp8 ESd(ǔ*CSYZ¡,ez 2PLLt䁂zσ|Tj;(  .MMVVcrAA=F |>1yCO \B* ^ 12"DHK JfBDQPOOTAMk+ rBa=Fٰ hC8豁ހ+ 1{x>60rEA=`9X Q hCG@>xZ(ǴID"ހ+ 1Cf0X Q h ؎xZ(;Q\ko@+xZ(nji4&*TxZ(njuk-oc;Sw hy4HvuG -ocƺؔxzPd19o@133}۷ 2#5 wX Qe @q=4ln#3R۱V{ =(t' k*E]?wVYZ45`-JQhקv]55/_R6`>wh $ 1++C&`kaEEps,S R<0cHBhX QƌB H/qKz@k!6Ѳ¦uA=F" zL|%E" 7eB{ 0dq}=,;v(/QyvldC>PA3g VTEo6-Bx}:F (Q)PXW"w͛'״ݣR  c̘1L矗%$$<|p۶mN6mR[mmӧOit۷Eg-sJrxDWW3տQXX#DӚZXXX[[{zz^x_;v055~7|SZZZ[[g]PP0e]Yңq#G~og.((3g8::vvv\nttYtt4E{2ׯ_-**555 .]rss#'z[[OLLttt())A /]&**fp8\zzMMM̡Cl߾GZpW|23+++&&@#DGGgee?`NNh 68;;RJbJ\=(,,P(FFF|'''33n [#>ɓ?J@@zz7K,inn677/))A ~~~uuucƌٺukUU`7n܈sqq)//?~|TTToLfJJ JMKK#L&311QbLAoffte+++tK{yy~5..A…   ѣ6Ѵh᪪*/++344D=дX?w577G|kkk sZZZ+ #._=$f͚`0.\.&:#b '1(}P]ZaeS*R/:ncc&T*:}ڵQFA''\/^kh4 {t@{Gqtt|Giӄ+M\|o)q5}(ALJ bbb~z%1 k Kuɓ/]}4uZ>4c *@ 2y =G__?<<\ttwQ,RRR ۙ] 2r+}d@8{'p8"Hx " 2VRXl++>XNno];k-ʊVv 9PŇkՔxrAmr?'=}|c ٣Οb_Ϝ)IM] P(WV6{.*I|G~9k-PV f2ؿjR={HOc??܇[]_pZ Pb|dv=Zdd܉١_b"%̙nii?\TE.ݾ=wXk{ |g<0nO7lYk-Pnۍe~k!͕+k֜\|ҦM9QcK'^֭W'/e Qz͟?\?9&B;w*.=>;c"J1 BxS}ہe}|\]ǫ۳ʊ{ h==rz_`|1$$udÇUTZZ+8q`cE^WS`1c$'ZKNZ۠>XA")ꌊxL_ᙒRZm?2dIzrMMh0CE<Xj6ȑX % OZ?ǴI{gdijjZlhn~XO _b-D1RD™3 ?*1{lɫWXk$ ֢E)/'gr R2s==s">\Z!a0 ikc곓'WoQkBBCSiQH=̙8z ʎkkRR-].ѳUIT}Wɏǎ݂g<*WٳHy}x߾_ݻ7(>'??o<~\Q#HM?=[]P}##s͛V;yplA(<`֬#yy#:A#LFvvMglUԢ>嗻A-ٻzI91"dV}=[=Q!FZݻ/mx֭WR]@1ޭ\P𤣃~K_M\>@/$%߿p`/ҥi_lgQ|c< q8xB;BԩQQ$ 6j1}}E# $tx\a3Y+5@dg|ih3uCެYKWO`ő/'? hPƎzqb22mf]'' D"aLP#{.\eh-jih]{ɹ\ѣW,QH$_`\Y={?q.C<5hW_=urO>1 h4M" |@ز@ssOQR|LKlxm0BdҤ7o HPи4d혐ٳGݸy[9+,w?^Դ|Pи퉉 G;fkjjԭe Z$&_k>>ueP133355ZB޾} \e.7~mX_D" C__k! gs}B:ϟXu@ z /c|@{nٲe,V]]NV1H<0O"***䡹8BCC[[? A]]iapj_Qz͛7O_555&&&贡-[z>z>22ݻ5k~gS.ʽ{TjCCCFF3f D"MMMNzh|*---7oD3gvuuIջ]]]Yz;ÑTUU  ɓ'V^rI_<{ٳgȬJ|t;VPP`mmMgΜqttphsss33h.ʮ_nkk[TTkkkkjj*>>##ĉᢉV^}.9 )Q||pm;99EFFvwwK J[@@pRcK,inn677/))A ~~~uuucƌٺu+z>}7\\\+**Ə[-&BR҈D"LLLX====33y.`PX]֭[v uILYYasG-(Yf1 . >>> %..Nb=ct777mLRk׮5 f899xB8-^FihhݻN >[u???c(`ܹ!$$Dtyhȇ QIӎ|oo;wh4 4_[[ǯ[NpVQQQQQjժjX,2z12b$V illD7޽{7| dutt 1`֬YSLA;Zm…hkEEEsεioofLMMf"$i<==JKKbbb$`;& C9&]x=a0˖-322266 lvTT… t: HvvaH$s~~gƌvehh8lذ|t\.wĉzT?qΩWR<#EC[oGF3?~|Ȑ!&&&ׯgX} c Sʫф(|Jz9DSGå B>WW؎A z /c|@䋄~ ݭ E=ijjp88hDzlll7% A z /c|@{a IENDB`XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__incl.map0000644001725400016040000000010313273140100020056 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_23.map0000644001725400016040000000042013273140101016012 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCharacterData.html0000644001725400016040000021104213273140101021147 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMCharacterData Class Referenceabstract

    The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...

    #include <DOMCharacterData.hpp>

    Inheritance diagram for xercesc::DOMCharacterData:

    Public Member Functions

    Destructor
    virtual ~DOMCharacterData ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getData () const =0
     Returns the character data of the node that implements this interface. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of characters that are available through data and the substringData method below. More...
     
    virtual const XMLCh * substringData (XMLSize_t offset, XMLSize_t count) const =0
     Extracts a range of data from the node. More...
     
    virtual void appendData (const XMLCh *arg)=0
     Append the string to the end of the character data of the node. More...
     
    virtual void insertData (XMLSize_t offset, const XMLCh *arg)=0
     Insert a string at the specified character offset. More...
     
    virtual void deleteData (XMLSize_t offset, XMLSize_t count)=0
     Remove a range of characters from the node. More...
     
    virtual void replaceData (XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0
     Replace the characters starting at the specified character offset with the specified string. More...
     
    virtual void setData (const XMLCh *data)=0
     Sets the character data of the node that implements this interface. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMCharacterData ()
     
     DOMCharacterData (const DOMCharacterData &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM.

    For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to DOMCharacterData, though DOMText and others do inherit the interface from it. All offsets in this interface start from 0.

    As explained in the DOM spec, text strings in the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In the following, the term 16-bit units is used whenever necessary to indicate that indexing on DOMCharacterData is done in 16-bit units.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMCharacterData::DOMCharacterData ( )
    inlineprotected
    xercesc::DOMCharacterData::DOMCharacterData ( const DOMCharacterData other)
    inlineprotected
    virtual xercesc::DOMCharacterData::~DOMCharacterData ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMCharacterData::appendData ( const XMLCh *  arg)
    pure virtual

    Append the string to the end of the character data of the node.

    Upon success, data provides access to the concatenation of data and the XMLCh* String specified.

    Parameters
    argThe XMLCh* String to append.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual void xercesc::DOMCharacterData::deleteData ( XMLSize_t  offset,
    XMLSize_t  count 
    )
    pure virtual

    Remove a range of characters from the node.

    Upon success, data and length reflect the change.

    Parameters
    offsetThe offset from which to remove characters.
    countThe number of characters to delete. If the sum of offset and count exceeds length then all characters from offset to the end of the data are deleted.
    Exceptions
    DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMCharacterData::getData ( ) const
    pure virtual

    Returns the character data of the node that implements this interface.

    The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a DOMCharacterData node. However, implementation limits may mean that the entirety of a node's data may not fit into a single XMLCh* String. In such cases, the user may call substringData to retrieve the data in appropriately sized pieces.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    Since
    DOM Level 1
    virtual XMLSize_t xercesc::DOMCharacterData::getLength ( ) const
    pure virtual

    Returns the number of characters that are available through data and the substringData method below.

    This may have the value zero, i.e., CharacterData nodes may be empty.

    Since
    DOM Level 1
    virtual void xercesc::DOMCharacterData::insertData ( XMLSize_t  offset,
    const XMLCh *  arg 
    )
    pure virtual

    Insert a string at the specified character offset.

    Parameters
    offsetThe character offset at which to insert.
    argThe XMLCh* String to insert.
    Exceptions
    DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual void xercesc::DOMCharacterData::replaceData ( XMLSize_t  offset,
    XMLSize_t  count,
    const XMLCh *  arg 
    )
    pure virtual

    Replace the characters starting at the specified character offset with the specified string.

    Parameters
    offsetThe offset from which to start replacing.
    countThe number of characters to replace. If the sum of offset and count exceeds length , then all characters to the end of the data are replaced (i.e., the effect is the same as a remove method call with the same range, followed by an append method invocation).
    argThe XMLCh* String with which the range must be replaced.
    Exceptions
    DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual void xercesc::DOMCharacterData::setData ( const XMLCh *  data)
    pure virtual

    Sets the character data of the node that implements this interface.

    Parameters
    dataThe XMLCh* String to set.
    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMCharacterData::substringData ( XMLSize_t  offset,
    XMLSize_t  count 
    ) const
    pure virtual

    Extracts a range of data from the node.

    Parameters
    offsetStart offset of substring to extract.
    countThe number of characters to extract.
    Returns
    The specified substring. If the sum of offset and count exceeds the length, then all characters to the end of the data are returned.
    Exceptions
    DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.map0000644001725400016040000000032313273140101024404 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_0.md50000644001725400016040000000004013273140100015632 000000000000009293963a80d329bd37097b13d35dd6c5XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp__incl.map0000644001725400016040000000006713273140100016737 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRange-members.html0000644001725400016040000003064113273140100021150 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMRange Member List

    This is the complete list of members for xercesc::DOMRange, including all inherited members.

    cloneContents() const =0xercesc::DOMRangepure virtual
    cloneRange() const =0xercesc::DOMRangepure virtual
    collapse(bool toStart)=0xercesc::DOMRangepure virtual
    compareBoundaryPoints(CompareHow how, const DOMRange *sourceRange) const =0xercesc::DOMRangepure virtual
    CompareHow enum namexercesc::DOMRange
    deleteContents()=0xercesc::DOMRangepure virtual
    detach()=0xercesc::DOMRangepure virtual
    DOMRange()xercesc::DOMRangeinlineprotected
    DOMRange(const DOMRange &)xercesc::DOMRangeinlineprotected
    END_TO_END enum valuexercesc::DOMRange
    END_TO_START enum valuexercesc::DOMRange
    extractContents()=0xercesc::DOMRangepure virtual
    getCollapsed() const =0xercesc::DOMRangepure virtual
    getCommonAncestorContainer() const =0xercesc::DOMRangepure virtual
    getEndContainer() const =0xercesc::DOMRangepure virtual
    getEndOffset() const =0xercesc::DOMRangepure virtual
    getStartContainer() const =0xercesc::DOMRangepure virtual
    getStartOffset() const =0xercesc::DOMRangepure virtual
    insertNode(DOMNode *newNode)=0xercesc::DOMRangepure virtual
    release()=0xercesc::DOMRangepure virtual
    selectNode(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    selectNodeContents(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    setEnd(const DOMNode *refNode, XMLSize_t offset)=0xercesc::DOMRangepure virtual
    setEndAfter(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    setEndBefore(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    setStart(const DOMNode *refNode, XMLSize_t offset)=0xercesc::DOMRangepure virtual
    setStartAfter(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    setStartBefore(const DOMNode *refNode)=0xercesc::DOMRangepure virtual
    START_TO_END enum valuexercesc::DOMRange
    START_TO_START enum valuexercesc::DOMRange
    surroundContents(DOMNode *newParent)=0xercesc::DOMRangepure virtual
    toString() const =0xercesc::DOMRangepure virtual
    ~DOMRange()xercesc::DOMRangeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__incl.map0000644001725400016040000000050113273140100020166 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_36.png0000644001725400016040000000313113273140101016027 00000000000000PNG  IHDR%|bKGDIDATxmHSmǯ^hK²hAXX$Y"E N*Y$ >T@Q,ߨ/V~6dRڪ֎Iχ9):tu뜝@Ft0 Wq}'Wq"弶l6폤V{9v{lǏƔ0?9<'=_`VX֝;wr*N*NDHRv\r 4΃  b޼yaddD  ~YID._%%%066vAټdz˗/$I>|0a=zz߽{W__322GׯU*UtHpIJu10Llvv6lXn]ck4׷8FEQ?N ёL$477/\pbb`yyZNHH(//t/~JJn7)))U٩ EjjjCC|mJ9ݱrbܸqbd2^oZVҒ?M Ν;U0gWZ&9i~Dzo߾aZS:x̙o:Ό v ''UUU/v:.+33,*^|^~]*)壣W^iL&>}W^i4Z'pzQqϟ?5kp̆ݺ@ ͛7>F+IZVUUU1tK-[F't:B-}6=nj*'Ξ=K$EQ߿%[J$={P3>tPee%BqÆ \=ٰ['̯!t)DG&P(؝@TMNNҳ. !p8g̘f͚w hhhP* ߚnn_`EQW\AiŊµG2v넙(<ŋKKKJb*'Iɓ't%%% ґ/^TWWR}( lBCÇڵkךfȹOw8]]]ХK6o,\{$ "_):p@qqqss{:;;+++NMت{8qCCCTAlܸ֭[~rrR&Ņ]v3FFNWPPjD"3+WLHH8222̂|}wwm޼ysHj5"G_paҥthmmMLL|!߿ٳgϙ3pbbm~ZVVT*wE$2|\. g3X,LϞ=iiiAj^>%˹s޽} ? fΜ\)0xǎ(s*N*N*N ?=8roO h0ϛ0__ U`_ UCM­JfHIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp__dep__incl.png0000644001725400016040000002014013273140100022042 00000000000000PNG  IHDRbKGD IDATxgXW"MҕРmD&Vb)^oP%ĂAA1 * * JD)FT@E]Fp)Ky?L2.˲0;]|عϙsssOAP"*P ! P ÿd2r"xzzzzz 3`Dx䉽}RRюedxzz Dپ};.|Ƭ ! P ! ]/zmaa뫪N8_UU5|p[[ۅ tl]}}SN!ߴi='Ndee^KK[NNNxp*++,Yrm«‰TXw%X<۷)))k֬9~WMMGOOիWǎ+((طoFTWWxkXxw z GIIiѢE&lw[tzf֮]Ǿ8a/>s^鴱cOtf 8HQq؍CBezx B Lmyyv1 uuU^7FZ@e<}#5iOVO(u ;Kƞ= bc bmk

    3"Bz~ӓ1z/+)ҋڵ3gd2L@-Ǐ_=sюH,S3!X\)U577 e JKk`;Wj }}T嗌={`;$k}}ӧUӦ&3gb.ӑɓj)ŚHYYhG)Ś]jk;h/-[VWW_%((BYYy„ vp8&&&]\]])//*`?inn /jbbuֶS^^.6 Tx"p RHTܪ*&b燇$$$899qWQQQ\\7А%yرcAAA= GUUuӦM&߼}q|?fbb((+_xvvvb``-+477`뺸lٲ/=qÅ+f1TUUÇXp :ؑrdmll6L ]ʕ+b|||hh(DEEŠxl3)) 78wwr[{uEAAA #((;߼ys'N/_RPP_EVV7 Ν;]%--XMMmxGf0~~~=DsXϢodEQ4??_UUEц@]]]Urrru={EБƍC qrrڳgOEE(Eo޼y葵֭͛[>6bɭXdbQ}x^^^k׮.n֬Y,+%%P__Uvvv.--366޶m@ؑRǏ/ֻwjjj!!!(;99)P(r8q􄄄ꫪ*wzz%&G|*looiss3"֨ɓ'K](?{s xY___x9l0L*LMM:u˅xĈL&+--ߍXe6////(P%fE_Ĵ8sLl;,, S655ݹs'==ͭ/^clA RuАeeeg^^^AAAEEEIss1(b/8'0uJKKEbOjtwwꕿ?VZ[[x .L4I__ח%ĉ q-[`+W|277700pѢE!Ey慄~ѣG...-rrrl6{֭&5UVM6c/> lٲd!^ |(N.\wMM 怀q)((;vǎ88tP}pmfnn>tP##M6H!E,kjjjk֬iii?޿Ç-Z`099!| i`7V966vĈׯg=vkvs]ݟ޿obHbR$fP RKBJ'***>>>{ )ŪH_4@`DEEb-+Nc0T (+ؘQVVCb./% ȀBVh@ .(1b5pO(@QFtozm YGѣu%%W8q… ģ~IHsu!CCÍ7[/p* iii׫Ǐg(eˬuxƏh/۷oB"#d 66FEE\юHd&2f }1[H% ڑ^PR.88i:3HPD^^쎫W툨|кrqDB("V--egq yD;"<n]|G7*.ӫ!PgOy{O{A#"ҲJihH:bmhphGz ;'Lh_HuJ!?<KFBeeٳ-a Ѿt7={hG?O/RbUVHYѾJz]UՇkפn X?TcM# 'l}np_PsV ЧŅ%5jc3bQp_PSrs˳8$~`,]zڵدttp=ϟପ زe_1/_.&k8/y,VSSݹsïpB+%8/y,V@P۷OKJ'p_P\FFWOk߷ @w`b=#l32riAҐNwdV׎-TAQ=Eы4Vvvaa˗O!`0A~Ž"5_-C+bdH}ivv 6 A1blm툌)f1Īr%W8? 0s8K6ҒwgwJ-[fI=p ѐ}cSp\b3~Wub7 a0맛h&8 `0UFIqnp.H۶mđ "ifEEE~~~ҥKӦM#` BXAdڵW\CCC*EEŠxl#s͟?s޽P^^ Hjjѣ _{{@cmDxzzzzzX PVVoWUUEQPWWemmmlgϞ|hcc/zzz&''(*<hOv 㫯b2BXQ=r̙3Eooﰰ0|S655ݹs'==5?7`}@ii)!bCUWWWVVfffz+ utt~zYYم &M닯E>>>'Nd0>y/66Ç{߰aCyyy~~-[,Y" ۻBsss@@qƎcǎV|]B*##pС.vw76|Ǝ1BSSsl6[QXB[|`yyy@c m2;  b(־`0D1B+4@BH+4@BH+4H{tٳg{D!##G@=B냄#b@p` ! P ! Pw IDAT?*(IENDB`XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__incl.md50000644001725400016040000000004013273140077017453 00000000000000b7b676231ed59265ab9c340b371f0fa3XQilla-2.3.4/docs/dom3-api/dir_a96227dd5499fecbb186822d7b704430_dep.png0000644001725400016040000000301313273140101020612 00000000000000PNG  IHDR}M*ZybKGDIDATxHwϹo\ uJE^;4SuǠcPw A1;uǠcPw Nл-byKGL&:Ffmm);cL9q)V[{5M1;uǠcPw LW788Z$t2nWvvEL1z\܂_ DGٽ;}hhmcnŊsC/\d|s}ccYYǏڗm`` cl.鮮V^~ر#KK-niitLeEťyNmׯᷭ[w ;NԘLf:ݚu.To2円T z~`0i455UvSEF)Rr=k~rvĉϝ+sBsLHM~SVwFq)EDƘ3kVTF*Kgϖ?~d;}m6kYY ]:5ڵv{kkgUO:M`͘_s<_S/^x<'O~wVGr6 k tMMM?˖%Z{cƵ奯N^q^^V[ݶ&޾_S2L[SWWaq&gO6oqQ(z_&%%d˗'kzJOsdž 9Nk~}\.-1l r80=ڋ۷ *I7aPw A1;uǠcPw A1;uǠcPw z萱O=ǃw kC%њ3w[jKb۝1eUEk4cPw A1;uǠcPw A1;uދOݻ:Bc{Ogc#z^'&jc*UKtʯyCR.u7j'n1fY+AʲON.|%PO722Z:5u>K ϕ zQ7vc˗ٳb/Qw A1;uǠcPw A1;uǠcPw !WUW}[?#r>kXmV\r/Qh<$cPw A1;u"%%}q8A%}hWW׍7+$$$>>/; 1;uǠcPw A1;uǠc :ޟIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathException_8cpp__incl.png0000644001725400016040000010067413273140101020247 00000000000000PNG  IHDRPO@bKGD IDATxw\S'e/q@+(QWu[ֶmkkV+^Zq!z`k" "aC!$'^'3'y!sSN{N{BЀEDDDDDp d$&&rp&55p!;v"00p͚5\G?u&x^2d;xb[[[vf]]޽{_^PPйsL6M u?k׮EGG,ZhժU׮]cǎnݺ)\,/]յ1GGG;[˛9svSXl*srr9`ݻw[ZZBjjj/^lggpB77]vݸqcӦM|>RXXCooo۷oi3g~{޼y9su릸_a***>-[`ѢE9)cii9}t: ֶSN/ҿ/WWט?_}U>}<<< }ӧOBBBM]tgϞYfرO6Mi˗/OMMQ\.H$<E}.ZG1 hiG!;kW\/fϞMI)SSiӦ%$$ЗNLLdp A؅B~x>}? UQd˗/ϟ??,,lҤI?#!&L8]ƍ3f߿Gtҥɓ'WVVB~Yfd={L:uׯ K۷O0a„ ۷oJyyyC g͚5a„oQ1]/7n\DDw}@2dٳg̙k|`ǎ6mu֞={Ǐ_?z?4믿.))پ} _~:~ۺu… wAdH^Sx<\N|/_ܣGkkkŅygZ[oE'Ba``U!ƻvrrr211qrr"TWW7aԩ'TVVҝdΊ,Y2o޼˗7Ϗrԩ'`?6ӧOo޼SNNNN .ܾ}ѣ !/𠻈>|xӐRsvE};w;̙C?~ȑ#KDbeeŮ.u;UISrss!:u Q\ ##C$/q7|SY/u٤͛7GFF4HfiP_ ޞW ;v?i&:x//////:]XX8i$vE :.ܹs璒!UTTrz!К.u;mM$ne/t\ Ü8qW_/)%8pO>=zܹsƍ2UVV.ZH,ϙ3gӦM-vnT__viӦ}-6رc!!!E.!޾Ngddimllϟ?8v\:C|~AA}OU&h7@ɓ۷oZ`ʔ)_s̩x]{ŋ;887]6ꫯJefӦMݺu3f !dʔ)vvv|M466JRP@d;ϑx h'Njժ7o^t2bĈna;w,**\b-[ݿ?***44Te>ƍw5B0228pciixO?_6l؊+>ܣGI&ḿΟ?'OL>](ꫯz1cƌȺW_}u…t7|s˖-x\paii)!d˖-6l،3x{-[,ZhС3fP_~ٳgO u4)mǫ4pM2d͚5\bfΜI{Wv/?OGGCi:@!;?YXXN9dkkN9':(..NLL|޵FbaBD<@KL]cbi)ed2Ҳ_ՋuhSh<<ߜ"h{G]{}}V]]f}}64juwXYeLT*-J2Bq#GjU~\&3F"Hl=J$u)'O޾p\3vlQ=,4f,\!dǎ9Q|t3wr͍ 5Jѩ[7GݝwwvrvF mN(*z^V^VP_/ v"H"9ŞN&{^x&>>.d^{R{iSVYYչsNx_.g豏#vu~eO =*{޽*Bi.^^"Helffx퐝z&-MGSSjj!4=|}]D"SS#-@<o Qz.)eq$ R9N$r  =uӧ5&?.KK+|X&g^$ru^g@k ; ޿_^VHҊ2sZ#"9[Xh5'OjLJ|cTm)^zZf||ɓIEE//Ã{gX ˯'ؘ{y+VK ;}TUUYL+Ԃbmm֥::Z&g*%aa=LJYr&%%7!!?>,2/<~FF\bLkӋ=*+'\.gnn;YeN{'ь"-t6\:waL!Wݓ'o?O(  ;6x(vkhf ϞMOq#̈?}C4+4=NO/( iHLD.n(dk2<74AJk4q}[PɩS .e ;6xh 0=NYRit>BC{aGEEOi*mLq ðكk!Bv ZG-~ZZaJJ^mŞ+]__}x//;qqI7nd[Y;|x1㫡d,ٳwϝW[0~|ݝM-6;Y{?5g?4qo+ )hPMGSS˫BW Irs+Μ3)6 9hcp)3gVD./Uǭ_T*˫xEEBm=KNz[@H$u%lE9֜Jh@'4/'ShRjcc6|x>b 7;ed7n>n@"M,JUlGSxсFxVV]:(:X?.OK~=ܠRV;N>E"\ÃCCbOC g}рl`??vP STv_${ȍ4)=~zDmqST*u+;.ɓvl8bD`߾b\IC4+J׌򬊕ijX-Cv >lE Z#Jurj-4)=zVVVȑ%)eu%3)) 'N$=xPĶ61ڈ6 ke-OXپD"g7++SP)@{ؕ.}p4#c/=E"4|9r3;ӳӈA-)euTѣGe t SS}Ǝ 9uhsgl\WHZLЎD"ON߱{N RQSyz)}XA8e>q#+.S lܧO7CS%OΝx_.gz 9vl סq=p!W/Y;0{w' SvK<5wO6)D.<)e!;UӚ_MOHH=sNMMCPGhhkuhz6RmS CNE'MG/+"EE" ssc:L~fv\?+i=E"C/N[T_/״J//;lSf( lQٽ{Uທ=[lf?@7p.+9/`uMJOϤtܸ^N\-] wON,qp,TWzys/$d:"cca.bMGrMJccoVѤt„nM!;}1iigϦǧ޸mmm6phQ=n(U޻_UUO lCfdZD wotQZ۠ؕ.E}|;r ROSVgR:qbH׮HJ[ isJBBOnRrIg\SNwsCҾ\qn/hREw5 |;'\;0͠%ǧTUj&MݥסdRQQ}ݳgݺƐ.#F%Fihfe!Xi⚑QDuUS&qh=d/N䜻wɳhHܣz QTWxbz\\?TWׇtPmTjk~A\\R||DRv^ڎAǏ?.g?X٧D"g7+7V-@$@7=J0=MG;u:X}&t`;;#)d>M9Lj}z = g,xI$rԑhǐ}MGOVV]:Xluz:}N]]c^^=8!;Ս“'nY 8lX@GIs|vi>lӽ:0xNQ(99G+]bOѷDRK;:4)7%%NuѣԸ7Ǝ 92ڌڳdfK5Av TQSZ#тzPww_Eb'x^Oǧ>@!;v_ĦyH"vQSS#5HO$$t7hohhQ=푔S4Wee)44P,:i+͋b혃K'd)v^N=iK@w,2/<~FFœr〛-o@v F+ݦ t}6Wݓ'o?O(Фt(%Tϥ=zFQ~>MG54HJ4q(O*V*M\1!;vv_t~ACT+]8ɜ<9u*MjbbԿرG.Z ;5yyOHHcS魢~>-q`V @v ;”?/߭PU>}'..ƍl++A|3&:ꉜ??)=YB͑y}4ӳgAKh_bg=w^mmCPGhhq Z eg}:9?ݐ!~x'dfKA_ )hbEtQi׮l:*{i+=~\tzŰaHJ ȦM?M|c\iB$'QFS~}  )!! WvhhȑAhZJ@*V//{"dh:J; v4 }8|IXX1qq ٤tP ޽o@\ZtBL&kĈѣ]g_Msq\'beGNK+de.in=Av B/ t ͯV}XijjuHmm>|5YIilnnFÃ{Jv`ǎ>OQժ,aTU ..)>>E"\ÃCCbOu46?oI3fe)l? .)0犪u0PNڕ_jܫvov$R6eQH, tP*y]YY%439}ܛҤر[%vaa=à h;ST4$2w`{Q:yvQΝCCG[AŋS~GkqTKK|ziVV)&E55 Y+ʦ2U|y*~P" IDAT4 )@;fkײ!{hd֯K/bh(b ߎnhJ2B`<;G޿Jc#໸=/0НAs7d-|~ lis'YY.~?CVa )+(xi^xr>7bD-ؕ.}p4#H.g/=E"nR ݶ!D3j„^Nҭ1ccˎ :cƈ*vV~r*Y{?5&Q%ӳS}[kFPg2m++VB[bd}/ _)kV/ϋݿ_ e/=Е),|[{rrAD!GÃ؀+O豚֢ uvv\rܽ⡄ㅆ|668DW&=HBafI)3?C|@[.b,dI*sg{W__W??W__n1vt)c=IMccEC>p͜ i07p@Ys|d -v@Wgded?|XQAQnnT*yvݻ;y{;y{;wt'J |ss%K͟?'xN ŋ|$3aԾD"??]4am;~)Bx*kM)N׮e`'ф-[fߋp@oeg/)GP<6UD>O-9}+O^SCv+W2>[%>y󴈈uhDRtiٳw ٳn: JmmC`' ä~fnnu8GJ|С|3|9 "b[3 MJJw ص6!7h^|^#!iɓ?ʾy<aHy<0a\.gңʕ(Rhw7okz+?.|iРm#oJe;Tz!6ɘ򂂚ꊊ:<''' xv˗7oެ0뭭==ՎnSff)!D*Ӂ!S!I(670za۾櫯p^KG۳\bBB$<H`ffD SSDhlDݻ;p2(Tm7KOBc<O(76 ǎ|}\}} E?IЌeiuVӦoAJ;-w/?-0%%\x<fkLLL5Ahc6> (kkk}+s;wQ@kjSm/,J#R㹸XOmdX6nKtN}":r su r tpw4iy5+@ab" r r:hVrXv =te%%% TWWGFF[YY˟9;J QzgԨQ</##? 111bccܹ_cfee>挌fgdddqG*smq1 *]JzŸQsq/_޵kW3335kյ&2 z[Z\4Xr^j>]-ݐfnhhTkږVmRNuY_\t 77wϞ=W^O<ݻ7lp͕+W߿?44T&K۷o_K/G-]nӧo5kz衸 .3g033hb<|vmqǫWk ]b[@%Kܺuȑ#?޵kWllldd$Q_Q^ :}.Z!iKHfh˘VAh&w@O?ZB}D""L2E"ر+m_Svm۪m6״Z}J E+M$A{˗uy睕+W2 M\>n8@0sL 6w^UUL&pT411ad!]C,__ߣGw~~~t:!!gϞtYV9 7ѣGi`A4S*)KiSʹtV[-ˍˊ \^YY)ԭ>iҤrEթfqoWaTzʕu "DW~GOZ*c:NQZS_Ka+EMNH$ڻw/?@Ǭұh2NQt[_thD WD9Noݺ>>t„ t:;;Օv.v#.GmH&SGfѪkլpT5p&Ϫykaggw+Wxxx 4ŋ|>_UUUvvvJEyMWoJ brSmTf+KQAs;''gϞbN4B%* I3 }>+++FqXԕ1Ưic&ߌoSZ.-BΊ7SPan̘13֭[vFްaCXX;[BBR7K.ݸq׬YpBY;ujkkLy֭m۶[칺ٲe×-[F縹egg餤>N;88)nEEŕ+W|!$==QrvvÇһrCMO5QVgeEmm\.)//7U~"J=ҜךPZb[)a^u:!9@_啚ʾwM2bkq-RD|Щҥbg^MVtY!i~/G}^ꎥiSk7cԭ]_+rI*[0//… &LzV^]\\o޼%K8pٳqqqYf}Ǵ]K!L8qʕ=JNN ۺu+{edd\~>bGQhԩK.JIIOf̘.ԨO68*wrPyJZx#F9rD"444\=66vܸqt;?oQܵzkT,---gϞ=uSNeff^tiӧOo1*uy+VǗgwI+c(`)`-0ՕWAs{ѢEgΜYzukA}c]-ݐs/_}EPھmsIZZ\wϫSYn)09c g-[dnn駟=ѓgi ![nUw^4vS׮]f}zEEݚD";w OAQQQ^^^K,UG~yyY]]]6mәʝs*O5ҵZ-u/66V GV O?޽;mx0+H'Voe1V`TKaRڵkbY.]>z)Օ+ǁJL&ۼysmllbccU.82NQZYZ\a6Sn_]mTqFooo }ZS]foHZs/tSD9|i5mKt1oʵnb]s oAi03Ȕn8 D; ⒒ؗ34OSe#wڞX)Ω.Ӂ;VӕN9/j#CYKx*4U+@씓H@Xf%%%ݺu7o^k (zR ]|db1kIO7i]`:4uT\Le[MA{ƞ*!wx!;;\Gabs*--+bbbP ѣGrO>~ĈZݬ!C;֭[͛7[_~ D'NvZvv={Ça7{ĉA)n\Əeeet/ҎĉDjBHcccddSdddcc#m>/t911q͚5;wvtt={6[t-BH\\X,655֭۾}!RTꥥfff2lƍ"ʪ_~W^ BFuܹk&''߹sW^Y|LLLo^PPk.PXUUqF޽{߾} |WNNNG?uꔛ-u3f6lÇ֮]0 !d$**2eDcBHiif/n;mM$]ٲe×-[tpp`+W4qssΦs>3uk򘘘7|3<<\gΜ 3t5njj*!Y dffҙ>twwo70}ݘ1c3f[R]]a-߿~KHHh}MOr!O- !4lSv6rL;mM$[dɁΞ=GO8qʕ=JNN ۺuZfSRRRRR}G[1ȑ#\걱ƍYhQdddlllaa3gV^M122:uҥKRRR>3fxJJJ .\0a„kÆ ;s̃;++* I&-\O>NNNJW$^FF?裙3gҙUUU{SϞʝ  is~mpppCC0ǎsuuhJ$s/XZAǺ˗L>o0?SݍbccU0zh6*TqFooo }Cag͚eoo룤JwU,GC===g̘QTT@UUղe˂?Ӛ'&&Bnݪ4_ݛEIn9g>**aɒ%d+ROQ3}Ti*g6_;m1jnAL2r!6NN_ O?Ѣqh Cv ; .ԇr @3в0e/p-{@Pw Cv Cv Cv Cv r@ 8x :}$:F 5ojk;&.1-Q0dgg_~(QnnmݺY^RR{h{VV}:SN&C7ѣMMM'd`sOoYXp>=r޽Կ5a޼\=T@GΗ_ټ9&F?c/Jv )a֭;MӦLypR]Bv a5kIzs@U*'NA/0 'G/ѣ\cHP SL&_Go1',*TACv 06; :T0PNKw/}s+JÂ8([ ~a~~\>* SFCt\ؿaHHiP z)paIIqa^^\Ӂ*Sе7ވs'E\A* SЩ9s mWP )DR;cƎ~zׅpP Cv :i;%11owu8RCNAJKNСtq:hR@֕TN]uu}L۝;"`*t )hWQdd2yL..6\/UNA*"" Z԰* )hKNNyD6++Ӄ[rh R@VdfDDlsp]晘sU&$^}lιAA:84ʕg{7VVNʕFQQs$T ShK2̉6ogBh^3U٥}0 ȧNz~\ ܹ{o{(7 \AeU}v({o޼֍y\ ^\BB{'MqrrzՒQuuy<ިQ=lN:d}7z>_|B*O˕?~P :u$64ń;{W7l@j m%x* L&{7/,lSVV]Bv ћ`'(Kvvի2Leׯg80%d|tE|I8ױ@;}#C*GDl:N9?V<#-u,*111111\Gтo>$--wz@)؃Š(Ga9*/\]rWACQ@_"-}i4iI29tg&<䇿S/XT?رcĘÛT*Fh\Rh41EՄհ3/{9T`QN$;w^|ッi/>>W6O?T[[[SSs%F3o޼DMMѣGdʮ86{՚?7zy!l… zh7o6x`` !{ JƷ܄L&#DDDi?zǔ]plv T,o"JSqPDB9v޽KQ*+WAAA+WT*@Ӌ/FDDlذ!"""00pt";w.11_~111&T*755ݝ9Uz̘1;Unr\z̉ϟOII B& !/B@@@XXXFFFWW\|8p`С7o>|pttoC].\ݴiv=YYYC Zl\.;( …ccW]|XlfΜ9sg[`Azzz]]@ r =ߟ>}zEEP(1bĚ5kn߾My'wygذaB͛>`FF:::v][[~ѱuV8pEۢ'j_8Q8EQ7nKRHϏ59T*uuu]hQUUՑ#G! z7A;w ܹ# ;0HGG!dΜ9Rt߾}YfI={Bn߾v]{ SJғ'O[4iRIIInnn\\6n{B{ ~:(\`!C\Zv,`N&V$,,,11YүF(R5dȐSN-..־]o۶M"h4vZmhӧP}NS?[(oݺѡV/]DSBr :u*..y@-^vkz}Nno"!$''(ZmxǏ׍''tV, #{d剏{uH,^W_N,++ {>t[BH||srssƏEJ׷[xԽ!kKABǜյd#G>^މBu:; -.9yktTYYO8qŊډN"r+$$rƍw}R2LdffO?tKKſɓ'3o6e/t7N&͚5kʕ׮]۵k---yΝPuӈC_nݺM UΦ3RBHII ].TNM*JKĉ Ii4E-]رc}ݹs?ڵk˅Bɓw\j֭+,,,,,|7 -p&MtITP(|ų}Yz=>>>CI?iO]M! L&۰a!&|~ZZڲebqaaΝkh/ҥKϟ?//^8o޼ ig0kz!!d߾}mmm7|rH[oiw"XM >HJzjَ,ŔN?裤$BAQӧ[7R… }}}/^|]潑]]]!!!s̑H$tݥ(:~xllk|||VV Ŕ)Smܸ'666++ޮR7n'ssD&Os/vk׮9seoL&6sz_+-[ 2nn:5zctRm&MWN87>#ik={wSSGfkQQl2k,Bȉ'X  $wb8t :vw}둑l44R*YY˂},kɒ%L\jjZMP֜<:JS{nS&TNJ2cN>@v8YTT4ϘթSsaڴ||<ϯ?tݾ]?cp|}Q-B^WTTɠAÇ{z2334J"c1֦%A0o ԑݼY5{ܿ?JSg9k,+oqsu>?}Be-~T&Uj0y{OhvtSr[R* ER٠R5[bC3&vޅnnBQ_&VJJ\5`@Ԙ#Ђiժ\Qz5kXyToݪ f.%66(11,11<55z0 ~QZ!'ܐR׾0c e;pwʋª|qnv%&&(11,55f@Kbt۷϶L+=:FGBkuD2؇).N>LթUNc?v,`[>v=`}M1{2LNL fOfS00׷K+=0T֮W_n*۱ۻnݪm^Z&֠^aI-|Ͷmi))<ϳ-(T(T^^"RS{Vmr`SA <5** }XԎn͚)=R*շnd+/o֎ +l$08Tj׮} .^̙1cr/F8CfSUjO0SDzWUIjc IDAT B@%xEFr]?T@KJfCQoeg^Vkotk8ۨf-#㥛N;jfST*g;<}: qɫ{O@/0!VB cQ8^g TV U55u8v-ֺ:iCKIquw>L8P:Zbŗg\ILWѣ}|Q8SU̎4mRRi:E?&/OWwx00CBujj͟to}mnkʛ)ʚV[f R7r}R(}JK:: awSۥT_}PNί4n Á64"Vukh i{Ul}Yy;?_եt:4$55&55z(??(nǴ$pwwe;pBP,Rx9xԨh^PPAWWJ2fC#{E9}s{Riiݕn߮(J{_wbbXJJ$T^IϠwxpx^v:E2bѢׯW|Œ#"Ioh/pnf]fW*;B**(+ռL<0Buj[:;{W a;wɟcav,`.嗲|>wАѣJC d;F[XE$x :!Riܹ+*Z5>>p+*a1GG.Z:S`$a77*J5N}BkuD2؇).N>LS[?ffv8E*T-11l̘p?ctc2e^*;@q}}@/T6#-퓶6YfkQQlc+c>g۶ܠn6̛ *{n>OM#C\>IInn8Y>Lw4ܽ+'0xy8Bua]z;?*eP `S::`P(rE F:h_m FYyޖ$F&3Buj)EXq⩧0!A;zOx˞աwH*ۄ; lwnhLթEP5a–zx<_ʝ7ѣ_0Fchhd&Lҿ\̲U2ssE֬15#/=̇'?o Lg;J[5yybZ^ެTIPvTZaSd?~z:pPuu=ݻlpWd rlR~J"ڵOӮ{%\T?eeMu~cihgaA SxmZV~l9r+=n`(/O\Q_غu7݈|r.Sсutpb o۾Bo涶NzÃ9 թ]P _8rqqqwefʕ$66ϏocFAA")$٣믾zHO!=:zִ@c:`jUF//WYAD**( S{mZΧ庸O~¬Leeڵ_}6maR]n}_k|rBf\\8O> pÓH>IJN !g.Ǖ7;VkD\XXPtwtpRRn߮?~_̙pNzWVh40xuJcţS3.JO)SBBw߭B$JzϞm۾(JT<0'giT$w}IUVYJ``5a-2o{o:+Qyutȋ;y+V|IQ!Q"m=haۻȽ}/[[eGjՉիRi&Ob䄄KGrJiFƗeefC#Ba%Qn 74;6. EQ/t0;yLyT%W^x `8Ao.A(DF^=駓Q@:5}&x\MKY|R\\chmܸܱcW\ uk^^Gª:44rB|qu/1}'㏷uDq89tGhss46x.11A`^:pN#s%0k˖&$6?fz|gmŋ~L牌 ӟx }Ԝjq.|>wܱޖ:Ĉ>٩Խ,Ju`#"GJJ Nٳw-M]\8\RvuX?KN~x`S+WPqWzy[?<_~)vڵjRzh 6oJ`!r`SA <5**˫oZ\\8E/bQzթh/r8x{/ZK/=b~nddq}O]\8));w΋0ϭ&`wjjZ'L!*_?~JJ{^G˗ERRg#z,MWȑӆfgK%VZQRU*p.<WVkÆśkӕr#˽U`HBB3<4`3f\TTdDu3dR/4S[-,?Y"')s&7...EiۿyFD{7v\GHrZ>bDȑQII))xX:SSVx6, "knn<`^N}v_VTT,\D"- ׯ_xYYY7o޴Dp,Xhd~͛i}G$#R/+$4hPO> r5U$%%Qɽy=uTXܫHz7DNZ}< Ǎ rBl9̘?!W}uz̙iӦSiii@|||V^mh񔔔zkٲe^{mÆ <"g駟jkk>3T:b:jjj=Z\\l@/$^YYYAAv)D?NL;.$*ΫK.i4y*d٫Fl9z3B-… &M'FLؼyׯ_@֬Yj*E]``CCC{ӧO|fdx'Nd:{NLٳ^0eO]JT NNN޻wO?$JM4:y*oQ&[N. `z]={644T"B;6xwBJʕ+APPʕ+J%=ŋ9996l \` Rs%&&/&&ÄJw񦦦3^h_3B5;&G8!شig}vA>o(H3.+|׆/y…8__M6iFVV֐!C-[&N45-, 2s'Nh|W3f04j0/B@@@XXXFFFWW!=ztС~~~[l$f.Kor`9ݷ[ CgVj֭[<`zʕ+c|r69y CA0Qvޝ㏟?^;l؁s !&z X1toislP__?P=Y`Azzz]]@ r =ߟ>}zEEP(1bĚ5kn߾My'wygذaB͛>`FF:::v][[~ѱuV8pEۢ'j_8Q֚5k!7ndNѧ۷o3c|_ 2uTTzIBHSSI&Ž;z'τB8[B~ׁ^~V&mf=ƍ2t 7g)EQsΝ0a;wBD"̘1C"ݻܬ~7>) +T*QFQ%J]]]-ZTUUuBHCC֮PpӷcǎSN|!!!J;ev\NK=r朤YT*{z޽{CCC츸8mfiQ6wYC^r\`wRJ$DfbүD E 2ԩS_ujii۶mH$]VZ|---T_O4igrcEw:5uzu2Brrr(R?EQǏ;2թ%fk׮(ȑ#O<HCp @ӏ鶧 jSNщDO/ PJT+WtǏA\~֭Z}%frv{k6V|Aaɽidru9IYy9a7:|Gj_h3NsgRTzR\EuRR׿2_~s7 ͛7uףEQ/_1cF~o< _Ĕ sqÇ/]ԯ_3gXg(}/bȑƷY:!%%%mkdĂ~靨6&+W%fi4iӦٳ2h139P(o rjrD5WYYYƍKNN;ajۭ]s[qwwqv ׯ_'Vݐ,VN)GI*'Oރ`|޸qCv{>-~1`CG\Eu?8q+$Inn.=RVVFOqƻkh)Lh233[ZZ^|ŧ~E~ɓ7AUWWYl֭[y 6,YysvM70>䓧zi&So|LA)))ǿh#-hƍkoo|rvvN&=z)!\nii);wү]\z8 Q&!2l֬Y+Wvڮ]2vYl%**و۪VsҚ'n|.hdd$3oݺ}عG~I?KX!{o˙slDSFhѢK;v;w=_vmyyP(KLJr!T27ѡwGSdɒ_|b @tR+=sccc]]]uuK{9Xl:f\|H$뭷;8aѸ\ӗ,YmmthHO{M?>tmO|~ZZڲebqaaΝP$x! L&۰a!_C;k++Wʪo?wAa9i:C}WZu…fJ/{3)C6W0/2㣏>JJJ/>}:88/J.\xw2tuueddx{{ϙ3G"u(㱱YYYzW(SLaqFج,zJrܸq np}>T>T>Tm^nVIENDB`XQilla-2.3.4/docs/dom3-api/dir_cf50e6b7905ca68e8eacb67c516ef759.html0000644001725400016040000005616713273140101020500 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    dom Directory Reference
    Directory dependency graph for dom:
    dom

    Files

    file  DOM.hpp [code]
     
    file  DOMAttr.hpp [code]
     
    file  DOMCDATASection.hpp [code]
     
    file  DOMCharacterData.hpp [code]
     
    file  DOMComment.hpp [code]
     
    file  DOMConfiguration.hpp [code]
     
    file  DOMDocument.hpp [code]
     
    file  DOMDocumentFragment.hpp [code]
     
    file  DOMDocumentRange.hpp [code]
     
    file  DOMDocumentTraversal.hpp [code]
     
    file  DOMDocumentType.hpp [code]
     
    file  DOMElement.hpp [code]
     
    file  DOMEntity.hpp [code]
     
    file  DOMEntityReference.hpp [code]
     
    file  DOMError.hpp [code]
     
    file  DOMErrorHandler.hpp [code]
     
    file  DOMException.cpp
     
    file  DOMException.hpp [code]
     
    file  DOMImplementation.hpp [code]
     
    file  DOMImplementationList.hpp [code]
     
    file  DOMImplementationLS.hpp [code]
     
    file  DOMImplementationRegistry.hpp [code]
     
    file  DOMImplementationSource.hpp [code]
     
    file  DOMLocator.hpp [code]
     
    file  DOMLSException.cpp
     
    file  DOMLSException.hpp [code]
     
    file  DOMLSInput.hpp [code]
     
    file  DOMLSOutput.hpp [code]
     
    file  DOMLSParser.hpp [code]
     
    file  DOMLSParserFilter.hpp [code]
     
    file  DOMLSResourceResolver.hpp [code]
     
    file  DOMLSSerializer.hpp [code]
     
    file  DOMLSSerializerFilter.hpp [code]
     
    file  DOMMemoryManager.hpp [code]
     
    file  DOMNamedNodeMap.hpp [code]
     
    file  DOMNode.hpp [code]
     
    file  DOMNodeFilter.hpp [code]
     
    file  DOMNodeIterator.hpp [code]
     
    file  DOMNodeList.hpp [code]
     
    file  DOMNotation.hpp [code]
     
    file  DOMProcessingInstruction.hpp [code]
     
    file  DOMPSVITypeInfo.hpp [code]
     
    file  DOMRange.hpp [code]
     
    file  DOMRangeException.cpp
     
    file  DOMRangeException.hpp [code]
     
    file  DOMStringList.hpp [code]
     
    file  DOMText.hpp [code]
     
    file  DOMTreeWalker.hpp [code]
     
    file  DOMTypeInfo.hpp [code]
     
    file  DOMUserDataHandler.hpp [code]
     
    file  DOMXPathEvaluator.hpp [code]
     
    file  DOMXPathException.cpp
     
    file  DOMXPathException.hpp [code]
     
    file  DOMXPathExpression.hpp [code]
     
    file  DOMXPathNamespace.hpp [code]
     
    file  DOMXPathNSResolver.hpp [code]
     
    file  DOMXPathResult.hpp [code]
     
    file  StDOMNode.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp.html0000644001725400016040000001253013273140101016726 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSSerializer.hpp File Reference
    Include dependency graph for DOMLSSerializer.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSSerializer
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__dep__incl.png0000644001725400016040000000701213273140101021336 00000000000000PNG  IHDRp bKGD IDATxyPSsCb#Kedi;VK e$RJ+1°vJHǶ#ZѪ-L%ʌ2n#" ( H&0!y5>$Nɹ'{KRsDw(An@PAW̜W5`l6Mn>.  !4mn;v,\EܹS7 r*䆥&:::''G"wxIII)))k{qQoeX"w7Ne 6) ,k^JzvEAARw^uuurrÇB2.[899ݹsСChn777w߹PL&rww/++r_~A;vld=cjgŋp8EEERѣɿk||<ӨsS|rqqqFFFII yȬٻw˗km\T*mtR]*jll<$$$ `ѢESN0LBCCB˗/yLssC1E1L B?}LKxxՇ~;22R__MNNQjSXf BH*F. .)) ژ8a~r# BVVV666K@ 7~Ǥ$')W[귭󫪪JKK=<& q"ݻ5](o$׷o.7mڄJLLNMMmkk .\rvvv~G|M|'ObsϞ=/B Q\NyϯȨս`\P(tGA&]e}桡Çktuj'N8NUPP nݺURRnݺuGxe|d$,--xwtt dgObXuuu#'$$,Y6000..ennYTTcsssPRRRAA͛ p8:leerw޽dɒ*OOȓ'OjPSS3Ó.rquuݾ};~)Guj+W$|cccYIqݵ"|>?**ܹss&H8;w|O* 7r4Ɣ1T] r* 7 B~B&.|<#NSuVojilxVݻQߵ"XhWSӉZ@n'"<pᶾ1D-Ν)N tZM}c 7ZTW_i!b=wErI&{t̿˚ EC[h:}Z =c 7;h';9ϛ,KI rD_߃+Wz^x13#4È@n8vsu }a1hp |'eG27 >-'<^bX3<S r* 7 r* 7 r* 7 r* 7 r* 7 r* 7 r* 7 r* 7׷-^nff afX,V(|>_߅,yڸqt9smٲe999!@@D]]믿d2꫉ j OoXѣԉRoioog0*jxx!400KssK/u떃իWU*D":&'TWW#Bo߾t钛[vvYgfld7h,22_8~իmmmoGP"rss}||Cƴ6SMWW+B`888\ݙ׮]"7lveeJ$rrrBhO={oA^chL67*?ƛv".}-k֬J/^lhhǒ1BoTnz{{E"#""ܹ <}tWWWMM3%wǧ*d2G.))y`eA{{mfh4^`Nu1_Sô+VXXX[wdx؈:pF;R[ O*%%%ݗ_~966qY˺'GEEr`Zgi&ĨKr8]Mf0LKɀ* 7 r076L^kko]5O r* eMTIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__dep__incl.map0000644001725400016040000000064213273140101021427 00000000000000 XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp_source.html0000644001725400016040000003470113273140077020161 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    MemoryManager.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18  /*
    19  * $Id: MemoryManager.hpp 673975 2008-07-04 09:23:56Z borisk $
    20  */
    21 
    22 
    23 #if !defined(XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP)
    24 #define XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP
    25 
    26 #include <xercesc/util/XercesDefs.hpp>
    27 #include <stdlib.h>
    28 
    29 
    30 XERCES_CPP_NAMESPACE_BEGIN
    31 
    32 
    39 class XMLPARSER_EXPORT MemoryManager
    40 {
    41 public:
    42  // -----------------------------------------------------------------------
    43  // Constructors are hidden, only the virtual destructor is exposed
    44  // -----------------------------------------------------------------------
    45 
    48 
    52  virtual ~MemoryManager()
    53  {
    54  }
    56 
    57 
    70  virtual MemoryManager* getExceptionMemoryManager() = 0;
    71 
    72 
    73  // -----------------------------------------------------------------------
    74  // The virtual memory manager interface
    75  // -----------------------------------------------------------------------
    78 
    86  virtual void* allocate(XMLSize_t size) = 0;
    87 
    93  virtual void deallocate(void* p) = 0;
    94 
    96 
    97 
    98 protected :
    99  // -----------------------------------------------------------------------
    100  // Hidden Constructors
    101  // -----------------------------------------------------------------------
    104 
    109  {
    110  }
    112 
    113 
    114 
    115 private:
    116  // -----------------------------------------------------------------------
    117  // Unimplemented constructors and operators
    118  // -----------------------------------------------------------------------
    120  MemoryManager& operator=(const MemoryManager&);
    121 };
    122 
    123 XERCES_CPP_NAMESPACE_END
    124 
    125 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    MemoryManager()
    Protected default constructor.
    Definition: MemoryManager.hpp:108
    virtual ~MemoryManager()
    Default destructor.
    Definition: MemoryManager.hpp:52
    XQilla-2.3.4/docs/dom3-api/classAutoRelease-members.html0000644001725400016040000001077713273140077017775 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoRelease< TYPE > Member List

    This is the complete list of members for AutoRelease< TYPE >, including all inherited members.

    adopt()AutoRelease< TYPE >inline
    AutoRelease(TYPE *p)AutoRelease< TYPE >inline
    get() const AutoRelease< TYPE >inline
    operator TYPE *() const AutoRelease< TYPE >inline
    operator*() const AutoRelease< TYPE >inline
    operator->() const AutoRelease< TYPE >inline
    set(TYPE *p)AutoRelease< TYPE >inline
    swap(TYPE *p)AutoRelease< TYPE >inline
    ~AutoRelease()AutoRelease< TYPE >inline
    XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp__incl.png0000644001725400016040000002256313273140100016624 00000000000000PNG  IHDRbKGD IDATx{ T3Ɲ/JJPRIKE~ ]vKVm˧hɽ$Y%]uPE܆ 39?fC83_g^~y}.C@@ D1 @c@ ƀ@ wQ]]QD">|X__k!U)0yduuu 5 %55uX =UVYYYaBDP(XK4"h D|kkk޲ԩSxĂ*gaaB"м:::III~׮]ϟ/?}0)Vf '80 ""BKKVUU]|;>>^NN秬㣭={رcD"PWW;CCC(&YXXطȠR999WW^AȀѣUUUO~--4tչs甔?>{l]]] 7n f̘ӦM[8?r ]VTT 0?!//6(d2%;;ieeEPx1ٹsgll,8|? .  4G!\.]& ,@{SO<111QPPOqFV9::}7L"!!QTTs玝ǚ5kdddkD~~~&Mڸq# |Z[[ ''7z3f'(//722 ۰a~׈TUUKD"Çϟ?LEE3肞^CCA0As?mllΝ;k)))gELLLۋ={XYY=zB XSUUUs B|F566۷J ;vϯ~葟+x'Mp~?455p8gϞ㭽vZ[[FDDԼ}666v dGWj֭肺itt,NHHZhѪU$%%K\rﶝ &uւ xi=:m4fttt,Z 8 "\c"ylll]]޽{^Mϻnmm  Jᅮ.*zƍe˖aE@c?gɒ%n cSfee}j.%%;v &6`4"h DKJJcc^9 "L&koeHH(vuQ󐐐ۈ7tws\\"w儆f&'祥m65#Dy1޽Չ={͞ڵgꅥ !bmO""'M¢$%I11^kDUWӅ"!k7]ݷnP $%Ϟݤ"fMdCS(eBBLcobٲiǎnɍd -2l1:.ܨRR¿.Cqԓ}F83 ;v\Zcb WƎUII-)Ndy1NwFQTVw\ĉZ{?~\}{ +vm ^)=r޽ I_} BGQ_痴tToADXXEFz;{$ gBBB0pƍ m?(cf6vض BɩSOz{yy0oc>&ba: cxĉ9b"m ܨE&cI} ek{HܹM1@$0+WΙc )l6)7 ] fg5* 7FZZ[#"ܕpx O>}ڵQG4lM,AQvs;S_4r1{MفdS#4Zʕ$1=} r …< ckF+G^։Duu-Y~~ gRShwuvqu=SWrV껤o# #D$SDHO[vw`d㏗遨8xuOZˠ? ԐBԌ/8]O:brkxOL d靍OܹǏ(*Lw%%iW׹Xˁ1\.͘<k-?0wL^l*r1O n /a.-[ɖ#ֈ`9r}'ihooiSBaaZ1\q%l"pۜ9nnpO,c3n->hXSDm3ZЀ}bQYtB^Pbii) D"5`a-G16fUfc-D%'45_ 4Vmׯk^}gR |W?lX)<)Bf57c%L1h7nmٲw>srJ-- LPccDG?T'zyZڵѝݷn8 xl6YZ01~\hhVSS?_rH$D\>?"db$%=& ..s2xz;9<{6蛗l6'118.tpinNBBκu{"Z A/?CF᝝ݗ.=PHKcdelh`_o}rv~FIIO/6O"4NNN8s* *mthA"%QQXa?c\`B߫W73=np8ܜ21IOj,i LT?CC =$$qq0&bz񢲦(%0wo'Y"ݜmXpf Jm$|˧=~+dg(9))O&"EK#$ˢ 8 ` 11CBOTT4~dkk`RmGyxxxzzihh<} 9rɩleee%Kܻw/$$ظxΜ9jmm5jTTTJhmm =>>>)) AǏ^vM[[ۢE޽{WTT4eʔA #66zjq@cc#hⲲ2())!z\ 4۷o555_| HssLcc#LtTZZ:!!At_5^˖-c0/_Fnή4//0$$D`Sc޼'Of& AuuuMMMĉT*=m4t/!2a„ttmII oo.&))yQ:rL&/FC(11'ٳ.k4nhh ŋtuuZFW^gɓ'[lٳg ϟ/pIJ1XM$BA; "уPT__ϋ=QTTDrWWo9}s!,++kaaq3LtYZZիWU/_OX,4XTTD&zebAƸpŒ3eMM622oP(\.̙3 cp8KKKT f@ii)W~aa!LD11vaΞTUUacc  :%%%hիW/riii4mÆ ˗/h߼yshP__ϛ7o$hݻw:::}AK?BCCyנmmmG/믿f2999]@# hDx|~^E(--E;f?4rX޽I98pFijjfeeqggg9sn]޿iqqqqqMbdKd2ݽ-ɓT*ƍ׮]hѢ#k1E˵ eŊږ &XZZ޸q4==ܼ͛7O4ںFA(22=|џ}W;AξDkk벲 ~1c]}{`RSNE;HW\B KYYYEEۻڊt:ͅ7nĉ333f겷baaaCOhu֩hiim߾$ `bWƌ߁D5 `ʔ)222looU8B>}W1\-o_5Ɓ;cǎUUUݶmx1|}Ϯ_7c@ikx 1Ƙ1++'L!=PPPLS1TZZg!GEE &cǪ>|hZD,1dd޼ZD,1H$ΫWX 1`4ª@ CZZ8=9B0%RA|ڂ?c\]<^!2kמa))~2XYpi sj.EBŋXepi >?-Up8֭KJjDv~.XfVw7'#B ASidq0Wc(+:;{X|:44+=yl׬Y_aE,1~~֕M7oc-d9vflpwkXkpl ŋMN%11ۿ0 k-bؼyW99eX *\yw\6k-苫kT[[WV?BÇ[a~Jn1w/}Ν+֯wt4  -+);;HdOF̝k%!s_] k!¡5D'*+DaO<С>g/[\\79\D Q0Μ`-`0Xnns6ɍZX#"PS󳎈[_߂τZ.=5OUUk9⎈k,sU|ݜ޿oxOGGk92,yszlMpm;YŅ >Xˁ J,Z4a?\}7gn41Z_Dvf~:BˡC\4"}qXkch}02ѣkM(kTM Ν̋ii)p(Jm ~jpDcƌ \~[*ZfW p:_N&Kb-?^\7[[pwyQ@"ϜkLW/1JaaϞ@y5q(tT7y;wUWyA*ر[lN/\W_Gg'<ҥ-ė/+=dvddq)$$k CqqǏp ヒ&mm+W ssˣ޿o\3-JCE%11'".5&/^&G H 4Ԗ&h }[!B(Z@>hpKKƌ $zU6[RRl D%1**mm޾t )/ka~d39Iw7WTT4:88Ɉ1ۻYR/{~g'[*[UEKN~"A|3w^ןtqqPEd޼CUUM}(H=Zn%..s8@$?.Pv͞m׃w) ݹSRYI (/O޳giAA< -?oSivߦD"ZYMLJ;9.(xHHI$ƍ۶((|p"^wݓ'tL"? oHW…;SB ˜%>7N]FF*0pݻA3g+W11 +/=Z .Ԅa֭?njj+ .`-\xZY20P<,hhhxg2}!yyǎ-1NIyci9v8>ydUJJJik!G`ƀ@QYYd?˗/%$$xL))  G]Nn P*Fk{Uo)())ڵӧO---7o޿PދǏSꄄaff*HmmmrrrI}vdQ__}W,]]લ^e2e7 3f2=~r ^`_yׯd#++KGGNRRRAAAAAAhݻzz2tIDATz ezzzjjja\Wd$QVVVZZ[;w.@SSAJLL?|pBBBbbd"X__k׮WY۷ >&LPWWa!zd-g]]ӧO#G*++vލؖ,Yr޽cc㢢9suԨQQQQT*5..NBB5,,L`$I /;ݻw<Ҫ!JJJo]_-[`0._ hllDK+--344 HsAuuuMMMwĉT*=m4tG!2a„ttmII oo.&))yQ:rL&/FC>(\.wŊ$ݝCZ5coh2P(AЇ#jhh(0 4FoBCCI$R}}=/I2EEEtG=u2\\\ܷqvv~zٙLQ88X`pA[O6FxxԩS^ĕ+Wn:RVVVQQnkk:::]]]t: AqIIIM8133S`.{{{~aTRR7n\ff&ZNNc^G_"D"ҥKC]5cƌqsseeرcǪn۶b |01cHyy㑞9"^@c# >>_[`W "^@c@ ƀ@@'j( 6Z 8D]]k CXO rbN1 @c@ ƀ@J)CIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathResult.html0000644001725400016040000012231513273140100020707 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathResult Class Referenceabstract

    The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...

    #include <DOMXPathResult.hpp>

    Public Types

    Public Constants
    enum  ResultType {
      ANY_TYPE = 0, NUMBER_TYPE = 1, STRING_TYPE = 2, BOOLEAN_TYPE = 3,
      UNORDERED_NODE_ITERATOR_TYPE = 4, ORDERED_NODE_ITERATOR_TYPE = 5, UNORDERED_NODE_SNAPSHOT_TYPE = 6, ORDERED_NODE_SNAPSHOT_TYPE = 7,
      ANY_UNORDERED_NODE_TYPE = 8, FIRST_ORDERED_NODE_TYPE = 9, FIRST_RESULT_TYPE = 100, ITERATOR_RESULT_TYPE = 101,
      SNAPSHOT_RESULT_TYPE = 102
    }
     

    Public Member Functions

    Destructor
    virtual ~DOMXPathResult ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual ResultType getResultType () const =0
     Returns the result type of this result. More...
     
    virtual const DOMTypeInfogetTypeInfo () const =0
     Returns the DOM type info of the current result node or value (XPath 2 only). More...
     
    virtual bool isNode () const =0
     Returns true if the result has a current result and the value is a node (XPath 2 only). More...
     
    virtual bool getBooleanValue () const =0
     Returns the boolean value of this result. More...
     
    virtual int getIntegerValue () const =0
     Returns the integer value of this result (XPath 2 only). More...
     
    virtual double getNumberValue () const =0
     Returns the number value of this result. More...
     
    virtual const XMLCh * getStringValue () const =0
     Returns the string value of this result. More...
     
    virtual DOMNodegetNodeValue () const =0
     Returns the node value of this result. More...
     
    virtual bool iterateNext ()=0
     Iterates and returns true if the current result is the next item from the sequence or false if there are no more items. More...
     
    virtual bool getInvalidIteratorState () const =0
     Signifies that the iterator has become invalid. More...
     
    virtual bool snapshotItem (XMLSize_t index)=0
     Sets the current result to the indexth item in the snapshot collection. More...
     
    virtual XMLSize_t getSnapshotLength () const =0
     The number of items in the result snapshot. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this DOMXPathResult is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathResult ()
     

    Detailed Description

    The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node.

    Since evaluation of an XPath expression can result in various result types, this object makes it possible to discover and manipulate the type and value of the result.

    Note that some function signatures were changed compared to the DOM Level 3 in order to accommodate XPath 2.0.

    Since
    DOM Level 3

    Member Enumeration Documentation

    ANY_TYPE
    [XPath 1.0] This code does not represent a specific type. An evaluation of an XPath expression will never produce this type. If this type is requested, then the evaluation returns whatever type naturally results from evaluation of the expression. If the natural result is a node set when ANY_TYPE was requested, then UNORDERED_NODE_ITERATOR_TYPE is always the resulting type. Any other representation of a node set must be explicitly requested.

    ANY_UNORDERED_NODE_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 and will be accessed as a single node, which may be null if the node set is empty. Document modification does not invalidate the node, but may mean that the result node no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once any node in the resulting set has been found. If there is more than one node in the actual result, the single node returned might not be the first in document order.

    BOOLEAN_TYPE
    [XPath 1.0] The result is a boolean as defined by XPath 1.0. Document modification does not invalidate the boolean, but may mean that reevaluation would not yield the same boolean.

    FIRST_ORDERED_NODE_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 and will be accessed as a single node, which may be null if the node set is empty. Document modification does not invalidate the node, but may mean that the result node no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first node in document order of the resulting set has been found. If there are more than one node in the actual result, the single node returned will be the first in document order.

    NUMBER_TYPE
    [XPath 1.0] The result is a number as defined by XPath 1.0. Document modification does not invalidate the number, but may mean that reevaluation would not yield the same number.

    ORDERED_NODE_ITERATOR_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed iteratively, which will produce document-ordered nodes. Document modification invalidates the iteration.

    ORDERED_NODE_SNAPSHOT_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed as a snapshot list of nodes that will be in original document order. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and nodes in the snapshot may have been altered, moved, or removed from the document.

    STRING_TYPE
    [XPath 1.0] The result is a string as defined by XPath 1.0. Document modification does not invalidate the string, but may mean that the string no longer corresponds to the current document.

    UNORDERED_NODE_ITERATOR_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed iteratively, which may not produce nodes in a particular order. Document modification invalidates the iteration. This is the default type returned if the result is a node set and ANY_TYPE is requested.

    UNORDERED_NODE_SNAPSHOT_TYPE
    [XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed as a snapshot list of nodes that may not be in a particular order. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and nodes in the snapshot may have been altered, moved, or removed from the document.

    FIRST_RESULT_TYPE
    [XPath 2.0] The result is a sequence as defined by XPath 2.0 and will be accessed as a single current value or there will be no current value if the sequence is empty. Document modification does not invalidate the value, but may mean that the result no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first item in the resulting sequence has been found. If there is more than one item in the actual result, the single item returned might not be the first in document order.

    ITERATOR_RESULT_TYPE
    [XPath 2.0] The result is a sequence as defined by XPath 2.0 that will be accessed iteratively. Document modification invalidates the iteration.

    SNAPSHOT_RESULT_TYPE
    [XPath 2.0] The result is a sequence as defined by XPath 2.0 that will be accessed as a snapshot list of values. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and any items in the snapshot may have been altered, moved, or removed from the document.

    Enumerator
    ANY_TYPE 
    NUMBER_TYPE 
    STRING_TYPE 
    BOOLEAN_TYPE 
    UNORDERED_NODE_ITERATOR_TYPE 
    ORDERED_NODE_ITERATOR_TYPE 
    UNORDERED_NODE_SNAPSHOT_TYPE 
    ORDERED_NODE_SNAPSHOT_TYPE 
    ANY_UNORDERED_NODE_TYPE 
    FIRST_ORDERED_NODE_TYPE 
    FIRST_RESULT_TYPE 
    ITERATOR_RESULT_TYPE 
    SNAPSHOT_RESULT_TYPE 

    Constructor & Destructor Documentation

    xercesc::DOMXPathResult::DOMXPathResult ( )
    inlineprotected
    virtual xercesc::DOMXPathResult::~DOMXPathResult ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual bool xercesc::DOMXPathResult::getBooleanValue ( ) const
    pure virtual

    Returns the boolean value of this result.

    Returns
    booleanValue of type boolean The value of this boolean result.
    Exceptions
    DOMXPathExceptionTYPE_ERR: raised if ResultType is not BOOLEAN_TYPE (XPath 1.0) or if current result cannot be properly converted to boolean (XPath 2.0).
    NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
    virtual int xercesc::DOMXPathResult::getIntegerValue ( ) const
    pure virtual

    Returns the integer value of this result (XPath 2 only).

    Returns
    integerValue of type int The value of this integer result.
    Exceptions
    DOMXPathExceptionTYPE_ERR: raised if current result cannot be properly converted to int (XPath 2.0).
    NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
    virtual bool xercesc::DOMXPathResult::getInvalidIteratorState ( ) const
    pure virtual

    Signifies that the iterator has become invalid.

    Returns
    invalidIteratorState True if ResultType is UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or ITERATOR_RESULT_TYPE (XPath 2.0) and the document has been modified since this result was returned.
    Exceptions
    XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or if ResultType is not ITERATOR_RESULT_TYPE (XPath 2.0).
    virtual DOMNode* xercesc::DOMXPathResult::getNodeValue ( ) const
    pure virtual

    Returns the node value of this result.

    Returns
    nodeValue The value of this node result, which may be null.
    Exceptions
    DOMXPathExceptionTYPE_ERR: raised if ResultType is not ANY_UNORDERED_NODE_TYPE, FIRST_ORDERED_NODE_TYPE, UNORDERED_NODE_ITERATOR_TYPE, ORDERED_NODE_ITERATOR_TYPE, UNORDERED_NODE_SNAPSHOT_TYPE, or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if current result is not a node (XPath 2.0).
    NO_RESULT_ERROR: raised if there is no current result in the result object.
    virtual double xercesc::DOMXPathResult::getNumberValue ( ) const
    pure virtual

    Returns the number value of this result.

    Returns
    numberValue The value of this number result. If the native double type of the DOM binding does not directly support the exact IEEE 754 result of the XPath expression, then it is up to the definition of the binding to specify how the XPath number is converted to the native binding number.
    Exceptions
    DOMXPathExceptionTYPE_ERR: raised if ResultType is not NUMBER_TYPE (XPath 1.0) or if current result cannot be properly converted to double (XPath 2.0).
    NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
    virtual ResultType xercesc::DOMXPathResult::getResultType ( ) const
    pure virtual

    Returns the result type of this result.

    Returns
    ResultType A code representing the type of this result, as defined by the type constants.
    virtual XMLSize_t xercesc::DOMXPathResult::getSnapshotLength ( ) const
    pure virtual

    The number of items in the result snapshot.

    Valid values for snapshotItem indices are 0 to snapshotLength-1 inclusive.

    Returns
    snapshotLength of type XMLSize_t
    Exceptions
    XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_SNAPSHOT_TYPE or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if ResultType is not SNAPSHOT_RESULT_TYPE (XPath 2.0).
    virtual const XMLCh* xercesc::DOMXPathResult::getStringValue ( ) const
    pure virtual

    Returns the string value of this result.

    Returns
    stringValue The value of this string result.
    Exceptions
    DOMXPathExceptionTYPE_ERR: raised if ResultType is not STRING_TYPE (XPath 1.0) or if current result cannot be properly converted to string (XPath 2.0).
    NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
    virtual const DOMTypeInfo* xercesc::DOMXPathResult::getTypeInfo ( ) const
    pure virtual

    Returns the DOM type info of the current result node or value (XPath 2 only).

    Returns
    typeInfo of type TypeInfo, readonly
    virtual bool xercesc::DOMXPathResult::isNode ( ) const
    pure virtual

    Returns true if the result has a current result and the value is a node (XPath 2 only).

    This function is necessary to distinguish between a string value and a node of type string as returned by the getTypeInfo() function.

    Returns
    isNode of type boolean, readonly
    virtual bool xercesc::DOMXPathResult::iterateNext ( )
    pure virtual

    Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.

    Returns
    boolean True if the current result is the next item from the sequence or false if there are no more items.
    Exceptions
    XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or if ResultType is not ITERATOR_RESULT_TYPE (XPath 2.0).
    DOMExceptionINVALID_STATE_ERR: The document has been mutated since the result was returned.
    virtual void xercesc::DOMXPathResult::release ( )
    pure virtual

    Called to indicate that this DOMXPathResult is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual bool xercesc::DOMXPathResult::snapshotItem ( XMLSize_t  index)
    pure virtual

    Sets the current result to the indexth item in the snapshot collection.

    If index is greater than or equal to the number of items in the list, this method returns false. Unlike the iterator result, the snapshot does not become invalid, but may not correspond to the current document if it is mutated.

    Parameters
    indexof type XMLSize_t - Index into the snapshot collection.
    Returns
    boolean True if the current result is the next item from the sequence or false if there are no more items.
    Exceptions
    XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_SNAPSHOT_TYPE or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if ResultType is not SNAPSHOT_RESULT_TYPE (XPath 2.0).

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.md50000644001725400016040000000004013273140077020630 00000000000000f180bee977800297bfcd8a7bd56b82cdXQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp__dep__incl.map0000644001725400016040000000023313273140100017721 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp__dep__incl.map0000644001725400016040000000023513273140100020013 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMStringList.html0000644001725400016040000003326213273140100020570 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMStringList Class Referenceabstract

    The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...

    #include <DOMStringList.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMStringList ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual const XMLCh * item (XMLSize_t index) const =0
     Returns the index item in the collection. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of strings in the list. More...
     
    virtual bool contains (const XMLCh *) const =0
     Test if a string is part of this DOMStringList. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMStringList ()
     

    Detailed Description

    The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented.

    The items in the DOMStringList are accessible via an integral index, starting from 0.

    Constructor & Destructor Documentation

    xercesc::DOMStringList::DOMStringList ( )
    inlineprotected
    virtual xercesc::DOMStringList::~DOMStringList ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual bool xercesc::DOMStringList::contains ( const XMLCh *  ) const
    pure virtual

    Test if a string is part of this DOMStringList.

    Returns
    true if the string has been found, false otherwise.
    Since
    DOM Level 3
    virtual XMLSize_t xercesc::DOMStringList::getLength ( ) const
    pure virtual

    Returns the number of strings in the list.

    The range of valid child node indices is 0 to length-1 inclusive.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMStringList::item ( XMLSize_t  index) const
    pure virtual

    Returns the index item in the collection.

    If index is greater than or equal to the number of strings in the list, this returns null.

    Parameters
    indexIndex into the collection.
    Returns
    The string at the indexth position in the DOMStringList, or null if that is not a valid index.
    Since
    DOM Level 3
    virtual void xercesc::DOMStringList::release ( )
    pure virtual

    Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.png0000644001725400016040000001131513273140101025145 00000000000000PNG  IHDRpbKGDIDATx}8T1cX1y$IDMҶPlx٨jj#$i7)V+ǰqw桩58~uܟ>|aZC1 "p . "p Ivŋ bxA B$gkk+]paJ…$%% ^DTVVA5. "p . "p7g#&mM:5&&H)N>]__`0lll<<ܸ}={?)^Zj՝;w>vd faa!H.]u)@oooLL̘1c---?Çkii:::ZZZpt>L`0֭+))_t vnܸG#T022266P(ӧO߳gŋ3g9r>(++\]]eTWWO6MMD:::eoH$/[,@Xz@ DLLH+`??}q\M "22r…7ob~e˖pBtuuW\Y^^7ϟ_YY)ݻw͛,!sedd) ^Y4,""ܹs7o YdɩSTdFݺu+""bٲe.\_|rS);At:fڵ>>>Ν|wǏBҥKik:.?y9s\]]Y,Vzz~ (**b0YYYnhhͅ wXUUo߾Զ|WJ $'']paEEE ͍XYY~rL|mgooK؞2e oiixwww9:=z+333%%ʂWƣG222kjjrrrbbb ,OOOp8PpŪ *8ql6u]x̜9SE Е ol*RaӦM qqq'Oeee[l155QQQӧOƏ}v'''eVB0>O&}||^suK,oA"--OOOX-8;;YD۷ooڴn͚5ʂWFpp… zzz>>>*,~~~-Hu4z蜜͛7x<ޜ9szzz,nÆ 7nܸqʬFZTT:k,enii 766nnnvuu ݜ?###U X,D*P|`*ۆ(3B7RMHC']:::w޵Vtp'|p߼yseWWǏܹvRT_ &&&Ǐ477֮ZJջw$IrrH$عs+W annnp̙3ӧOK>|uV53FKK`@u~B`,xXL$?eyyA z]rrrrrٳB}ױcV8d2YK 8|]v=z{xxdggwvvn۶ʕ+V .> B̜]~] `L&q׮] cŊpWDDoݻCP|}}--OO#G8::ߣUD"h`l n޼۫N%*Eut+ E"D5koo/`̙\._|1(Ae?^q\fCBBH$Rll#GGvZ- x@ drBBBVV֛7o,--d2s6}!Xʶ7n SSS'NH_N8k // mmm3h%%%IP|˖-iii֭|Ǐ߰aý{̿|377wvvq:n bbb'zyym۶$i޼yV8d2YZZg-A*,, O2A ` "p . "p . "p .(Bİ _.V u#TUU%Uz>&%..MM{DT <(g,V/edGC wyNtZP( ׮5 ¡h;ܺ|7Hp--"lT-h$ܺ"F5@`"DG,?g;\PwEE$ @g3@$YWg $gk#>$܁Ň ?BH? lllHðƶ6G5RA0^*H,}N+Dkmm%%ѣG gϞ]`X,^xOgXUUUj:&R(BL 4}MxtS"xzz&&&͸8H$rmmmΝ;{O>xbO· Ϟ=SS-_qKKKT*?Ba||i||P(lnn&666III666cǎ OVWD"Bsxv?ºu_7Dt~|||~~> *,,%s6W_Q(++8@0xeSN9::;vyyyǏ744ܵkg:::8p0772+nxxxDDDGG? ;SRR^|4cƌ;v~ŷoNNNvrrjjjf͊Sfrutt233 FNNDrThf2ٯ wQ00xuuu;A?_~nW9aaaa^^^---MMMSLINNV(m4& &MT\\ Ҷ>tŒH$G,+3Wq*ܚ "ݰaCBBa ,y__H_aqqU׆sH$\޽H$vvvJ{tuue_ a^:.G ð{xxܸqC觭sι¶yyyy?EIm+++%_VVRR*|>755* ^VXO>Թ¶Œ+ 硡^^^t:)11QaoNN۷o+|p8KpرSL&ð5k֌3$** W YZZX,/oaXAA dɓKJJTX[[V5qܭ[N2EOOi޽R[(J@zzz~ΙLիMLL,,,bcc|kdd4a„0c#Bܹs 7$>nAA+4z𡰰088XӺu $\.AE$\.AE$\.AEfmmѣ mmm֕Ɵ|ͿkkAxW\BKp Kpu'`kpIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeFilter__inherit__graph.png0000644001725400016040000001150213273140101023534 00000000000000PNG  IHDROSbKGDIDATxyTSGT& Zc*VPm ѲT9ay}=UDVlK)PQ֞D P W`Ꮩgydn( #7@>2b ԀP*B :IYjjjjj? d<@ю=/0p8&&&dpQ1Q 2p8>B 5b ԀPc~P(LKK]UUO:-Nss3@ +QCC655}9/ V;pGnݺ%ɓ'lvXXXiiiRRRzzzrr˗lkB^J6gϖ5,#aV%__r??kc7nٳG]]˫{zzZYY{xxDH{ (d2W\#//;W_}%~XZNN[J(?~|AAA=***vvvgϞmii233^˗/?w\]]]]]ɓ'[ZZdy!_XX=00@ewwwJ^ r...XѶm|}JJJ޽㣦vڿIN>22O?%#IIIt:rMҥK׬Yw .dFBooh5E.33ՕNݻ722LYYyǎ| ^^^^½l" Bfb2Onmm a2;::N8m_iݻ3gZQQ̙3l6b-Yٙ`!++ё|@V^}ݲ2,gϞhooox-[􁁁ׯ_Ϛ5+((ӑ455̜_>dSOg \\\i Crr2>K3QP1j@@T P1j@@1;x>Eў _uf޽c0iij{x?Rtzaa!*89E?x<,e1t>|X =lc@HXNAQPZZvu8IRSK z2;bޢo5c[AqjjXG4yrM5gϚ?؆4ހy2Hg ZN\*o~hO(b&#I/$ TPzc -3|LB@żS>00RoCT Nff9)$a >@ż!'࠘ɤG cxa|̰?Uߛ32/]` zx{_ln@#pUP*B 5b ԀP*B 5b ԀP*B 5b ԀP*B 5b ԀP*B 5b ԀP*B 5b ԀP*B 5b ԀP*B 5b ԀPo5{.T<~:ց ͛w\t:Z<@2Q6mHe"(99e7\\\VlP*B 5b *!֯&uww[XX(++ϛ7Dٳ%{ժU`@g``0iҤٳgaȩA?юW (**r񝝝sx]]]}YiiiXXأG\l2ow[^^p,aQUU j VL{j<+탃H$+}}gb+W ))iΜ9 uuulp8!!!zzz3fpww_^sssCC˗/D"ѐ drF;77&&&h0bb"uvvNIIAZ6l@>,SL}5ŰE䃖_ѵk׬Y,ֱcLj]/\/ n$޽{6D1۶mx>ČaaaNNN s=p"Xj۷CCCMLL*++llldy yyy6rϟ?OAxx R@ii*$.cYEEW^9֭[˖- I=ytvv2LFL֭#=وboo"s e|ssPhllrt^^%Vee%|իWOK{3'N|X588(]Άv DQ411qٲe6T "æ4ʕ+.gϞ ,Űl[[[P8^eÇi4ZKK nQPP [***XXXiUUt;^(޻woÆ JJJvvvׯ_'q?~Қyyy.qqq+V}9X,^nӧQR$|c$ɋ4,X`ii}vrTTT̜9d ((A]]}Ŋ[nō:::8gϞ0''K?~ȑ#zzz QKHHh_. 󵳳wrD" B%%%A.AU ޽{GR4鞞yy,XK.SSSC ayߝX,MJJ_srr0_xQYYrʘۡC>}ݻw[?i/A/_`0eΝNx<^SSSAAc]]ݾ}%Kܼy:##F[[whNNN^^^WWWqɓ'oܸ177@R43ސ@WWא5wڵs΅ #DSNYXX`ZFFjooGQsSN>}gww7QBOKKKEEՕcvi/Eg͚d2H܇|Eoe@ ؿɑ#Gzzzp_p111!P$O4I__? s$)"4b:22rڴiC1&)O`^EzyW D01{T P1j@@1 蘈-t:]@mmO D&bf̘)aLX,8CLUiH#[[[.?32- $R\\ +++Ͽ}vpp0fx񢕕?3ciiL͛úGGGꚙ.aaaJJJ8qDTWW-҇%gXxVE3ƣ8g"1f C@ f*fh,XDGQVVZxEXX؆72iT P1j@@T +Ch/_e">3FA/{2,pT P1j@@ikY IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter.html0000644001725400016040000004226513273140101022210 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSSerializerFilter Class Referenceabstract

    #include <DOMLSSerializerFilter.hpp>

    Inheritance diagram for xercesc::DOMLSSerializerFilter:

    Public Member Functions

    Destructor
    virtual ~DOMLSSerializerFilter ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual FilterAction acceptNode (const DOMNode *node) const =0
     Interface from DOMNodeFilter, to be implemented by implementation (derived class) More...
     
    virtual ShowType getWhatToShow () const =0
     Tells the DOMLSSerializer what types of nodes to show to the filter. More...
     
    - Public Member Functions inherited from xercesc::DOMNodeFilter
    virtual ~DOMNodeFilter ()
     Destructor. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSSerializerFilter ()
     
    - Protected Member Functions inherited from xercesc::DOMNodeFilter
     DOMNodeFilter ()
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNodeFilter
    enum  FilterAction { FILTER_ACCEPT = 1, FILTER_REJECT = 2, FILTER_SKIP = 3 }
     Constants returned by acceptNode. More...
     
    enum  ShowTypeMasks {
      SHOW_ALL = 0x0000FFFF, SHOW_ELEMENT = 0x00000001, SHOW_ATTRIBUTE = 0x00000002, SHOW_TEXT = 0x00000004,
      SHOW_CDATA_SECTION = 0x00000008, SHOW_ENTITY_REFERENCE = 0x00000010, SHOW_ENTITY = 0x00000020, SHOW_PROCESSING_INSTRUCTION = 0x00000040,
      SHOW_COMMENT = 0x00000080, SHOW_DOCUMENT = 0x00000100, SHOW_DOCUMENT_TYPE = 0x00000200, SHOW_DOCUMENT_FRAGMENT = 0x00000400,
      SHOW_NOTATION = 0x00000800
    }
     Constants for whatToShow. More...
     
    typedef unsigned long ShowType
     

    Constructor & Destructor Documentation

    xercesc::DOMLSSerializerFilter::DOMLSSerializerFilter ( )
    inlineprotected
    virtual xercesc::DOMLSSerializerFilter::~DOMLSSerializerFilter ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual FilterAction xercesc::DOMLSSerializerFilter::acceptNode ( const DOMNode node) const
    pure virtual

    Interface from DOMNodeFilter, to be implemented by implementation (derived class)

    Implements xercesc::DOMNodeFilter.

    virtual ShowType xercesc::DOMLSSerializerFilter::getWhatToShow ( ) const
    pure virtual

    Tells the DOMLSSerializer what types of nodes to show to the filter.

    See DOMNodeFilter for definition of the constants. The constant SHOW_ATTRIBUTE is meaningless here, attribute nodes will never be passed to a DOMLSSerializerFilter.

    Returns
    The constants of what types of nodes to show.
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__dep__incl.png0000644001725400016040000002435713273140100021566 00000000000000PNG  IHDR!VbKGD IDATxg@I'P@i!t ETĆx]""bNE쨯DQP,XNԓSQA)bn0arCl>Nfy&Y AE" GQFPݣ(#Q06nHP$ \cjjzQ09 #RpE{ H$$=AcRSShEAuGQFPݣ(#bӽ/>p@SSobŊ3g^:>>fst زeSUU>UUUNNN..!zP9sk>>>BUNޟ:uƍVjii?jmm C@@s缽SRR6mp 555\SbM:TWWϛ7O ^^^bɓŻwNHHؼyszzzTTX,+*Խ.@=z={._}Q;;;SSɓ'GEEܿ0vT/^ڊ7ph4VZ%zmllbYQT̝;733>MIIbO>/NIIOSSS]O|-;99ݿٲeϿzÇf͚uo!==}ҥ+-bݣX,V6믿-[6wf RnnnW^픁ryH3gow[(9_z=gΜm  >ך~ gKKN,--+++#F]:;iҤ,9sfժUϟ r ߺu%,8.ׯ_>{XalvU*---222 ٳͧO$%%Z[[íx3rĉ~P[[UΗ/_FGGo޼9&&FpP@r<pX,vʔ)pW'##cȑEէMXd@SSSkk+WrR`߿O?Dss󀀀,alvUjӧOtᨪ?>((HOOA^z덌G2nܸ'N9?\dɣGp  <^@P%%%cǎPRR2dÇWX!񝎹 Ã{!ͮJok ȑ#mmmVVV.Jr88Vsa0/^ptt^tŋͬ`0|% tAН;wS˗/=g0FZXXի`QjP(?wֱcLLL0a vUxiooߵk׮]&Nd2Oߢb,w@w=I 3~?ofK@ qs>Аcǎ -[Jnܸ1++B<<00@ ]GZ[[kkkɩS>|ɓkkkd͛oݺ%jkk0L;::V \xɓ'Ο?">g.}6m/Y]]3gpW\K@ q֭D͹sx{Ν铑3DRQQtmwww=qqq f0޼?+V8uꔿ?2eJ@@0,ehh8rH{ijjݻo߾K,qvv޼y׹x ONZzԩS8Í3̓'O6o|ʕ說*'''???#Gro_SA'sN\UU1!{t~2hИ3g^ |å 1T~ "9=2EAuջw$lAH!ȝ<155UiXl_ZCC\ cѧEssaD6JJH~G?_F^Geo]抪*>(e͚}t_E{>$$d͝{N`3fhh`;pĽwBaWX}n;a8ήǺWS/\8DZٜ怀|$Fh??U*0UU\qq ޿|{8΂cv횯)6Qz ëWesr=^`mm! Ξ=o7`0^G}joP:5\Vž=6]R(Ժ_e~x|VM$ha4Db0ƍӏ]ܻ'fԺ|= EÁƏ}x{pb~HE""ʮ{@߾>>x6Iى{Evpx/fet~PR_򢲲qi?Leݻ 틲ڎAHF?,66 i_ĺrD [O2gmII]xMSSWH(]{_Yx7Kv]`ڵWEF1.{Ͳ9 d/YUZZCC-QXɩ{7ǎ9)z .:GuuU?mmH(Q{A__/P^0{-Ϟ]"]Q?rrebR0Ο_С{F9ʢ{&83} #"H'Ou }Q@e̚/7Dڑh\4x0a(J޷N{uٳGZui_ ŋiT*}کH;c0ѣ^Dos~;bCuq+pҥX,fŊ؎(觭W;"HոxqŇAAWgY(i4ٳW;CFE޻x Ҿ( gp8ʕSvD 8:;xtȃ}{yJ<[EKK榠%K&8tE٫EǪx??';wstwi_=Jx1mzMM5}'X,-[C!펼p!MUm#o_--fF1uqb54b`uʼʭ[#\$ ކ׮eEE"g9O/@$Cݶm`P@''|yժvD:-]5f=C[͞}X9?f@܊%\٠9tA!Q4ݟ9-ǎ#RllPHJ>T?yaj%j치^<=x?E@]+bgDGp 6 uIѧ|, 2x<ٳg\ (μ4:=))gL7oP({{7J1Y`…S[,Oqd633#Hv EfQ+g%(AAtmUAǥKG@Atb%Q,oGQAtz۹}EAQ߸bq|  @CBBFկ_߿bqZYYA_1c)))3D{%bXGt1g$ŋj Kƌ/3Q MLLn޼inn~1ݻw?zmȐ! ,*//3$&&rMݹso(ill2@8xT}bb`0WNNNOqHk׮q:ׯ_ {lvƍn/Sbw3!!nnlc  =*%9gddnٵk׆Bksss!t\\\ も8sBB%† V]] vkS@'O|[;---l6ӧfwttp7oIII|T$)ۻɫ{pF΄ Ib a^^ ocrOI$ʕ+'ӯ_?Jc.VVVa( GFFFS---alvUaTUU[ZZF-rjkkl6+%gy3`_^t))o,}VqAЙ3gf͚z{{޽;znnn洴R;`ep!܆Jfff cRK[[… CBBrssO>-#iiiIa|19{,{,UQ___SSSUUSww2,:gg߼ys„ &&&8# ΎH$O?TRRm6ޏ,XZQQQPP)jiiwtt̛ܹʢE޼yݕ񘘘/_ I2 ^B/ ߿bff][[˛%88xĈÇ߻wokk+,ܚ"##;V-&&fammm7G==UVta Yd:88hjj‰G533;}Hϟ.]gddaÆgΜQ=% @ {D.u_RRmFrH$FEE!b|c"{7O_:ȥ fͲyY@SQm̙vE?߽aoo#(r$'Efdd,\P\.I x:]EKCMo: A,VrO?ňA ҢҢJp80dHl͊ &QdoYxT?{6ر{TTpC8Lϯ,(V}[`0X*`̛g{^d1X~~eTܹT*6r''PH''GG?-,qp8,zw?עpwwQ"vy욚/f)HNII]VVY['~q8jjoPUڵ,}_IN2iG$B@vW1 }}^M@8x0߾!O(,ӧʞ= 2=Y_ $7OMfsNFIQ_W*9|<9. Q,yCIәObY׻1cj a811&OY^W;r|<gk;ȑEbӧ&7fGF>jhh骈"pǏ+d''#t#{!= %o0M[/q/]Z)q7o(te29QQOb_ݿ~]Q_߬`I 믐={55jws8￯O\aajŎ~Z]$ZIIykj3t!Ҏ&}RC~QQsv0oׯ+Oaa!. ((bsCoRy ·jwiiEaa7++׮n4emmꚿIpشmJi.đ}ΝvDTH~+WtY{SS+WX,DzXnee( @))45z=|t#U66`0}U :ԨKEE ߿A9''O"['ݱfCCu׻ u!ĢjibbvHȵ#Ls_3~qҎ􆲲K-[3tgn~{;:XUUTAYoD_$r7ǿҒx ̑32^jIDgHIymۍfFX??ٜ㮥A&oȁƔԅ%=^16<| /O77'ϧȴ߿ #C>ҥ4kk;wƎGca^&IMce|_2B2x~f&i/Auooo; !kRoO-_`]k>򹽝Ky -l義uǎ3g0))N/,,TQр# _BJCC̍`r8Ѝ~嶊 ŞD|9=Rc2~'<ϋaÌ*E*oM͛g'bhb!Ӕ59r̉->ܤ͉e&]/"R\Xv4iĆ Ȩsr[[; x$,,w֭3eyp ~^ >=D 55_ O]!_s%\Fc(Td}ZZɈ5/_W&G2C"okxg""?^DP׬q:@3` LFu/|I`Md%zH=Ғhh%y^ K eʔEgfNh)RRކ%56[䪐 \?3i/a0@L>wvn&zeeh{499L&[Һom8s>2ys̭4Yĝ }VHDϔ))oCCaashg-{$ylo/ݻO۷.[`Νdzt04P#dp䐭O V4Zێ7O}'Q`0Adr—۪v6<:={Ν/ ˊ%IDAT_$ki[Y`Aۓ+/:K{j+"T-ge K{yb? h ee l6GyeK^ ux^(5,,=g4=\_[KsY}{RII-[foA v 3P~^,GƦkkiAAzz))Ammu V1cb<]}WuR\_2eH/_TzzIX؍+5?^S*cY^`P/uz#GnbvN i Dbx @uGQFPݣ(#==A?N 5jT~Ə~$ 730LIIɷ}(H4n~HJJJtSo/^TWWS(X6f̘&qeggGDD䄆ǻr󹦨TgD @q" >޲e*,C?n1S3eʔptӦM'Ofkii4hPtt4\m۶mO/^8cƌN6V$^:]{!HŒcJ4nU':"ڿ`0WNNNOq OI$ҵkנ_ٕZZZ8pzCĠv"^hܸܹsĄJ~!CtsrsLfHHH a2|ckoo044_sM |ֺ_Oty=A񭯯T$==.CCׯ_CԤM8ٳi4ڍ7 pK3mڴLKK]vM| Xk؈ejjj ^| AÇ^PPPXX8a„M69#""<<<*++ ƌuV{{{;;;1 OOO* hll@. /}FF@]vmhh(Aqqq|m‰}b |_$'>nZ4*jjjjccСCwq V]]  8=po޼ӓx D\wYb,,,چyyy2;{J"!~夕?6BHq7 l|ժUo߾ S***Ჶvwwˍ WWײ28]ֲlrܜMTQQTWtUﲨ ̙3fJqooݻw΋nnn洴ɇ1*QhxS\\\ccr8//o߾}1@~yTjff&.Ll p8[KKKMLLN/]yU˝Za9y晚655~eС?>i$.YɉkN`06mdllERak4[jN[&ࠩ }ϟ?/]TOOhÆ ]{C|=]q{yzqe?ע"tFIt(GQ_n >> }= QT({e=2RoZ(IENDB`XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__dep__incl.md50000644001725400016040000000004013273140077020015 00000000000000088103590374acab6cd6b47608d87652XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMText-members.html0000644001725400016040000006647713273140100021060 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMText Member List

    This is the complete list of members for xercesc::DOMText, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    appendData(const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterDatapure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMCharacterData()xercesc::DOMCharacterDatainlineprotected
    DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterDatainlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMText()xercesc::DOMTextinlineprotected
    DOMText(const DOMText &other)xercesc::DOMTextinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getData() const =0xercesc::DOMCharacterDatapure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getIsElementContentWhitespace() const =0xercesc::DOMTextpure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLength() const =0xercesc::DOMCharacterDatapure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getWholeText() const =0xercesc::DOMTextpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isIgnorableWhitespace() const =0xercesc::DOMTextpure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    replaceWholeText(const XMLCh *content)=0xercesc::DOMTextpure virtual
    setData(const XMLCh *data)=0xercesc::DOMCharacterDatapure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    splitText(XMLSize_t offset)=0xercesc::DOMTextpure virtual
    substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterDatapure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMCharacterData()xercesc::DOMCharacterDatainlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMText()xercesc::DOMTextinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__incl.md50000644001725400016040000000004013273140077017411 000000000000004be9523361e766af788cb8b6c72997a4XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp_source.html0000644001725400016040000005132013273140077020017 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMTreeWalker.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMTreeWalker.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMTREEWALKER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMTREEWALKER_HPP
    24 
    25 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    50 class CDOM_EXPORT DOMTreeWalker {
    51 protected:
    52  // -----------------------------------------------------------------------
    53  // Hidden constructors
    54  // -----------------------------------------------------------------------
    60 
    61 private:
    62  // -----------------------------------------------------------------------
    63  // Unimplemented constructors and operators
    64  // -----------------------------------------------------------------------
    67  DOMTreeWalker & operator = (const DOMTreeWalker &);
    69 
    70 public:
    71  // -----------------------------------------------------------------------
    72  // All constructors are hidden, just the destructor is available
    73  // -----------------------------------------------------------------------
    80  virtual ~DOMTreeWalker() {};
    82 
    83  // -----------------------------------------------------------------------
    84  // Virtual DOMTreeWalker interface
    85  // -----------------------------------------------------------------------
    88  // -----------------------------------------------------------------------
    89  // Getter methods
    90  // -----------------------------------------------------------------------
    91 
    98  virtual DOMNode* getRoot() = 0;
    109  virtual DOMNodeFilter::ShowType getWhatToShow()= 0;
    110 
    116  virtual DOMNodeFilter* getFilter()= 0;
    117 
    135  virtual bool getExpandEntityReferences()= 0;
    136 
    142  virtual DOMNode* getCurrentNode()= 0;
    143 
    144  // -----------------------------------------------------------------------
    145  // Query methods
    146  // -----------------------------------------------------------------------
    158  virtual DOMNode* parentNode()= 0;
    159 
    170  virtual DOMNode* firstChild()= 0;
    171 
    182  virtual DOMNode* lastChild()= 0;
    183 
    194  virtual DOMNode* previousSibling()= 0;
    195 
    205  virtual DOMNode* nextSibling()= 0;
    206 
    219  virtual DOMNode* previousNode()= 0;
    220 
    232  virtual DOMNode* nextNode()= 0;
    233 
    234  // -----------------------------------------------------------------------
    235  // Setter methods
    236  // -----------------------------------------------------------------------
    254  virtual void setCurrentNode(DOMNode* currentNode)= 0;
    256 
    257  // -----------------------------------------------------------------------
    258  // Non-standard Extension
    259  // -----------------------------------------------------------------------
    268  virtual void release() = 0;
    270 };
    271 
    272 #define GetDOMTreeWalkerMemoryManager GET_INDIRECT_MM(fCurrentNode)
    273 
    274 XERCES_CPP_NAMESPACE_END
    275 
    276 #endif
    unsigned long ShowType
    Definition: DOMNodeFilter.hpp:193
    DOMTreeWalker()
    Definition: DOMTreeWalker.hpp:57
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document ...
    Definition: DOMTreeWalker.hpp:50
    DOMTreeWalker(const DOMTreeWalker &)
    Definition: DOMTreeWalker.hpp:58
    Filters are objects that know how to &quot;filter out&quot; nodes.
    Definition: DOMNodeFilter.hpp:49
    virtual ~DOMTreeWalker()
    Destructor.
    Definition: DOMTreeWalker.hpp:80
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1XMLPlatformUtils-members.html0000644001725400016040000004532113273140077022760 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::XMLPlatformUtils Member List

    This is the complete list of members for xercesc::XMLPlatformUtils, including all inherited members.

    alignPointerForNewBlockAllocation(XMLSize_t ptrSize)xercesc::XMLPlatformUtilsinlinestatic
    closeFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    closeMutex(void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    curFilePos(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    fgAtomicMutexxercesc::XMLPlatformUtilsstatic
    fgDefaultPanicHandlerxercesc::XMLPlatformUtilsstatic
    fgFileMgrxercesc::XMLPlatformUtilsstatic
    fgMemoryManagerxercesc::XMLPlatformUtilsstatic
    fgMutexMgrxercesc::XMLPlatformUtilsstatic
    fgNetAccessorxercesc::XMLPlatformUtilsstatic
    fgSSE2okxercesc::XMLPlatformUtilsstatic
    fgTransServicexercesc::XMLPlatformUtilsstatic
    fgUserPanicHandlerxercesc::XMLPlatformUtilsstatic
    fgXMLChBigEndianxercesc::XMLPlatformUtilsstatic
    fileSize(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    getCurrentDirectory(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    getCurrentMillis()xercesc::XMLPlatformUtilsstatic
    getFullPath(const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    Initialize(const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtilsstatic
    Initialize(XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtilsstatic
    isAnySlash(XMLCh c)xercesc::XMLPlatformUtilsinlinestatic
    isNELRecognized()xercesc::XMLPlatformUtilsstatic
    isRelative(const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    isStrictIANAEncoding()xercesc::XMLPlatformUtilsstatic
    loadMsgSet(const XMLCh *const msgDomain)xercesc::XMLPlatformUtilsstatic
    lockMutex(void *const mtxHandle)xercesc::XMLPlatformUtilsstatic
    makeFileMgr(MemoryManager *const manager)xercesc::XMLPlatformUtilsstatic
    makeMutex(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    makeMutexMgr(MemoryManager *const manager)xercesc::XMLPlatformUtilsstatic
    openFile(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFile(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFileToWrite(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openFileToWrite(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    openStdInHandle(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    panic(const PanicHandler::PanicReasons reason)xercesc::XMLPlatformUtilsstatic
    readFileBuffer(FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    recognizeNEL(bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    removeDotDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    removeDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    resetFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    strictIANAEncoding(const bool state)xercesc::XMLPlatformUtilsstatic
    Terminate()xercesc::XMLPlatformUtilsstatic
    unlockMutex(void *const mtxHandle)xercesc::XMLPlatformUtilsstatic
    weavePaths(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    writeBufferToFile(FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtilsstatic
    XQilla-2.3.4/docs/dom3-api/functions_0x75.html0000644001725400016040000001104513273140100015651 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - u -

    XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp.html0000644001725400016040000001154113273140101015750 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMElement.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMElement.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMElement
     By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeList.html0000644001725400016040000002452113273140100020205 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeList Class Referenceabstract

    The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...

    #include <DOMNodeList.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMNodeList ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual DOMNodeitem (XMLSize_t index) const =0
     Returns the index item in the collection. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of nodes in the list. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNodeList ()
     

    Detailed Description

    The DOMNodeList interface provides the abstraction of an ordered collection of nodes.

    DOMNodeLists are created by DOMDocument::getElementsByTagName(), DOMNode::getChildNodes(),

    The items in the DOMNodeList are accessible via an integral index, starting from 0.

    DOMNodeLists are "live", in that any changes to the document tree are immediately reflected in any DOMNodeLists that may have been created for that tree.

    Constructor & Destructor Documentation

    xercesc::DOMNodeList::DOMNodeList ( )
    inlineprotected
    virtual xercesc::DOMNodeList::~DOMNodeList ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual XMLSize_t xercesc::DOMNodeList::getLength ( ) const
    pure virtual

    Returns the number of nodes in the list.

    The range of valid child node indices is 0 to length-1 inclusive.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNodeList::item ( XMLSize_t  index) const
    pure virtual

    Returns the index item in the collection.

    If index is greater than or equal to the number of nodes in the list, this returns null.

    Parameters
    indexIndex into the collection.
    Returns
    The node at the indexth position in the DOMNodeList, or null if that is not a valid index.
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSException__inherit__graph.png0000644001725400016040000001102413273140101023675 00000000000000PNG  IHDRpt%bKGDIDATxyTWoHPD @R\8.*H *(U<*Q= .zT(APEe+J ,z MR`B;ô)~}<<8@ n H@RдɓȾ1LR111cǎ}mO*PUUUZZ٠iiiUUUԪA2224;BѲ'B A $ )xDQ`رAAA9ɓG1cƌÇd2wܸqJ-ZDP'x jll|;R% @EEkmmMNN6mP(D"ӫcccݻyҥ6mݻѳhѢ[nEGG;88Ϛ5+""BX,r<4M,=zTP(eC TDuu5qNIC߇ZXXpX/^ t}ѫhʌ5ѣGvvvъHTWW7iҤh@ HJJ矯ݕ@ O H X[[;99!'Nx]XX8e8Ẻ:'L D[Ջ;vL rHק]l.۷o3Lq<55ucs|fF+ t;;;z%Jߠ=;;V\\ ;f@S@@88pJvtt:Pccc8/_µz8^VVkhhrƍ~5˗/;;;öEaaKBB‚ ߒ;;;\흘*~Rf8LD"jkktZ(0?CS4%m_ZZZ<<ڵZ uD$ ܼ@"mDz m<$ dg *b@RHݼVL^X ڨ'H@j((䊖>?U<$ 5]"fe`9H@A.xEECgh )+j MvV H̻j_xffۏg --\pmii3sʊPo wTG Y|6?BC$&@/ H@R !H H@R !H H@R !H H@R !H H@R !H H@R !H H@R !H H@R !H @ii)ciݵVZZWd2YTTPŇ߿)Z77]cJt H@R !HigD|aaa 0bR]]lll\\\T*xvUUUjeefaCq$%%== @OOO)|J}qqq,K.!!!}',,$44ϟ{uttMMMvvvp(HT[>}G~ӧE"Qxxb09ݿx7n^z=1QF1̩S>?NdeexǏ$''wﮭ---9ydKKKjj*\aXttwZZZ``#G0 R`0"""T۪X[[?{ |>qz"{)lO4I"455kjj̙Z8NMM/IOOP\aU4eRL57'''&&wܹ|~ V ԩS\.766ʕ+^VVm͛aٳD7008{lrr2}rww_bLlvnnj!;wxbRRR[[ ^vEm&OLǎ;0 .Toܸ[mܸQWWO? /k+Xj[xH yЬNOO'j9?HDU ,Y2Q 0۷uH@r !H j$t+9s6/q'~~~o ғhbk )@B Apm!ZIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMStringList-members.html0000644001725400016040000001021313273140100022207 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMStringList Member List

    This is the complete list of members for xercesc::DOMStringList, including all inherited members.

    contains(const XMLCh *) const =0xercesc::DOMStringListpure virtual
    DOMStringList()xercesc::DOMStringListinlineprotected
    getLength() const =0xercesc::DOMStringListpure virtual
    item(XMLSize_t index) const =0xercesc::DOMStringListpure virtual
    release()=0xercesc::DOMStringListpure virtual
    ~DOMStringList()xercesc::DOMStringListinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.md50000644001725400016040000000004013273140100024467 00000000000000f38f8df79377fd421b4da429bf15258fXQilla-2.3.4/docs/dom3-api/dir_a966b93a1c6e79656fff2d418d5de6c3_dep.png0000644001725400016040000000304113273140101021051 00000000000000PNG  IHDR}M*ZybKGDIDATx_LSgVKE0J&(n5&&&t2" i(N,1VE 0fb ZJBVuvх8w>7Oiބ?ccc] zuǠcPw A1;uǠcPw -bQ$MV~}322oǯ?L686U'N^3[kվ>A1;uǐjkLL؄ !!b'g[bսĸᗌ+6r:Ǚi.]`mOOwLL]הugJ\7nܜd2>{d*9|œ' ;;owy_x]P,}߾ǎ۟g~{u8Pymt˗3Εjcsn2* /+n*RPTWaas3D=$D]WWm69mɒj0kAyy鈋[6Nc93owWp\EEY@\9+--ΫpvXzʎOq+r媭b91=~vb2o**J_رd2&%}\WW]V?CB妒/6mDJI,''?:5)iÇv zunz?;/\-Mfr}fcPw A1;uǠcPw A1~Ǒ#ơ'®)s@jAןY2!2r55Ydvgf,VXX A1;uǠcPw A1;uǠcHHf]ߏ+ťyBJ9۟{TV~g*DcXM`Fwl/-k,S+VD76^]aݻ74N#77}/ܱ EE:yRwn7q ֭/CͿh4unuщw2؛7oc}㸆j߾󬬔/bvW*Cc摑W׽}ӻ$ -Mred[&Y'E YY9QQ%$YX5]gx`FyTM}}cP$zncdnϙE UMcPw A1;uǠcPw A1;uǠcPw zMM? #pwnГQ%'y~K(w7LE;uǠcPw AAD+R2WI~jz{{oz銈XvNB;uǠcPw A1;uǠcPw I<\@IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_10.md50000644001725400016040000000004013273140100015713 00000000000000d840e8a46471265656fff18d013b5592XQilla-2.3.4/docs/dom3-api/inherit_graph_25.png0000644001725400016040000000372313273140101016034 00000000000000PNG  IHDR%|bKGDIDATx}HS]Rל|:M|IMQbZJD K{"9 [eDAj,ҐlnB֌eݵg<ͧ9{{wϽ(B@t, -:' sJD"HGBӰX ^E"Qww<WQ( ^ׯoll! :' sB8+BBBrrrT* A /^xڵgΜ1L6""yzz:B!$wwwgRtަ=8gϞ)ʱׯkDFt5kx񢨨>--l6FGGT=y6Rd_Pdddddd?akX6lP\\)))& ?Aׇ"-9q~ƍxNBq]n߾mkkkk`` a[nX`0fff@ P($88'''/[-..F޼y`2%l(ʡC޽uuu... u322%-Je0޾j*:Y|^^^Ν@kjjV\yv4x |zٽ{Ǐ?;vxL&KLL<~0 ==Ç1112L.'%%8R (k׮ەk4Td6 K,OJ"Lӧ~~~H+&KNOLLzJ:N}!???77%jT*5//oll }J>}$<ðZϟkkk߿Rbqxx8vAfnXR<T*Q[,'$$ _e2022۶*Zv ,N3͎ _qÇ uuuiii9 hѢAׯCCCzl6?~Z#4 Wohh@.3K_!eee...֛ F-@NOOr6 B<<soV{xwhhтL5Sf955ԩSjdѣGy<zCHJJ:rWt$..N.r6~G*HњT*իWi4ht$es$Y,FAG|qƎ7o477İ쩩)hUћ6ms}~@"'(JGG`(,,$]UUb>]ܹV!Z677wҥ˖-;p`ujj `deea*4ְ0*2mnPPPvv6=DX:# '''B(H.]" fOOϷoߢnEEWPPPuuuVV/l c0т$H[[T*ŻMMMd_I~Lk׮ɞ'O۷o]d~(,,r**444//s* BHNއW9!}uN<7) #Hx=vؼWaX)? 9_W9!}uN2q̃0zIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.png0000644001725400016040000001003413273140101022754 00000000000000PNG  IHDRpm.bKGDIDATx{T'$@!""*R^EZAŊЖJP#(ڈ FDcK $PAMRUcz$~f3ߝn64H@14PB"%$"PB"Cߴnݺ E?aٙ4U+F1cƸq^V`@,>}ZN*piQs$"PB"%$"PB"BH'$$tvv3TTkk~oh4o2h---0âEZZZh4Z?cP~ZD񺺺N*.B[oٳaӦMYZ-&(LV]]M.䫂B qhnn&6u:]pp֭[fJJJPPF!2(JwwÇC͛7{;E rvvvfhnn6ؘP^ GIIL&|QFx|Hs:믿2ױcLjuR ;tzGGaa2nccsW$闣իWccc---.]ԇ1`ٹˡCfϞMVUUyzzt<ܐZ6$$$""ݻ}b1@V2B!5j۷ݺu f6X[tb3g\~=atpp N&A)roƘZtEEER4))ߗJ iΜ9p3>>~ǎRIX{=BqŚx|hqrr݃5;wn`\Gjڙ3gܹS*:;;@ ӧO_f yضmD"(00pŊƼj5L&SVsc$.?l\.{ω'ݽ{W b:ի'MF٫GB:YpsҥD>>>[nvtt,..H$eee0~hvPsX,T*q룏>3f}rrJ" aXJJ͒%Kd2{px 333ooN>9M>YǍOpW*ׯٵkWww7 ukYfJ˗/gXk׮U&##wށ=XfH q(!(!(! < )/-lˍmxXXpF:ffIsjuPNGyAnf[&뮩iXąMM馦tac^P3ŋM==ڞŋM7yAYȊ;j3V{\}dVPR h4199:芬 VQqxCѕF6Y!Dlju/F*Y!ϞsϿ9"V6t/HmTTT BbŋM=h YTtG/*R,65u:B8$/?X5ryV`nWMt{8ox@[K@&@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 䗷VWW3̌ef(Q]]M$ pHGOo.H/44%C1XoB͑@ @ ]l@ˆUlmm #aǎH$nnnAAAqqqt:8q 6ܸqՕ\8O?zѲes)$,KӉg&''wVVVUV3庸ܿѣ7oܷo P(ȟ& OdʕϟXYY-Yq@vhspp2eΝ;Y,VQQuq[[iӦ젠2! ~]R[[;yd CuuuMrrr/P1`!kkkccc r4Mnnϟh=zظx۷oxŋ޽[T!""".]?ZAwxt/h4ڼyJ'$$a2qqqp344xK?ҟ HLL7oީSW,X!ٸtV###'ʀ|wrrrd2YNNW_}d2|>_"۷gΜٸqcSSSuuݻbqaa!ܫaXZZZLL̩S/_a7nkkևf?~T*R)1lxzz>|}}}jukk+@R5663c~bիWsrr\n^^B8x @ Ɛ[g566DGG{{{CcYY_|roܸSL=<<&Lac^===8j33 .t3g~zh4&&&ptv횟ѣə?+&&j C(***""",vΝ[PPo>޾pBb&GƏ?~xc^YYY|>yyy-]tO[[ ή% ˋ HJJ28988ۃIPPPuuGCC_)2ɓ'Ν 8x͛&++ V_۷O0RWWl2^Ϟ=tiiir %%%3f̀3g<~)Sið'OO)??nHt5 Shh]Ǝ;PwȀV,Xe˖Zh :|pGGǽ{bWDDđ#G߿쎎c^4-55ZR0 sssc*T? RӧMMM[lH$|ܕ(֭[wƍ_~eժUkI&/@Ʌȓhڂb\dvL???kk뤤XFsܧO^b6c . ^fff6m{䉋˶m̌{©Y&9N~~>1[XXxǏXEkv7Q8|ggg?? ^tɘ4/_yUgΜYx0z#Gvibx]xD")++;w)r߹\nTTTG{ %%%G"%$"PB"%$"X?jGӦM#KL7m4CHDDJHDD6lnhIENDB`XQilla-2.3.4/docs/dom3-api/StDOMNode_8hpp.html0000644001725400016040000001316313273140101015555 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    StDOMNode.hpp File Reference
    Include dependency graph for StDOMNode.hpp:

    Go to the source code of this file.

    Classes

    class  xercesc::StDOMNode< T >
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Typedefs

    typedef DOMNode * xercesc::DOMNodeSPtr
     
    typedef DOMAttr * xercesc::DOMAttrSPtr
     
    typedef DOMElement * xercesc::DOMElementSPtr
     
    XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp__dep__incl.png0000644001725400016040000002572113273140100021145 00000000000000PNG  IHDRJ@ZbKGD IDATxyj(F,ulPZZe4'aÆN0b0OovƌXܹs/\V.]4m4F}}ׯ_xd1̚5+119өTci3SVV3\mm-X6R({._<22ϏC ؇߿cUOp'jkk w]QQ ruuyii'OW?~|nnnϧObcc] fff'Nsttܹs{3g^xA"^zuyAoii|, R=&&҂ jmmeWݾ}|SN{.**ҒCOp/}PRR4iRddGRR2222&&&""\UUH$2`ffbggҲ|ddӧڪqAƮMN:E$͝{-F9"''7 +WZXXlٲ%99Y__Ν;#m6==hn {O忺::@L xAGäN!@|)GARǷh8%"q8I!\)Sk$RkLLV~R(Tp..?s+[Z{ &}v20HMݤ E tyM$׮sJoUUyO9Gxcc^wtD"ƍ|n5 Q}WUU9"סkA\!\ '//v@ij\K p-W_pvK,չE]]!5ohp1+' =Koiimx\&%w$uHN~|Jsw. !qqO2E fIF8᜕c2'Sݸ1ÇJ Nra/KKy{p;w::hsw7N<xw煡聁W._~6|˗{Y 47S_ϏXt ܺP NOﶶScb=rđ]Q)5q}BB`EQxXwSGpd#hvvqTތf x ۷q9:6,&&ŋ/'Nd9/Wux<\cOYllvr ))˧[g*dD`鍢hBB=7&LP=uj&_ktTqXb?Jm-91YTԓ:CCMA I?M~~xqرL>5>AGƍo'Mfbggŋ@ \R"}FQ.&F`!wp0rp0zStǎ[zU3| 3nQ r{IG8 ɪI&Stu{t,=KmBBn\S:nk;sΘ1J FKo7>#݁K]\~L{b7-1yddFyywwS'>}TxEE׮"T=pȈqkkpr:miy4>>B :4HX#YผDZ8xp^b{ǫyuڴǎAth6Q=|5vv>ʲ<`~s^ϝ24ܷqc۷ ${wt~ҭ[˗O\o{sNMIyJ#Q LGHxț)kDݻœ"iѣG[%.DE=20uի#]E__ 5e>r䮣4/9}Zz$z/ma0j^h}n\]XXZ\No!//7jp6iNήӧ]ꚗ,9aeu<)) .,|yĤIII>ÆIse[D[uu.c`ĵ~|3Sh; ?X(f0Nz}[>qZLSFCcΝ^:p`iA73NNx+%%+VDhk+ĸ gRRbVv8q͚hBZk+67?}qpTLHƺ߿Ӧ8x0AСA}ԯ.+v񢧔bKOOaσ\bƌ<=c_*踠^{z768;G*s[(*JX<{Qj? i Hӻ~}lcc H`b> qWSsecర- ^rorۍ퍃ĴiM9yB1¯/[IIyN?^ALKKqEyyA[,x7{!W( ^ӧ%ܼRA(zM,-6mQ@@PUU¢M7&HI? b`.sbB1B}DzNNɓr3%%W9u%KNܺU@ i.,~]lKp B1 _X(FzTkjeu|0+W6nZXs 4O9J*h}hڷo?q܆xP̌P _uoޔGD{b--E>X(FPIoEw6q"PB1Mz'%x8-+s2hX(8ws3[Wy![~6? FB1܄C"n {v(B>\UF|΋[³L )JQYб ,r/(jLmQ(;v TZ[[]]]++{YiSSAG1t^ؤ7d9:NI\ꓦ&WWWn@y`s읗۷..>ؤ͛Ʃ?5QshѢ .bMkᣑ$XOCԸ8KMM ́'O122 RiuttXnTFL&o޼yԨQ:::{ikkܢE>ljrYII gC9[\X˯D"yiEEEiiiLL D:ujCnHjjj駟BCC_|}KKKO ~򥰰T}}Ǐ97??ի߾}NII d <33NZ_veyqs //uVn&XjXĎ=D"ܹy4@qq1Na7o611Rdٳgivzy &Kyy\Fgff`JKK=6ZV;BL9 \X߿׍9P}6 %%u:88\r}e˖qlxx?NSSӯ_؈oLMM2eC=|PCC#++֭[&M=zt\\BGGG``R```GGT,sBHHc)))cǎURRڸq#Ba۳?@vry?y30?")swt~u-]ˣ(Z__a$;;[YYݻw***^BQARRpO=555111KK#G|9&TRRtҟ~ .C Yn]ii)VWWc=zTUU%&&QQQM d2߾}+**:umۘaEH$իWCnn޽{ʲ@\q^:X pX(8Nwtt\'VUUw[[}Xrrrl߾ExKKK6ٮ (RO8'$$0a g&P(o߾%4-33kP#GMMM4 EqUTT`0O@Q; el{r?yL9 tya;""bƌmmm=K矎o"pnCslu^Z/^444>Lr3֦鶶gΜA9 d2ҥK?:{n55aHII166600Xv-ގl2)))ƷOw999X~>0Gڊ,,,gۓ/ Az jr^ܜsvN]XXYZZ#TY`Kz…XT͡VV066njjJOO+W~Dd2]immutt gD$tzRRR]]M]]@QQ.2OK,ز|aĈz '.S΋KgA&cccx,[ZZԣkRSSSYYYVViggglPPPPuuEZZZqqקO͘{zzN6MIX ...NNNoӧO7o޼b R(!Cٳ< ͻz*Djoo'Kn߾ׯEEEVVVaaa,-GEE56vڭM6رqmO!$˔v`] >>>gw:g{#0rHgg窪*dr@@ĉ%%%~ƴŌ @XXK߈JݻwҤIZZZ[ne䀮wΏ?>tБ#GXBIIe,11q̘1C 7n\JJ GXv°a<<h!C1v.z29¡9^\W>7E[X{5ӧAǚ%% epIOHTn`M T_.ai>QRRIOHTn`M344{߽Akz?B^^2;X @E!gwoDAfcc 96KH IM-ts3I!!!111h4gWLtQJhzH<KuMz^t:5h7lRg)CAA@ \2EQP^.ֆRqv|޽cE흡FF nuuA$z::hiiϜ:iH77;;Cە  AuL~nO9zz#.h"u˗_Xrn*H<pp֦4#Fnʼnk8`sz޿:ay`5b]=ϩcǪ>zEPQ7oϟJN~1d . zIDATaو]onΜ9=Jo@llΝW/^45Fnhha;4#cfgGE=~ڵ3$$:s &mܘPQӀ#+&p)9ff˗Gu?`t /H߸+%%ӰxmKrD6ghTЧOw?1>>':IKK>>w vEz[}}Xw<[~!ۜg*~v̙cd> PT=*CJ^u& Fһ~_{,QL|F&Stu{t,Fɓ_njk;/LgY]M={vͼy$:8}AfHnˎjjj[dJXتz4pןZkiǭ ddWf"'蠠~wXS( [۩\ :}MT'O>8tٲa]RQkq81'55y&d2ggfϚ>w̖(sXKse~[xF}#>>'.)F1G[[IAAͲnn#F(UT4;xBOO)RSSXjxUo/]Z&tt:EEi KɔǗ3LDSR|IVV q}WzR2UBZZaGSӱW>w,%S[K@ȢE-#!!$R[T3~[6ZAA21޽#Pg~7mے):r ^/_j)P ]m. jΜq~~CwZ<LF`b44JO|ؽۓ):znY)P? Mĝ;͛w޽K8%S .F=|x+/r'’) >Ľ{m-3ںaY۷/DƙKL0LB(3qڭ[~/8ptP<K@#D UfΝ;a׮kg/XTO) WzcTT䢢>x&(躉I 梴R2y<,q07f g>rnBBm -i@’) ozDAHHߥ˗k.z,:ɏd++}l $:1ʲ8(蚵q;;í[ 1?~>>;!!Lo7f[ٳƬYmݺ`0!-K@AQT1޽{484]EqѶn}9~|Y{ڶgV;VS3gTWx@!\}WWמ b҆--i&^G[D*ׯOT $\;T*UZZI29@P?2$`zCȂ A" 7---'O,##cddLR\/F:b@7ӧ111$iԩ ؠ~)///44˗۷oOHHdKaa!Ǐ ;@ >|Gc?|ZYY.]_|F;wnRR7oΞ=[xl73An߾u :\?ONN^lYW߿_[[[AA!$$PRR HJJرc6nHPշ|PYYi``2wϳf"yccG,YUw}Utt;~ OMMuݻw:ġ' wp8_r:k֬aÆu5͛eddlmmXϣGL>=!HD$njWQQ)((`А(=s#8~(øqJKK9 FQ .:|;wssshhqSSSVVVzz:e ۇ>|򿫞$@5kjj*++233> HKK+..~Լc瞞ӦMSROèFsߴiSIII^^ގ;VZš' *L9#G:;;WUU1@&&N())o0-..FQ4##ҟglʶgjݺu=i ysmڴI-))|۞ݲ1bDtt4W ԝsӻwdee==={w())EDD' LoY0!Hd DLoYU@ ^Y~CDp)?sLA2) .$`zCȂ A" 7) IENDB`XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp__dep__incl.map0000644001725400016040000000023513273140100020057 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__dep__incl.md50000644001725400016040000000004013273140077021152 0000000000000084570ad2fb23ebe5b0d557b2a04b2ee6XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__incl.map0000644001725400016040000000006113273140100016213 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__dep__incl.png0000644001725400016040000002472013273140100020531 00000000000000PNG  IHDRwIbKGD IDATxw@g'=8Q~2օ (QW-T:Z6QGiUVDe#`J!McCp ~<{=rya!,.2,.*(⠠ .Kt @\&&&': YGߘzٳg]\\ONt @,UUU/^OPX0;v : [nڵ(\HdtAHdt_emm͟3fN، &ٿ)S,ZBo$?͛=z`0 bccܹSSSkcc榤$ ͛7%B˗,Y"NC"$22ȑ#<411ɓjjj>hjjz{{8qٷoLFUTTU?}:TYYC #d^ŋ!555WWhH14:3nܸ~ܹs[O8qɔ)S"##+**/| [nJKK;vlݻwsСt:Bǫç544eD3gNzz:255?l)++/Z(559}[n}i:nBUU… OyBBBNj-\!tKl.2o޼І|fp˭߿tRGGÇY!4|>xCCݻΝ҂=<<̙sA?nnngώ)ԨŽtdybbbPCCCMM lQ B_ufff.\0000!!R]6)W_}eaab÷nݪ|;w8p`5?d;vl߾}111x BCCGE%%% wȰx޽{ǎ󝐇FEEmڴ)::C LB"x<>M&N4=x`}x &$$$}޽{W\ٕ%66}t33333KFFF3KڬYN:o>0`銊 ӧ>"cX<_}1NngF ^]|.8]t ikk{i BfO8_2z><{;,,,_H$KKˮq*99?AikkWTT3& q͛7o^|?YY>QZZg455d2_yO.MhK "J$sAi555o߾}ۙL3ڰaãG޽㣣3w\IoOEE~׮]L& 0 ۳go㴴4}tttQQQQQwLUYYYXXiӦ .G)//Utt^_Rևb2mƎFE1L'͏??PUU=~xLLLdd7o mllh4` /^tttr͛77moEEEkjjZ[[/[E.\P[[JRׯ_ѣG@6meeϿr#GxzzHSz{{}!dkkqF6HPF`?Su9rd4oqssko/cǎo+Ϗ ;Xt/C||qVkF$ 1 R>}fϞ- ,D7l ,.2,.2邻#8p0*!}xdRT9zp!Ν⽃B4ԑFǏ޵"i4 ã(vv#-OAQ(eGuuMW\u+C$8Lڲe֚5Hu_?/pkB!s*ms挃t# [rbF"\  T/55Jڗ/m!DR8ʂv Fe} %%nxx!I60 ^d˖YӦ HA!DQ]T2_1 REba1+& F>>" ddB_[$@T*rԞ>|ؾ}6އTrNΛ[[[;2ݸa?kn'1k0cZ<$kcмaC+p]`6Lr֯_O4!QHJsΝ;T*l}P4B\Iײ2++ 6HN 㜝L0LsYz %ѯ_?''' tyWY ]eY ]dWWW 8fuuuKK˟:t3gH|||{epKsȎ<  RQQ:t;lv`dvc4&YVVSWW7~Z &ddd=~8(((..Ύ3?}_źs B.@7o#qɁ<~~~_>qŋ$HS999999u:B(//M:5880eßaQQQ[l;sL~B} ٳ{ϟ?pj>y򤙙ݻAihhl߾ŋÇonn\500P___OO/00:;X*..LKKkϞ=!+++'ƍSUU544ܽ{ Gȵ˖-111 ֵkLMM555CCC[N^۷ѣG߽{:ujIIINj\tؘb! pvѿ]]]wwwW#r/H?DAi{2eddt S]]-e_ze`` jkkUUU߾}D}!\]]ꢣBuuuǎC}rMOO755ݹs7FXX؂ ^~=~:;Xj…,+** !;ꔔVXQVVgvss)((5jΝ;EvϚ5.11*tox,I]z/ۻwoqq`0YYYrww𨨨!a{9rdvvg&Mٶt3"#T#>>xIII Ú9::u"iQYðQ!/B),,_wZ?No"Wm"ky0 [xgB"f̘iGݸq#^bddT\\OgeeOt{+{{HkT@L(//}cQQUUU666W\KNN4i1;!DP,X=qD===q"Yn]~~~FFƖ-[,Y"󃂂JJJûRg-ЀjnnniiQRRjjjڱcB^p>_TTm677*~}ъ\,j+SSSswwwqqIII),,LKK puumo [b_||}eҥKnݚ˿^$ڋF%:>,].ׯ_?77J6n8j(UUՑ#G>|/'[n!Åѧe:3tttttt.._\SSS[[˫+wqɓ'ׯѣG]]]gfҥچׯojjj/nPa{Htp8;w 8pmcƌiii0,99аfihhX,F^`\r\nl2) Wf}z{{aDoA^j!TQH|׋ٳ...썀"zdtAHdtII)<B rIX&ůAΣPJKKRv)6$X,hnhj5QURWEf~k+EMsss:.f=}HT(3f̘1c`!<']L=q.56|p;V?|h3fGc#[I5mo44T%-2 ˈf_ 9y.%IӺbBJ_Q(Nd ~"Yp, KIycDžz.]b}~r?nm*ܧ7Ӕ)t\k0ӕuCQ\\&cl9ch*㐴+}X!^\LO/$I<~=L9=zT8oaB2ah`M={ k=03J%r%& p_R>rP\.o +~t󔔧M1! <=Iի#$"s< =yի 6,P,Ն =T[( 67w8:]m9>޽3g`sE2$) `?8}1JYjFion(˗OR?d2L&EFz,^l%ep+VL)uZklFB..g#eB(5ɓw\\&*+=F;wV7o<~DPTT?{ p?,92i^%KXCCSk+wŊ)RjssdMMĵCꫪ*}}Ul(/oaKA'N/V/\~Fx|&^s煘{N>})ta2k9d`5**J:6#T0lÆ3.e%$0a)na;L}eҭܕ+O>~\;l  zn]Dcc3%#)!DQ_6|E5Dd(bimzzT9cd$KL;ujKDUU=  e0 ۴lZZSLM. ՕݛB!Fpe8:z@ciZBO]]Ӓ%Q>`W@)Vyk^kkYȈ`xVONeۓ8;[K n`x_v䅢dws׬{:ѱ|qĬ㏧۶% ݤYɓ+V3g\PwD&O`<ؿ*ѱ~ **vqRkqA]]Y/Z R/de{##=Fu/ΖUUuv]PqqHt8|ޜennUU`0TU:_@~ش鬶D@W{VwƸ8/:]VC [g99YzyŦ ]; eU&$kĐH0';Ϟ] a6qelʡCG(#K,,.^|p\/2)gDE-읣h'Q^"::۲Ll{8**JNTSS^8Ht8tWelۖmlEWSϙ3?|hYxcc3Юޓe[w>>DC 4|Y˗hi9>-]0~K|f!Ǐ/;AoLq۹sa`xIQbY8x UV_(XbB#"ܓvvB: yIDAT ߒlH{^so 7`NH%eeZo )9Sk+wժo.]Q#:͟o}ӶmItVDGe\ڵ=}:)ɯ_?-Ñ˗O~~s0\ #5_҈XdK`̆f__2< w_O?rdɤIE9w|+cX,stگD"H$Ҟ=_mq"7pe\yiL??[culvkdIɻ s'!!萄q83!!Ñ̰O\.IIIKKq899q\b &f @ @>;ː 8ݽZp1cƨ[ZZ$iСاΜ9D"mmv#+ NuX&--dՍ?~„ aaa? _/..~)*uWC.Hu Zt:}Rj2Ƀ>pVHH 6G3ڞ;w_եKM&jn7rARZ ;|ZGGgRj^!HWNI8t>P}@>} ٳ/\]fjjw|~Ç777,szTߥKY,B(>>~ذagǎuwwOܶVVV!< 1.[LGG$ fgffgDFқ2HF&Pw!K222t:axoZ^200x ao߾m['>YBo߾C榧ܹSdal%$${999u|a޽{GٳI&s-XǏ;"nnn666٣FBh…,+** !;r =e XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaAllocator< _Tp >::rebind< _Tp1 > Member List

    This is the complete list of members for XQillaAllocator< _Tp >::rebind< _Tp1 >, including all inherited members.

    other typedefXQillaAllocator< _Tp >::rebind< _Tp1 >
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSResourceResolver.html0000644001725400016040000003343613273140100022241 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSResourceResolver Class Referenceabstract

    DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...

    #include <DOMLSResourceResolver.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMLSResourceResolver ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMLSInputresolveResource (const XMLCh *const resourceType, const XMLCh *const namespaceUri, const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI)=0
     Allow the application to resolve external resources. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSResourceResolver ()
     

    Detailed Description

    DOMLSResourceResolver provides a way for applications to redirect references to external entities.

    Applications needing to implement customized handling for external entities must implement this interface and register their implementation by setting the entityResolver attribute of the DOMLSParser.

    The DOMLSParser will then allow the application to intercept any external entities (including the external DTD subset and external parameter entities) before including them.

    Many DOM applications will not need to implement this interface, but it will be especially useful for applications that build XML documents from databases or other specialized input sources, or for applications that use URNs.

    See Also
    DOMLSParser::getDomConfig
    DOMLSInput::DOMLSInput
    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMLSResourceResolver::DOMLSResourceResolver ( )
    inlineprotected
    virtual xercesc::DOMLSResourceResolver::~DOMLSResourceResolver ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMLSInput* xercesc::DOMLSResourceResolver::resolveResource ( const XMLCh *const  resourceType,
    const XMLCh *const  namespaceUri,
    const XMLCh *const  publicId,
    const XMLCh *const  systemId,
    const XMLCh *const  baseURI 
    )
    pure virtual

    Allow the application to resolve external resources.

    The DOMLSParser will call this method before opening any external resource, including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element (however, the top-level document entity is not passed to this method). The application may then request that the DOMLSParser resolve the external resource itself, that it use an alternative URI, or that it use an entirely different input source.

    Application writers can use this method to redirect external system identifiers to secure and/or local URI, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).

    The returned DOMLSInput is owned by the DOMLSParser which is responsible to clean up the memory.

    Parameters
    resourceTypeThe type of the resource being resolved. For XML [XML 1.0] resources (i.e. entities), applications must use the value "http://www.w3.org/TR/REC-xml". For XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". Other types of resources are outside the scope of this specification and therefore should recommend an absolute URI in order to use this method.
    namespaceUriThe namespace of the resource being resolved, e.g. the target namespace of the XML Schema [XML Schema Part 1] when resolving XML Schema resources.
    publicIdThe public identifier of the external entity being referenced, or null if no public identifier was supplied or if the resource is not an entity.
    systemIdThe system identifier, a URI reference [IETF RFC 2396], of the external resource being referenced, or null if no system identifier was supplied.
    baseURIThe absolute base URI of the resource being parsed, or null if there is no base URI.
    Returns
    A DOMLSInput object describing the new input source, or null to request that the parser open a regular URI connection to the resource. The returned DOMLSInput is owned by the DOMLSParser which is responsible to clean up the memory.
    See Also
    DOMLSInput::DOMLSInput
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__dep__incl.map0000644001725400016040000000026513273140100022471 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_16.png0000644001725400016040000000414713273140101016035 00000000000000PNG  IHDR%c׊bKGDIDATxkLMgR.UH$@D"5An0x#(Q BEѠ (5pWnB@K0w[Z^V>͜sf3ۥ% a~0 0 `a+ .VD"H$e)?s%@@72kD"ijju, ٙu%!!!!!:;;`B]H$I [n!ߨ3gPW޽MdG899577S]Ter1ڬ1&WHىTc&-//gR?~J%lڵbX,t|˫>;;kB*'^[[UVݻwM OѣGkkkQ$++PbqII &$$TTT>7ŋ~uLDCɓ'ׯx/_v&ɌSa12ټy3 k~ ƒyryPPӧ-ի___\"f"IƍCCCVVV$ItGF7qKKcccM~~(,0[Þ?mll"""{{{7w[[ZVT]]]BJemm:88=::JOȈq*,$IjF Ng\5bXjT*WXC}||P.00O.C׭[#tǏTKPp+W(JVgfffs7&ggg㙙’zL \???SZZJ-nݺOMM}$əTғf2S M}Ƣ,yS077ጌP[[[v8^BLoooS3fv7l؀nnnuuu Hʷ~͚5!&&͛ЬH,++ ùs|l LII+ %d*L&erF <&6ϒׯ_߾}{zz:etvvvT*<<''N dddhZ1W^]tgaaaRR 2NT6BCC~2yS`+11A# Q,wXav ð V]0a0 5Q.f`=y^Oʪ;} f~av ð V]07,SgIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNotation-members.html0000644001725400016040000005516413273140100021716 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNotation Member List

    This is the complete list of members for xercesc::DOMNotation, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMNotation()xercesc::DOMNotationinlineprotected
    DOMNotation(const DOMNotation &other)xercesc::DOMNotationinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getPublicId() const =0xercesc::DOMNotationpure virtual
    getSystemId() const =0xercesc::DOMNotationpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMNotation()xercesc::DOMNotationinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.md50000644001725400016040000000004013273140100022650 000000000000000c4ac6f5ce2be330071333562a67da11XQilla-2.3.4/docs/dom3-api/inherit_graph_32.md50000644001725400016040000000004013273140100015717 0000000000000049830e3b51205edac9abeda71b01b6abXQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.md50000644001725400016040000000004013273140077021766 000000000000001f174e76dc9aea84828ce7fdda2c3347XQilla-2.3.4/docs/dom3-api/xqilla-dom3_8hpp.html0000644001725400016040000001112213273140101016144 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xqilla-dom3.hpp File Reference
    #include <xqilla/dom-api/XQillaExpression.hpp>
    #include <xqilla/dom-api/XPath2Result.hpp>
    #include <xqilla/dom-api/XQillaNSResolver.hpp>
    #include <xqilla/exceptions/XQillaException.hpp>
    #include <xqilla/utils/XQillaPlatformUtils.hpp>
    #include <xqilla/utils/XStr.hpp>
    #include <xqilla/utils/UTF8Str.hpp>
    Include dependency graph for xqilla-dom3.hpp:

    Go to the source code of this file.

    XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__incl.png0000644001725400016040000001073313273140100020077 00000000000000PNG  IHDRp!]#abKGDIDATxiTSWO0BaJQ@[R R  ($yuBZe\.QAvAq RP Q2}?g^3W>}w?g;P0 IP;Ŀ ' =! A&tݻׯ_<4 F>4---mҤI:Pt_Q(~fb"N<kg~DFFzyyb"tw@' =! A&HO2ѿ׋7޶9s&dz2,??Bcҥ4 | ߲eKeeeAA#bΟӐ9 $ accT*N>d2YZZ&%%666TUUٳJ>|jB!-))-0gD")((믏;F[!YXX7b͞={666N;faaw{xxxdff]t vpww'^޼ys֬Y!(JXLǍp\nssswwp7~P(p,66NEtҲ2%۪W^]p{{{Ç+д^@KK ^mooK.Ņ.[,00077v ^K\\\pp?Xj࣏>Ҙ3F馦p|ʕᅅx&*11 ;wܧ~~rƔT :~8>~O> ;pFn8od=pZ[[K'''O3RÇ}}}wܙ?!ܵk۷O8QTTtڵ}555N?|pbbbVVVyyyNNp)** Gٳgϝ;w׍7<''gѢEFFFDm6gg炂ե1ŋ|ի <iKȭ[6oޜOiii~[pk4s}GPJ3R===a+//wuu5333$˗׮]kcc_VVv…>a[lqqq$**|r@OOҥK֭cIII+44d~JYbE@@@@@@DDDiiiTT$''?>\.w577wwwݴ> x<3}+VAu g=Bss-d7ݝءaʔ)WzzzBBb\$)Jutt8L8qĉ**+MLLt:] ikk 7bTz_aN0t:yRٙu^?O='P(Ut:-2agT͎J})ʠ T촂wNP̱qØI!!sWyT*%";] =bΝD(yX`Lhăw`FzxLaÛIn4Tb w:#'=? FF?ttF:HO#w+9fs<޽{,X@0ܹ88r9a...CH_݆;HSS\.'Z42a„1yd ' =!dɓ'z5447ݻt:ԩSظMIbcc;::t0,&&4Bihh #Sz=j׀GX,ضزe6ٳg]]]UV 7o 漼z;֭[;v 0M۷-,,t`ɒ%bS#UTT899j4V*zD͍xiӦ B.++5kM:̙3pomm-V422ڽ{H$R*=== B{xxxgg'z!J2$$FFӓCD0BEð'O:99i4b:!GO}740 gnnQSSG ð7nDDDzxx\xQ{OOOpp0lOq]]!z"C|իW Fqq ӤBwwwG;kIPWWG< J`h4G#B Ԕab"***Blmm?~ -۹s6/TT*O:ٙ٩'&688hii1d*鞞)))IIIϟ?'aÇub`L# PWWgkkeP(|}}oimm}9hONNxquuܹs׬YC̟?ʕڼR)(**8z(JcbbZZZ`x&'';,, LDtW*K,Yp!,nnn˖-a AHH2bfeeaۻy۶m@B;p̙3TY񖖖ǏOLL#[&mܸ|ٲe"ս0 ;y򤣣iJJJ4۱ccII < L&'1c_Ja/m[oEGG#m!;;{ĉ,kڵRTQ<}g9ĨYE?FqĈ33$C/ wW;ě A&HO2AzB,B/b̌hya~233cCb.}2A' =! A&HO2#tLIENDB`XQilla-2.3.4/docs/dom3-api/dir_7ef400d0cba7660fbeba32656f2e8856.html0000644001725400016040000001000213273140101020345 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc Directory Reference
    Directory dependency graph for xercesc:
    xercesc

    Directories

    directory  dom
     
    directory  framework
     
    directory  util
     
    XQilla-2.3.4/docs/dom3-api/dir_7ef400d0cba7660fbeba32656f2e8856_dep.md50000644001725400016040000000004013273140100020716 000000000000001bf06ee164673c307868b5d0458a55b3XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationLS.html0000644001725400016040000006040613273140101021713 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationLS Class Referenceabstract

    #include <DOMImplementationLS.hpp>

    Inheritance diagram for xercesc::DOMImplementationLS:

    Public Types

    Public constants
    enum  DOMImplementationLSMode { MODE_SYNCHRONOUS = 1, MODE_ASYNCHRONOUS = 2 }
     Create a synchronous or an asynchronous DOMLSParser. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMImplementationLS ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMLSParsercreateLSParser (const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0
     Create a new DOMLSParser. More...
     
    virtual DOMLSSerializercreateLSSerializer (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new DOMLSSerializer. More...
     
    virtual DOMLSInputcreateLSInput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new "empty" DOMLSInput. More...
     
    virtual DOMLSOutputcreateLSOutput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new "empty" LSOutput. More...
     

    Protected Member Functions

    Hidden constructors
     DOMImplementationLS ()
     

    Detailed Description

    DOMImplementationLS contains the factory methods for creating Load and Save objects.

    An object that implements DOMImplementationLS is obtained by doing a binding specific cast from DOMImplementation to DOMImplementationLS. Implementations supporting the Load and Save feature must implement the DOMImplementationLS interface on whatever object implements the DOMImplementation interface.

    Since
    DOM Level 3

    Member Enumeration Documentation

    Create a synchronous or an asynchronous DOMLSParser.

    See Also
    createLSParser(const DOMImplementationLSMode mode, const XMLCh* const schemaType)
    Since
    DOM Level 3
    Enumerator
    MODE_SYNCHRONOUS 
    MODE_ASYNCHRONOUS 

    Constructor & Destructor Documentation

    xercesc::DOMImplementationLS::DOMImplementationLS ( )
    inlineprotected
    virtual xercesc::DOMImplementationLS::~DOMImplementationLS ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMLSInput* xercesc::DOMImplementationLS::createLSInput ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    pure virtual

    Create a new "empty" DOMLSInput.

    Returns
    The newly created DOMLSInput object.
    See Also
    DOMLSInput
    Since
    DOM Level 3
    virtual DOMLSOutput* xercesc::DOMImplementationLS::createLSOutput ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    pure virtual

    Create a new "empty" LSOutput.

    Returns
    The newly created LSOutput object.
    See Also
    LSOutput
    Since
    DOM Level 3
    virtual DOMLSParser* xercesc::DOMImplementationLS::createLSParser ( const DOMImplementationLSMode  mode,
    const XMLCh *const  schemaType,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager,
    XMLGrammarPool *const  gramPool = 0 
    )
    pure virtual

    Create a new DOMLSParser.

    The newly constructed parser may then be configured by means of its DOMConfiguration object, and used to parse documents by means of its parse method.

    Parameters
    modeThe mode argument is either MODE_SYNCHRONOUS or MODE_ASYNCHRONOUS, if mode is MODE_SYNCHRONOUS then the DOMLSParser that is created will operate in synchronous mode, if it's MODE_ASYNCHRONOUS then the DOMLSParser that is created will operate in asynchronous mode.
    schemaTypeAn absolute URI representing the type of the schema language used during the load of a DOMDocument using the newly created DOMLSParser. Note that no lexical checking is done on the absolute URI. In order to create a DOMLSParser for any kind of schema types (i.e. the DOMLSParser will be free to use any schema found), use the value NULL. Note: For W3C XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], applications must use the value "http://www.w3.org/TR/REC-xml". Other Schema languages are outside the scope of the W3C and therefore should recommend an absolute URI in order to use this method.
    managerPointer to the memory manager to be used to allocate objects.
    gramPoolThe collection of cached grammars.
    Returns
    The newly created DOMLSParser object. This DOMLSParser is either synchronous or asynchronous depending on the value of the mode argument.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if the requested mode or schema type is not supported.
    See Also
    DOMLSParser
    Since
    DOM Level 3
    virtual DOMLSSerializer* xercesc::DOMImplementationLS::createLSSerializer ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    pure virtual

    Create a new DOMLSSerializer.

    DOMLSSerializer is used to serialize a DOM tree back into an XML document.

    Returns
    The newly created DOMLSSerializer object.
    See Also
    DOMLSSerializer
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp__incl.map0000644001725400016040000000007113273140101017065 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMComment-members.html0000644001725400016040000006272113273140100021522 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMComment Member List

    This is the complete list of members for xercesc::DOMComment, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    appendData(const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterDatapure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMCharacterData()xercesc::DOMCharacterDatainlineprotected
    DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterDatainlineprotected
    DOMComment()xercesc::DOMCommentinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getData() const =0xercesc::DOMCharacterDatapure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLength() const =0xercesc::DOMCharacterDatapure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterDatapure virtual
    setData(const XMLCh *data)=0xercesc::DOMCharacterDatapure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterDatapure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMCharacterData()xercesc::DOMCharacterDatainlinevirtual
    ~DOMComment()xercesc::DOMCommentinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp__incl.png0000644001725400016040000001026413273140100021164 00000000000000PNG  IHDRp!]#abKGDiIDATx{PSw#Z; B TyP 8s}יJRi5#> WHh|T2u 9?w}:g^{;9a`u? @''N@O'VjllT[bM0?e1zK(Mj P(;Glˉ`( ):=tz+ILbѢEyyyr<##c޼yYYY#|SSS_^,+J~00JX,b`Yb{ͪ?^ZZ~̎RWWT*T*-((HIIZf`477D Rbccl񒒒^SqMip|QA@@͛JKKK;vxwE"Qpp\.onn>s 00ʕ+ӧOQ 6Ιߩ848`\v ?JKKc2r-ZTUU* bɻx9s(#3gΤ>|ٳIIIQQQCŋڵKӑz\.zߘ~G"-[Z`uեKFFFJ$Ç5 S_~elllbbݻ{{{)SBsʕgϚd͛7SRR:dzh؏D&PGGZ6jcxڴiZ_:;;o߾=k,soݺ{«Wegg/򼼼/LRٳ믿}vqq51y]|モJ{iooB'N@uuumڴمd曖\u7n9r2wwwdG.^6# ׭[w^ճPRkw ?1̐|ɻz9Dž :88DDD "##BDųE"є)S>cb 9sʕ+BT*&987w\ѲprrrFߪ^?+ܼ,YBl!):0Vp"##+++-ࣞ={vճPRk02B<oԨQ  ihhm222,,v8!6mtL OOϖfDB:::ZӜ@ 0f766n߾]XF1 xBD2rȝ;w&''Yv=z4B`ճPRkx]=avə3g PG!jkko޼z齱 !d;w@] h/AG&d{O}u[xiZNl6ouuulXߪT?(<}tB eV%͵UJejj :z+X,&?:U=9::FGGu eh)ZjU(GKImUO @'Ɵg I?~ 0rf0o;t!!|5[.OGI?tz @''N@O:=tz @''N@O:=tz @''N@O:=tz @''N@O:=tOGMeʾu둗y77g,nR{HSVV 8p=Q5qqd1c-\ c+2}D!ft}Ŭ=%!ej4u @OfH3lVb⿆$d߃|i3DGbgГ%Eep1cq0a3LFB,v=YB y<,*Lhzw+6ag!Ht;~9BΎ9wP3=ς?~st?ŋw܁'p? bsvD"ooo%=`6uAjsP0yIOOBʘ1c+y왑O:=tz%K۬R8 l6WTTp87 &LHKKkiiðT;? LT^^G>1_~97䴶"^xlٲ\?A@ʕ+*mƌx&455:tnpr{50O>pfSDEEuuuQ^zM{OOϴi2331 }cYBĩ` ٴi>>ܻw޽{d+O'Oh4#Gvvv"t:ڵkǎ+ ׮]ܹs "77s̘1iiiċ !TYYrJJJBz玎#F b̙3Bd3rGq8۷///xvvv撤qh0SNC1Ϟ=⒗GTbҤIB0''h,r~JKKKOOonn;vq֭[%Ǐ޽;cƌ 6/?2lԩwޭ Zf9{{{\RlvGGǶm(WRR%56l@mٲl|Cè7n|˽W$?~[[W!""ڵk2hY @hD"?ɓ'T*jx~w0lҤI'NǦ^jn`0sH$jwbRSS}CӓqdB ð>/r;vۛ҈Y=agXO.K]˭5ca˗O>mν=&&?&=qJJJ/^rgh>hw1eL2zr_xVkjj\.4O'O燇^0 (ڵk߅?zܹs?7j CiiZȈVՔ?cdd$91^R*֌Ƚ)''g۶m!!!R&aݻ,ceLӽ#BB݂ ˚/<<|jɓ='''!!ѣG555AAA˗/'rsskkkkkkg͚tRs^Z喕p\VK鞚T*86EEE/^Gas^AayBDn.faa!?Db}||6mDi,ֻ]vT?[%K=:33<5kָ;;;'%%i4naرc&Np&O\QQA;o}=9=IۻB0 md *NнK^ ]tϗu"cdكczիWeEUZZzqYgGcu TddEdq'^Pq'^PqDzzzVWWvr***vvvhiiƚ`&ٙ@ [~gpA)~*Nz򲲲P6mkkbǍc??0GGGHtgτC1̻waիW """EEEm.^@KKL&M>=..nȑG]iii%'';99.XÇt:=44%*>>~ԩ?˗.]} (jkk.]'L&B(<<Ԕ"xZe|'ս^x~za#Nowtt,..B%%%&&&x;HMMן:u{: <fdd'O&sss[u;vp-** ðvOhjj?""رco>M-|Nk`ժU7osNBB޾`??*tiѨe˖ڵ+/////oӦM%%%EYfİfee.^v!T]]]QQݻo߾߿j̙nݢhqqqzzzlDڵkǏ-lw^UUd&_u)99e=O}Zٳ&yyBUUtS[YOEFF.Z@:>+޽7yS>|݈Y, r<<:G@ z7 ̱0z=G2BPqޡ6)ERҋBsrb&(:;'|ANN;oVih 9ԩӦA "Pqs##sJKÇup8pe#ǃ@ zYqqcbzU>|P77yl?  *N {<?1U]w=mw64|u:V| 7}JܹF!SRR-,,T}||:p8 8w\yyK9Ç gX!!!mB4M4眜uuu ZN=xD"ᱯ^"O>ŇUVV FG1sB*jiif# .dϟGtCۉ£\]]LfHHB󏾃XkănmtU׷)Yyy9dccW?T*ðQF F1 #G0L@P__; H*LMMMaƍ0 P(vb2nH$᫱x'O!qYYRPPh,$CGӫv(@]۴o_ŽC uFNrpp6jjj +2̬,/tuut:ޒATTXz9s FGᝄaٳggϞzxx LGq`'''aˤI߿4o<Ν{QLI )++H$"XTT}Rhz;΂Z'+/g-Xp*%eX׆ 3:] q`ժU7osNBB޾`??*tiѨe˖ڵ+/////oӦM%%%EYfİfee.#+**޽{>۷/WUU͜9֭[4-..^OOO-HtqqYv㵵Ee˖-ȠR{"XAAaѢE[l)..۽{D]p$QYvv՞ɓT:\wIkkf ttthlʕ+544rE)ljjUSSsww^6 OHQQڵkbE7!,3l0sp----,, ŏ&!N>ݪ0:ꪫ2~x cٲeCٶm[cccv?ڡ݉jۓM4iD ߿Ad3m٩SKUTd}JddEor5 Sx<Ν>>N?gyPqp>|}GՎN T#*+ٞ!u11:>Pqq޼X<￷j:&.Cyy^/D@ :QFм| z+ F55e٦ Ne%kˣ}T}Olk,']{rDRuu˗p[]]CE]QQWU].+c2cjJ.?ztF(:}Taa;vD^=% ;99 LS/<<ԩ;l CX 8Nk۷߳xGgy2YM[[LVF&CuuN?B蛠ǃ]b6lk׷O|z5_L.^kNVbN5lv#MA8d IDR>|#eIPSUu`w!NPqqt{]nZwo޽{3fhii J___\|ܹx--V=++u.)S[vuח$#avo=zر^=E u#22R }Off1 {…k[k"DɓM O*$*nt >/͍Y!ɓ'OuH?@! vҽc/Z4^vss@a7r"-"Q{*ڪ::j*J3g񔔔,X ,[@ a;wF_}̲9sldТ~z.BH w\ð u@z5;$dQV{3G(!9߿z8SΚe)\4<^Ն 36laEمTWޗC@?gv3gR~uwߍu.t@0313Y+Pi)#;(;7o20 :Gzu|ډIu.Aguuh.kmmbggw3IGF8;;|K,144|HCCCQQQ¡N*\ >}ŋGy#GHaAmm'IJzcGԶm~1LPxx)Ex<___ BrrAZZZ@@0[(PBBȑ#\jiii7DVºuU O$wA|}}) )<*?p%?cll/-ׯ_9oۡ]0aBL&w4{?m7jO?!D0 """: \|yEED]\\޾}KRmmmwIB)))T*>>>Eq8;wҥK톳X!&sNN:ax\]]j|x%xۡ]nUqs &+gO;TЋYn #Gj=)/ߛwuuu///^_^Huttۢv333PII bnn>444RSSNz=99;FɓVrssǎ+\uss0)u /cggЀ"}O߼y4v?C4v;tfϹyGtݴter!(--=uꔃQSSSx dfee !]]]:߿F@`0V^=gQx'avٳgAAA;B\.788I2iҤ'%%͛7Ots=zy|BxjI.\ɓ3gΈON:\@ Xjܹ͛/XϯJ:99>}Z4jٲev۴iSIIIGQa֬Y111l6YAAAYY𺺺/]FUWWWTT{.==}۷o_9s[h4Z\\!["vkkkӗ-[ARo)?|ܬhv!_9?bhz7Ral#?i3eժK򡡫7khh+)(.lhhVP /@B::N58ݻcimYHt|5k֑/<ׂGE{&K!8GaaY/76xoz-Od~ssKG=ԔLNQ *>ŋw?you.t/%%bu[Tj(Fo PXXL"HÇ%TI$5|DRVmM$*ξjX:tܸβ,\Vǔy&aԗĺUL IDAT~|>v#J6Vy>ÿGFd5IUGG][[EWWDR[d5%So^VV&,dEEEEEEE: w;vLGҥh۷ $t:ŋ7r >-@//ڋΞM'D\K9cc7M`v&^e%mmE]QQWU~u0@LVV{TOOC^^66&&L6lLZ̜8qbdd颅  D@_PZZժ„8pzHHk[zVWfx\tɦN tzŋ\yaHx3#cUW ZVV ^ d=^){UIUKK.% z'߄}AJӧS]M RS_kW׫߾=|ŋeK|Abⳓ'On/F }ttu|@EɎ(O"Hj*zׯ+{=Kxƿz|`:Q,Ybhh8x`;;o!? [>Amp8>>>#F8pI@@@SSS'@׹awbvv{- dx3DGg…g:,PDD\򲲲N__d⯲l33S޼y111G6mZKK +//Sh CYY!D322B:q'vrXLB}0 ^zuVV֋/92`[nuf ѣGP 0lŊӧOqUUUzzM>iD?;vp"""VPqV+V\7noU[ٺ/=m|s,3@. )S>>>'Oƫ144 c~'񇳳s1i4Z|R㧤ܴȑ::tt>|Xԅ|U_8qF?B>>>4aϞ=#IIIׯ_ʼ[G!/qlNRڭ8zIuhGSr3g]ݧm)>>^OOd"MMM\.BH$mmm___SKNN600HKK 000dXhmB VVVJJJ#Gr BpvbNu%&& ߟHAR(|-22ӠѮ\M0!D&sm'Q{Y[8Znc#^ lD\t3F]zuԩfffxMQ9s_2eJII vb۝CяX+Vhjj' BXX!C:ԙM->%%5&&;Ku"z6_6Q_N\|yEED]\\޾}KRmmmw܉pvvNII Rϟ?( 0ܹs.]p8n7bᇑZ-=,aXNN:axeS]]jLӅ/vPts3g,,,R2̐PmmmG}/?ixWd>TL&S__ III666 J0lԨQQ CAAȑ#L&S ŧ؍7aFPێ;WZqΝ8$$}`m >PqO@^Mc%//_SSaǏBϟ?&>%+++((ҒH$m'9llnn&yyyx{ll1kxV'<'OJn6`߻MPe[8l젨%zuuu//{ׁtpUM؛!JJJLLLsssss444RSSO8`kkQxh4###tr+++|0gcc㲲2|YWW! &aJM?O?}kn+L?mo33dԩSUq!MMTcccŪKtuut:Ek׮vATTTsssxx9s: $ Ξ=;{l|#((h \nppt&M~RR;vgݹ?""رc=j@@@DDDPPPGW 0lɒ%fff666!__pcٝCD$F*,,_;=Gcc)e8$6q& ~fCf@?>vV;88 L&[lquuϞ=ߴi++ϟ?;jllTRRp႒RcccGb>P&--  _5j,7oZXX|WMMMI 6O>]8mݹ;vJ~]~M; ÆnUOTUUСC=<<x`„ [nhb۝Cя覗,Y2s̢ϟ[XXڋ7zV*^#(ڨQ;:fY >,?>zOJK:Qq_Q܆D\Kڵ-vv#df:.\*q<ĉF$烏D֭۶}-'}(7yɦ))/cb߽fPv@ ?Oi)#4t4~5kBkk9vdS'}NN_:d~st]j~=qr:|8٣oje5lIR޴@K3)kLٽ{1큊G;s&͛;w||$a气ǎ-^h47 *ΞN9~ȑZny9kŊK1Mh$MO8{={bG&͍fg͚uT nr8{~*.n4/e_3g9>>~ԩ @#좠zPqqI5,KUu`mHL&B(<<Ԕ"xs$);;o vqqy-Jݹs'FC9;;ZXXPϟtp pܹK.s8ÇbBBB.#h4h999ruuuzDc_zE&>}\SS#Syxx̜9JZZZ<>9x2Bݝf_x!pB6}yPMMM3G2̐Pmm!""[Tw-Sӝݷ[nb8LU``̬_NJJ*aبQbccWm ‘#GL@ w gff0vƍ~~~Q(GGG1 L$XccvSq>y2Ѷ3G-8.cΥn}WUԺSڠM[9uuu///^_^Hutt;v333PII bnn>444RSSNz=99;FɓVrssǎܢ0 J|>_F}4yWQQA)((Zu4Ϻz蟠┱o \zr7_QQx!CQ(^**{l:u[ب)B'g믏NKMg}U Ʋeˆm۶Ǝ߷oѵkD3lwkۓM4iM >wK^4ar?,^|..naC$>4-\!)D/ط/(7y<%%┍/cdVVQdtPq?~Q=6kƎ.*N|AEE֭cgSw6Lt <Iڸ'OYjdGNHݵ+f׮o.*Ni;>yc-aVMްA#|&8?~ ۷+W^4$ ; 4745@RuT?UcM+V\Q?wn9G jrr> 3J┞?xs7Ԙ<͚P&ƍIlXYkw''bk;q|TT@uv@7]zNNVUUZK ㏑%׮mё}Hf7%$<,2t߾fY2!`>O9"|󍬳 1PqJIUU=O$5iяcƔ&ȠED$&>C9:ZP"JAM 뛦M3;w 4@**2I'a7^a27on8Pn/_ hРVL&:)HT!C/Yb/NJNK{ߜa޹ohOzxL%2$*dr+kǎo%0;n܈xGgϦTMb5u(x&ПAٽ.\HWTww88^fZZ11N{ւcϟ_nf# {PqvO_7RTWxP =z;֭Æ uR)F1 [r/99E [UU>[ߧs|~{Wq[>|3@gwillx1}I?sgϦ;RO"I VwϘa.8KXXۼfukE-/$.\H35%GDz̮@ĄϙcӵÓm~u@ŠOL<>_p?ǏlubU.EEEEEEI*7$H$/N#8s*y]o|9#99q.DžS煄r!)W>|PY@?8%/41Blqq?o8qM(+~}8qbddF@Rx 㔀W^^SaOȑZ۶͒xbb6ztgmm߼M&@[pS3CWW}])~}~aݺ?33 y_IgϠ\-я֬҅ UVKuӭuGnmT-_~wkk)mU\׮=e/Sw}Ϫ]iiĐ!7nlrR g/H$O ~t΋G+))tGbP(!3fGEm$T^ ӳZVQQ;p@KK003@:)Tӗ-! ޽ז/do?;ܲm[_ߜ9L:nQ^^^VVfmmmY,R}}qrrr?~t:ٳg¡Lݻw;9xQTT)ڂ,JV M@g|_~S~)ZIIovwd%r*1￯ڸqfwo/"zzzӧO9r񗂂LMM,XC:wppp}~||ԩS;9x!jkkE[E*7I虠:.C\O/?bRҋCbii\_Š;*N!xg=~L{w'Eee^}ƠnJ !t݀Ww<9xC޽{t:]GGGfffܼ( 'N9;;wy4OL&:88v;vpm͚5J|>_F!'oERPPhhuuu[l$~R߼ys81c ---GW)I=\E1z·v2t\nʊE{m~3MPiiS;r~fٲ/)k(n))h%*[)I6WEMW#K rg2xouR~?99+眳U())zGPr555-Y͛7ϟO5?~  .7jkK_ҨGzyYSTW_y?L&s՛6m ˭=<< 222[988ٳ'33333sƍ"s̹uV]]]kk+//`gkkkW #***ʊoߎڷoׯ_gϞѣ;w*((_՜D"-^@ZZMs^^ޥKn޼9///33?0x111]WWwmiiimmkjjڿ?B~Æ ;w|IUU2.)HfG 9oRRBQSs?va?TQQoiyB[{Ojj~?]yY]]V ܹ#''W]]aX]]ݪU%$$T*[zͮ򢢢vvv /o ðUUU>>>MM͈.w6$ȑ#ٿECCÎ;ƍ'((j?G)j 99m۶555ujDD{䬧wxפhFFFÇoK(O81bĈ#G?NZZ` wYZ\?"-8{ ,,UXX_u_!q`…NU6~x_G'@[[}__6TTT EI$Q~~%~~%>>/p999)𤤜xwN*/ 'WWll&.!toUV6<91sb%%5""SOab9z`Ggii߽e8'ѥ}n}ZC?d0𡄇7j)ctuxxU'G?~leIjjq>kqqVlm=!n7~B*+K͚sԩjBB}`Aɑc1rrb֌}" h&$`0V623tQ ^UUCbgw[Ng:5w)ݤ5kXsYDG2?~,9Sرgkþgyyy̴y܊+WVE߿/^겉ѣKF_62Ǐ:/]? 8vn_(m]|Qacwkb/p2nץD"afbq1e JJN6FDHKIfa1~_a$ ̀x+(gbuګW_3ODD{.WYٰl谠|ՠ`2ԼTafqv#2򭥥?77灔V]]?^yy]xxʍ::#==`m# 8K۷_v0ZN[ROAe$%%~xѻa,pҪc;.@ JD[qqA##:tO]]jR/D1֮ ,.DDldAyy/oH6MY{s??t%"y]Ǐ3][50 ۹3[6;^VTt/˖%1Agrr~PiuÇMMBݻ}kkƏWu'bc?\cZlc3Y@w2NݽFFFP:O~|";"bsrڋ NX6sf;oMMJJja4 ? 8;>.֏d21osW%?{[Ԡa/?R[8;:z 2Ύ}PsKsJNZ޻K$'[wmŊ_~}VzW" d.]jq, ?%8;v^ި*hc-^zQ}}ڵx lwglLH8ZuRռ/b?]bԭ[ͤ+gϞ͚5NV`(QTT,,,(t2o4&';ó4ܹ˧9>kkW&}.[WyyҦO[)7(a  III'O(t2o<~I$ML:<{Қm`07n R[7 zC= H5Jg:ckk;!aA͘!,u{=ϳn$+;[DӃ||0_ʨ=dg//޺Z^^=x3<<5 ܹ'*Qz}wrs+Y "8'>VٸL?~ɊQsg 4nde{zF~43ӾzuM/vE[qOtGIJvн{/Ⱛ+/On٧1v{ƏWŞI ^aqqLM;XsytUU9骥jeaaI BBӧ~[!6Gvtt`@Rtuu>Z@ baaA 9GsMBG;4 2{WT^^a!#)ṹNdnnҥ;vܴac3y`N/_,---** ӫOO<9%%7n033c0xtVW %11… KKKKKK_|*ڃ#bb>ȈjiuPٳgk䤟_OӛZdbS[w xRRR &&&wQQQa-)%%knnammM& aaa"##9d2aÆJII!d// 2~03`rri)'}e;۶ͱ1~#:w@@޽ <6[ddBAkhhPTFsssvssh!66VII)>>~JJJRRR'[!tttTTT_6/ nݺG"X܂pnHkjjV\)))aEN \%%%}ueeeQQѽ{vq7F2e BHVV͛ㆆAAoDDD3FZZz---]OVYYwO-_oeuN(%tF_ʚ5rr[~Zׯ'!!!9::oeee222^ }||/^˗ ==]veee!,,,>}zmm파wv֪߿<<< GyMMM@@@cPVV{)))bbbrEEE/ Odee߾}w+((XYY곋1 ={vNNNFFƸq8a#.]ZdI]]_lll(J@@BO6 4 ð mmm&י3gϟ8uRcGrmhhnSY$/ӏ`0VU5Oa55S%$| 7 "8MMR8::z„ xaؘ1cn߾}j^^cǎQ(&Y__`0:kޙ^dIII6l0,((̌.:omm%Hx۷: ͛7xWm񋶿cx8dt:]VV6660KKKoooVaXHHZgdSՑB(6ԩjBBmϞ֖9sL=9r?));"bB#JJٵ+mĜ<*ϗ붢m椩*((PWWK:k%..wԩyxxXXXt֜sYYYx𲲲iiih44( IDAT߼6i$G[[5k:t!63 !VTT:xy!%Kc\gY^^MnH$kk۷oORq555u=ND3m?Kgu;ѣw?pvQO7fc7zd|ƍ!D;wtǎBIII֓? 9|~~>^vСZ5551̰j''WWWw֜C]paܹG{{{OOOtJ177g?<::zѢEv.##C"rssS999 ]/T\\w>GΝ;FFFrI'Bx.u Ddrn]]ӬYm$HI̛u[,]j}57""ڵ5=d2W^iӦ(ã ##ϏÞ={2333337nXPPY+0gΜ[nյ vּ߱1B8!!*//o}}uُ=ʺs玡YI$ŋ]\\ .Y缼K.ݼys^^^ffaooabbb̙3s ]6}t:^e˖씔ݻwXQg5ihp!붭yN45y`nn! >qٳguuu[[[1 s玜\uu5auuuVpvvRo 677ˋQ(}+< UUU>>>MM͈.w6$ȑ#ٿECCÎ;ƍ'((j?̋G)j 99m۶555ujDD{GwxפhFFFÇgܹnݺaÆձ׹tҨQ$%%7muqO} ͚kl|8͛OÞ,^Z~̙3Y"""...gb*|/&,X0QAAVt:sbbiW׺GGK5266nS(--?(x\qbE֚53 =}˺h =ۆ088yrrb&OV>~\q~XZ^^gl^0u񊝵tӣG+1TTԻ~X͂":4b{☟_˗Ww֤~۶͛`g7K }Tgb3Rgb1؆ AG.K7gdPPÇmjtĽgK L=r;Y74nDxѨɹmjդnmOCCs`ӯ~jK|oΡ&RCk+QAqOpC=8_in@Fc.[f/_f9e=nB/B?vх O-,t||lGuW?5e˖o8޷tWWW_W_GD$,3r_~e 8?ˋ1 zŒ%bb+WV6ߖ:6WdEE޶+VpѣGmUdrnFFQJJ^ffȈL4RGG@E__Y@oqoyΧO?|xqew{]`9sCCײ\=ӿ̚F^^tCC%%qmYW}ͦ+W͘1FKK}堠weg)6x`߾WO'ݷә99_32 SR伬r ddD ToUGGq%>>.~d\999ĦLQ?V{SUE۱㦔{[{(*/(($RRiÇkiɛi3OOoҌ3))GSS5qg]Ķm VPwu5%iݻ|9fm4Agh4Ǐ%dre~RE"UUutwg`ӭ..w\`b=tגyx^JU3@YT\YpcYWC֭siTj˲em{Wtݻii`7K ._~?:(YN& uÇbu7o xx**+V3RCC^x n8rLPx KK))a:---[v1=WU5li[t<b0_32 ۬^3rݺʺJ<0Tql-^ݻ緩矑%%r`|-[{wި>'k}z<$jkՋ~EMQQ|c@ŋ좢ɓGJ߿;SSmի/TUե?{90ٳ Dt:ر.ZwwW/JIW/5JB__yǎ_ut'NK00 v O!af TkI66~Ϟe[:;HĺY|'LPti'WToD&3͚U~8Ed2eЅ45 T 'O-.Υ;y+2NWא2lWBBH$hk˟>mTWqq;ٷ,.6v Y7^>\ŕIE9EEEf0mpŨD`0:8B+)A1؇ffdeE[ʞnh {(PUo`:':Ǐ/vD? ֖ii_h4>gRɓGS\q*(3?zzޕ;/ή 0GKO⯬lذ:{!9^_c zQjj>BemY^4f`W'&l?yx[7ռbbC1B$M'6 tEx]^Ö\qfg1H/:9M$55NoHH$Hsu|} ߧa򺌌B|3V!!cm~~EMR,@V=8f_Rdb1bq31~~+FQC-32>.Cyx̅-O"R9N …,f:ʞnif͕؝}j׊(w~D%&~$lz::H8B"99g<}rqqx񢽽}tt+6eee999;OHHgh?77;н/_慨~)))>>>_q㆙3)Jbbb BJJJl)&&6bIIɉ'rrraaa[LLĉӧO/++{!^aҤI^|9aϟԩ6a2/w;%K.~ҥK.]hѢ#G7o_iΜ9˗/ B`t؜}j`dctt#. lٲh̙3Y m*))?~@ .pBkk+ɼy󦃃ƍ?~w/okwV*L$":H  РR!&###--FQX%%+))III9::7oPQQ~:BNw؜} AmnݺG"X܂_pݥ@r劖וEEEu7nhii1!4e~L=8N:i$??? g|oҿo޼a= ݵkWzzzbb#GN>>)))n qvv~g߽G?Paa_/xYZrYUU=B\E n۶|۶mAAABBB'O奦>}t߾}xǏ_v-!!֭[ߏC[QT[[ 6WRN갹T@@@_6B&L~|p˖-***...d2/wvv8qbllիUTTݵ;kE0 kjj377~ͅΝ=N"8c |`=))i"""m+**:;;={mIӟ>}i&999UVEGGGFF[n]߱n^haqO_Gq>}:66vΜ9ׯ700 ϝ;7rΜ9ѣNNNY=eB0LB! HUEEy32$'M:CSLӱ+W=~<4_,+v[MLL%BrrrNxVgN:~=== Κs.++KUU^VV6--ԔBZZ5k:zVVV:xnVo>{Mכg_~sΤIΟ?* bAIHHײY[0DEEYZZ޽0,22 !djjh"YBǏoll|]jjQww{%D"5#DRRRVV}{~~~w sΙرU())aa v/'˳~@iiiaLfXXXuu󫫫;k! .\zTooozR>>>##ϟGGG/ZGn?0zѢE+W|%>t8}􀀀Scǎijj?3gΥK9O=z4^޾պu٣Kxxx;kNRaÆ1ⰰÇ~um߾}yyyW\dX?q№XgwCNNnNn𘘘9sյ˦.\ξrJg}]|N3ߺ:= //@&ӭ'/,m&zM6mذaرQQQGY[[{xx;vY__!glƍcǎ۷:z9s[[[yyy;k^[[#***`0#S300={]TUU333ݫ~zVtw^fOunmZ544qyݚ;;;m۶8qbNNNΝ[v-@1cKee%}ss[ss)S\\\<<<믯_߿555ǎóLcƍiii//^_RR"''7{l[[6&&&VVV]ߐ?{,55e˖sέ[w֬Y<<<4… UUU{;deE׬f͌ȷAAIUqv;|EE;// \\\Žl2qD"xb|JÃJT*sjJ@@ڵk***!!!5Xv-e#Xz9rƌ_f R~znnnvvv۷ogK,9<s6+^[[=HNN_7# ]t鏼9;x𠔔>S]ZڗwܺN$3gV gKBI `H!0Ai}&%ܾ:22JmၗCs  ӦMmUʃBqI$## x 2Nn*UG IDATп  ɴSS(EE uaa +q BilƊ jU.B `0?o2N|tA #F,)"bBD11s:!jB#Foi)jnL}8 ^I<||<6k v !:=db! CuJ&knݼIRR(,55dr+n~SSC1B_ZD_II&$#NgHI H~D=W4^  ` ¯;uj@mmikjۧz$`jh;:N֯a6>z9DәqffIzatuG鍚4ih9n8/]1@@;KzISS޽tkaupڟQLuu ˫dQ$ ܌"&h`, ;qt[2Tt[H$m-3\ӧQƎUK`;@3^}~=I3xx֓Ok_Jmy>++xx**::#54d`7djj ŬYG۷"""bcwuQe؏#GlZ^^QD&ɹ--t]]%ebb7܉+2N*E]}Wnj?6os Si=q31~~+Fb429/#0#2ШQOqDx >gVVw/:9x8555N$xxK0Zyy]FFaFF!*$?v<}򋚤CWd s^aغu\]͋)&&>$wxGǩ7^>\௿~V跨QG&egӏG::&(0 8o|>ѻ $QEE̙#gc||';++6n z*gϞkG}}Ǐ%xOPyyIZZx3r? 8Ox|Ltkk7w1 ʊz{Ξ*ffG(PU  SON|bn> ;Ak´/4}ɓG71kHHƉ/+!!TRRC$O?}::99S7qm,T\Lm;VMϟg#/lvHjll,³䜢" DTUf / 8Jon 8zgY$i::/!?޵/ hj(O<=qw⊌ŋ좢ɓGJ߿QcBa/_f߹QRRUٳ˖9|ɜ`0|Lm{tfNה<,*0ĉl|8"lϟgĸ!>~,=hxS{',SQQnݼߊIFy?_ӿky| x/j[Ը1|$sժ+9bBh uZ['DDo \Uհ}͸[m:Cko*Kčg]]WZXG{edٵ23xܓv]ބ1 q#yc9()IqCBCCˇKoTUPƍ'B_B>ik7o6mS̙'?x߯W,Ypb=Dגy酭tiia]]%|OeQQqiy`DbX7gĽ{IIg21[[*;z:B|9f X/_X/OK3+W^fʙW1}˗W65|23;b/{.Ņ=zcG -1}57ӆҒW_%!?:.8W9K.0BC׷ijvfƠ7o vf x=՗X/K3N =чY>릥+V]~8&MDdX/`0?PI;X5LIɫidPm?8>+WU5D ^݆aFepL&fg_XXa3˹W2*)y}D¹s+K\3c/^dg?,8gS]M}U2zYZ.%tDJJ7?Yݴ.=B>~4\qjjȈ$$^lZM6{k_vFє'@02HL&427N! ǜ!77 54I$K$&RS^Ν}-3NЌ^66~3efTTڗ/U!?P[۸sgM tw| cl6y06Gvtt`@Rtuu>LYm m:g$l+ XNgz^`DYY]4;s>"mhhJ38wCCe]\Q(>^|YZZZTTXWWWSS)))YYY;w1((h߾}$UAHH-((hkkX7nhii1!4e"d/ܼy޼APP۷\ 7¸˗rr[ss)?pĉ[[]7/,ܽc~ ӏ'}~Ѐ 麎oVVV&##+g_|۵kWVVBӧxkgKKK/_p?Feeeǜ"&&a+WTTR/^~IVV۷x>Biiib]ƆB 𛀟e&$$HHHh4 ÂLf?&|nb h4Ƙ1 mKJ(JJ;Sw'w KU?]gIIPutt8*,--ŏ'LU3>۷=vBa2 ]|fIII6l0,((̌.!aXkk+^یNbfiiWA Fq1,-u63gܦM=[6WΜsL ybbb߿_~=0??_NNmffߒuuuDKKʪVqqqɊϞ=#5\VV*lZZZ iii&Mb} 0!6,ﶼ>>##ϟGGG/Zk=Ν;FFF=m{@ƉBfi1?);VDԩ'oKZo?a"^^Қ53=7N.ӵ&zM6DEE~~~ٓqƂZ9sܺuWPP浵.]j(+++..NHH۾};~j߾}_~={Gܹchhy@4M}J"X"+K%rMȱ,TNEM, QRSөc>?>lML|߯v_>}ʖNxyy1BMMAskֶnӦMgn>vߵM?1995A=qΎ3FddȑN#Zs߾}555$Ihjj$b͛hѢ }}}gΜd2ƣH366mf8ϫ$^'(//133255 䌥N&&&Ҡ\ vmmȑ#edd3n,^XRRbgul"^b'O}8sjII{&NtÕ+<|xڐ} շnu+21}ta'һ[.;;;<<(2o/n7nOg>6jŊqnHOiMa>>g cC 7RT2eʕxGt7o?~|…:T23АqY㯾d ݐ NsmEz]f&&3&822yk6s:ThcƘ$$4|Feٲo.]o=~ܳvѢ?u76}wpsfҤ wvvvmz'Tco?ɓe4@[ *{ĂԷ[5K޺ZUUiߜ9G?wMA?vvF3%"B[d̹srsffgϬÇNNk-00P;yraDĒb;a;3Pqѕ+Oy~l.KY6w|ʱlm _ݼ%6uѣ;g}1T1q⠿zr>ڵFyzG[YVq|Mj5un3 vmKjGݲ%$Zjz0(r\\a@TM!P4Z؉@svڥq681㠂sx~vm_o::fkkxG'wwο|nd ; h]t*T 8qw渌@qq֏p۶73f\x5i{dD;VΟ?j1RBzz@@sZCB 飯[:]DZZlϞx6j::ZZ&gn˿|ۆF i*d+&ƣ T IKߺOQQ@5Ϟ}W:~Y"jove~mZ;:]d ]wwk vO\ajEN2?T͍]et6PPPvBM77m*|1ד';nocӧo\_f8XP:~eW>M޽|SII.wr'&&z2ynyqdzzNXXrt#$mm %%ń *YX:1iy=Μ:99Ɏcԩ{ΜY"-]T>}qS 5l}lksbUl>} S:8۷S32 [/x︸$Lofz5ٳGۛ7@IIZة@l#uu?j;O?ְ&%;ԩCw4 IDAT'nL~AN gť-Yr yR׮|X E'Kbg 2fAW2@ׇUjk޸dɘǶ9+`mAAfδ쉉/;dcnjZtRُz>{AD6dHQ 3gPqڵgo~ut^\\ܓwݭ[/<={EQ\\qΫWo)++acc0jј1;;hTIv_С}[\ZZicel5k&+tv}[tu./.G\XL%Aݝ]Ӵ֐!}LL4R[SqK֭ܬuu1ǎyzz'^_OVUȴlTvՎ@968p޽ii%~̘`33C< 1cDPkw,:i4ZDDӅ4Ha'0~ѣ"#SW c12lUUY;;V77]:iۛ򅟑g۸HL|W[94ll "#us;\^ gL8P^^*&q+kk+._>v׮99d>K_̟1@II%*ζa0}7lXmm|OL;&fE~>kƌEE|MqׯGaa!w ???sssYYÇoٲ3 ؛8q"Fj5YeeegY$%%봴f$.##Pqׯ 𤪪=f̘==ݻwS_mڴIUU5!!١TqEEEqB]pήqpnMfm-FmիgjUUUѧO4=fͲ~TVV!69XUD>+55&OsALi.\d2 8}aEEA~~~jjj~~~"rBBB>}7nاOUUUƣ4hީS9{5kxK}RXX؆ t:_XX522sBٳӦMkh&&&JJJ۶m#ʊ $dݸrS˥xTqq1رcdeeeM of/Zq&''p.[ߟ$ɰ0{{{ː [n$YSSCo⬫HHH Io &##v+x_D еl55|mF}"uHZSq$i&:KHHpWHTSSSC}q"IΝ;ӦM|r3ÛًiaaAmkhh7r &p&&&S>|o 8/_ΡŊ$ɥK.[PLL,''.TTTXYY5slفgmᚇ+udaw@Si̙?|ɬPbA,X0С9aa/%ٿq|||8*** dP  --l%--mMbQQQϟ:th5t)8…֎7Nosrst4?uj/wólOO+V>}ƍqqqTwBBBG͞={ݺu˗/]Sh4㣣Y,VMM jjxiiѣGoQXXÇ$''o߮ZjÆ cǎzjfffLL%K8t׈#*8Zy9rmmm6m4{"ɕq4ҁ#]]gL˫ :tijxZqց/_ zV"ZZU߷o98Y\\L$Ś7oE***y}}}gΜd2ƣH366mf85kA꺹q_@dyyi```ee%g,u.11 =%©ڑ#GpgHYx$!޾}qkގC֮=ݵ eɒ))oVI (7Jqq…O>a@j 1}ta'һ[.;;;<<\؉*22R؉XUsGfg{77ovߺ ⦤$}bGw`6o޼9~… ^8;PcNlCA()Iɓy%ĸ}p=K{˺a<==G-\BQ6W>N`YY%S_Nf']]qqq[/T5y`yyӧu[]JJ*wx3tǪZG=IPqv’m.~Ç "T/]65rrwΙz9T|0{M~~i|vus񉨭o7?I:矿y󎕖vu@wS;vÉKѶo;;&]`TDҴ;qݻY!/8thv ?uꞿȥ66|ϭEE˗%'^~:aFfee sAlmmqtMa飔ϛ7&cnzzܝ1c5EJJBLyg>c,..Y,V[Nx9N~}:9yb;xϞY|ϭEo\x𳴴xC}\>~uNOVW>o]TVkCee%-,u0ذa/KJ  5wգusTTd"^`IJ1sE.}"_2;fd1gHcc;wOHGVVB__]D+Aê}IJv<I >|}*--GNr婺YN :*ΰaCL\\Zr޴Nw{DDDbcWJIu7'9szx3#wͫQPqv2kk'͟?/srvFu[MMŋ4|.ͷlu3g72@Gwwkmm~{d+E^_4.(,ũ~~~沲Ç߲eK]]gl\]0qDEupuuůS18Z5!**53߃^#.=[w^^^^nnnhh(:thII UYYٰaRSS=znooyivv d2o߾ٳ͛7***젠zVF Pq F``#h`ׯ6; *Z#UUU mm1c޽jӦM < :7.**… vvv-[ߚLlvQQsypwPQQ jn/L_\TT93f|7dsmmm&Iӧ +**SWWWSS󫭭铘q>}zxxpN76ED\\ܠA$$$N:ED]]kͬGhŋ_ta: --F}tuu䬛={vڴi-Zs窨VWW[YY/^8d)))MMMCQnbbm۶lЃ mjTyyC;&**Z^^}vKJJ9x LSSSHj;u]uuuj/444h&fB-?,Y2&$$L@S*Ĭ(**wu=KtlOO+V>}ƍqq>ݻw!!!ܣfϞnݺ˗{Q4m,`HII55ѣ (,,CRR۷oWZE}aÆc^z5333&&R[[-Nwqq1bZSG㫯ڱcΝ; cƌ+W|mFFܨ KMMXUUƍ (++L(j>Oe o#6ɬD֚kgnn^SSCdLLfqq1I,k޼yʋ-z:mIDATPqv-nnVƚg;]yy3gks'S@kEm~gvtƎvܹG0#B8ss]b+:a:ʕV߹j'֬ʕ-[.1h>> R7/.ܴi*u)"**JFv"O =9E]dɒSQQKml :mҋ^"lhݥ;m6|r}}~аv (8.#99ׯ2N45UUNi@uO_߽+:tVgN:|W׮0t]euSU^j®]ײ :s^MMeVVz3g:s~gN =Vջ:ɿ?a'xzn]g@s]Ȯ]ߧ?W'O-"Bt3gvrcLLVt9;s>eʐWWU=)e'=Vջ:Z*PVT|t "ga@@D6dHۯȚv~bbrr۷_ya}Z'tAXU̴. e + F;"+`ܸ7o#4zKN%%騨eB\./vGnnV2URRLX@ws݆fw3߻mYOx'd[@ٝjMܶ˰}&ܹjMMp MU\#..*d3eӦXg|p 83Jm,\ƚӧX2RI@#u?R[^6Uv:Ĕ)CJ%4NXXP ]Vջ+O9񾊊_LfůEF>8P矿";*~ɓ O;v\K5 bb%@Ȱ]IH0,,mvEVVrоNe&O]N :*nr{햖zv.Mb˗iҥߌٿK]~ 'HJzv8(Zع )}7SzƌRN  gmەn?bnfU ,,f3wwk[[Ca'`I#/^]棬,iZ*77}cE $++e}@\]]]]]@(-tpإxQNz)FHKLTWV-JNNv"*'7o;gF1}Ι_?8:G' 1`uBs>svxՅqDdl5gQ&Bع  7xMMgϤ$}/>^%\~yxxrw377>|-[8c'h߾}i@VVV;^ai_u 5sn ;n޽{yyy,kС%%%WeeeÆ KMM ~葿xx}}}=!;;b2onǏIIIl6ݽիWwDo޼QQQWNKgO6f?eūW ;NUUUCCC[[{̘1111zzzw料ڴijBBCCCƍ߹ .59x#GܻwUTT:a"6]TTį6*n"YVPpႶ6$ӆAR+ }ILLܸqc>}TUU=<<8""..nРAzzzN"pfji4ŋ/]D} ۰aNt >FFFrϞ=;mڴ{ܹSRR2w\__g#^hp%%m۶AC  ''7\x!j==}Сk֬$bĉ7o 055MOOoS:w1QQ۷^RRrȑAdffr眚@$U+6ةw磌Sc_x*ϟ91 HKK+++cXYYYÆ #I{Ǝt33g#5)gMd29BDQQё#G^ZXXo``@u>>G85h'I6@m7>P{sQo-H=[Ç-n@ 7OɅɯO]6bŊӧO߸q#..jwvv]zzCHHٳg[.#####c޽kjF?~|tt4Ūa0RRRM /--=zhm ?|UVQ_mذ`رW^̌>eK]\\F֣`0f̘rʷofdd_ͭgci,[짟~~zQQu5mkD :+((qIw^=mj1C]ዏ*(_-]ǹo>ss$cbb455IdXSTTTVV^hQEEu{վZZZ3gd2T{Q$IFDD닉63QF꺹}{/}||̤LMM+++9c3A4h';$gϞ]UU^s_Y__{n}}}yyyXUUU=l7vȑ222400PAAA__?66j繧MEh|ɰ3:]GDăUά_?yɒ1 E"""OΗ@.^knnN} |pmdd͘1_~ t!?LII,X 'v uu_~v:%OSN-,,vR-++?+**2k v"Ӡ||&֭^%%%6uPa=*n͚Iյ?8cāNz 9ƍSݭ/#6gޕ …s@h@gqq*+̜k:PqAF۰aody Z?6%%5oRrrrtuu@ogٲ4meeիVMhݻw޽[й𝵵S-Pq,]ڵgj׭slNNN'd*NhFLY]]/SEDbx{K+Jw`;#h$I ;=z7gΑ~Tc '4';Y _WN%<ӯ+$<|V@Z&lȐ> a*Nh -<=}Wb@:NhuG6޷]NNB@&5… ԄtXU>W}$nORKa*Nh3 |c{HHC{q{Аv:Ey"oS?N2D@W:vǎݞ6m֭ӤŅt-8?._N󋔗ܲehca]*NOJ7l8we:@ |wnǏ%/Cy*Nڽ{o$i_?y(#ag„%+`Ӧ7qȐ>'֣GlKN~mkk0DK@gC !>YPХW>M:t1;zTIl2&QH͗/G6Zt_;) 8S$y?LN~=xpoN  'nnn.ϯ 5i!ee)޻vv@ ;rssFvj<Pq`YYY ; 荢 B  '*NиãCEE÷lRWWۿ 8q"Fz䉨( .bbbO>m0۷o[sVVVFWWWdh4Z@;hٽ{rssCCCY,СCKJJʆ #p{{zCvv d2o߾Mm2dڵ+W.]tƍǏIIIl6ݽ ߼y⎜={6""]PqLUUUCCC[[{̘1111zzzw料ڴijBBCCCƍ>y;;;׫^ 5khjjO mhhXQQADmm_mm-ЧOč7GUUÃs(  $!!w) x^bnfF-^ҥKǰ 6tNiii??0꣫kdd$g-ٳӦMt;qǷnz s^j jŋC "ʊ  Nׯ(**nݺmllhѢ/kǏ:uꫯt̩kddr/_𜴩_DmCDDDD}<<<̙~}188C]fMff&A'Nyf@@izzӧO---}}}U^^...~Сcǎo߾𒒒#G4&"33;T$ZNݽ{W]] 'OPa> 5k lpX,VVVaHdXbbbT][PP@,+:: ϟ?svիW$IrFI 9s&:z(AӧOgXl1&?~WRRR xNԯx\$J] B5'4hP@@8//ڎ>>FNd2SRRvΦZ6oԨ*6U\\<ɓ'75Hh[3= {ަS3AzJKK礭q[$*N&6bŊӧO߸q#..jwvv]zzCHHٳg[.#####c޽kjF?~|tt4Ūa0RRRM /--VlMDaaa~~޾}j* 6;ի111ܧlt׈#8$Izyy 4hAX˗117QVVF}U^^#W_رcΝ-l^+9~JMM]v;I[rOK|}ܷoyMM I111$IXy)***++/Z:j___---yy3g2L($#""Čccc=6]]]77O>qEyyi```ee%g,uf.11 'N|"""gϞ%y]?ʱk.%%%]]̜9SMMvȑ222 nfsvq̦poSѣ}UQQYbEUUI6qt4CRFEDDL>]؉eee5~Q"##;sR X8@似 *N855C ; T X8@Pq`8Ah4(99 Dd޹z)kkkWWWags h '*N,T X"Wt>ҊIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator-members.html0000644001725400016040000001016713273140100023024 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathEvaluator Member List

    This is the complete list of members for xercesc::DOMXPathEvaluator, including all inherited members.

    createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver)=0xercesc::DOMXPathEvaluatorpure virtual
    createNSResolver(const DOMNode *nodeResolver)=0xercesc::DOMXPathEvaluatorpure virtual
    DOMXPathEvaluator()xercesc::DOMXPathEvaluatorinlineprotected
    evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0xercesc::DOMXPathEvaluatorpure virtual
    ~DOMXPathEvaluator()xercesc::DOMXPathEvaluatorinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp.html0000644001725400016040000001135313273140101020201 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationList.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMImplementationList.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMImplementationList
     The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/dynsections.js0000644001725400016040000000564713273140077015120 00000000000000function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); var summary = $('#'+base+'-summary'); var content = $('#'+base+'-content'); var trigger = $('#'+base+'-trigger'); var src=$(trigger).attr('src'); if (content.is(':visible')===true) { content.hide(); summary.show(); $(linkObj).addClass('closed').removeClass('opened'); $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); } else { content.show(); summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); } return false; } function updateStripes() { $('table.directory tr'). removeClass('even').filter(':visible:even').addClass('even'); } function toggleLevel(level) { $('table.directory tr').each(function(){ var l = this.id.split('_').length-1; var i = $('#img'+this.id.substring(3)); var a = $('#arr'+this.id.substring(3)); if (l~\1v순vvSnʎ2mڸu--Do]Bq&Nԛ=̙!f￟EF~k>!qzzcgsr~߽;С};w&ܺ>O*+&$v]x_fe}M`H/OJJvqEAGpw_fT+_GD?~RHHDVh S?~$SӉ۷ﳲRBaX,~ꕊ矯{>HMMvqE"3EMM} {w$'6< }fcǎCxcǔ1i)uu~:23n]ܞW$%'5~۶MFM͑5>zxNSWvѫyB۷/X,?RXXkESӋW$ Xw?sO?]ǫ?==??vP祖.u,//-//~h4˗Ϸlo2aÆ"Qc76>_[7Lfwl [ȞFS?QppDCCtu^yx|gv u)۷G MRQQiqE"ݛQSUUYQ)0@ 7rp@n 8 7rp@n 8 7ǠILXDu!Q6l ^p_~xDrx/Cn֏?Ry6ΞM]ƕ* rp@n 8 7rp@n 8 7 GQ] 8 7PύH$cM Ϻ}7M_ B#FЎO1cqqq'OXXw;ccm|PZbCB6#_rΞMrS~X?bHJ7E&))1"b…KuuãBBQQ{L4%,lKZ1b~_ !bWD55p+doǫ2B!YH$21緀ƌx54F1̷CCO.N ++5P?޼9HMM}ڴݍ G1̥K]CCnFue/ j!cG|XطLe¨T t@@iKc![3O{z7rp@n 8 7rp@n 8 7bOOK WMu kPfT D(N4e/gm{ttt׬Ybd`PF_pϞC$::={]{yZDKK&M}}mJ!foR:tp?cݎ!77Ds󃶶$9??ڵHSn ܔ3$v;uռy EOC17ћ̦:9-!砠3gN޳ru돬,npp8F&&c]\VڵʍD" kkk?@mm}|`C+7z?7*F^ĸƁ[ Pn::vm[uҤ~}:׫UQQIH5kD.1IX|9/D"˓YWWGbmmm~~~V"۞Ds8___r{ϣlذACC2[cjj۷eFYI$?VTmmq"""{$d֬Yl6ʕ+2[P\Y=z4ϗzoܸd^PMYYɓ>zjٯ}…555JJ fɒ%wޥ+--577?zʕ+eDo`hK.QX@ )Ύ`\~x<֭[),dTw>}FS]$$$DSSBHHdnnnnn?S] jjjp8_}նmۨ$Tw$&&2P]?bcc  !bQ]{1c⋞fhoo_~QX,ּy>|(J1se6]WWGu!oHIIٸ1cչ˶Q444EFFR]D"բE}vҚo߾feXZ)`n|||Z[[.wU=,X JrSQQ| 鑣bq X,VeelEˍB!Յ_~iOʲRhgR]H/V\ijj޹Ν;taa!ȎMOo򣲲REE%!!sUx<ի?S{_!ݹQ hiiQU;贴H[^|xj 땂F$YXX,]T|ALQSS3""B0)D݋444hkkSX;hjjܹewkAA񰭭pڵ]|n#700믉"ȑ#nnn"އw۱cBFTTTl߾}ذaݞsn$ɡC FIIŋ'NH%'7ݧAܘd2t: vN9MGGѣBX/^Hu]7EEE!P(CCC_|Iui}coo着X,F)++P]{:}&ɑN>|yyⅯ/`2omXf Ni{FZ򙛄w%GTػ>UZZmrzz~(mp8; d\n着 ,>hv튊6:O_noLfvv%% IJJRRRzC BCeee##s i xxx9s`ti#X~ tާ cɹ/qㆪj硢 7${Yss31MΝkiiQ[U?98o EEETՋAϝ;GʯrP֭[DtxC2 LIIeddt)S ?NuE}UUUaaa"‚ޭbܸqNCGGGNNN}}9sFzHyxw vvv&777!---77?=0 ;;;KKK55CDSSSeUpq!fΜx;d7@N@n 8 7rp@n 8 7}΍D"YjjHÞnTH97O>=~***wqhhhȸ>禭 !4xWR bXzẖVtt snlllBĽāfgg_przzz-hIII'N֎NII111QWWߴi1P(  3gܽ{7BQIIfHI ᡥ(ުY"ZXX$*t~Nw}d\UssMP ccc=p>3++ܹ3,,ٳg yyyaaa.\(..$bv]YYYPPr333Ý\.B(;;f_v !t]@' |||jjj.]tʕ۷w!$H\.7uU΃ FFFlKK9sL:8utt![[iǏ5z޼y PM%Vddw}geeA4u~7OMMuuu7Q!G}d#on|?p@n 8 7rp@n 8 7rp@n S$8`;sLRu#""TUUufff瘟ț6So 8T=վyIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp.html0000644001725400016040000001207513273140101017466 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathExpression.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMXPathResult.hpp>
    Include dependency graph for DOMXPathExpression.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathExpression
     The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__incl.png0000644001725400016040000001007213273140101017443 00000000000000PNG  IHDRp!]#abKGDIDATx{PoxA#JP!)@QA (H+Li˴::Z0R)jA*R5Zh) hO ou=瞛|eIh!NGzP  F/(((((0kfg4~[lP(2ikkDF}Ǎ>!Ӎ= 0B;:*=TzPIG"&&&++APdggY&88899ԩS*Ylb1BH.>|866v|>?77@2b)8:C #LBO?`˖-2,11?ŋ'O$%%ŕjCKK˯J$ڝ;w ͛7߾};;;!mllߟ8FLQX,]'Od21c͞;wnvvvKKw}w D;wnZvr)))oFjT}bbߟ8Fh24>>T FLLLii)~8|PH7n̛7lmm]XXHy\.W  ֯_Zt)mX|˗:~ᇄg"0 xUBBB6nx]}E\ܹf͚+V\rEctmBCCO:E}ʕ+,YrR4Bl6 !#H8FS__L"'***fϞMLKKJKK/D]p_oݺÃ<Э[:tȑw}qqqw. "###""ٳ+W dݻw͛7;v >{>}ڀq1Q= F#Offfxɻ{sڴi?WXqU1}}} akk`T*=|rrV^oJ0\N.\X\\leeeesAuwwuֱlOOwyXuScc BvԨQuuu&NH%O)k׮!<==?6nnnF|Mȑ#/*fe!nl6ȳ݀q1E={Yfᇁ'O$V#B8š3/˚SFM>נ!2oرc7w:j:##888x۶mĒkll SSggD"yyeeܼl2TBBBGGƍ߿?[b?o%o߾}L&1"((hǎeee͏?>|p@@A.VG)//J<#{|  FKKKyL&S*D#FtL&3<b'O;o0!F`lذo8::rܜbmmmiiI񊊊,YyG<oժU!'''ooȒR啜g)|WxNGikksqqIOOݻLJN7mڤP(aDџjoo'=r]GGGwww͛X:X,ׯ_hyR O>ݽ{wmmmooH$:qDHHP'eBJ.(>yѢEF{!ݿw0P @%F|F~8 BD"|` 4eLWWWƽ_섰0@%'J@O*=TzP @%'J@O*=TzP @%'J@O*=TzP @%'J@O*=TzP @%t).~??0a~>##bR3i6t葸?/Nz ;DDD|:O'xz;]VR_̪Г^k'Mr8i9MRk-,̣I>Г^l.앚RCCdhS7jS2q@OJgfFbgГ!X,ۙ395 <~7Νbm>&f!6:~9قCz꟥KBAA޶VC߃>|Oh@X,koCڰlC^ ü=+SUP`444-:W3f` o4,P @%^OW[]] ?x¢jc 0/?4Lg며0"B<}bm&e}۶mKIIDuuu_>=={n߹s177W*N:D'MMMND끑hmm~:6 yS6SLILL0,99ϯhYB8T۷o_B=z#ק/vtt Μ93qDLR*iiicǎuttLKKS*xezP(LOOwss3fL||B˗:ݟ?ncc3br#ڳfB999!2yyy'N˳ԗ$SӆF%''_tI_ʕ+!++x5&M蘒۫8PY5)>>>!!eرÍ~iddd}}}UUԩSn݊_F-vZFFWUUUuu̙3SSSyXYYegg777?~¢gϞ=:O8z~;֭[BdQZ?~'&ixtdB/Jϟǯ">>x~UUUM4… YHD$޽{;::juwwJ)H'GV||:5?=I!$ 1 STX1 G35z0lΝ歭`={{{|{n}^r\VH$5kքJ$/_^p!9/_"b@fԔg?ca 1<:cjBB555...Y\YT*U``]$ŋq{JJJTTԳg*++gΜaergϞvZ}^r`;w=''`r|>_,q6ǏZd "-EݘV/^ XQilla DOM3 API Documentation SourceForge.net Logo

    xqilla → dom-api Relation

    File in include/xqillaIncludes file in include/xqilla/dom-api
    xqilla-dom3.hppXPath2Result.hpp
    xqilla-dom3.hppXQillaExpression.hpp
    xqilla-dom3.hppXQillaNSResolver.hpp
    XQilla-2.3.4/docs/dom3-api/inherit_graph_20.png0000644001725400016040000000436513273140101016032 00000000000000PNG  IHDR%N}bKGDIDATx[LǷ"@\ b)Rb{Wz6 `կI$8: 99?`||`!~2VsuBD˗r|zzNVGDDT*]KKK_~w0JTb e4i4wlllGGŪ@ohp8ÇK$ɺ:t@|||[[檳3&&<333++kfffٰVsEg!vvvz{{+JA>|pZ- +++|>`t>}}}"חFa AP b&CD"={ljj'*󛚚VjooOJJ; ~;vprr,))&p޽`VRRظ}vWW˗/`(++p8QQQkRN:d2y<9?&+o5wbvhمBa`` N^ZZ2 V8 X#--ɓ333 c``,--=rԔT*t O>-,,rRT&EFFx`mBشiוJh7 -_+www6+++//Ԕ5*++]\\0),--h43ɛ7o˫b8N}}=6MF_^^&޽CM6j&ï2f[^^B_b= ѺS\^^Fd2IIIT*5::ɓ'-J<عs']eRUU~V$lxС`J!&& ½{M̵uptt|-6UB$F3 :5J Ŝ;1;t e- B?~8d2*ʑbZZXXz2ws h4FGG磗zh***0[^`0b1JE?o&U511ARy<‚P(4:nB$!88!zZ߿GvttCh5w٭X,"DBىggg'%%?GFF?/ĂPL&ɢΜ9cJQ(۷oS(Ng3"F$w\pppll,擨*@UUC$G^x; XJ:#\bB\pر Lr!FUH$ 7nnGGB-[eddhZy#Bl(DM !6?-cIENDB`XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__incl.png0000644001725400016040000003726113273140100016753 00000000000000PNG  IHDRI⤀sbKGD IDATxw@'4w)=];b۝xvXγ'" " VAQi"`Hc=aa3vy~3S;m@mC j'XqqqqqqXG"~t^4|'--j[ : wҰu6O!| mֶ_jtlddd|?{wJJJ`` ETUU\544yKR/_.''6~ݻwgggյD>}:Q@}qƸ8___ŋԎ9"%%000>|orrɓiii樫gϞ988dffC BwdrLL{2rT*( }WnC MF7o^JJ /񆵦7ѣG^^^/^nhL>}٧Of2ŋϘ1ݛ?ɓ#""\&`aaaaaal6uŋO6իիWfΜ)>x{ԩ.]TTT<}tѢEǏgXB]^O6@d2Lann^VVn2 ZN_zBUPPB;V[[v+W/_>}yyxxUxl I$ҙ3g>իH4ד'ON<̙SNބ'88ܹs޸qc̼|rF.n{ߖ;v,VQQA93?l6֭555ΝX`  Ia---SSS,4׌3믿ڭ3f yWZe```mm|r^B\]^^ׯ_YXXvyr ϟ~aʕ '֢ۊiiimm'rqqqqq $H]CC0`hd``njmAF]xWJ\2beyyy/^@ :NNN111Ll999uuu)))*++QuUU>|͛h^Ɨ/_Pfz2\WW͛?D"͙3=xb iӦǏZJCCZ-?r䈵5qe޼yo߾wޕ\p!!!aiiiD"})<|p9ww6\]Ҳ;{jQTT<{ldddXXXeeٳedd=$&&zzz xVSS;{ӧCBB ޽{y 68qbʕ222Ǐ,[ĉ+V cǎLGGg^^^o:twBqss hjjruuFkF\wB%Ι3  .|aƶqqqU }W'@ j())M:#F!jjj6mc!| m@mC ]B h ..?:v3r,VGY*)9'#Giii]]]t/OPPP5mڱ380k Nk„@A BЗ, ݵK#z4H;,lk/D"bqs8𥲲zۧٓNTA -/}o+W`5k޿'u" ԩE:w%h /^|ڵ+)8xO"t+#C<{v (lYgj-jjVbvȝ+]GRppȝC Pۭbq+)wf/8">[eǎoV/UQY`9DL@m ƍW/>;ztZ6C&Һ_=<{={#rX,΂aee[~g6j[3sF[˴ADP(ɓT[1u3gl6xÙ327fsNu5uKf =a9DT,^|:%%PIIHcoxtXnGLLVjj#06!jܙ7n(3c6m H@@FIXl&Pҥ^!Aҵ]QAٽ;iժ#Fb`9Hz;%>զ`$~{o%$WMMmۮ͜8f cilGo,I !EBSmXX͓UfsHPmoofu 6C:$jܧO }$-"q8?ujֱt8I #dO:!A>r䮷( c.Gd2}zw6m*^m!m A>u*AU\DfsHkH"#^=^EEXD mh;:9 >>?ci~J7N6͍x`((-##,Xi!AWm7oTU}u:16/Z􏅅ne%%2 22RWf9;[`$_G>u bر{'O>d0sswiɟ=+zlŊqX"vJK^jj.l `}LȑCcxype%|9 smH_l,ց f+pE^.+-$0\۱** 6X"^ GD 98v| //^>aMO2]AAŲٜ/I~fΜX/)S uu ϟa7sLM5mmV=qba| "~00Hσgm߹vTѣRSCB+*,hX9p7o}4@?ymD;(d7 =n>xAin߾pz,U66߷2#D"qҤIX&N߷>ɩ/j{**u'ӧEp2D)Q̰j;3XFhoou bWXTT@κ%abbS[[˟N+++>|߾}V%0h ɉ'zVVV.XĤ_~Ç~:/%2HKdD,ܸqcƌbu3T^^IRZ__jhh6lXvv_|uK.y}* #ׯ_ 5o޼߽{WӒ L#;v=7;2&&݁ɓ'766  y!<B;vǎn``3%h&&&w„ ۶m=ĉy>׬Y3w\-ݿEbbbDMLܦRj7ä$}}} r劅NX mmm-- VSSSBBB455}||x^\7o˛FEEluuuJJJ '44BYY)33MP__d &@x`Ν666yyy#G l-F #H4-44Th(A9PYYy-===B]]]sssmmmw܉ `T*ܹs9sP3g" l555A?ZSmmm4ttt^~ H}}b]]N&[)SPT`]]J]tiyy9QSSI$RB@G~$@_('S`jB١RA"HvJJp"biimE&edd:DP\nCCi- pdķoߢƄsssA^Bd l2EϟkhhYf֭DGGd2@PZ4Aзh4BڥOhour{{#TSS{ݪUxR]]]=ӧO AgmmZ.uufdd7RRRBh4勃vvvjcf?ssrt[YY ###-V(O555d999ٳg!"P!WWWϛ=|FtHIXL0,4Ak7>|?mkkWˉ'xF ^FP22KՌ^ii)jٻwok ˍ#˖-:u*LΝ;&L@&&&޽hkkĒX\\n[ ӧ'Oz{{ڵN?x 1c444EGGX,EEEtWK3gNPPЫWN:Bvi ެ[rrUHmd2YGG')) _~֬Y'#G]bggbŊr1 yyڳg3 .\XQQ9v옖֍7H$Rrr)z ؠۀr-j}KKK>}A}߾}7n\rrrAAABBSSSիW[[[fO>}Ν;okQ(LӃ^B{h|BW~LWwcqqMwDǏg2\~]WW}5R GSSS``y/-saZYY%&& d2'Mċf+))=-v!ɋ-0`o`06ۉwuu5`kkhccg794ɓ'[t֬Yzzz#FW#Gohhxԩkii e7b3_~6 p3Fll,U܁Ap@3gց޷ ̴:(lJXG p33-@z6 _%l< vMMCSȨ?ց`I#4+G_| :icfK$qĀmed*X1:::...ׯ_755=zhk\ׯ_{2d\Y)&a5^p't1emXYQAr۷O޻_pmmvmן/_^+1(+yj'>SF۸Z;lv-%ŋ+lm_|[$Lbays|s3g6,௿]q#L{ر<)mpm` _z?gLdçV t>55pmH>-ڸڵK:c%cc\!z86]'lY[L*))/^|U ~pmoJ 쌎[}]eIVW 8Ѷts3n{sp_"က_T:ց@m%%9MVrk/UV:>xpvrrޝ;yX"Dti??\Ĥgۺ56őWd;y&X"HHt{mhpm%%9@CCցϟoiӯ3g:bՕv~OX"D&&.) 2~&ciY9;[lbqEBM5/]ajy^/4tnYS`mKHA =<ܷ 06z轢cDpm ;rN^Xb]]5c~~XZl+=1'ږ!N;wN= X:7'+Sll6ֱH86_?yPŒC}} e .uĺ:ֱHѶF ̥K#LL4u,]a˖I** !!#jmkkS[43((uwX"AGZZ*T=Wfǿ8rd:ֱt㭧Msؾv h[[[ojի-ֱtݻg6449r@$hvc#O?O:SΞMu,~RW׀ }m>7  =lӦl6X~bq(,pqjf\܋o`Ї_ .. u,WӧOXzGTsZ/Xǂs>[wT-YаmXsmyY4;]{5[?޸ X ~ U`E+jeۗwpP+m(\:j(3I~.*^pm>Bgچ#GID\TJ}NOxg龥B599eFpm55 DZIDATL4)S==bK.)&}Н_~9zuq>955uk:t(۷]f`HO4? WJE~B+a]W嶱w옮u,5LOO= **lȋFpmyy--՜p7mh2Hcwc'(_@F'6.LLgg?| JB8? 7^NKL&B*)Gݰ} mci^DoV08,):ukڵXjTAAHٜ7o0n7m[XhSd~HM}w^ݻFFC"\KMVVTaH;p8ݻ&Mgsc33w]]>^UTo62(# @!*yqqS{XudS8deH޴-%EW4Zѣw-s8PXza׋+( M}7m,-u>|ѣwY,Xһpu)%%`@ ii"H*:> .ۛ? 4AMMXz&&oo0VJ"Kw[nMMׯaedŸN㪪^f!>n,M\Q1A$'M$//>;uu7>yRu B((-)u)%3TVv:>Ƶk׾?BX#zUՕ>~$99KuLkdvS옘9s@T|@ p ϯ: AJKnٴWo8 {aţG2B>ԶǏ&ց|6y> |>gl6ݻ αc)O) OmPWW=Sꕕ}MHxqGAWXTTq<>LLL|||jkFӃ핕o>^@4hc։'"4ٳt*'東F 6-=Q9@ȍ7f|on={F"###TСCC Æ >x˗/nz%www&(--} -BycbbD?S^RnhͱY8.[MMM}}}ׯ=z=k.MM &XXX̜93++422Ms4n8YOp98R 11,w޼uOPW\bcjjQZZZHHk pM;;;yyySSӨ(NIIIAAᄆZXX(++;99eff ,Ya`` ֚8p!+W޺u ݍޱc}$RPPPtt4;{X^;>>~֬Y7+++???ೖvBo377WWW߿?|bb뛛~ XXC"i\.w̘}7v6# &&4>>>/D*++:t-[ 'N|Ν;mllrssFZ.&''F"åi4ZhhQQQ9rDKK+!!֭[zzz3Z\\kkksNϟORϝ;3gJ=s -_3;;[MM AV<}T[[ׯ_#R__XWWn(((DFF"4O[̖:e*z52yxxdddܹS n CɓƐ1?;m b```gg[YYH$t;%%}PrssLHH@["222P(\.ᴖˋL&#baaqy^0.\0L"[Ԙ`nn^Wa2ۨxn.ik֬ٺu+ >yǎSQQ)++i[hB/Sm PXX cnn.Ԉ3:9իBLk!{nժU}zY"4x ZZT;A}ŋR]ݍ5X Ff9] ګs877ݻwd$Ծ~Yf|FvZWǐ;;<''+V`֞={V^^`;pŠ ϱcǴnܸA"MMMS/Xյ$//fǎȏnQ#XZZ ѣ߾}7n\rrrAAABBSSSիW[[[X?}4@te]fۈ ?ËeKaaaVV֠Av!gf2٦/?MM,+m]~oWǏg2\~]WW}5R njj SUU?>BA-s!cff&++kee(4;ɜ4i/*6jnn4zhBL&/Zh@v~~>[ʗwuu5`kkhccgϞFiii'O ry7e]_;wXCCcݺu CPR ׉/cr7^nֵjy6 4ȑ̹uj &g@Һo=|^ɓy$q>HPQQ\ێ&R=?^LLu 눱\JJr66=mAbcg&+) }k0riFF>QRZZ7g;C g+dz166:ADT̾};w֬a=s:5~ ɱc) ͚?$\tmkkWb~~RRLĉvbW`811YL&ge`$")ڶR~;jFo\HIyr2w͛'%%I&ދ?y~^,1%058S 6`xSp8\>ߓʾKD6$'2.={Hn{!))ƍ;}_}d5Pؽ*-,t}h@F55Ŏϯӛ(l#urIv22ě7s:ŋRAUgHe=}Y^h": iI򋕆F_nZF,]]2|I',pRH@miiS^nfs>|H$FD,Ee6:ԘdKI0 ! 1`eӦ[`yd2@vG\d &r8 jlgg8a`99KfpHrd߽\.rj&*`L&FJ``SFfff˗l6…b]Tϻw'IQ BrbqvNz5@Fa2͵KKZVqiXw9 ÇaÄ*/* My3ΝM q$W 366NoVdrw4ӉF=xptLEgKSS,-un"** /.'!qM.W/@Z8mڐbr.Y:ŋRޝij762aopH\mF0=q» W5l@))LCBn$'q8\'O Y,Ntѣ8`O-\8~߂t ɭL6,X-rRwGދx{ 6oCne工KǬ_ީHK$]_KK뒒^ m}}u".%EQkgtyhh2ᖖ֎a?ѣed>v?kߴSRm'4/_ji)w'm!FD,Qo6\mt&:9wmQW>]EEG?[%PJQQVJ{"m33M`G]8ǏU慱ٜ(\.P11шX"&59H$ZbjY畕sjjbq8BM deDo]z?>چ@ 6O|}}MVTTmgt\nމyyyY&&&>>>mGd…ut4PTT$H!}>7n̘1C衒 fm޼C ٶm߾}[zuHH9?Ϟ=#H呑T*uСh$BtR~>i"}ɓ'766 =TXX(p-Ͷ~~~\ёd-v\رcwZzq"۷o߾gHtOPW\bojjQZZZHHPj pM;;;yyySSӨ(NIIIAA5j@GG dʞ?>""bϟi-H^ZKʕ+oݺ՚{߿w7---֯_, zmŋWUUikkgffƃzyy:t˖-h2qܹ&777//oȑhrrraaa$)<<\ZZF X5زe `Ϟ=F^"\VSSk|2e JvQPPannsNƶXnfm b```gg[YYH$t;%%}VrssLHH@["222P(\.ᴖˋL&#]6/; ˝>}:H\p!ҐQKk>!psǏ HLLP#&P۽.oڵH$VWW,UUUYAZZi A'O̚5KIIۭeohh6mtDQTUUoܸ3˗>;/P υz`0͛7B-ݛJ;/_N83jhhP ѷV==RԒwr1 .G&-[6uT2,4;w&LTTTt*WVV_>44tر!!!_~Kk Os̭[~977w„ 'OϵhѢ۷k׮skǵkרT*ɔQTT=11q555ŋTj&B#oggl2@@@uzĵUUU鞞>}ڴiSGޚs}rÆ EEE۶m[paFHHhu뺺++JUWW0`N:655驪Ο?B133JLLdN4?={%&&`3_~H:@}gʒ!?744im-QΝ366XnjlauތۿK@0hРAȏ+Bm־N@-w:9:yo>چ@ 6O!|"d'@x477aD8?h[NN@ I! !t+m@mC j'P>?rIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_6.png0000644001725400016040000000406113273140101015747 00000000000000PNG  IHDR%7qabKGDIDATxHSZ3M-CQ"j)NCeLI"aVXh4\) ,k_Ҵvmk:۝[}_׹}<=m, 1_7H@F !`bڱL&dğOJJJJJ B߁d2Yggk\; **nAJBMZ=H@F !`?+  `H$aaaׯ?},rJڷ ,y0&a^-Y>^(&%%={lhh :Ry466n޼:9b>jlljkkB`H$>$ < <<<222: p ^bT*-((`٤D"J0%%|}H$镡[]]M ={}||򦦦 ~wYzyy9slfծgϞRPqƮ.Zk2w]]]XRRJqر>@BBƒU*Uoooddd^^(Ǘ,Yrk׮-^9'''+++>j˖-#JbbǏ|>}gOOLr|B(JAWTcbqLLJ )**:8nN988dee@2D"a_xO>577{{{$B_#,ژ0 -**"AAApSTAZ}59jܹsY,^o6mbtww'c} =44-JԩSFbdZv޽;vj۷CX\\\L~ x Ekkkbb|>~=4 kg[TDŋ E~XAW^R_y0Y,Ç޿ ړ󇇇U*U|||yy95*==jZV:thxxVںu;wt:dp8\.Vo߮^j=LLL}cΝG cbbZZZ"##p6 6x@<򼽽]\\0 v( nݺb  \n':uLW,Sm q<777$$ XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - _ -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_22.png0000644001725400016040000000412513273140101016026 00000000000000PNG  IHDR%IbKGD IDATx[LKǧJ[b B#QA"F4bL Dco@T"[oEnE0fO=ǣ3o7^ڲ N0Io0L0'jCVU E"H$Ν;zI_jĉީߪ ##*o0L0 ~O߰(fggOOOS;FT~ӧO/,,V.55baddb}cm;G=}xFd333QQQ:֭+//yQQ͛7WjŋAO<766޽{?66r~[x{{ __߄sΡ]eee)))"hjZ&III---TMMM-˧O~7---An߾-F#`~~^*|'JтP(JJJɏ>= ppt ‚t`gXjmmEͺb6MvpwwJuuu)H+Qccczz:U0???44477+Nw^.WXX8;;k6+**D"GlllOOlذ uNogg֬Y& Ϝ9CWfӁ ={LMM,//߱cR:~0 55ѣGbXTTB{Yaŗ.]h4W^urr2 6u:ݕ+Waj}}}˖-"OOO[ ܷo $GRm d2!)JLLU*aaa<O.{uZ9U/WѸ۷orrÇV ¨ G_2P#L|C_xxxii) h4h=22T*!!!!r}5MjgϞ%bzl/ |rܼ"a]]]rr2UܨZt8yl˗/\.D׮]#tuԙ>vh7ׯo޼1 fH`0c@lá.c9WRuYtww7>|A=边uڵkѶ@ hooJټy3P(-KZZ˗-ߘM6 yL&T*9 yB"##srr辱Yar_<11q…2rSEijgPVQdppԩSL&bihhjߺuV [lٲ5ʨ_2;;;l.ZH&uuu֢gccc9::H}:{5LRn0wC5ѷ7f9))ĉZV ѣGltt#G~/)) WT**66L&illp8&^9\Pl۶Oӡ? okkb866vvvR>^zuBBi jjj8jڵ+11qllLR⪪*w=F:i^%bcǎY-iSϟ@[SSP(j™˗{yyFjY>>>A8= rJfCP ,%Bh0 bɓ'|B3P(/^[b$''jw &iaa"88=&&-N-YDY+VWWWgffx<+za7,,ܹҞ-1s(?ma~(7&``}a 7&```0V`&&&?F(:99,P,v|a 7&``Z&IENDB`XQilla-2.3.4/docs/dom3-api/nav_g.png0000644001725400016040000000015413273140077014004 00000000000000PNG  IHDRrcf3IDATxݡ O@C0:B%#GdLrERq˱/9iDNIENDB`XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp.html0000644001725400016040000001311213273140101017265 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaExpression.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xqilla/dom-api/XPath2Result.hpp>
    #include <xqilla/runtime/Sequence.hpp>
    #include <xercesc/dom/DOMException.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    #include <xercesc/dom/DOMXPathExpression.hpp>
    #include <xercesc/dom/DOMXPathException.hpp>
    Include dependency graph for XQillaExpression.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQillaExpression
     The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object. More...
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.md50000644001725400016040000000004013273140100024403 000000000000008f1e5024fcbda66e2525271ddfd6a67bXQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__dep__incl.png0000644001725400016040000000631313273140100020110 00000000000000PNG  IHDRpI)bKGD IDATx{PSuj@lҢBIAJNJ Fhc-!m-;S[m e8 Qt!BEhEA \oo)a (!s!@/{vgsXJ[N?A 7jﴶܹsdd\&r\z1O 2uR?`Lt&ݻu"7xC፞˄p8z{Μ9-,*_~E,Kҹsؠcl)ر6;;fOXpЉ4777Z֖iӦGB|>ݽȑ#uuuc0 n߾퍪卍Vn!HBs'2b͞=_orssCǎcXBP&~~~.]Zx[jY<EQ555hlƍ!OSVVv.]Dou_~5kp܌deeEGGGDD$'' @GG=kos8؈'O;V:z(*RBadddddP(TT=666<<'ڵk\WWV^} :W{?ट'5wc#?.\844tmlhhX|!BaJJX,>uT^^^EEErrڲO>##cӦMGǏG)//O*:th߾} YYY+WC3g6qڵ۷D"={6999))ڵk'O'8)L4(JV?l DChuu̙3 DR]xqnnn^^^|AYYYqq~sرcWd2CCCwe2aaa $!!ˋ֢"""|MpDMX?#z(SgϖH$~~~$ɼyݠ1..nS^Zfwwwxzzzzz& :LE١ '''l$Ν+8)@h4EEEK.E!!!ǎ{(SN___Bqͺ:jH C*:;;e2H$c̚5+;;~C$1>z 6$xघw466~WRtޭ[ֶWVV ''5k mK&yᬬ,PrM]),,T iiiӦM{7x<EQJ211QT.]Y<駟VVVx^qqqiii1EQѸFEE?ݻxb:Il۶MTx<4Z LRJ򐓓]^^>cѱagUopBv윓CGO!ի NX[xC 7z^k9G(ܹXHEEEh1blmr_bٲe2ʊWU%Y.'%3w.š ~j ]{MNXX`k((7w:j2@9_CC̝QN ŃT/{cޔup:3c<_~~C(##S1%#aM*Z; 7͕BEE7sspByyujM%Z]Ss[&gW_ߪ u\8X3gƺRssŦMXӻ #nnMP XQilla-2.3.4/docs/dom3-api/dir_2f715665b8aa8c276cd082abf0483ce6_dep.png0000644001725400016040000000671013273140101020752 00000000000000PNG  IHDR}bKGD }IDATx{PSg߀ H`PhA*j; Z"ԀjA+ UQY.HHVvV񺶈SAt. B"q, ~wy8P*@s8888888888888Lջh4GQ?K6inn}&-wpuu?vt\p0Z]Pr^:wSSvdd,vᣫwHN1|{ynoo3+Vwuu)SNx{/;wڵW^r9C*/~㳌dzp-Pj⿤ִ]G|ldd99qq{+*nFGoER֭[C&))cժ%HHؼyg'$x{ɓmźpᒍtvvp8c_Mλ)dg]d{++{Ujj ];&&,""}2G1. bh "++W*+*'?Xq߆."2ݝRd,AI?l{""CC7^-;`BŸx75eڕ&nz'`ɯ>K2 u˗/_.۶-I_wtԩӴj}|@@@@@@@@@@@@@@8w>AS5=/ xMlYthwغUp8 $;;;;;;;;;;;;;;;ZὮVm c=)6v'bWԻErp;v})&+W.uOy >ceVև;MV]Hߗfٲ7lmm>CJii3''$lAgp '99纻{TUݎw~򤥼zW4""dd,~ܗ۶m |̙02*\UV"ן>˕ׯf7 ںU?ۈzzzo5ona{r`X@OOBP*>7oa')`0BCCI+#wthu6jv= t#MM?vs>;sNNP%/E;;;;;;;;;;;;;;;;;~y;;;X 3gΔJ 㭬&O/kkk FEECeeerrehhh[[UmRPRRbhh8mڴ~={R}XA0!/Hhh@ hiivx^WWׄXjŋSRRx<^UU՝;w.\7R 77ɓ&LH$}~СR Ub%%%ELM͟?Ԫ*R9k֬gRsD" + 3r3/tWۧcUa7ͦ6U&Qsܹ3J˗׮];qĥK>?+=:a4bF?Wsrr<==o߮jV)^JSS-?Szz`K=}TPDp&`4fѰwBSPPP^^^RRB'&&644TUU\>Ԇ v]]]]]]0R ̙32dSJ+h;;6o< _؈D"Rѱi&333ss-[HRM-gkkf|X,.T* \.rvv...`R}XA0#43PX%i4͐p q q q q q q q q q q q q q q q q q q?G᫯F!ɫMBGX|S:yqq q q/3=yIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_14.png0000644001725400016040000000355613273140101016036 00000000000000PNG  IHDR%.bKGD#IDATx}HS]gN{q1_t6JQ 4iQQAi(t, +^eeMM\FDm #Utwmqr6 9=/|9{YBןnf^}>1555O3gߟ&a暾vf{R[[\gؽ{~>}A``> X D"Qyyqԩ̥K_ŋn֊)]r9D'HJJ uuu.k& )(W^Y,/_tuuر#!!j$//ٳg>}zU6ovf{.$ɈdB'do񣻻;33r&244fYfd9T^wӦM(KDnn.s(D7n@ڢgGoݺ%t::ݝ8|1L0 Rj@@$E,S! "&&&:: Բ/^—/_ ¨ӷ Bٹz갰۷oC'''3;LUKK˺uPk4)jjjCZJzѡm۶T>HLL,//b<K?~]UUr{򊊊o߾ƾ~vg^v3gΠ&.B CVVATE577[,Jf)jllVn車7op\jLToo/?|4l>xy|||XXXAAAcclFM;-[FNP({|`ZRBbFYf j^utt>|Ӿ*$CCC/]dZ^nx<EEEǏ@ܹSPP,sZ@nNS*!!!w Z }!5%%eBT*CBBNG8322 M`0㫂,^877ӧuիVբڵk0(wzϝ;:F>p:(;00p_7_r%??"wBVNCP@ 0( .S9NNCoN? A}֭([VVT*UGCCCQQɱ===8h3 (b aЙ_~W>ch3T)f2x<ϓ$;;;Qĉ%%%fy`` ++к:Tj0 CvvÇN'y9'|@Z-7l6ttll,-- mFcGGGzzzvv傌رc+Wdt| VTT>ydhhwÆ 'O ZzRv wn2d2ڠu˙hQ\\;cپ?c7ndfY! }w"IENDB`XQilla-2.3.4/docs/dom3-api/dir_2f715665b8aa8c276cd082abf0483ce6.html0000644001725400016040000000741013273140101020300 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    dom-api Directory Reference
    Directory dependency graph for dom-api:
    dom-api

    Files

    file  XPath2Result.hpp [code]
     
    file  XQillaExpression.hpp [code]
     
    file  XQillaNSResolver.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_36.map0000644001725400016040000000031413273140101016020 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMError_8hpp.html0000644001725400016040000001054313273140101015451 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMError.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMError.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMError
     DOMError is an interface that describes an error. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__incl.map0000644001725400016040000000155213273140100017112 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__dep__incl.png0000644001725400016040000003215113273140101021245 00000000000000PNG  IHDRt>ybKGD IDATxw\'$d`*qT"`Q\,U j-U_RqՂvV"b@ldC +@qaI.w|ns9a@H L@ @2DFFFFF d29 `ĈDAL͉/!! )LB{%: @C\3d ) 666ammǯ_^EE7b]t)55lذa3fpss#DͿcǎ}}KKKn޼D4CՈ+--]|y*7@ vti]]].[\\nݺ .((( ֯_驧WPPp'NHII!x˗ Nj ٿ˗'_!)++~:BHAAaٲe"ihh|g=e'ON4`ƌAAAwgjͳg,--;f``URRN{B2L|XYYyݺuBɴ;$i…h||ʺ㣳fJHHjѣ3gvU8LP(hRRڵk\O믿V\p«W"0 qƪU$\f999999nٳg...Xbq8/.^8 sɥ666O>]b/",Ygohh8rȢEh4گw:KKKsww_`Ahh(͊ BŋKɌ򲶶VVVZz5>۝;w6mڤedd陒ҡF|wzzm-Z4zhP\\ܚ5k w{ׯ_o```ff7x{{^7g꼬Bl˷D !rssϐ;rHY?_=ݡniip±c%B)))MMM/πАW μ鼫]WPP?~ |JEE><|Çw_2oaÆUUUu!TWWr a:SWWGu;ǷDA˴;)Svvv/_CB,+,,lҤI)cǎmjjLKK[U|888X[ZZv͛7C6.((!!!>|͛7nTVVZYYTWW///LJsssy]\RR㉯3UUU))2|x^oad~ݻʖ.]iʕuuu}]JJJIIǏׯ_h"ɓ'?ڙ|SS~fS(VdSSߥ/^o1̿ҥKxҙ1cFpppEEE~~ۯ]~uCavر%K޽ŋϞ=C͙3ܹs?sEE^BW%>}͛7Ν'CPlll ή ǻi~G7nƍwYމٳg/^{]]][[[Dⱱ~Sijj1L999{yy?~!_>}zڵ$/:<>vXlBٲeɓ'ǎb|}}Y,֔)Sx%t.!dgguVekkN&ǎ|mڴ^^^T*u]mҒP)~Rab!! .]jtell&&&/8 ҾEbcc;@ 4_:t(''.\ptt$:(K777`0tuuΝ` ///& |i>t4@2d `ͯor8+#Cbf 6LmOxJK7L.)g$SdS"(e2YDEX9uuqBQWPf0DHpY(+whl(h>h8HK+ryqqmqqmYB$-M&Pk+$I[[ƍM `ΨKFEmsxĝ9D"H66CB+~0 8HM-zyXkS(duu}I8ta$S2YMW\.]>us, ܀˧v3"*=tԔBڵ(ŋ'x++Q(]Zrr2s )Ttefve(>#Fht&VBaT_F]S*le5UX@2kgQ|.P(R2I[Zwd,B(ߺy|K)w8Ϟ[Z }8˅K`d*:Çor8M62YJQQ66T[HUgfK˿dwf66. %0p#Dj Zf [ĉw}P@ BccK`3ǿ޹ӑB!IccG^/78^u8aoRdBJ%OQVѬ'&~>%>YޯivT <%\mmﴶr6n_R~Bb[BRP5Jl؍d̙{8)3dz CϟDEƦg2a,J@$Sa0ڵ]Q믿UVTYYom() v&E%Ft:I&K?v_Wj? wq8ih" ^^HYe={bbb6-WqSR:b®0)iaaLM.tu,o,H`48KOƎ58xpɄ fsZ; վ7I$ĉï_$N/L}`4Mf2q4q$SaW>?r$J%9e8tl6H$RZ]G-Z[ُJ{7SV4yd*Ϟ[1mݽ$J'23Kɤݻ_o#hueddjjj!= wqϞؘvvcΝ[ehItDR)::0mia?M{ "|˧fgGFEF7nDgg+L/hKtt޽ddsXNnSD"\.iNddt;gD@ QE??rw{B9KqN?]54#"6MفO$KYh֥u׮&?8r6uAZ͛m33K||줥%hL;ӋCB]Konns XR dL{ ð:tBqW I21Z3z0u L{-[PO^nmmHt8}7Z}[jf4A^^@ɴ;,VۡC.\xl" 8 oWd){{sg7pߥ/7n i8{vxC?|hyeddʕtuU,Zlxv$L Iڵ+zdJ^%hv%'ƍ#"RkW,RSW'dQk+{谰~;ϱW$$񺩎yfsgTރd2ڵrr*~髹sA2zݻRq>f2e0.YV- Hڵj*WJɔ~UP~~U\fmme#L%kқn,@7 Vjj k FJ4iѱcK339BVuUK˽۷GdhFݹp| `227ozyHH֢EhÆA7P厎?-]:С%D"4û^[ۈwS4n6P?Tk+9lBV'(+;H?BP*!ȲF::C":1pN+(cf%%%SLDK.-++9%%%[l:ujFt S>: 499G'NjfCh4aG)SNH|&;/-\]' `tkl6 7 ^zJ9c ^2e~~3grtOt,AMٳ yy RR;#F𨪪j?Ccc>fy˚vD=w\πMnnYĄ!CL6-##Cd#qywC'ܴȨWwٳgeee%%%/^d2&L`0'Nz/^s8|—/_򊪫KLLR“]gPQQٱcHwB=rtk;XTdN(7_2@KKۧ.Hh4Z!rrrx\./سg>m۶3f 0bĈ`|Y;wzҥsP;"F})GGNEEB*!TImyScj(---jkkkiiXf7K;v !4eԭ[>3999]]#GtyXjmX,;wj@@@W6+;rBT*UZZZY>}: oc4f%%ٳgߺu q|ܸqC__!6rF6waÆijjzxxKx8D!I<,۷)a***PUUUE>}/0!''W]]/B˖-c2ΝC-]dojzΜ9&&&k~Qggw &|=R...uuu1Lii5k֔+++~6//N[XX۷oLftttab{)&#'##o]z5^wޭ711w\WGFF+Wkkk?ðǏɓ'o۶ s=kp{tLQ㐓cllRQQ|5##ʊ7J"##1 L !RyLMd%%%TXXc/((M]-׹vtvvեKY o+ /no?GG&f9f|z7;f˳u̘1@WGߟ=|u֭[իSxɩ{v8uIWpd}\׋aد舏;ƣG:88L>ɓ'/O'B(;;?x444xz]]]rrro jYK9sµdr~~>>c8O]nXޑ#''jժW^٭a>իWcvvv[nŧľN]EU?$/_SOh(KKK=zTPPkjϞ=wɉ'!D&==='M՟H6mڔs˗Ӓ%KtC```o B---{E׷JdeewUs>|}|WmB89JJJ=6lذ}{]AAxI55C9sfٲeZZZghUmm+uuulU$}^{ܛf*#0TPPvApN:ellvDeIDATpuMMM룂o_ƏڊaXllnmm-ڶmez;w' p'l܀dk{M|^&S1!AO 6e27oFEED[P&7 >>vN/_<==)99y| AIM<==0|Wo۾}{SSŋ֬Y#IN$1c&L7ngQK.EEDD". H$Rxx8š """: 111/Z&!1g}@t d$/ biDIF2 O13ӳNt oia߸e$0 55Qʭ22 #IIIƍG1tԩ(+..0EݻMM-NNV=;s C͔i&S"ȑuZZM}+H?rP=6ie1TСCN~<|Y))kD\,?wtzIzzѫW,VIZb=-1+D^?,ineO6BBLJnj駯I\2СCOHEsğ_{)+KKgp))mI,&ZTy.""1x=޺aooޟ!)<=gt?#DRWxjj*R))BБ#qt/NUU))e|YYKaf.33KS{ ._~8NqqtiiʬYDDki9B!wN"Y8guddqa{zVu2}ng7FNN@D~+܏DOY%+}㷱-8@J`dd6''Λ7@;8c~Z58PȖ~U `2Op8ZKLb'HE,))/&^O8BEE@⃏OK_8ठ '.^ꥪ*/33K;e6!Z#.{ͺu3D(8رAA XvaѢݗ_Z뛦l67OwuVI32͛wG=y]͆ 7n#{*+;CD&K=yspu#-l]]IqQQivP5Q`42Bb\.IEET21MϞNjLtb?}jHȺٳDCMMD2:lQj.\Xch$+x`1½{`ǿڽ;~F[oo;iibVvv >aaO&MH$8&ӗ/ZN5!:*(ڳ'cb6/"Z[٥uÆuR@irr&с]ss3~徉VlFDGԑ&B(? )!4))o nǿڹ3`ժg|~~l675@B>VZu~T'Ov~IqFFUDG!v-Ӭz%S&L +DG3ccH%ӤQ0@]2MNΛ2Ÿ8̒]b ,ڷoޣ##͒ږ`&vmB1Ѵ{wydR|?wʤ!cc-.+*&:j5g@t rS'\\&JJ;##M))R~~ȑ:Ddm}RFƻ]J=WQQ_Ĕ(=(Bܒi&ޭ;W$Oj|޶QBkH )!nɴB욥l6ҥ'Ǐߑ9ujfMtDclm9Q0W2K֮(>YL^^Ǵ￟P:Q0Q2n0v}*/p-ы'iVV3,~dY27'4gE._^kg7舄MjDddJӚgǔ}?+"zÆS|Heׯ TXXwfyh*"5tZ~~%с (fgW̙cNH?+r@%rXaa`lKcjj6nR;~Y~`32LN#: $$:H4?j߷o.!fXX2Q %U"E_}/MMcc7N$]&ɪT$:$$*uu9/u?*$X~~$SC\i^^]SS ,ڻwk::2!bK|iP>t鉅뛬 .B"Fχ^MI3f d"p{Y3CJJ"##Mx~d.+c 4N/޵+wnnUU%3|02Ҽ{7(lbL߿gpСj,h:qKLd[XchYPPp8C,ii)!'<}V"џccVviiݰag,DCLi E ]$'[1mǎyioWA2:]]~+*>>΁pLK**r>}'- ~; ?4>+"2FFt!.ɴL>.*/6o`ccx: ~!ayqy9Wt){0ٳ?{TTecǪ-YbiiTGGgƌZcg/X񥩩;w~Ft dmm=bGɔJlT22#ZZ,Bikk ˖-zj!D0Q[XXQPl6;<<,VU؇ph4WMĸ\6!Fpgbq7$$SH L@>91bGUGo466?^QQü[=$kBhܹ$)77sE'J.n7?"X\\_ZϞ=++++))x"ɜ0aT__?qԣGx/44ޞw_˗A /=!E~~>c!UdK2׷522:u~ASS#G\dIJJJaaŋ"##yEݸqc̙_ ޞւGREH^3%H^^^qqqhHHȞ={>=///hkTTKW߻wDUU5 Fiii;+%Bn<7nׯC9fݻwذaq[[o[[m;e۟3UVihhl۶bjffvرd e0!CSRSSUTT0 VUUuXӧo޼1 c0rrr՝g?>ɌFUWW ̙lbbo>{|;<<úFCBnxxx\\[[?~ܜNgffN?'ѣ)ӧOI||ŋ)c7x#!Gj8vkvvv[nŧ‡544x.99ޛmM&Ѽ<}}}|oa{]EUҗdZUUU^^^ZZ#''Ӟ={*++mmm޽;yd}}}^!D&==='Mվs}7mڔs˗w3Qo o!r׬Y_ݼy!bŊ]veeeeeemܸ>,YWTTD|mCCCکTOAAAVV{WہJ%b/Éao :ݽ [n377?x`SSoY퓐 0;]<7LΝ;7|p oof{A5Sn7{_~?~|kk+a,k۶mzzz˖-Kc2WVUUUWW_n]cc#m6}tP+VPWWݲe PH)3%HK._~/أWWO]/|sEDD(qӷm+J/@< L<=={3!2PLz3!2PL@lA2d ) ՕhDB XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp.html0000644001725400016040000001163513273140101017456 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMEntityReference.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMEntityReference.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMEntityReference
     DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__dep__incl.md50000644001725400016040000000004013273140077021701 0000000000000068fdaed6243a07201c1154fe41719a3cXQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp__incl.png0000644001725400016040000004335313273140101020603 00000000000000PNG  IHDR9h7bKGD IDATxw@SWF"*ⶸ QP~\UѢ։ TčU8P Ȇ}7%!Ix~;sr!s 0 5D/@@v `?޼y3&: 3.\pB1DJ={,>>~ܸqDd۷oBd'RmDd/Bt 6 d'.@@vى ə8qbZZѣG'OC1}͛7x[՚6n(HHz"iى qss;|p]]B>44tҥz78rHRRRbbaݻ[;Tqqٳ~Ϟ= ,5kVpp0N˿}Gf_l:J16www 'N N}uǏ/fgg Z4,GΝ{a&)Pd'29<<ҒƆ?{VSSkhhضmMllʕ+O:U]]}1Ѕ >}ԩS6ld29&&o߾~566S_|9j(qO8q/_>}/WXqԩ􈈈+W]8{YYYXXدg{;wnӦM˖-{i=zں`VÇG=qDmm-]WWףG MϫE⅗.]ڻw={>}M@wى0,??L&[>>>ӦM>}ҥKt֭[B k֬CYYYyZ2lllLPN>>> ,fyo~Uhhǎokllb{*766gϥ~ϰaÆijjrǍlٲwRB߾}?>G2L*cddhll\VV633C1cܿW^/^=cko,**횲^A|aҥhuyǎ;v9r$ɼ~Z|}"Ο?={4ohhh+hhhIR]]]eee""<{@< ĸqゃ-,,ﯫ+J0B*ޢwEDDL46l6;::7ī`T\&3gΉ'222tzfffTTgYW wȑ#Wxxɓ@w}'2֭[$J]~U[KUUuʕ=zXdĉ7lؐؿ_vM^>}jnn޵koݻwǏ::+\EE]TSc1&+[$+)(@. ;U@Ypffڢj͚ =ꮤDkש.;6ǣG0ŋO00sOV=Y۷ bi`2lXC-mld Ƀɾq#;66z,ܾ%qk/WlWg'g;vnA`aӥgl -ŻU 651UT퍸B3֞?,2aIIĉ>>G۴weKR\ܓ;xyX$NpL&ҥ ffdkkQ",%+_0,55%;;Cnbku@vڐU~?99SCpOQZ8N}}_tz=&Ox$yye'گ[À;pL&;/zd+deذ^ yɓ^ܿ |gDJJjOңw] tׯ ƌݰa!M 7or-p0IV4U#:Lhd'zl㨨GtzS7cvTUU]abґ~^De'\|/^|:'v5{WMVrrJ0_ʐ!={& &ΥK/T-=P|Lý2 ٳG臘xI3f G=`Zf˙aai98\pXq9s,y$;ySx+W^mrsP27uL_ Btkg~ΥK/-s^gN㟾B![Y@vM={,mmU71ap kݺ˗3w'%{$ŗtٲ1s ڼ55 ޑ_–NGGImv=MV=gХ ;.>.{Ș5kx{{#˗ 7uu115g'8 ;sQNllkYj#hiu /::j;?ا52a kbىܪmJN>S:t݈7c hD&|0RspEsIJOSv%{$ۂDƔ%$>GDٲ%).Νs;d'8y]G`Zdd'(+ <~rrFgឞ/:=+> N ىa0X7o9yދ7qw~yWIIRztri:e'nddH?NBI =6qT#:ɩ1cl !޿/8Ąے= ;!~ҥZZ* u׃/?`%=O.wu=pbcWXY,o3gf&&=gDPh23ef旗w|~ Lk,)8qh鿉BvW''KM|ι^^#vb(UE-Y!ʒ=YYfpPB?}-LT*0Oћ6MŇ,FɁ7 bcϟ<|Q&&ZI͜y(+]N&'ݳ^}6-E!FY|-3 dgo0h$(r]B6RZZ*[̄dH@N8#0tw<*yɓ^ܿ |'Cdt饿LODwT(LM  dŋ/MLdONNɸqS}OtRS.]oaX ijB' BL6MIvdc]{L%^%%QQF'nn#nj%:jjb\VVpB!9+uܿơCyoko!0Œ=Ϟݼd#H$iȪo9rhy!D"(, 0]SsodLRRҼy:o|yq8//>qhwd BpWk'ss|M4yѢa k5wwSL_ C$ys"Bg&M"T qUUU43Ӷֳб171766JHHXh!F"X,1Hz|F::}ynPRRsm?5A! |zf'zvv Fd29s$l01ڽ{~UUÕ+x/6HPd^SJ\\B\[C&Đ줠r£5Lfok&cر)5A}T d2D~ߏmCHlb`н{lP~ƖDGMWj&(hD Ö.EHlÂ;@WU￿͘j8? CgySR܂! :nB!O0piϞ@UTrg0 g=@F} 0777UU]_,77^I !dccbԩSI$Rnn$ԼzJv76VνN{*+TThꊪ **4CCmKKcu={txܯ_-N;xeHI,4b|پoEEő#Gv>n--J0@#--"+AEL2EXuuSEEceecEESEECEESYY}EES]]3TTj44`b @"2K.͙3(...??p:ϯ_8UUU'.줹ð}euFQPR QWCAC`sszY חZ&%z^/[!Lvyy]C ^o߾mnn&G IDAT: ܺu󅅅!333 I&?\|yرׯ_'.()){.&޼y9.-ݻwKJJ:PBB *++1 ;s挍M]]a #00POOOWW700` n߾mjjzm۶踻WUUG ð˗/_QQ?0d ܽlѢEikk#1 =RRRأG{raggw?B]]}˖-6bĈbVQQA"0 cXW\0jҥ>}Rp8 (++7*kkk̘1#""!ZsY 4߲G/_u?@v"H >IJ <<<.]7}}Oⅿ|5xM6_SNsΎ;훕=|STT +..Ruuu!!!wHB+((x{{566!TZZWŅN#-ZDO8*//Ν;OaXrr1 PRR0uĉ?~ׯߎ;x#yB8? o/L ê˹ TEx`׮]f2ۗu:;H8RyAky%줪aǎB;;bujj, z}wq_UYYI_UUpjkklvkϟ?N677f߻w5{ Fedd2uhiӦR(߄ .X[[FްaB xT9997o0,66vrQY6cX'aӦM۷oOjgyp+Vxʕ+?644$H$iɟ>wԤB(??Egܹu'O;d2YuuuL&SKKy>|4dȐ( B44h߿?k֬AݿݻӧOGl+++|wkkk#nx$ϟ7nϞ=pc`޷Zkd!ui30 2o޼ .߾}U`{d'Ĭȑ#&M cVUU_FFF?K^z{jllp8ϟ\l̙3+++~ ''ւظhѢ׿|رcב?02 }Fy]_[yyJ=x{=|Pmȑ#CCCBd2900!f^#CqSV!wӧOGEEqon۶B***6l@ܻwo==5k3 o~ vMMMyyy˗/YySQkCù:uƍeeex(1A}'3f̠IIIa٨qBHD`C /kknnnBH@z8x𠞞ޅ ^jddXtTA}'3C8q^3hs_0i&ax[+==gϞh7ЫWj ?ڔ)S>|kkk|  ;o߾-ڄ r6ag ͍f?/݄#aðkkkx  N^'#dh8BǏhooD-08AJ0}nRB5WAAw] CkN3C Wk^lr9C\\\ZZڝ;w h``Fz_!!Ľ~ڙ?zRho߾{$ o$9O6a Q[s'&pZL`!Ј all,^xLEEEk֬ qttܾ}oEE]ٳgvN4蟞-Ї:GB D"` :uٖHPC7lp֭ |$ oDl("цs*<99۷o7nضm[kC#"pfooozOZ!b0 uppXlB( @__۶mɓo޼Ç^z-Yǧc/++oi<Bk׮}yPPmoS)\?M߿O`<x.E?4{fZYYihh899%''b"f2GVUUvX6 O#ZDi+LfjudX!!!***#GĻCbm5pn 3C0;wZZZ9~KŦ%g3=DEE)**>32XWWЯ_?%%%++yرj7naG 777YzucccmSv^!s'!'''g9N*_EɐHB'1+DRB;#C5ܜg}Z kkk3f̈)))ѣ޽{{iiix!i1@===]]@Ro655}A=jeeg쟏ҥKWnjjX(VN^'b~j2++˗ O<ٺuU" D/5jT]]~sΝ;{;J@ khh/ZI[#ab1zڇΙ3[.dY"sIJsΘ1c:;d'b0X&'ӱX//\AWNs';6zu\ff~l &!*|Wa_THa7OM}`**)Ѣ}/+)K2ZppO1J§VSS:sƗFUW7H 7OH;tu${BS%>ޯD}$ƕ 覢8psg"0 CC̈́U^^,#.\xeKRPtwYX=뗝]bqxvRSYjDc>}bcWHrz DC RTUf@t8 D7-Y`~DCMMLUUqG `@r29ycnzwDY0fa2>>?~,G&r5ԻwEDYw@ٜUb:~/>,vMM%KN|TLp:N 6n<6:R~JJh}}ŋJJDq)??ys+cRjjJgh NȆo8vID"zTovu=Q_Lt8 d0*с7]0{ ! + "Yr â( ; ]RR^seV%II[$Mwwdٳ~م~~,!fs~)>((q׮dk ]&O}LS5)R~~ヂfy"شi?֭7l6D"=zdaCtty4ok Lknf9;۷oA7Y|XynbKAhQv%:VRĉ4*  I}75A13g&bҢ֭7,[fsLaw'00UVV;k֡ϟ˹ d= iBipLҥ/g*(>=ӧ2X^,vDZEz@v@*5)LFQ(g϶jڿ@ ySH$ֱcm9s &bgbsjc{#h4 ÉzDt\-A MMM : ٳe唔7*gR <éYYw^,PUU{w'g% ;wQk>"&OѺK^#HcǎA޾}ݳK<)Z? ;P azzzD"cƍGt(--}]珃'nq՝CR ;tHN勗WSp_IRϟ?-ONNVPPΖ s$eeeB0MUUU#RY{ @ d'}]tiΜ9_kjjnܸ f͚jPMMͪUo޿Ǐ~zi:>x`<2XF~µvtNu֔)S;Ǘξ}e lӦM6l貨[500066?~ŋ{ƍ!33[NDƭ @vsecc㪪*ٳgmmmBL&szzzׯg2xiff}v333]]]n^%%^z X,UTTz]}=bj?;BHAA!***22r޽Oh)ƪ#H~~~W^m8nݲڲIDATڻw/5{f͚f^_Sަ`!!!jjjFz)-.8+++]]ݕ+W644Eu@L޽[RR"|K~M__ӧx᯿:/_dee |x```k{)**GDDPԺGFF` /n;צMB]Z5 B999g|vL^3f$Pyy9~)S|ɓ';vX(J()){mD!q֔)J wwÙ={6BqssoV k+;ixIkJKK0fðkkkPN֔)lmmGGG Nxiii\-ցH+޾}rJnϟ ''O^nggϷK3wҺ{'OLLLƎ2,p:&"99۷o7nضmpDk~7| `0]xtN{yyiiiikkX@### */ 쒓`0MXpp~S0&9zhUUUﱃGEE)**ܒgϞĮP 9&Dž5~psssիW766 ,r%`}TSޏbX[[9djx ==f@$L[ڔfooGt شX(\iiwƍxu@@v( ;AOO/,,LBa@@v d'.@PDzݻwȆίG=HZZZEvb@ljjj QɃp82 ;tN ] ;tHTtjZA)IENDB`XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp__dep__incl.map0000644001725400016040000000030113273140101021545 00000000000000 XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__incl.md50000644001725400016040000000004013273140077017215 00000000000000cbb58b97d6f3c3495744554cc2c1fa10XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__dep__incl.md50000644001725400016040000000004013273140077021343 0000000000000024832772ebe056763ded15f1541625ddXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSException-members.html0000644001725400016040000003050713273140100022312 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSException Member List

    This is the complete list of members for xercesc::DOMLSException, including all inherited members.

    codexercesc::DOMException
    DOMException()xercesc::DOMException
    DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
    DOMException(const DOMException &other)xercesc::DOMException
    DOMLSException()xercesc::DOMLSException
    DOMLSException(short code, short messageCode, MemoryManager *const memoryManager)xercesc::DOMLSException
    DOMLSException(const DOMLSException &other)xercesc::DOMLSException
    DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
    ExceptionCode enum namexercesc::DOMException
    fMemoryManagerxercesc::DOMExceptionprotected
    getMessage() const xercesc::DOMExceptioninline
    HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
    INDEX_SIZE_ERR enum valuexercesc::DOMException
    INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
    INVALID_ACCESS_ERR enum valuexercesc::DOMException
    INVALID_CHARACTER_ERR enum valuexercesc::DOMException
    INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
    INVALID_STATE_ERR enum valuexercesc::DOMException
    LSExceptionCode enum namexercesc::DOMLSException
    msgxercesc::DOMException
    NAMESPACE_ERR enum valuexercesc::DOMException
    NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
    NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
    NOT_FOUND_ERR enum valuexercesc::DOMException
    NOT_SUPPORTED_ERR enum valuexercesc::DOMException
    PARSE_ERR enum valuexercesc::DOMLSException
    SERIALIZE_ERR enum valuexercesc::DOMLSException
    SYNTAX_ERR enum valuexercesc::DOMException
    TYPE_MISMATCH_ERR enum valuexercesc::DOMException
    VALIDATION_ERR enum valuexercesc::DOMException
    WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
    ~DOMException()xercesc::DOMExceptionvirtual
    ~DOMLSException()xercesc::DOMLSExceptionvirtual
    XQilla-2.3.4/docs/dom3-api/files.html0000644001725400016040000005407713273140100014174 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    File List
    XQilla-2.3.4/docs/dom3-api/inherit_graph_38.png0000644001725400016040000000276013273140101016040 00000000000000PNG  IHDRs%A[bKGDIDAThoH?XmQ1L͞=)@H!DB "A0Ĩ5}0{LEin8+06ݷ9͟zt}{w C [?\(ʅ\fl"EV#GwJkfzω'xĄSZPTT?"ðNe YP Y؍8v \.`aq<vvjsΩjIFSZZ*W0PhttT(HgB( I7n>|(b=CQpeFsΝY B:G9၁~Jt8ÑAΚLBŲմRmcǎ|oH666Չ›Ù3g^^yufffiiؘ$EHa... f`| | !H<ϯ5+޽-jH劏y^hfffgWVVք: Z,ZR322^'N Õ+Wb  , Vh}v[[VȰey***n޼'i21 ;{ 0i4t:cQж wR$ɏ?=*j`` ¹w^bbCzzz.^QRR'|I͎G, ^dV'%%544"Vh$"''n :h4  +U@"YV:e@.gBqV.gBqV.gBqV.*{ڵkqqyo0BYgBqV.gBqV.~ai&"}IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeIterator.html0000644001725400016040000006430413273140100021066 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeIterator Class Referenceabstract

    DOMNodeIterators are used to step through a set of nodes, e.g. More...

    #include <DOMNodeIterator.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMNodeIterator ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual DOMNodegetRoot ()=0
     The root node of the DOMNodeIterator, as specified when it was created. More...
     
    virtual DOMNodeFilter::ShowType getWhatToShow ()=0
     Return which node types are presented via the iterator. More...
     
    virtual DOMNodeFiltergetFilter ()=0
     The DOMNodeFilter used to screen nodes. More...
     
    virtual bool getExpandEntityReferences ()=0
     Return the expandEntityReferences flag. More...
     
    virtual DOMNodenextNode ()=0
     Returns the next node in the set and advances the position of the DOMNodeIterator in the set. More...
     
    virtual DOMNodepreviousNode ()=0
     Returns the previous node in the set and moves the position of the DOMNodeIterator backwards in the set. More...
     
    virtual void detach ()=0
     Detaches the DOMNodeIterator from the set which it iterated over, releasing any computational resources and placing the DOMNodeIterator in the INVALID state. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this NodeIterator is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNodeIterator ()
     
     DOMNodeIterator (const DOMNodeIterator &)
     

    Detailed Description

    DOMNodeIterators are used to step through a set of nodes, e.g.

    the set of nodes in a DOMNodeList, the document subtree governed by a particular DOMNode, the results of a query, or any other set of nodes. The set of nodes to be iterated is determined by the implementation of the DOMNodeIterator. DOM Level 2 specifies a single DOMNodeIterator implementation for document-order traversal of a document subtree. Instances of these DOMNodeIterators are created by calling DOMDocumentTraversal.createNodeIterator().

    See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

    Since
    DOM Level 2

    Constructor & Destructor Documentation

    xercesc::DOMNodeIterator::DOMNodeIterator ( )
    inlineprotected
    xercesc::DOMNodeIterator::DOMNodeIterator ( const DOMNodeIterator )
    inlineprotected
    virtual xercesc::DOMNodeIterator::~DOMNodeIterator ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMNodeIterator::detach ( )
    pure virtual

    Detaches the DOMNodeIterator from the set which it iterated over, releasing any computational resources and placing the DOMNodeIterator in the INVALID state.

    After detach has been invoked, calls to nextNode or previousNode will raise the exception INVALID_STATE_ERR.

    Since
    DOM Level 2
    virtual bool xercesc::DOMNodeIterator::getExpandEntityReferences ( )
    pure virtual

    Return the expandEntityReferences flag.

    The value of this flag determines whether the children of entity reference nodes are visible to the DOMNodeIterator. If false, these children and their descendants will be rejected. Note that this rejection takes precedence over whatToShow and the filter. Also note that this is currently the only situation where DOMNodeIterators may reject a complete subtree rather than skipping individual nodes.

    To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the DOMNodeIterator. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

    Since
    DOM Level 2
    virtual DOMNodeFilter* xercesc::DOMNodeIterator::getFilter ( )
    pure virtual

    The DOMNodeFilter used to screen nodes.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNodeIterator::getRoot ( )
    pure virtual

    The root node of the DOMNodeIterator, as specified when it was created.

    Since
    DOM Level 2
    virtual DOMNodeFilter::ShowType xercesc::DOMNodeIterator::getWhatToShow ( )
    pure virtual

    Return which node types are presented via the iterator.

    This attribute determines which node types are presented via the DOMNodeIterator. The available set of constants is defined in the DOMNodeFilter interface. Nodes not accepted by whatToShow will be skipped, but their children may still be considered. Note that this skip takes precedence over the filter, if any.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNodeIterator::nextNode ( )
    pure virtual

    Returns the next node in the set and advances the position of the DOMNodeIterator in the set.

    After a DOMNodeIterator is created, the first call to nextNode() returns the first node in the set.

    Returns
    The next DOMNode in the set being iterated over, or null if there are no more members in that set.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if this method is called after the detach method was invoked.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNodeIterator::previousNode ( )
    pure virtual

    Returns the previous node in the set and moves the position of the DOMNodeIterator backwards in the set.

    Returns
    The previous DOMNode in the set being iterated over, or null if there are no more members in that set.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if this method is called after the detach method was invoked.
    Since
    DOM Level 2
    virtual void xercesc::DOMNodeIterator::release ( )
    pure virtual

    Called to indicate that this NodeIterator is no longer in use and that the implementation may relinquish any resources associated with it.

    (release() will call detach() where appropriate)

    Access to a released object will lead to unexpected result.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_9.png0000644001725400016040000000573613273140101015764 00000000000000PNG  IHDR%> bKGD IDATx{PSG7+I mJG ` mڧE@ul~#X,eZPR Lk`"04!6͋ˇ7cwssvK# O @ /52L&Qb BPHR, ՆuL&kkkE/_Pm0 ׿k͊I999Tp`=sv @ /5@yi6V0 b8999((Gyf3)`eLׇ+wh4Y+zH$ZlY@@@BBD"!3ow[fǪyB?'ZmJJFt:?YUU/fddOzT+WjK(h`0V پ}w֭]]]_~bhsW]uzČ(wA<BHTYպaÆ D>l&+cǎa'|rǎ?<33inQ*=/DӷiWً/N3~k1LfQotӧOΕ׀;xr{jӱܹs111j!tԩ˗ X,œx wƶJ$%KsB;88(SRR~mӧz gwޝFy zY~N͎(ʇz!P(5#qiq%` }јSWW511q W5###}||VXR? Ayyy\.wʕ!O=ztJKtz|d2\^fMsUVꦬpWW0vaO,Kzz={ƢΝ;˷mۖUIMM}7mD [nͮF3gFGG=o4]"imm}gX,FG{IPu֍6S:KKK#u:r=T*;::***lűP HVi4ZSS`(--EuuuV*//oƍ===|>QI(,,\|yccc˗׬YSTT~P6c]6v'''L& Ξ=d2j/bhhhxx-[ mE"QtttpppnnZRx???.FՖfoܸa ^_RR{lmmE}'vw;ફ.]`0nj4pl=\~< 8f:a[֪><?^oX:}AZz{9R"(( 4tvt7C/^+Pm$s/(4>HZ@!i&(k׊D"t.^30˗$-@6mb:`tִRCJ I (5$-԰c >\maah"CCCIaMMٳgsssmmm:}t6M׵ bXW^lmm-}p---GGoeNG"::Z{ǧ >|R,gee/XzzzEZYY:u }VTTT<{CΝNrt . yyy@r0= ~ :w `cc3tcǎݾ}ޡ_~111C=xwunlllccp8iԐX,r !PiHZ/ccc闑3gΤUhmڴ>}zdd$?(~6Ll.Çwuuuss;<]8|~m֬Y_~ŋ !E]~}Ǐ_bÇ9`BرcSL2eʱcDŽBa=iӦUTTBf̘QSS#Μ99y;vxw`` ˗sss?o߾'O9sFE B/00400pݺumڴ|cǎdeek׮رc=:#G!W\رcv튏p󒮢(S I X,X,544>3zÇ{ꥯ/_=nܸqM6ݻt֩SLLL !['O3f !冇/\3g۷-[fnn޹sg__߸8%K>yҤINNN[n͝;sΝ:uZzu=?Elllu_Kƚd{-]Ҳss̑)s^ҵEцDJ ^vv!DOO8%%_~;tE?߳gϼy o#F=}ݻMM{VWW;::JW155w_tInǎ鍼<777Id֙Ezzz&L_GvvvvvvYmaaa&!b@BdO(E6$PihbA/Gy9ɸ !…  ի?2d#kkk `jkk7o<}oSbiii􆁁Apppttttt7Z(((zj~${)))IYModeemHCC#77~C*uKH5ڐH@I iheee%%%EEEϞ=۰aCnn֬YJKKWX}EN4IR!nݺI?.]]ݪ*z@  |>^4RUU%ɓ?c.ӳgWC=qD~~~jjU]&}:!E޽{ԩ6l|Crss;D9RQܺu(E-aM`ɒ%􆹹?,?9sرc999#FpwwK ><""bʔ)7dffrutt-Zuֶm~W#FXjիW֚<|gʜDttkʼ455/_^zy{{ 4HrG.**"9rʕ555#Ffٽzrss_[lÇ.\p oooEw޽{*nd0Œhd\tS Csss{{{tĉmq|fff.]jA0= @n۶-99իWO?~}Ѵe@q[ i$]]?6|=C.HZVL̛+.={O e ?N[Bq1or@&^Y$$;deUS#ط?G?ev7=#@ͅRWsqL I jKJ[?\9fѢ/44T5?p=$$v;2(#$-Muf_ۛ3Q#ļY2T(1fLO@%ee,_~!>>mWᰙp5[^~8qbݻ G3($-',,~ݺpkkC{a:&! >  URPPjΜ6Ld:&Voz#$${ƍ@eܸfv<5h=47֮ק:00 I r׭rރ6mEE5kn~=h::ZLGA좣߬Xqjϑ#3N5x:.@=(/1&=vr74l*(XRd˯۶Ő @@Iǧ-[vǫٵc^Lð7V ?xЫwo[t Vm)S~7 @B8wLj;;/q۶|`@<}lYHAw/}|3r(*$$v˖;0$-B(?{neetDJ*+dŊ _j,f:"h^HZ?$'\9fѢ/44XLG!͛ٙ:ULGkZ&S'O1f>--o,^<{X,QQ ڎw`߾;"`I~{F~h6G0b1u|M׺u6 #-==ztgfdLׅ s yreP(ڽc̘?LE-YR\Sg2/]k +.Ի z  I @}N4 :͙3t`&fk̚5{w+bdGQD$ϝ{FH9f,,KSSC kϺϝll Wi$EE<X, &{ڴOlx/؝] E_|g]{bI5Sv~I11oJJ*l :{ 1eJ_h]+V8p(TO۶Nc’4>?ϡ(!A},MM{ :#Vt슗/  _.43ݵk83̷d:hvك ZbӁ"|H[[rᑛǩ100C=Ș1"|Q۶#R[YYY*B*tݝ(@뛙1CeRCJ I (5$-Ԑtq̙;TVVk׮۷o 2;v,JII9x۶m?ӄ;fm I: Pff9s޻O> GDDhii=4WPm];4}|w~~~oٴiS^+Yw @ i133k߾ï^ڹsgS)lbffڥKSť9saȑ~a}wNJJr3fjH,ۦ;wl޽;zho5T_~)جYrժU+Yw @ iX,… oݺE ޸q#'-//]$<|ihiiIMx>}XZZJ.Y,VHHHn݌wM(رcݻw/n޼IO~uii)!… ]t 6m5339suLڵ_mmA!tR$=l٦666555rϫw:88رCrLFs-Ln?]ekkr gg6mt9((s,**m۶#VIHBΞ={;v9sٳ4AwWuPѯL|E@P߻!$99Y$>>А(ҳP_eaaA}M>}JQTYYNQQ䘄w}7s̡rΝM_UMVZZz BHqq'ܹSXX@w料طo5kȴ(A8sYfYXX>>ې_A$-g}W&s}E\ %''B ۷o_~_ tww (JɕYeeܹsr--$WW~={V!D2۷={۽{wz#==ҒҨQdZ ,XE%vnݦLR%;;99egg|HDw !AyE񯟧F S3QܥNNNC>##XaÆݿ_CCCnu'd£d2V w˗#""dWMg}W&C=B|E=ztKoo-[HYDܵkdȐ!gdd;5BtttfϞK# ɓ'GS˗_7LMM%Iiiilllu#G\.JOOmV?!B諷,,,lvjj*۷rϫ.6ڐHR.Sb8,,d޼y'N,))[Ν;RB}w5,dٳ>۴id?Ewh}W&C=B{2eJZZڊ+6nXPP0bĈ;w$''_zuDgnnn 077!}} GZZZ՛6m"TTTȭxUVݽ{^@_9M:uڵҧ#"Νt .o7n ̘1cݺu%KdddGPte˖w>>>t!}:/--ŋׯV!'O,//5*PgKi X,ѣù\.p8:::rGDDL4>!!ܹs\.СCM||)uvv7o!dʕK.޿_wR~wvۇ~e\@i4|MDe-x+WSGGG[nԥC )'%766СÑ#Ge"fffEq9s,XR姟~rqqE]zҲ˫n?| IDATmRRR>bF #&&{*jܯ =z|P-P{*#11ɓ'UUU6l믙 @WIjժUUUU'O.,,ܹܹs}}}[8}}}%iH@5W(47LSj3= >0 @!iPj{XÏ_{ -;;(@p\}}}E3966<a DZ].Z.%'ӁÚPjHZ@!iPjHZ@!iPjHZ@!iPjHZ@!iPjHZ@!iPjHZ@!iPjHZ@!iPjHZ@!iPj,Y97\ѻ ~q㤖#-lmMX,EolmM[2h4$-M kaɄ .-4P[&hhCv15k206+-%)7O I i>{ ڋx:=t=uu >Pgmjpؒrs`H𡐴2@ lVkp';k`IzL%ÞzŋB.\}QmSNe: hu0ҢD"KZ/% Z#PjHZ@!i撙9g”$eIر̙3 pqqi׮]o.YGben7vX"sp >$6@svɓ<>s ۷oYYVEE'|k׮{ڵ!!!FDϞ=?n>&?Zjj)mhhzfj@E!irѣG7aڷoomm=|Wv[[l133ruuҥԩSϜ9C0rHM^~}ذa BΝ;!E}\~ںr….]TVVBA@@y@@@ EEElڴl̙!7npvvnӦMΝ!BPn"]]ݶmۊD={tҥ]v~GfϞmjjjcc_SSCaXO֭Ν;:ud``a=}p[n/7nf%;/Hf]|yڴidE#""vjnnW[[;h BIOSE!!!ݺu366޽{ ޽`ddc1e[`͜9s֬Yyyy= w料طo5k$''BƎ{޽͛7#11WTikk;v,77ԩS<oϞ=r>}:((_r%''֭[VVV{Ĉo߾MLLٳ͛)"xyyqܓ'OB<<<\ !EEE҇wNNN>xCCC褢P/ 7oڷoSttt$$$$$TNV z~III7o *ۊhڴi'N ˜#!d„ \.7<fx.r劃EQ'OPe\BrXQIÇMMM%u/^vZG%}z2>yBCC&-tQttLH#PEINNQB^HZ)V ,XEI ---_5*--.wrr"ddd8::%ݺu2eZFFFѱ666Æ <O Bz- ٙ/Blz]v#-sXco>!!Af~I^Q%wn|@n'7rNNNQOѣUnAC_n6$!iQ+YYY9rʕ+%X굲JOOKmۦVuuX, +))7oĉKJJVs玫+]رcGt|baafSSS·oZ[[[EQG?~<{˖-{B*++w%}!CTTT矑 YNnx(!$))N0ꪧd4Yn qHZԇX,;wҥK/\oݸq.:uڵk322]]]k͘1cݺu/^xŒ%K222bXGr|>ȭ1i$8 . ˻sƍ !/--ŋׯ~ JVXXݻ}ʔ)iii+VڸqcAA#ܹ|ՁZ[[KAl777__4G\Nnx˖-KII|||B'uɓ'=-P:-4 >NCִO...|>WZZZ?\9sLLL,XPYY)˫.[P{{{---''|q$Q ={888<m(dƌ&&&˗/LEfիW҇C;x+WSGGG[n9xLL !$00P\яEn'7?y򤝝ҥK!C/oxo5-2- F¢\R \t@ࣤ8::Nnb_EaԐ}}}___ehHT0= PjHZ@!iPjL f/^bDijjhpܖoZCᘪ55i[>1jHOOg: e]yΝک[/,r%v4Xhl6{ܸqmڴa:hu KL:ޭ/|XWٿrs>gk/T<jI ǏӼ߿өSs$SDcc]w>>L @!iQ?pl--3ixhZHZ@<|v_|aM0T~3o1cz ܳ/ I ~{5]~+6[2 4P7o>[8c] |($-_dIW_ ڱcHzzѣG"H(/z >>%>LHC? _?X@M?d! `PTUU~?yтq=XcVt, aaaaaaLG/^i-X,BQX,ڵԴ#6cǎ;2Rx 4ѣ?p}q˖b:h<@ӳgPYb` b1*X"aL]xqʔ)HZ)HZAot,a|%Նk,$-~tƲu9s2 :HZ=v}P}ӧd:hBEmq<<3RHZ@>6l/< @紀E[YXeffΙ3罻Ы%2YR &LVwzP㣧3b_Bڇ@m iY"x !!?<{8gÁVڵk'OVjj)mhhz?x 777''>>>m]W^54>PCN 0H~5ܹÆue:h޽聘b655ݹsgڷoODQ](~o:EQ .2uO>Dz.5w`BHAA&h#FxmbbbϞ=7o,!<rO?&&Az--$WW~={D"{{{CvvtڵkGp82rϥEۇuw"ȼ%g'''Ir ֮?sWr A eee>|xȑ+WJ.KKKcccr**==.IHHضmZb8,,d޼y'N,))[Ν;ҁKP޽{א[~O<9rH;[XXT۷omw%~fj>#C+$:QTj\nѤK.X,;wҥK/\oݸq.:uڵk322]]]k͘1cݺu/^xŒ%K222bXGr|>ȭ1i$8sqCI7MKzC|--M6B***5p<==^x~zooE={ҥKo޼3sLmmmNMnBNh}sRW``Ծ}7߷ٹC3YqgM @Կo_;=c%LW;:J4g]g0$zݷoRMcV;) ˼{W**\`jI;>vժK _~"ӱrzٹ2{0#) '}wSxYdZp !?? kׯG9X)I7njBTZOi}eۂZp鿩߾@y iQEmt̙?6Áz.ת6%es;,;T$XX[Xٙt^IT֯ȑǻ04R~>711Kz vjC##Ck'*ϵlr qra?rHZTXL?>~|k/Á }줤ײ9ȝc iQj"k?R52C-3-3WRiz-J'=]Mi]4S>SLLS^o >y:0;8sf`>^{d23dӡe zypnNQ믥2j`[JQ.zG>*.k [5a {qb,UXXX3wWAZA&ѣ#`:> o6Ks @wO^_/{^W! Spp<?H۝ ޷o+L1u2,Sx0B!x<;GڵVhг{B"c#DnZ}Ih'y))#y3Z;ag{&LkgL/3dbV mm]/P^Ez?tիYIn `pZ, xʔ-7oܸnV;mKRRhJ\]MRDRE#61c /]YDNqG;u {lCWO֭s_x!JZ?~w6GEnܻEE5j ^8B'n8;$&,Tj_cVZ*T!#e|'tV) rYFPRb1i x-YҥYgg7kSR/"ה!vH 2Vᨭm8qs[[ݯ&<=ݒy$"z(◜vwsrʮ^- FK.a<Ǣx^8\.C~)cq HMlV#1wݦ?=f<߻Cե6K.ӦOO%@bL򿅅b+'͚5: Վ_ۧ# ?IRifG~~a__cƌxȡCeTVdgKinnRvsj4Zњ5O\9/nۖV3Qp8Dd`ֹ#G[.^P*5.̟|rđ WsZZ[[))8sfȑA|5"tBh)\!1"˓nt- _la11B&"11ǧK4][onq&7<-xxx3MI$(R1@7N5`h!TZZzjѻfyqӧ;|mj> P*㸸8šgbcA~~u]]k]EA>ø\j RcJeQ*|>_,)<3vW a***P]wv Z[[- Mbܹ@Us81@'E" ځBJMGk& !D"D&M\>/B&`q |rQ55jYM !7 Y__o<<<@xl#`}: ΍XV*!ϯH40,L DbHNcY56vq8VG!=48)),114>^dm77nxxz; 1˕Z1"tФPH8-@yŤUfD5` `*c<bFjkk>| 0bUTTSd2ٕ+WsmPߤjkk/_钓{d ( qgtۻNkbi-=ANŋL'NDظq~@@ѵk^5 0a©S"""mf`B y!ޤIrΜ93~nm#D'g9SXJugϞ_~E.o ( qgtۻNkbi-=Ac̙3!!!2 !t莎ZNMM  55UVsj.] Zn]hhh``… iZ>>>3""!FX^^^;?"'v!ww}mذaiiinnnƌBī?k~^fyŨ(__ 6P1tP@b RXh,3gǩ9'N̞=ۂh|xذa~~~6mb4jBՃ"Ξ=ԯ_`1ox.Yk3{j7o0`رc1}!^w#BJ(,,,,,4}9َ !t֭ׯc[ZZH P9da^^^@c'hlT5w L8Ν; ={L&۳gBr?KRǘ+!)]{nԨQc\dɒC!1Z6ft)֭[ɓ'kkkAP'eB?ӤZW$ 7OZh t={BBB~dž̨(J= nKDnmcc(Z5|vid"(>>_LLL]];33311O"`zI7nܠ~jnnvss۲eL&tmmmZXYf577ꏪNf̘rc%ڤkZI1ǎb,&j#/믿;`:4ydL!13UT\.'O$"o/*ʘ, NS .'77ǓWPT޼y]^|.NMlZF贴4jnM=MZiqJMbo=m<Ç9B)Amie(KwZior<==}||HT*ׂv ka^:{?Ν3Vg!ӯ\qq9W'9x𠏏˗===O>mSL=rȑ#MN IDAT&Pqq1/BA{zz2FN v1++++**J͜9sؼhЌޙVUUяH$Bo6a${BӂQ&t1nܸDrOJzjvA/1//<ׯ$4ie;&Un/`S//|ټ{_UU_N4iժUTa@@u d2ٵkrrߠA***ȒO?X-Bӛ׿>͌ǩS #XԘszkkkWXy{lݺu˖-cwjaꫧzt$fɸQ#) Pqq1Xj#7n\[[իW333yb&hC(rܲ2w !s8p@^j Bϧܹ'cZp8EEEzM&jҚ7O=Linn :s YbŊٳg{=7ޠ֭/(((((;v/lB""zLs!4i͙$K7O3gZ No..\xҥCfG~5qp höoߞ@:u*88\'/^+tttϰ+%%eРA>>>͓dda-c"##cbb222T'|nAVǍ W=--ÃZf1p8'N`hb t&4|Ao x7 ci1XiqAQ.++ !cOBqFy0)Ƹ_~)P5*6|7nx p&JKK 2@=j`^ȃN{aIVVVll@ =p,IKi 4(={V,'$$֯_O\iI>>$=#Hsss;;;],]FU l_l9@byP{4 իWwvvΜ9!""bɒ%= hUXX8< 7`y`+`y(0 pZkia02 E.|K5*wJ[McY&9-|>J3 B X0@ w wHRxxxDz ᳛ Ĵ`׀]N v 8-5U)OrIENDB`XQilla-2.3.4/docs/dom3-api/functions_0x62.html0000644001725400016040000001060013273140100015641 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - b -

    XQilla-2.3.4/docs/dom3-api/dir_7491f501d2a916fed33ee116b073f624_dep.map0000644001725400016040000000045613273140101020576 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.md50000644001725400016040000000004013273140077017507 00000000000000f99ed385dde9b6629908e2fb36bb5c9bXQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp_source.html0000644001725400016040000005573513273140077020213 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathResult.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathResult.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHRESULT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHRESULT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class DOMXPathNSResolver;
    30 class DOMXPathExpression;
    31 class DOMTypeInfo;
    32 class DOMNode;
    33 
    46 class CDOM_EXPORT DOMXPathResult
    47 {
    48 
    49 protected:
    50  // -----------------------------------------------------------------------
    51  // Hidden constructors
    52  // -----------------------------------------------------------------------
    57 
    58 private:
    59  // -----------------------------------------------------------------------
    60  // Unimplemented constructors and operators
    61  // -----------------------------------------------------------------------
    65  DOMXPathResult& operator = (const DOMXPathResult&);
    67 
    68 public:
    69  // -----------------------------------------------------------------------
    70  // All constructors are hidden, just the destructor is available
    71  // -----------------------------------------------------------------------
    78  virtual ~DOMXPathResult() {};
    80 
    81  // -----------------------------------------------------------------------
    82  // Class Types
    83  // -----------------------------------------------------------------------
    163  enum ResultType {
    164  /* XPath 1.0 */
    165  ANY_TYPE = 0,
    166  NUMBER_TYPE = 1,
    167  STRING_TYPE = 2,
    168  BOOLEAN_TYPE = 3,
    169  UNORDERED_NODE_ITERATOR_TYPE = 4,
    170  ORDERED_NODE_ITERATOR_TYPE = 5,
    171  UNORDERED_NODE_SNAPSHOT_TYPE = 6,
    172  ORDERED_NODE_SNAPSHOT_TYPE = 7,
    173  ANY_UNORDERED_NODE_TYPE = 8,
    174  FIRST_ORDERED_NODE_TYPE = 9,
    175  /* XPath 2.0 */
    176  FIRST_RESULT_TYPE = 100,
    177  ITERATOR_RESULT_TYPE = 101,
    178  SNAPSHOT_RESULT_TYPE = 102
    179  };
    181 
    182 
    183  // -----------------------------------------------------------------------
    184  // Virtual DOMXPathResult interface
    185  // -----------------------------------------------------------------------
    188 
    194  virtual ResultType getResultType() const = 0;
    195 
    201  virtual const DOMTypeInfo *getTypeInfo() const = 0;
    202 
    210  virtual bool isNode() const = 0;
    211 
    222  virtual bool getBooleanValue() const = 0;
    223 
    234  virtual int getIntegerValue() const = 0;
    235 
    249  virtual double getNumberValue() const = 0;
    250 
    261  virtual const XMLCh* getStringValue() const = 0;
    262 
    277  virtual DOMNode* getNodeValue() const = 0;
    278 
    291  virtual bool iterateNext() = 0;
    292 
    304  virtual bool getInvalidIteratorState() const = 0;
    305 
    319  virtual bool snapshotItem(XMLSize_t index) = 0;
    320 
    330  virtual XMLSize_t getSnapshotLength() const = 0;
    331 
    333 
    334  // -----------------------------------------------------------------------
    335  // Non-standard Extension
    336  // -----------------------------------------------------------------------
    345  virtual void release() = 0;
    347 };
    348 
    349 XERCES_CPP_NAMESPACE_END
    350 
    351 #endif
    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the sche...
    Definition: DOMTypeInfo.hpp:35
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node.
    Definition: DOMXPathResult.hpp:46
    ResultType
    Definition: DOMXPathResult.hpp:163
    virtual ~DOMXPathResult()
    Destructor.
    Definition: DOMXPathResult.hpp:78
    DOMXPathResult()
    Definition: DOMXPathResult.hpp:55
    XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__dep__incl.png0000644001725400016040000002044513273140100021175 00000000000000PNG  IHDRbKGD IDATxy@Gg$p+J@(* VA*R+ (*Pkx(P`+W[A UI IMcDW63nyva /p\p82L!ա l`2L&!Q*AFCѣG)))h9@g2hx# +tpd .8 GÑ)AqrrmΚ5ϏJY,ɓ/^n:"544LLL HϞ=EEEIIINNNȆx</!!֭[mmm:::^^^d2Y bmmﯯ?ԓHJJڸq͛7둍VEP,8ɓ'B˗/ӷm?455}}} ?WRRr1hll|NGLq8\Ǜ߯S[[{q/ |ɓ'qR҃(B$ׯ_/boߞ9`tT*UKKK[[{Μ9_~jj*rT*ロ?ŋ^d*((={mݺ̌J"mX~~3&Mw~QWW0NJzř8qmB6=n`A"YYY>>>Hc0a„ueee!999͹WAP.]$͉+wٺu+駟NNNk׮-///((زeҥK7lp Ϗvwwwww#駟V^=<%%%^^^+Vp~~~'MJ0h022jhhpܶ6Qw)N"ۖ<ٳg҅ l?((t͚5AAAMMMGy<^WWWCC?}tuu033$??$JJ޽{#""VZuEooÇwwwX,ٳg;VZZ/^LTD>}/ Ҙݻ111ڥK:tw"w%3ù* Bd@ ;wXYYihh \699ӧׯ_?w\hh3r7A"fΜo>LhL]gg'm۶mӦMp80 x<2`0W^Ңh˖-'O1+ڵk)ʢEI322Buqqy;qӦM{: :VUUx*sssѮ#Gl"M]PP8cƌ3fx{{'$$DGGD"=zI8գ7l`gghlleVUU/> i̊3i$X )2@<3R0|uqq99sDq?嶲*///)) &O͛7_TOOODDDDDĂ DCDB2ˆ>z%uu'FEE!zBK B]]|Qutt>|p߾},9iӦ۷oikk\* {{nƌčPQQYtW_}UXXb=ztQ.|>DEn$ݺuD"!]ŋcbb/]4#!r动'OIllp}AѬϝ;'#(ʹs㣣L''Lww#ܼy3888111&&^SSi{w 68;;?#!!!gϞmnn600G$oٲɓ[n ׷u===+++]G={2K```ww7@%᪌ Ó~'07W_ϥ\p@UUuŊ$?0J &Q#Sp\p82L|_ rjjܬ PW_HQ8jj+d_LBpXXF\m>L&K5wogn23k' O{>>>7QJTV6KȂz}|b^- aŋd@ _Z41f#Vpl6_e*Sӡ{;LW"؛z<qB ikdġ\̚D"J$ 0 wcN(JK_rVX@͔qqyO_2UH\/6AbCTgOԤm ͛]Oav<8st() u"IJJo$NlZJJDuu_.Q 4(T*oyaO# "A>h1N4I9Y JpD"޽nnHD3@d߮ KK#_1rUW$:'+kfd2NԔ,LMi7nD"DG46u{bXfO9q B˗|qzH̎O|}|>OTV JJDG*+Vf2m^8DˏiB 5T*eǎ$/AQ(]X޵e PȧNm,.~=%#8@xlڵuuYp6޳gYd便/dS8r펲tv }OJ..a5Ã@NٷY֋]Dp7?ߴi%s(t… ˆ%Kf|ɢW8!Ap\nOFƽM+">66}w3 (RSx[} INm|1*n? ;WL(&c""V?W' WPP {ڎ˗>Ȓ |kkcH&Hؽ`[p͜W%eDɓoxX/^B(y;i}1 m_l .-d#> VV;v$`Xp?~܀ӐwX` 0,m~}EK6(. 6XݻMM+ `UpW͘?wd,&˖Bݫih#k<0X&wMӱGie `Rp q=XO6.Y2mG  ( nڎ <0{ I ƘBq:ڎ ss1=~fw)ڎ1ݽ[1|8 60c+*FSEۑ2n1ݽ||LOnΝ.Mh"C^q47wݾ]1p[nHXCn!FFFV~x0} 7p,秤)sNTTx WY٨.Mf&9 ևtWQ4!\)%ֶM8#K{;i^OKk>rabb"3((h֬Y;x 533#vss ɀlrw=uT338q˟?>Zg:(z;F`Fp^qUUWWfΝсp8ő pႫCo555>joouܹ4==6...333((H™\PqQ,, ݽ{ŋ|(511A2Pф777M T*P;y~~zгvTxL fco~d7))),,H狨AAAIII.LII׫Yf*444N>/^R/҃os̡P(~- ɓ'&L6mZbb"b/((HWWFIƍt:]SSСC*233ON{zzMXz,˫wМk`...R0 ZZZ$"e_XX~KKK"x3"===?r 771eee0 )))=z](r8@ðBgee͞=[ۗ"''aU ~ReHee)J=x@"ÃlllDL&355ai΋/WVV,^;tL`0666 -,,7o,,,422rpp}6@#^WWWј)6333Q)]҃!AF Ϝ9G!^^^I Ch"jժAoذم ?=gy<3((⇔ B055m˖-+Vhkkhkk^XX(^m]i"ߕ(=R@86[ZZsssݟ? knnvvvvZeeeFF8H?>& b\ڵk\R]]]PP{aOOOoo/Lx#K^%%% XzuHHȋ/ ƩS$,ƾ~=ȚNyUUUqqqhh1MC`>X~x^_WeeӠ9allq.hiiIPfΜy.QY:uJ"#""UTTLLL$ w}ell|h4?_SSS2laa$O>DSSsҤI۶m(%^H)Shkkܹ8EUTT=hN)3 q`0Cۑ!ū+sP\mD"aɒ]}`l?^P G .P 0 `,X`a-;7"eNb~a, KJdưYb m XZJ"=j0U MMmQQdƥ&nnVh9"`ɒ^H 9/5Se韦n>A\]gVT4ԴT0|jjdy;jkސ_T0)8;i*h81*j?KUuͪwL NIdq#O/*''xժ7.BhvT^X-5rzz˖EOHOߡkz\\# W@g׷8ᅫMV/''h;NJL46B9\9'/#Zn9h"_`Xp3\y8xV"?ihDD 8ÂSQ!(EIN.*>wn2ھs^QQuUU3ڎÃǎ] ]nii/go?P39mGgǎ ͶnG9ۂ# Oy))EȞ={R9oҀm֭{{cǎ]Б`^pZ'&Ƌmg `^p͛jֹ}hdwGhAp3~1-"#ufee#"cApD"仝(pγ%WyE`z^AZZmkDj:;WQDpk؞;;_/Б#XLPowzUK R)2(Ma0NS6IHZDkk]\Ǻ.Cgc3e"".᡼CѮמ=*ƴ ]]11/|dHpE^WSSS\\m/A 8.8 GÑ)$OKOt;;;f͚>o޼n!233| APU;& PPPblܹs;::Cֶ822޽{!!!.\puu^noou 0ttt 222MڿNvv6077_zuQQQMMM||<%55Ud(8{۷_rMJJ # AAAIII.OԫY]oܸA555: (33s4߿ı:['d2L)T*v@KKD|]]]'O߿pGGBimm}&yl6;==ZYY XtiEEEaa!N7QHNN4BNH$zxx … 'MwVWW_jQ3ѣfffvvv|7_0/JSSSJ{D؈vLfjj* %233C6,,,Hl 3g|^^^gH!JYhBZw2H @D~ZZZsssݟ? knnvvvvZeeeFF8ҫΟ?F{#266WUUnܸqDA&o4066jjjr---)̙3/IDAT8%* rrrNHbf,66vʔ);wx&Jsv /yOz{A (999TL NZ444|}}I\pBѢI\p82L#Sp\p82E^K%/^?Hre4Rx^A^3Npd .8 GÑ)~/%IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp_source.html0000644001725400016040000003340513273140077020661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathException.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathException.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEXCEPTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHEXCEPTION_HPP
    24 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    32 class CDOM_EXPORT DOMXPathException : public DOMException
    33 {
    34 public:
    36 
    46  INVALID_EXPRESSION_ERR = 51,
    47  TYPE_ERR = 52,
    48  NO_RESULT_ERROR = 53
    49  };
    51 
    52 public:
    53  // -----------------------------------------------------------------------
    54  // Constructors
    55  // -----------------------------------------------------------------------
    63 
    71  DOMXPathException(short code,
    72  short messageCode = 0,
    73  MemoryManager* const memoryManager = XMLPlatformUtils::fgMemoryManager);
    74 
    81 
    83 
    84  // -----------------------------------------------------------------------
    85  // Destructors
    86  // -----------------------------------------------------------------------
    93  virtual ~DOMXPathException();
    95 
    96 private:
    97  // -----------------------------------------------------------------------
    98  // Unimplemented constructors and operators
    99  // -----------------------------------------------------------------------
    100  DOMXPathException& operator = (const DOMXPathException&);
    101 };
    102 
    103 XERCES_CPP_NAMESPACE_END
    104 
    105 #endif
    ExceptionCode
    ExceptionCode.
    Definition: DOMException.hpp:137
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    Definition: DOMException.hpp:52
    Definition: DOMXPathException.hpp:32
    XQilla-2.3.4/docs/dom3-api/DOMException_8hpp__dep__incl.png0000644001725400016040000015624113273140100020276 00000000000000PNG  IHDRPbKGD IDATxwX`3l2UEѺ\ZqTZV[mj jA%$" 7p{pH  4, dq MȒI: Ё@IG`,(I#330YaΝ/ P0. dq M iYH@6lʕ̙3>>>s%Hϟ'lْjll,qȾ|Ca#???z1*sÇ ²k׮-_VQQ0yʕ!!!FFFEEEWRRүJ$1 hS 7rŊ7o0LEEe޼ySAJ]k.CCCQsihh8pݝB?~N߻w%ԋ/~]B6/_v@:uj\\zѣEf7DQQqܹ=BOnj8zٳѣGw//^={vCCaO}fCCCKK%K֜>}ʄ 0 %i̙4j( Di^;J${& D"1zo7a1C54ze40--|WWWT1cgu؝]3=L<ٳ+Z`0( zlfffffYf^V655X,PaƢ5utt0 #aiW" @6(|ðFNDDաiieQj=[<==qƝ;wNaùt钻hSssszzzRRjꊪ7nikkt8??_ԣR]]=444222222""B>FCP՞&HDO+**PKpwڕH,dP$M(q 7o*ĉ ۱ukXmbZ&}ʠ ŋX 6$$$h+WL6Mrԩvvv7.07s۷zŋ?ԩSEEEEEE;@[9y$(,,ܼy?>|͛7N @ Ѹ;2TVV2 ƍ{Ν;MMM:i ?y0oW}H Q RfsCCK}}Krrpq Øs^`q}Wv_zzz'NZTRR:qӧ?^QQahh('''??7oΘ1DFF?uuu#ׯ?pӂ 8ΦM8gHHZ>;|N |}}CBBL&aƍꫯ8 H$ӬY޽+/+V;v {_.zjSN^ T&3q,-uzAR!if.TWb5XM,Vs]]s]][ 6H$ QT;d +*y;w{H|W^0L ffFFIL,d./Ze pgMuuuu͢M0MMe %MM%UUEu!ffjjCՇԆhD\ffy@/ B!4wfPChc`pȡ/<{*/Ol#DKKEB173o3&liEkkkk55Ez{'hOYY99/twQ':ɑ> xSL;A$5599IIWDB8-ޙwTU*6Qd6VV3 t:l`0 Mc>ͣFg Ô.Z#ss6kUWWdJcǏp4lbhkhkCKhkhTTUW vuu#^d6 ZZzzjzzjzz66jZYWWU[3PUUDM.2e 77gukDͼI\ЋliX_44JDmm--}}5X]A1:]RRJJjE+ijJf?88I:s @YF?-'Gj3_xMMd6VW74vڦj]SD뫫+Mtu߶BdqT]PYYGח*+:ѕ3PC__X5MH6^1{HIzHP33O~aQ.8ّZUf2kjHjvVVyMMcuu} ꪢ;zz}:Y@7ԈJKkJJj [ duSSmԤff.@uԆH6.)B]]QMM^Ss_ S[RSaZjjZX,Δ)6NN_l8cNpPWWg1(++XXZXs\.jB.`յTU ,>mMASPZ]Ԃփz dq)xUFchee4FmmcF& )-qMLFkkj(*B~UUUQQQm&'sZI$L(D3kQYSR")+ee6IU?y`|}q8-DЯH(x,>0ohdcFaK .+% 㘶vcMF*]ݎ+on+W37(/OWW|NgWUh'OQkۆ;QL sTnqqMq1SFcrr$## EBѢPLM(- EPLBlذSgwR! ð֒}[H"QɼUu $ 978%%wq f(T]}ϯ=]~z%T@cPzط>E""Gx׮VX]]##s0_o>$+󰡁l`hIWWHP@0 `Ђ,Dи5S}}5*LLTLJoO9LGbbѻ~J&3qS ׯڻ^'~}u6x_O$a@Ν,-;^8=t;(wF$ 5z@+^! OP[ۈfo+-'H00H@e<&'KɡyS4QFеOH(ɍHmnnmG"OwbbroK_H&v{M=rLql\͛?UP__4wtI$G_}pS"~599"'43vspwtsRO\B&EףYg )zaCCu## }}ucc E od!/?0FU,AUmٲf(2H&V>0:^gDEDe'c0]ʪhpc4)!0%fnn` #?ld0ޖa0_h!zz&7126TUUtUemg+-)-q5QTokk]"BIIMBBabbѳg9eerNNwwK__8";wNx_߽F$:i$%]<tBiӤ={|ݣGbo6'LpzGN<|PL˓~F|aVVyBBQbbQll^mm;J,aRnoFi:uh[U%AS-h Seeݛ77o*srU--\ ttTT++=++ԦKUenQQoh4֐![N#)0d`o "ᄏyN*L:<&'GZ{׮/o=mQjoo3z>ɃWr|oo+WVr8܈;wEUUC~>7i~nP'KH(c++=ww 77 OO+ 0 kmh.}r<U]*QR'ndӫ$8[lvKvv7oegW-jz u:<<,;&XHߦMnѣOwxZKBFО'O>۵VHD@㏳,T-YWq1} X ~uxhNQP y/뛇 ) CLTWW _mkk!hnn|W$!5uVe=ʼt)>>@YYqD)S3-<܌ j/d[TT\\P[VA@3E3v<N聩LW-0Xdd@^Ljhkk`l)HAϕ&$J]]5}27 ڵc:,F$?yhKׯj3&L25պreeo}.\xY^^yWs'-""%)XCC.0m(_ ̏E&QMi$]l6V4,+E(3711тn,`ԧh%hC tJ/W8ۉD";;8ثWQ>~/Kd+$hi_HO卍rr$}''3ё`$/HA/en\WWOqfrwbsq@J=H$ԕor ɡ߾rzrQQԩ.AAn66=TC'%4!C5 3E󣸸I#gU%xtT̈́P]dqH+>_XPP22[Zrr$ ]gg e(s{^Ut 0mTz:ᩨ(ڬH$iPen"Ϟ,^|j;v߰a&Ǐ/..f"ٽ;b۶)zߛ7_˓'Mr-+;y{} Os3|}`݇pe0iieaDaZ 'jEEՅEE򷩝@ ``ijjMM-KN.y뒪2hggjb6b.\KQ&627.<1mˁDwsrg[%ϭ[)V۩+VH]= OVRR?ޡZv53l6GUUqpStpr·Iz H$Jꬬ5T3 @P&4Mt [i>dLI"kB6Z2b ]Y~0LUBnuu͢LJHw33g>euħd2~AosN~~羾дW&:;̞=r::*tyy G霻v6Uͥ2JJjrr*[[+uhbL*Dk 3 _OH(*.fKK#\\\]d& sDvvG)g.C=~/?z/Aƍk$NW ]Kw/k7g}_2_te\._|( ?'(-cTW31 SVVҳҵѷңR ,-uO +82 _,`0\]<=7$3fmm#- s),9jpFq1s}׏_f{eDD|IHلܻwcc45gt3ǽіnz: %&5h(T=RLf# eePNdnCPT @@o|"QdLV\ IDAT)Bz@ ,GׯWq1sƌ+ߎӿJJnP783f7oQW;/tzkI/US#DgBTjL&6>ý ss饥599\+ikk@;8>YfeM6l3gr.u3gVUU _%ʋbbr9vҊѣ 4~Z5HK+ }?ɭ1cΞ=rD~8A1 o22hB!nfѹYPIv<*7Gc2 x<H01B-uW@@O+hhꪢiEAf:,'G _€VVzN-lx2`@k+ÌЗϟ穫>Ql 5$+ٳ47soB7㧟zo <``ު-mj++=Fieb&_KOKKKkqWSS47ץRQ{{#H @{<4`ii M 2L:8k$g lnfd_f0`PVVM7LWUU7uC1!`WRR1GEihiPQC2dxƎW@ful6g޼ct:ڵ)ak^HH(Zn8vŇxwqN6kE>xFqq4KQ6)sLB0hiiehHhRggaLŇ QMMcdgrbbr45}|l|}m}}m/ꠅ27[[I(l++;LᲳ+~9ztԩ. ǤxwV_jBMMMpW'kZ bfffEF-+"3`c`dooHqviý9 { 'OzzÆA l*(,ʪ((jjCP3:  2yޣGOdWV訌34 a̘R1.V*C&AUpzg^jB._t)3fF'ή@mtϟXM F6=0SS˸\(h0]YṀ3?Ί/ qqaoPPs !JVQgΟ}wYY_IGRwP:q#.5`0ͥHDQ >66>@: K Բ>|RCCoqcxw#r|}`غ`%%/:\''ﯿN:٫- .]khL$Zs]`UTZ[4y<e0M]\d~+^ #"RMP4E}&a$s=V 8 ()a#%|b7ĉj5Mhke7w{p.ԚYo 68|)aa)/?X: ø\~VVRRJss|PWWupS#̆7US"0x 8 lǙdDFf75q'Lp8I'^ P&2,XpU A,.fœ' Wt/_%L2XAu /,(x[ŋ:99I)]P!Jhyy E-ΔaLπX0A a;ѹ8{yYO8az@U5𮫪j8>h1#FI:Ee UT\\P:77 EE9IOO/OI)IN.IL,X$qPCwwˑ#,ldq` k~(l99Q6'47Ԛ\J ̴Q17oo+ujj-[ԁxx9oOxoU:.#+,-4əL^0?P2hoo>ZjHM-mxl^n ^Y@lν{inɕ#0mv*&qΜ ])t^矟.wg5KH(믘wӌ5.ZK6&a0޶edЄB\Թ͂J՗YAͫm2D%u6ZZP dq@Z[9)w ѣmMte3`n3XSSkx.Np p!cA[ P_3F,[8ҥFXЄ5LzWȑ枞V^^V0t dq@battkIs|ooGLXpiPᎣ냂8@+/swu"Y*0 T ||={c5.b9.ŝ>F;n2_Y¬r%%ycwwKww ww y;86zUPTu)71|c Y?UU #GZ̜:e0? D[LLdn6(訂ܕ++պwLrwgLT";u*㬡C V>}Va@$Vi50'䢹8zzVhEnm^Y?tz۩aa4ccG̟aa+@ue ,+, :|Ҋ| q/ݟ|cǴ> ojݒQ~۷S ԗ/3C` Pgtlv LJ G,f۩I/^䩩 :uY#G4Kҥ19$!en.dnJ^#(蘁ŋ!'%MǓ']!5]ee'NW57A7X!<  O }y~܄ n>>TI27йENzyY8iu%'LÇ"<?P?yo_.us qg_NJJ)aPP`΍+60@/; rq2DˀꆸtsenoR*<}lZг ݻ#I}^MTTM򻹹+dÑJ9G}Qg>doqgDۧv`8?: I2Q(w4=vȓ۷S֮7}I 6))9rFF˖.ZΞTVVaÆ`]]+LTQy2E011zi͛sbc[Zvv~~vcڹY@CC_p'Lpܷ/ռ[[ ۷__r7|!OGŎ2a]lfo_К5Nx{wğFY#)~i&:6tС˖Gbbr}$j@'uL$">ȑ'Odj];n<Yuȓzm?pSd(ebk׌1G<ٽ;رU,J2bVZZFwwǎff9#dq=p8'Enng|o?G p߽;~lnOM-[~|P({ްa‰oVg.^^/1(::ѣ̿VR p34 8Nhf_}Vfq첀ICp˖W?c9__參m?}_~Ͽ2`<hXr2m xg'㔀SkgΝ7z2F>XZZZؼǏΝݿĉN':i=3hm<-[|}/^l;{vY?p1-_iӦMÆ SUUuss۳gƦI&ׯ_d7oޔOOOo_uuɓ'u=NވHw=;]ӧ١V fsbc&Lp앭!}w~h!Cx{{mI8Km&n8iQ󅒎oظqF !Cܹ^٣$ρ_e쑑of8c )MMQt8'8{6kO?ݝ={dBŽ={fjK$/^TVVhӧO#Fա5449211~_}…@V(..NMMmbEGG...|ڵkWZsN'''VTT<{L(+B*oP\~'Ɩ-[hG@&-sOI)zuըQlddPk[D ʴ49su=8K)##]fDGo1c~q#Y(K}zf͚k׮_7oܴiS`y_}51*j˗߮_?fsNN/>lt=@xk/ݦ_mtN}avʕ'z* }}}w؁nܸLJVhll477?y$zĉOϜ93i$6[[[/_+\]]\nEՇ; 2//O浝,#m@}yWПߑ]ѻ[^l`/C3  FBwYCW\듢5kB׏^ |jy#qqqϞ=3550>%-Go2lz5aѢff) S~㢢jI5@[ܠ&){"tH󘘯 Wt\A VXq444tǎ$+++oڴ)44= z*ٳgV?swӧO9sFN.P_۷o())Oyzzbf`` ZÇ֚{ݺuؘbav%*wijjh"ѽUi&}}}==M6x<ԙ͛zzzk׮mmmGI]]ݧ~CP6n܈z .iii۷ ۼw;hJKkMC {q< 2Mvlwm˫=%?`}p?~رco߾>?˝/8Kss?XRw?N#>PR>=55GԠ%%%@[[%0eii64{&M:pS%&@I=' ],)aNkq<11QCCqP]fOll>z7o ^~x]]lͭ[b{6MIIihh`3g9r$l6[^^~ҥ4 }VUUojTq ?}# ŢP(΢[[ׯYYYCD=z4|p봴4ʕ+~q\_~Vkdmv7mq/mmΞ}/ukظq|ZUTTF:<}/\ ŋg,!Z8$::ϔO}uﰟ!ϏI$ʼnMn56^?u'O>c0ؒKAn S.n\sBKK]I~yyyVVVihh5.%%U4000,, \p!**ӧ7ol#rQQQ&|nnĉ]]]Ϝ9(m IDAT 0 #˗gff\-)))Af̘DfV:t(WahMztӮD,&44DMM׷Ç'mwJwlSSSHHҥKNm>M>p Ç[V6f?xYAuOm455]|0۷}77o; no_PZڮӧ?33޷ﮫwӦqTtM Lk ,%Ǐ/X7rǏ;' ,D3na?O8QdԨQ ϟ?ŷVQQvܹ3$$D]ZZZ6mڔ|w֭>D*,|;𣠠=nŷN P.__̼y'O.Jneu&NłNAҧ~.L;94efffgg, %H2ext?Oyt6jq_b< &Jt^a<9 ?ff?tgs KlhH:@f< %\/ǭ< uǔh&娨iӦQ(]mmmG}޽ׯ;88x{{s8\CȪUD 'O=z@ q:;;ϛ7O|X,p޽&t299Ec_Ni? 3`ܸqv500u;wtvvNOOOOO֮];{l4=_|v痗`cccx{̟?߿0==Mea'OۯN,cÇ۽;Owm7Ba^%$fq`;xGCQ(0'O2gwm46r~Lnuqy Ooz>=8/^J޾} 66sݺumAnz5!8OSӯ7~wqt8answGnUɂ W_9::*))988޽YZtj0ȑ#Ϝ9#TBBH ];pѣG͛Ff;orСaÆ 7n044p87n422RWW7oB[cK,^|ySS^9uꔙΚ5kZZZ]p[ZZ:Bpmv8dq lJl8E_gώ7*ɞv'@VTT?}X'NxM]]]2gwT4afgϭ[{3gP}!Cͷl" #`.\xxxöۯgd$,NfV-\xp]HYVWN L;Y$p HDk+o3ff#"Rz_U^ e؈HI/9<<Mdҟ,!,)+ݴ銱?>yWE>z]u? ׍ÏbdYdPK _yb㋌5%@b얹sGG^ra};wRemKKK NNNnnn۾}e$6 Es߾w׫ d6\޾?߻>a]f>|jy)S-\E P=ϯھzttY۷OUtD W\ t @bOC_?mtzg.7ξc W^3g΀>q~UW׼bŘ/׻իM[*+_uB\q1J5 9wXRc\_r?X00S8@z"ڴCFF7on+)Pgw$غn]QF KPy&Pcj/zZ]H٘\I6@'=3˗}:SIG۷S,J{ 5d11_ ]Ҕ)zU,e&~޽96a¯.ŵp%A'Ū֮x);;^Db7 OdթS+V ĉOmlvK||IG}Aw#MGHY%e {>| Ælv}7_sRxxxΝ p!o# pϿܵkƒ%>2رv_w\~s3j$/$o07>(*<< H`HH:ﯨ(zcڰm63SBfq =88==B蕚+PRRQQ6.iJJ5&&4 vvʆI0̖-R﫬lLJ*㋈D<,V 5K~~댌;.\ОR1 *(]U7oSaݻ1ׯLBKkmڻ˗YlݲesFpw](I$=3EV {b j_d CH D"epp:4̌ٱC=GDdh D˼C@"yyUII%L X͛y/ ~{7VTTyՋVD **֯wLI9p!eC1%%wb99?SCB2XX0۶8xp bsgbbMig]VPPڹsoݛG$$h4$hI ;7A cן跻{tDD6nMM̆˜ TU%$֮AzϿpq{{8̘'NPtх յt4 k&'Κũh|V@ Sp_[ʜ>h?NȨ8vL ) <ۯ K'w/x>'O魪j&%8tvp6\ts옪%Iϟ|x۶COhhhׯ52Ze4b~4C-ҷoP4x|`zAߨLL+ӧSoik['rxG%%5ׯG{#+; @/-+PPUUWS"s0z?MCCۡCUea_4yQPpaЎ RSQVssm̠ۖO55-׋ZIMH$0<<֭]V<6>=?/͟wesC+>}eյAZZ2 GrH$0$$mWWj ö%%5?S3iիo>nAA*D̬]0J"))^^11 10X3̺) I/y{'Y[Y[Ԧ|/wH} Oss 4>MMj/#};˖_hou͚c-OKF"P@ii!i?>M}?kK2k^^ڍa?m%$gDǏeppLҒ11Q@zeS |k~l_eg>"^47wھ;tHNNww_RR -&6[KKf۶]…7YY;wʝ?~򗪫(2Қv1Sz%7 - hoﱲKL,vw߳},rSXkӦQQ6RRB}73;33gln!tIA/Uh4 D" j֯a> pvT01X+rBS>W{/˗w`p+,۶y03c.A~lʅh;]پfD60<yz& ^M/he域_}%gSTTY$oR~oOZL6HN.IH(rBAg͚Ad-8O2LIUUe1*~~ϝ{Jxxh6"$.`oz%}}GLN.암!H]ohkJ7Q{2 ˣ##syy9֯UUo@ֶ:9 ˗wu6/붡(33%0:Pl7o%*("!SQ.M/=x#m(.ɏOO/bvo$>jkk>>I**\\tkhܓ۶m9BG_122?5)d"={VEQtVZbcOG @|d?B͏..=Y!u IDATD]&JHDJ>ϦÇ7;aqaa Ǐ-dRu#çɥoꌍן:y QB8*}+.r[F#PoƍKGJ6plP4ࠥ+OvN~=K JCQ۷˚("waaᛝ-[>^^T$ yqqyx-dPhnHN.vеt.X(JLϞ\vl.WWEE1M)) @RO)ׯGN}Mxq 7Y{{{FJJKC $o8׷oԴ IjiLfÏ!Żv99mUAueyy%/43SАbuϯ65`ަKҁ{|dPUUSpB= _ C9߃H$WC\NOvvEt4ktTV6;CѮ]r.hϜ9nE8$uԡm``ZxʈGqO]p4==ϟGG燇g׷oRdX'?xRnnz @LN.Mё75UBXX˅?!@ JJSTbGI(Jݶ&& t:͐^\?H)Bzz VV*G›"(H[[+.a3gi;zKq쨨ikˊa_}}͋#G6Y[#yqԴ$ukhHe?ԄH$]k\E/FֽlY// )0UUϜ }\(++[)T'tufdTDG{3++/[K\b- S>޸cf]ċ99?--w߽kacϏPL$dehi-Ԕ!cH'1k,&ma!8haWbzz;h6"}h@||ѵk3>~,ѹE͂@w((|(hԪUX mwJw.ÄCd`/(sHH f۶n[{OMde-g|<{n!,-Bfpl{[P!]SSGJJ)ڽ`Ě5e{@ ɸt)(_Sʋ@R3<8\S<<{VE82kg2<^~h32*McVPԔАXׯ?ouqٹSAvzP]ݼ~-[x]-e" qs›JB sNm޷յ:*&&aSP'g /KJjؕ$g͢4eyFOҚ5]]ubl zq@}| Fuu˔RKˍvv)xq䤢-<@y`쪪ZZ7lXB!3AW׈5k߹cx+Dzy%̟kdvϞ5S"@whw(}ծ=a  p[xi]v\;FJjÇ{ 1)ZEB$$%A9Ko@3gBU=zt$SًIΐ vR؂3>4*nċ#x|ѣzy̟@"yyUx|7_;[Eettؼx.̙mdzmyq~ HUWJHK QMCll#BBRj`mx~ċHpzԻ89Ǧ/n|$%XZ>=Sap(cӦeZZ)'`:|J'OS"i8-xqcO&ˡD175u>ӷ˗weܣqp-. [㐜\ /y&T H=}:ȑMgl[ߩo/)+loJ`+W.Dihs/!!NNaL;nK M$u8if擝CcUUeXAqt?oԧau ( ޾ZQ (ȣ!E!^YG*::j]31( 55 ,VBLl6CZZ믢׋xqINw xVԭ[ǏcO<"^in07aH;$o8\vtt^kk7MKk94r^ӧ; @IAf21W)ю76?X|8Iu<T_o!88ԩW?aaYGۧpLRh]KK|bX[nތz(N^~-xqIN_|ŋJCao#RRt&&WNNQխ[ehyׯG:;41Q[ #--&t֫W^^i h9̌yJo$NWWߴi47 +P(ٜVV3xx8ki-'IՐ;β~(?Ӧ1;8hjkRUncni.Bm#lM;; hŊs$u8-YggkEF#6oɒ9O›#6vh,m9;\E 2GF]04\cbHΝhwh 7x@NlllCƓ' }rn!“' NNa^gSBB1PL %%)*a쀀R\)&&pn*S#sqIN[ܾm01hċ/ċٳg.?TU5GFpٙ,,Lb24az,gzQ33%UUql>YEEõkz;vNPۇ#SY٨vCWWyJ&P/KJjؕ$g͚AѢql{V77 G i'=xqOddڵ<0ƳߣófCh3ͭڹ󞆆cG H+19TXxjCõ@eٽȘcR"CŮT cF͛/G?ni8ZJeecRR _D$$%aX< uum΅}'䴝\wF8INS@8<=Mƕ v^}.&zKq쨨ikRm;umݲ]Dd9.߾x@ ji-(.>li.l⶝[~GʒKgD"n!4ʑ#OÓ^h%_P[?cÆ%X2Jqz>>Bbd' mmaaY [O)_ay7Gedx D"dkk5 JO'Sl*=g7%®]ZZ""Oॽx{':p@qvٱc%'N[lܸ Riv)/_af>/..6C(6\ԔXD򪒒JhL X͛UgI\/AR@20x\ZZٳǔLr{qݹc@4>BIhԪUX m <C~'-[-xq4ߟ>Mz>CWwܹÏn܈|׮R?Ͳ|CT,, =ssӃ[qx`d Zh˜Bƭ>:kV h^:<9IN}ܺ6P/Oi/u~?||LǏ|.;#b4fQMM 3@ dx~x/mOMSEeҠEEmFFkaJh.w=p a.pr23cBB0@ }RDE喕p((IL~QLbrMM]||'vċ#pQRRygj oNY#(O_󓛛]UUشI| }ѣpk]/#FF&%26^gj66o$ggk(.EE-Abo,w)߷oh,lF<>OKF"P@in";W=B8I gYu⒓K|NxT t<>}㛾qRzO61ZZ:oz2O/ͭFOgml8~\ 5 0 ^:w,((ڵI5:{{ t_WW6>+adkkvs{㓴ikcܺ/Hp*sbbF߄/ݻwD"सDž˗L|xKKoTϼ斖^~~6ii^ii O2Hٳ's05m;A+*s e˖ihwߐH@_A^~{X0 gDE&str_36l2ǹR?$'=x&P$?~ub,ZV@\|"PJJZzzHKDZ׷ r-A(.V‚%6&-ȅHtb7dd%j18PrEP(&vvIf9`LL311tHhhɔҿ4?#44 f9LLΝ{ܹ]]Y/_x6==}8޽nD!R?^?q"p vvi^^m/ AgXB! zw4R[l||Y{5Av=/3ćU&H KZիWp7ν޿_a:L ^|aP(5|[ۗӦ1ZYEE1EE4owcԨHl}5k%&N* H}!/cW]y'=B{wHmu K45eBN?B,gφpr!;֮S^fhȅGXx/_^_-Ԯ^JJKKDB;v| P 'm|ċC_gFEݾD󕕯EG=}j񾑢r2񶑑ΟbHe4Ғ* L-/n!b#G6=~= 0q{._76^7h.o37ݿh|}Q IDAT͛rn}8\ԜZtgbb B7.+"=  "Ϟ%)!Lwc 0nplek99U/^Xzxrs/1.? +M>9sEEc餌^B))-IH([”CAAn!bƌiLvǸ,&&#aaa,,,ťY^^>;P1볳 KYY_S]'cG'66꣧q}鎎;;;3f˻GP"l޼zjT^pۘc1LmmSK[JM&T b%^sыkiiٻwܹsyyy QQQ}}})Ε+sp۷7oUUOkk,do\2==ڵkX,?OEEׯ_oܜ }gnnӧOS ATEE⚐+77=r\A3=;UUkh NcKeQ, oNfe& ӢE`NeH&TG~%44ǏO> $&̙ӕ}況i^|9ȰHJJ hii)'' }@i' e,nеEEEeee꺺CϬJA2N0(;dttx/˗=g7L".\UTT$' {zzBjhh={S__͛7ߓK9SZf,6@ **tt Y;;zz(Z֧O};;㪪(Z8~s—BuPf\20j`d=_ "`m ͝6!!aÊ(R׍9u6MM탎Od_ /31 4t+V`gg3gիWXf g??::ZDDK.-Ydŗ.]Z 333 N@@`֬Yvvv}}}p8iiiӦ-ZLYס2H'tyXXؒ%Kf͚uرaKqn݊]JP, eii[譿  ӂళBT L5pAAf:::̆5P@{gΜ9o<[[[h Xl// y*k#'H^^655up'4YX(uwժEKOw47f}^II% vBGG>'gQUgE[3 bP2 #qqqNNN8l4H0v9P(ooe˖_zo…\\\ϟFx/ֶG(W 2A $ Q{w-!899}%$$rrrrssW^mkk 9ԞG7蒁 7m۷IIIinnq0r9H_hhVn?,=sPPpLho料 B"V1'6 fYyzz FFFx8W "Oy?c%*zea/+ĉT 뗌fYIJJ@8W3f{_3CGHWbxclwG9ŋ^999gϞ=uґn,_wOaxq~:vו-,,ŽDWWݗ/_Fyѯ5lFQ~@4006BSR׍yxҠ@>p666G^.GGG>bߥ.]bcc+COlkkΝ;+++srr444߿BBCC[[[{{{ٹxykkǰ2x񲲲gG R[}2555 ;v(//>pB]]ݦM"##KKK߼yzjAA0̮],,,VZ5kOPz#D"=z4(((&&w^#Go jaMkfff}}cǎ;wp$F> #y3RCVO;aCdF)*=~/)^GgOE gII%pK8)+B5P6+:uTtttcc.^U#aԴ̚E{T2CGg\WgHoF3>}۷oG[[={t>RM3gXV3 G 'z-^^^!!ٳg֬Y}}} ӧO]P499y1"Y^^mmm511377ŋ,]4,, :ٙ{в:p"ڿjk3g u݄Y9'bb}/6h({{ +V8N0 ĸZhaiQЉ)! |V{ùsO=F;S_ٽ\nɒ3νl[ J?ׯq]56poCBB dY}uE@;-']ux]s~M ׷[¿tu޼qc||5)>pjTTuWpD"}D@ٹSٳCNNї/_:;;Ο?off(%7H$-tv2 eSN899-,,rJ -diњ ?Yθ^'{`gLjVVRII)J|`54i߾O$;LN:ٹ}EOB)$5 @`̸a S? + bիWkX( -ͫW_6US#B^|G.atm 37YY?V= me` ݫBYBBnQ#ܱzcǰGl%1z胱7ߒvM N5ػCjK`1.q~\F(l7.[”?ǎlvnfxE4/\3?q?uP\޽?:ւֶVQ3 p Zxqc͛;d1p Atu޿t55{prr EUOg52Z{*2ZLL!tժKWDTW7-m0mda<|ŋ\\JJK@ -Y2{AċC;_,.ٵk%B"uWލAWWnQp"--as _g^}y>Yz&Oτ߿!ݻW"{J֭tΛ7 NAݻ;zV,- aN+Mii>4z~lK Mc41Q[WUՌLF@@"TԴ`א#X'22op@ZdfV:;\)wPXx&܊hffr-奥ϟtws}es`dmnoba<;2͛Q[J/Z%%5\\lӦOg`> z:c4" ܹs.ܬNjcbbBQO`fɹ d4z@h TP8 #)hTW"ݘr7:et;/*WP{4 \VŋϞ_/jbJ01B_ׯgb0/^{Ӄ@.F޾)(a@5=dr̙̂@A`okkJgWkJ 7J$m$RJ$v* zwHm0޽{gҌ }4;"fOf$& -WQ-דHWd57Ą^pƲeܢ\BBa̞=[QQGH/_Rk$%%L> ٲe˴i ޺e/[6ASYy)1$_C\FFk ϠŽ rZEEEzz:D!4TTܤ=|hLeadrpJΌY(!p11(FI$ԍEQ3f0sqrs ӂCR[2 c93$$ŧOgv6ē ׾Ih4:!XV\иGB11Ӧ1 ++/QT7=..:p A`d~hw/6(ųTvc,pQS֭!edVQQ64EF &͛ǟ[ -RVV: h4 ՗.>Aܹ7Ϟ%b0( C"7nF@"X 11aЋTĄZzqp\tܛA_ԉ$I||UT**.QQY1=fyKȬjxIXxѣFvz{ QQyII%""ٳ:׫9B:%"0* 7^;}z2Zh+~>6,*SFxdb|tnn C@ //^|{k'&68^߿[@PX[zï&ebBƍK,ȩ L;wuAiӘւhTW7߹ܹypK!L{TWBu1)U_ -/ZV=CB?8#Ąy T3Ji#-J(Q i!Qۢ{[{RJ"!De QFBm8"Yf3~53|<ܿ߼`ʚIL>f'ZW[>ܙ$ `0}lkkJʔTNz /MWw$#VTRRu*iyNݸRFƦ:MII՝;Ν{ 9[[3T9󯮮2e@w圻 7c֮}{ݱtu/^&>y~z(ʊO@ bӦ6U@$u+ߙZ)!C;?0عkaa[AYYT GIΞ YOݻ۲9s7]AAŋ'[ bϟ^=@wgOqrr075UꝬw:i?#|ժ+,анn݄Yhfr%K&r۲nac ҐwIeeC)+kksu N2/2 Z4>\:*::-6'{qKkxDDD22ZtWאӨ/dHIyts$"޼ɚ1ȓ'ΣF ;zQQiN&%mggo]DfWp/No}Wא-d\"] =r۹L&Oo㳻w0a̙5e $I_&m>n$In{Jxcذ&&*ÃI,𰒒*cCJJ-a,ܹvm8#\HHp,VJLe.c0nnFd]ɓOܞz'?o Dd``11rkL34ߨ-4:[ IDAT:C;ձ?Q^^ckfPNY53y-37wyCBB#FH:rWlly'LLMBB<7nȱcrr?.CHTVƦkU!/?/(.VMec&'̯֭5k<43xk۾|fbrTEEݖ??n=yS,!@Hyd޽XW}}_ΘzFߥfE.]_r~3kkkY\}F{,hS}_@sg@HJY355јzjݻS<~AEEXk湻? 43\j 6^,IAw@ٵ󡾾kpoZP]]'}}=S+<}9fh 9>|$g{^߽Z\.**-44?Ç/})P ޤz_HL|x{o\9mAWje:Cp<=_R5RX!Cĵݻ-;5%&~*ܶm6O~~ϟ}|Vti%%U.(XatEEEۓTΚuwׯn_ Μ ٽKS;򮴴jPqCU;:~stЭ[#FH^=u|T.ڄ`h8ԩŭLw!(6lD/AA͛g-BuuݡCΜ W8tȂ>Q60?}-[ftQ .]z~V A?|N߾t-vԩNezaag nMw,GU K~8!?tq}}##e}}E蚲 Ϟ}z II+ uxt׮EntRkϞmWSY\#qqY&&GBB6qtV}UUÏO2E! )>VJ"# ܟXG]Y\\1u([[}]ݑ<؂/8)֮/ \ի.&&*'N,ƾa$Əo[ݧOEg΄xzu_bxX޽]\֭3rv6iGY\m-SIiݦ jqZ{ &prv|Ï߾ōGjk{yEcmh6C#7+W^^z͘-,Nkhȝ?oE˓*+k^A\NNx GO \5…0QQK'J`{{ă]z8 gH;Z5G>4kؽ{߳.!^?{{Fw @wr"ox[ɊVV:FF\4GM=w.#/ؚP||7lbV 돖cvw_3P!_v\~>X;쑒gk{27e?,vNbh{Gk55uϘieO$}<V=z2,,YZ%1ڤ;ܹjE]A0Zڐmr WWNJH x۳g卌Q!V]ԩ:ڵbtu< px<ݥ=bbw7xzF̞=v~3"6&ݱ@!I222+޽7,k֬ jM$!5[v@wWڷWTT紵G;k XPP +jKK5k&**jʕ˖S;|gNtp;''o&yNzGddL޽; >ݾQ0l6WO .;<~`gwi1'NXa+?~QUWNu.B4UQQsjKPaa1Uyڵ͙3-mxGĄ .Y2ް/]RRk]9s8`-3-yy[QQ7^dHI?ƨQ xVkv@y2}rr.xWĦM,8p,-. K KOBԩzFwt%2/7OXNnAAV[qw{Gc,0eʨ.2Ps ^j7l$y#G7l0;UHeHTe޾{x@FFYcgKtE11NNײ lecU*ŝ9$.oc?nݼcecǼ.ކ YY>>ؠ04?ػwߔVN4r 3gvFa(/7+ۨ5L`Gk:dU!øϟVӻwb9xaZZiLTTd Ҫ^lҤ "K~>oމ?8kw_o۫WÇN$Oo0-07?=dHC,؀$ɘ۷_ݿ˗eeǛ>@GU;ZjwwlmCw>-[vӧbW%LN^ 䰧E>yxУOǍBwP@'ڷ~m-k(:Ǐ/tBn|ѣ++;a%ZLBs:#y>޽7ndd ">g8 ML(ڿ+.%his!**_%$z]|\QQQIF)N.$I&;G==gc8~mnyqBMfܵx?#ḅ& tw_otOGZjk;`2YÇoYXh::Nkdq7gOw WGk+VxSZNNJZM}6ShgP>|ݡ#55o 9e(;;==f.9xp'ƌa& }_]]0ddd]9hP?[[%K&b~8* ;p< L:sݦ%y3ݻ==zt)?;o&q4+haqz`Y]D}ENel}C[[N"k/vLLCMmFZZM>i)XWwΌs}O+V8;cX ""LLT:? @+((su p!LTTdIjл7&t .< ի/LZLt|98xee;z>wn0ߦv$ s>vl9}->S岲N5mIFbJ@[Xgaf()Z{R]N\)wE[WxKl?%==)SFu@UXX~bعs66}"IWࠠw#F 3X@3eqQ7_no|'UWru >pرC%%JJ[][ɹ>*<<%449,}JJ^ԇӦVT0+ݵ΍1'XrJDDիeeU&&*:Lglmn(W!@EEմV]ԩ:-󳒒;w^]!gk?sjW. GYǏ_wݺVKk8ݱMRRWSR9zS.==Ҥ=N<.uuOaaɡL&kY==}}M\ܶf||κuFaag>}v@amn%'._05.Wx(ӧ ʸPyyWɓeeՖkLv>˗߹Z@ajdD QG_VVH2Ϟ 9pࡎ228q/=uPfWjP|====]ݑuI${߷oK[gRDD;tDJJw?N00P?WIU K J*/FVz5%\czAs畛[h||}_Yڵ׮qk1YY۶͵f̓Ǐ-;qK!?4""|\ܫW75 ا5/8(*mÆ jWx{G^ӧIJ=39NN&sޙ. Lϛ`5|"&&[bkjd + ߾w{wC9p4;?عllGDEF~[7! T榢"Oh_z옿Ga͛`0?PZײ3gBݟuߴiFׯe/^O`dl`Ľs*;~< #`֬3~xOTJJ@ - $_Y\ZZw׫;\j~~̵aW!nn OJKˏLHL񫰰رC]PFFÏb745U( //(K!retճjT+EX ӧ` ^,yCM6DEECuu$Qns[`&meqA_z݁tTUUÏO2E! |=r䱟߫O7w)CsJ OG1cd45kjii@iUx+W^HJXaxn݄ujg .[bA-L**j?6 ˗oMhd bO$>8>>pqCbȴ7c}UQQ3e(ss ##eY7wYܪUWʽui\#{ &t]>CGը%ңӟ=PTTNsԔ5g~]B\ʕSu[qqYh-]:a ]IǎzQOOaƙ>ˌHxΫ;w^mA06]wZ-II{xf[ee͑#O͚5v+7rn\HIIeLLfllFDDjl)ZZõkkPT:7S|Tի}\ih6(YYnnbbVxN"?.ׯ.*tQQi>|}ߨB<\$**ԩT.gh8n'&~~ UjjU7Om.(A|DgVOψٳ۷[\y"Ϟ]ʁ躊7o>eeGFTmA55tt%$xv*+};ِ|]ݑcW#==+*jOc;2=?{iLLetУH##iFw?d/I``у gùEf<|A\fׁ̙3n\ne#99y3̍ǴKׯ8-XyQQiqqɹA *!Gen2h56t{AeX^'̙ozz *[RRY_!`dE,:w+ *Gy~2DHyΜr,?ﮋcvv6ۣbIDAT:>=&Lfyy= qJ>~#I0KRRD]}ظqCnЉݟ EKJDrrztիv|Xjirn""::򆆣M=t8ׯ_~ ge}C^HJ0؋dDGٳF\J\gϺvcfffff:?fqeeʿ8a5oZ;`0ثJ{w&QЬDJw>m277ИT\]BOM@UP5 Q'(H޻ne @Q=ۊCEPL狊Uwd|K)>>>l.8Y2ppp077goTQ>>>tGAGGQt)'LKxi;3e@1$,nQߒrm4SQHw mçY2Edqe4#bڴQEEloիWBBB ,//߸qرc{ꥩw޺: RRRbM|9lEh`+i6lɒ%=P^^::z111[l422b2 ;##͛7MnI:m&!!A=ƀso'&]Kk8&Uo͛7nH}믿0`@PPЌ3LMM$$$k 0`ŴZRT+##3eʔ[n >ѣԷɓ'&&&]}FFŋ Nٸsɓix @7$6JdX_~c@97#bAAIL&-_pa޽/^tww}vAA{qFOOϖo@߻wOMMMTTTZZwܑ)**"KAAjOQQQRR޾:ɓ!C<{YJJJRRٹ w着v}W\.`.]*!!!++TUUE5jT8lۻwo}``0+W>e]OT(__ |qt|=IfGuuu;v2dȀ,YR?ȰF[[ *KH5c))_GDYAx{{͛7k׮#L~~~3iDDD&;;ˣyuQm.Y_~͕o8999""B^^~Ν3f߿c\\7o\VV֭[3g?^HHكђ$iee5mڴԸ1cܹvEEEΝ#ׯMg.))qA-`7@+4 >|Httt߾}wϟ?ݻz$bQQтmɶG6 =IFTVVrrrl:2l ak}\gǎ[mzJ+Xy Z[[  ꤤ2&ӆ̋deeUUU/TRRɡ7PXXСCEEE,d6{>ښAA7oSS'|oB$5Ç:ہ,Zscp ^z˖-$Izxx5&ɎD1]'i(QQQ͛MG-tAԑ]/eq|= 3T>D˞!!!AAA~~~}8׍N~R $''7VkX۷[GI=PRRήL=Ȑv1222JOOׯ_pppDDɓ=X/_0#FP__hРAA/m:akߋكtիiffvu$8 #`oOQbfff}2jԨS m7 ^$߻({T ?ϟ?ͅ,--giiBα...!++ɓ6lhx܂ dOhWD΋"""*++Y, /_>gΜf_BJJJPP0--255UFFzhT+ك Iӳf͢믿z obbRDWWٳg?S cIj:J4hPFF׻w7R[۴o@HwQ=;vA}>cc$I٩._ 6HII]sss?~<|EUUUڶfuuuMMHee;(--_AX,kzyy޽{u֥DGGoݺںхLMMlْgbbr)all|ƍaaaQQf7",,laaaooXYY}凉}i1B8~?}秧;::Rھ}{^^޴i=zÇ[niii4!((?ijjJJJ6l#\OBex=!!!!!a͚5T MGf{Wo߀{|qp&غw?*wwnݺHTT/eYYن ƌӽ{#F'Oha]IG߿]\\,--%%%xƎ[SSC[ ܆*!!vʆ Idٲe_bEyy9I#FQRRlzaS/vpp$;h0i-`@+~5K[YY} ]]***Ku!!!A:uI.ғ~XUU4hР>}XZZQ56ՋHҺ8<{ln~:677gc 555&2rHzǛ/‚^;Ђ}||17$Fx]//> mm{>zđ=NZIDD)dq{Ύ(ڦ٘ :F- A̝W,II3gE437vA4A8 }}Eqw4 #9SXdq7o|b\h ii I @W! ;w͛1NN&?<9""`tBT.t\#++tG =I5x``dq3okH\\jKﮬѣG=i`1kjr莥pYYׯI!l!!!iiiA|ՓpC`F'W^tu(eJw dB_SSzDy#мu+@,))g̣}_?Q-tG,?,,JK+?N;e:PRR?_]P;h?$% =bb2L9o&UW$9g8CטfHȻϟC*+kv7oމ&Ur4,1c1}Iw nҤ=!,025U@.,1aaASSk"Y,۽۷ ''o++׼Rj eCuN 5cI_CBH]yjA,w%$ՇuvLV!'7`Ҥv7b!fVaac:%C׼K'%ef~;1B2 y|uqV[˜;W5o1r݁YǏ/ZH`4 7`Ch Y\-􌨬;6KM7Om^BBA .X0 ::k≕5w;)/8E;e0Y5st$I:8xW;LXXpWZ5U]}SIr_UNebrgHci{{zW;܋k`-=;Vy"e߾[F ÐA``_JW2m+ 8Y1b[^W[˴sv6m~@@ac_Jw,~.ݝXF"tQR61Q9x!-Pŵs;v |A xq_uOM t褕i3gݻ͛kQ^\{89$'vf( ŵYv8zq_>Pº[Ol긼7T:nǡ74,Ξ=GZqt4˽{o2 |@uyzXWbc( ߃,6m'] U\PTm\v <Y\G "ne}ʚF# |w!cGGuӧ=?sf!c ^O,.H;T-[f`WlcűǪUSEDO|JW2m+ dqѫW5k ϟOGoh%dqll}y܎78tpۦ'78vZ`)ɹ6\[U$IC;M:@CDdpUUZ+g0{R/-"Gk%!! === @O177ɡ; ..(fffty. & 8n,_))) nC FJJ  Yܿi& ݰaSSSdqطoQAܾ})))˗/;"BxP5}PRR"""bccAD^^^K9ra hee5mڴԸ1cܹ$I ,--KJJ077/))quu%ͺO>988̚5+"b%%%7nܠEjll!//sfEO~WTT$++Z(++ןpҥꤤ2&S䆗PPPh`MM`BBu͛$IKdMMM =x AzJOOo !IdRϢB7{?.dq]Ϩ$o߾+VxoFIKK7n\ - ""lbb^6&9b꠼|vv6XLL aaFrrrUӐ}yFI=PRRV{~uICC 6PGddd޼yS۷o[n966ťx}*ATx===!!?hZSL&sƍɟ?>vĉ pss[O\n]JJJtt֭[[8K8%??ӦM§OurrsppWQQ9pEZho߾ٳ-[,--MLL|RիkjjrrrTUU^Mɓ'׭[!""p-[&ӧOYfڴi%%%&(A>}Zxayy-[&$IC;XXXt<#GrρKhb0l ؆gTdqwvvv9YQ_ƍ{IJJ9s5!& 8n,p}oT6455.\Hwf…tGM ߋC 8n,Bf:_ IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_41.map0000644001725400016040000000042313273140101016015 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal-members.html0000644001725400016040000000751413273140100023561 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentTraversal Member List

    This is the complete list of members for xercesc::DOMDocumentTraversal, including all inherited members.

    createNodeIterator(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversalpure virtual
    createTreeWalker(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversalpure virtual
    DOMDocumentTraversal()xercesc::DOMDocumentTraversalinlineprotected
    ~DOMDocumentTraversal()xercesc::DOMDocumentTraversalinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp.html0000644001725400016040000001231713273140101016116 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMTypeInfo.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    Include dependency graph for DOMTypeInfo.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMTypeInfo
     The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMErrorHandler-members.html0000644001725400016040000000636113273140100022505 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMErrorHandler Member List

    This is the complete list of members for xercesc::DOMErrorHandler, including all inherited members.

    DOMErrorHandler()xercesc::DOMErrorHandlerinlineprotected
    handleError(const DOMError &domError)=0xercesc::DOMErrorHandlerpure virtual
    ~DOMErrorHandler()xercesc::DOMErrorHandlerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/inherit_graph_3.png0000644001725400016040000000351513273140101015747 00000000000000PNG  IHDR%Y5bKGDIDATxoLR]E$'(ʕ0i^Z:T-eͶzQ-/zcQ bEsZ[Hk@ ȃ60D@Wy/wɀꑱ Yh) - !4 ,PJ. 7TxFSUUsNX H$+WbSSS---|>_(>}Ǐl5R,,,,((P*x<٘teee\.W ѣG6mp֮]{ǘw̙3¶֒RK& #e\DP]fMww77n3!vafsIIɅ   >~\.]\o߾1\^^ޞ8lC\.ם;wP(33֭͛[,+ 'gqҭ =%33ĉ;x@`ttv˖-)CɤǾv}VpH5CCC,ׯ7oj6Xdc;uA]|:XxKKKcGǏCP"XVχ ȵk~?`0HC#HOO֭[ʺttvv޽ܙ# UUUxy˱NPXSSS,IO<Ď8}>}Dt"4NS$ >I%$BzT*---x/_߿ٲe۷oLjnn~b&Sy!"XW*7cw|"j* HmmmZb&2Lݎ5m6۪URl\nKK퉣H^T} 3D"(t:wᚚGꞟah0Ez$z###.<++k#/&&&d2Y/Vdׯ'{B! cxxC&  ܹs_|1ͻvqF1q4b16D  Fuu@,C咺o޼}}}ȑ#uLNN5E={w^ {Q;V]]܃H$:{,ҥK"HcT*ƌ}>B>^DNN@@./_%SZxB OQh) ,**JMAGP,hB1/w4) - XQilla DOM3 API Documentation SourceForge.net Logo
     

    - w -

    XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp__incl.md50000644001725400016040000000004013273140077016524 00000000000000d6aba3535d4035d78c8d13ae18ecaae3XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__dep__incl.md50000644001725400016040000000004013273140077020434 0000000000000046e06d3243de1f52d84cd36962ec77f6XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp__dep__incl.md50000644001725400016040000000004013273140077017776 0000000000000021f97a6afc01cc2114fd40affcfcb290XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRangeException-members.html0000644001725400016040000003067413273140100023035 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMRangeException Member List

    This is the complete list of members for xercesc::DOMRangeException, including all inherited members.

    BAD_BOUNDARYPOINTS_ERR enum valuexercesc::DOMRangeException
    codexercesc::DOMException
    DOMException()xercesc::DOMException
    DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
    DOMException(const DOMException &other)xercesc::DOMException
    DOMRangeException()xercesc::DOMRangeException
    DOMRangeException(short code, short messageCode, MemoryManager *const memoryManager)xercesc::DOMRangeException
    DOMRangeException(const DOMRangeException &other)xercesc::DOMRangeException
    DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
    ExceptionCode enum namexercesc::DOMException
    fMemoryManagerxercesc::DOMExceptionprotected
    getMessage() const xercesc::DOMExceptioninline
    HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
    INDEX_SIZE_ERR enum valuexercesc::DOMException
    INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
    INVALID_ACCESS_ERR enum valuexercesc::DOMException
    INVALID_CHARACTER_ERR enum valuexercesc::DOMException
    INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
    INVALID_NODE_TYPE_ERR enum valuexercesc::DOMRangeException
    INVALID_STATE_ERR enum valuexercesc::DOMException
    msgxercesc::DOMException
    NAMESPACE_ERR enum valuexercesc::DOMException
    NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
    NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
    NOT_FOUND_ERR enum valuexercesc::DOMException
    NOT_SUPPORTED_ERR enum valuexercesc::DOMException
    RangeExceptionCode enum namexercesc::DOMRangeException
    SYNTAX_ERR enum valuexercesc::DOMException
    TYPE_MISMATCH_ERR enum valuexercesc::DOMException
    VALIDATION_ERR enum valuexercesc::DOMException
    WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
    ~DOMException()xercesc::DOMExceptionvirtual
    ~DOMRangeException()xercesc::DOMRangeExceptionvirtual
    XQilla-2.3.4/docs/dom3-api/graph_legend.png0000644001725400016040000004242513273140101015324 00000000000000PNG  IHDRONbKGD IDATxw\' {- KA 8 8uUZg]nQh?gZgEAPQgF"3@ȅ~.7>rs=q9C%;2@A#y;YYh$H0".iӦ<">}Χ,@` ;͙#xȓ<Q ̌@Bnnntt? r!0P"aH"ٵqF sy dSSS2::ijK fE\JII!~ !lIIIyyyDAЦ.H[[!t&yĉV\`Ν;׬Yp8\.WII!b֡Yfر#;;;>>~ҤINZjWPPPQQѓ'O~嗮IiMO".~؟N8p`hh;w>}dcclٲ7ot 0 ÂgΜxDD͛7;*yN~mmm++ Ԡ0$^oٲĄN{zzVVVꚙ>}А3FCCd.YDGGGOOoŊ555|>ȑ##G$6dD;YxJ,,,׮][WWJ++,}9(&p-L+?c' B iii}ia)(uk@D'% "*ڨq(:viii\(@k  ~gϞ%; y d緜W>ӉX!*B{?ɤ@Y;** !tVG rn! (Mv(@2{^N/*&;bya8qqPenb(#;Sʢ(TMv@N2<"[bɎd#Dr$hD2yC}~LRrC 6W.L@2)n݊0៊wߒa~DՉ3GU 1;iRSJ> cȋd@T/PQvI'i&fg'%qʼ0S0ʸ_8pu_Oh"H ؔǢf 4ReV5 讲o6@*|&?5@(-efJ8bc(Z[2< $K*2aEDJׯ[YY㏵|… Zږ!VSS366+0`J޽^JLx^^^=z044x.ըH={fnnիŋ뛚nٲ 56f ͥ#Glll455GҥKq;c a GGGÇh̛ݴoS vvvFt46:4{t^P(.\3008xիW{EwMlI6 O\&R9RzD9pݺunTZZ𺀚|Ry+vDRh4YwޱX,&6k֬C8*\\x1a„hkk۷7z#G'$$1b˖-Mq83L%%K]v !TRRfϞ=[XXxy6CfϞ}wPrXtϟ?gꫯӰقms)CC;w<|C ~V%gAq0ǃLLLx<^f$/s̙3gNNjA4!VVV"[:~<Fyzz2L???o޼;v-FeTe8s\bzGc_6Fו8&i3j^M/Iu2hZ)F'+W >|ΝcXf7mjj:mڴO_IO UHMMm} Y>}Ğ4?;;[8]m?~|„ JJJ)))˗/gك& =~;&O266Nw`Z+Ejkk*..VVVDkk}Y7SR4hpʀ)Go߾ݯ_}!li4R!C/xԇAHhlh[ 5|Mh$HMBKz/O OV!!!ϟM~q^jhlyu-d\Jo4O\ hW#ySIIIyyyD G/Z\83mmmЕ+WL'y洴؟yM]`Ν;5kdgg *---*****9t萙rJJJuuu!EPo&rBfڱcGvvv||IN:%ƽEEŹs[.33311q׮]'"meUVyyy=y_~.G#K.%4[[91]wk׮}AffgϾ *++4Gc_fVKkWIv-tZ~ځ޹sӧO666˖-{Ma3gtrrq<""͛`+ǿ_jTm'h 5!~mmm++ N͛9Nv[l111鞞m QDGGoꚙ>}А+++%%%[[۠ bN&d==+VԴhHX`ƍx<ޘ1c444iR|>ȑ##G$~I@EeŊDBhqx;w} w0HeԖƦ_N#MKn>FsvQ'X _+󳰰_vm]]]7+++}||Z 2}9K@ǿ_T^(xN``ܹs&(J@@TJUdu##KXb|E֧O{aviB<O|$_Ũ%tJmfu/`d ⤥rJm 8={(@.м2.@ TEU*UQֆ+ hF}%o@Ј@N)R4Ten:PQPU-ox-^-BLAәhrc%X@ cꫫ몫kzo_޽ Ȏ @媝wkF Xqи")L OKWW+WV* T&^WwǘZ&S_x3O^ HӕB**$u͎;vmh ~6ZtQQQ#GژL4t| SǍRWO1L---q-**g!.шyo< yPYPԔ޿iiN*2r(딟"(XrrN8(J aj* )2b/̛7ob rƍMS*T2#gNNz߾LI 3r9seUbYO'edT۳j++=[nYW%lh4O˥ |>ϧ|>Lf.&`4eLULWp=hjYD5t\>5;&SSD];r.eO4E*sf9L1vW'M*NHP(CWmMI숺;s&СGF&&͘gLLBQT"D0k:Bٶmʺu(&0R-aFJ渽Zf:|70mڠ/ lNV}ݫ\2ieHk\8|򯣦Av'Rp{ͭ49숺܊ٳO

    0鄕ݷꆊfc(FJ3:xJ_3v-z>wժ|~!Ʌ\ lǏ1RNŨh쑱eS0SP2]a@m P( o (++ܾwusL7שּׂs9uYjj11K #Qp++EjE^ù.)u+R IDAT'8~}iOIK:={aܸ/^|"F;%&muߦ:oYw2vgso<15;] ZOUPrܯ2sGP />Ysɬ1*2nk+PZzcHȇ/?1uz669U:ȸԒԆ5 T*[d-EbR5nRfv?p@Q]ФUwoЍT*RP;sɒ1d&/tUm-wĈޑiڿVKgKJg0 yJJ{8; `&ِBem儣 $@x?3 6`SO=r(ّJy޾{TMgo|} &w\\ejZzlff[) q#ZUUi2Z@RTbhE+S…nB7vԠ*tbpz5gw51ivY;**kT`8[MM ,%& 㾏6=lB=_wmM8`3߼A-49Q $Uq#(5s6 !\bb_{7Dg2TU??kd?ի+F&7TqaqWXuq3 rD@xxJppқ7YT*e` ww{ggM)MoɜjW9xw*աLJ?p4w\~4j3`țS"YBdݻ[bm%x/$EEmBV`WR$˗9sodM͛~檲-藕@ Q5) FRq1@sؾnncҒUrk vv&͡'nme`fšUcW)+o PǏ'N0MzzҊ=GG <ݸӧT4lX5krsoi'BƏTv59YUٜy4M=-n/ȁaxbb^xxJXXJTT#{nnbYa5팣cM-P-,.\8lJR:~~/w9 "jk&&z^2>s&5}ի'xpVNXuj.[[܅nL1@"k d䫬y*5<<%$CQQȑ֮t5#Avy/OMI?VOCHض-!D\=ҷ%;4ic)֮uupnݍg9~;C#MI _0 EiԍxZinBMN @|Ta}Ogg7~C4e첓O =Yϫa7뚓Ddô3gtz|Y55?z g=T[˝_`lbd(0OsГCɅ_zǔF9ndBޯ\y…'cagN`yM4su}[ 9/ ްp5AC梅2YIO&U訏յƒ'хң.}w`E!!rMAA둙3,c! z{DHffW_[uK LU^]NIf:R܅n6FKލ1 r°O^N*.&<߳fߍN*G' yadB>5$U&UK^]|͠ݬ I+MhR.'d^}=/663,,%8815XMMi>nn&XF ˝)`f~0gہ';I;xs/=hggBv,մ7_jd2O Mf9z2>WUUiPK77IJN>O[:fD/SnӵY`|30>%,êk]]d뻘X$A| 9aaU|V=o_R2ٗSN/^|d]\vGbճ.D\8H)t?OH;ϩξ>xb? K^HH ֖=W g?Ye tT-\ԡ>)󱸸,CxxJBB°a\\lmlȎNl|=)욺kDdU_gl>|hcZχk 'd7_.KE[gw[! S/>|xYGT 8;یo! ?&3FGjU~l좐UCq;ٱt7_?p@-z1$Gu-1x1`|HHSR f3Ãmt({WW_qs1pt__cz%;^밼(fvXuΫJvz}ey\SOY;**H PUUkf;vl_ggcmos 9v =u_[RE{QCQQu;Xįi2#IJ1>n_…n1KvGr2 b <<%88͛,*2xM84ijEWjm5h}]S޽ɎEd؛o[e&5-\.t5}2?IKKӧq*((زeKdddYY?|';.۵N[w숾PQRQВOC;oIosmmm8pKKK--]vHjjr{ﯬܫW+W\-[ lr|Ç飡1jԨk׮k022l!h+4hсZted>~,>q>>>w)((x𡉉 B!TQQLҥKԡM MM '88+`Ȑ=wXqȢ*CUxjS2|ڭAA˗HUU wٲdA}ZxۑO+ܛD^;d!8m:55E***=ZYYa833A\tI˗/~"h}'99f /_A6a.U㴅Ŗ=7aanpM%rCɎ}^<ҳgҭ[d-^7dȞnwG q.3nAc |Gpp"8c⾊5ҷ@JJW[uuuggGUTxN{NokѣGėbbbZSSpAAAcƌ4hВ%KA6f'0@ת儅}ڵo((jꄼ(T4ltAv}w|}O i7?ffbbY,VKG=׮\@vDxEZݿg O~+`:x<CCCksmmmXXҥK4qSSSz*++._,\g͚aa[nxVYY9((ð:"f7R<2 2 9YYeWF.\kixرb ,kuj7{y)m%W׫SxvOfj˫dV}5/77%D-Isځ h?X]]MxyXZn0`ѣHmQȷC].P2߯mee$RRR "&2%KX9rZ]]}ȑ5dee}&&&Çws3ކw|||tuuN>ihhҦ(à?@d6cajn?bDo%%نauߋ }~&5o/^|/f#GKۺQٛ/SV;kvd@Ï K OUUU:~D33]OsГCɅ_zǔFT p%K>}ZIv4!z=~ɤIɎEЛƱ5{>ЭAQnn˗S^d /0N]]*/&F>@Tz1Scˮ..SXZ$ޛo}%?UuNxu^W+ I pBcqqY Ƈ𔄄0 H Oa0>WkiݞNņߣK-NʮF!w-*OK[)?wo6ag΄Oz[[.bؾLFFGܙnB7Wk? d@aa}Ogg7~CR%T1@<:iIfӍԖ]ru=a$R |X8eʱk]7nt'+ի~~`?8D[}wHIfL0dyQUUKt>YraaƨQ6AL<: A61Ft^pSӧKxӄZ>oD79[bT.lk0>ΫŔ%MAQvv9`$EG ȑ] !6c7^߰гXպ.+U%h1dǎw1Z$4Q$߮͗ǰrªê'&u^d@r߼ Nz$!?RGG}̘>m=]N]j $Q s8צLQ޺%I{ʪ'k(4d2D܅n@AgE F˗\bW]&g^9rGQMf-q>~6eMFY#$z̨=烊h3tT2oVXXӧ ii%ʣFYqLg1/F^=IJ VVk&Y5vX,ukʃ  =ŻfŽvQoi+Risi = @S /R)[;;tlb6}߃/.7|IL8ݚ7ǏUU;*{|oVf)k)ֲpRҀ~{ I+/gGF' 5]\ُkվw3' );FYp`좢ˮ6S<{zQ`4 Mptsf߮ DG]L0cWGVqĉXmvб|-a @*TVּz`|(.9յwF|@mwO6mJg0?{nؑnt;o{{1] oOUV}Zv ldHOBBR1 I W8th/yG|}TtۆՔbW[{eD-S97nW$:ۮ|1_^$OP -dHNddYraaƨQDmIDATuYy0G[ ct32@A##Ǐ M/CbY :ECC!TXX8}t 2@+V 0 c2ddȩLJ,ZoNϟ?mڴׯS|ٳggΜ9s̳g|?..nܹO}?O>sgӥ+V\zugϞ 5c '"sUSS3f BH ?~~zCC޽{\2&&sŊVQi~TKݻwoժUzzz#F 2C__!y@OO!Di0.pQQٳ/[Yyӥ|pJ޽;=s @~5̷2N;vgϞ!6]QFCK/VVV YYY@]@}}}322nzVfkio̙3111.\HA ?ɓ'/_NP\\\V\YVVt6##Ϟ=ѣG.Μ9S^^nee{n)`t`dGii) d< G2@A#y O@dF{ŋ/D͛Gv&YKv]bذadG GG2@Aȣ=u_IENDB`XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp.html0000644001725400016040000001044413273140101016117 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    DOMLSOutput.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMLSOutput.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSOutput
     This interface represents an output destination for data. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.map0000644001725400016040000000046113273140101024720 00000000000000 XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp__dep__incl.md50000644001725400016040000000004013273140077020504 00000000000000dd0decc566a0bf3c11ea28c34af3b922XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp__dep__incl.md50000644001725400016040000000004013273140077021142 00000000000000c301a198bece1b834dc55e9efc2f7ec7XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__incl.map0000644001725400016040000000026113273140100017123 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp_source.html0000644001725400016040000003326613273140077017504 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeList.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNodeList.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODELIST_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNODELIST_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMNode;
    31 
    32 
    45 class CDOM_EXPORT DOMNodeList {
    46 protected:
    47  // -----------------------------------------------------------------------
    48  // Hidden constructors
    49  // -----------------------------------------------------------------------
    54 
    55 private:
    56  // -----------------------------------------------------------------------
    57  // Unimplemented constructors and operators
    58  // -----------------------------------------------------------------------
    61  DOMNodeList(const DOMNodeList &);
    62  DOMNodeList & operator = (const DOMNodeList &);
    64 
    65 public:
    66  // -----------------------------------------------------------------------
    67  // All constructors are hidden, just the destructor is available
    68  // -----------------------------------------------------------------------
    75  virtual ~DOMNodeList() {};
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMNodeList interface
    80  // -----------------------------------------------------------------------
    83  // -----------------------------------------------------------------------
    84  // Getter methods
    85  // -----------------------------------------------------------------------
    98  virtual DOMNode *item(XMLSize_t index) const = 0;
    99 
    106  virtual XMLSize_t getLength() const = 0;
    108 };
    109 
    110 XERCES_CPP_NAMESPACE_END
    111 
    112 #endif
    virtual ~DOMNodeList()
    Destructor.
    Definition: DOMNodeList.hpp:75
    The DOMNodeList interface provides the abstraction of an ordered collection of nodes.
    Definition: DOMNodeList.hpp:45
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMNodeList()
    Definition: DOMNodeList.hpp:52
    XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.map0000644001725400016040000000011513273140100021076 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_6.md50000644001725400016040000000004013273140100015640 000000000000007c1260988a167bbacac23c22affa4368XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__dep__incl.png0000644001725400016040000002140113273140101021432 00000000000000PNG  IHDR wIbKGD IDATxy\G'\xa@}T>}Ϟ=۷oDEE׫nffE{9>>] IBS]]qƾ.ʆAӅBaeeeZZkLLC[[ٳgN*,, # jnn~mbbqcǎ}GGurr266A kkk333{Ippp[E$---==3gݻN/9sFKK+<<|FFF ,`uuuW\A `ܹ3c lwӦM#F8qBWW^^]]]㶶6 B!aCu_ȉ#FUPA3C ֬Y^v@QSSvhѢk7o\p!VL&\rܹsW\  UsssK+++m/򅅅,kΝݢ;w_oڴzŷo޴icǺ`QQÇ|>Ͷf|>lٲ 6\zB"B_mii ]v-_:;;/~Ӛ5k*h A"GT ##@KKKcc#6`0/_DN***EEE/ljjjgg8~xy<^[[[MM͏?8qDMMͶ x'O655EFFӱcO<}h |'Ǐp8Ǐ߽{Z>##?C~~>:@rrr@@IjjjmmmTTTXXXQQQlll{{{HHȺu7mtСvAfO_f,((HHH@n:~[TTU QfAsB B!M$-,,rrr Fnniӆ.^A/^D?[nE7d)SRNhC h?S@ss3Z)zzz:;;]vҤIثFFFK,+W=zTGGFl{{{Ax<JZhѐ!CZZZ*|7N:NflXnˏ9r555eQf _ :::MMME>|EbrG-\PsC2\UUugbb.XJ6dժUO '`̘1_ƶэ:a455=kjjaÆ9sH bGq8P'HOOmo(UԠPa /^;w.dɒ3g`ٳgciӦ=|7p1www333''΃;::BBBO87߼)" .-*t=9bĈ쬬ȎPڵYjB[[H$֢555zjT*h7oL쌍`9{"*СC_|Ş={ݻw|DDDuu_tRl ,8yW>}A ֮.2 hU`ذaW[E߆@3ZZZ;v[E߆@3@ "  hD&׏9R.t:LCrС&45]AgQScMhi)(N9Y|\ ;*P\T|/H>*vs;M Vk`(UUfA]{: "AAk%@ 3goMMBk26pBUfw{޽D"A(DCR~p>fgO:B!?7 \ -.p޽?p)7D" %d2eApZs֬޾d2Q @V4 \9~<$ 8IMXD(D"ΝcgEKXo?tWd2 AufX'ThR^^wL&tu %^%IVVSO,ZͿrUB! 젠#F˫ P~ҵk/pw FWWaBRW@ &&?|X%4 %<~4C2YI$g;kXXb$B ovup͠PSR633P${A۶}&nj]LuBx- ^A HG@5JkQ_[vu[x@ ljag7[Qh~l4"W喳 Od"@D"?. &&8>3kD"0d_O{z.@&Ξ2.vKW(Ǐ B$:{/kBpݾ]F|mgss4|;" Eo߶wu]+nnq𦛂yo'K+.֭OSRMffPثVM?zԡWUU]'FҾH_~&B!~-i2:\n?>9R31ѣUrh9u::lhhMJD7oZ6n<ځ O..IIG}g8*+XmmxQ r[T6>5;o"H2UfgӆK୥=8&93o ߘf11_ e[7 o-D6)-088o-n+)>._/@3| R zUR2s۶utcEd~,}|(R< GzMA3ufk|>dxˑ ,VԢEm"qqwQ(Dkr4C/xŊ27I9p*7EMMmCUb4COy͆ )S bc]y"ٹ.9f &;_ bc*NE{Oxuu%[N+]OIK+8ȇ^U%KUUUw¾{Q&(="ls @o9"f@D '3L*Ctg>p+o 4z+X^W{!҃#oǸq_~-^o隚?&&&+VHX0s]vyyy555޾}m۶iӦ?Тe˖ --;w;wf_UAߗX.;k,|; Veܸql6`PVV^=kd2rIHJJzoB t]ɓ'cvڅb ӯ'@C T*5...&&qqqh||||PPD 6ܹs.]9s:N -ŋ`jjڊ̜8q"F@1cnݺ积OYYYfffjjjgϞEԴyf===###__v@8wɓutt:$UիW R5K{@pww|2+󋏏GwLfrr2Rjjߕ\=&+2۷gׯ%Jt@6\.JuvvBttttrrDz-[4//`+Vܸq666/_,))5kV@@@KKː!ClvmmSdrKKԠŲ()):ujHHvɓ~Z妥޼y#CDP{' ZZZȻρ۷o_F> MMMo޼ChPvZqF,vě7o$ ߹sGOOO::: 555^^^vsskh-hbX{Ů888$$$:88Hlmm"##{2""bɒ%>>>qG vvP8N^^ )))...WnllĪ'HO>Ew+** EKC%޳H5I,5 /\eX=vZ[[>>AAAuuuK.[ZZjllaÆ[IRy<^pp0Yu  ===_ھ}{yyyAA]6n(Q_|ŋ++Ǐe˖qN .5%P(vvv^^^Ϟ={ѷ~bմo߳Kf }y󦵵gv؁T__oiio]paΜ9$m4ڿgEu'..nȐ!7{.HLMMEw[ZZ|||N6a„ݻw/\NƜApѣGGFF:88h4scǎM>{:؈f;v'Ǔzrl٢ڊz„ T*uҤIXWHS566nڴIWWN{{{x<ߣ^ 6Ķeh~S?g=z4zxPWW2eʾ}ڰcN?~\"C8rO+{Z(!R5@ClW!r@ *:w\TV;j QccfV;j Qcc@3@ "  )U H$ͮ\9>ѣʦTVVJDH!!!ΰa[ |BAC|ȟѣG3)S|X.;H~zĈ˗/_|9,?p\7?lr|+Z J`3ni[ DIfhhh}[K.  3\x@(DRS QRRR ѩ /jkVQFT ՜*B!K"22+ Ht))p!%@ 1R oT ee%P(,7@ *nB $$&EDQy3tWWsJJ$䨲{^]͑B(Rf*@ ´4hȿP_}^?? ̼G ]M']%e|k``f;Y3o!%EIHf@D@3@ "  hD4"f@D@3@ "  hD4"f@D@3@ "  hD4"f@D@3@ "  hD4"_yyA񼼼2UQF-XorCbb@PdrWW*}& &@GRRϗ˻ pf@D@3@ " er uSCrAKKkΝx.CCCMM˗WTT(BCCVt:oE~Gfx񢡡!$$$ ˆɓ'kjjΛ7/;;x\ti̙t:gÇMMM555ϟƛ6oެgdd 111'O9rdhhٳgǏ?bĈ={Gݸq?***ի C[[̉'h4//Ayt*"&ٓnNNNuuuDEEh˗/PI7\.Juvv׋W.=bYZZVTTL:5$$Aˍrܨ(7o|>{ʕ-Z妥GR-[VZZ`0BBBeURRR 3p8###333T2eJ\\VӲɓ@pMxvvvHGt ANmhhh<{LEAz*-`0e4^(hΠc43f`dgRVVVfKIDATqqqX?*++'|@ 0ad0UUU趦&BHl[SSuV]C$MLLЍI&auI B 2""bɒ%>>>hXǏlmm"##8fquOO">}+** {"x:eNoЏ@ii)w!ʆ"  ===_pvv̬d'R</88,^]z2g8v;;;pNollǏ1o޼sAuttF@kf0Æ 7o^^^z`ccMtuut7C n777;99 >|͚5= =vX===OOO'5(/ܗ$r>Mv%'' (M7Gz('bF!ʉhD4"H$Rbbb.}}_ @_@K%qf@T8g@D@3@ "  Z4IENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp__dep__incl.map0000644001725400016040000000043613273140100021310 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp_source.html0000644001725400016040000003605713273140077021605 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationList.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMImplementationList.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLIST_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLIST_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMImplementation;
    31 
    32 
    40 class CDOM_EXPORT DOMImplementationList {
    41 protected:
    42  // -----------------------------------------------------------------------
    43  // Hidden constructors
    44  // -----------------------------------------------------------------------
    49 
    50 private:
    51  // -----------------------------------------------------------------------
    52  // Unimplemented constructors and operators
    53  // -----------------------------------------------------------------------
    57  DOMImplementationList & operator = (const DOMImplementationList &);
    59 
    60 public:
    61  // -----------------------------------------------------------------------
    62  // All constructors are hidden, just the destructor is available
    63  // -----------------------------------------------------------------------
    70  virtual ~DOMImplementationList() {};
    72 
    73  // -----------------------------------------------------------------------
    74  // Virtual DOMImplementationList interface
    75  // -----------------------------------------------------------------------
    78  // -----------------------------------------------------------------------
    79  // Getter methods
    80  // -----------------------------------------------------------------------
    93  virtual DOMImplementation *item(XMLSize_t index) const = 0;
    94 
    101  virtual XMLSize_t getLength() const = 0;
    103 
    104  // -----------------------------------------------------------------------
    105  // Non-standard Extension
    106  // -----------------------------------------------------------------------
    117  virtual void release() = 0;
    119 
    120 };
    121 
    122 XERCES_CPP_NAMESPACE_END
    123 
    124 #endif
    The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implemen...
    Definition: DOMImplementationList.hpp:40
    virtual ~DOMImplementationList()
    Destructor.
    Definition: DOMImplementationList.hpp:70
    The DOMImplementation interface provides a number of methods for performing operations that are indep...
    Definition: DOMImplementation.hpp:43
    DOMImplementationList()
    Definition: DOMImplementationList.hpp:47
    XQilla-2.3.4/docs/dom3-api/inherit_graph_29.png0000644001725400016040000000411013273140101016027 00000000000000PNG  IHDR%Dy ~bKGDIDATx[LKǧR)-P)%@P(!FQxCĪ< Fyؐb0`0&hAA!bH% )AX,۞٬v7?ma8af @ 9a_ G" H}$jDb47K o痖#푽/eeefAe^}}oу۩?qY=G" H}/#şH H4;;KNXZZ...{z` j̾OHH`0###06ȗ3t0*#/_h4 ={^~-Hjkkj͛7DW)MlǏ=<<~Mu'9|pSSS@@ʕ+r<>>^ $%%JpцMldՒ6vdssa:@br8X.:;;<==E"----aaa[n {.`0Po4kjjR,kjjajjj}}=q~AJJ:Ry9ݻwl//k׮xlBY`0jkkCBB݋FD ===r{zz`(99y||\TFFF^|YR>}ZPPT*߾}kJ:99ݺukjjΝ;L&SՖP/,,TTTX*qfgg . k߿al6ׯDJ6'Gh4,+##crrX3)EUhJRRR0 ͕r8ϟ?y{{N(Gb P(ǏGDD@eJFxݻwD۲j~~LEhpW<<< .H$kjj}8Rɡ6<>\uԩ/Yb0ǎ{Ftl6Zon߾mNOO+11qttҥKT*9rH{{Jjjj!oΝ۷o!̙3٭r<==]$999(ۜzkkk:b!>$Xc%YYYbX&MOOKR ǰY3nܸpojj򚟟q\ќ={mǎKKK䵲}4 `ܲ  dXBP&є/An{Ihڜ]ve.N@yyY\yyyP61fmNM7oLKKp8zСC۶m)+JJJv|nish4PA C1s?9a_ G" H}/#r$¾XO_|nuB`2)<@"|>w6Ħ#r$¾@Dȑ _IENDB`XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp__incl.png0000644001725400016040000000750513273140100016752 00000000000000PNG  IHDRp!]#abKGDIDATx{Pǟ\(@ĎԃDuFQSRU-iq,mLV[б2rFPƂh2j zXH-\ln.!>}v˻Y, @`Ov'IPO&Z9_yyyyymDȲ۷r___k&{YWWgfddX? \Z9)&A=!LzB0$ǃT*nnnK,ILLQ߽{WRyyyرᐾ%%%,:>55S* k6U_vǧsΕ?~U]]W*TooommĕRBBB&.vg̘!-[vAwwwFS|~vvE"Q```nnn{{7|C ˩P7o\tĕ{zz&.vDbmٲfuuuLL G<oǎur9u+ƍk׮O? 8qhQQQdd֭[֭[qqq6l ;s ٳmf.TkkT*~ddB0H}޽ӧOy?o?~|xxؤ/щbj D"Q[[jXlpX,njj"ۋ/jUVYرÇ߽{ϚKKK``` ==ۻ4111??/ϛ Eڿꫴ4ooow?p@AA5UVVfee}'w!UkhSzOb^f\.ŷnsvv;22rڵBwwwصkח_~f͛X BP(1Cd2'9}իW@oo/iLLLD[o MSf|jii''3f(JJIMy4^'gWWWGGܹs嶴8p >>ʕ+ ELf9s&пˋ`hSL =q…+W2ԩSh:lo``@Pܻw-fU*&fΜNZJ%9 fffر#//wg(嚞 DB6I3nZ>@Rm߾hWSS'&& vr^h=8˕JJjll,,,dׯ/((hlllll=//(77=(((""ΎA*VUUZNrwy'''gvvvJTTt))):nʕ 䔘xСiӦAAA |22=tR;&dtAAAT㋞R+0 ?uuu*hmm~FːϫXlGGmԓ7 zB0 a$p?p2AMBVº{ɿ bٍ}iǧ(n2yo'IPO&A=!LzB0 a$'IPO&A=!LzB0 a$'IPO&A=!LzB0 a$'IPO&A=!LzB0 a$'ILsWXO͛oqww:I4~ѣ֋kں+$8ߙfet1ѱDF.7 A=f"^ ãì@=%8';,/Y,ל93&$d<6%POVӦq`@0oVH$488Hիu^Lv Hss byYfYdji`$'IPO&zjjjڵkט)JIAw駟\nyy9eW(Q,/RLLLWW vr_~X,RdұzܺolTs˖-{ٳg{ 7oT>}:ׯSM6 `Ac#>88xx v0444aU?444Pz~͚57ٯgG=zny… |||`xx8%%M( 3իWryFF׬Ybbb .^(Hx<޼yJJJ`ddĤӧOMFŨʕ+``4}qqɓ'`׌aXwt钹8~3~+]]]QUU`P488h8^YP5)&&&66Ν;aaaMMM>OKK#/^{ڵk>T(+VHNN6R \n__ߑ#GL$$DGG;]#ғ\L: %s'ٳbؤ3z"⣏>p8ч=>r qc/ ~pGG˗/sݲe ٦NRRRr WYYit̙٩MƤ\dVKkkkyz͛׮]KNCCCdΝVA@_ CBBD"QwwxOEI*644x{{4ZǗ,YB_;ٵk̙3t...;wh4؋ gΟ?~…UUU&݇6nH/СC|>UUUdիW;99Fz2p/..vpp_(KMM ͮ?m6gΜ(Brv 1 4Do Ν+~mVkhY zzz:;;֭[£2P*R6i? qĦ@=qvvNHHE|L,'IPO&1R" AƤٙnyn|rvv -  a\?!LzB0 aP9eIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_11.md50000644001725400016040000000004013273140100015714 0000000000000031e2c7b2d90f24060ddac7aa501e7658XQilla-2.3.4/docs/dom3-api/inherit_graph_23.md50000644001725400016040000000004013273140100015717 00000000000000c166c495b58ff46936366610ba51f2b5XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.map0000644001725400016040000000010113273140100017611 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1StDOMNode-members.html0000644001725400016040000001314113273140100021304 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::StDOMNode< T > Member List

    This is the complete list of members for xercesc::StDOMNode< T >, including all inherited members.

    ClearNode()xercesc::StDOMNode< T >inline
    operator T *() const xercesc::StDOMNode< T >inline
    operator!=(T *node) const xercesc::StDOMNode< T >inline
    operator*()xercesc::StDOMNode< T >inline
    operator*() const xercesc::StDOMNode< T >inline
    operator->() const xercesc::StDOMNode< T >inline
    operator=(T *node)xercesc::StDOMNode< T >inline
    operator==(T *node) const xercesc::StDOMNode< T >inline
    StDOMNode(T *node=(T *) 0)xercesc::StDOMNode< T >inline
    StDOMNode(const StDOMNode &stNode)xercesc::StDOMNode< T >inline
    ~StDOMNode()xercesc::StDOMNode< T >inline
    XQilla-2.3.4/docs/dom3-api/dom-basic_8cpp-example.html0000644001725400016040000001110113273140077017305 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    dom-basic.cpp

    This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

    #include <iostream>
    XERCES_CPP_NAMESPACE_USE;
    int main(int argc, char *argv[]) {
    // Initialise Xerces-C and XQilla using XQillaPlatformUtils
    // Get the XQilla DOMImplementation object
    DOMImplementation *xqillaImplementation =
    DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));
    // Make sure the DOM objects are released before we call XQillaPlatformUtils::terminate()
    {
    // Create a DOMDocument
    AutoRelease<DOMDocument> document(xqillaImplementation->createDocument());
    // Parse an XPath 2 expression
    AutoRelease<DOMXPathExpression> expression(document->createExpression(X("1 to 100"), 0));
    // Execute the query
    AutoRelease<DOMXPathResult> result(expression->evaluate(0, DOMXPathResult::ITERATOR_RESULT_TYPE, 0));
    // Iterate over the results, printing them
    while(result->iterateNext()) {
    std::cout << result->getIntegerValue() << std::endl;
    }
    }
    // Terminate Xerces-C and XQilla using XQillaPlatformUtils
    return 0;
    }
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.map0000644001725400016040000000040113273140101023261 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1XMLDeleter-members.html0000644001725400016040000000551113273140077021534 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::XMLDeleter Member List

    This is the complete list of members for xercesc::XMLDeleter, including all inherited members.

    XMLDeleter()xercesc::XMLDeleterinlineprotected
    ~XMLDeleter()xercesc::XMLDeleterinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp_source.html0000644001725400016040000003245113273140077021051 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMEntityReference.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMEntityReference.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMENTITYREFERENCE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMENTITYREFERENCE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    57 class CDOM_EXPORT DOMEntityReference: public DOMNode {
    58 protected:
    59  // -----------------------------------------------------------------------
    60  // Hidden constructors
    61  // -----------------------------------------------------------------------
    65  DOMEntityReference(const DOMEntityReference &other) : DOMNode(other) {}
    67 
    68 private:
    69  // -----------------------------------------------------------------------
    70  // Unimplemented constructors and operators
    71  // -----------------------------------------------------------------------
    74  DOMEntityReference & operator = (const DOMEntityReference &);
    76 
    77 public:
    78  // -----------------------------------------------------------------------
    79  // All constructors are hidden, just the destructor is available
    80  // -----------------------------------------------------------------------
    87  virtual ~DOMEntityReference() {};
    89 
    90 };
    91 
    92 XERCES_CPP_NAMESPACE_END
    93 
    94 #endif
    95 
    96 
    virtual ~DOMEntityReference()
    Destructor.
    Definition: DOMEntityReference.hpp:87
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMEntityReference(const DOMEntityReference &other)
    Definition: DOMEntityReference.hpp:65
    DOMEntityReference objects may be inserted into the structure model when an entity reference is in th...
    Definition: DOMEntityReference.hpp:57
    DOMEntityReference()
    Definition: DOMEntityReference.hpp:64
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMPSVITypeInfo-members.html0000644001725400016040000002025113273140100022347 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMPSVITypeInfo Member List
    XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp_source.html0000644001725400016040000003656313273140077017733 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2Result.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __XPATH2RESULT_HPP
    21 #define __XPATH2RESULT_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    25 #include <xercesc/dom/DOMNode.hpp>
    29 
    37 class XQILLA_API XPath2Result
    38 {
    39 public:
    45  virtual ~XPath2Result() {};
    47 
    70  enum ResultType {
    71  FIRST_RESULT = 100,
    72  ITERATOR_RESULT = 101,
    73  SNAPSHOT_RESULT = 102
    74  };
    76 
    79 
    85  virtual ResultType getResultType() const = 0;
    86 
    91  virtual bool isNode() const = 0;
    92 
    97  virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const = 0;
    98 
    110  virtual double getNumberValue() const = 0;
    111 
    120  virtual int getIntegerValue() const = 0;
    121 
    130  virtual const XMLCh* getStringValue() const = 0;
    131 
    140  virtual bool getBooleanValue() const = 0;
    141 
    150  virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const = 0;
    151 
    156  virtual bool getInvalidIteratorState() const = 0;
    157 
    165  virtual size_t getSnapshotLength() const = 0;
    166 
    177  virtual bool iterateNext() = 0;
    178 
    190  virtual bool snapshotItem(size_t) = 0;
    192 
    202  virtual void release() = 0;
    204 
    205 protected:
    210 private:
    213  XPath2Result(const XPath2Result &);
    214  XPath2Result &operator=(const XPath2Result &);
    216 };
    217 
    218 #endif
    XPath2Result()
    Definition: XPath2Result.hpp:208
    virtual ~XPath2Result()
    Destructor.
    Definition: XPath2Result.hpp:45
    The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within ...
    Definition: XPath2Result.hpp:37
    ResultType
    Definition: XPath2Result.hpp:70
    XQilla-2.3.4/docs/dom3-api/dir_a96227dd5499fecbb186822d7b704430.html0000644001725400016040000000561213273140101020151 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    util Directory Reference
    Directory dependency graph for util:
    util

    Files

    file  PlatformUtils.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentFragment__inherit__graph.md50000644001725400016040000000004013273140100024636 000000000000005d87db6ee409c6402560c0860f4e3625XQilla-2.3.4/docs/dom3-api/DOMError_8hpp_source.html0000644001725400016040000004213713273140077017051 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMError.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMError.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMERROR_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMERROR_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class DOMLocator;
    30 
    31 
    39 class CDOM_EXPORT DOMError
    40 {
    41 protected:
    42  // -----------------------------------------------------------------------
    43  // Hidden constructors
    44  // -----------------------------------------------------------------------
    47  DOMError() {};
    49 
    50 private:
    51  // -----------------------------------------------------------------------
    52  // Unimplemented constructors and operators
    53  // -----------------------------------------------------------------------
    56  DOMError(const DOMError &);
    57  DOMError & operator = (const DOMError &);
    59 
    60 public:
    61  // -----------------------------------------------------------------------
    62  // All constructors are hidden, just the destructor is available
    63  // -----------------------------------------------------------------------
    70  virtual ~DOMError() {};
    72 
    73  // -----------------------------------------------------------------------
    74  // Class types
    75  // -----------------------------------------------------------------------
    100  {
    101  DOM_SEVERITY_WARNING = 1,
    102  DOM_SEVERITY_ERROR = 2,
    103  DOM_SEVERITY_FATAL_ERROR = 3
    104  };
    106 
    107 
    108  // -----------------------------------------------------------------------
    109  // Virtual DOMError interface
    110  // -----------------------------------------------------------------------
    113  // -----------------------------------------------------------------------
    114  // Getter methods
    115  // -----------------------------------------------------------------------
    122  virtual ErrorSeverity getSeverity() const = 0;
    123 
    129  virtual const XMLCh* getMessage() const = 0;
    130 
    136  virtual DOMLocator* getLocation() const = 0;
    137 
    143  virtual void* getRelatedException() const = 0;
    144 
    159  virtual const XMLCh* getType() const = 0;
    160 
    166  virtual void* getRelatedData() const = 0;
    168 
    169 };
    170 
    171 XERCES_CPP_NAMESPACE_END
    172 
    173 #endif
    DOMError is an interface that describes an error.
    Definition: DOMError.hpp:39
    ErrorSeverity
    The severity of the error described by the DOMError.
    Definition: DOMError.hpp:99
    DOMError()
    Definition: DOMError.hpp:47
    virtual ~DOMError()
    Destructor.
    Definition: DOMError.hpp:70
    DOMLocator is an interface that describes a location.
    Definition: DOMLocator.hpp:41
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__dep__incl.map0000644001725400016040000000064213273140101021332 00000000000000 XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__incl.map0000644001725400016040000000220013273140101020236 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp__dep__incl.map0000644001725400016040000000026713273140101022704 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntity-members.html0000644001725400016040000005747013273140100021401 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMEntity Member List

    This is the complete list of members for xercesc::DOMEntity, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMEntity()xercesc::DOMEntityinlineprotected
    DOMEntity(const DOMEntity &other)xercesc::DOMEntityinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getInputEncoding() const =0xercesc::DOMEntitypure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getNotationName() const =0xercesc::DOMEntitypure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getPublicId() const =0xercesc::DOMEntitypure virtual
    getSystemId() const =0xercesc::DOMEntitypure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getXmlEncoding() const =0xercesc::DOMEntitypure virtual
    getXmlVersion() const =0xercesc::DOMEntitypure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMEntity()xercesc::DOMEntityinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp__dep__incl.png0000644001725400016040000000747613273140101021207 00000000000000PNG  IHDRp,CS&bKGDIDATx{P V XGZ[WE2?++k``믿F}so޼o߾ltEx͎Hw5669sf׮]YYYuuugϞ| ަ@ H$IIIoQ(>>>}ݶm۾ B7URRp7ov*BaBBBJJÇsssv:pRF#It:ϟYð~N#رc˖-^^^aaaD={vϞ=l6!$Jud27n܈"ʭvڕC&ގB(((dzzzmGFFZ[[x[n)J r?K/M|+++WرӲ۷[[[/_<66vժUsu;!ku:FᤐO%-,,B[hH$Z~fHdggGl>>>>wQ*^ i]۷otҤԵ`<\?<<<22R^zX,ߖ>|fvfY^$ݸq#$$ VcNsn}}}=jnn>xD"wݻ֭[b|>D=9>%''\b%%%Y[[{yy!.\_=RR Ɵ/7tr|Gdnn msl6m~}JJJh4ZLLP(JJ`[ZZZGGGKKKvv;immmmmmO#PYY̮I1 '9I1t͚5ٕdfff䤧wvvr9shp.^YXQQp9ٽ{h7o?z/o>@`oo?N𠼽_0Z6sN 222zzz,,,>lhhWvssR((BF!vZҙ)>iNDr\!!!SRv#*Ѻnj@{:tJH Ib;:j$$@ H$ PAreR!tݻw  G`Y,OFdii={t_ht4:i,J6B/$i,B?V JJ(7IKqmUU-δI𰪼JFЋ=i 4+W?J5r]tXC I**jzT+*~x9HAk-*QB=i$++k&VSs DN h$*ʥKS>D{_j##@P!M$w4 ~HtwHzt;S<>'1glXV1^؄ 0Ҧwv{ n$@ H$ PIԀ$j@5 I$@ H$ PIԀ$j@5 I$@ H$ PIԀ$j@5 I$@ H$ PIԀ$j@5 I"駟Nc``x:>x<SSS͖?~\NZ8Y+!|-<=D"K䤅h.\yFz$*͟?Mp$Q4==}"$ PIԀ$j̰o)͠K,/n$̤k`:u$ PI/ 23IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathExpression.html0000644001725400016040000003753013273140101021575 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathExpression Class Referenceabstract

    The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...

    #include <DOMXPathExpression.hpp>

    Inheritance diagram for xercesc::DOMXPathExpression:

    Public Member Functions

    Destructor
    virtual ~DOMXPathExpression ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMXPathResultevaluate (const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0
     Evaluates this XPath expression and returns a result. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this DOMXPathExpression is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathExpression ()
     

    Detailed Description

    The DOMXPathExpression interface represents a parsed and resolved XPath expression.

    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMXPathExpression::DOMXPathExpression ( )
    inlineprotected
    virtual xercesc::DOMXPathExpression::~DOMXPathExpression ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMXPathResult* xercesc::DOMXPathExpression::evaluate ( const DOMNode contextNode,
    DOMXPathResult::ResultType  type,
    DOMXPathResult result 
    ) const
    pure virtual

    Evaluates this XPath expression and returns a result.

    Parameters
    contextNodeof type DOMNode The context is context node for the evaluation of this XPath expression. If the XPathEvaluator was obtained by casting the Document then this must be owned by the same document and must be a DOMDocument, DOMElement, DOMAttribute, DOMText, DOMCDATASection, DOMComment, DOMProcessingInstruction, or XPathNamespace. If the context node is a DOMText or a DOMCDATASection, then the context is interpreted as the whole logical text node as seen by XPath, unless the node is empty in which case it may not serve as the XPath context.
    typeIf a specific type is specified, then the result will be coerced to return the specified type relying on XPath conversions and fail if the desired coercion is not possible. This must be one of the type codes of DOMXPathResult.
    resultof type DOMXPathResult* The result specifies a specific result object which may be reused and returned by this method. If this is specified as nullor the implementation does not reuse the specified result, a new result object will be constructed and returned.
    Returns
    DOMXPathResult* The result of the evaluation of the XPath expression.
    Exceptions
    <code>DOMXPathException</code>TYPE_ERR: Raised if the result cannot be converted to return the specified type.
    <code>DOMException</code>WRONG_DOCUMENT_ERR: The DOMNode is from a document that is not supported by the XPathEvaluator that created this DOMXPathExpression. NOT_SUPPORTED_ERR: The DOMNode is not a type permitted as an XPath context node or the request type is not permitted by this DOMXPathExpression.
    virtual void xercesc::DOMXPathExpression::release ( )
    pure virtual

    Called to indicate that this DOMXPathExpression is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    Implemented in XQillaExpression.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp__incl.md50000644001725400016040000000004013273140077021626 000000000000008c87a6296318ca43c49b05a4b876ed30XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp__dep__incl.png0000644001725400016040000001261113273140100017242 00000000000000PNG  IHDRp {bKGD>IDATxiX$JİPʪ(b("zmKaqAD *R}*zm]""`DAZeZr/@5sJd>9ys̙3a@@gHX / pabC`-`477޽[(b-X, ?~ٲeX Qt/k ξ} o>1!LL{g7v.mݺBwﶷ,YLJL&#={ 4}tttyy9522B"iiig֭N< $lⲳM[lٲeKbb"ˋDHG544YVTTgp~~>F+((@× $41BѡRs=pAVV)--B=zёN/Y$!!ѣG7n@888YۋgU__H$L &Ł 裏>*--EVIZ]]'//Y]lYaa!:=_~Ytxvvv&&&Hp۶mO>DbUUUݻf?t4qQQߚ5k;>/5(:?:{H`0ZZZekkAG}ggg4%җpuu0LGɑXF%-++KJJJNNFK.}W*++;wAoQ H$&(JJJlllД555O|q(Ϟ=쬨ػwo{{) +<<ݹsg֭T*U|P Q=zR|m+/_Ц}ppM,?֚d77(a $$YhHDCC#11$$$X,UUU\\\._f`~~ymmnnnhhXPPi&k^~]__]7ۣb|]v l |ۊ@xy933{,}P+qR#o߾3fdffZ2 abEASS?K@ĊB K@01!LL{=K 'O̘1kr7&600PQQG 55n kUe"рl<<3owޜ'VVyyoI||W54jji2'7'~Qwy^^d2i`C·_L Zx| ..B|ZYy`ڴ)ogPPʏ?!I$?Z[/9%@,ZtB@8XU9</" [ݿ >y+DK s/:D"kᶶ x]9I$($5$d)DGy(uK>)> BoFL~%>_ĉڸUlIBFFYBB!Zp966k ='g͚IWdf͢ihL9p bbd&8q_ ?ĩSU9M8jIp2Yxxb-GqClBh&ν{M׮45b-@NYYի;̈3911?ܾ@\;@"A~ffT6tggrIh⸸SSNsp0Z PWWMI ( ip%rf+W|u}Ze;-55s iq&wH d?c򘸹30d޻#LNNNXwTsk-.ǞY?Hk:叾T<sPk9d8CCdPYCC k9Ν+|}mv?֢(~X$R^1k k9'?m׮ 71Z%WAI PU%'%mR&>.QLmgϜs3k-reڴ)A}}C7~k9cӿ޳gڵւzzpAխ;v{pS?k-1gABB@nnŷZ r*fKS/xӸ8? }ɋ)U_}.hZ"8qOgi#|%[yS?|93g283/ twpAZZXQ1w k-'0k.7o3MlkZ˿'%=C( obOr nLQ奜ݾi֭?>L\XXME`ls沲,=88ujpw[[㄄'ZPqǏIarIr&/ntHA'dr(t:]&) 6@& ٣rmSh"ɍcǎ$+.F˫]<"ɉbQ6vƌ2TB2 pabC&&=Đ ###O`C t_sssUVAT__?AN:/2aB %:!{|ަ%...nooxg޼y9;w>|~۽{wzzP(D477WTTYuuuݾ}{޿?;;̙3/_466R}pBŋ.\C? .<CWE"ɌAV#"",Y"O}}}IIIȾ+Wܳg5%%eժUyJ-H 'R&YX,y RZZ/&&&0 Չ+lٲEGGI QȌ=񄞻.o\dĐ}]SS322",+33~uEx񢧧2uꫯ˗gϞMѶo qDSdd'''2ް9sFʻׯ_ORtzDDАP(?22ROOFEFFzF߁ďݻ ᮮ.@GG.EEEzzzȾ555; D===N%XbEmmmii),͛FFFSLqss;rHss3%eZBmmԩS9Dl6յ:66ѣ4-''-77I|k׶TVVΛ7?4nKa⒒*g޽a.&5O$XXX0᫫CIp!58jE0 [[[tX&{ 'NjiiAK%L?HsssdaΜ9<oy… [YYgϞ;2w@UB)`0x<ÇѽlmmfdͭixrJ4x_5//?!s:P[[ԛ ֭BV!rwwGFq"D"q8D$G&Ն###SSSjdJE܍PKm1B:ݍl}ٳ.]zƍڜ+++gg硡!Xrm6KKK4O$f.@RWWW^^nnn#58%I݉ k׮544999ܹ~՝EMh*NB[յ*&&ĉ4ҥK7n033Co߾[paHH,s7ܥocbccc6c}}}vа:xıN<9B-"gΜIRCCCGX N:4::/^|(JJJd!5)왉XV߈!8!g|||_$01!LL{}5ҌIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.png0000644001725400016040000001147613273140101024617 00000000000000PNG  IHDRp::bKGDIDATxyTSG'! a95,)K@"UDdE(o,"E@aQ孈 * "" Yrn#dQsYy{g. @pQ@ / P| $l۶M**NONN﵏?p7ɓ'o44_||r VSUUw 2}$_@EBT$_@EB;)#ן7o^hh(BB077իl6[EE-khhxߺuk}}}^^ ÞH\|9!!!##`ȷaeeNFs^^pM??T$ --FdǏ:tHKK CCC <АD$]]]711Aq655KMMx<^JJJ@@oAߧ)f#$&DKKkկ)jS(===kk4ĉÇS( t;;;&UVVfª?>v?cƌ @ffvuuuMLL"##oݺz(FyWČ3^w+cVdMMͪUB HLɔH$^^^MMM999^^^+VHLLrhmCKM:;;={ JG@X|y]]zX^^ft:DQWW.//G.\XUU=pႃD"Ĕ痕ĐH Xmm \\\ݏ= ظq#`ʕX__e˖c\|-55U,ˏBKK((a.k.WWWy``xܹ˗;vl. ǘ'ؤs8۷X,HJJjllA?~<&&ƍՉ)))?C-% VXq1={B8B NpܞlE011yxO?T>Wvv5kfϞ-J( >O?͙3gڴi|>ǎyyyYYYv555.]:4=L&'(D=pZZZN>]>3 >$1֯__.]4 /..@&<KR<o^^^}NByPQs_QPWWe&$h4Xv-Њ+,Y͞d(㹳ꫯ~嗤$jjj ###@ww7NG-f͚5kpMbrrr|||>኏vyV fff… AK6ʹs皚RRRgС޾w^@`jj:{*Ì ӧO4eRG&b /e<%Ae A.M"ϙ37ԢHȅ r8 ~ %Pźwz2u'}WܗJR\@ES` }.M "IQQT*Sx A@I7ϔ~3NTUI;MK2H/qy:Kgg U/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*/"!*3JӧO[YY3#GM 5_HP sٳgϸëd}I(HΝ;1 *OY[[3tj}}}d2yݺuyyy'O hjj5ktuu_rݻuuu&&& /8<ݽ{G?.d2lI$Uh}}}߿laazj*xKc7GNVEd2WWW???̈*ٳg2鍠HHt.+J/\p8t: UV[ss3zXXXhbb2hnnftyy{zzTUUpd2YT*UhļPQQy&Zɓ'MLLPo+++ `t *rRϳXRHP}ݦAGL&߽{&77Wq uVhh|~S>077oooh4 g_xq[[veee]]Nwppx"HThĚJ衉 ֐LJr (ȎmmLAy1"">zQzzs$WSS+--d͑4=RK,&A' Ơ':UpܹѯoD"Qnn͑nB)..6669q  DDD뇅gwյxݻ G(_~:E"L~ӧO^ ֭[VPPpܹӧOcUmڴի~~~Zrm>|⒞N TUU544JTUUn޼e_/09277WMM?,D"b\.7""B]]x^^^#̑$''̜9WRy桏i4ZOOZ[vvY9oڵںAAA<ABccc2lnn^ZZj_WWFm޼Y  Se$ ])xzz?jhll}W|) ;N|8 ɯ[W[7ӃŤ*ARL@EBT$_@EBT$_Z\=aHK7 | P| ru |IENDB`XQilla-2.3.4/docs/dom3-api/functions_func_0x7e.html0000644001725400016040000003103513273140100016745 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - ~ -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_19.map0000644001725400016040000000045313273140101016025 00000000000000 XQilla-2.3.4/docs/dom3-api/functions_eval.html0000644001725400016040000006532613273140100016110 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - a -

    - b -

    - c -

    - d -

    - e -

    - f -

    - h -

    - i -

    - m -

    - n -

    - o -

    - p -

    - s -

    - t -

    - u -

    - v -

    - w -

    - x -

    XQilla-2.3.4/docs/dom3-api/functions_func_0x6d.html0000644001725400016040000001122313273140100016740 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - m -

    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp_source.html0000644001725400016040000004352213273140077020445 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMCharacterData.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMCharacterData.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMCHARACTERDATA_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMCHARACTERDATA_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    46 class CDOM_EXPORT DOMCharacterData: public DOMNode {
    47 protected:
    48  // -----------------------------------------------------------------------
    49  // Hidden constructors
    50  // -----------------------------------------------------------------------
    54  DOMCharacterData(const DOMCharacterData &other) : DOMNode(other) {}
    56 
    57 private:
    58  // -----------------------------------------------------------------------
    59  // Unimplemented constructors and operators
    60  // -----------------------------------------------------------------------
    63  DOMCharacterData & operator = (const DOMCharacterData &);
    65 
    66 public:
    67  // -----------------------------------------------------------------------
    68  // All constructors are hidden, just the destructor is available
    69  // -----------------------------------------------------------------------
    76  virtual ~DOMCharacterData() {};
    78 
    79  // -----------------------------------------------------------------------
    80  // Virtual DOMCharacterData interface
    81  // -----------------------------------------------------------------------
    84  // -----------------------------------------------------------------------
    85  // Getter methods
    86  // -----------------------------------------------------------------------
    100  virtual const XMLCh * getData() const = 0;
    101 
    110  virtual XMLSize_t getLength() const = 0;
    111 
    126  virtual const XMLCh * substringData(XMLSize_t offset,
    127  XMLSize_t count) const = 0;
    128 
    129  // -----------------------------------------------------------------------
    130  // String methods
    131  // -----------------------------------------------------------------------
    142  virtual void appendData(const XMLCh *arg) = 0;
    143 
    155  virtual void insertData(XMLSize_t offset, const XMLCh *arg) = 0;
    156 
    174  virtual void deleteData(XMLSize_t offset,
    175  XMLSize_t count) = 0;
    176 
    196  virtual void replaceData(XMLSize_t offset,
    197  XMLSize_t count,
    198  const XMLCh *arg) = 0;
    199 
    206  virtual void setData(const XMLCh *data) = 0;
    208 
    209 };
    210 
    211 XERCES_CPP_NAMESPACE_END
    212 
    213 #endif
    214 
    215 
    DOMCharacterData(const DOMCharacterData &other)
    Definition: DOMCharacterData.hpp:54
    DOMCharacterData()
    Definition: DOMCharacterData.hpp:53
    virtual ~DOMCharacterData()
    Destructor.
    Definition: DOMCharacterData.hpp:76
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing cha...
    Definition: DOMCharacterData.hpp:46
    XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__dep__incl.png0000644001725400016040000002170013273140101020533 00000000000000PNG  IHDRe2bKGD IDATxy\8l!(zF]uCATT-(+\-(-V (*RVl ={! S |?199s9sNf&Ʉak@@ Y o^VVFu,:2|pG4xhcP %==ŋvvvT"'Ι3()T , _Ȃ| \trr{jǎ9'򅼨*..&?r򅼘?22r˗/!KK˛7o]iii-:uVCCChhelmmO8r---sss]]]:lnn*,,$LFFƦMVXqyk׮]t 0,%%eݺu-ھ}{FF GG%K;w!W~5k/_ox<]4\ yaff܌466~ij.]_rssO>8q5:::##ɓgϞp8#GTWWGFF>> `Æ >2LccvijjڷoIllGtttmm-~q77z5oܸq-[?;jbb"l6YЕ+WBBB~駬,"I,B^(((̚5 ? ?~:͛7nݪ3b77Ǐ ,@^ZYY !T__޽d2G~[nkN8qԩ #//!t hvQRR:y򤗗א!C766OY[[~!#fbbԩS544&O~zCꫯv3f =<< LMM7nHtVb!<3gNXX؆ ĎBUUU+V  !! CU]]/6 !0s1"''LJL0 nnn%ĚFFF*׺u!C 300 ":+t 92~/^|㵵4}twM)WĚ#F{NvPňm WVV{|())rJ1 KKˣGVVV`0\.~IbkZ[[GEE=y<}4&&ׯ'>;v͛7l6{2 A@/޽;AmذAYYyӦM#Gtss#֭[N(VO MMMf"Ν/qkZ[[>|x.\pww *ͼy|||k A/F ﳳ쪪={222tttF?|ٳg;lyyӽ{-l%B8迸\nee͛7/^c-))9p@aaakkWN:hѢ:$~z޽K.nZeϞ=L&s…K,|***mۑX:G1p>"Ȃ| ,+C E(D4I1= EcX TG! 0h54d44T`(89}3mڈPns]۷oFOF.'ؽ;*DPPih ܽ/-QPڕEWUUgcs,!Id?*)1|HsEE:Bϝkyw׹29qgGC<_feef*3BZ ݾB֭ _ r/ {'^' ҥUUJ cV Y1pbLF>_ a..bJJ) Qݻ6o. ) _A%%7s̙wH4 gmm5A{iGG70Du8_ii.W_x89M?p`EbA|[lS\ȑVVGض;6 ^ |[@YY~ݻpaPN?0;sMI_9Rխ3gZ:kbGzmߺrǎlKu8r!66cٳG=ꨩLu8}^իOM|k,U~FYyTpz%ƒ?7xx.PNJwfu옓|W'#GN|W_)RQo?On%W;۷6l8]^ (~~k,1|֍ދ[lxkz89('("y/zK/'$t2 _t? FFс]?.n/z/b~~ٲT#G _t7UկNtFËAzO㬬Ƈ;:qO}}/H!x:^NPQ/Xy{{S2bPYY .eeeooپ}{]J8x@UM :&i;Y/dA@O>e0B^xXxqii)ɖi4ZQQɚ&&&bYp!\#DIkբ&L6uԟ~&$=Щ^T;_L8q׮]^^^͛7[g---L&ߟxV[[[OOdZXXDGG?zHlG(iVZUVVv޽ϟ?{xx=III={v%* ],#F8|0Tpp;wFeccoߞ>}0ፋ^|--nPHPRR9uTHHӧcbb%dN#ck׮M8QYYd;oAJZZABBBB</---88x#G NMMk.]Zr%x!v)SSSmmгgihhݻ_vݺuZZZ---;w 6iҤ 65>}J&ǃ9w:$&acǎUWW]h@XrrrѣuttZ[[%Thׯ_۷r8??Xa&%%b F LH*:EG@$e$Fҍ+aϋ/ڿh!Bٳgfʔ)q8%%%2|>~XXX(9ŋ9Nbb"BӧO|>BCC'L|捞ӧO1 UVVBðX?˛4iR@@a!;;;o 0GGǹs噙.\ݻ7n2dLllqBaH8ʕ+kjjB?X3::bVWWߺucm;(jCCؠX 233Ίʞ$'L!Ɨaz[Ç9CL]Qx#k׮0,,,lܸqyyy/^6m/^SڸH*mg &ivPb$7Bpٲet:/͉PTT={6>_nhhmHOO0 ?uuu;v0443olٲsN bccϟ̧1cTVV޺u_-r\:dllGaӻsa?Chh(`$v޽{Hiffv9b??cm;(;Vŋ:Kʞ/2220sFӚsss6z褤$|իWr"bY $MJƷ吏;w.==ݻ.]JNN}MOO%*))XYYM<9&&FZ!D7vO>eggOq&$$`۷L&=|=555~$@ 9r$ؘ1cBt:&))ӧOovttݢ`dt,Ěfff*cǎA>r.;;;PoU퀮v\|@ Y/dA%"%t ,.##c]LQTx S|!Ubb'h[^^^r/$y[^^#)EE+=dW>Ch'!_+ټycsNbbiut( *SI\tՁ@%8@ Y/dA@ Y/dA@ Y/dA@ Y/dA@ Y/dA@ Y/dA@ Y/dA@ Y/d1(۷o) olm-:͜9(@D0m;88\pU Q蛨<:/^), _Ȃ| 䋢"&qMuVTT}MNܱcQ aXjjj}qq15N : rʕ+WL !"%%b F( ;fjj6}{G2N"]6qDeee&6QF}YYYxymmu봴 |}}[ZZB4ԩSڡgϞ522ػw/ݻw]\\N啛64ccA%''=ZGG˫UbaWT:ڒڵktuu0 IJJ~BNRVV&EWttt;wnqqq^^YPPa!fBvvv'** !'M>_^^h"!/^pP,XPPPill$Px"ctiIDAT ^/jjj ͉W˸qbbb gΜ/Z[[_~ ߿WĨQ6rtz~~>^dllaB(770.+,lXXBHUUTGt j^^^ŋ e+[BHSS˗xIIIQ\v JJJVVV'O!i ~A 9/466.++×Bbˢ|}}+**6n6$FA/_3f -P;vl޼y>>>x z9Q˗[hnn͍ ʉ9| b xݺuϞ=C1Lgg/^#R ~@*((B(!B(xzzݾ}ի!??䪪Ԁٍr\%%@P}}hwwwۇRTT*--߳g#AAAEEů!fdu֢]v999( ~oM0bve&.ldd:}#/0 ?L*UUU/999/T[[[TTTee1H$dU*U}}}~~' O?aڵ/ה/ѐ|xM=Lz0>;*ЛȝqmV+ p8tɅ?bǮ &=Lz0 `$'I@O&=Lz0 `$'I@O&=Lz0 `$'I@O&=Lz0 `$'I@O&泥?׿g̰O88X)4~ow**jMAO@'8xULT/=3E@ hhhU'f5fM9s3)=i%4(#_x&'bs9odDN+']- 9Zy4=dtzgd d Г.|ޒ%"J#3 4om974~~b6!Vo;C4-n=Zʍ3w,s{zzn߾ ;Fab2盹MJ "<|NO* sNxTΥKb}`T*fDLn?~<'I@O&=L21555d~-sI^VVfbbRWW*bӣAQQQe++]vis_`'|ݍRRR&իW;::Z[[ r… q$=z~bb{1 =$& TccjIwJ5o޼͛7188ʢ~Pcc#yV٣>>ܽ{ݻT ONNN]]]ǏϜ9!444c{{{@cǎ!Y.],JSRR좣ɋO !TQQ!\3BôO>5772e 5K"N4(wIaaa~~~ZZZAAAaa &,+!!ٳڡkm^pA$Y[[FYY٬YARRJ5W$Tqs~촷~:6~W>s… wލ/kϩsνsN]]ݒ%Ko߮ͫ4++#//Ӻ_dyL#N{nо}W:4nq㆕YmmRA[N.>}_EUV544\vM$u+As~z=uuu BXLo|Ewwwߝ;w5k?דeM/LfllեV{{{GFFd2eDcjuPP͎KOzmmRAIR FFFp_ 8qH$5:aFOA|l6ѣGR=KKK^pܺ:v4rJXXs紹2#nhhbKK˗/s҉AcǎyxxL&PCC/܂RZ.Kkl 'PKKKffmH#'?k׮a;^8::677c۷߯KT'OdLF?Y0Bm<ޞ啒ٳ f`A|w{njM͵#B !P5iddw޽2lԩ؞\[[dɒ-[P/X\WWWWWlٲM6iR*\.ԩSO>R*FbszooIESS()u#&q=?baa?xy $'I@O^dr B LlH$FS0} `$'I@O+/ohIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationRegistry.html0000644001725400016040000002301613273140100023200 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationRegistry Class Reference

    #include <DOMImplementationRegistry.hpp>

    Static Public Member Functions

    Functions introduced in DOM Level 3
    static DOMImplementationgetDOMImplementation (const XMLCh *features)
     Return the first registered implementation that has the desired features, or null if none is found. More...
     
    static DOMImplementationListgetDOMImplementationList (const XMLCh *features)
     Return the list of registered implementation that have the desired features. More...
     
    static void addSource (DOMImplementationSource *source)
     Register an implementation. More...
     

    Member Function Documentation

    static void xercesc::DOMImplementationRegistry::addSource ( DOMImplementationSource source)
    static

    Register an implementation.

    Parameters
    sourceA DOMImplementation Source object to be added to the registry. The registry does NOT adopt the source object. Users still own it.
    Since
    DOM Level 3
    static DOMImplementation* xercesc::DOMImplementationRegistry::getDOMImplementation ( const XMLCh *  features)
    static

    Return the first registered implementation that has the desired features, or null if none is found.

    Parameters
    featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
    Returns
    An implementation that has the desired features, or null if this source has none.
    Since
    DOM Level 3
    static DOMImplementationList* xercesc::DOMImplementationRegistry::getDOMImplementationList ( const XMLCh *  features)
    static

    Return the list of registered implementation that have the desired features.

    Parameters
    featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
    Returns
    A DOMImplementationList object that contains the DOMImplementation that have the desired features
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.map0000644001725400016040000000041213273140101025206 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMErrorHandler.html0000644001725400016040000002114313273140100021050 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMErrorHandler Class Referenceabstract

    Basic interface for DOM error handlers. More...

    #include <DOMErrorHandler.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMErrorHandler ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual bool handleError (const DOMError &domError)=0
     This method is called on the error handler when an error occurs. More...
     

    Protected Member Functions

    Hidden constructors
     DOMErrorHandler ()
     

    Detailed Description

    Basic interface for DOM error handlers.

    DOMErrorHandler is a callback interface that the DOM implementation can call when reporting errors that happens while processing XML data, or when doing some other processing (e.g. validating a document).

    The application that is using the DOM implementation is expected to implement this interface.

    See Also
    DOMLSParser::getDomConfig
    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMErrorHandler::DOMErrorHandler ( )
    inlineprotected
    virtual xercesc::DOMErrorHandler::~DOMErrorHandler ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual bool xercesc::DOMErrorHandler::handleError ( const DOMError domError)
    pure virtual

    This method is called on the error handler when an error occurs.

    If an exception is thrown from this method, it is considered to be equivalent of returning true.

    Parameters
    domErrorThe error object that describes the error, this object may be reused by the DOM implementation across multiple calls to the handleError method.
    Returns
    If the handleError method returns true the DOM implementation should continue as if the error didn't happen when possible, if the method returns false then the DOM implementation should stop the current processing when possible.
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNode__inherit__graph.md50000644001725400016040000000004013273140100022261 000000000000001a1835ad8359c38943823a01b9725d0cXQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp__incl.md50000644001725400016040000000004013273140077016606 00000000000000ac242e98740f5a14505ca0055cef72e2XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp_source.html0000644001725400016040000006751713273140077017362 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMElement.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMElement.hpp 792236 2009-07-08 17:22:35Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMELEMENT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMELEMENT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    31 class DOMAttr;
    32 class DOMNodeList;
    33 class DOMTypeInfo;
    34 
    35 
    66 class CDOM_EXPORT DOMElement: public DOMNode {
    67 protected:
    68  // -----------------------------------------------------------------------
    69  // Hidden constructors
    70  // -----------------------------------------------------------------------
    74  DOMElement(const DOMElement &other) : DOMNode(other) {}
    76 
    77 private:
    78  // -----------------------------------------------------------------------
    79  // Unimplemented constructors and operators
    80  // -----------------------------------------------------------------------
    83  DOMElement & operator = (const DOMElement &);
    85 
    86 public:
    87  // -----------------------------------------------------------------------
    88  // All constructors are hidden, just the destructor is available
    89  // -----------------------------------------------------------------------
    96  virtual ~DOMElement() {};
    98 
    99  // -----------------------------------------------------------------------
    100  // Virtual DOMElement interface
    101  // -----------------------------------------------------------------------
    104  // -----------------------------------------------------------------------
    105  // Getter methods
    106  // -----------------------------------------------------------------------
    116  virtual const XMLCh * getTagName() const = 0;
    117 
    126  virtual const XMLCh * getAttribute(const XMLCh *name) const = 0;
    127 
    136  virtual DOMAttr * getAttributeNode(const XMLCh *name) const = 0;
    137 
    148  virtual DOMNodeList * getElementsByTagName(const XMLCh *name) const = 0;
    149 
    150  // -----------------------------------------------------------------------
    151  // Setter methods
    152  // -----------------------------------------------------------------------
    175  virtual void setAttribute(const XMLCh *name,
    176  const XMLCh *value) = 0;
    197  virtual DOMAttr * setAttributeNode(DOMAttr *newAttr) = 0;
    198 
    215  virtual DOMAttr * removeAttributeNode(DOMAttr *oldAttr) = 0;
    216 
    230  virtual void removeAttribute(const XMLCh *name) = 0;
    232 
    246  virtual const XMLCh * getAttributeNS(const XMLCh *namespaceURI,
    247  const XMLCh *localName) const = 0;
    248 
    288  virtual void setAttributeNS(const XMLCh *namespaceURI,
    289  const XMLCh *qualifiedName, const XMLCh *value) = 0;
    290 
    305  virtual void removeAttributeNS(const XMLCh *namespaceURI,
    306  const XMLCh *localName) = 0;
    307 
    319  virtual DOMAttr * getAttributeNodeNS(const XMLCh *namespaceURI,
    320  const XMLCh *localName) const = 0;
    321 
    343  virtual DOMAttr * setAttributeNodeNS(DOMAttr *newAttr) = 0;
    344 
    360  virtual DOMNodeList * getElementsByTagNameNS(const XMLCh *namespaceURI,
    361  const XMLCh *localName) const = 0;
    362 
    373  virtual bool hasAttribute(const XMLCh *name) const = 0;
    374 
    387  virtual bool hasAttributeNS(const XMLCh *namespaceURI,
    388  const XMLCh *localName) const = 0;
    390 
    393 
    414  virtual void setIdAttribute(const XMLCh* name, bool isId) = 0;
    415 
    416 
    435  virtual void setIdAttributeNS(const XMLCh* namespaceURI, const XMLCh* localName, bool isId) = 0;
    436 
    437 
    438 
    456  virtual void setIdAttributeNode(const DOMAttr *idAttr, bool isId) = 0;
    457 
    458 
    459 
    466  virtual const DOMTypeInfo* getSchemaTypeInfo() const = 0;
    467 
    469 
    470  // -----------------------------------------------------------------------
    471  // DOMElementTraversal interface
    472  // -----------------------------------------------------------------------
    475  // -----------------------------------------------------------------------
    476  // Getter methods
    477  // -----------------------------------------------------------------------
    484  virtual DOMElement * getFirstElementChild() const = 0;
    485 
    492  virtual DOMElement * getLastElementChild() const = 0;
    493 
    500  virtual DOMElement * getPreviousElementSibling() const = 0;
    501 
    508  virtual DOMElement * getNextElementSibling() const = 0;
    509 
    519  virtual XMLSize_t getChildElementCount() const = 0;
    521 };
    522 
    523 XERCES_CPP_NAMESPACE_END
    524 
    525 #endif
    526 
    527 
    528 
    The DOMNodeList interface provides the abstraction of an ordered collection of nodes.
    Definition: DOMNodeList.hpp:45
    DOMElement(const DOMElement &other)
    Definition: DOMElement.hpp:74
    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the sche...
    Definition: DOMTypeInfo.hpp:35
    virtual ~DOMElement()
    Destructor.
    Definition: DOMElement.hpp:96
    DOMElement()
    Definition: DOMElement.hpp:73
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    The DOMAttr class refers to an attribute of an XML element.
    Definition: DOMAttr.hpp:57
    XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp.html0000644001725400016040000001164213273140101016620 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMPSVITypeInfo.hpp File Reference
    #include <xercesc/util/XMLString.hpp>
    Include dependency graph for DOMPSVITypeInfo.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMPSVITypeInfo
     The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__dep__incl.md50000644001725400016040000000004013273140077020304 00000000000000ffd116dc2e72a0969786da1a67356758XQilla-2.3.4/docs/dom3-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.png0000644001725400016040000000531013273140101021101 00000000000000PNG  IHDRebKGD }IDATxLw˵b68 ZX# unSn3 @w 6="2qnù0jEܵVv.=vPgR/|?_yJ-y(hB@P6Є& 4l eM(hB@P6Є&KG V3fݻO~S\.%2rkx0G~4e3"#8P,qW>hB@P6Є& 4l>vѳoݺj5(;sՇwww e632֬yɯ7lجPd s**>r){px9o/1ԩW^IHaO7(h̙'u¸BhZw͜9;<eXtl6O3쓧jǃGsXm'O O=M<'ç<+WAl eM(hB@P6Є& 4l eM(hB@P6Є& 4l eM#)SL&XMMMxx81պe˖I&nٲjvvvr邃O8cǎ']͛jg1ƴZy$IHHȡCc6m]C6&f^Pdcҥ &T' vHaanZs=uq1ƊϞ=?+_XXXUUԤh9ѱk.xOIIٰaCOOy/..rf6ii){6oޞn6KeeU--MH}}cggGa!f#lؾ}t:]||\.+++KJJM&JJeCC0T*,YRSSsNT:whg,nH$iii&iرCNՄ+>Xi&dR^駗h45۶=[12*U\oy\ 8㸥Kvww fb0a$"""))٬֩S6778>7Ι3uŊӧ}|~b ߮:<tVN4KZP˗{o=e333kjj;jl^7,_t5k䴷gddzg8h4o߶X,~~~Φj%'k_~mZD"_??Z&??۷n0(\5{8Oҹeee7nP(*j1117n?ʕ+Jի(l-[|BBž={$IUUB0 !!!jZ"8>*/Okx≐ X,xogQZe2.O>]j̅Ow#eM(hB@P6Є& 4l eM(hB@P6Є& 4l eM(hO1y"?+<'Ui8 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDeallocate< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     mmgr_ (mmgr)
     
     AutoDeallocate (TYPE *p, xercesc::MemoryManager *mmgr)
     
     ~AutoDeallocate ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Public Attributes

     __pad0__: p_(0)
     

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoDeallocate< TYPE >::AutoDeallocate ( TYPE *  p,
    xercesc::MemoryManager mmgr 
    )
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::~AutoDeallocate ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::mmgr_ ( mmgr  )
    inline
    template<class TYPE>
    AutoDeallocate< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoDeallocate< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoDeallocate< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoDeallocate< TYPE >::swap ( TYPE *  p)
    inline

    Member Data Documentation

    template<class TYPE>
    AutoDeallocate< TYPE >::__pad0__

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentFragment-members.html0000644001725400016040000005336213273140100023363 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentFragment Member List

    This is the complete list of members for xercesc::DOMDocumentFragment, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMDocumentFragment()xercesc::DOMDocumentFragmentinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMDocumentFragment()xercesc::DOMDocumentFragmentinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/nav_h.png0000644001725400016040000000014213273140077014002 00000000000000PNG  IHDR ,@)IDATxA @BQۛТ) ) aܿoRlIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.md50000644001725400016040000000004013273140100023152 00000000000000f1e878f1ae411921542f800949c0cc2bXQilla-2.3.4/docs/dom3-api/DOMLSException_8cpp__incl.png0000644001725400016040000006264213273140100017542 00000000000000PNG  IHDR<P2bKGD IDATxg@WR&EP@hzc/ ]#[oT,KDT, (J ims?{n`AD]Os<3;oza޽sҥQ+Y|G"|z[OOo޼y Z$- p꫘Ǩ(zP5uԨ(ÇGGGK_}xaÆ5܅K cXXXM>|VVVFuִiӪb'<<<&NX^^NWD4iҤI>,rrrFL6mҤI .$L<BWo۶m„ #Fܼys_}ٳgk'7-l@ ih o޼!K~Ieff=zz5!"..>kxqqqnnnaaaVWWW!JJJ֮]u{ݻ7+++44sss9{'N.] ܺuǏO>}ABȅ j?>|xgΜ|B!ǓQ}ic"%(=z/"W!TWW9sҒ={VVV>?|͛7fffFrwwWWWÈ#"##'MiwYbEHHѣGsrr F1cƌM.];OOOlٲ={˫: ztٳg8p`ܹgСѣG/_~%ٳ믿*ҥK80|uu#Gzyywvջwo")=Va}eđ>Vܹsx;ar;mB$}PBGG/dCD- I 4~ˆNZ`5$-jHZՐ,::ࣼ| ifff<c:RSk7@^촴lKKP@q4/ C޽.==th:yegڶ:pOvִ H{>ҷo(f,ѣ?sgĉ~P(Vhw`@df-ZEΚ5bRuTƍɨźՆ;jNP|f@Kf,=ߖԈ>|wh裖TFZTDYYU.=5kȆ _sFkCnE;TUhQHe`^ϑ#BO;5p-0&KnMsg㨨d,!C޼߽[: #-J,'d̵k={a:"9cW>ߵkmlFZյkFURRyڲ9s3c!~}X,=zgp=僑S]-ᇫǎss}{6LG~"o{ťΝS t%Y֢E!U3ٹ|?H;%a0= @iP|﫯~47׿y3@2BgݹϺLvt@ `@9}.ljj,]HkDt>(h!iPi-- o'NL</MHb ZMh˖+Ǐwuu td:D wi;#6B^IIy deMt8_KW=u̘L,;v^--_ !ߗn?cƱ+UU #-S\\lٙ۷_͟?bŊ\#j!WįXnj.(Ȼ{w @.$-YrSۿk@[ii99%KpY`?$ 3~Xǝ;k33$y@}65c:"`V,Z(ŋ5kϙ3phQhiiS?\^ I 7-ښ<8ƘpآJucݶ][[HZTVVjUKOgaWg}kB@9CCi={Z20I c2- 9ҁp۲eN߿toqrvI bwvLL2Qu-[i>/33}#,^v헳gpTEBrrJ'Mt8Bkמ31i{'3ﻺ:mꦫtDpHZZ}M? kv6m,oNkjտ b!ih Ϟe-\RZZgTggu}}GX1^PaHZ^A ٷϫC߽PuTƍɈ@!(PAA7Y˖}5/))oѢ̢t8(tӜ:1*uС_|kw==m#愤ԈlB?*0MGOj '8Жp ihfIIy deMt8KQQa7o9sȆ _au>j@МcW:u ]|׮1f:XHZGqqŲegn~5>˼$'Y3~ΜLi&cPeeÆm+/dS81rjLEu<=J$mۮ|fȐoH(/#Of`HEdeuTD$}}NNQQX<.aa >1bۯ:t޽{"@#az@c9sNPi^޽U|~բE/^`իW_t֬!?y%iVզ혎QK^^^MxjzYwӰڛΞ}~Ekk7oJE"1!`s`/Lx?-;S]-&"$..} +W"cQ S'X!"ѣ34 I 8޽$P\"FB&矼/sblDB}W0Grr;f,ۥc+((>|[iiD"feexf:#@0P`A!s{H?y۷Q(jѢ !D$ddmz@АݻOP(NWMI$?|`AJK= ŒcݽO aM4iD+H8ҫر=? SBԈ1wq9f'={ZRɷnqE^^)!Bݻ=<=2?$-@߿?rHHt bh&ԤVWK$L(YYYߏr.{4<oL455 tdxLDΝc:(=ڻwo쪦]v;vl)3+--m0|<$-_LyGM555qRh=c`5$-jHZՐ!iԩOAAl^zm۶_~[n>Ftҥܱcr8!߿smڴҥƍ##=Rx3g|o57X뫤?}ㅇK###544?Nz+ MI |fgg8qݻwGeee}ݾ}_zSN3F,ӟ={&UIIɽ{nɒ%qqqǎ >JMM522W\c\tiĉr?j7H7O׬YG_إ .ܸqcϞ=jMqrAظC#Fx񢍍 7o666u떋K׮]'Oɓ'NF-˗/6.]اOccC۷˵܇_622ڶm:q ggg56_nجZlŊjMqrAMpϟ5 6p\iPGwwsI籜?ͭ.ڵkwAСC322nre Bș3gvZQQ!6nheeell##P( 055511  nݺ 8B'Es޽{7c ###KKKz9uꔃCw!77nJYS { {Ig֭[VVVэ.!W\qttҲ !UiF n JIB444NEQkAAA&񇩩)СӧO)zvaatuwNQnaa9f̘;w_oG>>>ӧO355}1EQ;w޽{BB Oܾ}kfffBBB>}VZLqvvNJJ۴i]H75jׯzi&:077GBBHaaa*l jVTSձc޾}{ӦM.555>{1W^^^Wy_tRV"lٲEiq =zQQQvvvu/]wi@]HZ@IˣGm-ZzjBCCnj#Ow{ED͛7у:uJL}xII[n.\_|)ݶͥzM߄%$$Hό[^@rw.\A}EыVa}_N '-uO5X]]}׮]%%%L,յjj"mNH$&Lr޲۴˸~q C{DQӧ&- J@`z4]rr-!D__C*;99Itww(1j***Ξ=K0`֬Y#@!̼y^x`$##K.äIt333NcƌIKK˥冗/'IkBdBWPSoN jRY']ܹs'&&rذaWSSۼ\( 'nSNEGG߾}󑑑e,WWA9|u=u>AU I 4EQ/6o,}!b...Ғ=x **=믿5Kp8Q :pѣ/_N?mdd$|JJJbbbrDŽ$֭.SSS.Jk z}^]r10&U:kwQUU%HËgϞ_m~uˌB_'9999Z߼ysΡCnܸWAq]ũshmm iW^ɍSeRP HZܽ{wҤIiii~-ц ޾};jԨׯ'''_xqr711s)]]]k׮>|ӳyyyD2k֬%K9s͛W\!L6mڵŋKWOXYd0dHZ@eԓpd^-4 PYRSssjCt52m 6["H(W׾MT[ߺPW纸d$h$-ʜkhdKx<5g::L I 6m4\\zs%b1`H𡐴4I(HlFc{Tmw2ǝ0w crHZ@ũs'NCē&anAo>BҾΠALI lB}m &+XPbmo.- g:erǍt pzXٳLGĸv::L"""&Ot`E9bwws1^G$1FX I `5$-(3gάUpe:u)((YQQЫWmo֭uK.7vXRkRv#}@rҥ'*t>>qӧϻw}kէN3fX,+?{Lے{vD\V -55Ȉ_r:PRHZ@QnܸwbĈ/^ٻw/͛oݺҵkɓ'?y$==ĉtѣG˾hÆ ޹f?D")**mۦqe Bș3gvZQQA &&&Bt-++7ZYYHG*"\rQKK&$$"6/,,iӦX,޹sg׮]۶mg=~ݻ3fYZZWWWB8mҹsg==mp8Ͽvchh \N@@@hh(# ϻ5$w;󑑑ݺu311󫩩8p !NdwN:о};v ƍvvv}Tn{(wwwwwV>}z^^Ǐ۷fff&$$gժUɄc޾}{ӦMݻwOHHxkU^^ycǎx;wm~cbbr…7o\vܜ꼼F넄=zlڴ(B'&L29rRXX([rrrSE'ajjJ;tS޽{]XX('!$>>;μsRRRLLݦMBv}ͭѣZH?~<Ϗ[*l"5\@(F&-%%%7vTTT޽քuvӗ/_J*..VWWߵkWIID")++5wuu-..(k׮'O?BMLL /\`ggGQ!$..(@Pk%>~UUUD" /..={_~Y\\,]\\N:>ŋSSS.J~G'ۺ(:t_|Ayf!۷o4YnqHZTD"5k֒%KΜ9s+W'O^zuFFFBBKPPliӦ]611111qp8|>_ kkkm9az?˻~ !~~~iii֭zVPPsI&}G6lxQ_|XXXȎAq\WWW__޹Nr!]tҔ5kx{{Ӆ岽) .--mTn!448YӲ^z .^hffF/3g4000447o^EE"jsss===OOϒn+lmm544###6ƍF%vigg3h ziӦ-[2Z/_-e';vϗP^^|=zhkkw}˖-vM U^/ܓsH`kkk##%KTUU R^Syiթ†/05-Uʔ)S!Νc:()))]ti_:6!F_- ՐvSF"hLS0` FZՐ!iVCXt(\.ٳ@؈3RSSr[k55-}++|-ÿu{{6d:.ǩӦ4hѣ344Xday!ik#G:8d/I (;w=ؿߛSgvc#!ier˹sO|EUE /Mի- 2jj |($-._~xq_ tSlb񐴀x1nSs[+cifxx/$-vOǬXqnk׎g:E @<\jg,0P`#G7o7LҢ0 I Mt, Atkk?i֬!L< @+Xg׮{3>c:v NHZE(ڼrpݻNҏpX / i(jK'N<<]]2 HZ(ZBhC|ƍsd:ePyHZyb?…ғp^@U!iŒo=ctg:P=HZIBxѢ[^<9{ȐLR0*I 0F(ϟݻ>c:ՄPHZh޼cbRNurt8/3g<}ڷOkiE0I Jϟ=;WLJahQ5ӧ'%充-tp0c:/@󫼼de-֭ h!G޾凇/٘p@ ;!iPXXqܹ:1^Uyx _he?+ K i{x% ;tc:h 䔸TW;r 0I (JVVmΞoht8l0- I (DjjA##ݳg04? @A/%孻ڝ93___p@0YRRޔ);u2 ۶@ (hN9SڵCH\M`h6 YSYZZLL 4#$->G ;zt2/'y/Op@9x yx]P8f ټyX@EE;kߝ; +̙g<.(i^Q!o<CMtJšmsGC$lz%qj=zX:5}{Fb6|hȧ|ۑ399X,y2ewZZA,>؅ -^:o@77$=TX,SPwqK is#?SXKc!ԛDw؂q[`M |_~yzo|ϙ%<<<<<(#1;ͺ0CB(P!ݺUpr;ut J=X+W[t ӱ@c?zhРALҐ= E"D‘Ho#I$DDM,ń˕0oktI&!i iF uロ8w0c3hРs1(7^f!i3-[&͜9XAcoE1ucI ԋM"g)Z)$- EQ_?OW׾LrPvmDH#G#c9sVKIIWK7j5?~|ZZZ ([WWGRIIIihsj%˖9u*槟ft8\tiĉr?JMM522W\pyݻv͛SN|)shŒo9 2wذnLэ7{!D")**mpscc:B̎=jii]*BU4Z- ž?k?Fz\|¢r̙]VTTBBa@@I@@P(g+ݺu*::zƍVVV>>>޽V!ʕ+ZZZ666!!!H$yaaN6mdgFIHS&˥-z꧟~mffF ]nB޽{7c ###KKKjsqccm۶tYOOo{hua]7nܰ300 '22[n&&&~~~555r ((J ͜yvŃL|||Ogjjcp }YjUrr2!dرo޴iS?>`Zkjj>|877رc<|Νr?~<$$(/PBis!eee|>?%%e}544f͚Jy.h^^^FzuBBB=6m${B !|>?882e>BHaa!Rr~% sXK$?GDD=͝bbb1*|B {o5AEQ55BݺtcȤQ>77ގݻ7}@QTn.\@KvVv*))H$eeeb殮TSisd:>lذZAMMͫWbݻwE pD .ɞǸ8rm&'-ra/MQX,=ixaaauc \uva@Ӧ}$̙NNL ן7oދ/,X -LOO7335f[{{{BHFFF.]I&Ν;111Æ BVxԿ3m.Attl} $'''O6|XlkkKhgg-{Bhm۶%ږ{,<.BsX9!Gloo/Yn!k!ii*+>>G_|O[b1PVVցF|ri$&&.~VUUU$</յ60a}}}B/'5z.QSS#4446nH)++ uuu??uyyy5/ڌ3,Yrմ[ny{{hjjJ+whr!!$88N.]fCSҀJK+bo^'X@QezE]x̌^gΜi```hh8o޼ uzzz%%%tyVEjhhGFFm.ƍ'ؖ-[mmm###~Buuu: ?6'udbϞ=۷ر===MLLvA+..6mٲe˪jUQP(ܱcGn臀]>? ]9|ot`kkk##%KHcUbM 0C5zR5ʩS/Ɉp@QLB9wӁRRRtRyp 咭QaaY[2@C:oߖyx ő~ffLҮ];__.o޼8qX,X@>|1,.qs RW熇/25c:FAZdfj^Դ4V' [о|$-/99-c T܋9t1 r @"JJj Ay y ۷UmڶUWtGME==ua{2WGKkdiip454L54M9N^!B*[55=UUS׋,=QIEyy,EK55DwA@F(|+)#c<E%rT,.K 333SD"x,Z;6KK =Dϟ<}YpLSk''O>1p8蚢Sblܾ=SUD/uڽw[[ݻ=;*̢?L믌/b##>}:cԩw쒌Œ⬬rSSv;Z[ZY226AOMM!)@-HZTӓ'? h{LMMB&$d?yIjBBVMm[-{{mԩg IDAT^bExLLW#-ܻP(~͓'i YiE\c;aټY@ -,((7RSߖBչtcmm(nk#FMSW2/rccbb^xj66&׹kWS %IN|m5kkݻ=zj~k(?7nԮ];܇b]IcBB֓'iiB]]MHKK+ez#;D,B45y:Jft1mFCACҢj{=t8XEO7BԴcG:Q۷#w/_Y.^yVZZѽ=l@[c-Lu0?_+INίB44xffe:w6nEuDE;{Kh<75mGrtJC+?N+(5k s>j˖+NŌI`>X^IZJJDBewׯs^V|;,+X"H=2s @네EE\dI瀭[Xx'lr>} u_X 4Uyy˗9t_#iu`xrU:KMLI03$-ҥ8?Ss ][ ʥRM'*feK(6!!;))"]Jk?-Fx! $&f+{-AvX&/-?#())ZH^occ* ia;X|KtgLWw +묯Rk?*=)k(R1hmX,3p,ޱLGP, ZT㽖N ^ޥֆ*BDG}0?zz6Kbbv5Uu:~Ө+#Q PZ*BK^K6m4=P(7G)t8@޾-{,NT?Nd+'h2y/U}e?# wYǎ[6̚uӧ}f:V5jV\f¯lv^KEk%3UURΝ۶b:phNU`cϟg9Y4-LvoBBVMͿ nVls8[{Lbޥ<!iaJG'/,l9ᨾ/rZVnIhlvrU/75mgj'j;}=@!yeIz,-|ciVzNeh:i>*T2Xx a<^2s?vw̞ak\ouk\pZc]Mǎlos\3_]H;GF,\K6`k&C%>} N>gnLl{R(Jƕqq'}m+66.s-]W_ ӭ=/d ʫ!/ 8-Acc+|ҢXoosS6d8גUT*kJJdjdxBo5˶6UFƲPXMcClZ Si3uu/Sgd, 9=Z:;0eK\KxLyyBс8~~^Gh/bO3g8c#Fù6"+&=kPX*T$8;؍*̙;}1>l εtpטA?8-1NITT$xܣGqSSz-rL2<-' b%%eS߾/+.t%/ᅿO8tQqs-Z[[k_ZZf2?,'91ɃM>2\@ c>,C=:>p+~cKK;y3@/s fp87_*v{Z%'\@ C)G浝oq'#?|7`GV9{6JcAq8U3޹7þvC#) bRF&B [pZ[ܩ^(\;ԩ̘ʦkOGo0\o.̝;&mUu!&MyyS]Q|>7&f3+;bs-eII=?ř3G 01lMx,v\^  lN*?4 g ,htwgoXEEeg6u1#´&LRYdZW0fwyݺ6.V֥'Z;rc#¶l5hP-,1=( ~V:zSaX [n~ \V?qc+WN%ׯ}[^Hrݻ黚d C߷{L1FI!/^| +v[aՅC8uW^yҥs-ӏ?B|>W FNLu\5/vuO>9{/z=^=ukU8^D16-qŊ 68}:K24E***z1/qƟl6Y]9sv]\lm ;w!CX؋Nϵ\x{,<' @iLɀAZd2Րt5|ׄ` .X?iKaa-*r|ܹ|٠ ok'4}|>!%& 6|xx|U\R4k.F!\Fss\g{0yg#77Z5 .^LqɒdV#1~Ɗ?<&CUG8/DFO2%=1aܼYEH,[b#lsRޱ|4s͛$QS=?|뱏ђQ"|2r`x7ss˯_/z$7B\V1Zzm `k>¶mY ,CDF n5|xJKg\I.I@Z.@Oyiiii7Դ]8iQÇO]X@  'YsH$HzzbfIIIUUUL'۴隿!C{A$$$x{tfo!Z}YYݻn5ܽۈ1޻9ph}ԨQ=,%MntM*3@!ڸ1Y,XU=PIIɕ+ロmsNGl6TJ0'6=%aG jk[jkMUUJrx C gbfX'aw{[@@SO=FWUɫUUMMeeM hg]]rwwᱍz TXwnĺT}EaaB'$G$}E"_pbjtz x<GP(x≁a qq"&np8*nnwfo+@PtzsذCC7i̫&\9U$[P.8RQQpN/+))!w~г߸qeddP陙nnnllA#<<|޼yfzyYf kX ?6A 24iuC,Dj)  T6Pѣ2eJYYY,T!$J-N$8i c:KX‘gEyNӧMR?zjS}˗777#ZZZ-[nݺCg9WVUU} bذa%9r֭[ `6+//ϧr˗/wj)':]mXRXEoRW555.]]8%vR8npWqR:r… &0I7667nh&{Ojt͚5VbjCBBBO:m6S+JPhhƍGs̙Nm#D+-/*?]'$$ٳի rK@!s ]m*l#˯w'j3g΄r7|CFIOO  SxbhhhvvuBCC͛GM#B}qqqBiZ }Q|I8KeG8p`6l8MiŦCҥKSea.\H$>>>6lz#33sBp*1RYO/Bh̙ǏpO81c +vUyjiss E"QZZZGGB #G 2wӦMFPVp\^ٳgL=o7U)kca-:nQQQ=z 1#\bp=ha5i N0_)x׮]111g={,̅@~!g&W3v7_CkӐd y͟?ׯ_'?ӧWTTHaÆY!4iҤ?J#GLKK3}׮]xmmm7of̾CaɺDwTv5k ֯_OOdib57_;WSeAM2EP|w &]vM"|ᇌp͛7o,, !tΝ7n`@ X9db^^^룘@S 4ի1h)xܹ)))ݓJ=)$Ќ3r={BƖ$_~E&zIJPK#F+ 77EUUU>|!TWWn7U)kK)Zn* O wWTv^?uT.Jo/MÝ9-j'SLI!1ttc;&HYl677\v-Ǐ41ՁTVs\ꆞ?))*mmm:ҥKtqndS2JDEE8pQSmaO6vZ\Rg4ø:;rUѣG)e:0<-?3,qZe΢U8-\.^7iZ&ZPP`\q.+Wf̘ѷoߧ~4^ \QQ%g'9t萷K<<ma&=ztk.f,B^YR$=<<Kcc27+;;["iӦ޽؁~T*%{#B51c$$${P4Tɦk\=Z<==nܸuZcXҤ슚6<_;|Tyyy2T{,TN 69,Z5~vw'/7nʕ+Dk׮")yyy|\JRgdd455~盚O'NF.kjj/_ycǮ[nɒ%x,fl/|Nba5B(L%:Mx$cƌimmrJVV=O,ĸ-2yrR@L3IDAT !s8 8 TB5R|ssswImV%<<%NaaAQo1I䨚i粩Jj}6۵@~]\ fR7_CkXtq}MMMAAAgΜ!ӗ/_>c r#G[tpݺuqqqG~LR*'Nꫯ<<|HnMM35J?\(>}ܹscҒmI[δ&Y<-i1N+ݾ}H$:|CCŋLSkó1`1΢U+,۾}{||<9Ctԩ`rBXp믿Cz ;:: ={l\N;v,22-:::331ZmڴEuU3=68Vay}`y0рaap2i*B!Up @@QTV, 4 Xun<aR0=/*)BUk!k.z^h*g72n;ipZph'IENDB`XQilla-2.3.4/docs/dom3-api/functions_0x69.html0000644001725400016040000002207613273140100015662 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - i -

    XQilla-2.3.4/docs/dom3-api/dir_a966b93a1c6e79656fff2d418d5de6c3_dep.md50000644001725400016040000000004013273140100020745 00000000000000a3c10dd83a79f05ce5a4fc033e7f8a27XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp__dep__incl.png0000644001725400016040000000625013273140101017367 00000000000000PNG  IHDR}p|bKGD ]IDATxTSǟ-:Ưef25) PI,X4;jc&:Ef GE#R 1B9~`?}!s_}}g.f@`wH;0K!tG;@L$$$( T]ِ䔔ŋ$f0^h6>s;a9Nhh;5 L h tG;ϫcbcOOUV  ɓ'JE\.Le}}} 1 uuu"ײr'''&g?? ^cb`7cHOOw^II|t`|>ǧ-77W*?~D"T*Ukk+.VmnnV%낂43hnnn/7|]TTOh@, U*˗aUMMunnn #>>^PM1EEEdee֭[І̝;VVVdhhhuu5eʕ+Hd dΝ111OF/EEE\VVm۶7&$$H$L&P(dl6[(L&R)۴iөS,olW)W Fgg'߷v~~~'<^b^omm766Yf6 z^߹O<@%%%1LH$j5,rڵ >j/]TXX>}eddlJ233㍍rƍĜFΝKIIINNq~mǏ=3 =jD F"\r޼ywرaÆ 6VTTl޼ڝrsswڵpBOEGGFSRRz0˗wMӗ,Yꬻyf*n:VF@`0-[ck8~&2CP\\\ry@@e\tR<zر۷t2h4=zX P(RSSz=ɴ,3dgg3<ŷT*ULL nݗ% .  .3LOfq@Bw4 _ܾ}I?ff hcoBb\jAfl/Q{ii#;00/!u,+k^mAݝWU uw&C^R@&Kcxt+*m2=rF־{y-˹ð)L ӽDJ"+oVo`:d4͠.M ӽM{QӽX:44 PmmJHQ:]]} 676d…fkőtƑ6LzvgR8WWhT&f͚Ç#F;RwLh4//7;͛!8NQQl`:˰ XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc Namespace Reference

    This class holds the list of registered DOMImplementations. More...

    Classes

    class  MemoryManager
     Configurable memory manager. More...
     
    class  XMLDeleter
     
    class  XMLPlatformUtils
     Utilities that must be implemented in a platform-specific way. More...
     
    class  DOMAttr
     The DOMAttr class refers to an attribute of an XML element. More...
     
    class  DOMCDATASection
     CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...
     
    class  DOMCharacterData
     The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...
     
    class  DOMComment
     This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'. More...
     
    class  DOMConfiguration
     The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...
     
    class  DOMDocument
     The DOMDocument interface represents the entire XML document. More...
     
    class  DOMDocumentFragment
     DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...
     
    class  DOMDocumentRange
     
    class  DOMDocumentTraversal
     DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...
     
    class  DOMDocumentType
     Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...
     
    class  DOMElement
     By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...
     
    class  DOMEntity
     This interface represents an entity, either parsed or unparsed, in an XML document. More...
     
    class  DOMEntityReference
     DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...
     
    class  DOMError
     DOMError is an interface that describes an error. More...
     
    class  DOMErrorHandler
     Basic interface for DOM error handlers. More...
     
    class  DOMException
     
    class  DOMImplementation
     The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...
     
    class  DOMImplementationList
     The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...
     
    class  DOMImplementationLS
     
    class  DOMImplementationRegistry
     
    class  DOMImplementationSource
     
    class  DOMLocator
     DOMLocator is an interface that describes a location. More...
     
    class  DOMLSException
     
    class  DOMLSInput
     This interface represents a single input source for an XML entity. More...
     
    class  DOMLSOutput
     This interface represents an output destination for data. More...
     
    class  DOMLSParser
     DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...
     
    class  DOMLSParserFilter
     
    class  DOMLSResourceResolver
     DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...
     
    class  DOMLSSerializer
     
    class  DOMLSSerializerFilter
     
    class  DOMMemoryManager
     The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...
     
    class  DOMNamedNodeMap
     DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...
     
    class  DOMNode
     The DOMNode interface is the primary datatype for the entire Document Object Model. More...
     
    class  DOMNodeFilter
     Filters are objects that know how to "filter out" nodes. More...
     
    class  DOMNodeIterator
     DOMNodeIterators are used to step through a set of nodes, e.g. More...
     
    class  DOMNodeList
     The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...
     
    class  DOMNotation
     This interface represents a notation declared in the DTD. More...
     
    class  DOMProcessingInstruction
     The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...
     
    class  DOMPSVITypeInfo
     The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
     
    class  DOMRange
     
    class  DOMRangeException
     Range operations may throw a DOMRangeException as specified in their method descriptions. More...
     
    class  DOMStringList
     The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...
     
    class  DOMText
     The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...
     
    class  DOMTreeWalker
     DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...
     
    class  DOMTypeInfo
     The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
     
    class  DOMUserDataHandler
     When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...
     
    class  DOMXPathEvaluator
     The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...
     
    class  DOMXPathException
     
    class  DOMXPathExpression
     The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...
     
    class  DOMXPathNamespace
     The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...
     
    class  DOMXPathNSResolver
     The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
     
    class  DOMXPathResult
     The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...
     
    class  StDOMNode
     

    Typedefs

    typedef DOMNodeDOMNodeSPtr
     
    typedef DOMAttrDOMAttrSPtr
     
    typedef DOMElementDOMElementSPtr
     

    Detailed Description

    This class holds the list of registered DOMImplementations.

    DOMLSSerializerFilter.hpp: interface for the DOMLSSerializerFilter class.

    DOMLSSerializer provides an API for serializing (writing) a DOM document out in an XML document.

    DOMLSParserFilter.hpp: interface for the DOMLSParserFilter class.

    This interface permits a DOM implementer to supply one or more implementations, based upon requested features and versions.

    Implementation or application can register DOMImplementationSource to the registry, and then can query DOMImplementation based on a list of requested features.

    This provides an application with an implementation independent starting point.

    See Also
    DOMImplementation
    DOMImplementationList
    DOMImplementationSource
    Since
    DOM Level 3

    Each implemented DOMImplementationSource object is listed in the binding-specific list of available sources so that its DOMImplementation objects are made available.

    Since
    DOM Level 3

    DOMLSParserFilter provide applications the ability to examine nodes as they are being created during the parse process.

    DOMLSParserFilter lets the application decide what nodes should be in the output DOM tree or not.

    Since
    DOM Level 3

    The XML data is written to an output stream, the type of which depends on the specific language bindings in use. During serialization of XML data, namespace fixup is done when possible.

    DOMLSSerializer accepts any node type for serialization. For nodes of type Document or Entity, well formed XML will be created if possible. The serialized output for these node types is either as a Document or an External Entity, respectively, and is acceptable input for an XML parser. For all other types of nodes the serialized form is not specified, but should be something useful to a human for debugging or diagnostic purposes. Note: rigorously designing an external (source) form for stand-alone node types that don't already have one defined in seems a bit much to take on here.

    Within a Document or Entity being serialized, Nodes are processed as follows Documents are written including an XML declaration and a DTD subset, if one exists in the DOM. Writing a document node serializes the entire document. Entity nodes, when written directly by write defined in the DOMLSSerializer interface, output the entity expansion but no namespace fixup is done. The resulting output will be valid as an external entity. Entity References nodes are serializes as an entity reference of the form "&amp;entityName;") in the output. Child nodes (the expansion) of the entity reference are ignored. CDATA sections containing content characters that can not be represented in the specified output encoding are handled according to the "split-cdata-sections" feature.If the feature is true, CDATA sections are split, and the unrepresentable characters are serialized as numeric character references in ordinary content. The exact position and number of splits is not specified. If the feature is false, unrepresentable characters in a CDATA section are reported as errors. The error is not recoverable - there is no mechanism for supplying alternative characters and continuing with the serialization. All other node types (DOMElement, DOMText, etc.) are serialized to their corresponding XML source form.

    Within the character data of a document (outside of markup), any characters that cannot be represented directly are replaced with character references. Occurrences of '<' and '&' are replaced by the predefined entities &lt; and &amp. The other predefined entities (&gt, &apos, etc.) are not used; these characters can be included directly. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

    Attributes not containing quotes are serialized in quotes. Attributes containing quotes but no apostrophes are serialized in apostrophes (single quotes). Attributes containing both forms of quotes are serialized in quotes, with quotes within the value represented by the predefined entity &quot;. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

    Within markup, but outside of attributes, any occurrence of a character that cannot be represented in the output character encoding is reported as an error. An example would be serializing the element <LaCa&#xF1;ada/> with the encoding="us-ascii".

    When requested by setting the normalize-characters feature on DOMLSSerializer, all data to be serialized, both markup and character data, is W3C Text normalized according to the rules defined in . The W3C Text normalization process affects only the data as it is being written; it does not alter the DOM's view of the document after serialization has completed.

    Namespaces are fixed up during serialization, the serialization process will verify that namespace declarations, namespace prefixes and the namespace URIs associated with Elements and Attributes are consistent. If inconsistencies are found, the serialized form of the document will be altered to remove them. The algorithm used for doing the namespace fixup while seralizing a document is a combination of the algorithms used for lookupNamespaceURI and lookupPrefix. previous paragraph to be defined closer here.

    Any changes made affect only the namespace prefixes and declarations appearing in the serialized data. The DOM's view of the document is not altered by the serialization operation, and does not reflect any changes made to namespace declarations or prefixes in the serialized output.

    While serializing a document the serializer will write out non-specified values (such as attributes whose specified is false) if the output-default-values feature is set to true. If the output-default-values flag is set to false and the use-abstract-schema feature is set to true the abstract schema will be used to determine if a value is specified or not, if use-abstract-schema is not set the specified flag on attribute nodes is used to determine if attribute values should be written out.

    Ref to Core spec (1.1.9, XML namespaces, 5th paragraph) entity ref description about warning about unbound entity refs. Entity refs are always serialized as &foo;, also mention this in the load part of this spec.

    When serializing a document the DOMLSSerializer checks to see if the document element in the document is a DOM Level 1 element or a DOM Level 2 (or higher) element (this check is done by looking at the localName of the root element). If the root element is a DOM Level 1 element then the DOMLSSerializer will issue an error if a DOM Level 2 (or higher) element is found while serializing. Likewise if the document element is a DOM Level 2 (or higher) element and the DOMLSSerializer sees a DOM Level 1 element an error is issued. Mixing DOM Level 1 elements with DOM Level 2 (or higher) is not supported.

    DOMLSSerializers have a number of named features that can be queried or set. The name of DOMLSSerializer features must be valid XML names. Implementation specific features (extensions) should choose an implementation dependent prefix to avoid name collisions.

    Here is a list of properties that must be recognized by all implementations.

    "normalize-characters"
    true
    [ optional] (default) Perform the W3C Text Normalization of the characters in document as they are written out. Only the characters being written are (potentially) altered. The DOM document itself is unchanged.
    false
    [required] do not perform character normalization.
    "split-cdata-sections"
    true
    [required] (default) Split CDATA sections containing the CDATA section termination marker ']]>' or characters that can not be represented in the output encoding, and output the characters using numeric character references. If a CDATA section is split a warning is issued.
    false
    [ required] Signal an error if a CDATASection contains an unrepresentable character.
    "validation"
    true
    [ optional] Use the abstract schema to validate the document as it is being serialized. If validation errors are found the error handler is notified about the error. Setting this state will also set the feature use-abstract-schema to true.
    false
    [ required] (default) Don't validate the document as it is being serialized.
    "expand-entity-references"
    true
    [ optional] Expand EntityReference nodes when serializing.
    false
    [required] (default) Serialize all EntityReference nodes as XML entity references.
    "whitespace-in-element-content"
    true
    [required] ( default) Output all white spaces in the document.
    false
    [ optional] Only output white space that is not within element content. The implementation is expected to use the isWhitespaceInElementContent flag on Text nodes to determine if a text node should be written out or not.
    "discard-default-content"
    true
    [required] (default ) Use whatever information available to the implementation (i.e. XML schema, DTD, the specified flag on Attr nodes, and so on) to decide what attributes and content should be serialized or not. Note that the specified flag on Attr nodes in itself is not always reliable, it is only reliable when it is set to false since the only case where it can be set to false is if the attribute was created by a Level 1 implementation.
    false
    [required] Output all attributes and all content.
    "format-canonical"
    true
    [optional] This formatting writes the document according to the rules specified in . Setting this feature to true will set the feature "format-pretty-print" to false.
    false
    [required] (default) Don't canonicalize the output.
    "format-pretty-print"
    true
    [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Setting this feature to true will set the feature "format-canonical" to false.
    false
    [required] (default) Don't pretty-print the result.
    "http://apache.org/xml/features/dom/byte-order-mark"
    false
    [optional] (default) Setting this feature to true will output the correct BOM for the specified encoding.
    true
    [required] Don't generate a BOM.
    "http://apache.org/xml/features/pretty-print/space-first-level-elements"
    true
    [optional] (default) Setting this feature to true will add an extra line feed between the elements that are children of the document root.
    false
    [required] Don't add the extra line feed.

    See also the Document Object Model (DOM) Level 3 Load and Save Specification.

    Since
    DOM Level 3

    DOMLSSerializerFilter provide applications the ability to examine nodes as they are being serialized.

    DOMLSSerializerFilter lets the application decide what nodes should be serialized or not.

    The DOMDocument, DOMDocumentType, DOMNotation, and DOMEntity nodes are not passed to the filter.

    Since
    DOM Level 3

    Typedef Documentation

    XQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__incl.md50000644001725400016040000000004013273140077017670 000000000000009f5c02a300a51caa08e5a6589d1b531aXQilla-2.3.4/docs/dom3-api/tabs.css0000644001725400016040000000221313273140077013645 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.4/docs/dom3-api/inherit_graph_15.png0000644001725400016040000000371213273140101016031 00000000000000PNG  IHDR%.bKGDIDATx[LǧBl!EI  TBxAihB`%6RThPӒ 5DBĤDnUnB] Msin.0 :0 U*J#`V PXVVBT*U[[ Yii KOO5 j}pB$d1 "::zݺu{qᠴaaa//` Ar|۶m~~~aaa9r%j}hmm2L>X,jŵ|1//611qaa 5lnii~O> TUUjBA ϟZ$^WRT*F#U%I2!!!??UrX,v8 D"699իTouuD"MTUՆ d2kO>}=-ׯGՄ~#ucŋwp8AAA7oޤV\Shu:P@o2ԩS|>Ç$55u```0^rh4$ɻw #"" Cggg||\."f߽{whhj͚5AONNV.l{{{@@9xll|[```GG x^~-lvbbbiii__jX,===)))qqqB㓝m2GGG622⚊ESx~DfPUXXH5 rsssLL `0@w3W쪚`Xn2$IZօOrO,mmm7oϟ˃$&&:Bá닊"##Lfmm- :x uwwjѴIsESdP- Gv: BҸ\X,~'\Ǐٳi;w$%%QZFc$=z=A(JA`(jbbb}6nFSya9}000񒒒233FPHl6wwwPKhhhcc#*wtt{Rl\uu5$p9'bꜘX^^Nioiir^|`Z z t:zʸll6[V$933jk*MwHdvvvNNR|Mcc#jOII7 Ϊ'O^v… U`0>\__oXv;p8SSSGKbڵ2,==ﭭr<##{&vLAAj:pEShh jhh Z, 6lڴ&[n0ͨU<}vpZE| O8p"""m6EwFTTTݦpFEED˗/Єmܸ1882##lT,jU?~;bwgレ'b~  񿲬bzV{/x`F(.>0``0O r7IENDB`XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__dep__incl.map0000644001725400016040000000027313273140101021235 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__dep__incl.map0000644001725400016040000000102513273140100020513 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_22.map0000644001725400016040000000037513273140101016022 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_10.map0000644001725400016040000000035413273140101016014 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__incl.map0000644001725400016040000000047513273140100017736 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_15.map0000644001725400016040000000044213273140101016017 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentRange__inherit__graph.md50000644001725400016040000000004013273140100024127 00000000000000f4625b82e8de0349de5f81b8f29b6e19XQilla-2.3.4/docs/dom3-api/inherit_graph_12.png0000644001725400016040000000351213273140101016024 00000000000000PNG  IHDR%bKGDIDATxmHS_Ommn1f ')I9EEaRԋʞ_dzK,Kj|`4a]_9{~{=0!!hhv:Z kZVWJ]0ǏQkZ hf[n 4`͚5$Yð OG t@;-Y1 iiir|rr:v+ ZرcdҥK~(//0ltt @siGVD[[Ϸ\rPKKӧO_^ZZ R 񾾾+u||fϞ>Ns8';;;Ϝ9577s8޲M6 涶64@*R +y97offfnU*\.7))ITzQ z{{SSS CSSSjj*Ñ ܾ}[,3k׮CS0lϞ=wE]Z`0JRVL&koo'no߾f BBx|Ν˗X,> ի</u&gfd2 \m۶s'O`KK߽͛{g4:422(//JDFd2(pY.k޼y/^ZW^q\'O nۯ\PkZp!ݣC.r߼y={dY,֧OH`qaMMMIIؘhQT!kv8qqq;v옘@7ǏDEΤ@3tqP(U*ζZӓ3¬,NzlglSN8N jl6ݷo_CCPVR5ŧ ˗/QWedd۷o_v\>HtH)L4`|0L"!!755L`,aeee||ڵkݻ!=qƍ+V6 Hpºu\+**.]#:mXAhd2jH$yyyNL=DfXΝ;'J &Ǐxll, 99l6Ϗ=. ߯jm6Ν;7l`¥dQ p---eeedD"8\.`ؘ@ Y3AUUUJrxxuRf' p~&kIÇl6QIAAjSSX,6L&p׮]`2/_f2AKO߲ ƍBnGG|UTT[N' =,ٽ{.[$4'nٲd||d2DƐ58aXww>x `xxMD' #~ٳIm6p.Z(11qnZQ( 8xpP,Y$...;;+B:6nNIIn4BU__bD"ё#G~J"G  fmݺ511ӧO/^8%%:))J$R4PwUU aYI2ߜPhhv:ZhX, oRvE4JLLL__ޑU}:Zhh_Sk/IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.map0000644001725400016040000000127213273140101023636 00000000000000 XQilla-2.3.4/docs/dom3-api/ftv2folderclosed.png0000644001725400016040000000115013273140077016156 00000000000000PNG  IHDR}\/IDATx]MO@~uؐlp]#]PYEC\9y`xC &=qvZv3m؃vLN}}ޝZA@n ONp xKxj8s _[D'yye+ 7#rNlk* 0Ь_d_(Öz=xvhzP-䍒̪u$\DJcB4.:Ϗ-}LE #gN;B6䬜@p&h>p9EEάʑ"un$R"?{<%PNt$߶+^<"2Dqq\ҙaA"ԵP}#Ez{.8i p(ADwDE߂z;Kק8t q:uvvݛvEn{MFXgfZ֝*ߩ:jYq#3SWr'  IENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp_source.html0000644001725400016040000002603513273140077022475 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationRegistry.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMImplementationRegistry.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP
    24 
    39 #include <xercesc/util/XercesDefs.hpp>
    40 
    41 XERCES_CPP_NAMESPACE_BEGIN
    42 
    43 
    44 class DOMImplementation;
    45 class DOMImplementationSource;
    46 class DOMImplementationList;
    47 
    48 class CDOM_EXPORT DOMImplementationRegistry
    49 {
    50 public:
    51  // -----------------------------------------------------------------------
    52  // Static DOMImplementationRegistry interface
    53  // -----------------------------------------------------------------------
    69  static DOMImplementation* getDOMImplementation(const XMLCh* features);
    70 
    83  static DOMImplementationList* getDOMImplementationList(const XMLCh* features);
    84 
    92  static void addSource(DOMImplementationSource* source);
    94 
    95 private:
    97 };
    98 
    99 XERCES_CPP_NAMESPACE_END
    100 
    101 #endif
    Definition: DOMImplementationRegistry.hpp:48
    The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implemen...
    Definition: DOMImplementationList.hpp:40
    Definition: DOMImplementationSource.hpp:42
    The DOMImplementation interface provides a number of methods for performing operations that are indep...
    Definition: DOMImplementation.hpp:43
    XQilla-2.3.4/docs/dom3-api/ftv2cl.png0000644001725400016040000000070513273140077014114 00000000000000PNG  IHDR}\IDATx;H#Ao4ႇK ,m vڞJ XY B|drcvoİ 0Ò3ͤe״1X8nQ88֧3*rb-$P1@Z-#011HkK wO@!fuc;sB[EA\>]Pzf| +g5b i5mM_q,cod!,{Y,zT8H]𤕘7/8Q!F~6?Y A@Ũ.@TYr8*>?e[6xIENDB`XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__incl.png0000644001725400016040000001007213273140100017727 00000000000000PNG  IHDRp!]#abKGDIDATxyPSO(y0D .O }ՎPZE+8Vҩ{;`J(RթUuEE ?Λk6_|9(B@`'=$=$=$O?A$66666A該СC C =aI,͛ā@@@@b> ˣG:ujjj*ϧ7nP( .p8ݽbׯ__YYo>wwwfp .3a܄U틏@c9=!rrr\]]Zm]]Ǔ y<B#55199?(((yl6BÇbjmmnXtNNNw˖-GŻw[oD"Txi\ϯuL,-Ombï]7Ϟ=" ]pٳgf```EEtŋgϞg+r<((֭[qqqgΜ2fVd#_zu͋>p6㏉BiC-Y$44tʕNT%J{zzLqŋ߿˗,Yk.Fc"`E"QCCBMTsX,~1.O2EV?|!~֭3g2+wvv_uȑ 6xyy1_uSST*ݶmۍ7<_Y'&cӦM^^^KMMknnƻ.]&''޽NJJ*))YdT*c ݻo~֭"4\~=//oݺu---XZZ_^~A@cӫbZ-.쀀 X|Uooo{{{f?Pǝ^&%%7N.垞%ҥKwBW0cccSPP  mmmB!B_[DFFxsfgg#F u;w:99 dT#GΚ5 !ڊ"';cLLL4S}}B9991+Ԍ? ZląNYRiZ:BݽI.XYYgggj!D  x9K1::޴OɨQB\ ;b8 (*//1c ٻw/ޕRVZUYYY__? ?sev1i$+fp&&2 o 73h4===VVVxafxxxnn˗JeeeeaaN'Osƍ+V`VXlYNNY,V@@@rrgϘ}||eիWwvv1ٵ~[9ϛo|Fl޼ȑ#Hzمc _j9FzHzHzHzHB~&$`Sggg~O?װq`7O/}"&] ϟkǍsvtKy\]22")!_/_w'OV!LAO0L11Že| 'L)4.Ld79}],ϰd7{{:F++Nl%a("Df4j`3 11bObM1f 4=""b*fdg Г)bƔG͟?u0 6M\p3=Aha#Z*:NgzO5{\Ngz!4g7g;ع u^>ŋo߆'tFz{w#b1(T*Ǐގh4k׮=zP(\vF3˹s<<<***=<<O !tIDrǍWRR13;;#F0g1{gddL<Ν;2lk֬1fkk+J EAAU[[[VVA’S.ii6l؀ںu+8] 7n[{dZ`AKKY#̙3ڵkb8##àѴǧѓJDĉ .={w&Lwߧ^J:;;[Ri^cJz]=VpЮQ}Xb,&PEEEQ-fE>|X,4R&!'>srÞB\L&ӏEQԥKbbb{c<)))qppx"---L(Cz:pc2AUWW3j56VUUq\FhLBuuu999!!!W>(*ڵk؎W!nnnr/˜ZjGU*˖- S*Ϝ93o#ZmhZ zzz>}zWaEMM Ms=aR'''c|U`^" ޞiyi| M   H"W.GIENDB`XQilla-2.3.4/docs/dom3-api/dir_2f715665b8aa8c276cd082abf0483ce6_dep.map0000644001725400016040000000105713273140101020742 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp__dep__incl.map0000644001725400016040000000027113273140100023036 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSOutput.html0000644001725400016040000004455613273140100020235 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSOutput Class Referenceabstract

    This interface represents an output destination for data. More...

    #include <DOMLSOutput.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMLSOutput ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual XMLFormatTarget * getByteStream () const =0
     Returns the byte stream for this input source. More...
     
    virtual const XMLCh * getEncoding () const =0
     An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method. More...
     
    virtual const XMLCh * getSystemId () const =0
     Get the system identifier for this input source. More...
     
    virtual void setByteStream (XMLFormatTarget *stream)=0
     Sets the byte stream for this input source. More...
     
    virtual void setEncoding (const XMLCh *const encodingStr)=0
     Set the encoding which will be required for use with the XML text read via a stream opened by this input source. More...
     
    virtual void setSystemId (const XMLCh *const systemId)=0
     Set the system identifier for this input source. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this DOMLSOutput is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSOutput ()
     

    Detailed Description

    This interface represents an output destination for data.

    See Also
    XMLFormatTarget
    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMLSOutput::DOMLSOutput ( )
    inlineprotected
    virtual xercesc::DOMLSOutput::~DOMLSOutput ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual XMLFormatTarget* xercesc::DOMLSOutput::getByteStream ( ) const
    pure virtual

    Returns the byte stream for this input source.

    See Also
    InputSource
    virtual const XMLCh* xercesc::DOMLSOutput::getEncoding ( ) const
    pure virtual

    An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.

    This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

    Returns
    The forced encoding, or null if none was supplied.
    See Also
    setEncoding
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMLSOutput::getSystemId ( ) const
    pure virtual

    Get the system identifier for this input source.

    If the system ID is a URL, it will be fully resolved.

    Returns
    The system identifier.
    See Also
    setSystemId
    Since
    DOM Level 3
    virtual void xercesc::DOMLSOutput::release ( )
    pure virtual

    Called to indicate that this DOMLSOutput is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMLSOutput::setByteStream ( XMLFormatTarget *  stream)
    pure virtual

    Sets the byte stream for this input source.

    See Also
    BinInputStream
    virtual void xercesc::DOMLSOutput::setEncoding ( const XMLCh *const  encodingStr)
    pure virtual

    Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

    This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

    Parameters
    encodingStrThe name of the encoding to force.
    Since
    DOM Level 3
    virtual void xercesc::DOMLSOutput::setSystemId ( const XMLCh *const  systemId)
    pure virtual

    Set the system identifier for this input source.

    The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

    If the system ID is a URL, it must be fully resolved.

    Parameters
    systemIdThe system identifier as a string.
    See Also
    getSystemId
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.md50000644001725400016040000000004013273140077023552 000000000000000186b634263008bc9f85f9d9be213c05XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction-members.html0000644001725400016040000005643113273140100024477 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMProcessingInstruction Member List

    This is the complete list of members for xercesc::DOMProcessingInstruction, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMProcessingInstruction()xercesc::DOMProcessingInstructioninlineprotected
    DOMProcessingInstruction(const DOMProcessingInstruction &other)xercesc::DOMProcessingInstructioninlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getData() const =0xercesc::DOMProcessingInstructionpure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTarget() const =0xercesc::DOMProcessingInstructionpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setData(const XMLCh *data)=0xercesc::DOMProcessingInstructionpure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMProcessingInstruction()xercesc::DOMProcessingInstructioninlinevirtual
    XQilla-2.3.4/docs/dom3-api/functions_func_0x73.html0000644001725400016040000002734113273140100016670 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - s -

    XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__incl.png0000644001725400016040000002421613273140100020607 00000000000000PNG  IHDR ,bKGD IDATx{@LǟL]t(RDDYumUPmBJ D؋m勨tBJ7]}%DɵV*ݦLq;;i Sy^|9s< kȈ:t"DRvЀx䄵 >L Hիŋ_zk!BC糓ŋPۇ!C A@@ @H}@,--9˚ӧOUVVtzBB“'OH$ ֭[G к8S~EEEIII&pkpW2H,--ѭf׮]򊋋SPPtwwx{{>}x<###4UGGGqq H$OVV'jPR_|3RVV3fSSSѯ.^|ĉZOOoͷnB ̜93//ѣG3fdͦRT37XiW$jժBcNN]u/^ǹLy޽E 2ygg#G윜"""z{{Y,V||ڵk> hll|---oݺnooҥ۷o;;;šLfddCdd$Dkuww_jՕ+W[n|6 ׮][ZZZPPtRGGK.޸qΝ; P#ӧ...+WLNN} Μ9`0"#u==&@gg'L挠8աSNho޼tuu=|޼yI8uTkkkddѣG|ɓIII>{,""+:: 66711MKK#HQQQǏy||gN&ڊK"֬Y~NPvYTT___555;;.\xĉɓ'_r)))KKӧOH$$MLLLMMMMMͩSZZZ۷owww7˂ [ZZ233hL`0LToo/zmooS*ŋA'ƍ]]]3766~:&&Z@P>d۶m肆9}###,Y$--͝2++ᓒ>>>~ 遁t:}Μ9%%͛7;w.))\͛7{zzp 5m4GGǛ7o&eeeׯ_dɒtu> cǎ͘1%beek.:dtLB1x0PPP1a1s۷O]]]eaCuuC*++{zzlmmeA>u_][[{ٲe+WJ|%8ʂ8ʂ@$ D! C A*//DDfyy-3gZ> .n/Z _XkB`ܥX@u$f`u\:=}&wòerܳ'U^~Ԗ- EH9p ۯ6Z ܾPBC3Gٙc-_~IR \k*0j(V|6b{e9t rY Wc/y_XW_ wZ'b}}/޿wZڶSuzijnS(]{/ٳ ֯ώ@!55yw/TZ'#-MUqqjia@ GYkDRR2 OOߦ,FTyk1Wtv]]wuI#ލbigg>sZmmzMq`+ֶ-Zp?^Np9㐞7N k-BNp9dr5B7EE NBLBϞ^%zgxf*+D㎌9w X *X!on(!cAK ee:C:"AܾZȐg|?{F#8mcsjWD!L&;.sĻ=)޹JTT;w.kiu?9?gU  =\?7/D_*i|soŊc4i55w_s!-M0DQՋu2|нaCtuu+v$R;vHTTن5hi\y`|ǃaJaHm,Y]ͻ0섄|:1vիOemlL2.Q|~PgïJa=ut)*5 [r1c ޟwEBTY7֬k! -Mpu[TwϞdwVa(OU\P]'[Ib)OBTT Qu\9kأ,/+ ]k'-M`Xֶa-MLIս_ k!#--5wp8 Xԩsر뭋c8k!ʎ;"<TPP7Fkhh3gΝ;A҈d D'N444pGD!L&ٳڐ;vPK <;ymggܹ!ȗ#WUU04TZD"=ԴN !(:mx 2=ֶRuuuwCiii)))B׏!"搮^&"666CV]]]KKKWW2##ɓWWWWsҥK'Nǣχfgg/Z~~~B_1h=99a%եP(˗/O8 `0555544 :s玾~^^^HH?o-̈Dabb"d&///++b&N8zy=~-޾qF555==:pqqq'OVWW?rHbb㕔˓p87n o LJJB?:99]z3JKK[;v011B܁W|w3pm###Çв&M7(xP2tyN[DzvrrBłqssswwonn|1>D~ZKKŋɵqr  W|w3HXJ^v ]M!B##POgD! ?|C(311!HrNNΌ3]RR ȤIo9}kdiicǎQ(6bH&8qbBBG̅  !x9 :99"wa۶m[l^|]M?ځ9[Ąq9D^~@/.ڵk'P(htttjkk˗/:_-fSSSd͛W\I&V?.]Ǎ}իWMMMP]߼y;di HDD-e3WGrg?~GGG~~~NNNx|||Çϟ?F绚 h@-_4۵|` fb8@&Ѹիѓg޶m:$$̬t޼yբhD"1--D"F؈9uꔆFff&Du떡!,YR]]]ZZjjj|~0% 3`(((;w.wDY x%ɉgm%&*"bܹsy&Xk(ee66rrLM%wwjjڲÉHӘhj*ZȂboۖT^ޔ!,D!8n! rD)S>oH?C~;k!#ӟx̚5k-b:ڔ@߸Q"}7l͒ --֭QJZBnޝ⫦IAظq> 20-[⫫[\w^Mtq{&Z}{ӧ.y+b*vCAI}Յ [MZ!&TtNg0 :+]̙IDL`ƊIw[|Z$qעJZCjUk~E|$k!B?vsbH4bQw/x$|>>\] ÃHu"6=9zի|Yf9kk3g\xxW"ƈUqvYϡ-bc$ n}QTZ'ngwZKK1%e r _o=߱ ߹n]"1) c QQ߷!1 ?k-~}ɾ|WIIk9QƍUU-w(T#CP;ɓ#Jt#U'srFxT#qel AZ^ˊ{Ε8b>_[Qv k-DE1wXs~srk-|ać+sr54Fcdd<߾=駟l\#CPqٱ?½{gf>v={;1ŋЏ02 ++[ttvܹSF>0!?fQB ڤÄћ;GD]AX,Crر[^52֮7(<| )#)!(l6tbx<~Μ ii[J>=~Zwd1c삂FJJ*`2iIS@{{$&'iiOŎ}f?#11~9͖~[ԑDh<0B6Cߔl6rB?^t/h 17IDAT8Jp翾 'Oj\dp׮='%Iq碻w̚5\WHISRViiógo9:ܭfmT]a5R$\ 'U@@ b}4ܒ)-= ++oO~`!2E'(h76$`mmZP?,!/p7o|y{p8<7vH۷wA{L@{̙chҥ_…|'!SUU8rW_8(H({fw3,^=;Go/~ =zѱbϞ=_ݲerssCCCMMMKJJJKKgϞ_QFEFFHX))ΰ0V999ٳpA?ɓ'ʂ[G/'7+VPk׮ 666FFF|1C! EOǑ{ H$t9''gƌ/))AdҤI徵dc( `XUwtt$:SfWWWUCrHrrC}6[? )))FFF|@Ce{D>JII hH$ӷ W_`͛7ѱj*t{C$&&*))ݻwH$fffϪ!rҥ3g nSoNnmh4,..&|}q#sYVVVv8?3B),,Dh^GG|СCբhl6;55L&o޼yʕd2o?cҏ;d2zmO& x{{~V0A"""lmm2Ȝ|QA-Df0}Ų:pLFW-..={m۸BBBJKKKKK͛_-F$Z[[ϟ?O$i4ꮮhBllWwсC+V,Z9;;ê!鵷rFGGs2> p!EEE|w1C>!gΜ>}::FT*CEEEUU˫:::JJJ  HJJʄ dddLLLV]|9*++O0!++ m`̟?_AA F9"<6ԫ||رc]\\w; e4CLLi4ߠA~hyA! :DQTTLPb,,DB@:t"fpw #YI!Af%@ (bhzD@@ @$ZeTIENDB`XQilla-2.3.4/docs/dom3-api/DOMText_8hpp__incl.md50000644001725400016040000000004013273140077016174 0000000000000073d8a0f9786f4eb56f14c3772d827831XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.png0000644001725400016040000001141613273140101025223 00000000000000PNG  IHDROSbKGDIDATxyTSG'$DVۋ"U bm\@Жb-=TbJ( ŢԂ PJRD@Pd= a $ !,@ml3{3R0 ĘhH1r ȁ  /+++++_s1RG166UUU5N!&1W\!(@4.]9.!&5 ȁ R H1rL P066{td2mmmUUU-ZtaHۚ mʕ .}ЀWp˥+xK`0#]USS-90ldx1H$0 )))}߾}xnZZʕ+:AAA, x1JC\x#ْj@FFA:p8˗y<@(2Lmmm&) ZZZjddTVVidd_V .D"Ѱҳ4MPo^XXT*/d2a+33s044"009:rmۦihh&bqLL;w>,][d @WWwb8mݺ[GGΝ;0ѣׯokkkll\`޽{ur7nDEEYYY566655-^8,,l$iӦ%&&Xgha͹\.̕Z[[`00 ZِNݾ}[GG߇*))=H1?~葢bjj*6qqqiiiill;wnTTTllvNNNWWWaa>,,wXy}}}BPvj2~? FcA1&** Og钒yA1 3gNNN}!bǏp8O,d>b'+JSS/1 KOO_btx >>~mmmk*:srrLMMΝ; A!Q+ðRԞ)}HV|>_"deelO?fd>F VZ>>><ѣxʲe***JJJ<<_AA!;;ٳg |>$s} ~w]VVfCCC. s_x1gΜ˗=z(''^ `RW;,--:13gm)z{{655YYYEDDkkkX"XXﲕCFc2Ā*pc|>1cF`` ǓvZ 뫩m޼tY+ 222fϞM-,,]F`.݄tX #b߿k׮s*))YYYEGG 3+++:ujH:u_b4 "(&&TYYyҥpcTP(\lH8`m 6lS ?a*|R H1r ȁ R H1r'S0 {B`'ڑI ӽЉnbPTN99ыwhwʲ~}BUUѣ^N/JO;wZ)p݉e23rr OY,D3@JVVX,Pk'ڝIR >}AډŒډhҁ3:*1} _ףGd)fW$xT^ZPA ŃV(_B;SͭI46O?7`sO(IMK7<~!.33m@˫Ӈ.I6ΝٟI R b N󏊇6NQN;LWrs!11+++ë7oqsfff &$$ۣf8^r H$JLL\vڵkE"Qggs]]ƍSSS7nqȑ~Xlۻ 5MȆ@PV^]]] %%%~~~p:(((lڴF5o˗/'%%/_¨MFFƨYă믿= pww_~K۟ĭ455wMrN:pN:*((Y,VRR҉'RSSa̽{6449r$..===Z (+W;vL dggk`0dòvuul6ܹs|~KK  ɬd2===c"4333033KOONIIro{qqqqqV^MCzUꫯ֬Ycaakmmm7o ?~iinbb2k֬={XYYd% 1 t:ݽ`ڴiÚ+++ZJ67P(ɛ9::…z .Ȉ~wiiYă/EN?{lHH68?ܹT+cWEEO>9w܉'Qeee022”3gΜ9s$+UUոTsssooŋd>v:::vvvzSLLX$@PYYdiiiii뛖B5hǏQ֋/&$$Ô12vH+777탉jjjqqqojݳf477WWWoٲeXW^I$(HTZZo߾aK,QWWϟ?˗/K@SSݻww5jFFFpP(-*(( up^ztRPeᚚx[;V% Î;nݺ߻w;88޽;//O|ɓ'O\֊B0r' i4ڴiF2xaeϟ?ohhؿ?ڰaںu+ojjj:::nݺf͚EN166RAt8nnnfX<8s EF4P(h4ׯ.d```ؒUlmm!'<.yfkmm@P?[&),YetzxxxRRRoo~dd$Nɜ?~n_|ֶINNgc%%Į.===///|8;;_vmڵWyݻ/\9c ggm۶\,AQQQ VTTvqqٽ{wBBl7n$%%I3 v@Hs--L<|x{ ȁ R w SzzDxrNRC X۷_vu`**8̀D"pFH1 wXbǎu踟xw|)?3.SqU/ܢ8uuummď?hbb}|LE$63.SQ1q?321cxwA]]]kkk|%WRR  ={6~b N; @9b@A)A9bÇbr۫5(IZ|?@BCCE2/1*h R H1r ȁ FWCIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp.html0000644001725400016040000001110113273140101017210 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSParserFilter.hpp File Reference
    Include dependency graph for DOMLSParserFilter.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSParserFilter
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__incl.md50000644001725400016040000000004013273140077017315 0000000000000019a405cac2131bc34f9e14ad1de00cccXQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp__incl.map0000644001725400016040000000007113273140100017066 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_2.md50000644001725400016040000000004013273140100015634 000000000000009ccb70aa0e2b3879c6aca04521bdccccXQilla-2.3.4/docs/dom3-api/classXPath2Result.html0000644001725400016040000007467113273140077016444 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2Result Class Referenceabstract

    The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node. More...

    #include <XPath2Result.hpp>

    Public Types

    Public Constants
    enum  ResultType { FIRST_RESULT = 100, ITERATOR_RESULT = 101, SNAPSHOT_RESULT = 102 }
     

    Public Member Functions

    Destructor
    virtual ~XPath2Result ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual ResultType getResultType () const =0
     Returns the result type of this result. More...
     
    virtual bool isNode () const =0
     Returns true if the result has a current result and the value is a node. More...
     
    virtual const
    xercesc::DOMTypeInfo
    getTypeInfo () const =0
     Returns the DOM type info of the current result node or value. More...
     
    virtual double getNumberValue () const =0
     Conversion of the current result to double. More...
     
    virtual int getIntegerValue () const =0
     Conversion of the current result to int. More...
     
    virtual const XMLCh * getStringValue () const =0
     Conversion of the current result to string. More...
     
    virtual bool getBooleanValue () const =0
     Conversion of the current result to boolean. More...
     
    virtual xercesc::DOMNodegetNodeValue () const =0
     Retrieve the current node value. More...
     
    virtual bool getInvalidIteratorState () const =0
     Signifies that the iterator has become invalid. More...
     
    virtual size_t getSnapshotLength () const =0
     The number of items in the result snapshot. More...
     
    virtual bool iterateNext ()=0
     Iterates and returns true if the current result is the next item from the sequence or false if there are no more items. More...
     
    virtual bool snapshotItem (size_t)=0
     Sets the current result to the indexth item in the snapshot collection. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     XPath2Result ()
     

    Detailed Description

    The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node.

    Since evaluation of an XPath 2.0 expression can result in various result types, this object makes it possible to discover and manipulate the type and value of the result.

    Since
    DOM Level 3

    Member Enumeration Documentation

    FIRST_RESULT
    The result is a sequence as defined by XPath 2.0 and will be accessed as a single current value or there will be no current value if the sequence is empty. Document modification does not invalidate the value, but may mean that the result no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first item in the resulting sequence has been found. If there is more than one item in the actual result, the single item returned might not be the first in document order.

    ITERATOR_RESULT
    The result is a sequence as defined by XPath 2.0 that will be accessed iteratively. Document modification invalidates the iteration.

    SNAPSHOT_RESULT
    The result is a sequence as defined by XPath 2.0 that will be accessed as a snapshot list of values. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and any items in the snapshot may have been altered, moved, or removed from the document.

    Enumerator
    FIRST_RESULT 
    ITERATOR_RESULT 
    SNAPSHOT_RESULT 

    Constructor & Destructor Documentation

    virtual XPath2Result::~XPath2Result ( )
    inlinevirtual

    Destructor.

    XPath2Result::XPath2Result ( )
    inlineprotected

    Member Function Documentation

    virtual bool XPath2Result::getBooleanValue ( ) const
    pure virtual

    Conversion of the current result to boolean.

    Returns
    asBoolean of type boolean, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if cannot be properly converted to boolean.
    DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
    virtual int XPath2Result::getIntegerValue ( ) const
    pure virtual

    Conversion of the current result to int.

    Returns
    asInt of type int, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to int.
    DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
    virtual bool XPath2Result::getInvalidIteratorState ( ) const
    pure virtual

    Signifies that the iterator has become invalid.

    Returns
    invalidIteratorState of type boolean, readonly
    virtual xercesc:: DOMNode* XPath2Result::getNodeValue ( ) const
    pure virtual

    Retrieve the current node value.

    Returns
    asNode of type Node, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if current result is not a node.
    DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
    virtual double XPath2Result::getNumberValue ( ) const
    pure virtual

    Conversion of the current result to double.

    If the native double type of the DOM binding does not directly support the exact IEEE 754 result of the XPath expression, then it is up to the definition of the binding to specify how the XPath number is converted to the native binding number.

    Returns
    asDouble of type double, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to double.
    DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
    virtual ResultType XPath2Result::getResultType ( ) const
    pure virtual

    Returns the result type of this result.

    Returns
    ResultType A code representing the type of this result, as defined by the type constants.
    virtual size_t XPath2Result::getSnapshotLength ( ) const
    pure virtual

    The number of items in the result snapshot.

    Valid values for snapshotItem indices are 0 to snapshotLength-1 inclusive.

    Returns
    snapshotLength of type size_t, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if resultType is not SNAPSHOT_RESULT.
    virtual const XMLCh* XPath2Result::getStringValue ( ) const
    pure virtual

    Conversion of the current result to string.

    Returns
    asString of type DOMString, readonly
    Exceptions
    XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to string.
    DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
    virtual const xercesc:: DOMTypeInfo* XPath2Result::getTypeInfo ( ) const
    pure virtual

    Returns the DOM type info of the current result node or value.

    Returns
    typeInfo of type TypeInfo, readonly
    virtual bool XPath2Result::isNode ( ) const
    pure virtual

    Returns true if the result has a current result and the value is a node.

    Returns
    isNode of type boolean, readonly
    virtual bool XPath2Result::iterateNext ( )
    pure virtual

    Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.

    Returns
    boolean True if the current result is the next item from the sequence or false if there are no more items.
    Exceptions
    XPathExceptionTYPE_ERR: raised if resultType is not ITERATOR_RESULT.
    DOMExceptionINVALID_STATE_ERR: The document has been mutated since the result was returned.
    virtual void XPath2Result::release ( )
    pure virtual

    Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.

    virtual bool XPath2Result::snapshotItem ( size_t  )
    pure virtual

    Sets the current result to the indexth item in the snapshot collection.

    If index is greater than or equal to the number of items in the list, this method returns false. Unlike the iterator result, the snapshot does not become invalid, but may not correspond to the current document if it is mutated.

    Parameters
    indexof type size_t - Index into the snapshot collection.
    Returns
    boolean True if the current result is the next item from the sequence or false if there are no more items.
    Exceptions
    XPathExceptionTYPE_ERR: raised if resultType is not SNAPSHOT_RESULT.

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/dir_a966b93a1c6e79656fff2d418d5de6c3_dep.map0000644001725400016040000000044013273140101021042 00000000000000 XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp__dep__incl.map0000644001725400016040000000342613273140101020573 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp_source.html0000644001725400016040000004462613273140077020364 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeIterator.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNodeIterator.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEITERATOR_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNODEITERATOR_HPP
    24 
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    44 class CDOM_EXPORT DOMNodeIterator
    45 {
    46 protected:
    47  // -----------------------------------------------------------------------
    48  // Hidden constructors
    49  // -----------------------------------------------------------------------
    55 
    56 private:
    57  // -----------------------------------------------------------------------
    58  // Unimplemented constructors and operators
    59  // -----------------------------------------------------------------------
    62  DOMNodeIterator & operator = (const DOMNodeIterator &);
    64 
    65 public:
    66  // -----------------------------------------------------------------------
    67  // All constructors are hidden, just the destructor is available
    68  // -----------------------------------------------------------------------
    75  virtual ~DOMNodeIterator() {};
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMNodeFilter interface
    80  // -----------------------------------------------------------------------
    83  // -----------------------------------------------------------------------
    84  // Getter methods
    85  // -----------------------------------------------------------------------
    91  virtual DOMNode* getRoot() = 0;
    103  virtual DOMNodeFilter::ShowType getWhatToShow() = 0;
    104 
    110  virtual DOMNodeFilter* getFilter() = 0;
    111 
    133  virtual bool getExpandEntityReferences() = 0;
    134 
    135  // -----------------------------------------------------------------------
    136  // Query methods
    137  // -----------------------------------------------------------------------
    150  virtual DOMNode* nextNode() = 0;
    151 
    162  virtual DOMNode* previousNode() = 0;
    163 
    173  virtual void detach() = 0;
    175 
    176  // -----------------------------------------------------------------------
    177  // Non-standard Extension
    178  // -----------------------------------------------------------------------
    188  virtual void release() = 0;
    190 };
    191 
    192 #define GetDOMNodeIteratorMemoryManager GET_DIRECT_MM(fDocument)
    193 
    194 XERCES_CPP_NAMESPACE_END
    195 
    196 #endif
    virtual ~DOMNodeIterator()
    Destructor.
    Definition: DOMNodeIterator.hpp:75
    unsigned long ShowType
    Definition: DOMNodeFilter.hpp:193
    DOMNodeIterator(const DOMNodeIterator &)
    Definition: DOMNodeIterator.hpp:53
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMNodeIterators are used to step through a set of nodes, e.g.
    Definition: DOMNodeIterator.hpp:44
    DOMNodeIterator()
    Definition: DOMNodeIterator.hpp:52
    Filters are objects that know how to &quot;filter out&quot; nodes.
    Definition: DOMNodeFilter.hpp:49
    XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp.html0000644001725400016040000001142313273140101017173 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaNSResolver.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/dom/DOMXPathNSResolver.hpp>
    Include dependency graph for XQillaNSResolver.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XQillaNSResolver
     The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp.html0000644001725400016040000001043713273140101015720 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSInput.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMLSInput.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSInput
     This interface represents a single input source for an XML entity. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp__dep__incl.map0000644001725400016040000000040413273140100017230 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMText.html0000644001725400016040000022264713273140101017422 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMText Class Referenceabstract

    The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...

    #include <DOMText.hpp>

    Inheritance diagram for xercesc::DOMText:

    Public Member Functions

    Destructor
    virtual ~DOMText ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual DOMTextsplitText (XMLSize_t offset)=0
     Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings. More...
     
    Functions introduced in DOM Level 3
    virtual bool getIsElementContentWhitespace () const =0
     Returns whether this text node contains element content whitespace, often abusively called "ignorable whitespace". More...
     
    virtual const XMLCh * getWholeText () const =0
     Returns all text of DOMText nodes logically-adjacent text nodes to this node, concatenated in document order. More...
     
    virtual DOMTextreplaceWholeText (const XMLCh *content)=0
     Substitutes the a specified text for the text of the current node and all logically-adjacent text nodes. More...
     
    Non-standard extension
    virtual bool isIgnorableWhitespace () const =0
     Non-standard extension. More...
     
    - Public Member Functions inherited from xercesc::DOMCharacterData
    virtual ~DOMCharacterData ()
     Destructor. More...
     
    virtual const XMLCh * getData () const =0
     Returns the character data of the node that implements this interface. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of characters that are available through data and the substringData method below. More...
     
    virtual const XMLCh * substringData (XMLSize_t offset, XMLSize_t count) const =0
     Extracts a range of data from the node. More...
     
    virtual void appendData (const XMLCh *arg)=0
     Append the string to the end of the character data of the node. More...
     
    virtual void insertData (XMLSize_t offset, const XMLCh *arg)=0
     Insert a string at the specified character offset. More...
     
    virtual void deleteData (XMLSize_t offset, XMLSize_t count)=0
     Remove a range of characters from the node. More...
     
    virtual void replaceData (XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0
     Replace the characters starting at the specified character offset with the specified string. More...
     
    virtual void setData (const XMLCh *data)=0
     Sets the character data of the node that implements this interface. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMText ()
     
     DOMText (const DOMText &other)
     
    - Protected Member Functions inherited from xercesc::DOMCharacterData
     DOMCharacterData ()
     
     DOMCharacterData (const DOMCharacterData &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr.

    If there is no markup inside an element's content, the text is contained in a single object implementing the DOMText interface that is the only child of the element. If there is markup, it is parsed into the information items (elements, comments, etc.) and DOMText nodes that form the list of children of the element.

    When a document is first made available via the DOM, there is only one DOMText node for each block of text. Users may create adjacent DOMText nodes that represent the contents of a given element without any intervening markup, but should be aware that there is no way to represent the separations between these nodes in XML or HTML, so they will not (in general) persist between DOM editing sessions. The normalize() method on DOMNode merges any such adjacent DOMText objects into a single node for each block of text.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Constructor & Destructor Documentation

    xercesc::DOMText::DOMText ( )
    inlineprotected
    xercesc::DOMText::DOMText ( const DOMText other)
    inlineprotected
    virtual xercesc::DOMText::~DOMText ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual bool xercesc::DOMText::getIsElementContentWhitespace ( ) const
    pure virtual

    Returns whether this text node contains element content whitespace, often abusively called "ignorable whitespace".

    The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using DOMDocument::normalizeDocument().

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMText::getWholeText ( ) const
    pure virtual

    Returns all text of DOMText nodes logically-adjacent text nodes to this node, concatenated in document order.

    Since
    DOM Level 3
    virtual bool xercesc::DOMText::isIgnorableWhitespace ( ) const
    pure virtual

    Non-standard extension.

    Return true if this node contains ignorable whitespaces only.

    Returns
    True if this node contains ignorable whitespaces only.
    virtual DOMText* xercesc::DOMText::replaceWholeText ( const XMLCh *  content)
    pure virtual

    Substitutes the a specified text for the text of the current node and all logically-adjacent text nodes.


    This method returns the node in the hierarchy which received the replacement text, which is null if the text was empty or is the current node if the current node is not read-only or otherwise is a new node of the same type as the current node inserted at the site of the replacement. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text.
    Where the nodes to be removed are read-only descendants of an DOMEntityReference, the DOMEntityReference must be removed instead of the read-only nodes. If any DOMEntityReference to be removed has descendants that are not DOMEntityReference, DOMText, or DOMCDATASection nodes, the replaceWholeText method must fail before performing any modification of the document, raising a DOMException with the code NO_MODIFICATION_ALLOWED_ERR.

    Parameters
    contentThe content of the replacing DOMText node.
    Returns
    The DOMText node created with the specified content.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if one of the DOMText nodes being replaced is readonly.
    Since
    DOM Level 3
    virtual DOMText* xercesc::DOMText::splitText ( XMLSize_t  offset)
    pure virtual

    Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings.

    After being split, this node will contain all the content up to the offset point. A new node of the same type, which contains all the content at and after the offset point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.

    Parameters
    offsetThe 16-bit unit offset at which to split, starting from 0.
    Returns
    The new node, of the same type as this node.
    Exceptions
    DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCharacterData__inherit__graph.png0000644001725400016040000002731413273140101024177 00000000000000PNG  IHDRlHJ|bKGD IDATxy\  kQ,VThE7(h]W%T.Tub & dd3g3gbB0 @giz! B@ MtUWRvQu!D:#==֭[(tbUW)L&L*| E%h8! B@ FbccTWW' 9rرcw)vvvmBX` AhBˤѣG744O5553Ν;111݋8uԴib1@uuuYY*sugdd*m_J@h[YYM2%;;{Сǟ8p+W͛W\\\]]/%\OOO镯XbյJ|"%77ʊ Μ9cooBB0<<4<<\(W\))) ,~~~+\~eqaҥ&&& C ݻw߾}}=>܂ ֚ݾ}3/^=zӦMϞ=C\z5**ɩd1 E\n\\JLLh\.wr744$$$N#={&];w0 㯮Nm?~lnn~}|:O%%%a)SVVV;;;GEE۷4++իW/^}xxx\tȆӧ]]]iss󼼼6Mbccg̘AϷH$G䅈X,>}ӧO\A||t:]OO{ BDi`L:t+,,ibbBo9NQQ>_[[!diiY]])--ݱcV|>_"쐐ٳglE;ðؙ3g{1!M̙8qbSS͛7|}}VKK+)) >>cffFRVVV666z>|~B%ѥ:r&"mfsssk׮oYFz 22Ņd2LwwPE|>NȨ|>_QvD[s̱nhh}˗>}.0UV >|ʔ):ۜbcc]ԩSLӖ-[8`jjz9uC {3%錎G_dgg[XXl -[ֿcc˗x< pɒ%/ ðaÆ8::\zN  }a svvwrrھ}{ss3ψ|Ço"dڴiĦlv``|H$ڽ{m>}&Lq(A(o{p .DWX %55?L)"R D@H! ~2jjj@"cmmk>D;z'i4U6oHN.X駶tB8;! tׯ?yN:wP(~!鲳Kh4-Ps ?BD._fDbyO!~חDfx-- yOK ſPu!׮=$--yW%u!.^,H$sbߞp8xݻw}Q@@ib1{o?e35sС7x˗s\+V<~xŊyyy C" VVVjjj*++#666~׺qqq}ٶmܹbXs&Ct1220`'|m6 # 'N022ڷo߸q㬭=<$<<|}… ͛H$Ԥ~Kaa_SSBʕ+!$Ν;wܸ8HN2dѢEIII-ݵkPӧ!X,9 6(_|QTT? ŋ'OO|F~$~޽0{SNsnݺ=ӧOd2e˫VB͛7OQYm 6]!O?}NGeddXGݻ$)) _>--mӦMeeeׯ_ߵkkjjRRRge[ (__߳g ##Cns###!;-իW!.fmmm,`kk |ٙW4< o>x`zzz۷o'$$|ǎklllnn޲e]JJʕ+;Jv|PVVޓ^]; *S6X?񏯾`̙3y0tŊqqq9BhCݿhhСCB7n$ޮ/^aG>裏>R`IIInnnw˗/--- PQQ*@EE=pɻw is-c``пϟ;993?~O?8p@WW!dllF|rϞ=|>9r.C;Ul9"{Mvv#G6oތ444ܿ?~k?h4qmm!CBEEE_~V---$**J$]reΝSԼ0 ?~<ĉ| 1,"Μ9#1bDss3ɼ{nXXSSSnJD^^H$ɜDEEEEEM0A(÷D]#~T޲A_0 ͛߻wᑐ몪oܹsҭO~ر??8pׯP(ׯ_xBF*jN#lv}}}YYb.\?p6lP\\7n\D&~Eo߾Ç9 )++۹sÇ?_+1P(h4Zkk+>l2Bwv޲3;waɒ%4m1bAHHȡCBCC)ʤIVXQ__O `+V˶щ8z7o,--###utt5ohhسg>"=Zf >ajjO'%%Žzbԩ ,֖)S̝;MFFFر8͑շoߕ+Wn߾]OOԩ~C_ --MvG1K.=>on4##Xyvhė-Zڵk.[j;sr@ )"R D@HA6ۺuKP*Pׯ+XLkn6GJp=ܛ7oT]B!2nܸŋbU "۷zMM:T*6tebu+*LqYaK﷗8p3T]EϥXbƍiiŗ.1E"1aoW] 9x4H$16?~o z)WQ&'ԩw4U$#h4!CL\Huד'^^.giB-/v7u>]9AF~nn3KK_PZxv(JfuǦ%& rߜBxz:,\8{6;6 z S]]}_}aaI#Hi͝z7$OvTX0!<D-^ៗ.DbX"6FhW}V_~b BӜ\ s@3Gkiɿ/E&&}y\܆*:ҢG@!m6FkR 讄vZ qmV֚όjkS7oJ%FXi4? ~U'X"jٳ.^\7jI|)|_~9W`7o\P>urk#99k--IAAaKP(?Hرeć==._^FUeHukο}cժ6o] ˗']1cO?P:QW_ꄃEbWjΝ?BBmj/9kkkjU0ǎ] J5kTFjHرCΟ_'Kf乪g"*ڸ1=#M^=U8<^˚5)׮=޽{cU]x?byILÇMsRu9=aw/!!nBDy~t1*U+99^Q;ܹLhwHM!$WVu9j jݷׯ֞B>>xD{Uav՝;/߹ӏFsjti񯉟-7t3nnCSu9 B ?_nݙq= /e%{ϥKǏ=lķ I )0ʕ'w=yr9$9;[]_?ٳܼLh"8鼖ц gΟ/ݺueU]Fkiͽue0T"K_`/uwUu9௡].߱c6Ui θw_O'Br.\(?O2A|֝0aXll0|ikSO;eJð{^d@'B!Az&'' ?{7DnܸQ[[jzߦ<[p}R9N6KbqTՅB9ZOrhםCHT~7#q"(55u…y4 E$_ Fz:c"R D@H C"&((Nz>rHcܹP(vvvm }||(JE_ߣ+};6;;[9UlΞ=KTyםza Y,˗/GЀ?4f̘;wܻw/""ԩSӦM#>P]]]VVF\~xO>D__?55xK,_wTUU 5M/9sX,UXXbSGGYTeagϞ%ɤIlق?d0"X$$$m7oLOd׮]'Nׯ߿/QGG`fll233k"ݜ}W*9g"AAAfffog̟?ŋG޴i_>>>W^rrr*//g2nnn CQ+.bi4ݽ{ ߁6Ӳ;wapBuuumv?BǏ߿_~}}=N9~ :ujeeeyysTT%K466;v !pƣG";lG8NBBB۷=LD_6H^u&añvqq!8GGGO5 r g=zDL˶b{p8I,+jp>p-ի#""0 KII6m1f#imRlmm%%%m:߻lG᭮]&dOM~ GVz[`MR_~Mi} O5t:ɔ]l+ n޼קOK.\.}yill3ѣG{uIDATiffVPP ݶx̘1<!_`V^^N#w (Г'O!i'{l_3555 #fp!KKj|Nii;$==f̞=f+jAΜ9-Ny<^LL71gĉMMM7o^_|w^Lf^JJP(733RUUUJ++*UEݫ674eW=teX,ڶm677]f쌌tqqa2L&=44TQ+>O322t:WԼ[^]~~9sg߽{yOfee999 LOǪU>eb7oEEE!.\/?uԪ*&䄏#g"%wIϛ9?ԑ3xdO(dEn_v܇Gmfgg[XX࣌˖-߿yBmcV]]giii``0n8-a 466X~=qwd(%Bĉ$(3De#9E"Trd;BWh:iiig*@jsQ D@H! B@ )34mѢE-RU5@P(R-m!K|J:M FCC)BhӦQ.,&> @EśIv!7ۛ5c"JQϟ%L";"X$=[Zt/jjrjT[ځܹmm*>MQϝ+Qm=jBh4̼'uwI$%J@VXX-Wz-*RU=Bh쿯ep4Vv=Uգ D .28HS*RUUjBhWojj,z\h49JffMGA =܈ĿǓsdA UREGK2Q_HG^I$y!y,[jiW(RwCK%#\\"u3R D@H! B@ )"R D@H! B@ )"R D@H! B@ )"R D@H! B@ ) T]FbXՅt!deUu!=Jݵk 1DzgϪ 5`eŅ鈳gKϡLiii. 8! B@ (Rlllx#G400;vΝ;E"ήͧ|||(JEEիW666};vlvvv7ڶmB9gϞSZZ B2!CEFF NwZEE8h@;2Bb|իs̱p8/_~Iff*++麺7~PBϜizSoxD"4iҖ-[  ˵IHHz{{o޼x699LJXի-Z$9ՑMcVVVFPBOߵGGnTHPPPpppmm۷111Eyyѣ7mڄ(}||^T^^d2 V\.WWW7..b%&&h4.{nӇ6Ӳ;wapBuuumv/!?~lnn_444ě*W;0L" 2ѣ}wNNNmˆH;M~+++]]iӦ޽xJc:ujeeeyysTTk~~~'!!![E "!p]\\ёbyyyF_988dee>z􈘖mfp$ISSX,V\Nȭ[LLLW0,%%eڴi|61 +**hý{BL&SzaiH$***vvvRNv>"T*,[[[|׮]/ zBDt|L$::J~Cӥ %~Bۼ[0͛~~~}tR;Lll3/~@̬@mqq1cx<{7nݺ67+I/,"p3g#;￷RԱrPn K t:kĈLCn9t萗WXX1ĄxUq8"|6BҲSZZcE|D"IOOg!!!gfيwa3gDGGKgeM̙8qbSS͛7|}}_ݻ" ;8lZ,۷6l؀UN L&$B1cqZc;އfffT* XYYieeOkiPk9^^^۶mc湹kUWWYF\dd d2Z|:QWWO|팉Y ޽sppo>}4++] `RcWZ5|)Sy8 ,** !t…nڵkmN޽*))!9iIpp *++ Ən:E+555ٴԩSL~w I} ru$D<8rH"%;;elll\lY/__`XZZ.YD#mZe 6LGG1''ܝ! 4( @}a svvwrrھ}{ss3{#>f>a~~~ƍ#MXbeH$aÆI:MD$EEElܸX}( 'Nطo6fفׯ'ΐR^.--  BIMM]p!1D@H! B@ )!==]%^ Bh  faa!=> D@H! ٻ('IENDB`XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.png0000644001725400016040000001107013273140100021107 00000000000000PNG  IHDRpbKGDIDATxyTSG'$$(MP Eŀ*QD BA^"Eei[ -u?*(\P xP@TD=q9la3Ț@ Ǽk6nksg癛$`";?? !A&4ƫWvOV6w|-\piB3x1@ ѣDlld ? !Dǀ8;;'Ξ=;""bFDZZZ* /_NRa[SSӴ4 ߶m[IIIzz3,#BHp\\\t\2t:/xC׈2ryݺu믻(=#P766d555/_ MNNtwwGDD|2))444<?;vqرcd`3g7a9 qeXǏg666{166tuu>:88ׯ 9swΝuYXXX,>y]dƏrkkkچ֯e9 B,[n޸q#88u&|7nM''|E7|~FFҚT*F;>@#EEE!!!nnn+Wͅ5;;;{///'O&^x{{uvv :ry>'NT*sb/***r~``ٳg.߽{wժU>>>ǏJJ?D ˭tvvD"e ǫYfϟ,XTTTYY_TTTFFFcc#qD"bIII/ֆ233BS:TVV"Hbbb/\jժK$ѣG}JKKϟ?&/n߾0..ȑ#555骂N....--e0vvvj򁽰ݽ{nݚYYYqqq}ݽ{Ν;8(FBdrttSofmmy222=jmm믿\2//߻vZ??܀|7nhdddnnVRR"J1 t:=''`ݼysÆ k֬Gk}gSNݶm̙3UleeEqHt3n877bP'O⃟bn:88$$$466xb֭YYY %**K*h4Aќ;& #WWWx;)77ʕ+_|ˣGRŠ#'ѭ]gggjjn0k׮uuu)=8uuuGbbŋǿÂ?}4>>}:%%E kmsvv[nmݺ5---!!O?Uiooǯ[B8::;v:u$::޸qc|||xxG}o8q"==/}\@D%HϟAG4OG-ZG\(:<8gT͛% 4Wxb@@pIG(}2.ŋ=E btuu===51?XM6ibH2AC Ld3<bijjp8o0 "BP(C?_}Qr˖ 6Bh ? !A&H2AC Ld ? !A&H2AC Ld ? !A&H2AC Ld ? !A&H2AC Ld #'O?+ss &ƛ$מǣGu99y׿˦HͿۆ(>"ԀF9ల26H`A4~~T}IF?1 ߠ/3hT;R .א7zkyzw ??; a HP5{$4FA ^^sWZZ??4fS0dl2 y@j98Xz3FA"|*U aNg7D{/ֿmMv:cܬd2V7elkqr<oj鯧ð3g5dwGx 5?& kLd ?^f̀ժ,xh.]t:b$rB`ʔ)jc@ RUU5wVYYYʿ 6 ,k۶mܹ322͛7?<::zx ڔsLR__'ONnnҤ߇%Ktww+3Ŏ===f 0,<<ֶwIJ~ gMLk.UKsȣG=zIa^jjj 8eWW@*FEEM8(**J*™.//,???::̌'b+@NNg2iii>[ZZtuuǍGU&M Ӯ\sNOMMMNNKIIIMMV0vM ~5U~gnn.344ÏFvvӍ"##{zz5ŀh"R ǿիW744L8޽{иo>__Ν;w4o޼3ṡVTToٲEUN!BaRRFX,^U>.]~e@KK VYYY\\bbb+Ao8r|>13fBXqƜ9s`>|aӯ\>y/+DlmmdD"lÛCd2J "wD ?UѡEO"| a,beddx_QQQQQ`u֩j%LffffssӧLX,V<((7̒|||a2lҥ-Woo/_b(t 0@r߼yItU>p0ٳ ]v)5 gϞ .׬Ychh8a„Ю.aH$[l111100XbEkk++0,##cڴit:}ƌJzxxۻw/Ś6mZvv6+J.\)Oyjj*x)n)))aom6꣫)9bzHLL@ q@/bA/bl ? !d߿Jb@5oddRB\0gd2AC Ld׬vLIENDB`XQilla-2.3.4/docs/dom3-api/functions_func_0x66.html0000644001725400016040000001012613273140100016663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - f -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCharacterData__inherit__graph.map0000644001725400016040000000174313273140101024166 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator__inherit__graph.png0000644001725400016040000001145213273140101024414 00000000000000PNG  IHDRpibKGDIDATxy\S'$,e .hEZ *R ,uUPY*hQbU>WDqշ*$ D& 9{n. 1=_s3s~gf$'!a, $8PD6n>Z %T*555?$>H?PWWw4CC^xQQqrr"4(Ak8 ! A(HpB0pvvzzz3gΌ3y<ѣGkkki4ڤId2522:~8DoٲΝ;'"""..uVbbbVVh6l0001悂##sUYB?jժa݌C222 Ba[[/f͚#G8Nddfxx'ORRR---&&&U___CCLZ*==}ܹl6;---$$X^  Fnn]222$FH"""JKKei;1f|NZZZ:::gޱcӧcǎihh~GT*>33 ]UUU͚5 ? RWWdggkkkW[[$::GbBWƆ2&2 OpUUU}}} ~~~ؽ{7łĭ`K, t```@9B<=`8AᡓSee%Wy5GGG0B-+++,,,++P$@uuuXX׉'k׮X/_WW|BW;tL˗։ׂ3T_10gwwwÇ^٦&Ja^p [%%%@qq1FJIIχO:pݻwV</11 JNNx544PԎŢtcbb31cmiiz;;;fff~~~SN=\.OpMMM "##srrL&TLII n{휜͛7c t( ڵk𖨭UTT7oZ_MYۿwwwfffRRRmmɓ'E*믿/afYYYZZnxxxff槟~ XfqZZZXX\lٲVq\777'''EE .H4WQQYlx- HB*++MLL0?#ꫯ`BXZZtuudžl6[<???eeE`CW.\099Çnnnd2YZDy@ rJ^^\G^:++J/a NUU>駟RRRN///PEE&&MR0gɓ'OJMM---8??, `CN{{! ^KKF@ss~wA)KKKqttğ4 }߾}\.Wʐ }:ʡݵkצLRUU#{-|F! aa^ٷ`؂{ř3glll:m6N[yPڝpinnYjDׯ_ D@PQQm۶ge.#;w;vl2׉ , IM:...&&&fffn2#c`rrr4 :::P+725a+V{nUU̷jmmݼyٳgE,Yɓ'O߿k(+su6)Pl6… iɤ=== qqq4 a07nsN{{7"##utt)rrxWSS;  W+\I6D?o<uQt^ n ]t7FP8@OGtzY&rJ jeeF"bbbx7~-HpBAC P $8 }āH&(+[++[vc###Q' YZ[whM2dr4Z~-(*{də8o-q ++d{)A(HpBAC P $8 ! A(HpBAC P $8 ! A(HpBAC P $8 ! A(HpBAC P $8 ! A,R蠠``0QT*u$OH  gF #EhC P $8@aʔ)ݢlvLL̙3͛?tRzҥ$Y4FΙ3dS}}}sέMJJ{֭[ /^/ӧOo 2:Ohmm!lF}cP(:88h{{{@`XSLɁnnn۶m=ztҥO?~,Fw;w! 2Ҋ ZGG]n֭[1 +((XxO)dKJJLLL$/Epՠ4TǠիWEK+a}v2Յ())lSSq+ n޼booE)RZ1H'Ni}}A&OpJPᑕI ra~ccE#Q%%Ç%֖i&9۵kPV\.W(>}N._Ne.#>|xٲe000p3)f'%%9-yfyydrkk+Iqdii/1xu+OOO 'cK{ߧ3g‰̙3t:ðիWkjjjkkYf EGG\`|q+ ÊM`nn^ZZ*\Jgĉ?a,kӦM3fPVVܹs'mūh"UU7]w ~= Nf' BAC P $8 !ep'N|!gjjjF>ĉGF8b5P $8?rk'ƅIENDB`XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__dep__incl.md50000644001725400016040000000004013273140077020636 000000000000005e199ef5a5fa52f387e96ae6af608790XQilla-2.3.4/docs/dom3-api/inherit_graph_30.png0000644001725400016040000017537413273140101016044 00000000000000PNG  IHDRSc%bKGD IDATxw\S'Fe(QQRkm]Wjԁ8Pug-b^+ U10d 0son5s>vK6m255=̙3SSS#"" &MUu; RYQQ^Broߞ/t~˳-,,B!!$**Q"Bd2Ypp0133 d )))֦M[B\]]{ekk{QB\.o9}ۍ0?ndd LB>}###]oo޸ٳg4 :Z`ePPP}}}9駟 bjjm۶G4p8vؐ!C}vBȸq!\.٘Y,!{ԩ#Glssm۶"i'EQ:tSNa7@OAAttt[jϟ?ܺu. 5k֓'O|ۚ5k!dʔ).\ظq3ϿرcZj%z޽{f?\g+S7qĜ>qfnMD?#!G$ϟ7;btٳg CB***+}' ._Dzzz-*,,(++kCYXX9s<99ޞ>D!j&lPhiiqFUSqq1W͆7y6tmdddɒ̥K ;ZxzzNNNdȐ!3fhŋo޼iiiq@ rM﶑>j(ծwll,EQOiyiiB !/ kܯ_?BjMkiy<^M? $ `ѢEt^VVרQ9ޤQ999...WzH=&OݻwҤIBU&' o޼IYϧK7oR:RYxiӦUVVԼ(:pԩS]??M6.BH$^^^\z599ym0\ Vo&XTTsiiut dff}]]Opp;w߯^QT>|zJrѢE+V:w\RR]>s̐>o>V[vmFFFFF Zj`0&O| H$JY,nyuu5=6!ҥK3f[z5҆ &Nx@?vX L&s֬Ycƌ133k4-ub̙rʼu5!_~D{i>΍f jjjWR^]]]hh(!V˖-Ϟ=[QQAϹATHM[&e~?|pTJQT||yee%EQ"h… XdD"Q"\__ }}}B!]޴SBBB+[beeWZZ~b800Ņf;;;֪WgSRR!kTz畕0`UZ >,,.!!A=rյf5e2۴+ A^^k׮[YY߿̬> ݻ LMM[ u`Pmx(ILL _-9uꔕ'Nݽ{b0>>> @ zsj@|~xΝڛ7o_>vPZkkkO^^^nkkhѢmeȳuꆅi;NF4y6ahP(.-wwdkkpy6"\iEvv@PSQqNNHTOr5kj7B-z<;66ί겲Һ"2(P(U5 PX dmʳuuuГv&BP!yEQvm+^(@'ЦABRCvC.WdVjX̜Xe =lx9Bo9rEGGG.o>'Nlsr2G:*22֭;`0JK:F "zHT8ٙl1t(ق3Vy6/+)/d/Z!/*y/.U*)^Z ut为ZI Zd2?_۶TPM#9yrqvM+?|,+>iFFQ]TWWLsamjگcO@gl9C>l`reQ0+OKKEёuuturp0^@<4'k\ yk&|Ӭ҇d 9h)sZ:;[`a%t~ȳAXS]WJ22B !1sn#o\gCWB/v?~\"Re`{`ja/S<F +/ +]]-::rGhbWۑ@<\SUU޻`a%hlV99e O};;36..l#y6 /\Xj8p#.y6hXX y6D5^X7mXX /<EV?)/Jh/Zu[o_}[[,@ VO}(@3rsb\hS\\(:ZaaUxV(TYY ύ7vޭ(@cwM7Ǟm !<<@gPccc_^^^A">_~[lQ͐`8884Z4eݖ;Ǐ3 ×zgB_^\\\XX!ܪjjjF~퐐cǎyzz* B~~{T] ˗/N"77Ą~_N)/gggƨIϟ#"N{„pm˨2@mlSSS.kaa1a„x[[[Սi7mdjjzy///GGǙ3gGDD&M*11ãwJݻ7rX,ƨ55iGܰaC|zBeT}Gy<;11B(B% !D&s833`LF 8uJJJhhSV$WW^z=z"˛m>I ?>}4a&ЧOHz;&&F길ٳg4 :Z`ePPP}}}9駟 bjjm۶G4p8vؐ!C}vBȸq!\.R zSFfͷmF>}ի i^_z;Hi+Jə˗G_*5BA)ʞva|[ }{DGG7*iKJJ8έ[Yf=y绹YF BLr…7:;;;6((VbX__Ň;vhyUUաCnBziiiFFFEIIyyyvá>z޽{f?\g+S7qĜ>qfnMD?#!G$ϟ7;btٳg CB***TiT-ZNqʎ?nmmT*)JHHx2uiiiwP$5 EV(n]{r5j(ծG}yNݨRBAoB !j~!imZKl# ׿%GIfC&%%ݽ{讚}uJ JM9[-uͼJӽ{N4)00P5ŋ􅥪dEBIOO?}ڵkmUWWT*cccRiTTԴiZjFE8p`ԩߦM&L*H?SU\z599Kq[:p8L&377wС Z ^.\ZgW\JAuuu>>>111ӦMkhhPBOG1j(U{;ػwfosVUk߾}͛vڌ˗Ԋ`L<ĉ"H*X,6RjzdmBHyyyIIIQQѥKf̘ZҷaÆ'9sF Ǐ;bҥL&s֬Ycƌ133k4-ub̙rʼu5!_~D{i>΍6v J555ɓ' E1fo;+_=V̙f1 tu}On*~RxssJD"…  dD>(( Bi+: ;;;===''VIϯT,bq`` vvv UWVBר+++͛7`ssUVյ|XX]BBzu]n7;bMkdW]ݵkWkffF/Yo߾bXUw_vzI}ٌO>9:p`*K=p$],f^e$@c0ͮ~gjjRIv|n t32?00=wعsǖҫj!ȳp >mmG=z@;A y7P W<{IbݤgϪ-:qɩS'O+42uڴc~5g~#?yllZBr+ӦxÆ2ݻmKQ^W,fձE2Oj;Фcƌ;wBV4͚;w1c447_p {o{9Қ`W[jUaajW`ֲbD’HX,`P{+x]]<ܤ˳z7h 0W$~}mJKJ?.٥J%շ#r0޽\3B ^>|999o>>c8 r2',+$+/LOR^^Cp \]tnapDg#Bwkx^^tuu!"QG¬uCbdj9x0ё6p> xȳڅT*N=pӧӦXtY?>JJ)24d& ur2]&)wɕbwAz[Ξ8qh]ljj>llQWWLő#ԥzW_%5_q6MGy6tmY8|+cѣO>9Y>7B@<.[g8:r ܾܹ˖7۷owlԗ-fe>|L&SзVZ:;[h|.EQ_غۼyl]!Mzʿuo#-+YY%k>iiҲ ;/^v٠IÞ=zxhl1#NJ/[VZamjگoB(?a]ץTRiaaUU B&SUYZފ^UB.U*)^Zy{ӹu^9F rӟaB6Z}''jadf5ʳ-[,߲iӆkvk* kpKB jSwLEB3IOO'3h8[eKrղEOOvZ}2o9:r IJ"+8$/ IDAT:;pvpv dڮ_ի|m5e\φ@QԩS6l4ͰiJ%%4DG/uv߿OG:^͚?+WG(J k !Y"*+ϿSRr=sܷz|-7n,Xpsh7HҴEncc(@^zŒ tfoF!(%!:YJg]]]L_ˏ,8&?~\Qhs΍ve/}=[.GGGG4Jsrrrʲ˲?.{. !,SGGAFa0 oK111si߸[uJւ}wݾLfO ! ;&&FہP>>> EGlx lްaÆYJ(*,ggҙ@PVQ!og…Ond@'<^ oecN>Z>qxoI6hVH[O!X^^A~ d@gzgϪ9`e?"b>~y6CyyzD<|~oٲEu>-SLa0wՍUwF544|wsvvv+'RCuޑ?ϞȈ}X@'| %TU_3m۶u@OClB׋ #""D"[UURMMѣo߾r1OOO=͡B˗#G~+W{OBCC ~gϞ]tIT~-EkbbQJXT[+?D׏ zk;xv(:~uttPݥ?u=7655r&Lݽ{7ҦMLMMϟ?8s¤IԯX'&&zxxv׭[gbb_B֬Ycnn7:#:tuHlJ'1NHP.[vɓ%&&}X}O !ÇӳBw@g<;11B(B% !D&s833`LFX8uJJJhhUV$WW^z=z"˛m>)  ?>}4a&ЧOHz9OqqqgVU;rO?uֈ#GXfKKSFfb77={x֭ ӧO_z5`llL]ӣ4V/ j&&&AAAիW[Psr?dkkp SB=<<&M䤺VjԨDnKJJ8έ[Yf=y绹YF BLr…7:;;;6((VbX__Ň;vhyUUաCnBziiiFFFEљGyyyvá>z޽{f?Qk֬!5H=sѣGS%-ZTXXHg eee}wE"щ'!ϟ?WP߿+Jxv_o:6y={zM]]]۷oB߿O(n˧y6e~ђ%K233.]*777o驺φ!.2dȌ3Zjell|ś7oZZZzxx\rEGGm'\nzzz FRz{{Rфcǎ\p!...!!с街J)))==,//QF9r y<!DG/ZD(B~$IRR… ~B MJKK =t{{Bz~g;WBBV;N۱t"={zq\nbb`0&![y>Kӽ{N4)00PUhbbB͛7rz2ϧK7oR:RYxiӦUVVԼ(:pԩS]??M6Z@H$^^^\z599y={lʕ;vxCCC^'88Ν;oK݀7...11qԨQtrӖГŋa2nNNҬ]5,0ڎsSBk.lիWk=N.AyR\hъ+Ν;DϜ93$${yy۷Oռy֮]|򂂂Z1ɓ'8qB$IRf[j^]]?6&]tiƌyyy6l(++8q3gA||رc-,,/1Yf3LUNQT@@ŋ !gŊZCCT*ӫ %/'.>(( Bi+ZiTK+--U? XfjkkUmKw)))}9rD__ǪRSSutt曪ڵVVV533dǏ۷oo.Yo߾kE}XŒ.m r޼y 077_jU]]]kR|֬cl*+GV[i@@ɓջR*vvv_|[}jzIa0>>>/ %111sy Qr::=;@z(?t@ػ|B%=-N>G۷{o=X۱tk׳)gh[ڎ#d;wo.sɓ>}Yz:ЭTWݾ;/!ݾ]pFk' r##@Ql.TlFJjچ'u϶T*}ukwHoFhkkq}J y6t'7']*_j;yҥWd

    }zqݺide_@ φ 7<88zfv,A~~Exo~{4n寧Sbry;E=L&{Iԩbj0!4??N:zS]Lq4~}}}? ̝;7**JQtW޽{jժ]vi; .\PRR@֣d֬GEt$[.W^(.?Ȑoan4/aku֙3gj$Hx5+),,7nի]vj; y[o{CWqХǎi;zYllZ|rMfT666666 XYYy{{k; hwCa'tao%}?=|fcc2oޛg8 螐gCW_x'j;ȑkY,ܺu [B ]B\>c ^lbXo̙3F۱Eapq㾎N x֭u_|xxׯFDDD"77*ѣG߾};$$رc =UWB˪݊#GԹsyv-511v@WR_/[䈕ՀXٳ;}m`|}vP,,,ywyg_}!dӦMϟg2GG...}!dҤI#FJLLMN0wZRRs(ʊ mGz6t%_|[X(E$l95~7rvsڅ wD PHrttH$Lp̂e2Yvv68uJJJhhrV$WW^z=z"˛mNv# ?>}4a:ɦ'88822QM={'>SCCC>LoWUU-X2((য়~2dmێ=:h CC׫"lB`0;6dȐo߾2n8O(."&&[u\(JG^wu]?dȗ{i;"ϟ_RRpnݺEϚ5ɓ'|>m͚52eʔ .lܸٙ߿رAAA-,..>|X,ޱcGͫ:t"cNKK322( I]vm=zr޽Kwf?NI7lip&N]\\6nH+>>>"~ <-jBСC z_Rm~ 5;8|Wi;Ļofc׉յkkc% ---]]]$T\\Lo'''1|>EQ>y$TM[UVVX;w BRYSSP(ZjޒWȳoܸabbjlٲ"##===U啕PqR)ȠwO<==r'''BHAA]2dȐ3fŋ7o޴r劎NKN sFG(Ѥccciii >!޾ׯ!b5ViBKvM!φ. ,,)7|y,ŵG]oLC(ۊ={,, @ӽ{N4)00PUhbb, o޼I) ϧK7oR:RYxiӦUVVԼ(:pԩS]??M6.BH$^^^\z599y~J2fs8&KXXXT-iixut< *]+۶Ͷ5V ə~Хu릝9zAڊgR*-ZbETTԹs璒3g|//}7oڵk322222/_^PPR+1y'ND"TblvKͫUP&]tiƌyyyW_ڰaCYYĉϜ9#ǎkaa~ydΚ5+ `̘1fffyK.͛7|>ڳgX9s\2///##cݺu~~~ևXt+ZfUk?WmI<ު+"D k˜~RxssszQH$Zp,Y"H x$;?yPPtjjn@`/==|S {N֭o=W]\4r?\ܱ㌽٩SZu@ Quu,ߑ}ʕrs?|J@;L& +B ѪU Zz)/ym ؘtqzT^RR]Z**..+Wj mm !φN'"ٳǏ/߿Oɓ>};I}6,ڷ¸qv밃*TyyMigϪEϞU*+%t5i?ǐ1ppÙ3;,H<:G:iժ1GMVV}sи7s.,BHT<^VZ*iߓ'%%ɪe|RP(QJ$҃s~ۑ18pA/M@ׄ<:;`ŋ>X߾~mQpbccccc;J?|X (J2QK=TWזD肂&5J`hp VP횚Їӈ7nwVƍo񆶣8ȳt#rwߝݽ?szbcc^ٍ7!Rt̕+4@<3~Ξk׾[]]wVk ROOW&SxhoxhӞ=ɷo?O__)o9paOϡ+dkCyyzD<|~oٲE.:884Z7eM>{>۷{|f$WӺC04d{z:[7^%l[駞; H@y6hw :dOWT9o߅og_z?B_^\\\XX!ܪjjjF~퐐cǎyzz*yd`~~{T] ˗/v+**FfSSSΝtI暘oeF)z7U&GGYw IDAT/={tZ<Ar17;(UT$<}9shP155r&Lݽ{7ҦMLMMϟ?8s¤IԟדChh ~DZc:400pŊ;w쀓R*/դqH!ߊP%$}=VV>k+#11B(B% !D&s833`L`0Ο?ommjmmmjjﯺڴ!$))յW^G%fӇhO>MFFFnذIz{{Ĩ͞=[Uĉ~zV={x֭tɩSK۶mSEKիWVhǍGr-^n[m MP.%*>faaIGKrvAC_X%%%֭[taxxYDElBÎ<h!!q cY37|oJmeYedddɒ̥K [[xzzNNN܆|Ȑ!3fhŋo޼iiiq@ r*5JKQTI#mkkk]GbzzzYYY^^^F:rzCzpЖSn}[Vza!φ32أSSswԧÇ[i[{޽{'M*411Q] 7oޤY,!%7onU]]R\xi*++[jFE8p`ԩߦMTw!H$p///Ukjj^<}t{oR_ddL&ci4M'88Ν;Wf+[ǡ^6tuȳ㔖V_p[|cTMooaHSjR\hъ+Ν;DϜ93$${yy۷Oռy֮]|򂂂Z1ɓ'8qB$IRf[j^]]?6&]tiƌyyyW_ڰaCYYĉϜ9#ǎkaa~ydΚ5+ `̘1fffyK.͛7|>ڳgO+CCT*ӫ %ԼBKL'^p[VaЅuT>q5қRܹ<ު$B>;F[~ÇJEǛӋE"…  dD>ٷ>((77mEQTttSBBB+?_iiY@6V[[jK_$NII!۷Q9EQgx3fLbbgj]vjffffZ7)d۷kmoZgt ?$ɯ󘸸eٽ~oҥK|]3f~LJ@Kî*)޴)1 $5qqFy4y6; ??Ro+mmM_CnI (ϼ#:9k; y6_~~rVB^?Cݾ]`8r# {˕En޸}fNuu!d-о>ܼ9O65/[vczHx]Z}Ν[r_Ͼ};^T*J%EatMMi;F y6#Z*hfW?teÆܴiQBEQ P?,,ڵ쌌BB++Z. rkHz:Ў""&&~Zoc׮?re5@UV[ 0~D*7[(y6 φRPPm~9b+wBQ_':tyvo?74@efVdٻx7"e˾F%J]n%)r&Tn}Tf%JhhEd7X3qo\[0sμs=y{0r"@3(|IYY))a99QIIa99 !>>b C٠W3FF߲żۍ0;""#ϝ[` 늋#"".H@%%Ŋ;^(8uAR{^^"tv**drCvvIee}M?O$RRBRR22"22"OŤ---of0:>_D9sH7=~QHYY y6/zUxnh gkgKAA!""H{D~~~~0ɓB' q*OyM$ɶ:K1䆊 UTP޼).,Rb||QFHKHK ?Lۻ}%Kh#**j܎f͚Ew< nXtYg_y;V{-45]{%#&NӳqǏ?~55571݃JKkf13ә1㈠ 2vٳ7m2={6166@mYl(--ٌ+f%EE5甖ֲ畑¥edm%%q99>D$@ ]Q[ BB!?IHܹsΖ-f}3~t_uxJcWXgQFy61L&:fnTͭ ))߅Fc-+++))y᯿@PWTܹǨ(3ft.//oFF52,((mjj*+++++{)BZ[9/..}Xq1͛ٗ8뽷aRRRk׮MKK{ѣG޽I1L%%qƱv. aV9sW*++SRR 6m]]UUsMGo+MzJFիBjj;Gvsr`r;(gI dN6uss:u*;իWZZZi377{*vVW_xΜC7m&-{wnnnfffta؛7oBBBBǏm"YQQѴ4nJJy6=G>;fgg9o`{ 7 7$Tkל}.8L ) B!.---%%N/$%%jkkB 3&((!D;tS''[nDsFZ[[c?22Wtx&Mt;;q<==c޼)0u@>NQQQ[neo˜t >}w7uVEXX555iӊkfVPPPpssçmmQF>|;{I="봴~߷VG.0pGZwqpx_xʕ+˥?]dϟI$]-KKˇz{{H,ccc77j544]|ȑ#VG lb.**aUUU9'OHKKu?| ##_[[+((X]]5\:Vv~svYm{8l/!Ƴ N&uaTQQ0lݺmuQ޽{G),,dvx ٻc߶755'HzzzYYYQ(PMMMg捀fec?~WK^s99܎!ԃ~ƍwf:}߾bcsA__!0p_>~,?u*L !gY˗OvPuttܷo>WXX(++go---PQQ:~D[[[[[ZbbbIII'O244𰴴:rssUUUedd233 dff?kmmnݺp8isA\+ ݛH1BtzC[7l֍.zZ,3Nbbb޽Y7nܘ.YP:.!!z5,,LOO;ommmlllllg//;v,[ uta~5`0JJJm999_ LnqpyT kIر/ͭLMXv{M!*..>{+렄kDBD #Vss3Ɍ k׮?>L:0 pܹs]{{3&#&&& .䤗@ o ;v c[/88Fudw`0Ž?^۷oǿ=,.`lٲ,$@_X_Ciii"XPP<3ĸ} 2 }K&7"N S-˖M~s91Uw;jnGl޽+tсKddDYuʀ-RRB}^7ySlZZyk%]gN1C GOfa~܊M UZZ{N7N)&fĉcȳ.^L}WuIysHz2}皚ZOJx1YNNUN4.gPe7f v튼?;$db߄ǹ۷I^^7wr>>Xg lݻddD6m2fn|yɪ} ~Ò%] )ٓSKJJzAzBqq11o~Cxyymmmmmm$.]ʾ;?DELL|Kݝ|X^^(addľ y6 q߾X^ȑipaƉ{D4ldeyM4iu/5@ ,^Qcԩ fgoA$5bec}7Eߛ:d%++0@ I^TԫKV Xfgg砥Kn5غ@1NN8s&QUU2&f1y6TK =r.88LV}[^*ts +.&5kp;" EgN=zǧdrJgͭǏK8Qʕ5**܍C _g.B[2 Z?b_޳gffGUd3$@`PUU^@HHt:UW]]]w!//!BGl`oBuL&_سkQ/*y- IDATp+sjjR;/ P=}$00J/O0!==իW!!! ߼yjB|ZUU3f޿}ku18!)))###//?s̘1cưV_޿dbbŋ_xQXX033`57}t'LfMM >^___@@`̘1AAA!:aum''[nD 1=88ߵgM6֮ZJBBBAAͭ;@ \rE[[[RRСCAAA***"""{mmQF>|!4i$P4(55͛?CB Ϛ5͛x}$~V4yOK ]R26bb^ik>yOjj.`Au]aʕϟ?.Y$p׮]!KKˇz{{H,ccc77j544]|ȑ#V hLOO0 I=yDZZ YAAjV]4ai~~>D0xUطBvvvT*ҥK!*ᵬ(J@@BM@fff=*++6lؚ5kJJJ7*++޽[UUkaaa{~x୬G>vVٳѣݼoeT6m sqwkhhVmpgS(}}}oooA--2|;!!aܸqxE"0 Ԍ_}k}-2wQ d2 Fgջ8ͳ={&!!aXpp9{]4J$jjjEk6x^+))d|JmWkk.J>mTw $!T\\|Y333WWWA (/BIKKÏI\aa!~$33jnnf2d2yڵ'ɝUa.\;w.koo~"F___ Ԅ rظ4H,((_ϗ"x|1/_p~.]gn@666_><ѣ߾}*{n 7W<޳gh GkMM.A^4{;wV~\f͛_xŋ=<E6B˗/)))-<==+++MMM޽cll,//o%KlذaĉRRmq>>>[[-[|);;{Ϟ=/**믿Tӧ9]_68lׯÆ knnB;;;ر555${ pMS7ܹ' fvPQqǁ||qCߚ}V bbbdeed2aT*ubbb⎎o[ZZDDD( ~}- TUU E.f9(**WTTECCOSS.>:w\]7N&WX!...++Y>>>쑳F;/ILLLFپ)6ӣ?>j(EEIII1'NXXXJJJ^]E{}Ps\W/]z}ҥc2o8;߿vb_vBXX wMEEEJ0ᶶ{TYY{ifIvrcwۗI6a)s'#H˗/uSSSZZ޽{׭[p7޽۶nR^^_ߴɴ⩩iؾ=4)֭۶&A0رi…UUUcƌYf͆ .<{KNy:Aam^P44d97@pi--4 Ƶ_&Fc8:^W6/әǎ]o CFo9޽;͛-.㊋7}{uG^ycB6/%_ʕ53DovҒv~! ð;#W楔=u׮W=<>iU;>W<^f>>b5<~EAZZ~I GGG~TUǴ_!'3=M2(ȱWO}\0h˫|8㜴ڦ#'N|ϓ&7N g- 򸐐@d3ev횻q޽[VRu*eeh<~qnYYI&&ctuቘ@ccCի??xΞdBumf/K3}}o?pɒRGHSSW<~UB$tt/?mƤI0`<{:իMv:+}MM7on~KKk~X~…@aػwed1ܴi&&cq;@Bo ll~#^J=߰Q#ٮ&]_?:iiYt֮fb>jnG^yPFիkM/_~u4[:8Q3fh9\XW _-$!mJG:dss##y;`Ȑ@1̎#uŋk..m=~Jߵ+"<<}Ys< gc2/ zݧOU""ӧk̜%.>xpBRq19(h=HuuÆ ͜uywWZZv핢3z~`>{wRee̜9&j!Py JJ,db78'0<}tMJJw0W g?ϟ?NCCۡ vٰa=ˏ"&֓7avcw ^=1!;Y55 xzpA==|:@;jjjݶwY8[? '11o&56~?^yf9sĸr0kiM~hsVGjg>6eCvTRBYRE?`ě7ѯ2**?h E/ΞMmߥә7 ?rĦ{yڵ#oƚ>8|BquhJ1++K'pAܹĝ;JK Gg5Dy^zM߫o{7+2ejjܹǎ¢.gZ^^7FXv*? ;i`:tfl&{47,,mɴ q:UH RR>޿֭H-6?zԩeVVzM.*-yF__cp D1fӓ[jm/XpNgܼM@/,^rʚ~R~6)(iZZ#uuinƳՅSս{=d''prKMM*<|#kSUHHZX؋&ssݠӧk ȳ3glf/3g압%~kמ`Oǎ-xoKJI /]jjyyX= 66\*IN9loyyss'~Y Îwgoˀ[y.*e``jyyݔ)˗Ol7$ ~0^&۲oamjjuvJJp%K]L&Inp۷I#~VT0A=xL/gj:u*ŋ7#VTPW394i$ UTEFvIii)ϯ <R>}re-B(#ɓ]'#m_G:fdEڋ>|/.>~RyJeaaazz:2)=HTUOzp鮮TjQuu頠?2:%壣U--1 J##ul;;PnGK^~Qg ߸qBhΈډv?d>ae5aQPPut:~:`0ùlll ȳO11/_^=|ׯ;IJ u5&OٹsΖ-f=jzǷoĶm3_| @A`zxDNaa16';vfS5Zk+}۶n9s~=jOqB҇eFF*ϯ3G2~ڵ'+[[7ȹZt5kde\n GTT?r%Ν[-:yF4;viEE5v+ukjcb6*%D*tэGfS?l1KK˿x1gqnlܓ ֭m*ɦ矴8Sqt/WW HFYY@cct:z,-- B^^'7dffr;4yMqx /_ !gk;,\xZEE"6vh=M'Oޟ0aߦMJJnܽڨ/~2t<}$00J/O0!==իW!!!1 ߼yjB|8B!Gx@iYY%ZEGL" wڕ|𡷷.D266vssVCC??_YY˗yyy9aڀ\EEE1 BjsRO<~AFF&##oVPPfcfooojjO"; 8xmJtBƆJ#;bx-+++ aoqqqaXpp.̞=;'''--MMMۻ~{ A= Bi:;}N3oURryKr`޿=o Ym ?dr7^anDP UVVo'$$7H$a޽cmE&=JPLf}}=zgg?{LBBUð`sss6hH$fggǣ: {+렄kBONN?yj5773̈2vΪsð .̝;ߵ߿?kuPccſOP211OMMMHHXp!KKKĂ|yy. uoKkk똘pq|T!g `<{xi[=aLVTP/>WVVu 3^^7 gkk}Id2׬Yyׯ?x >>?xb"daaq9Z+Vؽ{wvvvvvM:E fϞER[[[;^WWcn*//KJJʢE>}}v%OOJSSӻwoD"qɒ%6l8qTY|||[lSvv={; ^TT!_QӧOs~m taԩt:}+V`?uּ}/oRWl`#xU>ۅ܊ ͘q"Laa[-}Cɜ3gb#++K&1 RWwttlleH IDATld &'''""bggGPka:l0--.w1˙EQQ޾,\]]uuu}||Xudйsq2b qqqYYY΂UUUe5lvW}Ifbb2rHpҶéT*{K.=ZBBb͝ j?ۿ?6<<ŕvv>>WÊ_TT$։jmV?04W`cc v ޽0$$k8nC7p \Iuhcc'sX13e::rW9Wd}م cb^J;tѢ0O !---W\~:cg{FH|TUVVCx4oժK']97ZZǏ/]x<6r?hѢ~mƌ6l^PãG8ѣbzcO=xQpÄzz~~pdrRRR~~~\@<{wG[ZtYڶ9eKCyxz=}{9FF*׮373ȳ+W kj"#7rR%2W㳨WG1 {ɓ32>o41Q ȳ'ϛ7.:ٳeeEY%00uϞg=c2۷I'N_ݮ{ ,gwKK˷h7˟;x୽{89襐0 s'ر{?͛7ܹZZ߮0@ݯ}SHiua ||tտq΁7JtNZ'K hgk1R9'O.$a{\q;㜃oH%ff:Gl;V7z܈DbhhϘ'GIIS)_H`Yt)Cxdo)(ihH9vQ`ļpa?yTݻЈ_Pvuz#>\ft͞ Cned|:U@HI_||DI}}}}EMM]]QFp;Rt S?n(/=xЪ$u͚+œ&LP^(Yԩoԃ6**Hϭ?&c&""!|dMM--a 0י*MM+V\ɩ~ݩG|ѣ^djjvUxVM"{WHQPАG54dFv>#n0b]]#%ͭ+WToe^*kdidiTTT3@H &9) +0|0nG yvUD"Wee45\cyO%>8q?>>sHV6,:_SSN"df~GIK +:;WTWGu`HdbϯRUJ$/S_yTBt+MMmfϟ?ԖJ;mQSSFCCpHnG Kx7o 6d֞ȳ0VC`21aaw]g:`0/_^cfR[-+.NaXllիM6o6OEaᚚ2354 a z $Q\Lf%!&C1ԩdbW__ibl_IIIvAA??X]<~헹s BC:w߶SBiD_n[@߀l?{ժ] 24]RBrVQlS 7b޼S"h3oÇ?vT O.]25}XXn[1_UU _hn[@߃lxs^.ڵkn$|SלF f`zimÇsg 2 zr w߼m_ZCCzЌ`(< ޿/[<vwё۷/ƍ$m׷p+NNgOtaa5XFFQo[ɩxFc67WՕ1Ogsgym<!Qj| ML~6…!AM1Z5OU޼}[[ǹ/_(99<ÜD*߶hdvTm\&ϖ+-pxx͛V|kl׮뽰Qg$'S9c~wJ?|(kmեuum`߄ p$>25͠f;;&ϊKoĢ^zy44o<}ZVVVRRHR kkk'L+sss+yBy{㑑aaa}v.͛cq;Яgo]B@BB/{oA$%%eddgΜ3f̘'N/߿_RR211BCCc/^(,, EDD>}:{6lpvv.//D~~cw'M_ʽ{܎kggb2555}#~k qqq !tu FFswwrwwhwĉJJJ^^^JJJaBcƌ B W֭[npp'Hd1b{pp0kmmZ<22?0wqqrttlnmmU$$$ZZZ Ƒ#G444L.ν.]zdiybڴCO'~LA~\Ntx^ʕ+ڒ RQQٻwo׵BBBGuaФIB}觰~!u+WKKK??dɒϟ?H$CC]v",-->|K":WVVve^^ކ#GtX6 6B(77=tQQQ 짪I=yDZZ YAAjVFNN1 o4??D"y{{?~\JJ*::֭[rrrx͟>Yb2?yyEEWyyYm9'IR.]BPTPuuu(J@@B J<'9BQPPf*++÷ƍWG"0 Ԍ_}k}-2wQ d2 Fgջ8!={&!!aXpp9{SN zkk+HیVSSиz*k׮۟{'aXXX{~u ]ڤאgpp4=z5am;^l,95KHH`,,,e튈ZZZ"uuuvgĒN3=vFG&j :ܹsFFFPA$%%SRRYkjj{'N HFFF||GtzTTTkkkxxiyyywð .,[ s ޿ c~}}gϒ?[wF BBB&Mt%EFFH$M0A\>}>};"MڟN(Jѻ묥p^c277j="`Cnp&Nь9R]]-++ڵ?kƌtoikkǏsٲeKw+**.]֞2,KMM]rbMM lmmq͛w޽[niii͙3k۷?~֍.\-ÿ\na^^Ǐ:tii۷oܻwOUU0][zݺ.{:u#?#}|u#]~qG{F`DZC={VGGð99j 6n(...!!f777yyyQQѵkגd( """xxx455ܹSw%%%BN8Q@@@KKѣ٩thPgtcccնrrr...MMMT*ĉcǎ5k˗/]u )ׯXW^EIil?#}jB|]}֦/$$ u6 {(b[vAQ4""ʊӉ.DFFZ[[wݒ_y7yy<<\T*uݺY>>92 '=L`e!YGK޽ٳo6\\=1aa[+-kf,&JKZ[pu]/戻w?xzٲeޖ-_aB"fe}򣭍M3F `c%?٧}Dœ9cs3csFw3s--T# ;w39{NhkUWJ33AddD쭡!n`u647_C\qϝ;>98\1"`p*Ah}|T 7m;+]+ǍelQvlF GQ.=hӸx 0Zٙ3I..֮A$?谱Ǣ6|cqSHJ q:S8Pg.BQ[CC63J 삦OsOkW>Z\s*IW>3FdrJgefeHE>|//G`c%8l>XYIЈW|NY$!"7o\sJvrs}|ݽAWWtL5!J(7F Jjk+N( L0@Vgϯ"P(mm#jjҧNY 񙘜:|xǏF {x,c\~6ݺzzc._P/޽+8v,.--wѢ{.?^/kuc3u6[-[H IDATCӦ27 ҽCBxgr:PWWʕM䗜;+WNqs33F g胍`٪(/O}ƫ{Fjdtbhk׶tK"Y8eKm >啐]j2\_;nd +wPgsRk+uڴ]]-iiAA."k ?Sj#Bc#lm=m ^:l^Q+'PgsW|Dׯ1Nsq OM.5ړ'+ FS7m8|nmjeeݰ=:jO?l*RS8oײeǏ[t9$3bHȦMSSkXK$*i|aa 8ҴXI"~H$(*3vJ`d:󜜮W%&aܾ9-UR[ۜ=mۂ͛rcjqr=CٜuުUgݭh CJO.LL(=RR»w/|J_JA|IK J]] X 7Pg KI;RVV;olݍjkk+83gApIII7n۽B?s0E+&eoX Pg _e4 x͚@55k׶0miuq1900»vY3m鰱2'N:l4IYGmZ[3f;p߫]{&)ɭ99$%k+s/^L~ΝFPml 3gS߼9$(h,,^iIc /ps#"ʊsI7nwv6j+E߿WJ`H:{i6;8o z|HlBžz^^^fͅmGK2=g2kgPms@]]ׯ%mm{MMs:5..Gpu r@G_??о13s - .=RShcsǏp'MM9Vd{չs7n3Fl*Tۜao+(贀\Ԭ"""8:{)(?hlNrcnn&;vip'-r_wWWqqY|)S<( u64p1rQQXH+ Qc]]MNL*9N&(yEyIئ4IqǎCCӨT:\dd|\"o۶@KK9sk6ϙ3v͚'OXfW]]Dϙs,8IK u3 !Pg.zzcNU LN$ΜYS~\rAxx.]ڰl]pbG$FzcѢǎvssK't'&~ϯЮ&wR?$RaAD iFGaMRRuׯ^=?B/sq00( {/\Hj }~_1?p )Sssە+OOTRڳuU9 ?})/--ymnnwo߾lA,YѣÇkiiH?Θ1ͭQ 700\\\ ĉ] A9aPQQE=\FFWYYa*++1Ȩ/Ƽd29((A*Me|[G`w5_)(xӯϟg29F sR_9+Vy /5 Nl2}aFfII 8))ix5I"0 7nܭ[g?xyTuu577ɓ'd2Nh 촴4III;v߿ðPcc1{Ā HJJ ax^l**++aҥKz~i֍ ^[ίiyS֮tsh={ۻ--WVRi?V|;6lldt2**n'Rbbb>}ڶm1??_NN?|۷ HAA:2~իWw7J\\<%%˗{)@nxeggfddt萑1uTƗQQQuhC+cbD"֭[>K0B@=xʊZXL;w.FVSSΝͦ;6ӧ^9)MKKGm),,..&/[mB%N'5xEFFZ[[O1yxx燅?VVV, F 8{awxyΜY]usmvTe<7xqCQy__( 漼+WlٲӹԠv4JK}[w&MRtu5NG(믦1켋McIMVV%|?*«WM0|N`Pu#Cʼaa[@cVV++){zBY{ $g5ϟX)( M Mknn55cq7{Du#Cg {,JI:ڒ?KjGEm:2Gk@EEcyz#G>|(\{JN<85Ҩ̓$',SYVVgjzGkwGHwY)){#" 89]30#8ICC S!_>%mAͧOݽ;|GP"(Ȼj Rj`qON=|`Laa5SC…LQ{s?ؾTȈ0A\bǁaUU#GV{?Κu>,N @?, 𡰇#y֛p!p` ^Сۛ6ٳդ1""·y >=`k;l/c] BÇs:WR_>}*^rJddDy 46/.Yp|oN:nܺu3 '\z㢢jYYQNgB}9腶>pAƍWs.mpӧdwQQѣ/NNWLQ "3ئ96}Hȳ/_~hk+_?kj]AryCϒ% {VUE12:7ҥ ?9?삄]ۢ4'Tv[..ʕShi)p:)Pg=7m IJr0A/^X[_\vONZVVkg\\Lrat՟fuuMW<mf6U@y`8:{0l?{|+W&&QWy)'/^9tOFvtS6n?UA=(%xK{~ʽvNJae?VVzL͛CD^ݬ8R YkffSi`0Sbbׯ;?|~^wOQAAƍ낂6ΚƔߥo_4Ιna1mr~zui7RRt { 1%;=mim=)19zLjOd X1yӧrYPgmVV[[ioK璒EN͙hǬ0 fi7aii[oo|EEիM7Ny`hFceNL:Ueh^; ik+GNO;Eg;z޿/02bJdco?t277g$}(*]60!>=>.l8q^@]=߹޽+ش)DPeayїN^λyݻ,[tS`uKK6,]ݗt:fcs17711f^89](]3DodԔw~HJʬo2EyRetTT$8mۮefJʢE''MRMGҽΟ`o+rh4۷qqbcWTkhȚꘚN_>{8Ғ?}B_ L6;wڴL̄@@3F N7*(/\8~˖y3g55޺6 Q\܇zAA^ii8z0Yֳg}r#/8:3xӦ+4=8xc_3{7 ° !6>>nDҏx1uᤦ>򥺺AYYp̙pI`:{5=o_Q߾U,Yh }[B`=N23>zӛ7D":aܹ3g_Ba a'/^x%Q_mm1۰kN+'g/XɢY'O~,ɓZYhhp:;0JCCqSɞ5ԩIfdHFn_o_oR"q8/eOf=}SW,##j`n`>/C/~Vj1c> 0Gǫ_ݿ*++ʺU aDCFӬ'O^kiȈLj`7FCCN ndtB]]ҥ H,_~ZXMg.d Y'`k`ַo_{2ݻ63TgP9squ0>Ν]zzc507|2+u-Y-"!{a_2677'$$h ѰssꚚh\c/X ?>!H$.]hABccKl/]iAƍW||,mlf(7a.=>~ymX:gݺuܜIPnnI̖|&C͛78X<pСC+/>@ZL_-/45NUaQz(uSU8{v=+nK9HPTAwZ (`8axRXJѸ~Ups37oܦMaEnM6ѣӦ8x0f NPg[]{߁`+!!doŠ ;}zmxU+Y=#@=lɉmܨeeNNWi4:+R޽=--ŋOļcÌ,upk<X%Q/;<}suI]]&>js]al:Pgg""w/ ~\TDp=1'NX=^2=.r9:,ɓML|333/#ѣGUTT#,,wq=E;l]d 9993%>8??9s222za년`:{#//0ᖖz۷/ܿ?:--`|DWYYO_T^xQRRRTTRWW[S~iӦ{{{}vaaaƌ?|E&BsdnnnQQ޷1{8={;9.00|ZƍWPXX}"Jcbb}vh5l)"""fgggoo_ZZ*##?I$}YdɣG>E">~8c 77FQ(^^˗/sqqQ('Nt9&((cA眞.&&aBEEEs|ׯ_eee߿dD$##ZXX䠠 A7}Ǐ%$$0 Ңf)..޾}ƍvn8(J];!k7uHq@ڦGx曊ۑ#L̪f::q $$3XgdEEEmmÇ3555KJJIII'O ;aظqnݺ?gΣO0… ˖-ÿd. HCC E__ٳgIIIV\BWTTA@@`Æ >}:ww6CG:ubk;{y?u4Gǫo0+~Y@39]Oo]ǭas;:sfff/(( H&&&Gzxxdfffff:;;t7 EEݼy[@@ᵵ#RQQQZZZ\\իWmϞ=S*//744LLLΎ1c¶mÉD֭[O.--MFPzh400REg fJ\?.A!==O^~,謵vmĉ~q1.;ݼfzz?ziE_֍={VGG_~#''W]]aX]]ƍ%$$گdhnnvss]v-L;PSSԼsNû\wqM%.Q(WW׉' hii=z1R H@@@B- ϰ}#ɉтwu F[w[u#ezP n2qݻ}\BPZ~ح*+)wߘN>~ܜ,22盡 t",hDDq\QYI L BBׯ;R4{দVf_B6׮my6a6漼+WlٲӹqdeEw4XTS7Y uͭض:FgVz`d4!%e}lm/# ^6m9  h۶rrǏ8!!_eJb&,w[ H/1o޼0#77СoKKP3g? z̔~98x{' ? jѢ I쒏+&8ܽ) >>߿B]asG_[~}B{{;Cӿ|7~ݻ3zm`GTT:3uȥ&}B/jvv_|G z䀾VV糳8FG4E22PD"Eɓ6n9WU5e$`G4.oo˄҃?xRz3f޿zsz  (,0 U^j^AAޟF&7^}J씒LTVVy==W-ɞyh4{# H\t)n;++CV2%`YYʕgn!"ϔLe͜rk{.wku6@ K۷/:!e$Eϯ\DD??Sb2Q[-44>FwqYa>77I`X: `feuBi{w7ȜU_qpV -)$$%ծ?xaN8EѩSG:u_LL`Ĕ=[~vvْ%ڃ={^iiS?+(0@ 1j`ssٳ-, 3gOOByyd:aa>cc-# ii9'N$HES( p:/ mPgMzۏW̬;JWgVX>iblӧjj'MRt+0T@ E$ƍ;~I jj ;vg,??fe55i[9B!!.\xTW׬6lʣʯ_Oô_L ..ﱂӦfVXV ɓ7m2|I@ ʤIL9\#٠Y=k7OaLQ>t(8c*#HV#**"00^[[ m8qHKFFutDE6 D]];9ׯ LoQtj]4Iŋ۷߭[7YituUDD>}W۶!!ςP@]@Qt֬g>li2SG9;JmAxxfTC VUQe0@ &*/$㓰`xYYQ6 \fmؠ/,w+rIiif.0]0lݺ?~|(0DQQEF@`~XwwwjSkyknnwcttg(Νl΢EZₜN ,u6ׯ믦%)֭W }kk{XNTTD@oئ"ҹ*ʓ'Y))_?^ZZXDoɳftjif͚D` ''zQGEEڵUUp'MM958aY5.X3dÉ p5Nlm;))7w(*:cP4IqN#1fN~: Rt6mssl0@sۼyK@'4qJ][Kׯ`t?l0pUT$~/깸>>bwoԱcwa_9p;D*ȆPuu5[{RKx[ C=z]EEE :::zzzǏR~Zd 999xKKrrrPeJL `$:MM_5󻟞=3Z[O|!>do\_[/^OO6-==۷ 366*??ÇPd2ɓ'GGGGDD1vۻwo#Pg``h8a۶kdr{f42+ 3)`")))YYY ĨOyzzJII%''hhh~:???$$`dd~=k|֭;v(--K&t:$%%2pPgkQݽ;m˦ut]&&/_g/66VAAL&#Ѐ H[[{[["99YYY955~SVVc\Z< A8mmm>>>UUׯ#BR~E+.Purrǿ =tHdttww ſd|EGG[XX⢩fÆ nnn3gDDVVp)S%u_EPk ?~Q|||0\E=!!9)ҼaC[TT:;ݽv/--ymnnwo߾lA,YѣÇkiiH?Θ1ͭQ 700\\\ ĉ] A9aPQQE=\FFWYYa*++1YYY!!!cccchhK"&Nx888e}yyy=g AAATUU130DA {**nE윔N>.n~mSNbbb>}ڶm1??_NN?۷6jjj"RPP?~ݍOIIy򥢢y>}J wjjjx򲲲:dddL:񥥥eTTa08;;O2e)++hD;?w211:uC=GOu6`m_PP@"LLLڏtvv.((n-yf]]]kk+77@wkkk;?FǫW۞={:T^^nhh3c D֭[O.--ݻ1f̘'O:u z׮]߾}_mll( ---<<~dBm\ssΝ{Ν{Y/kyϞ=ڊaXLL\uu5auuu7npttlhhh츹M^^^TTtڵd2o< ð555MM;w0QRR)++k*(ĉ=_bOMME$ C;Ut:ؘ1uuuKSSS[[wԨQJJJϟ_vt_EPfG`}6x(F׭XTDwog0G^^ Oas,bee Hdd$L) on0H8wn}cc/9Ew0vmKJו++ٜu6`))m?_# ,X/^T|0ـUfRsw_rHlz7$(s)Wik>I,lhh8ZU,cuڿzim}#i`:k۶]RJR/6vWiiɩs8Fk lz68:u5k.`lr&ȟrHfϞ=~~~0/Pgi41UV믭\\_-RBBFWW`X|F11 o|t. ˖<~OMMz*c`"Ç9AddDďSQ0A VM9s&)..cڴ"N ـ&Lojj3ՔFq:EQmm%SS?>ǣ(ئMWӿǻHp:Pd_JNYkhr:# aPghhhYŸF""tkbGnn"3u6"e~&)^HD[rt쯿^%QN2E`D i/_Y GtYIInF XqȑVN'!ANWTuHĉ N?,-;kJ~Eau  nU 관`+؊ҢŒ eZ#Z+QAQP4 $o>H4*p{r99X/.(5HtPo Mh?N:vhuL$ފw;;wtg1% X ̣(jcwENzuT[[fUU= 2w6ZC jC@ffLXG$!dϞs ͳg:"P_ȳA]mP׿6N]<|uڴq`ʔLGy6 Ɔ{5߸ގg }w|Tb;;S#< ;n={1˝>}+::?j-1 7շ3w~-Ӫ֛]IDATĘ1fXXLI9wɧO'L01B}@A jX/::Ũ7xg|Ku++Q30 y6#K6[o'LKl)SƮ\ѣsϿoiihffth ?{餤gͲe:W R'NT]T=cU/jNqȳA}Q?啧qqt8ܹ񧊊np8×-H><ԚD" L*+2~ ἎGeftwlp`5 zlPwmm˗WW?ha_;wtH =Zz-.Wws?}@ g-^^?^ol}Չ'*.TH6Ry Q~)(Q@ д[,ԩ Frϝ;744TVpd٧H$*++<̬.)//߱cZR4##C(^zBPYuQu>󋎎.Binnuww̜9̙3/V/z\.WSSΝ;t۷pvKB\pG˻H RtժUׯOMM_r//j>'_kŊ}YEEEEEEHHHuuZ,k޼yYYYb]KKKWWWYgϞ:t1!%%%wO闶o9s?~2''g555Mfllt 6ܽ{?{IPX07mtĉOҫUٵ555uS,7tvoAD4B`XS3Rt۶lsOl˪o)155 E+W5*00Y~=n[[[XXE"]޽mnn +hKKK??Gɏ)44^WWwҤI111---bBH\\\rd|E +V5O>imm}IPXe+++%޽{sss^{G3g>|xX[[ G_`}6@_aQo-o_W_v[khW륧/];FAA#}s 3X,VZZ/Ӂ |X7ƍnt8|˗[ZZʶm3{lu 8%K⒒>p3M6,^jժUAAALgà2"Q˂36s޽ׯxo y6 cr 6-\ܹLlD Ú3? >+7 y6 .Cj:rʙ6ΕHLGlt44X۷/:p`?Qg-LG>ԢEy<+{xML\=aɫ<Ȉ533??|MӦM[lY{-[6m4}0utHnJM- s߸эAy6!$%ݷ]~y6z~P?:;%..7??ĉf^^g>͚eor}}!ׁ<@]OMMLt8`ӧ[x<%(<PJ*8kS۷ssC#~y6KܼY|p۶o1ȳ^ݻ744/l|  BaJ,-Gn1#b:(`lSS#c,n?s cgkj䏷[7{,[<gRE%%ښ];{ѢZZL}y6@/ͽbhb߮zzC l^894!ȢEޱ7g:(]ȳHCCKjsw;;kɺLy6@kkk駟$W)ĥ|!͚:k>( =FSSa:y6@~eC2jhwDJVVQ vlh:;; !x LaX!0 _ g<=y6@C ;6 ^pGG#FL:/}bt0W\arss]֥_}}߽{WAB`w!JKKkkkkjjbsCCRccŋccc/]&8իD"ѯJOMNN޾}aÆ'''ӧ>>>K,]tȑ/2111))IKKKat􊔂ɓ'Ꚛܹ2c B'NxڵkӧO SViȐ!񵵵fMMMvRX!!!1!R>/PEC2gr\͛7MLL\B7ɓ.mnٲ#!Q, ///bUjjjlם?X," &dggӯ޸qCvܽP(ڽ{H$JDYue^#>wÑ (*99ͭKRtѢE]ruu<ojjH$%%%tSbetE}ݻ'M˗)joorL_>x>>EuY4BKII)..>ydfffnnnP<}-ww)S$%%) ̌[HHɓ?c9bBE˦ֶFa\eu<߿ܹsCCCeGbD2̪;v(*J322Bի,X  UWEQ|S??h"XwwwY̙3Ϝ9SXXxb>|aÆ]v z[[[}}}/_|e`> ijg~fw*9}1Tr-333~sU<RtժUׯOMM_r//j>'_kŊ}YEEEEEEHHHuuZ,k޼yYYYb]KKKWWWYgϞѫB!yȳzl5YOIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__incl.png0000644001725400016040000011121213273140100017706 00000000000000PNG  IHDR `ՊzbKGD IDATxy T3f5",PDIB=-DronMUThUDTQlǹLCsf9ssg!(; à0(8wS>>>T* W(((:uJD@Q"!!nĉ$|677NNN,TM6IKKl???SaaP`pXA%h;Xx޽{;>}5kDDDt...nڴں {Qkk3g,YbggJP}2kkn_ebF 'O0_޾}{/^xyy{zz<… هƦh6TSSׯٟ㕕KJJ?Դ~z/'--dNp\@rrr PTT422ڵkʭ[\"''wSSS555KKc;0JOO3f ӥZJGGGNNpO>%zjNpX@ ̚5+##{|oʼnɓ'0>~xҤIO!))؈=544qF/hsΝ;788Farrr-ZϼٳUVϟ?իO7uTFgyM%;;1""ӧO-[6w'NPT62P` >55o߾!B&kkkKJJ?F9''‚}~~~999 ,qFeeeO^,//?{ÇsrrBCC7o?utt---;v  ԥ)!!!!!f0=<$$̺0::z޽{y9c@`0"""VVV]gϞʲ?|ܸq7n 200xҥK}6lPRR6lgff&}FFFÞ]pa JJJ477 s߿]´h"IIɉ'"ԄmRSS`^c@'wWZZ:x`A PPP`llq]]]ɓ'U<|ɓϿP(4uu YY+뫤u]pP[J ✬w|>h*+RR>=~)55$ce5|ҤᖖÕd~ׯ_PTF&9immmmp1! OՕxii3:B`Y2qq7A1ŪwED"H}ڴQj,*q!!VYY ,9s&r<['99O䥦}[ n}WTgKHx[VV7hP[QӦ0A[BB t",,?#]dˍ9 ((12D#__E FR5145՜4iג/P` 1&ÇFR6mԴipw+W^wXnjoa0PWא8090z=}ZtioMٴi:NJf<&""AJfчob hd.H_)**23: --DsZ)>ϝ{|ʔNp--*6۶9r\S\\ӂz))cա'&%?r_ML4}}--u%8g Tz>7ndnx%w[Q?;71fei&"- EѸW/)1cu60g56͝{Eu8Ƿvm'eeXi~mm[+JIwwc3sJwv>[Psv;C ڂYlA˒{殮[Zn>K_ZqE$&^78_g ڴioM; Vjj^}}رꦦjC }ǿ7Nc֙N$v M _;N~o߽u}:)߳ԴEQQzxmMSSM(O NB9s559:; |-.X0,ʄ_~x!t:ݻ2lǏ?56(cnA(P{Ν1--;7DޡYB[w-[fzyY㝥jԩ͵]£[l}lllSR13Ӳ51>|@}]֭w 3 w"ŋ,ZdoBË-2; Ê-l?CVCC=32R߳g>dٳh^/{JÇ~QOh-22>75)+˚Ե҅kf{;?\i ѹq֬ EEHo_\BM~TRR<*j-/G\E[k+͛ҬŽ;BߙwQ`=}Zn]8/6M8С/):3"Z[)E_T*YlM@z`AAG<78xINNDڵ {,X,(,,}˖0;P^`QlYZZX מB uSS`i.{Ê7l;˯CQ\iimb(2zǿzUұؚ8QnXH$`W#rsΟN g~/mꬭX1q˖xg^99,-KK]8 0X`(zB]zAAKO^n+)5+HWwPD(8pn3f(YԼoKV65&5_yvmxRm=< ?k5븘1*j,M>Q2 2[AKK -Biimh&qQ[uѢ3uwn_%%566׬][b͛R¨Q&&& Y| ʗ/%6of$ y95STz==p޹scg#\jj99ř-KK]SSM33- TR`=~iK#F@n~㆗0 =8֯#g 23 ߼)% #G[lk@9w-tML4; /Xw=}џN_n*Iǻwe$%BC--u}oaWw>ɟz?efUH"btL{;w\zؒCkמh ‘# xqĀxGVccSpLeecf(< Eۣ._~ 57hm B B'ڎ:sftKz胋˹Spz$_?Q5SaVVffĠ9| ,Enq @]t; @@79rd1$c0.swCyr&!*+VBBL__-@_á7yq ;;}.X[˫m0AEwiiqrq[yyI<=aZ,!,RR>IHajij:\ F8X6&  /^9:|DS~Kx={6e߾{9tYdf~*LNXVV'))fl E42Rb K.6oq#3,l67 0GDGh/H"(ܹVxЧutϝ[wԼ/߾KI7Z`;pg].[ wP(NۉD:aa8oAdKReBn^;~YO`[ii bRW__Mxz{֝;/֭صkʕ9#ٔ8:cv zz*v \eec|F"QԼOkkō 6;PI ;zt RAE3޽+,*XlYZꚘhv;V(IUU.(h 0 | ذ#`ggWWW'''Ga0[zuQQQBByaՇm Чb [ύmJJ2ff?,JJj!E tR9³JK߳'n˖VW9s'w/4,@p"C x{#4]bڔeMMYZZYb+  Qƍ-/'}R`yy]6M˺//6mlYHvvq2=&B{g oN:TaxjAA!4i3F<$''t(S/iV]RR9~&e|fw81103abN)NOOO/xNwܓNGymFFCq z VJJlq,LJzw DIk>bV^WvaժKuu\NY.]˸y3) EζkJJJ:m,((E;f444/_^UUqf??ѣGȘٳFs@ t@  d___MMM n_b| ߳.u@$=͒M  o--ܿ?VQQu@@ה)S8,o3gN6^^^^ZZ8vz쥦qeee߿ŋ7oeY(**z5ٺ'O?urrrn߾]RRr…??n_bONNnӦMڍkn_ ^~-&&F1SJֶ_;/s+Wo 4M@19NgglifΜy-  ^:f B~~S(:yɓ'_=<99Hnnnߺu@;vݻW/_|ƍcmvj#//off=}ɲeˊٿz4tqͰ_>[BCC#۷g75QDNoAB$#C5J_?dgϞ.CPٽ;NK??} uuul|8dȐ;v 2DQQqٲeSt= EXqqqMM+W(JRY^UU䄢(F;p ñUAAAUUǧEQA.\0bEEŽ{^rECCCVVv۶mv\z{|;wW߿|ZQQC1&:ϟ]Kսt3˗P(D"۷;whkk( HNN ca6R3EEEޛ7oFQ4<<e_`(J222o}}}"Kf2L?~`S`,MM쁀w@X|oC)V^;///Ƣ"3maa!}Ĉ`[Ν哓322&M*""p2LR1ca ZZZFmmR챌 wj|M99Aa:zꕱ1… oݺhdd ؿׯ_Gl[lgR?X^^K؇ݻwoddOe]\?wg z[`EFf߽qgy>Cד'ON:LJQQQy1.##ێ..**¶zQ ֭[,6jhht;AD/_?VUUlW(9sfƌSgglĉҥK߼w7@F3y gjmmurr9}4$d2ߴ֮O@m޹3uĉ: # cʕ֭vÇۼysqqqnnS:lٲ[}۷k׮e|z@6m۷)$cbbfϞf??;v "**hѢ}v۶m~TUUUTT=~xܹ7n^ڱcmll󣢢TUU;^#455URRt:q&ii˗/Z޽{_|IOO]d l^gjooP(bbb455cҤI7,$bʼn۹sFz=A}tR iii4}i@ލ"\>b̘ -iY?'N=uWjlltssWPPXzusss=mmm߿%Kz7n1bDLL )әh4Ə]YAQvٲe ***s!2L߿,ϯ!C8;;WVg&Lח5jT```KKKSRR9uT, h4Ν; %$$4446mڄf#G 0`Ȑ!O^d>XwY՛~ 55dMN%_+(((::Ɵg,aG͞=[MMg#&MtO>ݾ}{ȑ'Ohر$ =d~TWW+))gdd{СC?SQ\\hUUզMzwgqG~Х#_2f?Ԟ=wGH;eƌz_`1T0 ++;v`O}}}---r C&544BBBcl|ҥK6-Z񼾾SNb>XG~!B۴)# ~:qb*A@UUU^vMWWA*秬GRIIIICMII :t/_\eQoذaaaah4WWWKIIIHHXXX<ۡ~ŊjjjآUŋzzzܷo_XXfoީٮ_>@Xfͽ{;v`` 6 .y&;} :M&|DDހ8 9  B:CQ488xȑSL{.voy[ط)--ݻFFF***Q=UBB޽{m >\IIi,7l _GK˿#U? H >*11[MlfC{5:}Q̜99mڴ mm;wE R]7$1B@T?ZرNEsqsZ66,;wUmb?_ǣzׅ HJJ ذnfYnܸr#7#(گ"6JY;L{߿xlVVIKK 9|Y__tȑv@;|6|vSwĈ̦Xn w_Tx\&SޟF ի'Qt΃985ެY>ܱ Rlw*MXRWẆY$:}z>_o.Y!U`?I ?}HaC;۴iS}|WBmmTN988ݻ?~lٲܿXkᙼjjj>pANNA+W466?~Qlf#xϟohh`xÆ YYY[lqqqaxFO9x>XۡlV)1|8l :!߀9<EEE ,X|'S(4s]>>9Bh u ؀E)}}}) Ç NҒ۳gh]]݁[FnԶmwƎNHk g{idd1cpg(O"t)aF:jnn&w\}#Ԋ ѣG =z&@×/_622t_|y…-[`O>}ݸch#oYԐo;%77%''%##cxX'N<4x\`cƌ >>CBCCO<9d3ٿT}}}eddn؈kA:cff{nl,7n-Zdzx"J~oϞ={Μ9 +W;k]=B2֮ҧi[~~>69S!̧`#\~ןGE89aA"=%%lGWZ[)/zxX/ׁ@Gw@UU~YE  Q\4BZBT!+K!~x!ŋa~~eFƗ+_}j)ii/^ҥKVsثW߿G7ʤ_$' 7o32T޿W(/jkcqxҥ8+XW+XYr' ,-ܧ&N56VN YwڠA"""Nh4ٳ=zhPḾ}qv=~y֬1}q ~TZZ19CZZm 66#͵DExŮR9VMb9fJe>}ذj^^'>lǎ(/+S*"ɻwqO1 SR>&&x1UVVb={{k22 ~ѣst^qp0R:{6СExg'`70PMLR3"wsgtyy_zH"ZZ9 o׮ #: `J>îk 4[}; =_9kVСC~~P]1yxX{z^no>, jդ[ssw9XJJ|;Gpq9wfVcc+AOjm$%}3g,7w,7` O@ 4< v6DbOW唙3G{~Zt]]3G$"7wױcKI$MC+V\ik񞀃~x09c{;u4}Ez1˗N3ri*c6l裳{57^.Zzݨ-,cb6;dDjUUyiisΝ;5>ml#$%LƍӀ~Ҽ𣩨7lZ\\ !^~mbbBB=##  I77rVSS_B]Pع3Z]]!(Y__D ..!MW20P;?o{uXX7suqyx @ n:e?}wWS-[glu!>>9%5*w"~mǎ-jrr:=mڡ۷-@sraI^D&!Wxڄ )xB+.YsqtR0Ԓ%ϻƾZ<O11Ҽy}GPٸ_׷M(+ƎU~ЭvAa^999OxB*.O##pŕMӏ~tUUqިQǏ;o7ܹǦDWT@,.aQ`|Yܯჸt nSGjk+; @TU5_\ʌϯ wUU;fgg߻p]9sRUդK-2M>Fx!))lmGᝨO"w}{Q %.Zd]EFf>u* 3VII- "aw^(={QHȓ- @o$'{qPFIII('d<<>|AﵶRoZFJʟx' *J9۷exX#Fܾ64ѣ&9 15 >_#۠_7PS 5^bcs022;(hٳׅNGEGڎJIsb]b޼);\`׷ |ILQ|HY|µkMMmxg|{yNjk+/X0D>9%5*w"AF \\'%+)Ξ{]/':XT*DUy.%ʕ5IICNN+Wݻ "faobc_-_B&G 25/_N; չ3/#!QԽ|)ARϞ}\UU>9y\i##߽+sr:]U-|G6)*JϜyTNָm--P`+,?VM~䀀Wz ~и[>w&o۶9WE+G:X$ nfvJ>Xv\DDA/N%KJ"?O]]!.ncPf>aSed|;/\`Tƣ"KGDdRxǏ3f=|CT: E1yyטh:9}w0v99>~!.sկ F,2 AEw-J{w+ WvvHy{ۈޒxqҥfax R/ }p7:X-D®`R9|GAAA>}pt~Qx'"Ç{w(qc08w?vs)6\UXTT4tLƗ/?Bpecs޽?n dpruzz=y#"Vǿj:X p57JnŊ5yx}nѢ-["W@ DKZZe;;+GD<;8QrrQR?òhk֭̆҄)Sa֙bb$ ;QQ6:|88b̘wh?ɢRA,ċۥ;["1]i)\$LڢEf >c ;@?t)((q7ttcc7P(4'555E\PP(+F&,`(s*,M(^Y[˫޵k.\AKļ\<"#iNNgjk^!(ʳgSN~߸=zD"KJJII+(H84d_pgYYY`TU5mt;w΁Tx˗%!jj._8P8B۷OJIGFzIX\22ZUC!&e`0P VYXXXmٓ'y0m\Έ{5yݺہNP]>#qq76::}.1߾{x\l+®c5599nhYXCDE99O:QT60P%H8QG]]@oڎ|RIk\10)om\_AYY1(3 uѢz{H7nxUW]\BaV~#GGH,n$1 78"#xݣRVk_c=rs޸'BK]DLl+ zA[޽I9OCC֭  ƎՀGڎb9e)8RWKK), .b{b'&Aekm8QIH]rbSo+.xQD!Emw:Owk۷e ,BQ+(Hw(**b%t_aٲ ٰ,KJzc:=ce7)իǏ; Hٷoir"T*}? eVEZZڏ`BD ^N ֭A?,llFhn?bgX$qJKf@X,22𐊊~ #Ag EEPʲiZqlJQQ5^ ^y'NZ!KQQpHR{n?bc3yb"S|Z،Lnn|NgYsKg f9zt02SVyb^:]!sxh'pHml]{(w+hh(UϘaud^͘=,AEXuE H$"J'kX[50PD$"BԵ-. F T*޽q4(ݭ^,Y6?}Zj`0P_11Gz.//7ZVaчջvM:w#F4hЏ^}˗Of>a7,tmBBBoh4QN",ZdrZƍv$Ro?Q>|J: ɓ'Ord#G}S|!--C`0p ׂn>g2z񢸰;iNKWU5%';?Jy򤪪*'~)阭^9\p(ԣ!KsZT`EGGϙ3OMOO////-- mll;vl}}=RSSӸq㲲ŋ͛7GDDtlׯ_3{ڻ&O–!{F{:PQkݵWşVpUZֽh]Tā-jA2eH q?M$I. mx.=wns%OlYZ*Nʧ+)BQ)I1bo۶mݺuNаzꈈ???me$Ɩ:u*...<<uܷ;N!} -L'|"QEEsrrBs̩"2==lȇ2J!##ɓbc5&2wsy˗v.Y bm!/* G޹s'gXXبQ| \.w'Nm۶Mѓ'OZreϞ=+++;7EQݮl+ًDVF ͚]iѣGGk8HPTwŊZj{e$Yjj899uB(ݿuW^eddtURTB-WPџ۶m3fȇ=_%2R^?ƍLG/X,2"Q `9:ҥ I餺~F]xã !mlly<~ݻNNNNNNVVV-wqq9{,BK^[[kddd`` <<}z޽gΜwwdbbrẺ:ѣGH DѢ)罽{w!0 ;zh߾}MLLƍ |v|mcbtiGq ͋r'|Q]#֠`.6*kJ:QGٳg'N N8p횚&9*V1͛իW/]T l6[OO|JVUUuTW5(9gyyG?I?yUy6￿݉eș`lGGG%:`0]===\kNNd-Eӿ{6- AGg͚b0 / i4ڋ/+WaJOO0]5>v:`k֬ٺu+aΝ7ŁLLLJKKE८͈ImK(!aS/??_͗.]rssZ('Xmtuy05:Gܧ0  ӧOh , >k.___vyQᛈX>F|}} .HMU`iesr97f 3n8uA9q{*`)~hyoӧ$ݳ'_]ڵkF#'vhSSSCgWgeeI#Y ðٳg5͛Uoll6m8<!TVVjii L>-,&m@p׶ C,#GL4IT799M(Θ1رco @0f/I ^jv~79A7fQؙR %[#҈";/^wCk#ꮲ) Ξ=kjj}}k׮eD\ŋEWB;Fo"+77tLQ]8I}}O6n8lذ1~Ɔ8Օ:b㪌 &XG8=GJ!k87oȳb+**֭[5z興+WOeD0 O< (XJT;hB|)HZ󵲏.Y$;;Ȗ<fpppSS333?c[!"H!*JMIMMPwtlѢgAU0`  &|,xufϞ_b=tеk#F,_Z---111555ǏoiiZ}o޼9pk*++oݺyǏ_TT_d"6nӐ<}tGG544xzz3֭[yyyW\1bDkk+իW{{{;VlݟGO;ZM(8#X|8qB[رc>}sNF0lD?8ZQ=5>pNjhhxw{d#V SN3f@ 0޼yʳˈ|ðŋ{xx$$$>~xذaׯ(*LX>x𠣣cbbbmmݻw===) #XZ0ȳv" ,0778q"PW%s%*!e#X))vvkj寢V>,/?"py6^jggp8K.577XbESS[ۛΛ7O)Y ðK.zyyI>eQT|>?**h/ X,… -,,6l؀#`=߫W]r7nkhh{neƢƓB+Ba``hIjJ݌r&X<oȑ}"bɓ'---CCC[ZZvp`UTHLr;羆aݻ\]]${X':+aӧOTjLL &.#˓GFF{xK ߿4(((..J;U`ie$F?@`bb┚`ݼyun qUr0\bG_%`T٭~KB{mZx,VS2tDS, 9lNTԸ`uļ$&&jD6En~,E::٭(P( +&OG##]4g`#j";L&sͩ;v GK>,B}0 rceDT&&&+WPkťPM6M>}ƌ˖-ݰ5DV?lmn`衿p῎9*`mm}Qy nppR%{Җ찰0=!  BhŊ1N0Ds ,{@lvB11"Йʪǜ9 7|Eld$((xkkkj`Kv ԙ !fr͛LFP(f |tCEE5dGyL-I @!\[}0@@ ߺYEu2B[eÇy @d1dHnB,/͆@:5Сcx~'Fc0Rm"Hܹmmhh655 %7777zq ) |Yf7 xK4k׎;ӧEC۷o7n\Wԭ$&4XMv ؘ(>ԩozz…~~~mmmʎ hvͻz);SR͍Atqܹ׮**nvܸ‚Ves%%uGv "9~| فt^`n_)$sUggǐP#sNK+.(xKv < 5pw钮&X;Mo6U7nd޽rYt1rYL Lut ljj !;.j_}]o;kii꫸9sFv,@PYƦ pWr%m0W{{3$X}X-[6j߾uuܮmEEjll۾}فu4{7oO(Wcc+d~} IDAT=s@*$X &IPHkPnnթSn Ԥ ܀ʸ8\Fv \ne Xp?فtb,ccҥw>a_~۷Ȏ3g_R|:SL:5`Ԁ .r8-jtijj7̦q3s.h'O?/]#QE~36^}}= K߉XZ16رcɃ8Й@@ }sΟOq#Sj={TʦMh3&%TZZ`dX%wT9)S,q㥲2b[J/~ c`~ ֭,;p~dW3LW> ޸666tɎh=Ǎ󎍅mSTTs/5ӑGzUqUkӧV}<t3gEΖQJi{_~…Te޾m۫Wsw!;I}LL ➓(˗ [h+ !v/MK+V"4ΝW{0 @v @)SZB65pJL7m~}}}sHo=KM-ڝճ12K556\ 7w`cQ:Ҿ-][gl7cOo Cw_ddNdдi_t WH?!;U 󘊵unn6f#Q={TʦMhNف{ݛVrbcc=cQOZ_ry9Bn0 Qzbjd c_rk j֭G@v,*B ]]Gm4yǎ+[[ydGpӦ߆u1?ٱm6}zws8V ߮_aґ|2XT !DP֬zMvD pܪoCPȎh CII/`.< 1Pnn@ xE'o^a@ D )ׯkCBr/f R !DP.uƆq;w'X…'RRɊPGOF}QYQ/&3{I4Z`@6c|!BVudF2uOp}3aMؙ3=z Ö.=]X؞=+b>z&@wvx*Utu!(݅ 44--zKbT@3,N[f[_pmG:t@  H]?7oB4CSwzw&ut49XII,}tthgv<+ Vee~rBA:')KTB,_>ŕJ]"2崴P~%-k֮=@i22J!d`bŘiDvPjgn߾=/O#o>Nru\zc#ne); eL۷Gv%-BQԈoo.}O WWVOA QUUƍy<فhR7o0Έ $Xfffnnn...$Ŧ0T.WեӅvvʺhs3N׮];t˻؎=uaz]s6f>dfffd4iҤ3ftcfF0DBj1Aʕ+e ~@$))ÇdG;s $@$8 ``($X  ivUZZtR‚ɻvY A޽-ZTSSC|gSSSxxx@@@=7=B/DM2zI1,hvuڵ3f(̙3g?5664ٳgKKKۺunP\\)jf]bs%T@8 LBCCcccKKKO:***33͛7w}dU #055=~89 ֫"EBp;w 5jĉxݠm۶5::zɢ6B+Wٳgeee'"bkX3ĚUvSxlKgR{~bb"Bf+}9h`bff*899)$~ݗe,]yÂd#Xׯ_wpp`/zxx455!x<^xxuxx8ݽ{)999""jѢEYB(>>___ٳ!>/zmm@ ѣLj#P8L8>|s%%%aÆ!lmmEaѣGkbb2nܸOJnm%nX _EXhŋlll}ٳW\qㆽ=^?~|aa!Ļȼy8ɓ'Bsp8ǎCŤϞ=3330 9kjjĶǏmll^}9aݣyyygΜM%h5%7XHSr8X|5M81///55-22Rj g=L}/##]=t\.Wrormptuu?r|~-ٳl'BuuuR'qqs\Qj#%݁ &L" Ll8q℃۷kjj fU/uk>aA}pf b0Ãc2yzz^rלkZ,Nl6[(666 Ϛ5ba- _~Ah/^W\qss7nzz:abO,֩~XZZYf֭;w.00ئŁLLLJKKE}BjRWSf !a~N=??`v%7772'q_K]##M|qmmm/_r0߿OR'qqQjχK=`0>k.___vyLZEXDxu܅ ޛ`Iڲ,% H0 ۵kFGUSSSفaZp݆ c}2eNNYi%z?>x2a\.wƍ>>>w]m+j<99!t!r/$P(hwR7tN|x޼yR7I\[FVlχK=`GFF{x<oȑ؇$X`AAAqqqVVV!؎&.]Rఠ9X@Ӊ}'(|n{,!ROhxD˶NQÂ`(\`Azzzsssjj;>s<$011Yr<hM6577Ϙ1>SaѣMtttv޽{nU.Ty"P0H , @' <@.Axj  L&@]fddDvvss=%9&uzÿ뻛Oiolk+jm-ɎC4-..NXN$TBT@eyy|q+_Puttk:/_[[{Ԑ* $X@Mp8-wLL̺UccĉAA>>'D῕Ud/_V0噙eLf٫WvW`Gy4,e2˘r&,+gd׷/G^6T*H U  FNVV}S&M31';4 fT>>Q@yɯWB!6`sHH`;;!A@'‚2/޴>}tjȐ>>>4\: khh~0NL|aH)$XG,~NFؿ3K>-JJʾq#`@,:V]݀SONK+̨sՀ Mb2LM G0oP_0U; QFd?{YGb PHVii]RR6ZHR q :5֔Ѐ@3bFlvXFधP H_}}Gy FY\nh/CJ VUZZ1%Qק& FDS2,}&N6ji+Hv#fT%uu\Ȩ; /l|Q&<U ZQ=^R[˥ѨdT~~d $X^II`dGFŧjT-m tͨ|} !j,6Ν;wr{ji:H!fT55!<2eސQ '3gg |&N>MGn[a ꏘQef}NFk>ffd S8}}z`O`hN=477$IDAT?;0g8o##褆* (Icc˗Q!H"jg_S&MAvh$X@Qܶ722~`O@,uu{^&$d>x+ p8g$?77kC^ &QT dTN֐Q $X@ZZSRGMrESCT- ȯ-;[<2555dH!C\a PT[EE5cz3SWǦ,`_(˨LL <=mE<=m  Ann՝;IIYO9=0'(*$XԳgB}OO;QFaG:H**{`d'' 1|..Vd% YQ @ jl60'0/L"H*3ߣdT$X@S3obVTۛw#/:Fvt, ߊeTzQ@"H"N20>ujI&&d1 >bY&Q $X@_j2ތ$XZ@,*om  ,I>c0^p80U DR3*CC]Ȩ` Ӌ3odVV;:LՒ FdT/^iiii}XԐ!}||h4*ّ xU  FYfjj8zDŽ }'M31';4AޛQ; \`QVz aX!!T-HGuuN=}:-Y< jր hG!!>M "(o^_ $X@>-JJʾq#WcxjTo/,)ko绻R('ĘnѡX2'==Ȩ qQ& Cj_{dח/1M!i1bFVbgTd $X)-KJf0SS Tʐ!.>SښbPʮݳqfWp1Z3:.dT tNΝ;9lnnu SN|kW,mٲQIJCIfT4@0j,Q]qr 8gp7;mR`ݺE@fF̨?/ `{Ȏ˫277?;0gXocc=yZ,CJ١6{'Owb98?{1(iDؘԐ!.64 a @:#O gcc"ր,V޽P%O.bu&lDbT]uM>]M^Uff۷dTcffx$XtnΝ;9likVHH?[wTLPPHHd]뻝 7KƬ)k2Wkw ͹Uͨ>-w3Az)'p@7 jm/MJzmń L|!D,,Nl@gR]Խ{9Tw yzݻH;ݣP-[^=NvիJa*nF5p`=!($X|0To{47;0oS4!l6LR)*W<֭Xu F-߾mQ)S_,6ի QF_a10˜5tS`%Tb!$CQ>:xpOB}|lnnGQ('Ov8:2.**ٶ-ѣ| 'ۛgdT5 OIQQbtKuQeH2AqqEwEsswC ɻyQ(rB TY?bwsMfa'F<066JEf VðۯXRSU=#F Ǩj ,i}H=qx?#%%66x,ўffS`q]fϋeYuܬǍVah ZٳgMMMd-?ވqP(T* 1{i?ehogY\UVr J"|>CtéTͻS?@#@D[[99+*h..T*TFP uttuu t:XOGjd`cG5 "ooKJJKŵuuMq,]]B0T\zqܒP @I ڣGVVt)|bM_RRW\\[\\[\\WXX]XXS] kkff=ĢѺz d tuumm|vKK{W+PHCGlAv~0@ P0H GiiҥKNϟ?ѹ|<..NWW7++K1{ѢE5552ޏa؂ ;(B)((PDj`@k׮͘1C?YZZ6oQo۶mݺuիWGDD)/r̙3gx$RUTT?>''G5 III'NOBmiiʨ}vKKK< ۲eݦM8+++[[[c^ze!䤲,`l6!tE</<<:<<'޽䔜deeh"Zx}}}g"|굵FFFÆ C"3bBѧO޻w3gtzGA*p$Q(UVݸqv%gIIInnn{m8OOOkkuֵI-[`hGUTT~ϢE/^\UUeccp߾}f*--e2 زeK~~>Bh݋a2YYYC ;zheeSttt\nTTO>{,aBlٲ!{nbRW 0P~~>qϞ=333t_;j!4uT[8qb^^^jj[ddB=<O ZBf;::*++ _~60ʕ+^KbXt:gBQ tT}֬Y, l% ӧOh , RW {_$B%''c&e0ҥKnnnR 1 ("݈ي+ K_~{yy!JJJoo?ZOMMutt3f̣GT\.I>6d=XD瓓ݻU[~~l!$OeY HYY?Q@i4فܦ@A``($X =^+" IENDB`XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__dep__incl.md50000644001725400016040000000004013273140077020476 00000000000000275e10433a6f2b785b8790083acf99a5XQilla-2.3.4/docs/dom3-api/classAutoRelease.html0000644001725400016040000003106613273140077016337 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    AutoRelease< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     AutoRelease (TYPE *p)
     
     ~AutoRelease ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Detailed Description

    template<class TYPE>
    class AutoRelease< TYPE >

    Examples:
    dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoRelease< TYPE >::AutoRelease ( TYPE *  p)
    inline
    template<class TYPE>
    AutoRelease< TYPE >::~AutoRelease ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoRelease< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoRelease< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoRelease< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoRelease< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoRelease< TYPE >::swap ( TYPE *  p)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__incl.png0000644001725400016040000003166313273140101017417 00000000000000PNG  IHDRQbKGD IDATxg@WR&Tq 1bX)ETB%@hJbDiF EkD*QZQi ~[q`v>g99yȑΠ --@CC'))$ իJjkk{ 6hhhؼy36 PWWH[[K.uww+++>| HQQŋ |Ǯ PqQttt&Oo>ʧNԌόg̘ի+W` tAwbʣF5j&`PPƆ喕KJJ\\\ ?Bd~a]BYlY~~>/邡_5s̞cK.e0\.7..=..ăZZZcƌyӧT*u…ؠٳg666X{[̙35(vwINDH"E>}ZТ;w\ѣGb# `ll3LOF'Nb*++}v277lhh?|pqqqJJ @bUQQ /^p8eee:;;҂EN(GGGkhhHNXH;v8q >_~ ʕ+_}J533 ,,,H <}Eчۓd;;r>ݱMR"U'$$ JNXHK1b6,dllliivZA.1dn!B]]!`ȑF^b_|ETTT@@@_LLLW^yxx⪪҂666---/^uɓX]]]gϞ 'M`0oNJW/444~g###👧QF:n8_TTT'W9\_s):a"8 P[[OZ23liia2MMMO<ٳgOCC76kժU۶m+,,uVPPEHіإbƌ_ڱcGNN ݻPpp\6&uvvHPFbŊh6Cu.]$>!&&'N={vA CLyflJZ[['$$B#FHHHHII{򥁁Y3899溻u!(-xO?8q"sȑAAAWQQYbŬYv#^+_~̙իWW$ClmmE"۷o5k6 c@>jllω g_|\@ +DUUuѢE} BJ.ܶm[_B@ + 7o?qJKK0DAc֭DPU'p{0AM6h@0FGGݜw8ōOʙx%p >(Yŭ93ۿ _3Ba+} Wϙ3;v#muv"G /_x-[N_8uj=0!!.**}53 3|۶N>]򃽸i,Ak:\Ee ;)NN^3ظKA.tv:1\|u{Ǐ5kޤD&>"# _>|56ѣfϤPwfbGG_vwLFv|!!EDX1( >>HHhyE>w8,ʾ{b۶s7~n]_18@,_>BQ >=^xfMˤݻH$d˖4*}!|} u$+{dA6oNe8? 5jkIPUUNN^$[ \ؖDB6mJH/<_dkx\ڵ)Lf## m(ŵkS|4*ZkH2Ԟ޷/:5u_zpv$)?;h˖4.O )_ee8q3:zZza֬O._. _=}ZcGFPd ' 'O7Bk 1|?;46͛=n̙@2YW\4رd@AvAip8 ~#I~e*il.r g{D{ɀQz2uӁUk$wwCk Wׯ&%݊4$ZK2e>5kG>jjjwv_JJj-@(^"ȱP]DykBD? /<}Zti~j:UUmdx<&wȘ 0qAee|}ۻ'꫿nc|{{Sх [||ںr9ds8w.h_WQ븾ٳ45eFGHeuo޴P5Fffn|uؖN@> 7$& 52G}h9@Ɓ|>v}5;+a==QӃaWvaؒVV֦nw_-'Wo޴EF^ O֊~`dyy{r #O, M04 &H_֒uW7n$2k%QAqh9\.9\/1q5Z}mm]LL|Wgo77xxn߾mwr):wAȁ::^=}X]#7yzkcee 11?]*)VW믇 ihh8wnۯ[UEKHhu?6m#Z|ryXppxK!z|DAL"!\l67)& @}ɎY3}a+V=}Z'4.gk+(a :Ag'vVtuq-{FyII_D E^^SͦwÇ'ܘ $VV6]HYdd;w󛮤DVPY,vJ>>( Μ $ZLvԝ8 È#g@FWݼYFG]]]#kkHsu,ԩ;ȨΟ2gB55ڵa{驓Hp?:;DȬ ,-8**Jk((MMu--SkXϟ7|]TTb7oTPƓ b\Ss>B 7o윲_^^:j&=/rϟ??8D x{{744~ʢ/7Xxyy CҒh!H9_Vq83-Ջ4G-?2(dWCW555" MϯQxɎP55)S8p˫6o<A*** =/HBPWV֐AjPqssдwmhhKIIimmkihmmm~"##>|{ӧOϞ='O677߼#V.Ν; x2~(l6W}Y- _,X),//Ȇq> 1c,njjuqqosO<9o@zzlW]UU޼gdd 8{;::'44TOOJr8lqu:nbb'8ދ\xښB\MMM***</**jjjj---W166  lii?;VCCcϞ="iś Ȇ .]LKK #ɂTUUCCCҰ^^^ϟG3Nu &_{ B\fJ\M6 /-v}[Ik׮h4-- ZXXPnAi 2@L>&>W~~~Vzꕞ^AA𨩩)))۵kv 7oލ7"""JJJ ԩSCBBjooWVVkhhHJJRPPhooX<99955Eh*K.b 5kVeeeIIĉ#""P,_ĉoox@SSpZT!(bFs====zhKKˈ#PU^^^VV{LՈ%qGzގ-,\5++ [{s)++>Fu7W+p}llllmm-v&L bkEQ llnii`ZTTTWTTVWWcǏJX,>d2-Zd2%z 4553L‚FFFN88m,>>>{\tttDFF g>}z[[۷]$H)))wIHH"Kl&AQ1#ʰЫo }Om_xĮ_,ap,N_|uQlTpT_KKK[[{ۣ+$$PCCcX\&cܸqJJJ&L͕Xfϟ?_FEEh4UU?;ʢ(d2W\m``uVl(҃JKKӢ=Gxh{{'N8b++ tcD">ϟ={`Lp8ӧO9r-"⫞J'N3fΖ-[X,ĠL"ff;Ν+˒DoX"|~02Ҭe(dW4^EkU@ꁁ/ғPdWzoVPԸ?FzIx8"/Ȝ,- p(cdW* s2@ s"ISݻWI{ΦMw E򈨷 H@>oKK_g}lٲ$tu?~됾lٲ>LSӃgcVw?ezyWS >_!`u^#+UUjh?ME +EUU!TV8FiiASn>7FQSsr/2+A,OO/px/ PV3f3g( 2+45_ Z|Y%1cꦥ&'?; Fw>4 ^=޽/^-D))]4fӁT2Lq2+Alqz?/=(,Z"~T5ʲxKڰE}XD1eRPP'd YLڼˌܻWdyℿ4!xzN10Ќh!'~֬O[HdБ_)*w횟񠤤h-sI..bb|` Od~vqPus;HD"uRZJ"@d8!z^?%Z a?[6Sh*G>|hvuI kצx{O'oh*Gn|{7&_-d{iSS##y򕞞Ν1)޼9- >A>[QW_Qj8ϝ+ I߰S ~b0RRne9s~HHzPЗTr `iiWyZ{;v o8廻ͽti됼ԩwgl:h- @At?4 k]2vM%ȥ:~_bo>~޽yW?r9nªkBԉւǎ]?p޽nDk|VܹΝ "L @>UV=xP/Dk(8p<+pן=?ZId#G򣣗^@>8P@HHz^ޣ'ZhDDnrÇy{O!Z78ƶ˗-O(s_~Y)r x"@ EEr\_GGwP).Ww]8y@S =zz))U;vNEoJKݎh9:ښǯ|pdov͛DȀ0|5HSR{{g'Ai}KKp3Յ ʼn]\.PС+ۮ\)~vtt10v3PGo߶c.ysر|d@aW۷\ƍVXl29tiHHs81--<?8%bd@a\g]RXNII鲳7O6nkome} PT$kb2݊'Nn>еCghW2LI\RR+0СOg4ëju,1q40amrY\.Ъ[ R\IDAT[rW.?tk@CW?¦PP Ӑ٢/9ry/.mo!UHHK/+..jI'j04}5}H .0r-qA"; /'kkߒH$! biiol{wX"q2nnnkfod G_/Ϟ$>*(]\&%$·둑=L&I>>oAd!+n3<0_=z]p;imm^~}GGBBB 544/_܌K(>n8%% &J,fϟ/Prh4Qe2+W600غu+6Wiэ=Gxh{{'N8b++wvv$cǎE|gϞ-Xi5Sjm'N3FGGg˖-,KbAJkD>'2DbW>#_M#ꁁ} BpJ%W@_A }?W"|CZd *dy D*YBh!2iUpk\ܪŋm?W@_A }?W@_A }?W@_A }?W@_A }?W@_A }?W@_A }?W@_A }?W@_A }B KjkG>FTS%sgFj]isU??0z JsNd=J2_|1A]]Y,d WQT$)*gihP_D **,TA7HOC*Ӧ驋9dB@+ d{CA==u{{SA諞psc;TT${{ B zb$cu?9z U/,YbH 05ձ4 ZD{.((-J|} . BUxyM4xm@gꪪw`i9DBf0~Zd*rÌgMii)\MssxVVVD 9$<W8pHvҀ` @ UMMUTT` &?zHAA!##CURRb0YDSSS??GQwȑ}_QQRH_{_丹IUUUMkjjܹSZɓ'7---wmܸ1<<|ҤI\w644եaJ$ӧO6H@x ,8\AA'_E 6۳SrO>&my{~yӧO"U^^Qss3ٳǏp8P===*pMLLtzxx`,^ pEkkk bff r755ӦMHqɓ'ՕL& w@+ici9tEy<V~Ei4 #W޽{dׯ " jhh` ;KP( Cd2-Zd2%z0. K+D|2888**1<<<00۷4qa(.X1S;90# {B>axc2yyyX<88ӳɓ'SNݼya5<<ښ`0 uI+b(JfffcccBBBaXcy?|޽{6TR%\/\p̙ f[[[/_|(N]]][ZZR @?BSyyyaayXX`;쯤:z 6pႁvﯥ~bhh|f,.^ Eq)))M0!77Wbq6=|aa7n\nn.V/Ù>}ȑ#Q1_?y򤲲/B9MCm>>>k! 'N3fΖ-[X,`;4$<_ T ***--13s"!q~ D%p?p( _A }?WHxYB %y󞯔/ccc%"@<@ + lIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_40.png0000644001725400016040000000527713273140101016037 00000000000000PNG  IHDR3LXbKGD tIDATxYLSǧVpC-RbT\ ? . D( /F([TwT("%""Xnwo-m,ܹseΝs BH!7HE ẩrXBb)T*uŊ¿ٸq0un޼IP8Gu:]lllaa"(V%TQ{T 7HE k}-F~:^S\\Le2wFFFpp ̙s P( 9z(Bk,0BDCH$ }cccccc@>|]P@<<<;nuwwxŋ߹s͛Z=33BXWW\`WZd\]]o4===r\.PVXbb%LEU*UPPPbb"099y֬Yx-ZjJܹsxEzTWWS(@MMVvҝAE|K.8qcƌA T*xBtuVhhqN`E"QDDĒ%KxVd2leWxx8ݘ)Gyyy=ຽ$XJe-fQx* -_|bn:cǎ!?BxС@djhhJAAAG J2lܹ|&MS?~T*[ne2f7Getttmmmyy99rȀF .ð*W"E;:: EU*ǏJN{)BX^^Nѐׯ_d2A jJ{y,**p8~~~EEEÇlЗ4HRT{9s愆?ׯ_ AEqb hĠS@ Oڵk999|>߄ 7oޜ={Ut:XC-QFt0m4&T#H?n׀P-Lf@@@YYً/gA3P[[aœ5'brʈN!T3gϟ?"##ݻWSSsART&BP(wE{Y7oJKKTj[[ 2ݴiSTTTccL& Ξ9sL&d ,HHH0 gSW2,))`ܹj YWWWQQ뛕5`h~~رcƍRT9::CEDDlذ¼<ӧ={Xh}L~yfWWשS{xx8;;|6K,\p„ Lo(<6dz1ŋg̘`0;)j*˗67;rt[=5+#hg88888C!Rc `hhY7iҤ$%WT,ܹs6;" < (6ȌPlh'O_111rӧ2ħT*g{{PtQѪ(SJg]XX(:::ck"/!Y*F#X,@ h4P(dL&s===(P(wqq9u@r܉'.XիWv^UUd2Ӂ!OPRRhll$pLR&0?ܽ%,, ,LԂs gf̘A8ۻ|=y)0|l(a--۶m3݇d@P\\۷{eeeKKKjjj\]Kd޽xlob|la>޸q#<<\(T*-@de۷O2511ߨH$fXiiiV'ꗵZmnn.?~yDE]c)Pԥׯ_o4 BG8aFY)# BH2۟0903pl_XBm! BbA*joX}E׾$ ‰Cjjp\h4ڳg83"Q{T 7HEGqIENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp_source.html0000644001725400016040000003472113273140077022126 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationSource.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMImplementationSource.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONSOURCE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONSOURCE_HPP
    24 
    34 #include <xercesc/util/XercesDefs.hpp>
    35 
    36 XERCES_CPP_NAMESPACE_BEGIN
    37 
    38 
    39 class DOMImplementation;
    40 class DOMImplementationList;
    41 
    42 class CDOM_EXPORT DOMImplementationSource
    43 {
    44 protected :
    45  // -----------------------------------------------------------------------
    46  // Hidden constructors
    47  // -----------------------------------------------------------------------
    52 
    53 private:
    54  // -----------------------------------------------------------------------
    55  // Unimplemented constructors and operators
    56  // -----------------------------------------------------------------------
    60  DOMImplementationSource & operator = (const DOMImplementationSource &);
    62 
    63 
    64 public:
    65  // -----------------------------------------------------------------------
    66  // All constructors are hidden, just the destructor is available
    67  // -----------------------------------------------------------------------
    76 
    77  // -----------------------------------------------------------------------
    78  // Virtual DOMImplementationSource interface
    79  // -----------------------------------------------------------------------
    93  virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const = 0;
    94 
    105  virtual DOMImplementationList* getDOMImplementationList(const XMLCh* features) const = 0;
    107 
    108 };
    109 
    110 XERCES_CPP_NAMESPACE_END
    111 
    112 #endif
    The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implemen...
    Definition: DOMImplementationList.hpp:40
    DOMImplementationSource()
    Definition: DOMImplementationSource.hpp:50
    Definition: DOMImplementationSource.hpp:42
    The DOMImplementation interface provides a number of methods for performing operations that are indep...
    Definition: DOMImplementation.hpp:43
    virtual ~DOMImplementationSource()
    Destructor.
    Definition: DOMImplementationSource.hpp:74
    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8cpp__incl.md50000644001725400016040000000004013273140077020156 00000000000000c7ec96e253f3b37550bc311ee38abbbdXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver.html0000644001725400016040000003635613273140101021505 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathNSResolver Class Referenceabstract

    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

    #include <DOMXPathNSResolver.hpp>

    Inheritance diagram for xercesc::DOMXPathNSResolver:

    Public Member Functions

    Destructor
    virtual ~DOMXPathNSResolver ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given namespace prefix. More...
     
    Non-standard extension
    virtual const XMLCh * lookupPrefix (const XMLCh *URI) const =0
     Non-standard extension. More...
     
    virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
     Non-standard extension. More...
     
    virtual void release ()=0
     Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathNSResolver ()
     

    Detailed Description

    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings.

    DOMXPathEvaluator can construct an implementation of DOMXPathNSResolver from a node, or the interface may be implemented by any application.

    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMXPathNSResolver::DOMXPathNSResolver ( )
    inlineprotected
    virtual xercesc::DOMXPathNSResolver::~DOMXPathNSResolver ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMXPathNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
    const XMLCh *  uri 
    )
    pure virtual

    Non-standard extension.

    Associate the given namespace prefix to the namespace URI.

    Parameters
    prefixof type XMLCh - The namespace prefix to bind. An empty or null string denotes the default namespace.
    uriof type XMLCh - The associated namespace URI. If this argument is null or an empty string then the existing binding for this prefix is removed.

    Implemented in XQillaNSResolver.

    virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const
    pure virtual

    Look up the namespace URI associated to the given namespace prefix.

    Parameters
    prefixof type XMLCh - The prefix to look for. An empty or null string denotes the default namespace.
    Returns
    the associated namespace URI or null if none is found.

    Implemented in XQillaNSResolver.

    virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupPrefix ( const XMLCh *  URI) const
    pure virtual

    Non-standard extension.

    XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI

    Parameters
    URIof type XMLCh - The namespace to look for.
    Returns
    the associated prefix which can be an empty string if this is a default namespace or null if none is found.

    Implemented in XQillaNSResolver.

    virtual void xercesc::DOMXPathNSResolver::release ( )
    pure virtual

    Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    Access to a released object will lead to unexpected result.

    Implemented in XQillaNSResolver.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction.html0000644001725400016040000015305113273140101023044 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMProcessingInstruction Class Referenceabstract

    The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...

    #include <DOMProcessingInstruction.hpp>

    Inheritance diagram for xercesc::DOMProcessingInstruction:

    Public Member Functions

    Destructor
    virtual ~DOMProcessingInstruction ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getTarget () const =0
     The target of this processing instruction. More...
     
    virtual const XMLCh * getData () const =0
     The content of this processing instruction. More...
     
    virtual void setData (const XMLCh *data)=0
     Sets the content of this processing instruction. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMProcessingInstruction ()
     
     DOMProcessingInstruction (const DOMProcessingInstruction &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMProcessingInstruction::DOMProcessingInstruction ( )
    inlineprotected
    xercesc::DOMProcessingInstruction::DOMProcessingInstruction ( const DOMProcessingInstruction other)
    inlineprotected
    virtual xercesc::DOMProcessingInstruction::~DOMProcessingInstruction ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMProcessingInstruction::getData ( ) const
    pure virtual

    The content of this processing instruction.

    This is from the first non white space character after the target to the character immediately preceding the ?>.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMProcessingInstruction::getTarget ( ) const
    pure virtual

    The target of this processing instruction.

    XML defines this as being the first token following the markup that begins the processing instruction.

    Since
    DOM Level 1
    virtual void xercesc::DOMProcessingInstruction::setData ( const XMLCh *  data)
    pure virtual

    Sets the content of this processing instruction.

    This is from the first non white space character after the target to the character immediately preceding the ?>.

    Parameters
    dataThe string containing the processing instruction
    Since
    DOM Level 1

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.png0000644001725400016040000001156413273140101024414 00000000000000PNG  IHDRp bKGD)IDATx{>>ZZZ߇Ƙ/^͝;7<<˗/yfttY]]]}}CCCyN0!))N:uL&>|X;ɄHMKAetvvt޽{ZZZ>*((z y555=o"-3"K>y򤼼0::Zx.{zz566͜93::`0RSS_9)`PT at:,͞=f0\~^]]]rrrGa0KsU^YYwڵ ð%K99/w\8]eeeJT쯿 0[n 8Sa{쑕- Ex$TTT`zvĽ0 {յkq"y?%,kkk_,,,.\i&i^l6BhΔ fr?U)))qttRL&?MLL/^\XXɓ\33 r8Lhؼy-&>?UwӧFFF#aggT__offoہ<޿6>>~֬Yp |NWWa6lPSSSWWcX™p8***֭c0.aXVV'|"//?}Aܥ] 'O007$$d̙ fff}ᘕEyzaiiiSLغu+r-RRR`WWNpp0\y TIZ^DBz444;ye;1?QqfRRQ<1 !)A Hybz,//1477O-88xw&wΜG}D2.Ay#_\ "FRHs?r)o$\\M&8%%g\7ly< ++s# v )HyÃF{ 5S+R0}#`4Z%!!_AAC{  êә> R0tH܅a /;g\36@#kk2/)({ka~2B j~nk#: ZmĀ <1 !)A Hyb@CRĀ <1 !)A Hyb@CRĀ <1 !)A Hyb@CRĀ <1 !)A Hyb@CR![===7*S(FDG1Orkkی3 񾒓"lg̘acc"B|ܾ}[ĂĀ <1 !=-^Қ5kV``*np8gΜVVVk׮zzzΝ# }qΝ}}}Mؽ{ `aa3Ę322Dj 7s֭48Z[[ׯ_*#/]wi%%%@___``gN:UUU+##hoooll444MQ##ϛ7OIIb0􀀀tdLr28())[m\mUUU'N1gΜ{]gϞUUU=zg}FR aKK˒ٳg^^^***uuk׊W]]044ѣG}}}#C0GEE-gx+--uuu{yyq8KJJrvvvvvNJJx555NNN텭{C.]>/B,DZjUyy9,**B]nؔ}ŋd29<<0330<> #ɓ[[7nZŋG+)/LLLd0=Bh4:[]]ggg޹sqqqpÉvrrx񢗗סC8F讪*^Jz{{ŋtZZZtuua'Nlhh`llo>|Wdܸq&...,,l3)L&9rfI:@ZZ@( =ɰW0u===운#|˗---O8{nhTQQ9+_uuv0544_^W@ xŻw˓>D0 +((X`ܴ?{9sK=s177뫯 n>>>ⓢџ9oeDГ [hiiP⨩t㶶6(F+᭶:th<(--v++Ԏ;v {-]4--ٳgϞ=;vXGG4/vrd XWL&իWt:}͚5pؾ}{EEEKK/wRdd=jjj* ðXYFMM'x<2<00/^x6#H'Z[[?~dd[[Ǐt~漼<&n:2|Qssseee__߄M6H$kkkW^^',,,XŽwڕK]]ݨ(yyyiL&ȑ#Pe-[`ASS"%%_eRRRӓttt{jkk,l~zUUӧO&6olmmmmm--iJJJ裏<< XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__dep__incl.map0000644001725400016040000000673413273140101017220 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__dep__incl.md50000644001725400016040000000004013273140077020400 00000000000000d274014cc23e16a01ea9de389ddf05ddXQilla-2.3.4/docs/dom3-api/ftv2mnode.png0000644001725400016040000000036613273140077014623 00000000000000PNG  IHDRɪ|IDATx!NA\ Um@`5i`h W7] b&ofdY4 c 3v=]\B I=BB;k WN@vy4]Y|M}]x6a }dׇY>||5?>|B"'IENDB`XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__incl.png0000644001725400016040000012172013273140100017121 00000000000000PNG  IHDRPebKGD IDATxw\O{#CAPQ]uTUQQG]:P (AP2do2 ~|c} >9r+7>aYD9IIIͧ@t͛7o޼ItA e]t!?$͛7_xHt!@/^x{{Cf$NnJt@/^]+OIIIw\k###___mmmDWTTdii>sL /kffvE$.]233n2#D$dѣGMLL/_BBB,YrYuuuPmmҥKMMMϜ92*..ʲÛ޽kd2hٲeDlݻ;LLL]Z]pA[[nnn>gpuu}׽zjd2B h4$dD4iRLL cxxy8ee3g?>ŋa_|9lذF6`09mڴ'Np8>ܹ3fxyy޽` WID_{xx<|p^^^W\yɬYƏY|>}:I&]v !/ &O,9sL8^z5w\ooJM I4ssB^_;99eee!Lfbb8Beee{zjpppDDݻ:˗K.I/5!!ĉK, >s振ŋs EEE'O-mll:|0>N&'O  2w}ʕ \WWÅ'0$:zڵktӧG%es~ӧOoh>_`$eyl.O:_xt:K8?u~?L>!T[ruu !!dy<>ͫbFP2A45UTUԔ45T eEEuu%*Kf$ ٲ|rS:uܹs&&&#F6mQ#44ۻIoG]lJ̙C"X,0`ҥKBZZZ-:~K~FE=z&HC[ظgϞSLyBhz$FvZ5bĈ9s2&6H)(jZZ-oE 6gx,W Yh4a55u\.dr8^MMë0l.[fX,.V v]GrP(duue--55%uu?e--uu%55e euu% eMM|~*}$ݠ-L> Fo]>>>w'~ץM{Ctt&:!Cwrr^ػABr*>hEb0UU8 J1717ש+6WXXUPPUPP_|JRt,-,-u,,,-u--tuO ߠgo>M OMK+TSS:~nÆuE'?ɓB `[[~j4vF"QdU>Bd>p 9|>ތv?*-R[WWKE^^eQQ5>‹ $FrQQaaIO3,-F1z_|Ti'9!CN2fSݤe"T[ˉz:3::3%%d;`ݠAvp.._XX _حqf&ݻ8:JNI"9˥K!! 1c&N|\}ڛ77YL袢ҩG$!J*"#߿0Ha>}XZX]]25vp0qr2wvpqh̸'HI }Vl3ۻ<_gE=z6c̙ml *Xt$!`}+9Ukk8AUPCajjaJJ~vv@;;[8;[8;;;CMe'O Gyz7o L&;88>((ӧ},2aK~:^%*BvvFnn֐*@`SR򓓿$'IN_pqEV)N$bb^<}jixЩSij~3_E#(((&=fӒ%\]TLIB Щ0촴d<[gfM~{[*P_OYڑ#Or--rL5SСp xh4۷9 994KUUW/˾}vqu>\GN\.?$$qz.]j%6OzzCO{gft3:ݔ9Ѭ_?k77kHC섄2 lm 4n`;3Iϓݖ/ae'6OffCCC\9r„^U\#A%%U ֭B6>>'117::<ץv:l:Z ?ӳ5ck U=ڵ7˗HI!匷o!U΅&'ˎH3ófMLJ۵~~~i~mhָr\_fgٵT AhrFttfllv\\vT]n_::NJJXpw5qnЍwGADbbm9}~} {ˣG+_ԩ}(lѽb >IVs?$$O˭[=A nJس~MMSB$ZB,UP(=l54 UǧO^D {~pPWW@q< ͛'T?NL̙xcyAXrs+"#cc?~ ȻcǞ?|lgg|/>G;$ 6ou_~aÆdI m3?·g4IW2 c޽ UyS~kޘh03l$Q[ȑ9'8OjjyUT.lcO Dg LQQ5jjJ}XAr$/׮-[6|Ap5$JKU-O£謟~:b8_KK+b It6xL* ȑrQ/UT֮3kVxd$rr9%._^ЙOӖ, 6[@|O@ UyT^ؿ+1ݻl5xu(D&9sN?XWWP[oWp㌌$pTQUTndwYU’mzh%w̘q_. …7/]:||$KJ{CO۷ffΝ;h10dt$޿/>x^-jťK\Ǖ+Gsy>;EE5*e]0[eA'$Lյ* c6M3g|Ym Djj'̓7#{{a͚1WnDm/(j+Fl0] @ 22J!UD!CfeGtE򪽓Dcbē'9h۷{gm@}3/Ϟ}|Aff)*""kjjrsvwB[w=#d 5IdeNtBEsOyy9xp&EeGffСO'כڿ$ Uxtû80PL% ĉn[,߿/:2vl#GiOY3|ތ JYv,fe|FWRhoqq+W^f0G ֍rI;% ;}RZXo^I mC//>ew~sD"EGo닠HLgf 5~зWYz4|mHdIיaaJMzq*,oL&99?z@GmH 4 mF8uEnnА0. bΝn{ ۷y Vpg ]ˑum$]{vzznhÇxtҒCҔL z矷|#Lzv[Ch MM%%5{#d@Ӡ3"]EEsϝ[ԧȴM?ϢE7Nhhӏo_m@e%e $dv7oBtQii_SELL24ݾ_?kgHHo]9FTڷoq= &{!::+(h1 !E&ZΏ?PukECԎgOgQu͚ dҁ3gp#"B}Ufttf||554Ȯ)޽, /XZhۀycB ĪUW663?8(/W"`T*%%e'܎dKL}:3::ݻ|UϘ0+r ?~1g#Q[=lyz͛3KJp{1BۓB!#~bM خY3ȑ9cBhKϝXK IDATXRR9BgѢsD#$Iddl1zyX1:lRWW3 !4uj_k;^ʔX@a!C\ݞB"9tܹ?}*&W7| BCk) æL9VW [%5k:W%%K-ee0Gt-?;-,,[$iiRQq d00;UuúOVA_|il6oƌWkiga2N-q<~VJD˾;1!?`5k#47O^TTvW^=p7E8}i"I ZZZZT%:h_\;ϟ_ = r,=pX)Lq}Ι3٢1mZXXL6j|ǀ:NWUeX]]f`ahnh&D9Co`qI"v*vcѸqH$Rfffc5׮]#IDla Ņڙh***nMF Nt-k$`m 9wFK {G&FrlJeٝ;wڴׯ_;wFӧN۷o\\޽{6lpQF_y٪Ii\F|Y__YTTTTTkPst3 {\[pxEEE]v1cF[+-&MꭢxVхŶo}cy9sΛ`&5>mڴiӦ54b?VlbFFF YPFFp@ :t-[׭[30.]ˎ;vƍ7Nئeč-ܺGl "ev{\[ۘb5 JJJڧۃ_ڵƍ;ȗHO/>}:bÆzzo|vwo{YUUBիL&!r \.~ٳg/^غuy_/ svvVVVx"BI\\MMMEE۷^CCco޼g駟׭[bB$ٳ{x񢵵֟)lO"-[v׻/]e Ϩ]t qڴi7n DppԩSڶb/^v=,oS'H/_vppB @7gp:**޽{{VUU511ٳgBKߦMTTTB~R5F7o󋋋޼yOܻw)S򒓓zܸqϟ?wttLNNNII߿uZ`())9sFAA`۷OgϞx"a444uVaaMMM=gΜ#Fdee%'';99c5kF;}4Bh4ɓrf1I<..N[[0^VV&}^zedd/GccobV]]Z^^$ڸ%no06o||SVUU"***sNBo]TTp|^ZZz5KKK@aXhh)ǦFo_9 &hs=:===&&_DIoZnsu=!DtzAA/`Wm=z,<<_Ē>m5ɶ\{NbxZ$>L65]Ә}ڳfxLUUU΢ݻ} .z?[u֭[o҄/UYYIR_UU%t:oh)STVVbfoo$,!CP޿Ou떝aD 8k(#lkq-::Z___쯿a .]4j(64.xAqM۬?9$5/_a2jjj͜9 kmJAbRċ/0 ï 0vvv'oMvKu=N먺zZZ+6._,lʕ+*$$f$ FKu0Ϳ y0iR>}s%իQGK,IMMN111o05jTv`w0 -Ę6,22L&K\`p\З/_z%,!TRRmmmvvv¡444BT*UXeddmjkk׿:))Uin޼abK,(}{ܑ6Q2蜍ǎJUU388d oaؾ!{OĉN \t… R67Xt=T)ك-RS ڢe9$ql< ..{@˗/G9rڵk|:Q655$%%_ -UWW'n޼YYYhѢ'VVVJ\ѣGc~תK.7l"(ϟYYYfff}wևa؉'Ə8gΜ۷ G1̽{0d:.w%fD4akO&vh| $Q2u颟[-˓ʨiSH#dջwyM]Qcn#Gرݻ+WN:˗/=GuVgg甔 -UWW\VVv)ee庺:>|Ν;EEE>W={#F|9%%IdE' {Ⅷyuu5ۚnݺ 6ÇnrttR]~VQQ{p8?*o>;;;55ðʹs陘^ç6}{bΜ9b_1k:99:::ܹS/^ ;&6]zoh3ܹS[[6445\.wȐ!ZJ0Ǐ5k!>}ɒ% C8.WKyO_bE]]ĉT$`{XmCjii;644%n=yIdU\. v$In8pQ9vY>߹oV"yO&K*R&JnI KJJ\Fj=yITUL& v$͹🢢ҥHff)㓘X[[.^袚CII!.H M]Fc]zŊjjJ_*3gO @SSsҥ@zyy,\xb S2.9;&'3g"ܤJ{7u]t@sΝ;w)br:LVmuɬ]ݨ=hPMM/f󪪘 > ȣ2JWӒŋ8 7iJBHWWIK2f`ItkBpx'O;wwSYD$t8%%4CC Xۉ&=$CJK+MڸĝA 8VSQQPZZͼ!%::z[ȵr--کo&ġCv˗.f>~,hzHcDBBλw_v܌uTV2U5mڴf,He2BHWH?ks$:V*fΜvV^-SuT,` 6i.߫e$/$Νrt4suҌu,MMf,l޲͚`hyY }{w -||NWY#&9x %t|{ر垞x{хQITT0hQ tȎ=oDJEEi{hѦM!{Vð?էOIz}n â86iҨ/_QR6;;cF@{2#c[;;[92'&fY_3p_Vrw޾ k/""}(G !0՘3TT>_;LZÌLLc||}f|X۲eիo ur4\wmӴ?Ű`>=qK/w0 ~##=<Ze -PI MBXY髩)]HR) zӳƍ!&߶-t^] hNYV!#9Ip8l[e*jjJEE0z@/mԧ}TC+W^f59_yD y3__CC k9DRRssniմVkf?٭եG̎4l؞c *_~ha~@F>D]t8х"I"66P!25..$!h$B$iʔ}ƌdh{* ӧ⠠uv$.mꆜJK+0ѱ]cGkjj~RS ]{yDUUEk`ٳ$$ slZq5ZpuCNhkj]H{pt4woʕ#ĉ ȥ-[neҡ,ڵk H&adgWWcՊ15),sr)5n)JYjӧ~JJ ߧ0hw߾yyvVy F۹7$ )rnƭ[[*&/:R޹⯿Oϟˈ_M׻%ѵV}]D"$$tWQi{vvVlOSwt mzK}DZ-^|Pȑ9yS'ڶڻeaauI %SwCOK+$gOGV%'!~"#SmRPɩ8sf! ~:F+sq$IIIpQ\yeĈml~/,NL=}:̚ZiFFZ!!퍧L9Y nÆu#?x0/B8̙7ӥ>ɯINS!\Y66T*]0ׯo;u1M#@|Ғ \,8sv"6w\dVVM.4͡CO޽?PjjB(>>{~~FAti꛾9 P~Ym>h ;;Cg?ɤVCR)S_RUsBw+m}}=[?vRS &N<|mʕ#.M}$ a*mCo܈Xmw4>dk}$IWW_~hzDڼyfyDWĞ=ȿ:B@Ӝ>AR\>//k]- J56@E> IDAT^ 3n,,t$u'܈x:sΰ] h}>_yD F$OjjjoNaaEE5/[&I`BHmxYDDzۭ4BMB!;9MJHI矇?СBhnӣٔ)}.41bca0lyE 47W7NnMwwǏ߷*@uf&"`;vxéf5kL^暒0{~r2v y"`gFΜ0l]V_eÆu*MHӳ %ɵ3v޵~P+k6uj_) k$~UR IK $h>h4\ؖ- GgkMddoJH[Tic۷߭ʷ^aΠ%ZH?Lt-rB,P>~ /#7o%'?yV}TWW㿢}ۻwoBB† ._߾}~ >CuuO?onnn:"HgϞupp000سgŋOf}lٲ?^ti˖-#SSStinܸ!O:UիWwߍUަ(Qs @7Ԕ1**J'O޽[~hhhn W\f%Nl–tu/'-M^|'hjJ訴%(ԊG!EEŠg޽ܹsAAAT*UfW_7w^޽UUUMLLكIP^^^k֬_l_Lw 琡C\wEiHzzǏSB# ̛7oFFFo|= w)S%''?q?蘜ҿu5PRR (**:s挂طoϞ={E i8 Q v)ڈB233'Oܷo_ h4… RZZZtP]vgCCCMMM\N1sr9 K27_S[˖\7/pC^pUU޽}xxx^aXnnݺ6--MRT*uUUUN2eJee%aAAAbΟ?p8 [naJLL0ሽw-aXh}}}Ჿ 0 tҨQD8|f^^C/xoSf$ nwzaٌ _ngg'qb7ތ$akϞlƲ[З/_Buu_&''+++cB_6Iڇ\ꊿ666+ĉcƌ.y T,vȚ([v&D,)]TڤSO "JH%KȚ(Kf?ز̝==|$$$HKKS(ׯyd2qi[0Os_9<> 9GvVV;;7>:O3g^HIo ݤy|CFQBt` }-;;{DD.Г9 mi߾}\\\=hws= x;P'!))ÑGC]]B[[ʕ4mʕ+O@@+KR)7QQѲ2$33gZ ѣGk׮˗/͑BIIɹ pRDLLgl`_x1򯳳{[v̙ZZZ `X,6(((%%ƍHɀyDQQQWW-[/XO=t[_`270ؘ2[͛7{NC^`AQQQZZ̑#G,kmL᜜ӧ{%`t,+{誃^B444$0 www8::֛ ֶo>222$ 4*P$RFFghV`F2jܺu).n0 _ZY#('Q3|eUUUd ӧ"""d^ssɓ7ltvvٳGTTѱ)_ !%%:k֬www[XX"HΝAE`_r%??Ȯ]ѧ!Ἴfъ;;;MaCIISQQɓ=z'$$@t>}T bbbs4$D77`w= rp``m:::, ֻx0 FKKﯬlHٱ㮆Q^Ppp0AA4,I07eqqk׮9:: I$x߰a77w'O㓒).nǏDDv )xXDd7#Ȍ+ Egr?2vOsr˖b0"v={y@/`d 7N qNNKvH+{{GH:7 0llxo%Of0|H*Zc`O!GX^wD܉"<<<7nN!}03SZPȑd2iǟ>~v-=wF M= ,OHJIIUtϝinsӀ`@@p ƉEE5s;z}sggq]ܠRccǏ?eJ"Q._P1c5z2t1E04z3gN%rs>deUпuqؽۜ +[_O0Yԓ T16OUn9Nm~;wR蹩ބgS01Cy&&J%%JKk馦 緢ܹ0Z**Ӽ#2II)~"Qܟ0'9C@;**njz#,m}zX`Ǘ塭e\A&SyjlplM-M[Çwjjk;xf sRƨ={Tn0KI@pcoI6n ƍw ~joi*eKHNΏ7oCMJO##3xx ή M}]dz AٳMTVE#a.FO(ӓ9p`ɓQo@{ͿRX *Ez(_Z7OGϞu`I,[QWM> ,,Tn E̘1Nܹ"G#䄗/B[8p?RTޙ:..6ğ= II==;wRf0E<..7@`aVS01_޼z-&zer &&zxgd/Guuh5ֳWTKvކ.7$h!&6Y/dlD"gK֖B[ 8oϚ5! p} ||ԏ0$LLMjFH74tC~~w)?ۍ;凑IymeeB_?UW>{76[Y ΰn?uqѹC{{7 ͛cbrDW BB>.ӏϞuF[!#I|M ==˗oN}6l__ #sqT4 L47w\?w 7[,mLNtw7@[n&>n[[u7+VE} zvWi׮llݻaaޥK5^wp)/ɗ/?>Lzur= L Kb1sW֓@[AAN;L}?϶VaboI$}Ɔww7B[@Wݍ?uZ~.}㓝]Ͻiu xyA(%`(FIHJ ,^++UF-E:tIg'm942Rv $CDo;bX(8..帏_V$T 3}|cc nnz&}ĉ`0qؼyҥW>~6g 04D_+檩MG[ 7*+6ˢ- L̓PP56Vx1A< Lľqοr4`-!yڛ۷'1W56ݻm!Hyyݭ[Iᅦ Q{Z`>F}IFx4gL5/^d[:Unl޼ի/h a\*+e&$ăỊwٳ7OO?r p#cĞOCZP>,lǏߖ.RSӌ+KJ ܸm!˱cBB[ySz9xyY0Bn̙3]]~_D[@sXƍ?ІF$=[ttֱc6#0L Z[t൯_YThCRRZg0Z= gv̜)l!m9YL AB >|"ZPH$?zpիoM=2r"XF3q>xBօ j :\\l˖ y}{75/c6h And] sg&PQ ]Dhl,,rАzՕ +`z^ppJRRZ ^Ϛ%thhh};9((䤽q|v~l<{l Pp/_~ZX_V͝;Ν0.&iop᥎7lm5޽:q2zOb$vOOyǰፚ3^=u$ @? ǬZK рwPPɓBW~n=y2j)۶gd=q,Ё1EԜqcf9Z!!p[zfvBE@`_pГ3::j-~յ^RW',,mӦyqq 0Q'`G%pX6\nfvT|ݻD"m-(u^||ϲ Vh-wlnv|$vu&c}ؔVjjb}]]ׯˋ]=v,֯cdyuum/_-MDc\ IDATVVjIֶDki {iZww#g:ob#nsw K35=Y"jM^P =qVҏY-TV6>TKӧD|vvu&.T$xy9Ϟux0=6ح++5a0%N"ڊ|Vrraee#B֋clY(.>m-3\GW9ǎ٦ZԡT›;bM~`ɓBBR.<\" (q2Z{q NNVww#Є';E :,%u m]Q˓ ԩe$ԩhj) u۷D/ع^}=عܰଭ9v|áCV-P8mؽ49! <)S IMI)MZ#$v[bbީ2(`,[YXXUzsS5鶶h &D"944UW篿bWzCj.Q77Wڱ.胹rJk07KK+E[0J44$'ְijg?|(=~vlIEQQ(k; \ #fi y\^n[+!uhFòes<4qKtv}|5gϞꐔThjz~%%y=0u$ECAeOe/s˜oc))7eeU>mQȰM>Bի m,F[HK+bE`b뫦OG[gNGGj^^KJ~Q8XH9!ဏϲ謹sODt- .bbut&HeUU&̾ׯU6699Y_}3- .ZlA$--/bgv0oqGGI/͛_o:M.R\\^Oo!ڰ)<|oìchk-[|lz|ݻżHׯfn|{OԦ" M< JJ~X1 [Zاm.I|급 (9>ܬ'K7=ڥ|i˵BC>~d۷ט)e4;wRΟ`0stMBȬYH\r3gbvAJJ…n%2{)\ǎټ{祫+eKѹGIqXt\)nA7 dҚIO=fh8, >r$BWWI!+u<]\t1LYXVE@D;O kk{zTӮ *wGAAまyۀ,-g8‚[Dy'8o0zǎ1ߐgvvҥWV<-!aĘWTW7egP{‚sr^PEa1M L\`)+c=//Ki g2]]o&'arJ <<wS8u'k ӓ=rԩhv|Dqzx>x25謝ϳzd>~ R(Omw0FDH=sh2 x{輽#$%V?SV̟?+%hyuh1g_& tS:ipqY{45]I80 GDd,Yri.1mk&@xx8GRR!{ +Dr``6`0:0̲e'8i!"m]q("--(++C @&OАC[hllxy3qC =J;E ]x:“p$0.k ZMy'Ҁav-~nMw?06Vx:Aֱps<nϯねFR'x胍:g( ]PZ7O%77o$,,  0uE~tS5cI&SFF uuh ?tj$vc".`0W}WSu8p8___IIfww[C'OslGRSSutth 6vuI`HOHs)d,1BȬY hK`PRSS!bROX@e^O"::+)ӭFtv/\xP¼CO>g", Z[[[F$ :zԦqݺpw:/yp$%##>|.ɓQvvsg[Ouׯf__;:0#Jfv,:gL_(pr-d4յ<m!A]]$h&oP‚ys߿ס+d^fMWof,$:_iiy$o%meFqΝuBB-d|ɓOGXׯUu«}=yURRE1cASp=xaGGd+@oݨ,Y ֶw^UUI&ijj:uDw*dѢE 9޾#R>{ZA\|RR!B G<7OB-  |J}Fx0og<{mdd$++kNNNvyyy---}6L0 rppfff p6tzI@$$A\Sӌ"""Ɔf߽{WUUǏfuuF䣖9s椧9sӧOw511!-/++ߞ   ~חMLdOǏۢ%yŊsbX<1"ϙ={oߎXkjjڲerv+++߾}KP\\\S[ZZ* [ΖY|9uWS FMM&5qx>EEEc=f!***)P(GAݳg>D9URR͛H]ss|hѢmܸqʔ)UUUP>aL"#?O m!SM툧#$&:7dS9]]]JJJ6laxӦMȑ}AMM9{>555Ԍ LOC\vuz `@;ZSӄgϞ544@t}YYٶ6D޽{K$ӧ'$$x{{O>}ԩ=uZEEEϜ93$$ 4`߿sqqqppsN4IWWÇW6mڞ={:;;!`0oߖ:uӧCBBf̘{>f>ٴiϑCCC9lŵwP_{{6k׮Yf!v4}588۾AAA,,,^v d$::zٜ"""O H[[ ahا +++//nDe!:=Z2cQWׇF#|?puu]jUuuЇ3g,[<;;[]]hѢG***fgg̝;wϞ=jmmecc uomm=w܀o߾ð'O*++?.**Aggg##l%%G0 Acsss`` Aׯ_ ߽9|||0 #][mmm듒"$$ϟanll7kL#((_`2AessǏD255-,,|ѣG,w15=cU{ҿ:Kˋ3fyʭ>} :ydo#eff477/]tΜ90 777YǏׯc}z[ZZ~e77*ü?1:=h$c I0\]ݤjyDZZa222`7GT uwwa844Ĥ͞?.]S^^` (~2APBB djQQQpXXO(=ShWvw|(Uʔ45=_RAC>a dHiCCÞ V2H}z +77w^^o1OF8$`m16>v$?fpq{Ƌ?["wcggo-츸_x1Xkkko̞> APEEAHavv6;;;߇߽=@&}MHHP(666ׯ_$d!#ƀ<.co *,,}F鱟>`!<$ÓxΟ?2(II"";hGGCODEw:H&@C>ᐐ^^޷o߲GDD nzzzjjj=>=Lmmm#IШ'pq~}tKdd|sW\166%IK{-++CJ233}||AP=zT__vZ++|) A+--E KJJIoaS;;;?~'j3gҒL  bAAA)))7n@J?iB_ h y *,,Dg+hide''-d`dSSS fѭтj > [VV4sW>Z}Neeϝ;g``qƺ?PpppػwoFFƵk;leWͅb79 R#ޝ0=iorr ޟT@y? 'N~R}v;;;dܹsn[VQQ]~`:::kkkoܸ1`u?"v.]$((QUU3sLi'''##ҜEEE$YgEVBB’%KM؈|$''ghhSXXEEE]]Ʒl"//`>B} Gȿv/# 7o4`4#G X8 Sd߻w?@[ܺ8}-&hQBbݕF6z9 АL&0ݭ_Xo0LLLL[[۾} @.uKK`'!jnnэ@riܺuhLG}:=hnMZ.h}_p˗/"O>A&OϿaÆOugg={DEEyyyF_ ᰰ0)))VVYfEFFX¢GD:w4vp}}ʕ+EDDvڅ a T6 wO\\ٹ*V%%%NNNEEœ'O1AիWy(IE/~2y!w'00PBBB@@`۶m}7ĩSѺ>h6'\[[LDusϡgVP7ϴ4,I07eqqk׮9:: D===nnOjL&|mD7'OIIIEFF$#v7"OS5 ){=yܹc1 vυ7`ЌL||ˍϟ ?xy=JJ:ƷoUW7_PA`|a00G:N78oƻvݿp%rDSsqCaauHȻ-F^M70'A0paKݻH7p0iȇh ck#d2…nnLM##Ois*<:V;e !uuh+0.)8hkK1'XVUW׺eKHZZsڴk@T:=fT?98\#bܙyy͝h "'OFڪϝ;vdeU,ZWZZ6FT)= 44$=^[jiym9Ӡ-E>- ( MUUb5jm}i,ׯM]CY= cbvYZ^$rі03ftY[rJܶmbbiakm0?8x//'-ZLI@4y2-RY[h I'폏OԤI6ͧF˱wni0a>/]rRVQPP㳌Z=<@GwG[՘=[h F5;"Ϙ1m#wڅU@pT`mݵk}t +\DdgQQ͟  eɒ/Q( y7}?d; o`:'&&49.CffڵAx<** ή M}(^sz5!rrv˗k" <Ν^ED9ڵ-[zz.3L|PeΫW_**ED͕͕utx:qI@TW}zC-TU5ʸXXpA kDN.?s76op'#%ŋUhЇ.RZZillnT_Z$$y IDATT55g.wb2< dŋKbutV(,0 (8../0019HBYI{d.uMDx86v>}yPPrRAAIԲkۭnrP0I# ܗ/sZ[deTg- 2Г@,߱^MMd(JKkmeq|EE1EM,=ukׯt./34>NUtdFIΝЭŔb{.NΝ_:vM !ٳ̢)S.R34ce.>`Pƿ'A >hzRS~vrMMºuzz2 vX ,s}#)gحֶ*-qc NddʧOeQQYY55MSLMLM 0B{{ ׮plݺQOa8D˗9II3gNutӂ'޼>x{?'%%8FSծ7XLHiZttt''EEe~inD"(MLA*`L O%½{yx7lj.ڢP\Νcu77}yyE+"#?oZTt)MM4Y2FSII-../::2.ajha2cT I յ'߼ðB>>ˈtFF~ L,,VQ_VFQ_11UUizȌ<<c+_GDyy]ll.ZeML̔jؙBcc[n%Hի6l^qBCScb4׬C[sCrrG.qv֡iCEE5|}휜Gma?W~~[,+/Օvt67WY(掇+*d\\t-RçO߭.׮ş?21stƒ ׭ RPu ҇?޼$`0s41QRA[`>} q՘9$c8GX5ׯ7>&1Ls!7>~m0t26Uݤ|sH]qC{{wJJQTTW_ZZ@k<1EJHEvllnSSE-,T Fô;wR*+uue\\t,,TF`<#8ӧ۶FGTS>ZMMnn*׎z(RWB%/V$Cz!JnB$$'*#f͢jNˇ_F}}ݻD)@ȍ$67WvL$ ~"Ǐq) ʀm?vvv[Ym8_QQ mQMx*U ?ƍ_kˍI(*:!^$QQYՓ'sɛ()kfx4$;"&&'../7 +p…4Z)]AAIUHT&6d4=r弭[nQ_w͛ JrrڵUTݺg7ŭ]""|2zz2BB Aj/sBCS gΜ8Em]4$00YYbB-, <^;u- ,.QQQ!75ji41Q-(8 miɔܟII>vw}}Ys'X,F}rͯ_}ql?aɨo%6EwkYccETЖI0>&'&%Ub0UUyΝ5֧?-- UT׮շQgqee٭:G--,Q?vf#d޽?̞{ $bbKKkII0.mE))Eſp8Lܜ0\mgf޸ID"Q]dc>: GF<|rpݤ͛yM f-Ibׯ<swҾffd ~MZZ3eRQ]tnjppJss,ڢ)[[ Q-+mhxĉ85:$dݜ9̷ZSS{bb!eN{{7#zܙ^CzӦMҚ!! ǃ$д՗o҂NNLShժIد\qE]?6{4;945uܿ~z++ I--U}@`n:;߿/ӧsHKL "i=ǟx%׭3`-WHOV|:fxy҃SQQ|?s$Ibc;;ΝI+KK+˗ ,$ģ"5CSs];>L LӓqqYHFIwDD…gD__51%%/2޽M C_ r=,*2kBy++5AI[Z[~KKcYCC nƌW".##4x=u$ggիB#pDOq)PPPbݻv4O71Q45Uёf.w@ IL(򬬊ܟD"]EE\Uu {{ں֭̔3dú֪ܟǎE.ZM.+]Y ,G>uD0߭zz֮߻wQGG713Hp:Lѝ\SVVJDQEeKa $&"D"97gffEVVyVVEQQ LVS*"$6n8EWٳ7nllEe^D{E$xP(d2 EE1aO==CB0<{?KN>ɺh,f.=ԒUnH_voˋzLK*.^*))4YjoUYY{ JJbJJӔ)+IJ |(^szbÇ;w#VVm{]A%auu gg+幺b 7qp~aC;3H\$5C33S!/HEvꂂꬬn774UpP[aڝ;)2..:*8D"Y[duuSNT)!)RRI=%x<nj՗*2‚Ԝb˵NG=:::@ήח56VP;cx?IϯǗ/?sr~WvuXYBf̚%"//:k0  \$!=D(b[[˖is'12@'qwʄC`]cg;:=zA,$uTTVLLvee f($`dH/_~TU~ZU]A//ȬY³fˋɉCPZZ{n+++*?׾̔VbqO7 ,̛qwIDD֭}pzzwɶ,;9q:;IIUVVDD$h $c˫k HHGVVXVVXNNXVVHEE"֮*$*^c )jkXڴ 6 ' DjW}؉{3Ú(޸z,(+׬{]h膅 ;@}:/>>$KKK i0"'>55M5HENΏN"Y HhCvvE``bdg>>NUtMeΚ5ACOQQ*"wkhmj)Ǐ/]ZavvWSSȫ]]dիI APhhcZg:9φ7o"IXLE++5!!ѵF $4H$*,ͭ,(ann6YYa$BFFHJJ*mm/d//+['UU!!׷)QDwr<|Y^^^!^ޫVfln] {`0 DvY& CI,(~:7662]]KKUssIT@kkWAAׯUȄH}}A\\lRRRRSBZZPJJpD0 KI"0a{yYRɓVM3.!_$)xv6۱d < b(a ݄}kjo'ڈmmĎb{;uuU67NYEE {UQ"ꬬ8OLbn.;eYp`kJ~LߩJH.KscMGGE< ``&(x̭6sZL)\ebV&2ÄP2 0, .)T9*f[i܌wihWW9]:ow)V+ _TBU*JH(̏{0fd$1?G8C7OE}山+T*EL"2Rtp.$Q(ҹ}f7"N'=s]m>tCOOOJJot̷L6߿j_{{'jeʕzxJiRRR@@t?Q)IwbJ$;wY233I9uT~~~LL*g{@oooyyde*qSpj-\‘~EXtgϞX3I$۷Յ_~6?S`B'ǏCBBF#!jժUcccɜL&Jsrr&''/_ knn H$ɶYJ%+++ !SSSӇ,Y¾fa޴i!$((]ԘN󫨨(+++***//xΊKu'O8.lllT*EEEZJ,XINN>vL&{-zjbbbOOF"ܹիWk֬h47nve6|~IIݻw}}}fsqqJJ)3m6hK%]ŞM$qu6&!dϞ=&2<<̌j[[[JeAA +ahhE ,RtFQPT*;Mttu1LR#foggm>`0xk׮F::::==,=11`0Pw; [:j&$$$%%ѥufg"d#477SJSJJ N: X\$(.]a)9Byg`ۏcE)}ClSg飣&BIIDATcoZ֕NΨ ---~vFu<ذa춃Fj치, @ p 'Էonݺcǎ,[P,Fckk+g6_~e">||,bZkjj Cjj޽{ gϞdz "[nOKKc߭鹥F)sݻgg8="u hZ\7pj?~<##ŋ Lϟh4ofg=z… βjkkM&[ttZ#!3L7n`Om6.N)MKKST,L1 Kc}}}---˙3g\٘###ܿӧOt$ c6Os͛7׮]˜د fn50L)))˗/?q$_rP(<|hdYꈈ??hZ0}bbb׮] E"QDDZf杜ܼys@@1#yÇ=4i9r+cLۙ mf+V⌌ 0Jɋi(577^Z*u!A:.22r_9An߿ܶm`A p: X-[J܆N,TZRRJ܆N܇N܇N܇N;̙^^?U<ǎp9 X ϟ*`~ bw\pN܇N܇N܇N_Eڻ IENDB`XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp__incl.map0000644001725400016040000000006313273140101016365 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp__incl.png0000644001725400016040000002551213273140101020255 00000000000000PNG  IHDR(YbKGD IDATxy@'(ATE>ZHRiQPoGD.JDZx@@ *(&\}$d;d`!-@A 84d!󥤤آsIUH!g5LLL[Dܨ/..ߢE`bbR IVVO? iA 84xarEϟmkjjN0[MM Kloo˫=zܹsW\I"в#G'Xɓ' mmm^^^7oÇ#""ƍ_F]C0ݻ'L@իWA`+ b x/_QRRy{{{zzjkk?>??ĉD"Ƿo룡 Ƌ/mիWL:UIIԩSnnnƍA}P kkk222iH) "~6tP I&]GGgܹ?~qaʔ)YYYXGM8fUUՈ@ddaV\٩aÆo߾˗mmmx<:.dC#B H{G -[~tuuE;7yy+Wfff͛]ζ2;w޸q#11ƍ;w$h\.7Z[[˱...666=h޽aaa6ͶA[׵jlʿݫcǎ:88;wbş>}TXXI[V>|f;;6-0&C~\ѩPTl_QQn?d}ٳgg644trrvuu;v,WL&_~122RVVnkkۿABBwTTTSSꜴ4lnnnTTԎ;> 2;;k˓6mZz-;}tCCCxxxPPP^^^RR~ҥ;wt)G=rHnn. 02nDss,}}ǏgFÇD"*Ɔ  2lbbo>)Bv䤠0g@+bܻwo֬Y?7oܹcmmM"^p8w?=\n]DD;hڜh4BD77BDNJ[[4tв)Sg(++344>Λ7/88ݽ8ϟ??uꔿ(pNL&WUU?~dv"0 M.ٳuuu=z%|-lk]9rdCC=zh[ -EHw իWgΜ~x"ֿۓO>} 233sss;qDS+W3hÇ/XZF!ZcMMݙVTUU3K $7^SSJmll|ž}jkkѯh4֭[qDl j۶m햖XN=}x>$Au A x&xR0OjQSSۺu0h< ƃ@p  燷RQB"XЇ[4{@UW_B"00rH!'!iիU"WNIQUUUX*9il~Yz+Wggy|0ck;)*jLYYrdZQjH:/00DG=K.xJ!tUfwC ȁW[nTJ ~; ERs3[A]RrϞ]ck;ikߴRAAv߾+Tj B Ȟ=r#"ܬMqѰn\!~~I--r\xs"#qTbo?UYYBs3U22$@鼀 ȶmiiGGo9Qڵ3gEF9U ۻ7->QLzKKpʋ..#6UD!paHjr`„QWlᓃOZi3^TT3-{@3=}KKK]HMM/WH1ReGډ5Q^EVlk{z@AzwVݗo^~1rZf--5;j@p@JEOt?xk !5~]ȃ%xˁ 40çeNm %鯄nޜEx]Jm9,&EE9.sgjrr+-2@H+l6wX{FItD"?涍;"H3=P{mv/55?.skLMu"6mTV{w*:xЮOʄHjª;.mbl@?RUH3Ot"HɕƖ h_Qsx8 p799IgAWר[ [N-T'6vDNAzF3oBC]u3ƥlz棣c[!wX\μzUȐ_GeIIGkje@QSSHN62Z,\^j&ɲ 60мpaZx{_~sz #@+ *%(o!W2$9!24!]Rg<o-Wx/Uߺ4Wx<㫯 V? /JXݦm۬"O^o[$\,e㩩8j~ovNx.虙= Ê)M'k3gn K!ĬY))>jUD}=c͚Ȳzm11V1NNv`׮%xk^]2f3?NEE} jDL{ɬ\ /!SSvuVdd6 = kkc=pw+ <W}9޹sx8/!q{;{9x @) 3 "vC$&U3U[PZZw9n\܃j/']E'ggx#PhĬ:U@& x3o,HoݬmEEU o!˗qqSRx@$@/mW~ŊS"y v EC*>2" /ݸQak;o!ʛ6Yw@p@&9ލxx 5ܢxq#BJ""} ܹx+?fs ~xa9ute :0' jtttbXгgZZ:15gUU7|3 { R?~|)12Çc&̙3,rB'F+xf-xoԶM7"@ (bWjc [2JK 4֭XVVNuuumhh?aeeiӦ9r_Ng-"eeeϞ=#)))WUUU]tiỵ&b 2dϟ?^0{[~B\~UU1cm8}]}QmmmUUUll,Nccsz4!3UhYdI[[[R,㙛߿}sr8,CKKnTTZzطqqq-bvtt?A//)SX,4gzvjouuu}+ja $;U*.=^c#BQUW9F [[[l6_SSBltrΝѣGgee=zᮮXѵڵkfffƍp8 r gϞfhjjZv!&&櫯>|cǎo߾Na6@ xyy]~~߇Џ.]BcIMM]bYVV6...&&ѣqqq222w;Z:'Mu1̙3#FߺuK___]]ѣʪ@*0৓$xFFB(0ZO􇿿Sӽ11 \]]>~&WTTL00m3N8::@cc#XD_u^^ OCCCCMMMׯG3A;ܹs'СC N/++[|ԩS鲲ׯB]__ߵ[t)N|2(, YnVD_Q׎$4… KJJrrr&vKDA=oܸ+dfaGtttwqmm-9qDt' bddpZJ?~Fx<r+nooOR144\pbH$RQQӧXNۨXM6ڵ A tlmmI$ի;  ltի.j,ASM`^AII'@u@$99Y___`;ryd(Ũyxx|[߿N-X366|;E+;;J߻w/''GGGD"Q`68q"& PWWrD}}}L @u۝ 6bĈsϟ?2e !%%ANLĬw簾fddt%X,}}}lII)SDg ~z+!fjll#.Ɠ!Cߩ ڶ߇544Jrrrvєϟ>|RL&㥤PTwww**͛7Y^WW˗MMM;4۷#Gua ȹs,Y~tqq9p6 hmm 0gN555>}YtttiXXXwzWPPXv˗/1y fuuuRvqԙ% ONbx<o[lIJJ}k˗ڵÇgϞ/f͚={m޼Çݕ" .|2NgX222 gddڢq322>~xddd|}}ˋkâ444|:;;ή|֭Wﯯyfii+Wf̘1rHD>}:B433swwl۶MSSs˖-=`XL&3 ``KKKPQQa0X!ŋt:̙3#c1{ߗ޽^"0<60f:/ z; 0a:}---tN[N]]}ذa#۷kkk:;;h44k)Adee322gX/Tq8`}}}EEooRk֬6lD>?]\\|45j(NS---۶m?~ɡCX,ٳg޼yz HLMMEz?yСCGLPl9s6 ;rUTTt 9t萚:0FN턑mnje&)0QN[3{\2sƃ@D/++*uutU@ OORZZ 3TTT<==I+b<# ؄@# %<<\ľ".km6[\\d S44rr-xaqCAb<у%L& o!H#F+I740&Op[جa̙FaR.@&˱lTVV{MzÕO{jA ޼5\7Fǟ"F= 9ɎC&aC'11΅˖ blm'))'%-DJә+W?{V ]'Ve?ryxkxg+*>m 6oǼGWE(A\鄍iyyrJ&5g9r=K}|[ DXķ:׮EM ?q?]'Yu_/- .˖MDgMkkGh,BFƳ uop[v܃WJk|c@qjl…ut=ւ?MMmkDVTPKCq22 {^''?[ C[$ 0`q7Z\7**>مp8-c[?!CMp MM~NRɛ7W 1B%1sPE@+de'N|_s2<{V|yK|1`ʔ1}#ZJæNMLTV[D4HP,] HzWV~B/66Or!"aRVkxkw.]sqUuRN]]`Q~;~~I^8>$lcǥWߺmhi[SA#G [_T㵷,EVtyy .kWjRRNNN/$o"/K IDAT/(]a6_]'HG;w°xkL&k;w^o-IG;p߾eG^|\k}!x%ݸQpxkVE462σi0Y"~ft%%yj-2@HPEV|Ⴛ i͚֡`<bbǏ͞8x\k}0#%=ō~1o-ZH& [sғ?:}`^Re%S"\k"U,X`rsHg] bXLG日KZD:H+VL=xp#ї}Բ|yhmmsV֛TrOZ+*ZZ:\k z&MM&:t7r8<2]݊~x<-'~={nAziytz;SS7͚?8ӷ)V8rdŚ5 @1G (+t&dÿ@Tjsw/lp<@N[Oj #c1OtM={zvJryOߵC)4 6޿_"J:^mm{Z pә*"H~\.ŋʻw_'}-DB"H xvD"z~A"FdfnscjȐ9̙z^^󬬾4 ܹS/= I./X`"J==/ܼYf6vVFF#D^#DfaTFFf?%%D{v*WVV.E#+];gphȿ 㡔7g%'x.Y2AUDܻ]t||]x\ҕό>}Fk5No;vXz"ոđHDKK#W5Zpa>^KWeI kF4Zs :D$% _B ͛eBǴ}Lq˗TE ƃ@p7^EEźuzVVVޥmLNIw YY  =GdJJJ/++RȐx㥧wz?U4iݻ}}}>>>GVUUɓ'JRSSX\\<0 G]]ݽ{bɒ%mmm*--X񎎎{xx 5eo?PZZ}x.v _Gd=իWGIIII6ﯩIPl6:sѣF=|pWWWk)kǍp8766***2mϜ90be٩8@VV6...&&ѣqqq222݉aӺB _]v ֭[GFFFB(W](dGMM\41((޾`;wD-Zt@3fl߾R---rrrᵵϟ'---#wvXq;w:ğدMCHyyyjjj=׎~]L~K./_466.\XRR(0_/1F133?0ƵvffĉYPP QZZmqq1ݵJ9~8Fx vWޞJ"_j<8 dz%HWoo6 xՎt@VV \._? b$Kt*z 3%yy®qB+VPTT;w]ql2tXRR"ǫfgg˧LA_LsXf1ׅF`2h/&v4%VVV۶m544_FA3%mmߣ)ϟ??|pwL&KIIR666T*U`7oZ[[ p8jaZѩxMMoppy@@'F60AΝ;dɒkG2QJJJ{H~ q\++R#F\zM]b_x1cƌ͛71Ξ={ƍݕb2򩩩 L&S`իWWWWq _ϟonn|@xy<ҥK-,,q233svv!.'dee455 S{w1G|=KKK XQilla DOM3 API Documentation SourceForge.net Logo
    DOMImplementationSource.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMImplementationSource.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMImplementationSource
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_5.md50000644001725400016040000000004013273140100015637 0000000000000093d166dec72f346a05eaa032fadef266XQilla-2.3.4/docs/dom3-api/dir_000009_000000.html0000644001725400016040000001351413273140100015246 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/DOMMemoryManager_8hpp_source.html0000644001725400016040000005065513273140077020527 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMMemoryManager.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 #if !defined(XERCESC_INCLUDE_GUARD_DOMMEMORYMANAGER_HPP)
    19 #define XERCESC_INCLUDE_GUARD_DOMMEMORYMANAGER_HPP
    20 
    21 //------------------------------------------------------------------------------------
    22 // Includes
    23 //------------------------------------------------------------------------------------
    24 
    25 XERCES_CPP_NAMESPACE_BEGIN
    26 
    32 class CDOM_EXPORT DOMMemoryManager
    33 {
    34 protected:
    35  // -----------------------------------------------------------------------
    36  // Hidden constructors
    37  // -----------------------------------------------------------------------
    42 
    43 private:
    44  // -----------------------------------------------------------------------
    45  // Unimplemented constructors and operators
    46  // -----------------------------------------------------------------------
    50  DOMMemoryManager & operator = (const DOMMemoryManager &);
    52 
    53 public:
    54 
    55  // -----------------------------------------------------------------------
    56  // All constructors are hidden, just the destructor is available
    57  // -----------------------------------------------------------------------
    64  virtual ~DOMMemoryManager() {};
    66 
    67  // -----------------------------------------------------------------------
    68  // data types
    69  // -----------------------------------------------------------------------
    71  ATTR_OBJECT = 0,
    72  ATTR_NS_OBJECT = 1,
    73  CDATA_SECTION_OBJECT = 2,
    74  COMMENT_OBJECT = 3,
    75  DOCUMENT_FRAGMENT_OBJECT = 4,
    76  DOCUMENT_TYPE_OBJECT = 5,
    77  ELEMENT_OBJECT = 6,
    78  ELEMENT_NS_OBJECT = 7,
    79  ENTITY_OBJECT = 8,
    80  ENTITY_REFERENCE_OBJECT = 9,
    81  NOTATION_OBJECT = 10,
    82  PROCESSING_INSTRUCTION_OBJECT = 11,
    83  TEXT_OBJECT = 12
    84  };
    85 
    87  // -----------------------------------------------------------------------
    88  // Getter methods
    89  // -----------------------------------------------------------------------
    95  virtual XMLSize_t getMemoryAllocationBlockSize() const = 0;
    96 
    98 
    100  // -----------------------------------------------------------------------
    101  // Setter methods
    102  // -----------------------------------------------------------------------
    108  virtual void setMemoryAllocationBlockSize(XMLSize_t size) = 0;
    110 
    112  // -----------------------------------------------------------------------
    113  // Operations
    114  // -----------------------------------------------------------------------
    122  virtual void* allocate(XMLSize_t amount) = 0;
    123 
    132  virtual void* allocate(XMLSize_t amount, DOMMemoryManager::NodeObjectType type) = 0;
    133 
    140  virtual void release(DOMNode* object, DOMMemoryManager::NodeObjectType type) = 0;
    141 
    149  virtual XMLCh* cloneString(const XMLCh *src) = 0;
    151 
    152 };
    153 
    154 XERCES_CPP_NAMESPACE_END
    155 
    156 #endif
    157 
    The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument...
    Definition: DOMMemoryManager.hpp:32
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMMemoryManager()
    Definition: DOMMemoryManager.hpp:40
    NodeObjectType
    Definition: DOMMemoryManager.hpp:70
    virtual ~DOMMemoryManager()
    Destructor.
    Definition: DOMMemoryManager.hpp:64
    XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp__dep__incl.map0000644001725400016040000000027313273140101021140 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_37.png0000644001725400016040000000407113273140101016034 00000000000000PNG  IHDR%IbKGDIDATxYL؅IR(ei`Tc\HP%D )1Q/ HDY bTKjYŀ 0-)2{nӹg{oY!0Jn0\p>1>>we47===>SyU}}=÷TWWWwg n0\pÅP7}}}|>}ojj @ĦM, bxxu@X,>z LV4M+ 77sv,9:o .deeܩSJQo2u:˗/z驩N OCFGG% OtMM͡ChVA Y<š!ىnbO7&jlllg ۋ:[tR76+츘F74M_t}D"vqb1Jd2i+&&f왃pTWWNHM@tttSY^^N;k' 555:$FTT"].m&ԍ ;Z7\œofN{5ooqr劽(HQT}}VMOO?vVn(ʌ 月 ]]]mmm`h-++sY*xQA6\~=44IպNʰbPY[[䏊ϟPTG)--eG%%%jZ}̙ {QA>|$IL&@j/|nnml錌tΖJ|x<^tttFFݻ===-۷,)d FQT^Ga@ SՅΌ&%%%33ull]P$''0EجJG_>u֭;vɓ'2L4MdjjڵkO<9??^rrrbqBBNC~(ƍBa```SSp rUU{zzVZ@(--E}[اn޼n:??OOOF[ZmRRL&;{h?ۧfۢT=tz\+}`W.>>f0e(?=?``u X7.``uႍXScnd2Ϸ o>vc87.``u B_IENDB`XQilla-2.3.4/docs/dom3-api/dir_7ef400d0cba7660fbeba32656f2e8856_dep.png0000644001725400016040000001316013273140101021025 00000000000000PNG  IHDRXcbKGD%IDATxiXWSD@b XJE+Q*TmFb! P)^E"}Dhm|ܷM_EL&-- |dJJV Wwuu,Y9mڌRU*V>~<=66!DġCviiiioom۶GDDp8І 8N`` B£؝%%ŞnAAȕMHH555룣'O?r䧍&L|]+P(H::ڵ. n~';{wUJOA.jjj>?ǍzX,"WZ[[־AWi@O/pXᆱG.=!TSj4u\cfd||2uU}׮]֭[!UUUE|)5)Q]]ݩS~yZʡC /]siuu/\ דs|}D޹sΝօ1}xr}VZZՌi*!JOGn++=-0GS>|MԂPqQ9{g}zР%>rp8A G{#=rp8A G{#=rp8{,+/-]鹀@ߨ}TTv$JW o޾#N_ommm#B ;""(w̙͜9wɱG\]?}2a4H! kiief?g¹yr( {D!%Y,VJʞw.]ڲxRy  |Ob0۷'^9$$\(b!bWZjl|eKrU;wzggEមLf\\4E+`I j4y+% T*+׿ܽ{K)\f5e‚ Xxdy&b2_uB㳈z',NCjj"QX\:5E\}r`0lm߳AZ …ۅe3gz0L6[SƷn<5E_Ch쒝sy_ikk~HTZz թ\r?g'ɐH^^~T"7qq)nEF#/[mݺԀR{ټy}^Pcy788l$2rMFF򛷹r咁AQ4??y >̝tvv2wyGNJJk׬Ym>}jdD!J^OQ0yyyyB|233(prp8A G{#=rp8A G*{ThѢ!CP]kݿχ?ӕxt*ܾ}BVUUehhH.s]}WWBܜB&HeCCø8=jEr6l?bsss?~AGG~ #33(...''gԨQzzz7o&7 """8"" >(99!s&'N@577/YpĈݯTB,J?gϞ)}r*… Ǐ$&&۷޽{;vO>%78}tyyy\\?~bbb3VrrruuKϜ9^\\:w9{,BիӧOG֖}kRRRx<B "" 6lpBMMM{ "ww JJJBBBnܸ|YWWW :sNKKK{{m۶߿g%vؑ;tPJ6VcǎEijjVVV.[>>/_NOOsCC{IRTt&_YY/711aXUU/SSӞ vu!rțy 5=ŋBPSSk˖-4=~̙3B~!㏳F9rH yM{w;f̘ 6|r=Vr֔/ST©M\nbbرc-,,fΜٟ111'H1cFwwԩSB'N ɞ:|p'''777777>7l؀R|111k׮utt\d ťfTn|omm-e\FB \p8=GpݟAJ|4445}ǡ|A G{#=rp8A G{#=rp8A GJ~-Mswb Jͽ}G$2w"޾XϷG?^KK?60707 :=rp8A G~_Qq(:s ,n444M١B?S08A G{#=rp4ϭ._X2P08 um2{{{t(i& 6O^`|p8A G{#=rp8A G{zEtIENDB`XQilla-2.3.4/docs/dom3-api/functions_func_0x72.html0000644001725400016040000002073113273140100016663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/inherit_graph_38.map0000644001725400016040000000043013273140101016021 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSParserFilter.html0000644001725400016040000004477013273140100021335 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSParserFilter Class Referenceabstract

    #include <DOMLSParserFilter.hpp>

    Public Types

    Public Contants
    enum  FilterAction { FILTER_ACCEPT = 1, FILTER_REJECT = 2, FILTER_SKIP = 3, FILTER_INTERRUPT = 4 }
     Constants returned by acceptNode. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMLSParserFilter ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual FilterAction acceptNode (DOMNode *node)=0
     This method will be called by the parser at the completion of the parsing of each node. More...
     
    virtual FilterAction startElement (DOMElement *node)=0
     The parser will call this method after each DOMElement start tag has been scanned, but before the remainder of the DOMElement is processed. More...
     
    virtual DOMNodeFilter::ShowType getWhatToShow () const =0
     Tells the DOMLSParser what types of nodes to show to the method DOMLSParserFilter::acceptNode. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSParserFilter ()
     

    Member Enumeration Documentation

    Constants returned by acceptNode.

    FILTER_ACCEPT: Accept the node.

    FILTER_REJECT: Reject the node and its children.

    FILTER_SKIP: Skip this single node. The children of this node will still be considered.

    FILTER_INTERRUPT: Interrupt the normal processing of the document.

    Since
    DOM Level 3
    Enumerator
    FILTER_ACCEPT 
    FILTER_REJECT 
    FILTER_SKIP 
    FILTER_INTERRUPT 

    Constructor & Destructor Documentation

    xercesc::DOMLSParserFilter::DOMLSParserFilter ( )
    inlineprotected
    virtual xercesc::DOMLSParserFilter::~DOMLSParserFilter ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual FilterAction xercesc::DOMLSParserFilter::acceptNode ( DOMNode node)
    pure virtual

    This method will be called by the parser at the completion of the parsing of each node.

    The node and all of its descendants will exist and be complete. The parent node will also exist, although it may be incomplete, i.e. it may have additional children that have not yet been parsed. Attribute nodes are never passed to this function. From within this method, the new node may be freely modified - children may be added or removed, text nodes modified, etc. The state of the rest of the document outside this node is not defined, and the affect of any attempt to navigate to, or to modify any other part of the document is undefined. For validating parsers, the checks are made on the original document, before any modification by the filter. No validity checks are made on any document modifications made by the filter. If this new node is rejected, the parser might reuse the new node and any of its descendants.

    Parameters
    nodeThe newly constructed element. At the time this method is called, the element is complete - it has all of its children (and their children, recursively) and attributes, and is attached as a child to its parent.
    Returns
    One of the FilterAction enum
    virtual DOMNodeFilter::ShowType xercesc::DOMLSParserFilter::getWhatToShow ( ) const
    pure virtual

    Tells the DOMLSParser what types of nodes to show to the method DOMLSParserFilter::acceptNode.

    If a node is not shown to the filter using this attribute, it is automatically included in the DOM document being built. See DOMNodeFilter for definition of the constants. The constants SHOW_ATTRIBUTE, SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE, SHOW_NOTATION, SHOW_ENTITY, and SHOW_DOCUMENT_FRAGMENT are meaningless here. Those nodes will never be passed to DOMLSParserFilter::acceptNode.

    Returns
    The constants of what types of nodes to show.
    Since
    DOM Level 3
    virtual FilterAction xercesc::DOMLSParserFilter::startElement ( DOMElement node)
    pure virtual

    The parser will call this method after each DOMElement start tag has been scanned, but before the remainder of the DOMElement is processed.

    The intent is to allow the element, including any children, to be efficiently skipped. Note that only element nodes are passed to the startElement function. The element node passed to startElement for filtering will include all of the attributes, but none of the children nodes. The DOMElement may not yet be in place in the document being constructed (it may not have a parent node.) A startElement filter function may access or change the attributes for the DOMElement. Changing namespace declarations will have no effect on namespace resolution by the parser.

    Parameters
    nodeThe newly encountered element. At the time this method is called, the element is incomplete - it will have its attributes, but no children.
    Returns
    One of the FilterAction enum

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp__dep__incl.png0000644001725400016040000002055213273140101021243 00000000000000PNG  IHDRgpbKGD IDATxg@gT!H&(ƂF@Qc<Ġ@D B,(E,ѿR` (Hra}7yQOsSYfgvgg a-)E @y/0O֯__ZZ lal6C8#Fhiia(M>m:==R yQF+//GN߾},Ԫ7o f\ jkkkjj7mT^^xb.~;wihh̙3"i4[[psss0 ٳh̙55}/F B @HÊ?ѣ3f<|> v(`888۷y^ŹrJ={8;;sr^jr5jԨÇ+**"! z#͖!11U<빹GA F``+lmmmmm?'FII/44tРA~?xܹ#G?Typ`0쒓.RЧK.=x`\\ʕ+ܹ#k8pWNN믿򒸟޽{啊ӆ $I$/Ԝ1 OmٲESSh @y(**Κ5K@B@y0H(/Rʋx"^H$u?}}@%N$=UUU u:]YKk|ٓ hL =UxƔ޻+?XUU:62rr֮=g^U؟Gomff:'trACuuMdժ8)]xʕojj6Y'>RSS;v2]IB~L"s{cBH$B:$p9s¶ŋ9W54 ɽph_z #u*G &#NL|`k#=ggVCnILL;5``fl-H(UU<<="CZ/xM'_ˆ Ҡ Κ5YE$a>s&nGV֫nɥ ++ϞmmO vb2mPix[~5ϙ): (\\ ):;pARAMLbq zy{OѥFi 9J^q 0uFFXC#8$"ݻ==H#ZZ3gF tiFK@{tZZAV֫uz~q# `DF.zb׮=^V^ߔ)&RVqLMuBC]##oRw9Qj`D7ן|g rH@Bʾ,epMM#$ !%-JO/**{&q䀄^<|8jȤIˆ7 _Zڋ/͋eekc%笠\2+ l^MSWW9 C ឃ"e_ ZOZg**NK+8tg#b||Ncc˷NZKß~s"x#G̛7NCC k-`{NFqNj)) *.@)kRG 9Tss=ntxիꔔ˖QD8qu[$>zTC/:uWOd)O0X}}3Zp (Οͅh4|~K`Y2xͧUUY45#"3gւ_ӧllZH{88}|bދ5ܼtO?5jȊ'w@x/W}4Kt A;tȻ>$Zxi,"zz?Xpsւ;J^NNќ9_b-8;[,Ybt* b{11{{3tFF˗kibGۋR^+;c<#:zqiimh_Xk"x^ibP]S럈C`/޸NMb.2{ &~k-^LJz2iKIiBζmjǤ.[ ۷;;ZH?^kvp0ZHw?A!32 uu8-#'DbfKL%vbʼn6Z0^+X 1OAL^n4+"ݻ/ւE8T _ڏsm`cJJIi:k=prP7(:KxxxiGߣԋVVCdf{[ EHHH!^ႂGgŲ:ܼ[Qy`0j=A˽}W^ih>EpE##䧭[jjj&''egg"ğM\|NqH$z* y&z3A+WӸ:S6ަϝ;7o<3444 B᯿jhh퍴ά9r\SSsΝ'N6lM 00P[[[KK+00P  Nx0qDgdׯ_gXjjj;v@$&&jiiYEj`/= ;+O,^0ٳge@<$''d0rIӵϞ=y uuu 555hdð˗/>|hiiy]vYXX<|ѣG&La1`<<<E@ddDx.ZH]]]WW߿9 @OOOUUu\.d2h'-YDMMM]]}卍Rc %%%YE?_hhh^Ij`W c={l0^R:~ځ cjkVAыr#K` ՕD" d 󢮮*x^2dk!= ('GW{H)dx^iQ" 7Æiã,"Ap _}x!Ecc킂J֞}&G-.bm+ס$/w.%&>=G܅!E }yyF^k OLqC`EŁ'j*!o]z{sF`Lf!'G8%!0za^jʸJ (D"Bn#]mqik+!jnl끊Bui4AɓdWܻW} a4dcC-B Qh`ii/ Z[͙+J3 hQ D"m"y鬃oD o"'@жuk!2d0E]^1cۘ k!`۶BBf:僬SEݠѽ8tnOcbnFZA;;[~Z`Da!Ϲsٛ+뜝w;;[DD,Z !v;wLY7+ iPwT77{Tga-vレ[!Ask!%=02oѕ dۘX NMMêU'fpWǐڪ669X HZ7h]ւwEowIۗYBXk;$#54ΞZGde ߦMǎk-$^{xXe m޿^gootx5'#׭;-xPȑ4@ttjrӨ(ojM!?`N,ٱV LGЋIP{z؊_c(ʋel/]_^^AA |~kd7Nkېze2MǤc/_~2& ټ(/Xر4~|˖uښql^,Ybtȝ,o9fe5j_K&HEe?%&vCCv1窫XHu 9/? '2gϝj}S")!'}B_YYՃ mnn+W3dn - `ŋ<;:$QFAHEYV#GSJCBSߋ77nSTT CNGmܹs\ׯ_gXjjj;vBhjjf͚U[Rv)l6a4@AAxHNNɄa%kkk#i={jjj>7xjjj SN}ݻwY,͛Rgv?@vQh4_۝{4 @YYyܹݻwO0a۶mhs+5BHłÇLN^^DcǢl6;!!o===266FJKK xC͜a-//[ 1,, OKKKJJBڼ!u/ xbRX]]]QQQVVZTT~z䧐*GGk׮\xq„ ~~~hr6cmmƥ&IDATG}헾vœy…RV)>vA2dWeex 6XZZ*((XXX|4-2FIIIDFFJA̧Hp իW755I si=<<x3VXXkAٳg*s} ,Cy+hiiEEEH!;)E @y/P^ )gΜ?3x+=x|ҫk j jJ% "##ɾ> TrR(@- J\s3^<*7^Y*rss EDD IT F@bqLLV% ttt`0RRR8P(r Q`Ŋ׮]#VL-I1jiHc\L|0,((X۶myΜ9!!!bX]vkȖ7ޠVŋ=:o._}Ն pOKK{V={lXXX@@;߿Oh4BxcM [[[ɪ*++x>>N?{j$0 -//W(jNp%BaʤJƌu N aǎ|퉈]zzzffP(loogپ8Ϛ5Z˽x"3~Zb5:::55522r֬Yo&ϧj:--YdNZxxxjjG}aؚ5k^YYYĂm||ɓ':jJٳ66Z9Zx9yP=(s`  '8@y '8@y '8@y '8@y '8@y '8@y '8@y '8@yٰԷ.Ιnc0fCb(4 u+&%%N܊!g4 Op<=a}m۶ʹP(bcc_z%^{-11 0wwwݓ_U[oa6z.KAX'@UUL&kkkW ^}՚人u֑ƷR-//9ɉbp|WWcǎ>o/]tӦMϏ'.((kW`y%b5++666d{{XrGsrrȦ///o1g())qss[`ARRð/>sL&O>64N u;wn"z{{r\oʧzطbݼySuww(;D"@wwwss3`MMMnnn 8[l̸i"h4dccLNZD1117n#GݽK65 3Sss%K bݺݯnZbxnnN39i'ݝXx1:A 2 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentTraversal.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNodeFilter.hpp>
    Include dependency graph for DOMDocumentTraversal.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMDocumentTraversal
     DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp.html0000644001725400016040000001270513273140101016415 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeFilter.hpp File Reference
    Include dependency graph for DOMNodeFilter.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNodeFilter
     Filters are objects that know how to "filter out" nodes. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classAutoDeleteArray-members.html0000644001725400016040000001117713273140077020611 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDeleteArray< TYPE > Member List

    This is the complete list of members for AutoDeleteArray< TYPE >, including all inherited members.

    adopt()AutoDeleteArray< TYPE >inline
    AutoDeleteArray(TYPE *p)AutoDeleteArray< TYPE >inline
    get() const AutoDeleteArray< TYPE >inline
    operator TYPE *() const AutoDeleteArray< TYPE >inline
    operator*() const AutoDeleteArray< TYPE >inline
    operator->() const AutoDeleteArray< TYPE >inline
    set(TYPE *p)AutoDeleteArray< TYPE >inline
    swap(TYPE *p)AutoDeleteArray< TYPE >inline
    ~AutoDeleteArray()AutoDeleteArray< TYPE >inline
    XQilla-2.3.4/docs/dom3-api/classXQillaPlatformUtils.html0000644001725400016040000001715213273140077020046 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaPlatformUtils Class Reference

    Static utility methods for initializing and terminating the XQilla and Xerces environments. More...

    #include <XQillaPlatformUtils.hpp>

    Static Public Member Functions

    static void initialize (xercesc::MemoryManager *memMgr=0)
     Perform XQilla initialization. More...
     
    static void terminate ()
     Perform XQilla termination. More...
     
    static void enableExtendedPrecision (bool bEnable)
     Enable/disable extended precision in numeric items. More...
     

    Detailed Description

    Static utility methods for initializing and terminating the XQilla and Xerces environments.

    Member Function Documentation

    static void XQillaPlatformUtils::enableExtendedPrecision ( bool  bEnable)
    static

    Enable/disable extended precision in numeric items.

    When disabled, xs:decimal values will hold only 18 digits, xs:float 7 digits and xs:double 15 digits as mandated

    static void XQillaPlatformUtils::initialize ( xercesc::MemoryManager memMgr = 0)
    static

    Perform XQilla initialization.

    Initialization should be called first in any user code.

    Initializes Xerces and adds its own DOMImplementation to the registry

    Examples:
    dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.
    static void XQillaPlatformUtils::terminate ( )
    static

    Perform XQilla termination.

    Terminates Xerces

    Examples:
    dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__dep__incl.md50000644001725400016040000000004013273140077020725 000000000000008192b419808839671523d11047beddfaXQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__incl.md50000644001725400016040000000004013273140077020162 000000000000007073839bd7100bc37405d417089b0307XQilla-2.3.4/docs/dom3-api/inherit_graph_28.png0000644001725400016040000000410613273140101016033 00000000000000PNG  IHDR%0bKGDIDATx}HS_Ϛʽ\uL4̰0QKPj ʲDK$ZATdYG[:'FXKWBBJX.ҹwv?>>CCC(H6]\\7gUѫW|2`ӦM ^a&rf@ {:tÇkjj;\q@VVֳgϪx<\.W(eeeμ ҥKkkk5ͽ{<<< Õ+W:6`||6+WBvZ-/_r8 ÆPXO>b/ "YV4f۶mccc}}}aaaUUU& 8>L.777--mbbB.ĠH$_prGEEi4X~=JZ.C###[ZZQm<==^jwU@oo/$|!"(##>&X, :;;!;vt1P"9)YdnvvN~u[ZZP/SN0 %=;;* 8^n>e˖'OpwQ-I>ܰajcAru _LfZsrrn߾maaaaQQVRɄ0 gU[ZlSնar9 5WOj7KKK #$ q)00PR!yL&*Ju:]~~]t:3nΝ;Q7778FcMMMff&aINNY,)99vtccc.ʖ%KC'''Qwbb"((h!:gϞt#{qq1GߣO}:66񒒒f3,FGG1]fs8z1v{Mniii 㡰)p8t:#GVZqhl.++ ۷on!H$֭򊊊jkksn;mVk֬͵}`A CiiiLL;wׯ_ _2 pM~:ooi1w]v-ꪅV볫mP*(UJT,*  gν@ĩ1x{~sfA<'lM ``}a Zj!"ۧ,5O͛7O"8998f(Օ''( D"x~a 7&``yPDd{ԨQƍ 766&]]]ׯ_Jnnnp8('%%X,r 6$''߻wo֭[|>Al߾=77̙3ڰEþXKKKRYUU|Ç@GGGxxIXXpƍ{l>֢"Ԟ:ujzz:HUV6uw}Mڵ ;;;˫E"Q^^ r\,b\ޯH$:|hh+Wwy_===nܸpBcǎj555ب:Dmgg@{{{aaԩS?}*ۏ#GV@A0|CĩSL=<<=J.Օ2i$2QRRr t>3f\rE"GFUU:FFF999999YYYh GMĄfnA&JU15}PTTyfT:o>~_>##vMKKK$}7R=D@O?>xAoVZBСC(2bĈC9rD,XZZΚ5+88X[[ZA$eff qjΝsww=<<֮]5k֬ %Kbcc-[bžw֬Yb mm3g{quu%w~bШPSaE|||mmg}CBBrrr4 A+BίǩLOOT*=sܹs5o;wy{{O@__GЊV o;Nf؁}a 7&_]]KT QK1b0>+P__go0L0 o0L0 o0L0 o0L0 o0L0 o0L0 o0L0 o0L0 o0L߷[O俿aii!iꬬ"RMMMoH8TP$ڏ`<֜z{ "`!(Mwpxz-7} |SP jiq=>&B!3V)J,~aQud/_\ի +++233׭[OS?B㜜5½x;::h?*//ﷃA2yAXbĉ===hڴi hԠbllO.^tz U/Z/۷o߾}yԩS|>_&@JJ}{{;[nԨQ֭E %ITT٢EeMYYYB$%%\.Mohhӣvd{ʔ)`aad:$&&>|xǎGILL&  UiiiAAA(CCM;/vvv&&&;v gff:88GDDtww&bhѢQF]v wXYYY\\|8)){gt7mۨA{͛7 hjj1bDCC ߜ;wΞ={>진lCt-2AAA2,..|"n/T*K,illM?{U\.EݻwGEESĴiZ[[sss#!Cb̙BH}NѣwrΝ;h'=(PVVfee5H9h(BغukccũSP<"""((ݯN`А\IWUc0o0L0 {LdIENDB`XQilla-2.3.4/docs/dom3-api/DOMException_8hpp_source.html0000644001725400016040000005556713273140077017731 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMException.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMException.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMEXCEPTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMEXCEPTION_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    50 class MemoryManager;
    51 
    52 class CDOM_EXPORT DOMException {
    53 public:
    54  // -----------------------------------------------------------------------
    55  // Class Types
    56  // -----------------------------------------------------------------------
    138  INDEX_SIZE_ERR = 1,
    139  DOMSTRING_SIZE_ERR = 2,
    140  HIERARCHY_REQUEST_ERR = 3,
    141  WRONG_DOCUMENT_ERR = 4,
    142  INVALID_CHARACTER_ERR = 5,
    143  NO_DATA_ALLOWED_ERR = 6,
    144  NO_MODIFICATION_ALLOWED_ERR = 7,
    145  NOT_FOUND_ERR = 8,
    146  NOT_SUPPORTED_ERR = 9,
    147  INUSE_ATTRIBUTE_ERR = 10,
    148  INVALID_STATE_ERR = 11,
    149  SYNTAX_ERR = 12,
    150  INVALID_MODIFICATION_ERR = 13,
    151  NAMESPACE_ERR = 14,
    152  INVALID_ACCESS_ERR = 15,
    153  VALIDATION_ERR = 16,
    154  TYPE_MISMATCH_ERR = 17
    155  };
    157 
    158 public:
    159  // -----------------------------------------------------------------------
    160  // Constructors
    161  // -----------------------------------------------------------------------
    168  DOMException();
    169 
    177  DOMException(short code,
    178  short messageCode = 0,
    179  MemoryManager* const memoryManager = XMLPlatformUtils::fgMemoryManager);
    180 
    186  DOMException(const DOMException &other);
    187 
    189 
    190  // -----------------------------------------------------------------------
    191  // Destructors
    192  // -----------------------------------------------------------------------
    199  virtual ~DOMException();
    201 
    202 
    203 public:
    204  // -----------------------------------------------------------------------
    205  // Getter
    206  // -----------------------------------------------------------------------
    207  inline const XMLCh* getMessage() const;
    208 
    209  // -----------------------------------------------------------------------
    210  // Class Types
    211  // -----------------------------------------------------------------------
    218  short code;
    219 
    226  const XMLCh *msg;
    228 
    229 protected:
    231 
    232 private:
    233 
    241  bool fMsgOwned;
    242 
    243 private:
    244  // -----------------------------------------------------------------------
    245  // Unimplemented constructors and operators
    246  // -----------------------------------------------------------------------
    247  DOMException & operator = (const DOMException &);
    248 };
    249 
    250 inline const XMLCh* DOMException::getMessage() const
    251 {
    252  return msg;
    253 }
    254 
    255 XERCES_CPP_NAMESPACE_END
    256 
    257 #endif
    ExceptionCode
    ExceptionCode.
    Definition: DOMException.hpp:137
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    Definition: DOMException.hpp:52
    MemoryManager * fMemoryManager
    Definition: DOMException.hpp:230
    short code
    A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occur...
    Definition: DOMException.hpp:218
    const XMLCh * msg
    A string value.
    Definition: DOMException.hpp:226
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMElement.html0000644001725400016040000035623213273140101020065 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMElement Class Referenceabstract

    By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...

    #include <DOMElement.hpp>

    Inheritance diagram for xercesc::DOMElement:

    Public Member Functions

    Destructor
    virtual ~DOMElement ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getTagName () const =0
     The name of the element. More...
     
    virtual const XMLCh * getAttribute (const XMLCh *name) const =0
     Retrieves an attribute value by name. More...
     
    virtual DOMAttrgetAttributeNode (const XMLCh *name) const =0
     Retrieves an DOMAttr node by name. More...
     
    virtual DOMNodeListgetElementsByTagName (const XMLCh *name) const =0
     Returns a DOMNodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the DOMElement tree. More...
     
    virtual void setAttribute (const XMLCh *name, const XMLCh *value)=0
     Adds a new attribute. More...
     
    virtual DOMAttrsetAttributeNode (DOMAttr *newAttr)=0
     Adds a new attribute. More...
     
    virtual DOMAttrremoveAttributeNode (DOMAttr *oldAttr)=0
     Removes the specified attribute node. More...
     
    virtual void removeAttribute (const XMLCh *name)=0
     Removes an attribute by name. More...
     
    Functions introduced in DOM Level 2.
    virtual const XMLCh * getAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Retrieves an attribute value by local name and namespace URI. More...
     
    virtual void setAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLCh *value)=0
     Adds a new attribute. More...
     
    virtual void removeAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName)=0
     Removes an attribute by local name and namespace URI. More...
     
    virtual DOMAttrgetAttributeNodeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Retrieves an DOMAttr node by local name and namespace URI. More...
     
    virtual DOMAttrsetAttributeNodeNS (DOMAttr *newAttr)=0
     Adds a new attribute. More...
     
    virtual DOMNodeListgetElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Returns a DOMNodeList of all the DOMElements with a given local name and namespace URI in the order in which they would be encountered in a preorder traversal of the DOMDocument tree, starting from this node. More...
     
    virtual bool hasAttribute (const XMLCh *name) const =0
     Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise. More...
     
    virtual bool hasAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise. More...
     
    Functions introduced in DOM Level 3
    virtual void setIdAttribute (const XMLCh *name, bool isId)=0
     If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute. More...
     
    virtual void setIdAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName, bool isId)=0
     If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute. More...
     
    virtual void setIdAttributeNode (const DOMAttr *idAttr, bool isId)=0
     If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute. More...
     
    virtual const DOMTypeInfogetSchemaTypeInfo () const =0
     Returns the type information associated with this element. More...
     
    Functions introduced in the ElementTraversal specification (http://www.w3.org/TR/2008/REC-ElementTraversal-20081222/)
    virtual DOMElementgetFirstElementChild () const =0
     The first child of type DOMElement. More...
     
    virtual DOMElementgetLastElementChild () const =0
     The last child of type DOMElement. More...
     
    virtual DOMElementgetPreviousElementSibling () const =0
     The previous sibling node of type DOMElement. More...
     
    virtual DOMElementgetNextElementSibling () const =0
     The next sibling node of type DOMElement. More...
     
    virtual XMLSize_t getChildElementCount () const =0
     The number of child nodes that are of type DOMElement. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMElement ()
     
     DOMElement (const DOMElement &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes.

    Assume the following XML document:<elementExample id="demo"> <subelement1/> <subelement2><subsubelement/></subelement2> </elementExample>

    When represented using DOM, the top node is an DOMElement node for "elementExample", which contains two child DOMElement nodes, one for "subelement1" and one for "subelement2". "subelement1" contains no child nodes.

    Elements may have attributes associated with them; since the DOMElement interface inherits from DOMNode, the generic DOMNode interface method getAttributes may be used to retrieve the set of all attributes for an element. There are methods on the DOMElement interface to retrieve either an DOMAttr object by name or an attribute value by name. In XML, where an attribute value may contain entity references, an DOMAttr object should be retrieved to examine the possibly fairly complex sub-tree representing the attribute value. On the other hand, in HTML, where all attributes have simple string values, methods to directly access an attribute value can safely be used as a convenience.

    Since
    DOM Level 1

    It also defines the ElementTraversal helper interface defined by http://www.w3.org/TR/2008/REC-ElementTraversal-20081222/

    Constructor & Destructor Documentation

    xercesc::DOMElement::DOMElement ( )
    inlineprotected
    xercesc::DOMElement::DOMElement ( const DOMElement other)
    inlineprotected
    virtual xercesc::DOMElement::~DOMElement ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMElement::getAttribute ( const XMLCh *  name) const
    pure virtual

    Retrieves an attribute value by name.

    Parameters
    nameThe name of the attribute to retrieve.
    Returns
    The DOMAttr value as a string, or the empty string if that attribute does not have a specified or default value.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMElement::getAttributeNode ( const XMLCh *  name) const
    pure virtual

    Retrieves an DOMAttr node by name.

    Parameters
    nameThe name (nodeName) of the attribute to retrieve.
    Returns
    The DOMAttr node with the specified name (nodeName) or null if there is no such attribute.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMElement::getAttributeNodeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Retrieves an DOMAttr node by local name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the attribute to retrieve.
    localNameThe local name of the attribute to retrieve.
    Returns
    The DOMAttr node with the specified attribute local name and namespace URI or null if there is no such attribute.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMElement::getAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Retrieves an attribute value by local name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the attribute to retrieve.
    localNameThe local name of the attribute to retrieve.
    Returns
    The DOMAttr value as a string, or an null if that attribute does not have a specified or default value.
    Since
    DOM Level 2
    virtual XMLSize_t xercesc::DOMElement::getChildElementCount ( ) const
    pure virtual

    The number of child nodes that are of type DOMElement.

    Note: the count is computed every time this function is invoked

    Returns
    The number of DOMElement objects that are direct children of this object (nested elements are not counted), or 0 if there is none.
    virtual DOMNodeList* xercesc::DOMElement::getElementsByTagName ( const XMLCh *  name) const
    pure virtual

    Returns a DOMNodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the DOMElement tree.

    Parameters
    nameThe name of the tag to match on. The special value "*" matches all tags.
    Returns
    A list of matching DOMElement nodes.
    Since
    DOM Level 1
    virtual DOMNodeList* xercesc::DOMElement::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Returns a DOMNodeList of all the DOMElements with a given local name and namespace URI in the order in which they would be encountered in a preorder traversal of the DOMDocument tree, starting from this node.

    Parameters
    namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
    localNameThe local name of the elements to match on. The special value "*" matches all local names.
    Returns
    A new DOMNodeList object containing all the matched DOMElements.
    Since
    DOM Level 2
    virtual DOMElement* xercesc::DOMElement::getFirstElementChild ( ) const
    pure virtual

    The first child of type DOMElement.

    Returns
    The DOMElement object that is the first element node among the child nodes of this node, or null if there is none.
    virtual DOMElement* xercesc::DOMElement::getLastElementChild ( ) const
    pure virtual

    The last child of type DOMElement.

    Returns
    The DOMElement object that is the last element node among the child nodes of this node, or null if there is none.
    virtual DOMElement* xercesc::DOMElement::getNextElementSibling ( ) const
    pure virtual

    The next sibling node of type DOMElement.

    Returns
    The DOMElement object that is the next sibling element node in document order, or null if there is none.
    virtual DOMElement* xercesc::DOMElement::getPreviousElementSibling ( ) const
    pure virtual

    The previous sibling node of type DOMElement.

    Returns
    The DOMElement object that is the previous sibling element node in document order, or null if there is none.
    virtual const DOMTypeInfo* xercesc::DOMElement::getSchemaTypeInfo ( ) const
    pure virtual

    Returns the type information associated with this element.

    Returns
    the DOMTypeInfo associated with this element
    Since
    DOM level 3
    virtual const XMLCh* xercesc::DOMElement::getTagName ( ) const
    pure virtual

    The name of the element.

    For example, in: <elementExample id="demo"> ... </elementExample> , tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM.

    Since
    DOM Level 1
    virtual bool xercesc::DOMElement::hasAttribute ( const XMLCh *  name) const
    pure virtual

    Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise.

    Parameters
    nameThe name of the attribute to look for.
    Returns
    true if an attribute with the given name is specified on this element or has a default value, false otherwise.
    Since
    DOM Level 2
    virtual bool xercesc::DOMElement::hasAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise.

    HTML-only DOM implementations do not need to implement this method.

    Parameters
    namespaceURIThe namespace URI of the attribute to look for.
    localNameThe local name of the attribute to look for.
    Returns
    true if an attribute with the given local name and namespace URI is specified or has a default value on this element, false otherwise.
    Since
    DOM Level 2
    virtual void xercesc::DOMElement::removeAttribute ( const XMLCh *  name)
    pure virtual

    Removes an attribute by name.

    If the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
    To remove an attribute by local name and namespace URI, use the removeAttributeNS method.

    Parameters
    nameThe name of the attribute to remove.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMElement::removeAttributeNode ( DOMAttr oldAttr)
    pure virtual

    Removes the specified attribute node.

    If the removed DOMAttr has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix, when applicable.

    Parameters
    oldAttrThe DOMAttr node to remove from the attribute list.
    Returns
    The DOMAttr node that was removed.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if oldAttr is not an attribute of the element.
    Since
    DOM Level 1
    virtual void xercesc::DOMElement::removeAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    )
    pure virtual

    Removes an attribute by local name and namespace URI.

    If the removed attribute has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix.

    Parameters
    namespaceURIThe namespace URI of the attribute to remove.
    localNameThe local name of the attribute to remove.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 2
    virtual void xercesc::DOMElement::setAttribute ( const XMLCh *  name,
    const XMLCh *  value 
    )
    pure virtual

    Adds a new attribute.

    If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an DOMAttr node plus any DOMText and DOMEntityReference nodes, build the appropriate subtree, and use setAttributeNode to assign it as the value of an attribute.

    Parameters
    nameThe name of the attribute to create or alter.
    valueValue to set in string form.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMElement::setAttributeNode ( DOMAttr newAttr)
    pure virtual

    Adds a new attribute.

    If an attribute with that name (nodeName) is already present in the element, it is replaced by the new one.

    Parameters
    newAttrThe DOMAttr node to add to the attribute list.
    Returns
    If the newAttr attribute replaces an existing attribute, the replaced DOMAttr node is returned, otherwise null is returned.
    Exceptions
    DOMExceptionWRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMElement::setAttributeNodeNS ( DOMAttr newAttr)
    pure virtual

    Adds a new attribute.

    If an attribute with that local name and namespace URI is already present in the element, it is replaced by the new one.

    Parameters
    newAttrThe DOMAttr node to add to the attribute list.
    Returns
    If the newAttr attribute replaces an existing attribute with the same local name and namespace URI, the replaced DOMAttr node is returned, otherwise null is returned.
    Exceptions
    DOMExceptionWRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
    Since
    DOM Level 2
    virtual void xercesc::DOMElement::setAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName,
    const XMLCh *  value 
    )
    pure virtual

    Adds a new attribute.

    If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the qualifiedName, and its value is changed to be the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an DOMAttr node plus any DOMText and DOMEntityReference nodes, build the appropriate subtree, and use setAttributeNodeNS or setAttributeNode to assign it as the value of an attribute.

    Parameters
    namespaceURIThe namespace URI of the attribute to create or alter.
    qualifiedNameThe qualified name of the attribute to create or alter.
    valueThe value to set in string form.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null or an empty string, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace", if the qualifiedName has a prefix that is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the qualifiedName is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
    Since
    DOM Level 2
    virtual void xercesc::DOMElement::setIdAttribute ( const XMLCh *  name,
    bool  isId 
    )
    pure virtual

    If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

    This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute. To specify an DOMAttr by local name and namespace URI, use the setIdAttributeNS method.

    Parameters
    nameThe name of the DOMAttr.
    isIdWhether the attribute is of type ID.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
    Since
    DOM Level 3
    virtual void xercesc::DOMElement::setIdAttributeNode ( const DOMAttr idAttr,
    bool  isId 
    )
    pure virtual

    If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

    This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.

    Parameters
    idAttrThe DOMAttr node.
    isIdWhether the attribute is of type ID.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
    Since
    DOM Level 3
    virtual void xercesc::DOMElement::setIdAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName,
    bool  isId 
    )
    pure virtual

    If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

    This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.

    Parameters
    namespaceURIThe namespace URI of the DOMAttr.
    localNameThe local name of the DOMAttr.
    isIdWhether the attribute is of type ID.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/graph_legend.md50000644001725400016040000000004013273140100015207 00000000000000387ff8eb65306fa251338d3c9bd7bfffXQilla-2.3.4/docs/dom3-api/ftv2mo.png0000644001725400016040000000062313273140077014130 00000000000000PNG  IHDR}\ZIDATx1K@iBҡ(h"EI'oک 8R- BTP]zB3 _㒻}]V}dIiJb+|K…,[P\ʘMƢ#F`JݤkA?Y4ck6"Z)0SHM@㋺Wmo4HJ+Qobt *~8_+3Y- PwA+^}+xhϕMAE]TD~EÞߴ^R)`A9pq-۾ۍ3tƛTH) ICxd#1 m@V?Zgo_3-\IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp__incl.png0000644001725400016040000005003213273140101020244 00000000000000PNG  IHDR<E`vbKGD IDATxy\ U[Zju^JZ].}qCպbkZ^%d?ondg8yfr yrΙâ(*6tiHZ@q!''gʕb@I[ne: Vcamɓ'CCCyƔ>y@ Yf !c+x: I 4$-ӐND|K͛gee%-?tPRRRQQۀ&Mpc]\\=b/_ѵW>_vݻ===e511_hS cvqqQv!R7ol __"!iرcD"?}9s8`ffF7oܹs-[lBHqqqff}G۷oիYMMͶmۦM)[/EQ|>߾}}ݎ;FXTTߒ Q=QM633ɓ'kR6:t`kkۣGo)..Ց#GnڻwoWWDEE_t!(((!!Az;wJ2eݻ !{챱4i\666^^^˖-{qmm%@ hjhx,--̙,$-^:uTSfllx`hhرc׭[W]]M5nܸqEEE566>|)Sƍ}vH$}xuunjO? BB]6mڴ?ĉ *,T} I ZXXHˣuVWWIya~dw ݷoԩS;u$]t177/͛w]vBΜ9#=޽{{'O(oܹܹsժUƧN_׭[m۶h N***ڽ{-[>|xAܹs֭ݻwر~ᇲ 6$%%?~.}Ν;Ν{n:}r*UQ`x0^ ŒH$68p`BBݻwwnaa!3EQl6[H}ڵի !FFFﷷo׮=!i &&&'TUUѕJO(EϏ_p̙3-[6f___BŋgϞMϮY|4K.m۶Cs΍z !suuطoСCxƍjf̘{iӦBƎkff{m޼Y Par Pٙbff֡C 222|||?;6m5k0ڵkגm9h ~r7oV !DeNH_ȨQ>eOqwwwww'L =ԔސVVV0$>/H[GqqqikkK_Z.Ga-`x(EQK8t#GHU!Ǐݻ{< ^x}iӦmٲ k׮4iҞ={)MjgϞ uBlll파 0KK7o޼y… |:hښf?ҹJKUJ[ @PYYYQQQ^^ѣիWп6m_d ~yڎ3Fz8=Bl֭~~~ PeOO>bmm?F$566r\PHO)>RȢظqW^ܹs2|}eggggg%%% wޒ>ܹst;?_۷oذa rgC+EFxaoV`x'|BoٳG:,dϞ=*,,trr2dHpp0Ǔ=Ǎ'[xʕ8pFr8pcff6o޼o}}ѐ!C>SNu}„ Zr!R7o&+,(CQFd&2h .hŋ)ϟeK a@/`x7\_Rcj4𪐴7.Qܴ"~~N ^0X^^>>,KLԇ iC&-%c`$xHZS"Ȗ٬]l Z I 2gg=cY!!o20p'"Px1~A٬3g0h-$-`:t0ߛO؋x0EQ=r?@ i7bDww,,ZI >3v׍`l~bf@-Yd۶mLGڵsZVvE_q7n 0@2HAAA߾},Yt n豐"Iرcpp0QhNC: I 4$-Ӑ͘1C0##b,SN-++ݳ&222 7~1{ȑ#Y,VFFɥ^'z#4ܹscǎiܹSTTTPPpA@гgJWUUUzJJJڰarʘaÆbzGIOWيRвlmmm++˗k"=4ʕ+Çi]\\|YOOO_G3~BHHH@ ؽ{7!\鲗deeEQTݟ>rtt?)411)//\On>ٳg^^^k׮ Cdݢ'{B^x!wQF ӧOMEr[!$66V>E?0i@}}}WXSRR(ҥ˙3g>yD yf>/Hb'LPQQAQϡC>|" 9NZZ]x///!>(J(mӹ+%-w޵`+WR=l0sC;OQTll¤E-ymEIHH(RBJ%$- 3(VVVsyy999NNN MBrss??q);͛ lëE"5!$???00P?!D,wܙ.*(( !<On[ 紲rttLNN!999((Hcppp\\EQ dž)C\娸Eto4EfJ[ 㐴;v :tҥB[[[o>HӟzsrrNQuuu$..b֬YGPx˗GAzxx>DŽEfff4{um~> 믥 #lذA }իW[7.{9!Ϟ=T"l)MVXiK"`!HfΜpǏ_v… tW\2bĈ;w5eʔUV}'ʎbXÇ?}@  <Dcƌ_\\|/BCC-Z_5{?֭[ƍ^d /tȐ!/_NOO?{l>}\\\d8΄ Νۻwo{{{Rv[~ŋgdd$%%}tauulE{껧R:GKdNB!EQgϞurr3fX[[̙3FvE}}e˜---'OGQ۹sg###__x _UccMLMMz-)S899}uuu?m?yD?t1,,DvKvĤk׮~mmm!;w+WEMn=}mmm.\XWW'offFs"~o&"WB `N 0E)|:%$$rIגt +}HX,Vll, @!i sBDj0ߞ>-ָq=MM1 ABJ ߓS;ωpHJJ~tӧrc:_n.L`^>hwAAEl.]vHZ@|Y;yRS <$-OʪBC<9͆pZ/ I ]l6+.n% t$-?8'Owp`:ׅCz ?"8xqlLGmHZ@efﲳ3?q"p2YxPI 贌]ǏGXY0f@!$-?~>iRTsgwtB:*5`Ҥ(__#GftА.z(=ilc:8$-sϚ2eoޝٮpt:^B%11sԽowt##d, $-C9]o8Lm7n<5ȑ?岙Go  W>=ĉ6n aYL I 0 'MnDd, /`x\0:<ロb!cQt!AL:~<12dD/t, /`cX7o޻Vb:kHZ秗.}oɒ A #$-~7/aL ж;ůC $-U[\޺ʷߎ1cӱ:I hƍoyshhhoc I hEQk8֭d:P/kQzÇᇏƏb:h)t@EQԪUcbٝpC$K.=qܟ{L>kx6_׮xm@"KO3t8tˁ/12$-"x޼# :4;^NzqO$ϝ{ߞ>o{1h:^@ gw/+&fnP;ဖ4I S]p))ǎÍp@ԦV8m86v3jC  ۝"6vNhmKNNylŋ'8$-AG.(8yr#iaҥǏ't݄ۡ^˗&EWe:];^q'udl#k)/ U]p|wwW:#H!\.}x2,0I Ҫ]"8.nသ9y2)&nffiP{yyM^^ bq8ƌh<$- +'N;8X2+ܾڭ[m[dKGh?0lTP8q7.n2x,y=~x6tRS &MuΝ;EEEnݒH$.[EaaaLL̓'O^| 0E IDAT2Z%fa;>yɓ|D6˕+WJ"x޶]~ !NNN{uuukJ:-46 _?;OΚ5`:d,m]\\|>!>>>555H`oo)Jׯ_wssKHHXfԩS+++5=rcccOOϣGB^^^njjھ}{ّQ}B},[LQڵ***ڿ?˭޴i8pQBv)"$''WUU Kv@`dd4ŝhBHii*haaaC LII֭ڵkeoHuu5!d`߾}@{nBHyy9Rzz읗4PE$5J >}>|Ϟ=KLL,Wl !6 i9˧~{@@Z|WWWϯEEEիWϻ)))Eu̙3oJcVXٵƪU׬ÙcǎC.]TZhkk+rSsNN]w);N"UTT̚5k |#d<%WpBBB"##>|k.;;88p8,Lz[.-QMO>r;vlIMa>Z!<{j,$-mΝ׿篿;g cfH$3g.\׮]p]>~+W榤1bΝGM2eժUiiiiii|InnX,O>-B!311Qxx||1cXYYB9"~G٪#M BȨn͚5*eUxEegg}aaa-6} ׯ_:ujv;(4o߾/_tIII tC@glt~c:Дiپ}{@@P((ٳNNN@0c kkk9sλ_lɓ|>](bcc;wlddpPZYYu9>>W$̌j2UlݺC;vܵkɓVA2eӧ~ZWW'l E"ƍtB?lժUQ}iMa5҇۷v…Ҙ U6O9- A``6lώ7o t,)!!!'O20 ##[M^aaX,Vll,ݜKEEYs۶M8͡(/FG߉Lbaa1wܖ8$-mX,Y,̙?v6bDw jI!C҆Œ%KNwû1@ ii+b.]J=r0@K!iiD"qD[{{3@+ i1|Ba93NիWW'1@rrޱc={3@!i1d8t8s Dlϖs42rp_8ڷ b+wnl76Vh APX$D%ը:tbbAcKXQ HwrjȠ/jjMYql=SlYYs^lDv _{|yܯ> c̴(y乊\[7W6[?"R6}]VUUO8Vnn6dͭCp i14ա? uqq=}9LZ/KFj./Cv)]VUUOMwppptw׳fhq_fxn۷sN_5;>0ЭKFFG6, źzv\GG1f^^&&ؿ ZHZõkOf>8~|MB iCAϡ'+'%e׋}p!Osd&.Cys~dWFֵTS_ rs_;`?AҢ~тGCC{_RzAvm{+sjgKFj>.Cv544ˏ1(%td5P!iu'aao}6ZOC߱OOUg`KFj/Cv&k *}E=pٳ^!ӱO qSQзJvvYdI[2R cJ3u-N2rS-̸uwa/讘˗͛Ui2$ui KFjtu&ѝptk e?76*߹)d9HZtԑ#w>ԧt{LҦΡ`D[^`JY2R uJ3u-Վ))yYR"Mf*:I.J#LDO !(IIٹ/0մ%#5T6)YZS@L𰳰$-:g׮}ڵcft,mW= ܤe򒑚ЦT/XQJOi Zjev[ ݲs￿7ft,ٵcUKFjN\R캖jpNN@POp+CҢC6m_ ӧc:C#Qo[5KFjZ_Rд[9S_/"q{zy,$-:߿-[&t8Bp{:Svo};ٙ3ڄe(5Zj1fZ;0/Xh dke-``!Mf0!iaX,Y,̙?vZGK?݌r̡gXR˰%#L/ aCXϟO޻wa]Gw5Rx,]zKF,Ck8[DPR"&3%uuBdNvX^@ iaH$?O5`ҪGD/6\߾;vtmeXqXRw(c_!`?^BH,C;R8?;(``ntE9s'&f `:&~8O^֦LÒP kTOo׎(?SIݸ{wW@3fHN;vlnϞm55 +CetGXRa]KtqRAn zL&$-Y:hzsښBjkӧKM}~DD@@[yRn nDsuYI˕+O WXR/`]KX\,?,#VH,/I̟B:u=wn! ߓS;ω4H<>}<08XŒ=fv˖cHzʊa6_æLyAֵS0ŚMAҢe)B56敖Vg::5S8O]ܱ:EQznt!4<ʖ\sls"Bk./#7BnΌ[AҢ D_(8ӽ "05^dnnDѡ+Wf8@QͲ6UaH& OB8kL`]K[s~cҩ;ۛc:p iQY\N׮.qq_pjH$rٯMCm~.>|s]岇}#;<74`e(?rt8={-`}u-EsetLI˒l2WAZ2Ж!iQO>>,R<[7ד'iNzv9sYxXΡm OmpĈ99l,??{cHwړ '8vDUF12kY^^vĈ_=oS8?3(agabYh5.0`eS,yN0%')Vӧ_oރ9|~ s2d˜8)6bu |j>SXݻ[__f8岍8V:> 4햱pwQ;+i`u5($-jpaD,md]dC4F}h?p`ھ=ٳruCg}~]\.{wW@ADwݐB.k%Xv//7Cv]?ȩro yϞ[Ba#!f8l< ./N)1{۶]ٲ6#"ϙ3O AҢN gX,XXϚ5ZZj?kOV+-}"ysy.zzgRRv}8۔w eo8k3*Ц-[.W.f/K1Pd]1c~LJʖ%꣏|7eJJ%%gϊE##OOf'~S'<aϚ5O§hkӢE1)$f(89YFD K CnJJ^~glH8o8V\c^=zeG+UClk嚇}wP-Z㳲b)[8#Ft߳gix(?y0e9WQ!\.xڱo2-h1f-?z#{Bip ڿ"0THZFe76Jtq?ヴ0Qru~$M@aڻgO&&C46J&Lyr-469c>}v[k38Arr==11r9@ )vٳ1$0"/ÇW<9w;,ܸ1:u.ohh$q;v&>ڦgp8FF3 iQX\({aZ[DѣKOW:wϵ蠯߽;b.#y++ i+(+2E<&M Z%L1#%;\N>n_/Mv @PZZA 33{ d媭: j/xXD(-HGMo0KhՒ%m;u>ھ~bo:ӧmhGCCCYYpPLI)ni9wرc*++֖޶Z|{/ZY{\֝;w <(zIGPaaaLL@; /''ѣGң|lltsګk\)0K- ަUaa[$Ixxx"A ~yݾZMZ{lmU+W >\$ɋ/m[[׫8/+>3E-egϞܶm!nnXIixC. j669j͕BKJ]999ݻΝ;JM-4zlU}JAt(ـ[KOjϻ|B}||jjj!"(22>22R$}jׯ_wssKHHXfԩSM"\pѣFo^Nݷo_BMaǮpBѡC8nݺ:t) RŊx^W y///kkuIF|||.]-ZРB`#ٳg^^^k׮UX%ާ%Zx!IQTeeIyy4m9tarrr?).P]Uf䮔!Cdfft֍nH'{B^x4r 5ԛ7oާ%;] Ջ(@`dd4ŝhBHii)喞YYM[۟9sŋI{\la[jV[n4yD"a4 Vw^˗/]z^^n~*j667Gחo$-|>_>__ߢ"zիt|)))Eu̙3o}Z]]-oݺ%8^n陕E鶶CIoÇ?f۶,͵I-'-&)Ϳy^pAaMoBv-&&FZױcǤ-SOn~*jIҢY*VՓP_s8sW oSSSQEݾ}{ĉ 𪪪?ޖ}={֒'{8ѣn266>wv.R|;v )3ٺ3х=266VXlPm/VBBD";vݻh3rW/gJJ ݐ!U夅2Ć]?00~&qʽ3+ئUȖ'''K&-_!iMj9i MRZyTQMP]i=z$=mrreiۣ[OQ(V~;v:tҥK׀'&& ?gg眜$99SvT]]D"5kѣ+**~#FF~yKBEmڴik֬;w|,]Z(駟>յZxNj!ٳg e:5*.iҒ?۟;wҥK?-y!(mImdЛg {Zބf+ݾ}/R^^~.]X,n{vk)<ـe7__ڪm߾=ڻ8㍈*8Ե":9MI'WA@Gqppp/hA`[qp $y6&\>&]^^fY¯VRg6͝d2Y,ds+!ٙi}}}ӖenhXT2MӲ,yܷ߷OOOu]\f 9??ua,--/=Q|VpmCE W.ё|klw@3B<>>Rl6Y;3MP,Z2syȈab1Ɉ:aoy9^}F(dH7OE x4d2-JӱΞ`'~?maiUܭهR/,,80TFo6~A[I\d2m;$dPY"qquueF.^\\J%+T^KUKnyy^___wS 7774RGAP2BPV'''hUu,C,< ay:a Jh4Js0MW///+X h_V pod=nDKѢ뺦i ?߉j!$R]sD$:%w*ܭEk@i-F@i-$IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathException_8cpp__incl.map0000644001725400016040000000072113273140101020230 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.map0000644001725400016040000000012513273140100022045 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp.html0000644001725400016040000001061213273140101015760 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLocator.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMLocator.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLocator
     DOMLocator is an interface that describes a location. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_35.md50000644001725400016040000000004013273140100015722 00000000000000e7965618cb23e093f39cb41e1dc2d553XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp.html0000644001725400016040000001273213273140101016055 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSParser.hpp File Reference
    #include <xercesc/dom/DOMConfiguration.hpp>
    #include <xercesc/dom/DOMLSParserFilter.hpp>
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/validators/common/Grammar.hpp>
    Include dependency graph for DOMLSParser.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSParser
     DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMUserDataHandler.html0000644001725400016040000003242113273140100021470 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMUserDataHandler Class Referenceabstract

    When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...

    #include <DOMUserDataHandler.hpp>

    Public Types

    Public Constants
    enum  DOMOperationType {
      NODE_CLONED = 1, NODE_IMPORTED = 2, NODE_DELETED = 3, NODE_RENAMED = 4,
      NODE_ADOPTED = 5
    }
     Operation Type. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMUserDataHandler ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual void handle (DOMOperationType operation, const XMLCh *const key, void *data, const DOMNode *src, DOMNode *dst)=0
     This method is called whenever the node for which this handler is registered is imported or cloned. More...
     

    Protected Member Functions

    Hidden constructors
     DOMUserDataHandler ()
     

    Detailed Description

    When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported.

    This can be used by the application to implement various behaviors regarding the data it associates to the DOM nodes. This interface defines that handler.

    See also the Document Object Model (DOM) Level 3 Core Specification.

    Since
    DOM Level 3

    Member Enumeration Documentation

    Operation Type.

    NODE_CLONED: The node is cloned.

    NODE_IMPORTED The node is imported.

    NODE_DELETED The node is deleted.

    NODE_RENAMED The node is renamed.

    NODE_ADOPTED The node is adopted.

    Since
    DOM Level 3
    Enumerator
    NODE_CLONED 
    NODE_IMPORTED 
    NODE_DELETED 
    NODE_RENAMED 
    NODE_ADOPTED 

    Constructor & Destructor Documentation

    xercesc::DOMUserDataHandler::DOMUserDataHandler ( )
    inlineprotected
    virtual xercesc::DOMUserDataHandler::~DOMUserDataHandler ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMUserDataHandler::handle ( DOMOperationType  operation,
    const XMLCh *const  key,
    void *  data,
    const DOMNode src,
    DOMNode dst 
    )
    pure virtual

    This method is called whenever the node for which this handler is registered is imported or cloned.

    Parameters
    operationSpecifies the type of operation that is being performed on the node.
    keySpecifies the key for which this handler is being called.
    dataSpecifies the data for which this handler is being called.
    srcSpecifies the node being cloned, adopted, imported, or renamed. This is null when the node is being deleted.
    dstSpecifies the node newly created if any, or null.
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp.html0000644001725400016040000001170213273140101017261 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathException.hpp File Reference
    Include dependency graph for DOMXPathException.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathException
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp.html0000644001725400016040000001332413273140101016650 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNamedNodeMap.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMNamedNodeMap.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNamedNodeMap
     DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Macros

    #define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)
     

    Macro Definition Documentation

    #define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentType.html0000644001725400016040000016622713273140101021117 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentType Class Referenceabstract

    Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...

    #include <DOMDocumentType.hpp>

    Inheritance diagram for xercesc::DOMDocumentType:

    Public Member Functions

    Destructor
    virtual ~DOMDocumentType ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getName () const =0
     The name of DTD; i.e., the name immediately following the DOCTYPE keyword. More...
     
    virtual DOMNamedNodeMapgetEntities () const =0
     A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD. More...
     
    virtual DOMNamedNodeMapgetNotations () const =0
     A DOMNamedNodeMap containing the notations declared in the DTD. More...
     
    Functions introduced in DOM Level 2.
    virtual const XMLCh * getPublicId () const =0
     Get the public identifier of the external subset. More...
     
    virtual const XMLCh * getSystemId () const =0
     Get the system identifier of the external subset. More...
     
    virtual const XMLCh * getInternalSubset () const =0
     The internal subset as a string, or null if there is none. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMDocumentType ()
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object.

    The DOMDocumentType interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.

    The DOM Level 2 doesn't support editing DOMDocumentType nodes.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMDocumentType::DOMDocumentType ( )
    inlineprotected
    virtual xercesc::DOMDocumentType::~DOMDocumentType ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNamedNodeMap* xercesc::DOMDocumentType::getEntities ( ) const
    pure virtual

    A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.

    Parameter entities are not contained. Duplicates are discarded. For example in: <!DOCTYPE
    ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar
    "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz">
    ]> <ex/>
    the interface provides access to foo and the first declaration of bar but not the second declaration of bar or baz. Every node in this map also implements the DOMEntity interface.
    The DOM Level 2 does not support editing entities, therefore entities cannot be altered in any way.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocumentType::getInternalSubset ( ) const
    pure virtual

    The internal subset as a string, or null if there is none.

    This is does not contain the delimiting square brackets.The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document.

    Returns
    The internal subset as a string.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMDocumentType::getName ( ) const
    pure virtual

    The name of DTD; i.e., the name immediately following the DOCTYPE keyword.

    Since
    DOM Level 1
    virtual DOMNamedNodeMap* xercesc::DOMDocumentType::getNotations ( ) const
    pure virtual

    A DOMNamedNodeMap containing the notations declared in the DTD.

    Duplicates are discarded. Every node in this map also implements the DOMNotation interface.
    The DOM Level 2 does not support editing notations, therefore notations cannot be altered in any way.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocumentType::getPublicId ( ) const
    pure virtual

    Get the public identifier of the external subset.

    Returns
    The public identifier of the external subset.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMDocumentType::getSystemId ( ) const
    pure virtual

    Get the system identifier of the external subset.

    Returns
    The system identifier of the external subset.
    Since
    DOM Level 2

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMException_8hpp__incl.png0000644001725400016040000004050613273140100017303 00000000000000PNG  IHDR<bKGD IDATxw\S?d+nnUu"RpV8Z۪~Q)n'ڏVEkh"%HHHO~1In%ys=,b3&(Zhxz?H$L|}}lt@Ǐ׏@ Ϟ=ÿ\iz\ Wf: 0j(Zh&û߿챧ghh9seB߿_PP߻w &p8z_X,-[#pׯ!$///**]߿?} : 2hضmT*9uԬYkooO3gKttwff={i֬YzjE ޽K+W&MDwlmm'Lp뗘([*ƍ}۷o7rՉ' BDo߾QF]~r]]]\\ѣGWWW׿?cĉG޺uX,;w.!d̘1 UUU֭9rdXXO?$!&O=zTe<1bġCdThTƆ^st7??RUUUVV&%M?n߾@ x%!ÇBM_]tپ};۾}+lmmOBnnn.W?"WWWB5M$ =-cE;wgϞ4~BP(AeD`P~ɓ'_}UAA?M<-Z()))773gȑ#e#Ķl,B(ڰaØ1c?ۄ޽;33333,**лw]vedd,]ٳm۶_w.ۿ? :\xZR٨ʍ@0Ё>~sN,;;;w۷/...??kaaaVVVG߿BBѣ5\gϞ-//r .ܲeK"##B%KBaϞ=O>}۶m3gdX}􉎎~5!dРA/ p8:t;v/"܂ m6{l++DFF6mرURh Q%,Ǐ`y{u[Dzjˁa`P%jܸ#QF"0-(Z9;;/Ze$ӂ0j(Zh%L`D"ښe={frWf:zمvUUw ߴkDmmFMMJmm1X[ca]m0i׾_]#"zL1-`¶oW5cFf#yݩ}azjbtBj_lf͘S{1?(Z$_˶mW7m t,*@P(jժ{߲eBXX7/:L EQ_~y?Oƌt8B @&C*bb: .nСvPiH={Νnt8/ LD";/Mӧ5:^X,3@b_ի%:^4CFM,֭̚?<_ b:=B :(Zx i>z}Pt.Lc xP@ |ws Xb8ӱ E ?$*ˁ+-c;v$~͹! f:0(th]wV9kV_cƠt E W7ߌ>ӱޢE$KK+j`AI@iӯ?pN>ӱqѾe۶k^\l '--]ܾڦMݙT/R)ս7,0a\.xhwBQʕgue:0:^s8vMwpe6Z0(ZQ嗧NPSRS#:wQ|Zz?^ܸX,岛7w;rd3P[H11NsǎCt`:0UtwRoG\.aj>ECoC".Zt4!Ѯ]S>ۼ?xNa[Yqv:`@0#1~}ptLZYh?tfcbYX\6ۆRͶR䪪{w !pk׮ݛ@BqLCMhʔ))yGџp@[={\hӁ:J,Q"D I}}9:.d:43~˅W]];yӧ? b:h??0x{(Z| 2rGNNىnݔphM**j""vϜ׼;%Bj~]SeO5sc:P(Z@🪫kOߕpraP+KbΞ:ujOKOOWw=P؝%iᙙ׀({{<%,+==]zpFJQɓs6ub:8gϞ5j?edd3Ryٲew}vAAA~~7RiTTT7СgϞi46`0< ސS`{lWW ˗/8qB埤Riii)mݺuwwwwoڴ)!k׮]|>_sMB!&,zZ(5jSbΝx#Gjժ",YdXLVzbbʕ+'MT^^NMy/BCBBlmmomm=mڴxBHqq&h|errrWZ%A!|>݄;vB^~M +/ۢT^C2|p>)Ezݽ{7((Hz3rرz'(Z( BC9?|X@,Zx}4gϞ+UVVfeei&'J+++%ǎ[VVFm"۝(_gP>J"ܸq-"ᤦ{頠 BC ߺhQy ^DBHbb"EQD\d;vL9fzP:8`IM3f[`ǡCl[6mBZlIo =z\\\_~]__߾}l6[UUUbE!< DeH$JLL uZZڐ!Ct~/**H$-Z7(((77W!VVV UEQy MQ:iFʍF EKN?>6$ƍmm۶A-^XMݽ{N ~}T*=qDYYGQVVr_uȐ!SP9 5Ǐ_dÇccc5?ӓdddKBY]?r U*?MBHZZ]ը`PX3bt طo_HiӦ͛7ȑ#cƌϳ }v&NbŊ>,++K^,kN"N #GL9p#4={DڨD`ʕJuMXYYϟ??33355/Ծ-ڔ)S͛w…̫WFEEM4XT^CBݻ+**47`>`Ν-MVt,/iٺukhhH$(̙3^^^>?uTWWYfUWWϻ 111NNN<ޮEQǎkѢu6mT. &ؚ5k[h@+{eooO)MPޝ(M ɟŖ-[4iᡲ ZYYĉ]]].\( ߢbxÆ [ob h>5 װw6o}1]mrf1::ZFY-Oml f#CbA}O>~}*0\9sf#b3o^|ttT,`rb'-pPoIXl؂0 0Ν; .!++kk^^z!meEXZ{J$XYIXzVZH*%"[[^*('Jl,FE9۾_\z̙}fRR]mUUe[UVZ \B]]Ӧz-'23||*׊gϚX-yvvbRVf[\܈X{{Ado/pt|1yJ2ˏgPP#??^s455o֬~K flkQQ_Աc|hgg;5]W'}Ly񢈢nݚv`eSb$?\[ի|~|1#{cPc2Jg&%e竲j++NpwnBu릌&KvLܰRHߦML_|qeY3棏Bɓ{2|A6mz_qz22b~VViZZP(&X[sƘzl\"-惢+N:t& t8`z퓓sB%=H*<=鯼ݺ5 -ݿs,7hٳs8FTEEw]֯kԉ`$izW۱T1.?TvK LAb&$iḺӧܹsʇg:0$*-5ޯ?OZYq׮;dHi07ڲ!!~LGT?ݡcGn P\TW(f^(DDl7-% IDATńDu3gwC Buj}0d>lJ3亖rYNNTv꿏 k}b EDSy$ȑٝ:30={pww`:Ʒ2:G߶!))3))#%%0Zʩ%BOOGOO'YUt EIMcmt8` ?{''禥Bd+ v޼];8%Y2R\R]RTvN C@bz|adңG{1藪9nݚ_yƹd>2:g$Z"O>ّ[v\3Vg9&q+'2%#9#\Rjk ǘԈe5swtŔTTDD()d=[5a:FC0%#9_RT./U /$plWW{&Z-2<wYYiiBbmRa` PO&L 8xp>-y,J.0ZOd>2:g Z1fFEIIɝ0!Mĭ- Fs\}Gd>X2:gQZHTWP8?#JW'' e@b\<ɉϞi(o99g̡ , YຖyeZ)#-F$))c]=z5Ւou?sv Ìw%#-%%w Y:rVViEE cXܽr]پ}"fu =^6]y=4 ,CZzx8Zֺ  ̋E߼;n?PĿM;xpmۢ\tN9tg b{{`oz}_daJrYNNTv꿏 >,]lƌ}Æc$ޑ߂zo=O۷7 = 2u- F̒J!ys꿧a:p0- r̙Ǎax|֞Xz=r4XҐ4kٽ{v|0HTvN I=7/~„k׎CŢKUY3 KF2}7vذñXגAS*~-9{O5-G֭yh?3KF',C,ki$jk ǘԈe5swtcG]rӱ9DҨ`He(ֵ46`P0 >'bpca]zz%#M4BX8\^ի>_H?Ae1?= ʟC?_ZE>d$*)(4ԯ{f:9a&q?_*2ZߢGƸ;hїڞ=裐ud?֬9|Gb6M 4]X$`]K.JuO:E_nmÆ_(L{͚фۯ~իG͘ч sMwGꬰKFPJԚ5º{3!`]KSr˗յD7Ԣ E/kv]]Q! ٬i89nry͚1Sb::(*''稻gϞ-THL+2r'1qYfnF,if4,Cgͯ:|46XҤI$Rfc@kVM1 @-zuo6\ߘ!l6ɩ_ l`:$`rrnZZ!!DZHoNVVMrsynr8]ObdR^2/קZa_ֵ4j0@-WS#e"b f**{S[[hOϡ֭9V6!uÇ;-P,BX,ƍyj,i䗡<|͛iuuBZŋ-!&ZnB~q1?+4-P(B^^S=0j, Sfa͛g)ŕ6\:m/=w1K=q,QY,ml>|ʔ^݌U\yԩ,`Xx7 `>ֵ;ر] Sؠ LAѢcյ]*`X~;zڴކ F"8pWWݹs6~XO>|wɒ \v>g1 WݣǷ55R_WlVF6uMNֵLJ5j+!_6֍RFE$+(PQ\Uv@&wO?]1o>8> ۾зrWᰤRgN}fHRS/>iTJ<==Z 2+*j۵ =[51@`0O =*Lڳg*nml>Oa\N`ۥK5f$0й[26.b4o p3r\^eKwǾcG ,kР˖ k!}AѢK55]W+vp:iV~:p.\~m|ƍfɗOt"MzV^^3hbҚf ܎ӌ]<*jr#:neȐ0_rڴ/J|Cp.6ݻg rVViEE ch9HxŊSwb ˑH/]:C_}X(-}u~be;,XAm 0ʕ&հXd~ѣ\XҸsgΝuЩScITDDܝ;/b7w/av]_ ,k 0"3?=zuuRNti}5ٗZÒJѝWYf@(/Q3yswů q7oɾLJeˆa_7]ppΆXի˖u!De,Wِ̡@7^+_Oe86EQR)դIo9yW#y?|U[[geőH)rΝ߱?#Νyy_@qpXW.uuoܹsPfP͛'ieȀ!*gfTV 9RiVV:a!˖ 0p`~(ZRiii)ј.@[+*YGFvnZ8))/V[~p܉lmu\P(I}jAif5*,4P[)(ӝ<>ijk._˷ muUbdf:hܺk֮%UkbmZm4qbPII_wYy0%%bu+MbXRH'kg@t{ԿkBI/>.MuT**$rrjާ{PN|}] sָMM1f6lt`mݵkP<l11c, b0j&_dggO:ާ )#.{ kk디}Ĭ%Yf&M*))|abu)H<ղeKYhC*_Y*pR8D$*y3٠Hx}DNiy CY6rOO9t?n|rQT)##ퟵ-[nN:}///'TTT̝;wʕ:t_n߾]PPo>>߹sg::1Lzɓ'x<͛7덍N'y =;-is,$*Ϋ7nHҨE iy6(o߮Q0$cN%pCh|r[nnn֭Ӱ_~F˽.]7mǧgΜ =Y B (3L 4Hsiss}:5@3f*Q˫cǎv}6>dLͳAyv!s5twY[DsE˹s|||x<!ȑ#Z&%Kxzzzxx,YD,}jW^OLL\rId{BΟ?bkkxABH]]_~ݸqFٓBcSٱ+۝bmm{]v߾}ﷲROMŚ={ŋG<˗\\\֮]+ [?~mmʍڦY`BŽ?.=yqtx՝δ|ʔ)nnn111Bb:ܤI 6 jB.\ЩS';;;///Ǽ-kB]iيD"ٸqcV{)G q-#'6' 2 AsEŵmq.\=3#H?BazVyq]|muRr_NgҤI'O.,,wqcǎNNNܹ_xA:tkVZծ]䔔=zĨ۫&..`Ϟ=\.jƍ*w߻w)ۢ7׻Q !k֬ߨS3ŋ-޿Ys_S!d|>ԩSׯ_GEooo B(/'̥zYrN)U|mt׮]>>>kIIɕ+WdiG[azcSyq]|SU)Zxe.GC(H$p8t"BH.r=%LTt۷/ >J"ܸqC>9^nّE2uJV/?3yh7/' \eNR<0/BoСC>,L= ݺN? {iSLKTrU7E EQ| Ñ??u''':>HD5%%E8{Qu֭q5nܸw޿+++?c+MN;x𠓓Ӎ7lmmϞ=kSTÇt颹uٓUS!$--M-[[[&E eaGXAAARtԨQ;v젴{j}4™?399N$B!H%UC^%$$իcǎ=ydɩrˎdߢe+5z="o-_.Z(sI o* mԨѓ'Od},3M4(|v!Uo.ʋo*6srrm6hРŋ6^w]z;=իWǏwRĉeeeӧO1bDYY!CF,vϟ?ƍrhX;5(駟>#ͭӴ<5 DIKKQh$,-hzu֕+WDKPCo&=<==9NFF/_ Q&:`K,yallԽNV'4kL8O>U8BrkNSeuge;ү!y/*/涌:W+moD2hРoiӦΝϟ?ܸq=zgɗ+W IIIIIIygΜn/@`kk{ɒ;w GEEǡ6ٳgOEEѣ\ JW.wJÇ۷/=J$DDD("rd)))ڵI9)C%!{Z2Q)=-<b]tyÇ)UnBEV~Gg\t)00P1 A*' b97O-{Z/Bnݺׯ^ںukeҹG[?rzVyq]|SU ۺukhh(Ct///zϟ:uYP(x{{;99EDDx XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSInput.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSInput.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSINPUT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSINPUT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class InputSource;
    31 
    32 
    59 class CDOM_EXPORT DOMLSInput
    60 {
    61 protected:
    62  // -----------------------------------------------------------------------
    63  // Hidden constructors
    64  // -----------------------------------------------------------------------
    67  DOMLSInput() {};
    69 
    70 private:
    71  // -----------------------------------------------------------------------
    72  // Unimplemented constructors and operators
    73  // -----------------------------------------------------------------------
    76  DOMLSInput(const DOMLSInput &);
    77  DOMLSInput & operator = (const DOMLSInput &);
    79 
    80 public:
    81  // -----------------------------------------------------------------------
    82  // All constructors are hidden, just the destructor is available
    83  // -----------------------------------------------------------------------
    90  virtual ~DOMLSInput() {};
    92 
    93  // -----------------------------------------------------------------------
    94  // Virtual DOMLSInput interface
    95  // -----------------------------------------------------------------------
    98  // -----------------------------------------------------------------------
    99  // Getter methods
    100  // -----------------------------------------------------------------------
    107  virtual const XMLCh* getStringData() const = 0;
    108 
    114  virtual InputSource* getByteStream() const = 0;
    115 
    126  virtual const XMLCh* getEncoding() const = 0;
    127 
    128 
    136  virtual const XMLCh* getPublicId() const = 0;
    137 
    138 
    148  virtual const XMLCh* getSystemId() const = 0;
    149 
    150 
    160  virtual const XMLCh* getBaseURI() const = 0;
    161 
    162  // -----------------------------------------------------------------------
    163  // Setter methods
    164  // -----------------------------------------------------------------------
    165  // -----------------------------------------------------------------------
    170  virtual void setStringData(const XMLCh* data) = 0;
    171 
    177  virtual void setByteStream(InputSource* stream) = 0;
    178 
    191  virtual void setEncoding(const XMLCh* const encodingStr) = 0;
    192 
    193 
    204  virtual void setPublicId(const XMLCh* const publicId) = 0;
    205 
    219  virtual void setSystemId(const XMLCh* const systemId) = 0;
    220 
    230  virtual void setBaseURI(const XMLCh* const baseURI) = 0;
    232 
    233  // -----------------------------------------------------------------------
    234  // Non-standard Extension
    235  // -----------------------------------------------------------------------
    238 
    248  virtual void setIssueFatalErrorIfNotFound(bool flag) = 0;
    249 
    250 
    259  virtual bool getIssueFatalErrorIfNotFound() const = 0;
    260 
    267  virtual void release() = 0;
    269 };
    270 
    271 
    272 XERCES_CPP_NAMESPACE_END
    273 
    274 #endif
    virtual ~DOMLSInput()
    Destructor.
    Definition: DOMLSInput.hpp:90
    DOMLSInput()
    Definition: DOMLSInput.hpp:67
    This interface represents a single input source for an XML entity.
    Definition: DOMLSInput.hpp:59
    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp__incl.png0000644001725400016040000002352713273140100020037 00000000000000PNG  IHDRbKGD IDATxw@ǟ$ [,w)"Vq ~VI-Z [AdTցZ@ #$K#9"jyuy>~.s$Ay2 444ԇVڻw/ 5aիW^ |`c\pa޼y 2x% pcxKx````'Ɔ5yd^+!!FXYY9;;S(^bb"D߽{wAAARR9""ŋVVVU{ç>'tRZZݻ;::ѯ:;;_zꚛr_jkk+**}d27o ? -$$=oݺj*4-͎tpppppd} +_ } z{{1$;-N)`ll\]].O8bOZZZ_ ijj>>z(::: &&dvvv$%%DGG%/^g===w 9ydMMMRR_~dddi4ڙ3g?x&&&B*Bdӧh0333$$ȑ#=9 3dN?; s366~IЯn\k׎1/iiijjjʢ@KzyylW\422޽gZ~]vɑ#Gjjjz{{GFF oLΛ7/44tӦM}Qo޼133_zO?:uJVV#%%U[[{1(<`hhhhh(بzA<ZAOcQx ! P Aٳgmmmϝ;]]])))3gE&MYRRcp255\6%QQQꯀZ}}=\QQtΝ;w!^ZA󬭭EjjjP`2hiiMMMEEEhk֬A`0|MAAAmm㣮M8qb}6m***:r˗/+++Ϟ=yl))4-ZߧNjhhgX肕UtttCCCeee@@@ffUh \rϠK𺺺W^,\PH oߎ.hjjGEEF#F|΂ V^---͟&++Of e``pa^w$ϡC֭[`p.^5{loooI^ شiSxx'D;wwSSJy1 \|رcSLmLLlmmwյ`WWWt'(:\xqڵw$AOͭ544.^(j+`!n/_| A1 of A1  1  1  1  >>% b? `cHIIӤCd2JӒR顉Jp/[n|?bFo/9qVG9p +99?-m(ʃc|}FIImB¦Oq`e3g~nݙ {$w)LL#kk"5FnÇs[hD$RϞTS_6M$9!x!_cgwrٲ)Ǐm榦v{T錌JJrM2$K ]FFOylo1޲z |sNoj0\04TKIRZ+澿d!q8}kő::"'Sqt<ع3˕>Y ,cܻWv_}g9qqsrwy9dVĥK'{yY(2p?wSCFa(r͛㻺zϝb-uuGXX`LH5}2'kEEs#88SCCqʩCv!xɓ7[1i>.z!MVP]`. d.ݻ::mKTTZ[[D#&L&ѫ7ϝ0SN×`{;;sOH4bbӧos_d2]g2ru}8{זpܘYSC["JJr_}eg|rr2xk%JJ緐$H& 2jիg-D+$'{77o o4Rm/rrݻTJ 8'^{ ifgggADl55N76FM ڵm9{e?(L!1~V'yJѺuQݽׯ8 Dl3>[abp@vss#9\.ABPsGD Q{d2yBKGgp%IH94Fo/'>+) D8 ȱc.]z ww?QXBHcdg?kll۸ o!C xd3\._nӈB#1œtuHÍSr1g@PS^CAPPHXQBcK{Lo@_?ϯ~:d2i)|w𠃊ZZB Wl=AS"c>/ 71FCCk]cƌa"AcTV65cF99MM%@$yhuq}zÆ }^^ZGvwwol|E'OVTT1cƑ#Gx׻I$I%KH ի |q 1޼i=Z oEff}Fg2---WmmmӧO/,,iO"lrcRRR`` IIIիW_x7XJOOwrrOsqyyy ! (fbn>ܸqXUU5$$0,++kرݘAA u %>=<<뵴=z=X]]]\\laagϞr%Kn߾lffV\\\RR2k,??jFFFhX))Pqqq8qBSS3##۷W\E`ׯ_O8188A ɌYd9sğ-\^^BAУCcccs}---W={ HKKˈ#x9х299xAЍ_37cIe˖1K.DWhѢ|cc`31Ɯ9NH`뛛oqh4t977wʔ)V...Fdر跥eZt:]ZZرc 嶵q8;::tALMMxbΞ= P(/^@>} HOOOetE>>TWWݶm޽{IJJZp!N©SyLG //A䧼A$5538@Px*iGѭӃ~[RR"G srrzjVX.=ճgm, ST}]p?-eO6 ]m#""K^ݼCs yyNQΞTSSnkkk.^P]]1|4.-- խB#ϟ??|pX,MKK6mZ|9NǬo-^ =˗/ZZZ  ~ZOOュO+/]z5(@GGѣG3|mmmL~TTL.@YY:0/waʟ>c %cp8[[ۃtmml4^5kAAA%%%%%%bXT*5==1**JX,nnnuuuhSNijjfffhk׮^n݂ *++KJJi rm^^ʕ+[ZZo[[[ǎkmm}ڵ 333KKˮ.[n?~MwtE? ﯙAhNfMyyyAAI`` fCcݺȝ;SRr  gQ zz22f͚!ZC!R1}^U‹͜9yH /t z5jΝ;#$%=Ö??|{-d{700 kgE R oÎ`Ƙ7o܋uMMp~Ů]f<3Pn|½{[uskWO_@>C^^v2,xzX;;C"n+-/oll[TV6G[Xu}U tg 'PҿZ۷-kFm{ !''hYFFsss5)KsmA!1..< ں֭;fsSR|G-Gl!1,-M4ΟǘEB矶 hj*-G!1H$iiPgpoO*-}e` [i ڵ3z{9O2D zΫD $5CQ*4_ns8Z32l13HD5ǦJ2?[Lݰ07qxkl ##ŋ'>}o!KB'nӊS"A[?^}^9B˗~[:o-%';o!ݿ֯vw &%%E>wSAAo9CCC&g薖TuuH:bb -6#[ټ9==U@TtHSFƓ\MpwHzyoccM@'c,bŔoDٳ'ƍgn4Io9+cqbz~*Bÿ^(kjopG "!hh`._~_sl6@䫋KUlnieN!* D̍QUմpaWoA!x!ʗlw''?ٜ+~8Έ1:;{,-MIM-.^,fc~pkjE:!'LfWX;$7硨(WRr@$7"2gᚚf-J&FTX< ΈCGRR~ݲ3g@s#F{{׭[dE7oVWB!+*R]ZX6(OnK?T:PKL䎎 +y'3RRd yJJOJ$Ξ_~uM2%S('OU?Ɣ < H\>bߒ[OM"H$ ._ԗ#GG L&98X0,IDATcpf 1ׯyhnssgefzt&5l6w<_yFF"9QTTRp1_$ؤLHw7'#U~|1NIyimm8f9aUw?Λ7?="F"z$7Fuu "/W왔TZZ/%##SRR2@cB#榠0whH Q( oL{{VVVݻ>uo׷ںu֠I>ܹKvvvb~U^^ާA^'zyy!e˖iӦ w>rܹsW]/B^xŋȌ;cdgg1 @JJiGG_KKKSS߿ܺu ///((@CCݝw8177RFFF6YI^^^NN[={6@[[T$$$Ņ'$$HKK'RMD"mٲʕ+os޸qXUU5$$5Ǝݍn!~d=G}}֣GѣG-,,كؖ,Yr`33⒒YfW]VV622FJIIbVKLLD=UgC4^XX"|l2&y%@SSaѢEeeeA{c onnοƍG)SAcfddߖktiicǎ1 .pHӑ5: ]r%Bqsso6 y1[;/'?<AЛ#jllDїP(^ϝdFGT*D0`-Aݻ$//oeeuX]Wb (ʿ;J!X8iӄW3'?2uX,,**RAl1>TMMMxx]xAuuuޯ`08:RխB#ϟ??|pX,MKK6mZ|9NǬo-^4l6PW7 Tohhܹsy7j!tRkG`N+@YY$t:][[;;;:99UUU͚5k ss󒒒KKKOOjX,*ERY,fu77:4z?66ummmV_.[ A|kV\23::Hǰ)///((011 ĸ`cM<E\|YGG3 6yyyutt~]]]~~~...  B$55u̘1222ƍ¬cgg/СC***cƌB_((( S=!!AVVE drzz`7 y QFQ]H>f_F3رba bl x۹$RQQabbI̠pmd!())y{}3(C)Dƀ@0ƀ@0ƀ@0ƀ@0xg{􎚼<|@&Hc@ @c@ @c@ @c@ 7NfїIENDB`XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp__dep__incl.md50000644001725400016040000000004013273140077021046 000000000000006b56be2a938e674470fb878b3e3fb93aXQilla-2.3.4/docs/dom3-api/inherit_graph_25.map0000644001725400016040000000031013273140101016012 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__dep__incl.map0000644001725400016040000000025313273140101021327 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp_source.html0000644001725400016040000006414113273140077017013 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMRange.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMRange.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMRANGE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMRANGE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class DOMNode;
    30 class DOMDocumentFragment;
    31 
    36 class CDOM_EXPORT DOMRange {
    37 protected:
    38  // -----------------------------------------------------------------------
    39  // Hidden constructors
    40  // -----------------------------------------------------------------------
    43  DOMRange() {}
    44  DOMRange(const DOMRange &) {}
    46 
    47 private:
    48  // -----------------------------------------------------------------------
    49  // Unimplemented constructors and operators
    50  // -----------------------------------------------------------------------
    53  DOMRange & operator = (const DOMRange &);
    55 
    56 public:
    57  // -----------------------------------------------------------------------
    58  // All constructors are hidden, just the destructor is available
    59  // -----------------------------------------------------------------------
    66  virtual ~DOMRange() {};
    68 
    69  // -----------------------------------------------------------------------
    70  // Class Types
    71  // -----------------------------------------------------------------------
    99  enum CompareHow {
    100  START_TO_START = 0,
    101  START_TO_END = 1,
    102  END_TO_END = 2,
    103  END_TO_START = 3
    104  };
    105 
    107 
    108  // -----------------------------------------------------------------------
    109  // Virtual DOMRange interface
    110  // -----------------------------------------------------------------------
    113  // -----------------------------------------------------------------------
    114  // Getter methods
    115  // -----------------------------------------------------------------------
    124  virtual DOMNode* getStartContainer() const = 0;
    125 
    134  virtual XMLSize_t getStartOffset() const = 0;
    135 
    144  virtual DOMNode* getEndContainer() const = 0;
    145 
    154  virtual XMLSize_t getEndOffset() const = 0;
    155 
    164  virtual bool getCollapsed() const = 0;
    165 
    175  virtual const DOMNode* getCommonAncestorContainer() const = 0;
    176 
    177  // -----------------------------------------------------------------------
    178  // Setter methods
    179  // -----------------------------------------------------------------------
    202  virtual void setStart(const DOMNode *refNode, XMLSize_t offset) = 0;
    203 
    226  virtual void setEnd(const DOMNode *refNode, XMLSize_t offset) = 0;
    227 
    244  virtual void setStartBefore(const DOMNode *refNode) = 0;
    245 
    262  virtual void setStartAfter(const DOMNode *refNode) = 0;
    263 
    280  virtual void setEndBefore(const DOMNode *refNode) = 0;
    281 
    298  virtual void setEndAfter(const DOMNode *refNode) = 0;
    299 
    300  // -----------------------------------------------------------------------
    301  // Misc methods
    302  // -----------------------------------------------------------------------
    313  virtual void collapse(bool toStart) = 0;
    314 
    331  virtual void selectNode(const DOMNode *refNode) = 0;
    332 
    347  virtual void selectNodeContents(const DOMNode *refNode) = 0;
    348 
    366  virtual short compareBoundaryPoints(CompareHow how, const DOMRange* sourceRange) const = 0;
    367 
    381  virtual void deleteContents() = 0;
    382 
    398  virtual DOMDocumentFragment* extractContents() = 0;
    399 
    412  virtual DOMDocumentFragment* cloneContents() const = 0;
    413 
    442  virtual void insertNode(DOMNode *newNode) = 0;
    443 
    469  virtual void surroundContents(DOMNode *newParent) = 0;
    470 
    481  virtual DOMRange* cloneRange() const = 0;
    482 
    493  virtual const XMLCh* toString() const = 0;
    494 
    507  virtual void detach() = 0;
    508 
    510 
    511  // -----------------------------------------------------------------------
    512  // Non-standard Extension
    513  // -----------------------------------------------------------------------
    523  virtual void release() = 0;
    525 };
    526 
    527 
    528 XERCES_CPP_NAMESPACE_END
    529 
    530 #endif
    DOMRange()
    Definition: DOMRange.hpp:43
    virtual ~DOMRange()
    Destructor.
    Definition: DOMRange.hpp:66
    CompareHow
    Constants CompareHow.
    Definition: DOMRange.hpp:99
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMDocumentFragment is a &quot;lightweight&quot; or &quot;minimal&quot; DOMDocument object.
    Definition: DOMDocumentFragment.hpp:71
    Definition: DOMRange.hpp:36
    DOMRange(const DOMRange &)
    Definition: DOMRange.hpp:44
    XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp_source.html0000644001725400016040000003722413273140077017235 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMEntity.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMEntity.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMENTITY_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMENTITY_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    66 class CDOM_EXPORT DOMEntity: public DOMNode {
    67 protected:
    68  // -----------------------------------------------------------------------
    69  // Hidden constructors
    70  // -----------------------------------------------------------------------
    73  DOMEntity() {}
    74  DOMEntity(const DOMEntity &other) : DOMNode(other) {}
    76 
    77 private:
    78  // -----------------------------------------------------------------------
    79  // Unimplemented constructors and operators
    80  // -----------------------------------------------------------------------
    83  DOMEntity & operator = (const DOMEntity &);
    85 
    86 public:
    87  // -----------------------------------------------------------------------
    88  // All constructors are hidden, just the destructor is available
    89  // -----------------------------------------------------------------------
    96  virtual ~DOMEntity() {};
    98 
    99  // -----------------------------------------------------------------------
    100  // Virtual DOMEntity interface
    101  // -----------------------------------------------------------------------
    104  // -----------------------------------------------------------------------
    105  // Getter methods
    106  // -----------------------------------------------------------------------
    114  virtual const XMLCh * getPublicId() const = 0;
    115 
    123  virtual const XMLCh * getSystemId() const = 0;
    124 
    132  virtual const XMLCh * getNotationName() const = 0;
    134 
    137 
    145  virtual const XMLCh* getInputEncoding() const = 0;
    146 
    154  virtual const XMLCh* getXmlEncoding() const = 0;
    155 
    163  virtual const XMLCh* getXmlVersion() const = 0;
    165 };
    166 
    167 XERCES_CPP_NAMESPACE_END
    168 
    169 #endif
    170 
    DOMEntity()
    Definition: DOMEntity.hpp:73
    DOMEntity(const DOMEntity &other)
    Definition: DOMEntity.hpp:74
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    This interface represents an entity, either parsed or unparsed, in an XML document.
    Definition: DOMEntity.hpp:66
    virtual ~DOMEntity()
    Destructor.
    Definition: DOMEntity.hpp:96
    XQilla-2.3.4/docs/dom3-api/functions_0x77.html0000644001725400016040000001164413273140100015660 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - w -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.md50000644001725400016040000000004013273140100025036 000000000000004851e6e3efb17c5f011bf0e38203ffddXQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__incl.md50000644001725400016040000000004013273140077020343 00000000000000cdb1649902cc3329f5b9b3363d032652XQilla-2.3.4/docs/dom3-api/inherit_graph_21.map0000644001725400016040000000063113273140101016014 00000000000000 XQilla-2.3.4/docs/dom3-api/functions_func_0x75.html0000644001725400016040000000771313273140100016673 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - u -

    XQilla-2.3.4/docs/dom3-api/dir_7491f501d2a916fed33ee116b073f624.html0000644001725400016040000000564413273140101020141 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    framework Directory Reference
    Directory dependency graph for framework:
    framework

    Files

    file  MemoryManager.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNodeFilter.html0000644001725400016040000006767413273140101020540 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeFilter Class Referenceabstract

    Filters are objects that know how to "filter out" nodes. More...

    #include <DOMNodeFilter.hpp>

    Inheritance diagram for xercesc::DOMNodeFilter:

    Public Types

    Public Constants
    enum  FilterAction { FILTER_ACCEPT = 1, FILTER_REJECT = 2, FILTER_SKIP = 3 }
     Constants returned by acceptNode. More...
     
    enum  ShowTypeMasks {
      SHOW_ALL = 0x0000FFFF, SHOW_ELEMENT = 0x00000001, SHOW_ATTRIBUTE = 0x00000002, SHOW_TEXT = 0x00000004,
      SHOW_CDATA_SECTION = 0x00000008, SHOW_ENTITY_REFERENCE = 0x00000010, SHOW_ENTITY = 0x00000020, SHOW_PROCESSING_INSTRUCTION = 0x00000040,
      SHOW_COMMENT = 0x00000080, SHOW_DOCUMENT = 0x00000100, SHOW_DOCUMENT_TYPE = 0x00000200, SHOW_DOCUMENT_FRAGMENT = 0x00000400,
      SHOW_NOTATION = 0x00000800
    }
     Constants for whatToShow. More...
     
    typedef unsigned long ShowType
     

    Public Member Functions

    Destructor
    virtual ~DOMNodeFilter ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual FilterAction acceptNode (const DOMNode *node) const =0
     Test whether a specified node is visible in the logical view of a DOMTreeWalker or DOMNodeIterator. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNodeFilter ()
     

    Detailed Description

    Filters are objects that know how to "filter out" nodes.

    If a DOMNodeIterator or DOMTreeWalker is given a DOMNodeFilter, it applies the filter before it returns the next node. If the filter says to accept the node, the traversal logic returns it; otherwise, traversal looks for the next node and pretends that the node that was rejected was not there.

    The DOM does not provide any filters. DOMNodeFilter is just an interface that users can implement to provide their own filters.

    DOMNodeFilters do not need to know how to traverse from node to node, nor do they need to know anything about the data structure that is being traversed. This makes it very easy to write filters, since the only thing they have to know how to do is evaluate a single node. One filter may be used with a number of different kinds of traversals, encouraging code reuse.

    See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

    Since
    DOM Level 2

    Member Typedef Documentation

    typedef unsigned long xercesc::DOMNodeFilter::ShowType

    Member Enumeration Documentation

    Constants returned by acceptNode.

    FILTER_ACCEPT: Accept the node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will return this node.

    FILTER_REJECT: Reject the node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will not return this node. For DOMTreeWalker, the children of this node will also be rejected. DOMNodeIterators treat this as a synonym for FILTER_SKIP.

    FILTER_SKIP: Skip this single node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will not return this node. For both DOMNodeIterator and DOMTreeWalker, the children of this node will still be considered.

    Since
    DOM Level 2
    Enumerator
    FILTER_ACCEPT 
    FILTER_REJECT 
    FILTER_SKIP 

    Constants for whatToShow.

    SHOW_ALL: Show all DOMNode(s).

    SHOW_ELEMENT: Show DOMElement nodes.

    SHOW_ATTRIBUTE: Show DOMAttr nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with an attribute node as its root; in this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.

    SHOW_TEXT: Show DOMText nodes.

    SHOW_CDATA_SECTION: Show DOMCDATASection nodes.

    SHOW_ENTITY_REFERENCE: Show DOMEntityReference nodes.

    SHOW_ENTITY: Show DOMEntity nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with an DOMEntity node as its root; in this case, it means that the DOMEntity node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.

    SHOW_PROCESSING_INSTRUCTION: Show DOMProcessingInstruction nodes.

    SHOW_COMMENT: Show DOMComment nodes.

    SHOW_DOCUMENT: Show DOMDocument nodes.

    SHOW_DOCUMENT_TYPE: Show DOMDocumentType nodes.

    SHOW_DOCUMENT_FRAGMENT: Show DOMDocumentFragment nodes.

    SHOW_NOTATION: Show DOMNotation nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with a DOMNotation node as its root; in this case, it means that the DOMNotation node will appear in the first position of the traversal. Since notations are not part of the document tree, they do not appear when traversing over the document tree.

    Since
    DOM Level 2
    Enumerator
    SHOW_ALL 
    SHOW_ELEMENT 
    SHOW_ATTRIBUTE 
    SHOW_TEXT 
    SHOW_CDATA_SECTION 
    SHOW_ENTITY_REFERENCE 
    SHOW_ENTITY 
    SHOW_PROCESSING_INSTRUCTION 
    SHOW_COMMENT 
    SHOW_DOCUMENT 
    SHOW_DOCUMENT_TYPE 
    SHOW_DOCUMENT_FRAGMENT 
    SHOW_NOTATION 

    Constructor & Destructor Documentation

    xercesc::DOMNodeFilter::DOMNodeFilter ( )
    inlineprotected
    virtual xercesc::DOMNodeFilter::~DOMNodeFilter ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual FilterAction xercesc::DOMNodeFilter::acceptNode ( const DOMNode node) const
    pure virtual

    Test whether a specified node is visible in the logical view of a DOMTreeWalker or DOMNodeIterator.

    This function will be called by the implementation of DOMTreeWalker and DOMNodeIterator; it is not normally called directly from user code. (Though you could do so if you wanted to use the same filter to guide your own application logic.)

    Parameters
    nodeThe node to check to see if it passes the filter or not.
    Returns
    A constant to determine whether the node is accepted, rejected, or skipped, as defined above.
    Since
    DOM Level 2

    Implemented in xercesc::DOMLSSerializerFilter.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.png0000644001725400016040000001207413273140101024732 00000000000000PNG  IHDRp$}bKGDIDATx\L4H1Ք~ )j),%Y~/U%ҔǤ%2RkYI Mb=ɔhF5Ls޽;5cu<8=s5s̽  !J]З"} !"З"B*91vX} OO쐐D=KCp8˗/W0@MMݽ_رcwfXwe238}IR555i4?:}4J=r̙3 ͛d2^X[[㿳(((:uBH$MMM 9ϯ_Ν;֭355RwEť- bd::::::2LX. +V(++KJJZbCDDY>]񫏜D"-[=^j?:tʕ+ aK[ϟef:~Us]~}ɒ%'OJ{E"^産q㆏ϲeΟ?NNNpݺuΝ ^KK˾}/_BUU5##s%Œ//r۷o:t( -->|4)) p–-[>|dlgP( wpp8BaZZZr*ҹCC7oZZZMLLLLL^z'O,Х痖~W2&&&9s{b222"""{=&M~NY;wDGG577.]hmmݹsirrr@@@||<9zhCCܿqqqJJJeM(--uqqa0,^V|zoܸ4$$dfffhիW7mڤcll}*''gڵƍ 4i,H$BD P({{!C\rK×,Yҹ H$TRRѥbĈ+VPUUxxxg. ޒOTjjj-H %11100PKK X,yƍ􌍍׬Y,'?ӧXGZXX999 }[Ծ_Xg]]3v8|padd744D{ƌ3fY*uuȴ &xxx̚5K\ql>ZfUU5>j„  <+gGQUUd6VQCCISFu~t2f:$LMM J$tXrc‚ {{{:udQuI}tkk똘m۶#G400VLhiiՍ7PUUUTTեM"✜m۶eddȒ+ gFmmmO>meem1BaJJ ɶhmm}у6o)f_Ÿ5i"H$mmmsD'hhh())q8Ԏc g###tD"f̘ȸ: ȁvQRRRPPϛ7/>>ŋx]BBBuuuuuѣG=GgDb0|>_$!CȒ+Wtnx<^ccw>|cݨr߿fo߾@ߪK#GͩTjHڧO&$$,\JɢG*@DbL&V|Lǎp8Չr1l0;;~<~866o<ݝL&9rB]]7**jݺu$믿 C(Ξ=ﬢP([n{](,9;tķ6l@:::'N'NHJJb2o޼ӳquuUQQN_|ѱ3olmm7o, mll<==Ky+PAgϞaÆyxx؄axM֯_7xzz)g3gjhhիW+2.)ܵkϭ_B> t::SbK.*>U/+Tjpp@W} !"З"} !"З""'O_ 8Ы^ARd!]A&1+_ U..ѫWw@2!=W$ZЗHԑ'e?WssLVJO/rЗŋ%d@,r71 }WZ[ۯ_Vwm}\YD"]`@_()/7ZAeZ|'k TI>Yej*\eHK{ H_0H$EE> HIS_ ʤ~~8@_KJe\ KRS?n9C$秋Z[ۇ !++RPx?Qd,[X&8@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B%@_B% `hh8e~ j>U2߭ p64gΜhȠ͍toϞ=յo%A "} !"З"} !"/I8Ǝjժ|g0SLQWW1c޽{b1555?/^L";H$Rq3%줤iӦx@$1QF0 H. 999FFFyyyv222^jYʲ:t3gbK9~H_r=LNN޹s20|p^p[\\\de>y򤹹}Μ93nܸ#Gر+'N lkk˻rTgϞ577~{{{gܹwvppI={>&M>TJJ2b@`0JKKcbb$5j/ϟt/ORDvڍ7ܸq#++ wrrںu˗/*oo۷WTTTTTlذ˗T$ŋMMM***>|@7aRm@CCC]]]mm[S;w|͵k*++g͚e``WVVvvv9sN_flӦMUUU۶mŸ?i葪NP] +VVWWWTTx{L+"{ǏO2At==FA֬YP?rHwww.wV!bƏOP._,G.kѣ===hiiټyɓUUU'MgϞVLrhI cƌh7nRG: D"ܹs#Ghjj=:&&]GG[KKKOO/((H ȩJz $u DbXnnn}@:_:|PKOˏ͈# }a2]сKKQt###R  |$uo;V\9sn|dBD/!DBD/!DK,`IENDB`XQilla-2.3.4/docs/dom3-api/dom-resolver_8cpp-example.html0000644001725400016040000003431613273140077020102 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    dom-resolver.cpp

    This example shows an example of running multiple queries, using a DOMXPathNSResolver to resolve namespaces.

    /*
    * Copyright (c) 2001, 2008,
    * DecisionSoft Limited. All rights reserved.
    * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    *
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    * http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    #include <iostream>
    #include <xercesc/framework/StdOutFormatTarget.hpp>
    XERCES_CPP_NAMESPACE_USE;
    using namespace std;
    int main(int argc, char *argv[])
    {
    if(argc != 2) {
    cerr << "Data file not specified." << endl;
    return 1;
    }
    // Initialise XQilla //
    // 1. Initialize XQilla
    //
    // Note that this initialisation takes care of initialising
    // xerces-c as well
    try {
    } catch (const XMLException& eXerces) {
    cerr << "Error during Xerces-C initialisation.\n"
    << "Xerces exception message: "
    << UTF8(eXerces.getMessage()) << endl;
    return 1;
    }
    try {
    // 2. Obtain a DOM3 XPath2 implementation. This is a XQilla-specific
    // implementation that overrides the standard DOMDocument, the standard
    // DOMWriter and the standard DOMBuilder
    DOMImplementation* xqillaImplementation =
    DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));
    // 3. Obtain a parser and set 'do namespaces', 'use schema' and 'validate' to
    // true.
    // Create a DOMLSParser object
    AutoRelease<DOMLSParser> parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0));
    parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true);
    parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true);
    parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true);
    // Parse our XML document //
    DOMDocument *document = parser->parseURI(argv[1]);
    if(document == 0) {
    cerr << "Document not found: " << argv[1] << endl;
    return 1;
    }
    // Create a parsed expression //
    // (compiled) and evaluate it //
    // 1. Create a Namespace Resolver. This holds a map of namespace prefixes
    // to namespace URIs.
    AutoRelease<DOMXPathNSResolver> resolver(document->createNSResolver(document->getDocumentElement()));
    resolver->addNamespaceBinding(X("my"), X("http://example.com/myURI"));
    // **************** Example 1: max() function ****************** //
    {
    // 2. Create a parsed expression
    const char* expression = "max(/Catalogue/Book/Price)";
    AutoRelease<DOMXPathExpression> parsedExpression(document->createExpression(X(expression), resolver));
    // 3. Evaluate the expression. We choose to have a first result, since we
    // know the answer will have only one item. Could also choose
    // XPath2Result::SNAPSHOT_RESULT and XPath2Result::ITERATOR_RESULT
    AutoRelease<DOMXPathResult> firstResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::FIRST_RESULT_TYPE, 0));
    // 4. Work with the result: output it to the screen in this case
    cout << "The answer for expression '" << expression << "' is: " << firstResult->getNumberValue() << endl;
    }
    // **************** Example 2: output of nodes ****************** //
    {
    // 2. Create a parsed expression
    const char* expression2 = "//Magazine";
    AutoRelease<DOMXPathExpression> parsedExpression(document->createExpression(X(expression2), resolver));
    // 3. Evaluate the expression. We choose to have an iterator result
    AutoRelease<DOMXPathResult> iteratorResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::ITERATOR_RESULT_TYPE, 0));
    // 4. Work with the result: output it to the screen in this case
    // Create a DOMLSSerializer to output the nodes
    AutoRelease<DOMLSSerializer> serializer(xqillaImplementation->createLSSerializer());
    AutoRelease<DOMLSOutput> output(xqillaImplementation->createLSOutput());
    StdOutFormatTarget target;
    output->setByteStream(&target);
    cout << "The answer for expression '" << expression2 << "' is: " <<endl;
    int i = 0;
    while(iteratorResult->iterateNext()) {
    if(iteratorResult->isNode()) {
    cout << "Node " << i++ << ": "<< flush;
    serializer->write(iteratorResult->getNodeValue(), output);
    cout << endl;
    } else {
    cerr << "Expected a node but received an atomic value!"<< endl;
    }
    }
    }
    }
    catch(DOMException &e) {
    cerr << "DOMException: " << UTF8(e.getMessage()) << endl;
    return 1;
    }
    // Terminate //
    return 0;
    }
    XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__incl.md50000644001725400016040000000004013273140077020512 00000000000000dbd707a5262536a49bf622cc57c3ef64XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp__dep__incl.md50000644001725400016040000000004013273140077022615 0000000000000067be094b98d8781bbd58a687fbb7376dXQilla-2.3.4/docs/dom3-api/DOMLSParserFilter_8hpp__incl.png0000644001725400016040000002312013273140100020177 00000000000000PNG  IHDR0bKGD IDATx{TS'$@p)[QTТ?DPVQGPkY V]K^# -E\j,U!j9.I0L}I1\6>f?{gdM``c4 @ P*@X<ЭCK|||||6 r 0<|p̙OV|NEϜ9s/rZ}*@@= ЃFFɲ ֭[gkkK{zz ܹ# CCC?c&}]]] Y/}vqqkxx8.P[dW^D &&&jɘ8;;NI/_O?[69bX(!tagggJӳg&%%?~!ݽn:;;dǎ_k###гg?~p(TZSSo;vppphjjoRiJJ 5 bq~~ݻ>>>VVV^^^֭O>e˖ѣGgffFGGXb_מPiiP(ݼys'O\RR߹sgnnm"""ٿ/boߎ2119v555p$OOOTJL&3119s)BҥK5jMNNə7o"fϞ=ЗT>#ssӧ#R)6[ 'i\rLafQÙ3gfgg^/KOOύ7fΜbŊœRZ&X}d2 ˖- F={,66laaAbKK^%,{{{ B+{19QATVVN:FFF~&M"===N^www _~eӦMok.www`0SL9~W^efffffN6M.B, WPT ʕ+۶m+//9p"P͟ QLss3>}8 }jGGH$jooپ}P(\d >rJX߾}_׺u8ŋIwؿF,58ٳjP#G.rB`XxSvC`]zK.X,=qo3P2 … Dniig͚8 9uÆ rrss<77 ''9""">>ؘ!<<"&&FOpO?y梢;;O>D֭۵kٲe"""6oLjbbu֣Gx%##?JXzÇ׬Y`0f̘!''^x/a7qDriӦj~: pC룯=/~@( .qJ}Gb&RzJ(T ƝG B+P neJ.`+/:AeΜ9Ā?zרvw:SzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzIm23˅?~.],jll .X0a‰Cb/jZsBmKjimEo,b1u$5 ()JM;<<8~~΃jx<PX̏?FTðd##T(Tѓ$(0DGT*Ȉ1~P4Iw`dXd4ԭJE)J5WFFixVCj0F>݋cH&m># P!N3Fs u:# P!?kkP3KK9s!XPC{LMݹe0՟eƍTq67n6mP%7ԩS1%™3g,O(TRz@o655ZJРRs2(xxx$&&QkvuuM0jʔ){Q(Rʹs2\!>>ZOe2CnwdpRˣ47BasssAAD" Rɓܹ믿nݺĉfR*K'OԐabիW <jTlmm jF3@ UPII AϟݭfWW"IJ1cFzz:>LMM U(dN<m6laaܹsɘQF ~dZ|f7ͩb!t)ooﮮ.\.OKKsttriiir/W\qww䜤:|@@,**B) fffJ2;;*$$֭[BGG'|pRSS{zzB ~~~_}UQQ{gcc}vg0k׮p>,..NOOg2Wiii0>>便qqqԀ7nMJJ"4~uA3y]:Z\Nrrrz]<n޽d .+F]CS9511qʕϞ=sttu6fee655nٲXΝ?fff T]^999Bرc,3;;[Njؿ?-++kmmpႋ WBBBDDǏkkkǍtRDZdD"9z(B6mܹs֖ qmkkSׯ;::b~޽{Attt#ʜZ___WWgffVPP@>i&È߿_JA.kNjs٩ H$gÕgϞ]WWW]]233k6ib77j{VUU5qD_mm-A>>>eeeGȲH$266޷oX,VTRTTrDAx{{|w^&l,++xw%WD%ԛ7or8O?ݺu+Aųf͢$ njj"u5y:9:A}y}}Z咒ըM ( ;v0ϟ67lllp~@ ЌEĵk,,,BCC/^]*.Z߿OwBӧ!Ll6x]|ejXBRO<NNNUUUj9rdΜ9/x**::ѣ6*ʰ0<`hM^k7u f6)UuT!TWWG(\Lfk5jFSmXܴiip8丈jl766FD9::2Fl|{G aBBŽ;o,jӧKk׮UUUMaddTPPp\lњn"݃_GMD-.CSNU*;wDNNN؞ooذa $$d͚5d2.--mkke2L[ZZprrPx%OOOe"""?ΎΩ԰Hޥ/vssg_|vҥ2j5^9/<>L^W75Q38Fל*Jr #9zrxxx}}۷ӵh C&Lׂs9;;-D"Yj}RRRWW===...666K.خEDIIرcMLL|}}+**Λ7JPdggx< iӦᙀ Hb {{{gg7HR=zD K=ztBBuCDggMƍgnnk.#[5T*լYAL^W7c*˧Onii늨)UW3f d2V.h*_d0%%%K, 444h>j|#XO&-~F;Rammc?@= P*@N:uC n޼9m4S7n2}Kd2fˡ΂L6Mw'?k~z`i>TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ( ((S(|ڵ3f>#S tas3 (Mf*,0H@` FFZF4 p_P1 a2S"bc'IJ#Paؘ5~HyR &&,2={P433qLҢTACj0bbryhff;0@cL_+?zxD6R 13::o eL ,jHr%Bh(iu:# P! pBqq5ooC?7R===/^T*f`RKK3g:aShhh?~qYvadZ[[btX,VFD?TB7s>(TRz)iժUjƆ]ٰ mmmԚ]]]iii&L2eʞ={S uܹ WVS2pRjyyytt􀆽qP(lnn.((H$T*c+WDEEy{{ᇷo~IAAI}XPYYFm(99O?}@ Pb!t)ooﮮ.\.OKKsttriiirMW\qww䜤:|@@,**B) fffJ2;;*$$֭[BGG'|pRSS{zzB ~~~_}UQQ{gcc}vg0k׮p>,..NOOg2EZZZqq1>?}4Qnܸ7))I6f򺺩uո|2dzۻw/CEEMIIyV~=-{`7VKLL\rgoݺYYYMMM[lG͝;:;;MMMsrrBcX,VgggvvVǏ~.[VVzܑǏ֎7.33 bҥ$??!dDrQP{{;5,\__O;wlmm ׶6~#ߜݻGDGGy{{; h&èBh?loo ͞=effj5D3Xb77j7|}}B!.WUUM8w 2|ѣGdYK$۷O,T*TT*uƊD" d;Poo/|6x< Bw%WD%ԛ7or8O?ݺu+Aųf͢$ njj"5y:j)!|>Ax]__O:Axlnccۋ 8^A\v-.."44ŋܥREp{!>}dX[[fŧY%)ɓAAATUUؑ#G̙C|R=JhSR ÓZM]H!TWWG:d6H-:ߨ>}zM6FC^QX\]]!'O`wޭK&T3gΈDիW/\P$iuÃÇ!GGG&؈?vuu}ca5!ȑ#LJ ;v젾}ՕE0}tTzڵ*]) _-ZM{h{ ]ƁCTFFFܹS$999UVVb{JJJ\\)a+### @ 5kdl6-77fd2˗/oiiq))ԞTKbli;׷B{ooyȬ Evv6dz6mTD+Vwvv޸q#^(ѣG԰G@ٹiӦqƙڵ[-8G}jv5TYfnjFH|unjp>3Lը_WȀ:7gXSPR7`mmJq@ P*@@=b ,G8)55`ͯN30׮P'2Ҁ}*@@= P*@@= P*@@= P*@@= P*@@= P*@@= P*@@= P*@@= Ѓ5@rV\'g'Nt=zԐ$6ߤ6$+VgD3XH2flF(T$4 |F$T0}b3?(XFZP(cb$(0DG<$(0LlK3A4 T`0bc\ K6c؏:0@eX.Ƭ)CшjH&3L\߰R IttRBP31c\BK|0Թ4.U[[ۋ/ `AÇ:dsR_x!HaD`P'2x"E!u&L %|>ma P*@@=RjSSӪUX`P T{X3gΐ @09ᑘ֦>A˗/{CdjczIDAT`-GGGk=pp/>iҤm۶ttt ^|~\Tnܸ! $I`` D+'Nx6<0n5GCHzjܸqIIIA]6((w~ P}}=yRf̘~=駟?oS+++]]]b1BԩS]]]!\rr9^g\322 C !t6YTTR(Z-,,̨k:Y:u*B i,j!ǏݻXW& cڵ.\گ>Ƽ|2dzۻw/9>>>\.7%%իWZ}E8&&&\ٳgnƬئ-[ܹsLZ@˫4''G(;vbuvvfggku?~xQQ4Ch$Ilقڵk8]#ywܱ:>+&Ђ $ٳgB8ٳꪫy<^ffV~%:JnnnԞ B\8q"ymm-A>>>eeeGȲH$266޷oX,VTRTTrDDJcT*ŋL˩ЮoRֱEWL*!>ORmQ'i5zJ%bǎL&_sc@3A׮] x.wTh"\^()**lvyytЦԓ'Oo5&P]]-A&acMM jԌFeXSBO>=|pddMH#![,WWWc;nnn}i]W̼<2و2߾}+==]QС &ܹsx'HVZegggooEОTKbl"dر&&&Z{{{͛GMl׮]cǎӧ[ZZJUs/,,455I۷JKKk?w7z脄ߺjꤖq1cp8>L&i5[*F< ^^^j:j\nxQ kkXAV P*@@=x~P_mmmK!@a0w]*L` P*@@=ʂۯWIENDB`XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp_source.html0000644001725400016040000003212013273140077020336 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMErrorHandler.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMErrorHandler.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMERRORHANDLER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMERRORHANDLER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    30 class DOMError;
    31 
    46 class CDOM_EXPORT DOMErrorHandler
    47 {
    48 protected:
    49  // -----------------------------------------------------------------------
    50  // Hidden constructors
    51  // -----------------------------------------------------------------------
    56 
    57 private:
    58  // -----------------------------------------------------------------------
    59  // Unimplemented constructors and operators
    60  // -----------------------------------------------------------------------
    64  DOMErrorHandler & operator = (const DOMErrorHandler &);
    66 
    67 public:
    68  // -----------------------------------------------------------------------
    69  // All constructors are hidden, just the destructor is available
    70  // -----------------------------------------------------------------------
    77  virtual ~DOMErrorHandler() {};
    79 
    80  // -----------------------------------------------------------------------
    81  // Virtual DOMErrorHandler interface
    82  // -----------------------------------------------------------------------
    100  virtual bool handleError(const DOMError& domError) = 0;
    102 
    103 };
    104 
    105 XERCES_CPP_NAMESPACE_END
    106 
    107 #endif
    Basic interface for DOM error handlers.
    Definition: DOMErrorHandler.hpp:46
    DOMErrorHandler()
    Definition: DOMErrorHandler.hpp:54
    DOMError is an interface that describes an error.
    Definition: DOMError.hpp:39
    virtual ~DOMErrorHandler()
    Destructor.
    Definition: DOMErrorHandler.hpp:77
    XQilla-2.3.4/docs/dom3-api/functions_func_0x6f.html0000644001725400016040000001524713273140100016754 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.4/docs/dom3-api/inherit_graph_1.md50000644001725400016040000000004013273140100015633 00000000000000097baaa5ea5fcf98ea3e853328d132a4XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__dep__incl.map0000644001725400016040000000142613273140101020547 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_eb0099cf839cef65d350c0a3df5315ad_dep.map0000644001725400016040000000063513273140101021077 00000000000000 XQilla-2.3.4/docs/dom3-api/functions_0x67.html0000644001725400016040000006452413273140100015664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - g -

    XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__incl.md50000644001725400016040000000004013273140077017043 000000000000005f90ad55a1c7bde951f335e463039e9dXQilla-2.3.4/docs/dom3-api/dir_e3266bbc227f825a287bdb912a8a79c0.html0000644001725400016040000000551113273140101020275 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    include Directory Reference
    Directory dependency graph for include:
    include

    Directories

    directory  xqilla
     
    XQilla-2.3.4/docs/dom3-api/DOMText_8hpp__dep__incl.md50000644001725400016040000000004013273140077017163 0000000000000053b6def8cafc881e59d398ac72c30502XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp__incl.map0000644001725400016040000000007113273140100017050 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__incl.map0000644001725400016040000000156013273140100017703 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_7.map0000644001725400016040000000127413273140101015744 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp__dep__incl.md50000644001725400016040000000004013273140077017151 00000000000000703e6f103aaa18f4928223961cca72d8XQilla-2.3.4/docs/dom3-api/DOM_8hpp_source.html0000644001725400016040000006130213273140077016032 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOM.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOM.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOM_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOM_HPP
    24 
    25 //
    26 // This is the primary header file for inclusion in application
    27 // programs using the C++ XML Document Object Model API.
    28 //
    29 
    30 #include <xercesc/dom/DOMAttr.hpp>
    43 #include <xercesc/dom/DOMNode.hpp>
    47 #include <xercesc/dom/DOMText.hpp>
    48 
    49 // Introduced in DOM Level 2
    54 #include <xercesc/dom/DOMRange.hpp>
    57 
    58 // Introduced in DOM Level 3
    63 #include <xercesc/dom/DOMError.hpp>
    78 
    85 
    86 
    87 #endif
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNode.html0000644001725400016040000035500613273140101017357 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNode Class Referenceabstract

    The DOMNode interface is the primary datatype for the entire Document Object Model. More...

    #include <DOMNode.hpp>

    Inheritance diagram for xercesc::DOMNode:

    Public Types

    Public Constants
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Public Member Functions

    Destructor
    virtual ~DOMNode ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    Functions introduced in DOM Level 2.
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    Functions introduced in DOM Level 3.
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Detailed Description

    The DOMNode interface is the primary datatype for the entire Document Object Model.

    It represents a single node in the document tree. While all objects implementing the DOMNode interface expose methods for dealing with children, not all objects implementing the DOMNode interface may have children. For example, DOMText nodes may not have children, and adding children to such nodes results in a DOMException being raised.

    The attributes nodeName, nodeValue and attributes are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue for an DOMElement or attributes for a DOMComment ), this returns null. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.

    The values of nodeName, nodeValue, and attributes vary according to the node type as follows:

    Interface nodeName nodeValue attributes
    DOMAttr name of attribute value of attribute null
    DOMCDATASection "#cdata-section" content of the CDATA Section null
    DOMComment "#comment" content of the comment null
    DOMDocument "#document" null null
    DOMDocumentFragment "#document-fragment" null null
    DOMDocumentType document type name null null
    DOMElement tag name null NamedNodeMap
    DOMEntity entity name null null
    DOMEntityReference name of entity referenced null null
    DOMNotation notation name null null
    DOMProcessingInstruction target entire content excluding the target null
    DOMText "#text" content of the text node null

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Member Enumeration Documentation

    DocumentPosition:

    DOCUMENT_POSITION_CONTAINED_BY: The node is contained by the reference node. A node which is contained is always following, too.

    DOCUMENT_POSITION_CONTAINS: The node contains the reference node. A node which contains is always preceding, too.

    DOCUMENT_POSITION_DISCONNECTED: The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.

    DOCUMENT_POSITION_FOLLOWING: The node follows the reference node.

    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: The determination of preceding versus following is implementation-specific.

    DOCUMENT_POSITION_PRECEDING: The second node precedes the reference node.

    Since
    DOM Level 3
    Enumerator
    DOCUMENT_POSITION_DISCONNECTED 
    DOCUMENT_POSITION_PRECEDING 
    DOCUMENT_POSITION_FOLLOWING 
    DOCUMENT_POSITION_CONTAINS 
    DOCUMENT_POSITION_CONTAINED_BY 
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 

    NodeType.

    Since
    DOM Level 1
    Enumerator
    ELEMENT_NODE 
    ATTRIBUTE_NODE 
    TEXT_NODE 
    CDATA_SECTION_NODE 
    ENTITY_REFERENCE_NODE 
    ENTITY_NODE 
    PROCESSING_INSTRUCTION_NODE 
    COMMENT_NODE 
    DOCUMENT_NODE 
    DOCUMENT_TYPE_NODE 
    DOCUMENT_FRAGMENT_NODE 
    NOTATION_NODE 

    Constructor & Destructor Documentation

    xercesc::DOMNode::DOMNode ( )
    inlineprotected
    xercesc::DOMNode::DOMNode ( const DOMNode )
    inlineprotected
    virtual xercesc::DOMNode::~DOMNode ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNode* xercesc::DOMNode::appendChild ( DOMNode newChild)
    pure virtual

    Adds the node newChild to the end of the list of children of this node.

    If the newChild is already in the tree, it is first removed.

    Parameters
    newChildThe node to add.If it is a DOMDocumentFragment object, the entire contents of the document fragment are moved into the child list of this node
    Returns
    The node added.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to append is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being appended is readonly.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::cloneNode ( bool  deep) const
    pure virtual

    Returns a duplicate of this node.

    This function serves as a generic copy constructor for nodes.

    The duplicate node has no parent ( parentNode returns null.).
    Cloning an DOMElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child DOMText node. Cloning any other type of node simply returns a copy of this node.

    Parameters
    deepIf true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an DOMElement).
    Returns
    The duplicate node.
    Since
    DOM Level 1
    virtual short xercesc::DOMNode::compareDocumentPosition ( const DOMNode other) const
    pure virtual

    Compares the reference node, i.e.

    the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.

    Parameters
    otherThe node to compare against this node.
    Returns
    Returns how the given node is positioned relatively to this node.
    Since
    DOM Level 3
    virtual DOMNamedNodeMap* xercesc::DOMNode::getAttributes ( ) const
    pure virtual

    Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getBaseURI ( ) const
    pure virtual

    The absolute base URI of this node or null if undefined.

    This value is computed according to . However, when the DOMDocument supports the feature "HTML" , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the documentURI attribute from the DOMDocument interface otherwise.


    When the node is an DOMElement, a DOMDocument or a a DOMProcessingInstruction, this attribute represents the properties [base URI] defined in . When the node is a DOMNotation, an DOMEntity, or an DOMEntityReference, this attribute represents the properties [declaration base URI].

    Since
    DOM Level 3
    virtual DOMNodeList* xercesc::DOMNode::getChildNodes ( ) const
    pure virtual

    Gets a DOMNodeList that contains all children of this node.

    If there are no children, this is a DOMNodeList containing no nodes. The content of the returned DOMNodeList is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the DOMNodeList accessors; it is not a static snapshot of the content of the node. This is true for every DOMNodeList, including the ones returned by the getElementsByTagName method.

    Since
    DOM Level 1
    virtual void* xercesc::DOMNode::getFeature ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    This method makes available a DOMNode's specialized interface.

    Parameters
    featureThe name of the feature requested (case-insensitive).
    versionThe version of the feature requested.
    Returns
    Returns an alternate DOMNode which implements the specialized APIs of the specified feature, if any, or null if there is no alternate DOMNode which implements interfaces associated with that feature. Any alternate DOMNode returned by this method must delegate to the primary core DOMNode and not return results inconsistent with the primary core DOMNode such as key, attributes, childNodes, etc.
    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMNode::getFirstChild ( ) const
    pure virtual

    Gets the first child of this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::getLastChild ( ) const
    pure virtual

    Gets the last child of this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getLocalName ( ) const
    pure virtual

    Returns the local part of the qualified name of this node.

    For nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, it is null.

    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMNode::getNamespaceURI ( ) const
    pure virtual

    Get the namespace URI of this node, or null if it is unspecified.

    This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.

    For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, this is always null.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNode::getNextSibling ( ) const
    pure virtual

    Gets the node immediately following this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getNodeName ( ) const
    pure virtual

    The name of this node, depending on its type; see the table above.

    Since
    DOM Level 1
    virtual NodeType xercesc::DOMNode::getNodeType ( ) const
    pure virtual

    An enum value representing the type of the underlying object.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getNodeValue ( ) const
    pure virtual

    Gets the value of this node, depending on its type.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    Since
    DOM Level 1
    virtual DOMDocument* xercesc::DOMNode::getOwnerDocument ( ) const
    pure virtual

    Gets the DOMDocument object associated with this node.

    This is also the DOMDocument object used to create new nodes. When this node is a DOMDocument or a DOMDocumentType which is not used with any DOMDocument yet, this is null.

    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::getParentNode ( ) const
    pure virtual

    Gets the parent of this node.

    All nodes, except DOMDocument, DOMDocumentFragment, and DOMAttr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a null DOMNode is returned.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getPrefix ( ) const
    pure virtual

    Get the namespace prefix of this node, or null if it is unspecified.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMNode::getPreviousSibling ( ) const
    pure virtual

    Gets the node immediately preceding this node.

    If there is no such node, this returns null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMNode::getTextContent ( ) const
    pure virtual

    This attribute returns the text content of this node and its descendants.

    No serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content.


    The string returned is made of the text content of this node depending on its type, as defined below:

    Node type Content
    ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes
    ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
    DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
    Exceptions
    DOMExceptionDOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.
    See Also
    setTextContent
    Since
    DOM Level 3
    virtual void* xercesc::DOMNode::getUserData ( const XMLCh *  key) const
    pure virtual

    Retrieves the object associated to a key on a this node.

    The object must first have been set to this node by calling setUserData with the same key.

    Parameters
    keyThe key the object is associated to.
    Returns
    Returns the void* associated to the given key on this node, or null if there was none.
    See Also
    setUserData
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::hasAttributes ( ) const
    pure virtual

    Returns whether this node (if it is an element) has any attributes.

    Returns
    true if this node has any attributes, false otherwise.
    Since
    DOM Level 2
    virtual bool xercesc::DOMNode::hasChildNodes ( ) const
    pure virtual

    This is a convenience method to allow easy determination of whether a node has any children.

    Returns
    true if the node has any children, false if the node has no children.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::insertBefore ( DOMNode newChild,
    DOMNode refChild 
    )
    pure virtual

    Inserts the node newChild before the existing child node refChild.

    If refChild is null, insert newChild at the end of the list of children.
    If newChild is a DOMDocumentFragment object, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed. Note that a DOMNode that has never been assigned to refer to an actual node is == null.

    Parameters
    newChildThe node to insert.
    refChildThe reference node, i.e., the node before which the new node must be inserted.
    Returns
    The node being inserted.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being inserted is readonly.
    NOT_FOUND_ERR: Raised if refChild is not a child of this node.
    Since
    DOM Level 1
    virtual bool xercesc::DOMNode::isDefaultNamespace ( const XMLCh *  namespaceURI) const
    pure virtual

    This method checks if the specified namespaceURI is the default namespace or not.

    Parameters
    namespaceURIThe namespace URI to look for.
    Returns
    true if the specified namespaceURI is the default namespace, false otherwise.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isEqualNode ( const DOMNode arg) const
    pure virtual

    Tests whether two nodes are equal.


    This method tests for equality of nodes, not sameness (i.e., whether the two nodes are pointers to the same object) which can be tested with DOMNode::isSameNode. All nodes that are the same will also be equal, though the reverse may not be true.
    Two nodes are equal if and only if the following conditions are satisfied: The two nodes are of the same type.The following string attributes are equal: nodeName, localName, namespaceURI, prefix, nodeValue , baseURI. This is: they are both null, or they have the same length and are character for character identical. The attributes DOMNamedNodeMaps are equal. This is: they are both null, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index.The childNodes DOMNodeLists are equal. This is: they are both null, or they have the same length and contain equal nodes at the same index. This is true for DOMAttr nodes as for any other type of node. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared.
    For two DOMDocumentType nodes to be equal, the following conditions must also be satisfied: The following string attributes are equal: publicId, systemId, internalSubset.The entities DOMNamedNodeMaps are equal.The notations DOMNamedNodeMaps are equal.
    On the other hand, the following do not affect equality: the ownerDocument attribute, the specified attribute for DOMAttr nodes, the isWhitespaceInElementContent attribute for DOMText nodes, as well as any user data or event listeners registered on the nodes.

    Parameters
    argThe node to compare equality with.
    Returns
    If the nodes, and possibly subtrees are equal, true otherwise false.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isSameNode ( const DOMNode other) const
    pure virtual

    Returns whether this node is the same node as the given one.


    This method provides a way to determine whether two DOMNode references returned by the implementation reference the same object. When two DOMNode references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.

    Parameters
    otherThe node to test against.
    Returns
    Returns true if the nodes are the same, false otherwise.
    Since
    DOM Level 3
    virtual bool xercesc::DOMNode::isSupported ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.

    Parameters
    featureThe string of the feature to test. This is the same name as what can be passed to the method hasFeature on DOMImplementation.
    versionThis is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return true.
    Returns
    Returns true if the specified feature is supported on this node, false otherwise.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMNode::lookupNamespaceURI ( const XMLCh *  prefix) const
    pure virtual

    Look up the namespace URI associated to the given prefix, starting from this node.

    Parameters
    prefixThe prefix to look for. If this parameter is null, the method will return the default namespace URI if any.
    Returns
    Returns the associated namespace URI or null if none is found.
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMNode::lookupPrefix ( const XMLCh *  namespaceURI) const
    pure virtual

    Look up the prefix associated to the given namespace URI, starting from this node.

    The default namespace declarations are ignored by this method.

    Parameters
    namespaceURIThe namespace URI to look for.
    Returns
    Returns an associated namespace prefix if found, null if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent.
    Since
    DOM Level 3
    virtual void xercesc::DOMNode::normalize ( )
    pure virtual

    Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.

    This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

    Note: In cases where the document contains DOMCDATASections, the normalize operation alone may not be sufficient, since XPointers do not differentiate between DOMText nodes and DOMCDATASection nodes.

    Since
    DOM Level 2
    virtual void xercesc::DOMNode::release ( )
    pure virtual

    Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

    If this is a document, any nodes it owns (created by DOMDocument::createXXXX()) are also released.

    Access to a released object will lead to unexpected result.

    Exceptions
    DOMExceptionINVALID_ACCESS_ERR: Raised if this Node has a parent and thus should not be released yet.
    virtual DOMNode* xercesc::DOMNode::removeChild ( DOMNode oldChild)
    pure virtual

    Removes the child node indicated by oldChild from the list of children, and returns it.

    Parameters
    oldChildThe node being removed.
    Returns
    The node removed.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
    Since
    DOM Level 1
    virtual DOMNode* xercesc::DOMNode::replaceChild ( DOMNode newChild,
    DOMNode oldChild 
    )
    pure virtual

    Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.

    If newChild is a DOMDocumentFragment object, oldChild is replaced by all of the DOMDocumentFragment children, which are inserted in the same order.

    If the newChild is already in the tree, it is first removed.

    Parameters
    newChildThe new node to put in the child list.
    oldChildThe node being replaced in the list.
    Returns
    The node replaced.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or it the node to put in is one of this node's ancestors.
    WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
    NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
    Since
    DOM Level 1
    virtual void xercesc::DOMNode::setNodeValue ( const XMLCh *  nodeValue)
    pure virtual

    Sets the value of the node.

    Any node which can have a nodeValue will also accept requests to set it to a string. The exact response to this varies from node to node – Attribute, for example, stores its values in its children and has to replace them with a new Text holding the replacement value.

    For most types of Node, value is null and attempting to set it will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will also be thrown if the node is read-only.

    See Also
    getNodeValue
    Since
    DOM Level 1
    virtual void xercesc::DOMNode::setPrefix ( const XMLCh *  prefix)
    pure virtual

    Set the namespace prefix of this node.

    Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the DOMElement and DOMAttr interfaces, when applicable.

    Note also that changing the prefix of an attribute, that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.

    Parameters
    prefixThe prefix of this node.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character.
    NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
    NAMESPACE_ERR: Raised if the specified prefix is malformed, if the namespaceURI of this node is null, if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of this node is "xmlns".
    Since
    DOM Level 2
    virtual void xercesc::DOMNode::setTextContent ( const XMLCh *  textContent)
    pure virtual

    This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.

    No parsing is performed, the input string is taken as pure textual content.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
    See Also
    getTextContent
    Since
    DOM Level 3
    virtual void* xercesc::DOMNode::setUserData ( const XMLCh *  key,
    void *  data,
    DOMUserDataHandler handler 
    )
    pure virtual

    Associate an object to a key on this node.

    The object can later be retrieved from this node by calling getUserData with the same key.

    Deletion of the user data remains the responsibility of the application program; it will not be automatically deleted when the nodes themselves are reclaimed.

    Both the parameter data and the returned object are void pointer, it is applications' responsibility to keep track of their original type. Casting them to the wrong type may result unexpected behavior.

    Parameters
    keyThe key to associate the object to.
    dataThe object to associate to the given key, or null to remove any existing association to that key.
    handlerThe handler to associate to that key, or null.
    Returns
    Returns the void* object previously associated to the given key on this node, or null if there was none.
    See Also
    getUserData
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__dep__incl.png0000644001725400016040000003704113273140101020437 00000000000000PNG  IHDRAhbKGD IDATxwX$bP#(RX,wbg=yDP<94E"*tdr9%$6lfg1H @AH\ }hl6h@T*uddOzŋnjCR03f@ Z;v?Wll,! :@@H\ }:x̙3gꂂ/^>>gΜihhL~~S]'@:x\|9**jӦMK,a2K555޽=y򤷷wLL!*|Çܦ^x߳vqƄ PAAӛG:w܎RRt0sݻkjjZYYOQQQKgϞG700ppp ۷ 666_'&&2?^:!!!p FHudɒRR:aӦMKNN&6cbbϟO۲9sbbb1crqqqW\ᦉGDD /_9s&]ZZ;w<''}ݴi.^qڵk ,~x葉nΝnnn/^7o/RWW׼w^O<9uƍCBB9ʕ+߷oߓ'OΟ?/^bn0u. 2zhb4h uuunM[[ۈ~mРAw>6,Ybee[榪:qD|ҥKufccpVCeX8˻\~]AAA.ʣFBUUU˖-300077| %̕RUU޽{vvv }nrMuuu<@ϟ?>>>zռPSS!DsWׯ_MLL@55Gy}ڵ ޥG& q (2q-iذaqΞ==B]pޞ[2hР/_>{8U6gϞb0;;֮'^M҇Ǐ>}js8;w^~}ҤI[lFoj#~ Z*W3WEEEYYYIIɋ/mVPPAwߕ_ӧyyy?^l&bxsss:-WRR0a®] ^~} gggnv3Pn!w =zT]]bh4w͛Ղ?߽{2~xs+W$~WIY8zw!@f'sh]vM((khL*.>fr!*ilDtuuɎ5Y^ꤧ9:VRҏFFmٳӦay@ssHΕ[T_߈RWWl>BÇƍXs!řqɬ'NԔڵe!6, -Id{x(,ll h4ZɃuueF6wrp[(bTf.xYY,?cHR)K}Gc#DF>۽qcdQQ[L2_LLnlwv];wBy!,V#͹xС?AϩB2עSloZG2#h4j9_wޫ )\83944;?84/B,5}UZ4e+WPDa.haetu& n~څahٲ͂H \IIV Jh|XKf!0[Np̕_NbT*)ԭ[&s41&Z0auԴq dٳm327X!u !bXaB jpS/W;5@$&s!}|o2e099*B;&LӠ(ht+99jHBkkc/"!i\􃧧}b~pTSSlldwfP׮?~ Q"'G=}zaZ'|);@̤o NLJ Q_x<=&>:zte~-/tix+-eΘqLNzJ:%eŊvbGՈeLfw0Y/~HY抎N('[S]]zDIJ_+. !K2Wddʔ) bX_] $̕ŋ/nn|&{L2WT3U3g͆  d4e7_LnMy ȑ_|۶h̕%7d^ѱ_`༿J8|.ٱEIMqㅡa !&M|#G> ;">ϸLo2RrVc2mVWWNv8t-ґ^hd/E˫7oRSSS'\7nӣ[Y";6lpe^,Ͻ[ jqS"[xzwd@W!ۂ"IV/ ~}dŋ<}Cv8t RnfeeDv -P~5lS*b ÷ȝ*2s2gʚ/c#;˨˨ r=DiFv m$=zxz(,d2K3Wl{++#)ZT]]…4+pM=z/CE^*&љoc';veT)\uS4$;eTI\}8ki˨ "<ɑơ"/XFQ̕5b)فt, InJI֫WXF5t(i:XF!p,wݺ d"L*"ǒjc22 nndeF0@@XFu͚** *#׹^33QPI*$իAɎBT`U:IB3כ7lB<˨.Xp:3 e$q8VVV]R47\0//O{D!mmua5XPPwamm]QQATUUekkrԀdzlBnn/M?zYZZjee9s̝;7o tM:+''GSD>%Ll;]ݵ5DEDDZ'++pF}vb[d:ue˖-WCCC]]]mXӓ;??qƵ&ydee(&O!O#XwUQQCQE8aK.y&}v*ʭFlGFF?`tٳ/_fwq# ,400󫫫#777޽/6lBHGGp 0`رcoܸA Ӹc=իW||7@]]ݟ^s355ؿ?ͫWOKKk| ;rh ٩{olKMs.SRRt:&$$$hkk{NGG8WTT(++mԵ222,,,vI9{SN!JKKyω?:uJ__Ν;111Dk?>x𠠠@^^~ѢEyyyD-**Wk2e |2Bhs„ ɦ;w[(H9h%뷹-5E455X" 񰰰sB|mhhR^"6oSSSb߇vf pnkϟ222p-dqqqo{x88ajjʷŃu s"#DZVVV>}Bt:]GG'==It{TTMĕu;;B6Mt255,,, hR7Ggff؄ h3(|r̸p[PH\RP׳D8'N̛DX,6Jg>hOy^~|-gbF~~>o}"zxx h3WAd!233R!B!qKIIo߾͘1Ǐׯ'^ھ}{QQ;wl2T*u֬YZZ'i޽qqqKLLصkw^ի?~իۻ1Xbƍ+--}Ν;1 g2^ 򵵵;v@UUU/1Lޚ /$$Rpk֬NIIٲeBjsqqtuVTTZ:waa!o&a eeٳ/q'66!t&8Ξ=[OOOMMڵkܖ͛ףG]]u6|f=zO>ݺusqqzjϞ=q߳gNӧիWu.nG޽a``ܹsX,֨QTUUTncx-6?$$HSSsժU| )E>+o*lf[2~zzz:wҥKC !1$2\]$n**b222|||jjjmߓDVCUNZPPAv dڸqcMM[qqq޽-ZKvP7o!B$qB TJv dh{ٳgفNKK+((-čB=x&K37(K3O-ebYTTd$ =BȨB˗RsVn9zKٔReFUfcTp.`2 UTp*C P8 " i40\NCbX.zA`?\֭x9TQXT\V ##F2WibVƐ!EkŢ~pND'SYQֶ `hhm'KQQNOCjGO<S;VNlmm(+wӧmfpa5*aǙY_jlFR&OvX;@$:BL;;%ʏ?lOSXYYbpXBUVR/> %NmѡQTc9>>p6$$s!LMSR>ETTܸ…'韩TJc#!b3(NN&Xl) ո1c ucLLz޽~޼S_ya20noo"I>*^tHKc@8iFݷoVg`0j96BВ%uuYLCC啮)> oQ(ԁ"Tɬ/,ZGl6oP'kt6G56r>.;pVgZ㥠@ v8'.!;VOJ E&L!%ﳄ(8;==:Jӧ좬'OguM. \R)EQ'NBƬY;_v$գj*RuS6_ #*x[TTnb|ʚwܹΟUR#ll WSStwXyҤg) HhBjK9BL{xFfk++ܕfֿ;2/ׯT0LKKmܗ̴n30pBhҳvv̥%]#hH3n Ô& Y,vttڵkυ>;mmWrn>qL^6uꐈe>>âSGy"**EX_*Lb?||ف{o8p)˖9-Y׽{X,6a5km`FF~1 )))~|HXXRu53DEr3W߾:od"HMMɇߞ?tt+PUUܹ%Fy}:a4Bp6~m 焄޾=zƍOI;Zq|7m`Hcɬ7dvvŋKi_iiL!aFX%%9c=_Ϟj"kCC߼ڷ0 2Br3Bh֬?z:xЃ@`0꼽?.xqR)F -MHLN&~;/#KXXRttŞ8gQf:]Dg;<}szi +Xޯzll$'gbz$gƌc[5{UUݹҥgg9zad}dDgȔ#~4N!*+>]]h{H&XX744P81u^^UUu2rYl;谾}u`:+<\ff Wuu B  :ut?!!0:N%'GWk\,df~XJO1c4<{Kv bbs'O]NWްᢕ΍#߾Jvh@Iʂ\KBb9+W=}12r91ьt{nSc,b:CK%% l3| kGϹB/_5~~ [biiHb$M_/u YAIz4Ƞ2cט˗Y(ӦMdl⑖AO:k' !dgg) ŋtpuTFĥ.KpWgvqRM KKW&社FpwBy,ӿZ~' $oPZ'qvaJJ|xjkw `:kW&[7e33mqOyűci`طkf..ILT}o}i6M=xz1cYsNMMXY^+ҥg~~WPm-)aNxx@>YU?M`Av,Rnx!'G>jl[{dC F#L?W (ǎyKKBu2hA06Yetd.==oEٳ Y'NMY ݘ1<LgIґBcl˗6]/"2fLϟKssKDtVY"E<'XD8G׭(EX]]C8jLg RLՕDto^@Dh4ʈRD*`:TEQRקO{Xrܐ!޸H$RJj2BhXl?9y^z[7A͊,,J"*])s99Xl!zx.Jv ҍ]J+>~|HXX!3QNwo~Jkl6g„Cz8sfP$׏?iν{~d";`:Ēs.ַogĹsIE۶MJk%RIY%eiӬjkYBN`:t{b޽{v5I KJ)\ZZjÆzy!֮ $NgݳgotWZ"e !4}{:Hee_%\9N]]IXI.D*}|_zCk0U/sMj11;ș3T*5LXQID*`:+Y/su]AQI A" Lg\._Na.$1=u@0U l&*djjۻݻ/3.ns>Z榤t"@TW7nۖl@33IvvvƝlc䢌RyyԩJJ}φ5 )55WWwmjjn{wOV3gi(Y[s}Μ9H1PTT{Ԭ+9|rQрz'k!ÇojM6ىpxxxηTz5 Hu.œ9C^}d4ugٳm׮czĽ{I_E+p!Ə Ҩb ř !5,5۷mU^}}ᦢ jҝF451_mg:]Ȩxϟ?Buuݾ}aXvv6Q311QRR233۱cG]]]`u6eʔ? 7Zi$QTKeggcX`r_\̅a…UTԴZ9=U/!'BbbbAAA^^ޙ3g uE?OMII9p@jjj@@@xxߒxTyyGwjժ˗/W^oׯ_8pl!9TNoڴIX$Qɐo1bج{BYYYM3z۷~~~ L&ԩSľ...[lmI:݌ի`Bm|˝7ZhV;uLYYYg@ϹB g۞>Q[bii(`0 [t͛7Ͱ۷SΖVQQ #6E..]4{l]ѣ?}ķ&/1q㆕?p^z_~}{>wgXMj{LMM544իZzu}}=6zIA1^4?\E'''-π(魻w:o|]mvgSRRt:&$$$hkk{NGG8WTT(++ >߽{W___AAa.PzzzUUΞ9s- C^^~ѢEyyyXQQ񯮫  N>MјL&5kϟ3227o̻Q)S0˗/#JJJ&LLNN655ݹs'BVI1࣓Nu 88/tҶBg@2s朘3G==][YYE)OJJbŊƏ&O9㍍ɻwﶰR`߾}d2lv\\,qLNNСCf8޿񘘘!CW8qŧI8GDD-K%c*%G}_ 6lX]]][zig@GE=*lBa!CQQN reee!Duttxp7ݣpo˰ŋCn۶-##c˖-7{9!66!$//bcc`B>LNN600ptt|1BA߲?M%Wszzz!b_.333^ĥ %YTnpؿK >2ƍ`b"N7Q'&OLlz{{޽~pKFUUUj^^^/_$61 8q"+zxx$''GTp8QQQeee/:ujYYBHSS ˓yj?LcRd" >m<:~L&Jg@F2a捈La0v)*ɪ/߾}Ϗ1cǏׯ_O}"gg;wdeeEGG:T__ٲeݩTY|}}.C4Υ:|OOϛ7o$&&͝ 򵵵;v@UUqM0 ANNNYY!4s̀O>edd?~I!!!{_fMvvvJJʖ-[4J 9wGZb[(K)RYYcjԩ8E̝~MۻܰaSSSݗ,66!t&|VccΝ;dlliӦ&;6wȑݻΝ;WKK>}իD!XpF=,YR]]d/LT 122\jUmm-Bd_璜c*%GgGBH^^^G}ueA6oz(3>~ ?2?y66Q:#;;r X1?}ddHXӧRX'So_#1فRWWmz˷*}d*s!/vx݇EdVPPP[ g@2 &4)WTm %$ZPGDDWWVT- ֯}c?D[BRWޖTŋ(P( ƵDWSC8;[Y[&5 z^ne,YQ@=B޷{gyzڷew^gfWWFIA혦Ofc^h˟O^jKWS2h&|gԨ}..G\I7n+"#cؿǂBPX@ŐDMϹB=zzx؝:7ULM<ɑQqc5.b'eoGƍ贜b}} AG̱3N64)áѨݺ)";;rc"dʕYl{?yCvD~ŊsUUu|WQQ?!k5aqY%%eS(M'FJ]g.ccM77#GMn=th﨨:L ~XVV%lN_lڞ\]uFn2;WnnxП.]Z1b)AU]맟9Ú, ;vg kb ԩ/oz8.B+W|ѣOhm4#j[2֮P_b}^| IN&,@>~,=?ysL̛ǏȎ#_Og21 1vm qIHXAsLLzN:ȑ )&gqqϟO>zt/eG0 Ð ̇h\d.кu144T{t#jRڵNC98UXȐ KVu"aOC*(d&8/Xp:3۽{~jjod0jajK`H(Va9aaIOnkZ]:y2nϞkѫllɎEA:h!dh{[/ՕSWp&;V}[ ??WH[ Z\R{өDv84TZ3ks!zP]xtHȣ7oGvD-ڶ-yRH[ .x΅b0pctKuB@3,+f.P`$SI _AAӭMv,$ꢙb/?a6>SCl83y: ̪ E3B˖OCɺNcw:I'"@u̅㸳w n^oiiHv8HI8kvXpٱ$,^]7s!RS?MȑfɎ!i;CW:͊eccdi+!!ӧ##By:ѣseO5\BG#G~uB K.}΅256OBBqeٲ BW?B1vZZ޺X,l6~y2a\!-- ޽*11YxH[pιBr{Ϟj));4w'kl[q+\p 2?6o:{6q߾ 8R/Æ Nl $,@\`0Naii;Օ#N$,@:uuE__?g_~CN=zmt*iI[p H8Yok>&O }[0iґ'Z5Nua ?Ó6n8P˔N!aI?8@VV"| ne~" aٳJOl(\.?ԃo/kp[NyĉtǧOFC}{pp;d.~d\ڷooEÇ;vN!a?nۧcLI8sw)$, { s(" hqqzљHYaZ9AOaۙ/?&Z tq]]cpwSX#YR s"0}7tńݺ)wܒ -X0j˖) s渺1_۵oCC)Rkׄ)$,Aj۷_'L8fs\Yeo߻;y%<< Z\ׯE˹*zzFF6ZZ5?׮**6jjij}ȑη 4̅aذa jp0#ۮ@UM^UKrr,;E2WDD8$Wdd,;EB sd.>].sa<ϟ_\\[RMMn߾}}̚\wuu0,;;yG B2B(11 //̙3 ںx6%%ǏgD/^p*// +f={;99EGGѣKwٳ]\\;şO9s0nܸ(nS׮]st]v銙aK.y&}v*{ UTTˆMwwHҥKg{LMM544ߏ0իZzu}}=BQ[dEW\!33> ***}6dHl ;#G2LbXYYӧ۷?~-[7nܸ~۷g@jB^Rf͊Dݸqcȑ=z\B(2@@H?AIENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp__dep__incl.png0000644001725400016040000004376213273140101021247 00000000000000PNG  IHDR$\k)bKGD IDATxw\7E6 SQ[QTE)N *X:ZGUEE 'Vpr1E-#@Hr?4B }2}H!@D@A vl$bG%: DGDt FZř ̫WBld#LMMoNt0?3!f@ ;H6 2mɼe---KKK///^acccHHHbbbqqqǏpB _H$^M6=<44aժU[n4i'OرĉW^^G[[[ȘCCCuuuXa슏?.Z+ $YwQmmm.[PPpe3g((( TUU===uttN>t2*))100MMMŗ -Ztȑ#G*((x\]]Sz:8&TTT444믿jkkf;wNEE% `zzzǏ *))u^:..ӧOx.^XYYĉ'O/\E~~~^jhh!e0Bn ǣ!&lH$Ҝ9s_cbb,Yzp˜I&R'*S͛7ߺunڼy3*H ;[[_p!zj#~RRߢO.X!?,^={eܹwﮫ+젠y͛7/((fqOvBʕ+u={vԩ72!kkkW^>ܽ{ BCC"""O8qg׮]۽{]={v…:T^^wİ0ǁ'N^ 7E#51$d2y„ qqqJJJ1 'ɼijrJ|Jnݺ!DO>)''oqBxy~~~7n|wգM6bu455===f͚û6mZlO>_7Z|'.];wŒ3`0P`-  ـ Բ+dgg~4iҾ}VX޽{)))8q"q!XT*pL&а Bj;;?xIii)0`咒Vӧܿr!UUUq\|!tuuy5544MTHLp ðׯ3uڴiΝ F+177ohhHOOOJJ7ӑ#GVZeaat|:SSӎ;.\xj-WVVvUkkkBH]]_FSVV /,, К*L...-**s0 Sa"@2AuՕ[n-..vvvtҪ?ѣG^^^3i&&&t0 ;pgϞrvvVUU=|p477l*bK&!j5/n?<q֭/^x)Bhyyyyyy*--[?~SJKKsss7nx5ѣ?~|mppxTɓ>\\\x w  T`!=Fuk׮455-,,N<;}$//ɳgikkO:ɉF0yy޽{7))̙3T*&L0aB[(((xyyܹw~ԩS7nann>7o !<׮]vuuRnnncƌXѣ}D0agEEBhڴi6lhll:uBϺu=j*6e77Bݿo? ԢSYvV@ҐxV4qvv.//G tQo N;?ܷoK.:@:N;H6O>)! Blh%SB"@ ;H6 d@`R*++54`))M BɈN'!H$D|BAT*N'KG= v>l6|W6q8cե*)u߿weee}h$餧? a\0ͺ0 !grNi c2۸W/rVH$ʬ,&mWPWw|<(aa\WiW3ftgwNȈjj}H$2DAB"I$2/P }ܦv!66UTlYkob;mھNqҲ[$H#:Qt{vA"IsXh#8jԠvInnҥG߼)"вeP(|S(K!۷ŎG. SZzP7wV\HH6?fY67 >+E"H$䈈5-%n =i7!K&vLWtsK&9.B(6ĉ{/ xfT?.өTMS;d eǎDb_(}ȝ=ddr~c67sΞ}dIg9BT*֢FAA뢼 .r1 ޼):sͱHv0m;;uuMx8MNֿZǎH+L0,)KQQ/X'XOo(Npj7ϑ/<|7tǏ(Pjj}g~혎fֺu.ܹ"8tv||6Nfoo5u^hmd#\yq³r#~NN#Fkj*޿fѢS*o''oz%%Dju@0@ErVov_C@&0 /cP>矯a )FyꆘWѩoTFvvg[ӻ!H8H6}ˋ'$䨩;wh33]^fɏ M YNh n?xB!>AQ[|Duԃ_f /_>_Qǟ M1bL;޽x֡Ѩ.X0r 3:"FVV瓰FSgQ'<^|Űa:gθO߽+Y pNMMYYY^$}4XZngحD#" گ-U/_~:=P__ٳ디DGFE$%WT5}դIp]HH6ӧݺittTکMѭ[kN%㹹lgF̟?2 ` rEFRWxKWWX,=7MMu~7𬣤YHH6Rڵ3g}[labsG/ Odd8vzKKQNX8}~*2tŋ#aU߼oQV=md % H3gED$ah|809gΡ*|D6L'&O}{,deyy디z/!VݾgT{{ɓM::& F>sNƀ˖}2ˮhn渹*~g<0D&wY+w.r/f9s뫅#}AA;-Δ)&{d#%? kmOI=0 wf\=lBر-//sޢ(d,,744~wJ=2aKyk[>|YүٖF MQ}Fviӆoۯ< ?ވWxV:vp.N##_ԙ3y% 9 ~{1u9ޕDGDF.V5|lz*.wRS Ə79c;wF:_ _OYO?Yjѱgk^ښC Mp/_~w *]r꿶msͮ͜;q"_KHk u\I+S1rD $ݼo2'S :(qu ۯv풬V;v\;{_}7aPc<\ }} ɦxݞ=7 g,UO/Oht오\0lݺ w7`AY'"")?SVNN#:s+DM]/?觟HJJj*ɼ?Xs3gѢQQ]bIIyQQѩ5FF-Fh9l$Zyy}ž0fL@#6Ν{^-;CmmyGlndD)_I)-eYg b'O>8|8FA?̞?\ u] Y(-;$!=;u_Y^^gGGA d# 9ŋQQux֙?4 9d)-興$ӝ;ՈHNޔ|;ٳsxYڵO: 0K)FRܓ'hi)8y1DM( 9Ļw3ꚬ[[ji)l$E]u6WOY"$7;GL;w2:s T$:4ЃA!Xs3ɸeiCC-#;Q=hg45>|rvzC :: ^n~t}YHB>ydygT޹"LbB@ و mz?ZEk0ٳ>|YүٖF "`7HlD]hlK!> K'ov>SGʻw%)/˴UfͲAa7n=bD*S7; &{u]{SjkkYdU͜իMH ^'ovL!<\W:cу M47s<0ڊW>VTQW$cR5y]=C*UNt%IZZjjD#Z$ !rs˽͛7b),,,3f'0B@@@aaH*,,;vHZdz;l6ҥK]oJ8YYy!сH%H6P[~f@w1cK,1Ж%H6r1/s55̋WE#:I ĉG2]R&:a`$P23K~ |-[|||B555W޾}9^ӧEEED<_ʦMԑu}pgtp8r;555yxx`j*kkk !ūNVVb]I޾}=c <5KKKBngx!8EB/ ŋXC\ mۆ7~x6ͫPWW7pSNnٲא3g 9c]xQ$ B#֝֝,(#Zz@:>^OoW;_vIIIT*u׮]rrr`O>aeeeջw~޽0uuuo!Cڵ 0E&>|Wx왢b^*++tzcc#+۷q~ܠAΝ;}hcZƯuZ׮]322۷wccBQ/D0… r~bbbZ8qD|ӧO;}t[kbcNO EFFTVVfhhXWWܼm6}}} ŋWUU[.]a&jllw DTo'H6P]]of֭W:z6oތڹs'!B(%%`dgg;::90A CCCBeeec0/_FUTT쬬fž={,--{ի/_kg޽CZZڈ#6o\WW'''T\\|i*ZWW~iȦExӧgff&$$رC`:lUTT0 BXɓ'WB۷{%am%11LwZ7|?D|x^===y߿SUUMHHӛ8qGZtgCq Ƽ[ ,XYYYC AׯkkkޯNNNEDD,X3Ou!Qd W^yyy%d޼yr^.̋XZZp]200ģH괋o'H6_}Qg߾}&Lؾ}'oX[LrrcڪzLd@@ۣ0N^^~ٲe^}T444x&r+++WXaoo_YYWƇ~Q'BO !Z*L?~|nnn oB~޽q>~8&&fܹ4.{ zu'G6mچ ))) "jiiQ(\ל]]]|ERV$muŷ$rs##_n8S0bŊ 6hiiy{{VSSŢL&sZOuuumUSSu_~wou5%%Z^;?C~~~ZZm`` D>}˗ Ţh***s1Ç fpppMMM۸nݺ-[ ,%%%?~|yx޶m[YYԩSo߾uկJWW.BB̟?sњ=YRZNOCq\wwwooﰰ{EEE!/^?fddddd]6??og /"FeddOnnnm{;I[vy72iÝ s $$DNNݻwϟ䈈jjjǎsuulnn7n^]|_p8%%xƍw+KW޿■oө,!Ҽy#㱿z]A׻w`@$!._N122 =ʼq#-5DB$"X,6Lk0M566#P]]cnn!_^ .!!ر%D99ew )CBɓ˔i044aL&x 0 EGh)SL3RR>\`0B,IQ c3z`aZc؇/ދ:^dSllLDSu*2th?_Bv³z}{,ޒ@:D":,J>B:yrwin>[^[(PL֓ͭ[tzO=SWWطoaA$i׮ x@.=/+c_rTQN,YO6?ިwy a(]]XSiӆ {C{нFeHtin>{U GQ{#ٸ\,11NoTâSmlWTݸa->:TB+WN0a]RPP)06$LO)QtLmm㯿^?>m̎s[*fjȑ{6[D&ѕ@vMi)#;_HN_61$d4I&̱hVM~?UXl%˗,Mvӧ4eԨAD"6{Dk?VKKI;;rv/;v?8rx#M2lTz{OMu+ƋN̹円Zzz kdwӧ_m@t_bcMߕ+'99eC;$ɦ&/\“ ѸvmU眜FݹD:-4 @d4ZbbJHt mz5L&ܹSNZpB#C% =pܹGLMu6u[A!6##99ekքfflrn=7Fus'G6͜lmmH$tgP^^7#oL?6}+w۶ 4"S>x0C,&W> _e[wL&ED;v斏gH`i%'L޾-62'і݌b[kȑ'6  ۠DOl޾-16&: Uz_{8-Z4pPi)NA6lG`锻w$! rsB0 2wdSYY_VVKMEE݆ ƾqL[ Ht )$sb11G6 4%"bу -Z@6\yXYY^KKmjbu#;;}zws_MС_H%L6%&&m5?V9hͽ ݻiӺ8"s޾-sh? ߹'0@Fܹ#Z_߰߭[g)M_!4@Ld+44  }ݺwQQו+kGO{WDMaaBH__w5nllӧ.X0r}ȉ;i%[ɦD"計k׆VT?a:o,,$Τ)#WġJCCwo<3ł:8Qԃ2 }\@RKl +TǏU>>_߸qI˧rrʘLс%*q\Jٴ)o_zAFGBMNTǵ7^Zꜝ{bAedOr>2wd+hk׆51U/=ΡJlLVUUHٰ;2`zL4zUb%CG6u}:o|jꇭ[X1&lb$Cӧ:Z4I[[M_FB2$X2l::ѸeKիnӥd%'گGsI70*+䨝V}$|Q 5l6 ҏ$eᦧ ^2tdS]GMvvڵ%۷;\9AL&H6q,466޼yXx.d}JJt??3eRW$ĨQѵ^WP34CDϒ͛7ϟOT(F"H$rllPlvg\E%* . Z/_[Y 䧺gɆf#0 #(IΝ;MNΟ9\@ /b099e0 Ȯgr1 %鏬HH6ٳܡCu H6+>>{!DG N6/_R###tzzz:k}}ƍ---F{n|Avv6~ m! рE~DU<]T_ߔ@&txR÷lcccRSSz۷#jkkGgϞ!Cdddlݺ5&&&&&FEEeӦMӧIE/77s GgNO7͛7n܈_~۷gΜidd󼼼` ={t}\'/rLt ЙdCCBBΜ9{gφh4O۶mP{p>}6nxOCEGG>\^^^[[ׯ_խBGFF:TSSǧ /f---MMMfPTTE^_].䏿zٲezzz~~~!ty55]`w500PUUݽ{7M1(1c `|.^آ7oFܹW7z`twwPPYY>4%%sxK,YtiIIֳgxM>=333!!`ǎx̙3߿_WWw!--mĈ7o *..>}4JXȋ077S䤥رvUUUNB}~@1˗/#***ډEa/aL&kDWdr eѢEB{R'JEmܿK5é#:[panJWTk}lf͚uem4e֭I }&ѱtҨQگ:m)FigɦW^DB/йsOr ::*DG$bWxw:сd\Aٳ-BL;44gc54Ə7":dBc()B57s7m wp8}qaWprE | J ð& 8 Ϸ&:dٳ-_l޵Ɯ9 ""tMLDO$M8T^֢ð}|Fʂ_b_t:u4W5lns3gG؄/fGG8 $Yr8_H$

    k##nʽ0~*ѡu ;d>'@8d UWW?\-;=z &;w2?94 oΨӧ޸;lXϘpXUOH 46ome#X,%CbbdA J>qbY]]%cVVGH%H6T|G`'Nr8ロH` H6]rY,ϗ@eeɓ֬"OHElD UYr?W] و܉^nܹ?]^$$01y߻{7;=pv~~;;;d#2nncF~}XAAeSvrҦMh4JO֬Y^~&?"&ƟL&/ 8%yy3%vE/?ܹedd#bݷ7oݻG4u0"A%:)0ɓ6Lg@ qt˗׊q9҄IDATf#MM9s7Ջ&1 9󠖖ҟm &pM,'N,#ExTTJFFͳD2 $q8PasFD$;F舰Y+H6b4}ي7o,UǏVU5l<[T @7d#^[15JJjYFKK@d#^4%~~ΝQ(@FttTaa ]iŋWm#'= }&w8y2.*{33Na^hkDtg=#h/HImM7PG.b2Yxd6B_A>}*.y3GZ{ s[1&l֯__XXHtAbdT-d} C}uukXG999999gdC"ƌSAaBD"I+?vK.gADG!=`g:;H6 d@ tLvv6DĄD"egg}$QQQٴiQ Pss tuug̘CtD&H6g@cǎ]vڵk+V :"h$~nUUB(,,Ȩ=zDQQqرv}EGG>\^^^[[uNp8322RTTo={WWW/[LCCCOOϯ!D"Μ9cbbҷo={_ RVV޺u+G㓜:w޽]ddСC555}||bL .^~%K,]DKKٳg8qBSSʕ+EEE7nCeee;2.Wtss:ujNNNZZَ;]]] Fpp0Bٙ`8q!TQQkfw٭Ύ`\|_ u陙 ;vX]߫F}alUUUgaa555 U?O6MMMo޼p8<+waddԺAEP222+W1'''cbZ,7o>B^^^뭎0kᡦ.^h``  C4ڿTTT<<<^z兗ZYY*XXXN̴ ᕓugȐ!x!b_QQʕ+Z<ɟʆ1/ *lUPPpiӦmذ/MMMUxU-0Lgggcǎy}ҢP(xaNNP\lYJJ BH[[{ɒ% 233lV! $raaa݋BGFFܾ}{7bt:ܾ};BZm۶!h4O^^^FFO?$5q̢?믿FԴu벳lٲhѢv @d\R|}}3D@,f@ ;H6 a1"3IENDB`XQilla-2.3.4/docs/dom3-api/DOMTypeInfo_8hpp_source.html0000644001725400016040000004014513273140077017512 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    DOMTypeInfo.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 #if !defined(XERCESC_INCLUDE_GUARD_DOMTYPEINFO_HPP)
    19 #define XERCESC_INCLUDE_GUARD_DOMTYPEINFO_HPP
    20 
    21 //------------------------------------------------------------------------------------
    22 // Includes
    23 //------------------------------------------------------------------------------------
    24 #include <xercesc/util/XMLString.hpp>
    25 
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    35 class CDOM_EXPORT DOMTypeInfo
    36 {
    37 protected:
    38  // -----------------------------------------------------------------------
    39  // Hidden constructors
    40  // -----------------------------------------------------------------------
    45 
    46 private:
    47  // -----------------------------------------------------------------------
    48  // Unimplemented constructors and operators
    49  // -----------------------------------------------------------------------
    52  DOMTypeInfo(const DOMTypeInfo &);
    53  DOMTypeInfo & operator = (const DOMTypeInfo &);
    55 
    56 public:
    57 
    58  // -----------------------------------------------------------------------
    59  // All constructors are hidden, just the destructor is available
    60  // -----------------------------------------------------------------------
    67  virtual ~DOMTypeInfo() {};
    69 
    70  // -----------------------------------------------------------------------
    71  // Class Types
    72  // -----------------------------------------------------------------------
    130  DERIVATION_RESTRICTION = 0x001,
    131  DERIVATION_EXTENSION = 0x002,
    132  DERIVATION_UNION = 0x004,
    133  DERIVATION_LIST = 0x008
    134  };
    136 
    138  // -----------------------------------------------------------------------
    139  // Getter methods
    140  // -----------------------------------------------------------------------
    149  virtual const XMLCh* getTypeName() const = 0;
    150 
    161  virtual const XMLCh* getTypeNamespace() const = 0;
    163 
    165 
    184  virtual bool isDerivedFrom(const XMLCh* typeNamespaceArg,
    185  const XMLCh* typeNameArg,
    186  DerivationMethods derivationMethod) const = 0;
    188 };
    189 
    190 XERCES_CPP_NAMESPACE_END
    191 
    192 #endif
    193 
    The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the sche...
    Definition: DOMTypeInfo.hpp:35
    DOMTypeInfo()
    Definition: DOMTypeInfo.hpp:43
    DerivationMethods
    These are the available values for the derivationMethod parameter used by the method DOMTypeInfo::isD...
    Definition: DOMTypeInfo.hpp:129
    virtual ~DOMTypeInfo()
    Destructor.
    Definition: DOMTypeInfo.hpp:67
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.png0000644001725400016040000001165113273140101020354 00000000000000PNG  IHDRp!]#abKGD^IDATx{X'!(A h1(rP\kb(X(A-DbQ(OE[h ٳ&EϊRݙɒPIPuPO2z LhR$Ȥf;v oH=߭[pbL>kkk#=> &*+dx߾}RF~ L d!x3fX`A`` Č<OGGtrrrvFFBڵ<33/ `Ϟ=;w'$$UTTrAAA933S[[[hnn%q H$JOOy&WWWrwwRWN}7gp zijjJ$*++UUU믔ʨ(* hmm})vѲGllŋ{{{uuu""<G! #%%%7nXb쩘744tww3Ao߾SNo7LY,455SN1cǎ}'l64>>`bbR\\*--]p!v驢HLLTSS[~TjjjgΝ=#P"1;booq>/{۾zzzL& ܹ#lv@@@SSSWWט!gDP֬YSVV^v P ]ZXXc[a%%%XeZPPp邂PxEܽ{̙3͛7K~eeӧ1NTT;(\nVVa&rrr4MII =wtttttZͭ?888_v%pE"ӧOUUU˗/WwuuMNNE"Q___KKΝ;uԾ{eff&%%uvv .`KJJ INNTBRCCCWJ\UU&H$zeJJʕ+S999</!!!***--?<<|ڵ?#G'N舏?|pEEٳgVVV%%%+**,YBܹP===^:77СC{o$k1qw E"U* ޽kdd4m4|eAo*IcӦMvvvBpϞ=:UQQ?twwcv6ގx⬬'N]zͭH*[[[ggBWWWTAAm444tuub1 "N+(( ]~}֭7nĆpg}& ?~ (**Ahd xzf 6mڄ5Jh|-|=.ESS@YYy&&& ءEdddoݿ?:::88?z>hGD"CMM @dvttyfddmPKiigzzz||T&GSNNNXp%%SFGG䤥뻹-]T H$;::0/˗̞=4))ihAGGgf٘( GO\xqٲe衵S%TٳgWȨrǎh/_ rQQQ~X,REPv__t TDD:wS(%K*((\t A hTm```@" ޽;77WUUJxYfZZZX,>Ull,زQHL^755̍F2o>uvv/^TWWٳ[=-o^^^t֭@߆T33cǎ7յ[NUU5&&fdbFDCH$g455ϝ;N2eժU+++x=:y$68Iׇejjٳ\ |^XLh4eLL CwUa,YӓnkkeK%seO\\\ssrQśO[lA \.711x[ZZ455\\\*e^^#XXXXYYU4-88xffffff#%1e777++###''+WSnݪDCBB222UUU---+BGuuuEEEP񉋋P(ffft:KHHhoo CEm //b wwwDC͋K/^'sх bBwߏnҢJyWC*RACII~<7郃dn߾}<7 B&PO2z L3/'A XWo'{͚cW'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'#&?K?UWU/hj}Gא{0>lϯ7[KK'VVz"wĬ]kyy9WO&81ZshX< u$Fy1R̝;S_3)z')#&3)z6[զR_%ppv^qp hGM)@="SJqvh@=t)7!vv eB=POc-QMMY,w{rqrZy߁zSVV_F:KUF :W>>|@ :}R42T6pW400 gST})466 -﫨OT>M{{ d!'@=Ad멡aƍcVG x?Feggc<:^SS6rc^^^GCYyP(z22Iܵk5ٳg, -3]vnll{N@WW͛Œ&hC555 Erډ@pݸqTzTe 011|kYɓ'ءD"133ۻwH 5$Ç-=>]xQ[[[ Ξ= 3fRTTS\\|^|.`0tuu322CCC/^PRR2e ~˖-̜9LsR:zСtyy$kP(˗/߯q,,,p8®F^^ܹs544^\[[[g̘q=xa'',Z(44ׯ>x𠦦fҥ;wɫGAA!>>㥤hHBԌ [+i1BCCx[B4~TTT0[Gώ`B]FXjU]]]YY '4M$l6ŷ7o<]pB4 2w .gkkkϗ?z@ H$#;99|MH$999|jא4Rex mG$++Q!GO߿_NN 0 懮B FMMlY/An߾쬤djjzʕܻ׬Y񗸮ncoo W|bCCCBʽ%(((22,,,˗59y򤝝譣3 PWW55k<𰵵|̙3/^ڃ?^]]t-[o0.[SSSSS|r__ߑD"HLLd0"ãnؤtuu9::PݍOxwDzjssstr6l!pl6s<3)) pOO<)//ۻw/qt10.XMMMt " 7nܨۋvΝ;TTT6l P YYYs̡#t'd2̙+?seeeDFOR ?,T*5''mw ym>QbJi_F#$''Ϛ5bmݺU$G^Z  z===))GѣG s~^!2m4_8A8A.PO2z L_ ]dA c" M2>M6MCCcbSLbdB&p!'@=A B&{Rَ;IENDB`XQilla-2.3.4/docs/dom3-api/dir_7491f501d2a916fed33ee116b073f624_dep.png0000644001725400016040000000450013273140101020577 00000000000000PNG  IHDRObKGDIDATx{PSw DyPQE.UVȣƈ- F-D-Hע [5B+!!e)\~M`rP(@ /Fa0HQ( R) A Ea0HQ( R)-%w+F$qttVtWK Ο}v\٩7\hh#A Ea0HQ( RX”}d]OO7^Y*'8ggĸ'Ommw,, jk+/_NOOtswr f@(,v7c_c%̪U^#>>񟦥fV\\[T[+:|8?''3%%ҳǎmiiJe)T}{m##CR) 1jk+n`#ԩ<.7.2[U%dGFr]]޵S;kyII.#MCCC:::ove'_8ҿyy&M߸1C'Oqv[=IV [0[,---Gן#G_Y581OYs`)S ˯47K% -O_dki`t̖[ndf4%Ɇ22N\zݏFK955Ba)w|ybqO? \Ԛ5RSo76r#:;GX[ZZr-- #c,7DpZZS䪯?Obxh>_7<׻e:TNrrvR=G:::#ccz{ 8Qp#X3( R) A Ea0HQ( R) A Ea0HQ( R*7b:U+aL㘘*\Pal''WS.X~\10;ObVTTAkk R) A Ea0HQ( R) A Ea0H;BغYt|wNX?N)]ަ}fv_9 663OB{{pmm 4ϳXPυ ̞?|Y\frOه#fll8 Ι3…@OOm[,-Ο?+66_̑0++pw>PYp~kxKffjVsZspp_OpLN_Kw},뙯w ;i"6{bCCwU:QQQV[[%]z9ܹbqGhhwsHK;y?2,d}AA~+*d~p+H$ D:MMM//s犛WTT\bL6cܸqwfcc%ii9HtIewUc?00-%$Ǐ͠Z/ׯOOcDz~{1pV05mj:X,֚5re쉖6aaQv_:*XOO..ffm]=x===g{x\nxxx˖.|y0ʘ9xJk/ڹ3z¢`GDuRe,, 7͒vb>( R) A Ea0HQ( R) A Ea0HQ( R)տ,+pq)/XuNaB:.3BTèbjo2zA Ea0HQ( R) Bc}*NrimmyGsvv677ʅ!jC1HQ( R) A Ea0HQ( R) Ai<䟦;IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMException-members.html0000644001725400016040000002424213273140100022052 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMException Member List
    XQilla-2.3.4/docs/dom3-api/dir_7491f501d2a916fed33ee116b073f624_dep.md50000644001725400016040000000004013273140100020472 000000000000000dbf38470edea407b4444f5ae73355edXQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__dep__incl.png0000644001725400016040000000654413273140101020406 00000000000000PNG  IHDRpbKGD IDATxmP ) EPE Vm) 2@mgP1sPu8Ettׂ@2Z+ !JF ToM _#_Ic6 #j`=ϧ\ Eq8s$ ͡EEEt 5iR`߾}z<6(j`Fy:ddd0::* }ݭ[jZzx3_|Ǔ+Rt ;v@@O:ݻGy< n+y<@SVb=xtJ_Q˾###0<<,Hih^^^%%% رcH$`0r)b8 ۛ VZFU*^^^ 77WoZ$I;vL"dee͛7otԫ6777%%%//opp eddҟ$'s] `PoMM͒%K&loiiyܹ;vp8ĺ:0y&I b}lllK/?~|asrrN>w^:U&WÆ W\ CCCTP lڴ  Qzd2eR400PwTpB&$$Ҽ+BgggTT(˖-p႕0LL9222آhmmrw$$ tnnnV===5Jdyy+bxx'tttԩSdR$MѼy> lO?` KJJd@ pppxi 񡦵OĪUrssϔr>ٹ`jFd2>|H JREKKKwwجNMEE[l\~֭5kL|"rn۶Zp8zNNX[[ {9;;YfΜ997oLDHHHbbDAr?(tR\KmmmbccRRRǷ{œ'O~]933oAÓGGG>V/8G޽{մ\.tce߾}Gy]F̀ͺu Nl X$cSE l5QFQC CKKYLnGGHdڳXN"Ν;u%3{Ւ[@U"F\ij8(j`45JꫯnܸQ1ûv3gβe5 ;o;AH LSP]]P(d2Y~~`@@@3 -] _~eaa5kGsNc?\rL_NNN<Gۿŋ#"".\ݹsz:U^ `Q]غukEEU,((HMMWٵkWAAUEEEt[RRGMT <==222@*qooo}vJe0)19*>FY,I}}}ӣիW_~ej[n999]~$~kkuR+]vppP$@ooo{{;[mmm׮]LKK34f/N>՞-/1j G-,,'П={688~ ?9s|@}\ 33k| } N7^ ,t nܸH|~qq1Iw ƿ /Gg_{5L6Ipb%IѣUۿ?}D#""ʕ+~J n(hOOOgg\.|rdd۷+6aaaϟooo/--]|@ 7:Ġ [s^^رC*ٳ'>>~3#ww.TRzJ!^Jxx8yqF[[[800PTTt-P{1LZ\\`0|I]]]IIkxx8>(Ɋ~HhjjH?W駟6ERRRb A{=U"򜝝U*ÇϜ9|1+++гg6nhggѣ_mddzу\.%J7>~xΝ~T*MKK_+++W~pQ-L&S-P(LMM|Ŷ^sF{8q"͞>}]O>~[[}[nnn=x"P7nܘ6m]a///[[[v&99P􃇋fXJ%H^ןܧ2e˖ꤤ$<}bX,{W]]Oϟɯ*~簰0MXXXTTT㕖HP+۷o.]"7onذ!:::..ĉԦ >^"##IVQb6mڄzw_MLL\tׯ__fMllrV78c|GՅDNrq@@L&{B!!!gddܾ};>>>##C)*++ o߾]XXNھ}>}YffWIIƍ z{{q˗/㏡˖-z+2 JR37PyyJ`۶mG!?{/kkkOV3 J͛77oޜ:u~3f߿ԩ?U\Ң//p8)))uuu؞<}tOMMM=fooFד'Ol޼y|oS aɓsEIRlܸq|@iZhQ8qbKKKpp0BKK7y:eq֬YSTT!ѣ82%>pww766ػwL&Ӝhmm=~x^^ N 1y{{{ B͍c5RATUU͞=FFFӧO''OԩS={&~׭[4ݻ`̜9ܹsB666| ޖ` 9srOL{;vl8V(4F1b)2D>L(X]V,uuu?6nf/_t͛o>???Xjpss |555B޽{ij"PhhhAAǏ[[[mVQQ/r\Pgϴ_x@q L6İϟ׿KAuvvGc5F{N%wi>|\,,,>\XX@.X=1?Ӷmۊ :;;}\hyyy6l`0KIIljƍw677_jUDDĶm4k^|իZKqrr:uj\\܅ ޽{MFV"##n:00kq |?5++ ;ZaO}J^rҥC12Tlmm?GP*@@= C>tɓ'f0Da0L,ʧck… `QﻺDO(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ(TRzJ&ή sbqkkwpYdIҥ&qh/q󍝝b? 6(ՁX1ؘ l)TP(5 `9~JPr9N Cnl|YcjVid> *&f3 JE1NuswTb;}d#n+VÔT?UUx8e@@cٲȈ1ga3-b2=36q(ՐN3F:q(ՐDGOs5kWR …633w xUٲe U/ hGGǖ-[̙3Vɍ#:zo߾E?{섄QL pi5 SzJ(T[֭S3h< IIIԚ&L9s_~P(pRE1\!!!Ze2C˫nwdtR+**bbbF47BaGGGaaD" ERtƌnvq(@ſ RO͜'|BfG(C}*--%ŋ={flnnVװ"IJ7o^ff&>MOO U(d>駟EEE-"c"RRR&N( j}+?6VUUbɓ'Br<##ёdddr\rݝgee;88$%%sBܹs<byzz# VKKKsssR=a„Z\gnnn!q1???7ްjv`?dff2TKKˌ|p)?{YYY||<5-[|}} _]L^W7V4ٳg#t^k׮|2˵۳gLJᤥ=\QWPtNMJJZvGkkk1'''..1((húhѢWfgg766 Yf333 G566~رb p˻Ο?ƀlǕ+WJ$#G VX!H:顆%Mnݲ%\뎎wrrsA===2677755/p0R r\s*US_Ǿ>5,YD"9s`.ը_c9+U,x>>䱦H$211ٻwX,VTRTTrDAx{{|A&y]l,//ro&bppP K K7od٤~c JJJ1Ƀ[[[њnjFB;wJ@| 𾼹Yrii)jԌJΝ;LǏI n6668A\*4hzqڵxKK .rJ˖-dѝ;wB>Dd2lllldXċ<%)ĉɩZ-.\\.WR:tЦTRgka̜&P5꿎j +i744X,Fhj>+ ///22r֭f"kjj!ֆ-_|./LRN>-֯_tRHҥK~ Ãz}=#lmmw԰`!.^&&&ܹGP#̝;W*^vZc ##ׯ>|[&HQ4BMMMxPSJedd]D"SUU2fڼy3Ú@  ٰa./Lbʺ>bd2VիWwvv8p8BŋUVEDD |ώΩ԰H>˗/wssťO> xbSSSyyHH5ME/N{j&èkNJCA=\9<<+33SQ08p 00gϞuvv[:Dn:;;;{{~j]\\lllV\)]Ӌ )SVVVju|ɬ Enn.˵3g Dk֬wvv޲e ^(԰ċI&%&&R<Amݺ5 S328G}wjv51T(r4M8DsZYY"jJ9Ǖ92yd6Gd2F]#T J`0JKKWX1ҢVK"S taG3 (`*, |%TdId2BClW*jll,|LTcjghޛ0I>PaXԘj166Z lRgR itt (D\\4`\Ea> P?w„˧Wj0LL11AxP(cca7$TC$+B'ZΙ3eWR ɬYlP| ǫ0̍ Jax^ZYO>=ֹv899әgΜ1hLp/xxxz#bsB@9uԻ;lwK P*@@=)}ݺujƖ]Ѱ IIIԚ&L9s_~oLE FKK @2ze׍?R+**bbbF47BaGGGaaD" ERtƌnvq(t[[[CCV,/ԆJKK ?]) ,ѰNNNgϞopΝ;\;յ / ¨ |ᇏ=2xh*U,#N<ߏ'##C.ʕ+|>?++!))4BΝx,ӳ!P(XZZ+\oo & >vssKOO@1cǎ988|Wo񆍍g}V #55$33 %%%4!!ԩS^VVO e__dؚaT\.nϞ=?;JsFzxU^^Z-))iڵ=rttƜƠ۷777#-ZtlF@0k֬t]^}}}fffBѣ}}}Zݏ;V\\Lľ}8NyyyWW]\\pG#""ˋܺu+id555nbbrqqikkÖ/BL&STODׯ_tH$~ҥhlb߻w!d2[[[/5&A-ZM{h}jjj{ ]ƑbxCTFFFڵK$999UUUa{ZZZ||<~(3k֬͛7S\YYY<O  6d,,K&iu_zugg'~SQQ! /^鉛^jUDDDkk@ $^6Rb#/_ͭ>}',,ŋMMM!!!6m Wk8aH&i5T`|@GZSPR`mm2J^qD P*@@=`ollt|A Tk??{ϝkOOu"#k? LUU}j]]ߌu" ا P*@@= P*@@= P*@@= P*@@= P*@@= P*@@= P*@@= P*@@=Y$OHo!Ν'KMs4i$6ߤ6J$2]kg\XDH2G5q (*EVVfaa>ϸjд3ccLLj*RPIJPa ;Ä|T0c-bbLHid0R  nreL ,j0bc_Ll:3@e&& 3:q(Ր`2!\Ka RzMOONg\J5$'x+\ɓ'Le|0w$޽{cdXsRUa P*@@=ϥuֽZKK Pܹcll|i^YYijj*F"g5<<<'bVVVCbL ̟K111ZZ[[l6>OtO>O?MKKE=}tӦMYYYSN̩ܸqC(vttJ$ V?~m!ݻwkGIDAT޽;l1aϞ=Zܬ9jFAX/jnn&OU*ռy233uگ7 ?Ǐ>sjUUX,F>>'--ZCƇ8&%%]ѣGؘ}v_hիWYuy £Gju?vXqq14CHl߾!{nqDFhnݺekku\+&В%K$ə3gB===8‚ jjj\nvvV~%:Jnnn<___PM{HOyy9.>y%LLL+U*T*U*D"1\J|r&zjjGk˔ul BT*q[ (--rZ^^wsN&IR_scX@3A׮] p.wTl2|LxMMMCQ*S\\lcc?XM'N:YYkL*&j[8L&ƆըkOE=|0///22r֭f-kjj\\\ڰ/%T*ӧE".]*_t)::B@uvvj]]]iiiJIIQfbA|bd2WqȣG>}466QOTJhS*jɒ%aaaxx+W(O|z{{ҺdDeN onnj/z?p@`` ^Ξ=쌷zdݺuvvvHOOwqqYrX,vM/ JKKLbjj[YY}ppߦ&{n[[)STVVvrܹs $-uuuFFFeee#5ş4iRbb"o]OL5uRq#GLچ@,t2c.u DZ$<**jܹƍ: *//OqHz%00$_( =|ކ@ 6O!|  KkWWWի544K.effR(cccyD4Axx8@߶m[FFFDDć߲Ŀ¢aGDDtDO&H<7o\rehhh>} WcHHȋ/;&##(**k豳͛7 eݺu1@MMQ(UVNj|!>8okhhWKKkРA'HWW\8~a ]\\+**NNN)))|WϞ=sttD۷o_vtQ&k[0uԴ4cRRZE(**Λ7/)) 8nܸHԱcǶ[ 1cƌ39γgf͚UWWHNN^hQcc5k3gŋSLz*ӧ-1cƩSlPcׯwHAR[>XvvvL&P__n111 ǎ 5jә3gh4ڙ3gvڥxY@llP'֭[/^ȯ:o_v #MB x<z,##3fYvq:11qƍ:::fffgeeO6ں]'sUVV=z4W644 FHKKK}۷oaaafy ///WWWWWW 7yd2}tYY/^цn:@GG… ***EYY… aaa$mrrr\]]g̘/_~+V1cΟ?_VVvǏ8p޽ 8z#?6566y{{-f^ۏ=:l…Wm9C-L2#FԶe˖!>P>چ@ 6O!|"cW'WC:B^^!@z6DdmcfwqVrp0ZbM CT>!Aŋ%l:#^HY<3UUu+V\vuYM55U._֭Q"w@m "B0>">[eϞ[oޔ,SSS_)"&uʳ'拰5`9DHziLcg=p@>".X\RBsgH^A Pa3gjh`ݹYQQ "F4mm5&oɡC{G9~IO nsGޟ?z, /vCD7*+6\5kCvCD| *UTd֨66$l#H.Ȍa.lGCD6TV~ݻ7~ʱ#Fc p9D@mA"l:X!j\ر=ҫ]`9;Hh'^afX"m2OdIǏIIy(6t>|z6t vc#{Λ3g:=XvCj?hwKְYT?Vl6QWWX: 6t )m1>>X9`9HyJEZ DށqEXE"- yW7 knu ]vC:tis}oZX-`9]K!!R6x`搶"mg<'1vC@}l2 Wb(֐m5=YG55%c1p9D(Ң툈:Z7_'Thᅆ>^`*maaO,x Xѫ6۷+*.]u b6_/KKRy9-, rr27ndXbb\ڤI';u bgچׯ?]v2@`D=Dy;%={F_ֻ qOm?}Z'-CjVVF1@ ,ӋFX"JJJ.]XXXDκ%`jjS]]-> AUUuСW@ 0Y Ba#^,X`jjڧOC޺uR0RJJX"O.VϞ=P(aaat:}WuuuC xBSSСCFzta:?yeWoĈ==~fn;vwns1H**j;ŋ+**tuuQ#GJJJrrr}vf0aÇkkk;|pr1 ` "++`0f G:::wGOͭ(''n޽ϟO/^3gN?<F-"@nv}>}}ޫWUVVA}٩Tjk0yd:˖-+--E>3Bi@kVo1o 6޴}L&i4=*kkk '%%9::7GNN VVVyyy㖹TѣGi4ǫreBaiiy%~0/_X,"kaa  ++ A1-%m?\KKwڵ;v@$""ÃoRu >455{`pT(x&ziퟯ]$Bxk:8֧ʕ+߾}zjL&H$?Ǐӧgcc3cƌrijj>z(--pر?`lMMMϟM_TVVr\s^YXXǪ99f |2Yvvٳi ̛9tІ#ﶔ?~ӥK3Yh. m|loܯ.ӧOZZZF(}}}2Z|u[}+Vh-TTTpႢ"}…eee'OQ(D333 ڢ@X-jKII6mam_~;vlbbb~~~llscc5kظ6+_~O>}޽{wkh4X__uV@VVu@Csuk mr\iiSQQUwDۧNrpp`XܺuD"t:}ҥ[re}}ﯯ>|Cf\hBX'p8AAA***#GDATEG"6od26'~؉wee`ggglkk{;93gZJ&g͚:l0ekq?~o߾FFFgϞ?N3L ѣGӧ՞A11/nl%ֈB_;0 s:vAAN \ɠR( ^]TTenuH?Fg@Z?ڮkld:,iwfi~q?6fhDg>J vI UNu g``z-33'N}'ÃTMM fhlc-i6 oeeaÆ&ƞ8a ;vDϘqSY$qmjc$RhMD=xzz秥YXXݻWg@$a\~H{ ^~mdddddk WUUE'>GE^`+㿏 F8fdeeI$QN5\\\q Z?c)"Q&66XCC,o>Mz2<pM  0MY,$l& X*^LE@ ~ +h+Žܮ]Se[@n `֭xӵkz`'UU}fܸI˂t hWv;o&%re]oɓ<=mmijLmzkiO/6̬'=|x֗/u'O&d6u++(ޯN8ѾUߺupѐ  ~pӦkֹ-[IKvt4ٺ5Ǔm mw(˗L}Db!92;7ʕgX'PVF[ ^ҪUMdp;¬ &},#bIGGm[XUT qC֭LUUp@^^ȑىbm*K5>5?}vG={Ȏ1"vlT~=du, u R Nk:cliL'cʞ=._~Xh}d0BKLe'ֱʬYC\\,mfX"Lf0- 53>~|~/4ٳDJM >$di֙a 5lĉUX"DR&?y2޽$ֱt+YYm%#1'VT#Mر{N9X:u,RN G/T?~<}K e-sֱHѶV: eBMMu,]ajjJp jmUUS;vTUIDP֭X"EG::jt=7nļ8~|&ֱt:q׮R84+m]]*iÇ]b׬찎?X"-GXucڪ2…ԜX"Gۺj55uxZgΘ*s{l`#ͷlG::jl6F7nGG p좢J|b9V$7/Ҷ,=4ܮ;~|^/_tA$ @ mb%vjK:4Kǖv Ueg`nMMUU5444n9^x7.vm~^boڶ&!_u O8~( css~=^UTo66,@!moo G,8ȨWH?|46drͭ[/l:|98۷eX' N&]K&A061駩{+)r&ϖ"pCIIҥK 9/ OuwTUUo;€GN0@  fϞ-Sw<1@80;>>ze.۷Gh%%%.dii윞&]dcc#@ hkk>|8<<wnUVݹsg"LxٳYf :ܼyʕ+Zi xCVVV:::6lhjjjl~F`a +Fxѣ۶-mYxqEEnzz:j'OTSS+))k[hBOSel %%A#@A$22Bif nGGORL{!hhh\۷Wd2DB=<<>~o*5ӧO @-6663fh-G ǎc |ё=嚛F RXUU ''츙[>544%vr9{hAZ6[nРA?3f_NzjmmͿ8B:z:kw|X~rqmӧOZZZFvT3d2dgg|ussssssWXZ.&S]]}EEE&)4… P?'OщP(fffh ,pss+..͵ݳg}3屠[2m4CCZۯ_ZYY;6111???66ٹQ5klll\]] o;wU efˈ _ŏikAAAFFƀ#{f8ff[]{I鍍lk]~oWۧNrpp`XܺuD"t:}ҥ[re}}ϟOP{\DFF[[[ b&NȏYXX9R-ׯDڼy3Dv^^[Ɨwee`ggglkk{fSRRgΜifomh-o4^ƶ_ŋ&&&ZZZׯg2Bm |ҢmANot ⲌTT|Zv mHO_`ptlܺq#FWW !kLR(Ơ'A:oGvr2%"#3Ԕlz\ġcgUTlm zXDEeΞ=D^KVA$k0|YZZ>VL&̙#HGxJ2~ ! @$^MMwsf3A m`ooIiwMpCHEgϘ1neLY 7SYYٹsΝ;W$Q-\:%z[VHG|'&l6ѣvby<}%KB4> 7^$hb|VD3==m἗SXX{yʔ m9~x5B:cZRS?L. Ƣu IJz;v]nݓ';֮uHWmigb<''矷vx̏';\ ~MR[:_*qwA>{\BziDs?Η!8;^hNۣFY+߿fŊ))6USS^Rm99Mbb,!W N ZuFEW׎k-0ҨMJz}?RS?)9:$0 C]\,s?c)ϢHM&Lh6yرVukԏ?őjGxBJa93+SCkhKQEc79r(9oJN4>oU9￳N=y!!Y-X .=HS:W_ߤ5ϟ9;[6* )m&Np׵l6Kȑ梍JLEQն󀄄W]˞]9۰\j69`T;b.}PWWTK8\ʑz0q=$%B !@m551c,:.{ >Rmin6hh(wnܴɳ4 ,eeyki)mPOX0aa(2S8ƾܴɓ=z."H ]&o٩(7p&,GF`om 8A{^*:#ͥR쓛C`YY"E,?p&FTP$t iY,o.]z!7nFbidd?8.jlh`|Ipx/,ME^\)Wl6w72 *l#BLiA`nj0ˇ *((l{2HǑ^m3&O%,W𣹹vj*#+Ů,hхLrrrWp48Hoҕ+?2ͪqSSm_,qAFuqT9Y@' ,8}WaNn[&#wZYS\z``\bb.ry{FD<97nxt…#-Hא69ԩ+Aj͟r.'(f=qAh"Qf۶hᕗ]l Dڵ LIHxլfnjVohtʕVիσ-\.L6<*ja/ A`{';9퍍߽DpЬNJz}{0>HK@N\OO][P ]MVlѵMy>\yIp! n!@mJdjeeyI3mk; B>T̛p[>ۣxHPPb]]cC ̀Vhrf_EDծffڝu^^^;gF6+DA^^HťW!A`_weqؼM65ry}_Y see<jmMշеst4ũ@X\\,Glm,pv-X_cUuR߿\ﻵQV nXUUU^^;LSSI^QQו~/J&cc cc yyb$:fk+y2.#M*]Kc/ ^/۷o*/ 'P>چ@ 6O$^%%%K.m7Yaa!:O իW߆y#f055񩮮n#= .ӧBQD $$^qqqӧOUqqs3544mZAܹsÆ _Y&00p\gϞQ(Ұ0:>x`4_z5/_ "@eeGbҤI B*((hv-MMMvvv+WDdժUNNN,KlQ3fϞ=z^/B޼yqxtN 4 puKKz `h7998%%%00X[[LJ_)}Yxx8^SS$1Z4śe_t)44СCaaa.]k-HZKªUܹӚXXXhjj:t5㭬ttt6l$ zmŋWTTꦧ#Gxyy  rѲG$22BiLG$+++EEE怺:zO-̅ ȓ'Of͚rֲM:=;m(ꩩqqq=sj0m_vɩ/Xdׯ_+** 5&vo+?>}ߨſAi4ZZZjGZd2j>x`kL&NjR˗/2e J޽{Ǐ :rͲoذ!((h̘1_|Sk Ν4iRۥtЧuQ1?M"tZ<oٲeׯ~?sm>s;v|)''ggΜ̵hѢ]v֭Sk͛7t:ŒSVV=>>~ڴi +Wt)X4z"_|9OWWw=pjhꊊ3f|q˖-)5/^k?ƍ 333wܹp6DHԩShs֭[$ }dK.ׯʕ+ϧhe.A"##孭fgX'N أGӧҢM,K>|dddĈԐgy{{ >]z>}cŋMLL֯_d2۾`7#dqz_ @[jlt'^gJ:?. j[QSS"696yo>چ@ 6O!|"d @455)((`D8i[AA@ E! !tj6O!| m,C؋wfIENDB`XQilla-2.3.4/docs/dom3-api/dir_e6bd38fe602a947f4224dfe3c9d24481_dep.map0000644001725400016040000000045313273140101020751 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementation_8hpp__incl.md50000644001725400016040000000004013273140077020235 00000000000000bf89ad126934465930f25219d54fe73aXQilla-2.3.4/docs/dom3-api/classXQillaExpression__inherit__graph.png0000644001725400016040000001110013273140101022370 00000000000000PNG  IHDRp::bKGDIDATxyTSGh kpA(Tl9E)+-.XcjENE H]@-+(H]QAI Th@ 1ﹽ"Pss̝gy曙&A q@Pmu@)A-")A-0GmݺU&+ڷok=z ɓ4#Ǐx;Ǐ_j#)A-")A-F"HL81$$|H$5kѣ?ÔTJe 1 ;qQTVVFѸ\B ÇYEG6Essh'q1tkii9w/ݽ޽{%%%ӧO?T*u1 '|}}}@SS۶m377---}i}}KA޿dcvikk믇ѡRXEGW.%&&—PP8q\Xw DiAA7᳻{ƌ8GFF:99(mkA655ݟ"G ãȲ2KKK>xQQ 8ƚ7.66fں*11$88qԩS3gӛ4iÇqH$J|w ౹yEEB233aݼ<[[[\|||>_aXJJ+xW^8~iGGQFڵ q& 033#fffN<(%%3eʔqEGGb(oLR#9 44dZYYtuuh 쌍wޭT?dm }왙իWq˗/qCCٳaϝ;doorccc% x<^^^aBSZNl }ڵkFFF06N]xp]sssp|Rg||<Xvo޼͛e˖͙3_^xw())|L.\ʕ+IIIQ LR#9@OO744̘1#)) F'rss Mb9888 vvvvS_WWw޽@.yF&W?˗/u˭[8^XX`rWGG'((H]]]]wwwbsP(dϟ*qXQֿ(clmmLR#pOO>>2 aZZZ"h˖-:b_؟"Q: СGSSSmm-NLLTPHv.kooQdzzY*PZZjaa:::֬Yclld2E"b866Ғ`o *ԂaL99S!L@OOXp...Uþ}Ǝkmm}SSSD2od2-,,6oL\k]ZnOinn(|\"GcƌPwC)r`jj( R$Z E"R$Z E"oǒ? @s\rE|Ôh c-@m7\X,g6P\PpK[uǢ}PHdu1D"JMͽׯ^"A?5T"Jiii:;wƃ9$\T.)4!r%X*?\[!i:HC䆶_7}$ٙ3)rtttUUݕJE[\WcH#/r9"D i9xo(a;e9H?zLK.Nj%R 9u|MCx>R )).ɕ8pq<#IA3L&ӈR8qР N݌S͂hFP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP H@DP Jl޼Y ::t Ԩ{{A!oii>}+Ž;x< 055?x_رcCP#)A-")A-4OMMMՄŋ ,x|)¼9"JC\Tю (w젠9sDP@gggTTQxxÇnܸw^CCCm.##[35͛# #;;d2W^ >lddb\]]x~x||<...x٩uuub8))iɒ%G ޳gX,Vj$߷eee޽ڵk?3_p!333""";;a4MU$Ǐ;Y/4-//oƍL& `ڵk7]WWkggGbXӦM[vmEE4t:|ӦM666.xӧO)5MHsEGG[XXجYhhɒ%-ttteR)]@*++o޼>w\رcgϞM>y*aҲwޮ.6g& V144SSSvƏFÃgϞ-_8`iiiSL pvvVj$j \nii _ZYY ,_z:s1c>'ŝ;wpݝK$ŋNNNHHH ---ɓ'L& 04(qIIIRٳ F5Mkkkx &>} 8|+W߿k׮XXX$''C"HR zzzÞ={-[m۶7n\tpzC-X@!WWϟ?x`˖-GKK+..F$I$  'yxx߿[^^^ÐYjys3g_?ð׻nhmm G[^<<<;rJuj i9"B>LQh XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - a -

    XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp__incl.map0000644001725400016040000000027413273140101020176 00000000000000 XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp__incl.png0000644001725400016040000002405313273140101017612 00000000000000PNG  IHDR<p}bKGD IDATxy`e'W zۦEdW+ ]]9t",×CR.A!Ҧ^izҦM8jJsL0<31oyxEۺ !! mcϞ={u+@ Xzuttz pў={rssmg;enBhĕ+Wں"77M4444;̒b TJNNN6e EǏ7c/a8<aÆ}ݻwݺutvT:i$qcc_ZȰN 7??},YWh4r~I xCݯySp-Bj5{_~qM:u׮] B~iDŽw{&Mzg6mڤT*[W\y =/Nݧ]x1++kٲe_|^_ŋ`fh!#6w &r7de͋-TWWשS.\:`ٳg8qӼy Fy<<K+W"y~i<oҥ?C[[J tÇF۰aCuuuQQ_|1vX# {#?UݧO>f̘e˖ݻwSN=r׿nذW_DO>3zڱj֬Y6mdcƌ9s&C%X> [r !?LJJ4Ӕŋwtt3ip `5>l}}ʕ+m9sӧ]h\rr7|Ϛ`v3==ݔ`Zk,yZD"z6A '8wNyS,؜0`}-եl,.--זJK %!$$WTufٗBA̲)POmP ɩؽ{!$ K, CcbC̶'9L. ` *E"Hjk%YI(>qq!qq!bqHTBBX@kv^T(wwusuu[qD|Z};5RR($BS N:ŵImQ,/Vdd_ϡr !Ju(HTv >tD NL t5jŋ?z@*m0aȄ C ›^}˚ƭndÇ]T2vlbzzRrr{ܹΎ1IL&'GG XB @o[[ǗFCD0?-Md6՚.ɹs5..dıcߚ來ZMMm'O:t"pԨ؉ pSQHǘFB[tt ;חG0s~Jgl(J$HBg ,;HcG?\>tҤcb,_CZO/ C%ֿ ݯ.``ANwQBylINNޱcãSS҆FGX00l^r# N&䓊šƻ3nnnC9SVk|0*==)==)8-1 `!cLUU݇1[-ऺ4ok_noWB|}=|"šAA6ljMM˩S7N[\0_!@oGJUU{bH'' - I/ ST$mm :1&..ıT+ChΫֿ =c8{v=%8[ha8azah]nܨihKoBhcOU+*~nQAfa{9Dഡ酡cpChߙ=2 ?1'ɹvHTAZB M+H$2p 1BhpRi@HA<% Bzы1hh 8faz8Fzaz8H̐&#^sQYDQ0::@1&661 8֎>}aHq866o~TAZB)^L;2!c j'` }pa"HkBh1;KPHT:"F+ k0~Ĉf mr^,J$Cs`}-߆0], AB XnHj;:Tau #cND܁bMH/VFnqqc`Bh%ZLN~qH-]㏘[ZlVtP~]OIHvu{B 1Z#46bac&-h(L)-q 1 @ ?݋LN#yۺNA@zsFݻzbL||h` n.!2N߶0}AhnҊ1EEY ChTv5,,9AڑRqssۭ[ÇG38qhzzmZ,H/7j~Lǘ(neB 8 \Q^Ϋ #D~c$ 9nĈ p+Ҭ 0 ^hŘ"i}}+*Y!c.]\q0['zz䲄P+7 Lbw _ %XZWJ] A:Һ_#QQνa&A /ݏ**ɽ8W>T^`"Hȴn("`qتUSH/|Ǻ0 ݙKKe)|A!9%;jTRRdDmSWQ!Ο#2??^~8?cH$?^ mT[%&K;;Έcp[joW.[{G = A:#fP|ޠAǎfVA4kU? 3'r\Q^^w,Я>2[34p^uI9[*+4|>ڵyw ĉ*4_)B!?3s9ٶU`.&D__-[oڴP? 8BܲkW*4#n񵴆l.v?K2;ήw9uYBsy#F5*ȑ7^O=5h„!=UJSSСo#1{,ud;]T2vl5IFs|ޘ1ׯfy1iMmܸoBļyO,\8_Ńq-@! o>|PJp))y=*=o#`+'RVV?{[@&}RRb"H'ٳ%j}=[N/]˫}S!CCl:9SQXT$U*tc 7EQvhBM׿=Gƾ[)?pW"-)0y!11AbqO=ZpNK<oO?= Nٻ ZP ;v0-B@(]1i07 IRJJdLJ-##ty>6mCt!8+W*23дFNHØ0Cz睜͛ ^.~j͛g[m5wv&&Rzj֭/ٺ9`UTPp[cN#1k*u*(z>"<"efN~+78IݼY{G7WD"i'[msn~FKaaỘvе? u[zҖzwB!_,ݺ>ipƍ=^_ļΔ0k 잎wCqxuuZmh`[ڈ~RZZz^n,ac--<aFP !HP!"h4Rٵq㾇bu i=.\rssmNsuu}Gz( y^=o]4 E.S]I!f=ҋ{?3cE?9w45Ï>J &=ӽwZ:;;)JLLz>.*Z) |>_b?S44t*޷ǧ_~'djMIQ(T]]j"ry!Dmm$%$ظ\~\+dvΝ;f;5{ njt0"?%&rg`#wd?v F|^PbqX}sҽw!00ZbvH$5EE_~.,uB\\]]FC%QWWg8(%/6*yBM>p[3o߽ aCFš  N v>n#,/,'Ӻu3lK8 8CKeeOiWZZJ><`~UPgfyvvKAA%ڬ=k֬z#ϧ(j̙^^NJKKR jhr Ӌ5%Pɽu;qIJ -ޗ.NԤ%P3tuAYόc֪݇L|BO:_PP0r%KZݻ~T*ݼyP({5ke˖۷SE^>^*ҏO8D/??(X~cݵD"ч~ܬhZ[[jէNDo14ͤI̙3kC -N/1M6BHnn.EQj]t)obbb.rhq£_?+V(jǎcǎXc§ 4#U9VIDAT*yAO!(JC-PZ98dI$=~;;;oܸq]Z}vqj̖ Vot/qqq۶mcN_~I -6jʡ!k3''Go3tOB;4hΝ;}ڵL;= nsL -zRɷZ5Oh(mS*_ tEQgϞ6mc=vC_9DbJWm߾̙3nnnΡQw׮]Ç7wzFH$}[P(k׮]56+ ~rsscbb4ɓ?3ʴ 'cf|!FiBrhPUvvQ1yz-:X]wwZ;p^WH0WMPСC:t(}Z͕V{nŝZսw\?s+W_p7ߜ;wkUh +,٤ XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMError Class Referenceabstract

    DOMError is an interface that describes an error. More...

    #include <DOMError.hpp>

    Public Types

    Public constants
    enum  ErrorSeverity { DOM_SEVERITY_WARNING = 1, DOM_SEVERITY_ERROR = 2, DOM_SEVERITY_FATAL_ERROR = 3 }
     The severity of the error described by the DOMError. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMError ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual ErrorSeverity getSeverity () const =0
     Get the severity of the error. More...
     
    virtual const XMLCh * getMessage () const =0
     Get the message describing the error that occured. More...
     
    virtual DOMLocatorgetLocation () const =0
     Get the location of the error. More...
     
    virtual void * getRelatedException () const =0
     The related platform dependent exception if any. More...
     
    virtual const XMLCh * getType () const =0
     A XMLCh* indicating which related data is expected in relatedData. More...
     
    virtual void * getRelatedData () const =0
     The related DOMError::getType dependent data if any. More...
     

    Protected Member Functions

    Hidden constructors
     DOMError ()
     

    Detailed Description

    DOMError is an interface that describes an error.

    See Also
    DOMErrorHandler::handleError
    Since
    DOM Level 3

    Member Enumeration Documentation

    The severity of the error described by the DOMError.

    DOM_SEVERITY_ERROR: The severity of the error described by the DOMError is error. A DOM_SEVERITY_ERROR may not cause the processing to stop if the error can be recovered, unless DOMErrorHandler::handleError() returns false.

    DOM_SEVERITY_FATAL_ERROR The severity of the error described by the DOMError is fatal error. A DOM_SEVERITY_FATAL_ERROR will cause the normal processing to stop. The return value of DOMErrorHandler::handleError() is ignored unless the implementation chooses to continue, in which case the behavior becomes undefined.

    DOM_SEVERITY_WARNING The severity of the error described by the DOMError is warning. A DOM_SEVERITY_WARNING will not cause the processing to stop, unless DOMErrorHandler::handleError() returns false.

    Since
    DOM Level 3
    Enumerator
    DOM_SEVERITY_WARNING 
    DOM_SEVERITY_ERROR 
    DOM_SEVERITY_FATAL_ERROR 

    Constructor & Destructor Documentation

    xercesc::DOMError::DOMError ( )
    inlineprotected
    virtual xercesc::DOMError::~DOMError ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMLocator* xercesc::DOMError::getLocation ( ) const
    pure virtual

    Get the location of the error.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMError::getMessage ( ) const
    pure virtual

    Get the message describing the error that occured.

    Since
    DOM Level 3
    virtual void* xercesc::DOMError::getRelatedData ( ) const
    pure virtual

    The related DOMError::getType dependent data if any.

    Since
    DOM Level 3
    virtual void* xercesc::DOMError::getRelatedException ( ) const
    pure virtual

    The related platform dependent exception if any.

    Since
    DOM Level 3
    virtual ErrorSeverity xercesc::DOMError::getSeverity ( ) const
    pure virtual

    Get the severity of the error.

    See Also
    setSeverity
    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMError::getType ( ) const
    pure virtual

    A XMLCh* indicating which related data is expected in relatedData.

    Users should refer to the specification of the error in order to find its XMLCh* type and relatedData definitions if any.

    Note: As an example, DOMDocument::normalizeDocument() does generate warnings when the "split-cdata-sections" parameter is in use. Therefore, the method generates a DOM_SEVERITY_WARNING with type "cdata-sections-splitted" and the first DOMCDATASection node in document order resulting from the split is returned by the relatedData attribute.

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_40.md50000644001725400016040000000004013273140100015716 00000000000000b96fd615e64e8e042e522059accca2a0XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__dep__incl.png0000644001725400016040000000607313273140100020130 00000000000000PNG  IHDRpJqbKGD IDATxTSew6ac%dYHG+XiEt*: 9I +1'Ȕ&SP@%˗艍# c{xsncNax>~}qv;v1B` )>FZZFa)H$ͥSEQ>`pp0Mi._tC*.]t\"TWW'c0"SLi1Fa``@T[/Bjjjqq0oRRݹ DjQ,fV+HnȜ}*qV ׇٜ^X,rU.d2JqF͆:tvvt*L^SS?{XN[b^{53έAAA<֭[AII z|>?77722R$=J… Tuuu ,`&/{zz}t"(%%e׮]]]]tj:uj͚5`Μ9o&}"߿vڙ3gJfe=nR\2 䫯,Y9B!͛oө\=g h4:͝;nң8F/?sz@3 6 B^GѤ8qMnRT#;sL(Dhct*A^QQ1118x`dd$ X,.]jjjB?zPoUVVȌ38NC͎ti}75Ip]oɷ#s#=Vƞ͛7tW^yl0Ν;hN>P(jh;o<>?һBqaH$_NzcbbK044dZ}||_^XXفM*g;6ҐHj[[[ -[&9#^nxFpppDDD~~?xBR!R/3D"9zh||7;}tSSj[.///55gd\.7<<E9/]2?l^1uuu:N>&kllinn-[F'k׮16 53k֬P(H92gΜ;wl2k֬~)66vܹV:wܵkЪpC# #8Ae(*55رcYTTr6m***BMTzaz4+--}GJ?͘1#;;(:zvAAo'xv:t}j53v`^Kmm]w݅mmm pn7<9'K/@wwZg}ʕ+ aaaYYY.7!!!/^tpŅ MTZRRbݏcVebm<*.ݾgϞ_|5e2ٖ-[fsNNNll,Ydd:sJBWH\]pzeAV`S^j555W^ꊎ>qZ>rȢEBBwG\.Dˑ?}ݺummm}QRR ;xc&PL_1;mذa<ڶmbEh~6 AAA)PQQѵqGzj+dTxÇ2e_-ѦgxpP^___XX L6MPMݹsg]gҝ-:tӦMVF78Zx{jQQѺuPwF <811FEE) xΜ9(::ׯ_x 7oe˖@mm-HL#G;T->>k&))iѢEϟRTk׮MHH8rHGGMc꧑S(7o^zEG ?-UWWhYM&SۻЛn߾}1X|Ipqt:8gJ-T*@ OT*yyysL\\h4oѣRtܹvɨe0iҤSNy{{# =uTFFFzzz]]@ D b`qk|~hh^z522.sɓ'>$666%%d2$%%beS;l̏;qHݻw;X״hj~|ϫ_zp…-\'O[]{ѢEݖ0\Z<oǎ`q7(8n⸱1r2' }6R$ pFxcO`` .@y T*W; ;:̹}zR&{yJ*t:̙3Eʕ+z}'F-?qC Q7Dq˕B[*hܹsgXX8I zw,KvQW[߹sGtS67}}`OjCRSSϟ??w\:pMM 3YSSRyOq>r;>~7nǏ7nٲe555@ll, riq\PPV333ك"wܙVE"QVVXrrrVX]׮] 6l@ղXl۶ݦ}}[+x*D"QꝗjGQTSS444XUQT#GDu+++|(jnnr]D.\"%r{{gȷz,f=WatZ|yVV\|y֬Yv}gK.t83fo韎MeWUU}G|~yyUrf2HMQ(3y"0aʦ}):qĂ jRR FСCeEEEv͔atȧOCҝ}O񆆆℄gϞ3{yeLL̕+Wrssg̘(H(fR駟jZZk׮5k1w88>rҌ=:))ŋo޼III r7|JE#$zcǬB.,J???[4:->rbR܅ q1H(*!Cb#F< |1a+nqC Q7wi =WQTILLdw|SGC8n!(#+BM<IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp_source.html0000644001725400016040000004273513273140077020673 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathEvaluator.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathEvaluator.hpp 698579 2008-09-24 14:13:08Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEVALUATOR_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHEVALUATOR_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 class DOMXPathNSResolver;
    31 class DOMXPathExpression;
    32 class DOMNode;
    33 
    47 class CDOM_EXPORT DOMXPathEvaluator
    48 {
    49 
    50 protected:
    51  // -----------------------------------------------------------------------
    52  // Hidden constructors
    53  // -----------------------------------------------------------------------
    58 
    59 private:
    60  // -----------------------------------------------------------------------
    61  // Unimplemented constructors and operators
    62  // -----------------------------------------------------------------------
    66  DOMXPathEvaluator& operator = (const DOMXPathEvaluator&);
    68 
    69 public:
    70  // -----------------------------------------------------------------------
    71  // All constructors are hidden, just the destructor is available
    72  // -----------------------------------------------------------------------
    79  virtual ~DOMXPathEvaluator() {};
    81 
    82  // -----------------------------------------------------------------------
    83  // Virtual DOMXPathEvaluator interface
    84  // -----------------------------------------------------------------------
    87 
    108  virtual DOMXPathExpression* createExpression(const XMLCh *expression,
    109  const DOMXPathNSResolver *resolver) = 0;
    110 
    111 
    125  virtual DOMXPathNSResolver* createNSResolver(const DOMNode *nodeResolver) = 0;
    126 
    127 
    169  virtual DOMXPathResult* evaluate(const XMLCh *expression,
    170  const DOMNode *contextNode,
    171  const DOMXPathNSResolver *resolver,
    173  DOMXPathResult* result) = 0;
    174 
    176 };
    177 
    178 XERCES_CPP_NAMESPACE_END
    179 
    180 #endif
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node.
    Definition: DOMXPathResult.hpp:46
    DOMXPathEvaluator()
    Definition: DOMXPathEvaluator.hpp:56
    virtual ~DOMXPathEvaluator()
    Destructor.
    Definition: DOMXPathEvaluator.hpp:79
    The evaluation of XPath expressions is provided by DOMXPathEvaluator.
    Definition: DOMXPathEvaluator.hpp:47
    The DOMXPathExpression interface represents a parsed and resolved XPath expression.
    Definition: DOMXPathExpression.hpp:36
    ResultType
    Definition: DOMXPathResult.hpp:163
    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to name...
    Definition: DOMXPathNSResolver.hpp:36
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationRegistry-members.html0000644001725400016040000000654513273140100024640 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationRegistry Member List

    This is the complete list of members for xercesc::DOMImplementationRegistry, including all inherited members.

    addSource(DOMImplementationSource *source)xercesc::DOMImplementationRegistrystatic
    getDOMImplementation(const XMLCh *features)xercesc::DOMImplementationRegistrystatic
    getDOMImplementationList(const XMLCh *features)xercesc::DOMImplementationRegistrystatic
    XQilla-2.3.4/docs/dom3-api/dir_a1bc92396ffc8a3dc7aa16f9f9aed8c7_dep.md50000644001725400016040000000004013273140100021235 00000000000000d0b3fa2c2e3192d5860d5e520ffa700cXQilla-2.3.4/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.md50000644001725400016040000000004013273140077020712 00000000000000afc9a7f46a9028f2a30205b5007c7e56XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentFragment__inherit__graph.map0000644001725400016040000000042113273140101024732 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_4.map0000644001725400016040000000044713273140101015742 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathExpression-members.html0000644001725400016040000000723713273140100023225 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathExpression Member List

    This is the complete list of members for xercesc::DOMXPathExpression, including all inherited members.

    DOMXPathExpression()xercesc::DOMXPathExpressioninlineprotected
    evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0xercesc::DOMXPathExpressionpure virtual
    release()=0xercesc::DOMXPathExpressionpure virtual
    ~DOMXPathExpression()xercesc::DOMXPathExpressioninlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMXPathException_8hpp__incl.map0000644001725400016040000000051713273140101020240 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRange_8hpp__incl.md50000644001725400016040000000004013273140077016304 0000000000000049c95a135823b3365e5c977b66cf72e9XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp_source.html0000644001725400016040000003466113273140077020065 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMStringList.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMStringList.hpp 671894 2008-06-26 13:29:21Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMSTRINGLIST_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMSTRINGLIST_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    37 class CDOM_EXPORT DOMStringList {
    38 protected:
    39  // -----------------------------------------------------------------------
    40  // Hidden constructors
    41  // -----------------------------------------------------------------------
    46 
    47 private:
    48  // -----------------------------------------------------------------------
    49  // Unimplemented constructors and operators
    50  // -----------------------------------------------------------------------
    54  DOMStringList & operator = (const DOMStringList &);
    56 
    57 public:
    58  // -----------------------------------------------------------------------
    59  // All constructors are hidden, just the destructor is available
    60  // -----------------------------------------------------------------------
    67  virtual ~DOMStringList() {};
    69 
    70  // -----------------------------------------------------------------------
    71  // Virtual DOMStringList interface
    72  // -----------------------------------------------------------------------
    75  // -----------------------------------------------------------------------
    76  // Getter methods
    77  // -----------------------------------------------------------------------
    90  virtual const XMLCh *item(XMLSize_t index) const = 0;
    91 
    99  virtual XMLSize_t getLength() const = 0;
    100 
    108  virtual bool contains(const XMLCh*) const = 0;
    110 
    111  // -----------------------------------------------------------------------
    112  // Non-standard Extension
    113  // -----------------------------------------------------------------------
    124  virtual void release() = 0;
    126 
    127 };
    128 
    129 XERCES_CPP_NAMESPACE_END
    130 
    131 #endif
    The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented.
    Definition: DOMStringList.hpp:37
    DOMStringList()
    Definition: DOMStringList.hpp:44
    virtual ~DOMStringList()
    Destructor.
    Definition: DOMStringList.hpp:67
    XQilla-2.3.4/docs/dom3-api/ftv2link.png0000644001725400016040000000135213273140077014452 00000000000000PNG  IHDR}\IDATxMOS[sa?-XZ(PD4 AWbu`b 77wHFCԁ/`voAPqP@ 980 +y^Z9SW\83g3'Nçl_bpV"ֆXd]3xM[1W *PGz/Eg{ aoV:这1$RW,@56-,m/蹖 r5T*S(Vf89u գwa=<{ҡUr+dDF$`zNܮ0Q3~_^N=vpTLT}kqm<?ZhX_ݥ[) `ga_*2`'=F2EP l=8Wv%THqɿ<"GxH{#֫aJmKsVءM^ T ݛr߽m_?Wİ#uIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocument-members.html0000644001725400016040000011427713273140100021702 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocument Member List

    This is the complete list of members for xercesc::DOMDocument, including all inherited members.

    adoptNode(DOMNode *source)=0xercesc::DOMDocumentpure virtual
    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    createAttribute(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    createCDATASection(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createComment(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createDocumentFragment()=0xercesc::DOMDocumentpure virtual
    createDocumentType(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)xercesc::DOMDocumentinlinevirtual
    createElement(const XMLCh *tagName)=0xercesc::DOMDocumentpure virtual
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0xercesc::DOMDocumentpure virtual
    createEntity(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createEntityReference(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver)=0xercesc::DOMXPathEvaluatorpure virtual
    createNodeIterator(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversalpure virtual
    createNotation(const XMLCh *name)=0xercesc::DOMDocumentpure virtual
    createNSResolver(const DOMNode *nodeResolver)=0xercesc::DOMXPathEvaluatorpure virtual
    createProcessingInstruction(const XMLCh *target, const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createRange()=0xercesc::DOMDocumentRangepure virtual
    createTextNode(const XMLCh *data)=0xercesc::DOMDocumentpure virtual
    createTreeWalker(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversalpure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMDocument()xercesc::DOMDocumentinlineprotected
    DOMDocumentRange()xercesc::DOMDocumentRangeinlineprotected
    DOMDocumentTraversal()xercesc::DOMDocumentTraversalinlineprotected
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMXPathEvaluator()xercesc::DOMXPathEvaluatorinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0xercesc::DOMXPathEvaluatorpure virtual
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getDoctype() const =0xercesc::DOMDocumentpure virtual
    getDocumentElement() const =0xercesc::DOMDocumentpure virtual
    getDocumentURI() const =0xercesc::DOMDocumentpure virtual
    getDOMConfig() const =0xercesc::DOMDocumentpure virtual
    getElementById(const XMLCh *elementId) const =0xercesc::DOMDocumentpure virtual
    getElementsByTagName(const XMLCh *tagname) const =0xercesc::DOMDocumentpure virtual
    getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMDocumentpure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getImplementation() const =0xercesc::DOMDocumentpure virtual
    getInputEncoding() const =0xercesc::DOMDocumentpure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getStrictErrorChecking() const =0xercesc::DOMDocumentpure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    getXmlEncoding() const =0xercesc::DOMDocumentpure virtual
    getXmlStandalone() const =0xercesc::DOMDocumentpure virtual
    getXmlVersion() const =0xercesc::DOMDocumentpure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    importNode(const DOMNode *importedNode, bool deep)=0xercesc::DOMDocumentpure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    normalizeDocument()=0xercesc::DOMDocumentpure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    renameNode(DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocumentpure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setDocumentURI(const XMLCh *documentURI)=0xercesc::DOMDocumentpure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setStrictErrorChecking(bool strictErrorChecking)=0xercesc::DOMDocumentpure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    setXmlStandalone(bool standalone)=0xercesc::DOMDocumentpure virtual
    setXmlVersion(const XMLCh *version)=0xercesc::DOMDocumentpure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMDocument()xercesc::DOMDocumentinlinevirtual
    ~DOMDocumentRange()xercesc::DOMDocumentRangeinlinevirtual
    ~DOMDocumentTraversal()xercesc::DOMDocumentTraversalinlinevirtual
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMXPathEvaluator()xercesc::DOMXPathEvaluatorinlinevirtual
    XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp__dep__incl.png0000644001725400016040000001027113273140101021563 00000000000000PNG  IHDRp!]#abKGDnIDATxiPSWǟAP0LH(TDZSjE(.(JPAâ,vAV5*AAqcE[DEZV*HHHۦihoM<99M.  *d 'To7oV(Rrx{{{{{+Oo>s挋˛TWW~پ}SرC-O2A~B Ld~uss~2RZZ:w܆pUcmmmZfvuumiiѲڕM6iDJ !oR+?11 \.ñ$%%egggee:tðݻwmѢEwtROO]vD"<^__ly޽W,Jnynʕ)))p1sse˖)5333f9޸qcuuX,&ק@ܹӧ\.D".ǧOzyԩS_R+1uDbcc O:UXXK|T*5kݗ,Y k׮/Rپo…N\^^^hmmmeetmו̍7fϞ#y<ǓZXXp/^YTT|rtWWW޽{-Z}QL* }}}CBB;D"qwwFLq1̙30 cÆ Օ@UW;j7.--]rWbbboo/aP?㈿j;;;___>jժ &>#Hbqkk'Mdbb"mfkk{ԎdQ-++KMM"JfddL<Ν; ߞ2eD"gnP8sLe WVV=z4$$$55U gddC=}}O{;w.66688m2 6=~#GtvvtRFFW_}wRmmmՎ={Ǘ)NԞa=RSW/<<<8H$ںu+EDDtO?N*d2 bc7mn*eèQy ׯ_OmllBCCg5D"–aaa3f055>}z``q#F+++!|)J5kVIIMeeeTTp U-[[[UOǏ\ .?bu$&&9::r8#J✜z{{  ϟ/((BX| kjjrq[wuu=|ТFMRƍCk׮;88;V1 W+eccG48B@ss3 7@Ayðxxxѣ>Woo\.h2 o$@_-Juvv>py f͚ㆆAhnkkkllLKK3gZGGGBq |Te 1 f/^RQQ!ܹsqxE*III---+ϟ;w"==/FEGG]y^vzVXdɒK.jllJ|jڵkmWW|///IIIk֬P(Ρڔ~aÆ}g~~~j'|4?#ab ߝeNNBr/_ 꿖D(A~є7 OUק~񠯯֭: ?/FP.\xGo2(O)?_f з U0Y, N30ghƍ8]w2A~B Ld ' ?! A&O2A~B Ld ' ?! A&O2A~B Ld ' ?! A&O2A~B Ld ' ?! A&ORtGddז#l LtB+X,.oذA2աW[&0] d ' ?!S]]B!xT ˯C?mڴI*z{{Lub޽VWWW`0u͡~*((`2/^ӧOuww%%%ۛ899]v A4LR.\6mo;B`gggbb2s̲2<`aab6n %==~ر{Ș0a֭[^W^ 1ceDDP(쯧f=zϞ= ?i$:!J d ?٪U8N{{eYYa)))t:=''ŋ, jkkroD"CCà'O'OTwqՄVVVxG???77)Sa˗/D|>|||D"QJJ <{LS.DFFzxxU ,Dx/\yjjjnݺfٳ=CO/^`Xќ8/'|B8q"d 6Lm[7^ϯ$Hcmmm>@/ 2Ԕ4gΜ(>>6Ԥ[X[[;99PeFh ' ?! A& IDtIENDB`XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__dep__incl.map0000644001725400016040000000066013273140101020526 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp__dep__incl.png0000644001725400016040000000673613273140100020633 00000000000000PNG  IHDRpݖJbKGD IDATx{P!86)H$N*H :T 5ӡҫꌔZ+eD6)ҫ) h%%%|A!c5@ $PL&1\=$Ipp-[BCC҈W\.700`r QQQ\$9qDI>9;U/}:,,ldt\.p8 ^1Ϗشh4B'''޻i"J%a&1t̎f/_T*V! H"mc8tuΝ#(/%k֬Qշnݪ3ao%QQQ |Gp~oDEh4B7[ZZjǸGҹ3;\?pָ^Mdb;;;;::?P(u*\~UHdgg}^i4UV1̱zqppDАF BCCH+++͑#GRSSM>A~/,,tvv^hQtt4BH&avҥ{b8p`ppdᓚ3$|>'jll/f2: !T* v)//}oܸ麻 FGGqx7|G*":::B7osםLNdkfc&F+++?? P^^mmm߱cB#B(66ḹ}gġdt7cظb ɴyA7o|>?33SӍJB-]!D=pF\>r|nf&FӉ[ĉ!Rbbb||| 6EEEc,OC;wp9Q*ͥ<޽{v//˗/766fgg9::D"bw$ ]]]Y,~III0LV]]}رq =s/HL|KXl@ hkkӯwСիW3^xɓj_ᖔ r6~Hy;;,,,kפI&ela-9+yT , ) 1bI$ @ $P@b5O***,-Y3R) ܣ aK@ $P@b5{q*IENDB`XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__incl.png0000644001725400016040000002361413273140101020355 00000000000000PNG  IHDRbKGD IDATxw@Ia@(*Z-"PP Yj[WQ""X'jA'R0 @2F8.y?~ܽ @ BZ2ƀ@@_TWWٳ厤.pvvvvvZ21Ο?oii9b 8˗5JHH}a-a$1 !@c@ Bƀ@ư%,,U@ww7Jݸq_JJ G;++z > "Y__&$RC!22RGG^x'!!AQQﯦ뫫?~ѣD"k###4U{{{qqKhh~~~í 2PJUUu̘13g}p¡;44ݙ~n@FFF>zӧO.\ؽ{ Ϟ=믿233*|*NnooxbZZOrrTjڴڵ+..eeeO>ThP9ƇB x<L$/^gddiӦ)++% FbXZZ]v1cP(___*jkk 100>>aaa>i֭/h___gmm?5Do:]]]1c*++g͚%XĄ2<<|ƍBQ׬?hbb6o<@CC#0nܸ ;rڷ RٳzzzKIT@ {6M]]@ ZMMM%AϜ93sLiFwwwjj++KIIIEE>m ]`_!J]V[[׆>>i}աE3PP9Fkk+Nonn...޻w/F[v-o 5kH\xc&O1؜,޾}ag@cHIII$BD"L6ziI䥤Tz{iR5/0 Ϸfs]\oRTWؑI\,H1vw+cn>>!aWDrtNv,ZdyL#F ba$Mglbcc- }UTǏz!\39y2ê˗QR"==?g0:CC45֬9k|aO9~޽vӦc"o1EE٥K`AL&kٲ#&&Zgl:9Ȁ H`K͛Yt!#';vr8'1t@ 򋳵//໎F;bnG7nPSl~D":~nnԪ*8wFyłXk&\==5wFы8cxxOKnn ,#A"33c-"1Ν+{u 1 utt{xtv`-"4FCC9KttTkk6$rqunhhqc(뻬W_E.\h5$)"?Ff擂]G+S&$ls~;1ۻ~3|ިύΝ+<|*Z !n+\.l,_>q׈[QQ5=> JKΜ옋 ή::f2Y?xIUUu>r bd Y&89Z]ҕVIG|qwb{Oԧw=[&+)-,&b-Gs &uMOSaKh͉ŵXkhNo;Dɓ>DȌ`snY[KZ"n*+}B 8'55-`E(+ϝ# T& 2vgX =))--6$ G|ŋ˗ٳRJ 8'V{ejgkkad>kk魭]X oplZk%[.?zCDl?a(L1bb~V'yJ[LOƍRStmn=ggXk!ii<AD"GD ^{D"eBF/O.r%MJ*\&&_HOD!9rYxO;#1\#'YSS 2rp].?}wiD .f0iqDnJJЙ+2~W%ߒvvaoo>A"K"TX(1Ο/R^k!#fjߘu+m"g@$3ɜi֬ iiFFZ;"61gӧ5 {{~/ѢE&wB_]IIiΜ9?z7@066szb PYYpvv,Aʇ^7矖 ԱV1\deekhD&innڊ~>{G>|ɓ'{IIIYlE TWW2{ (###-Me1L*7o._|XjjjjkkYYY]t~o߶111ꫯ999+ݺukCCț1Fgg&c0TN ҢP(AAAl6o߾=nܸqijjzzzk._lffF& Ghf999.nbbp‡񩵵믿 ɓ'kjjɟ}޽{|wٳgPPP :{,… RFF`;vL4ǧL7o422RSS 7 Ξ8q"B |~JIOo1OOO//--Ç;::Ԕ޽bŊ;wΛ7/00pZT*FKIIutt ȱc(Jff7o\6}ҥ_.)):ujhh( WWW&Xv-Ɍ477 E WTT6ѣGG>ۧ@KK +mmgϞ!*//ω.%&&"n44O5f# j*&yE芖/_^^^^XXhdd*4 n`'rRr`0fff[mҤI4 ]͝1cKJJ8qbff&mYY-:.--}۹\@t: &&&III|1OH/^L###AO>E2"ehhhnݺuϞ=={vٲe9 'NPVVCxH!TTT: "'Hδ#***VE---ퟧ-A󝜜-ZtՁ١rrrϟ?3zgB%%%d2yw_,fs͚5 ]mK~ݼ<###goo3˵@O Tf ud 2(ܜc((vurHkk;w`qiiinuu5yCbx<^zz:N߸qիtׯ_A&LKDB_{oW\~tww߿?Â܁.Ă4"Tf7 B/NN=Ys3Rr(=˵>pNANNNym۶MpbffVZZZZZp͛7Tb䌌2bV𨯯G8qBdeehk׮vss[tiUUUiiipp0C0-_[f~kk+m[[ĉ-,,]V^^ijjpn[lNc l2F/~f ݌uƏ}v%48ccް!~(%~;s ==587d1ƎSS_a yeee__ߡ?c8.F  J%ǫk!OƐyk!7 zϟ`-"3׾i&%rdd/{ڵ# "Nc l6͝;eD.jjt z;v;#DKzF-~h{ZȨ#>^ppֱc.Z8`e5)/*F鏂+DΌai9ŋf8iܸb~k-ΌF22[^b-d_wcΝ>}pf %K&ge=ZȨ mmtZ3c֬1/(hjjZTU5yzƚO˖M!Eŗ7oZ׭?^=!aߋ g 99M33`-3ZZ:\\gp- 3uޓ'ՒyCa{{[4KMWQZ؂Kc,\hl`yY$ěnW۷Q(JXgpi yzQN3ry۶-+{3no=J1aYYO2B vSHkGCMMiίr%df>33Hx5ߪR ;G^ae5 k-a`ic3ԩ;X ^ Nvv3"A-[<^_ҥ?xV/Zd1J Zwc==8=`OTߺUI |_SӒ$6'"7 Fߵ._~P]5m]'Oqr}n!3m..T]]xEc~au[+::k!rw"9YQQk9CSS*2vccZ>w֮4 EH:bb 1MΟSZDA&K9ef>T \.oW;kdDZq2`)vv3"nGGd7_>i4}@E''_b-d:##=7Z ?c(kǣGcߋ{:[[3@A+qVPENJGG!cZ-"6BΫ9Oc;&0&"֫W4Ϋ9ϡGtv\LZ<^v˖FDx]xжo_6ZΫ]]O䌊IἚ8BXr] z g),|}t`Ϋ/OO9#cٳOϘ΄ 66ӆi?WT4z{/:pH$w;9jo 3Rhh())ǎryMM_&=ñƂJ*.yb/֋!"G{ 4ZD"<}OSSoOؼ8.D"NMefn8Q[ b~)* A;ᳶ~Ο+\.a1::oF'~9N E{$;[ᕕY8~@˖zF5(|FGGOJ6'pN ^f]],-MJK+.\(SRpuCO[T]QR+-/pYPmmK-J$ƌQܵk<8#.IY;B1::oS$+u$QIgG=<@W1}Fwqv$rRrOOxѣ*ɌD"nd}2CF2_o8qH$g$ɓ}_5,Y 1H z05IDATZ)׳};h @ xҥO}9rlHIDyak+;=kiiPsƟ綴t|zVGa2YKpx"9QRR"p1^٤LHO73UaᛣG~1IM}ia1PަP(SLZyo߾-++NOQSSS;ǀ@4"h Dpooo$ ՟={&%%ΏgggȔ>0agSS PT;4Bee(J7FVVVUUihw}7P3g~-[L6\4.11dJ͛2q{QݻXreWWЯ***4_gԩ>>>͚5wT-^888xB5"ŋ/^̘=FNNtvvlvPPB bƍ 7n'pؿfffd2 99pVonnVPP ϟFP}ddd)¦@ ]re<bΛ7oFvvĉ)J@@@OOPw C%C1<==>|>XSSSRRbnn{nbŊ;wΛ7/00pZT*FKIIutt {/7ȯg i#GTUU_;@9Zd^x܌fX|yyyyaaQhh{c off&&MD3fA'fffߖעGa0<TёN#k ~uf!am>c v42PNAyyy7WTTG$--Hhh߿D"566#}$SQQA74:R'ɥ H~~¢E^:Pv;;;tYp_)//1$''d29++kd3ƹsf͚5P^^..4Bd2Yh6AsU622zΝe0hVWWϟ:thZ,㥧7^N ~uwp8!oЧ7o/^˿xX_ QQQ+W|(C :P^^;HPtPz .kmm}:͛m6[HHYiiiii… 7o}::t钎:Lg2jjj>>>_www``+@k!fhh(##3iҤl{{{mmm XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__incl.md50000644001725400016040000000004013273140077020354 00000000000000bfc319156716cbaaac79951c4f1ad42cXQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp.html0000644001725400016040000001162213273140101017266 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathEvaluator.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMXPathResult.hpp>
    Include dependency graph for DOMXPathEvaluator.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathEvaluator
     The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMTreeWalker_8hpp__dep__incl.map0000644001725400016040000000024113273140101020363 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__dep__incl.png0000644001725400016040000055455013273140101017233 00000000000000PNG  IHDR ;P"bKGD IDATxy$u}?>ܙeEX`YEch"CH5~0BDH(5_r. ޹{񞩭9v=y?GuMu1=y}o2"!B!B!B!BGԉ!B!B!B!B/8@!B!B!B!:0B!B!B!B!tab!B!B!B!BxcN@!B!t:tST'h>v}GB!B!!B!۷w}]tщ#~/B!B!:*Ll B!'.~}B!B!Щ:w!B!B!B!B!B!B!B!B&6B!B!B!B!7Ll B!B!B!Bo@!B!T[w~sk4 ٶmW_7k{ ''n:11|3In011u%޷o"B!B!B'sB!BSɝw~C{E!²k6~=xW;vzEQ,߿aؕa#|߅}_d2vۖ-[/m۶şg^~8os=7K. _BV[z2;xp{B!B!N$Ll B!'~=_k/9I^z~;r@w<\袋~#<׾6+b``[omkBi/re]qwuaw}W]u՛~>,lm./|۶mϽ;v+/{w裏^uU_~wy޼+W:T柼757½!B!BSvEA!B־}jՌ""VOwTo}_;oI+I LӬjqǓ؆ gm64Fi6O>%7(>?ӛޔ^նmf??K$IO|⬳ڷo-[~{ߛy|_?v~_~'nK.V?>gM7ݤ_$3U=( 1c=v9稪ڶ}>;\.'^wu===CCCWG?k.WЇ`g_}P?}x$I>AakӦM \wUWo _O="B!B @!B' ,նҲ\ xQx^`YۄaQ冷s:?3V,v m՚*l>Oi<{vβ,sK2$q,Ku3c$}y RI~y}7r%,δ%BQ\.o߾e 7<<_袋n喫znK__[naM^n i$%=`X,y^)bAD[~X^d 7~{P X|5NB!B!Щ !B$SAof-5-viܛk6S  #F+(Ҵ4ü1v]=`N0u8<#GgYJŷ!IRUջ_ O/s_`Gs98GڄahOO<4^|Eя~Wp/׿f ::o;8s,zꩧvq 7̻[$?OO~k,EQSSSALNNye߿~zСCN_2M]9>>1t,r%Q$⮻w'BX`ZUg32  DZ<2 )3TJ IRLFb:@Q$3A!B!B'd+B!5 rmъGastBɂ ɽ%tݎfq 8Lp(u}vJf,yG|͛!Paͭ $g #*$חmἙy "qca2a[6K>RMef$K)*J&E|?ֿ_{r]$ӟ.F; ø7,r,ymb{]櫀$ a H B(A±$ "IiJ&I((Ⱥ4JhJ_(ygiz Y70QU-ͣ/"@!B!Bh0B,5OD,sdAdRx @T&#(y%82!vN]V&'xZ5u>bQD0̒GaP(l޼K_R$K_Wm۶MNN+X֭[^~%\_zǎp믿;e_]y xw]wUӟG>BW_}w~$I /?L?s=w_| 78׿+(m+x^գn#Ie)8idgZYA`e8F9"S)AxYyFE}? {Q[Vq|x˳m7" ,x7Xvy8 4ԄgxoB:=ϗ"Ȳ$if@%r#F>$$㸙"Ъ0Fu[ð klvxV3 lng_7<$ cǏ~ON%y{z衣<A^Ʋ̳,IAaQD EELHeeYF9eR)lV8:+YS)a(IY F a6v;eaiH]m۳aLӱmϲde$A`ESUAxIb%OEQDMDEWAUTWUQUTJH5Pò\mO~Qۚy{]3'ð3mdN[2jy5GH4YPјY4qfijyj=o 8QUei( "" ( +Jy[V8,K,04M$ H0}Yf{`j@IgTXx:(|?WmjMjٶkNقZI CR Y)M@:}˱y#? qؚ 8E t݉BtAx^bADhsK,}q1쟌$[,7I~wHM|v2o,m>B!B/L!i 9Yt u;"]-^@ 5 G W8аGRruv C)@34aN'́ИΛǛ8R)Ht@!tDQ49ՊEXԦZhX4㸮~7*92N 0<ٙiX4ƪwEQѡ]Ngth6[0_iF 0ʕ~Dz4D}ڲ~O|/eu͚\E7ъRBd$s'r9.J7ӎَ6,qǃ f n4al۝{E AFT=oJ*]NR)Q9Qx8a(cIB"i:4K~;j\pq43$I<AyADFi AJ*vtșёf8LFJ%쌆dY"3wE?7yw5G+ C'q]d#VxUz B!BLl : Ba3VfCwMurSbL=b,r[ER"-sAoEi0# ^EQHKE <BLU*飣xT+^t2L` I Cq#$q"b&#rJgեvu2NɆ P$sM=ӓ ]w"8X,9M$0ED},!r)ETUE6""]7aFbMSau9'?C)~ۺu뷾u y/-Aaׯ/]6U(JWW1gUF- *̻QǕH$Iȅ+IgR.'wt|Jy؆Lf©^02!qsd1xIرme|D ;l] ! h6[]}I ?w%$/W·ѥ\=n>(,;eB{!BS&6B-Bzq)oXYYr8Ͼ\yke,x9> qE_BfajVMM5ecz40fs]ö/@$ILCy蛐եf3kt;H2w$wMv썒,K,òEQAsy&{{3,I( Ca],j`YCR 5qn+ٙz[{A\vٹ_  ww`bcnzo'b~$y3oۿS 4*uMJ%}i6,LOyI|^I MQDAyٚfZAvtu]]*$9QtOOzm[⏂нq<#jm-\7h#$M C<S)>R)! '+ȥbA1S2 ' '>mWZͦS5/d~iR8cH[XQ&i N4(J̗h4Jd!zj{TJA "!]!MSs;pݝ.T IZ-0V+(O&J/0:w3S o2gxy׻^я*U:ݻ{Ud<,R4Kfazz8tZ*fKeT:-B,YH4iH^mXu$kx *Y X2kvbxf8kx}ޒG²tAق$B8HB'(" W"A~HDz AzBi$I$W\qTxEh3S$.S B!N}Xc!NUЌR7mR՚f[kY-hL,׶ݶa$q) ՛EW*r-I, ֳ,(L;֬;;SJK,a0# HO$IA~8iLөVjjA̭ۛ]W>fuݠR1`}rW8&d#/y~irAD C__x+:zzҽl~56V[z$M2a.ޘ?sW~7wh=9YO~Wu:-B[f("(`:"]w&Pcnx?$G[ etcYɓձh^o eEGhdYeg0DӔ/I(qCtZYUUөJ IÐ[x_S7ivf٩J&dRP@NQx$Y06hX43`[ 6*,%I(r/GcgYFUf3tZijg!t[B$"Q$n=lȈ 4͆OF) -l`&#yeAZ3aH=;J EEAFD"a(@i"8Li<Ži$%cDR$'n?la+"$yw|i8w %^uNKE,Lr+Mn, iF I='ժXRU)2IUg)0$ p p<3G "2gF9dql%#R_* ^)Za8ju]}?ˆپf Ta*X33i sً! OeR)Uk̊_SI\Ӳ\ ap&#[]iaA-N1/2;KQ,8fj4Ųt(2yd2"1[)IEX C2GFIx~&YH .B!tzB0 u[8q8l:2͖ۆk܂* (tz&iJ <]ɥR,LBS֬TJńQ.ժY.,$sCTFY>&f\NVUI9Ib)ic)I a$tt(T15(lLxgENe(elT''ͦbJUl0Yd<8$J~ϛz;M4(g߲P&FQ< (}ZAzɲ.0̃>HݟٻGnW_}gl301qG: h d2 փpIQRl  UV3eiŢV.V.Ţ `YCIwv*_((zrwn6g@>;qсysO*%HiQgEPUA \tkHެכŢ^A8JooCNwv\N^g9ulAQp1Q/bQlLOӇ{tt(B+B Cӄ0X*s{I|Feۮ瞻浯xggNq'`ͻOeכ<3kԳN[ Ha\#b3><jzO.$Il\zjq}}?4Muukv_90{ӛY ?o~[4P94T`t$qݛ6yfM=gٛ+˻cDӬdxGl\qB饶f.mrƒ[H+0)b4[Ţ/R1aXMS/:;SOO'ӓY7  a<-p+z<2/ 4 "k:ؘeT 758qLkۮ4-r]u4- Æ'4 LӁP(2{`4؅y&(ѳ ""3Ma"guܞ00 [{p삄GF@\l:p W9|LqU/I3 c @e $NL5̳,EB!tB/4nbhm4 VڼCf`M*%$,,5՘lÐd T.'"÷vuiTҒaP< {c|9]:Mo:Os__qs饷?Biz;?ۯ~73O=5^A,E10pev|c">ε?|wj\r岾Ty??[ a=~a2yq׿80s؞=={;wAWtZڸ{x{d.~~H u 8[x)>" ZY[PC^jՄu:-rr.'er&#er6+er.'r fUJvPmkbZX䮮`4HΚ5eT9jqE$IIօ!I2٩ӸfMn͚@N9h2oxOg8?KzxO786=n lŁe2:DE@=$ 4͎"{1ailA0x(;Q!Hj~l 1,$BHH:-$(M3 -,3p8eYZ8'IRUbq EBOc "B@bHayţsUTJHEUS)2˪*̂(r'"B+yACh'PEQDUy èt5ͪfӁA݁IIEdDN u$YFJŜDXԦW΀JA( _(3QyA`((u=Msj5srsJɹmڦJac}o~m{/}T\8QvMSF',5lۿ}2_/;vZ &M_uCWA\|->;EDE Cݏ,c?^m'v-u}i n$~9s74k=ݻ;w5 ]]k!q='0yfU*P'A|l0TGGS9ӓ^$@ں9Xɡ0Y|LHzz20&OMiBa8LbcqsTVp썟Ft`X. ÅYJLFQdXzV/q0Z3>lsʁ@u}ri`;&/<5sI%VJ&wwɂ;w.~{;K%}x+^oL7岱c?c;=/Joٲ/_KQԧ?}H~$Ixv;7lXf'F.`R)|Mo/V7gݷ\r퍆gY+_}o[My晉o~w$0}[׹+JΝ{!sS,n]ƍ]ȝJǃm-W \'&̟ ]r:-vuâ(׭ZVZ ╵Z3ze>::\NqVpob>5MM5Ԕ6>^/Loo7ӓvw{{3}}$KgYD}hut69Jr٨L۞ &I2 C]3yf]C@AQxU$*ĭ$S)AQr*%HҩpMӱmq)rޝC#\TUYQdS)( q <{ǨZ Lj"ϳszJ!%fh MdFt!>ZM Z躽@ DxSB3 _i$tZ! @NU7B!Nr@C6Va5zݚ] +Du׉r6+e23lVNg*ab*%.c.B!tq]޽GFSSrYTFr]i Z ~w0YyE T&e/381<=81810бժ91Qlk  `Y:}IQi3z{3+69wo晉e]zВO##<[(r[ w޺a3]7m_7AyK+u_ssg=$IQ䷾ .Xf=;caw ˗^E]w6X>*6<37j|-j4RٳgO(TUX7vuVoGèR1bQTbQ>=mZ\wJt t>̑+]]BA]z2qp$<;Rj{pp2yW SS) ccD לrRI۳{wqα={J{c/ HrqF a6h^,j*`yrWu)`en͜%g?'d XיSP`zHu>ϳ PU]",Tf)Y$>&KGf-t+KXQλ!B!B@%9 NK%/$㓃0(yPPTBQCe9AA躾i0T.'d`uk u` p at{wqϞS0O߸{pc"]O?=o_ibQj^o-AQ*:g#~/X@mazϿlOu[aHAԟ˿w-{{?$IB*0)# JŬVbQ6RITbQ!]w⍳YPHJ>LX~`E!tZZz1% JNUζF\}dztF UR_~gصkgAaCaÆ7l( w]_x@,FFY)YUU,7E}{**/}o|EٰpJ%m۷|O?=`yۼy͖->dK{>V}⸀JFo|㭻vMnPO?*AnY+XH&#>?>y>p7^jܶ~$ IDATO]W tAӬݻ;wSܽ3եn޼fx6DȽ%[ɉa̼A,mVUAŎz}>G֬VjՄ*YYժ"I&Y9x%ȶ=rT'[ov]gٳ#dС+UfQY2N*2O,mYcZf۴%95weGG;|D[aHv%ٶMN2s9B+ fmϲZ4-M(rȪ(˜$qīJ."'\*%2/!B+ N"iR0l !)d%IØ71o/r>po_hutP*{\(~Lq^5W,Ko{ylYWoX"n?|7Es<ġowUOOf%7kwVnW䆒.TEcj7ۮ..>-sI8v?,K[׹ys?4RJ?'iR,6Byߟ=vAH$R6lkuAn`Y-x[E[ 7mٸ{UD U##P㘵kpߠPAQNoЭoi:nm-haʙ+[F TU *JɈ˂'ISB-N7B@dö]4n |nyYRUAyEW! [RUQQxEeY8U>W :y`b4[)XԦ te\aA$IJ>twT TWL}]U%!NyؑdgA86V;p`z CY14g,,LAs;`Ӄ`5mF"b!,KȲLE҅Bjݺεk0RuLNvMn~doo=y/ߦR1;Ƕo?}VL{[ m2tۨכg?u˖czso~zj4JDoowb~k]wO)y;wA#={##U TUܸ7uV^Eq :v<j?@;-]w0(JTJLYH:EmLWڿz|!I; :OHlũt4͎u=8ha~:lt2B*/Ϭ =U-w X<(HyG2vB(;g%i9af4[L&lf˶ݹ{ p2Hͦ=tZ"_B;@hi55MLԋEX륒>9H'ٙ*R+==K-RX!)Xw$Ys[,P&Vz^ɨd㩧w{k9ߴ7fU"ق!KGd75 e9m;Bd0 IGڵczq/߯__?y[^|J*W4RhvM Ů.o@){JZRI{٩D&*4xsYN\NiϧaC*qRRժI1CC68kxzp^mB~kk2oz`m[h`?Иf :h\l6[ft5͂jce`|qCUYȃEI #IܑǎB' !lͦc-(|h_4Ml5e,P#w~gyRB&#%d(B025*Yd{gӅݝM]]ܺ!Du$Y-LN6##ݻe {{3qI3\i{{]|rGJŤ( YY9M3e#XP(aٶh4/C TQ֯/]_#VNivM|O|WzG?.:r~z|?כĽE}[ mٲe2?Ӏ0/}ZͬV{L]""c暭y͆twwvٻtm$%+ Sz)hn]'U:͛ `m&A̾B+c{LMM5M(EE("u+y*~??twɋՕ^=4k}ؽ8:Z836l( woЅ/cГ0lE;b\BP#.2$F!(U_*%U=f*⓿m\e w9%vB$jfK,ӄ]+r ֛L}֙N~M<^BBc##U8Ɍz<#N2Ȁd |!H4͂ݻ;,*Ca3P &M؍m՟vWWuuc_]W׮c1%:PB04uT`~;Kr`=yN]wA6Bᄄx3lpBƨc쬫mnlp&''|A~hNOX6 &~ ڳl?Ts89(bCO&e FYY]hjR=wu/]Z]"1Ւr}ؿm#Yޮ}՟li(+EݢXR*MpJ%fgs@iӄNd778 vł's}lAU{ -5#%ШT %%%%) a29M&E$d9 Ef(L&ŢXddY,2E>ӟ ]g}{<~ yy|/(DQ@6>Ŕ#i]W9#1rj Orǵvw&IDbzˈ$"1{s#]hT0exV%wg 2X pJsa{> AP +;K® &($V(!{V*"qFn./;s-1F`)|>&ʠ 3n"^oC2{wSLrn.//E. ?{r>dPCC'$D*G,fu+?_H&=3fdE=Ӌ]${ y DIimx[4̘clh`yz{ CB +,\SvZ^oG5C`7\*KE4:1x<KDe墣C٩G0T*=ܼR IE@L!Fc3T&oR*YʆONN"K$bfdб@@OK0u$ho״ iJC %%?/ $~zDc<$$#>>....  Rf&["I+/ϔJ$>_SPh4() PX@^ސ0s]M\.GվĄ^xttzuu=ryϡC6BI)+ˬ̖2r'J=v-uժGsJJKo@ lv|::1>,gʑ#}o}把U.3'/-u+ڦ&OLOOgJ$Lw)GJZk4E 8Pii >|@["hJ]եCûJ^/J! Nicp~¥{4Ȯ"s8Ttl "o: 6M[F"oN) Ҵ|>d?xV+O2|XrPXp|hqtbq|ݩhD2$dr A4 -F"NORSTn 1^1i-6]juE$Ixdt҈'&'^o@" 9CvBrrbZ],fcl-1av 5d 47PjjDG sF0oej.6xxͭVJ&JKUU93gfUTd$ XZ^jk|laI"=Riܜpo2"2X4px˖l4:{#3ge=]~y9@hm՜wދ;wJnRWK?Q]-yKKnф!fB؏P(m2d|>-ڍ`y+E%&yEA`өt&r+7ݭе !%AAAT*6-M*M;ͮ:p2Ѱa1 FD"tBl iӄR@*geq&ӣd~o<<";UG||p*xt)APΈ.u!%%HL.FFkOpS`r `c0ػ (3n\\@@d#AFVŽshlLDQ jխ@;E"i¡,Έ KZa1wl܋-`I%XOc);ؒ O8VW{Qtrjd $2cQza?uyLɊbb/h9fs02dqܬ6ϧ!=T*HӧRSGS3NӈII P&t.*1zȥbA^\6bqloRw eh,U7Xl6u:=(Xn|\ oAy.N-!!!B!dP8 ,[HiT*Hy*8/`6LNс;ى.fS̡;6"LEal6J aL2@((轳Se6 @ $''ffsr99lnv67'ƈv$DܬnjR5675:;`FK>=}tQn.ǣ%'v/Z_F8tzꉽCXi`\.ߑ#۶5sJe&gȪTTde`ܬnn8~\ܬtYX. >#??}PWV[zhw.\]W#ttpf&"H$r}~X۹\_lYi[42G-[z]SLt_^6쌨UD 6K3ƠNQ鬘]Ԥx "oX#A2ؠ|jI2LNˇ 41=%а'R^iqcS\AuX0I":p89\- l}(V[gH։WFBDE}PRL&**JlmqX_O`o鍏Pdr X\R=áB]e1n,ybw{<t2|"LHLJII1&f݊FѪMD ΖB$:@ &rB_ T *sT1gX\V EV76BA-qج MLNB/F1< 23lR(V#H [j=t@Y دP5^o 11>=HɑχL `a+(`E !G ff@ pT4Z(.N/.NFTqdfeEӧl {@!1tщ-!Ep(P _=wPLNjJrDg\ 5"䣝$xކa~3NG_E)~z`8uBjulnpxl6fs/9cyvG$HRD*`hT:=FK=q@D/ӑt&spn08t:C vTHLrϧ L>&2|@@*jb8W.F,ȑ^ZV&ːHޣUH$ 1>4h==&uoAUUX}Kfwۼ^4 E 3ZZ4J?QKJhb̬;Yz=,_>S()ïH|>2"2X;51B77{{ӟ`-=ڼ~]ؙ9sذn 啟m6u_M@,`{zz h[ж : 8$"X.`}}F?Ri+YSRY,2L CdrԤi3e2L&͍NIdrd}}CRKK3JJĥ"YA .M9k>`nA>}5DRR^q3 U !do9t:FcBI>! tKOgѡPlglmhjR?njR xtߔ_X^Q-fQlv̲o_5)+*WyO8nԤ޺;sr{dt:}+Wλ?`[` ]{%$ċDL2}}F`y5HlX**J1#vTbi2i@m$6o<ZteoN.z'w~Z5F8>}睝Pq|2n1J Rr)9:;uP8))!;+RD"2 fJ JQjv]Ol|8"1ͦD\nf&edH1 ~^ܬxdr̙3˳x5U0h'*>f0Apໄxgj#J$&tz,e`VU*бGpT!2ә"+#%22X (61(1cJٙP\?JK\30@"T豚5^v/XcDáߴwb߾}:u:+RU3gNܹyEE鱣 ^o`Ӧc|quBB|( <dE2vOD|_navYYfsqU(dWT I4$>ܾN~_{oXzK;0-:Wjj^Q_hjL<キww%''w7<$?mhlW(t mCA*'tLM\._}}GuvU*s(JJJHJJxH/L rP[^yގ](3fdΘ5cFVa0*bPuc 6t#Nz;~y7L y7"nA\ NCpc@ 40`Q-~^oC/:H!bX|@FOA.9xK.1,NY<4st5H7`8j a>=99$JB!J%J{={&UJJʜɬYV93nph憞C( TUVUh78{޽իhv%UTdWVfϝbAJ ~ |pʕ&ǣGYr\ɧxhߖ-DU=.*5tM8PBko66 8^d " ͝8FU}^yXJe&( $^R /`Ң{P~ h$2Pu@D7#mfYq:a.?i@}nXn͍>ln巗VnG=Nhtz*`݃Ʉ/o7)&ҨRJSht \jFK,fp9YYܜ ؘ҄Bv]u:ԭRSijf喕28p 7vh 3"wj;J*fp6ٺsgہ]n m‚ *+sbt6{۶_~iX\HL*-_uUŅrBc0땍H1㫪r,(.-Zo*֬٩馹>FiW, 33y/O_V ;7K_]{mULYg JEA* MPT*@٣@,fTfs74ݍc99izRR"JZQ:Mh4lt!ЄBPHKc z)wv;|ȑ^B(/,.bs(6Fdr&:v ڱ/aS8fSgbY, Gpl6á0蟼J4ɷj`bY)1E8sUϨ>Id$Lq2D{BaT*M==>#HF9ٜl.Jp0րbciG* MVVfWUTU唔aSH$N~g^nj۽C7R(d ۱cGΝm}}FX]-EBrlwױgo`BB\8LHJJ?_z͏v(w \zHߜ9|pgIwaݺ6o_h˲8nhb297ww;/ر|>-ZmOj?/egsy¥KK`819@A* V"%Ri 41+RPfSX`\ry\__ȚE&0"1@ >ڢZ5FcVkJJJHKcәii  ii3WN%a镕94Aґdri29htlC*@HJJ`(l6ϧ6RChl6v'Z,.e6;M&^C !&11 1$&`̡$0b2L&Ţ0$(NP*Ÿux [8GZm1Ϙ yy<F (6e Rgέ̙5+ nLn 8M' GeU4)>_S|z ݳsg?4px.,XpڌY1c].v٩OJJxҘ]rςp͉;~\uz,RX(D:Yzk^#ҳbq֯ᄏK*Ysٜ9yn٩y_6M?o0KJtu~{D*ނϷƼ1Pϧ3cj6;whٲa`0T^xqԶ{{wۮ]mryO *,Κtvnv[ͤ\~ G.62,MwG_xaώv'$~pu?X|-&K\}eo;fnڴ'VhʹQiXikӼڶ-[fZꢹsV9 ]دP OLOOg"Rrae0zVVfN|2@2X>O,f#OhՒl?*QD5"';X(E* vo /`jui餱1&M1ZU#1dI җ -ture)b (6&!F_["dWWK% NibH$a 3,XIJJ`T*EUiANNgݴ~ֆ#GzSRϗ^xE c*lbqkΝm{ v.ZS#?_ZR{ow8L?y~F+ڍN`0_T,2"{֬o{u55Ҩ4{S[xꩍ݆ncK&-駦[oJeYZ*~ˣҰsHߺu?ݫKKJ2"`BjYpk;;uPBII$|QR"&0dr=4ZjEEVEENeeviLXހVkU*hsl!9$8A\H=QuPRʜ3NV׍7k󻊋dzٓNڵKEE>{X̎vƜ??v7oU w?q:Ž4# vB5@3ՈXT* {dX,&O6MB۵MM*Ǐrre Lf(n&ؘ46otz{\ŋHs Ic3|iR6c}"bj) Ӿys֭`h|ҥ%KĎP# ?ھy~:TS#9 .(FE?LNZ;? ™슊l,4 Ng/;';͞LW_'{ ׮*'-'|sM&ːH̊a䦿߄7ЅÄ<ެYgΞ;VAb~{\H||Q*NDJ./Ϝ?_ 3"b5]i6R:~2dFN34:LbqLNi29cс1fA$&a,&3db9 MA'p8z]e6;- xd)9X,2@j&sgj1 ccǔ} . Rqi<<oSPlLT~{d#,\pAQyyl8; ' ZsZ&J'2hxÌ)۝6&7wn嗗/Y"hP(|p 7b1FhQтX/4Za~CbFJNJJd""23'sju!]~0';{vٹsjua*C4qqqp8))ϧI$3239"DEg exb6QfHPm4:L!2&pLvPD,ͦ_"m,MF,Zb})|J \.FUcccCWT4d 7t)(6&Vk۶毿>woti3+*I3Ɉ( ^x^3kE`6;gԗd\yeJcg2 8йys?4eJ,ϏlC/| ny.Gb РDVryrbLTYSYsFn+JJJ{x<6{r}{OnQ(S0LO?cfgQѓ~߰$ o[,+VT>FvwQB3-U* L&*,LIkjR٣8t ʜjҌ 4#!JennVi,;tb-!!ǣfdE"fZ#-.1Bfz:$O;'1WɩFcpa0،F0X8))9xTf9*Keϧq80ΑX/ZƮ(^Bz<X!MA IDAT*5.b S0FtܿS_R1kVޜ9yg/` Á]/p嗗Ha SH$ %p 3ʨXG)1b"il|s$!!oqh7jp8,|$(.N_tٲ/X滎݊V]tIhgDryOG.;̩ȖH.FrOO?KK|rٸ-7E~FjYٚ;8*6_y's-wRN RQ(tK |@VRiİN&nýtyXTU̙7wnPO`0֦ݽmϞÇ\./`^3[,fFf&;3-A=`F؎PΆ]7α,mx98絀mA/dቭC0Tu? \#noKKΚAǁIXQhQҥ%`! Ln@\o9{[[53fd\9o0D ΍0oDY6;vgCWRq /skswj۱qnfsήM&'n Op@A*(BQPhJS8шYY\/eHiӄpßx{{v44ᢢy͓TUDe+ٳGQ[hjR%$WWKjj$g%&[>c_MpJc_wP0C4Y;3GĮPK(kQbqT i29 4%LNۇ]bQX,2Ca),Ex t,#fDM]#vDx_tv1oOy/VXcyz{ CA +,nhwRL`u:݊ZEmm^og2H%G8pV@4д=991- V0Gt`g$i,0EKD%Y⁦8nbq.e29F' N98hG^oR!$B !6{H9dY,2<@(>|gC[4 /~555RPljwv|}5UI *8$ 3)c߳qь ֭VpY[6|޺|ʕsb~jwgivYcRtzuu=ryϡC6BI)+ˬ̖2r3O7vۇnxD"wпfwryϕWxe|>--`V֣˒%Gu^GMs&"׶}š_ti Q RQ(ڦ&OLOOgJ$L|NPt:۾}{;j32kVNuti}}ZEmb6̓\-*LM,PL.Юz:{CZf&;+ 4't c Ɓ@ t–c(eɡx29˥r8T6P\*Mf)< dSӑ %v9,_ Lo:*؈FNj/B,ʙ$TfXntCE4 mm^غ}{LqmW\1#!!&n/z~ɹxqʕs?ʑ{ _ }tk9YqU(i9ٕŢhUdVogF?25Ϙߡʞ޸񾪪/B^XbE8m٩li(+^}yn0i BjY66#%Gg. '%%dgse2T*H2Y(&"==bB Hkj$u\޳sgΝ)y?i…gj-6b v (`%#aQ9MFgQґdf XrU~,}b))'o} A Zh0X-{ !ĢK;0Cy񋯸b(ހ (6O8knJIIz 0"HLN^KS{1Cu}3[æMŏ?tΜhh~!-fxq;0`z{y禚阶sjZZryOcc]*9110I4fp{׮\xȾ@p}~XnI=dPYNk^ܽ{u~>Yu,r<6 Wڶۛ%OK+\ziYg(6F8~}饫,L@" 0A+K# q`n<5Ϯ7A"%?]7+Fnh]]_i,}3tG·>w˖ DxFU]]OS*gf+*$ ?6o K_"k](G=MM뮛Kb%ټ?{$+6WJ#{I.iLp eyLru EF"%}}'N垐*%m=~!* '^|Nr JNپqk# o [j>˥FQ@ Rٴi+!JHBn?n;NR?zvն}{swͦ~ D' ݿO{{%/͚;np GQ4 vtKE ƑYB!#bek*~LF-5r68jAV.#"0>tJD#f4:L&`G]*Kr)0C>3? HƁI:drLh7L\\Mf)\.زkvo6?%w޹` XFVʕow_Rf͚COۀ^}UJVH"c*vW_}F9B6xHabNb62@ڣ4::?0X\?;xy>پY>`My^[uv\gN-`irW?{n gWM۶=rJaE{zF bB$I~Pl q˖^x /ƍGWV@IJJJYY V/@ 8~ŗ~2(0Μ~8t|O_gܾy;811aѢg.XP0by$Izv۶5Q@@ʙ_?++3mPRRT*8v&T~RiDiAII ̌!XjoM1U8 C!F8 eKƂeKZ|D,cI`SQ} /lbyy'XzEv}{@@y_?N'scCd2L?W>ZMYc>׿~c4:}qKƏ{/sO.v[3I`<ٻWby|:KHC s8>%@ ß~pM"k˖"Q! oo1]7q8s7m:+?[w5L&<n00iiS^VZXA" 'v[׿~}tҥ%0`td?_wogx knY^ƹ1 WxyJ=替ڶk_rܘSv+bob3^ 9Nlx;(/lKw؊l10g [PODE `{~o߾eYp ߏ?Í33Ɯ{\;gnSLQ(ȧOΝeXGsAOUTD:Ϛ5b?^}sA`·11ϞMT,I>}*Q R+sxŗOٸqm \\*+iI.:ԩ}-2PGM(ySpU~SFZZ}Lll,@3Azzzcƌ˓dssseL)@SSs?~ld]l99yxڴӋ] sBb| gi߯i}֯uK{7ٳiiŋ /];vLXy&M޳pP!ªkoo?{쪪* #88k׮{޽{7С G)3f̰ݻ;wV6&ï> (:t+O;>>X:9swk?q ;w0w_oimݪj, H%LfɴSϞZř3߿Lp|S 84kȐX$"u .s&&n _mraKz''o7uF? ~all,: 2k,KKKCCÙ3gRVVޡCu IDATS|,)[[ǫ_mwi鑼ii۟?_a;6s k֌A}};jnff6/^R=z@A4W^{ƍ]>}U[[KϚݻkiiEFF}vڴiӧOᅰpQ-h/R\Ev˗1ACBa/wEG/\,GQ1_WWA?C ͛7mmm###';7߳)}<4W'4R@Lf̙s~ǎصkGܼLOU0 '%GxǏW&*V>mZ_,ݼys>>>nnn;7c}f;Ν{1ztW[[#T'wMhX/\бcG{^rAOOo˖-s]vcǎVjjɸ+J.D".55_2`ɓ{%%mڱc۩{8t1Q\}XjjnΜ9k׮e2<... xgfÄD4]U.ZZK7yÆ~~?.V0ct}r6n6tQYU 6&M SƊ$Mi՚/ΊcDK4IA2%~AӧOHaÆ=x@<ȱD7qu7RPKD5S+Ic jU0-H=S"işKU$ꛏ{\Z33qStLQ0.]B k~fmذ0}FQ܉' A*J ͛W\\WcƌRUWWsܜ&ػwo׮]kh%%%K,;w}M40==G6lD"eeeϟpt:]⇭2M<|씔ggm۶I<)P+Z擋 Hjj> UUUdyꕙ۷oiiiiiiUWWedEVJ9rdBBBYYxt)==}]v-"^۠pt:]}hɋW#ZW€ʧOzm{{jozۭVg>b29 h:m|3g yN:%4cC=o^XX|>yAg>}18}t*z9LBRϜ9ꀔ\'O={,A555*"DP?faB1qG׭PA3Owqн{+ɿiH˾E=pdggkjj^x1sLoo߿wy۶m655)--}𡥥%aBdTp8MF|9\l?xcVVVUєV8%>>ם8j2jVhҤش\(DK|.K9ʙXE/$l n>,pϞ=kee㪪8ggg4%!ҏ?_7uVTD16t8EŇuA-R(ĉULTc(a :zJQ"t"OYbI_~Ȑ>z/<6¥KW~Ec؀x<~Nt:xϟ#%weyA I }c(lcr={L8JH+.66e6cGС*@:55vvkv߻ڝm ŭ5k@=J" =9b_|AˌqvvvqqTt%4qcÄo6仞Q| ϏJ-cM/&q*sc8{&#FٳgDDDcŢTƍթݻw`Λ7O>??a}}} ={bmm=xD*F5͒C聛Xc'999NNN뛛|gϞoFD$ׯ_󦦦ݻ)RZ[c Zݱc &_x.V}h4R@ (ڌ7o.66)b20Ҕ) ՖƢnUK2nh-1u.' CC͛$%mtZرGsU-#߁eٲeݻw?GEEC+ ٹ[n\?'Q "Ҙ1c뵥Iz%&n134ΨQG޿W$nÆ$.^LjQK%igѤ &XmI(hV,l=FA1&Ð{ΝuwwxsDrR$h,7 Ǎ=hUE=K"$M$i0U0e.Rl-BJ(򔛵И5yo66KlwQ|Wf0cCp8K89Z5\._ aʔ)>|o,yá?wx--9sdddccc`V[[o߾M&ϟ?vX4 _%%%_D9N!FN(:ujϙ3gرEa01bi4ZRRR\\piƍ;tիGKK )RZ%:2??=]įK +>4W3@#Zdƌ#"NsN**!$$f}yyUn-\f^}[:^4gyaAlիWI>oi>> B#,46,DLc[а.q0 ~ \TS>\E<ԩ22~   ŋ^?3fffX,Ǐ߿[YYI+##=h"뵽EG2:[ZUM%tj+}mwǏ*!#mYd4)H/)V|eΊDo$%)X}XõeffJY$,A9E ԲP#_uwlll:Ee"$M$i$oSBѳzҬ8ܬYfE0x&&'X0(!gU~dUZzxx̟?5k֘Ibl6@hhh M t6P(-[رCSS?'#H4MPĉ7nXPP>bĈ'O0<|h*fx>A/_Rǎ(sQ(׸bŊM6H9 hTUUxb„ yyyWFuJooǏܹso߾VVV/db&M ӧpɻvzŬYӷo~1)/uRZfڼy/_|lٲAz)mPd_XHm_߃ŵ;[ oƦ;(R*Gstr2m:PPXYY9sL1cFNN# ቐIPbcF pHq#paD2Ӭ\`~+4ƆI$Ν@P5kW[GF.C :pppp8xCПx<~ԩ˗/KHH̙3-Z[^^[[6#^;\L] <}zWx1+_ <tǫ>>N|Q i蟤 i'c&)MOJcҥ֭{IMMMBB¶md &"7>jYoRnTcIEEQΙ3'((yyyO> ={6H*JA,M$iL m"-+_4Sn҃Dkhrz`dJ/=[ܡј*~A|+UW&˱LYd YYY3o߾`0QQQm>|&<<|馦g:::hqRRD-H<'J;w…   NNN-66MƛBvlR6c4׹s쌍$POdN̙3+**5ktYKKSNaaa='OG$??ɖ}wp:,*E6Od2׮]kii7}ZDA܇& ] "F i'N@FW L5kŪU\~}0L IFdyS&z޽4Ufsf22JZ̩44)46/ iD[׌]r'_I i)Xpώ9rIOOoĈ&&&SW$O@ݤMXpꪡyfT" KXDBJ|DSBx"g ocOYƥ*j]l6?mm͛ox<ְbGƎ^*FM2enݺ% :tQo'<;5G^Hqכ6EM{>eBRxԹݓwUZ}BCϝ;Kks;ߎyrb[+P#/Ղ^2%d^ٳ$$dLOqZË|{#=g+|ut КuԩSKqpQv߾au޽T"Ɨ/%7h֍$4QZւ[L|P__e˖?CBs焧OiqcԠA{"#r8n5kn?(7qZʒ%ÈD2mBd`WU Ҿh%00hb;s6^*H$/EXɓ{ KM@U(zpao8~<~3..ݷiStL{uf_w:%+ 7Nsǎq㎾_diU`ݺuǏ322?yS P4@-*yʭQ:t0;~|frfoooܹL&Gr&.vMXWՂ~bjjziYN)P]M.&fY׮6ʬ;X\.cGKe.̙ؐп%%@ԯi_ah\vm ڛ7ǎ-^|iMjv"c۷?r?|pxxA<@YYaĈ.>>_O9~v-eҤ^ʻWD({lhhwNH;:"\=Zu}Ɉaax<^IImy95+aKK} hMp8ꬬ򬬲Ң.x<|Ik:У]vo|ҥWVV~~=&N졪KxL~zʔ) Ix|>\ZceESmG"\.p8X fc9ʊA χ1i A # ?-Yr߿}J3.]zFc91]Si\ܣ]Vr/Y=g2YCS)So`4H$6U`Ɨ/Ŗ-[DA 5!::l)i|JK d2HĵKkԼ.@؀~&8u٩Sn|nIza0`v e@89XX,CX|a:FUm\2mmm. m'(r\Ci#54൵9kvڋ]xoew|{ɓO,zu5R%{ذ ﯸ¥a(J#0xUPVOa7Cׯ WPc X6fcl,e2Q ,3 Ca0YC&BPnRQo ufڴi}QCllZP334|x~q8! (pcJQܽԧed2͛_&%eggW"7(6۫jzpU+Tl@ l b0 bc D"E}JF**(;w޿s ޶OJ۷SWExj,+W^_`pHX8XUE[W9˗ZZ}=|}dRnn! C,˖]A n˥G6z];BՂA^ʹ|9ѣ0 s<<I.l6{˗+Sv޽>͌[۲졡wW*ͭbA\G2|xg jrrUyyUyyյ 꽁:pVVj6ިe\xs+`0vl*ZM ^YIdp$pZ^NNZ::D&^KA$⵵ M_mwAAc<Xb WOO}SnDG[VCwo O\~rrΓ'_ ku}|vS70<6Z…EEGVZ_͏/~ @XՅa#FtثW_opA\nZ,ougɒ+|HEF.Ӿ4l6=}=[j.ޣG#9{/hg6o?fMvx.]S{DI}accYTKJjz\^Cyytb bq֝>F ON%UO d FKv͚ w,y)*(lċYӧ~v|w}]CBJ ,>_q8,?KUSv~ϝ7rd3-%..cɒ,1 t~֭Һݻܹ{@D H[ءyf....f66}L&ZXXS^NǥZQAϯR43)Iȥ3) a '$d64{>]eI@c--mm\\]\̭ # y/b `o|>RSCPJ=lә Ng1CrcIkhI$MMM=C$1]EBDw``<E@b0KJJ]jއlv6 m֮nn (o߸"2zX@: ڿ3h{m޸ ,<"(GBEVVy||Ɠ'>`0p߾N; С[76YRTD0`׉uW,Du5{PAX , 2Vby<~~JJiiWD@{#3@c},!n-îׯ]TDF=a5]͛oЉ>CB[7r _%Tbq_8iR={&kk w/^w+V\GìXfL$|)5D;0u`&E ㏋x<ԩ-fs;u ^{Z =) k8uϟ{<3!!^&qw~,aXzH"bq0XGGHq8\ up0qu5wqA}8̝MdMj̙ҁ!p:sj􌌒wtر]ǎ" %@6Wq[*akkbd "r+:uRѣLO s i4&ɩghL&PLɡPLNCJmhh0*\`8>Tjkq8,A`rD\H& TNPAD"NS?hhDԹEK Xb1::xϊp8hNm-gg<``q˗(YYE߾\.H%=HVVEc:|%P(>-\QVF<^tHH|"իr&wo~w._SCoh`P7Yclz6~f<؜vnYs11 +>>R3$&fcb45 n-VbƼgϾaA D,w3Xr>Ya0SS">ڵ޸qeJ.?z %%uL;jlN=;v,>=}Gl.AM!̅ [ޑ,qa:GPUٷ3| 2qzʥKJJjA5`L)ɓO ~jaqAĉ':vܵkbKsX,…yr r8^d%K.X0|Q `29))ߟ?yVvv&_?'. ȢE֭ILXǏۍtZ#\ʳg vs6_c_uڶneBc0>Os1+<'AMM&]UE!▗SP׍-W*+iShz.nҷ`CUh̋ß׳\~QfQ( X&Aڀ ͭgCD3y< 'prtcAkCD4L4S U<FǮ؇-CWWD"V8C#hjPYHDO$"b17M"pdkh~w={WyX7=}p2GUvvyvvyzzqvv9zGOOgΝP=)*"{{g5fXa?=uǹ@c?#!4~ joU~=99799EþGnlu57[޷V|ZXH..-.&זעivqcp.`h 47WhO0`ˇ v.?ok AK,hoPL++qw M^&Q׳ß;}[6rpY֠|>~hƍҢ[Rׯzoq׈lU{{㸸޽Q<D"OO"eeoʲ+޼SٰX)ܜf+zt q"{q$&f7aggj!sh.˗̟uҫ۷ߩ]TS/ҤKqp|p 4K`+v2AA"$ž"|>"kD)`\> 4 RAE  &8IݕD$ZZD--EHNKA tu֍5qո[cE;ڀNh13#78:auԩYgW<;|xgf]ML=XСA{l8888̘ Ǐ8GuA7uSӑ=ꊋkkd3QXss=kkkkC,SY3߀˖blW_ozZ-+W7nbbK==U;njh@~܋$KKk~8FGԱ QQoKx<ѕ$3qboF;;G_PXתiP-|ZBC+.A~rWggIIm>;][8deQͭ>_?@J!nva0)ŋ wh]2ɓWyNg<&QQKwRBqqNÌY]lY_ _UEcٳsF"GCiiƍ7[k+5`s2?V\\2tpJ S>``f}5x#? 77uʩ޽+s|t@`&Ldr2= v<א!n-v᭨TA=Z]SC߶nnn1]ŵA85I>PJJj}8lmЯ,z';Ν _"bb ꫪhh<kjJԷзг207CLLtUCJ4cee b a#t: ]t&A~4,M3Y,lhX\ 64pt&ͥX kss}]] ]] ==M XGGCWH"iH::ZZ\AAׯeh!Zthѱe[zumub 4.1)ijȕŋ/SLH0̑#! ?~,,) \ռcG WW 4~ڴ*+ieeuu%%ubrUȂD"ibVJ/*"[[1eJoM0z'T-xrr*  hѐ6jԑϟ6IIIϯ_Oϝ;?}Q&$ JXApq QT*m,ө_^hѥ9s1Au54W_v ݋Ǖ+۷~Gqb1Φ2?|(?+ CaaU',-fs[?px"o@x<۽ɋھ=DٲVFF_Aړ'd1&?㶶ǎ͔`5$+<,ӧ^^.۷FZ;|>Kqbb˗))|S'+//A\<=ۡϟK :T]\Q)={n>]'֯ 22Jf>[]MpxD".#cOo{5znN IDATɽzvhxKɽ{i#x,ǿ{icۃJ>#43ү_KX,.A͠x[UE/(h4áX'OPL;;au1,. Z\\+@i"9ll :fs(& P>t:RL&bq6WWWiccH$t@6hLE3i4&&B"ikkh󿶮#iԲ2J^^eM '5Cb!iN| ÐydSSѺpxG>9r$!aaI%ԟ*߾eeVSdr0J-k44)4t^VVziQJKѹLMu-- ,--- --Q ::ŷO~;;1jFlذn-8eлQQN}n`z}'OL̞:wB-->߀6KAA͹s/^M66 2s'UA~^w9:H,۷ϐt:a1zzs13{I ޳gY[zq@$!!s&*z6wsJ_M7ǿtU 1޽xcs^n+c,2Vi2Ɍ/yϯGxxQŵn|{=Oi,ikkdjK$ VYǏ*Upp8Odg{{J"iҔSJJkꪫnqM ,-@sXZ[[XX+y nEEdtfefFBwn:LT&ΤPkk~#cnD]W_f0Xhwdٽ]~N&`!PTWӇ W[[NxuM Ng=:S}|O-`͚7R˗+ /,,.k\\AϞ\\$|-h6۶}Kr6z\\|ݓG8uYX}AX~||Rv&M:m7px8@=,=uٝ; 4kVOTԻ˯ 7RTe%- oJ!6ZdX<}u,]aĿzLO2yӦ7Y6{Y"wj%dÆ1s洩IJʞ2E7[dGL 6ag뢣okccxΝ%Ļkuq߰ai <?$$&.kii`>p&.^Lܲ.n8{מ_ܭovSG>s=21w׊::DU h\.Çٟ?>} rrźm53ii"8Ovp[ rǽIbVVyTԻԊ />($#4;8WWs# G< !á(YYOd|PP^C ֹUcZGTTPATTP*+i8ss=SS?19HvvFJ&+'pZ ,^UE0jjUUTRQAPDn$i{xXۛZZv-/޿/SKF]]oƦ͛uvztˆ? ]@LfWUUiMLt-,HVVچ:&&:FF:象vk\f4NgqT&P]MA2d2F&3?"p:hp;t:Ʒ36i{"OM͋ψͭ$4 qu6cs?̓mŢEC&N)+px=9aeX9sο|%9cw2F|99$$ZoHӧg7Y,8D߾UMgyJżz29yt6FDī-[bDM!{ С{)&Ʈ"ʕ߽_g^P_^˗YGx6?""G HI*MAwc0P.n-VԼkl~{# aa/PVn*:ĽTD%(#*#̄0H26?_k5I\^ԦI>adӉ>kcb> 6md~8^uu G[Vj:9 A]YI)/ob8p"[USOO}H L_D""^ V17;aee oٗcZZ accdbR(brUUkK MB@UUҵ3335511555Օ;!…}Aq[l5A@;q}FVV擟o- ں:hʹƎfzcc'ehoRFFFWWMKKESSECCYKKE]]YCCYCCY]]Y]]ISSYFFFKKEVVFSSEVVVCCYNNVCO,UU*~q.&A]]Ld8"bqYtzG c ) (jjSpggOrrybbqJJcmm:;X}68\…W33wJb\\֭1G`瓠iG #ϟ9-AhQJʖ$Lffѣ޾%xyYY?a6{Q(ɓO()Q!Hco##ΟO`w)0յM~nT|M }¯R4/Ռq؛7߲X HNN6%eA?\>oޥ [L"Ͽzo_ԩ_4 dceg{#]ȷiiׯ/ry]MIxT믟)*ʕq)UEWkkI.uqQQɗ.XX臇O rC"S==Ēv55#mXDZcLL˗]ߵ+9I/^\HUߤVemHĉBS UUlg7t0CM55E[]J P**Do22\ CaXL&4'hhg@*!sht}t!ߩ}x<_|wV AK%++SVv@CǬ_8OܴipӯL&{̳]]̸u/^mx͛KXaݺ|)++#''fs""-`. -8kD%8&&{Æ{fyGFJ׾ޠCB.D~Bjjǿ"###//ry<AK%PZhkk;v@h޸+KcAcaƍ%NH **Ͽ$//w2+ϰXׯ7t֬ vÈȽ{w~P55Gxh͈?~4@ԴFF&5l gg+)`x~3mڙ6QP+*+a?N}8&&JMM,!4kaR1諩ih.,$֗4e lmPJJ @L&gmdkkF:9xs:W$'''75uَog+34ZǣU(:hld.ki q1Q #߂w1d--]%% %% ↺68t'P˚Z[62ҷ206F7!87?|8-zzX'U32Ҋ+~~wW ] i^dy==}K'r$(#>rrJJ** 222x5bqӫqRo0vpy7`8..;'-]t-ߌ߹g!C4+]]̳g_74tյܿvxW=L3gjjZ֯ps3<>ǯAлwU ^UVYY r\.㫨(ZzzZ_tlnll͐Vfmpo۶Mg&mkɓL>ZϦNyyy6Aemm tûx1'N,uh{PxrÆ޸DOOby_G"Q?yyYYYYl51Ee;֭B9ر zB9 urs{>̬ tݶ-\*}OJ)6 uJe |><ˬY^H]:?/**"kO2{ 麾#;;p ?:: 5Y,NUGGԏD A8\IjjL3Ʈ?'-߇FV9H$*!'qh 歘 =83++k,.n,*"f舂G@mm6 UUEK!C55Օ;*bsv&Mr9~|)%]֯eqRR8 Y~xgti|^KK%IIii> XGwwsmoeҥ׳w(e1k Y|M&Ò#mnlljQGIbq>:y2+8=, kc#n{_p%K°{ 8^iiWÕd1|`ED ވH$* OT vӰl"FzIeF婪*ur2qtD98khյp˂eegץxsC6'Axފ ѣ/ϟ3nѣ # L&wx{y|M•+iw.^iB|H毿 km}{PVYI3PtQlj`bDYYsARStC{G| 9y ҅ή+ r1CԍDd7󿱬O^^v0C8䄲$ p88)LHO jjJÇ1n}458>FIIHK0ZE0oB_X?qT 1K!*.&BrUkjz{[::ttt5576}8퇺$uɒ덍׮-=Ycc3<t-|m%kUU?|!,lƍ{ӧ_F lLzsRx$%.^|uR]E==g!]47>\)ꅲkvu1##C'Ovr?uIIK8ػw…{C~]Å -XpEKK:O?sp0>qga^tz3/_N55ݼyRPI=A3@hVUUbT$׉e} BD⤦V'$r81cl]Lq-)qcA CCMSS8"@xJsEEsIICOe8**PU}ffF}}xV2稫kәk0` !q=Z8Y F_ii'NlnyySYYcIIcAA}mm+Aff&|&!z{YaawJN;u*8\oƌ]]/^lQ[#9,)͛>4ub,y-a֬oG=ttٱcsD4 p MN.OIfٵ7> ;6lXr<"\-.@ IDATյEEy Psٲsn~{{w`!C4>\$/s8@?3ESF̬'\@" -`h8Wfs AC0o06K"QkjZkkot2DBj>qQ QAA}AA}s3MFFBpQ =7Oϯ/,ai5lH#lCzʕ9s| ޻RջwUs߿毿DsOpR fb3vw _ǝ;"]ȗOp!},JJ֯DR@6^IUgφ>NhhTK =>w5/?ŋ Dt|XBԩNm g䓺}ϟ,_~⠚ڏ6"v|>uתU+Vۢtz=ʙ;w`.TVRƌ9f;HeeM_PukN.|Fu~mS]y.oB<&0}TʕV͊?JJxBbbINN ubM$z5̙=HOs?έm6pT3<,- ]ܚVxxaa}qqCo/K^^2nkkl"V|(+kd0>ᰳ:dȧ9\bZ'!1`c؊q֮Φ&?_t64ty<>A򲆆Z&&::Z&&(wUGmm[mmk]]?1vA aiwC*2100P(\bn.NURwv6>lps CC9gn gn~҂)S\x'Or׭[˺v t֭CB<%HTojj+ز?fe.7n;rEI> ARaa}ttgy]..!!]UUBsa!97H2 ]>p7uu1e8lm~_wW_}eEEԥ7>fsiMMdrGSSgc#Lnolll_hbkl TX66U!B3Ɇw 33]9F$R33k0a@ ~#uw7i}ꜜ^qXxڅ o ds^nIL >_\LiUTF:bHW% /ׯJ(.'X}ɘ0!22Y;\.}f̙l%_x‘#/k,׬0AG8{0H*)ibzD `rH&$l]؁/>~Vl3Dg޼KڪgCp:>22xvm0)d"ΝA"}v $/l6mѣE}ߺuHWZ[\]w=zfaFLۮ͛'/^aB;޽&w a _ή**~~h,RrN޽"]\^NN]LLvllno/{Hɓ]'Z\P\PRPTDnnA4t6M4ZOEE QZ>>pF֮22j*+)22KɰX&Dmn3iNЫ[3ii | Л7e_>~|"]H<<=\hH"jjZG>Y۷?BtN+9N?= C|㯎{zmSp|Ĉ}?)VQ|a8h񱒨Am#.D0l<e,)EYQ\L.*" $ ##-O2eemm07Ch#]]|RZ!3ޕnnem5@D47HPh D\. 9]]5CC-8c!HuXX+!q"CjATtEkl%fgl%mԙ\RńO{XOOX]e`y AճfEdҵ@F$RxWRbti $6㻸\ocv,&&;(С5+ÇY[<$ +j@ӧjk[6l̚Y/]cGxV\.,Ⱥp!eחL ҅Ta ̙"]H/?l GyySkk8ajêmȨ(Έp kk!Ϝ涷3(::^5JJpss8wX4Z!sԴ0})(kÇ/ceeYYWQ E''#JSSWZn3fxHsֶD߿Br *T*=lrƒA1 JƐڪel@'@b1"..?bԔ5f-;5@B8>+8}:5b7Dj`IK-I-.^jjżyoZbZjq1MR}"(PPP?iwYZAI1 H;w2v3:uj.lyի'MrFhŋ/\X0~57?uiӆmenG>odݻ{d`@bdFF&x.-iYJJxBZ!=χQ z+.Ϟ\y8҅H/<,)i@tM>{7'EbFpd|ᨨhji HSSB@[[`64tL e773oo(++*L6܇CГNu46v\5p*T b$յLc( ?WU}PSWU"##FF<L"L1c6Zo P~`.m_jii#ڜuv4K^ss }}%aۏt)}rBmX2w]73(蔓 ;:ʕW}}yFX1ٽb=AATU< 񧟜^$6n«W,BYT__#G ]gp<[?ϾH ^ݗ/^]x141͝;Re%%!CżĉLJ7;p䨀dryqqD98}޽E8EF&|YB$]B)p8~fv/HUsE0HAP~>i+n-36G*Bww{$֩S޽&vyzylijGtm=t(!..AGDKPb2YYiiUԐ^W`#ikxڸ'Or:;{<<,BCAGIQGFx4TTTԔ\ngg뫏aemd"!$ɮoolljlh ;:;:8k @tQ(SS]JFt>w yyYJǰa ߪUTDOjL+Ww>7D"58mt2EEp!ճfE1uٲ1HRL0իx ?<ƕ W|ga wغM'J|yyqpqw*q˗S-oc$dccscctؼ_cʿRS+^ 6=LL,X&ͽzu1҅H3Ϛ< ҅q;;wN7o"5u`lﰰ AЫWūV|yTW`0_lo?TK699ĸu":7:Ew|`!FDgعsn$pش>US/iνH 橒⤦V?^l]]SOb?6>?dpq1us354J;R8.8vey<)++yyYga16FccGcc'h@`j '9P(]J{PO:~6!hahF}㰱1gWj,'/^^Ydž HUUqak{zZ"]`5N~fxghvsu5~}Fb_tfJJ٫Woޔh=vvCXǀ'ww_Q[:jԁ=<̑ݸСǏqu0dnM s)uRkxUUŅ G-[6Vr6ٜ>tȋW!5$#zƌoGp[6NTԛߺرv^+?x3fxz-q2儷H"YΞ}}JjnsU9z ~~|D۶ńxEF"rG2DV.JG*kޡ{o\*{Wz.11 ́o }޽r5k& *$9CGGma ^ g/-f:ի7oԔƏmb::_QJյUT47UVR{ ,dn7|رv&8?fs;)<]E0i~*0042h_qi(p F_ _,#:|`QH\~U͝{qΝSe pxfEQ(/6"|2#%+II)sO $6"&&;<p(eeM7/+k\?, +1Ǐ ]0/ܾ^SSeٲ1K)++ ]{`{L_\.e׺uXА xӫgώڶ-hŊbXnΜ ص,,s:%~H"Y**Ǎ|4K6ԅݥRϘ9SK/XpECCy\ >7lظqWHK3ByApEνhhu-1vlաC[z{Y׮Oijl29$S\.'( 1< 3g-(#ZQs3-> ..?+vPɓ]\ /byyons0-- `>}z;Oo|:+9)$1$;NYYaaXĉ7Wl>.w/fs/]J9|ٱc 3 w_Hgx8bwҁAD=LCCeΟ?m(,>GBUnңW#[b:;ܸD I23kM;z(Q%NL&z닑$ƌ94n]D4 To/׮] VH@&wܿB=rd6(##K^$`݋]hvmb[bb7mzP[{2 Zj薠{#vב[$5Ӧ$A$]4O(*"+){yY1 IDATDOM,?4yv"]TXXin[4$sڴvwPhpdoo P23ۻ߽LMɩk>51urBF p,N_*p3fELHTT4Դp8qF^IMN-,ǎc29 jc;c');۶DGg'$ҢuҤ3gz?Z@Butt}[ÕzUDXG,R2"$6 YK1c^]mylK!b[dox"ҵVYYo<ɵ1Xj!> >=[' tS~6 D'O&8 1,K TPGյ͛wݾLW޺祥.d6l޽*+*"'%/ l/^󴵵k+x?"xBrrbl% }ӌwIם޿zdi9e*s 8^uuKaa}VVmffmUj S//oS(Br^ÇڂROKVVF^^2d &"h gl-p ]]u99oA$R f& }.ćH;C'$5:9H:6hPXzzXSPUU|d- 8\ WQ-++m:N"MHl|Ie%e̘C8\FO}Pq6ƎAsJ]h-m1 !JJNN/b3<$r-^|zJrznͨHB^=kVTDD%~Y7 {O[wH<*u'1r)S\oD//غ5ZMMĉGԞ/,^UuH ܜ…WtoX:d˗SϟO͍@XXlqcG5A@@l͛yu}WRN&w)i:g'978%e mt-JbbSRdXǐq%sc0JK Ʌ$ ss=//K8fMDjffMa!(*ʩ+x,-цFvvC1aaMM dr;Y_2ddd 4LLtP(]JgPmEE9dc^AJJK03VUr`E#Gf`}Kx͛N==qƏG*5OG̮][ ~bݺ8\ɫWA4xb2WW@ 4kkb0 &NtY/_RV$//kc#&Q;w2&Lp^% *}ڳg_p%NN ~ ts]u_u:~%UPC!mmUnox1F<+qq9M<ˉUUM/ቍ@W__MF͝D03~yڵwƎ;wn4oc2 HW1Q tuElH߀ , rK;r{d;+C[ZxԙG#_,b0\\L==-<=-<<,A7A?8RPPbqd YY]\.w3CA  gfgfAN!R  pʆ mmUJDr ]]U6K3$'ܸAСZL05Օ?z@`ccp<Ҿ}ϦL99sǮ]':O APyyX/c&Mrpjsϙs+Ɗse߹5d[Z&Lpܻw:?cK~yAjVQ/Tuk4ݱ#HXBGd Xpdh/_npqG6drӧgVWg1| l<Oʪɩx| }OO--mmԴڒ.ldA2mm " d8Č45Ѿ0`g=6Ude\.&kjZ_F1 oÕlNgO\h;;{p .7|yP[`ʋzsViH ̚Ш~=Z1T*͛ׯKL : _hU%% n g۷Ӄ N2y({Æee(P@(^.=ySgX__8|l+[N^Z>c̘CED > qDɓۢӧ17;y(N7?>|B$3k͓_ edT/_>nIBO;;wq]ܸnÆ'bgߑ.d g/-/XQ;gZ`cbY3~ٲ222u8\)O(*"+*y{[1 ?44txy퉋Z昘옘, FzzHP6iOʪ̬ʪQUUttDy{[y{[zxX|P__P@*(k ұ*//`H-\.O^^8ÁFi"fsG:9]]5CC-ccmMMeEEy>I$RkU qҥ̙NN'~6>]]ׯK ߼)c2Ӧ HP>l (}(ĉL|`phNJ*IL,ήSR`X#hhtiR $6dĈ}g{."m#yyCB~IC`Ŋ==JJ*=~UAA aW&Mr9qgk=OON%)^=kVTDDV{{KN,Eiɒkt!kgqq;a/Ͽs'#""\ٹ_mMOzxXbHPOkʿ*NeTS۶-BO֬M$O\ttVxwﶛH0;` a%zyYZGWyL$R|1 $//Ψl)/ob8p f(936pHfzK H m@jbz{T*Wnamm /b䪨h^^YYM/NI)ˢ^رv!!?,At:sH77+Wn3cƙ.f|zMMe1ry99u8\55zza`Pa[^],,B߶-s}w ~l6yM xx¡CH ?!]7PS03{`Ď*,8D*Duq1qc8SGelx@=6팓j߾H"[0R7H[w>qŊqڑjխ֍Kr4_\_~bLtI~[!]w:ĉ½YЄ VNN]bbIbbq}} B`Ї27C@yNN;J IK~HVV6$sDgҗRT*#'.#:3ᙛXXXx\XX_TDf2 rCPffzrD>@Ptzhjj(@˦zhbpOI7ǎrv69/?QQQp =z9s.H\oɷq:'-Õ$&h:xyY]&&og7Tۢѣ HyNDs``8^1ŋ(^Xo⸸ZX?^kޖ=u1Fq T:UH4kk?HWb\/&fŋɇx_,,rW8h?\\:IVVo[WW|oJ rK=b:$6-QLNuCZ+(Ƚ}Kص+௿ڼyؓ7Ap.<ؙFIL,^/MM,A=='蟔[ffMFFOz{YV>>V#F矹ihA@h& ɷnRjoBB]Qь\I/3FhDg20l h< EE9--UfEQ{{7=~㰱1DkNpZ/,s&N|WOKKד'9Yg77 ?Ч`0GlA뀪5nX V_ߞZÕx׮4EI;c?ݽkMfdT-X0? P B|O`۶Jc/]zÇuo_;.MTԛȄOğ>81eH"nN߹q~ZZ7䵬),NMMLYرIU!a=xrÆ޸DC \R9}z.҅ p۷?.+k|xVd0<=\j|X- $T**<ÕR(4}}#lQps_i]Of_6aҵ_yattVQX{$ٳPH50q8҆ڬڷo+;:uuFemCw(Za!@hpYThCSGG&ũTT4dC !ILv}};A&74t?R(48ɡ (L6 ?ѶFԷ޹ݻK`v @̘l:9}ew)7f!??4YY!!6n9>>y>M̴fp蕍 も^Էo¿|tu@x~/s?aɿ=|qªe˦)`:pϞhkD,XpNBbHTvvH'1VA1~ uuڬOybBX';⯿յ:9Mco=[gznz}?69b/ZtqҤQGء-DA3ϟ}l\\fq^ѲZZg밐$/Qޕ.]jH^< #GzܸfZF?|(?9 CC5[ۉ >?=}B8v,&8MB*YnH J9CSS-ZhkuK$&z0\H$]j X{0yaY[eYBۿgٯ[7aK,,Ιw/py,gkӈ _pЍv҇_%$UYZꫪx [ٱc>0HPUtidXD|z"BiL &epveiiEIIՒff:捛7OYڐ)F^ޯN Uā@uذ!߿V#jk>|@7O򺲲&* pX }zBٳ_E,,mm'Ι W?~'%$$ddIFYZ_dsJUV6뙑[*&,SWe C1z,1n2{]Ll'GYY]qq͏uu-' 1LEEfXGɍ%;z4Ȕv;w6̚< /&<|Hs`?yĒի߻iΜPJee啗 ?_BLc>D&q IDATsp9bPP)j+ƌA`QVV;cƉ= `NL,rq^^Vǫ- #F wa62:hm-#srhEEv.P^^7}8O0Μ˗>|8$57{lٔ'?KNB55MNN7ZBB\} [A[ˀ؛7_gfJK f&,@ⴴĂ&Y١ӧkjSP+G7?${ ͣGtt8]#u45=jr%:NPS9&SVV[ c5(hk#~]X@01lٔ 'p4|=H.*wQQuAAշo55MII*(((jk+䢢N*9ɻp*ӓתkhOTзԛ tCP}5 88\ٳ|>r$:../=}(_kÄWvh漑Ci}=w='O45Mr{, Åqέ1Cɫ>}{hq,~{͚Æ޿甆9>J{4o+[䘓Ӵݻ_;-TZ~r,3nHsqhe~@dqqڵ3$%Ÿ,Mtu۷!HJJDGDF攕jj*,Z4q) :w ))?`,-L%_fbyymg.Vg`g_Z[p(Ro.d2oi/(_U^^_[Lň()I3b::S% rTWxtPә]wB]ٗVVϝ[)!%_))?mm/X[;m-46%$~ik#뫘4#}bclxd´O~ynܹ'O:(+KsN!0s>lD}5 axǎ [nO+'>>oݺ7nyN[Y4>>Uhkյzv}~KJ̚,_nii򤃂$eP\\SXX]R򧨨 ))qMM-- mmE yaa,3>J(`2ZUXSTVV˯o~ohhmk#w>`!CUUkk+9ih1m'%6փZ8 qqygsEo> kC> )rsB+HMMm̙sjt^v[==w.>f/Ybk צUWW]{żcnj F[Kw2?g8~ӢEX,H|Jecݻ?QQeC tF`w˗56f6_{;ȑ㇯X1GSWװ 32|M$O?hDNX[>dNKKJ[[ZWWZNvl\HțqF8tduw8xܹ#g7ֿ̩T1;.7JutUCwv $';p =,l˸qEꢢꢢ?0 Ghk+ji)hi)-;thEE}aauqqMnnD" IIaEE 15Sr>n͟oQ_ܟEE5eeu55--D SD##Qi``d?k˖]16V}{k%ݺÇ,$::(˖]my|,_  ?|(1CfxC=6V\^54'Qޯ$$&9#m|(c-9@HL,8{6˗ʅ <=Yk",}S߿Dr aTUV]ခF.z uwBP×/_seksMLƲL䧁|\LBo K]NNӃRΝ?st@Oݴ=ږoߓs==,I X׿`f.ZEsqvt镰07Sp))qCC5CC#d2QTT\XT~/""dlnlxeeÇk*+-DE= lѧ}{UӣGV-[8eb2V]w/tNڵ1.$ONpF)DrZZQBB~\\^mmѲ02R}V0`c!h gμLO/15zbĉdl)l4= RRbHaG JaA20@ ÇEwAX`·3G\o k^=x↓S=0pH-Gk[xi8mmŮ vX!rDKC8}z֭MX`9:^D"Q<k_h Ǿ}OdeN%x*<-=(ABB gih ʢ742R߷ E<=w]袻VE8mL8?і?۳N`=œ/7ڿ Z ¸ Veg?}Fs'_V~L;?ozxm„>>mw[ggHvv?׮ T8;Z"H#^E[/O~;uj0ZEFFxlca>…cdE4x~x$m-3fÇn߾-9֭T* mQO ߻blxӧhkN Jfq ϜyI}ā?ZXTU5Yss'VZYN'--"7/<|,I8ȍc*_޼9O qv))ǁGp@&3gjnB[b1QQ95hkp 2AP'H ?}NNhd\..~~OegW 7M8jEEh!+;tӦY7od_eeu))XrHLGkSZZkޔ~}-H 2T*L92gΩ*!!.G_wvp06LmYG!!Gu @ L0aС $VCT' ]zNee˗7F[{Vo2\ vjjjk׮z@0a°aÌN8ZMMn,X0v'VB]+˖MyO\A *81iҤ}766BԴuC?)S{ɓ999{ Rһwouo߾_5|ݻirrll&- k̟&(hmBDn @veeݻw'OHVV֩Ssss*l?,ŋ#۷u ==f=QJKK;Qb|#G[`M''N,ub{;ǏzU!+׵pffG]mZLF0 b1VϞ}.(Z;vyɏ?n߾ ѻSmW?O=(ABB`Yx'ARR>>ַnKKvf[1L.ٲv9,VPGc$I fDt 6сU,;SLUUUjj*Fsrrb`3mppZ[+P}-0f&H u jWfϞvkbb"MH7iFF K~d䀂"/\hLp#`)UEEm95kn߰ί_ ))163p4_Q˘}}}WWW I$'///SSS yrkkZPPPbDdހ ƒp@>\Ib$RQQ1{ɧO?h46Τ h4ڬY<|ܼ͌yj߾} ^`A24/Bua&űc1'P-`͛Bc]_X1V_M믅|lsC,\B6=ƅlq7g ll+++!jjjϏnNYn--3f hi!]{ʹ@g-~}x 2jv3nL­];PO]g8]+NII>y=J׌x{{"_"""e˖YKOג ݊t .'iMɬ6‰ϛBqqѣ>}c zS6s&ƍ[[[?~֔`0~~K^.JJ*NW^7ˬY***):ۮvڥdwԗJ9sFKKkذa3fxr&v7x9!YQ@:[pcc؀ -IO/~sgs. ً; ]΢pAƵy/깥NX2Gt6LC.\xAccjg;m 9rQ(C5jĈk׮E^Gڨ~`0w1bɓ'߿.%%uXotk={rrGG 3lt7}5@E5P`N{CNnhhߍ6&(-q-fֳSt+0k 6+=*((fdd@ꚔX 333|f&&NXWWG:~&&c)ǏfА2D`BBX D.mtKTTN``>ZIaa+I_6 έsg1OmPe_~yٳcǎuA|v;3##c=#;?477lذ@:| e]ٹZAAݻwYXXeffjhh>|9`W^:ujҥ?~͝22tGۮp90~XǏvil$()LMCy 0p{-Գw]S#^ ^h˗/wssc֞Lfdn4-<FGdcɬ >F3g~eԩ^^^P\֭[-_HS{:vk+wϞ6j(d7Z{n_^v撒{{)S * s:RPPwۼw,*P/1673[ =MC`0N}rlbggð͛dtFFHRhNw D_(}ouI7(=::gA>QqKSJJ;}w!@F[x1srr\pARRǏZZZyLw G ivvJ|?JJ;|a%r/G[ D ylЅA׶0S^ܵ?2^3 211!bbb|gߍn_ȑ#w-[vtNcP8ݑK[[;229RPP|f౑gRX't!mn"߿axŊ?] ]Ÿ}兙yoW&,,lff\0 0o-jj^F SkWtMC`0Nei4ɓ=zҥK97OR@TXX)mԜ9ΜyٯK1k` o#G۷{7o=IAP߽9q!%SF{Jm 7W^=~8::9(--vӕO>0(MDD088z|:ruu߲eK555:::H>H3򡼼\II `0ss2L334,K`g555T*uرW Ί1=ANZZoAAɮf}+WM;aez>Y""BhOqq1ҧCCί\d=?Ի%  Xpxxx*3/&?{֑.& ߹S{\o#H7p8}ddd]]]bbի_֏-mdv?Z8Z@ hԩݷo''=o>i$vEwω'v^e``|;vS/NPv 22~~KBC3^.DEG' l c[/gInnǏ |-;Ƶ0/2G %%$2r{}=l@@,߅h,UQQyuuu,YrC°aàSu[cLY/~1@Y~=c HQts!>#L1k$)%%ECCbhTPS&>]UnL.TMt- f֧b?Ϗ u paObxfff9s HHHȘ2eСC!榔YYYg>qDQC䁔@&SYN)##725irr1nŋxyO䄄|wzzvvҊLbc=23}bA =6Ϝ93k֬Cm޼3;իEV\Ó'O\A˗/ɹz*3~y{zzv=CBTTT P2Y444dffhG7x;PPPp߿9m qf9A``U2[^Ov…5kfddn6OT{F\k׮-\zGv©S:̜9͛7 vvvҳC[.aaghy{^`(Y0BFFbx䎕Cs*3g=𰐖?|U||`0Hr>/DbwMOOqrWMMϝW#莶r8 zl@hѤ {{GP顁malvzݞ@3omm]zuHHH窙ZKAs c< J3tZZz;ktG.eerȧO?y-o魱0C@Zio=kʕ?~a$ ͮ~mia  n  sOrwwoKS#ߵ@'}1<6Tn+TTT>v؄ dee!277̌733CJcf` KNNf[!!1˩Tگ_ Y.Tk//q7$$ܽg_[>mem2~oWT1/=}_JnOO+U zl0yf7B驠c677+**3f̪UD 2;::H$H{{C jiuAF۰aÎ;>|Y_URRo>''nݻ"77ʕ+ ɓ'$IXXX\\B|}}{{![n5551'aoE8TЌӏmsq..nj["A}=BY8ݑk͚5۾}{EEAݻwŋ~a31ֳ,,,:a&5 L_ykzۨI||,X0~Ӧ:Uvt- &N<5T&jW޸ٳcbbϟ|UWWWWW23޳gHdP]'<{ayĈa,'L3 T;:,N[ttP6l]_z&))/KUUchh D46ms$:}۶yw:`ff2o2kcǏ#_[[[===EEEǎ~333GGGYzՕ+Wýgjt҄ H$ QQQJJJx<)֭[G۱cG{{{kׯuuu%0 ;VDDDGG'::9E5k*))ڵoʷtv~fA7b5[ކ NTd25"⽉ߨQ55ͨ`>f'WON3"..wرk~AЕ+WGazݟ%!3g:thb9ׅ٘Ƿ'6mˡn<YYyWz:\<.=΃_fO_ {oNZZ[s63;w܄G,*mf=;Ez qux{aÇu^m6,y)e{{֡CV/6R/F||ر()%  5X[{ϗ/hku7o.ZtAYyט1>kތxkS_YMȼ|r"""X7H$RNN {FII&˿jf`0p1ϫW_n<|ffݯ <?ԩ?=<,!³ s-22{ο33(+Ks|v٧LL^ m-pEFFƍu_ژ߿L.ÿgMMӜ9,|^_SxC٢Esr8}xV끶Flz?#+~go=]`ѭt\|PPکSڊq<*+LQuk=-xp6;hrv8ˉQ{c k+ {ի\Oðϣ'O><|6ug>|.*7Ov6ȧ`;͊"""vr`ԢE_Vdie=={N^7ak;QNnXpA[H?XtJBB>O@[j;wlڴ m-<ԉKӓ~9eNtyz-`qqmbc=(Eϡ"ss#^}52Rg]sshb1U)e'` J{(C#s oj/67NsARRrht5s\Ov!ҊϭX,uڢ(vaƭY36ZLYY){X+(H,^>3@ ~F>}K#"ϛwիh+G\ԩc;>>#;Z( Qкmm/ N`_ dhʆ#ܽʕWg,6@[ G! >>&Vdoo?;޽;TKHh>RpAڼ僂V?jI^^ @<~%K.9:^1bX|gH2ڢ)huvt" 9v5kf-Y3ݴ Z ?~_Wc#`޽BhN ͜mۼB[ x ,4-5u 7{- 8@po*47۶`x8Z><Br SS?^eJX/}@VoV:;HKۛ{~c1mId7? ֬agwIX3$EOo$ڢ|P;ɷno8ӧRR O^Ώ^7ji!FF~@[rewNx xl@hkHK m-(*Jݸ޽M99ff'>ʹs+GH$˯֬ʨ,g̬()v=ܺulxGoܺ~EEuvXOOct79seyy݅ +q8TKˀם#"F[pu]XX^N:v쩣ZXaĈaO~=FuFLeuHtVVZl@D"K p8+N;m-@?\j'i>>,\\\"/]rJI) ~0( [nr eQ(4GGかQTo%/ -+B&ݻm-ʕ${2dGGRPzkגSWS׷?l߯^]mk;mQCWWd͛@ZZ:A[l6? svojmV BJ55A#F pagu|6?DiSٹȑ 4--KgJݹddii둔vBo~YscL תyNϘqdMMyynXddIIQc uunnz Z}v3#ǎٿzv"XeVbbAii-BEIɟ7S챖TX11X,ҥ8vÆ;H.'*xlp6 >33mo^ 鍌y7s~4l ڹp֭D2Z sX Buw7gOu[a!!A$_ب_qׯ;cjf[(,5޼3zz#CB\>}:rJss!C`tRi۷ Ο_ 8mm+WLLw۷)`XZꫪ IG[@8z4ZKKiBU}=!8t@HܿZTT^ H@94|c}Wzl@H2+){(Y>>--DEpKΟG[ XKBC3NXrA/]J\xرl$" L濷P/ yFT~A޿/=p Ȝ9""tgG/^\mn',C[#@M r$D&W-K qOz}iL_ld25<}@@lkkǺu3w_!0+ÉcbX+aJ]Cbc0a<abŊî[7300BJ x(1 <| ȓQPZ~ŋ +VLelx u"&Ih@SFk4Zskhh_v͚񞞖 D~`LYQ8O bl@`W^pq...dӻmo/dr áC' BiP(ghvwNNFF#Xpb  DD#F*+K((ˋˋˋ!ބGǟ=x98ef]|,\Ðǚv¨ 518QVL~ֿ|:3ak[[)-]>k E>kx9958ӻ%4lgwJD;\F`,* GEvv֚7mZ[ww44pX,Ph0 aWW~- l- IDAT [OK+zj< m޼)_u%+l99U&o] Dܮt _䴴OyD--E[ O`Ok!ڞV4 _G{mɪU7owB蓖Vtӯ_.ͨQh+b3Ur :` ڲe 5ZZl/8{6Ν:m-&$$cư<7y0;":/Chk- 6lCdb6n4c"H?L,kO?a`$44رoN-E>~pnٳ`],wFȈgd`-^7EVݠRad @QQj`GFwf/6R0x"wӦ0 EE:w.0`0Ř-_n8}C&:` ,{ss= ^}޽MsR{oLMݣ6G|g[߿cJwhnn_CEEm9uQBB˗_Ijz N`c G& K\nnƱL(,ް΂F[ YYeWRVNH~Y )Nt50[r]!!.&'#\\fQ( b``܆ AЊSO a޼qaa[DEo%c0ƍ\S:;wZl2+hkYQ8 OE٤I][9Y**ꅄ--0sիkzRi$qપF ׬3m؄M]*,@@^ޯm#,x0a Ph7 -hV^~SW AD WeRIImndlgՂ_sTYZdgC$.>,_nad*L%35޼kƛ7E'O>~L>njjFK qʠǏw A'WSL0H lAjjrvv 8aNVV㹩J`lpsgk;q)ʕWD"o-CoUV6m\9~5ܺĉ]E]$DB (----*btJ tO=l k森;3\uʁ ($CB?%$J+6FF޿{+`-ꊍq#66$kzzJJv^⒮3} +QHq+*nm\#4n'Nݻ~~޽w:ppPΦ9,޼OLl<ƈ3hL{+>E?=?\\{z9vܹEߏɳݟI%wu\j/ 8 SU !q6,bEZ닲0*6hEBWWwSlɽڷ/vpp<+ˑ,%฿T@m퓀O aj"^M-g0(H!$AC&\,wZuYLN*!NN > (-<72::WB֮qÕ8J2AQ18+]hbc-6o^o_̋FF:0 kj*ag\Q6Qo̷okS|@M==Q$rp--ZXssgFCL]AOND۾1pFu!PB~KAK45_=S}[ӆFc^wo3MPp esod& ^^9U`Pߕk@D=6FGuO`bb&*ZBlFF㦦|C^Dkk_HNp76 hvLcd``/vbwOXrrÝV 6|wRϿuŋ枬IJeJWWUYqhșв!jY,fdKNY0g8A {_ gڂL1722Qko'-[%&Z-Y¡eh٧y/ :;Vۣf> c]-m]뻗JtRx E"L?>w?A1/_~62r0]RɿzkWHOK+Wrnl||:>SwXU_49zo_޸z%SI5< hj0lO)WlbR  OgTU/ޖPPdP<*p87̊?O۹~}X 8ƤHJ 43ji9HXRLM-L[4:;۱EYy\C i$D"ed&?wB<.䤰GNԄ;1hjnqsҥ -[TD"mذ$(ȠdBBgW}p% 23.d14## 1@=/jgE?Mw鳳غ??DC6{`Μ^reTY9377kd esky99p'"!ϟ&~,3\\ +lY;>>MOO_(e1//ۏ[ḥG AoVGzQ˗k,,''g,נٱm"Q㡡eϗ ݺir%7Ann*  of& wXrp3*&8@MMhjl|^WIorΛY֭$Z FcPUURRlEDV=ӳ==n=}ᙩxY[K ??1UrC-sm]zzy #;#::>|90wuz{_SQr[̛" 99YJK ]OMCC1B"ј:b ;u 1/B1zz"/; rq-L; )e/,_:$5!U CJǏC/Oqq-qpi##ݏ`c#{ORuFVdeS^^LqCh0A,02ҁ,pVA8wNk[fhhqH˫W_~t;;im}qƽ1;ӧ9mn )SP񈍍1( /ϧPEp8+T9wo_OGGCC\04IBupg=<\]3tz.$ A==.ӟp㹨jO@^X* &<|++5j vp~ݻ|11_vg{)oou@T[ )⇤ EEhѵo9=CTk ))R633kk<+QJjce"iGm7G8UV:WmTl P6skzAТE?bHO~Ҋdee,*rP`l FF1ky|[LFc{ , q]AK^[444LU BBJA?OGDTZZJ/],DoUU($9ffz~E? eMŮ̖ ҁ7)x?Bq=˃K?cbSQenJ''e.;9)=7,'T}EO4w"+ __-|XDKK@ ߸ Z>>Nmmu\Ohk0!TcffXlWO~rqIxpz[IwwU6d b&$R--ݻJw]˗2}$CLNΘǷz~ᤤFhAAOـ ]lldyy)uj؀ HYyӵk "奖n-իsrPC/t[hCh662X jLmSaYYyyI_te僟TT<#]!:rD˗Wsbc&'g1UEDTކ; y[BTUZ_$&Z64D](-[x)hPAAUlPZ/^4MIi:t*w?A"tt4X,G zKFFQVqqI%##zYČRpTT5V),tih8vҒ%}7q.]2MJۮ`J|.4tӖVTH$"&"$p t¯E$[x,5VXh)ӧDqp0OOrq-Xغɦ)>|⒮|~OhQSO;bxB5^OK okrUV>|{y"3rܶ W"Q==qqZZ۷ ,d2{lrOA-mƿ88xy݆B5Mp8nn6sCFFѣ["#M<RV\|o6'*544U_n'@Sٝ;oe;odd[ZJWXHO300uFF;^swdggRVwaÒ #Gv4%$4[ڷ,[07IO/ :+ˑ_Z;&&zPA H$UldOOLO9##SFc baaغ_HOH y۶-~ݥuII2^lڴŪಒ# $)W󸻫Z[>e˲zh p8؀ H]]'h{{DX1G433WpT_fllLl8D2y,6Ԇ K$%W'$4ʮ; )*(sFWz䚨 43zrMcmۖ[l"Z U_ܩy__ gs+Ϟ};H7ݻEEofeeܹs]X33=< ~xxBD=ֲ399\33 w4p.[[˞9 ->zTMIS ƠPM!!e44mmwӓ'{ޯbDnAคY{{ÇU' 47whnf-FNn=q(tFƭ7:Ly)޾Ӌbeepol_b9 BBBJ<8 w{<~bb&9z˖epǁΥK9n].$ЉyOµsbbZV={aA^Ⱥ}n½W YͧNtv"7edzyhǪ&lxє Ig>ij ׯ=VH汩i\y;5_-j z{G~+ IDAT PXm%Yw/_yΝ뜜}sp83gmldȓ;ϩl:^/蔠O`޻=)oIy󦿲\;;F a9~Ul\XuRۧXYq>x0Ip(qDddeRR잞{Rɋ»~~ׇ&ݭ= X $Ud Ai3g-,3,w`Zy {11oX\u;wވqr((l0O$'7IROƫW}ssr "?Z_TGg5k<~AWS@S#%Dr5AR\x1;!$OZzeBW;P$ص2AZ:0>L"/˖-,(pfd־eqﱲ2L2 NprRK1(sz6k ʱXDS+Vp1ݻsH7\GF&||ƦDDUNNup pWyc` o I59D̞8gm)\\J ]7::[Զ1ee? 30 -={H\|uC1k蔕UBnn{|5}r65p8\RRk OF?ٙFFNA89YNA >]hc#+!,T͛~|11=ir%7ܹ۷wtTVބNNθ^c ȏww h> kk_w&bG*^KJ˟n[_P~OGFF^4P?uuajh1=;/MVQٜlIGC3e75y{{Q~O,.-qVIaP$D$yx؂J2Ś[BBhmde=;ZOdBBO~O ܹ拝9#aZ^](PCRXY@ 9REE^SV}q`&$D*!}}BgE=yP`FM'f7pyyzz"44$6WqRggpǡ"%%]!33 cH;;[cpg!o6,X\T w<<=wj{tʇǎ.\Huw0joD"wӧ {{GBB xʮ۰a A+^Ayy.`mm/}|o?}SQqcAsk ??1U4HI<4Gsswg[Y\oﰞ^TRRCdHFF:Q::b֬᭫ 2}PWwwmc#K" Rhܾu Gǒ#GTao6/);efuwWmo?嵧E;o5/ 0IH62)-woLàb W[,+-u۴/]ݨAPpٳg3pf??C3v!)xǙB5޽K6_}ۯ #"}I_8D3==ocЅ4731%'7ih B럆Ei"kk{iaP66LLp.vX]TtE55ZΟ'h͛O]\w_NG"k^%K8CE)8}ᙩx]WK (¢qq;vڶm9A쾢bXqqųgQcc-:0hii*+9M"BSWڹsɓ ؛@n׮]Bhh.KۣCXXlld[[}õ"++FF+W,쒓@2 \w xpp0P6g_;<1Çۗۛ&'w܉(ox1Fg6IKNNoQd낂'NÝuw޳',;-&ƂS11[ZJ'$4yڽ[wO)o߾,u}anx eSY顯/ =s=I1.΂2}}gii- *UT )pgׯ+;uVleCOlaSsff U(\_ꫪzhg'wBߟԍ(ՇCيϟZde9 H^ܝp:p٦.Ok=y13A=x#A?A ~~:Ni}WD"78sp0[Z&HKߜ&˦44ȀSo `ggA1p@9+TXxŋ> \h{2[H$\[^~UEd?,[0#>,̸螒RpK LII(A~BZZ "b U wӮ@[Qᡩ) w`m-333wa^^Z9=={@ KR; U))VRrEYyܹї/cqII<=>2XX|}uxݸu[//71URژn`a(KUBWWTs\YIKkNHh@1FF;:)wL[ MO \Z0>>}t޽7ooee9ef&緗z޶LcSSmۖ9[CCh@bcxx"'ѣ{(r1DFVEFVv |LbbŋմHU[۝TOiNm7 ,w9C!!{]UգT[`W YY%{)!a_Ir%RJJSBBCLL.frs:8 r3A4:: k`` PAЂ AA229w^`$*P#$_\ w !ȥKUew (~*%'[uzy44< 1VRHlVV2_yy,]PVvq(ÇRSRlɩ^.5SGDˌȂ@^^:kKK理4_l wJʕ...LM%q[ŘFDTU#bƈS$+ ]xy45#zB6\X!;=6@Y#5.:X,С̧Où;RNJ`r05``=쾢bTY,!N2GG'/]2%|)CWV Y,-3!!*\ ǡ x!^^9vuP6u(ʯ(,7be% w|jm}WVqÝݾJG碑Q̚5G åDW^nj*w" ۷_]N-B )]s'ŒOҊN;@"ʛ] 98--oNO,Z '瀊f3+`$13ӳ0|*6l``SɔpMז-ˌb<<(bd //۽{X}Qqۣʏyڼyag690mF8hq8m2;Yjhx\'wwUȼq_22/ uuͅ _+^Y9|z߿XT7(DNn}}QFFF\nddjj%%D.WT<$t!?e;Čŕ7ہx3SK+RDԩBCClEj2r}u Kٴ˘U]ݨ+jk$fz쓽=JS3-6b .CIΊ.~ ю3g GGI5_wᆳ dF6'@g;Epǡ.bbP(c |CCm(==mdI`^ppe0ܬ? <d5?oc^]HZ: 3ej ߋ..&))o?_\|DO~IIxG|ŵ 93g BffffcVUVz;|99)46>'$E@`1M0lk{^㣱iRP(i:;+ 2X\T[D^>I|UH!##NTVv?,Wg^\?IToﰎŮ'iiP4/ojZ|dǏ 5@E> hn|KTDrr? 7NI/CQ<=߾vrܲeܡU/>ruU!ߝ"?Fc ʭ[eeAy[U_%*RO/'lm$+tNK&$4 뿙Jdf:޽FK+ի>PnnV099YNA44== #.KPLwJJkkvloiD@CC0QK:$mX,(w߰aÒĆ(Ts1:VFF@P/6 dlZ/>c0XIo=JQq2pgh4S]=\[7.55y;9)R7 65YQ[g }-,w^nlCKk+AOSTW*,t"'駨j-Hqaas]]&ʛȢs(k\\m[w|ed鸾> GCCRRuuOn8Lw/.[y[4NNV0z<}ꡫ A(StWjiE| ޾77j{I/=,,Is2w&&zU `4؀;cfV/)qEjh:U022 w({p,g1\YN|ZZ e7D!.qq11浵OWT<;@1ׯwQ45r?Ý 䴫TTxPKJ@A[wzzÇ!qtLaffg%).~1eѢׯRrQWDA|Y+W,cc-;le(,K@466e tz{r%wY۪U@>Zs9y11u˗/BlP6JzWUN ÐsZ8]EljpX3QQg32Z=p UWw{V#d@SSXMMLL ,bZ^EōpX,NI)ٕE:XXlld[[}õ"++((p60stLqqI;SQo``p͛ Իvrr,E]/npωp9z4Jo/ cʛ,-Q<Ŭ6ӧׯ_bo (Ȕckxa!USm6ҥ}HOܿߓ ,dի>[O#x e#"\߆'2]YWw5 21cccLL&Kw,:00B01}SZZ55t;[ 5gfʮ+(pZj!Hy zϭytLG9LN$&6Wrp0{zʄ3;̼Z6::ee%w(xۣ}jMLgo (6 df``\NP@YzL`T& ]),6668l0c*E:E4 IDAT^FETU=ZJLtI?|8-6bݺpǡdaa׮nl<wf o`  11/Vq< Dx#"rBY 5cxx20POSS8W=wN_Uu q~"\jw?݀J޽LutvrJ''8ttA[IV bő˗44(?/9=:\ ~X_tJ.`&Ipg uԄ}cطo_?lB'?-97DO`O*HJjtsSqwW%suq7޿\K]]H]]fȲW Odgʒc,6#UR2ŪÇUƠr ©|('w򦖖T[33XTtj5?r |SQIU*DKtrRpgbSW -;[B46SP_$&ZFzUUTUy2}!>&dÎ300zYcaojCᇐ_WJLlUM޽SQd:(+oRQټ" ~2VWG|79<h4& X[MyQpA;88Bhh|L =pH \ _\#)oi⒓oE^q8\II%o.ZPGk?WBǎQ^7yq ++cFpǁ166Ix0 $$a0؄6]yyJ^&}}}))M h4hP  .UPb E_EK˄/s,ۺ,AUcs?~*?"KDDezzK[IM}Ç3Xlp!%uCWu#OϜYLP]+WCB:;ϐ56]u O~i- CXXE\\}{I22]]UB(CCw_[t=[IMmvm~ LttMddՆ mObRkkge Z<=tӰϟGmJXۯ^|& !1UpG( $'7IWF[KKvv  ' x && X */׸wŋRy0OzS7ʥKUl{n;Alj:."$"gPԋ]מ~w;hWuzbPyQۤOBQ@y^[Vm~@Oϟɸ0O/cp;yʮL;%PTXSsDFF*-stt DA^Aйsz3~~?ֲgOmy;k@de%=;z dnr w BbqNNh3PhLQQa]--/Tn>d5HPeCY7\Vq`judB1/ر#Gv\jjᳳà\0\GOkk_lhxfj*^WrOk5»}}#VVpUMM/.XP^kr%7ܡ(֧OÞoP66-;̚m[p!X.慇W'9YlstT; Ue4IO,'w."rjbH lkORuzVdeCRkYcǪJEōVV NN1u/x cdd ƀyB uu^~~{++II=[D|DW;SdfTTB;:^Ý3_dj[[DV6y<{}}2բE Ξݛ w8} 3#QQ;v9:02ee9޼yI hEYY%ɭon>nc#KCCwgsUURRl%%\YYm];|MJJ45#x \H_)~V!Q_]U@`1 ʬHLlPW^Կq8\u#MH}(w0-nfj 騨jYzUUG@OZkזtp(Fw̉ ]Zɍt` ˯tvVtZZ: 76KZ%TD(+o*.v-(p`L9== waee 3NKkk{%%w"A(Ab/h%i?{d>ٵ`| wZ_tm틡e D@QqcUJ xx[deq+~ijnUPXd~P:ν}_TN뎎_܁;A"vz5 ԵGܺB {~9}ϞitaᡐCmhB[['VU=JM#tFzz{=ѷp8\XX]XZ9u'۶]af&plPcZ^m n=bmۖÝaGaaoed<=wo߾P de`T@ w(PW2P9== X a]6_`wofffEE}ML$<=wÝJ}<\ykӦNiIH;z՗ؘdn.im- w:{(-EIi.΂**!눹Eyv|>kff6;=SS }}Q Mǧcbjj-Z[OO'vu؈bUbv>t(љ3:v/O0lG뢢{wkhl>^ ذLw;a7ww**n<|X "(W\|/0b^^{@׾Z[_ih]` *6y|T6rDޭ[>lpgjϟ=[TYPFFqu4%$4#r$3C&#P\%A(DU#s+ј;==ZZ[]\׬;|&. 'GǔϟGŒAG|)/@s>MMW"I׷038Omhxꚁ`BB6fTR NN_SEY9DIiӧO{mذ̦UիZ&'g45nR6;̼OMM32֭# ,wtAbbéSZ; w~eϟGbc-]JKjgo|ZTYQ`ddjPCWW'JxOF&ݻ{se_QSݍW~~EԄs^!%6&Ɯ8cs:**<> o߾M!mm/ϝ+im}!##pƍǧ32n}0!ei633SQd ΝND75uBdg=eA(ܶҗ/7zxnٲ PwORr)qbbP/EE^^9aa;v"IP?$fddJF&@Sso )ٳGy})Rwq$/4II(oƦ"1P`7-_D|>qBp8\yo9tHm2>} MjjBP״W/[ƩBZ.U=r$[Jjmswl( {QteeW59uJ{2NG4w`=kk+ wobb&'[2kWSEXXlld[[}õ"++B4==RSmۖF?yP䊏o_NA9996a! ZKL߽ؽE|c3Rv)AA>$q;##Nl띻w__2i_W_?߿xffgx/BۮaVW;H8Knzy+VS,?n5Xddq KMml<@HYUգ={¬6mcNi\ŵky{O?sleeddJ%hJRTJhBdQVvB̞k\{|ǽs~_q^+" E5;--~Tk0|NBDt;8ϟ|ߊ&YY ֽh7U;w߫}}߼ɞ6eIj)M]]燀tcV 6ݫjp9b #?֭Xik{jeL /VV&; @#"rn݊-,]Tn~#'&#clII;tm[L# 9W&eXp繹Ж8>2>0:mA ;!5DNNVwEll4FGڵ*&h B {^\\ Na?0Q7onQR`SNzs.Dž>Ǻu*'N- Eb_NCCƍ-""hKDs^}S@#[`<}nR8;f/\z?yyRCBXX8Idd^658Ũ{>mݪyzffFՕ_mcNf]O{߃_8qŒXhlRRQDDλw[HrW+w@@Fhbט\<{Ȱa:ڂ@x<Ĥٳ[e&HLizq ,6o#ҥYY μzu Z8qGMJʯh ̚5 ׬YVRs ҨKK5uꍇG>M[@<'m)$XŋQNNeέcaT`0VVZzzް38rd^gX1^GRݻ]{oooH^߿W<ԩ566:`<${n\*յA$(ȍ 6]Π UU-fOFF+>;[ Qֽ{V9v.ʞ7qr PQx`;ՂQkΞ/̡N߿}ňFOVEEuBz b*nl Lsmm®]Ktt`0`GYX|``oq8]h + _uk6nڤ, Av\]CCDE9c{煅.`D}~{y}̕wڵ*=% Ϟ}Mb6ițѮއ>Lam"/X,^F-B[z645u|qr]]՝PA&ܺڂP%$m@ZOr8}[[E[~yy/d[2ݧ~vÇ' 1Ƃׯo@["څ@ .J]mY&qq?m`l/^9;;~eAbP ff5kn߮M@ 23ˮ\y\&→f%Irr77Ç6”ş?a3LLT:<=k!!:qY#M{߄11oTT$V^fB xld:z\T̲Ss88XlѴFK) Ñ.DUWX[krtt,]zy"іdvld#84騫kpvm&W k>eϜɳ{ 0-a|MM**h uu>yo߮R>W @/vdJ⣢r}|+۱Cg(^jn~;#$-QƝ;յ߽=OEE #Gedy򻀀Ϟ}4}8:>|ޥ ƈ?:=8>"߿3h 2Qbc((kUoIhqfLvvFF Fě>{goe:Xڵ*Mݗ4EvvobTT}fE$Q߾s߷izznn!!!YNNdrA %yxD̟/zƖٳ'^& ZZLMއESƊh2!@hׇp_^U}8;VT4ۣ-ȄHK+ٺu\ـ,(@ ))i}6izU++-yy G+(50;pHCCEy j Ο_q:Eӧ{{R?{L۶-޾]{֬Dܻx:8=I ̛wy6ڂ rٳ߿Wnܨqύ\Zl**K#;J__ $ϟud /KK#pN#XXx͘ ڂZc"ܾ{N\fI`Hchx@~RW_省- R*MIXY-63[Γ>\Xכ7c -X <7,~F&={6/\%K cr&:vyh&\63h(;Pee %ps7 IDATY[/޹s -:;{‚79 |.l|dt/͝k,tt\(uq j9thٞ=͛K먖˸-/ +6G \\QP8tPUUҌ ̘upLfeŏ `!t C3ahFWFF .HJJ+(/ܲADEC3 QNAX-~%<nnnx++n6!eњw1sձ2)+7pqQ_)g_$,it*7${ObRRT;C46v*) ܫ;w"Lee[xxzі&ŘB `Y{)TY|BZw~RXXH]Wvv2b0qe*- ;1Fo:;{,8yZ++-ENh3dTVr10@bbh BfȸTq㽯_O L4S^hn~[\/ `;8XRˌ'3W^ҝO\X?*)ͺ~}"%##s/\mup0`SpǫW߫H|xDBJFHO/=thMBZr##s+Xy{חce* @z%!' 3cG@3vvO<م h bFFG_II~{vZbc_u\Ĺs&&-,T䦠%WT`kגٳ}W-??'"ZZ2~3GmYHsʻ'O54=@["cڂ߿7niF&EE#GVNqIG}}_=&&/_8˗ 2SS倀=5ϿӧQdd#A<\Vְ~W`^WdͲmЖ 0Z`NN.~lgAhh{?N24T8xXE`""-<22<_DqqUVTZP^BssOSTMMs?x[[-`j1g`~~ R yu= ',YWPPsڂJ+g >n5JJgdԴH;|!zW~d133YFQQmҫW?$'I=}H%%^o٢yպjgg/ZcJ-&`G q(pׯ_p5ø ׯ_+`!))imm.eee...55p8śa+VlٲERRSMM-44:D99 H02Ru#V A;x"˗/1C3#uvv:;;KII͙3ԩS===&nI7m0x3ڲ*hTנ-)規Uψ,иppZYi%%=~ƚ5bb44`0ROMO?!3>|_c^} '+!%Xxvj*ŵjv`L}Likk0 [YYqrʶ Ci]+B{vMZ&0$L^^۶nܻݻ<9 hJ**і(+kذ/ׯW;BO4e cjjZVVF|4 /UR_UUmAFKJʯ)(xaG--]~~kZb``J.66]c/u&&yyUgϚz ஁¾_57́0ccE26t宮w]j]51ҥs.]D55>>kRS;{{ 'Ov~~VccEhJuuuPc>|XTTk%%%hKDYRRRjkk?~ޮڊWGGjffK|ollsssE$&&655-\=000##cӦM7o5(--G[ ilf8FQHT A /_ $^\fMmmmmmmJJ AAQQqG :p@vvW*++}}}\\\+Rڱ4ŽG8zU@@ڲ)6iv?hFdV&m ccň7o\Iš-`g=j|'ם;u;}_j}}2 --ºNJWD;0>dfXK^^ޜ9s6nHͨǏ# +եB{v=ʉ4ϷΝ[#O%P# `3)f\4rX,+r[߈Gwwsvv"3c$$$+++rޠ۵)DGߺnV?==؈},8ydŊ2푭U"FFF %\RP--[b ka`0111sCp򦥥&$$Xݸbj#}h-/ΈQTGT]Z`Rt7|4UkQ@9-%墤tw--]e"5<|q= gQQU{z~ͭ$h6!w fH38zT1.BO|v=$RZց/{>Í|7ºryhJia^di#wpx3n ㇦z`z4:"DGWU=3p͒o3""NnEG)1bl@0wܮ.pyyy...--O>!HGFF"慅 _reܹ\\\V~~~111ggg$.y葼ŋ?.%%s 䩏?ڪ 988dgg'::ZFFf.\@5,,LVVVPPwȋcٳgOTTɓu*pqqCZZZ9ba^:x`O:|_xuqqtqqbS3f̸|2A͜9s߁^wtwrrR/!5t|ROOHNNn@̌nnw655!_,YRQQ|8ԩS ZBw(`OVܩkoի,eytUbHE?SǮ7..N\\<99y.] 8$;wD>wvvuL:呒pw7OO?am7IMUU-h3II{rO~yy?Tυ O:222m74EEϟY)EHGbq8dfff^9a4J{22O:0K$c]o'O ixqDЬ];66ƧQ 0h #A}}xy&-4bO688s&&99ϯuww75k.*۾g\>>wn=ґ׷=ݾG]]'իPQ[5TUAD @_w߀FSlmm}:!!t+([dXX6*2Igy{{_֭[ ƈEgee~mm/bcx*.~q[Qo3qAAh2f:>RS]XQ_͛1[MxEZO/7ee?lg4#jUյZT pK 2jhX@ͪʐ5z{hdc---bbbJJJ)'O7<}"[PPىΝ;>FF߿#_~-##Ȝ p__߀r AeeeaIX\\(##3Eҿ<<6RSSۻ0gllL APKkqΈ7",XyӧO$A%*t};vҸ֑ᴴ4&&&d˗/}̓Ն#8.--ٳcddGRYYׯ_#W~|rDv )60 ߹+"4>O(tC5 ]_͛G)0 x50Ϳ]oU\ 8n̙qqq0 \ŋ{7)<@ MM ;݌NG:;{zxD]v=Ȇ w܉ͭD[ͭv`CDqp-?~ J;W@쀣'C`Lǘ0nq $<6߿3Ztg.*}8P_W.<*hG [[QȊ[ijz}֬CǏno'H0vYOOy5Fի---bp..=ܹv-945/>',쨮~=* Uvk%""Nk HA[eˮ ;蜿s'zH::z._~+-}DM_l2vvP8jØ޽;??޽ȕ (IIIt ,,,EEE&&&-z :?{px<~E$c"A\\\ja8;;ڵk֭EBx00ϯ1g䃜!/2ȏ;sL@Rrrr-ZDjii `ӧOGg333Ժ':o(//Fظ 4:n &65RGHW A˗/q8???A11ptuu| 'N=zȑ#S3 IDATKHt+O|sNڲr)6‡T5 3 yu999hd޼y(-d赏U ##u^~7q?t< ccň7o\Iš-pp=v4>5%fnŚxjh47w-̟/&&6ݻoԬv`HPGXKWW-F݀ @$n pFl!Bb =5rm, I^^ޅ BBBXYYT HGFF̚5JKV/sЎ`0j^ ĉUn0EG;sqz &֎}}}H EӧOSZZ^RRa_Liup0h-vժm2h32M>>˗_[˗oHK;~jEEQڋέ^}3!Z磡6mdE[:'$%溺|7 "aaIInEoݻ55}}^t\stt\a7JL}wI}„@~;w>|"**K!??t ݰaKvvݻw׉[ bdd,--E.jfcc,`}b;uȱˆ Y wfa޽{VBnݺٳ7:BWWץKLLLWttt:::cbb֮]ۿ433k׮ߘbn'.[ZZҐVh%RR֑ܰzzz{:t931$ax˖-D`/_kRrsrrΝ;7\$ΈJNߊ`n~b a[jWI>J(DGŮerp?+(((tG*ehhhPPapWoIyե>ݕtg]{:#- )ocm~0KK+)X쪇GD||߿}h_0̪Uaa_I1 EDmll؈r9GiO3bS,.Buv\b{tvvnݺӧWȤ!!{unRj< o`dappp\OM!!rrԩAn5&. BpppssΝ;W^DT;sʻmM\-$<7#"Ι#8jA^jjz\-+;30pofIwwsuuiLDOCYƊoHLt;|x$?A}^}Lٍ7Ԥ#K]sEG[J%3,~yxAZ;NS㍌ݛgΜ߼yS[[;dcnp0R⇖ ݻ.S I͛ l044,--훢ɓ' 7g+++cc?VWW[[[/_aooBD500(..Ș3gɓ'HB~Vڪ5kֈҶ6YYY==w~ZQQQ[[ K'//o``@,>>[~977EFF"uF¢<77WCCcCމ16uwB#HKG0:U􉑑(gVVk3 ,Go>wȒϟ?kjj:::" SN)))}۷o:DKW=CŦ(D޾͓r\e>+ tUbHjhh ׷ 97>ϮHMrp}؇dee1 儤N.?r*hea'((($$ n!륎P3+ʐ~;y22ǏDz)˗_q5<<"Ж.(vLK+dzc3x8`G줃;#|8mڴtaO ?9gqrq 9pUV bs1O)CRW`jz]Di޼nnii%4ՎHr c+Žg<<"~1ׇ p?X_Ne}23)*t_c#1ݻ'` 26۷o+++0*,,wY)))NNN---$KnOO3f̚5ݻ7o_ r劌 d pssmk㎎۷qss{ħQ}||$$$8!/RcȬYn3 Ý7o;;Gww7Yw ku-,,DDDΈ7رc|||wN,I(K5 QS",옔T4i_HTmgglٲbٳg ;}+QCkiOO͛[ZZ`}ߡbӔ ))de֯MGA9&]`R`={vXX跌'nW Dw<ٳg𘘘 PGH)VF{{acc#qGYoR=6:;{?O>'*dmM#Fϟ?_]\UU ;ȸnpΝJ*'폱'q52{і "`0 6 _~͙3j?YO߅AAA\ /Y u04*u嘞Z7 b`n],-((hƍzDDFFΚ5KYY+_" wrI4L ;V^^|%㌔\CS@~ܺKFF .pEESRRQRRQB\uu.]*/"KMI?N:w.˗S<RB];L ['% =?:pcq/{ULL~hhviiҥƊřhKoEEfljܴiCg5>}}9QQyaY U4<ƍF CS9RO;Ν8vvM׭[¿-227""˗rVVf9ʦll, 2?֭Z.D;{ڲcFNN[]\flDђS99'Nۣ-驩yQ@@ڲL0ƊƊ^^ml|%%wٶm1N > -++-<_TXt>\]ݹzzlRҥwϟoHhځ}Ç_Z[ܿomb2m@^^UWWOK+9vuI;;QRvvyT͹kp7o܈Y|իyyLL!x—/m|ƊԤPs M119YYl dYXhe I YYe_Z[-cx߻ȵkU.^`G 40IOccӧɾIX,~& ;;}*k%; ʼn?׷MΡ;W__V__w55;}zvc^A 4PWٳdOwĉNwu]z2NM;-p8WGӎ. /_>&.w ”7FGHO/!`55e\9_\EcT=&&]LlWRRWm ~ˏ5U֭[$''<}/^ݽs͚-䧲 _V^6!᧑EG+.GHH c0 '+,#,'a@@ڍ1gάEQ ՛UV]涊ʊw+Vx>x`#/  }L)@Դffef~M,Bc}Ǐ 4VQ$B@\\'C;;{iS 998^mOd)9wn= Cg07ii%%%F ի,,l{S,\.72*ʉvԵ%(5z+QO(ɏE[{ιs/' E}y㦥+98&&Ç=sδP36V6=>|u2ShkAћ$o^b;;AAj+W_H28^[[@q@ j2t#<6ۋͭ,KK+,koȀ@8]ٸ:r$FW'#4-$9(?YXpVVZwEח~+Wz;B}iiJO/MIׯ?gάZ PPPY?:0LL}}8spZYim٢֭SjjR)&Xв$$/K6YCCZ__Ha Gtp0~2ݏG 0q0a޵1pgRg+ ħOgφ6ء䴌g2cLYRR~yy}pBAAmY ŋ3gf͚@}7붶Ģ74tHH);f9v>Ix<~FQTTwN_defrQҥ pXNb[uIImm""rVVZzzrE  qq?>~,HK+ϛ'b+W6,Z$I{?EFgUV6͝;s^ 5!!n< ~j++iӘ,Cff۱qqrrY*SWcƵkQ&mĴIYUTpp0Yvw a1$Ӧ1ww01<|xѣ.]~uSV|%k r}}=<"n}`az''h 89A@t#k&]S,,MaJ[!&aa^',%%n~ӧɾIoڤag/&6m##,%Y46v~Tʕw'O"᝗-SMxg̍Wtu ~}hvĖ76456446mka1 <&`0hM3.v,3MX O>ݥ;:ud˗e^KKݻf͚AJLZZZFgyyGvv##!d4 <}:+?4^^^^YaaS7ƷobO~z=˅ [h20P+c0$%}V4߿TWwbO"`]X}0M2@MM۷yAA߿WN71i(rA!A(cbE==7/?Q55'OvR-)pae֬YUUU(JC899yzzNC]~,۷n47w0Կ7GH ss 898)"g#GV:8 hݔe'vvl!c 033bxvvD83fpssΘ9c^7FD丹prNXG`RRҥKq8JR͝ϟ.FFb8vTNNXP[@w)XZZϟ& nh! r͜;s&t!!naaaa+/:"]] uum˗34T՝;@^\jqq?**O0032Rח#b$. IW{  A0L`Fؐmn-}LL`$ IDATL?~՝@ŒkYY% ^! n!zBЃ>C.=x<1 **ٳttPɸdaPmk!zЖ⌨877[Pqa,-߼Y,4b98\`!|I8uܽ…G-'GE^y(#NI)NJ*(brzz $ğEN@nRy APSSgDD7ٙe3fp-\NEEE܃p9WRa5X7o>|_PPk` &5UUW{-**73Xq $p(bod_{$?::;hhhj$g` ~ȋ=p!!'^o߮sXn;08b?A"".X47wյ55u65u"*vDg?;nemY${ovg $ PV ^޶RBJa$N<-oٖ,YG? ABlK9$?|}@:tHL>i6?в @46W8O΍57IvI^=r`K,_re~ľVaсgϊcoh˖"D9{wܰV͵Ԕ}aڰẂÇE"@_ 5 dV df^;*o.x\>ƪX,0]ZUX,.l~b brrId2$ҷ))WW=<1Cn_k,`@MqǎgLM ߾'/@g85Fc5X\fSTКG||LrrIb2$R"bT'L}Umm_߯gYK&F$ܱ]їILi֪V[[jBr ͽ{_?roMMd\QSS*\h,'..LNb2I< #*Er3>nH4 \v[ZƂALaajCCβe9A[qgώ66;6V[h4ykXG |4> 7\ 2_P-_~ P(7޸3)`29󝡡|Ss2&@zj}w?R_D" dɒ>{,# ?_7'+Q>_Orfs?@~D7bFTT>D0KH1چ ˭6,9y=~:xnÆgZSWF&345R<CONsbZ~Ͳe9 9EEisZ]ɡ`jUkKb{4Y;p5'\#ɿ K/=0ׯDJǯK7SSX3";X^P( B$11lv^|h:xʰ%q,r۾}wO{/xJG?|ꩵyf %gώ.O0nSkzzd,*JkhY<:uZo57a0[n)_8rv]{ ?l˖9/5_~ٹwoTe%mX:{ uC'N  vn]u%|xX@ 9*6 ' ?>1_fϹ>ޮXFNgjz]kVTzK zޖ_<9<5eܶmɆ %P3 $>_૯x:**G-GN'q*)lT^YɃYEuf׮nʸ=}=Y%G~Lp FUrdTءP=`pQraGj465Ϝ;7j0ةT|}}6Xq'簣O:~|ԩՕA_`>k60/9#>튎Ym[J$R̀`LbI G WW"qp{lâs-1 =7WyZ[%_|b<##lАAw::~2}Ư~}G>R>_xJe瞺'\d` j:: TF沪UUcʾcb` /dF8p'?㎚ֹ,Xj4>hys[ʟ~>~=O ukx[m\񵵙KdgrtiHhlf&$SRVZʍ&O _[gaQ99^sJte׮3/?]l/PkW" wmו}#}}6IkP(1B@ɬ*-\Q࠲I,J[Zvz1lY(ˆ8sF|ɓCZN'ZE+V%$Ć{tߢ޻uxx*?}ݵ[VqO,T*MAƝwlX:=2$>qbH2S(5k nFA Hx \yww9#Z N-Fc1졎_ )9ҷgOٳX,05'F`-Q(8*O(ADd'qdrjCߏ:ԛF{, ryZNg5j px;'%1Dңр-FD*GT@Uq2VvLNt!cvɡy^S<29uuYKdfxxkaJJOV}wێgΌ< d mv쌍@! S) o}2tm$&&#'キ{vw ӁO.ZLfx;;'b񋛞zjm k7lxm֪?i2P^{Ri_ƙ nh4VhdNzPr%ƴ˖`ccc~}-G~/wnկ6<96wm*)_ozӦ2b6 `~`U&#TG&'P(<|rx<~a6@1>4lLGx[W KZ UKZRz3gR۷7FFu?VkpC@!Ӑ q?`~{M Bh8n/(`NN- ;wyHlltwOv5 n*~啕a,bn}) & ~ao% >rN|n} ]FcP/xr3[zhڟl 1m{b50R5򚚌)ln(_o0b6;o-J|Kfo/<|Xuk}-Ͽ$1!JZ[ǻ^NͬɨbygHuu@q8s`J/]p܈=`09w\%KnjLG$Ƣ͛+/ϝAeөeW &6A HxG 0ϮLMDZ -tV6 }PZ+,,ܿ`7l(ٰjen jP@딘 !,@4MrXHd"1 BPYP- ?n :;90`PƢT4ԔejʬV[Ju>'11Nf2,)&k85Xv: &/rx/?%//Jer.KY/sqXFZBq-&As6 8s yÖ,`nz;>_ȑTW t?oR z-o| '>⋎kj*ws9 u;r_Rc{>I7P4\%]]} %%I305keeVmRy =hGxQUeK-ʳ9qbƁ@Y2˖n()nkomomSHv6..>Fn@*T'Ouu|K'|uu v4 [ꈎƢ G၁" @~*9tС>ƒذt묙]⤡+ ;LRJ i'C5`In6;/6b!y/*WFEEjۥMMӧGVNlhY,'“!sT H1: #ਮȚ/vOp;={Z>|s㏯.A"mf~>{VxtTCNLڷ*W_w\0 ]M|L $w_/[., GƠu\0` R%%iKd]v2245y'X3⛩)}Z[ljMʶnJr r}BBYW 8ۖNG191a29bKK9AFMMFu5@ZZkj RX~CCNd:ӧG~]Vٰtҹ2ǎ <{0+*x7\iSu4CgDWSf29b*+yAFmm, 2@xkǎgj.ݾ_080W_}ս}?y}գ7)uzh=-c5r"12_7 IDAT||I*+y3CD8\6^9%ߏ :;eݲ.6***;YU^]ͯ_$rh,""4m~u5;#n4qڒ[QͬͨL@/ Rijlllon6nP22cgΈ[Zbbr6n,i8 x/i(\ P@f }O[#W\ޤԂ<6?C&h_H]qvpm`;>>BI4LN,dr|~@9q#}J /[S]//E!@d6&Lxa29.|ju>HLRJ`'''Q($pKrr,xC" ԇ uajm)%LZd1xN'p8T*}!i:5e }P&Ge0, Pp71Νig]zsc==2e-YUSQSdx|FW``32@QRVV]f aA΍yرA wU0N::wƍvQLnx+BX?ݲ+C G?x`/n:8PT#) ) G>/a. 'N }w/nC7=:.MNNZ`ի .SS..@H(-VV*+ӫBnD@p%hEEUUH^k^98^ IIq@&dD&A==ƁƁA|yޚ5kPs!tzǎ ?>V[LkX~6{hH. 툍gqvmeC d^dV) T Ol(ZPg \.%V@@*zTMePR-u8h:{vyMb29H;Mz{KXSq@W[p9S*jN9qbe r֬)\(ZfgO߯. J^y9*=\?P@v,GF"blL A|r99\VN+b/ii@E*B{1*SZ`J 6> $822<<*1DbbUUzE2`:r_!LKNx%PUVkU̡BsPUL(~OqIDGcsrX[5Vm8?zԚhBe9Gj*zgWVʸW3p) L8-䰐!@ƴ@!M)n%%D>SXO?_̫W<𲆆p'oy wo~<=rԔDJZ,gժի hkP*MJ P*& dR9t %,P@ƒccZX=:4 Pode1sr >< =?0L;&lvXccœI 8%99 ^G@29) XlTv62h8Ee: A.dDd\?եـNggltVe08PRTTRT*F#hx n0Nx$s*ZKd])Mq`ΡT~|| Er`;-|oH4 ۥ[Ve%kmomtvN\^P[YSQWÂP~d||J=>A ܹNĉ;45Rキ۪V nXt$_ >V[m[ktտA%pzojN O2~MMx@1 ]8YC$ܹ́I.xA^|q{GeoZ||O.|ݔ)3m[ߏPvKP H2H$nSu5 }}sFϞ .7?reުU*lg舉fd0.` .$( Oa8ޫ88SRVLvghH߯P+^\\L^^JQQjy9Êp`082qE,Z4gŊ=k&3v 9 9˗~HtNz`@tzу0|S%P@"Q(zT?1Junr I|>ϧ8 Cr))'SZFtN ͧ&''298tLNKW3 ДDJBlʀ"4% #4j; ai@'pXɒCc29:;eݲ.Ywju'$Ėp8ROVINW2k4֩)FcQU26fJJ2Idi4`t|co\=l7 CCSvRiVUWWlv{i-`qU5g/jm{{ウ6pO>}((`{8/ C X†x. m۶["6 h4P dg4(4&(m@a4:~iGA r@gBa Iz nf9*Cr)\.!s8Eb+S\\MoZFKo*J Ni85?RPM7-`{<~o& =4 UV4fH bf i]]津RLY#HP $;Uh4VFh,6`c02uř 6;N'kzs5+ %^?_ :RX̂vaa*OA\%P@Zmr89iˍF09iT*M@PXd6JNIIfHd68;m64ifӴ!En7W8ށe_b`@58Qݾ,Og#DN`Σ; @,6D49;Q 9兊 Š39[1Gʒ.4[ж6\lio29BV SWlbB#n@ǣ4xN'^aeۥҎLJ++VV@Es\+^^΃]ߋP(ٵ!Qj*y۶﮻VpalyGbyo|/%c ݻ}y >~Ua{eBD(vtL\^!+FV!aahHn:+wfXq”WU^QNo|EGc99, noD#b-(|M~?Ԣ"Z4@(&p:t:A ȨͨOS&萶JFF$AfeNSoX LbN+'L#:4@ Tl@ L ՖI\nT(SSڬTU*3ZMLKK#XRZlSRcgZEnt>066"inp|I R~pP54T OMN1 aSR\pit6yջw02>ѡz0]mѮB:bb LƁ4BS(829BS8*O&y X!nÉ, C pf[zo&'+W @SSf; :iAXʺdZ +*x弊 .\v\T!J;;'Nollt~>tprLL?uϞ@ٲGgg3=GlzZ㏷Gfq xo~Gzz z@;wijRi|֮- Юw.W HǣVW;Tqqt\P(yǎ |۫/i!pxdBM-s8 ֡!ResӊS h^R!RӊӊҲY;)MM%Y@N375,Z}[%I`0Ndddf2f{ ._# ]\VU^SYUN=^Ą~|\7:Ռj^?PP}Fn.+; %Ab,R<ZmuܠV[ZLfǀ.dRC;Y%Rwh8*Yq`TS##S50$)YY pqF0\Gd2@f/`4ڍF^o&htLn0hz,%$UUxPx*O($ Hu 8uZ;ND<|on_#t[0:^pbm)Q.7q;)( !zVhlCÄ'-Ӱ=wqJ"g?5k "I,Vr˛55v=+_~ȑ_AY(BZݟ~*ܱJeϾ]N={)*J T@$nǵ?0B dV QL*YC)JeVLvy .pA L&F#0D"1!/!zJcz;xML$R"A$. 51Gb\n lv2Kא<˥rH[.whVzczS23T/5~?>$t+vT0XX.PW (%]  EEi L(-;9Z$ܹ]T*[￿{,'ЧpAJ>9|>P,:7@$&yeeR \i!r)-2p3R@s;w9vlϧһﮍN;|?{,WKczͻpe.&?/;R+RݓOMMM~#'{QȁUP(x +ee\Z\N2^]k*+?l^yWK=ٱ( X\N yy) Є@{DbȈztT  >ӹ/!BX2,30橻TwK˘^oG@:T Ƞ`r#?2a|\ ܂tXRF& <~!,'B dr lnʬRjJeV*:ujb0z;Pac0X:dT\J J%0D@RRH4=]UC juY,i,x^8Mρވ;[c8bV"IzT']./|ZFϧ23|>JryCKf#Td6;C @H@$O A@ptN۝!tIit:qz9LKW\i]3+vnᆢ{]АD{Ws(& '11.66 o!ϧVVWKI%p:i4L&mbL fpP󎸸n+">پ}V{,ߏJe^חpxڽ\}[VǾ^;Uo] $BI{T(j(y56SY IDAT2/?a  ánO--cSLLb].ѓ\VN7-GeH4ЬZq}qDJ$:D R) FF=3u~c30$ʞɮ.D \.[Q+/sf"Ww7H%3DR\* I#3ʗl|:N@؀@ T;Jp#X\`#4m`MNN8`F#/H*FG?`\ܷ166<ǣ䰘Lb vwi (Vؽ#:*鸔#!TU~ZmZ]!B.JI!zEWߏ~juGGc32#?bpEwkkxԭ[n3@δ,Z`ΟDEE%%S8NCOrCC*T!1 *2*+o1gZU?!'܃;wysƍ˕[:t|36\o,:0mzcio? hDcdrplS]ONN TC4gZG"%NvtHGG5 Qt: %%,<p@ *R[ԅnrsS"$*GJĄ3JC4AnAbFVzN#߯T (2! HI ј!FcW{z&QQQlv2M&㣢VQw!-A`df222h 4@ 2G>ΦZzԔ`i6j0ئ,z=_IR 3D ~Tjuij?)iǎSr`d\$&\4JJy6!=ztτNpqdӫR~$** .V\VZeн)r JylL36Ռkb^o`0  ssY` T*3h `C,V> C"%]hax_`dD=8R) p8\|0ZFQ2w~@ d)cޮV[zVk:ht8 GT=NS(wi4<ەfPM -Ž]`f`A"f(IIq·b"H60/\xD AEdZ9-Fr)ii4rJJ2]tvմ&>>&!!.!!f>@"tZtBFaBLp\YaM88C>A?ط-YuU7媱&e==Z .116**tV `0qq1dr4=Ge0I2"!@j"ΝgPp۶-yI zCzi%8yrx۶︣&caR޽m}jҥh7o}^{."q/( ccvP( r|rFmm&C1@&ZsdD HT&\E .D.^|\ӂ= )!<6Ah-ĄA&OL&&`x6`0&өt^iَJӋ8 ެFZ,ΑP(ikiJߏ`Q~TD>;\.A d2oUh 抖y (~0Kp5*_DjV0>Eu'h0S(+!Ӹx{<˹z v }5v*UD+vx20^YfE MNNm7 冁z`@)$ ))yy)[u8<>yHLܴl֪wh~|\ BBN+#fqh.jVkŲ }_.&۩HhJ˛WX $fh4>h~ݳgӦWͱe=7HWtk_|=#@NڹٳL&q֪Xf'ާS?{f1 ntwˀAN[ju>DJ$/ px<<%U0)FP''MFF1DrYشrDL!v6P]G(0`Nq5-Yx\dR J#g2mw+ 6HI99L"/XOJ*re7X.ɦT+U)/RTVXZP  G6vB e ď~D@HKApsx_}'?lwj4>觑Cw39i_Άe#>X'mcժmۖZ?M#s!W~|gh4P*Jۥ  q'(m1( 38wnyO!L&'|+掋IK#ZfMA~>Nrh4X#FFbą`0h>r5\A! (5 Zm 4zfRSɑv|qX=/Ju>_ :P.00ǛaǯPJqhhjdDPzA&cclfy9/??ǣX$@ ETl@ ȢAS!b4&l> \A?d2Cc|w!;"-pcNg $R"'*8%pTe2FchhĄjuU4r<99N빐kGe*lZ]Ntcb@A"%ڎߊPG\܌!Ppлxwg4Ø9vZm##jX3<<5:{ 9{N.AX!REQ6)J?Te8b'D+G\eEQ.G4,;)ZDE9R"$b={wј],.SSStt}"Rxv֭2ޕvXGG"}h#L<֍,hYtȑKGNKxl=۷38VEQj8Q$V*r73{{ȧݽѣ9i<{wܨ3`_{[>}lW.|K/[ne,Tۿ};y뭷Τ>uO]9_ҷK%?ǯ` mMM:_Eno#n$$INGsFZh|MS嘦J>Mm#VR7ggssLyf|tY- ÒXzt45:Kz{#׾ ueach<c7 ry3/ɓðI A=>޵Jjp; \mqV*]''-[}[1A@ @U VMcJղ< 5D[Y[S;].!6.q3 KU-ӴUՐe]JEr"4f#4L&==d2t#eAl,kM;OZ*`e{$2 ETD5unf BPh4k5р*xxϘEF[H$pwz`a􅂰(MRކ'O)*0RM^oYN, 8RIQ8]z7 ) GMќsTnӼkqC7F̼\}o{~7Oz쳟}_yp7O,ΡCo7l{;ydbտN韾o~=c_S9. I{oaj xi躕Lv+#QT_?grZiY6a8Q/ FC!ZUcrbg}ևy-}hTfZU*gT檳lglEhjt456Mv*R# !k,-5G cI:WM3Ϝ:U:q03S>qPG %n͎u޾B ⊃H:s,t4;T8l$҉ 7;pB6KyZ(24ncZmrTt$,łKlxd$͆-"qѥT9k{(щk.Cz-}ߩ(/7cO};},/GCĿGxK󵩩3NM͂ip0w0$Ǖ6v›o>xpԩr.Eux g_"mْ{K$^;+G(~xׇ>37ktR1<ܶ-F\2 qs(hjB~>4 ZA<fUG(rQ_N =WUSLYWyAP p a6z{#}}X, K$B,G;QDdYn}5hwaaF@ BL(px w)9A(x4nɲV) 33RI08JɓEE{z"z}`˱(c ǏO(/sF B< CFf#==H__JylNZR}vzL̙ʙ3Rz4eKrx8 ##Mn4VQ0{Cd0 8 0̲lIJyj4lݚIпT@ .@ 0lQd[!+<(\$ xt(@ghPVCQtY 1oBެכ)las 0T @q [<qP9 YxA?#6nyMQ^5GL(D8Cw j!qqq^%GG v"iڗJnێ[ ;1$IȲncÉ{[ytbtĉtqflYI{=2/jUT|Q*PHVݫ??v,_r/O--5&&??.CJɏ^xaGnͬJ%Сũ٩3キhx7AQzXwOOs9A5"Iċ[$wޭ9 Þ:󳟝O;'|Ϟ=p`# ^\/.2M CCPbx8L* 9BXX岴ppf1 8䁅L YӬ+XDRI*%/RITbQ,%0d2f<|>DZ5XkGӾ޲eKrt4=>WB qi @ nj]bQT~Hw-bh8ܺ>kw˟0DQƢf,U*r U \UhV8>qq4\0r H"Xuz,ơ+݈[R-2_ÝecC8˪1. C! zXAT~p qtxǏ/[v"D(Bb"B*W*Vykd©T( 9855;55{Kn=`בR_xajG>roo}|=55ޟ}wۿKC/jj6 ?ާJ\Usc=v;Nkfwhy疁+pD}/~1sD̙j(6M2c4M%-[۶eom{Gcb㴎/'~3n߿G22k} |0 G4JR  b$ B$t Di>0h[{{xtAi܂AuXn$xeM\,ժ\(ժ\,0 dC==D"h 9Sl6|V@`H@  w;܉Pѫ]Y-J#zou&B꠨-q]EQZ5|aYg ہ@" IDAT MS~?~v f-zit XX A@AvӞvgU Bl~Z5&"RWj7r%NFccpXJ%qa63SUH^<ΥR!oWL5JҲӧ˧N#Hjt45:IW kTm{ݧiڷR|$‚?qe n>]C bm˺[l,LJo:ㅅG?ջ}\$iWFF;Tz/+0w=߿0r~Oei}?aOi=ۿtHr}mw޹eiӴ^ڿӕBAh4T`ooll,kW۶eϷvرM gx`[__Z}7p*k04RwðeT+XlVS`D"l'L&N{z©ױ-6ζ[X.;*bqԀJ+,^W*#P ZUER Svd 1fR}aV+ssUɇB yn+@ F@\nAly8:Yx@ܦyeY0HIWv]*ժR.KR7k5ZU]+Zu 0 X,qX0 L0rHiG:NKQtoQ+u[U` +pԒDZ"w.ˆ(p_Pn DPyӈ jp _e9;ݷɓӴIW~?Emt(Fh0 Dh4unh [0 \Q(^\\Zm tFƷnͦR$smRf.T_XsLŵ()Zmm &Сg >?7`J曧zϾA._7}yUɓ_|ߝ*剉'=;?V},>19{䖽{''w2+E܁ 'Nggh4=p&`6Nls[w`4~{nj̛o~]]wmr]#۶er*3?0?_;u&ED\eH<\풤Jf PEQ4wxs5#{{#D&ϯӀqGLɮXîA&ժ&\pKK wc\̫Jn @ 7H@ ĵ@Lv})n%Io6<^!?T@4NFnz^oV򲘣Y*ժ z-LÁD[.Fr$sXJXe) Pu :~E]JGWn7M㴎ͽ֙7<[²T__,b1h4:N$801e9I.+IcY\ںdXB'J2TCxܡ3kcR!*Er X< ~_4|T|8v,-:Ujp;6z1Wgaoꗚf>/~W,xٟczY|wjR*/ /L9>'e9}SOM~:曧>cG޽}{ho/60 һ.;?}Pכi8x퍍n;G?rygnjjȑ%n '''{trrx4E׭F>(ĥF.(|^X\CXt` ]:S׭jU)z]TrYTRITRI*%7xs D 5M;y!kr XWs4 Ÿ`0~Ӵ`4H,W*rT*r"Tǹxm{C>+5  'C@ @ bSc004-˚ͦ(Qcպ><ς#G @,,B}4JYb?X} Y Pv#We PTUIe[iIUTUd@n0T _t=m?9qY`Q qiQ4EE <`(j&{p4eԛM-N{y&d#b\"s2?ddkSSgϧj>1<MB!VӬ\u~&:aEhD4B!e)MAm4Fhp!7a=ܲWGKSWZ\qtyf<3S\}[$GGS46pm j (łs$!O~ H~DС%06>\bf9?.;O?Wi7矟obj?pxW~_zryŷ?{c\Պb_3 S˲~u[o]nUwZAG'xzbb;/ڀA[8p`w/eغ5{[&'yo|bU,)|d,-u*==l63E(jU՚ŢX+rYv9ND"$J0$\2I |ójiڗNI.f9eA6MhJR֬WNx<%\"J&CPDM3qZ5 t]ZSU mMSH2MlIٻm[1lut`x8|MNn!׸*V`a FW4cƒ:,CZMGejJJR*{;X0AemC"ŸL9TW*m yЅ?EAu<ܘTO$xKBD(qnݪT\ϋŢ5EPꕊ {ʌh2K@ )6@Bݖ$M,]$ISUS-kuj6 Yu͇[fUߙe C|ǷWq4A @Ӵ A>iM"$h6Mk.FC]emGAga6fyD>X] Y4u >u h0~sLW>a 1M@fp {QTWy6]{gC!FS-Qё74a??p`w]8}j{{6pmڿkW/ϳjncaPb\"vp_n3~PȹS@*%Ypr^mGW"sh4?>Fo5sDn}{mYQT)NBsᱱT9S7^Mxd WЋ/PkO _7(N,/T3O=uETN(;}SSg&wꝘ蟜瞱X,xSʇffJN@hjx1q T'n38jcYg;>XDn)0=\{LsI!q@ 꺥ieʫ{g(B8&S~RGPgi5T #ѣnn^Wwt I&pS!dׅ p(I|(Oe^Z]B J-j*- 3r(ң䠃Ab0iD,8N;Ákůb;[oY\cx3鉉~qAP] Y1,(Dz{pGs.)Clt4 ^IT_Mm\+7kõǐc8NkfVF^u[1׿Z |;oJɓگ|+ zh}3=]|饃ށJnԧ&GFRi}o?ώ3 eY899wfA\2?^8|xiz4;[ZME]-@8xM&CԮ]}>w4>tHȑ#GrO̎vշ{w+6jUT\NT|^^ R[*I/͆{z==(4w7ARAy%^?0@<%!hm5])v](|- /k;zWT?hDX7MdzFwT*r(2tF(b"A$ igL& mR)@`H@ b3eقii˲iiڒfЅ uStP uSW.E@yE",E?R 'x9U5%#/p@ /~/YO$ϳΊ x=iVxS]K?WpY9=m5(ɓE(f̔Z63[f'&n͌ou`s$cioI}w_瓟{EvW_=>~7`z#_J)C/tpL&+r룏:9e//9o>dY==ܶw0#v;Z:u4;[YX b4ӲZ9$˜~gSPlx8uk;Xha)Ie9iY ik%˺e9ki(j B@jj/>q4AGk(?d(|C>cHDX$7I J] ,8ϳ$β~"1 mG-hd( ĶlI!|ãUV4FzjUqvWHe7/"_29thg|r/̑~';%4 W~4<] G_|_?CxMo53b8NmOSi4ǏO,)g`<%\OO/:4O—!BE4[eXܶ76wF[@ @ $i݂M3Av[ /a+n-I,i6 ]Lt h-YA?E<|14ݑ}DaDZp8@x(Ā:$ },ۑ\#:Ee]tt(!˺,w]mG(D". pkoԻ] /S~-˚; }%+&5^ `W !yw.UWJudۭ7/LO ð`MmۖK_P%: (3𲌃 %R ;o,粡zS.#q8&fqNCC;z`$n'o ]ws`k90ϳE n#rYַ7^e#~={/o__D.sۿ}W$鯼r?o4MS?[/x+ĩY– ю4sG n .‹[KK''O!ʪ\n|D @GtnݟN_im,YX̔O.OOO(:U4 ֭٭[3۶ex#_,U*r B,RI3CQd<ΥR|:\0H40~0qc+RfV ~eәQ UZMn44IR˃8-Jβ43/60Jd29TzS^7k vsv<@lb@ bfD if>l%Zݖ$jK~A a,W h"C! g ?!"b( WX\(㬶CQj;$Qݍ/rB>XZjB>Gz$f#D"I&Cl8p"6(I]ZM/. Fڄ%8V=B\:̓+8@&O IDATEիXca-8Qؿvjje$72M/;/#7ƣ~#~v9 g#rodYգ?^;a؃n/8Q,.6/]8$A: $\&LapnLyfttSź36޾= T@Ǜ孬ÔbQ H$= $N$cV0lM&l 1h0 FɈFX  F姂aCX;k$$Ibjt4:l6 )u5 Ie8NVkjJ*W*rJj l($\<%T*y44L2p2l"W@ 7H@ q`Y騪\˷ YpQqY-IZ(jVK PXl`%rMd(DAG$~#AðH0 "`,> A&axBu,IͦlBfE wyyAYA:C\K0gY()9sq l*CՖe (:l^!Ii:>MY[~*~?,Ta+$hXyHr`(bS=vKh0  "RUPAc1;[YZjm ッxbsODQťz.' 8CƇ t~,8'7;(9r`%̔Ϝ,, RB8MS$I8j9fu {2x;2. X#q7uy$3W7}>b˖nfjs{C_~H}>fg+<xoO_bU~+O>9K{ ־}/tg࣏'nłί(ƻOM}9M3C!f={ ?v,k'mOۑյU?=]W Tl .a8C@a4HP|t4}LZn2E1ss3ՙLhbƲHjt45:I$m6LӮכR.i7N /Öu~HsGmU5$I@b8|Tl,ł˲&&8WEW DQ` ,KQ8ۘm;躩@PHy;GBӾ`:10K9 @Q U55͚̈́fL$Fj ͦ!In|C1arՂ"6 At`bp0J^1H.ئi7m{st:6@iJR}q Ţ5J%X/Tr>/s~"z@06H"J&E 8fygNUM"oٻw4cc+(_oqZ?6wN~>w~iڏ>5n~q?a]@{ nnG,Z޽6P7_z|XӬ{<-Kb-w bmnX(꫚? ҡLr0<Mfы]j5en67W*jUE %GGcc鑑Ԗ-Ȧ=.j 6כ5*^WDQ=_pqj}A`Ws E7eM<;01Ah"I vLӶ,4j֕q^r4 f<3WC8؟J*J$Bx0F$ ]@ b@  +0g@}ai;`FEpq$q Zt-ˁkpӶM 2M[ME1u:UI0H3 n0P,K5Fpx`pM{Xza- )w:gXgQ@%4UTUC5p†,k,hͦiw#&fbYUPH+ hB!:m"0qx%04^Ӣ׼xͅi_:bH$YOQ$MZ-LqP_ikOq;#PyM,J{xIŢX, I3720M?M(ʇa肠7Q UPZ(z Ul6<0f2> olDc*3Qwxmh(14Jfk) 4S Ek59J%R o22MC ]w@j%I| C8P'\*Npy& |Gn5/[E ͦ)I+zˢm R 4M|V 6AHƀz# ̮ ,apE!aM.=G 6 @ qY[j6 00LAvK,ӴaPl-[ B Y$Adݦ(ڭVǡn0vx+(E~? \? MS q4MS ePkUnKf-E1Lӆ ðaب,Ȳ2`5u݂7 a~p$ "`GBQ>uw `h:,ndL.ą|m~ي  ģc14mQTa;A2qj4ԕGA`僂MsW8C!6fq.q7͆{{d(R`\T Xe,+UX#hh .$\:N&T(r B#: mQT^$I/Fowe5(u%D"!=j9l43Sj4o~P,v fǿ/}k,[u\5 ~v{~65uf٩SJ&&&'; %:p`W7}Mov~#r(FTJJEYZMIEβ4p $DRІ;O], ZXA`~S`pjDQMU8ڬZ* 4Aucs8A`> s hǹD"D U]iIY:gZU]'ug(ThcM  kc$is|[:ڈcdYk^ Ұ \Wa6 F"l$@ qc@ u7b_ M$q|v4RUT#2M4v,4[?rAp'\}>#($I}$I/P>ɲMS&5EGsq 34탑}] ,QUòZ` lsv-I:x (uE4pYo)vۏ@("{$lqVVaXtW|e_%*yq irYhcl${{#$:rzKhj>2h4P]k7q$ J,h4q4ϳT\W֙.'HRIT2ZjDfDL&!'MWҭoF2jsQT] GKG  \Ӕ.150Mqe+.b 8&'~P0H?O>5X^g'%I8zϞ{cxϞA8=]|㍙^;T<v]#.#6m0["J(B"W D91UG h  R|/ 4x0ui6iUWU(Ţ5B,뇅Fp&[}@RY)IFiʲ&I$邠*YͦiYzzh>Aӝ=DH$qT( D{z"&AY  ð%I,`ZAPM4KQtð89bl0 p4 $, 2-U/00 C0  Dð)f_ŻQL*4c?6\cy+蝳k Ü,뿎*ir|^%5\ "i>d2|:féFRPOO$\ y+^ȅX)*ݫaXeGM,@ 0a(giCi\6xiɴ;$iE|$زXn@L8̺A$/Ք.kin-eo"WUT*[xŃ{oVSHwyoO3ϼt[n͸\7N/~q\C!{|pۃnn2_AZvфFCm4Fh4e)u~2ͦ=hU0@Hoo;$AaJ"J,~^3L${z½L&Fz{==ap-7c9TUeYw]. F}> vk1#yvH$s$LXHuHAQH( ?L tN@i#t9MCӾ`^^AȲkC*Dͦ):7&I(˲uPy&r  <ߙaU;4X-b( P`( ̩4uoBL8vk: @ C @ $n3a؍iQȲii:ͦnm;[c-M3-0,qZ`Cjm{NQ> Hi$I0 E8I,K!AEB!D$+ DɰAv~?r{Y6M>(@ƝMUM˲-QUM@ qVp-@8Q CA9oC:?ڷsNi鯗HЙUъKoJa* SP^E2H"A(I I\m;<{Y璓4MCIYg_^gN|xH͘4J!U?BPz<38ٔZss$inc˟&T5 |G@щ5p ?Y+q_,MQ3Ipٌă.OfÕQ szֶjm:'>;Q~6dyΑr4*6>Ľ!?7IMׂ@qFS N- y3uhsxpn7s9uC3Z/ZEuVG\957]3xqnI ly2MV+NӰ^j0M#NZi".{Bb*&Jr. 9oQ9Ȳ5N! qkmѨfYVDpM/ i-})$K"cZm\Qq'D7owq"~&WKz}PBW ~/8y>Nxx{FςIƒpݏ6!Z^?2ri+kRJ)NϸδZ UZ|$6om.Û%;4Bcn.I/ŭ&ff~ ?Se%SKa=tQ3vCUQqA<{{Ȳ4R1-Ukf)?'?! !Zaxo[7ffҹ{ 4I/h> 8\//vJҸl S#WvhM%R˿_}SQ?cpkyyN<>LӠ^dv6]X/,[I̤l:${ܡqnGKK}nUy>yɝ1I}a;"Sy:ϋѨ\U?WAl6Z-CNqeZk>c&1đZY~uۇO@6t,11琄{Z'\SJl&)"R'|>W{L.ְv" ==9ēK3[ \!M#k&M q 7e{qn.'$JJ S8h6c>y|O{ xCb͊<܂,3,,:Z"r](B9OhMq MD՜GhmmHKNMB)%g2.T1+--Bs$Kc1/|vVш\qY6ߨUrTQ. yoFkR*y^y}A5_eEYZn8AX!-ϗY R{/"Tiaq83=*2gd=G.ۃ.vՋ4J< C5R,+`eeygYVAq$IhiΦZ87WoZl6WiDQl=ޱ2jQ#CU&v{;| 34mje]׿ڳgϯk+⋻vZYY~=k&1ɍa3\Y,-uWWyIl0ȹR )%sMfgӹt۶ƺSrZ%{hܨWVp(48{x&8*Hce1ei(D$%)o kYR%o.67}O^i-I)1XWeiR+%\јxGGr3\jN4{Nʹ=i-6嚴(^ye{wmb; C5բ0.|RB)ś$*K-Z+%Bn%־juzm);nRތqcV+;4g\$ C^xS) Uٛs!% 4J]C,UpX. }y`WTW:BBqT- +Xkx{SRpQ[ XJ k1='kmjxBD|M<YV%B=Rr:˅XZK.(4SN( YcHJ ,( GCL߾};]tE]wu]ok_=>,3#y;&믿g?KlW?SOmu,qz^%YVμӮŻm8$LSiDQE"|!)RE_(+` CV=L;t:#c0 )m&i !,1;dpjnm!?L<=|JQh$AyDT<FD$g )H)MG89qpNq%cLz9;ƇzMNTbuuH4PA8~[~V "~KWc7 !a8.)kȖpU?kI)RDD$'$P8R;?̱ rߥuw<[7beQsG8}_ !@iAf3}OJ:ITFZqYjc,~O>w177w]|夫$nCIc1%'sƍ1RrnIx޸1%'F)ŷ'Cvjr8/(4?8G",Oo9~6iYv|Lk?#uBM C}1KrPc=O<Md O41G* W|~IM,bǎUCq "jb"r '\V4'3~?}HqO~裏{!={?M۷|'ݻ#-ܜ1%/ t;vÇo{7|O?}~_=袋>Ϲ`{kYXX>v{//~wq& OHlk/·mwygV{&hímHOǎo믿c 7n$ԬTxkB?[綾^ڹs?jxn >zlmHlIѸ{|,,,|Bgggg֞u}_|W w{>wW/ XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp__dep__incl.png0000644001725400016040000000757013273140101022717 00000000000000PNG  IHDRpbKGD-IDATxiPSWM":,a-(".hQ5BkVhu2Hj G" QAQ_:@@Ydy?m%"gyss=7 R`888a'ëpt:=::zdP_;0L<F@aasVZE&9O; IppppEN<9,,ʊ2dǏbgg9stɓ' ڵD 8::Wnjj:iҤ[Q]]f͚^bXd,oȫn1mu3Cƿ]vI$M6R){1KNNr;vP*dڕgdd9rDREEEbnnGCCbxٲe}UC'?++#GL:OOO'O8q*66iΜ9|>իd///xQQє)S+vss۱co&J ܴiS?4T*[ZZ~sOx? .]zm2n:j O&}|| ׯ_7o^h4BfX偁>lkko-[p=+BfX.>/BEEE!!! .\zu^^SH6JeXKppҥKϞ=RTׯ/..VyWJgC~)BhTdT3:#ծ,QҠ.YԩSTnZvm@@?٩ӨRĽ-SMM B˗nnnOxĉ,Hg͚Y&KҚ~䩴/ȑ#|>?&&̙3B0:::..,!TLfϞ=voV&4jDq̈́zʕ'On޼\.7!!AghPbb"BT)*R uF]vGJ;w;vlΝ)))z…޹s]{N h4ܹs)s7nܸxb{R6m4uTqڵ-[ۻnذ!???''?vuu3f̮]<<<"W^ݶmtuux%%%*ҥKCiԈfiӦYZZzyymذAgzaôOT\Q:.hjj:{l%а0'' &lܸJzMUUB|ȑ"K=H$7n9tPHHɷ3BQT-"BNNNŅ<]bUE\\\FFFjjqV^=}tFmllB _=VSS3f,u4DEuRWW3RmuWX[[#S vvvi9;A3f 'NF;L&;s挷7eJ>,++#z_#Fhb4X[[֒HDͿҥKJ222ҥK/޳gOkkNFֶJ:}(Փ?P(B dR_(^u6 nI3CˆݻW,S3766TUUݸq#,,F9N0Aaa0,~ŕ?… SRR*+++++9RWWGf3gαc>}s .! %Igg':tNcn줤{?~ۋꢡv>>44tȐ!>%B&EDDd3fx<2gHHH||'|Bܹsy<ݻ^x~NclBzСn=ٺ+\2$$$11Q l޼ƍ!.;Jc2e uu}vL6|.Kζn{@_b&9vX2) O'?&PD.WU*K_ξӞSp2RsHT޾{mm3.QW|3t:qm;q| s\^ڿ xGSaoHe@xpp^tJY] `E5( 6̝Nv?s]7 +r<-- #AlllUUn/A?ۅ == }88881.j=zݺu$IDDɓ-,,MvA\NuwwWz-ZDH$nHhc\C⪪Ԗw}<{ܽ{wݧNZ`BO?{aQ(baat5j#ruu#O8p`ԨQ߸q/_^RRٳT2yaaatS М2)Gө fffLr84j XrFDA\xqL&s֭:o*'7`s$PEEJR566"5ܺu֖,c;;{T&SSӆ:~aKKKff&B!p'Oܾ}-22R(86ۀǿ@Ѩ?:b r˳fͲWpǎl6!D!tawwӧGEEQêN`;v,B߿E%9NzzJzE988 h;yoS{:FQOR=zߟLrPBH"Qٳg޼y3??ApBO&-[4v`Z^JZZZ``9H}-VB nUÇx _?d2|~OF   ɠ%`lS\\ XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__dep__incl.md50000644001725400016040000000004013273140077021151 0000000000000091376fdb1c3e6f2a44b51012d68f98b3XQilla-2.3.4/docs/dom3-api/PlatformUtils_8hpp__incl.md50000644001725400016040000000004013273140077017515 00000000000000d69eb54e246c6b5ecee846293bd0989bXQilla-2.3.4/docs/dom3-api/dir_a96227dd5499fecbb186822d7b704430_dep.map0000644001725400016040000000043613273140101020611 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeList_8hpp__incl.md50000644001725400016040000000004013273140077016771 0000000000000052f6f5e8c8ac045845f6cae107ad45bfXQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__dep__incl.md50000644001725400016040000000004013273140077021463 0000000000000064e6ccae533a8e155717f9b738abb389XQilla-2.3.4/docs/dom3-api/functions_func_0x65.html0000644001725400016040000001054713273140100016671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - e -

    XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__incl.md50000644001725400016040000000004013273140077017620 000000000000003b8a37e8f6cc0f36eca98a1820b3a9e8XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__dep__incl.map0000644001725400016040000000046113273140101020267 00000000000000 XQilla-2.3.4/docs/dom3-api/classXPath2Result-members.html0000644001725400016040000001652713273140077020070 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2Result Member List

    This is the complete list of members for XPath2Result, including all inherited members.

    FIRST_RESULT enum valueXPath2Result
    getBooleanValue() const =0XPath2Resultpure virtual
    getIntegerValue() const =0XPath2Resultpure virtual
    getInvalidIteratorState() const =0XPath2Resultpure virtual
    getNodeValue() const =0XPath2Resultpure virtual
    getNumberValue() const =0XPath2Resultpure virtual
    getResultType() const =0XPath2Resultpure virtual
    getSnapshotLength() const =0XPath2Resultpure virtual
    getStringValue() const =0XPath2Resultpure virtual
    getTypeInfo() const =0XPath2Resultpure virtual
    isNode() const =0XPath2Resultpure virtual
    iterateNext()=0XPath2Resultpure virtual
    ITERATOR_RESULT enum valueXPath2Result
    release()=0XPath2Resultpure virtual
    ResultType enum nameXPath2Result
    SNAPSHOT_RESULT enum valueXPath2Result
    snapshotItem(size_t)=0XPath2Resultpure virtual
    XPath2Result()XPath2Resultinlineprotected
    ~XPath2Result()XPath2Resultinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__incl.png0000644001725400016040000001046113273140101017566 00000000000000PNG  IHDRp!]#abKGDIDATx{POHHC"H-*WQTDĀ C*(uFI/B5AZt^ EP̋@wdbYܞ_g{~;w9`CA@ $ab W@=A B&PO2=Ν;b\TjFF̙32; p81ƁX|ܹu֍%  22ߟPc! d!'@=AȄ`ӧϟ??))baFRY\\|]DERQ_gg璒 ߳gO}}}ii\.OLLܷovAp Poܜ''';::siit77;vxw:tttսkJϟ?_VVgLuցt\.OHHxqBBBnnntttmmmJJFA+tuuXFFdqqqv˿[A:+CDf`GΟ?_PPr rdblmml 8XVV:u:~E\H$ꪮF+x{{fo޼mnڴ:''kgg5];;;#\NF3#\.711n LcrbBYz۷X%d2jkkMX W^]lVFUWW>}:--F#&nڲeKpp@ 8s `۶mkbݻzi€T*FYXXCCC"(<<<<<\$ n޼bŊ7:::y_FNψP7nlڴ)<<<++KV \.000 J <ٳghy޼y d2,Y~KT* \7xxxL6M.߿ͭ4)))//ĉ .`w۽{w~~>6f ś7o /_njj*//H$999ǎ~QQR k֬6mtaRh0Ν;蹡8Lz/@PX,xnWF?411$'6w}tzAAa0"L͗.] GN "444aX;w481@=A B&PO2z 93I cf2~JT5b:z Fv@NNV~ L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z L d!'@=A B&PO2z >1UU W#Gy5FJmR3yӸ<|QUNlDYf^LxLM/"z"fY8?ϩVI'RTm3%z҉@fFFF(L t&&oyÚP8I8BYe [#4ɁzGXBU %"NvzmMyHH|c&4zjf[7I(\ɧRM "|ht&;PO0m30Gy;] XҒa\&;o=mhhoNf==bstp\m'J ܹs'<Ε+|c0yJ[W| S/_L d!'Ly=={lͣVkmmE x~FaJ:49c̙^SAKKCP(V22)5k5ӧl6-X={r_`޽{{zz۶mKOO7oޔH$EEE}}} .D3!ۻxE]]2 儻a O">|!ŋgϞuwwdZ:}tVљʕ+...b8==>66;UUU|>d_~maaaffŰŋ@kŅEEEŦ$kP(K.銃1kjjxeF#-- pAq\weX[GꊉjժϣgaŊ---oxBШ_ _Sww7fϞ-Hrmm߃p+k{IRSSӣGvwwk4a]@*"UO;F R111kאuԢ+&X,Fdxxm ? ΝxFD/ A/Jx0Lgmm懮BLfSSvm/A~׈ __˗/r_z5Z▖CwG)))z*ɬ!Dz:s挷ֱʄ1ZZZm jllld2FhxHX??k.f}mԎBPKCCáCty) FSVV&JCCCR)O?OlhhaH/Fwvv&''9r/===!!͛759ydHHQ v8991xq2> 8p@*:88\x'''GDD566l߾%KlٲEB`2^e2 =&&ް)(( !fժU˖-C'A>aÆ  w@,qܞCZ3//pOOYYYq8M 2 =L B&PO2z Lj IENDB`XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp_source.html0000644001725400016040000003066513273140077017365 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMComment.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMComment.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMCOMMENT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMCOMMENT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    39 class CDOM_EXPORT DOMComment: public DOMCharacterData {
    40 protected:
    41  // -----------------------------------------------------------------------
    42  // Hidden constructors
    43  // -----------------------------------------------------------------------
    46  DOMComment() {};
    48 
    49 private:
    50  // -----------------------------------------------------------------------
    51  // Unimplemented constructors and operators
    52  // -----------------------------------------------------------------------
    55  DOMComment(const DOMComment &);
    56  DOMComment & operator = (const DOMComment &);
    58 
    59 public:
    60  // -----------------------------------------------------------------------
    61  // All constructors are hidden, just the destructor is available
    62  // -----------------------------------------------------------------------
    69  virtual ~DOMComment() {};
    71 };
    72 
    73 XERCES_CPP_NAMESPACE_END
    74 
    75 #endif
    76 
    This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting &#39; &lt;!–&#39; and ending &#39;–&gt;&#39;.
    Definition: DOMComment.hpp:39
    virtual ~DOMComment()
    Destructor.
    Definition: DOMComment.hpp:69
    DOMComment()
    Definition: DOMComment.hpp:46
    The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing cha...
    Definition: DOMCharacterData.hpp:46
    XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__incl.md50000644001725400016040000000004013273140077020256 000000000000009160a977bdd92afb96129a82b208bf57XQilla-2.3.4/docs/dom3-api/classAutoDelete.html0000644001725400016040000003007313273140077016156 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDelete< TYPE > Class Template Reference

    #include <XPath2MemoryManager.hpp>

    Public Member Functions

     AutoDelete (TYPE *p)
     
     ~AutoDelete ()
     
    TYPE & operator* () const
     
    TYPE * operator-> () const
     
     operator TYPE * () const
     
    TYPE * get () const
     
    TYPE * adopt ()
     
    TYPE * swap (TYPE *p)
     
    void set (TYPE *p)
     

    Constructor & Destructor Documentation

    template<class TYPE>
    AutoDelete< TYPE >::AutoDelete ( TYPE *  p)
    inline
    template<class TYPE>
    AutoDelete< TYPE >::~AutoDelete ( )
    inline

    Member Function Documentation

    template<class TYPE>
    TYPE* AutoDelete< TYPE >::adopt ( )
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::get ( ) const
    inline
    template<class TYPE>
    AutoDelete< TYPE >::operator TYPE * ( ) const
    inline
    template<class TYPE>
    TYPE& AutoDelete< TYPE >::operator* ( ) const
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::operator-> ( ) const
    inline
    template<class TYPE>
    void AutoDelete< TYPE >::set ( TYPE *  p)
    inline
    template<class TYPE>
    TYPE* AutoDelete< TYPE >::swap ( TYPE *  p)
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMError-members.html0000644001725400016040000001346713273140100021214 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMError Member List

    This is the complete list of members for xercesc::DOMError, including all inherited members.

    DOM_SEVERITY_ERROR enum valuexercesc::DOMError
    DOM_SEVERITY_FATAL_ERROR enum valuexercesc::DOMError
    DOM_SEVERITY_WARNING enum valuexercesc::DOMError
    DOMError()xercesc::DOMErrorinlineprotected
    ErrorSeverity enum namexercesc::DOMError
    getLocation() const =0xercesc::DOMErrorpure virtual
    getMessage() const =0xercesc::DOMErrorpure virtual
    getRelatedData() const =0xercesc::DOMErrorpure virtual
    getRelatedException() const =0xercesc::DOMErrorpure virtual
    getSeverity() const =0xercesc::DOMErrorpure virtual
    getType() const =0xercesc::DOMErrorpure virtual
    ~DOMError()xercesc::DOMErrorinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__dep__incl.map0000644001725400016040000000044213273140100020707 00000000000000 XQilla-2.3.4/docs/dom3-api/ftv2ns.png0000644001725400016040000000060413273140077014134 00000000000000PNG  IHDR}\KIDATx1K1 G⁂n lE(nࢋMA@ tK%ܕ ]BI%uͅa,e v祫i\tun0oV\$G.&@Y=%$um6'߫9Q\b)0-ZTH`pcsm 5:>ަI F] jgo[ on Ԭvq?\ 6Tee lQ c3*dWTM\rh61F fIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.png0000644001725400016040000002221613273140101023646 00000000000000PNG  IHDRB bKGD IDATxyXS'MʾIQ~("(WPZbX}*ԵTW+^PV(Mr~L{EByǜ9μof,aPZEL3~iss3>`oow^ 1Ȝ2ɓ';88h Д2BJ &85|m`2J5@@@@0prrhkk/ellsNDBۺX0Z\ ,,L@mm-oG@pQZZpSRR:::Əގw &'$$ܼy366~ J@CCCUU]+))<33bK kkk;;gg}][nxbppܹs_А fddUM:U򨨨իWyx<BԩS!Xceeeii#qEGG⸸8GGG zQB{zz;;;8q!$HOOj*bŊgʹ-[0LaLLLZZ KOO'P ׯ_xI?477DRtݮƾ׮]SER_&""bɒ%---VVV׮]Ù klldǏߴiSMM B($$0>>ÃfWWWO4)::Z@ KNNp8GwVj~4BFrSSSWG\beemݻgmm}-\ӧO:qC III( >}ѣGݻ2;;gϞŅңK@xt邂cf)5jTvv6{]:hruttd2ϗJBS]zܜ]zull,EQiiiAAAu҉kົL۷q#GtuuMMM:v.w(j֭L&חMLLa{Q(ˡ~~~ΝSc=wIooo.((a4sLڶxȑ2lه N*N:uƌ:hjjB B\'2dHee%Э[pa}WI 5B6l3cpBֶTVVرCP(d\.wٲe.UeK(JJJzfxx֭[sRPgggBBBpp03e>傂ٳg+VKK+%%ʕ+9VVVL&o>xIΝ;#6P kN*n۶Z[[uօ &MZf&..ӳw媬B~fff[[ÇB*s5k8HqqYϟ5jԩϟ~vvH$UVu0IIIdo.Zhuuu[lٿ3g8睝qažo O999666\.K 6,22S^p"(::d…<+ZQbF斛\ !<<\~(J lذa۷omB={N&Msŋ6fBP"޽{ȑoT]=$'xBAH?]uppx~yo`b#B{Je_ mL&I41Wx]<^ו+51::Lfveӌ/$?X%Kb?VDf\pG(|Bgӌ -_d2`V K$;jpӀ%|T*g0Ӏ7K23o3\oyLPZZ#aɨҚ6~y5[)*e@p%#ۀ2QNޟA W45qd2%(KޫǓ5]vvR /$!=_djw98 7H_::thI;2)                                 _]]]]b@~zR͓'OO { ݻW UCXX*jc&_3&&gΝuqq┐Q[[7?~h"'''###bK@W\pRܜ1~vO0xO<=8uTl{ё#Gd2w9z(]uii-!tbb#LMMw܉3ǎ;dkk]vϊvyذa!+++UQ8(6ڣ~[GQTDDĒ%KZZZ]3͛fǏi&x6]]]=iҤhUV@OO/99=zT[[[ ޽[y{{;z]^^njjJQCԕ+WpBݳuӧNlo#;ёziGGG}ܜz|p8b]1@ P5^J %8gooOgq8.((;v,fS5jԨlݻtZъٳd2>/JUz9mzX҂|.XMSW555/^_T*tΔJCpc>j%Pv5S' wYr%`ccOqBÇ...8}Μ9̊N?kii2=555#F[[[WVV(PYYMoeddPJ盙YYYݽ{W޶ǧ o"~ SSS qpM\}xR r̙|iooOxZvS.\ΝC6(ox?۷o^fÇUY13fdeeutttww2FsQ43g*tt::̜ R@pbTqX,(a7ZZ0uu{|ttmmqp$@׮ zxSK1|ojH_::thI;2)                                DΝJSࢹ!ߎYL[oOI YYY:􎬬, :I$:``0pQ@pQ@pQ@pQ@p}!SDDD[ޚellsNzm`0\\\z90ӧO3QYzGJKK9NsssJJJGG.>?a„򄄄7oAAAȆ**WRRӳfp8! ^:VWWgn>_C "Bޔd[l~~~. 9m7oLMMM QgMMMb!Bb>3F<;;;:uꔫkgg'BH,XYYYZZĈZqEGG⸸8GGG zQB{zz;;;8q!$H&=`0+V8{,LKK۲e . cbbfXXXzz:۬(Ei&O $!^pK,iiivLHH7o^cc#?~MW9$$0>>ÃfWWWO4)::Z@ KNNp8GwVjގiшrSSSokkѩ+WXYYa{Y[[ߺu Wk``SN/Jc5G(8gooOgq8.((;v,,ͦ(jԨQxݻw鴢ٳgǓd|>_*2WEwUsssvձE)֩ž(wzۺu+lmmsz`611{Q(ˡ~~~ΝSc E傂ٳgP IufJ۶mryyy8ݺu¤I֬Y#U]|*+Pva}}}P\,R\\=m4n :tuBm ^̙Rp8r4=r` |OC@@Zr))RSS9d2݉'_g]~=--!ٳ۷o?|~~~l!t񔔔˗/Zn۶M#G9rRP(LMM-))rӧO[=zͼC7|3..ڵk۶m۱cKFQUXXhiiYTTD7++ !p֬Y^{M B[nhllsX4ollܸqcmmmss3:tСCX87U ._|rSSSOOu]rE(d611ȼh,P>xŋE"BH"$''ϙ3gΜ9ѣG ,LIIY`ٳw%z^ 7lٲ3f,ZBH**5M({`0{イ2YPP3_PP7MV\\L߃tԩS%%%͓ɒ%7nMB///oooGG—\3ghxzzҺW Z !4w\ j֬YaaaIII .,Y;}toL0b߿̘1?ӢE.^w)VU H$k׮qvv^t)=Ϟ=h̙!zdՈ4;ǎo̖'`joosKE7IDAT>|pUVLIIquu]hѤITf[[[СCkkk ֺқӦM۽{ez̧fff>?`~===5M# RYEEEUDiӦ/^855599Ž!Ǔdvvvm6677Geɓooo< cLLLҊ]عaÆZzNTzL&뭷6oU&O7?Ng!Htԩ'9cƌꪮqƔ)SkeXOH$joZ&Zoyeo^WWK2 I>fffZZZo>~ FcQ_ϝ;/yfii);rHkkk]]ƍϜ9#o5cƌ~jCъ`Ĕtvvbmmm===U杝gϞUL#۹\ӧO 3|kɒ%<O?~zss?rJsssQϪ{uwwqmٲeUUU;wsN]]ݱcDz?6fy<^PPА lnnUm5&C 1cƗ_~YVVpܹ7UCP(oT[[; _3 T) xlE"QLLH$}zXX|Orss̙#NJJ ;v젇O5M?^^...EEE...Jdƍ'N8rȣG>CUR1c͛w9v?䓃XBGG_WxxRLOO_`}b~       ? J?s_z]RR"1;k8( 8( 8( 8(O-{:IENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp__dep__incl.png0000644001725400016040000000702713273140100022156 00000000000000PNG  IHDRp!]#abKGD IDATx{P!Q0PVK e|֊ FC%Seљ"c-´^eƂTŁ Kiia$y@Bru I%?9gdC4 "4c)'@% PNވD 0Efff)))˗/71; ^}U&iT]]}̙۷1Ol0YM~T<*A OJ$444%%E"+( >DGGm1iLYZZ*<(Jd2mkkr999j}} [l1Ν;SL81<1%Kڮ^/S'N`0鞞NNN֭x+UVM(fZ0¢ESL81' ͪݻwhO]`AhhhUUS]]M,yׯ_߰a֞Y,VEEEDDDPPɓ'+++wܹiӦ~ ֭]vJ\R`>R&SO_5"""00O?!uVU]]ݞ={BBBN<9yꫯlfFFFHCl޼HM8zɩ !444c1\\\Oʕ+r9IҖ5k깹9+++***77.??sΥ$''߾}AJJJbqvv~RPP`HZݼy\.7;;{ppD={!$]]] y<^nnD"!W z{{|~jjjccS ERRRPPӧw_+ ]{ݾ};777!!!//ORC; È'~z|ɫsww_p;v찰GYXX xNNN+VOS "&&d:;;s܆C*((CYVgccߪJZGR]zu޽11f=T*5\.777_ϟ ~k׮pL!oHZdP( W nnnĦ7|gYXX t'''/K~;$$ش4O]lmmGE"QZZ\.wuus8j+#1f=gmmQRRRPP奿 B0r3n4Myy;#o8qb%B8u.ݻ7D"ggg_OaѢE !j5'A6<ðTT*t:{xeuL!r~L&_!&999|>חfϛ7:|ppNP(|}}9g ֯_r Vvvv!!!.]xǎ{|}}JJJ 111{w9+,,:t(;;ѣGG177' !j*碕Sh?9r$>~5c$iM)" *j,--7olQ*Gɔj FllGa%Sjy P yT~ofq9BC߷` F>Y:^SSCDPmp۶}&9y2ZQce~0o టϏ 4a*A OJ'@% P yT<*A OJ'@% P yT<*A OJ'@% P yT<*A OJ'@% P yT<JiLJMM n\z~cO@bJU\\l̄tHdQL f= =I'@% P 47,_|ݽ R4>>7ް~U*Uϯ1  w4Y67"```7ߔH$SoVcccjjjssC6n8:|akӿ_SScc0As6OK.sttdXeeeSG]t+WܶnÂzyy p &h ð/⛅fffDKKB|fK^IIɶmtu^YYx└P(0/2ܷohoOΙ3g 3B\`04M?BwL[n=x۶6;;;wh4Dbaa7O~800PZZ@׻$%%i-(l6͞ڬL Aш'33΅ ֬YcccBxXBiii^^^_~%qZ8<+yx饗B ݱݻ&Fbrpp@hIWWW+B܃Z8<yh4YYY6m79ѣGBH*%k׮yfUU~ðjoopy~zppbcc=z{厎2///GGGG4Ǘ<.d2==y2ߣ S8nr ' \ahh(..nʕڱcd2F?~|L9"]-[fkkw^\p£0q{;vc ^Z8۷#L^svFy… \!sbL&R8'A OJ'@%I̜WWWmQL<==CCC=mrihbYO`<*A OJ u;a?IENDB`XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp__dep__incl.map0000644001725400016040000000041213273140100017706 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.map0000644001725400016040000000037013273140101022405 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp.html0000644001725400016040000001070513273140101016747 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMErrorHandler.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMErrorHandler.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMErrorHandler
     Basic interface for DOM error handlers. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__dep__incl.md50000644001725400016040000000004013273140077022405 000000000000000a00ba9b65157a6ad9b7d3af43f2fef2XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp.html0000644001725400016040000001130613273140101015270 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMAttr.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMAttr.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMAttr
     The DOMAttr class refers to an attribute of an XML element. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/functions_0x6e.html0000644001725400016040000001665313273140100015742 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - n -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMConfiguration-members.html0000644001725400016040000001200413273140100022714 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMConfiguration Member List

    This is the complete list of members for xercesc::DOMConfiguration, including all inherited members.

    canSetParameter(const XMLCh *name, const void *value) const =0xercesc::DOMConfigurationpure virtual
    canSetParameter(const XMLCh *name, bool value) const =0xercesc::DOMConfigurationpure virtual
    DOMConfiguration()xercesc::DOMConfigurationinlineprotected
    getParameter(const XMLCh *name) const =0xercesc::DOMConfigurationpure virtual
    getParameterNames() const =0xercesc::DOMConfigurationpure virtual
    setParameter(const XMLCh *name, const void *value)=0xercesc::DOMConfigurationpure virtual
    setParameter(const XMLCh *name, bool value)=0xercesc::DOMConfigurationpure virtual
    ~DOMConfiguration()xercesc::DOMConfigurationinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__dep__incl.md50000644001725400016040000000004013273140077017124 0000000000000068d0b77a1ceaa565d8ecf614b2b8ededXQilla-2.3.4/docs/dom3-api/functions_func_0x64.html0000644001725400016040000003064013273140100016664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - d -

    XQilla-2.3.4/docs/dom3-api/inherit_graph_13.map0000644001725400016040000000037413273140101016021 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.map0000644001725400016040000000010713273140101020337 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp_source.html0000644001725400016040000005017113273140077020010 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeFilter.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMNodeFilter.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP
    24 
    25 #include <xercesc/dom/DOMNode.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 
    49 class CDOM_EXPORT DOMNodeFilter
    50 {
    51 protected:
    52  // -----------------------------------------------------------------------
    53  // Hidden constructors
    54  // -----------------------------------------------------------------------
    59 
    60 private:
    61  // -----------------------------------------------------------------------
    62  // Unimplemented constructors and operators
    63  // -----------------------------------------------------------------------
    67  DOMNodeFilter & operator = (const DOMNodeFilter &);
    69 
    70 public:
    71  // -----------------------------------------------------------------------
    72  // All constructors are hidden, just the destructor is available
    73  // -----------------------------------------------------------------------
    80  virtual ~DOMNodeFilter() {};
    82 
    83  // -----------------------------------------------------------------------
    84  // Class Types
    85  // -----------------------------------------------------------------------
    112  enum FilterAction {FILTER_ACCEPT = 1,
    113  FILTER_REJECT = 2,
    114  FILTER_SKIP = 3};
    115 
    178  SHOW_ALL = 0x0000FFFF,
    179  SHOW_ELEMENT = 0x00000001,
    180  SHOW_ATTRIBUTE = 0x00000002,
    181  SHOW_TEXT = 0x00000004,
    182  SHOW_CDATA_SECTION = 0x00000008,
    183  SHOW_ENTITY_REFERENCE = 0x00000010,
    184  SHOW_ENTITY = 0x00000020,
    185  SHOW_PROCESSING_INSTRUCTION = 0x00000040,
    186  SHOW_COMMENT = 0x00000080,
    187  SHOW_DOCUMENT = 0x00000100,
    188  SHOW_DOCUMENT_TYPE = 0x00000200,
    189  SHOW_DOCUMENT_FRAGMENT = 0x00000400,
    190  SHOW_NOTATION = 0x00000800
    191  };
    192 
    193  typedef unsigned long ShowType;
    194 
    196 
    197  // -----------------------------------------------------------------------
    198  // Virtual DOMNodeFilter interface
    199  // -----------------------------------------------------------------------
    214  virtual FilterAction acceptNode (const DOMNode* node) const =0;
    216 
    217 };
    218 
    219 XERCES_CPP_NAMESPACE_END
    220 
    221 #endif
    unsigned long ShowType
    Definition: DOMNodeFilter.hpp:193
    virtual ~DOMNodeFilter()
    Destructor.
    Definition: DOMNodeFilter.hpp:80
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    FilterAction
    Constants returned by acceptNode.
    Definition: DOMNodeFilter.hpp:112
    DOMNodeFilter()
    Definition: DOMNodeFilter.hpp:57
    ShowTypeMasks
    Constants for whatToShow.
    Definition: DOMNodeFilter.hpp:177
    Filters are objects that know how to &quot;filter out&quot; nodes.
    Definition: DOMNodeFilter.hpp:49
    XQilla-2.3.4/docs/dom3-api/DOMCharacterData_8hpp.html0000644001725400016040000001247213273140101017051 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMCharacterData.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMCharacterData.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMCharacterData
     The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator__inherit__graph.map0000644001725400016040000000037513273140101024407 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_1.map0000644001725400016040000000031013273140101015724 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMLSSerializerFilter_8hpp__dep__incl.map0000644001725400016040000000045613273140100022043 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_16.md50000644001725400016040000000004013273140100015721 00000000000000e4f723ace41903847b3ed6b734070645XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp_source.html0000644001725400016040000004006613273140077022335 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMProcessingInstruction.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMProcessingInstruction.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMPROCESSINGINSTRUCTION_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMPROCESSINGINSTRUCTION_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    38 class CDOM_EXPORT DOMProcessingInstruction: public DOMNode {
    39 protected:
    40  // -----------------------------------------------------------------------
    41  // Hidden constructors
    42  // -----------------------------------------------------------------------
    48 
    49 private:
    50  // -----------------------------------------------------------------------
    51  // Unimplemented constructors and operators
    52  // -----------------------------------------------------------------------
    57 
    58 public:
    59  // -----------------------------------------------------------------------
    60  // All constructors are hidden, just the destructor is available
    61  // -----------------------------------------------------------------------
    70 
    71  // -----------------------------------------------------------------------
    72  // Virtual DOMProcessingInstruction interface
    73  // -----------------------------------------------------------------------
    76  // -----------------------------------------------------------------------
    77  // Getter methods
    78  // -----------------------------------------------------------------------
    87  virtual const XMLCh * getTarget() const = 0;
    88 
    99  virtual const XMLCh * getData() const = 0;
    100 
    101  // -----------------------------------------------------------------------
    102  // Setter methods
    103  // -----------------------------------------------------------------------
    113  virtual void setData(const XMLCh * data) = 0;
    115 
    116 };
    117 
    118 XERCES_CPP_NAMESPACE_END
    119 
    120 #endif
    121 
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMProcessingInstruction(const DOMProcessingInstruction &other)
    Definition: DOMProcessingInstruction.hpp:46
    DOMProcessingInstruction()
    Definition: DOMProcessingInstruction.hpp:45
    virtual ~DOMProcessingInstruction()
    Destructor.
    Definition: DOMProcessingInstruction.hpp:68
    The DOMProcessingInstruction interface represents a &quot;processing instruction&quot;, used in XML as a way to...
    Definition: DOMProcessingInstruction.hpp:38
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp_source.html0000644001725400016040000003467113273140077020773 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathNSResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathNSResolver.hpp 698579 2008-09-24 14:13:08Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    36 class CDOM_EXPORT DOMXPathNSResolver
    37 {
    38 
    39 protected:
    40  // -----------------------------------------------------------------------
    41  // Hidden constructors
    42  // -----------------------------------------------------------------------
    47 
    48 private:
    49  // -----------------------------------------------------------------------
    50  // Unimplemented constructors and operators
    51  // -----------------------------------------------------------------------
    55  DOMXPathNSResolver& operator = (const DOMXPathNSResolver&);
    57 
    58 public:
    59  // -----------------------------------------------------------------------
    60  // All constructors are hidden, just the destructor is available
    61  // -----------------------------------------------------------------------
    68  virtual ~DOMXPathNSResolver() {};
    70 
    71  // -----------------------------------------------------------------------
    72  // Virtual DOMDocument interface
    73  // -----------------------------------------------------------------------
    76 
    83  virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
    85 
    86 
    87  // -----------------------------------------------------------------------
    88  // Non-standard extension
    89  // -----------------------------------------------------------------------
    92 
    102  virtual const XMLCh* lookupPrefix(const XMLCh* URI) const = 0;
    103 
    114  virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
    115 
    123  virtual void release() = 0;
    124 
    126 };
    127 
    128 XERCES_CPP_NAMESPACE_END
    129 
    130 #endif
    DOMXPathNSResolver()
    Definition: DOMXPathNSResolver.hpp:45
    virtual ~DOMXPathNSResolver()
    Destructor.
    Definition: DOMXPathNSResolver.hpp:68
    The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to name...
    Definition: DOMXPathNSResolver.hpp:36
    XQilla-2.3.4/docs/dom3-api/inherit_graph_20.md50000644001725400016040000000004013273140100015714 00000000000000c50674260bc9b386c528655e5ed97398XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp__incl.map0000644001725400016040000000027713273140101020346 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_36.md50000644001725400016040000000004013273140100015723 000000000000004541b2f9c854ab07d6c9090d1d383fb5XQilla-2.3.4/docs/dom3-api/functions_0x66.html0000644001725400016040000001752613273140100015663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - f -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.md50000644001725400016040000000004013273140077023614 0000000000000069ce9f2fbf8161b30656c8e18972602dXQilla-2.3.4/docs/dom3-api/dir_7ef400d0cba7660fbeba32656f2e8856_dep.map0000644001725400016040000000156213273140101021021 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.png0000644001725400016040000001133013273140100022054 00000000000000PNG  IHDRpcPbKGDIDATx{T'!P! DU(H(SP"BxףK+w(^ Z/( (@*%HȾnM!kyyflAPG:D!R!*BR!䀆xmF*buFFƢEeŋ999_}Unnnpp#G 8SNXb@:3glݺ5""ƍō7 p͛7˟9Ӥ OPs*Jupp@VVV:::455]\\AAAl.Y,W\-(֭c2fffQQQĔ㣭xbĎI322bbbƏd2===DW\YvYxx83a+W]AA͞={]xx8iP ϧ鮮ϟА022v4 p% "kvϟ3M Bm466ǍW__oggP__oii]:::&&&FDDQ4554MbЂIkk+VKKvcחnF5668p[XXX ?~ח~lS$}ᇘ>8tP~~~VVePPМ9s3411PT{{233{mذ;ǏHpFL@hܹ襳clmm@ 8y$~Xz{{޽+k st0tuu:4z,Q$,/E/.....> س4cǎR\.wfT444\]]AКyܹɓ'h$bq\\H$| ~TMMM "̙pFL(zrΝ\.wٲe議0~=::Z__iz8x%))-߲OKK{ECC͛ 'FP(h4Z?zWhNNN?}IFF=J㓒rdggDP6mTVV# i4K$bmm=00O?$ .:`ΈiR%5k֠&imm[SSS .\tRQɩW07l .\Y"""VZEP ĉ.^?f̘ n޼9??w\n]RRVWWσ쩁fgg'zbΓN :tcƌl6;11s۶mKIIy򥑑Qll,NB9t50lll&pF$ vW^U"Blr&9e,'''--M---;vP>(1M[qG {뫩twwW.T?-..PmJgAKKsxX|@ رcG{{%K?sΝ^^^o!ጨjHCF+pT9JT9 xǿ< ?555VGYYšPtG: cll ~J9w6C#hS!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!*BR!MjWve[<! xxKs+RLMRUei457YÚ(*UډDv On8)>RU9r"Bhj˗FPaٲT`Dbg||fbJXYLLƏTJ T`dgk;J@R-=)2RU'XTTWT* >|FP*c8-H?|FPi55%#Ψ*UZkOat: TUxL!@7TUJ-MuWgsyP(666J+ߣG&M;}ѣG}T}Poihh & !Pr !Pr~)ٳgoV__k|#{oo/᭺:ѐ0b}}}3gΌDfYPWW]b]vɪO/㫐WxBi]Sϝ;gll'OM6M0dnڴI(˗MLL8NllAhh(`H{Ο?omm`0rrr"իWZZZcƌXyܹ'M_@ӳ333e%®ICPl dK%%%cǎMHHFhԩL&3&&Ш,Ci+L0ۨq߾}~~~Ϟ=5k֭[%K\r%..nƌUUUsٸq,n d.AѺ 333srr.3XFc֭xqHywӓ:zWVL<΂W...n277#4W !W*cXL6RUUUL:ٳݚ,֦~'d!*sGjjj!!!iא7)UVEVL< >AN>mnnNhD+AZMM %7tuuў=Q]]-G Aׯkii_xQ{WWZO^mm"JŻ^v`O"oLJAh>?ą 7ǻujGO{FFFO>E-޽{ey|XF믿D&Ez!atb=z]~( Ɣ>Pijkk 5Ț:00gϞ';w?}rΜ9k֬Z[[WWWWWWϛ7oժU|>ommMMMe0|>=$$ ~ pgWWBbǂ Э:00p }JpY,V{{"ˊE5T'' ]v>?lhh:;;ǎ;~Ȟ 7x<. ӧLBӧMVTTDO,>>^OOoʔ)EEEhBpڈR%ܳ544/RQQARk_ќ4iRpp0~.':e4Bzzɓ׮] 0HT3sz p~@BހNTT"!aT9JT9oQwvvUPR~0LNxNT9JT9?71eIENDB`XQilla-2.3.4/docs/dom3-api/DOMErrorHandler_8hpp__dep__incl.md50000644001725400016040000000004013273140077020626 00000000000000e7076ff1ef9a4e19deebd343185625f0XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.map0000644001725400016040000000010113273140101017561 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__incl.map0000644001725400016040000000031713273140100020556 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_34.png0000644001725400016040000000611613273140101016033 00000000000000PNG  IHDR%>~^`ꥆ733k.?== 43kB666"1KG*Η^:'Oj:wO;t@FF>|0~dX,6X\\) _GX[[۵kצ 43B566JR@UUc=677h4...fppB www&{nFGhjjVKXWuuuYq)JII c2yyyׯg0Ǐ^2_wrrriii*po&P(#ŋAAAvvvl6;//)Jee%sppL0Gy.^|8^wRiZZn$&'z{G0 :^VVVRR[ZZZVVfmmMؓJZ- Z͛7X,޿>77hOM.Ɋ?3냧즦bp\'˿ @ll\.SSSLJ €l9~ð ^oQ\.{ܾ}zEGGKb4abWWK.MNNx{{B0b@MM aZקs8\A6ßfz,1r僃۷o'0 #\RPQQQrjb1 4ayyy7nP-9ϽT(Tr|~vv6n햖@(N(bS__Ox{D"R^tMogffbVQQvq^ jQ[,j*zuU__m8GVbZ[[1 {#Ν; B]rWhkk3@3 a͇"Prspqs;dTYz֭[TjBB;uhh(\d%]X1 ϫBG̑#G<<<`[b^,nݺ{---qddf 6|}}ۆ x?Abt/P( ]8žCCC B300`~f H$UV 6g/5Ž>}駟 qtt4bf Yb~~~QQQSSºWYFtSNI$)))M68pjY |H$zꩤ$S^Jֶnrr?U*CdkxT{Νaaa"ĉFwZť7#J)w}777?{2eس~SSS>>> b8,juCii՞ěPQQQ:0Zpwû3% 5;;NUUՀʺ%gCnܸQVc_lDa\.7;77g(NRq8'J}E}}}̸a ǵ+d׮]l6;55UT. [oؒ|77O>$..ٔ=u:]AAhhh`2aRi''{xUHRllln޼[zzz0 #ZRFCC3) eݒnvfڹs ߏ%b"dso۶B' C /gmdaY\yT*pIIIRRҊ * z{{绺?xc06;a5uS {۶mgVlÇϿ˓{ٷo HJ MJ}GyUe#44T"4-'''''gE5u.@TyA @Ty!)72I"B,#]]]V/Gutth=hKrabrBOA> /B!* /B!`IENDB`XQilla-2.3.4/docs/dom3-api/functions_0x68.html0000644001725400016040000001224113273140100015652 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - h -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNamespace-members.html0000644001725400016040000005524513273140100022764 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathNamespace Member List

    This is the complete list of members for xercesc::DOMXPathNamespace, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    DOMXPathNamespace()xercesc::DOMXPathNamespaceinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getOwnerElement() const =0xercesc::DOMXPathNamespacepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    XPATH_NAMESPACE_NODE enum valuexercesc::DOMXPathNamespace
    XPathNodeType enum namexercesc::DOMXPathNamespace
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    ~DOMXPathNamespace()xercesc::DOMXPathNamespaceinlinevirtual
    XQilla-2.3.4/docs/dom3-api/inherit_graph_8.map0000644001725400016040000000045413273140101015744 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMText_8hpp_source.html0000644001725400016040000003724713273140077016712 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMText.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMText.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMTEXT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMTEXT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    51 class CDOM_EXPORT DOMText: public DOMCharacterData {
    52 protected:
    53  // -----------------------------------------------------------------------
    54  // Hidden constructors
    55  // -----------------------------------------------------------------------
    58  DOMText() {}
    59  DOMText(const DOMText &other) : DOMCharacterData(other) {}
    61 
    62 private:
    63  // -----------------------------------------------------------------------
    64  // Unimplemented constructors and operators
    65  // -----------------------------------------------------------------------
    68  DOMText & operator = (const DOMText &);
    70 
    71 public:
    72  // -----------------------------------------------------------------------
    73  // All constructors are hidden, just the destructor is available
    74  // -----------------------------------------------------------------------
    81  virtual ~DOMText() {};
    83 
    84  // -----------------------------------------------------------------------
    85  // Virtual DOMText interface
    86  // -----------------------------------------------------------------------
    107  virtual DOMText *splitText(XMLSize_t offset) = 0;
    109 
    120  virtual bool getIsElementContentWhitespace() const = 0;
    121 
    128  virtual const XMLCh* getWholeText() const = 0;
    129 
    158  virtual DOMText* replaceWholeText(const XMLCh* content) = 0;
    160 
    161  // -----------------------------------------------------------------------
    162  // Non-standard extension
    163  // -----------------------------------------------------------------------
    172  virtual bool isIgnorableWhitespace() const = 0;
    174 
    175 };
    176 
    177 
    178 XERCES_CPP_NAMESPACE_END
    179 
    180 #endif
    181 
    182 
    DOMText(const DOMText &other)
    Definition: DOMText.hpp:59
    DOMText()
    Definition: DOMText.hpp:58
    The DOMText interface inherits from DOMCharacterData and represents the textual content (termed chara...
    Definition: DOMText.hpp:51
    virtual ~DOMText()
    Destructor.
    Definition: DOMText.hpp:81
    The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing cha...
    Definition: DOMCharacterData.hpp:46
    XQilla-2.3.4/docs/dom3-api/functions_0x65.html0000644001725400016040000001476013273140100015657 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - e -

    XQilla-2.3.4/docs/dom3-api/tab_s.png0000644001725400016040000000027013273140077014001 00000000000000PNG  IHDR$[IDATx݁ @@ѣ?Q"%If6[HQ<]dr s?O=w'F -~rÍ[芭m֬ݯнF)Y% `n,9B!ь\<#IENDB`XQilla-2.3.4/docs/dom3-api/functions_0x73.html0000644001725400016040000003742513273140100015661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - s -

    XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp.html0000644001725400016040000002270213273140101017612 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2MemoryManager.hpp File Reference
    #include <algorithm>
    #include <assert.h>
    #include <cstddef>
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/framework/MemoryManager.hpp>
    Include dependency graph for XPath2MemoryManager.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XPath2MemoryManager
     
    class  XQillaAllocator< _Tp >
     
    struct  XQillaAllocator< _Tp >::rebind< _Tp1 >
     
    class  AutoRelease< TYPE >
     
    class  AutoDelete< TYPE >
     
    class  AutoDeleteArray< TYPE >
     
    class  AutoDeallocate< TYPE >
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Functions

    void * operator new (size_t amt, xercesc::MemoryManager *memMgr)
     
    void operator delete (void *ptr, xercesc::MemoryManager *memMgr)
     

    Function Documentation

    void operator delete ( void *  ptr,
    xercesc::MemoryManager memMgr 
    )
    inline
    void* operator new ( size_t  amt,
    xercesc::MemoryManager memMgr 
    )
    inline
    XQilla-2.3.4/docs/dom3-api/DOMLSResourceResolver_8hpp__dep__incl.map0000644001725400016040000000026113273140100022067 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1StDOMNode.html0000644001725400016040000003575313273140100017671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::StDOMNode< T > Class Template Reference

    #include <StDOMNode.hpp>

    Public Member Functions

     StDOMNode (T *node=(T *) 0)
     
     StDOMNode (const StDOMNode &stNode)
     
     ~StDOMNode ()
     
    T * operator= (T *node)
     
    bool operator!= (T *node) const
     
    bool operator== (T *node) const
     
    T & operator* ()
     
    const T & operator* () const
     
    T * operator-> () const
     
     operator T * () const
     
    void ClearNode ()
     

    Constructor & Destructor Documentation

    template<class T >
    xercesc::StDOMNode< T >::StDOMNode ( T *  node = (T*)0)
    inline
    template<class T >
    xercesc::StDOMNode< T >::StDOMNode ( const StDOMNode< T > &  stNode)
    inline
    template<class T >
    xercesc::StDOMNode< T >::~StDOMNode ( )
    inline

    Member Function Documentation

    template<class T >
    void xercesc::StDOMNode< T >::ClearNode ( )
    inline
    template<class T >
    xercesc::StDOMNode< T >::operator T * ( ) const
    inline
    template<class T >
    bool xercesc::StDOMNode< T >::operator!= ( T *  node) const
    inline
    template<class T >
    T& xercesc::StDOMNode< T >::operator* ( )
    inline
    template<class T >
    const T& xercesc::StDOMNode< T >::operator* ( ) const
    inline
    template<class T >
    T* xercesc::StDOMNode< T >::operator-> ( ) const
    inline
    template<class T >
    T* xercesc::StDOMNode< T >::operator= ( T *  node)
    inline
    template<class T >
    bool xercesc::StDOMNode< T >::operator== ( T *  node) const
    inline

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/namespacemembers.html0000644001725400016040000000432613273140100016371 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all namespace members with links to the namespace documentation for each member:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_20.map0000644001725400016040000000043113273140101016011 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntity.html0000644001725400016040000017130713273140101017746 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMEntity Class Referenceabstract

    This interface represents an entity, either parsed or unparsed, in an XML document. More...

    #include <DOMEntity.hpp>

    Inheritance diagram for xercesc::DOMEntity:

    Public Member Functions

    Destructor
    virtual ~DOMEntity ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual const XMLCh * getPublicId () const =0
     The public identifier associated with the entity, if specified. More...
     
    virtual const XMLCh * getSystemId () const =0
     The system identifier associated with the entity, if specified. More...
     
    virtual const XMLCh * getNotationName () const =0
     For unparsed entities, the name of the notation for the entity. More...
     
    Functions introduced in DOM Level 3.
    virtual const XMLCh * getInputEncoding () const =0
     An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. More...
     
    virtual const XMLCh * getXmlEncoding () const =0
     An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. More...
     
    virtual const XMLCh * getXmlVersion () const =0
     An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMEntity ()
     
     DOMEntity (const DOMEntity &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    This interface represents an entity, either parsed or unparsed, in an XML document.

    Note that this models the entity itself not the entity declaration. DOMEntity declaration modeling has been left for a later Level of the DOM specification.

    The nodeName attribute that is inherited from DOMNode contains the name of the entity.

    An XML processor may choose to completely expand entities before the structure model is passed to the DOM; in this case there will be no DOMEntityReference nodes in the document tree.

    XML does not mandate that a non-validating XML processor read and process entity declarations made in the external subset or declared in external parameter entities. This means that parsed entities declared in the external subset need not be expanded by some classes of applications, and that the replacement value of the entity may not be available. When the replacement value is available, the corresponding DOMEntity node's child list represents the structure of that replacement text. Otherwise, the child list is empty.

    The DOM Level 2 does not support editing DOMEntity nodes; if a user wants to make changes to the contents of an DOMEntity, every related DOMEntityReference node has to be replaced in the structure model by a clone of the DOMEntity's contents, and then the desired changes must be made to each of those clones instead. DOMEntity nodes and all their descendants are readonly.

    An DOMEntity node does not have any parent.If the entity contains an unbound namespace prefix, the namespaceURI of the corresponding node in the DOMEntity node subtree is null. The same is true for DOMEntityReference nodes that refer to this entity, when they are created using the createEntityReference method of the DOMDocument interface. The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMEntity::DOMEntity ( )
    inlineprotected
    xercesc::DOMEntity::DOMEntity ( const DOMEntity other)
    inlineprotected
    virtual xercesc::DOMEntity::~DOMEntity ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual const XMLCh* xercesc::DOMEntity::getInputEncoding ( ) const
    pure virtual

    An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity.

    This is null if it an entity from the internal subset or if it is not known.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMEntity::getNotationName ( ) const
    pure virtual

    For unparsed entities, the name of the notation for the entity.

    For parsed entities, this is null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMEntity::getPublicId ( ) const
    pure virtual

    The public identifier associated with the entity, if specified.

    If the public identifier was not specified, this is null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMEntity::getSystemId ( ) const
    pure virtual

    The system identifier associated with the entity, if specified.

    If the system identifier was not specified, this is null.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMEntity::getXmlEncoding ( ) const
    pure virtual

    An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity.

    This is null otherwise.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMEntity::getXmlVersion ( ) const
    pure virtual

    An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity.

    This is null otherwise.

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMXPathNSResolver_8hpp.html0000644001725400016040000001156513273140101017374 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathNSResolver.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMXPathNSResolver.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathNSResolver
     The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__dep__incl.png0000644001725400016040000002111113273140100021056 00000000000000PNG  IHDRn bKGD IDATx{@ kǟB]HINJErKC'A.B+ 9no$+(JWVmwc{Z]gvv><={6[ZZ}J[[ݻwȶA[[ۛ7oO>9s&?G ϿpBRRRFFFpppXXTjR} 򊊊jnn>y$ʕ+mmmmmm?~<}NPT覦&1oݺ~p$$q}vE~ڵx&b!CbD5kҔgggO0AJJ 7nTUUZbEZZ͛7W\5f̘;vwULL xb111kkk@ss3۾JJJZZZ^^^yyyH);;; yZpիWϟ?NNNHӧ7m$//hmm399{ڴiFFF+V@}Oҷ'ejj>իٍD ~jjj 99R### ƍcΙ3СCV bmz}}=@CCI5jԨQsP(mGGG.-VPPG B<|p[[g>|3f ѣGw/yyyW7}Y455 D 2DnLLLݹs;wn[ .p^ &ϟlݺಲ$1߇`A999K,A2L2HKK!CIt{Æ q uttٳgϞ=3fbw\^^}{IWYYD{=b%b>MMM>}jhh(..޽{wuu ӲelْWYY#E{Ti֬Yzzz>^p bnn~رjܹsbbbˏ=Z[[ @*tλ133-++۾}k׺3]\\N#vuu1 ىt좢 h4Zaa3gtM8qDUUիWbbb,--I }/7l؀l())M8ԩSELLԩSqqq>|PUUpvvFlSRR{ĉ"""?A&&&^^^iiUV,*jyaợG;'//Ozhh8h)NTwZCtAϾjs繗\ifm=azj]]3Z<2..S^^E n#F%>~`/:/\]RR#""<33K""Yzn}yr~kk&h 'k1hkKcc99MUPĪ>>z皚xOO>}OIIUfh An,Kh>}tBE^^ɥ}LZ>=իRY11y޽)ϟWЗ 9jj2sP$*͛>]lss;Z0 |` ܌Fa :qb  m-oe]]T|EEɰ7n_7_^kj3zB|OIm-Wܦ-gv?quڈx+_gy< Bk n^W~p<11Q㞐\́_-^`ibΝIoԡ[Ǘ))PKKqڳ `֭g΋(%*jYe姠?ւ!p'O*ȅKFV8tȕCݗd2lB…ݧ]xZ0N|׏?jKH C[HٿQCC,)d <h 2O_9d`8s oP`8xIVVlݺx&x_vu1<1c,B b_kkē/zzw/ Ky@u &桾ȠP=@Bb4mCLZ\zUP C#VV~-|Ymh8΃-o$&&r% %%5}[/hv=/EMۗo~C,ƈ7ۗ?$YYq 0K`ўZ[[ %%%Mv.=' A8ۗ> deʸ86eʔ&S燄EE{Y[[7!//"..0w\ׯ_={61#*t_hmRRF oo7o"T*500LwVlqqq*:;;_|ݔ'%%999i ۶mkoog0'R"+rmCx1cHKK޽ﯬՅ:011~-++iӦ@C_lYL.]ϙJJJ8Sedd`nllsRVVFʾzJEEᦦ&11vn0aaa͛gϞٳСCϞ={ӷmpII D84-&&BѢ 0 8::{ٳgSLٹs'Rɩ1::GΘ^F%''#aVVV_޳gW ٰ/eׯ_0JMN2 $ʕ+ںW\AR^|lw˧O"?ɜ6i$ԃ8svtivgϞ/6v%%%cǎȨqe(**222b:;;'&&0}#d"mmʷo )zzz\ŹN\RR ""µPQQ< ,/Wn@2H_y-rw<{`9.aEv=<<}Z[[CBB)͙iiivvv|WVV&eeeOo޼QWWWSS@R.<\صucccNNex]n~1{`DX]___SSSUUC{{-[ ?YXXܹsիӧOWWWa'Ɏ^^^JJJ|quuݴiSyy/vt_ŋ/^ذa۷o222shcǎ^o߾}왵uxxx7[ZZϟ{׷4??_~YdI7Ƕue£=fȑ#=<}Zt_[[[{{mԤAAA222cǎMII6F[bڵk[[[y255',R)Č5JAAaƍmmm<{x9r@%AI xI|Ԋ G})3]D)))///~`R^^łPAII)22> ؾTUTU5-`l_)'"Bh@[#ؾ!˖ @F~l_ˉowc('`XX,A}׊g̘"rII- ccc77!4 44SAm!C3bw=z0v,hRtGp'__뫋Rޡ-d`w陵Y͛Ňj>0x_Tߣ-47ov3`R(yED=#LYT$ؾ+[Z[K/7V,Z }LEeg@޵ {55H$[m/gioz򄯧Eɓ!QQ`}B"AK?/54dG|^ sѢ x(ll&" #Sq rOb<X>xėff:/WA/&LPWVzU'9Sł?(e>øQ( &% #ė'k޹#`ZYPk` N| ׷},ܷ/EAAb9!9RN['T ~|9ּ2S.LHB#q'_0n58xg}` Gqr+) /o7K0EuuaKK0w`ԗ;)UUXo O;ʗ*?m!=pwN-7݃+_ga{{BKVVixwᇾLt&$͗SZ[;{44l?%Kf[/MMu._G[X,x͗ww$ǎeg?DJj8Z}ic3AAAҥ\|EnnYhw^hd4 m-})"Bvq1R=>oH3gUfhk pKI}}3Fz?0 o|Ʉ]Ԕ3g|ll&B *{/##=UY3;3Xa0(.~|fڴ1*,pٳuA-:!hvoc֭ En} XzֵkOQ[vD:3<ܓLu |ddΜBgf]^x$*W{ll5kٗ+Lbc AN/#x羔rYttFKKVI'N,!n+ /ܚ5p.%%?CsD\_ʊ{zjIDAT3}a[_; ##RTTĕȈ윘p8@MM @"}utttWVVvH% _cطovX[[SLMM333Ґ{\Si_FD~/kjj>|hoo_^^e: ;w\zu>>>HSellǍ111?达˒%KI$ op{~#Gzxxrfhiiٺu~PPNgE7ptvcbbFqƶ6A`ǹ~gb@t%䔅xe'_%%H~ %!|IE_`—X%d2ŋ<_I {uA$NK,B$"/ B{k0IENDB`XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp__incl.md50000644001725400016040000000004013273140077020057 000000000000005fa89cd173b0e24d4b259dc202005b58XQilla-2.3.4/docs/dom3-api/DOMLSInput_8hpp__incl.map0000644001725400016040000000006713273140100016672 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMProcessingInstruction_8hpp.html0000644001725400016040000001177113273140101020742 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMProcessingInstruction.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMProcessingInstruction.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMProcessingInstruction
     The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8cpp.html0000644001725400016040000000716313273140101017272 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMRangeException.cpp File Reference
    #include "DOMRangeException.hpp"
    #include <xercesc/util/XMLDOMMsg.hpp>
    Include dependency graph for DOMRangeException.cpp:

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/XQillaExpression_8hpp__incl.png0000644001725400016040000020357213273140101020264 00000000000000PNG  IHDRQLPbKGD IDATxuXkY`en) 0A ;0=Ʊ[Qbw!(4"ݰ.Ǽߞ=,p./avyާp<:@x[(-t:J lRPPuʹ|||`X4LMMUTTAiiiJJ u[ig5jQ6GxK%@GAn @{;99}ׯYYY/_^l׬Ys] Haaѣhtݥѣ ;+0O,2d@gΜYx> k֬[rfvvkbccO:E ͛Ο?fz=h@;-\D"]|A___EEŹs/ݺuKNN̙3vvvZZZ.]*..~DZre[뒓SNVk_An v۱cǛ7o޽͛;vKTPPТEDDKCRRrܹ>|hOixx+\]]gΜy޽۬Yjjj… ~pӧ, 6}ҥӧO>ҥKl6-mٲe...=;hǎ:uٳ& ѣ?|x)SzhǎO<)..|ӧ_^__o߾iӦ=x`…'Nor`WYY٥K?}}t/_.\jժ˗/oW\z*Jm!&wrssEDD,ؒ٘k6lؠ NG_Z|B{zzyyyM:u֬Yebb| tʕ+%%%߼yqF}}UVEEEX,WWW'..(!!N~l6;88S]]]__ҥMF ƍ ?u&--moo ?l2&w|~>|?s̶mF9bABFFƠAn411SN tMMƧI&ݼyӂ mm26QRR2sL222gΜy׍ϟoggNYUUU\.WCCRSS_z9]"(n2&wvKSEEzj ŋ>}F7v[nq\˃~޽{NNN-`07w\__M6&ϟ<ŋ Ѝ|4C=tΝ/2 .o߾ &ܹɝ*EDD/ДiͶ&h2&wN>?qDA̙#//9ŋWVVzyyEGG:td7bl111&yuAjkkї+ ĉ3fسgOlloE?055ի *rppr Lp۶m3NgXbbbM"&&6zs;K{os }b2꘵L:QSS_[ˬcRut:I3xՖy}LL'&&m۶k::::::JKK^~),,TRRrwwǑ#G-[\a͚5?Y~}CBB͛'&&yf;v֭NNN ,hЛtٲeϟ_bstt\jqR {#N7?~x<~̘1 ,hN:eee%##-m2;[8xXRi_SSO ~I1:ԱNgKI22RRcŨQ:1`6fjjډe6VXXҥt&cnDž|in 6KQ(J"QGԢ)bM 7Ru !ee%de% IE"Q Mee%  iiq))qIJZZBZZ\FF\VVJD?nm_XW'%UX,NuumUaH Rh48D&H$)IJUd` y(E$Jd+*222'O:i2x! mV_ϢPj+Y"L%)/)ڲ.?g%$I$i4o$H$i99{dEErݻsĂ}bvK_L&VQA/+UVL&ˠI$K SYoވ&eeTb 2cc5~ 2 "z[-jkRjiiMi)VVVS^^5Tj=`<^TA(,HVPT$ۊ2 eeYz[^N+/))KKd2Y[DpJJ%%2AKKAQQFIIVI6B*+R^@n @X1jmhcq1ƟGJJ\U,B43TR"dUTdUUbbX΂k`. 2`DD>~ݥJx/=j'O~i? /2*//`4rȑ44亴j8-.(,,*,**WR dje%=FLLDIIVSSNU.QMN@kɔ쨨Z&/laeaVL>(=yM``Ѿ}SML4]ȑ&Orm`;Y ^1eݺ;J׮-Ԕowm[Fc(:8989&'-&Uee5RRZZD4iTS#jhȫ54HD}ÐɔĂĂZdBJ[\k9/&&{L7Hi<`Ǒ#3lA* ^.[ԯdذ vTTVh_))Ebb"vvGkjhڝ@  BVVU!ss+jjn$JTU%(jk$mmL0ͩIKKm &e^vArfy:@ZVVciF0h*;ڥKJ16nCʑ#3,H4ӧJ]_~ rKC v~~ennyAA@kdUi)""..!%)%!))Iv`2{ny9MTTI ~&*\.Ә#G^hիG[YN|62rO~ M]_@u~9ÇgU;pcbr$$ll\]߰; C7 RBBLMN%>d||ڟYGGFM&aai z{OPR"tb/^|uUjN='%% Jcd~RQA CJhh*Z8vС1~}г1b`[YJ3E549$ snTj]jj1OFGgV J7KHXPbb_f8;?MWWӫ8"#pLdd?}q~TjիKlÍ J KKL̗1p$q·<@n =FMyyOrt<$?D7RSSd'L۾;GQQٳ݋޳g~UuGֶ|X,g op7$$љ 0;AnnEPPI"""#Ftq1a]rK:*;,+,3,+47 ]RZZ\[ o(L} HI)l!4HGQ3{v WC55o0ieN 5eʹ5aSkn>~ 素wjjꍌ&Otv6uhrKL,C3I_NN9F*(ﯬfʲX 0@3M&32\I++lXNx֮bnXlҥ=rK̀ =2((y;&&KTT-@2y>2lb6lA O #ةׯ42qq1]]%cc5~Vccua;t5UO&D)cc5t0L$>AA{P-s=i{=Zcooۃccs&O#GҥKk<;#.bcs޽KzGVV|$# S@n ]b'-$-Dp$u|Vh26K&&X"QX8ilu{`@LLĉwOnn-9sr̡ouu˗Zspuu535w]">w^NLHȗvu8i=$:Ay9ׯ _ehj+)()):fs33KdBB>ɖ0dH|萕Uv/ bnܾС#y&ie% ر//X /STTub``|LL(l:yըQzU%YI %-$=FNK+IK#WU! UJ0  ? Y22dPUD$|UUC|}?*yyNlI{dz̛w..Hru59sᆽ3@@n 軸\^^^EJJQz:-Nf0hjʣ[ T UI$iBJ0ɩI++5:,,_ε/ 3WVw߻jԨm:ÇE{u@6p᣻7Ih2((hic|:?**zq/]ZԎz_eK~K\p*(z"Ȭ2CC)Sfu\An fŸ?SRRR+y<(ejgl&%%u@ &߿疗DEE78P ϻ#ڳgʰa?Νp?qn@uWnɅ~¢_;JZ~־ګV݊:qb6+Dhq8؜'ObXÇ̚5d @%C[Iw 22\.OVVROOHM͵ E֧'Jd¢m<|unݘG mg`6ntnw,:v7ʱ7ȑYbbpZ۷?? %)wu8c`#X>rK@Q_JN.LN.JI)LI)NM-""8%33  SS umm^MMϟ&d'L uB-,,?gen> :ݻFnD>|L&E÷nuH$ϟyy=矅xڗ/?QQ!Κ5d0 ^rKb8YYeL6 o43ӄnW5h4FJJa ɤNj85iΝ=t"ăyO|sַ?%% &)㚘k&&2Q.{ h2:tܹv&Ydz+-B⤤idbb_%,H8P¢e? ~::B8 !:o2v&-,lm,,YZj =Kaa㯟>4Hg)CaQtd"rÇgΟ?TVW̼I,;Xry_?~e/:n6^rKlnff)e211`Hj[ Uan ɅH46V?NjXSUW^|Jh~ 'O:6D>6o~ybڵccb)G&ܺ5)smg϶x5 t+o2GA}= 51ѰуdIee% 7i;ܼԩbb"6,Yb桱a9夦;9woȑƝӧ1۶=>^<1t{"Ժ ݇E ![Vd2)Nj)ց?)@k4M Hh@2x<˗ ,+pذa$AYVV ҃wΜxwWu(ԏ~xZz}=}KWR"̚e3w q rK@+.͍=/))!!fjgh=&l^˗ gkdUU"ݻ韚zS>!e!!FFVTV켉{Ɗ=s'<7¢߲eӦ q tzVbb~\\^llNllNI ETTHm`++mtZLDEeGEe7n趵շ30PTFFɓojbuD~rڃ;4.xȑYR ol}zJJ󇺻SW:.@kAn h'F$JZZj3pC#d 6ŰO9/&&{L7:N`cs}ƍΝUK||':y;wwzhtB"Qs Adʓ'1~~_dʈ˗;k }~[Z`'$EGgGEeVTxQssMkku 5L&ccs*+bb"*djN IDATR[BnU[˼~=ܹ.᜜{wVUUAub$dXqCZZuNvXoܹKC u\fAn hIe%=&&;**;::mTQ2Dw  ~L&&DEE7AqOcyI1VnSoz/ߏصYjmZՉeɔ˯U_ ƏU,Dݹ^W7|rG*} ](x::66zP7`2WVV  ZRRX }^ddl'()mpњ-6**kڴ߾baѯsKF1;޿ٗ_6@1nRda}،BrKp ##3bbr**hx++m[[!Cllta$-*.5'ss+QU%%aIL?x0 gg*aQ=0o͛]:1cN {N/~9jԀv'{/]$22ͯ^%HKK̛gtC~ X@-X,NBB^DDVDDfTTPPշ2DB u-RSSd'L+/#QQQٳ݋޳g] D6yyCzlС;p?#G^Ҭ/::{Ŋ Uv~͛_KK&X\9j >YYSS,O:8kA+RB29hboQP(_)}I,{w;wOI9 Sݽ{ʒ%#:pA%%˯ϝ[0nypSΝ.9}`X?@n @/WWnjψȊc2ZZC6С/:o2ArLZYi++b&haԉ9ڵWuYe]T-?~E1;<|/45.p𾼈 X^~kzllW_>%u@HX쨨,~2I$J&mmUUX P_ڵ뙇fW/),[9c2ff훺`."..wҤol}<]VOm[q#DDpnnvV_yt'-%8nrr!:O55D[[}Q/W$4D%X,(ilo46+/((y /7 {`@LLĉwOSS.u8:9rӻ AY+W tO=NMMÇQ.PL7l;x.A'@n @ϖ[sRD6FR,'蚥L23={"\.][Uv/ bnD{fk׳.Z׮ϊ-S?F4J{"˗?PL<%%_|I+/I# !M8nVVYglLQP_ϒ05'0|yw;NCCMW|:y1b5{|VTPPegwcǚviE <ٱcڵcà}mm+εu"[323>N V"!!fk?r&$OLL_qq4đfdL&%1xQ =H&{{" Ϟmg&N<5}ߪKuuE /Ǐ+- ode~z8FFF|ժQX@o%‹%%]##L&K*+9t(ɓXQQͻq74ʎͩezzh&iaem >>,]zqߥҧg]:t(˄Pݻw?KH8FDd\yCY硣͵Dî\-n99iC&SUUUUƎF**Cofsor+fs]~k#dbbALLNU]LLD__LZYi&f29Y3?&b> wOz+?1oners+.]Z/[֭.Xs֯J:(z- l6766'8gpϔ"IIСƎ&&XGCDD23˸\ACF4wo`2SY0Ԗd)0p<mf :9ԫWƕ+oTTО>]=5`={cDŽu0'G^\UE3f& .RrKTYI5=((9((Bwy3DFd2DDpS))q))|e%]TTPҲE? ~暐LMd2u3eeTA7k֐ߝ G_={&y>iR]ژuLs'|''Z̅jZd?z}S7mrW:(z*-nQ'戈ଭu\\,,cm {͖-`=L6ϯ|.? &L8} RJ֍_tuFuNFFD-]|bѣRSKNӎaAܴi&Oz$̙Oxx8xz:4ViiɅ**&Y<8}= On2ۏƏcA ׭3u9??MM~N"nn3f ~0ԩ7n}[~Fgz 7Yqykiuak/eFFV-]MѨ.&&c/^A4iҤVV222Zy$Ԉ#rejMn}F'>#h4///===)))CCý{wD"ŋpGGnƗfݫh"Wׁ]]Qk88RSY7|9L:@KKĉ9_oO~~͚[X@:{yޏvhko]FHO6a>>jhh'.X)33311|߾}<AyQԫW"2g*zeA#o^4*} ۱c ܉ H|||MM JȘ1cƐ!CZTI&QԧOatp1KKKZjjj ׮]tR~9Ǐ9sf^^^bbAvA$$$.]T\\|5111&X{ oScl5CG?>88V-x5kVUUՕ+Wh9o{NSSSBBɓ999ܖFؚ| wk;;}{{jkqqX*ח|5Bii rrOiy<<~  rK'm|zߩSo>~fwaXN\.>| Dc۶m/^())y-: dݻA/^W^-X wss۰aCvvvRRݻ,XЦ}iƍ;w\;D0*j* e˖!uVUUUOOvWJњ;BٳRRRaD"_Ό3DWW .p8ORT&㥥uJ=w\˼z*Bi{Ra=sA-<i C -Zիo߾yyy͛7s]Eӛp…vB;-_?P ۷'tQKց٫W议{JVS)ye_?uPך1o%+++L°aݻ8P(((ŋ͓0a6}IaÆ<r…7ow}ԫFuU%%%OOϺ:t'ƍ~yIs5W)Ų'ͅ˗&l6lK*tRyyyEEŕ+Wtm߿^xy!99x[{ v6ygye< F6缦no0޲_]]- cݾ};}i4y7&A{yyihhHyUUUtzxo9qָu)S:6R/u~mbq\ 56amѣ(a^`Wegݻy^V:}XQ#77ofdd[8v IDATivֳM33 a!'SSS֟zo զNj==$'qdx<;  ]0;;Cfh Ă^{4g?GY3:6v_Q IC̱A{{C.u mnuEϞΞ} _v2yylcwz>" z -A/Aqx2?qqћ7^IIuhUDUj-] ܹUU;&vuEH06V:v2*0p#Lqu:^h /7;6Gǣ^%=^NNݻopӧZH :%&B'm[1jԱ;&Z5oGiid4&̪kWyl77[(S]6|ѣoCp [,**kժG==dc$uY]ɓkJF0re / >((? ;9JXOTTd׮I[<(]Mw[/_tGg nuP[v[{eǎ'={`Hp8kk^jyi=zu8wˋ?5f̉7o~`m}bʺv-~v`P))qs:rq554^Su,XbEʤ%$DHh,))[Ls;`*@x<{VXZZ%aEwoձc7m},11h&Y:::|cMF:(~B}r\Pll&Xa999}$6WS#AS55x'!.mS$%:YYfG #JJUTj;%$*U"9YȰ &V+ L(]L+%ő`KI%%))8𴴴|||:FYYYiii}חljgSSZ92;koemʪEE~م""2Џan BNgܻZRB8bժ=xޡ>>>紨<hcgkocgl}s;7׮-uq1H9GpC3,)ܸodfk:n9()U )*˫ͭͭ@7jjE54䴵utut ]]e"ٿř1>s1An 0S~Z؝;߈DEX1 zu܊*))qssM[[}[[C QPP5qss͛7WtϟmxwG꺏9nrr!d&&KKallJJ;FJ.4ٯ|:ϟES5kѣ=i;>]u ]ٳX/Æxq!姐}y7%{Lqwu83Ʌ/z$#!!fcl6aEONd#gz: :A#jϚt.vTO 鐂*[ :.'8?&‡G]Fc8݈392SH{OU{HFFȨHJH$-ғvzڄӐQ2Du.{owG\2{_y{s{|g[6IL2DjjxG䖠Wƒ{Ca4=#8))+113..ׯJb!FF""x2EES ^תEӋVrT:lꆁYZZ[=ߞR3M8RH;::05{=ր>w.С'kN;N/_SRREDGRҵ wt$4rvÇ֯1Cy2D'z{^Lݱ 0mTa>>aG:BX zسo f2\JS#pb!ĬiȈ 2/Ynlw,LyBSOO{"JJjED|gmL933kkv9:tY3[tOc#EC3=Sׯ9?Lvj({ginnvΝ$W׉;wNN+<㏛6S|y ?Yz +Μ u+AKK~Fi S7b!rr&&ԍy~@Qtݺ!!n\4f"߂ʠ<3+2J!;<<-,KzzQ߾bږCuq\e47S Z5rfd7#"$$(ժSSS{'䨬_" YZ;;̉NxqS ;yҙ{ 6w?|>`9-A *ϟ SQqs={$Kb!11Or)ZB`ܮ:~sׯ27;ovq |ŋyqNNI| fL"ȩ*-?٥6]ROO pjrs'JH\*PVVL ;4[w#:ۑ#a0`!-uG]###aܹ&xqqϭ ISSMeeiV!!]]qu#R;vܻ}; r!c̰/5,,aL55Q [7rɅFN--yQQh z>{ɒ+ R׮PTw8nݍx¡ */.paѸq:xP=#O̓ᗀe k |5k&X1V%m U:%-׋DbbӅ+q(<ڵx{FOMṟcLaL1m)ʴͭC~ظ֤ICΞ]!.m~73W\MMmܿ~v[W׉nRu&ɢ- y&N\\xȁXH/6ÇxExx5LM]X\_Vhhh~.;,,υUҝ0a_-]Tϟ7K`:: ̳9ֺ^{.9sYwѧ_÷xK\e0l?Jpܒƒ! 5ٲe Fr~$| a 6g6؀s/ӱdm̴ҝ2e HL{Wht^JJŏf511a?CpDнѧi[;Ul^^ŋn7.Eжn $]; pܒ}w7o2͵E+@tU}}ىYMMTlrWlaБmR˯ijj[0TR ׯ6%Ս  ۪WZ>}DPr% CΜ'}a:vسT-;~Hu/f߾G06-ϟO߼o`k״ѣ4~rc)% 'ř3'NAWAn_*+ϝ{JIIz6[;dWTT5N&%erY˖K{< |i6xZ-9r@kk]++]mmx;F4f欬v9KJ4iǏ? m͚ eeie**2x>[įo_U-BzWq͚ V獮99eIIYYdrq 17۷O9Nx&سv''GxDee}l,[ˤ[*JwpJt)ch:5O^{yyt:3SEE=]lqqŋǎ;PPP`oyy͛.0^t䖼E'O>:f2s77KnNX,?V )kb!)?bT==WWՈoW_50P]݊Zi`frr`.#'\$/''yxL[=b񣸮 iSCC޳OykڸVhhʶm0MjkV)7 `)rKK|c~i&w:~^Qb!&&BBXm1 N Yχiׯ-~}zPe11 fZY ҅yݻI;wWQ9wn!=9l ϯ}{5ށp1Eϟyә3GzyaZfД3gM>pܒg|w++];МuvMHQ](++1b,Mh4e?>}oע(*ZJ^^2 h ͯ_cEEUKce;qY5n~ի'lfKԂVE (*Jj4HʌkPc#ށp/]{]EE9 dE==?A IDAT_jϞ..p:-yPIIoNW޽{:M[WC6OBBfs3,<<ߺpڑ# ׮ =gQxt˗XrXXwFFVV0) kAg\1m-Ǿ0mTU>tqqgw]t镒Ki_ٻѲē/c[O\LLxӦB?`+OZ,B[UN}[ó|CΟ_8cAh4c_ߘ-[l6ls畖FE}HZ[ۤ`eke5t(u|U5;w{_RtrKweׯ9Aήcj)*BPh T][)++ŋv:8ȵkqvݟ2EYL j뚦&jbbfXXjhhϟ22ff؂p(/$%EƎ;bșS '߲%bY Opj5ݻ,))1--yIi+WZ[|ܒ;oC2#!%%߾GvvwΙƒsrZ.ba-%p'O>(" @_s8IL\2PVV2 `4wc̷o31b45oz͛+,ݧBL9/hj"",,кS[[{Sڲeʒ%f>~vu55+W2:|4%2-51] %wؿ?WwWPTTzV°a42R+¶h4zFFqRRVbbf\\Ư_B,,a71w * EQ7CM *.+ti5p:lꆁYZZ[=_7|;g΅ M8Ǐ?SR#䢖 gvviuu׶ ONշ^V-G_J./+|y:+5_om,s޼y QzuMp%q㭻]A44GEmV'N<پa'jXHl,^BB UFF0D"@@_t,q&-!!`hSB))1 mssmkk=99I٥'++zm\\Ǝ+,]]'mδWϟc5jXPPihcQ80/mZFDDO|A!/_CXKM9wA䂂VrԈk;-9]|G4A"peSw~XRRl V>4b,CNJjl/i`jlnn m600*/lB9(L)5zPNNYl,9<<5:*ui{޹N1ee>T*H$9p⚃߿r,BUFAIUU'!!yF#w tbb::?98ڱcTwkqG> XJjk>~dX<| EU ,0=~܉!qȴk}}tܧtC}}7؂EE**2؂tЇbGTU.6L㥡ﴴA}[gytx>[["i]D"y6r*+Kܛ=unfK N;g1^QR'󒒢kde%p-9WeeSd/җ//>\,ٰ9NܹӮ|K%NG"xy:KC ||&ٳNHg{Eu£Fh=@fL RR{LYQHMn_aaii?)>~D"K']cǽ5D"!<|!쌊' m-KF#Lы2) @Rch=%#nدɧ~ǾtI$Wa^_ao|7W̱ rKYʕ]H$(ko2&LoEP4pzzlh„cdr!"D:Ydm|jړs+(\Quu#|y)oZϞ%ZȴŒ@ Lvś~5jvv¼jhhƒl,,)-on""""6dUU 7F LkϞ;Uee}xx $$qFM&o*?"s |[[r3P( HD@҈Dj?CC5}}e}}aÔ;??~uubDB{_{,9|imE Pz,55YeeuvM[pHHGWנnD"ktn. NNi4z{=|QS2enO?\m3m-ˀFC'N}fܲ?ܽY"$$قmgef̞}v@7V4`ܒN~ئ0@$W:TaPEyQzO**AXX͛.HO{Vdgg'%%$p^fll0oz~TOجYǎ9rBxG+?~,moVKÆ,X%"AWRx&cpQNNLEE|1Q>}xo)((d =L{ҝU!PVV_C"ttJKswWw%55A rsD"lmmz[9}}WWpWJ%%%?*?+)IjhHK (%$Ă:ok2G,GљXhjJ|"''7tn,0%o~6w[n|;_]]] J;@_M$ ( ( ?jjas,!,|رgW_{:СŨC} @|ZP]Q H䔡(" @Q:EQV?[[cUa`clpKIIzѢ1xrK#ҧO'_D#nx3%%%**2xo22C; H}U T>K+v~`bw8M` S {tcs3dT7tJL B={ԣG1sH LjU_xrK=}qd .:%9n,@ۯĒ%~= p^-322ЁܥK(` :8>~( p]CBBRRRչ>\BBȑ#n73:?"lJQ_vur-ڢEJJJZn֭Ç422:|0c>@j5Ҕ)SpmӧO=SI[':|Jܹaz?}~첲:<׭ׂcsBF6ށ [KwŜS)Ņ\Y[ޱvܲo߾۶m=z4s_~ݸq#--7m!1bΝnnnTUUݻwذaԌ5*!!ѣ>|ؾ}׭i4Z[\\\X{Ps}RԫL~~~@@@uuȑ#|&%%;v;vq㆕cϟ?36[QQnnn˗/~c{ l7 "##sqAZ~hwZr+%%ɹ/GϘq:;H+.ym*Ҧwwۻʭ*Qۻ|ǗU}o7%%53fpIJ=5Ǎ7<{`j_mo0xD8R~heelvW^׏B(zu]]]:^h{[Ō CEE/ eeev{drIǵ?x C:jkkS⓿:##~ԨQh;w햭?[I{'̴faois{U}ou>{:r[66{/;AFXdh@@a2KT):YfJNSU|JL7 Ewrˊ eee}}}F dիMMM_~h^bTٳgrވ ȇPmnnn33{NBByӦM;w8qℭ-^HlbĈS"RTTD ]SSˆ4~Çw7n܈~{BBB'PAA>}jN7 {-ba>wxۃ=H#+Nv/9sն`NKNN㈆ 2k֬%--ÇPWW055yfǹ%'OQQQ946^rrrh'rKJKKoժUl=uuuBBB/\_~7nlhhh/mm;w<@aaC1D{n޼YOOODDdРAƍ3gN>5`z 8PVVvݺu <^ 2vX N2W]3dzPf%iillܲeˀ+**3-o ^n2St3K_/e<-A/{sr-[-,?t:ʪav.J"n00سcݞlpGLS?jjjzmo W._~^ߒWܹs޼yrg-男f(+oZȷU Wp欪-++ r碙0F VU Ee%?p;tg%%BBBؒ_L+W $yxݻ۷>~}1BBFxGsr224TۻށܒŅ`~'KHH5jԲeƏ%G ^-&&ۜG-^WTTwDR ~~1..%%EzuGt޽~,@/!-ztuu{'''AܹÂ-o 7*/۵kڂ@vΝ9s FmѧAAovKHj`,5t ˌkPrr^T6AARϷ8[_01шܺp.Z VEE.J,׎S+n` R[}{&x=;Μ\@**2Khhh;[;V;2}t7]);"\yޱM֯oK% Ç=ZWXX5a1oP wPp] ؓ'iiyF;D;[5Jŋ;w]ecsÇ#+=z!..a Ve++I;[RR :th7|m@g̝;֭[xGYY%w3-3ߺuJ3 Rt  jk,,L4 jjtK Eǟݿޞܾnd׸80[2x8HOW NJJbI<|AOw HMM (E;wx,$$k!@`B6>EAAܼy<}CFFmQh#G>nܨ?`ޱp4dkkg-Y1f!/9F,,`?BWm\@TU{y |=l!d2#g` Mnw,b}Ah:ņ 7cbCr<=gn1㴛ۍZCnxK:~`H,aunnӧxzrKUzp]@o{ܹHEVPݴ鶰@]]۷?tN:#ҍپrWĉǣ訨g̗d3o4}!xV311@@An 9QQ͛mih7~yyx޼8rΝLL4FDDȑtB&a`:|իot:&{kV+ MQQ_YZ꺸;(FG4k[ɓ%%5x rKfi94:zۦM~~ƌ9a>D]_JJ̙ηoEE@f)..|vށn@ ];)>~9&?23;tn,d(re0&##w 3ڵ8w,; }yxؽy1~MnOz*..`BBCS|}$w,C$BC4GXج˯xrK]6`@ǝ""/pnΜ _;(zѵkq1sǎ;J ͉ ;/55ٱc]}IGGk**ꬬ\\Wᇝ;yx98;bqq m8xdA/6[w #ڡ}|?|7cϪ y,y˗[N;z11JWVV޽wx rK=E$^޹eիoLL<詨oA?X@x:\ (oӧ=ށ.k Y3!)iϺu|}cLL|J. zK߾b7ۼ}kұgD{;H;.:rtnr=$-..L(sgť-.ii͛m^9{ 3Áox@k m˖`/Çg_ow8w֒Ec@nɡd T[,w;/o̷o=L#.D6?ңG.^lw8eHcclɹ =K.\rK#//uw{.stCTVzg٥Ӧ$$md=쐐,))w ]Ӧo~;ށ΂'yMR77˛7㍌ O2G\\ٳ Jx$))H(@G$Gw IIk'%&޶&&nn7J Eϝ\;"&߾T f[ cn~*\w\Ν{+q3g拊 `sTށ?gK\;.jk{dcݧ˗kN"KNU;YIIYuuMx>^p E[ZYYpĭ[MMTC($䣹w=x+4WLrrްaxGBJ'$d-p"`c3ѣuaa[F`ݻw? .M8$6vǼy A@iiC,wQw  wJLܳng&&ƒ ੬vǎ{'**?v###wPQ\W\B;&>9ڵw]~Μ '{_wh(_١/;n@A[))tEEx:jjFFht쟿~U"?HI ÇPi M3x>/㾗 ,X`*//wt]Ktχ?).YRRR%_GG&:Iaa2g{GɣGEQcpׯNN:x;kƎf[<Daaիo_[]0yޢEfff\4c'?|:qy^^ƍ(9UUYo9x:FE>d{jEi(&&QV;Fxf Z| k9$MAAj6M&\vΜ jj̛7ZZ FA}#*?Ξ t(~kT[fiyD"oWlnpϒ8 KPdg7BPO3f@"uk^nkˑ#\}. cb_CGG12̙X-6 &RRRbD"F3K~$ ,p=AB͚ex`MM9=?~O~o]P۪i3ML4?PGG 6 ,,=Ng>OE(q-3F_?75x`-  L#">x𗺺}C{>" ;xWbb2ʼn]ŗ_S\\jdĉvv Μџ=A&**JTO\B@PuB"eq trKD¬Y#~'(H={w=…E]zBXؗ͜ݻIL-tU\\Lv'ŋ/'Vg̵k߼qyz΂ {@ii蚃[D"ܜ,1sH*nx m̑x@_52۶50~'5'5u4̞}Ν$vFF=t2 ϟkuu f;3q]..%$ "u$wJ$67Nb9ߌ9PYJJ*x@o# gq߮]߽˶Fc5ݿ[NGt 7w~XQQ|HE3|{OywFX[[!8x1f:hFF1[r%K*JxrK@kINNF\* &%%`idֻwjhߵȑ.]fd؂˗׳i _8t:qbwKaOU55[r#"pSznɁ fooGЦOo<@03<~GY1˗i>?V!ޫw&WYQ?8xMD%K W+!%WYx,Y@0rK%5MM9mmmDGGIFFB1I33Kll?}0x>67Swzaíf&Kա(ڿPmɅ22xiv۾}E} 2 rKNNF$Q@hw,BݿtIATZUUÌg}4qCȒ d jUDV*_gB]Uq][m""(܃ 2wؐ~/&!| G޻'7ܽaG"cEEΟaB:XbbaUUc #TUK#tO[83DžFhtoo'cqqJ'7Ptv 5)8?ϟ:PvvJfd2֭ Ej %: /g;Od27": \~~~g'ɁocBMt bAAAʊ($KKKo4XT_`0Bظ\uB5ۄ(/7Xں_v cX3/7S͛7h5MN52jj xrK>󧡪 !^gg'B4iсH04zhI (gDGT^ /֡%r%% !!H:EE9mmAn \iiL PAn \qq&Q @/[׷7k/FDD0GGGgff"H$53f HZZZ-,,wK|xf(e|55L訪O?Qdןyg1g%%Vk^0{yy<:*#W!@]~}Μ9mmmƍ{*e˖FPSSӚ5kv1bmR ?غuRRR^Z\\|ԩ萐!rf jϟ?(--=s BqqqO@Pssȑ#8yK.yxx0&WLK=8() Gr^R햗?zN/Zh{a!*WWb&>":>5kV[[屟, ;;;WXaتU\]] <==l(u3f 7/ihh=zdjjST1 DA IDATz0

    |˱ݻw455XttnPPPgg'Dž? DZj͛7?/^}v2xJHHŋ?8%{=턞<˹S=.b9Y FkkrP Z~ 666YYY`ӋK/KO>PU!eH(^[.^xɒ%zzz^8p`޼y...6m͘1vvvF TKKQQQq)YYٖCq,~ .`އcu!8æMB{a^z~jj*aʵC;w)((xxx:t%k|1#oP]]mddWSSoee^}!(իWBMK++P ܲ-uuuo޼ihhx .2e322C!`  P('~4bqgMbbaKMM y왞)vrO;=‹0iljbI|r޽ yV\( miiPUsKg/eCCY7tЊ?ZNNNYamTTlkRrrrnhh4ͫ-qt:LJL&/Z5ڵk7oތaŋ=<<0_%aT*˗v'ɗ.]#\ _=^?p-0 ;o1ðp+++ كge[eccsYF0ΝCuuu7o C!w2O3/^hkkc=JfɼC.'.b9Y>b-O m y}@s}!4}tP,8vv233b[ .Bx㟞benn ߿oddc?aavYf.\p׮]B`^CNI>ėrpE,6;80ֶhj*ɢjMPZW)BBBRRRN84/P1.ox8.dlBb^Q^[hS޽^__ƍ ???|QF}7v9v=jooWTT믿9_hQYY| SN555"Gx'tĉi4a]]] , f͚aÆM>>ƌvĉo͍;vlGG)w2 ~FDss[' y9ZTU t~!\eTrq\(*mbUv׮]300{P(e˖ijjjiiX:644TWW_`ACCaC :thtt4]]]3gdlϞ=C Ʒ=nܸAal%Kg*((0T`kHVJHH@{kaVT*544AII|ƍxC Qa4ѣC QWW􌎎N:̴׭[ǨYr?* ^sKvt:T~ZrcWWsoos]aUo OHԩhSSݻYUQQ6ia0FHii3g}GSS-cpشǏ7Fg'쨨BS p[rr*ccӮ^M.,v;Bѣ x'55%c6|֋W|0c ð߇y3N{zXpرV<QRRX"lmmm=7l(H:#w~~nzzjD^ee# G$iXcwF 8aex؀7-qȑ{%:hȤN|D__-ADKHx{OM $x{Ο￯Tڴi,JX NGG_rc]g'㜘[2Tĉ^^3g:İx[J→Ϛ;"#.\x]%c}|98VMsu5':((zx;03s B#Fl[$,&&Ft`@zi'ܻ76/Pnjj': /oޔj~cMȑ;b52II) b۰-$11i'I2AUkj` UXX;pNF4w'[֯?ӧyD(.n疽'|$=I2ڃjk`oVd׬ɓ-f'VQnALMD;ܹԢq~ {L<%[")L?ر{N^nfcum$mm]D5Ja edHD"<<;wFϛ[nn%Q@n B3`Ld2&ɴ&ttTkjalaJEEa9wlMvh% ::߾-ΖOs.&$Of fWJ(:{:[bp7Go&A BZZqw7 ,MMEDG1&ɜ?I2&BH '(*mm[NF8!6; HllH.ʍ'Ʌ::&&D:1&LH嗣'ϯ&:: \dLii=с~de2C$18.n9.+Vݺ5KDs`Bn "h+66I2gvL0a>IfQQ#驕@n)-,aRTۿ}|=XHI)dkuWr|̳gXXcST.+6)+9.nCWuƌ_zG-UW7sKcLUffZrq8Ifs3L)%,,߿!: -RƍoG'BݖP^$'ɑG0&: $sx'Or##nm[Ԅ ^^f9*+C< fmq.Q>kll+/oAbIEEᅲ8`kv!2Y( 쌠C8PTPyaÿ6EN:oICDZCUUX@de# /v}}mjj;r aTe[˫ivr2ş%'Y>I[CC͛KRWW:u۸qBZð﫝LpMKI)QEeeii S':.)1oHMM+65R'$ Q[8޽,24d.ڶ{ŊID)+k};322)#@cLooGwwK1+ T7Ŗ0R`$'-\S^Bn `ƈyIBrr2T*a1TƦEEԘjy{;}!D6q۷&'r?eet:Nd,-uGcJO:;>^Bn _>5D0lG'$0'99IUU}ooG7SS-l^TT@7]]TKt|JJJ 8qɓed,02ҤRi1 #[7E!>7If(c>8Ifmm сO88gf1!//Ϲw%,~tH,;wlzUP &k\2Y&8\[!1&LNqffZrvd探Z:Ԁ},8C~矇= aXFF dcc͕+'< %'rif4|9#:39kkOػ 3Wsqqݮ]FG%@}}u-t:vp$I2sIfB6#(R||Vw7@dmlSSb]|3YYww OD$ݾf#Vq+EE#~\$,""%ۤICedHf]:>jD2Hg>|.;05211)-9̀B".mlYLt,ظ(BSSݻYUVV6iax]WfdydGTHE]]ZKt,CVVǏ~СnrKF"1c`/^8z(\lMIKJ*P5otÌ݌PRR~zP19dؔjj}4_ xG': H__=0pB`҆+W/^|ah1c%J)SZjޟ@EҼyne͝ڧД@k];ѣMd$:Z/&&@SjjF w/!TdӤI~~UUщ///4:ԩh>@d&'^{;I2`LVUUMIID3fHcc[AAR@J2dd'ܿLJV?:۷}rK]qqez}[~~>>'Kquuu//saآE 'aC"/A=$oaLmɒnol؁+8u}:빯477_xqM'[[[CBBUUU~'*D"Y[[ 5c IMM`+::Z^^>33\c=ƼB%%cǦ 6/{[LVyyYssw*T rK̙_>|_khhlܸ{ϟWTT?zN/Z׭3oҥK}>|4 弽Ν u?Bh͚ #Fl E34 po_R jxXZZz ؈yȑHNN޼yK<<Iftt˗?Y3sww߽m۵R G?|AHϺF:tFUUuر^^ zdԁ$iժU7oxrEO+W0nsDFF1,//ӧO۷̙3gϞۙ^U.c''''//ާ/o {ĤjUUUli[n0@B߳x%KTVVz _xygddlڴ)//!4cƌedddff5*88R--- GEEũSdee[ZZ:ıӧ/\a-|!u LPΝ;rHS(yy˗S7[p)S޿aooʼCZZZB ,P(aaa "jkkX| q^^^ իӦM}򥕕#f *Ed޽8|ѻ 8q÷?|&:(Q99m?|6e{}u?nTTTyy͛7 s0Jdp5440 욚3===wSSS1 kllTVVeYMB{a^IOuoU.Ʃc^asssYYٚ5k-[(e jי-;1 Z`ll[8tЊ u||ۙamTTlkRrrrnhh4ͫ-űOM8%|mKK F{~SnE&߼yeeeżC-ofyoܒ>dB ݥ^xx8{Bħ $Dzz?F98lÓ~WYDtPµwo.j_ [a]gccsYF0ΝCqp0*:/e׮]yf .^N:C&-Zļ^\S=4hPvv6џRHUk_s/AXXbEVVի <<< :!TTTdmm/6loO455>|Kcc'>yDFFc񖖖nMMM0g\uuu%$$XYY1_^^>77ٳW^UUEц ieeUZZʼCp!mkυ߆?`c?:3Dž@d|$ر{=IeZ]KŰ+))qrrbV8\*P<|죭20A,ҥK ||^FLMMDz /CqLůzZI2]]w.Y*Ue 4||a_y$u9pYYYk:ð'OΚ5 s…vb jmm=pƍx!m˃:4a„;v\ױpxrO tҬ,O)C}}>˗[݋ϝ;wEEE;sj֭o޼y7|STTS)4mڴWR(.999eeeţ}||hhh Ο?OP;Ƽig#;꒗ooo߱cBM͟??((͛7?… ynҥ֭-((E/^xCO>D555q~eL1qǏ/D!md^yNNÇfVZ]YY}vo^TVV=z׷`o^]]=eʔk׮5Ȉ.L7oʕ+uuu1 [r_ڰa޺u븇ק* 55fF.) uaZRRfooܷb}jA ֣㎎]]]]vCP-[bŊV) ,hhh0,<<|Ȑ!CXḱ̙ٳGCCcȐ!xk+ úǍ7h {q)~8qb7ꫯ vB-r|}A[[[|­[G{"^<,,L[[{ݺuYr9<[1z뀀eݺwf+q?TYQCYYY3jqp0|vv6{`bbpª*7lذ^YYnϞ=mmm,+OHH@Ϟ=Xׯedd"##^*ȲBVPPЧ/y t3[2on863 T$)<<< @[[[\Zp\ث+W|r @7ofĤ%&{y9z{;Ypo^(==::͂"xwaBZeKdbba||pB6o 4dOHx7gQvov͛u-cZgwo,с 0 s'sD_ Bn PSS[r%/ 05Zvʓ'>8{YӦ4#qDG[x%&ܿMt }՚VRQ8cFsKh @M,?h+t,) &&=::oκDֻeNLJ޲ƍϞ=}@0ddHw~}C]\vd׷ 77ɩq#@ RccիI( %0I2*ΓdjgOL[[ѱ@s,@Xd>+22iSjjJý>|L3mA7 w#:D_㻻WO8@H$ѣMLLnrkl{<]K] UMVGM[rKfLjkT2UY[VV*))y%\H[>N>kXLIc޿((]K$/^3f(c?"""S\\7a;f/[6MCCCBqiIniQSV.-U-(P/)QVnnVkj w! E| Z}Ma\U^&++^)7WlPK|PEJije堆Ŗ2.C&cdr7>}ӧ #Z &TU]\, {vɓ\y]]lh1x !QHC 33>ܐ;)Ȣ8媪Ԡ˫988,YDCC7|e:~|7"PUՔ[S[SmyKK'BH]]FVLFFt`btvR_pnVllZULkT;=-jrvf!ݬw$i(K;__-AVNN%}!lfBZtɩMH*.v7o#ٶZD027V:W^~@+Wׯv  \ݴ܏idnnU^^U{{BHOOcikokk Iۻ>͋IsMss~dc/-rZ~^z.butt?yvvfGG7dz{;驉2 ?l099~'?ta(Q zǏsbbn̠'zy9Κ娬,Z'~ǽ% -E/,Νׯsu5 ^s33C y.Sy^ݻY&L:|Lݻo<{@>H22ں\]ͽ ~, ݱ:uIɑ9p_uqqԔ rKKM-3ӿ֣kg,=rr*BjjJHSS-.]oF[{ФICwW줞>@8c<sMkkiv^^NʢZPPhk L-ZöHLJ*TWW:uرjjO?2bٳ_CKRۦO?bmwr@n !Bný瘽޽s$7J#vrҳ7'jΞmg̓dh̜n)M~DHȌo" :[ʻw7hj f-`[#&ý}ג%c׮+Ԯ.Wͺ~=ι:DƊ}w*2FF[RPPcb2xlݭtǡ–yz AO ݻo:$*3ArKr6p+mW阅E/|Bt,}Fѓ cboHiƓ9s\ ̵0Fෳ3Nrr*##"#ϭnz򫈈5ph\28ʯ~7R?UUMΡQQߌԄc$11ٳwT*C{x$V|LJѿLRRAlw8\@n)ϟ/XGPdž f-@^ZPKK"oj p$xGGk`--+l޼<<R@n CRnd ʟ7W8WPpP|^0ƦWU51Ux*2Uvvyk'C[ С|?ϵ)#C0I2|}SQQ\,h,-*?zC^?aAn bJn叄ʟǏKOEt ¸Apfzaa|5S#:X I2MmF_J^ SV{\OOW @<?>+vY~\zشW kMLOf/I&K;okk[BffZ?pqq{=J k}}33Ӻti7[ IeeqUUȵjjJB j= ܊ϔ7jDcW^}zr)<ɼv-Ç##MORd2j] H۷3#"33Ky$3/wSSO/rKa(.?իkUrK.)?R6+||;@'ׯ_mh1cȑ7w,fqq]QQBHMM\941,AG)>IN\&yzJOO]ġJ+-ꀀZZ*/T[ I^kɒkN!:7nUhL2na2D&t=Uڌ*BBG&MԔysYYe1 IDAT'Tzxjh,[ ۷_|񇩩֥K+rKtʟ0+t"_u!:q'11鹹|0ood2P(텅ސѷ%О'ɜ3DžEMMյ;`B`rKz4/0̈Fg.2p+pjrvf!D"vbb 45UL6G47wpnH??.G911iogvttHO$--V{_MfOt rKAH >رr( pIM-5?B9.͊Ic9L.jAA-ci4:{m}]DL'rݶ->_=0%xǎ˗߹s(MAn zV ^sf ƒ&^?I$`&^k Aˆvn$^p=sLI+QQ{]d%`[ýGX不": O'Ӧy{;Mh ,[[tXYj6jIQ a Ҋmm{!n3-OWVRNj[%@ý 7=ˏ[Ot ֭Bq㬽gr4'fnneGG7m?#۴3ӹJK2\yM,y@h7[k^45|rccMBb U`VA^nӧīhm||Çod$nvJ5pI6 3G|ɩv-ԩ',Y2v޼:D% J׻Gq>|x>M H0U`W9foow\~i{y9Θ".om"a {__~'n:I23-a͚ %[zrKd[ {w]K]v сH{cc1dvxekkk m/޾X|yyeZZqccI2}rPŶdCn G0php"Cc!򥯯 ѱHƶ,$sjjd sYTT]^WׂزMSS-b]GGwh ^xy9NnyLxrK54nuzW_}s1|rK`V^E94*ѣˀ"!D5EK r`]EMM3BH]]LpBGr;;oYI7AAnɛCBM':%@`VpJM-5?SPyp# K[YUEA)@P:vWގ;w}:I>dee0[rW[z=**9 m._55%#ႁ[ý7W8WPpnѩ֭N*dΞ =NbQQBHUUBgݦMMMm7Z32Y!TYdΚ7r`eO0 |՞=1yx[ n0ܫ {|]D?IѡI? v+66VVx%ۻ vvF980UZ:?Hs%ъTnR|brK`V1ýݻo<{@~$7&&-.. QOOJII=^j6o|,o\='266Z2;B'ɄܒEccq?7>x0ވ舸Upoӧ࠳q~SO2!$@Wset7[[ndaXll=1uu-WO曩(#$"")&&F?fܒNǮ^Mڽ}eƉ-{guϞk/^foow\0̻wP(ϛ7\499Wht$}1OۻNxx==~1{3{S\tFjK; R91䖸~&0pwMz!p0C9q=1?edd45mlML4[[8஫Շw_OkL__WKKo(؛Ҽ{W)h 8L0$/OߝĤGG~L2q2D'؇;n`tܰ3qPB99ݼ{͘1C6l3͘$L?oIX|}~O.+Qr;wތ3dVo3#3-r0pD^%W[[&Ï,90p /I&ۛzD8Ree \a yȑAASLƥollÓg RI2/]zqcΡ$IGbb?x$$sʔDG'-0pԀ^Ô)޾-g_.+K~z#I&~NO w\SWM" Հ8:V8a#Vg{hmKGZg3 ՂZU"*g$$$md}N~mAȅy{;*f 1Ǔ{Koe&Tʥ955/99'vvM̖C?ȥ8c8ӧ*^ꫯ\9id?T%*pfƎ)pdsW Nܔܚj[Ku ='[TTuKo=>*MՁ镔-{H9_m[bɓ:(?pFFD"M0lϞҿ==^$T=o__w*Lכy|K0 pɑxGD ^͕ˏb0wԜ^NI)/ot2E[^(/oػw}oY E$ߺσ@JKkv=e&FDJ84=`#?88@)ut&$Dť!!dcc5`pv 8Π<{ִg86j±d죏s>BD`GBgH{RRv]C2L9BĉGY[ @](S)L&#$$СzHĮ]ٽ; !DDZw۪ěOniLzd??7nQm\\En5'zْrG() 7{ om.u"X,21qm L.7C2CCGO|s2'g}nˏQ`vw Л=cʓW _d3ByyGrmmym1vW'o ]WO`Œ~ر>f̹swׯ?KDg'Yyem(/o@Y[[xy9z&1"`bcg+ uj;::oN gQ4dL&cϞy3f hFzz? VV LesVYYj};=t(20#2rtDīfU|ۛ7OSV+Œ|!d]722?0C$XxhEjK 4B,=Ν)v[9'Oe9)zUL&>}z&Q-@=۷_zvfWZZ[Q 8{{x{x{v4Tvt@a `5ʋ]c@"l˗WɪU'rΧ Ph-,X /y ^.l63'Ki4]}z %2Á4|pݺ9Q Bx[啔%~~C hOO-kiiO֋Dq|ŊWda4)Rz #"^ #U]ݢ0 9ŵTJ?hBll5s[W*I l3fag) |>ViܼA ڱz8KϦ¢q@@qq͚5窫y"tٳ AZBE$aݺ0::CblV"JTMņƍRՎ%BH"UMޛonCĉ^T/1󜙟_bŏ--B9Rtdjsja0TǏkkk moΟ/y11DՓkѭeggg??45q,1 JM6|!rrr`Kp3gz m a؄ zXICC1ի4ml:Y n1 1NiCCۡCYNNV BHJ?ޞ_hZGG+eu`F1º tJ,g21{{ ++xL&CaښR=!ohC}^PPY\\Y\\_QRR#1 N)58cj+Ԗ@ƃX,ioH2]KK;BJ"S(߰A ???ggu h·zHDM:뱱yyy땕jmmի~&O[ѣ'N lL>M<444tԨQAx<6xgϞ+jlldX|MSST*DY񰰰FTqY,ք ƎVD),˹H$M)DGh4ԞR|S}Kj&I]||ThF"qjx")$ŋEˍ|F՜V:ηT:NYt'<-g> q_Bv.!$oQ,EDVVVxxx޽Ǎwe|̙3ϲ %%%',3$\.wرAAAd0jY?eR5+b)biiCՐ^-U&(B cEՈ0GMq L ˗/SZzIDATpRٳ{B{DEvT7jiiKUC)DGhʹZ P[ NPQVTT#.-7VsZkZN>=rHխSiEw3 ޷}ɓ׭[G%:::Rmjj}6N)wss+++#Srrr>seT*=w\cccttH[ի!!!G>\^(E ̙3gÆ ߿W uV+xyy+((Jmsr@n% fիWǏ?>&&fҥrMƎ󳲲ӕŲʆNE UcQQӤjivUBv||tMǏ?=zN~VvABE&(TvM0 80}tխhXy{oRŋWZu̙_~%99L ݲeKyyy^^^HHȾ}dK͟?۶m]+W++aXpp xMP(\~ܹstRA={vРAl6חDӦM5,..vРA\.lW,;O>ŽHN]v{xx߿ܹrыۺuV  [쌏p8{=z4yIvUu*ȑ# ptt\j@ MT1KM;vW^&( ~wqyB@۷̃d{)N"K;H$w4hMHHurr2iuU{J6vp U{bA 6v5Zy ;88]&MkF՜JNF(iy.jjթĞXP2kN!CRoooDhKKIS!%%cذa.\#cB(##Oq`Pkkk z-͋@wtC:jVs@hKx&žX]y۷oرcɒ%6 Zih^t& ƍgϞ]WW7pŋwU3=@PcyPR Īv,v&LX`/z @O)[=|K$06##ІV{&nrj60mU$;`5 VfHgG(|C[ }a%IhE{Hz6mccJRiCCVZ`5 aNzQ;I%Sz @O,YsbIENDB`XQilla-2.3.4/docs/dom3-api/DOMNode_8hpp__incl.md50000644001725400016040000000004013273140077016135 00000000000000ab31ada99e9c12ac5548dc76c7ee6d22XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp__dep__incl.png0000644001725400016040000000603113273140100017732 00000000000000PNG  IHDRpTbKGD IDATxLgWsE\0W/nnHltTò9Ev@VY2DdL Ku83hLcC"B |g "R<x>==O{wbqww!&pb3iiij]Um4M4;KY~v('ʕ+lkUhVjVo>'pb \D$Ӌ-ZbT*l`08qBTj4Ш$///nppw}GQ[>33(88X$ v9239'rss EIIIffNKNNAz}JJJGGGJJJ~~D"ڽ{lFz{{]Ʀnkks|7&Blܸw"31.\3|gAAA%%%hɓ'|Ç#""BBBz{{ϝ; ZMu…+W:b6_~'h?AQ믿~E4[UUuVsMJJB555ڗ^ziM|7niرcw1L6mfȆ۷͛'J-ZZZۭ6,H6lp)@z뭸j||fpG =vHHHOO[n BBB˗/E NkiiYf=ߟT*O>-겳9rƍ"YYYaaaEEERッ| B>(,,jӍǏȐdUVV}F{ഘv=(b /†Oh_ o9ۗ.] H9s <.t)SbHNNF٬HLLxk׮aJ!!!;d2*m۶%'jy-\PRYPT˖-cgʞI՚fn%KꌌJ;SP[Ozn:44`38-50Lyyydd$'Od0 O`#zM‚ 8FA===~~~(RP466wޤ?Th˵6X9@oܸTM31188x֭O>D$$$E۶mjiiiMMMj~J%Qu'xer.+KFUPP ׯ_/ɺ=F޹sz=9:: 6SYmªMLnݺIb&{g&O?"</??0//'(((&&iooo "̙3qqq$GTWWر#77755_H$E t͓Jx|͘ \O?ZC\]v 6Up?駟ݽe˖)So߾.gÆ g11 |~ZZ=@L1 .`?pK=f7o Gۖӂcl\ œ;wZ|?gĉz?/`}_ij~b|TZG&}eeMCx.zq616fn: jbhhh9 E j0?)Bc/zΞOW_{; NN4MSNˈR hZZ~ѢEhݎ˗/3 388͉ kCCC :;;`W^xP(ܻw͠={?LY~Na //x4ٳg׬Y3H~wݴi pСիWf3J0裏 lmm*ںj*v钒a&oi961#>،6&9vثf%3t:]NNNll,Yv^UU'p9Wà bfeeݼy3&&tR]5P)))h_LvɷcJT*ٳe˖I.ʼn}=6ŋ%I__e]v-_=S캨gFVqF2lɒ%͠={ &:&OS]2! eg \ &p'?eАܜgUO:%%%EDD81ǿ_'pb \?RTS@]IENDB`XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp__dep__incl.md50000644001725400016040000000004013273140077017732 000000000000005ff0bcb736fc315d402e5b585c5183c7XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSInput-members.html0000644001725400016040000001714213273140100021453 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    xercesc::DOMLSInput Member List

    This is the complete list of members for xercesc::DOMLSInput, including all inherited members.

    DOMLSInput()xercesc::DOMLSInputinlineprotected
    getBaseURI() const =0xercesc::DOMLSInputpure virtual
    getByteStream() const =0xercesc::DOMLSInputpure virtual
    getEncoding() const =0xercesc::DOMLSInputpure virtual
    getIssueFatalErrorIfNotFound() const =0xercesc::DOMLSInputpure virtual
    getPublicId() const =0xercesc::DOMLSInputpure virtual
    getStringData() const =0xercesc::DOMLSInputpure virtual
    getSystemId() const =0xercesc::DOMLSInputpure virtual
    release()=0xercesc::DOMLSInputpure virtual
    setBaseURI(const XMLCh *const baseURI)=0xercesc::DOMLSInputpure virtual
    setByteStream(InputSource *stream)=0xercesc::DOMLSInputpure virtual
    setEncoding(const XMLCh *const encodingStr)=0xercesc::DOMLSInputpure virtual
    setIssueFatalErrorIfNotFound(bool flag)=0xercesc::DOMLSInputpure virtual
    setPublicId(const XMLCh *const publicId)=0xercesc::DOMLSInputpure virtual
    setStringData(const XMLCh *data)=0xercesc::DOMLSInputpure virtual
    setSystemId(const XMLCh *const systemId)=0xercesc::DOMLSInputpure virtual
    ~DOMLSInput()xercesc::DOMLSInputinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__dep__incl.png0000644001725400016040000000702513273140100021426 00000000000000PNG  IHDRpbKGD IDATx}PTǟH` ://5Wh M MeAh5ee)L#Ԫaś#bB+(oґ5X%Pe}qu_ܻ_yw:00,ƪ` iiiRR`&I A>,˵Lh+hd燅MtP^~~:.<ڞ;wjj*á*omnnd L&Ao۶Օ8ӧǍ;))OC6m;m_effWWW #O\gggVUVV|a[[[P*s...jiiٻw/\~5P(톍L&KII[[W^yE8!~gtҹyfmmmQQ9QM1f~p8vvvsII dgg B\NүΝ;xb C۳gNNN3{vvvnnn)))RۦGGG\z 5k466Ś 6CɌ3jjjbXXX]](w̙Ps:x7n\fO?o]Ynܷoݻ###-3LeccCjP( jަQK.:_dee j0斖իW9r:W_}566v߾}cccFj:@~v uD_۾###׮]ᶶ˗ӝU*P _ GWCCC4 4448;;SQܼyСCO<T&߿޽mmmz:ǔ^b8+++''> .!J]\\N"$bXXؗ_~i& "3wppܘ FppX,jmmMOO7ettûw#w8ʓw(L9qss#=<<<<< @/ZswwEQ*++.]J#"" DRS*.]jiifbAXXΝ;=== O}qNG?{윜R=䌩WŔrЋ^.ϛ7$IcccRR9:R H2/nkooe2uoƍiiiMMMRٳ/. NACOP -h4}]TTlllJ%U%88===֭[;$QQQ"󫯾ATF+WDH|fx7 .hѢPc >p@~~P(qㆳsxx8ϧ?WQQhԪ_\\܉'LI-!!!ёflشiSnn믿NDHH@ ?~U*UFFJZt)f={/^ltHOOWT቉lgDT7|/rG}d@E.?К2ǣ?1ܹsG&UWWZұLV>._,V\D;Yz9Z+++-Dp1>(Sy<:XXXa80Vzzn^7z$o7?V<8z (Z[RbJKK׭3٧N3gNVVH$ ***~i.o5[G;1Xz8EEEtKss3t۫Waܹd+W899o:n``fI:Zjpp ::: **իޟ~QG|naJ`0dőǏ_|̙3cbbٳgɒ%_|5,5NR>:::z)p8NNN/ŋ"/))t\\\< uŨq2曗^z,&&&ر-`xxx׮]єeŊ LAPիL')^r̙3iii۷'O(//_dkjj*UbAPP˥,n l"H?ä$qb8O>dbbbOOahh(==חf/\pΝJKuuugZjM"᭷1j(9?+..H$Q㸬_aI?`U>Yf s Bs    ~009e,qt JHHtIJeˬ>V~tX XXXmIENDB`XQilla-2.3.4/docs/dom3-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.map0000644001725400016040000000105213273140101020760 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMRangeException_8cpp__incl.map0000644001725400016040000000072113273140101020240 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMPSVITypeInfo.html0000644001725400016040000004402013273140100020717 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMPSVITypeInfo Class Referenceabstract

    The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

    #include <DOMPSVITypeInfo.hpp>

    Public Types

    enum  PSVIProperty {
      PSVI_Validity, PSVI_Validation_Attempted, PSVI_Type_Definition_Type, PSVI_Type_Definition_Name,
      PSVI_Type_Definition_Namespace, PSVI_Type_Definition_Anonymous, PSVI_Nil, PSVI_Member_Type_Definition_Name,
      PSVI_Member_Type_Definition_Namespace, PSVI_Member_Type_Definition_Anonymous, PSVI_Schema_Default, PSVI_Schema_Normalized_Value,
      PSVI_Schema_Specified
    }
     

    Public Member Functions

    Destructor
    virtual ~DOMPSVITypeInfo ()
     Destructor. More...
     
    virtual const XMLCh * getStringProperty (PSVIProperty prop) const =0
     Returns the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available. More...
     
    virtual int getNumericProperty (PSVIProperty prop) const =0
     Returns the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available. More...
     

    Protected Member Functions

    Hidden constructors
     DOMPSVITypeInfo ()
     

    Detailed Description

    The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document.

    Member Enumeration Documentation

    Enumerator
    PSVI_Validity 
    PSVI_Validation_Attempted 
    PSVI_Type_Definition_Type 
    PSVI_Type_Definition_Name 
    PSVI_Type_Definition_Namespace 
    PSVI_Type_Definition_Anonymous 
    PSVI_Nil 
    PSVI_Member_Type_Definition_Name 
    PSVI_Member_Type_Definition_Namespace 
    PSVI_Member_Type_Definition_Anonymous 
    PSVI_Schema_Default 
    PSVI_Schema_Normalized_Value 
    PSVI_Schema_Specified 

    Constructor & Destructor Documentation

    xercesc::DOMPSVITypeInfo::DOMPSVITypeInfo ( )
    inlineprotected
    virtual xercesc::DOMPSVITypeInfo::~DOMPSVITypeInfo ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual int xercesc::DOMPSVITypeInfo::getNumericProperty ( PSVIProperty  prop) const
    pure virtual

    Returns the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

    Returns
    the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.
    virtual const XMLCh* xercesc::DOMPSVITypeInfo::getStringProperty ( PSVIProperty  prop) const
    pure virtual

    Returns the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

    Returns
    the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMImplementationList_8hpp__dep__incl.md50000644001725400016040000000004013273140077022060 000000000000005994297854a3d29f5c864a5a273357d5XQilla-2.3.4/docs/dom3-api/functions_0x78.html0000644001725400016040000001157413273140100015663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - x -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.map0000644001725400016040000000043313273140101026051 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp.html0000644001725400016040000001366013273140101016762 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMNodeIterator.hpp File Reference
    Include dependency graph for DOMNodeIterator.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMNodeIterator
     DOMNodeIterators are used to step through a set of nodes, e.g. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     

    Macros

    #define GetDOMNodeIteratorMemoryManager   GET_DIRECT_MM(fDocument)
     

    Macro Definition Documentation

    #define GetDOMNodeIteratorMemoryManager   GET_DIRECT_MM(fDocument)
    XQilla-2.3.4/docs/dom3-api/DOMText_8hpp__incl.map0000644001725400016040000000046713273140101016265 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentRange-members.html0000644001725400016040000000634513273140100022653 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentRange Member List

    This is the complete list of members for xercesc::DOMDocumentRange, including all inherited members.

    createRange()=0xercesc::DOMDocumentRangepure virtual
    DOMDocumentRange()xercesc::DOMDocumentRangeinlineprotected
    ~DOMDocumentRange()xercesc::DOMDocumentRangeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNode-members.html0000644001725400016040000005171413273140100021005 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNode Member List

    This is the complete list of members for xercesc::DOMNode, including all inherited members.

    appendChild(DOMNode *newChild)=0xercesc::DOMNodepure virtual
    ATTRIBUTE_NODE enum valuexercesc::DOMNode
    CDATA_SECTION_NODE enum valuexercesc::DOMNode
    cloneNode(bool deep) const =0xercesc::DOMNodepure virtual
    COMMENT_NODE enum valuexercesc::DOMNode
    compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_NODE enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
    DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
    DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
    DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
    DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
    DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
    DocumentPosition enum namexercesc::DOMNode
    DOMNode()xercesc::DOMNodeinlineprotected
    DOMNode(const DOMNode &)xercesc::DOMNodeinlineprotected
    ELEMENT_NODE enum valuexercesc::DOMNode
    ENTITY_NODE enum valuexercesc::DOMNode
    ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
    getAttributes() const =0xercesc::DOMNodepure virtual
    getBaseURI() const =0xercesc::DOMNodepure virtual
    getChildNodes() const =0xercesc::DOMNodepure virtual
    getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    getFirstChild() const =0xercesc::DOMNodepure virtual
    getLastChild() const =0xercesc::DOMNodepure virtual
    getLocalName() const =0xercesc::DOMNodepure virtual
    getNamespaceURI() const =0xercesc::DOMNodepure virtual
    getNextSibling() const =0xercesc::DOMNodepure virtual
    getNodeName() const =0xercesc::DOMNodepure virtual
    getNodeType() const =0xercesc::DOMNodepure virtual
    getNodeValue() const =0xercesc::DOMNodepure virtual
    getOwnerDocument() const =0xercesc::DOMNodepure virtual
    getParentNode() const =0xercesc::DOMNodepure virtual
    getPrefix() const =0xercesc::DOMNodepure virtual
    getPreviousSibling() const =0xercesc::DOMNodepure virtual
    getTextContent() const =0xercesc::DOMNodepure virtual
    getUserData(const XMLCh *key) const =0xercesc::DOMNodepure virtual
    hasAttributes() const =0xercesc::DOMNodepure virtual
    hasChildNodes() const =0xercesc::DOMNodepure virtual
    insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNodepure virtual
    isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    isEqualNode(const DOMNode *arg) const =0xercesc::DOMNodepure virtual
    isSameNode(const DOMNode *other) const =0xercesc::DOMNodepure virtual
    isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNodepure virtual
    lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNodepure virtual
    lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNodepure virtual
    NodeType enum namexercesc::DOMNode
    normalize()=0xercesc::DOMNodepure virtual
    NOTATION_NODE enum valuexercesc::DOMNode
    PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
    release()=0xercesc::DOMNodepure virtual
    removeChild(DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNodepure virtual
    setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNodepure virtual
    setPrefix(const XMLCh *prefix)=0xercesc::DOMNodepure virtual
    setTextContent(const XMLCh *textContent)=0xercesc::DOMNodepure virtual
    setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNodepure virtual
    TEXT_NODE enum valuexercesc::DOMNode
    ~DOMNode()xercesc::DOMNodeinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMLocator_8hpp__incl.md50000644001725400016040000000004013273140077016653 0000000000000010b63da4510522130a162c0dc9869adeXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.png0000644001725400016040000001131513273140101026061 00000000000000PNG  IHDRpDbKGDIDATxiTSG'$`d5@EpV-EHŭTA7T@q9(ԥB" Y U!a_bT"XAI"$}?LmA >pf;g20 PwD &Hb &u&d2B%d2ȑ#D9wf2eee .; 50gΜLuGPDRw=1xl]@Fl1AF~$kkl@1uT==3g~7b0aܳ=/&HlSR@PZZp F[[ی3|>>>)>7l`dddii.$ILL۷{}h V|}}gMMMo߾ +VxYMM͌3cŋ^PSSfg͚ʫcĈԩS #&&F;?ybc٘+** 0 Vn޼ijj }>|hffVUU~%',Й3g`c{N C~kzl Rv?uG"*=a 7jV g&L%iWX[[ ?n+Y"/^Hș8u2\@1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFl1AFlAdPw8L֣R'; "&+N}}}'Od666Ziop59 g# R6 e# R67|t:^655:u͛ pH$:}tEEñruu]z5Liii$߿{t εoN$3y?nݺO^t:OQ sNHHb2wAAAPgggppÇSSS åҿ~ ɓ'xWՊXx ><`yɡf͚xyy[= LT1cO~!d2ᡳg~sqq1Uiii;744 ~gg@e` To00aM٥>>>׋D"X,NNN^lٲe˒btzeeUݻ`0VZ}|TC.X`ڵW\H$pŲ$iҥn݂B RW.,,Uwwb]r44`쎎o7))ת$(5fMK^paX^^ކ <==wYVV8E^Jڲe `0_~E(T8Q+}S~윘K* `X'%%㕕 ܳgOuuuIIɑ#GQE/H}…=zT$X,eE,--\.Vg`yʔ)BnHAeelcH$ ;;;';a„芊ϫʢ(ō7SRR/_z9??D#t'Nq/}zQQg}fcc3nܸݻw;880L(jii-ZҥK#FWꮣX~ H$И;w.ܐ9::5J'xzz߿?P(W^ݶmFٸqcaa,z9 JrYx{{.\֖2sL}}}gg7*]Ϋ7uMU*"'JiTz>_OϜ9sqܼb  VVVKKKh;vرcUyűX,aggvYfr=01c:;;6ë111J"=\Xxqľ}Q__?..oW аrmm[֭[ԫK*FEE⢢}r%p9{lX8{H$:;;;l;wv`Gp8655a.h]J%ԴVO1y)]UDB&_| ?_J'JiToAv#=zt{nii)r_|Y]]~rJx( ܹ7o6227$&MK( N9N}}S<<f 訧i&4w` D"hЮ襥wޔ/^GFFjiirǎk2`֭`bb䔚oSSS FrrrSSF7olt:ŋ˖-رcGBBBHHG"eJ=-H^zȕnffbŊ˗/6 7^Z$?4mK,QwPR6a!ɁD= e# R6 e#'H& ra찰0#A ܃D g# R6 e# R6GְIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.png0000644001725400016040000001177713273140101024504 00000000000000PNG  IHDRp$}bKGDIDATxyX'$J9D"VCUA.TVA*h. EEESL.]*˗͕Ϟ= GJD"lRPPVK&***!!!iiih… lgggiO>mff6eʔC={HMMmϞ=XJ3gڶm[oo/^.qcP>|dԩSQofaas!cX|󍦦>FCWaҘ4iRBBׯ˟={&TdxV">>>mmmwE?^[[pݻwoUVݼy322rΜ9uuu/hTl6[QQN3 f9"QbЋH+++T* ;CdPwF>:uUVV~twuu%''\]]^BgѣG&&&)Cd2_ƟKAAaӦM---˗'OjkkΝ)1yFSTT=rӧOe C{C%777G3F5k@˅ ,@Z[[ ̙3/^믿S^^ѣL&S(vwwKP}Y^^i0Almm1E|Y]] H__H@$33S֭[gGl6DV#hŋMLL$Ɨ8(bs%_/l2GKAO&۱%%%5XMM j__zN< A۷o;;;,[ʕ+22F(2_ΝDSN-,,}myO?$MrBaVVVggߚ5k:;; jիWUOOc'::kYtiww۷ t:З#]]]!i&i*99/%uuu NHH\[[L&766'O A:J"V\}7$KPiӦ7n\|m_~}XXسgjkk*oo~~֭FX\E"rrr啕߼ynD֒GGǦ;vKkkk׮=~877wzzzL&;99,ZHKKkHS$*++ýdO4b޾>.wwss۶m[SSS}}OOOyPUUqss+((hll,++h(28qbꜛى HWWƍ'OpǣhjjjL&mW!G)((̚5+??_\?iӦyzz;wΝ;WYYyΜ9ը/'''O>]SS3((|K.UUUEcbbէMϪ[CCCGG'88]%f"K 22|„ خ@6"#O@"233snBCC#4D7>@w/&M ,W/ZZZt:}x_KK|]__y!QXBPJKK% goAC_|~!}9 . x:(pݽ E.7j@_99U@ r{/GJOO^Aa_c8r\VC"rra>ˑs_Nw"7obaJb>F׮ՍUJqYYp)З#";P(zL(VT|p)OOB&mmmO,_RTuuuMMM QGG'++ =t*h"}}e˖W,--Peee ?' AMM%ٹPTTN;:::::t@. nnntкu\\\N<'1h1:,--Lf||?f0ǎNMME_pa555QQQiiiQqNjtpp8Çy<^vvD9Jheq_x`ٝ&&&"LLL?ΝrѥTWW"WUUHtҒ%KЪ͙3g,,,-&驫Ν;G2]---f !i&i*$M駟|8'Oc0ŋe #rٳ m_lYRRR{{{cc]*;;䦦ǏKSHR)49)((/X,VggWjjj`0\]]CL&sǎkii?555ߪKyLLJɌŵ>|099HIcH*. Bў| bee?3!w2//bS(yM8/..n$i^T</$$-Y$ mW)((%&&|RWW7""BAAAb=zV[---ssSNWSN/^X[[Gjee8ٹs'dz/LAN:o<''+W8p`„ ֻv:۷o۲e_~9IN$RDD|mThmmuX'26XYYeffb˔4>! З5k֌uD]CRw1YKK~URRVS@0 C`Æ -۠@ KK?"vLq<IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp__incl.md50000644001725400016040000000004013273140077020157 00000000000000f9282a07e10b3aea7a2c2ecbcd033dc0XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp__incl.md50000644001725400016040000000004013273140077017445 00000000000000912ebcda7258c4ee3ae8127602e7538cXQilla-2.3.4/docs/dom3-api/inherit_graph_26.png0000644001725400016040000000406713273140101016037 00000000000000PNG  IHDR%.bKGDIDATxyLS"^AdQ4PcDkD#ijXB1E1H$EY$.`D[ X@ZEc]ۂ @t@@ : NP,B`PT"gɒ%7n<ZƾZ?R `F(Z=55ulll`:;;)E h?g:444}͛CCC~~~ 233_~- 'rOEq7>>'//R$t#LJJ󌦟gg dq-(h4AAA)))+ j50snn.gΜWCCC񜖖R_srrvttiK~ku%޽{<i@qqիU*`bbB$؈D TǞµk.[… Yn֭[߿?Uul`b@ :t˗Ș#N>Ӵ4OOOL/ b0''///2 }ppZms3555YZZB VR/^E>|{ x·x""400ӸO&_$˵kBBBommF ~:3 S\\&99A}:@kǏ [[[qxL[4@oo+WoߞVVV8nR)r9;wn*QFSZZT*9k.R9 AΝ;Q7:::==J0<<\__/HS߿ u) sjrbѢ|ʕo߾2[Kmh4ǏWUU!={bqwwL&l={ɓ`׋;v LǏ7n ˗/uuuwөSХo߾m۶ߟ8qs8M6`@ طo_uuuWWWCCP(KLL|:H J]nV70˗}||PūW*¡Ç/]tǎSTJ566& ,,,hFv]/ŋ=<<*++q-ŨN1::2 ebb陑122}QdggkjuZZsRR(pbb" lpCK.ZXXJkkka<[^0WTUUnYYzѹ9Lv摑T|C{($11qdd$,,LPD X0sAt@耀sNzȶ{{{.r;c˖-.? At@耀 : ?qv"eIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementation.html0000644001725400016040000011175113273140101021454 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementation Class Referenceabstract

    The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...

    #include <DOMImplementation.hpp>

    Inheritance diagram for xercesc::DOMImplementation:

    Public Member Functions

    Destructor
    virtual ~DOMImplementation ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual bool hasFeature (const XMLCh *feature, const XMLCh *version) const =0
     Test if the DOM implementation implements a specific feature. More...
     
    Functions introduced in DOM Level 2
    virtual DOMDocumentTypecreateDocumentType (const XMLCh *qualifiedName, const XMLCh *publicId, const XMLCh *systemId)=0
     Creates an empty DOMDocumentType node. More...
     
    virtual DOMDocumentcreateDocument (const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Creates a DOMDocument object of the specified type with its document element. More...
     
    Functions introduced in DOM Level 3
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in DOM Features. More...
     
    - Public Member Functions inherited from xercesc::DOMImplementationLS
    virtual ~DOMImplementationLS ()
     Destructor. More...
     
    virtual DOMLSParsercreateLSParser (const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0
     Create a new DOMLSParser. More...
     
    virtual DOMLSSerializercreateLSSerializer (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new DOMLSSerializer. More...
     
    virtual DOMLSInputcreateLSInput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new "empty" DOMLSInput. More...
     
    virtual DOMLSOutputcreateLSOutput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Create a new "empty" LSOutput. More...
     

    Protected Member Functions

    Hidden constructors
     DOMImplementation ()
     
    - Protected Member Functions inherited from xercesc::DOMImplementationLS
     DOMImplementationLS ()
     

    Non-standard extension

    virtual DOMDocumentcreateDocument (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
     Non-standard extension. More...
     
    static DOMImplementationgetImplementation ()
     Non-standard extension. More...
     
    static bool loadDOMExceptionMsg (const short msgToLoad, XMLCh *const toFill, const XMLSize_t maxChars)
     Non-standard extension. More...
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMImplementationLS
    enum  DOMImplementationLSMode { MODE_SYNCHRONOUS = 1, MODE_ASYNCHRONOUS = 2 }
     Create a synchronous or an asynchronous DOMLSParser. More...
     

    Detailed Description

    The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.

    Constructor & Destructor Documentation

    xercesc::DOMImplementation::DOMImplementation ( )
    inlineprotected
    virtual xercesc::DOMImplementation::~DOMImplementation ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMDocument* xercesc::DOMImplementation::createDocument ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName,
    DOMDocumentType doctype,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    pure virtual

    Creates a DOMDocument object of the specified type with its document element.

    Parameters
    namespaceURIThe namespace URI of the document element to create.
    qualifiedNameThe qualified name of the document element to be created.
    doctypeThe type of document to be created or null. When doctype is not null, its ownerDocument attribute is set to the document being created.
    managerPointer to the memory manager to be used to allocate objects.
    Returns
    A new DOMDocument object.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
    NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" , or if the DOM implementation does not support the "XML" feature but a non-null namespace URI was provided, since namespaces were defined by XML.
    WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different document or was created from a different implementation.
    NOT_SUPPORTED_ERR: May be raised by DOM implementations which do not support the "XML" feature, if they choose not to support this method. Other features introduced in the future, by the DOM WG or in extensions defined by other groups, may also demand support for this method; please consult the definition of the feature to see if it requires this method.
    Since
    DOM Level 2
    virtual DOMDocument* xercesc::DOMImplementation::createDocument ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    pure virtual

    Non-standard extension.

    Create a completely empty document that has neither a root element or a doctype node.

    virtual DOMDocumentType* xercesc::DOMImplementation::createDocumentType ( const XMLCh *  qualifiedName,
    const XMLCh *  publicId,
    const XMLCh *  systemId 
    )
    pure virtual

    Creates an empty DOMDocumentType node.

    Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur. It is expected that a future version of the DOM will provide a way for populating a DOMDocumentType.

    Parameters
    qualifiedNameThe qualified name of the document type to be created.
    publicIdThe external subset public identifier.
    systemIdThe external subset system identifier.
    Returns
    A new DOMDocumentType node with ownerDocument set to null.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
    NAMESPACE_ERR: Raised if the qualifiedName is malformed.
    NOT_SUPPORTED_ERR: May be raised by DOM implementations which do not support the "XML" feature, if they choose not to support this method. Other features introduced in the future, by the DOM WG or in extensions defined by other groups, may also demand support for this method; please consult the definition of the feature to see if it requires this method.
    Since
    DOM Level 2
    virtual void* xercesc::DOMImplementation::getFeature ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in DOM Features.

    This method also allow the implementation to provide specialized objects which do not support the DOMImplementation interface.

    Parameters
    featureThe name of the feature requested (case-insensitive). Note that any plus sign "+" prepended to the name of the feature will be ignored since it is not significant in the context of this method.
    versionThis is the version number of the feature to test.
    Returns
    Returns an object which implements the specialized APIs of the specified feature and version, if any, or null if there is no object which implements interfaces associated with that feature.
    Since
    DOM Level 3
    static DOMImplementation* xercesc::DOMImplementation::getImplementation ( )
    static

    Non-standard extension.

    Factory method for getting a DOMImplementation object. The DOM implementation retains ownership of the returned object. Application code should NOT delete it.

    virtual bool xercesc::DOMImplementation::hasFeature ( const XMLCh *  feature,
    const XMLCh *  version 
    ) const
    pure virtual

    Test if the DOM implementation implements a specific feature.

    Parameters
    featureThe name of the feature to test (case-insensitive). The values used by DOM features are defined throughout the DOM Level 2 specifications and listed in the section. The name must be an XML name. To avoid possible conflicts, as a convention, names referring to features defined outside the DOM specification should be made unique.
    versionThis is the version number of the feature to test. In Level 2, the string can be either "2.0" or "1.0". If the version is not specified, supporting any version of the feature causes the method to return true.
    Returns
    true if the feature is implemented in the specified version, false otherwise.
    Since
    DOM Level 1
    static bool xercesc::DOMImplementation::loadDOMExceptionMsg ( const short  msgToLoad,
    XMLCh *const  toFill,
    const XMLSize_t  maxChars 
    )
    static

    Non-standard extension.

    Load the default error text message for DOMException.

    Parameters
    msgToLoadThe DOM ExceptionCode id to be processed
    toFillThe buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
    maxCharsThe maximum number of output characters that can be accepted. If the result will not fit, it is an error.
    Returns
    true if the message is successfully loaded

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMException_8cpp__incl.md50000644001725400016040000000004013273140077017201 000000000000000e13100f8d45e1a255ac8f56e1d3a3faXQilla-2.3.4/docs/dom3-api/DOMException_8hpp__incl.map0000644001725400016040000000030113273140100017261 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_21314fd8aa3f00deb23a3694b8fb0d10.html0000644001725400016040000000612113273140101020321 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    framework Directory Reference
    Directory dependency graph for framework:
    framework

    Files

    file  XPath2MemoryManager.hpp [code]
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_18.png0000644001725400016040000000375713273140101016045 00000000000000PNG  IHDR%IbKGDIDATx]LKǧB_-؂$@@WZ1A6Xb$x0 FM,6ThPSHH!bQ BB e>Lfo[ܽ\=͜3gfN" ? ~InL@A0Ne+X\^^N8כ%pEEѹۧh~Ȗ&##Ɉ7& t` nX%ujdQQQVڽ{իWd äR͛}||BCCl6G=,ˣ~o@[[ݻwfsLL4tY,]vutt}V.&$$,,,]]]T&~w hZLE_AAr [NF.񅅅+J9ð۷oؤK.^RL49`0ݖ C__\v_&T*MKKh4_ҧeUUU?88E4RI^ѓ'Ov]F]zEW'-H$'O 7o@ciiiJJАhx"| _zP(ÍFcwwwllT*], 0.[]]=::ZSSb ܆OOO".%Ϗ  zP(?~xo߾zsHrO=2';;{dd{||7aͽv[od2HBAFGGa9::nh4}GAȶkԔM&eaaa`דr J@ӭnp88""fzt'n0laanF7{lKY Al6ׯۛZ|}}样u( z}jj*Ϗ{)MbܹBn޼Ht[8~[n0LV&ǯ\"]FVݿtttVVn6m422Bd*,nAbbIX,&i2z{{۝%%%E̴aەJ%͞\,|1˹8..<=WTTC(|xbX,^z֣qyLٞrZYX,NG*,۹켼}jREm٤Rƍ}}}333M&FAoٲᄅiZpO'OvǎR 0,???""ㅇ̐tJ'4:B\PP0;; i\I׮]XUU)R =n ) ;  N~ňnL@A0nLp0_$;?;bbb) H7& t`Ÿb ivIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.png0000644001725400016040000003641113273140101023265 00000000000000PNG  IHDR:bKGD IDATxyXfطlbAPQ X TTŊ)`E+R/u>Rj `[\D (EV { [T {cr2w&̒a:A! C$?|pg8"x &:d@#Ww*\z5??_Y0P/BA)0p  ( P"(0DcDL0߿Ytjgg6sx纺FFF!!!b9@_&Ow'jhhٳG#.]l3:0@SS0777YP(/)\>|PWWWe˖0 bccDyoo/H,))&/>}4[  (UU/^ol>)}t钰˗/[? (`y'455?yfacuu5J󺹹UUUVVV e˖-u<##sfggI r333766||!dnn^__䱿8555Bil``gI8NPPP@@ޮXVVaooѐ>}VVV裏]к'OΟ??88Xب+2<TWW-EEE}.@pڵ7.YMRavE/'z)s!aIOO` H$z PJS_HrrI$spwuu\244ӧNOǏeii`*nzʕ;w˗/ hQQQQ֭۽{wIIIIIɗ_~YSS#)@ _~d*((H$I>憆ׯ_gff.[j[MMMo.//OJJrtt444P+V988>AR _}UUUUII7|'6yMMMŋL?0/};fŶX,ݞ^EEŮ{"X,ب-[رommŏk'@r 0,))Jad27lؠpDuwwhhh^`4K9(dll6lccC"###;;;x*##!է]zmmm֭ѡR۶m꒔|ddYrrhќi[\.IUUW|uu*cǴO:zj2,O>q333 d===I)I(U뫁$7o466_^~=22p]+W.cHhk׮}iggg^^ޞ={:)އAPvljj$xK^^>22222R։.< P"(0Dp  ild64t45:o0f6?:5d`ڵk×Q{:LnGGoGGo{{O{{/XN@$BVUu@!${G bݼYN+//ORIW%k$OϜ‚~`DH@ 99ڵ33wΞmJ H?B37{SHM- r}rr"h`llbAIPvͬoMNL|"'GO'Z堢S^Z@ 99Y:9Y̜9QYY]0@u΋ )SBmm'O󫲳ˊDGY;` ޷/ʕ<99/ _<@$=z2;,#zho?HNN!UF(`rs+˯_3Νt&3WV6eg?xP[`pU̱7j޼Ia Ew77*ͳ`@x&;,',7occSMcTeeݾ]\Y٤dlnC&:; (*|G3gNv*#P0Rtv>xPR:]GGhuq1ð޹󢨨VNh`CC-Yg@#x޽,VѢEvS@сp/_6ܼYXg(`L06%0%ʊ5}r{##2 P0XAAUrӔ"t ŋa$`1V\VFsNZnbqe5JKׯ?NJzJ\l#P h\\ʕ+)!0܊߼f0od=uPrr'' ''}~$!q@/jjʋϱ]{QR_d%S'.>먫*Ejn⚛OHX"./ @`lm^YTQΞ͛/ΘRY${5F (AĄ Egp8vvvjjj3gܿ?ZXX9I *** ]&|+99YQQr544/^\UU5+**Р6EEE\84$k׶<|sRS\\._~2!qw7WفaPPnn.N?<ɜ>}z{{;Ś1cFAACݴgϞ b0YYYivW_utt|{2er߼y)֮]+)W^pED i{ ;o_MzzjWN ߱#䵬S $P\\`FPyy@ pqq _8;;x< l6{„ xǮ]^pSgOOM`` a6m\' b,//Ji>K)ao#A{;'&&OQ`љY'Ż/mmm]|‚fcB&BBBz{{;w߿nlln:? ð)S())M8ŋq\_uu~zzz;w.{9sss@xsΉcyy+))n=V RSSN:n8}}`P(ب(333MMKZҥKmۆOwwwkjj޼ySREҶzkb c:::]]]lvvvD}xTٳ83&^z);6,#P744P(GፇZbEmm-F>}Ν;񯙧{"""i4ZqqcHH(6t:~9yyy6}tSPPa@577Y%!ݒH>}ܹ!gX,&YQQ|3f`d2cccBMMMG/f2ׯ_Gv( ðW%r/ElHb~~~4&""B|JP\GGWLL*\\/)\Z >|PWWWe˖0 bcc).]J$׮]gB sl>wտfdd`%p8***Z OURз&K$KJJ𗉉梟[}TZX|=~RN }DbccEYYYKreee]])Qx{{8;;I ݅?} ^ٳg| )JNNvrr:u $в>Hp͚5;v`***@)K]\YYpZzbM@4MYYY}S@q]]))+WR㏿;yNSSI!Z[[K&,X :222~ Fii455.,,0… D"URsYx)88XI$=/y<BRQQN|O?a؁( BJJJKR^|e K'\.aߚ>}92))lPgZ*+kLmd}S))\._Iy1 [^rΝ;xjjjh4GTThԺuv]RRRRR_H"ׯ_g2 $IRxGG?!e˖UUUm߾+<uիd2urrRUU\#P)i``iK,fffƷ&ֶn:*m6YxEj̎@hܷ/yʔoG߹χ##؈Lp$&&7'X{ݺ٫Wֆ[PcH@ ŋ6-Y2ԩӦ 5;L֩1QMxO&NÏ w>>>PKٍEP@aF&o=;RN@ |BH S{Opđ#8;[:;[66v>g <=H@3~[d"|trޝ;/JKmmEh{CQQ@%<$AjR(A+*VuuuXX#@47B-꽲C#2}v6+FFFǎç_8qRyy9/eTAtnnc#mmhhjb~Fih('ƏסPd_' L-M6A!0dϟ?OE'Z`zR`I3g߸TNNs 5B #Κ?lYYcuu مϣ(EP4Ə!du}} 2YXDRHoH`$10P@5iɓkz/]zYx)CW.zlhhhhld3<ۅQh`I t+(w(`36޿ŶmTaZ@@|tzaB S4 (%-54H$':_+R@`7opBm޼6… t:yժUD"544=(_Pƴ'ORT@PWWw_~EUU!ٹyf-- s=~ᅲC544TVV]XgϞ Noڴ /455uuuMJ^v ŋǎspp022rvv>sLCCí[2rssN:G@d2a?Bݻ֭Fx3g,[lٲegΜx_7oӧO}}}Ο?uGظq5k~w/t>_MU| meffܹs%m>.]ӽbynݺ~z//˗/W^h/"e͛7Ν;ׯϮ^/B˗/'*Ploo`0vލ?;!!N={wٳ?~.66TwwwDDիW׭[wᚚ!!!322z Bf wυkkkiJy9sla'N4779sСCW\$O<9}t```ttÇϝ;y昘|D)i;DEE={b:u !(}Y@`lݺӧ!!!K.oݺL&큁ӦM{n@@ĉkkkkIQ=< x{mݺJnذ!==]RH$wwwК5kH$c%mg///UU  ;N"0\TUU/^믿~Ɔ+V_8Pcc2~KRSS;~xBB---׬Y()| 䵵+**EgO9qF}:g0F677#'$ !$//g'i; pijjJJJ?uԮ]F Ǐ&WZGGaĉk׊<ݻvqㆤ0,%%e֬Y_xqڴiàW\-LSL,..~qpp;Ғx|据.aD"e"i;_.<ðÇ/_|Ϟ=O<۝_zcǎ7nFUUUUUU'NhllE BCC8˕WRRp~gϞٳN Z~z}͛7.]T;vlԹy~:_5|<:R)};5EaqƍիWo۶رcSLQSS۸qɓ' с_wwwhhhwwYQaaagϞmjj200ػwG>EB_~%>A&mmm'.D駟Ο?̙7oPTWWW57o^rreo)_:yM>S????y 7:u*66v˖-LbŊ,jϷ~~ C (@`k8$'(`IIO=vjX7uɉ=S,<zzxqq?Nw _tvttOi}t>ϣhF;(`Tpz\ymm 7* D:}@ѿ8ֶy;&&:HlrbWP@(9>̮^>C= !|)HO<}TgSKXsU0QNM55e9TW?].R@|@,"pB&)<2 }QXXM{K K8$kPd)F&6Do9tvb$<:kjj&+WFyy%K~@ryf0jp-n`IS BJˋ}Pl))Hvʦ{{_: ~'Q)=GB0k$xMr{)bu''Kmm׮}1P0 س焒aNNyIk@1) @ɍ'rr/'O#Y'5@X[k\!+*aEAA5#/ODx|'hiaC?9*؇effm׮oP@($hhu|{*?Ճ--,Pk\@[.]ʻr% P0&O6<`'P]][yy%Ey{Aylô4ճчSN & p8vvvjjj3gܿ?~ s&ӓ@ TTT իqdXEEŻ:kd"_Ž;{vUg;OZWP{b#;͝8q"/++;qӋ;fX, r!SSӒ={߹sH$"={&|5`#īW;.]N#>c|!#hu+*?l?bi/_a"RrK@ qvvxl X]v ߽pႧO靏?J24|BqqqÝbu_駇ĩ Cw/>!![y{{kdd-6yI_~ezzz8qƞ={l1pҥɓ'kkk>|!?K__ڀEɹyiH$J=x Bk===ZZZjJsrr>h;Mۻw ssJrWii|}ΑKp~ #СC+VhӧO߹s'>w^DD5F+..vtt fΜ9Cϝ;'//f9"66F$bVPPa^ԃ( ݒH$|_XTs \]]+++i4MDDE_իW3̟!rJ&yYPKK-Gy{{3hPkk@FNWTT 455]zD `l``?\gd2(+&&w#T8yNk+[IJe0FFFF+++:OO:zh4 &M t6GOfX|>_Rĵ|}!`U22RSS,99 x*v:99(aǎ666>uիd2fﴆZ'(~!v+]qodxHEZ#9rJY'2Po޴'%=p>gڵ=<(( FH›$䔓3֭mb`Ax弄,VGy>_0tLfWJJѵkUT5>| PV\Vp35ܗsl 7\IJ5޷otUU%Yd (o'n`7k]Yd (q? ~DQQ~b;͚e 1^lHHx̲5˖MWQ]u)! F ?pn~돫[,,(7,_nodgՁx%RwwwZZϗaBG$.\.PPGGgjk ?$-Zd=t>&zzxYY/߾]L$ʹY{{+% (`V\$-bb )$S P0VUɅ7o>knfX1cizzjN VP@ˆ7ԴZZ/Yb5̬m^, |𺙘Hk)K!|hjk[SS  4==m,9s"\9(QV֐FKM}VZBXknn4Z]Z--VQD&yxLifA (}>=9~|Pcpc@/x:5͛;Əי?o F:'+-Zz)S.]‚"XPMww4/̘1qB[O)ڲN ?A#HO/?UVVᅲ7jj-->P4d}AWWז2;R6?n=kdP@lg_dghu)Θ1zB[MYg@CTZF[[BQTTmmkvvٽ{elvuNvt&}A=x0_/ͭ.{𠼦u8ŏ?6suS+0n&'+WXS.i'OʲˊֆOuqtp0URxC#P0PLf׾})W<# Gx/^ggeeUrusNRW'P@? ĉ5h3sD?ׇk (x&Ν "/O$zzŜ9 K0v( a wNb?<_KtvKK}Y$AԴn~ѣJ CRvSZZڪ31FT@o^__/,B57++°(?…Ý#yd@!"% wWNW)F!m۶+W: |s}ϞΞijb64t44tյۻ:d#1 (D9 ED}p/c0fA >Cuugτ]1,ۺΛ7/))[ӻ{󫫫ϟ?0k׮ JII;whAAA[lihhxod4ДCCCr劥%AqP B&CCC\.z]{ Bʦ111!'6\twXʮ1@شio 'wuXO||p'=!![m۶YYYye{{kdd9bii6gΜGIYwa#B(..N<ׯohhP(=:bŊZ6};w#<==ݻammMъCBB$El%%3gs˳#G ooo?*//͹@SS0777YP(񉲲qƝ?0|M~\]]+++i4MDDıcdrbb7o~7|O?nSFWb `FDDt:>>uTh4 &M t6G2 @b|p)k1C]]]a-[0 ussS8q uuZa%%%%x斖.\._gW  8#+1aؾ}DbccEYYYtL^0,''[EE9--MJS@/_looO맧 9} ٳΝ^VV56]]]x4MYYyܸqEEE3]w頀h:;y󃃃š`0vAuu5RTTwI׮]kkk۸q%K$aO^ho߾}s!s!aIOOۭ} @ pss.mݺu:::T*u۶m]]]<ȑ#***gG]:(7D vv#S||H0ʎ ( P"(0DP@`-G&' 鍍ee 7 (.p  ( P"(0D}+IvIENDB`XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp__dep__incl.map0000644001725400016040000000024513273140100020462 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_14.map0000644001725400016040000000036413273140101016021 00000000000000 XQilla-2.3.4/docs/dom3-api/namespacemembers_type.html0000644001725400016040000000413513273140100017430 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__incl.md50000644001725400016040000000004013273140077020474 00000000000000a4219a05ad78b1fe88dd8471e0e018cfXQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__incl.map0000644001725400016040000000131713273140101017301 00000000000000 XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__incl.png0000644001725400016040000001364613273140101017556 00000000000000PNG  IHDRp3bKGD[IDATx{C@ L+D @ +{v@x={x<  'Nȿ^8|}||\\\dXttt(jDGG+Ȱ(//?xBW@]A u`=PWC&D.C޽L&fg$<`ԕLhkk{'x)tfu%?YfAgFPW2ť\0u?^.啜rd2gϞz5k\G]|ʕ+lvKK L~葏Oppo4%tss36mrss>{,j$ׯ_,% .\X~;***d]i.[,''&{u뼼9D#F {dd2W__ߣG͛'[XXHRRR?ѣ äԊЬ,:;;;\4W~~~TTTPPݻwg޽knnnkk;32eJvvvhhhjj]wILLP())) Cb_5++k˖-gϞMLL )SD޽{vRh#G^Q x<~쫢^___۶m#H GGGvZ777reeeaaaց׮]Csg&UUUׯp!LKK 722"H>tŋt:]bʢٳg899JuU[[[ϟCCC-,,OqFAJ|IV̻mmmނ膎H$l|џ&LD---x<>3D"رcL&Sd166v@bɓ' XYYIuU###BKDu%+$ rD"fgA3%%t:ǙB ҥK `$$$_T*믿bTBdLnllttt6mڴ}v 2Ҷmfll9{l___x,X0LgBCCcbb.\k.KLjժk兄 'cǎ . ƢE"""̙#VQ _7o*ڑARmmmOu$yO,O%'+5fh˗/7rիWcX555r]-Ԅ/^||b{%K-[ꊗ#ѨyPy D8@ +{ 쁺@^12AEU u5͉D8ƎfX ^ zE E#ٙ *߳pN~~ѧ6\K *z##$%/]I|>s繢NswI cG^qX  rbx~np8͛^demrvm8!/]];x<_b[uV\ ;ugl7VF޽TOO+"\_+(H;)+d?yҔ4Iumٲ ˧P\dZ*u&ׯxA+*2c<..oٲPWW{ޢ^VDb9ԨB@]t:7+?rwyD">*``wR~T5kR::%%a' SjmۖϊY!qQԕjX:(,bee |XX6?r[<J Jio$xpssá3 Ychg~i-8-TUNihCMM ܼWPPEHTW:W:gyy}hwGEˀԹsmSSkjԕQ_߱r)33CCE#Jee/gOR5bR1?oY:֖țcE? $TUY&e43g6j)0/U7V%ٙeg+Ckk}}a0Rr)GG`f̘p|XSӻ+Ouw灪AEKԯRMMVJ;V;//HO8^ee/|}S- *$*Qaᖾ>֊ =vG~@]);׮=߰!}f|*ow|NцڠziTq3|| ?`jYK|ׯ*yj4P\p=ݙ-.jb2oXudgWP(P trsC ==_)uddٽ`jRsB̼Vb /lrymm=+W&>ʆPeA]aOz}},q;khxjURo>|p8G}9slD״8ŋOX` 89`Ay3^a˭G D"aRd6PWXro?tpٰyJ*Twp;pׯG*+PWA89 <bmm("(tt0n>0xccc飢w%3E1111330aL>u\\`L&.-EWaN}*s) 9i|;>#߰aCXXXnn/^WXgϞƪ*77D\֭ۻw/*[666 ùt6#1{iir gΜ'OWb P(AAASSӰ09&lkkkiiu떗WCCÎ;S`eRԞr۶m}2 CYZZvʕK)-""BZl^ÙϜ9?=E遁ƍ322 v9~x5ktwwv\;wFSSsڴiK ;chhhccSZZpϟMDgffjii?X߿ en'N`K]JQN|-JN48,,dJ4J rG*|\nllܹsс}y`^^D`XP-6R%ₙj!JI}})S%-(tW(Wu5קP(1B>DJNNq@]A u`=PWHXL :UQ]Hf`Ro>;= +{ 쁺@w"i`OIENDB`XQilla-2.3.4/docs/dom3-api/bc_s.png0000644001725400016040000000124413273140077013621 00000000000000PNG  IHDR_ kIDATxkQϝ̤I&m&156*nąܸR,4 +H(Ub1J.(EmߏhJmKS'C(х & r3g(z&_9}՟@mu ` h`ԯ &~M4%3?h)\Yi>Jb @giވkg\轭EUv+?E"pB\Y&$vM+Dn)}:Xo 3گ'.f0u9Ljf6%3Gf#sm(,k*ʒJJˢou_~ r]%%mnu]zr5[ưXeI XQilla-2.3.4/docs/dom3-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.map0000644001725400016040000000102113273140101020726 00000000000000 XQilla-2.3.4/docs/dom3-api/StDOMNode_8hpp__incl.md50000644001725400016040000000004013273140077016444 0000000000000012cc2de010f0a5adcb00aa413e58ae7cXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNode__inherit__graph.map0000644001725400016040000000576313273140101022373 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__dep__incl.png0000644001725400016040000000751513273140100022505 00000000000000PNG  IHDRp::bKGDIDATx{PA V BEDZ-3hԩDWAZ!/a:T­0>^x:ÇSz2ޗ_~9Y]Jp    ED(VH$\.7((w QJW魭XlA;t:]%jpp099<ɓ'FyQZF&%%fgg8p``` $${H,F6b?22Uhoo?ƹO$m߾] /'Nhjj:rϏ*++rZvw24m޼yfffNNN_}Ղ Ξ=KW^mee~z.^XXUpvv.))*//_bBFFFz{{50wܐ}[nh4GGǰ2-;uLy$Dڶm[ee%Z\\g2g̘W\\76nܨe:^XXy"-[SaYYݻaͥR)rRm_ ܶmۏ?B;v>RYoپ};LNN&#Tj~~>kGGG>?V#O/c uuu<3..Tu̱FCCseceeֆ葭R[[ۿ[^| 6q խ]vkkkCBBRSS+**9ιs㔟w۷ocQDӧOwuuu<O6֭['Od٧O;uB觟~Bh;; ӣXAQbbbgg'=vXuu T۹sgdd$xn#*eee} qqq C%K8p`ٲeGiQXnsG^АO  .\2667o@ pvvV .]~AAAjl JEQ(e`mm٩P{{7:k,Mk+33ώP(Bッvvvjv{dd+%g%IyyݻϜ9r F0JoeX[[#:::Zxŋ"SSSDR,T9j& r[uss;{~*)H.\bݻ555ϳ BЃ͝;7!!tBJx(y7kLLLdH$ֆqtr<66;"HV7"ɌRnjj޾d@ pTʑWs84ѣ/B$`vwwGDDTUU ›7or8333J;>>ޞFiLRRRkkkcccZZڦMZ~}jjjGG_I/ BhxxX*R('O`abXB'NDt777-Ϝ9Õ"ONNf0c5bll***ţO^Biii͉Y|X'8#phHO?[077wttLIIQSRRx<mkk[``2ӦMSlN_xK'H R)I$҆ l& j/bllpbccgΜk.WP0<<<)))44tڴio6'QQQΝKMMmmm511XL>=((ԩS|͛7ZcX$22R"r?b 38N+jTyu-|SDkq8єzsm@,S8fںu{aTD)H^"#?Qc '%H$ H$ H$ +޼޽{*J JKKUIԣPLi4R,:sLYN'o|c(xQp9^ò:$rJKxXϿ3< k 㕗WGBbQݙ 24$-,+BFFZ]hʃDիw~N*rn4A"%7LMaYQ:DjwFt/!Qnn ڻ|/F&߸GwsԀDj/'V/]zƈ8 Z}OLyNNN Z*(xM55zF?4RnnL6!ߙ GKӦQ,,b2АJ? 'j ikKuGڀX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X `>142=c?/B)--O0}?B%""B >>>"H׽`HТEL{瑀X X X X 4$/={:;;+ DFFg^jѣGR)_zwH$@ D HPyyH$ <7y}}}+W>vXmm3337m$=m~T 7Ϸyyy666 OFȑ#Ͽv횇ҥKwQUU nnnxS7n>#M"zel5###::0k֬Ȍ ldfeewNNΝ;j$..!$H$ŋ_}Uss󰰰!?4`L&d>BIFnPgg&eee/mccŝ;wryOOJ&VEuuu555!߿_YYikkPϭ6kd2~idd흕tڵkMMMpgDaqG?~n͚5_5ҫ@"jjjzWB4¢^B}}3d2r)!pBP=3^ j $!ryrr-[Uu!400p1dݺu}}}n*..^B"Fb4BXd*447nxyy577w EGG?|`\r)//o͚5lի[NKK{gՇ PShpt}";4-Zbutt(V߷o˩Tebccb1-vSRR:yR9R-^l޽* 5 !ɟ=zpgm@L6g6IaDN6sss.IaDbDbDbDboVTT[tEiP[z{130y$ H$ H$ H$ ?&F#IENDB`XQilla-2.3.4/docs/dom3-api/DOMException_8hpp__dep__incl.map0000644001725400016040000000301613273140100020256 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMComment.html0000644001725400016040000015763213273140101020101 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMComment Class Reference

    This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'. More...

    #include <DOMComment.hpp>

    Inheritance diagram for xercesc::DOMComment:

    Public Member Functions

    Destructor
    virtual ~DOMComment ()
     Destructor. More...
     
    - Public Member Functions inherited from xercesc::DOMCharacterData
    virtual ~DOMCharacterData ()
     Destructor. More...
     
    virtual const XMLCh * getData () const =0
     Returns the character data of the node that implements this interface. More...
     
    virtual XMLSize_t getLength () const =0
     Returns the number of characters that are available through data and the substringData method below. More...
     
    virtual const XMLCh * substringData (XMLSize_t offset, XMLSize_t count) const =0
     Extracts a range of data from the node. More...
     
    virtual void appendData (const XMLCh *arg)=0
     Append the string to the end of the character data of the node. More...
     
    virtual void insertData (XMLSize_t offset, const XMLCh *arg)=0
     Insert a string at the specified character offset. More...
     
    virtual void deleteData (XMLSize_t offset, XMLSize_t count)=0
     Remove a range of characters from the node. More...
     
    virtual void replaceData (XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0
     Replace the characters starting at the specified character offset with the specified string. More...
     
    virtual void setData (const XMLCh *data)=0
     Sets the character data of the node that implements this interface. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMComment ()
     
    - Protected Member Functions inherited from xercesc::DOMCharacterData
     DOMCharacterData ()
     
     DOMCharacterData (const DOMCharacterData &other)
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Since
    DOM Level 1

    Constructor & Destructor Documentation

    xercesc::DOMComment::DOMComment ( )
    inlineprotected
    virtual xercesc::DOMComment::~DOMComment ( )
    inlinevirtual

    Destructor.


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.md50000644001725400016040000000004013273140100024361 0000000000000041cb64ac1b7f7637563dc33ce3148e6cXQilla-2.3.4/docs/dom3-api/DOMException_8hpp__dep__incl.md50000644001725400016040000000004013273140077020175 000000000000002a1db4b0b6c98890094ba0fdd7c1f732XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__incl.md50000644001725400016040000000004013273140077016652 00000000000000430eed27f3e903b0f5536bbc133c70c1XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.md50000644001725400016040000000004013273140100022320 00000000000000d7442962651588b772ebf07a4c7cee30XQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp_source.html0000644001725400016040000003722713273140077020404 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentType.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocumentType.hpp 527149 2007-04-10 14:56:39Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    31 class DOMNamedNodeMap;
    32 
    45 class CDOM_EXPORT DOMDocumentType: public DOMNode {
    46 protected:
    47  // -----------------------------------------------------------------------
    48  // Hidden constructors
    49  // -----------------------------------------------------------------------
    54 
    55 private:
    56  // -----------------------------------------------------------------------
    57  // Unimplemented constructors and operators
    58  // -----------------------------------------------------------------------
    62  DOMDocumentType & operator = (const DOMDocumentType &);
    64 
    65 public:
    66  // -----------------------------------------------------------------------
    67  // All constructors are hidden, just the destructor is available
    68  // -----------------------------------------------------------------------
    75  virtual ~DOMDocumentType() {};
    77 
    78  // -----------------------------------------------------------------------
    79  // Virtual DOMDocumentType interface
    80  // -----------------------------------------------------------------------
    89  virtual const XMLCh * getName() const = 0;
    90 
    108  virtual DOMNamedNodeMap *getEntities() const = 0;
    109 
    110 
    120  virtual DOMNamedNodeMap *getNotations() const = 0;
    122 
    131  virtual const XMLCh * getPublicId() const = 0;
    132 
    139  virtual const XMLCh * getSystemId() const = 0;
    140 
    151  virtual const XMLCh * getInternalSubset() const = 0;
    153 
    154 };
    155 
    156 XERCES_CPP_NAMESPACE_END
    157 
    158 #endif
    159 
    160 
    virtual ~DOMDocumentType()
    Destructor.
    Definition: DOMDocumentType.hpp:75
    DOMDocumentType()
    Definition: DOMDocumentType.hpp:52
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object...
    Definition: DOMDocumentType.hpp:45
    DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name...
    Definition: DOMNamedNodeMap.hpp:45
    XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp_source.html0000644001725400016040000003610613273140077020620 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathNamespace.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMXPathNamespace.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP
    24 
    25 #include <xercesc/dom/DOMNode.hpp>
    26 
    27 XERCES_CPP_NAMESPACE_BEGIN
    28 
    29 class DOMElement;
    30 
    55 class CDOM_EXPORT DOMXPathNamespace : public DOMNode
    56 {
    57 
    58 protected:
    59  // -----------------------------------------------------------------------
    60  // Hidden constructors
    61  // -----------------------------------------------------------------------
    66 
    67 private:
    68  // -----------------------------------------------------------------------
    69  // Unimplemented constructors and operators
    70  // -----------------------------------------------------------------------
    74  DOMXPathNamespace& operator = (const DOMXPathNamespace&);
    76 
    77 public:
    78 
    79 
    81  XPATH_NAMESPACE_NODE = 13
    82  };
    83 
    84  // -----------------------------------------------------------------------
    85  // All constructors are hidden, just the destructor is available
    86  // -----------------------------------------------------------------------
    93  virtual ~DOMXPathNamespace() {};
    95 
    96  // -----------------------------------------------------------------------
    97  // Virtual DOMXPathNamespace interface
    98  // -----------------------------------------------------------------------
    108  virtual DOMElement *getOwnerElement() const = 0;
    109 
    111 };
    112 
    113 XERCES_CPP_NAMESPACE_END
    114 
    115 #endif
    The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath names...
    Definition: DOMXPathNamespace.hpp:55
    XPathNodeType
    Definition: DOMXPathNamespace.hpp:80
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    DOMXPathNamespace()
    Definition: DOMXPathNamespace.hpp:64
    virtual ~DOMXPathNamespace()
    Destructor.
    Definition: DOMXPathNamespace.hpp:93
    XQilla-2.3.4/docs/dom3-api/sync_off.png0000644001725400016040000000152513273140077014523 00000000000000PNG  IHDRw=IDATxKhTW1I&38MII3b$c I1V1-(T.* t!K[čf`l(l"Y6gT}sgܹ d{8?̝;u`:!FB?Űm'y>ѝlU_?]Y(N8f1qn-etm 0}b%׌=0?1s08;_ W|%\Zð >舽lnp.a{ )t; b n652?>Oдunm`׭ZWjC~>־0+ {{fMŕټ` ݛ%uA6,]kWu]7ihu1 l Ҷ̺:\cxhRQt$ fd<4B[fd7=.M9//O a},j?.5ښm?X2#d p(?c!a1ޗةܾ7dK:)3],H+ku<|`LhC7e םt H$^2%l.aeÉ|s }D^hz~Rá]|#@חև[k<|(*ݹdtM:,]' X_n| /cfOIENDB`XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__incl.md50000644001725400016040000000004013273140077017026 0000000000000086476641d0f8652a9bd3335db64fb4e8XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentType__inherit__graph.md50000644001725400016040000000004013273140100024014 000000000000005d8da7fc4a663fdddb6fadd9e28c6bc2XQilla-2.3.4/docs/dom3-api/DOMElement_8hpp__incl.map0000644001725400016040000000025713273140100016726 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.map0000644001725400016040000000032313273140101024374 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMStringList_8hpp__dep__incl.map0000644001725400016040000000102313273140101020417 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp__incl.map0000644001725400016040000000007713273140101017561 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationSource.html0000644001725400016040000002357713273140100022644 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationSource Class Referenceabstract

    #include <DOMImplementationSource.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMImplementationSource ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMImplementationgetDOMImplementation (const XMLCh *features) const =0
     A method to request the first DOM implementation that supports the specified features. More...
     
    virtual DOMImplementationListgetDOMImplementationList (const XMLCh *features) const =0
     A method to request a list of DOM implementations that support the specified features and versions,. More...
     

    Protected Member Functions

    Hidden constructors
     DOMImplementationSource ()
     

    Constructor & Destructor Documentation

    xercesc::DOMImplementationSource::DOMImplementationSource ( )
    inlineprotected
    virtual xercesc::DOMImplementationSource::~DOMImplementationSource ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMImplementation* xercesc::DOMImplementationSource::getDOMImplementation ( const XMLCh *  features) const
    pure virtual

    A method to request the first DOM implementation that supports the specified features.

    Parameters
    featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
    Returns
    An implementation that has the desired features, or null if this source has none.
    Since
    DOM Level 3
    virtual DOMImplementationList* xercesc::DOMImplementationSource::getDOMImplementationList ( const XMLCh *  features) const
    pure virtual

    A method to request a list of DOM implementations that support the specified features and versions,.

    Parameters
    featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
    Returns
    A list of DOM implementations that support the desired features
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__dep__incl.png0000644001725400016040000000653413273140100020736 00000000000000PNG  IHDRpUbKGD IDATxTSǟ;FP 0(( 쐅6iiH:*GPΑHMPI1| 2r0I9C@[6 wyuyyx3/4@<\$0Ʌ8JEU*IᤧE<0cXT$:;;oܸA֔n!b򨬬O4CrGbӦM)))Z088(H֮]SPP022BapdC[[gnc;PӘYRR"J]:N$577DlP(ve2p۷or99xUU?< Z~zj#؍d2̙~wwwT:qLOO_l H$_ee%fҥaaa}YOO4L&Soo/1 [n]]]^d7o ;cƌM6d2TYYItUUUW&?rsC_^ dee L.22rڵ۶my&i4% h4| 6wMMM7n~zmm֭[CCCÿ[։YDhHccP( +((,Ց|>ѣ噔Iioomۋ/x/=00ԴbŊ%Dٳʕ+ΝwuuI$Ԇ'OFGG7,..Vǎ;rHSSS^^9W_}(--۹hϞ=l6;))✜Vk:1r.kѐ˗/$$$=ӧSRRzhgg'a4.\ؾ}+bbb]\\q犊X)Ho4h___ggǏر_ n31r3fXԸqFrJ@__ngѢE>\*j޼y3gΙ3ϏҲpBtᨨ(_xñEјL&"0axzziGs?>NT4^o}/95... FCEDi| f, /8qחO>>>:덍6b{ٳgh4Z`@{{۷pV|'`c&LCCC˗/7 lfb6[gmTTT*+`41.Ztww{~ߵeFW__R.]$]]]TtzzELh⢢"Hy<_|Vܹs񐐐ueeeUWW׸s```NNݻwӧO[q6 FNóN#GE]gϞحlkkknn]fb"wm dɒl[c0yyy=88X 8::#x3g+ tRcc#^̌qtt|WB!N7 YYYڻw/>ܺu+aVDnnn>>>Mny̙bO<;P\\L`EwtұG`"qe1z\hg""",wl )Z$08998d2cH`ACrcq J@L 63c!X`,: &kMGFLK~26MvNUW+~L#KKJKP. È0R^.M"EmpMjE&vpO/=-<7 $;HmVaZ\Qqh4-##s,_Wi!pII{nō$cg޽b6dQtuQ݀_ಲxM\n ,6\5Ri3 TJɆfY.W*3Ʃ$|2jul6sdxhxZ@jus(3&DBu".$0 ! 9H`ACr$0 ! 9H`ACr$0 ! 9H`ACr$0 ! 9H`ACrC*Ε>;`xXmz9Rs8 aΝ;/_NI6##L台  ! 9H`ACΔ#Oo޼?k ޽^5k/|AHr-&8a---Y`J Q**//_j^z!55ʕ+~aAA5k_vomm=YFsE @)S]s纹lw)OOό |׾}ΝO?.\pÆ yyyCHHT*%B^6PT a111gϞŋIIIݻ@ (**"zzk?ٳSRR---9sgaX;vi|X,(,,B [Llh4.Cz)f77WfV`0coFoooII [P^}[ny{{'''4޷G4Ë+Vpqq]v͚57W --D`8eyV(^^^&v5 k׮E@ Jf3`޼y_'>,hĦq( l6^u( GܯP²rʾ_~E&whX['nݺ_,S]ம*>Ν8|WRRRgggpp?P(N:fb1q8KDe˖X,r?sccc[ZZ>裈1S0IP({.١?>>~ ?pN#'S/H-m6]`zM}[J$kJ L!14F XQilla-2.3.4/docs/dom3-api/ftv2plastnode.png0000644001725400016040000000034513273140077015507 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/dom3-api/doxygen.png0000644001725400016040000000730313273140077014372 00000000000000PNG  IHDRh ;IDATx]y\պ~45%TL QPE"q11]8aw*(*" z`8 m,p$%B(8k6lk[߷;?kPx'tz3_Q4g@m ci{~4:Hc'PP7^h zbcP 3}OqNkT(?d ~z<4ǡ؞vz٦Zd,6k]Fz< Zs?sU2Sw1c`[}%ѽ.Լ6BLZ!F8[ T #g]:vu?vbR?wgb$kF~;عƕX?lNʪ,HCgAzlӺg ]jM3oҳ'=$f}GS_co.ȹ:ds:1={9?zqviDp moaEqҵw}~{j{ºFNë[OqOSXO]>muľe5{Jկ(bl}`UyacCAklysA7oJ .Be. Z'-PyF.lp&.j7rez19HG%qz׈c_k_")HJn~֘5 q5#+9T Rܸrzϴ̝ =υ{áOfwg|/$;֙ƭ]W"/< DఽB}yIEc^=[VhM$l];Kr¦* t$]M;I1!M (f<5~z mՠ>کIz;u[ie^ӳNF6B\}7+,'a -yHY,^f~?Hc{Z+4\sٷnߣFơsغD?<vkx0MlذIxdEEAMg*YE7ۙ^[uv[wG=Edn׶l'pGk+C82 dz3H BS[wŘ ~xptmţiQ歉AB1fى4uI]6% 1t.NJphz̠R1"3-"&1[:N mW0_œ 6&)ꦬ}~{m]zMP~^:eQT_*798ˍ 347E¿uSɻU_ NWeNӏ|;;d"ȉ޵ᆴ"ĴMM+bY_E]PXKНIޥoE<_(EP|m,өZߺk,kM`jzeU t36˷r}w:Χ |TܵQK_pໃYd0!a –W$$/\$ 2mLH dHV,:RZJaz*>_NT(‚^SVFU8E܈nd;8\C]=m:bDd=ߞUU5O|]Pv\]2"y[yzg{Y{Ù5;w{N3nĨwKݭ29Id y)P8ũ@mPwjl,6 hWd ump.DžtwR xBδYcxg*vo y򑕓[?V0NO난~󒯷h#Hk8kӍ^q@]ӓ,56-κUn[>]@nϜp[6# 4tn:}8T9_Y$/GK(ђM`dѺ;OB &P{qhJ+閧l2M_1ӫtlya L^y.۽[ u/]iS}N>e1qjf&iT\=kϛX-.84V5u!TE .OH4zwTr. xքHHg hT$yqzp< qrwI]I鲘s":ՖbզL69VW<;3?M3AV#ޯKUr9!qtH+6V/TS^pqgLP'5E ޺ n"2|;W"֬TwtO' +W+Z̖<&nO,I06.Z.h*INڒOegBXZ9hDSʍ A/c`A"z|ş;H#|%OOD mcƤqmu&~n πZj =_n[nN$_bE)8?6l}#bW( d-p&a"9ņ$ڛA!;{~8ޣ10`#kuN Qbh 8Mawhq(bK Z%m֍(J)@> 7% {y ohf>{p.­_%glZ\B2B #Һphݚ[<#SpA7Ht4:|gtL*($Ʃ$;b`=MM5ǾHH.HeA5}rd)T};Q5i2O00;,냔}g]79_{C>h{.II?[Kswz6u;OJa˶zvd l舊yc'rTWӰL |ʽhB T'ò]K(=Kx  L,Pʵu׈ž1ݫ;pGDxZY kf676oھH~޸ 8Up6(? K+?%ݷ/19U?B)l @=ޞkIENDB`XQilla-2.3.4/docs/dom3-api/dir_000003_000004.html0000644001725400016040000000414113273140100015240 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    dom → framework Relation

    File in xerces-c-src/src/xercesc/domIncludes file in xerces-c-src/src/xercesc/framework
    DOMException.cppMemoryManager.hpp
    XQilla-2.3.4/docs/dom3-api/classXQillaPlatformUtils-members.html0000644001725400016040000000557013273140077021477 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaPlatformUtils Member List

    This is the complete list of members for XQillaPlatformUtils, including all inherited members.

    enableExtendedPrecision(bool bEnable)XQillaPlatformUtilsstatic
    initialize(xercesc::MemoryManager *memMgr=0)XQillaPlatformUtilsstatic
    terminate()XQillaPlatformUtilsstatic
    XQilla-2.3.4/docs/dom3-api/inherit_graph_27.png0000644001725400016040000000422513273140101016034 00000000000000PNG  IHDR%bKGDJIDATx[LMg)hcC!  `U (D0"BC  !*A%j0P@ՠ*"P9"(v@K罘~m)̳}g-% Y3f;1v 4uBP(T04A=F(_K'8PUUKR1v 4c0:966vzzZ9@aÆ}]tIVS;v|FpEEao߮#T>Ou #ꎏ+apJ5~cRtbbT.xYtHPݻ'++脑wQCdV>vT*Jxzz#ɀ^R fff+t5 cX,˵ vuu-**BX,Vccchh[DDDWWHii):!((HMfmmCPښr\:*H$򲲲ruu>@VkoF6g ={eee4:d 2ԍnL=2>-ŶK?pv܉ޚ;::&&&666[X,ݻw3 ;;+WB۷UWxEKttttt4\ظIىccceff šrss===%I__OOO_IE[RݻwIzA۷!휻mmm!:Es8rhX@{LTNK~]C322T*X,^XX/_r:011l=55E%ZV$I L啛K=<I6~ܚo>f{w.Ͻ;{0 vځ(xD!# E bII$Қ5kt6#X@]Spss{w5)/Pk<(xDL|ggcMM]-MJJɄceeSSSwnood^^^&|墢3ggl244}vѣsi:Pwn;h<@FF'FFF 6l`XoVZZPyyappc숈)Md2B粄sEFc %**"??"**Bb@UU\|guuIO>qqqٹsgAADut_84ܳg|G011}v77THgPQQpvQPPPYYꚓ3aQK޼y300ۻRe'MMM>>>۶mϗSWW&%%bSf.?lll<<<---͞VںWMoSSSGrccc&@󧦦O>zj SRRp̙}׍xҥKQQQ/KU}}}vv6˽pl~ƚ@ ٱcǷ~7j ʒXRRrĉǏ744 Ax ~w{MD"++P찰0SSS|Z7mݺՕxÇϲ2롡 ?7[nAќۛFb |>Juqq)--]lr5|7|SqD.blmm9 jK oƍ@__ĤW_U3ϨˀB?y$O;9yyyL&s dG&CF{Vx{/$$$x{{oذA)(<,KZe 844ۛѾKbbb}}Psscǜuuu!HbBS}yy '99y``~ڼyFh6WVV655M gϞM6mڴFedd榦 ?~<00q}sܣGXW\1 ^~;w~ݻ7999$$DWWwt_bEjjLMM}}}MO?*za h* 'O\vA90 KOOŃ, :;;ޔ <JZXX }||ܹK/`^^^</++ y<^zz:>%}\]]<x+! /|,EF;li[a###SRRq7SܜL&Y9}׮]oڪue*8tttߌ-dեyQQQ; "JhH(vx {UF*8pcppodeeݻСCjY㓒^yHaؕ+W ȈH$/--- @aX||ɪURRRt($..fߺu o822gjj`01 \ey||X+W~}}}3SzgBCC|G5?fDQ]~-%}` /+Wܽ{lZayBf KTׯ_9}xzz_~~DˆCBGB<ңIENDB`XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp__incl.map0000644001725400016040000000025513273140100016607 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_31.md50000644001725400016040000000004013273140100015716 00000000000000df035fc77e6832acb6f2753e17b1de7dXQilla-2.3.4/docs/dom3-api/classAutoDeallocate-members.html0000644001725400016040000001224513273140077020442 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    AutoDeallocate< TYPE > Member List

    This is the complete list of members for AutoDeallocate< TYPE >, including all inherited members.

    __pad0__AutoDeallocate< TYPE >
    adopt()AutoDeallocate< TYPE >inline
    AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)AutoDeallocate< TYPE >inline
    get() const AutoDeallocate< TYPE >inline
    mmgr_(mmgr)AutoDeallocate< TYPE >inline
    operator TYPE *() const AutoDeallocate< TYPE >inline
    operator*() const AutoDeallocate< TYPE >inline
    operator->() const AutoDeallocate< TYPE >inline
    set(TYPE *p)AutoDeallocate< TYPE >inline
    swap(TYPE *p)AutoDeallocate< TYPE >inline
    ~AutoDeallocate()AutoDeallocate< TYPE >inline
    XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp__dep__incl.map0000644001725400016040000000030113273140101021673 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMCDATASection_8hpp.html0000644001725400016040000001157413273140101016526 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMCDATASection.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMText.hpp>
    Include dependency graph for DOMCDATASection.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMCDATASection
     CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_4.png0000644001725400016040000000447213273140101015753 00000000000000PNG  IHDR%pbbKGDIDATx}HS1QÜm5MM3Qaғ|&+ A& S#$Te4͔lnS3Mn:SeMf=sBlpp%\I8WnWTBQ-P(LUw'Oٔp>Ԍ+Ǖ|pVՌ: G7J pt$o*CllH$R077affs֭eQPߏ>>>UUU?!0::O ~qk`#M%ZZZFFF=z4;;5==I]vgdd{.558$${& ;;;PNMMܹĤuuu?hqqqww7ҥK;B PR5_ *ʽ{.ڳg26@&988#_qhaaahh(3111<<\t,+882[RkUuJp8d2Y,CKJJe2pqqbX[[XE4ϟS4*jee#HP^;v?.--Z/նPިM"\ڼrrroAANW* $EW* D"#IIIr,**rvvȀDjJ2//,00tUkTSSyftmMמvt$alll\\ׯ_mmm߾}G3|2@hh˗/]]]|@ eXd2у e2ٝ;wVuF7J%[XXRD"ڤQ?~$H߿GaMLL&''QL.U nnn(&ɔH$Uooo3Hrtv%ڎǏ&&&4]ckLOt$DBPQgg籱1rh|>BTYYvwwc^bݻDTJRB]7oXYYa¢.MQE==>nee%NGh'V\\E+))Ѯ$To߾d2B+-מ򮪓_Yq[XX$$$tuu={3 B;;;] ;;;Ú,--[[[)J@@@SSӦM4>'H<OmƺG-//VTT0LniiikkV>>> @GFFPL& $900uo߮6~D544e0ޅZfz% ߿?888)) 3ZYYaZH$Ȏ#BYx<͛75yrRY^^.O|hll,5kY'ao:DPљ''JWWW??d nrrŋNNN +((A7cbM jkkRRRhT*Uk@7lɪC'NXZZĄ9 ,,,X,2lnn3Vz4h43eARUg!ɒLLL\]]lZ)999+K, L&L633۽{7v9AbqLL Hx"9Z EVVF377g0Bf-,,h4Y$aff-[TjnnnDDҒ5]:[q555<VTTxzzn`>يg󭭭W^=uF'VVF2??&m̙NjJ?B__fNWn8Wnp%UV>쫰P}بp~ BQ{3I'|p%\I8WnĎlIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp_source.html0000644001725400016040000005247613273140077020337 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSSerializer.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSSerializer.hpp 883665 2009-11-24 11:41:38Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSSERIALIZER_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMLSSERIALIZER_HPP
    24 
    266 #include <xercesc/dom/DOMNode.hpp>
    270 
    271 XERCES_CPP_NAMESPACE_BEGIN
    272 
    273 class DOMLSOutput;
    274 
    275 class CDOM_EXPORT DOMLSSerializer
    276 {
    277 protected :
    278  // -----------------------------------------------------------------------
    279  // Hidden constructors
    280  // -----------------------------------------------------------------------
    285 private:
    286  // -----------------------------------------------------------------------
    287  // Unimplemented constructors and operators
    288  // -----------------------------------------------------------------------
    292  DOMLSSerializer & operator = (const DOMLSSerializer &);
    294 
    295 
    296 public:
    297  // -----------------------------------------------------------------------
    298  // All constructors are hidden, just the destructor is available
    299  // -----------------------------------------------------------------------
    306  virtual ~DOMLSSerializer() {};
    308 
    309  // -----------------------------------------------------------------------
    310  // Virtual DOMLSSerializer interface
    311  // -----------------------------------------------------------------------
    314  // -----------------------------------------------------------------------
    315  // Feature methods
    316  // -----------------------------------------------------------------------
    391  virtual DOMConfiguration* getDomConfig() = 0;
    392 
    393  // -----------------------------------------------------------------------
    394  // Setter methods
    395  // -----------------------------------------------------------------------
    427  virtual void setNewLine(const XMLCh* const newLine) = 0;
    428 
    439  virtual void setFilter(DOMLSSerializerFilter *filter) = 0;
    440 
    441  // -----------------------------------------------------------------------
    442  // Getter methods
    443  // -----------------------------------------------------------------------
    452  virtual const XMLCh* getNewLine() const = 0;
    453 
    461  virtual DOMLSSerializerFilter* getFilter() const = 0;
    462 
    463  // -----------------------------------------------------------------------
    464  // Write methods
    465  // -----------------------------------------------------------------------
    483  virtual bool write(const DOMNode* nodeToWrite,
    484  DOMLSOutput* const destination) = 0;
    485 
    503  virtual bool writeToURI(const DOMNode* nodeToWrite,
    504  const XMLCh* uri) = 0;
    524  virtual XMLCh* writeToString(const DOMNode* nodeToWrite, MemoryManager* manager = NULL) = 0;
    525 
    527 
    528  // -----------------------------------------------------------------------
    529  // Non-standard Extension
    530  // -----------------------------------------------------------------------
    539  virtual void release() = 0;
    541 
    542 
    543 };
    544 
    545 XERCES_CPP_NAMESPACE_END
    546 
    547 #endif
    Configurable memory manager.
    Definition: MemoryManager.hpp:39
    virtual ~DOMLSSerializer()
    Destructor.
    Definition: DOMLSSerializer.hpp:306
    The DOMConfiguration interface represents the configuration of a document and maintains a table of re...
    Definition: DOMConfiguration.hpp:350
    This interface represents an output destination for data.
    Definition: DOMLSOutput.hpp:39
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    Definition: DOMLSSerializerFilter.hpp:47
    Definition: DOMLSSerializer.hpp:275
    DOMLSSerializer()
    Definition: DOMLSSerializer.hpp:283
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMMemoryManager-members.html0000644001725400016040000002303213273140100022653 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMMemoryManager Member List
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRange.html0000644001725400016040000025565013273140100017531 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMRange Class Referenceabstract

    #include <DOMRange.hpp>

    Public Types

    Public Constants
    enum  CompareHow { START_TO_START = 0, START_TO_END = 1, END_TO_END = 2, END_TO_START = 3 }
     Constants CompareHow. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMRange ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual DOMNodegetStartContainer () const =0
     DOMNode within which the Range begins

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    More...
     
    virtual XMLSize_t getStartOffset () const =0
     Offset within the starting node of the Range. More...
     
    virtual DOMNodegetEndContainer () const =0
     DOMNode within which the Range ends

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    More...
     
    virtual XMLSize_t getEndOffset () const =0
     Offset within the ending node of the Range. More...
     
    virtual bool getCollapsed () const =0
     TRUE if the Range is collapsed

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    More...
     
    virtual const DOMNodegetCommonAncestorContainer () const =0
     The deepest common ancestor container of the Range's two boundary-points. More...
     
    virtual void setStart (const DOMNode *refNode, XMLSize_t offset)=0
     Sets the attributes describing the start of the Range. More...
     
    virtual void setEnd (const DOMNode *refNode, XMLSize_t offset)=0
     Sets the attributes describing the end of a Range. More...
     
    virtual void setStartBefore (const DOMNode *refNode)=0
     Sets the start position to be before a node. More...
     
    virtual void setStartAfter (const DOMNode *refNode)=0
     Sets the start position to be after a node. More...
     
    virtual void setEndBefore (const DOMNode *refNode)=0
     Sets the end position to be before a node. More...
     
    virtual void setEndAfter (const DOMNode *refNode)=0
     Sets the end of a Range to be after a node. More...
     
    virtual void collapse (bool toStart)=0
     Collapse a Range onto one of its boundary-points. More...
     
    virtual void selectNode (const DOMNode *refNode)=0
     Select a node and its contents. More...
     
    virtual void selectNodeContents (const DOMNode *refNode)=0
     Select the contents within a node. More...
     
    virtual short compareBoundaryPoints (CompareHow how, const DOMRange *sourceRange) const =0
     Compare the boundary-points of two Ranges in a document. More...
     
    virtual void deleteContents ()=0
     Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content. More...
     
    virtual DOMDocumentFragmentextractContents ()=0
     Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment. More...
     
    virtual DOMDocumentFragmentcloneContents () const =0
     Duplicates the contents of a Range. More...
     
    virtual void insertNode (DOMNode *newNode)=0
     Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range. More...
     
    virtual void surroundContents (DOMNode *newParent)=0
     Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range. More...
     
    virtual DOMRangecloneRange () const =0
     Produces a new Range whose boundary-points are equal to the boundary-points of the Range. More...
     
    virtual const XMLCh * toString () const =0
     Returns the contents of a Range as a string. More...
     
    virtual void detach ()=0
     Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMRange ()
     
     DOMRange (const DOMRange &)
     

    Detailed Description

    Member Enumeration Documentation

    Constants CompareHow.

    START_TO_START: Compare start boundary-point of sourceRange to start boundary-point of Range on which compareBoundaryPoints is invoked.

    START_TO_END: Compare start boundary-point of sourceRange to end boundary-point of Range on which compareBoundaryPoints is invoked.

    END_TO_END: Compare end boundary-point of sourceRange to end boundary-point of Range on which compareBoundaryPoints is invoked.

    END_TO_START: Compare end boundary-point of sourceRange to start boundary-point of Range on which compareBoundaryPoints is invoked.

    Since
    DOM Level 2
    Enumerator
    START_TO_START 
    START_TO_END 
    END_TO_END 
    END_TO_START 

    Constructor & Destructor Documentation

    xercesc::DOMRange::DOMRange ( )
    inlineprotected
    xercesc::DOMRange::DOMRange ( const DOMRange )
    inlineprotected
    virtual xercesc::DOMRange::~DOMRange ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMDocumentFragment* xercesc::DOMRange::cloneContents ( ) const
    pure virtual

    Duplicates the contents of a Range.

    Returns
    A DOMDocumentFragment that contains content equivalent to this Range.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual DOMRange* xercesc::DOMRange::cloneRange ( ) const
    pure virtual

    Produces a new Range whose boundary-points are equal to the boundary-points of the Range.

    Returns
    The duplicated Range.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::collapse ( bool  toStart)
    pure virtual

    Collapse a Range onto one of its boundary-points.

    Parameters
    toStartIf TRUE, collapses the Range onto its start; if FALSE, collapses it onto its end.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual short xercesc::DOMRange::compareBoundaryPoints ( CompareHow  how,
    const DOMRange sourceRange 
    ) const
    pure virtual

    Compare the boundary-points of two Ranges in a document.

    Parameters
    howA code representing the type of comparison, as defined above.
    sourceRangeThe Range on which this current Range is compared to.
    Returns
    -1, 0 or 1 depending on whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.
    Exceptions
    DOMExceptionWRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same DOMDocument or DOMDocumentFragment.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::deleteContents ( )
    pure virtual

    Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.

    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes that contain any of the content of the Range are read-only.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::detach ( )
    pure virtual

    Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range.

    Subsequent calls to any methods or attribute getters on this Range will result in a DOMException being thrown with an error code of INVALID_STATE_ERR.

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual DOMDocumentFragment* xercesc::DOMRange::extractContents ( )
    pure virtual

    Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment.

    Returns
    A DOMDocumentFragment containing the extracted contents.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes which contain any of the content of the Range are read-only.
    HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual bool xercesc::DOMRange::getCollapsed ( ) const
    pure virtual

    TRUE if the Range is collapsed

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

    Since
    DOM Level 2
    virtual const DOMNode* xercesc::DOMRange::getCommonAncestorContainer ( ) const
    pure virtual

    The deepest common ancestor container of the Range's two boundary-points.

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMRange::getEndContainer ( ) const
    pure virtual

    DOMNode within which the Range ends

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

    Since
    DOM Level 2
    virtual XMLSize_t xercesc::DOMRange::getEndOffset ( ) const
    pure virtual

    Offset within the ending node of the Range.

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMRange::getStartContainer ( ) const
    pure virtual

    DOMNode within which the Range begins

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

    Since
    DOM Level 2
    virtual XMLSize_t xercesc::DOMRange::getStartOffset ( ) const
    pure virtual

    Offset within the starting node of the Range.

    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::insertNode ( DOMNode newNode)
    pure virtual

    Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.

    If the container is a DOMText node, this will be split at the start of the Range (as if the DOMText node's splitText method was performed at the insertion point) and the insertion will occur between the two resulting DOMText nodes. Adjacent DOMText nodes will not be automatically merged. If the node to be inserted is a DOMDocumentFragment node, the children will be inserted rather than the DOMDocumentFragment node itself.

    Parameters
    newNodeThe node to insert at the start of the Range
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the start of the Range is read-only.
    WRONG_DOCUMENT_ERR: Raised if newNode and the container of the start of the Range were not created from the same document.
    HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of newNode or if newNode is an ancestor of the container.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if newNode is an DOMAttr, DOMEntity, DOMNotation, or DOMDocument node.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::release ( )
    pure virtual

    Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it.

    (release() will call detach() where appropriate)

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMRange::selectNode ( const DOMNode refNode)
    pure virtual

    Select a node and its contents.

    Parameters
    refNodeThe node to select.
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if an ancestor of refNode is an DOMEntity, DOMNotation or DOMDocumentType node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::selectNodeContents ( const DOMNode refNode)
    pure virtual

    Select the contents within a node.

    Parameters
    refNodeDOMNode to select from
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation or DOMDocumentType node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setEnd ( const DOMNode refNode,
    XMLSize_t  offset 
    )
    pure virtual

    Sets the attributes describing the end of a Range.

    Parameters
    refNodeThe refNode value. This parameter must be different from null.
    offsetThe endOffset value.
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation, or DOMDocumentType node.
    DOMExceptionINDEX_SIZE_ERR: Raised if offset is negative or greater than the number of child units in refNode. Child units are 16-bit units if refNode is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setEndAfter ( const DOMNode refNode)
    pure virtual

    Sets the end of a Range to be after a node.

    Parameters
    refNodeRange ends after refNode.
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not a DOMAttr, DOMDocument or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setEndBefore ( const DOMNode refNode)
    pure virtual

    Sets the end position to be before a node.

    Parameters
    refNodeRange ends before refNode
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setStart ( const DOMNode refNode,
    XMLSize_t  offset 
    )
    pure virtual

    Sets the attributes describing the start of the Range.

    Parameters
    refNodeThe refNode value. This parameter must be different from null.
    offsetThe startOffset value.
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation, or DOMDocumentType node.
    DOMExceptionINDEX_SIZE_ERR: Raised if offset is negative or greater than the number of child units in refNode. Child units are 16-bit units if refNode is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setStartAfter ( const DOMNode refNode)
    pure virtual

    Sets the start position to be after a node.

    Parameters
    refNodeRange starts after refNode
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::setStartBefore ( const DOMNode refNode)
    pure virtual

    Sets the start position to be before a node.

    Parameters
    refNodeRange starts before refNode
    Exceptions
    DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
    Since
    DOM Level 2
    virtual void xercesc::DOMRange::surroundContents ( DOMNode newParent)
    pure virtual

    Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.

    Parameters
    newParentThe node to surround the contents with.
    Exceptions
    DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of either boundary-point of the Range is read-only.
    WRONG_DOCUMENT_ERR: Raised if newParent and the container of the start of the Range were not created from the same document.
    HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of newParent or if newParent is an ancestor of the container or if node would end up with a child node of a type not allowed by the type of node.
    INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    DOMRangeExceptionBAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a non-text node.
    INVALID_NODE_TYPE_ERR: Raised if node is an DOMAttr, DOMEntity, DOMDocumentType, DOMNotation, DOMDocument, or DOMDocumentFragment node.
    Since
    DOM Level 2
    virtual const XMLCh* xercesc::DOMRange::toString ( ) const
    pure virtual

    Returns the contents of a Range as a string.

    This string contains only the data characters, not any markup.

    Returns
    The contents of the Range.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
    Since
    DOM Level 2

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.png0000644001725400016040000001142013273140101024341 00000000000000PNG  IHDRp)bKGDIDATxiTSG'AY#*ăBRTdmEAQ@%E@ ʪT,©H(ԾA&)rsߔ$\>͝gf̽!$ ATd1HB 4HBCmm 1P( 2 $ۻxjժs04d 4??2!///*A Ah@ Ah@'f#"",Yg|xԩ\@+x񢥥wd2DhB:9̙3GGGG__ֶ011=ztΜ9NNN&&&6mz/a{{BUii󐐐]v} T__d^jbbf</""B[[[KK+""2&&`Μ9b&n~+W|>_v9I"vqMxsayyyJDDDNN,((7q!p߾}$Y,_IPù\@ 311QUUL]' 00O[[f:u˗˗/joo__~Rfffmmm+W f5<<=;;0Sٳg/R ZZZEEE7oӃفwVE͏CL&BXXXPT<ԔNtyyҥKᴵbp¢"Xiq+p&) 41z1Qjjjⶻv튎0,''A'HJJ9s˗/q}V^^~>LLL~K.}S(6>bvQyy~p8賵UIIixC=%}l PA]]])))aaax& &YWWzzz/^9'NfpBaaa! rqqa0 aѣ=;f:u Yf]]]%ήȀ9򝝝ٳg}&Gkǎc0:::0Ϟ=ʕ+w-z2hkkkkkھ}4+D222841Πcʍ7R(K믅 ؔ=}ʊb" Ν;-ZdkkBRSS񱳳lkk333;|pRRVII N/++344! *%%KXWW``6887̚5KCC#88f 冇驩mٲd|q+ ?EEESSk׮a.ڄhZ~ܹ Æ/^lffv꯲pܹQ*  }8Ϗ322RQQYz5\)}l PB*u; " ( " ( " (7>W0D8TΝ;`dUցL "+d,Щ@ 8hm=&/NIa2Ge t(*jRPWP/*ju,S$-<ܸ~$!~LIH%@zz:-Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Ah@ Al0dOEE]EE]YGC&D59t>#q9BEs$֭@ ȑ#rAh@ Ah@fj VooX%Z妥mذaǎf===vvvxQuuCggvGݓsOOx&J v35 HII駟 ###lvpp0, yIHHHFFoyyyxx8}}}Ϟ=] ~~~NLL 444mF%%%av i7#w_k SVg\lٱctuu a˗VXAP֮]WVV+XZZ555K./ޣ022 ȈB;;rY?hMMߟ|~ZZ[ZZχQSSWsssvvkll,[&}||n߾ E1>W_9뻒wyy9\n]ee%޽{L&rssʢ}۷;99v شi^%77400UUq[[۲@WW׼۷ooٲŋs8nnn<ObfGbCe---ϝ;d2ϝ;w)))h4NOOOojjΆ ZZZbccrrr`˥R?ӧ\.Fh.B Ѩ FFF/_ŋs8˳즦&+++&&&^^^YYY ,-rgddٳ .TUU9|qNNNhhhff&:<//ObfG$&l~mSSSxxƍMMMafYY޽{ CBBGGGsc]R(Em۶\bfG$&2cƌ/ҥKxf__;~~ s͛7o|BB¢EEohh7o5k?x<>O&߾} b=ꆆ،sa唔'Odee988Hlt;Ξ2bmٲL&۷/!!\UU5(((%%e$:$$׸/ˍrV V^ӋQTTfbΜ9"޽&,,,222-FYY9###;;;--WWWSAAA׮]sssͼ}vCCŋjG&#""vimmmmm-mf̘zӧ8pFߺukr޽i>dc+ۇq\;;;___EEEF 9($ч^^^??,[[||SA=bj@EHA]]} Al@ Ah@Fƒz~"]b7b kq@gPAE$PAEOD>3~nIENDB`XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp_source.html0000644001725400016040000003102213273140077021211 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocumentFragment.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocumentFragment.hpp 932889 2010-04-11 13:10:10Z borisk $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTFRAGMENT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTFRAGMENT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    27 
    28 XERCES_CPP_NAMESPACE_BEGIN
    29 
    30 
    71 class CDOM_EXPORT DOMDocumentFragment: public DOMNode {
    72 protected:
    73  // -----------------------------------------------------------------------
    74  // Hidden constructors
    75  // -----------------------------------------------------------------------
    80 
    81 private:
    82  // -----------------------------------------------------------------------
    83  // Unimplemented constructors and operators
    84  // -----------------------------------------------------------------------
    88  DOMDocumentFragment & operator = (const DOMDocumentFragment &);
    90 
    91 public:
    92  // -----------------------------------------------------------------------
    93  // All constructors are hidden, just the destructor is available
    94  // -----------------------------------------------------------------------
    101  virtual ~DOMDocumentFragment() {};
    103 
    104 };
    105 
    106 XERCES_CPP_NAMESPACE_END
    107 
    108 #endif
    virtual ~DOMDocumentFragment()
    Destructor.
    Definition: DOMDocumentFragment.hpp:101
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    DOMDocumentFragment()
    Definition: DOMDocumentFragment.hpp:78
    DOMDocumentFragment is a &quot;lightweight&quot; or &quot;minimal&quot; DOMDocument object.
    Definition: DOMDocumentFragment.hpp:71
    XQilla-2.3.4/docs/dom3-api/inherit_graph_0.png0000644001725400016040000000356313273140101015747 00000000000000PNG  IHDR%W?bKGD(IDATxoHS_ܟV[9&$Ԣ$_T\jFT/Jjl(TE@抑P/1bˌbU97utljsи]ײ_s={s Ab ,i?0L``0!7NgCCC8^,5E,~i4. Tx=jV[z0Ka  ,ڵk/EbݺuW X,R@ѰرcD"Dv~@pÁh9 Bh222#E"Ѽ Fv\w|i[(T̡Cn6=z nܸ/,,DM4!cccz #GD".2) H]l޽cX===i l&Avxbٹec awwwQQQnnnmmm,#<d۴իWA0OZ,::! ZmQQQff ZZZ"MTvuuF(ش46=88v}ڵ0;wߏ"(2#^o߶ƒJ;\zzD=&իxRelڴh4 ߶SzG_|y~/^P(+PYYiL&P(|[np܊:aX  x XQilla DOM3 API Documentation SourceForge.net Logo

    dom → util Relation

    File in xerces-c-src/src/xercesc/domIncludes file in xerces-c-src/src/xercesc/util
    DOMException.hppPlatformUtils.hpp
    DOMImplementation.hppPlatformUtils.hpp
    DOMImplementationLS.hppPlatformUtils.hpp
    XQilla-2.3.4/docs/dom3-api/ftv2pnode.png0000644001725400016040000000034513273140077014623 00000000000000PNG  IHDRɪ|IDATx=QFDk:FPK؃=V@ճ 8SHx0bnrr{򽿾$ TP XOd6"SOB(Q)+YĈ ҪR>Vtsm9(k-@ȧ-$ b [he Kp-l|CApRG'rͭaIENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_22.md50000644001725400016040000000004013273140100015716 000000000000009716d06ad3fd7219d9c5e4b64b5c8032XQilla-2.3.4/docs/dom3-api/functions_0x74.html0000644001725400016040000001214113273140100015646 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - t -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1XMLPlatformUtils.html0000644001725400016040000031647513273140077021343 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::XMLPlatformUtils Class Reference

    Utilities that must be implemented in a platform-specific way. More...

    #include <PlatformUtils.hpp>

    Static Public Member Functions

    static XMLSize_t alignPointerForNewBlockAllocation (XMLSize_t ptrSize)
     Aligns the specified pointer per platform block allocation requirements. More...
     
    Initialization and Panic methods
    static void Initialize (const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
     Perform per-process parser initialization. More...
     
    static void Initialize (XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
     Perform per-process parser initialization. More...
     
    static void Terminate ()
     Perform per-process parser termination. More...
     
    static void panic (const PanicHandler::PanicReasons reason)
     The panic mechanism. More...
     
    File Methods
    static XMLFileMgr * makeFileMgr (MemoryManager *const manager)
     Make a new file object appropriate for the platform. More...
     
    static XMLFilePos curFilePos (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Get the current file position. More...
     
    static void closeFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Closes the file handle. More...
     
    static XMLFilePos fileSize (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Returns the file size. More...
     
    static FileHandle openFile (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens the file. More...
     
    static FileHandle openFile (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens a named file. More...
     
    static FileHandle openFileToWrite (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Open a named file to write. More...
     
    static FileHandle openFileToWrite (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Open a named file to write. More...
     
    static FileHandle openStdInHandle (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Opens the standard input as a file. More...
     
    static XMLSize_t readFileBuffer (FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Reads the file buffer. More...
     
    static void writeBufferToFile (FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Writes the buffer to the file. More...
     
    static void resetFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Resets the file handle. More...
     
    File System Methods
    static XMLCh * getFullPath (const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Gets the full path from a relative path. More...
     
    static XMLCh * getCurrentDirectory (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Gets the current working directory. More...
     
    static bool isAnySlash (XMLCh c)
     Check if a character is a slash. More...
     
    static void removeDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Remove occurrences of the pair of dot slash. More...
     
    static void removeDotDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Remove occurrences of the dot dot slash. More...
     
    static bool isRelative (const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Determines if a path is relative or absolute. More...
     
    static XMLCh * weavePaths (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Utility to join two paths. More...
     
    Timing Methods
    static unsigned long getCurrentMillis ()
     Gets the system time in milliseconds. More...
     
    Mutex Methods
    static XMLMutexMgr * makeMutexMgr (MemoryManager *const manager)
     Factory method for creating MutexMgr object. More...
     
    static void closeMutex (void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Closes a mutex handle. More...
     
    static void lockMutex (void *const mtxHandle)
     Locks a mutex handle. More...
     
    static void * makeMutex (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     Make a new mutex. More...
     
    static void unlockMutex (void *const mtxHandle)
     Unlocks a mutex. More...
     
    External Message Support
    static XMLMsgLoader * loadMsgSet (const XMLCh *const msgDomain)
     Loads the message set from among the available domains. More...
     
    NEL Character Handling
    static void recognizeNEL (bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
     This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default. More...
     
    static bool isNELRecognized ()
     Return the value of fgNEL flag. More...
     
    Strict IANA Encoding Checking
    static void strictIANAEncoding (const bool state)
     This function enables/disables strict IANA encoding names checking. More...
     
    static bool isStrictIANAEncoding ()
     Returns whether a strict IANA encoding name check is enabled or disabled. More...
     

    Static Public Attributes

    Public Static Data
    static XMLNetAccessor * fgNetAccessor
     The network accessor. More...
     
    static XMLTransService * fgTransService
     The transcoding service. More...
     
    static PanicHandler * fgUserPanicHandler
     The Panic Handler. More...
     
    static PanicHandler * fgDefaultPanicHandler
     The Panic Handler. More...
     
    static MemoryManagerfgMemoryManager
     The configurable memory manager. More...
     
    static XMLFileMgr * fgFileMgr
     
    static XMLMutexMgr * fgMutexMgr
     
    static XMLMutex * fgAtomicMutex
     Global mutex for fast or infrequent operations. More...
     
    static bool fgXMLChBigEndian
     
    static bool fgSSE2ok
     

    Detailed Description

    Utilities that must be implemented in a platform-specific way.

    This class contains methods that must be implemented in a platform specific manner. The actual implementations of these methods are available in the per-platform files inside src/util/Platforms .

    Member Function Documentation

    XMLSize_t xercesc::XMLPlatformUtils::alignPointerForNewBlockAllocation ( XMLSize_t  ptrSize)
    inlinestatic

    Aligns the specified pointer per platform block allocation requirements.

    The results of this function may be altered by defining XML_PLATFORM_NEW_BLOCK_ALIGNMENT.

    static void xercesc::XMLPlatformUtils::closeFile ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Closes the file handle.

    This must be implemented by the per-platform driver, which should use local file services to close the passed file handle, and to destroy the passed file handle and any allocated data or system resources it contains.

    Parameters
    theFileThe file handle to close
    managerThe MemoryManager to use to allocate objects
    static void xercesc::XMLPlatformUtils::closeMutex ( void *const  mtxHandle,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Closes a mutex handle.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Parameters
    mtxHandleThe mutex handle that you want to close
    managerThe MemoryManager used to allocate the object
    static XMLFilePos xercesc::XMLPlatformUtils::curFilePos ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Get the current file position.

    This must be implemented by the per-platform driver, which should use local file services to determine the current position within the passed file.

    Since the file API provided here only reads, if the host platform supports separate read/write positions, only the read position is of any interest, and hence should be the one returned.

    Parameters
    theFileThe file handle
    managerThe MemoryManager to use to allocate objects
    static XMLFilePos xercesc::XMLPlatformUtils::fileSize ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Returns the file size.

    This must be implemented by the per-platform driver, which should use local file services to determine the current size of the file represented by the passed handle.

    Parameters
    theFileThe file handle whose size you want
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the size of the file in bytes
    static XMLCh* xercesc::XMLPlatformUtils::getCurrentDirectory ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Gets the current working directory.

    This must be implemented by the per-platform driver. It returns the current working directory is.

    Parameters
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the current working directory. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will be allocated using the static memory manager, if users do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
    static unsigned long xercesc::XMLPlatformUtils::getCurrentMillis ( )
    static

    Gets the system time in milliseconds.

    This must be implemented by the per-platform driver, which should use local services to return the current value of a running millisecond timer. Note that the value returned is only as accurate as the millisecond time of the underlying host system.

    Returns
    Returns the system time as an unsigned long
    static XMLCh* xercesc::XMLPlatformUtils::getFullPath ( const XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Gets the full path from a relative path.

    This must be implemented by the per-platform driver. It should complete a relative path using the 'current directory', or whatever the local equivalent of a current directory is. If the passed source path is actually fully qualified, then a straight copy of it will be returned.

    Parameters
    srcPathThe path of the file for which you want the full path
    managerPointer to the memory manager to be used to allocate objects.
    Returns
    Returns the fully qualified path of the file name including the file name. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will beallocated using the static memory manager, if user do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
    static void xercesc::XMLPlatformUtils::Initialize ( const char *const  locale = XMLUni::fgXercescDefaultLocale,
    const char *const  nlsHome = 0,
    PanicHandler *const  panicHandler = 0,
    MemoryManager *const  memoryManager = 0 
    )
    static

    Perform per-process parser initialization.

    Initialization must be called first in any client code.

    Parameters
    localeThe locale to use for messages.

    The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

    All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

    To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

    The default locale is "en_US".

    Parameters
    nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
    panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
    memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
    static void xercesc::XMLPlatformUtils::Initialize ( XMLSize_t  initialDOMHeapAllocSize,
    XMLSize_t  maxDOMHeapAllocSize,
    XMLSize_t  maxDOMSubAllocationSize,
    const char *const  locale = XMLUni::fgXercescDefaultLocale,
    const char *const  nlsHome = 0,
    PanicHandler *const  panicHandler = 0,
    MemoryManager *const  memoryManager = 0 
    )
    static

    Perform per-process parser initialization.

    Initialization must be called first in any client code.

    Parameters
    initialDOMHeapAllocSizeThe size of the first memory block allocated by the DOMDocument heap. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    maxDOMHeapAllocSizeThe maximum size of the memory block allocated by the DOMDocument heap. As the document grows, the allocated by the heap memory blocks grow from initialDOMHeapAllocSize to maxDOMHeapAllocSize. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    maxDOMSubAllocationSizeThe maximum size of the memory block requested that is handled by the DOMDocument heap. A request for a larger block is handled directly by the memory manager. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
    localeThe locale to use for messages.

    The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

    All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

    To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

    The default locale is "en_US".

    Parameters
    nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
    panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
    memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
    static bool xercesc::XMLPlatformUtils::isAnySlash ( XMLCh  c)
    inlinestatic

    Check if a character is a slash.

    This must be implemented by the per-platform driver.

    Parameters
    cthe character to be examined
    Returns
    true if the character examined is a slash false otherwise
    static bool xercesc::XMLPlatformUtils::isNELRecognized ( )
    static

    Return the value of fgNEL flag.

    static bool xercesc::XMLPlatformUtils::isRelative ( const XMLCh *const  toCheck,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Determines if a path is relative or absolute.

    This must be implemented by the per-platform driver, which should determine whether the passed path is relative or not. The concept of relative and absolute might be... well relative on different platforms. But, as long as the determination is made consistently and in coordination with the weavePaths() method, it should work for any platform.

    Parameters
    toCheckThe file name which you want to check
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns true if the filename appears to be relative
    static bool xercesc::XMLPlatformUtils::isStrictIANAEncoding ( )
    static

    Returns whether a strict IANA encoding name check is enabled or disabled.

    static XMLMsgLoader* xercesc::XMLPlatformUtils::loadMsgSet ( const XMLCh *const  msgDomain)
    static

    Loads the message set from among the available domains.

    The returned object must be dynamically allocated and the caller becomes responsible for cleaning it up.

    Parameters
    msgDomainThe message domain which you want to load
    static void xercesc::XMLPlatformUtils::lockMutex ( void *const  mtxHandle)
    static

    Locks a mutex handle.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Parameters
    mtxHandleThe mutex handle that you want to lock
    static XMLFileMgr* xercesc::XMLPlatformUtils::makeFileMgr ( MemoryManager *const  manager)
    static

    Make a new file object appropriate for the platform.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static void* xercesc::XMLPlatformUtils::makeMutex ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Make a new mutex.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is. The returned handle pointer will be eventually passed to closeMutex() which is also implemented by the platform driver.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static XMLMutexMgr* xercesc::XMLPlatformUtils::makeMutexMgr ( MemoryManager *const  manager)
    static

    Factory method for creating MutexMgr object.

    This factory method creates a mutexmgr that will be used on the particular platform.

    Parameters
    managerThe MemoryManager to use to allocate objects
    static FileHandle xercesc::XMLPlatformUtils::openFile ( const char *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Opens the file.

    This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFile ( const XMLCh *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Opens a named file.

    This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const char *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Open a named file to write.

    This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const XMLCh *const  fileName,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Open a named file to write.

    This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

    Parameters
    fileNameThe string containing the name of the file
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the opened file
    static FileHandle xercesc::XMLPlatformUtils::openStdInHandle ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager)
    static

    Opens the standard input as a file.

    This must be implemented by the per-platform driver, which should use local file services to open a handle to the standard input. It should be a copy of the standard input handle, since it will be closed later!

    Parameters
    managerThe MemoryManager to use to allocate objects
    Returns
    The file handle of the standard input stream
    static void xercesc::XMLPlatformUtils::panic ( const PanicHandler::PanicReasons  reason)
    static

    The panic mechanism.

    If, during initialization, we cannot even get far enough along to get transcoding up or get message loading working, we call this method.

    Each platform can implement it however they want. This method will delegate the panic handling to a user specified panic handler or in the absence of it, the default panic handler.

    In case the default panic handler does not support a particular platform, the platform specific panic handling shall be implemented here

    .

    Parameters
    reasonThe enumeration that defines the cause of the failure
    static XMLSize_t xercesc::XMLPlatformUtils::readFileBuffer ( FileHandle  theFile,
    const XMLSize_t  toRead,
    XMLByte *const  toFill,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Reads the file buffer.

    This must be implemented by the per-platform driver, which should use local file services to read up to 'toRead' bytes of data from the passed file, and return those bytes in the 'toFill' buffer. It is not an error not to read the requested number of bytes. When the end of file is reached, zero should be returned.

    Parameters
    theFileThe file handle to be read from.
    toReadThe maximum number of byte to read from the current position
    toFillThe byte buffer to fill
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns the number of bytes read from the stream or file
    static void xercesc::XMLPlatformUtils::recognizeNEL ( bool  state,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.

    It is only called once per process. Once it is set, any subsequent calls will result in exception being thrown.

    Note: 1. Turning this option on will make the parser non compliant to XML 1.0.

    1. This option has no effect to document conforming to XML 1.1 compliant, which always recognize these two chars (0x85 and 0x2028) as newline characters.
    static void xercesc::XMLPlatformUtils::removeDotDotSlash ( XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Remove occurrences of the dot dot slash.

    To remove the sequence, slash dot dot slash and its preceding path segment if and only if the preceding path segment is not slash dot dot slash.

    Parameters
    srcPathThe path for which you want to remove the slash dot dot slash sequence and its preceding path segment.
    managerThe MemoryManager to use to allocate objects
    Returns
    static void xercesc::XMLPlatformUtils::removeDotSlash ( XMLCh *const  srcPath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Remove occurrences of the pair of dot slash.

    To remove the sequence, dot slash if it is part of the sequence, slash dot slash.

    Parameters
    srcPathThe path for which you want to remove the dot slash sequence.
    managerThe MemoryManager to use to allocate objects
    Returns
    static void xercesc::XMLPlatformUtils::resetFile ( FileHandle  theFile,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Resets the file handle.

    This must be implemented by the per-platform driver which will use local file services to reset the file position to the start of the the file.

    Parameters
    theFileThe file handle that you want to reset
    managerThe MemoryManager to use to allocate objects
    static void xercesc::XMLPlatformUtils::strictIANAEncoding ( const bool  state)
    static

    This function enables/disables strict IANA encoding names checking.

    The strict checking is disabled by default.

    Parameters
    stateIf true, a strict IANA encoding name check is performed, otherwise, no checking.
    static void xercesc::XMLPlatformUtils::Terminate ( )
    static

    Perform per-process parser termination.

    The termination call is currently optional, to aid those dynamically loading the parser to clean up before exit, or to avoid spurious reports from leak detectors.

    static void xercesc::XMLPlatformUtils::unlockMutex ( void *const  mtxHandle)
    static

    Unlocks a mutex.

    Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

    Note that, since the underlying system synchronization services are used, Xerces cannot guarantee that lock/unlock operations are correctly enforced on a per-thread basis or that incorrect nesting of lock/unlock operations will be caught.

    Parameters
    mtxHandleThe mutex handle that you want to unlock
    static XMLCh* xercesc::XMLPlatformUtils::weavePaths ( const XMLCh *const  basePath,
    const XMLCh *const  relativePath,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Utility to join two paths.

    This must be implemented by the per-platform driver, and should weave the relative path part together with the base part and return a new path that represents this combination.

    If the relative part turns out to be fully qualified, it will be returned as is. If it is not, then it will be woven onto the passed base path, by removing one path component for each leading "../" (or whatever is the equivalent in the local system) in the relative path.

    Parameters
    basePathThe string containing the base path
    relativePathThe string containing the relative path
    managerThe MemoryManager to use to allocate objects
    Returns
    Returns a string containing the 'woven' path. It should be dynamically allocated and becomes the responsibility of the caller to delete.
    static void xercesc::XMLPlatformUtils::writeBufferToFile ( FileHandle const  theFile,
    XMLSize_t  toWrite,
    const XMLByte *const  toFlush,
    MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
    )
    static

    Writes the buffer to the file.

    This must be implemented by the per-platform driver, which should use local file services to write up to 'toWrite' bytes of data to the passed file. Unless exception raised by local file services, 'toWrite' bytes of data is to be written to the passed file.

    Parameters
    theFileThe file handle to be written to.
    toWriteThe maximum number of byte to write from the current position
    toFlushThe byte buffer to flush
    managerThe MemoryManager to use to allocate objects
    Returns
    void

    Member Data Documentation

    XMLMutex* xercesc::XMLPlatformUtils::fgAtomicMutex
    static

    Global mutex for fast or infrequent operations.

    Use this mutex only for fast (e.g., increment an integer, check flag, etc.) or infrequent (e.g., once-off initialization) operations.

    PanicHandler* xercesc::XMLPlatformUtils::fgDefaultPanicHandler
    static

    The Panic Handler.

    This is the default panic handler.

    XMLFileMgr* xercesc::XMLPlatformUtils::fgFileMgr
    static
    MemoryManager* xercesc::XMLPlatformUtils::fgMemoryManager
    static

    The configurable memory manager.

    This is the pluggable memory manager. If it is not provided by an application, a default implementation is used.

    XMLMutexMgr* xercesc::XMLPlatformUtils::fgMutexMgr
    static
    XMLNetAccessor* xercesc::XMLPlatformUtils::fgNetAccessor
    static

    The network accessor.

    This is provided by the per-platform driver, so each platform can choose what actual implementation it wants to use. The object must be dynamically allocated.

    Note that you may optionally, if your platform driver does not install a network accessor, set it manually from your client code after calling Initialize(). This works because this object is not required during initialization, and only comes into play during actual XML parsing.

    bool xercesc::XMLPlatformUtils::fgSSE2ok
    static
    XMLTransService* xercesc::XMLPlatformUtils::fgTransService
    static

    The transcoding service.

    This is provided by the per platform driver, so each platform can choose what implementation it wants to use. When the platform independent initialization code needs to get a transcoding service object, it will call makeTransService() to ask the per-platform code to create one. Only one transcoding service object is requested per-process, so it is shared and synchronized among parser instances within that process.

    PanicHandler* xercesc::XMLPlatformUtils::fgUserPanicHandler
    static

    The Panic Handler.

    This is the application provided panic handler.

    bool xercesc::XMLPlatformUtils::fgXMLChBigEndian
    static

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMLSException_8cpp__incl.map0000644001725400016040000000070513273140100017523 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMConfiguration_8hpp__incl.map0000644001725400016040000000031013273140100020132 00000000000000 XQilla-2.3.4/docs/dom3-api/ftv2folderopen.png0000644001725400016040000000112513273140077015650 00000000000000PNG  IHDR}\IDATx]?oP9i4i;iiZ7`b٬,HU'$*T]TDP6w};C; aӝߟjAInS}9Hӎ|? =_Ɗue*;YEsYBėsٌ ɫYq !Gǿv̇خ F}qb]70)d-}PfY{4@}2ԗNIǃc%UImcƝ>xt9$ OVE*Û#׈r@l$PrHaa dZrqIoT\,tj2FAxv-Lp׌p TI/ \sf; jViTo^cpb]€<a՜y9:+,E f6NEKU}^;nZuUS4 ѬbN.kjT% iV )GJ@TxIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSParser_8hpp_source.html0000644001725400016040000007054313273140077017455 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSParser.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMLSParser.hpp 1800006 2017-06-27 02:40:16Z scantor $
    20  *
    21  */
    22 
    23 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP)
    24 #define XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP
    25 
    28 #include <xercesc/util/XercesDefs.hpp>
    29 #include <xercesc/validators/common/Grammar.hpp>
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 
    33 
    34 class DOMErrorHandler;
    35 class DOMLSInput;
    36 class DOMNode;
    37 class DOMDocument;
    38 
    47 class CDOM_EXPORT DOMLSParser
    48 {
    49 protected :
    50  // -----------------------------------------------------------------------
    51  // Hidden constructors
    52  // -----------------------------------------------------------------------
    57 
    58 private:
    59  // -----------------------------------------------------------------------
    60  // Unimplemented constructors and operators
    61  // -----------------------------------------------------------------------
    64  DOMLSParser(const DOMLSParser &);
    65  DOMLSParser & operator = (const DOMLSParser &);
    67 
    68 public:
    69  // -----------------------------------------------------------------------
    70  // All constructors are hidden, just the destructor is available
    71  // -----------------------------------------------------------------------
    78  virtual ~DOMLSParser() {};
    80 
    81  // -----------------------------------------------------------------------
    82  // Class types
    83  // -----------------------------------------------------------------------
    118  {
    119  ACTION_APPEND_AS_CHILDREN = 1,
    120  ACTION_REPLACE_CHILDREN = 2,
    121  ACTION_INSERT_BEFORE = 3,
    122  ACTION_INSERT_AFTER = 4,
    123  ACTION_REPLACE = 5
    124  };
    126 
    127  // -----------------------------------------------------------------------
    128  // Virtual DOMLSParser interface
    129  // -----------------------------------------------------------------------
    132 
    133  // -----------------------------------------------------------------------
    134  // Getter methods
    135  // -----------------------------------------------------------------------
    136 
    377  virtual DOMConfiguration* getDomConfig() = 0;
    378 
    388  virtual const DOMLSParserFilter* getFilter() const = 0;
    389 
    397  virtual bool getAsync() const = 0;
    398 
    406  virtual bool getBusy() const = 0;
    407 
    408  // -----------------------------------------------------------------------
    409  // Setter methods
    410  // -----------------------------------------------------------------------
    431  virtual void setFilter(DOMLSParserFilter* const filter) = 0;
    432 
    433  // -----------------------------------------------------------------------
    434  // Parsing methods
    435  // -----------------------------------------------------------------------
    463  virtual DOMDocument* parse(const DOMLSInput* source) = 0;
    464 
    492  virtual DOMDocument* parseURI(const XMLCh* const uri) = 0;
    493 
    521  virtual DOMDocument* parseURI(const char* const uri) = 0;
    522 
    590  virtual DOMNode* parseWithContext(const DOMLSInput* source, DOMNode* contextNode, const ActionType action) = 0;
    591 
    600  virtual void abort() = 0;
    602 
    603  // -----------------------------------------------------------------------
    604  // Non-standard Extension
    605  // -----------------------------------------------------------------------
    614  virtual void release() = 0;
    615 
    639  virtual void resetDocumentPool() = 0;
    640 
    666  virtual Grammar* loadGrammar(const DOMLSInput* source,
    667  const Grammar::GrammarType grammarType,
    668  const bool toCache = false) = 0;
    669 
    693  virtual Grammar* loadGrammar(const XMLCh* const systemId,
    694  const Grammar::GrammarType grammarType,
    695  const bool toCache = false) = 0;
    696 
    720  virtual Grammar* loadGrammar(const char* const systemId,
    721  const Grammar::GrammarType grammarType,
    722  const bool toCache = false) = 0;
    723 
    730  virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
    731 
    737  virtual Grammar* getRootGrammar() const = 0;
    738 
    745  virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
    746 
    750  virtual void resetCachedGrammarPool() = 0;
    751 
    757  virtual XMLFilePos getSrcOffset() const = 0;
    758 
    760 
    761 };
    762 
    763 
    764 XERCES_CPP_NAMESPACE_END
    765 
    766 #endif
    Definition: DOMLSParserFilter.hpp:45
    virtual ~DOMLSParser()
    Destructor.
    Definition: DOMLSParser.hpp:78
    DOMLSParser()
    Definition: DOMLSParser.hpp:55
    ActionType
    A set of possible actions for the parseWithContext method.
    Definition: DOMLSParser.hpp:117
    The DOMConfiguration interface represents the configuration of a document and maintains a table of re...
    Definition: DOMConfiguration.hpp:350
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    This interface represents a single input source for an XML entity.
    Definition: DOMLSInput.hpp:59
    DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tre...
    Definition: DOMLSParser.hpp:47
    XQilla-2.3.4/docs/dom3-api/inherit_graph_27.md50000644001725400016040000000004013273140100015723 00000000000000202490f42237298a981f1ca4921c67e0XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp__dep__incl.md50000644001725400016040000000004013273140077021471 00000000000000b39450ffe098a139c681fe2e5c80a16aXQilla-2.3.4/docs/dom3-api/StDOMNode_8hpp__incl.png0000644001725400016040000004635613273140101016553 00000000000000PNG  IHDR:bKGD IDATxyxƍRRRO1caPPPuuÇM<<ٳg'Ofnٳ X0B@TT466j"""7nXYY,--333&%%9::("rʤ$KMMe0<}tܹ ب:u;Q[ZZ;tRN:~ΝիW/Zh߿GRAAA˗/_|yPPJyvv͛7.222V^|S(ߥ0B+V򊈈A/^驢ׯ_---  r drII  ܹիWOvΝ;WWWt/_޾};:::""9,,lAAAwޭ >uׯCCCŋ˗/{{{0~=zŋn_L>=""ܹs'N~dt:Y@@`Μ9h'N(!!eyUUUgg2 TjJJڵk]]] eddх>|eyyyuuuQىΞ=܌nذAUUUGG?d\, vwkooOII8::^rq9ٻ eeeȑ#,P\\/ {Ǐhll***uuuuuu̗jkkktgUUUUp8s*AMMBb;A9RZZ믌qcW9s&_7n0voߞ1cdĉmmmyyygw8nǎ޽>Z"--- Ȥ_~UTTD2PeeeII'OEDD0& l wbbb) oޟBb/!/A6` ̿A؀_Z8):&jTT_ŧ} ,11JMg'WdwN>pWvŋZYqhk/;{`")))29/))0MB144 0BQU~_Dv??[IIF$5߄LPSr1NN!KMJLv0BE&w$ϙs,;,(1*j dEii);=~쩢"bi韞^4f!-`A9s?uij }W_2QvJHB$lm/.]ꟙYw50z 7f{&c!!!wדiDFnu`g/Ӿ~mrwiaqNTT()^VV`WCw3fGGo@".<RP+> S~9(1"b2'V 5>~kUUI륥pz7ס~ӑlxέn˖[ -aaΜ[NGyݿmZ!H$ɗ/?USnH$˿(oceS#"Nzjժ["`Rw8qo ٻb͚ق; "ݼy;w^Y3XBBx >A?HK+}X%_ߞ odM_t֬#ɼ`@SSO|T?1E$޴V<}:qƌCɝTゆ<0Q(cn5[v6s6lQQq a}k J y*+;bӕ+9 9:x{/䩞ͤ|'D"XX)0IX3 77Uy4f8**Y]LZڮÇTig{Z^{\ݻ%$Kg;46wouu-] A "*}mJ==Ս`~̿B w֬#]ձGDwnBCCc\]oXXm@!-XGhg&99XoEX4x*/YseDէOwٳ/_cL!,L | /ߪ!y{G.Zt줪*uPbLA/>cgWuP/]s&'?}z[OuP?C'mm@o }{<7#cͯC ߞ6^?޾|k̘16#c9o>x24|#0бyoc=AuwoŋP- X5X""xX]6w1oXa ?ΫWΝK=sfՊӇboKCh67ԩ""fxz.uh`m6o6櫟&OvMD *:c7o}jھ}rr|xekD bo.YrHLL Пyl֭aaf>X=--ׯ?XPaѺus?`t$::'y +*J>@'WIIn`pqO0gϊjJ}oEg.u :b6DFw+VHK%&z8a;|/z'##gϒ==hxsu\;ˋZ[;Nz4{7oʯ_3"bAqȇc9s4D?ȑ }5kfۿ:y26 @xEqqҽ{55n5[d>?CUxsDMME# D"a8<10OYYmn?x8%vvt:g޺wEJ:XC`Czhر@quq֑Bo@&w._~ Q HH{y- bou+>~:?ϟ0q8ۮ'9h4J M>0~/mtiM~~%m[AT}˗0 b _۷/69uBKJ*HK+$*G$TzxNCSUUb̿ubit:$ >Ē)A_xOB/4\ j@_ ܏{uN[Z:Whr`PO`唬R7x<p8EEE7S sMtt6<^@HHqT*Bmm3Ã㈒իC(wv@DD'M/ʿ(&&uKDߟsw*?} 4*^Q`m}!>]Zz?ヹoZZT*V IIQ tzKgg TKS(4R! ȶmN>5raԨQ\Xx /QRR6%膝.JFFFr=*~C!T*]Xu qi'n^VTTl۶m֬Y\X/hm~0kG,lll44DEEq\0sLxC<  -!%$$ o]‚0B| _w6ķ|-//_vmANhd̘1uuuKzyyM4iĈѣGp8㻼an…8wf>|;vl0wi?WPdH8Vq<766vٲemٳgUUU$iԩMMMWӧO_zk׮7oho{vcc˼"Aܹ(,--ySp6{qflߖ^95obbGSTTTQQ122w3gЯ:$''lnnieeUVV.`bb<$>>~ܹ+{+Wrrr ]ht:۷o?7'CGgmS?UTTolmmP(///yyy/// 5z555999GGG/ zzzD"Q]]=,, @RYVh~~~#F000x@SSӚ5kdeeUUU===8ի:::rrrǎ ;v}4}q8߿9 111//p666޽b ܹ3w\mmm%̙3Ayw-11QCCCZZחp\\{GGw^ {}b܄jݼySGGgȑ'N?Sq(**yA&QQzFt:}رٳGWWmu=}FwiKK JK,!H膠 fffjhhc;^^\X "Þ]= ''Gȏz]ԟM֊+/_  <UUUW]UU~NJJ. GDDhhh,ZX_Gnn\XQ/BSga%I&R =57ϣ/_\pÃQ(++اh9eeehINNOOd2NjhhXnECC=277G nj|5??KKK’> \x1_{{C1nZ[[?ٳӓYhӧO3۾};z{=F,S!_{6ӎX.ɴw\=F>|AQQ1>>-www_b:D__300X~}Od2H{n]]ݥKD"LfYmܹs򱱱UUU>TWWGW߿oE qRSS.]Ԅ~w--s>|0&&FWW71ɓ'xk,S wJIrz]gΜ{.#tى'i}/ p8)ӺG?\Θ1cʕ w5432V'^R(,2k,H\ݶmۨQ8Q_/‡2nG‘l i~͍dg>,5hHVV9s|ttx%ACHZZw*/{ѣTs IDATMLٽ{ {(*J8Λ0!׭M +'酆2gt:Sql o؂z jjHi@;8z|ϝK208Fh0g| dr"`9Rڴ8-mw>7߽#P䘐u֬qo!7 { Q[;[ EE/_8iccs=':y# ߾]kf"!AĊj45aexۛѣe9xqjj$\Ӆ|e MM6o;W+#cϞ=K8|)({B9?`Ѳ8@w{ӲeW Pxt [H T9aތ+K9  ɇU..ח.|h{pӘ1^i^^/ 0=?}UT4z{GUT4DFn0q".H߽АGǥ@ooF ʊssp354ܟ=%o={<7xv>̿}=Z vmݻwsz{G׷p? ̉`/hmH5Htt#VO찰F~>NpYƎ-+RCw BBsw7!6O/ۇѣe_a +ii%]m٪UTϳ{=z~mmKH`ϻwhXÃ1~/0gϿܴ)Pٳ{,6rrp]̿}*cց0,H W>[[_ TQNMEJbdec_cʊ|: *V\8Kccݮ_S]W^3F߼cty~>_0 !"2,;د&8).} ޺ϯli1_v_u mllxIHS9+~}GNjRRgo~E%>>A u?@4_~/_~1C77 ]pr2Dl: |~;rlϟݴɘ/ ;|`;, .f7@IHș;؞=ff?߻gqqaçOu55$8`훸̐ȿ(~ !""DҩT~x!gZZ6l1qjZڮ'l>=QXo`_~QB${C ͛r;@iiD`'55 /^NF /S~]u1ԧS׺\_l{;5& ӿc"-/Z&`i|h:Sl [U9̜Ɇ߹q\-C0j>;ց  1||}ѣ+8;=}QBBd$5C0 H2!7@bh?ɝ3gAOO߹?j Mpc tϿT*=e Ph />Wt:ch{@~fMinŽ1s&|$sijj>HUDFfz?CHT*{>ޢ@&w_)?r$BSӓ7ϙ+ӿsYBBœ{<ܟ8j'(Cǭ[o t~AA tD 矡u>A˳?-_~~ 3;7VXd$s04G3 Y1Bh'N<Zp8._t:bn>q-B*J<^r_HHmNc\JII Nxi0%K&}PUTTu XBHlniiϜ(tqHȿ\ʕt]iYԡC](4by \t:rnN+(H~Po(*J0  4F`{ΞMt)NxqpLzzׯM66b '>xu ;/M`ڷɸ-Lkg'N>^EEpmMMVBRPPP(_jjjPSSsttd\?vHHH#aaa*ʲz}}F1b/֬Y#++pW^ё;vXXXرc%%%ץ\]]<7߿5111//p666wXm۶ikk;;;w {=m&Ebb/_E\\{GGޏPhOck;cxN bx=}mmi2NNN /^@ ?nmm]^^;uԝ;w.\rA]]ܼ<}}}OOϞj UUU]rEPPϏeW!riyy_>x@YY=퍍KJJrss'LpAtWZE"BBB$)88P__,pQQ|RJJ AP]]]ტ7oijjg~(,, Eih;݃i3?%KHht3fffjhhw@ N\VVQwӦMvB$<<ԔMƇsIHH3/Yn&%$@jj* htQQOA H_)Sܻ7f`աm2`.y.:t0J~ERR=;;;oӽ +V344{lii~a|/_d2-%ȏ)gfV֭[ӦMC?+**&%%u ,00pt:}ٲeKΝ^x)e,7 PXXȼEO۷oD"B/ɿ%][KXuh`/lbѵ|… &&&BYYYFjllD @YY -LQQQ ֭hhh`YѣGh1cx|ii)ZXRR17 /Fkoo!h@kkǙ[={vssszzzRRROC5BCC322.] fw>3#Є (,,D{3z*䄪ɍZ>`hh쨩ZF>|AQQ1>>-www_b:J__]300X~}Od2H{n]]ݥKD"LfYmܹs򱱱UUU>TWWGW߿Y1,55uҥMMM߿Қ;wÇ cbbtuu ۙ߸qQ/,{=mf݈ ˗qvLcddTTT5~,13gno ..09m;Vs&MB{ݻvHkJKK8;;2vOOOeeeIIUV566k!1n8!!!mm8;;;-ZĈJihh͚5 Da222JJJ۶mC%078&aԨQ̽.xxxL0ATTTWWȑ#mmm]OMMt)t)cud{5tBBBF-++F&Yr00@}DYy[b⻟|/ݹ+c/--ş',`)YwԺ lfc󫖖/67=).=z@  {lcxK ٮGr^'o5GG8$僂S^T*}˖[..8"`]ev_ 7(_#Ņ{7ɓXA3g0!0rل˧nzkx)_:u4y)0rЉ#F7mATq=0p5Oy$&&|ꬬO/` 4|]sϟWP:G>1=+%ԳOq\A>qYs%7oSReɴa>CON̵Pm Ox<~ѢE]PQѸd=Q׮) 0I NZZ:,- ƺ aУ-(r2ց %˖H\D _nvm]Uwwt:qB[ZCC[x3L< _.QStiMRRc x,<| ՘w=f;qWӰg݋}}]ݾyap*;uu1hc+@|ĉׯg8̛u,P`͛==#%:>9w.);K)X ?`SjFF1ֱ@#0ɑ# .]RX~8U/ ŋ)h]~.ֱ@/6x ` C`Z` /pY^u8А ȑ# NYn@?_,W:8\~0p!Jovi0b@8898;_};p!z=!mh:+iX =_DE<=#6nuDeګ%%Mu8+vX$##~`/ [ ?M Cp8管!u8眐/W܎u8/JK+OH P/o17xVV*+-WYVVpLN/\xÁxBGu[0?^HyL|3] H:cUUMVV> Ye)g0(11`>غV[['AHIyofvL󏇹DÁ _ޅn5 ]T`n~+A\E]vB–1cdb3yǞ#-:/o(/feu֭s~:"`6W\mjj:"^Q(Xb:@Ѐ xxGFn|ߋXGqDKKͭ[o\eX9#8ߡd֬q{=Hѱbׯ?ߏ7o:>@cY01#G]ng&-[_XXuDSIXǏm̿C9mSӓ>>)AAUjfv2<فKÝF`%0UJ [}|CCOcӚgeuah9G@>[1; f%'{Ȉ[Z۷ 2 ?qnc6aaRXGq̿C2]elM}ֲiS՗32v;8+)sp⭮.gk{3 t$*yǟ=+r F:(30p <0{˗r<%3줧g݌ —9 w0e˦Z~ѣ:"|wwim0rxb޽yb_~$""agB>uPB 7[q IDAT;,(12r"AARS?q׸||8x~VVV2K[*)e xWylmg>o>y&&I`...ח-;wos`#LPORUtL;/=<,Y27'Ph'%XN}e\-nԗ_ΞM} ۶YXL:";Ԟ8Sڵ@%+%ed0jwǎ;w^tB'))wDPxQӠoZΞMq#CEEzǎEyk`p4n|pӃ[edml.OJXkkDze,8UVV -=x+\N.$[Y]8s_}r# SSw,]:&_pQ|\bzzcn5?_Uhh}p8 !Aܨ:`M Ky|cѣ.^LADTTۿHjjH/?ްaoB܉ w30Јܘ詤$zecc4AKR$Rҥ\tYYMaĴic C/k?k֑{^mnuL_?yy%=z7~‚3 9.Zx,8/wu5ڵk1VMҷoqp8yy 3_ɒظqL!!88>~>˗~Np8pʕ\ Ou&'{(qz믥2J**#Mfj+--E  O4AÁ1cd|[[;V NI},|!b, @ȑx܉z\njj.{P428.0B]H;wzyw%-[nQ׼8*tdiy+ 0_w)bӑop66L:z RVVh鲲oRpt:s@{CKKK1#*#,[Dnj"Hmmep8ߒH}9P5?C"l[Kx/4(fff,߾}C?;v{EsΝ;9uWrrr***FFFSWW?sLO dƒ̿CL||Jcc#ۚ 奠 //EPпRSS8&''ȸ^ G$T*ez111^3gAn.BBB׮]zohhkBOAqӺp<gҾ%//4D!ϨyI9:::99UWW+((x-<~uyyynnԩSwYTTXpaJJuuusss==={",,TUUuAA???կ^ .BFu;w9\MCPTTļƗ/_JIIv۞dXd Dף-fffjhh%4Uuִiz_;cam22 mL&o߾%, ߡ=_|pႉPVVD333rUYY -LQQQ ֭hhh`YѣǴQT@eeeK_͙3...8iC$00pŽ6YMBee^ !~C77۷o?~8!!-ڵkϟsssk^zϞ=͛?S-gffM":;; (qqqK.EۑܸqD"30WGEOOoݺu777.lp]]]uuueeӧO/_ӧ۷g=[l)..~ݻz)7/&MBwڅJ"֮]+---##gr{{U7nv\\ꝝ-bȑ#RRRƍCKPfϞ-..tRڵk?~ddee ܽ{ӛQF3w^d\5w2zhYYY7772̲? upcR[[[PP0o<8x]N=C? _X:t l A&!!ҟB:x A !/A6` >1ttt c4p0aaaԆPUU:h3 l_ l A !/A6q $|pIENDB`XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__dep__incl.md50000644001725400016040000000004013273140077020204 00000000000000c86f5eb7a557c1967eaafae8a1b322c7XQilla-2.3.4/docs/dom3-api/inherit_graph_41.md50000644001725400016040000000004013273140100015717 000000000000000bac427ca7c65110a82d8f96f0ff4e7fXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.md50000644001725400016040000000004013273140100022776 0000000000000063b099abb5d6726927019204de570d2bXQilla-2.3.4/docs/dom3-api/classXPath2MemoryManager__inherit__graph.png0000644001725400016040000001074013273140101022721 00000000000000PNG  IHDRp"-IbKGDIDATxiTWo5jd .(TEAE[@hRT- P{XŲ+#RAb{ E Y:M$imӝ;s228A2 h&Q o<}4..NP @ |wSNUeF{nnnEAFwU!j7|@F(8NQ F` h&Fpvvv֬Y?~o3hF<}AX,3hFYbE^^j4lbkkkə>}P(dh sshLcw)STUUo(jժ>/JH$R(OOϰŋүV'FFF{immmjj:pF'''\~!]H$RX,_ө_̩S&L0ys'@B666d2ͭl0TkH|۶m3Xw%%%>~ǎGG:wٸqcDD:D4-888,,epvv6pD"111111^z F` h&t,fտ9E "H$pfD"MBtt'\j'D՜2F uFF##Ba2FD^Z )d2EiiC_l QX,AbQ@IaaO@^}ԁFyKoo_ECՏ|~9@Q.W(q4QRPP1"f]]۷9J_f}٩6QAWh˫(CD^w74+: HCC{{8?+􈬭)o(`bM>=$,'@JJp YK(L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 (L@@04 ߨmmm= 1ؘ:* ~' \8nS 1ߡ\ w' 9~D>wtt##cz*9sbt uuu|8\.7%%ɓuuu?#Zχ2̚ tb;}tgg'8z{rrrШ˗/ƆTWWRљ8֭[aaa))):[^z5###222;;799YT;;!2 mmmx<ٳgvرvZww@>066NKK۳gB177Bz{{H%Kz{{x5@D.\(**ڿ4K~MMرcU)++ۻw9F SCWZضmDrssC啕wR4-(( ?ED"TTTZJJB=b$1f̘իW|Ζ-" . ҟ *GTy_OEEŃtztt933S"H|'bS(;!_`0/^`0ƍwqq9~xHHTTm=-H$TFJimmىLNNN,Fݿ/P?1z8q-_|>aO:U!aupGG'Oj|H$ L&+++LyyyGѶH$jll62LQ 5~x<r?C˗/сjc⒘8uT333,b$Ζ('bqA'Oh4www-[ƏQ2L.DT^PU BaZZZPPɳg&xҥKO:5k,d2_z?Htuu=s mmmMKK[bFGGGBO?/u'q,#%%_x |W(׮]BJ'j̘1˗/tppPB5hmmH$~m \]]4;s}؄aIm޽'N ^hF "hҥ:L\g:[zxxlٲNo۶-777<|H$to[JɣGׯ_oȻ[n;p@OOJ]fͺu 54 ;wnqq;%!!!!!!K#(L@@0QчR*_nnn~ٷoχTdaff>3 (L@@04 E4dIENDB`XQilla-2.3.4/docs/dom3-api/MemoryManager_8hpp__dep__incl.md50000644001725400016040000000004013273140077020442 000000000000008cc0bee7410734445b18dc4e7b9e0b47XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__dep__incl.map0000644001725400016040000000023513273140101020114 00000000000000 XQilla-2.3.4/docs/dom3-api/functions_func_0x70.html0000644001725400016040000001161613273140100016663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - p -

    XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp__dep__incl.map0000644001725400016040000000023313273140100017720 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__dep__incl.map0000644001725400016040000000024513273140100020720 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__incl.png0000644001725400016040000002362713273140100020445 00000000000000PNG  IHDRbKGD IDATxw@SOA.TpU`E"XZP"e(@a$o M篛ox}rι\ 􅈵d$4 Aܹv@F2$)$$D__k!ARa 22IIIYz5B z U.\8J #% +p4h N?g[CCcڴiJJJ`WWW|||aa!B377wqq!Hh^IgϞD9=y$H׿}s ,\ '33 ''/&ᇋ/rەw捻 /9RRR=z3:~uE%%SN͙3GWW<""_;sL=>}¹'ftt[QQ˫_M=zOmmmkk+xyG$9@G?fgg{xx LvqqF?.\0''s"++wzzz_|e_ CHǏ ƒ%KL"$$$deeяL&3""1""dr3Z׬YSRR20O,+..n͚5!!!ӧnnn+VHJJ4?//oݺuaaa|X__ԩjjj5jɒ%+ hOFmeᗀsKOJ}}q+jkk 555s!9jiiRMMMEEEP(1===i4Ν; jkk___UUՕ+W'H8uԤI/pb'!,… Jd177jhhܽ{wFFF6::ݻw޽;sLCC oܸ1{Mtt Aa۶mC7MMM###9ݽLddd\\\DDﵴ/^j**33q9l9uT''7o &}権tƍ7oL ,,,Buuutuu͛7g'NL>簊]/^.<Ec-dy`ee%VcR=== ֭[˗/Z d"?.]!++b A~ ˴iӲV1())ܹS c@ 4h NKKKT2:::GD"L&|yHH(Pj!!!!@WE^˹Zڽ{F}r9II[LMQ+}zIIm|q`߾s[|yyA0Dq܃&ifQFF..4ȃ`#;#"d 6ȮYsM(eBBLocgwz'Opꏡg2Y2=}p he~MJJwwǫ'%y%wb7BdTj{T7C ر*>シLPTjg޿u8"SKӳBdDDG*vHfŮOeǎܿ/H+,n~׆.#c44&,[6K5?sss<.^;s.܄3HAAAXkldӦދ7HCUU2e[D\Ιs'ׯ+/O=<:2W1̵C> 0>}Su16t:/INnœ1(D:ΰ9alqOXPX ڵg>s`%" ?ޱ#dWY[OzC%Aqc޾*<]Yyx3Ʈ]QY Qш1Z36o?:]t`k;iװ}\ CHl|%%/>:uEQg@f))IZDf#}6s,| כOݩ˗OZ#:HL|\TTo'sسǮ{yy5"2Ǡǎܴb]: [L7o+*ZX#"8{>|-WM$~m\77'111q7 j55T)`~ 7 "4j{cTW7_DZZ k-DA|HpuX;pocƌ^jB\Rwss Fax-wCW |OaawMLtL2 gM +a QSCuxE' =}6/i .xɒCJƙ3II+Lg˗ 44,,2%'\HsbԅΌ HzUf*L3ggfj}!!ACm"ϫhb^"ssw/%˺| ց:gƸyh8IC$V9*)ɢP`-MD1-[? II慅v-B$*wxP*!UUMlcc2x?cѢELx=@$fS(&d"Վ[Sx2ƣGRӧ`M d2\2J9517`bpppb=zDPjkktYKK U[[۬Y ;ٳ}%%%ذX,4AUUUQQXCRRDjYNg()bbs玭ceeu5Ι`55{-Y믿.((CX[[rʲ{֭BoV22B[3++KGGF;::hG===驩yxxpq\~ԔL&$$$L&MMM,+44X^^~O{SKK7| &MRSSƍx~l>@q111100IYYـDU\,9;;scǎ'zyy 0PjԨ #!!3{lllBB NRWWOOO7ц-^۷SL BJӣWϟ455q&.//n~aa Cccc}捦/iiiijj┉nIKK!45sn' |r:~UhEeeeAAA<{>s&[FꚚr﵉'R(t;;;{^...Fd„ 跥큹T'h4nkkcX;99QTA9b.\!H^B醆? HOOOmx|1?~ɻu}!hcc]&g̙3 cϳ CZZ$=B0圂91KkmA1s= ں֮=d}e# ]c Ѧ3._QWZ(Kcw/RS ۅboۖXZ>)KOOd׷!5kf22c-d@?7 'Oלx5_~bkӟEG={ZkU]o%X rN-:aXD 86ڒ%SϞ%>>ԩ;?lo?k-bزe˗չX *]{_6k-ΞkDGGOVBÇ[!G1{.{RgϪ6lup0  =`?)_>oATz yQwW/"\]M ]'Mrvu.3 ..ʱG."(+Z[`-䳠nnċ7ɍZX#"PS ЊOY.3%WUUk9⎈c,su| M*+/_QZDA&K8?R ,{ħO.]64TZQ2`ӿ*nGGd޴;w^_iT]@E8zԙ9~&Bȑ_/_~>ox@CԌ1zZˇyx܃'ٙbQ=W׈:ݻ_r`=\Ap"j=)ְ{X \Ws#3foPG4R}2Yk9eտؘ]hxg}}?db?ບxAdV ]}B^VֈX#De˦߽; R(-'Of2py.qGບBdvvii[%$/^T{xD67wnXdUjicyy9.gmm]~pA\@ Z"!A7oSY,vcc7tunGG1/""3խJCQ#D~~BiHPSGTN_L& @"'LФPZӷM) C1P[0+|PubՏ3ZK xB@_̯dL&HEG?$U&]Z~}J qcTU5؄y9(Wǽ~q&UUdo31HFč3Ȫϒ!VwJAw7W,XAџ|]aaw#"ПtIIPnEd#55(H=Zn..s8@$/3g~7bwݻP*{$Q^o߲@wxA{ n_P,ֿ]D\pbB/laa%g2#!A$6Ynn@!Éx/ΜK$Y2Dxϼ _Gw,@IDAT AKun"v={f'׮}ˑ~GDBD$/}z 6܌a?nnn7N%#ˡd.4[h`*D#yyy2Y}5eLYoߟL0!===0J33/C_QF_HAAHLKK!}3fu)ǎ}v38 ƀ#FFFH_O /1o -p(tP /1 @c@ <ƀ@x5999huuu% bD'%:! c@ <ƀ@xÐzYIENDB`XQilla-2.3.4/docs/dom3-api/classXPath2MemoryManager.html0000644001725400016040000006175613273140101017715 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2MemoryManager Class Referenceabstract

    #include <XPath2MemoryManager.hpp>

    Inheritance diagram for XPath2MemoryManager:

    Public Member Functions

    virtual ~XPath2MemoryManager ()
     
    virtual void reset ()=0
     Use with extreme caution! More...
     
    virtual const XMLCh * getPooledString (const XMLCh *src)=0
     Returns a copy of the given string. More...
     
    virtual const XMLCh * getPooledString (const XMLCh *src, unsigned int length)=0
     
    virtual const XMLCh * getPooledString (const char *src)=0
     
    virtual void * allocate (size_t numElements)=0
     
    virtual void deallocate (void *p)=0
     This method deallocates memory. More...
     
    virtual Collation * createCollation (CollationHelper *helper)=0
     create a collation More...
     
    virtual XQillaNSResolvercreateNSResolver (xercesc::DOMNode *resolverNode)=0
     create a resolver More...
     
    virtual VariableTypeStore * createVariableTypeStore ()=0
     create a store for variables More...
     
    virtual ATDecimalOrDerived * createInteger (int value)=0
     create a ATDecimalOrDerived for the given integer More...
     
    virtual void dumpStatistics () const =0
     
    virtual size_t getAllocatedObjectCount () const =0
     
    virtual size_t getTotalAllocatedMemory () const =0
     
    virtual const StringPool * getStringPool () const =0
     
    - Public Member Functions inherited from xercesc::MemoryManager
    virtual MemoryManagergetExceptionMemoryManager ()=0
     This method is called to obtain the memory manager that should be used to allocate memory used in exceptions. More...
     
    virtual ~MemoryManager ()
     Default destructor. More...
     
    virtual void * allocate (XMLSize_t size)=0
     This method allocates requested memory. More...
     

    Additional Inherited Members

    - Protected Member Functions inherited from xercesc::MemoryManager
     MemoryManager ()
     Protected default constructor. More...
     

    Constructor & Destructor Documentation

    virtual XPath2MemoryManager::~XPath2MemoryManager ( )
    inlinevirtual

    Member Function Documentation

    virtual void* XPath2MemoryManager::allocate ( size_t  numElements)
    pure virtual
    virtual Collation* XPath2MemoryManager::createCollation ( CollationHelper *  helper)
    pure virtual

    create a collation

    virtual ATDecimalOrDerived* XPath2MemoryManager::createInteger ( int  value)
    pure virtual

    create a ATDecimalOrDerived for the given integer

    virtual XQillaNSResolver* XPath2MemoryManager::createNSResolver ( xercesc::DOMNode resolverNode)
    pure virtual

    create a resolver

    virtual VariableTypeStore* XPath2MemoryManager::createVariableTypeStore ( )
    pure virtual

    create a store for variables

    virtual void XPath2MemoryManager::deallocate ( void *  p)
    pure virtual

    This method deallocates memory.

    Parameters
    pThe pointer to the allocated memory to be deleted

    Implements xercesc::MemoryManager.

    virtual void XPath2MemoryManager::dumpStatistics ( ) const
    pure virtual
    virtual size_t XPath2MemoryManager::getAllocatedObjectCount ( ) const
    pure virtual
    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src)
    pure virtual

    Returns a copy of the given string.

    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src,
    unsigned int  length 
    )
    pure virtual
    virtual const XMLCh* XPath2MemoryManager::getPooledString ( const char *  src)
    pure virtual
    virtual const StringPool* XPath2MemoryManager::getStringPool ( ) const
    pure virtual
    virtual size_t XPath2MemoryManager::getTotalAllocatedMemory ( ) const
    pure virtual
    virtual void XPath2MemoryManager::reset ( )
    pure virtual

    Use with extreme caution!


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializer-members.html0000644001725400016040000001371513273140100022467 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSSerializer Member List

    This is the complete list of members for xercesc::DOMLSSerializer, including all inherited members.

    DOMLSSerializer()xercesc::DOMLSSerializerinlineprotected
    getDomConfig()=0xercesc::DOMLSSerializerpure virtual
    getFilter() const =0xercesc::DOMLSSerializerpure virtual
    getNewLine() const =0xercesc::DOMLSSerializerpure virtual
    release()=0xercesc::DOMLSSerializerpure virtual
    setFilter(DOMLSSerializerFilter *filter)=0xercesc::DOMLSSerializerpure virtual
    setNewLine(const XMLCh *const newLine)=0xercesc::DOMLSSerializerpure virtual
    write(const DOMNode *nodeToWrite, DOMLSOutput *const destination)=0xercesc::DOMLSSerializerpure virtual
    writeToString(const DOMNode *nodeToWrite, MemoryManager *manager=NULL)=0xercesc::DOMLSSerializerpure virtual
    writeToURI(const DOMNode *nodeToWrite, const XMLCh *uri)=0xercesc::DOMLSSerializerpure virtual
    ~DOMLSSerializer()xercesc::DOMLSSerializerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1MemoryManager-members.html0000644001725400016040000000752113273140077022335 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::MemoryManager Member List

    This is the complete list of members for xercesc::MemoryManager, including all inherited members.

    allocate(XMLSize_t size)=0xercesc::MemoryManagerpure virtual
    deallocate(void *p)=0xercesc::MemoryManagerpure virtual
    getExceptionMemoryManager()=0xercesc::MemoryManagerpure virtual
    MemoryManager()xercesc::MemoryManagerinlineprotected
    ~MemoryManager()xercesc::MemoryManagerinlinevirtual
    XQilla-2.3.4/docs/dom3-api/DOMNodeFilter_8hpp__dep__incl.png0000644001725400016040000011710713273140100020371 00000000000000PNG  IHDRvu|bKGD IDATxw\27AUU+Vj] Zpjj{TpցV'8 d+{8%!!}ey%D"188EݼyS@(/z.ץ R,Jxxxl޼4&&̙3T*u^^^~~~UUUwW0`'ODExݽe၁{mhfbrEi4,AzK6jΨee-A'%%OgϞ7yTUUg̘?:t'O0 ß>}tȐ!- :uծ]D0=((hԩQQQ<EK.}wcǎ]tivv6@ 8qĉA[񗗗/^0iҤߒ6},_zxyQϟ?&Nx>/qgAA!/0mn{{o]OZXXTTT FCC]޾f L&3--m-W&k׮}ٷo_mmmttSSS/^xڵ˗/={ヒ׼zjeeÇwڕ&[ ?ΡCWE]reڵboONN>zի;&jOqƶm۶nݚ|…vB)BPE${PQ2]}X'AQL /_W[[[l} Դ^ѣe˖Ν;7>>֭[-߽{wŊFFFaaa))) mAmᡪ*}}}t:_naa`QąAޓA=$~a/`׮F'z0> ?`+;:::tǎo/2qĄ;vX_؈(!ymm- -]mmmUUU'O-iOVQVVV4?XXXU[[B esP(Fq,0 BAQ `p~d \x?0@VTTk}TT/ ð[nOGy%ŋ-Ӹ}XW^EDDH,A5k̛7]]]PYYimm 000 vvv:?~ٳO7+sU$*}ORZAL` A Y,.t:sf6hlOdX,./lnfh46bL&W @l'pXlTCB"jjd PU%S(d IM MM-jL"(b::j4C655(Z^^SYYuV9s,Z9s&>6Ӊ' Doǻwr`Q1{şHaÆ߿?22?~|ȑ:::QQQ'NW;zhxx8ܹsg޽/_ޑ&f$2ܹsgСQ<Aӏ;B esPN0\Ks Ns32:`pi46 x|J1[ߵSQ!hiQTTH*d2QKKH$D55*IUL&UH$@@::jmm5A45)$A]B&3VU5_z9u:s˖-yۑ2.]?022rss;r(SWW?rɓ'+**LMMG1uT2ܲaÆݼysĉo(00011իW+VK]]%!a <J; HHjk鵵􊊦檪f)k1Apd2Q__S__HK__P@KOOC__P@SMME'5wAPOsP英ټjZEEcu5&"ԤR \]E(o  9($Ys3VSC+.n󯹦.NAGGZXXXXW/bB1rsj}|A0際Y%%卢) bkXX趜pi0 ;v,À*JP"(56r(/]Fc ߈o""F7H `SKKKKJJJKJK\:WQ!YXZZY[9ZX蚙QuLLtw ɓ'-`HL `ؿc #PuuDSEPSC4433*E s"AhuDi4^b\.&gp_N&L _<*AP׀酲5~sQfaa D== cckkogmomoe[4YXXr=WpÄ@_*PTU{:P(XL-A㴴|54ܹb'-BQ,>*u D3b..f]AЗ$ucºڢڢZ<$KK=++}++= =uOlV1$Jصkz@[[K;Ϟaa@pvIʕ[ kܸ~|je/I |wo<9ڢB*(O/!RL08~~~Maa nXM)‰*H@QlҤ7OR0UiYY{Ywfb <#V^"hKT-[bQ B"|a^~u-dgWÅw*HgfF:w>ff}*ld0UDt:>7*7Ç& Ql瀺Xqq}bbnJJarrAyy|HDLL{:trs>T=x2"h-HD{{#ezޅؤIJ4$>_>thoY(vBƍׅBh520ɩW-,t1Z: #ɩɩͭ˫˫l퍝LMz2\”f͛os'D0tѢᑑ;yO3fWQQLW$1..wol#>~6l;+*L::jO56֖u0%%_qG pu43% q&;DC77 77K''>}5e6A' hQQmvv99U99%%mmU{{cGGGGGcKK=8 $Gl6/+,5(%(9FhzxX/]:?#b5|̌@@ vs| *"VZ5 P@^2᧟IlD"Jk29++űV]fxΟ_D$" gμ$s??5khTVV_Wt8:)c H`;h̲wsr*߿ͭr$sv6ROޑB9% ))~rD"u͟'ܥq?LNcDpp0w/0 9sbjjGVuJZO?]};@@PTe2`E4UDM ŋg^B!yz dnYWG/,,/k(uq1ʏAr95523K23ˊ1 34Ŭwo3ggS'' )jZJJaJJQjj۷e(zz}N8;GQl ݻ"[H$b||SYU;%!'ѕŽ\Wǘ5s  $㉉O䔕5jhP p>̌ 󅅅x>[}E}R77KGGGGc77KcWAW945K3+ [71XGaBпSR ~*Ч9렫e]۶ݱ7:SF29s/.ʕԕ+/@Q??!CzuR]݌>Tefg-J,\\54(]Y RX0mOAAMrraRRARRAYY#8:o=` <Ň MK+ƯLI)rsSEw w+7o7o]GwdFOaa͜2e Ν@JP{Wo>fL_ssv(Pmyc nn z2b>T%%'%&'U c٫_?+--zZzzzIJJQbb"|NOO.eG*rsBCO36w˗6o,ti" jm۔ KK/>C&N/ؤqv|'Or 7߸H-5 ZZ66RWW uu.,) ޿HLKJ*HI)ljbiky{z{z{g 'XPuu3tUrzy9d߭ iMo7Ǟ88ydy@}͸{7@sށb1hffL&j(ut4IP!z=7j~CB‡gjk>>v>>>>vf{R4(UDgg3??G//oo[Hݗ+.?\44Ԋw=|ոw^}TU%:jdEPڻӧaC))ټW>7~feQ.~~:9;sXlll;9BihZlFFO?.X/pd).Y/^(i2zHsjE ޕX<J!HwKM-Pgg!CmUU}[Z ݭ~ve=YR}q{čkt%hn{,/>okk鎎&ud434/0mmU'JPS =(m*^}ď5T} hhŝD$S-gLO/dEңdmy,oٲs**[; IIY_pq1 t?]Z xC)HMyhbeĻukʖNЭGt5NY۠n g*C`ooei[X7P1/?E?Οs#^*͈}SSet„vvmFCvAPNŽu+B!:p`oq1:C4CfBBnII}2Tuyإ-?yÝ i߸P~Q,8qW^3>oC۷l6D"Z_[ 賺wbݺѣlǍspӃsC ϟ540U\\̽lɊzfLoKZZqxi#p䠋QFssD#痔4J)J{^ A][\ !CllݻYc„xLDHiټԢrL랖rQmih`\y+VF)3}"jn5y w4;'uC( $;,}Ŕ7l6vxcݺpܐr`0o|!39 H'm{{8bl-I @?ϻq#Ν .W0thi<\:>Tb(/OCiqq=@GGGĴ_?+e {55WS/]Jϯqv6 ?+@ )gdH! GoKFFixС=U%.WWgSFr:A.gqxCh2/Pf )t*/^;޽,55S w\P%(%(7H$f<^:fM TW7f\m CB|5Ђܪ* nnNN&NN:BAsjڙ3ϟYW4!8{X7WC]OtSQJJMjj*^^^^6vڪQJY: +ÇW_]R[Kws5AAZZ 57bDCQCi~V$R4#ر[͚5(8ROAA=K2rYO3dz{v5j"U"p -zN&FN2p0g %PYZ]MJ{6(cs1{)S2.dr>TR S2e e'aޖf֭[11^*26֙1+8[a/53r~GMݭ}P$>gMF.X?h|Cz:ƛ7x҉ϐ)Dt?:y IDATvc3^}nU{{R^zRJm-)$g(W|aaa4#06vt4 yL&ԩgQQy<̙>sa Y!@@<=mv03;nKEaamX钒?!pbϟ;L]]iӼ~k(ɩJ=<אROb.\H:xɛ1{'ܔ҆3d;e K'ؼ9)Sn>UMME)Ƌ/^Lju3gQ uhG x>[^R[+PfiooD$vAuu*> np>!YhySѳgyL Jn*c,{Vdl=woSyBѣg_YE$6jhP|H'4=dMÖ.d}fLL}"rL;ǂr${g 8×7ozSit鈑#vD ޕ740l(A9(/ܷ/~Aaj \:fgW$&榤%'hl--Uww+GOOww+8ŋ%KΑHw8aO|8rIBB'N3󫫛[Ly__&H4Ũ9 :)yy˗*", j_2[TgT4]440W8+V,_''2:iFFaaCgQWC5}[J!ZѣO}!R)R>\MEpLaǏ'n|YFFyM=DUUܹ#E$6jiJ]]-zx}t:.ǿ z:gE3d9dGWV|]ax;;nyD|pLa&&c05߿`2R77 |RGGs-ufgW̟=(WZRTPVH&lm#![9V]};=<|ڵcdrϝ{yzFHҥ# kwoS|{P IɓSs`7Prܦ&!KLL51[<8 6u/q#mMӧ{\9 fDsjaC)YA/\HZ6f1 L,۲Ԣ"ohnÛ5}PhZ}3G#p=<ݳ'1(#"b~R|1 Vuro_ 55Pڳ|}k׽ݻVbEtc\}=#-==7S[%߻5&vտz >i/&8𠶖>s3tNvvhwY,HMyhbeMW[܎zcǴ`) "=+ Agoa+!!&&uݺ&QQaӝTKold͛tp8APdJ䠿{{'O( !!3!! ~~T*<*!Lk-:]ZڰcǴ=/q͙bE&]h4NNο oߖ<`nRxr}qzУ[o2iɋP{馢*..^^dEdy WJ\bO2eSa30S@EhЅ dG(DssD#痔4J)JTe9hLL?\ .&+ټԢc`a{xX\'c΂L*[ެZuZepE)csssǍOm5QP `VܫWͷ_mLojB]o54HQU 22kjyVHpֿidG |/b́G0%]fyƲ۷36o5hoÖ- / ===yGuTXXX˧-66팝;q(  H"Aݟuuщ55ȢEi sC15kvA4Au,ybȐmǎ% F˫! lp͛o'#TALzS ya^z͞= L&sժUܺu@ ȦcƌA)᳅+K.!7|Du_`DFFب988lڴFGGgܸqEEE䭶("mՄ/݄T-ԾV)~=v#"F߻An|;Dvt,Y-z}vA 𧥥<~X{^JsΜypM<ŋʲ'Oh755iSSSou֝?> @(+|1##CTTcccBBB W㠠/^*"{֖-[vڵǏ߼ysժUbTTT<}EYfI÷J]fMuZNqjKά־^MoXe GؑR(z:t7ol6!>>K(v=z6(,,lĈ] 'zƍ񧑑~~~@իѣG=zWO:5fQ Z%. KQϗՍn8*$zS+++#_677ɇ2Й**jI( Nmiΐ[.<Jiմs\2ɕJ=S8)UUUD X,B;wIWW\{@-[^;/'N쯭-yT^BdѢEw;wnƍD⿳DjhhZܹsөS^rիSL`MMMEdd$6m244={6~ԲMcAN8lhh￟={FGGgÆ |>ժUFFFVΟ?쬧v,v>|heeٳ۷o{xx &\.WWWc+*66MUUٳx oG\\mD޼yh\.WU28mmCO%o!j5ul=;bKUj#KAN}-?dh!]gduļٷog˗]u vUZ*1%h˗ϟ[ZZ>|?|rȐ!x0,22ݽNeWj+WMI)45!=KܯkE0,55Jb{ύ䘘yð&uuuV+p BBBFQPP/ر%333++;22D`v1ih4Çuuum߾}%%%_v-)S466=zP__ߑvP1c=zTYY2o޼2|t钕ݼy̌KeQ %::$`h:n8v5k5*777))_~8$a777P(;vc`t:Fϟ4i1 kkj>W% h"|>XlbaUL\kK;/a+LR ӦM[hQGktAEi 6~kŤf0S 'Laի|>J}%QQQ:(*J@dWZ_m?[\k;|@%K[ðs,y<H|-wrr믿%߿E=7ڻwJ|xwww]?nfsL ø\nvv6 O> a2)))͘1HeQ d2yΝ(tP(vr'O`_4#Z/ð˗/K\غWڙ:III+H<(2[_XF9jK;/wǁhӑ`ݼv(]oWpA;H $.t钑0lK"HӱW|AJXQqI|UFT*Ĥe =:u*%um\TxuuP(ʊ%'N{;cL&=}?. @t;ؚԻwoJnnѣ p)%uuW2عs^Ǐ,,, H $B?c޽EwK\-ȴN2K.7lؐ~z!:x'Oۃ6/|Jm7nܸ:RlKJ\mU[گHhܶmիW)JǷkD3fx?~Ԕ:~|."Z*K\8dȐԌaÆFˁjjjCݺuhJs7oǎðo믿nL0۷=ZחN?{,>>~„ ,ؘH$~'Ǐ-[ދ_Q^^b`` :666&%%žΎV6=mڴUV:tHjppիWoݺ5`Qmh+QQ(444̟??00"qW*>I3gfeeOoDc/|J|/-VYkK_PwrisssBX:ԔzҢ y/(hII|QnUEDTb5~ׯ> )))..Nt1hGvK.rR]IrVIEjkk˟>}:qĢ"57n1bĽ{_mnn.z;H8cǬ -[f%.lF|"ANv=@/k͚5hw)ׄ~JHb +jzPũ-q;J8Bi[yb8?efrٲst: }uzP%bvEEo_d @hjj-f7m$qs:P$ceqFg˒HF9Zߵ1 9(U2ݿӠA[ʺlN/=ԟ')#zyٴ~  5զ:{Ϝy!p HV$%FFZԮ꾴:D`d[.cc˗×.O,8IsnWگU'˅z##, Xm H$DDt)իc_!Jv4'ռr 67=ǎ%;&~X`,h  j@rcŊ _AtEE|A H$ڵߞ90.]PyGAR z2G0AI6|2zO?;,&*U]CҙBM֙"l6&եaN ,ׯmld2.ѣG>|(Ef0T45N&"DbOiR9tk E p=:T]]-en{kcf:+W~C HV7oJ mm\}d2[>%/-wf}=sA_"o/>d46Rjk5?~~]UQWF$bTR+*Y/J)M4C2̖3+DQ/).,VVj64R(BN552 gU6Ҫ9&!%%yy|i!͔7oT.hjjO y 7%07&;2?H$>_qu|fsD­[o/nرEyyUJ&Qk<%ZǏdXBÇ|`ib^f׫FD>_ "L&w&帡/ݿ1wc92QAҔ]I C~ȑ}D%HL&W]Sv#ӧ{-ЖH$ˋ_D" XLLT ׯ?:<;W` IDATo|PtC@"Ξ 䶲tXIIãGٝ, 23K7lޯ 9󢱑PD5}B!ZV0{Q>+&SS͛G|?zw苼}[N"0 +.S֜A<e0=%1 D*HTr%k Zc0.rsR,]LWC@@VәKȢB!z+8Yd nz3eʟuu yGI۷ ;YN=wD'~X=+l3A"p\t,vh >_xr ass &śI$ȑ}~!@*[p_v!d2D )x"hgg:3}"mzƍΔ I׈}nXVUe c'3^ky_yycff7)>% -DI$CuPRRA0>_xJjcF$fC$'0 Xq I41 ڗ޿/[%A1 So|c [_u)Stt4yxĉl> ?%ټyҠARb]#?ݻYR8 GaS $IE)˫DZRR?Ix:Pݹs/BCO)-͛/t)9/O&$ 9(>V20,&&u/_9ě&OpM"ӈDD/@"_--B~?K N76doo/AKhbbn[*ߵDܹӦrwL۷Osp0Ll.I {|^ ݋획jh"m^g5w˛7%0 k…&NlSfH(D۽;.$g˖]}h͛oݼ&9yk?  /?ߙy;VX]Mp!LށHDY.HEJJ;Ξ}S/\SRV\`ժ+˗_{ߘ%tu5ptz 9rÝ;Ǵ.̣O}ΜSYY^WuLD@ehUWGw2!obSU-sPݽ }H>'}󍫼:z ,]bׯ/SzubFٰa)uӦ卿:AAdhU[砦:B!ڽWJK.=UiS~pLvvŜ9H$bl cyTi;򧟮;80JUw8̜zzcTzD%s.nPV}=EpK }Z_ߝ~bbRNܹrB]Ν}FwTJ&Yz\ 251CO^8 ( 0]U_pgʔg.{7sp{gh)Jx$DŽ4',ʕ|~F_z{BCOO}\e-Q*/o8@llsiy\,@tⴴ)SlhG e`SxԔ H-ѣw]ρ72B!fMme$s*]] vSeqqGw8T;k[]>i(͸-IP:Dq׮ gbsޏ]? #ԓxŋ^rٳ;UohPa؟>=ηn-V[<<1MݗQl " گ?=*c~lѯx< ח/0s- Y3fD'$^ּ v;t:g۷nݷRSSwD1ci Wށ@_Xe&&AA+$B!8%ò% 9hgÚ8~#ahDq=Pq֊WumZV**:n[@ 5M@Bq5RHrp>Ors=/ܗ}y1;[K5hYwܸ߯]ԩɬ0b[+zDۜ4n]>r7V,_> msZR,>> mCmʕe~~&IM-F@E; di"-x̘C4!a֮+LfMXzi\hRH$+Ʀ|Zb&8msZ d%0ۘ=0(eƌch bqР:9KYF eL|4 ƍ 4@U`ڴHL9 AuT{w%Fd93$'hh-gϟ6CCBG8ZlѢ3&;| (,VMXQDoH6SYɛ8Ǐ%F\ B:;qbє9sN&&fm#FFc$ོZ0Y*_nm6~>M قɓH׵eVA" b-\Z@x&/4+J Bۜ6`z^T_dG:4cҤEIGA!A! tJO/Ѱ)MHdKM 9Gmmܹ'RyLN Pv`I6riӎݽOg7, {odɹW6a\y ڧgRRziDDӧΞ]4rdg-tLd2狊/`$ >B%g7nY~ԙ3`q z!Հ`vbU:s9ttR9fSWWVܳ B?V|`7Tltd`^gWzy6| E.h`OHXO#ؘ]/چTڵ7ݶfT3mHrN_}zzISO?ˌYީ 2Jܳ'lذNh^!j2|u^x/ЙCŋo6n۶OF&՛mG,}[ԷfLaxÆkϟ <"I/>bcmQ`$ԡJ.<Ѝ+\6Gxy{p7m @,^<[o`0Px@bu>s)_:9\]=1SKz9=z㵒Sd 4(\J=gZ3gw/m@,Y2x-7Μy-AffIB4bD`|Ӟ?611GvuFUJB Xf͕ ED >{v i*5Ȉ!t-[[1:,,6D(ӠTjP^{oZeKU#fГxqk޼CmAQ;qiNo<Šm011?_};Klp`:X @MM m!L iIjB*bř3\,+R0sf:]]KZS\(<7d2yq1A! t v?{Vo55.{իG=U~qܟ;p}m._P[؈͋JK+F+; (<{Jz=vT*_r.#G::O!܈@8y&/4+J Br%^-acV>^ӧ,C!3٣mZhRH$Ӌ_K>.*w >.&&y!vE$T QQϦM;vj}, hv4c e^^dSS=A%܌/\xreH fΜ~-l?Ol???]v mCTհa|X,&,W[pWu~e9r6ի/߽K˖ `T[C,NSWGGM*i?޺L-h1#K_GK[FYe[-l%$YP]Z~-ڿ$Wxt o͚-i?QQQ %1ٳjB/3X1u}J!cO9mF%##52qKÇ>L&֬V /J?/ <<@Q;C023&M nIc@%&f}ȈfuU5 LV rO]\79mCU#c^Ū˳NIeM*/\ҳfxt 2ټO=Uh92|u}{gg\SSC Eo[A:|A;JOR Jxݐ!Xl"G8sQQOoS;B^SsZbF<}ۢuZж ߾-<mC:Vz ?u /~*o6DNwݶuT`oo۫V*{@sk*Çk\6t RR ÆuB5̵-[ϟӟ=ІβTbwwsX Buvjnn޳g_~EX0ܰQ0LnnnK.(~Bzz lHT5M@ XvE"QSc,--ǎ[PPV9obt6\|"m+fU#*lTy֢ 6h]PXKnwi]~wo;y[. __u6_zUQQQZZz>߽{j䣚=z$%%ݻ7%%eƍ/^ dHtť\gZxq-!??dz\7U6eŊo߾~zqqSnݺnݺFƔ?}T.Ϟ=[?>SVƝ8;wO ߼yvSJ 6lPUZ} &&ʕ+jÖ~| c{Ldg9;v-'R([,*(n۶ yvHRE@~IM6)>5j/%|n6_ (l&O>aՖ6D o޼Q}kƔBVkɽh'fo>|_aaZ;:oJ>jJڃN6ŋ***+zi-n|dLK+vp!5HVi!m"8sfhE!v\&68`0K,s… ۶m>g[… ۰WŸbbbL‹WWWϛ7yڵ"H*n߾vܹȃiù1ӧlmmsyKK˭[" $ɺudu$ rŋ~7A}aDooo믿* u떟L^rX,n`@yyzk,,,"##l6vEE' ""pݺu311qppسg=zŋ8 bddyy MYzQaG~5|x۷WYkOAߔ|s߄M=SA/LOQZ?""y6d2پ}|}}? Y IDAT-4z:I+45Lw=]h/4itrwSd2i O0 '%%D\.A,)/_C}}jj* &&&UUUЗ0R9iiiȷτuS.Y%jtcc3g MG;w8::"4~5U~+**8ɗ C92 b_Ҷu_y8;ymk;R_ׯmll._|ƍ0 _p!$$5\eff"cccbcc#k%۷ȥF:W̆S,nݶ''EMG=G34#ZK_Ç-,,wQ7::Zٳg_ՠr'ahyB;GK^i:Dwt=/feLSLM 6*rrr "wC҂?ov5[2-8dkKKK|||#'Nlt:_`nnA@hI~ Q$8# [*iv+G ~ B˗!ݻ֭[i4ڦM֯_߰w/ NGGG7?A$ɓ'o޼qvv4h"g5Eq~wp &$ vGņ)wzl F_cbb [ՋϖupBŰWRR8B /tkE}4kX+4Ek=WcvEtiᰇ.?y+ I%%6r`>vؘ1cfڹs" PwPőԼx&Lhp8\~~>Q^^caa!r$--m݊s5yeee-Ylllzy9F9͖@ ȟN*mSP"ן9sfFF9{M:uݺuo߾l0SWW'˯]p,X@R9e'#T*߽;~K3gre)laT[9J<`֬YgϞurrRWlj,{̙/_8q90>++ y[,WY^) fh%ڋv A7yʐ}編^uAAU{zTŪ,++{ĉ V^|m6&9lذ7niҥq8ɓ/^ܫW/2‹iӦ\ 33s˖-f͚3g͛333333;dy>H ܹs|>o5iҤ7hУG*i,QQQ<OܤM6)j4{P077iE:] р*033;wiܹիkΘ1Cbn4l`Fqu>___O LLL8.[e%o?_?>'nxZo]___L˗/_pAKl j?pQoɒ%֭uVeeeBB¶mې-qŰ'AЬa O㏇!!ιzȑBCK?v]peYf1 5k:wlbbk׮ZŹȳ AѣGW~q3gkkkUVՉDk:::ZZZΘ1"-wE$nݺ5Xxk5'HBٖfff-,HfccbŊf~z#Z偊?[Tc bllajxqA+++3fFK\e``ǤæN,۽~۵yWS-:oJ>R9 _+F ^`Om!r<$$D+m:I}y{{ a_ [_M'yd|䝃oyI&*VPВA=9\W[6D;MWE QKky{D{!O|f޼(ca?U{@@}dJe!!f.횋Gpw ǎ=~%bmmvm @ ^O?Z~-,ж>rܫ*ol}B3PAK++*iF ƍvzJ: ŋ^ҩc^S,J@Uh1|sˇp rN% @t=ߟx`o/?TA!:th#q޼S"DIS{0^UU6@&?ޒzIn,9mC: ogsȈf_ ~?c-##߇h/AeȈpļΏ?^[ՎеK>@Uh2|OջM+[Rcbbjj-Ee wwcƦ:ʕ!ϟ_Sa@2,G8sQQOoSu{6\?@HH ڶhUjP ߳'W&}M>!!7H$/ʸq޽xd&3%Y7n>7-<,u$ٲe\\nm XB4sfˇ[ww_jsbOT;zpqqz̅ Ǎ;gڠ WZ ^id4_顡W|裄<&0 ZWn.رxA7aj,8}Yfvm޽wM6J`03f>q#ML 6Jbƍ1WlЍ`:Z"aLL D2 ^NdeaXD Aup 8{yyyDݻΝ[ԡrQ?d23/^\ܻg0 ϙs2'R_LfZ(3g\, s!HbJ*<¢=W<յ=zi(ohh!TߤTDEE-XKV-\xȑCh0UB#ll+r9{}UEV%]wXg qt\A_MaX`iLbECZq@;Q>29|˖Ϝ2&*ԥA!JK{ݱcsFܴ#1b_-12Bb5d_&%h30K/2 Qdg|Pلx@ ٺ5iqt{Ŏ9̬Oxdɹ~ P7R|޻!?w@UW8mܸ wwD'Ǐȣ~ZXedқu/.޼z^ǎ} &%H$g>ǧ'$dutzexdiժVOjE"hDwfg bLP)__{7,_^^?>98jUȢE:fF(GGG62>9 A/Zj||Zxm5Ҋ6GGƬ ܿlyD&*1.Eť߾bS]'OjYRQDWW{1.,фLM))qq7oe?̲ĉo hp0<$\\zz}}( Źsg篖 ٟUcrx׏2̏PLf/OzŃ""RШE~O7tqٷoJJ8sDg. tҰazO^oيXfn< 5()SzPAvv:VqmSY&ma GǍVXX` .B$=Ouu[D" A8kWS恩@s :25JADt]k֮rқoٵkzӧ_ܹnnn4o^A`KA!zbYYeW0ϯ[0:))q2."|.<~ AЬY} k@&z{ZB88؝J ?9jcҞ=ۨg={;aR!>+k>+ 0<hCUِ;wh-\8pqȓ' uWhtz%ÖBqں+CEEl-g84%K9s<9P: cbweh߹sر]v߾އ 8?ܿ?!6==L,>{!..޽ Hҽ4iRI4|hР_-gϝeeـDF7Nd2xPI6UIQa=USGK;xpFoZ@KP! Abb,7ynť b*5(<|@p0H:iP&槟n޸vΛ7SnWZ|y@t;h^ݧH9=..L&4oخFQ-u3g3'O֓]+RR5:a 8{v!*&Gl۵kҬY}6GӴMz6D.ٯ">T"3+:9}N!P\@dA oߺ6..u8qbS{ AY"<N߾fn.c^k֌tpTS#ڼ)'o6佢 /?#>>cƎ:fLWݝm7/]zm[T֭7Ν{ٴ:,YJ,Zt'u抶9fS͍u ŹKg0 PpVV[op&t7ڦZA!;wNYwڴ^׏V(λwi[ި߸q̬Y}4dHޥ-Z}izmK#G}S<W X =:{`Q#@z L^Zʥ+8jPJM˗9O/.fH i`ZQ"',Vݖ/gpllʾ} orRnBBF\\ZRRє)Szsϋvŝ:ƍAAtG+oL?䭙yML\򒛛ɓ\]Q QffY]]=$}XՕL9"f ޼{*ի:btq4oذn.jB{5(D"M|6Ӽy W{@BM(<|[ 츸Wrru3:$Fe2Y'c ؼiӘ9sAې`:x0qd,g{@*%}1s nP853R Ec߁}--;stv ÉO?2zΜofm`zΟ?<|k!>Tǧƾ-(`9;F+\!z妦:_J'4(-Xd]Ij!@zYYeBD8#Dp @LˤJ 7t'UÈ~$Ə6o^77S>B,̘g`6ј"62߽aEX-=na__2נIIg tw D#l-I! UZ#LI)|(%0-X  QQD4(X,};?. AvKLϿLqݖ-6Rhkג >2$O8iɓxlhE 0 3 gKJeeShADt7Ҵ└ vݭGw__{QZNjPII/&I  a~^B,X0`„Wr89 ..֭UU鰰Zy1m[ڎjPPf͕;w!dժ:] HOԈ޽+WԄo6((l3hB8+ y(edrKK `n\;HiaC5(H${vjҋtKK ۾za̙}f{ m(7RkݩԠqiU&Н;K[`Ѷhg-\x=:g ?i#@z~F)D99 BL#Z/B"c0dλtqP0h>hP11׮%2ICK$ǏlaHH9  "ZK}qqi 0zv>dPmi ZA'OsqBۜVg#efq ^}E!#vQJ*@_nxrv&32{{INk/"K=v.M,vsn(7k^]z5#ѵ hJ{ލ|TR<aЩS@C`y @O F+};-..bL*(`UVLizkI ,uu/^$'$d`0AƎ:z4!…?xm[Pu[{4(-X\RRN>7 =Ry^N+ib&jBcӋzÇʜ^I3޿/G, S'GN}} h P1zA`NM-{ϲ02da:mNI]όO8v߱c@ܺrizCch_䬉aTԼGti Yz?edDE ߭xNg0`j 277&9tR:B6$7y~YopX j!6ĨS]]AV||'ᝦL1x's3/>;jᙺ2 TQ?fYXhWI!RBqBԵ+GZL&/)rs :AWVWBdiikkcgMvr;"N*K;##ˋeOT?05O{H``vr"C4)KgZJJ8g$h%ctR[V^^=g Gxܢ.]QAK&$d%ۓ'õMlBV,)D#K bvQ]\.)0ɗܬܬrqh9@6D"KN.|ý{\&fjj6iRȑ`;A}ufj^ɉڅJګEIIN?zi?נHG͞W 0DRԄ/Rww)DfpEEªVaaUAAUaa- :9m<{FGjF`0[[}Nk-~=՚J :;{=zтwa `""fg?MKIfSldbgbie%a\]XE8GG5D^4hrfݼZ,b}}MѫÇʘ䘘d(==mUիI6\Z&פ}&osQQQ z#=h%B"p(R P\R)) ^s: ɉkS4@/u)w22Jjd¢gOw*ې!.P\''ťť25" mP.4Aa>u?2$gҳQ ?a.]AS_/d0x ]\AwKK$I&[[ M//2@AU_wZҽ{ޕqa0++S yЀ@WW eʔTjJʅp8+.<N߰aAU *W+!!cÆ˖ E%Ow"̉QLM-@*%!۬D"+/..fWVL~ !KK;; ;;r | AUX,} ԤB&x7 гdH&z{ZB88؝J ?[;/СQ7UKխAss aǎ_tQzuW(O! v SDD4YZʕ--tw%:РE$$'޹UnaaD"` D]] =($ X,}C\\ڽ{"{w7*5hҤ /^W@ߌThmPquW:wvϹvvYtKz*RYTĆ>mR:2Ū)+㖗WWTʸե, j82ёDrpD^8;[h?@ja<~ѣ2p$ (u@ΝBR$ϟܡdAƎ:j̬- ͛cccSfctKIRI'@ g~Pάz<9Bq1<^me%_1oXY^^l }ZC'-' tEG 2 p''ңG`SΎW3=8oخctmK۰ᚥCֶuhJ^Dw6n 0iDœ&?;  HaUVʸ弊2nE$D''#yA&[#4V ʳ˒ _IM-f00 cO+͍;wvϞBq5i 611+>>ɓwx|(IO/IN.eK1^""ёc,D&Uh*{^F\\ZRRє)Sz\Ko~/L2_3֪D0.< ##* -55"ҙYVWWc==ȣҵ+ܮ]5!Ȫj >Uf *+yUUżH$AZ,eiioo!Ay#@ d>dOO[OO[gg+P =|Pv|3i.Tj^<ѣ͛ck׎ Yhz?ǝ>|۶kcKφYYeBD8#D ͕x 'lT*GZ"=rKKc{{K22hN$R|P]92T*%877kOO[//[[[OO[K0*D^RXX{{?x0ĉ;urܹs7YVTTGDDPyt*5=6hRz$sg'BVU Ls]cDL1#-Γ4h_x<7d0xaSSC,SW'Bc~~\]0m 4Zɵki \&{x6j}Ŷm7_;McܬUnI4WK4 mc& HOT^V9F+a0Y NB&rGDX5lTU xZE{geefmmI\ZD&x*:@>R_/H pQA52c0XH" 20;8X4ܰ7\''ť߾b ",,o1n]j[Aa|g]*5himj55wtz)DAA ]DŴxuu-RǫΒCjdDǹrKKD9hlkkłWA@S]]jϪ gll@"9`0uq$O@A YvFJuump;4n\7ET*|~+ʗ/1XU_[AkjDVaˇ#5IF)D99 BL#T9[\p8FD2126#ͭ涶֦HtL4(0>vaD"rk\au9:R 4ACC<D&̬LL%L q: ^,-M( ťATdʸeeRny9)f y<&JeByV$ܬ=Nd ggRi3|)D"D\h}nn66fh[2`rkD*6D033$MH$SɔD2'L#DeoР@=9:DRldª*@$Y,>SCX\.X>hloobTvr"Skk7EysϞ;ʸYY:͙M`MKZєյ<^+DtguumY&CCV.UUldYVa, AL&o8jd'Mll,-L?JXFԆ%x[, ;v$&&O8qx<9ۛN7ȨQrrru~"DP6PjjDN777004414&MDcDnHA'@,ckknkk*AUU7d2jjl!W+*+y<=b12 Au*3552525wuB4F&[nW<< Ur> ^e%pB>_$yr PkXԔA- C4x:t觟~ hΝ=Bȑ#;w|̙ B4|k׮)4۷ t޽V^ cz冑:>QU8cc$HiaaliidaaD pP$M-,AtuZ ~<7F(s4ZUTL>#5  dɒ … ϟG(u.\hа_u׮]ȴrLL̔)SACCCl7nܘssӧ۷ACïH TIР155455tv&5ÇCBv>>>yyyUWWWVV*b v܉ׯ@ @y<Ǐ,Xݻɓ'GDD ###9ٳg͚ۿj]ŋ@Ybep8ɓ^ AP|||~)wvZss &@rݻݻ/\ mhP@7 H$ۧ5jxv5x%Wvtt y_ZZ mhP@aرccƌAΚ5kΝ'ABp޽#yŃhQNNN#"Kh@Z Ū,++{ĉ V^|m6&9l07ztRtŋ{E&^9**)MJJڴiٳ h)|󍃃9sRRR,-& qP$^#D9B 88xlŜ@C[~ywo ?>Ϻd^vͲp84~Tf(84Md[*r:^.`uvwVt*Wx @h:(p#岹ѳuApdAM 4tPB{:Gw:/JFQ[,] $#@h 4tPBA z\; fHIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSOutput_8hpp__incl.png0000644001725400016040000000731313273140100017103 00000000000000PNG  IHDRp!]#abKGDIDATxiPSWO-Db"ی2P۪nb+qAT\h* 0%Xm+ĺZ!ʴBؚbr^co ӹO99\ri!T=TzPEY40!\nVV,nb8 r)nll'n !n,9cǎY4*=TzPF.\bHqqGd2wHH֭[ URRBш:T[[{//0AΨRg\oggg2$U !hڮ^TXXNMMuqqINNp8gAAA]]7|CBϟ?xx(RY__o<ӧ?ziR) IL&KIIDyY?2߱XYfE8qӓ=>>,K N F3000c-z"CѢDd2nZYY^Z,tw]j'*JKKMJLwލڸq#a|G}s̙q^GFF^xxX-eF=!\nGGBhppP.skmm ,PTϟ?G =~xŊ㧥=~8...-- Ng"]FX333꫚K.E&//5'dbz2 Fh4xNS/󝜜/^o?Ӈ~xm3ә$55' :!lboorJR4+S{{;A9::Κ5E넖___␘̙FFFܹOLL,((HHH1?B_\.1ӋٳBo5%X0 X|9~qy022rK>?<<,Hx/^4mɒ%jtⷷ㍶6\xRzS詯O.2lK۷oW(moow^jj*͎&)/++ߟqEN0s5k;vZ&={ܹs&nZT*-Jw}7n 1N!ֲg&rssp}nnnQQQNNNGGgxxMlmmD"QLL8UUU,))˓J...aaat;w<{ >{!<<<|~ll͛7!IMz:u*00^ⳛqo;X*R4!!j¾A.~~2 @OT99a-ozo߾ k\@%'J@O*~fww7$` illx̒ݻ gyVE?qcpl2q''J@O*=TzP @%'J@O*=TzP @%'J@O*=TzP @%'J@O*=TzP @%'JsCܹ..{^ѣ4Z/em<}*~_l}Da"2lY%μynì=$.n1еyzL~=ГAbc4alڴdJ ^tksZ 'c-!?jFyϙ3k Kr@Oƈ"ˣiqq0d 6q2i֭[8Y='lڴo0_6qjr@O&XV`B x˱v@O&x-fxBOu947#֬;:ΘZ@ ;;5mτry<qFGG1 ۷S]56::J_u7ZX?TzP i;v<Sh72.$%jւFwILL1r>a FPQi7l/^`xb:tȐE>sPׇ߽{wzz:?I>dEEEAAAx%zxbcc610]]]UUUشbݺuz_jnn꠮p]`ARRa)))ccc5BġF =r䈡ӧO-*** B˾CCC4www77q|f}X,NOOvuuMLL$.>]/ɜ;wnII BիWz{{{fΜIňBHgrGfff*®BRRRnܸa(_fƼusqq$ H& GGG͕Y\fO۷otww_ulllkkkCCCPPÇ>sѣG$ɲe8`kpppƌ9992fppɓz KJJ/YmH>|!A6ZkѣG,xvUC1 ֯_?00pU*#Y=zTѸtǧ7ѓBro2 oWVV544`w5F%mmmO:P(4RTՆcccr9z"q4Mtt4HHH ע]LPvb(&X,0LVcVZZ1P' Î?`0 ${x}*dJ$8^ݿ?..!$$͛ܕJeTT&MMMSRR|]&Y^^>9]ҥKƳ'I!D΅GPTd5F#C !֖~f7EPTWWv|p^|[ꈈ'Nr . ^|Y__lٲ={/t@ H$Ɋ+veKR1+W2LJ=!!A*q DJ%o|"k4ׯZ ,m&k!~X,r}}}d73//H"Oaaa͵>>>Gk4. 3g,\;OOO| 200cٳg'%% =22rm6Bu0 +--7oE"^kג `XDx+W:::b:zr/..1cAXjkkt+W,5̙O^Hn$m XQilla-2.3.4/docs/dom3-api/DOMXPathEvaluator_8hpp__dep__incl.md50000644001725400016040000000004013273140077021146 0000000000000012d5bff1239eb59b47fcbe8b45a8ff89XQilla-2.3.4/docs/dom3-api/DOMEntity_8hpp__dep__incl.md50000644001725400016040000000004013273140077017513 000000000000008cc7d4fb544602146f3870601eab0b4fXQilla-2.3.4/docs/dom3-api/globals_defs.html0000644001725400016040000000526713273140100015513 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLocator.html0000644001725400016040000003572213273140100020074 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLocator Class Referenceabstract

    DOMLocator is an interface that describes a location. More...

    #include <DOMLocator.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMLocator ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual XMLFileLoc getLineNumber () const =0
     Get the line number where the error occured, or 0 if there is no line number available. More...
     
    virtual XMLFileLoc getColumnNumber () const =0
     Get the column number where the error occured, or 0 if there is no column number available. More...
     
    virtual XMLFilePos getByteOffset () const =0
     Get the byte offset into the input source, or ~(XMLFilePos(0)) if there is no byte offset available. More...
     
    virtual XMLFilePos getUtf16Offset () const =0
     Get the UTF-16 offset into the input source, or ~(XMLFilePos(0)) if there is no UTF-16 offset available. More...
     
    virtual DOMNodegetRelatedNode () const =0
     Get the DOMNode where the error occured, or null if there is no node available. More...
     
    virtual const XMLCh * getURI () const =0
     Get the URI where the error occured, or null if there is no URI available. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLocator ()
     

    Detailed Description

    DOMLocator is an interface that describes a location.

    (e.g. where an error occured).

    See Also
    DOMError::DOMError
    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMLocator::DOMLocator ( )
    inlineprotected
    virtual xercesc::DOMLocator::~DOMLocator ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual XMLFilePos xercesc::DOMLocator::getByteOffset ( ) const
    pure virtual

    Get the byte offset into the input source, or ~(XMLFilePos(0)) if there is no byte offset available.

    Since
    DOM Level 3
    virtual XMLFileLoc xercesc::DOMLocator::getColumnNumber ( ) const
    pure virtual

    Get the column number where the error occured, or 0 if there is no column number available.

    Since
    DOM Level 3
    virtual XMLFileLoc xercesc::DOMLocator::getLineNumber ( ) const
    pure virtual

    Get the line number where the error occured, or 0 if there is no line number available.

    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMLocator::getRelatedNode ( ) const
    pure virtual

    Get the DOMNode where the error occured, or null if there is no node available.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMLocator::getURI ( ) const
    pure virtual

    Get the URI where the error occured, or null if there is no URI available.

    Since
    DOM Level 3
    virtual XMLFilePos xercesc::DOMLocator::getUtf16Offset ( ) const
    pure virtual

    Get the UTF-16 offset into the input source, or ~(XMLFilePos(0)) if there is no UTF-16 offset available.

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp__incl.map0000644001725400016040000000032213273140101020144 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.md50000644001725400016040000000004013273140100023167 0000000000000041f6ed33331333688f8e10a926c41213XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__dep__incl.map0000644001725400016040000000025313273140100021413 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__incl.png0000644001725400016040000002305213273140100017135 00000000000000PNG  IHDRbKGD IDATxi@' `A.9DV(xpxП<ڊZxT܊ "`=( B8X5d>6Off;Y tDƀ@0ƀ@0ƀ@0Քڵ pttttt[$c?~: _@c|d ={ ({[e <(X-""bݺuމKnڱcEUUZ 00P@UUPy*N( Z]t)99yǎ,ӳ͛7^^^...~~~<-PSS[~|߿w^?h˗s?3CD3СC'Oo>mmd3gΨ=ztzzzs΍~:Z`ʔ)YYYT=4i`r~NG c2,VBD3 $6''F&J:99effϟ,ݿ\0#GzlrС˗;::wttlܸߢ?~aÆŋ۟;w X@p(3ϟlӧO]\\lll9>|f͚+Vvvvb?sBzGӫtCCn dzlt4b?>gd2yΝϞ=yf<ǏKJJր##gDEE566 ;>y򤗗שS{6ɓ'QQQ۷oEiii_ Dcy档ǏO0AII[y===OO>ݻ[l600B(222111jjjTvvv | sj*99wرcׯ_OQ7Fee@AAaС ?GS=Q|VXaddP1 [WW'XEJJr힞7nCpTUSSH$O6 3gD?ZZZ9s?ڒOΏL0ӧ衷'$iǎ^?Ј*Lhjt'}c D***P3Fcc#N߽{7F[r%;rss+++Rի UUUy&::ʪ D ݵa肦idd<^p` +V"<}߇y{{KKK/XŅBL0ڵk >>>]z… oߞ/ g4>|xҤIbbiim۶ n[ H3KŋWZ? *WWn 37{w rC)D]mllh EEE~O"t1  1  1  1  >% Ƈ444VA0RRR9LRG$rRR4a.-3H|,\'JƝ;|vĜ䍦Å(~ϩ]MէJJj #m{\ǎTҔ(##-'JPApDr+w.Z4^( Tӧ7ɯZ^W*@H9۷-[6ȑU\_bgwJNMݬ$+ACb/]22¿.}݉Q4 '^ ARy:%*껁p`$jOx Cq ""ܵ{}3FYGJnM$O$~vS 3k\y{^DH1jk||.=Й;8<̙Ǐé%00o _y̆kc;:8xˁtG R8;iys]TTasFF~GAᏑÒcǜEqtbc޽O?][ fY3kd}ٳ Or?w.'8KC q3ơCW\ގx -shpbQADaa3uRV&5P{L&/:;[D!?2eHxk<<~м}{e#鈏1Ξ}_q6|vf7mJPT[D#&L&;8ƍҩ%0tÆ H4bb'xd2 3 \\lx"ƨekIsnLg-GBc-%%ロgܹŲ2xk&JJsds[AxcL . Ag$s)SF^chE"u9& ^ϟWU1$Ds߽},0,Չ 3Ƶk_}1v,_rdͤG~ڷo?-?WrXM@c0lyU nZhр6l˗ W444ܹxbcco677,..-`iiOann."//M6 xAcXrrB3##CWW`Y,_KKKSS߿ܹg}}} 777g-+WLMMTABB`Vr!!!Ɗsy;uuu===??6D;vơC+eeݻwwK۳$իdzg>!//Yŋ[n3fg?zﭙn244TUU=x aXzzѣ555}}}1} 2?S?ZݽFKKɓ'h088޾lΝ%%%%Kܽ{700Ĥpƌ~~~jii2dHDDFjii  ѣG555SSS^6e…o߾-((?~|`` ggg& Xr%`0x<^ss3=NG8>>/ +4jhh tttt[FW~Z䳌cuuu~M6ڵ AgZYY /?~\IIo L܌$AO~JJJA.\`hhD AAA RL;n厎žyzB$;;A^^~ܹ׮]zss-,++KW/^wl4XPP@Rze1Ν;7etyذaݷmxx7|ïehhN:`嚛j'6 b?~~>J "}s!9VaΞTQQfiim6~P]]14.-- )++C#/_Cc^ukRJ'NDH/_FL&CUUUMMӓb OGGGYYٙ`PF3fLzz:fkkk*bhh(//?k, N_f֭[AB(**LtR4|p$ ---۶m?~[[[%ZclCۯ"*dgx{vum[O_@>C^~Ȃc^-D$x|kk"n>,k[μ{Wef6Vw{W%!1QKuuU#FƮ{ !++hIj3FCCSYO!εx8;xL2o(lnn[KJQV[BHc̙cd`q,M[[{{kj*-G!1H$伖aN#p͛U'&z"!XjZg'7-9B A.ܻ&!aøqAPUwpw\xuPPFjhiӾ[D@Tc||,n([Ȁsȍ?CC]-,ER 1 4/p] ,u萃$H6`/_gg-d|?_e.."Yy8;GXx >5Qnns[=`ΥϞݾ]!YڵvvfAA7xxĔ7dfͽtE۰3 <""ѷo+W^-D8;;O]ǎvpz6&'uCi1C'&SYx "LK̙ C#ш144}|,63a;֬jllpG]]o9m*o|޽;GWWo912*}CjLMl9iٹs^xˁ N,\8vҏ?^"ܙrӧOȿ1fw58IX̙q3Сw>o-'&{6[ wO#og^tHNl "(Fk ^j8iÇ- o-y5EJ\](~V*Uo9eʕ[Y]x |{MM޽xk8&Q[cttTBBV>0#C$&jq6`҉..oOd4Z#79^$'#p^Mb!|9))/^E64bc.^|6+ics?^x]FIHx$EGIt٪zٲc}Jsc[YySu )-0_Ҟ-pmmO^2bn֎>f}\+]UT quCO̶H$GQQ0H(7"2kց[L& }'pFB ?ee>R1ZZK(+} YQkҼWYDA{ A23_][ < _d^;ɌB!_oeC2?~L&g ٳ_,X+1(89_&(׳-sԑ$D"x/}9rT}A(d2i CBVBW.=khhQ s_ -_}yL'8F ԅ(RQTTRpuuu_lR/&'ȑ}ffs^5J7n*Oc|𡨨h 0jbb#qHƀ@0ƀ@0ƀ@0 1=<<>ZD" .V⅔Trr2?.##SXX8A`ȑnnnuuu}GUA HP*Aiiivv5})ر'O}}}MMM7nU}IDATܳgτ Px7=zD*++LĢ"q{QhP[[{=P,]󫒒n Wooo?~' SL0]?xyV]/D^zիȌ;cddd2 @RR1tvvkiiijjwvv;wgeeٳG___CC͍8Y pSSS*j``p8eeeH3g zU>^ZZ7BlZOH$իW{#خ~u떡[#==}њ⇠Kchii=y ܹۗ=-Yݻ&&&3fVKKː!C"""h4ZLLTKKKHHf؄A :;w/Ц!XG<׎~[NA˖-c2.]ף-ZT\\chh{Os`0LMM7ܘ1ch49i$tC 2zTۢ"rZt:]ZZ 577sުts/_NP\]];MC>f֎Fz) ++ AfA\p3 4Fw(Jmm-?N2eeetC#u*ZXX3OZdgg;88ϝ;ڵkUonnEC:JBBTjZZ4 2ƹsL1s (..\f|*M16\ ܶm?u FNNGG:::eeeh˗xt:}ݺu666t:7/2>TUk~nի}}}CBB͛g///ڴ _tikGgΞW b>Kcp\KK}aÆeddq___3fl޼YgSS9slذZl6JEFFRT6Yյ ̓^ijjZbC:[l9:055uvv!.fee-_\OO?k-gTT?葀@aaaQRRkdd{g㓍:qDtqemmmtd2=<Ep h#FoٲfcsII`!CQRR(/fPbC)Rd````e{􎚬,|@&Hc@ @c@ @c@ @c@ Ih$IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp__incl.md50000644001725400016040000000004013273140077020111 0000000000000024b14674c34de8bfe27dbe91d6371388XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSParser.html0000644001725400016040000025233013273140100020160 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSParser Class Referenceabstract

    DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...

    #include <DOMLSParser.hpp>

    Public Types

    Public Constants
    enum  ActionType {
      ACTION_APPEND_AS_CHILDREN = 1, ACTION_REPLACE_CHILDREN = 2, ACTION_INSERT_BEFORE = 3, ACTION_INSERT_AFTER = 4,
      ACTION_REPLACE = 5
    }
     A set of possible actions for the parseWithContext method. More...
     

    Public Member Functions

    Destructor
    virtual ~DOMLSParser ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMConfigurationgetDomConfig ()=0
     Get a pointer to the DOMConfiguration object used when parsing an input source. More...
     
    virtual const DOMLSParserFiltergetFilter () const =0
     Get a const pointer to the application filter. More...
     
    virtual bool getAsync () const =0
     Return whether the parser is asynchronous. More...
     
    virtual bool getBusy () const =0
     Return whether the parser is busy parsing. More...
     
    virtual void setFilter (DOMLSParserFilter *const filter)=0
     Set the application filter. More...
     
    virtual DOMDocumentparse (const DOMLSInput *source)=0
     Parse an XML document from a resource identified by a DOMLSInput. More...
     
    virtual DOMDocumentparseURI (const XMLCh *const uri)=0
     Parse an XML document from a location identified by a URI reference [IETF RFC 2396]. More...
     
    virtual DOMDocumentparseURI (const char *const uri)=0
     Parse an XML document from a location identified by a URI reference [IETF RFC 2396]. More...
     
    virtual DOMNodeparseWithContext (const DOMLSInput *source, DOMNode *contextNode, const ActionType action)=0
     Parse an XML fragment from a resource identified by a DOMLSInput and insert the content into an existing document at the position specified with the context and action arguments. More...
     
    virtual void abort ()=0
     Abort the loading of the document that is currently being loaded by the DOMLSParser. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this DOMLSParser is no longer in use and that the implementation may relinquish any resources associated with it. More...
     
    virtual void resetDocumentPool ()=0
     Reset the documents vector pool and release all the associated memory back to the system. More...
     
    virtual Grammar * loadGrammar (const DOMLSInput *source, const Grammar::GrammarType grammarType, const bool toCache=false)=0
     Preparse schema grammar (XML Schema, DTD, etc.) via an input source object. More...
     
    virtual Grammar * loadGrammar (const XMLCh *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0
     Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL. More...
     
    virtual Grammar * loadGrammar (const char *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0
     Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL. More...
     
    virtual Grammar * getGrammar (const XMLCh *const nameSpaceKey) const =0
     Retrieve the grammar that is associated with the specified namespace key. More...
     
    virtual Grammar * getRootGrammar () const =0
     Retrieve the grammar where the root element is declared. More...
     
    virtual const XMLCh * getURIText (unsigned int uriId) const =0
     Returns the string corresponding to a URI id from the URI string pool. More...
     
    virtual void resetCachedGrammarPool ()=0
     Clear the cached grammar pool. More...
     
    virtual XMLFilePos getSrcOffset () const =0
     Returns the current src offset within the input source. More...
     

    Protected Member Functions

    Hidden constructors
     DOMLSParser ()
     

    Detailed Description

    DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree.

    A DOMLSParser instance is obtained from the DOMImplementationLS interface by invoking its createLSParser method.

    Since
    DOM Level 3

    Member Enumeration Documentation

    A set of possible actions for the parseWithContext method.

    ACTION_APPEND_AS_CHILDREN: Append the result of the parse operation as children of the context node. For this action to work, the context node must be a DOMElement or a DOMDocumentFragment.

    ACTION_INSERT_AFTER: Insert the result of the parse operation as the immediately following sibling of the context node. For this action to work the context node's parent must be a DOMElement or a DOMDocumentFragment.

    ACTION_INSERT_BEFORE: Insert the result of the parse operation as the immediately preceding sibling of the context node. For this action to work the context node's parent must be a DOMElement or a DOMDocumentFragment.

    ACTION_REPLACE: Replace the context node with the result of the parse operation. For this action to work, the context node must have a parent, and the parent must be a DOMElement or a DOMDocumentFragment.

    ACTION_REPLACE_CHILDREN: Replace all the children of the context node with the result of the parse operation. For this action to work, the context node must be a DOMElement, a DOMDocument, or a DOMDocumentFragment.

    See Also
    parseWithContext(...)
    Since
    DOM Level 3
    Enumerator
    ACTION_APPEND_AS_CHILDREN 
    ACTION_REPLACE_CHILDREN 
    ACTION_INSERT_BEFORE 
    ACTION_INSERT_AFTER 
    ACTION_REPLACE 

    Constructor & Destructor Documentation

    xercesc::DOMLSParser::DOMLSParser ( )
    inlineprotected
    virtual xercesc::DOMLSParser::~DOMLSParser ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual void xercesc::DOMLSParser::abort ( )
    pure virtual

    Abort the loading of the document that is currently being loaded by the DOMLSParser.

    If the DOMLSParser is currently not busy, a call to this method does nothing.

    Note: invoking this method will remove the installed DOMLSParserFilter filter

    Since
    DOM Level 3
    virtual bool xercesc::DOMLSParser::getAsync ( ) const
    pure virtual

    Return whether the parser is asynchronous.

    Returns
    true if the DOMLSParser is asynchronous, false if it is synchronous
    Since
    DOM Level 3
    virtual bool xercesc::DOMLSParser::getBusy ( ) const
    pure virtual

    Return whether the parser is busy parsing.

    Returns
    true if the DOMLSParser is currently busy loading a document, otherwise false.
    Since
    DOM Level 3
    virtual DOMConfiguration* xercesc::DOMLSParser::getDomConfig ( )
    pure virtual

    Get a pointer to the DOMConfiguration object used when parsing an input source.

    This DOMConfiguration is specific to the parse operation. No parameter values from this DOMConfiguration object are passed automatically to the DOMConfiguration object on the DOMDocument that is created, or used, by the parse operation. The DOM application is responsible for passing any needed parameter values from this DOMConfiguration object to the DOMConfiguration object referenced by the DOMDocument object.

    In addition to the parameters recognized in on the DOMConfiguration interface defined in [DOM Level 3 Core], the DOMConfiguration objects for DOMLSParser add or modify the following parameters:

    "charset-overrides-xml-encoding" true [optional] (default) If a higher level protocol such as HTTP [IETF RFC 2616] provides an indication of the character encoding of the input stream being processed, that will override any encoding specified in the XML declaration or the Text declaration (see also section 4.3.3, "Character Encoding in Entities", in [XML 1.0]). Explicitly setting an encoding in the DOMLSInput overrides any encoding from the protocol. false [required] The parser ignores any character set encoding information from higher-level protocols.

    "disallow-doctype" true Throw a fatal "doctype-not-allowed" error if a doctype node is found while parsing the document. This is useful when dealing with things like SOAP envelopes where doctype nodes are not allowed. false (default) Allow doctype nodes in the document.

    "ignore-unknown-character-denormalizations" true [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a processor encounters characters for which it cannot determine the normalization properties, then the processor will ignore any possible denormalizations caused by these characters. This parameter is ignored for [XML 1.0]. false [optional] Report an fatal "unknown-character-denormalization" error if a character is encountered for which the processor cannot determine the normalization properties.

    "infoset" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], this parameter will default to true for DOMLSParser.

    "namespaces" true [required] (default) Perform the namespace processing as defined in [XML Namespaces] and [XML Namespaces 1.1]. false [optional] Do not perform the namespace processing.

    "resource-resolver" [required] A pointer to a DOMLSResourceResolver object, or NULL. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the DOMLSResourceResolver referenced in this parameter resolves the resource.

    "supported-media-types-only" true [optional] Check that the media type of the parsed resource is a supported media type. If an unsupported media type is encountered, a fatal error of type "unsupported-media-type" will be raised. The media types defined in [IETF RFC 3023] must always be accepted. false [required] (default) Accept any media type.

    "validate" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], the processing of the internal subset is always accomplished, even if this parameter is set to false.

    "validate-if-schema" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], the processing of the internal subset is always accomplished, even if this parameter is set to false.

    "well-formed" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], this parameter cannot be set to false.

    In addition to these, Xerces adds these non standard parameters:

    "http://apache.org/xml/properties/entity-resolver" A pointer to a XMLEntityResolver object, or NULL. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the XMLEntityResolver referenced in this parameter resolves the resource.

    "http://apache.org/xml/properties/schema/external-schemaLocation" A string holding a set of [namespaceUri schemaLocation] entries that will be treated as the content of the attribute xsi:schemaLocation of the root element

    "http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation" A string holding the schemaLocation for the empty namespace URI that will be treated as the content of the attribute xsi:noNamespaceSchemaLocation of the root element

    "http://apache.org/xml/properties/security-manager" A pointer to a SecurityManager object that will control how many entity references will be expanded during parsing

    "http://apache.org/xml/properties/scannerName" A string holding the type of scanner used while parsing. The valid names are:

    • IGXMLScanner: the default one, capable of both XMLSchema and DTD validation
    • SGXMLScanner: a scanner that can only perform XMLSchema validation
    • DGXMLScanner: a scanner that can only perform DTD validation
    • WFXMLScanner: a scanner that cannot perform any type validation, only well-formedness

    "http://apache.org/xml/properties/parser-use-DOMDocument-from-Implementation" A string holding the capabilities of the DOM implementation to be used to create the DOMDocument resulting from the parse operation. For instance, "LS" or "Core"

    "http://apache.org/xml/features/validation/schema" true Enable XMLSchema validation (note that also namespace processing should be enabled) false (default) Don't perform XMLSchema validation

    "http://apache.org/xml/features/validation/schema-full-checking" true Turn on full XMLSchema checking (e.g. Unique Particle Attribution) false (default) Don't perform full XMLSchema checking

    "http://apache.org/xml/features/validating/load-schema" true (default) Allow the parser to load schemas that are not in the grammar pool false Schemas that are not in the grammar pool are ignored

    "http://apache.org/xml/features/dom/user-adopts-DOMDocument" true The DOMDocument objects returned by parse will be owned by the caller false (default) The DOMDocument objects returned by parse will be owned by this DOMLSParser and deleted when released

    "http://apache.org/xml/features/nonvalidating/load-external-dtd" true (default) Allow the parser to load external DTDs false References to external DTDs will be ignored

    "http://apache.org/xml/features/continue-after-fatal-error" true Parsing should try to continue even if a fatal error has been triggered, trying to generate a DOM tree from a non well-formed XML false (default) Violation of XML rules will abort parsing

    "http://apache.org/xml/features/validation-error-as-fatal" true Validation errors are treated as fatal errors, and abort parsing (unless "continue-after-fatal-error" has been specified) false (default) Validation errors are normal errors

    "http://apache.org/xml/features/validation/cache-grammarFromParse" true XMLSchemas referenced by an XML file are cached in order to be reused by other parse operations false (default) XMLSchemas loaded during a parse operation will be discarded before the next one

    "http://apache.org/xml/features/validation/use-cachedGrammarInParse" true During this parse operation, reuse the XMLSchemas found in the cache false (default) Don't reuse the XMLSchemas found in the cache

    "http://apache.org/xml/features/calculate-src-ofs" true During parsing update the position in the source stream false (default) Don't waste time computing the position in the source stream

    "http://apache.org/xml/features/standard-uri-conformant" true Require that every URL being resolved is made of valid URL characters only false (default) Allow invalid URL characters in URL (e.g. spaces)

    "http://apache.org/xml/features/dom-has-psvi-info" true Add schema informations to DOMElement and DOMAttr nodes in the output DOM tree false (default) Don't store schema informations in the output DOM tree

    "http://apache.org/xml/features/generate-synthetic-annotations" true Create annotation objects in the representation of the loaded XMLSchemas false (default) Discard annotations found in the loaded XMLSchemas

    "http://apache.org/xml/features/validate-annotations" true Check that annotations are valid according to their XMLSchema definition false (default) Don't validate annotations

    "http://apache.org/xml/features/validation/identity-constraint-checking" true (default) Enforce identity constraints specified in the XMLSchema false Don't enforce identity constraints

    "http://apache.org/xml/features/validation/ignoreCachedDTD" true Don't reuse DTDs found in the cache, even if use-cachedGrammarInParse is true false (default) Reuse DTDs found in the cache, if use-cachedGrammarInParse is true

    "http://apache.org/xml/features/schema/ignore-annotations" true Don't process annotations found in an XMLSchema false (default) Process the annotations found in an XMLSchema

    "http://apache.org/xml/features/disable-default-entity-resolution" true Entities will be resolved only by a resolver installed by the user false (default) If the entity resolver has not been installed, or it refuses to resolve the given entity, the parser will try to locate it himself

    "http://apache.org/xml/features/validation/schema/skip-dtd-validation" true If XMLSchema validation is true, DTD validation will not be performed false (default) If a DTD is found, it will be used to validate the XML

    Returns
    The pointer to the configuration object.
    Since
    DOM Level 3
    virtual const DOMLSParserFilter* xercesc::DOMLSParser::getFilter ( ) const
    pure virtual

    Get a const pointer to the application filter.

    This method returns the installed application filter. If no filter has been installed, then it will be a zero pointer.

    Returns
    A const pointer to the installed application filter
    Since
    DOM Level 3
    virtual Grammar* xercesc::DOMLSParser::getGrammar ( const XMLCh *const  nameSpaceKey) const
    pure virtual

    Retrieve the grammar that is associated with the specified namespace key.

    Parameters
    nameSpaceKeyNamespace key
    Returns
    Grammar associated with the Namespace key.
    virtual Grammar* xercesc::DOMLSParser::getRootGrammar ( ) const
    pure virtual

    Retrieve the grammar where the root element is declared.

    Returns
    Grammar where root element declared
    virtual XMLFilePos xercesc::DOMLSParser::getSrcOffset ( ) const
    pure virtual

    Returns the current src offset within the input source.

    Returns
    offset within the input source
    virtual const XMLCh* xercesc::DOMLSParser::getURIText ( unsigned int  uriId) const
    pure virtual

    Returns the string corresponding to a URI id from the URI string pool.

    Parameters
    uriIdid of the string in the URI string pool.
    Returns
    URI string corresponding to the URI id.
    virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const DOMLSInput source,
    const Grammar::GrammarType  grammarType,
    const bool  toCache = false 
    )
    pure virtual

    Preparse schema grammar (XML Schema, DTD, etc.) via an input source object.

    This method invokes the preparsing process on a schema grammar XML file specified by the DOMLSInput parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

    Parameters
    sourceA const reference to the DOMLSInput object which points to the schema grammar file to be preparsed.
    grammarTypeThe grammar type (Schema or DTD).
    toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
    Returns
    The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
    Exceptions
    SAXExceptionAny SAX exception, possibly wrapping another exception.
    XMLExceptionAn exception from the parser or client handler code.
    DOMExceptionA DOM exception as per DOM spec.
    See Also
    DOMLSInput::DOMLSInput
    virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const XMLCh *const  systemId,
    const Grammar::GrammarType  grammarType,
    const bool  toCache = false 
    )
    pure virtual

    Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.

    This method invokes the preparsing process on a schema grammar XML file specified by the file path parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

    Parameters
    systemIdA const XMLCh pointer to the Unicode string which contains the path to the XML grammar file to be preparsed.
    grammarTypeThe grammar type (Schema or DTD).
    toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
    Returns
    The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
    Exceptions
    SAXExceptionAny SAX exception, possibly wrapping another exception.
    XMLExceptionAn exception from the parser or client handler code.
    DOMExceptionA DOM exception as per DOM spec.
    virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const char *const  systemId,
    const Grammar::GrammarType  grammarType,
    const bool  toCache = false 
    )
    pure virtual

    Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.

    This method invokes the preparsing process on a schema grammar XML file specified by the file path parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

    Parameters
    systemIdA const char pointer to a native string which contains the path to the XML grammar file to be preparsed.
    grammarTypeThe grammar type (Schema or DTD).
    toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
    Returns
    The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
    Exceptions
    SAXExceptionAny SAX exception, possibly wrapping another exception.
    XMLExceptionAn exception from the parser or client handler code.
    DOMExceptionA DOM exception as per DOM spec.
    virtual DOMDocument* xercesc::DOMLSParser::parse ( const DOMLSInput source)
    pure virtual

    Parse an XML document from a resource identified by a DOMLSInput.

    The parser owns the returned DOMDocument. It will be deleted when the parser is released.

    Parameters
    sourceThe DOMLSInput from which the source of the document is to be read.
    Returns
    If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object may not yet be constructed when this method returns.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
    DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
    See Also
    DOMLSInput::DOMLSInput
    DOMConfiguration
    resetDocumentPool
    Since
    DOM Level 3
    virtual DOMDocument* xercesc::DOMLSParser::parseURI ( const XMLCh *const  uri)
    pure virtual

    Parse an XML document from a location identified by a URI reference [IETF RFC 2396].

    If the URI contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the behavior is not defined by this specification, future versions of this specification may define the behavior.

    The parser owns the returned DOMDocument. It will be deleted when the parser is released.

    Parameters
    uriThe location of the XML document to be read (in Unicode)
    Returns
    If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object is not yet parsed when this method returns.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
    DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
    See Also
    parse(DOMLSInput,...)
    resetDocumentPool
    Since
    DOM Level 3
    virtual DOMDocument* xercesc::DOMLSParser::parseURI ( const char *const  uri)
    pure virtual

    Parse an XML document from a location identified by a URI reference [IETF RFC 2396].

    If the URI contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the behavior is not defined by this specification, future versions of this specification may define the behavior.

    The parser owns the returned DOMDocument. It will be deleted when the parser is released.

    Parameters
    uriThe location of the XML document to be read (in the local code page)
    Returns
    If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object is not yet parsed when this method returns.
    Exceptions
    DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
    DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
    See Also
    parse(DOMLSInput,...)
    resetDocumentPool
    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMLSParser::parseWithContext ( const DOMLSInput source,
    DOMNode contextNode,
    const ActionType  action 
    )
    pure virtual

    Parse an XML fragment from a resource identified by a DOMLSInput and insert the content into an existing document at the position specified with the context and action arguments.

    When parsing the input stream, the context node (or its parent, depending on where the result will be inserted) is used for resolving unbound namespace prefixes. The context node's ownerDocument node (or the node itself if the node of type DOCUMENT_NODE) is used to resolve default attributes and entity references. As the new data is inserted into the document, at least one mutation event is fired per new immediate child or sibling of the context node. If the context node is a DOMDocument node and the action is ACTION_REPLACE_CHILDREN, then the document that is passed as the context node will be changed such that its xmlEncoding, documentURI, xmlVersion, inputEncoding, xmlStandalone, and all other such attributes are set to what they would be set to if the input source was parsed using DOMLSParser::parse(). This method is always synchronous, even if the DOMLSParser is asynchronous (DOMLSParser::getAsync() returns true). If an error occurs while parsing, the caller is notified through the ErrorHandler instance associated with the "error-handler" parameter of the DOMConfiguration. When calling parseWithContext, the values of the following configuration parameters will be ignored and their default values will always be used instead: "validate", "validate-if-schema" "element-content-whitespace". Other parameters will be treated normally, and the parser is expected to call the DOMLSParserFilter just as if a whole document was parsed.

    Parameters
    sourceThe DOMLSInput from which the source document is to be read. The source document must be an XML fragment, i.e. anything except a complete XML document (except in the case where the context node of type DOCUMENT_NODE, and the action is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal subset), entity declaration(s), notation declaration(s), or XML or text declaration(s).
    contextNodeThe node that is used as the context for the data that is being parsed. This node must be a DOMDocument node, a DOMDocumentFragment node, or a node of a type that is allowed as a child of an DOMElement node, e.g. it cannot be an DOMAttribute node.
    actionThis parameter describes which action should be taken between the new set of nodes being inserted and the existing children of the context node. The set of possible actions is defined in ACTION_TYPES above.
    Returns
    Return the node that is the result of the parse operation. If the result is more than one top-level node, the first one is returned.
    Exceptions
    DOMExceptionHIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be inserted before, after, or as a child of the context node (see also DOMNode::insertBefore or DOMNode::replaceChild in [DOM Level 3 Core]). NOT_SUPPORTED_ERR: Raised if the DOMLSParser doesn't support this method, or if the context node is of type DOMDocument and the DOM implementation doesn't support the replacement of the DOMDocumentType child or DOMElement child. NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a read only node and the content is being appended to its child list, or if the parent node of the context node is read only node and the content is being inserted in its child list. INVALID_STATE_ERR: Raised if the DOMLSParser::getBusy() returns true.
    DOMLSExceptionPARSE_ERR: Raised if the DOMLSParser was unable to load the XML fragment. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
    Since
    DOM Level 3
    virtual void xercesc::DOMLSParser::release ( )
    pure virtual

    Called to indicate that this DOMLSParser is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMLSParser::resetCachedGrammarPool ( )
    pure virtual

    Clear the cached grammar pool.

    virtual void xercesc::DOMLSParser::resetDocumentPool ( )
    pure virtual

    Reset the documents vector pool and release all the associated memory back to the system.

    When parsing a document using a DOM parser, all memory allocated for a DOM tree is associated to the DOM document.

    If you do multiple parse using the same DOM parser instance, then multiple DOM documents will be generated and saved in a vector pool. All these documents (and thus all the allocated memory) won't be deleted until the parser instance is destroyed.

    If you don't need these DOM documents anymore and don't want to destroy the DOM parser instance at this moment, then you can call this method to reset the document vector pool and release all the allocated memory back to the system.

    It is an error to call this method if you are in the middle of a parse (e.g. in the mid of a progressive parse).

    Exceptions
    IOExceptionAn exception from the parser if this function is called when a parse is in progress.
    virtual void xercesc::DOMLSParser::setFilter ( DOMLSParserFilter *const  filter)
    pure virtual

    Set the application filter.

    When the application provides a filter, the parser will call out to the filter at the completion of the construction of each DOMElement node. The filter implementation can choose to remove the element from the document being constructed or to terminate the parse early. The filter is invoked after the operations requested by the DOMConfiguration parameters have been applied. For example, if "validate" is set to true, the validation is done before invoking the filter.

    Any previously set filter is merely dropped, since the parser does not own them.

    Parameters
    filterA const pointer to the user supplied application filter.
    See Also
    getFilter
    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.png0000644001725400016040000001020513273140100017626 00000000000000PNG  IHDRp!]#abKGD:IDATxyPSO6@!H,:\*8 )gA@Pơpp:0Ֆ:V K)ZY2JԺRJ-R(!( [}s{%a}woo9& `9(@ON@ON@ON/oڴqxJF?,+==}ʔ)0̿c0o@ _0充~'PTT?΢1\.7?ON@ON@ON@ON0IBcŊ魭2,>>>(((11ѣ}}}oLLL)))DP D"y@x[xMuɢNTA^JHH~BBBNNNtttyy-[z=9?BWUUу_xKfx<ބ |9sv\TTD^:|0۷o߼yBL&knn>{,9ۛ.իgϦ /U*Rːf`^~<-//e2NrWXQ^^NrjڿxEkxڵkk׮]dIDDıcHD"9{l\\ܲeˎ;vܹ+W>>RbvNw… 68;;YTÌ{7]RRP(1cG}DMt.\HlbbW!dkk;a„zoooSRExxK2226nLFIlmmMwLAt:$n1Zd!WWזa4aFN(nnn---+GGGe1`??QZZ:|400l>~y(WWWWuu[W! #%%Ӥ'--mŊ999+?rHEEEEEEYY7|D`1T*iSS70tG=cR:zY 5X詵UR={jǎJ:..NVoڴIII|>?,,"L??}͘1윔ߓZVӱ^rG5j}}}sssB̙3jh C/Sz~z@ ✜jJϗdMMMQQQA"Or[n!lmmv=~UVl۶ԩSZv-KHHp8Z6;;;vXn7fee%&&r8{/::fcbFBn޼; ::!9{l2jH?/ru3 X~)55W%(_5j$;'MHHW eXmڴ ׫ P0H8*` qtlKq?2Y\h~xr~:㔕=}}}~p>-m6SPS(+B[SS+uz2 wYl]Lt8^@Oƙ1C`w.V_j ГI"#aXiӜNuz'DDקgdYQQH=cГIBؕ|iӇbgГ9"#ߥV8;m #X(dwyL;shKH4=Y *bNmGQAAb뉈wFo x !0/.gz̿ZvH2y/^ܽ{8臕Uo5^.t-P(ӗC̙3.a4㞞*'NzӧOY`dѣGk֬8|R:l6XYYUWWE`И2eJlllKKAQ__Rˌy=/[f<|</%%Ŕ9s>VЋ/֭[5L7į^T*ΝKVbGOmɓ bLe҃5hh{zzf͚%J HLL_!Tܹx} <>FjjjjjjAOj!tSvvv"Z֭['M$nݪjɕnnnr<55mĉԋ !TVV&\{AABHu왍u<|2X#:tCq8SEblxSq} 0sD"Czz:())6m@ HNN1j,(OQjI; qqqihh -wLyi4^_TTRCBBT*Q~iɒ%t:BHP ~MMM~~~ ϟ? #";;;88|v4;"H!\\\]\wڥRJKKI{rrrdddCCCUU/TX\]]]]]`kךh4\.ĉ---999\.WuQ(dM^^ދ/m*joo'Otw^tEEooX,^r0F/aaaBu Mͥ" hD"yAeeΝ;͋z~O:LnA֬Y(J;;;mwwwoٲ~ʕjzQXXaee5}AAAv<<4D?&#8p76lh4F`ӧ1E}}g?)5~CǁQ;; w0R& ,fggG4? -   kz ,`7IENDB`XQilla-2.3.4/docs/dom3-api/dir_000007_000010.html0000644001725400016040000000361213273140100015243 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    xqilla → utils Relation

    File in include/xqillaIncludes file in include/xqilla/utils
    xqilla-dom3.hppXQillaPlatformUtils.hpp
    XQilla-2.3.4/docs/dom3-api/dir_2f715665b8aa8c276cd082abf0483ce6_dep.md50000644001725400016040000000004013273140100020640 000000000000004ed6128683b1eb3eecd64576ce5d9c0cXQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp__incl.md50000644001725400016040000000004013273140077020065 00000000000000f33f28532a9d3fb46f5af0186d6a89c0XQilla-2.3.4/docs/dom3-api/inherit_graph_7.png0000644001725400016040000002245613273140101015760 00000000000000PNG  IHDRP!bKGD IDATxy\SWO db!ttyTZ!TqZ`R3ҪվDڅQqP+$[M܉Y0Z ,?=>>'<% X P@F.\@ZVkmGA Jݽ{&C@7X `7g2bZ`BPr@F.\@0ro|||[[ "999,,1""b׮] 0x?&&BTWW>r?~ԨQiiiΐW( X7n477=zT*wttM2lԩ%%%oNIIΞ7oy#d}}}YYYD"zj۲e?|#G$''8O_71L&/lݺ 0D=!TUUEtYfU>hrC… oNn=vXLL YAbrʕ+>>>&W "rrrr@`XqY///D:y  B'99fX䞞< x񢏏OQQQZZرct !t9`0?h4&z (ʆ R%Krss bcc{ӁY#Zj.,+!!ARM6 !nzdr8>G %;;;88O> sUV=xfߺu fdd,^Q(o۶ #111.]JOO  "(**盳vvv---G{1iс7edv͠Qׯ_g_uwwsѣG~򲳳7oޞ={MRٓ +++\nzz~7gΜPH$B?ԣgA! (H8_$LPPPKK ^.,,4i B ֊ rJ,hO?T"t:Lj͙9͛L&ݴiSJJ AYYYӯӤhwJRIg%FƑŎ]|`QƁ-رJ% C쌿joD[qڵX .bn'L L<`ҶtE}D (O˜3D@*JCYY0MMM{ B,q9FSS>wܤ$d_!DR\\i4Bӳ~G欔JN;uX,^v*͙[A|j\\܎;_P(222.\H̜9S&]vpѢEO7DxB,X#iyp99Peeɣl*Z[[WkjjM 3%XKr@V;w?P,={'$$H6oެx"`  ljޭ[RnDO\77HCFWS󰤤NƍsyCX( 0dxPVV(6 u?TTG ?e} ѫ|"A  .Z[BaNJJ꺻{AA8ыbom( `e4]E=ߦWYJgx|6 OVߝ' M*ɉxx 0AO8ѻuIlMP P@Oʚ'(?'Q}FW?r[\\&c+<7$z`]v uxx[Zӣe|vTQ < _DG^`}Kqf;u fmyֶ-[8V}^,Vh`OnHqax@!]\F44_΋cgЧA:SZ?TA՚aa&wU~H]=m (𡮮-.&S{[[{G>MBk. `0iCP *'FUWW+F5cƌkSB7nhiiinn>zT* d2ԩSKJJ222n߾=o}gTZ[[B֜~_;I}{ٳ^^^!t &( POOOrr2fX===8x񢏏OQQQZZرcCc+йsx<;~8BHј4ϓ{ə)ʆ YYYxuɒ%~Wbcc/2<7@RMrww7h`GG[od29vuuO1=Q/5%%z 4sTO@3Ftgggzɓ'{xx|Ǥ ̉':99ϟΛ 3z0>>~ժU<`ٷn…/nll ۶mrsҥP(|9+\nggr[[[\g`jOX[[A_f~\GޏpiiIEƜ5b.7gΜPH$B?T"rrr4իm||dOD/|Oݏ~۸qիq%RNYÇ SСC^^^}[[[aa!]8 0&yP"p8I&B ֊ rJ,hO?T"t:Lj͙9͛7L&iiӦ ͛_g/?$Ƒ""''jJ|.|28&X..w>>IG~ϞmS>GTwrV{}MĉkCÛԷy&eݺu zrL˃B $88888؜՘1c._=---<<<%%%&&ƜTUUcKKKΝCii)S%K}1HUU4827/;{G@kkVAq\rOOOOf?9:N/.~{zz뿶fԨY~dJMM]f͛7Bt:wޑ'O71555։'  rOHcY,ւ VXAr8R%ݻwܹsxΝ;;w4guU T*ձcǨTj{{9ss hr*:))T޽{I[Ff^WB#cy ~O:O/Ϝ9oX/N>(݇mz{Q0t?E"N#ή@)J&x9((ĉd%'Oı2{?(XΝ;?gϞ B~TT͛D"H$1c;cJT2/`(JsLĐ#ko |3ftwwrƍg612usXpٳgWUU T\]oΙ3V$os)cQz~|Ӧ㾾|/Dc)$ 644 R)AB|w Cτo>?<|(++kO?+ѣ킃=qz8e}*P =j%B?= R὿C[RnDO#^ ( 0Lju/`'OG;`d  Od@PeoO \&C`P@`}…jRSW'khdJNz{;:ΜjׯGJ}饗 ~!( 0_xbkJhtDF#Xӯ~ d B W( `S\@0r` }E__6 ErrrXXcDDĮ]Iz `p9(&&BTWW߹sԩS䦂:. +Ysuuu/ !yh<s P@nܸ|QTс7dSdddܾ};%%%;;{޼y䍐eeedUիxy۷oOHHuvvnܸ1--q߿Nb s2L su~:0h}!TUUEtYfU>hrC… oNn=vXLL YJ ]nA6l2eZ6yfPggI'm`Ka?aO1(b={K" N<9aBINNf,+99.^STT3vx23B;w1 ??Ǐ#4IsZ/7 aÆofeeR}MCrrrVV^]dInn.p^^^ll,3N?vW_}{G;vF3x|}ɓ'{xx|iӦ!W?#3fݻ,SSPPbT*?x뭷L&8|IF).<+Vz;u.XxqccP( ߶m)bbb.]" E"QTT7g%233[ZZ9bkk+cҼ'n(u*))qqq!F[[A_f~\G ܶmBhΝ JKKe2T*~קNJT*k֬inn:CW^JOF=zHB}̝sQ2wjϟ_YYY\\r_3gNMMP( MOOǎJ$C!۟mDXxs&%%L&H$b\<==qIiiG}dJTtSNk׾b؜q_~رC8 "##c…d̙3e2ٵk -Z_3k֬׷R\tirr?|s= (g r,sJOOOGaT*xyye>/P@`֬Ye˖'O_:w.SRRB… ߯orʿ7onhh0gEPϟiTVi49Ç/#|pΜ9}UUՙ3g?T*uׯdXd9Aׯxk׮E%%%-[4JVtRLKKCd2I.n`yqVWWl߾klٲ?..w0`X2 ޷o_XX۞9sC,!JW^=f77u) QUww7tvv^|D"V :TPPЋ{w\\ \joosή.gLEEE;vΎ!lll^ǃ}/_bzzzfΜ9zhOMɳ`yq> XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocument.html0000644001725400016040000050257413273140101020254 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocument Class Referenceabstract

    The DOMDocument interface represents the entire XML document. More...

    #include <DOMDocument.hpp>

    Inheritance diagram for xercesc::DOMDocument:

    Public Member Functions

    Destructor
    virtual ~DOMDocument ()
     Destructor. More...
     
    Functions introduced in DOM Level 1
    virtual DOMElementcreateElement (const XMLCh *tagName)=0
     Creates an element of the type specified. More...
     
    virtual DOMDocumentFragmentcreateDocumentFragment ()=0
     Creates an empty DOMDocumentFragment object. More...
     
    virtual DOMTextcreateTextNode (const XMLCh *data)=0
     Creates a DOMText node given the specified string. More...
     
    virtual DOMCommentcreateComment (const XMLCh *data)=0
     Creates a DOMComment node given the specified string. More...
     
    virtual DOMCDATASectioncreateCDATASection (const XMLCh *data)=0
     Creates a DOMCDATASection node whose value is the specified string. More...
     
    virtual DOMProcessingInstructioncreateProcessingInstruction (const XMLCh *target, const XMLCh *data)=0
     Creates a DOMProcessingInstruction node given the specified name and data strings. More...
     
    virtual DOMAttrcreateAttribute (const XMLCh *name)=0
     Creates an DOMAttr of the given name. More...
     
    virtual DOMEntityReferencecreateEntityReference (const XMLCh *name)=0
     Creates an DOMEntityReference object. More...
     
    virtual DOMDocumentTypegetDoctype () const =0
     The Document Type Declaration (see DOMDocumentType) associated with this document. More...
     
    virtual DOMImplementationgetImplementation () const =0
     The DOMImplementation object that handles this document. More...
     
    virtual DOMElementgetDocumentElement () const =0
     This is a convenience attribute that allows direct access to the child node that is the root element of the document. More...
     
    virtual DOMNodeListgetElementsByTagName (const XMLCh *tagname) const =0
     Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree. More...
     
    Functions introduced in DOM Level 2.
    virtual DOMNodeimportNode (const DOMNode *importedNode, bool deep)=0
     Imports a node from another document to this document. More...
     
    virtual DOMElementcreateElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Creates an element of the given qualified name and namespace URI. More...
     
    virtual DOMAttrcreateAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Creates an attribute of the given qualified name and namespace URI. More...
     
    virtual DOMNodeListgetElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
     Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree. More...
     
    virtual DOMElementgetElementById (const XMLCh *elementId) const =0
     Returns the DOMElement whose ID is given by elementId. More...
     
    Functions introduced in DOM Level 3.
    virtual const XMLCh * getInputEncoding () const =0
     An attribute specifying the encoding used for this document at the time of the parsing. More...
     
    virtual const XMLCh * getXmlEncoding () const =0
     An attribute specifying, as part of the XML declaration, the encoding of this document. More...
     
    virtual bool getXmlStandalone () const =0
     An attribute specifying, as part of the XML declaration, whether this document is standalone. More...
     
    virtual void setXmlStandalone (bool standalone)=0
     An attribute specifying, as part of the XML declaration, whether this document is standalone. More...
     
    virtual const XMLCh * getXmlVersion () const =0
     An attribute specifying, as part of the XML declaration, the version number of this document. More...
     
    virtual void setXmlVersion (const XMLCh *version)=0
     An attribute specifying, as part of the XML declaration, the version number of this document. More...
     
    virtual const XMLCh * getDocumentURI () const =0
     The location of the document or null if undefined. More...
     
    virtual void setDocumentURI (const XMLCh *documentURI)=0
     The location of the document or null if undefined. More...
     
    virtual bool getStrictErrorChecking () const =0
     An attribute specifying whether errors checking is enforced or not. More...
     
    virtual void setStrictErrorChecking (bool strictErrorChecking)=0
     An attribute specifying whether errors checking is enforced or not. More...
     
    virtual DOMNoderenameNode (DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
     Rename an existing node. More...
     
    virtual DOMNodeadoptNode (DOMNode *source)=0
     Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any. More...
     
    virtual void normalizeDocument ()=0
     This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form. More...
     
    virtual DOMConfigurationgetDOMConfig () const =0
     The configuration used when DOMDocument::normalizeDocument is invoked. More...
     
    Non-standard extension
    virtual DOMEntitycreateEntity (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMDocumentTypecreateDocumentType (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMDocumentTypecreateDocumentType (const XMLCh *qName, const XMLCh *, const XMLCh *)
     
    virtual DOMNotationcreateNotation (const XMLCh *name)=0
     Non-standard extension. More...
     
    virtual DOMElementcreateElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0
     Non-standard extension. More...
     
    - Public Member Functions inherited from xercesc::DOMDocumentRange
    virtual ~DOMDocumentRange ()
     Destructor. More...
     
    virtual DOMRangecreateRange ()=0
     
     To create the range  consisting of boundary-points and offset of the
    

    selected contents More...

     
    - Public Member Functions inherited from xercesc::DOMXPathEvaluator
    virtual ~DOMXPathEvaluator ()
     Destructor. More...
     
    virtual DOMXPathExpressioncreateExpression (const XMLCh *expression, const DOMXPathNSResolver *resolver)=0
     Creates a parsed XPath expression with resolved namespaces. More...
     
    virtual DOMXPathNSResolvercreateNSResolver (const DOMNode *nodeResolver)=0
     Adapts any DOM node to resolve namespaces so that an XPath expression can be easily evaluated relative to the context of the node where it appeared within the document. More...
     
    virtual DOMXPathResultevaluate (const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0
     Evaluates an XPath expression string and returns a result of the specified type if possible. More...
     
    - Public Member Functions inherited from xercesc::DOMDocumentTraversal
    virtual ~DOMDocumentTraversal ()
     Destructor. More...
     
    virtual DOMNodeIteratorcreateNodeIterator (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
     Creates a NodeIterator object. More...
     
    virtual DOMTreeWalkercreateTreeWalker (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
     Creates a TreeWalker object. More...
     
    - Public Member Functions inherited from xercesc::DOMNode
    virtual ~DOMNode ()
     Destructor. More...
     
    virtual const XMLCh * getNodeName () const =0
     The name of this node, depending on its type; see the table above. More...
     
    virtual const XMLCh * getNodeValue () const =0
     Gets the value of this node, depending on its type. More...
     
    virtual NodeType getNodeType () const =0
     An enum value representing the type of the underlying object. More...
     
    virtual DOMNodegetParentNode () const =0
     Gets the parent of this node. More...
     
    virtual DOMNodeListgetChildNodes () const =0
     Gets a DOMNodeList that contains all children of this node. More...
     
    virtual DOMNodegetFirstChild () const =0
     Gets the first child of this node. More...
     
    virtual DOMNodegetLastChild () const =0
     Gets the last child of this node. More...
     
    virtual DOMNodegetPreviousSibling () const =0
     Gets the node immediately preceding this node. More...
     
    virtual DOMNodegetNextSibling () const =0
     Gets the node immediately following this node. More...
     
    virtual DOMNamedNodeMapgetAttributes () const =0
     Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise. More...
     
    virtual DOMDocumentgetOwnerDocument () const =0
     Gets the DOMDocument object associated with this node. More...
     
    virtual DOMNodecloneNode (bool deep) const =0
     Returns a duplicate of this node. More...
     
    virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
     Inserts the node newChild before the existing child node refChild. More...
     
    virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
     Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. More...
     
    virtual DOMNoderemoveChild (DOMNode *oldChild)=0
     Removes the child node indicated by oldChild from the list of children, and returns it. More...
     
    virtual DOMNodeappendChild (DOMNode *newChild)=0
     Adds the node newChild to the end of the list of children of this node. More...
     
    virtual bool hasChildNodes () const =0
     This is a convenience method to allow easy determination of whether a node has any children. More...
     
    virtual void setNodeValue (const XMLCh *nodeValue)=0
     Sets the value of the node. More...
     
    virtual void normalize ()=0
     Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes. More...
     
    virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
     Tests whether the DOM implementation implements a specific feature and that feature is supported by this node. More...
     
    virtual const XMLCh * getNamespaceURI () const =0
     Get the namespace URI of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getPrefix () const =0
     Get the namespace prefix of this node, or null if it is unspecified. More...
     
    virtual const XMLCh * getLocalName () const =0
     Returns the local part of the qualified name of this node. More...
     
    virtual void setPrefix (const XMLCh *prefix)=0
     Set the namespace prefix of this node. More...
     
    virtual bool hasAttributes () const =0
     Returns whether this node (if it is an element) has any attributes. More...
     
    virtual bool isSameNode (const DOMNode *other) const =0
     Returns whether this node is the same node as the given one. More...
     
    virtual bool isEqualNode (const DOMNode *arg) const =0
     Tests whether two nodes are equal. More...
     
    virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
     Associate an object to a key on this node. More...
     
    virtual void * getUserData (const XMLCh *key) const =0
     Retrieves the object associated to a key on a this node. More...
     
    virtual const XMLCh * getBaseURI () const =0
     The absolute base URI of this node or null if undefined. More...
     
    virtual short compareDocumentPosition (const DOMNode *other) const =0
     Compares the reference node, i.e. More...
     
    virtual const XMLCh * getTextContent () const =0
     This attribute returns the text content of this node and its descendants. More...
     
    virtual void setTextContent (const XMLCh *textContent)=0
     This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to. More...
     
    virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
     Look up the prefix associated to the given namespace URI, starting from this node. More...
     
    virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
     This method checks if the specified namespaceURI is the default namespace or not. More...
     
    virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
     Look up the namespace URI associated to the given prefix, starting from this node. More...
     
    virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
     This method makes available a DOMNode's specialized interface. More...
     
    virtual void release ()=0
     Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children. More...
     

    Protected Member Functions

    Hidden constructors
     DOMDocument ()
     
    - Protected Member Functions inherited from xercesc::DOMDocumentRange
     DOMDocumentRange ()
     
    - Protected Member Functions inherited from xercesc::DOMXPathEvaluator
     DOMXPathEvaluator ()
     
    - Protected Member Functions inherited from xercesc::DOMDocumentTraversal
     DOMDocumentTraversal ()
     
    - Protected Member Functions inherited from xercesc::DOMNode
     DOMNode ()
     
     DOMNode (const DOMNode &)
     

    Additional Inherited Members

    - Public Types inherited from xercesc::DOMNode
    enum  NodeType {
      ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
      ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
      DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
    }
     NodeType. More...
     
    enum  DocumentPosition {
      DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
      DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
    }
     DocumentPosition: More...
     

    Detailed Description

    The DOMDocument interface represents the entire XML document.

    Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

    Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a DOMDocument, the DOMDocument interface also contains the factory methods needed to create these objects. The DOMNode objects created have a ownerDocument attribute which associates them with the DOMDocument within whose context they were created.

    See also the Document Object Model (DOM) Level 2 Core Specification.

    Constructor & Destructor Documentation

    xercesc::DOMDocument::DOMDocument ( )
    inlineprotected
    virtual xercesc::DOMDocument::~DOMDocument ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNode* xercesc::DOMDocument::adoptNode ( DOMNode source)
    pure virtual

    Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.

    If the node has a parent it is first removed from its parent child list. This effectively allows moving a subtree from one document to another. The following list describes the specifics for each type of node.

    ATTRIBUTE_NODE
    The ownerElement attribute is set to null and the specified flag is set to true on the adopted DOMAttr. The descendants of the source DOMAttr are recursively adopted.
    DOCUMENT_FRAGMENT_NODE
    The descendants of the source node are recursively adopted.
    DOCUMENT_NODE
    DOMDocument nodes cannot be adopted.
    DOCUMENT_TYPE_NODE
    DOMDocumentType nodes cannot be adopted.
    ELEMENT_NODE
    Specified attribute nodes of the source element are adopted, and the generated DOMAttr nodes. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.
    ENTITY_NODE
    DOMEntity nodes cannot be adopted.
    ENTITY_REFERENCE_NODE
    Only the DOMEntityReference node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
    NOTATION_NODE
    DOMNotation nodes cannot be adopted.
    PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
    These nodes can all be adopted. No specifics.
    Parameters
    sourceThe node to move into this document.
    Returns
    The adopted node, or null if this operation fails, such as when the source node comes from a different implementation.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if the source node is of type DOCUMENT, DOCUMENT_TYPE.
    NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.
    Since
    DOM Level 3
    virtual DOMAttr* xercesc::DOMDocument::createAttribute ( const XMLCh *  name)
    pure virtual

    Creates an DOMAttr of the given name.

    Note that the DOMAttr instance can then be set on an DOMElement using the setAttributeNode method.
    To create an attribute with a qualified name and namespace URI, use the createAttributeNS method.

    Parameters
    nameThe name of the attribute.
    Returns
    A new DOMAttr object with the nodeName attribute set to name, and localName, prefix, and namespaceURI set to null. The value of the attribute is the empty string.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMAttr* xercesc::DOMDocument::createAttributeNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Creates an attribute of the given qualified name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the attribute to create.
    qualifiedNameThe qualified name of the attribute to instantiate.
    Returns
    A new DOMAttr object with the following attributes:
    Attribute Value
    DOMNode.nodeName qualifiedName
    DOMNode.namespaceURI namespaceURI
    DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
    DOMNode.localName local name, extracted from qualifiedName
    DOMAttr.name qualifiedName
    DOMNode.nodeValue the empty string
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace", or if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from " http://www.w3.org/2000/xmlns/".
    NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
    Since
    DOM Level 2
    virtual DOMCDATASection* xercesc::DOMDocument::createCDATASection ( const XMLCh *  data)
    pure virtual

    Creates a DOMCDATASection node whose value is the specified string.

    Parameters
    dataThe data for the DOMCDATASection contents.
    Returns
    The new DOMCDATASection object.
    Since
    DOM Level 1
    virtual DOMComment* xercesc::DOMDocument::createComment ( const XMLCh *  data)
    pure virtual

    Creates a DOMComment node given the specified string.

    Parameters
    dataThe data for the node.
    Returns
    The new DOMComment object.
    Since
    DOM Level 1
    virtual DOMDocumentFragment* xercesc::DOMDocument::createDocumentFragment ( )
    pure virtual

    Creates an empty DOMDocumentFragment object.

    Returns
    A new DOMDocumentFragment.
    Since
    DOM Level 1
    virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a DOMDocumentType node.

    Returns
    A DOMDocumentType that references the newly created DOMDocumentType node.
    virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  qName,
    const XMLCh *  ,
    const XMLCh *   
    )
    inlinevirtual
    virtual DOMElement* xercesc::DOMDocument::createElement ( const XMLCh *  tagName)
    pure virtual

    Creates an element of the type specified.

    Note that the instance returned implements the DOMElement interface, so attributes can be specified directly on the returned object.
    In addition, if there are known attributes with default values, DOMAttr nodes representing them are automatically created and attached to the element.
    To create an element with a qualified name and namespace URI, use the createElementNS method.

    Parameters
    tagNameThe name of the element type to instantiate. For XML, this is case-sensitive.
    Returns
    A new DOMElement object with the nodeName attribute set to tagName, and localName, prefix, and namespaceURI set to null.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Creates an element of the given qualified name and namespace URI.

    Parameters
    namespaceURIThe namespace URI of the element to create.
    qualifiedNameThe qualified name of the element type to instantiate.
    Returns
    A new DOMElement object with the following attributes:
    Attribute Value
    DOMNode.nodeName qualifiedName
    DOMNode.namespaceURI namespaceURI
    DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
    DOMNode.localName local name, extracted from qualifiedName
    DOMElement.tagName qualifiedName
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" .
    NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
    Since
    DOM Level 2
    virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName,
    const XMLFileLoc  lineNum,
    const XMLFileLoc  columnNum 
    )
    pure virtual

    Non-standard extension.

    Creates an element of the given qualified name and namespace URI, and also stores line/column number info. Used by internally XSDXercesDOMParser during schema traversal.

    See Also
    createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)
    virtual DOMEntity* xercesc::DOMDocument::createEntity ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a new entity.

    Parameters
    nameThe name of the entity to instantiate
    virtual DOMEntityReference* xercesc::DOMDocument::createEntityReference ( const XMLCh *  name)
    pure virtual

    Creates an DOMEntityReference object.

    In addition, if the referenced entity is known, the child list of the DOMEntityReference node is made the same as that of the corresponding DOMEntity node.If any descendant of the DOMEntity node has an unbound namespace prefix, the corresponding descendant of the created DOMEntityReference node is also unbound; (its namespaceURI is null). The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

    Parameters
    nameThe name of the entity to reference.
    Returns
    The new DOMEntityReference object.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
    Since
    DOM Level 1
    virtual DOMNotation* xercesc::DOMDocument::createNotation ( const XMLCh *  name)
    pure virtual

    Non-standard extension.

    Create a Notation.

    Parameters
    nameThe name of the notation to instantiate
    Returns
    A DOMNotation that references the newly created DOMNotation node.
    virtual DOMProcessingInstruction* xercesc::DOMDocument::createProcessingInstruction ( const XMLCh *  target,
    const XMLCh *  data 
    )
    pure virtual

    Creates a DOMProcessingInstruction node given the specified name and data strings.

    Parameters
    targetThe target part of the processing instruction.
    dataThe data for the node.
    Returns
    The new DOMProcessingInstruction object.
    Exceptions
    DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
    Since
    DOM Level 1
    virtual DOMText* xercesc::DOMDocument::createTextNode ( const XMLCh *  data)
    pure virtual

    Creates a DOMText node given the specified string.

    Parameters
    dataThe data for the node.
    Returns
    The new DOMText object.
    Since
    DOM Level 1
    virtual DOMDocumentType* xercesc::DOMDocument::getDoctype ( ) const
    pure virtual

    The Document Type Declaration (see DOMDocumentType) associated with this document.

    For XML documents without a document type declaration this returns null. The DOM Level 2 does not support editing the Document Type Declaration. docType cannot be altered in any way, including through the use of methods inherited from the DOMNode interface, such as insertNode or removeNode.

    Since
    DOM Level 1
    virtual DOMElement* xercesc::DOMDocument::getDocumentElement ( ) const
    pure virtual

    This is a convenience attribute that allows direct access to the child node that is the root element of the document.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocument::getDocumentURI ( ) const
    pure virtual

    The location of the document or null if undefined.


    Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

    Since
    DOM Level 3
    virtual DOMConfiguration* xercesc::DOMDocument::getDOMConfig ( ) const
    pure virtual

    The configuration used when DOMDocument::normalizeDocument is invoked.

    Returns
    The DOMConfiguration from this DOMDocument
    Since
    DOM Level 3
    virtual DOMElement* xercesc::DOMDocument::getElementById ( const XMLCh *  elementId) const
    pure virtual

    Returns the DOMElement whose ID is given by elementId.

    If no such element exists, returns null. Behavior is not defined if more than one element has this ID. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

    Parameters
    elementIdThe unique id value for an element.
    Returns
    The matching element.
    Since
    DOM Level 2
    virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagName ( const XMLCh *  tagname) const
    pure virtual

    Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

    The returned node list is "live", in that changes to the document tree made after a nodelist was initially returned will be immediately reflected in the node list.

    Parameters
    tagnameThe name of the tag to match on. The special value "*" matches all tags.
    Returns
    A new DOMNodeList object containing all the matched DOMElement(s).
    Since
    DOM Level 1
    virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
    const XMLCh *  localName 
    ) const
    pure virtual

    Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

    Parameters
    namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
    localNameThe local name of the elements to match on. The special value "*" matches all local names.
    Returns
    A new DOMNodeList object containing all the matched DOMElement(s).
    Since
    DOM Level 2
    virtual DOMImplementation* xercesc::DOMDocument::getImplementation ( ) const
    pure virtual

    The DOMImplementation object that handles this document.

    A DOM application may use objects from multiple implementations.

    Since
    DOM Level 1
    virtual const XMLCh* xercesc::DOMDocument::getInputEncoding ( ) const
    pure virtual

    An attribute specifying the encoding used for this document at the time of the parsing.

    This is null when it is not known, such as when the DOMDocument was created in memory.

    Since
    DOM Level 3
    virtual bool xercesc::DOMDocument::getStrictErrorChecking ( ) const
    pure virtual

    An attribute specifying whether errors checking is enforced or not.

    When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMDocument::getXmlEncoding ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, the encoding of this document.

    This is null when unspecified or when it is not known, such as when the DOMDocument was created in memory.

    Since
    DOM Level 3
    virtual bool xercesc::DOMDocument::getXmlStandalone ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, whether this document is standalone.

    This is false when unspecified.

    Since
    DOM Level 3
    virtual const XMLCh* xercesc::DOMDocument::getXmlVersion ( ) const
    pure virtual

    An attribute specifying, as part of the XML declaration, the version number of this document.

    This is null when unspecified.
    This attribute represents the property [version] defined in .

    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMDocument::importNode ( const DOMNode importedNode,
    bool  deep 
    )
    pure virtual

    Imports a node from another document to this document.

    The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document; this method creates a new copy of the source node.
    For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI). As in the cloneNode operation on a DOMNode, the source node is not altered.
    Additional information is copied as appropriate to the nodeType, attempting to mirror the behavior expected if a fragment of XML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node.

    ATTRIBUTE_NODE
    The ownerElement attribute is set to null and the specified flag is set to true on the generated DOMAttr. The descendants of the source DOMAttr are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the deep parameter has no effect on DOMAttr nodes; they always carry their children with them when imported.
    DOCUMENT_FRAGMENT_NODE
    If the deep option was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Otherwise, this simply generates an empty DOMDocumentFragment.
    DOCUMENT_NODE
    DOMDocument nodes cannot be imported.
    DOCUMENT_TYPE_NODE
    DOMDocumentType nodes cannot be imported.
    ELEMENT_NODE
    Specified attribute nodes of the source element are imported, and the generated DOMAttr nodes are attached to the generated DOMElement. Default attributes are not copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the importNode deep parameter was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
    ENTITY_NODE
    DOMEntity nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId, systemId, and notationName attributes are copied. If a deep import is requested, the descendants of the the source DOMEntity are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
    ENTITY_REFERENCE_NODE
    Only the DOMEntityReference itself is copied, even if a deep import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
    NOTATION_NODE
    DOMNotation nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId and systemId attributes are copied. Note that the deep parameter has no effect on DOMNotation nodes since they never have any children.
    PROCESSING_INSTRUCTION_NODE
    The imported node copies its target and data values from those of the source node.
    TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
    These three types of nodes inheriting from DOMCharacterData copy their data and length attributes from those of the source node.
    Parameters
    importedNodeThe node to import.
    deepIf true, recursively import the subtree under the specified node; if false, import only the node itself, as explained above. This has no effect on DOMAttr , DOMEntityReference, and DOMNotation nodes.
    Returns
    The imported node that belongs to this DOMDocument.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if the type of node being imported is not supported.
    Since
    DOM Level 2
    virtual void xercesc::DOMDocument::normalizeDocument ( )
    pure virtual

    This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.

    The actual result depends on the features being set. See DOMConfiguration for details.


    Noticeably this method normalizes DOMText nodes, makes the document "namespace wellformed", according to the algorithm described below in pseudo code, by adding missing namespace declaration attributes and adding or changing namespace prefixes, updates the replacement tree of DOMEntityReference nodes, normalizes attribute values, etc.
    Mutation events, when supported, are generated to reflect the changes occurring on the document. Note that this is a partial implementation. Not all the required features are implemented. Currently DOMAttr and DOMText nodes are normalized. Features to remove DOMComment and DOMCDATASection work.

    Since
    DOM Level 3
    virtual DOMNode* xercesc::DOMDocument::renameNode ( DOMNode n,
    const XMLCh *  namespaceURI,
    const XMLCh *  qualifiedName 
    )
    pure virtual

    Rename an existing node.

    When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. This only applies to nodes of type ELEMENT_NODE and ATTRIBUTE_NODE.
    When a new node is created, the following operations are performed: the new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an DOMElement its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attach to the new node, the user data event NODE_RENAMED is fired.
    When the node being renamed is an DOMAttr that is attached to an DOMElement, the node is first removed from the DOMElement attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back.

    Parameters
    nThe node to rename.
    namespaceURIThe new namespaceURI.
    qualifiedNameThe new qualified name.
    Returns
    The renamed node. This is either the specified node or the new node that was created to replace the specified node.
    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised when the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
    WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
    NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" . Also raised, when the node being renamed is an attribute, if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setDocumentURI ( const XMLCh *  documentURI)
    pure virtual

    The location of the document or null if undefined.


    Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setStrictErrorChecking ( bool  strictErrorChecking)
    pure virtual

    An attribute specifying whether errors checking is enforced or not.

    When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setXmlStandalone ( bool  standalone)
    pure virtual

    An attribute specifying, as part of the XML declaration, whether this document is standalone.


    This attribute represents the property [standalone] defined in .

    Since
    DOM Level 3
    virtual void xercesc::DOMDocument::setXmlVersion ( const XMLCh *  version)
    pure virtual

    An attribute specifying, as part of the XML declaration, the version number of this document.

    This is null when unspecified.
    This attribute represents the property [version] defined in .

    Since
    DOM Level 3

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/dir_cf50e6b7905ca68e8eacb67c516ef759_dep.map0000644001725400016040000000137413273140101021127 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.png0000644001725400016040000001162113273140101017601 00000000000000PNG  IHDRp bKGDFIDATxiXW$,)AAD!R..U쫂֫F][5 *RQAlj-RkAd [2gqOә;93 A`0o`Ko0tC廮[ٳgoO waXV3C)1|pCCC0}O>Do0#Q>OjjC o0tů9_WW DGG߾}[(ϝ;b\A߸qcNNΩSLLL555y<^@@Zgg ?>66̙3dM Ν;gΜٳg|T۶mq"##\?< h ?%bΝ.]%=022JeeegϞ]bǵߟǎsξ}L&TVV!//O8A"(**jǎVUUuVҰGGBTzҤIԲ'N<{,իW6hkkŋWǿս z~5jԶmیΜ9>:y򤮮Ǎgjjjoo/*++ɫm̘1Ի7o߿?ݰa 33sh#S3==ߟZV]]]OOOOO zEE+*>>{1slxb4 lܹsSRRЦcjj*(2--Mf`H$LLLGx<"vrrJKKJh3##:uOxxݻQ[,Eyzz@GG@ 2|իW}}}gΜ?U`٨Ccc~;k,ÇKs΂ f̘ tybSSӊ hll_.pRԶ%%%Ԕ;qDj疖X\QQ[ZZ~_UUE@iiiYY'MeddDOLL ݹs[N> Bȑ#=q|̃9rСCp9]n߾'_֭[AAAQQQu"/`OS  LV~7Ʋe˦N:m4__`;vl||lll\2k׮&Lp Ȱp8JjVQQWkSSS++e˖ҥKk׮544477ɑ/ᡥ5e :k֬122277_d 9 S3g444t%`Ovox왱1hii=~x̘1?:t(gϞK*MܼyjѢEuprr [fMzz3d2דYuu5TVVzyy'_P__.D"T*E LLLPYʌz˩PLW7A\pa„ hɓ---qqqƍ##666wAW2{پ}'O&裏[ZZ^ZRRdMGGnjT2NPVVΥΩSnܸqƍd4 sp8&) fEE22t)z7uuu555yyyBH$Zn]NNγg222g͚J~+++ꃟnpuuoB>L6ngg1j(%kx>> |>?))SDFFs8>駟R;8;;('E||մ[ZZ3FXtiDD ߛkڵ+WTUUurrBekkkpJ  oMHHȿ=ʯ m/\-{b)ʿS}6PxҥӧMw<|ݝغ_~otSVQ((oni9pЁ^O^^c%LPEQ`tԔ0*D:c:}#Ge0G?z(}#ˬYwUL&OR`Ȣ5~<2UӦMA}E io?T__wAo0u*bTJxym9}|y82Lm9}̞=\]m{[K_5_|y=rPSkh>)%7; #FsU}kx-PVVJ(x]<\&7:``} oJKK,Yn?F&w直9s'%%y<`0?~: 6|!!!---(Bo7_䉾>jnܸQFm޼9 ^|jժ?}4/՟:DY&77ٳǎKJJ QE+}WUUݸqCo#L6YG2?|Lomm^bA+W3fL[[nnn7o&u@ *fZZYWz2zBjǛ .D":thSS0000 ׮]333KMM 133300Xx1f@rr2c111ѡ0_~AlO0]d:EGG?~<44ĉѪdO~T>tЋ/Ц_P:DѤBkee{n B  >\[[ŋ '_r8P~RRa@@@kk`?&RrYxoeenݺv*--=zMЅ~-[1"??`6l*Q]]] cǎ466ٳGacbb1~mL'ٴil߾G 8ݻAijj@͕+WLLL'OgϞO(!ݻwH$/^DFF\|:%%=#L>ٳPSS껺eggs-[( v:D<aÆ BNIIE VUUu޽"H*644H$ҽjkk !Rt֬Y,k…@qq_qԩɓ'( A[nfX UCD:mmm5JG>}ZoRSS H$(Z x.0(/J [X*2fØ҇V l6@|A_Johh9s&jSzQQ2#bbbtttlvbbcP\\rRǑ#Gn}с6RippBU?]CC#//O:YX,F<60(j"""\\\֯_Oc'Q>}"۱cGWYbX*9svҥ3f̨U~e777(//W槐IسgCHH4A544dfftuGBm<0)S yPR$LfS3hР>TXJ T)3H$m۶8… (WǏzj &N|b1NHH>z( .\X^^TWWc^| P4PӥR'M$Hhkkxͣ^AZʊ͛B A:ŋ%%%YYY&L/REȍ7ᦦW\v횥% "22,TXXX| ݟG%B}}%K8NWXD=---6l066љ7oH$Bq, 6lذ$mmmSN ۾}!C~촴9ȤGGGSA999L&3!!z>л89O Ǝ-[x< oܸM UD" 斔d``'jFEE 4H__͚5bXac;&99RHHH}m2Og7wO~~… sss-[֋zy? jnn𨮮677^-MaM?GGX?@) o0tCS kkkS#mmmCCw+  o 1t o0tCe}ОIENDB`XQilla-2.3.4/docs/dom3-api/DOMNodeIterator_8hpp__incl.md50000644001725400016040000000004013273140077017647 0000000000000056559525fbf933e4ed2d4628fc8cbf50XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.map0000644001725400016040000000037713273140101023073 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathResult_8hpp.html0000644001725400016040000001237413273140101016607 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathResult.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    Include dependency graph for DOMXPathResult.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathResult
     The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_24.png0000644001725400016040000000477413273140101016042 00000000000000PNG  IHDR%1bKGD IDATx{0_-rfʭФ&$&i\B5qS Ee&r4Pjtq4Vb7by8y3s|/ygw!B@8!@%E"P |ٳSSS  _ L|&mjnnA777%N*EDg,@$J @%Egbp;b6mgg|-[\tI"`2_z{{HN:::{3&X,֚5k444,,, C*b!iii ORDkkP0$$dٲes"k@Fhhhx_~޷o@ @###O>Ç7lذsNDt)JKK fkjj:::[ZZoߎz}ﵵvvv55/^`6߼yC"Adϟ<544x0111A.W@oo\&WSbQ*ر#!!UY,J#H$233B^^^X{70PWWk511Aeww)>>YaŽ}''֬r!yyyb099fi4!͞$HUUU&&&555&&&+W  ȚѣGT*uڵH$ȅ|YTIHH X---6ݰ_ـ ;h'־qjڱcGoo/*cjdɒk׮ T::::55L}mbzӍ:{,0''o?-,Y%Hmlldrnn.!x]VMK$:^UU!ܽ{+W>hx! %!Hw711A&߽{%%%do0 Jŏ 놾t778Lh``.9 022A֋/*JEEE|>ѣ{g0##U?)))^^^qtt˗3rQD"yzzbX7G(---,,ttt466('FFF@h42ݍ]]] cV|dŚrss;<ϧHֶuh)[d2\]]\.>MOVfgg6UV|Ç?.ᎏX,###@ cݺuK..++F_ϜիWwmH$d2.\̸_.#&$IRRӧ=QQQ!""BCCcdd';; &&R8J,>!}}UV:uJ2EPay Xo߹s'//oc)EFSS͛9sNL}ĉ _ Vggg>/#444\xfb"TX*H,^TT Xl/(s"P(uuu\"ATq"P Db"TX*??#IENDB`XQilla-2.3.4/docs/dom3-api/DOMXPathExpression_8hpp__incl.map0000644001725400016040000000031513273140101020435 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.png0000644001725400016040000000701713273140101020776 00000000000000PNG  IHDRwbKGD IDATx{XWBRD)o*,-ZuV% "T*,HXReV*YJU j[7X*(F2ǴYVx~{Ϝ?I;&,~N3jD"HG7BP(bJKw]>AA7~ny65)$)$)$)#F*e!b혉x;[-~Yx~KK3V@xs\^AV[X ϟY&ܹ3?@}aü޵ū/O/[M;G ŃȄ䒒rs7ŋ2+׮O,ׯ@0UUM8sg81W׮1{ ׭zSZTuпֶ6n|7 #23Skj? 1cm 4t_xa g;<<̔K~ s:dI;UkXXYYge}`ѣ}݇N%NMô<꫓{.0##^~9U1~|=aڸ±fM!Γ'GD^yE]%KR@Qhy[,//;?wb me<h͛>oLmmcjYL\[uu7Ma{>Tvpp{kEbZ$$l/{bhA A A A A A A fwʬYjpBe ׯD}'5C}}`&22z83 Ŵ; }GSSSAA}nb#/^4OUUUÇ74cАTիtmjj @P!{4X0Lxo߶qV€kk배03.fc33iӦ0h1Zc:T*u1  ww߿^ =b#"":^xGфBV(JLLLlll]]_L>$(((%%Š322$IEEŘ1ck3lݺ͛۷o733knnxkvJEz=3}.F.ddd }}}o޼Ï$]tЛd4Ǣٽ8ą=C_0BbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbBbKkӐna`?.#gX ;H^4>hA A A:g.pIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementationList-members.html0000644001725400016040000000776213273140100023745 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMImplementationList Member List

    This is the complete list of members for xercesc::DOMImplementationList, including all inherited members.

    DOMImplementationList()xercesc::DOMImplementationListinlineprotected
    getLength() const =0xercesc::DOMImplementationListpure virtual
    item(XMLSize_t index) const =0xercesc::DOMImplementationListpure virtual
    release()=0xercesc::DOMImplementationListpure virtual
    ~DOMImplementationList()xercesc::DOMImplementationListinlinevirtual
    XQilla-2.3.4/docs/dom3-api/ftv2blank.png0000644001725400016040000000012613273140077014602 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/dom3-api/DOMException_8hpp.html0000644001725400016040000001326213273140101016317 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMException.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/util/PlatformUtils.hpp>
    Include dependency graph for DOMException.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMException
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.md50000644001725400016040000000004013273140100020635 000000000000009b8310ac165c56b19db190617abfeddfXQilla-2.3.4/docs/dom3-api/dir_e3266bbc227f825a287bdb912a8a79c0_dep.png0000644001725400016040000000660413273140101020751 00000000000000PNG  IHDRbKGD 9IDATxkPwᦘpG! #*z{P:= FShT%Zs@kL/FVu"3Si+kHu 0amJ"agKB6` qv@.F%!@#h\Kr 4B.F%!@#hi銊 3vȑ#_b#""7ϮKxI)S8qwmjjzw/|잞on_}u믿߳0/oZ*+oUi --MEE[qYIa`]]SFFT?v?3gjV71%!ޫ޾}E!2p͚5`ժU=fﻸd2@K%Z7͛_]7BjGx킹s旖\hc+|aY^^K/WW׭[ٳyfhhq+8;;755mٲ/,,̌Z@ $x88Hhggf663kV *-uM%3]ϟ&feeUVVvvv;wn׮]yVuvvJ^Ktoqoػ7wHkkk(J??.cSRIYgVvww֞3^G^6??5e\\̉ޖGЕˣGܹرcZLKKH$quu-**JLL 9sfBBBLLeߣccr||˞ٻ{w /'$lb7o~===+773<ܿ0ǎ:uai)R:<epp^e's9ܴq/E<P h\Kr 4B.F%q~<+W.w؟+WD"1C`|||8%/0\.^`-!@#h\Kr 4B.F%!@#h\'<6mYD2c ??!+\=$4ͩS>~8xȑ .( Fo&{8^vww ?XBJKK?w%KرZ\G#""f…7nܰRw$!#B|>;mՎ̥;!DѰgGVg.{9PO?"Ⱥ-'KB͛Riww7lb펀{xhTwV!!!...۶mKLLvG-ʕ+ bHee[iP8<O&d2&bK}7]\\Y^0 {_Nv/ccc !Z-;舷s-/zP(ы/.]-!))yC 22-R. ! ZAggM6ZĖ㬀GJeppUs%!$)) G(211Qgy<^JJs8!$44TT;onnnK`Zw$$'';::BYp!Bil2z蘜lvl2Bpٲe uv&sIIJJ2 +V1c{{/{lp"ć2Bh9;9, 7v.HҬR %oŤMd %7h\Kr 4B.F%!@#h\Kr 4B.F%!@#hd\VUUy{{jBHyyH$'t,//ӧgeetajkkT7mڴ{FE 4iҬY>Gp#+L('INN޸qcgg˗޹sGTڵrJB7o>>!!!yyyv&44{9s|?qzZ*>|XVޡ>V)Q+L30qϥ`wtt2L4iAQj #\`0|wqqqSLY|ٳg롱J ??0fLg`L{O[[[IIITTTFFqӳ}JZ}%vP(}6;r}^PTիU*v52V)cUxl3`I&Υ^OMMMOO///?|uu5;vVRSZZ:| 64666660ѧOh4ZM XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMNodeIterator Member List

    This is the complete list of members for xercesc::DOMNodeIterator, including all inherited members.

    detach()=0xercesc::DOMNodeIteratorpure virtual
    DOMNodeIterator()xercesc::DOMNodeIteratorinlineprotected
    DOMNodeIterator(const DOMNodeIterator &)xercesc::DOMNodeIteratorinlineprotected
    getExpandEntityReferences()=0xercesc::DOMNodeIteratorpure virtual
    getFilter()=0xercesc::DOMNodeIteratorpure virtual
    getRoot()=0xercesc::DOMNodeIteratorpure virtual
    getWhatToShow()=0xercesc::DOMNodeIteratorpure virtual
    nextNode()=0xercesc::DOMNodeIteratorpure virtual
    previousNode()=0xercesc::DOMNodeIteratorpure virtual
    release()=0xercesc::DOMNodeIteratorpure virtual
    ~DOMNodeIterator()xercesc::DOMNodeIteratorinlinevirtual
    XQilla-2.3.4/docs/dom3-api/functions_func_0x63.html0000644001725400016040000002341113273140100016661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - c -

    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMTreeWalker.html0000644001725400016040000012132713273140100020533 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMTreeWalker Class Referenceabstract

    DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...

    #include <DOMTreeWalker.hpp>

    Public Member Functions

    Destructor
    virtual ~DOMTreeWalker ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual DOMNodegetRoot ()=0
     The root node of the DOMTreeWalker, as specified when it was created. More...
     
    virtual DOMNodeFilter::ShowType getWhatToShow ()=0
     This attribute determines which node types are presented via the DOMTreeWalker. More...
     
    virtual DOMNodeFiltergetFilter ()=0
     Return The filter used to screen nodes. More...
     
    virtual bool getExpandEntityReferences ()=0
     The value of this flag determines whether the children of entity reference nodes are visible to the DOMTreeWalker. More...
     
    virtual DOMNodegetCurrentNode ()=0
     Return the node at which the DOMTreeWalker is currently positioned. More...
     
    virtual DOMNodeparentNode ()=0
     Moves to and returns the closest visible ancestor node of the current node. More...
     
    virtual DOMNodefirstChild ()=0
     Moves the DOMTreeWalker to the first visible child of the current node, and returns the new node. More...
     
    virtual DOMNodelastChild ()=0
     Moves the DOMTreeWalker to the last visible child of the current node, and returns the new node. More...
     
    virtual DOMNodepreviousSibling ()=0
     Moves the DOMTreeWalker to the previous sibling of the current node, and returns the new node. More...
     
    virtual DOMNodenextSibling ()=0
     Moves the DOMTreeWalker to the next sibling of the current node, and returns the new node. More...
     
    virtual DOMNodepreviousNode ()=0
     Moves the DOMTreeWalker to the previous visible node in document order relative to the current node, and returns the new node. More...
     
    virtual DOMNodenextNode ()=0
     Moves the DOMTreeWalker to the next visible node in document order relative to the current node, and returns the new node. More...
     
    virtual void setCurrentNode (DOMNode *currentNode)=0
     The node at which the DOMTreeWalker is currently positioned. More...
     
    Non-standard Extension
    virtual void release ()=0
     Called to indicate that this TreeWalker is no longer in use and that the implementation may relinquish any resources associated with it. More...
     

    Protected Member Functions

    Hidden constructors
     DOMTreeWalker ()
     
     DOMTreeWalker (const DOMTreeWalker &)
     

    Detailed Description

    DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any).

    Any function which performs navigation using a DOMTreeWalker will automatically support any view defined by a DOMTreeWalker.

    Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from the same subtree in the complete, unfiltered document. Nodes that are siblings in the DOMTreeWalker view may be children of different, widely separated nodes in the original view. For instance, consider a DOMNodeFilter that skips all nodes except for DOMText nodes and the root node of a document. In the logical view that results, all text nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the structure of the original document.

    See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

    Since
    DOM Level 2

    Constructor & Destructor Documentation

    xercesc::DOMTreeWalker::DOMTreeWalker ( )
    inlineprotected
    xercesc::DOMTreeWalker::DOMTreeWalker ( const DOMTreeWalker )
    inlineprotected
    virtual xercesc::DOMTreeWalker::~DOMTreeWalker ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNode* xercesc::DOMTreeWalker::firstChild ( )
    pure virtual

    Moves the DOMTreeWalker to the first visible child of the current node, and returns the new node.

    If the current node has no visible children, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no visible children in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::getCurrentNode ( )
    pure virtual

    Return the node at which the DOMTreeWalker is currently positioned.

    Since
    DOM Level 2
    virtual bool xercesc::DOMTreeWalker::getExpandEntityReferences ( )
    pure virtual

    The value of this flag determines whether the children of entity reference nodes are visible to the DOMTreeWalker.

    If false, these children and their descendants will be rejected. Note that this rejection takes precedence over whatToShow and the filter, if any.
    To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the DOMTreeWalker. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

    Since
    DOM Level 2
    virtual DOMNodeFilter* xercesc::DOMTreeWalker::getFilter ( )
    pure virtual

    Return The filter used to screen nodes.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::getRoot ( )
    pure virtual

    The root node of the DOMTreeWalker, as specified when it was created.

    Since
    DOM Level 2
    virtual DOMNodeFilter::ShowType xercesc::DOMTreeWalker::getWhatToShow ( )
    pure virtual

    This attribute determines which node types are presented via the DOMTreeWalker.

    The available set of constants is defined in the DOMNodeFilter interface. Nodes not accepted by whatToShow will be skipped, but their children may still be considered. Note that this skip takes precedence over the filter, if any.

    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::lastChild ( )
    pure virtual

    Moves the DOMTreeWalker to the last visible child of the current node, and returns the new node.

    If the current node has no visible children, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no children in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::nextNode ( )
    pure virtual

    Moves the DOMTreeWalker to the next visible node in document order relative to the current node, and returns the new node.

    If the current node has no next node, or if the search for nextNode attempts to step upward from the DOMTreeWalker's root node, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no next node in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::nextSibling ( )
    pure virtual

    Moves the DOMTreeWalker to the next sibling of the current node, and returns the new node.

    If the current node has no visible next sibling, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no next sibling. in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::parentNode ( )
    pure virtual

    Moves to and returns the closest visible ancestor node of the current node.

    If the search for parentNode attempts to step upward from the DOMTreeWalker's root node, or if it fails to find a visible ancestor node, this method retains the current position and returns null.

    Returns
    The new parent node, or null if the current node has no parent in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::previousNode ( )
    pure virtual

    Moves the DOMTreeWalker to the previous visible node in document order relative to the current node, and returns the new node.

    If the current node has no previous node, or if the search for previousNode attempts to step upward from the DOMTreeWalker's root node, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no previous node in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual DOMNode* xercesc::DOMTreeWalker::previousSibling ( )
    pure virtual

    Moves the DOMTreeWalker to the previous sibling of the current node, and returns the new node.

    If the current node has no visible previous sibling, returns null, and retains the current node.

    Returns
    The new node, or null if the current node has no previous sibling. in the DOMTreeWalker's logical view.
    Since
    DOM Level 2
    virtual void xercesc::DOMTreeWalker::release ( )
    pure virtual

    Called to indicate that this TreeWalker is no longer in use and that the implementation may relinquish any resources associated with it.

    Access to a released object will lead to unexpected result.

    virtual void xercesc::DOMTreeWalker::setCurrentNode ( DOMNode currentNode)
    pure virtual

    The node at which the DOMTreeWalker is currently positioned.


    Alterations to the DOM tree may cause the current node to no longer be accepted by the DOMTreeWalker's associated filter. currentNode may also be explicitly set to any node, whether or not it is within the subtree specified by the root node or would be accepted by the filter and whatToShow flags. Further traversal occurs relative to currentNode even if it is not part of the current view, by applying the filters in the requested direction; if no traversal is possible, currentNode is not changed.

    Exceptions
    DOMExceptionNOT_SUPPORTED_ERR: Raised if an attempt is made to set currentNode to null.
    Since
    DOM Level 2

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/globals_func.html0000644001725400016040000000407413273140100015520 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     
    XQilla-2.3.4/docs/dom3-api/functions_func_0x69.html0000644001725400016040000001613113273140100016670 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - i -

    XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp__dep__incl.map0000644001725400016040000000023513273140100020076 00000000000000 XQilla-2.3.4/docs/dom3-api/XPath2MemoryManager_8hpp_source.html0000644001725400016040000025610013273140077021207 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2MemoryManager.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __XPATH2MEMORYMANAGER_HPP
    21 #define __XPATH2MEMORYMANAGER_HPP
    22 
    23 #include <algorithm>
    24 #include <assert.h>
    25 #include <cstddef>
    26 
    27 #include <xqilla/framework/XQillaExport.hpp>
    28 
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 class DOMNode;
    33 class XMLGrammarPool;
    34 XERCES_CPP_NAMESPACE_END
    35 
    36 class VariableStore;
    37 class VariableTypeStore;
    38 class DynamicContext;
    39 class Collation;
    40 class CollationHelper;
    41 class XQillaNSResolver;
    42 class ATDecimalOrDerived;
    43 class StringPool;
    44 
    45 class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager
    46 {
    47 public:
    48  virtual ~XPath2MemoryManager() {}
    49 
    51  virtual void reset() = 0;
    52 
    54  virtual const XMLCh* getPooledString(const XMLCh *src) = 0;
    55  virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0;
    56  virtual const XMLCh* getPooledString(const char *src) = 0;
    57 
    58  // from MemoryManager
    59 #if _XERCES_VERSION >= 30000
    60  virtual void* allocate(XMLSize_t numElements) = 0;
    61 #else
    62  virtual void* allocate(size_t numElements) = 0;
    63 #endif
    64  virtual void deallocate(void* p) = 0;
    65 
    67  virtual Collation* createCollation(CollationHelper* helper) = 0;
    68 
    70  virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
    71 
    73  virtual VariableTypeStore* createVariableTypeStore() = 0;
    74 
    76  virtual ATDecimalOrDerived* createInteger(int value) = 0;
    77 
    78  virtual void dumpStatistics() const = 0;
    79  virtual size_t getAllocatedObjectCount() const = 0;
    80  virtual size_t getTotalAllocatedMemory() const = 0;
    81  virtual const StringPool *getStringPool() const = 0;
    82 };//XPath2MemoryManager
    83 
    84 template <class _Tp>
    86 {
    87 public:
    88  typedef size_t size_type;
    89  typedef ptrdiff_t difference_type;
    90  typedef _Tp* pointer;
    91  typedef const _Tp* const_pointer;
    92  typedef _Tp& reference;
    93  typedef const _Tp& const_reference;
    94  typedef _Tp value_type;
    95 
    96  template <class _Tp1> struct rebind {
    98  };
    99 
    100  // Should never be used - for compiling on AIX only
    102  {
    103  assert(false);
    104  }
    105 
    106  XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    107  {
    108  _memMgr=memMgr;
    109  }
    110 
    111  // define a copy constructor, because we don't want to copy the singleton object
    113  {
    114  _memMgr=o._memMgr;
    115  }
    116 #if _MSC_VER >= 1500
    117  // Needed for Visual Studio 2008
    118  template<class _Tp1> XQillaAllocator(const XQillaAllocator<_Tp1>& o)
    119  {
    120  _memMgr = o._memMgr;
    121  }
    122 #endif
    123  pointer allocate(size_t _n, const void* = 0)
    124  {
    125 #ifndef _MSC_VER
    126  if(_n==1)
    127  return (pointer)_singleton;
    128 #endif
    129  //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl;
    130  if(_memMgr)
    131  return _n != 0 ? static_cast<pointer>(_memMgr->allocate(_n*sizeof(_Tp))) : 0;
    132  else
    133  return _n != 0 ? static_cast<pointer>(malloc(_n*sizeof(_Tp))) : 0;
    134  }
    135 
    136  void deallocate(void* _p, size_t _n)
    137  {
    138  //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl;
    139  if(_p) {
    140  if(_p!=_singleton) {
    141  if(_memMgr)
    142  _memMgr->deallocate(_p);
    143  else
    144  free(_p);
    145  }
    146  }
    147  }
    148 
    150  {
    151  new ((void *)_p) _Tp(_v);
    152  }
    153 
    154  void destroy(pointer _p)
    155  {
    156  _p->~_Tp();
    157  }
    158 
    160  {
    161  return 0xFFFFFFFF;
    162  }
    163 
    165  {
    166  return 0xFFFFFFFF;
    167  }
    168 
    169  bool operator==(const XQillaAllocator<_Tp>& o) const
    170  {
    171  return &o == this;
    172  }
    173 
    174  bool operator!=(const XQillaAllocator<_Tp>& o) const
    175  {
    176  return &o != this;
    177  }
    178 
    180  {
    181  return _memMgr != o._memMgr;
    182  }
    183 
    184  char _singleton[sizeof(_Tp)];
    185  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr;
    186 };
    187 
    188 // ---------------------------------------------------------------------------
    189 //
    190 // Operator new. Global overloaded version, lets any object be allocated on
    191 // the heap owned by a MemoryManager.
    192 //
    193 // ---------------------------------------------------------------------------
    194 inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    195 {
    196  void *p = memMgr->allocate(amt);
    197  return p;
    198 }
    199 
    200 inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
    201 {
    202  memMgr->deallocate(ptr);
    203 }
    204 
    205 template<class TYPE>
    207 {
    208 public:
    209  AutoRelease(TYPE *p)
    210  : p_(p) {}
    212  {
    213  if(p_ != 0)
    214  p_->release();
    215  }
    216 
    217  TYPE &operator*() const
    218  {
    219  return *p_;
    220  }
    221  TYPE *operator->() const
    222  {
    223  return p_;
    224  }
    225  operator TYPE*() const
    226  {
    227  return p_;
    228  }
    229  TYPE *get() const
    230  {
    231  return p_;
    232  }
    233  TYPE *adopt()
    234  {
    235  TYPE *tmp = p_;
    236  p_ = 0;
    237  return tmp;
    238  }
    239  TYPE *swap(TYPE *p)
    240  {
    241  TYPE *tmp = p_;
    242  p_ = p;
    243  return tmp;
    244  }
    245  void set(TYPE *p)
    246  {
    247  if(p_ != 0)
    248  p_->release();
    249  p_ = p;
    250  }
    251 
    252 private:
    254  AutoRelease<TYPE> &operator=(const AutoRelease<TYPE> &);
    255 
    256  TYPE *p_;
    257 };
    258 
    259 template<class TYPE>
    261 {
    262 public:
    263  AutoDelete(TYPE *p)
    264  : p_(p) {}
    266  {
    267  delete p_;
    268  }
    269 
    270  TYPE &operator*() const
    271  {
    272  return *p_;
    273  }
    274  TYPE *operator->() const
    275  {
    276  return p_;
    277  }
    278  operator TYPE*() const
    279  {
    280  return p_;
    281  }
    282  TYPE *get() const
    283  {
    284  return p_;
    285  }
    286  TYPE *adopt()
    287  {
    288  TYPE *tmp = p_;
    289  p_ = 0;
    290  return tmp;
    291  }
    292  TYPE *swap(TYPE *p)
    293  {
    294  TYPE *tmp = p_;
    295  p_ = p;
    296  return tmp;
    297  }
    298  void set(TYPE *p)
    299  {
    300  delete p_;
    301  p_ = p;
    302  }
    303 
    304 private:
    305  AutoDelete(const AutoDelete<TYPE> &);
    306  AutoDelete<TYPE> &operator=(const AutoDelete<TYPE> &);
    307 
    308  TYPE *p_;
    309 };
    310 
    311 template<class TYPE>
    313 {
    314 public:
    316  : p_(p) {}
    318  {
    319  delete [] p_;
    320  }
    321 
    322  TYPE &operator*() const
    323  {
    324  return *p_;
    325  }
    326  TYPE *operator->() const
    327  {
    328  return p_;
    329  }
    330  operator TYPE*() const
    331  {
    332  return p_;
    333  }
    334  TYPE *get() const
    335  {
    336  return p_;
    337  }
    338  TYPE *adopt()
    339  {
    340  TYPE *tmp = p_;
    341  p_ = 0;
    342  return tmp;
    343  }
    344  TYPE *swap(TYPE *p)
    345  {
    346  TYPE *tmp = p_;
    347  p_ = p;
    348  return tmp;
    349  }
    350  void set(TYPE *p)
    351  {
    352  delete [] p_;
    353  p_ = p;
    354  }
    355 
    356 private:
    358  AutoDeleteArray<TYPE> &operator=(const AutoDeleteArray<TYPE> &);
    359 
    360  TYPE *p_;
    361 };
    362 
    363 template<class TYPE>
    365 {
    366 public:
    367  AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE))
    368  : p_(0), mmgr_(mmgr) {
    369  p_ = (TYPE*)mmgr_->allocate(size);
    370  }
    371  AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr)
    372  : p_(p), mmgr_(mmgr) {}
    374  {
    375  if(p_ != 0)
    376  mmgr_->deallocate((void*)p_);
    377  }
    378 
    379  TYPE &operator*() const
    380  {
    381  return *p_;
    382  }
    383  TYPE *operator->() const
    384  {
    385  return p_;
    386  }
    387  operator TYPE*() const
    388  {
    389  return p_;
    390  }
    391  TYPE *get() const
    392  {
    393  return p_;
    394  }
    395  TYPE *adopt()
    396  {
    397  TYPE *tmp = p_;
    398  p_ = 0;
    399  return tmp;
    400  }
    401  TYPE *swap(TYPE *p)
    402  {
    403  TYPE *tmp = p_;
    404  p_ = p;
    405  return tmp;
    406  }
    407  void set(TYPE *p)
    408  {
    409  if(p_ != 0)
    410  mmgr_->deallocate((void*)p_);
    411  p_ = p;
    412  }
    413 
    414 private:
    416  AutoDeallocate<TYPE> &operator=(const AutoDeallocate<TYPE> &);
    417 
    418  TYPE *p_;
    419  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
    420 };
    421 
    422 #endif //__XPATH2MEMORYMANAGER_HPP
    423 
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:270
    XQillaAllocator(xercesc::MemoryManager *memMgr)
    Definition: XPath2MemoryManager.hpp:106
    bool operator==(const XQillaAllocator< _Tp > &o) const
    Definition: XPath2MemoryManager.hpp:169
    Definition: XPath2MemoryManager.hpp:364
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:401
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:338
    _Tp value_type
    Definition: XPath2MemoryManager.hpp:94
    char _singleton[sizeof(_Tp)]
    Definition: XPath2MemoryManager.hpp:184
    Definition: XPath2MemoryManager.hpp:45
    ~AutoDeleteArray()
    Definition: XPath2MemoryManager.hpp:317
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:274
    virtual void deallocate(void *p)=0
    This method deallocates memory.
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:286
    void deallocate(void *_p, size_t _n)
    Definition: XPath2MemoryManager.hpp:136
    Definition: XPath2MemoryManager.hpp:85
    size_type max_size(size_type) const
    Definition: XPath2MemoryManager.hpp:164
    Definition: XPath2MemoryManager.hpp:312
    ~AutoDelete()
    Definition: XPath2MemoryManager.hpp:265
    void construct(pointer _p, const_reference _v)
    Definition: XPath2MemoryManager.hpp:149
    xercesc::MemoryManager * _memMgr
    Definition: XPath2MemoryManager.hpp:185
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:239
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:344
    _Tp & reference
    Definition: XPath2MemoryManager.hpp:92
    AutoRelease(TYPE *p)
    Definition: XPath2MemoryManager.hpp:209
    virtual ~XPath2MemoryManager()
    Definition: XPath2MemoryManager.hpp:48
    virtual void * allocate(XMLSize_t size)=0
    This method allocates requested memory.
    AutoDeleteArray(TYPE *p)
    Definition: XPath2MemoryManager.hpp:315
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:322
    The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional...
    Definition: XQillaNSResolver.hpp:38
    AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)
    Definition: XPath2MemoryManager.hpp:371
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:326
    void destroy(pointer _p)
    Definition: XPath2MemoryManager.hpp:154
    size_t size_type
    Definition: XPath2MemoryManager.hpp:88
    const _Tp & const_reference
    Definition: XPath2MemoryManager.hpp:93
    _Tp * pointer
    Definition: XPath2MemoryManager.hpp:90
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:245
    ptrdiff_t difference_type
    Definition: XPath2MemoryManager.hpp:89
    Definition: XPath2MemoryManager.hpp:206
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:407
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:233
    TYPE * swap(TYPE *p)
    Definition: XPath2MemoryManager.hpp:292
    TYPE * adopt()
    Definition: XPath2MemoryManager.hpp:395
    bool operator!=(XQillaAllocator< _Tp > &o)
    Definition: XPath2MemoryManager.hpp:179
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:217
    size_type max_size() const
    Definition: XPath2MemoryManager.hpp:159
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:298
    void set(TYPE *p)
    Definition: XPath2MemoryManager.hpp:350
    bool operator!=(const XQillaAllocator< _Tp > &o) const
    Definition: XPath2MemoryManager.hpp:174
    pointer allocate(size_t _n, const void *=0)
    Definition: XPath2MemoryManager.hpp:123
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:383
    Definition: XPath2MemoryManager.hpp:96
    TYPE & operator*() const
    Definition: XPath2MemoryManager.hpp:379
    ~AutoDeallocate()
    Definition: XPath2MemoryManager.hpp:373
    ~AutoRelease()
    Definition: XPath2MemoryManager.hpp:211
    XQillaAllocator(const XQillaAllocator< _Tp > &o)
    Definition: XPath2MemoryManager.hpp:112
    XQillaAllocator()
    Definition: XPath2MemoryManager.hpp:101
    const _Tp * const_pointer
    Definition: XPath2MemoryManager.hpp:91
    AutoDelete(TYPE *p)
    Definition: XPath2MemoryManager.hpp:263
    XQillaAllocator< _Tp1 > other
    Definition: XPath2MemoryManager.hpp:97
    Definition: XPath2MemoryManager.hpp:260
    TYPE * operator->() const
    Definition: XPath2MemoryManager.hpp:221
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathException-members.html0000644001725400016040000003100113273140100023006 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathException Member List

    This is the complete list of members for xercesc::DOMXPathException, including all inherited members.

    codexercesc::DOMException
    DOMException()xercesc::DOMException
    DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
    DOMException(const DOMException &other)xercesc::DOMException
    DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
    DOMXPathException()xercesc::DOMXPathException
    DOMXPathException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMXPathException
    DOMXPathException(const DOMXPathException &other)xercesc::DOMXPathException
    ExceptionCode enum namexercesc::DOMXPathException
    fMemoryManagerxercesc::DOMExceptionprotected
    getMessage() const xercesc::DOMExceptioninline
    HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
    INDEX_SIZE_ERR enum valuexercesc::DOMException
    INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
    INVALID_ACCESS_ERR enum valuexercesc::DOMException
    INVALID_CHARACTER_ERR enum valuexercesc::DOMException
    INVALID_EXPRESSION_ERR enum valuexercesc::DOMXPathException
    INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
    INVALID_STATE_ERR enum valuexercesc::DOMException
    msgxercesc::DOMException
    NAMESPACE_ERR enum valuexercesc::DOMException
    NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
    NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
    NO_RESULT_ERROR enum valuexercesc::DOMXPathException
    NOT_FOUND_ERR enum valuexercesc::DOMException
    NOT_SUPPORTED_ERR enum valuexercesc::DOMException
    SYNTAX_ERR enum valuexercesc::DOMException
    TYPE_ERR enum valuexercesc::DOMXPathException
    TYPE_MISMATCH_ERR enum valuexercesc::DOMException
    VALIDATION_ERR enum valuexercesc::DOMException
    WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
    ~DOMException()xercesc::DOMExceptionvirtual
    ~DOMXPathException()xercesc::DOMXPathExceptionvirtual
    XQilla-2.3.4/docs/dom3-api/classXQillaExpression__inherit__graph.map0000644001725400016040000000040313273140101022365 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMImplementationLS_8hpp__incl.png0000644001725400016040000003272313273140100020573 00000000000000PNG  IHDR<bKGD IDATxw|SdAetR(KE**ȸe+ EE R@ )C^\2 -6#I&Ǒ!iq~ g<$9ϡh&|%v Ah^Ch^Ch^Y6lv+ׄB5k:wl0ۿzzzll>n8@hhؕ+WZ_n5-k-k-k-k-f+Y\.OJJ3g /0{T*vDX">>Yy:LZ*]!6oÔ˗oIII&3X B %xzzvǧO>}Q`` {WosݺuO=THHO8Я_?ϟݻOjT*5rsΝ{"""<==/^od`1-FQK/tEiiiӧO~Avtt|WҘ2$==!vs||'f̘1vɓ'O~wAߦM6nܸ 6(JMMMIIIƍ7n\RRRSSS43fK=!d…_~… ZBB;>1cL8q.|a6ť\?:uѣݫC0+ )**"UVVkq=d23Bʕ+>=矛7o;wnrr o߾`ݻw>f͚?.]bd˖-_|ŕ+Wvi>muܹz޼y[lݴi!СC?""bϞ= ,HNN_%%%}駿}t__,[ʕ+&LXlYJJJII5/]|m۶.}GE״A1#.\гgOwww}pvv1b!dʔ) c BBBbbb^}UƉ'x ??]Λ7SVcǎuuu9r$!Dc`/^Gy:MMMO^hQ```׮]g͚Ŷx≔/gϞ˔)SN:e lwC0B\]];v옛ۯ_? ? v9spvv&D"ǬAhhhYYOǏgb>m}tH$*((e2YDDөRL_B6?K.?~Ȑ!111111ӦM۵kWRRСCW&P] !B 4}ȑ~aþ>}}q@Ϟ=nܸ,Y-G/((ڵ+!Çt냃ɣqkPVWZjժgyFTSh$,,RTTdg4zPfEQO>ѣGus:@9`x%TWWWVV_~ޓH$&Mb4cƌz |||3#֭[ٖlܸ۶m>|8OLNN.))[|ÇadR$ s LCCwH$ꫯ$I~~ۇ f`L?F\xQ"dffn޼tv>s/-3n|u֝;w&%%:tĉbqƵ%Æ [d\.:tԩS̙q^{A͛7ϘU@@@Ϟ=ǏO?.X`NNNSL:t87ظqbs=7uTaq̙˗޽;99+>>~̙_?޽{ON:KcmBie7iҤ+WZ!F),,LLL>>%%a ZZ ѣG[6Cgw|뭷 ЇVKIiiizz[`ZZ/$$d|%Uk7GD"Q``[`(G\?n\F4m6 [DR<+ׯ3Qz:-{!v?QXX]RTtCsgh# 64IHر}-G-&kjRi/(ҹOLLv$4뭷Z~[k:zx ++DO8p`3Dn(((xz-k7^4iD"v+l B @ tiĉn@kZZZZZكf͚jEqhlNqxxx5*??_{}hNLLtuumh(*77Zs"{vcS^^sŊ7?D")**:{ZNLLlCݻ7++5BƜLy `N<~RcO>澾䐐TjCd2BHhhhΣe95!9\UUEٷo_ddd}}=!DT.[oٲeJtԩ+WN>ٛVG9::vu݄&899qGF~iBCtb7>MPرc}qvv drDŽ3g,]T.s;ܹsEر#&&O>ٽ{w.]<<<{ffOM}ƌ.]b~ǏAFFF߾}~;wBӧOZ*666##ƍ_t:t萔$Ho.֮]s;v޽iXBq i&\vV*O<w}T0{삂={BJKKu1uԡC޽{7##GVvH]]!dRt۶mI&I-[B˙&ݹsç5DBȨQR#21"''ŋl56[!fWB -UUU!!!qqqϯyֻwonFFMQQQb>ުR,UUUjVR|񕕕tkC 9Mob5Acc[T*ٳg/( PxM柇 vs+W0+kݻwYrڵ?XV2LV߿rΜ9GԹ?ms Jaa1ga2lҤI˖-rʦM / ޽{788yK  J|-HԩS'c݇ګiä} ZLIVϞ={ѢE{Qf/;ܿ?###!!믿n5mڴ7o޼y믿~}}[Q5bĈJRB!un:ff?oV*~WC3WhnnFB V\IwXc7o|wNj3g\hѱcO:8}:+;5}Hٶm[MMჾ/vg 0$ 6sMˆ zP(hBRYΝ[__ϽB./]4((cUUUrhNII֭Ctttjj /mի===u떚WT0ՕֺC{su {֭رcN6m4yd???`TVVN6;007ߔd+pRϢI3cԘ#2o۶-,,gѢEl5,vkZZ M4?X!`o:6-ƚ8qb+R)L$E2A,jBQQ-7GhiRWP^XQ, ]\,Zd2qEE:s=w@ݱGfR[PT$ Djgg%`c^y啧z-gTK (M999999%wTjHߣGiRѣ׏^\\=|xѽ| EQ=NG\?8VeeSYǎ]?sH$80rԨ^/Ji eܒ)!ݱsgH hhWZZO*ݻW|e>>|XVbKߨPomTT`q[ht)#GFFkظNf:> -,KVMMܧ Bc.ŘPȀ1MZ~~~9JD;DEDF3_ fD.Wkѣ~fm*c܇*eN1Zt+)a 3"mIYY-!ݩsgN:Z3hMMy \ٷoѽGa6c²nzaI{ʴc CS.Bh QDaIvv[Euug60~¼Bxzm:|x1}|}ݬxZX\1 ҋh-illҎ1NNmkBh0/ G Ŭ^M_!Z_*ax Ch0%; <|Xɝ&4 n-b1Ệ ƥqz33rƌÖA B!XvsD&S 0'c1y1߾-)+Ӝqyԩ#f67Zź4{d'Sab 3cTT@Aޮn,MBhM֭F5WhwXێFk&aH/6D#dgKJKu;6L fa77.]|/00Fv` +VWuի`$BzE;wE{6Cc[E/Aړ=ojRi, F|| ZŦi2~Ǽ?zGFDDcF~Q-G̭](ohH\h[p#H{5mZrzmJ]HQW_M? k Z>H{ʵKk1lB X_33$,;&&L~Ҕ#g`xM^?wkspefTo6ueǎ]۶mV.k*C*߻W5P z)M"_33yݿ_qDh^̫g2|IDATll0>ڐKӹn~dwr%D$$$m:Ê0>4ݧϪ2ƍ =`03&c %j%bJɔB Tv:n/3gXⅶj;01pddTC~A*!t@v}Z3ʿl(jǎ#GnM/yo/ !Uf \%TnCr[EomsӦ_|…I0B <ԫW-.QA"~?pttf=77؁@bpKč ۹3Wa8;wZ풾g?y BOm0:k7}surss\)S,۹s9Vu(#۵k[_cŜ)y|ELWbO22ΞVc OWWǜb__#{bp|(=ޭBD"ĉO|+nWIIG^|ggQee=wXu"H0-}1md8?wBGꅙ? >;OB;EQ99koʙ|r~EVVQEfnG;(45:iS'.HيE?,&))}˖t? !_\95%t%M1&"ɡIݵr_EtϞ!|0V<3N"_PH):>]QQwN smPgx?3+"?2k|B,X…Ya7.?~#!cG?DʪUc4С16$;Ya`yJ*7Ν2R% BCCB~5G{+Rgq$-WMMƍnMi}W8@ ի3tgqsõKffY;k #..矗XUOj5ݻڹsZ5ˡioUa}ba@Ǯ]hT˘]Ϟ|}?E"!MӯԲe/aIcEVWTTX5`j5{-[56*uaiӞzx}+9:56СkJE7EQ'O7ooo֝K{3m5ާ?5Q4mڮfW(J,^=zof#mxNNms /„BHD͙Ͷx~l^L7 ,J鍍*rRz5?3Swo{O^^^iiiwiSXˢisI[}WVFPTeffkE <;OM8kj4M+MCB0jLR{ W~gj޲\x?FSݏ!CXM`yF +}[UtV͛5X C\ii4B}}}ccc۾+0ׇBJUCC#!^ThJe\DB htS*+&Nv x4++OM>̀3]\:}K* q'A>0U6w\y4" hVhccbccb0eލ)X0fLfT*}⬬7 % BDRRl{& =< !4t 3ڭa%ͱ{ؐ@& ق-wwǧSO5XPPuVL@bزeF ^ zxxY`?hph |ffjv\FW^Dg:88ܸqm@qtyeee֧i:115 GQTDDUh?<|f)]p8V@I <^WFoQKh{I0muq&^<5C[mԞLX?n|h9|رoa<\bkՄ \gϞk9%IAAΝ;Ri߾}TTTw^Sc»w٭56ZzvF2LLRcΞ=V[T0lųEuۺ%Z-ejɓ#F']|||>>>>Lہ˗/7[5]v]~e2!$47h',SxÆ ~sc&gʉ%gƜ)X <޽{'''?^*5ts `֋guKst[Fkšȑ#UUU}EFFBJe-[T*N:rP__ӧ?#hoE9zh\\c׮]wMijjҹyyy;O?Ma>aݜk׮;vYfΝviSFQ?o?2r'O Zf QQQ~~~/nllԹز0vXx'o0a ;P Uw3g Yt\.'Pwޘ;~g:Bmj q !ǎӧs`` 6tZÌ{%~"Ν;>j5iO JtRRRݟ{cǎcʏbtت}oXU̙3tsO>cƌbK.1 ??x ##o߾o;w!?ӧWZqƍ/]TVuuu:tHJJH$۷oDuuuk׮չ;vM4s,f!م欷~zjBS1w4|tE5jT*=x !È#rrr.^j* W͛7o޼ixcVx۷o\zjggr`+Yxڵ@}'Wu֌ƙ4=uԡC޽{7##GL!B&LPUULn ̙3%%%1F{~dJ*O<MRa{!ҺnvZ]lu:tAAANؓ2Dh~&fdSTlv'4{,---<|8)}/|ucf4TPB =tSHEPk ¡. [Nbx3x֭:JuYnqjlSuw}ׯ_?GgWֹO.BHNNXd2뎎:j¡ng䮙!$;;@#W-=JMM0`@޽9yx=;YCpy''k׮{z*y<~"dph&ix n]Vn3mRݭÇ7n6lؒ%K؅>>>sPUUuEf93/((޽{̒k׮}djzs=ztee焄nØօƜEEE/^vAV\9o#( 7Xg|ur1[R 6죏> 8r|&L`P߿믿΍+Wqƍ7}^{MV2eee[nuttd:7OLL,,,dd555ƍ# jQ̌R(qqq'O4M8S3&$$ژgrr2ܹs刈_B`_ZaO… cbb5 :u.d@@h)MSL:th^^ލ7bccBҮCRj_ZPiTUUQuĉzf+WM'}vG/>,HN8ѵkWmҘ'TMZI3xKv'4{ 6/N(ʦk{yOV6Xg|[U ۰aC^_~@fT*5kܹsg(˗.]1y䪪*fV4Mt!:::55U ^6l՞ݺuKMMeT* Jk՟vС;̀˗/ viԩ' S"x=m۶-,,gѢE2LB` } !_5O΅rh|,gJteeiӼ|M6kפe Ւ. 68JZ~}n<<<RSS}}}mhwme:;G_JjwS+--2dv=վ΅1? ƶ=O+LmEKӻwLU%Ԥ8vXNzWf2jNV߻m|xʕ/{kUdϛ7Ϙ  5 |򆆆cǖuu-Xkà0< l`xX 01-k-k-k-kMyLQ!A&1>#!RfP$P`-&=n0?Z}lcZ]QQa& ssssttlNrymmI@ &Ɲ&LR{`~ݏ5-k-k-k-k{NGIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator.html0000644001725400016040000005724513273140101021405 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMXPathEvaluator Class Referenceabstract

    The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...

    #include <DOMXPathEvaluator.hpp>

    Inheritance diagram for xercesc::DOMXPathEvaluator:

    Public Member Functions

    Destructor
    virtual ~DOMXPathEvaluator ()
     Destructor. More...
     
    Functions introduced in DOM Level 3
    virtual DOMXPathExpressioncreateExpression (const XMLCh *expression, const DOMXPathNSResolver *resolver)=0
     Creates a parsed XPath expression with resolved namespaces. More...
     
    virtual DOMXPathNSResolvercreateNSResolver (const DOMNode *nodeResolver)=0
     Adapts any DOM node to resolve namespaces so that an XPath expression can be easily evaluated relative to the context of the node where it appeared within the document. More...
     
    virtual DOMXPathResultevaluate (const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0
     Evaluates an XPath expression string and returns a result of the specified type if possible. More...
     

    Protected Member Functions

    Hidden constructors
     DOMXPathEvaluator ()
     

    Detailed Description

    The evaluation of XPath expressions is provided by DOMXPathEvaluator.

    In a DOM implementation which supports the XPath feature, the DOMXPathEvaluator interface will be implemented on the same object which implements the Document interface permitting it to be obtained by casting or by using the DOM Level 3 getFeature method. In this case the implementation obtained from the Document supports the XPath DOM module and is compatible with the XPath 1.0 specification. Evaluation of expressions with specialized extension functions or variables may not work in all implementations and is, therefore, not portable. XPathEvaluator implementations may be available from other sources that could provide specific support for specialized extension functions or variables as would be defined by other specifications.

    Since
    DOM Level 3

    Constructor & Destructor Documentation

    xercesc::DOMXPathEvaluator::DOMXPathEvaluator ( )
    inlineprotected
    virtual xercesc::DOMXPathEvaluator::~DOMXPathEvaluator ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMXPathExpression* xercesc::DOMXPathEvaluator::createExpression ( const XMLCh *  expression,
    const DOMXPathNSResolver resolver 
    )
    pure virtual

    Creates a parsed XPath expression with resolved namespaces.

    This is useful when an expression will be reused in an application since it makes it possible to compile the expression string into a more efficient internal form and preresolve all namespace prefixes which occur within the expression.

    Parameters
    expressionof type XMLCh - The XPath expression string to be parsed.
    resolverof type XPathNSResolver - The resolver permits translation of all prefixes, including the xml namespace prefix, within the XPath expression into appropriate namespace URIs. If this is specified as null, any namespace prefix within the expression will result in DOMException being thrown with the code NAMESPACE_ERR.
    Returns
    DOMXPathExpression The compiled form of the XPath expression.
    Exceptions
    <code>DOMXPathException</code>INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to the rules of the DOMXPathEvaluator.
    DOMExceptionNAMESPACE_ERR: Raised if the expression contains namespace prefixes which cannot be resolved by the specified XPathNSResolver.
    Since
    DOM Level 3
    virtual DOMXPathNSResolver* xercesc::DOMXPathEvaluator::createNSResolver ( const DOMNode nodeResolver)
    pure virtual

    Adapts any DOM node to resolve namespaces so that an XPath expression can be easily evaluated relative to the context of the node where it appeared within the document.

    This adapter works like the DOM Level 3 method lookupNamespaceURI on nodes in resolving the namespaceURI from a given prefix using the current information available in the node's hierarchy at the time lookupNamespaceURI is called. also correctly resolving the implicit xml prefix.

    Parameters
    nodeResolverof type DOMNode The node to be used as a context for namespace resolution. If this parameter is null, an unpopulated DOMXPathNSResolver is returned, which can be populated using the Xerces-C extension DOMXPathNSResolver::addNamespaceBinding().
    Returns
    DOMXPathNSResolver The object which resolves namespaces with respect to the definitions in scope for the specified node.
    virtual DOMXPathResult* xercesc::DOMXPathEvaluator::evaluate ( const XMLCh *  expression,
    const DOMNode contextNode,
    const DOMXPathNSResolver resolver,
    DOMXPathResult::ResultType  type,
    DOMXPathResult result 
    )
    pure virtual

    Evaluates an XPath expression string and returns a result of the specified type if possible.

    Parameters
    expressionof type XMLCh The XPath expression string to be parsed and evaluated.
    contextNodeof type DOMNode The context is context node for the evaluation of this XPath expression. If the DOMXPathEvaluator was obtained by casting the DOMDocument then this must be owned by the same document and must be a DOMDocument, DOMElement, DOMAttribute, DOMText, DOMCDATASection, DOMComment, DOMProcessingInstruction, or XPathNamespace node. If the context node is a DOMText or a DOMCDATASection, then the context is interpreted as the whole logical text node as seen by XPath, unless the node is empty in which case it may not serve as the XPath context.
    resolverof type XPathNSResolver The resolver permits translation of all prefixes, including the xml namespace prefix, within the XPath expression into appropriate namespace URIs. If this is specified as null, any namespace prefix within the expression will result in DOMException being thrown with the code NAMESPACE_ERR.
    type- If a specific type is specified, then the result will be returned as the corresponding type. This must be one of the codes of the DOMXPathResult interface.
    resultof type DOMXPathResult* - The result specifies a specific result object which may be reused and returned by this method. If this is specified as null or the implementation does not reuse the specified result, a new result object will be constructed and returned.
    Returns
    DOMXPathResult* The result of the evaluation of the XPath expression.
    Exceptions
    <code>DOMXPathException</code>INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to the rules of the DOMXPathEvaluator TYPE_ERR: Raised if the result cannot be converted to return the specified type.
    <code>DOMException</code>NAMESPACE_ERR: Raised if the expression contains namespace prefixes which cannot be resolved by the specified XPathNSResolver. WRONG_DOCUMENT_ERR: The DOMNode is from a document that is not supported by this DOMXPathEvaluator. NOT_SUPPORTED_ERR: The DOMNode is not a type permitted as an XPath context node or the request type is not permitted by this DOMXPathEvaluator.

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentFragment__inherit__graph.png0000644001725400016040000001131513273140101024745 00000000000000PNG  IHDRpbKGDIDATxyTWoHXdDTDD\UKS B-E\ n}R(Z"E#b)* =YAD $@yiBZ4u{|3  7-; "p 2. "p Ib޽mmmV BwgU@ ,[lڴi֊ rI!7n(o!azqKqKq3flr#"",Xdɒ^ cgϞ=К5kBcc#l%٠@ Rۘ+8ȸOYYlkkh݋/p8pWOO'|RUUC/V /jkkũlviidw722"T*fffqqqpױc]\\,,,6lPYY 899S;88H& hQLd|2f/_rCCCAxO,..655-))455_7o޴QSS333a%o#܂ BpppAA/ cbb,,,=z4Bq0Gnahh#X˺ŋB/7++$%%^Z[RRbnn.SRR+ ? x0g]]ڤI>}*>Г'O`a>2f\J0 KJJruuǎ!\ntt?yAQQih4ÇSSSa!HlnnMMMd2yƌkϞ=y\\+ ?baݻ===BҥKw)9󋌌a0 nxWVRRFP89s888>N[YY|L₺cǎsRTq!W\HRRP7}|| ѣG Lfaal,E*~Z`\~ؘbaݽm۶)Sr\Ipmm͛7lX/aXvvYTTT,--oܸ1B!$˒iӦJj0 ݷoխN8',))$&&b\Hj*Y,֖-[tuux<@ 177X|9(qkQ^kD d\.AEd\.AEd\.AEA@EEńyEhĴi&/٨-dܠP(UE@; E66GuuljD4И~>l`쾇ebAkD:LLqǟ~[A[|>ѥ ?w>awgB;5JJK$lC;}&r@ **z͗28SXD5BfKDwvZ_nn\L`qǓA$+H5tuKՄw<Znݪ7AOrr}.a99U_whmeֶDðVW5QQq G&&&8iӦM HI񗷐 * p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. "p 2. " &LULdW ׼y>''GҫCyɼyV\QE!cqKqK&Rⲡ BBBtttĕ|>… UUUL&~ӦMD"ƒ䌌 %}L2 f1W2L@E"Qkkkϟ? 2eJPPIKKKzzzuuٳgMMM0UOOOmm(+L&388ƍY9&&TAGGgԩzzz-:~qNNu%O?B'''wtt%%%Teee .erA$uwwK@͒Kicbl-++oٲArrׯ_,^zERkjj>}JѼO: IGC8;;ܹs  .@ [n+DMMmӦMEEEpsʕ%%%~Aր I?yyy%%% +^r*ZXXuΝ͛7?~Rw_nݕ+W;vlذaS)y Fyy]\\<<<oݺu޽P9c3g}fkkf[555@nn.LII9{lMM F^zSNŵfff½Q|>?**ʕ+[l9}46\GG'<<\, BiooX,4@˗/ay< rkjjFqr@|||WWWrrrtttUU˗eǏCBB222I8?x 111(((%%ܹs:.NyBD&=:{̐4s파Ь,__-rLyk׮p777KKKXYXXg33JXhѢ⯿l̙588aSQQqqqy󦪪jAA@DFDIiŊpP^^nmm=y$۵kٶmۊd3G]]r]SSsa|H0M<9==}ݺ.{ڵ%Khkkn۶Ccp_^xٳʎ񦆆,:;;) >}eEiiih4 K =mmm&&&PԩSmmm%466ZXX7W\0sLq3f|hcbY^~}u[[s>|VjkkwI$nGGƊjب~H%>'+|ڲeওӥK-Z$˗/Ku__޷o(O2EIIdBwa&KP($o޼}_dݘ'?*****j僃saKKlK䰌maӧ7lpȑǏz{{IF9;;------񝝝BDDDii)$H¹\nAAtpX,֛7ojkk9d27nw{VVVݿ?$$DOOAQRZbEllܹshe%'HT*d2piXpΝ;}}}c?""/[,((KG:t(%%&&&***9Ι3gV عs',ؤoXꩩ4-99KYYYT*ƍׯٳ'!!!88XYY/%⵵Ν;zQ ۣIrĉI&8::߿N ¸oZYYQ^kD f͚7KKK322"モ|477 XQilla-2.3.4/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.md50000644001725400016040000000004013273140077017540 000000000000009dccde4b483e8a54ef0ff46b652dc4c0XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.png0000644001725400016040000001073313273140101024601 00000000000000PNG  IHDRp bKGDIDATxyTSG' Ye"l*m](ZE7R .]PVzQp B"T Bj뫠IpI"$1=&o33;sM0@* S䀔 <9up8:k-4m׮]iNw<s55Ж3g9]SNeCPt!)AHyr@CRP8::FEE={ HLLL>;wr00)-- ڶmeYYYhhkjj=zfCPPzQQ?rf@ۥ"{{{H8}D"&$$X[[[YY%$$e<112** GΝ;`0N:}W~V1 [\\ lBp##lx\.7<ѣt:+%%pX|a2Ĝkkk0 g={ҩ*kkk{]j ? 6l0 9}FwwT++b;;;G3?[L(j $:th֬Y022r۶m,@"޽;44|駝aaa}VKRlvUUUVVX[[hf{{{GGG;wi|0C}}}WW׳gNlX&"## ú֭[nhhcǎn< bWQR ƛ ˗/777Jr<%%hԩڦcQ0]}l…) Iu<{R䀔 <9 !)A:cKK 7ot:..ff :^QQ3=;ƦMǫ5Ӧ9ːބ^EAA=xބ|)U P)M((өnYy] iMO'+45/쌆$HyZs"r'P)OkC~JjG1eB#74ϢhZ>ݎ=֖Fv"C")AHyr@CR䀔 <9 !)AHyr@CR䀔 <9 !)AHyr@CR䀔 <9 !)AHyr@CR䀔 <9 !Hcd3dL1dg1#ɓǓ]ᴶ-{~pU !)AHyr@C;@xkժUfffQ&?~;88.^FX{{SNQ~l{{{b8W\0'O,[l0*]3fw}ð;wVVV wPy*ʖcǎWZ5beggãG޼ys޽T* ilhhP|0iسg,Yb 0[0̶6@WWP(T09;;?~ݥRiss3@"e2uS,+33|b8_UUP(UUUxnx+/^8zhppqSi3f&5pzΝ %%%~Ū'}NNNG^~^ äR~hhs 7225kz P(J?\KR{5ÇyTXX3YRtzcc#!!!No%<<ҥK-£4p: &5 0gϞ}ĉ{F@`_L&ZF5j(MQ&&&iii\.f,]tɚOkkL~ȑMMMD&0 %%%::ϥِNRT__ߊ ''u֩sرtxJh?8?dhOx{{~rȑ>|p߾}횢(JBBBEED"%Iqqz B6o.\OXB$}555U,,,ΝARRSSǍG|HHF=== ʼn'BBB4`ddݍ?dv׼BXd:abb}+WR(???s<*22R&%$$d)SX,hW߸qcffӧO5={ Xv-,XYYyzzfee+aVVhkk>}zDD={v޼yꃀWǂ .\U~E???MniiihhahhGlw)~x)Jbb"9r@ 駟N[ZZZwIPիW|>ddk䯿bX3gTyM>n*xyy9k䀔 <9ap8/!%wQyNT@#DDD-@ t!)AHyr@C @dPIENDB`XQilla-2.3.4/docs/dom3-api/DOMLSException_8hpp.html0000644001725400016040000001143713273140101016560 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMLSException.hpp File Reference
    Include dependency graph for DOMLSException.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMLSException
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/functions_func_0x78.html0000644001725400016040000001051613273140100016671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
     

    - x -

    XQilla-2.3.4/docs/dom3-api/ftv2vertline.png0000644001725400016040000000012613273140077015343 00000000000000PNG  IHDRɪ|IDATxݱðScOx@ y}IENDB`XQilla-2.3.4/docs/dom3-api/StDOMNode_8hpp_source.html0000644001725400016040000005564313273140077017162 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    StDOMNode.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: StDOMNode.hpp 570480 2007-08-28 16:36:34Z amassari $
    20  */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_STDOMNODE_HPP)
    23 #define XERCESC_INCLUDE_GUARD_STDOMNODE_HPP
    24 
    25 #include <xercesc/dom/DOMNode.hpp>
    26 #include <xercesc/dom/DOMAttr.hpp>
    28 
    29 XERCES_CPP_NAMESPACE_BEGIN
    30 
    31 /* This class is a smart pointer implementation over DOMNode interface and
    32 ** classes derived from it. It takes care of reference counting automatically.
    33 ** Reference counting is optional so use of this class is experimental.
    34 */
    35 template <class T> class StDOMNode {
    36  T* m_node;
    37 
    38  static inline void INCREFCOUNT(T *x) { if (x != (T*)0) x->incRefCount(); }
    39  static inline void DECREFCOUNT(T *x) { if (x != (T*)0) x->decRefCount(); }
    40 
    41 public:
    42  inline StDOMNode(T* node = (T*)0) : m_node(node) { INCREFCOUNT(m_node); }
    43  inline StDOMNode(const StDOMNode& stNode) : m_node(stNode.m_node) { INCREFCOUNT(m_node); }
    44  inline ~StDOMNode() { DECREFCOUNT(m_node); }
    45 
    46  inline T* operator= (T *node)
    47  {
    48  if (m_node != node) {
    49  DECREFCOUNT(m_node);
    50  m_node = node;
    51  INCREFCOUNT(m_node);
    52  }
    53  return (m_node);
    54  }
    55 
    56  inline bool operator!= (T* node) const { return (m_node != node); }
    57  inline bool operator== (T* node) const { return (m_node == node); }
    58 
    59  inline T& operator* () { return (*m_node); }
    60  inline const T& operator* () const { return (*m_node); }
    61  inline T* operator-> () const { return (m_node); }
    62  inline operator T*() const { return (m_node); }
    63  inline void ClearNode() { operator=((T*)(0)); }
    64 };
    65 
    66 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
    67  typedef StDOMNode<DOMNode> DOMNodeSPtr;
    68 #else
    69  typedef DOMNode* DOMNodeSPtr;
    70 #endif
    71 
    72 /* StDOMNode is a smart pointer implementation over DOMNode interface and
    73 ** classes derived from it. It takes care of reference counting automatically.
    74 ** Reference counting is optional so use of this class is experimental.
    75 */
    76 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
    78 #else
    79  typedef DOMAttr* DOMAttrSPtr;
    80 #endif
    81 
    82 /* StDOMNode is a smart pointer implementation over DOMNode interface and
    83 ** classes derived from it. It takes care of reference counting automatically.
    84 ** Reference counting is optional so use of this class is experimental.
    85 */
    86 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
    88 #else
    90 #endif
    91 
    92 XERCES_CPP_NAMESPACE_END
    93 
    94 #endif
    95 
    void ClearNode()
    Definition: StDOMNode.hpp:63
    DOMNode * DOMNodeSPtr
    Definition: StDOMNode.hpp:69
    ~StDOMNode()
    Definition: StDOMNode.hpp:44
    StDOMNode(const StDOMNode &stNode)
    Definition: StDOMNode.hpp:43
    DOMElement * DOMElementSPtr
    Definition: StDOMNode.hpp:89
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    StDOMNode(T *node=(T *) 0)
    Definition: StDOMNode.hpp:42
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    The DOMAttr class refers to an attribute of an XML element.
    Definition: DOMAttr.hpp:57
    DOMAttr * DOMAttrSPtr
    Definition: StDOMNode.hpp:79
    Definition: StDOMNode.hpp:35
    XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp.html0000644001725400016040000001156613273140101016333 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XPath2Result.hpp File Reference
    #include <xqilla/framework/XQillaExport.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    #include <xercesc/dom/DOMTypeInfo.hpp>
    #include <xercesc/dom/DOMException.hpp>
    #include <xercesc/dom/DOMXPathException.hpp>
    Include dependency graph for XPath2Result.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  XPath2Result
     The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node. More...
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1MemoryManager.html0000644001725400016040000003143013273140101020665 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::MemoryManager Class Referenceabstract

    Configurable memory manager. More...

    #include <MemoryManager.hpp>

    Inheritance diagram for xercesc::MemoryManager:

    Public Member Functions

    virtual MemoryManagergetExceptionMemoryManager ()=0
     This method is called to obtain the memory manager that should be used to allocate memory used in exceptions. More...
     
    Destructor
    virtual ~MemoryManager ()
     Default destructor. More...
     
    The pure virtual methods in this interface.
    virtual void * allocate (XMLSize_t size)=0
     This method allocates requested memory. More...
     
    virtual void deallocate (void *p)=0
     This method deallocates memory. More...
     

    Protected Member Functions

    Constructor
     MemoryManager ()
     Protected default constructor. More...
     

    Detailed Description

    Configurable memory manager.

    This interface allows outside applications to plug in their own memory manager to be used by Xerces for memory allocation/deallocation.

    Constructor & Destructor Documentation

    virtual xercesc::MemoryManager::~MemoryManager ( )
    inlinevirtual

    Default destructor.

    xercesc::MemoryManager::MemoryManager ( )
    inlineprotected

    Protected default constructor.

    Member Function Documentation

    virtual void* xercesc::MemoryManager::allocate ( XMLSize_t  size)
    pure virtual

    This method allocates requested memory.

    Parameters
    sizeThe requested memory size
    Returns
    A pointer to the allocated memory

    Referenced by XQillaAllocator< _Tp >::allocate(), AutoDeallocate< TYPE >::mmgr_(), and operator new().

    virtual void xercesc::MemoryManager::deallocate ( void *  p)
    pure virtual

    This method deallocates memory.

    Parameters
    pThe pointer to the allocated memory to be deleted

    Implemented in XPath2MemoryManager.

    Referenced by XQillaAllocator< _Tp >::deallocate(), AutoDeallocate< TYPE >::set(), and AutoDeallocate< TYPE >::~AutoDeallocate().

    virtual MemoryManager* xercesc::MemoryManager::getExceptionMemoryManager ( )
    pure virtual

    This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.

    If the same memory manager can be used, simply return 'this' from this function. Note, however, that if there is a possibility that an exception thrown can outlive the memory manager (for example, because the memory manager object is allocated on the stack or is managed by a stack-bound object), it is recommended that you return XMLPlatformUtils::fgMemoryManager.

    Returns
    A pointer to the memory manager

    Referenced by xercesc::DOMException::DOMException().


    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.md50000644001725400016040000000004013273140100024235 00000000000000e18dc560c4bd2a9c654245cba66c1c72XQilla-2.3.4/docs/dom3-api/XQillaNSResolver_8hpp_source.html0000644001725400016040000003004213273140077020565 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaNSResolver.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef __XQILLANSRESOLVER_HPP
    21 #define __XQILLANSRESOLVER_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    25 
    26 XERCES_CPP_NAMESPACE_BEGIN
    27 class XercesDefs;
    28 class DOMNode;
    29 XERCES_CPP_NAMESPACE_END
    30 
    32 
    38 class XQILLA_API XQillaNSResolver : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver
    39 {
    40 public:
    41 
    42  // -----------------------------------------------------------------------
    43  // Non-standard extension
    44  // -----------------------------------------------------------------------
    47 
    56  virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
    57 
    64  virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
    65 
    76  virtual const XMLCh* lookupPrefix(const XMLCh* uri) const = 0;
    77 
    79 
    88  virtual void release() = 0;
    90 
    91 protected:
    92  // -----------------------------------------------------------------------
    93  // Hidden constructors
    94  // -----------------------------------------------------------------------
    99 };//XQillaNSResolver
    100 
    101 
    102 #endif //__XQILLANSRESOLVER_HPP
    Definition: XPath2MemoryManager.hpp:45
    The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional...
    Definition: XQillaNSResolver.hpp:38
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    XQillaNSResolver()
    Definition: XQillaNSResolver.hpp:97
    XQilla-2.3.4/docs/dom3-api/inherit_graph_25.md50000644001725400016040000000004013273140100015721 00000000000000f73985965932152c3c020929f4510e9fXQilla-2.3.4/docs/dom3-api/inherit_graph_18.map0000644001725400016040000000032613273140101016023 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMComment_8hpp.html0000644001725400016040000001146013273140101015761 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMComment.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMCharacterData.hpp>
    Include dependency graph for DOMComment.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMComment
     This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.map0000644001725400016040000000034013273140101024455 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.png0000644001725400016040000002176613273140101022442 00000000000000PNG  IHDRB bKGD IDATxyXS'M XTD,*uUDA J>JJ\RJZ n VQР`$!$g~L{nMv~3gޙw=3sr8c0n 8* 8* 8*tYzucc#%!!BC:Wg„ JCCCqq1%%P\jj)t QG 77fR4&&rر۶mS*a4桡7ozIߺTu"@ؘ6f̘VK,륥eee}ppJ"+++٪D"QAAz- {nkӦM>>C BJRd`p8~SfJJʆ \.[o߾111)))ds޼yiii줙^U<==-[}K޳uqqxr\RرrĉW\1B(55pŋ755_rdϝ;޽{|>̘1k׮F?>..ˋWUU?鳒H$fffIIIdǎ:[[[xYYYd͛7ٴP(411ٹsH$bF,T*}zU]|֖]bEll,8%%%88XN6_+cr_Nrww8tз~K kp_VpM6q܇9qa {Ѷ_t),,o߾O6`n;r䈟I;88iݻwm~~;0fڿ?%8J0mڴ۷o444 d2盛ӧmڵkξz!аgϞh6֖="䛘 INEE֭[Yd2aӅB%Kz-Pϼ`oM6פ!TL4I,_t)//o֬Y:522JNN.,,$,,P?~ʕ+W67n񩪪8qҥKYd2ss󌌌d2}pm3gO<>|x@@3gn߾5qD\>hĈl#a޽bl.ZhԩuuuUUU^^^6l/?.Μ93dRX<:)%evvP(666˖-Jꂓ<ɩ .D$_ c:tPSSSOOϜMOTWWpc,H-,,l=#550Lpp0۴P(qtt\jL&S*;vpww۷oAF2}}7 MIPGhPqqqx%/_nLyoajow#/  %LTz˅5I׀xuj]$j/,n_z .Unb51feu/\xTydBR(T'OV=?z< q )Id^z UndeqU  go/+L^ލ6yzջu3gJF=Gb~鍀@fU%Wř^ <~,)*fߍp UYrs!Y0J]@p%=ǀ KKuaeeƸAH߫דz5V*կ O!3_6z-BhHT* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8* 8.XVnz4EfժU:7~'Lzj^/ >G]]]̤͛k8* 8* 8* 8*/8jEFF677J111cǎݶmRdm PSSSC6}ozKO?ieiTk8ڍjԯ]00Ƒ/njjr Ɍ;w{|1c֮]K:z8///>_UU5~xJ"۷O $%%K$;v4omm%ÒFZ;ХVVVcHjnnTaa! 4B֭[׮]#ZXX:99tG3feff"ZZZLMM?ƔУGԃ# d8@ xEJ,`XD"O\\)H://oԨQ{>1>|xVV{M6m% MLLv)*J>Cp/_emWX1NII fB!Bbu61&+ODR]xdGg]HI ݀~Eղenܸ|r6ё\߹s{zz"޽;l03bĈٳg볲pBqqK@@O?dddϼTWW:8PQQQϏݜ7o^zz:8###,,ͷymiiرcɦB ޾};$$СC$8: tˆcn8zCWν{Oﲙ... ~geȐ!'N k׮mٲEU{{{AA9:r?~\Hk.u^4޽U*}}zK.3g'Mt{{YNN02 i%: g8|^21 |G={'H9sbcc޽CBBխ""">ׯ_~}ʕwgpMabbbaaɓ'|v!t/Ξ=Ν;[06lxԩS;;;\.wܹQQQƍS֭[/^QTT޺u=}T&mܸ!$Y@_Bdq̘HtktU,_}/vtt$+趶fٲeRTt<ɩ .d@VԡCzzz07pNF)Dmaae˖v֖D|q}}}XXqrssٚ1NHH0`_pB;;;H.+I&O_G8qnT~a@??A>|PZZ  c@?/G/_L`Aq8:na˗/:wGanݲF!nGz(o> ~Mc\Uʢe˜:UI9sݾ>@p]&#*⤧u/\xʕ: 3 sJmSӓ99׌8$rN|a0 kT IT8={u@}}͛za鹿@vv9Q11\.z# .yUmKBZ]F@puui'{ť?^nb71fg㬬2BKP2 <i{{{__˗[YYrСC`РA%}/aY$%%_~ټyvtww3D sgGGGa233-[_~˗[[[GEE999ݹs'))իv222B555ֲŕ$=qDrH \+t1@(`J}N `kk;z͛7;::>lee0n8}5559sg***5jI 0`dƝikk{Q|8bйs"""r9BHT۷oٳg޷oR~```yy ***,X0k֬۷K$Ribɒ%ӦM[h_JiNNkp~bI3;3G6LŋG}3gNN'o~~~"(11>#^222wU^^Lʧ]`wnhhHII!{ry\\ܬY;_ VVV<O;˃BD(jݻG2!$J'NhEgkPVVVg#N'8\^^fΜI2Ϝ9nȐ!QQQ%%~{ٲeG>w|0dȐYKBd2SSӐ'N:uJy߾}|Msp!i##ɓ'Y#GMgtƪ'/7cƌov׮]lfSSܹs;}ĠAB>tqq!9ꫯr-?~>D0`@MMzvsʔ);vXdI'S}AzbՓ鉂{Qvv_n:ٿݻw;;;ߦ-OV666MMMF:>}0L\\R+SPP J >sTz)4BU(TVV_^ ̟?ZxH$ZzuIIIccO?|r[[ۙ3gdVMHH1b <hE_B2KaF?ںpBccUV%$$9rɒ%{Yt)ÙL͋/4yFs/ '''P1>rȰa$ Ƹ 8uttΜ={… 6lpuu`xm+qnnȑ#|aBi/Q'C^^FmRR;0d׌3:mbݻw;4866vʔ)cOOM6iSL ҂ 5D/qvvdk)))ڍjbFŋ755_rdϝ;޽{|>̘1k׮% =|\\ϯ?~uZ>G&<z GN$?FE:1Ç"{o޼ɦBΝ;E"0bXR37Ϯ ˶+bcc1)))lP(D:4ƸؘIeee*ڂ3lT*7mr{X1).{uNvR@bp6mr>dsկEO:@fIsss_t),,o߾O6`pIDATn]R;}t6??̪f" [}aamII믿.J~qꅵD"=z]2 ~zggg}Ckhh@icIs yn444ٳ'(((::ʹe=D$!T__Or***nݪJ&1 . ,Y[o B}cw7|loڴITL4I,_t)//o֬Y굽ۻvjMRRR 5дJJMMMHHիEHI3}tv`;C{{{.[WWG6kkktΌp**((hB!77'aaaǏ_rٳqF'.]TL&377hnn>pL&gn` ޛ'&Z[['O >}vVVĉrG1"00?z&<<2..!tg6}iիr6Gc3lxb'ON0O?X1$͉b-Z4uԺ*///rF5DmJꫯ|}}DHVmmmͲeˤRzr9srr߿… oiX7jjj陓cU*kxx1K$hooo //-[k2??!0'''KKqƱgᦣM0CU!8&J2..ǧO>nnnk֬aAꌡB4iR~4 666VbR~fZZGM@!pRSSϟ漜      LOOWA.pAA all\PPI   )y*;;IENDB`XQilla-2.3.4/docs/dom3-api/inherit_graph_17.map0000644001725400016040000000045013273140101016020 00000000000000 XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.map0000644001725400016040000000145413273140101023255 00000000000000 XQilla-2.3.4/docs/dom3-api/annotated.html0000644001725400016040000011142013273140100015031 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Class List
    Here are the classes, structs, unions and interfaces with brief descriptions:
    [detail level 12]
    oNxercescThis class holds the list of registered DOMImplementations
    |oCMemoryManagerConfigurable memory manager
    |oCXMLDeleter
    |oCXMLPlatformUtilsUtilities that must be implemented in a platform-specific way
    |oCDOMAttrThe DOMAttr class refers to an attribute of an XML element
    |oCDOMCDATASectionCDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup
    |oCDOMCharacterDataThe DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM
    |oCDOMCommentThis interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!–' and ending '–>'
    |oCDOMConfigurationThe DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters
    |oCDOMDocumentThe DOMDocument interface represents the entire XML document
    |oCDOMDocumentFragmentDOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object
    |oCDOMDocumentRange
    |oCDOMDocumentTraversalDOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document)
    |oCDOMDocumentTypeEach DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object
    |oCDOMElementBy far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes
    |oCDOMEntityThis interface represents an entity, either parsed or unparsed, in an XML document
    |oCDOMEntityReferenceDOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference
    |oCDOMErrorDOMError is an interface that describes an error
    |oCDOMErrorHandlerBasic interface for DOM error handlers
    |oCDOMException
    |oCDOMImplementationThe DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model
    |oCDOMImplementationListThe DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented
    |oCDOMImplementationLS
    |oCDOMImplementationRegistry
    |oCDOMImplementationSource
    |oCDOMLocatorDOMLocator is an interface that describes a location
    |oCDOMLSException
    |oCDOMLSInputThis interface represents a single input source for an XML entity
    |oCDOMLSOutputThis interface represents an output destination for data
    |oCDOMLSParserDOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree
    |oCDOMLSParserFilter
    |oCDOMLSResourceResolverDOMLSResourceResolver provides a way for applications to redirect references to external entities
    |oCDOMLSSerializer
    |oCDOMLSSerializerFilter
    |oCDOMMemoryManagerThe DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument
    |oCDOMNamedNodeMapDOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name
    |oCDOMNodeThe DOMNode interface is the primary datatype for the entire Document Object Model
    |oCDOMNodeFilterFilters are objects that know how to "filter out" nodes
    |oCDOMNodeIteratorDOMNodeIterators are used to step through a set of nodes, e.g
    |oCDOMNodeListThe DOMNodeList interface provides the abstraction of an ordered collection of nodes
    |oCDOMNotationThis interface represents a notation declared in the DTD
    |oCDOMProcessingInstructionThe DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document
    |oCDOMPSVITypeInfoThe DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
    |oCDOMRange
    |oCDOMRangeExceptionRange operations may throw a DOMRangeException as specified in their method descriptions
    |oCDOMStringListThe DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented
    |oCDOMTextThe DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr
    |oCDOMTreeWalkerDOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any)
    |oCDOMTypeInfoThe DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
    |oCDOMUserDataHandlerWhen associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported
    |oCDOMXPathEvaluatorThe evaluation of XPath expressions is provided by DOMXPathEvaluator
    |oCDOMXPathException
    |oCDOMXPathExpressionThe DOMXPathExpression interface represents a parsed and resolved XPath expression
    |oCDOMXPathNamespaceThe DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks
    |oCDOMXPathNSResolverThe DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings
    |oCDOMXPathResultThe DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node
    |\CStDOMNode
    oCAutoDeallocate
    oCAutoDelete
    oCAutoDeleteArray
    oCAutoRelease
    oCXPath2MemoryManager
    oCXPath2ResultThe XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node
    oCXQillaAllocator
    |\Crebind
    oCXQillaExpressionThe XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object
    oCXQillaNSResolverThe XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings
    \CXQillaPlatformUtilsStatic utility methods for initializing and terminating the XQilla and Xerces environments
    XQilla-2.3.4/docs/dom3-api/DOMUserDataHandler_8hpp.html0000644001725400016040000001137213273140101017367 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMUserDataHandler.hpp File Reference
    #include <xercesc/util/XercesDefs.hpp>
    #include <xercesc/dom/DOMNode.hpp>
    Include dependency graph for DOMUserDataHandler.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMUserDataHandler
     When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/DOMDocumentFragment_8hpp__dep__incl.png0000644001725400016040000000735113273140100021577 00000000000000PNG  IHDRp?bKGDIDATx{P؀<#`k*" /UAJ-JH2Bi)Z2-HW"V/)J[ay6 Np˗ݓƐr90du8H $  EQ\ * L&d$ג$7ߤh( [nn.BQd2f(0/!ŚqW^JT`0=;O C%%%dL0100`歭uuuǏ'`C 4558KB$-Xj,iELΒ .422rpp={V__ĉNNN...\. XYYu֭UV8KB&+`5+RWmE;#H7o+**oߎ0 *++y]~zld2SRR={&J|||BK1(++ )//裏333r\D?o޼~B}g[N[mhhhnnvA򒒒O>;""cuNuuu,kӦMΝëy?M8&Oo[XXttt ϟW)uuu*n``@&E"###\ىAuuuPPT*Q}[`g|]7:=::a/zLLLZ[[l9agPֆEp2d__ߓ'OzzzH(887""F(^~mٲϧ$]]]O8|uM68Ba0?H$LOOommmmm=ydWWB{k|xxxȄ\\\Һ>|]TT4E瑑H$ ٳgشixx'55̙3*FdfE M=rRRR{{{7l0E 1?hzJ>}:++vtt3y)`0}}}_h𤤤y{,D"⨨(XfBzzz!!!Nxw~k.ꊍ6˗UVGG>|^۶m{ttŋRibbӧOŽ;F\ V<<<"##b;ΉJTDoޙ|>F-][NKKSK1AAAJ!&l#G޽{733[Eox- f 00P,}}}fff7nܴi6% Β`A aX0@,גwUK`nx_ fZ E{!4˔})?sf~S80jlLZX؀*OBEEccRu1 a*,lPaqe=u1 a*5K$R^i HJ矴HdW4 $M SIAA=ccXM{ o!QAAK 镖6Hk;͝AT_?4.]j$l]]o?J|dZY a()iTry]"Q엤Y a((JeH.GEE\ƁOLc<X*J?Gӂ{+^@Iɝwt$MgI@,H $   ĂbA aX0@,H $   ĂbA aX0@,H $   ĂbA aX0@,H $   ĂbA aX0@0fڷo+-R(*uU(:;;GDD/] ijB-b2LaX0@,H $ k'`۷oV044r ^ѣ_Voظq#Dh|#@s>a[nD"Po=wy6>>:w܆ %ѣ?⯷J ۠~ŒMMMt:(,,NL|1266_-[u֚Geeea<<Ro)W+ar<%%XXx///eݺu7nܨO!Mui!t},5Us?aݝ׮]mmmȈy+WZZZ ׬YC9:vdNNN4MqONAAAS4Yΐ3}ܢEX,VWWb+VPT;;Çb3JPrrR;Rӭ3222a*[3}Mf69 &lDpg%zAˆfUi aDh\.Wƹ  ĂbA4l|>_C"zhj^OJ:99􁦀y $   2IENDB`XQilla-2.3.4/docs/dom3-api/XPath2Result_8hpp__dep__incl.png0000644001725400016040000002135113273140101020277 00000000000000PNG  IHDRDbKGD IDATx{@Lǟ4M7QJL+]bS".IQȭ|۔(nQVOiTX!X咴b]48vi3:<9=y< @dk0l0l!b-@z*,,b-db``%}N%/^:k, R_x!Ϫ C Z %''gBA0l0lt+--G߿ooo_QQ-SXXX]]5Ϟ=F̒|Νy沲27E555g3: sDZc:::t:=::{̘1h˗/:gg{.[lѢE{hY._|)ݻwK8àssذa_~EGGgŊo555uttT֭[;;;E):::..FEGG f600X~}uuw老}jaD"144ƍ7n %E_&֮]t6nXd Ǐ.\ p8=ZzQFYHTUUE?r8ŋ/^8../___+WfeeOOݵ "]/>v'؇X35!!X𫮮.Y[[{333uu]v$%%mذɓo߾?ydHHHBBFΝ?~<ӧO)`r){{{%%%ԺÇ$&&vuuEDD|wz҉۷w|'SP">k ׯx7oZf @$ǏsND:uLVVV&:޽ZWWWoޮLJJ駟z 7nDGGkkkd??+V `0H$YB:  Pm s4 uح[ mmmg̘*)) D"СC Ĥjutt8N0xSijj ea2O>xѯ.]_]UUU]]=:::55511tʕ_}` I%ԉ: `hhKP"ZZZ;~zKKKooÇO0ACCULfDDDDDĴil7D:fK.effݻ'_*++;::^v AtaÆEGGhmme2</""ܾ}{\.@ 477KTWWP ACcƌqrr,_\KKѣf9HdXLZt:ԩSWVVV~/݋vvv9sɓ'***BBBq8\ppݻwt:&jjjΞ[:_..HLLLMM?`ooKP"]ӧOc"qFRSS۰aÞ={rJ;; &,]~Vee%Pܹ#Tl***4MEEvZgccG"GN"H$olllRRҦMrss1bCM4wU$s 겳swwGωB^Vp|XC靚&2;!G $D@A… 0 0l0lȖUELjD xȽ{NNo޴f&MՇl8AD?jfs)ʐUT4͟-[́&8.(ōZZCDFGGmd~Wnee$E$U G (TDM:3fPo 12?dJJロ,m##aÆ FPKښy{a= yyKZp8gl6w|Vkee(WQQsZ Esetlڶ풯̟vOL:TÆ :ո{ژ@eebh &^Do"AI&nY*s"Evv娕+ 嗣9޷ߚ߻}&ǖ3!\f`x?9onf_Q(qk߾(m49fh؟)xMx\\\ 0?u?iӷsZ-Ɛ͛s-D@I:wvQ!!gڑ#7WLäöm豱Dw2qVJKZä@bbnzzc#F De_EF [Jaݻ3~V|p~+qgNFc8864NIYmAA8ᅡ6 Ŋ3۲BEkƠωwn,_E&c&8~<k!O@]dC%Ē%8.3[a}㏙/_{JZdhh ;Gʀ덬O߿Dk-a)W5b:G^jHtXk'66f#Gj^Dvaa29~~g wrZKq[=p)thvH{)!C2 .XU“ 0?HV KQFF:ׯa%:LƐ~~*GAptp3C}Dg'7tDXH-++aa83~X[>\-Q=a8w˗?i`if4{d$emxx-gcEؘWtv: ::֝ˌO3߼i=ZW|Hwƍ9, dlEB "LL˛:l1|zKKJ찧ODeFFDяt:=$$dĉjjjSNݷot_ ($,-T'8LZzzssJ|j޽۸qcxx SN%;vwy͛7ojjjn۶Mt@_$_Q>z {hLźuY~5Bںu̙39pGGѣR4 '\Shd9......}xfse'#HgΜ9}}Ϝ9~qRRҮ]C_TUUCBB{?\vJEEB߿wmmmSSS:֟affF&L&}{lvppLfWZZZ2d̘1ΝCSt Utuu npƍ>xHYYYT*UKKk߾}:Ej u`B[[ClPBCC{GC$Tݛ.F#H>>>IIIFA]__ϯ$//JFDDyeggwtt8p`ҥo޼)**sW"kݺu6l,obb.ozBI+++ܹg```kkE)\رcяT*hȑ~;hz,28`a666~~~--'?vww駟(-%%ennnT`0/_\PP+9s PRRN pѦuj[[[^^x.]jmm]pakk ?@x?֪\_L&RV>) "5cCtw--wJT}I_!wZZ躺jrNZd, innё+>丸8UHHͲې؆AdHuu"B )/odat:J%9/t`@ʻ 1qr9\.@wiӦ^apuMMދIڰSXB 'OuXOuFiӦ˗ff#G//UTH{,quh% |w"yr ah:;YAAViZimWV6[[?5t8:Zo+ݟp|Z'O^0y*thh fs;;YG_jZtx:ϢENxȳgof:pϠ1{FCqПbqp~_h]mmM1խ D`bb.&NN?<bccIv8;O9{ewg{)UΝ֣10A,Ev?l6i oP(Ǐ:OYrrMŤSTT:LQpvOGM xɓ> B##<\?-9Hkk<͛tuA^-tv>`ۼSzee ӧSccUDUrIǯZ0&Ν ++׬AWۏ_&,,uQMOTq"[!l6wٲ㭭7WSSZp8)Sv{xL U:7JJ86zHȧ.۷_46/]j 0P4u|z|Z%90qq7e .>uuoݽr:LBBO:,օ>8>O[[u\ @I`0X[$+?$2E% &Ç?y֋ӧwŵk 4/X :LN ㏙WbE4 wϷ44Za# oL֯V:ZyuX ytXqǏ{x˟&b5f;aDSS wKbc򁊊?x~l|:LlʱGod@ ??[ ? 4ׯ[Ҟ:) $SEEPQ!m|a+&&涾߈:lhh =uɓGda(ŇsD:/F;GGg, Es2& &g,Yb\_@dAyyK6pԠәNNGՕ|׬Ihu+X0E݁3gU7n椀alġC'NܹqodDd kQR Rfɹ%)Ǐý猌V\Y'7&}L…GDBz?$0?sî2@YR(+eUyyݙ2MtwU"dѺiiOd떸;AAzz2J!dŢEVm%U R'""PgodQ!? K5a2}c)VfswH7oRVF@}}^.>>SL ((('++Jjii۷{^033#L&SdP;_d}=]\p2^^^zzzǓ䴴ׯJKKѝ}FH$ꤤ$@cc`( GnggW^^^TTdaajvssh ˗hx@ss3NSSS},X@._Jupp())ˣR"}R1=6KKK?~3gΞ=ۻØL˗/;::\LajjڽBE ?ҨT*A%,Xmdd$@MMV ^|/--E.\@REܥ; %ߣnݺ 6I۟!IDAT& XZ1u%D*))qtt>s ?644pܱcǢA*Z]6%%%eAnZ[[fwwf( \"R:=UUU111s B#Ϟ=(..|X~k=zt BEE,//GU  E̔!ˈ6ZԂ=tx<[n]zQ__ᅦ^ dX$` _^]v\]]*++?cQw\nHHHIIImm#GOHHHx ̶lRVVѣ۷{xxJ?u@_cǎM8b!r b~Gccc55iӦ?C$**J[[{ԨQnnnd2Y0 ÉRӦMCWlmmѡP( o\noo600XhQUUUkRtuu `?O>QDnB !t BCCOeO2'NP@Ad tD@Ad tD@Ad>EDdVω)SzKנ!-a-a j%IENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMRangeException.html0000644001725400016040000006035313273140101021403 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMRangeException Class Reference

    Range operations may throw a DOMRangeException as specified in their method descriptions. More...

    #include <DOMRangeException.hpp>

    Inheritance diagram for xercesc::DOMRangeException:

    Public Types

    Public Constants
    enum  RangeExceptionCode { BAD_BOUNDARYPOINTS_ERR = 111, INVALID_NODE_TYPE_ERR = 112 }
     Enumerators for DOM Range Exceptions. More...
     
    - Public Types inherited from xercesc::DOMException
    enum  ExceptionCode {
      INDEX_SIZE_ERR = 1, DOMSTRING_SIZE_ERR = 2, HIERARCHY_REQUEST_ERR = 3, WRONG_DOCUMENT_ERR = 4,
      INVALID_CHARACTER_ERR = 5, NO_DATA_ALLOWED_ERR = 6, NO_MODIFICATION_ALLOWED_ERR = 7, NOT_FOUND_ERR = 8,
      NOT_SUPPORTED_ERR = 9, INUSE_ATTRIBUTE_ERR = 10, INVALID_STATE_ERR = 11, SYNTAX_ERR = 12,
      INVALID_MODIFICATION_ERR = 13, NAMESPACE_ERR = 14, INVALID_ACCESS_ERR = 15, VALIDATION_ERR = 16,
      TYPE_MISMATCH_ERR = 17
    }
     ExceptionCode. More...
     

    Public Member Functions

    Constructors
     DOMRangeException ()
     Default constructor for DOMRangeException. More...
     
     DOMRangeException (short code, short messageCode, MemoryManager *const memoryManager)
     Constructor which takes an error code and a message. More...
     
     DOMRangeException (const DOMRangeException &other)
     Copy constructor. More...
     
    Destructor.
    virtual ~DOMRangeException ()
     Destructor for DOMRangeException. More...
     
    - Public Member Functions inherited from xercesc::DOMException
    const XMLCh * getMessage () const
     
     DOMException ()
     Default constructor for DOMException. More...
     
     DOMException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
     Constructor which takes an error code and an optional message code. More...
     
     DOMException (const DOMException &other)
     Copy constructor. More...
     
    virtual ~DOMException ()
     Destructor for DOMException. More...
     

    Additional Inherited Members

    - Public Attributes inherited from xercesc::DOMException
    short code
     A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured. More...
     
    const XMLCh * msg
     A string value. More...
     
    - Protected Attributes inherited from xercesc::DOMException
    MemoryManagerfMemoryManager
     

    Detailed Description

    Range operations may throw a DOMRangeException as specified in their method descriptions.

    See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

    Since
    DOM Level 2

    Member Enumeration Documentation

    Enumerators for DOM Range Exceptions.

    BAD_BOUNDARYPOINTS_ERR: If the boundary-points of a Range do not meet specific requirements.

    INVALID_NODE_TYPE_ERR: If the container of an boundary-point of a Range is being set to either a node of an invalid type or a node with an ancestor of an invalid type.

    Since
    DOM Level 2
    Enumerator
    BAD_BOUNDARYPOINTS_ERR 
    INVALID_NODE_TYPE_ERR 

    Constructor & Destructor Documentation

    xercesc::DOMRangeException::DOMRangeException ( )

    Default constructor for DOMRangeException.

    xercesc::DOMRangeException::DOMRangeException ( short  code,
    short  messageCode,
    MemoryManager *const  memoryManager 
    )

    Constructor which takes an error code and a message.

    Parameters
    codeThe error code which indicates the exception
    messageCodeThe string containing the error message
    memoryManagerThe memory manager used to (de)allocate memory
    xercesc::DOMRangeException::DOMRangeException ( const DOMRangeException other)

    Copy constructor.

    Parameters
    otherThe object to be copied.
    xercesc::DOMRangeException::~DOMRangeException ( )
    virtual

    Destructor for DOMRangeException.


    The documentation for this class was generated from the following files:
    XQilla-2.3.4/docs/dom3-api/functions_0x72.html0000644001725400016040000002230413273140100015646 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - r -

    XQilla-2.3.4/docs/dom3-api/DOMLSSerializer_8hpp__dep__incl.map0000644001725400016040000000024513273140100020671 00000000000000 XQilla-2.3.4/docs/dom3-api/dir_000008_000000.html0000644001725400016040000000440213273140100015241 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

    framework → xerces-c-src Relation

    File in include/xqilla/frameworkIncludes file in xerces-c-src
    XPath2MemoryManager.hppsrc / xercesc / framework / MemoryManager.hpp
    XQilla-2.3.4/docs/dom3-api/DOMAttr_8hpp__incl.map0000644001725400016040000000025113273140100016241 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMDocumentRange_8hpp__dep__incl.map0000644001725400016040000000043413273140100021054 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMXPathNamespace_8hpp.html0000644001725400016040000001201413273140101017214 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMXPathNamespace.hpp File Reference
    Include dependency graph for DOMXPathNamespace.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMXPathNamespace
     The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/inherit_graph_26.md50000644001725400016040000000004013273140100015722 0000000000000077ec54c8f708e116a18ec7f80f231f83XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.md50000644001725400016040000000004013273140100025112 00000000000000c1cf29dcfc960402b7afa629599bfa92XQilla-2.3.4/docs/dom3-api/DOMDocumentType_8hpp__dep__incl.png0000644001725400016040000000702513273140100020753 00000000000000PNG  IHDRp1=mbKGD IDATxTS?w ]`t $<iiArr4zꔕD)eʔRԔ" Q~=#!Əmwlsy^=>{{>ݽwz= B:m   agXIMMdT6ET1ë Þ{9&IE` y+W 5`gԂㅇ?֠QSS_ZA A A AxQyO\.Q>ܸ۶m={a C|gB$)O>vtt$$$/٤6Hs\.Xx1ձ $G.\h=Ò%K24(e SW\$%8zCZ6`P5X,C `!Z]@pf:}бPW'S A@I{{=Xg mMYYݻڻweemjB|남mh6^{C9c]%%h4:^15ƴ T*uuo說~SSiATT\htVweƴ [?ZTBI06_׋Fpt:}}XTQ]A<+뱲6S1Daaɯu:}aaFJoIu:mmR2c;b9i, nq :;BY|ԁv=TB=c4e ́                                as %ܹ#lT ðuֽKTihhζo?:ckRAk $ $ $Q)̀SZJT6HOO5k_|ŭ[j4тn…I$ 7>ٌJA@}}\.d}}}?|oo/IR ͙}ѡC,X@s΍7Z &pssswwgX\.';;ߴi&779::z˗/ojjqF~~> 22puɰ0 &0ðrZPPqF:N4pppHOO/((<رcD(**zW9qvvDaXii3}m 8z=ۈbCKss^Riԥnx߫Wz`tww7^xq___qq1twwbvZccnx==z 'aF!tz\\ܱc,88xҤI:~Ǐ\mm6__y}c8xB!~iprrrwwxQ/UWXX- t|}}³>K܊3iu< -«6m"̌&,WTΝ?}vsQhRT(gΜmooOMM7mܸ͛?X,>~yX,@ Yϝ;dzDSRR$Iss`8zc X$򊏏2lߟ`0fΜe˖A/x]v`u9O"uڵCCC&S\T^@VBsoئ Fk@<" FƄ |5Q `2B( A A A A :GT*mllose[n^^^6>jAk $ $ $qevGIENDB`XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal.html0000644001725400016040000004225113273140101022127 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMDocumentTraversal Class Referenceabstract

    DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...

    #include <DOMDocumentTraversal.hpp>

    Inheritance diagram for xercesc::DOMDocumentTraversal:

    Public Member Functions

    Destructor
    virtual ~DOMDocumentTraversal ()
     Destructor. More...
     
    Functions introduced in DOM Level 2
    virtual DOMNodeIteratorcreateNodeIterator (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
     Creates a NodeIterator object. More...
     
    virtual DOMTreeWalkercreateTreeWalker (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
     Creates a TreeWalker object. More...
     

    Protected Member Functions

    Hidden constructors
     DOMDocumentTraversal ()
     

    Detailed Description

    DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document).

    In DOMs which support the Traversal feature, DOMDocumentTraversal will be implemented by the same objects that implement the DOMDocument interface.

    See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

    Since
    DOM Level 2

    Constructor & Destructor Documentation

    xercesc::DOMDocumentTraversal::DOMDocumentTraversal ( )
    inlineprotected
    virtual xercesc::DOMDocumentTraversal::~DOMDocumentTraversal ( )
    inlinevirtual

    Destructor.

    Member Function Documentation

    virtual DOMNodeIterator* xercesc::DOMDocumentTraversal::createNodeIterator ( DOMNode root,
    DOMNodeFilter::ShowType  whatToShow,
    DOMNodeFilter filter,
    bool  entityReferenceExpansion 
    )
    pure virtual

    Creates a NodeIterator object.

    (DOM2)

    NodeIterators are used to step through a set of nodes, e.g. the set of nodes in a NodeList, the document subtree governed by a particular node, the results of a query, or any other set of nodes. The set of nodes to be iterated is determined by the implementation of the NodeIterator. DOM Level 2 specifies a single NodeIterator implementation for document-order traversal of a document subtree. Instances of these iterators are created by calling DOMDocumentTraversal.createNodeIterator().

    To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the iterator. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

    Parameters
    rootThe root node of the DOM tree
    whatToShowThis attribute determines which node types are presented via the iterator.
    filterThe filter used to screen nodes
    entityReferenceExpansionThe value of this flag determines whether the children of entity reference nodes are visible to the iterator. If false, they will be skipped over.
    Since
    DOM Level 2
    virtual DOMTreeWalker* xercesc::DOMDocumentTraversal::createTreeWalker ( DOMNode root,
    DOMNodeFilter::ShowType  whatToShow,
    DOMNodeFilter filter,
    bool  entityReferenceExpansion 
    )
    pure virtual

    Creates a TreeWalker object.

    (DOM2)

    TreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by its whatToShow flags and any filters that are defined for the TreeWalker. Any function which performs navigation using a TreeWalker will automatically support any view defined by a TreeWalker.

    Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from the same subtree in the complete, unfiltered document. Nodes that are siblings in the TreeWalker view may be children of different, widely separated nodes in the original view. For instance, consider a Filter that skips all nodes except for DOMText nodes and the root node of a document. In the logical view that results, all text nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the structure of the original document.

    To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the TreeWalker. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false

    Parameters
    rootThe root node of the DOM tree
    whatToShowThis attribute determines which node types are presented via the tree-walker.
    filterThe filter used to screen nodes
    entityReferenceExpansionThe value of this flag determines whether the children of entity reference nodes are visible to the tree-walker. If false, they will be skipped over.
    Since
    DOM Level 2

    The documentation for this class was generated from the following file:
    XQilla-2.3.4/docs/dom3-api/inherit_graph_7.md50000644001725400016040000000004013273140100015641 0000000000000078f75ad492db370a8f55c457bfa227afXQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMLSResourceResolver-members.html0000644001725400016040000000671713273140100023673 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    xercesc::DOMLSResourceResolver Member List

    This is the complete list of members for xercesc::DOMLSResourceResolver, including all inherited members.

    DOMLSResourceResolver()xercesc::DOMLSResourceResolverinlineprotected
    resolveResource(const XMLCh *const resourceType, const XMLCh *const namespaceUri, const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI)=0xercesc::DOMLSResourceResolverpure virtual
    ~DOMLSResourceResolver()xercesc::DOMLSResourceResolverinlinevirtual
    XQilla-2.3.4/docs/dom3-api/xqilla-dom3_8hpp__incl.png0000644001725400016040000061322513273140101017144 00000000000000PNG  IHDR ,xxbKGD IDATxy$W}{3+z4%Y,z& -Ų1Od, \;Gs#Q Ơ \|mlcF$H/ 2KwO/Uvu:{g}c&TVVfV.'J)          s          (DAAAAAAAAA5P          k4AAAAAAAAAAd     $oyRs"m}\     EJ3AAAA|+?\C$ַ7\s5z]AAAAA.BP    LOO^Ǐzz-AAAAA.Zع^AAAAAAAAAAf"         (DAAAAAAAAA5P          k4AAAA8v_?vu;v斏     !s    r<%/yɹ^ B)#ȽW_7izAAAAA]]3AAAAKvz-!oo~gffw5BAAAAAvf"    <7o !_W^i*?mtM{ "'?<_|f]!g?ٗe7t}߇0 ~]wyN/vm/zы>|_~K^KKw}7|;M7'Pة     )    ϳCЫ^}C'bYO~o~'?~׻5y!qow;Λn>_Z{(߿ggI~vmz讻׾>v};IBs=O~GW[__W^{ӟW򕓗`>7 333sss(3]s^׿~߾}_~+^{[yGyK_8|B{}7_|8Jo~5y'T5AAAAA9'k&    r1y//x{ %'N+ _~%hv;3IV*4 !8y$L;nr-p go~CB(ƒġCw-DAAAAA (DAAAAYVL!˪$'PU" b'BSᇤ~/B[lO vxOyR"I,+ !BuIIRUP?Ds jZ1tDUR !CGb$I܊\s͇???$'?+`~x,{;w|fQ_җ_*L/]cĉ&?~|vvv˵%q7|W^933=GeGUc= 'iSj}RjYךfYfq]Sh^N)}9e馹qݶkmoVb5_rN.AAAAA܂LAAA $-ì)RA:ޓUx}[Y(F˳H1$)@5Ė
    wd6(H)wگڋ^7g/]wG&/(,5M8!$ +\wM4?ӷi~cQB??h\}Մ\ם~oy[ G?z7N(@?IBN_S(?زt˚4kn5:oo8m-;K2ƶ&05ҭ j HFz^o<.M4]?1G8ТaAkei[u(ʱⳌ:J)1 –]Sd9jk鞔P6VI6$LR`B/tݗ%Moz3?3rKUUЇ_Wo^~m/}s /zы뮻VVV??zk_Ky~կ~ p뭷ngGMoz79<)O;Lfp oy[4}s{뭷B|P.D@暛3VX)gVczFBRe}BMll^cR)tqtB,1e鎣\s +$Ƀ $ɂ <^/.M򼌢((RdYeYVE!y^}>DSRa˪gm䉣 -EͳB]:xrIpi$a:7M, CiDQeVX&%BHIG H)&TU%г*e$2JY-{HJ,]Q㎣k<[ymٶۭ[gNMS9qjwqw!q BCv\qeY Q--RDfY9T8+K$yQ֥miiB`5gA/    ȥ 6!  5C Ȕ,%ijh=vROVS$h:5NMp!>MP. ތ6n-Cmm:x} MĦRҌ9v/"(jiШqw!2L39OkR6CGui4bl6Ksr8~iFSJ΋d鬫Z-k~L~u(.6LMۜsÉIK)Teu=LԐ⩮7rS0̪JzIg̲rR-!22r s#hQR) sYidR5᪫:>PR1p৙eDm9tgaa5H'l cQa`y 7;Jk3Mcfknze9aԔ35xyn[-wVr ^?PJmvET2 -* ~? äKv$ɣ(,~?s8C˲,(KUYeֽq\IzP2BrN9gEQ,,EYV( R0BVuQ-c0sF)J! \R,$ *A) )ksu %K~B)ᜃ A$9! I*WJR, 1۹\O@=P4hnOdxtZMiAAAA쀁  gvc}tpݸkf~MT7l6Ɩf-͖F6]z+"Jn ]bQ8ԜP4e \ƱX@(ӵ"I,Ӥղ@@6K7uM[شju}]vJiSOT>OkoSG-|dB.CB $ZJ Q !QM)RRUBV@)atQ Z%nscjw`pӶN1MԔKңf]ܷ4av)%)đK)BUŚ&ol]sMcЕ~ʢLR eH}qmuVJ !vT 7ٳM%%DrΡ` kJ Tu:J8c,Z2V lι~Hי'`(i`Gqcn5::U.,5 |=}1 TrTxw3opk\9 QK7HpJ!S[XYYeY:c ,E)܏DQRB8AQ(R5@ &ԍ,+$U%,q^((*ʲU[yJ@q ִ۶뚎cu-5cZjFYV+2 Ӫpk~׺I:k6=Ϥ95 s92C5 ,Xݶ$BiYl(EQE7YAy&qsYYV5nhu!Tm6Yw6{(0 =m~24~IEsBl0Rvne S[PÎTM!cTӘeRJcg_U>S߷JpN :(*JIWeY\ !y^eYEY1K̙6z,CKrZiȍiȊihfOi^IA% ~? 54 IDATzjپm33i W e5d?܎-hsw6B"J k`'e,J8/2ϫn7.ڵTI7Fi.G0'yEY~?vn7n7vn7^^K.`Yz_mz l,V6dve]JӤ,BرcN8;zRȻ'O0{uԾ}DᑳOY<yyDGWydGV}t<Ȋ3:4&DczMfq\7ia7 ΂ 54꺖Y;n5ځU%,ɠ,<$(U-tmݲt߷]װ,woٶ.m8m`*|~?R[*ɓaIDiZIAEQ "~JXeY;,TJuq0^a6s'Ϫh`gDWX[ݸO$ SRfYA4M=s8u($uwR)eYVQh. jpWuV˄hY:@!hpBahU%MSR׹TaZm@FY(J !a"ꕕ4-(Pp+/˪(M*IsPN24":%RSR@ 30 ezmkg'JuRbmky^u:6hU=τʘkIqB8,-M<AE9nB H#BK\O@ ?zCE9x;GrP#AAAt.AR$4A.C%k:"(;I?*+(4$-Y) A7 l#\#Aj8Ui'19Pu* { 5e0^TJYJ\D*KHfVX;BӘZpXmѪU'b۶l߫)+ sU2QKvi]`h 3$%gf ߇m)&MW~22C:p`s :ކe24^ZUJyfEQF)m(ll./܎U*t*=,P}йMJ{WK⹽%y,,å^,-~A6%ˊ8fB Q [9xp`+sܳ?j$ImgΪ"R3mg6J6{X5!}"FuG5{ې&mv٩X*K @ N ?t*bC=yzU_Am׫} {n=zke%Sqvzp)LS۳gG4Yū4NǙ`lmoYǎcYzei)D]@B CHQdV:fm4yB5V\s*X !Z%ds !ܠTRn7!P̀bH7 V7?A6l(RS7 Iߧ["2qR%p(ʂ [[ v$)(tOoV,M2Cin!& ebm{z|]ٌV.Ƅ nS7ӔN! a8xT@6\oimEeYy祔,r;Ƨgs3< >hp-' 26ۓJќAc ZU"SL]ׄ|mr}VYwn=3Z޼4$yw5jj Me t:m%˕py9 !˞_wqn{7C[I6b\lSn 5MTszeYfd̸SS.,FP 4׋4:sݕ\.Bȕ'OWV`u5ZY O Wff={ZncHp s( XY }tV]۱c[QB\);xpLMvO,+_<ӧ>w^3?spw%>_[w%..9zsYpkg_uW_u]!'zMB0nmf>lm*N&uC4;f>U0{x睷O;_v}Oծ{sp~&gYA#+?|RyJ69xp dU,9bsTZ5PV%^|P&X\쯬g߷gfwnΟu3跙]kzSPJ C˲r6d4Mu:zg:f0U%RfYWYP^QTj./0 1/O}ku<ϫG涬+PQ -ź.q/,--'Opaj%H;v񦧽w~އrgfie焱ҴGYzd֢GYWx]J)z[u/:U%?{__x~}]U}CSJ^uOz~OJU=>r C;xp ɇM_vY}j\"/dɲۍd4 jcΡGQ7;r𓞝mMM9zaEidaA%I~'Y~:V&${jYb=}[- @unEQvdۃ Ie(5w7?ߞkӚoc82hfS!$VR4ӣ@U}cRp,-A%*0 @8kBCg0Ԫ뙦u`(8¶nޮɛGc2F9lw 7D!$,%!,AYyjeRZGÙcMΥ$Y[rN\:+ B`a9K( S)+ 46 ! f1jZUIҫJh3sZ^y^ !$y^-ə}^4   \ܠ4AK^/W.~]u\H /^/Q{c<9u>)n;Nb/hqj]dz-9āZALjyI)! Z!ZAC ɀLi2S X36Y9lқOƠ=̆!i0̪Jt1DuAP_RKnv- ϵmp 4 J6ffu7|aa"4VUt}G+˪M |Z Ս 6ղ̂wjYp֝oy^F0# L<RHT? &B&Gߝ|a}K׵A@}K97z: .z6irawxۍxm-nИ8(,+7!tjJ1A8(ǰmmtv@ i} iZ4d`iT'NM|v5?ӚvǓ77CtV^EuxW)/{G]yUhiJ0+E*J>xG,%೟}C IDAT3qY8h|-g̿m,xFƏxW'O_{U}3R5GVBB$zfa)Le)zx(?}m6 VWW!pl$qzr3.:t6DNfcJFr./KK4ˡjTmssܜ??ζfg]K!cĚ v 2-w=9?[Zvf59H6̲buEQA 'B4n <3W91F)<Q)'Mnv:1unYIJt)%1sVU[yVQ7Aa045MyX<$ !>0DJ)RAUآآEp   9\`iIuqD$I=.eAnA䓇u %hahJ5q,hA1%r֘5nːɭ̊6}A1~"[M ^ Dێw)͍U&noMky{Ry nxQԢ(˲2@ZJhYFQsQqe TR[-Pꭖu[^jokoL2Ψce'Nt]=v,.VVۭ@^EBr4RjY%qNq]Lm6%_bHQ,fij*۠w^( Boi0{lN+¼KGa:4g_̳銴+>++o=7

    ϷkS52 OzOO p |h veve oU'Ve;,- F8S'Oζmw;>N&І-#'ltض;0IJt!s!$nO(%BH)%K)B@}U7Ulۀ]C0>   8(D䬲}aeaEQ$EgAłbiY:,A4(OJ{V˂蜳7K0̪ly `}W=iYVm' 4vQV bZ@i]>4|!t2dr>ͤ[6oSkiEYZ=5EH3 35}dtq [)&Z %W p/tTPou-KN xy9X\쯬DkkaqGQ#=rNMS7 nzeMOkz1?M:)q/.N rxDwe%\X<5M BeY5 t pm234VOUu^c(*BdYʲuB_+ٶ1OZG,*%(@Ɖ   ȮLAv@Qi 1j=eU[V*em V[J3]ׂF h8a3F@.zӤ;oTeϙ߁𳶻 n.o6SFl)KmW'ķ&q6&uqMoP%tkCa)(}%T0[[{8(!inΡVˁY v\t]Ҕ9!Z_..lC{ssĚ/kEXOd)2Bahy~}̹^s= y/?)ꪫx~U֣{|)O9s;$) ׽/wyˋ_sKK}z\~XoZcjgHI˲" {tm-{t10,YVi :8΋4iYQ~?Bz ]͘&ϳ 4y ~CG(w,|Yt]S9c SR&$DVU ̲"Mf&CƠN1l[w] qնu6|~tS)CǶN#""ӴqNS ޝ!!U֡9s] \*Z-˲ cw=tCyS6v {AAALDi[W҇epM(C2Q%A`K Vv0H:ҲT-YAy fEQLƨړLycs=R co%-OA7=a*gY pa6TemfkC6,6iDe iqqpvOiۺ㘪?LȥYr|@yZa$yIRAEy[$I$9T$l]9v]0ͺZk̀uM ??C8$~? CBNAa 060ъah93)"˪\9Jq?~ҹ=J|{ǔVy kϸ|]g}D7`Po.,t vjBI9ϟOݤ9I 7$98mkqJ28. vtr^8thsZ(a<xdn(+J5DQN.XfFQ>Y4aQV2MqL3^ SN%'eEy`֠`UK L$IRƮ$D4xsfY:si\J"!*Yb^a67sTiۺY1G;>HkqmVgBSMXy(4q2Jxe.1 RJرlA18Z, \7q<EQn1{Gۉ0 `0CL IP $]U,GEQWC-{Ap02 <)idYy)C.<Pe(JrIE1@^ )I[-Au3hF?,f΀7C BaHyӹiyavb1k5p B!M8!}\%VC[֒( NH-\e F0"0ہfG'V,<Aب9X}UQ=PQ#I\.Inf'^cjZ~ 0a<(   P_\B$ ݧ0J*XTdy9:p aA4Lv>;O<]Koo~gޜ;x^}'/cGUfҥխLNӞ/|as_d7{Dnmp~d\DJ͙lpv603|K0 :hᮬ7qa'fѫzX񢨡!v  2 33` 7d0sL9zqkLYֻzj,RP4XrHvzN/mt^2 $w>n,L)^Pr9XnfSUҴ,pA9}HAUbaL@QtY6Ti-y0zK Y6diJ?X 6}w@)|D>RX~t{~bcߛE^!'#^XI.U5L[UPeXзfL0bB0D|(F"|8̆\$Mdln;;BA,l>$#$Pa26G<_QBx\/^ZoQޮ;˫љ VVR_I+7ڟ_}׿7g^|饷aHLv+_ ժ' UHò hx̉VJrTJ,rVJ(U#eI& p @P h?.C"rz Wr)laҫO,`\81bȲ&Ë]@ "<Zc`NI<PіH5⠘}z[,I.a7Pֈ(CUї8IK]K8Q@gv$8%i7TU[l-I:|о/h9^u| @8KQ737$ -LQ)rɲ^y!e=39JEo׮\I_tXA_\YI]x.ƽuD(ţ./ǰs1nV*r>ߨTvT*ɥT,Jhp؃A&bQ>dc1>dQ!ba.掑,RQvv5TwF1^;b~}N]܄Rs5Hs3CzM|>L7> pThM4bit&TEudPJӝ.bQ =hz)+m6Y fi-A(jz(nf(I:npfD׳u=4nقQOțUinBN'<6V@)z,˲.IF(! yV@iv[-^C8v \I.8fz]V5'(woIRXKgˤٟ'^Ecx/W_Ƅ+_ v{~r%}rMɕԅ _?"U put ima!L0VQOJEAmQ|agP3dӭVe掾;;5B7[?}Ps5[*(ԗ%)S-m$&It8lpl^f}V˄<ϡ=E!&Li$׉`3״8hZ%ItāFwh˲o}>d @# IDAT;IJa#!M'ϓvppYt:4큈vrBH ANL7`0 攀Ҫ,hyFw*Ɂ;_`=C^4Qيㄪʐ*I~_#+AC BKhЎ̓~( 6>z?h:Ԕ=ݿ,7% ]FOÇGCV,~6Y=+\iyݕhx>Hj9jb6K%)k e>/ L{0&B4*D|4E"|,&l<.`X L9RIݭ^sd33O1~h6ۛfyc^.I\hv6 ƇnOwwkf/\H]x.{^?OqwyW Ei>غ|9}tp|0>)DO"gİ0Dr(lA\&[-qabɊbVpHL'Hq4:LOihV.}Gg(7<^䠈XvZYSrUV-n]tZm( MIj*ek r=t@9z=b 쀅?X!8,۟D;%2 Mpr4XG/qA#dU5o`wGg%&4"+&+(( P@`׷LP` $8 HV`D_h KvskߖkrD~6Ey@&~ _c]\1BezQG?ò{"!e˲c'8"X Vum_;!3Qǂ}BD5ZBs ||hT<߿!x>&>ClY)"U$OӞlm3QP6[ÔadҟH/I_<cC~RѥȽQUՀacZꠗOm4Z`W$h X`iX̃2Psj6-z[[OMk58hr0 91ANlDG@;,WI9k QGBm6xnav;}$%]0atJh &R[BW@gT*Vƕe=,Kto`bh=:uШr7(]$'I}ȹnOFWBm+pan}C`M Eg LEPJ% [(<;';f@'u V91L&Ay(lX67./Gmxޮ^tҥFՁh] Sh'}g4Mkx/W_dx~˗W 33}{nt PŐ\{1`m: <('qF{cds*jamb <5Sr4ao CsqPoa8kH ~M'djO{u )ldf;v0M9>T4햤,l*y pfv:wT2vMG сWj}d yXTX Sio;nw:j:l;bSNǔeDt}Cu qrqzn#=E-0 IN0q `0!`i&fTJ$\AY.ˠVU4q::KN~?}RmN!ւ2܃aʣr[<ڧl0 gb0Vms WB2]Ѹp8HjiYzb~"O$D‡}&rYڪlmUvvj՝L6̎eɩ)?xNO a^Wo.K[hχ w~><3?:BíKn=X.^<8Dۿ?ʸ7!rK/soD7y(Jn\E-f/\Xx܅ )@0+_WϜxA~{'7׾ظ7硳]}7EQ{뭗~zzܛ1+Wҗ/{o;XYI]zv5"5?SJEΜs ?`0GV*r6[T|^'CKfTPmBKRp>͓$֭ktZLvss!d.t xjVa"U0F"\ @Bl(L0|s:z;xRдX") F(xv M3hh.ժhhCvٶVp$(7{p C_=pɏCw_$zSu@B϶lv4P0ڊbaг-M]o5I}e 7PRu˃z_,iLc0 0cive9mJR.W/BAꥒ\(l6bB0D"|8̆B\$…l$cq_K~"!5?;>ģAt%?`<t?,m=Q v\[+^y3wzƍl=?~ꩧ|ra F7;Pj* VrY.jU]\@ pp c0 0 ; W EC rH9}> z<)X b4Z$bQ,JEi4TYUдvev>as:$zݐpK&}P 9|Pcp< |IӲ#Tpp}>1`t0*Kz@(jHpl1 kPIz־ xb0 3 fN"BͲĝBl8B,Ƈ`\4,kp$h$ [Ux`?XQC`& O0WmTfU^ygibR{{PXU\\K%RQe\y> }т_s?K--O<ZA{T Ѻ[I4 I-a =&,$pY,J7on}iڵJ׋F~ɩ~ꩩ: 1L G/} )z_S)]QԠ#2_}aWNmj!u%MU5tCο4%UvtE^ÐGzneq^vS;w/KS|y*p3hZ =& nLܹ\^I9}~Qg(ʭiFCڪf2JE)jUVCj:6r3 Qq ><22wuTGOB2ȋ[jȲ-] 7u-MEii-YnB&b)1ut_q^|e,KR CB\;GҴg> `K3:fl=md2NdSSx\[4C 7Gׅjj$AZkV]f߿p =s>-4&L#?W(( ص78Ynx(r(rrYJEA'%J qK 2%_aiD V (NuH·}U(m=bс:&ҨV@Y][+a໳&+B:]ޮnl vbغ|9}Jڵ]3 ;;~j[7NaS[vK/soDF{W*ovJҥŢ 2"(i lnV\nCÉ휝 L =4 ( A&VOlt;;}[*}i)O>9u\4:T(oV*ɨ56}; ehb?aʸzKU[LQ(\( fs:^ZS%vD"|4" $MYA,2_A8B I.L@}&pC'7UՀT=XҴ$TՖCg4`({iCQr-xs C㼧t`0Gf>0L5FZ?ex\'D <nr0z]E\\*e )2cС0%e sAp$w.EQ69ϔZHf,rbQ*|^,|*Lv;Qn  (3 3ޒJL|i=v5{ZUZUEXPeR!/ 88AX`O5t3VesY,omUwv zݳ;0~Rl!<Zrc++z~W&򂅝*(?v[8MMspŢ 5ur=ߛ{ٹ Ylr$W'OT`R.ˍ*'00`!1sq"]sȂد}$$mVGZb*#T 2p8ta]ø#Nᰃ6 g@!Iף0pJ6ѭZUuVS~XG _Uf i51NنOV<'IIi+%I:(]mBK1 s{Atk)gue @DH"872j츠K5kXFţQ o&9s:Qu>z΍%GT wT2:.Z98ME"L ƒmU0;AN$[_ RT+PhTj$U*砢ww/!v<ϤNA*n N>=? B cM,NwwVZ[+mlKoU 9?^X0ggCAlrʁ:]H U~= HK33}Գg 3/{W/]^,JÿJ>wެTzk(+?|y׾o>3͙KE? R/K:g?Y\6r8`JE&+:MMH958x>`wxͲa_^>³=:Qk(j֩(4Ő$]TCj46 h Ix8/,0&0$ysB;`0S f~(ol륍Vv[,& ?<HbQ,RI*%AP *S iPV2~?k 40|RXZ0 9<31.IRPQޮnnrfZS=I-Gi=h?]ウEJ%RQ ZU7ov;A& !`lxy/(.@1t4xfVj* R,,I r " (5H H,{ 3!hZ^WazDAF,I:z `(l3$5urJ/`t:n7jU|a5h>8atبՔjuO;X Ǐj m('660Ue8Rb%I&E]QZ\U@ya@Irɲ^#!2eI\`0faFymQ(olsAN=/,#33#_2>j 岌l<g8E"ˠ-x~?wfh60FbT* t!`COŏL9vf1 "*#)U'x\DXL`ه;g=`CfA[M.9nHgYȅT(R_*Ib٠ ? 1{rO&f2uk"f% 5?BGM2^owVZ]-Kkk%bx~>YXχs,7st֭(wvt/-E"'}A_⦪He,!:ݿ{ _Xo;Dzޫocžf+lls`R3sXtE d &K2<2́d`0iv qgSE;;bQY'|PHffosKUn7>p[U A@O=5`2J@pJET4Q0htO$0s~?.`0' r>*jUVhη6^n:6zKQ78*Ov,M^48Հ  hJYp%</f1gZ[ Nr[]TA9]LvT$5A MEiJ.MY6=';UՐ5KNp) j:~1 sWntpf>.*p9 2#33,7yX8|?;f2u8>#*t'"yt0忶V\]-ܾ]\[+D + dҏZ1E2y7n@ z秖Tܹ6:j}䘹\VVR_z7ş+??͗^z+~ۋ~~?/.b¸sfy}}/i}TANT ^X/.¸ 7ZN&SGJvuk&m.# Ěxas쮭^|v=Ssp!:~jorPH\>A\>hW1jM5%2kp:$iz;p χPsa!n ӬVUerYFI`F@l 86}"@)֙P3IqBU+|(\i lG 09w$"I׾w$x\`0GifBjaupF..mϞ,|xa! 87"XK%QSRQ3A2|)4c1;bK׃ZM-jUF}V(r9oP <~\0V? E8֠F#Ikr&4.Th`Z6V!gU0X5pd2oX[(H|qhD8GtYiͭ {Bha! ։ssAlA:f.H tu(<R(jgB!vۋdYFL:]ޮỦ g R⨉f_Z??ޜcvE^zqom/]~atff_ڹsi$[[䬙N֊`S௙JESc0Tht`zڿSgw]$=f{n\#~hh^(HŢbbH҅N0 0sh:7ŢXHt{=j6eHR'H./Ce0,"2CXE~֊7jƌfb_D1 Xh< -E4mIjʲK,:.˺Å ~gߤ>mZ5ſ sXi~v-sf֭EMkl)rjAnR,JU٩r ]KBOzRd#n l0t0ȆB,H0A籿±lkkōVek"*ӞHffssA${>wn!U눴ZU:p_U<(=HR3or 1-\N,|^Tdt0'!fhbG6.nl`cn.vvu:3I"KKLavۄ[B&S'=T̙r̙r {P^ޒ&+җqwR*'onnV/_\3x_k7'ի/\II$]<-N&n/@V}^\,.SBhi)27µe ~^5+[[t 3gf&SS~f}{>;?xgc(8>bB,'XFDB\ČVS9% Yn'~@v'BA\[+Jd^'3IeGA[*ɰR+EU d`ix 23xHc j٨~ZP_x$a.㱶뭍~$ōF~M.d͎Iڵ]H^_/fr&!$x ڵFrͅ . 4[?KTQŋR踷rft_bxܛs,1o_ꫯ~RI~[?ٍ˗Ӣ /p![4O*Wp vg#sf7k }vsf&0vۄUs.Ϟ{1{zrdY*I4dAQ>#>8Axyt:JEBqfakQfmuHiO0$}͙@"FçV85fut0GhqsѴV7׆pTdv;a6XN>` 3ƬX֑s(]]`N*Xi?]Z_/u=~ɩL$|ivQS&S{PdB>AdR(qQ( \˥T*I9TQD`Fy* 0 FXC|RHm͛JE!YUAKKET٭VjUe1!4hV{!v ya VK[]ss,#$4(q33H 9 ȎIjnmt4V*P5Į=u,t[[[pV~st].|w=`q<nePaӅ>)ebp6H'q W~rMI+<ʸO~[߼}l/O\@FRvnt C;җBxbS=e^(H`dnI6#.">q!-s(W]ۅ0BAR 3дgj*Fzʙl(م\\N,DxiA8PS <d2j䌖=Olqt:]$֔$ݪE} /[PhrM(tO+9F3i~￿8ry9BRs- ]ە*/Q҄H$|ɤ?%)?,bZzPhzew:n0i0`G=t+ruEǠb x:zPeXJ%TE\RQДxym N,G<z=ݔa3NHTo4z]UhMhqk? 3vmv IDAT4X~x[noi)=7sӁqo4l}gUڪT9 .#I_2韚Õk8-01 P/R>(E "x .C!6A&C!b.0cDZ7nd?$'O?ͬmgƖcg0K'.2.1p`-^|:zԳZ&SfސQSH )m:;D1dwqM] HaqujkvYkkZjm.kkkݭ*** DAHB {02Iȸq4P@Krɹ<@m;*cԉBYYTVTd`0tzF'~~pO /2>_UQmb201׮ ee2??11tNJ FٵRNkÆ1#v;{wd\9ó 0E~M۷0bD8ō~^^dFs9'sa`m%tp!6GuHJ  *+G?_]Q!C|v:/662.Gd8 n'@D\U J^ҫTZ[oEha`_c4VTy4<|hDD fd3g*ΞpA`6[hSp'Nd bo 155"t dL&lg2#l&$xtd-*k[}}tzp8MvAlx"1D P@` %6 %&Q*m)0][' F8Ȃ ~@+,oF*mVUW+TJ@ 2(ha,!$6†zXȽҝժ2b㱱x2C5ʡKxrYy\ն dF$'ӹ\ KMLBq6Ec%aA J>tDvz:gnǺېa-Wv#nٲw57[vx!5i,iӉ-[ξʔkJ^x[V Y@M"{:'I#j@]Sc3M#Ǔ" >@zj?~)Vےxё>:iX"riږɌp_I} |uu .&Y 0GhuX|D,jN'1~޵A x^t:KJ$]zLEujP Δ)ܩS杴|UU$yrEx` T\Z ۉ;ha6gP`2Y<>_;jTtF';;&y:wa0BMuW}JR @ZB9>L"|ݱZgV䔜:s8ɓO>6ujblɴ"QPbMP>xb8MbH0Vpa$7Z`m+؂Ex?ő!Ho`6[]+*պ~xDwm7$ + VJK%+4Tzx7\])A5xrTT,HؿhjjQ6FԌ`0,hSSKSt+fCC38njji+ h[-=22A#oB H3[[NsOΜ:{>6kZ D,+UWV;e2#\jB9>RL\]AP/Zߨ,vX  J-Ctn_J$MHBuFs+* ٜMMFȑѓ&q|0 wA$? IZFD2 F8{J(2_w g V juV@ X_&O<\&"B &%ђɴ$ZL f%tDփ{(09j TڮsS --. ssyUdڡCFdfe%Meidj ٴ鱅 'xĪAXܸhziF9 4*J!w`  nb4Oٟ^p>t޼O>96>|竬V{mmC ci[BRbr˟P\Y- *5F uW`J hnO,?}BmpIgOIwzB+-޼)ySZZ*mjj,q̘ccǎ{=nGJX(7Ձ bq#(c0AZ& ~`fpك`iG& dFDFbrmt:I1(z;$Ŀm[c 22nwC >f*m[j Ə6Bܼ)Vl!ɴTFb"Ƅ˦ 5\.W_h6S"iɴ Js:"18**V4tp ie&۵?e9㱮j/drBH!CϞܿH$'BOO1#eD6ܨl֋Dࠦ0q8,dFDE3 F,]g |lQ)4˫UU*e]]Á#!~apI њ peʮ_74>䁇NgEbJy<`b111IIZR-)3BÁxrWAau&%`AaO!7fd| nځ`X&L`au՛7?1ohO3qMPN0 G~0uu ժۉ 6$$Ɍ!+x IH{rE\HGzɱs:J`GʹP6H`ˀ(0jj4--&l[ )H {\Hpu'O <觞jwTTZ*~]RTT{fshacƎΉ&a|m5|tX?]8׷D?>,)  c7kS1(:/>,,uM:N` H)k7oС∈%K2zjlX؝V3pjmQڊ  KNaH:x@Q_]߸R++-"Ҧۉ0uz 6F p raB@BқL^jj+Tp)}}}JHj*8-< Nuz=hJ)xHI''S\jADҘLD$edge%edpz ;,\-?Si&  &66`m[5q8MNlrW]5 MM-/ gT*'9Sr)PO[& VJj'rB@u^$ܿر~~sX,br8PI P~B`A$,l(~{~ MBk@F\'k@?W2a0)سC kjr C^|1s0]~QQ+"dFLO*O5e&P"8?:Vf͸8"E#V2Mp,6%!"bb11p_P`ll4f47k-# "1H $ 8N@^fy %׳5h?1jp8lb"5--vĈTFl,bR>/>_`PԙZZZ=כnkkSU×D wUʠB6&u˖}w&66ٷ5U(tuu ./Ȃ0 E@v -*}"Qj*gϝ; ow^]'Gda[.E PJPD 8 XbL !662&&2662&Uɓ6R*:~<ݹJ!ZN&&'%L/ գ"]bQ^Z*zV3X"g !zZPdJ}GधsRSb6yyU qt:|O{ w+ q;]_4\x{yn./?r @K;&'ojjAWJOLA-dն{ݗƉ=71;;#EU*=hJ R8r|<BAbsUEW(tsmh]tz8`a¡d ֿ{R̙)V (*=s[QS >='ǎ 9qvT&k>WUzP@@dHqqHb%כR-ȟ*4Duu 'A11.flldt4 zI2h4}MPNu+d!h̸ ޕfּo7{n Tg+ k#FD7fL̨Qms|ÂeO=5K:H/7"c0m.X"f >Nbx_ jR /폍%EDDlA~UΆqfswKJ@ Ws8d dI0^ ^}z;^zvz(nޔZ@?..lh4~x,7uT]C-&ĽTWN\YPlO]u8>YAQz;w.>hEdH 6fJxkkjkkkkk5cc#qqD6bpjsfU67JTT*BSJ PBP)F %B[ჺB2zQy76-EFa**+edďB%ABg8ql|}Kd_?+[$H*L Ր%ySvz?{JǓ]P'5ATT~ƍG Z~ֽfx!fu˖~{EJX,F `5&49N__|t4xzׇ"›~`3[avH^}F  ծ11@bONJ8/a͚?  \p8CnݺS-fPА bBvtǎ }v$.Y1fL bBNCeaA?7BGDNJOLH&x:H'|O?=t6#22.i  bqE?_1"@ڣ4?_utE~>_7AYYIn cډ5f LIC_%l@fI ЁdF#hj= [bM u: IDATamM__|XXX]dr0L&Pt~x䧟ο#KfF^b;unWSpLJ/O{!mb08F.NRC`2 &C !=ī蘭`v#J@ 5uu ``0bbLfDLL$ѫ;bڇ-w;Nر{6בJjM*<&q86OfIt:̾@Q{pssk~`DJN&%Q\jR-)MP]i5 8؟F v;ҥҙV\"z55E:h4\kpAXlJ_|139[Ye0#F09))t8y3j~„f f㼤-Fc7o~b޼ў69 u&%9q+~p8PR竪TJ(<@r)\.51y _/Sc_=DuJ$@ >%r)Ԕzr2B K8| ކÁ*zI&kHd&I*mR*uk燏Ø̈[l¡ 3孷~?u㏋OOY#V} _{G^#{Q[[w@Omm5)BOMeDF] 5FF #&$iIIT 7 FcBU*AЪBT@Np BP:=g0p#& fzEWw=##޸ wdMOdg'OdvAVWVVoDb:Tmy٩(ti&PaFGGO"򆆆7biiiC 1?IB>8xHsPBY,b\\$Iǥl9'Ǿ~᝿#hrԼRIW+ GLK9rۄU6rJx~_OtvgHMNOOhhssykQ_.m]xRZZlj*=: 8B,a6;6nJV,nt:CɴzR-66_|2I nGU*=iJMRiXX[[4#bPԌ& kC mAQ5vt:_cq~SV *UYL"iDB MIҁRD 7`Ri#k JEUpIIԤ$Zb"-9 8 BVJ]ݠPhJL$iAA†&*a0 d0~iݗV.^ޖÇKm;/9ONvD"lv ~̶m%fgp苮~~~$BVU 9yц ;Vxl6).x#G/_,Yq3hfV+'O+Jv-X0aƹ>k6\ߧאaZ KOOô 'sY鳰߽>_y~ 杲oK<ճp&lXj\fcH[hW3 ;>\ d0¯\AAJB6t$6cOn8_y άכpOC}٨QKF} ׮s䯿~V1/t%d<-@8KKsEx\AtoؿOS^x!à  'r9HHKI 5j366?GLy=N _XvR/44xU\\kBfyϞ4rLXXL. ~%K2֯}דhftc|`#Fd;FOޠrfkf V,siA!îځ\zw޺ŽFp&lX՝1LEpc⢠{ږ!/g2#\%zOa0g Uի/H ޹sI[?>n0l-)ͭ((|}qiitNJ +cd2meRYQ!P68oBdKNsJ `0Xl9!!\֬yht'{pb9 D(ߒlJ$2lp8x2C''$P`bȠlΟE7H'R|;k6~`;7$I#6;n\ܘ11*nA;jSD &3jT4u_f@B7ō ,u 49N b&aHƝK c?1w.\OG=qSR}Mo]!~҂zMApQj'eeJEKA|}va]@!`6AAҏ>2 d2mv-[vG7c6(ꪪ55--`Xh6uә1c+B(ZbA"":y`{9%%v]jkc0jw}1ԩ]^)86f*D"`V{/9##SBܲ,Au8vQz%H 'ݞW1hW5bqE?_1" _ق=a"1!$6f8kB6MsvƱn}>r8SI_~䀏ah\)*z\N̘YS47[nܐ@[,!ÇGŤŎ vv 暚z>_%j5JFEEp8dV,>H_6ify|޼&Onٲ_ҩTɓ?M|sMlߞ޻D ~xJ3!]Ɗ EEL^Z*U|]EGA!`6 )J"jBuUR P Ux\`9h?F7p{3M@h|Jiv1]{J ҠufS:JDMmm=Q74A>ر|a{9V&vbXXWPSQ(t $N/*j_n?FcTo̫HT_[[PA?xqGMx7$K&ӶM 0$RHJ =33⣣ g =c0jwWoļyϞ|m(bZl tu MN731jT,-ݼ)h6.SSẍ́@sV:`4[7g{ڜ.1,7oJDVbxA0+VL[" ~#@:EjWrͪ*e}}3 WrM`k1Ҏs窞y͛xI7/^< GZmի/dv;̌\DZee⺫Wk^S>>Iii1P ^S4J P jGNcH"٤C/f64goll޽/;47%v::`6[o/`_p?? fB3,|2!ع !\Y jZYP*u/taٰ_9qM6KhfㄶXl@`\pB˃t,[mmBȈJU֋ō~~>w(Z gF7?NSKMII4:۴ .^G|++?M8_Az _8M'l9SrrJ,+s:29BZ\\Q328ݿ@zJ/+r A"1(9>lHpnx;͖}SIW8_꫓]ɱX E]C .j@iBuu HPАx KILr*L |_{^>~[7X%ڵ^z);--u. R,3rdtff|ffa i!G&^Z{P=q";==b_+ }!ժ*esA)Ą`?'ixd2'<|[}voOd<B[O>9h\lNOQ&J3!rA!}ɚpbO,_x- ydDݛqz; n\™|?ݐ#7ʮ7em+w_背p 8!mMNlA<_YƂ~A* s23/0̧N}t$@z^o*+͛RtH!Æ1RSX3@;8qq^w?^ڕ4A<t:_~yʪU3|}# *t:Օ Ee`0#`sT.R11`/,ɟ {unrO̜WO Zm˅ sU2vP XYYI Foܴtig 6yk|T;zttFg̘n4o__g AAAQQQoE?/%l6Ol).lvO8ʤIlXq/ NXLb"-++1++)9~ʤ[ÆEhB rWt@t:V?9fKKU~z E/Ykuo̘is:A.t:A{l^o%Lf֭sxvp8TGtUZ*UUJニLMÆE=_cDv套"~HW`rFFڼrEt!pw5OUW?_}rleYYIGGw*޹uN$3e˳q K ƐYSpLޡ:ܹӧ'fsD`竮_4!s8TMFW7_Kfm;d`r?s~x2_ztb0K3ݨ˼'rrr̙E"QZZZCCP(+{À{}㡡W'K9j7lx^nүG;nү{#߻wdu7jw S|&N-z}ksf6W0X,@]I3M&ht4 jnW:&ᰫWqjXlaSS˧65\(((w=>tDvz:gT.ӧ+X '<?|g5藖v+RYJͣGo~vJѣºU૸.'$'G|$@!B|u͚?,u͚^}u-jJr8zåb, !>aa$R q84kÇH)$=lmWW+++ e^^Uc-DB%)BOIGG/8|uzى0'<9aڴMNsܵ;6 Μ֭ϺQ_|1jl˖aaCNfe%M sSt"NEaf_5A!= :MxNJyY,6. 4cĴ LW1Z o8d#2VN'JE~ Ԕ:(ff8k?5k8!w徦bUVeG@Qe ֶ)3]cԩSDQ~Oٌ ȽiqiӦ{dO7W).s nxπ{^n2u7}}|}}{pv\ކ ~dFL4vl,LkjQԉN]cn~$RN 4R`0WU)KKeWsY>Nii1!!M*.l6lj'O֌^ B܂//LNa;ӎ6 N{N뭷, 0<:nwՐNv_EѴZ- iiiAQrAAAǏ`0m_#8xN32G`C/ww׃!;dF222~x…^{m.iWp )8ʋ??V*HdF<;TV~Y_Z[uO<ߟٷm5yrͤI>\A!70!I IDAT`%K2~q\ΝKyf< v]Z <ي{9Hd6[]זA_jS~~Z dxq/ܺ5o?7UWRn~{Zŋ|0u̘˄x"1(33~ٲ|̙U55޸q^J T;N".&vA_O4s|p6BA K93s۬/\j}pJ&3bɒݸW_=E&|I>yߍwl.z!ޏ>=nݬsV_ڵl aV~:v@Bԩ{OH|~o ޴aeeի<طgrÆqZv*rEd9Q=7*Ͻ!)˖JIY__>&FW?4ڛLʖVwX,.,,i۷o߽{4~~~[nU* 7_|ERRRiiiYYرcz-)9sٳgJŋe2ٞ={h4~-8NAf͚e0< HCCC[c\-mt.X`ԩ555~ ?/{Ng]hJ"HW\q:?#Hs5}FcHJZCII1|oc7t ͛7t655l޼Yբ(p8:άQZZt:[[[+++F8[n7nbiƝNV驩>x$))iǎkwygONK3q)޿pS~K;~jzhcewiߝ^J3!} |qop8w3ohop/~#GUC6h +,,陙X,V,lp2}G]&$$ g̘1jԨ;vt|;@RbZp8,K&=uO??ZK.x˖-DÇ.OMMe]8xpxoVWVѫG;xv`vف <; < +HGXLz:qハ>RαX̚5j $(z˚vy-Z}i`bb"ydĻ>r}4möl9~]vB$3g|}wf׮KPH!YYI+Wعs͛.^Ludڧqmr `~zܱc7^=jTѣo GF*mꍗwYX˖Zj?A 0wO'!4Θ=*ǓG9bYx|nw45o~ŋp5*j„رcH׎L}}|,7?3fܒ4fEo͞=[PԺdAnܸquց}||U?fϞ믿{;nC1B"p8H$JLLDFv;^h4,XsN^K*~wӦM[rݻh7o6Xp,;v\NbI*ph ؽﰯ<۾}… srrF-Pf;偷믿b0~FfΜ?ՇzphjjYQ;fϚ_SpͣG˚L55g16xxvر8;NAo}c11} WܵjϜ9sOqHt5cUUYo$Ҝ9]y x 22ҽmΙ3R(lp(::"##޽{׍Fǃ;\3;]tǼȊ+ƌo͟?<~ȑ A Wظ.:P7,y#?cg HUlY㻊 `:΢,ׂ+WDǎ1dHO&m6 p劀 OM%&'GŅpAl.=z[rȑ> c0={dffZV [.::AW_}[jZ}}}f| HsssPP F100-tjL<+Vضm[KK,X Ȯ]{oA/_dɒN_ Eŋk˗/OLLy{rÇڵ4##c֭w޽{p"?~ɑ-&= 2,hnƸ\ԩVV*0իqk*Çܸ.pEF]4l#+ %ďP"4beo?}|wרCRRRrrrRkBBBUUU۫*((HLLpyS.\`jj`aaaX}}^nݜ1 555 BCCtuuGʯ YYYׯ_ 7AhEKKf{xxanjj3 WPPP o[ǠA8aW^eeee'00XUU~8{, xq`,a!,kX2HG2JDm׆- kfk i"%> zSeRk#ΈI 2eׯ_ #Ha)<<|ɼF@ yg)ן;6x􃮮7l8uG׮&$IM-\ZZsw 611i{=¥KOSOσ^f706,pЍ/><5˗jI 77nQ 7 &h;Aă5# +V0lʕpaט1cR555FFFG%KQ;yl]7`1p~ñׯ?OO_YY'iaEѣ orBL}}Ezޔ+҆ĉP֣ss?RXXVQQ 8&ӎ:8ןO=~Ż7oW"yyz_ٳkm3f`EEEccӧOcHYd޼yTt5ÇԣG`Xpq mmӧOuu˖-1b1 +--eX555`V^^xb---}}}OOϺ:^I1 r *)).~x4uǏ7R fee sVWW+))NiJXB φ*:UN_vۑO|.!ޚaXaaY߾~Dׄ@aWssaaa:bĈxC i~0ڵk{qww'k89T0 p $:VNNnΝ/_{q]3GC'CI.'ŽnA0紴wlo? Q$J8&W㦦>f-"iu ҙ./[}.^LJL𡼹EIJʽ|c~AͫWE>U[JZ@ iӦyxx|̙3***奤;u/_|ƍLRs]fM~~-[\]]kkkwD@qq1.'llC ڻwoII k.__ߘ={R x葚ZBB --~ܸqk&%%ݼy$VVV |||ⴵy5jTMM͋/ӧO7}lǎQQQMMM(u@ @F'ٳnңG7 !5w4IBe};wfffnݺuѢETWWSFC19Ġl_D/B y]_rڵ'O޽{ƍeeeA" S^^^~~~[nC򊊊brceeիVzznm_~mҥcƏkb#//+iKK}5.9nH^^]$lQ7@ ^Ժ/;piÆIs1SAQ$BLoln];D*@ 5otuד @ :8_jaɓ'>l``0`[nqƝ;wn UIZ:aסCv=sL6EEEh7 1ME({577ٱc U֬Yxb@YYeHao޼}--ra ݅Z~@ YY{fd|C[h„~KE@ m魙Ny"h)fffIZ D.U k -wN;HהXիWVl6bX'N˃sssҷoߙ3g+سgO[[ۇPР`mmΛAMM //OO0+++L6 ZOMMMaq33B^I ?Ν;W.̝;ҥKEFFΙ3'~LΚ5ʕ+_|uvvO@ C+\ tî\ާ?8hP䦙t0laa hB===P`*""޽{񑑑QQQ0#-Դ4H!w99Çق~P@ ѭuuC66@^޽{tԢ"3C1Z:V0 [p*L+!:tl0 {p0cq639Azn'" !iLʂ233}dhB,)DBG֭[gϞcŸo :99;wn׮]NNN-= " ##E^1_[[=h 55aÆܹzl h+poLarб==OLfek….9FI뤟555^^^JJJ tM6;]pyc5kEg-t IDAT]vnڴ̙3ͭ 8Axb[yȑfܼriie2ruu*..u֦M+19Ġly@d???|-nP # 8pٲeOOݻ_'NxL /_G?y{6ɓUUUC |!!!Ϟ=8q"~K.VޘṢؖγ14ԪnSmKuD}jfswwOMM|w? :&HfL>Ǐp7ۿبؤzH'LL(6I_ B jk-0gKIIIzJU_~MHHj{ULrN2ׯhEb0"DI(,kg^O'4Ru葄Kl+6{}yym۫BΤIY,y=H˭hT Zw;U ONӊLm~BB1GLǠA8aW^eeeeUUU-]TCCCKKkŊ}֭Syy9L'0… QQQ9#.o[1ܿAhh.a.) 0VAAoEKKf{xx񓪮w~~~]m޽{#G0J`_\RII!1:I4FHB"^rŊ\:v ~~~xɓ'z R$٤aAG𽴕fo;dSt !z`C-1Izyy`K=zOa>Etݱ޸q(j&S]]?dȶϊ9&+epUUUᇳgςoϧX#! il=,,W^uuuGVUU%GU0>A !H$ăኊ$## xzzZZZvtͶoX\͔Dm3\رcW~رc-ޘr{C)-RˁpW[IsFF!>7DbHiiȑ;&O_[ 榅"o LW'VWWu744dX?& gңY(BJ577#++k͘Z.L.tdiH;r$ԧZ1fӧOcbb0 p8^^^:::^^^@[[dZZZݻ/^_ 500x!$fJJJ͛}oF3gXXXhhh`Fq5 Դ{nsssUUՑ#G9sGW(===xٳ555񇅅#уVRRѣGpp0*#h O622ڵ-[`rF~ JKKY,'ܺɓ/\.sРA%%%)[3;9 R6s(**>}MjR{رnJUڥ!-KOCz$zP9u!7B(-Xaf䯐jK.Ĺ;T7F5@FR΁Ҙ1>srCirxqHJJΝ;_|C[233r0eԩǏǏM[A7'+++WWWZII)55 #GLMMw܉ڵk{qwwLh blծgy) 4}I`B ( I 6IY c|{RED& [v:LBSðٳg{.==}Ȑ!6mڳgO_|icc兑ly„ 999閖۶m&O'0?ĉ79s攗;v n;N߯{ʕ7ntaآE/^\\\ܽ{Ob_VճgOJAAյNϟ?,v>~HYTUU7o^UU_SSL0,**k׮C 0,%%K.q/vr^^^&Nn =z<ð ee/_oGƭ a҂ggΜ߿?~+ԩS._ 5gff&&&=[+@ZZZuuuUUUvvY r}M@) 4< }טEgj5~k.YCcTr (;˫~p@x? Nr8 6˗ٳxB>>>7S#[3;J-L^^~޽\.Ҁޚm۵S*dlb̐ħ!w??wM/5ݻ !Ն ](ywDV7F5Ci(wӘD^0N>]VVv…6fxx̙'b<ʭ 4=zakݻaXss3px#Lo߳uHyD[[chƔUb-\K'͞^^?:.%yDE=Ց@&ۮ3 {1 kjjJLL lnMu͒}9M"h ÒxsD -CgRp&oM+v83v=t)2O6XCC>PVV>}zdddmmmttҥKaz~~>fX,kĉyyy׾}Μ9PէOMMMW33BB,i ?G +^zj*KY?233v|eA> uJEE%99ӦMzABB”)Sc;INNwI_Y6Nc9 ={}𡌌oTUիv[s tHkGZ&!L@;5":9eee;v쐴 |A +IAV7Iɥ(wa.r񈈈{GFFFEEϝ;ҥKEFFΙ3VlY\˗Xggg^YO\ceaaWK(UtT¯=p8{`dz!zG ~ƻcbX(\-k 7 z=#yIKKA#5lgg S)G]]ݼy󼽽SSSCCCv|eA&;%##9dȐ߽{C;>z # Fr/]TVVlٲ~I K!k'!i@2wXH8hӋ@H9_ %)7 ppY#΁8<LxQQѺu3v؀77RG~ݻwg̘S+6HLiܹW^xѣ{ȰB_?Lx/Qv%y0)fgg_߼y#''g``DT&cbX(\-Ӄ_1*~c:;;o߾>tܹ]v999t(t?ùOo4*OkNS .iA! !z{ma'\΁ֆ@7&SJ~\_0퐞EF[l6}˖@l -D(}m˗0Ś4il Cjsگf[svvڵkl{vv6|3)l@$u&Fmc|) ̏y##9B}Y[ji޾< O5koAAAzzÑ#G\\\6oޜvڂDm :CewuƋגETCmlV=y߿?s̼ 6?O/CIIIasŊ555xJUUҥK544VXQ[[[__奧׭[7''r G Khiil:xg+(: i2p8GGG+q3eyGbԴg333~)FW?cРAðW첲2hll?={|_W ^y߯i``䤡 R3T0 0VAAoNx?; Fz`Oi-… QQQ-TG.{;6X(U!kfk i&I.p;ۦW{9RVV1 &GQWdBAl#1Jk,Q sgm ?<%))IFF&22㱙{9ے@ dr6rJ%%%^W k ի;^-!Fqz6q}M@@kllܽ{w>}tbbbyf8>](wI!MLLg]撵1,/dQD!a555]t155ݼy[4JMtܧL䭊 c7n#"~?7!a]hǏ?Q(sl. ayׯ_8Ο>}̀{lee}P9ޘ _[0˒6vXY^7? hu""H!m󚚚m6p@%%%##7BCM0$~.4Fy8~<%%eÇLN 7$x&F&)+i1aE{' &z/ʢTĭ[xښh3 /\>}jmmƪ޽{G&Udgg³5kZ2!D$\pm Y4#, ZKn;@d1.ĝ*䝍N1X,!CC9uԅ n޼eff&Y,KJ$_1+vG͛7GDD0O9Z7gCa٤Ӯ];z׺&Ri9Njj#DQ9NpСvvvvj`77l$҆$R3BتA" <۽e66c`VW",ݾijJ|К!=[Pu a9Ltv計΋}?cݗ@ Η/5_%-@ 8;wŋ<22rΜ9111VVVl6b"""{n~91 ;zh~v:~Fooݻz{{766w>z ;w444EEEGWWwݺu "9FsssO8/HZCAAAe"$E]ׯ?t(67DҲׯ뗗Ν;׻wڦCCCEUTTb"BDH=/4XdvϞ=0=?WtuJZظ̬皛@ 55 5y@1K@ vI҂ @QFԼxPYY?}tSuuٳ w^__ߒzڵ'O޽{ƍeee9?t\???Xyyy)))qqq0}߾}N"Hxϟ?~ϯ&DGG߼yg2@ :O>:t?ȼT׮]ܘ$"٤Ƽ=vccMLtJZP[[[=iӦyxx|̙3***˗oܸ_LDhk ]22 IDAT0))͛o 0,9HJ/)fXڪbnyy?p(KZ逐N nPߚkgׯ#:fffi҈ցcfwڵ۷%-T39Az< ]#pdeegϞ}E@LL̨QO/^8t600TVVŸ֬Yxb@YYe΃޽{ҤIvvvɓ'>l``0`[nqƩ$RSS1c>w^sss;v9s&A heee =z(DBu֭W+%-¾XիWV)xҷoߙ3gb"&ͧOMMMW333<'!L#b+AONN5k&cӦK6@ $ŭ\.vI_pyҥK?.''w%<=**JAA˗kmmϠATUUfXB=$-}Y,3Ο?O4ޯFFF-߽Ң⵵ރ RSS6lΝ;hm_ ,mm$$rAO5w\д@OVDFOkBfie@^ ChzQRR5jL0l…~aPQQт TUU vd^?$bfՏ={.| n޼yީE(sիWx7or> "”?dffDټ[nSNů TeX愋+'Od*a(I@ ;ESSuKv޿a;;;OOO?Ᏽ1hw.++ τ0 =L99ݻ%&\\Ҳ y4cUU?_pvڌ3֭[WQQ\zu@@C}]RSS7mt{{fuu7Ǐv*77W[[[uvHg Ο?ohhx<ӡ?~ տM'O2d~(V3__߈'6773Zr! 7oiiMFF;o`i;AD "ЧJھk" QAC LOO777?>ͿwEDD~Z\RPZZjee|…mi6|p]]]<((()k̹f;wo۶ ^5koAAAzzÑ#GoNǯpBD&Q6߿riƓtqqtvv.--/^?x=l-R% @ D@IIa/^P5/)))uuuuww?w\llltt4ek׮-((5(#ϟnݺ-[8;;VEdf~23O d`mۮUUKZ@ :)f䫪*C ˝;w[lֆ7lڴf<:::'OݻY´[,1#Nq\B\/_yiii0QII *HGG >nQ__ܸqW^5119p@hP4..'O3Zr! ۗݣG;w^ *ixۚ5kQ@RBYIۗz;^5*cHzww̤yv]]PLR0nܸ0~yzzݻ5#~͛޷laaadd@Y2ի===W^mjjgϞݻwԬƏ?hРBm';;;9:::88$"07f|رǏWUUQVdυ ɥxyu[[6vH0@ #Vqٟ%-9r${%%%7n?}}}'M4zhCCݻwDhѰ~^>7l0{{{{{{V9_|X1`@OI Bfw$-@ [3=s mbEDDWSSծ[nٲeךeeϟT2bĐ# H0,RN~ %Nn0L `C-p@hz+((t ~%kG{~%~s˗W^??_ K A C{IaðիW=<. 444N>˗؇2tB`Nz{4ޚaär䤔iӬ6zݻwЖUQڈ駟^^^~~~AAA0xVVV[lz .w… -[V[[KxCi._qukhhhLLLYY… ֮][\\T[[`555F}:uJSSslwϟ߽{w+VlFnжx_ڻi&ٳ/\srr奤vZZZ/_qZ|;C!666))ŋ˗/7o^zzs֯_@6' ?+SZ/}ڵkמwqq!o腡9@ ;yyyrΨǏ[[[  fϚ={&6]҉Prss:RE^rr:\n՗/ބlWe~Չ"+۵86H'&45g55s8 1LZ/ K99GMw۶kv͕8ŪwA ~<@SSSEaauII"[wtѱAg=/"<k~[×M_Ԣ~UԭVݻ?ش*̙s1 ð3g8990BCC˗/~=ydڴiO<1770,;;())=z6++̌r6VQQ1`MMYf .^yׯ_+))xWܼyω@nbݻw֖feeMֆ'̢ٳg%4QëO=XKK+55˗CbB񔔔'7!!>%66ۻ.88x̙7o޼}v̙ղXT++FYYYdsJKJJ q'h6[*KȦW]]݄aÆ999ܹׯ_/^ :}ŋ )"{1HyBUTO\&8+5k;Mp9t֭[322~|?Y̌YXXAT)tn²@0i,+!!allܳgψO2eر*Uqcc#y=ʢW=5Kpd9)Wɬ,iO`ĬwBzjs)LNޟTUU 4u”~ ndԩs\<>>^SS/.r!~!nDLRNSSӶmN>]RRbbbtQweѣG&J?WLl9rdXXe 䩊/.UUU;w<իWwuΝNsb!ի}}nd&++yG$/V8{\gUO_ʼnD"GmjjVN:bd?uY" ן^ݻ^}IZ@"(ut`Aً~0OE щRSS؈_1DDDܻw/>>~ҤIs̙>}:@]]Giii&L-Fx_~, } uu+VowM/(XXX~ ;i&c@盚xkp.•fuob_6 <! g@kNJxҬg۠###D.px9p@J:Y.^<۷-,؂s]ʕ+˗/?|0UVPP pjE48P"deeg͚uʕ_L*ЬG0,JLl0Lj&t^]ׯ_]]]biV66BG7_),,wwswSP8G&44p/t0v5߰if6yE?@yyGYf>|yv?3e {?ˆZc8RD"[I 4+'5`ѢQ~|p܁w%;PҁAg $|n{֭[עuٳgرnnn'gg۷tܹ]v999_WW7o| ptN+ȧΝ{Ջ/=gϞL*ЬGLhc$ !+iҙ <&C- EYYyɒ%^@t2LY|ڴiu&gΜillTVVq)K ٛI1<8vÆsmYLhhݻ=y0 [԰a& ~8+i1%iӬ/?GI˂@ +ԨQoHG@ bx/?KϞrrtOTT l2g'N}vffɂ /_NSCCQPPo'?庺;w.666::_NNN[p׭[eggg555CXXXee%hIjÇ?vvvVƂ +zgΜaӬY|}} 9y挌k줏Ɯ ?0a­[^jccjժ6JO${{WWW<\|ʕQQQŷn9YX,?,N{ݷo K{骪C1o>Ȋpƌ°0\RHBV(i!i41 ]ztڵvڞo.S߱c]\\?~o:tIRZtI1<MOp2[n TRRz WYYٳg >\WW`+2&~aF|9׬YsΝm۶cv@@p8MϞ}sm67߸dgk{|[D/vEb797fLpjjAD۩S{d;w2|8"cYǏ-Ybi _W֭svʕgUUuQܰX{^xI n @ ѣL @ IZ@ :_(%8::_?<%))IFF&22~ҥ͛mmmϟaa400 urr<ð?cРAðW첲2X[XXX^0 +++sqqbuuu666=ZUU~ l_"%%%%''G fooϛ嚚z IDATnܸO^ ?}ZUUtR --+V{yyuɩP-0*s"H[r~J'Tb UU՚MMM{133SQQcZW(fׄ*<::7/uŅ5k 0 r'N!((H]]4**U37#~;7aYzZ ʕ+Vh*!,1^`5 !;^J6-R`ĦwBЊAⓗ Bܩ2=ssss׮]Wzۺ eϙ3GOOOMMmׯ_[t) )= /BݢqE 9>z2s޻wpB [qaD~Lbv!**JGGeip^,<~Ǭ=l== ٶxgk)ҝ;66MM}&ٿfdqB~ЊC^^ɉ~OCCOCCyBOxXTT.d˗Qv;ѝ"$ ڣ"gmۮIZ F\g ߗIZ@ :,f:ܧO9xǏmll$-_8Njj#DJvv9Є%3 )!AbuuuO>VS{ݴiicÚ6B"\,7n j*Y:{ս" *"$@ X^K٪!\\\'Bɝ;^έnsKJMMݽ{w]E(uq{D/QTqO^ +LP*?QFXXyСCK.}R_PX\,d4955j}5 ݩSf\9[jj7p!k~;Zw{Iӧ/;uZٸqS| ^ֶlYs˖ѥ>;%jåK gPhM+,̿GFLZrxѣӛ7*ŝߺKհa-KiӨ#~Z]Jwo„&,~vѪs^L;6<,ƴi:uYzX.NvUI\y89zL^jfZyyyTcXJkW:70LTGx-[SZcvz~+ҽ R!+ V[{=y⠏OH=bf599/11'11'1QYr㱂|BBDMX,VBQ[Iv= K,>X"rٍe.=Q%mhQÁ}4.=o^7v5~6ooAO>iEu״iٳ_EF=#Z.ZωJ;r^tt@ 8j&@Y+Yd051LOu(WL&TvGGf@>}df.\xLJ׷o Tnt:599T"A9Ͻ KgA7ܓWBWpSN*%%?--?%%?%%|i zHN*7 RiŋO Aj]6h<Ý)]wK Wc/] -==5vlxbb_  QFRaڶ i6$-Mg}lt}:Gҥx]a x<ֺu#ڵ :t~ڵ6Fu({mefTy}4޲ʲe}t4@b_?ܼ Oԁ</>e˕Ȉ)S::PUʗ/U銔TEjj^o"azԩW_zUll4E*M~0lDIXԤI+_Ӈ2;vX⤟`Amۖՠiv>|…Yab 3gewEl=>~׮[W< 3&[,s/{~ gfn죏,^ܟ,ŋܶm92E`8ΝW~QIU ~oE կ_8d)(h B+VleN*'Ge2Ys Ϡ o--ۋ)RiTidE`^nHra:ż{7U7xƍ% $y@'-;qݮ],[6z}ksz1}^kG5 CŊ ǎ=ز/k߮KOnnҥۻwez{sN `5 j#7o&]8 άd532ӧ9O*Tvĉ+Nfg+m2jTfP,VkZEEݮVvBTvZmMFE fLn fZo4Z4,g.y~_~zBB:~St߿N:;p!!2Zm=bDK'(Y}j :գ:ˇϧÇtނ*UTgpZ%_R7Tl8}Ǐ66jT~rLscPt%Fcl6[Qي6cF^oH(m` MM5_|]7VS Z|8,E8L&r _m0|<糙YZ7=zIv1ox^Pp T !iSmUN!&ϛw0))wfuo:xތf2wnrbru£:[yɓ .?jUɓ;~r:ԻMWۼrF՗-ؤ?Չg~Mw\μ5k Ќ,Nd53fNN^&euС{6]:aݺ5YTpZŝBROh6An6*l{ŗ"n[sX|I*zh V?;m4Ih:i2:Yָ\+BlrݝI`l7 h4>SiA0ndFs)~e\]]\ O3vqqY4 yrrL)Hqq&E$]L8I77rQA(UnvuZ~;V-rjd˗eܹwzU;-[safvPF&ˈ:aƨQp(YN9;z^۰aQif>xޫך7"|R;}ZvD܍i4ڱc]ʛZXlEEәfZZmjlt&l0Xt:l)^\ "f'IUv|ɷ#6f3Oz>FpHیam @.1~rc26NHA77WQl gŅVI&jڒrccSؔ4+fM_٢E)`h177zddy/&|:ݳgRy^/l9-MqLoonpyyE?|n1jTI:xy9/]zlΜm)8Iv<.pa6#3Ir%TpZ%F%$du#iBU& Jٳի~СD`RB6jZmLȠәt:SQAyVu:#Tu:l}nNr f[ .Dr⣫F#`0..9ܑz5Бch䥘īJ%F aT,e޹B6xƍ%-ZԬ$%>>kqqGuO.)U=zܻwRuIJg5޼P v矯tO?m;yrGБ&Pj͛/ㅺu,[6y 8ĜNѽzQԜ>h„m ˊ@*Y$s:vݛ@%hƛ7\yv곤\6ѪU֭kAaa5413ZP-, *N"˗ZV닊 *ի*{Yl6ax,.08pݝɶ%Ǣi|>,MSYJ*-MAv1ccS?δ^bqXyÆ՝fӇP+Wپz˗[Jgq#i ܸE2LJʍX۽{õkSQݻo[wA3>}zg<}r7o2D=T'ЦLӗ/qNF5cǺTgpNof~ެ,S( YYWx<@Xg>6_|$ݝ^ޣRMe]̛7 hذlӦ;+'FG6#F,}0`Ç~.**'{&q:i۶k_rq!>ĉk-;<ԩ =e Ә,,<>}̙Ӄ mۮ}ݙT=_K)w$&'%h.k7 Vaj % f\-T*=!rRUgg+__Cɤ H @ G ` |}B!ӓJW@\249..dD|)5n'I(99/24[eן KP2͛\mvڀ,Ao/\aܦO2zt3;v3t:/>3&J9r\>{+gI9tQ9y~ZDګWժKI&wPhbcSM2d Znƍj֨S/TE/_*_Tfefg+ɏ|d!CӼYj >%%JS_R؜9Q_uڍ/mvח@GJ݆ ~=zvpƍ77m{oGGIL\^>@{C5j5j4}i;J2| \%e"KLt:-8طNQhh"L&KZ"-MU˗leqחWOPg*z{s1@Fc| b޹V\f&IPhh-|6Ù3ks{~Ik_]8d&m>cdžSl6lsFFS_zyqHrrTWݻNhh AT'z))y˖qꔬmېލU:l6{;v:Kx0g57oFzS IĄ Ν?@XlII'O^&$dg=y- կ_AjkBBjXT7Ptd 3=]QYh`2~~// |}ի{3ArT"Ʀ<~iE"D,I$A VVXQQΝ4}+Dp*.))E-O'# IDAT^@sW2YƢEnN:;J,9~~z^g][Du"'5k߅ u$Vk m۸>jHu'jݷ?r+LeJ$$d'$d?yk0 ZUH4kծ- yxTg*<11'%%/5UPtAj<пgb6[<&7o&)77z]֭ka~{^7oŊAա:+׮%I,ؿ68%=.{mk :C:>~YYF3c3ڵ%K'$d6o^/LSJ`0G vYʐDxԨ6Ӧu:zs5Kef~}ryzlĜϟ˟=IJk4F 5k{ycH@iQ ϟ=}$,$ɤ-L@@j<\ Prsҥ49..dDIXԸ?@Ys8kfug2+unnRi49qҥ'G`AQ!}11\]]z,:;'OƭXq*3`PW_uT(?WݼQ>><#xz87W3 !mې%Ks +lj&'x4KAAjxUHNgJHz4'11'1Q"aԪ% թGfeY4Y&LLquլKv1CCk8늙O3YsnbqPL.+φ ^L{ްRav̙T'8Sd&l߿j6ROX{Vt@S(eID^kj v\NOW)22銜f'gMM5Ϟի{ YΝ;ɱ+w1VR'O.[I77z]Vja\Y{3mnX޽{ dݙT^ ZffatlhQ?kLcW>Ph|GUo=8ԡCLV5׮M 2wǎ]6: y[5_Ĝ[#D/)c&'5Y@>Eu|WL&ÇRiT,zռy`f55.P~rse h% 8(,̟t5Ys쏏Ϛ8+jѧO??~ۙ33,9yh'9{ЫWS=82j]r#aF˞=֯Pho1yrG d={\6򼩦Aٳ{ӆ m̼fY3l R)*2dffe||R`&#pVT'REXGժ??ajBʁVk?bƦ gM`TV-))W&ˈMJS?h.5kV'+ `rә֬9ye8(&fp"fk]t`& 6mFu̙Go[رm KߵVލcb 3ɲw/|ݻgu_*աߓ'ݻ^dQR~vcǺTp6of1iҎ4ř33-+,23 _T|Vfg|V6BN*j>bJ)*ݝY~U$X" H+T9;ә"##FhY{/]s^jdr?ܹ>YĥKOjAWڥC~Wm6ŋ WMs@,[^kLGhE)=~H8fJ;qf-+L^6zZB.Wggj4F|-\ӝDloE5kj1PnϘܹǏ^qZ:|#Z.XQq-&opFnfxڵ֮=W!!\dOsFug/L z\q'>B/_*5UnnQnZ.Wlnn޼*U><,jpEEK<O5cpOǎ:v۪UMZ]=|.eH)Rih5nZ]" HL:G2i:OޅphizY.pb¨Qܽ[Գ5}wDc,b3g~yTT 9#s~wݙ#G;Hħ:Y޽\Q :twSRVb*<@jd*(L@ѢTjr_*rC33 V[H~~__P&LjU!&@ETΞ}|ʕg6uݻ7رn@ʜjKJʕ2bcSҔ4K͚dS, 9tʹՆ+Oo~]" R/Չƍ͛Q~~se>=P/>>oml8ז,9ޡC~.rNA k {F'vh́ڰʕgΞNʵ9֭[ã: Sj&A6\\󽽹 *&ZPQ(|MA6/(?H("Bc02}}^^\OOw9qˋ[厗ʍhzwϜyҢEp׮ mi,TݙWH% 8ћOsM#FtZcVK k9o^/޼#ZΜٍ\)ĉۗ-8zt8;wLՕyfL&ˑ#lIvV5'LhߵkJ8*grw_5sfӻPiiV>=3,Yft- "* 3mZc^ޫf~&7W]PU(4yyEBSP-Jtz{s}|x\//wzxp\f~={Nzsv!7֭!܃sURiT"e<|n6[E">934z&gӁ+"#]tf t:X?_}{Py([Ujذչ>Ԛ5֬9gϤ8^}=Npu7v-q˖?/_~Zp6Æthp&g5 ر`c]P˙8Ɣ)V:3iR pwg3vB%%μ BPhU*XMOOwc==torrTݹVz"$ϻ,ŌLpN-!!b޾"3Nկ_M,9UVW:#3Ŷe˟VQi-ZS=hl2uj'rDs"AT*_|5)I>q⎓' :St ]Xik mmۆm{ .\y[Ƿ'}Ui{AXnl6@Kugfa0[Z6p`e `0j\RJJWtJ>7W"kpd҅B@~~__P& /==$,ۙ3}3//?nQ/չJZmKJɕ 3 H,d_}ŋ?:uj'~G޿y3ݝIDD :W0-W'O~糩nz1uo|>{ǎoyG1-Ǐ??CCkjРt֋7^=l1Y(֬٢Oԁ NV3 زJL̩7"e ࿰XlڂmaPWPQ(U(|ӓ#pBP6 9 G}{ǎ ֲk]f4T"<.^b.fH9 Ug7oܼyʕC\hnŢEFnCZmh jӦQaTG+5rg5!!;' Ǝݚc۴EuRvۯ>g|ذkOu}XX_~Kuu[s:Syjl!iӀuFi&Rd؊˚ڂBQ*uJPR銷M&XB!9t+7m(Wb1o1fLxT(:Lynjaa4hPM" H7p:#[^̞/?h֬Ƶk;eoe^5ٕ?wر[=ZT7ǏqĈ:s2-3g=qƌiCu'vw23 [ݘaP ք Oti@:  "ATp*P$)ل ۏ&]&J*zR[XYʩ_ I ɚ&B!G(dGlTaå nj >%J rT"dVO ޤI:%ZtݻowRŊAUNT 㳺u[e˘=Cc,8zf VN8qNJ>5Yn_ƍkpa_WW'Pjox~@Ĺvp`q۶!Tgo7##7F㷹n4 NݪA|B3*`0T:RRr\.>RJJWtZL:9tS `=NbXG looS>n_dݺ )I;uuqY,/rccS;w32 tZpD$lY`މh.Kt ٤O.sڅ,XЗ`eϬ[waϞh|Vjn4gQn~=!!;$ď\fUWݩRQ̚/;[g$8wf>{ӵʕ+*)L΄lկZj^2T:ZWj^7~YWWgr&yg Nl&N՗ I*M^;bqдivm@u"QTdx0]*MJSbcS 3j_" "dXnTg "#9xf gQы>GEVXmhm:]n:u+N20Л8N޽q~3I$Sldv:rl֭ȑk(͛w($wضAأjS1ҥ'nL:uK8wf1oӧeWe 2Je_]OřL:9qg,E8y<rY|>e#w/-&;u=5Nu"wJccSҔv= K,~ mSݻo/^|ۛwCkS4lnVըu#8me<;4h ^H*;YYÆm6M:NhO{ZbPπM?EjT.=]Ѫ2>xx! }W<=~H$:]~={n߼Eu>LСÊZ5,2K48j=Y,*2U*}QAk4`0Kax>zU9_d00%KN<'EFFhLu"D3=~)eƦ\P04&K$A͛zx`uJ*%%oRiIg| A'5kŋCB;@||։_P=ԭ[e HVvJȑ[23 R^㔓'Ow}=йsAw@]{nsՕ"ׯiL̩ݻ'o_hΝ7W8 N}AGܤI;CGb6[ɦZW EE䇞P_T|P1h;a2dc˩78\_l.rY<gc {L]ؼrq5p*,S*MJ>L7"?4D$5iJuFl]hԨʕCRf4Zÿԩ^L׏6""l^T+72YFGn7}̴Zر[=ܵkbfT)?Fɸ}7o&3{ 8yV5i4<mrr>A ] ׾}b?8:Syj&Ao{(ҥ9jh JZӠR_Qs?Ⲧ@r\.Y o>Ra0U*RWtF`0+:JR  yJW*_R %\#1t#pX,,&B;I//uv +W tJKSH2YfllǙ6= K,"+oԨ V7{7er=ƍk܋/\x{7oFs+7ZuС7oFQ)S~vɓ_$WVܹn<Ҷ3I2YƁw 1hP~-.j _X_g=3REv֋dKp P>iǎq BN)ttFJu:NgRtZI3t&JWt&lܛ+ ap8 0ȃB!cZ'?sZĉgbQ*5Q&żqyAf4lXbiSӳ כV>iӥ~ݐUT'*[))y:,Y2`Ԩ%N=6y(JQ`0N7?9",,nr:h‡чwᄑcPbVͤbO~d0[5hP^8Lt,?$WWU=6lټyP9>Ls͝;k: j&AΝlSJʏ`6:~|~js$Nr '9r^d$7Pfܸ\+ Pq\lƌcO5 :TRrJ&˔JS丸 ".XԸ?I_ݾ⫯)#G:Ny=4Ņ 5i`„Sv$rUkׯcxWWZbbΈ[ -8vl8霊n5kѣwزeMT^͍^;""GPԂ黎Xb%77W>yrYc={ӱc̟~GuL nL2dÆ J&VЩjVkM`0u:ZMzYt&ޤ zYN |`|>vc<ݝf38_lf3\&b8bXqrӦ}4Ru2t61 :p gXtˍc3td0|> k{?R7qS-8t8P)h4Ҥd,Νjc5n/hѢ&!.^LfuٲaT)'VQkOyٳǍ2>]*nv]&Kو.]Snj9:nܯ>< P{BSͥ]:aݺ5>gr3vl4pa1m¾9thZV PjJi6[{ cf`7@9 qt:Ngj^7 fZo4Zt:Vk0A7Jo2YzSQdh4s.`y<`2N㱘L:tw/zktr,1lƌE1n)[AJKS]ؔǏ3m6{@XD.Vްau SCTeصVލ/NucǍo9rocr^6UfuΜǾ}QQsVyRRR;>hlMznܯ_Soo.C ƍNY.Y2@(PjkݹsBy-ƦܼPh\ի*I$A[BJӉ1u"Cx4['[| sP;vY'yzr( jÐ!J1ۨg_pbh!;}4yh3D~IoVK:~}Eqnq/ ,tcTKDc+DEbBS,XP{"EŨ]XPE6sݻp>o 0a{ $%K0kE3Bo7nUǏﮪ1OO\ DBpE" /"o)I0@ +E#tkN<߉/0TT*Y>F#9 Be!!~4P$v:ur,'-Ç>zH$b}1;wvn~؀:O%&>7ſ7y/?YX]GNyO Ӻ|biU_'Oݻj~~41<}zkB ݽ.11ʕQ۶||ZqwN_ǏyϚ@\o>}=JsZ <@D۽{4ϰ=[Ιhљ-\T82@1*\\>,ۯ>틋ռۇBOVy:Ya @\l֬1c^=B,ꐒ&"OÆuI4S*ed_3ys+  RDn2pfI&x܄&(@/|] H$B޽ϞeY8CG??ww.]\h#Mhh$ BǞڮhNff (T=FL"e˸ 9t4a*{KXޒtVSqyG>HϩUm C0;Λwlh~0ԩNj!C糭~jb?|"W&ì^^.۶mWݸ*"L&;xpR~m]wի/ .#Ej0A{zXq٧$Q*C&.\H 6 W&li JkH$ۻۇ )};=9exyuد_23K$2As6F6=Bk&Z%=`;ߦ~jcx?ȉҲ2!喋Ҳ2r˥R.Hd|P(2X,p2f $)/Tr,*l`@e0T*koN"d&N$5t (H06w5td5vs'= `?GE v-@W%,ÇY`K$P(G>_$KrD喋D2|rv 'Jl@*T,dgI2OG<%%,YOk`B@?y##_&@!PuMcV!ҁ"H{E<<Nsgg *Z&D"-( uԟ##R($@2227oaX%{8pwΝ;'$$9_#G>y]v!>lٲWfffnzذad2'9&eggT0lΝxX5P1xѢ_޿/0aٳ3[V827lH#+ trՆ>OJ1 ++2'0ԤX'>W;Bπ*:)Q1i`@R4ߗm_L&BÔWPxp\5̏NwEI$PQ$Tfb$}`ug``kGGG.|Ŋ }}=VѤIco{"ȑ{Grqa!Y3PE"^#1]JJ+ !^ D"ˋN|302Y?cvȑ$ظQg20XJ mvZFڦOSQQQܹsCKYYY^^^Z ١CPSSS6=}}ήqtTNo;wP{&j=ƉDTSPOs bP"Kʄx!f 0 ++R|wXN<ZR"D !o"wk46D> D"[BP*1H$04 O.ټyEme\.7..&l8\qn.TXZ**) KJlP"@! D"081O;bf͚UXXSay6}*A}k&B`XX:!<TNNf]>i`wJ ޽y_pLMݢɧ .L6ŋfff 111Ϟ=300ؾ}mrss۶mjժݻwJ&xŋ߾}kbb2{# '/w!dmm_ .LOO]lDQԃv?P6Q>rÇ\&0222>>O>= a%OPq!TZZ:gΜ/1c6o'N;@ }C $(@vd،G+Wv-@4ibؤa6Z @f͙f v.Gpqq&LѺmMPd]0kVEG>rdk{FFڮ/>}zܹk֬;w  w޽bŊ;wvٳgrÇx[&MdaaW^o޼9U9rӦMC |rPPЯjhhXaLOOضm+KKK۷ҡCEJ-Ww"x=<ðN:5iҤXɎ'XdgΜC>?vXccq!~Cu!t8q"88xԨQiii !!!siT. ;FGL2dI F&§}Gq8kg=DbD*ŸrS"BőJebr8 v!6%cc!B!HD#YOH"}oMO"}&^^Rz:DAԯiQ~ŋs<iRsW^ Xysƍ-6lcm .K5&5 z#_|`mPM6k׮_~ӦMBm޼yڵÆ Cج\~S2F{,y IDAT=Bf[XX\tiϞ=uJ$d2G'N8j(Sf11 {5DzM*0H$DB'B޽{BBww(bرcϟ?wqqA-_<22fY]vfƁ7668qbHHHIIE3k&bH:9=2|ɓ;B!}! (BG?YO!'d2?YOy'IѷL!d["$H1:w)8}޸2:ԢE{hߵx͛ϳfge}2i7 +{_?FM|µ4VkUVnد_[xtʔ)˖-KNNdee)twwW>JMOO"xcjժ'{[vbIRWWWnnnby!|veD l&J^٦ɓGrh׮P\[Q bP%>yP3(B+J1TmDaL&+ e-EB@ FߚּBLSB4(/^JBQ2kS$xQyP}[ ȃ)x}^X COxdĈNU?]FFF1 d oLdGժpDΝ;'$$9_#G>y]v)a&eg_ :[ʗtzǎmۦؠjrk^'Jdg͙s455'2rԩ{5Ǐre^>PXsrŒ*D^ [tӧ5k6v z,\&AA7^5ʋԃY!-[v֭[6,""L&R#F8qB~SESH5˯ӚdAAAf͚1cF֭"""LLLt钚:|BHDReB\.k֬7055E#Fؼy<Ȩ_~GիH$P( CqL BBB'M KHH5kѣGBK,񉊊rvvvqq;vepppNNNN&VOB=:44tϞ=|>ѢEl@PMG3BN!c>! PC#^9|gyU U\|2QMDx괶DtXg|għ|EŽۏ?e 2b!B5bڕ}o_q055U`JΝ:t ˨ Uu!:::44ԔfO>=&&% ggg X,Vttt@@]YYY^^^Jj`3gμqFyy7oތr+W=z7oT>&P7_Ks[vE-_b``mjcI cG5U7bf͚}i{{ׯ_oٲо o1`mע^zyyYZZŹxbuN:~1c*ISH@n_|P(;vOK$s~]vk׮;vALMMq.X߿O>ݺux`nnjժ 6={!ԣG*t:СCQQQ?~tqq9~8D*..&''ޣP({ڵÇd2`Hyyy͚5cLf3 W8*' 8|Νd2yƌL& eAAŲ9ۤ>Onnn?T@GXn 9r(Z3O]`ffXtYo?Nw|䉙K]kZ=P]+33.]o߾=~lUH}w<۹َ)'B+*~9jQ\\ܞ={233U;l#yxAJJ >4Bmv!!!N&]3CBBNڵ Q/?o >h2?v@i3fP Ąab°1utlشU+ww{ww{//o-||kO-({ƌ>3f7… .]:tQk׎]~۵}vSf$%KJ~ޢ{=x땯_|fO|G^|+m[4966&}Ƈڳg>eC ֲ BH @΅ JJJB -Z2l֭?qnRRRBFF6E/^СWHuֵh|Aii ͛5k^^^",,,>lbbx-[  ˫BQԃ߿8x J O'H$*p׮]sss333[z5BH,_vm-[tuu]|yRRRP(*jbbS,GDDXYYYZZFDDbPbb;Nwqq9|]**צBJ^U޽dg]0{B_e*էC.^W\&B.31KұJ޸qUޠB||?ФIkעެ*lBJ[=ܾ}{QQ}Ϟ=~j(.Wyʧ&Hbbb,,,KKK^ߥLݷ4s8ՂG9dy.!dhh_K;wnVLR9էYAݞԸCΛ7_ fff.]rpݻw+ԦSPJmL t Ugh1? `@ n%Jofe'p9gk;>fΏ?ZJJcǏo[YY=xð]vYZZ9sӧO.]j֬Bݻw+/p8*{PAAa?|0a6lPðq'333--m۶K.0 !p݋5jٵkBP*Wկ_ﻹ-]T^bUrG*Dr\믿vIAp8O˖H$޽qqqGryyyӧO8q7zsrr:v8|Gv}dxt%ߦ*שUX*##&?{@r'Mok;7"8/v9z@"_6I+&&dǏgff~w3 -x7( B#F())ٳgB[V_ ooW^h>>>֭jTWըP[|j֭kӦMZZڿۥKp%+R],%%|滶mYTīP*zjn@/_*\{5iҤ"RT3RZ^cd2aϟ*x[ÇUSǟT5GJ44ޯ+5v81WjjN kE us[&::79O|5|CYfw۴isARK _xR70lhѢ"D"x_y777 BO>0L$UXƇxUiii6ǏwssS|/Y^N& 2D"(u ҫW/J[0 JfQQQyU0ѫWjrrrr틋)KJJd2˕JfVSի Pݸ}%;/{a޽98ye66sMM6a4S|śeJJ p{W_ oX[D"۶mK"U~5*V+Z˖-Ϝ9o+r+R]ZL>_ئ? 0 @hf$(a󏹹y.|aӦML&3''“Iu/O<#Uy|CCÇb6f̘ T7xkH੬qcc! &4?qb۷r˿3~wKT*D$DҥC>]zNN:)S^|9m4|MVVV+J0J'B?~< ŒJJ77\|!O#|Sqq͛7Zj%BU[nݼyԩSϟWDDnrssd+b#jBBB֭ =zԡC G!!!AAA?|`ccRRR߿߬Y^zݹs!Z#XeU^.)h$x<ܹ {ƍtvEb[we>-[Zaw@b0*,I|\V*XoQKR>1P.]/^Yݾ߽gQy*O-;;[~  |WI uovfxdjjjmmUZEKh̙:t<*\j2dȩS|~bbĉ\~I[gϞ111!!!EEEu8B56lILLܻwE] Ƅ ^|),-))@ d'O,..4i_qq1D"A)uj^u4Ywƫ'm0ؘ65 B!DUX87nŊxHBBB\\m/""x{QTTg^jSN]pSY]\/^@ MAedd_PtND3B-ZX=;?d]v| =jy_=sfF``w W&͚5+!!뉉'%%͟?_ BP$QT@rϟ2dԩS\d BB=:44/^XhѸqjU|ſ4{쌌GEGGwQ ðwwI&!¬f͚Uxbً/^|o*od2\|_uiii ضm@ׯӧ9H$P( !r8͛7WY|̽{lXիM"{үnuvHNׯ+'.=v5#h:f+E")BBQY4S3|E5A)Rr#N[b1FFFGtRVV?.OU޷ʫQYT޽ Ǐp/^xb̙JvǻQ^-ծsv#Pu@K,zjzzرc˃Vw_黗_~%%%111-9ienuSSӨ(F]X,:/^jjc%lٲC$avYbH|rggg##nݺ=z}kaX 6lФI{{۷ 4H~Dn:777CCnݺ͇0 +..?~|ӦMmllΝ+0 C WV,WḖxU{utt4775k@ WD"Ū>UU7H{ll4[x ڵ:o`tiJ»w*177/**ϗ_U˛pB|e˖?۶m۰aCQQQdd ϝ;YRR2f̘u}J Qۻ…9ʄr?ϭ^r}xxث6 uSXț0a߼y&Lqleӧهbůe"b)BJ%.h7oBZPTe]ϯ|>ȑ3fâE|~ͮ\ٳ}EGG+o~+W)Y :DQ(Ǐuƌv9|So``wm@0̐mWzpI[{* R( 5DygϖÆuPB!DUQht.4> it'D2'T,<;nn//#vuvEjZ5C]3)F3랯nv5t.M"nj:uDpޘӵt'T(j2433KII~fzu"H-B—7o/j*77WJh&nƌ>{LHHx0~.\P'z0tmhRSs]w䣭[vɬlڔɼD]3~5ʫw[mo~L&wG@ Nv!6a„Yf]x7n h x<^;~>}D" `0B{e:{쌌GEGG(Y z1gܦ+hkkڽ{smh>~, OM͉8mDbM@;޽ I%J2Pes/tȑ-:./^lddmkkɩG666\.t:СCQQQ?~tqq9~8NGM<~211Qrqۗ/XJ5+@ rphzBhp!C6o8Cŋχ q(vlWmWd29"""""/ݹs_vss0Lq!4jԨQFUK*'M4iҤ ;V@3#b2  YrHȡ^`0hݛ7߿2p`;u .ITԩ)de72X <X8@dDBeR:]BKt)줪eb~xW_y/^G_uYD fd I1 5lYXX(TXhRFf2}NLLz4bUg\ g$]4kd… zӶmL&]EFʕ-,;tpBϟyy%l||/\PӦ#?FFIDծ늋>ΝdYmwɨIr:]RR˗M)caQ3K$Rjy9C"SDJt)&פѤx(00yZTs$Hē'wrGߺ̙t:EF3KKKUxtЀH$kkk9>xGKKLM&3xaFNS"!vO" 捙ظ}GiJcLfHHHMVh>E3qcvm*8<8R+)߁}wHRRg8E, 8?dBB!5ibheeښʊieeҬԈBo^x굏Oeˆ:9vrK%k[b>.kǎ=@臰Nh"$J99EEE‡F}&& GǦM^_3# %'qs`5kFj15糗/0ujo//Վ74%Qj mC$^}1zjܹǵutuNe32>شn㔔۴Y}{X-T[!ZaiisΚ$f":ur|yĉ6ثWKmW/KwwƜR~>{Æ ڵkv̮]]6AYZ2_ڵLiݺ+Sٱ?} i42z6,?SPG6I?t"dbӦFCSyv~n53g+޸q]NÁaXX1 *o)kiȈֳg˗ӴܹjŴ\__ݻ'Xg|=)LsÏ ?{TŋI$ѣ7nz*+8pgdSSƆ cFTpBVV* Y[jjΪUFb"v횩j|]`b01ali]9)k;w`B k?xd V0 ۷Ί<<^ s4PG[OePzf`\n1]۵4vO|-COJ520n6[7 O?}e8H$bup*$T"ɰӧ\(J E`nn ڷw8qb޶j   |Ąpw^1/ܹW"BT*D>>Rov-ן7nڹs}Wbqh42 Zq4Э]f'w=ڷwvE@?T.b_pִCP)SziT؝;K(=+*jPӦF*kfV9o/Ͻ~U\ܥ^F lH2Ftr`2+[S##OZY1/]۶ih:9ALw ۷wHIyLx~}ŋ;tp8t(ǧjg؍E}C>>OJ 6aöZ5߿+BIa;;+/Tנ|o= 7nio_j{O~UǧM>/]zx Y0;2)K?}*)»#6&&om5Ȧ!MK}NytguٲTmW9rO}ST޽[0@fWiSrB77˝;}}=qY,%fx|SDX^~=++KۥaX.&M  ٸZDĉ{2F2W*B}K%n~kaaܪNgop5!AvT;;fD"ϯv{3f[c} %Vl~Ud.]\--4fkT,^?۶v-upڹOg~W6n\7mWj&K*lfL:={5Hjd2+W& 9s|{hj$-ppؠQ i3fcGJll=͚wخlxh#lvYvva8|!DlmM--&M3g-#;k{o={vܚ lZ:=[޾>cFm`ƒnrL&W\A fj}}iiBrvrn߼>m rr2q| ٙ];*8_ 9wh.]\UOcG6+.s'=/D"o IO**͛wS(Hd3g7#0k&Sݻ   06ʊiettljeŴ`rR'O۷'.Dw7l]fgUG񄆆4M-wmʔV8loK8U<Ǐ2Dwtll~fwϚuL&:5"iӵW̬!SS6flakk?T t՗JF Y!蚩*Ex3-cZGPblLoۻEXX.]\--]^.rph&[Cf"ΜsgʕׯڴTE%Ko$iilxMMmWDٸ1ԔaØ#:ii9t{7<9>]3AyZuBRs8hH"Qʺubqvdd߿߶=H$Rcm^L&ON~J1oL,"xxvp5(O,tZΝ[vmܹm4 @+V<|P02sDUt`[6LURY)'HL 65thu뙸[&ϝҲY-22٬RRMdS$Jٷ~@MWWkO+VqHHb8z,_~T*}mZx_ZrZ^Q!Ht-֭'6p3gvtE"HqTb *- 11<5UVSP6jTPsͪP&}Zg۷o EDlݻ{3]iByyez\GG/)99Ąit!ü5kN^p?""`׮Ɍ32bnG6|x={D۷_5SELLxF6*]JoE 9!q+*>>oo%nn6Y=vVlnX=~\ ЖvLLxwf!ZݶSwu󊋛S'%%#F3-#bYbq\0w ,# &ju#G~=iRq. _j2@5E$';aXOBH^^YLL¡C7:ur՝؁LVEtkfMffFg?>/nݚgϵä́B3Э3gZ6J[ Յ əEUU o5Knu.Yrߌhc@sk\.; Y,3&ZãG-[}ީlv^t̓H bf'&Vx//0W&^H1]@h&!ֶMlz}{:?E_e?}>yee=mYYČ92Xw>lϞ)!&&< y +++#'OgW8sEFF; ZTm""ncmmKeS36H]RɿM[OO;KKS^Qy[|PF 2++{ȢB(t{7*ӧ%_|qС>>}7AgRG`L&ON~J1oL,"xxvp5(Ȩ5=A{y%wrԨnm=8d+VDNߎ5|P*'ɁNyHҷo{`ZM;v)\5~ƭT !\~urڴi7muƌ};/[6G_m.={X']oMBS*;Md3+Xgiz!k"m:rXl~>1MM)΢BTv @wBRT$;w^,ׯ㝰%iϞ~LW UZZAbb:=RyjDKmԨ`-$ċ7cLLWTi sw=zt矟W>ܼy@, FRUVVK۶gfD)VOM3&dm&r$.oo;&޿mѣ [2ؠNx''/,x<\֚^]-ӄ533>R23)C[zx̘I%2N,ΊIX<2 *@dT M&+>ؑHgT|ͥ]Z[Y3|PaK<#bYbq\0w `trtMժdɠ7zm\jؘ1!8% iiEhÇyk֜p~DD]==혮A*Eau=QWN;vL:ڵ}l`/Va32|Ŋǎ?>O##. n\{.)ԌljnX~)*+g>3mZ/ptBrs=+hLD3k^۾<ˉ}%+*C")7^ZZqCB„B7__D 5 |Ch^/.ٺ5a#G$Č_Y / *1_^+I8tFNqqswfP讙z[7D)V{1!;wdΚjީuh,+˓{+Mds|LN866VdZ6 ed6gYyye l6cG׻wƏcPyϞUOc޼~V< IDAT&L$2B^w͔O8͛陙Enݼ. $.R G01\9p`ݼpa3TА|77t!-zѶm第bbƎΨ!D/J}ps>}wcnM>g[|uQkNv㙍f|Yvu#&RTVVBx<֤wjtdF֬S]&;;3ܫ" z-0T`ܺ5٤IzkH}f*tzTZM BۨQB[H#?. x{s<=D3ӵǹsM&$3W_ ~~QQa%)+[fԱcIkמUG4zfw^cYC ؉n͵w﵉{m3]4('tne,Y2Ḧ́B3ЭMHiR&q5k 8A:1] !89Y" zS'ݻE \RZM>}wO=POOK\m y":)gYr)$+**L(t`?h`]ڷw:y;v\ڲ̯:ure(hPC/==,-Mӧ%ݻ{3]Esy0o͚.܏صk5E3iƳg7^ڲ޽͛1n\(f4 *ڵv]92xÆQffFLWeF6 UNN)֔H$)*V)YմD6͛G33MLxͺWOMg kցb淶hHn]Xm/??Q'Zdt"Bmn^  ]q!Jh& 6eϞwȐE}// BGQTNN5Ӆh_^^YLL¡C7:urS:TT4fccre/?kՅ  t]݃f) oݙrZǡd?7Z[鯙Y$g;D"@G6W`jH?y~Sm"#h6m,?.`r֓ N[jxߙ3 D"up`f(vBVNT*Q)R(t5*X(t @IMӧ=Uh/iOOO\uΝݙ. UI_**R8;[1]6UVV#ڶ휕YLؑ#Y,,B 0Isq޴iڲ̌ʕz_E%ZTnNsr2Cqlʼ""QR?ZM5a<]̙} DNNV}ZZhz~mgOӭ_RW~mۖGQD1,8K.WZX;EG vphb@/WI$RtCh˱X=-:_LsѢ= a/k*HsrJd29/AI$e''jرkO#Nell?ҍ=f+رcf_?|W~v@ u" w7b\lUjD6cc+*l`Ih"nn6ls9 {;tpZtpKWlYuiij!5Ut#ɖ-gv~p?+Ҿ7 fvbbzii%  |}5=xKQTLKkpw=|xƏ?S'OY!C. @nR(tӌjioiiluB Hj1cB.lkۆ銴˜"U1]HK㧟fD)k֜0`!˗c.w|,,LN/Zj">L('HG6&}!-tdStp-sq D!R@dt"Bmn^  ]܍pJ^&6LZ8~ ,kܸ nM>}o[7CZBDZÇyk֜p~DD] /gnnBlZp3gݰ^6h L ڵv:rdڵ#ڴKͅl n׊lfdD)YYj5Ey㍵kzx2r՚l)S¿ʕǾŃ"# ajs3V;_LKO_w,]##nͪ*D"R+(/Podպ`hMvqq^H]lWtPukByIy׳mN")kCT(TiiH婩,x·CiΑBLܹE_}a3?ƍvd(0p /++ft6$K u:;[W @GTVVK̇֬9y]&{z1]Q((2]NptٻӦھ̙mŊ!=z1]~(j.њ5u>G:weˎB16::kaigiikxeVz3Hn]X﷒L&ON~J1oL,pB…Kj)&fe>}@klo׬9ooV[. %ɪ͍j5uXڵrS26n?[3] "Qʧs!~8͆tJ޶m""bbbd$DQ…?ff33]&"o_yye1aFFHUVSCAMdm[pv旔TTU)LLxL"n=ٰo%$DwtEHP$&߼&gJjJ  F  BBe R*ՏϚՇBU>۬̌~騨#">OO;P2+ٳ/]]q@UTTz*Zu<55̘Kڶa"9:e2T -wӧ[ߣǺ1cB,lg?<99s};OMړr~|sԩ;}w? jMVikff=|'dfS?MMXSs+05d**GG>!$/Lg׾sm;{ԝnݼttE"#bYbq\0w `Q%e W ?ίVc@s0f6/OO;&^'kÄ o.Y2„I*%2DYSP  `**tuÇyk֜p~DD]u6'm !ņ(lСAv:|-c޼~̄{ hkk~.w ~裷qSg՝ndĥM˕yyE6E'O gjF657\\\v h!99:xd˖3w;wv?|xf ^H bf'&Vx//0Wf^|Ȩz,+׬9{hĈ61!=`}eڴ^LN~{Z뗱q͚m5ͽ{e29!ؘǥ5#81MdgȈ&qqɪ*##N׮Vi_;t膏wM d^R}2<9)Ǽy3=3a{{;  ]_wOWFQf:tpf@s`ca@(+ܲ%ak;^nhh[+h^7)X" ЪXq46usq㣖RYYgh۶sVVfK 92͡kOL 5- '%%|sYƅ 3f,ڸq;tahPYYed&qqsLLxL…%7h-d7SS%ՄlE55Ǵ6؏ ;֭g*R^Uy/zp=S= e;v\޹@`9wn?m)tzTZM BP*xfMYDRRo􉳳ТaþliÆQLz re$ӅVtݳ.>݉\nXf utsA,Ն"^[t=:v,iSrjS{yxfe3]6_2rҤ۶]?\0thuiAyyUS|} :8>/hT9sd#Gfi.q+M%4#[_3EnJDUt`[6-h=aI!U%ggMFA-[̘/X14,̛/!ԩ{ޣfL&_짟s?~g긏>Ը9NNzmkAn /"%*blut' ,22pcu22ر멨^۾<ˉ_WH$e1KK+y<}HWTTP+`D"1tӣG y]^ӛ*'""Wv;w^sǏdɠ#ah(CIIOL.ӯ_m-ibR뮇֬9y]&+\*`ǎog_?bW~}vǎ?{{0o͚fQlC*z}/.ݽ5s>jz=5K-ڻ߾t-M̆T(T99tX>ئ#YY7&}wQP׺ZMѣIO.Z4]#G7oٳ{̛ׯv:E&''?7ogfq8loouBkPQ He, uYFFvZtPh&g5*d_.|^1]Ð2ztHRғZ\΀C?w„*+}t<.nfz^^YLL¡C7:urӽ-ly:8a):wv?rdHvm[ \|H|palϞ)X,vKmȲeG儐ci=>dhR}W<\ҥ~3ӵhA\g8tWW+ss4533sHȦ&Iۘ\M__;̸KO-.5 7nM(/6iR9ofZ\)tzTZM BۨQB[HS# K,]] <͛GO{_Ǎ.<vt]tK۞=,8 -lРˏժU*vƍZIqu޳Gm9++#GX؏PuB?G_k{~ >ƍa̘t/;{i=bsX/)"(7҇Ν̥KϜ{H2}za]t-iTZwÂql IDATʼ""QRiMww[k.ˀFqq۷K?po ɳg(׭?p`!DN~OKj}tJFF,\iaa= 4 ALmwf 8?L]cizɁc"#We.&it @XX5.B)O-)VmIIu`X}WX(۰!^.W͟1uj/ccvvms 5thРAukB\ܭIGwoWbb,,LMtHʖ/?Vs EQn=ٸqݙ ^]~~yT~~N[1EQut-al\d:_Q!'xgg+͑&ffLܹS(A[uԩ{((JT]x?))r_<2$СZQCQ*ee϶l5}wf-ZtzY7o5HBVNT*Q)R(t5*X(t BURRA7\??G 2|Q<'**w^s{\?q@ܸ WxJ@3d_ԋ DBE4kǙW/.ќk(b1hFz]xo.ycJ/ź)Kжj5u֓>}ܾy}#EQj5uܹk Ʀ W{1]K v\3 8tt: kJ$etd33._gݒlj%}[e|rb3g2'65YZL_R]|Maal𯊊*bT{;w:v,飏*+Ռ5ڹL&s',Lnlѵsg]3N"B09&8n7ehpto4zkOMwoK(-[~믧t("Ҏ]^+ٮc_@ 2\ԋPºu# mewcD3n/WRq=uj]UE۵jRRz͖,p8Jj С^l6F3E'O^3xZK`Jݺfh"MVi"EEee4MMMYgЬeҤ*&;{4eV#Fl)U*U =&k֜/[^_eդ%1\.{Ӧ_}}BBנ w##~v):钂܇ 4SD\2o>ԩ=X[߽hqlVU)jY$WP^^EaY544ձKP;}7r ر>yRX_&ݘ",K.Wvٲ͛bcEl6FQdРN?0_˓85 :޽jCm LE5kNiȐex z… ]7nkVY6!JUb8ZKh3gΔ3]n$thwqsͭsJrY*(L-L̜̬?}znkgjj:dK:=v,I.W6=p޽k*зY߾rU~*D,/ٰ,>-8p…BN TEQdVquAAm)LLU_sN3x㏇BbBW8BZ ߚow7<g1vlW]͵ѣ q-((hJil6Q(ԄP,1kٙqd2qdjBT*[~!MgeeP7?_oe'|Ӆhz)<̙w7mwÆu^h-uFvZx1Uc),1EX/+*SS RFFƠABYX?rqO75U(H,T*˲;w[&cܹ[0jebbZ~MԩSoܸ cZs8\ kŔ);X4mlc3Zȓ, -XՒk'}'o655~]hurss?~\kbaaqCdii-X&X>ps#ÆPwPRRSܮ@`ѱm82YnJJn{\NpX,KR{QD"ݕS+<<g[|ӥql}{!ɓOMK+(ؘ++ !99%L C""NzLJvr}>077fFQԽ{oGCs($xRMQq.ݺywag׆__A饥t^33(+8; 'mޙ*j*-֭0D3 lj 1l~~k'7.0XvvFu#U&%=IJzrzݻYժ>?`))y~~LϩRLy*d%X޾h&llCBv޹Au Pt!--?_xVJ@+h055:q׶op3g2 yf}v۷!DPUTș@taooq߈fjɻ=qqfufLR..pp@4tNbbZNFL,LZfnn<{v_9vlhL7X{Zceet:fV{LORϝ{֭'Nk׮5ƦuJJzBQӅ+,,W :(1Ip'U4D3 ~}edd5w_WL:!33sҤI&6q6lY5xzzN0#+**/^haaѭ[u)\Mb|}}k4hJMMYsNS*нEEEEi,xnLwG?`ԨQ5Z[N*22?3<)d۷\O?ĉFFFWW,޵ރ|W =]jj޼';5(ȝrURRt!H/[iBHEEŒ%K۴i~zz߈MfE"B>Ӆ|͛7}yyyZ @p#Ft=rZݺ?<˖-srrZd^zNNNAAA;w~T*ZZ]TTEϰ{S^Yz6lL YW<|?LǟZ岃_[^^/^4hf?4}kM+)D"4155b$&::+,D3[ [6﯄A@ŜG՚mݗbf̘qi|Gssŋ8psԨQG myё#G7oޔ)S2yĉv988̛7O.7*۷ٴi!{͹zߢZΞ=cmm~zmiB}vwp ,6mZ-i;qBK_o1I^hq022ݽ{9"r;wlffDjˑ:kCz/ZjSs߆MүNuoދhz[7o"[]jW_}վ}{ K.у\`X"RcYw;@]V_e l6{ѢEJemmMonsjUBϙEw/J׻_d?݋_/y~OQ~mf땟/h栃`4s0p>EE-[~[r˖_ʞ1][~}۶m_ &L81//O ܸqq#Fdff.],[ѣGA]xqժUb ]hQCϒd}]nn]\L&ۼysO߽{)qpp9}3a}}X,رU("7N*ѣGK;vB kΖ~GjD+++S&ޟ~M }۷)*--533՜'Fir劭B(j~LSRR}kL9rdIIΝ; !EEEW[T!$22R*;v~- _?oMJIJJzðbjjg]zjj+~f5xp̼y].]ze˖B֬YSs&;wKÇS%J&OM@k] jΰ ]觼xM;4~6JLk'\];t}'BZ?رVՕRonϺzw[_eYz!C(:q℥e.](JJJ211ԬΝ;Zen666x^kU^o;vJJJz-5Y+R*U-ۻ7 7`5kN1]AA4-M{Ũ\IIP(Ӽnn.}ܹsAAAObv&''kn}Vqq1۲eKIIZ.//WT =}ĈEjٻw/!ܻwCQ!?(mĹfTvvvΞ={E8p ""su]x] i-^1Yw}AİmUcYw;@ =[۟6mTWW/\pŊ<d̓ԬMPCk JMSvvvx^k]_o;vjh ;g{''?efh4olḷ^aTT؎|9C4 ++iӦ3gL|䉓bXdOȠG"owmY֗.]?\]]{%lvOd ښ{ IDAT)F(B$J'dggӷ-,,!d5oךm=zDёnGQӝ;wvsԨQ?EQ29! ><..Ǐܥy^J3_՝w44@_`ܜ9s:w>_xQnu<||pLUuҥFbbիW.]\z5..nTIľ}oBgw^MhJZou4[,! Aܺf7PPj۷u%{_Wyt.񇋋KPPtdE[nIKzJ޽{+Vn>ÇN8qСUn~YwwwVZݿ_ѣGEq\ T##O~鐐|||.]*mBxղXXXxÇ2EQ^^^Ǐ?t萣dv9 EHT˪tEV-"ʏT@Q?Lfxxx||%k _nRkRJ;FDߣศ"##c̙k֬ݻŋNSs>5jܹ[nYGAu>~AkzIPi #?5MӋ ۸{HeV֣͛S||U[*E5?%<}4hPtttJJJ׮]{U)slɓ'mvwϲeˤooZsUK}tVGO%pؤSǵkz`PEQƼyY2glm9sWHh$b f̘ .|VV ѣBLYYY]]ͣ &sFGGg.Z(eeѣGϜ9˗>\pՑ[l>+W1˗gϖܴh"@|gϞ?~{FFFC\X#GN:ޞIvrrDK.;v牉?'O) +((yۏT@!>֮]n:? _nVCJcEE޽7q\qAԩSmll&NHQTPP˝1cFJKKTTT>|xb %7}EUP^:i^(*f̘I&}-QtW4[b1S4HE֭T'6ԳϞ={nt$hƌȔ>Drmʕ5ٲeKNh>~Ann.MB_GGGOOoʔ)Œ$[̙3PKK;//Oh>x`֭UTTܼlРAT"h͚5A}h;vY>|@4%3}XǏ-b>>>YYY :t蠮nmm|W˗/S4-DI4kL(ʶ 355mѢŌ3$RX>{}S$JaKXڼ)JJJ >'X,vuu>in7c?jeqYs7֭ۼyjn㢮UUէOJ*!!d9r萑~z]]]cc[z{{s8rGG͛WSc*_ڿ^UJyd9࠮#B}=7]']ߝRSSknS'?ܸ ~x4t-_~t FAW' 4qQQ[\x"ٹ?ubB:=|2?˪U)4>DAGH$}N 8Iҥ#Hi333w#Wl*=z4SWߝܹcnn^+{ji˖ aaW`r!4|y~x7 96\U())yΝ;'OL: ;CC׬9#8v9׮]PIm㟑NPTTT.P`Bs#ׯ?srD]&4z(̈́0 WWӧgEEPUU7.LR\} +]fNJ.TF@4?4ys, 9ߗ]>}6̃*=-ysq Xw= 铛b ٕg۶m"UReJMVb^y2tḧJdj÷n{ѣ %%͛IڲrNw )+KbL#JJ{ ޡ4>C{Nxqi{z\vÇ2ҹ>_O 'Ih<#F5ڈtѼMxf@P %>YV-uIw(֮̈́>ׯjre+Nee I-hѰ3gp1,oT^.anO:ٳM|3)qr8(9rZc)J3 -[6"!}nul̽ҹjO^^vf.$@ݹ6|f}}g鐎xڼxm eexZS׎4fWk䞘hr>}VvN\|ʬYi&@Q=W54T/_~B:4B5͛E"CkA:Ǜ6,0ť= ΔB>?_ ( |~4L:| MM?c߾[>>(}n͟~j/%% TTZ=Mم\.J3A^?2$!4 puvuNHx|iZw;*iD"wم|0'HR__S__P[S_@ĔO(%RRmܾ(Q$!.I9-Yݳ~ -V^z@VG4M+W_?Ќ. j,Y-Ç˗/]]~ ڵgNNmHh U ㌐eNMǁV# (=/|~@ ]~6O$K*xZٳ ǖ,jK]3`B SS3gh|)>>y㧀<;sއkj );9Y.X0tfBp4ܧL{`~ҤNN_<+KU%߼}LLUUI[[25ճ1-40b h uB‹kύbggjM:ZSԲΎ[wv܁@e&&_NEQwMCW3LLHiT{LCY3eto[V45&M=aŋ®ҡ_///;UU j5_ffH(sZ\.TL 䝽C%$4n\̙.Ctb00vc3[mk7Iǁ01{ @<0޽<uo_,!& R@~OLC:@AU4& #,!L .߿ @>  cǵ-[.~Mӝ۶呎uLW񰗒eiIK--uidTehh"sܓ'[^=OwJJ:@~uxvpܸG;t0"abWRR]hedOqCt"RWWҥQ u%+fxom++AJ3.+3 tvqi߾(ܢ/ */--ys@`f ݲ}Ǝ޼zd2l7.{[tLss}҉(DׯsPFxZiժ8ڵg+Y@c%ńt oФ0$.< `D'n͚((x !_ e߼ɫK*xZ&&zKKCCm\Xo{ojjMg'4RO`30֔<is7l1+,MHyyէm9v*O|@ZZC9:!ݗ>ݙthrsml~ 8#,P-wNN  !A.0 7nn=zzec+V3_O=/߾S|y<-c-Yp-[hh ƧeKeF̜}χ;N܇nF:Zcּjd-GLrH'jLvzz M׹ӧG>|fɒ&&05kۖh~db1{§4-5ѻwEގիͤI19+))N8#[|_^^!i&[|e/ 55@S[~-4*M~~OﯭN:Tc]8ztHiȑiڤ4u~HgݺѤ4 'Oޛ;^H>8Mo:y͛ I}ݖthMۓ-<|x: P P0j&ȣ-Ow/^|vuܸ0ssc,._?oJ*ikK&oۖ׻%ej 0 r:߮]׃/ED\1c=`X7Y͘ңGk eec\v``dJ ܁L&j8͛PTY'-XpdleG:j߾VO?@i&|,!{ ٿ\vƤLPlj `OzyMWC۷y"Qŗ66<[ᰍt7W%Ф0!C: )!Ep%?]\c:˯`0.ھaPЁlꧩF:TblC:Ec3+W_hN dtབ:,C}jDiBi&466ƛ7,\ vŇ_ի6 jPRR.d\:xzz2##BҬKm6b@ۛۛ'&㏋ﰲ1JG7݉Ç>n0z鹤S(6Hq}\.СizYNUss(…#GڒJ ߎt h22? e7αE_J32J%TTttԹ\-.ݶ-woK265vߙ!![wnҤ޾jjʤ)6[[ggts[~A65 &&w撚Nܹ> t1EEѱP \ IDAT_L rl)IdI:yFd89Y:9Y vzu˖Ct7tPJKE|~Aŗ|~PX"iՐ\ۛI/\6Ƥ*XkgyϜ9WW8e?'_@;:z…&O0iѢoYC5r&&zwIPḪ]={תU ҉ ߗG(,yAi&`I&A4 Ç]nD%4uمwLJ^iϯ״itt4HRl'ӑ[xZ4fƍ {|5*jO$v9/xzw"7sE[ ҉tP<ϟ z^yv Ig&J (uqX{GYV;9Y.X0tPƯY3o=( kLo_+AAi&4!66ƿnhѰ={nba=~̘a/ii9BŗFF:JJ(Zjӧ;퐐ݻ [sHGSH93{ѢwmtMM==sPIKO>ruޱcf0WPCt^4/ Y+,`BBv츚thrs;w^5_ffH(sZ\.TL8=4BNNNN // G7 YF߿/vɒẺ(&&z/>&B4}5k<}ߵlC:ԥAl?ׁtP$ҒG:4QACBH fk^))Çoz^:wTVfP[bieZZ/ ?H)+tu5+pi778c۶ٳ_ncTUEbmkn6nýz4L=Lh.ڵ+c~ I'>**YS@uf͔]\094u Ig_ees9СƏwD'ȉ2Q^^^J-e,q-4q]jv52Vɓ;aj}YHȥ-[.i]ޜt"vZ!-o;'&ϝ,,bccL:ԣg4)<1q6,0ڴnjA:4ECn47l4t<%-Ih<w( y|~ѣI7##o{zzzjk\yyEnnQuŗمb??-b()޲e#fp ~8lj{oU܇ `#9O? F՗16֥(*==ɖf&'mر=ZNٹ=,:^@@_Y@1r8lA)z&/99}lwAèA,^9tXѱ fQP B>@ .yWQ!4SUULLdG,j++4vV^^ݧOiHbb/[v2;pӧ;kjN`+ܺuСIgihop^R9oޠ=-H'3gߞ=;tP /_fs:t0"͛/^IN^ f9 L…ߜ8qѣC G6n\-uH9UC۷y"/96ecc%eK U{@QFP{@@o_ڽ;~ذ.?fnO:b<[V>giMGE20z:tuz_OdީYN mJI[ZHg )¨@DTTСP @aL?|8yyŽzupw?6r9ŗfŗ[Pcb)/J޸16-흳s9s;vlI:((x®p83\t(laYʋtzG 7os',0ť=&ibWAA>-:n``WkX,|YV>fۛ f9fԁ2ѕ+OI:s恆СƍemI"gۼRI3UU%mmJq8l-6ٽs"8**98bJJu`KnC) =df4`ȐL& >a֬YY}Rb:&u=rqi?s++X$G7n,(*m~%$$%@re̱cwniJ3&**J֮|~ѣI{ފicciiN: J ŗ%f**J::_ۛbr8l _Mãl0tFӧ;g>Do3\֭;;mڞMb5kkk\r`BzzNzznj`xQHGee軒hڶ@Q5|xۯܿ];3gڳfRҋ۷rHG#\f M,MWY Pbƍg$g2xyWZ*/Ty% ҖZZꦦz#_J8"8҅ xFAjS Ogj"02t(yz餤WiiHLQTVfDyft!k}#.(..(X,xqnvs ,,,ٵk д\{ի?YXpHg/Q3J3PرÇM<U>thZOuމ3I/L:L*J>zΫW,-y^^^^:XPA{P_fgş.42-ۯwY3e tt4HR ۶'LplݺI>t]eg6lvb:>YX jq̘(bXĎWbZ,|;أGk@o:MHaaI΋u,P PP pb:)ɓ#~vNoXA{>_(@(M^EXLUUp<74Ƽo '("D= K^y,lҤރ4ybo/^dJ7ݼH/VTT}lG6&vqi`0Hyt[]ٿ?O O  ;' Є{sc/ÙJ3J3(-]ȑgRSS0c_snL58P|mHTE%-u44TRqqm.6mHR c+qVy,1M~佀]Y,GM م+V{W33ڼ|m5n6(bwW||kDD7 YIIvMru&a6l:tr(sJ4EJ֮Op!ݼWqn;pfQ ҄9ˌ|iol񥍍l񥁁6x!4e&7WTTrpwqilggF:c2NNNNϞe_۸1vX//۱c{kgPV&|\6޼!֟!C:YXp_ȖN!ѹ H?ٞUмn-/8w=7_ֲ?RPʬ;&̗_X DzEq8lA y2;)լYn RR'O;t(\cOOûh\ڠLԾKzk=@RWTT*ijN8.Y0584}-[.&%3 tlε'8p;"W:t0=~Ĉnm޽+yMS OM8SOӧ},ՙg5}B$j\Y%)+ȑ|~A^m|}QRjHMoL,u&ذˎ`0C /ߒ"UbJLL\bKèurD,^9txrIIyϞCvVSS>}UI ޑtdhJKE|~Aŗ|~PX"iըes8qVB‹K.oE2ud.WkԾcPWW!JaΟxHҥK7o6th'OO _LZRoܟ<gvܹ RaDs}|坔L>P02R~NĉG׭[yNM_`Bsh)fJ^^^NNn?t6-V~\O k֬HkmۮD/c..krss )KGlۖקO[.is8@իw;v\[ͱ8:h_ŋ111 ,-˗Ţ)b2L&`В+))RRK* 54k/fm#[ 044ybɲ?]@L&d+TR.\`nno߾ݹsm 66ْē'OܹL LTPCi&4}mժ r bmmkmmտjʕ~' ]^n>}Zsl.Wcki)#֪UeF̜{w|Xصm.mFF \ r:D:4]uxoV֭[!bYjUhh(ee iƨ^̾riX? _իgD,&!YJL&{ws//kۿmqלϚֹ h B\fB۹󺡡+qmt֡'66ٿ{GMM5X,&U쪬ihNͅ!!~pР Æm}Dl2 }}MA+**=|8+b Q3 Ű114XL?}yV[ssY,&IE"1J3ꖲ2kC IDATvNHx|iܸ N;bD7%%\$&'+KKPJ(/{{w'@{9@a2kgDQ˗ /oLm^qq CB.͞}`ڳ'͛p!f3FtDuOO[mmuY~;h wURR:|t}tt_EQhӦM`0?.i YUTT4g33f͚if%%5,V G߸;1qݻK/Nmw..֫Vb)>tFq-CFVe[ϝ;SNvvvH$T}MZRޭMq̟쳕2d˗/kwJ8>/rHFϟ ƏE:Ci&@5|*ozE-$ͫn.]3gϧ(`ڴi/ر٫W߿/*//ի51cFrrѣGw=wJdUPpZXqs;v{eSJNN#ǩƍo޼  ]vtLQUXXhkkz;wO{uuu4dWeHԦ R7'l%qX[]d+ip4|F̈́sUG6 P h?ͭʛbqNNdEVa hB5|QE'NӧOV\ٵkW}}޽{o޼ĉRɪ.!@u45&M}?}:wȐÆm}Ti:\58x<##~?~|Æ .]EwwwKKKW^K|Jr|_$jd)>[t944ƍBʴuV`'h,!LG^{D:@i&@9qℑQ^^EQﷴ,..(|ܹ\.̝;\2ŋMLL._xb}}}???Ϧ?ފ'Oبٳ(HT޽h֬ /=zP%Ar EDDDܹsʕҖ^^^^8r䈧gO޺u˯wiiiU=+*j;W]-))'ǩb͚5z}A~~[hѲe9s攔P`0vٮ];}}UVٳLKK_~t>322rѢE,K@CCcܹ~AWUuOruOBu|>ߪ{*uy}n\oleIB2USt颮n`` )p}JTz} Z;S^~]+q4|RVF̈́}ecc]77kA v֭O67nroߖ\zȑ#gΜ***RUUݶm[ff;֬YS;wܳgMӒǒ.rtsS|rٕE=yݽ{|uuwQ3IɂsYիWH%Oѽ{) (*'''44ٳٱ(2dP([\(>֖iP2a„7oH @웓FS;Sr<MtLdd4ԩ{@[Ժ;w^#ŀ/?I:@LZeif^^^˖-mlldi233%˱;wtcUU56խf.X3]5[!YYف2z燄T>*/[Hs4l{WDQM4J3A|,::tX;wݭۚ2AI4M6OHHX`pbZZbXÇOMMewڕtcccfJn&LPRjjjOdddrj\BMMJ1xiӎ4UTYǏ;v찳tqqͭ}/X#G2YKf W^ո*U}"E%&&2jFNNfʔ||P5s;y<hUN:0mmmii锔fbrrnh>rѣΘ1?dz1JJJmVy uJNn>d7R%$:f[]iiԩSccc>\l5i j9{8Q &eg4_tq7''AJ3@ ={%K.^Û7o2'Nz8{{CU^qڵ/NOOm)5bĈ+W***ָx``qiӆg߿򦋋k|!itΜ9Eikk/Yғ&MrqqҪJMv픔ǏXTYhsss6n\Y.(({٥K&%%EGGY1$k~~ sURٵnAWK48wݰaEQӦMsuuMMM_n݌3}W`&}!$$d„ Ԇ zݷo^vRWWrǾTYNn>dxMʕEwu sc f[]YYYyy\ii'EQEEES^ma}6qp%-|4&3@UUUZ0>_pxiZZIgedP@Ш~f-Hzzzddd8pw4M_vMGG'//Bggg555uu痔0k,۷+Vo^UU!??^}) vXK`^^^mڴ144dkCtEE2M0̃*>}Z^^͛7)QQQRRR4MSw/`:#^g۸qBNV\YZZZ[*Jwa={jjj8g:544,YRZZZĺqyݺFF+tY矁5lb``P|AKKZ SǑ)Ɖ<}4 t L7o>]M:4!6ݻN QXt-222>}diiI:Tu-==޽{3r劗׳g^*))ظ`S555 "ܹ'Or?.5t<~:7ņnzĉX94D$6l֭[2OrrQLLO k4QTb߻wy~~ ;];UoogA YYy99 Xp @q8د_FFF_~ܹCSQQXhht'gTG]Q' Vم*SrccQ'񊋿))ɓN QdH)_~?~|NNٳ]\\]JEEl5NIZZjÇ{vi曎m*N"5%\$!FHBvSڳA]I& |L:DALo222^^^ +V\KKѣ -3=<53z͛Lҹ@T[ hIUÓ"#.N:4?BhL(}t/nm i(>_[J:H{ښXZMӧ/E314A9Y締MYNn---' Zϟ|fB㊉I OZ| >KKK%@4;HIl3g憆2_sk?~! ZBP k{w6$\FF4 ?PkӦ QQ,v^..gbbRI)Bi&4OCC߸"י]#@Ȑ 6|~NN Zx<@ECtcǂuޜ9 edٸ UTX,97>|҈+-%qRxthѲ [n(G:Hݻ֘thGI:Ai&@˗'$$"G^^t OVVz>c OYϚe;}U65.ҡCS6s&% '#+^^+*/eeTU<&E$tWںuUV$bV>i--"tYo%#ZB̄F?۷=ړ iX4M Q><ɽ|9Lh>{mnbKgaȤI_fYZˋ,[vK/Y2LVVt"4L} ۷qvf;;۶j%yFΛ77 \韒￈t'W!<,~e HGȑtu||dҤ:ݷo: Fn7 ^,, ,, s}}#N ;pȑ=H/HH&21ikXXxyM3(%g+9z0yyV[[t23޽ŋOP BdfhiGg/_~ܻUz-EAԙ3mH@ |x7n<;z4իz)sD.71$Maafk++CAzh ? /LJ{DyTTZUwmw=<,дsg}oF: 7O0x};?th&׮.[vŋM** Hf;X55S-f϶iDc/iVܼEg6ۤW,+.hfg뫣}&ԍ)<~ ]mhE: rFy$Y}{ӭHg@( w^!O1w9<_V߻d.71441##WAA_N-, QkX/τ9tX…C((ȑ o~hpJv@ zOLܪ,O: ݻ=OXZ-֤@3x1r͚+'fP *>SUU6r,]]-Mgdx^Zս.mbggbii ''<% gPE…ݻ\]9;ۊKQ&i{n0thB/F_-)i 23 lmZlCIg3v>]6G$@24@dgG:U0ths弤,66=44MbzeM,,:[YMEgEQotݻYl.D:яؽɓg6P@{?&<| \]GEHH0|΀E P **wr{Н>ROO3R##+*l SUUt^ -Vrr ׂkիGwN:я鋅Ŧ#GƌM: 45k^μzu1 ^x?j#GƎC: 477Oǃb P x<˗._s'.3(VCt5q۶bO}fKk#A<رD;.58MϻMeΜS2G:j„< Wl޲eVH,t#!| !T\\baaз~~~ի7n<-nJvذX,ǚ6qs4zϔlwĭ]{sii)҉˙;tP#DVVy')@\ݸ,::֭eb٢{_[[Ai IDATeʔH2t /==MrCBjj2dWo ^y{rfNn(G0y -3`N~֒m$,$v!)+m0hY{gkSM @4 a9fXm;YXtfMzPwgφ_TFFjܸ 46n-Vzzۥϔ}L֭ՕojkkL:QشF`'OKL+Pisg]Mԏt?{?xQXؚvTIglم22bЄP | RĠW?~QR73ӷ3aMz %},,vrԉ!>ϝk75ϔ$-_~1::u˖hJtmg,/gu//5!LFFAcCIg擒3h={P P дrr"#Č\~:YXt02΋|޽xnxxٶ&WQi(Fh)n|ᯭtSS=qܸqutTI:4W> =8xI;Y@̜靜!''C: 4'=|^M /7866i{iiVlA'+WbX,ĉft־)6g+=z2yQq96v2,ИBB88}/Y@s}ƍg 

    h6++}ͧ[ cTYZf򘘴 :m4TUU$-**Iݻ/TUMtrז`I{#GܵkI嘘 A18…Ȉu88$d ,|<<.߻~  Eܤx/?pOrLXMMt00. ;r$ƘñSii)$pl7KGALєYp3kqppx4\th4YYZZM!6MD]fi ;.٠k&@|AB.71**5""L[[€6<AACϘa`նTJYQQ)VUU8vlVn:4l؎>}:9th4矦(Ysizʔ%%en-EEwh;7tJOrĐ7 wN:ݏHIɹxoDiiȑ=ε߿3P%==RTT g_߈k AGVm۝g,O: 4_߻ަMHp5kܾTth> {{*,-J33,m~~I۶J,,:&zu`X6kbO{򣩩c=i\3E'ضA Yz$ ޟ׾}=lo@㰲p/J: 6k5cHgsdgMHghYP @eeDErAA>~$ofoggfA+FGkyk%!>osw58"d>|qÕth[N:? h1yː,_>bᤳ8(*'(22M MUPׯEg ++UHStrԙ3?~1pG2"K}&)>}p=~~nI-\niGW#~VAn^]HgQjkKL: 4#GQEii|hn($7866i{iiVl\n $oC>|2cլYʤs=lfodr8ǕϟF:ȡi/{6#~VbbA=Mtimp׭K: 4 SR_Ѷ8-J3@•Ʀ&rY,VlEg++֭[(r>?yBdq7{^5mB:xCfI̙=z񙣢@:ڳ羷wg=: K:HBꮠ.3f{`EV@sizٲw꒞=uIhP <&&-**%**522f0 2UUIeeOI56vt0}\b 3Zxx̙'vEu鋅Ŧ#GƌM: 7Kii;X,, .^tw|b Yxyq8'R>|V1~kזmD:X*(n՛7-/JWTeem7nO:jӦGbddiy2xwA$\|3g֝thr=^:`ѢW&J3D.71>=C6leebw1uv֭=P3h߹S' YO\ܻsTT)SV[L&A̙')_xXCv;sf^3rӭPj/h޺V_|8PJ3ĤEEDEFF&WTl6d.** Bc*,,|9)nZgZ%Kԡ}fڲ3s F:9s&|i_)iiɓ@$4DA unH RJKnj'++}+KrowǎiS'jLhZ<\nbhh')s .**Hzz.&),,lmeefٙs0M4܉SWW2i^[ҹDg 4x"%%㈷S t߉llJ q?[yJI 4CBVX,O'N<#.N: 4\]/i>=G]]t J3+.i#{13,m~~I۶J,,:&zu@&3ʕS² &FH%>qX7_w53'E\ͯDffn-# ޽7T)ܷoIrrFիW9RR-xy&&fd*(¢!'\Ȣo8k[[ct]Ŷ#GRUU_(-֪?{N/`tl*e?(OQƍAV˵qs"nZڭ[{YIDD$/\xVQQĉYݻ](fXɓ=}#''cnocclkkܷ>1ѕ݋r;w֜>m[%ҹDK lyh֭< 4Ig4߾ULpˏ̇mbbm[M@=>}bndd.fO:oG\]H9K^{aïgILfBRV[Ni`EnxvDH|##i,8kUUEҹDE i9R^^t1c~Z$Vq~ff33 dbc7t˔=v쾁MqbX@cb? ر3z%~J3ZeV֡ZTԆPwW>c7odl8oᨯ!C"ႃ_;:JOI: B@@3{扤%Gl}B還.ZRpk|}}pIii͑nMQ4E hZ^;|~qec8p`ͼQeEEzTñ8\QQt.$}&M#GisAQQQsT-O"BBBHn'R{>5.+Mr8;֭e͹ihj7o>__UUa߾O@#{ցHzge}-.(,,/)R^R' ))@@o73hxVz}snD_֭8kǚiaõMnٶ[ӑ￐iRbg޾}1OAAAQQ֭[ PXF _I:ŏw<٥::t?i^͛O˔$k^3fXm8} P OIIiʔ)S+,,)-+.*(:qZsfضm[snċz=9>7ڐ/-,ñfM.G2g>4zt6ܼ"d1-ͤ[ܾqviBө>o}}kY&h** ** ZECCyѢ  }lمuNҏ`dB^Iji9tQqpСCA{:ښ#22yEʤHqRRAz{;GG{.\8޽x;-}}#JKI#i葇{6oUQ'G\ٽ{~: ._޼ֆ Nҟth_|4 "Ν87Knn#]\?x栠W'O:93WO-PpCsRR,6ۄ6.05p'M2WP#03l7KGqq1J\1ED$ӛtBC,\x?F?Ν8/ tu$O:4t222-))bU~PeqV%cƌIMM>hp8?JaXIIIuOji߻rQSMDSLgro 5%T'{OF:urrrɩ~"8N[??˗?2SC^ch;63:sɒaaaoao7tf´|CMMi=7ߪUdkk#)J'Z-s2zOaaٗ/_m۶O^Ç{T燆2fWWWfm .իW6$XTf>}3666mZ: 0ܨ~~~5>dɒ+Wddd MNc9<ڵk{a?555=zdooobb2qĨ4faÆUnwƍ n: 0 IDAT ժU:::g~|vo߾=11JKŸ 0ܨ...-̬׷lbffigg7nTIt%{zcǎ;vtrrv$EQ7o455mժs(x5.g%%%ʷM>(]vT-U.^eJKK3ۭ<֭[}UTTa!+oc|2k, :X۷owHXX:uTn455nzܹΝ;_wޗV}Vw}###55-[إK---WWײ')hĴ&>3==۷]uky;v011iݺ͓'OSU}'#߾} 3CIIח)S._,lz0ydrrrO>uԖ-[|||N>-++[n|ǨrBNVVVNNNUUވOBcTsp|]Ο?zKÇ ;kLc㔪`??`1{*,,J6ncffO-''C*۶ݱ^ztHȪ1cz͋hT[l100w6''3gfffjkk?y򄙸m۶I&eddřZ۷E5*((hƍ=z􈋋{Ⅵ+j[X^^ѣ>}:y򤌌Lqq;j\ԩSΝi3Qމi(EEEIII'Nׯ_ fϞ{W71cСCzq;(BoooNZXXx1>Dzm=/RKqVy)3fLaa+W-21"11122Hzss+W;o?ݱ[.>s = t^,+,,mIIIE=tvޭuՏ?޾}}oO~r2ݦM*'<<\[[Yڵ{M_|QTTsuZ(//+$X﹏RyEEE>|XppuĨroJ"H|a5d}611QAALJq=]]]yyÇر#--z5.]ر@ i:00}TU݈~$xo*}Ԋk󫞙X1P );^::Fu㒒2ҡ\ZIuG:wCCL<阘>}Z̙3EO7Ӿ{k"""444.Zh4M>:q㤥9NvGtBSVV~eo_oϔf69NK31t1ۧQe)SZZՓ8K/M%%%JJJQQQ4MoqUc=&F#$#34DIIى!z36^uE-nhdif ,NLKKaX,kᩩ]RnllL֭ۄ j[JMMС\TWTTUGWF^^^lddTy~99D{{{ssӧO׽,>ohhwuE17EQTlLߩ*O s׮]k "45[/Z44,l}}kyzx\~#hMH___MzBTf^^I۶JN<{O>0Tu|v.z-6mڴkUfxSLiϟ  'j<WXRR2{lS |#*':"W/ 71nŋwܹRRRr%,--ׯ_fI~x^P8nܸ7o:;;׶rfzjzƌcÆu?tQVV?޽--7m~q@LڵcTTZ$4x &!q7???22޾}4f7o\R?//oΜ9cǎ˫qwW(CC^EVZZ:uTwwÇ=tJJ d]]]q:tؑi)xꕌ^CV߇gcX'2 (JLLd~m"Hb&ǎ͌\dXXavt&b8G<ԔF޳y >PTYYLSO::ua:?PɈ#G=3Ood۶m`kk[TTW^Ǐ]]]wagg⒛[wj<)**Κ5+!!AX.7NuG9^nb=ܤ|||Ï?.|QӧOpّ#G2c7n077M}P5Uڈ?q}|UiӍ|͛'^:===..СCrtt\vm|||||ŋk[b1ʕ+岲5.8n8f=mڴ(ٳﯼ_H\NNӓ6!++;m4WWu͘1b̚5kɒ%nJMM}qrrPKqR]PPPF.]fSD4 o)M4E}&/i>ay333޽aG?rrr233?|2a„?yjÆ C{۷o]fii[I\\\,,,ivqq1553gEQnnnK,;wꠢRTT$\oD'w!:qyn0:ws]v1TVVvrr6m۷SRR?~b qZ{1bĈ|OO-9>(1.DΝ3mŮ]IKw|1~5k..}Z^^͛7UEEEIIIе}*+***F5܅otCbЍ}k7%$0ܾw Ç qFSSSN:\Rx78K󕕕S>~+EmD ;YuS ڠŽsq9ݡ^=.+ D3[8q"99t ))ظU'֫_~Æ ۺuk)qq|}#e~̙6=z[B7^W߻wz^?ٳmՐbbb͛:puoJ:<`?'7Ortf Џruk&L0ǭ6 z۷OڰdɰÇ;v_ׯ夣5X?z䡦4z͛oUT9ʗ/_KJʚyͬlׯA](AVVOj%SG]&At***...  45[/Z4t!o}}#<<.opmӭLMHk AA/}Mii%))5$(謬EW.&Ҧ"%%'}GuZlFl1%@,Gbbg5iFI4M:;iY'68^x#Ĕbi XqU|O3URydAll CĀh&7^oLt c\ܹn/~:)},wY>3+K3[o_zaS~^h&8L&GWU{\KaBC}Iڙ/8~xmT /p{.Hq\k~Ri˦M>w/^?{8A7L[W'Ů].וq'ZZ6o>uo~x~F@4`o⋷݅>y[nL??qg Amclo?|я_}QõX'Omt~~yy|? LQb/ܱCG~{ҥIDs333c~{dAf& ǾpAqoA8pRٻs/Nttdf_.]3yf>8\,_r*6m:nƠ 5kR?34ԇnxg.X⋻/^TGGՕO%$=Pz@rP5j2`, ORq cp38Ȧ(G"fcxyƟRa0 ,jqu5Xk[ c=8pvfLə^W޶-?Pff\~el6gFD9Rs?O>>2 SPMM #ܸQ?ǣ pxOFMN~xXOWaN۱FyѢi}-Lge6`R)--}wolKÁ gp׳(b2m'8jF׳1z:;X,~jeH$pbӦSǏrsswvDĄgjn>ֳgƨ>vH-=}Of[n{)͟Ngs8gEQ%!A;7dr+(,K~ c]oDi٢1TL msYPhe2eClR~~O( tyԹsd˖3Je/)\4iF3|Q/::y|fɺMN'uwwI~`>cTi23XXaêQy@ o/}-=]D,PUf?ϔJ[ 3Ê AL8,11͉Ia2}vlҤw޹ǝ~~텓'\\8K&͝77\0z{e2%)+ɔUUx<. b A/))u<. Ԏ9sbssn-Ƌ&e>-?~ ]3ث4O(j Ţ,X>ÌkFyMߍbbݑׄM-(|)B+^6u|b3O?=v1MO)e=~3K`3I5f]jq.Ba0 b ANN8*){z6lXyt3yAdr&1opŊxLM9)+˕UUZm?EQ^^n$KGGN:݇Riˎ￿ṹiV{W?l/+S=K TW%% /"o'>ֺ~ȑՖə3= W6WQі9sb J+ fYB( ӑlD}|݅3"gtzjUT{ä//yM[\LtWh&e("Y̊!#K䢸P݁2@}YO,M[*߃nĂ7O+益JJRiSff\v[tCMM& 5I|$,0HJJ!!ޫWw_fX6׎J}CY{3v.k~嗿rrrWsH ; bJ-mF6H*߄>see E<FLjL:t:=3yp_&J0L&Csrf}`&3|s_?vIs SMMW3shȸ`f͊1phoYC//ׂ'\WǁIbv嗂/*4>x<. b`t֢O>9zl1O== r6ȑ#GjJK-kbb؂ Ң&߻<`L&KCD0IGi'rrbGFaS U.VM"i,(|!Ӝ9i˗'qا}eepeF}=qM[XFtcfC@Q;8؋|~$9 yFVĉ;J 8ʕ3]3+կ>/(xb1pBS*{׬ΝOx{OC+rIRiKeeࠑfFGO;SS#'\;/߼W_P*{o%7ա^L'G4y ϛ'{:Qh&C3mmH^mX9VTTP$H+.7d2eAdǎjuXr匩NKMWH{ܬ-.,.<}jDӲEIIaS$hkus^=0p)O֠# 7wpϞ/8^U.u,ljOX}VSQ\XO8ik~dXwTxфkjIS.Wtfww瘘@NvO{HeӦS''xqq<5;&/)2 (t! XT^U.Wj=`0P$ccYI孭ooz^rewό {qu{z=809z\Sbbk֤9=ׄd4%kKJee 7{vǤ݁0tRzI&NvDRqIӾ)rrWj;J%&//+ssӣ!94n=?Hpt2d2ǎO٨Ţ,XNht$aMY[[2R6< A<MN?^fMs}3~pBw]~,kkFv…~x<=)!Sʹs;w}ahȸbEMM{l>]WRR[Z84ďʊ3'` B4`U2R*mn7PÂdAybbig1ǎ $XlQnnڂ׸v''k׭I, -;EEju_x¬,… h!.kJD]xS0 ?Nmmtu df^4gAz I w:d44hHS*mh2@-@ii>>tO 0ZZvH4AP^^ڝwD 'O֝9 4=33㲲qU8D3ƊN7IVCʚ( \ M ZVDXP CC9sbssӖ/#rwɯ~y_~۶~VD^TT)49922dg s8Ykkdr^3d ;rHMAd>ˊ<LH^90`X=??'x(t⦅dʂ'p`tĔJ[9!!al'G_~\kNNrnnZFF4sMCCc䥥zfdDGedD%%MC4`tԤN.WJfq.,X>w dʂIAAJ#4wܑI\GHBjO+.,*|,AvhtO7LyMRF k < Ij8QcGiaaZ$1//=+K@0XC}3c't&ᇿ8}n۶ǓƉlWPf(kbN{2>\woU\+ݣ94&+%ƦN&!edDϜ={v [~ΑKdA90 b AA,*$\WHMKOBVZ[r޽{G9Rs`Ց#5}}z>o"ŢYbЁt]F5{x^4k11t+˜j $[˕ !w5sTq3_}/8ODS0b8PygɌDK-mCCFrJBaPRRݓ8!{\ܿ|pИxے##q /\P6H$MIN7駗=ģPh0A٢y&9l$f\ω`0Ult@nnn=ʱ_ӯZ'Hfwn|?y[=$Uj؉(D5;U47k++Og03gFggVJ{4V]|| /* NIIa3fD̘OK MMLrz{e2=YUծSO$ Ůk$) $*N K { w=Zst2cթݲYYi<*FwD^S"MF|=)pCcf׮s۶mmg^2n/WliHI^G?ŋnlW۫ϝk(4Ց frrNOO9tZ \0[rK NK-RiKYYmmL&#&&0%?}zDjjd||Txf$雚4$)+ju5׍b&$Rzt۶m>V[H\ǹs99?p[47kKJŕGfKbbhEl\~)9 c=]{x;{ݳՐv:jtO0:5Q*{=qZr6p"B__w__]*m%Yzj Ò#p?D3`#AL$ ɕoBD.{APD/7`0;&+(_d2-]4b,޷e%Dƈxz&fgO%%1tN{L*yM 7ɔ͛OtCs뗆g)y'\4vOnݛo_?Y`$$=Ex\r"՘,׮kĉړ'Ws8ܹ O#+I r]`RKRt 0! lmk&ALh4MbmY6@w yyVxx`xSϛOdf=$78hV[H\S׿u,+{ =pxmIR҅Ο/L&4yq`o\޹j]81?ܹqcnb}ߋz+/??8+,,{챯z*g=2<ueBaP||0^nj:ΞmHΞmhibӦG͜=gN3+RKCHee n#Lqq<L,f=oR>$+;;)r#]ԴiX=>t!Z.5;{Z^^hຨT/كK$=e**ZKJEE5q8y" yM\) ~EQNN`/wH^3"GQŽ!!ޫW_?'O9rT\^LJ_{m:Z2>{+Wx髫I_T" f@bqXRRݓLT6AsŖY,>=bT~p7co^mXlfh-@KL ss`C4ndio!]S]jBa@#WxN&S^ܱCPhtK\p5bKキ.77gʞyfijj$ݣ%Mߑ#5V=Z|EDfΌvrB;HšZ׬U )r HJ[P MM讻fʃܴԋ/z/tD="11d(چMccgcAS[R*{)ruu A<Ҵ7Pf/w,fEE #E Ba3N7t@Eaa١C.΍C.aX5Qs`0 JQz5f:8B{옼D~pu^9kV̤L-LY5eL])鉼H}} $Ǐxܵkgf_dfmܸ~P.g6ZaXݿ (}ڏÿWܽ 51Җ͌$bqxJ σI&0N_S.wRi`&0{|M&KkkWccgCRxFGDEaanMQ%mCj7Ge{\ܻWjZ-]4'_PӳL2l֫Lfb0Ϟm8vL^TTQ[rww3'6;[={:}a4I^S&S64f+Ӽ&!**yMNmjyyk֤)G]~_|񫀀K-O?4##zǎ?=rDfQwl]O /#髫++k1GFĒFnڑ3Y@.F{mF+z 7L)M鰗bth4}EoB,HJK\/&4S{AjYr NPס^s?pXhܬ-)W=*3APvh<ٱ}9L{^d_-\@|@gb=ynӦSrn}FnnZFF ?>sݺY'O 6mzdڴ-[>X$ t; ,k{{&W(&(hH. 05$BEq & {X(h9rQP&S^,(47k;!alrDe&Iah(4U_랙%X8Zf =&&} 5￿e˙8wyLJ[jkUkצ}{}fX3Qw<7ʔ('r]O?@b?³X,''mE bv嗂/*B<1tO 0! ZU}Z&S66jL& Ê ツp߉xނRT*]mjhH 7EM)8D3& HP]j99##0R)EDOE<ȗ }?1Jeoaaٞ=KK/ygFbbx cj`d{ "8/~D3'fmqqeqqVM$ dgOKODҨ/[4֣8$ jQWk&}ɢTڲiөo=o0,M[L|Ţٕ+QZژ?r8jό jd2sr?x~&m0~rlgN[>1hDTIS*ml4@ijjj$fkkihPթTuuzuGGEQ+** 6RS  P9Q t)ږ-BMEq8pp߈p_>?:G'fC((H3mmH^mX70,HxL&f}7((6Y^ڈ/N@yaa١C΋΍CvRjh,YАD3'Aŕ?X1gNEӖ,Ir]-LjU[oadk&)$aM{ X\u5 sQQŦM MQQhj|fX?măXO?=[BbW٢4(7(ܸ=EQ,ٙu룎ӝə~':1rUMMhvww $dG g& ;4zu}CbccbccxaaW ;8ko&hj\^3?YLoώ} >~W*m˕dALa0lfh`ܱ}!Tc0}vۮ]۰Xw޹cݺEGe{\ܻWjX-]4qn9RɈh x`.SXɔV;&WifgO%%aww$%hlƍ32Il{`E" <W VF1{MN>9sbG1Qcf׮s۶mmg^;>G"ax͛ /\PX/y>o1c`Po~/jۺk}3wg̈>dU*mUl6#1qh:;:5$""H3&&$2'V=jhtmm===mm] EVO>& 3<ܗTwC?6o/wMb )-}JK0moB o~DЄs}ԴkLFFF +w|Ȝk֤b=h3XR"/)WT٢ ==](ڽo|y0L=-2$5-K|?0ٙ}OS Jm6j^X1;-5۶-*pvf8xRtvv΍a  ~}o|rWXFVf2 ^|1g|;ن)ulxWxz]*mp(kbx}dik& E=o(ٙ=QimnoikioVt&(&  !ˈ ܹ_UV`0$=`0޺va*Җvr3DDcنO\c0(6-dڴUf{5!f=ŕ̩j]ǪC[9֬Y1:ᛑY,f||'7|3LeS.WXKQ u{ll3'vÆUVۿk׹o9-+G`0W^Yc?`>{] Fa﮷!ڙLW>&aQQQO=vmEJekٽ< 6u3z+oL bJ-mCCF6he(--rb'զTt}K K%mOO0_CBGg; ޤR R٫VJko&ol)r<<E& D3\C7 Ab1G#8LRRN7IV=JC$ iBy+lb]\EGӐ ~-3FREQ{曹l63)饮_ 䖖4Fn0|.{͚Tz{zg{Vh4#8l'jjIS*mW[,V焄rJ10hno[jm"8;vd`Vu$yT}JeJik&(r]CB|BC}BB|BBBB|n`A4` uw|L&cD"EQL&#.3H2\k||P$'$c]a2Y[a0qq#G54h,yohb1Uq?"Z':GwClh45u64h(rrbkÆo/$ym^:^,~qDp8&=PTTq䈬l6Jꫫb VWZm$/=IQTqqC.ݨEx\(411T$ MJ `|tvw$V|ggvh&EW`4U*JիRȏAa 3$+ %0! 0&L&˗_x뭽F\ƾ[( ^:%!!X aKԤ?Οob bcBBL?٨^[f?7ر,..`2hl44h;I^Ne/EͲle<2;~i^Ŕf7:<ܗ(̙cdWj}3gxb"ڿ Y,|W&/[&'X_0!EI"akXT' & dU^o$9˞AZT;h(ˍ_x#| pTQ__O0]]zljԂfjtssȸd2NǁQҮ;l(Zs_-JKKЛ^J5Ϥ4wOG|EuxdJnic>ŋh'|g̝b1jjGoŋݻ/lb+8q*"hb}f2YݐvTWL+xϘV 7Zm6[~tvkM_ggVۯV1s Agr=| 0Vfsuu9s&݃X)/PtJ\YSlkhfb8;fI3r] cTflѣhp,X@ihh̙37pҿ`k5 MCF&S64ht!L3hX,V٪+&v@Pu$wv?ؾ;  +|90`$ww#Vɉ!xy{x\__??6 L`0|?>/;GUS!ڪ;-fkiъD T`Ϳ{ Z[{m6)pXAPJ ?))L,KHANHNHɆκ:UC^-) mo ]C:ݐF5@$կk~l?=66p֬__`@`2vwewإVۯtwtw kpX>>Ba%E;~&Lf.2!qVg5zU,Wnҫ+TjZyJ$Z?JO+Z)R,k:[&dyyO' )=Z,ԍ{\###zꠠ W3 3iҤjoW*7-Sk<-- ^oR7ӳl!}œޒWIGro`ɇ][jQ5ZR(U.R2(:JRX,JR/݉3::D"|ّ[˅|>~ $#5jS?S>}>>ydcorA\a8xBSjWZ/jK֒ql$)4UzLCa{eff|מAMiFY,k׮_w?\.wz;w*++fll_ٳfD"@jf(:ެJ`L:ޤכJNgh4C/TJVU*]SG*Jb@,K$X"H--|%b|"zO 7z6Ujؠ]h`8**X \$bE*IDATQ\TKh|H}]7-Zoݺ_WhhhFF{?g6 /ݏ-((]vvNu M%_}k-YKRdcN5T 裏ÕJT*p$hbMP76]R ~+v@-x|>yВ51m68ԪsN')UD)yEAWjfԩs{9dkRƪooo/!W^B044Mqs.\={X,+WҥD"ׯߙ3gqAų)wP79p8ʡC\cÓ6 ޭݶAb55ZBO[ Vjk++VV>|ŋ?:U{e~z:7dٲvLK/m1b]RҚ~ݭ˜̰sbcvbb˓$'o4飴YY֮=駧ܹfHď HL>GJJ/,_>n)?᷾faYْ+WݾƍW,;}zс>dƻ&ϟ=ԩSX,jϜȑK99֯?{]ii;RS?~c|f={.]ؾ[aa;wkIbb!+֌aʔmom;{wGxw f&ӧaǏvΜwy]^-,c\YVYΝ7n,+[ZR2 w{o;3'i))>}:Et.$DLh @ m߾}g^bٳ<(!k׮qٳgiŋSSS !Wޱclj'w!3}e˖\iE%''_~ȑ_|Ŵiƌyf Gjwuu]sffffggw~jǏtCѨj@ pz$_9t۷oOHH8ʶF'W^v|eeeG;v̙3iMRRR&NX6o-; Kᆵ0VHBb \jC; Wwoܽ{oh4/D"QtӧOݻwƌӧOڣjñJCa~-##gWTcǎMII)***))IIIIMM "8κu뜎8^^vرjժ-[۷lƌvM ٔpZ+**\n{_Ɠ6/ sa3'O^eX !VkjbBP5LfZ}*Ng4̄!JҧfBjjt#!D1 1tIJo2&Y}bafFQʩL&H///Dy |>/>>\K$3 r8D*h&j%>>޴R[, JJj&aR]Xz^odtgM[$sRB)rD"PCJ>>\/|X, }|T$eM˪,Yѣ儐/2 ӵk?cZUUU<oժUVURY,Wǎ[UU0 u):rHoo% ,`O?:t([n{`WNaaa8NBv=//>;a+rwڥP(:fØٳg+** aU؜NojJkx;y ~ᗛ7KUMF1A`LK.Ϝ9sҥGe o޼ʾd &&RYYMKbccccc]+..^n]VVV޽,X0|pjdc啔?~|ذaƍ9rt![^^P(lK_xsiEENHݺuc; #xyy/)l9~?'ړZtJNXE>"I9NC<{Y,(VPW }b6T[Usڵ3fj-']}nֱ 1Ӟ?dzgzwA8j3a4jZ֜]`|%xf#E wfk~xWtKK-$p E".`0-0ٰ09=+ \Ggҳt+J}6-~֗WBx<.vHh~>矟3gΝ;ia```qq1MSaHSn޼I3Ο?С :V={Fc~~#~7>d;0ro߾]UsNzzʕ+ֿTSN=zt֭?}\MN###/_̦q\r=*U^^ޣGBȵk/]?}-v:N'}_Og"Jpt@燶Ilx{{O4c}]ꏣ6TUWt:w=bÞrcǎ.\ٳ'}{eLX66nF51 y'FS{k'/) p$r8d˖)X LG[B!dz_LG}¸ezTbZM6k֬3f/^LJJڸqmI&-\ҥK.]z7*++]p8_ۧT*F# N[rB'|T*}ۮj0LZZZ\\\jj*!dΜ9!!!fͲ{رiii} kwmkJLN_#G<|K,qumjkkwo^~LIIqSB ~jy2`q5z cQyrraw<綾^JOOqƥK-Z4qDSA\Rm2V0 FGeeeBT**nAzyW͛WPPpÇ/^ia4d_tI}'F}ƍz˓]4ީ_fcvn1cz <9!#FС0+!!2..ձc`dd+"_&ڽ Myt,--u͆ zi4ٿhhhUU0J_@@̙35Myy9^;wnXXL&0aBuu5-w0̮]|||bbb V7/ryTTTAAd2_,3 UW^eK[//{2 C)//gqFz [Z-aZ,kFEEd 6xL/޶m[ddd``Yt:BIxٳA7\r?`j[EjbROx(uZt=N4iR@@@hhٳi9 H%VRk֬شiӄ u¶^fʕ+ H$JLL,--n4?RolBݨqI8q{̮ؑlG\>='<|vX?CCr@kHnݺ믿>s=CQQQDD}eggyף~vZ^̹s:wMABbUӝ9s&!!A"xu1ֱF+*4 VK6h~Ž{ϝ9SA۷<hŋSRR{V[ZZoO>bZL8aB}^=;(A=(m\ZvԨQܹiՂT*uI V5Kl JBXBd,6miYf4< ߅V4V+*@.mE8 R3 R3 R3 R3 4p8:P(lv8έ[nݺ 8p8 ¹sb8N`E߿P6 պ"qi13///fp7nLD*mbOzBB^yҥBgggHZZ[JJH$ >#6D"IYV:zP(,//ǧΞ=OÈӧO3;rP qqqΝ#JddS&&&Ljְc=!bRD jH$^bV>Bhxx֭cvN>UVVlǽǏ/--5̤̙3oV~~6VTTdee}ϟ` lX,^l6;88X&I$ŅW_5pɋ-R(t{rrx˕駟;wBؘ&8111o=uuuD"y|}}Ðݻw,v6hk4^GGyyywf2|L #4v\(Zv-> ;{,!FGGKKKW^M[FFFryCC^'f5hlJJR wfb$LWWntvvb3v>Zw}WRTbbFٻwo]]]WWw}&"""hw\Ni._W-rws>B;Mciܽ|.6n{yL4;vb'6vS4˖/0BM41f5,p8c% |}~>v,QQtz#ˉy*'nR=tp(vf=Y":YKY,V@…󬘒zDDD<6 'KkH%ںu5y@O np8 _ٺ8iزEBz=ӱu@O䓼rp`ogtlR Bh&?g9֙;w8:~~OD>1/_>Y:׮I-966ƴx^FD >===?$=$=$=${=utt$%%Mۭ ?)@7?3-//핕rqlO?k?EQ3jkk#ؽ***v0Հ~M 6?x9UV;}}}_=33onߺuKRuuu LLT*ϝ;<;=ܸq+n:22bTkk؊+)JMM lYO!JCor^3Ow޽{iyK JKK}}}B8p,׮]d g|T*x-*))AMNNt𡓓O|xMMMr|͚575444gΜ\JUPPrMPS/Y=v@;vi|SL|>LB۶mtpM6H$Ç4ZVwhbT*etRJ8&,Y_tKV;888qBANg=**JVSWO;FGDDp8x|Ԩdntl1 BH&QX)pD"1i,BFOE{1=WWWޅx<\n؋>::)((믿6>88}vf~---3SRRzMWQQ1;SL󁁁G;! GjL1!Buvv䄅۷6 Ch4555؎w!"[ܹjz\V޽;<<\Vtz /Llrr!P(f2 wRԌ([n<:f1!, PKKH$`|Ž=V,XPUU퍍k֬ٳg2̔Jr\.[^3jy<ŋ{{{x XQilla DOM3 API Documentation SourceForge.net Logo

    DOMImplementationLS.hpp File Reference
    Include dependency graph for DOMImplementationLS.hpp:
    This graph shows which files directly or indirectly include this file:

    Go to the source code of this file.

    Classes

    class  xercesc::DOMImplementationLS
     

    Namespaces

     xercesc
     This class holds the list of registered DOMImplementations.
     
    XQilla-2.3.4/docs/dom3-api/tab_h.png0000644001725400016040000000026113273140077013766 00000000000000PNG  IHDR$[xIDATxM@~ΒEv"!d*rGq={SݧH uO^[_Xvyұ=VCff{R%_rug(?gh\i>|sIENDB`XQilla-2.3.4/docs/dom3-api/DOMImplementationSource_8hpp__incl.md50000644001725400016040000000004013273140077021416 00000000000000d2e744a12f3c609b3491087799db5f89XQilla-2.3.4/docs/dom3-api/inherit_graph_9.map0000644001725400016040000000067313273140101015750 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMDocument_8hpp_source.html0000644001725400016040000011651513273140077017540 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    DOMDocument.hpp
    Go to the documentation of this file.
    1 /*
    2  * Licensed to the Apache Software Foundation (ASF) under one or more
    3  * contributor license agreements. See the NOTICE file distributed with
    4  * this work for additional information regarding copyright ownership.
    5  * The ASF licenses this file to You under the Apache License, Version 2.0
    6  * (the "License"); you may not use this file except in compliance with
    7  * the License. You may obtain a copy of the License at
    8  *
    9  * http://www.apache.org/licenses/LICENSE-2.0
    10  *
    11  * Unless required by applicable law or agreed to in writing, software
    12  * distributed under the License is distributed on an "AS IS" BASIS,
    13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  * See the License for the specific language governing permissions and
    15  * limitations under the License.
    16  */
    17 
    18 /*
    19  * $Id: DOMDocument.hpp 932889 2010-04-11 13:10:10Z borisk $
    20 */
    21 
    22 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP)
    23 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 #include <xercesc/dom/DOMNode.hpp>
    30 
    31 XERCES_CPP_NAMESPACE_BEGIN
    32 
    33 class DOMConfiguration;
    34 class DOMDocumentType;
    35 class DOMElement;
    36 class DOMDocumentFragment;
    37 class DOMComment;
    38 class DOMCDATASection;
    39 class DOMProcessingInstruction;
    40 class DOMAttr;
    41 class DOMEntity;
    42 class DOMEntityReference;
    43 class DOMImplementation;
    44 class DOMNodeFilter;
    45 class DOMNodeList;
    46 class DOMNotation;
    47 class DOMText;
    48 class DOMNode;
    49 
    50 
    64 class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
    65  public DOMXPathEvaluator,
    66  public DOMDocumentTraversal,
    67  public DOMNode {
    68 
    69 
    70 protected:
    71  // -----------------------------------------------------------------------
    72  // Hidden constructors
    73  // -----------------------------------------------------------------------
    78 
    79 private:
    80  // -----------------------------------------------------------------------
    81  // Unimplemented constructors and operators
    82  // -----------------------------------------------------------------------
    85  DOMDocument(const DOMDocument &);
    86  DOMDocument & operator = (const DOMDocument &);
    88 
    89 public:
    90  // -----------------------------------------------------------------------
    91  // All constructors are hidden, just the destructor is available
    92  // -----------------------------------------------------------------------
    99  virtual ~DOMDocument() {};
    101 
    102  // -----------------------------------------------------------------------
    103  // Virtual DOMDocument interface
    104  // -----------------------------------------------------------------------
    127  virtual DOMElement *createElement(const XMLCh *tagName) = 0;
    128 
    134  virtual DOMDocumentFragment *createDocumentFragment() = 0;
    135 
    142  virtual DOMText *createTextNode(const XMLCh *data) = 0;
    143 
    150  virtual DOMComment *createComment(const XMLCh *data) = 0;
    151 
    159  virtual DOMCDATASection *createCDATASection(const XMLCh *data) = 0;
    160 
    172  virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
    173  const XMLCh *data) = 0;
    174 
    175 
    192  virtual DOMAttr *createAttribute(const XMLCh *name) = 0;
    193 
    194 
    212  virtual DOMEntityReference *createEntityReference(const XMLCh *name) = 0;
    213 
    225  virtual DOMDocumentType *getDoctype() const = 0;
    226 
    232  virtual DOMImplementation *getImplementation() const = 0;
    233 
    239  virtual DOMElement *getDocumentElement() const = 0;
    240 
    255  virtual DOMNodeList *getElementsByTagName(const XMLCh *tagname) const = 0;
    256 
    258 
    261 
    360  virtual DOMNode *importNode(const DOMNode *importedNode, bool deep) = 0;
    361 
    417  virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
    418  const XMLCh *qualifiedName) = 0;
    419 
    482  virtual DOMAttr *createAttributeNS(const XMLCh *namespaceURI,
    483  const XMLCh *qualifiedName) = 0;
    484 
    497  virtual DOMNodeList *getElementsByTagNameNS(const XMLCh *namespaceURI,
    498  const XMLCh *localName) const = 0;
    499 
    513  virtual DOMElement * getElementById(const XMLCh *elementId) const = 0;
    515 
    518 
    525  virtual const XMLCh* getInputEncoding() const = 0;
    526 
    534  virtual const XMLCh* getXmlEncoding() const = 0;
    535 
    542  virtual bool getXmlStandalone() const = 0;
    543 
    551  virtual void setXmlStandalone(bool standalone) = 0;
    552 
    560  virtual const XMLCh* getXmlVersion() const = 0;
    561 
    569  virtual void setXmlVersion(const XMLCh* version) = 0;
    570 
    579  virtual const XMLCh* getDocumentURI() const = 0;
    588  virtual void setDocumentURI(const XMLCh* documentURI) = 0;
    589 
    600  virtual bool getStrictErrorChecking() const = 0;
    611  virtual void setStrictErrorChecking(bool strictErrorChecking) = 0;
    612 
    657  virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
    658 
    659 
    719  virtual DOMNode* adoptNode(DOMNode* source) = 0;
    720 
    741  virtual void normalizeDocument() = 0;
    742 
    743 
    751  virtual DOMConfiguration* getDOMConfig() const = 0;
    752 
    754 
    755  // -----------------------------------------------------------------------
    756  // Non-standard extension
    757  // -----------------------------------------------------------------------
    767  virtual DOMEntity *createEntity(const XMLCh *name) = 0;
    768 
    777  virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
    778 
    779  /***
    780  * Provide default implementation to maintain source code compatibility
    781  ***/
    782  virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
    783  const XMLCh*, //publicId,
    784  const XMLCh* //systemId
    785  )
    786  {
    787  return createDocumentType(qName);
    788  }
    789 
    798  virtual DOMNotation *createNotation(const XMLCh *name) = 0;
    799 
    809  virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
    810  const XMLCh *qualifiedName,
    811  const XMLFileLoc lineNum,
    812  const XMLFileLoc columnNum) = 0;
    814 
    815 };
    816 
    817 XERCES_CPP_NAMESPACE_END
    818 
    819 #endif
    The DOMNodeList interface provides the abstraction of an ordered collection of nodes.
    Definition: DOMNodeList.hpp:45
    DOMDocument()
    Definition: DOMDocument.hpp:76
    virtual ~DOMDocument()
    Destructor.
    Definition: DOMDocument.hpp:99
    This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting &#39; &lt;!–&#39; and ending &#39;–&gt;&#39;.
    Definition: DOMComment.hpp:39
    CDATA sections are used to escape blocks of text containing characters that would otherwise be regard...
    Definition: DOMCDATASection.hpp:65
    virtual DOMDocumentType * createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)
    Definition: DOMDocument.hpp:782
    The DOMConfiguration interface represents the configuration of a document and maintains a table of re...
    Definition: DOMConfiguration.hpp:350
    The DOMDocument interface represents the entire XML document.
    Definition: DOMDocument.hpp:64
    The DOMNode interface is the primary datatype for the entire Document Object Model.
    Definition: DOMNode.hpp:139
    Definition: DOMDocumentRange.hpp:37
    DOMDocumentFragment is a &quot;lightweight&quot; or &quot;minimal&quot; DOMDocument object.
    Definition: DOMDocumentFragment.hpp:71
    By far the vast majority of objects (apart from text) that authors encounter when traversing a docume...
    Definition: DOMElement.hpp:66
    The DOMImplementation interface provides a number of methods for performing operations that are indep...
    Definition: DOMImplementation.hpp:43
    DOMEntityReference objects may be inserted into the structure model when an entity reference is in th...
    Definition: DOMEntityReference.hpp:57
    DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a n...
    Definition: DOMDocumentTraversal.hpp:47
    The DOMAttr class refers to an attribute of an XML element.
    Definition: DOMAttr.hpp:57
    This interface represents an entity, either parsed or unparsed, in an XML document.
    Definition: DOMEntity.hpp:66
    The DOMText interface inherits from DOMCharacterData and represents the textual content (termed chara...
    Definition: DOMText.hpp:51
    Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object...
    Definition: DOMDocumentType.hpp:45
    This interface represents a notation declared in the DTD.
    Definition: DOMNotation.hpp:44
    The evaluation of XPath expressions is provided by DOMXPathEvaluator.
    Definition: DOMXPathEvaluator.hpp:47
    The DOMProcessingInstruction interface represents a &quot;processing instruction&quot;, used in XML as a way to...
    Definition: DOMProcessingInstruction.hpp:38
    XQilla-2.3.4/docs/dom3-api/functions_0x6c.html0000644001725400016040000001314113273140100015725 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    Here is a list of all class members with links to the classes they belong to:

    - l -

    XQilla-2.3.4/docs/dom3-api/DOMRangeException_8hpp__dep__incl.map0000644001725400016040000000104113273140101021230 00000000000000 XQilla-2.3.4/docs/dom3-api/inherit_graph_5.map0000644001725400016040000000035113273140101015735 00000000000000 XQilla-2.3.4/docs/dom3-api/DOMNotation_8hpp__dep__incl.md50000644001725400016040000000004013273140077020032 000000000000008aa1f6062051639b1660b94ff7bba39cXQilla-2.3.4/docs/dom3-api/dir_eb0099cf839cef65d350c0a3df5315ad.html0000644001725400016040000000546713273140101020446 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    src Directory Reference
    Directory dependency graph for src:
    src

    Directories

    directory  xercesc
     
    XQilla-2.3.4/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.map0000644001725400016040000000037413273140101022753 00000000000000 XQilla-2.3.4/docs/dom3-api/XQillaPlatformUtils_8hpp_source.html0000644001725400016040000002031613273140077021333 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
    XQillaPlatformUtils.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2001, 2008,
    3  * DecisionSoft Limited. All rights reserved.
    4  * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved.
    5  *
    6  *
    7  * Licensed under the Apache License, Version 2.0 (the "License");
    8  * you may not use this file except in compliance with the License.
    9  * You may obtain a copy of the License at
    10  *
    11  * http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  * Unless required by applicable law or agreed to in writing, software
    14  * distributed under the License is distributed on an "AS IS" BASIS,
    15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  * See the License for the specific language governing permissions and
    17  * limitations under the License.
    18  */
    19 
    20 #ifndef _XQILLAPLATFORMUTILS_HPP
    21 #define _XQILLAPLATFORMUTILS_HPP
    22 
    23 #include <xqilla/framework/XQillaExport.hpp>
    24 
    25 #include <xercesc/util/XercesDefs.hpp>
    26 XERCES_CPP_NAMESPACE_BEGIN
    27 class MemoryManager;
    28 XERCES_CPP_NAMESPACE_END
    29 
    34 class XQILLA_API XQillaPlatformUtils
    35 {
    36 public:
    37 
    45  static void initialize(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = 0);
    46 
    52  static void terminate();
    53 
    60  static void enableExtendedPrecision(bool bEnable);
    61 
    62 };
    63 #endif
    64 
    Static utility methods for initializing and terminating the XQilla and Xerces environments.
    Definition: XQillaPlatformUtils.hpp:34
    XQilla-2.3.4/docs/dom3-api/DOMEntityReference_8hpp__dep__incl.md50000644001725400016040000000004013273140077021332 0000000000000054e6794f8f1938978d9dc82508f19aadXQilla-2.3.4/docs/dom3-api/dir_21314fd8aa3f00deb23a3694b8fb0d10_dep.md50000644001725400016040000000004013273140100020663 0000000000000061f61ae590807326c37e04648989a104XQilla-2.3.4/Makefile.am0000644001725400016040000005266213273140037011706 00000000000000AUTOMAKE_OPTIONS = foreign dist-zip SUBDIRS = include INCLUDES = -I$(top_srcdir)/include/ $(xerces_include) -I$(top_srcdir)/src/lexer/ $(faxpp_include) $(tidy_include) LDFLAGS = -L$(xerces_lib) -R$(xerces_lib) $(faxpp_lib) $(tidy_lib) -lxerces-c $(faxpp_library) $(tidy_library) LDADD = libxqilla.la ACLOCAL_AMFLAGS = -I autotools/m4 bin_PROGRAMS = xqilla noinst_PROGRAMS = xqtsRunner xmarkRunner simple-basic simple-context-item xqc-basic xqc-context-item compile-delayed-module if BUILD_DOM_SAMPLES noinst_PROGRAMS += dom-basic dom-context-item dom-resolver endif lib_LTLIBRARIES = libxqilla.la # Library version, see http://sourceware.org/autobook/autobook/autobook_91.html # -no-undefined for Cygwin (bug #1639669) libxqilla_la_LDFLAGS = -version-info 6:0:4 -no-undefined libxqilla_la_SOURCES = \ src/framework/ReferenceCounted.cpp \ src/framework/BaseMemoryManager.cpp \ src/framework/ProxyMemoryManager.cpp \ src/framework/StringPool.cpp \ src/framework/XPath2MemoryManagerImpl.cpp \ src/context/UpdateFactory.cpp \ src/context/impl/CollationImpl.cpp \ src/context/impl/CodepointCollation.cpp \ src/context/impl/VarStoreImpl.cpp \ src/context/impl/VarTypeStoreImpl.hpp \ src/context/impl/VarTypeStoreImpl.cpp \ src/context/impl/VarHashEntryImpl.cpp \ src/context/impl/XQContextImpl.cpp \ src/context/impl/XQDynamicContextImpl.cpp \ src/context/impl/ItemFactoryImpl.cpp \ src/ast/XQAtomize.cpp \ src/ast/XQEffectiveBooleanValue.cpp \ src/ast/XQMap.cpp \ src/ast/XQAnalyzeString.cpp \ src/ast/XQCastableAs.cpp \ src/ast/XQCastAs.cpp \ src/ast/XQContextItem.cpp \ src/ast/XQCopy.cpp \ src/ast/XQCopyOf.cpp \ src/ast/XQFunction.cpp \ src/ast/XQIf.cpp \ src/ast/ASTNodeImpl.cpp \ src/ast/XQInlineFunction.cpp \ src/ast/XQLiteral.cpp \ src/ast/XQNav.cpp \ src/ast/XQOperator.cpp \ src/ast/XQSequence.cpp \ src/ast/XQStep.cpp \ src/ast/XQTreatAs.cpp \ src/ast/XQFunctionCoercion.cpp \ src/ast/XQVariable.cpp \ src/ast/StaticAnalysis.cpp \ src/ast/StaticType.cpp \ src/ast/NumericFunction.cpp \ src/ast/XQDOMConstructor.cpp \ src/ast/XQDocumentConstructor.cpp \ src/ast/XQElementConstructor.cpp \ src/ast/XQAttributeConstructor.cpp \ src/ast/XQNamespaceConstructor.cpp \ src/ast/XQPIConstructor.cpp \ src/ast/XQCommentConstructor.cpp \ src/ast/XQTextConstructor.cpp \ src/ast/XQFunctionCall.cpp \ src/ast/XQFunctionConversion.cpp \ src/ast/XQFunctionDeref.cpp \ src/ast/XQPartialApply.cpp \ src/ast/XQFunctionRef.cpp \ src/ast/XQGlobalVariable.cpp \ src/ast/XQOrderingChange.cpp \ src/ast/XQQuantified.cpp \ src/ast/XQValidate.cpp \ src/ast/XQTypeswitch.cpp \ src/ast/ConvertFunctionArg.cpp \ src/ast/XQDocumentOrder.cpp \ src/ast/XQPredicate.cpp \ src/ast/XQReturn.cpp \ src/ast/TupleNode.cpp \ src/ast/ContextTuple.cpp \ src/ast/ForTuple.cpp \ src/ast/LetTuple.cpp \ src/ast/WhereTuple.cpp \ src/ast/CountTuple.cpp \ src/ast/OrderByTuple.cpp \ src/ast/XQNamespaceBinding.cpp \ src/ast/XQCallTemplate.cpp \ src/ast/XQApplyTemplates.cpp \ src/debug/ASTDebugHook.cpp \ src/debug/DebugHookDecorator.cpp \ src/debug/TupleDebugHook.cpp \ src/debug/InputParser.cpp \ src/debug/InteractiveDebugger.cpp \ src/debug/StackFrame.cpp \ src/events/ContentSequenceFilter.cpp \ src/events/EventGenerator.cpp \ src/events/EventSerializer.cpp \ src/events/NoInheritFilter.cpp \ src/events/NoInheritFilter.hpp \ src/events/NSFixupFilter.cpp \ src/events/QueryPathTreeFilter.cpp \ src/fulltext/FTContains.cpp \ src/fulltext/FTWords.cpp \ src/fulltext/FTOr.cpp \ src/fulltext/FTAnd.cpp \ src/fulltext/FTMildnot.cpp \ src/fulltext/FTUnaryNot.cpp \ src/fulltext/DefaultTokenizer.cpp \ src/fulltext/DefaultTokenStore.cpp \ src/fulltext/FTOrder.cpp \ src/fulltext/FTDistance.cpp \ src/fulltext/FTScope.cpp \ src/fulltext/FTContent.cpp \ src/fulltext/FTWindow.cpp \ src/dom-api/impl/XQillaBuilderImpl.cpp \ src/dom-api/impl/XQillaBuilderImpl.hpp \ src/dom-api/impl/XQillaDocumentImpl.cpp \ src/dom-api/impl/XQillaDocumentImpl.hpp \ src/dom-api/impl/XQillaExpressionImpl.cpp \ src/dom-api/impl/XQillaExpressionImpl.hpp \ src/dom-api/impl/XQillaNSResolverImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp \ src/dom-api/impl/XPathDocumentImpl.cpp \ src/dom-api/impl/XPathDocumentImpl.hpp \ src/dom-api/impl/XPathNamespaceImpl.cpp \ src/dom-api/impl/XPathNamespaceImpl.hpp \ src/dom-api/impl/XPath2ResultImpl.cpp \ src/dom-api/impl/XPath2ResultImpl.hpp \ src/dom-api/XQillaImplementation.cpp \ src/dom-api/XQillaImplementation.hpp \ src/dom-api/XPath2NodeSerializer.cpp \ src/dom-api/XPath2NodeSerializer.hpp \ src/simple-api/XQilla.cpp \ src/simple-api/XQQuery.cpp \ src/utils/UTF8Str.cpp \ src/utils/XMLChCompare.cpp \ src/utils/XStr.cpp \ src/utils/ContextUtils.cpp \ src/utils/DateUtils.cpp \ src/utils/DateUtils.hpp \ src/utils/NumUtils.cpp \ src/utils/XQillaPlatformUtils.cpp \ src/utils/XPath2NSUtils.cpp \ src/utils/XPath2Utils.cpp \ src/utils/UnicodeTransformer.cpp \ src/utils/utf8proc/utf8proc.c \ src/utils/utf8proc/utf8proc_data.h \ src/utils/DelayedModule.cpp \ src/exceptions/XQillaException.cpp \ src/exceptions/XQException.cpp \ src/exceptions/InvalidLexicalSpaceException.hpp \ src/exceptions/MiscException.hpp \ src/functions/EXSLTMathFunction.cpp \ src/functions/ExternalFunction.cpp \ src/functions/XQillaFunction.cpp \ src/functions/FunctionParseXML.cpp \ src/functions/FuncFactory.cpp \ src/functions/FunctionLookup.cpp \ src/functions/FunctionAbs.cpp \ src/functions/FunctionAcos.cpp \ src/functions/FunctionAsin.cpp \ src/functions/FunctionAtan.cpp \ src/functions/FunctionBaseURI.cpp \ src/functions/FunctionCaseFold.cpp \ src/functions/FunctionCeiling.cpp \ src/functions/FunctionCodepointsToString.cpp \ src/functions/FunctionCollection.cpp \ src/functions/FunctionCompare.cpp \ src/functions/FunctionConcat.cpp \ src/functions/FunctionContains.cpp \ src/functions/FunctionCount.cpp \ src/functions/FunctionCos.cpp \ src/functions/FunctionCurrentDate.cpp \ src/functions/FunctionCurrentDateTime.cpp \ src/functions/FunctionCurrentTime.cpp \ src/functions/FunctionDateTime.cpp \ src/functions/FunctionDefaultCollation.cpp \ src/functions/FunctionDistinctValues.cpp \ src/functions/FunctionDocAvailable.cpp \ src/functions/FunctionDoc.cpp \ src/functions/FunctionDocument.cpp \ src/functions/FunctionDocumentURI.cpp \ src/functions/FunctionEmpty.cpp \ src/functions/FunctionEndsWith.cpp \ src/functions/FunctionError.cpp \ src/functions/FunctionExp.cpp \ src/functions/FunctionFloor.cpp \ src/functions/FunctionFunctionArity.cpp \ src/functions/FunctionFunctionName.cpp \ src/functions/FunctionId.cpp \ src/functions/FunctionIdref.cpp \ src/functions/FunctionImplicitTimezone.cpp \ src/functions/FunctionLang.cpp \ src/functions/FunctionLast.cpp \ src/functions/FunctionLocalname.cpp \ src/functions/FunctionLocalNameFromQName.cpp \ src/functions/FunctionLog.cpp \ src/functions/FunctionLowerCase.cpp \ src/functions/FunctionMatches.cpp \ src/functions/FunctionName.cpp \ src/functions/FunctionNamespaceUri.cpp \ src/functions/FunctionNamespaceURIFromQName.cpp \ src/functions/FunctionNilled.cpp \ src/functions/FunctionNodeName.cpp \ src/functions/FunctionNormalizeSpace.cpp \ src/functions/FunctionNormalizeUnicode.cpp \ src/functions/FunctionNot.cpp \ src/functions/FunctionNumber.cpp \ src/functions/FunctionPosition.cpp \ src/functions/FunctionPower.cpp \ src/functions/FunctionPrefixFromQName.cpp \ src/functions/FunctionQName.cpp \ src/functions/FunctionRegexGroup.cpp \ src/functions/FunctionReplace.cpp \ src/functions/FunctionResolveURI.cpp \ src/functions/FunctionRoot.cpp \ src/functions/FunctionRound.cpp \ src/functions/FunctionRoundHalfToEven.cpp \ src/functions/FunctionSin.cpp \ src/functions/FunctionSqrt.cpp \ src/functions/FunctionTan.cpp \ src/functions/FunctionSentences.cpp \ src/functions/FunctionStartsWith.cpp \ src/functions/FunctionStaticBaseURI.cpp \ src/functions/FunctionString.cpp \ src/functions/FunctionStringLength.cpp \ src/functions/FunctionStringToCodepoints.cpp \ src/functions/FunctionSubstring.cpp \ src/functions/FunctionTime.cpp \ src/functions/FunctionTokenize.cpp \ src/functions/FunctionTrace.cpp \ src/functions/FunctionHead.cpp \ src/functions/FunctionTail.cpp \ src/functions/FunctionUnordered.cpp \ src/functions/FunctionUnparsedText.cpp \ src/functions/FunctionUpperCase.cpp \ src/functions/FunctionWords.cpp \ src/functions/FunctionAdjustDateTimeToTimezone.cpp \ src/functions/FunctionAdjustDateToTimezone.cpp \ src/functions/FunctionAdjustTimeToTimezone.cpp \ src/functions/FunctionDayFromDate.cpp \ src/functions/FunctionDayFromDateTime.cpp \ src/functions/FunctionDaysFromDuration.cpp \ src/functions/FunctionHoursFromDateTime.cpp \ src/functions/FunctionHoursFromDuration.cpp \ src/functions/FunctionHoursFromTime.cpp \ src/functions/FunctionMinutesFromDateTime.cpp \ src/functions/FunctionMinutesFromDuration.cpp \ src/functions/FunctionMinutesFromTime.cpp \ src/functions/FunctionMonthFromDate.cpp \ src/functions/FunctionMonthFromDateTime.cpp \ src/functions/FunctionMonthsFromDuration.cpp \ src/functions/FunctionSecondsFromDateTime.cpp \ src/functions/FunctionSecondsFromDuration.cpp \ src/functions/FunctionSecondsFromTime.cpp \ src/functions/FunctionTimezoneFromDate.cpp \ src/functions/FunctionTimezoneFromDateTime.cpp \ src/functions/FunctionTimezoneFromTime.cpp \ src/functions/FunctionYearFromDate.cpp \ src/functions/FunctionYearFromDateTime.cpp \ src/functions/FunctionYearsFromDuration.cpp \ src/functions/FunctionParseJSON.cpp \ src/functions/FunctionSerializeJSON.cpp \ src/functions/FunctionParseHTML.cpp \ src/functions/FunctionExplain.cpp \ src/functions/FunctionAnalyzeString.cpp \ src/functions/RegExpFunction.cpp \ src/functions/XQUserFunction.cpp \ src/functions/FunctionSignature.cpp \ src/functions/BuiltInModules.cpp \ src/functions/CoreModule.hpp \ src/functions/FnModule.hpp \ src/items/impl/ATAnySimpleTypeImpl.cpp \ src/items/impl/ATAnySimpleTypeImpl.hpp \ src/items/impl/ATAnyURIOrDerivedImpl.cpp \ src/items/impl/ATAnyURIOrDerivedImpl.hpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.cpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.hpp \ src/items/impl/ATBooleanOrDerivedImpl.cpp \ src/items/impl/ATDateOrDerivedImpl.cpp \ src/items/impl/ATDateTimeOrDerivedImpl.cpp \ src/items/impl/ATDecimalOrDerivedImpl.cpp \ src/items/impl/ATDoubleOrDerivedImpl.cpp \ src/items/impl/ATDurationOrDerivedImpl.cpp \ src/items/impl/ATFloatOrDerivedImpl.cpp \ src/items/impl/ATGDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.hpp \ src/items/impl/ATNotationOrDerivedImpl.cpp \ src/items/impl/ATNotationOrDerivedImpl.hpp \ src/items/impl/ATQNameOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.hpp \ src/items/impl/ATTimeOrDerivedImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.hpp \ src/items/impl/FunctionRefImpl.cpp \ src/items/impl/FunctionRefImpl.hpp \ src/items/DatatypeFactory.cpp \ src/items/DatatypeFactoryTemplate.hpp \ src/items/DatatypeLookup.cpp \ src/items/AnyAtomicType.cpp \ src/items/ATDurationOrDerived.cpp \ src/items/ATUntypedAtomic.cpp \ src/items/DateOrTimeType.cpp \ src/items/Item.cpp \ src/items/Node.cpp \ src/items/Numeric.cpp \ src/items/Timezone.cpp \ src/parser/QName.cpp \ src/parser/XQParser.cpp \ src/parser/XQParser.hpp \ src/lexer/FlexLexer.h \ src/lexer/XQLexer.cpp \ src/lexer/XQLexer2.cpp \ src/lexer/XQLexer.hpp \ src/lexer/XSLT2Lexer.cpp \ src/lexer/XSLT2Lexer.hpp \ src/mapm/mapm5sin.c \ src/mapm/mapm_add.c \ src/mapm/mapmasin.c \ src/mapm/mapmasn0.c \ src/mapm/mapmcbrt.c \ src/mapm/mapmcnst.c \ src/mapm/mapm_cpi.c \ src/mapm/m_apm.cpp \ src/mapm/mapm_div.c \ src/mapm/mapm_exp.c \ src/mapm/mapmfact.c \ src/mapm/mapm_fam.c \ src/mapm/mapm_fft.c \ src/mapm/mapm_flr.c \ src/mapm/mapmfmul.c \ src/mapm/mapm_fpf.c \ src/mapm/mapm_gcd.c \ src/mapm/mapmgues.c \ src/mapm/mapmhasn.c \ src/mapm/mapmhsin.c \ src/mapm/mapmipwr.c \ src/mapm/mapmistr.c \ src/mapm/m_apm_lc.h \ src/mapm/mapm_lg2.c \ src/mapm/mapm_lg3.c \ src/mapm/mapm_log.c \ src/mapm/mapm_mt.cpp \ src/mapm/mapm_mul.c \ src/mapm/mapm_pow.c \ src/mapm/mapmpwr2.c \ src/mapm/mapm_rcp.c \ src/mapm/mapm_rnd.c \ src/mapm/mapmrsin.c \ src/mapm/mapm_set.c \ src/mapm/mapm_sin.c \ src/mapm/mapmsqrt.c \ src/mapm/mapmstck.c \ src/mapm/mapmutil.c \ src/mapm/mapmutl2.c \ src/mapm/README \ src/axis/NodeTest.cpp \ src/operators/And.cpp \ src/operators/ArithmeticOperator.cpp \ src/operators/ComparisonOperator.cpp \ src/operators/Divide.cpp \ src/operators/Equals.cpp \ src/operators/Except.cpp \ src/operators/GeneralComp.cpp \ src/operators/GreaterThan.cpp \ src/operators/GreaterThanEqual.cpp \ src/operators/IntegerDivide.cpp \ src/operators/Intersect.cpp \ src/operators/LessThan.cpp \ src/operators/LessThanEqual.cpp \ src/operators/Minus.cpp \ src/operators/Mod.cpp \ src/operators/Multiply.cpp \ src/operators/NodeComparison.cpp \ src/operators/NotEquals.cpp \ src/operators/Or.cpp \ src/operators/OrderComparison.cpp \ src/operators/Plus.cpp \ src/operators/UnaryMinus.cpp \ src/operators/Union.cpp \ src/schema/DocumentCacheImpl.cpp \ src/schema/SequenceType.cpp \ src/schema/AnyAtomicTypeDatatypeValidator.cpp \ src/schema/SchemaValidatorFilter.cpp \ src/schema/FaxppDocumentCacheImpl.hpp \ src/schema/FaxppDocumentCacheImpl.cpp \ src/runtime/ClosureResult.cpp \ src/runtime/EmptyResult.cpp \ src/runtime/ResultBuffer.cpp \ src/runtime/ResultBufferImpl.cpp \ src/runtime/Result.cpp \ src/runtime/ResultImpl.cpp \ src/runtime/SequenceResult.cpp \ src/runtime/Sequence.cpp \ src/update/FunctionPut.cpp \ src/update/PendingUpdateList.cpp \ src/update/UApplyUpdates.cpp \ src/update/UDelete.cpp \ src/update/URename.cpp \ src/update/UReplace.cpp \ src/update/UReplaceValueOf.cpp \ src/update/UInsertAsFirst.cpp \ src/update/UInsertAsLast.cpp \ src/update/UInsertInto.cpp \ src/update/UInsertAfter.cpp \ src/update/UInsertBefore.cpp \ src/update/UTransform.cpp \ src/config/xqilla_config.h \ src/xqts/TestSuiteParser.cpp \ src/xqts/TestSuiteResultListener.cpp \ src/xqts/TestSuiteRunner.cpp \ src/fastxdm/FastXDMUpdateFactory.hpp \ src/fastxdm/FastXDMUpdateFactory.cpp \ src/fastxdm/FastXDMDocument.hpp \ src/fastxdm/FastXDMDocument.cpp \ src/fastxdm/FastXDMNodeImpl.hpp \ src/fastxdm/FastXDMNodeImpl.cpp \ src/fastxdm/FastXDMConfiguration.cpp \ src/fastxdm/FastXDMSequenceBuilder.hpp \ src/fastxdm/FastXDMSequenceBuilder.cpp \ src/xerces/AncestorAxis.hpp \ src/xerces/AncestorOrSelfAxis.hpp \ src/xerces/AttributeAxis.hpp \ src/xerces/Axis.hpp \ src/xerces/ChildAxis.hpp \ src/xerces/DescendantAxis.hpp \ src/xerces/DescendantOrSelfAxis.hpp \ src/xerces/FollowingAxis.hpp \ src/xerces/FollowingSiblingAxis.hpp \ src/xerces/NamespaceAxis.hpp \ src/xerces/ParentAxis.hpp \ src/xerces/PrecedingAxis.hpp \ src/xerces/PrecedingSiblingAxis.hpp \ src/xerces/AncestorAxis.cpp \ src/xerces/AncestorOrSelfAxis.cpp \ src/xerces/AttributeAxis.cpp \ src/xerces/Axis.cpp \ src/xerces/ChildAxis.cpp \ src/xerces/DescendantAxis.cpp \ src/xerces/DescendantOrSelfAxis.cpp \ src/xerces/FollowingAxis.cpp \ src/xerces/FollowingSiblingAxis.cpp \ src/xerces/NamespaceAxis.cpp \ src/xerces/ParentAxis.cpp \ src/xerces/PrecedingAxis.cpp \ src/xerces/PrecedingSiblingAxis.cpp \ src/xerces/XercesConfiguration.cpp \ src/xerces/XercesNodeImpl.hpp \ src/xerces/XercesNodeImpl.cpp \ src/xerces/XercesSequenceBuilder.hpp \ src/xerces/XercesSequenceBuilder.cpp \ src/xerces/XercesUpdateFactory.hpp \ src/xerces/XercesUpdateFactory.cpp \ src/xerces/XercesURIResolver.hpp \ src/xerces/XercesURIResolver.cpp \ src/optimizer/Optimizer.cpp \ src/optimizer/ASTCopier.cpp \ src/optimizer/ASTReleaser.cpp \ src/optimizer/ASTVisitor.cpp \ src/optimizer/PartialEvaluator.cpp \ src/optimizer/StaticTyper.cpp \ src/optimizer/QueryPathNode.cpp \ src/optimizer/QueryPathTreeGenerator.cpp \ src/optimizer/ASTToXML.cpp \ src/yajl/yajl_buf.c \ src/yajl/yajl_buf.h \ src/yajl/yajl.c \ src/yajl/yajl_encode.c \ src/yajl/yajl_encode.h \ src/yajl/yajl_gen.c \ src/yajl/yajl_lex.c \ src/yajl/yajl_lex.h \ src/yajl/yajl_parser.c \ src/yajl/yajl_parser.h \ src/yajl/yajl_common.h \ src/yajl/yajl_gen.h \ src/yajl/yajl_parse.h \ src/xqc/XQillaXQCImplementation.cpp \ src/xqc/XQillaXQCImplementation.hpp \ src/xqc/XQillaXQCStaticContext.cpp \ src/xqc/XQillaXQCStaticContext.hpp \ src/xqc/XQillaXQCDynamicContext.cpp \ src/xqc/XQillaXQCDynamicContext.hpp \ src/xqc/XQillaXQCExpression.cpp \ src/xqc/XQillaXQCExpression.hpp \ src/xqc/XQillaXQCSequence.cpp \ src/xqc/XQillaXQCSequence.hpp \ src/xqc/XQillaXQCInputStream.hpp EXTRA_DIST = \ src/lexer/flex.skl \ src/lexer/XQLexer.l \ src/parser/XQParser.y \ src/parser/XQParser.y \ src/samples/dom-api/data.xml \ src/samples/dom-api/data.xsd \ src/samples/dom-api/foo.xml \ src/samples/simple-api/foo.xml \ src/functions/CoreModule.xq \ src/functions/FnModule.xq \ LICENSE \ TODO \ README \ ChangeLog \ docs/Doxyfile.simpleapi.in \ docs/Doxyfile.dom3api.in \ docs/Doxyfile.devapi.in \ docs/Doxyfile.xqc.in \ docs/dom3_header.html \ docs/simple_header.html \ docs/xqc_header.html \ docs/simple-api \ docs/dom3-api \ docs/xqc-api \ Win32Projects/VC14/dom-basic.vcxproj \ Win32Projects/VC14/dom-context-item.vcxproj \ Win32Projects/VC14/dom-resolver.vcxproj \ Win32Projects/VC14/simple-basic.vcxproj \ Win32Projects/VC14/simple-context-item.vcxproj \ Win32Projects/VC14/xmarkRunner.vcxproj \ Win32Projects/VC14/xqc-basic.vcxproj \ Win32Projects/VC14/xqc-context-item.vcxproj \ Win32Projects/VC14/xqilla.vcxproj \ Win32Projects/VC14/xqilla_cmd.vcxproj \ Win32Projects/VC14/xqtsRunner.vcxproj \ Win32Projects/VC14/XQilla.sln \ Win32Projects/VC11/dom-basic.vcxproj \ Win32Projects/VC11/dom-context-item.vcxproj \ Win32Projects/VC11/dom-resolver.vcxproj \ Win32Projects/VC11/simple-basic.vcxproj \ Win32Projects/VC11/simple-context-item.vcxproj \ Win32Projects/VC11/xmarkRunner.vcxproj \ Win32Projects/VC11/xqc-basic.vcxproj \ Win32Projects/VC11/xqc-context-item.vcxproj \ Win32Projects/VC11/xqilla.vcxproj \ Win32Projects/VC11/xqilla_cmd.vcxproj \ Win32Projects/VC11/xqtsRunner.vcxproj \ Win32Projects/VC11/XQilla.sln \ Win32Projects/VC10/dom-basic.vcxproj \ Win32Projects/VC10/dom-context-item.vcxproj \ Win32Projects/VC10/dom-resolver.vcxproj \ Win32Projects/VC10/simple-basic.vcxproj \ Win32Projects/VC10/simple-context-item.vcxproj \ Win32Projects/VC10/xmarkRunner.vcxproj \ Win32Projects/VC10/xqc-basic.vcxproj \ Win32Projects/VC10/xqc-context-item.vcxproj \ Win32Projects/VC10/xqilla.vcxproj \ Win32Projects/VC10/xqilla_cmd.vcxproj \ Win32Projects/VC10/xqtsRunner.vcxproj \ Win32Projects/VC10/XQilla.sln \ tests/xqts/xqts_testsuite/errors.xml \ tests/xqts/xqts_testsuite/update_errors.xml \ tests/xqts/xqts_testsuite/xsl_errors.xml \ wintools/lib_paths.sed \ wintools/s_win32 \ wintools/README \ wintools/s_projects \ wintools/genproject.xq \ wintools/xqilla.template.xml \ wintools/xqilla.vs2010.xq \ wintools/xqilla.vs2010_filter.xq xqilla_SOURCES = \ src/samples/xqilla/xqilla-commandline.cpp xqtsRunner_SOURCES = \ tests/xqts/runner.cpp xmarkRunner_SOURCES = \ tests/xmark/xmark.cpp simple_basic_SOURCES = \ src/samples/simple-api/simple-basic.cpp simple_context_item_SOURCES = \ src/samples/simple-api/simple-context-item.cpp dom_basic_SOURCES = \ src/samples/dom-api/dom-basic.cpp dom_context_item_SOURCES = \ src/samples/dom-api/dom-context-item.cpp dom_resolver_SOURCES = \ src/samples/dom-api/dom-resolver.cpp # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_basic_SOURCES = dummy.cpp xqc_basic_SOURCES = \ src/samples/xqc-api/xqc-basic.c # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_context_item_SOURCES = dummy.cpp xqc_context_item_SOURCES = \ src/samples/xqc-api/xqc-context-item.c compile_delayed_module_SOURCES = \ src/tools/compile-delayed-module.cpp $(top_srcdir)/src/functions/CoreModule.hpp: $(top_srcdir)/src/functions/CoreModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/CoreModule.xq >$(top_srcdir)/src/functions/CoreModule.hpp $(top_srcdir)/src/functions/FnModule.hpp: $(top_srcdir)/src/functions/FnModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/FnModule.xq >$(top_srcdir)/src/functions/FnModule.hpp LEXERFILE = $(top_srcdir)/src/lexer/XQLexer.cpp LEXTEMPLATE = $(top_srcdir)/src/lexer/XQLexer.l LEXSKEL = $(top_srcdir)/src/lexer/flex.skl PARSERFILE = $(top_srcdir)/src/parser/XQParser.y PARSERCPP = $(top_srcdir)/src/parser/XQParser.cpp PARSERHPP = $(top_srcdir)/src/parser/XQParser.hpp $(LEXERFILE): $(LEXTEMPLATE) $(LEXSKEL) $(LEX) -BUs -Pxq -S$(LEXSKEL) -o$(LEXERFILE) $(LEXTEMPLATE) # This can take a long time $(PARSERCPP) $(PARSERHPP): $(PARSERFILE) $(YACC) -d -v -o $(PARSERCPP) $(PARSERFILE) .PHONY: test docs docs: $(MAKE) -C include docs docsclean: $(MAKE) -C include docsclean devdocs: $(MAKE) -C include devdocs devdocsclean: $(MAKE) -C include devdocsclean # Target to help keep the windows projects up-to-date winprojects: winprojects.xq xqilla $(MAKE) -C include winprojects ./xqilla winprojects.xq > winprojects_files.xml winprojects.xq: $(libxqilla_la_SOURCES) @echo "let \$$filedump := " >winprojects.xq @list='$(libxqilla_la_SOURCES)'; for f in $$list; do \ echo " " >>winprojects.xq; \ done @echo "" >>winprojects.xq @echo "for \$$dir in distinct-values(\$$filedump//file/@name/substring-before(substring-after(., '/'), '/'))" >>winprojects.xq @echo "order by \$$dir" >>winprojects.xq @echo "return document{' ', {" >>winprojects.xq @echo " for \$$f in \$$filedump/file[contains(@name, \$$dir)]" >>winprojects.xq @echo " order by \$$f/@name" >>winprojects.xq @echo " return (' ', \$$f)" >>winprojects.xq @echo "} }" >>winprojects.xq XQilla-2.3.4/tests/0000755001725400016040000000000013273141207011061 500000000000000XQilla-2.3.4/tests/xmark/0000755001725400016040000000000013273141207012203 500000000000000XQilla-2.3.4/tests/xmark/xmark.cpp0000644001725400016040000003075413232476424013771 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifdef _MSC_VER #pragma warning(disable: 4786) #include #define snprintf _snprintf #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; #define MAXIMUM_TIME_FOR_QUERIES 0.2 #define MILLISECS_IN_SECS 1000 Sequence query(XQilla &xqilla, DynamicContext *context, const Item::Ptr &ci, string query) { AutoDelete pquery(xqilla.parse(X(query.c_str()), context, 0, XQilla::NO_ADOPT_CONTEXT)); context->setContextItem(ci); return pquery->execute(context)->toSequence(context); } string timestamp(string &dateTime) { time_t tt; time(&tt); struct tm *tm_p; #ifdef _MSC_VER tm_p = localtime(&tt); #else struct tm tm; tm_p = &tm; localtime_r(&tt, &tm); #endif char szDate[256]; sprintf(szDate,"%04d-%02d-%02dT%02d:%02d:%02dZ", tm_p->tm_year+1900, tm_p->tm_mon+1, tm_p->tm_mday, tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec); dateTime = szDate; sprintf(szDate,"%04d%02d%02d%02d%02d%02d", tm_p->tm_year+1900, tm_p->tm_mon+1, tm_p->tm_mday, tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec); return szDate; } class Timer { public: Timer() { reset(); } void reset() { start_ = 0; duration_ = 0; } void start() { start_ = getTime(); } void stop() { unsigned long end = getTime(); duration_ += end - start_; } double durationInSeconds() const { return ((double)duration_ / MILLISECS_IN_SECS); } private: static unsigned long getTime() { return XMLPlatformUtils::getCurrentMillis(); } unsigned long start_; unsigned long duration_; }; class Stats { public: string name; string data; string size; map info; int count; Timer timer; Stats() { name.clear(); data.clear(); size.clear(); reset(); } void reset() { info.clear(); count = 0; timer.reset(); } }; class StatsReporter { public: StatsReporter(string name, bool verbose) : verbose_(verbose), totalTime_(0), textCentricTime_(0), dataCentricTime_(0), multipleDocumentTime_(0), singleDocumentTime_(0), file_((name + timestamp(timestamp_) + ".xml").c_str()) { if(!file_.is_open()) { cerr << "Unable to open statistics file: " << name << timestamp_ << ".xml" << endl; exit(-1); } file_ << "" << endl; if(verbose_) { cout << "*********************************************************************" << endl; cout << "Benchmark Statistics" << endl << endl; ::snprintf(buffer_, 255, " %5s | %5s | %9s | %10s | %5s | %10s ", "Name", "Data", "Size", "Time/s", "Count", "Ops/s"); cout << buffer_ << endl; cout << "-------+-------+-----------+------------+-------+------------" << endl; } } ~StatsReporter() { file_ << "" << endl; file_.close(); if(verbose_) { cout << endl; cout << "Text Centric Total time/s: " << textCentricTime_ << endl; cout << "Data Centric Total time/s: " << dataCentricTime_ << endl; cout << endl; cout << "Multiple Document Total time/s: " << multipleDocumentTime_ << endl; cout << "Single Document Total time/s: " << singleDocumentTime_ << endl; cout << endl; cout << "Total time/s: " << totalTime_ << endl; cout << "*********************************************************************" << endl; } } void reportStats(const Stats &stats) { file_ << " " << endl; file_ << " " << stats.data << "" << endl; file_ << " " << stats.size << "" << endl; for(map::const_iterator i = stats.info.begin(); i != stats.info.end(); ++i) { file_ << " <" << i->first << ">" << i->second << "first << ">" << endl; } file_ << " " << stats.count << "" << endl; file_ << " " << endl; file_ << " " << endl; if(verbose_) { ::snprintf(buffer_, 255, " %5s | %5s | %9s | %10f | %5i | %10f ", stats.name.c_str(), stats.data.c_str(), stats.size.c_str(), stats.timer.durationInSeconds(), stats.count, ((double)stats.count) / stats.timer.durationInSeconds()); cout << buffer_ << endl; totalTime_ += stats.timer.durationInSeconds(); if(stats.data.find("TC") != string::npos) { textCentricTime_ += stats.timer.durationInSeconds(); } else { dataCentricTime_ += stats.timer.durationInSeconds(); } if(stats.data.find("MD") != string::npos) { multipleDocumentTime_ += stats.timer.durationInSeconds(); } else { singleDocumentTime_ += stats.timer.durationInSeconds(); } } } private: bool verbose_; char buffer_[255]; double totalTime_; double textCentricTime_; double dataCentricTime_; double multipleDocumentTime_; double singleDocumentTime_; string timestamp_; ofstream file_; }; class XMarkResolver : public URIResolver { public: vector defaultCollection; virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { for(vector::iterator s = defaultCollection.begin(); s != defaultCollection.end(); ++s) { result.joinSequence(context->resolveDocument(X(s->c_str()), 0, projection)); } return true; } virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return false; } }; void queryBenchmarkData(XQilla &xqilla, DynamicContext *config_context, const Item::Ptr &config, string &dataPath, XQillaConfiguration *conf, Stats &stats, StatsReporter &reporter) { // Find the files XMarkResolver resolver; Result files = query(xqilla, config_context, config, "for $a in /benchmark_data/data_type[@name = '" + stats.data + "']/size[@name = '" + stats.size + "']/file/@name return data($a)"); Item::Ptr file; while((file = files->next(config_context)).notNull()) { string fullpath = dataPath + stats.data + "/" + stats.size + "/" + UTF8(file->asString(config_context)); resolver.defaultCollection.push_back(fullpath); } // Find the queries Result queries = query(xqilla, config_context, config, "for $a at $pos in /benchmark_data/data_type[@name = '" + stats.data + "']/query return (data($a/description), data($a/action), $pos)"); Item::Ptr query; while((query = queries->next(config_context)).notNull()) { stats.reset(); stats.info["description"] = UTF8(query->asString(config_context)); query = queries->next(config_context); string action = UTF8(query->asString(config_context)); query = queries->next(config_context); stats.info["query_index"] = UTF8(query->asString(config_context)); // Replace "input()" with the correct "collection()" function call string::size_type pos = action.find("input()"); while(pos != string::npos) { action = action.replace(pos, 7, "collection()"); pos = action.find("input()"); } stats.info["action"] = ""; try { AutoDelete context(xqilla.createContext(XQilla::XQUERY, conf)); context->registerURIResolver(&resolver, /*adopt*/false); AutoDelete query(xqilla.parse(X(action.c_str()), context, 0, XQilla::NO_ADOPT_CONTEXT)); // Run the query for real, until the total duration is at least MAXIMUM_TIME_FOR_QUERIES while(stats.timer.durationInSeconds() < MAXIMUM_TIME_FOR_QUERIES) { stats.timer.start(); Result result = query->execute(context.get()); Item::Ptr item; while((item = result->next(context.get())).notNull()) { } stats.timer.stop(); ++stats.count; } } catch(XQException& e) { cerr << UTF8(e.getError()) << endl; cerr << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << endl; cerr << "at " << e.getCppFile() << ":" << e.getCppLine() << endl; exit(-1); } catch(DOMException &de) { cerr << "DOMException: " << UTF8(de.getMessage()) << endl; exit(-1); } catch(...) { cerr << "[Unknown exception]"; exit(-1); } stats.name = "query"; reporter.reportStats(stats); } } void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] benchmark_config_file" << endl << endl; cerr << "-h : Show this display" << endl; cerr << "-x : Use the Xerces-C data model (default is the FastXDM)" << endl; } int main(int argc, char *argv[]) { string configPath; string dataPath; XercesConfiguration xercesConf; FastXDMConfiguration fastConf; XQillaConfiguration *conf = &fastConf; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ switch(argv[i][1]) { case 'h': { usage(argv[0]); return 0; } case 'x': { conf = &xercesConf; break; } default: { cerr << "Unknown option: " << argv[i] << endl; usage(argv[0]); return 1; } } } else if(configPath.empty()) { configPath = argv[i]; string::size_type pos = configPath.rfind("/"); if(pos != string::npos) { dataPath = configPath.substr(0, pos + 1); } } else { cerr << "Too many parameters" << endl; usage(argv[0]); return 1; } } if(configPath.empty()) { cerr << "Path to the benchmark configuration not specified"<< endl; usage(argv[0]); return 1; } XQilla xqilla; AutoDelete context(xqilla.createContext()); Sequence seq = context->resolveDocument(X(configPath.c_str())); if(seq.isEmpty()) { cerr << "Benchmark configuration not found"<< endl; usage(argv[0]); return 1; } Item::Ptr config = seq.first(); Sequence data_types = query(xqilla, context, config, "distinct-values(/benchmark_data/data_type/@name)"); Sequence size_types = query(xqilla, context, config, "distinct-values(/benchmark_data/data_type/size/@name)"); StatsReporter reporter("statistics", /*verbose*/true); Stats stats; Item::Ptr data; Result data_result = data_types; while((data = data_result->next(context)).notNull()) { stats.data = UTF8(data->asString(context)); Item::Ptr size; Result size_result = size_types; while((size = size_result->next(context)).notNull()) { stats.size = UTF8(size->asString(context)); queryBenchmarkData(xqilla, context, config, dataPath, conf, stats, reporter); } } return 0; } XQilla-2.3.4/tests/xqts/0000755001725400016040000000000013273141207012060 500000000000000XQilla-2.3.4/tests/xqts/xqts_testsuite/0000755001725400016040000000000013273141207015170 500000000000000XQilla-2.3.4/tests/xqts/xqts_testsuite/errors.xml0000644001725400016040000005047013273140040017146 00000000000000 XQilla-2.3.4/tests/xqts/xqts_testsuite/update_errors.xml0000644001725400016040000002264713273140040020515 00000000000000 XQilla-2.3.4/tests/xqts/xqts_testsuite/xsl_errors.xml0000644001725400016040000044304513232476424020055 00000000000000 XQilla-2.3.4/tests/xqts/runner.cpp0000644001725400016040000005113313232476424014027 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; class XQillaTestSuiteRunner : public TestSuiteRunner, private XMLEntityResolver, private ModuleResolver, private URIResolver { public: XQillaTestSuiteRunner(const string &singleTest, TestSuiteResultListener *results, XQillaConfiguration *conf, XQilla::Language lang, FastXDMConfiguration *fastConf = 0, XercesConfiguration *xercesConf = 0, bool userSetParserLang = false); virtual ~XQillaTestSuiteRunner(); virtual void addSource(const string &id, const string &filename, const string &schema); virtual void addSchema(const string &id, const string &filename, const string &uri); virtual void addModule(const string &id, const string &filename); virtual void addCollectionDoc(const string &id, const string &filename); virtual void startTestGroup(const string &name); virtual void endTestGroup(); virtual void runTestCase(const TestCase &testCase); virtual void detectParserLang(const string &testSuiteNamespace); private: virtual InputSource* resolveEntity(XMLResourceIdentifier* resourceIdentifier); virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context); virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return true; } virtual void detectDefaultConf(); private: XQillaConfiguration *m_conf; FastXDMConfiguration *m_fastConf; XercesConfiguration *m_xercesConf; bool m_userSetParserLang; XQilla::Language m_lang; string m_szSingleTest; string m_szFullTestName; const TestCase* m_pCurTestCase; // id -> filename map m_inputFiles; // schemaURL -> filename map m_schemaFiles; // id -> filename map m_moduleFiles; // id -> list of inputFiles ID map > m_collections; AutoDelete m_docQuery; map m_inputDocs; }; void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cout << "Usage: " << name << " [options] ()?" << endl << endl; cout << "-e : Use the given file as a known error file" << endl; cout << "-E : Output an error file" << endl; cout << "-h : Show this display" << endl; cout << "-r : Output results as XML" << endl; cout << "-u : Parse XQuery Update (also uses Xerces-C data model)" << endl; cout << "-s : Parse XSLT 2.0" << endl; cout << "-f : Parse XQuery Full Text 1.0" << endl; cout << "-3 : Parse XQuery 3.0" << endl; cout << "-x : Use the Xerces-C data model (default is FastXDM)" << endl; } int main(int argc, char *argv[]) { string testSuitePath; string singleTest; string errorFile; string outputErrorFile; bool xmlResults = false; bool userSetParserLang = false; XQilla::Language lang = XQilla::XQUERY; XercesConfiguration xercesConf; FastXDMConfiguration fastConf; XQillaConfiguration *conf = NULL; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ switch(argv[i][1]) { case 'h': { usage(argv[0]); return 0; } case 'e': { i++; if(i == argc) { cout << "Missing argument to option 'e'" << endl; return 1; } errorFile = argv[i]; break; } case 'E': { i++; if(i == argc) { cout << "Missing argument to option 'E'" << endl; return 1; } outputErrorFile = argv[i]; break; } case 'f': { lang = (XQilla::Language)(lang | XQilla::FULLTEXT); userSetParserLang = true; break; } case 'r': { xmlResults = true; break; } case 'u': { lang = (XQilla::Language)(lang | XQilla::UPDATE); userSetParserLang = true; conf = &xercesConf; break; } case '3': { lang = (XQilla::Language)(lang | XQilla::VERSION3); userSetParserLang = true; break; } case 's': { lang = (XQilla::Language)(lang | XQilla::XSLT2); userSetParserLang = true; break; } case 'x': { conf = &xercesConf; break; } default: { cout << "Unknown option: " << argv[i] << endl; usage(argv[0]); return 1; } } } else if(testSuitePath == "") { testSuitePath = argv[i]; } else if(singleTest == "") { singleTest = argv[i]; } else { usage(argv[0]); return 1; } } if(testSuitePath == "") { cout << "Test suite path not specified!" << endl; usage(argv[0]); return 1; } XQillaPlatformUtils::enableExtendedPrecision(false); XQilla xqilla; Janitor results(0); if(xmlResults) { results.reset(new XMLReportResultListener()); XMLReportResultListener *xmlreport = (XMLReportResultListener*)results.get(); xmlreport->setImplementation("XQilla", "2.0"); xmlreport->setOrganization("XQilla", "http://xqilla.sourceforge.net"); if(lang != XQilla::XQUERY_UPDATE) { xmlreport->addImplementationDefinedItem("expressionUnicode", "UTF-16"); xmlreport->addImplementationDefinedItem("implicitTimezone", "Defined by the system clock"); xmlreport->addImplementationDefinedItem("XMLVersion", "1.1"); xmlreport->addImplementationDefinedItem("axes", "Full axis support"); xmlreport->addImplementationDefinedItem("defaultOrderEmpty", "empty least"); xmlreport->addImplementationDefinedItem("normalizationForms", "NFC, NFD, NFKC, NFKD"); xmlreport->addImplementationDefinedItem("docProcessing", "schema validation"); } xmlreport->addFeature("Minimal Conformance", true); if(lang != XQilla::XQUERY_UPDATE) { xmlreport->addFeature("Schema Import", true); xmlreport->addFeature("Schema Validation", true); xmlreport->addFeature("Static Typing", false); xmlreport->addFeature("Static Typing Extensions", false); xmlreport->addFeature("Full Axis", true); xmlreport->addFeature("Module", true); xmlreport->addFeature("Serialization", false); xmlreport->addFeature("Trivial XML Embedding", false); } xmlreport->setSubmittor("John Snelson", "john.snelson@oracle.com"); } else { results.reset(new ConsoleResultListener()); } KnownErrorChecker knownErrors(results.get()); if(errorFile != "" && !knownErrors.loadErrors(errorFile)) { return 1; } XQillaTestSuiteRunner runner(singleTest, &knownErrors, conf, lang, &fastConf, &xercesConf, userSetParserLang); TestSuiteParser parser(testSuitePath, &runner); parser.run(); bool passed = true; if(xmlResults) { ((XMLReportResultListener*)results.get())->printReport(); } else { passed = ((ConsoleResultListener*)results.get())->printReport(); } if(errorFile != "") { passed = knownErrors.printReport(); } if(outputErrorFile != "" && !knownErrors.saveErrors(outputErrorFile)) { cout << "Unable to open error file: " << outputErrorFile << endl; return 1; } return passed ? 0 : 1; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQillaTestSuiteRunner::XQillaTestSuiteRunner(const string &singleTest, TestSuiteResultListener *results, XQillaConfiguration *conf, XQilla::Language lang, FastXDMConfiguration *fastConf, XercesConfiguration *xercesConf, bool userSetParserLang) : TestSuiteRunner(results), m_conf(conf), m_fastConf(fastConf), m_xercesConf(xercesConf), m_userSetParserLang(userSetParserLang), m_lang(lang), m_szSingleTest(singleTest), m_pCurTestCase(NULL), m_docQuery(0) { } XQillaTestSuiteRunner::~XQillaTestSuiteRunner() { } void XQillaTestSuiteRunner::startTestGroup(const string &name) { if(m_szFullTestName != "") m_szFullTestName += ":"; m_szFullTestName += name; m_results->startTestGroup(name); } void XQillaTestSuiteRunner::endTestGroup() { string::size_type nColonPos = m_szFullTestName.find_last_of(":"); if(nColonPos != string::npos) m_szFullTestName = string(m_szFullTestName.c_str(), nColonPos); else m_szFullTestName = ""; m_results->endTestGroup(); } void XQillaTestSuiteRunner::addSource(const string &id, const string &filename, const string &schema) { m_inputFiles[id] = filename; } void XQillaTestSuiteRunner::addSchema(const string &id, const string &filename, const string &uri) { m_schemaFiles[uri] = filename; } void XQillaTestSuiteRunner::addModule(const string &id, const string &filename) { m_moduleFiles[id] = filename; } void XQillaTestSuiteRunner::addCollectionDoc(const string &id, const string &filename) { m_collections[id].push_back(filename); } void XQillaTestSuiteRunner::runTestCase(const TestCase &testCase) { if(m_szSingleTest != "" && testCase.name.find(m_szSingleTest) == string::npos && m_szFullTestName.find(m_szSingleTest) == string::npos) { m_results->reportSkip(testCase, "Not run"); return; } if(m_results->isSkippedTest(testCase.name)) { m_results->reportSkip(testCase, "Skip"); return; } if(m_szFullTestName.substr(0,21)=="Optional:StaticTyping" && !testCase.updateTest) { m_results->reportSkip(testCase, "Static typing not supported"); return; } if(m_szFullTestName.substr(0,26)=="Optional:TrivialEmbedding") { m_results->reportSkip(testCase, "TrivialEmbedding not supported"); return; } XQilla xqilla; m_pCurTestCase=&testCase; DynamicContext *context = xqilla.createContext(m_lang, m_conf); AutoDelete contextGuard(context); try { context->setImplicitTimezone(context->getItemFactory()-> createDayTimeDuration(X("PT0S"), context)); context->setXMLEntityResolver(this); context->setModuleResolver(this); context->registerURIResolver(this, /*adopt*/false); if(testCase.xsltTest || testCase.updateTest) context->setBaseURI(X(testCase.queryURL.c_str())); if(testCase.updateTest) { if(testCase.stateTime == 0) { m_inputDocs.clear(); m_docQuery.set(0); } else if(m_docQuery.get() == 0) { m_results->reportSkip(testCase, "State 0 failed"); return; } } XQQuery *parsedQuery = xqilla.parseFromURI(X(testCase.queryURL.c_str()), contextGuard.adopt()); AutoDelete parsedQueryGuard(parsedQuery); if(testCase.updateTest && testCase.stateTime == 0) { m_docQuery.set(parsedQuery); parsedQueryGuard.adopt(); } map::const_iterator v; for(v=testCase.extraVars.begin();v!=testCase.extraVars.end();v++) { AutoDelete pInnerQuery(xqilla.parseFromURI(X(v->second.c_str()))); AutoDelete ictxt(context->createModuleDynamicContext(pInnerQuery->getStaticContext())); Sequence doc=pInnerQuery->execute(ictxt)->toSequence(ictxt); context->setExternalVariable(X(v->first.c_str()), doc); } for(v=testCase.inputVars.begin();v!=testCase.inputVars.end();v++) { string filename = v->second; Sequence doc; if(testCase.updateTest) { if(m_inputDocs.find(v->first) != m_inputDocs.end()) { doc = m_inputDocs[v->first]; } else { doc = const_cast(m_docQuery->getStaticContext())-> resolveDocument(X(filename.c_str()), 0); m_inputDocs[v->first] = doc; } } else { doc = context->resolveDocument(X(filename.c_str()), 0); } context->setExternalVariable(X(v->first.c_str()), doc); } for(v=testCase.inputURIVars.begin();v!=testCase.inputURIVars.end();v++) { Item::Ptr uri = context->getItemFactory()->createString(X(v->second.c_str()),context); context->setExternalVariable(X(v->first.c_str()), uri); } for(v=testCase.inputParams.begin();v!=testCase.inputParams.end();v++) { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(X(v->second.c_str()),context); context->setExternalVariable(X(v->first.c_str()), value); } if(testCase.templateName != "") { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(X(testCase.templateName.c_str()),context); context->setExternalVariable(X("http://xqilla.sourceforge.net/Functions"), X("name"), value); } if(!testCase.contextItem.empty()) { Sequence doc=context->resolveDocument(X(testCase.contextItem.c_str()), 0); context->setContextItem(doc.first()); } context->setContextPosition(1); context->setContextSize(1); time_t curTime; context->setCurrentTime(time(&curTime)); // Emulate the XQuery serialization spec MemBufFormatTarget target; EventSerializer writer("UTF-8", "1.1", &target, context->getMemoryManager()); NSFixupFilter nsfilter(&writer, context->getMemoryManager()); ContentSequenceFilter csfilter(&nsfilter); parsedQuery->execute(&csfilter, context); testResults(testCase, (char*)target.getRawBuffer()); } catch(XQException& e) { ostringstream oss; // if(e.getXQueryLine() == 0) { // oss << "No line number:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else if(e.getXQueryColumn() == 0) { // oss << "No column number:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else if(e.getXQueryFile() == 0) { // oss << "No file name:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else { oss << UTF8(e.getError()) << std::endl; oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; testErrors(testCase, oss.str()); // } } catch(DOMException &de) { testErrors(testCase, string("DOMException: ") + UTF8(de.getMessage())); } catch(...) { testErrors(testCase, "[Unknown exception]"); } m_pCurTestCase=NULL; } InputSource* XQillaTestSuiteRunner::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { const XMLCh* systemId=resourceIdentifier->getSystemId(); if((systemId==NULL || *systemId==0) && resourceIdentifier->getResourceIdentifierType()==XMLResourceIdentifier::SchemaGrammar) { map::const_iterator i = m_schemaFiles.find(UTF8(resourceIdentifier->getNameSpace())); if(i != m_schemaFiles.end()) { return new URLInputSource(X(i->second.c_str())); } } else if(resourceIdentifier->getResourceIdentifierType()==XMLResourceIdentifier::UnKnown) { list >::const_iterator i; for(i=m_pCurTestCase->moduleFiles.begin(); i!=m_pCurTestCase->moduleFiles.end(); i++) { if(i->first == UTF8(resourceIdentifier->getNameSpace()) && i->second == UTF8(resourceIdentifier->getSystemId())) { map::const_iterator i2 = m_moduleFiles.find(i->second); if(i2 != m_moduleFiles.end()) { string file=i2->second+".xq"; return new URLInputSource(X(file.c_str())); } } } } // Don't hit the W3C for the XHTML DTD! if(string("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd") == UTF8(resourceIdentifier->getSystemId())) { return new MemBufInputSource((XMLByte*)"", 0, "", false); } return NULL; } bool XQillaTestSuiteRunner::resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) { bool bFound=false; list >::const_iterator i; for(i=m_pCurTestCase->moduleFiles.begin(); i!=m_pCurTestCase->moduleFiles.end(); i++) { if(i->first == UTF8(nsUri)) { result->push_back(context->getMemoryManager()->getPooledString(i->second.c_str())); bFound=true; } } return bFound; } bool XQillaTestSuiteRunner::resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { std::map::iterator it=m_inputFiles.find(UTF8(uri)); if(it!=m_inputFiles.end()) { result=context->resolveDocument(X(it->second.c_str()), 0, projection); return true; } return false; } bool XQillaTestSuiteRunner::resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { std::map >::iterator it=m_collections.find(UTF8(uri)); if(it!=m_collections.end()) { for(std::list::iterator s=it->second.begin();s!=it->second.end();s++) { result.joinSequence(context->resolveDocument(X(s->c_str()), 0, projection)); } return true; } return false; } bool XQillaTestSuiteRunner::resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { if(!m_pCurTestCase->defaultCollection.empty()) return resolveCollection(result, X(m_pCurTestCase->defaultCollection.c_str()), context, projection); return false; } void XQillaTestSuiteRunner::detectParserLang(const string &testSuiteNS) { // if the user specified the parser language, don't do auto-detection if(m_userSetParserLang){ detectDefaultConf(); m_lang = (XQilla::Language)(m_lang | XQilla::EXTENSIONS); return; } if(testSuiteNS == "http://www.w3.org/2005/02/query-test-XQTSCatalog") m_lang = XQilla::XQUERY; else if(testSuiteNS == "http://www.w3.org/2005/02/query-test-update") m_lang = XQilla::XQUERY_UPDATE; else if(testSuiteNS == "http://www.w3.org/2005/02/query-test-full-text") m_lang = XQilla::XQUERY_FULLTEXT; else if(testSuiteNS == "http://www.w3.org/2005/05/xslt20-test-catalog") m_lang = XQilla::XSLT2; detectDefaultConf(); m_lang = (XQilla::Language)(m_lang | XQilla::EXTENSIONS); } void XQillaTestSuiteRunner::detectDefaultConf() { // if the user has set the m_conf, do nothing if(m_conf != NULL) return; if(m_lang & XQilla::UPDATE){ m_conf = m_xercesConf; } else { m_conf = m_fastConf; } } XQilla-2.3.4/README0000644001725400016040000000047013273140037010520 00000000000000This is XQilla, a C++ implementation of XQuery and XPath 2.0 based on Xerces-C. Build Instructions ------------------ 1. Download a source distribution of Xerces-C 3.2.1 2. Build Xerces-C cd xerces-c-3.2.1/ ./configure make 4. Build XQilla cd xqilla/ ./configure --with-xerces=`pwd`/../xerces-c-3.2.1/ make XQilla-2.3.4/TODO0000644001725400016040000000337613273140037010340 00000000000000Features -------- Complete XQuery Fulltext support XQueryP support XQuery 1.1 Grouping support Complete XSLT 2.0 support Support pre-parsed modules Improve exceptions heirachy, and implement XQuery 1.1 try/catch Implement EXSLT math functions Optimization ------------ Hash map implementation of distinct-values() nested loop elimination (group recognition, join recognition) common sub-expression extraction faster modifiable data model Document projection for recursive functions pull event execution Remove and free unused global variables Better static typing esp. for higher order functions Infrastructure -------------- query plan output using event API string pool that returns numeric identifier support for UTF-8 execution? extract basic schema types from Xerces-C abstract schema type access (no direct access to Xerces objects) Improve MAPM concurrency Windows -- re-enable warning 4996 (xqilla_config.h) and address the "unsafe" warnings for use of strcat, strcpy, etc Write query plans to byte code, and execute the byte code in a virtual machine Save out parsed query to disk QA -- fix UTF-16 bugs fix XQTS bugs new test suite test XQuery Fulltext Fix ATDoubleOrDerivedImpl and ATFloatOrDerivedImpl to use double and float types Make xs:decimal infinite length Fix numeric output methods to use variable size buffers Fix module import to work correctly, including: - using the correct static context - returning known schema types - checking import circularities correctly Query Prepare Optimization -------------------------- Rewrite DatatypeLookup to be cheaper and more efficient - maybe write our own primitive type handling? DocumentCacheImpl is expensive to create, maybe don't always create a scanner? Maybe handle primitive schema types ourselves? XQilla-2.3.4/include/0000755001725400016040000000000013273141210011334 500000000000000XQilla-2.3.4/include/xqilla/0000755001725400016040000000000013273141207012634 500000000000000XQilla-2.3.4/include/xqilla/parser/0000755001725400016040000000000013273141210014122 500000000000000XQilla-2.3.4/include/xqilla/parser/QName.hpp0000644001725400016040000000273713273140037015573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QNAME_HPP #define _QNAME_HPP #include #include #include #include /* Represents a Qualified name. Built in the parser. */ class XQILLA_API QualifiedName { public: QualifiedName(const XMLCh* qualifiedName, XPath2MemoryManager* memMgr); // This constructor should be used on persistent strings (no memory manager involved) QualifiedName(const XMLCh* prefix, const XMLCh* name); QualifiedName(const XMLCh* fullName); ~QualifiedName(); const XMLCh* getPrefix() const; const XMLCh* getName() const; const XMLCh* getFullName(XPath2MemoryManager* memMgr) const; private: const XMLCh* _prefix,*_name; bool _bDeleteStrings; }; #endif XQilla-2.3.4/include/xqilla/axis/0000755001725400016040000000000013273141210013572 500000000000000XQilla-2.3.4/include/xqilla/axis/NodeTest.hpp0000644001725400016040000001103313273140037015754 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NODETEST_HPP #define _NODETEST_HPP #include #include #include #include class StaticContext; class DynamicContext; /** * This class represents a NodeTest production from the grammar, * and provides methods for filtering a Result containing Node items, * and determining if a single Item matches. */ class XQILLA_API NodeTest { public: NodeTest(); NodeTest(const XMLCh *nodeType, const XMLCh *uri = 0, const XMLCh *name = 0); NodeTest(const NodeTest *other); virtual ~NodeTest(); /** Method for returning arbitrary interfaces from the implementations */ virtual void *getInterface(const XMLCh *name) const; /// Filters the given Result, returning only Items that match the NodeTest Result filterResult(const Result &toFilter, const LocationInfo *info) const; ///check if a node has to be placed in the result set bool filterNode(Node::Ptr node, DynamicContext* context) const; void staticResolution(StaticContext *context, const LocationInfo *location); ///gets the sequence type used to match the nodes SequenceType::ItemType* getItemType() const; ///set function for private member void setItemType(SequenceType::ItemType* type); ///gets the name of the node we are selecting const XMLCh* getNodeName() const; ///set function for private member void setNodeName(const XMLCh* name); ///gets the uri of the node we are selecting const XMLCh* getNodeUri() const; ///set function for private member void setNodeUri(const XMLCh* uri); ///gets the prefix of the node we are selecting const XMLCh* getNodePrefix() const; ///set function for private member void setNodePrefix(const XMLCh* prefix); ///returns whether the prefix has been set (instead of the uri) bool isNodePrefixSet() const; ///gets the node type we are selecting const XMLCh *getNodeType() const; ///set node type looked for void setNodeType(const XMLCh *type); ///retuns whether the type has been set in this NavStep bool isNodeTypeSet() const; ///returns true if the Node Name ia a wildcard bool getNameWildcard() const; ///sets the wildcard nodeName bool void setNameWildcard(bool value = true); ///returns true if the Node prefix ia a wildcard bool getNamespaceWildcard() const; ///sets the prefix wildcard bool void setNamespaceWildcard(bool value = true); ///returns true if the type is a wildcard bool getTypeWildcard() const; ///sets the type wildcard bool void setTypeWildcard(bool value = true); /// returns true if the following step is a child axis (for optimisation reasons) bool getHasChildren() const; /// sets whether the following step is a child axis void setHasChildren(bool value = true); void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; bool isSubsetOf(const NodeTest *o) const; static bool isSubsetOf(const NodeTest *a, const NodeTest *b); protected: ///check a node's type against _type, considers wildcard bool checkNodeType(Node::Ptr node) const; ///check a node's name against _name, considers wildcard bool checkNodeName(Node::Ptr node, const DynamicContext *context) const; /** * Performs filtering based on type or name. */ class XQILLA_API FilterResult : public ResultImpl { public: FilterResult(const LocationInfo *info, const Result &toFilter, const NodeTest *nodeTest); virtual ~FilterResult() {} Item::Ptr next(DynamicContext *context); protected: Result toFilter_; const NodeTest *nodeTest_; }; protected: const XMLCh* _name,*_uri,*_prefix; const XMLCh* _type; bool _wildcardName, _wildcardNamespace, _wildcardType, _usePrefix, _hasChildren; SequenceType::ItemType* _itemType; }; #endif XQilla-2.3.4/include/xqilla/functions/0000755001725400016040000000000013273141210014636 500000000000000XQilla-2.3.4/include/xqilla/functions/FunctionContains.hpp0000644001725400016040000000234413273140037020564 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCONTAINS_HPP #define _FUNCTIONCONTAINS_HPP #include /** Contains function. */ class XQILLA_API FunctionContains : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionContains(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTimezoneFromDateTime.hpp0000644001725400016040000000304413273140037023037 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMDATETIME_HPP #define _FUNCTIONGETTIMEZONEFROMDATETIME_HPP #include #include /** * Getter function for the timezone component of dateTime * * timezone-from-dateTime(dateTime $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionTimezoneFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns a string representing the timezone component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMDATETIME_HPP XQilla-2.3.4/include/xqilla/functions/FunctionDistinctValues.hpp0000644001725400016040000000242213273140037021744 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDISTINCTVALUES_HPP #define _FUNCTIONDISTINCTVALUES_HPP #include #include class XQILLA_API FunctionDistinctValues : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDistinctValues(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAcos.hpp0000644001725400016040000000216013273140037017667 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONACOS_HPP #define _FUNCTIONACOS_HPP #include #include class XQILLA_API FunctionAcos : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAcos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionLookup.hpp0000644001725400016040000000616413273140037020263 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FLOOKUP_HPP #define _FLOOKUP_HPP #include #include #include #include #include class FuncFactory; class XPath2MemoryManager; class ExternalFunction; class DynamicContext; class XQILLA_API FunctionLookup { public: FunctionLookup(XPath2MemoryManager* memMgr); ~FunctionLookup(); ///adds a function to the custom function table void insertFunction(FuncFactory *func); /// Remove a function void removeFunction(FuncFactory *func); ///returns the approriate Function object ASTNode* lookUpFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const; ///adds a function to the external function table void insertExternalFunction(const ExternalFunction *func); ///returns the approriate ExternalFunction object const ExternalFunction *lookUpExternalFunction(const XMLCh* URI, const XMLCh* fname, size_t numArgs) const; void copyExternalFunctionsTo(DynamicContext *context) const; void insertUpdateFunctions(XPath2MemoryManager *memMgr); private: XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< FuncFactory > _funcTable; XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< const ExternalFunction > _exFuncTable; public: // static (global table interfaces) static void insertGlobalFunction(FuncFactory *func); static void insertGlobalExternalFunction(const ExternalFunction *func); // next two look in global table first, then the contextTable static ASTNode* lookUpGlobalFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr, const FunctionLookup *contextTable); static const ExternalFunction *lookUpGlobalExternalFunction(const XMLCh* URI, const XMLCh* fname, size_t numArgs, const FunctionLookup *contextTable); static XPath2MemoryManager *getMemoryManager(); static void initialize(); static void terminate(); private: static FunctionLookup *g_globalFunctionTable; static XPath2MemoryManager *g_memMgr; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionReplace.hpp0000644001725400016040000000515513273140037020364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONREPLACE_HPP #define _FUNCTIONREPLACE_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RuntimeException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END /** * Returns the string that is obtained by replacing all non-overlapping substrings of $input * that match the given $pattern with an occurrence of the $replacement string. * * xf:replace(string? $input, string $pattern, string $replacement) => string? * xf:replace(string? $input, string $pattern, string $replacement, * string $flags) => string? */ class XQILLA_API FunctionReplace : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionReplace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** * Returns $input with non-overlapping matches to $pattern * replaced by $replacement */ Sequence createSequence(DynamicContext* context, int flags=0) const; static const XMLCh *replace(const XMLCh *input, const XMLCh *pattern, const XMLCh *replacement, const XMLCh *options = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); static const XMLCh *replace(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp, const XMLCh *replacement, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); private: //helper functions void processRuntimeException(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException &e, const char* sourceMsg) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionMonthFromDateTime.hpp0000644001725400016040000000244213273140037022333 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHFROMDATETIME_HPP #define _FUNCTIONGETMONTHFROMDATETIME_HPP #include #include class XQILLA_API FunctionMonthFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMonthFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionId.hpp0000644001725400016040000000243113273140037017337 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONID_HPP #define _FUNCTIONID_HPP #include #include #include #include class XQILLA_API FunctionId : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionId(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDocument.hpp0000644001725400016040000000270013273140037020560 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOCUMENT_HPP #define _FUNCTIONDOCUMENT_HPP #include #include class QueryPathNode; class XQILLA_API FunctionDocument : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocument(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTan.hpp0000644001725400016040000000215413273140037017527 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTAN_HPP #define _FUNCTIONTAN_HPP #include #include class XQILLA_API FunctionTan : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionIdref.hpp0000644001725400016040000000244513273140037020041 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONIDREF_HPP #define _FUNCTIONIDREF_HPP #include #include #include #include class XQILLA_API FunctionIdref : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionIdref(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDocAvailable.hpp0000644001725400016040000000243213273140037021312 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOCAVAILABLE_HPP #define _FUNCTIONDOCAVAILABLE_HPP #include class XQILLA_API FunctionDocAvailable : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocAvailable(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionFunctionName.hpp0000644001725400016040000000231113273140037021366 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONFUNCTIONNAME_HPP #define _FUNCTIONFUNCTIONNAME_HPP #include #include class XQILLA_API FunctionFunctionName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFunctionName(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionImplicitTimezone.hpp0000644001725400016040000000235113273140037022271 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONIMPLICITTIMEZONE_HPP #define _FUNCTIONIMPLICITTIMEZONE_HPP #include class XQILLA_API FunctionImplicitTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionImplicitTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionRegexGroup.hpp0000644001725400016040000000237713273140037021103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONREGEXGROUP_HPP #define _FUNCTIONREGEXGROUP_HPP #include #include class XQILLA_API FunctionRegexGroup : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRegexGroup(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNilled.hpp0000644001725400016040000000226013273140037020212 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNILLED_HPP #define _FUNCTIONNILLED_HPP #include #include class XQILLA_API FunctionNilled : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNilled(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionMonthsFromDuration.hpp0000644001725400016040000000307013273140037022605 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP #define _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP #include #include /** * Getter function for the months component of yearMonthDuration. * * months-from-duration(yearMonthDuration? $srcval) => integer? */ class XQILLA_API FunctionMonthsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionMonthsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the months component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP XQilla-2.3.4/include/xqilla/functions/RegExpFunction.hpp0000644001725400016040000000415713273140037020204 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REGEXPFUNCTION_HPP #define _REGEXPFUNCTION_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END class XQILLA_API RegExpFunction: public XQFunction { public: RegExpFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); //getting a pre-compiled regular expression const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* getRegExp() const { return regExp_; }; //this method is needed for copying a pre-compiled regular expression, //it copies @pattern_ and @options_ and then compiles a new regular expression //@source is the regexp function which we copy a regexp from virtual void copyRegExp(RegExpFunction *source, XPath2MemoryManager* memMgr); protected: //if a regular expession is a constant, then we will store a compiled regexp here, //and also pattern, and options if presented. We need those values when copying this function const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp_; const XMLCh *pattern_; const XMLCh *options_; //helper functions virtual void checkRegexpOpts(const XMLCh* opts, const char* sourceMsg) const; virtual void processParseException(XERCES_CPP_NAMESPACE_QUALIFIER ParseException &e, const char* sourceMsg, XPath2MemoryManager* memMgr) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDocumentURI.hpp0000644001725400016040000000251313273140037021142 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* document-uri function */ #ifndef _FUNCTIONDOCUMENTURI_HPP #define _FUNCTIONDOCUMENTURI_HPP #include #include class Sequence; /* document-uri function */ class XQILLA_API FunctionDocumentURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocumentURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /* returns the document-URI property of the node */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCos.hpp0000644001725400016040000000215413273140037017531 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCOS_HPP #define _FUNCTIONCOS_HPP #include #include class XQILLA_API FunctionCos : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTimezoneFromTime.hpp0000644001725400016040000000276513273140037022252 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMTIME_HPP #define _FUNCTIONGETTIMEZONEFROMTIME_HPP #include #include /** * Getter function for timezone component of time. * * xf:timezone-from-time(time? $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionTimezoneFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the string representing the timezone in the value of $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMTIME_HPP XQilla-2.3.4/include/xqilla/functions/FunctionYearsFromDuration.hpp0000644001725400016040000000306013273140037022417 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP #define _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP #include #include /** * Getter function for the years component of yearMonthDuration * * years-from-duration(yearMonthDuration? $srcval) => integer? */ class XQILLA_API FunctionYearsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionYearsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the years component in the value of * $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP XQilla-2.3.4/include/xqilla/functions/FunctionHead.hpp0000644001725400016040000000221313273140037017642 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONHEAD_HPP #define _FUNCTIONHEAD_HPP #include #include class XQILLA_API FunctionHead : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHead(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSecondsFromDateTime.hpp0000644001725400016040000000245213273140037022645 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETSECONDSFROMDATETIME_HPP #define _FUNCTIONGETSECONDSFROMDATETIME_HPP #include #include class XQILLA_API FunctionSecondsFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAtan.hpp0000644001725400016040000000216013273140037017665 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONATAN_HPP #define _FUNCTIONATAN_HPP #include #include class XQILLA_API FunctionAtan : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAtan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionParseJSON.hpp0000644001725400016040000000307513273140037020554 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEJSON_HPP #define _FUNCTIONPARSEJSON_HPP #include class QueryPathNode; class XQILLA_API FunctionParseJSON : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseJSON(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } static void parseJSON(const XMLCh *jsonString, EventHandler *handler, DynamicContext *context, const LocationInfo *location); private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionUpperCase.hpp0000644001725400016040000000271313273140037020675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUPPERCASE_HPP #define _FUNCTIONUPPERCASE_HPP #include #include /** * Returns the given value after translating every lower-case letter to its * upper-case correspondent. * * xf:upper-case(string? $srcval) => string? * */ class XQILLA_API FunctionUpperCase : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionUpperCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the upper-case string. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONUPPERCASE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionRound.hpp0000644001725400016040000000237513273140037020101 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:round(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONROUND_HPP #define _FUNCTIONROUND_HPP #include #include class XQILLA_API FunctionRound : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRound(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROUND_HPP XQilla-2.3.4/include/xqilla/functions/FunctionFunctionArity.hpp0000644001725400016040000000242213273140037021601 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONFUNCTIONARITY_HPP #define _FUNCTIONFUNCTIONARITY_HPP #include #include class XQILLA_API FunctionFunctionArity : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFunctionArity(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionName.hpp0000644001725400016040000000242013273140037017661 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNAME_HPP #define _FUNCTIONNAME_HPP #include #include #include class XQILLA_API FunctionName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionExp.hpp0000644001725400016040000000215413273140037017541 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEXP_HPP #define _FUNCTIONEXP_HPP #include #include class XQILLA_API FunctionExp : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionExp(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionMinutesFromDateTime.hpp0000644001725400016040000000245213273140037022673 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMDATETIME_HPP #define _FUNCTIONGETMINUTESFROMDATETIME_HPP #include #include class XQILLA_API FunctionMinutesFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMinutesFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNormalizeSpace.hpp0000644001725400016040000000234113273140037021717 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNORMALIZESPACE_HPP #define _FUNCTIONNORMALIZESPACE_HPP #include class XQILLA_API FunctionNormalizeSpace : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNormalizeSpace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionStringToCodepoints.hpp0000644001725400016040000000250613273140037022607 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* StringToCodepoints function */ #ifndef _FUNCTIONSTRINGTOCODEPOINTS_HPP #define _FUNCTIONSTRINGTOCODEPOINTS_HPP #include #include /** StringToCodepoints function */ class XQILLA_API FunctionStringToCodepoints : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStringToCodepoints(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCONTAINS_HPP XQilla-2.3.4/include/xqilla/functions/FunctionCodepointsToString.hpp0000644001725400016040000000270313273140037022606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* codepoints-to-string function */ #ifndef _FUNCTIONCODEPOINTSTOSTRING_HPP #define _FUNCTIONCODEPOINTSTOSTRING_HPP #include #include /** codepoints-to-string function */ class XQILLA_API FunctionCodepointsToString : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. FunctionCodepointsToString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); protected: /** takes a series of integers (codepoints) and turns them into a unicode string */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCODEPOINTSTOSTRING_HPP XQilla-2.3.4/include/xqilla/functions/FunctionAdjustTimeToTimezone.hpp0000644001725400016040000000244613273140037023100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTTIMETOTIMEZONE_HPP #define _FUNCTIONADJUSTTIMETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustTimeToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSerializeJSON.hpp0000644001725400016040000000223413273140037021425 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSERIALIZEJSON_HPP #define _FUNCTIONSERIALIZEJSON_HPP #include "XQillaFunction.hpp" class XQILLA_API FunctionSerializeJSON : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSerializeJSON(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCompare.hpp0000644001725400016040000000234713273140037020377 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Compare function */ #ifndef _FUNCTIONCOMPARE_HPP #define _FUNCTIONCOMPARE_HPP #include #include class XQILLA_API FunctionCompare : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCompare(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCOMPARE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionQName.hpp0000644001725400016040000000250213273140037020003 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QName function */ #ifndef _FUNCTIONQNAME_HPP #define _FUNCTIONQNAME_HPP #include #include /** QName constructor function. */ class XQILLA_API FunctionQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Given a uri and a name, it returns an expanded QName **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONQNAME_HPP XQilla-2.3.4/include/xqilla/functions/FunctionHoursFromDateTime.hpp0000644001725400016040000000244213273140037022346 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMDATETIME_HPP #define _FUNCTIONGETHOURSFROMDATETIME_HPP #include #include class XQILLA_API FunctionHoursFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHoursFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDayFromDateTime.hpp0000644001725400016040000000243213273140037021762 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYFROMDATETIME_HPP #define _FUNCTIONGETDAYFROMDATETIME_HPP #include #include class XQILLA_API FunctionDayFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDayFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionHoursFromDuration.hpp0000644001725400016040000000303513273140037022436 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP #include #include /** * Getter for the hours component of dayTimeDuration. * * hours-from-duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionHoursFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionHoursFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the hours component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP XQilla-2.3.4/include/xqilla/functions/FunctionParseHTML.hpp0000644001725400016040000000306713273140037020550 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEHTML_HPP #define _FUNCTIONPARSEHTML_HPP #include class QueryPathNode; class XQILLA_API FunctionParseHTML : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseHTML(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } static void parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location); private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionBaseURI.hpp0000644001725400016040000000243213273140037020236 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONBASEURI_HPP #define _FUNCTIONBASEURI_HPP #include #include #include class XQILLA_API FunctionBaseURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionParseXML.hpp0000644001725400016040000000261713273140037020444 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEXML_HPP #define _FUNCTIONPARSEXML_HPP #include "XQillaFunction.hpp" class QueryPathNode; class XQILLA_API FunctionParseXML : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseXML(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/ExternalFunction.hpp0000644001725400016040000000372213273140037020571 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXTERNALFUNCTION_HPP #define _EXTERNALFUNCTION_HPP #include #include class Result; class PendingUpdateList; class DynamicContext; class XPath2MemoryManager; class XQILLA_API ExternalFunction { public: class XQILLA_API Arguments { public: virtual ~Arguments() {} /// Return the result for the argument index specified. Arguments indexes are zero based. virtual Result getArgument(size_t index, DynamicContext *context) const = 0; }; virtual ~ExternalFunction() {} const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const XMLCh *getURINameHash() const { return uriName_; } unsigned int getNumberOfArguments() const { return numArgs_; } /// Execute the (non-updating) function virtual Result execute(const Arguments *args, DynamicContext *context) const; /// Execute the updating function virtual PendingUpdateList executeUpdate(const Arguments *args, DynamicContext *context) const; protected: ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm); const XMLCh *uri_; const XMLCh *name_; const XMLCh *uriName_; unsigned int numArgs_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSecondsFromTime.hpp0000644001725400016040000000243213273140037022045 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETSECONDSFROMTIME_HPP #define _FUNCTIONGETSECONDSFROMTIME_HPP #include #include class XQILLA_API FunctionSecondsFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionMatches.hpp0000644001725400016040000000330513273140037020370 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONMATCHES_HPP #define _FUNCTIONMATCHES_HPP #include XERCES_CPP_NAMESPACE_BEGIN class XMLException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END class XQILLA_API FunctionMatches : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMatches(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; static bool matches(const XMLCh *input, const XMLCh *pattern, const XMLCh *options = 0); static bool matches(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* regExp); private: void processXMLException(XERCES_CPP_NAMESPACE_QUALIFIER XMLException &e, const char* sourceMsg) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSqrt.hpp0000644001725400016040000000216013273140037017733 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSQRT_HPP #define _FUNCTIONSQRT_HPP #include #include class XQILLA_API FunctionSqrt : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSqrt(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNamespaceURIFromQName.hpp0000644001725400016040000000257413273140037023035 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * xf:namespace-uri-from-QName function */ #ifndef _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP #define _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP #include #include class XQILLA_API FunctionNamespaceURIFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNamespaceURIFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the namespace part of a QName*/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP XQilla-2.3.4/include/xqilla/functions/FunctionDayFromDate.hpp0000644001725400016040000000240713273140037021145 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYFROMDATE_HPP #define _FUNCTIONGETDAYFROMDATE_HPP #include #include class XQILLA_API FunctionDayFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDayFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCurrentTime.hpp0000644001725400016040000000241113273140037021242 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCURRENTTIME_HPP #define _FUNCTIONCURRENTTIME_HPP #include #include class XQILLA_API FunctionCurrentTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTail.hpp0000644001725400016040000000305413273140037017676 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTAIL_HPP #define _FUNCTIONTAIL_HPP #include #include #include class XQILLA_API FunctionTail : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTail(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; class XQILLA_API FunctionDrop : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDrop(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionStartsWith.hpp0000644001725400016040000000232213273140037021116 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTARTSWITH_HPP #define _FUNCTIONSTARTSWITH_HPP #include class XQILLA_API FunctionStartsWith : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStartsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNot.hpp0000644001725400016040000000243513273140037017547 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNOT_HPP #define _FUNCTIONNOT_HPP #include #include class XQILLA_API FunctionNot : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionLang.hpp0000644001725400016040000000235013273140037017664 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLANG_HPP #define _FUNCTIONLANG_HPP #include #include class XQILLA_API FunctionLang : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLang(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionStaticBaseURI.hpp0000644001725400016040000000255313273140037021412 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* static-base-uri function */ #ifndef _FUNCTIONSTATICBASEURI_HPP #define _FUNCTIONSTATICBASEURI_HPP #include #include class XQILLA_API FunctionStaticBaseURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStaticBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDoc.hpp0000644001725400016040000000265413273140037017517 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOC_HPP #define _FUNCTIONDOC_HPP #include #include class QueryPathNode; class XQILLA_API FunctionDoc : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDoc(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionRoot.hpp0000644001725400016040000000305713273140037017733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Root function */ #ifndef _FUNCTIONROOT_HPP #define _FUNCTIONROOT_HPP #include #include class XPath2MemoryManager; /** For function. */ class XQILLA_API FunctionRoot : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRoot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Called during static analysis to determine if statically correct. * Performs constant folding if the function has an argument, and it * is constant. */ virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROOT_HPP XQilla-2.3.4/include/xqilla/functions/FunctionMinutesFromDuration.hpp0000644001725400016040000000307013273140037022761 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP #include #include /** * Getter function for the minutes component of dayTimeDuration. * * minutes-from-duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionMinutesFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionMinutesFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the minutes component in the value * of $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP XQilla-2.3.4/include/xqilla/functions/FunctionMinutesFromTime.hpp0000644001725400016040000000242713273140037022077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMTIME_HPP #define _FUNCTIONGETMINUTESFROMTIME_HPP #include #include class XQILLA_API FunctionMinutesFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMinutesFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionLocalNameFromQName.hpp0000644001725400016040000000270513273140037022410 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * fn:local-name-from-QName function */ #ifndef _FUNCTIONGETLOCALNAMEFROMQNAME_HPP #define _FUNCTIONGETLOCALNAMEFROMQNAME_HPP #include #include #include /** Name function */ class XQILLA_API FunctionLocalNameFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLocalNameFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the local-name part of a QName, eg for foo:bar it returns bar */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETLOCALNAMEFROMQNAME_HPP XQilla-2.3.4/include/xqilla/functions/FuncFactory.hpp0000644001725400016040000000347413273140037017530 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCFACTORY_HPP #define _FUNCFACTORY_HPP #include #include #include class XQILLA_API FuncFactory { public: FuncFactory(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); FuncFactory(size_t numArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~FuncFactory() {} ///Create instance of a function, using FuncFactoryTemplate to determine type virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const = 0; const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const XMLCh *getURINameHash() const { return uriname_.getRawBuffer(); } void setURINameHash(const XMLCh *uri, const XMLCh *name); size_t getMinArgs() const { return minArgs_; } size_t getMaxArgs() const { return maxArgs_; } protected: const XMLCh *uri_, *name_; size_t minArgs_, maxArgs_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uriname_; }; #endif XQilla-2.3.4/include/xqilla/functions/BuiltInModules.hpp0000644001725400016040000000167313273140037020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _BUILTINMODULES_HPP #define _BUILTINMODULES_HPP #include class XQILLA_API BuiltInModules { public: static const DelayedModule &core; static const DelayedModule &fn; }; #endif XQilla-2.3.4/include/xqilla/functions/XQillaFunction.hpp0000644001725400016040000000212313273140037020173 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQILLAFUNCTION_HPP #define XQILLAFUNCTION_HPP #include class XQILLA_API XQillaFunction : public XQFunction { public: static const XMLCh XQillaPrefix[]; static const XMLCh XMLChFunctionURI[]; protected: XQillaFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); }; #endif XQilla-2.3.4/include/xqilla/functions/XQUserFunction.hpp0000644001725400016040000001576013273140037020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQUSERFUNCTION_HPP #define XQUSERFUNCTION_HPP #include #include #include #include #include class XQUserFunction; class XQQuery; class FunctionSignature; class DocumentCache; class VarStoreImpl; class XQILLA_API XQUserFunctionInstance : public XQFunction, public ExternalFunction::Arguments { public: XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, XPath2MemoryManager *mm); XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, bool addReturnCheck, XPath2MemoryManager *mm); virtual Result getArgument(size_t index, DynamicContext *context) const; Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode* staticResolution(StaticContext* context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; void evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const; const XQUserFunction *getFunctionDefinition() const { return funcDef_; } void setFunctionDefinition(const XQUserFunction *f) { funcDef_ = f; } bool getAddReturnCheck() const { return addReturnCheck_; } protected: bool addReturnCheck_; const XQUserFunction *funcDef_; }; class XQILLA_API XQUserFunction : public FuncFactory, public LocationInfo { public: class XQILLA_API Mode : public LocationInfo { public: enum State { QNAME, DEFAULT, ALL, CURRENT }; Mode(const XMLCh *qname) : state_(QNAME), qname_(qname), uri_(0), name_(0) {} Mode(const XMLCh *uri, const XMLCh *name) : state_(QNAME), qname_(0), uri_(uri), name_(name) {} Mode(State state) : state_(state), qname_(0), uri_(0), name_(0) {} Mode(const Mode *o) : state_(o->state_), qname_(o->qname_), uri_(o->uri_), name_(o->name_) {} State getState() const { return state_; } const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } const XMLCh *getQName() const { return qname_; } bool equals(const Mode *o) const; void staticResolution(StaticContext* context); private: State state_; const XMLCh *qname_, *uri_, *name_; }; typedef std::vector > ModeList; // Constructor for an XQuery function XQUserFunction(const XMLCh *qname, FunctionSignature *signature, ASTNode *body, bool isGlobal, XPath2MemoryManager *mm); // Constructor for an XQuery template XQUserFunction(const XMLCh *qname, VectorOfASTNodes *pattern, FunctionSignature *signature, ASTNode *body, XPath2MemoryManager *mm); // from FuncFactory virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* expr) const; virtual const XMLCh *getQName() const { return qname_; } void setName(const XMLCh *name) { name_ = name; } void setURI(const XMLCh *uri) { uri_ = uri; } VectorOfASTNodes *getPattern() const { return pattern_; } void setPattern(VectorOfASTNodes *pattern) { pattern_ = pattern; } ModeList *getModeList() const { return modes_; } void setModeList(ModeList *modes) { modes_ = modes; } FunctionSignature *getSignature() const { return signature_; } ASTNode *getTemplateInstance() const { return templateInstance_; } void setTemplateInstance(ASTNode *ast) { templateInstance_ = ast; } bool isGlobal() const { return isGlobal_; } bool isTemplate() const { return isTemplate_; } bool isRecursive() const { return recursive_; } bool isDelayed() const { return delayed_; } void setDelayed(bool v) { delayed_ = v; } void resolveName(StaticContext *context); /// Resolve URIs, give the function a default static type void staticResolutionStage1(StaticContext* context); /// Resolve the function body, work out a more static return type void staticResolutionStage2(StaticContext* context); void staticTypingOnce(StaticContext *context, StaticTyper *styper); void resetStaticTypingOnce(); void staticTyping(StaticContext *context, StaticTyper *styper); void setFunctionBody(ASTNode* value) { body_ = value; } void setModuleDocumentCache(DocumentCache* docCache) { moduleDocCache_ = docCache; } const ASTNode *getFunctionBody() const { return body_; } const ExternalFunction *getExternalFunction() const { return exFunc_; } DocumentCache *getModuleDocumentCache() const { return moduleDocCache_; } const StaticAnalysis &getBodyStaticAnalysis() const { return src_; } XPath2MemoryManager *getMemoryManager() const { return memMgr_; } static void staticTypeFunctionCalls(ASTNode *item, StaticContext *context, StaticTyper *styper); static const XMLCh XMLChXQueryLocalFunctionsURI[]; protected: // Constructor for copying XQUserFunction(const XQUserFunction *o, XPath2MemoryManager *mm); // Implementation for releasing void releaseImpl(); ASTNode *body_; const ExternalFunction *exFunc_; const XMLCh *qname_; VectorOfASTNodes *pattern_; ASTNode *templateInstance_; ModeList *modes_; FunctionSignature *signature_; bool isGlobal_; bool isTemplate_; XPath2MemoryManager *memMgr_; StaticAnalysis src_; enum StaticTypingStatus { BEFORE, DURING, AFTER } staticTyped_; bool recursive_; bool delayed_; DocumentCache *moduleDocCache_; friend class XQUserFunctionInstance; friend class ASTCopier; friend class ASTReleaser; }; class XQILLA_API DelayedFuncFactory : public FuncFactory { public: DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *body, int line, int column, XQQuery *query); DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *body, int line, int column, XQQuery *query); virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const; bool isParsed() const { return function_ != 0; } private: const XMLCh *body_; const char *body8_; int line_, column_; XQQuery *query_; XQUserFunction *function_; }; #endif XQilla-2.3.4/include/xqilla/functions/FuncFactoryTemplate.hpp0000644001725400016040000000271713273140037021223 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCFACTORYTEMPLATE_HPP #define _FUNCFACTORYTEMPLATE_HPP #include template class FuncFactoryTemplate : public FuncFactory { public: FuncFactoryTemplate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) : FuncFactory(TYPE::XMLChFunctionURI, TYPE::name, TYPE::minArgs, TYPE::maxArgs, memMgr) { } FuncFactoryTemplate(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) : FuncFactory(uri, name, minArgs, maxArgs, mm) { } virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { return new (memMgr) TYPE(args, memMgr); } }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNamespaceUri.hpp0000644001725400016040000000241113273140037021355 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNAMESPACEURI_HPP #define _FUNCTIONNAMESPACEURI_HPP #include #include class XQILLA_API FunctionNamespaceUri : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNamespaceUri(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTokenize.hpp0000644001725400016040000000366013273140037020600 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTOKENIZE_HPP #define _FUNCTIONTOKENIZE_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RuntimeException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END /** * Breaks the $input string into a sequence of strings, * treating any substring that matches $pattern as a separator. * The separators themselves are not returned. * * tokenize(string? $input, string $pattern) => string* * tokenize(string? $input, string $pattern, string $flags) => string* */ class XQILLA_API FunctionTokenize : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionTokenize(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; private: void processRuntimeException(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException &e, const char* sourceMsg) const; }; #endif // _FUNCTIONTOKENIZE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionNormalizeUnicode.hpp0000644001725400016040000000250413273140037022253 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* normalize-unicode function */ #ifndef _FUNCTIONNORMALIZEUNICODE_HPP #define _FUNCTIONNORMALIZEUNICODE_HPP #include #include /** normalize-unicode function. */ class XQILLA_API FunctionNormalizeUnicode : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNormalizeUnicode(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONNORMALIZEUNICODE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionResolveURI.hpp0000644001725400016040000000241413273140037021003 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONRESOLVEURI_HPP #define _FUNCTIONRESOLVEURI_HPP #include #include class XQILLA_API FunctionResolveURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionResolveURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCurrentDateTime.hpp0000644001725400016040000000247313273140037022050 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* current-dateTime function */ #ifndef _FUNCTIONCURRENT_DATETIME_HPP #define _FUNCTIONCURRENT_DATETIME_HPP #include #include class XQILLA_API FunctionCurrentDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDefaultCollation.hpp0000644001725400016040000000236013273140037022235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDEFAULTCOLLATION_HPP #define _FUNCTIONDEFAULTCOLLATION_HPP #include class XQILLA_API FunctionDefaultCollation : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDefaultCollation(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSignature.hpp0000644001725400016040000000515513273140037020752 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FUNCTIONSIGNATURE_HPP #define FUNCTIONSIGNATURE_HPP #include #include #include class SequenceType; class XQILLA_API ArgumentSpec : public LocationInfo { public: ArgumentSpec(const XMLCh *qname, SequenceType *type, XPath2MemoryManager *memMgr); ArgumentSpec(const ArgumentSpec *o, XPath2MemoryManager *memMgr); void release(XPath2MemoryManager *mm); const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } const XMLCh *getQName() const { return qname_; } void setQName(const XMLCh *qname) { qname_ = qname; } SequenceType *getType() const { return seqType_; } void setType(SequenceType *type) { seqType_ = type; } bool isUsed() const { return used_; } void setNotUsed() { used_ = false; } const StaticAnalysis &getStaticAnalysis() const { return src_; } void staticResolution(StaticContext* context); private: const XMLCh *qname_, *uri_, *name_; bool used_; SequenceType *seqType_; StaticAnalysis src_; }; typedef std::vector > ArgumentSpecs; class XQILLA_API FunctionSignature { public: FunctionSignature(XPath2MemoryManager *mm); FunctionSignature(ArgumentSpecs *a, SequenceType *r, XPath2MemoryManager *mm); FunctionSignature(const FunctionSignature *o, XPath2MemoryManager *mm); FunctionSignature(const FunctionSignature *o, unsigned int skipArg, XPath2MemoryManager *mm); void release(); void staticResolution(StaticContext *context); void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer, bool typeSyntax) const; enum OptionValue { OP_DEFAULT, OP_TRUE, OP_FALSE }; OptionValue updating; OptionValue nondeterministic; OptionValue privateOption; ArgumentSpecs *argSpecs; SequenceType *returnType; XPath2MemoryManager *memMgr; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionPower.hpp0000644001725400016040000000216413273140037020102 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPOWER_HPP #define _FUNCTIONPOWER_HPP #include #include class XQILLA_API FunctionPower : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPower(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionWords.hpp0000644001725400016040000000261313273140037020103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONWORDS_HPP #define _FUNCTIONWORDS_HPP #include "XQillaFunction.hpp" /** * Breaks the $input string into a sequence of words, * words(string? $input) => string* */ class XQILLA_API FunctionWords : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionWords(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONWORDS_HPP XQilla-2.3.4/include/xqilla/functions/FunctionFloor.hpp0000644001725400016040000000237413273140037020072 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:floor(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONFLOOR_HPP #define _FUNCTIONFLOOR_HPP #include #include class XQILLA_API FunctionFloor : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFloor(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONFLOOR_HPP XQilla-2.3.4/include/xqilla/functions/EXSLTMathFunction.hpp0000644001725400016040000000175313273140037020522 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXSLTMATHFUNCTION_HPP #define _EXSLTMATHFUNCTION_HPP #include class XQILLA_API EXSLTMathFunction : public NumericFunction { public: static const XMLCh XMLChFunctionURI[]; EXSLTMathFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAbs.hpp0000644001725400016040000000226213273140037017512 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONABS_HPP #define _FUNCTIONABS_HPP #include #include class XQILLA_API FunctionAbs : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAbs(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNumber.hpp0000644001725400016040000000265613273140037020244 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNUMBER_HPP #define _FUNCTIONNUMBER_HPP #include #include class XQILLA_API FunctionNumber : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNumber(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; static Numeric::Ptr number(const Item::Ptr &item, DynamicContext *context, const LocationInfo *location); static Numeric::Ptr number(const AnyAtomicType *item, DynamicContext *context); }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCount.hpp0000644001725400016040000000273113273140037020076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:count(item* $srcval) => unsignedInt */ #ifndef _FUNCTIONCOUNT_HPP #define _FUNCTIONCOUNT_HPP #include #include class XQILLA_API FunctionCount : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. Sets arg def to NOT_OPTIONAL. FunctionCount(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); /** Returns the number of nodes in the nodelist argument. **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCOUNT_HPP XQilla-2.3.4/include/xqilla/functions/FunctionYearFromDateTime.hpp0000644001725400016040000000243613273140037022151 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARFROMDATETIME_HPP #define _FUNCTIONGETYEARFROMDATETIME_HPP #include #include class XQILLA_API FunctionYearFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionYearFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCurrentDate.hpp0000644001725400016040000000240613273140037021225 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCURRENTDATE_HPP #define _FUNCTIONCURRENTDATE_HPP #include #include class XQILLA_API FunctionCurrentDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionRoundHalfToEven.hpp0000644001725400016040000000245713273140037022016 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:round(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONROUNDHALFTOEVEN_HPP #define _FUNCTIONROUNDHALFTOEVEN_HPP #include #include class XQILLA_API FunctionRoundHalfToEven : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRoundHalfToEven(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROUNDHALFTOEVEN_HPP XQilla-2.3.4/include/xqilla/functions/FunctionPosition.hpp0000644001725400016040000000231713273140037020612 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPOSITION_HPP #define _FUNCTIONPOSITION_HPP #include class XQILLA_API FunctionPosition : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPosition(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSubstring.hpp0000644001725400016040000000256313273140037020771 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Substring function */ #ifndef _FUNCTIONSUBSTRING_HPP #define _FUNCTIONSUBSTRING_HPP #include #include /** Substring function. */ class XQILLA_API FunctionSubstring : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSubstring(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the substring to the right of parm2 until optional parm3 from string parm1 **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONSUBSTRING_HPP XQilla-2.3.4/include/xqilla/functions/FunctionUnordered.hpp0000644001725400016040000000244013273140037020732 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUNORDERED_HPP #define _FUNCTIONUNORDERED_HPP #include class XQILLA_API FunctionUnordered : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionUnordered(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONUNORDERED_HPP XQilla-2.3.4/include/xqilla/functions/FunctionHoursFromTime.hpp0000644001725400016040000000242213273140037021546 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMTIME_HPP #define _FUNCTIONGETHOURSFROMTIME_HPP #include #include class XQILLA_API FunctionHoursFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHoursFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDaysFromDuration.hpp0000644001725400016040000000302613273140037022236 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP #include #include /** * Getter for the days component of dayTimeDuration. * * days-from-Duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionDaysFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionDaysFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the days component of the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP XQilla-2.3.4/include/xqilla/functions/FunctionLowerCase.hpp0000644001725400016040000000236613273140037020676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LowerCase function */ #ifndef _FUNCTIONLOWERCASE_HPP #define _FUNCTIONLOWERCASE_HPP #include #include class XQILLA_API FunctionLowerCase : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLowerCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONLOWERCASE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionLog.hpp0000644001725400016040000000215413273140037017526 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLOG_HPP #define _FUNCTIONLOG_HPP #include #include class XQILLA_API FunctionLog : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLog(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAsin.hpp0000644001725400016040000000216013273140037017674 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONASIN_HPP #define _FUNCTIONASIN_HPP #include #include class XQILLA_API FunctionAsin : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAsin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionMonthFromDate.hpp0000644001725400016040000000242213273140037021512 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHFROMDATE_HPP #define _FUNCTIONGETMONTHFROMDATE_HPP #include #include class XQILLA_API FunctionMonthFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMonthFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTimezoneFromDate.hpp0000644001725400016040000000276513273140037022231 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMDATE_HPP #define _FUNCTIONGETTIMEZONEFROMDATE_HPP #include #include /** * Getter function for timezone component of date. * * xf:timezone-from-date(date? $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionTimezoneFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the string representing the timezone in the value of $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMDATE_HPP XQilla-2.3.4/include/xqilla/functions/FunctionPrefixFromQName.hpp0000644001725400016040000000262013273140037022006 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * fn:prefix-from-QName function */ #ifndef _FUNCTIONPREFIXFROMQNAME_HPP #define _FUNCTIONPREFIXFROMQNAME_HPP #include #include #include class XQILLA_API FunctionPrefixFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPrefixFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the prefix part of a QName, eg for foo:bar it returns foo */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONPREFIXFROMQNAME_HPP XQilla-2.3.4/include/xqilla/functions/FunctionCeiling.hpp0000644001725400016040000000241313273140037020355 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:ceiling(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONCEILING_HPP #define _FUNCTIONCEILING_HPP #include #include class XQILLA_API FunctionCeiling : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCeiling(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCEILING_HPP XQilla-2.3.4/include/xqilla/functions/FunctionLocalname.hpp0000644001725400016040000000244213273140037020700 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLOCALNAME_HPP #define _FUNCTIONLOCALNAME_HPP #include #include #include class XQILLA_API FunctionLocalname : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLocalname(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSentences.hpp0000644001725400016040000000270713273140037020740 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONSENTENCES_HPP #define _FUNCTIONSENTENCES_HPP #include "XQillaFunction.hpp" /** * Breaks the $input string into a sequence of strings by Unicode Sentence * Bounding * * sentences(string? $input) => string* */ class XQILLA_API FunctionSentences : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionSentences(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONSENTENCES_HPP XQilla-2.3.4/include/xqilla/functions/FunctionAnalyzeString.hpp0000644001725400016040000000233513273140037021600 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONANALYZESTRING_HPP #define _FUNCTIONANALYZESTRING_HPP #include "XQillaFunction.hpp" class XQILLA_API FunctionAnalyzeString : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAnalyzeString(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionExplain.hpp0000644001725400016040000000263413273140037020410 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEXPLAIN_HPP #define _FUNCTIONEXPLAIN_HPP #include class QueryPathNode; class XQILLA_API FunctionExplain : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionExplain(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionEmpty.hpp0000644001725400016040000000246113273140037020104 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEMPTY_HPP #define _FUNCTIONEMPTY_HPP #include class XQILLA_API FunctionEmpty : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionEmpty(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionString.hpp0000644001725400016040000000261613273140037020256 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTRING_HPP #define _FUNCTIONSTRING_HPP #include #include class XQILLA_API FunctionString : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; static const XMLCh *string(const Item::Ptr &item, DynamicContext *context); static Item::Ptr string_item(const Item::Ptr &item, DynamicContext *context); }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionCollection.hpp0000644001725400016040000000277213273140037021106 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCOLLECTION_HPP #define _FUNCTIONCOLLECTION_HPP #include #include class QueryPathNode; class XQILLA_API FunctionCollection : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCollection(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** resolve the uri and return the DOM tree **/ Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionConcat.hpp0000644001725400016040000000255713273140037020223 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Concat operator function */ #ifndef _FUNCTIONCONCAT_HPP #define _FUNCTIONCONCAT_HPP #include #include /** Concat operator function*/ class XQILLA_API FunctionConcat : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. FunctionConcat(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); protected: /** concatenates two strings. Takes two strings, and gives a string */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCONCAT_HPP XQilla-2.3.4/include/xqilla/functions/FunctionCaseFold.hpp0000644001725400016040000000243113273140037020463 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONCASEFOLD_HPP #define _FUNCTIONCASEFOLD_HPP #include "XQillaFunction.hpp" /** * Returns case-fold value. * */ class XQILLA_API FunctionCaseFold : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionCaseFold(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the upper-case string. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCASEFOLD_HPP XQilla-2.3.4/include/xqilla/functions/FunctionSecondsFromDuration.hpp0000644001725400016040000000256613273140037022744 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* seconds-from-dayTimeDuration(dayTimeDuration? $srcval) => decimal? */ #ifndef _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP #include #include class XQILLA_API FunctionSecondsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP XQilla-2.3.4/include/xqilla/functions/FunctionYearFromDate.hpp0000644001725400016040000000241613273140037021330 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARFROMDATE_HPP #define _FUNCTIONGETYEARFROMDATE_HPP #include #include class XQILLA_API FunctionYearFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionYearFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp0000644001725400016040000000247113273140037023674 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTDATETIMETOTIMEZONE_HPP #define _FUNCTIONADJUSTDATETIMETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustDateTimeToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustDateTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionStringLength.hpp0000644001725400016040000000233113273140037021412 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTRINGLENGTH_HPP #define _FUNCTIONSTRINGLENGTH_HPP #include class XQILLA_API FunctionStringLength : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStringLength(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionLast.hpp0000644001725400016040000000235213273140037017710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLAST_HPP #define _FUNCTIONLAST_HPP #include #include class XQILLA_API FunctionLast : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLast(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionAdjustDateToTimezone.hpp0000644001725400016040000000245113273140037023053 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTDATETOTIMEZONE_HPP #define _FUNCTIONADJUSTDATETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustDateToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustDateToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTime.hpp0000644001725400016040000000270213273140037017702 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTIME_HPP #define _FUNCTIONTIME_HPP #include "XQillaFunction.hpp" class QueryPathNode; class XQILLA_API FunctionTime : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTime(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionNodeName.hpp0000644001725400016040000000235713273140037020500 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNODENAME_HPP #define _FUNCTIONNODENAME_HPP #include #include class XQILLA_API FunctionNodeName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNodeName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionError.hpp0000644001725400016040000000254613273140037020103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONError_HPP #define _FUNCTIONError_HPP #include #include class XQILLA_API FunctionError : public XQFunction { public: static const XMLCh XMLChXQueryErrorURI[]; static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionError(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionTrace.hpp0000644001725400016040000000235413273140037020045 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTRACE_HPP #define _FUNCTIONTRACE_HPP #include #include class XQILLA_API FunctionTrace : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTrace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionSin.hpp0000644001725400016040000000215413273140037017536 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSIN_HPP #define _FUNCTIONSIN_HPP #include #include class XQILLA_API FunctionSin : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionUnparsedText.hpp0000644001725400016040000000240713273140037021434 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUNPARSEDTEXT_HPP #define _FUNCTIONUNPARSEDTEXT_HPP #include #include class XQILLA_API FunctionUnparsedText : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionUnparsedText(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionEndsWith.hpp0000644001725400016040000000231213273140037020526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONENDSWITH_HPP #define _FUNCTIONENDSWITH_HPP #include class XQILLA_API FunctionEndsWith : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionEndsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/functions/FunctionDateTime.hpp0000644001725400016040000000237313273140037020504 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTION_DATETIME_HPP #define _FUNCTION_DATETIME_HPP #include #include class XQILLA_API FunctionDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.4/include/xqilla/schema/0000755001725400016040000000000013273141210014066 500000000000000XQilla-2.3.4/include/xqilla/schema/SchemaValidatorFilter.hpp0000644001725400016040000002102513273140037020741 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SCHEMAVALIDATORFILTER_HPP #define _SCHEMAVALIDATORFILTER_HPP #include #include #include #include #include #include #include #include class DynamicContext; class LocationInfo; #if _XERCES_VERSION < 30000 typedef XMLSSize_t XMLFileLoc; #endif /** * The SchemaValidatorFilter class will modify the incoming event stream by * validating it against the schema definitions found in the DynamicContext's * DocumentCache. It will add typing information, as well as default values * and attributes, and will normalize values according to the schema normalization * rules. */ class XQILLA_API SchemaValidatorFilter : public EventFilter, public XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter { public: SchemaValidatorFilter(bool strictValidation, EventHandler *next, XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, const LocationInfo *info); virtual ~SchemaValidatorFilter(); void reset(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: // XMLScanner virtual const XMLCh *getName() const { return 0; } virtual XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool *getEntityDeclPool() { return 0; } virtual const XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool *getEntityDeclPool() const { return 0; } #if _XERCES_VERSION < 30100 virtual unsigned int resolveQName(const XMLCh *const qName, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &prefixBufToFill, const short mode, int &prefixColonPos); #endif virtual void scanDocument(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {} virtual bool scanNext(XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken &toFill) { return false; } virtual XERCES_CPP_NAMESPACE_QUALIFIER Grammar *loadGrammar(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src, const short grammarType, const bool toCache) { return 0; } virtual void scanCDSection() {} virtual void scanCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toToUse) {} virtual EntityExpRes scanEntityRef(const bool inAttVal, XMLCh &firstCh, XMLCh &secondCh, bool &escaped) { return EntityExp_Returned; } virtual void scanDocTypeDecl() {} virtual void scanReset(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {} virtual void sendCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toSend) {} // XMLDocumentHandler virtual void startDocument() {} virtual void endDocument() {} virtual void resetDocument() {} #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) {} virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {} #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot) {} virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {} #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0) {} virtual void docComment(const XMLCh* const comment) {} virtual void docPI(const XMLCh* const target, const XMLCh* const data) {} virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) {} // XMLErrorReporter virtual void resetErrors() {} virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum); private: void processStartElement(); void processAttrs(XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *elemDecl); bool switchGrammar(const XMLCh *uri); bool laxElementValidation(XERCES_CPP_NAMESPACE_QUALIFIER QName* element, XERCES_CPP_NAMESPACE_QUALIFIER ContentLeafNameTypeVector* cv, const XERCES_CPP_NAMESPACE_QUALIFIER XMLContentModel *cm, unsigned int parentElemDepth); bool anyAttributeValidation(XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne); XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *createElementDecl(unsigned int uriId, unsigned int currentScope, bool laxThisOne); const LocationInfo *info_; XERCES_CPP_NAMESPACE_QUALIFIER SchemaValidator *fSchemaValidator; XERCES_CPP_NAMESPACE_QUALIFIER SchemaGrammar *fSchemaGrammar; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer fContent; XERCES_CPP_NAMESPACE_QUALIFIER IdentityConstraintHandler *fICHandler; XERCES_CPP_NAMESPACE_QUALIFIER RefHash3KeysIdPool *fElemNonDeclPool; bool strictValidation_; bool errorOccurred_; XERCES_CPP_NAMESPACE_QUALIFIER ElemStack::StackElem *parentStack_; unsigned int elemDepth_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname_; bool elementToProcess_; const XMLCh *xsiType_; unsigned int attrCount_; }; #endif XQilla-2.3.4/include/xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp0000644001725400016040000000361713273140037022624 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include class KVStringPair; class XQILLA_API AnyAtomicTypeDatatypeValidator : public XERCES_CPP_NAMESPACE_QUALIFIER AnySimpleTypeDatatypeValidator { public: // constructor AnyAtomicTypeDatatypeValidator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // destructor virtual ~AnyAtomicTypeDatatypeValidator(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* newInstance( XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* const facets, XERCES_CPP_NAMESPACE_QUALIFIER RefArrayVectorOf* const enums, const int finalSet, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual bool isAtomic() const { return true; } }; XQilla-2.3.4/include/xqilla/schema/DocumentCache.hpp0000644001725400016040000001071613273140037017234 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DOCUMENTCACHE_HPP #define _DOCUMENTCACHE_HPP #include #include #include #include #include class DynamicContext; class StaticContext; class QualifiedName; class LocationInfo; class QueryPathNode; typedef std::vector > VectorOfStrings; XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; class DOMNode; class DatatypeValidator; class XMLEntityResolver; class ComplexTypeInfo; class SchemaElementDecl; class SchemaAttDef; class InputSource; class GrammarResolver; XERCES_CPP_NAMESPACE_END ///Expression Context is a storage for contexts. class XQILLA_API DocumentCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// untyped static const XMLCh g_szUntyped[]; enum ValidationMode { VALIDATION_STRICT = 0, VALIDATION_LAX = 1, VALIDATION_SKIP = 2 }; /** virtual destructor */ virtual ~DocumentCache() {} /** load the document from the requested URI */ virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0) = 0; /** parse the document from the InputSource provided */ virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0) = 0; /** parse the document from the InputSource provided, outputing it to the EventHandler provided */ virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context) = 0; /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves an XML, DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0; virtual bool getDoPSVI() const = 0; virtual void setDoPSVI(bool value) = 0; /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0; virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const = 0; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) = 0; /** helper functions used to map namespace ids found in the SchemaGrammar **/ virtual unsigned int getSchemaUriId(const XMLCh* uri) const = 0; virtual const XMLCh* getSchemaUri(unsigned int id) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo* getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const = 0; virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const = 0; }; #endif XQilla-2.3.4/include/xqilla/schema/SequenceType.hpp0000644001725400016040000001740613273140037017147 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCETYPE_HPP #define _SEQUENCETYPE_HPP #include #include #include #include #include #include class Item; class XPath2MemoryManager; class SequenceType; class FunctionSignature; typedef std::vector > VectorOfSequenceTypes; class XQILLA_API SequenceType : public LocationInfo { public: class XQILLA_API ItemType { public: /** * The type of item that this sequence can hold. */ typedef enum { TEST_ELEMENT, ///< element node TEST_ATTRIBUTE, ///< attribute node TEST_SCHEMA_ELEMENT, ///< element node TEST_SCHEMA_ATTRIBUTE, ///< attribute node TEST_SCHEMA_DOCUMENT, ///< document node TEST_NODE, ///< node TEST_PI, ///< processing instruction node TEST_COMMENT, ///< comment node TEST_TEXT, ///< text node TEST_DOCUMENT, ///< document node TEST_NAMESPACE, ///< namespace node TEST_ANYTHING, ///< any item TEST_ATOMIC_TYPE, ///< the named atomic type TEST_FUNCTION ///< function } ItemTestType; // Normal constructor ItemType(ItemTestType test, QualifiedName* name=NULL, QualifiedName* type=NULL); // Constructor for an atomic type ItemType(const XMLCh *typeURI,const XMLCh *typeName, XPath2MemoryManager *mm); // Constructor for a function ItemType(VectorOfSequenceTypes *argTypes, SequenceType *returnType); /** * Destructor. */ ~ItemType(); /** * Getter for m_nTestType */ ItemTestType getItemTestType() const; void setItemTestType(ItemTestType t); void setAllowNilled(bool value); bool getAllowNilled() const; QualifiedName *getName() const; QualifiedName *getType() const; void setName(QualifiedName * name); void setType(QualifiedName * type); const XMLCh* getTypeURI() const; const XMLCh* getNameURI() const; VectorOfSequenceTypes *getArgumentTypes() const { return argTypes_; } SequenceType *getReturnType() const { return returnType_; } void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; bool matches(const Item::Ptr &toBeTested, DynamicContext* context) const; bool matches(const Node::Ptr &toBeTested, DynamicContext* context) const; bool matches(const FunctionRef::Ptr &toBeTested, DynamicContext* context) const; bool matches(const FunctionSignature *sig, DynamicContext* context) const; bool matchesNameType(const Item::Ptr &toBeTested, const DynamicContext* context) const; bool matchesSchemaElement(const Node::Ptr &toBeTested, const DynamicContext* context) const; bool isSubtypeOf(const ItemType *toBeTested, const StaticContext* context) const; void staticResolution(StaticContext *context, const LocationInfo *location); void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer, bool addBrackets = false) const; protected: bool isSubtypeOfNameType(const ItemType *toBeTested, const StaticContext* context) const; // The ItemTestType of this ItemType ItemTestType m_nTestType; // The name and type to match QualifiedName *m_pName, *m_pType; // The forced URIs for name and type const XMLCh *m_NameURI, *m_TypeURI; // allow elements having the xsi:nil="true" attribute bool m_bAllowNil; // The number of arguments the function should take VectorOfSequenceTypes *argTypes_; // The return type of the function SequenceType *returnType_; bool staticallyResolved_; }; /** * Number of occurrences of the ItemType. * STAR specifies zero or more occurrences. * PLUS specifies one or more occurrences. * QUESTION_MARK specifies zero or one occurrence. */ typedef enum { EXACTLY_ONE=0, STAR=1, PLUS=2, QUESTION_MARK=3 } OccurrenceIndicator; /** * Constructor for atomic types */ SequenceType(const XMLCh* typeURI,const XMLCh* typeName, OccurrenceIndicator occur, XPath2MemoryManager *mm); /** * Generic constructor. */ SequenceType(ItemType* test, OccurrenceIndicator occur = EXACTLY_ONE); /** * Default constructor. */ SequenceType(); /** * Destructor. */ virtual ~SequenceType(); /** * Setter for m_pItemType. */ void setItemType(ItemType* itemType); /** * Setter for m_nOccurrencer. */ void setOccurrence(OccurrenceIndicator nOccurrence); //Return a URI, firstly the overriding URI string, if not, the URI bond to the QName prefix const XMLCh *getTypeURI() const; const XMLCh *getNameURI() const; /** * Returns a Result that will throw an XPath2TypeMatchException if * the toBeTested Result doesn't match this SequenceType. */ Result matches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result occurrenceMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result typeMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result convertFunctionArg(const Result &input, DynamicContext *context, bool xpath1Compat, const LocationInfo *location, const XMLCh *errorCode); ASTNode *convertFunctionArg(ASTNode *arg, StaticContext *context, bool numericFunction, const LocationInfo *location); QualifiedName *getConstrainingType() const; QualifiedName *getConstrainingName() const; /** * Getter for m_pItemType. */ ItemType::ItemTestType getItemTestType() const; /** * Getter for m_nOccurrence. */ OccurrenceIndicator getOccurrenceIndicator() const; const ItemType *getItemType() const; bool isSubtypeOf(const SequenceType *toBeTested, const StaticContext* context) const; void staticResolution(StaticContext* context); void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; protected: // The ItemType of this SequenceType ItemType* m_pItemType; // The OccurrenceIndicator of this SequenceType OccurrenceIndicator m_nOccurrence; class OccurrenceMatchesResult : public ResultImpl { public: OccurrenceMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode); Item::Ptr next(DynamicContext *context); private: const SequenceType *_seqType; Result _parent; const XMLCh *_errorCode; bool _toDo; }; class TypeMatchesResult : public ResultImpl { public: TypeMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode); Item::Ptr next(DynamicContext *context); private: const SequenceType *_seqType; Result _parent; const XMLCh *_errorCode; }; }; #endif XQilla-2.3.4/include/xqilla/schema/DocumentCacheImpl.hpp0000644001725400016040000002235013273140037020053 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DOCUMENTCACHEIMPL_HPP #define _DOCUMENTCACHEIMPL_HPP #include #include #include #include #include #include class DynamicContext; class QualifiedName; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; class GrammarResolver; class XMLScanner; XERCES_CPP_NAMESPACE_END #if _XERCES_VERSION < 30000 typedef XMLSSize_t XMLFileLoc; #endif /// The class that performs the parsing of input documents class XQILLA_API DocumentCacheImpl : public DocumentCache, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER PSVIHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter { public: DocumentCacheImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* xmlgr = 0); DocumentCacheImpl(const DocumentCacheImpl *parent, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ~DocumentCacheImpl(); /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves an XML, DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual bool getDoPSVI() const { return doPSVI_; } virtual void setDoPSVI(bool value) { doPSVI_ = value; } virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0); virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0); virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context); /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location); /** helper functions used to map namespace ids found in the SchemaGrammar **/ virtual unsigned int getSchemaUriId(const XMLCh* uri) const; virtual const XMLCh* getSchemaUri(unsigned int id) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo* getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const; virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const; static XERCES_CPP_NAMESPACE_QUALIFIER InputSource *resolveURI(const XMLCh *uri, const XMLCh *baseUri); protected: void init(XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *gramPool = 0); void loadSchema(const XMLCh* const uri, const XMLCh* location, StaticContext *context, const LocationInfo *info); // XMLEntityHandler virtual void endInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource); virtual bool expandSystemId(const XMLCh* const systemId, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toFill); virtual void resetEntities(); virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI = 0); virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier* resourceIdentifier); virtual void startInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource); // XMLErrorReporter virtual void resetErrors(); virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum); // XMLDocumentHandler virtual void startDocument(); virtual void endDocument(); virtual void resetDocument(); #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection); #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0); virtual void docComment(const XMLCh* const comment); virtual void docPI(const XMLCh* const target, const XMLCh* const data); virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl); virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl); virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr); // PSVIHandler virtual void handleElementPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo); virtual void handlePartialElementPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo); virtual void handleAttributesPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIAttributeList *psviAttributes); protected: XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *getScanner(); XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver_; XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *scanner_; XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *entityResolver_; bool doPSVI_; LocationInfo location_; EventHandler *events_; const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf *attrList_; unsigned int attrCount_; XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo_; bool strictValidation_; XERCES_CPP_NAMESPACE_QUALIFIER XMLStringPool* loadedSchemas_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer schemaLocations_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer noNamespaceSchemaLocation_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/0000755001725400016040000000000013273141210014475 500000000000000XQilla-2.3.4/include/xqilla/fulltext/FTSelection.hpp0000644001725400016040000000471313273140037017320 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTSELECTION_HPP #define _FTSELECTION_HPP #include #include #include #include #include #include #include class DynamicContext; class StaticContext; class StaticTyper; class XQILLA_API FTContext { public: FTContext(const Tokenizer *tok, const TokenStore::Ptr &tStore, DynamicContext *cont) : queryPos(0), tokenizer(tok), tokenStore(tStore), context(cont) {} unsigned int queryPos; const Tokenizer *tokenizer; TokenStore::Ptr tokenStore; DynamicContext *context; }; class XQILLA_API FTSelection : public LocationInfo { public: /// The type of the FTSelection node enum Type { OR, AND, MILD_NOT, UNARY_NOT, WORDS, WORD, ORDER, DISTANCE, DISTANCE_LITERAL, SCOPE, CONTENT, WINDOW, WINDOW_LITERAL }; virtual ~FTSelection() {} Type getType() const { return type_; } virtual const StaticAnalysis &getStaticAnalysis() const { return src_; } virtual FTSelection *staticResolution(StaticContext *context) = 0; virtual FTSelection *staticTypingImpl(StaticContext *context) = 0; virtual FTSelection *optimize(FTContext *context) const = 0; virtual AllMatches *execute(FTContext *ftcontext) const = 0; XPath2MemoryManager *getMemoryManager() const { return memMgr_; } protected: FTSelection(Type type, XPath2MemoryManager *memMgr) : src_(memMgr), type_(type), memMgr_(memMgr) {} StaticAnalysis src_; private: Type type_; XPath2MemoryManager *memMgr_; }; typedef std::vector > VectorOfFTSelections; #endif XQilla-2.3.4/include/xqilla/fulltext/FTOrder.hpp0000644001725400016040000000347313273140037016450 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTORDER_HPP #define _FTORDER_HPP #include class XQILLA_API FTOrder : public FTOption { public: FTOrder(XPath2MemoryManager *memMgr) : FTOption(FTSelection::ORDER, memMgr), arg_(0) {} FTOrder(FTSelection *arg, XPath2MemoryManager *memMgr) : FTOption(FTSelection::ORDER, memMgr), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } private: FTSelection *arg_; }; class FTOrderMatches : public AllMatches { public: FTOrderMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), excludes_() {} ~FTOrderMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTAnd.hpp0000644001725400016040000000503313273140037016071 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTAND_HPP #define _FTAND_HPP #include #include class XQILLA_API FTAnd : public FTSelection { public: FTAnd(XPath2MemoryManager *memMgr); FTAnd(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const VectorOfFTSelections &getArguments() const { return args_; } void addArg(FTSelection *sel) { args_.push_back(sel); } private: VectorOfFTSelections args_; }; class BufferedMatches : public AllMatches { public: BufferedMatches(const LocationInfo *info, AllMatches *matches); bool next(DynamicContext *context); void reset(); AllMatches *getAllMatches(); const StringMatches &getStringIncludes() { return *includeIt_; } const StringMatches &getStringExcludes() { return *excludeIt_; } private: AllMatches *matches_; bool reset_; std::vector includeBuffer_; std::vector excludeBuffer_; std::vector::iterator includeIt_; std::vector::iterator excludeIt_; }; class FTConjunctionMatches : public AllMatches { public: FTConjunctionMatches(const LocationInfo *info); ~FTConjunctionMatches(); void addMatches(AllMatches *m); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: void deleteMatches(); private: void addStringIncludes(const StringMatches &sMatches); void addStringExcludes(const StringMatches &sMatches); private: bool toDo_; std::vector args_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTOr.hpp0000644001725400016040000000350113273140037015745 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTOR_HPP #define _FTOR_HPP #include #include class XQILLA_API FTOr : public FTSelection { public: FTOr(XPath2MemoryManager *memMgr); FTOr(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const VectorOfFTSelections &getArguments() const { return args_; } void addArg(FTSelection *sel) { args_.push_back(sel); } private: VectorOfFTSelections args_; }; class FTDisjunctionMatches : public AllMatches { public: FTDisjunctionMatches(const LocationInfo *info); ~FTDisjunctionMatches(); void addMatches(AllMatches *m) { args_.push_back(m); } bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: bool toDo_; std::vector args_; std::vector::iterator it_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTWords.hpp0000644001725400016040000000625513273140037016474 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTWORDS_HPP #define _FTWORDS_HPP #include #include class ASTNode; class XQILLA_API FTWords : public FTSelection { public: /// Enumeration representing the way to match words and phrases enum FTAnyallOption { ANY, ANY_WORD, ALL, ALL_WORDS, PHRASE }; FTWords(ASTNode *expr, FTAnyallOption option, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; ASTNode *getExpr() const { return expr_; } void setExpr(ASTNode *expr) { expr_ = expr; } FTAnyallOption getOption() const { return option_; } private: FTSelection *optimizeAnyWord(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAllWords(Result strings, FTContext *ftcontext) const; FTSelection *optimizePhrase(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAny(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAll(Result strings, FTContext *ftcontext) const; AllMatches *executeAnyWord(Result strings, FTContext *ftcontext) const; AllMatches *executeAllWords(Result strings, FTContext *ftcontext) const; AllMatches *executePhrase(Result strings, FTContext *ftcontext) const; AllMatches *executeAny(Result strings, FTContext *ftcontext) const; AllMatches *executeAll(Result strings, FTContext *ftcontext) const; ASTNode *expr_; FTAnyallOption option_; }; class XQILLA_API FTWord : public FTSelection { public: FTWord(const XMLCh *queryString, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const XMLCh *getQueryString() const { return queryString_; } private: const XMLCh *queryString_; }; class FTStringSearchMatches : public AllMatches { public: FTStringSearchMatches(const LocationInfo *info, const XMLCh *queryString, FTContext *ftcontext); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: unsigned int queryPos_; TokenStream::Ptr tokenStream_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTUnaryNot.hpp0000644001725400016040000000357113273140037017153 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTUNARYNOT_HPP #define _FTUNARYNOT_HPP #include class XQILLA_API FTUnaryNot : public FTSelection { public: FTUnaryNot(FTSelection *arg, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; FTSelection *getArgument() const { return arg_; } void setArgument(FTSelection *expr) { arg_ = expr; } private: FTSelection *arg_; }; class FTUnaryNotMatches : public AllMatches { public: FTUnaryNotMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), toDo_(true), arg_(arg), includes_(), excludes_() {} ~FTUnaryNotMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: void addStringIncludes(const StringMatches &sMatches); void addStringExcludes(const StringMatches &sMatches); private: bool toDo_; AllMatches *arg_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/Match.hpp0000644001725400016040000000513713273140037016176 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MATCH_HPP #define _MATCH_HPP #include #include #include #include class XQILLA_API StringMatch { public: StringMatch() : queryPos(0), tokenInfo(0), startToken(false), endToken(false) {} StringMatch(unsigned int qPos, const TokenInfo::Ptr &tInfo) : queryPos(qPos), tokenInfo(tInfo), startToken(false), endToken(false) {} unsigned int queryPos; TokenInfo::Ptr tokenInfo; bool startToken, endToken; }; typedef std::vector StringMatches; class XQILLA_API Match : public ReferenceCounted { public: typedef RefCountPointer Ptr; Match() {} const StringMatches &getStringIncludes() const { return includes_; } const StringMatches &getStringExcludes() const { return excludes_; } void addStringInclude(unsigned int queryPos, const TokenInfo::Ptr &tokenInfo) { includes_.push_back(StringMatch(queryPos, tokenInfo)); } void addStringExclude(unsigned int queryPos, const TokenInfo::Ptr &tokenInfo) { excludes_.push_back(StringMatch(queryPos, tokenInfo)); } void addStringInclude(const StringMatch &match) { includes_.push_back(match); } void addStringExclude(const StringMatch &match) { excludes_.push_back(match); } void addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } } void add(const Match::Ptr &match) { addStringIncludes(match->getStringIncludes()); addStringExcludes(match->getStringExcludes()); } private: StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTOption.hpp0000644001725400016040000000415313273140037016641 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTOPTION_HPP #define _FTOPTION_HPP #include #include class XQILLA_API FTOption : public FTSelection { public: enum FTUnit { WORDS, SENTENCES, PARAGRAPHS }; virtual void setArgument(FTSelection *arg) = 0; static unsigned int tokenUnit(const TokenInfo &t, FTUnit unit) { switch(unit) { case WORDS: return t.position_; case SENTENCES: return t.sentence_; case PARAGRAPHS: return t.paragraph_; } return 0; } static unsigned int tokenDistance(const TokenInfo &a, const TokenInfo &b, FTUnit unit) { switch(unit) { case WORDS: return (unsigned int)labs((long)a.position_ - (long)b.position_) - 1; case SENTENCES: return (unsigned int)labs((long)a.sentence_ - (long)b.sentence_); case PARAGRAPHS: return (unsigned int)labs((long)a.paragraph_ - (long)b.paragraph_); } return 0; } static bool lessThanFunc(const TokenInfo &a, const TokenInfo &b) { if (a.paragraph_ != b.paragraph_) return a.paragraph_ < b.paragraph_; if (a.sentence_ != b.sentence_) return a.sentence_ < b.sentence_; return a.position_ < b.position_; } protected: FTOption(Type type, XPath2MemoryManager *memMgr) : FTSelection(type, memMgr) {} }; typedef std::vector > VectorOfFTOptions; #endif XQilla-2.3.4/include/xqilla/fulltext/FTWindow.hpp0000644001725400016040000000624113273140037016640 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTWINDOW_HPP #define _FTWINDOW_HPP #include #include class ASTNode; class XQILLA_API FTWindow : public FTOption { public: FTWindow(ASTNode *expr, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::WINDOW, memMgr), expr_(expr), unit_(unit), arg_(0) {} FTWindow(FTSelection *arg, ASTNode *expr, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::WINDOW, memMgr), expr_(expr), unit_(unit), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } ASTNode *getExpr() const { return expr_; } void setExpr(ASTNode *expr) { expr_ = expr; } FTUnit getUnit() const { return unit_; } private: ASTNode *expr_; FTUnit unit_; FTSelection *arg_; }; class XQILLA_API FTWindowLiteral : public FTOption { public: FTWindowLiteral(FTSelection *arg, unsigned int distance, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(WINDOW_LITERAL, memMgr), arg_(arg), distance_(distance), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } unsigned int getDistance() const { return distance_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; unsigned int distance_; FTUnit unit_; }; class FTWindowMatches : public AllMatches { public: FTWindowMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), distance_(distance), unit_(unit), arg_(arg), found_(true), excludes_() {} ~FTWindowMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: unsigned int distance_; FTOption::FTUnit unit_; AllMatches *arg_; bool found_; std::set excludeValues_; std::set::iterator excludeIt_; StringMatches excludes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/TokenStore.hpp0000644001725400016040000000243513273140037017235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENSTORE_HPP #define _TOKENSTORE_HPP #include #include #include class Tokenizer; class XQILLA_API TokenStore : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TokenStore() {} virtual TokenStream::Ptr findTokens(const XMLCh *searchString) const = 0; virtual unsigned int getStartTokenPosition() const = 0; virtual unsigned int getEndTokenPosition() const = 0; protected: TokenStore() {} }; #endif XQilla-2.3.4/include/xqilla/fulltext/DefaultTokenizer.hpp0000644001725400016040000000306513273140037020417 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEFAULTTOKENIZER_HPP #define _DEFAULTTOKENIZER_HPP #include #include class XQILLA_API DefaultTokenizer : public Tokenizer { public: DefaultTokenizer() {} virtual TokenStream::Ptr tokenize(const Node::Ptr &node, DynamicContext *context) const; virtual TokenStream::Ptr tokenize(const XMLCh *str, XPath2MemoryManager *mm) const; private: class DefaultTokenStream : public TokenStream { public: DefaultTokenStream(const XMLCh *str, XPath2MemoryManager *mm); virtual ~DefaultTokenStream(); virtual TokenInfo next(); private: XMLCh *string_; XMLCh *current_; XMLCh *tokenStart_; unsigned int position_; unsigned int sentence_; unsigned int paragraph_; bool seenEndOfSentence_; XPath2MemoryManager *mm_; }; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTScope.hpp0000644001725400016040000000530713273140037016444 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTSCOPE_HPP #define _FTSCOPE_HPP #include #include class XQILLA_API FTScope : public FTOption { public: enum Type { SAME, DIFFERENT }; FTScope(Type type, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::SCOPE, memMgr), type_(type), unit_(unit), arg_(0) {} FTScope(FTSelection *arg, Type type, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::SCOPE, memMgr), type_(type), unit_(unit), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } Type getType() const { return type_; } FTUnit getUnit() const { return unit_; } private: Type type_; FTUnit unit_; FTSelection *arg_; }; class FTScopeSameMatches : public AllMatches { public: FTScopeSameMatches(const LocationInfo *info, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), unit_(unit), arg_(arg), excludes_(), unitValue_(0) {} ~FTScopeSameMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; unsigned int unitValue_; }; class FTScopeDifferentMatches : public AllMatches { public: FTScopeDifferentMatches(const LocationInfo *info, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), unit_(unit), arg_(arg), excludes_(), unitValuesSeen_() {} ~FTScopeDifferentMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; std::set unitValuesSeen_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/DefaultTokenStore.hpp0000644001725400016040000000455313273140037020545 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEFAULTTOKENSTORE_HPP #define _DEFAULTTOKENSTORE_HPP #include #include #include #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API DefaultTokenStore : public TokenStore { public: typedef std::vector Tokens; class TokenEntryStream : public TokenStream { public: TokenEntryStream(const Tokens &tokens) : it_(tokens.begin()), end_(tokens.end()) {} virtual TokenInfo next() { if(it_ != end_) return *it_++; TokenInfo token; memset(&token, 0, sizeof(TokenInfo)); return token; } private: Tokens::const_iterator it_; Tokens::const_iterator end_; }; DefaultTokenStore(const Node::Ptr &node, const Tokenizer *tokenizer, DynamicContext *context); DefaultTokenStore(XPath2MemoryManager *mm); virtual TokenStream::Ptr findTokens(const XMLCh *searchString) const; virtual unsigned int getStartTokenPosition() const { return 0; } virtual unsigned int getEndTokenPosition() const { return numTokens_ - 1; } private: class TokenEntry { public: void addToken(const TokenInfo &token) { tokens_.push_back(token); } TokenStream::Ptr getTokenStream() const { return new TokenEntryStream(tokens_); } private: Tokens tokens_; }; private: XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf tokens_; unsigned int numTokens_; XPath2MemoryManager *mm_; DynamicContext *context_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTMildnot.hpp0000644001725400016040000000357613273140037017007 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTMILDNOT_HPP #define _FTMILDNOT_HPP #include #include class XQILLA_API FTMildnot : public FTSelection { public: FTMildnot(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; FTSelection *getLeft() const { return left_; } void setLeft(FTSelection *expr) { left_ = expr; } FTSelection *getRight() const { return right_; } void setRight(FTSelection *expr) { right_ = expr; } private: FTSelection *left_, *right_; }; class FTMildnotMatches : public AllMatches { public: FTMildnotMatches(const LocationInfo *info, AllMatches *left, AllMatches *right) : AllMatches(info), left_(left), right_(right) {} ~FTMildnotMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *left_; AllMatches *right_; std::set badTokens_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/TokenInfo.hpp0000644001725400016040000000305013273140037017026 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENINFO_HPP #define _TOKENINFO_HPP #include #include #include struct XQILLA_API TokenInfo { const XMLCh *word_; unsigned int position_; unsigned int sentence_; unsigned int paragraph_; TokenInfo() { word_ = 0; position_ = 0; sentence_ = 0; paragraph_ = 0; } TokenInfo(const XMLCh *word, unsigned int position, unsigned int sentence, unsigned int paragraph) { word_ = word; position_ = position; sentence_ = sentence; paragraph_ = paragraph; } }; class XQILLA_API TokenStream : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TokenStream() {} virtual TokenInfo next() = 0; protected: TokenStream() {} }; #endif XQilla-2.3.4/include/xqilla/fulltext/Tokenizer.hpp0000644001725400016040000000233113273140037017105 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENIZER_HPP #define _TOKENIZER_HPP #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API Tokenizer { public: virtual ~Tokenizer() {} virtual TokenStream::Ptr tokenize(const Node::Ptr &node, DynamicContext *context) const = 0; virtual TokenStream::Ptr tokenize(const XMLCh *string, XPath2MemoryManager *mm) const = 0; protected: Tokenizer() {} }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTContent.hpp0000644001725400016040000000462213273140037017004 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTCONTENT_HPP #define _FTCONTENT_HPP #include class XQILLA_API FTContent : public FTOption { public: enum Type { AT_START, AT_END, ENTIRE_CONTENT }; FTContent(Type type, XPath2MemoryManager *memMgr) : FTOption(FTSelection::CONTENT, memMgr), type_(type), arg_(0) {} FTContent(FTSelection *arg, Type type, XPath2MemoryManager *memMgr) : FTOption(FTSelection::CONTENT, memMgr), type_(type), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } Type getType() const { return type_; } private: Type type_; FTSelection *arg_; }; class FTContentAtStartMatches : public AllMatches { public: FTContentAtStartMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), includes_() {} ~FTContentAtStartMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches includes_; }; class FTContentAtEndMatches : public AllMatches { public: FTContentAtEndMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), includes_() {} ~FTContentAtEndMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches includes_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/AllMatches.hpp0000644001725400016040000000405213273140037017152 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ALLMATCHES_HPP #define _ALLMATCHES_HPP #include #include #include class DynamicContext; class XQILLA_API StringMatch { public: StringMatch() : tokenInfo(), queryPos(0), startToken(false), endToken(false) {} StringMatch(unsigned int qPos, const TokenInfo &tInfo) : tokenInfo(tInfo.word_, tInfo.position_, tInfo.sentence_, tInfo.paragraph_), queryPos(qPos), startToken(false), endToken(false) {} StringMatch(const StringMatch &other) : tokenInfo(other.tokenInfo.word_, other.tokenInfo.position_, other.tokenInfo.sentence_, other.tokenInfo.paragraph_), queryPos(other.queryPos), startToken(other.startToken), endToken(other.endToken) {} TokenInfo tokenInfo; unsigned int queryPos; bool startToken, endToken; }; typedef std::vector StringMatches; class XQILLA_API AllMatches : public LocationInfo { public: virtual ~AllMatches() {} /// Get the next Match from the iterator. Returns false if there is no next value. virtual bool next(DynamicContext *context) = 0; virtual const StringMatches &getStringIncludes() = 0; virtual const StringMatches &getStringExcludes() = 0; protected: AllMatches(const LocationInfo *o) { setLocationInfo(o); } }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTDistance.hpp0000644001725400016040000001150513273140037017122 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTDISTANCE_HPP #define _FTDISTANCE_HPP #include #include class XQILLA_API FTDistance : public FTOption { public: FTDistance(const FTRange &range, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::DISTANCE, memMgr), arg_(0), range_(range), unit_(unit) {} FTDistance(const FTRange &range, FTUnit unit, FTSelection *arg, XPath2MemoryManager *memMgr) : FTOption(FTSelection::DISTANCE, memMgr), arg_(arg), range_(range), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } const FTRange &getRange() const { return range_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; FTRange range_; FTUnit unit_; }; class XQILLA_API FTDistanceLiteral : public FTOption { public: FTDistanceLiteral(FTRange::Type type, unsigned int distance, unsigned int distance2, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(DISTANCE_LITERAL, memMgr), arg_(0), type_(type), distance_(distance), distance2_(distance2), unit_(unit) {} FTDistanceLiteral(FTSelection *arg, FTRange::Type type, unsigned int distance, unsigned int distance2, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(DISTANCE_LITERAL, memMgr), arg_(arg), type_(type), distance_(distance), distance2_(distance2), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } const FTRange::Type getType() const { return type_; } unsigned int getDistance() const { return distance_; } unsigned int getDistance2() const { return distance2_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; FTRange::Type type_; unsigned int distance_, distance2_; FTUnit unit_; }; class FTDistanceMatches : public AllMatches { public: FTDistanceMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), distance_(distance), unit_(unit), arg_(arg), excludes_() {} ~FTDistanceMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); virtual bool distanceMatches(unsigned int actual) const = 0; protected: unsigned int distance_; FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; }; class FTDistanceExactlyMatches : public FTDistanceMatches { public: FTDistanceExactlyMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceAtLeastMatches : public FTDistanceMatches { public: FTDistanceAtLeastMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceAtMostMatches : public FTDistanceMatches { public: FTDistanceAtMostMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceFromToMatches : public FTDistanceMatches { public: FTDistanceFromToMatches(const LocationInfo *info, unsigned int from, unsigned int to, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, from, unit, arg), distance2_(to) {} bool distanceMatches(unsigned int actual) const; private: unsigned int distance2_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTContains.hpp0000644001725400016040000000330313273140037017143 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTCONTAINS_HPP #define _FTCONTAINS_HPP #include #include class FTSelection; class XQILLA_API FTContains : public ASTNodeImpl { public: FTContains(ASTNode *argument, FTSelection *selection, ASTNode *ignore, XPath2MemoryManager *memMgr); ~FTContains(); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getArgument() const { return argument_; } FTSelection *getSelection() const { return selection_; } ASTNode *getIgnore() const { return ignore_; } void setArgument(ASTNode *a) { argument_ = a; } void setSelection(FTSelection *s) { selection_ = s; } void setIgnore(ASTNode *a) { ignore_ = a; } private: ASTNode *argument_; FTSelection *selection_; ASTNode *ignore_; }; #endif XQilla-2.3.4/include/xqilla/fulltext/FTRange.hpp0000644001725400016040000000166213273140037016427 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTRANGE_HPP #define _FTRANGE_HPP class ASTNode; class XQILLA_API FTRange { public: enum Type { EXACTLY, AT_LEAST, AT_MOST, FROM_TO }; Type type; ASTNode *arg1, *arg2; }; #endif XQilla-2.3.4/include/xqilla/fastxdm/0000755001725400016040000000000013273141210014274 500000000000000XQilla-2.3.4/include/xqilla/fastxdm/FastXDMConfiguration.hpp0000644001725400016040000000304013273140037020726 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FASTXDMCONFIGURATION_H #define FASTXDMCONFIGURATION_H #include #include class XQILLA_API FastXDMConfiguration : public XQillaConfiguration { public: virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context); virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual ASTToXML *createASTToXML(); }; #endif XQilla-2.3.4/include/xqilla/context/0000755001725400016040000000000013273141210014312 500000000000000XQilla-2.3.4/include/xqilla/context/impl/0000755001725400016040000000000013273141210015253 500000000000000XQilla-2.3.4/include/xqilla/context/impl/VarHashEntryImpl.hpp0000644001725400016040000000333013273140037021111 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARHASHENTRYIMPL_HPP #define _VARHASHENTRYIMPL_HPP #include #include #include /** The class that stores the values of the variables. */ template class VarHashEntryImpl : public VarHashEntry { public: /// Meaningfull constructor VarHashEntryImpl(const TYPE &value); /** Gets the value of the variable (overload in derived classes for special behaviour) */ virtual const TYPE &getValue() const; /** Sets the value of the variable (overload in derived classes for special behaviour) */ virtual void setValue(const TYPE &value); protected: TYPE _value; }; template VarHashEntryImpl::VarHashEntryImpl(const TYPE &value) : _value(value) { } template const TYPE &VarHashEntryImpl::getValue() const { return _value; } template void VarHashEntryImpl::setValue(const TYPE &value) { _value = value; } #endif XQilla-2.3.4/include/xqilla/context/impl/XQContextImpl.hpp0000644001725400016040000005036213273140037020437 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCONTEXTIMPL_H #define XQCONTEXTIMPL_H #include #include #include #include #include #include #include #include #include class XQillaConfiguration; class FunctionLookup; class XQILLA_API XQContextImpl : public DynamicContext { public: XQContextImpl(XQillaConfiguration *conf, XQilla::Language language, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); ~XQContextImpl(); virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual XQillaConfiguration *getConfiguration() const { return _conf; } virtual XQilla::Language getLanguage() const; ////////////////////////////////////// // XQuery Static Context Accessors // ////////////////////////////////////// /** * Overrides the inherited method, and disowns any output * document that was created with the previous memory manager. */ virtual void setMemoryManager(XPath2MemoryManager *memMgr); /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value); /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const; ////////////////////////////////////// // XQuery Dynamic Context Accessors // ////////////////////////////////////// virtual void testInterrupt() const; ////////////////////////////////// // Dynamic Context Accessors // ////////////////////////////////// /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext(); virtual SequenceBuilder *createSequenceBuilder() const; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory); /** Get the context Item */ virtual Item::Ptr getContextItem() const; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item); /** Get the context position */ virtual size_t getContextPosition() const; /** Set the context position */ virtual void setContextPosition(size_t pos); /** Get the context size */ virtual size_t getContextSize() const; /** Set the context size */ virtual void setContextSize(size_t size); virtual const VariableStore* getVariableStore() const; virtual void setVariableStore(const VariableStore *store); virtual const VariableStore* getGlobalVariableStore() const; virtual void setGlobalVariableStore(const VariableStore *store); virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value); virtual void setExternalVariable(const XMLCh *qname, const Result &value); virtual const RegexGroupStore* getRegexGroupStore() const; virtual void setRegexGroupStore(const RegexGroupStore *store); /** Return the current time */ virtual time_t getCurrentTime() const; /** Set the current time */ virtual void setCurrentTime(time_t newTime); /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration); virtual void registerURIResolver(URIResolver *resolver, bool adopt); virtual URIResolver *getDefaultURIResolver() const; virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt); virtual void setDebugListener(DebugListener *listener); virtual DebugListener *getDebugListener() const; virtual void setStackFrame(const StackFrame *frame); virtual const StackFrame *getStackFrame() const; virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDefaultCollection(const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri); virtual UpdateFactory *createUpdateFactory() const; ////////////////////////////////// // Static Context Accessors // ////////////////////////////////// virtual const StaticType &getContextItemType() const; virtual void setContextItemType(const StaticType &st); virtual bool getXPath1CompatibilityMode() const; virtual void setXPath1CompatibilityMode(bool newMode); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const; virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const; virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const; virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver); virtual const XMLCh* getDefaultElementAndTypeNS() const; virtual void setDefaultElementAndTypeNS(const XMLCh* newNS); virtual const XMLCh* getDefaultFuncNS() const; virtual void setDefaultFuncNS(const XMLCh* newNS); virtual DocumentCache* getDocumentCache() const; virtual void setDocumentCache(DocumentCache* docCache); virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual void setModuleResolver(ModuleResolver *resolver); virtual ModuleResolver *getModuleResolver() const; virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location); virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver); virtual ExternalFunctionResolver *getExternalFunctionResolver() const; virtual VariableTypeStore* getVariableTypeStore(); virtual void addTemplate(XQUserFunction *tp); virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const; virtual const UserFunctions &getTemplateRules() const; virtual void addCustomFunction(FuncFactory *func); virtual void removeCustomFunction(FuncFactory *func); virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const; virtual void addExternalFunction(const ExternalFunction *func); virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location) const; /** Add a collation */ virtual void addCollation(Collation* collation); /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location) const; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI); /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode); /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder); /** Return the base URI */ virtual const XMLCh* getBaseURI() const; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI); /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode); /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value); /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value); /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode); /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener); /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const; virtual void setFTCase(FTCaseOption option) { _ftCaseOption = option; } virtual FTCaseOption getFTCase() { return _ftCaseOption; } virtual void setModule(XQQuery *module) { _module = module; } virtual XQQuery *getModule() const { return _module; } ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// virtual bool getProjection() const { return _projection; } virtual void setProjection(bool enabled) { _projection = enabled; } virtual bool getDoLintWarnings() const { return _lint; } virtual void setDoLintWarnings(bool enabled) { _lint = enabled; } virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0); /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const; protected: XQillaConfiguration *_conf; XQilla::Language _language; // The memory manager used to create this context XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; // used for managing the memory of objects inside this context ProxyMemoryManager _internalMM; //////////////////////////////// // Static Context variables // //////////////////////////////// /** Static type of the context item */ StaticType _contextItemType; /** XPath 1.0 compatibility mode. This value is true if rules for * backward compatibility with XPath Version 1.0 are in effect; * otherwise it is false */ bool _xpath1Compatibility; /** In-scope namespaces. This is a set of (prefix, URI) pairs. * The in-scope namespaces are used for resolving prefixes used * in QNames within the expression */ const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _nsResolver; /** The original (global scope) DOMXPathNSResolver */ XQillaNSResolver* _globalNSResolver; /** Default element/type namespace. This is a namespace URI or "none". This * namespace is used for any unprefixed QName appearing in a * position where an element or type name is expected. */ const XMLCh* _defaultElementNS; /** Default function namespace. This is a namespace URI. * This namespace URI is used for any unprefixed QName appearing * as the function name in a function call. */ const XMLCh* _functionNS; /** In-scope schema definitions. This is a generic term for all * the element, attribute, and type definitions that are in scope * during processing of an expression. */ DocumentCache* _docCache; bool _docCacheOwned; /** In-scope variable types. This is a set of (QName, type) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the type represents its * static data type */ VariableTypeStore* _varTypeStore; /** Stores the available named templates */ XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf _templateNameMap; /** Stores the available templates with a pattern */ UserFunctions _templates; /** In-scope functions. This part of the static context defines the * set of functions that are available to be called from within an * expression. Each function is uniquely identified by its QName and * its arity (number of parameters). The static context maps the QName * and arity into a function signature and a function definition. The * function signature specifies the static types of the function * parameters and the function result. */ FunctionLookup* _functionTable; /** In-scope collations. This is a set of (URI, collation) pairs. It * defines the names of the collations that are available for use in * function calls that take a collation name as an argument. A collation * may be regarded as an object that supports two functions: a function * that given a set of strings, returns a sequence containing those strings * in sorted order; and a function that given two strings, returns true if * they are considered equal, and false if not. */ std::vector > _collations; /** Default collation. This is a collation. This collation is used by * string comparison functions when no explicit collation is specified. */ const XMLCh* _defaultCollation; /** Construction mode. The construction mode governs the behavior of * element constructors. If construction mode is preserve, the type * of a constructed element node is xs:anyType, and the attributes * and descendants of the constructed element retain their original * types. If construction mode is strip, the type of the constructed * element node and all its descendants is xdt:untyped, and attributes * of the constructed element have type xdt:untypedAtomic */ ConstructionMode _constructionMode; /** Ordering mode, which has the value ordered or unordered, affects * the ordering of the result sequence returned by path expressions, * union, intersect, and except expressions, and FLWOR expressions * that have no order by clause. */ NodeSetOrdering _ordering; /** Default ordering for empty sequences. This component controls whether an * empty sequence is interpreted as the greatest value or as the least value * during processing of an order by clause in a FLWOR expression, as described * in 3.8.3 Order By and Return Clauses.] Its value may be greatest or least. */ FLWOROrderingMode _flworOrderingMode; /** Boundary-space policy. This component controls the processing of boundary * whitespace by element constructors, as described in 3.7.1.4 Whitespace * in Element Content.] Its value may be preserve or strip. */ bool _bPreserveBoundarySpace; /** Copy-namespaces mode. This component controls the namespace bindings * that are assigned when an existing element node is copied by an element * constructor, as described in 3.7.1 Direct Element Constructors. Its value * consists of two parts: preserve or no-preserve, and inherit or no-inherit. */ bool _bPreserveNamespaces, _bInheritNamespaces; /** The revalidation mode for XQuery Update */ DocumentCache::ValidationMode _revalidationMode; /** The message listener, for warnings and trace messages */ MessageListener *_messageListener; /** The module */ XQQuery *_module; /** Base URI. This is an absolute URI, used when necessary in the * resolution of relative URIs (for example, by the fn:resolve- uri * function.) The base URI is always provided by the external environment. */ const XMLCh* _baseURI; ///////////////////////////////// // Dynamic Context Variables // ///////////////////////////////// /** The context item is the item currently being processed. */ Item::Ptr _contextItem; /** The context position is the position of the context item within * the sequence of items currently being processed. */ size_t _contextPosition; /** The context size is the number of items in the sequence of * items currently being processed. */ size_t _contextSize; /** In-scope variable values. This is a set of (QName, Sequence) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the Sequence represents its * value */ const VariableStore *_varStore; const VariableStore *_globalVarStore; VarStoreImpl _defaultVarStore; const RegexGroupStore *_regexStore; /** Current date and time. This information represents an * implementation-dependent point in time during processing of a query * or transformation */ time_t _currentTime; /** Implicit timezone. This is the timezone to be used when a date, * time, or dateTime value that does not have a timezone is used in a * comparison or in any other operation. This value is an instance of * xdt:dayTimeDuration */ ATDurationOrDerived::Ptr _implicitTimezone; /** For each atomic type in the in-scope type definitions, there is * a constructor function in the in-scope functions. Constructor * functions are discussed in 3.10.4 Constructor Functions */ ItemFactory* _itemFactory; //////////////////////////////////////// // XQilla Context specific variables // //////////////////////////////////////// struct ResolverEntry { ResolverEntry() : resolver(0), adopt(false) {} ResolverEntry(URIResolver *r, bool a) : resolver(r), adopt(a) {} URIResolver *resolver; bool adopt; }; /// A stack of URIResolver pointers std::vector > _resolvers; ResolverEntry _defaultResolver; ModuleResolver *_moduleResolver; ExternalFunctionResolver *_exFuncResolver; std::vector > _exFuncs; DebugListener *_debugListener; const StackFrame *_stackFrame; bool _projection; bool _lint; unsigned int _tmpVarCounter; // used for memory management in expression evaluation XPath2MemoryManager* _memMgr; //Full text related FTCaseOption _ftCaseOption; }; #endif XQilla-2.3.4/include/xqilla/context/impl/XQDynamicContextImpl.hpp0000644001725400016040000006137713273140037021754 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDYNAMICCONTEXTIMPL_H #define XQDYNAMICCONTEXTIMPL_H #include #include #include #include #include #include class XQILLA_API XQDynamicContextImpl : public DynamicContext { public: XQDynamicContextImpl(XQillaConfiguration *conf, const StaticContext *staticContext, VarStoreImpl *defaultVarStore, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ~XQDynamicContextImpl(); virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual XQillaConfiguration *getConfiguration() const; virtual XQilla::Language getLanguage() const; ////////////////////////////////////// // XQuery Static Context Accessors // ////////////////////////////////////// /** * Overrides the inherited method, and disowns any output * document that was created with the previous memory manager. */ virtual void setMemoryManager(XPath2MemoryManager *memMgr); /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value); /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const; ////////////////////////////////////// // XQuery Dynamic Context Accessors // ////////////////////////////////////// virtual void testInterrupt() const; ////////////////////////////////// // Dynamic Context Accessors // ////////////////////////////////// /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext(); virtual SequenceBuilder *createSequenceBuilder() const; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory); /** Get the context Item */ virtual Item::Ptr getContextItem() const; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item); /** Get the context position */ virtual size_t getContextPosition() const; /** Set the context position */ virtual void setContextPosition(size_t pos); /** Get the context size */ virtual size_t getContextSize() const; /** Set the context size */ virtual void setContextSize(size_t size); virtual const VariableStore* getVariableStore() const; virtual void setVariableStore(const VariableStore *store); virtual const VariableStore* getGlobalVariableStore() const; virtual void setGlobalVariableStore(const VariableStore *store); virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value); virtual void setExternalVariable(const XMLCh *qname, const Result &value); virtual const RegexGroupStore* getRegexGroupStore() const; virtual void setRegexGroupStore(const RegexGroupStore *store); /** Return the current time */ virtual time_t getCurrentTime() const; /** Set the current time */ virtual void setCurrentTime(time_t newTime); /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration); virtual void registerURIResolver(URIResolver *resolver, bool adopt); virtual URIResolver *getDefaultURIResolver() const; virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt); virtual void setDebugListener(DebugListener *listener); virtual DebugListener *getDebugListener() const; virtual void setStackFrame(const StackFrame *frame); virtual const StackFrame *getStackFrame() const; virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDefaultCollection(const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri); virtual UpdateFactory *createUpdateFactory() const; ////////////////////////////////// // Static Context Accessors // ////////////////////////////////// virtual const StaticType &getContextItemType() const; virtual void setContextItemType(const StaticType &st); virtual bool getXPath1CompatibilityMode() const; virtual void setXPath1CompatibilityMode(bool newMode); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const; virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const; virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const; virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver); virtual const XMLCh* getDefaultElementAndTypeNS() const; virtual void setDefaultElementAndTypeNS(const XMLCh* newNS); virtual const XMLCh* getDefaultFuncNS() const; virtual void setDefaultFuncNS(const XMLCh* newNS); virtual DocumentCache* getDocumentCache() const; virtual void setDocumentCache(DocumentCache* docCache); virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual void setModuleResolver(ModuleResolver *resolver); virtual ModuleResolver *getModuleResolver() const; virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location); virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver); virtual ExternalFunctionResolver *getExternalFunctionResolver() const; virtual VariableTypeStore* getVariableTypeStore(); virtual void addTemplate(XQUserFunction *tp); virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const; virtual const UserFunctions &getTemplateRules() const; virtual void addCustomFunction(FuncFactory *func); virtual void removeCustomFunction(FuncFactory *func); virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const; virtual void addExternalFunction(const ExternalFunction *func); virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location) const; /** Add a collation */ virtual void addCollation(Collation* collation); /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location) const; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI); /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode); /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder); /** Return the base URI */ virtual const XMLCh* getBaseURI() const; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI); /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode); /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value); /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value); /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode); /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener); /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const; virtual void setModule(XQQuery *module); virtual XQQuery *getModule() const; virtual void setFTCase(FTCaseOption option); virtual FTCaseOption getFTCase(); ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// virtual bool getProjection() const { return _projection; } virtual void setProjection(bool enabled) { _projection = enabled; } virtual bool getDoLintWarnings() const; virtual void setDoLintWarnings(bool enabled); virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0); /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const; protected: XQillaConfiguration *_conf; const StaticContext *_staticContext; // The memory manager used to create this context XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; // used for managing the memory of objects inside this context ProxyMemoryManager _internalMM; /** In-scope namespaces. This is a set of (prefix, URI) pairs. * The in-scope namespaces are used for resolving prefixes used * in QNames within the expression * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _nsResolver; /** Default collation. This is a collation. This collation is used by * string comparison functions when no explicit collation is specified. * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XMLCh* _defaultCollation; /** Default element/type namespace. This is a namespace URI or "none". This * namespace is used for any unprefixed QName appearing in a * position where an element or type name is expected. * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XMLCh* _defaultElementNS; /** The context item is the item currently being processed. */ Item::Ptr _contextItem; /** The context position is the position of the context item within * the sequence of items currently being processed. */ size_t _contextPosition; /** The context size is the number of items in the sequence of * items currently being processed. */ size_t _contextSize; /** In-scope variable values. This is a set of (QName, Sequence) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the Sequence represents its * value */ VarStoreImpl *_defaultVarStore; bool _defaultVarStoreOwned; const VariableStore *_varStore; const VariableStore *_globalVarStore; const RegexGroupStore *_regexStore; /** Current date and time. This information represents an * implementation-dependent point in time during processing of a query * or transformation */ time_t _currentTime; /** Implicit timezone. This is the timezone to be used when a date, * time, or dateTime value that does not have a timezone is used in a * comparison or in any other operation. This value is an instance of * xdt:dayTimeDuration */ ATDurationOrDerived::Ptr _implicitTimezone; /** For each atomic type in the in-scope type definitions, there is * a constructor function in the in-scope functions. Constructor * functions are discussed in 3.10.4 Constructor Functions */ ItemFactory* _itemFactory; bool _itemFactoryOwned; struct ResolverEntry { ResolverEntry() : resolver(0), adopt(false) {} ResolverEntry(URIResolver *r, bool a) : resolver(r), adopt(a) {} URIResolver *resolver; bool adopt; }; /// A stack of URIResolver pointers std::vector > _resolvers; ResolverEntry _defaultResolver; DebugListener *_debugListener; const StackFrame *_stackFrame; /** Contains the XMLGrammarPool of the StaticContext, and is used to * load xml documents for resolveCollection and resolveDocument */ DocumentCache* _docCache; /** The message listener, for warnings and trace messages */ MessageListener *_messageListener; bool _projection; // used for memory management XPath2MemoryManager* _memMgr; }; inline void XQDynamicContextImpl::setContextItemType(const StaticType &) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setXPath1CompatibilityMode(bool newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDefaultFuncNS(const XMLCh* newNS) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setBaseURI(const XMLCh* newURI) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addTemplate(XQUserFunction *tp) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addCustomFunction(FuncFactory *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::removeCustomFunction(FuncFactory *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addExternalFunction(const ExternalFunction *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addCollation(Collation* collation) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline VariableTypeStore* XQDynamicContextImpl::getVariableTypeStore() { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); return 0; } inline void XQDynamicContextImpl::setConstructionMode(StaticContext::ConstructionMode newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setPreserveBoundarySpace(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDefaultFLWOROrderingMode(StaticContext::FLWOROrderingMode newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setInheritNamespaces(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setPreserveNamespaces(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setNodeSetOrdering(NodeSetOrdering newOrder) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setModuleResolver(ModuleResolver *resolver) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setExternalFunctionResolver(ExternalFunctionResolver *resolver) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setRevalidationMode(DocumentCache::ValidationMode mode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline const XMLCh *XQDynamicContextImpl::allocateTempVarName(const XMLCh *prefix) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); return 0; } inline void XQDynamicContextImpl::setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDoLintWarnings(bool enabled) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setModule(XQQuery *module) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline const StaticType &XQDynamicContextImpl::getContextItemType() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline const XMLCh* XQDynamicContextImpl::getDefaultFuncNS() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline StaticContext::NodeSetOrdering XQDynamicContextImpl::getNodeSetOrdering() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ModuleResolver * XQDynamicContextImpl::getModuleResolver() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ExternalFunctionResolver * XQDynamicContextImpl::getExternalFunctionResolver() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ASTNode* XQDynamicContextImpl::lookUpFunction(const XMLCh* uri, const XMLCh* name, const VectorOfASTNodes& v, const LocationInfo *location) const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline const ExternalFunction *XQDynamicContextImpl::lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline StaticContext::FLWOROrderingMode XQDynamicContextImpl::getDefaultFLWOROrderingMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getXPath1CompatibilityMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getPreserveBoundarySpace() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline DocumentCache::ValidationMode XQDynamicContextImpl::getRevalidationMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getDoLintWarnings() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQQuery *XQDynamicContextImpl::getModule() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline void XQDynamicContextImpl::setFTCase(FTCaseOption option){ XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQDynamicContextImpl::FTCaseOption XQDynamicContextImpl::getFTCase(){ XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQilla::Language XQDynamicContextImpl::getLanguage() const { return _staticContext->getLanguage(); } inline const XMLCh* XQDynamicContextImpl::getBaseURI() const { return _staticContext->getBaseURI(); } inline Collation* XQDynamicContextImpl::getCollation(const XMLCh* URI, const LocationInfo *location) const { return _staticContext->getCollation(URI, location); } inline bool XQDynamicContextImpl::isTypeOrDerivedFromType(const XMLCh* uri, const XMLCh* typeName, const XMLCh* uriToCheck, const XMLCh* typeNameToCheck) const { return _staticContext->isTypeOrDerivedFromType(uri, typeName, uriToCheck, typeNameToCheck); } inline bool XQDynamicContextImpl::getInheritNamespaces() const { return _staticContext->getInheritNamespaces(); } inline bool XQDynamicContextImpl::getPreserveNamespaces() const { return _staticContext->getPreserveNamespaces(); } inline StaticContext::ConstructionMode XQDynamicContextImpl::getConstructionMode() const { return _staticContext->getConstructionMode(); } inline const UserFunctions &XQDynamicContextImpl::getTemplateRules() const { return _staticContext->getTemplateRules(); } inline const XQUserFunction *XQDynamicContextImpl::lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const { return _staticContext->lookUpNamedTemplate(uri, name); } #endif XQilla-2.3.4/include/xqilla/context/impl/CodepointCollation.hpp0000644001725400016040000000225313273140037021505 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CODEPOINTCOLLATION_HPP #define CODEPOINTCOLLATION_HPP #include #include class XPath2MemoryManager; class XQILLA_API CodepointCollation : public CollationHelper { public: CodepointCollation(); static const XMLCh* getCodepointCollationName(); virtual const XMLCh* getCollationName() const; virtual int compare(const XMLCh* string1, const XMLCh* string2) const; }; #endif XQilla-2.3.4/include/xqilla/context/impl/CollationImpl.hpp0000644001725400016040000000312113273140037020455 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COLLATIONIMPL_HPP #define COLLATIONIMPL_HPP #include #include #include class Item; class XPath2MemoryManager; class DynamicContext; class XQILLA_API CollationHelper { public: virtual ~CollationHelper() {}; virtual const XMLCh* getCollationName() const = 0; virtual int compare(const XMLCh* string1, const XMLCh* string2) const = 0; }; class XQILLA_API CollationImpl : public Collation { public: CollationImpl(XPath2MemoryManager* memMgr, CollationHelper* helper); virtual const XMLCh* getCollationName() const; virtual Sequence sort(Sequence data, const DynamicContext* context) const; virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const; protected: XPath2MemoryManager* _memMgr; CollationHelper* _helper; }; #endif XQilla-2.3.4/include/xqilla/context/impl/VariableStoreTemplate.hpp0000644001725400016040000002061113273140037022150 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLESTORETEMPLATE_HPP #define _VARIABLESTORETEMPLATE_HPP #include #include #include #include #include #include #include #include template class VarHashEntry; class XPath2MemoryManager; /** This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. */ template class VariableStoreTemplate { public: typedef Scope MyScope; VariableStoreTemplate(XPath2MemoryManager *memMgr); /** default destructor */ ~VariableStoreTemplate(); void clear(); void addScope(typename MyScope::Type type); void addScope(MyScope *scope); /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ void removeScope(); /** Removes the top level scope from the store, and returns it. The scope must have release called on it, otherwise it will leak memory. */ MyScope *popScope(); void setCurrentScope(MyScope *scope); /** Declares and/or sets a variable in the global scope. */ void setGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Deletes a variable from the global scope. */ void delGlobalVar(const XMLCh* namespaceURI, const XMLCh* name); /** Gets a variable from the global scope */ VarHashEntry* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name) const; /** Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made) */ void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Declares and/or sets a variable in the top level scope. */ void setVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Looks up the value of a variable in the current scope, using ident as an qname. Returns the VarHashEntry for the variable, or null if it doesn't exist*/ VarHashEntry* getVar(const XMLCh* namespaceURI, const XMLCh* name) const; /** Deletes a variable from the current scope. */ void delVar(const XMLCh* namespaceURI, const XMLCh* name); const MyScope *getCurrentScope() const { return _current; } MyScope *getCurrentScope() { return _current; } const MyScope *getGlobalScope() const { return _global; } const XMLCh *lookUpNamespace(unsigned int nsID) const { return _uriPool.getValueForId(nsID); } private: /** find routine which returns the scope in the hash table which contains the identifiers, or the current/global one if it can't be found. */ MyScope* find(unsigned int nsID, const XMLCh* name) const; XERCES_CPP_NAMESPACE_QUALIFIER XMLStringPool _uriPool; XPath2MemoryManager* _memMgr; MyScope *_global, *_current; }; template VariableStoreTemplate::VariableStoreTemplate(XPath2MemoryManager* memMgr) : _uriPool(17, memMgr) { _memMgr=memMgr; _global=new (_memMgr) MyScope(_memMgr, MyScope::GLOBAL_SCOPE); _current=NULL; } template VariableStoreTemplate::~VariableStoreTemplate() { clear(); delete _global; } template void VariableStoreTemplate::clear() { // Remove all the scopes while(_current) { removeScope(); } // Clear the global scope _global->clear(); } template void VariableStoreTemplate::addScope(typename MyScope::Type type) { addScope(new (_memMgr) MyScope(_memMgr, type)); } template void VariableStoreTemplate::addScope(MyScope *scope) { scope->setNext(_current); setCurrentScope(scope); } template void VariableStoreTemplate::setCurrentScope(MyScope *scope) { _current = scope; } template void VariableStoreTemplate::removeScope() { delete popScope(); } template typename VariableStoreTemplate::MyScope *VariableStoreTemplate::popScope() { assert( _current!=NULL ); MyScope *result = _current; _current = _current->getNext(); return result; } template void VariableStoreTemplate::setGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); VarHashEntry* result=_global->get(nsID, name); if(result) result->setValue(value); else _global->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } template void VariableStoreTemplate::setVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); MyScope* scope=find(nsID, name); VarHashEntry* result = scope->get(nsID, name); if(result) result->setValue(value); else scope->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } template void VariableStoreTemplate::declareVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); _current->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } /** Returns a null VarHashEntry if unsuccessful */ template VarHashEntry* VariableStoreTemplate::getVar(const XMLCh* namespaceURI, const XMLCh* name) const { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) return find(nsID, name)->get(nsID, name); return NULL; } template VarHashEntry* VariableStoreTemplate::getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name) const { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) return _global->get(nsID, name); return 0; } template void VariableStoreTemplate::delVar( const XMLCh* namespaceURI, const XMLCh* name) { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) find(nsID, name)->remove(nsID, name); } template void VariableStoreTemplate::delGlobalVar( const XMLCh* namespaceURI, const XMLCh* name) { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) _global->remove(nsID, name); } template typename VariableStoreTemplate::MyScope* VariableStoreTemplate::find(unsigned int nsID, const XMLCh* name) const { // Check the local scopes MyScope* index=_current; while(index) { if(index->get(nsID, name)!=NULL) return index; if(index->getType() == MyScope::LOCAL_SCOPE) break; index=index->getNext(); } // Check the global scope if(_global->get(nsID, name)!=NULL) return _global; // If we can't find it anywhere, then return the top level scope. // This lets us set it in the correct place. // For gets, we could return any scope. return _current==NULL?_global:_current; } #endif XQilla-2.3.4/include/xqilla/context/impl/ItemFactoryImpl.hpp0000644001725400016040000001656513273140037020777 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ITEMFACTORYIMPL_HPP #define ITEMFACTORYIMPL_HPP #include #include class DatatypeLookup; class DocumentCache; class XQILLA_API ItemFactoryImpl : public ItemFactory { public: ItemFactoryImpl(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ItemFactoryImpl(DatatypeLookup *datatypeLookup); virtual ~ItemFactoryImpl(); /* @name Atomic type factory methods */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const; virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context); virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* @name Number factory methods */ virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* @name Date / time factory methods */ virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context); virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context); virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context); virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context); /* @name Other factory methods */ virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context); virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context); virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context); virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext* context); protected: DatatypeLookup *datatypeLookup_; }; #endif XQilla-2.3.4/include/xqilla/context/impl/VarStoreImpl.hpp0000644001725400016040000000537513273140037020313 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARSTOREIMPL_HPP #define _VARSTOREIMPL_HPP #include #include #include #include #include class DynamicContext; class StaticAnalysis; /** Default implementation of VariableStore that stores variable values in a hash map, and proxies calls to a parent VariableStore if the value is not found in it's map. */ class XQILLA_API VarStoreImpl : public VariableStore { public: VarStoreImpl(XPath2MemoryManager *mm, const VariableStore *parent = 0); VarStoreImpl(const VarStoreImpl &other, XPath2MemoryManager *mm); ~VarStoreImpl(); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; void setVar(const XMLCh *namespaceURI, const XMLCh *name, const Result &value, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); void clear(); void cacheVariableStore(const StaticAnalysis &src, const VariableStore *toCache); private: class VarEntry { public: VarEntry(const XMLCh *uri, const XMLCh *name, const Result &result, unsigned int readCount, VarEntry *prev); VarEntry(const XMLCh *uri, const XMLCh *name, const ResultBuffer &buffer, VarEntry *prev); const XMLCh *uri, *name; ResultBuffer buffer; VarEntry *prev; }; VarEntry *store_; const VariableStore *parent_; XPath2MemoryManager *mm_; }; class XQILLA_API SingleVarStore : public VariableStore { public: SingleVarStore(); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; void setAsVariableStore(const XMLCh *namespaceURI, const XMLCh *name, DynamicContext *context); void unsetAsVariableStore(DynamicContext *context); Sequence value; private: const XMLCh *uri_, *name_; const VariableStore *parent_; }; #endif XQilla-2.3.4/include/xqilla/context/ModuleResolver.hpp0000644001725400016040000000242313273140037017721 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MODULERESOLVER_HPP #define _MODULERESOLVER_HPP #include class StaticContext; class XQILLA_API ModuleResolver { public: /** virtual destructor, does nothing */ virtual ~ModuleResolver() {}; /** Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI. If the URI is unknown, returns false, otherwise returns true. */ virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/UpdateFactory.hpp0000644001725400016040000000515413273140037017530 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UPDATEFACTORY_HPP #define _UPDATEFACTORY_HPP #include #include #include class PendingUpdateList; class PendingUpdate; class DynamicContext; class XQILLA_API UpdateFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~UpdateFactory() {} virtual void applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode); virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) {} virtual void applyPut(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyRename(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyDelete(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) = 0; virtual void completeUpdate(DynamicContext *context) = 0; protected: DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.4/include/xqilla/context/MessageListener.hpp0000644001725400016040000000265113273140037020047 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MESSAGELISTENER_HPP #define _MESSAGELISTENER_HPP #include #include class LocationInfo; class DynamicContext; class Sequence; /** * A class used to listen for warnings or trace information */ class XQILLA_API MessageListener { public: /* virtual destructor, does nothing */ virtual ~MessageListener() {}; /** * Called to report a warning message */ virtual void warning(const XMLCh *message, const LocationInfo *location) = 0; /** * Called to report a trace message */ virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/Scope.hpp0000644001725400016040000000663113273140037016030 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Scope */ #ifndef _SCOPE_HPP #define _SCOPE_HPP #include #include #include #include #include template class VarHashEntry; /** used inside VariableStore to implement variable scoping */ template class Scope : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** enum for classifying type of scope */ typedef enum { GLOBAL_SCOPE, LOCAL_SCOPE, LOGICAL_BLOCK_SCOPE } Type; typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< VarHashEntry > VarHash; /** constructor. */ Scope(XPath2MemoryManager* memMgr, Type type); ~Scope(); void clear(); Type getType() const; VarHashEntry* get(unsigned int nsID, const XMLCh* name); void put(unsigned int nsID, const XMLCh* name, VarHashEntry* value); void remove(unsigned int nsID, const XMLCh* name); std::vector< std::pair > getVars() const; Scope* getNext(); void setNext(Scope* next); private: typename Scope::Type _type; VarHash _map; XPath2MemoryManager* _memMgr; Scope* _next; }; template Scope::Scope(XPath2MemoryManager* memMgr, Type type) : _map(17, true, memMgr) { _memMgr=memMgr; _type = type; _next = NULL; } template void Scope::clear() { _map.removeAll(); } template typename Scope::Type Scope::getType() const { return _type; } template VarHashEntry* Scope::get(unsigned int nsID, const XMLCh* name) { return _map.get(name,nsID); } template void Scope::put(unsigned int nsID, const XMLCh* name, VarHashEntry* value) { _map.put((void*)_memMgr->getPooledString(name),nsID,value); } template void Scope::remove(unsigned int nsID, const XMLCh* name) { _map.removeKey(name,nsID); } template std::vector< std::pair > Scope::getVars() const { std::vector< std::pair > result; XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOfEnumerator< VarHashEntry > iterator(const_cast(&_map)); while(iterator.hasMoreElements()) { XMLCh* name; int nsID; iterator.nextElementKey((void*&)name, nsID); result.push_back(std::pair(nsID,name)); } return result; } template Scope::~Scope() { _map.removeAll(); } template Scope* Scope::getNext() { return _next; } template void Scope::setNext(Scope* next) { _next=next; } #endif // _SCOPE_HPP XQilla-2.3.4/include/xqilla/context/DynamicContext.hpp0000644001725400016040000001501713273140037017706 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DYNAMICCONTEXT_HPP #define _DYNAMICCONTEXT_HPP #include #include class Sequence; class Result; class Item; class URIResolver; class VariableStore; class SequenceBuilder; class UpdateFactory; class RegexGroupStore; class DebugListener; class StackFrame; /// The execution time dynamic context interface class XQILLA_API DynamicContext : public StaticContext { public: virtual ~DynamicContext() {}; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext() = 0; /** Get the context Item */ virtual Item::Ptr getContextItem() const = 0; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item) = 0; /** Get the context position */ virtual size_t getContextPosition() const = 0; /** Set the context position */ virtual void setContextPosition(size_t pos) = 0; /** Get the context size */ virtual size_t getContextSize() const = 0; /** Set the context size */ virtual void setContextSize(size_t size) = 0; /** get the variable store */ virtual const VariableStore* getVariableStore() const = 0; /** set the variable store */ virtual void setVariableStore(const VariableStore *store) = 0; /** get the variable store for globally scoped variables */ virtual const VariableStore* getGlobalVariableStore() const = 0; /** set the variable store for globally scoped variables */ virtual void setGlobalVariableStore(const VariableStore *store) = 0; /** set the value of an external global variable with the given uri/localname pair */ virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) = 0; /** set the value of an external global variable with the given QName */ virtual void setExternalVariable(const XMLCh *qname, const Result &value) = 0; /** get the regex group store */ virtual const RegexGroupStore* getRegexGroupStore() const = 0; /** set the regex group store */ virtual void setRegexGroupStore(const RegexGroupStore *store) = 0; /** Return the current time */ virtual time_t getCurrentTime() const = 0; /** Set the current time */ virtual void setCurrentTime(time_t newTime) = 0; /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const = 0; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) = 0; ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// /** Register a callback object for resolving URIs. Multiple URIResolver objects can be registered with the DynamicContext at the same time. The most recently added URIResolver will be called first, and if it returns false, subsequent ones will be called - ending in a call to the fallback routines. If "adopt" is false, the DynamicContext will not adopt this object, making the user responsible for making sure that the URIResolver object's lifespan matches or exceeds the life of the DynamicContext. */ virtual void registerURIResolver(URIResolver *resolver, bool adopt) = 0; /** Returns the default URIResolver */ virtual URIResolver *getDefaultURIResolver() const = 0; /** Sets the default URIResolver */ virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt) = 0; /** Set the listener for debug messages */ virtual void setDebugListener(DebugListener *listener) = 0; /** Gets the listener for debug messages */ virtual DebugListener *getDebugListener() const = 0; /** Sets the current stack frame whilst debugging */ virtual void setStackFrame(const StackFrame *frame) = 0; /** Gets the listener for debug messages */ virtual const StackFrame *getStackFrame() const = 0; /** Parse an XML document from the provided InputSource */ virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the given uri (and baseUri) to an XML document. If the uri is relative, the base uri is obtained from the context. */ virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the given uri (and baseUri) to a sequence of Node objects. If the uri is relative, the base uri is obtained from the context. */ virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the default collection to a sequence of Node objects. */ virtual Sequence resolveDefaultCollection(const QueryPathNode *projection = 0) = 0; /** Attempts to put the document specified to the given URI by calling the registered URIResolver objects. Returns whether the operation was successful. */ virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri) = 0; /** Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence. */ virtual SequenceBuilder *createSequenceBuilder() const = 0; /** Creates a new UpdateFactory, used for performing updates. Caller owns the returned object, and should delete it */ virtual UpdateFactory *createUpdateFactory() const = 0; /** Test if the query should be interrupted, and throw if so. */ virtual void testInterrupt() const = 0; }; #endif XQilla-2.3.4/include/xqilla/context/ExternalFunctionResolver.hpp0000644001725400016040000000245413273140037021770 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXTERNALFUNCTIONRESOLVER_HPP #define _EXTERNALFUNCTIONRESOLVER_HPP #include class StaticContext; class ExternalFunction; class XQILLA_API ExternalFunctionResolver { public: virtual ~ExternalFunctionResolver() {}; /** Returns an new ExternalFunction object for the given uri, name and number of arguments. The caller is reponsible for deleting the ExternalFunction returned. */ virtual ExternalFunction *resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext* context) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/VariableStore.hpp0000644001725400016040000000265013273140037017516 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLESTORE_HPP #define _VARIABLESTORE_HPP #include #include #include class Result; /** The pure virtual base class for accessing variables at runtime. */ class XQILLA_API VariableStore { public: /** default destructor */ virtual ~VariableStore() {}; /** Looks up the value of a variable by namespace URI and localname pair. */ virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const = 0; /** Fills the vector provided with the uri and localname of the variables in scope */ virtual void getInScopeVariables(std::vector > &variables) const = 0; }; #endif XQilla-2.3.4/include/xqilla/context/URIResolver.hpp0000644001725400016040000000570013273140037017134 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _URIRESOLVER_HPP #define _URIRESOLVER_HPP #include #include #include class DynamicContext; class Sequence; class QueryPathNode; /** * This is an abstract class used to resolve URIs in different ways. The user should * derive a concrete class from URIResolver, and use the DynamicContext::registerURIResolver() * method to add this resolver to the list used by XQilla. */ class XQILLA_API URIResolver : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** virtual destructor, does nothing */ virtual ~URIResolver() {}; /** * Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri * is relative, the base uri can be obtained from the context. If the uri is not handled * by this URIResolver, returns false, otherwise returns true. */ virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri * is relative, the base uri can be obtained from the context. If the uri is not handled * by this URIResolver, returns false, otherwise returns true. */ virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Resolve the default collection. If it is not defined, returns false, otherwise returns true. */ virtual bool resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Called with any document that has been updated, to allow the user to save the document in any manner applicable. * The uri parameter will be the argument to the fn:put() function if that was called with the document - otherwise it * will be the document URI of the document. If this URIResolver successfully handled the putDocument() request, the method * should return true, otherwise it should return false and subsequent URIResolver objects will be called to handle the * document. */ virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/Collation.hpp0000644001725400016040000000231513273140037016676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COLLATION_HPP #define COLLATION_HPP #include #include class Sequence; class DynamicContext; class XQILLA_API Collation { public: virtual ~Collation() {}; virtual const XMLCh* getCollationName() const = 0; virtual Sequence sort(Sequence data, const DynamicContext* context) const = 0; virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const = 0; protected: Collation() {} }; #endif XQilla-2.3.4/include/xqilla/context/StaticContext.hpp0000644001725400016040000003256313273140037017556 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICCONTEXT_HPP #define _STATICCONTEXT_HPP #include #include #include #include #include #include class DynamicContext; class XPath2MemoryManager; class FuncFactory; class DatatypeFactory; class Collation; class VariableTypeStore; class ItemFactory; class StaticType; class ModuleResolver; class ExternalFunctionResolver; class MessageListener; class ExternalFunction; class XQillaConfiguration; class XQUserFunction; class XQillaNSResolver; // Copied from ASTNode.hpp typedef std::vector > VectorOfASTNodes; typedef std::vector > UserFunctions; XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; class DOMXPathNSResolver; class XMLEntityResolver; XERCES_CPP_NAMESPACE_END /// The parse time static context interface class XQILLA_API StaticContext : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef enum { ORDERING_ORDERED, ORDERING_UNORDERED } NodeSetOrdering; typedef enum { CONSTRUCTION_MODE_PRESERVE, CONSTRUCTION_MODE_STRIP } ConstructionMode; typedef enum { FLWOR_ORDER_EMPTY_GREATEST, FLWOR_ORDER_EMPTY_LEAST } FLWOROrderingMode; typedef enum { NONE, CASE_INSENSITIVE, CASE_SENSITIVE, UPPERCASE, LOWERCASE } FTCaseOption; virtual ~StaticContext() {}; virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; /** Returns the configuration object for this context */ virtual XQillaConfiguration *getConfiguration() const = 0; /** Returns the lanuage that this context is for. This value cannot be set, since it is used to correctly construct the StaticContext */ virtual XQilla::Language getLanguage() const = 0; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const = 0; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory) = 0; /** Get the static type of the context item */ virtual const StaticType &getContextItemType() const = 0; /** Set the static type of the context item */ virtual void setContextItemType(const StaticType &st) = 0; /** Get the current XPath 1.0 compatibility mode */ virtual bool getXPath1CompatibilityMode() const = 0; /** Set the current XPath 1.0 compatibility mode */ virtual void setXPath1CompatibilityMode(bool newMode) = 0; /** Get the NS resolver */ virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const = 0; /** returns the URI that is bound in prefix in the current scope or zero length string otherwise */ virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location = 0) const = 0; /** returns the prefix that is bound in uri in the current scope or zero length string otherwise */ virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const = 0; /** Set the NS resolver */ virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver) = 0; /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0; /** get the value of the default namespace for elements and types */ virtual const XMLCh* getDefaultElementAndTypeNS() const = 0; /** set the value of the default namespace for elements and types */ virtual void setDefaultElementAndTypeNS(const XMLCh* newNS) = 0; /** Return the default namespace for functions */ virtual const XMLCh* getDefaultFuncNS() const = 0; /** Set the default namespace for functions */ virtual void setDefaultFuncNS(const XMLCh* newNS) = 0; /** retrieve the repository for the grammars **/ virtual DocumentCache* getDocumentCache() const = 0; /** sets the repository for the grammars **/ virtual void setDocumentCache(DocumentCache* docCache) = 0; /** returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0; /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves a DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0; /** Returns the entity resolver currently set */ virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0; /** Register a callback object for resolving module URIs */ virtual void setModuleResolver(ModuleResolver *resolver) = 0; /** Returns the module resolver currently set */ virtual ModuleResolver *getModuleResolver() const = 0; /* Retrieve a list of locations for the given module URI */ virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const = 0; /** add the location for the grammar of a specific namespace **/ virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location = 0) = 0; /** get the variable type store */ virtual VariableTypeStore* getVariableTypeStore() = 0; /** adds a template definition to the template tables */ virtual void addTemplate(XQUserFunction *tp) = 0; /** look up a template definition by name */ virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const = 0; /** Return a vector of all the templates with patterns */ virtual const UserFunctions &getTemplateRules() const = 0; /** adds a custom function to the function table */ virtual void addCustomFunction(FuncFactory *func) = 0; /** removes a custom function to the function table */ virtual void removeCustomFunction(FuncFactory *func) = 0; /** returns a function object with the given uri, localname and number of arguments triple */ virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location = 0) const = 0; /** Register a callback object for resolving external function implementations */ virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver) = 0; /** Returns the external function resolver currently set */ virtual ExternalFunctionResolver *getExternalFunctionResolver() const = 0; /** adds an external function implementation to the function table */ virtual void addExternalFunction(const ExternalFunction *func) = 0; /** returns an external function implementation for the given uri and localname */ virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const = 0; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location = 0) const = 0; /** Add a collation */ virtual void addCollation(Collation* collation) = 0; /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location = 0) const = 0; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI) = 0; /** Return the base URI */ virtual const XMLCh* getBaseURI() const = 0; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI) = 0; /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const = 0; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder) = 0; /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const = 0; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode) = 0; /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value) = 0; /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const = 0; /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const = 0; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode) = 0; /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value) = 0; /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const = 0; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value) = 0; /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const = 0; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode) = 0; /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const = 0; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener) = 0; /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const = 0; /** Set the module */ virtual void setModule(XQQuery *module) = 0; /** Get the module */ virtual XQQuery *getModule() const = 0; ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// /** * Gets whether document projection is enabled. * * Document projection is an optimisation that uses query analysis * to remove sub-trees from documents that aren't needed by the * query. This results in substantially smaller memory usage and * faster query times, but means that any subsequent querying on the * results of an initial query can be wrong. * * If you are hoping to perform further queries on the results of a * query, you should turn document projection off to avoid incorrect * results. */ virtual bool getProjection() const = 0; /** * Sets whether document projection is enabled. Document projection * can be enabled or disabled at compile time, as well as overridden * at runtime. By default document projection is enabled unless query * complilation is unable to guarentee its correctness. * * Document projection is an optimisation that uses query analysis * to remove sub-trees from documents that aren't needed by the * query. This results in substantially smaller memory usage and * faster query times, but means that any subsequent querying on the * results of an initial query can be wrong. * * If you are hoping to perform further queries on the results of a * query, you should turn document projection off to avoid incorrect * results. */ virtual void setProjection(bool enabled) = 0; virtual bool getDoLintWarnings() const = 0; virtual void setDoLintWarnings(bool enabled) = 0; /** Return a unique name that can be used for a temporary variable */ virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0) = 0; /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const = 0; /** Set the memory manager to the one given */ virtual void setMemoryManager(XPath2MemoryManager* memMgr) = 0; /** Set default full text query case option. */ virtual void setFTCase(FTCaseOption option) = 0; virtual FTCaseOption getFTCase() = 0; }; #endif XQilla-2.3.4/include/xqilla/context/ContextHelpers.hpp0000644001725400016040000001431613273140037017725 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CONTEXTHELPERS_HPP #define CONTEXTHELPERS_HPP #include #include class XQILLA_API AutoNodeSetOrderingReset { public: AutoNodeSetOrderingReset(StaticContext* context, StaticContext::NodeSetOrdering ordering = StaticContext::ORDERING_UNORDERED) { context_ = context; if(context_) { ordering_ = context->getNodeSetOrdering(); context->setNodeSetOrdering(ordering); } } ~AutoNodeSetOrderingReset() { if(context_) { context_->setNodeSetOrdering(ordering_); } } protected: StaticContext* context_; StaticContext::NodeSetOrdering ordering_; }; class XQILLA_API AutoContextItemTypeReset { public: AutoContextItemTypeReset(StaticContext* context) { context_ = context; if(context_) { sType_ = context->getContextItemType(); } } AutoContextItemTypeReset(StaticContext* context, const StaticType &sType) { context_ = context; if(context_) { sType_ = context->getContextItemType(); context->setContextItemType(sType); } } ~AutoContextItemTypeReset() { if(context_) { context_->setContextItemType(sType_); } } protected: StaticContext* context_; StaticType sType_; }; class XQILLA_API AutoNsScopeReset { public: AutoNsScopeReset(StaticContext* context, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* newResolver) { context_=context; if(context_) { _oldNSResolver=context_->getNSResolver(); _defaultElementAndTypeNS=context->getDefaultElementAndTypeNS(); context_->setNSResolver(newResolver); } } ~AutoNsScopeReset() { if(context_) { context_->setNSResolver(_oldNSResolver); context_->setDefaultElementAndTypeNS(_defaultElementAndTypeNS); } } protected: StaticContext* context_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _oldNSResolver; const XMLCh *_defaultElementAndTypeNS; }; class XQILLA_API AutoContextInfoReset { public: AutoContextInfoReset(DynamicContext *context) : oldContextItem(context->getContextItem()), oldContextPosition(context->getContextPosition()), oldContextSize(context->getContextSize()), context_(context) { } AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition = 0, size_t contextSize = 0) : oldContextItem(context->getContextItem()), oldContextPosition(context->getContextPosition()), oldContextSize(context->getContextSize()), context_(context) { context->setContextItem(contextItem); context->setContextPosition(contextPosition); context->setContextSize(contextSize); } ~AutoContextInfoReset() { resetContextInfo(); } void resetContextInfo() { context_->setContextItem(oldContextItem); context_->setContextPosition(oldContextPosition); context_->setContextSize(oldContextSize); } Item::Ptr oldContextItem; size_t oldContextPosition; size_t oldContextSize; private: DynamicContext* context_; }; class XQILLA_API AutoDocumentCacheReset { public: AutoDocumentCacheReset(DynamicContext* context) : oldDC(const_cast(context->getDocumentCache())), context_ (context) { } ~AutoDocumentCacheReset() { context_->setDocumentCache(oldDC); } DocumentCache *oldDC; protected: DynamicContext* context_; }; class XQILLA_API AutoVariableStoreReset { public: AutoVariableStoreReset(DynamicContext *context, const VariableStore *store = 0) { context_ = context; _oldVarStore = context_->getVariableStore(); if(store) context_->setVariableStore(store); } ~AutoVariableStoreReset() { context_->setVariableStore(_oldVarStore); } void reset() { context_->setVariableStore(_oldVarStore); } protected: DynamicContext *context_; const VariableStore *_oldVarStore; }; class XQILLA_API AutoRegexGroupStoreReset { public: AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store = 0) { context_ = context; _oldRegexStore = context_->getRegexGroupStore(); if(store) context_->setRegexGroupStore(store); } ~AutoRegexGroupStoreReset() { context_->setRegexGroupStore(_oldRegexStore); } void reset() { context_->setRegexGroupStore(_oldRegexStore); } protected: DynamicContext *context_; const RegexGroupStore *_oldRegexStore; }; class XQILLA_API AutoMessageListenerReset { public: AutoMessageListenerReset(StaticContext* context, MessageListener *listener = 0) { context_ = context; if(context_) { listener_ = context->getMessageListener(); context->setMessageListener(listener); } } ~AutoMessageListenerReset() { if(context_) { context_->setMessageListener(listener_); } } protected: StaticContext* context_; MessageListener *listener_; }; class XQILLA_API AutoStackFrameReset { public: AutoStackFrameReset(DynamicContext *context, const StackFrame *frame) { context_ = context; _oldFrame = context_->getStackFrame(); context_->setStackFrame(frame); } ~AutoStackFrameReset() { context_->setStackFrame(_oldFrame); } void reset() { context_->setStackFrame(_oldFrame); } protected: DynamicContext *context_; const StackFrame *_oldFrame; }; template class XQILLA_API AutoReset { public: AutoReset(T &orig) : orig_(orig) { old_ = orig; } ~AutoReset() { reset(); } void reset() { orig_ = old_; } protected: T &orig_; T old_; }; #endif XQilla-2.3.4/include/xqilla/context/RegexGroupStore.hpp0000644001725400016040000000232213273140037020054 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REGEXGROUPSTORE_HPP #define _REGEXGROUPSTORE_HPP #include #include class Result; /** The pure virtual base class for accessing regular expression group values at runtime. */ class XQILLA_API RegexGroupStore { public: /** default destructor */ virtual ~RegexGroupStore() {}; /** Looks up the value of a variable by namespace URI and localname pair. */ virtual const XMLCh *getGroup(int index) const = 0; }; #endif XQilla-2.3.4/include/xqilla/context/VarHashEntry.hpp0000644001725400016040000000251213273140037017327 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARHASHENTRY_HPP #define _VARHASHENTRY_HPP #include #include /** The class that stores the values of the variables. */ template class VarHashEntry : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~VarHashEntry() {} /** Gets the value of the variable (overload in derived classes for special behaviour) */ virtual const TYPE &getValue() const = 0; /** Sets the value of the variable (overload in derived classes for special behaviour) */ virtual void setValue(const TYPE &value) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/ItemFactory.hpp0000644001725400016040000002026713273140037017206 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Factory base class */ #ifndef _ITEMFACTORY_HPP #define _ITEMFACTORY_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class XQILLA_API ItemFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~ItemFactory() {}; /* @name Atomic type factory methods */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const = 0; virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context) = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; /* @name Number factory methods */ virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; /* @name Date / time factory methods */ virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context) = 0; virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context) = 0; /* @name Other factory methods */ virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context) = 0; virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context) = 0; virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) = 0; virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh *prefix, const XMLCh* name, const DynamicContext* context) = 0; }; #endif XQilla-2.3.4/include/xqilla/context/VariableTypeStore.hpp0000644001725400016040000000534113273140037020360 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLETYPESTORE_HPP #define _VARIABLETYPESTORE_HPP #include #include #include class SequenceType; class XPath2MemoryManager; class StaticAnalysis; class XQGlobalVariable; /** This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. */ class XQILLA_API VariableTypeStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** default destructor */ virtual ~VariableTypeStore() {}; /** Clears all variable values and added scopes from the store */ virtual void clear() = 0; /** Adds a new local scope to the store. */ virtual void addLocalScope() = 0; /** Adds a new logical block scope to the store. */ virtual void addLogicalBlockScope() = 0; /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ virtual void removeScope() = 0; /** Declares and/or sets a variable in the global scope. */ virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global) = 0; /** Gets a variable from the global scope */ virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const = 0; /** Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made) */ virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src) = 0; /** Looks up the value of a variable in the current scope, using ident as an qname. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis *getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const = 0; }; #endif XQilla-2.3.4/include/xqilla/ast/0000755001725400016040000000000013273141210013415 500000000000000XQilla-2.3.4/include/xqilla/ast/XQFunction.hpp0000644001725400016040000000461713273140037016122 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQFUNCTION_HPP #define _XQFUNCTION_HPP #include #include #include #include #include #include // because every implementation will use these to define the function name #include class SequenceType; class FunctionSignature; class XQILLA_API XQFunction : public ASTNodeImpl { public: static const XMLCh XMLChFunctionURI[]; XQFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); const XMLCh* getFunctionURI()const { return uri_; } const XMLCh* getFunctionName()const { return name_; } FunctionSignature *getSignature() const { return signature_; } void setSignature(FunctionSignature *s) { signature_ = s; } const VectorOfASTNodes &getArguments() const { return _args; } size_t getNumArgs() const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Sequence createSequence(DynamicContext* context, int flags=0) const; virtual Result getParamNumber(size_t number, DynamicContext* context, int flags=0) const; void parseSignature(StaticContext *context); protected: void resolveArguments(StaticContext *context, bool numericFunction = false); void calculateSRCForArguments(StaticContext *context, bool checkTimezone = false); const XMLCh *name_, *uri_; const char *sigString_; FunctionSignature *signature_; VectorOfASTNodes _args; }; #endif XQilla-2.3.4/include/xqilla/ast/XQCallTemplate.hpp0000644001725400016040000000506313273140037016700 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCALLTEMPLATE_HPP #define XQCALLTEMPLATE_HPP #include #include class SequenceType; class XQILLA_API XQTemplateArgument : public LocationInfo { public: XQTemplateArgument(const XMLCh *qname, ASTNode *value, XPath2MemoryManager *memMgr); const XMLCh *qname, *uri, *name; ASTNode *value; SequenceType *seqType; StaticAnalysis varSrc; }; typedef std::vector > TemplateArguments; class XQILLA_API XQCallTemplate : public ASTNodeImpl { public: XQCallTemplate(const XMLCh *qname, TemplateArguments *args, XPath2MemoryManager *mm); XQCallTemplate(ASTNode *qname, TemplateArguments *args, XPath2MemoryManager *mm); XQCallTemplate(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, ASTNode *astName, TemplateArguments *args, const UserFunctions &templates, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } void setQName(const XMLCh *qname) { qname_ = qname; } const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } ASTNode *getASTName() const { return astName_; } void setASTName(ASTNode *name) { astName_ = name; } TemplateArguments *getArguments() const { return args_; } void setArguments(TemplateArguments *args) { args_ = args; } const UserFunctions &getTemplates() const { return templates_; } private: const XMLCh *qname_, *uri_, *name_; ASTNode *astName_; TemplateArguments *args_; UserFunctions templates_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQOperator.hpp0000644001725400016040000000342513273140037016124 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQOPERATOR_HPP #define _XQOPERATOR_HPP #include #include #include #include // because every implementation will use these to define the function name class Node; /** Virtual interface class for operator */ class XQILLA_API XQOperator : public ASTNodeImpl { public: /// constructor, checks for the correct number of arguments. XQOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** used to manipulate arguments */ void addArgument(ASTNode* arg); void removeArgument(unsigned int index); ASTNode* getArgument(unsigned int index) const; void setArgument(unsigned int index, ASTNode *arg); /** returns the number of parameters passed into the operator */ unsigned int getNumArgs() const; virtual const XMLCh* getOperatorName() const; const VectorOfASTNodes &getArguments() const; protected: VectorOfASTNodes _args; // The real store for arguments const XMLCh* _opName; }; #endif XQilla-2.3.4/include/xqilla/ast/XQEffectiveBooleanValue.hpp0000644001725400016040000000316513273140037020527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQEFFECTIVEBOOLEANVALUE_HPP #define _XQEFFECTIVEBOOLEANVALUE_HPP #include #include class XQILLA_API XQEffectiveBooleanValue : public ASTNodeImpl { public: XQEffectiveBooleanValue(ASTNode* expr, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } /// Returns the effective boolean value of the sequence starting with the two items given static bool get(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info); protected: ASTNode* expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQCopy.hpp0000644001725400016040000000433213273140037015241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOPY_HPP #define XQCOPY_HPP #include class XQILLA_API XQCopy : public ASTNodeImpl { public: XQCopy(XPath2MemoryManager* memMgr); XQCopy(ASTNode *expr, const VectorOfASTNodes &children, bool copyNamespaces, bool inheritNamespaces, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; EventGenerator::Ptr generateEventsImpl(const Item::Ptr &toBeCopied, EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } virtual const VectorOfASTNodes &getChildren() const { return children_; } virtual void setChildren(const VectorOfASTNodes &ch) { children_ = ch; } bool getCopyNamespaces() const { return copyNamespaces_; } void setCopyNamespaces(bool value) { copyNamespaces_ = value; } bool getInheritNamespaces() const { return inheritNamespaces_; } void setInheritNamespaces(bool value) { inheritNamespaces_ = value; } protected: ASTNode *expr_; VectorOfASTNodes children_; bool copyNamespaces_; bool inheritNamespaces_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQTreatAs.hpp0000644001725400016040000000411213273140037015666 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQTREATAS_HPP #define _XQTREATAS_HPP #include #include class SequenceType; class XQILLA_API XQTreatAs : public ASTNodeImpl { public: XQTreatAs(ASTNode* expr, SequenceType *exprType, XPath2MemoryManager* memMgr, const XMLCh *errorCode = 0); XQTreatAs(ASTNode* expr, SequenceType *exprType, const XMLCh *errorCode, bool doTypeCheck, bool doCardinalityCheck, const StaticType &treatType, bool isExact, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getDoTypeCheck() const { return _doTypeCheck; } bool getDoCardinalityCheck() const { return _doCardinalityCheck; } const XMLCh *getErrorCode() const { return _errorCode; } const StaticType &getTreatType() const { return _treatType; } bool getIsExact() const { return _isExact; } void setExpression(ASTNode *item); static const XMLCh err_XPDY0050[]; static const XMLCh err_XPTY0004[]; protected: ASTNode* _expr; SequenceType *_exprType; const XMLCh *_errorCode; bool _doTypeCheck; bool _doCardinalityCheck; StaticType _treatType; bool _isExact; }; #endif XQilla-2.3.4/include/xqilla/ast/StaticType.hpp0000644001725400016040000001426513273140037016155 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICTYPE_HPP #define _STATICTYPE_HPP #include #include #include #include #include /** * Class that represents the static type of an expression */ class XQILLA_API StaticType : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** * Flags that determine what item types are returned from an expression */ enum StaticTypeFlags { DOCUMENT_TYPE = 0x00000001, ELEMENT_TYPE = 0x00000002, ATTRIBUTE_TYPE = 0x00000004, TEXT_TYPE = 0x00000008, PI_TYPE = 0x00000010, COMMENT_TYPE = 0x00000020, NAMESPACE_TYPE = 0x00000040, ANY_SIMPLE_TYPE = 0x00000080, ANY_URI_TYPE = 0x00000100, BASE_64_BINARY_TYPE = 0x00000200, BOOLEAN_TYPE = 0x00000400, DATE_TYPE = 0x00000800, DATE_TIME_TYPE = 0x00001000, DAY_TIME_DURATION_TYPE = 0x00002000, DECIMAL_TYPE = 0x00004000, DOUBLE_TYPE = 0x00008000, DURATION_TYPE = 0x00010000, FLOAT_TYPE = 0x00020000, G_DAY_TYPE = 0x00040000, G_MONTH_TYPE = 0x00080000, G_MONTH_DAY_TYPE = 0x00100000, G_YEAR_TYPE = 0x00200000, G_YEAR_MONTH_TYPE = 0x00400000, HEX_BINARY_TYPE = 0x00800000, NOTATION_TYPE = 0x01000000, QNAME_TYPE = 0x02000000, STRING_TYPE = 0x04000000, TIME_TYPE = 0x08000000, UNTYPED_ATOMIC_TYPE = 0x10000000, YEAR_MONTH_DURATION_TYPE = 0x20000000, FUNCTION_TYPE = 0x40000000, NODE_TYPE = (DOCUMENT_TYPE | ELEMENT_TYPE | ATTRIBUTE_TYPE | TEXT_TYPE | PI_TYPE | COMMENT_TYPE | NAMESPACE_TYPE), NUMERIC_TYPE = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE), TIMEZONE_TYPE = (DATE_TYPE | DATE_TIME_TYPE | G_DAY_TYPE | G_MONTH_TYPE | G_MONTH_DAY_TYPE | G_YEAR_TYPE | G_YEAR_MONTH_TYPE | TIME_TYPE), TYPED_ATOMIC_TYPE = (NUMERIC_TYPE | TIMEZONE_TYPE | ANY_SIMPLE_TYPE | ANY_URI_TYPE | BASE_64_BINARY_TYPE | BOOLEAN_TYPE | DAY_TIME_DURATION_TYPE | DURATION_TYPE | HEX_BINARY_TYPE | NOTATION_TYPE | QNAME_TYPE | STRING_TYPE | YEAR_MONTH_DURATION_TYPE), ANY_ATOMIC_TYPE = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE), ITEM_TYPE = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE), EMPTY_TYPE = 0 }; static const unsigned int UNLIMITED; /// Constructor for an empty type StaticType(); // Constructor for normal types StaticType(StaticTypeFlags f, unsigned int min = 1, unsigned int max = 1); /// Constructor for a function type StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1); /// Constructor for a function type StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1); StaticType(const StaticType &o); StaticType &operator=(const StaticType &o); ~StaticType(); static StaticType create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact); static StaticType create(AnyAtomicType::AtomicObjectType primitiveType); void typeUnion(const StaticType &st); void typeIntersect(const StaticType &st); void typeExcept(const StaticType &st); void typeConcat(const StaticType &st); void typeNodeIntersect(const StaticType &st); StaticType operator|(const StaticType &st) const; StaticType &operator|=(const StaticType &st); StaticType operator&(const StaticType &st) const; StaticType &operator&=(const StaticType &st); StaticType &substitute(const StaticType &from, const StaticType &to); StaticType &multiply(unsigned int min, unsigned int max); void setCardinality(unsigned int min, unsigned int max); bool containsType(const StaticType &type) const; bool containsType(StaticType::StaticTypeFlags flags) const; bool isType(const StaticType &type) const; enum TypeMatchEnum { NEVER = 0, PROBABLY_NOT = 1, MAYBE = 2, ALWAYS = 3 }; struct TypeMatch { TypeMatchEnum type, cardinality; }; TypeMatch matches(const StaticType &actual) const; unsigned int getMin() const { return min_; } unsigned int getMax() const { return max_; } unsigned int getMinArgs() const { return minArgs_; } unsigned int getMaxArgs() const { return maxArgs_; } const StaticType *getReturnType() const { return returnType_; } void typeToBuf(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) const; private: TypeMatchEnum matchesFunctionType(const StaticType &type) const; TypeMatchEnum matchesType(const StaticType &type) const; unsigned int flags_; unsigned int min_; unsigned int max_; XPath2MemoryManager *mm_; unsigned int minArgs_; unsigned int maxArgs_; StaticType *returnType_; }; XQILLA_API StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b); XQILLA_API StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b); #endif XQilla-2.3.4/include/xqilla/ast/XQTextConstructor.hpp0000644001725400016040000000264413273140037017525 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQTEXTCONSTRUCTOR_HPP #define XQTEXTCONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQTextConstructor : public XQDOMConstructor { public: XQTextConstructor(ASTNode *value, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; virtual void setValue(ASTNode *value); private: ASTNode *m_value; }; #endif XQilla-2.3.4/include/xqilla/ast/XQOrderingChange.hpp0000644001725400016040000000265313273140037017212 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQORDERINGCHANGE_HPP #define XQORDERINGCHANGE_HPP #include #include class XQILLA_API XQOrderingChange : public ASTNodeImpl { public: XQOrderingChange(StaticContext::NodeSetOrdering ordering, ASTNode* astNode, XPath2MemoryManager* expr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); StaticContext::NodeSetOrdering getOrderingValue() const; ASTNode* getExpr() const; void setExpr(ASTNode *expr); protected: StaticContext::NodeSetOrdering m_nOrdering; ASTNode* m_pExpr; }; #endif XQilla-2.3.4/include/xqilla/ast/XQNamespaceConstructor.hpp0000644001725400016040000000311713273140037020471 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQNAMESPACECONSTRUCTOR_HPP #define XQNAMESPACECONSTRUCTOR_HPP #include class XQILLA_API XQNamespaceConstructor : public XQDOMConstructor { public: XQNamespaceConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } virtual void setName(ASTNode *name); protected: ASTNode* m_name; VectorOfASTNodes* m_children; }; #endif XQilla-2.3.4/include/xqilla/ast/XQIf.hpp0000644001725400016040000000331613273140037014666 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQIF_HPP #define _XQIF_HPP #include #include /** If function. */ class XQILLA_API XQIf : public ASTNodeImpl { public: XQIf(ASTNode* test, ASTNode* whenTrue, ASTNode* whenFalse, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTest() const; ASTNode *getWhenTrue() const; ASTNode *getWhenFalse() const; void setTest(ASTNode *item); void setWhenTrue(ASTNode *item); void setWhenFalse(ASTNode *item); protected: ASTNode* _test,* _whenTrue,* _whenFalse; }; #endif XQilla-2.3.4/include/xqilla/ast/XQApplyTemplates.hpp0000644001725400016040000000441013273140037017270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQAPPLYTEMPLATES_HPP #define XQAPPLYTEMPLATES_HPP #include #include #include class VariableStore; class XQILLA_API XQApplyTemplates : public ASTNodeImpl { public: XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, XPath2MemoryManager *mm); XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, const UserFunctions &templates, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } TemplateArguments *getArguments() const { return args_; } void setArguments(TemplateArguments *args) { args_ = args; } XQUserFunction::Mode *getMode() const { return mode_; } void setMode(XQUserFunction::Mode *mode) { mode_ = mode; } const UserFunctions &getTemplates() const { return templates_; } void evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const; static Result executeTemplate(const XQUserFunction *tplt, const TemplateArguments *args, const VariableStore *scope, DynamicContext *context, const LocationInfo *location); private: ASTNode *expr_; TemplateArguments *args_; XQUserFunction::Mode *mode_; UserFunctions templates_; }; #endif XQilla-2.3.4/include/xqilla/ast/StaticAnalysis.hpp0000644001725400016040000001117313273140037017012 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICANALYSIS_HPP #define _STATICANALYSIS_HPP #include #include #include #include class XPath2MemoryManager; /** * Records access to various parts of the context during static resolution. */ class XQILLA_API StaticAnalysis { public: static const int HASH_SIZE = 13; class XQILLA_API VarEntry { public: VarEntry() : uri(0), name(0), hash(0), prev(0) {} void set(const XMLCh *u, const XMLCh *n); void set(const XMLCh *u, const XMLCh *n, size_t h); const XMLCh *uri, *name; size_t hash; VarEntry *prev; }; StaticAnalysis(XPath2MemoryManager* memMgr); StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager* memMgr); void copy(const StaticAnalysis &o); void release(); /// Clears all the information in this StaticAnalysis void clear(); void clearExceptType(); /** Overrides all the other flags, and never allows this sub-expression to be constant folded. */ void forceNoFolding(bool value); bool isNoFoldingForced() const; void contextItemUsed(bool value); void contextPositionUsed(bool value); void contextSizeUsed(bool value); bool isContextItemUsed() const; bool isContextPositionUsed() const; bool isContextSizeUsed() const; /** Returns true if any of the context item flags have been used */ bool areContextFlagsUsed() const; void currentTimeUsed(bool value); void implicitTimezoneUsed(bool value); void availableDocumentsUsed(bool value); void availableCollectionsUsed(bool value); bool areDocsOrCollectionsUsed() const; void variableUsed(const XMLCh *namespaceURI, const XMLCh *name); bool removeVariable(const XMLCh *namespaceURI, const XMLCh *name); bool isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const; bool isVariableUsed() const; VarEntry **variablesUsed() const; /** Sets the members of this StaticAnalysis from the given StaticAnalysis */ void add(const StaticAnalysis &o); void addExceptContextFlags(const StaticAnalysis &o); void addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o); /** Returns true if flags are set, or variables have been used */ bool isUsed() const; bool isUsedExceptContextFlags() const; void creative(bool value); bool isCreative() const; void updating(bool value); bool isUpdating() const; void possiblyUpdating(bool value); bool isPossiblyUpdating() const; /** * Properties that allow optimisation regarding sorting or not. * The values are OR'd as flags, so they must be distinct bits */ enum Properties { DOCORDER = 0x001, ///< Results are returned in document order PEER = 0x002, ///< Results do not appear in the descendants of other results SUBTREE = 0x004, ///< Results are members of the set of descendants of the context node GROUPED = 0x008, ///< Results are grouped by the document they come from SAMEDOC = 0x010, ///< Results are from the same document as the context node ONENODE = 0x020, ///< Only ever returns one node SELF = 0x040, ///< Only ever returns the context node UNDEFINEDVAR = 0x080 ///< This is a variable that has been undefined }; unsigned int getProperties() const; void setProperties(unsigned int props); const StaticType &getStaticType() const; StaticType &getStaticType(); std::string toString() const; private: StaticAnalysis(const StaticAnalysis &o); StaticAnalysis &operator=(const StaticAnalysis &o); bool _contextItem; bool _contextPosition; bool _contextSize; bool _currentTime; bool _implicitTimezone; bool _availableDocuments; bool _availableCollections; bool _forceNoFolding; bool _creative; bool _updating; bool _possiblyUpdating; unsigned int _properties; StaticType _staticType; VarEntry *_dynamicVariables[HASH_SIZE]; VarEntry *_recycle; XPath2MemoryManager *_memMgr; }; #endif XQilla-2.3.4/include/xqilla/ast/LetTuple.hpp0000644001725400016040000000400613273140037015612 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef LETTUPLE_HPP #define LETTUPLE_HPP #include #include class ASTNode; class SequenceType; class XQILLA_API LetTuple : public TupleNode { public: LetTuple(TupleNode *parent, const XMLCh *varQName, ASTNode *expr, XPath2MemoryManager *mm); LetTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, ASTNode *expr, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } void setVarURI(const XMLCh *uri) { varURI_ = uri; } const XMLCh *getVarName() const { return varName_; } void setVarName(const XMLCh *name) { varName_ = name; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; // Used during parsing SequenceType *seqType; private: const XMLCh *varQName_, *varURI_, *varName_; StaticAnalysis varSrc_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQDocumentConstructor.hpp0000644001725400016040000000424313273140037020354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDOCUMENTCONSTRUCTOR_HPP #define XQDOCUMENTCONSTRUCTOR_HPP #include #include class XQILLA_API XQDocumentConstructor : public XQDOMConstructor { public: XQDocumentConstructor(ASTNode *value, XPath2MemoryManager* expr); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; virtual void setValue(ASTNode *value); protected: ASTNode *m_value; }; class DocConstructFilter : public EventFilter { public: DocConstructFilter(EventHandler *next, const LocationInfo *location); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: const LocationInfo *location_; unsigned int level_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQAtomize.hpp0000644001725400016040000000330113273140037015732 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQATOMIZE_HPP #define _XQATOMIZE_HPP #include #include class XQILLA_API XQAtomize : public ASTNodeImpl { public: XQAtomize(ASTNode* expr, XPath2MemoryManager* memMgr); XQAtomize(ASTNode* expr, bool doPSVI, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } bool getDoPSVI() const { return doPSVI_; } protected: ASTNode* expr_; bool doPSVI_; }; class XQILLA_API AtomizeResult : public ResultImpl { public: AtomizeResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), _parent(parent), _sub(0) {} Item::Ptr next(DynamicContext *context); private: Result _parent; Result _sub; }; #endif XQilla-2.3.4/include/xqilla/ast/ASTNodeImpl.hpp0000644001725400016040000000603713273140037016141 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTNODEIMPL_HPP #define _ASTNODEIMPL_HPP class DynamicContext; class Numeric; #include #include #include /** class which is used as base for all the different data types */ class XQILLA_API ASTNodeImpl : public ASTNode { public: ASTNodeImpl(whichType type, XPath2MemoryManager* memMgr); virtual ~ASTNodeImpl(); virtual whichType getType() const; virtual void release(); virtual ASTNode *copy(DynamicContext *context) const; virtual bool isSubsetOf(const ASTNode *other) const; virtual bool isEqualTo(const ASTNode *other) const; virtual ASTNode *staticTyping(StaticContext *context, StaticTyper *styper); /** Returns true if this ASTNode is an instance of XQSequence or XQLiteral */ virtual bool isConstant() const; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral. If the literal value of this ASTNode is a single DateOrTimeType, then !hasTimezone() on it must return true, otherwise this method will return false. */ virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; /// Default - returns an empty update list virtual PendingUpdateList createUpdateList(DynamicContext *context) const; /// Default implementation calls ATBooleanOrDerived::isTrue() virtual BoolResult boolResult(DynamicContext* context) const; /** * Can be overridden by derived classes. Default implementation returns a * NavStepResult constructed using contextItems and this expression. */ virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; /** Returns the result of this expression via the EventHandler provided. Default implementation uses result returned from createResult(). */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; /** Returns the given ASTNode* after setting the referenced var to 0 and releasing this */ ASTNode *substitute(ASTNode *&result); virtual XPath2MemoryManager *getMemoryManager() const; virtual const StaticAnalysis &getStaticAnalysis() const; protected: StaticAnalysis _src; whichType _type; XPath2MemoryManager* _memMgr; }; #endif XQilla-2.3.4/include/xqilla/ast/XQLiteral.hpp0000644001725400016040000001052213273140037015721 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQLITERAL_HPP #define _XQLITERAL_HPP #include #include class XQILLA_API XQLiteral : public ASTNodeImpl { public: XQLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; AnyAtomicType::AtomicObjectType getPrimitiveType() const { return primitiveType_; } const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } const XMLCh *getValue() const { return value_; } static ASTNode *create(const Item::Ptr &item, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location); static ASTNode *create(bool value, XPath2MemoryManager* memMgr, const LocationInfo *location); private: const XMLCh *typeURI_; const XMLCh *typeName_; AnyAtomicType::AtomicObjectType primitiveType_; const XMLCh *value_; }; class XQILLA_API XQQNameLiteral : public ASTNodeImpl { public: XQQNameLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* localname, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getLocalname() const { return localname_; } const XMLCh *getPrefix() const { return prefix_; } private: const XMLCh *typeURI_; const XMLCh *typeName_; const XMLCh *uri_, *prefix_, *localname_; }; class XQILLA_API XQNumericLiteral : public ASTNodeImpl { public: XQNumericLiteral(const XMLCh* typeURI, const XMLCh* typeName, const MAPM& value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; AnyAtomicType::AtomicObjectType getPrimitiveType() const { return primitiveType_; } const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } MAPM getValue() const; const M_APM_struct &getRawValue() const { return value_; } private: const XMLCh *typeURI_; const XMLCh *typeName_; AnyAtomicType::AtomicObjectType primitiveType_; M_APM_struct value_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQGlobalVariable.hpp0000644001725400016040000000441013273140037017172 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQGLOBALVARIABLE_HPP #define XQGLOBALVARIABLE_HPP #include class SequenceType; class XQILLA_API XQGlobalVariable : public LocationInfo { public: XQGlobalVariable(const XMLCh* varQName, SequenceType* seqType, ASTNode* value, XPath2MemoryManager *mm, bool isParam = false); void execute(DynamicContext* context) const; void resolveName(StaticContext *context); void staticResolution(StaticContext *context); void staticTypingOnce(StaticContext *context, StaticTyper *styper); void resetStaticTypingOnce(); void staticTyping(StaticContext *context, StaticTyper *styper); const XMLCh* getVariableName() const; bool isExternal() const; bool isParam() const { return isParam_; } bool isRequired() const { return required_; } void setRequired(bool r) { required_ = r; } const XMLCh *getVariableURI() const; void setVariableURI(const XMLCh *uri) { m_szURI = uri; } const XMLCh *getVariableLocalName() const; void setVariableLocalName(const XMLCh *name) { m_szLocalName = name; } const SequenceType *getSequenceType() const; void setSequenceType(SequenceType *type) { m_Type = type; } const ASTNode *getVariableExpr() const; void setVariableExpr(ASTNode* value); const StaticAnalysis &getStaticAnalysis() const { return _src; } protected: bool isParam_; bool required_; bool xpath1Compat_; const XMLCh* m_szQName; const XMLCh* m_szURI; const XMLCh* m_szLocalName; SequenceType* m_Type; ASTNode* m_Value; StaticAnalysis _src; enum { BEFORE, DURING, AFTER } staticTyped_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQContextItem.hpp0000644001725400016040000000274613273140037016601 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCONTEXTITEM_HPP #define _XQCONTEXTITEM_HPP #include #include /** Returns the context item. Raises [err:XP0002] if the context item is null. */ class XQILLA_API XQContextItem : public ASTNodeImpl { public: XQContextItem(XPath2MemoryManager* memMgr); ~XQContextItem(); /** * Called during static analysis of expression to determine is statically * correct. If not an appropriate error is thrown. */ virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; static Result result(DynamicContext *context, const LocationInfo *info); }; #endif XQilla-2.3.4/include/xqilla/ast/XQCopyOf.hpp0000644001725400016040000000317613273140037015533 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOPYOF_HPP #define XQCOPYOF_HPP #include class XQILLA_API XQCopyOf : public ASTNodeImpl { public: XQCopyOf(XPath2MemoryManager* memMgr); XQCopyOf(ASTNode *expr, bool copyNamespaces, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } bool getCopyNamespaces() const { return copyNamespaces_; } void setCopyNamespaces(bool value) { copyNamespaces_ = value; } protected: ASTNode *expr_; bool copyNamespaces_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQReturn.hpp0000644001725400016040000000321613273140037015606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQRETURN_HPP #define XQRETURN_HPP #include class TupleNode; class XQILLA_API XQReturn : public ASTNodeImpl { public: XQReturn(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; private: TupleNode *parent_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQPredicate.hpp0000644001725400016040000000672013273140037016232 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQPREDICATE_HPP #define _XQPREDICATE_HPP #include class XQPredicate; // NOTE: the use of "::" in front of XQillaAllocator here is // to work around an issue in the HP-UX aCC compiler and STL // implementation. Do not remove it. class VectorOfPredicates : public std::vector > { public: VectorOfPredicates(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) : std::vector >(::XQillaAllocator(mm)) {} }; class XQILLA_API XQPredicate : public ASTNodeImpl { public: XQPredicate(ASTNode *predicate, XPath2MemoryManager* memMgr); XQPredicate(ASTNode *expr, ASTNode *predicate, XPath2MemoryManager* memMgr); XQPredicate(ASTNode *expr, ASTNode *predicate, bool reverse, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } ASTNode *getPredicate() const { return predicate_; } void setPredicate(ASTNode *pred) { predicate_ = pred; } bool getReverse() const { return reverse_; } void setReverse(bool reverse) { reverse_ = reverse; } static ASTNode *addPredicates(ASTNode *expr, VectorOfPredicates *preds); static ASTNode *addReversePredicates(ASTNode *expr, VectorOfPredicates *preds); protected: ASTNode *expr_; ASTNode *predicate_; bool reverse_; }; class XQILLA_API PredicateFilterResult : public ResultImpl { public: PredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: bool todo_; Result parent_; const ASTNode *pred_; size_t contextPos_; size_t contextSize_; Item::Ptr first_; Item::Ptr second_; }; class NonNumericPredicateFilterResult : public ResultImpl { public: NonNumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: bool todo_; Result parent_; const ASTNode *pred_; size_t contextPos_; size_t contextSize_; }; class NumericPredicateFilterResult : public ResultImpl { public: NumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); private: Result parent_; const ASTNode *pred_; size_t contextSize_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQFunctionConversion.hpp0000644001725400016040000000254113273140037020162 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONCONVERSION_HPP #define XQFUNCTIONCONVERSION_HPP #include class XQILLA_API XQFunctionConversion : public ASTNodeImpl { public: XQFunctionConversion(ASTNode* expr, SequenceType *seqType, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; void setExpression(ASTNode *item); protected: ASTNode* expr_; SequenceType *seqType_; }; #endif XQilla-2.3.4/include/xqilla/ast/ConvertFunctionArg.hpp0000644001725400016040000001172313273140037017640 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CONVERTFUNCTIONARG_HPP #define _CONVERTFUNCTIONARG_HPP #include #include class XQILLA_API XQPromoteUntyped : public ASTNodeImpl { public: XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } bool getIsPrimitive() const { return isPrimitive_; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return typeIndex_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; bool isPrimitive_; AnyAtomicType::AtomicObjectType typeIndex_; }; class PromoteUntypedResult : public ResultImpl { public: PromoteUntypedResult(const XQPromoteUntyped *di, const Result &parent); PromoteUntypedResult(const LocationInfo *location, const Result &parent, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *uri, const XMLCh *name); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promoteuntypedresult"; } private: Result parent_; bool isPrimitive_; AnyAtomicType::AtomicObjectType typeIndex_; const XMLCh *uri_, *name_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XQILLA_API XQPromoteNumeric : public ASTNodeImpl { public: XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return typeIndex_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; AnyAtomicType::AtomicObjectType typeIndex_; }; class PromoteNumericResult : public ResultImpl { public: PromoteNumericResult(const LocationInfo *location, const Result &parent, AnyAtomicType::AtomicObjectType typeIndex) : ResultImpl(location), parent_(parent), typeIndex_(typeIndex) {} Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promotenumericresult"; } private: Result parent_; AnyAtomicType::AtomicObjectType typeIndex_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XQILLA_API XQPromoteAnyURI : public ASTNodeImpl { public: XQPromoteAnyURI(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; }; class PromoteAnyURIResult : public ResultImpl { public: PromoteAnyURIResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), parent_(parent) {} Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promoteanyuriresult"; } private: Result parent_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQTypeswitch.hpp0000644001725400016040000000625113273140037016474 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQTYPESWITCH_HPP #define XQTYPESWITCH_HPP #include #include class SequenceType; class ResultBuffer; template class Scope; class XQILLA_API XQTypeswitch : public ASTNodeImpl { public: class Case : public LocationInfo { public: Case(const XMLCh *qname, SequenceType *seqType, ASTNode *expr); Case(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, SequenceType *seqType, const StaticType &treatType, bool isExact, ASTNode *expr); void staticResolution(StaticContext* context); void staticTyping(const StaticAnalysis &var_src, StaticContext* context, StaticAnalysis &src, bool &possiblyUpdating, bool first); const XMLCh *getQName() const { return qname_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } bool isVariableUsed() const { return qname_ != 0; } void setVariableNotUsed() { qname_ = 0; } SequenceType *getSequenceType() const { return seqType_; } void setSequenceType(SequenceType *s) { seqType_ = s; } const StaticType &getTreatType() const { return treatType_; } bool getIsExact() const { return isExact_; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: const XMLCh *qname_; const XMLCh *uri_; const XMLCh *name_; SequenceType *seqType_; StaticType treatType_; bool isExact_; ASTNode *expr_; }; typedef std::vector > Cases; XQTypeswitch(ASTNode *expr, Cases *cases, Case *defaultCase, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const Case *chooseCase(DynamicContext *context, Sequence &resultSeq) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const Case *getDefaultCase() const { return default_; } const Cases *getCases() const { return cases_; } private: ASTNode *expr_; Cases *cases_; Case *default_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQFunctionRef.hpp0000644001725400016040000000250013273140037016544 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONREF_HPP #define XQFUNCTIONREF_HPP #include class XQILLA_API XQFunctionRef : public ASTNodeImpl { public: XQFunctionRef(const XMLCh *qname, unsigned int numArgs, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } unsigned int getNumArgs() const { return numArgs_; } private: const XMLCh *qname_; unsigned int numArgs_; }; #endif XQilla-2.3.4/include/xqilla/ast/ForTuple.hpp0000644001725400016040000000427313273140037015622 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FORTUPLE_HPP #define FORTUPLE_HPP #include #include class ASTNode; class XQILLA_API ForTuple : public TupleNode { public: ForTuple(TupleNode *parent, const XMLCh *varQName, const XMLCh *posQName, ASTNode *expr, XPath2MemoryManager *mm); ForTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, const XMLCh *posURI, const XMLCh *posName, ASTNode *expr, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } const XMLCh *getVarName() const { return varName_; } const XMLCh *getPosQName() const { return posQName_; } const XMLCh *getPosURI() const { return posURI_; } const XMLCh *getPosName() const { return posName_; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const StaticAnalysis &getVarSRC() const { return varSrc_; } const StaticAnalysis &getPosSRC() const { return posSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: const XMLCh *varQName_, *varURI_, *varName_; const XMLCh *posQName_, *posURI_, *posName_; StaticAnalysis varSrc_, posSrc_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQStep.hpp0000644001725400016040000000360713273140037015246 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQSTEP_HPP #define _XQSTEP_HPP #include #include class NodeTest; ///this class calculates a node list based on a context class XQILLA_API XQStep : public ASTNodeImpl { public: enum Axis { ANCESTOR, ANCESTOR_OR_SELF, ATTRIBUTE, CHILD, DESCENDANT, DESCENDANT_OR_SELF, FOLLOWING, FOLLOWING_SIBLING, NAMESPACE, PARENT, PRECEDING, PRECEDING_SIBLING, SELF }; //constuctor that takes the step this XQ is refuring to XQStep(Axis axis, NodeTest* nodeTest, XPath2MemoryManager* memMgr); ~XQStep(); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; NodeTest *getNodeTest() const; void setNodeTest(NodeTest *nodeTest); Axis getAxis() const; void setAxis(Axis axis); static bool isForwardAxis(Axis axis); static unsigned int getAxisProperties(Axis axis); private: NodeTest* nodeTest_; Axis axis_; }; #endif XQilla-2.3.4/include/xqilla/ast/WhereTuple.hpp0000644001725400016040000000256713273140037016152 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef WHERETUPLE_HPP #define WHERETUPLE_HPP #include class ASTNode; class XQILLA_API WhereTuple : public TupleNode { public: WhereTuple(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/CountTuple.hpp0000644001725400016040000000343713273140037016165 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COUNTTUPLE_HPP #define COUNTTUPLE_HPP #include #include class XQILLA_API CountTuple : public TupleNode { public: CountTuple(TupleNode *parent, const XMLCh *varQName, XPath2MemoryManager *mm); CountTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } void setVarURI(const XMLCh *uri) { varURI_ = uri; } const XMLCh *getVarName() const { return varName_; } void setVarName(const XMLCh *name) { varName_ = name; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: const XMLCh *varQName_, *varURI_, *varName_; StaticAnalysis varSrc_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQCommentConstructor.hpp0000644001725400016040000000277113273140037020204 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOMMENTCONSTRUCTOR_HPP #define XQCOMMENTCONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQCommentConstructor : public XQDOMConstructor { public: XQCommentConstructor(ASTNode *value, XPath2MemoryManager* mm, bool xslt = false); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; bool isXSLT() const { return xslt_; } virtual void setValue(ASTNode *value); private: ASTNode *m_value; bool xslt_; }; #endif XQilla-2.3.4/include/xqilla/ast/OrderByTuple.hpp0000644001725400016040000000434513273140037016442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ORDERBYTUPLE_HPP #define ORDERBYTUPLE_HPP #include #include class ASTNode; class Collation; class XQILLA_API OrderByTuple : public TupleNode { public: enum Modifiers { ASCENDING = 0x0, DESCENDING = 0x1, EMPTY_GREATEST = 0x0, EMPTY_LEAST = 0x2, STABLE = 0x0, UNSTABLE = 0x4, DESCENDING_EMPTY_LEAST = DESCENDING | EMPTY_LEAST, DESCENDING_UNSTABLE = DESCENDING | UNSTABLE, EMPTY_LEAST_UNSTABLE = EMPTY_LEAST | UNSTABLE, DESCENDING_EMPTY_LEAST_UNSTABLE = DESCENDING | EMPTY_LEAST | UNSTABLE }; OrderByTuple(TupleNode *parent, ASTNode *expr, int modifiers, Collation *collation, XPath2MemoryManager *mm); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } Modifiers getModifiers() const { return modifiers_; } Collation *getCollation() const { return collation_; } void setUnstable() { modifiers_ = (Modifiers)(modifiers_ | UNSTABLE); } const StaticAnalysis &getUsedSRC() const { return usedSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: ASTNode *expr_; Modifiers modifiers_; Collation *collation_; StaticAnalysis usedSrc_; }; #endif XQilla-2.3.4/include/xqilla/ast/NumericFunction.hpp0000644001725400016040000000255313273140037017171 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NUMERICFUNCTION_HPP #define _NUMERICFUNCTION_HPP #include /** Virtual interface class for functions */ class XQILLA_API NumericFunction : public XQFunction { public: /// constructor, checks for the correct number of arguments. NumericFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); protected: Numeric::Ptr getNumericParam(unsigned int number, DynamicContext *context, int flags=0) const; }; #endif // _NUMERICFUNCTION_HPP XQilla-2.3.4/include/xqilla/ast/XQInlineFunction.hpp0000644001725400016040000000417013273140037017253 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQINLINEFUNCTION_HPP #define XQINLINEFUNCTION_HPP #include class XQUserFunction; class FunctionSignature; class XQILLA_API XQInlineFunction : public ASTNodeImpl { public: XQInlineFunction(XQUserFunction *func, XPath2MemoryManager *mm); XQInlineFunction(XQUserFunction *func, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, unsigned int numArgs, FunctionSignature *signature, ASTNode *instance, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } unsigned int getNumArgs() const { return numArgs_; } XQUserFunction *getUserFunction() const { return func_; } void setUserFunction(XQUserFunction *func) { func_ = func; } FunctionSignature *getSignature() const { return signature_; } void setSignature(FunctionSignature *s) { signature_ = s; } ASTNode *getInstance() const { return instance_; } void setInstance(ASTNode *i) { instance_ = i; } private: XQUserFunction *func_; const XMLCh *prefix_, *uri_, *name_; unsigned int numArgs_; FunctionSignature *signature_; ASTNode *instance_; }; #endif XQilla-2.3.4/include/xqilla/ast/ContextTuple.hpp0000644001725400016040000000235313273140037016515 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CONTEXTTUPLE_HPP #define CONTEXTTUPLE_HPP #include class XQILLA_API ContextTuple : public TupleNode { public: ContextTuple(XPath2MemoryManager *mm) : TupleNode(CONTEXT_TUPLE, 0, mm) {} virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; }; #endif XQilla-2.3.4/include/xqilla/ast/XQDOMConstructor.hpp0000644001725400016040000001020513273140037017210 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDOMCONSTRUCTOR_HPP #define XQDOMCONSTRUCTOR_HPP #include #include class EventHandler; class QueryPathNode; class XQILLA_API XQDOMConstructor : public ASTNodeImpl { public: XQDOMConstructor(XPath2MemoryManager* mm); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const = 0; virtual const XMLCh* getNodeType() const = 0; virtual ASTNode *getName() const { return 0; } virtual const VectorOfASTNodes *getAttributes() const { return 0; } virtual const VectorOfASTNodes *getChildren() const { return 0; } virtual ASTNode *getValue() const { return 0; } virtual void setName(ASTNode *name) {} virtual void setValue(ASTNode *value) {} static bool getStringValue(const VectorOfASTNodes* m_children, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &value, DynamicContext *context); static bool getStringValue(const ASTNode *child, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &value, DynamicContext *context); QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; class XQILLA_API XQContentSequence : public ASTNodeImpl { public: XQContentSequence(ASTNode *expr, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; }; class XQILLA_API XQDirectName : public ASTNodeImpl { public: XQDirectName(const XMLCh *qname, bool useDefaultNamespace, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } bool getUseDefaultNamespace() const { return useDefaultNamespace_; } private: const XMLCh *qname_; bool useDefaultNamespace_; }; class XQILLA_API XQNameExpression : public ASTNodeImpl { public: XQNameExpression(ASTNode *expr, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; }; class XQILLA_API XQSimpleContent : public ASTNodeImpl { public: XQSimpleContent(VectorOfASTNodes *children, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const VectorOfASTNodes *getChildren() const { return children_; } private: VectorOfASTNodes *children_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQValidate.hpp0000644001725400016040000000611013273140037016054 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQVALIDATE_HPP #define XQVALIDATE_HPP #include #include #include class XQILLA_API XQValidate : public ASTNodeImpl { public: XQValidate(ASTNode *expr, DocumentCache::ValidationMode mode, XPath2MemoryManager *mm); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } DocumentCache::ValidationMode getMode() const { return mode_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; DocumentCache::ValidationMode mode_; }; class XQILLA_API ValidateArgumentCheckFilter : public EventFilter { public: ValidateArgumentCheckFilter(EventHandler *next, DocumentCache::ValidationMode mode, DynamicContext *context, const LocationInfo *loc); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); private: DocumentCache::ValidationMode mode_; const LocationInfo *info_; DynamicContext *context_; bool inDocumentNode_; bool seenDocElem_; unsigned int level_; bool seenOne_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQMap.hpp0000644001725400016040000000446713273140037015055 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQMAP_HPP #define _XQMAP_HPP #include #include #include class XQILLA_API XQMap : public ASTNodeImpl { public: XQMap(ASTNode *arg1, ASTNode *arg2, XPath2MemoryManager* memMgr); XQMap(ASTNode *arg1, ASTNode *arg2, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); ASTNode *getArg1() const { return arg1_; } void setArg1(ASTNode *a) { arg1_ = a; } ASTNode *getArg2() const { return arg2_; } void setArg2(ASTNode *a) { arg2_ = a; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; private: ASTNode *arg1_; ASTNode *arg2_; const XMLCh *uri_; const XMLCh *name_; StaticAnalysis varSrc_; }; class XQILLA_API MapResult : public ResultImpl, public VariableStore { public: MapResult(const Result &parent, const ASTNode *step, const XMLCh *uri, const XMLCh *name); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; Item::Ptr next(DynamicContext *context); private: Result parent_; const ASTNode *step_; const XMLCh *uri_; const XMLCh *name_; Result stepResult_; Item::Ptr item_; const VariableStore *scope_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQVariable.hpp0000644001725400016040000000333513273140037016056 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQVARIABLE_HPP #define _XQVARIABLE_HPP #include #include #include class XQGlobalVariable; class XQILLA_API XQVariable : public ASTNodeImpl { public: XQVariable(const XMLCh *qualifiedName, XPath2MemoryManager* memMgr); XQVariable(const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQVariable(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XQGlobalVariable *global, XPath2MemoryManager* memMgr); ~XQVariable(); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); const XMLCh *getPrefix() const; const XMLCh *getURI() const; const XMLCh *getName() const; XQGlobalVariable *getGlobal() const { return _global; } private: const XMLCh* _prefix; const XMLCh* _uri; const XMLCh* _name; XQGlobalVariable *_global; }; #endif XQilla-2.3.4/include/xqilla/ast/XQNav.hpp0000644001725400016040000000605613273140037015060 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQNav_HPP #define _XQNav_HPP #include #include #include #include ///this class calculates a node list based on a context class XQILLA_API XQNav : public ASTNodeImpl { public: class XQILLA_API StepInfo { public: StepInfo() : step(0) {} StepInfo(ASTNode *s) : step(s) {} ASTNode *step; }; typedef std::vector > Steps; XQNav(XPath2MemoryManager* memMgr); XQNav(ASTNode *step, XPath2MemoryManager* memMgr); XQNav(const Steps &steps, bool sortAdded, XPath2MemoryManager* memMgr); virtual ~XQNav(); /** Add a new NavigationStep to the sequence of navigation steps to be performed. This operation is used by parse tree classes to turn themselves into an optimised, reusable navigation. **/ void addStep(const StepInfo &step); /** Add a new NavigationStep to the start of the sequence of navigation steps to be performed.**/ void addStepFront(ASTNode* step); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); const Steps &getSteps() const; bool getSortAdded() const { return _sortAdded; } void setSortAdded(bool value) { _sortAdded = value; } static unsigned int combineProperties(unsigned int prev_props, unsigned int step_props); protected: //list of steps to be performed. Steps _steps; bool _sortAdded; }; class XQILLA_API NavStepResult : public ResultImpl { public: NavStepResult(const Result &parent, const ASTNode *step, size_t contextSize); Item::Ptr next(DynamicContext *context); private: Result parent_; const ASTNode *step_; Result stepResult_; size_t contextPos_; size_t contextSize_; Item::Ptr contextItem_; }; class XQILLA_API IntermediateStepCheckResult : public ResultImpl { public: IntermediateStepCheckResult(const LocationInfo *o, const Result &parent); Item::Ptr next(DynamicContext *context); private: Result parent_; }; class XQILLA_API LastStepCheckResult : public ResultImpl { public: LastStepCheckResult(const LocationInfo *o, const Result &parent); Item::Ptr next(DynamicContext *context); private: Result parent_; int _nTypeOfItemsInLastStep; }; #endif XQilla-2.3.4/include/xqilla/ast/XQFunctionCoercion.hpp0000644001725400016040000000356313273140037017603 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQFUNCTIONCOERCION_HPP #define _XQFUNCTIONCOERCION_HPP #include #include class SequenceType; class XQILLA_API XQFunctionCoercion : public ASTNodeImpl { public: XQFunctionCoercion(ASTNode *expr, SequenceType *exprType, XPath2MemoryManager *memMgr); XQFunctionCoercion(ASTNode *expr, SequenceType *exprType, ASTNode *funcConvert, const StaticType &treatType, XPath2MemoryManager *memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return _expr; } void setExpression(ASTNode *item) { _expr = item; } ASTNode *getFuncConvert() const { return _funcConvert; } void setFuncConvert(ASTNode *item) { _funcConvert = item; } SequenceType *getSequenceType() const { return _exprType; } const StaticType &getTreatType() const { return _treatType; } static const XMLCh funcVarName[]; protected: ASTNode* _expr; SequenceType *_exprType; ASTNode *_funcConvert; StaticType _treatType; }; #endif XQilla-2.3.4/include/xqilla/ast/XQAttributeConstructor.hpp0000644001725400016040000000320513273140037020536 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQATTRIBUTECONSTRUCTOR_HPP #define XQATTRIBUTECONSTRUCTOR_HPP #include class XQILLA_API XQAttributeConstructor : public XQDOMConstructor { public: XQAttributeConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } virtual void setName(ASTNode *name); // Used for parsing only ASTNode *namespaceExpr; protected: ASTNode* m_name; VectorOfASTNodes* m_children; }; #endif XQilla-2.3.4/include/xqilla/ast/XQSequence.hpp0000644001725400016040000000351113273140037016075 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQSEQUENCE_HPP #define _XQSEQUENCE_HPP #include class XQILLA_API XQSequence : public ASTNodeImpl { public: XQSequence(XPath2MemoryManager* memMgr); XQSequence(const VectorOfASTNodes &children, XPath2MemoryManager* memMgr); ///adds a ASTNode to this XQSequence void addItem(ASTNode* di); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual BoolResult boolResult(DynamicContext* context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const VectorOfASTNodes &getChildren() const { return _astNodes; } static XQSequence *constantFold(Result &result, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location); private: VectorOfASTNodes _astNodes; }; #endif XQilla-2.3.4/include/xqilla/ast/XQElementConstructor.hpp0000644001725400016040000000675713273140037020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQELEMENTCONSTRUCTOR_HPP #define XQELEMENTCONSTRUCTOR_HPP #include #include #include #include class XQILLA_API XQElementConstructor : public XQDOMConstructor { public: XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XPath2MemoryManager *mm); XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > *namespaces, XPath2MemoryManager *mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getAttributes() const; void setAttributes(VectorOfASTNodes *a) { m_attrList = a; } virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > *getNamespaces() const { return m_namespaces; } virtual void setName(ASTNode *name); // Used for parsing only ASTNode *namespaceExpr; protected: ASTNode* m_name; VectorOfASTNodes* m_attrList, *m_children; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh >* m_namespaces; }; class ElemConstructFilter : public EventFilter { public: ElemConstructFilter(EventHandler *next, const LocationInfo *location, XPath2MemoryManager *mm); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: struct AttrRecord { AttrRecord(const XMLCh *u, const XMLCh *n, XPath2MemoryManager *mm); bool operator<(const AttrRecord &o) const; const XMLCh *uri; const XMLCh *name; }; XPath2MemoryManager *mm_; const LocationInfo *location_; unsigned int level_; bool seenContent_; std::set attrs_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQQuantified.hpp0000644001725400016040000000314113273140037016415 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQQUANTIFIED_HPP #define XQQUANTIFIED_HPP #include class TupleNode; class XQILLA_API XQQuantified : public ASTNodeImpl { public: enum Type { SOME, EVERY }; XQQuantified(Type qtype, TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); Type getQuantifierType() const { return qtype_; } TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; private: Type qtype_; TupleNode *parent_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/ast/TupleNode.hpp0000644001725400016040000000425213273140037015756 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLENODE_HPP #define TUPLENODE_HPP #include class StaticContext; class StaticAnalysis; class XPath2MemoryManager; class XQILLA_API TupleNode : public LocationInfo { public: enum Type { CONTEXT_TUPLE, FOR, LET, WHERE, ORDER_BY, COUNT, DEBUG_HOOK }; virtual ~TupleNode() {} virtual void release(); virtual Type getType() const { return type_; } virtual XPath2MemoryManager *getMemoryManager() const { return mm_; } unsigned int getMin() const { return min_; } unsigned int getMax() const { return max_; } void setMin(unsigned int v) { min_ = v; } void setMax(unsigned int v) { max_ = v; } TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } void *getUserData() const { return userData_; } void setUserData(void *data) { userData_ = data; } virtual TupleNode *staticResolution(StaticContext *context) = 0; virtual TupleNode *staticTypingImpl(StaticContext *context) = 0; virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) = 0; virtual TupleResult::Ptr createResult(DynamicContext* context) const = 0; protected: TupleNode(Type type, TupleNode *parent, XPath2MemoryManager *mm) : type_(type), parent_(parent), min_(0), max_(0), userData_(0), mm_(mm) {} Type type_; TupleNode *parent_; unsigned int min_, max_; void *userData_; XPath2MemoryManager *mm_; }; #endif XQilla-2.3.4/include/xqilla/ast/ASTNode.hpp0000644001725400016040000001206013273140037015310 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTNODE_HPP #define _ASTNODE_HPP #include #include #include #include #include class DynamicContext; class StaticContext; class Result; class StaticAnalysis; class PendingUpdateList; class EventHandler; class StaticTyper; struct BoolResult; class XQILLA_API ASTNode : public LocationInfo { public: ///enum for data types typedef enum { LITERAL, NUMERIC_LITERAL, QNAME_LITERAL, SEQUENCE, FUNCTION, NAVIGATION, VARIABLE, STEP, IF, CASTABLE_AS, CAST_AS, TREAT_AS, OPERATOR, CONTEXT_ITEM, DOM_CONSTRUCTOR, QUANTIFIED, TYPESWITCH, VALIDATE, FUNCTION_CALL, USER_FUNCTION, ORDERING_CHANGE, FUNCTION_COERCION, PROMOTE_UNTYPED, PROMOTE_NUMERIC, PROMOTE_ANY_URI, DOCUMENT_ORDER, PREDICATE, ATOMIZE, EBV, FTCONTAINS, UDELETE, URENAME, UREPLACE, UREPLACE_VALUE_OF, UTRANSFORM, UINSERT_AS_FIRST, UINSERT_AS_LAST, UINSERT_INTO, UINSERT_AFTER, UINSERT_BEFORE, UAPPLY_UPDATES, NAME_EXPRESSION, CONTENT_SEQUENCE, DIRECT_NAME, RETURN, NAMESPACE_BINDING, FUNCTION_CONVERSION, SIMPLE_CONTENT, ANALYZE_STRING, CALL_TEMPLATE, APPLY_TEMPLATES, INLINE_FUNCTION, FUNCTION_REF, FUNCTION_DEREF, PARTIAL_APPLY, COPY_OF, COPY, MAP, DEBUG_HOOK } whichType; ASTNode() : userData_(0) {} virtual ~ASTNode() {} virtual void release() = 0; virtual ASTNode *copy(DynamicContext *context) const = 0; virtual bool isSubsetOf(const ASTNode *other) const = 0; virtual bool isEqualTo(const ASTNode *other) const = 0; virtual whichType getType() const = 0; virtual XPath2MemoryManager *getMemoryManager() const = 0; virtual ASTNode *staticResolution(StaticContext *context) = 0; virtual ASTNode *staticTyping(StaticContext *context, StaticTyper *styper) = 0; virtual ASTNode *staticTypingImpl(StaticContext *context) = 0; /// Returns the StaticAnalysis for this ASTNode virtual const StaticAnalysis &getStaticAnalysis() const = 0; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral */ virtual bool isConstant() const = 0; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral. If the literal value of this ASTNode is a single DateOrTimeType, then !hasTimezone() on it must return true, otherwise this method will return false. */ virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const = 0; /** Returns a Result iterator for the results of this expression. The flags parameter is currently unused */ virtual Result createResult(DynamicContext* context, int flags=0) const = 0; /** Returns a result iterator with the result of applying this expression to each of the given context items in turn. */ virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const = 0; /** Returns the result of this expression as a boolean */ virtual BoolResult boolResult(DynamicContext* context) const = 0; /** Returns the result of this expression via the EventHandler provided. An EventGenerator may be returned to be called as a tail call optimization */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const = 0; void generateAndTailCall(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; /// Executes an update expression virtual PendingUpdateList createUpdateList(DynamicContext *context) const = 0; void *getUserData() const { return userData_; } void setUserData(void *data) { userData_ = data; } private: void *userData_; }; inline void ASTNode::generateAndTailCall(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { EventGenerator::generateAndTailCall(generateEvents(events, context, preserveNS, preserveType), events, context); } typedef std::vector > VectorOfASTNodes; #endif XQilla-2.3.4/include/xqilla/ast/XQCastAs.hpp0000644001725400016040000000356613273140037015515 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCASTAS_HPP #define _XQCASTAS_HPP #include #include class SequenceType; class XQILLA_API XQCastAs : public ASTNodeImpl { public: XQCastAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr); XQCastAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getIsPrimitive() const { return _isPrimitive; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return _typeIndex; } void setExpression(ASTNode *item); AnyAtomicType::Ptr cast(const AnyAtomicType::Ptr &in, DynamicContext *context) const; AnyAtomicType::Ptr cast(const XMLCh *value, DynamicContext *context) const; protected: ASTNode* _expr; SequenceType* _exprType; bool _isPrimitive; AnyAtomicType::AtomicObjectType _typeIndex; }; #endif XQilla-2.3.4/include/xqilla/ast/XQPartialApply.hpp0000644001725400016040000000257013273140037016733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQPARTIALAPPLY_HPP #define XQPARTIALAPPLY_HPP #include class XQILLA_API XQPartialApply : public ASTNodeImpl { public: XQPartialApply(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } VectorOfASTNodes *getArguments() const { return args_; } private: ASTNode *expr_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.4/include/xqilla/ast/LocationInfo.hpp0000644001725400016040000000400613273140037016440 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _LOCATIONINFO_HPP #define _LOCATIONINFO_HPP #include #include /** A class that gives records a location in the query */ class XQILLA_API LocationInfo { public: /** Constructor that sets the information to 0 */ LocationInfo() : file_(0), line_(0), column_(0) {} /** Constructor that takes the initial information */ LocationInfo(const XMLCh *file, unsigned int line, unsigned int column) : file_(file), line_(line), column_(column) {} /** The file that the query was parsed from. This could be null. */ const XMLCh *getFile() const { return file_; } /** The line in the query */ unsigned int getLine() const { return line_; } /** The column in the query */ unsigned int getColumn() const { return column_; } /** Sets the location to the given information */ void setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column) { file_ = file; line_ = line; column_ = column; } /** Sets the location with the information in the given LocationInfo object */ void setLocationInfo(const LocationInfo *o) { if(o != 0) { file_ = o->file_; line_ = o->line_; column_ = o->column_; } } private: const XMLCh *file_; unsigned int line_, column_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQFunctionDeref.hpp0000644001725400016040000000257413273140037017070 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONDEREF_HPP #define XQFUNCTIONDEREF_HPP #include class XQILLA_API XQFunctionDeref : public ASTNodeImpl { public: XQFunctionDeref(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } VectorOfASTNodes *getArguments() const { return args_; } private: ASTNode *expr_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQAnalyzeString.hpp0000644001725400016040000000563213273140037017125 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQANALYZESTRING_HPP #define XQANALYZESTRING_HPP #include #include #include #include class XQILLA_API XQAnalyzeString : public ASTNodeImpl { public: XQAnalyzeString(XPath2MemoryManager* memMgr); XQAnalyzeString(ASTNode *expr, ASTNode *regex, ASTNode *flags, ASTNode *match, ASTNode *nonMatch, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } ASTNode *getRegex() const { return regex_; } void setRegex(ASTNode *item) { regex_ = item; } ASTNode *getFlags() const { return flags_; } void setFlags(ASTNode *item) { flags_ = item; } ASTNode *getMatch() const { return match_; } void setMatch(ASTNode *item) { match_ = item; } ASTNode *getNonMatch() const { return nonMatch_; } void setNonMatch(ASTNode *item) { nonMatch_ = item; } protected: ASTNode *expr_; ASTNode *regex_; ASTNode *flags_; ASTNode *match_; ASTNode *nonMatch_; }; class XQILLA_API AnalyzeStringResult : public ResultImpl, private RegexGroupStore { public: AnalyzeStringResult(const LocationInfo *info); virtual const XMLCh *getInput(DynamicContext *context) = 0; virtual const XMLCh *getPattern(DynamicContext *context) = 0; virtual const XMLCh *getFlags(DynamicContext *context) = 0; virtual Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) = 0; virtual Item::Ptr next(DynamicContext *context); private: virtual const XMLCh *getGroup(int index) const; const XMLCh *input_; XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf matches_; std::vector > strings_; size_t contextPos_; XERCES_CPP_NAMESPACE_QUALIFIER Match *currentMatch_; XPath2MemoryManager *mm_; Result result_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQNamespaceBinding.hpp0000644001725400016040000000361513273140037017521 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQNAMESPACEBINDING_HPP #define XQNAMESPACEBINDING_HPP #include #include class XQILLA_API XQNamespaceBinding : public ASTNodeImpl { public: XQNamespaceBinding(XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *namespaces, ASTNode *expr, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext *context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNamespaces() const { return namespaces_; } protected: ASTNode *expr_; XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *namespaces_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQFunctionCall.hpp0000644001725400016040000000313613273140037016711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONCALL_HPP #define XQFUNCTIONCALL_HPP #include class XQILLA_API XQFunctionCall : public ASTNodeImpl { public: XQFunctionCall(const XMLCh *qname, VectorOfASTNodes *args, XPath2MemoryManager *mm); XQFunctionCall(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const VectorOfASTNodes *getArguments() const { return args_; } private: const XMLCh *prefix_; const XMLCh *uri_; const XMLCh *name_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQDocumentOrder.hpp0000644001725400016040000000512513273140037017102 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQDOCUMENTORDER_HPP #define _XQDOCUMENTORDER_HPP #include #include #include #include class XQILLA_API XQDocumentOrder : public ASTNodeImpl { public: XQDocumentOrder(ASTNode* expr, XPath2MemoryManager* memMgr); XQDocumentOrder(ASTNode* expr, bool unordered, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } bool getUnordered() const { return unordered_; } protected: ASTNode* expr_; bool unordered_; }; class XQILLA_API DocumentOrderResult : public ResultImpl { public: DocumentOrderResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), parent_(parent) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); private: Result parent_; }; class XQILLA_API UniqueNodesResult : public ResultImpl { public: UniqueNodesResult(const XQDocumentOrder *doc, const Result &parent, const DynamicContext *context) : ResultImpl(doc), parent_(parent), nTypeOfItemsInLastStep_(0), noDups_(uniqueLessThanCompareFn(context)) {} Item::Ptr next(DynamicContext *context); private: class uniqueLessThanCompareFn { public: uniqueLessThanCompareFn(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; typedef std::set NoDuplicatesSet; Result parent_; int nTypeOfItemsInLastStep_; NoDuplicatesSet noDups_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQPIConstructor.hpp0000644001725400016040000000311013273140037017076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQPICONSTRUCTOR_HPP #define XQPICONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQPIConstructor : public XQDOMConstructor { public: XQPIConstructor(ASTNode* name, ASTNode* value, XPath2MemoryManager* mm, bool xslt = false); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual ASTNode *getValue() const; bool isXSLT() const { return xslt_; } virtual void setName(ASTNode *name); virtual void setValue(ASTNode *value); private: ASTNode* m_name, *m_value; bool xslt_; }; #endif XQilla-2.3.4/include/xqilla/ast/XQCastableAs.hpp0000644001725400016040000000344113273140037016331 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCASTABLEAS_HPP #define _XQCASTABLEAS_HPP #include #include class SequenceType; class XQILLA_API XQCastableAs : public ASTNodeImpl { public: XQCastableAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr); XQCastableAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getIsPrimitive() const { return _isPrimitive; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return _typeIndex; } void setExpression(ASTNode *item); protected: ASTNode* _expr; SequenceType* _exprType; bool _isPrimitive; AnyAtomicType::AtomicObjectType _typeIndex; }; #endif XQilla-2.3.4/include/xqilla/runtime/0000755001725400016040000000000013273141210014311 500000000000000XQilla-2.3.4/include/xqilla/runtime/ResultBuffer.hpp0000644001725400016040000000271013273140037017360 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTBUFFER_HPP #define _RESULTBUFFER_HPP #include #include /** A reference counting wrapper for the result buffer */ class XQILLA_API ResultBuffer { public: ResultBuffer(const Result &result, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); ResultBuffer(const Item::Ptr &item, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); ResultBuffer(ResultBufferImpl *impl, unsigned start = 0); /// Creates a result that returns the same items as the one used to construct this buffer Result createResult(); bool isNull() const { return _impl.isNull(); } private: ResultBufferImpl::Ptr _impl; unsigned _start; }; #endif XQilla-2.3.4/include/xqilla/runtime/SequenceResult.hpp0000644001725400016040000000244613273140037017725 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCERESULT_HPP #define _SEQUENCERESULT_HPP #include #include class XQILLA_API SequenceResult : public ResultImpl { public: SequenceResult(const LocationInfo *o, const Sequence &seq); /// Get the next item from the iterator virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); /// Cast operator to a Sequence virtual Sequence toSequence(DynamicContext *context = 0); virtual void skip(unsigned count, DynamicContext *context); private: Sequence seq_; size_t i_; }; #endif XQilla-2.3.4/include/xqilla/runtime/ResultImpl.hpp0000644001725400016040000000371413273140037017055 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTIMPL_HPP #define _RESULTIMPL_HPP #include #include #include class DynamicContext; class Sequence; class Result; class ResultBuffer; /** A lazily evaluated query result */ class XQILLA_API ResultImpl : public LocationInfo { public: virtual ~ResultImpl() {} Result *getResultPointer() { return resultPointer_; } void setResultPointer(Result *p) { resultPointer_ = p; } /// Get the next item from the iterator. Returns null if the is no next value. virtual Item::Ptr next(DynamicContext *context); /// Gets the next item, or returns a tail call Result which will give the next item. virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); /// Cast operator to a Sequence virtual Sequence toSequence(DynamicContext *context); /// Returns a result buffer of the result virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer); /// Skip ahead virtual void skip(unsigned count, DynamicContext *context); protected: ResultImpl(const LocationInfo *o); Result *resultPointer_; private: ResultImpl(const ResultImpl &) {}; ResultImpl &operator=(const ResultImpl &) { return *this; }; }; #endif XQilla-2.3.4/include/xqilla/runtime/TupleResult.hpp0000644001725400016040000000237313273140037017245 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLERESULT_HPP #define TUPLERESULT_HPP #include #include #include class DynamicContext; class XQILLA_API TupleResult : public VariableStore, public LocationInfo, public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TupleResult() {} virtual bool next(DynamicContext *context) = 0; protected: TupleResult(const LocationInfo *location) { setLocationInfo(location); } }; #endif XQilla-2.3.4/include/xqilla/runtime/Sequence.hpp0000644001725400016040000000766113273140037016532 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCE_HPP #define _SEQUENCE_HPP #include #include #include #include #include #include class DynamicContext; typedef std::vector > VectorOfItems; /** * An eagerly evaluated result of a query execution. */ class XQILLA_API Sequence : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef VectorOfItems::iterator iterator; typedef VectorOfItems::const_iterator const_iterator; typedef VectorOfItems::reverse_iterator reverse_iterator; typedef VectorOfItems::const_reverse_iterator const_reverse_iterator; // constructor that takes one Item Sequence(const Item::Ptr &item, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // constructor that creates a empty sequence Sequence(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); /// construct and reserve space for n elements Sequence(size_t n, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); Sequence(const Sequence&, size_t start, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // copy constructor Sequence(const Sequence&, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); // copy constructor Sequence(const Sequence&); Sequence &operator=(const Sequence &); ~Sequence(); void clear(); const Item::Ptr &first() const; const Item::Ptr &second() const; ///Begin an iterator Sequence::iterator begin(void); Sequence::const_iterator begin(void) const; ///Find the end of the iterator Sequence::iterator end(void); Sequence::const_iterator end(void) const; ///Reverse iterator methods Sequence::reverse_iterator rbegin(void); Sequence::const_reverse_iterator rbegin(void) const; Sequence::reverse_iterator rend(void); Sequence::const_reverse_iterator rend(void) const; ///Returns the number of nodes in the list size_t getLength(void) const; ///Return the indexth item in the collection const Item::Ptr &item(size_t index) const; ///Return the indexth item in the collection - takes ATDecimalOrDerived const Item::Ptr &item(const ATDecimalOrDerived::Ptr &index) const; /// add an item to this sequence void addItem(const Item::Ptr &item); /// add an item to this sequence void addItemFront(const Item::Ptr &item); /// combine another sequence onto this sequence void joinSequence(const Sequence & s); ///Returns true if the list is empty bool isEmpty() const; /// sort into document order (only works for Sequences containing only Nodes) void sortIntoDocumentOrder(const DynamicContext *context); /// sort as strings, using the given collation void sortWithCollation(const Collation *collation, const DynamicContext *context); private: VectorOfItems _itemList; friend class SequenceResult; }; #endif XQilla-2.3.4/include/xqilla/runtime/EmptyResult.hpp0000644001725400016040000000222513273140037017246 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EMPTYRESULT_HPP #define _EMPTYRESULT_HPP #include class XQILLA_API EmptyResult : public ResultImpl { public: EmptyResult(const LocationInfo *o); Item::Ptr next(DynamicContext *context); virtual Sequence toSequence(DynamicContext *context); virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer); virtual void skip(unsigned count, DynamicContext *context); }; #endif XQilla-2.3.4/include/xqilla/runtime/Result.hpp0000644001725400016040000000425413273140037016233 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULT_HPP #define _RESULT_HPP #include #include #include #include #include #include class Sequence; class SequenceType; class DynamicContext; class StaticType; /** A scoped pointer wrapper for the lazily evaluated query result */ class XQILLA_API Result { public: Result(const Item::Ptr &item); Result(const Sequence &seq); Result(ResultImpl *impl); Result(const Result &o); Result &operator=(const Result &o); ~Result(); /// Returns the underlying ResultImpl object ResultImpl *operator->(); /// Returns the underlying ResultImpl object const ResultImpl *operator->() const; /// Returns the underlying ResultImpl object ResultImpl *get(); /// Returns the underlying ResultImpl object const ResultImpl *get() const; /// Returns true if the underlying pointer is null bool isNull() const; EmptyResult* getEmpty() const; private: ResultImpl *_impl; static EmptyResult _empty; }; inline bool Result::isNull() const { return _impl == 0; } inline ResultImpl *Result::get() { if(_impl) return _impl; return getEmpty(); } inline const ResultImpl *Result::get() const { if(_impl) return _impl; return getEmpty(); } inline ResultImpl *Result::operator->() { return get(); } inline const ResultImpl *Result::operator->() const { return get(); } #endif XQilla-2.3.4/include/xqilla/runtime/ResultBufferImpl.hpp0000644001725400016040000000416513273140037020210 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTBUFFERIMPL_HPP #define _RESULTBUFFERIMPL_HPP #include #include #include #include /** A buffer for lazily evaluated query results. This object is not thread safe */ class XQILLA_API ResultBufferImpl : public ReferenceCounted { public: typedef RefCountPointer Ptr; static const unsigned int UNLIMITED_COUNT; /** * Do not allocate this object from a memory manager! * It must be created using the heap. */ ResultBufferImpl(const Result &result, unsigned int readCount = UNLIMITED_COUNT); ResultBufferImpl(const Item::Ptr &item, unsigned int readCount = UNLIMITED_COUNT); ~ResultBufferImpl(); /// Creates a result that returns the same items as the one used to construct this buffer Result createResult(unsigned index); unsigned int getMaxReadCount() const { return _maxReadCount; } void increaseMaxReadCount(unsigned int readCount); unsigned int incrementReadCount() { return ++_readCount; } private: ResultBufferImpl(const ResultBufferImpl &); ResultBufferImpl &operator=(const ResultBufferImpl &); Item::Ptr item(unsigned int index, DynamicContext *context); friend class BufferedResult; typedef std::vector ItemList; Result _result; ItemList _items; unsigned int _readCount; unsigned int _maxReadCount; }; #endif XQilla-2.3.4/include/xqilla/runtime/ClosureResult.hpp0000644001725400016040000000355613273140037017574 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CLOSURERESULT_HPP #define _CLOSURERESULT_HPP #include #include #include class VariableStore; class ASTNode; class DocumentCache; class XQILLA_API ClosureResult : public ResultImpl { public: virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); static Result create(const ASTNode *ast, DynamicContext *context); static Result create(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result); private: ClosureResult(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result); Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; VarStoreImpl varStore_; Result result_; }; class XQILLA_API ClosureEventGenerator : public ASTNodeEventGenerator { public: ClosureEventGenerator(const ASTNode *ast, DynamicContext *context, bool preserveNS, bool preserveType); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context); protected: Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; VarStoreImpl varStore_; }; #endif XQilla-2.3.4/include/xqilla/items/0000755001725400016040000000000013273141210013747 500000000000000XQilla-2.3.4/include/xqilla/items/impl/0000755001725400016040000000000013273141210014710 500000000000000XQilla-2.3.4/include/xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp0000644001725400016040000000650313273140037022060 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHDAYORDERIVEDIMPL_HPP #define _ATGMONTHDAYORDERIVEDIMPL_HPP #include #include #include #include #include class XQILLA_API ATGMonthDayOrDerivedImpl : public ATGMonthDayOrDerived { public: /* constructor */ ATGMonthDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGMonthDay(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gMonthDay */ void setGMonthDay(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The values of this gMonthDay*/ MAPM _DD; MAPM _MM; /* whether this gMonthDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGMONTHDAYORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATQNameOrDerivedImpl.hpp0000644001725400016040000000670113273140037021227 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATQNAMEORDERIVEDIMPL_HPP #define _ATQNAMEORDERIVEDIMPL_HPP #include #include #include class XQILLA_API ATQNameOrDerivedImpl : public ATQNameOrDerived { public: /* constructor */ ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the URI */ virtual const XMLCh* getURI() const; /* returns the prefix */ virtual const XMLCh* getPrefix() const; /* returns the name */ virtual const XMLCh* getName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns the XMLCh* (lexical := prefix:localname) representation of this type */ const XMLCh* asLexicalString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The uri value of this QName*/ const XMLCh* _uri; /*The prefix of this QName */ const XMLCh* _prefix; /*The local name value of this QName */ const XMLCh* _name; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATQNAMEORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATGMonthOrDerivedImpl.hpp0000644001725400016040000000644113273140037021423 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHORDERIVEDIMPL_HPP #define _ATGMONTHORDERIVEDIMPL_HPP #include #include #include #include #include class XQILLA_API ATGMonthOrDerivedImpl : public ATGMonthOrDerived { public: /* constructor */ ATGMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGMonth(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGMonth(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _gMonth; // as nonNegativeInteger /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGMONTHORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp0000644001725400016040000000661413273140037022246 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARMONTHORDERIVEDIMPL_HPP #define _ATGYEARMONTHORDERIVEDIMPL_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API ATGYearMonthOrDerivedImpl : public ATGYearMonthOrDerived { public: /* constructor */ ATGYearMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGYearMonth(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gYearMonth */ void setGYearMonth(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The values of this gYearMonth*/ MAPM _MM; // as nonNegativeInteger MAPM _YY; // as integer /* whether this gYearMonth has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGYEARMONTHORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATDateOrDerivedImpl.hpp0000644001725400016040000001377513273140037021114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATEORDERIVEDIMPL_HPP #define _ATDATEORDERIVEDIMPL_HPP #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class StaticContext; class XQILLA_API ATDateOrDerivedImpl : public ATDateOrDerived { public: /* constructor */ ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATDateOrDerived with a timezone added to it */ virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseDate(const XMLCh* const date, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setDate(const XMLCh* const date); /*The value of this date, in seconds since 0001-01-01T00:00:00, always normalized if a timezone is present*/ MAPM seconds_; /* the timezone associated with this ATDateOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDATEORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATDecimalOrDerivedImpl.hpp0000644001725400016040000001425513273140037021567 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDECIMALORDERIVEDIMPL_HPP #define _ATDECIMALORDERIVEDIMPL_HPP #include #include #include #include class StaticContext; class XQILLA_API ATDecimalOrDerivedImpl : public ATDecimalOrDerived { public: /* constructor */ ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /* constructor */ ATDecimalOrDerivedImpl(int value); /** destructor -- do nothing*/ virtual ~ATDecimalOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /** Treat this decimal (must be integer) as a codepoint **/ virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _decimal; } virtual State getState() const { return isNegative()? NEG_NUM : NUM; } /* The significant digits */ static unsigned int g_nSignificantDigits; static MAPM parseDecimal(const XMLCh* const value); private: /* set the value of this decimal */ void setDecimal(const XMLCh* const value); /* flag to note that we are an Integer -- to avoid many calls to * isInstanceOfType */ bool _isInteger; /*The value of this decimal*/ MAPM _decimal; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDECIMALORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATTimeOrDerivedImpl.hpp0000644001725400016040000001277713273140037021136 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTIMEORDERIVEDIMPL_HPP #define _ATTIMEORDERIVEDIMPL_HPP #include #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class XQILLA_API ATTimeOrDerivedImpl : public ATTimeOrDerived { public: /* constructor */ ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same time, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATTimeOrDerived with a timezone added to it */ virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a time with the given dayTimeDuration added to it */ virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a time with the given dayTimeDuration subtracted from it */ virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseTime(const XMLCh* const time, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setTime(const XMLCh* const time); ATTimeOrDerived::Ptr addDayTimeDuration(const MAPM &seconds, const DynamicContext* context) const; MAPM buildReferenceDateTime(const DynamicContext* context) const; /*The value of this date, in seconds since 00:00:00*/ MAPM seconds_; /* the timezone associated with this ATTimeOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATTIMEORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATGYearOrDerivedImpl.hpp0000644001725400016040000000641613273140037021240 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARORDERIVEDIMPL_HPP #define _ATGYEARORDERIVEDIMPL_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API ATGYearOrDerivedImpl : public ATGYearOrDerived { public: /* constructor */ ATGYearOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGYear(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGYear(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _YY; /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGYEARORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp0000644001725400016040000001572113273140037021724 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATETIMEORDERIVEDIMPL_HPP #define _ATDATETIMEORDERIVEDIMPL_HPP #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class StaticContext; class XQILLA_API ATDateTimeOrDerivedImpl : public ATDateTimeOrDerived { public: /* constructor */ ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATDateTimeOrDerived with a timezone added to it */ virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM addYearMonthDuration(const MAPM &seconds, const MAPM &monthsToAdd); static MAPM parseDateTime(const XMLCh* const dateTime, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setDateTime(const XMLCh* const date); ATDateTimeOrDerived::Ptr addDayTimeDuration(const MAPM &seconds, const DynamicContext* context) const; ATDateTimeOrDerived::Ptr addYearMonthDuration(const MAPM &months, const DynamicContext* context) const; /*The value of this dateTime, in seconds since 0001-01-01T00:00:00, always normalized if a timezone is present*/ MAPM seconds_; /* the timezone associated with this ATDateTimeOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDATETIMEORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATFloatOrDerivedImpl.hpp0000644001725400016040000001516113273140037021273 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATFLOATORDERIVEDIMPL_HPP #define _ATFLOATORDERIVEDIMPL_HPP #include #include #include #include class XQILLA_API ATFloatOrDerivedImpl : public ATFloatOrDerived { public: /* constructor */ ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /** destructor -- do nothing*/ virtual ~ATFloatOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /* Is this xs:float not a number */ virtual bool isNaN() const; /* Is this xs:float infinite? */ virtual bool isInfinite() const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _float; } virtual State getState() const { return _state; } /* The significant digits */ static int g_nSignificantDigits; static MAPM parseFloat(const XMLCh* const value, State &state); private: /* set the value of this decimal */ void setFloat(const XMLCh* const value); /* returns a new infinity ATFloatOrDerived*/ ATFloatOrDerived::Ptr infinity(const DynamicContext* context) const; /* returns a new negative infinity ATFloatOrDerived*/ ATFloatOrDerived::Ptr negInfinity(const DynamicContext* context) const; /* returns a NaN ATFloatOrDerived*/ ATFloatOrDerived::Ptr notANumber(const DynamicContext* context) const; /* returns a -0 ATFloatOrDerived*/ ATFloatOrDerived::Ptr negZero(const DynamicContext* context) const; /*returns a ATFloatOrDerived of value value*/ ATFloatOrDerived::Ptr newFloat(MAPM value, const DynamicContext* context) const; /*The value of this float*/ MAPM _float; /* is it NaN, INF, NegINF, or just a float (NUM) */ State _state; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATFLOATORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATDurationOrDerivedImpl.hpp0000644001725400016040000001355413273140037022017 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDURATIONORDERIVEDIMPL_HPP #define _ATDURATIONORDERIVEDIMPL_HPP #include #include #include #include class AnyAtomicType; class ATDecimalOrDerived; class XPath2MemoryManager; class MAPM; class XQILLA_API ATDurationOrDerivedImpl : public ATDurationOrDerived { public: /* constructor */ ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* constructor */ ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &months, const MAPM &seconds, const DynamicContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if this duration is an instance of a xdt:dayTimeDuration */ virtual bool isDayTimeDuration() const; /* returns true if this duration is an instance of a xdt:yearMonthDuration */ virtual bool isYearMonthDuration() const; /* returns true if the two objects have the same duration * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const; /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const; /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const; /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &multiplier, const DynamicContext* context) const; /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const; /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const; /** Returns the year portion of this duration */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const; /** Returns the month portion of this duration */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const; /** Returns the days portion of this duration */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const; /** Returns the hours portion of this duration */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const; /** Returns the minutes portion of this duration */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const; /** Returns the seconds portion of this duration */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const; /* return this duration in forms of seconds */ virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const; /* return this duration in forms of months */ virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const; /** Returns true if this Duration is negative, false otherwise */ virtual bool isNegative() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static void parseDuration(const XMLCh *const s, MAPM &months, MAPM &seconds); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The values that make up this duration */ bool _isPositive; MAPM _months; MAPM _seconds; AtomicObjectType _durationType; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; void init(const DynamicContext* context); void setDuration(const XMLCh* const value); }; #endif // _ATDURATIONORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATBooleanOrDerivedImpl.hpp0000644001725400016040000000630313273140037021603 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBOOLEANORDERIVEDIMPL_HPP #define _ATBOOLEANORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class StaticContext; class XQILLA_API ATBooleanOrDerivedImpl : public ATBooleanOrDerived { public: /* constructor */ ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, bool value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; virtual const XMLCh* asString() const; /* returns true if the two objects have the same boolean value * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const; /* returns true if boolean value evaluates to true * false otherwise */ virtual bool isTrue() const; /* returns false if boolean value evaluates to true * true otherwise */ virtual bool isFalse() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this boolean */ bool _value; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATBOOLEANORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATDoubleOrDerivedImpl.hpp0000644001725400016040000001525513273140037021444 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDOUBLEORDERIVEDIMPL_HPP #define _ATDOUBLEORDERIVEDIMPL_HPP #include #include #include #include class XQILLA_API ATDoubleOrDerivedImpl : public ATDoubleOrDerived { public: /* constructor */ ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /** destructor -- do nothing*/ virtual ~ATDoubleOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /* Is this xs:double not a number */ virtual bool isNaN() const; /* Is this xs:double infinite? */ virtual bool isInfinite() const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _double; } virtual State getState() const { return _state; } /* The significant digits */ static int g_nSignificantDigits; static bool g_bEnforceIEEE; static MAPM parseDouble(const XMLCh* const value, State &state); private: /* set the value of this decimal */ void setDouble(const XMLCh* const value); /* returns a new infinity ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr infinity(const DynamicContext* context) const; /* returns a new negative infinity ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr negInfinity(const DynamicContext* context) const; /* returns a NaN ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr notANumber(const DynamicContext* context) const; /* returns a -0 ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr negZero(const DynamicContext* context) const; /*returns a ATDoubleOrDerived of value value*/ ATDoubleOrDerived::Ptr newDouble(MAPM value, const DynamicContext* context) const; /*The value of this double*/ MAPM _double; /* is it NaN, INF, NegINF, or just a double (NUM) */ State _state; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDOUBLEORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/impl/ATGDayOrDerivedImpl.hpp0000644001725400016040000000644013273140037021052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGDAYORDERIVEDIMPL_HPP #define _ATGDAYORDERIVEDIMPL_HPP #include #include #include #include #include #include class XQILLA_API ATGDayOrDerivedImpl : public ATGDayOrDerived { public: /* constructor */ ATGDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGDay(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGDay(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _gDay; /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGDAYORDERIVEDIMPL_HPP XQilla-2.3.4/include/xqilla/items/FunctionRef.hpp0000644001725400016040000000356413273140037016640 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAFUNCTIONREF_HPP #define _XQILLAFUNCTIONREF_HPP #include #include #include #include class DynamicContext; class LocationInfo; class FunctionSignature; typedef std::vector VectorOfResults; class XQILLA_API FunctionRef : public Item { public: typedef RefCountPointer Ptr; virtual bool isNode() const { return false; } virtual bool isAtomicValue() const { return false; } virtual bool isFunction() const { return true; } virtual const XMLCh *getTypeURI() const { return 0; } virtual const XMLCh *getTypeName() const { return 0; } virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const = 0; virtual size_t getNumArgs() const = 0; virtual const FunctionSignature *getSignature() const = 0; virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const = 0; virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const = 0; protected: FunctionRef() {} }; #endif XQilla-2.3.4/include/xqilla/items/ATDateTimeOrDerived.hpp0000644001725400016040000001247413273140037020143 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATETIMEORDERIVED_HPP #define _ATDATETIMEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0; /** * Returns a decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATDateTimeOrDerived with a timezone added to it */ virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATDATETIMEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATGDayOrDerived.hpp0000644001725400016040000000453113273140037017266 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGDAYORDERIVED_HPP #define _ATGDAYORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGDayOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGDAYORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATFloatOrDerived.hpp0000644001725400016040000001162313273140037017507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATFLOATORDERIVED_HPP #define _ATFLOATORDERIVED_HPP #include #include #include class XQILLA_API ATFloatOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /* Is this xs:double not a number */ virtual bool isNaN() const = 0; /* Is this xs:double infinite? */ virtual bool isInfinite() const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATFLOATORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/DatatypeFactory.hpp0000644001725400016040000000745713273140037017526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Factory base class */ #ifndef _DATATYPEFACTORY_HPP #define _DATATYPEFACTORY_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class StaticContext; class XPath2MemoryManager; class DocumentCache; class XQILLA_API DatatypeFactory { public: DatatypeFactory(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *baseValidator); virtual ~DatatypeFactory(); ///Create instance of the base datatype virtual AnyAtomicType::Ptr createInstance(const XMLCh* value, const DynamicContext* context) const; ///Create instance of a datatype, using DatatypeFactoryTemplate to determine type virtual AnyAtomicType::Ptr createInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const; virtual bool checkInstance(const XMLCh* value, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) const; virtual bool checkInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) const; ///Create instance of a datatype, using DatatypeFactoryTemplate to determine type virtual AnyAtomicType::Ptr createInstanceNoCheck(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const XMLCh* getPrimitiveTypeURI() const = 0; virtual const XMLCh* getPrimitiveTypeName() const = 0; protected: XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *fBaseValidator; const DocumentCache *fDocumentCache; }; #endif // DATATYPEFACTORY XQilla-2.3.4/include/xqilla/items/ATGYearOrDerived.hpp0000644001725400016040000000454013273140037017451 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARORDERIVED_HPP #define _ATGYEARORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGYearOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGYEARORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATAnySimpleType.hpp0000644001725400016040000000367113273140037017405 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYSIMPLETYPE_HPP #define _ATANYSIMPLETYPE_HPP #include #include #include class DynamicContext; /** * This class represents the atomic types (ie, the simple types * which are not list or union types) with type annotation * xs:anySimpleType */ class XQILLA_API ATAnySimpleType : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATANYSIMPLETYPE_HPP XQilla-2.3.4/include/xqilla/items/ATDateOrDerived.hpp0000644001725400016040000001122613273140037017316 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATEORDERIVED_HPP #define _ATDATEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATDateOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATDateOrDerived with a timezone added to it */ virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATDATEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATDoubleOrDerived.hpp0000644001725400016040000001151713273140037017656 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDOUBLEORDERIVED_HPP #define _ATDOUBLEORDERIVED_HPP #include #include #include class XQILLA_API ATDoubleOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /* Is this xs:double not a number */ virtual bool isNaN() const = 0; /* Is this xs:double infinite? */ virtual bool isInfinite() const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATDOUBLEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/DatatypeLookup.hpp0000644001725400016040000000724313273140037017361 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATATYPELOOKUP_HPP #define _DATATYPELOOKUP_HPP #include #include #include #include #include class DatatypeFactory; class DocumentCache; class XQILLA_API DatatypeLookup : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: DatatypeLookup(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); virtual ~DatatypeLookup(); ///returns the appropriate Datatype object const DatatypeFactory* lookupDatatype(AnyAtomicType::AtomicObjectType typeIndex) const; ///returns the appropriate Datatype object const DatatypeFactory* lookupDatatype(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const; DatatypeFactory *getAnySimpleTypeFactory() const; DatatypeFactory *getAnyURIFactory() const; DatatypeFactory *getBase64BinaryFactory() const; DatatypeFactory *getBooleanFactory() const; DatatypeFactory *getDateFactory() const; DatatypeFactory *getDateTimeFactory() const; DatatypeFactory *getDayTimeDurationFactory() const; DatatypeFactory *getDecimalFactory() const; DatatypeFactory *getDoubleFactory() const; DatatypeFactory *getDurationFactory() const; DatatypeFactory *getFloatFactory() const; DatatypeFactory *getGDayFactory() const; DatatypeFactory *getGMonthFactory() const; DatatypeFactory *getGMonthDayFactory() const; DatatypeFactory *getGYearFactory() const; DatatypeFactory *getGYearMonthFactory() const; DatatypeFactory *getHexBinaryFactory() const; DatatypeFactory *getNotationFactory() const; DatatypeFactory *getQNameFactory() const; DatatypeFactory *getStringFactory() const; DatatypeFactory *getTimeFactory() const; DatatypeFactory *getYearMonthDurationFactory() const; DatatypeFactory *getUntypedAtomicFactory() const; private: DatatypeLookup & operator= (const DatatypeLookup& r); DatatypeLookup(const DatatypeLookup &other); // add a primitive datatype to the table void insertDatatype(DatatypeFactory *datatype); private: DatatypeFactory *anySimpleType_; DatatypeFactory *anyURI_; DatatypeFactory *base64Binary_; DatatypeFactory *boolean_; DatatypeFactory *date_; DatatypeFactory *dateTime_; DatatypeFactory *dayTimeDuration_; DatatypeFactory *decimal_; DatatypeFactory *double_; DatatypeFactory *duration_; DatatypeFactory *float_; DatatypeFactory *gDay_; DatatypeFactory *gMonth_; DatatypeFactory *gMonthDay_; DatatypeFactory *gYear_; DatatypeFactory *gYearMonth_; DatatypeFactory *hexBinary_; DatatypeFactory *notation_; DatatypeFactory *qname_; DatatypeFactory *string_; DatatypeFactory *time_; DatatypeFactory *yearMonthDuration_; DatatypeFactory *untypedAtomic_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< DatatypeFactory > fDatatypeTable; const DocumentCache *fDocumentCache; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* fMemMgr; }; #endif XQilla-2.3.4/include/xqilla/items/ATBase64BinaryOrDerived.hpp0000644001725400016040000000410513273140037020630 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBASE64BINARYORDERIVED_HPP #define _ATBASE64BINARYORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATBase64BinaryOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' base 64 binary representation * are equal (string comparison) false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0; protected: virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATBASE64BINARYORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATStringOrDerived.hpp0000644001725400016040000000544313273140037017713 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATSTRINGORDERIVED_HPP #define _ATSTRINGORDERIVED_HPP #include #include #include #include class Collation; class Result; class DynamicContext; class XQILLA_API ATStringOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns this string as a set of codepoints */ virtual Result asCodepoints(const DynamicContext* context) const = 0; /* returns the length of this string */ virtual unsigned int getLength() const = 0; /* returns the substring starting at startingLoc of given length */ virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const = 0; /* returns the substring that occurs after the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0; /* returns the substring that occurs before the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATSTRINGORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATTimeOrDerived.hpp0000644001725400016040000001024513273140037017337 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTIMEORDERIVED_HPP #define _ATTIMEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATTimeOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same time, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATTimeOrDerived with a timezone added to it */ virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a time with the given dayTimeDuration added to it */ virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a time with the given dayTimeDuration subtracted from it */ virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATTIMEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATDurationOrDerived.hpp0000644001725400016040000001167513273140037020236 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDURATIONORDERIVED_HPP #define _ATDURATIONORDERIVED_HPP #include #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API ATDurationOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if this duration is an instance of a xdt:dayTimeDuration */ virtual bool isDayTimeDuration() const = 0; /* returns true if this duration is an instance of a xdt:yearMonthDuration */ virtual bool isYearMonthDuration() const = 0; /* returns true if the two objects have the same duration * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0; /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const = 0; /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0; /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0; /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0; /** Returns the year portion of this duration */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const = 0; /** Returns the month portion of this duration */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const = 0; /** Returns the days portion of this duration */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const = 0; /** Returns the hours portion of this duration */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const = 0; /** Returns the minutes portion of this duration */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const = 0; /** Returns the seconds portion of this duration */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const = 0; /* return this duration in forms of seconds */ virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const = 0; /* return this duration in forms of months */ virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const = 0; /** Returns true if this Duration is negative, false otherwise */ virtual bool isNegative() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_DAYTIMEDURATION[]; static const XMLCh pattern_DT_DAYTIMEDURATION[]; static const XMLCh fgDT_YEARMONTHDURATION[]; static const XMLCh pattern_DT_YEARMONTHDURATION[]; }; #endif // _ATDURATIONORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATGYearMonthOrDerived.hpp0000644001725400016040000000460313273140037020457 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARMONTHORDERIVED_HPP #define _ATGYEARMONTHORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGYearMonthOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGYEARMONTHORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/AnyAtomicType.hpp0000644001725400016040000001427413273140037017144 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANYATOMICTYPE_HPP #define _ANYATOMICTYPE_HPP #include #include #include class DynamicContext; class StaticContext; class XQILLA_API AnyAtomicType: public Item { public: enum AtomicObjectType { ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3, DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7, DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11, G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15, HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19, TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION= 22, NumAtomicObjectTypes= 23 }; typedef RefCountPointer Ptr; /* isAtomicValue from Item */ virtual bool isAtomicValue() const; /* isNode from Item */ virtual bool isNode() const; virtual bool isFunction() const; /* is this type numeric? Return false by default */ virtual bool isNumericValue() const; /* is this type date or time based? Return false by default */ virtual bool isDateOrTimeTypeValue() const; /* Get the namespace uri of the primitive type (basic type) of this type */ virtual const XMLCh* getPrimitiveTypeURI() const; /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; /* If possible, cast this type to the target type -- no casting table lookup made */ AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const DynamicContext* context) const; /* If possible, cast this type to the target type -- no casting table lookup made */ AnyAtomicType::Ptr castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* If possible, cast this type to the target type -- not virtual, this is the single entry point for casting */ AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* Test if this type can be cast to the target type */ virtual bool castable(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal (whatever that means * in the context of the datatype), false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /* Returns true if this typeName and uri match the given typeName and uri */ virtual bool isOfType(const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* Returns true if this typeName and uri match the given typeName and uri, * or if any of this type's parents match the given typeName and uri */ virtual bool isInstanceOfType(const XMLCh* targetURI, const XMLCh* targetType, const StaticContext* context) const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; /** * Returns true if * (a) both the input type and the target type are built-in schema types and * cast is supported for the combination. * (b) the input type is a derived atomic type and the * target type is a supertype of the input type * (c) the target type is a derived atomic type and the * input type is xs:string, xs:anySimpleType, or a supertype of the * target type. * (d) If a primitive type P1 can be cast into a primitive type P2, then any * subtype of P1 can be cast into any subtype of P2 **/ bool castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const; virtual AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_ANYATOMICTYPE[]; protected: /* internal castAs method. This one is virtual and does the real work */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: //friend class CastTable; //template friend class DatatypeFactoryTemplate; // class that implements the Casting Table class CastTable { public: CastTable(); bool getCell(AtomicObjectType source, AtomicObjectType target) const; private: bool staticCastTable[NumAtomicObjectTypes][NumAtomicObjectTypes]; }; // reproduction of the XPath2 casting table: http://www.w3.org/TR/xquery-operators/#casting static const CastTable staticCastTable; }; #endif XQilla-2.3.4/include/xqilla/items/ATQNameOrDerived.hpp0000644001725400016040000000441313273140037017442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATQNAMEORDERIVED_HPP #define _ATQNAMEORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATQNameOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the URI */ virtual const XMLCh* getURI() const = 0; /* returns the prefix */ virtual const XMLCh* getPrefix() const = 0; /* returns the name */ virtual const XMLCh* getName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATQNAMEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATGMonthDayOrDerived.hpp0000644001725400016040000000457413273140037020303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHDAYORDERIVED_HPP #define _ATGMONTHDAYORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGMonthDayOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGMONTHDAYORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATUntypedAtomic.hpp0000644001725400016040000000351513273140037017424 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATUNTYPEDATOMIC_HPP #define _ATUNTYPEDATOMIC_HPP #include #include #include class DynamicContext; class XQILLA_API ATUntypedAtomic : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_UNTYPEDATOMIC[]; }; #endif // _ATUNTYPEDATOMIC_HPP XQilla-2.3.4/include/xqilla/items/Timezone.hpp0000644001725400016040000000406313273140037016203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TZONE_HPP #define _TZONE_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API Timezone : public ReferenceCounted { public : typedef RefCountPointer Ptr; /** * Constructor. Creates a Timezone representing the given number of seconds. */ Timezone(const MAPM &seconds); /** * Constructor. Creates a Timezone representing the given duration. */ Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context); /** Returns true if other is equal to this, * false otherwise */ bool equals(const Timezone::Ptr &other) const; ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const; /** * Returns a string representation of this Timezone. If positive, does * print leading '+' sign, and if UTC returns "Z". */ const XMLCh* asString(const DynamicContext* context) const; /** * Returns the whole timezone expressed in seconds */ const MAPM &asSeconds() const { return seconds_; } static MAPM convert(bool positive, int hour, int minute); static void validate(const MAPM &tz); private: MAPM seconds_; }; #endif // _TZONE_HPP XQilla-2.3.4/include/xqilla/items/ATDecimalOrDerived.hpp0000644001725400016040000001216713273140037020004 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDECIMALORDERIVED_HPP #define _ATDECIMALORDERIVED_HPP #include #include #include class DynamicContext; class MAPM; class XQILLA_API ATDecimalOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /* Is this floating point value not a number? */ virtual bool isNaN() const { return false; } /* Is this floating point value infinite? */ virtual bool isInfinite() const { return false; } /** Treat this decimal (must be integer) as a codepoint **/ virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATDECIMALORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATHexBinaryOrDerived.hpp0000644001725400016040000000402313273140037020327 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATHEXBINARYORDERIVED_HPP #define _ATHEXBINARYORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATHexBinaryOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATHEXBINARYORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATBooleanOrDerived.hpp0000644001725400016040000000543413273140037020024 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBOOLEANORDERIVED_HPP #define _ATBOOLEANORDERIVED_HPP #include #include #include class XPath2MemoryManager; struct XQILLA_API BoolResult { static const BoolResult True; static const BoolResult False; static const BoolResult Null; inline BoolResult(bool b) : value(b ? BOOL_TRUE : BOOL_FALSE) {} inline operator bool() const { return value == BOOL_TRUE; } inline bool operator==(BoolResult o) const { return value == o.value; } inline bool operator!=(BoolResult o) const { return value != o.value; } private: inline BoolResult() : value(BOOL_NULL) {} enum { BOOL_NULL, BOOL_FALSE, BOOL_TRUE } value; }; class XQILLA_API ATBooleanOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects have the same boolean value * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const = 0; /* returns true if boolean value evaluates to true * false otherwise */ virtual bool isTrue() const = 0; /* returns false if boolean value evaluates to true * true otherwise */ virtual bool isFalse() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif XQilla-2.3.4/include/xqilla/items/ATNotationOrDerived.hpp0000644001725400016040000000401613273140037020233 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATNOTATIONORDERIVED_HPP #define _ATNOTATIONORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATNotationOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATNOTATIONORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/ATAnyURIOrDerived.hpp0000644001725400016040000000345113273140037017551 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYURIORDERIVED_HPP #define _ATANYURIORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATAnyURIOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATANYURIORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/DateOrTimeType.hpp0000644001725400016040000000253513273140037017252 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATEORTIMETYPE_HPP #define _DATEORTIMETYPE_HPP #include #include #include class ATDecimalOrDerived; class ATDurationOrDerived; class XQILLA_API DateOrTimeType : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* is this type date or time based? Return true by default */ virtual bool isDateOrTimeTypeValue() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; }; #endif // _ATDATETIMEORDERIVED_HPP XQilla-2.3.4/include/xqilla/items/Item.hpp0000644001725400016040000000435013273140037015306 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ITEM_HPP #define _ITEM_HPP #include #include #include XERCES_CPP_NAMESPACE_BEGIN class XMLBuffer; XERCES_CPP_NAMESPACE_END // forward declare when we can class XPath2MemoryManager; class DynamicContext; class EventHandler; class XQILLA_API Item : public ReferenceCounted { public: typedef RefCountPointer Ptr; /** The "XQilla" item interface */ static const XMLCh gXQilla[]; virtual bool isNode() const = 0; virtual bool isAtomicValue() const = 0; virtual bool isFunction() const = 0; virtual const XMLCh* asString(const DynamicContext* context) const = 0; virtual const XMLCh* getTypeURI() const = 0; virtual const XMLCh* getTypeName() const = 0; /** Generate events for this Item to the given EventHandler */ virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const = 0; /** Method for returning arbitrary interfaces from the implementations */ virtual void *getInterface(const XMLCh *name) const = 0; /** Debug method to output the type of the item in SequenceType notation */ virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const = 0; protected: Item() {} private: // copy constructor Item (const Item & other); // assignment operation Item & operator=(const Item & item) ; }; #endif XQilla-2.3.4/include/xqilla/items/Numeric.hpp0000644001725400016040000001614313273140037016015 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __NUMERIC_HPP #define __NUMERIC_HPP #include #include #include class DynamicContext; class StaticContext; class MAPM; class XQILLA_API Numeric : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* is this type numeric? Return true */ virtual bool isNumericValue() const { return true; }; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /* returns true if the two Numeric values are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns true if this is less than other, false otherwise */ virtual bool lessThan(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns true if this is greater than other, false otherwise */ virtual bool greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const Numeric::Ptr &other, const DynamicContext *context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the squart root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sin of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cos root of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /** Returns a Numeric object which is this raised to the power of other */ virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; /* Is this floating point value not a number? */ virtual bool isNaN() const = 0; /* Is this floating point value infinite? */ virtual bool isInfinite() const = 0; /* Is this floating point value infinite? */ virtual bool isInteger() const; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual double asDouble() const; virtual int asInt() const; enum State { NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3, NaN = 4 }; virtual State getState() const = 0; static const XMLCh NaN_string[]; static const XMLCh NAN_string[]; static const XMLCh INF_string[]; static const XMLCh NegINF_string[]; static const XMLCh NegZero_string[]; static const XMLCh PosZero_string[]; static void checkFloatLimits(Numeric::State &state, MAPM &value); static void checkDoubleLimits(Numeric::State &state, MAPM &value); static const XMLCh *asDecimalString(const MAPM &value, int significantDigits, const StaticContext* context); static const XMLCh *asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext* context); protected: virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; const XMLCh *asDecimalString(int significantDigits, const StaticContext* context) const; const XMLCh *asDoubleString(int significantDigits, const StaticContext* context) const; }; #endif // __NUMERIC_HPP XQilla-2.3.4/include/xqilla/items/Node.hpp0000644001725400016040000001243113273140037015274 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLANODE_HPP #define _XQILLANODE_HPP #include #include #include class DynamicContext; class XPath2MemoryManager; class Sequence; class Result; class NodeTest; class XQILLA_API Node : public Item { public: typedef RefCountPointer Ptr; /** Returns true, since this Item is a Node */ virtual bool isNode() const; /** Returns false, since this Item is a Node */ virtual bool isAtomicValue() const; virtual bool isFunction() const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; /** Serialize this node */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /** check if the underlying type of this node is instance of a certain type */ virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const = 0; /** Accessor: returns the base-uri of this node as a * xs:anyURI, if one exists */ virtual Sequence dmBaseURI(const DynamicContext* context) const = 0; /** Accessor: returns the kind of node as a string */ virtual const XMLCh* dmNodeKind() const = 0; /** Accessor: returns the name of this node */ virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const = 0; /** Accessor: returns the string value of this node */ virtual const XMLCh* dmStringValue(const DynamicContext* context) const = 0; /** Accessor: returns the typed value of this node, which is a sequence of zero or * more atomic values derived from the string-value of the node and its type in such * a way as to be consistent with validation */ virtual Sequence dmTypedValue(DynamicContext* context) const = 0; /** Accessor: returns the absolute URI of the resource from which the document node * was constructed, if the absolute URI is available*/ virtual Sequence dmDocumentURI(const DynamicContext* context) const = 0; /** Accessor: returns the name of the type of a node */ virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const = 0; /** Accessor: returns the setting of the nilled property of an element node */ virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const = 0; /** Returns true if 'this' is before 'other' in document order, * false otherwise */ virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if 'other' is equal (identity equal) to 'this'*/ virtual bool equals(const Node::Ptr &other) const = 0; /** Specifies a sorting order for uniqueness removal. This may or may not return the same as lessThan. */ virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const = 0; /** Returns the root of this node */ virtual Node::Ptr root(const DynamicContext* context) const = 0; /** Returns the parent of this node */ virtual Node::Ptr dmParent(const DynamicContext* context) const = 0; /** Returns the attributes of this node */ virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const = 0; /** Returns the namespace nodes of this node */ virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const = 0; /** Returns the children of this node */ virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const = 0; /** * Returns a Result containing the nodes in the axis given, relative to this node. * Forward axis results should be in document order. * Reverse axis results should be in reverse document order. */ virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const = 0; /** Returns if the node is an id node or not */ virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const = 0; /** Returns if the node is an idref node or not */ virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const = 0; /* Get the namespace URI for the DOM type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of the DOM type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; static const XMLCh document_string[]; static const XMLCh element_string[]; static const XMLCh attribute_string[]; static const XMLCh text_string[]; static const XMLCh processing_instruction_string[]; static const XMLCh comment_string[]; static const XMLCh namespace_string[]; }; #endif XQilla-2.3.4/include/xqilla/items/ATGMonthOrDerived.hpp0000644001725400016040000000454713273140037017645 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHORDERIVED_HPP #define _ATGMONTHORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGMonthOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGMONTHORDERIVED_HPP XQilla-2.3.4/include/xqilla/optimizer/0000755001725400016040000000000013273141210014650 500000000000000XQilla-2.3.4/include/xqilla/optimizer/ASTToXML.hpp0000644001725400016040000001501013273140037016617 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTTOXML_HPP #define _ASTTOXML_HPP #include #include #include #include class XQILLA_API ASTToXML : public ASTVisitor { public: ASTToXML(); std::string print(const XQQuery *query, const DynamicContext *context); std::string print(const ASTNode *item, const DynamicContext *context); std::string print(const TupleNode *item, const DynamicContext *context); std::string print(const XQUserFunction *item, const DynamicContext *context); void run(const XQQuery *query, EventHandler *events, const DynamicContext *context); void run(const ASTNode *item, EventHandler *events, const DynamicContext *context); void run(const TupleNode *item, EventHandler *events, const DynamicContext *context); void run(const XQUserFunction *item, EventHandler *events, const DynamicContext *context); protected: virtual void resetInternal() {} virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQGlobalVariable *optimizeGlobalVar(XQGlobalVariable *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimizeFunction(XQFunction *item); virtual ASTNode *optimizeOperator(XQOperator *item); virtual ASTNode *optimizeLiteral(XQLiteral *item); virtual ASTNode *optimizeQNameLiteral(XQQNameLiteral *item); virtual ASTNode *optimizeNumericLiteral(XQNumericLiteral *item); virtual ASTNode *optimizeStep(XQStep *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizePromoteUntyped(XQPromoteUntyped *item); virtual ASTNode *optimizeVariable(XQVariable *item); virtual ASTNode *optimizeTreatAs(XQTreatAs *item); virtual ASTNode *optimizePromoteNumeric(XQPromoteNumeric *item); virtual ASTNode *optimizePromoteAnyURI(XQPromoteAnyURI *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeCastableAs(XQCastableAs *item); virtual ASTNode *optimizeCastAs(XQCastAs *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizePartialApply(XQPartialApply *item); virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item); virtual ASTNode *optimizeFunctionConversion(XQFunctionConversion *item); virtual ASTNode *optimizeValidate(XQValidate *item); virtual ASTNode *optimizeFunctionCall(XQFunctionCall *item); virtual ASTNode *optimizeDOMConstructor(XQDOMConstructor *item); virtual ASTNode *optimizeMap(XQMap *item); virtual ASTNode *optimizeDirectName(XQDirectName *item); virtual ASTNode *optimizeUTransform(UTransform *item); virtual ASTNode *optimizeCopyOf(XQCopyOf *item); virtual ASTNode *optimizeASTDebugHook(ASTDebugHook *item); virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item); virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual TupleNode *optimizeForTuple(ForTuple *item); virtual TupleNode *optimizeLetTuple(LetTuple *item); virtual TupleNode *optimizeCountTuple(CountTuple *item); virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); virtual TupleNode *optimizeTupleDebugHook(TupleDebugHook *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); virtual FTSelection *optimizeFTWords(FTWords *selection); virtual FTSelection *optimizeFTWord(FTWord *selection); virtual FTSelection *optimizeFTDistance(FTDistance *selection); virtual FTSelection *optimizeFTDistanceLiteral(FTDistanceLiteral *selection); virtual FTSelection *optimizeFTWindow(FTWindow *selection); virtual FTSelection *optimizeFTWindowLiteral(FTWindowLiteral *selection); virtual FTSelection *optimizeFTScope(FTScope *selection); virtual FTSelection *optimizeFTContent(FTContent *selection); void optimizeSequenceType(const SequenceType *type); void optimizeFunctionSignature(const FunctionSignature *signature); void optimizeCase(const XQTypeswitch::Case *cse); void optimizeLocation(const LocationInfo *location); void optimizeTemplateArgument(XQTemplateArgument *item); void optimizeNodeTest(const NodeTest *step); virtual void getElementName(ASTNode *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); virtual void getElementName(TupleNode *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); virtual void getElementName(FTSelection *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static const XMLCh *getComparisonOperationName(GeneralComp::ComparisonOperation co); static const XMLCh *getAxisName(XQStep::Axis axis); static const XMLCh *getFTRangeTypeName(FTRange::Type type); static const XMLCh *getFTUnitName(FTOption::FTUnit unit); void indent(); void newline(); void qname(const XMLCh *qname, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); EventHandler *events_; const DynamicContext *context_; unsigned int indent_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer indentBuffer_; bool hasChildren_; }; class PrintASTOptimizer : public Optimizer { public: PrintASTOptimizer(std::string label, const DynamicContext *context, Optimizer *parent = 0) : Optimizer(parent), label_(label), context_(context) {} protected: virtual void optimize(XQQuery *query) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(query, context_) << std::endl; } virtual ASTNode *optimize(ASTNode *item) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(item, context_) << std::endl; return item; } virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(item, context_) << std::endl; return item; } private: std::string label_; const DynamicContext *context_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/QueryPathTreeGenerator.hpp0000644001725400016040000000737513273140037021734 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHTREEGENERATOR_HPP #define _QUERYPATHTREEGENERATOR_HPP #include #include #include #include #include class NodeTest; typedef std::map QPNMap; /** * Generates QueryPathNode trees of the paths * in the documents that will be navigated. */ class XQILLA_API QueryPathTreeGenerator : public ASTVisitor { public: QueryPathTreeGenerator(DynamicContext *context, Optimizer *parent = 0); virtual ~QueryPathTreeGenerator() { varStore_.clear(); } class XQILLA_API PathResult { public: void join(const QueryPathNode::MVector &o); void join(const PathResult &o); void join(QueryPathNode *o); void markSubtreeValue() const; void markSubtreeResult() const; void markRoot() const; QueryPathNode::Vector returnPaths; }; protected: virtual QueryPathNode *createQueryPathNode(const NodeTest *nodeTest, QueryPathNode::Type type); virtual NodeTest *createNodeTest(const XMLCh *nodeType, const XMLCh *uri = 0, const XMLCh *name = 0); virtual void resetInternal(); virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); ALL_ASTVISITOR_METHODS(); void push(PathResult result); PathResult pop(); PathResult generate(ASTNode *item); void generateBuiltInStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateParentStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateAncestorStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateAncestorOrSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateFollowingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generatePrecedingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateSiblingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void createAnyNodeResult(PathResult &result); const PathResult &getCurrentContext() const; void setCurrentContext(const PathResult &value); void setVariable(const XMLCh *uri, const XMLCh *name, const PathResult &value); PathResult copyNodes(const PathResult &r); XPath2MemoryManager *mm_; DynamicContext *context_; std::set userFunctionStack_; typedef VarHashEntry VarStoreRef; typedef VariableStoreTemplate VarStore; XPath2MemoryManagerImpl varStoreMemMgr_; VarStore varStore_; ///< Memory owned by varStoreMemMgr_ std::vector results_; QPNMap projectionMap_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/ASTCopier.hpp0000644001725400016040000000215613273140037017104 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTCOPIER_HPP #define _ASTCOPIER_HPP #include class XQILLA_API ASTCopier : public ASTVisitor { public: ASTCopier(); ASTNode *copy(const ASTNode *item, DynamicContext *context); TupleNode *copy(const TupleNode *item, DynamicContext *context); protected: ALL_ASTVISITOR_METHODS(); DynamicContext *context_; XPath2MemoryManager *mm_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/ASTVisitor.hpp0000644001725400016040000002233713273140037017325 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTVISITOR_HPP #define _ASTVISITOR_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ALL_ASTVISITOR_METHODS() \ virtual XQGlobalVariable *optimizeGlobalVar(XQGlobalVariable *item); \ virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); \ \ virtual ASTNode *optimizeUnknown(ASTNode *item); \ virtual ASTNode *optimizeFunction(XQFunction *item); \ virtual ASTNode *optimizeLiteral(XQLiteral *item); \ virtual ASTNode *optimizeQNameLiteral(XQQNameLiteral *item); \ virtual ASTNode *optimizeNumericLiteral(XQNumericLiteral *item); \ virtual ASTNode *optimizeNav(XQNav *item); \ virtual ASTNode *optimizeSequence(XQSequence *item); \ virtual ASTNode *optimizeStep(XQStep *item); \ virtual ASTNode *optimizeVariable(XQVariable *item); \ virtual ASTNode *optimizeIf(XQIf *item); \ virtual ASTNode *optimizeCastableAs(XQCastableAs *item); \ virtual ASTNode *optimizeCastAs(XQCastAs *item); \ virtual ASTNode *optimizeTreatAs(XQTreatAs *item); \ virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); \ virtual ASTNode *optimizeOperator(XQOperator *item); \ virtual ASTNode *optimizeContextItem(XQContextItem *item); \ virtual ASTNode *optimizeReturn(XQReturn *item); \ virtual ASTNode *optimizeQuantified(XQQuantified *item); \ virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); \ virtual ASTNode *optimizeValidate(XQValidate *item); \ virtual ASTNode *optimizeFunctionCall(XQFunctionCall *item); \ virtual ASTNode *optimizeDOMConstructor(XQDOMConstructor *item); \ virtual ASTNode *optimizeSimpleContent(XQSimpleContent *item); \ virtual ASTNode *optimizeOrderingChange(XQOrderingChange *item); \ virtual ASTNode *optimizeAtomize(XQAtomize *item); \ virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); \ virtual ASTNode *optimizePromoteUntyped(XQPromoteUntyped *item); \ virtual ASTNode *optimizePromoteNumeric(XQPromoteNumeric *item); \ virtual ASTNode *optimizePromoteAnyURI(XQPromoteAnyURI *item); \ virtual ASTNode *optimizeDocumentOrder(XQDocumentOrder *item); \ virtual ASTNode *optimizePredicate(XQPredicate *item); \ virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); \ virtual ASTNode *optimizeNameExpression(XQNameExpression *item); \ virtual ASTNode *optimizeContentSequence(XQContentSequence *item); \ virtual ASTNode *optimizeDirectName(XQDirectName *item); \ virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); \ virtual ASTNode *optimizeFunctionConversion(XQFunctionConversion *item); \ virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item); \ virtual ASTNode *optimizeCopyOf(XQCopyOf *item); \ virtual ASTNode *optimizeCopy(XQCopy *item); \ virtual ASTNode *optimizeASTDebugHook(ASTDebugHook *item); \ virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item); \ virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item); \ virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); \ virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item); \ virtual ASTNode *optimizeFunctionDeref(XQFunctionDeref *item); \ virtual ASTNode *optimizePartialApply(XQPartialApply *item); \ virtual ASTNode *optimizeMap(XQMap *item); \ \ virtual ASTNode *optimizeUDelete(UDelete *item); \ virtual ASTNode *optimizeURename(URename *item); \ virtual ASTNode *optimizeUReplace(UReplace *item); \ virtual ASTNode *optimizeUReplaceValueOf(UReplaceValueOf *item); \ virtual ASTNode *optimizeUInsertAsFirst(UInsertAsFirst *item); \ virtual ASTNode *optimizeUInsertAsLast(UInsertAsLast *item); \ virtual ASTNode *optimizeUInsertInto(UInsertInto *item); \ virtual ASTNode *optimizeUInsertAfter(UInsertAfter *item); \ virtual ASTNode *optimizeUInsertBefore(UInsertBefore *item); \ virtual ASTNode *optimizeUTransform(UTransform *item); \ virtual ASTNode *optimizeUApplyUpdates(UApplyUpdates *item); \ \ virtual ASTNode *optimizeFTContains(FTContains *item); \ virtual FTSelection *optimizeUnknownFTSelection(FTSelection *item); \ virtual FTSelection *optimizeFTWords(FTWords *selection); \ virtual FTSelection *optimizeFTWord(FTWord *selection); \ virtual FTSelection *optimizeFTOr(FTOr *selection); \ virtual FTSelection *optimizeFTAnd(FTAnd *selection); \ virtual FTSelection *optimizeFTMildnot(FTMildnot *selection); \ virtual FTSelection *optimizeFTUnaryNot(FTUnaryNot *selection); \ virtual FTSelection *optimizeFTOrder(FTOrder *selection); \ virtual FTSelection *optimizeFTDistance(FTDistance *selection); \ virtual FTSelection *optimizeFTDistanceLiteral(FTDistanceLiteral *selection); \ virtual FTSelection *optimizeFTScope(FTScope *selection); \ virtual FTSelection *optimizeFTContent(FTContent *selection); \ virtual FTSelection *optimizeFTWindow(FTWindow *selection); \ virtual FTSelection *optimizeFTWindowLiteral(FTWindowLiteral *selection); \ \ virtual TupleNode *optimizeUnknownTupleNode(TupleNode *item); \ virtual TupleNode *optimizeContextTuple(ContextTuple *item); \ virtual TupleNode *optimizeForTuple(ForTuple *item); \ virtual TupleNode *optimizeLetTuple(LetTuple *item); \ virtual TupleNode *optimizeWhereTuple(WhereTuple *item); \ virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); \ virtual TupleNode *optimizeCountTuple(CountTuple *item); \ virtual TupleNode *optimizeTupleDebugHook(TupleDebugHook *item); class XQILLA_API ASTVisitor : public Optimizer { public: ASTVisitor(Optimizer *parent = 0) : Optimizer(parent) {} protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); ALL_ASTVISITOR_METHODS() }; #endif XQilla-2.3.4/include/xqilla/optimizer/Optimizer.hpp0000644001725400016040000000346413273140037017300 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _OPTIMIZER_HPP #define _OPTIMIZER_HPP #include class ASTNode; class DynamicContext; class XQQuery; class XQUserFunction; class XQILLA_API Optimizer { public: Optimizer(Optimizer *parent = 0); virtual ~Optimizer(); void startOptimize(XQQuery *query); ASTNode *startOptimize(ASTNode *item); XQUserFunction *startOptimize(XQUserFunction *item); void reset(); protected: virtual void optimize(XQQuery *query) = 0; virtual ASTNode *optimize(ASTNode *item) = 0; virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) = 0; virtual void resetInternal(); private: Optimizer(const Optimizer &o); Optimizer &operator=(const Optimizer &o); Optimizer *parent_; }; class XQILLA_API StaticResolver : public Optimizer { public: StaticResolver(DynamicContext *xpc, Optimizer *parent = 0) : Optimizer(parent), xpc_(xpc) {} protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); private: DynamicContext *xpc_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/StaticTyper.hpp0000644001725400016040000000653513273140037017573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICTYPER_HPP #define _STATICTYPER_HPP #include class XQILLA_API StaticTyper : public ASTVisitor { public: struct PrologItem { PrologItem(XQGlobalVariable *g, PrologItem *p) : global(g), function(0), prev(p) {} PrologItem(XQUserFunction *f, PrologItem *p) : global(0), function(f), prev(p) {} XQGlobalVariable *global; XQUserFunction *function; PrologItem *prev; }; StaticTyper() : ASTVisitor(), context_(0), globalsUsed_(0), globalsOrder_(0), trail_(0), tupleSetup_(false) {} StaticTyper(StaticContext *context, Optimizer *parent = 0) : ASTVisitor(parent), context_(context), globalsUsed_(0), globalsOrder_(0), trail_(0), tupleSetup_(false) {} GlobalVariables *&getGlobalsUsed() { return globalsUsed_; } GlobalVariables *&getGlobalsOrder() { return globalsOrder_; } PrologItem *&getTrail() { return trail_; } ASTNode *run(ASTNode *item, StaticContext *context); protected: virtual void optimize(XQQuery *query); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimize(ASTNode *item); virtual ASTNode *optimizePredicate(XQPredicate *item); virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item); virtual ASTNode *optimizeNav(XQNav *item); virtual ASTNode *optimizeQuantified(XQQuantified *item); virtual ASTNode *optimizeMap(XQMap *item); virtual ASTNode *optimizeReturn(XQReturn *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); virtual ASTNode *optimizeUTransform(UTransform *item); virtual ASTNode *optimizeVariable(XQVariable *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeFTContains(FTContains *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual TupleNode *optimizeForTuple(ForTuple *item); virtual TupleNode *optimizeLetTuple(LetTuple *item); virtual TupleNode *optimizeWhereTuple(WhereTuple *item); virtual TupleNode *optimizeCountTuple(CountTuple *item); virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); void optimizeCase(const StaticAnalysis &var_src, XQTypeswitch::Case *item); StaticContext *context_; GlobalVariables *globalsUsed_; GlobalVariables *globalsOrder_; PrologItem *trail_; bool tupleSetup_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/ASTReleaser.hpp0000644001725400016040000000231213273140037017417 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTRELEASER_HPP #define _ASTRELEASER_HPP #include class XQILLA_API ASTReleaser : public ASTVisitor { public: ASTReleaser(); void release(ASTNode *item); void release(TupleNode *item); void release(XQUserFunction *item); protected: virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); ALL_ASTVISITOR_METHODS() }; #endif XQilla-2.3.4/include/xqilla/optimizer/PartialEvaluator.hpp0000644001725400016040000000512313273140037020567 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PARTIALEVALUATOR_HPP #define _PARTIALEVALUATOR_HPP #include class Plus; class Minus; class Multiply; class Divide; class And; class Or; class XQILLA_API PartialEvaluator : public ASTVisitor { public: PartialEvaluator(DynamicContext *context, Optimizer *parent = 0); static ASTNode *inlineFunction(const XQUserFunctionInstance *item, DynamicContext *context); protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeFunctionDeref(XQFunctionDeref *item); virtual ASTNode *optimizePartialApply(XQPartialApply *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeReturn(XQReturn *item); virtual ASTNode *optimizeIf(XQIf *item); virtual ASTNode *optimizeQuantified(XQQuantified *item); virtual ASTNode *optimizePredicate(XQPredicate *item); virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); virtual ASTNode *optimizeOperator(XQOperator *item); virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizeFunction(XQFunction *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizeTreatAs(XQTreatAs *item); ASTNode *optimizePlus(Plus *item); ASTNode *optimizeMinus(Minus *item); ASTNode *optimizeMultiply(Multiply *item); ASTNode *optimizeDivide(Divide *item); ASTNode *optimizeAnd(And *item); ASTNode *optimizeOr(Or *item); bool checkSizeLimit(const ASTNode *oldAST, const ASTNode *newAST); DynamicContext *context_; size_t functionInlineLimit_; size_t sizeLimit_; bool redoTyping_; }; #endif XQilla-2.3.4/include/xqilla/optimizer/QueryPathNode.hpp0000644001725400016040000000543413273140037020045 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHNODE_HPP #define _QUERYPATHNODE_HPP #include #include #include #include class NodeTest; class XQILLA_API QueryPathNode : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef enum { ATTRIBUTE, CHILD, DESCENDANT, DESCENDANT_ATTR, ROOT } Type; typedef std::vector Vector; typedef std::vector > MVector; QueryPathNode(const NodeTest *nodeTest, Type type, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~QueryPathNode(); Type getType() const { return type_; } void setType(Type t) { type_ = t; } bool isWildcardURI() const; bool isWildcardName() const; bool isWildcardNodeType() const; virtual bool isWildcard() const; const XMLCh *getURI() const; const XMLCh *getName() const; const NodeTest *getNodeTest() const { return nodeTest_; } QueryPathNode *getParent() const { return parent_; } QueryPathNode *getNextSibling() const { return nextSibling_; } QueryPathNode *getPreviousSibling() const { return prevSibling_; } QueryPathNode *getFirstChild() const { return firstChild_; } QueryPathNode *getLastChild() const { return lastChild_; } QueryPathNode *getRoot() const; QueryPathNode *appendChild(QueryPathNode *childToAdopt); void removeChild(QueryPathNode *child, bool deleteChild = true); void stealChildren(QueryPathNode *victim); virtual void markSubtreeValue(); virtual void markSubtreeResult(); virtual std::string toString(int level = 0) const; virtual bool equals(const QueryPathNode *o) const; virtual bool isSubsetOf(const QueryPathNode *node) const; protected: QueryPathNode(const QueryPathNode &); QueryPathNode &operator=(const QueryPathNode &); Type type_; const NodeTest *nodeTest_; QueryPathNode *parent_; QueryPathNode *nextSibling_; QueryPathNode *prevSibling_; QueryPathNode *firstChild_; QueryPathNode *lastChild_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr_; }; #endif XQilla-2.3.4/include/xqilla/xerces/0000755001725400016040000000000013273141210014117 500000000000000XQilla-2.3.4/include/xqilla/xerces/XercesConfiguration.hpp0000644001725400016040000000405013273140037020536 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XERCESCONFIGURATION_H #define XERCESCONFIGURATION_H #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesConfiguration : public XQillaConfiguration { public: /** * The "Xerces" DOMNode node interface. * Use this as the parameter when you call Item::getInterface() * to have a xerces DOMNode returned, if the Node is of the * correct type. If it is not of the correct type, the method * will return 0. */ static const XMLCh gXerces[]; virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context); virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual ASTToXML *createASTToXML(); virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/simple-api/0000755001725400016040000000000013273141210014666 500000000000000XQilla-2.3.4/include/xqilla/simple-api/XQilla.hpp0000644001725400016040000002046613273140037016527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_07637_HPP #define _XQILLA_07637_HPP #include #include #include #include class DynamicContext; class XPath2MemoryManager; class XQillaConfiguration; class Optimizer; class DelayedFuncFactory; class XQQuery; XERCES_CPP_NAMESPACE_BEGIN class InputSource; class XMLBuffer; XERCES_CPP_NAMESPACE_END namespace CompileDelayedModule { void compile(const XMLCh *queryFile); } /** * Provides factory methods for creating XQQuery and DynamicContext objects. * * This class calls XQillaPlatformUtils::initialize() when it is constructed, and * XQillaPlatformUtils::terminate() when it destructs, so there is no need to seperately * initialize or terminate either Xerces or XQilla. */ class XQILLA_API XQilla : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together. enum Flags { NO_STATIC_RESOLUTION = 0x1, ///< Don't perform static resolution or any optimization NO_ADOPT_CONTEXT = 0x2, ///< Don't adopt the context and delete it when the XQQuery is deleted DEBUG_QUERY = 0x4, ///< Build debugging hooks into the query to enable the use of DebugListener NO_OPTIMIZATION = 0x8, ///< Don't perform optimization NO_DEFAULT_MODULES = 0x10 ///< Don't automatically import the default modules }; /// Enumeration used to select a language to parse enum Language { XQUERY = 0x00, XPATH2 = 0x01, FULLTEXT = 0x02, UPDATE = 0x04, EXTENSIONS = 0x08, XSLT2 = 0x10, VERSION3 = 0x20, XQUERY_FULLTEXT = (XQUERY | FULLTEXT), XQUERY_UPDATE = (XQUERY | UPDATE), XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE), XPATH2_FULLTEXT = (XPATH2 | FULLTEXT), XSLT2_FULLTEXT = (XSLT2 | FULLTEXT), XQUERY3 = (XQUERY | VERSION3), XQUERY3_FULLTEXT = (XQUERY | VERSION3 | FULLTEXT), XQUERY3_UPDATE = (XQUERY | VERSION3 | UPDATE), XQUERY3_FULLTEXT_UPDATE = (XQUERY | VERSION3 | FULLTEXT | UPDATE), XPATH3 = (XPATH2 | VERSION3), XPATH3_FULLTEXT = (XPATH2 | VERSION3 | FULLTEXT), XSLT3 = (XSLT2 | VERSION3), XSLT3_FULLTEXT = (XSLT2 | VERSION3 | FULLTEXT), }; /** * Constructs the object. In the process, XQillaPlatformUtils::initialize() is * called to initialize XQilla and Xerces. * * @param memMgr If provided, this is the MemoryManager used to initialize Xerces. */ XQilla(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = 0); /** * Destructs the object. In the process, XQillaPlatformUtils::terminate() is * called to terminate XQilla and Xerces. */ ~XQilla(); /** @name Parsing Methods */ // @{ /** * Parse the expression contained in the given query string. * * @param query A string containing the expression to parse. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param queryFile The name of the file that query originates in. This is passed * back to the user in an XQException if an error occurs. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parse(const XMLCh* query, DynamicContext* context = 0, const XMLCh* queryFile = NULL, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); /** * Parse the expression from the given InputSource. * * @param querySrc An InputSource which the expression will be parsed from. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parse(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc, DynamicContext* context = 0, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); /** * Parse the expression residing at the given URL. * * @param queryFile The URL of the expression to parse. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parseFromURI(const XMLCh* queryFile, DynamicContext* context = 0, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); //@} /** @name Factory Methods */ // @{ /** * Creates a context suitable for parsing an expression with. * @param memMgr The memory manager used to create the DynamicContext. * @return An implementation of DynamicContext */ static DynamicContext *createContext(Language language = XQUERY, XQillaConfiguration *conf = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); //@} private: static bool readQuery(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText); static bool readQuery(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText); static Optimizer *createOptimizer(DynamicContext *context, unsigned int flags); static void compileDelayedModule(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); friend void CompileDelayedModule::compile(const XMLCh *queryFile); friend class DelayedFuncFactory; }; #endif XQilla-2.3.4/include/xqilla/simple-api/XQQuery.hpp0000644001725400016040000003110313273140037016701 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQQUERY_HPP #define XQQUERY_HPP #include #include #include #include #include #include #include #include class DynamicContext; class XQUserFunction; class XQGlobalVariable; class XQQuery; class DelayedModule; class DelayedFuncFactory; class StaticTyper; typedef std::vector > GlobalVariables; typedef std::vector > ImportedModules; typedef std::vector > DelayedFunctions; typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf ModuleMap; class XQILLA_API ModuleCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: ModuleCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); void put(XQQuery *module); XQQuery *getByURI(const XMLCh *uri) const; XQQuery *getByNamespace(const XMLCh *ns) const; ModuleMap byURI_; ModuleMap byNamespace_; ImportedModules ordered_; }; /** * Encapsulates a query expression. XQQuery objects are thread safe, and can be * executed from multiple threads at the same time - provided a DynamicContext is * used per thread. * * Instances of this class can be created by using the parsing methods on the XQilla * object. * * This class is dependant on the DynamicContext that was used to create it. This * context must not be deleted before the XQQuery object. Normally this is acheived * by the XQQuery adopting the DynamicContext and deleting it when it is deleted. * However, this behaviour can be disabled by using the XQilla::NO_ADOPT_CONTEXT * flag when creating the XQQuery. */ class XQILLA_API XQQuery : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// Destructor. ~XQQuery(); /** @name Runtime Methods */ // @{ /** * Creates a DynamicContext based on the static context used to parse this query. * This DynamicContext will be suitable for using to call execute(). * * @param memMgr The memory manager used to create the DynamicContext. * * @return An implementation of DynamicContext */ DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; /** * Executes the query using the given DynamicContext, returning * a lazy iterator over the results. * * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(DynamicContext* context) const; /** * Executes the query or stylesheet using the given context item and DynamicContext, returning * a lazy iterator over the results. * * @param contextItem The context item to use to execute the query. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(const Item::Ptr &contextItem, DynamicContext *context) const; /** * Executes the stylesheet starting at the named template using the given DynamicContext, returning * a lazy iterator over the results. * * @param templateQName The name of the template to start executing. If the QName * includes a prefix, it is resolved using the in-scope namespaces for the stylesheet. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(const XMLCh *templateQName, DynamicContext *context) const; /** * Executes the query using the given DynamicContext, sending * the output of the query to the given EventHandler. * * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, DynamicContext* context) const; /** * Executes the query or stylesheet using the given context item and DynamicContext, sending * the output of the query to the given EventHandler. * * @param contextItem The context item to use to execute the query. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const; /** * Executes the stylesheet starting at the named template using the given DynamicContext, sending * the output of the query to the given EventHandler. * * @param templateQName The name of the template to start executing. If the QName * includes a prefix, it is resolved using the in-scope namespaces for the stylesheet. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const; /** * Perform static resolution on the query. This operation is not * thread safe, and should only be performed once. * * Static resolution resolves prefixes to namespace URIs, variable * names to variables, function names to functions, and performs * some basic query optimisation. * * Normally this is done as part of parsing the query expression. * However, if the XQilla::NO_STATIC_RESOLUTION flag was specified * when the query was parsed, this method will have to be called to * perform this step manually. * * @param context If specified, the StaticContext to use to statically * resolve this object. By default, the context used to parse the query * is used. This should not need to be changed under normal usage. * * @exception XQException If a static resolution time error occurs */ void staticResolution(); /** * Perform type calculation and related optimizations. This operation * is safe to call multiple times. * * Normally this step is done as part of static resolution. * * @param context If specified, the StaticContext to use to statically * resolve this object. By default, the context used to parse the query * is used. This should not need to be changed under normal usage. * * @exception XQException If a static resolution time error occurs */ void staticTyping(StaticTyper *styper = 0); bool staticTypingOnce(StaticTyper *styper = 0); //@} /** @name Query Information */ // @{ /// Returns the expression that was parsed to create this XQQuery object. const XMLCh* getQueryText() const { return m_szQueryText; } void setQueryText(const XMLCh *v); /// Returns the query plan as XML. This is designed for debug and informative purposes only. std::string getQueryPlan() const; //@} /** @name Getters and Setters */ // @{ /// Get the query body as an ASTNode ASTNode* getQueryBody() const; /// Set the query body to an ASTNode void setQueryBody(ASTNode* query); /// Adds an XQUserFunction to the query (also adds it as a template if necessary) void addFunction(XQUserFunction* fnDef); /// Returns a vector of all XQUserFunction objects from the query const UserFunctions &getFunctions() const { return m_userDefFns; } /// Adds a function defined in XQuery syntax. Parsing is delayed until the function /// is actually needed. void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate = false, int line = 1, int column = 1); void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate = false, int line = 1, int column = 1); /// Returns a vector of all XQUserFunction objects from the query const DelayedFunctions &getDelayedFunctions() const { return m_delayedFunctions; } /// Adds a XQGlobalVariable to the query void addVariable(XQGlobalVariable* varDef); /// Returns a vector of all XQGlobalVariable objects from the query const GlobalVariables &getVariables() const { return m_userDefVars; } /// Returns a vector of all XQGlobalVariable objects from the query const ImportedModules &getImportedModules() const { return m_importedModules; } ModuleCache *getModuleCache() const { return m_moduleCache; } bool isModuleCacheOwned() const { return m_moduleCacheOwned; } /// Returns the name of the file that this query was parsed from. const XMLCh* getFile() const { return m_szCurrentFile; } /// Sets the name of the file that this query was parsed from. void setFile(const XMLCh* file); bool getVersion3() const { return m_version3; } void setVersion3(bool v) { m_version3 = v; } const DynamicContext *getStaticContext() const { return m_context; } XQQuery *getNext() const { return m_next; } void setNext(XQQuery *n) { m_next = n; } //@} /** @name Module Methods */ // @{ /// Sets whether this query is a module or not void setIsLibraryModule(bool bIsModule=true); /// Returns whether this query is a module or not bool getIsLibraryModule() const; /// Sets the module target namespace for this query void setModuleTargetNamespace(const XMLCh* uri); /// Gets the module taget namespace for this query const XMLCh* getModuleTargetNamespace() const; /// Performs a module import from the given target namespace and locations void importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location); void importModule(XQQuery *module); XQQuery *findModuleForVariable(const XMLCh *uri, const XMLCh *name); XQQuery *findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs); //@} private: /// Private constructor - Can be accessed by an XQilla object, as it is a friend. XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); XQQuery(const XQQuery &); XQQuery &operator=(const XQQuery &); XQQuery *parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const; void executeProlog(DynamicContext *context) const; private: /// The memory manager used to create this object XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* m_memMgr; /// The context used to create this query DynamicContext *m_context; bool m_contextOwned; ASTNode* m_query; bool m_bIsLibraryModule; const XMLCh* m_szTargetNamespace; const XMLCh* m_szQueryText; const XMLCh* m_szCurrentFile; UserFunctions m_userDefFns; DelayedFunctions m_delayedFunctions; GlobalVariables m_userDefVars; ImportedModules m_importedModules; ModuleCache *m_moduleCache; bool m_moduleCacheOwned; bool m_version3; enum { BEFORE, DURING, AFTER } m_staticTyped; // The next module with the same target namespace XQQuery *m_next; friend class QueryResult; friend class XQilla; friend class DelayedModule; }; #endif XQilla-2.3.4/include/xqilla/simple-api/XQillaConfiguration.hpp0000644001725400016040000000377613273140037021264 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQILLACONFIGURATION_H #define XQILLACONFIGURATION_H #include #include #include #include class DocumentCache; class SequenceBuilder; class ItemFactory; class UpdateFactory; class URIResolver; class ASTToXML; class StaticContext; class DynamicContext; class XQILLA_API XQillaConfiguration : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~XQillaConfiguration() {} virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context) = 0; virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual ASTToXML *createASTToXML() = 0; virtual void populateStaticContext(StaticContext *context) {} virtual void populateDynamicContext(DynamicContext *context) {} virtual void testInterrupt() {} }; #endif XQilla-2.3.4/include/xqilla/debug/0000755001725400016040000000000013273141210013714 500000000000000XQilla-2.3.4/include/xqilla/debug/StackFrame.hpp0000644001725400016040000000415313273140037016376 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STACKFRAME_HPP #define _STACKFRAME_HPP #include #include #include #include class ASTNode; class TupleNode; class LocationInfo; class DynamicContext; class EventHandler; class Sequence; class VariableStore; XERCES_CPP_NAMESPACE_BEGIN class DOMXPathNSResolver; XERCES_CPP_NAMESPACE_END /** * A class that represents an item in a query call stack */ class XQILLA_API StackFrame { public: virtual ~StackFrame() {} const LocationInfo *getLocationInfo() const { return location_; } const StackFrame *getPreviousFrame() const { return prev_; } virtual Sequence query(const XMLCh *query) const; virtual void query(const XMLCh *query, EventHandler *events) const; virtual const ASTNode *getASTNode() const = 0; virtual const TupleNode *getTupleNode() const = 0; virtual std::string getQueryPlan() const = 0; protected: StackFrame(const LocationInfo *location, DynamicContext *context); const LocationInfo *location_; DynamicContext *context_; Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; const VariableStore *variables_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_; const XMLCh *defaultElementNS_; const StackFrame *prev_; private: StackFrame(const StackFrame &); StackFrame &operator=(const StackFrame&); }; #endif XQilla-2.3.4/include/xqilla/debug/ASTDebugHook.hpp0000644001725400016040000000331513273140037016574 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDEBUGAST_HPP #define XQDEBUGAST_HPP #include class XQILLA_API ASTDebugHook : public ASTNodeImpl { public: ASTDebugHook(ASTNode *astNode, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags) const; virtual Result iterateResult(const Result &contextItems, DynamicContext *context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; virtual bool isConstant() const; virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/debug/InteractiveDebugger.hpp0000644001725400016040000001333313273140037020300 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _INTERACTIVEDEBUGGER_HPP #define _INTERACTIVEDEBUGGER_HPP #include #include #include #include #include #include class XQQuery; class DynamicContext; class DebugCommand; class InteractiveDebugger; class XQILLA_API BaseInteractiveDebugger { public: struct XQILLA_API Run {}; struct XQILLA_API Continue {}; struct XQILLA_API Quit {}; static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context = 0); static void outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context = 0); static std::string regexFind(const char *regex, const std::string &str, int groupNo = 1); virtual ~BaseInteractiveDebugger(); unsigned int setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary); bool disableBreakPoint(unsigned int number); bool enableBreakPoint(unsigned int number); void listBreakPoints() const; void setStep(); void setNext(); bool queryStarted() const { return queryStarted_; } virtual void run() = 0; virtual bool changeFrame(unsigned int number) = 0; virtual unsigned int getStackSize() const = 0; virtual void stackTrace() const = 0; virtual bool outputCurrentFrame(unsigned int context = 0) const = 0; virtual void outputCurrentFrameQueryPlan() const = 0; virtual bool queryCurrentFrame(const char *queryString) const = 0; virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const = 0; virtual void setDoLazyEvaluation(bool lazy) = 0; virtual void setDoFocusOptimizationsn(bool opt) = 0; virtual void setDoProjection(bool opt) = 0; protected: BaseInteractiveDebugger(); DebugCommand *findCommand(std::string &command) const; void checkBreak(bool entering); void breakForError(const char *message); void interrupted(); void readCommand(); std::vector commands_; DebugCommand *prevcmd_; bool queryStarted_; struct BreakPoint { BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t) : file(f), line(l), column(c), temporary(t), disabled(false) {} std::string file; unsigned int line, column; bool temporary; bool disabled; }; std::vector breaks_; bool step_; unsigned int next_; }; class XQILLA_API DebugCommand { public: virtual ~DebugCommand() {}; virtual const char *getCommandName() const { return name_; } virtual const char *getCommandNameCompat() const { return compatName_; } virtual const char *getBriefHelp() const { return briefHelp_; } virtual const char *getMoreHelp() const { return moreHelp_; } static bool matches(const std::string &command, const std::string &toMatch); virtual bool matches(const std::string &command) const; virtual void execute(InputParser::Args &args, BaseInteractiveDebugger &env) = 0; protected: DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp) : name_(name), compatName_(compatName), briefHelp_(briefHelp), moreHelp_(moreHelp) {} const char *name_; const char *compatName_; const char *briefHelp_; const char *moreHelp_; }; class XQILLA_API InteractiveDebugger : private BaseInteractiveDebugger, private DebugListener { public: static void debugQuery(const XQQuery *query, DynamicContext *context); static void outputLocation(const LocationInfo *info, unsigned int context = 0); private: InteractiveDebugger(const XQQuery *query, DynamicContext *context); virtual void enter(const StackFrame *stack, const DynamicContext *context); virtual void exit(const StackFrame *stack, const DynamicContext *context); virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context); virtual bool doLazyEvaluation() const { return lazy_; } virtual bool doFocusOptimizations() const { return focusOptimzations_; } virtual void run(); virtual bool changeFrame(unsigned int number); virtual unsigned int getStackSize() const; virtual void stackTrace() const; virtual bool outputCurrentFrame(unsigned int context) const; virtual void outputCurrentFrameQueryPlan() const; virtual bool queryCurrentFrame(const char *queryString) const; virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const; virtual void setDoLazyEvaluation(bool lazy) { lazy_ = lazy; } virtual void setDoFocusOptimizationsn(bool opt) { focusOptimzations_ = opt; } virtual void setDoProjection(bool opt); unsigned int getCurrentFrameNumber() const; void output(const StackFrame *frame) const; void report(const StackFrame *frame) const; const StackFrame *stack_; const StackFrame *currentFrame_; const XQQuery *query_; DynamicContext *context_; bool lazy_; bool focusOptimzations_; }; #endif XQilla-2.3.4/include/xqilla/debug/DebugHookDecorator.hpp0000644001725400016040000000215213273140037020065 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEBUGHOOKDECORATOR_HPP #define _DEBUGHOOKDECORATOR_HPP #include class XQILLA_API DebugHookDecorator : public ASTVisitor { public: DebugHookDecorator(DynamicContext *context, Optimizer *parent = 0); protected: virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); XPath2MemoryManager *mm_; }; #endif XQilla-2.3.4/include/xqilla/debug/InputParser.hpp0000644001725400016040000000300013273140037016620 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __INPUTPARSER_HPP #define __INPUTPARSER_HPP #include #include #include #include class XQILLA_API InputParser { public: typedef std::vector Args; int parse(std::istream &input, Args &args); private: void reset(); void whitespace(Args &args); void character(); void escapedCharacter(); bool inQuotes(); void quote(Args &args, char c); void openCurly(); void closeCurly(); void endOfArg(Args &args); void addArgument(Args &args, std::string::size_type start, std::string::size_type end); void nextLine(std::istream &input, Args &args); std::string line_; std::string::size_type start_, pos_; char quoteChar_; int curlyBraceDepth_; bool seenNonWS_; bool stripQuotes_; }; #endif XQilla-2.3.4/include/xqilla/debug/DebugListener.hpp0000644001725400016040000000321513273140037017110 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEBUGLISTENER_HPP #define _DEBUGLISTENER_HPP #include #include #include class StackFrame; class DynamicContext; class XQException; /** * A class used to listen for debugging information */ class XQILLA_API DebugListener { public: virtual ~DebugListener() {} virtual void start(const StackFrame *stack, const DynamicContext *context) {} virtual void end(const StackFrame *stack, const DynamicContext *context) {} virtual void enter(const StackFrame *stack, const DynamicContext *context) {} virtual void exit(const StackFrame *stack, const DynamicContext *context) {} virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { throw error; } virtual bool doLazyEvaluation() const { return true; } virtual bool doFocusOptimizations() const { return true; } }; #endif XQilla-2.3.4/include/xqilla/debug/TupleDebugHook.hpp0000644001725400016040000000234213273140037017235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLEDEBUGHOOK_HPP #define TUPLEDEBUGHOOK_HPP #include class XQILLA_API TupleDebugHook : public TupleNode { public: TupleDebugHook(TupleNode *parent, XPath2MemoryManager *mm); virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; }; #endif XQilla-2.3.4/include/xqilla/xqilla-xqc.h0000644001725400016040000000250613273140037015013 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_XQC_H #define _XQILLA_XQC_H #include #ifdef __cplusplus extern "C" { #endif /** * Creates an XQC_Implementation object that uses XQilla. */ XQC_Implementation *createXQillaXQCImplementation(int version); /** * \example xqc-basic.c * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example xqc-context-item.c * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ #ifdef __cplusplus } #endif #endif XQilla-2.3.4/include/xqilla/events/0000755001725400016040000000000013273141210014132 500000000000000XQilla-2.3.4/include/xqilla/events/EventGenerator.hpp0000644001725400016040000000413413273140037017523 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTGENERATOR_HPP #define _EVENTGENERATOR_HPP #include #include #include class DynamicContext; class EventHandler; class ASTNode; class QueryPathNode; class XQILLA_API EventGenerator : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~EventGenerator() {} /** Returns the result of this expression via the EventHandler provided. An EventGenerator may be returned to be called as a tail call optimization */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context) = 0; static void generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context) { EventGenerator::Ptr gen = generator; while(gen.notNull()) { gen = gen->generateEvents(events, context); } } static Result createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context); }; class XQILLA_API ASTNodeEventGenerator : public EventGenerator { public: ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context); protected: const ASTNode *ast_; bool preserveNS_, preserveType_; }; #endif XQilla-2.3.4/include/xqilla/events/QueryPathTreeFilter.hpp0000644001725400016040000000523513273140037020506 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHTREEFILTER_HPP #define _QUERYPATHTREEFILTER_HPP #include #include #include class QueryPathNode; typedef std::vector QPNVector; class XQILLA_API QueryPathTreeFilter : public EventFilter { public: QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next); QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next); virtual ~QueryPathTreeFilter(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); protected: struct StackEntry { StackEntry() : matched(false), nonElementChildren(false), attrChildren(false), children() {} void addNode(const QueryPathNode *isn); void addChildren(const QueryPathNode *isn); XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname; bool matched; bool nonElementChildren; bool attrChildren; QPNVector children; }; typedef std::vector FilterStack; void checkAncestors(FilterStack::reverse_iterator s); FilterStack stack_; }; #endif XQilla-2.3.4/include/xqilla/events/SequenceBuilder.hpp0000644001725400016040000000220313273140037017645 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCEBUILDER_HPP #define _SEQUENCEBUILDER_HPP #include #include #include class DynamicContext; class Sequence; class XQILLA_API SequenceBuilder : public EventHandler, public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~SequenceBuilder() {} virtual Sequence getSequence() const = 0; }; #endif XQilla-2.3.4/include/xqilla/events/EventSerializer.hpp0000644001725400016040000000574013273140037017712 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTSERIALIZER_HPP #define _EVENTSERIALIZER_HPP #include #include class XQILLA_API EventSerializer : public EventHandler { public: EventSerializer(const char *encoding, const char *xmlVersion, XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); EventSerializer(XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); ~EventSerializer(); virtual void setLocationInfo(const LocationInfo *location) {} virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); void addNewlines(bool add) { addNewlines_ = add; } void useSelfClosingElement(bool value) { selfClosing_ = value; } void addXMLDeclarations(bool value) { xmlDecls_ = value; } private: XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatter formatter_; bool elementStarted_; unsigned int level_; XMLCh *version_, *encoding_; bool addNewlines_, selfClosing_, xmlDecls_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #endif XQilla-2.3.4/include/xqilla/events/NSFixupFilter.hpp0000644001725400016040000000444313273140037017300 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NSFIXUPFILTER_HPP #define _NSFIXUPFILTER_HPP #include class XPath2MemoryManager; class XQILLA_API NSFixupFilter : public EventFilter { public: NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm); ~NSFixupFilter(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: struct ElemEntry { void set(const XMLCh *p, ElemEntry *pr) { prefix = p; prev = pr; } const XMLCh *prefix; ElemEntry *prev; }; struct NSEntry { void set(const XMLCh *p, const XMLCh *u, unsigned int l, NSEntry *pr) { prefix = p; uri = u; level = l; prev = pr; } const XMLCh *prefix; const XMLCh *uri; unsigned int level; NSEntry *prev; }; NSEntry *findPrefix(const XMLCh *prefix); /// Returns the prefix to use bool definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr = false, bool redefine = true); XPath2MemoryManager *mm_; unsigned int level_; ElemEntry *elements_; NSEntry *namespaces_; }; #endif XQilla-2.3.4/include/xqilla/events/EventHandler.hpp0000644001725400016040000001176113273140037017156 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTHANDLER_HPP #define _EVENTHANDLER_HPP #include #include #include #include class XQILLA_API EventHandler { public: virtual ~EventHandler() {}; /** Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. */ virtual void setLocationInfo(const LocationInfo *location) {} /** Handles a document node as an event */ virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) = 0; /** Handles a document node as an event */ virtual void endDocumentEvent() = 0; /** Handles the start of an element node as an event */ virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) = 0; /** Handles the end of an element node as an event */ virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) = 0; /** Handles a processing instruction node as an event */ virtual void piEvent(const XMLCh *target, const XMLCh *value) = 0; /** Handles a text node as an event */ virtual void textEvent(const XMLCh *value) = 0; /** Handles a text node as an event */ virtual void textEvent(const XMLCh *chars, unsigned int length) = 0; /** Handles a comment node as an event */ virtual void commentEvent(const XMLCh *value) = 0; /** Handles an attribute node as an event */ virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) = 0; /** Handles a namespace binding as an event */ virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) = 0; /** Handles an atomic item as an event */ virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} /** Called when all events have been reported */ virtual void endEvent() = 0; }; class XQILLA_API EventFilter : public EventHandler { public: EventFilter(EventHandler *next) : next_(next) { } void setNextEventHandler(EventHandler *next) { next_ = next; } virtual void setLocationInfo(const LocationInfo *location) { next_->setLocationInfo(location); } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { next_->startDocumentEvent(documentURI, encoding); } virtual void endDocumentEvent() { next_->endDocumentEvent(); } virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { next_->startElementEvent(prefix, uri, localname); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); } virtual void piEvent(const XMLCh *target, const XMLCh *value) { next_->piEvent(target, value); } virtual void textEvent(const XMLCh *value) { next_->textEvent(value); } virtual void textEvent(const XMLCh *chars, unsigned int length) { next_->textEvent(chars, length); } virtual void commentEvent(const XMLCh *value) { next_->commentEvent(value); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { next_->namespaceEvent(prefix, uri); } virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->atomicItemEvent(type, value, typeURI, typeName); } virtual void endEvent() { next_->endEvent(); } protected: EventHandler *next_; }; static inline const XMLCh *emptyToNull(const XMLCh * const in) { return (in == 0 || *in == 0) ? 0 : in; } #endif XQilla-2.3.4/include/xqilla/events/ContentSequenceFilter.hpp0000644001725400016040000000355513273140037021052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CONTENTSEQUENCEFILTER_HPP #define _CONTENTSEQUENCEFILTER_HPP #include class XQILLA_API ContentSequenceFilter : public EventFilter { public: ContentSequenceFilter(EventHandler *next); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void endEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); private: bool lastWasAtomic_; }; #endif XQilla-2.3.4/include/xqilla/xqilla-simple.hpp0000644001725400016040000000343413273140037016052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** * \example simple-basic.cpp * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example simple-context-item.cpp * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ XQilla-2.3.4/include/xqilla/dom-api/0000755001725400016040000000000013273141210014154 500000000000000XQilla-2.3.4/include/xqilla/dom-api/impl/0000755001725400016040000000000013273141210015115 500000000000000XQilla-2.3.4/include/xqilla/dom-api/impl/XQillaNSResolverImpl.hpp0000644001725400016040000000434113273140037021555 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLANSRESOLVERIMPL_HPP #define __XQILLANSRESOLVERIMPL_HPP #include #include #include #include #include class XPath2MemoryManager; class LocationInfo; class XQILLA_API XQillaNSResolverImpl : public XQillaNSResolver { public: XQillaNSResolverImpl(XPath2MemoryManager* memMgr); XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope); XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope = 0); ~XQillaNSResolverImpl(); virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const; virtual const XMLCh* lookupPrefix(const XMLCh* uri) const; virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); void setPreviousScope(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope) { _prevScope = prevScope; } virtual void release(); static void forbiddenBindingCheck(const XMLCh* prefix, const XMLCh* uri, const LocationInfo *info); protected: XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > _namespaceBindings; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *_resolverNode; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _prevScope; XPath2MemoryManager* _memMgr; }; #endif XQilla-2.3.4/include/xqilla/dom-api/XQillaExpression.hpp0000644001725400016040000000352013273140037020065 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPRESSION_HPP #define __XQILLAEXPRESSION_HPP #include #include #include #include #include #include #include class DynamicContext; /** * The XQillaExpression interface extends the DOMXPathExpression interface, * providing the ability to release the object. The evaluate method will always return an object of type * XPath2Result * @since DOM Level 3 */ class XQILLA_API XQillaExpression: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression { public: //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} }; #endif XQilla-2.3.4/include/xqilla/dom-api/XQillaNSResolver.hpp0000644001725400016040000000666013273140037020000 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLANSRESOLVER_HPP #define __XQILLANSRESOLVER_HPP #include #include XERCES_CPP_NAMESPACE_BEGIN class XercesDefs; class DOMNode; XERCES_CPP_NAMESPACE_END class XPath2MemoryManager; /** * The XQillaNSResolver interface extends the DOMXPathNSResolver * providing the ability to add additional namespace bindings. * @since DOM Level 3 */ class XQILLA_API XQillaNSResolver : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver { public: // ----------------------------------------------------------------------- // Non-standard extension // ----------------------------------------------------------------------- /** @name Non-standard extension */ //@{ /** * Non-standard extension * * XQilla requires additional bindings of namespaces. This method will bind * the given prefix to the associated namespace. * @param prefix of type XMLCh - The prefix to bind. * @param URI of type XMLCh - The associated namespace. */ virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0; /** Look up the namespace URI associated to the given namespace prefix. * The XPath evaluator must never call this with a null or empty argument, * because the result of doing this is undefined. * @param prefix of type XMLCh - The prefix to look for. * @return the associated namespace URI or null if none is found. */ virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0; /** * Non-standard extension * * XPath2 implementations require a reverse lookup in the static context. * Look up the prefix associated with the namespace URI * The XPath evaluator must never call this with a null or empty argument, * because the result of doing this is undefined. * @param URI of type XMLCh - The namespace to look for. * @return the associated prefix or null if none is found. */ virtual const XMLCh* lookupPrefix(const XMLCh* uri) const = 0; //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} protected: // ----------------------------------------------------------------------- // Hidden constructors // ----------------------------------------------------------------------- /** @name Hidden constructors */ //@{ XQillaNSResolver() {}; //@} };//XQillaNSResolver #endif //__XQILLANSRESOLVER_HPP XQilla-2.3.4/include/xqilla/dom-api/XPath2Result.hpp0000644001725400016040000001720013273140037017120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2RESULT_HPP #define __XPATH2RESULT_HPP #include #include #include #include #include /** * The XPathResult2 interface represents the result of the evaluation of an XPath * 2.0 expression within the context of a particular node. Since evaluation of an * XPath 2.0 expression can result in various result types, this object makes it * possible to discover and manipulate the type and value of the result. * @since DOM Level 3 */ class XQILLA_API XPath2Result { public: /** @name Destructor */ //@{ /** * Destructor */ virtual ~XPath2Result() {}; //@} /** @name Public Constants */ //@{ /** *

    FIRST_RESULT *
    The result is a sequence as defined by XPath 2.0 and will be accessed * as a single current value or there will be no current value if the sequence * is empty. Document modification does not invalidate the value, but may mean * that the result no longer corresponds to the current document. This is a * convenience that permits optimization since the implementation can stop once * the first item in the resulting sequence has been found. If there is more * than one item in the actual result, the single item returned might not be * the first in document order. *

    ITERATOR_RESULT *
    The result is a sequence as defined by XPath 2.0 that will be accessed * iteratively. Document modification invalidates the iteration. *

    SNAPSHOT_RESULT *
    The result is a sequence as defined by XPath 2.0 that will be accessed * as a snapshot list of values. Document modification does not invalidate the * snapshot but may mean that reevaluation would not yield the same snapshot * and any items in the snapshot may have been altered, moved, or removed from * the document. */ enum ResultType { FIRST_RESULT = 100, ITERATOR_RESULT = 101, SNAPSHOT_RESULT = 102 }; //@} /** @name Functions introduced in DOM Level 3 */ //@{ /** * Returns the result type of this result * @return ResultType * A code representing the type of this result, as defined by the type constants. */ virtual ResultType getResultType() const = 0; /** * Returns true if the result has a current result and the value is a node. * @return isNode of type boolean, readonly */ virtual bool isNode() const = 0; /** * Returns the DOM type info of the current result node or value. * @return typeInfo of type TypeInfo, readonly */ virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const = 0; /** * Conversion of the current result to double. If the native double type of the * DOM binding does not directly support the exact IEEE 754 result of the XPath * expression, then it is up to the definition of the binding to specify how the * XPath number is converted to the native binding number. * @return asDouble of type double, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to double. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual double getNumberValue() const = 0; /** * Conversion of the current result to int. * @return asInt of type int, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to int. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual int getIntegerValue() const = 0; /** * Conversion of the current result to string. * @return asString of type DOMString, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to string. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual const XMLCh* getStringValue() const = 0; /** * Conversion of the current result to boolean. * @return asBoolean of type boolean, readonly * @exception XPathException * TYPE_ERR: raised if cannot be properly converted to boolean. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual bool getBooleanValue() const = 0; /** * Retrieve the current node value. * @return asNode of type Node, readonly * @exception XPathException * TYPE_ERR: raised if current result is not a node. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const = 0; /** * Signifies that the iterator has become invalid. * @return invalidIteratorState of type boolean, readonly */ virtual bool getInvalidIteratorState() const = 0; /** * The number of items in the result snapshot. Valid values for snapshotItem * indices are 0 to snapshotLength-1 inclusive. * @return snapshotLength of type size_t, readonly * @exception XPathException * TYPE_ERR: raised if resultType is not SNAPSHOT_RESULT. */ virtual size_t getSnapshotLength() const = 0; /** * Iterates and returns true if the current result is the next item from the * sequence or false if there are no more items. * @return boolean True if the current result is the next item from the sequence * or false if there are no more items. * @exception XPathException * TYPE_ERR: raised if resultType is not ITERATOR_RESULT. * @exception DOMException * INVALID_STATE_ERR: The document has been mutated since the result was returned. */ virtual bool iterateNext() = 0; /** * Sets the current result to the indexth item in the snapshot collection. If * index is greater than or equal to the number of items in the list, this method * returns false. Unlike the iterator result, the snapshot does not become * invalid, but may not correspond to the current document if it is mutated. * @param index of type size_t - Index into the snapshot collection. * @return boolean True if the current result is the next item from the sequence * or false if there are no more items. * @exception XPathException * TYPE_ERR: raised if resultType is not SNAPSHOT_RESULT. */ virtual bool snapshotItem(size_t) = 0; //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} protected: /** @name Hidden constructors */ //@{ XPath2Result() {}; //@} private: /** @name Unimplemented constructors and operators */ //@{ XPath2Result(const XPath2Result &); XPath2Result &operator=(const XPath2Result &); //@} }; #endif XQilla-2.3.4/include/xqilla/exceptions/0000755001725400016040000000000013273141210015007 500000000000000XQilla-2.3.4/include/xqilla/exceptions/NamespaceLookupException.hpp0000644001725400016040000000251113273140037022412 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* NamespaceLookupException - exception class for DSLPath parser */ #ifndef _NAMESPACELOOKUPEXCPETION_HPP #define _NAMESPACELOOKUPEXCPETION_HPP #include #include /** exception class for DSLPath parser */ class XQILLA_API NamespaceLookupException : public XQException { public: NamespaceLookupException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("NamespaceLookupException"), functionName, reason, info, file, line) {}; }; #endif // _XPATHPARSEEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/QueryInterruptedException.hpp0000644001725400016040000000252613273140037022665 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QueryInterruptedException */ #ifndef _QUERYINTERRUPTEDEXCEPTION_HPP #define _QUERYINTERRUPTEDEXCEPTION_HPP #include #include #include /** exception class for interrupted queries */ class XQILLA_API QueryInterruptedException : public XQException { public: QueryInterruptedException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("QueryInterruptedException"), functionName, reason, info, file, line) {}; }; #endif // _QUERYINTERRUPTEDEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/ASTException.hpp0000644001725400016040000000237313273140037017761 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ASTException - exception class for ASTNodes */ #ifndef _ASTEXCEPTION_HPP #define _ASTEXCEPTION_HPP #include #include #include /** exception class for data items */ class XQILLA_API ASTException : public XQException { public: ASTException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ASTException"), functionName, reason, info, file, line) {}; }; #endif XQilla-2.3.4/include/xqilla/exceptions/DynamicErrorException.hpp0000644001725400016040000000250313273140037021723 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DYNAMICERROREXCEPTION_HPP #define _DYNAMICERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while evaluating the expression */ class XQILLA_API DynamicErrorException : public XQException { public: DynamicErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("DynamicErrorException"), functionName, reason, info, file, line) {}; }; #endif // _DYNAMICERROREXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/IllegalArgumentException.hpp0000644001725400016040000000271113273140037022402 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Illegal Argument exception. Should be thrown when arguments given are not as expected */ #ifndef _ILLEGALARGUMENTEXCEPTION_HPP #define _ILLEGALARGUMENTEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API IllegalArgumentException : public XQException { public: IllegalArgumentException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("IllegalArgumentException"), functionName, reason, info, file, line) {}; }; #endif // _ILLEGALARGUMENTEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/XQillaException.hpp0000644001725400016040000000733313273140037020525 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXCEPTION_HPP #define __XQILLAEXCEPTION_HPP #include #include #include class XQException; /** * The XQillaException interface extends the DOMXPathException * allowing an additional exception of type RUNTIME_ERR to be thrown. * @since DOM Level 3 */ class XQILLA_API XQillaException: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathException { public: // ----------------------------------------------------------------------- // Constructors // ----------------------------------------------------------------------- /** @name Constructors */ //@{ /** * Constructor which takes an error code and a message. * * @param code The error code which indicates the exception * @param message The string containing the error message */ XQillaException(short code, const XMLCh* message); /** * Constructor which takes an error code and a message. * * @param code The error code which indicates the exception * @param message The string containing the error message */ XQillaException(const XQException &ex); /** * Copy constructor. * * @param other The object to be copied. */ XQillaException(const XQillaException &other); //@} // ----------------------------------------------------------------------- // Destructors // ----------------------------------------------------------------------- /** @name Destructor */ //@{ /** * Destructor for XQillaException. * */ virtual ~XQillaException(); //@} //@{ /** * ExceptionCode * RUNTIME_ERR If XQilla encounters a runtime exception */ enum valExtension { RUNTIME_ERR = 54 }; //@} // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- /** @name Getter methods */ //@{ /** * Returns the code associated with this exception. * * @return the exception code */ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathException::ExceptionCode getCode(void) const; /** * Returns the string representing the exception's error message. * * @return the error message */ virtual const XMLCh* getString(void) const; //@} /** @name Getter methods */ //@{ /** * Statically returns whether or not XQillaExceptions have debug on * * @return debug */ static bool getDebug(void); //@} // ----------------------------------------------------------------------- // Setter methods // ----------------------------------------------------------------------- /** @name Setter methods */ //@{ /** Set the 'debug' flag * * This method allows users to enable or disable debug on XQillaExceptions. * * @param debug The value specifying whether or not debug is enabled */ static void setDebug(bool flag); //@} private: static bool _debug; }; #endif XQilla-2.3.4/include/xqilla/exceptions/ItemException.hpp0000644001725400016040000000255313273140037020230 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Item Exception. Should be thrown only from Item hierarchy */ #ifndef _ITEMEXCEPTION_HPP #define _ITEMEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API ItemException : public XQException { public: ItemException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ItemException"), functionName, reason, info, file, line) {}; }; #endif // _ITEMEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/StaticErrorException.hpp0000644001725400016040000000253313273140037021571 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICERROREXCEPTION_HPP #define _STATICERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while parsing or when doing static analysis of the expression */ class XQILLA_API StaticErrorException : public XQException { public: StaticErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("StaticErrorException"), functionName, reason, info, file, line) {}; }; #endif // _STATICERROREXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/XPath2ErrorException.hpp0000644001725400016040000000257413273140037021455 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2ErrorException - handles cases in the specification where the `error value' is returned */ #ifndef _XPATH2ERROREXCEPTON_HPP #define _XPATH2ERROREXCEPTON_HPP #include #include #include /** exception class for data items */ class XQILLA_API XPath2ErrorException : public XQException { public: XPath2ErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2ErrorException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2ERROREXCEPTON_HPP XQilla-2.3.4/include/xqilla/exceptions/TypeNotFoundException.hpp0000644001725400016040000000231113273140037021720 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TYPENOTFOUNDEXCEPTION_HPP #define _TYPENOTFOUNDEXCEPTION_HPP #include #include class XQILLA_API TypeNotFoundException : public XQException { public: TypeNotFoundException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("TypeNotFoundException"), functionName, reason, info, file, line) {}; }; #endif // _TYPENOTFOUNDEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/QueryTimeoutException.hpp0000644001725400016040000000246513273140037022010 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QueryTimeoutException */ #ifndef _QUERYTIMEOUTEXCEPTION_HPP #define _QUERYTIMEOUTEXCEPTION_HPP #include #include #include /** exception class for query timeouts */ class XQILLA_API QueryTimeoutException : public XQException { public: QueryTimeoutException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("QueryTimeoutException"), functionName, reason, info, file, line) {}; }; #endif // _QUERYTIMEOUTEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/TypeErrorException.hpp0000644001725400016040000000245713273140037021270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TYPEERROREXCEPTION_HPP #define _TYPEERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while manipulating typed data */ class XQILLA_API TypeErrorException : public XQException { public: TypeErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("TypeErrorException"), functionName, reason, info, file, line) {}; }; #endif // _TYPEERROREXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/XQException.hpp0000644001725400016040000000507013273140037017657 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQEXCEPTION_HPP #define XQEXCEPTION_HPP #include #include #define XQThrow(type, function, reason) throw type(function, reason, this, __FILE__, __LINE__) #define XQThrow2(type, function, reason) throw type(function, reason, 0, __FILE__, __LINE__) #define XQThrow3(type, function, reason, location) throw type(function, reason, location, __FILE__, __LINE__) #define XQSimpleThrow(reason, xqfile, xqline, xqcolumn) throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__) class LocationInfo; class XQILLA_API XQException { public: XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine); XQException(const XQException &); virtual ~XQException(); const XMLCh *getType() const { return type_; } const XMLCh *getError() const { return error_; } const XMLCh *getXQueryFile() const { return xqFile_; } unsigned int getXQueryLine() const { return xqLine_; } unsigned int getXQueryColumn() const { return xqColumn_; } void setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column); void setXQueryPosition(const LocationInfo *info); const XMLCh *getCppFunction() const { return cppFunction_; } const char *getCppFile() const { return cppFile_; } unsigned int getCppLine() const { return cppLine_; } void printDebug(const XMLCh* const context) const; protected: XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine); private: XQException &operator=(const XQException &); XMLCh* type_; XMLCh* error_; XMLCh* cppFunction_; const char *cppFile_; unsigned int cppLine_; unsigned int xqLine_, xqColumn_; XMLCh* xqFile_; }; #endif XQilla-2.3.4/include/xqilla/exceptions/XPath2TypeCastException.hpp0000644001725400016040000000254213273140037022113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2TypeCastException - exception class for casting errors */ #ifndef _XPATH2TYPECASTEXCEPTION_HPP #define _XPATH2TYPECASTEXCEPTION_HPP #include #include #include /** exception class for data items */ class XQILLA_API XPath2TypeCastException : public XQException { public: XPath2TypeCastException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2TypeCastException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2TYPECASTEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/XMLParseException.hpp0000644001725400016040000000250313273140037020760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XMLParseException - exception class for parsing XML */ #ifndef _XMLPARSEEXCEPTION_HPP #define _XMLPARSEEXCEPTION_HPP #include #include #include /** exception class for parsing XML */ class XQILLA_API XMLParseException : public XQException { public: XMLParseException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("XMLParseException"), functionName, reason, info, file, line) {}; }; #endif // _XMLPARSEEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/ContextException.hpp0000644001725400016040000000242213273140037020751 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ContextException */ #ifndef _CONTEXTEXCEPTION_HPP #define _CONTEXTEXCEPTION_HPP #include #include #include /** exception class for DSLPath parser */ class XQILLA_API ContextException : public XQException { public: ContextException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ContextException"), functionName, reason, info, file, line) {}; }; #endif // _CONTEXTEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/XPath2TypeMatchException.hpp0000644001725400016040000000256113273140037022256 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2TypeCastException - exception class for casting errors */ #ifndef _XPATH2TYPEMATCHEXCEPTION_HPP #define _XPATH2TYPEMATCHEXCEPTION_HPP #include #include /** Exception to be thrown if an attempt to match a non-existent type is made */ class XQILLA_API XPath2TypeMatchException : public XQException { public: XPath2TypeMatchException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2TypeCastException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2TYPEMATCHEXCEPTION_HPP XQilla-2.3.4/include/xqilla/exceptions/FunctionException.hpp0000644001725400016040000000260313273140037021113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* FunctionException - exception class for functions */ #ifndef _FUNCTIONEXCEPTION_HPP #define _FUNCTIONEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API FunctionException : public XQException { public: FunctionException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("FunctionException"), functionName, reason, info, file, line) {}; }; #endif // _FUNCTIONEXCEPTION_HPP XQilla-2.3.4/include/xqilla/mapm/0000755001725400016040000000000013273141210013560 500000000000000XQilla-2.3.4/include/xqilla/mapm/m_apm.h0000644001725400016040000003666013273140037014763 00000000000000 /* * M_APM - m_apm.h * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01, 2005/11/03, 2006/08/09, 2006/08/21, * 2007/09/20. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #ifndef M__APM__INCLUDED #define M__APM__INCLUDED #include #ifdef __cplusplus /* Comment this line out if you've compiled the library as C++. */ #define APM_CONVERT_FROM_C #endif #ifdef APM_CONVERT_FROM_C extern "C" { #endif typedef unsigned char UCHAR; typedef struct { UCHAR *m_apm_data; long m_apm_id; int m_apm_refcount; /* <- used only by C++ MAPM class */ int m_apm_malloclength; int m_apm_datalength; int m_apm_exponent; int m_apm_sign; } M_APM_struct; typedef M_APM_struct *M_APM; /* * convienient predefined constants * (Not thread safe in C++ API) */ extern M_APM MM_Zero; extern M_APM MM_One; extern M_APM MM_Two; extern M_APM MM_Three; extern M_APM MM_Four; extern M_APM MM_Five; extern M_APM MM_Ten; extern M_APM MM_PI; extern M_APM MM_HALF_PI; extern M_APM MM_2_PI; extern M_APM MM_E; extern M_APM MM_LOG_E_BASE_10; extern M_APM MM_LOG_10_BASE_E; extern M_APM MM_LOG_2_BASE_E; extern M_APM MM_LOG_3_BASE_E; /* * function prototypes */ extern void m_apm_library_initialize(void); extern void m_apm_library_terminate(void); extern void m_apm_mt_initialize(void); extern void m_apm_mt_terminate(void); extern void m_apm_enter(void); extern void m_apm_leave(void); extern XQILLA_API M_APM m_apm_init(void); extern void m_apm_free(M_APM); extern void m_apm_free_all_mem(void); extern void m_apm_trim_mem_usage(void); extern void m_apm_set_string(M_APM, char *); extern void m_apm_set_double(M_APM, double); extern void m_apm_set_long(M_APM, long); extern double m_apm_get_double(M_APM atmp); extern void m_apm_to_string(char *, int, M_APM); extern void m_apm_to_fixpt_string(char *, int, M_APM); extern void m_apm_to_fixpt_stringex(char *, int, M_APM, char, char, int); extern char *m_apm_to_fixpt_stringexp(int, M_APM, char, char, int); extern void m_apm_to_integer_string(char *, M_APM); extern void m_apm_absolute_value(M_APM, M_APM); extern void m_apm_negate(M_APM, M_APM); extern XQILLA_API void m_apm_copy(M_APM, M_APM); extern void m_apm_round(M_APM, int, M_APM); extern XQILLA_API int m_apm_compare(M_APM, M_APM); extern int m_apm_sign(M_APM); extern int m_apm_exponent(M_APM); extern int m_apm_significant_digits(M_APM); extern int m_apm_is_integer(M_APM); extern int m_apm_is_even(M_APM); extern int m_apm_is_odd(M_APM); extern void m_apm_gcd(M_APM, M_APM, M_APM); extern void m_apm_lcm(M_APM, M_APM, M_APM); extern void m_apm_add(M_APM, M_APM, M_APM); extern void m_apm_subtract(M_APM, M_APM, M_APM); extern void m_apm_multiply(M_APM, M_APM, M_APM); extern void m_apm_divide(M_APM, int, M_APM, M_APM); extern void m_apm_integer_divide(M_APM, M_APM, M_APM); extern void m_apm_integer_div_rem(M_APM, M_APM, M_APM, M_APM); extern void m_apm_reciprocal(M_APM, int, M_APM); extern void m_apm_factorial(M_APM, M_APM); extern void m_apm_floor(M_APM, M_APM); extern void m_apm_ceil(M_APM, M_APM); extern void m_apm_get_random(M_APM); extern void m_apm_set_random_seed(char *); extern void m_apm_sqrt(M_APM, int, M_APM); extern void m_apm_cbrt(M_APM, int, M_APM); extern void m_apm_log(M_APM, int, M_APM); extern void m_apm_log10(M_APM, int, M_APM); extern void m_apm_exp(M_APM, int, M_APM); extern void m_apm_pow(M_APM, int, M_APM, M_APM); extern void m_apm_integer_pow(M_APM, int, M_APM, int); extern void m_apm_integer_pow_nr(M_APM, M_APM, int); extern void m_apm_sin_cos(M_APM, M_APM, int, M_APM); extern void m_apm_sin(M_APM, int, M_APM); extern void m_apm_cos(M_APM, int, M_APM); extern void m_apm_tan(M_APM, int, M_APM); extern void m_apm_arcsin(M_APM, int, M_APM); extern void m_apm_arccos(M_APM, int, M_APM); extern void m_apm_arctan(M_APM, int, M_APM); extern void m_apm_arctan2(M_APM, int, M_APM, M_APM); extern void m_apm_sinh(M_APM, int, M_APM); extern void m_apm_cosh(M_APM, int, M_APM); extern void m_apm_tanh(M_APM, int, M_APM); extern void m_apm_arcsinh(M_APM, int, M_APM); extern void m_apm_arccosh(M_APM, int, M_APM); extern void m_apm_arctanh(M_APM, int, M_APM); extern void m_apm_cpp_precision(int); /* only for C++ wrapper */ extern M_APM m_apm_init_mt(void); extern void m_apm_free_mt(M_APM); extern void m_apm_free_all_mem_mt(void); extern void m_apm_trim_mem_usage_mt(void); extern void m_apm_set_string_mt(M_APM, char *); extern void m_apm_set_double_mt(M_APM, double); extern void m_apm_set_long_mt(M_APM, long); extern void m_apm_to_string_mt(char *, int, M_APM); extern void m_apm_to_fixpt_string_mt(char *, int, M_APM); extern void m_apm_to_fixpt_stringex_mt(char *, int, M_APM, char, char, int); extern char *m_apm_to_fixpt_stringexp_mt(int, M_APM, char, char, int); extern void m_apm_to_integer_string_mt(char *, M_APM); extern void m_apm_absolute_value_mt(M_APM, M_APM); extern void m_apm_negate_mt(M_APM, M_APM); extern void m_apm_copy_mt(M_APM, M_APM); extern void m_apm_round_mt(M_APM, int, M_APM); extern int m_apm_compare_mt(M_APM, M_APM); extern int m_apm_sign_mt(M_APM); extern int m_apm_exponent_mt(M_APM); extern int m_apm_significant_digits_mt(M_APM); extern int m_apm_is_integer_mt(M_APM); extern int m_apm_is_even_mt(M_APM); extern int m_apm_is_odd_mt(M_APM); extern void m_apm_gcd_mt(M_APM, M_APM, M_APM); extern void m_apm_lcm_mt(M_APM, M_APM, M_APM); extern void m_apm_add_mt(M_APM, M_APM, M_APM); extern void m_apm_subtract_mt(M_APM, M_APM, M_APM); extern void m_apm_multiply_mt(M_APM, M_APM, M_APM); extern void m_apm_divide_mt(M_APM, int, M_APM, M_APM); extern void m_apm_integer_divide_mt(M_APM, M_APM, M_APM); extern void m_apm_integer_div_rem_mt(M_APM, M_APM, M_APM, M_APM); extern void m_apm_reciprocal_mt(M_APM, int, M_APM); extern void m_apm_factorial_mt(M_APM, M_APM); extern void m_apm_floor_mt(M_APM, M_APM); extern void m_apm_ceil_mt(M_APM, M_APM); extern void m_apm_get_random_mt(M_APM); extern void m_apm_set_random_seed_mt(char *); extern void m_apm_sqrt_mt(M_APM, int, M_APM); extern void m_apm_cbrt_mt(M_APM, int, M_APM); extern void m_apm_log_mt(M_APM, int, M_APM); extern void m_apm_log10_mt(M_APM, int, M_APM); extern void m_apm_exp_mt(M_APM, int, M_APM); extern void m_apm_pow_mt(M_APM, int, M_APM, M_APM); extern void m_apm_integer_pow_mt(M_APM, int, M_APM, int); extern void m_apm_integer_pow_nr_mt(M_APM, M_APM, int); extern void m_apm_sin_cos_mt(M_APM, M_APM, int, M_APM); extern void m_apm_sin_mt(M_APM, int, M_APM); extern void m_apm_cos_mt(M_APM, int, M_APM); extern void m_apm_tan_mt(M_APM, int, M_APM); extern void m_apm_arcsin_mt(M_APM, int, M_APM); extern void m_apm_arccos_mt(M_APM, int, M_APM); extern void m_apm_arctan_mt(M_APM, int, M_APM); extern void m_apm_arctan2_mt(M_APM, int, M_APM, M_APM); extern void m_apm_sinh_mt(M_APM, int, M_APM); extern void m_apm_cosh_mt(M_APM, int, M_APM); extern void m_apm_tanh_mt(M_APM, int, M_APM); extern void m_apm_arcsinh_mt(M_APM, int, M_APM); extern void m_apm_arccosh_mt(M_APM, int, M_APM); extern void m_apm_arctanh_mt(M_APM, int, M_APM); extern void m_apm_cpp_precision_mt(int); /* only for C++ wrapper */ /* more intuitive alternate names for the ARC functions ... */ #define m_apm_asin m_apm_arcsin #define m_apm_acos m_apm_arccos #define m_apm_atan m_apm_arctan #define m_apm_atan2 m_apm_arctan2 #define m_apm_asinh m_apm_arcsinh #define m_apm_acosh m_apm_arccosh #define m_apm_atanh m_apm_arctanh #define m_apm_asin_mt m_apm_arcsin_mt #define m_apm_acos_mt m_apm_arccos_mt #define m_apm_atan_mt m_apm_arctan_mt #define m_apm_atan2_mt m_apm_arctan2_mt #define m_apm_asinh_mt m_apm_arcsinh_mt #define m_apm_acosh_mt m_apm_arccosh_mt #define m_apm_atanh_mt m_apm_arctanh_mt #ifdef APM_CONVERT_FROM_C } /* End extern "C" bracket */ #endif #ifdef __cplusplus /*<- Hides the class below from C compilers */ /* This class lets you use M_APM's a bit more intuitively with C++'s operator and function overloading, constructors, etc. Added 3/24/2000 by Orion Sky Lawlor, olawlor@acm.org */ extern #ifdef APM_CONVERT_FROM_C "C" #endif int MM_cpp_min_precision; class XQILLA_API MAPM { protected: /* The M_APM structure here is implemented as a reference- counted, copy-on-write data structure-- this makes copies very fast, but that's why it's so ugly. A MAPM object is basically just a wrapper around a (possibly shared) M_APM_struct myVal. */ M_APM myVal; /* My M_APM structure */ void create(void); void destroy(void); void copyFrom(M_APM Nval); static M_APM makeNew(void); static void ref(M_APM val); static void unref(M_APM val); /* This routine is called to get a private (mutable) copy of our current value. */ M_APM val(void); /*BAD: C M_APM routines doesn't use "const" where they should-- hence we have to cast to a non-const type here (FIX THIS!). (in due time.... MCR) */ M_APM cval(void) const; /* This is the default number of digits to use for 1-ary functions like sin, cos, tan, etc. It's the larger of my digits and cpp_min_precision. */ int myDigits(void) const; /* This is the default number of digits to use for 2-ary functions like divide, atan2, etc. It's the larger of my digits, his digits, and cpp_min_precision. */ int digits(const MAPM &otherVal) const; public: /* Constructors: */ MAPM(void); /* Default constructor (takes no value) */ MAPM(const MAPM &m); /* Copy constructor */ MAPM(M_APM m, bool copy=true); /* M_APM constructor (refcount starts at one) */ MAPM(const char *s); /* Constructor from string */ MAPM(double d); /* Constructor from double-precision float */ MAPM(int l); /* Constructor from int */ MAPM(long l); /* Constructor from long int */ /* Destructor */ ~MAPM(); M_APM c_struct() const { return myVal; } /* Extracting string descriptions: */ void toString(char *dest,int decimalPlaces) const; void toFixPtString(char *dest,int decimalPlaces) const; void toFixPtStringEx(char *dest,int dp,char a,char b,int c) const; char *toFixPtStringExp(int dp,char a,char b,int c) const; void toIntegerString(char *dest) const; double toDouble() const; /* Basic operators: */ MAPM &operator=(const MAPM &m); /* Assigment operator */ MAPM &operator=(const char *s); /* Assigment operator */ MAPM &operator=(double d); /* Assigment operator */ MAPM &operator=(int l); /* Assigment operator */ MAPM &operator=(long l); /* Assigment operator */ MAPM operator++(); /* Prefix increment operator */ MAPM operator--(); /* Prefix decrement operator */ const MAPM operator++(int); /* Postfix increment operator */ const MAPM operator--(int); /* Postfix decrement operator */ /* Comparison operators */ bool operator==(const MAPM &m) const; /* Equality operator */ bool operator!=(const MAPM &m) const; /* Inequality operator */ bool operator<(const MAPM &m) const; bool operator<=(const MAPM &m) const; bool operator>(const MAPM &m) const; bool operator>=(const MAPM &m) const; int compare(const MAPM &m) const; /* Basic arithmetic operators */ friend MAPM operator+(const MAPM &a,const MAPM &b); friend MAPM operator-(const MAPM &a,const MAPM &b); friend MAPM operator*(const MAPM &a,const MAPM &b); /* Default division keeps larger of cpp_min_precision, numerator digits of precision, or denominator digits of precision. */ friend MAPM operator/(const MAPM &a,const MAPM &b); MAPM divide(const MAPM &m,int toDigits) const; MAPM divide(const MAPM &m) const; /* Assignment arithmetic operators */ MAPM &operator+=(const MAPM &m); MAPM &operator-=(const MAPM &m); MAPM &operator*=(const MAPM &m); MAPM &operator/=(const MAPM &m); /* Extracting/setting simple information: */ int sign(void) const; int exponent(void) const ; int significant_digits(void) const; int is_integer(void) const; int is_even(void) const; int is_odd(void) const; /* Functions: */ MAPM abs(void) const; MAPM neg(void) const; MAPM round(int toDigits) const; /* I got tired of typing the various declarations for a simple 1-ary real-to-real function on MAPM's; hence this define: The digits-free versions return my digits of precision or cpp_min_precision, whichever is bigger. */ #define MAPM_1aryFunc(func) \ MAPM func(int toDigits) const;\ MAPM func(void) const; MAPM_1aryFunc(sqrt) MAPM_1aryFunc(cbrt) MAPM_1aryFunc(log) MAPM_1aryFunc(exp) MAPM_1aryFunc(log10) MAPM_1aryFunc(sin) MAPM_1aryFunc(asin) MAPM_1aryFunc(cos) MAPM_1aryFunc(acos) MAPM_1aryFunc(tan) MAPM_1aryFunc(atan) MAPM_1aryFunc(sinh) MAPM_1aryFunc(asinh) MAPM_1aryFunc(cosh) MAPM_1aryFunc(acosh) MAPM_1aryFunc(tanh) MAPM_1aryFunc(atanh) #undef MAPM_1aryFunc void sincos(MAPM &sinR,MAPM &cosR,int toDigits); void sincos(MAPM &sinR,MAPM &cosR); MAPM pow(const MAPM &m,int toDigits) const; MAPM pow(const MAPM &m) const; MAPM atan2(const MAPM &x,int toDigits) const; MAPM atan2(const MAPM &x) const; MAPM gcd(const MAPM &m) const; MAPM lcm(const MAPM &m) const; static MAPM random(void); MAPM floor(void) const; MAPM ceil(void) const; /* Functions defined only on integers: */ MAPM factorial(void) const; MAPM ipow_nr(int p) const; MAPM ipow(int p,int toDigits) const; MAPM ipow(int p) const; MAPM integer_divide(const MAPM &denom) const; void integer_div_rem(const MAPM &denom,MAPM ",MAPM &rem) const; MAPM div(const MAPM &denom) const; MAPM rem(const MAPM &denom) const; }; /* math.h-style functions: */ inline MAPM fabs(const MAPM &m) {return m.abs();} inline MAPM factorial(const MAPM &m) {return m.factorial();} inline MAPM floor(const MAPM &m) {return m.floor();} inline MAPM ceil(const MAPM &m) {return m.ceil();} inline MAPM get_random(void) {return MAPM::random();} /* I got tired of typing the various declarations for a simple 1-ary real-to-real function on MAPM's; hence this define: */ #define MAPM_1aryFunc(func) \ inline MAPM func(const MAPM &m) {return m.func();} \ inline MAPM func(const MAPM &m,int toDigits) {return m.func(toDigits);} /* Define a big block of simple functions: */ MAPM_1aryFunc(sqrt) MAPM_1aryFunc(cbrt) MAPM_1aryFunc(log) MAPM_1aryFunc(exp) MAPM_1aryFunc(log10) MAPM_1aryFunc(sin) MAPM_1aryFunc(asin) MAPM_1aryFunc(cos) MAPM_1aryFunc(acos) MAPM_1aryFunc(tan) MAPM_1aryFunc(atan) MAPM_1aryFunc(sinh) MAPM_1aryFunc(asinh) MAPM_1aryFunc(cosh) MAPM_1aryFunc(acosh) MAPM_1aryFunc(tanh) MAPM_1aryFunc(atanh) #undef MAPM_1aryFunc /* Computes x to the power y */ inline MAPM pow(const MAPM &x,const MAPM &y,int toDigits) {return x.pow(y,toDigits);} inline MAPM pow(const MAPM &x,const MAPM &y) {return x.pow(y);} inline MAPM atan2(const MAPM &y,const MAPM &x,int toDigits) {return y.atan2(x,toDigits);} inline MAPM atan2(const MAPM &y,const MAPM &x) {return y.atan2(x);} inline MAPM gcd(const MAPM &u,const MAPM &v) {return u.gcd(v);} inline MAPM lcm(const MAPM &u,const MAPM &v) {return u.lcm(v);} #endif #endif XQilla-2.3.4/include/xqilla/utils/0000755001725400016040000000000013273141210013766 500000000000000XQilla-2.3.4/include/xqilla/utils/NumUtils.hpp0000644001725400016040000000217713273140037016214 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NUMUTILS_HPP #define _NUMUTILS_HPP #include #include class XPath2MemoryManager; /** class with static methods for dealing with floating point numbers */ class XQILLA_API NumUtils { public: /** return MAPM to int */ static int MAPMtoInt(MAPM m); /** return MAPM to double */ static double MAPMtoDouble(MAPM m); }; #endif // _NUMUTILS_HPP XQilla-2.3.4/include/xqilla/utils/XPath2Utils.hpp0000644001725400016040000001442313273140037016560 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XPATH2UTILS_HPP #define _XPATH2UTILS_HPP #include #include class XPath2MemoryManager; #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class InputSource; class BinInputStream; XERCES_CPP_NAMESPACE_END /**class with methods that are used by v2 that are DOM related*/ class XQILLA_API XPath2Utils { public: /** * Escape a URI. Boolean says escape reserved chars. * * NOTE: The returned buffer is dynamically allocated and is the * responsibility of the caller to delete it when not longer needed. */ static const XMLCh* escapeURI(const XMLCh* const str, bool escapeRes, XPath2MemoryManager* memMgr); static bool isValidURI(const XMLCh* const str, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1, const XMLCh srcChar, XPath2MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1, const XMLCh* src2, XPath2MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1 ,const XMLCh* src2, const XMLCh* src3, XPath2MemoryManager* memMgr); static const XMLCh* asStr(const XMLCh src, XPath2MemoryManager* memMgr); static void numToBuf(unsigned int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static void numToBuf(int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static bool equals(const XMLCh *const str1, const XMLCh *const str2); static int compare(const XMLCh *str1, const XMLCh *str2); static int intStrlen(const XMLCh *src); static unsigned int uintStrlen(const XMLCh *src); /** * Return the specified substring. */ static const XMLCh* subString( const XMLCh* srcStr, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr); static const XMLCh* deleteData( const XMLCh* const target, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr ); static const XMLCh* toLower(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* toUpper(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* toCollapsedWS(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* normalizeEOL(const XMLCh* const src, XPath2MemoryManager* memMgr); /*** * Extract the individual values from a list of whitespace separated * values (values) and puts them into valList. */ static std::vector getVal(const XMLCh* values, XPath2MemoryManager* memMgr); /* Determine whether or not an XMLCh* is contained within a vector of XMLCh's */ static bool containsString(std::vector values, const XMLCh* val); /** Gets the owner document for the given node */ static const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *getOwnerDoc(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static bool readSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &result, bool sniffEncoding = false); static void readSource(XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream *stream, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &result, const XMLCh *encoding = 0, bool sniffEncoding = false); }; inline bool XPath2Utils::equals(const XMLCh *const str1, const XMLCh *const str2) { if(str1 == str2) return true; if(str1 == 0) return *str2 == 0; // str2 == 0 is handled by the first line if(str2 == 0) return *str1 == 0; // str1 == 0 is handled by the first line register const XMLCh* psz1 = str1; register const XMLCh* psz2 = str2; while(*psz1 == *psz2) { // If either has ended, then they both ended, so equal if(*psz1 == 0) return true; // Move upwards for the next round ++psz1; ++psz2; } return false; } inline int XPath2Utils::compare(const XMLCh *str1, const XMLCh *str2) { if(str1 == str2) return 0; if(str1 == 0) return -*str2; // str2 == 0 is handled by the first line if(str2 == 0) return *str1; // str1 == 0 is handled by the first line register int cmp; while((cmp = *str1 - *str2) == 0) { // If either has ended, then they both ended, so equal if(*str1 == 0) break; // Move upwards for the next round ++str1; ++str2; } return cmp; } inline const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *XPath2Utils::getOwnerDoc(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node) { if(node->getNodeType() == XERCES_CPP_NAMESPACE_QUALIFIER DOMNode::DOCUMENT_NODE) { return (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument*)node; } else { return node->getOwnerDocument(); } } inline void XPath2Utils::numToBuf(unsigned int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) { if(n >= 10) numToBuf(n / 10, buf); buf.append('0' + (n % 10)); } inline void XPath2Utils::numToBuf(int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) { if(n < 0) { buf.append('-'); numToBuf((unsigned int)-n, buf); } else { numToBuf((unsigned int)n, buf); } } inline int XPath2Utils::intStrlen(const XMLCh *src) { return (int) XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(src); } inline unsigned int XPath2Utils::uintStrlen(const XMLCh *src) { return (unsigned int) XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(src); } #endif XQilla-2.3.4/include/xqilla/utils/DelayedModule.hpp0000644001725400016040000000243113273140037017142 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DELAYEDMODULE_HPP #define _DELAYEDMODULE_HPP #include #include #include class XQQuery; class DynamicContext; class ModuleCache; class XQILLA_API DelayedModule { public: class XQILLA_API FuncDef { public: const char *name; unsigned int args; bool isPrivate; int line, column; const char *body; }; const XMLCh *file; const XMLCh *prefix; const XMLCh *uri; const FuncDef *functions; void importModuleInto(XQQuery *importer) const; }; #endif XQilla-2.3.4/include/xqilla/utils/ContextUtils.hpp0000644001725400016040000000164613273140037017101 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __CONTEXTUTILS_HPP #define __CONTEXTUTILS_HPP #include class XQILLA_API ContextUtils { public: static int getTimezone(); }; #endif //__CONTEXTUTILS_HPP XQilla-2.3.4/include/xqilla/utils/XMLChCompare.hpp0000644001725400016040000000217413273140037016653 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XMLCHCOMPARE_HPP #define _XMLCHCOMPARE_HPP #include #include #include class XQILLA_API QNameSort { public: bool operator() (const std::pair lhs, const std::pair rhs) const; }; class XQILLA_API XMLChSort { public: bool operator() (const XMLCh* lhs, const XMLCh* rhs) const; }; #endif XQilla-2.3.4/include/xqilla/utils/XQillaPlatformUtils.hpp0000644001725400016040000000333213273140037020346 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAPLATFORMUTILS_HPP #define _XQILLAPLATFORMUTILS_HPP #include #include XERCES_CPP_NAMESPACE_BEGIN class MemoryManager; XERCES_CPP_NAMESPACE_END /** * Static utility methods for initializing and terminating the XQilla * and Xerces environments. */ class XQILLA_API XQillaPlatformUtils { public: /** * Perform XQilla initialization * * Initialization should be called first in any user code. * * Initializes Xerces and adds its own DOMImplementation to the registry */ static void initialize(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = 0); /** * Perform XQilla termination * * Terminates Xerces */ static void terminate(); /** * Enable/disable extended precision in numeric items * * When disabled, xs:decimal values will hold only 18 digits, xs:float 7 digits and xs:double 15 digits * as mandated */ static void enableExtendedPrecision(bool bEnable); }; #endif XQilla-2.3.4/include/xqilla/utils/UnicodeTransformer.hpp0000644001725400016040000000415113273140037020237 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifndef UNICODETRANSFORMER_HPP #define UNICODETRANSFORMER_HPP #include #include class XPath2MemoryManager; /// class XQILLA_API UnicodeTransformer { public: static XMLCh* normalizeC(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeD(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeKC(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeKD(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* removeDiacritics(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* caseFold(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* caseFoldAndRemoveDiacritics(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* lowerCase(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* upperCase(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* words(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* sentences(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* wordsAndSentences(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* transform(const XMLCh* source, int options, XPath2MemoryManager* mm); static bool isPunctuation(const XMLCh* source, int &codeSize); static bool isSpaceSeparator(const XMLCh* source); static bool isSpacesOrPunctuations(const XMLCh* start, const XMLCh* end); }; #endif XQilla-2.3.4/include/xqilla/utils/UTF8Str.hpp0000644001725400016040000000250713273140037015650 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UTF8STR_HPP #define _UTF8STR_HPP #include #include #include class XQILLA_API UTF8Str { public : UTF8Str(const XMLCh* const toTranscode, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = 0); ~UTF8Str(); const char *str() const { return (char*)str_; } char *adopt() { char *result = (char*)str_; str_ = 0; return result; } private : XMLByte *str_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #define UTF8(strg) UTF8Str((const XMLCh*)(strg)).str() #endif XQilla-2.3.4/include/xqilla/utils/utf8proc.h0000644001725400016040000005063413273140037015647 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * 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. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ /* * File name: utf8proc.h * Version: 1.1.1 * Last changed: 2007-07-22 * * Description: * Header files for libutf8proc, which is a mapping tool for UTF-8 strings * with following features: * - decomposing and composing of strings * - replacing compatibility characters with their equivalents * - stripping of "default ignorable characters" * like SOFT-HYPHEN or ZERO-WIDTH-SPACE * - folding of certain characters for string comparison * (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-") * (see "LUMP" option) * - optional rejection of strings containing non-assigned code points * - stripping of control characters * - stripping of character marks (accents, etc.) * - transformation of LF, CRLF, CR and NEL to line-feed (LF) * or to the unicode chararacters for paragraph separation (PS) * or line separation (LS). * - unicode case folding (for case insensitive string comparisons) * - rejection of illegal UTF-8 data * (i.e. UTF-8 encoded UTF-16 surrogates) * - support for korean hangul characters * Unicode Version 5.0.0 is supported. * */ #ifndef UTF8PROC_H #define UTF8PROC_H #include #include #include #include #include #define UTF8PROC_NULLTERM (1<<0) #define UTF8PROC_STABLE (1<<1) #define UTF8PROC_COMPAT (1<<2) #define UTF8PROC_COMPOSE (1<<3) #define UTF8PROC_DECOMPOSE (1<<4) #define UTF8PROC_IGNORE (1<<5) #define UTF8PROC_REJECTNA (1<<6) #define UTF8PROC_NLF2LS (1<<7) #define UTF8PROC_NLF2PS (1<<8) #define UTF8PROC_NLF2LF (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS) #define UTF8PROC_STRIPCC (1<<9) #define UTF8PROC_CASEFOLD (1<<10) #define UTF8PROC_CHARBOUND (1<<11) #define UTF8PROC_WORDBOUND (1<<12) #define UTF8PROC_SENTENCEBOUND (1<<13) #define UTF8PROC_LUMP (1<<14) #define UTF8PROC_STRIPMARK (1<<15) #define UTF8PROC_UPPERCASE (1<<16) #define UTF8PROC_LOWERCASE (1<<17) #define UTF8PROC_REMOVE_DIACRITIC (1<<18) #define UTF8PROC_UTF16 (1<<19) #define UTF8PROC_WB_MARK 0xFFFF // Mark for Word Bounding #define UTF8PROC_SB_MARK 0xFFFE // Mark for Sentence Bounding /* * Note: Most of the structs and functions has both version: utf8* and utf16*. * For the structs and functions which only named utf8*, they can be applied * on both utf8 and utf16. * * * Flags being regarded by several functions in the library: * NULLTERM: The given UTF-8 input is NULL terminated. * STABLE: Unicode Versioning Stability has to be respected. * COMPAT: Compatiblity decomposition * (i.e. formatting information is lost) * COMPOSE: Return a result with composed characters. * DECOMPOSE: Return a result with decomposed characters. * IGNORE: Strip "default ignorable characters" * REJECTNA: Return an error, if the input contains unassigned * code points. * NLF2LS: Indicating that NLF-sequences (LF, CRLF, CR, NEL) are * representing a line break, and should be converted to the * unicode character for line separation (LS). * NLF2PS: Indicating that NLF-sequences are representing a paragraph * break, and should be converted to the unicode character for * paragraph separation (PS). * NLF2LF: Indicating that the meaning of NLF-sequences is unknown. * STRIPCC: Strips and/or convers control characters. * NLF-sequences are transformed into space, except if one of * the NLF2LS/PS/LF options is given. * HorizontalTab (HT) and FormFeed (FF) are treated as a * NLF-sequence in this case. * All other control characters are simply removed. * CASEFOLD: Performs unicode case folding, to be able to do a * case-insensitive string comparison. * CHARBOUND: Inserts 0xFF bytes at the beginning of each sequence which * is representing a single grapheme cluster (see UAX#29). * NOTE: You also can't use UTF8PROC_CHARBOUND with either * UTF8PROC_WORDBOUND or UTF8PROC_SENTENCEBOUND * LUMP: Lumps certain characters together * (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-"). * (See lump.txt for details.) * If NLF2LF is set, this includes a transformation of * paragraph and line separators to ASCII line-feed (LF). * STRIPMARK: Strips all character markings * (non-spacing, spacing and enclosing) (i.e. accents) * NOTE: this option works only with COMPOSE or DECOMPOSE * * UPPERCASE: Performs unicode upper case * LOWERCASE: Performs unicode lower case * WORDBOUND: Insert Word Bounding Marks(UTF8PROC_WB_MARK) between words in the * given unicode string. (see UAX#29) * For instance: |a|$|-|34,567.14|%|b| * NOTE: You can't use WORDBOUND with CHARBOUND. * SENTENCEBOUND: Insert sentences Bounding Marks(UTF8PROC_SB_MARK) between * sentences in the given unicode string. (see UAX#29) * For instance: |("Go.")|(He did.)| * NOTE: You can't use SENTENCEBOUND with CHARBOUND. * UTF8PROC_UTF16: This is mostly for internal use. Please use utf16_* methods * if you want UTF16 support. * UTF8PROC_REMOVE_DIACRITIC: Remove the "Diacritic" code points * */ #define UTF8PROC_ERROR_NOMEM -1 #define UTF8PROC_ERROR_OVERFLOW -2 #define UTF8PROC_ERROR_INVALIDUTF8 -3 #define UTF8PROC_ERROR_NOTASSIGNED -4 #define UTF8PROC_ERROR_INVALIDOPTS -5 #ifdef _MSC_VER #include typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef signed __int8 int8_t; typedef signed __int16 int16_t; typedef signed __int32 int32_t; #define ssize_t SSIZE_T #else #include #endif #ifndef SSIZE_MAX #define SSIZE_MAX 0x7FFFFFFF #endif /* * Error codes being returned by almost all functions: * ERROR_NOMEM: Memory could not be allocated. * ERROR_OVERFLOW: The given string is too long to be processed. * ERROR_INVALIDUTF8: The given string is not a legal UTF-8 string. * ERROR_NOTASSIGNED: The REJECTNA flag was set, * and an unassigned code point was found. * ERROR_INVALIDOPTS: Invalid options have been used. */ typedef int16_t utf8proc_propval_t; typedef struct utf8proc_property_struct { utf8proc_propval_t category; utf8proc_propval_t combining_class; utf8proc_propval_t bidi_class; utf8proc_propval_t decomp_type; const int32_t decomp_mapping; int32_t uppercase_mapping; int32_t lowercase_mapping; int32_t titlecase_mapping; int32_t comb1st_index; int32_t comb2nd_index; const int32_t casefold_mapping; unsigned word_bound_attr:4; unsigned sentence_bound_attr:4; unsigned comp_exclusion:1; unsigned ignorable:1; unsigned control_boundary:1; unsigned extend:1; unsigned bidi_mirrored:1; unsigned excl_compression:1; unsigned is_diacritic:1; } utf8proc_property_t; typedef struct { uint8_t cluster; // Store last cluster bounding property uint8_t word; // Store last word bounding property int32_t TBD_stack[512]; // Stack for storing TBD chars int32_t *TBD_heap; // Use heap if upon stack does not enough. int32_t TBD_buf_size; uint8_t sb_attr_queue[2]; // Store history property for sentence bounding. // The queue length must be two -- it rest with // the sentence breaking algorithm. int (*filter_callback)(int32_t codepoint); // A pointer to user-defined filters }bound_attr_t; #define UTF8PROC_CATEGORY_LU 1 #define UTF8PROC_CATEGORY_LL 2 #define UTF8PROC_CATEGORY_LT 3 #define UTF8PROC_CATEGORY_LM 4 #define UTF8PROC_CATEGORY_LO 5 #define UTF8PROC_CATEGORY_MN 6 #define UTF8PROC_CATEGORY_MC 7 #define UTF8PROC_CATEGORY_ME 8 #define UTF8PROC_CATEGORY_ND 9 #define UTF8PROC_CATEGORY_NL 10 #define UTF8PROC_CATEGORY_NO 11 #define UTF8PROC_CATEGORY_PC 12 #define UTF8PROC_CATEGORY_PD 13 #define UTF8PROC_CATEGORY_PS 14 #define UTF8PROC_CATEGORY_PE 15 #define UTF8PROC_CATEGORY_PI 16 #define UTF8PROC_CATEGORY_PF 17 #define UTF8PROC_CATEGORY_PO 18 #define UTF8PROC_CATEGORY_SM 19 #define UTF8PROC_CATEGORY_SC 20 #define UTF8PROC_CATEGORY_SK 21 #define UTF8PROC_CATEGORY_SO 22 #define UTF8PROC_CATEGORY_ZS 23 #define UTF8PROC_CATEGORY_ZL 24 #define UTF8PROC_CATEGORY_ZP 25 #define UTF8PROC_CATEGORY_CC 26 #define UTF8PROC_CATEGORY_CF 27 #define UTF8PROC_CATEGORY_CS 28 #define UTF8PROC_CATEGORY_CO 29 #define UTF8PROC_CATEGORY_CN 30 #define UTF8PROC_BIDI_CLASS_L 1 #define UTF8PROC_BIDI_CLASS_LRE 2 #define UTF8PROC_BIDI_CLASS_LRO 3 #define UTF8PROC_BIDI_CLASS_R 4 #define UTF8PROC_BIDI_CLASS_AL 5 #define UTF8PROC_BIDI_CLASS_RLE 6 #define UTF8PROC_BIDI_CLASS_RLO 7 #define UTF8PROC_BIDI_CLASS_PDF 8 #define UTF8PROC_BIDI_CLASS_EN 9 #define UTF8PROC_BIDI_CLASS_ES 10 #define UTF8PROC_BIDI_CLASS_ET 11 #define UTF8PROC_BIDI_CLASS_AN 12 #define UTF8PROC_BIDI_CLASS_CS 13 #define UTF8PROC_BIDI_CLASS_NSM 14 #define UTF8PROC_BIDI_CLASS_BN 15 #define UTF8PROC_BIDI_CLASS_B 16 #define UTF8PROC_BIDI_CLASS_S 17 #define UTF8PROC_BIDI_CLASS_WS 18 #define UTF8PROC_BIDI_CLASS_ON 19 #define UTF8PROC_DECOMP_TYPE_FONT 1 #define UTF8PROC_DECOMP_TYPE_NOBREAK 2 #define UTF8PROC_DECOMP_TYPE_INITIAL 3 #define UTF8PROC_DECOMP_TYPE_MEDIAL 4 #define UTF8PROC_DECOMP_TYPE_FINAL 5 #define UTF8PROC_DECOMP_TYPE_ISOLATED 6 #define UTF8PROC_DECOMP_TYPE_CIRCLE 7 #define UTF8PROC_DECOMP_TYPE_SUPER 8 #define UTF8PROC_DECOMP_TYPE_SUB 9 #define UTF8PROC_DECOMP_TYPE_VERTICAL 10 #define UTF8PROC_DECOMP_TYPE_WIDE 11 #define UTF8PROC_DECOMP_TYPE_NARROW 12 #define UTF8PROC_DECOMP_TYPE_SMALL 13 #define UTF8PROC_DECOMP_TYPE_SQUARE 14 #define UTF8PROC_DECOMP_TYPE_FRACTION 15 #define UTF8PROC_DECOMP_TYPE_COMPAT 16 XQILLA_API const char* utf8proc_version(void); XQILLA_API const char* utf8proc_errmsg(ssize_t errcode); /* * Returns a static error string for the given error code. */ ssize_t utf8proc_iterate(const uint8_t *str, ssize_t strlen, int32_t *dst); ssize_t utf16proc_iterate(const uint16_t *str, ssize_t strlen, int32_t *dst); /* * Reads a single char from the UTF-8 sequence being pointed to by 'str'. * The maximum number of bytes read is 'strlen', unless 'strlen' is * negative. * If a valid unicode char could be read, it is stored in the variable * being pointed to by 'dst', otherwise that variable will be set to -1. * In case of success the number of bytes read is returned, otherwise a * negative error code is returned. */ XQILLA_API int utf8proc_codepoint_valid(int32_t uc); /* * Returns 1, if the given unicode code-point is valid, otherwise 0. */ XQILLA_API ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst); XQILLA_API ssize_t utf16proc_encode_char(int32_t uc, uint16_t *dst); /* * Encodes the unicode char with the code point 'uc' as an UTF-8 string in * the byte array being pointed to by 'dst'. This array has to be at least * 4 bytes long. * In case of success the number of bytes written is returned, * otherwise 0. * This function does not check if 'uc' is a valid unicode code point. */ XQILLA_API const utf8proc_property_t *utf8proc_get_property(int32_t uc); /* * Returns a pointer to a (constant) struct containing information about * the unicode char with the given code point 'uc'. * If the character is not existent a pointer to a special struct is * returned, where 'category' is a NULL pointer. * WARNING: The parameter 'uc' has to be in the range of 0x0000 to * 0x10FFFF, otherwise the program might crash! */ XQILLA_API ssize_t utf8proc_flush(int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); /* * Flush all the "TBD" chars and return them. You only need it when you call * utf8proc_decompose_char() with option WORDBOUND or SENTENCEBOUND in a loop * - call it in the end of the loop, otherwish may cause memory leak! */ XQILLA_API void utf8proc_init_bound_attr(bound_attr_t* attr); /* * Init the special bound_attr_t object. */ XQILLA_API ssize_t utf8proc_decompose_char( int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); XQILLA_API ssize_t utf16proc_decompose_char( int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); /* * Writes a decomposition of the unicode char 'uc' into the array being * pointed to by 'dst'. Note that the argument last_bound_attr has to be * initialized by utf8proc_init_bound_attr() before being used. * * Following flags in the 'options' field are regarded: * REJECTNA: an unassigned unicode code point leads to an error * IGNORE: "default ignorable" chars are stripped * CASEFOLD: unicode casefolding is applied * COMPAT: replace certain characters with their * compatibility decomposition * CHARBOUND: Inserts 0xFF bytes before each grapheme cluster * LUMP: lumps certain different characters together * STRIPMARK: removes all character marks * The pointer 'last_bound_attr' has to point to an integer variable which * is storing the last character boundary class, if the CHARBOUND option * is used. * In case of success the number of chars written is returned, * in case of an error, a negative error code is returned. * If the number of written chars would be bigger than 'bufsize', * the buffer (up to 'bufsize') has inpredictable data, and the needed * buffer size is returned. * WARNING: The parameter 'uc' has to be in the range of 0x0000 to * 0x10FFFF, otherwise the program might crash! * * You can defined a filter function and let utf8proc_decompose_with_filter() * to filter codepoints for you. Here is a example: * int filter_callback(int32_t ch) { * if(isalnum(ch)) * return 1; // non-zero means legal * return 0; // zero means illegal * } * */ XQILLA_API ssize_t utf8proc_decompose( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options ); XQILLA_API ssize_t utf8proc_decompose_with_filter( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options, int (*filter_callback)(int32_t codepoint) ); XQILLA_API ssize_t utf16proc_decompose( const uint16_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options ); /* * Does the same as 'utf8proc_decompose_char', but acts on a whole UTF-8 * string, and orders the decomposed sequences correctly. * If the NULLTERM flag in 'options' is set, processing will be stopped, * when a NULL byte is encounted, otherwise 'strlen' bytes are processed. * The result in form of unicode code points is written into the buffer * being pointed to by 'buffer', having the length of 'bufsize' entries. * In case of success the number of chars written is returned, * in case of an error, a negative error code is returned. * If the number of written chars would be bigger than 'bufsize', * the buffer (up to 'bufsize') has inpredictable data, and the needed * buffer size is returned. */ XQILLA_API ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options); XQILLA_API ssize_t utf16proc_reencode(int32_t *buffer, ssize_t length, int options); /* * Reencodes the sequence of unicode characters given by the pointer * 'buffer' and 'length' as UTF-8. * The result is stored in the same memory area where the data is read. * Following flags in the 'options' field are regarded: * NLF2LS: converts LF, CRLF, CR and NEL into LS * NLF2PS: converts LF, CRLF, CR and NEL into PS * NLF2LF: converts LF, CRLF, CR and NEL into LF * STRIPCC: strips or converts all non-affected control characters * COMPOSE: tries to combine decomposed characters into composite * characters * STABLE: prohibits combining characters which would violate * the unicode versioning stability * In case of success the length of the resulting UTF-8 string is * returned, otherwise a negative error code is returned. * WARNING: The amount of free space being pointed to by 'buffer', has to * exceed the amount of the input data by one byte, and the * entries of the array pointed to by 'str' have to be in the * range of 0x0000 to 0x10FFFF, otherwise the program might * crash! */ XQILLA_API ssize_t utf8proc_map( const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options ); XQILLA_API ssize_t utf16proc_map( const uint16_t *str, ssize_t strlen, uint16_t **dstptr, int options ); /* * Maps the given UTF-8 string being pointed to by 'str' to a new UTF-8 * string, which is allocated dynamically, and afterwards pointed to by * the pointer being pointed to by 'dstptr'. * If the NULLTERM flag in the 'options' field is set, the length is * determined by a NULL terminator, otherwise the parameter 'strlen' is * evaluated to determine the string length, but in any case the result * will be NULL terminated (though it might contain NULL characters * before). Other flags in the 'options' field are passed to the functions * defined above, and regarded as described. * In case of success the length of the new string is returned, * otherwise a negative error code is returned. * NOTICE: The memory of the new UTF-8 string will have been allocated with * 'malloc', and has theirfore to be freed with 'free'. */ XQILLA_API uint8_t *utf8proc_NFD(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFC(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFKD(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFKC(const uint8_t *str); XQILLA_API uint16_t *utf16proc_NFD(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFC(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFKD(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFKC(const uint16_t *str); /* * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC * normalized version of the null-terminated string 'str'. */ #endif XQilla-2.3.4/include/xqilla/utils/XStr.hpp0000644001725400016040000000112413232476424015332 00000000000000#ifndef _XSTR_HPP #define _XSTR_HPP #include #include #include // From Xerces 2.0 class XQILLA_API XStr { public : XStr(const char* const toTranscode, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = 0); ~XStr(); const XMLCh *str() const { return str_; } XMLCh *adopt() { XMLCh *result = (XMLCh*)str_; str_ = 0; return result; } private : XMLCh *str_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #define X(strg) XStr(strg).str() #endif XQilla-2.3.4/include/xqilla/utils/XPath2NSUtils.hpp0000644001725400016040000000306613273140037017022 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _V2NSUTILS_HPP #define _V2NSUTILS_HPP #include #include class XPath2MemoryManager; class XQILLA_API XPath2NSUtils { public: /// Get the proper local name (not null if the node is DOM level 1...) static const XMLCh* getLocalName(const XMLCh* name); ///returns the prefix part of a xs:foo string or a zero length string if no prefix static const XMLCh* getPrefix(const XMLCh* name, XPath2MemoryManager* memMgr); ///form a qualified name from a namespace and a name static const XMLCh* qualifyName(const XMLCh* prefix, const XMLCh* name, XPath2MemoryManager* memMgr); ///gets the owner element of an attribute, and the parent of any other node static XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getParent(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); }; #endif XQilla-2.3.4/include/xqilla/framework/0000755001725400016040000000000013273141210014623 500000000000000XQilla-2.3.4/include/xqilla/framework/StringPool.hpp0000644001725400016040000000561013273140037017364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __STRINGPOOL_HPP #define __STRINGPOOL_HPP #include #include #include #include //Added so xqilla will compile under CC on Solaris #include // Added so xqilla will compile on SunOS 10 using STLPort #include class XQILLA_API StringPool { public: StringPool(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); ~StringPool(); /** Returns a copy of the given string */ const XMLCh* getPooledString(const XMLCh *src); /** Returns a copy of the given string, with given length */ const XMLCh* getPooledString(const XMLCh *src, unsigned int length); /** Returns a copy of the transcoding of the given string */ const XMLCh* getPooledString(const char *src); unsigned int getCount() const { return _count; } unsigned int getHits() const { return _hits; } unsigned int getMisses() const { return _misses; } unsigned int getTooBig() const { return _toobig; } void dumpStatistics() const; private: StringPool(const StringPool&); StringPool &operator=(const StringPool&); static unsigned int hash(const XMLCh *v, unsigned int length); const XMLCh *replicate(const XMLCh *v, unsigned int length) const; void resize(); class Bucket { public: Bucket(const XMLCh *v, unsigned int l, unsigned int h, Bucket *n) : value(v), length(l), hashValue(h), next(n) {} const XMLCh *value; unsigned int length; unsigned int hashValue; Bucket *next; }; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm; Bucket **_bucketList; unsigned int _modulus; unsigned int _count; unsigned int _hits; unsigned int _misses; unsigned int _toobig; }; inline unsigned int StringPool::hash(const XMLCh *v, unsigned int length) { unsigned int hashVal = 0; while(length) { hashVal += (hashVal * 37) + (hashVal >> 24) + (unsigned int)(*v); ++v; --length; } return hashVal; } inline const XMLCh *StringPool::replicate(const XMLCh *v, unsigned int length) const { unsigned int size = length * sizeof(XMLCh); XMLCh *ret = (XMLCh*)_mm->allocate(size + sizeof(XMLCh)); memcpy(ret, v, size); ret[length] = 0; return ret; } #endif XQilla-2.3.4/include/xqilla/framework/ReferenceCounted.hpp0000644001725400016040000000603413273140037020505 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REFERENCECOUNTED_HPP #define _REFERENCECOUNTED_HPP #include #include // for null RefCountPointer instances #define NULLRCP ((void *)0) /** Super class for reference counted classes */ class XQILLA_API ReferenceCounted { public: ReferenceCounted() : _ref_count(0) {} virtual ~ReferenceCounted() {} /// Increment the reference count void incrementRefCount() const { ++const_cast(_ref_count); } /// Decrement the reference count, deleting if it becomes zero virtual void decrementRefCount() const { if(--const_cast(_ref_count) == 0) { delete this; } } unsigned int getRefCount() const { return _ref_count; } protected: unsigned int _ref_count; // mutable }; /** Super class of all the reference counted wrappers for Items */ template class RefCountPointer { public: RefCountPointer(T *p = 0) : _p(p) { if(_p != 0) _p->incrementRefCount(); } template RefCountPointer(const RefCountPointer &o) : _p((T*)(T2*)o) { if(_p != 0) _p->incrementRefCount(); } RefCountPointer(const RefCountPointer &o) : _p(o._p) { if(_p != 0) _p->incrementRefCount(); } RefCountPointer &operator=(const RefCountPointer &o) { if(_p != o._p) { if(_p != 0) _p->decrementRefCount(); _p = o._p; if(_p != 0) _p->incrementRefCount(); } return *this; } ~RefCountPointer() { if(_p != 0) _p->decrementRefCount(); } T *operator->() const { return _p; } operator T*() const { return _p; } T *get() const { return _p; } bool isNull() const { return (_p == 0); } bool notNull() const { return (_p != 0); } protected: T *_p; }; template inline bool operator==(const RefCountPointer &a, const RefCountPointer &b) { return (void*)(T1*)a == (void*)(T2*)b; } template inline bool operator!=(const RefCountPointer &a, const RefCountPointer &b) { return (void*)(T1*)a != (void*)(T2*)b; } template inline bool operator==(const RefCountPointer &a, void *b) { return (T*)a == (T*)b; } template inline bool operator!=(const RefCountPointer &a, void *b) { return (T*)a != (T*)b; } #endif XQilla-2.3.4/include/xqilla/framework/XPath2MemoryManager.hpp0000644001725400016040000002034613273140037021061 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2MEMORYMANAGER_HPP #define __XPATH2MEMORYMANAGER_HPP #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; class XMLGrammarPool; XERCES_CPP_NAMESPACE_END class VariableStore; class VariableTypeStore; class DynamicContext; class Collation; class CollationHelper; class XQillaNSResolver; class ATDecimalOrDerived; class StringPool; class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager { public: virtual ~XPath2MemoryManager() {} /** Use with extreme caution! */ virtual void reset() = 0; /** Returns a copy of the given string */ virtual const XMLCh* getPooledString(const XMLCh *src) = 0; virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0; virtual const XMLCh* getPooledString(const char *src) = 0; // from MemoryManager #if _XERCES_VERSION >= 30000 virtual void* allocate(XMLSize_t numElements) = 0; #else virtual void* allocate(size_t numElements) = 0; #endif virtual void deallocate(void* p) = 0; /** create a collation */ virtual Collation* createCollation(CollationHelper* helper) = 0; /** create a resolver */ virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0; /** create a store for variables */ virtual VariableTypeStore* createVariableTypeStore() = 0; /** create a ATDecimalOrDerived for the given integer */ virtual ATDecimalOrDerived* createInteger(int value) = 0; virtual void dumpStatistics() const = 0; virtual size_t getAllocatedObjectCount() const = 0; virtual size_t getTotalAllocatedMemory() const = 0; virtual const StringPool *getStringPool() const = 0; };//XPath2MemoryManager template class XQillaAllocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef XQillaAllocator<_Tp1> other; }; // Should never be used - for compiling on AIX only XQillaAllocator() { assert(false); } XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { _memMgr=memMgr; } // define a copy constructor, because we don't want to copy the singleton object XQillaAllocator(const XQillaAllocator<_Tp>& o) { _memMgr=o._memMgr; } #if _MSC_VER >= 1500 // Needed for Visual Studio 2008 template XQillaAllocator(const XQillaAllocator<_Tp1>& o) { _memMgr = o._memMgr; } #endif pointer allocate(size_t _n, const void* = 0) { #ifndef _MSC_VER if(_n==1) return (pointer)_singleton; #endif //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl; if(_memMgr) return _n != 0 ? static_cast(_memMgr->allocate(_n*sizeof(_Tp))) : 0; else return _n != 0 ? static_cast(malloc(_n*sizeof(_Tp))) : 0; } void deallocate(void* _p, size_t _n) { //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl; if(_p) { if(_p!=_singleton) { if(_memMgr) _memMgr->deallocate(_p); else free(_p); } } } void construct(pointer _p, const_reference _v) { new ((void *)_p) _Tp(_v); } void destroy(pointer _p) { _p->~_Tp(); } size_type max_size() const { return 0xFFFFFFFF; } size_type max_size(size_type) const { return 0xFFFFFFFF; } bool operator==(const XQillaAllocator<_Tp>& o) const { return &o == this; } bool operator!=(const XQillaAllocator<_Tp>& o) const { return &o != this; } bool operator!=(XQillaAllocator<_Tp>& o) { return _memMgr != o._memMgr; } char _singleton[sizeof(_Tp)]; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr; }; // --------------------------------------------------------------------------- // // Operator new. Global overloaded version, lets any object be allocated on // the heap owned by a MemoryManager. // // --------------------------------------------------------------------------- inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { void *p = memMgr->allocate(amt); return p; } inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { memMgr->deallocate(ptr); } template class AutoRelease { public: AutoRelease(TYPE *p) : p_(p) {} ~AutoRelease() { if(p_ != 0) p_->release(); } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { if(p_ != 0) p_->release(); p_ = p; } private: AutoRelease(const AutoRelease &); AutoRelease &operator=(const AutoRelease &); TYPE *p_; }; template class AutoDelete { public: AutoDelete(TYPE *p) : p_(p) {} ~AutoDelete() { delete p_; } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { delete p_; p_ = p; } private: AutoDelete(const AutoDelete &); AutoDelete &operator=(const AutoDelete &); TYPE *p_; }; template class AutoDeleteArray { public: AutoDeleteArray(TYPE *p) : p_(p) {} ~AutoDeleteArray() { delete [] p_; } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { delete [] p_; p_ = p; } private: AutoDeleteArray(const AutoDeleteArray &); AutoDeleteArray &operator=(const AutoDeleteArray &); TYPE *p_; }; template class AutoDeallocate { public: AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE)) : p_(0), mmgr_(mmgr) { p_ = (TYPE*)mmgr_->allocate(size); } AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr) : p_(p), mmgr_(mmgr) {} ~AutoDeallocate() { if(p_ != 0) mmgr_->deallocate((void*)p_); } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { if(p_ != 0) mmgr_->deallocate((void*)p_); p_ = p; } private: AutoDeallocate(const AutoDeallocate &); AutoDeallocate &operator=(const AutoDeallocate &); TYPE *p_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_; }; #endif //__XPATH2MEMORYMANAGER_HPP XQilla-2.3.4/include/xqilla/framework/XQillaExport.hpp0000644001725400016040000000411613273140037017660 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPORT_HPP #define __XQILLAEXPORT_HPP /* * This define tells VS8 not to give a warning when we use strcpy() * instead of the MS secure function strcpy_s(). */ #ifdef _MSC_VER #define WIN32 1 #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE 1 #endif #endif /* * Building statically on Windows: * * 1) Compile Xerces-C with XERCES_STATIC_LIBRARY defined to get a static library * 2) Compile XQilla with XQILLA_API defined to nothing, to compile without * the DLL import/exports */ /* * The following ifdef block is the standard way of creating macros which * make exporting from a DLL simpler. All files within this DLL are * compiled with the XQILLA_APIS symbol defined on the command line. * this symbol should not be defined on any project that uses this DLL. * This way any other project whose source files include this file see * XQILLA_API functions as being imported from a DLL, wheras this DLL * sees symbols defined with this macro as being exported. */ #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) # if !defined(XQILLA_API) # if defined(XQILLA_APIS) # define XQILLA_API __declspec(dllexport) # else # define XQILLA_API __declspec(dllimport) # endif # endif # if !defined(__MINGW32__) # pragma warning(disable: 4251 4786 4101 4290) # endif #else # define XQILLA_API #endif #endif XQilla-2.3.4/include/xqilla/framework/XPath2MemoryManagerImpl.hpp0000644001725400016040000000355113273140037021702 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2MEMORYMANAGERIMPL_HPP #define __XPATH2MEMORYMANAGERIMPL_HPP #include #include #if 0 // Turn OFF use of windows heap by default. // There is a fragmentation problem resulting // in less available memory #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) #define WIN_USE_HEAP #endif #endif class XQILLA_API XPath2MemoryManagerImpl : public BaseMemoryManager { public: XPath2MemoryManagerImpl(); virtual ~XPath2MemoryManagerImpl(); #if defined(WIN_USE_HEAP) #if _XERCES_VERSION >= 30000 virtual void *allocate(XMLSize_t numElements); #else virtual void *allocate(size_t numElements); #endif virtual void deallocate(void* p); #endif protected: #if defined(WIN_USE_HEAP) virtual void initialise(); virtual void releaseAll(); virtual void *internal_allocate(size_t size) { return 0; } virtual void internal_deallocate(void *p) {} #else virtual void *internal_allocate(size_t size); virtual void internal_deallocate(void *p); #endif private: #if defined(WIN_USE_HEAP) HANDLE fHeap; #endif }; #endif //__XPATH2MEMORYMANAGERIMPL_HPP XQilla-2.3.4/include/xqilla/framework/ProxyMemoryManager.hpp0000644001725400016040000000241013273140037021064 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __PROXYMEMORYMANAGER_HPP #define __PROXYMEMORYMANAGER_HPP #include #include class XQILLA_API ProxyMemoryManager : public BaseMemoryManager { public: ProxyMemoryManager(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent); virtual ~ProxyMemoryManager(); protected: virtual void *internal_allocate(size_t size); virtual void internal_deallocate(void *p); private: XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent_; }; #endif //__PROXYMEMORYMANAGER_HPP XQilla-2.3.4/include/xqilla/framework/BaseMemoryManager.hpp0000644001725400016040000000727113273140037020627 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __BASEMEMORYMANAGER_HPP #define __BASEMEMORYMANAGER_HPP #include #include #include // Define ALLOCATE_IN_CHUNKS to 1 to allocate // CHUNK_SIZE blocks of memory at a time, and // carve the requested memory from them. The // DB XML benchmark suggests this behaves badly // with larger data sets. - jpcs #define ALLOCATE_IN_CHUNKS 0 #define DEBUG_MEMORY_ALLOCD 0x88884444 #define DEBUG_MEMORY_FREED 0x44442222 XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class VariableStore; class Collation; class CollationHelper; class XQillaNSResolver; class StringPool; class XQILLA_API BaseMemoryManager : public XPath2MemoryManager { public: virtual ~BaseMemoryManager(); // from MemoryManager #if _XERCES_VERSION >= 30000 virtual void* allocate(XMLSize_t numElements); #else virtual void* allocate(size_t numElements); #endif virtual void deallocate(void* p); virtual XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *getExceptionMemoryManager(); /** Returns a copy of the given string */ virtual const XMLCh* getPooledString(const XMLCh *src); virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length); /** Returns a copy of the transcoding of the given string */ virtual const XMLCh* getPooledString(const char *src); /** Use with extreme caution! */ virtual void reset(); virtual void dumpStatistics() const; virtual size_t getAllocatedObjectCount() const { return objectsAllocated_; } virtual size_t getTotalAllocatedMemory() const { return totalMemoryAllocated_; } virtual const StringPool *getStringPool() const { return fStringPool; } /** create a collation */ virtual Collation* createCollation(CollationHelper* helper); /** create a resolver */ virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode); /** create a store for variables */ virtual VariableTypeStore* createVariableTypeStore(); /** create a ATDecimalOrDerived for the given integer */ virtual ATDecimalOrDerived* createInteger(int value); protected: virtual void initialise(); virtual void releaseAll(); virtual void *internal_allocate(size_t size) = 0; virtual void internal_deallocate(void *p) = 0; struct XQILLA_API MemList { MemList *prev; MemList *next; size_t size; #if ALLOCATE_IN_CHUNKS size_t remaining; unsigned int allocCount; #endif #if DEBUG_MEMORY unsigned long magic; #endif }; #if ALLOCATE_IN_CHUNKS struct XQILLA_API MemAlloc { MemList *list; }; #endif MemList *fCurrentBlock; size_t objectsAllocated_; size_t totalMemoryAllocated_; StringPool *fStringPool; #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* fIntegerPool; #else XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* fIntegerPool; #endif }; #endif XQilla-2.3.4/include/xqilla/xqilla-dom3.hpp0000644001725400016040000000306613273140037015424 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include /** * \example dom-basic.cpp * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example dom-context-item.cpp * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ /** * \example dom-resolver.cpp * * This example shows an example of running multiple queries, using a DOMXPathNSResolver to resolve namespaces. */ XQilla-2.3.4/include/xqilla/update/0000755001725400016040000000000013273141210014110 500000000000000XQilla-2.3.4/include/xqilla/update/UInsertAfter.hpp0000644001725400016040000000302713273140037017124 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTAFTER_HPP #define _UINSERTAFTER_HPP #include #include class XQILLA_API UInsertAfter : public ASTNodeImpl { public: UInsertAfter(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.4/include/xqilla/update/UInsertAsLast.hpp0000644001725400016040000000344513273140037017256 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTASLAST_HPP #define _UINSERTASLAST_HPP #include #include #include #include class XQILLA_API UInsertAsLast : public ASTNodeImpl { public: UInsertAsLast(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } static bool checkNamespaceBinding(const ATQNameOrDerived::Ptr &qname, const Node::Ptr &node, DynamicContext *context, const LocationInfo *location); protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.4/include/xqilla/update/UReplaceValueOf.hpp0000644001725400016040000000303713273140037017534 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UREPLACEVALUEOF_HPP #define _UREPLACEVALUEOF_HPP #include #include class XQILLA_API UReplaceValueOf : public ASTNodeImpl { public: UReplaceValueOf(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *target_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/update/UTransform.hpp0000644001725400016040000000451713273140037016656 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UTRANSFORM_HPP #define _UTRANSFORM_HPP #include #include #include class XQILLA_API CopyBinding : public LocationInfo { public: CopyBinding(XPath2MemoryManager* memMgr, const XMLCh* variable, ASTNode* allValues); CopyBinding(XPath2MemoryManager* memMgr, const CopyBinding &o); const XMLCh *qname_, *uri_, *name_; StaticAnalysis src_; ASTNode *expr_; private: CopyBinding(const CopyBinding &o); }; typedef std::vector > VectorOfCopyBinding; class XQILLA_API UTransform : public ASTNodeImpl { public: UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, XPath2MemoryManager *expr); UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, DocumentCache::ValidationMode valMode, XPath2MemoryManager *expr); virtual ASTNode *staticResolution(StaticContext* context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags) const; const VectorOfCopyBinding *getBindings() const { return bindings_; } ASTNode *getModifyExpr() const { return modify_; } void setModifyExpr(ASTNode *modify) { modify_ = modify; } ASTNode *getReturnExpr() const { return return_; } void setReturnExpr(ASTNode *ret) { return_ = ret; } DocumentCache::ValidationMode getRevalidationMode() const { return valMode_; } protected: VectorOfCopyBinding* bindings_; ASTNode *modify_; ASTNode *return_; DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.4/include/xqilla/update/UInsertBefore.hpp0000644001725400016040000000303313273140037017262 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTBEFORE_HPP #define _UINSERTBEFORE_HPP #include #include class XQILLA_API UInsertBefore : public ASTNodeImpl { public: UInsertBefore(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.4/include/xqilla/update/UApplyUpdates.hpp0000644001725400016040000000310413273140037017305 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UAPPLYUPDATE_HPP #define _UAPPLYUPDATE_HPP #include #include #include class XQILLA_API UApplyUpdates : public ASTNodeImpl { public: UApplyUpdates(ASTNode *expr, XPath2MemoryManager* memMgr); UApplyUpdates(ASTNode *expr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } DocumentCache::ValidationMode getRevalidationMode() const { return valMode_; } protected: ASTNode *expr_; DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.4/include/xqilla/update/UReplace.hpp0000644001725400016040000000300313273140037016243 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UREPLACE_HPP #define _UREPLACE_HPP #include #include class XQILLA_API UReplace : public ASTNodeImpl { public: UReplace(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *target_; ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/update/UInsertInto.hpp0000644001725400016040000000302313273140037016770 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTINTO_HPP #define _UINSERTINTO_HPP #include #include class XQILLA_API UInsertInto : public ASTNodeImpl { public: UInsertInto(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.4/include/xqilla/update/URename.hpp0000644001725400016040000000276313273140037016113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _URENAME_HPP #define _URENAME_HPP #include #include class XQILLA_API URename : public ASTNodeImpl { public: URename(ASTNode *target, ASTNode *name, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getName() const { return name_; } void setName(ASTNode *name) { name_ = name; } protected: ASTNode *target_; ASTNode *name_; }; #endif XQilla-2.3.4/include/xqilla/update/PendingUpdateList.hpp0000644001725400016040000000545113273140037020137 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PENDINGUPDATELIST_HPP #define _PENDINGUPDATELIST_HPP #include #include #include #include class XQILLA_API PendingUpdate : public LocationInfo { public: /** * This enumeration is ordered according to the order * that the pending updates should be applied. */ enum Type { INSERT_INTO, INSERT_ATTRIBUTES, REPLACE_VALUE, RENAME, PUDELETE, INSERT_BEFORE, INSERT_AFTER, INSERT_INTO_AS_FIRST, INSERT_INTO_AS_LAST, REPLACE_ATTRIBUTE, REPLACE_NODE, REPLACE_ELEMENT_CONTENT, PUT }; PendingUpdate(Type type, const Node::Ptr &target, const LocationInfo *info) : type_(type), target_(target), value_() { setLocationInfo(info); } PendingUpdate(Type type, const Node::Ptr &target, const Item::Ptr &value, const LocationInfo *info) : type_(type), target_(target), value_(value) { setLocationInfo(info); } PendingUpdate(Type type, const Node::Ptr &target, const Sequence &value, const LocationInfo *info) : type_(type), target_(target), value_(value) { setLocationInfo(info); } Type getType() const { return type_; } const Node::Ptr &getTarget() const { return target_; } const Sequence &getValue() const { return value_; } private: Type type_; Node::Ptr target_; Sequence value_; }; typedef std::vector PendingUpdates; /** * The result of an updating expression */ class XQILLA_API PendingUpdateList { public: typedef PendingUpdates::iterator iterator; typedef PendingUpdates::const_iterator const_iterator; PendingUpdateList() {} PendingUpdateList(const PendingUpdate &update) { addUpdate(update); } iterator begin() { return updates_.begin(); } const_iterator begin() const { return updates_.begin(); } iterator end() { return updates_.end(); } const_iterator end() const { return updates_.end(); } void addUpdate(const PendingUpdate &update); void mergeUpdates(const PendingUpdateList &pul); private: PendingUpdates updates_; }; #endif XQilla-2.3.4/include/xqilla/update/UDelete.hpp0000644001725400016040000000256013273140037016101 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UDELETE_HPP #define _UDELETE_HPP #include #include class XQILLA_API UDelete : public ASTNodeImpl { public: UDelete(ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *expr_; }; #endif XQilla-2.3.4/include/xqilla/update/UInsertAsFirst.hpp0000644001725400016040000000303713273140037017437 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTASFIRST_HPP #define _UINSERTASFIRST_HPP #include #include class XQILLA_API UInsertAsFirst : public ASTNodeImpl { public: UInsertAsFirst(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.4/include/xqilla/update/FunctionPut.hpp0000644001725400016040000000274013273140037017030 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPUT_HPP #define _FUNCTIONPUT_HPP #include #include class XQILLA_API FunctionPut : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPut(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); FunctionPut(const XMLCh *baseURI, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const XMLCh *getBaseURI() const { return baseURI_; } private: const XMLCh *baseURI_; }; #endif XQilla-2.3.4/include/xqilla/operators/0000755001725400016040000000000013273141210014644 500000000000000XQilla-2.3.4/include/xqilla/operators/Except.hpp0000644001725400016040000000273313273140037016540 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Op Except The except operator takes two node sequences as operands and returns a sequence containing all the nodes that occur in the first operand but not in the second operand */ #ifndef _EXCEPT_HPP #define _EXCEPT_HPP #include #include #include #include class XQILLA_API Except : public XQOperator { public: static const XMLCh name[]; Except(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; private: bool sortAdded_; }; #endif XQilla-2.3.4/include/xqilla/operators/UnaryMinus.hpp0000644001725400016040000000262413273140037017421 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UNARYMINUS_HPP #define _UNARYMINUS_HPP #include #include class XQILLA_API UnaryMinus : public ArithmeticOperator { public: static const XMLCh name[]; UnaryMinus(bool positive, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; bool getIsPositive() const { return positive_; } private: bool positive_; }; #endif XQilla-2.3.4/include/xqilla/operators/Multiply.hpp0000644001725400016040000000242013273140037017120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Multiply operator function */ #ifndef _MULTIPLY_HPP #define _MULTIPLY_HPP #include #include /** OpTimes operator function*/ class XQILLA_API Multiply : public ArithmeticOperator { public: static const XMLCh name[]; Multiply(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _FUNCTIONOPTIMES_HPP XQilla-2.3.4/include/xqilla/operators/Minus.hpp0000644001725400016040000000224713273140037016403 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MINUS_HPP #define _MINUS_HPP #include #include class XQILLA_API Minus : public ArithmeticOperator { public: static const XMLCh name[]; Minus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/operators/Plus.hpp0000644001725400016040000000246213273140037016232 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PLUS_HPP #define _PLUS_HPP #include #include class XQILLA_API Plus : public ArithmeticOperator { public: static const XMLCh name[]; Plus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; static Item::Ptr plus(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context, const LocationInfo *info); }; #endif XQilla-2.3.4/include/xqilla/operators/Or.hpp0000644001725400016040000000236313273140037015667 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _OR_HPP #define _OR_HPP #include #include class XQILLA_API Or : public XQOperator { public: static const XMLCh name[]; Or(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/operators/GeneralComp.hpp0000644001725400016040000000433213273140037017501 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* General Comparison operator function */ #ifndef _GENERALCOMP_HPP #define _GENERALCOMP_HPP #include #include /** GeneralComp operator function*/ class XQILLA_API GeneralComp : public XQOperator { public: typedef enum { EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL } ComparisonOperation; static const XMLCh name[]; GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, Collation *collation, bool xpath1Compat, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ComparisonOperation getOperation() const { return operation_; } Collation *getCollation() const { return collation_; } bool getXPath1CompatibilityMode() const { return xpath1compat_; } static bool compare(GeneralComp::ComparisonOperation operation, AnyAtomicType::Ptr first, AnyAtomicType::Ptr second, Collation* collation, DynamicContext *context, bool xpath1compat, const LocationInfo *info); protected: ComparisonOperation operation_; Collation* collation_; bool xpath1compat_; }; #endif XQilla-2.3.4/include/xqilla/operators/Divide.hpp0000644001725400016040000000237613273140037016517 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Divide operator function */ #ifndef _DIVIDE_HPP #define _DIVIDE_HPP #include #include /** OpDivide operator function*/ class XQILLA_API Divide : public ArithmeticOperator { public: static const XMLCh name[]; Divide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _DIVIDE_HPP XQilla-2.3.4/include/xqilla/operators/Equals.hpp0000644001725400016040000000271013273140037016535 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EQUALS_HPP #define _EQUALS_HPP #include #include class Collation; class XQILLA_API Equals : public ComparisonOperator { public: static const XMLCh name[]; Equals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool equals(const Item::Ptr &arg1, const Item::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); static bool equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/operators/Intersect.hpp0000644001725400016040000000234713273140037017251 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _INTERSECT_HPP #define _INTERSECT_HPP #include #include class XQILLA_API Intersect : public XQOperator { public: static const XMLCh name[]; Intersect(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; private: bool sortAdded_; }; #endif XQilla-2.3.4/include/xqilla/operators/Union.hpp0000644001725400016040000000316413273140037016377 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Union function -- takes two sequences, and merge them */ #ifndef _UNION_HPP #define _UNION_HPP #include #include #include #include /** Union operator function*/ class XQILLA_API Union : public XQOperator { public: static const XMLCh name[]; Union(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; private: class UnionResult : public ResultImpl { public: UnionResult(const Union *op, int flags); Item::Ptr next(DynamicContext *context); private: const Union *_op; unsigned int _flags; unsigned int _index; Result _result; }; bool sortAdded_; }; #endif XQilla-2.3.4/include/xqilla/operators/IntegerDivide.hpp0000644001725400016040000000246213273140037020031 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Integer divide operator function */ #ifndef _INTEGER_DIVIDE_HPP #define _INTEGER_DIVIDE_HPP #include #include /** OpIntegerDivide operator function*/ class XQILLA_API IntegerDivide : public ArithmeticOperator { public: static const XMLCh name[]; IntegerDivide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _INTEGER_DIVIDE_HPP XQilla-2.3.4/include/xqilla/operators/ArithmeticOperator.hpp0000644001725400016040000000273013273140037021112 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ARITHMETICOPERATOR_HPP #define _ARITHMETICOPERATOR_HPP #include class AnyAtomicType; class XQILLA_API ArithmeticOperator : public XQOperator { public: ArithmeticOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; virtual void calculateStaticType() = 0; virtual Item::Ptr execute(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, DynamicContext *context) const = 0; protected: void calculateStaticTypeForNumerics(const StaticType &arg0, const StaticType &arg1); }; #endif XQilla-2.3.4/include/xqilla/operators/LessThan.hpp0000644001725400016040000000263613273140037017033 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LessThan operator function */ #ifndef _LESSTHAN_HPP #define _LESSTHAN_HPP #include #include class Collation; /** OpLessThan operator function*/ class XQILLA_API LessThan : public ComparisonOperator { public: static const XMLCh name[]; LessThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool less_than(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _LESSTHAN_HPP XQilla-2.3.4/include/xqilla/operators/ComparisonOperator.hpp0000644001725400016040000000260413273140037021133 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _COMPARISONOPERATOR_HPP #define _COMPARISONOPERATOR_HPP #include class AnyAtomicType; class XQILLA_API ComparisonOperator : public XQOperator { public: ComparisonOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; virtual bool execute(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, DynamicContext *context) const = 0; }; #endif XQilla-2.3.4/include/xqilla/operators/GreaterThan.hpp0000644001725400016040000000264013273140037017511 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* GreaterThan operator function */ #ifndef _GREATERTHAN_HPP #define _GREATERTHAN_HPP #include #include class Collation; /** OpGreaterThan operator function*/ class XQILLA_API GreaterThan : public ComparisonOperator { public: static const XMLCh name[]; GreaterThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool greater_than(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.4/include/xqilla/operators/OrderComparison.hpp0000644001725400016040000000272413273140037020416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ORDERCOMPARISON_HPP #define _ORDERCOMPARISON_HPP #include #include class XQILLA_API OrderComparison : public XQOperator { public: static const XMLCh name[]; ///testBefore should be set to true if you want to test that the first parameter is before the second. OrderComparison(const VectorOfASTNodes &args, bool testBefore, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; bool getTestBefore() const; private: bool _testBefore; }; #endif XQilla-2.3.4/include/xqilla/operators/GreaterThanEqual.hpp0000644001725400016040000000273713273140037020510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* GreaterThanEqual operator function */ #ifndef _GREATERTHANEQUAL_HPP #define _GREATERTHANEQUAL_HPP #include #include class Collation; /** OpGreaterThanEqual operator function*/ class XQILLA_API GreaterThanEqual : public ComparisonOperator { public: static const XMLCh name[]; GreaterThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool greater_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _GREATERTHANEQUAL_HPP XQilla-2.3.4/include/xqilla/operators/Mod.hpp0000644001725400016040000000236213273140037016025 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Mod operator function */ #ifndef _MOD_HPP #define _MOD_HPP #include #include /** OpMod operator function*/ class XQILLA_API Mod : public ArithmeticOperator { public: static const XMLCh name[]; Mod(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _FUNCTIONOPMOD_HPP XQilla-2.3.4/include/xqilla/operators/LessThanEqual.hpp0000644001725400016040000000270713273140037020022 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LessThanEqual operator function */ #ifndef _LESSTHANEQUAL_HPP #define _LESSTHANEQUAL_HPP #include #include class Collation; /** OpLessThanEqual operator function*/ class XQILLA_API LessThanEqual : public ComparisonOperator { public: static const XMLCh name[]; LessThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool less_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _LESSTHANEQUAL_HPP XQilla-2.3.4/include/xqilla/operators/And.hpp0000644001725400016040000000236713273140037016015 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _AND_HPP #define _AND_HPP #include #include class XQILLA_API And : public XQOperator { public: static const XMLCh name[]; And(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/operators/NodeComparison.hpp0000644001725400016040000000243313273140037020225 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NODECOMPARISON_HPP #define _NODECOMPARISON_HPP #include #include class XQILLA_API NodeComparison : public XQOperator { public: static const XMLCh name[]; NodeComparison(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.4/include/xqilla/operators/NotEquals.hpp0000644001725400016040000000264513273140037017225 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* NotEquals operator function */ #ifndef _NOTEQUALS_HPP #define _NOTEQUALS_HPP #include #include class Collation; /** OpNotEquals operator function*/ class XQILLA_API NotEquals : public ComparisonOperator { public: static const XMLCh name[]; NotEquals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool not_equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _NOTEQUALS_HPP XQilla-2.3.4/include/xqilla/xqts/0000755001725400016040000000000013273141210013625 500000000000000XQilla-2.3.4/include/xqilla/xqts/TestSuiteResultListener.hpp0000644001725400016040000001707013273140037021127 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITERESULTLISTENER_HPP #define _TESTSUITERESULTLISTENER_HPP #include #include #include #include #include #include class TestCase; class XQILLA_API TestSuiteResultListener { public: virtual ~TestSuiteResultListener() {} virtual void reportVersion(const std::string &version, bool update) {} virtual void startTestGroup(const std::string &name) = 0; virtual void endTestGroup() = 0; virtual void reportPass(const TestCase &testCase, const std::string &comment) = 0; virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment) = 0; virtual void reportSkip(const TestCase &testCase, const std::string &comment) = 0; virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment) = 0; virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment) = 0; virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment) = 0; virtual bool isSkippedTest(const std::string &testName) const { return false;} protected: TestSuiteResultListener() {} }; class XQILLA_API KnownErrorChecker : public TestSuiteResultListener { public: KnownErrorChecker(TestSuiteResultListener *results); virtual void reportVersion(const std::string &version, bool update); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); bool printReport() const; bool loadErrors(const std::string &errorFile); bool saveErrors(const std::string &errorFile) const; bool isSkippedTest(const std::string &testName) const; class Error { public: std::string reason; std::string comment; std::string action; }; private: TestSuiteResultListener *results_; // testName -> (reason, comment, action) std::map errors_; std::map nowPass_; std::vector nowFail_; }; class XQILLA_API ConsoleResultListener : public TestSuiteResultListener { public: ConsoleResultListener(); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); bool printReport() const; private: void testCaseToErrorStream(const TestCase &testCase); private: std::string m_szFullTestName; // testname -> "p|s|i|f" std::map testsRecorded_; unsigned int m_nTotalTests, m_nPassedTests, m_nSkippedTests, m_nInspectTests; int testDepth_; bool needNewline_; std::ostringstream errorStream_; }; class XQILLA_API XMLReportResultListener : public TestSuiteResultListener { public: XMLReportResultListener(); virtual void reportVersion(const std::string &version, bool update); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); void setImplementation(const std::string &name, const std::string &version = "", const std::string &description = ""); void setOrganization(const std::string &name, const std::string &website = ""); void setSubmittor(const std::string &name, const std::string &email = ""); void setTestRun(const std::string &transformation, const std::string &comments = ""); void setAnonymous(bool anon); void addImplementationDefinedItem(const std::string &name, const std::string &value); void addFeature(const std::string &name, bool supported); void addContextProperty(const std::string &name, const std::string &contextType, const std::string &value); void printReport() const; private: bool update_; std::string version_; std::string implName_, implVersion_, implDescription_; std::string orgName_, orgWebsite_; std::string submittorName_, submittorEmail_; std::string testTransformation_, testComments_; bool anonymous_; std::map implDefinedItems_; std::map features_; std::map > contextProperties_; std::string previousTestName_; std::ostringstream tmpStream_; std::ostringstream outputStream_; }; #endif XQilla-2.3.4/include/xqilla/xqts/TestSuiteParser.hpp0000644001725400016040000000573713273140037017406 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITEPARSERHANDLER_HPP #define _TESTSUITEPARSERHANDLER_HPP #include #include #include #include #include #include #include class TestSuiteRunner; class XQILLA_API TestCase { public: std::string name; std::string description; bool updateTest; bool xsltTest; int stateTime; std::string queryURL; std::string query; std::string contextItem; std::string defaultCollection; std::string templateName; std::map inputURIVars; std::map inputVars; std::map extraVars; std::map inputParams; std::map outputFiles; std::list > moduleFiles; std::list expectedErrors; }; class XQILLA_API TestSuiteParser : private XERCES_CPP_NAMESPACE_QUALIFIER DefaultHandler { public: TestSuiteParser(const std::string &pathToTestSuite, TestSuiteRunner *runner); void run(); void handleUnknownElement(const std::string &elementName); private: virtual void startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attributes); virtual void endElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname); #if _XERCES_VERSION >= 30000 virtual void characters(const XMLCh* const chars, const XMLSize_t length); #else virtual void characters(const XMLCh* const chars, const unsigned int length); #endif virtual void error(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); virtual void fatalError(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); private: TestSuiteRunner *runner_; bool xslt_; std::string xsltGroupName_; XERCES_CPP_NAMESPACE_QUALIFIER XMLURL urlXQTSCatalog_, urlXQTSQueriesDirectory_, urlXQTSResultsDirectory_, urlBasePath_, urlBasePathReferenceFiles_, urlQuery_; std::set unknownElements_; bool readingChars_; std::string chars_; std::string variableBoundToInput_, compareMethod_, namespace_, collectionID_; TestCase testCase_; }; #endif XQilla-2.3.4/include/xqilla/xqts/TestSuiteRunner.hpp0000644001725400016040000000417013273140037017411 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITERUNNER_HPP #define _TESTSUITERUNNER_HPP #include #include #include #include class TestSuiteResultListener; class TestCase; class XQILLA_API TestSuiteRunner { public: virtual ~TestSuiteRunner() {} TestSuiteResultListener *getResultListener() { return m_results; } virtual void unknownElement(const std::string &name, std::map &attrs) {} virtual void addSource(const std::string &id, const std::string &filename, const std::string &schema) = 0; virtual void addSchema(const std::string &id, const std::string &filename, const std::string &uri) = 0; virtual void addModule(const std::string &id, const std::string &filename) = 0; virtual void addCollection(const std::string &id) {} virtual void addCollectionDoc(const std::string &id, const std::string &filename) = 0; virtual void startTestGroup(const std::string &name) = 0; virtual void endTestGroup() = 0; virtual void runTestCase(const TestCase &testCase) = 0; virtual void detectParserLang(const std::string &testSuiteNamespace) = 0; protected: TestSuiteRunner(TestSuiteResultListener *results) : m_results(results) {} void testResults(const TestCase &testCase, const std::string &results) const; void testErrors(const TestCase &testCase, const std::string &actualError) const; protected: TestSuiteResultListener *m_results; }; #endif XQilla-2.3.4/include/Makefile.am0000644001725400016040000004166013273140037013325 00000000000000nobase_include_HEADERS = \ xqc.h \ xqilla/xqilla-dom3.hpp \ xqilla/xqilla-simple.hpp \ xqilla/xqilla-xqc.h \ xqilla/ast/LocationInfo.hpp \ xqilla/ast/XQCastableAs.hpp \ xqilla/ast/XQMap.hpp \ xqilla/ast/XQCastAs.hpp \ xqilla/ast/XQContextItem.hpp \ xqilla/ast/XQCopy.hpp \ xqilla/ast/XQCopyOf.hpp \ xqilla/ast/XQFunction.hpp \ xqilla/ast/ASTNode.hpp \ xqilla/ast/XQIf.hpp \ xqilla/ast/ASTNodeImpl.hpp \ xqilla/ast/XQInlineFunction.hpp \ xqilla/ast/XQLiteral.hpp \ xqilla/ast/XQNav.hpp \ xqilla/ast/XQOperator.hpp \ xqilla/ast/XQSequence.hpp \ xqilla/ast/XQStep.hpp \ xqilla/ast/XQTreatAs.hpp \ xqilla/ast/XQFunctionCoercion.hpp \ xqilla/ast/XQVariable.hpp \ xqilla/ast/StaticAnalysis.hpp \ xqilla/ast/StaticType.hpp \ xqilla/ast/NumericFunction.hpp \ xqilla/ast/XQDOMConstructor.hpp \ xqilla/ast/XQDocumentConstructor.hpp \ xqilla/ast/XQElementConstructor.hpp \ xqilla/ast/XQAttributeConstructor.hpp \ xqilla/ast/XQNamespaceConstructor.hpp \ xqilla/ast/XQPIConstructor.hpp \ xqilla/ast/XQCommentConstructor.hpp \ xqilla/ast/XQTextConstructor.hpp \ xqilla/ast/XQFunctionCall.hpp \ xqilla/ast/XQFunctionConversion.hpp \ xqilla/ast/XQFunctionDeref.hpp \ xqilla/ast/XQPartialApply.hpp \ xqilla/ast/XQFunctionRef.hpp \ xqilla/ast/XQGlobalVariable.hpp \ xqilla/ast/XQOrderingChange.hpp \ xqilla/ast/XQQuantified.hpp \ xqilla/ast/XQTypeswitch.hpp \ xqilla/ast/XQValidate.hpp \ xqilla/ast/XQAtomize.hpp \ xqilla/ast/XQEffectiveBooleanValue.hpp \ xqilla/ast/XQAnalyzeString.hpp \ xqilla/ast/ConvertFunctionArg.hpp \ xqilla/ast/XQDocumentOrder.hpp \ xqilla/ast/XQPredicate.hpp \ xqilla/ast/XQReturn.hpp \ xqilla/ast/TupleNode.hpp \ xqilla/ast/ContextTuple.hpp \ xqilla/ast/ForTuple.hpp \ xqilla/ast/LetTuple.hpp \ xqilla/ast/OrderByTuple.hpp \ xqilla/ast/WhereTuple.hpp \ xqilla/ast/CountTuple.hpp \ xqilla/ast/XQNamespaceBinding.hpp \ xqilla/ast/XQCallTemplate.hpp \ xqilla/ast/XQApplyTemplates.hpp \ xqilla/debug/InteractiveDebugger.hpp \ xqilla/debug/InputParser.hpp \ xqilla/debug/DebugListener.hpp \ xqilla/debug/DebugHookDecorator.hpp \ xqilla/debug/ASTDebugHook.hpp \ xqilla/debug/TupleDebugHook.hpp \ xqilla/debug/StackFrame.hpp \ xqilla/events/ContentSequenceFilter.hpp \ xqilla/events/EventGenerator.hpp \ xqilla/events/EventHandler.hpp \ xqilla/events/EventSerializer.hpp \ xqilla/events/NSFixupFilter.hpp \ xqilla/events/QueryPathTreeFilter.hpp \ xqilla/events/SequenceBuilder.hpp \ xqilla/fastxdm/FastXDMConfiguration.hpp \ xqilla/fulltext/FTContains.hpp \ xqilla/fulltext/FTSelection.hpp \ xqilla/fulltext/FTWords.hpp \ xqilla/fulltext/FTOr.hpp \ xqilla/fulltext/FTAnd.hpp \ xqilla/fulltext/FTMildnot.hpp \ xqilla/fulltext/FTUnaryNot.hpp \ xqilla/fulltext/AllMatches.hpp \ xqilla/fulltext/Match.hpp \ xqilla/fulltext/TokenInfo.hpp \ xqilla/fulltext/Tokenizer.hpp \ xqilla/fulltext/DefaultTokenizer.hpp \ xqilla/fulltext/TokenStore.hpp \ xqilla/fulltext/DefaultTokenStore.hpp \ xqilla/fulltext/FTOption.hpp \ xqilla/fulltext/FTOrder.hpp \ xqilla/fulltext/FTRange.hpp \ xqilla/fulltext/FTDistance.hpp \ xqilla/fulltext/FTScope.hpp \ xqilla/fulltext/FTContent.hpp \ xqilla/fulltext/FTWindow.hpp \ xqilla/axis/NodeTest.hpp \ xqilla/context/ContextHelpers.hpp \ xqilla/context/DynamicContext.hpp \ xqilla/context/StaticContext.hpp \ xqilla/context/ItemFactory.hpp \ xqilla/context/MessageListener.hpp \ xqilla/context/ModuleResolver.hpp \ xqilla/context/URIResolver.hpp \ xqilla/context/VariableStore.hpp \ xqilla/context/Scope.hpp \ xqilla/context/VarHashEntry.hpp \ xqilla/context/VariableTypeStore.hpp \ xqilla/context/Collation.hpp \ xqilla/context/ExternalFunctionResolver.hpp \ xqilla/context/UpdateFactory.hpp \ xqilla/context/RegexGroupStore.hpp \ xqilla/context/impl/CollationImpl.hpp \ xqilla/context/impl/VarHashEntryImpl.hpp \ xqilla/context/impl/VarStoreImpl.hpp \ xqilla/context/impl/VariableStoreTemplate.hpp \ xqilla/context/impl/CodepointCollation.hpp \ xqilla/context/impl/XQContextImpl.hpp \ xqilla/context/impl/XQDynamicContextImpl.hpp \ xqilla/context/impl/ItemFactoryImpl.hpp \ xqilla/dom-api/impl/XQillaNSResolverImpl.hpp \ xqilla/dom-api/XPath2Result.hpp \ xqilla/dom-api/XQillaExpression.hpp \ xqilla/dom-api/XQillaNSResolver.hpp \ xqilla/exceptions/XQillaException.hpp \ xqilla/exceptions/ContextException.hpp \ xqilla/exceptions/ASTException.hpp \ xqilla/exceptions/DynamicErrorException.hpp \ xqilla/exceptions/FunctionException.hpp \ xqilla/exceptions/IllegalArgumentException.hpp \ xqilla/exceptions/ItemException.hpp \ xqilla/exceptions/NamespaceLookupException.hpp \ xqilla/exceptions/StaticErrorException.hpp \ xqilla/exceptions/TypeErrorException.hpp \ xqilla/exceptions/TypeNotFoundException.hpp \ xqilla/exceptions/XMLParseException.hpp \ xqilla/exceptions/XPath2ErrorException.hpp \ xqilla/exceptions/XPath2TypeCastException.hpp \ xqilla/exceptions/XPath2TypeMatchException.hpp \ xqilla/exceptions/XQException.hpp \ xqilla/exceptions/QueryInterruptedException.hpp \ xqilla/exceptions/QueryTimeoutException.hpp \ xqilla/functions/EXSLTMathFunction.hpp \ xqilla/functions/ExternalFunction.hpp \ xqilla/functions/FunctionLookup.hpp \ xqilla/functions/FunctionAnalyzeString.hpp \ xqilla/functions/FunctionAbs.hpp \ xqilla/functions/FunctionAcos.hpp \ xqilla/functions/FunctionAsin.hpp \ xqilla/functions/FunctionAtan.hpp \ xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp \ xqilla/functions/FunctionAdjustDateToTimezone.hpp \ xqilla/functions/FunctionAdjustTimeToTimezone.hpp \ xqilla/functions/FunctionBaseURI.hpp \ xqilla/functions/FunctionCaseFold.hpp \ xqilla/functions/FunctionCeiling.hpp \ xqilla/functions/FunctionCodepointsToString.hpp \ xqilla/functions/FunctionCollection.hpp \ xqilla/functions/FunctionCompare.hpp \ xqilla/functions/FunctionConcat.hpp \ xqilla/functions/FunctionContains.hpp \ xqilla/functions/FunctionCos.hpp \ xqilla/functions/FunctionCount.hpp \ xqilla/functions/FunctionCurrentDate.hpp \ xqilla/functions/FunctionCurrentDateTime.hpp \ xqilla/functions/FunctionCurrentTime.hpp \ xqilla/functions/FunctionDateTime.hpp \ xqilla/functions/FunctionDayFromDate.hpp \ xqilla/functions/FunctionDayFromDateTime.hpp \ xqilla/functions/FunctionDaysFromDuration.hpp \ xqilla/functions/FunctionDefaultCollation.hpp \ xqilla/functions/FunctionDistinctValues.hpp \ xqilla/functions/FunctionDocAvailable.hpp \ xqilla/functions/FunctionDoc.hpp \ xqilla/functions/FunctionDocument.hpp \ xqilla/functions/FunctionDocumentURI.hpp \ xqilla/functions/FunctionEmpty.hpp \ xqilla/functions/FunctionEndsWith.hpp \ xqilla/functions/FunctionExp.hpp \ xqilla/functions/FunctionError.hpp \ xqilla/functions/FunctionFloor.hpp \ xqilla/functions/FunctionFunctionArity.hpp \ xqilla/functions/FunctionFunctionName.hpp \ xqilla/functions/FunctionHoursFromDateTime.hpp \ xqilla/functions/FunctionHoursFromDuration.hpp \ xqilla/functions/FunctionHoursFromTime.hpp \ xqilla/functions/FunctionId.hpp \ xqilla/functions/FunctionIdref.hpp \ xqilla/functions/FunctionImplicitTimezone.hpp \ xqilla/functions/FunctionLang.hpp \ xqilla/functions/FunctionLast.hpp \ xqilla/functions/FunctionLocalNameFromQName.hpp \ xqilla/functions/FunctionLocalname.hpp \ xqilla/functions/FunctionLog.hpp \ xqilla/functions/FunctionLowerCase.hpp \ xqilla/functions/FunctionMatches.hpp \ xqilla/functions/FunctionMinutesFromDateTime.hpp \ xqilla/functions/FunctionMinutesFromDuration.hpp \ xqilla/functions/FunctionMinutesFromTime.hpp \ xqilla/functions/FunctionMonthFromDate.hpp \ xqilla/functions/FunctionMonthFromDateTime.hpp \ xqilla/functions/FunctionMonthsFromDuration.hpp \ xqilla/functions/FunctionName.hpp \ xqilla/functions/FunctionNamespaceURIFromQName.hpp \ xqilla/functions/FunctionNamespaceUri.hpp \ xqilla/functions/FunctionNilled.hpp \ xqilla/functions/FunctionNodeName.hpp \ xqilla/functions/FunctionNormalizeSpace.hpp \ xqilla/functions/FunctionNormalizeUnicode.hpp \ xqilla/functions/FunctionNot.hpp \ xqilla/functions/FunctionNumber.hpp \ xqilla/functions/FunctionParseHTML.hpp \ xqilla/functions/FunctionParseJSON.hpp \ xqilla/functions/FunctionExplain.hpp \ xqilla/functions/FunctionSentences.hpp \ xqilla/functions/FunctionSerializeJSON.hpp \ xqilla/functions/FunctionParseXML.hpp \ xqilla/functions/FunctionPosition.hpp \ xqilla/functions/FunctionPower.hpp \ xqilla/functions/FunctionPrefixFromQName.hpp \ xqilla/functions/FunctionQName.hpp \ xqilla/functions/FunctionRegexGroup.hpp \ xqilla/functions/FunctionReplace.hpp \ xqilla/functions/FunctionResolveURI.hpp \ xqilla/functions/FunctionRoot.hpp \ xqilla/functions/FunctionRoundHalfToEven.hpp \ xqilla/functions/FunctionRound.hpp \ xqilla/functions/FunctionSecondsFromDateTime.hpp \ xqilla/functions/FunctionSecondsFromDuration.hpp \ xqilla/functions/FunctionSecondsFromTime.hpp \ xqilla/functions/FunctionSin.hpp \ xqilla/functions/FunctionSqrt.hpp \ xqilla/functions/FunctionStartsWith.hpp \ xqilla/functions/FunctionStaticBaseURI.hpp \ xqilla/functions/FunctionString.hpp \ xqilla/functions/FunctionStringLength.hpp \ xqilla/functions/FunctionStringToCodepoints.hpp \ xqilla/functions/FunctionSubstring.hpp \ xqilla/functions/FunctionTan.hpp \ xqilla/functions/FunctionTime.hpp \ xqilla/functions/FunctionTimezoneFromDate.hpp \ xqilla/functions/FunctionTimezoneFromDateTime.hpp \ xqilla/functions/FunctionTimezoneFromTime.hpp \ xqilla/functions/FunctionTokenize.hpp \ xqilla/functions/FunctionTrace.hpp \ xqilla/functions/FunctionHead.hpp \ xqilla/functions/FunctionTail.hpp \ xqilla/functions/FunctionUnordered.hpp \ xqilla/functions/FunctionUnparsedText.hpp \ xqilla/functions/FunctionUpperCase.hpp \ xqilla/functions/FunctionWords.hpp \ xqilla/functions/FunctionYearFromDate.hpp \ xqilla/functions/FunctionYearFromDateTime.hpp \ xqilla/functions/FunctionYearsFromDuration.hpp \ xqilla/functions/FuncFactory.hpp \ xqilla/functions/FuncFactoryTemplate.hpp \ xqilla/functions/RegExpFunction.hpp \ xqilla/functions/XQUserFunction.hpp \ xqilla/functions/FunctionSignature.hpp \ xqilla/functions/XQillaFunction.hpp \ xqilla/functions/BuiltInModules.hpp \ xqilla/items/ATAnySimpleType.hpp \ xqilla/items/ATAnyURIOrDerived.hpp \ xqilla/items/ATBase64BinaryOrDerived.hpp \ xqilla/items/ATBooleanOrDerived.hpp \ xqilla/items/ATDateOrDerived.hpp \ xqilla/items/ATDateTimeOrDerived.hpp \ xqilla/items/ATDecimalOrDerived.hpp \ xqilla/items/ATDoubleOrDerived.hpp \ xqilla/items/ATDurationOrDerived.hpp \ xqilla/items/ATFloatOrDerived.hpp \ xqilla/items/ATGDayOrDerived.hpp \ xqilla/items/ATGMonthDayOrDerived.hpp \ xqilla/items/ATGMonthOrDerived.hpp \ xqilla/items/ATGYearMonthOrDerived.hpp \ xqilla/items/ATGYearOrDerived.hpp \ xqilla/items/ATHexBinaryOrDerived.hpp \ xqilla/items/ATNotationOrDerived.hpp \ xqilla/items/ATQNameOrDerived.hpp \ xqilla/items/ATStringOrDerived.hpp \ xqilla/items/ATTimeOrDerived.hpp \ xqilla/items/ATUntypedAtomic.hpp \ xqilla/items/AnyAtomicType.hpp \ xqilla/items/DateOrTimeType.hpp \ xqilla/items/FunctionRef.hpp \ xqilla/items/Item.hpp \ xqilla/items/Node.hpp \ xqilla/items/Numeric.hpp \ xqilla/items/Timezone.hpp \ xqilla/items/DatatypeLookup.hpp \ xqilla/items/DatatypeFactory.hpp \ xqilla/items/impl/ATBooleanOrDerivedImpl.hpp \ xqilla/items/impl/ATDecimalOrDerivedImpl.hpp \ xqilla/items/impl/ATDoubleOrDerivedImpl.hpp \ xqilla/items/impl/ATFloatOrDerivedImpl.hpp \ xqilla/items/impl/ATQNameOrDerivedImpl.hpp \ xqilla/items/impl/ATDurationOrDerivedImpl.hpp \ xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATDateOrDerivedImpl.hpp \ xqilla/items/impl/ATTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATGDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearOrDerivedImpl.hpp \ xqilla/mapm/m_apm.h \ xqilla/operators/And.hpp \ xqilla/operators/ArithmeticOperator.hpp \ xqilla/operators/ComparisonOperator.hpp \ xqilla/operators/Divide.hpp \ xqilla/operators/Equals.hpp \ xqilla/operators/Except.hpp \ xqilla/operators/GeneralComp.hpp \ xqilla/operators/GreaterThanEqual.hpp \ xqilla/operators/GreaterThan.hpp \ xqilla/operators/IntegerDivide.hpp \ xqilla/operators/Intersect.hpp \ xqilla/operators/LessThanEqual.hpp \ xqilla/operators/LessThan.hpp \ xqilla/operators/Minus.hpp \ xqilla/operators/Mod.hpp \ xqilla/operators/Multiply.hpp \ xqilla/operators/NodeComparison.hpp \ xqilla/operators/NotEquals.hpp \ xqilla/operators/OrderComparison.hpp \ xqilla/operators/Or.hpp \ xqilla/operators/Plus.hpp \ xqilla/operators/UnaryMinus.hpp \ xqilla/operators/Union.hpp \ xqilla/optimizer/Optimizer.hpp \ xqilla/optimizer/ASTCopier.hpp \ xqilla/optimizer/ASTReleaser.hpp \ xqilla/optimizer/ASTVisitor.hpp \ xqilla/optimizer/PartialEvaluator.hpp \ xqilla/optimizer/StaticTyper.hpp \ xqilla/optimizer/QueryPathNode.hpp \ xqilla/optimizer/QueryPathTreeGenerator.hpp \ xqilla/optimizer/ASTToXML.hpp \ xqilla/parser/QName.hpp \ xqilla/runtime/ClosureResult.hpp \ xqilla/runtime/TupleResult.hpp \ xqilla/runtime/Sequence.hpp \ xqilla/runtime/ResultBuffer.hpp \ xqilla/runtime/ResultBufferImpl.hpp \ xqilla/runtime/Result.hpp \ xqilla/runtime/ResultImpl.hpp \ xqilla/runtime/SequenceResult.hpp \ xqilla/runtime/EmptyResult.hpp \ xqilla/schema/DocumentCache.hpp \ xqilla/schema/SequenceType.hpp \ xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp \ xqilla/schema/DocumentCacheImpl.hpp \ xqilla/schema/SchemaValidatorFilter.hpp \ xqilla/simple-api/XQilla.hpp \ xqilla/simple-api/XQillaConfiguration.hpp \ xqilla/simple-api/XQQuery.hpp \ xqilla/update/FunctionPut.hpp \ xqilla/update/PendingUpdateList.hpp \ xqilla/update/UApplyUpdates.hpp \ xqilla/update/UDelete.hpp \ xqilla/update/URename.hpp \ xqilla/update/UReplace.hpp \ xqilla/update/UReplaceValueOf.hpp \ xqilla/update/UInsertAsFirst.hpp \ xqilla/update/UInsertAsLast.hpp \ xqilla/update/UInsertInto.hpp \ xqilla/update/UInsertAfter.hpp \ xqilla/update/UInsertBefore.hpp \ xqilla/update/UTransform.hpp \ xqilla/utils/NumUtils.hpp \ xqilla/utils/XPath2NSUtils.hpp \ xqilla/utils/XPath2Utils.hpp \ xqilla/utils/XMLChCompare.hpp \ xqilla/utils/XStr.hpp \ xqilla/utils/ContextUtils.hpp \ xqilla/utils/UTF8Str.hpp \ xqilla/utils/XQillaPlatformUtils.hpp \ xqilla/utils/UnicodeTransformer.hpp \ xqilla/utils/utf8proc.h \ xqilla/utils/DelayedModule.hpp \ xqilla/framework/ReferenceCounted.hpp \ xqilla/framework/XPath2MemoryManager.hpp \ xqilla/framework/BaseMemoryManager.hpp \ xqilla/framework/ProxyMemoryManager.hpp \ xqilla/framework/StringPool.hpp \ xqilla/framework/XPath2MemoryManagerImpl.hpp \ xqilla/framework/XQillaExport.hpp \ xqilla/xerces/XercesConfiguration.hpp \ xqilla/xqts/TestSuiteParser.hpp \ xqilla/xqts/TestSuiteResultListener.hpp \ xqilla/xqts/TestSuiteRunner.hpp docs: $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp docsclean: rm -rf $(top_srcdir)/docs/simple-api $(top_srcdir)/docs/dom3-api $(top_srcdir)/docs/xqc-api && \ rm $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/.simple-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/simple_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.simpleapi && \ touch .simple-api-timestamp $(top_srcdir)/docs/Doxyfile.simpleapi: $(top_srcdir)/docs/Doxyfile.simpleapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.simpleapi.in >$(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/.dom3-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.dom3api cd $(top_srcdir)/docs && \ doxygen Doxyfile.dom3api && \ touch .dom3-api-timestamp $(top_srcdir)/docs/Doxyfile.dom3api: $(top_srcdir)/docs/Doxyfile.dom3api.in $(top_srcdir)/docs/dom3_header.html sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.dom3api.in >$(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/.xqc-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/xqc_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.xqc && \ touch .xqc-api-timestamp $(top_srcdir)/docs/Doxyfile.xqc: $(top_srcdir)/docs/Doxyfile.xqc.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.xqc.in >$(top_srcdir)/docs/Doxyfile.xqc devdocs: $(top_srcdir)/docs/.dev-api-timestamp devdocsclean: rm -rf $(top_srcdir)/docs/dev-api && \ rm $(top_srcdir)/docs/.dev-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.devapi $(top_srcdir)/docs/.dev-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.devapi cd $(top_srcdir)/docs && \ doxygen Doxyfile.devapi && \ touch .dev-api-timestamp $(top_srcdir)/docs/Doxyfile.devapi: $(top_srcdir)/docs/Doxyfile.devapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," $(top_srcdir)/docs/Doxyfile.devapi.in >$(top_srcdir)/docs/Doxyfile.devapi # Target to help keep the windows projects up-to-date winprojects: @echo " " >winprojects_files.xml @list='$(nobase_include_HEADERS)'; for f in $$list; do \ echo " " >>winprojects_files.xml; \ done @echo " " >>winprojects_files.xml XQilla-2.3.4/include/xqc.h0000644001725400016040000011102313232476422012231 00000000000000/* * Copyright (c) 2008, Matthias Brantner, John Snelson * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the developers nor the names of contributors may be * used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _XQUERY_C_API_H #define _XQUERY_C_API_H /* Include stdio for FILE */ #include #ifdef __cplusplus extern "C" { #endif /** The version of the XQC API in this header file */ #define XQC_VERSION_NUMBER 1 typedef struct XQC_Implementation_s XQC_Implementation; typedef struct XQC_StaticContext_s XQC_StaticContext; typedef struct XQC_Expression_s XQC_Expression; typedef struct XQC_DynamicContext_s XQC_DynamicContext; typedef struct XQC_Sequence_s XQC_Sequence; typedef struct XQC_InputStream_s XQC_InputStream; typedef struct XQC_ErrorHandler_s XQC_ErrorHandler; /** * The error enumeration used by all XQC functions to designate error condition. * All XQC functions return a value of type ::XQC_Error. */ typedef enum { XQC_NO_ERROR = 0, ///< No error. XQC_END_OF_SEQUENCE, ///< The end of the XQC_Sequence has been reached. XQC_NO_CURRENT_ITEM, XQC_PARSE_ERROR, XQC_INVALID_ARGUMENT, XQC_NOT_NODE, XQC_INTERNAL_ERROR, ///< An implementation specific error has occurred. XQC_NOT_IMPLEMENTED, ///< The implementation does not implement that function. /** * The encoding of the query has not been recognized, or is not supported by the * implementation. All implementations must support queries in UTF-8. */ XQC_UNRECOGNIZED_ENCODING, XQC_STATIC_ERROR, ///< A static error has occured while preparing the query XQC_TYPE_ERROR, ///< A type error has occured while preparing or executing the query XQC_DYNAMIC_ERROR, ///< A dynamic error has occured while preparing or executing the query XQC_SERIALIZATION_ERROR ///< A serialization error has occured while serializing the output of a query } XQC_Error; /** * The ::XQC_InputStream struct is designed to be populated by users for the purpose * of streaming data into an XQC implementation. */ struct XQC_InputStream_s { /** * The text encoding of the input data as a UTF-8 string, or 0 if unknown. The value of the string * should conform to the EncName grammar production as specified in XML 1.0: * * http://www.w3.org/TR/REC-xml/#NT-EncName */ const char *encoding; /** * Can be used for user specific purposes. */ void *user_data; /** * The function called to read more of the input query. The function should read * the next chunk of input into the buffer provided, returning the length of the * data read. * * \param stream The XQC_InputStream that this function pointer is a member of * \param[out] buffer The buffer to read the data into * \param length The length of the buffer * * \return The number of bytes read - this will be less than length if the end of the input is reached * * \todo Does this function need to be able to return an error condition? */ unsigned int (*read)(XQC_InputStream *stream, void *buffer, unsigned int length); /** * Called to free the resources associated with the XQC_InputStream. * * \param stream The XQC_InputStream that this function pointer is a member of * */ void (*free)(XQC_InputStream *stream); }; /** * The ::XQC_ErrorHandler struct is designed to be populated by users for the purpose * of collecting more detailed error messages from an XQC implementation. An XQC_ErrorHandler * can be set for a query execution using the XQC_StaticContext::set_error_handler() and * XQC_DynamicContext::set_error_handler() functions. * * The XQC_ErrorHandler * struct has no free() function pointer because the user remains responsible for freeing * the resources associated with this struct. * * \todo file/line/column information? */ struct XQC_ErrorHandler_s { /** * Can be used for user specific purposes. */ void *user_data; /** * The function called when an error occurs. The function receives the components of the * error as arguments. When this function returns, the implementation will exit query preparation or * execution with the error enumeration value passed as an argument. * * \param handler The XQC_ErrorHandler that this function pointer is a member of * \param error An enumeration value representing the type of error. One of either XQC_STATIC_ERROR, * XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR, or XQC_SERIALIZATION_ERROR. * \param error_uri The namespace URI of the error code QName as a UTF-8 string, or 0 if there * is no namespace URI. * \param error_localname The local name of the error code QName as a UTF-8 string. * \param description The description of the error message as a UTF-8 string. The description may be * absent, in which case this parameter will be 0. * \param error_object The error object, potentially passed to the fn:error() function. * The user owns this object, and is responsible for freeing it. The error_object may be absent, in * which case this parameter will be 0. Some implementations may not provide this functionality, * meaning that this parameter will always be 0. */ void (*error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object); }; typedef enum { XQC_EMPTY_TYPE = 0, XQC_DOCUMENT_TYPE, XQC_ELEMENT_TYPE, XQC_ATTRIBUTE_TYPE, XQC_TEXT_TYPE, XQC_PROCESSING_INSTRUCTION_TYPE, XQC_COMMENT_TYPE, XQC_NAMESPACE_TYPE, XQC_ANY_SIMPLE_TYPE, XQC_ANY_URI_TYPE, XQC_BASE_64_BINARY_TYPE, XQC_BOOLEAN_TYPE, XQC_DATE_TYPE, XQC_DATE_TIME_TYPE, XQC_DAY_TIME_DURATION_TYPE, XQC_DECIMAL_TYPE, XQC_DOUBLE_TYPE, XQC_DURATION_TYPE, XQC_FLOAT_TYPE, XQC_G_DAY_TYPE, XQC_G_MONTH_TYPE, XQC_G_MONTH_DAY_TYPE, XQC_G_YEAR_TYPE, XQC_G_YEAR_MONTH_TYPE, XQC_HEX_BINARY_TYPE, XQC_NOTATION_TYPE, XQC_QNAME_TYPE, XQC_STRING_TYPE, XQC_TIME_TYPE, XQC_UNTYPED_ATOMIC_TYPE, XQC_YEAR_MONTH_DURATION_TYPE } XQC_ItemType; /** * The ::XQC_Implementation struct provides factory functions for preparing queries. An XQC_Implementation object * is thread-safe and can be used by multiple threads of execution at the same time. * * The method of creating an * XQC_Implementation object is beyond the scope of this API, and will typically involve calling an * implementation defined function. Once created, the user is responsible for freeing the object by calling * the free() function. The XQC_Implementation object should not be freed before all objects created using it's * functions have been freed - doing so may cause undefined behaviour. */ struct XQC_Implementation_s { /** * \name Functions for preparing queries * @{ */ /** * Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() * functions. The user is responsible for freeing the ::XQC_StaticContext object returned by calling * XQC_StaticContext::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of * \param[out] context The newly created XQC_StaticContext object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_context)(XQC_Implementation *implementation, XQC_StaticContext **context); /** * Prepares a query from a UTF-8 string, returning an ::XQC_Expression object. The user remains responsible * for closing the file after preparation. The user is responsible for freeing the ::XQC_Expression object * returned by calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of. * \param string The query to prepare as a UTF-8 string. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression); /** * Prepares a query from a FILE pointer, returning an ::XQC_Expression object. The encoding of the * query in the file is determined by the implementation. The user remains responsible for closing * the file after preparation. The user is responsible for freeing the ::XQC_Expression object returned by * calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of. * \param file The file containing the query to prepare. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_UNRECOGNIZED_ENCODING * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression); /** * Prepares a query from an ::XQC_InputStream, returning an ::XQC_Expression object. The encoding of the stream * is determined by looking at XQC_InputStream::encoding, or by the implementation if * XQC_InputStream::encoding is 0. * The implementation is responsible for freeing the ::XQC_InputStream using the XQC_InputStream::free() * function after it has finished with using it. The user is responsible for freeing the ::XQC_Expression * object returned by calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of * \param stream The stream returning the query to prepare. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_UNRECOGNIZED_ENCODING * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression); /// @} /** * \name Functions for parsing documents * @{ */ /// XQC_PARSE_ERROR XQC_Error (*parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence); /// XQC_PARSE_ERROR XQC_Error (*parse_document_file)(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence); /// XQC_PARSE_ERROR XQC_Error (*parse_document_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence); /// @} /** * \name Functions for creating sequences * @{ */ XQC_Error (*create_empty_sequence)(XQC_Implementation *implementation, XQC_Sequence **sequence); XQC_Error (*create_singleton_sequence)(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence); XQC_Error (*create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence); XQC_Error (*create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence); XQC_Error (*create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence); /// @} /** * Called to retrieve an implementation specific interface. * * \param implementation The XQC_Implementation that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Implementation *implementation, const char *name); /** * Called to free the resources associated with the XQC_Implementation. * * \param implementation The XQC_Implementation that this function pointer is a member of * */ void (*free)(XQC_Implementation *implementation); }; /** * XPath 1.0 compatibility mode as defined in * http://www.w3.org/TR/xquery/#static_context * \todo Are there better enumeration names? */ typedef enum { XQC_XPATH2_0, XQC_XPATH1_0 } XQC_XPath1Mode; /** * Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_ORDERED, XQC_UNORDERED } XQC_OrderingMode; /** * Default order for empty sequences as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_EMPTY_GREATEST, XQC_EMPTY_LEAST } XQC_OrderEmptyMode; /** * Inherit part of the Copy-namespace mode as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_INHERIT_NS, XQC_NO_INHERIT_NS } XQC_InheritMode; /** * Preserve part of the Copy-namespace mode as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_NS, XQC_NO_PRESERVE_NS } XQC_PreserveMode; /** * Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_SPACE, XQC_STRIP_SPACE } XQC_BoundarySpaceMode; /** * Construction mode as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_CONS, XQC_STRIP_CONS } XQC_ConstructionMode; /** * The ::XQC_StaticContext struct provides a way to specify values for the static context of the query to be * prepared. An ::XQC_StaticContext object is not thread-safe - threads should each use their own instance of a * ::XQC_StaticContext object. * * ::XQC_StaticContext objects are created by calling the XQC_Implementation::create_context() function. Once * created, the user is responsible for freeing the object by calling * the free() function. The ::XQC_StaticContext object should be freed before the ::XQC_Implementation object that * created it. */ struct XQC_StaticContext_s { /** * Creates a child context of the given static context. * A child context contains the same information as it's parent context but * it allows the user to override and add information. * The user is responsible for freeing the ::XQC_StaticContext object returned by calling * XQC_StaticContext::free(). * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] child_context The newly created XQC_StaticContext object which is * a child of the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context); /** * Adds a (prefix, uri) pair to the set of statically known namespaces of * the given context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param prefix The prefix of the namespace to add to the given XQC_StaticContext. * \param uri The uri of the namespace to add to the given XQC_StaticContext. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri); /** * Returns the namespace uri that belongs to the given prefix. * * \param context The XQC_StaticContext that this function pointer is a member of * \param prefix The prefix of the namespace to add to the given XQC_StaticContext. * \param[out] result_ns The namespace uri of the namespace registered with the given prefix, * or 0 if none can be found. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns); /** * Sets the value of the default namespace for elements and types. * * \param context The XQC_StaticContext that this function pointer is a member of * \param uri The uri of the default element and type namespace to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri); /** * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] uri The uri of the default element and type namespace that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri); /** * Sets the default namespace for functions. * * \param context The XQC_StaticContext that this function pointer is a member of * \param uri The uri of the default function namespace to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_function_ns)(XQC_StaticContext *context, const char *uri); /** * Returnsthe default namespace for functions set in this static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] uri The uri of the default function namespace that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_function_ns)(XQC_StaticContext *context, const char **uri); /** * Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_XPath1Mode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode); /** * Returns the XPath 1.0 compatibility that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_XPath1Mode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode* mode); /** * Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_ConstructionMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode); /** * Returns the construction mode that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_ConstructionMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode* mode); /** * Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_OrderingMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode); /** * Returns the ordering mode that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_OrderingMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode* mode); /** * Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or * XQC_EMPTY_GREATEST * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_OrderEmptyMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode); /** * Returns the default order mode for empty sequences that is set in the given * static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_OrderEmptyMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode* mode); /** * Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_BoundarySpaceMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode); /** * Returns the boundary space policy that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_BoundarySpaceMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode); /** * Sets the copy namespace mode which consists of the preserve and the inherit mode. * * \param context The XQC_StaticContext that this function pointer is a member of * \param preserve The XQC_PreserveMode to set in the given context. * \param inherit The XQC_InheritMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit); /** * Returns the copy namespace mode as a pair consisting of the preserve and the inherit * mode. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] preserve The XQC_PreserveMode that is set in the given context. * \param[out] inherit The XQC_InheritMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit); /** * Sets the base uri in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param base_uri The base uri to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_base_uri)(XQC_StaticContext *context, const char *base_uri); /** * Returns the base uri that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] base_uri The base uri that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_base_uri)(XQC_StaticContext *context, const char **base_uri); XQC_Error (*set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler); XQC_Error (*get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler); /** * Called to retrieve an implementation specific interface. * * \param context The XQC_StaticContext that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_StaticContext *context, const char *name); /** * Called to free the resources associated with the XQC_StaticContext. * * \param context The XQC_StaticContext that this function pointer is a member of * */ void (*free)(XQC_StaticContext *context); }; /** * The ::XQC_Expression struct represents a prepared query, and allows the user to execute that query any * number of times. An ::XQC_Expression object is thread-safe and can be used by multiple threads of execution * at the same time. * * ::XQC_Expression objects are created by calling the XQC_Implementation::prepare(), XQC_Implementation::prepare_file() * and XQC_Implementation::prepare_stream() functions. Once created, the user is responsible for freeing the object * by calling the free() function. The ::XQC_Expression object should be freed before the ::XQC_Implementation object * that created it. * * \todo A way to serialize the query result * \todo event api? */ struct XQC_Expression_s { /** * Creates a dynamic context suitable for use in the execute() function. * The user is responsible for freeing the ::XQC_DynamicContext object returned by calling * XQC_DynamicContext::free(). * * \param expression The XQC_Expression that this function pointer is a member of. * \param[out] context The newly created XQC_DynamicContext object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_context)(const XQC_Expression *expression, XQC_DynamicContext **context); /** * Executes the query represented by the XQC_Expression object using the values in the * ::XQC_DynamicContext if provided. An ::XQC_Sequence object is returned which can be used to * examine the results of the query execution. The user is responsible for freeing the * ::XQC_Sequence object returned by calling XQC_Sequence::free(). * * \param expression The XQC_Expression that this function pointer is a member of. * \param context The dynamic context information to use when executing the query, or 0 to * use the implementation defined default dynamic context. * \param[out] sequence The newly created XQC_Sequence object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence); /** * Called to retrieve an implementation specific interface. * * \param expression The XQC_Expression that this function pointer is a member of. * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Expression *expression, const char *name); /** * Called to free the resources associated with the XQC_Expression. * * \param expression The XQC_Expression that this function pointer is a member of * */ void (*free)(XQC_Expression *expression); }; struct XQC_DynamicContext_s { /** * Sets the external variable to the value given. The implementation takes ownership * of the XQC_Sequence passed in, and is responsible for freeing it. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param uri The namespace URI of the external variable to set. * \param name The name of the external variable to set - this should be a valid lexical xs:QName. * If uri is 0 and name has a prefix, that prefix is resolved using the in-scope * namespace prefixes for the expression. * \param value The XQC_Sequence value for the variable, or 0 to remove the existing * binding for the variable. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * * \todo What happens if the variable value is the wrong type? * \todo Do we allow the value to come from another implementation? */ XQC_Error (*set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value); XQC_Error (*get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value); /** * Sets the context item to the current item of the XQC_Sequence given. The user remains * responsible for freeing the XQC_Sequence passed as the value - the XQC_Sequence must * not be freed until the XQC_DynamicContext has been freed or it's context item set to * a different value. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param value The XQC_Sequence value for the context item, or 0 to remove the existing * context item value. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item in the value. * * \todo What happens if the context item value is the wrong type? * \todo Do we allow the value to come from another implementation? */ XQC_Error (*set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value); XQC_Error (*get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value); /** * The timezone given must be between -840 and +840 minutes (-14 and +14 hours). * * \param timezone The implicit timezone to set, as an offset in minutes from GMT */ XQC_Error (*set_implicit_timezone)(XQC_DynamicContext *context, int timezone); XQC_Error (*get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone); XQC_Error (*set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler); XQC_Error (*get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler); /** * Called to retrieve an implementation specific interface. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_DynamicContext *context, const char *name); /** * Called to free the resources associated with the XQC_DynamicContext. * * \param context The XQC_DynamicContext that this function pointer is a member of * */ void (*free)(XQC_DynamicContext *context); }; /** * \todo other data model node accessors (typed value, parent, attributes, children)? * \todo accessor for the parts of an xs:QName ? * \todo serialize a node * \todo a way to concatenate two sequences? */ struct XQC_Sequence_s { /** * Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence. * * \param sequence The XQC_Sequence that this function pointer is a member of * * \retval ::XQC_NO_ERROR when the call is successful * \retval ::XQC_END_OF_SEQUENCE when the end of the sequence is reached * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*next)(XQC_Sequence *sequence); /** * \name Functions on the current item * @{ */ /** * Returns an item type enumeration for the type of the current item. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] type the XQC_ItemType of the current item * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*item_type)(const XQC_Sequence *sequence, XQC_ItemType *type); /** * Returns the type name for the current item as a (URI, localname) pair. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] uri The URI of the type of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * \param[out] name The localname of the type of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*type_name)(const XQC_Sequence *sequence, const char **uri, const char **name); /** * Returns the string value of the current item in the sequence - this is equivalent to calling * fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item. * This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The string value of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*string_value)(const XQC_Sequence *sequence, const char **value); /** * Returns the value of the current item in the sequence as an integer - this is equivalent to calling * fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and * casting the result to an int. This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The value of the current item as an int. * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*integer_value)(const XQC_Sequence *sequence, int *value); /** * Returns the value of the current item in the sequence as a double - this is equivalent to calling * fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item. * This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The value of the current item as a double. * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*double_value)(const XQC_Sequence *sequence, double *value); /** * Returns the name for the current node as a (URI, localname) pair. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] uri The URI of the name of the current node. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * \param[out] name The localname of the name of the current node. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. * \retval ::XQC_NOT_NODE if the current item is not a node. */ XQC_Error (*node_name)(const XQC_Sequence *sequence, const char **uri, const char **name); /** @} */ /** * Called to retrieve an implementation specific interface. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Sequence *sequence, const char *name); /** * Called to free the resources associated with the XQC_Sequence. * * \param sequence The XQC_Sequence that this function pointer is a member of * */ void (*free)(XQC_Sequence *sequence); }; #ifdef __cplusplus } #endif #endif XQilla-2.3.4/include/Makefile.in0000644001725400016040000007573513273140037013350 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = include DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/libtool.m4 \ $(top_srcdir)/autotools/m4/ltoptions.m4 \ $(top_srcdir)/autotools/m4/ltsugar.m4 \ $(top_srcdir)/autotools/m4/ltversion.m4 \ $(top_srcdir)/autotools/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/config/xqilla_config_unix.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = 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__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(nobase_include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ 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@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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@ exec_prefix = @exec_prefix@ faxpp_include = @faxpp_include@ faxpp_lib = @faxpp_lib@ faxpp_library = @faxpp_library@ 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_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ tidy_include = @tidy_include@ tidy_lib = @tidy_lib@ tidy_library = @tidy_library@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xerces_include = @xerces_include@ xerces_include_dir = @xerces_include_dir@ xerces_lib = @xerces_lib@ nobase_include_HEADERS = \ xqc.h \ xqilla/xqilla-dom3.hpp \ xqilla/xqilla-simple.hpp \ xqilla/xqilla-xqc.h \ xqilla/ast/LocationInfo.hpp \ xqilla/ast/XQCastableAs.hpp \ xqilla/ast/XQMap.hpp \ xqilla/ast/XQCastAs.hpp \ xqilla/ast/XQContextItem.hpp \ xqilla/ast/XQCopy.hpp \ xqilla/ast/XQCopyOf.hpp \ xqilla/ast/XQFunction.hpp \ xqilla/ast/ASTNode.hpp \ xqilla/ast/XQIf.hpp \ xqilla/ast/ASTNodeImpl.hpp \ xqilla/ast/XQInlineFunction.hpp \ xqilla/ast/XQLiteral.hpp \ xqilla/ast/XQNav.hpp \ xqilla/ast/XQOperator.hpp \ xqilla/ast/XQSequence.hpp \ xqilla/ast/XQStep.hpp \ xqilla/ast/XQTreatAs.hpp \ xqilla/ast/XQFunctionCoercion.hpp \ xqilla/ast/XQVariable.hpp \ xqilla/ast/StaticAnalysis.hpp \ xqilla/ast/StaticType.hpp \ xqilla/ast/NumericFunction.hpp \ xqilla/ast/XQDOMConstructor.hpp \ xqilla/ast/XQDocumentConstructor.hpp \ xqilla/ast/XQElementConstructor.hpp \ xqilla/ast/XQAttributeConstructor.hpp \ xqilla/ast/XQNamespaceConstructor.hpp \ xqilla/ast/XQPIConstructor.hpp \ xqilla/ast/XQCommentConstructor.hpp \ xqilla/ast/XQTextConstructor.hpp \ xqilla/ast/XQFunctionCall.hpp \ xqilla/ast/XQFunctionConversion.hpp \ xqilla/ast/XQFunctionDeref.hpp \ xqilla/ast/XQPartialApply.hpp \ xqilla/ast/XQFunctionRef.hpp \ xqilla/ast/XQGlobalVariable.hpp \ xqilla/ast/XQOrderingChange.hpp \ xqilla/ast/XQQuantified.hpp \ xqilla/ast/XQTypeswitch.hpp \ xqilla/ast/XQValidate.hpp \ xqilla/ast/XQAtomize.hpp \ xqilla/ast/XQEffectiveBooleanValue.hpp \ xqilla/ast/XQAnalyzeString.hpp \ xqilla/ast/ConvertFunctionArg.hpp \ xqilla/ast/XQDocumentOrder.hpp \ xqilla/ast/XQPredicate.hpp \ xqilla/ast/XQReturn.hpp \ xqilla/ast/TupleNode.hpp \ xqilla/ast/ContextTuple.hpp \ xqilla/ast/ForTuple.hpp \ xqilla/ast/LetTuple.hpp \ xqilla/ast/OrderByTuple.hpp \ xqilla/ast/WhereTuple.hpp \ xqilla/ast/CountTuple.hpp \ xqilla/ast/XQNamespaceBinding.hpp \ xqilla/ast/XQCallTemplate.hpp \ xqilla/ast/XQApplyTemplates.hpp \ xqilla/debug/InteractiveDebugger.hpp \ xqilla/debug/InputParser.hpp \ xqilla/debug/DebugListener.hpp \ xqilla/debug/DebugHookDecorator.hpp \ xqilla/debug/ASTDebugHook.hpp \ xqilla/debug/TupleDebugHook.hpp \ xqilla/debug/StackFrame.hpp \ xqilla/events/ContentSequenceFilter.hpp \ xqilla/events/EventGenerator.hpp \ xqilla/events/EventHandler.hpp \ xqilla/events/EventSerializer.hpp \ xqilla/events/NSFixupFilter.hpp \ xqilla/events/QueryPathTreeFilter.hpp \ xqilla/events/SequenceBuilder.hpp \ xqilla/fastxdm/FastXDMConfiguration.hpp \ xqilla/fulltext/FTContains.hpp \ xqilla/fulltext/FTSelection.hpp \ xqilla/fulltext/FTWords.hpp \ xqilla/fulltext/FTOr.hpp \ xqilla/fulltext/FTAnd.hpp \ xqilla/fulltext/FTMildnot.hpp \ xqilla/fulltext/FTUnaryNot.hpp \ xqilla/fulltext/AllMatches.hpp \ xqilla/fulltext/Match.hpp \ xqilla/fulltext/TokenInfo.hpp \ xqilla/fulltext/Tokenizer.hpp \ xqilla/fulltext/DefaultTokenizer.hpp \ xqilla/fulltext/TokenStore.hpp \ xqilla/fulltext/DefaultTokenStore.hpp \ xqilla/fulltext/FTOption.hpp \ xqilla/fulltext/FTOrder.hpp \ xqilla/fulltext/FTRange.hpp \ xqilla/fulltext/FTDistance.hpp \ xqilla/fulltext/FTScope.hpp \ xqilla/fulltext/FTContent.hpp \ xqilla/fulltext/FTWindow.hpp \ xqilla/axis/NodeTest.hpp \ xqilla/context/ContextHelpers.hpp \ xqilla/context/DynamicContext.hpp \ xqilla/context/StaticContext.hpp \ xqilla/context/ItemFactory.hpp \ xqilla/context/MessageListener.hpp \ xqilla/context/ModuleResolver.hpp \ xqilla/context/URIResolver.hpp \ xqilla/context/VariableStore.hpp \ xqilla/context/Scope.hpp \ xqilla/context/VarHashEntry.hpp \ xqilla/context/VariableTypeStore.hpp \ xqilla/context/Collation.hpp \ xqilla/context/ExternalFunctionResolver.hpp \ xqilla/context/UpdateFactory.hpp \ xqilla/context/RegexGroupStore.hpp \ xqilla/context/impl/CollationImpl.hpp \ xqilla/context/impl/VarHashEntryImpl.hpp \ xqilla/context/impl/VarStoreImpl.hpp \ xqilla/context/impl/VariableStoreTemplate.hpp \ xqilla/context/impl/CodepointCollation.hpp \ xqilla/context/impl/XQContextImpl.hpp \ xqilla/context/impl/XQDynamicContextImpl.hpp \ xqilla/context/impl/ItemFactoryImpl.hpp \ xqilla/dom-api/impl/XQillaNSResolverImpl.hpp \ xqilla/dom-api/XPath2Result.hpp \ xqilla/dom-api/XQillaExpression.hpp \ xqilla/dom-api/XQillaNSResolver.hpp \ xqilla/exceptions/XQillaException.hpp \ xqilla/exceptions/ContextException.hpp \ xqilla/exceptions/ASTException.hpp \ xqilla/exceptions/DynamicErrorException.hpp \ xqilla/exceptions/FunctionException.hpp \ xqilla/exceptions/IllegalArgumentException.hpp \ xqilla/exceptions/ItemException.hpp \ xqilla/exceptions/NamespaceLookupException.hpp \ xqilla/exceptions/StaticErrorException.hpp \ xqilla/exceptions/TypeErrorException.hpp \ xqilla/exceptions/TypeNotFoundException.hpp \ xqilla/exceptions/XMLParseException.hpp \ xqilla/exceptions/XPath2ErrorException.hpp \ xqilla/exceptions/XPath2TypeCastException.hpp \ xqilla/exceptions/XPath2TypeMatchException.hpp \ xqilla/exceptions/XQException.hpp \ xqilla/exceptions/QueryInterruptedException.hpp \ xqilla/exceptions/QueryTimeoutException.hpp \ xqilla/functions/EXSLTMathFunction.hpp \ xqilla/functions/ExternalFunction.hpp \ xqilla/functions/FunctionLookup.hpp \ xqilla/functions/FunctionAnalyzeString.hpp \ xqilla/functions/FunctionAbs.hpp \ xqilla/functions/FunctionAcos.hpp \ xqilla/functions/FunctionAsin.hpp \ xqilla/functions/FunctionAtan.hpp \ xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp \ xqilla/functions/FunctionAdjustDateToTimezone.hpp \ xqilla/functions/FunctionAdjustTimeToTimezone.hpp \ xqilla/functions/FunctionBaseURI.hpp \ xqilla/functions/FunctionCaseFold.hpp \ xqilla/functions/FunctionCeiling.hpp \ xqilla/functions/FunctionCodepointsToString.hpp \ xqilla/functions/FunctionCollection.hpp \ xqilla/functions/FunctionCompare.hpp \ xqilla/functions/FunctionConcat.hpp \ xqilla/functions/FunctionContains.hpp \ xqilla/functions/FunctionCos.hpp \ xqilla/functions/FunctionCount.hpp \ xqilla/functions/FunctionCurrentDate.hpp \ xqilla/functions/FunctionCurrentDateTime.hpp \ xqilla/functions/FunctionCurrentTime.hpp \ xqilla/functions/FunctionDateTime.hpp \ xqilla/functions/FunctionDayFromDate.hpp \ xqilla/functions/FunctionDayFromDateTime.hpp \ xqilla/functions/FunctionDaysFromDuration.hpp \ xqilla/functions/FunctionDefaultCollation.hpp \ xqilla/functions/FunctionDistinctValues.hpp \ xqilla/functions/FunctionDocAvailable.hpp \ xqilla/functions/FunctionDoc.hpp \ xqilla/functions/FunctionDocument.hpp \ xqilla/functions/FunctionDocumentURI.hpp \ xqilla/functions/FunctionEmpty.hpp \ xqilla/functions/FunctionEndsWith.hpp \ xqilla/functions/FunctionExp.hpp \ xqilla/functions/FunctionError.hpp \ xqilla/functions/FunctionFloor.hpp \ xqilla/functions/FunctionFunctionArity.hpp \ xqilla/functions/FunctionFunctionName.hpp \ xqilla/functions/FunctionHoursFromDateTime.hpp \ xqilla/functions/FunctionHoursFromDuration.hpp \ xqilla/functions/FunctionHoursFromTime.hpp \ xqilla/functions/FunctionId.hpp \ xqilla/functions/FunctionIdref.hpp \ xqilla/functions/FunctionImplicitTimezone.hpp \ xqilla/functions/FunctionLang.hpp \ xqilla/functions/FunctionLast.hpp \ xqilla/functions/FunctionLocalNameFromQName.hpp \ xqilla/functions/FunctionLocalname.hpp \ xqilla/functions/FunctionLog.hpp \ xqilla/functions/FunctionLowerCase.hpp \ xqilla/functions/FunctionMatches.hpp \ xqilla/functions/FunctionMinutesFromDateTime.hpp \ xqilla/functions/FunctionMinutesFromDuration.hpp \ xqilla/functions/FunctionMinutesFromTime.hpp \ xqilla/functions/FunctionMonthFromDate.hpp \ xqilla/functions/FunctionMonthFromDateTime.hpp \ xqilla/functions/FunctionMonthsFromDuration.hpp \ xqilla/functions/FunctionName.hpp \ xqilla/functions/FunctionNamespaceURIFromQName.hpp \ xqilla/functions/FunctionNamespaceUri.hpp \ xqilla/functions/FunctionNilled.hpp \ xqilla/functions/FunctionNodeName.hpp \ xqilla/functions/FunctionNormalizeSpace.hpp \ xqilla/functions/FunctionNormalizeUnicode.hpp \ xqilla/functions/FunctionNot.hpp \ xqilla/functions/FunctionNumber.hpp \ xqilla/functions/FunctionParseHTML.hpp \ xqilla/functions/FunctionParseJSON.hpp \ xqilla/functions/FunctionExplain.hpp \ xqilla/functions/FunctionSentences.hpp \ xqilla/functions/FunctionSerializeJSON.hpp \ xqilla/functions/FunctionParseXML.hpp \ xqilla/functions/FunctionPosition.hpp \ xqilla/functions/FunctionPower.hpp \ xqilla/functions/FunctionPrefixFromQName.hpp \ xqilla/functions/FunctionQName.hpp \ xqilla/functions/FunctionRegexGroup.hpp \ xqilla/functions/FunctionReplace.hpp \ xqilla/functions/FunctionResolveURI.hpp \ xqilla/functions/FunctionRoot.hpp \ xqilla/functions/FunctionRoundHalfToEven.hpp \ xqilla/functions/FunctionRound.hpp \ xqilla/functions/FunctionSecondsFromDateTime.hpp \ xqilla/functions/FunctionSecondsFromDuration.hpp \ xqilla/functions/FunctionSecondsFromTime.hpp \ xqilla/functions/FunctionSin.hpp \ xqilla/functions/FunctionSqrt.hpp \ xqilla/functions/FunctionStartsWith.hpp \ xqilla/functions/FunctionStaticBaseURI.hpp \ xqilla/functions/FunctionString.hpp \ xqilla/functions/FunctionStringLength.hpp \ xqilla/functions/FunctionStringToCodepoints.hpp \ xqilla/functions/FunctionSubstring.hpp \ xqilla/functions/FunctionTan.hpp \ xqilla/functions/FunctionTime.hpp \ xqilla/functions/FunctionTimezoneFromDate.hpp \ xqilla/functions/FunctionTimezoneFromDateTime.hpp \ xqilla/functions/FunctionTimezoneFromTime.hpp \ xqilla/functions/FunctionTokenize.hpp \ xqilla/functions/FunctionTrace.hpp \ xqilla/functions/FunctionHead.hpp \ xqilla/functions/FunctionTail.hpp \ xqilla/functions/FunctionUnordered.hpp \ xqilla/functions/FunctionUnparsedText.hpp \ xqilla/functions/FunctionUpperCase.hpp \ xqilla/functions/FunctionWords.hpp \ xqilla/functions/FunctionYearFromDate.hpp \ xqilla/functions/FunctionYearFromDateTime.hpp \ xqilla/functions/FunctionYearsFromDuration.hpp \ xqilla/functions/FuncFactory.hpp \ xqilla/functions/FuncFactoryTemplate.hpp \ xqilla/functions/RegExpFunction.hpp \ xqilla/functions/XQUserFunction.hpp \ xqilla/functions/FunctionSignature.hpp \ xqilla/functions/XQillaFunction.hpp \ xqilla/functions/BuiltInModules.hpp \ xqilla/items/ATAnySimpleType.hpp \ xqilla/items/ATAnyURIOrDerived.hpp \ xqilla/items/ATBase64BinaryOrDerived.hpp \ xqilla/items/ATBooleanOrDerived.hpp \ xqilla/items/ATDateOrDerived.hpp \ xqilla/items/ATDateTimeOrDerived.hpp \ xqilla/items/ATDecimalOrDerived.hpp \ xqilla/items/ATDoubleOrDerived.hpp \ xqilla/items/ATDurationOrDerived.hpp \ xqilla/items/ATFloatOrDerived.hpp \ xqilla/items/ATGDayOrDerived.hpp \ xqilla/items/ATGMonthDayOrDerived.hpp \ xqilla/items/ATGMonthOrDerived.hpp \ xqilla/items/ATGYearMonthOrDerived.hpp \ xqilla/items/ATGYearOrDerived.hpp \ xqilla/items/ATHexBinaryOrDerived.hpp \ xqilla/items/ATNotationOrDerived.hpp \ xqilla/items/ATQNameOrDerived.hpp \ xqilla/items/ATStringOrDerived.hpp \ xqilla/items/ATTimeOrDerived.hpp \ xqilla/items/ATUntypedAtomic.hpp \ xqilla/items/AnyAtomicType.hpp \ xqilla/items/DateOrTimeType.hpp \ xqilla/items/FunctionRef.hpp \ xqilla/items/Item.hpp \ xqilla/items/Node.hpp \ xqilla/items/Numeric.hpp \ xqilla/items/Timezone.hpp \ xqilla/items/DatatypeLookup.hpp \ xqilla/items/DatatypeFactory.hpp \ xqilla/items/impl/ATBooleanOrDerivedImpl.hpp \ xqilla/items/impl/ATDecimalOrDerivedImpl.hpp \ xqilla/items/impl/ATDoubleOrDerivedImpl.hpp \ xqilla/items/impl/ATFloatOrDerivedImpl.hpp \ xqilla/items/impl/ATQNameOrDerivedImpl.hpp \ xqilla/items/impl/ATDurationOrDerivedImpl.hpp \ xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATDateOrDerivedImpl.hpp \ xqilla/items/impl/ATTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATGDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearOrDerivedImpl.hpp \ xqilla/mapm/m_apm.h \ xqilla/operators/And.hpp \ xqilla/operators/ArithmeticOperator.hpp \ xqilla/operators/ComparisonOperator.hpp \ xqilla/operators/Divide.hpp \ xqilla/operators/Equals.hpp \ xqilla/operators/Except.hpp \ xqilla/operators/GeneralComp.hpp \ xqilla/operators/GreaterThanEqual.hpp \ xqilla/operators/GreaterThan.hpp \ xqilla/operators/IntegerDivide.hpp \ xqilla/operators/Intersect.hpp \ xqilla/operators/LessThanEqual.hpp \ xqilla/operators/LessThan.hpp \ xqilla/operators/Minus.hpp \ xqilla/operators/Mod.hpp \ xqilla/operators/Multiply.hpp \ xqilla/operators/NodeComparison.hpp \ xqilla/operators/NotEquals.hpp \ xqilla/operators/OrderComparison.hpp \ xqilla/operators/Or.hpp \ xqilla/operators/Plus.hpp \ xqilla/operators/UnaryMinus.hpp \ xqilla/operators/Union.hpp \ xqilla/optimizer/Optimizer.hpp \ xqilla/optimizer/ASTCopier.hpp \ xqilla/optimizer/ASTReleaser.hpp \ xqilla/optimizer/ASTVisitor.hpp \ xqilla/optimizer/PartialEvaluator.hpp \ xqilla/optimizer/StaticTyper.hpp \ xqilla/optimizer/QueryPathNode.hpp \ xqilla/optimizer/QueryPathTreeGenerator.hpp \ xqilla/optimizer/ASTToXML.hpp \ xqilla/parser/QName.hpp \ xqilla/runtime/ClosureResult.hpp \ xqilla/runtime/TupleResult.hpp \ xqilla/runtime/Sequence.hpp \ xqilla/runtime/ResultBuffer.hpp \ xqilla/runtime/ResultBufferImpl.hpp \ xqilla/runtime/Result.hpp \ xqilla/runtime/ResultImpl.hpp \ xqilla/runtime/SequenceResult.hpp \ xqilla/runtime/EmptyResult.hpp \ xqilla/schema/DocumentCache.hpp \ xqilla/schema/SequenceType.hpp \ xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp \ xqilla/schema/DocumentCacheImpl.hpp \ xqilla/schema/SchemaValidatorFilter.hpp \ xqilla/simple-api/XQilla.hpp \ xqilla/simple-api/XQillaConfiguration.hpp \ xqilla/simple-api/XQQuery.hpp \ xqilla/update/FunctionPut.hpp \ xqilla/update/PendingUpdateList.hpp \ xqilla/update/UApplyUpdates.hpp \ xqilla/update/UDelete.hpp \ xqilla/update/URename.hpp \ xqilla/update/UReplace.hpp \ xqilla/update/UReplaceValueOf.hpp \ xqilla/update/UInsertAsFirst.hpp \ xqilla/update/UInsertAsLast.hpp \ xqilla/update/UInsertInto.hpp \ xqilla/update/UInsertAfter.hpp \ xqilla/update/UInsertBefore.hpp \ xqilla/update/UTransform.hpp \ xqilla/utils/NumUtils.hpp \ xqilla/utils/XPath2NSUtils.hpp \ xqilla/utils/XPath2Utils.hpp \ xqilla/utils/XMLChCompare.hpp \ xqilla/utils/XStr.hpp \ xqilla/utils/ContextUtils.hpp \ xqilla/utils/UTF8Str.hpp \ xqilla/utils/XQillaPlatformUtils.hpp \ xqilla/utils/UnicodeTransformer.hpp \ xqilla/utils/utf8proc.h \ xqilla/utils/DelayedModule.hpp \ xqilla/framework/ReferenceCounted.hpp \ xqilla/framework/XPath2MemoryManager.hpp \ xqilla/framework/BaseMemoryManager.hpp \ xqilla/framework/ProxyMemoryManager.hpp \ xqilla/framework/StringPool.hpp \ xqilla/framework/XPath2MemoryManagerImpl.hpp \ xqilla/framework/XQillaExport.hpp \ xqilla/xerces/XercesConfiguration.hpp \ xqilla/xqts/TestSuiteParser.hpp \ xqilla/xqts/TestSuiteResultListener.hpp \ xqilla/xqts/TestSuiteRunner.hpp all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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 include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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 install-nobase_includeHEADERS: $(nobase_include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ done uninstall-nobase_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" 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 $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nobase_includeHEADERS 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-nobase_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags 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-nobase_includeHEADERS \ 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 uninstall uninstall-am uninstall-nobase_includeHEADERS docs: $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp docsclean: rm -rf $(top_srcdir)/docs/simple-api $(top_srcdir)/docs/dom3-api $(top_srcdir)/docs/xqc-api && \ rm $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/.simple-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/simple_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.simpleapi && \ touch .simple-api-timestamp $(top_srcdir)/docs/Doxyfile.simpleapi: $(top_srcdir)/docs/Doxyfile.simpleapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.simpleapi.in >$(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/.dom3-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.dom3api cd $(top_srcdir)/docs && \ doxygen Doxyfile.dom3api && \ touch .dom3-api-timestamp $(top_srcdir)/docs/Doxyfile.dom3api: $(top_srcdir)/docs/Doxyfile.dom3api.in $(top_srcdir)/docs/dom3_header.html sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.dom3api.in >$(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/.xqc-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/xqc_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.xqc && \ touch .xqc-api-timestamp $(top_srcdir)/docs/Doxyfile.xqc: $(top_srcdir)/docs/Doxyfile.xqc.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.xqc.in >$(top_srcdir)/docs/Doxyfile.xqc devdocs: $(top_srcdir)/docs/.dev-api-timestamp devdocsclean: rm -rf $(top_srcdir)/docs/dev-api && \ rm $(top_srcdir)/docs/.dev-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.devapi $(top_srcdir)/docs/.dev-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.devapi cd $(top_srcdir)/docs && \ doxygen Doxyfile.devapi && \ touch .dev-api-timestamp $(top_srcdir)/docs/Doxyfile.devapi: $(top_srcdir)/docs/Doxyfile.devapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," $(top_srcdir)/docs/Doxyfile.devapi.in >$(top_srcdir)/docs/Doxyfile.devapi # Target to help keep the windows projects up-to-date winprojects: @echo " " >winprojects_files.xml @list='$(nobase_include_HEADERS)'; for f in $$list; do \ echo " " >>winprojects_files.xml; \ done @echo " " >>winprojects_files.xml # 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: XQilla-2.3.4/src/0000755001725400016040000000000013273141207010506 500000000000000XQilla-2.3.4/src/parser/0000755001725400016040000000000013273141207012002 500000000000000XQilla-2.3.4/src/parser/XQParser.y0000644001725400016040000053051613273140037013633 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ %{ #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) // turn off the warnings "switch statement contains 'default' but no 'case' labels" // "'yyerrlab1' : unreferenced label" #pragma warning(disable : 4065 4102) #endif #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../config/xqilla_config.h" #define YYPARSE_PARAM qp #define YYDEBUG 1 #define YYERROR_VERBOSE // this removes a memory leak occurring when an error is found in the query (we throw an exception from inside // yyerror, preventing the bison-generated code from cleaning up the memory); by defining this macro we use // stack-based memory instead of the heap #define YYSTACK_USE_ALLOCA 1 #if HAVE_ALLOCA_H #include #elif defined __GNUC__ #undef alloca #define alloca __builtin_alloca #elif defined _AIX #define alloca __alloca #elif defined _MSC_VER #include #else #include #ifdef __cplusplus extern "C" #endif void *alloca (size_t); #endif #define QP ((XQParserArgs*)qp) #define CONTEXT (QP->_context) #define LANGUAGE (QP->_lexer->getLanguage()) #define MEMMGR (QP->_lexer->getMemoryManager()) #define REJECT_NOT_XQUERY(where,pos) if(!QP->_lexer->isXQuery()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define REJECT_NOT_VERSION3(where,pos) if(!QP->_lexer->isVersion3()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define WRAP(pos,object) (wrapForDebug((QP), (object), (pos).first_line, (pos).first_column)) #define LOCATION(pos,name) LocationInfo name(QP->_lexer->getFile(), (pos).first_line, (pos).first_column) #define GET_NAVIGATION(pos, object) (((object)->getType() == ASTNode::NAVIGATION) ? (XQNav*)(object) : WRAP(pos, new (MEMMGR) XQNav((object), MEMMGR))) #define PRESERVE_NS(pos, object) (QP->_lexer->getNSResolver() == 0 ? (object) : WRAP((pos), new (MEMMGR) XQNamespaceBinding(QP->_lexer->getNSResolver(), (object), MEMMGR))) #define BIT_ORDERING_SPECIFIED 0 #define BIT_BOUNDARY_SPECIFIED 1 #define BIT_COLLATION_SPECIFIED 2 #define BIT_BASEURI_SPECIFIED 3 #define BIT_CONSTRUCTION_SPECIFIED 4 #define BIT_EMPTYORDERING_SPECIFIED 5 #define BIT_COPYNAMESPACE_SPECIFIED 6 #define BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED 7 #define BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED 8 #define BIT_DECLARE_SECOND_STEP 9 #define BIT_REVALIDATION_SPECIFIED 10 #define CHECK_SECOND_STEP(pos, name) { \ if(QP->_flags.get(BIT_DECLARE_SECOND_STEP)) \ yyerror((pos), "Prolog contains " name " declaration after a variable, function or option declaration"); \ } #define CHECK_SPECIFIED(pos, bit, name, error) { \ if(QP->_flags.get(bit)) \ yyerror((pos), "Prolog contains more than one " name " declaration [err:" error "]"); \ QP->_flags.set(bit); \ } #define SET_NAMESPACE(pos, prefix, uri) { \ if(QP->_namespaceDecls.containsKey((prefix))) \ yyerror((pos), "Namespace prefix has already been bound to a namespace [err:XQST0033]"); \ QP->_namespaceDecls.put((prefix), NULL); \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #define SET_BUILT_IN_NAMESPACE(prefix, uri) { \ if(!QP->_namespaceDecls.containsKey((prefix))) \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #undef yylex #define yylex QP->_lexer->yylex #undef yyerror #define yyerror QP->_lexer->error XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh sz1_0[] = { chDigit_1, chPeriod, chDigit_0, chNull }; static const XMLCh sz3_0[] = { chDigit_3, chPeriod, chDigit_0, chNull }; static const XMLCh option_projection[] = { 'p', 'r', 'o', 'j', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh option_psvi[] = { 'p', 's', 'v', 'i', 0 }; static const XMLCh option_lint[] = { 'l', 'i', 'n', 't', 0 }; static const XMLCh var_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh XMLChXS[] = { chLatin_x, chLatin_s, chNull }; static const XMLCh XMLChXSI[] = { chLatin_x, chLatin_s, chLatin_i, chNull }; static const XMLCh XMLChFN[] = { chLatin_f, chLatin_n, chNull }; static const XMLCh XMLChLOCAL[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chNull }; static const XMLCh XMLChERR[] = { chLatin_e, chLatin_r, chLatin_r, chNull }; static inline VectorOfASTNodes packageArgs(ASTNode *arg1Impl, ASTNode *arg2Impl, XPath2MemoryManager* memMgr) { VectorOfASTNodes args=VectorOfASTNodes(2,(ASTNode*)NULL,XQillaAllocator(memMgr)); args[0]=arg1Impl; args[1]=arg2Impl; return args; } static inline TupleNode *getLastAncestor(TupleNode *node) { while(node->getParent()) node = const_cast(node->getParent()); return node; } static inline TupleNode *setLastAncestor(TupleNode *node, TupleNode *ancestor) { getLastAncestor(node)->setParent(ancestor); return node; } template TYPE *wrapForDebug(XQParserArgs *qp, TYPE* pObjToWrap, unsigned int line, unsigned int column) { if(pObjToWrap->getLine() == 0) pObjToWrap->setLocationInfo(QP->_lexer->getFile(), line, column); return pObjToWrap; } #define RESOLVE_QNAME(pos, qname) const XMLCh *uri, *name; resolveQName((pos), QP, (qname), uri, name) static void resolveQName(const yyltype &pos, XQParserArgs *qp, const XMLCh *qname, const XMLCh *&uri, const XMLCh *&name) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname, MEMMGR); name = XPath2NSUtils::getLocalName(qname); if(prefix == 0 || *prefix == 0) { uri = 0; } else { if(QP->_lexer->getNSResolver() == 0) { if(prefix == 0 || *prefix == 0) uri = CONTEXT->getDefaultElementAndTypeNS(); else uri = CONTEXT->getNSResolver()->lookupNamespaceURI(prefix); } else { uri = QP->_lexer->getNSResolver()->lookupNamespaceURI(prefix); } if(uri == 0 || *uri == 0) { ostringstream oss; oss << "No namespace binding for prefix '" << UTF8(prefix) << "' [err:XTSE0280]"; yyerror(pos, oss.str().c_str()); } } } #define XSLT_VARIABLE_VALUE(pos, select, seqConstruct, seqType) variableValueXSLT((pos), QP, (select), (seqConstruct), (seqType)) static ASTNode *variableValueXSLT(const yyltype &pos, XQParserArgs *qp, ASTNode *select, XQSequence *seqConstruct, SequenceType *seqType) { if(!seqConstruct->getChildren().empty()) { if(select != 0) return 0; // signifies an error if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQDocumentConstructor(seqConstruct, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(seqConstruct, seqType, MEMMGR)); } if(select != 0) { if(seqType == 0) return select; return WRAP(pos, new (MEMMGR) XQFunctionConversion(select, seqType, MEMMGR)); } if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, XMLUni::fgZeroLenString, AnyAtomicType::STRING, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(WRAP(pos, new (MEMMGR) XQSequence(MEMMGR)), seqType, MEMMGR)); } namespace XQParser { %} /* this gives a nice name to the $end token */ %token MYEOF 0 "" /* "Fake" tokens that decide which language we're parsing */ %token _LANG_XPATH2_ "" %token _LANG_XQUERY_ "" %token _LANG_XSLT2_ "" %token _LANG_FUNCDECL_ "" %token _LANG_DELAYEDMODULE_ "" %token _LANG_FUNCTION_SIGNATURE_ "" %token _DOLLAR_ "$" %token _COLON_EQUALS_ ":=" %token _ASTERISK_ "*" %token _BAR_ "|" %token _BANG_EQUALS_ "!=" %token _LESS_THAN_EQUALS_ "<=" %token _GREATER_THAN_ "> (comparison operator)" %token _GREATER_THAN_EQUALS_ ">=" %token _LESS_THAN_LESS_THAN_ "<<" %token _GREATER_THAN_GREATER_THAN_ ">>" %token _COLON_COLON_ "::" %token _AT_SIGN_ "@" %token _LSQUARE_ "[" %token _RSQUARE_ "]" %token _QUESTION_MARK_ "?" %token _LESS_THAN_OP_OR_TAG_ "<" %token _START_TAG_CLOSE_ "> (start tag close)" %token _END_TAG_CLOSE_ "> (end tag close)" %token _PI_START_ "" %token _SLASH_SLASH_ "//" %token _END_TAG_OPEN_ "" %token _VALUE_INDICATOR_ "=" %token _OPEN_QUOT_ "\" (open)" %token _CLOSE_QUOT_ "\" (close)" %token _OPEN_APOS_ "' (open)" %token _CLOSE_APOS_ "' (close)" %token _LBRACE_ "{" %token _RBRACE_ "}" %token _SEMICOLON_ ";" %token _HASH_ "#" %token _INTEGER_LITERAL_ "" %token _DECIMAL_LITERAL_ "" %token _DOUBLE_LITERAL_ "" %token _ATTRIBUTE_ "attribute" %token _COMMENT_ "comment" %token _DOCUMENT_NODE_ "document-node" %token _NAMESPACE_NODE_ "namespace-node" %token _NODE_ "node" %token _PROCESSING_INSTRUCTION_ "processing-instruction" %token _SCHEMA_ATTRIBUTE_ "schema-attribute" %token _SCHEMA_ELEMENT_ "schema-element" %token _TEXT_ "text" %token _EMPTY_SEQUENCE_ "empty-sequence" %token _BOUNDARY_SPACE_ "boundary-space" %token _FT_OPTION_ "ft-option" %token _BASE_URI_ "base-uri" %token _LAX_ "lax" %token _STRICT_ "strict" %token _IDIV_ "idiv" %token _CHILD_ "child" %token _DESCENDANT_ "descendant" %token _SELF_ "self" %token _DESCENDANT_OR_SELF_ "descendant-or-self" %token _FOLLOWING_SIBLING_ "following-sibling" %token _FOLLOWING_ "following" %token _PARENT_ "parent" %token _ANCESTOR_ "ancestor" %token _PRECEDING_SIBLING_ "preceding-sibling" %token _PRECEDING_ "preceding" %token _ANCESTOR_OR_SELF_ "ancestor-of-self" %token _DOCUMENT_ "document" %token _NOT_ "not" %token _USING_ "using" %token _NO_ "no" %token _SENSITIVE_ "sensitive" %token _INSENSITIVE_ "insensitive" %token _DIACRITICS_ "diacritics" %token _WITHOUT_ "without" %token _WITHOUT_C_ "without (followed by content)" %token _STEMMING_ "stemming" %token _THESAURUS_ "thesaurus" %token _STOP_ "stop" %token _WILDCARDS_ "wildcards" %token _ENTIRE_ "entire" %token _CONTENT_ "content" %token _WORD_ "word" %token _TYPE_ "type" %token _START_ "start" %token _END_ "end" %token _MOST_ "most" %token _SKIP_ "skip" %token _COPY_ "copy" %token _VALUE_ "value" %token _WHITESPACE_ "" %token _PI_CONTENT_ "" %token _XML_COMMENT_CONTENT_ "" %token _EQ_ "eq" %token _NE_ "ne" %token _LT_ "lt" %token _LE_ "le" %token _GT_ "gt" %token _GE_ "ge" %token _AT_ "at" %token _QUOT_ATTR_CONTENT_ "" %token _APOS_ATTR_CONTENT_ "" %token _WHITESPACE_ELEMENT_CONTENT_ "" %token _ELEMENT_CONTENT_ "" %token _AT_LM_ "at (followed by least or most)" %token _ORDERED_ "ordered" %token _UNORDERED_ "unordered" %token _QNAME_ "" %token _XMLNS_QNAME_ "" %token _CONSTR_QNAME_ "" %token _STRING_LITERAL_ "'...'" %token _VARIABLE_ "variable" %token _NCNAME_COLON_STAR_ ":*" %token _STAR_COLON_NCNAME_ "*:" %token _PI_TARGET_ "" %token _PRAGMA_CONTENT_ "" %token _RETURN_ "return" %token _FOR_ "for" %token _IN_ "in" %token _LET_ "let" %token _WHERE_ "where" %token _COUNT_ "count" %token _BY_ "by" %token _ORDER_ "order" %token _STABLE_ "stable" %token _ASCENDING_ "ascending" %token _DESCENDING_ "descending" %token _EMPTY_ "empty" %token _GREATEST_ "greatest" %token _LEAST_ "least" %token _COLLATION_ "collation" %token _SOME_ "some" %token _EVERY_ "every" %token _SATISFIES_ "satisfies" %token _TYPESWITCH_ "typeswitch" %token _CASE_ "case" %token _CASE_S_ "case (followed by (in)sensitive)" %token _AS_ "as" %token _IF_ "if" %token _THEN_ "then" %token _ELSE_ "else" %token _OR_ "or" %token _AND_ "and" %token _INSTANCE_ "instance" %token _OF_ "of" %token _CASTABLE_ "castable" %token _TO_ "to" %token _DIV_ "div" %token _MOD_ "mod" %token _UNION_ "union" %token _INTERSECT_ "intersect" %token _EXCEPT_ "except" %token _VALIDATE_ "validate" %token _CAST_ "cast" %token _TREAT_ "treat" %token _IS_ "is" %token _PRESERVE_ "preserve" %token _STRIP_ "strip" %token _NAMESPACE_ "namespace" %token _ITEM_ "item" %token _EXTERNAL_ "external" %token _ENCODING_ "encoding" %token _NO_PRESERVE_ "no-preserve" %token _INHERIT_ "inherit" %token _NO_INHERIT_ "no-inherit" %token _DECLARE_ "declare" %token _CONSTRUCTION_ "construction" %token _ORDERING_ "ordering" %token _DEFAULT_ "default" %token _COPY_NAMESPACES_ "copy-namespaces" %token _OPTION_ "option" %token _XQUERY_ "xquery" %token _VERSION_ "version" %token _IMPORT_ "import" %token _SCHEMA_ "schema" %token _MODULE_ "module" %token _ELEMENT_ "element" %token _FUNCTION_ "function" %token _FUNCTION_EXT_ "function (ext)" %token _SCORE_ "score" %token _CONTAINS_ "contains" %token _WEIGHT_ "weight" %token _WINDOW_ "window" %token _DISTANCE_ "distance" %token _OCCURS_ "occurs" %token _TIMES_ "times" %token _SAME_ "same" %token _DIFFERENT_ "different" %token _LOWERCASE_ "lowercase" %token _UPPERCASE_ "uppercase" %token _RELATIONSHIP_ "relationship" %token _LEVELS_ "levels" %token _LANGUAGE_ "language" %token _ANY_ "any" %token _ALL_ "all" %token _PHRASE_ "phrase" %token _EXACTLY_ "exactly" %token _FROM_ "from" %token _WORDS_ "words" %token _SENTENCES_ "sentences" %token _PARAGRAPHS_ "paragraphs" %token _SENTENCE_ "sentence" %token _PARAGRAPH_ "paragraph" %token _REPLACE_ "replace" %token _MODIFY_ "modify" %token _FIRST_ "first" %token _INSERT_ "insert" %token _BEFORE_ "before" %token _AFTER_ "after" %token _REVALIDATION_ "revalidation" %token _WITH_ "with" %token _NODES_ "nodes" %token _RENAME_ "rename" %token _LAST_ "last" %token _DELETE_ "delete" %token _INTO_ "into" %token _UPDATING_ "updating" %token _ID_ "id" %token _KEY_ "key" %token _TEMPLATE_ "template" %token _MATCHES_ "matches" %token _NAME_ "name" %token _CALL_ "call" %token _APPLY_ "apply" %token _TEMPLATES_ "templates" %token _MODE_ "mode" %token _FTOR_ "ftor" %token _FTAND_ "ftand" %token _FTNOT_ "ftnot" %token _PRIVATE_ "private" %token _PUBLIC_ "public" %token _DETERMINISTIC_ "deterministic" %token _NONDETERMINISTIC_ "nondeterministic" /* XSLT 2.0 tokens */ %token _XSLT_END_ELEMENT_ "" %token _XSLT_STYLESHEET_ " _XSLT_VERSION_ "version='...'" %token _XSLT_MODE_ "mode='...'" %token _XSLT_NAME_ "name='...'" %token _XSLT_DOCTYPE_PUBLIC_ "doctype-public='...'" %token _XSLT_DOCTYPE_SYSTEM_ "doctype-system='...'" %token _XSLT_ENCODING_ "encoding='...'" %token _XSLT_MEDIA_TYPE_ "media-type='...'" %token _XSLT_NORMALIZATION_FORM_ "normalization-form='...'" %token _XSLT_STANDALONE_ "standalone='...'" %token _XSLT_EXCLUDE_RESULT_PREFIXES_ "exclude-result-prefixes='...'" %token _XSLT_NAMESPACE_STR_ "namespace='...' (string)" %token _XSLT_SCHEMA_LOCATION_ "schema-location='...'" %token _XSLT_TUNNEL_ "tunnel='...'" %token _XSLT_REQUIRED_ "required='...'" %token _XSLT_OVERRIDE_ "override='...'" %token _XSLT_COPY_NAMESPACES_ "copy-namespaces='...'" %token _XSLT_INHERIT_NAMESPACES_ "inherit-namespaces='...'" %token _XSLT_BYTE_ORDER_MARK_ "byte-order-mark='...'" %token _XSLT_ESCAPE_URI_ATTRIBUTES_ "escape-uri-attributes='...'" %token _XSLT_INCLUDE_CONTENT_TYPE_ "include-content-type='...'" %token _XSLT_INDENT_ "indent='...'" %token _XSLT_OMIT_XML_DECLARATION_ "omit-xml-declaration='...'" %token _XSLT_UNDECLARE_PREFIXES_ "undeclare-prefixes='...'" %token _XSLT_MATCH_ "match='...'" %token _XSLT_AS_ "as='...'" %token _XSLT_SELECT_ "select='...'" %token _XSLT_PRIORITY_ "priority='...'" %token _XSLT_TEST_ "test='...'" %token _XSLT_SEPARATOR_ "separator='...'" %token _XSLT_NAMESPACE_A_ "namespace='...' (attribute value template)" %token _XSLT_REGEX_ "regex='...'" %token _XSLT_FLAGS_ "flags='...'" %token _XSLT_METHOD_ "method='...'" %token _XSLT_CDATA_SECTION_ELEMENTS_ "cdata-section-elements='...'" %token _XSLT_USE_CHARACTER_MAPS_ "use-character-maps='...'" %token _XSLT_ELEMENT_NAME_ "" %token _XSLT_XMLNS_ATTR_ "" %token _XSLT_ATTR_NAME_ "" %token _XSLT_TEXT_NODE_ "" %token _XSLT_WS_TEXT_NODE_ "" %token _HASH_DEFAULT_ "#default" %token _HASH_ALL_ "#all" %token _HASH_CURRENT_ "#current" %token _XML_ "xml" %token _HTML_ "html" %token _XHTML_ "xhtml" %type FunctionDecl TemplateDecl FunctionAttrs_XSLT TemplateAttrs_XSLT %type GlobalVariableAttrs_XSLT GlobalParamAttrs_XSLT %type Param Param_XSLT ParamAttrs_XSLT %type ParamList FunctionParamList TemplateParamList ParamList_XSLT %type Expr ExprSingle OrExpr AndExpr EnclosedExpr FLWORExpr IfExpr ComparisonExpr DecimalLiteral VarRef %type RangeExpr AdditiveExpr MultiplicativeExpr UnionExpr QuantifiedExpr StringLiteral Literal ContextItemExpr %type UnaryExpr ValidateExpr CastExpr TreatExpr IntersectExceptExpr ParenthesizedExpr PrimaryExpr FunctionCall %type RelativePathExpr StepExpr AxisStep PostfixExpr TypeswitchExpr ValueExpr PathExpr NumericLiteral IntegerLiteral %type CastableExpr Constructor ComputedConstructor DirElemConstructor DirCommentConstructor DirPIConstructor %type CompElemConstructor CompTextConstructor CompPIConstructor CompCommentConstructor OrderedExpr UnorderedExpr %type CompAttrConstructor CompDocConstructor DoubleLiteral InstanceofExpr DirectConstructor %type ExtensionExpr FTContainsExpr FTIgnoreOption VarDeclValue LeadingSlash CompPINCName %type InsertExpr DeleteExpr RenameExpr ReplaceExpr TransformExpr CompElementName CompAttrName %type ForwardStep ReverseStep AbbrevForwardStep AbbrevReverseStep OrderExpr CompPIConstructorContent %type PathPattern_XSLT IdValue_XSLT KeyValue_XSLT CallTemplateExpr ApplyTemplatesExpr %type DynamicFunctionInvocation InlineFunction LiteralFunctionItem FunctionItemExpr %type ForwardStepPredicateList ReverseStepPredicateList Argument FunctionBody CompNamespaceConstructor %type LiteralResultElement_XSLT ValueOf_XSLT ValueOfAttrs_XSLT Text_XSLT TextNode_XSLT ApplyTemplates_XSLT %type ApplyTemplatesAttrs_XSLT CallTemplate_XSLT CallTemplateAttrs_XSLT Sequence_XSLT Choose_XSLT If_XSLT %type WhenList_XSLT When_XSLT Otherwise_XSLT Variable_XSLT Comment_XSLT CommentAttrs_XSLT %type PI_XSLT PIAttrs_XSLT Document_XSLT DocumentAttrs_XSLT Attribute_XSLT AttributeAttrs_XSLT %type AnalyzeString_XSLT AnalyzeStringAttrs_XSLT MatchingSubstring_XSLT NonMatchingSubstring_XSLT %type CopyOf_XSLT CopyOfAttrs_XSLT Copy_XSLT CopyAttrs_XSLT ForEach_XSLT ForEachAttrs_XSLT Instruction_XSLT %type SequenceAttrs_XSLT IfAttrs_XSLT WhenAttrs_XSLT Element_XSLT ElementAttrs_XSLT Namespace_XSLT NamespaceAttrs_XSLT %type RelativePathPattern_XSLT PatternStep_XSLT IdKeyPattern_XSLT PathPatternStart_XSLT %type SequenceConstructor_XSLT %type FTSelection FTWords FTUnaryNot FTMildnot FTAnd FTOr FTPrimaryWithOptions FTPrimary FTExtensionSelection %type FTPosFilter %type FTPosFilters %type FTAnyallOption %type FTRange %type FTUnit FTBigUnit %type DirElementContent DirAttributeList QuotAttrValueContent AposAttrValueContent DirAttributeValue FunctionCallArgumentList %type ContentExpr LiteralDirAttributeValue LiteralQuotAttrValueContent LiteralAposAttrValueContent AttrValueTemplate_XSLT Pattern_XSLT %type LiteralResultElementAttrs_XSLT %type PatternStepPredicateList_XSLT %type ForwardAxis ReverseAxis %type NodeTest NameTest Wildcard PatternAxis_XSLT %type QName AtomicType TypeName ElementName AttributeName ElementNameOrWildcard AttribNameOrWildcard AttributeDeclaration ElementDeclaration %type SequenceType TypeDeclaration SingleType TemplateSequenceType FunctionDeclReturnType %type FunctionTypeArguments %type OccurrenceIndicator SingleTypeOccurrence %type ItemType KindTest AttributeTest SchemaAttributeTest PITest CommentTest TextTest AnyKindTest ElementTest DocumentTest SchemaElementTest %type FunctionTest AnyFunctionTest TypedFunctionTest ParenthesizedItemType NamespaceNodeTest %type TransformBinding %type TransformBindingList %type TemplateArgument WithParamAttrs_XSLT WithParam_XSLT %type TemplateArgumentList ApplyTemplatesContent_XSLT CallTemplateContent_XSLT %type ForBinding LetBinding WhereClause FLWORTuples OrderByClause OrderSpec OrderSpecList CountClause %type ForClause LetClause ForBindingList LetBindingList QuantifyBinding QuantifyBindingList InitialClause IntermediateClause %type VariableAttrs_XSLT %type DefaultCase %type CaseClauseList CaseClause CaseSequenceTypeUnion %type OrderDirection EmptyHandling %type ResourceLocations %type PositionalVar SchemaPrefix URILiteral FTScoreVar DirCommentContents DirElemConstructorQName %type FunctionName QNameValue VarName NCName DirPIContents PragmaContents Number_XSLT CaseClauseVariable %type TemplateModes_XSLT TemplateDeclModesSection TemplateDeclModes %type ApplyTemplatesMode_XSLT ApplyTemplatesMode TemplateDeclMode %type FunctionOptions %type PreserveMode InheritMode PrivateOption DeterministicOption %start SelectLanguage %pure_parser // We're expecting 50 shift/reduce conflicts. These have been checked and are harmless. // 48 arise from the xgs:leading-lone-slash grammar constraint (http://www.w3.org/TR/xquery/#parse-note-leading-lone-slash) // 2 arise from the xgs:occurrence-indicator grammar constriant (http://www.w3.org/TR/xquery/#parse-note-occurence-indicators) //%expect 50 // We're expecting 90 shift/reduce conflicts. These have been checked and are harmless. // 49 arise from the xgs:leading-lone-slash grammar constraint (http://www.w3.org/TR/xquery/#parse-note-leading-lone-slash) // 3 arise from the xgs:occurrence-indicator grammar constriant (http://www.w3.org/TR/xquery/#parse-note-occurence-indicators) // 17 are due to template extensions // 21 are due to Variable_XSLT %expect 90 %% // Select the language we parse, based on the (fake) first token from the lexer SelectLanguage: _LANG_XPATH2_ XPathBuiltinNamespaces QueryBody | _LANG_XQUERY_ XQueryBuiltinNamespaces Module | _LANG_FUNCDECL_ XQueryBuiltinNamespaces Start_FunctionDecl | _LANG_XSLT2_ Start_XSLT | _LANG_DELAYEDMODULE_ Start_DelayedModule | _LANG_FUNCTION_SIGNATURE_ Start_FunctionSignature ; XPathBuiltinNamespaces: /* empty */ { SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } ; XQueryBuiltinNamespaces: /* empty */ { SET_BUILT_IN_NAMESPACE(XMLChXS, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); SET_BUILT_IN_NAMESPACE(XMLChXSI, SchemaSymbols::fgURI_XSI); SET_BUILT_IN_NAMESPACE(XMLChFN, XQFunction::XMLChFunctionURI); SET_BUILT_IN_NAMESPACE(XMLChLOCAL, XQUserFunction::XMLChXQueryLocalFunctionsURI); SET_BUILT_IN_NAMESPACE(XMLChERR, FunctionError::XMLChXQueryErrorURI); SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } ; Start_FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType EnclosedExpr FunctionDecl_MaybeSemicolon { $2->argSpecs = $5; $2->returnType = $6; QP->_function = WRAP(@1, new (MEMMGR) XQUserFunction($4, $2, $7, true, MEMMGR)); } ; FunctionDecl_MaybeSemicolon: /* empty */ | Separator; Start_FunctionSignature: FunctionOptions FunctionParamList FunctionDeclReturnType { $1->argSpecs = $2; $1->returnType = $3; QP->_signature = $1; } ; Start_DelayedModule: DM_ModuleDecl DM_Prolog { printf(" { 0, 0, 0, 0, 0 }\n};\n\n"); UTF8Str module(QP->_moduleName); printf("static const DelayedModule %s_module = { %s_file, %s_prefix, %s_uri, %s_functions };\n", module.str(), module.str(), module.str(), module.str(), module.str()); } ; DM_ModuleDecl: _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral Separator { QP->_moduleName = $3; UTF8Str module(QP->_moduleName); UTF8Str file(QP->_lexer->getFile()); printf("// Auto-generated by compile-delayed-module from %s\n", file.str()); printf("// DO NOT EDIT\n\n"); printf("// %s\n", file.str()); printf("static const XMLCh %s_file[] = { ", module.str()); const XMLCh *ptr = QP->_lexer->getFile(); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8($3)); printf("static const XMLCh %s_prefix[] = { ", module.str()); ptr = $3; for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8($5)); printf("static const XMLCh %s_uri[] = { ", module.str()); ptr = $5; for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); } ; DM_Prolog: /* empty */ { printf("static const DelayedModule::FuncDef %s_functions[] = {\n", UTF8(QP->_moduleName)); } | DM_Prolog DM_FunctionDecl { } ; DM_FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType EnclosedExpr Separator { XMLBuffer buf; const XMLCh *localname = XPath2NSUtils::getLocalName($4); printf(" {\n \"%s\", %d, %s, %d, %d,\n", UTF8(localname), (int)($5 ? $5->size() : 0), $2->privateOption == FunctionSignature::OP_TRUE ? "true" : "false", @1.first_line, @1.first_column); printf(" \""); const XMLCh *ptr = ((XQLexer*)QP->_lexer)->getQueryString() + @1.first_offset; const XMLCh *start = ptr; const XMLCh *end = ((XQLexer*)QP->_lexer)->getQueryString() + @8.last_offset; for(;ptr < end; ++ptr) { if(*ptr == '"') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\\"", UTF8(buf.getRawBuffer())); start = ptr + 1; } else if(*ptr == '\n') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\n\"\n \"", UTF8(buf.getRawBuffer())); start = ptr + 1; } } buf.set(start, ptr - start); printf("%s\\n\"\n", UTF8(buf.getRawBuffer())); printf(" },\n"); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XSLT rules Start_XSLT: Stylesheet_XSLT { SequenceType *optionalString = WRAP(@1, new (MEMMGR) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, MEMMGR)); XQGlobalVariable *nameVar = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, optionalString, WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)), MEMMGR, /*isParam*/true)); nameVar->setVariableURI(XQillaFunction::XMLChFunctionURI); nameVar->setVariableLocalName(var_name); QP->_query->addVariable(nameVar); ASTNode *nameVarRef1 = WRAP(@1, new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR)); XQCallTemplate *call = WRAP(@1, new (MEMMGR) XQCallTemplate(nameVarRef1, 0, MEMMGR)); ASTNode *ci = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); ASTNode *apply = WRAP(@1, new (MEMMGR) XQApplyTemplates(ci, 0, 0, MEMMGR)); VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back(WRAP(@1, new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR))); ASTNode *exists = WRAP(@1, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("exists"), args, MEMMGR)); QP->_query->setQueryBody(WRAP(@1, new (MEMMGR) XQIf(exists, call, apply, MEMMGR))); } ; Stylesheet_XSLT: _XSLT_STYLESHEET_ StylesheetAttrs_XSLT StylesheetContent_XSLT _XSLT_END_ELEMENT_ { } | LiteralResultElement_XSLT { // TBD Check for xsl:version attr - jpcs NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); VectorOfASTNodes *pattern = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); pattern->push_back(WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR))); XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); XQUserFunction *func = WRAP(@1, new (MEMMGR) XQUserFunction(0, pattern, signature, $1, MEMMGR)); func->setModeList(modelist); QP->_query->addFunction(func); } ; StylesheetAttrs_XSLT: /* empty */ | StylesheetAttrs_XSLT _XSLT_VERSION_ { // TBD Check the value - jpcs } | StylesheetAttrs_XSLT _XSLT_EXCLUDE_RESULT_PREFIXES_ { // TBD implement exclude-result-prefixes - jpcs } // TBD the rest of the attrs - jpcs ; StylesheetContent_XSLT: /* empty */ | StylesheetContent_XSLT Template_XSLT | StylesheetContent_XSLT Function_XSLT | StylesheetContent_XSLT GlobalParam_XSLT | StylesheetContent_XSLT GlobalVariable_XSLT | StylesheetContent_XSLT Output_XSLT | StylesheetContent_XSLT ImportSchema_XSLT ; Template_XSLT: TemplateAttrs_XSLT ParamList_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->getName() == 0 && $1->getPattern() == 0) { yyerror(@1, "The xsl:template declaration does not have either a {}name or {}match attribute, or both [err:XTSE0500]"); } if($1->getPattern() != 0 && $1->getModeList() == 0) { XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); $1->setModeList(modelist); } $1->getSignature()->argSpecs = $2; $1->setFunctionBody($3); QP->_query->addFunction($1); } ; TemplateAttrs_XSLT: _XSLT_TEMPLATE_ { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, 0, signature, 0, MEMMGR)); } | TemplateAttrs_XSLT _XSLT_MATCH_ Pattern_XSLT { $$ = $1; $$->setPattern($3); } | TemplateAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | TemplateAttrs_XSLT _XSLT_PRIORITY_ Number_XSLT { $$ = $1; // TBD priority - jpcs } | TemplateAttrs_XSLT _XSLT_MODE_ TemplateModes_XSLT { $$ = $1; $$->setModeList($3); } | TemplateAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->getSignature()->returnType = $3; } ; TemplateModes_XSLT: /* empty */ { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); } | TemplateModes_XSLT _QNAME_ { RESOLVE_QNAME(@2, $2); $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(uri, name))); $$ = $1; } | TemplateModes_XSLT _HASH_DEFAULT_ { $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); $$ = $1; } | TemplateModes_XSLT _HASH_ALL_ { $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL))); $$ = $1; } ; Number_XSLT: _INTEGER_LITERAL_ | _DECIMAL_LITERAL_ | _DOUBLE_LITERAL_; Function_XSLT: FunctionAttrs_XSLT ParamList_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->getName() == 0) { yyerror(@1, "The xsl:function declaration does not have a {}name attribute"); } $1->getSignature()->argSpecs = $2; $1->setFunctionBody($3); QP->_query->addFunction($1); } ; FunctionAttrs_XSLT: _XSLT_FUNCTION_ { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, signature, 0, true, MEMMGR)); } | FunctionAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | FunctionAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->getSignature()->returnType = $3; } | FunctionAttrs_XSLT _XSLT_OVERRIDE_ { $$ = $1; // TBD override - jpcs } ; ParamList_XSLT: /* empty */ { $$ = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); } | ParamList_XSLT Param_XSLT { $$ = $1; $$->push_back($2); } ; Param_XSLT: ParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; if($$->getName() == 0) { yyerror(@1, "The xsl:param instruction does not have a {}name attribute"); } if($$->getType() == 0) { $$->setType(WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR))); } // TBD default parameter values - jpcs /* if(!$2->getChildren().empty()) { */ /* if($$->value != 0) { */ /* yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); */ /* } */ /* $$->value = $2; */ /* } */ /* else if($$->value == 0) { */ /* yyerror(@1, "The xsl:with-param instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); */ /* } */ } ; ParamAttrs_XSLT: _XSLT_PARAM_ { $$ = WRAP(@1, new (MEMMGR) ArgumentSpec(0, 0, MEMMGR)); } | ParamAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | ParamAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; // TBD default parameter values - jpcs /* $$->value = PRESERVE_NS(@2, $3); */ } | ParamAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->setType($3); } | ParamAttrs_XSLT _XSLT_REQUIRED_ { $$ = $1; // TBD required - jpcs } | ParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; // TBD tunnel parameters - jpcs } ; GlobalParam_XSLT: GlobalParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->isRequired()) { if($1->getVariableExpr() != 0 || !$2->getChildren().empty()) { yyerror(@1, "A required xsl:param declaration must be empty and must not specify a {}select attribute"); } } else { $1->setVariableExpr(XSLT_VARIABLE_VALUE(@1, (ASTNode*)$1->getVariableExpr(), $2, (SequenceType*)$1->getSequenceType())); if($1->getVariableExpr() == 0) { yyerror(@1, "The xsl:param declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } } if($1->getVariableLocalName() == 0) { yyerror(@1, "The xsl:param declaration does not have a {}name attribute"); } QP->_query->addVariable($1); } ; GlobalParamAttrs_XSLT: _XSLT_PARAM_ { $$ = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR, /*isParam*/true)); } | GlobalParamAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVariableURI(uri); $1->setVariableLocalName(name); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_SELECT_ Expr { $1->setVariableExpr(PRESERVE_NS(@2, $3)); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_AS_ SequenceType { $1->setSequenceType($3); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_REQUIRED_ { $$ = $1; $$->setRequired($2); } | GlobalParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; if($2) { yyerror(@2, "An xsl:param declaration cannot have a {}tunnel attribute with a value of \"yes\""); } } ; GlobalVariable_XSLT: GlobalVariableAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $1->setVariableExpr(XSLT_VARIABLE_VALUE(@1, (ASTNode*)$1->getVariableExpr(), $2, (SequenceType*)$1->getSequenceType())); $1->setSequenceType(0); if($1->getVariableExpr() == 0) { yyerror(@1, "The xsl:variable declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } if($1->getVariableLocalName() == 0) { yyerror(@1, "The xsl:variable declaration does not have a {}name attribute"); } QP->_query->addVariable($1); } ; GlobalVariableAttrs_XSLT: _XSLT_VARIABLE_ { $$ = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR)); } | GlobalVariableAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVariableURI(uri); $1->setVariableLocalName(name); $$ = $1; } | GlobalVariableAttrs_XSLT _XSLT_SELECT_ Expr { $1->setVariableExpr(PRESERVE_NS(@2, $3)); $$ = $1; } | GlobalVariableAttrs_XSLT _XSLT_AS_ SequenceType { $1->setSequenceType($3); $$ = $1; } ; Output_XSLT: OutputAttrs_XSLT _XSLT_END_ELEMENT_ { // TBD Add the output to the static context - jpcs } ; // OutputAttrs_XSLT: _XSLT_OUTPUT_ { } | OutputAttrs_XSLT _XSLT_NAME_ { } | OutputAttrs_XSLT _XSLT_METHOD_ OutputMethod_XSLT { } | OutputAttrs_XSLT _XSLT_BYTE_ORDER_MARK_ { } | OutputAttrs_XSLT _XSLT_CDATA_SECTION_ELEMENTS_ QNames_XSLT { } | OutputAttrs_XSLT _XSLT_DOCTYPE_PUBLIC_ { } | OutputAttrs_XSLT _XSLT_DOCTYPE_SYSTEM_ { } | OutputAttrs_XSLT _XSLT_ENCODING_ { } | OutputAttrs_XSLT _XSLT_ESCAPE_URI_ATTRIBUTES_ { } | OutputAttrs_XSLT _XSLT_INCLUDE_CONTENT_TYPE_ { } | OutputAttrs_XSLT _XSLT_INDENT_ { } | OutputAttrs_XSLT _XSLT_MEDIA_TYPE_ { } | OutputAttrs_XSLT _XSLT_NORMALIZATION_FORM_ { } | OutputAttrs_XSLT _XSLT_OMIT_XML_DECLARATION_ { } | OutputAttrs_XSLT _XSLT_STANDALONE_ { } | OutputAttrs_XSLT _XSLT_UNDECLARE_PREFIXES_ { } | OutputAttrs_XSLT _XSLT_USE_CHARACTER_MAPS_ QNames_XSLT { } | OutputAttrs_XSLT _XSLT_VERSION_ { } ; OutputMethod_XSLT: _XML_ | _HTML_ | _XHTML_ | _TEXT_ | _QNAME_ { // $$ = $1; const XMLCh *p = $1; while(*p && *p != ':') ++p; if(*p == 0) { yyerror(@1, "The method for the xsl:output declaration does not have a prefix"); } } ; QNames_XSLT: _QNAME_ { } | QNames_XSLT _QNAME_ { } ; ImportSchema_XSLT: ImportSchemaAttrs_XSLT _XSLT_END_ELEMENT_; ImportSchemaAttrs_XSLT: _XSLT_IMPORT_SCHEMA_ { LOCATION(@1, loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, 0, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_NAMESPACE_STR_ { LOCATION(@1, loc); CONTEXT->addSchemaLocation($2, 0, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_SCHEMA_LOCATION_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($2); LOCATION(@1, loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, &schemaLoc, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_NAMESPACE_STR_ _XSLT_SCHEMA_LOCATION_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($3); LOCATION(@1, loc); CONTEXT->addSchemaLocation($2, &schemaLoc, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_SCHEMA_LOCATION_ _XSLT_NAMESPACE_STR_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($2); LOCATION(@1, loc); CONTEXT->addSchemaLocation($3, &schemaLoc, &loc); } ; LiteralResultElement_XSLT: _XSLT_ELEMENT_NAME_ LiteralResultElementAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $3->getChildren(); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor($1, $2, children, MEMMGR)); } ; LiteralResultElementAttrs_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralResultElementAttrs_XSLT _XSLT_ATTR_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *attrItem = WRAP(@2, new (MEMMGR) XQAttributeConstructor($2, $3, MEMMGR)); $$->push_back(attrItem); } | LiteralResultElementAttrs_XSLT _XSLT_XMLNS_ATTR_ { $$ = $1; $$->insert($$->begin(), $2); } /* TBD xsl:use-attribute-sets - jpcs */ ; AttrValueTemplate_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | AttrValueTemplate_XSLT EnclosedExpr { $$ = $1; $$->push_back(PRESERVE_NS(@2, $2)); } | AttrValueTemplate_XSLT _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; SequenceConstructor_XSLT: /* empty */ { $$ = WRAP(@$, new (MEMMGR) XQSequence(MEMMGR)); } | SequenceConstructor_XSLT TextNode_XSLT { $$ = $1; $$->addItem(WRAP(@1, new (MEMMGR) XQTextConstructor($2, MEMMGR))); } | SequenceConstructor_XSLT LiteralResultElement_XSLT { $$ = $1; $$->addItem($2); } | SequenceConstructor_XSLT Instruction_XSLT { $$ = $1; $$->addItem($2); } ; Instruction_XSLT: ValueOf_XSLT | Text_XSLT | ApplyTemplates_XSLT | CallTemplate_XSLT | Sequence_XSLT | Choose_XSLT | If_XSLT | Variable_XSLT | Comment_XSLT | PI_XSLT | Document_XSLT | Attribute_XSLT | Namespace_XSLT | Element_XSLT | AnalyzeString_XSLT | CopyOf_XSLT | Copy_XSLT | ForEach_XSLT ; ValueOf_XSLT: ValueOfAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQTextConstructor *text = (XQTextConstructor*)$1; $$ = text; if(!$2->getChildren().empty()) { if(text->getValue() != 0) { yyerror(@1, "The xsl:value-of instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } text->setValue($2); } else if(text->getValue() == 0) { yyerror(@1, "The xsl:value-of instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); } } ; ValueOfAttrs_XSLT: _XSLT_VALUE_OF_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor(0, MEMMGR)); } | ValueOfAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } | ValueOfAttrs_XSLT _XSLT_SEPARATOR_ AttrValueTemplate_XSLT { $$ = $1; // TBD separator - jpcs /* ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); */ } ; Text_XSLT: _XSLT_TEXT_ TextNode_XSLT _XSLT_END_ELEMENT_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor($2, MEMMGR)); } ; TextNode_XSLT: _XSLT_TEXT_NODE_ | _XSLT_WS_TEXT_NODE_; ApplyTemplates_XSLT: ApplyTemplatesAttrs_XSLT ApplyTemplatesContent_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:sort - jpcs XQApplyTemplates *apply = (XQApplyTemplates*)$1; $$ = apply; apply->setArguments($2); if(apply->getExpression() == 0) { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); apply->setExpression(WRAP(@1, new (MEMMGR) XQStep(XQStep::CHILD, nt, MEMMGR))); } } ; ApplyTemplatesAttrs_XSLT: _XSLT_APPLY_TEMPLATES_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates(0, 0, 0, MEMMGR)); } | ApplyTemplatesAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQApplyTemplates*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | ApplyTemplatesAttrs_XSLT _XSLT_MODE_ ApplyTemplatesMode_XSLT { $$ = $1; ((XQApplyTemplates*)$$)->setMode($3); } ; ApplyTemplatesMode_XSLT: _QNAME_ { RESOLVE_QNAME(@1, $1); $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(uri, name)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_CURRENT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } ; ApplyTemplatesContent_XSLT: /* empty */ { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } | ApplyTemplatesContent_XSLT WithParam_XSLT { $$ = $1; $$->push_back($2); } ; CallTemplate_XSLT: CallTemplateAttrs_XSLT CallTemplateContent_XSLT _XSLT_END_ELEMENT_ { XQCallTemplate *call = (XQCallTemplate*)$1; call->setArguments($2); $$ = call; if(call->getName() == 0) { yyerror(@1, "The xsl:call-template instruction does not have a {}name attribute"); } } ; CallTemplateAttrs_XSLT: _XSLT_CALL_TEMPLATE_ { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate((const XMLCh*)0, 0, MEMMGR)); } | CallTemplateAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); ((XQCallTemplate*)$$)->setURI(uri); ((XQCallTemplate*)$$)->setName(name); } ; CallTemplateContent_XSLT: /* empty */ { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } | CallTemplateContent_XSLT WithParam_XSLT { $$ = $1; $$->push_back($2); } ; WithParam_XSLT: WithParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; if($$->name == 0) { yyerror(@1, "The xsl:with-param instruction does not have a {}name attribute"); } $1->value = XSLT_VARIABLE_VALUE(@1, $1->value, $2, $1->seqType); $1->seqType = 0; if($1->value == 0) { yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } } ; WithParamAttrs_XSLT: _XSLT_WITH_PARAM_ { $$ = WRAP(@1, new (MEMMGR) XQTemplateArgument(0, 0, MEMMGR)); } | WithParamAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->uri = uri; $$->name = name; } | WithParamAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; $$->value = PRESERVE_NS(@2, $3); } | WithParamAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->seqType = $3; } | WithParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; // TBD tunnel parameters - jpcs } ; Sequence_XSLT: SequenceAttrs_XSLT _XSLT_END_ELEMENT_ { $$ = $1; } SequenceAttrs_XSLT: _XSLT_SEQUENCE_ _XSLT_SELECT_ Expr { // TBD xsl:fallback - jpcs $$ = PRESERVE_NS(@2, $3); } ; If_XSLT: IfAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { ASTNode *empty = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQIf($1, $2, empty, MEMMGR)); } ; IfAttrs_XSLT: _XSLT_IF_ _XSLT_TEST_ Expr { $$ = PRESERVE_NS(@2, $3); } ; Choose_XSLT: _XSLT_CHOOSE_ WhenList_XSLT Otherwise_XSLT _XSLT_END_ELEMENT_ { XQIf *iff = (XQIf*)$2; while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse($3); $$ = $2; } ; WhenList_XSLT: When_XSLT { $$ = $1; } | WhenList_XSLT When_XSLT { XQIf *iff = (XQIf*)$1; while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse($2); $$ = $1; } ; When_XSLT: WhenAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQIf *iff = (XQIf*)$1; iff->setWhenTrue($2); $$ = $1; } ; WhenAttrs_XSLT: _XSLT_WHEN_ _XSLT_TEST_ Expr { $$ = WRAP(@1, new (MEMMGR) XQIf(PRESERVE_NS(@2, $3), 0, 0, MEMMGR)); } ; Otherwise_XSLT: /* empty */ { $$ = WRAP(@$, new (MEMMGR) XQSequence(MEMMGR)); } | _XSLT_OTHERWISE_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; AnalyzeString_XSLT: AnalyzeStringAttrs_XSLT MatchingSubstring_XSLT NonMatchingSubstring_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:fallback - jpcs XQAnalyzeString *as = (XQAnalyzeString*)$$; $$ = $1; if(as->getExpression() == 0) { yyerror(@1, "The xsl:analyze-string instruction does not have a {}select attribute"); } if(as->getRegex() == 0) { yyerror(@1, "The xsl:analyze-string instruction does not have a {}regex attribute"); } if($2 == 0) { if($3 == 0) { yyerror(@1, "The xsl:analyze-string instruction doesn't contain an xsl:matching-substring or xsl:non-matching-substring child [err:XTSE1130]"); } as->setMatch(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } else { as->setMatch($2); } if($3 == 0) { as->setNonMatch(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } else { as->setNonMatch($3); } } ; AnalyzeStringAttrs_XSLT: _XSLT_ANALYZE_STRING_ { $$ = WRAP(@$, new (MEMMGR) XQAnalyzeString(MEMMGR)); } | AnalyzeStringAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQAnalyzeString*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | AnalyzeStringAttrs_XSLT _XSLT_REGEX_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAnalyzeString*)$$)->setRegex(PRESERVE_NS(@2, content)); } | AnalyzeStringAttrs_XSLT _XSLT_FLAGS_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAnalyzeString*)$$)->setFlags(PRESERVE_NS(@2, content)); } ; MatchingSubstring_XSLT: /* empty */ { $$ = 0; } | _XSLT_MATCHING_SUBSTRING_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; NonMatchingSubstring_XSLT: /* empty */ { $$ = 0; } | _XSLT_NON_MATCHING_SUBSTRING_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; Variable_XSLT: VariableAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ SequenceConstructor_XSLT { $1->setExpression(XSLT_VARIABLE_VALUE(@1, $1->getExpression(), $2, $1->seqType)); $1->seqType = 0; if($1->getExpression() == 0) { yyerror(@1, "The xsl:variable instruction has both a select attribute and a sequence constructor [err:XTSE0620]"); } if($1->getVarName() == 0) { yyerror(@1, "The xsl:variable instruction does not have a {}name attribute"); } $$ = WRAP(@1, new (MEMMGR) XQReturn($1, $4, MEMMGR)); } ; VariableAttrs_XSLT: _XSLT_VARIABLE_ { $$ = WRAP(@1, new (MEMMGR) LetTuple(WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR)), 0, 0, MEMMGR)); } | VariableAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVarURI(uri); $1->setVarName(name); $$ = $1; } | VariableAttrs_XSLT _XSLT_SELECT_ Expr { $1->setExpression($3); $$ = $1; } | VariableAttrs_XSLT _XSLT_AS_ SequenceType { $1->seqType = $3; $$ = $1; } ; Comment_XSLT: CommentAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQCommentConstructor *comment = (XQCommentConstructor*)$1; $$ = comment; if(!$2->getChildren().empty()) { if(comment->getValue() != 0) { yyerror(@1, "The xsl:comment instruction has both a select attribute and a sequence constructor [err:XTSE0940]"); } comment->setValue($2); } else if(comment->getValue() == 0) { comment->setValue(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } } ; CommentAttrs_XSLT: _XSLT_COMMENT_ { $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor(0, MEMMGR, /*xslt*/true)); } | CommentAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQCommentConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } ; PI_XSLT: PIAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQPIConstructor *pi = (XQPIConstructor*)$1; $$ = pi; if(pi->getName() == 0) { yyerror(@1, "The xsl:processing-instruction instruction does not have a {}name attribute"); } if(!$2->getChildren().empty()) { if(pi->getValue() != 0) { yyerror(@1, "The xsl:processing-instruction instruction has both a select attribute and a sequence constructor [err:XTSE0880]"); } pi->setValue($2); } else if(pi->getValue() == 0) { pi->setValue(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } } ; PIAttrs_XSLT: _XSLT_PI_ { $$ = WRAP(@1, new (MEMMGR) XQPIConstructor(0, 0, MEMMGR, /*xslt*/true)); } | PIAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQPIConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | PIAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQPIConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } ; Document_XSLT: DocumentAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQDocumentConstructor *doc = (XQDocumentConstructor*)$1; doc->setValue($2); $$ = doc; } ; DocumentAttrs_XSLT: _XSLT_DOCUMENT_ { $$ = WRAP(@1, new (MEMMGR) XQDocumentConstructor(0, MEMMGR)); } // TBD validation attrs - jpcs ; Attribute_XSLT: AttributeAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQAttributeConstructor *attr = (XQAttributeConstructor*)$1; $$ = attr; if(attr->getName() == 0) { yyerror(@1, "The xsl:attribute instruction does not have a {}name attribute"); } if(attr->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(attr->namespaceExpr); args.push_back(const_cast(attr->getName())); FunctionQName *name = WRAP(@1, new (MEMMGR) FunctionQName(args, MEMMGR)); attr->setName(name); attr->namespaceExpr = 0; } if(!$2->getChildren().empty()) { if(attr->getChildren() != 0 && !attr->getChildren()->empty()) { yyerror(@1, "The xsl:attribute instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); attr->setChildren(children); } else if(attr->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); attr->setChildren(children); } } ; AttributeAttrs_XSLT: _XSLT_ATTRIBUTE_ { $$ = WRAP(@1, new (MEMMGR) XQAttributeConstructor(0, 0, MEMMGR)); } | AttributeAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAttributeConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | AttributeAttrs_XSLT _XSLT_NAMESPACE_A_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAttributeConstructor*)$$)->namespaceExpr = PRESERVE_NS(@2, content); } | AttributeAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS(@2, $3)); ((XQAttributeConstructor*)$$)->setChildren(children); } | AttributeAttrs_XSLT _XSLT_SEPARATOR_ AttrValueTemplate_XSLT { $$ = $1; // TBD separator - jpcs /* ((XQAttributeConstructor*)$$)->setChildren(children); */ } ; Namespace_XSLT: NamespaceAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQNamespaceConstructor *ns = (XQNamespaceConstructor*)$1; $$ = ns; if(ns->getName() == 0) { yyerror(@1, "The xsl:namespace instruction does not have a {}name attribute"); } if(!$2->getChildren().empty()) { if(ns->getChildren() != 0 && !ns->getChildren()->empty()) { yyerror(@1, "The xsl:namespace instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); ns->setChildren(children); } else if(ns->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); ns->setChildren(children); } } ; NamespaceAttrs_XSLT: _XSLT_NAMESPACE_ { $$ = WRAP(@1, new (MEMMGR) XQNamespaceConstructor(0, 0, MEMMGR)); } | NamespaceAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQNamespaceConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | NamespaceAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS(@2, $3)); ((XQNamespaceConstructor*)$$)->setChildren(children); } ; Element_XSLT: ElementAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQElementConstructor *elem = (XQElementConstructor*)$1; $$ = elem; if(elem->getName() == 0) { yyerror(@1, "The xsl:element instruction does not have a {}name attribute"); } if(elem->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(elem->namespaceExpr); args.push_back(const_cast(elem->getName())); FunctionQName *name = WRAP(@1, new (MEMMGR) FunctionQName(args, MEMMGR)); elem->setName(name); elem->namespaceExpr = 0; } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); elem->setChildren(children); } ; ElementAttrs_XSLT: _XSLT_ELEMENT_ { $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(0, 0, 0, MEMMGR)); } | ElementAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQElementConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | ElementAttrs_XSLT _XSLT_NAMESPACE_A_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQElementConstructor*)$$)->namespaceExpr = PRESERVE_NS(@2, content); } ; CopyOf_XSLT: CopyOfAttrs_XSLT _XSLT_END_ELEMENT_ { XQCopyOf *as = (XQCopyOf*)$$; $$ = $1; if(as->getExpression() == 0) { yyerror(@1, "The xsl:copy-of instruction does not have a {}select attribute"); } } ; CopyOfAttrs_XSLT: _XSLT_COPY_OF_ { $$ = WRAP(@$, new (MEMMGR) XQCopyOf(MEMMGR)); } | CopyOfAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQCopyOf*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | CopyOfAttrs_XSLT _XSLT_COPY_NAMESPACES_ { $$ = $1; ((XQCopyOf*)$$)->setCopyNamespaces($2); } // TBD type and validation - jpcs ; Copy_XSLT: CopyAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; XQCopy *as = (XQCopy*)$$; XQContextItem *ci = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); as->setExpression(ci); as->setChildren($2->getChildren()); } ; CopyAttrs_XSLT: _XSLT_COPY_ { $$ = WRAP(@$, new (MEMMGR) XQCopy(MEMMGR)); } | CopyAttrs_XSLT _XSLT_COPY_NAMESPACES_ { $$ = $1; ((XQCopy*)$$)->setCopyNamespaces($2); } | CopyAttrs_XSLT _XSLT_INHERIT_NAMESPACES_ { $$ = $1; ((XQCopy*)$$)->setInheritNamespaces($2); } // TBD type and validation - jpcs ; ForEach_XSLT: ForEachAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:sort - jpcs $$ = $1; XQMap *map = (XQMap*)$$; map->setArg2($2); if(map->getArg1() == 0) { yyerror(@1, "The xsl:for-each instruction does not have a {}select attribute"); } } ; ForEachAttrs_XSLT: _XSLT_FOR_EACH_ { $$ = WRAP(@1, new (MEMMGR) XQMap(0, 0, MEMMGR)); } | ForEachAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQMap*)$$)->setArg1(PRESERVE_NS(@2, $3)); } ; // [1] Pattern ::= PathPattern // | Pattern '|' PathPattern Pattern_XSLT: Pattern_XSLT _BAR_ PathPattern_XSLT { $$ = $1; $$->push_back(PRESERVE_NS(@3, $3)); } | PathPattern_XSLT { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back(PRESERVE_NS(@1, $1)); } ; // [2] PathPattern ::= RelativePathPattern // | '/' RelativePathPattern? // | '//' RelativePathPattern // | IdKeyPattern (('/' | '//') RelativePathPattern)? PathPattern_XSLT: RelativePathPattern_XSLT { $$ = $1; } | _SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR)); } | IdKeyPattern_XSLT { // . intersect id("a") VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR))); oargs.push_back($1); $$ = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); } ; PathPatternStart_XSLT: _SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); } | _SLASH_SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); } ; // [6] IdKeyPattern ::= 'id' '(' IdValue ')' // | 'key' '(' StringLiteralXP ',' KeyValue ')' IdKeyPattern_XSLT: _ID_ _LPAR_ IdValue_XSLT _RPAR_ { VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); fargs.push_back($3); $$ = WRAP(@1, new (MEMMGR) FunctionId(fargs, MEMMGR)); } | _KEY_ _LPAR_ StringLiteral _COMMA_ KeyValue_XSLT _RPAR_ { // VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); // fargs.push_back($3); // fargs.push_back($5); // $$ = WRAP(@1, new (MEMMGR) FunctionKey(fargs, MEMMGR)); // TBD key() - jpcs $$ = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); } ; // [7] IdValue ::= StringLiteralXP | VarRef XP IdValue_XSLT: StringLiteral | VarRef; // [8] KeyValue ::= Literal XP | VarRef XP KeyValue_XSLT: Literal | VarRef; // // foo/bar/@baz -> self::attribute(baz)[parent::bar[parent::foo]] // // foo//bar ->self::bar[ancestor::foo] // // /foo/bar -> self::bar[parent::foo[parent::document-node()]] // // //foo -> self::foo[ancestor::document-node()] // // /foo[baz]/bar -> self::bar[parent::foo[baz][parent::document-node()]] // // id("a")/foo/bar -> self::bar[parent::foo[parent::node() intersect id("a")]] // // / -> self::document-node() // // id("a") -> . intersect id("a") // // [3] RelativePathPattern ::= PatternStep (('/' | '//') RelativePathPattern)? RelativePathPattern_XSLT: PatternStep_XSLT { $$ = $1; } | PathPatternStart_XSLT PatternStep_XSLT { $$ = WRAP(@1, new (MEMMGR) XQPredicate($2, $1, MEMMGR)); } | IdKeyPattern_XSLT _SLASH_ PatternStep_XSLT { // id("a")/foo -> self::foo[parent::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back($1); Intersect *intersect = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPredicate($3, intersect, MEMMGR)); } | IdKeyPattern_XSLT _SLASH_SLASH_ PatternStep_XSLT { // id("a")/foo -> self::foo[ancestor::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP(@1, new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back($1); Intersect *intersect = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPredicate($3, intersect, MEMMGR)); } | RelativePathPattern_XSLT _SLASH_ PatternStep_XSLT { ASTNode *step = $1; while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::PARENT); $$ = WRAP(@2, new (MEMMGR) XQPredicate($3, $1, MEMMGR)); } | RelativePathPattern_XSLT _SLASH_SLASH_ PatternStep_XSLT { ASTNode *step = $1; while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::ANCESTOR); $$ = WRAP(@2, new (MEMMGR) XQPredicate($3, $1, MEMMGR)); } ; // [4] PatternStep ::= PatternAxis? NodeTest PredicateList PatternStep_XSLT: PatternAxis_XSLT PatternStepPredicateList_XSLT { $$ = XQPredicate::addPredicates(WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, $1, MEMMGR)), $2); } ; // [5] PatternAxis ::= ('child' '::' | 'attribute' '::' | '@') PatternAxis_XSLT: NodeTest { if(!$1->isNodeTypeSet()) $1->setNodeType(Node::element_string); $$ = $1; } | _CHILD_ _COLON_COLON_ NodeTest { if(!$3->isNodeTypeSet()) $3->setNodeType(Node::element_string); $$ = $3; } | _ATTRIBUTE_ _COLON_COLON_ NodeTest { if(!$3->isNodeTypeSet()) $3->setNodeType(Node::attribute_string); $$ = $3; } | _AT_SIGN_ NodeTest { if(!$2->isNodeTypeSet()) $2->setNodeType(Node::attribute_string); $$ = $2; } ; // [85] PredicateList ::= Predicate* // [86] Predicate ::= "[" Expr "]" PatternStepPredicateList_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfPredicates(MEMMGR); } | PatternStepPredicateList_XSLT _LSQUARE_ Expr _RSQUARE_ { XQPredicate *pred = WRAP(@2, new (MEMMGR) XQPredicate($3, MEMMGR)); $1->push_back(pred); $$ = $1; } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XQuery rules // [1] Module ::= VersionDecl? (MainModule | LibraryModule) Module: VersionDecl MainModule | VersionDecl LibraryModule | MainModule | LibraryModule ; // [2] VersionDecl ::= <"xquery" "version" StringLiteral> ("encoding" StringLiteral)? Separator // [2] VersionDecl ::= "xquery" (("encoding" StringLiteral) | ("version" StringLiteral ("encoding" StringLiteral)?)) Separator VersionDecl: _XQUERY_ Version Separator | _XQUERY_ Version Encoding Separator | _XQUERY_ Encoding Separator ; Version: _VERSION_ _STRING_LITERAL_ { // TBD Set the language correctly on the context - jpcs if(XPath2Utils::equals($2,sz1_0)) { QP->_lexer->setVersion3(false); QP->_query->setVersion3(false); } else if(XPath2Utils::equals($2,sz3_0)) { if(!QP->_lexer->isVersion3()) { yyerror(@1, "This XQuery processor is not configured to support XQuery 3.0 [err:XQST0031]"); } QP->_lexer->setVersion3(true); QP->_query->setVersion3(true); } else yyerror(@1, "This XQuery processor only supports version 1.0 and 3.0 [err:XQST0031]"); } ; Encoding: _ENCODING_ _STRING_LITERAL_ { XMLCh *encName = $2; if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z)) yyerror(@1, "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); for(++encName; *encName; ++encName) { if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z) && (*encName < chDigit_0 || *encName > chDigit_9) && *encName != chPeriod && *encName != chDash) yyerror(@1, "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); } } ; // [3] MainModule ::= Prolog QueryBody MainModule: Prolog QueryBody; // [4] LibraryModule ::= ModuleDecl Prolog LibraryModule: ModuleDecl Prolog; // [5] ModuleDecl ::= <"module" "namespace"> NCName "=" URILiteral Separator ModuleDecl: _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral Separator { if(*$5 == 0) yyerror(@5, "The literal that specifies the namespace of a module must not be of zero length [err:XQST0088]"); QP->_query->setIsLibraryModule(); QP->_query->setModuleTargetNamespace($5); SET_NAMESPACE(@3, $3, $5); } ; // [6] Prolog ::= ((Setter | Import | NamespaceDecl | DefaultNamespaceDecl | FTOptionDecl) Separator)* // ((VarDecl | FunctionDecl | OptionDecl) Separator)* Prolog: /* empty */ | Prolog Setter Separator { CHECK_SECOND_STEP(@2, "a setter"); } | Prolog Import Separator { CHECK_SECOND_STEP(@2, "an import"); } | Prolog NamespaceDecl Separator { CHECK_SECOND_STEP(@2, "a namespace"); } | Prolog DefaultNamespaceDecl Separator { CHECK_SECOND_STEP(@2, "a default namespace"); } | Prolog VarDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } | Prolog FunctionDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=$2; QP->_query->addFunction(decl); } | Prolog TemplateDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=$2; QP->_query->addFunction(decl); } | Prolog OptionDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } | Prolog FTOptionDecl Separator { CHECK_SECOND_STEP(@2, "an ftoption declaration"); } ; // [7] Setter ::= BoundarySpaceDecl // | DefaultCollationDecl // | BaseURIDecl // | ConstructionDecl // | OrderingModeDecl // | EmptyOrderDecl // | CopyNamespacesDecl Setter: BoundarySpaceDecl | DefaultCollationDecl | BaseURIDecl | ConstructionDecl | OrderingModeDecl | EmptyOrderDecl | RevalidationDecl | CopyNamespacesDecl ; // [8] Import ::= SchemaImport | ModuleImport Import: SchemaImport | ModuleImport; // [9] Separator ::= ";" Separator: _SEMICOLON_; // [10] NamespaceDecl ::= <"declare" "namespace"> NCName "=" URILiteral NamespaceDecl: _DECLARE_ _NAMESPACE_ NCName _EQUALS_ URILiteral { SET_NAMESPACE(@3, $3, $5); } ; // [11] BoundarySpaceDecl ::= <"declare" "boundary-space"> ("preserve" | "strip") BoundarySpaceDecl : _DECLARE_ _BOUNDARY_SPACE_ _PRESERVE_ { CHECK_SPECIFIED(@1, BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(true); } | _DECLARE_ _BOUNDARY_SPACE_ _STRIP_ { CHECK_SPECIFIED(@1, BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(false); } ; // [12] DefaultNamespaceDecl ::= (<"declare" "default" "element"> | <"declare" "default" "function">) "namespace" URILiteral DefaultNamespaceDecl: _DECLARE_ _DEFAULT_ _ELEMENT_ _NAMESPACE_ URILiteral { CHECK_SPECIFIED(@1, BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED, "default element namespace", "XQST0066"); CONTEXT->setDefaultElementAndTypeNS($5); } | _DECLARE_ _DEFAULT_ FunctionKeyword _NAMESPACE_ URILiteral { CHECK_SPECIFIED(@1, BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED, "default function namespace", "XQST0066"); CONTEXT->setDefaultFuncNS($5); } ; // [13] OptionDecl ::= <"declare" "option"> QName StringLiteral OptionDecl: _DECLARE_ _OPTION_ QNameValue _STRING_LITERAL_ { // validate the QName QualifiedName qName($3); const XMLCh* prefix = qName.getPrefix(); if(prefix == 0 || *prefix == 0) yyerror(@3, "The option name must have a prefix [err:XPST0081]"); const XMLCh *uri = 0; try { LOCATION(@3, loc); uri = CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror(@3, "The option name is using an undefined namespace prefix [err:XPST0081]"); } if(XPath2Utils::equals(uri, XQillaFunction::XMLChFunctionURI)) { if(XPath2Utils::equals(qName.getName(), option_projection)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setProjection(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setProjection(false); } else { yyerror(@4, "Unknown value for option xqilla:projection. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_psvi)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->getDocumentCache()->setDoPSVI(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->getDocumentCache()->setDoPSVI(false); } else { yyerror(@4, "Unknown value for option xqilla:psvi. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_lint)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setDoLintWarnings(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setDoLintWarnings(false); } else { yyerror(@4, "Unknown value for option xqilla:lint. Should be 'true' or 'false' [err:XQILLA]"); } } else { yyerror(@3, "Unknown option name in the xqilla namespace [err:XQILLA]"); } } } ; // [14] FTOptionDecl ::= "declare" "ft-option" FTMatchOptions FTOptionDecl: _DECLARE_ _FT_OPTION_ FTMatchOptions { // TBD FTOptionDecl } ; // [15] OrderingModeDecl ::= <"declare" "ordering"> ("ordered" | "unordered") OrderingModeDecl: _DECLARE_ _ORDERING_ _ORDERED_ { CHECK_SPECIFIED(@1, BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_ORDERED); } | _DECLARE_ _ORDERING_ _UNORDERED_ { CHECK_SPECIFIED(@1, BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_UNORDERED); } ; // [16] EmptyOrderDecl ::= "declare" "default" "order" "empty" ("greatest" | "least") EmptyOrderDecl: _DECLARE_ _DEFAULT_ _ORDER_ _EMPTY_ _GREATEST_ { CHECK_SPECIFIED(@1, BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_GREATEST); } | _DECLARE_ _DEFAULT_ _ORDER_ _EMPTY_ _LEAST_ { CHECK_SPECIFIED(@1, BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_LEAST); } ; // [17] CopyNamespacesDecl ::= <"declare" "copy-namespaces"> PreserveMode "," InheritMode CopyNamespacesDecl: _DECLARE_ _COPY_NAMESPACES_ PreserveMode _COMMA_ InheritMode { CHECK_SPECIFIED(@1, BIT_COPYNAMESPACE_SPECIFIED, "copy namespace", "XQST0055"); CONTEXT->setPreserveNamespaces($3); CONTEXT->setInheritNamespaces($5); } ; // [18] PreserveMode ::= "preserve" | "no-preserve" PreserveMode: _PRESERVE_ { $$ = true; } | _NO_PRESERVE_ { $$ = false; } ; // [19] InheritMode ::= "inherit" | "no-inherit" InheritMode: _INHERIT_ { $$ = true; } | _NO_INHERIT_ { $$ = false; } ; // [20] DefaultCollationDecl ::= <"declare" "default" "collation"> URILiteral DefaultCollationDecl: _DECLARE_ _DEFAULT_ _COLLATION_ URILiteral { CHECK_SPECIFIED(@1, BIT_COLLATION_SPECIFIED, "default collation", "XQST0038"); try { LOCATION(@4, loc); CONTEXT->getCollation($4, &loc); } catch(ContextException&) { yyerror(@4, "The specified collation does not exist [err:XQST0038]"); } CONTEXT->setDefaultCollation($4); } ; // [21] BaseURIDecl ::= <"declare" "base-uri"> URILiteral BaseURIDecl: _DECLARE_ _BASE_URI_ URILiteral { CHECK_SPECIFIED(@1, BIT_BASEURI_SPECIFIED, "base URI", "XQST0032"); CONTEXT->setBaseURI($3); } ; // [22] SchemaImport ::= <"import" "schema"> SchemaPrefix? URILiteral (<"at" URILiteral> ("," URILiteral)*)? SchemaImport: _IMPORT_ _SCHEMA_ SchemaPrefix URILiteral ResourceLocations { if(XPath2Utils::equals($3, XMLUni::fgZeroLenString)) CONTEXT->setDefaultElementAndTypeNS($4); else if(XPath2Utils::equals($4, XMLUni::fgZeroLenString)) yyerror(@1, "A schema that has no target namespace cannot be bound to a non-empty prefix [err:XQST0057]"); else { SET_NAMESPACE(@3, $3, $4); } LOCATION(@1, loc); CONTEXT->addSchemaLocation($4, $5, &loc); } | _IMPORT_ _SCHEMA_ URILiteral ResourceLocations { LOCATION(@1, loc); CONTEXT->addSchemaLocation($3, $4, &loc); } ; ResourceLocations: /* empty */ { $$ = NULL; } | _AT_ URILiteral { $$ = new (MEMMGR) VectorOfStrings(XQillaAllocator(MEMMGR)); $$->push_back($2); } | ResourceLocations _COMMA_ URILiteral { $1->push_back($3); $$ = $1; } ; // [23] SchemaPrefix ::= ("namespace" NCName "=") | (<"default" "element"> "namespace") SchemaPrefix: _NAMESPACE_ NCName _EQUALS_ { $$ = $2; } | _DEFAULT_ _ELEMENT_ _NAMESPACE_ { $$ = (XMLCh*)XMLUni::fgZeroLenString; } ; // [24] ModuleImport ::= <"import" "module"> ("namespace" NCName "=")? URILiteral (<"at" URILiteral> ("," URILiteral)*)? ModuleImport: _IMPORT_ _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral ResourceLocations { if(XMLString::stringLen($6)==0) yyerror(@6, "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); SET_NAMESPACE(@4, $4, $6); LOCATION(@1, loc); QP->_query->importModule($6, $7, &loc); } | _IMPORT_ _MODULE_ URILiteral ResourceLocations { if(XMLString::stringLen($3)==0) yyerror(@3, "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); LOCATION(@1, loc); QP->_query->importModule($3, $4, &loc); } ; // [25] VarDecl ::= <"declare" "variable" "$"> VarName TypeDeclaration? ((":=" ExprSingle) | "external") VarDecl: _DECLARE_ _VARIABLE_ _DOLLAR_ VarName TypeDeclaration VarDeclValue { QP->_query->addVariable(WRAP(@1, new (MEMMGR) XQGlobalVariable($4, $5, $6, MEMMGR))); } ; VarDeclValue: _COLON_EQUALS_ ExprSingle { $$ = $2; } | _EXTERNAL_ { $$ = NULL; } ; // [26] ConstructionDecl ::= <"declare" "construction"> ("preserve" | "strip") ConstructionDecl: _DECLARE_ _CONSTRUCTION_ _PRESERVE_ { CHECK_SPECIFIED(@1, BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_PRESERVE); } | _DECLARE_ _CONSTRUCTION_ _STRIP_ { CHECK_SPECIFIED(@1, BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_STRIP); } ; // [31] FunctionDecl ::= "declare" FunctionOptions "function" QName "(" ParamList? ")" ("as" SequenceType)? (FunctionBody | "external") FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType FunctionBody { $2->argSpecs = $5; $2->returnType = $6; $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $2, $7, true, MEMMGR)); } ; FunctionKeyword: _FUNCTION_ | _FUNCTION_EXT_; FunctionParamList: _LPAR_ _RPAR_ { $$ = NULL; } | _LPAR_ ParamList _RPAR_ { $$ = $2; } ; // [37] FunctionBody ::= EnclosedExpr FunctionBody: EnclosedExpr | _EXTERNAL_ { $$ = 0; } ; // [32] FunctionOptions ::= (PrivateOption | DeterministicOption | "updating")* FunctionOptions: /* empty */ { $$ = new (MEMMGR) FunctionSignature(MEMMGR); } | FunctionOptions PrivateOption { switch($1->privateOption) { case FunctionSignature::OP_TRUE: yyerror(@2, "Function option 'private' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror(@2, "Function option 'public' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: $1->privateOption = $2 ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } $$ = $1; } | FunctionOptions DeterministicOption { switch($1->nondeterministic) { case FunctionSignature::OP_TRUE: yyerror(@2, "Function option 'nondeterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror(@2, "Function option 'deterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: $1->nondeterministic = $2 ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } $$ = $1; } | FunctionOptions _UPDATING_ { if($1->updating != FunctionSignature::OP_DEFAULT) yyerror(@2, "Function option 'updating' already specified [err:XPST0003]"); $1->updating = FunctionSignature::OP_TRUE; $$ = $1; } ; // [33] PrivateOption ::= "private" | "public" PrivateOption: _PRIVATE_ { $$ = true; } | _PUBLIC_ { $$ = false; }; // [34] DeterministicOption ::= "deterministic" | "nondeterministic" DeterministicOption: _DETERMINISTIC_ { $$ = false; } | _NONDETERMINISTIC_ { $$ = true; }; FunctionDeclReturnType: /* empty */ { $$ = 0; } | _AS_ SequenceType { $$ = $2; } ; // [28] ParamList ::= Param ("," Param)* ParamList: ParamList _COMMA_ Param { $1->push_back($3); $$ = $1; } | Param { ArgumentSpecs* paramList = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); paramList->push_back($1); $$ = paramList; } ; // [29] Param ::= "$" VarName TypeDeclaration? Param: _DOLLAR_ VarName TypeDeclaration { $$ = WRAP(@1, new (MEMMGR) ArgumentSpec($2, $3, MEMMGR)); } ; // [30] EnclosedExpr ::= "{" Expr "}" EnclosedExpr: _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [31] QueryBody ::= Expr QueryBody: Expr { if(QP->_lexer->isUpdate()) { QP->_query->setQueryBody(WRAP(@1, new (MEMMGR) UApplyUpdates($1, MEMMGR))); } else { QP->_query->setQueryBody($1); } } ; // [32] Expr ::= ExprSingle ("," ExprSingle)* Expr: Expr _COMMA_ ExprSingle { ASTNode* prevExpr=$1; if(prevExpr->getType()==ASTNode::SEQUENCE) { ((XQSequence *)prevExpr)->addItem($3); $$ = $1; } else { XQSequence *dis = WRAP(@2, new (MEMMGR) XQSequence(MEMMGR)); dis->addItem($1); dis->addItem($3); $$ = dis; } } | ExprSingle ; // [32] ExprSingle ::= FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | InsertExpr // | DeleteExpr | RenameExpr | ReplaceExpr | TransformExpr | OrExpr // | CallTemplateExpr | ApplyTemplatesExpr ExprSingle: FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | InsertExpr | DeleteExpr | RenameExpr | ReplaceExpr | TransformExpr | OrExpr | CallTemplateExpr | ApplyTemplatesExpr ; // [42] FLWORExpr ::= InitialClause IntermediateClause* ReturnClause FLWORExpr: FLWORTuples _RETURN_ ExprSingle { // Add a ContextTuple at the start TupleNode *tuples = setLastAncestor($1, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Check the correct clause order for XQuery 1.0 // FLWORExpr ::= (ForClause | LetClause)+ WhereClause? OrderByClause? "return" ExprSingle if(!QP->_lexer->isVersion3()) { const TupleNode *where = 0; const TupleNode *forlet = 0; const TupleNode *node = tuples; while(node) { switch(node->getType()) { case TupleNode::ORDER_BY: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Where clause after order by clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after order by clause [err:XPST0003]"), forlet); break; case TupleNode::WHERE: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate where clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after where clause [err:XPST0003]"), forlet); where = node; break; case TupleNode::FOR: case TupleNode::LET: forlet = node; break; default: break; } node = node->getParent(); } } // Add the return expression $$ = WRAP(@2, new (MEMMGR) XQReturn(tuples, $3, MEMMGR)); } ; FLWORTuples: InitialClause | FLWORTuples OrderByClause { // Order by has a special check here, because a single OrderByClause can result // in multiple OrderByTuple objects. const TupleNode *node = $1; while(node) { if(node->getType() == TupleNode::ORDER_BY) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate order by clause [err:XPST0003]"), $2); node = node->getParent(); } $$ = setLastAncestor($2, $1); } | FLWORTuples IntermediateClause { $$ = setLastAncestor($2, $1); } ; // [43] InitialClause ::= ForClause | LetClause | WindowClause InitialClause: ForClause | LetClause; // [44] IntermediateClause ::= InitialClause | WhereClause | GroupByClause | OrderByClause | CountClause IntermediateClause: InitialClause | WhereClause | CountClause; // [35] ForClause ::= "for" "$" VarName TypeDeclaration? PositionalVar? FTScoreVar? "in" ExprSingle // ("," "$" VarName TypeDeclaration? PositionalVar? FTScoreVar? "in" ExprSingle)* ForClause: _FOR_ ForBindingList { $$ = $2; } ; ForBindingList: ForBindingList _COMMA_ ForBinding { $$ = setLastAncestor($3, $1); } | ForBinding ; ForBinding: _DOLLAR_ VarName TypeDeclaration PositionalVar FTScoreVar _IN_ ExprSingle { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches $3->setOccurrence(SequenceType::STAR); $$ = WRAP(@1, new (MEMMGR) ForTuple(0, $2, $4, WRAP(@3, new (MEMMGR) XQTreatAs($7, $3, MEMMGR)), MEMMGR)); } ; // [36] PositionalVar ::= "at" "$" VarName PositionalVar: /* empty */ { $$ = NULL; } | _AT_ _DOLLAR_ VarName { REJECT_NOT_XQUERY(PositionalVar, @1); $$ = $3; } ; // [37] FTScoreVar ::= "score" "$" VarName FTScoreVar: /* empty */ { $$ = NULL; } | _SCORE_ _DOLLAR_ VarName { $$ = $3; } ; // [38] LetClause ::= (("let" "$" VarName TypeDeclaration?) | // ("let" "score" "$" VarName)) ":=" ExprSingle // ("," (("$" VarName TypeDeclaration?) | FTScoreVar) ":=" ExprSingle)* LetClause: _LET_ LetBindingList { $$ = $2; } ; LetBindingList: LetBindingList _COMMA_ LetBinding { $$ = setLastAncestor($3, $1); } | LetBinding ; LetBinding: _DOLLAR_ VarName TypeDeclaration _COLON_EQUALS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) LetTuple(0, $2, WRAP(@3, new (MEMMGR) XQTreatAs($5, $3, MEMMGR)), MEMMGR)); } | _SCORE_ _DOLLAR_ VarName _COLON_EQUALS_ ExprSingle { ASTNode *literal = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, X("0"), AnyAtomicType::DECIMAL, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) LetTuple(0, $3, literal, MEMMGR)); } ; // [39] WhereClause ::= "where" ExprSingle WhereClause: _WHERE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) WhereTuple(0, $2, MEMMGR)); } ; // [60] CountClause ::= "count" "$" VarName CountClause: _COUNT_ _DOLLAR_ VarName { $$ = WRAP(@1, new (MEMMGR) CountTuple(0, $3, MEMMGR)); } ; // [40] OrderByClause ::= (<"order" "by"> | <"stable" "order" "by">) OrderSpecList OrderByClause: _ORDER_ _BY_ OrderSpecList { ((OrderByTuple*)getLastAncestor($3))->setUnstable(); $$ = $3; } | _STABLE_ _ORDER_ _BY_ OrderSpecList { $$ = $4; } ; // [41] OrderSpecList ::= OrderSpec ("," OrderSpec)* OrderSpecList: OrderSpecList _COMMA_ OrderSpec { $$ = setLastAncestor($1, $3); } | OrderSpec ; // [42] OrderSpec ::= ExprSingle OrderModifier // [43] OrderModifier ::= ("ascending" | "descending")? (<"empty" "greatest"> | <"empty" "least">)? ("collation" URILiteral)? OrderSpec: OrderExpr OrderDirection EmptyHandling { LOCATION(@1, loc); Collation *collation = CONTEXT->getDefaultCollation(&loc); $$ = WRAP(@1, new (MEMMGR) OrderByTuple(0, $1, OrderByTuple::STABLE | $2 | $3, collation, MEMMGR)); } | OrderExpr OrderDirection EmptyHandling _COLLATION_ URILiteral { try { LOCATION(@4, loc); Collation *collation = CONTEXT->getCollation($5, &loc); $$ = WRAP(@1, new (MEMMGR) OrderByTuple(0, $1, OrderByTuple::STABLE | $2 | $3, collation, MEMMGR)); } catch(ContextException&) { yyerror(@4, "The specified collation does not exist [err:XQST0076]"); } } ; OrderExpr: ExprSingle { SequenceType *zero_or_one = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK)); $$ = $1; $$ = WRAP(@1, new (MEMMGR) XQAtomize($$, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPromoteUntyped($$, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQTreatAs($$, zero_or_one, MEMMGR)); } ; OrderDirection: /* empty */ { $$ = OrderByTuple::ASCENDING; } | _ASCENDING_ { $$ = OrderByTuple::ASCENDING; } | _DESCENDING_ { $$ = OrderByTuple::DESCENDING; } ; EmptyHandling: /* empty */ { switch(CONTEXT->getDefaultFLWOROrderingMode()) { case StaticContext::FLWOR_ORDER_EMPTY_LEAST: $$ = OrderByTuple::EMPTY_LEAST; break; case StaticContext::FLWOR_ORDER_EMPTY_GREATEST: $$ = OrderByTuple::EMPTY_GREATEST; break; } } | _EMPTY_ _GREATEST_ { $$ = OrderByTuple::EMPTY_GREATEST; } | _EMPTY_ _LEAST_ { $$ = OrderByTuple::EMPTY_LEAST; } ; // [44] QuantifiedExpr ::= (<"some" "$"> | <"every" "$">) VarName TypeDeclaration? "in" ExprSingle // ("," "$" VarName TypeDeclaration? "in" ExprSingle)* "satisfies" ExprSingle QuantifiedExpr: _SOME_ QuantifyBindingList _SATISFIES_ ExprSingle { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor($2, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression $$ = WRAP(@3, new (MEMMGR) XQQuantified(XQQuantified::SOME, tmp, $4, MEMMGR)); } | _EVERY_ QuantifyBindingList _SATISFIES_ ExprSingle { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor($2, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression $$ = WRAP(@3, new (MEMMGR) XQQuantified(XQQuantified::EVERY, tmp, $4, MEMMGR)); } ; QuantifyBindingList: QuantifyBindingList _COMMA_ QuantifyBinding { $$ = setLastAncestor($3, $1); } | QuantifyBinding ; QuantifyBinding: _DOLLAR_ VarName TypeDeclaration _IN_ ExprSingle { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches $3->setOccurrence(SequenceType::STAR); $$ = WRAP(@1, new (MEMMGR) ForTuple(0, $2, 0, WRAP(@3, new (MEMMGR) XQTreatAs($5, $3, MEMMGR)), MEMMGR)); } ; // [74] TypeswitchExpr ::= "typeswitch" "(" Expr ")" CaseClause+ "default" ("$" VarName)? "return" ExprSingle TypeswitchExpr: _TYPESWITCH_ _LPAR_ Expr _RPAR_ CaseClauseList DefaultCase { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch( WRAP(@1, $3), $5, $6, MEMMGR)); } ; CaseClauseList: CaseClauseList CaseClause { XQTypeswitch::Cases::iterator it = $2->begin(); for(; it != $2->end(); ++it) { $1->push_back(*it); } $$ = $1; } | CaseClause ; DefaultCase: _DEFAULT_ _DOLLAR_ VarName _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch::Case($3, NULL, $5)); } | _DEFAULT_ _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch::Case(NULL, NULL, $3)); } ; // [75] CaseClause ::= "case" ("$" VarName "as")? SequenceTypeUnion "return" ExprSingle CaseClause: CaseSequenceTypeUnion _RETURN_ ExprSingle { // TBD Don't copy the expression when unions of SequenceTypes are implemented - jpcs XQTypeswitch::Cases::iterator it = $1->begin(); if(it != $1->end()) { (*it)->setExpression($3); for(++it; it != $1->end(); ++it) { (*it)->setExpression($3->copy(CONTEXT)); } } $$ = $1; } ; // [75a] SequenceTypeUnion ::= SequenceType ("|" SequenceType)* CaseSequenceTypeUnion: _CASE_ CaseClauseVariable SequenceType { $$ = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); $$->push_back(WRAP(@1, new (MEMMGR) XQTypeswitch::Case($2, $3, 0))); } | CaseSequenceTypeUnion _BAR_ SequenceType { REJECT_NOT_VERSION3(SequenceTypeUnion, @2); $1->push_back(WRAP(@3, new (MEMMGR) XQTypeswitch::Case($1->back()->getQName(), $3, 0))); $$ = $1; } ; CaseClauseVariable: /* empty */ { $$ = 0; } | _DOLLAR_ VarName _AS_ { $$ = $2; } ; // [47] IfExpr ::= <"if" "("> Expr ")" "then" ExprSingle "else" ExprSingle IfExpr: _IF_ _LPAR_ Expr _RPAR_ _THEN_ ExprSingle _ELSE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQIf($3, $6, $8, MEMMGR)); } ; // [48] OrExpr ::= AndExpr ( "or" AndExpr )* OrExpr: OrExpr _OR_ AndExpr { if($1->getType() == ASTNode::OPERATOR && ((XQOperator*)$1)->getOperatorName() == Or::name) { ((Or*)$1)->addArgument($3); $$ = $1; } else $$ = WRAP(@2, new (MEMMGR) Or(packageArgs($1, $3, MEMMGR), MEMMGR)); } | AndExpr ; // [49] AndExpr ::= ComparisonExpr ( "and" ComparisonExpr )* AndExpr: AndExpr _AND_ ComparisonExpr { if($1->getType()==ASTNode::OPERATOR && ((XQOperator*)$1)->getOperatorName() == And::name) { ((And*)$1)->addArgument($3); $$ = $1; } else $$ = WRAP(@2, new (MEMMGR) And(packageArgs($1, $3, MEMMGR), MEMMGR)); } | ComparisonExpr ; // [50] ComparisonExpr ::= FTContainsExpr ( (ValueComp // | GeneralComp // | NodeComp) FTContainsExpr )? // [63] GeneralComp ::= "=" | "!=" | "<" | "<=" | ">" | ">=" // [64] ValueComp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge" // [65] NodeComp ::= "is" | "<<" | ">>" ComparisonExpr: FTContainsExpr _EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _BANG_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::NOT_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _LESS_THAN_OP_OR_TAG_ { /* Careful! */ QP->_lexer->undoLessThan(); } FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN,packageArgs($1,$4, MEMMGR),MEMMGR)); } | FTContainsExpr _LESS_THAN_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _GREATER_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _GREATER_THAN_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _EQ_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) Equals(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _NE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) NotEquals(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _LT_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) LessThan(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _LE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) LessThanEqual(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _GT_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GreaterThan(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _GE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GreaterThanEqual(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _IS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) NodeComparison(packageArgs($1, $3, MEMMGR), MEMMGR)); } | FTContainsExpr _LESS_THAN_LESS_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) OrderComparison(packageArgs($1, $3, MEMMGR), true, MEMMGR)); } | FTContainsExpr _GREATER_THAN_GREATER_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) OrderComparison(packageArgs($1, $3, MEMMGR), false,MEMMGR)); } | FTContainsExpr ; // [51] FTContainsExpr ::= RangeExpr ( "contains" "text" FTSelection FTIgnoreOption? )? FTContainsExpr: RangeExpr _CONTAINS_ _TEXT_ FTSelection { $$ = WRAP(@2, new (MEMMGR) FTContains($1, $4, NULL, MEMMGR)); } | RangeExpr _CONTAINS_ _TEXT_ FTSelection FTIgnoreOption { $$ = WRAP(@2, new (MEMMGR) FTContains($1, $4, $5, MEMMGR)); } | RangeExpr ; // [52] RangeExpr ::= AdditiveExpr ( "to" AdditiveExpr )? RangeExpr: AdditiveExpr _TO_ AdditiveExpr { VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back($1); args->push_back($3); $$ = WRAP(@2, new (MEMMGR) XQFunctionCall(0, BuiltInModules::core.uri, MEMMGR->getPooledString("to"), args, MEMMGR)); } | AdditiveExpr ; // [53] AdditiveExpr ::= MultiplicativeExpr ( ("+" | "-") MultiplicativeExpr )* AdditiveExpr: AdditiveExpr _PLUS_ MultiplicativeExpr { $$ = WRAP(@2, new (MEMMGR) Plus(packageArgs($1, $3, MEMMGR),MEMMGR)); } | AdditiveExpr _MINUS_ MultiplicativeExpr { $$ = WRAP(@2, new (MEMMGR) Minus(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr ; // [54] MultiplicativeExpr ::= UnionExpr ( ("*" | "div" | "idiv" | "mod") UnionExpr )* MultiplicativeExpr: MultiplicativeExpr _ASTERISK_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Multiply(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _DIV_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Divide(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _IDIV_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) IntegerDivide(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _MOD_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Mod(packageArgs($1, $3, MEMMGR),MEMMGR)); } | UnionExpr ; // [55] UnionExpr ::= IntersectExceptExpr ( ("union" | "|") IntersectExceptExpr )* UnionExpr: UnionExpr _BAR_ IntersectExceptExpr { $$ = WRAP(@2, new (MEMMGR) Union(packageArgs($1, $3, MEMMGR),MEMMGR)); } | UnionExpr _UNION_ IntersectExceptExpr { $$ = WRAP(@2, new (MEMMGR) Union(packageArgs($1, $3, MEMMGR),MEMMGR)); } | IntersectExceptExpr ; // [56] IntersectExceptExpr ::= InstanceofExpr ( ("intersect" | "except") InstanceofExpr )* IntersectExceptExpr: IntersectExceptExpr _INTERSECT_ InstanceofExpr { $$ = WRAP(@2, new (MEMMGR) Intersect(packageArgs($1, $3, MEMMGR),MEMMGR)); } | IntersectExceptExpr _EXCEPT_ InstanceofExpr { $$ = WRAP(@2, new (MEMMGR) Except(packageArgs($1, $3, MEMMGR),MEMMGR)); } | InstanceofExpr ; // [57] InstanceofExpr ::= TreatExpr ( <"instance" "of"> SequenceType )? InstanceofExpr: TreatExpr _INSTANCE_ _OF_ SequenceType { ASTNode *falseExpr = WRAP(@2, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("false"), 0, MEMMGR)); XQTypeswitch::Case *defcase = WRAP(@1, new (MEMMGR) XQTypeswitch::Case(NULL, NULL, falseExpr)); ASTNode *trueExpr = WRAP(@2, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("true"), 0, MEMMGR)); XQTypeswitch::Cases *cases = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); cases->push_back(WRAP(@2, new (MEMMGR) XQTypeswitch::Case(NULL, $4, trueExpr))); $$ = WRAP(@2, new (MEMMGR) XQTypeswitch($1, cases, defcase, MEMMGR)); } | TreatExpr ; // [58] TreatExpr ::= CastableExpr ( <"treat" "as"> SequenceType )? TreatExpr: CastableExpr _TREAT_ _AS_ SequenceType { XQTreatAs* treatAs = new (MEMMGR) XQTreatAs($1,$4,MEMMGR, XQTreatAs::err_XPDY0050); $$ = WRAP(@2, treatAs); } | CastableExpr ; // [59] CastableExpr ::= CastExpr ( <"castable" "as"> SingleType )? CastableExpr: CastExpr _CASTABLE_ _AS_ SingleType { $$ = WRAP(@2, new (MEMMGR) XQCastableAs($1,$4,MEMMGR)); } | CastExpr ; // [60] CastExpr ::= UnaryExpr (<"cast" "as"> SingleType)? CastExpr: UnaryExpr _CAST_ _AS_ SingleType { $$ = WRAP(@1, new (MEMMGR) XQCastAs($1,$4,MEMMGR)); } | UnaryExpr ; // [61] UnaryExpr ::= ("-" | "+")* ValueExpr UnaryExpr: _MINUS_ UnaryExpr { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back($2); $$ = WRAP(@1, new (MEMMGR) UnaryMinus(/*positive*/false, args, MEMMGR)); } | _PLUS_ UnaryExpr { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back($2); $$ = WRAP(@1, new (MEMMGR) UnaryMinus(/*positive*/true, args, MEMMGR)); } | ValueExpr ; // [62] ValueExpr ::= ValidateExpr | PathExpr | ExtensionExpr ValueExpr: ValidateExpr | PathExpr | ExtensionExpr ; // [66] ValidateExpr ::= (<"validate" "{"> | // (<"validate" ValidationMode> "{") // ) Expr "}" // [67] ValidationMode ::= "lax" | "strict" ValidateExpr: _VALIDATE_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($3,DocumentCache::VALIDATION_STRICT,MEMMGR)); } | _VALIDATE_ _LAX_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($4,DocumentCache::VALIDATION_LAX,MEMMGR)); } | _VALIDATE_ _STRICT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($4,DocumentCache::VALIDATION_STRICT,MEMMGR)); } ; // [68] ExtensionExpr ::= Pragma+ "{" Expr? "}" ExtensionExpr: PragmaList _LBRACE_ _RBRACE_ { REJECT_NOT_XQUERY(ExtensionExpr, @1); // we don't support any pragma yyerror(@1, "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } | PragmaList _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(ExtensionExpr, @1); // we don't support any pragma $$ = $3; } ; PragmaList: Pragma | PragmaList Pragma; // [69] Pragma ::= "(#" S? QName (S PragmaContents)? "#)" Pragma: _PRAGMA_OPEN_ OptionalWhitespace QNameValue PragmaContents { // validate the QName QualifiedName qName($3); const XMLCh* prefix=qName.getPrefix(); if(prefix == NULL || *prefix == 0) yyerror(@3, "The pragma name must have a prefix [err:XPST0081]"); try { LOCATION(@3, loc); CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror(@3, "The pragma name is using an undefined namespace prefix [err:XPST0081]"); } } ; // [70] PragmaContents ::= (Char* - (Char* '#)' Char*)) PragmaContents: _PRAGMA_CONTENT_ | _WHITESPACE_ _PRAGMA_CONTENT_ { $$ = $2; } ; // [71] PathExpr ::= ("/" RelativePathExpr?) | ("//" RelativePathExpr) | RelativePathExpr PathExpr: LeadingSlash | LeadingSlash RelativePathExpr { XQNav *nav = GET_NAVIGATION(@1, $1); nav->addStep($2); $$ = nav; } | _SLASH_SLASH_ RelativePathExpr { XQNav *nav = WRAP(@1, new (MEMMGR) XQNav(MEMMGR)); VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP(@1, new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); nav->addStep(WRAP(@1, new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR))); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP(@1, new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep($2); $$ = nav; } | RelativePathExpr ; LeadingSlash: _SLASH_ { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP(@1, new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); $$ = WRAP(@1, new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR)); } ; // [72] RelativePathExpr ::= StepExpr (("/" | "//") StepExpr)* RelativePathExpr: RelativePathExpr _SLASH_ StepExpr { XQNav *nav = GET_NAVIGATION(@1, $1); nav->addStep($3); $$ = nav; } | RelativePathExpr _SLASH_SLASH_ StepExpr { XQNav *nav = GET_NAVIGATION(@1, $1); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP(@2, new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep($3); $$ = nav; } | StepExpr ; // [73] StepExpr ::= AxisStep | PostfixExpr StepExpr: AxisStep | PostfixExpr; // [74] AxisStep ::= (ForwardStep | ReverseStep) PredicateList AxisStep: ForwardStepPredicateList | ReverseStepPredicateList { $$ = WRAP(@1, new (MEMMGR) XQDocumentOrder($1, MEMMGR)); } ; // [85] PredicateList ::= Predicate* // [86] Predicate ::= "[" Expr "]" ForwardStepPredicateList: ForwardStep | ForwardStepPredicateList _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, MEMMGR)); } ; ReverseStepPredicateList: ReverseStep | ReverseStepPredicateList _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, /*reverse*/true, MEMMGR)); } ; // [75] ForwardStep ::= (ForwardAxis NodeTest) | AbbrevForwardStep ForwardStep: ForwardAxis NodeTest { if(!$2->isNodeTypeSet()) { switch($1) { case XQStep::NAMESPACE: $2->setNodeType(Node::namespace_string); break; case XQStep::ATTRIBUTE: $2->setNodeType(Node::attribute_string); break; default: $2->setNodeType(Node::element_string); break; } } $$ = WRAP(@1, new (MEMMGR) XQStep($1,$2,MEMMGR)); } | AbbrevForwardStep ; // [76] ForwardAxis ::= <"child" "::"> // | <"descendant" "::"> // | <"attribute" "::"> // | <"self" "::"> // | <"descendant-or-self" "::"> // | <"following-sibling" "::"> // | <"following" "::"> ForwardAxis: _CHILD_ _COLON_COLON_ { $$ = XQStep::CHILD; } | _DESCENDANT_ _COLON_COLON_ { $$ = XQStep::DESCENDANT; } | _ATTRIBUTE_ _COLON_COLON_ { $$ = XQStep::ATTRIBUTE; } | _SELF_ _COLON_COLON_ { $$ = XQStep::SELF; } | _DESCENDANT_OR_SELF_ _COLON_COLON_ { $$ = XQStep::DESCENDANT_OR_SELF; } | _FOLLOWING_SIBLING_ _COLON_COLON_ { $$ = XQStep::FOLLOWING_SIBLING; } | _FOLLOWING_ _COLON_COLON_ { $$ = XQStep::FOLLOWING; } | _NAMESPACE_ _COLON_COLON_ { $$ = XQStep::NAMESPACE; } ; // [77] AbbrevForwardStep ::= "@"? NodeTest AbbrevForwardStep: _AT_SIGN_ NodeTest { if(!$2->isNodeTypeSet()) { $2->setNodeType(Node::attribute_string); } $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::ATTRIBUTE, $2, MEMMGR)); } | NodeTest { XQStep::Axis axis = XQStep::CHILD; SequenceType::ItemType *itemtype = $1->getItemType(); if(itemtype != 0 && itemtype->getItemTestType() == SequenceType::ItemType::TEST_ATTRIBUTE) { axis = XQStep::ATTRIBUTE; } else if(!$1->isNodeTypeSet()) { $1->setNodeType(Node::element_string); } $$ = WRAP(@1, new (MEMMGR) XQStep(axis, $1, MEMMGR)); } ; // [78] ReverseStep ::= (ReverseAxis NodeTest) | AbbrevReverseStep ReverseStep: ReverseAxis NodeTest { if(!$2->isNodeTypeSet()) { $2->setNodeType(Node::element_string); } $$ = WRAP(@1, new (MEMMGR) XQStep($1, $2, MEMMGR)); } | AbbrevReverseStep ; // [79] ReverseAxis ::= <"parent" "::"> // | <"ancestor" "::"> // | <"preceding-sibling" "::"> // | <"preceding" "::"> // | <"ancestor-or-self" "::"> ReverseAxis: _PARENT_ _COLON_COLON_ { $$ = XQStep::PARENT; } | _ANCESTOR_ _COLON_COLON_ { $$ = XQStep::ANCESTOR; } | _PRECEDING_SIBLING_ _COLON_COLON_ { $$ = XQStep::PRECEDING_SIBLING; } | _PRECEDING_ _COLON_COLON_ { $$ = XQStep::PRECEDING; } | _ANCESTOR_OR_SELF_ _COLON_COLON_ { $$ = XQStep::ANCESTOR_OR_SELF; } ; // [80] AbbrevReverseStep ::= ".." AbbrevReverseStep: _DOT_DOT_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); step->setTypeWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, step, MEMMGR)); } ; // [81] NodeTest ::= KindTest | NameTest NodeTest: KindTest { $$ = new (MEMMGR) NodeTest(); $$->setItemType($1); } | NameTest ; // [82] NameTest ::= QName | Wildcard NameTest: QName { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix($1->getPrefix()); step->setNodeName($1->getName()); $$ = step; } | Wildcard ; // [83] Wildcard ::= "*" | | <"*" ":" NCName> Wildcard: _ASTERISK_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); $$ = step; } | _NCNAME_COLON_STAR_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix($1); step->setNameWildcard(); $$ = step; } | _STAR_COLON_NCNAME_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodeName($1); step->setNamespaceWildcard(); $$ = step; } ; // [121] PostfixExpr ::= PrimaryExpr (Predicate | ArgumentList)* // [124] Predicate ::= "[" Expr "]" PostfixExpr: PrimaryExpr | PostfixExpr _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, MEMMGR)); } | DynamicFunctionInvocation ; // [87] PrimaryExpr ::= Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | Constructor | OrderedExpr | UnorderedExpr // | FunctionItemExpr PrimaryExpr: Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | Constructor | OrderedExpr | UnorderedExpr | FunctionItemExpr ; // [88] Literal ::= NumericLiteral | StringLiteral Literal: NumericLiteral | StringLiteral; // [89] NumericLiteral ::= IntegerLiteral | DecimalLiteral | DoubleLiteral NumericLiteral: IntegerLiteral | DecimalLiteral | DoubleLiteral; // [90] VarRef ::= "$" VarName VarRef: _DOLLAR_ VarName { $$ = WRAP(@1, new (MEMMGR) XQVariable($2, MEMMGR)); } ; // [91] VarName ::= QName VarName: QNameValue; // [92] ParenthesizedExpr ::= "(" Expr? ")" ParenthesizedExpr: _LPAR_ Expr _RPAR_ { $$ = $2; } | _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); } ; // [93] ContextItemExpr ::= "." ContextItemExpr: _DOT_ { $$ = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); } ; // [94] OrderedExpr ::= <"ordered" "{"> Expr "}" OrderedExpr: _ORDERED_ _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(OrderedExpr, @1); $$ = WRAP(@1, new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_ORDERED, $3, MEMMGR)); } ; // [95] UnorderedExpr ::= <"unordered" "{"> Expr "}" UnorderedExpr: _UNORDERED_ _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(UnorderedExpr, @1); $$ = WRAP(@1, new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_UNORDERED, $3, MEMMGR)); } ; // [134] FunctionCall ::= QName "(" (Argument ("," Argument)*)? ")" FunctionCall: FunctionName _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQFunctionCall($1, NULL, MEMMGR)); } | FunctionName _LPAR_ FunctionCallArgumentList _RPAR_ { bool partial = false; VectorOfASTNodes::iterator i; for(i = $3->begin(); i != $3->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application XQFunctionRef *ref = WRAP(@1, new (MEMMGR) XQFunctionRef($1, $3->size(), MEMMGR)); $$ = WRAP(@2, new (MEMMGR) XQPartialApply(ref, $3, MEMMGR)); } else { $$ = WRAP(@1, new (MEMMGR) XQFunctionCall($1, $3, MEMMGR)); } } ; FunctionCallArgumentList: FunctionCallArgumentList _COMMA_ Argument { $1->push_back($3); $$ = $1; } | Argument { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back($1); } ; // [135] Argument ::= ExprSingle | ArgumentPlaceholder // [136] ArgumentPlaceholder ::= "?" Argument: ExprSingle | _QUESTION_MARK_ { REJECT_NOT_VERSION3(Argument, @1); $$ = 0; } ; // [97] Constructor ::= DirectConstructor | ComputedConstructor Constructor: DirectConstructor { REJECT_NOT_XQUERY(Constructor, @1); } | ComputedConstructor { REJECT_NOT_XQUERY(Constructor, @1); } ; // [98] DirectConstructor ::= DirElemConstructor // | DirCommentConstructor // | DirPIConstructor DirectConstructor: DirElemConstructor | DirCommentConstructor | DirPIConstructor; // [99] DirElemConstructor ::= "<" QName DirAttributeList ("/>" | (">" DirElementContent* "")) DirElemConstructor: _LESS_THAN_OP_OR_TAG_ DirElemConstructorQName DirAttributeList OptionalWhitespace _EMPTY_TAG_CLOSE_ { VectorOfASTNodes* content = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); ASTNode *name = WRAP(@2, new (MEMMGR) XQDirectName($2, /*useDefaultNamespace*/true, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(name, $3, content, MEMMGR)); } | _LESS_THAN_OP_OR_TAG_ DirElemConstructorQName DirAttributeList OptionalWhitespace _START_TAG_CLOSE_ DirElementContent _END_TAG_OPEN_ DirElemConstructorQName OptionalWhitespace _END_TAG_CLOSE_ { if(!XPath2Utils::equals($2, $8)) yyerror(@7, "Close tag does not match open tag"); ASTNode *name = WRAP(@2, new (MEMMGR) XQDirectName($2, /*useDefaultNamespace*/true, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(name, $3, $6, MEMMGR)); } ; DirElemConstructorQName: _QNAME_ | _XMLNS_QNAME_; // [100] DirAttributeList ::= (S (QName S? "=" S? DirAttributeValue)?)* DirAttributeList: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | DirAttributeList _WHITESPACE_ _QNAME_ OptionalWhitespace _VALUE_INDICATOR_ OptionalWhitespace DirAttributeValue { $$ = $1; ASTNode *name = WRAP(@3, new (MEMMGR) XQDirectName($3, /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP(@3, new (MEMMGR) XQAttributeConstructor(name, $7,MEMMGR)); $$->push_back(attrItem); } | DirAttributeList _WHITESPACE_ _XMLNS_QNAME_ OptionalWhitespace _VALUE_INDICATOR_ OptionalWhitespace LiteralDirAttributeValue { $$ = $1; ASTNode *name = WRAP(@3, new (MEMMGR) XQDirectName($3, /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP(@3, new (MEMMGR) XQAttributeConstructor(name, $7,MEMMGR)); $$->insert($$->begin(), attrItem); } ; OptionalWhitespace: /* empty */ | _WHITESPACE_; // [101] DirAttributeValue ::= ('"' (EscapeQuot | QuotAttrValueContent)* '"') // | ("'" (EscapeApos | AposAttrValueContent)* "'") DirAttributeValue: _OPEN_QUOT_ QuotAttrValueContent _CLOSE_QUOT_ { $$ = $2; } | _OPEN_APOS_ AposAttrValueContent _CLOSE_APOS_ { $$ = $2; } ; LiteralDirAttributeValue: _OPEN_QUOT_ LiteralQuotAttrValueContent _CLOSE_QUOT_ { $$ = $2; } | _OPEN_APOS_ LiteralAposAttrValueContent _CLOSE_APOS_ { $$ = $2; } ; // [102] QuotAttrValueContent ::= QuotAttContentChar // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr QuotAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | QuotAttrValueContent EnclosedExpr { $$ = $1; $$->push_back($2); } | QuotAttrValueContent _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; LiteralQuotAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralQuotAttrValueContent EnclosedExpr { yyerror(@2, "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } | LiteralQuotAttrValueContent _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; // [103] AposAttrValueContent ::= AposAttContentChar // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr AposAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | AposAttrValueContent EnclosedExpr { $$ = $1; $$->push_back($2); } | AposAttrValueContent _APOS_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; LiteralAposAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralAposAttrValueContent EnclosedExpr { yyerror(@2, "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } | LiteralAposAttrValueContent _APOS_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; // [104] DirElementContent ::= DirectConstructor // | ElementContentChar // | CdataSection // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr // [110] CDataSection ::= "" // [111] CDataSectionContents ::= (Char* - (Char* ']]>' Char*)) DirElementContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | DirElementContent DirectConstructor { $$ = $1; $$->push_back($2); } | DirElementContent EnclosedExpr { $$ = $1; $$->push_back($2); } | DirElementContent _ELEMENT_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } | DirElementContent _WHITESPACE_ELEMENT_CONTENT_ { $$ = $1; if(CONTEXT->getPreserveBoundarySpace()) { $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } } ; // [106] DirCommentConstructor ::= "" DirCommentConstructor: _XML_COMMENT_START_ DirCommentContents _XML_COMMENT_END_ { ASTNode *value = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor(value, MEMMGR)); } ; // [107] DirCommentContents ::= ((Char - '-') | <'-' (Char - '-')>)* DirCommentContents: /* empty */ { $$ = (XMLCh*)XMLUni::fgZeroLenString; } | _XML_COMMENT_CONTENT_ ; // [108] DirPIConstructor ::= "" DirPIConstructor: _PI_START_ _PI_TARGET_ DirPIContents { ASTNode *value = WRAP(@3, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $3, AnyAtomicType::STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPIConstructor( WRAP(@2, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR)), value, MEMMGR)); } ; // [109] DirPIContents ::= (Char* - (Char* '?>' Char*)) DirPIContents: _PI_CONTENT_ | _WHITESPACE_ _PI_CONTENT_ { $$ = $2; } ; // [152] ComputedConstructor ::= CompDocConstructor // | CompElemConstructor // | CompAttrConstructor // | CompNamespaceConstructor // | CompTextConstructor // | CompCommentConstructor // | CompPIConstructor ComputedConstructor: CompDocConstructor | CompElemConstructor | CompAttrConstructor | CompNamespaceConstructor | CompTextConstructor | CompCommentConstructor | CompPIConstructor ; // [113] CompDocConstructor ::= <"document" "{"> Expr "}" CompDocConstructor: _DOCUMENT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQDocumentConstructor($3, MEMMGR)); } ; // [114] CompElemConstructor ::= (<"element" QName "{"> | (<"element" "{"> Expr "}" "{")) ContentExpr? "}" CompElemConstructor: _ELEMENT_ CompElementName ContentExpr { VectorOfASTNodes* empty = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor($2, empty, $3, MEMMGR)); } ; CompElementName: _CONSTR_QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQDirectName($1, /*useDefaultNamespace*/true, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [115] ContentExpr ::= Expr ContentExpr: _LBRACE_ _RBRACE_ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back($2); } ; // [116] CompAttrConstructor ::= (<"attribute" QName "{"> | (<"attribute" "{"> Expr "}" "{")) Expr? "}" CompAttrConstructor: _ATTRIBUTE_ CompAttrName ContentExpr { $$ = WRAP(@1, new (MEMMGR) XQAttributeConstructor($2, $3, MEMMGR)); } ; CompAttrName: _CONSTR_QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQDirectName($1, /*useDefaultNamespace*/false, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [157] CompNamespaceConstructor ::= "namespace" (Prefix | ("{" PrefixExpr "}")) "{" URIExpr? "}" // [159] PrefixExpr ::= Expr // [160] URIExpr ::= Expr CompNamespaceConstructor: _NAMESPACE_ CompPINCName ContentExpr { $$ = WRAP(@1, new (MEMMGR) XQNamespaceConstructor($2, $3, MEMMGR)); } ; // [117] CompTextConstructor ::= <"text" "{"> Expr "}" CompTextConstructor: _TEXT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor($3, MEMMGR)); } ; // [118] CompCommentConstructor ::= <"comment" "{"> Expr "}" CompCommentConstructor: _COMMENT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor($3, MEMMGR)); } ; // [119] CompPIConstructor ::= (<"processing-instruction" NCName "{"> | (<"processing-instruction" "{"> Expr "}" "{")) Expr? "}" CompPIConstructor: _PROCESSING_INSTRUCTION_ CompPINCName CompPIConstructorContent { $$ = WRAP(@1, new (MEMMGR) XQPIConstructor($2, $3, MEMMGR)); } ; CompPINCName: _CONSTR_QNAME_ { // Check for a colon for(XMLCh *tmp = $1; *tmp; ++tmp) if(*tmp == ':') yyerror(@1, "Expecting an NCName, found a QName"); $$ = WRAP(@1, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $1, AnyAtomicType::STRING, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; CompPIConstructorContent: _LBRACE_ _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [120] SingleType ::= AtomicType "?"? SingleType: AtomicType SingleTypeOccurrence { SequenceType* seq = WRAP(@1, new (MEMMGR) SequenceType()); seq->setItemType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, $1)); seq->setOccurrence($2); $$ = seq; } ; SingleTypeOccurrence: /* empty */ { $$ = SequenceType::EXACTLY_ONE; } | _QUESTION_MARK_ { $$ = SequenceType::QUESTION_MARK; } ; // [121] TypeDeclaration ::= "as" SequenceType TypeDeclaration: /* empty */ { $$ = WRAP(@$, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR)); } | _AS_ SequenceType { REJECT_NOT_XQUERY(TypeDeclaration, @1); $$ = $2; } ; // [122] SequenceType ::= (ItemType OccurrenceIndicator?) | <" empty-sequence" "(" ")"> SequenceType: ItemType OccurrenceIndicator { SequenceType* seq = WRAP(@1, new (MEMMGR) SequenceType()); seq->setItemType($1); seq->setOccurrence($2); $$ = seq; } | _EMPTY_SEQUENCE_ _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) SequenceType()); } ; // [123] OccurrenceIndicator ::= "*" | "+" | "?" OccurrenceIndicator: /* empty */ { $$ = SequenceType::EXACTLY_ONE; } | _ASTERISK_ { $$ = SequenceType::STAR; } | _PLUS_ { $$ = SequenceType::PLUS; } | _QUESTION_MARK_ { $$ = SequenceType::QUESTION_MARK; } ; // ItemType ::= KindTest | "item" "(" ")" | AtomicType | FunctionTest | ParenthesizedItemType ItemType: AtomicType { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, $1); } | _ITEM_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING); } | KindTest | FunctionTest | ParenthesizedItemType ; // [125] AtomicType ::= QName AtomicType: QName; // [126] KindTest ::= DocumentTest // | ElementTest // | AttributeTest // | SchemaElementTest // | SchemaAttributeTest // | PITest // | CommentTest // | TextTest // | AnyKindTest KindTest: DocumentTest | ElementTest | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | NamespaceNodeTest | AnyKindTest ; // [127] AnyKindTest ::= <"node" "("> ")" AnyKindTest: _NODE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE); } ; // [128] DocumentTest ::= <"document-node" "("> (ElementTest | SchemaElementTest)? ")" DocumentTest: _DOCUMENT_NODE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT); } | _DOCUMENT_NODE_ _LPAR_ ElementTest _RPAR_ { $$ = $3; $$->setItemTestType(SequenceType::ItemType::TEST_DOCUMENT); } | _DOCUMENT_NODE_ _LPAR_ SchemaElementTest _RPAR_ { $$ = $3; $$->setItemTestType(SequenceType::ItemType::TEST_SCHEMA_DOCUMENT); } ; // [129] TextTest ::= <"text" "("> ")" TextTest: _TEXT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_TEXT); } ; // [130] CommentTest ::= <"comment" "("> ")" CommentTest: _COMMENT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_COMMENT); } ; // [178] NamespaceNodeTest ::= "namespace-node" "(" ")" NamespaceNodeTest: _NAMESPACE_NODE_ _LPAR_ _RPAR_ { REJECT_NOT_VERSION3(NamespaceNodeTest, @1); $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NAMESPACE); } ; // [131] PITest ::= <"processing-instruction" "("> (NCName | StringLiteral)? ")" PITest: _PROCESSING_INSTRUCTION_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI); } | _PROCESSING_INSTRUCTION_ _LPAR_ NCName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName($3, MEMMGR)); } | _PROCESSING_INSTRUCTION_ _LPAR_ _STRING_LITERAL_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName($3, MEMMGR)); } ; // [132] AttributeTest ::= <"attribute" "("> (AttribNameOrWildcard ("," TypeName)?)? ")" AttributeTest: _ATTRIBUTE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE); } | _ATTRIBUTE_ _LPAR_ AttribNameOrWildcard _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,$3); } | _ATTRIBUTE_ _LPAR_ AttribNameOrWildcard _COMMA_ TypeName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,$3,$5); } ; // [133] AttribNameOrWildcard ::= AttributeName | "*" AttribNameOrWildcard: AttributeName | _ASTERISK_ { $$ = NULL; } ; // [134] SchemaAttributeTest ::= <"schema-attribute" "("> AttributeDeclaration ")" SchemaAttributeTest: _SCHEMA_ATTRIBUTE_ _LPAR_ AttributeDeclaration _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ATTRIBUTE,$3); } ; // [135] AttributeDeclaration ::= AttributeName AttributeDeclaration: AttributeName ; // [136] ElementTest ::= <"element" "("> (ElementNameOrWildcard ("," TypeName "?"?)?)? ")" ElementTest: _ELEMENT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _COMMA_ TypeName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3,$5); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _COMMA_ TypeName _QUESTION_MARK_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3,$5); $$->setAllowNilled(true); } ; // [137] ElementNameOrWildcard ::= ElementName | "*" ElementNameOrWildcard: ElementName | _ASTERISK_ { $$ = NULL; } ; // [138] SchemaElementTest ::= <"schema-element" "("> ElementDeclaration ")" SchemaElementTest: _SCHEMA_ELEMENT_ _LPAR_ ElementDeclaration _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ELEMENT,$3); } ; // [139] ElementDeclaration ::= ElementName ElementDeclaration: ElementName; // [140] AttributeName ::= QName AttributeName: QName; // [141] ElementName ::= QName ElementName: QName; // [142] TypeName ::= QName TypeName: QName; // [143] URILiteral ::= StringLiteral URILiteral: _STRING_LITERAL_ { // the string must be whitespace-normalized XMLString::collapseWS($1, MEMMGR); if($1 && *$1 && !XPath2Utils::isValidURI($1, MEMMGR)) yyerror(@1, "The URI literal is not valid [err:XQST0046]"); $$ = $1; } ; // [144] FTSelection ::= FTOr FTPosFilter* ("weight" RangeExpr)? FTSelection: FTOr FTPosFilters FTSelectionWeight { // TBD weight $$ = $1; for(VectorOfFTOptions::iterator i = $2->begin(); i != $2->end(); ++i) { (*i)->setArgument($$); $$ = *i; } /* delete $2; */ } ; FTSelectionWeight: /* empty */ { } | _WEIGHT_ RangeExpr { } ; FTPosFilters: /* empty */ { $$ = new (MEMMGR) VectorOfFTOptions(XQillaAllocator(MEMMGR)); } | FTPosFilters FTPosFilter { if($2 != NULL) $1->push_back($2); $$ = $1; } ; // [145] FTOr ::= FTAnd ( "ftor" FTAnd )* FTOr: FTOr _FTOR_ FTAnd /* FTOr _OR_ FTAnd */ { if($1->getType() == FTSelection::OR) { FTOr *op = (FTOr*)$1; op->addArg($3); $$ = op; } else { $$ = WRAP(@2, new (MEMMGR) FTOr($1, $3, MEMMGR)); } } | FTAnd ; // [146] FTAnd ::= FTMildnot ( "ftand" FTMildnot )* FTAnd: FTAnd _FTAND_ FTMildnot /* FTAnd _AND_ FTMildnot */ { if($1->getType() == FTSelection::AND) { FTAnd *op = (FTAnd*)$1; op->addArg($3); $$ = op; } else { $$ = WRAP(@2, new (MEMMGR) FTAnd($1, $3, MEMMGR)); } } | FTMildnot ; // [147] FTMildnot ::= FTUnaryNot ( "not" "in" FTUnaryNot )* FTMildnot: FTMildnot _NOT_ _IN_ FTUnaryNot { $$ = WRAP(@2, new (MEMMGR) FTMildnot($1, $4, MEMMGR)); } | FTUnaryNot ; // [148] FTUnaryNot ::= ("ftnot")? FTPrimaryWithOptions FTUnaryNot: _FTNOT_ FTPrimaryWithOptions /* _NOT_ FTPrimaryWithOptions */ { $$ = WRAP(@1, new (MEMMGR) FTUnaryNot($2, MEMMGR)); } | FTPrimaryWithOptions ; // [149] FTPrimaryWithOptions ::= FTPrimary FTMatchOptions? FTPrimaryWithOptions: FTPrimary | FTPrimary FTMatchOptions { // TBD match options $$ = $1; } ; // [150] FTPrimary ::= (FTWords FTTimes?) | ("(" FTSelection ")") | FTExtensionSelection FTPrimary: FTWords FTTimes { // TBD FTTimes $$ = $1; } | _LPAR_ FTSelection _RPAR_ { $$ = $2; } | FTExtensionSelection ; // [151] FTWords ::= FTWordsValue FTAnyallOption? // [152] FTWordsValue ::= Literal | ("{" Expr "}") FTWords: Literal FTAnyallOption { $$ = WRAP(@1, new (MEMMGR) FTWords($1, $2, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ FTAnyallOption { $$ = WRAP(@2, new (MEMMGR) FTWords($2, $4, MEMMGR)); } ; // [153] FTExtensionSelection ::= Pragma+ "{" FTSelection? "}" FTExtensionSelection: PragmaList _LBRACE_ _RBRACE_ { // we don't support any pragma yyerror(@1, "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } | PragmaList _LBRACE_ FTSelection _RBRACE_ { // we don't support any pragma $$ = $3; } ; // [154] FTAnyallOption ::= ("any" "word"?) | ("all" "words"?) | "phrase" FTAnyallOption: /* empty */ { $$ = FTWords::ANY; } | _ANY_ { $$ = FTWords::ANY; } | _ANY_ _WORD_ { $$ = FTWords::ANY_WORD; } | _ALL_ { $$ = FTWords::ALL; } | _ALL_ _WORDS_ { $$ = FTWords::ALL_WORDS; } | _PHRASE_ { $$ = FTWords::PHRASE; } ; // [155] FTTimes ::= "occurs" FTRange "times" FTTimes: /* empty */ | _OCCURS_ FTRange _TIMES_ { yyerror(@1, "The FTTimes operator is not supported. [err:FTST0005]"); } ; // [156] FTRange ::= ("exactly" AdditiveExpr) // | ("at" "least" AdditiveExpr) // | ("at" "most" AdditiveExpr) // | ("from" AdditiveExpr "to" AdditiveExpr) FTRange: _EXACTLY_ AdditiveExpr { $$.type = FTRange::EXACTLY; $$.arg1 = $2; $$.arg2 = 0; } | _AT_LM_ _LEAST_ AdditiveExpr { $$.type = FTRange::AT_LEAST; $$.arg1 = $3; $$.arg2 = 0; } | _AT_LM_ _MOST_ AdditiveExpr { $$.type = FTRange::AT_MOST; $$.arg1 = $3; $$.arg2 = 0; } | _FROM_ AdditiveExpr _TO_ AdditiveExpr { $$.type = FTRange::FROM_TO; $$.arg1 = $2; $$.arg2 = $4; } ; // [157] FTPosFilter ::= FTOrder | FTWindow | FTDistance | FTScope | FTContent // [158] FTOrder ::= "ordered" // [159] FTWindow ::= "window" AdditiveExpr FTUnit // [160] FTDistance ::= "distance" FTRange FTUnit // [162] FTScope ::= ("same" | "different") FTBigUnit // [164] FTContent ::= ("at" "start") | ("at" "end") | ("entire" "content") FTPosFilter: _ORDERED_ { $$ = WRAP(@1, new (MEMMGR) FTOrder(MEMMGR)); } | _WINDOW_ AdditiveExpr FTUnit { $$ = WRAP(@1, new (MEMMGR) FTWindow($2, $3, MEMMGR)); } | _DISTANCE_ FTRange FTUnit { $$ = WRAP(@1, new (MEMMGR) FTDistance($2, $3, MEMMGR)); } | _SAME_ FTBigUnit { $$ = WRAP(@1, new (MEMMGR) FTScope(FTScope::SAME, $2, MEMMGR)); } | _DIFFERENT_ FTBigUnit { $$ = WRAP(@1, new (MEMMGR) FTScope(FTScope::DIFFERENT, $2, MEMMGR)); } | _AT_ _START_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::AT_START, MEMMGR)); } | _AT_ _END_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::AT_END, MEMMGR)); } | _ENTIRE_ _CONTENT_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::ENTIRE_CONTENT, MEMMGR)); } ; // [161] FTUnit ::= "words" | "sentences" | "paragraphs" FTUnit: _WORDS_ { $$ = FTOption::WORDS; } | _SENTENCES_ { $$ = FTOption::SENTENCES; } | _PARAGRAPHS_ { $$ = FTOption::PARAGRAPHS; } ; // [163] FTBigUnit ::= "sentence" | "paragraph" FTBigUnit: _SENTENCE_ { $$ = FTOption::SENTENCES; } | _PARAGRAPH_ { $$ = FTOption::PARAGRAPHS; } ; // [165] FTMatchOptions ::= ("using" FTMatchOption)+ /* xgc: multiple-match-options */ FTMatchOptions: _USING_ FTMatchOption | FTMatchOptions _USING_ FTMatchOption ; // [166] FTMatchOption ::= FTLanguageOption // | FTWildCardOption // | FTThesaurusOption // | FTStemOption // | FTCaseOption // | FTDiacriticsOption // | FTStopWordOption // | FTExtensionOption FTMatchOption: FTLanguageOption | FTWildCardOption | FTThesaurusOption | FTStemOption | FTCaseOption | FTDiacriticsOption | FTStopWordOption | FTExtensionOption ; // [167] FTCaseOption ::= ("case" "insensitive") // | ("case" "sensitive") // | "lowercase" // | "uppercase" FTCaseOption: _CASE_S_ _INSENSITIVE_ { CONTEXT->setFTCase(StaticContext::CASE_INSENSITIVE); } | _CASE_S_ _SENSITIVE_ { CONTEXT->setFTCase(StaticContext::CASE_SENSITIVE); } | _LOWERCASE_ { CONTEXT->setFTCase(StaticContext::LOWERCASE); } | _UPPERCASE_ { CONTEXT->setFTCase(StaticContext::UPPERCASE); } ; // [168] FTDiacriticsOption ::= ("diacritics" "insensitive") // | ("diacritics" "sensitive") FTDiacriticsOption: _DIACRITICS_ _INSENSITIVE_ { std::cerr << "diacritics insensitive" << std::endl; } | _DIACRITICS_ _SENSITIVE_ { std::cerr << "diacritics sensitive" << std::endl; } ; // [169] FTStemOption ::= "stemming" | ("no" "stemming") FTStemOption: _STEMMING_ { std::cerr << "using stemming" << std::endl; } | _NO_ _STEMMING_ { std::cerr << "no stemming" << std::endl; } ; // [170] FTThesaurusOption ::= ("thesaurus" (FTThesaurusID | "default")) // | ("thesaurus" "(" (FTThesaurusID | "default") ("," FTThesaurusID)* ")") // | ("no" "thesaurus") FTThesaurusOption: _THESAURUS_ FTThesaurusID { std::cerr << "using thesaurus" << std::endl; } | _THESAURUS_ _DEFAULT_ { std::cerr << "using thesaurus default" << std::endl; } | _THESAURUS_ _LPAR_ FTThesaurusID FTThesaurusIDList _RPAR_ { std::cerr << "using thesaurus ()" << std::endl; } | _THESAURUS_ _LPAR_ _DEFAULT_ FTThesaurusIDList _RPAR_ { std::cerr << "using thesaurus (default)" << std::endl; } | _NO_ _THESAURUS_ { std::cerr << "no thesaurus" << std::endl; } ; FTThesaurusIDList: /* empty */ { } | FTThesaurusIDList _COMMA_ FTThesaurusID { } ; // [171] FTThesaurusID ::= "at" URILiteral ("relationship" StringLiteral)? (FTRange "levels")? FTThesaurusID: _AT_ URILiteral { std::cerr << "at StringLiteral" << std::endl; } | _AT_ URILiteral _RELATIONSHIP_ StringLiteral { std::cerr << "at StringLiteral relationship StringLiteral" << std::endl; } | _AT_ URILiteral FTRange _LEVELS_ { std::cerr << "at StringLiteral levels" << std::endl; } | _AT_ URILiteral _RELATIONSHIP_ StringLiteral FTRange _LEVELS_ { std::cerr << "at StringLiteral relationship StringLiteral levels" << std::endl; } ; // [172] FTStopWordOption ::= ("stop" "words" FTStopWords FTStopWordsInclExcl*) // | ("no" "stop" "words") // | ("stop" "words" "default" FTStopWordsInclExcl*) FTStopWordOption: _STOP_ _WORDS_ FTStopWords FTStopWordsInclExclList { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } | _NO_ _STOP_ _WORDS_ { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } | _STOP_ _WORDS_ _DEFAULT_ FTStopWordsInclExclList { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } ; FTStopWordsInclExclList: /* empty */ { } | FTStopWordsInclExclList FTStopWordsInclExcl { } ; // [173] FTStopWords ::= ("at" URILiteral) // | ("(" StringLiteral ("," StringLiteral)* ")") FTStopWords: _AT_ URILiteral { std::cerr << "at URILiteral" << std::endl; } | _LPAR_ FTStopWordsStringList _RPAR_ { std::cerr << "()" << std::endl; } ; FTStopWordsStringList: StringLiteral { std::cerr << "StringLiteral" << std::endl; } | FTStopWordsStringList _COMMA_ StringLiteral { std::cerr << ", StringLiteral" << std::endl; } ; // [174] FTStopWordsInclExcl ::= ("union" | "except") FTStopWords FTStopWordsInclExcl: _UNION_ FTStopWords { std::cerr << "union" << std::endl; } | _EXCEPT_ FTStopWords { std::cerr << "except" << std::endl; } ; // [175] FTLanguageOption ::= "language" StringLiteral FTLanguageOption: _LANGUAGE_ StringLiteral { std::cerr << "language StringLiteral" << std::endl; } ; // [176] FTWildCardOption ::= "wildcards" | ("no" "wildcards") FTWildCardOption: _WILDCARDS_ { std::cerr << "using wildcards" << std::endl; } | _NO_ _WILDCARDS_ { std::cerr << "no wildcards" << std::endl; } ; // [177] FTExtensionOption ::= "option" QName StringLiteral FTExtensionOption: _OPTION_ QNameValue _STRING_LITERAL_ { } ; // [178] FTIgnoreOption ::= "without" "content" UnionExpr FTIgnoreOption: _WITHOUT_C_ _CONTENT_ UnionExpr { $$ = $3; } ; // [141] RevalidationDecl ::= "declare" "revalidation" ("strict" | "lax" | "skip") RevalidationDecl: _DECLARE_ _REVALIDATION_ _STRICT_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_STRICT); } | _DECLARE_ _REVALIDATION_ _LAX_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_LAX); } | _DECLARE_ _REVALIDATION_ _SKIP_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_SKIP); } ; // [142] InsertExprTargetChoice ::= (("as" ("first" | "last"))? "into") | "after" | "before" // [143] InsertExpr ::= "insert" ("node" | "nodes") SourceExpr InsertExprTargetChoice TargetExpr // [147] SourceExpr ::= ExprSingle // [148] TargetExpr ::= ExprSingle InsertExpr: InsertExprBegin ExprSingle _AS_ _FIRST_ _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAsFirst($2, $6, MEMMGR)); } | InsertExprBegin ExprSingle _AS_ _LAST_ _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAsLast($2, $6, MEMMGR)); } | InsertExprBegin ExprSingle _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertInto($2, $4, MEMMGR)); } | InsertExprBegin ExprSingle _AFTER_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAfter($2, $4, MEMMGR)); } | InsertExprBegin ExprSingle _BEFORE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertBefore($2, $4, MEMMGR)); } ; InsertExprBegin: _INSERT_ _NODE_ | _INSERT_ _NODES_ ; // [144] DeleteExpr ::= "delete" ("node" | "nodes") TargetExpr // [148] TargetExpr ::= ExprSingle DeleteExpr: DeleteExprBegin ExprSingle { $$ = WRAP(@1, new (MEMMGR) UDelete($2, MEMMGR)); } ; DeleteExprBegin: _DELETE_ _NODE_ | _DELETE_ _NODES_ ; // [145] ReplaceExpr ::= "replace" ("value" "of")? "node" TargetExpr "with" ExprSingle // [148] TargetExpr ::= ExprSingle ReplaceExpr: _REPLACE_ _VALUE_ _OF_ _NODE_ ExprSingle _WITH_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UReplaceValueOf($5, $7, MEMMGR)); } | _REPLACE_ _NODE_ ExprSingle _WITH_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UReplace($3, $5, MEMMGR)); } ; // [146] RenameExpr ::= "rename" "node" TargetExpr "as" NewNameExpr // [148] TargetExpr ::= ExprSingle // [149] NewNameExpr ::= ExprSingle RenameExpr: _RENAME_ _NODE_ ExprSingle _AS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) URename($3, $5, MEMMGR)); } ; // [150] TransformExpr ::= "copy" "$" VarName ":=" ExprSingle ("," "$" VarName ":=" ExprSingle)* "modify" ExprSingle "return" ExprSingle TransformExpr: _COPY_ TransformBindingList _MODIFY_ ExprSingle _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UTransform($2, $4, $6, MEMMGR)); } ; TransformBindingList: TransformBindingList _COMMA_ TransformBinding { $1->push_back($3); $$ = $1; } | TransformBinding { $$ = new (MEMMGR) VectorOfCopyBinding(XQillaAllocator(MEMMGR)); $$->push_back($1); } ; TransformBinding: _DOLLAR_ VarName _COLON_EQUALS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) CopyBinding(MEMMGR, $2, $4)); } ; // [174] IntegerLiteral ::= Digits IntegerLiteral: _INTEGER_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, $1, AnyAtomicType::DECIMAL, MEMMGR)); } ; // [175] DecimalLiteral ::= ("." Digits) | (Digits "." [0-9]*) DecimalLiteral: _DECIMAL_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, $1, AnyAtomicType::DECIMAL, MEMMGR)); } ; // [176] DoubleLiteral ::= (("." Digits) | (Digits ("." [0-9]*)?)) [eE] [+-]? Digits DoubleLiteral: _DOUBLE_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, $1, AnyAtomicType::DOUBLE, MEMMGR)); } ; // [177] StringLiteral ::= ('"' (PredefinedEntityRef | CharRef | ('"' '"') | [^"&])* '"') | // ("'" (PredefinedEntityRef | CharRef | ("'" "'") | [^'&])* "'") StringLiteral: _STRING_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $1, AnyAtomicType::STRING, MEMMGR)); } ; NCName: QNameValue { // Check for a colon for(XMLCh *tmp = $1; *tmp; ++tmp) if(*tmp == ':') yyerror(@1, "Expecting an NCName, found a QName"); } ; QName: QNameValue { $$ = new (MEMMGR) QualifiedName($1,MEMMGR); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // Template Extension Rules // TemplateDecl ::= "declare" "template" ((("name" QName)? ("mode" TemplateDeclModes)? "matches" Pattern) | ("name" QName)) // ("(" ParamList? ")" ("as" SequenceType)?)? EnclosedExpr TemplateDecl: _DECLARE_ _TEMPLATE_ _NAME_ QNameValue EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, 0, signature, $5, MEMMGR)); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($5, $6, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, 0, signature, $7, MEMMGR)); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateDeclModesSection _MATCHES_ Pattern_XSLT EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $7, signature, $8, MEMMGR)); $$->setModeList($5); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateDeclModesSection _MATCHES_ Pattern_XSLT TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($8, $9, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $7, signature, $10, MEMMGR)); $$->setModeList($5); } | _DECLARE_ _TEMPLATE_ TemplateDeclModesSection _MATCHES_ Pattern_XSLT EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, $5, signature, $6, MEMMGR)); $$->setModeList($3); } | _DECLARE_ _TEMPLATE_ TemplateDeclModesSection _MATCHES_ Pattern_XSLT TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($6, $7, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, $5, signature, $8, MEMMGR)); $$->setModeList($3); } ; TemplateSequenceType: /* empty */ { $$ = 0; } | _AS_ SequenceType { $$ = $2; } ; // TBD required and tunnel - jpcs TemplateParamList: _LPAR_ _RPAR_ { $$ = 0; } | _LPAR_ ParamList _RPAR_ { $$ = $2; } ; TemplateDeclModesSection: /* empty */ { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); $$->push_back(WRAP(@$, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); } | _MODE_ TemplateDeclModes { $$ = $2; } ; // TemplateDeclModes ::= TemplateDeclMode ("," TemplateDeclMode)* TemplateDeclModes: TemplateDeclMode { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); $$->push_back($1); } | TemplateDeclModes _COMMA_ TemplateDeclMode { $1->push_back($3); $$ = $1; } ; // TemplateDeclMode ::= QName | "#default" | "#all" TemplateDeclMode: _QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode($1)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_ALL_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL)); } ; // CallTemplateExpr ::= "call" "template" QName ("with" "(" TemplateArgumentList ")")? CallTemplateExpr: _CALL_ _TEMPLATE_ QNameValue { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate($3, 0, MEMMGR)); } | _CALL_ _TEMPLATE_ QNameValue _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate($3, $6, MEMMGR)); } ; // ApplyTemplatesExpr ::= "apply" "templates" ("mode" ApplyTemplatesMode)? ExprSingle ("with" "(" TemplateArgumentList ")")? ApplyTemplatesExpr: _APPLY_ _TEMPLATES_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, 0, 0, MEMMGR)); } |_APPLY_ _TEMPLATES_ ExprSingle _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, $6, 0, MEMMGR)); } | _APPLY_ _TEMPLATES_ ExprSingle _MODE_ ApplyTemplatesMode { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, 0, $5, MEMMGR)); } |_APPLY_ _TEMPLATES_ ExprSingle _MODE_ ApplyTemplatesMode _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, $8, $5, MEMMGR)); } ; // ApplyTemplatesMode ::= QName | "#default" | "#current" ApplyTemplatesMode: QNameValue { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode($1)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_CURRENT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } ; // TemplateArgumentList ::= TemplateArgument ("," TemplateArgument)* TemplateArgumentList: TemplateArgument { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); $$->push_back($1); } | TemplateArgumentList _COMMA_ TemplateArgument { $$ = $1; $$->push_back($3); } ; // TemplateArgument ::= "tunnel"? "$" VarName TypeDeclaration? ":=" ExprSingle // TBD tunnel - jpcs TemplateArgument: _DOLLAR_ VarName TypeDeclaration _COLON_EQUALS_ ExprSingle { if($3 != 0) $5 = $3->convertFunctionArg($5, CONTEXT, /*numericfunction*/false, $3); $$ = WRAP(@1, new (MEMMGR) XQTemplateArgument($2, $5, MEMMGR)); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XQuery 1.1 Functionality // [161] FunctionItemExpr ::= LiteralFunctionItem | InlineFunction FunctionItemExpr: LiteralFunctionItem | InlineFunction; // [162] LiteralFunctionItem ::= QName "#" IntegerLiteral LiteralFunctionItem: FunctionName _HASH_ _INTEGER_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQFunctionRef($1, atoi(UTF8($3)), MEMMGR)); } ; // [163] InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr InlineFunction: _FUNCTION_EXT_ FunctionParamList TypeDeclaration EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($2, $3, MEMMGR); XQUserFunction *func = WRAP(@1, new (MEMMGR) XQUserFunction(0, signature, $4, false, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQInlineFunction(func, MEMMGR)); } ; // [121] PostfixExpr ::= PrimaryExpr (Predicate | ArgumentList)* // [122] ArgumentList ::= "(" (Argument ("," Argument)*)? ")" DynamicFunctionInvocation: PostfixExpr _LPAR_ _RPAR_ { REJECT_NOT_VERSION3(DynamicFunctionInvocation, @1); $$ = WRAP(@2, new (MEMMGR) XQFunctionDeref($1, new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)), MEMMGR)); } | PostfixExpr _LPAR_ FunctionCallArgumentList _RPAR_ { REJECT_NOT_VERSION3(DynamicFunctionInvocation, @1); bool partial = false; VectorOfASTNodes::iterator i; for(i = $3->begin(); i != $3->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application $$ = WRAP(@2, new (MEMMGR) XQPartialApply($1, $3, MEMMGR)); } else { $$ = WRAP(@2, new (MEMMGR) XQFunctionDeref($1, $3, MEMMGR)); } } ; // [189] FunctionTest ::= AnyFunctionTest | TypedFunctionTest FunctionTest: AnyFunctionTest | TypedFunctionTest; // [190] AnyFunctionTest ::= "function" "(" "*" ")" AnyFunctionTest: _FUNCTION_EXT_ _LPAR_ _ASTERISK_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION); } ; // [191] TypedFunctionTest ::= "function" "(" (SequenceType ("," SequenceType)*)? ")" "as" SequenceType TypedFunctionTest: _FUNCTION_EXT_ _LPAR_ _RPAR_ _AS_ SequenceType { $$ = new (MEMMGR) SequenceType::ItemType(new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)), $5); } | _FUNCTION_EXT_ _LPAR_ FunctionTypeArguments _RPAR_ _AS_ SequenceType { $$ = new (MEMMGR) SequenceType::ItemType($3, $6); } ; FunctionTypeArguments: SequenceType { $$ = new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)); $$->push_back($1); } | FunctionTypeArguments _COMMA_ SequenceType { $$ = $1; $$->push_back($3); } ; // [192] ParenthesizedItemType ::= "(" ItemType ")" ParenthesizedItemType: _LPAR_ ItemType _RPAR_ { $$ = $2; } ; //////////////////////////////////////////////////////////////////////////////////////////////////// QNameValue: FunctionName | _ATTRIBUTE_ | _COMMENT_ | _DOCUMENT_NODE_ | _ELEMENT_ | _ITEM_ | _IF_ | _NODE_ | _PROCESSING_INSTRUCTION_ | _SCHEMA_ATTRIBUTE_ | _SCHEMA_ELEMENT_ | _TEXT_ | _TYPESWITCH_ | _EMPTY_SEQUENCE_ | _FUNCTION_EXT_ | _NAMESPACE_NODE_ ; FunctionName: _QNAME_ | _BOUNDARY_SPACE_ | _FT_OPTION_ | _BASE_URI_ | _LAX_ | _STRICT_ | _IDIV_ | _CHILD_ | _DESCENDANT_ | _SELF_ | _DESCENDANT_OR_SELF_ | _FOLLOWING_SIBLING_ | _FOLLOWING_ | _PARENT_ | _ANCESTOR_ | _PRECEDING_SIBLING_ | _PRECEDING_ | _ANCESTOR_OR_SELF_ | _DOCUMENT_ | _NOT_ | _SENSITIVE_ | _INSENSITIVE_ | _DIACRITICS_ | _WITHOUT_ | _STEMMING_ | _THESAURUS_ | _STOP_ | _WILDCARDS_ | _ENTIRE_ | _CONTENT_ | _WORD_ | _TYPE_ | _START_ | _END_ | _MOST_ | _SKIP_ | _COPY_ | _VALUE_ | _EQ_ | _NE_ | _LT_ | _LE_ | _GT_ | _GE_ | _AT_ | _VARIABLE_ | _RETURN_ | _FOR_ | _IN_ | _LET_ | _WHERE_ | _BY_ | _ORDER_ | _STABLE_ | _ASCENDING_ | _DESCENDING_ | _EMPTY_ | _GREATEST_ | _LEAST_ | _COLLATION_ | _SOME_ | _EVERY_ | _SATISFIES_ | _CASE_ | _AS_ | _THEN_ | _ELSE_ | _OR_ | _AND_ | _INSTANCE_ | _OF_ | _CASTABLE_ | _TO_ | _DIV_ | _MOD_ | _UNION_ | _INTERSECT_ | _EXCEPT_ | _VALIDATE_ | _CAST_ | _TREAT_ | _IS_ | _PRESERVE_ | _STRIP_ | _NAMESPACE_ | _EXTERNAL_ | _ENCODING_ | _NO_PRESERVE_ | _INHERIT_ | _NO_INHERIT_ | _DECLARE_ | _CONSTRUCTION_ | _ORDERING_ | _DEFAULT_ | _COPY_NAMESPACES_ | _OPTION_ | _VERSION_ | _IMPORT_ | _SCHEMA_ | _FUNCTION_ | _SCORE_ | _USING_ | _NO_ | _CONTAINS_ | _WEIGHT_ | _WINDOW_ | _DISTANCE_ | _OCCURS_ | _TIMES_ | _SAME_ | _DIFFERENT_ | _LOWERCASE_ | _UPPERCASE_ | _RELATIONSHIP_ | _LEVELS_ | _LANGUAGE_ | _ANY_ | _ALL_ | _PHRASE_ | _EXACTLY_ | _FROM_ | _WORDS_ | _SENTENCES_ | _PARAGRAPHS_ | _SENTENCE_ | _PARAGRAPH_ | _REPLACE_ | _MODIFY_ | _FIRST_ | _INSERT_ | _BEFORE_ | _AFTER_ | _REVALIDATION_ | _WITH_ | _NODES_ | _RENAME_ | _LAST_ | _DELETE_ | _INTO_ | _UPDATING_ | _ORDERED_ | _UNORDERED_ | _ID_ | _KEY_ | _TEMPLATE_ | _MATCHES_ | _NAME_ | _CALL_ | _APPLY_ | _TEMPLATES_ | _MODE_ | _FTOR_ | _FTAND_ | _FTNOT_ | _PRIVATE_ | _PUBLIC_ | _DETERMINISTIC_ | _NONDETERMINISTIC_ ; /* _XQUERY_ | */ /* _MODULE_ | */ %% } // namespace XQParser XQilla-2.3.4/src/parser/QName.cpp0000644001725400016040000000707513273140037013440 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; //Parse qualifiedName into prefix and name QualifiedName::QualifiedName(const XMLCh* qualifiedName, XPath2MemoryManager* memMgr) : _bDeleteStrings(false) { if(qualifiedName && *qualifiedName) { int colonPos = XMLString::indexOf(qualifiedName, chColon, 0); if(colonPos == -1) { _name = memMgr->getPooledString(qualifiedName); _prefix = 0; } else { XMLCh* tempPrefix = new XMLCh[colonPos + 1]; XMLString::subString(tempPrefix, qualifiedName, 0, colonPos); tempPrefix[colonPos] = 0; _prefix = memMgr->getPooledString(tempPrefix); delete [] tempPrefix; unsigned int length = XPath2Utils::uintStrlen(qualifiedName); XMLCh* tempName = new XMLCh[length - colonPos]; XMLString::subString(tempName, qualifiedName, colonPos + 1, length); tempName[length - colonPos - 1] = 0; _name = memMgr->getPooledString(tempName); delete [] tempName; } } else { _name = XMLUni::fgZeroLenString; _prefix = 0; } } QualifiedName::QualifiedName(const XMLCh* qualifiedName) : _bDeleteStrings(true) { if(qualifiedName && *qualifiedName) { int colonPos=XMLString::indexOf(qualifiedName, chColon, 0); if(colonPos == -1) { _name = XMLString::replicate(qualifiedName); _prefix = 0; } else { XMLCh* tempPrefix = new XMLCh[colonPos + 1]; XMLString::subString(tempPrefix, qualifiedName, 0, colonPos); tempPrefix[colonPos] = 0; _prefix = XMLString::replicate(tempPrefix); delete [] tempPrefix; unsigned int length = XPath2Utils::uintStrlen(qualifiedName); XMLCh* tempName = new XMLCh[length - colonPos]; XMLString::subString(tempName, qualifiedName, colonPos + 1, length); tempName[length - colonPos - 1] = 0; _name = XMLString::replicate(tempName); delete [] tempName; } } else { _name = XMLUni::fgZeroLenString; _prefix = 0; _bDeleteStrings = false; } } QualifiedName::QualifiedName(const XMLCh* prefix, const XMLCh* name) : _bDeleteStrings(false) { _prefix = prefix; _name = name; } QualifiedName::~QualifiedName() { if(_bDeleteStrings) { XMLString::release((XMLCh**)&_prefix); XMLString::release((XMLCh**)&_name); } } const XMLCh* QualifiedName::getPrefix() const { return _prefix; } const XMLCh* QualifiedName::getName() const { return _name; } const XMLCh* QualifiedName::getFullName(XPath2MemoryManager* memMgr) const { if(_prefix != NULL) { XMLCh szColon[2] = {chColon, chNull}; return XPath2Utils::concatStrings(_prefix, szColon, _name, memMgr); } return memMgr->getPooledString(_name); } XQilla-2.3.4/src/parser/XQParser.hpp0000644001725400016040000004336013273140472014151 00000000000000/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { MYEOF = 0, _LANG_XPATH2_ = 258, _LANG_XQUERY_ = 259, _LANG_XSLT2_ = 260, _LANG_FUNCDECL_ = 261, _LANG_DELAYEDMODULE_ = 262, _LANG_FUNCTION_SIGNATURE_ = 263, _DOLLAR_ = 264, _COLON_EQUALS_ = 265, _ASTERISK_ = 266, _BAR_ = 267, _BANG_EQUALS_ = 268, _LESS_THAN_EQUALS_ = 269, _GREATER_THAN_ = 270, _GREATER_THAN_EQUALS_ = 271, _LESS_THAN_LESS_THAN_ = 272, _GREATER_THAN_GREATER_THAN_ = 273, _COLON_COLON_ = 274, _AT_SIGN_ = 275, _LSQUARE_ = 276, _RSQUARE_ = 277, _QUESTION_MARK_ = 278, _LESS_THAN_OP_OR_TAG_ = 279, _START_TAG_CLOSE_ = 280, _END_TAG_CLOSE_ = 281, _PI_START_ = 282, _XML_COMMENT_START_ = 283, _XML_COMMENT_END_ = 284, _SLASH_SLASH_ = 285, _END_TAG_OPEN_ = 286, _PRAGMA_OPEN_ = 287, _COMMA_ = 288, _PLUS_ = 289, _MINUS_ = 290, _SLASH_ = 291, _EQUALS_ = 292, _DOT_ = 293, _DOT_DOT_ = 294, _LPAR_ = 295, _RPAR_ = 296, _EMPTY_TAG_CLOSE_ = 297, _VALUE_INDICATOR_ = 298, _OPEN_QUOT_ = 299, _CLOSE_QUOT_ = 300, _OPEN_APOS_ = 301, _CLOSE_APOS_ = 302, _LBRACE_ = 303, _RBRACE_ = 304, _SEMICOLON_ = 305, _HASH_ = 306, _INTEGER_LITERAL_ = 307, _DECIMAL_LITERAL_ = 308, _DOUBLE_LITERAL_ = 309, _ATTRIBUTE_ = 310, _COMMENT_ = 311, _DOCUMENT_NODE_ = 312, _NAMESPACE_NODE_ = 313, _NODE_ = 314, _PROCESSING_INSTRUCTION_ = 315, _SCHEMA_ATTRIBUTE_ = 316, _SCHEMA_ELEMENT_ = 317, _TEXT_ = 318, _EMPTY_SEQUENCE_ = 319, _BOUNDARY_SPACE_ = 320, _FT_OPTION_ = 321, _BASE_URI_ = 322, _LAX_ = 323, _STRICT_ = 324, _IDIV_ = 325, _CHILD_ = 326, _DESCENDANT_ = 327, _SELF_ = 328, _DESCENDANT_OR_SELF_ = 329, _FOLLOWING_SIBLING_ = 330, _FOLLOWING_ = 331, _PARENT_ = 332, _ANCESTOR_ = 333, _PRECEDING_SIBLING_ = 334, _PRECEDING_ = 335, _ANCESTOR_OR_SELF_ = 336, _DOCUMENT_ = 337, _NOT_ = 338, _USING_ = 339, _NO_ = 340, _SENSITIVE_ = 341, _INSENSITIVE_ = 342, _DIACRITICS_ = 343, _WITHOUT_ = 344, _WITHOUT_C_ = 345, _STEMMING_ = 346, _THESAURUS_ = 347, _STOP_ = 348, _WILDCARDS_ = 349, _ENTIRE_ = 350, _CONTENT_ = 351, _WORD_ = 352, _TYPE_ = 353, _START_ = 354, _END_ = 355, _MOST_ = 356, _SKIP_ = 357, _COPY_ = 358, _VALUE_ = 359, _WHITESPACE_ = 360, _PI_CONTENT_ = 361, _XML_COMMENT_CONTENT_ = 362, _EQ_ = 363, _NE_ = 364, _LT_ = 365, _LE_ = 366, _GT_ = 367, _GE_ = 368, _AT_ = 369, _QUOT_ATTR_CONTENT_ = 370, _APOS_ATTR_CONTENT_ = 371, _WHITESPACE_ELEMENT_CONTENT_ = 372, _ELEMENT_CONTENT_ = 373, _AT_LM_ = 374, _ORDERED_ = 375, _UNORDERED_ = 376, _QNAME_ = 377, _XMLNS_QNAME_ = 378, _CONSTR_QNAME_ = 379, _STRING_LITERAL_ = 380, _VARIABLE_ = 381, _NCNAME_COLON_STAR_ = 382, _STAR_COLON_NCNAME_ = 383, _PI_TARGET_ = 384, _PRAGMA_CONTENT_ = 385, _RETURN_ = 386, _FOR_ = 387, _IN_ = 388, _LET_ = 389, _WHERE_ = 390, _COUNT_ = 391, _BY_ = 392, _ORDER_ = 393, _STABLE_ = 394, _ASCENDING_ = 395, _DESCENDING_ = 396, _EMPTY_ = 397, _GREATEST_ = 398, _LEAST_ = 399, _COLLATION_ = 400, _SOME_ = 401, _EVERY_ = 402, _SATISFIES_ = 403, _TYPESWITCH_ = 404, _CASE_ = 405, _CASE_S_ = 406, _AS_ = 407, _IF_ = 408, _THEN_ = 409, _ELSE_ = 410, _OR_ = 411, _AND_ = 412, _INSTANCE_ = 413, _OF_ = 414, _CASTABLE_ = 415, _TO_ = 416, _DIV_ = 417, _MOD_ = 418, _UNION_ = 419, _INTERSECT_ = 420, _EXCEPT_ = 421, _VALIDATE_ = 422, _CAST_ = 423, _TREAT_ = 424, _IS_ = 425, _PRESERVE_ = 426, _STRIP_ = 427, _NAMESPACE_ = 428, _ITEM_ = 429, _EXTERNAL_ = 430, _ENCODING_ = 431, _NO_PRESERVE_ = 432, _INHERIT_ = 433, _NO_INHERIT_ = 434, _DECLARE_ = 435, _CONSTRUCTION_ = 436, _ORDERING_ = 437, _DEFAULT_ = 438, _COPY_NAMESPACES_ = 439, _OPTION_ = 440, _XQUERY_ = 441, _VERSION_ = 442, _IMPORT_ = 443, _SCHEMA_ = 444, _MODULE_ = 445, _ELEMENT_ = 446, _FUNCTION_ = 447, _FUNCTION_EXT_ = 448, _SCORE_ = 449, _CONTAINS_ = 450, _WEIGHT_ = 451, _WINDOW_ = 452, _DISTANCE_ = 453, _OCCURS_ = 454, _TIMES_ = 455, _SAME_ = 456, _DIFFERENT_ = 457, _LOWERCASE_ = 458, _UPPERCASE_ = 459, _RELATIONSHIP_ = 460, _LEVELS_ = 461, _LANGUAGE_ = 462, _ANY_ = 463, _ALL_ = 464, _PHRASE_ = 465, _EXACTLY_ = 466, _FROM_ = 467, _WORDS_ = 468, _SENTENCES_ = 469, _PARAGRAPHS_ = 470, _SENTENCE_ = 471, _PARAGRAPH_ = 472, _REPLACE_ = 473, _MODIFY_ = 474, _FIRST_ = 475, _INSERT_ = 476, _BEFORE_ = 477, _AFTER_ = 478, _REVALIDATION_ = 479, _WITH_ = 480, _NODES_ = 481, _RENAME_ = 482, _LAST_ = 483, _DELETE_ = 484, _INTO_ = 485, _UPDATING_ = 486, _ID_ = 487, _KEY_ = 488, _TEMPLATE_ = 489, _MATCHES_ = 490, _NAME_ = 491, _CALL_ = 492, _APPLY_ = 493, _TEMPLATES_ = 494, _MODE_ = 495, _FTOR_ = 496, _FTAND_ = 497, _FTNOT_ = 498, _PRIVATE_ = 499, _PUBLIC_ = 500, _DETERMINISTIC_ = 501, _NONDETERMINISTIC_ = 502, _XSLT_END_ELEMENT_ = 503, _XSLT_STYLESHEET_ = 504, _XSLT_TEMPLATE_ = 505, _XSLT_VALUE_OF_ = 506, _XSLT_TEXT_ = 507, _XSLT_APPLY_TEMPLATES_ = 508, _XSLT_CALL_TEMPLATE_ = 509, _XSLT_WITH_PARAM_ = 510, _XSLT_SEQUENCE_ = 511, _XSLT_PARAM_ = 512, _XSLT_FUNCTION_ = 513, _XSLT_CHOOSE_ = 514, _XSLT_WHEN_ = 515, _XSLT_OTHERWISE_ = 516, _XSLT_IF_ = 517, _XSLT_VARIABLE_ = 518, _XSLT_COMMENT_ = 519, _XSLT_PI_ = 520, _XSLT_DOCUMENT_ = 521, _XSLT_ATTRIBUTE_ = 522, _XSLT_NAMESPACE_ = 523, _XSLT_ELEMENT_ = 524, _XSLT_ANALYZE_STRING_ = 525, _XSLT_MATCHING_SUBSTRING_ = 526, _XSLT_NON_MATCHING_SUBSTRING_ = 527, _XSLT_COPY_OF_ = 528, _XSLT_COPY_ = 529, _XSLT_FOR_EACH_ = 530, _XSLT_OUTPUT_ = 531, _XSLT_IMPORT_SCHEMA_ = 532, _XSLT_VERSION_ = 533, _XSLT_MODE_ = 534, _XSLT_NAME_ = 535, _XSLT_DOCTYPE_PUBLIC_ = 536, _XSLT_DOCTYPE_SYSTEM_ = 537, _XSLT_ENCODING_ = 538, _XSLT_MEDIA_TYPE_ = 539, _XSLT_NORMALIZATION_FORM_ = 540, _XSLT_STANDALONE_ = 541, _XSLT_EXCLUDE_RESULT_PREFIXES_ = 542, _XSLT_NAMESPACE_STR_ = 543, _XSLT_SCHEMA_LOCATION_ = 544, _XSLT_TUNNEL_ = 545, _XSLT_REQUIRED_ = 546, _XSLT_OVERRIDE_ = 547, _XSLT_COPY_NAMESPACES_ = 548, _XSLT_INHERIT_NAMESPACES_ = 549, _XSLT_BYTE_ORDER_MARK_ = 550, _XSLT_ESCAPE_URI_ATTRIBUTES_ = 551, _XSLT_INCLUDE_CONTENT_TYPE_ = 552, _XSLT_INDENT_ = 553, _XSLT_OMIT_XML_DECLARATION_ = 554, _XSLT_UNDECLARE_PREFIXES_ = 555, _XSLT_MATCH_ = 556, _XSLT_AS_ = 557, _XSLT_SELECT_ = 558, _XSLT_PRIORITY_ = 559, _XSLT_TEST_ = 560, _XSLT_SEPARATOR_ = 561, _XSLT_NAMESPACE_A_ = 562, _XSLT_REGEX_ = 563, _XSLT_FLAGS_ = 564, _XSLT_METHOD_ = 565, _XSLT_CDATA_SECTION_ELEMENTS_ = 566, _XSLT_USE_CHARACTER_MAPS_ = 567, _XSLT_ELEMENT_NAME_ = 568, _XSLT_XMLNS_ATTR_ = 569, _XSLT_ATTR_NAME_ = 570, _XSLT_TEXT_NODE_ = 571, _XSLT_WS_TEXT_NODE_ = 572, _HASH_DEFAULT_ = 573, _HASH_ALL_ = 574, _HASH_CURRENT_ = 575, _XML_ = 576, _HTML_ = 577, _XHTML_ = 578 }; #endif /* Tokens. */ #define MYEOF 0 #define _LANG_XPATH2_ 258 #define _LANG_XQUERY_ 259 #define _LANG_XSLT2_ 260 #define _LANG_FUNCDECL_ 261 #define _LANG_DELAYEDMODULE_ 262 #define _LANG_FUNCTION_SIGNATURE_ 263 #define _DOLLAR_ 264 #define _COLON_EQUALS_ 265 #define _ASTERISK_ 266 #define _BAR_ 267 #define _BANG_EQUALS_ 268 #define _LESS_THAN_EQUALS_ 269 #define _GREATER_THAN_ 270 #define _GREATER_THAN_EQUALS_ 271 #define _LESS_THAN_LESS_THAN_ 272 #define _GREATER_THAN_GREATER_THAN_ 273 #define _COLON_COLON_ 274 #define _AT_SIGN_ 275 #define _LSQUARE_ 276 #define _RSQUARE_ 277 #define _QUESTION_MARK_ 278 #define _LESS_THAN_OP_OR_TAG_ 279 #define _START_TAG_CLOSE_ 280 #define _END_TAG_CLOSE_ 281 #define _PI_START_ 282 #define _XML_COMMENT_START_ 283 #define _XML_COMMENT_END_ 284 #define _SLASH_SLASH_ 285 #define _END_TAG_OPEN_ 286 #define _PRAGMA_OPEN_ 287 #define _COMMA_ 288 #define _PLUS_ 289 #define _MINUS_ 290 #define _SLASH_ 291 #define _EQUALS_ 292 #define _DOT_ 293 #define _DOT_DOT_ 294 #define _LPAR_ 295 #define _RPAR_ 296 #define _EMPTY_TAG_CLOSE_ 297 #define _VALUE_INDICATOR_ 298 #define _OPEN_QUOT_ 299 #define _CLOSE_QUOT_ 300 #define _OPEN_APOS_ 301 #define _CLOSE_APOS_ 302 #define _LBRACE_ 303 #define _RBRACE_ 304 #define _SEMICOLON_ 305 #define _HASH_ 306 #define _INTEGER_LITERAL_ 307 #define _DECIMAL_LITERAL_ 308 #define _DOUBLE_LITERAL_ 309 #define _ATTRIBUTE_ 310 #define _COMMENT_ 311 #define _DOCUMENT_NODE_ 312 #define _NAMESPACE_NODE_ 313 #define _NODE_ 314 #define _PROCESSING_INSTRUCTION_ 315 #define _SCHEMA_ATTRIBUTE_ 316 #define _SCHEMA_ELEMENT_ 317 #define _TEXT_ 318 #define _EMPTY_SEQUENCE_ 319 #define _BOUNDARY_SPACE_ 320 #define _FT_OPTION_ 321 #define _BASE_URI_ 322 #define _LAX_ 323 #define _STRICT_ 324 #define _IDIV_ 325 #define _CHILD_ 326 #define _DESCENDANT_ 327 #define _SELF_ 328 #define _DESCENDANT_OR_SELF_ 329 #define _FOLLOWING_SIBLING_ 330 #define _FOLLOWING_ 331 #define _PARENT_ 332 #define _ANCESTOR_ 333 #define _PRECEDING_SIBLING_ 334 #define _PRECEDING_ 335 #define _ANCESTOR_OR_SELF_ 336 #define _DOCUMENT_ 337 #define _NOT_ 338 #define _USING_ 339 #define _NO_ 340 #define _SENSITIVE_ 341 #define _INSENSITIVE_ 342 #define _DIACRITICS_ 343 #define _WITHOUT_ 344 #define _WITHOUT_C_ 345 #define _STEMMING_ 346 #define _THESAURUS_ 347 #define _STOP_ 348 #define _WILDCARDS_ 349 #define _ENTIRE_ 350 #define _CONTENT_ 351 #define _WORD_ 352 #define _TYPE_ 353 #define _START_ 354 #define _END_ 355 #define _MOST_ 356 #define _SKIP_ 357 #define _COPY_ 358 #define _VALUE_ 359 #define _WHITESPACE_ 360 #define _PI_CONTENT_ 361 #define _XML_COMMENT_CONTENT_ 362 #define _EQ_ 363 #define _NE_ 364 #define _LT_ 365 #define _LE_ 366 #define _GT_ 367 #define _GE_ 368 #define _AT_ 369 #define _QUOT_ATTR_CONTENT_ 370 #define _APOS_ATTR_CONTENT_ 371 #define _WHITESPACE_ELEMENT_CONTENT_ 372 #define _ELEMENT_CONTENT_ 373 #define _AT_LM_ 374 #define _ORDERED_ 375 #define _UNORDERED_ 376 #define _QNAME_ 377 #define _XMLNS_QNAME_ 378 #define _CONSTR_QNAME_ 379 #define _STRING_LITERAL_ 380 #define _VARIABLE_ 381 #define _NCNAME_COLON_STAR_ 382 #define _STAR_COLON_NCNAME_ 383 #define _PI_TARGET_ 384 #define _PRAGMA_CONTENT_ 385 #define _RETURN_ 386 #define _FOR_ 387 #define _IN_ 388 #define _LET_ 389 #define _WHERE_ 390 #define _COUNT_ 391 #define _BY_ 392 #define _ORDER_ 393 #define _STABLE_ 394 #define _ASCENDING_ 395 #define _DESCENDING_ 396 #define _EMPTY_ 397 #define _GREATEST_ 398 #define _LEAST_ 399 #define _COLLATION_ 400 #define _SOME_ 401 #define _EVERY_ 402 #define _SATISFIES_ 403 #define _TYPESWITCH_ 404 #define _CASE_ 405 #define _CASE_S_ 406 #define _AS_ 407 #define _IF_ 408 #define _THEN_ 409 #define _ELSE_ 410 #define _OR_ 411 #define _AND_ 412 #define _INSTANCE_ 413 #define _OF_ 414 #define _CASTABLE_ 415 #define _TO_ 416 #define _DIV_ 417 #define _MOD_ 418 #define _UNION_ 419 #define _INTERSECT_ 420 #define _EXCEPT_ 421 #define _VALIDATE_ 422 #define _CAST_ 423 #define _TREAT_ 424 #define _IS_ 425 #define _PRESERVE_ 426 #define _STRIP_ 427 #define _NAMESPACE_ 428 #define _ITEM_ 429 #define _EXTERNAL_ 430 #define _ENCODING_ 431 #define _NO_PRESERVE_ 432 #define _INHERIT_ 433 #define _NO_INHERIT_ 434 #define _DECLARE_ 435 #define _CONSTRUCTION_ 436 #define _ORDERING_ 437 #define _DEFAULT_ 438 #define _COPY_NAMESPACES_ 439 #define _OPTION_ 440 #define _XQUERY_ 441 #define _VERSION_ 442 #define _IMPORT_ 443 #define _SCHEMA_ 444 #define _MODULE_ 445 #define _ELEMENT_ 446 #define _FUNCTION_ 447 #define _FUNCTION_EXT_ 448 #define _SCORE_ 449 #define _CONTAINS_ 450 #define _WEIGHT_ 451 #define _WINDOW_ 452 #define _DISTANCE_ 453 #define _OCCURS_ 454 #define _TIMES_ 455 #define _SAME_ 456 #define _DIFFERENT_ 457 #define _LOWERCASE_ 458 #define _UPPERCASE_ 459 #define _RELATIONSHIP_ 460 #define _LEVELS_ 461 #define _LANGUAGE_ 462 #define _ANY_ 463 #define _ALL_ 464 #define _PHRASE_ 465 #define _EXACTLY_ 466 #define _FROM_ 467 #define _WORDS_ 468 #define _SENTENCES_ 469 #define _PARAGRAPHS_ 470 #define _SENTENCE_ 471 #define _PARAGRAPH_ 472 #define _REPLACE_ 473 #define _MODIFY_ 474 #define _FIRST_ 475 #define _INSERT_ 476 #define _BEFORE_ 477 #define _AFTER_ 478 #define _REVALIDATION_ 479 #define _WITH_ 480 #define _NODES_ 481 #define _RENAME_ 482 #define _LAST_ 483 #define _DELETE_ 484 #define _INTO_ 485 #define _UPDATING_ 486 #define _ID_ 487 #define _KEY_ 488 #define _TEMPLATE_ 489 #define _MATCHES_ 490 #define _NAME_ 491 #define _CALL_ 492 #define _APPLY_ 493 #define _TEMPLATES_ 494 #define _MODE_ 495 #define _FTOR_ 496 #define _FTAND_ 497 #define _FTNOT_ 498 #define _PRIVATE_ 499 #define _PUBLIC_ 500 #define _DETERMINISTIC_ 501 #define _NONDETERMINISTIC_ 502 #define _XSLT_END_ELEMENT_ 503 #define _XSLT_STYLESHEET_ 504 #define _XSLT_TEMPLATE_ 505 #define _XSLT_VALUE_OF_ 506 #define _XSLT_TEXT_ 507 #define _XSLT_APPLY_TEMPLATES_ 508 #define _XSLT_CALL_TEMPLATE_ 509 #define _XSLT_WITH_PARAM_ 510 #define _XSLT_SEQUENCE_ 511 #define _XSLT_PARAM_ 512 #define _XSLT_FUNCTION_ 513 #define _XSLT_CHOOSE_ 514 #define _XSLT_WHEN_ 515 #define _XSLT_OTHERWISE_ 516 #define _XSLT_IF_ 517 #define _XSLT_VARIABLE_ 518 #define _XSLT_COMMENT_ 519 #define _XSLT_PI_ 520 #define _XSLT_DOCUMENT_ 521 #define _XSLT_ATTRIBUTE_ 522 #define _XSLT_NAMESPACE_ 523 #define _XSLT_ELEMENT_ 524 #define _XSLT_ANALYZE_STRING_ 525 #define _XSLT_MATCHING_SUBSTRING_ 526 #define _XSLT_NON_MATCHING_SUBSTRING_ 527 #define _XSLT_COPY_OF_ 528 #define _XSLT_COPY_ 529 #define _XSLT_FOR_EACH_ 530 #define _XSLT_OUTPUT_ 531 #define _XSLT_IMPORT_SCHEMA_ 532 #define _XSLT_VERSION_ 533 #define _XSLT_MODE_ 534 #define _XSLT_NAME_ 535 #define _XSLT_DOCTYPE_PUBLIC_ 536 #define _XSLT_DOCTYPE_SYSTEM_ 537 #define _XSLT_ENCODING_ 538 #define _XSLT_MEDIA_TYPE_ 539 #define _XSLT_NORMALIZATION_FORM_ 540 #define _XSLT_STANDALONE_ 541 #define _XSLT_EXCLUDE_RESULT_PREFIXES_ 542 #define _XSLT_NAMESPACE_STR_ 543 #define _XSLT_SCHEMA_LOCATION_ 544 #define _XSLT_TUNNEL_ 545 #define _XSLT_REQUIRED_ 546 #define _XSLT_OVERRIDE_ 547 #define _XSLT_COPY_NAMESPACES_ 548 #define _XSLT_INHERIT_NAMESPACES_ 549 #define _XSLT_BYTE_ORDER_MARK_ 550 #define _XSLT_ESCAPE_URI_ATTRIBUTES_ 551 #define _XSLT_INCLUDE_CONTENT_TYPE_ 552 #define _XSLT_INDENT_ 553 #define _XSLT_OMIT_XML_DECLARATION_ 554 #define _XSLT_UNDECLARE_PREFIXES_ 555 #define _XSLT_MATCH_ 556 #define _XSLT_AS_ 557 #define _XSLT_SELECT_ 558 #define _XSLT_PRIORITY_ 559 #define _XSLT_TEST_ 560 #define _XSLT_SEPARATOR_ 561 #define _XSLT_NAMESPACE_A_ 562 #define _XSLT_REGEX_ 563 #define _XSLT_FLAGS_ 564 #define _XSLT_METHOD_ 565 #define _XSLT_CDATA_SECTION_ELEMENTS_ 566 #define _XSLT_USE_CHARACTER_MAPS_ 567 #define _XSLT_ELEMENT_NAME_ 568 #define _XSLT_XMLNS_ATTR_ 569 #define _XSLT_ATTR_NAME_ 570 #define _XSLT_TEXT_NODE_ 571 #define _XSLT_WS_TEXT_NODE_ 572 #define _HASH_DEFAULT_ 573 #define _HASH_ALL_ 574 #define _HASH_CURRENT_ 575 #define _XML_ 576 #define _HTML_ 577 #define _XHTML_ 578 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; } YYLTYPE; # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif XQilla-2.3.4/src/parser/XQParser.cpp0000644001725400016040000153135413273140472014152 00000000000000/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 1 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { MYEOF = 0, _LANG_XPATH2_ = 258, _LANG_XQUERY_ = 259, _LANG_XSLT2_ = 260, _LANG_FUNCDECL_ = 261, _LANG_DELAYEDMODULE_ = 262, _LANG_FUNCTION_SIGNATURE_ = 263, _DOLLAR_ = 264, _COLON_EQUALS_ = 265, _ASTERISK_ = 266, _BAR_ = 267, _BANG_EQUALS_ = 268, _LESS_THAN_EQUALS_ = 269, _GREATER_THAN_ = 270, _GREATER_THAN_EQUALS_ = 271, _LESS_THAN_LESS_THAN_ = 272, _GREATER_THAN_GREATER_THAN_ = 273, _COLON_COLON_ = 274, _AT_SIGN_ = 275, _LSQUARE_ = 276, _RSQUARE_ = 277, _QUESTION_MARK_ = 278, _LESS_THAN_OP_OR_TAG_ = 279, _START_TAG_CLOSE_ = 280, _END_TAG_CLOSE_ = 281, _PI_START_ = 282, _XML_COMMENT_START_ = 283, _XML_COMMENT_END_ = 284, _SLASH_SLASH_ = 285, _END_TAG_OPEN_ = 286, _PRAGMA_OPEN_ = 287, _COMMA_ = 288, _PLUS_ = 289, _MINUS_ = 290, _SLASH_ = 291, _EQUALS_ = 292, _DOT_ = 293, _DOT_DOT_ = 294, _LPAR_ = 295, _RPAR_ = 296, _EMPTY_TAG_CLOSE_ = 297, _VALUE_INDICATOR_ = 298, _OPEN_QUOT_ = 299, _CLOSE_QUOT_ = 300, _OPEN_APOS_ = 301, _CLOSE_APOS_ = 302, _LBRACE_ = 303, _RBRACE_ = 304, _SEMICOLON_ = 305, _HASH_ = 306, _INTEGER_LITERAL_ = 307, _DECIMAL_LITERAL_ = 308, _DOUBLE_LITERAL_ = 309, _ATTRIBUTE_ = 310, _COMMENT_ = 311, _DOCUMENT_NODE_ = 312, _NAMESPACE_NODE_ = 313, _NODE_ = 314, _PROCESSING_INSTRUCTION_ = 315, _SCHEMA_ATTRIBUTE_ = 316, _SCHEMA_ELEMENT_ = 317, _TEXT_ = 318, _EMPTY_SEQUENCE_ = 319, _BOUNDARY_SPACE_ = 320, _FT_OPTION_ = 321, _BASE_URI_ = 322, _LAX_ = 323, _STRICT_ = 324, _IDIV_ = 325, _CHILD_ = 326, _DESCENDANT_ = 327, _SELF_ = 328, _DESCENDANT_OR_SELF_ = 329, _FOLLOWING_SIBLING_ = 330, _FOLLOWING_ = 331, _PARENT_ = 332, _ANCESTOR_ = 333, _PRECEDING_SIBLING_ = 334, _PRECEDING_ = 335, _ANCESTOR_OR_SELF_ = 336, _DOCUMENT_ = 337, _NOT_ = 338, _USING_ = 339, _NO_ = 340, _SENSITIVE_ = 341, _INSENSITIVE_ = 342, _DIACRITICS_ = 343, _WITHOUT_ = 344, _WITHOUT_C_ = 345, _STEMMING_ = 346, _THESAURUS_ = 347, _STOP_ = 348, _WILDCARDS_ = 349, _ENTIRE_ = 350, _CONTENT_ = 351, _WORD_ = 352, _TYPE_ = 353, _START_ = 354, _END_ = 355, _MOST_ = 356, _SKIP_ = 357, _COPY_ = 358, _VALUE_ = 359, _WHITESPACE_ = 360, _PI_CONTENT_ = 361, _XML_COMMENT_CONTENT_ = 362, _EQ_ = 363, _NE_ = 364, _LT_ = 365, _LE_ = 366, _GT_ = 367, _GE_ = 368, _AT_ = 369, _QUOT_ATTR_CONTENT_ = 370, _APOS_ATTR_CONTENT_ = 371, _WHITESPACE_ELEMENT_CONTENT_ = 372, _ELEMENT_CONTENT_ = 373, _AT_LM_ = 374, _ORDERED_ = 375, _UNORDERED_ = 376, _QNAME_ = 377, _XMLNS_QNAME_ = 378, _CONSTR_QNAME_ = 379, _STRING_LITERAL_ = 380, _VARIABLE_ = 381, _NCNAME_COLON_STAR_ = 382, _STAR_COLON_NCNAME_ = 383, _PI_TARGET_ = 384, _PRAGMA_CONTENT_ = 385, _RETURN_ = 386, _FOR_ = 387, _IN_ = 388, _LET_ = 389, _WHERE_ = 390, _COUNT_ = 391, _BY_ = 392, _ORDER_ = 393, _STABLE_ = 394, _ASCENDING_ = 395, _DESCENDING_ = 396, _EMPTY_ = 397, _GREATEST_ = 398, _LEAST_ = 399, _COLLATION_ = 400, _SOME_ = 401, _EVERY_ = 402, _SATISFIES_ = 403, _TYPESWITCH_ = 404, _CASE_ = 405, _CASE_S_ = 406, _AS_ = 407, _IF_ = 408, _THEN_ = 409, _ELSE_ = 410, _OR_ = 411, _AND_ = 412, _INSTANCE_ = 413, _OF_ = 414, _CASTABLE_ = 415, _TO_ = 416, _DIV_ = 417, _MOD_ = 418, _UNION_ = 419, _INTERSECT_ = 420, _EXCEPT_ = 421, _VALIDATE_ = 422, _CAST_ = 423, _TREAT_ = 424, _IS_ = 425, _PRESERVE_ = 426, _STRIP_ = 427, _NAMESPACE_ = 428, _ITEM_ = 429, _EXTERNAL_ = 430, _ENCODING_ = 431, _NO_PRESERVE_ = 432, _INHERIT_ = 433, _NO_INHERIT_ = 434, _DECLARE_ = 435, _CONSTRUCTION_ = 436, _ORDERING_ = 437, _DEFAULT_ = 438, _COPY_NAMESPACES_ = 439, _OPTION_ = 440, _XQUERY_ = 441, _VERSION_ = 442, _IMPORT_ = 443, _SCHEMA_ = 444, _MODULE_ = 445, _ELEMENT_ = 446, _FUNCTION_ = 447, _FUNCTION_EXT_ = 448, _SCORE_ = 449, _CONTAINS_ = 450, _WEIGHT_ = 451, _WINDOW_ = 452, _DISTANCE_ = 453, _OCCURS_ = 454, _TIMES_ = 455, _SAME_ = 456, _DIFFERENT_ = 457, _LOWERCASE_ = 458, _UPPERCASE_ = 459, _RELATIONSHIP_ = 460, _LEVELS_ = 461, _LANGUAGE_ = 462, _ANY_ = 463, _ALL_ = 464, _PHRASE_ = 465, _EXACTLY_ = 466, _FROM_ = 467, _WORDS_ = 468, _SENTENCES_ = 469, _PARAGRAPHS_ = 470, _SENTENCE_ = 471, _PARAGRAPH_ = 472, _REPLACE_ = 473, _MODIFY_ = 474, _FIRST_ = 475, _INSERT_ = 476, _BEFORE_ = 477, _AFTER_ = 478, _REVALIDATION_ = 479, _WITH_ = 480, _NODES_ = 481, _RENAME_ = 482, _LAST_ = 483, _DELETE_ = 484, _INTO_ = 485, _UPDATING_ = 486, _ID_ = 487, _KEY_ = 488, _TEMPLATE_ = 489, _MATCHES_ = 490, _NAME_ = 491, _CALL_ = 492, _APPLY_ = 493, _TEMPLATES_ = 494, _MODE_ = 495, _FTOR_ = 496, _FTAND_ = 497, _FTNOT_ = 498, _PRIVATE_ = 499, _PUBLIC_ = 500, _DETERMINISTIC_ = 501, _NONDETERMINISTIC_ = 502, _XSLT_END_ELEMENT_ = 503, _XSLT_STYLESHEET_ = 504, _XSLT_TEMPLATE_ = 505, _XSLT_VALUE_OF_ = 506, _XSLT_TEXT_ = 507, _XSLT_APPLY_TEMPLATES_ = 508, _XSLT_CALL_TEMPLATE_ = 509, _XSLT_WITH_PARAM_ = 510, _XSLT_SEQUENCE_ = 511, _XSLT_PARAM_ = 512, _XSLT_FUNCTION_ = 513, _XSLT_CHOOSE_ = 514, _XSLT_WHEN_ = 515, _XSLT_OTHERWISE_ = 516, _XSLT_IF_ = 517, _XSLT_VARIABLE_ = 518, _XSLT_COMMENT_ = 519, _XSLT_PI_ = 520, _XSLT_DOCUMENT_ = 521, _XSLT_ATTRIBUTE_ = 522, _XSLT_NAMESPACE_ = 523, _XSLT_ELEMENT_ = 524, _XSLT_ANALYZE_STRING_ = 525, _XSLT_MATCHING_SUBSTRING_ = 526, _XSLT_NON_MATCHING_SUBSTRING_ = 527, _XSLT_COPY_OF_ = 528, _XSLT_COPY_ = 529, _XSLT_FOR_EACH_ = 530, _XSLT_OUTPUT_ = 531, _XSLT_IMPORT_SCHEMA_ = 532, _XSLT_VERSION_ = 533, _XSLT_MODE_ = 534, _XSLT_NAME_ = 535, _XSLT_DOCTYPE_PUBLIC_ = 536, _XSLT_DOCTYPE_SYSTEM_ = 537, _XSLT_ENCODING_ = 538, _XSLT_MEDIA_TYPE_ = 539, _XSLT_NORMALIZATION_FORM_ = 540, _XSLT_STANDALONE_ = 541, _XSLT_EXCLUDE_RESULT_PREFIXES_ = 542, _XSLT_NAMESPACE_STR_ = 543, _XSLT_SCHEMA_LOCATION_ = 544, _XSLT_TUNNEL_ = 545, _XSLT_REQUIRED_ = 546, _XSLT_OVERRIDE_ = 547, _XSLT_COPY_NAMESPACES_ = 548, _XSLT_INHERIT_NAMESPACES_ = 549, _XSLT_BYTE_ORDER_MARK_ = 550, _XSLT_ESCAPE_URI_ATTRIBUTES_ = 551, _XSLT_INCLUDE_CONTENT_TYPE_ = 552, _XSLT_INDENT_ = 553, _XSLT_OMIT_XML_DECLARATION_ = 554, _XSLT_UNDECLARE_PREFIXES_ = 555, _XSLT_MATCH_ = 556, _XSLT_AS_ = 557, _XSLT_SELECT_ = 558, _XSLT_PRIORITY_ = 559, _XSLT_TEST_ = 560, _XSLT_SEPARATOR_ = 561, _XSLT_NAMESPACE_A_ = 562, _XSLT_REGEX_ = 563, _XSLT_FLAGS_ = 564, _XSLT_METHOD_ = 565, _XSLT_CDATA_SECTION_ELEMENTS_ = 566, _XSLT_USE_CHARACTER_MAPS_ = 567, _XSLT_ELEMENT_NAME_ = 568, _XSLT_XMLNS_ATTR_ = 569, _XSLT_ATTR_NAME_ = 570, _XSLT_TEXT_NODE_ = 571, _XSLT_WS_TEXT_NODE_ = 572, _HASH_DEFAULT_ = 573, _HASH_ALL_ = 574, _HASH_CURRENT_ = 575, _XML_ = 576, _HTML_ = 577, _XHTML_ = 578 }; #endif /* Tokens. */ #define MYEOF 0 #define _LANG_XPATH2_ 258 #define _LANG_XQUERY_ 259 #define _LANG_XSLT2_ 260 #define _LANG_FUNCDECL_ 261 #define _LANG_DELAYEDMODULE_ 262 #define _LANG_FUNCTION_SIGNATURE_ 263 #define _DOLLAR_ 264 #define _COLON_EQUALS_ 265 #define _ASTERISK_ 266 #define _BAR_ 267 #define _BANG_EQUALS_ 268 #define _LESS_THAN_EQUALS_ 269 #define _GREATER_THAN_ 270 #define _GREATER_THAN_EQUALS_ 271 #define _LESS_THAN_LESS_THAN_ 272 #define _GREATER_THAN_GREATER_THAN_ 273 #define _COLON_COLON_ 274 #define _AT_SIGN_ 275 #define _LSQUARE_ 276 #define _RSQUARE_ 277 #define _QUESTION_MARK_ 278 #define _LESS_THAN_OP_OR_TAG_ 279 #define _START_TAG_CLOSE_ 280 #define _END_TAG_CLOSE_ 281 #define _PI_START_ 282 #define _XML_COMMENT_START_ 283 #define _XML_COMMENT_END_ 284 #define _SLASH_SLASH_ 285 #define _END_TAG_OPEN_ 286 #define _PRAGMA_OPEN_ 287 #define _COMMA_ 288 #define _PLUS_ 289 #define _MINUS_ 290 #define _SLASH_ 291 #define _EQUALS_ 292 #define _DOT_ 293 #define _DOT_DOT_ 294 #define _LPAR_ 295 #define _RPAR_ 296 #define _EMPTY_TAG_CLOSE_ 297 #define _VALUE_INDICATOR_ 298 #define _OPEN_QUOT_ 299 #define _CLOSE_QUOT_ 300 #define _OPEN_APOS_ 301 #define _CLOSE_APOS_ 302 #define _LBRACE_ 303 #define _RBRACE_ 304 #define _SEMICOLON_ 305 #define _HASH_ 306 #define _INTEGER_LITERAL_ 307 #define _DECIMAL_LITERAL_ 308 #define _DOUBLE_LITERAL_ 309 #define _ATTRIBUTE_ 310 #define _COMMENT_ 311 #define _DOCUMENT_NODE_ 312 #define _NAMESPACE_NODE_ 313 #define _NODE_ 314 #define _PROCESSING_INSTRUCTION_ 315 #define _SCHEMA_ATTRIBUTE_ 316 #define _SCHEMA_ELEMENT_ 317 #define _TEXT_ 318 #define _EMPTY_SEQUENCE_ 319 #define _BOUNDARY_SPACE_ 320 #define _FT_OPTION_ 321 #define _BASE_URI_ 322 #define _LAX_ 323 #define _STRICT_ 324 #define _IDIV_ 325 #define _CHILD_ 326 #define _DESCENDANT_ 327 #define _SELF_ 328 #define _DESCENDANT_OR_SELF_ 329 #define _FOLLOWING_SIBLING_ 330 #define _FOLLOWING_ 331 #define _PARENT_ 332 #define _ANCESTOR_ 333 #define _PRECEDING_SIBLING_ 334 #define _PRECEDING_ 335 #define _ANCESTOR_OR_SELF_ 336 #define _DOCUMENT_ 337 #define _NOT_ 338 #define _USING_ 339 #define _NO_ 340 #define _SENSITIVE_ 341 #define _INSENSITIVE_ 342 #define _DIACRITICS_ 343 #define _WITHOUT_ 344 #define _WITHOUT_C_ 345 #define _STEMMING_ 346 #define _THESAURUS_ 347 #define _STOP_ 348 #define _WILDCARDS_ 349 #define _ENTIRE_ 350 #define _CONTENT_ 351 #define _WORD_ 352 #define _TYPE_ 353 #define _START_ 354 #define _END_ 355 #define _MOST_ 356 #define _SKIP_ 357 #define _COPY_ 358 #define _VALUE_ 359 #define _WHITESPACE_ 360 #define _PI_CONTENT_ 361 #define _XML_COMMENT_CONTENT_ 362 #define _EQ_ 363 #define _NE_ 364 #define _LT_ 365 #define _LE_ 366 #define _GT_ 367 #define _GE_ 368 #define _AT_ 369 #define _QUOT_ATTR_CONTENT_ 370 #define _APOS_ATTR_CONTENT_ 371 #define _WHITESPACE_ELEMENT_CONTENT_ 372 #define _ELEMENT_CONTENT_ 373 #define _AT_LM_ 374 #define _ORDERED_ 375 #define _UNORDERED_ 376 #define _QNAME_ 377 #define _XMLNS_QNAME_ 378 #define _CONSTR_QNAME_ 379 #define _STRING_LITERAL_ 380 #define _VARIABLE_ 381 #define _NCNAME_COLON_STAR_ 382 #define _STAR_COLON_NCNAME_ 383 #define _PI_TARGET_ 384 #define _PRAGMA_CONTENT_ 385 #define _RETURN_ 386 #define _FOR_ 387 #define _IN_ 388 #define _LET_ 389 #define _WHERE_ 390 #define _COUNT_ 391 #define _BY_ 392 #define _ORDER_ 393 #define _STABLE_ 394 #define _ASCENDING_ 395 #define _DESCENDING_ 396 #define _EMPTY_ 397 #define _GREATEST_ 398 #define _LEAST_ 399 #define _COLLATION_ 400 #define _SOME_ 401 #define _EVERY_ 402 #define _SATISFIES_ 403 #define _TYPESWITCH_ 404 #define _CASE_ 405 #define _CASE_S_ 406 #define _AS_ 407 #define _IF_ 408 #define _THEN_ 409 #define _ELSE_ 410 #define _OR_ 411 #define _AND_ 412 #define _INSTANCE_ 413 #define _OF_ 414 #define _CASTABLE_ 415 #define _TO_ 416 #define _DIV_ 417 #define _MOD_ 418 #define _UNION_ 419 #define _INTERSECT_ 420 #define _EXCEPT_ 421 #define _VALIDATE_ 422 #define _CAST_ 423 #define _TREAT_ 424 #define _IS_ 425 #define _PRESERVE_ 426 #define _STRIP_ 427 #define _NAMESPACE_ 428 #define _ITEM_ 429 #define _EXTERNAL_ 430 #define _ENCODING_ 431 #define _NO_PRESERVE_ 432 #define _INHERIT_ 433 #define _NO_INHERIT_ 434 #define _DECLARE_ 435 #define _CONSTRUCTION_ 436 #define _ORDERING_ 437 #define _DEFAULT_ 438 #define _COPY_NAMESPACES_ 439 #define _OPTION_ 440 #define _XQUERY_ 441 #define _VERSION_ 442 #define _IMPORT_ 443 #define _SCHEMA_ 444 #define _MODULE_ 445 #define _ELEMENT_ 446 #define _FUNCTION_ 447 #define _FUNCTION_EXT_ 448 #define _SCORE_ 449 #define _CONTAINS_ 450 #define _WEIGHT_ 451 #define _WINDOW_ 452 #define _DISTANCE_ 453 #define _OCCURS_ 454 #define _TIMES_ 455 #define _SAME_ 456 #define _DIFFERENT_ 457 #define _LOWERCASE_ 458 #define _UPPERCASE_ 459 #define _RELATIONSHIP_ 460 #define _LEVELS_ 461 #define _LANGUAGE_ 462 #define _ANY_ 463 #define _ALL_ 464 #define _PHRASE_ 465 #define _EXACTLY_ 466 #define _FROM_ 467 #define _WORDS_ 468 #define _SENTENCES_ 469 #define _PARAGRAPHS_ 470 #define _SENTENCE_ 471 #define _PARAGRAPH_ 472 #define _REPLACE_ 473 #define _MODIFY_ 474 #define _FIRST_ 475 #define _INSERT_ 476 #define _BEFORE_ 477 #define _AFTER_ 478 #define _REVALIDATION_ 479 #define _WITH_ 480 #define _NODES_ 481 #define _RENAME_ 482 #define _LAST_ 483 #define _DELETE_ 484 #define _INTO_ 485 #define _UPDATING_ 486 #define _ID_ 487 #define _KEY_ 488 #define _TEMPLATE_ 489 #define _MATCHES_ 490 #define _NAME_ 491 #define _CALL_ 492 #define _APPLY_ 493 #define _TEMPLATES_ 494 #define _MODE_ 495 #define _FTOR_ 496 #define _FTAND_ 497 #define _FTNOT_ 498 #define _PRIVATE_ 499 #define _PUBLIC_ 500 #define _DETERMINISTIC_ 501 #define _NONDETERMINISTIC_ 502 #define _XSLT_END_ELEMENT_ 503 #define _XSLT_STYLESHEET_ 504 #define _XSLT_TEMPLATE_ 505 #define _XSLT_VALUE_OF_ 506 #define _XSLT_TEXT_ 507 #define _XSLT_APPLY_TEMPLATES_ 508 #define _XSLT_CALL_TEMPLATE_ 509 #define _XSLT_WITH_PARAM_ 510 #define _XSLT_SEQUENCE_ 511 #define _XSLT_PARAM_ 512 #define _XSLT_FUNCTION_ 513 #define _XSLT_CHOOSE_ 514 #define _XSLT_WHEN_ 515 #define _XSLT_OTHERWISE_ 516 #define _XSLT_IF_ 517 #define _XSLT_VARIABLE_ 518 #define _XSLT_COMMENT_ 519 #define _XSLT_PI_ 520 #define _XSLT_DOCUMENT_ 521 #define _XSLT_ATTRIBUTE_ 522 #define _XSLT_NAMESPACE_ 523 #define _XSLT_ELEMENT_ 524 #define _XSLT_ANALYZE_STRING_ 525 #define _XSLT_MATCHING_SUBSTRING_ 526 #define _XSLT_NON_MATCHING_SUBSTRING_ 527 #define _XSLT_COPY_OF_ 528 #define _XSLT_COPY_ 529 #define _XSLT_FOR_EACH_ 530 #define _XSLT_OUTPUT_ 531 #define _XSLT_IMPORT_SCHEMA_ 532 #define _XSLT_VERSION_ 533 #define _XSLT_MODE_ 534 #define _XSLT_NAME_ 535 #define _XSLT_DOCTYPE_PUBLIC_ 536 #define _XSLT_DOCTYPE_SYSTEM_ 537 #define _XSLT_ENCODING_ 538 #define _XSLT_MEDIA_TYPE_ 539 #define _XSLT_NORMALIZATION_FORM_ 540 #define _XSLT_STANDALONE_ 541 #define _XSLT_EXCLUDE_RESULT_PREFIXES_ 542 #define _XSLT_NAMESPACE_STR_ 543 #define _XSLT_SCHEMA_LOCATION_ 544 #define _XSLT_TUNNEL_ 545 #define _XSLT_REQUIRED_ 546 #define _XSLT_OVERRIDE_ 547 #define _XSLT_COPY_NAMESPACES_ 548 #define _XSLT_INHERIT_NAMESPACES_ 549 #define _XSLT_BYTE_ORDER_MARK_ 550 #define _XSLT_ESCAPE_URI_ATTRIBUTES_ 551 #define _XSLT_INCLUDE_CONTENT_TYPE_ 552 #define _XSLT_INDENT_ 553 #define _XSLT_OMIT_XML_DECLARATION_ 554 #define _XSLT_UNDECLARE_PREFIXES_ 555 #define _XSLT_MATCH_ 556 #define _XSLT_AS_ 557 #define _XSLT_SELECT_ 558 #define _XSLT_PRIORITY_ 559 #define _XSLT_TEST_ 560 #define _XSLT_SEPARATOR_ 561 #define _XSLT_NAMESPACE_A_ 562 #define _XSLT_REGEX_ 563 #define _XSLT_FLAGS_ 564 #define _XSLT_METHOD_ 565 #define _XSLT_CDATA_SECTION_ELEMENTS_ 566 #define _XSLT_USE_CHARACTER_MAPS_ 567 #define _XSLT_ELEMENT_NAME_ 568 #define _XSLT_XMLNS_ATTR_ 569 #define _XSLT_ATTR_NAME_ 570 #define _XSLT_TEXT_NODE_ 571 #define _XSLT_WS_TEXT_NODE_ 572 #define _HASH_DEFAULT_ 573 #define _HASH_ALL_ 574 #define _HASH_CURRENT_ 575 #define _XML_ 576 #define _HTML_ 577 #define _XHTML_ 578 /* Copy the first part of user declarations. */ #line 20 "../src/parser/XQParser.y" #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) // turn off the warnings "switch statement contains 'default' but no 'case' labels" // "'yyerrlab1' : unreferenced label" #pragma warning(disable : 4065 4102) #endif #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../config/xqilla_config.h" #define YYPARSE_PARAM qp #define YYDEBUG 1 #define YYERROR_VERBOSE // this removes a memory leak occurring when an error is found in the query (we throw an exception from inside // yyerror, preventing the bison-generated code from cleaning up the memory); by defining this macro we use // stack-based memory instead of the heap #define YYSTACK_USE_ALLOCA 1 #if HAVE_ALLOCA_H #include #elif defined __GNUC__ #undef alloca #define alloca __builtin_alloca #elif defined _AIX #define alloca __alloca #elif defined _MSC_VER #include #else #include #ifdef __cplusplus extern "C" #endif void *alloca (size_t); #endif #define QP ((XQParserArgs*)qp) #define CONTEXT (QP->_context) #define LANGUAGE (QP->_lexer->getLanguage()) #define MEMMGR (QP->_lexer->getMemoryManager()) #define REJECT_NOT_XQUERY(where,pos) if(!QP->_lexer->isXQuery()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define REJECT_NOT_VERSION3(where,pos) if(!QP->_lexer->isVersion3()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define WRAP(pos,object) (wrapForDebug((QP), (object), (pos).first_line, (pos).first_column)) #define LOCATION(pos,name) LocationInfo name(QP->_lexer->getFile(), (pos).first_line, (pos).first_column) #define GET_NAVIGATION(pos, object) (((object)->getType() == ASTNode::NAVIGATION) ? (XQNav*)(object) : WRAP(pos, new (MEMMGR) XQNav((object), MEMMGR))) #define PRESERVE_NS(pos, object) (QP->_lexer->getNSResolver() == 0 ? (object) : WRAP((pos), new (MEMMGR) XQNamespaceBinding(QP->_lexer->getNSResolver(), (object), MEMMGR))) #define BIT_ORDERING_SPECIFIED 0 #define BIT_BOUNDARY_SPECIFIED 1 #define BIT_COLLATION_SPECIFIED 2 #define BIT_BASEURI_SPECIFIED 3 #define BIT_CONSTRUCTION_SPECIFIED 4 #define BIT_EMPTYORDERING_SPECIFIED 5 #define BIT_COPYNAMESPACE_SPECIFIED 6 #define BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED 7 #define BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED 8 #define BIT_DECLARE_SECOND_STEP 9 #define BIT_REVALIDATION_SPECIFIED 10 #define CHECK_SECOND_STEP(pos, name) { \ if(QP->_flags.get(BIT_DECLARE_SECOND_STEP)) \ yyerror((pos), "Prolog contains " name " declaration after a variable, function or option declaration"); \ } #define CHECK_SPECIFIED(pos, bit, name, error) { \ if(QP->_flags.get(bit)) \ yyerror((pos), "Prolog contains more than one " name " declaration [err:" error "]"); \ QP->_flags.set(bit); \ } #define SET_NAMESPACE(pos, prefix, uri) { \ if(QP->_namespaceDecls.containsKey((prefix))) \ yyerror((pos), "Namespace prefix has already been bound to a namespace [err:XQST0033]"); \ QP->_namespaceDecls.put((prefix), NULL); \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #define SET_BUILT_IN_NAMESPACE(prefix, uri) { \ if(!QP->_namespaceDecls.containsKey((prefix))) \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #undef yylex #define yylex QP->_lexer->yylex #undef yyerror #define yyerror QP->_lexer->error XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh sz1_0[] = { chDigit_1, chPeriod, chDigit_0, chNull }; static const XMLCh sz3_0[] = { chDigit_3, chPeriod, chDigit_0, chNull }; static const XMLCh option_projection[] = { 'p', 'r', 'o', 'j', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh option_psvi[] = { 'p', 's', 'v', 'i', 0 }; static const XMLCh option_lint[] = { 'l', 'i', 'n', 't', 0 }; static const XMLCh var_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh XMLChXS[] = { chLatin_x, chLatin_s, chNull }; static const XMLCh XMLChXSI[] = { chLatin_x, chLatin_s, chLatin_i, chNull }; static const XMLCh XMLChFN[] = { chLatin_f, chLatin_n, chNull }; static const XMLCh XMLChLOCAL[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chNull }; static const XMLCh XMLChERR[] = { chLatin_e, chLatin_r, chLatin_r, chNull }; static inline VectorOfASTNodes packageArgs(ASTNode *arg1Impl, ASTNode *arg2Impl, XPath2MemoryManager* memMgr) { VectorOfASTNodes args=VectorOfASTNodes(2,(ASTNode*)NULL,XQillaAllocator(memMgr)); args[0]=arg1Impl; args[1]=arg2Impl; return args; } static inline TupleNode *getLastAncestor(TupleNode *node) { while(node->getParent()) node = const_cast(node->getParent()); return node; } static inline TupleNode *setLastAncestor(TupleNode *node, TupleNode *ancestor) { getLastAncestor(node)->setParent(ancestor); return node; } template TYPE *wrapForDebug(XQParserArgs *qp, TYPE* pObjToWrap, unsigned int line, unsigned int column) { if(pObjToWrap->getLine() == 0) pObjToWrap->setLocationInfo(QP->_lexer->getFile(), line, column); return pObjToWrap; } #define RESOLVE_QNAME(pos, qname) const XMLCh *uri, *name; resolveQName((pos), QP, (qname), uri, name) static void resolveQName(const yyltype &pos, XQParserArgs *qp, const XMLCh *qname, const XMLCh *&uri, const XMLCh *&name) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname, MEMMGR); name = XPath2NSUtils::getLocalName(qname); if(prefix == 0 || *prefix == 0) { uri = 0; } else { if(QP->_lexer->getNSResolver() == 0) { if(prefix == 0 || *prefix == 0) uri = CONTEXT->getDefaultElementAndTypeNS(); else uri = CONTEXT->getNSResolver()->lookupNamespaceURI(prefix); } else { uri = QP->_lexer->getNSResolver()->lookupNamespaceURI(prefix); } if(uri == 0 || *uri == 0) { ostringstream oss; oss << "No namespace binding for prefix '" << UTF8(prefix) << "' [err:XTSE0280]"; yyerror(pos, oss.str().c_str()); } } } #define XSLT_VARIABLE_VALUE(pos, select, seqConstruct, seqType) variableValueXSLT((pos), QP, (select), (seqConstruct), (seqType)) static ASTNode *variableValueXSLT(const yyltype &pos, XQParserArgs *qp, ASTNode *select, XQSequence *seqConstruct, SequenceType *seqType) { if(!seqConstruct->getChildren().empty()) { if(select != 0) return 0; // signifies an error if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQDocumentConstructor(seqConstruct, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(seqConstruct, seqType, MEMMGR)); } if(select != 0) { if(seqType == 0) return select; return WRAP(pos, new (MEMMGR) XQFunctionConversion(select, seqType, MEMMGR)); } if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, XMLUni::fgZeroLenString, AnyAtomicType::STRING, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(WRAP(pos, new (MEMMGR) XQSequence(MEMMGR)), seqType, MEMMGR)); } namespace XQParser { /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; } YYLTYPE; # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 216 of yacc.c. */ #line 1091 "../src/parser/XQParser.cpp" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(e) ((void) (e)) #else # define YYUSE(e) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(n) (n) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int i) #else static int YYID (i) int i; #endif { return i; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss; YYSTYPE yyvs; YYLTYPE yyls; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (YYID (0)) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 21 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 7369 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 324 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 347 /* YYNRULES -- Number of rules. */ #define YYNRULES 991 /* YYNRULES -- Number of states. */ #define YYNSTATES 1620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 578 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 7, 11, 15, 18, 21, 24, 25, 26, 35, 36, 38, 42, 45, 52, 53, 56, 65, 67, 72, 74, 75, 78, 81, 82, 85, 88, 91, 94, 97, 100, 105, 107, 111, 114, 118, 122, 126, 127, 130, 133, 136, 138, 140, 142, 147, 149, 152, 156, 159, 160, 163, 167, 169, 172, 176, 180, 183, 186, 190, 192, 195, 199, 203, 206, 209, 213, 215, 218, 222, 226, 229, 231, 234, 238, 241, 245, 248, 251, 254, 257, 260, 263, 266, 269, 272, 275, 278, 282, 285, 287, 289, 291, 293, 295, 297, 300, 303, 305, 308, 311, 315, 319, 324, 325, 329, 332, 333, 336, 339, 340, 343, 346, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, 381, 383, 385, 389, 391, 395, 399, 403, 405, 407, 411, 413, 417, 421, 423, 425, 427, 428, 431, 435, 437, 440, 441, 444, 448, 450, 453, 457, 461, 464, 467, 471, 475, 479, 484, 486, 489, 493, 497, 498, 502, 507, 509, 513, 517, 521, 522, 526, 527, 531, 536, 538, 541, 545, 549, 553, 555, 559, 563, 565, 569, 573, 577, 579, 583, 585, 589, 593, 597, 601, 605, 607, 611, 615, 619, 621, 625, 629, 632, 634, 638, 641, 645, 647, 650, 653, 657, 659, 663, 667, 669, 671, 673, 675, 677, 679, 684, 691, 693, 695, 697, 699, 701, 704, 708, 712, 716, 720, 723, 725, 729, 733, 736, 737, 742, 745, 748, 750, 752, 756, 761, 765, 768, 771, 774, 777, 784, 785, 789, 793, 797, 801, 805, 809, 813, 817, 821, 823, 825, 827, 829, 831, 833, 835, 837, 839, 841, 843, 849, 853, 857, 863, 869, 874, 878, 882, 886, 892, 898, 904, 906, 908, 910, 912, 917, 921, 927, 932, 933, 936, 940, 944, 948, 956, 961, 968, 971, 973, 977, 981, 989, 991, 993, 996, 1000, 1002, 1004, 1005, 1008, 1011, 1014, 1016, 1018, 1020, 1022, 1023, 1026, 1030, 1032, 1036, 1040, 1042, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1076, 1078, 1081, 1084, 1086, 1088, 1090, 1092, 1094, 1097, 1101, 1103, 1111, 1112, 1116, 1117, 1121, 1124, 1128, 1130, 1136, 1142, 1145, 1149, 1153, 1158, 1162, 1164, 1168, 1174, 1176, 1177, 1179, 1181, 1182, 1185, 1188, 1193, 1198, 1202, 1204, 1210, 1217, 1220, 1222, 1228, 1232, 1236, 1240, 1244, 1245, 1249, 1258, 1262, 1264, 1268, 1270, 1274, 1278, 1279, 1284, 1288, 1292, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1324, 1328, 1332, 1334, 1339, 1345, 1347, 1351, 1353, 1357, 1361, 1363, 1367, 1371, 1375, 1379, 1381, 1385, 1389, 1391, 1395, 1399, 1401, 1406, 1408, 1413, 1415, 1420, 1422, 1427, 1429, 1432, 1435, 1437, 1439, 1441, 1443, 1448, 1454, 1460, 1464, 1469, 1471, 1474, 1479, 1481, 1484, 1486, 1489, 1492, 1494, 1496, 1500, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1521, 1523, 1528, 1531, 1533, 1536, 1539, 1542, 1545, 1548, 1551, 1554, 1557, 1560, 1562, 1565, 1567, 1570, 1573, 1576, 1579, 1582, 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1638, 1640, 1644, 1647, 1649, 1654, 1659, 1663, 1668, 1672, 1674, 1676, 1678, 1680, 1682, 1684, 1686, 1688, 1694, 1705, 1707, 1709, 1710, 1718, 1726, 1727, 1729, 1733, 1737, 1741, 1745, 1746, 1749, 1752, 1753, 1756, 1759, 1760, 1763, 1766, 1767, 1770, 1773, 1774, 1777, 1780, 1783, 1786, 1790, 1791, 1793, 1797, 1799, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1821, 1825, 1827, 1831, 1834, 1838, 1842, 1844, 1848, 1852, 1857, 1862, 1866, 1868, 1872, 1875, 1879, 1882, 1883, 1885, 1886, 1889, 1892, 1896, 1897, 1899, 1901, 1903, 1905, 1909, 1911, 1913, 1915, 1917, 1919, 1921, 1923, 1925, 1927, 1929, 1931, 1933, 1935, 1937, 1941, 1945, 1950, 1955, 1959, 1963, 1967, 1971, 1976, 1981, 1985, 1990, 1997, 1999, 2001, 2006, 2008, 2012, 2017, 2024, 2032, 2034, 2036, 2041, 2043, 2045, 2047, 2049, 2051, 2055, 2056, 2059, 2060, 2063, 2067, 2069, 2073, 2075, 2080, 2082, 2085, 2087, 2089, 2092, 2095, 2099, 2101, 2104, 2109, 2113, 2118, 2119, 2121, 2124, 2126, 2129, 2131, 2132, 2136, 2139, 2143, 2147, 2152, 2154, 2158, 2162, 2165, 2168, 2171, 2174, 2177, 2179, 2181, 2183, 2185, 2187, 2190, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, 2213, 2216, 2218, 2220, 2223, 2226, 2228, 2231, 2234, 2237, 2243, 2249, 2252, 2253, 2257, 2260, 2265, 2270, 2277, 2282, 2286, 2291, 2292, 2295, 2298, 2302, 2304, 2308, 2311, 2314, 2317, 2319, 2322, 2326, 2330, 2334, 2338, 2342, 2349, 2356, 2361, 2366, 2371, 2374, 2377, 2380, 2383, 2386, 2394, 2400, 2406, 2413, 2417, 2419, 2424, 2426, 2428, 2430, 2432, 2434, 2436, 2442, 2450, 2459, 2470, 2477, 2486, 2487, 2490, 2493, 2497, 2498, 2501, 2503, 2507, 2509, 2511, 2513, 2517, 2525, 2529, 2537, 2543, 2553, 2555, 2557, 2559, 2561, 2565, 2571, 2573, 2575, 2579, 2584, 2588, 2593, 2595, 2597, 2602, 2608, 2615, 2617, 2621, 2625, 2627, 2629, 2631, 2633, 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, 2715, 2717, 2719, 2721, 2723, 2725, 2727, 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761, 2763, 2765, 2767, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2785, 2787, 2789, 2791, 2793, 2795, 2797, 2799, 2801, 2803, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2825, 2827, 2829, 2831, 2833, 2835, 2837, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2855, 2857, 2859, 2861, 2863, 2865, 2867, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2885, 2887, 2889, 2891, 2893, 2895, 2897, 2899, 2901, 2903, 2905, 2907, 2909, 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933, 2935, 2937, 2939, 2941, 2943, 2945, 2947, 2949, 2951, 2953, 2955, 2957, 2959, 2961, 2963, 2965, 2967, 2969, 2971 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 325, 0, -1, 3, 326, 460, -1, 4, 327, 419, -1, 6, 327, 328, -1, 5, 335, -1, 7, 331, -1, 8, 330, -1, -1, -1, 180, 453, 450, 670, 451, 456, 459, 329, -1, -1, 429, -1, 453, 451, 456, -1, 332, 333, -1, 190, 173, 647, 37, 598, 429, -1, -1, 333, 334, -1, 180, 453, 450, 670, 451, 456, 459, 429, -1, 336, -1, 249, 337, 338, 248, -1, 358, -1, -1, 337, 278, -1, 337, 287, -1, -1, 338, 339, -1, 338, 343, -1, 338, 348, -1, 338, 350, -1, 338, 352, -1, 338, 356, -1, 340, 345, 361, 248, -1, 250, -1, 340, 301, 409, -1, 340, 280, -1, 340, 304, 342, -1, 340, 279, 341, -1, 340, 302, 576, -1, -1, 341, 122, -1, 341, 318, -1, 341, 319, -1, 52, -1, 53, -1, 54, -1, 344, 345, 361, 248, -1, 258, -1, 344, 280, -1, 344, 302, 576, -1, 344, 292, -1, -1, 345, 346, -1, 347, 361, 248, -1, 257, -1, 347, 280, -1, 347, 303, 461, -1, 347, 302, 576, -1, 347, 291, -1, 347, 290, -1, 349, 361, 248, -1, 257, -1, 349, 280, -1, 349, 303, 461, -1, 349, 302, 576, -1, 349, 291, -1, 349, 290, -1, 351, 361, 248, -1, 263, -1, 351, 280, -1, 351, 303, 461, -1, 351, 302, 576, -1, 353, 248, -1, 276, -1, 353, 280, -1, 353, 310, 354, -1, 353, 295, -1, 353, 311, 355, -1, 353, 281, -1, 353, 282, -1, 353, 283, -1, 353, 296, -1, 353, 297, -1, 353, 298, -1, 353, 284, -1, 353, 285, -1, 353, 299, -1, 353, 286, -1, 353, 300, -1, 353, 312, 355, -1, 353, 278, -1, 321, -1, 322, -1, 323, -1, 63, -1, 122, -1, 122, -1, 355, 122, -1, 357, 248, -1, 277, -1, 277, 288, -1, 277, 289, -1, 277, 288, 289, -1, 277, 289, 288, -1, 313, 359, 361, 248, -1, -1, 359, 315, 360, -1, 359, 314, -1, -1, 360, 459, -1, 360, 115, -1, -1, 361, 366, -1, 361, 358, -1, 361, 362, -1, 363, -1, 365, -1, 367, -1, 371, -1, 376, -1, 380, -1, 378, -1, 389, -1, 391, -1, 393, -1, 395, -1, 397, -1, 399, -1, 401, -1, 385, -1, 403, -1, 405, -1, 407, -1, 364, 361, 248, -1, 251, -1, 364, 303, 461, -1, 364, 306, 360, -1, 252, 366, 248, -1, 316, -1, 317, -1, 368, 370, 248, -1, 253, -1, 368, 303, 461, -1, 368, 279, 369, -1, 122, -1, 318, -1, 320, -1, -1, 370, 374, -1, 372, 373, 248, -1, 254, -1, 372, 280, -1, -1, 373, 374, -1, 375, 361, 248, -1, 255, -1, 375, 280, -1, 375, 303, 461, -1, 375, 302, 576, -1, 375, 290, -1, 377, 248, -1, 256, 303, 461, -1, 379, 361, 248, -1, 262, 305, 461, -1, 259, 381, 384, 248, -1, 382, -1, 381, 382, -1, 383, 361, 248, -1, 260, 305, 461, -1, -1, 261, 361, 248, -1, 386, 387, 388, 248, -1, 270, -1, 386, 303, 461, -1, 386, 308, 360, -1, 386, 309, 360, -1, -1, 271, 361, 248, -1, -1, 272, 361, 248, -1, 390, 361, 248, 361, -1, 263, -1, 390, 280, -1, 390, 303, 461, -1, 390, 302, 576, -1, 392, 361, 248, -1, 264, -1, 392, 303, 461, -1, 394, 361, 248, -1, 265, -1, 394, 280, 360, -1, 394, 303, 461, -1, 396, 361, 248, -1, 266, -1, 398, 361, 248, -1, 267, -1, 398, 280, 360, -1, 398, 307, 360, -1, 398, 303, 461, -1, 398, 306, 360, -1, 400, 361, 248, -1, 268, -1, 400, 280, 360, -1, 400, 303, 461, -1, 402, 361, 248, -1, 269, -1, 402, 280, 360, -1, 402, 307, 360, -1, 404, 248, -1, 273, -1, 404, 303, 461, -1, 404, 293, -1, 406, 361, 248, -1, 274, -1, 406, 293, -1, 406, 294, -1, 408, 361, 248, -1, 275, -1, 408, 303, 461, -1, 409, 12, 410, -1, 410, -1, 415, -1, 36, -1, 412, -1, 36, -1, 30, -1, 232, 40, 413, 41, -1, 233, 40, 646, 33, 414, 41, -1, 646, -1, 534, -1, 532, -1, 534, -1, 416, -1, 411, 416, -1, 412, 36, 416, -1, 412, 30, 416, -1, 415, 36, 416, -1, 415, 30, 416, -1, 417, 418, -1, 527, -1, 71, 19, 527, -1, 55, 19, 527, -1, 20, 527, -1, -1, 418, 21, 461, 22, -1, 420, 423, -1, 420, 424, -1, 423, -1, 424, -1, 186, 421, 429, -1, 186, 421, 422, 429, -1, 186, 422, 429, -1, 187, 125, -1, 176, 125, -1, 426, 460, -1, 425, 426, -1, 190, 173, 647, 37, 598, 429, -1, -1, 426, 427, 429, -1, 426, 428, 429, -1, 426, 430, 429, -1, 426, 432, 429, -1, 426, 446, 429, -1, 426, 449, 429, -1, 426, 649, 429, -1, 426, 433, 429, -1, 426, 434, 429, -1, 431, -1, 440, -1, 441, -1, 448, -1, 435, -1, 436, -1, 633, -1, 437, -1, 442, -1, 445, -1, 50, -1, 180, 173, 647, 37, 598, -1, 180, 65, 171, -1, 180, 65, 172, -1, 180, 183, 191, 173, 598, -1, 180, 183, 450, 173, 598, -1, 180, 185, 669, 125, -1, 180, 66, 616, -1, 180, 182, 120, -1, 180, 182, 121, -1, 180, 183, 138, 142, 143, -1, 180, 183, 138, 142, 144, -1, 180, 184, 438, 33, 439, -1, 171, -1, 177, -1, 178, -1, 179, -1, 180, 183, 145, 598, -1, 180, 67, 598, -1, 188, 189, 444, 598, 443, -1, 188, 189, 598, 443, -1, -1, 114, 598, -1, 443, 33, 598, -1, 173, 647, 37, -1, 183, 191, 173, -1, 188, 190, 173, 647, 37, 598, 443, -1, 188, 190, 598, 443, -1, 180, 126, 9, 535, 575, 447, -1, 10, 462, -1, 175, -1, 180, 181, 171, -1, 180, 181, 172, -1, 180, 453, 450, 670, 451, 456, 452, -1, 192, -1, 193, -1, 40, 41, -1, 40, 457, 41, -1, 459, -1, 175, -1, -1, 453, 454, -1, 453, 455, -1, 453, 231, -1, 244, -1, 245, -1, 246, -1, 247, -1, -1, 152, 576, -1, 457, 33, 458, -1, 458, -1, 9, 535, 575, -1, 48, 461, 49, -1, 461, -1, 461, 33, 462, -1, 462, -1, 463, -1, 483, -1, 486, -1, 492, -1, 634, -1, 636, -1, 639, -1, 638, -1, 640, -1, 493, -1, 655, -1, 656, -1, 464, 131, 462, -1, 465, -1, 464, 477, -1, 464, 466, -1, 467, -1, 472, -1, 465, -1, 475, -1, 476, -1, 132, 468, -1, 468, 33, 469, -1, 469, -1, 9, 535, 575, 470, 471, 133, 462, -1, -1, 114, 9, 535, -1, -1, 194, 9, 535, -1, 134, 473, -1, 473, 33, 474, -1, 474, -1, 9, 535, 575, 10, 462, -1, 194, 9, 535, 10, 462, -1, 135, 462, -1, 136, 9, 535, -1, 138, 137, 478, -1, 139, 138, 137, 478, -1, 478, 33, 479, -1, 479, -1, 480, 481, 482, -1, 480, 481, 482, 145, 598, -1, 462, -1, -1, 140, -1, 141, -1, -1, 142, 143, -1, 142, 144, -1, 146, 484, 148, 462, -1, 147, 484, 148, 462, -1, 484, 33, 485, -1, 485, -1, 9, 535, 575, 133, 462, -1, 149, 40, 461, 41, 487, 488, -1, 487, 489, -1, 489, -1, 183, 9, 535, 131, 462, -1, 183, 131, 462, -1, 490, 131, 462, -1, 150, 491, 576, -1, 490, 12, 576, -1, -1, 9, 535, 152, -1, 153, 40, 461, 41, 154, 462, 155, 462, -1, 493, 156, 494, -1, 494, -1, 494, 157, 495, -1, 495, -1, 497, 37, 497, -1, 497, 13, 497, -1, -1, 497, 24, 496, 497, -1, 497, 14, 497, -1, 497, 15, 497, -1, 497, 16, 497, -1, 497, 108, 497, -1, 497, 109, 497, -1, 497, 110, 497, -1, 497, 111, 497, -1, 497, 112, 497, -1, 497, 113, 497, -1, 497, 170, 497, -1, 497, 17, 497, -1, 497, 18, 497, -1, 497, -1, 498, 195, 63, 599, -1, 498, 195, 63, 599, 632, -1, 498, -1, 499, 161, 499, -1, 499, -1, 499, 34, 500, -1, 499, 35, 500, -1, 500, -1, 500, 11, 501, -1, 500, 162, 501, -1, 500, 70, 501, -1, 500, 163, 501, -1, 501, -1, 501, 12, 502, -1, 501, 164, 502, -1, 502, -1, 502, 165, 503, -1, 502, 166, 503, -1, 503, -1, 504, 158, 159, 576, -1, 504, -1, 505, 169, 152, 576, -1, 505, -1, 506, 160, 152, 573, -1, 506, -1, 507, 168, 152, 573, -1, 507, -1, 35, 507, -1, 34, 507, -1, 508, -1, 509, -1, 514, -1, 510, -1, 167, 48, 461, 49, -1, 167, 68, 48, 461, 49, -1, 167, 69, 48, 461, 49, -1, 511, 48, 49, -1, 511, 48, 461, 49, -1, 512, -1, 511, 512, -1, 32, 548, 669, 513, -1, 130, -1, 105, 130, -1, 515, -1, 515, 516, -1, 30, 516, -1, 516, -1, 36, -1, 516, 36, 517, -1, 516, 30, 517, -1, 517, -1, 518, -1, 530, -1, 519, -1, 520, -1, 521, -1, 519, 21, 461, 22, -1, 524, -1, 520, 21, 461, 22, -1, 522, 527, -1, 523, -1, 71, 19, -1, 72, 19, -1, 55, 19, -1, 73, 19, -1, 74, 19, -1, 75, 19, -1, 76, 19, -1, 173, 19, -1, 20, 527, -1, 527, -1, 525, 527, -1, 526, -1, 77, 19, -1, 78, 19, -1, 79, 19, -1, 80, 19, -1, 81, 19, -1, 39, -1, 580, -1, 528, -1, 648, -1, 529, -1, 11, -1, 127, -1, 128, -1, 531, -1, 530, 21, 461, 22, -1, 663, -1, 532, -1, 534, -1, 536, -1, 537, -1, 540, -1, 543, -1, 538, -1, 539, -1, 660, -1, 533, -1, 646, -1, 643, -1, 644, -1, 645, -1, 9, 535, -1, 669, -1, 40, 461, 41, -1, 40, 41, -1, 38, -1, 120, 48, 461, 49, -1, 121, 48, 461, 49, -1, 670, 40, 41, -1, 670, 40, 541, 41, -1, 541, 33, 542, -1, 542, -1, 462, -1, 23, -1, 544, -1, 560, -1, 545, -1, 556, -1, 558, -1, 24, 546, 547, 548, 42, -1, 24, 546, 547, 548, 25, 555, 31, 546, 548, 26, -1, 122, -1, 123, -1, -1, 547, 105, 122, 548, 43, 548, 549, -1, 547, 105, 123, 548, 43, 548, 550, -1, -1, 105, -1, 44, 551, 45, -1, 46, 553, 47, -1, 44, 552, 45, -1, 46, 554, 47, -1, -1, 551, 459, -1, 551, 115, -1, -1, 552, 459, -1, 552, 115, -1, -1, 553, 459, -1, 553, 116, -1, -1, 554, 459, -1, 554, 116, -1, -1, 555, 544, -1, 555, 459, -1, 555, 118, -1, 555, 117, -1, 28, 557, 29, -1, -1, 107, -1, 27, 129, 559, -1, 106, -1, 105, 106, -1, 561, -1, 562, -1, 565, -1, 567, -1, 568, -1, 569, -1, 570, -1, 82, 48, 461, 49, -1, 191, 563, 564, -1, 124, -1, 48, 461, 49, -1, 48, 49, -1, 48, 461, 49, -1, 55, 566, 564, -1, 124, -1, 48, 461, 49, -1, 173, 571, 564, -1, 63, 48, 461, 49, -1, 56, 48, 461, 49, -1, 60, 571, 572, -1, 124, -1, 48, 461, 49, -1, 48, 49, -1, 48, 461, 49, -1, 579, 574, -1, -1, 23, -1, -1, 152, 576, -1, 578, 577, -1, 64, 40, 41, -1, -1, 11, -1, 34, -1, 23, -1, 579, -1, 174, 40, 41, -1, 580, -1, 664, -1, 668, -1, 648, -1, 582, -1, 591, -1, 587, -1, 593, -1, 589, -1, 586, -1, 584, -1, 583, -1, 585, -1, 581, -1, 59, 40, 41, -1, 57, 40, 41, -1, 57, 40, 591, 41, -1, 57, 40, 593, 41, -1, 63, 40, 41, -1, 56, 40, 41, -1, 58, 40, 41, -1, 60, 40, 41, -1, 60, 40, 647, 41, -1, 60, 40, 125, 41, -1, 55, 40, 41, -1, 55, 40, 588, 41, -1, 55, 40, 588, 33, 597, 41, -1, 595, -1, 11, -1, 61, 40, 590, 41, -1, 595, -1, 191, 40, 41, -1, 191, 40, 592, 41, -1, 191, 40, 592, 33, 597, 41, -1, 191, 40, 592, 33, 597, 23, 41, -1, 596, -1, 11, -1, 62, 40, 594, 41, -1, 596, -1, 648, -1, 648, -1, 648, -1, 125, -1, 602, 601, 600, -1, -1, 196, 498, -1, -1, 601, 613, -1, 602, 241, 603, -1, 603, -1, 603, 242, 604, -1, 604, -1, 604, 83, 133, 605, -1, 605, -1, 243, 606, -1, 606, -1, 607, -1, 607, 616, -1, 608, 611, -1, 40, 599, 41, -1, 609, -1, 532, 610, -1, 48, 461, 49, 610, -1, 511, 48, 49, -1, 511, 48, 599, 49, -1, -1, 208, -1, 208, 97, -1, 209, -1, 209, 213, -1, 210, -1, -1, 199, 612, 200, -1, 211, 499, -1, 119, 144, 499, -1, 119, 101, 499, -1, 212, 499, 161, 499, -1, 120, -1, 197, 499, 614, -1, 198, 612, 614, -1, 201, 615, -1, 202, 615, -1, 114, 99, -1, 114, 100, -1, 95, 96, -1, 213, -1, 214, -1, 215, -1, 216, -1, 217, -1, 84, 617, -1, 616, 84, 617, -1, 629, -1, 630, -1, 621, -1, 620, -1, 618, -1, 619, -1, 624, -1, 631, -1, 151, 87, -1, 151, 86, -1, 203, -1, 204, -1, 88, 87, -1, 88, 86, -1, 91, -1, 85, 91, -1, 92, 623, -1, 92, 183, -1, 92, 40, 623, 622, 41, -1, 92, 40, 183, 622, 41, -1, 85, 92, -1, -1, 622, 33, 623, -1, 114, 598, -1, 114, 598, 205, 646, -1, 114, 598, 612, 206, -1, 114, 598, 205, 646, 612, 206, -1, 93, 213, 626, 625, -1, 85, 93, 213, -1, 93, 213, 183, 625, -1, -1, 625, 628, -1, 114, 598, -1, 40, 627, 41, -1, 646, -1, 627, 33, 646, -1, 164, 626, -1, 166, 626, -1, 207, 646, -1, 94, -1, 85, 94, -1, 185, 669, 125, -1, 90, 96, 501, -1, 180, 224, 69, -1, 180, 224, 68, -1, 180, 224, 102, -1, 635, 462, 152, 220, 230, 462, -1, 635, 462, 152, 228, 230, 462, -1, 635, 462, 230, 462, -1, 635, 462, 223, 462, -1, 635, 462, 222, 462, -1, 221, 59, -1, 221, 226, -1, 637, 462, -1, 229, 59, -1, 229, 226, -1, 218, 104, 159, 59, 462, 225, 462, -1, 218, 59, 462, 225, 462, -1, 227, 59, 462, 152, 462, -1, 103, 641, 219, 462, 131, 462, -1, 641, 33, 642, -1, 642, -1, 9, 535, 10, 462, -1, 52, -1, 53, -1, 54, -1, 125, -1, 669, -1, 669, -1, 180, 234, 236, 669, 459, -1, 180, 234, 236, 669, 651, 650, 459, -1, 180, 234, 236, 669, 652, 235, 409, 459, -1, 180, 234, 236, 669, 652, 235, 409, 651, 650, 459, -1, 180, 234, 652, 235, 409, 459, -1, 180, 234, 652, 235, 409, 651, 650, 459, -1, -1, 152, 576, -1, 40, 41, -1, 40, 457, 41, -1, -1, 240, 653, -1, 654, -1, 653, 33, 654, -1, 122, -1, 318, -1, 319, -1, 237, 234, 669, -1, 237, 234, 669, 225, 40, 658, 41, -1, 238, 239, 462, -1, 238, 239, 462, 225, 40, 658, 41, -1, 238, 239, 462, 240, 657, -1, 238, 239, 462, 240, 657, 225, 40, 658, 41, -1, 669, -1, 318, -1, 320, -1, 659, -1, 658, 33, 659, -1, 9, 535, 575, 10, 462, -1, 661, -1, 662, -1, 670, 51, 52, -1, 193, 451, 575, 459, -1, 530, 40, 41, -1, 530, 40, 541, 41, -1, 665, -1, 666, -1, 193, 40, 11, 41, -1, 193, 40, 41, 152, 576, -1, 193, 40, 667, 41, 152, 576, -1, 576, -1, 667, 33, 576, -1, 40, 578, 41, -1, 670, -1, 55, -1, 56, -1, 57, -1, 191, -1, 174, -1, 153, -1, 59, -1, 60, -1, 61, -1, 62, -1, 63, -1, 149, -1, 64, -1, 193, -1, 58, -1, 122, -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, 71, -1, 72, -1, 73, -1, 74, -1, 75, -1, 76, -1, 77, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, -1, 86, -1, 87, -1, 88, -1, 89, -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, 126, -1, 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, 137, -1, 138, -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, -1, 150, -1, 152, -1, 154, -1, 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, 160, -1, 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, 166, -1, 167, -1, 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, 173, -1, 175, -1, 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, 181, -1, 182, -1, 183, -1, 184, -1, 185, -1, 187, -1, 188, -1, 189, -1, 192, -1, 194, -1, 84, -1, 85, -1, 195, -1, 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, 217, -1, 218, -1, 219, -1, 220, -1, 221, -1, 222, -1, 223, -1, 224, -1, 225, -1, 226, -1, 227, -1, 228, -1, 229, -1, 230, -1, 231, -1, 120, -1, 121, -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, -1, 238, -1, 239, -1, 240, -1, 241, -1, 242, -1, 243, -1, 244, -1, 245, -1, 246, -1, 247, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 765, 765, 766, 767, 768, 769, 770, 775, 782, 793, 801, 801, 804, 813, 824, 862, 865, 871, 907, 938, 941, 963, 965, 969, 976, 978, 979, 980, 981, 982, 983, 987, 1006, 1011, 1016, 1023, 1028, 1033, 1042, 1045, 1051, 1056, 1063, 1063, 1063, 1066, 1079, 1084, 1091, 1096, 1105, 1108, 1116, 1143, 1147, 1154, 1160, 1165, 1170, 1179, 1203, 1207, 1214, 1219, 1224, 1229, 1240, 1258, 1262, 1269, 1274, 1282, 1307, 1310, 1313, 1316, 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346, 1349, 1352, 1355, 1358, 1364, 1365, 1366, 1367, 1368, 1380, 1383, 1388, 1391, 1396, 1401, 1409, 1417, 1428, 1439, 1442, 1449, 1459, 1462, 1467, 1478, 1481, 1486, 1491, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1520, 1538, 1542, 1547, 1556, 1562, 1562, 1565, 1585, 1589, 1594, 1602, 1607, 1611, 1619, 1622, 1630, 1643, 1647, 1658, 1661, 1669, 1687, 1691, 1698, 1703, 1708, 1716, 1722, 1730, 1738, 1745, 1759, 1763, 1777, 1786, 1794, 1797, 1804, 1839, 1843, 1848, 1854, 1864, 1867, 1875, 1878, 1885, 1903, 1907, 1914, 1919, 1927, 1945, 1949, 1957, 1979, 1983, 1990, 1998, 2007, 2015, 2052, 2056, 2063, 2070, 2079, 2088, 2115, 2119, 2126, 2138, 2164, 2168, 2175, 2185, 2197, 2201, 2206, 2215, 2228, 2232, 2237, 2246, 2260, 2264, 2277, 2282, 2294, 2298, 2306, 2319, 2327, 2340, 2347, 2361, 2361, 2364, 2364, 2386, 2390, 2394, 2412, 2430, 2440, 2454, 2462, 2468, 2474, 2480, 2492, 2495, 2509, 2510, 2511, 2512, 2518, 2519, 2520, 2524, 2544, 2561, 2564, 2568, 2580, 2582, 2586, 2590, 2594, 2598, 2602, 2608, 2614, 2618, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2643, 2643, 2646, 2650, 2658, 2663, 2672, 2677, 2686, 2746, 2754, 2759, 2768, 2773, 2782, 2792, 2796, 2804, 2808, 2816, 2832, 2841, 2853, 2862, 2865, 2870, 2879, 2883, 2891, 2901, 2913, 2920, 2924, 2932, 2937, 2946, 2954, 2954, 2957, 2961, 2969, 2970, 2979, 2982, 2995, 3008, 3018, 3018, 3021, 3021, 3025, 3028, 3036, 3041, 3051, 3059, 3067, 3080, 3095, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3118, 3162, 3163, 3176, 3183, 3183, 3186, 3186, 3186, 3191, 3198, 3202, 3206, 3218, 3221, 3232, 3235, 3245, 3252, 3256, 3260, 3264, 3277, 3285, 3293, 3298, 3306, 3310, 3316, 3323, 3338, 3355, 3358, 3362, 3370, 3378, 3382, 3391, 3399, 3410, 3414, 3418, 3429, 3436, 3445, 3449, 3453, 3461, 3479, 3484, 3494, 3497, 3505, 3513, 3522, 3527, 3536, 3546, 3550, 3554, 3554, 3558, 3562, 3566, 3570, 3574, 3578, 3582, 3586, 3590, 3594, 3598, 3602, 3606, 3611, 3615, 3619, 3624, 3631, 3636, 3640, 3644, 3649, 3653, 3657, 3661, 3665, 3670, 3674, 3678, 3683, 3687, 3691, 3696, 3713, 3718, 3723, 3728, 3732, 3737, 3741, 3746, 3752, 3758, 3763, 3764, 3765, 3773, 3777, 3781, 3789, 3796, 3805, 3805, 3809, 3829, 3830, 3838, 3839, 3845, 3866, 3870, 3884, 3890, 3903, 3907, 3907, 3911, 3912, 3921, 3922, 3928, 3929, 3938, 3950, 3961, 3965, 3969, 3973, 3977, 3981, 3985, 3989, 3997, 4005, 4022, 4030, 4039, 4043, 4047, 4051, 4055, 4063, 4075, 4080, 4085, 4092, 4097, 4104, 4111, 4123, 4124, 4128, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4146, 4146, 4149, 4149, 4149, 4153, 4160, 4164, 4168, 4176, 4184, 4194, 4204, 4208, 4231, 4236, 4246, 4247, 4256, 4260, 4269, 4269, 4269, 4273, 4279, 4288, 4288, 4293, 4296, 4305, 4316, 4316, 4321, 4325, 4332, 4336, 4347, 4350, 4355, 4366, 4369, 4373, 4387, 4390, 4395, 4406, 4409, 4413, 4431, 4434, 4439, 4444, 4451, 4464, 4478, 4481, 4486, 4505, 4506, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4531, 4539, 4547, 4551, 4559, 4563, 4572, 4579, 4583, 4593, 4601, 4609, 4617, 4624, 4634, 4641, 4645, 4653, 4664, 4667, 4676, 4679, 4689, 4696, 4706, 4707, 4709, 4711, 4717, 4721, 4725, 4726, 4727, 4731, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4757, 4765, 4769, 4774, 4783, 4791, 4799, 4808, 4812, 4816, 4824, 4828, 4832, 4840, 4841, 4849, 4857, 4862, 4866, 4870, 4874, 4883, 4884, 4892, 4899, 4902, 4905, 4908, 4912, 4924, 4940, 4942, 4949, 4952, 4961, 4973, 4978, 4990, 4995, 4999, 5004, 5009, 5014, 5015, 5024, 5029, 5033, 5039, 5043, 5051, 5056, 5066, 5069, 5073, 5077, 5081, 5085, 5093, 5095, 5106, 5112, 5118, 5124, 5139, 5143, 5147, 5151, 5155, 5159, 5163, 5167, 5175, 5179, 5183, 5191, 5195, 5203, 5204, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5231, 5235, 5239, 5243, 5252, 5256, 5264, 5268, 5278, 5282, 5286, 5290, 5294, 5302, 5304, 5311, 5315, 5319, 5323, 5333, 5337, 5341, 5349, 5351, 5359, 5363, 5370, 5374, 5382, 5386, 5394, 5402, 5406, 5414, 5421, 5429, 5434, 5439, 5451, 5455, 5459, 5463, 5467, 5473, 5473, 5478, 5484, 5484, 5489, 5493, 5503, 5511, 5518, 5523, 5531, 5540, 5552, 5564, 5577, 5588, 5597, 5609, 5614, 5619, 5625, 5631, 5637, 5647, 5650, 5658, 5662, 5670, 5674, 5682, 5687, 5696, 5700, 5704, 5712, 5716, 5724, 5728, 5732, 5736, 5744, 5748, 5752, 5760, 5765, 5775, 5788, 5788, 5792, 5800, 5811, 5816, 5840, 5840, 5844, 5852, 5856, 5863, 5868, 5877, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5887, 5887, 5887, 5887, 5887, 5887, 5888, 5888, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5893, 5893, 5893, 5893, 5893, 5893, 5893, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5907, 5907, 5907, 5907, 5907, 5907, 5907 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"\"", "error", "$undefined", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"$\"", "\":=\"", "\"*\"", "\"|\"", "\"!=\"", "\"<=\"", "\"> (comparison operator)\"", "\">=\"", "\"<<\"", "\">>\"", "\"::\"", "\"@\"", "\"[\"", "\"]\"", "\"?\"", "\"<\"", "\"> (start tag close)\"", "\"> (end tag close)\"", "\"\"", "\"//\"", "\"\"", "\"=\"", "\"\\\" (open)\"", "\"\\\" (close)\"", "\"' (open)\"", "\"' (close)\"", "\"{\"", "\"}\"", "\";\"", "\"#\"", "\"\"", "\"\"", "\"\"", "\"attribute\"", "\"comment\"", "\"document-node\"", "\"namespace-node\"", "\"node\"", "\"processing-instruction\"", "\"schema-attribute\"", "\"schema-element\"", "\"text\"", "\"empty-sequence\"", "\"boundary-space\"", "\"ft-option\"", "\"base-uri\"", "\"lax\"", "\"strict\"", "\"idiv\"", "\"child\"", "\"descendant\"", "\"self\"", "\"descendant-or-self\"", "\"following-sibling\"", "\"following\"", "\"parent\"", "\"ancestor\"", "\"preceding-sibling\"", "\"preceding\"", "\"ancestor-of-self\"", "\"document\"", "\"not\"", "\"using\"", "\"no\"", "\"sensitive\"", "\"insensitive\"", "\"diacritics\"", "\"without\"", "\"without (followed by content)\"", "\"stemming\"", "\"thesaurus\"", "\"stop\"", "\"wildcards\"", "\"entire\"", "\"content\"", "\"word\"", "\"type\"", "\"start\"", "\"end\"", "\"most\"", "\"skip\"", "\"copy\"", "\"value\"", "\"\"", "\"\"", "\"\"", "\"eq\"", "\"ne\"", "\"lt\"", "\"le\"", "\"gt\"", "\"ge\"", "\"at\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"at (followed by least or most)\"", "\"ordered\"", "\"unordered\"", "\"\"", "\"\"", "\"\"", "\"'...'\"", "\"variable\"", "\":*\"", "\"*:\"", "\"\"", "\"\"", "\"return\"", "\"for\"", "\"in\"", "\"let\"", "\"where\"", "\"count\"", "\"by\"", "\"order\"", "\"stable\"", "\"ascending\"", "\"descending\"", "\"empty\"", "\"greatest\"", "\"least\"", "\"collation\"", "\"some\"", "\"every\"", "\"satisfies\"", "\"typeswitch\"", "\"case\"", "\"case (followed by (in)sensitive)\"", "\"as\"", "\"if\"", "\"then\"", "\"else\"", "\"or\"", "\"and\"", "\"instance\"", "\"of\"", "\"castable\"", "\"to\"", "\"div\"", "\"mod\"", "\"union\"", "\"intersect\"", "\"except\"", "\"validate\"", "\"cast\"", "\"treat\"", "\"is\"", "\"preserve\"", "\"strip\"", "\"namespace\"", "\"item\"", "\"external\"", "\"encoding\"", "\"no-preserve\"", "\"inherit\"", "\"no-inherit\"", "\"declare\"", "\"construction\"", "\"ordering\"", "\"default\"", "\"copy-namespaces\"", "\"option\"", "\"xquery\"", "\"version\"", "\"import\"", "\"schema\"", "\"module\"", "\"element\"", "\"function\"", "\"function (ext)\"", "\"score\"", "\"contains\"", "\"weight\"", "\"window\"", "\"distance\"", "\"occurs\"", "\"times\"", "\"same\"", "\"different\"", "\"lowercase\"", "\"uppercase\"", "\"relationship\"", "\"levels\"", "\"language\"", "\"any\"", "\"all\"", "\"phrase\"", "\"exactly\"", "\"from\"", "\"words\"", "\"sentences\"", "\"paragraphs\"", "\"sentence\"", "\"paragraph\"", "\"replace\"", "\"modify\"", "\"first\"", "\"insert\"", "\"before\"", "\"after\"", "\"revalidation\"", "\"with\"", "\"nodes\"", "\"rename\"", "\"last\"", "\"delete\"", "\"into\"", "\"updating\"", "\"id\"", "\"key\"", "\"template\"", "\"matches\"", "\"name\"", "\"call\"", "\"apply\"", "\"templates\"", "\"mode\"", "\"ftor\"", "\"ftand\"", "\"ftnot\"", "\"private\"", "\"public\"", "\"deterministic\"", "\"nondeterministic\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"#default\"", "\"#all\"", "\"#current\"", "\"xml\"", "\"html\"", "\"xhtml\"", "$accept", "SelectLanguage", "XPathBuiltinNamespaces", "XQueryBuiltinNamespaces", "Start_FunctionDecl", "FunctionDecl_MaybeSemicolon", "Start_FunctionSignature", "Start_DelayedModule", "DM_ModuleDecl", "DM_Prolog", "DM_FunctionDecl", "Start_XSLT", "Stylesheet_XSLT", "StylesheetAttrs_XSLT", "StylesheetContent_XSLT", "Template_XSLT", "TemplateAttrs_XSLT", "TemplateModes_XSLT", "Number_XSLT", "Function_XSLT", "FunctionAttrs_XSLT", "ParamList_XSLT", "Param_XSLT", "ParamAttrs_XSLT", "GlobalParam_XSLT", "GlobalParamAttrs_XSLT", "GlobalVariable_XSLT", "GlobalVariableAttrs_XSLT", "Output_XSLT", "OutputAttrs_XSLT", "OutputMethod_XSLT", "QNames_XSLT", "ImportSchema_XSLT", "ImportSchemaAttrs_XSLT", "LiteralResultElement_XSLT", "LiteralResultElementAttrs_XSLT", "AttrValueTemplate_XSLT", "SequenceConstructor_XSLT", "Instruction_XSLT", "ValueOf_XSLT", "ValueOfAttrs_XSLT", "Text_XSLT", "TextNode_XSLT", "ApplyTemplates_XSLT", "ApplyTemplatesAttrs_XSLT", "ApplyTemplatesMode_XSLT", "ApplyTemplatesContent_XSLT", "CallTemplate_XSLT", "CallTemplateAttrs_XSLT", "CallTemplateContent_XSLT", "WithParam_XSLT", "WithParamAttrs_XSLT", "Sequence_XSLT", "SequenceAttrs_XSLT", "If_XSLT", "IfAttrs_XSLT", "Choose_XSLT", "WhenList_XSLT", "When_XSLT", "WhenAttrs_XSLT", "Otherwise_XSLT", "AnalyzeString_XSLT", "AnalyzeStringAttrs_XSLT", "MatchingSubstring_XSLT", "NonMatchingSubstring_XSLT", "Variable_XSLT", "VariableAttrs_XSLT", "Comment_XSLT", "CommentAttrs_XSLT", "PI_XSLT", "PIAttrs_XSLT", "Document_XSLT", "DocumentAttrs_XSLT", "Attribute_XSLT", "AttributeAttrs_XSLT", "Namespace_XSLT", "NamespaceAttrs_XSLT", "Element_XSLT", "ElementAttrs_XSLT", "CopyOf_XSLT", "CopyOfAttrs_XSLT", "Copy_XSLT", "CopyAttrs_XSLT", "ForEach_XSLT", "ForEachAttrs_XSLT", "Pattern_XSLT", "PathPattern_XSLT", "PathPatternStart_XSLT", "IdKeyPattern_XSLT", "IdValue_XSLT", "KeyValue_XSLT", "RelativePathPattern_XSLT", "PatternStep_XSLT", "PatternAxis_XSLT", "PatternStepPredicateList_XSLT", "Module", "VersionDecl", "Version", "Encoding", "MainModule", "LibraryModule", "ModuleDecl", "Prolog", "Setter", "Import", "Separator", "NamespaceDecl", "BoundarySpaceDecl", "DefaultNamespaceDecl", "OptionDecl", "FTOptionDecl", "OrderingModeDecl", "EmptyOrderDecl", "CopyNamespacesDecl", "PreserveMode", "InheritMode", "DefaultCollationDecl", "BaseURIDecl", "SchemaImport", "ResourceLocations", "SchemaPrefix", "ModuleImport", "VarDecl", "VarDeclValue", "ConstructionDecl", "FunctionDecl", "FunctionKeyword", "FunctionParamList", "FunctionBody", "FunctionOptions", "PrivateOption", "DeterministicOption", "FunctionDeclReturnType", "ParamList", "Param", "EnclosedExpr", "QueryBody", "Expr", "ExprSingle", "FLWORExpr", "FLWORTuples", "InitialClause", "IntermediateClause", "ForClause", "ForBindingList", "ForBinding", "PositionalVar", "FTScoreVar", "LetClause", "LetBindingList", "LetBinding", "WhereClause", "CountClause", "OrderByClause", "OrderSpecList", "OrderSpec", "OrderExpr", "OrderDirection", "EmptyHandling", "QuantifiedExpr", "QuantifyBindingList", "QuantifyBinding", "TypeswitchExpr", "CaseClauseList", "DefaultCase", "CaseClause", "CaseSequenceTypeUnion", "CaseClauseVariable", "IfExpr", "OrExpr", "AndExpr", "ComparisonExpr", "@1", "FTContainsExpr", "RangeExpr", "AdditiveExpr", "MultiplicativeExpr", "UnionExpr", "IntersectExceptExpr", "InstanceofExpr", "TreatExpr", "CastableExpr", "CastExpr", "UnaryExpr", "ValueExpr", "ValidateExpr", "ExtensionExpr", "PragmaList", "Pragma", "PragmaContents", "PathExpr", "LeadingSlash", "RelativePathExpr", "StepExpr", "AxisStep", "ForwardStepPredicateList", "ReverseStepPredicateList", "ForwardStep", "ForwardAxis", "AbbrevForwardStep", "ReverseStep", "ReverseAxis", "AbbrevReverseStep", "NodeTest", "NameTest", "Wildcard", "PostfixExpr", "PrimaryExpr", "Literal", "NumericLiteral", "VarRef", "VarName", "ParenthesizedExpr", "ContextItemExpr", "OrderedExpr", "UnorderedExpr", "FunctionCall", "FunctionCallArgumentList", "Argument", "Constructor", "DirectConstructor", "DirElemConstructor", "DirElemConstructorQName", "DirAttributeList", "OptionalWhitespace", "DirAttributeValue", "LiteralDirAttributeValue", "QuotAttrValueContent", "LiteralQuotAttrValueContent", "AposAttrValueContent", "LiteralAposAttrValueContent", "DirElementContent", "DirCommentConstructor", "DirCommentContents", "DirPIConstructor", "DirPIContents", "ComputedConstructor", "CompDocConstructor", "CompElemConstructor", "CompElementName", "ContentExpr", "CompAttrConstructor", "CompAttrName", "CompNamespaceConstructor", "CompTextConstructor", "CompCommentConstructor", "CompPIConstructor", "CompPINCName", "CompPIConstructorContent", "SingleType", "SingleTypeOccurrence", "TypeDeclaration", "SequenceType", "OccurrenceIndicator", "ItemType", "AtomicType", "KindTest", "AnyKindTest", "DocumentTest", "TextTest", "CommentTest", "NamespaceNodeTest", "PITest", "AttributeTest", "AttribNameOrWildcard", "SchemaAttributeTest", "AttributeDeclaration", "ElementTest", "ElementNameOrWildcard", "SchemaElementTest", "ElementDeclaration", "AttributeName", "ElementName", "TypeName", "URILiteral", "FTSelection", "FTSelectionWeight", "FTPosFilters", "FTOr", "FTAnd", "FTMildnot", "FTUnaryNot", "FTPrimaryWithOptions", "FTPrimary", "FTWords", "FTExtensionSelection", "FTAnyallOption", "FTTimes", "FTRange", "FTPosFilter", "FTUnit", "FTBigUnit", "FTMatchOptions", "FTMatchOption", "FTCaseOption", "FTDiacriticsOption", "FTStemOption", "FTThesaurusOption", "FTThesaurusIDList", "FTThesaurusID", "FTStopWordOption", "FTStopWordsInclExclList", "FTStopWords", "FTStopWordsStringList", "FTStopWordsInclExcl", "FTLanguageOption", "FTWildCardOption", "FTExtensionOption", "FTIgnoreOption", "RevalidationDecl", "InsertExpr", "InsertExprBegin", "DeleteExpr", "DeleteExprBegin", "ReplaceExpr", "RenameExpr", "TransformExpr", "TransformBindingList", "TransformBinding", "IntegerLiteral", "DecimalLiteral", "DoubleLiteral", "StringLiteral", "NCName", "QName", "TemplateDecl", "TemplateSequenceType", "TemplateParamList", "TemplateDeclModesSection", "TemplateDeclModes", "TemplateDeclMode", "CallTemplateExpr", "ApplyTemplatesExpr", "ApplyTemplatesMode", "TemplateArgumentList", "TemplateArgument", "FunctionItemExpr", "LiteralFunctionItem", "InlineFunction", "DynamicFunctionInvocation", "FunctionTest", "AnyFunctionTest", "TypedFunctionTest", "FunctionTypeArguments", "ParenthesizedItemType", "QNameValue", "FunctionName", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 324, 325, 325, 325, 325, 325, 325, 326, 327, 328, 329, 329, 330, 331, 332, 333, 333, 334, 335, 336, 336, 337, 337, 337, 338, 338, 338, 338, 338, 338, 338, 339, 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, 342, 342, 342, 343, 344, 344, 344, 344, 345, 345, 346, 347, 347, 347, 347, 347, 347, 348, 349, 349, 349, 349, 349, 349, 350, 351, 351, 351, 351, 352, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 354, 354, 354, 354, 354, 355, 355, 356, 357, 357, 357, 357, 357, 358, 359, 359, 359, 360, 360, 360, 361, 361, 361, 361, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, 364, 364, 364, 365, 366, 366, 367, 368, 368, 368, 369, 369, 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 375, 375, 375, 376, 377, 378, 379, 380, 381, 381, 382, 383, 384, 384, 385, 386, 386, 386, 386, 387, 387, 388, 388, 389, 390, 390, 390, 390, 391, 392, 392, 393, 394, 394, 394, 395, 396, 397, 398, 398, 398, 398, 398, 399, 400, 400, 400, 401, 402, 402, 402, 403, 404, 404, 404, 405, 406, 406, 406, 407, 408, 408, 409, 409, 410, 410, 410, 411, 411, 412, 412, 413, 413, 414, 414, 415, 415, 415, 415, 415, 415, 416, 417, 417, 417, 417, 418, 418, 419, 419, 419, 419, 420, 420, 420, 421, 422, 423, 424, 425, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 427, 427, 427, 427, 427, 427, 427, 427, 428, 428, 429, 430, 431, 431, 432, 432, 433, 434, 435, 435, 436, 436, 437, 438, 438, 439, 439, 440, 441, 442, 442, 443, 443, 443, 444, 444, 445, 445, 446, 447, 447, 448, 448, 449, 450, 450, 451, 451, 452, 452, 453, 453, 453, 453, 454, 454, 455, 455, 456, 456, 457, 457, 458, 459, 460, 461, 461, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 463, 464, 464, 464, 465, 465, 466, 466, 466, 467, 468, 468, 469, 470, 470, 471, 471, 472, 473, 473, 474, 474, 475, 476, 477, 477, 478, 478, 479, 479, 480, 481, 481, 481, 482, 482, 482, 483, 483, 484, 484, 485, 486, 487, 487, 488, 488, 489, 490, 490, 491, 491, 492, 493, 493, 494, 494, 495, 495, 496, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 497, 497, 497, 498, 498, 499, 499, 499, 500, 500, 500, 500, 500, 501, 501, 501, 502, 502, 502, 503, 503, 504, 504, 505, 505, 506, 506, 507, 507, 507, 508, 508, 508, 509, 509, 509, 510, 510, 511, 511, 512, 513, 513, 514, 514, 514, 514, 515, 516, 516, 516, 517, 517, 518, 518, 519, 519, 520, 520, 521, 521, 522, 522, 522, 522, 522, 522, 522, 522, 523, 523, 524, 524, 525, 525, 525, 525, 525, 526, 527, 527, 528, 528, 529, 529, 529, 530, 530, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 532, 533, 533, 533, 534, 535, 536, 536, 537, 538, 539, 540, 540, 541, 541, 542, 542, 543, 543, 544, 544, 544, 545, 545, 546, 546, 547, 547, 547, 548, 548, 549, 549, 550, 550, 551, 551, 551, 552, 552, 552, 553, 553, 553, 554, 554, 554, 555, 555, 555, 555, 555, 556, 557, 557, 558, 559, 559, 560, 560, 560, 560, 560, 560, 560, 561, 562, 563, 563, 564, 564, 565, 566, 566, 567, 568, 569, 570, 571, 571, 572, 572, 573, 574, 574, 575, 575, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 582, 582, 582, 583, 584, 585, 586, 586, 586, 587, 587, 587, 588, 588, 589, 590, 591, 591, 591, 591, 592, 592, 593, 594, 595, 596, 597, 598, 599, 600, 600, 601, 601, 602, 602, 603, 603, 604, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 609, 609, 610, 610, 610, 610, 610, 610, 611, 611, 612, 612, 612, 612, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 619, 619, 620, 620, 621, 621, 621, 621, 621, 622, 622, 623, 623, 623, 623, 624, 624, 624, 625, 625, 626, 626, 627, 627, 628, 628, 629, 630, 630, 631, 632, 633, 633, 633, 634, 634, 634, 634, 634, 635, 635, 636, 637, 637, 638, 638, 639, 640, 641, 641, 642, 643, 644, 645, 646, 647, 648, 649, 649, 649, 649, 649, 649, 650, 650, 651, 651, 652, 652, 653, 653, 654, 654, 654, 655, 655, 656, 656, 656, 656, 657, 657, 657, 658, 658, 659, 660, 660, 661, 662, 663, 663, 664, 664, 665, 666, 666, 667, 667, 668, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 3, 3, 3, 2, 2, 2, 0, 0, 8, 0, 1, 3, 2, 6, 0, 2, 8, 1, 4, 1, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 4, 1, 3, 2, 3, 3, 3, 0, 2, 2, 2, 1, 1, 1, 4, 1, 2, 3, 2, 0, 2, 3, 1, 2, 3, 3, 2, 2, 3, 1, 2, 3, 3, 2, 2, 3, 1, 2, 3, 3, 2, 1, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 3, 3, 4, 0, 3, 2, 0, 2, 2, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 1, 1, 0, 2, 3, 1, 2, 0, 2, 3, 1, 2, 3, 3, 2, 2, 3, 3, 3, 4, 1, 2, 3, 3, 0, 3, 4, 1, 3, 3, 3, 0, 3, 0, 3, 4, 1, 2, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 2, 1, 3, 2, 3, 1, 2, 2, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 6, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 3, 3, 2, 0, 4, 2, 2, 1, 1, 3, 4, 3, 2, 2, 2, 2, 6, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 5, 5, 4, 3, 3, 3, 5, 5, 5, 1, 1, 1, 1, 4, 3, 5, 4, 0, 2, 3, 3, 3, 7, 4, 6, 2, 1, 3, 3, 7, 1, 1, 2, 3, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 2, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 1, 1, 1, 2, 3, 1, 7, 0, 3, 0, 3, 2, 3, 1, 5, 5, 2, 3, 3, 4, 3, 1, 3, 5, 1, 0, 1, 1, 0, 2, 2, 4, 4, 3, 1, 5, 6, 2, 1, 5, 3, 3, 3, 3, 0, 3, 8, 3, 1, 3, 1, 3, 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 5, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 2, 2, 1, 1, 1, 1, 4, 5, 5, 3, 4, 1, 2, 4, 1, 2, 1, 2, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 1, 4, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 2, 1, 4, 4, 3, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 5, 10, 1, 1, 0, 7, 7, 0, 1, 3, 3, 3, 3, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 3, 0, 1, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 3, 1, 3, 2, 3, 3, 1, 3, 3, 4, 4, 3, 1, 3, 2, 3, 2, 0, 1, 0, 2, 2, 3, 0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 4, 6, 1, 1, 4, 1, 3, 4, 6, 7, 1, 1, 4, 1, 1, 1, 1, 1, 3, 0, 2, 0, 2, 3, 1, 3, 1, 4, 1, 2, 1, 1, 2, 2, 3, 1, 2, 4, 3, 4, 0, 1, 2, 1, 2, 1, 0, 3, 2, 3, 3, 4, 1, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 5, 5, 2, 0, 3, 2, 4, 4, 6, 4, 3, 4, 0, 2, 2, 3, 1, 3, 2, 2, 2, 1, 2, 3, 3, 3, 3, 3, 6, 6, 4, 4, 4, 2, 2, 2, 2, 2, 7, 5, 5, 6, 3, 1, 4, 1, 1, 1, 1, 1, 1, 5, 7, 8, 10, 6, 8, 0, 2, 2, 3, 0, 2, 1, 3, 1, 1, 1, 3, 7, 3, 7, 5, 9, 1, 1, 1, 1, 3, 5, 1, 1, 3, 4, 3, 4, 1, 1, 4, 5, 6, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { 0, 8, 9, 0, 9, 0, 317, 0, 0, 257, 22, 105, 5, 19, 21, 0, 0, 6, 16, 7, 0, 1, 0, 503, 0, 0, 0, 572, 0, 548, 0, 0, 467, 527, 498, 0, 769, 770, 771, 819, 820, 821, 833, 825, 826, 827, 828, 829, 831, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 935, 936, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 974, 975, 834, 772, 879, 504, 505, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 830, 897, 898, 824, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 823, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 822, 933, 832, 934, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 2, 331, 333, 334, 0, 347, 350, 351, 335, 336, 337, 343, 400, 402, 419, 422, 424, 427, 432, 435, 438, 440, 442, 444, 446, 449, 450, 452, 0, 458, 451, 463, 466, 470, 471, 473, 474, 475, 0, 480, 477, 0, 492, 490, 500, 502, 472, 506, 509, 518, 510, 511, 512, 515, 516, 513, 514, 536, 538, 539, 540, 537, 577, 578, 579, 580, 581, 582, 583, 499, 627, 618, 625, 624, 626, 623, 620, 622, 619, 621, 338, 0, 339, 0, 341, 340, 342, 520, 521, 522, 519, 501, 344, 345, 517, 804, 805, 508, 774, 818, 0, 0, 3, 257, 247, 248, 257, 0, 25, 111, 317, 4, 0, 14, 0, 320, 321, 322, 323, 324, 325, 318, 319, 819, 820, 821, 833, 825, 826, 827, 828, 829, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 870, 974, 975, 881, 883, 894, 895, 830, 824, 912, 918, 822, 832, 960, 963, 969, 971, 981, 982, 523, 524, 818, 819, 820, 826, 829, 822, 489, 543, 544, 545, 0, 573, 0, 465, 549, 0, 448, 447, 526, 0, 483, 0, 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 481, 482, 484, 485, 486, 487, 493, 494, 495, 496, 497, 0, 0, 0, 767, 0, 0, 0, 355, 357, 0, 0, 363, 365, 0, 0, 386, 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, 586, 0, 604, 0, 0, 757, 758, 0, 760, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 349, 353, 354, 348, 0, 0, 0, 0, 0, 0, 0, 0, 405, 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, 459, 464, 0, 0, 0, 0, 479, 491, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 245, 246, 255, 924, 931, 0, 0, 0, 267, 0, 0, 0, 271, 272, 274, 268, 269, 275, 276, 0, 270, 0, 254, 273, 0, 23, 24, 0, 107, 108, 0, 0, 0, 773, 317, 17, 0, 313, 0, 328, 0, 13, 548, 0, 575, 574, 571, 0, 525, 642, 638, 0, 641, 653, 0, 0, 590, 633, 0, 629, 0, 0, 0, 0, 634, 628, 635, 0, 0, 0, 0, 596, 0, 644, 0, 652, 654, 632, 0, 0, 0, 0, 0, 0, 0, 604, 0, 604, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 593, 650, 645, 0, 649, 0, 585, 0, 0, 0, 0, 0, 792, 794, 332, 346, 368, 0, 0, 0, 399, 401, 404, 407, 408, 409, 417, 418, 0, 403, 410, 411, 412, 413, 414, 415, 416, 0, 425, 426, 423, 428, 430, 429, 431, 433, 434, 436, 437, 0, 0, 0, 0, 456, 0, 469, 468, 0, 0, 0, 535, 808, 534, 0, 533, 0, 0, 0, 0, 530, 0, 806, 253, 252, 277, 0, 249, 251, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 258, 259, 260, 261, 265, 266, 262, 263, 264, 20, 33, 61, 47, 68, 73, 99, 26, 51, 27, 51, 28, 111, 29, 111, 30, 0, 31, 0, 106, 104, 134, 0, 141, 150, 0, 0, 0, 181, 186, 189, 193, 195, 201, 205, 172, 209, 213, 217, 138, 139, 113, 114, 115, 111, 116, 112, 117, 147, 118, 152, 119, 0, 121, 111, 120, 129, 176, 122, 111, 123, 111, 124, 111, 125, 111, 126, 111, 127, 111, 128, 111, 130, 0, 131, 111, 132, 111, 311, 312, 0, 0, 0, 604, 0, 314, 0, 831, 823, 832, 326, 608, 612, 614, 617, 615, 810, 811, 616, 549, 0, 576, 0, 461, 460, 0, 639, 592, 588, 0, 595, 630, 631, 637, 636, 598, 599, 0, 643, 651, 594, 584, 0, 766, 0, 528, 529, 359, 356, 0, 0, 364, 0, 385, 383, 384, 0, 0, 453, 0, 0, 0, 646, 587, 605, 0, 807, 0, 0, 0, 0, 0, 0, 369, 376, 370, 373, 377, 0, 406, 0, 0, 0, 0, 679, 420, 660, 663, 665, 667, 669, 670, 685, 674, 439, 441, 443, 602, 445, 457, 476, 478, 507, 0, 809, 0, 0, 756, 755, 754, 531, 250, 0, 279, 280, 0, 284, 656, 295, 0, 0, 308, 309, 285, 286, 0, 0, 0, 0, 290, 291, 0, 0, 750, 749, 751, 0, 0, 0, 0, 0, 0, 0, 298, 0, 298, 100, 101, 39, 35, 0, 0, 0, 111, 48, 50, 0, 111, 62, 66, 65, 0, 0, 0, 69, 0, 0, 0, 72, 90, 74, 78, 79, 80, 84, 85, 87, 76, 81, 82, 83, 86, 88, 0, 0, 0, 98, 110, 109, 0, 0, 0, 169, 165, 111, 0, 0, 108, 0, 0, 0, 0, 151, 0, 160, 0, 111, 0, 108, 108, 178, 182, 0, 0, 0, 0, 0, 108, 0, 0, 0, 108, 0, 108, 108, 0, 108, 0, 0, 108, 108, 0, 208, 211, 0, 214, 215, 0, 0, 0, 0, 0, 0, 329, 327, 0, 0, 0, 0, 609, 611, 610, 606, 548, 548, 566, 541, 462, 0, 655, 589, 600, 768, 0, 0, 361, 0, 0, 0, 396, 0, 390, 0, 0, 454, 455, 0, 0, 763, 0, 764, 0, 0, 799, 800, 796, 798, 0, 378, 379, 380, 371, 0, 0, 668, 0, 680, 682, 684, 675, 0, 421, 0, 658, 0, 0, 671, 0, 672, 603, 601, 532, 0, 0, 0, 0, 0, 720, 0, 0, 745, 0, 0, 716, 717, 0, 704, 710, 711, 709, 708, 712, 706, 707, 713, 0, 604, 0, 0, 294, 0, 0, 0, 283, 785, 789, 790, 791, 786, 787, 0, 0, 0, 0, 298, 0, 297, 0, 304, 102, 103, 37, 0, 225, 224, 819, 841, 976, 977, 34, 220, 0, 223, 221, 232, 243, 239, 38, 43, 44, 45, 36, 54, 52, 111, 0, 49, 0, 64, 63, 60, 71, 70, 67, 94, 95, 91, 92, 93, 75, 96, 77, 89, 137, 161, 0, 111, 166, 0, 0, 163, 135, 136, 133, 144, 145, 146, 143, 142, 140, 155, 148, 111, 149, 153, 162, 0, 173, 174, 175, 111, 0, 184, 183, 111, 187, 185, 190, 191, 188, 192, 196, 198, 199, 197, 194, 202, 203, 200, 206, 207, 204, 210, 212, 218, 216, 325, 15, 0, 817, 607, 613, 0, 0, 815, 0, 0, 0, 0, 640, 765, 0, 0, 0, 366, 367, 387, 0, 0, 0, 388, 389, 0, 0, 0, 0, 647, 330, 0, 0, 0, 801, 0, 0, 372, 0, 374, 673, 679, 677, 0, 681, 683, 0, 662, 0, 0, 691, 0, 0, 0, 0, 0, 657, 661, 664, 0, 0, 0, 0, 0, 752, 753, 256, 721, 726, 0, 746, 719, 718, 0, 0, 723, 722, 0, 715, 714, 0, 744, 705, 0, 278, 287, 288, 281, 282, 292, 293, 289, 0, 775, 781, 0, 0, 0, 325, 301, 302, 296, 299, 0, 0, 40, 41, 42, 242, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 238, 55, 59, 58, 0, 0, 0, 32, 46, 97, 168, 0, 164, 167, 156, 159, 0, 0, 0, 177, 0, 171, 180, 0, 325, 812, 0, 0, 0, 548, 548, 0, 570, 569, 568, 567, 360, 0, 0, 0, 394, 0, 0, 395, 393, 0, 648, 762, 604, 0, 793, 795, 0, 381, 382, 0, 676, 678, 748, 698, 696, 697, 659, 0, 0, 702, 703, 694, 695, 666, 0, 0, 687, 0, 686, 734, 727, 727, 729, 0, 0, 736, 736, 747, 0, 307, 305, 783, 0, 0, 0, 0, 788, 779, 781, 0, 300, 298, 241, 240, 0, 229, 228, 0, 219, 235, 234, 237, 236, 0, 57, 56, 53, 170, 158, 157, 154, 179, 11, 0, 813, 816, 0, 0, 0, 548, 362, 358, 397, 0, 392, 398, 0, 802, 0, 375, 699, 700, 701, 692, 693, 689, 688, 0, 0, 0, 0, 0, 0, 740, 738, 735, 733, 306, 784, 782, 776, 0, 0, 316, 310, 315, 303, 226, 0, 0, 10, 12, 0, 814, 554, 560, 546, 557, 563, 547, 0, 0, 0, 797, 690, 0, 725, 724, 730, 731, 0, 739, 0, 0, 737, 777, 781, 780, 0, 230, 231, 244, 18, 0, 0, 0, 0, 542, 391, 803, 728, 0, 741, 742, 743, 0, 227, 550, 556, 555, 551, 562, 561, 552, 559, 558, 553, 565, 564, 732, 778 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 7, 8, 9, 326, 1559, 19, 17, 18, 328, 568, 12, 13, 323, 560, 744, 745, 1178, 1198, 746, 747, 970, 1200, 1201, 748, 749, 750, 751, 752, 753, 1216, 1218, 754, 755, 778, 324, 756, 563, 779, 780, 781, 782, 783, 784, 785, 1234, 1018, 786, 787, 1020, 1238, 1239, 788, 789, 790, 791, 792, 1009, 1010, 1011, 1225, 793, 794, 1027, 1248, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 1186, 1187, 1188, 1189, 1493, 1587, 1190, 1191, 1192, 1393, 317, 318, 530, 531, 319, 320, 321, 322, 538, 539, 708, 540, 541, 542, 543, 544, 545, 546, 547, 948, 1365, 548, 549, 550, 1173, 959, 551, 552, 1479, 553, 554, 817, 335, 1553, 725, 336, 337, 574, 571, 572, 1005, 215, 216, 217, 218, 219, 220, 476, 221, 436, 437, 1082, 1290, 222, 440, 441, 477, 478, 479, 892, 893, 894, 1107, 1313, 223, 443, 444, 224, 1087, 1297, 1088, 1089, 1295, 225, 226, 227, 228, 660, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 841, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 378, 266, 267, 268, 269, 270, 695, 696, 271, 272, 273, 389, 575, 395, 1565, 1568, 1592, 1594, 1593, 1595, 1285, 274, 392, 275, 578, 276, 277, 278, 456, 589, 279, 404, 280, 281, 282, 283, 413, 604, 913, 1127, 640, 827, 1069, 828, 829, 284, 285, 286, 287, 288, 289, 290, 291, 584, 292, 605, 293, 635, 294, 607, 585, 608, 1075, 935, 902, 1330, 1120, 903, 904, 905, 906, 907, 908, 909, 910, 1116, 1125, 1337, 1331, 1532, 1460, 933, 1143, 1144, 1145, 1146, 1147, 1537, 1350, 1148, 1544, 1475, 1541, 1583, 1149, 1150, 1151, 1118, 556, 295, 296, 297, 298, 299, 300, 301, 431, 432, 302, 303, 304, 305, 565, 306, 557, 1483, 1368, 955, 1165, 1166, 307, 308, 1102, 1307, 1308, 309, 310, 311, 312, 832, 833, 834, 1282, 835, 313, 314 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -1397 static const yytype_int16 yypact[] = { 296, -1397, -1397, 17, -1397, 13, -1397, 213, 3391, 478, -1397, -1397, -1397, -1397, -1397, 187, 246, -1397, -1397, -1397, 7, -1397, 6346, -1397, 4819, 569, 341, 439, 4108, 477, 3630, 3630, -1397, -1397, -1397, 2196, -1397, -1397, -1397, 96, 258, 570, 584, 632, 68, 665, 669, 350, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 579, 616, 710, 713, 718, 722, 726, 746, 757, 761, 763, 742, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 787, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 750, 766, -1397, -1397, -1397, -1397, -1397, -1397, 806, -1397, 36, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 807, 807, -1397, 777, -1397, -1397, 778, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 283, -1397, -1397, -1397, -1397, -1397, 153, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 80, -1397, 779, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 75, -1397, -1397, -4, -1397, -1397, -1397, -1397, -1397, 764, -1397, -3, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 588, 586, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 793, -1397, -1397, 535, -1397, -1397, -1397, -1397, -1397, -1397, 671, 673, -1397, 1091, 636, 39, 52, 54, 554, -1397, 675, 666, 674, 668, -1397, -1397, -1397, 115, -1397, -1397, 4108, 305, -1397, -1397, 816, 819, -1397, 4819, -1397, -1397, 4819, -1397, -1397, -1397, -1397, 157, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3391, -1397, 3391, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 427, 330, 670, -1397, 651, -1397, -1397, -1397, 3869, 155, 407, -1397, -1397, 6346, 662, 158, -1397, -1397, -1397, -1397, -1397, 692, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 805, 808, 809, 813, 814, -1397, -1397, -1397, -1397, 618, -1397, 817, 305, -1397, 6346, -1397, -1397, -1397, 441, -1397, 5293, 3391, -1397, 799, 818, 3391, 28, 822, 823, 6153, 3391, -1397, 810, 6346, 6346, 824, 3391, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3391, 6346, 20, -1397, 3391, 3391, 6346, 828, -1397, 6346, 846, 833, -1397, 6346, 97, -1397, 125, 3391, 3391, 3391, 821, 825, -1397, 799, 5530, 3391, -1397, 799, 705, 3391, 711, -1397, -1397, 3391, -1397, -1397, 6346, 3391, 3391, 3391, 806, 36, 3391, 862, 737, 739, -1397, -1397, -1397, -1397, -1397, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, -1397, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 812, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 719, 727, 728, 729, 2435, -1397, 305, 4108, 4108, 3391, 3391, -1397, -1397, 3391, 1718, -49, -1397, 1957, 830, 759, 760, 50, 836, 6346, -1397, -1397, 323, 1036, 536, 836, 836, 836, -1397, 836, 836, 836, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 836, -1397, 836, -1397, -1397, 836, -1397, -1397, 106, -1397, -1397, 982, 194, 850, -1397, -1397, -1397, 6346, -1397, 496, -1397, 5738, -1397, 783, 784, -1397, -1397, -1397, 27, -1397, -1397, -1397, 498, -1397, -1397, 260, 2674, -1397, -1397, 352, -1397, 669, 814, 848, 851, -1397, -1397, -1397, 852, 853, 361, 2913, -1397, 856, -1397, 859, -1397, -1397, -1397, 366, 372, 892, 787, 3391, 411, 420, 705, 806, 705, 6346, 36, 705, 807, 3391, 3391, 540, 546, 428, 3391, 3391, -1397, -1397, -1397, 553, -1397, 431, -1397, 5738, 855, 681, 849, 755, 687, -87, -1397, -1397, -1397, 6346, 3391, 772, 673, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3630, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 45, 52, 52, 693, 54, 54, 54, 54, 554, 554, -1397, -1397, 5738, 5738, 6346, 6346, -1397, 443, -1397, -1397, 502, 510, 545, -1397, -1397, -1397, 555, -1397, 375, 3391, 3391, 3391, -1397, 559, -1397, -1397, -1397, -1397, 836, -1397, -1397, 874, 573, 536, 564, 829, 790, 907, 6346, 576, 619, 204, 452, 6346, 221, 448, 194, 144, 18, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 461, -1397, 214, -1397, 170, -1397, 195, -1397, 34, -1397, 7057, -1397, 677, 44, -1397, -1397, 435, -1397, -1397, 614, 658, 621, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 74, -1397, -1397, -1397, 15, -1397, 643, -1397, 679, -1397, -1397, -1397, -1397, 67, -1397, 134, -1397, 626, -1397, -119, -1397, -1397, -1397, 65, -1397, 126, -1397, -132, -1397, -117, -1397, 466, -1397, 627, -1397, -1397, 6529, 790, 194, 705, 910, -1397, 5946, 881, 893, 896, -1397, 355, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 639, 349, -1397, 802, -1397, -1397, 6346, -1397, -1397, -1397, 446, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 455, -1397, -1397, -1397, -1397, 3391, -1397, 826, -1397, -1397, 835, -1397, 927, 930, -1397, 811, -1397, -1397, -1397, 800, 801, -1397, 493, 505, 6346, -1397, -1397, -1397, 3391, -1397, 3391, 3391, 3391, 913, 914, 1449, -1397, -1397, 931, -1397, 623, 3391, -1397, 45, 3391, 307, 517, 488, 873, 724, 730, 885, -1397, -1397, 829, 771, -1397, -1397, -1397, -1397, 948, -1397, -1397, -1397, -1397, -1397, 3152, -1397, 745, 748, -1397, -1397, -1397, -1397, -1397, 790, -1397, -1397, 527, 895, -1397, -1397, 6346, 939, -1397, -1397, -1397, -1397, 839, 790, 831, 832, -1397, -1397, 949, 858, -1397, -1397, -1397, 6346, -70, 754, 6529, 6346, 794, 790, 876, 6346, 876, 702, 704, -1397, -1397, 4345, 5738, 654, 736, -1397, -1397, 5738, 736, -1397, -1397, -1397, 5738, 3391, 1075, -1397, 5738, 3391, 1168, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -51, 877, 877, -1397, -1397, -1397, 747, 3391, 701, 506, -1397, -1397, 3391, 3391, -1397, 6530, -93, 3391, 241, -1397, 254, -1397, 6558, -1397, 3391, -1397, -1397, 738, -1397, 5738, 3391, 6586, 3391, 6614, -1397, 3391, 6642, 6670, -1397, 3391, -1397, -1397, 6698, -1397, 3391, 6726, -1397, -1397, 6754, -1397, -1397, 3391, -1397, -1397, 6782, 3391, 6810, 779, 836, 6529, -1397, -1397, 957, 970, 974, 5056, -1397, -1397, -1397, -1397, 477, 477, -1397, -1397, -1397, 975, -1397, -1397, -1397, -1397, 3391, 1008, 827, 3391, 3391, 3391, 1010, 136, -1397, 64, 3391, -1397, -1397, 292, 541, -1397, 795, -1397, 1013, 1013, -1397, -1397, 798, -1397, 3391, -1397, -1397, 882, 931, 986, 544, -1397, 35, 932, 815, -1397, -1397, 934, -1397, 45, 226, 45, 899, 895, -1, -1397, -1397, -1397, -1397, 3391, 3391, 836, 610, 682, -1397, 41, 834, -1397, 684, 6346, -1397, -1397, 909, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 527, 705, 790, 629, -1397, 790, 790, 596, -1397, 2, -1397, -1397, -1397, 1002, -1397, 4345, 779, 1004, 869, 876, 790, 1018, 1016, 1018, -1397, -1397, -58, 4819, -1397, 820, 268, 1035, 1015, 1017, 1046, -1397, 4582, 646, 653, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 273, 6838, -1397, 6866, -1397, 793, -1397, -1397, 793, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 938, 938, -1397, 793, 3391, -1397, -1397, 843, 6894, 793, 793, 44, -1397, -1397, -1397, -1397, -1397, 793, -1397, -1397, -1397, 281, -1397, -1397, -1397, 6922, 793, 44, 44, -1397, 864, -1397, 793, -1397, 793, -1397, 44, 793, -1397, -1397, 44, 793, 44, 44, -1397, 44, 793, -1397, 44, 44, -1397, 793, -1397, 793, -1397, 692, -1397, 779, -1397, -1397, -1397, 1020, 911, -1397, 568, 1019, 1021, 118, -1397, -1397, 6346, 1056, 933, -1397, -1397, -1397, 6346, 5738, 77, -1397, -1397, 5738, 3391, 912, 1028, -1397, -1397, 3391, 6346, 572, -1397, 575, 1030, -1397, 640, 935, -1397, 488, -1397, 1026, -1397, -1397, 3630, 730, 985, 686, -1397, 3630, 3630, -1, 571, 571, -1397, -1397, 885, 45, 25, 3630, 3630, 878, -1397, -1397, -1397, -1397, -1397, 883, -1397, -1397, -1397, 57, 790, -1397, -1397, 84, -1397, -1397, 972, -1397, -1397, 58, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 266, -1397, 946, 875, -70, 140, 692, -1397, -1397, 1018, -1397, 790, 790, -1397, -1397, -1397, -1397, 4819, 4819, 71, 909, 4345, -1397, 4582, 4582, 4582, 4582, 1092, -1397, -1397, -1397, 5738, 3391, 6950, -1397, -1397, -1397, 793, 6978, -1397, -1397, -1397, -1397, 5738, 3391, 7006, -1397, 7034, -1397, 1447, 855, 692, -1397, 5738, 5738, 962, 477, 477, 569, -1397, -1397, -1397, -1397, -1397, 6346, 3391, 966, -1397, 6346, 3391, -1397, -1397, 3391, -1397, -1397, 705, 1013, -1397, -1397, 1013, -1397, -1397, 790, -1397, -1397, 54, -1397, -1397, -1397, -1397, 70, 500, -1397, -1397, -1397, -1397, -1397, 3630, 3630, 693, 60, -1397, -1397, -1397, -1397, -18, 909, 790, -1397, -1397, -1397, 3391, -1397, -1397, -1397, 589, 5738, 855, 4345, -1397, -1397, 946, 31, -1397, 876, -1397, -1397, 1078, -1397, -1397, 1087, -1397, -1397, -1397, -1397, -1397, 3391, -1397, 793, -1397, -1397, -1397, 793, -1397, -1397, 836, 855, -1397, -1397, 5738, 358, 641, 477, -1397, -1397, -1397, 992, -1397, -1397, 1115, -1397, 592, -1397, -1397, -1397, -1397, -1397, -1397, 693, 693, 3630, 593, 595, 909, 920, 608, -1397, -1397, 552, 552, -1397, -1397, -1397, -1397, 140, 855, -1397, -1397, -1397, 1018, -1397, 87, 558, -1397, -1397, 836, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 1101, 3391, 3391, -1397, 693, 1024, -1397, -1397, -1, -1397, 909, -1397, 69, 69, -1397, -1397, 946, -1397, 1088, -1397, -1397, -1397, -1397, 62, 66, 117, 249, -1397, -1397, -1397, -1397, 924, -1397, -1397, -1397, 855, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -1397, -1397, -1397, 1127, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 385, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 132, -1397, -1397, 1132, -1397, -513, -679, -1397, -1397, -1397, -1397, 380, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 120, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 133, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1150, -246, -1397, -1397, -1397, -1397, -1397, -1110, -1397, -1397, -1397, -1397, -1397, 613, 838, 841, -1397, 844, -1397, -1397, -517, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -954, -1397, -1397, -1397, -1397, -1397, -1397, -614, -159, -1397, 3, -1397, -1397, -1208, -220, 326, -592, 842, 1, -142, -1397, -1397, 929, -1397, -1397, -1397, 530, -1397, -1397, -1397, -1397, 528, -1397, -1397, -1397, 256, 48, -1397, -1397, -1397, -1397, 1037, 529, -1397, -1397, -1397, 73, -1397, -1397, -1397, -1397, 688, 689, -1397, 161, -158, -497, 293, -470, 288, 295, -1397, -1397, -1397, 774, -1397, -1397, -1397, -653, -237, -1397, -1397, -1397, 11, 294, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -6, -1397, -1397, -1397, -1397, -656, -1397, -1328, -384, -1397, -1397, -1397, -1397, -1397, 645, 252, -1397, -116, -1397, -250, -1397, -571, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 234, -1397, -1397, -1397, -1397, -1397, -1397, 1033, -1397, 492, -1397, -613, -620, -1397, 354, 129, -423, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 773, -1397, 776, -1397, 765, 725, 303, -667, -856, -1397, -1397, -1397, 72, 63, -148, 287, -1397, -1397, -1397, -128, -1397, -1303, -1397, -269, -140, 282, 40, -1397, -1397, -1397, -1397, -277, -1319, -1397, -281, -773, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 581, -1397, -1397, -1397, -1122, -395, -371, -1397, -1396, -1322, 37, -1397, -174, -1397, -1397, -1397, -1088, -245, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 16, -22 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -318 static const yytype_int16 yytable[] = { 380, 457, 380, 672, 837, 864, 514, 866, 1175, 20, 869, 1309, 1211, 901, 709, 601, 900, 1371, 386, 881, 1355, 728, 729, 730, 1457, 731, 732, 733, 1470, 1231, 586, 673, 674, 675, 676, 734, 399, 735, 379, 393, 736, 1109, 1366, 586, 609, 438, 613, 329, 883, 1487, 882, 618, 1162, 614, 620, 460, 463, 1494, 623, 960, 962, 911, 912, 501, 1379, 1416, 505, 29, 1477, 592, 980, 1212, 984, 498, 499, 897, 1299, 29, 1388, 882, 22, 1347, 609, 898, 1316, 897, 1434, 36, 37, 38, 593, 1551, 882, 898, 498, 499, 22, 36, 37, 38, 706, 1334, 1015, 697, 498, 499, 945, 1606, 410, 1472, 882, 956, 1022, 1609, 882, 400, 411, 1031, 1334, 1033, 453, 1036, 502, 1037, 1472, 1042, 1463, 1045, 454, 1048, 624, 1049, 839, 1054, 458, 1056, 401, 710, 888, 36, 37, 38, 25, 934, 402, 26, 27, 29, 1046, 1424, 830, 1058, 1387, 889, 524, 1348, 525, 840, 624, 1004, 98, 1034, 1612, 513, 1488, 882, 882, 569, 1540, 1464, 98, 1348, 451, 698, 699, 1047, 1050, 1607, 522, 459, 1366, 700, 1610, 1473, 1035, 820, 1051, 1539, 882, 1604, 928, 961, 412, 1335, 1336, 1300, 98, 523, 1473, 570, 500, 411, 831, 16, 455, 1059, 1552, 1060, 1435, 1512, 1335, 1336, 98, 21, 503, 504, 830, 1375, 506, 594, 403, 1536, 461, 464, 1349, 1232, 528, 1233, 1585, 1589, 439, 380, 1613, 1478, 380, 1425, 1426, 867, 330, 615, 1469, 901, 954, 901, 900, 625, 900, 520, 1163, 1164, 521, 331, 332, 333, 334, 1599, 1317, 515, 830, 830, 1380, 1381, 1131, 1495, 1496, 890, 10, 1474, 831, 934, 1213, 1214, 1215, 626, 1600, 569, 1156, 412, 899, 1498, 1499, 1500, 1501, 1529, 1530, 1531, 1086, 1383, 899, 950, 951, 1202, 1171, 467, 1016, 1204, 1615, 882, 405, 1, 2, 3, 4, 5, 6, 380, 406, 1480, 401, 844, 831, 831, 831, 831, 981, 1302, 641, 957, 1017, 1296, 643, 1322, 937, 952, 645, 646, 647, 958, 564, 648, 11, 448, 1226, 1303, 1550, 516, 982, 983, 1023, 29, 1323, 517, 942, 566, 1243, 1038, 1324, 897, 1194, 943, 1542, 449, 450, 1203, 737, 898, 738, 1527, 1205, 36, 37, 38, 1208, 739, 740, 1616, 1066, 325, 1039, 741, 1024, 1040, 1041, 380, 1072, 1025, 1026, 1013, 1067, 380, 1014, 694, 742, 743, 694, 467, 815, 816, 380, 1068, 416, 1073, 380, 380, 467, 944, 815, 816, 417, 467, 830, 847, 1563, 587, 1564, 467, 1043, 591, 380, 1249, 852, 580, 602, 380, 1028, 857, 380, 1577, 611, 327, 380, 858, 1325, 1326, 1327, 330, 566, 1328, 1329, 1044, 612, 380, 98, 558, 616, 617, 1029, 1030, 331, 332, 333, 334, 559, 380, 467, 1281, 379, 627, 628, 629, 971, 379, 831, 467, 379, 637, 901, 1601, 379, 900, 862, 467, 972, 901, 467, 901, 900, 526, 900, 863, 390, 1076, 973, 861, 467, 975, 467, 875, 527, 467, 880, 644, 581, 871, 872, 976, 977, 1358, 467, 1236, 1361, 1362, 916, 965, 966, 1077, 1237, 978, 979, 1283, 1284, 1229, 1240, 711, 1078, 1376, 528, 1076, 891, 1237, 380, 712, 1245, 1246, 686, 967, 968, 529, 969, 689, 690, 1254, 1399, 691, 917, 1258, 467, 1260, 1261, 821, 1263, 842, 918, 1266, 1267, 467, 1555, 822, 467, 843, 1357, 1274, 1091, 467, 1404, 830, 391, 380, 566, 29, 830, 380, 1153, 1394, 1092, 830, 924, 925, 926, 830, 1411, 1407, 1169, 1395, 1396, 1112, 1174, 919, 1413, 1367, 819, 1408, 1415, 467, 467, 1397, 1398, 467, 467, 467, 1590, 873, 394, 1409, 1410, 379, 878, 874, 920, 846, 1304, 467, 920, 1315, 879, 922, 921, 831, 418, 380, 927, 1420, 831, 923, 854, 1442, 830, 831, 1442, 1421, 407, 831, 1132, 1443, 1340, 1133, 1444, 380, 1134, 1135, 1136, 1137, 821, 946, 408, 1442, 1574, 380, 1574, 947, 1547, 876, 877, 1572, 1575, 419, 1576, 379, 713, 714, 715, 1579, 830, 654, 655, 656, 657, 658, 659, 1580, 661, 662, 663, 664, 665, 666, 667, 668, 831, 380, 380, 380, 380, 514, 315, 379, 468, 469, 316, 470, 471, 472, 409, 473, 474, 1433, 1389, 901, 1138, 1436, 900, 1471, 1390, 1391, 953, 1566, 632, 1567, 954, 1392, 638, 387, 388, 1427, 831, 380, 1113, 1114, 1115, 716, 380, 1341, 1342, 1343, 1344, 414, 1195, 1196, 1197, 415, 1489, 1490, 1139, 1529, 1530, 1531, 1581, 1079, 1582, 507, 508, 561, 562, 576, 577, 726, 727, 498, 499, 420, 1140, 1141, 421, 566, 1142, 930, 931, 422, 949, 940, 941, 423, 1095, 1096, 1097, 424, 717, 938, 939, 963, 964, 776, 777, 891, 718, 719, 720, 721, 722, 1052, 1053, 1070, 1071, 1105, 1106, 425, 1008, 1223, 1345, 1346, 1352, 1353, 1359, 1360, 1363, 1364, 426, 1503, 694, 1486, 427, 1528, 428, 1446, 1447, 1453, 1454, 1458, 1459, 1507, 429, 670, 671, 677, 678, 1057, 430, 723, 433, 1513, 1514, 380, 679, 680, 396, 397, 1543, 724, 1602, 1603, 687, 688, 914, 914, 434, 435, 442, 446, 447, 329, 380, 896, 465, 462, 1511, 466, 467, 480, 1525, 1456, 481, 497, -222, 509, 511, 510, 512, 518, 1465, 1466, 519, 316, 567, 532, 573, 401, 579, 588, 405, 410, 1451, 1516, 1517, 416, 453, 621, 380, 639, 603, 590, -222, 619, 1548, 597, 598, 610, 622, 380, -222, 630, 642, 649, 830, 631, 650, 669, 830, 651, 681, 682, 683, 684, 703, 1094, 704, 705, 706, 818, 836, 848, 838, 1549, 849, 850, 851, 1562, 1554, 855, 1273, 1110, 856, 1588, 859, 882, 1429, 1103, 884, 886, 885, 895, 1432, 929, 887, 932, 380, 934, 936, 1007, 1008, 569, 1561, 1063, 1441, 1019, 831, 1003, 1012, 1021, 831, 1032, 1055, 380, 1074, 1064, 1168, 380, 1065, 1083, 1287, 380, 1084, 1291, 1292, 1293, 1085, 380, 380, 1569, 1301, 1081, 1086, 380, 379, 1098, 1099, 1090, 380, 1080, 1584, 1586, 380, 1193, 891, 1117, 1104, 1119, 1534, 1535, 1122, 1161, 1124, 1126, 1121, 566, 830, 1129, 1154, 566, 1130, 1152, 1206, 1155, 1159, 1160, 1209, 1170, 830, 1338, 1339, 1167, 1172, 1176, 1177, 1199, 1560, 1220, 830, 830, 1276, 1217, 1608, 1611, 1614, 1617, 1157, 1158, 1222, 380, 1221, 1372, 1247, 1277, 1619, 1227, 1228, 1278, 1286, 1288, 1235, 1294, 1305, 1289, 1306, 1310, 1312, 1244, 831, 1314, 1319, 1318, 1320, 1250, 1333, 1252, 98, 1370, 1255, 1275, 831, 1573, 1259, 1373, 1374, 380, 1591, 1264, 1519, 1351, 831, 831, 1522, 1377, 1269, 1378, 1384, 1385, 1271, 1386, 1387, 830, 1402, 1418, 1422, 1419, 1423, 1430, 1431, 1438, -222, 1439, 1445, -222, -222, -222, -222, 1450, -222, -222, 1467, -222, 1448, 1452, -222, -222, -222, -222, -222, -222, -222, -222, -222, 1405, 830, -222, -222, -222, 1468, 1476, 1482, -222, -222, 713, 714, 715, 482, 483, 484, 485, 486, 487, 1484, 831, 1414, 1502, 1515, 488, 1417, 380, 1521, 1556, 1557, -222, -222, 1570, -222, 1571, 1578, 1596, 489, 1605, 1618, 15, 974, -222, 1219, 14, -222, -222, 1348, 1006, 1241, 1497, 1224, 707, 831, 380, 1481, 1061, 475, 865, 868, 1108, 1311, 870, 445, 1354, 533, 380, 1437, 534, 1298, 1193, 716, 1440, 555, 535, 380, 1455, 652, 1428, 653, 702, 1128, 1382, 1518, 452, 915, 1062, 636, 606, 595, 1093, 1193, 596, 1332, 1462, 1111, 1449, 1533, 1461, 1123, 1321, 1356, 1538, 1545, 860, 1485, 1526, 1369, 490, 491, 492, 493, 494, 495, 0, 0, 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, 718, 719, 720, 721, 722, 0, 1403, 0, 0, 0, 0, -317, -317, 757, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 723, 496, 0, 0, 0, 0, 380, -317, 0, 0, 724, 0, 380, 380, 0, 0, 0, 380, 0, 0, -317, -317, -317, -317, 380, 0, 0, 0, 0, 1520, 0, 0, 0, 1523, 0, 11, 1524, 0, 776, 777, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 1207, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 1546, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 380, 0, 0, 380, 0, 380, 380, 380, 380, 0, 0, 0, 0, 380, 0, 1491, 1492, 0, 0, 1193, 0, 1193, 1193, 1193, 1193, 380, 11, 0, 0, 776, 777, 0, 0, 0, 0, 380, 380, 1504, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 1508, 380, 0, 0, 0, 1210, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 1597, 1598, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 379, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 11, 0, 0, 776, 777, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1558, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 0, 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 693, 11, 0, 0, 776, 777, 0, 0, 1100, 0, 1101, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 845, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 853, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 536, 150, 151, 152, 153, 154, 0, 155, 537, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 1183, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 1184, 1185, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 1183, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 1279, 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, 823, 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 824, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 582, 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, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 633, 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, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 824, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 600, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 0, 120, 0, 121, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 0, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 0, 159, 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, 1230, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1242, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1251, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1253, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1256, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1257, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1262, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1265, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1268, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1270, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1272, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1400, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1401, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1406, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1412, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1505, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1506, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1509, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1510, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 985, 0, 773, 774, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 776, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 986, 0, 987, 988, 989, 990, 991, 992, 993, 0, 0, 0, 11, 0, 0, 776, 777, 994, 995, 996, 997, 998, 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 1001, 1002 }; static const yytype_int16 yycheck[] = { 22, 160, 24, 500, 575, 618, 243, 620, 962, 6, 623, 1099, 63, 669, 531, 410, 669, 1167, 24, 639, 1142, 538, 539, 540, 1327, 542, 543, 544, 1347, 122, 401, 501, 502, 503, 504, 552, 35, 554, 22, 28, 557, 897, 40, 414, 415, 9, 430, 40, 640, 1371, 48, 435, 122, 33, 438, 59, 59, 1385, 442, 726, 727, 681, 682, 11, 122, 1273, 12, 32, 10, 41, 749, 122, 751, 34, 35, 40, 12, 32, 1188, 48, 9, 40, 453, 48, 49, 40, 9, 52, 53, 54, 62, 1487, 48, 48, 34, 35, 9, 52, 53, 54, 50, 119, 781, 152, 34, 35, 720, 45, 40, 40, 48, 725, 791, 47, 48, 19, 48, 796, 119, 798, 40, 800, 70, 802, 40, 804, 101, 806, 48, 808, 33, 248, 105, 812, 59, 814, 40, 532, 225, 52, 53, 54, 24, 125, 48, 27, 28, 32, 280, 31, 573, 818, 12, 240, 296, 114, 298, 130, 33, 115, 125, 280, 45, 48, 1372, 48, 48, 9, 1471, 144, 125, 114, 19, 222, 223, 307, 293, 115, 21, 104, 40, 230, 116, 114, 303, 569, 303, 205, 48, 1585, 707, 173, 124, 211, 212, 131, 125, 40, 114, 41, 161, 48, 573, 190, 124, 819, 175, 820, 131, 1417, 211, 212, 125, 0, 162, 163, 639, 1171, 164, 191, 124, 161, 226, 226, 183, 318, 176, 320, 1550, 1557, 194, 253, 115, 175, 256, 117, 118, 621, 231, 219, 183, 897, 240, 899, 897, 148, 899, 253, 318, 319, 256, 244, 245, 246, 247, 1574, 1112, 246, 681, 682, 318, 319, 929, 1385, 1386, 649, 249, 183, 639, 125, 321, 322, 323, 148, 1577, 9, 943, 124, 243, 1389, 1390, 1391, 1392, 213, 214, 215, 150, 19, 243, 68, 69, 970, 959, 33, 279, 974, 47, 48, 40, 3, 4, 5, 6, 7, 8, 327, 48, 41, 40, 49, 681, 682, 683, 684, 280, 23, 458, 173, 303, 183, 462, 95, 717, 102, 466, 467, 468, 183, 325, 471, 313, 48, 1011, 41, 1484, 30, 302, 303, 271, 32, 114, 36, 138, 327, 1023, 280, 120, 40, 968, 145, 1472, 68, 69, 973, 248, 48, 250, 1445, 978, 52, 53, 54, 982, 257, 258, 116, 11, 180, 303, 263, 303, 306, 307, 395, 25, 308, 309, 303, 23, 401, 306, 523, 276, 277, 526, 33, 192, 193, 410, 34, 40, 42, 414, 415, 33, 191, 192, 193, 48, 33, 823, 49, 44, 402, 46, 33, 280, 406, 430, 1029, 49, 395, 411, 435, 280, 49, 438, 1539, 417, 173, 442, 49, 196, 197, 198, 231, 410, 201, 202, 303, 429, 453, 125, 278, 433, 434, 302, 303, 244, 245, 246, 247, 287, 465, 33, 1065, 430, 446, 447, 448, 280, 435, 823, 33, 438, 454, 1112, 1579, 442, 1112, 49, 33, 292, 1119, 33, 1121, 1119, 40, 1121, 49, 129, 842, 302, 615, 33, 280, 33, 49, 51, 33, 49, 465, 41, 625, 626, 290, 291, 1154, 33, 248, 1157, 1158, 49, 279, 280, 49, 255, 302, 303, 1070, 1071, 1014, 248, 180, 49, 1172, 176, 878, 650, 255, 532, 188, 1025, 1026, 513, 301, 302, 187, 304, 518, 519, 1034, 1201, 522, 22, 1038, 33, 1040, 1041, 33, 1043, 33, 22, 1046, 1047, 33, 1490, 41, 33, 41, 1153, 1058, 49, 33, 1223, 968, 107, 569, 532, 32, 973, 573, 936, 280, 49, 978, 698, 699, 700, 982, 1239, 280, 957, 290, 291, 48, 961, 22, 1247, 1161, 567, 290, 1251, 33, 33, 302, 303, 33, 33, 33, 22, 41, 105, 302, 303, 569, 33, 41, 33, 588, 49, 33, 33, 49, 41, 220, 41, 968, 19, 621, 41, 33, 973, 228, 603, 33, 1029, 978, 33, 41, 40, 982, 85, 41, 1131, 88, 41, 639, 91, 92, 93, 94, 33, 171, 40, 33, 33, 649, 33, 177, 41, 630, 631, 41, 41, 19, 41, 621, 65, 66, 67, 33, 1065, 482, 483, 484, 485, 486, 487, 41, 489, 490, 491, 492, 493, 494, 495, 496, 1029, 681, 682, 683, 684, 900, 186, 649, 131, 132, 190, 134, 135, 136, 40, 138, 139, 1295, 30, 1333, 151, 1299, 1333, 1348, 36, 30, 236, 44, 452, 46, 240, 36, 456, 122, 123, 1285, 1065, 717, 208, 209, 210, 126, 722, 91, 92, 93, 94, 40, 52, 53, 54, 40, 1377, 1378, 185, 213, 214, 215, 164, 859, 166, 165, 166, 314, 315, 105, 106, 189, 190, 34, 35, 19, 203, 204, 19, 717, 207, 171, 172, 19, 722, 120, 121, 19, 884, 885, 886, 19, 173, 171, 172, 288, 289, 316, 317, 895, 181, 182, 183, 184, 185, 293, 294, 122, 123, 140, 141, 19, 260, 261, 86, 87, 86, 87, 143, 144, 178, 179, 19, 1397, 920, 1371, 19, 1448, 19, 143, 144, 99, 100, 216, 217, 1409, 48, 498, 499, 505, 506, 817, 9, 224, 48, 1419, 1420, 823, 507, 508, 30, 31, 1473, 234, 1581, 1582, 516, 517, 683, 684, 48, 9, 9, 40, 40, 40, 842, 660, 234, 59, 1416, 239, 33, 156, 1441, 1326, 157, 195, 12, 158, 160, 169, 168, 21, 1335, 1336, 21, 190, 180, 173, 152, 40, 29, 48, 40, 40, 1320, 1422, 1423, 40, 40, 9, 878, 152, 48, 41, 40, 33, 1482, 41, 41, 41, 33, 889, 48, 48, 159, 9, 1295, 48, 137, 63, 1299, 138, 159, 152, 152, 152, 52, 882, 125, 125, 50, 37, 105, 41, 106, 1483, 41, 41, 41, 1515, 1488, 41, 1057, 898, 41, 1557, 10, 48, 1288, 889, 225, 152, 59, 137, 1294, 37, 225, 84, 936, 125, 9, 303, 260, 9, 1512, 40, 1306, 280, 1295, 248, 305, 248, 1299, 303, 303, 953, 130, 40, 956, 957, 40, 10, 1080, 961, 10, 1083, 1084, 1085, 133, 967, 968, 1518, 1090, 114, 150, 973, 936, 40, 40, 154, 978, 131, 1550, 1551, 982, 967, 1104, 90, 33, 241, 1463, 1464, 83, 953, 199, 23, 242, 957, 1397, 230, 37, 961, 230, 84, 979, 142, 33, 125, 983, 191, 1409, 1129, 1130, 235, 114, 289, 288, 257, 1511, 248, 1419, 1420, 41, 122, 1592, 1593, 1594, 1595, 173, 173, 305, 1029, 1007, 1168, 272, 41, 1604, 1012, 1013, 41, 41, 9, 1017, 9, 225, 194, 9, 225, 142, 1024, 1397, 41, 213, 97, 96, 1030, 133, 1032, 125, 33, 1035, 1059, 1409, 1536, 1039, 37, 173, 1065, 1561, 1044, 1430, 213, 1419, 1420, 1434, 33, 1051, 37, 19, 40, 1055, 40, 12, 1482, 122, 41, 43, 152, 43, 9, 133, 155, 248, 41, 40, 251, 252, 253, 254, 49, 256, 257, 200, 259, 145, 96, 262, 263, 264, 265, 266, 267, 268, 269, 270, 248, 1515, 273, 274, 275, 213, 125, 152, 279, 280, 65, 66, 67, 13, 14, 15, 16, 17, 18, 235, 1482, 248, 21, 152, 24, 1275, 1139, 152, 41, 33, 301, 302, 131, 304, 10, 206, 26, 37, 41, 206, 4, 747, 313, 1002, 3, 316, 317, 114, 759, 1020, 1387, 1009, 530, 1515, 1167, 1366, 821, 219, 619, 622, 895, 1104, 624, 117, 1139, 318, 1179, 1300, 318, 1087, 1167, 126, 1305, 322, 321, 1188, 1325, 480, 1285, 481, 526, 920, 1179, 1424, 142, 684, 823, 453, 414, 407, 878, 1188, 407, 1121, 1333, 899, 1315, 1457, 1329, 908, 1119, 1152, 1470, 1475, 614, 1370, 1442, 1161, 108, 109, 110, 111, 112, 113, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, 184, 185, -1, 1222, -1, -1, -1, -1, 192, 193, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, 224, 170, -1, -1, -1, -1, 1288, 231, -1, -1, 234, -1, 1294, 1295, -1, -1, -1, 1299, -1, -1, 244, 245, 246, 247, 1306, -1, -1, -1, -1, 1431, -1, -1, -1, 1435, -1, 313, 1438, -1, 316, 317, -1, -1, -1, -1, 1288, -1, -1, -1, -1, -1, 1294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1306, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, 1477, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1383, 1384, -1, -1, 1387, -1, 1389, 1390, 1391, 1392, -1, -1, -1, -1, 1397, -1, 1383, 1384, -1, -1, 1387, -1, 1389, 1390, 1391, 1392, 1409, 313, -1, -1, 316, 317, -1, -1, -1, -1, 1419, 1420, 1398, -1, -1, -1, -1, -1, -1, -1, -1, 1430, -1, -1, 1410, 1434, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, 1570, 1571, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, 1430, -1, -1, -1, 1434, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1482, -1, 1484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1484, -1, -1, 313, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, 1515, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, -1, -1, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 313, -1, -1, 316, 317, -1, -1, 318, -1, 320, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, -1, 150, -1, 152, -1, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, 248, -1, 273, 274, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, -1, 313, -1, -1, 316, 317, 295, 296, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, -1, -1, -1, 310, 311, 312 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 325, 326, 327, 249, 313, 335, 336, 358, 327, 190, 331, 332, 330, 453, 0, 9, 11, 20, 24, 27, 28, 30, 32, 34, 35, 36, 38, 39, 40, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 112, 113, 114, 120, 121, 122, 125, 126, 127, 128, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 460, 461, 462, 463, 464, 465, 467, 472, 483, 486, 492, 493, 494, 495, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 536, 537, 538, 539, 540, 543, 544, 545, 556, 558, 560, 561, 562, 565, 567, 568, 569, 570, 580, 581, 582, 583, 584, 585, 586, 587, 589, 591, 593, 634, 635, 636, 637, 638, 639, 640, 643, 644, 645, 646, 648, 655, 656, 660, 661, 662, 663, 669, 670, 186, 190, 419, 420, 423, 424, 425, 426, 337, 359, 180, 328, 173, 333, 40, 231, 244, 245, 246, 247, 451, 454, 455, 55, 56, 57, 58, 59, 60, 61, 62, 63, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 103, 120, 121, 132, 134, 146, 147, 149, 153, 167, 173, 191, 193, 218, 221, 227, 229, 237, 238, 535, 669, 670, 55, 56, 60, 63, 191, 527, 122, 123, 546, 129, 107, 557, 516, 105, 548, 507, 507, 41, 461, 19, 40, 48, 124, 566, 40, 48, 40, 40, 40, 40, 48, 124, 571, 40, 40, 40, 48, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 48, 9, 641, 642, 48, 48, 9, 468, 469, 9, 194, 473, 474, 9, 484, 485, 484, 40, 40, 48, 68, 69, 19, 571, 40, 48, 124, 563, 451, 59, 104, 59, 226, 59, 59, 226, 234, 239, 33, 131, 132, 134, 135, 136, 138, 139, 465, 466, 475, 476, 477, 156, 157, 13, 14, 15, 16, 17, 18, 24, 37, 108, 109, 110, 111, 112, 113, 170, 195, 34, 35, 161, 11, 70, 162, 163, 12, 164, 165, 166, 158, 169, 160, 168, 48, 512, 516, 30, 36, 21, 21, 527, 527, 21, 40, 462, 462, 40, 51, 176, 187, 421, 422, 173, 423, 424, 426, 180, 188, 427, 428, 430, 431, 432, 433, 434, 435, 436, 437, 440, 441, 442, 445, 446, 448, 449, 460, 633, 649, 278, 287, 338, 314, 315, 361, 453, 647, 669, 180, 334, 9, 41, 457, 458, 152, 456, 547, 105, 106, 559, 29, 669, 41, 11, 41, 588, 595, 648, 461, 48, 564, 41, 461, 41, 62, 191, 591, 593, 41, 41, 41, 125, 647, 461, 48, 572, 590, 595, 594, 596, 648, 41, 461, 461, 535, 33, 219, 461, 461, 535, 33, 535, 9, 33, 535, 33, 148, 148, 461, 461, 461, 48, 48, 564, 11, 41, 592, 596, 461, 564, 152, 575, 462, 159, 462, 669, 462, 462, 462, 462, 9, 137, 138, 494, 495, 497, 497, 497, 497, 497, 497, 496, 497, 497, 497, 497, 497, 497, 497, 497, 63, 500, 500, 499, 501, 501, 501, 501, 502, 502, 503, 503, 159, 152, 152, 152, 49, 461, 517, 517, 461, 461, 461, 23, 41, 462, 541, 542, 152, 222, 223, 230, 41, 541, 52, 125, 125, 50, 422, 429, 429, 647, 180, 188, 65, 66, 67, 126, 173, 181, 182, 183, 184, 185, 224, 234, 453, 189, 190, 429, 429, 429, 429, 429, 429, 429, 429, 429, 248, 250, 257, 258, 263, 276, 277, 339, 340, 343, 344, 348, 349, 350, 351, 352, 353, 356, 357, 360, 248, 251, 252, 253, 254, 256, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 273, 274, 275, 316, 317, 358, 362, 363, 364, 365, 366, 367, 368, 371, 372, 376, 377, 378, 379, 380, 385, 386, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 192, 193, 450, 37, 453, 535, 33, 41, 40, 64, 174, 193, 576, 578, 579, 580, 648, 664, 665, 666, 668, 105, 548, 106, 105, 130, 513, 33, 41, 49, 49, 461, 49, 41, 41, 41, 41, 49, 49, 461, 41, 41, 49, 49, 10, 642, 462, 49, 49, 575, 469, 575, 535, 474, 575, 485, 462, 462, 41, 41, 49, 461, 461, 33, 41, 49, 576, 48, 459, 225, 59, 152, 225, 225, 240, 535, 462, 478, 479, 480, 137, 497, 40, 48, 243, 511, 532, 599, 602, 603, 604, 605, 606, 607, 608, 609, 576, 576, 573, 579, 573, 49, 22, 22, 22, 33, 41, 220, 228, 462, 462, 462, 41, 429, 37, 171, 172, 84, 616, 125, 598, 9, 647, 171, 172, 120, 121, 138, 145, 191, 450, 171, 177, 438, 669, 68, 69, 102, 236, 240, 652, 450, 173, 183, 444, 598, 173, 598, 288, 289, 279, 280, 301, 302, 304, 345, 280, 292, 302, 345, 280, 290, 291, 302, 303, 361, 280, 302, 303, 361, 248, 278, 280, 281, 282, 283, 284, 285, 286, 295, 296, 297, 298, 299, 300, 310, 311, 312, 248, 115, 459, 366, 303, 260, 381, 382, 383, 305, 303, 306, 361, 279, 303, 370, 280, 373, 248, 361, 271, 303, 308, 309, 387, 280, 302, 303, 361, 303, 361, 280, 303, 361, 361, 280, 303, 306, 307, 361, 280, 303, 361, 280, 307, 361, 248, 293, 303, 293, 294, 361, 303, 361, 670, 598, 450, 575, 458, 578, 40, 40, 40, 11, 23, 34, 577, 122, 123, 25, 42, 130, 597, 648, 49, 49, 462, 131, 114, 470, 10, 10, 133, 150, 487, 489, 490, 154, 49, 49, 597, 461, 462, 462, 462, 40, 40, 318, 320, 657, 669, 33, 140, 141, 481, 478, 599, 461, 606, 48, 208, 209, 210, 610, 90, 632, 241, 601, 242, 83, 616, 199, 611, 23, 574, 542, 230, 230, 598, 85, 88, 91, 92, 93, 94, 151, 185, 203, 204, 207, 617, 618, 619, 620, 621, 624, 629, 630, 631, 84, 535, 37, 142, 598, 173, 173, 33, 125, 669, 122, 318, 319, 653, 654, 235, 670, 647, 191, 598, 114, 443, 647, 443, 289, 288, 341, 20, 30, 36, 55, 71, 232, 233, 409, 410, 411, 412, 415, 416, 417, 527, 576, 52, 53, 54, 342, 257, 346, 347, 361, 576, 361, 576, 461, 248, 576, 461, 248, 63, 122, 321, 322, 323, 354, 122, 355, 355, 248, 461, 305, 261, 382, 384, 361, 461, 461, 360, 248, 122, 318, 320, 369, 461, 248, 255, 374, 375, 248, 374, 248, 361, 461, 360, 360, 272, 388, 576, 461, 248, 461, 248, 360, 461, 248, 248, 360, 461, 360, 360, 248, 360, 461, 248, 360, 360, 248, 461, 248, 461, 248, 451, 429, 670, 41, 41, 41, 11, 41, 576, 667, 548, 548, 555, 41, 462, 9, 194, 471, 462, 462, 462, 9, 491, 183, 488, 489, 12, 131, 462, 23, 41, 49, 225, 9, 658, 659, 658, 225, 479, 142, 482, 41, 49, 49, 599, 97, 213, 96, 603, 95, 114, 120, 196, 197, 198, 201, 202, 600, 613, 604, 133, 119, 211, 212, 612, 462, 462, 429, 91, 92, 93, 94, 86, 87, 40, 114, 183, 623, 213, 86, 87, 669, 646, 617, 575, 598, 143, 144, 598, 598, 178, 179, 439, 40, 459, 651, 652, 33, 409, 451, 37, 173, 443, 598, 33, 37, 122, 318, 319, 527, 19, 19, 40, 40, 12, 416, 30, 36, 30, 36, 418, 280, 290, 291, 302, 303, 361, 248, 248, 122, 461, 361, 248, 248, 280, 290, 302, 303, 361, 248, 361, 248, 361, 456, 451, 41, 152, 33, 41, 43, 43, 31, 117, 118, 459, 544, 535, 9, 133, 535, 576, 9, 131, 576, 462, 155, 41, 462, 535, 33, 41, 41, 40, 143, 144, 145, 610, 49, 501, 96, 99, 100, 498, 499, 612, 216, 217, 615, 615, 605, 101, 144, 499, 499, 200, 213, 183, 623, 598, 40, 114, 183, 626, 125, 10, 175, 447, 41, 457, 152, 650, 235, 654, 459, 651, 456, 598, 598, 527, 527, 413, 534, 646, 646, 410, 416, 416, 416, 416, 21, 576, 461, 248, 248, 576, 461, 248, 248, 459, 456, 576, 576, 152, 548, 548, 546, 535, 462, 152, 535, 462, 462, 575, 659, 658, 598, 213, 214, 215, 614, 614, 499, 499, 161, 622, 622, 205, 612, 627, 646, 598, 625, 625, 462, 41, 576, 459, 409, 650, 175, 452, 459, 443, 41, 33, 461, 329, 429, 459, 576, 44, 46, 549, 44, 46, 550, 548, 131, 10, 41, 499, 33, 41, 41, 646, 206, 33, 41, 164, 166, 628, 459, 651, 459, 414, 532, 534, 22, 429, 551, 553, 552, 554, 26, 462, 462, 623, 612, 646, 626, 626, 650, 41, 45, 115, 459, 47, 116, 459, 45, 115, 459, 47, 116, 459, 206, 459 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) #else # define YYLEX yylex (&yylval, &yylloc) #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; #endif { if (!yyvaluep) return; YYUSE (yylocationp); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) yytype_int16 *bottom; yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) #else static void yy_reduce_print (yyvsp, yylsp, yyrule) YYSTYPE *yyvsp; YYLTYPE *yylsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) ); fprintf (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, yylsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into YYRESULT an error message about the unexpected token YYCHAR while in state YYSTATE. Return the number of bytes copied, including the terminating null byte. If YYRESULT is null, do not copy anything; just return the number of bytes that would be copied. As a special case, return 0 if an ordinary "syntax error" message will do. Return YYSIZE_MAXIMUM if overflow occurs during size calculation. */ static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; # if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); # endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; if (yysize_overflow) return YYSIZE_MAXIMUM; if (yyresult) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yyresult; int yyi = 0; while ((*yyp = *yyf) != '\0') { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } } return yysize; } } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) #else static void yydestruct (yymsg, yytype, yyvaluep, yylocationp) const char *yymsg; int yytype; YYSTYPE *yyvaluep; YYLTYPE *yylocationp; #endif { YYUSE (yyvaluep); YYUSE (yylocationp); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /* Location data for the look-ahead symbol. */ YYLTYPE yylloc; int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss = yyssa; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[2]; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; yylsp = yyls; #if YYLTYPE_IS_TRIVIAL /* Initialize the default location before parsing starts. */ yylloc.first_line = yylloc.last_line = 1; yylloc.first_column = yylloc.last_column = 0; #endif goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyls = yyls1; yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); YYSTACK_RELOCATE (yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; *++yylsp = yylloc; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); YY_REDUCE_PRINT (yyn); switch (yyn) { case 8: #line 775 "../src/parser/XQParser.y" { SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } break; case 9: #line 782 "../src/parser/XQParser.y" { SET_BUILT_IN_NAMESPACE(XMLChXS, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); SET_BUILT_IN_NAMESPACE(XMLChXSI, SchemaSymbols::fgURI_XSI); SET_BUILT_IN_NAMESPACE(XMLChFN, XQFunction::XMLChFunctionURI); SET_BUILT_IN_NAMESPACE(XMLChLOCAL, XQUserFunction::XMLChXQueryLocalFunctionsURI); SET_BUILT_IN_NAMESPACE(XMLChERR, FunctionError::XMLChXQueryErrorURI); SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } break; case 10: #line 794 "../src/parser/XQParser.y" { (yyvsp[(2) - (8)].signature)->argSpecs = (yyvsp[(5) - (8)].argSpecs); (yyvsp[(2) - (8)].signature)->returnType = (yyvsp[(6) - (8)].sequenceType); QP->_function = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (8)].str), (yyvsp[(2) - (8)].signature), (yyvsp[(7) - (8)].astNode), true, MEMMGR)); } break; case 13: #line 805 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].signature)->argSpecs = (yyvsp[(2) - (3)].argSpecs); (yyvsp[(1) - (3)].signature)->returnType = (yyvsp[(3) - (3)].sequenceType); QP->_signature = (yyvsp[(1) - (3)].signature); } break; case 14: #line 814 "../src/parser/XQParser.y" { printf(" { 0, 0, 0, 0, 0 }\n};\n\n"); UTF8Str module(QP->_moduleName); printf("static const DelayedModule %s_module = { %s_file, %s_prefix, %s_uri, %s_functions };\n", module.str(), module.str(), module.str(), module.str(), module.str()); } break; case 15: #line 825 "../src/parser/XQParser.y" { QP->_moduleName = (yyvsp[(3) - (6)].str); UTF8Str module(QP->_moduleName); UTF8Str file(QP->_lexer->getFile()); printf("// Auto-generated by compile-delayed-module from %s\n", file.str()); printf("// DO NOT EDIT\n\n"); printf("// %s\n", file.str()); printf("static const XMLCh %s_file[] = { ", module.str()); const XMLCh *ptr = QP->_lexer->getFile(); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8((yyvsp[(3) - (6)].str))); printf("static const XMLCh %s_prefix[] = { ", module.str()); ptr = (yyvsp[(3) - (6)].str); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8((yyvsp[(5) - (6)].str))); printf("static const XMLCh %s_uri[] = { ", module.str()); ptr = (yyvsp[(5) - (6)].str); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); } break; case 16: #line 862 "../src/parser/XQParser.y" { printf("static const DelayedModule::FuncDef %s_functions[] = {\n", UTF8(QP->_moduleName)); } break; case 17: #line 866 "../src/parser/XQParser.y" { } break; case 18: #line 872 "../src/parser/XQParser.y" { XMLBuffer buf; const XMLCh *localname = XPath2NSUtils::getLocalName((yyvsp[(4) - (8)].str)); printf(" {\n \"%s\", %d, %s, %d, %d,\n", UTF8(localname), (int)((yyvsp[(5) - (8)].argSpecs) ? (yyvsp[(5) - (8)].argSpecs)->size() : 0), (yyvsp[(2) - (8)].signature)->privateOption == FunctionSignature::OP_TRUE ? "true" : "false", (yylsp[(1) - (8)]).first_line, (yylsp[(1) - (8)]).first_column); printf(" \""); const XMLCh *ptr = ((XQLexer*)QP->_lexer)->getQueryString() + (yylsp[(1) - (8)]).first_offset; const XMLCh *start = ptr; const XMLCh *end = ((XQLexer*)QP->_lexer)->getQueryString() + (yylsp[(8) - (8)]).last_offset; for(;ptr < end; ++ptr) { if(*ptr == '"') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\\"", UTF8(buf.getRawBuffer())); start = ptr + 1; } else if(*ptr == '\n') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\n\"\n \"", UTF8(buf.getRawBuffer())); start = ptr + 1; } } buf.set(start, ptr - start); printf("%s\\n\"\n", UTF8(buf.getRawBuffer())); printf(" },\n"); } break; case 19: #line 908 "../src/parser/XQParser.y" { SequenceType *optionalString = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, MEMMGR)); XQGlobalVariable *nameVar = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, optionalString, WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQSequence(MEMMGR)), MEMMGR, /*isParam*/true)); nameVar->setVariableURI(XQillaFunction::XMLChFunctionURI); nameVar->setVariableLocalName(var_name); QP->_query->addVariable(nameVar); ASTNode *nameVarRef1 = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR)); XQCallTemplate *call = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCallTemplate(nameVarRef1, 0, MEMMGR)); ASTNode *ci = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR)); ASTNode *apply = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQApplyTemplates(ci, 0, 0, MEMMGR)); VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR))); ASTNode *exists = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("exists"), args, MEMMGR)); QP->_query->setQueryBody(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQIf(exists, call, apply, MEMMGR))); } break; case 20: #line 939 "../src/parser/XQParser.y" { } break; case 21: #line 942 "../src/parser/XQParser.y" { // TBD Check for xsl:version attr - jpcs NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); VectorOfASTNodes *pattern = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); pattern->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR))); XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); XQUserFunction *func = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, pattern, signature, (yyvsp[(1) - (1)].astNode), MEMMGR)); func->setModeList(modelist); QP->_query->addFunction(func); } break; case 23: #line 966 "../src/parser/XQParser.y" { // TBD Check the value - jpcs } break; case 24: #line 970 "../src/parser/XQParser.y" { // TBD implement exclude-result-prefixes - jpcs } break; case 32: #line 988 "../src/parser/XQParser.y" { if((yyvsp[(1) - (4)].functDecl)->getName() == 0 && (yyvsp[(1) - (4)].functDecl)->getPattern() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:template declaration does not have either a {}name or {}match attribute, or both [err:XTSE0500]"); } if((yyvsp[(1) - (4)].functDecl)->getPattern() != 0 && (yyvsp[(1) - (4)].functDecl)->getModeList() == 0) { XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); (yyvsp[(1) - (4)].functDecl)->setModeList(modelist); } (yyvsp[(1) - (4)].functDecl)->getSignature()->argSpecs = (yyvsp[(2) - (4)].argSpecs); (yyvsp[(1) - (4)].functDecl)->setFunctionBody((yyvsp[(3) - (4)].parenExpr)); QP->_query->addFunction((yyvsp[(1) - (4)].functDecl)); } break; case 33: #line 1007 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, 0, signature, 0, MEMMGR)); } break; case 34: #line 1012 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->setPattern((yyvsp[(3) - (3)].itemList)); } break; case 35: #line 1017 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.functDecl)->setURI(uri); (yyval.functDecl)->setName(name); } break; case 36: #line 1024 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); // TBD priority - jpcs } break; case 37: #line 1029 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->setModeList((yyvsp[(3) - (3)].modeList)); } break; case 38: #line 1034 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->getSignature()->returnType = (yyvsp[(3) - (3)].sequenceType); } break; case 39: #line 1042 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); } break; case 40: #line 1046 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(uri, name))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 41: #line 1052 "../src/parser/XQParser.y" { (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 42: #line 1057 "../src/parser/XQParser.y" { (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 46: #line 1067 "../src/parser/XQParser.y" { if((yyvsp[(1) - (4)].functDecl)->getName() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:function declaration does not have a {}name attribute"); } (yyvsp[(1) - (4)].functDecl)->getSignature()->argSpecs = (yyvsp[(2) - (4)].argSpecs); (yyvsp[(1) - (4)].functDecl)->setFunctionBody((yyvsp[(3) - (4)].parenExpr)); QP->_query->addFunction((yyvsp[(1) - (4)].functDecl)); } break; case 47: #line 1080 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, signature, 0, true, MEMMGR)); } break; case 48: #line 1085 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.functDecl)->setURI(uri); (yyval.functDecl)->setName(name); } break; case 49: #line 1092 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->getSignature()->returnType = (yyvsp[(3) - (3)].sequenceType); } break; case 50: #line 1097 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); // TBD override - jpcs } break; case 51: #line 1105 "../src/parser/XQParser.y" { (yyval.argSpecs) = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); } break; case 52: #line 1109 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(1) - (2)].argSpecs); (yyval.argSpecs)->push_back((yyvsp[(2) - (2)].argSpec)); } break; case 53: #line 1117 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); if((yyval.argSpec)->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param instruction does not have a {}name attribute"); } if((yyval.argSpec)->getType() == 0) { (yyval.argSpec)->setType(WRAP((yylsp[(1) - (3)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR))); } // TBD default parameter values - jpcs /* if(!$2->getChildren().empty()) { */ /* if($$->value != 0) { */ /* yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); */ /* } */ /* $$->value = $2; */ /* } */ /* else if($$->value == 0) { */ /* yyerror(@1, "The xsl:with-param instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); */ /* } */ } break; case 54: #line 1144 "../src/parser/XQParser.y" { (yyval.argSpec) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) ArgumentSpec(0, 0, MEMMGR)); } break; case 55: #line 1148 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.argSpec)->setURI(uri); (yyval.argSpec)->setName(name); } break; case 56: #line 1155 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); // TBD default parameter values - jpcs /* $$->value = PRESERVE_NS(@2, $3); */ } break; case 57: #line 1161 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); (yyval.argSpec)->setType((yyvsp[(3) - (3)].sequenceType)); } break; case 58: #line 1166 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); // TBD required - jpcs } break; case 59: #line 1171 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); // TBD tunnel parameters - jpcs } break; case 60: #line 1180 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].globalVar)->isRequired()) { if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() != 0 || !(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { yyerror((yylsp[(1) - (3)]), "A required xsl:param declaration must be empty and must not specify a {}select attribute"); } } else { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (ASTNode*)(yyvsp[(1) - (3)].globalVar)->getVariableExpr(), (yyvsp[(2) - (3)].parenExpr), (SequenceType*)(yyvsp[(1) - (3)].globalVar)->getSequenceType())); if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } } if((yyvsp[(1) - (3)].globalVar)->getVariableLocalName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param declaration does not have a {}name attribute"); } QP->_query->addVariable((yyvsp[(1) - (3)].globalVar)); } break; case 61: #line 1204 "../src/parser/XQParser.y" { (yyval.globalVar) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR, /*isParam*/true)); } break; case 62: #line 1208 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].globalVar)->setVariableURI(uri); (yyvsp[(1) - (2)].globalVar)->setVariableLocalName(name); (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); } break; case 63: #line 1215 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 64: #line 1220 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setSequenceType((yyvsp[(3) - (3)].sequenceType)); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 65: #line 1225 "../src/parser/XQParser.y" { (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); (yyval.globalVar)->setRequired((yyvsp[(2) - (2)].boolean)); } break; case 66: #line 1230 "../src/parser/XQParser.y" { (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); if((yyvsp[(2) - (2)].boolean)) { yyerror((yylsp[(2) - (2)]), "An xsl:param declaration cannot have a {}tunnel attribute with a value of \"yes\""); } } break; case 67: #line 1241 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (ASTNode*)(yyvsp[(1) - (3)].globalVar)->getVariableExpr(), (yyvsp[(2) - (3)].parenExpr), (SequenceType*)(yyvsp[(1) - (3)].globalVar)->getSequenceType())); (yyvsp[(1) - (3)].globalVar)->setSequenceType(0); if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:variable declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } if((yyvsp[(1) - (3)].globalVar)->getVariableLocalName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:variable declaration does not have a {}name attribute"); } QP->_query->addVariable((yyvsp[(1) - (3)].globalVar)); } break; case 68: #line 1259 "../src/parser/XQParser.y" { (yyval.globalVar) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR)); } break; case 69: #line 1263 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].globalVar)->setVariableURI(uri); (yyvsp[(1) - (2)].globalVar)->setVariableLocalName(name); (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); } break; case 70: #line 1270 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 71: #line 1275 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setSequenceType((yyvsp[(3) - (3)].sequenceType)); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 72: #line 1283 "../src/parser/XQParser.y" { // TBD Add the output to the static context - jpcs } break; case 73: #line 1308 "../src/parser/XQParser.y" { } break; case 74: #line 1311 "../src/parser/XQParser.y" { } break; case 75: #line 1314 "../src/parser/XQParser.y" { } break; case 76: #line 1317 "../src/parser/XQParser.y" { } break; case 77: #line 1320 "../src/parser/XQParser.y" { } break; case 78: #line 1323 "../src/parser/XQParser.y" { } break; case 79: #line 1326 "../src/parser/XQParser.y" { } break; case 80: #line 1329 "../src/parser/XQParser.y" { } break; case 81: #line 1332 "../src/parser/XQParser.y" { } break; case 82: #line 1335 "../src/parser/XQParser.y" { } break; case 83: #line 1338 "../src/parser/XQParser.y" { } break; case 84: #line 1341 "../src/parser/XQParser.y" { } break; case 85: #line 1344 "../src/parser/XQParser.y" { } break; case 86: #line 1347 "../src/parser/XQParser.y" { } break; case 87: #line 1350 "../src/parser/XQParser.y" { } break; case 88: #line 1353 "../src/parser/XQParser.y" { } break; case 89: #line 1356 "../src/parser/XQParser.y" { } break; case 90: #line 1359 "../src/parser/XQParser.y" { } break; case 95: #line 1369 "../src/parser/XQParser.y" { // $$ = $1; const XMLCh *p = (yyvsp[(1) - (1)].str); while(*p && *p != ':') ++p; if(*p == 0) { yyerror((yylsp[(1) - (1)]), "The method for the xsl:output declaration does not have a prefix"); } } break; case 96: #line 1381 "../src/parser/XQParser.y" { } break; case 97: #line 1384 "../src/parser/XQParser.y" { } break; case 99: #line 1392 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (1)]), loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, 0, &loc); } break; case 100: #line 1397 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (2)]), loc); CONTEXT->addSchemaLocation((yyvsp[(2) - (2)].str), 0, &loc); } break; case 101: #line 1402 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(2) - (2)].str)); LOCATION((yylsp[(1) - (2)]), loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, &schemaLoc, &loc); } break; case 102: #line 1410 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(3) - (3)].str)); LOCATION((yylsp[(1) - (3)]), loc); CONTEXT->addSchemaLocation((yyvsp[(2) - (3)].str), &schemaLoc, &loc); } break; case 103: #line 1418 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(2) - (3)].str)); LOCATION((yylsp[(1) - (3)]), loc); CONTEXT->addSchemaLocation((yyvsp[(3) - (3)].str), &schemaLoc, &loc); } break; case 104: #line 1429 "../src/parser/XQParser.y" { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(3) - (4)].parenExpr)->getChildren(); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQElementConstructor((yyvsp[(1) - (4)].astNode), (yyvsp[(2) - (4)].itemList), children, MEMMGR)); } break; case 105: #line 1439 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 106: #line 1443 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (3)].itemList); ASTNode *attrItem = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQAttributeConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); (yyval.itemList)->push_back(attrItem); } break; case 107: #line 1450 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->insert((yyval.itemList)->begin(), (yyvsp[(2) - (2)].astNode)); } break; case 108: #line 1459 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 109: #line 1463 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].astNode))); } break; case 110: #line 1468 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 111: #line 1478 "../src/parser/XQParser.y" { (yyval.parenExpr) = WRAP((yyloc), new (MEMMGR) XQSequence(MEMMGR)); } break; case 112: #line 1482 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQTextConstructor((yyvsp[(2) - (2)].astNode), MEMMGR))); } break; case 113: #line 1487 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem((yyvsp[(2) - (2)].astNode)); } break; case 114: #line 1492 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem((yyvsp[(2) - (2)].astNode)); } break; case 133: #line 1521 "../src/parser/XQParser.y" { XQTextConstructor *text = (XQTextConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = text; if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(text->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:value-of instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } text->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(text->getValue() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:value-of instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); } } break; case 134: #line 1539 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTextConstructor(0, MEMMGR)); } break; case 135: #line 1543 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQTextConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 136: #line 1548 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); // TBD separator - jpcs /* ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); */ } break; case 137: #line 1557 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTextConstructor((yyvsp[(2) - (3)].astNode), MEMMGR)); } break; case 140: #line 1566 "../src/parser/XQParser.y" { // TBD xsl:sort - jpcs XQApplyTemplates *apply = (XQApplyTemplates*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = apply; apply->setArguments((yyvsp[(2) - (3)].templateArgs)); if(apply->getExpression() == 0) { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); apply->setExpression(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::CHILD, nt, MEMMGR))); } } break; case 141: #line 1586 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQApplyTemplates(0, 0, 0, MEMMGR)); } break; case 142: #line 1590 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQApplyTemplates*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 143: #line 1595 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQApplyTemplates*)(yyval.astNode))->setMode((yyvsp[(3) - (3)].mode)); } break; case 144: #line 1603 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(1) - (1)]), (yyvsp[(1) - (1)].str)); (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(uri, name)); } break; case 145: #line 1608 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 146: #line 1612 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } break; case 147: #line 1619 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } break; case 148: #line 1623 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (2)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(2) - (2)].templateArg)); } break; case 149: #line 1631 "../src/parser/XQParser.y" { XQCallTemplate *call = (XQCallTemplate*)(yyvsp[(1) - (3)].astNode); call->setArguments((yyvsp[(2) - (3)].templateArgs)); (yyval.astNode) = call; if(call->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:call-template instruction does not have a {}name attribute"); } } break; case 150: #line 1644 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCallTemplate((const XMLCh*)0, 0, MEMMGR)); } break; case 151: #line 1648 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); ((XQCallTemplate*)(yyval.astNode))->setURI(uri); ((XQCallTemplate*)(yyval.astNode))->setName(name); } break; case 152: #line 1658 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } break; case 153: #line 1662 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (2)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(2) - (2)].templateArg)); } break; case 154: #line 1670 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); if((yyval.templateArg)->name == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:with-param instruction does not have a {}name attribute"); } (yyvsp[(1) - (3)].templateArg)->value = XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].templateArg)->value, (yyvsp[(2) - (3)].parenExpr), (yyvsp[(1) - (3)].templateArg)->seqType); (yyvsp[(1) - (3)].templateArg)->seqType = 0; if((yyvsp[(1) - (3)].templateArg)->value == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } } break; case 155: #line 1688 "../src/parser/XQParser.y" { (yyval.templateArg) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTemplateArgument(0, 0, MEMMGR)); } break; case 156: #line 1692 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (2)].templateArg); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.templateArg)->uri = uri; (yyval.templateArg)->name = name; } break; case 157: #line 1699 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); (yyval.templateArg)->value = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 158: #line 1704 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); (yyval.templateArg)->seqType = (yyvsp[(3) - (3)].sequenceType); } break; case 159: #line 1709 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (2)].templateArg); // TBD tunnel parameters - jpcs } break; case 160: #line 1717 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); } break; case 161: #line 1723 "../src/parser/XQParser.y" { // TBD xsl:fallback - jpcs (yyval.astNode) = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 162: #line 1731 "../src/parser/XQParser.y" { ASTNode *empty = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQIf((yyvsp[(1) - (3)].astNode), (yyvsp[(2) - (3)].parenExpr), empty, MEMMGR)); } break; case 163: #line 1739 "../src/parser/XQParser.y" { (yyval.astNode) = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 164: #line 1746 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(2) - (4)].astNode); while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse((yyvsp[(3) - (4)].astNode)); (yyval.astNode) = (yyvsp[(2) - (4)].astNode); } break; case 165: #line 1760 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 166: #line 1764 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(1) - (2)].astNode); while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = (yyvsp[(1) - (2)].astNode); } break; case 167: #line 1778 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(1) - (3)].astNode); iff->setWhenTrue((yyvsp[(2) - (3)].parenExpr)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } break; case 168: #line 1787 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQIf(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)), 0, 0, MEMMGR)); } break; case 169: #line 1794 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQSequence(MEMMGR)); } break; case 170: #line 1798 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 171: #line 1805 "../src/parser/XQParser.y" { // TBD xsl:fallback - jpcs XQAnalyzeString *as = (XQAnalyzeString*)(yyval.astNode); (yyval.astNode) = (yyvsp[(1) - (4)].astNode); if(as->getExpression() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction does not have a {}select attribute"); } if(as->getRegex() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction does not have a {}regex attribute"); } if((yyvsp[(2) - (4)].astNode) == 0) { if((yyvsp[(3) - (4)].astNode) == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction doesn't contain an xsl:matching-substring or xsl:non-matching-substring child [err:XTSE1130]"); } as->setMatch(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQSequence(MEMMGR))); } else { as->setMatch((yyvsp[(2) - (4)].astNode)); } if((yyvsp[(3) - (4)].astNode) == 0) { as->setNonMatch(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQSequence(MEMMGR))); } else { as->setNonMatch((yyvsp[(3) - (4)].astNode)); } } break; case 172: #line 1840 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQAnalyzeString(MEMMGR)); } break; case 173: #line 1844 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQAnalyzeString*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 174: #line 1849 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAnalyzeString*)(yyval.astNode))->setRegex(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 175: #line 1855 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAnalyzeString*)(yyval.astNode))->setFlags(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 176: #line 1864 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 177: #line 1868 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 178: #line 1875 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 179: #line 1879 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 180: #line 1886 "../src/parser/XQParser.y" { (yyvsp[(1) - (4)].letTuple)->setExpression(XSLT_VARIABLE_VALUE((yylsp[(1) - (4)]), (yyvsp[(1) - (4)].letTuple)->getExpression(), (yyvsp[(2) - (4)].parenExpr), (yyvsp[(1) - (4)].letTuple)->seqType)); (yyvsp[(1) - (4)].letTuple)->seqType = 0; if((yyvsp[(1) - (4)].letTuple)->getExpression() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:variable instruction has both a select attribute and a sequence constructor [err:XTSE0620]"); } if((yyvsp[(1) - (4)].letTuple)->getVarName() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:variable instruction does not have a {}name attribute"); } (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQReturn((yyvsp[(1) - (4)].letTuple), (yyvsp[(4) - (4)].parenExpr), MEMMGR)); } break; case 181: #line 1904 "../src/parser/XQParser.y" { (yyval.letTuple) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) LetTuple(WRAP((yylsp[(1) - (1)]), new (MEMMGR) ContextTuple(MEMMGR)), 0, 0, MEMMGR)); } break; case 182: #line 1908 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].letTuple)->setVarURI(uri); (yyvsp[(1) - (2)].letTuple)->setVarName(name); (yyval.letTuple) = (yyvsp[(1) - (2)].letTuple); } break; case 183: #line 1915 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].letTuple)->setExpression((yyvsp[(3) - (3)].astNode)); (yyval.letTuple) = (yyvsp[(1) - (3)].letTuple); } break; case 184: #line 1920 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].letTuple)->seqType = (yyvsp[(3) - (3)].sequenceType); (yyval.letTuple) = (yyvsp[(1) - (3)].letTuple); } break; case 185: #line 1928 "../src/parser/XQParser.y" { XQCommentConstructor *comment = (XQCommentConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = comment; if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(comment->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:comment instruction has both a select attribute and a sequence constructor [err:XTSE0940]"); } comment->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(comment->getValue() == 0) { comment->setValue(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); } } break; case 186: #line 1946 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCommentConstructor(0, MEMMGR, /*xslt*/true)); } break; case 187: #line 1950 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQCommentConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 188: #line 1958 "../src/parser/XQParser.y" { XQPIConstructor *pi = (XQPIConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = pi; if(pi->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:processing-instruction instruction does not have a {}name attribute"); } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(pi->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:processing-instruction instruction has both a select attribute and a sequence constructor [err:XTSE0880]"); } pi->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(pi->getValue() == 0) { pi->setValue(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); } } break; case 189: #line 1980 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQPIConstructor(0, 0, MEMMGR, /*xslt*/true)); } break; case 190: #line 1984 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQPIConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 191: #line 1991 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQPIConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 192: #line 1999 "../src/parser/XQParser.y" { XQDocumentConstructor *doc = (XQDocumentConstructor*)(yyvsp[(1) - (3)].astNode); doc->setValue((yyvsp[(2) - (3)].parenExpr)); (yyval.astNode) = doc; } break; case 193: #line 2008 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDocumentConstructor(0, MEMMGR)); } break; case 194: #line 2016 "../src/parser/XQParser.y" { XQAttributeConstructor *attr = (XQAttributeConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = attr; if(attr->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:attribute instruction does not have a {}name attribute"); } if(attr->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(attr->namespaceExpr); args.push_back(const_cast(attr->getName())); FunctionQName *name = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FunctionQName(args, MEMMGR)); attr->setName(name); attr->namespaceExpr = 0; } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(attr->getChildren() != 0 && !attr->getChildren()->empty()) { yyerror((yylsp[(1) - (3)]), "The xsl:attribute instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); attr->setChildren(children); } else if(attr->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); attr->setChildren(children); } } break; case 195: #line 2053 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQAttributeConstructor(0, 0, MEMMGR)); } break; case 196: #line 2057 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAttributeConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 197: #line 2064 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAttributeConstructor*)(yyval.astNode))->namespaceExpr = PRESERVE_NS((yylsp[(2) - (3)]), content); } break; case 198: #line 2071 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); ((XQAttributeConstructor*)(yyval.astNode))->setChildren(children); } break; case 199: #line 2080 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); // TBD separator - jpcs /* ((XQAttributeConstructor*)$$)->setChildren(children); */ } break; case 200: #line 2089 "../src/parser/XQParser.y" { XQNamespaceConstructor *ns = (XQNamespaceConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = ns; if(ns->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:namespace instruction does not have a {}name attribute"); } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(ns->getChildren() != 0 && !ns->getChildren()->empty()) { yyerror((yylsp[(1) - (3)]), "The xsl:namespace instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); ns->setChildren(children); } else if(ns->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); ns->setChildren(children); } } break; case 201: #line 2116 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQNamespaceConstructor(0, 0, MEMMGR)); } break; case 202: #line 2120 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQNamespaceConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 203: #line 2127 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); ((XQNamespaceConstructor*)(yyval.astNode))->setChildren(children); } break; case 204: #line 2139 "../src/parser/XQParser.y" { XQElementConstructor *elem = (XQElementConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = elem; if(elem->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:element instruction does not have a {}name attribute"); } if(elem->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(elem->namespaceExpr); args.push_back(const_cast(elem->getName())); FunctionQName *name = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FunctionQName(args, MEMMGR)); elem->setName(name); elem->namespaceExpr = 0; } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); elem->setChildren(children); } break; case 205: #line 2165 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQElementConstructor(0, 0, 0, MEMMGR)); } break; case 206: #line 2169 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQElementConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 207: #line 2176 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQElementConstructor*)(yyval.astNode))->namespaceExpr = PRESERVE_NS((yylsp[(2) - (3)]), content); } break; case 208: #line 2186 "../src/parser/XQParser.y" { XQCopyOf *as = (XQCopyOf*)(yyval.astNode); (yyval.astNode) = (yyvsp[(1) - (2)].astNode); if(as->getExpression() == 0) { yyerror((yylsp[(1) - (2)]), "The xsl:copy-of instruction does not have a {}select attribute"); } } break; case 209: #line 2198 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQCopyOf(MEMMGR)); } break; case 210: #line 2202 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQCopyOf*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 211: #line 2207 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopyOf*)(yyval.astNode))->setCopyNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 212: #line 2216 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); XQCopy *as = (XQCopy*)(yyval.astNode); XQContextItem *ci = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQContextItem(MEMMGR)); as->setExpression(ci); as->setChildren((yyvsp[(2) - (3)].parenExpr)->getChildren()); } break; case 213: #line 2229 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQCopy(MEMMGR)); } break; case 214: #line 2233 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopy*)(yyval.astNode))->setCopyNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 215: #line 2238 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopy*)(yyval.astNode))->setInheritNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 216: #line 2247 "../src/parser/XQParser.y" { // TBD xsl:sort - jpcs (yyval.astNode) = (yyvsp[(1) - (3)].astNode); XQMap *map = (XQMap*)(yyval.astNode); map->setArg2((yyvsp[(2) - (3)].parenExpr)); if(map->getArg1() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:for-each instruction does not have a {}select attribute"); } } break; case 217: #line 2261 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQMap(0, 0, MEMMGR)); } break; case 218: #line 2265 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQMap*)(yyval.astNode))->setArg1(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 219: #line 2278 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (3)].itemList); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(3) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 220: #line 2283 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(1) - (1)]), (yyvsp[(1) - (1)].astNode))); } break; case 221: #line 2295 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 222: #line 2299 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR)); } break; case 223: #line 2307 "../src/parser/XQParser.y" { // . intersect id("a") VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR))); oargs.push_back((yyvsp[(1) - (1)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) Intersect(oargs, MEMMGR)); } break; case 224: #line 2320 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); } break; case 225: #line 2328 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); } break; case 226: #line 2341 "../src/parser/XQParser.y" { VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); fargs.push_back((yyvsp[(3) - (4)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) FunctionId(fargs, MEMMGR)); } break; case 227: #line 2348 "../src/parser/XQParser.y" { // VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); // fargs.push_back($3); // fargs.push_back($5); // $$ = WRAP(@1, new (MEMMGR) FunctionKey(fargs, MEMMGR)); // TBD key() - jpcs (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQContextItem(MEMMGR)); } break; case 232: #line 2387 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 233: #line 2391 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQPredicate((yyvsp[(2) - (2)].astNode), (yyvsp[(1) - (2)].astNode), MEMMGR)); } break; case 234: #line 2395 "../src/parser/XQParser.y" { // id("a")/foo -> self::foo[parent::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back((yyvsp[(1) - (3)].astNode)); Intersect *intersect = WRAP((yylsp[(1) - (3)]), new (MEMMGR) Intersect(oargs, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), intersect, MEMMGR)); } break; case 235: #line 2413 "../src/parser/XQParser.y" { // id("a")/foo -> self::foo[ancestor::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back((yyvsp[(1) - (3)].astNode)); Intersect *intersect = WRAP((yylsp[(1) - (3)]), new (MEMMGR) Intersect(oargs, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), intersect, MEMMGR)); } break; case 236: #line 2431 "../src/parser/XQParser.y" { ASTNode *step = (yyvsp[(1) - (3)].astNode); while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::PARENT); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), (yyvsp[(1) - (3)].astNode), MEMMGR)); } break; case 237: #line 2441 "../src/parser/XQParser.y" { ASTNode *step = (yyvsp[(1) - (3)].astNode); while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::ANCESTOR); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), (yyvsp[(1) - (3)].astNode), MEMMGR)); } break; case 238: #line 2455 "../src/parser/XQParser.y" { (yyval.astNode) = XQPredicate::addPredicates(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::SELF, (yyvsp[(1) - (2)].nodeTest), MEMMGR)), (yyvsp[(2) - (2)].predicates)); } break; case 239: #line 2463 "../src/parser/XQParser.y" { if(!(yyvsp[(1) - (1)].nodeTest)->isNodeTypeSet()) (yyvsp[(1) - (1)].nodeTest)->setNodeType(Node::element_string); (yyval.nodeTest) = (yyvsp[(1) - (1)].nodeTest); } break; case 240: #line 2469 "../src/parser/XQParser.y" { if(!(yyvsp[(3) - (3)].nodeTest)->isNodeTypeSet()) (yyvsp[(3) - (3)].nodeTest)->setNodeType(Node::element_string); (yyval.nodeTest) = (yyvsp[(3) - (3)].nodeTest); } break; case 241: #line 2475 "../src/parser/XQParser.y" { if(!(yyvsp[(3) - (3)].nodeTest)->isNodeTypeSet()) (yyvsp[(3) - (3)].nodeTest)->setNodeType(Node::attribute_string); (yyval.nodeTest) = (yyvsp[(3) - (3)].nodeTest); } break; case 242: #line 2481 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); (yyval.nodeTest) = (yyvsp[(2) - (2)].nodeTest); } break; case 243: #line 2492 "../src/parser/XQParser.y" { (yyval.predicates) = new (MEMMGR) VectorOfPredicates(MEMMGR); } break; case 244: #line 2496 "../src/parser/XQParser.y" { XQPredicate *pred = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (4)].astNode), MEMMGR)); (yyvsp[(1) - (4)].predicates)->push_back(pred); (yyval.predicates) = (yyvsp[(1) - (4)].predicates); } break; case 252: #line 2525 "../src/parser/XQParser.y" { // TBD Set the language correctly on the context - jpcs if(XPath2Utils::equals((yyvsp[(2) - (2)].str),sz1_0)) { QP->_lexer->setVersion3(false); QP->_query->setVersion3(false); } else if(XPath2Utils::equals((yyvsp[(2) - (2)].str),sz3_0)) { if(!QP->_lexer->isVersion3()) { yyerror((yylsp[(1) - (2)]), "This XQuery processor is not configured to support XQuery 3.0 [err:XQST0031]"); } QP->_lexer->setVersion3(true); QP->_query->setVersion3(true); } else yyerror((yylsp[(1) - (2)]), "This XQuery processor only supports version 1.0 and 3.0 [err:XQST0031]"); } break; case 253: #line 2545 "../src/parser/XQParser.y" { XMLCh *encName = (yyvsp[(2) - (2)].str); if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z)) yyerror((yylsp[(1) - (2)]), "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); for(++encName; *encName; ++encName) { if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z) && (*encName < chDigit_0 || *encName > chDigit_9) && *encName != chPeriod && *encName != chDash) yyerror((yylsp[(1) - (2)]), "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); } } break; case 256: #line 2569 "../src/parser/XQParser.y" { if(*(yyvsp[(5) - (6)].str) == 0) yyerror((yylsp[(5) - (6)]), "The literal that specifies the namespace of a module must not be of zero length [err:XQST0088]"); QP->_query->setIsLibraryModule(); QP->_query->setModuleTargetNamespace((yyvsp[(5) - (6)].str)); SET_NAMESPACE((yylsp[(3) - (6)]), (yyvsp[(3) - (6)].str), (yyvsp[(5) - (6)].str)); } break; case 258: #line 2583 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a setter"); } break; case 259: #line 2587 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "an import"); } break; case 260: #line 2591 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a namespace"); } break; case 261: #line 2595 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a default namespace"); } break; case 262: #line 2599 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } break; case 263: #line 2603 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=(yyvsp[(2) - (3)].functDecl); QP->_query->addFunction(decl); } break; case 264: #line 2609 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=(yyvsp[(2) - (3)].functDecl); QP->_query->addFunction(decl); } break; case 265: #line 2615 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } break; case 266: #line 2619 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "an ftoption declaration"); } break; case 278: #line 2651 "../src/parser/XQParser.y" { SET_NAMESPACE((yylsp[(3) - (5)]), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)); } break; case 279: #line 2659 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(true); } break; case 280: #line 2664 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(false); } break; case 281: #line 2673 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED, "default element namespace", "XQST0066"); CONTEXT->setDefaultElementAndTypeNS((yyvsp[(5) - (5)].str)); } break; case 282: #line 2678 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED, "default function namespace", "XQST0066"); CONTEXT->setDefaultFuncNS((yyvsp[(5) - (5)].str)); } break; case 283: #line 2687 "../src/parser/XQParser.y" { // validate the QName QualifiedName qName((yyvsp[(3) - (4)].str)); const XMLCh* prefix = qName.getPrefix(); if(prefix == 0 || *prefix == 0) yyerror((yylsp[(3) - (4)]), "The option name must have a prefix [err:XPST0081]"); const XMLCh *uri = 0; try { LOCATION((yylsp[(3) - (4)]), loc); uri = CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror((yylsp[(3) - (4)]), "The option name is using an undefined namespace prefix [err:XPST0081]"); } if(XPath2Utils::equals(uri, XQillaFunction::XMLChFunctionURI)) { if(XPath2Utils::equals(qName.getName(), option_projection)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setProjection(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setProjection(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:projection. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_psvi)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->getDocumentCache()->setDoPSVI(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->getDocumentCache()->setDoPSVI(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:psvi. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_lint)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setDoLintWarnings(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setDoLintWarnings(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:lint. Should be 'true' or 'false' [err:XQILLA]"); } } else { yyerror((yylsp[(3) - (4)]), "Unknown option name in the xqilla namespace [err:XQILLA]"); } } } break; case 284: #line 2747 "../src/parser/XQParser.y" { // TBD FTOptionDecl } break; case 285: #line 2755 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_ORDERED); } break; case 286: #line 2760 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_UNORDERED); } break; case 287: #line 2769 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_GREATEST); } break; case 288: #line 2774 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_LEAST); } break; case 289: #line 2783 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_COPYNAMESPACE_SPECIFIED, "copy namespace", "XQST0055"); CONTEXT->setPreserveNamespaces((yyvsp[(3) - (5)].boolean)); CONTEXT->setInheritNamespaces((yyvsp[(5) - (5)].boolean)); } break; case 290: #line 2793 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 291: #line 2797 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 292: #line 2805 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 293: #line 2809 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 294: #line 2817 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (4)]), BIT_COLLATION_SPECIFIED, "default collation", "XQST0038"); try { LOCATION((yylsp[(4) - (4)]), loc); CONTEXT->getCollation((yyvsp[(4) - (4)].str), &loc); } catch(ContextException&) { yyerror((yylsp[(4) - (4)]), "The specified collation does not exist [err:XQST0038]"); } CONTEXT->setDefaultCollation((yyvsp[(4) - (4)].str)); } break; case 295: #line 2833 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BASEURI_SPECIFIED, "base URI", "XQST0032"); CONTEXT->setBaseURI((yyvsp[(3) - (3)].str)); } break; case 296: #line 2842 "../src/parser/XQParser.y" { if(XPath2Utils::equals((yyvsp[(3) - (5)].str), XMLUni::fgZeroLenString)) CONTEXT->setDefaultElementAndTypeNS((yyvsp[(4) - (5)].str)); else if(XPath2Utils::equals((yyvsp[(4) - (5)].str), XMLUni::fgZeroLenString)) yyerror((yylsp[(1) - (5)]), "A schema that has no target namespace cannot be bound to a non-empty prefix [err:XQST0057]"); else { SET_NAMESPACE((yylsp[(3) - (5)]), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].str)); } LOCATION((yylsp[(1) - (5)]), loc); CONTEXT->addSchemaLocation((yyvsp[(4) - (5)].str), (yyvsp[(5) - (5)].stringList), &loc); } break; case 297: #line 2854 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (4)]), loc); CONTEXT->addSchemaLocation((yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].stringList), &loc); } break; case 298: #line 2862 "../src/parser/XQParser.y" { (yyval.stringList) = NULL; } break; case 299: #line 2866 "../src/parser/XQParser.y" { (yyval.stringList) = new (MEMMGR) VectorOfStrings(XQillaAllocator(MEMMGR)); (yyval.stringList)->push_back((yyvsp[(2) - (2)].str)); } break; case 300: #line 2871 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].stringList)->push_back((yyvsp[(3) - (3)].str)); (yyval.stringList) = (yyvsp[(1) - (3)].stringList); } break; case 301: #line 2880 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (3)].str); } break; case 302: #line 2884 "../src/parser/XQParser.y" { (yyval.str) = (XMLCh*)XMLUni::fgZeroLenString; } break; case 303: #line 2892 "../src/parser/XQParser.y" { if(XMLString::stringLen((yyvsp[(6) - (7)].str))==0) yyerror((yylsp[(6) - (7)]), "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); SET_NAMESPACE((yylsp[(4) - (7)]), (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].str)); LOCATION((yylsp[(1) - (7)]), loc); QP->_query->importModule((yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].stringList), &loc); } break; case 304: #line 2902 "../src/parser/XQParser.y" { if(XMLString::stringLen((yyvsp[(3) - (4)].str))==0) yyerror((yylsp[(3) - (4)]), "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); LOCATION((yylsp[(1) - (4)]), loc); QP->_query->importModule((yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].stringList), &loc); } break; case 305: #line 2914 "../src/parser/XQParser.y" { QP->_query->addVariable(WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQGlobalVariable((yyvsp[(4) - (6)].str), (yyvsp[(5) - (6)].sequenceType), (yyvsp[(6) - (6)].astNode), MEMMGR))); } break; case 306: #line 2921 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (2)].astNode); } break; case 307: #line 2925 "../src/parser/XQParser.y" { (yyval.astNode) = NULL; } break; case 308: #line 2933 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_PRESERVE); } break; case 309: #line 2938 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_STRIP); } break; case 310: #line 2947 "../src/parser/XQParser.y" { (yyvsp[(2) - (7)].signature)->argSpecs = (yyvsp[(5) - (7)].argSpecs); (yyvsp[(2) - (7)].signature)->returnType = (yyvsp[(6) - (7)].sequenceType); (yyval.functDecl) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (7)].str), (yyvsp[(2) - (7)].signature), (yyvsp[(7) - (7)].astNode), true, MEMMGR)); } break; case 313: #line 2958 "../src/parser/XQParser.y" { (yyval.argSpecs) = NULL; } break; case 314: #line 2962 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(2) - (3)].argSpecs); } break; case 316: #line 2971 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 317: #line 2979 "../src/parser/XQParser.y" { (yyval.signature) = new (MEMMGR) FunctionSignature(MEMMGR); } break; case 318: #line 2983 "../src/parser/XQParser.y" { switch((yyvsp[(1) - (2)].signature)->privateOption) { case FunctionSignature::OP_TRUE: yyerror((yylsp[(2) - (2)]), "Function option 'private' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror((yylsp[(2) - (2)]), "Function option 'public' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: (yyvsp[(1) - (2)].signature)->privateOption = (yyvsp[(2) - (2)].boolean) ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 319: #line 2996 "../src/parser/XQParser.y" { switch((yyvsp[(1) - (2)].signature)->nondeterministic) { case FunctionSignature::OP_TRUE: yyerror((yylsp[(2) - (2)]), "Function option 'nondeterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror((yylsp[(2) - (2)]), "Function option 'deterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: (yyvsp[(1) - (2)].signature)->nondeterministic = (yyvsp[(2) - (2)].boolean) ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 320: #line 3009 "../src/parser/XQParser.y" { if((yyvsp[(1) - (2)].signature)->updating != FunctionSignature::OP_DEFAULT) yyerror((yylsp[(2) - (2)]), "Function option 'updating' already specified [err:XPST0003]"); (yyvsp[(1) - (2)].signature)->updating = FunctionSignature::OP_TRUE; (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 321: #line 3018 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 322: #line 3018 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 323: #line 3021 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 324: #line 3021 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 325: #line 3025 "../src/parser/XQParser.y" { (yyval.sequenceType) = 0; } break; case 326: #line 3029 "../src/parser/XQParser.y" { (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 327: #line 3037 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].argSpecs)->push_back((yyvsp[(3) - (3)].argSpec)); (yyval.argSpecs) = (yyvsp[(1) - (3)].argSpecs); } break; case 328: #line 3042 "../src/parser/XQParser.y" { ArgumentSpecs* paramList = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); paramList->push_back((yyvsp[(1) - (1)].argSpec)); (yyval.argSpecs) = paramList; } break; case 329: #line 3052 "../src/parser/XQParser.y" { (yyval.argSpec) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) ArgumentSpec((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].sequenceType), MEMMGR)); } break; case 330: #line 3060 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 331: #line 3068 "../src/parser/XQParser.y" { if(QP->_lexer->isUpdate()) { QP->_query->setQueryBody(WRAP((yylsp[(1) - (1)]), new (MEMMGR) UApplyUpdates((yyvsp[(1) - (1)].astNode), MEMMGR))); } else { QP->_query->setQueryBody((yyvsp[(1) - (1)].astNode)); } } break; case 332: #line 3081 "../src/parser/XQParser.y" { ASTNode* prevExpr=(yyvsp[(1) - (3)].astNode); if(prevExpr->getType()==ASTNode::SEQUENCE) { ((XQSequence *)prevExpr)->addItem((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else { XQSequence *dis = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQSequence(MEMMGR)); dis->addItem((yyvsp[(1) - (3)].astNode)); dis->addItem((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = dis; } } break; case 346: #line 3119 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tuples = setLastAncestor((yyvsp[(1) - (3)].tupleNode), WRAP((yylsp[(1) - (3)]), new (MEMMGR) ContextTuple(MEMMGR))); // Check the correct clause order for XQuery 1.0 // FLWORExpr ::= (ForClause | LetClause)+ WhereClause? OrderByClause? "return" ExprSingle if(!QP->_lexer->isVersion3()) { const TupleNode *where = 0; const TupleNode *forlet = 0; const TupleNode *node = tuples; while(node) { switch(node->getType()) { case TupleNode::ORDER_BY: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Where clause after order by clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after order by clause [err:XPST0003]"), forlet); break; case TupleNode::WHERE: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate where clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after where clause [err:XPST0003]"), forlet); where = node; break; case TupleNode::FOR: case TupleNode::LET: forlet = node; break; default: break; } node = node->getParent(); } } // Add the return expression (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQReturn(tuples, (yyvsp[(3) - (3)].astNode), MEMMGR)); } break; case 348: #line 3164 "../src/parser/XQParser.y" { // Order by has a special check here, because a single OrderByClause can result // in multiple OrderByTuple objects. const TupleNode *node = (yyvsp[(1) - (2)].tupleNode); while(node) { if(node->getType() == TupleNode::ORDER_BY) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate order by clause [err:XPST0003]"), (yyvsp[(2) - (2)].tupleNode)); node = node->getParent(); } (yyval.tupleNode) = setLastAncestor((yyvsp[(2) - (2)].tupleNode), (yyvsp[(1) - (2)].tupleNode)); } break; case 349: #line 3177 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(2) - (2)].tupleNode), (yyvsp[(1) - (2)].tupleNode)); } break; case 355: #line 3192 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(2) - (2)].tupleNode); } break; case 356: #line 3199 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 358: #line 3207 "../src/parser/XQParser.y" { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches (yyvsp[(3) - (7)].sequenceType)->setOccurrence(SequenceType::STAR); (yyval.tupleNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) ForTuple(0, (yyvsp[(2) - (7)].str), (yyvsp[(4) - (7)].str), WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQTreatAs((yyvsp[(7) - (7)].astNode), (yyvsp[(3) - (7)].sequenceType), MEMMGR)), MEMMGR)); } break; case 359: #line 3218 "../src/parser/XQParser.y" { (yyval.str) = NULL; } break; case 360: #line 3222 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(PositionalVar, (yylsp[(1) - (3)])); (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 361: #line 3232 "../src/parser/XQParser.y" { (yyval.str) = NULL; } break; case 362: #line 3236 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 363: #line 3246 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(2) - (2)].tupleNode); } break; case 364: #line 3253 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 366: #line 3261 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) LetTuple(0, (yyvsp[(2) - (5)].str), WRAP((yylsp[(3) - (5)]), new (MEMMGR) XQTreatAs((yyvsp[(5) - (5)].astNode), (yyvsp[(3) - (5)].sequenceType), MEMMGR)), MEMMGR)); } break; case 367: #line 3265 "../src/parser/XQParser.y" { ASTNode *literal = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, X("0"), AnyAtomicType::DECIMAL, MEMMGR)); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) LetTuple(0, (yyvsp[(3) - (5)].str), literal, MEMMGR)); } break; case 368: #line 3278 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) WhereTuple(0, (yyvsp[(2) - (2)].astNode), MEMMGR)); } break; case 369: #line 3286 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) CountTuple(0, (yyvsp[(3) - (3)].str), MEMMGR)); } break; case 370: #line 3294 "../src/parser/XQParser.y" { ((OrderByTuple*)getLastAncestor((yyvsp[(3) - (3)].tupleNode)))->setUnstable(); (yyval.tupleNode) = (yyvsp[(3) - (3)].tupleNode); } break; case 371: #line 3299 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(4) - (4)].tupleNode); } break; case 372: #line 3307 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(1) - (3)].tupleNode), (yyvsp[(3) - (3)].tupleNode)); } break; case 374: #line 3317 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (3)]), loc); Collation *collation = CONTEXT->getDefaultCollation(&loc); (yyval.tupleNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) OrderByTuple(0, (yyvsp[(1) - (3)].astNode), OrderByTuple::STABLE | (yyvsp[(2) - (3)].orderByModifier) | (yyvsp[(3) - (3)].orderByModifier), collation, MEMMGR)); } break; case 375: #line 3324 "../src/parser/XQParser.y" { try { LOCATION((yylsp[(4) - (5)]), loc); Collation *collation = CONTEXT->getCollation((yyvsp[(5) - (5)].str), &loc); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) OrderByTuple(0, (yyvsp[(1) - (5)].astNode), OrderByTuple::STABLE | (yyvsp[(2) - (5)].orderByModifier) | (yyvsp[(3) - (5)].orderByModifier), collation, MEMMGR)); } catch(ContextException&) { yyerror((yylsp[(4) - (5)]), "The specified collation does not exist [err:XQST0076]"); } } break; case 376: #line 3339 "../src/parser/XQParser.y" { SequenceType *zero_or_one = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK)); (yyval.astNode) = (yyvsp[(1) - (1)].astNode); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQAtomize((yyval.astNode), MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQPromoteUntyped((yyval.astNode), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTreatAs((yyval.astNode), zero_or_one, MEMMGR)); } break; case 377: #line 3355 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::ASCENDING; } break; case 378: #line 3359 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::ASCENDING; } break; case 379: #line 3363 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::DESCENDING; } break; case 380: #line 3370 "../src/parser/XQParser.y" { switch(CONTEXT->getDefaultFLWOROrderingMode()) { case StaticContext::FLWOR_ORDER_EMPTY_LEAST: (yyval.orderByModifier) = OrderByTuple::EMPTY_LEAST; break; case StaticContext::FLWOR_ORDER_EMPTY_GREATEST: (yyval.orderByModifier) = OrderByTuple::EMPTY_GREATEST; break; } } break; case 381: #line 3379 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::EMPTY_GREATEST; } break; case 382: #line 3383 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::EMPTY_LEAST; } break; case 383: #line 3392 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor((yyvsp[(2) - (4)].tupleNode), WRAP((yylsp[(1) - (4)]), new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression (yyval.astNode) = WRAP((yylsp[(3) - (4)]), new (MEMMGR) XQQuantified(XQQuantified::SOME, tmp, (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 384: #line 3400 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor((yyvsp[(2) - (4)].tupleNode), WRAP((yylsp[(1) - (4)]), new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression (yyval.astNode) = WRAP((yylsp[(3) - (4)]), new (MEMMGR) XQQuantified(XQQuantified::EVERY, tmp, (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 385: #line 3411 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 387: #line 3419 "../src/parser/XQParser.y" { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches (yyvsp[(3) - (5)].sequenceType)->setOccurrence(SequenceType::STAR); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) ForTuple(0, (yyvsp[(2) - (5)].str), 0, WRAP((yylsp[(3) - (5)]), new (MEMMGR) XQTreatAs((yyvsp[(5) - (5)].astNode), (yyvsp[(3) - (5)].sequenceType), MEMMGR)), MEMMGR)); } break; case 388: #line 3430 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQTypeswitch( WRAP((yylsp[(1) - (6)]), (yyvsp[(3) - (6)].astNode)), (yyvsp[(5) - (6)].caseClauses), (yyvsp[(6) - (6)].caseClause), MEMMGR)); } break; case 389: #line 3437 "../src/parser/XQParser.y" { XQTypeswitch::Cases::iterator it = (yyvsp[(2) - (2)].caseClauses)->begin(); for(; it != (yyvsp[(2) - (2)].caseClauses)->end(); ++it) { (yyvsp[(1) - (2)].caseClauses)->push_back(*it); } (yyval.caseClauses) = (yyvsp[(1) - (2)].caseClauses); } break; case 391: #line 3450 "../src/parser/XQParser.y" { (yyval.caseClause) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(3) - (5)].str), NULL, (yyvsp[(5) - (5)].astNode))); } break; case 392: #line 3454 "../src/parser/XQParser.y" { (yyval.caseClause) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTypeswitch::Case(NULL, NULL, (yyvsp[(3) - (3)].astNode))); } break; case 393: #line 3462 "../src/parser/XQParser.y" { // TBD Don't copy the expression when unions of SequenceTypes are implemented - jpcs XQTypeswitch::Cases::iterator it = (yyvsp[(1) - (3)].caseClauses)->begin(); if(it != (yyvsp[(1) - (3)].caseClauses)->end()) { (*it)->setExpression((yyvsp[(3) - (3)].astNode)); for(++it; it != (yyvsp[(1) - (3)].caseClauses)->end(); ++it) { (*it)->setExpression((yyvsp[(3) - (3)].astNode)->copy(CONTEXT)); } } (yyval.caseClauses) = (yyvsp[(1) - (3)].caseClauses); } break; case 394: #line 3480 "../src/parser/XQParser.y" { (yyval.caseClauses) = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); (yyval.caseClauses)->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].sequenceType), 0))); } break; case 395: #line 3485 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(SequenceTypeUnion, (yylsp[(2) - (3)])); (yyvsp[(1) - (3)].caseClauses)->push_back(WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(1) - (3)].caseClauses)->back()->getQName(), (yyvsp[(3) - (3)].sequenceType), 0))); (yyval.caseClauses) = (yyvsp[(1) - (3)].caseClauses); } break; case 396: #line 3494 "../src/parser/XQParser.y" { (yyval.str) = 0; } break; case 397: #line 3498 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (3)].str); } break; case 398: #line 3506 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQIf((yyvsp[(3) - (8)].astNode), (yyvsp[(6) - (8)].astNode), (yyvsp[(8) - (8)].astNode), MEMMGR)); } break; case 399: #line 3514 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].astNode)->getType() == ASTNode::OPERATOR && ((XQOperator*)(yyvsp[(1) - (3)].astNode))->getOperatorName() == Or::name) { ((Or*)(yyvsp[(1) - (3)].astNode))->addArgument((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Or(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 401: #line 3528 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].astNode)->getType()==ASTNode::OPERATOR && ((XQOperator*)(yyvsp[(1) - (3)].astNode))->getOperatorName() == And::name) { ((And*)(yyvsp[(1) - (3)].astNode))->addArgument((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) And(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 403: #line 3547 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 404: #line 3551 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::NOT_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 405: #line 3554 "../src/parser/XQParser.y" { /* Careful! */ QP->_lexer->undoLessThan(); } break; case 406: #line 3555 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN,packageArgs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].astNode), MEMMGR),MEMMGR)); } break; case 407: #line 3559 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 408: #line 3563 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 409: #line 3567 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 410: #line 3571 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Equals(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 411: #line 3575 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) NotEquals(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 412: #line 3579 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) LessThan(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 413: #line 3583 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) LessThanEqual(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 414: #line 3587 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GreaterThan(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 415: #line 3591 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GreaterThanEqual(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 416: #line 3595 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) NodeComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 417: #line 3599 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) OrderComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), true, MEMMGR)); } break; case 418: #line 3603 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) OrderComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), false,MEMMGR)); } break; case 420: #line 3612 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTContains((yyvsp[(1) - (4)].astNode), (yyvsp[(4) - (4)].ftselection), NULL, MEMMGR)); } break; case 421: #line 3616 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (5)]), new (MEMMGR) FTContains((yyvsp[(1) - (5)].astNode), (yyvsp[(4) - (5)].ftselection), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 423: #line 3625 "../src/parser/XQParser.y" { VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back((yyvsp[(1) - (3)].astNode)); args->push_back((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQFunctionCall(0, BuiltInModules::core.uri, MEMMGR->getPooledString("to"), args, MEMMGR)); } break; case 425: #line 3637 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Plus(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 426: #line 3641 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Minus(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 428: #line 3650 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Multiply(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 429: #line 3654 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Divide(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 430: #line 3658 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) IntegerDivide(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 431: #line 3662 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Mod(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 433: #line 3671 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Union(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 434: #line 3675 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Union(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 436: #line 3684 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Intersect(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 437: #line 3688 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Except(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 439: #line 3697 "../src/parser/XQParser.y" { ASTNode *falseExpr = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("false"), 0, MEMMGR)); XQTypeswitch::Case *defcase = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQTypeswitch::Case(NULL, NULL, falseExpr)); ASTNode *trueExpr = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("true"), 0, MEMMGR)); XQTypeswitch::Cases *cases = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); cases->push_back(WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQTypeswitch::Case(NULL, (yyvsp[(4) - (4)].sequenceType), trueExpr))); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQTypeswitch((yyvsp[(1) - (4)].astNode), cases, defcase, MEMMGR)); } break; case 441: #line 3719 "../src/parser/XQParser.y" { XQTreatAs* treatAs = new (MEMMGR) XQTreatAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR, XQTreatAs::err_XPDY0050); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), treatAs); } break; case 443: #line 3729 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQCastableAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR)); } break; case 445: #line 3738 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQCastAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR)); } break; case 447: #line 3747 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UnaryMinus(/*positive*/false, args, MEMMGR)); } break; case 448: #line 3753 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UnaryMinus(/*positive*/true, args, MEMMGR)); } break; case 453: #line 3774 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQValidate((yyvsp[(3) - (4)].astNode),DocumentCache::VALIDATION_STRICT,MEMMGR)); } break; case 454: #line 3778 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQValidate((yyvsp[(4) - (5)].astNode),DocumentCache::VALIDATION_LAX,MEMMGR)); } break; case 455: #line 3782 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQValidate((yyvsp[(4) - (5)].astNode),DocumentCache::VALIDATION_STRICT,MEMMGR)); } break; case 456: #line 3790 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(ExtensionExpr, (yylsp[(1) - (3)])); // we don't support any pragma yyerror((yylsp[(1) - (3)]), "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } break; case 457: #line 3797 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(ExtensionExpr, (yylsp[(1) - (4)])); // we don't support any pragma (yyval.astNode) = (yyvsp[(3) - (4)].astNode); } break; case 460: #line 3810 "../src/parser/XQParser.y" { // validate the QName QualifiedName qName((yyvsp[(3) - (4)].str)); const XMLCh* prefix=qName.getPrefix(); if(prefix == NULL || *prefix == 0) yyerror((yylsp[(3) - (4)]), "The pragma name must have a prefix [err:XPST0081]"); try { LOCATION((yylsp[(3) - (4)]), loc); CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror((yylsp[(3) - (4)]), "The pragma name is using an undefined namespace prefix [err:XPST0081]"); } } break; case 462: #line 3831 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 464: #line 3840 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (2)]), (yyvsp[(1) - (2)].astNode)); nav->addStep((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = nav; } break; case 465: #line 3846 "../src/parser/XQParser.y" { XQNav *nav = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQNav(MEMMGR)); VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); nav->addStep(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR))); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = nav; } break; case 467: #line 3871 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP((yylsp[(1) - (1)]), new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR)); } break; case 468: #line 3885 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].astNode)); nav->addStep((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = nav; } break; case 469: #line 3891 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].astNode)); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = nav; } break; case 474: #line 3913 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDocumentOrder((yyvsp[(1) - (1)].astNode), MEMMGR)); } break; case 476: #line 3923 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 478: #line 3930 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), /*reverse*/true, MEMMGR)); } break; case 479: #line 3939 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { switch((yyvsp[(1) - (2)].axis)) { case XQStep::NAMESPACE: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::namespace_string); break; case XQStep::ATTRIBUTE: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); break; default: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::element_string); break; } } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep((yyvsp[(1) - (2)].axis),(yyvsp[(2) - (2)].nodeTest),MEMMGR)); } break; case 481: #line 3962 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::CHILD; } break; case 482: #line 3966 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::DESCENDANT; } break; case 483: #line 3970 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ATTRIBUTE; } break; case 484: #line 3974 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::SELF; } break; case 485: #line 3978 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::DESCENDANT_OR_SELF; } break; case 486: #line 3982 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::FOLLOWING_SIBLING; } break; case 487: #line 3986 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::FOLLOWING; } break; case 488: #line 3990 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::NAMESPACE; } break; case 489: #line 3998 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::ATTRIBUTE, (yyvsp[(2) - (2)].nodeTest), MEMMGR)); } break; case 490: #line 4006 "../src/parser/XQParser.y" { XQStep::Axis axis = XQStep::CHILD; SequenceType::ItemType *itemtype = (yyvsp[(1) - (1)].nodeTest)->getItemType(); if(itemtype != 0 && itemtype->getItemTestType() == SequenceType::ItemType::TEST_ATTRIBUTE) { axis = XQStep::ATTRIBUTE; } else if(!(yyvsp[(1) - (1)].nodeTest)->isNodeTypeSet()) { (yyvsp[(1) - (1)].nodeTest)->setNodeType(Node::element_string); } (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(axis, (yyvsp[(1) - (1)].nodeTest), MEMMGR)); } break; case 491: #line 4023 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::element_string); } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep((yyvsp[(1) - (2)].axis), (yyvsp[(2) - (2)].nodeTest), MEMMGR)); } break; case 493: #line 4040 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PARENT; } break; case 494: #line 4044 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ANCESTOR; } break; case 495: #line 4048 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PRECEDING_SIBLING; } break; case 496: #line 4052 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PRECEDING; } break; case 497: #line 4056 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ANCESTOR_OR_SELF; } break; case 498: #line 4064 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); step->setTypeWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::PARENT, step, MEMMGR)); } break; case 499: #line 4076 "../src/parser/XQParser.y" { (yyval.nodeTest) = new (MEMMGR) NodeTest(); (yyval.nodeTest)->setItemType((yyvsp[(1) - (1)].itemType)); } break; case 501: #line 4086 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix((yyvsp[(1) - (1)].qName)->getPrefix()); step->setNodeName((yyvsp[(1) - (1)].qName)->getName()); (yyval.nodeTest) = step; } break; case 503: #line 4098 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); (yyval.nodeTest) = step; } break; case 504: #line 4105 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix((yyvsp[(1) - (1)].str)); step->setNameWildcard(); (yyval.nodeTest) = step; } break; case 505: #line 4112 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodeName((yyvsp[(1) - (1)].str)); step->setNamespaceWildcard(); (yyval.nodeTest) = step; } break; case 507: #line 4125 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 523: #line 4154 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQVariable((yyvsp[(2) - (2)].str), MEMMGR)); } break; case 525: #line 4165 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 526: #line 4169 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQSequence(MEMMGR)); } break; case 527: #line 4177 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR)); } break; case 528: #line 4185 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(OrderedExpr, (yylsp[(1) - (4)])); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_ORDERED, (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 529: #line 4195 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(UnorderedExpr, (yylsp[(1) - (4)])); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_UNORDERED, (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 530: #line 4205 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQFunctionCall((yyvsp[(1) - (3)].str), NULL, MEMMGR)); } break; case 531: #line 4209 "../src/parser/XQParser.y" { bool partial = false; VectorOfASTNodes::iterator i; for(i = (yyvsp[(3) - (4)].itemList)->begin(); i != (yyvsp[(3) - (4)].itemList)->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application XQFunctionRef *ref = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQFunctionRef((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].itemList)->size(), MEMMGR)); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPartialApply(ref, (yyvsp[(3) - (4)].itemList), MEMMGR)); } else { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQFunctionCall((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].itemList), MEMMGR)); } } break; case 532: #line 4232 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].itemList)->push_back((yyvsp[(3) - (3)].astNode)); (yyval.itemList) = (yyvsp[(1) - (3)].itemList); } break; case 533: #line 4237 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back((yyvsp[(1) - (1)].astNode)); } break; case 535: #line 4248 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(Argument, (yylsp[(1) - (1)])); (yyval.astNode) = 0; } break; case 536: #line 4257 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(Constructor, (yylsp[(1) - (1)])); } break; case 537: #line 4261 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(Constructor, (yylsp[(1) - (1)])); } break; case 541: #line 4274 "../src/parser/XQParser.y" { VectorOfASTNodes* content = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); ASTNode *name = WRAP((yylsp[(2) - (5)]), new (MEMMGR) XQDirectName((yyvsp[(2) - (5)].str), /*useDefaultNamespace*/true, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQElementConstructor(name, (yyvsp[(3) - (5)].itemList), content, MEMMGR)); } break; case 542: #line 4280 "../src/parser/XQParser.y" { if(!XPath2Utils::equals((yyvsp[(2) - (10)].str), (yyvsp[(8) - (10)].str))) yyerror((yylsp[(7) - (10)]), "Close tag does not match open tag"); ASTNode *name = WRAP((yylsp[(2) - (10)]), new (MEMMGR) XQDirectName((yyvsp[(2) - (10)].str), /*useDefaultNamespace*/true, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (10)]), new (MEMMGR) XQElementConstructor(name, (yyvsp[(3) - (10)].itemList), (yyvsp[(6) - (10)].itemList), MEMMGR)); } break; case 545: #line 4293 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 546: #line 4297 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (7)].itemList); ASTNode *name = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQDirectName((yyvsp[(3) - (7)].str), /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQAttributeConstructor(name, (yyvsp[(7) - (7)].itemList),MEMMGR)); (yyval.itemList)->push_back(attrItem); } break; case 547: #line 4306 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (7)].itemList); ASTNode *name = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQDirectName((yyvsp[(3) - (7)].str), /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQAttributeConstructor(name, (yyvsp[(7) - (7)].itemList),MEMMGR)); (yyval.itemList)->insert((yyval.itemList)->begin(), attrItem); } break; case 550: #line 4322 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 551: #line 4326 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 552: #line 4333 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 553: #line 4337 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 554: #line 4347 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 555: #line 4351 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 556: #line 4356 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 557: #line 4366 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 558: #line 4370 "../src/parser/XQParser.y" { yyerror((yylsp[(2) - (2)]), "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } break; case 559: #line 4374 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 560: #line 4387 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 561: #line 4391 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 562: #line 4396 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 563: #line 4406 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 564: #line 4410 "../src/parser/XQParser.y" { yyerror((yylsp[(2) - (2)]), "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } break; case 565: #line 4414 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 566: #line 4431 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 567: #line 4435 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 568: #line 4440 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 569: #line 4445 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 570: #line 4452 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); if(CONTEXT->getPreserveBoundarySpace()) { (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } } break; case 571: #line 4465 "../src/parser/XQParser.y" { ASTNode *value = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (3)].str), AnyAtomicType::STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQCommentConstructor(value, MEMMGR)); } break; case 572: #line 4478 "../src/parser/XQParser.y" { (yyval.str) = (XMLCh*)XMLUni::fgZeroLenString; } break; case 574: #line 4487 "../src/parser/XQParser.y" { ASTNode *value = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(3) - (3)].str), AnyAtomicType::STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPIConstructor( WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (3)].str), AnyAtomicType::STRING, MEMMGR)), value, MEMMGR)); } break; case 576: #line 4507 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 584: #line 4532 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQDocumentConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 585: #line 4540 "../src/parser/XQParser.y" { VectorOfASTNodes* empty = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQElementConstructor((yyvsp[(2) - (3)].astNode), empty, (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 586: #line 4548 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDirectName((yyvsp[(1) - (1)].str), /*useDefaultNamespace*/true, MEMMGR)); } break; case 587: #line 4552 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 588: #line 4560 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 589: #line 4564 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back((yyvsp[(2) - (3)].astNode)); } break; case 590: #line 4573 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQAttributeConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 591: #line 4580 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDirectName((yyvsp[(1) - (1)].str), /*useDefaultNamespace*/false, MEMMGR)); } break; case 592: #line 4584 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 593: #line 4594 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQNamespaceConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 594: #line 4602 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQTextConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 595: #line 4610 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQCommentConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 596: #line 4618 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPIConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR)); } break; case 597: #line 4625 "../src/parser/XQParser.y" { // Check for a colon for(XMLCh *tmp = (yyvsp[(1) - (1)].str); *tmp; ++tmp) if(*tmp == ':') yyerror((yylsp[(1) - (1)]), "Expecting an NCName, found a QName"); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(1) - (1)].str), AnyAtomicType::STRING, MEMMGR)); } break; case 598: #line 4635 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 599: #line 4642 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQSequence(MEMMGR)); } break; case 600: #line 4646 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 601: #line 4654 "../src/parser/XQParser.y" { SequenceType* seq = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType()); seq->setItemType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, (yyvsp[(1) - (2)].qName))); seq->setOccurrence((yyvsp[(2) - (2)].occurrence)); (yyval.sequenceType) = seq; } break; case 602: #line 4664 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::EXACTLY_ONE; } break; case 603: #line 4668 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::QUESTION_MARK; } break; case 604: #line 4676 "../src/parser/XQParser.y" { (yyval.sequenceType) = WRAP((yyloc), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR)); } break; case 605: #line 4680 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(TypeDeclaration, (yylsp[(1) - (2)])); (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 606: #line 4690 "../src/parser/XQParser.y" { SequenceType* seq = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType()); seq->setItemType((yyvsp[(1) - (2)].itemType)); seq->setOccurrence((yyvsp[(2) - (2)].occurrence)); (yyval.sequenceType) = seq; } break; case 607: #line 4697 "../src/parser/XQParser.y" { (yyval.sequenceType) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) SequenceType()); } break; case 608: #line 4706 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::EXACTLY_ONE; } break; case 609: #line 4708 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::STAR; } break; case 610: #line 4710 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::PLUS; } break; case 611: #line 4712 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::QUESTION_MARK; } break; case 612: #line 4718 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, (yyvsp[(1) - (1)].qName)); } break; case 613: #line 4722 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING); } break; case 628: #line 4758 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE); } break; case 629: #line 4766 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT); } break; case 630: #line 4770 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(3) - (4)].itemType); (yyval.itemType)->setItemTestType(SequenceType::ItemType::TEST_DOCUMENT); } break; case 631: #line 4775 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(3) - (4)].itemType); (yyval.itemType)->setItemTestType(SequenceType::ItemType::TEST_SCHEMA_DOCUMENT); } break; case 632: #line 4784 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_TEXT); } break; case 633: #line 4792 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_COMMENT); } break; case 634: #line 4800 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(NamespaceNodeTest, (yylsp[(1) - (3)])); (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NAMESPACE); } break; case 635: #line 4809 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI); } break; case 636: #line 4813 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName((yyvsp[(3) - (4)].str), MEMMGR)); } break; case 637: #line 4817 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName((yyvsp[(3) - (4)].str), MEMMGR)); } break; case 638: #line 4825 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE); } break; case 639: #line 4829 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,(yyvsp[(3) - (4)].qName)); } break; case 640: #line 4833 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,(yyvsp[(3) - (6)].qName),(yyvsp[(5) - (6)].qName)); } break; case 642: #line 4842 "../src/parser/XQParser.y" { (yyval.qName) = NULL; } break; case 643: #line 4850 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ATTRIBUTE,(yyvsp[(3) - (4)].qName)); } break; case 645: #line 4863 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT); } break; case 646: #line 4867 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (4)].qName)); } break; case 647: #line 4871 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (6)].qName),(yyvsp[(5) - (6)].qName)); } break; case 648: #line 4875 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (7)].qName),(yyvsp[(5) - (7)].qName)); (yyval.itemType)->setAllowNilled(true); } break; case 650: #line 4885 "../src/parser/XQParser.y" { (yyval.qName) = NULL; } break; case 651: #line 4893 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ELEMENT,(yyvsp[(3) - (4)].qName)); } break; case 656: #line 4913 "../src/parser/XQParser.y" { // the string must be whitespace-normalized XMLString::collapseWS((yyvsp[(1) - (1)].str), MEMMGR); if((yyvsp[(1) - (1)].str) && *(yyvsp[(1) - (1)].str) && !XPath2Utils::isValidURI((yyvsp[(1) - (1)].str), MEMMGR)) yyerror((yylsp[(1) - (1)]), "The URI literal is not valid [err:XQST0046]"); (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 657: #line 4925 "../src/parser/XQParser.y" { // TBD weight (yyval.ftselection) = (yyvsp[(1) - (3)].ftselection); for(VectorOfFTOptions::iterator i = (yyvsp[(2) - (3)].ftoptionlist)->begin(); i != (yyvsp[(2) - (3)].ftoptionlist)->end(); ++i) { (*i)->setArgument((yyval.ftselection)); (yyval.ftselection) = *i; } /* delete $2; */ } break; case 658: #line 4940 "../src/parser/XQParser.y" { } break; case 659: #line 4943 "../src/parser/XQParser.y" { } break; case 660: #line 4949 "../src/parser/XQParser.y" { (yyval.ftoptionlist) = new (MEMMGR) VectorOfFTOptions(XQillaAllocator(MEMMGR)); } break; case 661: #line 4953 "../src/parser/XQParser.y" { if((yyvsp[(2) - (2)].ftoption) != NULL) (yyvsp[(1) - (2)].ftoptionlist)->push_back((yyvsp[(2) - (2)].ftoption)); (yyval.ftoptionlist) = (yyvsp[(1) - (2)].ftoptionlist); } break; case 662: #line 4963 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].ftselection)->getType() == FTSelection::OR) { FTOr *op = (FTOr*)(yyvsp[(1) - (3)].ftselection); op->addArg((yyvsp[(3) - (3)].ftselection)); (yyval.ftselection) = op; } else { (yyval.ftselection) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) FTOr((yyvsp[(1) - (3)].ftselection), (yyvsp[(3) - (3)].ftselection), MEMMGR)); } } break; case 664: #line 4980 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].ftselection)->getType() == FTSelection::AND) { FTAnd *op = (FTAnd*)(yyvsp[(1) - (3)].ftselection); op->addArg((yyvsp[(3) - (3)].ftselection)); (yyval.ftselection) = op; } else { (yyval.ftselection) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) FTAnd((yyvsp[(1) - (3)].ftselection), (yyvsp[(3) - (3)].ftselection), MEMMGR)); } } break; case 666: #line 4996 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTMildnot((yyvsp[(1) - (4)].ftselection), (yyvsp[(4) - (4)].ftselection), MEMMGR)); } break; case 668: #line 5006 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTUnaryNot((yyvsp[(2) - (2)].ftselection), MEMMGR)); } break; case 671: #line 5016 "../src/parser/XQParser.y" { // TBD match options (yyval.ftselection) = (yyvsp[(1) - (2)].ftselection); } break; case 672: #line 5025 "../src/parser/XQParser.y" { // TBD FTTimes (yyval.ftselection) = (yyvsp[(1) - (2)].ftselection); } break; case 673: #line 5030 "../src/parser/XQParser.y" { (yyval.ftselection) = (yyvsp[(2) - (3)].ftselection); } break; case 675: #line 5040 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTWords((yyvsp[(1) - (2)].astNode), (yyvsp[(2) - (2)].ftanyalloption), MEMMGR)); } break; case 676: #line 5044 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTWords((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].ftanyalloption), MEMMGR)); } break; case 677: #line 5052 "../src/parser/XQParser.y" { // we don't support any pragma yyerror((yylsp[(1) - (3)]), "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } break; case 678: #line 5057 "../src/parser/XQParser.y" { // we don't support any pragma (yyval.ftselection) = (yyvsp[(3) - (4)].ftselection); } break; case 679: #line 5066 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY; } break; case 680: #line 5070 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY; } break; case 681: #line 5074 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY_WORD; } break; case 682: #line 5078 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ALL; } break; case 683: #line 5082 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ALL_WORDS; } break; case 684: #line 5086 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::PHRASE; } break; case 686: #line 5096 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (3)]), "The FTTimes operator is not supported. [err:FTST0005]"); } break; case 687: #line 5107 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::EXACTLY; (yyval.ftrange).arg1 = (yyvsp[(2) - (2)].astNode); (yyval.ftrange).arg2 = 0; } break; case 688: #line 5113 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::AT_LEAST; (yyval.ftrange).arg1 = (yyvsp[(3) - (3)].astNode); (yyval.ftrange).arg2 = 0; } break; case 689: #line 5119 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::AT_MOST; (yyval.ftrange).arg1 = (yyvsp[(3) - (3)].astNode); (yyval.ftrange).arg2 = 0; } break; case 690: #line 5125 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::FROM_TO; (yyval.ftrange).arg1 = (yyvsp[(2) - (4)].astNode); (yyval.ftrange).arg2 = (yyvsp[(4) - (4)].astNode); } break; case 691: #line 5140 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) FTOrder(MEMMGR)); } break; case 692: #line 5144 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FTWindow((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].ftunit), MEMMGR)); } break; case 693: #line 5148 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FTDistance((yyvsp[(2) - (3)].ftrange), (yyvsp[(3) - (3)].ftunit), MEMMGR)); } break; case 694: #line 5152 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTScope(FTScope::SAME, (yyvsp[(2) - (2)].ftunit), MEMMGR)); } break; case 695: #line 5156 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTScope(FTScope::DIFFERENT, (yyvsp[(2) - (2)].ftunit), MEMMGR)); } break; case 696: #line 5160 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::AT_START, MEMMGR)); } break; case 697: #line 5164 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::AT_END, MEMMGR)); } break; case 698: #line 5168 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::ENTIRE_CONTENT, MEMMGR)); } break; case 699: #line 5176 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::WORDS; } break; case 700: #line 5180 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::SENTENCES; } break; case 701: #line 5184 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::PARAGRAPHS; } break; case 702: #line 5192 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::SENTENCES; } break; case 703: #line 5196 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::PARAGRAPHS; } break; case 714: #line 5232 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::CASE_INSENSITIVE); } break; case 715: #line 5236 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::CASE_SENSITIVE); } break; case 716: #line 5240 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::LOWERCASE); } break; case 717: #line 5244 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::UPPERCASE); } break; case 718: #line 5253 "../src/parser/XQParser.y" { std::cerr << "diacritics insensitive" << std::endl; } break; case 719: #line 5257 "../src/parser/XQParser.y" { std::cerr << "diacritics sensitive" << std::endl; } break; case 720: #line 5265 "../src/parser/XQParser.y" { std::cerr << "using stemming" << std::endl; } break; case 721: #line 5269 "../src/parser/XQParser.y" { std::cerr << "no stemming" << std::endl; } break; case 722: #line 5279 "../src/parser/XQParser.y" { std::cerr << "using thesaurus" << std::endl; } break; case 723: #line 5283 "../src/parser/XQParser.y" { std::cerr << "using thesaurus default" << std::endl; } break; case 724: #line 5287 "../src/parser/XQParser.y" { std::cerr << "using thesaurus ()" << std::endl; } break; case 725: #line 5291 "../src/parser/XQParser.y" { std::cerr << "using thesaurus (default)" << std::endl; } break; case 726: #line 5295 "../src/parser/XQParser.y" { std::cerr << "no thesaurus" << std::endl; } break; case 727: #line 5302 "../src/parser/XQParser.y" { } break; case 728: #line 5305 "../src/parser/XQParser.y" { } break; case 729: #line 5312 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral" << std::endl; } break; case 730: #line 5316 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral relationship StringLiteral" << std::endl; } break; case 731: #line 5320 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral levels" << std::endl; } break; case 732: #line 5324 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral relationship StringLiteral levels" << std::endl; } break; case 733: #line 5334 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (4)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 734: #line 5338 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (3)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 735: #line 5342 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (4)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 736: #line 5349 "../src/parser/XQParser.y" { } break; case 737: #line 5352 "../src/parser/XQParser.y" { } break; case 738: #line 5360 "../src/parser/XQParser.y" { std::cerr << "at URILiteral" << std::endl; } break; case 739: #line 5364 "../src/parser/XQParser.y" { std::cerr << "()" << std::endl; } break; case 740: #line 5371 "../src/parser/XQParser.y" { std::cerr << "StringLiteral" << std::endl; } break; case 741: #line 5375 "../src/parser/XQParser.y" { std::cerr << ", StringLiteral" << std::endl; } break; case 742: #line 5383 "../src/parser/XQParser.y" { std::cerr << "union" << std::endl; } break; case 743: #line 5387 "../src/parser/XQParser.y" { std::cerr << "except" << std::endl; } break; case 744: #line 5395 "../src/parser/XQParser.y" { std::cerr << "language StringLiteral" << std::endl; } break; case 745: #line 5403 "../src/parser/XQParser.y" { std::cerr << "using wildcards" << std::endl; } break; case 746: #line 5407 "../src/parser/XQParser.y" { std::cerr << "no wildcards" << std::endl; } break; case 747: #line 5415 "../src/parser/XQParser.y" { } break; case 748: #line 5422 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(3) - (3)].astNode); } break; case 749: #line 5430 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_STRICT); } break; case 750: #line 5435 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_LAX); } break; case 751: #line 5440 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_SKIP); } break; case 752: #line 5452 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UInsertAsFirst((yyvsp[(2) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 753: #line 5456 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UInsertAsLast((yyvsp[(2) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 754: #line 5460 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertInto((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 755: #line 5464 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertAfter((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 756: #line 5468 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertBefore((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 759: #line 5479 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UDelete((yyvsp[(2) - (2)].astNode), MEMMGR)); } break; case 762: #line 5490 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) UReplaceValueOf((yyvsp[(5) - (7)].astNode), (yyvsp[(7) - (7)].astNode), MEMMGR)); } break; case 763: #line 5494 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) UReplace((yyvsp[(3) - (5)].astNode), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 764: #line 5504 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) URename((yyvsp[(3) - (5)].astNode), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 765: #line 5512 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UTransform((yyvsp[(2) - (6)].copyBindingList), (yyvsp[(4) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 766: #line 5519 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].copyBindingList)->push_back((yyvsp[(3) - (3)].copyBinding)); (yyval.copyBindingList) = (yyvsp[(1) - (3)].copyBindingList); } break; case 767: #line 5524 "../src/parser/XQParser.y" { (yyval.copyBindingList) = new (MEMMGR) VectorOfCopyBinding(XQillaAllocator(MEMMGR)); (yyval.copyBindingList)->push_back((yyvsp[(1) - (1)].copyBinding)); } break; case 768: #line 5532 "../src/parser/XQParser.y" { (yyval.copyBinding) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) CopyBinding(MEMMGR, (yyvsp[(2) - (4)].str), (yyvsp[(4) - (4)].astNode))); } break; case 769: #line 5541 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, (yyvsp[(1) - (1)].str), AnyAtomicType::DECIMAL, MEMMGR)); } break; case 770: #line 5553 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, (yyvsp[(1) - (1)].str), AnyAtomicType::DECIMAL, MEMMGR)); } break; case 771: #line 5565 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, (yyvsp[(1) - (1)].str), AnyAtomicType::DOUBLE, MEMMGR)); } break; case 772: #line 5578 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(1) - (1)].str), AnyAtomicType::STRING, MEMMGR)); } break; case 773: #line 5589 "../src/parser/XQParser.y" { // Check for a colon for(XMLCh *tmp = (yyvsp[(1) - (1)].str); *tmp; ++tmp) if(*tmp == ':') yyerror((yylsp[(1) - (1)]), "Expecting an NCName, found a QName"); } break; case 774: #line 5598 "../src/parser/XQParser.y" { (yyval.qName) = new (MEMMGR) QualifiedName((yyvsp[(1) - (1)].str),MEMMGR); } break; case 775: #line 5610 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (5)].str), 0, signature, (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 776: #line 5615 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(5) - (7)].argSpecs), (yyvsp[(6) - (7)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (7)].str), 0, signature, (yyvsp[(7) - (7)].astNode), MEMMGR)); } break; case 777: #line 5620 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (8)].str), (yyvsp[(7) - (8)].itemList), signature, (yyvsp[(8) - (8)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(5) - (8)].modeList)); } break; case 778: #line 5626 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(8) - (10)].argSpecs), (yyvsp[(9) - (10)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (10)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (10)].str), (yyvsp[(7) - (10)].itemList), signature, (yyvsp[(10) - (10)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(5) - (10)].modeList)); } break; case 779: #line 5632 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQUserFunction(0, (yyvsp[(5) - (6)].itemList), signature, (yyvsp[(6) - (6)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(3) - (6)].modeList)); } break; case 780: #line 5638 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(6) - (8)].argSpecs), (yyvsp[(7) - (8)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction(0, (yyvsp[(5) - (8)].itemList), signature, (yyvsp[(8) - (8)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(3) - (8)].modeList)); } break; case 781: #line 5647 "../src/parser/XQParser.y" { (yyval.sequenceType) = 0; } break; case 782: #line 5651 "../src/parser/XQParser.y" { (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 783: #line 5659 "../src/parser/XQParser.y" { (yyval.argSpecs) = 0; } break; case 784: #line 5663 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(2) - (3)].argSpecs); } break; case 785: #line 5670 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); (yyval.modeList)->push_back(WRAP((yyloc), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); } break; case 786: #line 5675 "../src/parser/XQParser.y" { (yyval.modeList) = (yyvsp[(2) - (2)].modeList); } break; case 787: #line 5683 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); (yyval.modeList)->push_back((yyvsp[(1) - (1)].mode)); } break; case 788: #line 5688 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].modeList)->push_back((yyvsp[(3) - (3)].mode)); (yyval.modeList) = (yyvsp[(1) - (3)].modeList); } break; case 789: #line 5697 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode((yyvsp[(1) - (1)].str))); } break; case 790: #line 5701 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 791: #line 5705 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL)); } break; case 792: #line 5713 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQCallTemplate((yyvsp[(3) - (3)].str), 0, MEMMGR)); } break; case 793: #line 5717 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQCallTemplate((yyvsp[(3) - (7)].str), (yyvsp[(6) - (7)].templateArgs), MEMMGR)); } break; case 794: #line 5725 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (3)].astNode), 0, 0, MEMMGR)); } break; case 795: #line 5729 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (7)].astNode), (yyvsp[(6) - (7)].templateArgs), 0, MEMMGR)); } break; case 796: #line 5733 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (5)].astNode), 0, (yyvsp[(5) - (5)].mode), MEMMGR)); } break; case 797: #line 5737 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (9)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (9)].astNode), (yyvsp[(8) - (9)].templateArgs), (yyvsp[(5) - (9)].mode), MEMMGR)); } break; case 798: #line 5745 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode((yyvsp[(1) - (1)].str))); } break; case 799: #line 5749 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 800: #line 5753 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } break; case 801: #line 5761 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); (yyval.templateArgs)->push_back((yyvsp[(1) - (1)].templateArg)); } break; case 802: #line 5766 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (3)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(3) - (3)].templateArg)); } break; case 803: #line 5776 "../src/parser/XQParser.y" { if((yyvsp[(3) - (5)].sequenceType) != 0) (yyvsp[(5) - (5)].astNode) = (yyvsp[(3) - (5)].sequenceType)->convertFunctionArg((yyvsp[(5) - (5)].astNode), CONTEXT, /*numericfunction*/false, (yyvsp[(3) - (5)].sequenceType)); (yyval.templateArg) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQTemplateArgument((yyvsp[(2) - (5)].str), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 806: #line 5793 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQFunctionRef((yyvsp[(1) - (3)].str), atoi(UTF8((yyvsp[(3) - (3)].str))), MEMMGR)); } break; case 807: #line 5801 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(2) - (4)].argSpecs), (yyvsp[(3) - (4)].sequenceType), MEMMGR); XQUserFunction *func = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQUserFunction(0, signature, (yyvsp[(4) - (4)].astNode), false, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQInlineFunction(func, MEMMGR)); } break; case 808: #line 5812 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(DynamicFunctionInvocation, (yylsp[(1) - (3)])); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQFunctionDeref((yyvsp[(1) - (3)].astNode), new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)), MEMMGR)); } break; case 809: #line 5817 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(DynamicFunctionInvocation, (yylsp[(1) - (4)])); bool partial = false; VectorOfASTNodes::iterator i; for(i = (yyvsp[(3) - (4)].itemList)->begin(); i != (yyvsp[(3) - (4)].itemList)->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPartialApply((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].itemList), MEMMGR)); } else { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionDeref((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].itemList), MEMMGR)); } } break; case 812: #line 5845 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION); } break; case 813: #line 5853 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)), (yyvsp[(5) - (5)].sequenceType)); } break; case 814: #line 5857 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType((yyvsp[(3) - (6)].sequenceTypes), (yyvsp[(6) - (6)].sequenceType)); } break; case 815: #line 5864 "../src/parser/XQParser.y" { (yyval.sequenceTypes) = new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)); (yyval.sequenceTypes)->push_back((yyvsp[(1) - (1)].sequenceType)); } break; case 816: #line 5869 "../src/parser/XQParser.y" { (yyval.sequenceTypes) = (yyvsp[(1) - (3)].sequenceTypes); (yyval.sequenceTypes)->push_back((yyvsp[(3) - (3)].sequenceType)); } break; case 817: #line 5878 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(2) - (3)].itemType); } break; /* Line 1267 of yacc.c. */ #line 10680 "../src/parser/XQParser.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else { YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) { YYSIZE_T yyalloc = 2 * yysize; if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yyalloc); if (yymsg) yymsg_alloc = yyalloc; else { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; } } if (0 < yysize && yysize <= yymsg_alloc) { (void) yysyntax_error (yymsg, yystate, yychar); yyerror (yymsg); } else { yyerror (YY_("syntax error")); if (yysize != 0) goto yyexhaustedlab; } } #endif } yyerror_range[0] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc); yychar = YYEMPTY; } } /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; yyerror_range[0] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[0] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of the look-ahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } #line 5913 "../src/parser/XQParser.y" } // namespace XQParser XQilla-2.3.4/src/axis/0000755001725400016040000000000013273141207011452 500000000000000XQilla-2.3.4/src/axis/NodeTest.cpp0000644001725400016040000002336513273140037013634 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NodeTest::NodeTest() : _name(0), _uri(0), _prefix(0), _type(0), _wildcardName(false), _wildcardNamespace(false), _wildcardType(false), _usePrefix(false), _hasChildren(false), _itemType(0) { } NodeTest::NodeTest(const XMLCh *nodeType, const XMLCh *uri, const XMLCh *name) : _name(name), _uri(uri), _prefix(0), _type(nodeType), _wildcardName(name == 0), _wildcardNamespace(name == 0), _wildcardType(nodeType == 0), _usePrefix(false), _hasChildren(false), _itemType(0) { } NodeTest::NodeTest(const NodeTest *o) : _name(o->_name), _uri(o->_uri), _prefix(o->_prefix), _type(o->_type), _wildcardName(o->_wildcardName), _wildcardNamespace(o->_wildcardNamespace), _wildcardType(o->_wildcardType), _usePrefix(o->_usePrefix), _hasChildren(o->_hasChildren), _itemType(o->_itemType) { } NodeTest::~NodeTest() { delete _itemType; } void *NodeTest::getInterface(const XMLCh *name) const { return 0; } void NodeTest::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(_itemType) { _itemType->getStaticType(st, context, isExact, location); } else { if(_wildcardType) { if(_hasChildren) { st = StaticType::ELEMENT_TYPE | StaticType::DOCUMENT_TYPE; } else { st = StaticType::NODE_TYPE; } } else if(_type == Node::document_string) { st = StaticType::DOCUMENT_TYPE; } else if(_type == Node::element_string) { st = StaticType::ELEMENT_TYPE; } else if(_type == Node::attribute_string) { st = StaticType::ATTRIBUTE_TYPE; } else if(_type == Node::namespace_string) { st = StaticType::NAMESPACE_TYPE; } else if(_type == Node::processing_instruction_string) { st = StaticType::PI_TYPE; } else if(_type == Node::comment_string) { st = StaticType::COMMENT_TYPE; } else if(_type == Node::text_string) { st = StaticType::TEXT_TYPE; } if(_wildcardName && _wildcardNamespace) isExact = true; else isExact = false; } } Result NodeTest::filterResult(const Result &toFilter, const LocationInfo *info) const { return new FilterResult(info, toFilter, this); } bool NodeTest::filterNode(Node::Ptr node, DynamicContext* context) const { if(_itemType) return _itemType->matches(node, context); else return checkNodeType(node) && checkNodeName(node, context); } bool NodeTest::checkNodeType(Node::Ptr node) const { assert(node.notNull()); if(_wildcardType) { if(_hasChildren) { return node->dmNodeKind() == Node::element_string || node->dmNodeKind() == Node::document_string; } else return true; } return node->dmNodeKind() == _type; } bool NodeTest::checkNodeName(Node::Ptr node, const DynamicContext *context) const { ATQNameOrDerived::Ptr name = node->dmNodeName(context); const XMLCh *uri = _uri; if(uri == 0 && node->dmNodeKind() == Node::element_string) { uri = context->getDefaultElementAndTypeNS(); } return (_wildcardName || (name.notNull() && XPath2Utils::equals(((ATQNameOrDerived*)name.get())->getName(), _name))) && (_wildcardNamespace || (name.notNull() && XPath2Utils::equals(((ATQNameOrDerived*)name.get())->getURI(), uri))); } void NodeTest::setNodeName(const XMLCh* name) { _name = name; } void NodeTest::setNodePrefix(const XMLCh* prefix) { _prefix=prefix; _usePrefix=true; } void NodeTest::setNodeUri(const XMLCh* uri) { _uri = uri; _usePrefix=false; } void NodeTest::setNodeType(const XMLCh *type) { _type = type; } void NodeTest::setNameWildcard(bool value) { _wildcardName = value; } void NodeTest::setNamespaceWildcard(bool value) { _wildcardNamespace = value; } void NodeTest::setTypeWildcard(bool value) { _wildcardType = value; } bool NodeTest::getHasChildren() const { return _hasChildren; } void NodeTest::setHasChildren(bool value) { _hasChildren = value; } const XMLCh *NodeTest::getNodeType() const { return _type; } const XMLCh* NodeTest::getNodeUri() const { return _uri; } const XMLCh* NodeTest::getNodePrefix() const { return _prefix; } const XMLCh* NodeTest::getNodeName() const { return _name; } bool NodeTest::getNameWildcard() const { return _wildcardName; } bool NodeTest::getNamespaceWildcard() const { return _wildcardNamespace; } bool NodeTest::getTypeWildcard() const { return _wildcardType; } bool NodeTest::isNodeTypeSet() const { return _type != 0; } void NodeTest::staticResolution(StaticContext *context, const LocationInfo *location) { if(isNodePrefixSet()) { setNodeUri(context->getUriBoundToPrefix(getNodePrefix(), location)); } if(!_wildcardNamespace && _uri == 0 && !_wildcardType && _type == Node::element_string) { _uri = context->getDefaultElementAndTypeNS(); } // Convert certain NodeTest objects that use an ItemType to ones that don't, // for efficiency and simplicity of comparison. if(_itemType != 0) { _itemType->staticResolution(context, location); switch(_itemType->getItemTestType()) { case SequenceType::ItemType::TEST_NODE: _wildcardType = true; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_DOCUMENT: if(_itemType->getName() == 0 && _itemType->getType() == 0) { _wildcardType = false; _type = Node::document_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; } break; case SequenceType::ItemType::TEST_TEXT: _wildcardType = false; _type = Node::text_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_COMMENT: _wildcardType = false; _type = Node::comment_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_PI: _wildcardType = false; _type = Node::processing_instruction_string; _wildcardNamespace = true; if(_itemType->getName() == 0) { _wildcardName = true; } else { _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; break; case SequenceType::ItemType::TEST_ATTRIBUTE: if(_itemType->getType() == 0) { _wildcardType = false; _type = Node::attribute_string; if(_itemType->getName() == 0) { _wildcardNamespace = true; _wildcardName = true; } else { _wildcardNamespace = false; _uri = context->getUriBoundToPrefix(_itemType->getName()->getPrefix(), location); _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; } break; case SequenceType::ItemType::TEST_ELEMENT: if(_itemType->getType() == 0) { _wildcardType = false; _type = Node::element_string; if(_itemType->getName() == 0) { _wildcardNamespace = true; _wildcardName = true; } else { _wildcardNamespace = false; _uri = context->getUriBoundToPrefix(_itemType->getName()->getPrefix(), location); _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; } break; default: break; } } } bool NodeTest::isNodePrefixSet() const { return _usePrefix; } SequenceType::ItemType* NodeTest::getItemType() const { return _itemType; } void NodeTest::setItemType(SequenceType::ItemType* type) { _itemType=type; } bool NodeTest::isSubsetOf(const NodeTest *o) const { if(o->_itemType != 0 || _itemType != 0) return false; if(!o->_wildcardType && (_wildcardType || o->_type != _type)) return false; if(!o->_wildcardNamespace && (_wildcardNamespace || !XPath2Utils::equals(o->_uri, _uri))) return false; if(!o->_wildcardName && (_wildcardName || !XPath2Utils::equals(o->_name, _name))) return false; return true; } bool NodeTest::isSubsetOf(const NodeTest *a, const NodeTest *b) { if(b == 0) return true; if(a == 0) return b->_itemType == 0 && b->_wildcardType && b->_wildcardNamespace && b->_wildcardName; return a->isSubsetOf(b); } ///////////////////////////////////// // FilterResult ///////////////////////////////////// NodeTest::FilterResult::FilterResult(const LocationInfo *info, const Result &toFilter, const NodeTest *nodeTest) : ResultImpl(info), toFilter_(toFilter), nodeTest_(nodeTest) { } Item::Ptr NodeTest::FilterResult::next(DynamicContext *context) { Node::Ptr result = 0; while((result = toFilter_->next(context)).notNull() && !nodeTest_->filterNode(result, context)) {} return result; } XQilla-2.3.4/src/lexer/0000755001725400016040000000000013273141207011625 500000000000000XQilla-2.3.4/src/lexer/XQLexer2.cpp0000644001725400016040000002344413273140037013672 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "XQLexer.hpp" #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; XQLexer::XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, const XMLCh* query, XQilla::Language lang) : Lexer(memMgr, lang, queryFile, 1, 1), firstToken_(_LANG_XQUERY_), mode_(MODE_NORMAL), m_szQuery(XPath2Utils::normalizeEOL(query, memMgr)), m_ownQuery(true), m_nLength(XPath2Utils::uintStrlen(m_szQuery)), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { if((m_language & XQilla::XPATH2) != 0) { firstToken_ = _LANG_XPATH2_; } else { firstToken_ = _LANG_XQUERY_; } } XQLexer::XQLexer(XPath2MemoryManager* memMgr, int firstToken, const XMLCh *queryFile, int line, int column, const XMLCh *query) : Lexer(memMgr, (XQilla::Language)(XQilla::XQUERY3_FULLTEXT_UPDATE | XQilla::EXTENSIONS), queryFile, line, column), firstToken_(firstToken), mode_(MODE_NORMAL), m_szQuery(XPath2Utils::normalizeEOL(query, memMgr)), m_ownQuery(true), m_nLength(XPath2Utils::uintStrlen(m_szQuery)), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { } XQLexer::XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, int line, int column, const XMLCh* query, unsigned int length, const std::vector &offsets, XQilla::Language lang, StartMode mode) : Lexer(memMgr, lang, queryFile, line, column), firstToken_(MYEOF), mode_(mode), m_szQuery(query), m_ownQuery(false), m_nLength(length), m_offsets(offsets), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { } XQLexer::XQLexer(const XQLexer *other) : Lexer(other->mm_, other->m_language, other->m_szQueryFile, 1, 1), firstToken_(MYEOF), mode_(MODE_NORMAL), m_szQuery(other->m_szQuery + other->m_index), m_ownQuery(false), m_nLength(other->m_nLength - other->m_index), m_offsets(other->m_offsets), m_position(0), m_index(0), m_currentOffset(other->m_currentOffset), m_nOpenComments(0) { m_bGenerateErrorException = false; yy_start = other->yy_start; } XQLexer::~XQLexer() { if(m_szQuery && m_ownQuery) mm_->deallocate((void*)m_szQuery); } int XQLexer::yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { int nextToken=yylex(); memcpy(pYYLVAL,&yylval,sizeof(YYSTYPE)); memcpy(pYYLOC,&yyloc,sizeof(YYLTYPE)); if(nextToken==0 && !isCommentClosed()) LexerError("Unterminated comment"); return nextToken; } void XQLexer::beginComment() { m_nOpenComments++; } void XQLexer::endComment() { if(m_nOpenComments==0) { error("Unbalanced comment found"); return; } m_nOpenComments--; } bool XQLexer::isCommentClosed() { return m_nOpenComments==0; } XMLCh* XQLexer::allocate_string(const XMLCh* src) { return (XMLCh*)mm_->getPooledString(src); } XMLCh* XQLexer::allocate_string(const XMLCh* src, int len) { return (XMLCh*)XPath2Utils::subString(src,0,len,mm_); } XMLCh *XQLexer::allocate_string_and_unescape(XMLCh *src, int len, XMLCh quoteChar, bool unescapeBrace, bool unescapeEntities, bool unescapeCDATA) { // The input to this method has already been validated by the lexer, // so we don't need to do error checking *(src + len) = 0; // Null terminate the source XMLCh *result = (XMLCh*)mm_->allocate((len + 1) * sizeof(XMLCh)); XMLCh *dst = result; for(; *src; ++src) { switch(*src) { case '&': if(!unescapeEntities) { *dst = *src; ++dst; break; } ++src; switch(*src) { case 'a': ++src; if(*src == 'm') { // & *dst = '&'; ++dst; src += 2; } else { // ' *dst = '\''; ++dst; src += 3; } break; case 'g': // > *dst = '>'; ++dst; src += 2; break; case 'l': // < *dst = '<'; ++dst; src += 2; break; case 'q': // " *dst = '"'; ++dst; src += 4; break; case '#': { // character reference unsigned int value = 0; unsigned int radix = 10; ++src; if(*src == 'x') { ++src; radix=16; } for(; *src != ';'; ++src) { if(*src >= 'a') value = (value * radix) + (*src - 'a' + 10); else if(*src >= 'A') value = (value * radix) + (*src - 'A' + 10); else value = (value * radix) + (*src - '0'); } if(!XMLChar1_0::isXMLChar(value)) error("Entity reference is not a valid XML character [err:XQST0090]"); if(value <= 0xFFFD) *dst = value; else if (value >= 0x10000 && value <= 0x10FFFF) { value -= 0x10000; *dst = (value >> 10) + 0xD800; ++dst; *dst = (value & 0x3FF) + 0xDC00; } ++dst; break; } default: error("Should never happen"); break; } break; case '\n': case '\r': case '\t': if(quoteChar != 0 && unescapeBrace) { // Normalize whitespace in attribute contents *dst = chSpace; } else { *dst = *src; } ++dst; break; case '<': { if(!unescapeCDATA) { *dst = *src; ++dst; break; } src += 9; // Length of "= 2 && *src == '>') { // Don't include the terminator "]]>" dst -= 2; break; } else { endSeen = 0; } *dst = *src; ++dst; } break; } case '\'': case '"': *dst = *src; ++dst; if(*src == quoteChar && *(src + 1) == quoteChar) ++src; break; case '{': case '}': *dst = *src; ++dst; if(unescapeBrace && *(src + 1) == *src) ++src; break; default: *dst = *src; ++dst; break; } } *dst = 0; return result; } int XQLexer::LexerInput( YY_CHAR* buf, int max_size ) { int nToRead=m_nLength-m_position; if(nToRead==0) return 0; if(nToRead>max_size) nToRead=max_size; memcpy(buf, m_szQuery + m_position, nToRead * sizeof(XMLCh)); m_position+=nToRead; return nToRead; } void XQLexer::LexerOutput( const YY_CHAR* buf, int size ) { // do nothing } void XQLexer::LexerError( const char* msg ) { error(msg); } void Lexer::Error( const char* msg, int line, int col ) { if(!m_bGenerateErrorException) return; if(strstr(msg, "[err:")!=NULL) XQSimpleThrow(X(msg), m_szQueryFile, line, col); const XMLCh* szMsg=XPath2Utils::concatStrings(X(msg), X(" [err:XPST0003]"), mm_); XQSimpleThrow(szMsg, m_szQueryFile, line, col); } void Lexer::Error(XQilla::Language lang, const char *where, unsigned int line, unsigned int col) { if(!m_bGenerateErrorException) return; XMLBuffer buf; buf.append(X("Invalid ")); if((lang & XQilla::XPATH2) != 0) { buf.append(X("XPath 2.0")); } else { buf.append(X("XQuery")); } if((lang & XQilla::FULLTEXT) != 0) { buf.append(X(" Full-Text")); } if((lang & XQilla::UPDATE) != 0) { buf.append(X(" Update")); } if((lang & XQilla::EXTENSIONS) != 0) { buf.append(X(" with extensions")); } buf.append(X(" syntax: ")); buf.append(X(where)); buf.append(X(" [err:XPST0003]")); XQSimpleThrow(buf.getRawBuffer(), m_szQueryFile, line, col); } void XQLexer::userAction(YY_CHAR* text, int length) { yyloc.first_line = m_lineno; yyloc.first_column = m_columnno; yyloc.first_offset = m_index; m_index += length; for(int i = 0; i < length; ++i) { if(text[i] == '\n') { ++m_lineno; m_columnno = 1; } else if(text[i] != '\r') ++m_columnno; } // Make adjustments for the offsets we've been given while(m_currentOffset < m_offsets.size()) { ValueOffset &off = m_offsets[m_currentOffset]; if(off.index >= m_index) break; m_lineno += off.lineOffset; m_columnno += off.columnOffset; ++m_currentOffset; } yyloc.last_line = m_lineno; yyloc.last_column = m_columnno; yyloc.last_offset = m_index - 1; } void XQLexer::undoUserAction() { // undo the changes done in the user action, or there will be a hole in the (first,last) sequence m_lineno=yyloc.last_line=yyloc.first_line; m_columnno=yyloc.last_column=yyloc.first_column; m_index=yyloc.last_offset=yyloc.first_offset; } void XQLexer::yy_pop_state() { if(yy_start_stack_ptr == 0) { char szMsg[256], text[256]; XMLString::copyString(szMsg, "Unbalanced '"); XMLString::transcode((XMLCh*)yytext, text, 256); XMLString::catString(szMsg, text); XMLString::catString(szMsg, "' token"); LexerError(szMsg); } else yyFlexLexer::yy_pop_state(); } int XQLexer::lookAhead() { return XQLexer(this).yylex(); } XQilla-2.3.4/src/lexer/XQLexer.hpp0000644001725400016040000002255713273140037013621 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQLEXER_H #define XQLEXER_H // #define XQ_DEBUG_LEXER 1 #define YY_CHAR unsigned short #include #include #include #include typedef struct yyltype { int first_line; int first_column; int last_line; int last_column; int first_offset; int last_offset; } yyltype; #define YYLTYPE yyltype #define YYLTYPE_IS_DECLARED 1 #define YYLTYPE_IS_TRIVIAL 1 #define YY_USER_ACTION userAction(yytext, yyleng); #define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = (Rhs)[1].first_line; \ (Current).first_column = (Rhs)[1].first_column; \ (Current).last_line = (Rhs)[N].last_line; \ (Current).last_column = (Rhs)[N].last_column; \ (Current).first_offset = (Rhs)[1].first_offset; \ (Current).last_offset = (Rhs)[N].last_offset; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ (Rhs)[0].last_line; \ (Current).first_column = (Current).last_column = \ (Rhs)[0].last_column; \ (Current).first_offset = (Current).last_offset = \ (Rhs)[0].last_offset; \ } \ while (0) #ifndef yyFlexLexer #define yyFlexLexer xqFlexLexer #include "FlexLexer.h" #endif #include #include #include #include #ifndef YYSTYPE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class LetTuple; class XQGlobalVariable; typedef union { XMLCh* str; ASTNode* astNode; XQSequence *parenExpr; XQUserFunction* functDecl; ArgumentSpec* argSpec; ArgumentSpecs* argSpecs; FunctionSignature *signature; XQUserFunction::Mode* mode; XQUserFunction::ModeList* modeList; XQGlobalVariable *globalVar; NodeTest *nodeTest; XQStep::Axis axis; QualifiedName *qName; SequenceType* sequenceType; SequenceType::OccurrenceIndicator occurrence; SequenceType::ItemType* itemType; VectorOfSequenceTypes *sequenceTypes; VectorOfASTNodes* itemList; VectorOfPredicates* predicates; TupleNode *tupleNode; LetTuple *letTuple; CopyBinding* copyBinding; VectorOfCopyBinding* copyBindingList; XQTemplateArgument *templateArg; TemplateArguments *templateArgs; XQTypeswitch::Case *caseClause; XQTypeswitch::Cases *caseClauses; OrderByTuple::Modifiers orderByModifier; VectorOfStrings* stringList; FTSelection *ftselection; FTWords::FTAnyallOption ftanyalloption; FTOption *ftoption; VectorOfFTOptions *ftoptionlist; FTRange ftrange; FTOption::FTUnit ftunit; bool boolean; int integer; } yystype; #define YYSTYPE yystype #define YYSTYPE_IS_DECLARED 1 #define YYSTYPE_IS_TRIVIAL 1 #endif // #ifndef YYSTYPE #include "../parser/XQParser.hpp" // to be included *after* defining YYSTYPE and YYLTYPE class XQILLA_API Lexer { public: virtual ~Lexer() {} virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) = 0; int error(const char* message) { Error(message, m_lineno, m_columnno); return 0; } int error(const yyltype &pos, const char* message) { Error(message, pos.first_line, pos.first_column); return 0; } int error(XQilla::Language lang, const char* where, unsigned int line, unsigned int column) { Error(lang, where, line, column); return 0; } XQilla::Language getLanguage() const { return m_language; } bool isXQuery() const { return (m_language & (XQilla::XPATH2 | XQilla::XSLT2)) == 0; } bool isXPath() const { return (m_language & XQilla::XPATH2) != 0; } bool isXSLT() const { return (m_language & XQilla::XSLT2) != 0; } bool isFullText() const { return (m_language & XQilla::FULLTEXT) != 0; } bool isUpdate() const { return (m_language & XQilla::UPDATE) != 0; } bool isVersion3() const { return (m_language & XQilla::VERSION3) != 0; } bool isExtensions() const { return (m_language & XQilla::EXTENSIONS) != 0; } void setVersion3(bool value) { m_language = (XQilla::Language)((m_language & ~(XQilla::VERSION3)) | (value ? XQilla::VERSION3 : 0)); } void setGenerateErrorException(bool bEnable) { m_bGenerateErrorException=bEnable; } virtual void undoLessThan() = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNSResolver() const { return 0; } const XMLCh *getFile() const { return m_szQueryFile; } XPath2MemoryManager *getMemoryManager() const { return mm_; } protected: Lexer(XPath2MemoryManager *mm, XQilla::Language lang, const XMLCh *queryFile, int line, int column) : mm_(mm), m_language(lang), m_szQueryFile(queryFile), m_lineno(line), m_columnno(column), m_bGenerateErrorException(true) { } void Error(const char* msg, int line, int col); void Error(XQilla::Language lang, const char *where, unsigned int line, unsigned int col); XPath2MemoryManager *mm_; XQilla::Language m_language; const XMLCh* m_szQueryFile; int m_lineno,m_columnno; bool m_bGenerateErrorException; }; class XQILLA_API XQLexer : public Lexer, public yyFlexLexer { public: enum StartMode { MODE_NORMAL, MODE_ATTR_VALUE_TEMPLATE, MODE_TEMPLATE_MODES, MODE_OUTPUT_METHOD, MODE_QNAMES }; struct ValueOffset { ValueOffset(int i, int l, int c) : index(i), lineOffset(l), columnOffset(c) {} int index, lineOffset, columnOffset; }; XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, const XMLCh* query, XQilla::Language lang); XQLexer(XPath2MemoryManager* memMgr, int firstToken, const XMLCh *queryFile, int line, int column, const XMLCh *query); XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, int line, int column, const XMLCh* query, unsigned int length, const std::vector &offsets, XQilla::Language lang, StartMode mode = MODE_NORMAL); ~XQLexer(); // Implemented in XQLexer.cpp, output of XQLexer.l int yylex(); virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); const XMLCh* getQueryString() { return m_szQuery; } virtual void undoLessThan(); protected: // For look ahead XQLexer(const XQLexer *other); virtual int LexerInput(YY_CHAR* buf, int max_size); virtual void LexerOutput(const YY_CHAR* buf, int size); virtual void LexerError(const char* msg); virtual void yy_pop_state(); void userAction(YY_CHAR* text, int length); void undoUserAction(); int lookAhead(); void beginComment(); void endComment(); bool isCommentClosed(); XMLCh *allocate_string(const XMLCh* src); XMLCh *allocate_string(const XMLCh* src, int len); XMLCh *allocate_string_and_unescape(XMLCh toBeUnescaped, const XMLCh* src, int len); XMLCh *allocate_string_and_unescape(XMLCh *src, int len, XMLCh quoteChar, bool unescapeBrace, bool unescapeEntities, bool unescapeCDATA); YYSTYPE yylval; YYLTYPE yyloc; int firstToken_; StartMode mode_; const XMLCh* m_szQuery; bool m_ownQuery; unsigned int m_nLength; std::vector m_offsets; int m_position,m_index; unsigned int m_currentOffset; int m_nOpenComments; }; class XQILLA_API XQParserArgs { public: XQParserArgs(Lexer *lexer, XQQuery *query) : _lexer(lexer), _context((DynamicContext*)query->getStaticContext()), _query(query), _function(0), _moduleName(0), _flags(32), _namespaceDecls(13) { } XQParserArgs(Lexer *lexer) : _lexer(lexer), _context(0), _query(0), _function(0), _moduleName(0), _flags(32), _namespaceDecls(13) { } Lexer* _lexer; DynamicContext* _context; XQQuery* _query; XQUserFunction *_function; FunctionSignature *_signature; const XMLCh *_moduleName; XERCES_CPP_NAMESPACE_QUALIFIER BitSet _flags; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf _namespaceDecls; }; namespace XQParser { extern XQILLA_API int yyparse(void *); extern XQILLA_API int yydebug; } #endif XQilla-2.3.4/src/lexer/XQLexer.l0000644001725400016040000011004113273140037013247 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ %{ #include #include #include #include "XQLexer.hpp" #include "../parser/XQParser.hpp" #ifdef XQ_DEBUG_LEXER #include #define CHANGE_STATE(state) BEGIN((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #define RECOGNIZE_VALUE(token, value) { \ yylval.str = allocate_string((XMLCh*)(value)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_LEN(token, value, length) { \ yylval.str = allocate_string((XMLCh*)(value), (length)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) { \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) std::cerr << "Push: " << xqGetStateName(YYSTATE) << ", "; yy_push_state((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define POP() yy_pop_state(); std::cerr << "Pop: " << xqGetStateName(YYSTATE) << ", " #else #define CHANGE_STATE(state) BEGIN((state)) #define RECOGNIZE(token) return token #define RECOGNIZE_VALUE(token, value) yylval.str = allocate_string((XMLCh*)(value)); return token #define RECOGNIZE_VALUE_LEN(token, value, length) yylval.str = allocate_string((XMLCh*)(value), (length)); return token #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); return token // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) yy_push_state((state)) #define POP() yy_pop_state() #endif %} /* UTF16 Surrogates, for chars above 0xFFFF */ HighSurrogates ([\xD800-\xDB7F]) HighPrivateUseSurrogates ([\xDB80-\xDBFF]) LowSurrogates ([\xDC00-\xDFFF]) SurrogatePairs {HighSurrogates}|{HighPrivateUseSurrogates}|{LowSurrogates} NonPrivateUseSurrogates {HighSurrogates}|{LowSurrogates} Digits [0-9]+ Char ([\x0009]|[\x000D]|[\x000A]|[\x0020-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) WhitespaceChar ([\x0009]|[\x000D]|[\x000A]|[\x0020]) Letter {BaseChar}|{Ideographic} BaseChar1 ([\x0041-\x005A]|[\x0061-\x007A]|[\x00C0-\x00D6]|[\x00D8-\x00F6]|[\x00F8-\x00FF]|[\x0100-\x0131]|[\x0134-\x013E]|[\x0141-\x0148]|[\x014A-\x017E]|[\x0180-\x01C3]|[\x01CD-\x01F0]|[\x01F4-\x01F5]|[\x01FA-\x0217]|[\x0250-\x02A8]|[\x02BB-\x02C1]|[\x0386]|[\x0388-\x038A]|[\x038C]|[\x038E-\x03A1]|[\x03A3-\x03CE]|[\x03D0-\x03D6]|[\x03DA]|[\x03DC]|[\x03DE]|[\x03E0]|[\x03E2-\x03F3]|[\x0401-\x040C]|[\x040E-\x044F]|[\x0451-\x045C]|[\x045E-\x0481]|[\x0490-\x04C4]|[\x04C7-\x04C8]|[\x04CB-\x04CC]|[\x04D0-\x04EB]|[\x04EE-\x04F5]|[\x04F8-\x04F9]|[\x0531-\x0556]|[\x0559]|[\x0561-\x0586]|[\x05D0-\x05EA]|[\x05F0-\x05F2]|[\x0621-\x063A]|[\x0641-\x064A]|[\x0671-\x06B7]|[\x06BA-\x06BE]|[\x06C0-\x06CE]|[\x06D0-\x06D3]|[\x06D5]|[\x06E5-\x06E6]|[\x0905-\x0939]|[\x093D]|[\x0958-\x0961]|[\x0985-\x098C]|[\x098F-\x0990]|[\x0993-\x09A8]|[\x09AA-\x09B0]|[\x09B2]|[\x09B6-\x09B9]|[\x09DC-\x09DD]|[\x09DF-\x09E1]|[\x09F0-\x09F1]|[\x0A05-\x0A0A]|[\x0A0F-\x0A10]|[\x0A13-\x0A28]|[\x0A2A-\x0A30]|[\x0A32-\x0A33]|[\x0A35-\x0A36]|[\x0A38-\x0A39]|[\x0A59-\x0A5C]|[\x0A5E]|[\x0A72-\x0A74]|[\x0A85-\x0A8B]|[\x0A8D]|[\x0A8F-\x0A91]|[\x0A93-\x0AA8]|[\x0AAA-\x0AB0]|[\x0AB2-\x0AB3]|[\x0AB5-\x0AB9]|[\x0ABD]|[\x0AE0]|[\x0B05-\x0B0C]|[\x0B0F-\x0B10]|[\x0B13-\x0B28]|[\x0B2A-\x0B30]|[\x0B32-\x0B33]|[\x0B36-\x0B39]|[\x0B3D]|[\x0B5C-\x0B5D]|[\x0B5F-\x0B61]|[\x0B85-\x0B8A]|[\x0B8E-\x0B90]|[\x0B92-\x0B95]|[\x0B99-\x0B9A]|[\x0B9C]|[\x0B9E-\x0B9F]|[\x0BA3-\x0BA4]|[\x0BA8-\x0BAA]|[\x0BAE-\x0BB5]|[\x0BB7-\x0BB9]|[\x0C05-\x0C0C]|[\x0C0E-\x0C10]|[\x0C12-\x0C28]|[\x0C2A-\x0C33]|[\x0C35-\x0C39]|[\x0C60-\x0C61]|[\x0C85-\x0C8C]|[\x0C8E-\x0C90]|[\x0C92-\x0CA8]|[\x0CAA-\x0CB3]|[\x0CB5-\x0CB9]|[\x0CDE]|[\x0CE0-\x0CE1]|[\x0D05-\x0D0C]) BaseChar2 ([\x0D0E-\x0D10]|[\x0D12-\x0D28]|[\x0D2A-\x0D39]|[\x0D60-\x0D61]|[\x0E01-\x0E2E]|[\x0E30]|[\x0E32-\x0E33]|[\x0E40-\x0E45]|[\x0E81-\x0E82]|[\x0E84]|[\x0E87-\x0E88]|[\x0E8A]|[\x0E8D]|[\x0E94-\x0E97]|[\x0E99-\x0E9F]|[\x0EA1-\x0EA3]|[\x0EA5]|[\x0EA7]|[\x0EAA-\x0EAB]|[\x0EAD-\x0EAE]|[\x0EB0]|[\x0EB2-\x0EB3]|[\x0EBD]|[\x0EC0-\x0EC4]|[\x0F40-\x0F47]|[\x0F49-\x0F69]|[\x10A0-\x10C5]|[\x10D0-\x10F6]|[\x1100]|[\x1102-\x1103]|[\x1105-\x1107]|[\x1109]|[\x110B-\x110C]|[\x110E-\x1112]|[\x113C]|[\x113E]|[\x1140]|[\x114C]|[\x114E]|[\x1150]|[\x1154-\x1155]|[\x1159]|[\x115F-\x1161]|[\x1163]|[\x1165]|[\x1167]|[\x1169]|[\x116D-\x116E]|[\x1172-\x1173]|[\x1175]|[\x119E]|[\x11A8]|[\x11AB]|[\x11AE-\x11AF]|[\x11B7-\x11B8]|[\x11BA]|[\x11BC-\x11C2]|[\x11EB]|[\x11F0]|[\x11F9]|[\x1E00-\x1E9B]|[\x1EA0-\x1EF9]|[\x1F00-\x1F15]|[\x1F18-\x1F1D]|[\x1F20-\x1F45]|[\x1F48-\x1F4D]|[\x1F50-\x1F57]|[\x1F59]|[\x1F5B]|[\x1F5D]|[\x1F5F-\x1F7D]|[\x1F80-\x1FB4]|[\x1FB6-\x1FBC]|[\x1FBE]|[\x1FC2-\x1FC4]|[\x1FC6-\x1FCC]|[\x1FD0-\x1FD3]|[\x1FD6-\x1FDB]|[\x1FE0-\x1FEC]|[\x1FF2-\x1FF4]|[\x1FF6-\x1FFC]|[\x2126]|[\x212A-\x212B]|[\x212E]|[\x2180-\x2182]|[\x3041-\x3094]|[\x30A1-\x30FA]|[\x3105-\x312C]|[\xAC00-\xD7A3]) BaseChar {BaseChar1}|{BaseChar2} Ideographic ([\x4E00-\x9FA5]|[\x3007]|[\x3021-\x3029]) Digit ([\x0030-\x0039]|[\x0660-\x0669]|[\x06F0-\x06F9]|[\x0966-\x096F]|[\x09E6-\x09EF]|[\x0A66-\x0A6F]|[\x0AE6-\x0AEF]|[\x0B66-\x0B6F]|[\x0BE7-\x0BEF]|[\x0C66-\x0C6F]|[\x0CE6-\x0CEF]|[\x0D66-\x0D6F]|[\x0E50-\x0E59]|[\x0ED0-\x0ED9]|[\x0F20-\x0F29]) CombiningChar ([\x0300-\x0345]|[\x0360-\x0361]|[\x0483-\x0486]|[\x0591-\x05A1]|[\x05A3-\x05B9]|[\x05BB-\x05BD]|[\x05BF]|[\x05C1-\x05C2]|[\x05C4]|[\x064B-\x0652]|[\x0670]|[\x06D6-\x06DC]|[\x06DD-\x06DF]|[\x06E0-\x06E4]|[\x06E7-\x06E8]|[\x06EA-\x06ED]|[\x0901-\x0903]|[\x093C]|[\x093E-\x094C]|[\x094D]|[\x0951-\x0954]|[\x0962-\x0963]|[\x0981-\x0983]|[\x09BC]|[\x09BE]|[\x09BF]|[\x09C0-\x09C4]|[\x09C7-\x09C8]|[\x09CB-\x09CD]|[\x09D7]|[\x09E2-\x09E3]|[\x0A02]|[\x0A3C]|[\x0A3E]|[\x0A3F]|[\x0A40-\x0A42]|[\x0A47-\x0A48]|[\x0A4B-\x0A4D]|[\x0A70-\x0A71]|[\x0A81-\x0A83]|[\x0ABC]|[\x0ABE-\x0AC5]|[\x0AC7-\x0AC9]|[\x0ACB-\x0ACD]|[\x0B01-\x0B03]|[\x0B3C]|[\x0B3E-\x0B43]|[\x0B47-\x0B48]|[\x0B4B-\x0B4D]|[\x0B56-\x0B57]|[\x0B82-\x0B83]|[\x0BBE-\x0BC2]|[\x0BC6-\x0BC8]|[\x0BCA-\x0BCD]|[\x0BD7]|[\x0C01-\x0C03]|[\x0C3E-\x0C44]|[\x0C46-\x0C48]|[\x0C4A-\x0C4D]|[\x0C55-\x0C56]|[\x0C82-\x0C83]|[\x0CBE-\x0CC4]|[\x0CC6-\x0CC8]|[\x0CCA-\x0CCD]|[\x0CD5-\x0CD6]|[\x0D02-\x0D03]|[\x0D3E-\x0D43]|[\x0D46-\x0D48]|[\x0D4A-\x0D4D]|[\x0D57]|[\x0E31]|[\x0E34-\x0E3A]|[\x0E47-\x0E4E]|[\x0EB1]|[\x0EB4-\x0EB9]|[\x0EBB-\x0EBC]|[\x0EC8-\x0ECD]|[\x0F18-\x0F19]|[\x0F35]|[\x0F37]|[\x0F39]|[\x0F3E]|[\x0F3F]|[\x0F71-\x0F84]|[\x0F86-\x0F8B]|[\x0F90-\x0F95]|[\x0F97]|[\x0F99-\x0FAD]|[\x0FB1-\x0FB7]|[\x0FB9]|[\x20D0-\x20DC]|[\x20E1]|[\x302A-\x302F]|[\x3099]|[\x309A]) Extender ([\x00B7]|[\x02D0]|[\x02D1]|[\x0387]|[\x0640]|[\x0E46]|[\x0EC6]|[\x3005]|[\x3031-\x3035]|[\x309D-\x309E]|[\x30FC-\x30FE]) /* [20] CData ::= (Char* - (Char* ']]>' Char*)) */ CharMinusBrack ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x005C]|[\x005E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CharMinusGT ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x003D]|[\x003F-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CDATASection ("") /* [16] PI ::= '' Char*)))? '?>' */ PITarget {NCName} CharMinusQuestion ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x003E]|[\x0040-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) PIContentAndEnd (({CharMinusQuestion}|("?"+{CharMinusGT}))*"?"+">") /* [66] PragmaContents ::= (Char* - (Char* '#)' Char*)) */ CharMinusSharp ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0022]|[\x0024-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CharMinusClosePar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0028]|[\x002A-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) PragmaContentsAndEnd (({CharMinusSharp}|("#"+{CharMinusClosePar}))*"#"+")") /* [104] DirCommentContents ::= ((Char - '-') | ('-' (Char - '-')))* */ CharMinusDash ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x002C]|[\x002E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) DirCommentContents (({CharMinusDash}|("-"{CharMinusDash}))*) /* from Namespace spec */ NCNameChar {Letter}|{Digit}|"."|"-"|"_"|{CombiningChar}|{Extender} NCName ({Letter}|"_"){NCNameChar}* Prefix {NCName} LocalPart {NCName} QName ({Prefix}":")?{LocalPart} XMLNSQName "xmlns"(":"{LocalPart})? /* from XQuery spec */ IntegerLiteral {Digits} DecimalLiteral ("."{Digits})|({Digits}"."[0-9]*) DoubleLiteral (("."{Digits})|({Digits}("."[0-9]*)?))("e"|"E")("+"|"-")?{Digits} NotNumber (("."{Digits})|({Digits}("."[0-9]*)?))(("e"|"E")("+"|"-")?{Digits})?[a-zA-Z][0-9a-zA-Z]* StringLiteral ("\""({PredefinedEntityRef}|{CharRef}|("\"\"")|[^"&])*"\"")|("'"({PredefinedEntityRef}|{CharRef}|("''")|[^'&])*"'") XPathStringLiteral ("\""(("\"\"")|[^"])*"\"")|("'"(("''")|[^'])*"'") /* [148] ElementContentChar ::= Char - [{}<&] */ ElementContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0025]|[\x0027-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) ElementContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|{ElementContentChar}|{CDATASection})*) /* [149] QuotAttrContentChar ::= Char - ["{}<&] */ QuotAttrContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0021]|[\x0023-\x0025]|[\x0027-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) QuotAttrContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|"\"\""|{QuotAttrContentChar})*) /* [150] AposAttrContentChar ::= Char - ['{}<&] */ AposAttrContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0025]|[\x0028-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) AposAttrContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|"''"|{AposAttrContentChar})*) /* AttrValueTemplateChar ::= Char - [{}] */ AttrValueTemplateChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0021]|[\x0023-\x007A]|[\x007C]|\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) AttrValueTemplateContent (("{{"|"}}"|{AttrValueTemplateChar})*) PredefinedEntityRef "&"("lt"|"gt"|"amp"|"quot"|"apos")";" HexDigits ([0-9]|[a-f]|[A-F])+ CharRef "&#"({Digits}|("x"{HexDigits}))";" %option never-interactive %option noyywrap %option yyclass="XQLexer" %option c++ %option 16bit %option stack %x EXPR_COMMENT %x PRAGMA %x PRAGMAWS %x PRAGMACONTENTS %x START_TAG %x END_TAG %x ELEMENT_CONTENT %x QUOT_ATTRIBUTE_CONTENT %x APOS_ATTRIBUTE_CONTENT %x PROCESSING_INSTRUCTION %x PROCESSING_INSTRUCTION_CONTENT %x XML_COMMENT %x COMPUTED_CONSTRUCTOR %x ATTR_VALUE_TEMPLATE %x TEMPLATE_MODES %x OUTPUT_METHOD %x QNAMES %{ const char *xqGetStateName(int state) { switch(state) { case INITIAL: return "INITIAL"; case EXPR_COMMENT: return "EXPR_COMMENT"; case PRAGMA: return "PRAGMA"; case PRAGMAWS: return "PRAGMAWS"; case PRAGMACONTENTS: return "PRAGMACONTENTS"; case START_TAG: return "START_TAG"; case END_TAG: return "END_TAG"; case ELEMENT_CONTENT: return "ELEMENT_CONTENT"; case QUOT_ATTRIBUTE_CONTENT: return "QUOT_ATTRIBUTE_CONTENT"; case APOS_ATTRIBUTE_CONTENT: return "APOS_ATTRIBUTE_CONTENT"; case PROCESSING_INSTRUCTION: return "PROCESSING_INSTRUCTION"; case PROCESSING_INSTRUCTION_CONTENT: return "PROCESSING_INSTRUCTION_CONTENT"; case XML_COMMENT: return "XML_COMMENT"; case COMPUTED_CONSTRUCTOR: return "COMPUTED_CONSTRUCTOR"; case ATTR_VALUE_TEMPLATE: return "ATTR_VALUE_TEMPLATE"; case TEMPLATE_MODES: return "TEMPLATE_MODES"; case OUTPUT_METHOD: return "OUTPUT_METHOD"; case QNAMES: return "QNAMES"; } return "unknown"; } void XQLexer::undoLessThan() { CHANGE_STATE(INITIAL); POP(); } %} %% %{ if(firstToken_ != MYEOF) { int token = firstToken_; firstToken_ = MYEOF; RECOGNIZE(token); } switch(mode_) { case MODE_ATTR_VALUE_TEMPLATE: mode_ = MODE_NORMAL; CHANGE_STATE(ATTR_VALUE_TEMPLATE); break; case MODE_TEMPLATE_MODES: mode_ = MODE_NORMAL; CHANGE_STATE(TEMPLATE_MODES); break; case MODE_OUTPUT_METHOD: mode_ = MODE_NORMAL; CHANGE_STATE(OUTPUT_METHOD); break; case MODE_QNAMES: mode_ = MODE_NORMAL; CHANGE_STATE(QNAMES); break; case MODE_NORMAL: break; } %} {IntegerLiteral} RECOGNIZE_VALUE(_INTEGER_LITERAL_, yytext); {DecimalLiteral} RECOGNIZE_VALUE(_DECIMAL_LITERAL_, yytext); {DoubleLiteral} RECOGNIZE_VALUE(_DOUBLE_LITERAL_, yytext); {StringLiteral} RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, !isXPath(), false); {XPathStringLiteral} { if(isXPath()) { RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, false, false); } else { std::ostringstream oss; oss << "Bad escaping in string literal: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } } {WhitespaceChar}+ /* Do nothing */ "(:" beginComment(); PUSH_AND_CHANGE_STATE(EXPR_COMMENT); {Char} /* Do nothing */ ":)" endComment(); POP(); "-" RECOGNIZE(_MINUS_); "+" RECOGNIZE(_PLUS_); "=" RECOGNIZE(_EQUALS_); ";" RECOGNIZE(_SEMICOLON_); "," RECOGNIZE(_COMMA_); "$" RECOGNIZE(_DOLLAR_); ":=" RECOGNIZE(_COLON_EQUALS_); "(" RECOGNIZE(_LPAR_); ")" RECOGNIZE(_RPAR_); "*" RECOGNIZE(_ASTERISK_); "|" RECOGNIZE(_BAR_); "!=" RECOGNIZE(_BANG_EQUALS_); "<=" RECOGNIZE(_LESS_THAN_EQUALS_); ">" RECOGNIZE(_GREATER_THAN_); ">=" RECOGNIZE(_GREATER_THAN_EQUALS_); "<<" RECOGNIZE(_LESS_THAN_LESS_THAN_); ">>" RECOGNIZE(_GREATER_THAN_GREATER_THAN_); "::" RECOGNIZE(_COLON_COLON_); "@" RECOGNIZE(_AT_SIGN_); ".." RECOGNIZE(_DOT_DOT_); "." RECOGNIZE(_DOT_); "[" RECOGNIZE(_LSQUARE_); "]" RECOGNIZE(_RSQUARE_); "?" RECOGNIZE(_QUESTION_MARK_); "external" RECOGNIZE_VALUE(_EXTERNAL_, yytext); "ascending" RECOGNIZE_VALUE(_ASCENDING_, yytext); "descending" RECOGNIZE_VALUE(_DESCENDING_, yytext); "greatest" RECOGNIZE_VALUE(_GREATEST_, yytext); "least" RECOGNIZE_VALUE(_LEAST_, yytext); "comment" RECOGNIZE_VALUE(_COMMENT_, yytext); "document-node" RECOGNIZE_VALUE(_DOCUMENT_NODE_, yytext); "if" RECOGNIZE_VALUE(_IF_, yytext); "item" RECOGNIZE_VALUE(_ITEM_, yytext); "node" RECOGNIZE_VALUE(_NODE_, yytext); "schema-attribute" RECOGNIZE_VALUE(_SCHEMA_ATTRIBUTE_, yytext); "schema-element" RECOGNIZE_VALUE(_SCHEMA_ELEMENT_, yytext); "text" RECOGNIZE_VALUE(_TEXT_, yytext); "empty-sequence" RECOGNIZE_VALUE(_EMPTY_SEQUENCE_, yytext); "version" RECOGNIZE_VALUE(_VERSION_, yytext); "encoding" RECOGNIZE_VALUE(_ENCODING_, yytext); "declare" RECOGNIZE_VALUE(_DECLARE_, yytext); "boundary-space" RECOGNIZE_VALUE(_BOUNDARY_SPACE_, yytext); "preserve" RECOGNIZE_VALUE(_PRESERVE_, yytext); "strip" RECOGNIZE_VALUE(_STRIP_, yytext); "default" RECOGNIZE_VALUE(_DEFAULT_, yytext); "option" RECOGNIZE_VALUE(_OPTION_, yytext); "ordering" RECOGNIZE_VALUE(_ORDERING_, yytext); "ordered" RECOGNIZE_VALUE(_ORDERED_, yytext); "unordered" RECOGNIZE_VALUE(_UNORDERED_, yytext); "empty" RECOGNIZE_VALUE(_EMPTY_, yytext); "copy-namespaces" RECOGNIZE_VALUE(_COPY_NAMESPACES_, yytext); "no-preserve" RECOGNIZE_VALUE(_NO_PRESERVE_, yytext); "inherit" RECOGNIZE_VALUE(_INHERIT_, yytext); "no-inherit" RECOGNIZE_VALUE(_NO_INHERIT_, yytext); "collation" RECOGNIZE_VALUE(_COLLATION_, yytext); "base-uri" RECOGNIZE_VALUE(_BASE_URI_, yytext); "import" RECOGNIZE_VALUE(_IMPORT_, yytext); "schema" RECOGNIZE_VALUE(_SCHEMA_, yytext); "variable" RECOGNIZE_VALUE(_VARIABLE_, yytext); "construction" RECOGNIZE_VALUE(_CONSTRUCTION_, yytext); "as" RECOGNIZE_VALUE(_AS_, yytext); "lax" RECOGNIZE_VALUE(_LAX_, yytext); "strict" RECOGNIZE_VALUE(_STRICT_, yytext); "return" RECOGNIZE_VALUE(_RETURN_, yytext); "for" RECOGNIZE_VALUE(_FOR_, yytext); "in" RECOGNIZE_VALUE(_IN_, yytext); "by" RECOGNIZE_VALUE(_BY_, yytext); "some" RECOGNIZE_VALUE(_SOME_, yytext); "every" RECOGNIZE_VALUE(_EVERY_, yytext); "satisfies" RECOGNIZE_VALUE(_SATISFIES_, yytext); "then" RECOGNIZE_VALUE(_THEN_, yytext); "else" RECOGNIZE_VALUE(_ELSE_, yytext); "or" RECOGNIZE_VALUE(_OR_, yytext); "and" RECOGNIZE_VALUE(_AND_, yytext); "to" RECOGNIZE_VALUE(_TO_, yytext); "div" RECOGNIZE_VALUE(_DIV_, yytext); "idiv" RECOGNIZE_VALUE(_IDIV_, yytext); "mod" RECOGNIZE_VALUE(_MOD_, yytext); "union" RECOGNIZE_VALUE(_UNION_, yytext); "intersect" RECOGNIZE_VALUE(_INTERSECT_, yytext); "except" RECOGNIZE_VALUE(_EXCEPT_, yytext); "instance" RECOGNIZE_VALUE(_INSTANCE_, yytext); "of" RECOGNIZE_VALUE(_OF_, yytext); "treat" RECOGNIZE_VALUE(_TREAT_, yytext); "castable" RECOGNIZE_VALUE(_CASTABLE_, yytext); "cast" RECOGNIZE_VALUE(_CAST_, yytext); "eq" RECOGNIZE_VALUE(_EQ_, yytext); "ne" RECOGNIZE_VALUE(_NE_, yytext); "lt" RECOGNIZE_VALUE(_LT_, yytext); "le" RECOGNIZE_VALUE(_LE_, yytext); "gt" RECOGNIZE_VALUE(_GT_, yytext); "ge" RECOGNIZE_VALUE(_GE_, yytext); "is" RECOGNIZE_VALUE(_IS_, yytext); "validate" RECOGNIZE_VALUE(_VALIDATE_, yytext); "child" RECOGNIZE_VALUE(_CHILD_, yytext); "descendant" RECOGNIZE_VALUE(_DESCENDANT_, yytext); "self" RECOGNIZE_VALUE(_SELF_, yytext); "descendant-or-self" RECOGNIZE_VALUE(_DESCENDANT_OR_SELF_, yytext); "following-sibling" RECOGNIZE_VALUE(_FOLLOWING_SIBLING_, yytext); "following" RECOGNIZE_VALUE(_FOLLOWING_, yytext); "parent" RECOGNIZE_VALUE(_PARENT_, yytext); "ancestor" RECOGNIZE_VALUE(_ANCESTOR_, yytext); "preceding-sibling" RECOGNIZE_VALUE(_PRECEDING_SIBLING_, yytext); "preceding" RECOGNIZE_VALUE(_PRECEDING_, yytext); "ancestor-or-self" RECOGNIZE_VALUE(_ANCESTOR_OR_SELF_, yytext); "document" RECOGNIZE_VALUE(_DOCUMENT_, yytext); "weight" RECOGNIZE_VALUE(_WEIGHT_, yytext); "not" RECOGNIZE_VALUE(_NOT_, yytext); "lowercase" RECOGNIZE_VALUE(_LOWERCASE_, yytext); "uppercase" RECOGNIZE_VALUE(_UPPERCASE_, yytext); "sensitive" RECOGNIZE_VALUE(_SENSITIVE_, yytext); "insensitive" RECOGNIZE_VALUE(_INSENSITIVE_, yytext); "diacritics" RECOGNIZE_VALUE(_DIACRITICS_, yytext); "stemming" RECOGNIZE_VALUE(_STEMMING_, yytext); "thesaurus" RECOGNIZE_VALUE(_THESAURUS_, yytext); "relationship" RECOGNIZE_VALUE(_RELATIONSHIP_, yytext); "levels" RECOGNIZE_VALUE(_LEVELS_, yytext); "stop" RECOGNIZE_VALUE(_STOP_, yytext); "words" RECOGNIZE_VALUE(_WORDS_, yytext); "language" RECOGNIZE_VALUE(_LANGUAGE_, yytext); "wildcards" RECOGNIZE_VALUE(_WILDCARDS_, yytext); "entire" RECOGNIZE_VALUE(_ENTIRE_, yytext); "content" RECOGNIZE_VALUE(_CONTENT_, yytext); "any" RECOGNIZE_VALUE(_ANY_, yytext); "all" RECOGNIZE_VALUE(_ALL_, yytext); "phrase" RECOGNIZE_VALUE(_PHRASE_, yytext); "word" RECOGNIZE_VALUE(_WORD_, yytext); "exactly" RECOGNIZE_VALUE(_EXACTLY_, yytext); "from" RECOGNIZE_VALUE(_FROM_, yytext); "distance" RECOGNIZE_VALUE(_DISTANCE_, yytext); "window" RECOGNIZE_VALUE(_WINDOW_, yytext); "occurs" RECOGNIZE_VALUE(_OCCURS_, yytext); "times" RECOGNIZE_VALUE(_TIMES_, yytext); "same" RECOGNIZE_VALUE(_SAME_, yytext); "different" RECOGNIZE_VALUE(_DIFFERENT_, yytext); "sentences" RECOGNIZE_VALUE(_SENTENCES_, yytext); "paragraphs" RECOGNIZE_VALUE(_PARAGRAPHS_, yytext); "sentence" RECOGNIZE_VALUE(_SENTENCE_, yytext); "paragraph" RECOGNIZE_VALUE(_PARAGRAPH_, yytext); "type" RECOGNIZE_VALUE(_TYPE_, yytext); "start" RECOGNIZE_VALUE(_START_, yytext); "end" RECOGNIZE_VALUE(_END_, yytext); "most" RECOGNIZE_VALUE(_MOST_, yytext); "skip" RECOGNIZE_VALUE(_SKIP_, yytext); "value" RECOGNIZE_VALUE(_VALUE_, yytext); "first" RECOGNIZE_VALUE(_FIRST_, yytext); "last" RECOGNIZE_VALUE(_LAST_, yytext); "into" RECOGNIZE_VALUE(_INTO_, yytext); "after" RECOGNIZE_VALUE(_AFTER_, yytext); "before" RECOGNIZE_VALUE(_BEFORE_, yytext); "modify" RECOGNIZE_VALUE(_MODIFY_, yytext); "nodes" RECOGNIZE_VALUE(_NODES_, yytext); "id" RECOGNIZE_VALUE(_ID_, yytext); "key" RECOGNIZE_VALUE(_KEY_, yytext); "no" RECOGNIZE_VALUE(_NO_, yytext); "with" RECOGNIZE_VALUE(_WITH_, yytext); "namespace" { if(!isXPath() && !isExtensions() && lookAhead() == _COLON_COLON_) { RECOGNIZE_VALUE(_QNAME_, yytext); } else { CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_NAMESPACE_, yytext); } } "template" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "matches" { if(isExtensions()) { RECOGNIZE_VALUE(_MATCHES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "name" { if(isExtensions()) { RECOGNIZE_VALUE(_NAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "call" { if(isExtensions()) { RECOGNIZE_VALUE(_CALL_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "apply" { if(isExtensions()) { RECOGNIZE_VALUE(_APPLY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "templates" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "mode" { if(isExtensions()) { RECOGNIZE_VALUE(_MODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "function" { if(isVersion3()) { RECOGNIZE_VALUE(_FUNCTION_EXT_, yytext); } else { RECOGNIZE_VALUE(_FUNCTION_, yytext); } } "#" { if(isVersion3()) { RECOGNIZE(_HASH_); } else { return error("Unrecognized token '#'"); } } "count" { if(isVersion3() && lookAhead() == _DOLLAR_) { RECOGNIZE_VALUE(_COUNT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "private" { if(isVersion3()) { RECOGNIZE_VALUE(_PRIVATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "public" { if(isVersion3()) { RECOGNIZE_VALUE(_PUBLIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "deterministic" { if(isVersion3()) { RECOGNIZE_VALUE(_DETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "nondeterministic" { if(isVersion3()) { RECOGNIZE_VALUE(_NONDETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "namespace-node" { if(isVersion3()) { RECOGNIZE_VALUE(_NAMESPACE_NODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "let" { if(isXQuery()) { RECOGNIZE_VALUE(_LET_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "where" { if(isXQuery()) { RECOGNIZE_VALUE(_WHERE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "order" { if(isXQuery()) { RECOGNIZE_VALUE(_ORDER_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "stable" { if(isXQuery()) { RECOGNIZE_VALUE(_STABLE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "typeswitch" { if(isXQuery()) { RECOGNIZE_VALUE(_TYPESWITCH_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ft-option" { if(isFullText()) { RECOGNIZE_VALUE(_FT_OPTION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "score" { if(isFullText()) { RECOGNIZE_VALUE(_SCORE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "contains" { if(isFullText()) { RECOGNIZE_VALUE(_CONTAINS_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftor" { if(isFullText()) { RECOGNIZE_VALUE(_FTOR_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftand" { if(isFullText()) { RECOGNIZE_VALUE(_FTAND_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftnot" { if(isFullText()) { RECOGNIZE_VALUE(_FTNOT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "revalidation" { if(isUpdate()) { RECOGNIZE_VALUE(_REVALIDATION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "updating" { if(isUpdate()) { RECOGNIZE_VALUE(_UPDATING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "insert" { if(isUpdate()) { RECOGNIZE_VALUE(_INSERT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "delete" { if(isUpdate()) { RECOGNIZE_VALUE(_DELETE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "replace" { if(isUpdate()) { RECOGNIZE_VALUE(_REPLACE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "rename" { if(isUpdate()) { RECOGNIZE_VALUE(_RENAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "copy" { if(isUpdate()) { RECOGNIZE_VALUE(_COPY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "xquery" { int tok = lookAhead(); if(tok == _VERSION_ || (isVersion3() && tok == _ENCODING_)) { RECOGNIZE_VALUE(_XQUERY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "module" { int tok = lookAhead(); if(tok == _NAMESPACE_ || tok == _STRING_LITERAL_) { RECOGNIZE_VALUE(_MODULE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "without" { if(lookAhead() == _CONTENT_) { RECOGNIZE_VALUE(_WITHOUT_C_, yytext); } else { RECOGNIZE_VALUE(_WITHOUT_, yytext); } } "case" { int tok = lookAhead(); if(tok == _SENSITIVE_ || tok == _INSENSITIVE_) { RECOGNIZE_VALUE(_CASE_S_, yytext); } else { RECOGNIZE_VALUE(_CASE_, yytext); } } "using" { if(isFullText()) { RECOGNIZE_VALUE(_USING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "at" { int tok = lookAhead(); if(tok == _LEAST_ || tok == _MOST_) { RECOGNIZE_VALUE(_AT_LM_, yytext); } else { RECOGNIZE_VALUE(_AT_, yytext); } } "element" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ELEMENT_, yytext); "attribute" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ATTRIBUTE_, yytext); "processing-instruction" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_PROCESSING_INSTRUCTION_, yytext); {QName} { CHANGE_STATE(INITIAL); if(lookAhead() == _LBRACE_) { RECOGNIZE_VALUE(_CONSTR_QNAME_, yytext); } else { undoUserAction(); yyless(0); } } [\x0000-\xFFFF] { CHANGE_STATE(INITIAL); undoUserAction(); yyless(0); } "{" PUSH_AND_CHANGE_STATE(INITIAL); RECOGNIZE(_LBRACE_); "}" return error("It is an error for a right brace to appear in element or attribute content"); "}" POP(); RECOGNIZE(_RBRACE_); "&" return error("It is an error for an ampersand to appear in element or attribute content"); "<" PUSH_AND_CHANGE_STATE(START_TAG); RECOGNIZE(_LESS_THAN_OP_OR_TAG_); "<" return error("It is an error for a left angle bracket to appear in attribute content"); ">" CHANGE_STATE(ELEMENT_CONTENT); RECOGNIZE(_START_TAG_CLOSE_); ">" POP(); RECOGNIZE(_END_TAG_CLOSE_); {AttrValueTemplateContent} RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, 0, true, false, false); "\"" CHANGE_STATE(QUOT_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_QUOT_); {QuotAttrContent} RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, '"', true, true, false); "\"" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_QUOT_); "'" CHANGE_STATE(APOS_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_APOS_); {AposAttrContent} RECOGNIZE_VALUE_UNESCAPE(_APOS_ATTR_CONTENT_, yytext, yyleng, '\'', true, true, false); "'" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_APOS_); {WhitespaceChar}+ RECOGNIZE_VALUE(_WHITESPACE_ELEMENT_CONTENT_, yytext); {ElementContent} RECOGNIZE_VALUE_UNESCAPE(_ELEMENT_CONTENT_, yytext, yyleng, 0, true, true, true); "/>" POP(); RECOGNIZE(_EMPTY_TAG_CLOSE_); ""=" RECOGNIZE(_VALUE_INDICATOR_); "(#" CHANGE_STATE(PRAGMA); RECOGNIZE(_PRAGMA_OPEN_); {WhitespaceChar}+ RECOGNIZE(_WHITESPACE_); {QName} CHANGE_STATE(PRAGMAWS); RECOGNIZE_VALUE(_QNAME_, yytext); "#)" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); {WhitespaceChar}+ CHANGE_STATE(PRAGMACONTENTS); RECOGNIZE(_WHITESPACE_); {PragmaContentsAndEnd} CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); "("xml"|"Xml"|"xMl"|"xmL"|"XMl"|"xML"|"XML"|"XmL") return error("The target of a processing instruction must not be 'XML'"); {PITarget} RECOGNIZE_VALUE(_PI_TARGET_, yytext); {WhitespaceChar}+ CHANGE_STATE(PROCESSING_INSTRUCTION_CONTENT); RECOGNIZE(_WHITESPACE_); "?>" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); {PIContentAndEnd} POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); "" POP(); RECOGNIZE(_XML_COMMENT_END_); "/" RECOGNIZE(_SLASH_); "//" RECOGNIZE(_SLASH_SLASH_); {XMLNSQName} RECOGNIZE_VALUE(_XMLNS_QNAME_, yytext); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {NCName}":*" RECOGNIZE_VALUE_LEN(_NCNAME_COLON_STAR_, yytext, yyleng - 2); "*:"{NCName} RECOGNIZE_VALUE(_STAR_COLON_NCNAME_, yytext + 2); {WhitespaceChar}+ RECOGNIZE(_WHITESPACE_); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); "#default" RECOGNIZE(_HASH_DEFAULT_); "#all" RECOGNIZE(_HASH_ALL_); "#current" RECOGNIZE(_HASH_CURRENT_); {WhitespaceChar}+ /* Do nothing */ "xml" RECOGNIZE_VALUE(_XML_, yytext); "html" RECOGNIZE_VALUE(_HTML_, yytext); "xhtml" RECOGNIZE_VALUE(_XHTML_, yytext); "text" RECOGNIZE_VALUE(_TEXT_, yytext); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {WhitespaceChar}+ /* Do nothing */ {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {WhitespaceChar}+ /* Do nothing */ {NotNumber} { std::ostringstream oss; oss << "Invalid literal found: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } <*>[\x0000-\xFFFF] { std::ostringstream oss; oss << "Unrecognized character '" << UTF8((XMLCh*)yytext) << "' (" << yytext[0] << ")"; return error(oss.str().c_str()); } %% XQilla-2.3.4/src/lexer/XSLT2Lexer.hpp0000644001725400016040000002222313273140037014133 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XSLT2LEXER_HPP #define XSLT2LEXER_HPP #include "../config/xqilla_config.h" #include "XQLexer.hpp" #include "../schema/FaxppDocumentCacheImpl.hpp" #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class GrammarResolver; class XMLScanner; class Locator; XERCES_CPP_NAMESPACE_END struct InstructionInfo; class DynamicContext; class XQillaNSResolverImpl; class XSLT2Lexer : public Lexer { public: enum EventType { START_DOCUMENT, END_DOCUMENT, START_ELEMENT, END_ELEMENT, NAMESPACE, ATTRIBUTE, TEXT }; XSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~XSLT2Lexer(); virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNSResolver() const; virtual void undoLessThan(); protected: enum State { LANG_TOKEN, NEXT_EVENT, CURRENT_EVENT, POP_STACK }; struct ElementStackEntry { ElementStackEntry(ElementStackEntry *p); bool reportWhitespace() const; const InstructionInfo *info; bool xmlSpacePreserve; XQillaNSResolverImpl *nsResolver; ElementStackEntry *prev; }; int lang_token_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int attrs_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int next_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int current_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); ASTNode *wrap(ASTNode *result) const; ASTNode *makeDirectName(const XMLCh *prefix, const XMLCh *name) const; ASTNode *makeQNameLiteral(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name) const; ASTNode *makeStringLiteral(const XMLCh *value) const; void pushElementStack(); void popElementStack(); void setNamespace(const XMLCh *prefix, const XMLCh *uri); virtual void nextEvent(YYLTYPE* pYYLOC) = 0; virtual EventType getEventType() = 0; virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) = 0; virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) = 0; virtual void getEventLocation(YYLTYPE* pYYLOC) = 0; virtual void getValueLocation(YYLTYPE* pYYLOC) = 0; DynamicContext *context_; AutoDelete childLexer_; std::vector offsets_; ElementStackEntry *elementStack_; State state_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer textBuffer_; bool textToCreate_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XercesXSLT2Lexer : public XSLT2Lexer, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityHandler { public: XercesXSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~XercesXSLT2Lexer(); struct CachedEvent { CachedEvent(EventType t, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(const XMLCh *p, const XMLCh *u, const XMLCh *l, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(EventType t, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(const XMLCh *value, size_t length, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); EventType type; const XMLCh *prefix, *uri, *localname; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer value; XercesFileLoc line, column; CachedEvent *prev, *next; }; protected: // From XSLT2Lexer virtual void nextEvent(YYLTYPE* pYYLOC); virtual EventType getEventType(); virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname); virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets); virtual void getEventLocation(YYLTYPE* pYYLOC); virtual void getValueLocation(YYLTYPE* pYYLOC); // From XMLEntityHandler virtual void startInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource) {} virtual void endInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource) {} virtual bool expandSystemId(const XMLCh* const systemId, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toFill) { return false; } virtual void resetEntities() {} virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI = 0) { return 0; } virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier* resourceIdentifier); // From XMLDocumentHandler virtual void startDocument(); virtual void endDocument(); virtual void resetDocument() {} #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {} #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {} #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0); virtual void docComment(const XMLCh* const comment) {} virtual void docPI(const XMLCh* const target, const XMLCh* const data) {} virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) {} XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver_; XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *scanner_; XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken pptoken_; CachedEvent *currentEvent_, *firstEvent_, *lastEvent_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef HAVE_FAXPP extern "C" { #include } class FAXPPXSLT2Lexer : public XSLT2Lexer { public: FAXPPXSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~FAXPPXSLT2Lexer(); protected: virtual void nextEvent(YYLTYPE* pYYLOC); virtual EventType getEventType(); virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname); virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets); virtual void getEventLocation(YYLTYPE* pYYLOC); virtual void getValueLocation(YYLTYPE* pYYLOC); bool nextNamespace(); bool nextAttribute(); void setLocation(YYLTYPE* pYYLOC, const FAXPP_Event *event); void setLocation(YYLTYPE* pYYLOC, const FAXPP_Attribute *attr); void setLocation(YYLTYPE* pYYLOC, const FAXPP_AttrValue *attrval); void setErrorLocation(YYLTYPE* pYYLOC); FaxppParserWrapper wrapper_; EventType eventType_; unsigned int attrIndex_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer value_; }; #endif #endif XQilla-2.3.4/src/lexer/XQLexer.cpp0000644001725400016040000324210613273141025013607 00000000000000#define yyFlexLexer xqFlexLexer #line 4 "../src/lexer/XQLexer.cpp" /* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header$ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include #include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif /* Define the YY_CHAR type. */ #include typedef unsigned short YY_CHAR; /* Promotes a YY_CHAR to an unsigned integer for use as an array index. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned short) c) /* Returned upon end-of-file. */ #define YY_NULL 0 /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { std::istream* yy_input_file; YY_CHAR *yy_ch_buf; /* input buffer */ YY_CHAR *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) #define yywrap() 1 #define YY_SKIP_YYWRAP #define yytext_ptr yytext #include int yyFlexLexer::yylex() { LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" ); return 0; } #define YY_DECL int XQLexer::yylex() /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = (YY_CHAR) '\0'; \ yy_c_buf_p = yy_cp; #define YY_NUM_RULES 269 #define YY_END_OF_BUFFER 270 static yyconst short int yy_accept[1384] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 227, 221, 221, 224, 224, 0, 0, 0, 0, 244, 244, 0, 0, 219, 219, 0, 0, 0, 0, 0, 0, 270, 268, 6, 268, 268, 175, 15, 268, 17, 18, 19, 11, 14, 10, 30, 247, 1, 268, 13, 215, 12, 23, 33, 28, 250, 31, 32, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 211, 20, 213, 250, 250, 8, 8, 8, 8, 232, 268, 233, 233, 233, 235, 268, 268, 268, 268, 253, 220, 223, 268, 230, 217, 250, 250, 250, 250, 218, 226, 227, 214, 215, 211, 212, 227, 221, 222, 214, 216, 211, 212, 221, 224, 214, 225, 211, 212, 224, 240, 268, 239, 239, 239, 239, 239, 268, 268, 268, 244, 268, 244, 210, 6, 210, 209, 209, 209, 219, 211, 212, 268, 219, 258, 268, 254, 254, 254, 264, 263, 263, 263, 263, 263, 263, 266, 265, 265, 265, 6, 21, 0, 4, 0, 0, 0, 0, 0, 0, 4, 231, 7, 0, 29, 2, 248, 2, 1, 267, 267, 27, 16, 0, 25, 22, 237, 24, 26, 250, 250, 0, 250, 250, 250, 250, 250, 250, 250, 250, 70, 205, 250, 250, 250, 76, 250, 250, 250, 250, 250, 250, 250, 250, 250, 96, 250, 250, 250, 250, 250, 250, 250, 101, 250, 100, 162, 41, 250, 75, 102, 250, 250, 250, 99, 250, 98, 250, 250, 250, 97, 164, 250, 92, 250, 82, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 84, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 9, 232, 233, 233, 0, 233, 233, 233, 233, 235, 234, 0, 0, 0, 0, 0, 236, 0, 253, 228, 250, 250, 0, 250, 250, 250, 250, 250, 226, 227, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 229, 227, 221, 0, 0, 0, 0, 221, 221, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 224, 240, 241, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 0, 0, 0, 0, 242, 0, 0, 244, 0, 244, 244, 245, 244, 209, 209, 0, 209, 209, 209, 209, 219, 0, 0, 0, 219, 219, 0, 258, 254, 254, 0, 254, 254, 254, 254, 264, 263, 263, 0, 263, 263, 263, 263, 263, 263, 263, 263, 266, 265, 265, 0, 265, 265, 265, 265, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 252, 252, 252, 2, 267, 0, 3, 0, 251, 250, 250, 250, 250, 134, 250, 83, 133, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 85, 250, 250, 250, 250, 250, 151, 250, 250, 250, 250, 250, 250, 250, 74, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 163, 250, 250, 71, 250, 182, 250, 250, 250, 87, 250, 250, 250, 250, 250, 117, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 233, 233, 233, 0, 236, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 242, 0, 246, 209, 209, 209, 0, 254, 254, 254, 263, 263, 263, 263, 263, 263, 259, 265, 265, 265, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 252, 252, 252, 252, 252, 252, 3, 267, 243, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 170, 203, 95, 250, 250, 250, 250, 250, 199, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 81, 250, 250, 250, 250, 250, 250, 250, 250, 250, 138, 250, 250, 250, 190, 250, 250, 86, 250, 250, 250, 250, 250, 157, 42, 250, 156, 250, 250, 250, 250, 173, 250, 250, 152, 169, 250, 250, 43, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 143, 250, 250, 250, 106, 250, 250, 153, 77, 250, 250, 250, 127, 250, 250, 46, 80, 250, 250, 250, 149, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 165, 136, 250, 233, 233, 233, 233, 233, 233, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, 209, 209, 209, 209, 254, 254, 254, 254, 254, 254, 263, 263, 263, 263, 263, 263, 260, 262, 263, 265, 265, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 158, 250, 171, 250, 250, 250, 250, 250, 250, 104, 250, 250, 250, 250, 250, 250, 176, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 59, 250, 250, 78, 250, 250, 250, 155, 250, 250, 191, 192, 250, 250, 250, 250, 250, 250, 250, 250, 250, 38, 250, 250, 250, 250, 250, 250, 250, 250, 161, 250, 250, 250, 184, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 188, 250, 250, 250, 150, 250, 250, 53, 250, 250, 142, 93, 250, 88, 250, 250, 250, 204, 250, 154, 250, 250, 250, 183, 250, 250, 250, 128, 250, 249, 0, 261, 0, 0, 250, 250, 250, 250, 159, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 196, 250, 250, 250, 250, 250, 250, 250, 250, 250, 131, 250, 90, 250, 250, 250, 250, 250, 66, 250, 250, 195, 250, 250, 250, 126, 250, 250, 160, 201, 250, 250, 250, 250, 141, 55, 250, 250, 250, 110, 135, 250, 250, 250, 250, 178, 250, 198, 250, 73, 250, 250, 67, 250, 250, 185, 250, 72, 250, 250, 250, 250, 250, 250, 250, 250, 250, 116, 250, 140, 250, 200, 0, 0, 0, 0, 250, 250, 250, 250, 250, 250, 250, 39, 250, 250, 132, 250, 50, 54, 250, 250, 250, 250, 250, 250, 206, 250, 250, 137, 250, 250, 250, 250, 250, 62, 250, 250, 250, 250, 250, 168, 250, 250, 250, 250, 57, 250, 250, 250, 250, 177, 250, 250, 197, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 48, 250, 202, 249, 249, 249, 0, 257, 255, 111, 250, 250, 65, 250, 94, 250, 250, 189, 250, 250, 250, 250, 250, 250, 139, 115, 250, 49, 34, 250, 250, 174, 37, 250, 91, 250, 129, 250, 250, 250, 250, 250, 56, 250, 250, 52, 250, 250, 250, 250, 250, 250, 250, 147, 123, 167, 250, 250, 250, 194, 250, 103, 68, 250, 249, 249, 249, 249, 249, 249, 0, 250, 35, 207, 250, 64, 250, 250, 250, 250, 250, 250, 144, 250, 250, 109, 187, 250, 89, 118, 166, 250, 250, 250, 148, 113, 250, 250, 250, 79, 250, 250, 120, 145, 172, 124, 250, 58, 119, 130, 0, 250, 250, 250, 250, 105, 36, 250, 122, 250, 250, 250, 250, 250, 63, 250, 250, 146, 250, 250, 250, 250, 250, 250, 186, 0, 0, 0, 250, 250, 250, 250, 250, 250, 250, 250, 250, 121, 250, 61, 250, 250, 250, 250, 250, 250, 250, 0, 0, 0, 250, 250, 69, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 125, 193, 250, 250, 0, 0, 0, 250, 250, 250, 250, 179, 40, 250, 250, 250, 250, 250, 250, 250, 250, 0, 227, 0, 0, 250, 51, 250, 250, 47, 250, 181, 250, 250, 250, 250, 45, 227, 0, 0, 227, 0, 0, 227, 0, 227, 0, 250, 60, 250, 250, 250, 250, 250, 250, 0, 0, 0, 0, 0, 0, 227, 0, 0, 227, 0, 0, 227, 114, 250, 250, 180, 250, 250, 44, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 227, 227, 0, 0, 227, 250, 108, 112, 250, 0, 0, 0, 0, 227, 0, 0, 227, 227, 0, 0, 227, 107, 250, 0, 227, 0, 0, 227, 0, 0, 227, 250, 0, 250, 0, 250, 0, 208, 0, 0 } ; static yyconst unsigned short yy_ec[65536] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 30, 34, 34, 34, 34, 34, 35, 36, 34, 34, 34, 34, 34, 34, 37, 34, 34, 34, 38, 34, 34, 39, 40, 41, 42, 43, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 53, 69, 70, 71, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 73, 73, 73, 73, 73, 73, 73, 73, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 73, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 73, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 73, 73, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 73, 73, 80, 80, 80, 80, 80, 80, 80, 80, 73, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 73, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 73, 73, 73, 73, 73, 73, 73, 73, 73, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 73, 73, 73, 84, 84, 73, 73, 73, 73, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 87, 87, 87, 87, 87, 87, 87, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 88, 89, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 91, 91, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 92, 93, 94, 94, 94, 73, 95, 73, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 73, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 73, 98, 98, 98, 98, 98, 98, 98, 73, 73, 73, 99, 73, 100, 73, 101, 73, 102, 73, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 73, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 73, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 73, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 73, 108, 108, 108, 108, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 110, 110, 73, 73, 111, 111, 73, 73, 73, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 73, 73, 113, 113, 113, 113, 113, 113, 113, 113, 73, 73, 114, 114, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 73, 73, 116, 73, 73, 73, 73, 73, 73, 73, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 73, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 73, 120, 120, 120, 73, 121, 73, 122, 122, 73, 123, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 73, 73, 73, 73, 73, 125, 125, 125, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 73, 73, 73, 73, 73, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 73, 73, 73, 73, 73, 73, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 73, 73, 133, 133, 133, 133, 133, 73, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 73, 135, 135, 135, 135, 73, 136, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, 141, 141, 73, 142, 142, 142, 142, 73, 73, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 144, 144, 144, 73, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 73, 73, 146, 147, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 149, 73, 73, 73, 150, 150, 150, 150, 73, 73, 73, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, 73, 73, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 154, 154, 154, 73, 155, 155, 155, 155, 155, 155, 155, 155, 73, 73, 156, 156, 73, 73, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 73, 158, 158, 158, 158, 158, 158, 158, 73, 159, 73, 73, 73, 160, 160, 160, 160, 73, 73, 161, 73, 162, 163, 164, 164, 164, 164, 164, 73, 73, 165, 165, 73, 73, 166, 166, 166, 73, 73, 73, 73, 73, 73, 73, 73, 73, 167, 73, 73, 73, 73, 168, 168, 73, 169, 169, 169, 170, 170, 73, 73, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 172, 172, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 173, 73, 73, 174, 174, 174, 174, 174, 174, 73, 73, 73, 73, 175, 175, 73, 73, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 73, 177, 177, 177, 177, 177, 177, 177, 73, 178, 178, 73, 179, 179, 73, 180, 180, 73, 73, 181, 73, 182, 183, 184, 184, 184, 73, 73, 73, 73, 185, 185, 73, 73, 186, 186, 186, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 187, 187, 187, 187, 73, 188, 73, 73, 73, 73, 73, 73, 73, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 191, 191, 191, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 73, 193, 193, 193, 193, 193, 193, 193, 73, 194, 73, 195, 195, 195, 73, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 73, 197, 197, 197, 197, 197, 197, 197, 73, 198, 198, 73, 199, 199, 199, 199, 199, 73, 73, 200, 201, 202, 202, 202, 202, 202, 202, 202, 202, 73, 203, 203, 203, 73, 204, 204, 204, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 205, 73, 73, 73, 73, 73, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 207, 207, 207, 73, 208, 208, 208, 208, 208, 208, 208, 208, 73, 73, 209, 209, 73, 73, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 73, 211, 211, 211, 211, 211, 211, 211, 73, 212, 212, 73, 73, 213, 213, 213, 213, 73, 73, 214, 215, 216, 216, 216, 216, 216, 216, 73, 73, 73, 217, 217, 73, 73, 218, 218, 218, 73, 73, 73, 73, 73, 73, 73, 73, 219, 219, 73, 73, 73, 73, 220, 220, 73, 221, 221, 221, 73, 73, 73, 73, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 223, 223, 73, 224, 224, 224, 224, 224, 224, 73, 73, 73, 225, 225, 225, 73, 226, 226, 226, 226, 73, 73, 73, 227, 227, 73, 228, 73, 229, 229, 73, 73, 73, 230, 230, 73, 73, 73, 231, 231, 231, 73, 73, 73, 232, 232, 232, 232, 232, 232, 232, 232, 73, 233, 233, 233, 73, 73, 73, 73, 234, 234, 234, 234, 234, 73, 73, 73, 235, 235, 235, 73, 236, 236, 236, 236, 73, 73, 73, 73, 73, 73, 73, 73, 73, 237, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 238, 238, 238, 238, 238, 238, 238, 238, 238, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 239, 239, 239, 73, 240, 240, 240, 240, 240, 240, 240, 240, 73, 241, 241, 241, 73, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 73, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 73, 244, 244, 244, 244, 244, 73, 73, 73, 73, 245, 245, 245, 245, 245, 245, 245, 73, 246, 246, 246, 73, 247, 247, 247, 247, 73, 73, 73, 73, 73, 73, 73, 248, 248, 73, 73, 73, 73, 73, 73, 73, 73, 73, 249, 249, 73, 73, 73, 73, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 251, 251, 73, 252, 252, 252, 252, 252, 252, 252, 252, 73, 253, 253, 253, 73, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 73, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 73, 256, 256, 256, 256, 256, 73, 73, 73, 73, 257, 257, 257, 257, 257, 257, 257, 73, 258, 258, 258, 73, 259, 259, 259, 259, 73, 73, 73, 73, 73, 73, 73, 260, 260, 73, 73, 73, 73, 73, 73, 73, 261, 73, 262, 262, 73, 73, 73, 73, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 264, 264, 73, 265, 265, 265, 265, 265, 265, 265, 265, 73, 266, 266, 266, 73, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 73, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 73, 73, 73, 73, 269, 269, 269, 269, 269, 269, 73, 73, 270, 270, 270, 73, 271, 271, 271, 271, 73, 73, 73, 73, 73, 73, 73, 73, 73, 272, 73, 73, 73, 73, 73, 73, 73, 73, 273, 273, 73, 73, 73, 73, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 73, 276, 277, 278, 278, 279, 279, 279, 279, 279, 279, 279, 73, 73, 73, 73, 73, 280, 280, 280, 280, 280, 280, 281, 282, 282, 282, 282, 282, 282, 282, 282, 73, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 284, 284, 73, 285, 73, 73, 286, 286, 73, 287, 73, 73, 288, 73, 73, 73, 73, 73, 73, 289, 289, 289, 289, 73, 290, 290, 290, 290, 290, 290, 290, 73, 291, 291, 291, 73, 292, 73, 293, 73, 73, 294, 294, 73, 295, 295, 73, 296, 297, 298, 298, 299, 299, 299, 299, 299, 299, 73, 300, 300, 301, 73, 73, 302, 302, 302, 302, 302, 73, 303, 73, 304, 304, 304, 304, 304, 304, 73, 73, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 306, 306, 73, 73, 73, 73, 73, 73, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 308, 73, 309, 73, 310, 73, 73, 73, 73, 311, 312, 313, 313, 313, 313, 313, 313, 313, 313, 73, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 73, 73, 73, 73, 73, 73, 73, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 73, 316, 316, 316, 316, 316, 316, 73, 73, 73, 73, 317, 317, 317, 317, 317, 317, 73, 318, 73, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 73, 73, 73, 320, 320, 320, 320, 320, 320, 320, 73, 321, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 73, 73, 73, 73, 73, 73, 73, 73, 73, 324, 73, 325, 325, 73, 326, 326, 326, 73, 327, 73, 328, 328, 73, 329, 329, 329, 329, 329, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 330, 73, 331, 73, 332, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 333, 73, 334, 73, 335, 73, 73, 73, 336, 336, 73, 73, 73, 337, 73, 73, 73, 73, 73, 338, 338, 338, 73, 339, 73, 340, 73, 341, 73, 342, 73, 73, 73, 343, 343, 73, 73, 73, 344, 344, 73, 345, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 346, 73, 73, 73, 73, 73, 73, 73, 73, 73, 347, 73, 73, 348, 73, 73, 349, 349, 73, 73, 73, 73, 73, 73, 73, 350, 350, 73, 351, 73, 352, 352, 352, 352, 352, 352, 352, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 353, 73, 73, 73, 73, 354, 73, 73, 73, 73, 73, 73, 73, 73, 355, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 73, 73, 73, 73, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 73, 73, 73, 73, 73, 73, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 73, 73, 359, 359, 359, 359, 359, 359, 73, 73, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 73, 73, 361, 361, 361, 361, 361, 361, 73, 73, 362, 362, 362, 362, 362, 362, 362, 362, 73, 363, 73, 364, 73, 365, 73, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 73, 73, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 73, 368, 368, 368, 368, 368, 368, 368, 73, 369, 73, 73, 73, 370, 370, 370, 73, 371, 371, 371, 371, 371, 371, 371, 73, 73, 73, 372, 372, 372, 372, 73, 73, 373, 373, 373, 373, 373, 373, 73, 73, 73, 73, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 73, 73, 73, 73, 73, 375, 375, 375, 73, 376, 376, 376, 376, 376, 376, 376, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 73, 73, 73, 73, 378, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 379, 73, 73, 73, 380, 380, 73, 73, 381, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 382, 382, 382, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 383, 73, 384, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 386, 386, 73, 387, 387, 387, 387, 387, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 73, 73, 73, 73, 389, 390, 73, 73, 391, 391, 73, 73, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 73, 393, 393, 393, 73, 73, 73, 73, 73, 73, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 397, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 1, 1 } ; static yyconst int yy_meta[402] = { 0, 1, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2 } ; static yyconst short int yy_base[1440] = { 0, 0, 0, 401, 404, 804, 0, 404, 416, 1205, 1208, 1608, 0, 415, 418, 2009, 2014, 2020, 2023, 2028, 2031, 2431, 0, 2832, 2835, 2838, 2842, 3242, 0, 3642, 4042, 4443, 0, 4844, 0, 5245, 0, 8932,25966, 429, 8906, 404, 401,25966, 392, 420,25966, 8907,25966,25966,25966, 418, 8907, 442, 388,25966, 430,25966, 424,25966,25966, 5629,25966,25966, 403, 467, 468, 465, 472, 482, 420, 495, 8876, 505, 409, 472, 472, 503, 8874, 525, 514, 479, 511, 526, 8861,25966,25966,25966, 0, 0,25966, 8898, 8905,25966, 587, 8892, 6008, 0, 0, 591, 8899, 1199, 2826, 1202, 595,25966,25966, 8884,25966,25966, 6387, 8853, 0, 0,25966, 3717, 2017, 562, 581, 8839, 8836, 3720, 3723, 8894, 577,25966, 8831, 8827, 3726, 3731, 594, 8885, 8827, 8824, 3734, 611, 8863, 6766, 428, 520, 0, 0, 389, 1185, 1181, 1196, 2004, 2817,25966, 621, 8866, 7145, 0, 0, 1146, 8818, 8815, 8867, 1150, 626, 563, 7524, 0, 0, 631, 7903, 8821, 8825, 395, 0, 0, 637, 8282, 0, 0, 643,25966, 644, 8865, 612, 8814, 8804, 8819, 458, 645, 8854,25966,25966, 8650,25966, 677, 25966, 1199, 1249, 1297, 1350,25966,25966, 8846,25966,25966, 25966,25966,25966, 9029, 0, 9411, 0, 0, 0, 0, 8794, 8801, 612, 8795, 8807, 8789, 8788, 8793, 8776, 0, 549, 8787, 609, 614, 626, 8790, 623, 8776, 636, 0, 8786, 640, 8772, 525, 8774, 660, 8774, 0, 8775, 0, 8769, 0, 8761, 630, 0, 8769, 8748, 689, 703, 8749, 0, 8751, 556, 8757, 0, 701, 8766, 0, 8748, 8757, 8742, 8741, 701, 8755, 706, 587, 636, 467, 8747, 8742, 732, 494, 8748, 8738, 0, 8745, 8733, 638, 501, 8739, 699, 8728, 8736, 8739, 715, 8720, 8716,25966, 779, 9790, 0,10158, 0, 0, 0, 0, 792,25966, 2829, 3739, 3742, 3746, 3749,25966, 3752, 1221,25966,10537, 0,10905, 0, 0, 0, 0, 8724, 3763, 3758, 1381, 8771, 8704, 8701, 3766, 653, 400, 8708, 8707, 8705, 734,25966, 3769, 3772, 8761, 1382, 8689, 8672, 3797, 3800, 695, 718, 8678, 8677, 8675, 3787, 1383, 8726, 8655, 8652, 3803, 1206, 1182, 8659, 8658, 8656, 3806, 1272,25966,11284, 0, 0, 0, 0, 0, 720, 1234, 1236, 1237, 1996, 2820, 1999, 2811, 25966, 2823, 2814, 3631, 921, 3755, 3778, 8693, 3783,11663, 0,12031, 0, 0, 0, 0, 1977, 8623, 8620, 8672, 1982, 1987, 8292, 1320,12410, 0,12778, 0, 0, 0, 0, 1334,13157, 0,13525, 0, 0, 0, 0, 8299, 8287, 8290, 8297, 1370,13904, 0,14272, 0, 0, 0, 0, 8344, 8317, 1413, 1363, 598, 694, 1360, 8268, 8261, 8272, 8298, 1409, 8297, 1411, 1227, 1365, 1276,14651, 0, 0, 1452, 2074, 8287, 2122, 8289,25966,15030, 0, 0, 15409, 8258, 8257, 8254, 7928, 731, 7927, 737, 7926, 1381, 1321, 1392, 1387, 1396, 1397, 1398, 1400, 1401, 1407, 1405, 1413, 7925, 1194, 7924, 1410, 743, 1411, 7897, 1328, 1423, 7896, 1429, 1417, 7895, 1420, 1430, 1447, 7894, 7883, 1473, 1474, 7882, 1475, 1476, 1479, 1480, 1478, 1484, 1489, 702, 1493, 7881, 1477, 1494, 1499, 7880, 1506, 1495, 7879, 1505, 7878, 7875, 7549, 1511, 1512, 1514, 7548, 1513, 7547, 1521, 7546, 1518, 1522, 7545, 1527, 1542, 2014, 2002, 1541, 2009, 1544, 2017, 2015, 2018, 2024, 7518, 2021, 7517, 1530, 1987, 2053, 2031, 7516, 2026, 1989, 2102, 2029, 2143, 2050, 2144, 7515, 2100, 7504, 1515, 2101, 2149, 7503, 2027, 2146, 2147, 2152, 2097, 2148, 2116, 2156, 2045, 2160, 7502,15788, 0, 0, 3811, 3814, 3817,16167, 7510, 2190, 2191, 7489, 7489, 7521, 7160, 7186, 2194, 2197, 7157, 7157, 7191, 7129, 2210, 2226, 7127, 7127, 7161, 7115,16546, 3793, 3820, 3823,25966, 16925, 0, 0, 7131,17304, 0, 0,17683, 0, 0, 18062, 2197, 2193, 7116,18441, 0, 0, 2243, 2247, 2225, 2107, 2244, 2227,25966, 7109, 7125, 2276, 2277, 2204, 2207, 2278, 2257,18820, 0, 0, 0, 0, 0, 2298, 2834, 25966,19199, 0, 0, 0, 0, 0,19578, 2200, 2243, 2225, 2251, 2322, 7107, 2253, 7104, 6778, 2276, 2255, 2323, 2257, 2220, 2330, 2350, 2278, 2327, 2308, 2329, 2345, 6777, 6776, 2796, 2814, 641, 2800, 6775, 2784, 2363, 6774, 2842, 2790, 2815, 6747, 2843, 2312, 6746, 2846, 2861, 2848, 6745, 2851, 2852, 6744, 6733, 6732, 2256, 2872, 6731, 6730, 6729, 2856, 6728, 2858, 2863, 6727, 2328, 6725, 2793, 2868, 6399, 2339, 2816, 6398, 2864, 2879, 6397, 2870, 6396, 2880, 2875, 2873, 2889, 2890, 2895, 2894, 2891, 2883, 2892, 2901, 6395, 2899, 6368, 2896, 2903, 2913, 6367, 2911, 2917, 6366, 6365, 2912, 2886, 2910, 6354, 2922, 2914, 6353, 6352, 2926, 2915, 2919, 2923, 2929, 2932, 2928, 6351, 2938, 2945, 2946, 2951, 2944, 2947, 2949, 2954, 2943, 2953, 2941, 6350,19957, 0, 0, 0, 0, 0,20336, 2995, 6348, 6344, 6049, 3024, 6018, 6016, 3053, 6016, 6014,20715, 0, 0, 0, 0, 0,21094, 0, 0, 0, 0, 0,21473, 0, 0, 0, 0, 0,21852, 0, 5995,22231, 0, 0, 0, 0, 0, 3082, 3002, 3012, 6001, 5984, 3111, 3001, 2275, 22610, 5984, 0, 5989, 5990, 5970, 5985, 5988, 5986, 0, 5965, 5645, 5640, 5648, 5642, 5641, 0, 5610, 5615, 5621, 5611, 5601, 5604, 5594, 5597, 5605, 5595, 5631, 4387, 4390, 0, 4382, 4373, 4378, 0, 4368, 4370, 0, 0, 4380, 4383, 4367, 4377, 4366, 4364, 4369, 4363, 4380, 0, 4361, 4376, 4373, 4352, 4371, 4359, 4366, 4368, 0, 4352, 4352, 4356, 2969, 4351, 4348, 4362, 4362, 4347, 4344, 4344, 4359, 4352, 4355, 4356, 4344, 4348, 4350, 4354, 0, 4334, 4336, 4341, 0, 4336, 4321, 0, 4339, 4315, 0, 0, 4312, 0, 4329, 4312, 4311, 0, 4309, 0, 4307, 4284, 4278, 0, 4293, 4264, 4265, 0, 4260,22989, 4295,23368, 4257, 4255, 4248, 4244, 4231, 4230, 0, 4229, 4234, 4233, 4221, 4216, 4222, 4212, 4230, 4219, 4191, 0, 4206, 4197, 4185, 4160, 4161, 4137, 4121, 4118, 4122, 0, 4092, 0, 4115, 4091, 4084, 4077, 4066, 0, 4064, 3983, 0, 3988, 3984, 3977, 0, 3982, 3962, 0, 0, 3972, 3964, 3948, 3961, 0, 0, 3959, 3946, 3944, 0, 0, 3933, 3917, 3931, 3908, 0, 3909, 0, 3908, 0, 3908, 3901, 3934, 3897, 3899, 0, 3879, 0, 3871, 3870, 3875, 3864, 3866, 3877, 3857, 3862, 3859, 0, 3854, 0, 3847, 0,23736, 3872, 3845, 3843, 3842, 3845, 3837, 3844, 3827, 3844, 3833, 0, 3844, 3825, 0, 3824, 0, 0, 2978, 3808, 3812, 3806, 3814, 3797, 0, 3811, 3807, 0, 3800, 3797, 3795, 3795, 3788, 0, 3786, 3800, 3800, 3797, 3782, 0, 3796, 3778, 3788, 3772, 0, 3780, 3769, 3769, 3776, 0, 3771, 3764, 0, 3769, 3764, 2985, 3745, 3761, 3756, 3737, 3720, 3718, 3730, 3726, 3713, 3724, 3723, 0, 3723, 0,24115, 0, 0, 3735,25966,25966, 3744, 3711, 3711, 0, 3740, 0, 3699, 3692, 0, 3704, 3694, 3692, 3696, 3694, 3676, 0, 3720, 3676, 0, 0, 3685, 3675, 0, 0, 3677, 0, 3664, 0, 3678, 3677, 3672, 3662, 3662, 0, 3666, 3666, 0, 3658, 3177, 3145, 3145, 3143, 3150, 3156, 3141, 0, 3140, 3139, 3154, 3152, 0, 3150, 0, 0, 3135, 0, 0, 0, 0, 0, 0, 3157, 3137, 0, 0, 3132, 0, 3141, 3130, 3128, 3140, 3127, 3126, 0, 3130, 3122, 3167, 0, 3119, 0, 0, 3165, 3119, 3116, 3128, 3117, 3160, 3127, 3125, 3123, 0, 3111, 3125, 0, 0, 0, 0, 3121, 0, 0, 0, 3775, 3110, 3111, 3111, 3109, 3149, 0, 3103, 0, 3107, 3116, 3101, 3114, 3104, 0, 3106, 3096, 0, 3090, 3133, 3098, 3091, 3087, 3091, 0, 3790, 3826, 3829, 3128, 3095, 3068, 385, 456, 529, 605, 622, 1341, 0, 1408, 0, 1442, 1541, 2065, 2087, 2148, 2173, 2205, 3832, 3835, 3838, 2343, 2379, 0, 2974, 2962, 2985, 2984, 2988, 2990, 2989, 2975, 2993, 2989, 0, 0, 3003, 2992, 3841, 3852, 3844, 3002, 3003, 3004, 3040, 0, 0, 3011, 3005, 3013, 2999, 3010, 3004, 3003, 3014, 3847, 3870, 3857, 3860, 3023, 0, 3017, 3018, 0, 3029, 0, 3035, 3036, 3027, 3028, 0, 3873, 3878, 3883, 3888, 3863, 3866, 3894, 3899, 3902, 3905, 3043, 0, 3045, 3037, 3049, 3039, 3043, 3058, 3909, 3913, 3917, 3920, 3923, 3927, 3936, 3940, 3945, 3967, 3933, 3948, 3951, 0, 3052, 3058, 0, 3059, 3046, 0, 3973,24491, 3956, 3960, 3976, 3963, 3982, 9029,24505, 3992,24116,24517, 3970, 9461,24520,24903, 3067, 3068, 3072,24574, 3987,24484,24501,25289,24509,24513,25292, 25295,10208,10955,25298, 3070, 3073, 3996,25301,25318,25304, 25313,12081,12828,25324, 3086,13577, 3075,24544, 3088,14322, 3071,24477,25966,25724,25729,25734,25739,25744,25749,25754, 25759,25764,25769,25774,25778,25782,25786,25790,25793,25796, 25800,25804,25808,25812,25817,25822,25827,25832,25836,25840, 25844,25848,25852,25855,25858,25862,25866,25870,25874,25878, 25883,25888,25892,25896,25901,25906,25911,25916,25920,25924, 25928,25932,25936,25940,25944,25948,25952,25956,25960 } ; static yyconst short int yy_def[1440] = { 0, 1383, 1, 1384, 1384, 1383, 5, 1385, 1385, 1386, 1386, 1383, 11, 11, 11, 1387, 1387, 1388, 1388, 1389, 1389, 1383, 21, 1390, 1390, 1391, 1391, 1383, 27, 1392, 1392, 1383, 31, 1383, 33, 1383, 35, 1383, 1383, 1383, 1383, 1393, 1383, 1383, 1394, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 1383, 1383, 1383, 61, 61, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 96, 96, 1383, 1383, 1395, 1396, 1395, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 110, 110, 110, 1383, 1397, 1397, 1383, 1383, 1383, 1383, 1397, 1398, 1383, 1383, 1383, 1383, 1383, 1398, 1399, 1383, 1383, 1383, 1383, 1399, 1383, 1383, 1383, 137, 137, 137, 137, 1400, 1401, 1400, 1402, 1403, 1402, 1383, 1383, 1383, 1383, 151, 151, 1404, 1383, 1383, 1383, 1404, 1383, 1383, 1383, 161, 161, 1383, 1383, 165, 165, 165, 165, 165, 1383, 1383, 172, 172, 1383, 1383, 1405, 1383, 1406, 1383, 1383, 1383, 1407, 1408, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 204, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 290, 1383, 290, 290, 290, 290, 1383, 1383, 1409, 1410, 1409, 1409, 1411, 1383, 1409, 1383, 1383, 1383, 308, 1383, 308, 308, 308, 308, 308, 1412, 1412, 1383, 1383, 1383, 1383, 1412, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1412, 1413, 1383, 1383, 1383, 1383, 1413, 1413, 1383, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1415, 1416, 1415, 1415, 1383, 1417, 1415, 1418, 1419, 1418, 1418, 1383, 1418, 1383, 380, 1383, 380, 380, 380, 380, 1420, 1383, 1383, 1383, 1420, 1420, 1383, 1383, 1383, 395, 1383, 395, 395, 395, 395, 1383, 1383, 403, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 415, 1383, 415, 415, 415, 415, 1421, 1383, 1421, 1421, 1421, 1421, 1421, 1383, 1383, 1383, 1422, 1422, 1383, 1422, 1422, 1422, 1422, 1383, 439, 439, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 1383, 569, 569, 1423, 1423, 1423, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1424, 1424, 1424, 1383, 1383, 601, 601, 1383, 1383, 605, 605, 1383, 608, 608, 1383, 611, 611, 611, 1383, 615, 615, 1425, 1425, 1425, 1425, 1425, 1425, 1383, 1383, 1383, 1426, 1426, 1426, 1426, 1426, 1426, 1383, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 1383, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 1383, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 1383, 792, 792, 792, 792, 792, 1383, 798, 798, 798, 798, 798, 1383, 804, 804, 1383, 807, 807, 807, 807, 807, 1427, 1427, 1427, 1383, 1383, 1428, 1428, 1428, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1383, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1089, 1089, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1430, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1431, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1432, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1433, 1434, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1433, 1429, 1429, 1435, 1429, 1429, 1433, 1429, 1433, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1429, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1436, 1429, 1429, 1433, 821, 821, 821, 821, 821, 821, 821, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1437, 1438, 1429, 1429, 1433, 1383, 1349, 1349, 1349, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1433, 1439, 1429, 1429, 1433, 1349, 1349, 1429, 1433, 1429, 1429, 1433, 1429, 1429, 1433, 1349, 1429, 1349, 1429, 1349, 1429, 1349, 1429, 0, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; static yyconst short int yy_nxt[26368] = { 0, 38, 39, 39, 39, 39, 40, 41, 42, 43, 38, 38, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 62, 38, 63, 38, 61, 64, 65, 66, 67, 68, 69, 70, 61, 71, 61, 72, 73, 74, 75, 76, 77, 61, 78, 79, 80, 81, 82, 83, 84, 61, 85, 86, 87, 38, 38, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 61, 38, 61, 38, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 61, 38, 38, 38, 38, 61, 38, 61, 38, 38, 38, 61, 38, 38, 38, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 38, 61, 61, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 38, 61, 38, 38, 38, 61, 38, 38, 61, 61, 61, 61, 61, 61, 38, 61, 38, 38, 38, 38, 61, 61, 38, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 61, 38, 38, 61, 88, 88, 88, 38, 38, 38, 38, 88, 38, 88, 88, 38, 88, 38, 88, 38, 38, 38, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 38, 88, 38, 38, 88, 88, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 88, 88, 38, 38, 38, 38, 38, 38, 38, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 38, 38, 88, 88, 88, 88, 38, 89, 89, 38, 38, 88, 38, 38, 38, 88, 38, 88, 89, 88, 38, 38, 38, 38, 38, 38, 184, 185, 38, 99, 99, 99, 99, 196, 178, 100, 197, 91, 179, 368, 91, 99, 99, 99, 99, 38, 92, 100, 38, 92, 38, 186, 1249, 38, 175, 175, 175, 175, 38, 198, 189, 38, 190, 38, 114, 187, 38, 114, 180, 412, 181, 182, 202, 203, 413, 211, 252, 199, 200, 579, 201, 212, 580, 213, 192, 214, 193, 363, 215, 216, 253, 238, 184, 185, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 239, 110, 240, 364, 110, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 217, 221, 224, 1250, 218, 254, 225, 257, 222, 255, 258, 540, 226, 541, 219, 223, 227, 228, 229, 256, 259, 230, 260, 233, 220, 278, 231, 279, 232, 234, 280, 241, 235, 242, 236, 237, 261, 556, 248, 548, 243, 244, 249, 262, 281, 365, 245, 246, 282, 557, 549, 272, 250, 263, 273, 274, 264, 251, 266, 323, 267, 275, 268, 283, 276, 366, 284, 285, 269, 491, 1251, 277, 270, 286, 338, 492, 328, 271, 289, 289, 289, 289, 297, 297, 297, 297, 306, 306, 306, 306, 329, 349, 515, 462, 423, 324, 180, 201, 181, 182, 463, 325, 355, 355, 355, 355, 326, 516, 423, 424, 339, 327, 175, 175, 175, 175, 340, 394, 394, 394, 394, 341, 402, 402, 402, 402, 342, 350, 414, 414, 414, 414, 536, 351, 175, 175, 175, 175, 352, 537, 178, 1252, 433, 353, 179, 425, 434, 453, 454, 470, 622, 426, 471, 465, 466, 467, 427, 468, 472, 475, 480, 428, 469, 577, 476, 473, 474, 494, 1253, 455, 502, 483, 484, 487, 481, 488, 538, 477, 435, 554, 478, 503, 504, 539, 436, 555, 846, 190, 485, 437, 423, 204, 489, 495, 438, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 584, 496, 497, 518, 578, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 507, 510, 519, 527, 204, 508, 446, 528, 559, 596, 509, 622, 520, 529, 560, 531, 585, 532, 521, 533, 511, 693, 512, 534, 564, 535, 565, 583, 586, 596, 544, 587, 566, 204, 545, 289, 289, 289, 289, 204, 650, 369, 369, 369, 546, 204, 672, 547, 297, 297, 297, 297, 652, 93, 93, 93, 93, 93, 93, 38, 94, 94, 94, 94, 38, 38, 38, 38, 38, 38, 38, 95, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 38, 96, 38, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 96, 38, 38, 38, 38, 96, 38, 96, 38, 38, 38, 96, 38, 38, 38, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 38, 96, 96, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 38, 96, 38, 38, 38, 96, 38, 38, 96, 96, 96, 96, 96, 96, 38, 96, 38, 38, 38, 38, 96, 96, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 96, 38, 38, 96, 97, 97, 97, 38, 38, 38, 38, 97, 38, 97, 97, 38, 97, 38, 97, 38, 38, 38, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 38, 97, 38, 38, 97, 97, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 97, 97, 38, 38, 38, 38, 38, 38, 38, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 38, 38, 97, 97, 97, 97, 38, 98, 98, 38, 38, 97, 38, 38, 38, 97, 38, 97, 98, 97, 38, 38, 38, 38, 38, 38, 300, 368, 38, 300, 371, 372, 102, 375, 388, 102, 389, 390, 388, 442, 389, 390, 306, 306, 306, 306, 590, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 592, 434, 669, 593, 204, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 192, 596, 193, 596, 596, 591, 355, 355, 355, 355, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 434, 596, 631, 596, 596, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 443, 379, 379, 379, 394, 394, 394, 394, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 402, 402, 402, 402, 632, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 444, 423, 444, 204, 423, 445, 414, 414, 414, 414, 204, 434, 655, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 323, 338, 349, 674, 1254, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 620, 423, 434, 621, 434, 623, 324, 339, 350, 631, 204, 627, 325, 340, 351, 618, 657, 326, 341, 352, 654, 204, 327, 342, 353, 204, 204, 204, 656, 204, 204, 658, 659, 660, 204, 661, 204, 671, 667, 204, 204, 666, 204, 662, 663, 665, 204, 1255, 629, 204, 664, 630, 204, 679, 442, 673, 678, 628, 204, 204, 675, 619, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 680, 677, 681, 1256, 204, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 204, 204, 204, 204, 696, 204, 204, 204, 685, 691, 686, 204, 692, 687, 684, 688, 204, 689, 690, 697, 204, 698, 204, 391, 391, 391, 204, 391, 391, 391, 694, 699, 204, 204, 700, 701, 706, 702, 204, 707, 204, 204, 204, 708, 712, 204, 703, 715, 204, 204, 719, 713, 753, 717, 720, 709, 710, 204, 369, 369, 369, 716, 373, 373, 373, 721, 725, 727, 204, 204, 735, 204, 1257, 376, 376, 376, 301, 301, 301, 301, 301, 301, 103, 103, 103, 103, 103, 103, 38, 104, 104, 104, 104, 38, 105, 38, 38, 38, 38, 106, 38, 38, 38, 38, 38, 38, 38, 107, 38, 38, 38, 38, 108, 109, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 38, 110, 38, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 110, 38, 38, 38, 38, 110, 38, 110, 38, 38, 38, 110, 38, 38, 38, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 38, 110, 110, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 38, 110, 38, 38, 38, 110, 38, 38, 110, 110, 110, 110, 110, 110, 38, 110, 38, 38, 38, 38, 110, 110, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 110, 38, 38, 110, 112, 112, 112, 38, 38, 38, 38, 112, 38, 112, 112, 38, 112, 38, 112, 38, 38, 38, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 38, 112, 38, 38, 112, 112, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 112, 112, 38, 38, 38, 38, 38, 38, 38, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 38, 38, 112, 112, 112, 112, 38, 113, 113, 38, 38, 112, 38, 38, 38, 112, 38, 112, 113, 112, 38, 38, 38, 38, 38, 38, 115, 115, 115, 115, 38, 115, 115, 115, 115, 117, 38, 378, 368, 38, 117, 368, 123, 318, 38, 123, 124, 38, 118, 124, 204, 736, 204, 118, 130, 131, 319, 130, 131, 125, 743, 388, 125, 389, 390, 204, 388, 125, 389, 390, 125, 388, 204, 389, 390, 722, 728, 204, 204, 726, 204, 204, 724, 731, 204, 729, 741, 204, 733, 204, 204, 723, 204, 119, 204, 120, 745, 730, 119, 757, 120, 320, 742, 321, 126, 739, 127, 126, 204, 127, 443, 766, 132, 204, 133, 132, 204, 133, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 747, 423, 737, 738, 1258, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 445, 751, 204, 1259, 762, 204, 204, 204, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 744, 754, 764, 204, 814, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 204, 204, 755, 204, 204, 204, 204, 758, 760, 204, 748, 746, 765, 204, 1260, 749, 767, 204, 763, 759, 577, 776, 330, 761, 584, 434, 337, 780, 434, 776, 776, 776, 776, 776, 1261, 780, 780, 780, 780, 780, 590, 423, 354, 423, 776, 776, 776, 776, 776, 776, 780, 780, 780, 780, 780, 780, 783, 403, 806, 423, 423, 403, 1262, 423, 783, 783, 783, 783, 783, 805, 204, 822, 631, 618, 819, 177, 177, 813, 434, 783, 783, 783, 783, 783, 783, 813, 813, 813, 813, 813, 204, 824, 833, 622, 815, 204, 434, 434, 434, 434, 813, 813, 813, 813, 813, 813, 627, 818, 183, 828, 183, 830, 825, 204, 832, 818, 818, 818, 818, 818, 823, 204, 864, 204, 820, 204, 865, 204, 639, 829, 818, 818, 818, 818, 818, 818, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 204, 631, 204, 826, 837, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 831, 836, 204, 856, 838, 839, 204, 834, 391, 391, 391, 835, 872, 391, 391, 391, 204, 204, 391, 391, 391, 204, 204, 204, 204, 840, 841, 369, 369, 369, 369, 369, 369, 204, 875, 379, 379, 379, 1266, 204, 121, 121, 121, 849, 204, 121, 121, 121, 322, 322, 322, 128, 128, 128, 128, 128, 128, 204, 1267, 134, 134, 134, 134, 134, 134, 38, 135, 135, 135, 135, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 136, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 38, 38, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 139, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 38, 137, 38, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 137, 38, 38, 38, 38, 137, 38, 137, 38, 38, 38, 137, 38, 38, 38, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 38, 137, 137, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 38, 137, 38, 38, 38, 137, 38, 38, 137, 137, 137, 137, 137, 137, 38, 137, 38, 38, 38, 38, 137, 137, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 137, 38, 38, 137, 140, 140, 140, 38, 38, 38, 38, 140, 38, 140, 140, 38, 140, 38, 140, 38, 38, 38, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 38, 140, 38, 38, 140, 140, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 140, 140, 38, 38, 38, 38, 38, 38, 38, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 38, 38, 140, 140, 140, 140, 38, 141, 141, 38, 38, 140, 38, 38, 38, 140, 38, 140, 141, 140, 38, 38, 38, 38, 38, 38, 303, 375, 38, 300, 368, 38, 304, 368, 873, 38, 844, 204, 371, 372, 847, 598, 372, 204, 848, 852, 204, 443, 146, 204, 845, 143, 146, 204, 143, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 876, 853, 204, 204, 204, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 204, 204, 857, 855, 204, 858, 204, 851, 859, 204, 204, 860, 861, 866, 204, 870, 204, 868, 869, 204, 874, 204, 204, 878, 879, 881, 204, 883, 204, 884, 204, 204, 885, 204, 886, 887, 888, 204, 204, 889, 890, 204, 893, 891, 204, 892, 902, 204, 204, 204, 204, 895, 204, 204, 204, 896, 897, 204, 898, 204, 899, 204, 900, 903, 901, 904, 906, 907, 204, 204, 204, 204, 204, 204, 908, 204, 912, 204, 905, 909, 204, 204, 910, 911, 204, 915, 204, 204, 913, 916, 204, 917, 918, 919, 921, 920, 204, 922, 923, 204, 925, 204, 204, 204, 204, 204, 423, 204, 924, 204, 434, 204, 204, 776, 983, 330, 423, 1268, 984, 1105, 1269, 776, 776, 776, 776, 776, 1136, 1106, 1270, 1271, 1137, 1272, 1273, 1274, 1275, 1276, 776, 776, 776, 776, 776, 776, 780, 1277, 337, 1278, 1279, 1284, 1285, 1286, 780, 780, 780, 780, 780, 1287, 1288, 1289, 1290, 1291, 631, 622, 1292, 1293, 1294, 780, 780, 780, 780, 780, 780, 783, 622, 354, 1295, 1306, 1307, 1308, 1309, 783, 783, 783, 783, 783, 1310, 1311, 423, 1312, 1313, 1327, 1328, 1329, 1330, 1331, 783, 783, 783, 783, 783, 783, 813, 1332, 177, 1333, 1349, 1350, 1351, 1352, 813, 813, 813, 813, 813, 204, 204, 1366, 204, 204, 204, 204, 434, 204, 1248, 813, 813, 813, 813, 813, 813, 818, 1379, 183, 204, 1375, 204, 1377, 1247, 818, 818, 818, 818, 818, 1381, 1246, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 818, 818, 818, 818, 818, 818, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 369, 369, 369, 369, 369, 369, 376, 376, 376, 373, 373, 373, 599, 599, 599, 305, 305, 305, 301, 301, 301, 144, 144, 144, 144, 144, 144, 147, 147, 147, 1183, 147, 147, 147, 148, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 148, 150, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 148, 151, 148, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 151, 148, 148, 148, 148, 151, 148, 151, 148, 148, 148, 151, 148, 148, 148, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 148, 151, 151, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 148, 151, 148, 148, 148, 151, 148, 148, 151, 151, 151, 151, 151, 151, 148, 151, 148, 148, 148, 148, 151, 151, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 151, 148, 148, 151, 152, 152, 152, 148, 148, 148, 148, 152, 148, 152, 152, 148, 152, 148, 152, 148, 148, 148, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 148, 152, 148, 148, 152, 152, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 152, 152, 148, 148, 148, 148, 148, 148, 148, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 148, 148, 152, 152, 152, 152, 148, 153, 153, 148, 148, 152, 148, 148, 148, 152, 148, 152, 153, 152, 148, 148, 148, 148, 148, 154, 154, 154, 154, 154, 375, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 154, 156, 157, 1182, 1181, 1180, 1179, 316, 316, 316, 316, 1178, 1177, 1176, 1175, 1174, 318, 1173, 332, 318, 1172, 332, 333, 1171, 1170, 333, 1169, 1168, 1167, 319, 344, 345, 319, 344, 345, 303, 1166, 1165, 300, 1164, 1163, 304, 300, 1162, 1161, 303, 1160, 1159, 300, 1158, 1157, 573, 1156, 316, 316, 316, 316, 318, 1149, 1148, 1147, 375, 318, 1146, 1145, 318, 1144, 332, 318, 1143, 319, 333, 1142, 1141, 320, 319, 321, 320, 319, 321, 334, 319, 335, 334, 375, 335, 344, 345, 346, 375, 347, 346, 332, 347, 1140, 332, 333, 1139, 1138, 333, 1135, 1134, 344, 345, 1222, 344, 345, 300, 368, 1133, 300, 1132, 1131, 300, 1130, 320, 1129, 321, 1128, 1222, 320, 1127, 321, 320, 1126, 321, 320, 1125, 321, 334, 1124, 335, 1123, 1122, 1121, 368, 1120, 1119, 368, 1118, 1117, 1116, 1115, 1114, 346, 1113, 347, 1112, 1111, 330, 1110, 1109, 1108, 1107, 334, 1244, 335, 334, 1222, 335, 346, 1222, 347, 346, 1264, 347, 1281, 1222, 1104, 1297, 1222, 1304, 1297, 1222, 1314, 1103, 1222, 1319, 1102, 1101, 1100, 1282, 1298, 1099, 1098, 1298, 1282, 1321, 1097, 1222, 1096, 1095, 1222, 1297, 1094, 1222, 1093, 1092, 1088, 1299, 1322, 1297, 1299, 1087, 1086, 1085, 1298, 1222, 1084, 1083, 1315, 1082, 1222, 1081, 1298, 1080, 1316, 1323, 1334, 1079, 1281, 1317, 1078, 1299, 1077, 1281, 1318, 1300, 1222, 1301, 1300, 1299, 1301, 1076, 1222, 1297, 1314, 1075, 1222, 1319, 1074, 1073, 1222, 1072, 1071, 1324, 1222, 1325, 1298, 1222, 1297, 1300, 1222, 1301, 1340, 1070, 1222, 1336, 1069, 1300, 1337, 1301, 1222, 1298, 1335, 1299, 1342, 1068, 1338, 1222, 1067, 1338, 1315, 1066, 1222, 1339, 1065, 1222, 1316, 1343, 1299, 1344, 1334, 1317, 1281, 1222, 1319, 1281, 1318, 1222, 1281, 1064, 1222, 1300, 1063, 1301, 1345, 1062, 1061, 1222, 1060, 1356, 1222, 1338, 1059, 1222, 1354, 1281, 1300, 1355, 1301, 1222, 1058, 1376, 1057, 1056, 1222, 376, 376, 376, 1055, 1222, 1054, 1053, 1346, 1222, 1347, 1281, 158, 158, 158, 154, 154, 154, 154, 154, 154, 1338, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 154, 156, 157, 322, 322, 322, 322, 322, 322, 336, 336, 336, 336, 336, 336, 1052, 1051, 348, 348, 348, 348, 348, 348, 1050, 1049, 305, 305, 305, 301, 301, 301, 1048, 301, 301, 301, 574, 574, 574, 301, 301, 301, 376, 376, 376, 322, 322, 322, 1047, 1046, 322, 322, 322, 322, 322, 322, 322, 322, 322, 336, 336, 336, 1223, 1223, 1223, 376, 376, 376, 1045, 1044, 376, 376, 376, 1043, 348, 348, 348, 1223, 1223, 1223, 369, 369, 369, 1042, 336, 336, 336, 336, 336, 336, 348, 348, 348, 348, 348, 348, 1041, 1040, 301, 301, 301, 301, 301, 301, 301, 301, 301, 369, 369, 369, 369, 369, 369, 1245, 1245, 1245, 1223, 1223, 1223, 1223, 1223, 1223, 1265, 1265, 1265, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1039, 1038, 1283, 1283, 1283, 1037, 1036, 1305, 1305, 1305, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1035, 1302, 1302, 1302, 1302, 1302, 1302, 1034, 1033, 1223, 1223, 1223, 1032, 1031, 1223, 1223, 1223, 1030, 1029, 1326, 1326, 1326, 1028, 1027, 1026, 1302, 1302, 1302, 1025, 1024, 1223, 1223, 1223, 1302, 1302, 1302, 1223, 1223, 1223, 1023, 1223, 1223, 1223, 1022, 1223, 1223, 1223, 1021, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1020, 1223, 1223, 1223, 1018, 1017, 1016, 1223, 1223, 1223, 1302, 1302, 1302, 1015, 1223, 1223, 1223, 1014, 1013, 1223, 1223, 1223, 1223, 1223, 1223, 1302, 1302, 1302, 1012, 1011, 1223, 1223, 1223, 1010, 1223, 1223, 1223, 1223, 1223, 1223, 1009, 1348, 1348, 1348, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1008, 1007, 1006, 1223, 1223, 1223, 1005, 1004, 1223, 1223, 1223, 1003, 1002, 1223, 1223, 1223, 1001, 1223, 1223, 1223, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 158, 158, 158, 154, 38, 159, 159, 159, 159, 38, 38, 160, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 38, 161, 38, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 161, 38, 38, 38, 38, 161, 38, 161, 38, 38, 38, 161, 38, 38, 38, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 38, 161, 161, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 38, 161, 38, 38, 38, 161, 38, 38, 161, 161, 161, 161, 161, 161, 38, 161, 38, 38, 38, 38, 161, 161, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 161, 38, 38, 161, 162, 162, 162, 38, 38, 38, 38, 162, 38, 162, 162, 38, 162, 38, 162, 38, 38, 38, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 38, 162, 38, 38, 162, 162, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 162, 162, 38, 38, 38, 38, 38, 38, 38, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 38, 38, 162, 162, 162, 162, 38, 163, 163, 38, 38, 162, 38, 38, 38, 162, 38, 162, 163, 162, 38, 38, 38, 38, 38, 38, 164, 164, 164, 164, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 167, 165, 165, 165, 168, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 38, 165, 38, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 165, 38, 38, 38, 38, 165, 38, 165, 38, 38, 38, 165, 38, 38, 38, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 38, 165, 165, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 38, 165, 38, 38, 38, 165, 38, 38, 165, 165, 165, 165, 165, 165, 38, 165, 38, 38, 38, 38, 165, 165, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 165, 38, 38, 165, 169, 169, 169, 38, 38, 38, 38, 169, 38, 169, 169, 38, 169, 38, 169, 38, 38, 38, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 38, 169, 38, 38, 169, 169, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 169, 169, 38, 38, 38, 38, 38, 38, 38, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 38, 38, 169, 169, 169, 169, 38, 170, 170, 38, 38, 169, 38, 38, 38, 169, 38, 169, 170, 169, 38, 38, 38, 38, 38, 38, 171, 171, 171, 171, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 38, 172, 38, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 172, 38, 38, 38, 38, 172, 38, 172, 38, 38, 38, 172, 38, 38, 38, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 38, 172, 172, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 38, 172, 38, 38, 38, 172, 38, 38, 172, 172, 172, 172, 172, 172, 38, 172, 38, 38, 38, 38, 172, 172, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 172, 38, 38, 172, 173, 173, 173, 38, 38, 38, 38, 173, 38, 173, 173, 38, 173, 38, 173, 38, 38, 38, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 38, 173, 38, 38, 173, 173, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 173, 173, 38, 38, 38, 38, 38, 38, 38, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 38, 38, 173, 173, 173, 173, 38, 174, 174, 38, 38, 173, 38, 38, 38, 173, 38, 173, 174, 173, 38, 38, 38, 38, 38, 204, 204, 955, 205, 206, 954, 953, 952, 951, 950, 949, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 948, 947, 946, 945, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 944, 943, 942, 941, 940, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 290, 290, 939, 291, 292, 938, 937, 936, 935, 934, 933, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 932, 931, 930, 929, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 594, 594, 588, 588, 928, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 293, 293, 294, 294, 290, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 290, 293, 290, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 290, 294, 294, 291, 294, 290, 294, 290, 294, 294, 294, 290, 294, 291, 294, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 294, 290, 290, 294, 291, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 291, 294, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 295, 295, 295, 294, 294, 294, 294, 295, 291, 295, 295, 294, 295, 294, 295, 293, 294, 291, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 295, 294, 294, 295, 295, 293, 294, 291, 294, 291, 294, 294, 294, 294, 294, 295, 295, 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 294, 295, 295, 295, 295, 293, 296, 296, 294, 293, 295, 294, 294, 293, 295, 293, 295, 296, 295, 308, 308, 581, 309, 310, 581, 926, 914, 204, 204, 204, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 204, 204, 204, 204, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 894, 882, 880, 877, 204, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 357, 357, 204, 358, 871, 204, 204, 204, 867, 863, 862, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 204, 204, 204, 854, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 850, 204, 843, 842, 204, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 380, 380, 204, 381, 382, 827, 817, 816, 403, 387, 785, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 354, 784, 594, 782, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 337, 781, 588, 779, 778, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 383, 383, 384, 384, 380, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 380, 383, 380, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 380, 384, 384, 381, 384, 380, 384, 380, 384, 384, 384, 380, 384, 381, 384, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 384, 380, 380, 384, 381, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 381, 384, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 385, 385, 385, 384, 384, 384, 384, 385, 381, 385, 385, 384, 385, 384, 385, 383, 384, 381, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 385, 384, 384, 385, 385, 383, 384, 381, 384, 381, 384, 384, 384, 384, 384, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 385, 385, 385, 385, 383, 386, 386, 384, 383, 385, 384, 384, 383, 385, 383, 385, 386, 385, 395, 395, 330, 396, 397, 777, 581, 583, 768, 756, 752, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 750, 740, 734, 732, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 718, 204, 714, 711, 705, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 398, 398, 399, 399, 395, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 395, 398, 395, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 395, 399, 399, 396, 399, 395, 399, 395, 399, 399, 399, 395, 399, 396, 399, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 399, 395, 395, 399, 396, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 396, 399, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 400, 400, 400, 399, 399, 399, 399, 400, 396, 400, 400, 399, 400, 399, 400, 398, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 400, 399, 399, 400, 400, 398, 399, 396, 399, 396, 399, 399, 399, 399, 399, 400, 400, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 399, 400, 400, 400, 400, 398, 401, 401, 399, 398, 400, 399, 399, 398, 400, 398, 400, 401, 400, 403, 403, 704, 404, 405, 204, 204, 204, 695, 204, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 682, 204, 676, 204, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 670, 668, 653, 651, 204, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 415, 415, 204, 416, 417, 649, 204, 641, 639, 432, 434, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 626, 625, 624, 422, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 423, 614, 613, 612, 611, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 418, 418, 419, 419, 415, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 415, 418, 415, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 415, 419, 419, 416, 419, 415, 419, 415, 419, 419, 419, 415, 419, 416, 419, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 419, 415, 415, 419, 416, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 416, 419, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 420, 420, 420, 419, 419, 419, 419, 420, 416, 420, 420, 419, 420, 419, 420, 418, 419, 416, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 420, 419, 419, 420, 420, 418, 419, 416, 419, 416, 419, 419, 419, 419, 419, 420, 420, 419, 419, 419, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 419, 420, 420, 420, 420, 418, 421, 421, 419, 418, 420, 419, 419, 418, 420, 418, 420, 421, 420, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 604, 393, 392, 392, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 600, 595, 594, 594, 354, 354, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 354, 589, 588, 588, 439, 337, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 337, 439, 439, 439, 439, 439, 439, 439, 439, 439, 337, 582, 581, 581, 330, 330, 439, 439, 439, 576, 439, 575, 568, 567, 439, 439, 439, 439, 439, 563, 562, 561, 439, 558, 553, 552, 551, 439, 550, 439, 543, 542, 530, 439, 526, 525, 524, 439, 439, 439, 439, 439, 439, 523, 522, 517, 514, 513, 506, 505, 439, 439, 501, 500, 439, 499, 439, 439, 439, 439, 439, 439, 439, 498, 493, 490, 486, 482, 479, 439, 439, 464, 461, 439, 460, 439, 439, 439, 439, 439, 439, 439, 459, 439, 458, 457, 456, 439, 452, 451, 439, 439, 439, 439, 439, 439, 446, 439, 183, 431, 430, 429, 439, 439, 177, 411, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 410, 393, 392, 392, 187, 356, 439, 439, 439, 439, 439, 354, 354, 354, 337, 439, 337, 337, 439, 439, 439, 439, 439, 330, 330, 315, 307, 439, 439, 298, 187, 439, 440, 440, 440, 288, 187, 287, 265, 440, 247, 440, 440, 191, 440, 188, 440, 176, 1383, 1383, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 1383, 440, 1383, 1383, 440, 440, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 440, 440, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 1383, 1383, 440, 440, 440, 440, 1383, 441, 441, 1383, 1383, 440, 1383, 1297, 1383, 440, 1383, 440, 441, 440, 204, 204, 1383, 205, 206, 1383, 1298, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1299, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1300, 1383, 1301, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 447, 1302, 1302, 1302, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1222, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1281, 1383, 1383, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 1383, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 449, 449, 449, 1383, 1383, 1383, 1383, 449, 1383, 449, 449, 1383, 449, 1383, 449, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 449, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 1383, 449, 449, 449, 449, 1383, 450, 450, 1383, 1383, 449, 1383, 1383, 1383, 449, 1383, 449, 450, 449, 290, 290, 1383, 291, 292, 1383, 1383, 1383, 1383, 1383, 1383, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1383, 1383, 1383, 1383, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1223, 1223, 1223, 1383, 1383, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 293, 293, 294, 294, 290, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 290, 293, 290, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 290, 294, 294, 291, 294, 290, 294, 290, 294, 294, 294, 290, 294, 291, 294, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 294, 290, 290, 294, 291, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 291, 294, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 295, 295, 295, 294, 294, 294, 294, 295, 291, 295, 295, 294, 295, 294, 295, 293, 294, 291, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 295, 294, 294, 295, 295, 293, 294, 291, 294, 291, 294, 294, 294, 294, 294, 295, 295, 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 294, 295, 295, 295, 295, 293, 296, 296, 294, 293, 295, 294, 294, 293, 295, 293, 295, 296, 295, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1222, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1281, 1383, 1383, 1383, 1383, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 569, 1383, 1383, 1383, 1383, 569, 1383, 569, 1383, 1383, 1383, 569, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 569, 1383, 1383, 569, 569, 569, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 570, 570, 570, 1383, 1383, 1383, 1383, 570, 1383, 570, 570, 1383, 570, 1383, 570, 1383, 1383, 1383, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 1383, 570, 1383, 1383, 570, 570, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 570, 570, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 1383, 1383, 570, 570, 570, 570, 1383, 571, 571, 1383, 1383, 570, 1383, 1383, 1383, 570, 1383, 570, 571, 570, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1223, 1223, 1223, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1222, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1281, 1383, 1383, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 1383, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 449, 449, 449, 1383, 1383, 1383, 1383, 449, 1383, 449, 449, 1383, 449, 1383, 449, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 449, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 1383, 449, 449, 449, 449, 1383, 450, 450, 1383, 1383, 449, 1383, 1383, 1383, 449, 1383, 449, 450, 449, 357, 357, 1383, 358, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1223, 1223, 1223, 1383, 1383, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 380, 380, 1383, 381, 382, 1383, 1383, 1383, 1383, 1383, 1383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 1383, 1383, 1383, 1383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 1383, 1383, 1383, 1383, 1383, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 383, 383, 384, 384, 380, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 380, 383, 380, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 380, 384, 384, 381, 384, 380, 384, 380, 384, 384, 384, 380, 384, 381, 384, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 384, 380, 380, 384, 381, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 381, 384, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 385, 385, 385, 384, 384, 384, 384, 385, 381, 385, 385, 384, 385, 384, 385, 383, 384, 381, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 385, 384, 384, 385, 385, 383, 384, 381, 384, 381, 384, 384, 384, 384, 384, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 385, 385, 385, 385, 383, 386, 386, 384, 383, 385, 384, 384, 383, 385, 383, 385, 386, 385, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1222, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1281, 1383, 1383, 1383, 1383, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 601, 1383, 1383, 1383, 1383, 601, 1383, 601, 1383, 1383, 1383, 601, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 601, 1383, 1383, 601, 601, 601, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 602, 602, 602, 1383, 1383, 1383, 1383, 602, 1383, 602, 602, 1383, 602, 1383, 602, 1383, 1383, 1383, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 1383, 602, 1383, 1383, 602, 602, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 602, 602, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 1383, 1383, 602, 602, 602, 602, 1383, 603, 603, 1383, 1383, 602, 1383, 1383, 1383, 602, 1383, 602, 603, 602, 395, 395, 1383, 396, 397, 1383, 1383, 1383, 1383, 1383, 1383, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1383, 1383, 1383, 1383, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1223, 1223, 1223, 1383, 1383, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 398, 398, 399, 399, 395, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 395, 398, 395, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 395, 399, 399, 396, 399, 395, 399, 395, 399, 399, 399, 395, 399, 396, 399, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 399, 395, 395, 399, 396, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 396, 399, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 400, 400, 400, 399, 399, 399, 399, 400, 396, 400, 400, 399, 400, 399, 400, 398, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 400, 399, 399, 400, 400, 398, 399, 396, 399, 396, 399, 399, 399, 399, 399, 400, 400, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 399, 400, 400, 400, 400, 398, 401, 401, 399, 398, 400, 399, 399, 398, 400, 398, 400, 401, 400, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1222, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1281, 1383, 1383, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 605, 1383, 1383, 1383, 1383, 605, 1383, 605, 1383, 1383, 1383, 605, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 605, 1383, 1383, 605, 605, 605, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 606, 606, 606, 1383, 1383, 1383, 1383, 606, 1383, 606, 606, 1383, 606, 1383, 606, 1383, 1383, 1383, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 1383, 606, 1383, 1383, 606, 606, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 606, 606, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 1383, 1383, 606, 606, 606, 606, 1383, 607, 607, 1383, 1383, 606, 1383, 1383, 1383, 606, 1383, 606, 607, 606, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1223, 1223, 1223, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1378, 1383, 1383, 608, 1222, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 608, 1383, 1383, 1383, 1383, 608, 1383, 608, 1383, 1383, 1383, 608, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 608, 1383, 1383, 608, 608, 608, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 609, 609, 609, 1383, 1383, 1383, 1383, 609, 1383, 609, 609, 1383, 609, 1383, 609, 1383, 1383, 1383, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 1383, 609, 1383, 1383, 609, 609, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 609, 609, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 1383, 1383, 609, 609, 609, 609, 1383, 610, 610, 1383, 1383, 609, 1383, 1383, 1383, 609, 1383, 609, 610, 609, 415, 415, 1383, 416, 417, 1383, 1383, 1383, 1383, 1383, 1383, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 1383, 1383, 1383, 1383, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 1383, 1383, 1223, 1223, 1223, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 418, 418, 419, 419, 415, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 415, 418, 415, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 415, 419, 419, 416, 419, 415, 419, 415, 419, 419, 419, 415, 419, 416, 419, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 419, 415, 415, 419, 416, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 416, 419, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 420, 420, 420, 419, 419, 419, 419, 420, 416, 420, 420, 419, 420, 419, 420, 418, 419, 416, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 420, 419, 419, 420, 420, 418, 419, 416, 419, 416, 419, 419, 419, 419, 419, 420, 420, 419, 419, 419, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 419, 420, 420, 420, 420, 418, 421, 421, 419, 418, 420, 419, 419, 418, 420, 418, 420, 421, 420, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1382, 1383, 1222, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 615, 1383, 1383, 1383, 1383, 615, 1383, 615, 1383, 1383, 1383, 615, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 615, 1383, 1383, 615, 615, 615, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 616, 616, 616, 1383, 1383, 1383, 1383, 616, 1383, 616, 616, 1383, 616, 1383, 616, 1383, 1383, 1383, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 1383, 616, 1383, 1383, 616, 616, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 616, 616, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 1383, 1383, 616, 616, 616, 616, 1383, 617, 617, 1383, 1383, 616, 1383, 1383, 1383, 616, 1383, 616, 617, 616, 633, 633, 1383, 634, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1223, 1223, 1223, 1383, 1383, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 635, 635, 636, 636, 633, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 633, 635, 633, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 633, 636, 636, 634, 636, 633, 636, 633, 636, 636, 636, 633, 636, 634, 636, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 636, 633, 633, 636, 634, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 634, 636, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 637, 637, 637, 636, 636, 636, 636, 637, 634, 637, 637, 636, 637, 636, 637, 635, 636, 634, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 637, 636, 636, 637, 637, 635, 636, 634, 636, 634, 636, 636, 636, 636, 636, 637, 637, 636, 636, 636, 636, 636, 636, 636, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 636, 637, 637, 637, 637, 635, 638, 638, 636, 635, 637, 636, 636, 635, 637, 635, 637, 638, 637, 642, 642, 1383, 643, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 1383, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 644, 644, 645, 645, 642, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 642, 644, 642, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 642, 645, 645, 643, 645, 642, 645, 642, 645, 645, 645, 642, 645, 643, 645, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 645, 642, 642, 645, 643, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 643, 645, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 646, 646, 646, 645, 645, 645, 645, 646, 643, 646, 646, 645, 646, 645, 646, 644, 645, 643, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 646, 645, 645, 646, 646, 644, 645, 643, 645, 643, 645, 645, 645, 645, 645, 646, 646, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 646, 646, 646, 646, 644, 647, 647, 645, 644, 646, 645, 645, 644, 646, 644, 646, 647, 646, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 648, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 769, 769, 1383, 770, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 771, 771, 772, 772, 769, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 769, 771, 769, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 769, 772, 772, 770, 772, 769, 772, 769, 772, 772, 772, 769, 772, 770, 772, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 772, 769, 769, 772, 770, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 770, 772, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 773, 773, 773, 772, 772, 772, 772, 773, 770, 773, 773, 772, 773, 772, 773, 771, 772, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 773, 772, 772, 773, 773, 771, 772, 770, 772, 770, 772, 772, 772, 772, 772, 773, 773, 772, 772, 772, 772, 772, 772, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 772, 773, 773, 773, 773, 771, 774, 774, 772, 771, 773, 772, 772, 771, 773, 771, 773, 774, 773, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 775, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 357, 357, 1383, 358, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 1383, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 786, 786, 1383, 787, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 1383, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 788, 789, 789, 786, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 786, 788, 786, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 786, 789, 789, 787, 789, 786, 789, 786, 789, 789, 789, 786, 789, 787, 789, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 789, 786, 786, 789, 787, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 787, 789, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 790, 790, 790, 789, 789, 789, 789, 790, 787, 790, 790, 789, 790, 789, 790, 788, 789, 787, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 790, 789, 789, 790, 790, 788, 789, 787, 789, 787, 789, 789, 789, 789, 789, 790, 790, 789, 789, 789, 789, 789, 789, 789, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 789, 790, 790, 790, 790, 788, 791, 791, 789, 788, 790, 789, 789, 788, 790, 788, 790, 791, 790, 792, 792, 1383, 793, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 1383, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 794, 794, 795, 795, 792, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 792, 794, 792, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 792, 795, 795, 793, 795, 792, 795, 792, 795, 795, 795, 792, 795, 793, 795, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 795, 792, 792, 795, 793, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 793, 795, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 796, 796, 796, 795, 795, 795, 795, 796, 793, 796, 796, 795, 796, 795, 796, 794, 795, 793, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 796, 795, 795, 796, 796, 794, 795, 793, 795, 793, 795, 795, 795, 795, 795, 796, 796, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 795, 796, 796, 796, 796, 794, 797, 797, 795, 794, 796, 795, 795, 794, 796, 794, 796, 797, 796, 798, 798, 1383, 799, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 1383, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 800, 800, 801, 801, 798, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 798, 800, 798, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 798, 801, 801, 799, 801, 798, 801, 798, 801, 801, 801, 798, 801, 799, 801, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 801, 798, 798, 801, 799, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 799, 801, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 802, 802, 802, 801, 801, 801, 801, 802, 799, 802, 802, 801, 802, 801, 802, 800, 801, 799, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 802, 801, 801, 802, 802, 800, 801, 799, 801, 799, 801, 801, 801, 801, 801, 802, 802, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 801, 802, 802, 802, 802, 800, 803, 803, 801, 800, 802, 801, 801, 800, 802, 800, 802, 803, 802, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 804, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 807, 807, 1383, 808, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 1383, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 809, 809, 810, 810, 807, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 807, 809, 807, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 807, 810, 810, 808, 810, 807, 810, 807, 810, 810, 810, 807, 810, 808, 810, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 810, 807, 807, 810, 808, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 808, 810, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 811, 811, 811, 810, 810, 810, 810, 811, 808, 811, 811, 810, 811, 810, 811, 809, 810, 808, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 810, 810, 811, 811, 809, 810, 808, 810, 808, 810, 810, 810, 810, 810, 811, 811, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 810, 811, 811, 811, 811, 809, 812, 812, 810, 809, 811, 810, 810, 809, 811, 809, 811, 812, 811, 633, 633, 1383, 634, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 1383, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 635, 635, 636, 636, 633, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 633, 635, 633, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 633, 636, 636, 634, 636, 633, 636, 633, 636, 636, 636, 633, 636, 634, 636, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 636, 633, 633, 636, 634, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 634, 636, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 637, 637, 637, 636, 636, 636, 636, 637, 634, 637, 637, 636, 637, 636, 637, 635, 636, 634, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 637, 636, 636, 637, 637, 635, 636, 634, 636, 634, 636, 636, 636, 636, 636, 637, 637, 636, 636, 636, 636, 636, 636, 636, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 636, 637, 637, 637, 637, 635, 638, 638, 636, 635, 637, 636, 636, 635, 637, 635, 637, 638, 637, 642, 642, 1383, 643, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 1383, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 644, 644, 645, 645, 642, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 642, 644, 642, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 642, 645, 645, 643, 645, 642, 645, 642, 645, 645, 645, 642, 645, 643, 645, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 645, 642, 642, 645, 643, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 643, 645, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 646, 646, 646, 645, 645, 645, 645, 646, 643, 646, 646, 645, 646, 645, 646, 644, 645, 643, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 646, 645, 645, 646, 646, 644, 645, 643, 645, 643, 645, 645, 645, 645, 645, 646, 646, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 646, 646, 646, 646, 644, 647, 647, 645, 644, 646, 645, 645, 644, 646, 644, 646, 647, 646, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 821, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 769, 769, 1383, 770, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 771, 771, 772, 772, 769, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 769, 771, 769, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 769, 772, 772, 770, 772, 769, 772, 769, 772, 772, 772, 769, 772, 770, 772, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 772, 769, 769, 772, 770, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 770, 772, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 773, 773, 773, 772, 772, 772, 772, 773, 770, 773, 773, 772, 773, 772, 773, 771, 772, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 773, 772, 772, 773, 773, 771, 772, 770, 772, 770, 772, 772, 772, 772, 772, 773, 773, 772, 772, 772, 772, 772, 772, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 772, 773, 773, 773, 773, 771, 774, 774, 772, 771, 773, 772, 772, 771, 773, 771, 773, 774, 773, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 927, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 786, 786, 1383, 787, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 1383, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 788, 789, 789, 786, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 786, 788, 786, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 786, 789, 789, 787, 789, 786, 789, 786, 789, 789, 789, 786, 789, 787, 789, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 789, 786, 786, 789, 787, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 787, 789, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 790, 790, 790, 789, 789, 789, 789, 790, 787, 790, 790, 789, 790, 789, 790, 788, 789, 787, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 790, 789, 789, 790, 790, 788, 789, 787, 789, 787, 789, 789, 789, 789, 789, 790, 790, 789, 789, 789, 789, 789, 789, 789, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 789, 790, 790, 790, 790, 788, 791, 791, 789, 788, 790, 789, 789, 788, 790, 788, 790, 791, 790, 792, 792, 1383, 793, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 1383, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 794, 794, 795, 795, 792, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 792, 794, 792, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 792, 795, 795, 793, 795, 792, 795, 792, 795, 795, 795, 792, 795, 793, 795, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 795, 792, 792, 795, 793, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 793, 795, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 796, 796, 796, 795, 795, 795, 795, 796, 793, 796, 796, 795, 796, 795, 796, 794, 795, 793, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 796, 795, 795, 796, 796, 794, 795, 793, 795, 793, 795, 795, 795, 795, 795, 796, 796, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 795, 796, 796, 796, 796, 794, 797, 797, 795, 794, 796, 795, 795, 794, 796, 794, 796, 797, 796, 798, 798, 1383, 799, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 1383, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 800, 800, 801, 801, 798, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 798, 800, 798, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 798, 801, 801, 799, 801, 798, 801, 798, 801, 801, 801, 798, 801, 799, 801, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 801, 798, 798, 801, 799, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 799, 801, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 802, 802, 802, 801, 801, 801, 801, 802, 799, 802, 802, 801, 802, 801, 802, 800, 801, 799, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 802, 801, 801, 802, 802, 800, 801, 799, 801, 799, 801, 801, 801, 801, 801, 802, 802, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 801, 802, 802, 802, 802, 800, 803, 803, 801, 800, 802, 801, 801, 800, 802, 800, 802, 803, 802, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 807, 807, 1383, 808, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 1383, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 809, 809, 810, 810, 807, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 807, 809, 807, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 807, 810, 810, 808, 810, 807, 810, 807, 810, 810, 810, 807, 810, 808, 810, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 810, 807, 807, 810, 808, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 808, 810, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 811, 811, 811, 810, 810, 810, 810, 811, 808, 811, 811, 810, 811, 810, 811, 809, 810, 808, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 810, 810, 811, 811, 809, 810, 808, 810, 808, 810, 810, 810, 810, 810, 811, 811, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 810, 811, 811, 811, 811, 809, 812, 812, 810, 809, 811, 810, 810, 809, 811, 809, 811, 812, 811, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 308, 308, 1383, 309, 1019, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1090, 1090, 1090, 1383, 1383, 1383, 1383, 1090, 1383, 1090, 1090, 1383, 1090, 1383, 1090, 1383, 1383, 1383, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1383, 1090, 1383, 1383, 1090, 1090, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1090, 1090, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1383, 1383, 1090, 1090, 1090, 1090, 1383, 1091, 1091, 1383, 1383, 1090, 1383, 1383, 318, 1090, 1383, 1090, 1091, 1090, 1150, 1150, 1383, 1151, 1383, 1383, 1383, 319, 1383, 1383, 1383, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1383, 1383, 1383, 1383, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1383, 320, 1383, 321, 1383, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1153, 1153, 1150, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1150, 1152, 1150, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1150, 1153, 1153, 1151, 1153, 1150, 1153, 1150, 1153, 1153, 1153, 1150, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1153, 1151, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1153, 1153, 1153, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1154, 1154, 1154, 1153, 1153, 1153, 1153, 1154, 1151, 1154, 1154, 1153, 1154, 1153, 1154, 1152, 1153, 1151, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1153, 1154, 1153, 1153, 1154, 1154, 1152, 1153, 1151, 1153, 1151, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1153, 1153, 1154, 1154, 1154, 1154, 1152, 1155, 1155, 1153, 1152, 1154, 1153, 1153, 1152, 1154, 1152, 1154, 1155, 1154, 1353, 1314, 322, 322, 322, 1314, 1222, 1319, 1353, 1353, 1353, 1353, 1353, 1222, 1383, 1383, 1358, 1383, 1383, 1297, 1222, 1367, 1383, 1353, 1353, 1353, 1353, 1353, 1353, 1359, 1222, 1360, 1298, 1383, 1222, 1338, 1383, 1315, 1222, 1383, 1383, 1315, 1222, 1316, 1383, 1383, 1361, 1316, 1317, 1299, 1383, 1383, 1317, 1318, 1383, 1383, 1383, 1318, 1383, 1383, 1383, 1380, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1222, 1362, 1383, 1363, 1300, 1383, 1301, 1383, 1383, 1383, 1353, 1383, 1281, 1383, 1383, 1383, 1383, 1383, 1353, 1353, 1353, 1353, 1353, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1222, 1383, 1383, 1353, 1353, 1353, 1353, 1353, 1353, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1364, 1364, 1364, 1302, 1302, 1302, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1223, 1223, 1223, 1383, 204, 204, 204, 204, 204, 204, 1365, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1223, 1223, 1223, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 1297, 1383, 1383, 1297, 1383, 1383, 1369, 1383, 1383, 1297, 1319, 1383, 1297, 1298, 1383, 1383, 1298, 1383, 1383, 1370, 1383, 1371, 1298, 1383, 1297, 1298, 1314, 1383, 1383, 1383, 1299, 1383, 1383, 1299, 1383, 1297, 1361, 1298, 1383, 1299, 1383, 1383, 1299, 1383, 1383, 1222, 1383, 1383, 1298, 1383, 1383, 1383, 1383, 1383, 1299, 1383, 1383, 1383, 1300, 1222, 1301, 1300, 1315, 1301, 1372, 1299, 1373, 1300, 1316, 1301, 1300, 1383, 1301, 1317, 1383, 1383, 1383, 1383, 1318, 1383, 1383, 1383, 1300, 1383, 1301, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1300, 1383, 1301, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1302, 1302, 1302, 1302, 1302, 1302, 1374, 1374, 1374, 1302, 1302, 1302, 1302, 1302, 1302, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1383, 1383, 1302, 1302, 1302, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1302, 1302, 1302, 90, 90, 90, 90, 90, 38, 38, 38, 38, 38, 101, 101, 101, 101, 101, 116, 116, 116, 116, 116, 122, 122, 122, 122, 122, 129, 129, 129, 129, 129, 142, 142, 142, 142, 142, 145, 145, 145, 145, 145, 38, 38, 38, 38, 38, 177, 177, 177, 177, 177, 183, 183, 183, 183, 183, 299, 299, 299, 299, 302, 302, 302, 302, 317, 317, 317, 317, 331, 331, 331, 343, 343, 343, 367, 367, 367, 367, 370, 370, 370, 370, 374, 374, 374, 374, 377, 377, 377, 377, 387, 1383, 387, 387, 177, 177, 177, 177, 177, 422, 422, 422, 422, 422, 183, 183, 183, 183, 183, 432, 432, 432, 432, 432, 299, 299, 299, 299, 302, 302, 302, 302, 572, 572, 572, 572, 317, 317, 317, 317, 331, 331, 331, 343, 343, 343, 367, 367, 367, 367, 370, 370, 370, 370, 597, 597, 597, 597, 374, 374, 374, 374, 377, 377, 1383, 377, 387, 1383, 387, 387, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 299, 299, 299, 299, 367, 367, 367, 367, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 1221, 1221, 1221, 1221, 1243, 1243, 1243, 1243, 1263, 1263, 1263, 1263, 1280, 1280, 1280, 1280, 1296, 1296, 1296, 1296, 1303, 1303, 1303, 1303, 1320, 1320, 1320, 1320, 1341, 1341, 1341, 1341, 317, 317, 317, 317, 1357, 1357, 1357, 1357, 1368, 1368, 1368, 1368, 37, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; static yyconst short int yy_chk[26368] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 44, 44, 4, 7, 7, 7, 7, 54, 41, 7, 54, 3, 41, 142, 4, 8, 8, 8, 8, 13, 3, 8, 14, 4, 13, 45, 1227, 14, 39, 39, 39, 39, 13, 56, 51, 14, 51, 13, 13, 45, 14, 14, 42, 168, 42, 42, 58, 58, 168, 64, 74, 56, 56, 324, 56, 64, 324, 64, 53, 64, 53, 138, 64, 64, 74, 70, 183, 183, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 70, 13, 70, 138, 14, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 65, 66, 67, 1228, 65, 75, 67, 76, 66, 75, 76, 268, 67, 268, 65, 66, 68, 68, 68, 75, 76, 68, 76, 69, 65, 81, 68, 81, 68, 69, 81, 71, 69, 71, 69, 69, 77, 279, 73, 272, 71, 71, 73, 77, 82, 139, 71, 71, 82, 279, 272, 80, 73, 77, 80, 80, 77, 73, 79, 117, 79, 80, 79, 83, 80, 139, 83, 83, 79, 234, 1229, 80, 79, 83, 124, 234, 118, 79, 94, 94, 94, 94, 99, 99, 99, 99, 104, 104, 104, 104, 118, 130, 253, 221, 426, 117, 160, 118, 160, 160, 221, 117, 135, 135, 135, 135, 117, 253, 179, 179, 124, 117, 149, 149, 149, 149, 124, 159, 159, 159, 159, 124, 164, 164, 164, 164, 124, 130, 171, 171, 171, 171, 266, 130, 175, 175, 175, 175, 130, 266, 177, 1230, 184, 130, 177, 179, 184, 213, 213, 224, 426, 179, 224, 223, 223, 223, 179, 223, 224, 225, 227, 179, 223, 323, 225, 224, 224, 236, 1231, 213, 244, 229, 229, 232, 227, 232, 267, 225, 184, 278, 225, 244, 244, 267, 184, 278, 674, 190, 229, 184, 427, 674, 232, 236, 184, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 338, 236, 236, 256, 323, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 248, 249, 256, 263, 500, 248, 328, 263, 281, 363, 248, 427, 256, 263, 281, 265, 338, 265, 256, 265, 249, 500, 249, 265, 285, 265, 285, 328, 339, 363, 271, 339, 285, 456, 271, 289, 289, 289, 289, 458, 456, 142, 142, 142, 271, 476, 476, 271, 297, 297, 297, 297, 458, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 101, 144, 10, 103, 143, 143, 9, 145, 154, 10, 154, 154, 158, 192, 158, 158, 306, 306, 306, 306, 349, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 350, 436, 473, 350, 473, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, 364, 193, 365, 366, 349, 355, 355, 355, 355, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 438, 364, 436, 365, 366, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 194, 375, 375, 375, 394, 394, 394, 394, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 402, 402, 402, 402, 438, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, 428, 195, 461, 425, 195, 414, 414, 414, 414, 479, 437, 461, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 318, 333, 344, 479, 1232, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 425, 424, 433, 425, 435, 428, 318, 333, 344, 437, 460, 433, 318, 333, 344, 424, 463, 318, 333, 344, 460, 462, 318, 333, 344, 464, 465, 466, 462, 467, 468, 463, 464, 465, 470, 466, 469, 475, 471, 475, 477, 470, 471, 467, 467, 469, 483, 1234, 435, 485, 468, 435, 480, 485, 442, 477, 483, 433, 482, 486, 480, 424, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 486, 482, 487, 1236, 487, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 490, 491, 493, 494, 503, 497, 495, 496, 491, 498, 493, 498, 499, 494, 490, 495, 499, 496, 497, 503, 501, 504, 508, 154, 154, 154, 505, 158, 158, 158, 501, 504, 510, 507, 505, 507, 514, 508, 514, 515, 518, 516, 554, 515, 518, 522, 510, 520, 520, 523, 525, 518, 554, 523, 525, 515, 516, 539, 144, 144, 144, 522, 143, 143, 143, 526, 529, 531, 529, 526, 539, 531, 1237, 145, 145, 145, 101, 101, 101, 103, 103, 103, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 15, 17, 146, 367, 18, 16, 369, 17, 116, 19, 18, 17, 20, 15, 18, 540, 540, 545, 16, 19, 19, 116, 20, 20, 17, 545, 387, 18, 387, 387, 528, 391, 19, 391, 391, 20, 392, 530, 392, 392, 527, 532, 527, 533, 530, 532, 534, 528, 535, 537, 533, 544, 535, 537, 544, 558, 527, 547, 15, 542, 15, 547, 534, 16, 558, 16, 116, 544, 116, 17, 542, 17, 18, 566, 18, 443, 566, 19, 549, 19, 20, 541, 20, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 549, 621, 541, 541, 1238, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 445, 552, 562, 1239, 562, 552, 555, 546, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 546, 555, 564, 564, 621, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 548, 550, 556, 559, 560, 563, 556, 559, 560, 561, 550, 548, 565, 565, 1240, 550, 567, 567, 563, 559, 577, 578, 577, 561, 584, 629, 584, 585, 630, 578, 578, 578, 578, 578, 1241, 585, 585, 585, 585, 585, 590, 620, 590, 623, 578, 578, 578, 578, 578, 578, 585, 585, 585, 585, 585, 585, 591, 613, 613, 618, 622, 612, 1242, 619, 591, 591, 591, 591, 591, 612, 649, 649, 629, 618, 630, 618, 622, 619, 632, 591, 591, 591, 591, 591, 591, 619, 619, 619, 619, 619, 662, 651, 662, 620, 623, 651, 820, 627, 628, 631, 619, 619, 619, 619, 619, 619, 627, 628, 627, 655, 631, 659, 652, 650, 661, 628, 628, 628, 628, 628, 650, 652, 696, 655, 632, 659, 696, 661, 639, 658, 628, 628, 628, 628, 628, 628, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 658, 820, 665, 653, 665, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 660, 664, 667, 685, 666, 667, 685, 663, 387, 387, 387, 663, 706, 391, 391, 391, 653, 660, 392, 392, 392, 666, 706, 668, 663, 668, 669, 367, 367, 367, 369, 369, 369, 711, 711, 146, 146, 146, 1246, 669, 15, 15, 15, 678, 664, 16, 16, 16, 116, 116, 116, 17, 17, 17, 18, 18, 18, 678, 1247, 19, 19, 19, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 23, 102, 147, 24, 299, 370, 25, 102, 373, 708, 26, 672, 677, 368, 368, 675, 372, 372, 681, 677, 681, 708, 640, 25, 672, 673, 23, 26, 675, 24, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 712, 682, 673, 682, 712, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 680, 684, 687, 684, 687, 688, 689, 680, 689, 691, 692, 691, 692, 697, 701, 704, 703, 701, 703, 688, 709, 704, 714, 714, 715, 717, 709, 719, 717, 720, 697, 721, 721, 720, 722, 723, 724, 715, 719, 725, 726, 727, 729, 727, 742, 728, 742, 722, 723, 726, 728, 731, 725, 724, 733, 733, 734, 731, 735, 729, 737, 734, 738, 743, 741, 745, 746, 749, 743, 737, 741, 735, 746, 750, 750, 738, 754, 751, 745, 751, 745, 752, 752, 753, 749, 757, 755, 753, 755, 758, 754, 759, 760, 761, 763, 762, 757, 764, 765, 767, 767, 765, 761, 758, 759, 762, 814, 763, 766, 760, 819, 766, 764, 776, 882, 776, 815, 1249, 882, 1037, 1250, 776, 776, 776, 776, 776, 1074, 1037, 1251, 1252, 1074, 1253, 1254, 1255, 1256, 1257, 776, 776, 776, 776, 776, 776, 780, 1258, 780, 1261, 1262, 1266, 1267, 1268, 780, 780, 780, 780, 780, 1269, 1272, 1273, 1274, 1275, 819, 814, 1276, 1277, 1278, 780, 780, 780, 780, 780, 780, 783, 815, 783, 1279, 1284, 1286, 1287, 1289, 783, 783, 783, 783, 783, 1291, 1292, 813, 1293, 1294, 1306, 1308, 1309, 1310, 1311, 783, 783, 783, 783, 783, 783, 813, 1312, 813, 1313, 1328, 1329, 1331, 1332, 813, 813, 813, 813, 813, 1350, 1351, 1352, 1365, 1381, 1352, 1366, 818, 1377, 1226, 813, 813, 813, 813, 813, 813, 818, 1377, 818, 1375, 1366, 1379, 1375, 1225, 818, 818, 818, 818, 818, 1379, 1224, 1219, 1218, 1217, 1216, 1215, 1214, 1212, 1211, 818, 818, 818, 818, 818, 818, 1209, 1208, 1207, 1206, 1205, 1203, 1201, 1200, 1199, 1198, 1197, 1192, 1187, 1186, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1173, 1171, 1170, 1169, 1167, 1166, 1165, 1164, 1163, 1162, 1160, 1157, 1156, 1149, 1146, 1144, 1143, 1142, 1141, 1139, 1138, 1137, 1136, 1135, 1134, 370, 370, 370, 373, 373, 373, 147, 147, 147, 368, 368, 368, 372, 372, 372, 102, 102, 102, 299, 299, 299, 23, 23, 23, 24, 24, 24, 25, 25, 25, 1133, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 29, 29, 29, 29, 374, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1132, 1130, 1129, 1127, 115, 115, 115, 115, 1126, 1125, 1124, 1123, 1121, 115, 1119, 122, 121, 1116, 128, 122, 1115, 1112, 128, 1111, 1109, 1108, 115, 129, 129, 121, 134, 134, 300, 1107, 1106, 301, 1105, 1104, 300, 302, 1102, 1101, 303, 1099, 1097, 305, 1096, 1095, 303, 1092, 316, 316, 316, 316, 317, 1087, 1085, 1084, 376, 316, 1083, 1082, 322, 1081, 331, 330, 1080, 317, 331, 1079, 1078, 115, 316, 115, 121, 322, 121, 122, 330, 122, 128, 377, 128, 343, 343, 129, 379, 129, 134, 336, 134, 1077, 337, 336, 1076, 1075, 337, 1073, 1072, 348, 348, 1196, 354, 354, 572, 597, 1070, 573, 1069, 1067, 574, 1066, 317, 1065, 317, 1064, 1221, 316, 1062, 316, 322, 1061, 322, 330, 1060, 330, 331, 1059, 331, 1057, 1056, 1055, 598, 1054, 1053, 599, 1051, 1050, 1049, 1048, 1047, 343, 1045, 343, 1044, 1042, 1244, 1041, 1040, 1039, 1038, 336, 1222, 336, 337, 1223, 337, 348, 1243, 348, 354, 1244, 354, 1264, 1245, 1034, 1281, 1263, 1282, 1296, 1265, 1297, 1032, 1280, 1298, 1031, 1029, 1028, 1264, 1281, 1027, 1026, 1296, 1282, 1299, 1025, 1283, 1024, 1023, 1300, 1302, 1022, 1301, 1021, 1020, 1017, 1281, 1299, 1304, 1296, 1015, 1013, 1012, 1302, 1297, 1011, 1010, 1297, 1009, 1298, 1008, 1304, 1007, 1297, 1299, 1314, 1006, 1300, 1297, 1005, 1302, 1003, 1301, 1297, 1281, 1303, 1281, 1296, 1304, 1296, 1001, 1305, 1320, 1321, 1000, 1314, 1322, 999, 998, 1315, 997, 995, 1299, 1316, 1299, 1320, 1317, 1326, 1302, 1318, 1302, 1319, 993, 1319, 1315, 991, 1304, 1315, 1304, 1324, 1326, 1314, 1320, 1323, 990, 1316, 1321, 989, 1317, 1321, 988, 1322, 1318, 985, 1325, 1321, 1323, 1326, 1323, 1334, 1321, 1334, 1336, 1343, 1338, 1321, 1337, 1324, 984, 1339, 1320, 983, 1320, 1323, 980, 979, 1346, 978, 1340, 1334, 1336, 977, 1338, 1337, 1325, 1326, 1339, 1326, 1340, 974, 1367, 973, 971, 1354, 374, 374, 374, 970, 1343, 969, 967, 1323, 1367, 1323, 1346, 29, 29, 29, 29, 30, 30, 30, 30, 30, 1354, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 115, 115, 115, 121, 121, 121, 122, 122, 122, 128, 128, 128, 966, 964, 129, 129, 129, 134, 134, 134, 963, 962, 300, 300, 300, 301, 301, 301, 961, 302, 302, 302, 303, 303, 303, 305, 305, 305, 376, 376, 376, 317, 317, 317, 960, 958, 316, 316, 316, 322, 322, 322, 330, 330, 330, 331, 331, 331, 1196, 1196, 1196, 377, 377, 377, 956, 955, 379, 379, 379, 954, 343, 343, 343, 1221, 1221, 1221, 597, 597, 597, 953, 336, 336, 336, 337, 337, 337, 348, 348, 348, 354, 354, 354, 952, 951, 572, 572, 572, 573, 573, 573, 574, 574, 574, 598, 598, 598, 599, 599, 599, 1222, 1222, 1222, 1223, 1223, 1223, 1243, 1243, 1243, 1244, 1244, 1244, 1245, 1245, 1245, 1263, 1263, 1263, 1265, 1265, 1265, 1280, 1280, 1280, 950, 949, 1264, 1264, 1264, 948, 946, 1282, 1282, 1282, 1283, 1283, 1283, 1300, 1300, 1300, 1301, 1301, 1301, 945, 1281, 1281, 1281, 1296, 1296, 1296, 944, 943, 1297, 1297, 1297, 942, 941, 1298, 1298, 1298, 940, 939, 1299, 1299, 1299, 938, 937, 935, 1302, 1302, 1302, 934, 933, 1303, 1303, 1303, 1304, 1304, 1304, 1305, 1305, 1305, 932, 1314, 1314, 1314, 931, 1315, 1315, 1315, 930, 1316, 1316, 1316, 1317, 1317, 1317, 1318, 1318, 1318, 928, 1319, 1319, 1319, 926, 924, 923, 1324, 1324, 1324, 1320, 1320, 1320, 922, 1321, 1321, 1321, 920, 919, 1322, 1322, 1322, 1325, 1325, 1325, 1326, 1326, 1326, 918, 916, 1336, 1336, 1336, 914, 1337, 1337, 1337, 1339, 1339, 1339, 913, 1323, 1323, 1323, 1346, 1346, 1346, 1334, 1334, 1334, 1338, 1338, 1338, 912, 910, 907, 1340, 1340, 1340, 906, 904, 1354, 1354, 1354, 903, 901, 1343, 1343, 1343, 900, 1367, 1367, 1367, 899, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 881, 880, 879, 877, 876, 875, 874, 873, 872, 871, 870, 868, 867, 866, 865, 864, 863, 862, 861, 860, 857, 856, 854, 853, 852, 850, 849, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 61, 61, 848, 61, 61, 847, 846, 845, 844, 843, 842, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 841, 840, 839, 838, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 836, 835, 834, 833, 832, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 96, 96, 831, 96, 96, 829, 828, 827, 826, 825, 824, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 822, 817, 816, 806, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 785, 784, 782, 781, 779, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 110, 110, 778, 110, 110, 777, 768, 756, 748, 747, 744, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 740, 739, 736, 732, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 730, 718, 716, 713, 710, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 137, 137, 707, 137, 705, 702, 700, 699, 698, 695, 694, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 693, 690, 686, 683, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 679, 676, 671, 670, 657, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 151, 151, 656, 151, 151, 654, 626, 625, 614, 604, 595, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 594, 593, 592, 589, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 588, 587, 586, 583, 582, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 161, 161, 581, 161, 161, 580, 579, 576, 568, 557, 553, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 551, 543, 538, 536, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 524, 521, 519, 517, 513, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 165, 165, 512, 165, 165, 511, 509, 506, 502, 492, 489, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 488, 484, 481, 478, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 474, 472, 459, 457, 455, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 172, 172, 454, 172, 172, 453, 452, 446, 444, 434, 432, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 431, 430, 429, 423, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 422, 413, 412, 411, 410, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 393, 390, 389, 388, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 378, 353, 352, 351, 347, 346, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 345, 342, 341, 340, 188, 335, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 334, 188, 188, 188, 188, 188, 188, 188, 188, 188, 332, 327, 326, 325, 321, 320, 188, 188, 188, 319, 188, 315, 287, 286, 188, 188, 188, 188, 188, 284, 283, 282, 188, 280, 277, 276, 274, 188, 273, 188, 270, 269, 264, 188, 262, 261, 260, 188, 188, 188, 188, 188, 188, 259, 257, 254, 252, 250, 247, 246, 188, 188, 243, 241, 188, 239, 188, 188, 188, 188, 188, 188, 188, 237, 235, 233, 231, 228, 226, 188, 188, 222, 219, 188, 218, 188, 188, 188, 188, 188, 188, 188, 217, 188, 216, 215, 214, 188, 212, 211, 188, 188, 188, 188, 188, 188, 198, 188, 185, 182, 181, 180, 188, 188, 178, 167, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 166, 157, 156, 155, 150, 136, 188, 188, 188, 188, 188, 133, 132, 131, 127, 188, 126, 123, 188, 188, 188, 188, 188, 120, 119, 111, 107, 188, 188, 100, 95, 188, 188, 188, 188, 92, 91, 84, 78, 188, 72, 188, 188, 52, 188, 47, 188, 40, 37, 0, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 188, 0, 0, 188, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 0, 188, 188, 188, 188, 0, 188, 188, 0, 0, 188, 0, 1341, 0, 188, 0, 188, 188, 188, 204, 204, 0, 204, 204, 0, 1341, 0, 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 0, 0, 1341, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1341, 0, 1341, 0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 1341, 1341, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 1347, 206, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 1347, 0, 0, 206, 206, 206, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 206, 0, 0, 0, 0, 206, 0, 206, 0, 0, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 206, 0, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 206, 0, 206, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 0, 206, 0, 0, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 0, 0, 206, 206, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 206, 0, 0, 206, 206, 206, 206, 0, 0, 0, 0, 206, 0, 206, 206, 0, 206, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 206, 206, 206, 206, 0, 206, 206, 0, 0, 206, 0, 0, 0, 206, 0, 206, 206, 206, 290, 290, 0, 290, 290, 0, 0, 0, 0, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 0, 0, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1347, 1347, 1347, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 1362, 292, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 1362, 0, 0, 0, 0, 292, 292, 292, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 292, 0, 0, 0, 0, 292, 0, 292, 0, 0, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 292, 0, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 292, 0, 292, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 0, 292, 0, 0, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 0, 0, 292, 292, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 292, 0, 0, 292, 292, 292, 292, 0, 0, 0, 0, 292, 0, 292, 292, 0, 292, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 292, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 292, 292, 292, 292, 0, 292, 292, 0, 0, 292, 0, 0, 0, 292, 0, 292, 292, 292, 308, 308, 0, 308, 308, 0, 0, 0, 0, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 0, 0, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1362, 1362, 1362, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 1363, 310, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 1363, 0, 0, 310, 310, 310, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 310, 0, 0, 0, 0, 310, 0, 310, 0, 0, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 310, 0, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 310, 0, 310, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 0, 310, 0, 0, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 0, 0, 310, 310, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 310, 0, 0, 310, 310, 310, 310, 0, 0, 0, 0, 310, 0, 310, 310, 0, 310, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 310, 310, 310, 310, 0, 310, 310, 0, 0, 310, 0, 0, 0, 310, 0, 310, 310, 310, 357, 357, 0, 357, 0, 0, 0, 0, 0, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 0, 0, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1363, 1363, 1363, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 380, 380, 0, 380, 380, 0, 0, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 0, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 1372, 382, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 1372, 0, 0, 0, 0, 382, 382, 382, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 382, 0, 0, 0, 0, 382, 0, 382, 0, 0, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 382, 0, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 382, 0, 382, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 0, 382, 0, 0, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 0, 0, 382, 382, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 382, 0, 0, 382, 382, 382, 382, 0, 0, 0, 0, 382, 0, 382, 382, 0, 382, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 382, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 382, 382, 382, 382, 0, 382, 382, 0, 0, 382, 0, 0, 0, 382, 0, 382, 382, 382, 395, 395, 0, 395, 395, 0, 0, 0, 0, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 0, 0, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1372, 1372, 1372, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 1373, 397, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 1373, 0, 0, 397, 397, 397, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 397, 0, 0, 0, 0, 397, 0, 397, 0, 0, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 397, 0, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 397, 0, 397, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 0, 397, 0, 0, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 0, 0, 397, 397, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 397, 0, 0, 397, 397, 397, 397, 0, 0, 0, 0, 397, 0, 397, 397, 0, 397, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 397, 397, 397, 397, 0, 397, 397, 0, 0, 397, 0, 0, 0, 397, 0, 397, 397, 397, 403, 403, 0, 403, 403, 0, 0, 0, 0, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 0, 0, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1373, 1373, 1373, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 1376, 0, 0, 405, 1376, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 405, 0, 0, 0, 0, 405, 0, 405, 0, 0, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 405, 0, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 405, 0, 405, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 0, 405, 0, 0, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 405, 405, 405, 0, 0, 0, 0, 405, 0, 405, 405, 0, 405, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 405, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 405, 405, 405, 405, 0, 405, 405, 0, 0, 405, 0, 0, 0, 405, 0, 405, 405, 405, 415, 415, 0, 415, 415, 0, 0, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 1376, 1376, 1376, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 1380, 0, 1380, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 417, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 417, 0, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 417, 0, 417, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 0, 417, 0, 0, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 0, 0, 417, 417, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 417, 0, 0, 417, 417, 417, 417, 0, 0, 0, 0, 417, 0, 417, 417, 0, 417, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 417, 417, 417, 417, 0, 417, 417, 0, 0, 417, 0, 0, 0, 417, 0, 417, 417, 417, 439, 439, 0, 439, 0, 0, 0, 0, 0, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 0, 0, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 1380, 1380, 1380, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 448, 448, 0, 448, 0, 0, 0, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 0, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 451, 451, 0, 451, 451, 0, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 569, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 575, 575, 0, 575, 575, 0, 0, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 0, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 596, 596, 0, 596, 0, 0, 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 601, 601, 0, 601, 0, 0, 0, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 0, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 605, 605, 0, 605, 0, 0, 0, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 0, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 608, 608, 0, 608, 0, 0, 0, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 0, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 611, 611, 0, 611, 611, 0, 0, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 0, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 615, 615, 0, 615, 0, 0, 0, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 0, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 633, 633, 0, 633, 0, 0, 0, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 0, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 642, 642, 0, 642, 0, 0, 0, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 0, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 648, 648, 0, 648, 648, 0, 0, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 0, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 769, 769, 0, 769, 0, 0, 0, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 775, 775, 0, 775, 775, 0, 0, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 786, 786, 0, 786, 0, 0, 0, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 792, 792, 0, 792, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 798, 798, 0, 798, 0, 0, 0, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 804, 804, 0, 804, 804, 0, 0, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 807, 807, 0, 807, 0, 0, 0, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 0, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 821, 821, 0, 821, 821, 0, 0, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 0, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 927, 927, 0, 927, 927, 0, 0, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 0, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 929, 929, 0, 929, 929, 0, 0, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 0, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 1019, 0, 0, 0, 0, 1019, 0, 1019, 0, 0, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 1019, 1019, 0, 1019, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 0, 1019, 1019, 0, 0, 1019, 0, 0, 1344, 1019, 0, 1019, 1019, 1019, 1089, 1089, 0, 1089, 0, 0, 0, 1344, 0, 0, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 0, 0, 0, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 0, 1344, 0, 1344, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1335, 1342, 1344, 1344, 1344, 1358, 1382, 1359, 1335, 1335, 1335, 1335, 1335, 1355, 0, 0, 1345, 0, 0, 1348, 1335, 1356, 0, 1335, 1335, 1335, 1335, 1335, 1335, 1345, 1356, 1345, 1348, 0, 1342, 1355, 0, 1342, 1358, 0, 0, 1358, 1359, 1342, 0, 0, 1345, 1358, 1342, 1348, 0, 0, 1358, 1342, 0, 0, 0, 1358, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 1345, 0, 1345, 1348, 0, 1348, 0, 0, 0, 1353, 0, 1353, 0, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 1353, 1353, 1353, 1353, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1382, 1382, 1382, 0, 0, 0, 0, 1355, 1355, 1355, 0, 0, 0, 0, 1335, 1335, 1335, 0, 0, 0, 0, 0, 0, 0, 1356, 1356, 1356, 0, 1342, 1342, 1342, 0, 1358, 1358, 1358, 0, 1359, 1359, 1359, 0, 1345, 1345, 1345, 1348, 1348, 1348, 1349, 1349, 0, 1349, 1349, 0, 0, 0, 0, 0, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1378, 1378, 1378, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1353, 1353, 1353, 0, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1357, 0, 0, 1360, 0, 0, 1361, 0, 0, 1364, 1370, 0, 1368, 1357, 0, 0, 1360, 0, 0, 1361, 0, 1361, 1364, 0, 1371, 1368, 1369, 0, 0, 0, 1357, 0, 0, 1360, 0, 1374, 1361, 1371, 0, 1364, 0, 0, 1368, 0, 0, 1370, 0, 0, 1374, 0, 0, 0, 0, 0, 1371, 0, 0, 0, 1357, 1369, 1357, 1360, 1369, 1360, 1361, 1374, 1361, 1364, 1369, 1364, 1368, 0, 1368, 1369, 0, 0, 0, 0, 1369, 0, 0, 0, 1371, 0, 1371, 0, 0, 0, 0, 0, 0, 0, 0, 1374, 0, 1374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 1357, 1357, 1360, 1360, 1360, 1361, 1361, 1361, 1364, 1364, 1364, 1368, 1368, 1368, 1370, 1370, 1370, 0, 0, 0, 0, 0, 0, 1371, 1371, 1371, 0, 0, 1369, 1369, 1369, 0, 0, 0, 1374, 1374, 1374, 1384, 1384, 1384, 1384, 1384, 1385, 1385, 1385, 1385, 1385, 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1396, 1396, 1396, 1396, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400, 1400, 1401, 1401, 1401, 1401, 1402, 1402, 1402, 1402, 1403, 1403, 1403, 1403, 1404, 0, 1404, 1404, 1405, 1405, 1405, 1405, 1405, 1406, 1406, 1406, 1406, 1406, 1407, 1407, 1407, 1407, 1407, 1408, 1408, 1408, 1408, 1408, 1409, 1409, 1409, 1409, 1410, 1410, 1410, 1410, 1411, 1411, 1411, 1411, 1412, 1412, 1412, 1412, 1413, 1413, 1413, 1414, 1414, 1414, 1415, 1415, 1415, 1415, 1416, 1416, 1416, 1416, 1417, 1417, 1417, 1417, 1418, 1418, 1418, 1418, 1419, 1419, 0, 1419, 1420, 0, 1420, 1420, 1421, 1421, 1421, 1421, 1421, 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423, 1423, 1424, 1424, 1424, 1424, 1425, 1425, 1425, 1425, 1425, 1426, 1426, 1426, 1426, 1426, 1427, 1427, 1427, 1427, 1427, 1428, 1428, 1428, 1428, 1428, 1429, 1429, 1429, 1429, 1430, 1430, 1430, 1430, 1431, 1431, 1431, 1431, 1432, 1432, 1432, 1432, 1433, 1433, 1433, 1433, 1434, 1434, 1434, 1434, 1435, 1435, 1435, 1435, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, 1438, 1438, 1438, 1438, 1439, 1439, 1439, 1439, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "../src/lexer/XQLexer.l" #define INITIAL 0 /* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #line 21 "../src/lexer/XQLexer.l" #include #include #include #include "XQLexer.hpp" #include "../parser/XQParser.hpp" #ifdef XQ_DEBUG_LEXER #include #define CHANGE_STATE(state) BEGIN((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #define RECOGNIZE_VALUE(token, value) { \ yylval.str = allocate_string((XMLCh*)(value)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_LEN(token, value, length) { \ yylval.str = allocate_string((XMLCh*)(value), (length)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) { \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) std::cerr << "Push: " << xqGetStateName(YYSTATE) << ", "; yy_push_state((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define POP() yy_pop_state(); std::cerr << "Pop: " << xqGetStateName(YYSTATE) << ", " #else #define CHANGE_STATE(state) BEGIN((state)) #define RECOGNIZE(token) return token #define RECOGNIZE_VALUE(token, value) yylval.str = allocate_string((XMLCh*)(value)); return token #define RECOGNIZE_VALUE_LEN(token, value, length) yylval.str = allocate_string((XMLCh*)(value), (length)); return token #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); return token // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) yy_push_state((state)) #define POP() yy_pop_state() #endif /* UTF16 Surrogates, for chars above 0xFFFF */ /* [20] CData ::= (Char* - (Char* ']]>' Char*)) */ /* [16] PI ::= '' Char*)))? '?>' */ /* [66] PragmaContents ::= (Char* - (Char* '#)' Char*)) */ /* [104] DirCommentContents ::= ((Char - '-') | ('-' (Char - '-')))* */ /* from Namespace spec */ /* from XQuery spec */ /* [148] ElementContentChar ::= Char - [{}<&] */ /* [149] QuotAttrContentChar ::= Char - ["{}<&] */ /* [150] AposAttrContentChar ::= Char - ['{}<&] */ /* AttrValueTemplateChar ::= Char - [{}] */ #define YY_NEVER_INTERACTIVE 1 #define YY_STACK_USED 1 #define EXPR_COMMENT 1 #define PRAGMA 2 #define PRAGMAWS 3 #define PRAGMACONTENTS 4 #define START_TAG 5 #define END_TAG 6 #define ELEMENT_CONTENT 7 #define QUOT_ATTRIBUTE_CONTENT 8 #define APOS_ATTRIBUTE_CONTENT 9 #define PROCESSING_INSTRUCTION 10 #define PROCESSING_INSTRUCTION_CONTENT 11 #define XML_COMMENT 12 #define COMPUTED_CONSTRUCTOR 13 #define ATTR_VALUE_TEMPLATE 14 #define TEMPLATE_MODES 15 #define OUTPUT_METHOD 16 #define QNAMES 17 #line 177 "../src/lexer/XQLexer.l" const char *xqGetStateName(int state) { switch(state) { case INITIAL: return "INITIAL"; case EXPR_COMMENT: return "EXPR_COMMENT"; case PRAGMA: return "PRAGMA"; case PRAGMAWS: return "PRAGMAWS"; case PRAGMACONTENTS: return "PRAGMACONTENTS"; case START_TAG: return "START_TAG"; case END_TAG: return "END_TAG"; case ELEMENT_CONTENT: return "ELEMENT_CONTENT"; case QUOT_ATTRIBUTE_CONTENT: return "QUOT_ATTRIBUTE_CONTENT"; case APOS_ATTRIBUTE_CONTENT: return "APOS_ATTRIBUTE_CONTENT"; case PROCESSING_INSTRUCTION: return "PROCESSING_INSTRUCTION"; case PROCESSING_INSTRUCTION_CONTENT: return "PROCESSING_INSTRUCTION_CONTENT"; case XML_COMMENT: return "XML_COMMENT"; case COMPUTED_CONSTRUCTOR: return "COMPUTED_CONSTRUCTOR"; case ATTR_VALUE_TEMPLATE: return "ATTR_VALUE_TEMPLATE"; case TEMPLATE_MODES: return "TEMPLATE_MODES"; case OUTPUT_METHOD: return "OUTPUT_METHOD"; case QNAMES: return "QNAMES"; } return "unknown"; } void XQLexer::undoLessThan() { CHANGE_STATE(INITIAL); POP(); } #line 13963 "../src/lexer/XQLexer.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( YY_CHAR *, yyconst YY_CHAR *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst YY_CHAR * )); #endif #ifndef YY_NO_INPUT #endif #if YY_STACK_USED #ifndef YY_NO_PUSH_STATE /* static void yy_push_state YY_PROTO(( int new_state )); */ #endif #ifndef YY_NO_POP_STATE /* static void yy_pop_state YY_PROTO(( void )); */ #endif #ifndef YY_NO_TOP_STATE /* static int yy_top_state YY_PROTO(( void )); */ #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO #define ECHO LexerOutput( yytext, yyleng ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( (result = LexerInput( buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) LexerError( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yyFlexLexer::yylex() #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register YY_CHAR *yy_cp, *yy_bp; register int yy_act; #line 209 "../src/lexer/XQLexer.l" if(firstToken_ != MYEOF) { int token = firstToken_; firstToken_ = MYEOF; RECOGNIZE(token); } switch(mode_) { case MODE_ATTR_VALUE_TEMPLATE: mode_ = MODE_NORMAL; CHANGE_STATE(ATTR_VALUE_TEMPLATE); break; case MODE_TEMPLATE_MODES: mode_ = MODE_NORMAL; CHANGE_STATE(TEMPLATE_MODES); break; case MODE_OUTPUT_METHOD: mode_ = MODE_NORMAL; CHANGE_STATE(OUTPUT_METHOD); break; case MODE_QNAMES: mode_ = MODE_NORMAL; CHANGE_STATE(QNAMES); break; case MODE_NORMAL: break; } #line 14119 "../src/lexer/XQLexer.cpp" if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = &std::cin; if ( ! yyout ) yyout = &std::cout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_current_state != 1383 ); yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; yy_find_action: yy_act = yy_accept[yy_current_state]; YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yy_hold_char; yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP #line 240 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTEGER_LITERAL_, yytext); YY_BREAK case 2: YY_RULE_SETUP #line 241 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DECIMAL_LITERAL_, yytext); YY_BREAK case 3: YY_RULE_SETUP #line 242 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOUBLE_LITERAL_, yytext); YY_BREAK case 4: YY_RULE_SETUP #line 244 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, !isXPath(), false); YY_BREAK case 5: YY_RULE_SETUP #line 245 "../src/lexer/XQLexer.l" { if(isXPath()) { RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, false, false); } else { std::ostringstream oss; oss << "Bad escaping in string literal: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } } YY_BREAK case 6: YY_RULE_SETUP #line 255 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 7: YY_RULE_SETUP #line 257 "../src/lexer/XQLexer.l" beginComment(); PUSH_AND_CHANGE_STATE(EXPR_COMMENT); YY_BREAK case 8: YY_RULE_SETUP #line 258 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 9: YY_RULE_SETUP #line 259 "../src/lexer/XQLexer.l" endComment(); POP(); YY_BREAK case 10: YY_RULE_SETUP #line 261 "../src/lexer/XQLexer.l" RECOGNIZE(_MINUS_); YY_BREAK case 11: YY_RULE_SETUP #line 262 "../src/lexer/XQLexer.l" RECOGNIZE(_PLUS_); YY_BREAK case 12: YY_RULE_SETUP #line 263 "../src/lexer/XQLexer.l" RECOGNIZE(_EQUALS_); YY_BREAK case 13: YY_RULE_SETUP #line 264 "../src/lexer/XQLexer.l" RECOGNIZE(_SEMICOLON_); YY_BREAK case 14: YY_RULE_SETUP #line 265 "../src/lexer/XQLexer.l" RECOGNIZE(_COMMA_); YY_BREAK case 15: YY_RULE_SETUP #line 266 "../src/lexer/XQLexer.l" RECOGNIZE(_DOLLAR_); YY_BREAK case 16: YY_RULE_SETUP #line 267 "../src/lexer/XQLexer.l" RECOGNIZE(_COLON_EQUALS_); YY_BREAK case 17: YY_RULE_SETUP #line 268 "../src/lexer/XQLexer.l" RECOGNIZE(_LPAR_); YY_BREAK case 18: YY_RULE_SETUP #line 269 "../src/lexer/XQLexer.l" RECOGNIZE(_RPAR_); YY_BREAK case 19: YY_RULE_SETUP #line 270 "../src/lexer/XQLexer.l" RECOGNIZE(_ASTERISK_); YY_BREAK case 20: YY_RULE_SETUP #line 271 "../src/lexer/XQLexer.l" RECOGNIZE(_BAR_); YY_BREAK case 21: YY_RULE_SETUP #line 272 "../src/lexer/XQLexer.l" RECOGNIZE(_BANG_EQUALS_); YY_BREAK case 22: YY_RULE_SETUP #line 273 "../src/lexer/XQLexer.l" RECOGNIZE(_LESS_THAN_EQUALS_); YY_BREAK case 23: YY_RULE_SETUP #line 274 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_); YY_BREAK case 24: YY_RULE_SETUP #line 275 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_EQUALS_); YY_BREAK case 25: YY_RULE_SETUP #line 276 "../src/lexer/XQLexer.l" RECOGNIZE(_LESS_THAN_LESS_THAN_); YY_BREAK case 26: YY_RULE_SETUP #line 277 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_GREATER_THAN_); YY_BREAK case 27: YY_RULE_SETUP #line 278 "../src/lexer/XQLexer.l" RECOGNIZE(_COLON_COLON_); YY_BREAK case 28: YY_RULE_SETUP #line 279 "../src/lexer/XQLexer.l" RECOGNIZE(_AT_SIGN_); YY_BREAK case 29: YY_RULE_SETUP #line 280 "../src/lexer/XQLexer.l" RECOGNIZE(_DOT_DOT_); YY_BREAK case 30: YY_RULE_SETUP #line 281 "../src/lexer/XQLexer.l" RECOGNIZE(_DOT_); YY_BREAK case 31: YY_RULE_SETUP #line 282 "../src/lexer/XQLexer.l" RECOGNIZE(_LSQUARE_); YY_BREAK case 32: YY_RULE_SETUP #line 283 "../src/lexer/XQLexer.l" RECOGNIZE(_RSQUARE_); YY_BREAK case 33: YY_RULE_SETUP #line 284 "../src/lexer/XQLexer.l" RECOGNIZE(_QUESTION_MARK_); YY_BREAK case 34: YY_RULE_SETUP #line 286 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXTERNAL_, yytext); YY_BREAK case 35: YY_RULE_SETUP #line 287 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ASCENDING_, yytext); YY_BREAK case 36: YY_RULE_SETUP #line 288 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDING_, yytext); YY_BREAK case 37: YY_RULE_SETUP #line 289 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GREATEST_, yytext); YY_BREAK case 38: YY_RULE_SETUP #line 290 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LEAST_, yytext); YY_BREAK case 39: YY_RULE_SETUP #line 291 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COMMENT_, yytext); YY_BREAK case 40: YY_RULE_SETUP #line 292 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOCUMENT_NODE_, yytext); YY_BREAK case 41: YY_RULE_SETUP #line 293 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IF_, yytext); YY_BREAK case 42: YY_RULE_SETUP #line 294 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ITEM_, yytext); YY_BREAK case 43: YY_RULE_SETUP #line 295 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NODE_, yytext); YY_BREAK case 44: YY_RULE_SETUP #line 296 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_ATTRIBUTE_, yytext); YY_BREAK case 45: YY_RULE_SETUP #line 297 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_ELEMENT_, yytext); YY_BREAK case 46: YY_RULE_SETUP #line 298 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TEXT_, yytext); YY_BREAK case 47: YY_RULE_SETUP #line 299 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EMPTY_SEQUENCE_, yytext); YY_BREAK case 48: YY_RULE_SETUP #line 300 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VERSION_, yytext); YY_BREAK case 49: YY_RULE_SETUP #line 301 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ENCODING_, yytext); YY_BREAK case 50: YY_RULE_SETUP #line 302 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DECLARE_, yytext); YY_BREAK case 51: YY_RULE_SETUP #line 303 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BOUNDARY_SPACE_, yytext); YY_BREAK case 52: YY_RULE_SETUP #line 304 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRESERVE_, yytext); YY_BREAK case 53: YY_RULE_SETUP #line 305 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STRIP_, yytext); YY_BREAK case 54: YY_RULE_SETUP #line 306 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DEFAULT_, yytext); YY_BREAK case 55: YY_RULE_SETUP #line 307 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OPTION_, yytext); YY_BREAK case 56: YY_RULE_SETUP #line 308 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ORDERING_, yytext); YY_BREAK case 57: YY_RULE_SETUP #line 309 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ORDERED_, yytext); YY_BREAK case 58: YY_RULE_SETUP #line 310 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UNORDERED_, yytext); YY_BREAK case 59: YY_RULE_SETUP #line 311 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EMPTY_, yytext); YY_BREAK case 60: YY_RULE_SETUP #line 312 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COPY_NAMESPACES_, yytext); YY_BREAK case 61: YY_RULE_SETUP #line 313 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_PRESERVE_, yytext); YY_BREAK case 62: YY_RULE_SETUP #line 314 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INHERIT_, yytext); YY_BREAK case 63: YY_RULE_SETUP #line 315 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_INHERIT_, yytext); YY_BREAK case 64: YY_RULE_SETUP #line 316 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COLLATION_, yytext); YY_BREAK case 65: YY_RULE_SETUP #line 317 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BASE_URI_, yytext); YY_BREAK case 66: YY_RULE_SETUP #line 318 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IMPORT_, yytext); YY_BREAK case 67: YY_RULE_SETUP #line 319 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_, yytext); YY_BREAK case 68: YY_RULE_SETUP #line 320 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VARIABLE_, yytext); YY_BREAK case 69: YY_RULE_SETUP #line 321 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CONSTRUCTION_, yytext); YY_BREAK case 70: YY_RULE_SETUP #line 322 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AS_, yytext); YY_BREAK case 71: YY_RULE_SETUP #line 323 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LAX_, yytext); YY_BREAK case 72: YY_RULE_SETUP #line 324 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STRICT_, yytext); YY_BREAK case 73: YY_RULE_SETUP #line 325 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_RETURN_, yytext); YY_BREAK case 74: YY_RULE_SETUP #line 326 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOR_, yytext); YY_BREAK case 75: YY_RULE_SETUP #line 327 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IN_, yytext); YY_BREAK case 76: YY_RULE_SETUP #line 328 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BY_, yytext); YY_BREAK case 77: YY_RULE_SETUP #line 329 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SOME_, yytext); YY_BREAK case 78: YY_RULE_SETUP #line 330 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EVERY_, yytext); YY_BREAK case 79: YY_RULE_SETUP #line 331 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SATISFIES_, yytext); YY_BREAK case 80: YY_RULE_SETUP #line 332 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_THEN_, yytext); YY_BREAK case 81: YY_RULE_SETUP #line 333 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ELSE_, yytext); YY_BREAK case 82: YY_RULE_SETUP #line 334 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OR_, yytext); YY_BREAK case 83: YY_RULE_SETUP #line 335 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AND_, yytext); YY_BREAK case 84: YY_RULE_SETUP #line 336 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TO_, yytext); YY_BREAK case 85: YY_RULE_SETUP #line 337 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIV_, yytext); YY_BREAK case 86: YY_RULE_SETUP #line 338 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IDIV_, yytext); YY_BREAK case 87: YY_RULE_SETUP #line 339 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MOD_, yytext); YY_BREAK case 88: YY_RULE_SETUP #line 340 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UNION_, yytext); YY_BREAK case 89: YY_RULE_SETUP #line 341 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTERSECT_, yytext); YY_BREAK case 90: YY_RULE_SETUP #line 342 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXCEPT_, yytext); YY_BREAK case 91: YY_RULE_SETUP #line 343 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INSTANCE_, yytext); YY_BREAK case 92: YY_RULE_SETUP #line 344 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OF_, yytext); YY_BREAK case 93: YY_RULE_SETUP #line 345 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TREAT_, yytext); YY_BREAK case 94: YY_RULE_SETUP #line 346 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CASTABLE_, yytext); YY_BREAK case 95: YY_RULE_SETUP #line 347 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CAST_, yytext); YY_BREAK case 96: YY_RULE_SETUP #line 348 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EQ_, yytext); YY_BREAK case 97: YY_RULE_SETUP #line 349 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NE_, yytext); YY_BREAK case 98: YY_RULE_SETUP #line 350 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LT_, yytext); YY_BREAK case 99: YY_RULE_SETUP #line 351 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LE_, yytext); YY_BREAK case 100: YY_RULE_SETUP #line 352 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GT_, yytext); YY_BREAK case 101: YY_RULE_SETUP #line 353 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GE_, yytext); YY_BREAK case 102: YY_RULE_SETUP #line 354 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IS_, yytext); YY_BREAK case 103: YY_RULE_SETUP #line 355 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VALIDATE_, yytext); YY_BREAK case 104: YY_RULE_SETUP #line 356 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CHILD_, yytext); YY_BREAK case 105: YY_RULE_SETUP #line 357 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDANT_, yytext); YY_BREAK case 106: YY_RULE_SETUP #line 358 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SELF_, yytext); YY_BREAK case 107: YY_RULE_SETUP #line 359 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDANT_OR_SELF_, yytext); YY_BREAK case 108: YY_RULE_SETUP #line 360 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOLLOWING_SIBLING_, yytext); YY_BREAK case 109: YY_RULE_SETUP #line 361 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOLLOWING_, yytext); YY_BREAK case 110: YY_RULE_SETUP #line 362 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARENT_, yytext); YY_BREAK case 111: YY_RULE_SETUP #line 363 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANCESTOR_, yytext); YY_BREAK case 112: YY_RULE_SETUP #line 364 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRECEDING_SIBLING_, yytext); YY_BREAK case 113: YY_RULE_SETUP #line 365 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRECEDING_, yytext); YY_BREAK case 114: YY_RULE_SETUP #line 366 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANCESTOR_OR_SELF_, yytext); YY_BREAK case 115: YY_RULE_SETUP #line 367 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOCUMENT_, yytext); YY_BREAK case 116: YY_RULE_SETUP #line 368 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WEIGHT_, yytext); YY_BREAK case 117: YY_RULE_SETUP #line 369 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NOT_, yytext); YY_BREAK case 118: YY_RULE_SETUP #line 370 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LOWERCASE_, yytext); YY_BREAK case 119: YY_RULE_SETUP #line 371 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UPPERCASE_, yytext); YY_BREAK case 120: YY_RULE_SETUP #line 372 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENSITIVE_, yytext); YY_BREAK case 121: YY_RULE_SETUP #line 373 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INSENSITIVE_, yytext); YY_BREAK case 122: YY_RULE_SETUP #line 374 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIACRITICS_, yytext); YY_BREAK case 123: YY_RULE_SETUP #line 375 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STEMMING_, yytext); YY_BREAK case 124: YY_RULE_SETUP #line 376 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_THESAURUS_, yytext); YY_BREAK case 125: YY_RULE_SETUP #line 377 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_RELATIONSHIP_, yytext); YY_BREAK case 126: YY_RULE_SETUP #line 378 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LEVELS_, yytext); YY_BREAK case 127: YY_RULE_SETUP #line 379 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STOP_, yytext); YY_BREAK case 128: YY_RULE_SETUP #line 380 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WORDS_, yytext); YY_BREAK case 129: YY_RULE_SETUP #line 381 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LANGUAGE_, yytext); YY_BREAK case 130: YY_RULE_SETUP #line 382 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WILDCARDS_, yytext); YY_BREAK case 131: YY_RULE_SETUP #line 383 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ENTIRE_, yytext); YY_BREAK case 132: YY_RULE_SETUP #line 384 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CONTENT_, yytext); YY_BREAK case 133: YY_RULE_SETUP #line 385 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANY_, yytext); YY_BREAK case 134: YY_RULE_SETUP #line 386 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ALL_, yytext); YY_BREAK case 135: YY_RULE_SETUP #line 387 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PHRASE_, yytext); YY_BREAK case 136: YY_RULE_SETUP #line 388 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WORD_, yytext); YY_BREAK case 137: YY_RULE_SETUP #line 389 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXACTLY_, yytext); YY_BREAK case 138: YY_RULE_SETUP #line 390 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FROM_, yytext); YY_BREAK case 139: YY_RULE_SETUP #line 391 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DISTANCE_, yytext); YY_BREAK case 140: YY_RULE_SETUP #line 392 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WINDOW_, yytext); YY_BREAK case 141: YY_RULE_SETUP #line 393 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OCCURS_, yytext); YY_BREAK case 142: YY_RULE_SETUP #line 394 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TIMES_, yytext); YY_BREAK case 143: YY_RULE_SETUP #line 395 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SAME_, yytext); YY_BREAK case 144: YY_RULE_SETUP #line 396 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIFFERENT_, yytext); YY_BREAK case 145: YY_RULE_SETUP #line 397 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENTENCES_, yytext); YY_BREAK case 146: YY_RULE_SETUP #line 398 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARAGRAPHS_, yytext); YY_BREAK case 147: YY_RULE_SETUP #line 399 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENTENCE_, yytext); YY_BREAK case 148: YY_RULE_SETUP #line 400 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARAGRAPH_, yytext); YY_BREAK case 149: YY_RULE_SETUP #line 401 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TYPE_, yytext); YY_BREAK case 150: YY_RULE_SETUP #line 402 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_START_, yytext); YY_BREAK case 151: YY_RULE_SETUP #line 403 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_END_, yytext); YY_BREAK case 152: YY_RULE_SETUP #line 404 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MOST_, yytext); YY_BREAK case 153: YY_RULE_SETUP #line 405 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SKIP_, yytext); YY_BREAK case 154: YY_RULE_SETUP #line 406 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VALUE_, yytext); YY_BREAK case 155: YY_RULE_SETUP #line 407 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FIRST_, yytext); YY_BREAK case 156: YY_RULE_SETUP #line 408 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LAST_, yytext); YY_BREAK case 157: YY_RULE_SETUP #line 409 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTO_, yytext); YY_BREAK case 158: YY_RULE_SETUP #line 410 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AFTER_, yytext); YY_BREAK case 159: YY_RULE_SETUP #line 411 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BEFORE_, yytext); YY_BREAK case 160: YY_RULE_SETUP #line 412 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MODIFY_, yytext); YY_BREAK case 161: YY_RULE_SETUP #line 413 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NODES_, yytext); YY_BREAK case 162: YY_RULE_SETUP #line 414 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ID_, yytext); YY_BREAK case 163: YY_RULE_SETUP #line 415 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_KEY_, yytext); YY_BREAK case 164: YY_RULE_SETUP #line 416 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_, yytext); YY_BREAK case 165: YY_RULE_SETUP #line 417 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WITH_, yytext); YY_BREAK case 166: YY_RULE_SETUP #line 419 "../src/lexer/XQLexer.l" { if(!isXPath() && !isExtensions() && lookAhead() == _COLON_COLON_) { RECOGNIZE_VALUE(_QNAME_, yytext); } else { CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_NAMESPACE_, yytext); } } YY_BREAK case 167: YY_RULE_SETUP #line 428 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 168: YY_RULE_SETUP #line 435 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_MATCHES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 169: YY_RULE_SETUP #line 442 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_NAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 170: YY_RULE_SETUP #line 449 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_CALL_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 171: YY_RULE_SETUP #line 456 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_APPLY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 172: YY_RULE_SETUP #line 463 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 173: YY_RULE_SETUP #line 470 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_MODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 174: YY_RULE_SETUP #line 477 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_FUNCTION_EXT_, yytext); } else { RECOGNIZE_VALUE(_FUNCTION_, yytext); } } YY_BREAK case 175: YY_RULE_SETUP #line 484 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE(_HASH_); } else { return error("Unrecognized token '#'"); } } YY_BREAK case 176: YY_RULE_SETUP #line 491 "../src/lexer/XQLexer.l" { if(isVersion3() && lookAhead() == _DOLLAR_) { RECOGNIZE_VALUE(_COUNT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 177: YY_RULE_SETUP #line 498 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_PRIVATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 178: YY_RULE_SETUP #line 505 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_PUBLIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 179: YY_RULE_SETUP #line 512 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_DETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 180: YY_RULE_SETUP #line 519 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_NONDETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 181: YY_RULE_SETUP #line 526 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_NAMESPACE_NODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 182: YY_RULE_SETUP #line 534 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_LET_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 183: YY_RULE_SETUP #line 541 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_WHERE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 184: YY_RULE_SETUP #line 548 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_ORDER_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 185: YY_RULE_SETUP #line 555 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_STABLE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 186: YY_RULE_SETUP #line 562 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_TYPESWITCH_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 187: YY_RULE_SETUP #line 570 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FT_OPTION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 188: YY_RULE_SETUP #line 577 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_SCORE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 189: YY_RULE_SETUP #line 584 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_CONTAINS_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 190: YY_RULE_SETUP #line 591 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTOR_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 191: YY_RULE_SETUP #line 598 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTAND_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 192: YY_RULE_SETUP #line 605 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTNOT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 193: YY_RULE_SETUP #line 613 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_REVALIDATION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 194: YY_RULE_SETUP #line 620 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_UPDATING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 195: YY_RULE_SETUP #line 627 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_INSERT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 196: YY_RULE_SETUP #line 634 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_DELETE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 197: YY_RULE_SETUP #line 641 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_REPLACE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 198: YY_RULE_SETUP #line 648 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_RENAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 199: YY_RULE_SETUP #line 655 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_COPY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 200: YY_RULE_SETUP #line 663 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _VERSION_ || (isVersion3() && tok == _ENCODING_)) { RECOGNIZE_VALUE(_XQUERY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 201: YY_RULE_SETUP #line 671 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _NAMESPACE_ || tok == _STRING_LITERAL_) { RECOGNIZE_VALUE(_MODULE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 202: YY_RULE_SETUP #line 679 "../src/lexer/XQLexer.l" { if(lookAhead() == _CONTENT_) { RECOGNIZE_VALUE(_WITHOUT_C_, yytext); } else { RECOGNIZE_VALUE(_WITHOUT_, yytext); } } YY_BREAK case 203: YY_RULE_SETUP #line 686 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _SENSITIVE_ || tok == _INSENSITIVE_) { RECOGNIZE_VALUE(_CASE_S_, yytext); } else { RECOGNIZE_VALUE(_CASE_, yytext); } } YY_BREAK case 204: YY_RULE_SETUP #line 694 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_USING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 205: YY_RULE_SETUP #line 701 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _LEAST_ || tok == _MOST_) { RECOGNIZE_VALUE(_AT_LM_, yytext); } else { RECOGNIZE_VALUE(_AT_, yytext); } } YY_BREAK case 206: YY_RULE_SETUP #line 710 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ELEMENT_, yytext); YY_BREAK case 207: YY_RULE_SETUP #line 711 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ATTRIBUTE_, yytext); YY_BREAK case 208: YY_RULE_SETUP #line 712 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_PROCESSING_INSTRUCTION_, yytext); YY_BREAK case 209: YY_RULE_SETUP #line 713 "../src/lexer/XQLexer.l" { CHANGE_STATE(INITIAL); if(lookAhead() == _LBRACE_) { RECOGNIZE_VALUE(_CONSTR_QNAME_, yytext); } else { undoUserAction(); yyless(0); } } YY_BREAK case 210: YY_RULE_SETUP #line 722 "../src/lexer/XQLexer.l" { CHANGE_STATE(INITIAL); undoUserAction(); yyless(0); } YY_BREAK case 211: YY_RULE_SETUP #line 729 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(INITIAL); RECOGNIZE(_LBRACE_); YY_BREAK case 212: YY_RULE_SETUP #line 731 "../src/lexer/XQLexer.l" return error("It is an error for a right brace to appear in element or attribute content"); YY_BREAK case 213: YY_RULE_SETUP #line 732 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_RBRACE_); YY_BREAK case 214: YY_RULE_SETUP #line 734 "../src/lexer/XQLexer.l" return error("It is an error for an ampersand to appear in element or attribute content"); YY_BREAK case 215: YY_RULE_SETUP #line 736 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(START_TAG); RECOGNIZE(_LESS_THAN_OP_OR_TAG_); YY_BREAK case 216: YY_RULE_SETUP #line 737 "../src/lexer/XQLexer.l" return error("It is an error for a left angle bracket to appear in attribute content"); YY_BREAK case 217: YY_RULE_SETUP #line 739 "../src/lexer/XQLexer.l" CHANGE_STATE(ELEMENT_CONTENT); RECOGNIZE(_START_TAG_CLOSE_); YY_BREAK case 218: YY_RULE_SETUP #line 740 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_END_TAG_CLOSE_); YY_BREAK case 219: YY_RULE_SETUP #line 742 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, 0, true, false, false); YY_BREAK case 220: YY_RULE_SETUP #line 744 "../src/lexer/XQLexer.l" CHANGE_STATE(QUOT_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_QUOT_); YY_BREAK case 221: YY_RULE_SETUP #line 745 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, '"', true, true, false); YY_BREAK case 222: YY_RULE_SETUP #line 746 "../src/lexer/XQLexer.l" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_QUOT_); YY_BREAK case 223: YY_RULE_SETUP #line 748 "../src/lexer/XQLexer.l" CHANGE_STATE(APOS_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_APOS_); YY_BREAK case 224: YY_RULE_SETUP #line 749 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_APOS_ATTR_CONTENT_, yytext, yyleng, '\'', true, true, false); YY_BREAK case 225: YY_RULE_SETUP #line 750 "../src/lexer/XQLexer.l" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_APOS_); YY_BREAK case 226: YY_RULE_SETUP #line 752 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WHITESPACE_ELEMENT_CONTENT_, yytext); YY_BREAK case 227: YY_RULE_SETUP #line 753 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_ELEMENT_CONTENT_, yytext, yyleng, 0, true, true, true); YY_BREAK case 228: YY_RULE_SETUP #line 755 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_EMPTY_TAG_CLOSE_); YY_BREAK case 229: YY_RULE_SETUP #line 757 "../src/lexer/XQLexer.l" CHANGE_STATE(END_TAG); RECOGNIZE(_END_TAG_OPEN_); YY_BREAK case 230: YY_RULE_SETUP #line 759 "../src/lexer/XQLexer.l" RECOGNIZE(_VALUE_INDICATOR_); YY_BREAK case 231: YY_RULE_SETUP #line 761 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMA); RECOGNIZE(_PRAGMA_OPEN_); YY_BREAK case 232: YY_RULE_SETUP #line 762 "../src/lexer/XQLexer.l" RECOGNIZE(_WHITESPACE_); YY_BREAK case 233: YY_RULE_SETUP #line 763 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMAWS); RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 234: YY_RULE_SETUP #line 764 "../src/lexer/XQLexer.l" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); YY_BREAK case 235: YY_RULE_SETUP #line 765 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMACONTENTS); RECOGNIZE(_WHITESPACE_); YY_BREAK case 236: YY_RULE_SETUP #line 766 "../src/lexer/XQLexer.l" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); YY_BREAK case 237: YY_RULE_SETUP #line 768 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(PROCESSING_INSTRUCTION); RECOGNIZE(_PI_START_); YY_BREAK case 238: YY_RULE_SETUP #line 769 "../src/lexer/XQLexer.l" return error("The target of a processing instruction must not be 'XML'"); YY_BREAK case 239: YY_RULE_SETUP #line 770 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PI_TARGET_, yytext); YY_BREAK case 240: YY_RULE_SETUP #line 771 "../src/lexer/XQLexer.l" CHANGE_STATE(PROCESSING_INSTRUCTION_CONTENT); RECOGNIZE(_WHITESPACE_); YY_BREAK case 241: YY_RULE_SETUP #line 772 "../src/lexer/XQLexer.l" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); YY_BREAK case 242: YY_RULE_SETUP #line 773 "../src/lexer/XQLexer.l" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); YY_BREAK case 243: YY_RULE_SETUP #line 775 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(XML_COMMENT); RECOGNIZE(_XML_COMMENT_START_); YY_BREAK case 244: YY_RULE_SETUP #line 776 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XML_COMMENT_CONTENT_, yytext); YY_BREAK case 245: YY_RULE_SETUP #line 777 "../src/lexer/XQLexer.l" return error("It is an error for a double dash to appear in an XML comment"); YY_BREAK case 246: YY_RULE_SETUP #line 778 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_XML_COMMENT_END_); YY_BREAK case 247: YY_RULE_SETUP #line 780 "../src/lexer/XQLexer.l" RECOGNIZE(_SLASH_); YY_BREAK case 248: YY_RULE_SETUP #line 781 "../src/lexer/XQLexer.l" RECOGNIZE(_SLASH_SLASH_); YY_BREAK case 249: YY_RULE_SETUP #line 783 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XMLNS_QNAME_, yytext); YY_BREAK case 250: YY_RULE_SETUP #line 784 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 251: YY_RULE_SETUP #line 786 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_LEN(_NCNAME_COLON_STAR_, yytext, yyleng - 2); YY_BREAK case 252: YY_RULE_SETUP #line 787 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STAR_COLON_NCNAME_, yytext + 2); YY_BREAK case 253: YY_RULE_SETUP #line 789 "../src/lexer/XQLexer.l" RECOGNIZE(_WHITESPACE_); YY_BREAK case 254: YY_RULE_SETUP #line 791 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 255: YY_RULE_SETUP #line 792 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_DEFAULT_); YY_BREAK case 256: YY_RULE_SETUP #line 793 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_ALL_); YY_BREAK case 257: YY_RULE_SETUP #line 794 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_CURRENT_); YY_BREAK case 258: YY_RULE_SETUP #line 795 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 259: YY_RULE_SETUP #line 797 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XML_, yytext); YY_BREAK case 260: YY_RULE_SETUP #line 798 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_HTML_, yytext); YY_BREAK case 261: YY_RULE_SETUP #line 799 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XHTML_, yytext); YY_BREAK case 262: YY_RULE_SETUP #line 800 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TEXT_, yytext); YY_BREAK case 263: YY_RULE_SETUP #line 801 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 264: YY_RULE_SETUP #line 802 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 265: YY_RULE_SETUP #line 804 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 266: YY_RULE_SETUP #line 805 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 267: YY_RULE_SETUP #line 807 "../src/lexer/XQLexer.l" { std::ostringstream oss; oss << "Invalid literal found: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } YY_BREAK case 268: YY_RULE_SETUP #line 813 "../src/lexer/XQLexer.l" { std::ostringstream oss; oss << "Unrecognized character '" << UTF8((XMLCh*)yytext) << "' (" << yytext[0] << ")"; return error(oss.str().c_str()); } YY_BREAK case 269: YY_RULE_SETUP #line 819 "../src/lexer/XQLexer.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 15816 "../src/lexer/XQLexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(EXPR_COMMENT): case YY_STATE_EOF(PRAGMA): case YY_STATE_EOF(PRAGMAWS): case YY_STATE_EOF(PRAGMACONTENTS): case YY_STATE_EOF(START_TAG): case YY_STATE_EOF(END_TAG): case YY_STATE_EOF(ELEMENT_CONTENT): case YY_STATE_EOF(QUOT_ATTRIBUTE_CONTENT): case YY_STATE_EOF(APOS_ATTRIBUTE_CONTENT): case YY_STATE_EOF(PROCESSING_INSTRUCTION): case YY_STATE_EOF(PROCESSING_INSTRUCTION_CONTENT): case YY_STATE_EOF(XML_COMMENT): case YY_STATE_EOF(COMPUTED_CONSTRUCTOR): case YY_STATE_EOF(ATTR_VALUE_TEMPLATE): case YY_STATE_EOF(TEMPLATE_MODES): case YY_STATE_EOF(OUTPUT_METHOD): case YY_STATE_EOF(QNAMES): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 1; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = 0; yy_current_buffer = 0; #ifdef YY_USES_REJECT yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2]; #else yy_state_buf = 0; #endif } yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; yy_delete_buffer( yy_current_buffer ); if(yy_start_stack) yy_flex_free(yy_start_stack); } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput( YY_CHAR* buf, int /* max_size */ ) #else int yyFlexLexer::LexerInput( YY_CHAR* buf, int max_size ) #endif { if ( yyin->eof() || yyin->fail() ) return 0; #ifdef YY_INTERACTIVE (void) yyin->read((char *) buf, sizeof( YY_CHAR ) ); if ( yyin->eof() ) return 0; if ( yyin->bad() ) return -1; return 1; #else (void) yyin->read((char *) buf, max_size * sizeof( YY_CHAR ) ); if ( yyin->bad() ) return -1; else return ( yyin->gcount() / sizeof( YY_CHAR ) ); #endif } void yyFlexLexer::LexerOutput( const YY_CHAR* buf, int size ) { (void) yyout->write((char *) buf, size * sizeof( YY_CHAR ) ); } /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ int yyFlexLexer::yy_get_next_buffer() { register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; register YY_CHAR *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (YY_CHAR *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ yy_state_type yyFlexLexer::yy_get_previous_state() { register yy_state_type yy_current_state; register YY_CHAR *yy_cp; yy_current_state = yy_start; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { register int yy_is_jam; register YY_CHAR *yy_cp = yy_c_buf_p; register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 1383); return yy_is_jam ? 0 : yy_current_state; } void yyFlexLexer::yyunput( int c, register YY_CHAR * yy_bp ) { register YY_CHAR *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register YY_CHAR *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register YY_CHAR *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (YY_CHAR) c; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } int yyFlexLexer::yyinput() { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = (YY_CHAR) '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = YY_SC_TO_UI(*yy_c_buf_p); *yy_c_buf_p = (YY_CHAR) '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; return c; } void yyFlexLexer::yyrestart( std::istream* input_file ) { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } void yyFlexLexer::yy_load_buffer_state() { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (YY_CHAR *) yy_flex_alloc( ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } extern "C" int isatty YY_PROTO(( int )); void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; b->yy_is_interactive = 0; } void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #endif #ifndef YY_NO_SCAN_STRING #endif #ifndef YY_NO_SCAN_BYTES #endif #ifndef YY_NO_PUSH_STATE void yyFlexLexer::yy_push_state( int new_state ) { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE void yyFlexLexer::yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE int yyFlexLexer::yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif void yyFlexLexer::LexerError( yyconst char msg[] ) { std::cerr << msg << '\n'; exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = (YY_CHAR) '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( YY_CHAR *s1, yyconst YY_CHAR *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) YY_CHAR *s1; yyconst YY_CHAR *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst YY_CHAR *s ) #else static int yy_flex_strlen( s ) yyconst YY_CHAR *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif #line 819 "../src/lexer/XQLexer.l" XQilla-2.3.4/src/lexer/flex.skl0000644001725400016040000010205713232476424013232 00000000000000/* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header$ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 %- #include %* /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include %+ #include %* /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif %% YY_CHAR and YY_SC_TO_UI() go here /* Returned upon end-of-file. */ #define YY_NULL 0 /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; %- extern FILE *yyin, *yyout; %* #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { %- FILE *yy_input_file; %+ std::istream* yy_input_file; %* YY_CHAR *yy_ch_buf; /* input buffer */ YY_CHAR *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; %- Standard (non-C++) definition static YY_BUFFER_STATE yy_current_buffer = 0; %* /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer %- Standard (non-C++) definition /* yy_hold_char holds the character lost when yytext is formed. */ static YY_CHAR yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( YY_CHAR *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst YY_CHAR *yy_str )); /* This is the old yy_scan_bytes function - renamed to avoid * confusion since a character may now be 1 or 2 bytes. */ YY_BUFFER_STATE yy_scan_chars YY_PROTO(( yyconst YY_CHAR *chars, int len )); %* static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) %% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here %- Standard (non-C++) definition static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); %* /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ %% code to fiddle yytext and yyleng for yymore() goes here yy_hold_char = *yy_cp; \ *yy_cp = (YY_CHAR) '\0'; \ %% code to copy yytext_ptr to yytext[] goes here, if %array yy_c_buf_p = yy_cp; %% data tables for the DFA and the user's section 1 definitions go here /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif %- #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, YY_CHAR *buf_ptr )); #endif %* #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( YY_CHAR *, yyconst YY_CHAR *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst YY_CHAR * )); #endif #ifndef YY_NO_INPUT %- Standard (non-C++) definition #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif %* #endif #if YY_STACK_USED #ifndef YY_NO_PUSH_STATE /* static void yy_push_state YY_PROTO(( int new_state )); */ #endif #ifndef YY_NO_POP_STATE /* static void yy_pop_state YY_PROTO(( void )); */ #endif #ifndef YY_NO_TOP_STATE /* static int yy_top_state YY_PROTO(( void )); */ #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO %- Standard (non-C++) definition /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, sizeof( YY_CHAR ), yyleng, yyout ) %+ C++ definition #define ECHO LexerOutput( yytext, yyleng ) %* #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ %% fread()/read() definition of YY_INPUT goes here unless we're doing C++ %+ C++ definition if ( (result = LexerInput( buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); %* #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR %- #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) %+ #define YY_FATAL_ERROR(msg) LexerError( msg ) %* #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL %- Standard (non-C++) definition #define YY_DECL int yylex YY_PROTO(( void )) %+ C++ definition #define YY_DECL int yyFlexLexer::yylex() %* #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif %% YY_RULE_SETUP definition goes here YY_DECL { register yy_state_type yy_current_state; register YY_CHAR *yy_cp, *yy_bp; register int yy_act; %% user's declarations go here if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) %- yyin = stdin; %+ yyin = &std::cin; %* if ( ! yyout ) %- yyout = stdout; %+ yyout = &std::cout; %* if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { %% yymore()-related code goes here yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; %% code to set up and find next match goes here yy_find_action: %% code to find the action number goes here YY_DO_BEFORE_ACTION; %% code for yylineno update goes here do_action: /* This label is used only to access EOF actions. */ %% debug code goes here switch ( yy_act ) { /* beginning of action switch */ %% actions go here case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { %% code to do back-up for compressed tables and set up yy_cp goes here goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ %+ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 1; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = 0; yy_current_buffer = 0; #ifdef YY_USES_REJECT yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2]; #else yy_state_buf = 0; #endif } yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; yy_delete_buffer( yy_current_buffer ); if(yy_start_stack) yy_flex_free(yy_start_stack); } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput( YY_CHAR* buf, int /* max_size */ ) #else int yyFlexLexer::LexerInput( YY_CHAR* buf, int max_size ) #endif { if ( yyin->eof() || yyin->fail() ) return 0; #ifdef YY_INTERACTIVE (void) yyin->read((char *) buf, sizeof( YY_CHAR ) ); if ( yyin->eof() ) return 0; if ( yyin->bad() ) return -1; return 1; #else (void) yyin->read((char *) buf, max_size * sizeof( YY_CHAR ) ); if ( yyin->bad() ) return -1; else return ( yyin->gcount() / sizeof( YY_CHAR ) ); #endif } void yyFlexLexer::LexerOutput( const YY_CHAR* buf, int size ) { (void) yyout->write((char *) buf, size * sizeof( YY_CHAR ) ); } %* /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ %- static int yy_get_next_buffer() %+ int yyFlexLexer::yy_get_next_buffer() %* { register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; register YY_CHAR *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (YY_CHAR *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ %- static yy_state_type yy_get_previous_state() %+ yy_state_type yyFlexLexer::yy_get_previous_state() %* { register yy_state_type yy_current_state; register YY_CHAR *yy_cp; %% code to get the start state into yy_current_state goes here for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { %% code to find the next state goes here } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ %- #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif %+ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) %* { register int yy_is_jam; %% code to find the next state, and perhaps do backing up, goes here return yy_is_jam ? 0 : yy_current_state; } %- #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register YY_CHAR *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register YY_CHAR *yy_bp; #endif %+ void yyFlexLexer::yyunput( int c, register YY_CHAR * yy_bp ) %* { register YY_CHAR *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register YY_CHAR *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register YY_CHAR *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (YY_CHAR) c; %% update yylineno here yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } %- #endif /* ifndef YY_NO_UNPUT */ %* %- #ifdef __cplusplus static int yyinput() #else static int input() #endif %+ int yyFlexLexer::yyinput() %* { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = (YY_CHAR) '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = YY_SC_TO_UI(*yy_c_buf_p); *yy_c_buf_p = (YY_CHAR) '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; %% update BOL and yylineno return c; } %- #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif %+ void yyFlexLexer::yyrestart( std::istream* input_file ) %* { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } %- #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif %+ void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) %* { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } %- #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif %+ void yyFlexLexer::yy_load_buffer_state() %* { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif %+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) %* { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (YY_CHAR *) yy_flex_alloc( ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } %- #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif %+ void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) %* { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } %- #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif %+ extern "C" int isatty YY_PROTO(( int )); void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) %* { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; %- #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif %+ b->yy_is_interactive = 0; %* } %- #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif %+ void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) %* { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } %* #ifndef YY_NO_SCAN_BUFFER %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( YY_CHAR *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) YY_CHAR *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } %* #endif #ifndef YY_NO_SCAN_STRING %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst YY_CHAR *yy_str ) #else YY_BUFFER_STATE yy_scan_string( yy_str ) yyconst YY_CHAR *yy_str; #endif { int len; for ( len = 0; yy_str[len]; ++len ) ; return yy_scan_chars( yy_str, len ); } %* #endif #ifndef YY_NO_SCAN_BYTES %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_chars( yyconst YY_CHAR *chars, int len ) #else YY_BUFFER_STATE yy_scan_chars( chars, len ) yyconst YY_CHAR *chars; int len; #endif { YY_BUFFER_STATE b; YY_CHAR *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (YY_CHAR *) yy_flex_alloc( n * sizeof( YY_CHAR ) ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_chars()" ); for ( i = 0; i < len; ++i ) buf[i] = chars[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_chars()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } %* #endif #ifndef YY_NO_PUSH_STATE %- #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif %+ void yyFlexLexer::yy_push_state( int new_state ) %* { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE %- static void yy_pop_state() %+ void yyFlexLexer::yy_pop_state() %* { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE %- static int yy_top_state() %+ int yyFlexLexer::yy_top_state() %* { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif %- #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } %+ void yyFlexLexer::LexerError( yyconst char msg[] ) { std::cerr << msg << '\n'; exit( YY_EXIT_FAILURE ); } %* /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = (YY_CHAR) '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( YY_CHAR *s1, yyconst YY_CHAR *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) YY_CHAR *s1; yyconst YY_CHAR *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst YY_CHAR *s ) #else static int yy_flex_strlen( s ) yyconst YY_CHAR *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif XQilla-2.3.4/src/lexer/XSLT2Lexer.cpp0000644001725400016040000014042013273140037014126 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "XSLT2Lexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef XQ_DEBUG_LEXER #include #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #else #define RECOGNIZE(token) return token #endif XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh XSLT_URI[] = { 'h', 't', 't', 'p', ':', '/', '/', 'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/', '1', '9', '9', '9', '/', 'X', 'S', 'L', '/', 'T', 'r', 'a', 'n', 's', 'f', 'o', 'r', 'm', 0 }; const XMLCh STYLESHEET_NAME[] = { 's', 't', 'y', 'l', 'e', 's', 'h', 'e', 'e', 't', 0 }; const XMLCh TRANSFORM_NAME[] = { 't', 'r', 'a', 'n', 's', 'f', 'o', 'r', 'm', 0 }; const XMLCh TEMPLATE_NAME[] = { 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 0 }; const XMLCh FUNCTION_NAME[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', 0 }; const XMLCh VALUE_OF_NAME[] = { 'v', 'a', 'l', 'u', 'e', '-', 'o', 'f', 0 }; const XMLCh TEXT_NAME[] = { 't', 'e', 'x', 't', 0 }; const XMLCh APPLY_TEMPLATES_NAME[] = { 'a', 'p', 'p', 'l', 'y', '-', 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 's', 0 }; const XMLCh CALL_TEMPLATE_NAME[] = { 'c', 'a', 'l', 'l', '-', 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 0 }; const XMLCh WITH_PARAM_NAME[] = { 'w', 'i', 't', 'h', '-', 'p', 'a', 'r', 'a', 'm', 0 }; const XMLCh SEQUENCE_NAME[] = { 's', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 0 }; const XMLCh PARAM_NAME[] = { 'p', 'a', 'r', 'a', 'm', 0 }; const XMLCh CHOOSE_NAME[] = { 'c', 'h', 'o', 'o', 's', 'e', 0 }; const XMLCh WHEN_NAME[] = { 'w', 'h', 'e', 'n', 0 }; const XMLCh OTHERWISE_NAME[] = { 'o', 't', 'h', 'e', 'r', 'w', 'i', 's', 'e', 0 }; const XMLCh IF_NAME[] = { 'i', 'f', 0 }; const XMLCh VARIABLE_NAME[] = { 'v', 'a', 'r', 'i', 'a', 'b', 'l', 'e', 0 }; const XMLCh COMMENT_NAME[] = { 'c', 'o', 'm', 'm', 'e', 'n', 't', 0 }; const XMLCh PI_NAME[] = { 'p', 'r', 'o', 'c', 'e', 's', 's', 'i', 'n', 'g', '-', 'i', 'n', 's', 't', 'r', 'u', 'c', 't', 'i', 'o', 'n', 0 }; const XMLCh DOCUMENT_NAME[] = { 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 0 }; const XMLCh ATTRIBUTE_NAME[] = { 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0 }; const XMLCh NAMESPACE_NAME[] = { 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh ANALYZE_STRING_NAME[] = { 'a', 'n', 'a', 'l', 'y', 'z', 'e', '-', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh MATCHING_SUBSTRING_NAME[] = { 'm', 'a', 't', 'c', 'h', 'i', 'n', 'g', '-', 's', 'u', 'b', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh NON_MATCHING_SUBSTRING_NAME[] = { 'n', 'o', 'n', '-', 'm', 'a', 't', 'c', 'h', 'i', 'n', 'g', '-', 's', 'u', 'b', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh COPY_OF_NAME[] = { 'c', 'o', 'p', 'y', '-', 'o', 'f', 0 }; const XMLCh COPY_NAME[] = { 'c', 'o', 'p', 'y', 0 }; const XMLCh FOR_EACH_NAME[] = { 'f', 'o', 'r', '-', 'e', 'a', 'c', 'h', 0 }; const XMLCh OUTPUT_NAME[] = { 'o', 'u', 't', 'p', 'u', 't', 0 }; const XMLCh IMPORT_SCHEMA_NAME[] = { 'i', 'm', 'p', 'o', 'r', 't', '-', 's', 'c', 'h', 'e', 'm', 'a', 0 }; const XMLCh ELEMENT_NAME[] = { 'e', 'l', 'e', 'm', 'e', 'n', 't', 0 }; const XMLCh VERSION_NAME[] = { 'v', 'e', 'r', 's', 'i', 'o', 'n', 0 }; const XMLCh MATCH_NAME[] = { 'm', 'a', 't', 'c', 'h', 0 }; const XMLCh AS_NAME[] = { 'a', 's', 0 }; const XMLCh SELECT_NAME[] = { 's', 'e', 'l', 'e', 'c', 't', 0 }; const XMLCh MODE_NAME[] = { 'm', 'o', 'd', 'e', 0 }; const XMLCh NAME_NAME[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh PRIORITY_NAME[] = { 'p', 'r', 'i', 'o', 'r', 'i', 't', 'y', 0 }; const XMLCh TUNNEL_NAME[] = { 't', 'u', 'n', 'n', 'e', 'l', 0 }; const XMLCh REQUIRED_NAME[] = { 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd', 0 }; const XMLCh OVERRIDE_NAME[] = { 'o', 'v', 'e', 'r', 'r', 'i', 'd', 'e', 0 }; const XMLCh TEST_NAME[] = { 't', 'e', 's', 't', 0 }; const XMLCh SEPARATOR_NAME[] = { 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 0 }; const XMLCh REGEX_NAME[] = { 'r', 'e', 'g', 'e', 'x', 0 }; const XMLCh FLAGS_NAME[] = { 'f', 'l', 'a', 'g', 's', 0 }; const XMLCh COPY_NAMESPACES_NAME[] = { 'c', 'o', 'p', 'y', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; const XMLCh INHERIT_NAMESPACES_NAME[] = { 'i', 'n', 'h', 'e', 'r', 'i', 't', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; const XMLCh METHOD_NAME[] = { 'm', 'e', 't', 'h', 'o', 'd', 0 }; const XMLCh BYTE_ORDER_MARK_NAME[] = { 'b', 'y', 't', 'e', '-', 'o', 'r', 'd', 'e', 'r', '-', 'm', 'a', 'r', 'k', 0 }; const XMLCh CDATA_SECTION_ELEMENTS_NAME[] = { 'c', 'd', 'a', 't', 'a', '-', 's', 'e', 'c', 't', 'i', 'o', 'n', '-', 'e', 'l', 'e', 'm', 'e', 'n', 't', 's', 0 }; const XMLCh DOCTYPE_PUBLIC_NAME[] = { 'd', 'o', 'c', 't', 'y', 'p', 'e', '-', 'p', 'u', 'b', 'l', 'i', 'c', 0 }; const XMLCh DOCTYPE_SYSTEM_NAME[] = { 'd', 'o', 'c', 't', 'y', 'p', 'e', '-', 's', 'y', 's', 't', 'e', 'm', 0 }; const XMLCh ENCODING_NAME[] = { 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 0 }; const XMLCh ESCAPE_URI_ATTRIBUTES_NAME[] = { 'e', 's', 'c', 'a', 'p', 'e', '-', 'u', 'r', 'i', '-', 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 's', 0 }; const XMLCh INCLUDE_CONTENT_TYPE_NAME[] = { 'i', 'n', 'c', 'l', 'u', 'd', 'e', '-', 'c', 'o', 'n', 't', 'e', 'n', 't', '-', 't', 'y', 'p', 'e', 0 }; const XMLCh INDENT_NAME[] = { 'i', 'n', 'd', 'e', 'n', 't', 0 }; const XMLCh MEDIA_TYPE_NAME[] = { 'm', 'e', 'd', 'i', 'a', '-', 't', 'y', 'p', 'e', 0 }; const XMLCh NORMALIZATION_FORM_NAME[] = { 'n', 'o', 'r', 'm', 'a', 'l', 'i', 'z', 'a', 't', 'i', 'o', 'n', '-', 'f', 'o', 'r', 'm', 0 }; const XMLCh OMIT_XML_DECLARATION_NAME[] = { 'o', 'm', 'i', 't', '-', 'x', 'm', 'l', '-', 'd', 'e', 'c', 'l', 'a', 'r', 'a', 't', 'i', 'o', 'n', 0 }; const XMLCh STANDALONE_NAME[] = { 's', 't', 'a', 'n', 'd', 'a', 'l', 'o', 'n', 'e', 0 }; const XMLCh UNDECLARE_PREFIXES_NAME[] = { 'u', 'n', 'd', 'e', 'c', 'l', 'a', 'r', 'e', '-', 'p', 'r', 'e', 'f', 'i', 'x', 'e', 's', 0 }; const XMLCh USE_CHARACTER_MAPS_NAME[] = { 'u', 's', 'e', '-', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', '-', 'm', 'a', 'p', 's', 0 }; const XMLCh EXCLUDE_RESULT_PREFIXES_NAME[] = { 'e', 'x', 'c', 'l', 'u', 'd', 'e', '-', 'r', 'e', 's', 'u', 'l', 't', '-', 'p', 'r', 'e', 'f', 'i', 'x', 'e', 's', 0 }; const XMLCh XPATH_DEFAULT_NAMESPACE_NAME[] = { 'x', 'p', 'a', 't', 'h', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh SCHEMA_LOCATION_NAME[] = { 's', 'c', 'h', 'e', 'm', 'a', '-', 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0 }; const XMLCh SPACE_NAME[] = { 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh PRESERVE_NAME[] = { 'p', 'r', 'e', 's', 'e', 'r', 'v', 'e', 0 }; const XMLCh DEFAULT_NAME[] = { 'd', 'e', 'f', 'a', 'u', 'l', 't', 0 }; const XMLCh YES_VALUE[] = { 'y', 'e', 's', 0 }; const XMLCh NO_VALUE[] = { 'n', 'o', 0 }; struct AttrData { const XMLCh *name; int token; enum { PATTERN, SEQUENCE_TYPE, EXPRESSION, ATTR_VALUE_TEMPLATE, STRING, QNAME, YESNO, TEMPLATE_MODES, OUTPUT_METHOD, QNAMES } type; }; #define AS_ATTR_DATA { AS_NAME, _XSLT_AS_, AttrData::SEQUENCE_TYPE } #define SELECT_ATTR_DATA { SELECT_NAME, _XSLT_SELECT_, AttrData::EXPRESSION } #define NAME_ATTR_DATA { NAME_NAME, _XSLT_NAME_, AttrData::QNAME } #define SEPARATOR_ATTR_DATA { SEPARATOR_NAME, _XSLT_SEPARATOR_, AttrData::ATTR_VALUE_TEMPLATE } #define END_ATTR_DATA { 0, 0, AttrData::STRING } const AttrData STYLESHEET_ATTR_DATA[] = { { VERSION_NAME, _XSLT_VERSION_, AttrData::STRING }, { EXCLUDE_RESULT_PREFIXES_NAME, _XSLT_EXCLUDE_RESULT_PREFIXES_, AttrData::STRING }, // TBD the rest of the attrs - jpcs END_ATTR_DATA }; const AttrData TEMPLATE_ATTR_DATA[] = { { MATCH_NAME, _XSLT_MATCH_, AttrData::PATTERN }, NAME_ATTR_DATA, { PRIORITY_NAME, _XSLT_PRIORITY_, AttrData::EXPRESSION }, { MODE_NAME, _XSLT_MODE_, AttrData::TEMPLATE_MODES }, AS_ATTR_DATA, END_ATTR_DATA }; const AttrData FUNCTION_ATTR_DATA[] = { NAME_ATTR_DATA, AS_ATTR_DATA, { OVERRIDE_NAME, _XSLT_OVERRIDE_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData VALUE_OF_ATTR_DATA[] = { SELECT_ATTR_DATA, SEPARATOR_ATTR_DATA, END_ATTR_DATA }; const AttrData APPLY_TEMPLATES_ATTR_DATA[] = { { MODE_NAME, _XSLT_MODE_, AttrData::TEMPLATE_MODES }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData CALL_TEMPLATE_ATTR_DATA[] = { NAME_ATTR_DATA, END_ATTR_DATA }; const AttrData WITH_PARAM_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, { TUNNEL_NAME, _XSLT_TUNNEL_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData SEQUENCE_ATTR_DATA[] = { SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData PARAM_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, { REQUIRED_NAME, _XSLT_REQUIRED_, AttrData::YESNO }, { TUNNEL_NAME, _XSLT_TUNNEL_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData G_TEST_ATTR_DATA[] = { { TEST_NAME, _XSLT_TEST_, AttrData::EXPRESSION }, END_ATTR_DATA }; const AttrData VARIABLE_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, END_ATTR_DATA }; const AttrData COMMENT_ATTR_DATA[] = { SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData PI_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData ATTRIBUTE_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, { NAMESPACE_NAME, _XSLT_NAMESPACE_A_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, SEPARATOR_ATTR_DATA, // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData NAMESPACE_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData ELEMENT_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, { NAMESPACE_NAME, _XSLT_NAMESPACE_A_, AttrData::ATTR_VALUE_TEMPLATE }, // TBD inherit-namespaces - jpcs // TBD use-attribute-sets - jpcs // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData ANALYZE_STRING_ATTR_DATA[] = { SELECT_ATTR_DATA, { REGEX_NAME, _XSLT_REGEX_, AttrData::ATTR_VALUE_TEMPLATE }, { FLAGS_NAME, _XSLT_FLAGS_, AttrData::ATTR_VALUE_TEMPLATE }, END_ATTR_DATA }; const AttrData COPY_OF_ATTR_DATA[] = { SELECT_ATTR_DATA, { COPY_NAMESPACES_NAME, _XSLT_COPY_NAMESPACES_, AttrData::YESNO }, // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData COPY_ATTR_DATA[] = { { COPY_NAMESPACES_NAME, _XSLT_COPY_NAMESPACES_, AttrData::YESNO }, { INHERIT_NAMESPACES_NAME, _XSLT_INHERIT_NAMESPACES_, AttrData::YESNO }, // TBD attribute sets - jpcs // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData FOR_EACH_ATTR_DATA[] = { SELECT_ATTR_DATA }; const AttrData OUTPUT_ATTR_DATA[] = { // { VERSION_NAME, _XSLT_VERSION_, AttrData::STRING } }; const AttrData IMPORT_SCHEMA_ATTR_DATA[] = { { NAMESPACE_NAME, _XSLT_NAMESPACE_STR_, AttrData::STRING }, { SCHEMA_LOCATION_NAME, _XSLT_SCHEMA_LOCATION_, AttrData::STRING }, END_ATTR_DATA }; struct InstructionInfo { const XMLCh *name; int token; const AttrData *attrs; enum { STRIP, PRESERVE, DEFAULT } whitespace; }; const InstructionInfo INSTRUCTION_INFO[] = { { STYLESHEET_NAME, _XSLT_STYLESHEET_, STYLESHEET_ATTR_DATA, InstructionInfo::STRIP }, { TRANSFORM_NAME, _XSLT_STYLESHEET_, STYLESHEET_ATTR_DATA, InstructionInfo::STRIP }, { TEMPLATE_NAME, _XSLT_TEMPLATE_, TEMPLATE_ATTR_DATA, InstructionInfo::DEFAULT }, { FUNCTION_NAME, _XSLT_FUNCTION_, FUNCTION_ATTR_DATA, InstructionInfo::DEFAULT }, { VALUE_OF_NAME, _XSLT_VALUE_OF_, VALUE_OF_ATTR_DATA, InstructionInfo::DEFAULT }, { TEXT_NAME, _XSLT_TEXT_, 0, InstructionInfo::PRESERVE }, { APPLY_TEMPLATES_NAME, _XSLT_APPLY_TEMPLATES_, APPLY_TEMPLATES_ATTR_DATA, InstructionInfo::STRIP }, { CALL_TEMPLATE_NAME, _XSLT_CALL_TEMPLATE_, CALL_TEMPLATE_ATTR_DATA, InstructionInfo::STRIP }, { WITH_PARAM_NAME, _XSLT_WITH_PARAM_, WITH_PARAM_ATTR_DATA, InstructionInfo::DEFAULT }, { SEQUENCE_NAME, _XSLT_SEQUENCE_, SEQUENCE_ATTR_DATA, InstructionInfo::DEFAULT }, { PARAM_NAME, _XSLT_PARAM_, PARAM_ATTR_DATA, InstructionInfo::DEFAULT }, { CHOOSE_NAME, _XSLT_CHOOSE_, 0, InstructionInfo::STRIP }, { WHEN_NAME, _XSLT_WHEN_, G_TEST_ATTR_DATA, InstructionInfo::DEFAULT }, { OTHERWISE_NAME, _XSLT_OTHERWISE_, 0, InstructionInfo::DEFAULT }, { IF_NAME, _XSLT_IF_, G_TEST_ATTR_DATA, InstructionInfo::DEFAULT }, { VARIABLE_NAME, _XSLT_VARIABLE_, VARIABLE_ATTR_DATA, InstructionInfo::DEFAULT }, { COMMENT_NAME, _XSLT_COMMENT_, COMMENT_ATTR_DATA, InstructionInfo::DEFAULT }, { PI_NAME, _XSLT_PI_, PI_ATTR_DATA, InstructionInfo::DEFAULT }, { DOCUMENT_NAME, _XSLT_DOCUMENT_, 0, InstructionInfo::DEFAULT }, { ATTRIBUTE_NAME, _XSLT_ATTRIBUTE_, ATTRIBUTE_ATTR_DATA, InstructionInfo::DEFAULT }, { ANALYZE_STRING_NAME, _XSLT_ANALYZE_STRING_, ANALYZE_STRING_ATTR_DATA, InstructionInfo::STRIP }, { MATCHING_SUBSTRING_NAME, _XSLT_MATCHING_SUBSTRING_, 0, InstructionInfo::DEFAULT }, { NON_MATCHING_SUBSTRING_NAME, _XSLT_NON_MATCHING_SUBSTRING_, 0, InstructionInfo::DEFAULT }, { COPY_OF_NAME, _XSLT_COPY_OF_, COPY_OF_ATTR_DATA, InstructionInfo::DEFAULT }, { COPY_NAME, _XSLT_COPY_, COPY_ATTR_DATA, InstructionInfo::DEFAULT }, { FOR_EACH_NAME, _XSLT_FOR_EACH_, FOR_EACH_ATTR_DATA, InstructionInfo::DEFAULT }, { OUTPUT_NAME, _XSLT_OUTPUT_, OUTPUT_ATTR_DATA, InstructionInfo::DEFAULT }, { IMPORT_SCHEMA_NAME, _XSLT_IMPORT_SCHEMA_, IMPORT_SCHEMA_ATTR_DATA, InstructionInfo::DEFAULT }, { ELEMENT_NAME, _XSLT_ELEMENT_, ELEMENT_ATTR_DATA, InstructionInfo::DEFAULT }, { NAMESPACE_NAME, _XSLT_NAMESPACE_, NAMESPACE_ATTR_DATA, InstructionInfo::DEFAULT }, { 0, 0 } }; // Strip elements: // // xsl:analyze-string // xsl:apply-imports // xsl:apply-templates // xsl:attribute-set // xsl:call-template // xsl:character-map // xsl:choose // xsl:next-match // xsl:stylesheet // xsl:transform XSLT2Lexer::XSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : Lexer(context->getMemoryManager(), lang, context->getMemoryManager()->getPooledString(srcToUse.getSystemId()), 0, 0), context_(context), childLexer_(0), elementStack_(0), state_(LANG_TOKEN), textBuffer_(1023, context->getMemoryManager()), textToCreate_(false) { } XSLT2Lexer::~XSLT2Lexer() { while(elementStack_ != 0) { popElementStack(); } } void XSLT2Lexer::undoLessThan() { if(childLexer_.get() != 0) { childLexer_->undoLessThan(); } } int XSLT2Lexer::lang_token_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { state_ = NEXT_EVENT; RECOGNIZE(_LANG_XSLT2_); } int XSLT2Lexer::attrs_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { const XMLCh *prefix, *uri, *name, *value; unsigned int length; getEventName(prefix, uri, name); getEventValue(value, length, offsets_); getEventLocation(pYYLOC); if(XPath2Utils::equals(uri, XMLUni::fgXMLURIName) && XPath2Utils::equals(name, SPACE_NAME)) { value = mm_->getPooledString(value, length); // Keep track of the xml:space policy if(XPath2Utils::equals(value, PRESERVE_NAME)) { elementStack_->xmlSpacePreserve = true; } else if(XPath2Utils::equals(value, DEFAULT_NAME)) { elementStack_->xmlSpacePreserve = false; } } else if(elementStack_->info != 0 && uri == 0) { if(elementStack_->info->attrs != 0) { for(const AttrData *entry = elementStack_->info->attrs; entry->name != 0; ++entry) { if(XPath2Utils::equals(name, entry->name)) { switch(entry->type) { case AttrData::PATTERN: case AttrData::SEQUENCE_TYPE: case AttrData::EXPRESSION: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2))); break; case AttrData::ATTR_VALUE_TEMPLATE: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_ATTR_VALUE_TEMPLATE)); break; case AttrData::TEMPLATE_MODES: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_TEMPLATE_MODES)); break; case AttrData::OUTPUT_METHOD: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_OUTPUT_METHOD)); break; case AttrData::QNAMES: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_QNAMES)); break; case AttrData::STRING: pYYLVAL->str = (XMLCh*)mm_->getPooledString(value, length); break; case AttrData::QNAME: pYYLVAL->str = (XMLCh*)mm_->getPooledString(value, length); if(!XMLChar1_0::isValidQName(value, length)) { getValueLocation(pYYLOC); std::ostringstream oss; oss << "The attribute value \"" << UTF8(pYYLVAL->str) << "\" is not a valid xs:QName [err:XTSE0020]"; error(oss.str().c_str()); } break; case AttrData::YESNO: XMLBuffer valueBuf; valueBuf.set(value, length); XMLString::collapseWS(valueBuf.getRawBuffer()); if(XPath2Utils::equals(valueBuf.getRawBuffer(), YES_VALUE)) { pYYLVAL->boolean = true; } else if(XPath2Utils::equals(valueBuf.getRawBuffer(), NO_VALUE)) { pYYLVAL->boolean = false; } else { getValueLocation(pYYLOC); error("The attribute does not have a value of \"yes\" or \"no\" [err:XTSE0020]"); } break; } state_ = NEXT_EVENT; RECOGNIZE(entry->token); } } } // Is it one of the standard attributes? if(XPath2Utils::equals(name, XPATH_DEFAULT_NAMESPACE_NAME)) { // TBD xpath-default-name - jpcs } } if(elementStack_->info == 0) { pYYLVAL->astNode = makeQNameLiteral(uri, prefix, name); // Set up childLexer_ to lex the attribute value as an attribute value template getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_ATTR_VALUE_TEMPLATE)); state_ = NEXT_EVENT; RECOGNIZE(_XSLT_ATTR_NAME_); } else if(uri != 0) { // Extension attribute - ignore for the moment state_ = NEXT_EVENT; return yylex(pYYLVAL, pYYLOC); } else { ostringstream oss; oss << "Unexpected attribute {" << UTF8(uri) << "}" << UTF8(name) << " [err:XTSE0090]"; error(oss.str().c_str()); } // Never happens RECOGNIZE(MYEOF); } #define checkTextBuffer(uri, name) \ { \ if(textToCreate_) { \ bool isWS = XMLChar1_0::isAllSpaces(textBuffer_.getRawBuffer(), textBuffer_.getLen()); \ if(((name) != 0 && XPath2Utils::equals((uri), XSLT_URI) && \ XPath2Utils::equals((name), PARAM_NAME) && isWS) || \ (!elementStack_->reportWhitespace() && isWS)) { \ textBuffer_.reset(); \ textToCreate_ = false; \ } \ else { \ pYYLVAL->astNode = makeStringLiteral(mm_->getPooledString(textBuffer_.getRawBuffer())); \ \ textBuffer_.reset(); \ textToCreate_ = false; \ \ state_ = CURRENT_EVENT; \ if(isWS) { \ RECOGNIZE(_XSLT_WS_TEXT_NODE_); \ } \ else { \ RECOGNIZE(_XSLT_TEXT_NODE_); \ } \ } \ } \ } int XSLT2Lexer::next_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { nextEvent(pYYLOC); state_ = CURRENT_EVENT; return current_event_state(pYYLVAL, pYYLOC); } void XSLT2Lexer::setNamespace(const XMLCh *prefix, const XMLCh *uri) { if(elementStack_->info != 0 && elementStack_->info->token == _XSLT_STYLESHEET_) { // If this is the xsl:stylesheet element, add the namespace bindings to the context if(prefix == 0 || *prefix == 0) context_->setDefaultElementAndTypeNS(uri); else context_->setNamespaceBinding(prefix, uri); } else { if(elementStack_->nsResolver == elementStack_->prev->nsResolver) { elementStack_->nsResolver = new (mm_) XQillaNSResolverImpl(mm_, elementStack_->nsResolver != 0 ? elementStack_->nsResolver : context_->getNSResolver()); } elementStack_->nsResolver->addNamespaceBinding(prefix, uri); } } int XSLT2Lexer::current_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { while(true) { switch(getEventType()) { case START_DOCUMENT: pushElementStack(); break; case END_DOCUMENT: popElementStack(); // End of file RECOGNIZE(MYEOF); break; case START_ELEMENT: { const XMLCh *prefix, *uri, *name; getEventName(prefix, uri, name); checkTextBuffer(uri, name); getEventLocation(pYYLOC); pushElementStack(); // See if we recognize the element if(XPath2Utils::equals(uri, XSLT_URI)) { for(const InstructionInfo *entry = INSTRUCTION_INFO; entry->name != 0; ++entry) { if(XPath2Utils::equals(name, entry->name)) { elementStack_->info = entry; } } if(elementStack_->info == 0) { std::ostringstream oss; oss << "Unrecognized XSLT element {" << UTF8(uri) << "}" << UTF8(name); error(oss.str().c_str()); } } state_ = NEXT_EVENT; if(elementStack_->info != 0) { RECOGNIZE(elementStack_->info->token); } pYYLVAL->astNode = makeQNameLiteral(uri, prefix, name); RECOGNIZE(_XSLT_ELEMENT_NAME_); break; } case END_ELEMENT: checkTextBuffer(0, 0); getEventLocation(pYYLOC); // Put off popping the stack until before the next token state_ = POP_STACK; RECOGNIZE(_XSLT_END_ELEMENT_); break; case TEXT: if(!textToCreate_) getEventLocation(pYYLOC); const XMLCh *value; unsigned int length; getEventValue(value, length, offsets_); textBuffer_.append(value, length); textToCreate_ = true; break; case NAMESPACE: { const XMLCh *prefix, *uri, *name, *value; unsigned int length; getEventName(prefix, uri, name); getEventValue(value, length, offsets_); const XMLCh *nsuri = mm_->getPooledString(value, length); if(!XPath2Utils::equals(uri, XMLUni::fgXMLNSURIName) && XPath2Utils::equals(name, XPATH_DEFAULT_NAMESPACE_NAME)) { setNamespace(0, nsuri); } else { if(prefix != 0 && *prefix != 0) { setNamespace(name, nsuri); } if(elementStack_->info == 0) { VectorOfASTNodes *valueVector = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); valueVector->push_back(makeStringLiteral(nsuri)); pYYLVAL->astNode = wrap(new (mm_) XQAttributeConstructor(makeDirectName(prefix, name), valueVector, mm_)); state_ = NEXT_EVENT; RECOGNIZE(_XSLT_XMLNS_ATTR_); } } break; } case ATTRIBUTE: return attrs_state(pYYLVAL, pYYLOC); } nextEvent(pYYLOC); } // Never happens RECOGNIZE(MYEOF); } int XSLT2Lexer::yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { if(childLexer_.get() != 0) { int token = childLexer_->yylex(pYYLVAL, pYYLOC); if(token != MYEOF) { m_lineno = pYYLOC->first_line; m_columnno = pYYLOC->first_column; return token; } childLexer_.set(0); } switch(state_) { case LANG_TOKEN: return lang_token_state(pYYLVAL, pYYLOC); case POP_STACK: popElementStack(); state_ = NEXT_EVENT; // Fall through case NEXT_EVENT: return next_event_state(pYYLVAL, pYYLOC); case CURRENT_EVENT: return current_event_state(pYYLVAL, pYYLOC); } // Never happens RECOGNIZE(MYEOF); } ASTNode *XSLT2Lexer::wrap(ASTNode *result) const { result->setLocationInfo(m_szQueryFile, m_lineno, m_columnno); return result; } ASTNode *XSLT2Lexer::makeQNameLiteral(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name) const { return wrap(new (mm_) XQQNameLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, name, mm_)); } ASTNode *XSLT2Lexer::makeDirectName(const XMLCh *prefix, const XMLCh *name) const { static const XMLCh colon[] = { ':', 0 }; return wrap(new (mm_) XQDirectName(prefix == 0 ? name : XPath2Utils::concatStrings(prefix, colon, name, mm_), /*isAttr*/true, mm_)); } ASTNode *XSLT2Lexer::makeStringLiteral(const XMLCh *value) const { return wrap(new (mm_) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, value, AnyAtomicType::STRING, mm_)); } void XSLT2Lexer::pushElementStack() { elementStack_ = new ElementStackEntry(elementStack_); } void XSLT2Lexer::popElementStack() { ElementStackEntry *tmp = elementStack_->prev; delete elementStack_; elementStack_ = tmp; } DOMXPathNSResolver *XSLT2Lexer::getNSResolver() const { return elementStack_->nsResolver; } //////////////////////////////////////////////////////////////////////////////////////////////////// XSLT2Lexer::ElementStackEntry::ElementStackEntry(ElementStackEntry *p) : info(0), xmlSpacePreserve(p ? p->xmlSpacePreserve : false), nsResolver(p ? p->nsResolver : 0), prev(p) { } bool XSLT2Lexer::ElementStackEntry::reportWhitespace() const { if(xmlSpacePreserve) return info == 0 || info->whitespace != InstructionInfo::STRIP; return info != 0 && info->whitespace == InstructionInfo::PRESERVE; } //////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef HAVE_FAXPP static inline const XMLCh *nullTerm(const FAXPP_Text &text, XPath2MemoryManager *mm) { return mm->getPooledString((XMLCh*)text.ptr, text.len / sizeof(XMLCh)); } FAXPPXSLT2Lexer::FAXPPXSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : XSLT2Lexer(context, srcToUse, lang), wrapper_(context->getDocumentCache()->getXMLEntityResolver()), eventType_(END_ELEMENT), attrIndex_(0) { // We'll normalize attributes ourselves FAXPP_set_normalize_attrs(wrapper_.parser, false); FAXPP_Error err = wrapper_.parseInputSource(srcToUse, context->getMemoryManager()); if(err == OUT_OF_MEMORY) error("Out of memory"); if(err == UNSUPPORTED_ENCODING) error("Unsupported encoding"); } FAXPPXSLT2Lexer::~FAXPPXSLT2Lexer() { } bool FAXPPXSLT2Lexer::nextNamespace() { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); eventType_ = NAMESPACE; while(attrIndex_ < event->attr_count) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; if(attr->xmlns_attr) return true; // Recoginze [xsl:]xpath-default-namespace as a type NAMESPACE too if(XPath2Utils::equals(nullTerm(event->uri, mm_), XSLT_URI)) { if(attr->uri.len == 0 && XPath2Utils::equals(nullTerm(attr->name, mm_), XPATH_DEFAULT_NAMESPACE_NAME)) { attr->xmlns_attr = 1; return true; } } else { if(XPath2Utils::equals(nullTerm(attr->name, mm_), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(nullTerm(attr->uri, mm_), XSLT_URI)) { attr->xmlns_attr = 1; return true; } } ++attrIndex_; } attrIndex_ = 0; return nextAttribute(); } bool FAXPPXSLT2Lexer::nextAttribute() { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); eventType_ = ATTRIBUTE; while(attrIndex_ < event->attr_count) { if(!event->attrs[attrIndex_].xmlns_attr) return true; ++attrIndex_; } eventType_ = (XSLT2Lexer::EventType)-1; return false; } void FAXPPXSLT2Lexer::nextEvent(YYLTYPE* pYYLOC) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == START_ELEMENT) { attrIndex_ = 0; if(nextNamespace()) return; } if(eventType_ == NAMESPACE) { ++attrIndex_; if(nextNamespace()) return; } if(eventType_ == ATTRIBUTE) { ++attrIndex_; if(nextAttribute()) return; } if(eventType_ != END_ELEMENT && event->type == SELF_CLOSING_ELEMENT_EVENT) { eventType_ = END_ELEMENT; return; } eventType_ = (XSLT2Lexer::EventType)-1; while(eventType_ == (XSLT2Lexer::EventType)-1) { FAXPP_Error err = FAXPP_next_event(wrapper_.parser); if(err != NO_ERROR) { setErrorLocation(pYYLOC); ostringstream oss; oss << "Error parsing document: " << FAXPP_err_to_string(err); error(oss.str().c_str()); } event = FAXPP_get_current_event(wrapper_.parser); switch(event->type) { case SELF_CLOSING_ELEMENT_EVENT: case START_ELEMENT_EVENT: eventType_ = START_ELEMENT; break; case END_ELEMENT_EVENT: eventType_ = END_ELEMENT; break; case ENTITY_REFERENCE_EVENT: // TBD handle external parsed entities - jpcs if(event->value.ptr == 0) break; // Fall through case DEC_CHAR_REFERENCE_EVENT: case HEX_CHAR_REFERENCE_EVENT: case CHARACTERS_EVENT: case CDATA_EVENT: eventType_ = TEXT; break; case START_DOCUMENT_EVENT: eventType_ = START_DOCUMENT; break; case END_DOCUMENT_EVENT: eventType_ = END_DOCUMENT; break; case COMMENT_EVENT: case PI_EVENT: case IGNORABLE_WHITESPACE_EVENT: case DOCTYPE_EVENT: case ENTITY_REFERENCE_START_EVENT: case ENTITY_REFERENCE_END_EVENT: case START_EXTERNAL_ENTITY_EVENT: case END_EXTERNAL_ENTITY_EVENT: case NO_EVENT: // Ignore break; } } } XSLT2Lexer::EventType FAXPPXSLT2Lexer::getEventType() { return eventType_; } void FAXPPXSLT2Lexer::getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; // setLocation(pYYLOC, attr); prefix = nullTerm(attr->prefix, mm_); uri = nullTerm(attr->uri, mm_); localname = nullTerm(attr->name, mm_); } else { prefix = nullTerm(event->prefix, mm_); uri = nullTerm(event->uri, mm_); localname = nullTerm(event->name, mm_); } } void FAXPPXSLT2Lexer::getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); offsets.clear(); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; value_.reset(); // Normalize the attribute value and calculate offsets into // it to compensate for things like expanded entity references // and line ending conversion. const FAXPP_AttrValue *aval = &attr->value; int index = 0, line = aval->line, column = aval->column + 1; for(; aval; aval = aval->next) { if((unsigned)line != aval->line || (unsigned)column != (aval->column + 1)) { offsets.push_back(XQLexer::ValueOffset(index, aval->line - line, (aval->column + 1) - column)); line = aval->line; column = aval->column + 1; } const XMLCh *pos = (const XMLCh*)aval->value.ptr; const XMLCh *end = (const XMLCh*)((char*)aval->value.ptr + aval->value.len); for(; pos < end; ++pos) { switch(*pos) { case '\r': if((pos + 1) < end && *(pos + 1) == '\n') ++pos; // Fall through case '\n': offsets.push_back(XQLexer::ValueOffset(index, 1, -column)); line += 1; column = 1; value_.append(' '); break; case '\t': value_.append(' '); ++column; break; default: value_.append(*pos); ++column; break; } ++index; } } value = value_.getRawBuffer(); length = value_.getLen(); } else { value = (XMLCh*)event->value.ptr; length = event->value.len / sizeof(XMLCh); } } void FAXPPXSLT2Lexer::getEventLocation(YYLTYPE* pYYLOC) { if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &FAXPP_get_current_event(wrapper_.parser)->attrs[attrIndex_]; setLocation(pYYLOC, attr); } else { setLocation(pYYLOC, FAXPP_get_current_event(wrapper_.parser)); } } void FAXPPXSLT2Lexer::getValueLocation(YYLTYPE* pYYLOC) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; setLocation(pYYLOC, &attr->value); } else { setLocation(pYYLOC, event); } } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_Event *event) { pYYLOC->first_line = m_lineno = event->line; pYYLOC->first_column = m_columnno = event->column + 1; } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_Attribute *attr) { pYYLOC->first_line = m_lineno = attr->line; pYYLOC->first_column = m_columnno = attr->column + 1; } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_AttrValue *attrval) { pYYLOC->first_line = m_lineno = attrval->line; pYYLOC->first_column = m_columnno = attrval->column + 1; } void FAXPPXSLT2Lexer::setErrorLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = FAXPP_get_error_line(wrapper_.parser); pYYLOC->first_column = m_columnno = FAXPP_get_error_column(wrapper_.parser) + 1; } #endif // HAVE_FAXPP //////////////////////////////////////////////////////////////////////////////////////////////////// XercesXSLT2Lexer::XercesXSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : XSLT2Lexer(context, srcToUse, lang), grammarResolver_(0), scanner_(0), currentEvent_(0), firstEvent_(0), lastEvent_(0) { try { grammarResolver_ = new GrammarResolver(0); scanner_ = new DGXMLScanner(0, grammarResolver_); scanner_->setURIStringPool(grammarResolver_->getStringPool()); scanner_->setDocHandler(this); scanner_->setEntityHandler(this); scanner_->setDoNamespaces(true); scanner_->scanFirst(srcToUse, pptoken_); } catch(const SAXException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } catch(const XMLException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } } XercesXSLT2Lexer::~XercesXSLT2Lexer() { delete currentEvent_; CachedEvent *tmp; while(firstEvent_) { tmp = firstEvent_; firstEvent_ = firstEvent_->next; delete tmp; } delete scanner_; delete grammarResolver_; } void XercesXSLT2Lexer::nextEvent(YYLTYPE* pYYLOC) { if(currentEvent_) { if(currentEvent_->type == END_DOCUMENT) return; delete currentEvent_; currentEvent_ = 0; } while(currentEvent_ == 0) { if(firstEvent_ != 0) { currentEvent_ = firstEvent_; firstEvent_ = firstEvent_->next; if(firstEvent_ == 0) lastEvent_ = 0; currentEvent_->next = 0; } else { try { scanner_->scanNext(pptoken_); } catch(const SAXException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } catch(const XMLException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } } } } XSLT2Lexer::EventType XercesXSLT2Lexer::getEventType() { return currentEvent_->type; } void XercesXSLT2Lexer::getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) { prefix = currentEvent_->prefix; uri = currentEvent_->uri; localname = currentEvent_->localname; } void XercesXSLT2Lexer::getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) { offsets.clear(); value = currentEvent_->value.getRawBuffer(); length = (unsigned int) currentEvent_->value.getLen(); } void XercesXSLT2Lexer::getEventLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = (int) currentEvent_->line; pYYLOC->first_column = m_columnno = (int) currentEvent_->column; } void XercesXSLT2Lexer::getValueLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = (int) currentEvent_->line; pYYLOC->first_column = m_columnno = (int) currentEvent_->column; } InputSource* XercesXSLT2Lexer::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { if(context_->getXMLEntityResolver()) return context_->getXMLEntityResolver()->resolveEntity(resourceIdentifier); return 0; } void XercesXSLT2Lexer::startDocument() { lastEvent_ = new CachedEvent(START_DOCUMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } void XercesXSLT2Lexer::endDocument() { lastEvent_ = new CachedEvent(END_DOCUMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } #if _XERCES_VERSION >= 30000 void XercesXSLT2Lexer::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) #else void XercesXSLT2Lexer::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot) #endif { lastEvent_ = new CachedEvent(mm_->getPooledString(elemPrefix), mm_->getPooledString(scanner_->getURIText(urlId)), mm_->getPooledString(elemDecl.getBaseName()), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; unsigned int i; for(i = 0; i < attrCount; ++i) { const XMLAttr *attr = attrList.elementAt(i); if(attr->getURIId() == scanner_->getXMLNSNamespaceId()) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } else if(XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), XMLUni::fgXMLNSURIName, mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } // Recoginze [xsl:]xpath-default-namespace as a type NAMESPACE too if(XPath2Utils::equals(scanner_->getURIText(urlId), XSLT_URI)) { if(attr->getURIId() == 0 && XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } else { if(XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(scanner_->getURIText(attr->getURIId()), XSLT_URI)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } } for(i = 0; i < attrCount; ++i) { const XMLAttr *attr = attrList.elementAt(i); if(attr->getURIId() == scanner_->getXMLNSNamespaceId() || XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) continue; if(XPath2Utils::equals(scanner_->getURIText(urlId), XSLT_URI)) { if(attr->getURIId() == 0 && XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME)) continue; } else { if(XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(scanner_->getURIText(attr->getURIId()), XSLT_URI)) continue; } lastEvent_ = new CachedEvent(ATTRIBUTE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } if(isEmpty) { lastEvent_ = new CachedEvent(END_ELEMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } #if _XERCES_VERSION >= 30000 void XercesXSLT2Lexer::docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) #else void XercesXSLT2Lexer::docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection) #endif { lastEvent_ = new CachedEvent(chars, length, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } void XercesXSLT2Lexer::endElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix) { lastEvent_ = new CachedEvent(END_ELEMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } #define emptyToNull(p) ((p && *p) ? (p) : 0) XercesXSLT2Lexer::CachedEvent::CachedEvent(EventType t, const Locator *locator, CachedEvent *p) : type(t), prefix(0), uri(0), localname(0), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(p), next(0) { if(p) p->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(const XMLCh *p, const XMLCh *u, const XMLCh *l, const Locator *locator, CachedEvent *pv) : type(START_ELEMENT), prefix(emptyToNull(p)), uri(emptyToNull(u)), localname(l), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(pv), next(0) { if(pv) pv->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(EventType t, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const Locator *locator, CachedEvent *pv) : type(t), prefix(emptyToNull(p)), uri(emptyToNull(u)), localname(l), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(pv), next(0) { value.set(v); if(pv) pv->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(const XMLCh *v, size_t length, const Locator *locator, CachedEvent *p) : type(TEXT), prefix(0), uri(0), localname(0), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(p), next(0) { value.set(v, length); if(p) p->next = this; } XQilla-2.3.4/src/lexer/FlexLexer.h0000644001725400016040000001310013232476424013616 00000000000000// FlexLexer.h -- define interfaces for lexical analyzer classes generated // by flex // Copyright (c) 1993 The Regents of the University of California. // All rights reserved. // // This code is derived from software contributed to Berkeley by // Kent Williams and Tom Epperly. // // Redistribution and use in source and binary forms with or without // modification are permitted provided that: (1) source distributions retain // this entire copyright notice and comment, and (2) distributions including // binaries display the following acknowledgement: ``This product includes // software developed by the University of California, Berkeley and its // contributors'' in the documentation or other materials provided with the // distribution and in all advertising materials mentioning features or use // of this software. Neither the name of the University nor the names of // its contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // This file defines FlexLexer, an abstract class which specifies the // external interface provided to flex C++ lexer objects, and yyFlexLexer, // which defines a particular lexer class. // // If you want to create multiple lexer classes, you use the -P flag // to rename each yyFlexLexer to some other xxFlexLexer. You then // include in your other sources once per lexer class: // // #undef yyFlexLexer // #define yyFlexLexer xxFlexLexer // #include // // #undef yyFlexLexer // #define yyFlexLexer zzFlexLexer // #include // ... // // Since this header is generic for all sizes of flex scanners, you must // define the type YY_CHAR before including it: // // typedef xxx YY_CHAR; // #include // ... // // where xxx = char for 7-bit scanners, unsigned char for 8-bit, and // wchar_t for 16-bit. #ifndef __FLEX_LEXER_H // Never included before - need to define base class. #define __FLEX_LEXER_H #include #include extern "C++" { struct yy_buffer_state; typedef int yy_state_type; class XQILLA_API FlexLexer { public: virtual ~FlexLexer() { } const YY_CHAR* YYText() { return yytext; } int YYLeng() { return yyleng; } virtual void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; virtual struct yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; virtual void yyrestart( std::istream* s ) = 0; virtual int yylex() = 0; int lineno() const { return yylineno; } int debug() const { return yy_flex_debug; } void set_debug( int flag ) { yy_flex_debug = flag; } protected: YY_CHAR* yytext; int yyleng; int yylineno; // only maintained if you use %option yylineno int yy_flex_debug; // only has effect with -d or "%option debug" }; } #endif #if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) // Either this is the first time through (yyFlexLexerOnce not defined), // or this is a repeated include to define a different flavor of // yyFlexLexer, as discussed in the flex man page. #define yyFlexLexerOnce class XQILLA_API yyFlexLexer : public FlexLexer { public: // arg_yyin and arg_yyout default to the cin and cout, but we // only make that assignment when initializing in yylex(). yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); virtual ~yyFlexLexer(); void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); struct yy_buffer_state* yy_create_buffer( std::istream* s, int size ); void yy_delete_buffer( struct yy_buffer_state* b ); void yyrestart( std::istream* s ); virtual int yylex(); protected: virtual int LexerInput( YY_CHAR* buf, int max_size ); virtual void LexerOutput( const YY_CHAR* buf, int size ); virtual void LexerError( const char* msg ); void yyunput( int c, YY_CHAR* buf_ptr ); int yyinput(); void yy_load_buffer_state(); void yy_init_buffer( struct yy_buffer_state* b, std::istream* s ); void yy_flush_buffer( struct yy_buffer_state* b ); int yy_start_stack_ptr; int yy_start_stack_depth; int* yy_start_stack; void yy_push_state( int new_state ); virtual void yy_pop_state(); int yy_top_state(); yy_state_type yy_get_previous_state(); yy_state_type yy_try_NUL_trans( yy_state_type current_state ); int yy_get_next_buffer(); std::istream* yyin; // input source for default LexerInput std::ostream* yyout; // output sink for default LexerOutput struct yy_buffer_state* yy_current_buffer; // yy_hold_char holds the character lost when yytext is formed. YY_CHAR yy_hold_char; // Number of characters read into yy_ch_buf. int yy_n_chars; // Points to current character in buffer. YY_CHAR* yy_c_buf_p; int yy_init; // whether we need to initialize int yy_start; // start state number // Flag which is used to allow yywrap()'s to do buffer switches // instead of setting up a fresh yyin. A bit of a hack ... int yy_did_buffer_switch_on_eof; // The following are not always needed, but may be depending // on use of certain flex features (like REJECT or yymore()). yy_state_type yy_last_accepting_state; YY_CHAR* yy_last_accepting_cpos; yy_state_type* yy_state_buf; yy_state_type* yy_state_ptr; YY_CHAR* yy_full_match; int* yy_full_state; int yy_full_lp; int yy_lp; int yy_looking_for_trail_begin; int yy_more_flag; int yy_more_len; int yy_more_offset; int yy_prev_more_offset; }; #endif XQilla-2.3.4/src/functions/0000755001725400016040000000000013273141207012516 500000000000000XQilla-2.3.4/src/functions/FunctionMinutesFromDuration.cpp0000644001725400016040000000537113273140037020634 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromDuration::minArgs = 1; const unsigned int FunctionMinutesFromDuration::maxArgs = 1; /* * fn:minutes-from-duration($arg as xs:duration?) as xs:integer? */ FunctionMinutesFromDuration::FunctionMinutesFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionMinutesFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.4/src/functions/FunctionMonthFromDate.cpp0000644001725400016040000000514613273140037017365 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthFromDate::minArgs = 1; const unsigned int FunctionMonthFromDate::maxArgs = 1; /* * fn:month-from-date($arg as xs:date?) as xs:integer? */ FunctionMonthFromDate::FunctionMonthFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMonthFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMonthFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.4/src/functions/FunctionReplace.cpp0000644001725400016040000001612113273140037016224 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionReplace::name[] = { chLatin_r, chLatin_e, chLatin_p, chLatin_l, chLatin_a, chLatin_c, chLatin_e, chNull }; const unsigned int FunctionReplace::minArgs = 3; const unsigned int FunctionReplace::maxArgs = 4; /** * fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string) as xs:string * fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string */ FunctionReplace::FunctionReplace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string", args, memMgr) { } ASTNode *FunctionReplace::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 3 args, and regexp should be a constant, //or there is a flags argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 3 || (getNumArgs() == 4 && _args[3]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 4) { Item::Ptr optsItem = getParamNumber(4, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionReplace::staticTypingImpl"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionReplace::staticTypingImpl", memMgr); } } return this; } Sequence FunctionReplace::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); const XMLCh* input = XMLUni::fgZeroLenString; Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.notNull()) input = inputString->asString(context); const XMLCh *replacement = getParamNumber(3,context)->next(context)->asString(context); const XMLCh *ptr; for(ptr = replacement; *ptr != chNull; ++ptr) { if(*ptr == chDollarSign) { ++ptr; //check that after the '$' is a digit if(!XMLString::isDigit(*ptr)) XQThrow(FunctionException, X("FunctionReplace::createSequence"), X("Invalid replacement pattern - '$' without following digit [err:FORX0004]")); } else if(*ptr == chBackSlash) { ++ptr; //check that after the '\' is a '$' or '\' if(*ptr != chDollarSign && *ptr != chBackSlash) { XQThrow(FunctionException, X("FunctionReplace::createSequence"), X("Invalid replacement pattern - '\\' without following '$' or '\\' [err:FORX0004]")); } } } if(regExp_) { try { AutoDeallocate result(replace(input, regExp_, replacement, memMgr), memMgr); return Sequence(context->getItemFactory()->createString(result.get(), context), memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } } //get here if regExp has not been compiled before const XMLCh *pattern = getParamNumber(2,context)->next(context)->asString(context); const XMLCh *options = XMLUni::fgZeroLenString; if(getNumArgs()>3) options=getParamNumber(4,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionReplace::createSequence"); // Now attempt to replace try { AutoDeallocate result(replace(input, pattern, replacement, options, memMgr), memMgr); return Sequence(context->getItemFactory()->createString(result.get(), context), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionReplace::createSequence", memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } // Never happens return Sequence(memMgr); } const XMLCh *FunctionReplace::replace(const XMLCh *input, const XMLCh *pattern, const XMLCh *replacement, const XMLCh *options, MemoryManager *mm) { // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); //Now attempt to replace RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), mm); #ifdef HAVE_ALLMATCHES return regEx.replace(input, replacement, mm); #else return regEx.replace(input, replacement); #endif } const XMLCh *FunctionReplace::replace(const XMLCh *input, const RegularExpression* regExp, const XMLCh *replacement, MemoryManager *mm) { #ifdef HAVE_ALLMATCHES return regExp->replace(input, replacement, mm); #else return regExp->replace(input, replacement); #endif } void FunctionReplace::processRuntimeException(RuntimeException &e, const char* sourceMsg) const { if(e.getCode()==XMLExcepts::Regex_RepPatMatchesZeroString) XQThrow(FunctionException, X(sourceMsg), X("The pattern matches the zero-length string [err:FORX0003]")); else if(e.getCode()==XMLExcepts::Regex_InvalidRepPattern) XQThrow(FunctionException, X(sourceMsg), X("Invalid replacement pattern [err:FORX0004]")); else XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } XQilla-2.3.4/src/functions/FunctionDateTime.cpp0000644001725400016040000000660113273140037016347 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionDateTime::name[] = { chLatin_d, chLatin_a, chLatin_t, chLatin_e, chLatin_T, chLatin_i, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionDateTime::minArgs = 2; const unsigned int FunctionDateTime::maxArgs = 2; /** * fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime? **/ FunctionDateTime::FunctionDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime?", args, memMgr) { } ASTNode *FunctionDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDateTime::createSequence(DynamicContext* context, int flags) const { ATDateOrDerived::Ptr date = (const ATDateOrDerived *)getParamNumber(1, context)->next(context).get(); if(date.isNull()) return Sequence(context->getMemoryManager()); ATTimeOrDerived::Ptr time = (const ATTimeOrDerived *)getParamNumber(2, context)->next(context).get(); if(time.isNull()) return Sequence(context->getMemoryManager()); Timezone::Ptr finalTZ; // determine the timezone of the result if(date->hasTimezone()) { finalTZ=date->getTimezone(); if(time->hasTimezone()) { const Timezone::Ptr timeTZ=time->getTimezone(); if(!timeTZ->equals(finalTZ)) XQThrow(FunctionException, X("FunctionDateTime::createSequence"), X("Both arguments to fn:dateTime have a timezone specified [err:FORG0008]")); } } else if(time->hasTimezone()) finalTZ=time->getTimezone(); Timezone::Ptr nulltz; date = date->setTimezone(nulltz, context); time = time->setTimezone(nulltz, context); // convert to a xs:dateTime string XMLBuffer buff(64, context->getMemoryManager()); buff.append(date->asString(context)); buff.append(chLatin_T); buff.append(time->asString(context)); if(finalTZ != NULLRCP) buff.append(finalTZ->asString(context)); return Sequence(context->getItemFactory()->createDateTime(buff.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionSignature.cpp0000644001725400016040000001454313273140037016620 00000000000000/* * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; FunctionSignature::FunctionSignature(XPath2MemoryManager *m) : updating(OP_DEFAULT), nondeterministic(OP_DEFAULT), privateOption(OP_DEFAULT), argSpecs(0), returnType(0), memMgr(m) { } FunctionSignature::FunctionSignature(ArgumentSpecs *a, SequenceType *r, XPath2MemoryManager *mm) : updating(OP_DEFAULT), nondeterministic(OP_DEFAULT), privateOption(OP_DEFAULT), argSpecs(a), returnType(r), memMgr(mm) { } FunctionSignature::FunctionSignature(const FunctionSignature *o, XPath2MemoryManager *mm) : updating(o->updating), nondeterministic(o->nondeterministic), privateOption(o->privateOption), argSpecs(0), returnType(o->returnType), memMgr(mm) { if(o->argSpecs) { argSpecs = new (mm) ArgumentSpecs(XQillaAllocator(mm)); ArgumentSpecs::const_iterator argIt = o->argSpecs->begin(); for(; argIt != o->argSpecs->end(); ++argIt) { argSpecs->push_back(new (mm) ArgumentSpec(*argIt, mm)); } } } FunctionSignature::FunctionSignature(const FunctionSignature *o, unsigned int skipArg, XPath2MemoryManager *mm) : updating(o->updating), nondeterministic(o->nondeterministic), privateOption(o->privateOption), argSpecs(0), returnType(o->returnType), memMgr(mm) { if(o->argSpecs) { argSpecs = new (mm) ArgumentSpecs(XQillaAllocator(mm)); unsigned int count = 0; ArgumentSpecs::const_iterator argIt = o->argSpecs->begin(); for(; argIt != o->argSpecs->end(); ++argIt, ++count) { if(count != skipArg) argSpecs->push_back(new (mm) ArgumentSpec(*argIt, mm)); } } } void FunctionSignature::release() { if(argSpecs) { ArgumentSpecs::iterator argIt = argSpecs->begin(); for(; argIt != argSpecs->end(); ++argIt) { (*argIt)->release(memMgr); } #if defined(_MSC_VER) && (_MSC_VER < 1300) argSpecs->~vector >(); #else argSpecs->~ArgumentSpecs(); #endif memMgr->deallocate(argSpecs); } memMgr->deallocate(this); } void FunctionSignature::staticResolution(StaticContext *context) { // Resolve the parameter names if(argSpecs) { ArgumentSpecs::iterator it; for(it = argSpecs->begin(); it != argSpecs->end (); ++it) { (*it)->staticResolution(context); } // check for duplicate parameters for(it = argSpecs->begin(); argSpecs->size() > 1 && it != argSpecs->end()-1; ++it) { for(ArgumentSpecs::iterator it2 = it+1; it2 != argSpecs->end (); ++it2) { if(XPath2Utils::equals((*it)->getURI(),(*it2)->getURI()) && XPath2Utils::equals((*it)->getName(),(*it2)->getName())) { XMLBuffer buf; buf.append(X("Two parameters have the same expanded QName '")); buf.append(X("{")); buf.append((*it)->getURI()); buf.append(X("}")); buf.append((*it)->getName()); buf.append(X("' [err:XQST0039]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), buf.getRawBuffer(), *it2); } } } } if(returnType) { returnType->staticResolution(context); } } void FunctionSignature::toBuffer(XMLBuffer &buffer, bool typeSyntax) const { buffer.append(X("function(")); if(argSpecs) { bool doneOne = false; for(ArgumentSpecs::const_iterator i = argSpecs->begin(); i != argSpecs->end(); ++i) { if(doneOne) buffer.append(X(", ")); doneOne = true; if(!typeSyntax) { buffer.append('$'); if((*i)->getQName()) { buffer.append((*i)->getQName()); } else { if((*i)->getURI()) { buffer.append('{'); buffer.append((*i)->getURI()); buffer.append('}'); } buffer.append((*i)->getName()); } buffer.append(X(" as ")); } (*i)->getType()->toBuffer(buffer); } } buffer.append(X(") as ")); if(returnType) returnType->toBuffer(buffer); else buffer.append(X("item()*")); } //////////////////////////////////////////////////////////////////////////////////////////////////// ArgumentSpec::ArgumentSpec(const XMLCh *qname, SequenceType *type, XPath2MemoryManager *memMgr) : qname_(memMgr->getPooledString(qname)), uri_(0), name_(0), used_(true), seqType_(type), src_(memMgr) { } ArgumentSpec::ArgumentSpec(const ArgumentSpec *o, XPath2MemoryManager *memMgr) : qname_(o->qname_), uri_(o->uri_), name_(o->name_), used_(o->used_), seqType_(o->seqType_), src_(memMgr) { } void ArgumentSpec::release(XPath2MemoryManager *mm) { src_.clear(); mm->deallocate(this); } void ArgumentSpec::staticResolution(StaticContext* context) { if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } seqType_->staticResolution(context); bool isPrimitive; seqType_->getStaticType(src_.getStaticType(), context, isPrimitive, seqType_); if(seqType_->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || seqType_->getOccurrenceIndicator() == SequenceType::QUESTION_MARK) { src_.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); } } XQilla-2.3.4/src/functions/FunctionExplain.cpp0000644001725400016040000000454213273140037016255 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionExplain::name[] = { chLatin_e, chLatin_x, chLatin_p, chLatin_l, chLatin_a, chLatin_i, chLatin_n, chNull }; const unsigned int FunctionExplain::minArgs = 1; const unsigned int FunctionExplain::maxArgs = 1; FunctionExplain::FunctionExplain(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($expression as item()*) as element()", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionExplain::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } Sequence FunctionExplain::createSequence(DynamicContext* context, int flags) const { AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); AutoDelete a2x(context->getConfiguration()->createASTToXML()); a2x->run(_args[0], handler, context); handler->endEvent(); return builder->getSequence(); } XQilla-2.3.4/src/functions/FunctionSin.cpp0000644001725400016040000000301113273140037015374 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionSin::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSin::minArgs = 1; const unsigned int FunctionSin::maxArgs = 1; /* * math:sin($arg as numeric?) as numeric? */ FunctionSin::FunctionSin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionSin::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->sin(context); } XQilla-2.3.4/src/functions/FunctionStaticBaseURI.cpp0000644001725400016040000000463413273140037017261 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionStaticBaseURI::name[] = { chLatin_s, chLatin_t, chLatin_a, chLatin_t, chLatin_i, chLatin_c, chDash, chLatin_b, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionStaticBaseURI::minArgs = 0; const unsigned int FunctionStaticBaseURI::maxArgs = 0; /** * fn:static-base-uri() as xs:anyURI? **/ FunctionStaticBaseURI::FunctionStaticBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:anyURI?", args, memMgr) { } ASTNode* FunctionStaticBaseURI::staticResolution(StaticContext *context) { XPath2MemoryManager* mm=context->getMemoryManager(); ASTNode* newBlock = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_ANYURI, context->getBaseURI() ? context->getBaseURI() : XMLUni::fgZeroLenString, AnyAtomicType::ANY_URI, mm); newBlock->setLocationInfo(this); return newBlock->staticResolution(context); } ASTNode *FunctionStaticBaseURI::staticTypingImpl(StaticContext *context) { // Should never happen return this; } Sequence FunctionStaticBaseURI::createSequence(DynamicContext* context, int flags) const { // Always constant folded return Sequence(context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionYearsFromDuration.cpp0000644001725400016040000000520013273140037020262 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearsFromDuration::minArgs = 1; const unsigned int FunctionYearsFromDuration::maxArgs = 1; /* * fn:years-from-duration($arg as xs:duration?) as xs:integer? */ FunctionYearsFromDuration::FunctionYearsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionYearsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.4/src/functions/FunctionYearFromDate.cpp0000644001725400016040000000506213273140037017175 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearFromDate::minArgs = 1; const unsigned int FunctionYearFromDate::maxArgs = 1; /* * fn:year-from-date($arg as xs:date?) as xs:integer? */ FunctionYearFromDate::FunctionYearFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionYearFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionYearFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.4/src/functions/FunctionExp.cpp0000644001725400016040000000301213273140037015400 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionExp::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionExp::minArgs = 1; const unsigned int FunctionExp::maxArgs = 1; /* * math:exp($arg as numeric?) as numeric? */ FunctionExp::FunctionExp(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionExp::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->exp(context); } XQilla-2.3.4/src/functions/FunctionString.cpp0000644001725400016040000000535313273140037016124 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionString::name[] = { chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionString::minArgs = 0; const unsigned int FunctionString::maxArgs = 1; /** * fn:string() as xs:string * fn:string($arg as item()?) as xs:string **/ FunctionString::FunctionString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()?) as xs:string", args, memMgr) { } ASTNode* FunctionString::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionString::createSequence(DynamicContext* context, int flags) const { return Sequence(string_item(getParamNumber(1, context)->next(context), context), context->getMemoryManager()); } Item::Ptr FunctionString::string_item(const Item::Ptr &item, DynamicContext *context) { return context->getItemFactory()->createString(string(item, context), context); } const XMLCh *FunctionString::string(const Item::Ptr &item, DynamicContext *context) { if(item.isNull()) { // Do nothing } else if(item->isNode()) { return ((Node*)item.get())->dmStringValue(context); } else if(item->isAtomicValue()) { return ((AnyAtomicType*)item.get())->asString(context); } return XMLUni::fgZeroLenString; } XQilla-2.3.4/src/functions/FunctionSqrt.cpp0000644001725400016040000000307513273140037015606 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionSqrt::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSqrt::minArgs = 1; const unsigned int FunctionSqrt::maxArgs = 1; /* * math:sqrt($arg as numeric?) as numeric? */ FunctionSqrt::FunctionSqrt(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionSqrt::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->sqrt(context); } XQilla-2.3.4/src/functions/FunctionEmpty.cpp0000644001725400016040000000523713273140037015755 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include const XMLCh FunctionEmpty::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionEmpty::minArgs = 1; const unsigned int FunctionEmpty::maxArgs = 1; /* * fn:empty($arg as item()*) as xs:boolean */ FunctionEmpty::FunctionEmpty(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:boolean", args, memMgr) { } ASTNode* FunctionEmpty::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionEmpty::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if((sType.getMin() > 0 || sType.getMax() == 0) && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); return XQLiteral::create(sType.getMax() == 0, mm, this); } } return this; } BoolResult FunctionEmpty::boolResult(DynamicContext* context) const { return getParamNumber(1,context)->next(context).isNull(); } Result FunctionEmpty::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/functions/FunctionLowerCase.cpp0000644001725400016040000000402613273140037016536 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionLowerCase::name[] = { chLatin_l, chLatin_o, chLatin_w, chLatin_e, chLatin_r, chDash, chLatin_c, chLatin_a, chLatin_s, chLatin_e, chNull }; const unsigned int FunctionLowerCase::minArgs = 1; const unsigned int FunctionLowerCase::maxArgs = 1; /* * fn:lower-case($arg as xs:string?) as xs:string */ FunctionLowerCase::FunctionLowerCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionLowerCase::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::lowerCase(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.4/src/functions/FunctionTail.cpp0000644001725400016040000000537613273140037015554 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionTail::name[] = { 't', 'a', 'i', 'l', 0 }; const unsigned int FunctionTail::minArgs = 1; const unsigned int FunctionTail::maxArgs = 1; /** * fn:tail($target as item()*) as item()* */ FunctionTail::FunctionTail(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($target as item()*) as item()*", args, memMgr) { } ASTNode *FunctionTail::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); unsigned int min = _src.getStaticType().getMin(); if(min > 0) --min; unsigned int max = _src.getStaticType().getMax(); if(max > 0 && max != StaticType::UNLIMITED) --max; _src.getStaticType().setCardinality(min, max); return this; } Result FunctionTail::createResult(DynamicContext* context, int flags) const { Result result = getParamNumber(1, context); result->skip(1, context); return result; } const XMLCh FunctionDrop::name[] = { 'd', 'r', 'o', 'p', 0 }; const unsigned int FunctionDrop::minArgs = 2; const unsigned int FunctionDrop::maxArgs = 2; /** * xqilla:drop($target as item()*, $count as xs:double) as item()* */ FunctionDrop::FunctionDrop(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($target as item()*, $count as xs:double) as item()*", args, memMgr) { } ASTNode *FunctionDrop::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(0, _src.getStaticType().getMax()); return this; } Result FunctionDrop::createResult(DynamicContext* context, int flags) const { Numeric::Ptr count = (Numeric*)getParamNumber(2, context)->next(context).get(); Result result = getParamNumber(1, context); result->skip(count->asInt(), context); return result; } XQilla-2.3.4/src/functions/FunctionCurrentDateTime.cpp0000644001725400016040000000467513273140037017723 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../utils/DateUtils.hpp" #include const XMLCh FunctionCurrentDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentDateTime::minArgs = 0; const unsigned int FunctionCurrentDateTime::maxArgs = 0; /** * fn:current-dateTime() as xs:dateTime **/ FunctionCurrentDateTime::FunctionCurrentDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:dateTime", args, memMgr) { } ASTNode *FunctionCurrentDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentDateTime::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentDateTime(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionMonthFromDateTime.cpp0000644001725400016040000000550513273140037020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthFromDateTime::minArgs = 1; const unsigned int FunctionMonthFromDateTime::maxArgs = 1; /* * fn:month-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionMonthFromDateTime::FunctionMonthFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMonthFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMonthFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.4/src/functions/FunctionTimezoneFromDateTime.cpp0000644001725400016040000000575713273140037020721 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionTimezoneFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromDateTime::minArgs = 1; const unsigned int FunctionTimezoneFromDateTime::maxArgs = 1; /* * fn:timezone-from-dateTime($arg as xs:dateTime?) as xs:dayTimeDuration? */ FunctionTimezoneFromDateTime::FunctionTimezoneFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(memMgr); } const ATDateTimeOrDerived * dateTime = (const ATDateTimeOrDerived *)arg.get(); // If $srcval does not contain a timezone, the result is the empty sequence if(dateTime->hasTimezone() == false) { return Sequence(memMgr); } return Sequence(dateTime->getTimezone()->asDayTimeDuration(context), memMgr); } XQilla-2.3.4/src/functions/FunctionTime.cpp0000644001725400016040000001102513273140037015545 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionTime::name[] = { chLatin_t, chLatin_i, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionTime::minArgs = 2; const unsigned int FunctionTime::maxArgs = 2; /** * xqilla:time($value as item()*, $label as xs:string) as item()* */ FunctionTime::FunctionTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($value as item()*, $label as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionTime::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); _src.add(_args[1]->getStaticAnalysis()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQFunction::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } _src.forceNoFolding(true); return this; } class Timer { public: Timer(const XMLCh *label, DynamicContext *context, const LocationInfo *location, bool startNow = true) : label_(label), context_(context), location_(location), startTime_(0), totalTime_(0) { if(startNow) start(); } ~Timer() { end(); if(context_->getMessageListener() != 0) { Sequence value(context_->getItemFactory()->createDayTimeDuration(((double)totalTime_) / 1000, context_), context_->getMemoryManager()); context_->getMessageListener()->trace(label_, value, location_, context_); } } void start() { if(startTime_ == 0) startTime_ = XMLPlatformUtils::getCurrentMillis(); } void end() { if(startTime_ != 0) totalTime_ += XMLPlatformUtils::getCurrentMillis() - startTime_; startTime_ = 0; } private: const XMLCh *label_; DynamicContext *context_; const LocationInfo *location_; unsigned long startTime_; unsigned long totalTime_; }; class TimerGuard { public: TimerGuard(Timer *timer) : timer_(timer) { timer_->start(); } ~TimerGuard() { timer_->end(); } private: Timer *timer_; }; class FunctionTimeResult : public ResultImpl { public: FunctionTimeResult(const FunctionTime *ast, DynamicContext *context) : ResultImpl(ast), timer_(new Timer(ast->getArguments()[1]->createResult(context)-> next(context)->asString(context), context, ast)), result_(0) { TimerGuard tGuard(timer_); result_ = ast->getArguments()[0]->createResult(context); } virtual Item::Ptr next(DynamicContext *context) { TimerGuard tGuard(timer_); return result_->next(context); } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } private: AutoDelete timer_; Result result_; }; Result FunctionTime::createResult(DynamicContext* context, int flags) const { return new FunctionTimeResult(this, context); } EventGenerator::Ptr FunctionTime::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Timer timer(getParamNumber(2, context)->next(context)->asString(context), context, this); _args[0]->generateAndTailCall(events, context, preserveNS, preserveType); return 0; } PendingUpdateList FunctionTime::createUpdateList(DynamicContext *context) const { Timer timer(getParamNumber(2, context)->next(context)->asString(context), context, this); return _args[0]->createUpdateList(context); } XQilla-2.3.4/src/functions/FunctionParseXML.cpp0000644001725400016040000000525713273140037016314 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionParseXML::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_x, chLatin_m, chLatin_l, chNull }; const unsigned int FunctionParseXML::minArgs = 1; const unsigned int FunctionParseXML::maxArgs = 1; /** * xqilla:parse-xml($xml as xs:string?) as document-node()? */ FunctionParseXML::FunctionParseXML(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($xml as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseXML::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, 1); _src.creative(true); return this; } Sequence FunctionParseXML::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); const XMLCh *xml = item->asString(context); MemBufInputSource src((XMLByte*)xml, XMLString::stringLen(xml) * sizeof(XMLCh), name); src.setEncoding(XMLUni::fgUTF16EncodingString); try { return Sequence(context->parseDocument(src, this, context->getProjection() ? queryPathTree_ : 0), context->getMemoryManager()); } catch(XMLParseException &e) { XQThrow(FunctionException, X("FunctionParseXML::createSequence"), e.getError()); } } XQilla-2.3.4/src/functions/EXSLTMathFunction.cpp0000644001725400016040000000253113273140037016362 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XERCES_CPP_NAMESPACE_USE /* http://exslt.org/math */ const XMLCh EXSLTMathFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_e, chLatin_x, chLatin_s, chLatin_l, chLatin_t, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chLatin_m, chLatin_a, chLatin_t, chLatin_h, chNull }; EXSLTMathFunction::EXSLTMathFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, signature, args, memMgr) { uri_ = XMLChFunctionURI; } XQilla-2.3.4/src/functions/FunctionCount.cpp0000644001725400016040000000566313273140037015752 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionCount::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCount::minArgs = 1; const unsigned int FunctionCount::maxArgs = 1; /** * fn:count($arg as item()*) as xs:integer **/ FunctionCount::FunctionCount(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:integer", args, memMgr) { } ASTNode* FunctionCount::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionCount::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if(sType.getMin() == sType.getMax() && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); try { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); return XQLiteral::create(mm->createInteger(sType.getMin()), dContext, mm, this); } catch(XQException &ex) { // Constant folding failed } } } return this; } Sequence FunctionCount::createSequence(DynamicContext* context, int flags) const { Result arg = getParamNumber(1,context); long length = 0; while(arg->next(context).notNull()) { ++length; } return Sequence(context->getItemFactory()->createInteger(length, context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionLocalname.cpp0000644001725400016040000000504113273140037016543 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLocalname::name[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chDash, chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionLocalname::minArgs = 0; const unsigned int FunctionLocalname::maxArgs = 1; /** * fn:local-name() as xs:string * fn:local-name($arg as node()?) as xs:string **/ FunctionLocalname::FunctionLocalname(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:string", args, memMgr) { } ASTNode* FunctionLocalname::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionLocalname::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr ctxNode = (Node*)getParamNumber(1, context)->next(context).get(); if(ctxNode.notNull()) { ATQNameOrDerived::Ptr name = ctxNode->dmNodeName(context); if(name.notNull()) return Sequence(context->getItemFactory()->createString(((const ATQNameOrDerived*)name.get())->getName(), context), memMgr); } return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } XQilla-2.3.4/src/functions/FunctionNot.cpp0000644001725400016040000000401313273140037015406 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionNot::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNot::minArgs = 1; const unsigned int FunctionNot::maxArgs = 1; /** * fn:not($arg as item()*) as xs:boolean **/ FunctionNot::FunctionNot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:boolean", args, memMgr) { } ASTNode* FunctionNot::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _args[0] = new (mm) XQEffectiveBooleanValue(_args[0], mm); _args[0]->setLocationInfo(this); resolveArguments(context); return this; } BoolResult FunctionNot::boolResult(DynamicContext* context) const { return !_args[0]->boolResult(context); } Result FunctionNot::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/functions/FunctionName.cpp0000644001725400016040000000453113273140037015533 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionName::name[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionName::minArgs = 0; const unsigned int FunctionName::maxArgs = 1; /** * fn:name() as xs:string * fn:name($arg as node()?) as xs:string **/ FunctionName::FunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:string", args, memMgr) { } ASTNode* FunctionName::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionName::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* mm = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1,context)->next(context); if(arg.isNull()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); return Sequence(FunctionString::string_item(((Node*)arg.get())->dmNodeName(context), context), mm); } XQilla-2.3.4/src/functions/FunctionId.cpp0000644001725400016040000001076513273140037015215 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionId::name[] = { chLatin_i, chLatin_d, chNull }; const unsigned int FunctionId::minArgs = 1; const unsigned int FunctionId::maxArgs = 2; /** * fn:id($arg as xs:string*) as element()* * fn:id($arg as xs:string*, $node as node()) as element()* **/ FunctionId::FunctionId(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string*, $node as node()) as element()*", args, memMgr) { } ASTNode* FunctionId::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionId::createSequence(DynamicContext* context, int flags) const { Node::Ptr root = ((Node*)getParamNumber(2, context)->next(context).get())->root(context); if(root->dmNodeKind() != Node::document_string) { XQThrow(FunctionException,X("FunctionId::createSequence"), X("Current context doesn't belong to a document [err:FODC0001]")); } Sequence strings = getParamNumber(1, context)->toSequence(context); if(strings.isEmpty()) return Sequence(context->getMemoryManager()); std::vector values; //get the list of id values we're looking for by iterating over each string in the sequence for (Sequence::iterator stringIt = strings.begin(); stringIt != strings.end(); ++stringIt) { const XMLCh *str = (*stringIt)->asString(context); std::vector idList = XPath2Utils::getVal(str, context->getMemoryManager()); //for each list obtained from a string check that each id is unique to the full list and if so add it for (std::vector::iterator listIt=idList.begin(); listIt!=idList.end(); ++listIt) { if (!XPath2Utils::containsString(values, *listIt)) values.push_back(*listIt); } } Sequence result(context->getMemoryManager()); std::vector returnedVals; std::vector resultStack; resultStack.push_back(root->dmChildren(context, this)); Node::Ptr child = resultStack.back()->next(context); while(child.notNull()) { if(child->dmNodeKind() == Node::element_string) { bool added = false; if(child->dmIsId(context)->isTrue()) { // child is of type xs:ID const XMLCh* id = child->dmStringValue(context); if(XPath2Utils::containsString(values, id) && !XPath2Utils::containsString(returnedVals, id)) { returnedVals.push_back(id); result.addItem(child); added = true; } } if(!added) { Result attrs = child->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { if(att->dmIsId(context)->isTrue()) { // att is of type xs:ID const XMLCh* id = att->dmStringValue(context); if(XPath2Utils::containsString(values, id) && !XPath2Utils::containsString(returnedVals, id)) { returnedVals.push_back(id); result.addItem(child); break; } } } } } resultStack.push_back(child->dmChildren(context, this)); while(!resultStack.empty() && (child = resultStack.back()->next(context)).isNull()) { resultStack.pop_back(); } } return result; } XQilla-2.3.4/src/functions/FunctionUpperCase.cpp0000644001725400016040000000400613273140037016537 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionUpperCase::name[] = { chLatin_u, chLatin_p, chLatin_p, chLatin_e, chLatin_r, chDash, chLatin_c, chLatin_a, chLatin_s, chLatin_e, chNull }; const unsigned int FunctionUpperCase::minArgs = 1; const unsigned int FunctionUpperCase::maxArgs = 1; /* * fn:upper-case($arg as xs:string?) as xs:string */ FunctionUpperCase::FunctionUpperCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionUpperCase::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::upperCase(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.4/src/functions/FunctionDayFromDateTime.cpp0000644001725400016040000000533213273140037017631 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDayFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDayFromDateTime::minArgs = 1; const unsigned int FunctionDayFromDateTime::maxArgs = 1; /* * fn:day-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionDayFromDateTime::FunctionDayFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionDayFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDayFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.4/src/functions/FunctionHoursFromDuration.cpp0000644001725400016040000000521513273140037020305 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromDuration::minArgs = 1; const unsigned int FunctionHoursFromDuration::maxArgs = 1; /* * fn:hours-from-duration($arg as xs:duration?) as xs:integer? */ FunctionHoursFromDuration::FunctionHoursFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionHoursFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.4/src/functions/FunctionYearFromDateTime.cpp0000644001725400016040000000542413273140037020016 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearFromDateTime::minArgs = 1; const unsigned int FunctionYearFromDateTime::maxArgs = 1; /* * fn:year-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionYearFromDateTime::FunctionYearFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionYearFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionYearFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.4/src/functions/FunctionFloor.cpp0000644001725400016040000000374013273140037015735 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionFloor::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionFloor::minArgs = 1; const unsigned int FunctionFloor::maxArgs = 1; /* * fn:floor($arg as numeric?) as numeric? */ FunctionFloor::FunctionFloor(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionFloor::createSequence(DynamicContext* context, int flags) const { Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(context->getMemoryManager()); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, context->getMemoryManager()); return Sequence(numericArg->floor(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionTimezoneFromTime.cpp0000644001725400016040000000556213273140037020115 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTimezoneFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromTime::minArgs = 1; const unsigned int FunctionTimezoneFromTime::maxArgs = 1; /* * fn:timezone-from-time($arg as xs:time?) as xs:dayTimeDuration? */ FunctionTimezoneFromTime::FunctionTimezoneFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) { return Sequence(memMgr); } const ATTimeOrDerived* time = (const ATTimeOrDerived*)(const Item*)arg.first(); // If $srcval does not contain a timezone, the result is the empty sequence if (time->hasTimezone() == false) { return Sequence(memMgr); } const Timezone::Ptr timezone = time->getTimezone(); return Sequence( (const Item::Ptr )timezone->asDayTimeDuration(context), memMgr ); } XQilla-2.3.4/src/functions/FunctionPosition.cpp0000644001725400016040000000452113273140037016456 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionPosition::name[] = { chLatin_p, chLatin_o, chLatin_s, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionPosition::minArgs = 0; const unsigned int FunctionPosition::maxArgs = 0; /** * fn:position() as xs:integer */ FunctionPosition::FunctionPosition(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:integer", args, memMgr) { } ASTNode *FunctionPosition::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.contextPositionUsed(true); calculateSRCForArguments(context); return this; } Result FunctionPosition::createResult(DynamicContext* context, int flags) const { if(context->getContextItem().isNull()) XQThrow(DynamicErrorException,X("FunctionPosition::createSequence"), X("Undefined context item in fn:position [err:XPDY0002]")); return (Item::Ptr)context->getItemFactory()->createInteger((long)context->getContextPosition(), context); } XQilla-2.3.4/src/functions/FunctionDocument.cpp0000644001725400016040000000653013273140037016432 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDocument::name[] = { chLatin_d, chLatin_o, chLatin_c, chLatin_u, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chNull }; const unsigned int FunctionDocument::minArgs = 1; const unsigned int FunctionDocument::maxArgs = 2; /** * document($uri-sequence as item()*) as node()* * document($uri-sequence as item()*, $base-node as node()) as node()* **/ FunctionDocument::FunctionDocument(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri-sequence as item()*, $base-node as node()) as node()*", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionDocument::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); // TBD Change if we support fragment identifiers - jpcs _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, StaticType::UNLIMITED); _src.availableDocumentsUsed(true); return this; } Sequence FunctionDocument::createSequence(DynamicContext* context, int flags) const { const XMLCh *baseURI; if(getNumArgs() == 2) { baseURI = ((Node*)getParamNumber(2, context)->next(context).get())->dmBaseURI(context).first()->asString(context); } else { baseURI = context->getBaseURI(); } Sequence result(context->getMemoryManager()); Result args = getParamNumber(1, context); Item::Ptr uriArg; while((uriArg = args->next(context)).notNull()) { const XMLCh *uri = uriArg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionDocument::createSequence"), X("Invalid argument to fn:document function [err:FODC0005]")); try { XMLUri base(baseURI); XMLUri full(&base, uri); uri = context->getMemoryManager()->getPooledString(full.getUriText()); } catch(MalformedURLException &e){ XQThrow(FunctionException, X("FunctionDocument::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } result.joinSequence(context->resolveDocument(uri, this, context->getProjection() ? queryPathTree_ : 0)); } return result; } XQilla-2.3.4/src/functions/FunctionHoursFromDateTime.cpp0000644001725400016040000000550413273140037020215 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromDateTime::minArgs = 1; const unsigned int FunctionHoursFromDateTime::maxArgs = 1; /* * fn:hours-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionHoursFromDateTime::FunctionHoursFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionHoursFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionHoursFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.4/src/functions/FnModule.xq0000644001725400016040000006712313273140037014532 00000000000000(: : Copyright (c) 2004-2009 : Oracle. All rights reserved. : : Licensed under the Apache License, Version 2.0 (the "License"); : you may not use this file except in compliance with the License. : You may obtain a copy of the License at : : http://www.apache.org/licenses/LICENSE-2.0 : : Unless required by applicable law or agreed to in writing, software : distributed under the License is distributed on an "AS IS" BASIS, : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. : See the License for the specific language governing permissions and : limitations under the License. :) module namespace fn = "http://www.w3.org/2005/xpath-functions"; declare function data($a as item()*) as xs:anyAtomicType* { $a }; (:----------------------------------------------------------------------------------------------------:) (: String functions :) declare function string-join($seq as xs:string*) as xs:string { string-join($seq, "") }; declare function string-join($seq as xs:string*, $join as xs:string) as xs:string { if(empty($seq)) then "" else string-join-helper($seq, $join) }; declare private function string-join-helper($seq as xs:string*, $join as xs:string) as xs:string { if(empty(tail($seq))) then head($seq) else concat(head($seq), $join, string-join-helper(tail($seq), $join)) }; declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string { substring-before($arg1, $arg2, default-collation()) }; declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string { let $arg1 := if(empty($arg1)) then "" else $arg1 let $arg2 := if(empty($arg2)) then "" else $arg2 let $arg2len := string-length($arg2) return substring($arg1, 1, string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) - 1) }; declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string { substring-after($arg1, $arg2, default-collation()) }; declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string { let $arg1 := if(empty($arg1)) then "" else $arg1 let $arg2 := if(empty($arg2)) then "" else $arg2 let $arg2len := string-length($arg2) let $index := string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) return if($index eq 0) then "" else substring($arg1, $index + $arg2len) }; declare private function string-index-of($str as xs:string, $index as xs:decimal, $endindex as xs:decimal, $tofind as xs:string, $tofindlen as xs:decimal, $collation as xs:string) as xs:decimal { if($index gt $endindex) then 0 else if(compare($tofind, substring($str, $index, $tofindlen), $collation) eq 0) then $index else string-index-of($str, $index + 1, $endindex, $tofind, $tofindlen, $collation) }; declare function codepoint-equal($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean? { compare($arg1, $arg2, "http://www.w3.org/2005/xpath-functions/collation/codepoint") eq 0 }; declare function translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string { codepoints-to-string( let $in := string-to-codepoints($arg) let $map := string-to-codepoints($mapString) let $trans := string-to-codepoints($transString) for $c in $in let $index := head(index-of($map, $c)) return if(empty($index)) then $c else $trans[$index] ) }; declare private function codepoint-in-utf8($c as xs:integer) as xs:integer+ { if($c < 128) then $c else if($c < 2048) then ( ($c idiv 64) + 192, ($c mod 64) + 128 ) else if($c < 65536) then ( ($c idiv 4096) + 224, (($c idiv 64) mod 64) + 128, ($c mod 64) + 128 ) else ( ($c idiv 262144) + 240, (($c idiv 4096) mod 64) + 128, (($c idiv 64) mod 64) + 128, ($c mod 64) + 128 ) }; declare private function percent-encode($c as xs:integer) as xs:integer+ { (: Codepoint for "%" :) let $percent := 37 (: Codepoints for "0" - "9", "A" - "F" :) let $hex := (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70) for $byte in codepoint-in-utf8($c) return ( $percent, $hex[($byte idiv 16) + 1], $hex[($byte mod 16) + 1] ) }; declare function encode-for-uri($uri-part as xs:string?) as xs:string { codepoints-to-string( let $A := string-to-codepoints("A") let $Z := string-to-codepoints("Z") let $a := string-to-codepoints("a") let $z := string-to-codepoints("z") let $d0 := string-to-codepoints("0") let $d9 := string-to-codepoints("9") let $hyphen := string-to-codepoints("-") let $underscore := string-to-codepoints("_") let $fullstop := string-to-codepoints(".") let $tilde := string-to-codepoints("~") for $c in string-to-codepoints($uri-part) return if(($c ge $A and $c le $Z) or ($c ge $a and $c le $z) or ($c ge $d0 and $c le $d9) or $c eq $hyphen or $c eq $underscore or $c eq $fullstop or $c eq $tilde) then $c else percent-encode($c) ) }; declare function iri-to-uri($iri as xs:string?) as xs:string { codepoints-to-string( let $leftangle := string-to-codepoints("<") let $rightangle := string-to-codepoints(">") let $doublequote := string-to-codepoints('"') let $space := string-to-codepoints(" ") let $leftcurly := string-to-codepoints("{") let $rightcurly := string-to-codepoints("}") let $bar := string-to-codepoints("|") let $backslash := 92 let $hat := string-to-codepoints("^") let $backtick := string-to-codepoints("`") for $c in string-to-codepoints($iri) return if($c lt 32 or $c gt 126 or $c eq $leftangle or $c eq $rightangle or $c eq $doublequote or $c eq $space or $c eq $leftcurly or $c eq $rightcurly or $c eq $bar or $c eq $backslash or $c eq $hat or $c eq $backtick) then percent-encode($c) else $c ) }; declare function escape-html-uri($iri as xs:string?) as xs:string { codepoints-to-string( for $c in string-to-codepoints($iri) return if($c lt 32 or $c gt 126) then percent-encode($c) else $c ) }; (:----------------------------------------------------------------------------------------------------:) (: QName functions :) declare function resolve-QName($qname as xs:string?, $element as element()) as xs:QName? { typeswitch($qname) case $qname as xs:string return let $mock := QName("dummy", $qname) let $uri := namespace-uri-for-prefix(prefix-from-QName($mock), $element) return if(empty(prefix-from-QName($mock)) or exists($uri)) then QName($uri, $qname) else error(xs:QName("err:FONS0004"), concat("No namespace found for prefix: """, prefix-from-QName($mock), """")) default return () }; declare function namespace-uri-for-prefix($prefix as xs:string?, $element as element()) as xs:anyURI? { let $prefix := if(empty($prefix)) then "" else $prefix return $element/namespace::*[name() eq $prefix]/xs:anyURI(.) }; declare function in-scope-prefixes($element as element()) as xs:string* { $element/namespace::*/name() }; (:----------------------------------------------------------------------------------------------------:) (: Boolean functions :) declare function true() as xs:boolean { xs:boolean("1") }; declare function false() as xs:boolean { xs:boolean("0") }; declare function boolean($arg as item()*) as xs:boolean { $arg and true() }; declare function exists($arg as item()*) as xs:boolean { not(empty($arg)) }; (:----------------------------------------------------------------------------------------------------:) (: Sequence functions :) declare function zero-or-one($arg as item()*) as item()? { typeswitch($arg) case $arg_ as item()? return $arg_ default return error(xs:QName("err:FORG0003"), "Sequence contains more then one item") }; declare function one-or-more($arg as item()*) as item()+ { typeswitch($arg) case $arg_ as item()+ return $arg_ default return error(xs:QName("err:FORG0004"), "Sequence is empty") }; declare function exactly-one($arg as item()*) as item() { typeswitch($arg) case $arg_ as item() return $arg_ case empty-sequence() return error(xs:QName("err:FORG0005"), "Sequence is empty") default return error(xs:QName("err:FORG0005"), "Sequence contains more then one item") }; declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType) as xs:integer* { (: Check for NaN :) if($search ne $search) then () else index-of-helper($seq, $search, default-collation()) }; declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType, $collation as xs:string) as xs:integer* { (: Check for NaN :) if($search ne $search) then () else index-of-helper($seq, $search, $collation) }; declare private function index-of-helper($seq as xs:anyAtomicType*, $search as xs:anyAtomicType, $collation as xs:string) as xs:integer* { for $s at $p in $seq where empty(tail(distinct-values(($s, $search), $collation))) return $p }; declare function insert-before($target as item()*, $position as xs:integer, $inserts as item()*) as item()* { if($position le 1 or empty($inserts)) then ($inserts, $target) else (head($target), insert-before(tail($target), $position - 1, $inserts)) }; declare function remove($target as item()*, $position as xs:integer) as item()* { $target[position() ne $position] }; declare function reverse($seq as item()*) as item()* { if(empty($seq)) then () else (reverse(tail($seq)), head($seq)) }; declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()* { let $s := round($startingLoc) return if($s < 1) then $sourceSeq else xqilla:drop($sourceSeq, $s - 1) }; declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double, $length as xs:double) as item()* { let $s := round($startingLoc) return if($s < 1) then take($sourceSeq, round($length) + $s - 1) else take(xqilla:drop($sourceSeq, $s - 1), round($length)) }; declare private function take($seq as item()*, $num as xs:double) as item()* { if($num le 0 or empty($seq)) then () else (head($seq), take(tail($seq), $num - 1)) }; declare function deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean { deep-equal($parameter1, $parameter2, default-collation()) }; declare function deep-equal($p1 as item()*, $p2 as item()*, $collation as xs:string) as xs:boolean { if(empty($p1)) then empty($p2) else if(empty($p2)) then false() else let $i1 := head($p1), $i2 := head($p2) return typeswitch($i1) case $a1 as xs:anyAtomicType return typeswitch($i2) case $a2 as xs:anyAtomicType return empty(tail(distinct-values(($a1, $a2), $collation))) and deep-equal(tail($p1), tail($p2), $collation) case node() return false() default return deep-equal-error() case $n1 as node() return ( typeswitch($i2) case xs:anyAtomicType return false() case $n2 as node() return ( deep-equal-nodes($n1, $n2, $collation) and deep-equal(tail($p1), tail($p2), $collation) ) default return deep-equal-error() ) default return deep-equal-error() }; declare private function deep-equal-error() { error(xs:QName("err:FOTY0015"), "An argument to fn:deep-equal() contains a function item") }; declare private function deep-equal-nodes($p1 as node()*, $p2 as node()*, $collation as xs:string) as xs:boolean { if(empty($p1)) then empty($p2) else if(empty($p2)) then false() else let $i1 := head($p1), $i2 := head($p2) return typeswitch($i1) case document-node() return typeswitch($i2) case document-node() return deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case text() return typeswitch($i2) case text() return empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case comment() return typeswitch($i2) case comment() return empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case processing-instruction() return typeswitch($i2) case processing-instruction() return node-name($i1) eq node-name($i2) and empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case attribute() return typeswitch($i2) case attribute() return node-name($i1) eq node-name($i2) and deep-equal(data($i1), data($i2), $collation) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case element() return typeswitch($i2) case element() return ( node-name($i1) eq node-name($i2) and count($i1/@*) eq count($i2/@*) and (every $a1 in $i1/@* satisfies some $a2 in $i2/@* satisfies deep-equal-nodes($a1, $a2, $collation)) and (if(empty($i1/*) and empty($i2/*)) then deep-equal(data($i1), data($i2), $collation) else deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation)) and deep-equal-nodes(tail($p1), tail($p2), $collation) ) default return false() default (: namespace-node() :) return typeswitch($i2) case namespace-node() return deep-equal(node-name($i1), node-name($i2), $collation) and codepoint-equal($i1, $i2) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() }; (:----------------------------------------------------------------------------------------------------:) (: Aggregate functions :) declare function avg($arg as xs:anyAtomicType*) as xs:anyAtomicType? { sum($arg, ()) div count($arg) }; declare function sum($arg as xs:anyAtomicType*) as xs:anyAtomicType { sum($arg, 0) }; declare function sum($arg as xs:anyAtomicType*, $zero as xs:anyAtomicType?) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return $zero case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head)) case $head as xs:double | xs:float | xs:decimal return if($head ne $head) then $head else numeric-sum(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function numeric-sum($arg as xs:anyAtomicType*, $result as xs:anyAtomicType) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head) + $result) case $head as xs:double | xs:float | xs:decimal return if($head ne $head) then $head else numeric-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function yearMonthDuration-sum($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function dayTimeDuration-sum($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare function max($arg as xs:anyAtomicType*) as xs:anyAtomicType? { max($arg, default-collation()) }; declare function max($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return () case $head as xs:untypedAtomic | xs:double return double-max(tail($arg), xs:double($head)) case $head as xs:float return float-max(tail($arg), $head) case $head as xs:decimal return decimal-max(tail($arg), $head) case $head as xs:anyURI | xs:string return string-max(tail($arg), xs:string($head), $collation) case $head as xs:boolean return boolean-max(tail($arg), $head) case $head as xs:date return date-max(tail($arg), $head) case $head as xs:time return time-max(tail($arg), $head) case $head as xs:dateTime return dateTime-max(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function double-max($arg as xs:anyAtomicType*, $result as xs:double) as xs:double { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return let $head := xs:double($head) return double-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function float-max($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result)) case $head as xs:float | xs:decimal return let $head := xs:float($head) return float-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function decimal-max($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result)) case $head as xs:float return float-max($arg, xs:float($result)) case $head as xs:decimal return decimal-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function string-max($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:string | xs:anyURI return string-max(tail($arg), if(compare($head, $result, $collation) gt 0) then xs:string($head) else $result, $collation) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function boolean-max($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:boolean return boolean-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function date-max($arg as xs:anyAtomicType*, $result as xs:date) as xs:date { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:date return date-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function time-max($arg as xs:anyAtomicType*, $result as xs:time) as xs:time { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:time return time-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function dateTime-max($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dateTime return dateTime-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function yearMonthDuration-max($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function dayTimeDuration-max($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare function min($arg as xs:anyAtomicType*) as xs:anyAtomicType? { min($arg, default-collation()) }; declare function min($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return () case $head as xs:untypedAtomic | xs:double return double-min(tail($arg), xs:double($head)) case $head as xs:float return float-min(tail($arg), $head) case $head as xs:decimal return decimal-min(tail($arg), $head) case $head as xs:anyURI | xs:string return string-min(tail($arg), xs:string($head), $collation) case $head as xs:boolean return boolean-min(tail($arg), $head) case $head as xs:date return date-min(tail($arg), $head) case $head as xs:time return time-min(tail($arg), $head) case $head as xs:dateTime return dateTime-min(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function double-min($arg as xs:anyAtomicType*, $result as xs:double) as xs:double { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return let $head := xs:double($head) return double-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function float-min($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result)) case $head as xs:float | xs:decimal return let $head := xs:float($head) return float-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function decimal-min($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result)) case $head as xs:float return float-min($arg, xs:float($result)) case $head as xs:decimal return decimal-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function string-min($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:string | xs:anyURI return string-min(tail($arg), if(compare($head, $result, $collation) lt 0) then xs:string($head) else $result, $collation) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function boolean-min($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:boolean return boolean-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function date-min($arg as xs:anyAtomicType*, $result as xs:date) as xs:date { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:date return date-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function time-min($arg as xs:anyAtomicType*, $result as xs:time) as xs:time { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:time return time-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function dateTime-min($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dateTime return dateTime-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function yearMonthDuration-min($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function dayTimeDuration-min($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; (:----------------------------------------------------------------------------------------------------:) (: XQuery 1.1 functions :) (: TBD These should probably only be imported if we're parsing XQuery 1.1 - jpcs :) declare function map($f as function(item()) as item()*, $seq as item()*) as item()* { if(empty($seq)) then () else ($f(head($seq)), map($f, tail($seq))) }; declare function filter($f as function(item()) as xs:boolean, $seq as item()*) as item()* { if(empty($seq)) then () else ( if($f(head($seq))) then head($seq) else (), filter($f, tail($seq)) ) }; declare function fold-left($f as function(item()*, item()) as item()*, $zero as item()*, $seq as item()*) as item()* { if(empty($seq)) then $zero else fold-left($f, $f($zero, head($seq)), tail($seq)) }; declare function fold-right($f as function(item(), item()*) as item()*, $zero as item()*, $seq as item()*) as item()* { if(empty($seq)) then $zero else $f(head($seq), fold-right($f, $zero, tail($seq))) }; declare function map-pairs($f as function(item(), item()) as item()*, $seq1 as item()*, $seq2 as item()*) as item()* { if(empty($seq1) or empty($seq2)) then () else ( $f(head($seq1), head($seq2)), map-pairs($f, tail($seq1), tail($seq2)) ) }; XQilla-2.3.4/src/functions/FunctionTrace.cpp0000644001725400016040000000452013273140037015707 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTrace::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTrace::minArgs = 2; const unsigned int FunctionTrace::maxArgs = 2; /* * fn:trace($value as item()*, $label as xs:string) as item()* */ FunctionTrace::FunctionTrace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($value as item()*, $label as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionTrace::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); _src.setProperties(_args.front()->getStaticAnalysis().getProperties()); _src.forceNoFolding(true); return this; } Sequence FunctionTrace::createSequence(DynamicContext* context, int flags) const { Sequence value = getParamNumber(1, context)->toSequence(context); if(context->getMessageListener() != 0) { context->getMessageListener()->trace(getParamNumber(2, context)->next(context)->asString(context), value, this, context); } return value; } XQilla-2.3.4/src/functions/FunctionNormalizeUnicode.cpp0000644001725400016040000001227613273140037020127 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionNormalizeUnicode::name[] = { chLatin_n, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_u, chLatin_n, chLatin_i, chLatin_c, chLatin_o, chLatin_d, chLatin_e, chNull }; const unsigned int FunctionNormalizeUnicode::minArgs = 1; const unsigned int FunctionNormalizeUnicode::maxArgs = 2; /** * fn:normalize-unicode($arg as xs:string?) as xs:string * fn:normalize-unicode($arg as xs:string?, $normalizationForm as xs:string) as xs:string **/ FunctionNormalizeUnicode::FunctionNormalizeUnicode(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?, $normalizationForm as xs:string) as xs:string", args, memMgr) { } Sequence FunctionNormalizeUnicode::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence strParm=getParamNumber(1,context)->toSequence(context); if(strParm.isEmpty()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } const XMLCh *str = strParm.first()->asString(context); static const XMLCh fg_NFC[] = { chLatin_N, chLatin_F, chLatin_C, chNull }; static const XMLCh fg_NFD[] = { chLatin_N, chLatin_F, chLatin_D, chNull }; static const XMLCh fg_NFKC[] = { chLatin_N, chLatin_F, chLatin_K, chLatin_C, chNull }; static const XMLCh fg_NFKD[] = { chLatin_N, chLatin_F, chLatin_K, chLatin_D, chNull }; static const XMLCh fg_fully[] = { chLatin_F, chLatin_U, chLatin_L, chLatin_L, chLatin_Y, chDash, chLatin_N, chLatin_O, chLatin_R, chLatin_M, chLatin_A, chLatin_L, chLatin_I, chLatin_Z, chLatin_E, chLatin_D, chNull }; const XMLCh* normalization = fg_NFC; if(getNumArgs()==2) { Sequence normParam=getParamNumber(2,context)->toSequence(context); const XMLCh *src = normParam.first()->asString(context); normalization = XPath2Utils::toUpper(src, memMgr); if (XMLString::stringLen(normalization) > 0) { unsigned int i; // remove leading spaces for(i = 0; i < XMLString::stringLen(normalization); i++) { XMLCh ch = normalization[i]; if((ch != 0x9) && (ch != 0xA) && (ch != 0xD) && (ch != 0x20)) break; } const XMLCh *frontChop = XPath2Utils::subString(normalization, i, XPath2Utils::uintStrlen(normalization)-i, memMgr); // remove trailing spaces for(i = XPath2Utils::uintStrlen(frontChop)-1; i !=0 ; i--) { XMLCh ch = frontChop[i]; if((ch != 0x9) && (ch != 0xA) && (ch != 0xD) && (ch != 0x20)) break; } normalization = XPath2Utils::subString(frontChop, 0, i+1, memMgr); } } if(XMLString::stringLen(normalization) == 0) { return Sequence(context->getItemFactory()->createString(str, context), memMgr); } else { AutoDeallocate buf(0, memMgr); if(XPath2Utils::equals(normalization, fg_NFC)) { buf.set(UnicodeTransformer::normalizeC(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFD)) { buf.set(UnicodeTransformer::normalizeD(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFKC)) { buf.set(UnicodeTransformer::normalizeKC(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFKD)) { buf.set(UnicodeTransformer::normalizeKD(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_fully)) { XQThrow(FunctionException, X("FunctionNormalizeUnicode::createSequence"), X("Unsupported normalization form [err:FOCH0003].")); } else { XQThrow(FunctionException, X("FunctionNormalizeUnicode::createSequence"), X("Invalid normalization form [err:FOCH0003].")); } return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } // Never reached return Sequence(memMgr); } XQilla-2.3.4/src/functions/FunctionNilled.cpp0000644001725400016040000000405113273140037016057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionNilled::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNilled::minArgs = 1; const unsigned int FunctionNilled::maxArgs = 1; /* * fn:nilled($arg as node()?) as boolean? */ FunctionNilled::FunctionNilled(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:boolean?", args, memMgr) { } Sequence FunctionNilled::createSequence(DynamicContext* context, int flags) const { Sequence arg = getParamNumber(1, context)->toSequence(context); // If the argument is the empty sequence, returns the empty sequence if(arg.isEmpty()) return Sequence(context->getMemoryManager()); Node::Ptr node=(Node::Ptr)arg.first(); return Sequence(node->dmNilled(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/XQUserFunction.cpp0000644001725400016040000007106613273140037016051 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; /* http://www.w3.org/2005/xquery-local-functions */ const XMLCh XQUserFunction::XMLChXQueryLocalFunctionsURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chDigit_2, chDigit_0, chDigit_0, chDigit_5, chForwardSlash, chLatin_x, chLatin_q, chLatin_u, chLatin_e, chLatin_r, chLatin_y, chDash, chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chDash, chLatin_f, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQUserFunction::XQUserFunction(const XMLCh *qname, FunctionSignature *signature, ASTNode *body, bool isGlobal, XPath2MemoryManager *mm) : FuncFactory(signature->argSpecs == 0 ? 0 : signature->argSpecs->size(), mm), body_(body), exFunc_(NULL), qname_(qname), pattern_(0), templateInstance_(0), modes_(0), signature_(signature), isGlobal_(isGlobal), isTemplate_(false), memMgr_(mm), src_(mm), staticTyped_(BEFORE), recursive_(false), delayed_(false), moduleDocCache_(NULL) { } XQUserFunction::XQUserFunction(const XMLCh *qname, VectorOfASTNodes *pattern, FunctionSignature *signature, ASTNode *body, XPath2MemoryManager *mm) : FuncFactory(signature->argSpecs == 0 ? 0 : signature->argSpecs->size(), mm), body_(body), exFunc_(NULL), qname_(qname), pattern_(pattern), templateInstance_(0), modes_(0), signature_(signature), isGlobal_(true), isTemplate_(true), memMgr_(mm), src_(mm), staticTyped_(BEFORE), recursive_(false), delayed_(false), moduleDocCache_(NULL) { } XQUserFunction::XQUserFunction(const XQUserFunction *o, XPath2MemoryManager *mm) : FuncFactory(o->uri_, o->name_, o->minArgs_, o->maxArgs_, mm), body_(o->body_), exFunc_(o->exFunc_), qname_(o->qname_), pattern_(0), templateInstance_(o->templateInstance_), modes_(0), signature_(new (mm) FunctionSignature(o->signature_, mm)), isGlobal_(o->isGlobal_), isTemplate_(o->isTemplate_), memMgr_(mm), src_(mm), staticTyped_(o->staticTyped_), recursive_(o->recursive_), delayed_(o->delayed_), moduleDocCache_(o->moduleDocCache_) { if(o->pattern_) { pattern_ = new (mm) VectorOfASTNodes(XQillaAllocator(mm)); *pattern_ = *o->pattern_; } if(o->modes_) { modes_ = new (mm) ModeList(XQillaAllocator(mm)); XQUserFunction::ModeList::const_iterator modeIt = o->getModeList()->begin(); for(; modeIt != o->getModeList()->end(); ++modeIt) { modes_->push_back(new (mm) Mode(*modeIt)); } } setLocationInfo(o); src_.copy(o->src_); } void XQUserFunction::releaseImpl() { if(pattern_) { pattern_->~VectorOfASTNodes(); memMgr_->deallocate(pattern_); } if(modes_) { XQUserFunction::ModeList::iterator modeIt = modes_->begin(); for(; modeIt != modes_->end(); ++modeIt) { memMgr_->deallocate(*modeIt); } #if defined(_MSC_VER) && (_MSC_VER < 1300) modes_->~vector >(); #else modes_->~ModeList(); #endif memMgr_->deallocate(modes_); } signature_->release(); src_.clear(); memMgr_->deallocate(this); } ASTNode* XQUserFunction::createInstance(const VectorOfASTNodes &args, XPath2MemoryManager *mm) const { return new (mm) XQUserFunctionInstance(this, args, mm); } void XQUserFunction::Mode::staticResolution(StaticContext* context) { if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } } bool XQUserFunction::Mode::equals(const Mode *o) const { if(o == 0) return state_ == DEFAULT; if(state_ == ALL || o->state_ == CURRENT) return true; return state_ == o->state_ && XPath2Utils::equals(uri_, o->uri_) && XPath2Utils::equals(name_, o->name_); } void XQUserFunction::resolveName(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(qname_ != 0 && name_ == 0) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); name_ = XPath2NSUtils::getLocalName(qname_); if(prefix == 0 || *prefix == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix, this); } } if(name_ != 0) { setURINameHash(uri_, name_); } } void XQUserFunction::staticResolutionStage1(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); resolveName(context); if(name_ != 0 && !isTemplate_ && !delayed_) { if(XPath2Utils::equals(uri_, XMLUni::fgXMLURIName) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_XSI) || XPath2Utils::equals(uri_, XQFunction::XMLChFunctionURI) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), X("A user defined function must not be in the namespaces xml, xsd, xsi, fn or xdt [err:XQST0045]")); } else if(uri_ == 0 || *uri_ == 0) XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), X("A user defined function must be defined in a namespace [err:XQST0060]")); } // Check for the implementation of an external function if(body_ == NULL) { exFunc_ = context->lookUpExternalFunction(uri_, name_, minArgs_); if(exFunc_ == NULL) { XMLBuffer buf; buf.set(X("External function '{")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X("' with ")); XMLCh szNumBuff[20]; XMLString::binToText((unsigned int)minArgs_, szNumBuff, 19, 10); buf.append(szNumBuff); buf.append(X(" argument(s) has not been bound to an implementation")); XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), buf.getRawBuffer()); } } signature_->staticResolution(context); // Resolve the mode names if(modes_) { if(modes_->empty()) { XQThrow(StaticErrorException, X("XQUserFunction::staticResolution"), X("At least one mode must be specified for a template [err:XTSE0550]")); } ModeList::iterator it, it2; for(it = modes_->begin(); it != modes_->end(); ++it) { (*it)->staticResolution(context); // Check for "#all" with other values if((*it)->getState() == Mode::ALL && modes_->size() != 1) { XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), X("The mode #all must not be specified in addition to other modes [err:XTSE0550]"), *it); } // Check for duplicate modes it2 = it; for(++it2; it2 != modes_->end(); ++it2) { if((*it)->getState() == (*it2)->getState() && XPath2Utils::equals((*it)->getName(), (*it2)->getName()) && XPath2Utils::equals((*it)->getURI(), (*it2)->getURI())) { XMLBuffer buf; buf.append(X("The mode {")); buf.append((*it)->getURI()); buf.append(X("}")); buf.append((*it)->getName()); buf.append(X(" has been specified more than once [err:XTSE0550]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), buf.getRawBuffer(), *it2); } } } } // Set up a default StaticType and StaticAnalysis if(signature_->returnType) { if(body_ != NULL) { body_ = signature_->returnType->convertFunctionArg(body_, context, /*numericfunction*/false, signature_->returnType); } bool isPrimitive; signature_->returnType->getStaticType(src_.getStaticType(), context, isPrimitive, signature_->returnType); } else { // Default type is item()* src_.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } if(signature_->updating == FunctionSignature::OP_TRUE) { src_.updating(true); } // TBD What about the other parts of the StaticAnalysis - jpcs src_.forceNoFolding(true); if(pattern_ != 0 && !pattern_->empty()) { // Set the pattern's initial static type to NODE_TYPE VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { const_cast((*patIt)->getStaticAnalysis()).getStaticType() = StaticType(StaticType::NODE_TYPE, 0, StaticType::UNLIMITED); } } if(isTemplate_) { // Build an instance of the template for us to call VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(signature_->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = signature_->argSpecs->begin(); argIt != signature_->argSpecs->end(); ++argIt) { XQVariable *argVar = new (mm) XQVariable((*argIt)->getURI(), (*argIt)->getName(), mm); argVar->setLocationInfo(*argIt); newArgs.push_back(argVar); } } templateInstance_ = createInstance(newArgs, mm); templateInstance_->setLocationInfo(this); } } void XQUserFunction::staticResolutionStage2(StaticContext *context) { // Prevent static typing being run on this function by a // loop of delayed functions AutoReset reset(staticTyped_); staticTyped_ = AFTER; if(pattern_ != 0 && !pattern_->empty()) { VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { (*patIt) = (*patIt)->staticResolution(context); } } if(templateInstance_) { templateInstance_ = templateInstance_->staticResolution(context); } if(body_ != NULL) { body_ = body_->staticResolution(context); } } class UDFStaticTyper : private ASTVisitor { public: UDFStaticTyper() : context_(0), styper_(0) {} void run(ASTNode *item, StaticContext *context, StaticTyper *styper) { context_ = context; styper_ = styper; optimize(item); } private: virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { XQQuery *module = context_->getModule()-> findModuleForFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments().size()); if(module == context_->getModule()) { // See if we can work out a better return type for the user defined function. // This call will just return if it's already been static typed const_cast(item->getFunctionDefinition())->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeUserFunction(item); } virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item) { // The XQApplyTemplates could call any template with a pattern - // so try to static type all of them before us const UserFunctions &templates = context_->getTemplateRules(); UserFunctions::const_iterator inIt; for(inIt = templates.begin(); inIt != templates.end(); ++inIt) { if((*inIt)->getPattern() != 0) (*inIt)->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeApplyTemplates(item); } virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item) { // The XQCallTemplate could call any template with a name - // so try to static type all of them before us const UserFunctions &templates = context_->getTemplateRules(); UserFunctions::const_iterator inIt; for(inIt = templates.begin(); inIt != templates.end(); ++inIt) { if((*inIt)->getName() != 0) (*inIt)->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeCallTemplate(item); } virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item) { return item; } virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item) { return item; } StaticContext *context_; StaticTyper *styper_; }; void XQUserFunction::staticTypeFunctionCalls(ASTNode *item, StaticContext *context, StaticTyper *styper) { // TBD DB XML version of UDFStaticTyper? - jpcs UDFStaticTyper().run(item, context, styper); } void XQUserFunction::staticTypingOnce(StaticContext *context, StaticTyper *styper) { // Avoid inifinite recursion for recursive functions // TBD Need to declare everything as being used - jpcs if(staticTyped_ != BEFORE) { if(staticTyped_ == DURING) recursive_ = true; XQGlobalVariable *global = 0; StaticTyper::PrologItem *breadcrumb = styper->getTrail(); for(; breadcrumb; breadcrumb = breadcrumb->prev) { if(breadcrumb->global) global = breadcrumb->global; if(breadcrumb->function == this) break; } if(global && breadcrumb) { XMLBuffer buf; buf.append(X("The initializing expression for variable {")); buf.append(global->getVariableURI()); buf.append(X("}")); buf.append(global->getVariableLocalName()); buf.append(X(" depends on itself [err:XQST0054]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticTypingOnce"), buf.getRawBuffer(), global); } return; } staticTyped_ = DURING; StaticTyper::PrologItem breadcrumb(this, styper->getTrail()); AutoReset autorReset2(styper->getTrail()); styper->getTrail() = &breadcrumb;; GlobalVariables globalsUsed(XQillaAllocator(context->getMemoryManager())); { AutoReset autoReset(styper->getGlobalsUsed()); styper->getGlobalsUsed() = &globalsUsed; staticTyping(context, styper); } if(!globalsUsed.empty()) { // Static type the global variables we depend on GlobalVariables::iterator it = globalsUsed.begin(); for(; it != globalsUsed.end(); ++it) { (*it)->staticTypingOnce(context, styper); } // Re-static type this function definition staticTyping(context, styper); } staticTyped_ = AFTER; } void XQUserFunction::resetStaticTypingOnce() { staticTyped_ = BEFORE; } void XQUserFunction::staticTyping(StaticContext *context, StaticTyper *styper) { // Nothing more to do for external functions if(body_ == NULL) return; if(signature_->updating == FunctionSignature::OP_TRUE && signature_->returnType != NULL) { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for an updating function to declare a return type [err:XUST0028]")); } // Find user defined functions and templates that are referenced in our body, // and try to call staticTyping() on them before us. if(context) staticTypeFunctionCalls(body_, context, styper); bool ciTypeSet = false; StaticType ciType = StaticType(); if(pattern_ != NULL) { VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { (*patIt) = (*patIt)->staticTyping(context, styper); if(!ciTypeSet) { ciTypeSet = true; ciType = (*patIt)->getStaticAnalysis().getStaticType(); } else ciType |= (*patIt)->getStaticAnalysis().getStaticType(); } if(ciTypeSet) { ciType.setCardinality(1, 1); } } if(isTemplate_ && name_ != 0) { // Named template ciTypeSet = true; ciType = StaticType::ITEM_TYPE; } // define the new variables in a new scope and assign them the proper values if(context) { VariableTypeStore *varStore = context->getVariableTypeStore(); if(isGlobal_) varStore->addLocalScope(); else varStore->addLogicalBlockScope(); // Declare the parameters if(signature_->argSpecs) { ArgumentSpecs::iterator it; for(it = signature_->argSpecs->begin(); it != signature_->argSpecs->end (); ++it) { varStore->declareVar((*it)->getURI(), (*it)->getName(), (*it)->getStaticAnalysis()); } } } { // Declare the context item AutoContextItemTypeReset contextTypeReset(context, ciType); body_ = body_->staticTyping(context, styper); } if(context) context->getVariableTypeStore()->removeScope(); if(signature_->updating == FunctionSignature::OP_TRUE) { if(!body_->getStaticAnalysis().isUpdating() && !body_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a user defined updating function " "not to be an updating expression [err:XUST0002]")); } else { if(body_->getStaticAnalysis().isUpdating()) { if(isTemplate_) { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a template " "to be an updating expression [err:XUST0001]")); } else { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a user defined function " "to be an updating expression [err:XUST0001]")); } } } // Remove the parameter variables from the stored StaticAnalysis src_.clear(); src_.copy(body_->getStaticAnalysis()); if(signature_->argSpecs) { for(ArgumentSpecs::iterator it = signature_->argSpecs->begin(); it != signature_->argSpecs->end (); ++it) { if(!src_.removeVariable((*it)->getURI(), (*it)->getName())) { // The parameter isn't used, so set it to null, so that we don't bother to evaluate it (*it)->setNotUsed(); } } } // Run staticTyping on the template instances if(templateInstance_ != 0 && context) { StaticAnalysis templateVarSrc(context->getMemoryManager()); templateVarSrc.getStaticType() = StaticType::ITEM_TYPE; VariableTypeStore *varStore = context->getVariableTypeStore(); varStore->addLogicalBlockScope(); if(signature_->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = signature_->argSpecs->begin(); argIt != signature_->argSpecs->end(); ++argIt) { varStore->declareVar((*argIt)->getURI(), (*argIt)->getName(), templateVarSrc); } } // Turn off warnings here, since they are largely irrelevent to the user AutoMessageListenerReset reset(context); templateInstance_ = templateInstance_->staticTyping(context, styper); varStore->removeScope(); } } //////////////////////////////////////////////////////////////////////////////////////////////////// XQUserFunctionInstance::XQUserFunctionInstance(const XQUserFunction* funcDef, const VectorOfASTNodes& args, XPath2MemoryManager* expr) : XQFunction(funcDef->getName(), 0, args, expr), addReturnCheck_(funcDef->body_ == NULL && funcDef->signature_->returnType != NULL), funcDef_(funcDef) { _type = ASTNode::USER_FUNCTION; uri_ = funcDef->getURI(); signature_ = funcDef->getSignature(); } XQUserFunctionInstance::XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, bool addReturnCheck, XPath2MemoryManager *mm) : XQFunction(funcDef->getName(), 0, args, mm), addReturnCheck_(addReturnCheck), funcDef_(funcDef) { _type = ASTNode::USER_FUNCTION; uri_ = funcDef->getURI(); signature_ = funcDef->getSignature(); } Result XQUserFunctionInstance::getArgument(size_t index, DynamicContext *context) const { if(index >= funcDef_->getMaxArgs()) return 0; return _args[index]->createResult(context); } ASTNode* XQUserFunctionInstance::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); // We don't trust external functions, so check their return type if(addReturnCheck_) { addReturnCheck_ = false; XQTreatAs *treatAs = new (mm) XQTreatAs(this, funcDef_->signature_->returnType, mm); treatAs->setLocationInfo(funcDef_->signature_->returnType); return treatAs->staticResolution(context); } if(funcDef_->signature_->argSpecs != 0) { VectorOfASTNodes::iterator argIt = _args.begin(); for(ArgumentSpecs::iterator defIt = funcDef_->signature_->argSpecs->begin(); defIt != funcDef_->signature_->argSpecs->end() && argIt != _args.end(); ++defIt, ++argIt) { // The spec doesn't allow us to skip static errors, so we have to check even if // the parameter isn't used *argIt = (*defIt)->getType()->convertFunctionArg(*argIt, context, /*numericfunction*/false, *argIt); *argIt = (*argIt)->staticResolution(context); } } return this; } ASTNode *XQUserFunctionInstance::staticTypingImpl(StaticContext *context) { if(funcDef_->body_ != NULL) { _src.clear(); _src.copy(funcDef_->src_); } else { // Force the type check to happen, by declaring our type as item()* _src.clear(); _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); _src.forceNoFolding(true); } VectorOfASTNodes::iterator argIt; for(argIt = _args.begin(); argIt != _args.end(); ++argIt) { // The spec doesn't allow us to skip static errors, so we have to check even if // the parameter isn't used if((*argIt)->getStaticAnalysis().isUpdating()) { if(funcDef_->isTemplate()) { XQThrow(StaticErrorException, X("XQUserFunctionInstance::staticTyping"), X("It is a static error for the argument expression of a call template expression " "to be an updating expression [err:XUST0001]")); } else { XQThrow(StaticErrorException, X("XQUserFunctionInstance::staticTyping"), X("It is a static error for the argument expression of a function call expression " "to be an updating expression [err:XUST0001]")); } } // TBD Check all static errors in staticResolution, so we can skip static typing - jpcs // if((*defIt)->_qname) _src.add((*argIt)->getStaticAnalysis()); } return this; } void XQUserFunctionInstance::evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const { if(funcDef_->getSignature()->argSpecs != 0) { // the variables should be evaluated in the calling context // (before the VariableStore::addLocalScope call: after this call, the variables that can be seen are only the local ones) VectorOfASTNodes::const_iterator argIt = _args.begin(); for(ArgumentSpecs::const_iterator defIt = funcDef_->signature_->argSpecs->begin(); defIt != funcDef_->signature_->argSpecs->end() && argIt != _args.end(); ++defIt, ++argIt) { if((*defIt)->isUsed()) { scope.setVar((*defIt)->getURI(), (*defIt)->getName(), (*argIt)->createResult(context)); } else { // Skip evaluation of the parameter, since it isn't used, and debugging isn't enabled } } } } EventGenerator::Ptr XQUserFunctionInstance::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(funcDef_->getFunctionBody() == NULL) { return ASTNodeImpl::generateEvents(events, context, preserveNS, preserveType); } context->testInterrupt(); VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoDocumentCacheReset reset(context); if(funcDef_->getModuleDocumentCache()) context->setDocumentCache(funcDef_->getModuleDocumentCache()); AutoVariableStoreReset reset2(context, &scope); AutoRegexGroupStoreReset reset3(context); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); return new ClosureEventGenerator(funcDef_->getFunctionBody(), context, preserveNS, preserveType); } PendingUpdateList XQUserFunctionInstance::createUpdateList(DynamicContext *context) const { context->testInterrupt(); if(funcDef_->getFunctionBody() == NULL) { return funcDef_->getExternalFunction()->executeUpdate(this, context); } VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoDocumentCacheReset reset(context); if(funcDef_->getModuleDocumentCache()) context->setDocumentCache(funcDef_->getModuleDocumentCache()); AutoVariableStoreReset reset2(context, &scope); AutoRegexGroupStoreReset reset3(context, 0); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); PendingUpdateList result = funcDef_->getFunctionBody()->createUpdateList(context); return result; } Result XQUserFunctionInstance::createResult(DynamicContext* context, int flags) const { context->testInterrupt(); if(funcDef_->body_ != NULL) { VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoRegexGroupStoreReset reset3(context); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); AutoDocumentCacheReset reset(context); DocumentCache* docCache = funcDef_->getModuleDocumentCache(); if(docCache) context->setDocumentCache(docCache); AutoVariableStoreReset vsReset(context, &scope); return ClosureResult::create(funcDef_->getFunctionBody(), context); } else { return funcDef_->getExternalFunction()->execute(this, context); } } //////////////////////////////////////////////////////////////////////////////////////////////////// DelayedFuncFactory::DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *body, int line, int column, XQQuery *query) : FuncFactory(uri, name, numArgs, numArgs, query->getStaticContext()->getMemoryManager()), body_(body), body8_(0), line_(line), column_(column), query_(query), function_(0) { } DelayedFuncFactory::DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *body, int line, int column, XQQuery *query) : FuncFactory(uri, name, numArgs, numArgs, query->getStaticContext()->getMemoryManager()), body_(0), body8_(body), line_(line), column_(column), query_(query), function_(0) { } ASTNode *DelayedFuncFactory::createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { if(function_ == 0) { DynamicContext *context = (DynamicContext*)query_->getStaticContext(); if(body_ == 0) { const_cast(body_) = context->getMemoryManager()->getPooledString(body8_); } XQLexer lexer(memMgr, _LANG_FUNCDECL_, query_->getFile(), line_, column_, body_); XQParserArgs args(&lexer, query_); XQParser::yyparse(&args); const_cast(function_) = args._function; function_->setDelayed(true); query_->addFunction(function_); function_->staticResolutionStage1(context); AutoDelete optimizer(XQilla::createOptimizer(context, XQilla::NO_OPTIMIZATION)); optimizer->startOptimize(function_); } return function_->createInstance(args, memMgr); } XQilla-2.3.4/src/functions/FunctionLocalNameFromQName.cpp0000644001725400016040000000564613273140037020264 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionLocalNameFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionLocalNameFromQName::minArgs = 1; const unsigned int FunctionLocalNameFromQName::maxArgs = 1; /** * fn:local-name-from-QName($arg as xs:QName?) as xs:NCNAME? **/ FunctionLocalNameFromQName::FunctionLocalNameFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:NCName?", args, memMgr) { } Sequence FunctionLocalNameFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createStringOrDerived(XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_NCNAME, ((const ATQNameOrDerived*)arg.first().get())->getName(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionAdjustDateToTimezone.cpp0000644001725400016040000001045713273140037020725 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustDateToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustDateToTimezone::minArgs = 1; const unsigned int FunctionAdjustDateToTimezone::maxArgs = 2; /* * fn:adjust-date-to-timezone($arg as xs:date?) as xs:date? * fn:adjust-date-to-timezone($arg as xs:date?, $timezone as xs:dayTimeDuration?) as xs:date? */ FunctionAdjustDateToTimezone::FunctionAdjustDateToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?, $timezone as xs:dayTimeDuration?) as xs:date?", args, memMgr) { } ASTNode *FunctionAdjustDateToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustDateToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATDateOrDerived* date = (const ATDateOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(date->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustDateToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(date->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.4/src/functions/FunctionRound.cpp0000644001725400016040000000374413273140037015747 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionRound::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionRound::minArgs = 1; const unsigned int FunctionRound::maxArgs = 1; /* * fn:round($arg as numeric?) as numeric? */ FunctionRound::FunctionRound(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionRound::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(memMgr); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, memMgr); return Sequence(numericArg->round(context), memMgr); } XQilla-2.3.4/src/functions/FunctionStringLength.cpp0000644001725400016040000000532413273140037017264 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionStringLength::name[] = { chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chDash, chLatin_l, chLatin_e, chLatin_n, chLatin_g, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionStringLength::minArgs = 0; const unsigned int FunctionStringLength::maxArgs = 1; /** * fn:string-length() as xs:integer * fn:string-length($arg as xs:string?) as xs:integer **/ FunctionStringLength::FunctionStringLength(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:integer", args, memMgr) { } ASTNode* FunctionStringLength::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { FunctionString *arg = new (mm) FunctionString(VectorOfASTNodes(XQillaAllocator(mm)), mm); arg->setLocationInfo(this); _args.push_back(arg); } resolveArguments(context); return this; } Sequence FunctionStringLength::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); Item::Ptr strParm = getParamNumber(1,context)->next(context); if(strParm.isNull()) return Sequence(context->getItemFactory()->createInteger(0, context), mm); const XMLCh *str = strParm->asString(context); long length = 0; while(*str) { ++length; if(RegxUtil::isHighSurrogate(*str)) ++str; ++str; } return Sequence(context->getItemFactory()->createInteger(length, context), mm); } XQilla-2.3.4/src/functions/FunctionDefaultCollation.cpp0000644001725400016040000000473313273140037020110 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDefaultCollation::name[] = { chLatin_d, chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chDash, chLatin_c, chLatin_o, chLatin_l, chLatin_l, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionDefaultCollation::minArgs = 0; const unsigned int FunctionDefaultCollation::maxArgs = 0; /** * fn:default-collation() as xs:string **/ FunctionDefaultCollation::FunctionDefaultCollation(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:string", args, memMgr) { } ASTNode *FunctionDefaultCollation::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); Collation *collation = context->getDefaultCollation(this); ASTNode *newBlock = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, collation ? collation->getCollationName() : CodepointCollation::getCodepointCollationName(), AnyAtomicType::STRING, mm); newBlock->setLocationInfo(this); return newBlock->staticResolution(context); } Sequence FunctionDefaultCollation::createSequence(DynamicContext* context, int flags) const { // Always constant folded return Sequence(context->getMemoryManager()); } XQilla-2.3.4/src/functions/CoreModule.hpp0000644001725400016040000000240413273140442015205 00000000000000// Auto-generated by compile-delayed-module from ../src/functions/CoreModule.xq // DO NOT EDIT // ../src/functions/CoreModule.xq static const XMLCh core_file[] = { 46, 46, 47, 115, 114, 99, 47, 102, 117, 110, 99, 116, 105, 111, 110, 115, 47, 67, 111, 114, 101, 77, 111, 100, 117, 108, 101, 46, 120, 113, 0 }; // core static const XMLCh core_prefix[] = { 99, 111, 114, 101, 0 }; // http://xqilla.sourceforge.net/core static const XMLCh core_uri[] = { 104, 116, 116, 112, 58, 47, 47, 120, 113, 105, 108, 108, 97, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 99, 111, 114, 101, 0 }; static const DelayedModule::FuncDef core_functions[] = { { "to", 2, false, 20, 1, "declare function core:to($a as xs:integer?, $b as xs:integer?) as xs:decimal*\n" "{\n" " if(empty($a) or empty($b)) then ()\n" " else core:to_helper($a treat as xs:decimal, $b treat as xs:decimal)\n" "}\n" }, { "to_helper", 2, false, 26, 1, "declare function core:to_helper($a as xs:decimal, $b as xs:decimal) as xs:decimal*\n" "{\n" " if($a gt $b) then () else ($a, core:to_helper($a + 1, $b))\n" "}\n" }, { 0, 0, 0, 0, 0 } }; static const DelayedModule core_module = { core_file, core_prefix, core_uri, core_functions }; XQilla-2.3.4/src/functions/FunctionMinutesFromDateTime.cpp0000644001725400016040000000566213273140037020546 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromDateTime::minArgs = 1; const unsigned int FunctionMinutesFromDateTime::maxArgs = 1; /* * fn:minutes-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionMinutesFromDateTime::FunctionMinutesFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMinutesFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMinutesFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.4/src/functions/FunctionSecondsFromDuration.cpp0000644001725400016040000000540013273140037020577 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromDuration::minArgs = 1; const unsigned int FunctionSecondsFromDuration::maxArgs = 1; /* * fn:seconds-from-dayTimeDuration($arg as xs:duration?) as xs:decimal? */ FunctionSecondsFromDuration::FunctionSecondsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:decimal?", args, memMgr) { } Sequence FunctionSecondsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.4/src/functions/FunctionSerializeJSON.cpp0000644001725400016040000002551713273140037017303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include // for sprintf #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) #define snprintf _snprintf #endif #include #include #include #include #include #include #include #include #include #include #include "../yajl/yajl_parse.h" XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionSerializeJSON::name[] = { chLatin_s, chLatin_e, chLatin_r, chLatin_i, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_j, chLatin_s, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionSerializeJSON::minArgs = 1; const unsigned int FunctionSerializeJSON::maxArgs = 1; /** * xqilla:serialize-json($json-xml as element()?) as xs:string? */ FunctionSerializeJSON::FunctionSerializeJSON(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($json-xml as element()?) as xs:string?", args, memMgr) { } const XMLCh JSON2XML_json[] = { 'j', 's', 'o', 'n', 0 }; const XMLCh JSON2XML_item[] = { 'i', 't', 'e', 'm', 0 }; const XMLCh JSON2XML_pair[] = { 'p', 'a', 'i', 'r', 0 }; const XMLCh JSON2XML_name[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh JSON2XML_type[] = { 't', 'y', 'p', 'e', 0 }; const XMLCh JSON2XML_array[] = { 'a', 'r', 'r', 'a', 'y', 0 }; const XMLCh JSON2XML_object[] = { 'o', 'b', 'j', 'e', 'c', 't', 0 }; const XMLCh JSON2XML_string[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh JSON2XML_boolean[] = { 'b', 'o', 'o', 'l', 'e', 'a', 'n', 0 }; const XMLCh JSON2XML_number[] = { 'n', 'u', 'm', 'b', 'e', 'r', 0 }; const XMLCh JSON2XML_null[] = { 'n', 'u', 'l', 'l', 0 }; class JSONSerializer : public EventHandler { public: JSONSerializer(const LocationInfo *loc) : loc_(loc) { } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) {} virtual void endDocumentEvent() {} virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) {} virtual void endEvent() {} virtual void piEvent(const XMLCh *target, const XMLCh *value) {} virtual void commentEvent(const XMLCh *value) {} virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(uri != 0) XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); if(XPath2Utils::equals(localname, JSON2XML_item)) { if(stack_.back().type == UNKNOWN) { stack_.back() = ARRAY; buffer_.append('['); } else if(stack_.back().type == ARRAY) { if(stack_.back().seenOne) buffer_.append(','); } else { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found 'item', expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } else if(XPath2Utils::equals(localname, JSON2XML_pair)) { if(stack_.back().type == UNKNOWN) { stack_.back() = MAP; buffer_.append('{'); } else if(stack_.back().type == MAP) { if(stack_.back().seenOne) buffer_.append(','); } else { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found 'pair', expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } else if(XPath2Utils::equals(localname, JSON2XML_json)) { stack_.push_back(UNKNOWN); } else { XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); } stack_.back().seenOne = true; stack_.push_back(UNKNOWN); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { if(uri != 0) XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); if(stack_.back().type == ARRAY) buffer_.append(']'); else if(stack_.back().type == MAP) buffer_.append('}'); else if(stack_.back().type == STRING) buffer_.append('"'); else if(stack_.back().type == UNKNOWN) buffer_.append(JSON2XML_null); stack_.pop_back(); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(uri != 0) { XMLBuffer buf; buf.append(X("Unknown attribute name {")); buf.append(uri); buf.append('}'); buf.append(localname); buf.append(X(" in xqilla:serialize-json()")); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } if(XPath2Utils::equals(localname, JSON2XML_name) && stack_.size() >= 2 && (++stack_.rbegin())->type == MAP) { buffer_.append('"'); buffer_.append(value); buffer_.append('"'); buffer_.append(':'); } else if(XPath2Utils::equals(localname, JSON2XML_type)) { if(XPath2Utils::equals(value, JSON2XML_object)) { stack_.back() = MAP; buffer_.append('{'); } else if(XPath2Utils::equals(value, JSON2XML_array)) { stack_.back() = ARRAY; buffer_.append('['); } else if(XPath2Utils::equals(value, JSON2XML_string)) { stack_.back() = STRING; buffer_.append('"'); } else if(XPath2Utils::equals(value, JSON2XML_boolean)) { stack_.back() = BOOLEAN; } else if(XPath2Utils::equals(value, JSON2XML_number)) { stack_.back() = NUMBER; } else if(XPath2Utils::equals(value, JSON2XML_null)) { stack_.back() = TNULL; buffer_.append(JSON2XML_null); } } else { XMLBuffer buf; buf.append(X("Unknown attribute name {")); buf.append(uri); buf.append('}'); buf.append(localname); buf.append(X(" in xqilla:serialize-json()")); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } virtual void textEvent(const XMLCh *value) { if(stack_.back().type == UNKNOWN) { stack_.back() = STRING; buffer_.append('"'); } else if(stack_.back().type == MAP || stack_.back().type == ARRAY || stack_.back().type == TNULL) { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found text node, expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } stack_.back().seenOne = true; escapeString(value, XPath2Utils::uintStrlen(value)); } virtual void textEvent(const XMLCh *chars, unsigned int length) { if(stack_.back().type == UNKNOWN) { stack_.back() = STRING; buffer_.append('"'); } else if(stack_.back().type == MAP || stack_.back().type == ARRAY || stack_.back().type == TNULL) { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found text node, expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } stack_.back().seenOne = true; escapeString(chars, length); } bool isEmpty() const { return buffer_.isEmpty(); } const XMLCh *getResult() { return buffer_.getRawBuffer(); } private: void escapeString(const XMLCh *chars, unsigned int length) { while(length) { switch(*chars) { case 0x22: buffer_.append('\\'); buffer_.append('"'); break; case 0x5C: buffer_.append('\\'); buffer_.append('\\'); break; case 0x2F: buffer_.append('\\'); buffer_.append('/'); break; case 0x08: buffer_.append('\\'); buffer_.append('b'); break; case 0x0C: buffer_.append('\\'); buffer_.append('f'); break; case 0x0A: buffer_.append('\\'); buffer_.append('n'); break; case 0x0D: buffer_.append('\\'); buffer_.append('r'); break; case 0x09: buffer_.append('\\'); buffer_.append('t'); break; default: buffer_.append(*chars); break; } --length; ++chars; } } enum Type { UNKNOWN, MAP, ARRAY, STRING, BOOLEAN, NUMBER, TNULL }; void typeToBuffer(Type type, XMLBuffer &buf) { switch(type) { case UNKNOWN: buf.append(X("unknown")); break; case MAP: buf.append(X("map")); break; case ARRAY: buf.append(X("array")); break; case STRING: buf.append(X("string")); break; case BOOLEAN: buf.append(X("boolean")); break; case NUMBER: buf.append(X("number")); break; case TNULL: buf.append(X("null")); break; } } XMLBuffer buffer_; const LocationInfo *loc_; struct StackObject; friend struct StackObject; struct StackObject { StackObject(Type t) : type(t), seenOne(false) {} Type type; bool seenOne; }; vector stack_; }; Sequence FunctionSerializeJSON::createSequence(DynamicContext* context, int flags) const { JSONSerializer serializer(this); _args[0]->generateAndTailCall(&serializer, context, false, false); if(serializer.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createString(serializer.getResult(), context)); } XQilla-2.3.4/src/functions/FunctionSubstring.cpp0000644001725400016040000000626213273140037016636 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionSubstring::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSubstring::minArgs = 2; const unsigned int FunctionSubstring::maxArgs = 3; /** * fn:substring($sourceString as xs:string?, $startingLoc as xs:double) as xs:string * fn:substring($sourceString as xs:string?, $startingLoc as xs:double, $length as xs:double) as xs:string **/ FunctionSubstring::FunctionSubstring(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($sourceString as xs:string?, $startingLoc as xs:double, $length as xs:double) as xs:string", args, memMgr) { } Sequence FunctionSubstring::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence string=getParamNumber(1, context)->toSequence(context); if(string.isEmpty()) return Sequence(context->getItemFactory()->createString(XERCES_CPP_NAMESPACE_QUALIFIER XMLUni::fgZeroLenString, context), memMgr); ATStringOrDerived::Ptr str = (const ATStringOrDerived::Ptr )string.first(); Sequence startingLoc=getParamNumber(2,context)->toSequence(context); ATDoubleOrDerived::Ptr index = (const ATDoubleOrDerived::Ptr )startingLoc.first(); ATDoubleOrDerived::Ptr subStrLength; if(getNumArgs()>2) { Sequence length=getParamNumber(3,context)->toSequence(context); subStrLength=(const ATDoubleOrDerived::Ptr )length.first(); } else { subStrLength=(const ATDoubleOrDerived::Ptr )context->getItemFactory()->createDouble((long)((const ATStringOrDerived*)str)->getLength(), context); } return Sequence(((const ATStringOrDerived*)str)->substring(index, subStrLength, context), memMgr); } XQilla-2.3.4/src/functions/FunctionLast.cpp0000644001725400016040000000442613273140037015561 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLast::name[] = { chLatin_l, chLatin_a, chLatin_s, chLatin_t, chNull }; const unsigned int FunctionLast::minArgs = 0; const unsigned int FunctionLast::maxArgs = 0; /** * fn:last() as xs:integer **/ FunctionLast::FunctionLast(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:integer", args, memMgr) { } ASTNode *FunctionLast::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.contextSizeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionLast::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); if(context->getContextItem()==NULLRCP) XQThrow(DynamicErrorException,X("FunctionPosition::createSequence"), X("Undefined context item in fn:last [err:XPDY0002]")); return Sequence(context->getItemFactory()->createInteger((long)context->getContextSize(), context), memMgr); } XQilla-2.3.4/src/functions/ExternalFunction.cpp0000644001725400016040000000305313273140037016433 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; ExternalFunction::ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm) : uri_(mm->getPooledString(uri)), name_(mm->getPooledString(name)), uriName_(0), numArgs_(numberOfArgs) { XMLBuffer buf; buf.set(name); buf.append(uri); uriName_ = mm->getPooledString(buf.getRawBuffer()); } Result ExternalFunction::execute(const Arguments *args, DynamicContext *context) const { return 0; } PendingUpdateList ExternalFunction::executeUpdate(const Arguments *args, DynamicContext *context) const { return PendingUpdateList(); } XQilla-2.3.4/src/functions/FunctionImplicitTimezone.cpp0000644001725400016040000000465513273140037020147 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include /*implicit-timezone*/ const XMLCh FunctionImplicitTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionImplicitTimezone::minArgs = 0; const unsigned int FunctionImplicitTimezone::maxArgs = 0; /** * fn:implicit-timezone() as xs:dayTimeDuration **/ FunctionImplicitTimezone::FunctionImplicitTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:dayTimeDuration", args, memMgr) { } ASTNode *FunctionImplicitTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.implicitTimezoneUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionImplicitTimezone::createSequence(DynamicContext* context, int flags) const { return Sequence(context->getImplicitTimezone(), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionSentences.cpp0000644001725400016040000000463513273140037016607 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include extern "C" { #include } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionSentences::name[] = { chLatin_s, chLatin_e, chLatin_n, chLatin_t, chLatin_e, chLatin_n, chLatin_c, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionSentences::minArgs = 1; const unsigned int FunctionSentences::maxArgs = 1; /** * xqilla:sentences($input as xs:string?) as xs:string* */ FunctionSentences::FunctionSentences(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?) as xs:string*", args, memMgr) { } Sequence FunctionSentences::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); AutoDeallocate buf(UnicodeTransformer::sentences(input, memMgr), memMgr); XMLCh* rb = buf.get(); XMLCh* start = NULL; Sequence resultSeq(0, memMgr); // Build sequence for (int i = 0; rb[i]; i++) { if (rb[i] != UTF8PROC_SB_MARK) continue; rb[i] = 0; if (rb[i+1] == 0 || rb[i+1] != UTF8PROC_SB_MARK) { if (start != NULL) resultSeq.addItem(context->getItemFactory()->createString(start, context)); start = rb + (i+1); } } return resultSeq; } XQilla-2.3.4/src/functions/FunctionLog.cpp0000644001725400016040000000301213273140037015365 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionLog::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionLog::minArgs = 1; const unsigned int FunctionLog::maxArgs = 1; /* * math:log($arg as numeric?) as numeric? */ FunctionLog::FunctionLog(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionLog::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->log(context); } XQilla-2.3.4/src/functions/FunctionCompare.cpp0000644001725400016040000000711513273140037016242 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include const XMLCh FunctionCompare::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCompare::minArgs = 2; const unsigned int FunctionCompare::maxArgs = 3; /** * fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer? * fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?, $collation as xs:string) as xs:integer? **/ FunctionCompare::FunctionCompare(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($comparand1 as xs:string?, $comparand2 as xs:string?, $collation as xs:string) as xs:integer?", args, memMgr) { } Sequence FunctionCompare::createSequence(DynamicContext* context, int flags) const { Sequence str1 = getParamNumber(1,context)->toSequence(context); Sequence str2 = getParamNumber(2,context)->toSequence(context); if(str1.isEmpty() || str2.isEmpty()) return Sequence(context->getMemoryManager()); Collation* collation = NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionCompare::createSequence"), X("Invalid argument to compare function")); } collation = context->getCollation(collName, this); if(collation == NULL) XQThrow(FunctionException,X("FunctionCompare::createSequence"),X("Collation object is not available")); } else collation = context->getDefaultCollation(this); if(collation == NULL) collation = context->getCollation(CodepointCollation::getCodepointCollationName(), this); const XMLCh* string1 = str1.first()->asString(context); const XMLCh* string2 = str2.first()->asString(context); Sequence result(context->getItemFactory()->createInteger(collation->compare(string1,string2), context), context->getMemoryManager()); return result; } XQilla-2.3.4/src/functions/FunctionMatches.cpp0000644001725400016040000001345013273140037016237 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "xqilla/functions/FunctionNumber.hpp" #include "xqilla/framework/StringPool.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionMatches::name[] = { chLatin_m, chLatin_a, chLatin_t, chLatin_c, chLatin_h, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionMatches::minArgs = 2; const unsigned int FunctionMatches::maxArgs = 3; /** * fn:matches($input as xs:string?, $pattern as xs:string) as xs:boolean * fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean */ FunctionMatches::FunctionMatches(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean", args, memMgr) { } ASTNode *FunctionMatches::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 2 args, and regexp should be a constant, //or there is an options argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 2 || (getNumArgs() == 3 && _args[2]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 3) { Item::Ptr optsItem = getParamNumber(3, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionMatches::staticTypingImplSequence"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionMatches::staticTypingImplSequence", memMgr); } } return this; } BoolResult FunctionMatches::boolResult(DynamicContext* context) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); const XMLCh* input = XMLUni::fgZeroLenString; Item::Ptr inputItem = getParamNumber(1,context)->next(context); if(inputItem.notNull()) input=inputItem->asString(context); if(regExp_) { try { return matches(input, regExp_); } catch (XMLException &e){ processXMLException(e, "FunctionMatches::createSequence"); } } //do not get here if we had a pre-compiled regexp const XMLCh* pattern = getParamNumber(2,context)->next(context)->asString(context); const XMLCh* options = XMLUni::fgZeroLenString; if(getNumArgs()>2) options=getParamNumber(3,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionMatches::createSequence"); try { return matches(input, pattern, options); } catch (ParseException &e){ processParseException(e, "FunctionMatches::createSequence", memMgr); } catch (XMLException &e){ processXMLException(e, "FunctionMatches::createSequence"); } //do not get here return false; } Result FunctionMatches::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } void FunctionMatches::processXMLException(XMLException &e, const char* sourceMsg) const { XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } bool FunctionMatches::matches(const XMLCh *input, const XMLCh *pattern, const XMLCh *options) { // If the value of $operand2 is the zero-length string, then the function returns true if(pattern == 0 || *pattern == 0) return true; if(input == 0) input = XMLUni::fgZeroLenString; // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); //Build the Regular Expression RegularExpression regEx(pattern, optionsBuf.getRawBuffer()); return regEx.matches(input); } //should be invoked only we have a precompiled regexp bool FunctionMatches::matches(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* regExp) { if(input == 0) { input = XMLUni::fgZeroLenString; } return regExp->matches(input); } XQilla-2.3.4/src/functions/FunctionFunctionArity.cpp0000644001725400016040000000527413273140037017456 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionFunctionArity::name[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '-', 'a', 'r', 'i', 't', 'y', 0 }; const unsigned int FunctionFunctionArity::minArgs = 1; const unsigned int FunctionFunctionArity::maxArgs = 1; /** * fn:function-arity($function as function(*)) as xs:integer */ FunctionFunctionArity::FunctionFunctionArity(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($function as function(*)) as xs:integer", args, memMgr) { } ASTNode *FunctionFunctionArity::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if(sType.getReturnType() && sType.getMinArgs() == sType.getMaxArgs() && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); try { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); return XQLiteral::create(mm->createInteger(sType.getMinArgs()), dContext, mm, this); } catch(XQException &ex) { // Constant folding failed } } } return this; } Sequence FunctionFunctionArity::createSequence(DynamicContext* context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getParamNumber(1, context)->next(context).get(); return Sequence(context->getItemFactory()->createInteger((int)func->getNumArgs(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionCos.cpp0000644001725400016040000000301113273140037015367 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionCos::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCos::minArgs = 1; const unsigned int FunctionCos::maxArgs = 1; /* * math:cos($arg as numeric?) as numeric? */ FunctionCos::FunctionCos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionCos::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->cos(context); } XQilla-2.3.4/src/functions/FunctionDocumentURI.cpp0000644001725400016040000000410413273140037017005 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionDocumentURI::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDocumentURI::minArgs = 1; const unsigned int FunctionDocumentURI::maxArgs = 1; /* * fn:document-uri($arg as node()?) as xs:anyURI? */ FunctionDocumentURI::FunctionDocumentURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI?", args, memMgr) { } Sequence FunctionDocumentURI::createSequence(DynamicContext* context, int flags) const { Item::Ptr arg = getParamNumber(1,context)->next(context); if(arg.isNull()) return Sequence(context->getMemoryManager()); return ((Node*)arg.get())->dmDocumentURI(context); } XQilla-2.3.4/src/functions/FunctionRegexGroup.cpp0000644001725400016040000000520213273140037016736 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionRegexGroup::name[] = { chLatin_r, chLatin_e, chLatin_g, chLatin_e, chLatin_x, chDash, chLatin_g, chLatin_r, chLatin_o, chLatin_u, chLatin_p, chNull }; const unsigned int FunctionRegexGroup::minArgs = 1; const unsigned int FunctionRegexGroup::maxArgs = 1; /** * fn:regex-group($group-number as xs:integer) as xs:string **/ FunctionRegexGroup::FunctionRegexGroup(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($group-number as xs:integer) as xs:string", args, memMgr) { } ASTNode *FunctionRegexGroup::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.forceNoFolding(true); calculateSRCForArguments(context); return this; } Sequence FunctionRegexGroup::createSequence(DynamicContext *context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); const RegexGroupStore *store = context->getRegexGroupStore(); if(store == 0) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); Numeric::Ptr indexItem = getParamNumber(1, context)->next(context); if(indexItem->isNegative()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); const XMLCh *indexStr = indexItem->asString(context); int index = 0; while(*indexStr != 0) { if(*indexStr >= '0' && *indexStr <= '9') { index *= 10; index += *indexStr - '0'; } ++indexStr; } const XMLCh *result = store->getGroup(index); if(result == 0) result = XMLUni::fgZeroLenString; return Sequence(context->getItemFactory()->createString(result, context), mm); } XQilla-2.3.4/src/functions/FunctionSecondsFromDateTime.cpp0000644001725400016040000000566213273140037020520 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromDateTime::minArgs = 1; const unsigned int FunctionSecondsFromDateTime::maxArgs = 1; /* * fn:seconds-from-dateTime($arg as xs:dateTime?) as xs:decimal? */ FunctionSecondsFromDateTime::FunctionSecondsFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:decimal?", args, memMgr) { } ASTNode *FunctionSecondsFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionSecondsFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.4/src/functions/FunctionUnparsedText.cpp0000644001725400016040000001517213273140037017304 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionUnparsedText::name[] = { chLatin_u, chLatin_n, chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chLatin_d, chDash, chLatin_t, chLatin_e, chLatin_x, chLatin_t, chNull }; const unsigned int FunctionUnparsedText::minArgs = 1; const unsigned int FunctionUnparsedText::maxArgs = 2; /** * fn:unparsed-text($href as xs:string?) as xs:string? * fn:unparsed-text($href as xs:string?, $encoding as xs:string) as xs:string? **/ FunctionUnparsedText::FunctionUnparsedText(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($href as xs:string?, $encoding as xs:string) as xs:string?", args, memMgr) { } ASTNode *FunctionUnparsedText::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.availableDocumentsUsed(true); calculateSRCForArguments(context); return this; } class FindXMLEncoding : private EventHandler { public: const XMLCh *start(InputSource &src, DynamicContext *context) { encoding_ = 0; mm_ = context->getMemoryManager(); try { const_cast(context->getDocumentCache())->parseDocument(src, this, context); } catch(...) { } return encoding_; } private: const XMLCh *encoding_; XPath2MemoryManager *mm_; virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { encoding_ = mm_->getPooledString(encoding); throw "Done"; } virtual void endDocumentEvent() {} virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) {} virtual void endEvent() {} virtual void piEvent(const XMLCh *target, const XMLCh *value) {} virtual void commentEvent(const XMLCh *value) {} virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname){} virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void textEvent(const XMLCh *value) {} virtual void textEvent(const XMLCh *chars, unsigned int length) {} }; Sequence FunctionUnparsedText::createSequence(DynamicContext* context, int flags) const { Item::Ptr uriArg = getParamNumber(1, context)->next(context); if(uriArg.isNull()) { return Sequence(context->getMemoryManager()); } const XMLCh *uri = uriArg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionUnparsedText::createSequence"), X("The argument to fn:unparsed-text() is not a valid URI [err:XTDE1170]")); // TBD Implement a URIResolver method for resolving unparsed text - jpcs const XMLCh *baseUri = context->getBaseURI(); InputSource *srcToUse = 0; if(context->getXMLEntityResolver()){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, uri, 0, XMLUni::fgZeroLenString, baseUri); srcToUse = context->getXMLEntityResolver()->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { try { // Resolve the uri against the base uri XMLURL urlTmp; if(baseUri && *baseUri) { urlTmp.setURL(baseUri, uri); } else { urlTmp.setURL(uri); } srcToUse = new URLInputSource(urlTmp); } catch(const MalformedURLException &e) { } } if(srcToUse == 0) { // It's not a URL, so let's assume it's a local file name. if(baseUri && *baseUri) { AutoDeallocate tmpBuf(XMLPlatformUtils::weavePaths(baseUri, uri), XMLPlatformUtils::fgMemoryManager); srcToUse = new LocalFileInputSource(tmpBuf); } else { srcToUse = new LocalFileInputSource(uri); } } Janitor janIS(srcToUse); if(getNumArgs() == 2) { const XMLCh *encoding = getParamNumber(2, context)->next(context)->asString(context); srcToUse->setEncoding(encoding); } XMLBuffer result; try { BinInputStream *stream = srcToUse->makeStream(); if(stream == NULL) { XMLBuffer buf; buf.set(X("Cannot read unparsed content from ")); buf.append(uri); buf.append(X(" [err:XTDE1170]")); XQThrow2(FunctionException,X("FunctionUnparsedText::createSequence"), buf.getRawBuffer()); } Janitor janStream(stream); #ifdef HAVE_GETCONTENTTYPE if(FunctionMatches::matches(stream->getContentType(), X("(text|application)/(xml|[^ +;]+\\+xml)"), X("i"))) { srcToUse->setEncoding(0); srcToUse->setEncoding(FindXMLEncoding().start(*srcToUse, context)); } #endif XPath2Utils::readSource(stream, context->getMemoryManager(), result, srcToUse->getEncoding()); } catch(XMLException &e) { XMLBuffer buf; buf.set(X("Exception reading unparsed content: ")); buf.append(e.getMessage()); buf.append(X(" [err:XTDE1190]")); XQThrow2(FunctionException,X("FunctionUnparsedText::createSequence"), buf.getRawBuffer()); } return Sequence(context->getItemFactory()->createString(result.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionTimezoneFromDate.cpp0000644001725400016040000000555013273140037020071 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTimezoneFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromDate::minArgs = 1; const unsigned int FunctionTimezoneFromDate::maxArgs = 1; /* * fn:timezone-from-date($arg as xs:date?) as xs:dayTimeDuration? */ FunctionTimezoneFromDate::FunctionTimezoneFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(memMgr); const ATDateOrDerived *date = (const ATDateOrDerived*)(const Item*)arg.first(); // If $srcval does not contain a timezone, the result is the empty sequence if (date->hasTimezone() == false) { return Sequence(memMgr); } const Timezone::Ptr timezone = date->getTimezone(); return Sequence( (const Item::Ptr )timezone->asDayTimeDuration(context), memMgr ); } XQilla-2.3.4/src/functions/FunctionFunctionName.cpp0000644001725400016040000000344313273140037017242 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionFunctionName::name[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '-', 'n', 'a', 'm', 'e', 0 }; const unsigned int FunctionFunctionName::minArgs = 1; const unsigned int FunctionFunctionName::maxArgs = 1; /** * fn:function-name($function as function(*)) as xs:QName? */ FunctionFunctionName::FunctionFunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($function as function(*)) as xs:QName?", args, memMgr) { } Sequence FunctionFunctionName::createSequence(DynamicContext* context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getParamNumber(1, context)->next(context).get(); return Sequence(func->getName(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionLang.cpp0000644001725400016040000000770413273140037015541 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLang::name[] = { chLatin_l, chLatin_a, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionLang::minArgs = 1; const unsigned int FunctionLang::maxArgs = 2; /** * fn:lang($testlang as xs:string?) as xs:boolean * fn:lang($testlang as xs:string?, $node as node()) as xs:boolean **/ FunctionLang::FunctionLang(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($testlang as xs:string?, $node as node()) as xs:boolean", args, memMgr) { } ASTNode* FunctionLang::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionLang::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg1 = getParamNumber(1, context)->next(context); const XMLCh *param1 = arg1.isNull() ? XMLUni::fgZeroLenString : arg1->asString(context); const XMLCh* xmlLangValue = XPath2Utils::toLower(param1, context->getMemoryManager()); bool isSubLang = XMLString::indexOf(xmlLangValue, chDash) > 0; static const XMLCh xmlLang[] = { chLatin_l, chLatin_a, chLatin_n, chLatin_g, chNull}; static const XMLCh* xmlLangNamespace = XMLUni::fgXMLURIName; Node::Ptr node = (Node*)getParamNumber(2, context)->next(context).get(); while(node.notNull()) { Result attrs = node->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { ATQNameOrDerived::Ptr name = att->dmNodeName(context); if(name.notNull()) { const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(XPath2Utils::equals(xmlLang, node_name) && XPath2Utils::equals(xmlLangNamespace, node_uri)) { const XMLCh *value = att->dmStringValue(context); const XMLCh* asLower = XPath2Utils::toLower(value, context->getMemoryManager()); int dashLocation = XMLString::indexOf(asLower, chDash); if(dashLocation!=-1 && !isSubLang) { asLower = XPath2Utils::subString(asLower, 0, dashLocation, memMgr); } return Sequence(context->getItemFactory()->createBoolean(XPath2Utils::equals(asLower, xmlLangValue), context), memMgr); } } } node = node->dmParent(context); } return Sequence(context->getItemFactory()->createBoolean(false, context), memMgr); } XQilla-2.3.4/src/functions/FunctionConcat.cpp0000644001725400016040000000373213273140037016064 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionConcat::name[] = { chLatin_c, chLatin_o, chLatin_n, chLatin_c, chLatin_a, chLatin_t, chNull }; const unsigned int FunctionConcat::minArgs = 2; const unsigned int FunctionConcat::maxArgs = 10000; // A reasonably large number /** * fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?, ...) as xs:string **/ FunctionConcat::FunctionConcat(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType?) as xs:string", args, memMgr) { } Sequence FunctionConcat::createSequence(DynamicContext* context, int flags) const { XMLBuffer result; for(unsigned int i = 1; i <= getNumArgs(); ++i) { Item::Ptr item = getParamNumber(i,context)->next(context); if(!item.isNull()) { result.append(item->asString(context)); } } return Sequence(context->getItemFactory()->createString(result.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionPower.cpp0000644001725400016040000000312513273140037015745 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionPower::name[] = { chLatin_p, chLatin_o, chLatin_w, chLatin_e, chLatin_r, chNull }; const unsigned int FunctionPower::minArgs = 2; const unsigned int FunctionPower::maxArgs = 2; /* * math:power($arg as numeric?, $arg as numeric?) as numeric? */ FunctionPower::FunctionPower(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionPower::createResult(DynamicContext* context, int flags) const { Numeric::Ptr base = getNumericParam(1, context); if(base.isNull()) return 0; Numeric::Ptr pow = getNumericParam(2, context); if(pow.isNull()) return 0; return (Item::Ptr)base->power(pow, context); } XQilla-2.3.4/src/functions/FunctionNormalizeSpace.cpp0000644001725400016040000000635413273140037017574 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionNormalizeSpace::name[] = { chLatin_n, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull }; const unsigned int FunctionNormalizeSpace::minArgs = 0; const unsigned int FunctionNormalizeSpace::maxArgs = 1; /** * fn:normalize-space() as xs:string * fn:normalize-space($arg as xs:string?) as xs:string **/ FunctionNormalizeSpace::FunctionNormalizeSpace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } ASTNode* FunctionNormalizeSpace::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { FunctionString *arg = new (mm) FunctionString(VectorOfASTNodes(XQillaAllocator(mm)), mm); arg->setLocationInfo(this); _args.push_back(arg); } resolveArguments(context); return this; } Sequence FunctionNormalizeSpace::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); Item::Ptr strParm = getParamNumber(1,context)->next(context); if(strParm.isNull()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); const XMLCh *str = strParm->asString(context); // Skip leading whitespace while(*str) { XMLCh ch = *str; if((ch == 0x9) || (ch == 0xA) || (ch == 0xD) || (ch == 0x20)) { ++str; continue; } break; } XMLBuffer buf(XMLString::stringLen(str)); // Compact whitespace, and skip trailing whitespace bool whitespace = false; while(*str) { XMLCh ch = *str; if((ch == 0x9) || (ch == 0xA) || (ch == 0xD) || (ch == 0x20)) { whitespace = true; } else { if(whitespace) buf.append(' '); buf.append(ch); whitespace = false; } ++str; } return Sequence(context->getItemFactory()->createString(buf.getRawBuffer(), context), mm); } XQilla-2.3.4/src/functions/FunctionLookup.cpp0000644001725400016040000006101113273140037016120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE #define SECONDARY_KEY(func)(((func)->getMinArgs() << 16) | (func)->getMaxArgs()) FunctionLookup *FunctionLookup::g_globalFunctionTable = 0; XPath2MemoryManager *FunctionLookup::g_memMgr = 0; FunctionLookup::FunctionLookup(XPath2MemoryManager* memMgr) : _funcTable(197, false, memMgr), _exFuncTable(7, false, memMgr) { } FunctionLookup::~FunctionLookup() { } void FunctionLookup::insertFunction(FuncFactory *func) { // Use similar algorithm to lookup in order to detect overlaps // in argument numbers RefHash2KeysTableOfEnumerator iterator(const_cast* >(&_funcTable)); // // Walk the matches for the primary key (name) looking for overlaps: // ensure func->max < min OR func->min > max // iterator.setPrimaryKey(func->getURINameHash()); while(iterator.hasMoreElements()) { FuncFactory *entry= &(iterator.nextElement()); if ((func->getMaxArgs() < entry->getMinArgs()) || (func->getMinArgs() > entry->getMaxArgs())) continue; // overlap -- throw exception XMLBuffer buf; buf.set(X("Multiple functions have the same expanded QName and number of arguments {")); buf.append(func->getURI()); buf.append(X("}")); buf.append(func->getName()); buf.append(X("#")); if(func->getMinArgs() >= entry->getMinArgs() && func->getMinArgs() <= entry->getMaxArgs()) XPath2Utils::numToBuf((unsigned int)func->getMinArgs(), buf); else XPath2Utils::numToBuf((unsigned int)entry->getMinArgs(), buf); buf.append(X(" [err:XQST0034].")); XQThrow2(StaticErrorException,X("FunctionLookup::insertFunction"), buf.getRawBuffer()); } // Ok to add function size_t secondaryKey = SECONDARY_KEY(func); _funcTable.put((void*)func->getURINameHash(), (int)secondaryKey, func); } void FunctionLookup::removeFunction(FuncFactory *func) { size_t secondaryKey = SECONDARY_KEY(func); _funcTable.removeKey((void*)func->getURINameHash(), (int)secondaryKey); } ASTNode* FunctionLookup::lookUpFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { if (this != g_globalFunctionTable) { ASTNode *ret = g_globalFunctionTable->lookUpFunction( URI, fname, args, memMgr); if (ret) return ret; } RefHash2KeysTableOfEnumerator iterator(const_cast* >(&_funcTable)); // // Walk the matches for the primary key (name) looking for matches // based on allowable parameters // XMLBuffer key; key.set(fname); key.append(':'); key.append(URI); iterator.setPrimaryKey(key.getRawBuffer()); size_t nargs = args.size(); while(iterator.hasMoreElements()) { FuncFactory *entry= &(iterator.nextElement()); if (entry->getMinArgs() <= nargs && entry->getMaxArgs() >= nargs) return entry->createInstance(args, memMgr); } return NULL; } // // external functions are hashed on name+uri (primary) and numargs (secondary) // void FunctionLookup::insertExternalFunction(const ExternalFunction *func) { size_t secondaryKey = func->getNumberOfArguments(); _exFuncTable.put((void*)func->getURINameHash(), (int)secondaryKey, func); } const ExternalFunction *FunctionLookup::lookUpExternalFunction( const XMLCh* URI, const XMLCh* fname, size_t numArgs) const { size_t secondaryKey = numArgs; XMLBuffer key; key.set(fname); key.append(':'); key.append(URI); return _exFuncTable.get(key.getRawBuffer(), (int)secondaryKey); } void FunctionLookup::copyExternalFunctionsTo(DynamicContext *context) const { RefHash2KeysTableOfEnumerator en(const_cast*>(&_exFuncTable)); while(en.hasMoreElements()) { context->addExternalFunction(&en.nextElement()); } } /* * Global initialization and access */ static void initGlobalTable(FunctionLookup *t, MemoryManager *memMgr); // static XPath2MemoryManager* FunctionLookup::getMemoryManager() { return g_memMgr; } // static void FunctionLookup::initialize() { /* global table is allocated via the memory manager, so no need to delete it at this time if (g_globalFunctionTable) delete g_globalFunctionTable; */ if (g_memMgr) delete g_memMgr; g_memMgr = new XPath2MemoryManagerImpl(); g_globalFunctionTable = new (g_memMgr) FunctionLookup(g_memMgr); initGlobalTable(g_globalFunctionTable, g_memMgr); } // static void FunctionLookup::terminate() { if (g_memMgr) { delete g_memMgr; g_memMgr = 0; g_globalFunctionTable = 0; } /* no need to delete this -- memMgr cleans up if (g_globalFunctionTable) { delete g_globalFunctionTable; g_globalFunctionTable = 0; } */ } // static void FunctionLookup::insertGlobalFunction(FuncFactory *func) { g_globalFunctionTable->insertFunction(func); } // static void FunctionLookup::insertGlobalExternalFunction(const ExternalFunction *func) { g_globalFunctionTable->insertExternalFunction(func); } // static ASTNode* FunctionLookup::lookUpGlobalFunction( const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr, const FunctionLookup *contextTable) { if(contextTable) return contextTable->lookUpFunction(URI, fname, args, memMgr); return g_globalFunctionTable->lookUpFunction(URI, fname, args, memMgr); } // static const ExternalFunction *FunctionLookup::lookUpGlobalExternalFunction( const XMLCh* URI, const XMLCh* fname, size_t numArgs, const FunctionLookup *contextTable) { const ExternalFunction *ef = g_globalFunctionTable->lookUpExternalFunction( URI, fname, numArgs); if (!ef && contextTable) ef = contextTable->lookUpExternalFunction( URI, fname, numArgs); return ef; } #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // Updates #include // XSLT 2.0 functions #include #include // XQilla extension functions #include #include #include #include #include #include #include #include #include #include // Higher Order Functions extension functions #include #include //exslt math functions #include #include #include #include #include #include #include #include #include #include void FunctionLookup::insertUpdateFunctions(XPath2MemoryManager *memMgr) { // Update functions // fn:put insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); } static void initGlobalTable(FunctionLookup *t, MemoryManager *memMgr) { // From the XPath2 Function & Operators list // Accessors: // fn:node-name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:nilled t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:base-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:document-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Debug Functions: // fn:error t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:trace t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Special Constructor Functions: // fn:dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on numeric values: // fn:abs t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:ceiling t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:floor t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:round t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:round-half-to-even t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on strings // fn:codepoints-to-string t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string-to-codepoints t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:compare t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:concat t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:substring t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string-length t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:normalize-space t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:normalize-unicode t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:upper-case t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:lower-case t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:contains t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:starts-with t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:ends-with t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:matches t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:replace t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:tokenize t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on boolean values // fn:not t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on date values // fn:years-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:months-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:days-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:year-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:month-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:day-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:year-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:month-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:day-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-dateTime-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-date-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-time-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on QName values // fn:QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:prefix-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:local-name-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:namespace-uri-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on anyURI values // fn:resolve-URI t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on nodes // fn:name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:local-name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:namespace-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:number t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:lang t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:root t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on sequences // fn:empty t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:distinct-values t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:unordered t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:head t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:tail t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:count t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:id t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:idref t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:doc t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:doc-available t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:collection t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Context functions // fn:position t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:last t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:implicit-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:default-collation t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:static-base-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // XSLT 2.0 functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // XQilla extension functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); #ifdef HAVE_LIBTIDY t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); #endif // Higher Order Functions extension functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); //exslt math functions t->insertFunction(new (memMgr) FuncFactoryTemplate(EXSLTMathFunction::XMLChFunctionURI, FunctionAbs::name, 1, 1, memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); } XQilla-2.3.4/src/functions/FunctionDaysFromDuration.cpp0000644001725400016040000000513513273140037020106 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDaysFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDaysFromDuration::minArgs = 1; const unsigned int FunctionDaysFromDuration::maxArgs = 1; /* * fn:days-from-Duration($arg as xs:duration?) as xs:integer? */ FunctionDaysFromDuration::FunctionDaysFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionDaysFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.4/src/functions/FunctionNodeName.cpp0000644001725400016040000000513313273140037016340 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionNodeName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNodeName::minArgs = 1; const unsigned int FunctionNodeName::maxArgs = 1; /* * fn:node-name($arg as node()?) as xs:QName? */ FunctionNodeName::FunctionNodeName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:QName?", args, memMgr) { } ASTNode *FunctionNodeName::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(_args[0]->getStaticAnalysis().getStaticType().getMin() == 1 && _args[0]->getStaticAnalysis().getStaticType().isType(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE | StaticType::PI_TYPE | StaticType::NAMESPACE_TYPE)) { _src.getStaticType() = StaticType::QNAME_TYPE; } else { _src.getStaticType() = StaticType(StaticType::QNAME_TYPE, 0, 1); } return this; } Sequence FunctionNodeName::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1,context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); return Sequence(((Node*)item.get())->dmNodeName(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/CoreModule.xq0000644001725400016040000000201113273140037015040 00000000000000(: : Copyright (c) 2004-2009 : Oracle. All rights reserved. : : Licensed under the Apache License, Version 2.0 (the "License"); : you may not use this file except in compliance with the License. : You may obtain a copy of the License at : : http://www.apache.org/licenses/LICENSE-2.0 : : Unless required by applicable law or agreed to in writing, software : distributed under the License is distributed on an "AS IS" BASIS, : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. : See the License for the specific language governing permissions and : limitations under the License. :) module namespace core = "http://xqilla.sourceforge.net/core"; declare function core:to($a as xs:integer?, $b as xs:integer?) as xs:decimal* { if(empty($a) or empty($b)) then () else core:to_helper($a treat as xs:decimal, $b treat as xs:decimal) }; declare function core:to_helper($a as xs:decimal, $b as xs:decimal) as xs:decimal* { if($a gt $b) then () else ($a, core:to_helper($a + 1, $b)) }; XQilla-2.3.4/src/functions/FunctionCurrentTime.cpp0000644001725400016040000000452613273140037017120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../utils/DateUtils.hpp" #include // for sprintf const XMLCh FunctionCurrentTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentTime::minArgs = 0; const unsigned int FunctionCurrentTime::maxArgs = 0; /** * fn:current-time() as xs:time **/ FunctionCurrentTime::FunctionCurrentTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:time", args, memMgr) { } ASTNode *FunctionCurrentTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentTime::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentTime(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionTan.cpp0000644001725400016040000000301113273140037015365 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionTan::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTan::minArgs = 1; const unsigned int FunctionTan::maxArgs = 1; /* * math:tan($arg as numeric?) as numeric? */ FunctionTan::FunctionTan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionTan::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->tan(context); } XQilla-2.3.4/src/functions/FunctionCeiling.cpp0000644001725400016040000000411413273140037016222 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionCeiling::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCeiling::minArgs = 1; const unsigned int FunctionCeiling::maxArgs = 1; /* * fn:ceiling($arg as numeric?) as numeric? */ FunctionCeiling::FunctionCeiling(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionCeiling::createSequence(DynamicContext* context, int flags) const { Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(context->getMemoryManager()); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, context->getMemoryManager()); return Sequence(numericArg->ceiling(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionDistinctValues.cpp0000644001725400016040000002132013273140037017607 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionDistinctValues::name[] = { chLatin_d, chLatin_i, chLatin_s, chLatin_t, chLatin_i, chLatin_n, chLatin_c, chLatin_t, chDash, chLatin_v, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionDistinctValues::minArgs = 1; const unsigned int FunctionDistinctValues::maxArgs = 2; /** * fn:distinct-values($arg as xs:anyAtomicType*) as xs:anyAtomicType* * fn:distinct-values($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType* **/ FunctionDistinctValues::FunctionDistinctValues(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType*", args, memMgr) { } ASTNode *FunctionDistinctValues::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(_src.getStaticType().getMin() == 0 ? 0 : 1, _src.getStaticType().getMax()); return this; } static inline AnyAtomicType::AtomicObjectType getSortType(const AnyAtomicType::Ptr &a) { switch(a->getPrimitiveTypeIndex()) { case AnyAtomicType::ANY_URI: case AnyAtomicType::UNTYPED_ATOMIC: case AnyAtomicType::STRING: return AnyAtomicType::STRING; case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: return AnyAtomicType::DOUBLE; case AnyAtomicType::DAY_TIME_DURATION: case AnyAtomicType::YEAR_MONTH_DURATION: case AnyAtomicType::DURATION: return AnyAtomicType::DURATION; case AnyAtomicType::BASE_64_BINARY: return AnyAtomicType::BASE_64_BINARY; case AnyAtomicType::BOOLEAN: return AnyAtomicType::BOOLEAN; case AnyAtomicType::DATE: return AnyAtomicType::DATE; case AnyAtomicType::DATE_TIME: return AnyAtomicType::DATE_TIME; case AnyAtomicType::G_DAY: return AnyAtomicType::G_DAY; case AnyAtomicType::G_MONTH: return AnyAtomicType::G_MONTH; case AnyAtomicType::G_MONTH_DAY: return AnyAtomicType::G_MONTH_DAY; case AnyAtomicType::G_YEAR: return AnyAtomicType::G_YEAR; case AnyAtomicType::G_YEAR_MONTH: return AnyAtomicType::G_YEAR_MONTH; case AnyAtomicType::HEX_BINARY: return AnyAtomicType::HEX_BINARY; case AnyAtomicType::NOTATION: return AnyAtomicType::NOTATION; case AnyAtomicType::QNAME: return AnyAtomicType::QNAME; case AnyAtomicType::TIME: return AnyAtomicType::TIME; default: break; } assert(false); // Not supported return AnyAtomicType::STRING; } struct dvCompare { dvCompare(const Collation *collation, const DynamicContext *context) : collation_(collation), context_(context) {} bool operator()(const AnyAtomicType::Ptr &a, const AnyAtomicType::Ptr &b) const { AnyAtomicType::AtomicObjectType atype = getSortType(a); AnyAtomicType::AtomicObjectType btype = getSortType(b); if(atype != btype) return atype < btype; // Items are comparable switch(atype) { case AnyAtomicType::STRING: return collation_->compare(a->asString(context_), b->asString(context_)) < 0; case AnyAtomicType::DOUBLE: return ((const Numeric *)a.get())->compare((const Numeric *)b.get(), context_) < 0; case AnyAtomicType::DURATION: return ((const ATDurationOrDerived *)a.get())->compare((const ATDurationOrDerived *)b.get(), context_) < 0; case AnyAtomicType::BASE_64_BINARY: return ((const ATBase64BinaryOrDerived *)a.get())->compare((const ATBase64BinaryOrDerived *)b.get(), context_) < 0; case AnyAtomicType::BOOLEAN: return ((const ATBooleanOrDerived *)a.get())->compare((const ATBooleanOrDerived *)b.get(), context_) < 0; case AnyAtomicType::DATE: return ((const ATDateOrDerived *)a.get())->compare((const ATDateOrDerived *)b.get(), context_) < 0; case AnyAtomicType::DATE_TIME: return ((const ATDateTimeOrDerived *)a.get())->compare((const ATDateTimeOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_DAY: return ((const ATGDayOrDerived *)a.get())->compare((const ATGDayOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_MONTH: return ((const ATGMonthOrDerived *)a.get())->compare((const ATGMonthOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_MONTH_DAY: return ((const ATGMonthDayOrDerived *)a.get())->compare((const ATGMonthDayOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_YEAR: return ((const ATGYearOrDerived *)a.get())->compare((const ATGYearOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_YEAR_MONTH: return ((const ATGYearMonthOrDerived *)a.get())->compare((const ATGYearMonthOrDerived *)b.get(), context_) < 0; case AnyAtomicType::HEX_BINARY: return ((const ATHexBinaryOrDerived *)a.get())->compare((const ATHexBinaryOrDerived *)b.get(), context_) < 0; case AnyAtomicType::NOTATION: return ((const ATNotationOrDerived *)a.get())->compare((const ATNotationOrDerived *)b.get(), context_) < 0; case AnyAtomicType::QNAME: return ((const ATQNameOrDerived *)a.get())->compare((const ATQNameOrDerived *)b.get(), context_) < 0; case AnyAtomicType::TIME: return ((const ATTimeOrDerived *)a.get())->compare((const ATTimeOrDerived *)b.get(), context_) < 0; default: break; } assert(false); return false; } const Collation *collation_; const DynamicContext *context_; }; typedef std::set DistinctSet; class DistinctValueResult : public ResultImpl { public: DistinctValueResult(const FunctionDistinctValues *fdv, const DynamicContext *context); ~DistinctValueResult(); Item::Ptr next(DynamicContext *context); private: const FunctionDistinctValues *fdv_; Result parent_; bool toDo_; DistinctSet *alreadySeen_; }; DistinctValueResult::DistinctValueResult(const FunctionDistinctValues *fdv, const DynamicContext *context) : ResultImpl(fdv), fdv_(fdv), parent_(0), toDo_(true), alreadySeen_(0) { } DistinctValueResult::~DistinctValueResult() { delete alreadySeen_; } Item::Ptr DistinctValueResult::next(DynamicContext *context) { if(toDo_) { toDo_ = false; parent_ = fdv_->getParamNumber(1, context); Collation *collation; if(fdv_->getNumArgs() > 1) { const XMLCh* collName = fdv_->getParamNumber(2, context)->next(context)->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionDistinctValues::DistinctValueResult::next"), X("Invalid collationURI")); } collation = context->getCollation(collName, this); } else collation = context->getDefaultCollation(this); alreadySeen_ = new DistinctSet(dvCompare(collation, context)); } AnyAtomicType::Ptr item; while(true) { item = (const AnyAtomicType *)parent_->next(context).get(); if(item.isNull()) break; if(alreadySeen_->insert(item).second) return item; } parent_ = 0; return 0; } Result FunctionDistinctValues::createResult(DynamicContext* context, int flags) const { return new DistinctValueResult(this, context); } XQilla-2.3.4/src/functions/FunctionBaseURI.cpp0000644001725400016040000000412113273140037016100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionBaseURI::name[] = { chLatin_b, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionBaseURI::minArgs = 0; const unsigned int FunctionBaseURI::maxArgs = 1; /** * fn:base-uri() as xs:anyURI? * fn:base-uri($arg as node()?) as xs:anyURI? **/ FunctionBaseURI::FunctionBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI?", args, memMgr) { } ASTNode* FunctionBaseURI::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionBaseURI::createSequence(DynamicContext* context, int flags) const { Node::Ptr node = (Node*)getParamNumber(1, context)->next(context).get(); if(node.isNull()) return Sequence(context->getMemoryManager()); return node->dmBaseURI(context); } XQilla-2.3.4/src/functions/FunctionDoc.cpp0000644001725400016040000000604013273140037015355 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDoc::name[] = { chLatin_d, chLatin_o, chLatin_c, chNull }; const unsigned int FunctionDoc::minArgs = 1; const unsigned int FunctionDoc::maxArgs = 1; /** * fn:doc($uri as xs:string?) as document? **/ FunctionDoc::FunctionDoc(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionDoc::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(_args[0]->getStaticAnalysis().getStaticType().getMin() == 0) _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, 1); else _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 1, 1); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.availableDocumentsUsed(true); return this; } Sequence FunctionDoc::createSequence(DynamicContext* context, int flags) const { Item::Ptr uriArg = getParamNumber(1,context)->next(context); if(uriArg.isNull()) { return Sequence(context->getMemoryManager()); } const XMLCh *uri = uriArg->asString(context); // on Windows, we can have URIs using \ instead of /; let's normalize them if(uri != 0) { unsigned int len = XPath2Utils::uintStrlen(uri); AutoDeleteArray newURI(new XMLCh[len + 1]); const XMLCh *src = uri; XMLCh *dst = newURI; while(*src != 0) { if(*src == '\\') *dst = '/'; else *dst = *src; ++src; ++dst; } *dst = 0; uri = context->getMemoryManager()->getPooledString(newURI); } if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionDoc::createSequence"), X("Invalid argument to fn:doc function [err:FODC0005]")); return context->resolveDocument(uri, this, context->getProjection() ? queryPathTree_ : 0); } XQilla-2.3.4/src/functions/FunctionStartsWith.cpp0000644001725400016040000001005413273140037016764 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionStartsWith::name[] = { chLatin_s, chLatin_t, chLatin_a, chLatin_r, chLatin_t, chLatin_s, chDash, chLatin_w, chLatin_i, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionStartsWith::minArgs = 2; const unsigned int FunctionStartsWith::maxArgs = 3; /** * fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean **/ FunctionStartsWith::FunctionStartsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionStartsWith::boolResult(DynamicContext* context) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence sourceString=getParamNumber(1,context)->toSequence(context); Sequence findString=getParamNumber(2,context)->toSequence(context); const XMLCh* source = XMLUni::fgZeroLenString; if(!sourceString.isEmpty()) source=sourceString.first()->asString(context); const XMLCh* find = XMLUni::fgZeroLenString; if(!findString.isEmpty()) find=findString.first()->asString(context); // If the value of $operand1 is the zero-length string and the value of $operand2 is not the zero-length string, // then the function returns false. if(XMLString::stringLen(source)==0 && XMLString::stringLen(find)>0) return false; // If the value of $operand2 is the zero-length string, then the function returns true if(XMLString::stringLen(find)==0) return true; Collation* collation=NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionEndsWith::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); } else collation=context->getDefaultCollation(this); // Returns a boolean indicating whether or not the value of $operand1 ends with a string that is equal to the value // of $operand2 according to the specified collation if(XMLString::stringLen(find)>XMLString::stringLen(source)) { return false; } const XMLCh* string = XPath2Utils::subString(source, 0, XPath2Utils::uintStrlen(find), memMgr); return (collation->compare(string,find)==0); } Result FunctionStartsWith::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/functions/FunctionCurrentDate.cpp0000644001725400016040000000433613273140037017076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../utils/DateUtils.hpp" #include const XMLCh FunctionCurrentDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentDate::minArgs = 0; const unsigned int FunctionCurrentDate::maxArgs = 0; /** * fn:current-date() as xs:date **/ FunctionCurrentDate::FunctionCurrentDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:date", args, memMgr) { } ASTNode *FunctionCurrentDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentDate::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentDate(context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionSecondsFromTime.cpp0000644001725400016040000000532013273140037017711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromTime::minArgs = 1; const unsigned int FunctionSecondsFromTime::maxArgs = 1; /* * fn:seconds-from-time($arg as xs:time?) as xs:decimal? */ FunctionSecondsFromTime::FunctionSecondsFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:decimal?", args, memMgr) { } ASTNode *FunctionSecondsFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionSecondsFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.4/src/functions/FunctionEndsWith.cpp0000644001725400016040000001100413273140037016371 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionEndsWith::name[] = { chLatin_e, chLatin_n, chLatin_d, chLatin_s, chDash, chLatin_w, chLatin_i, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionEndsWith::minArgs = 2; const unsigned int FunctionEndsWith::maxArgs = 3; /* * fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean */ FunctionEndsWith::FunctionEndsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionEndsWith::boolResult(DynamicContext* context) const { Sequence sourceString=getParamNumber(1,context)->toSequence(context); Sequence findString=getParamNumber(2,context)->toSequence(context); const XMLCh* source = XMLUni::fgZeroLenString; if(!sourceString.isEmpty()) source=sourceString.first()->asString(context); const XMLCh* find = XMLUni::fgZeroLenString; if(!findString.isEmpty()) find=findString.first()->asString(context); // If the value of $operand1 is the zero-length string and the value of $operand2 is not the zero-length string, // then the function returns false. if(XMLString::stringLen(source)==0 && XMLString::stringLen(find)>0) return false; // If the value of $operand2 is the zero-length string, then the function returns true if(XMLString::stringLen(find)==0) return true; Collation* collation=NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionEndsWith::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); } else collation=context->getDefaultCollation(this); // Returns a boolean indicating whether or not the value of $operand1 ends with a string that is equal to the value // of $operand2 according to the specified collation if(XMLString::stringLen(find)>XMLString::stringLen(source)) return false; int i,j; // for(i = XMLString::stringLen(source)-1, j=XMLString::stringLen(find)-1; i >=0 && j >=0; i--,j--) for(i = XPath2Utils::intStrlen(source)-1, j=XPath2Utils::intStrlen(find)-1; i >=0 && j >=0; i--,j--) { const XMLCh *string1 = XPath2Utils::subString(source, i,1, context->getMemoryManager()); const XMLCh *string2 = XPath2Utils::subString(find, j, 1, context->getMemoryManager()); bool result = (collation->compare(string1, string2)!=0); if(result) { return false; } } return true; } Result FunctionEndsWith::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/functions/XQillaFunction.cpp0000644001725400016040000000353313273140037016046 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif // xqilla const XMLCh XQillaFunction::XQillaPrefix[] = { chLatin_x, chLatin_q, chLatin_i, chLatin_l, chLatin_l, chLatin_a, chNull }; /* http://xqilla.sourceforge.net/Functions */ const XMLCh XQillaFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_x, chLatin_q, chLatin_i, chLatin_l, chLatin_l, chLatin_a, chPeriod, chLatin_s, chLatin_o, chLatin_u, chLatin_r, chLatin_c, chLatin_e, chLatin_f, chLatin_o, chLatin_r, chLatin_g, chLatin_e, chPeriod, chLatin_n, chLatin_e, chLatin_t, chForwardSlash, chLatin_F, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQillaFunction::XQillaFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr) { uri_ = XMLChFunctionURI; } XQilla-2.3.4/src/functions/FunctionAdjustTimeToTimezone.cpp0000644001725400016040000001045713273140037020746 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustTimeToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustTimeToTimezone::minArgs = 1; const unsigned int FunctionAdjustTimeToTimezone::maxArgs = 2; /* * fn:adjust-time-to-timezone($arg as xs:time?) as xs:time? * fn:adjust-time-to-timezone($arg as xs:time?, $timezone as xs:dayTimeDuration?) as xs:time? */ FunctionAdjustTimeToTimezone::FunctionAdjustTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?, $timezone as xs:dayTimeDuration?) as xs:time?", args, memMgr) { } ASTNode *FunctionAdjustTimeToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustTimeToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATTimeOrDerived* time = (const ATTimeOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(time->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustTimeToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(time->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.4/src/functions/FunctionContains.cpp0000644001725400016040000000712413273140037016432 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionContains::name[] = { chLatin_c, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_i, chLatin_n, chLatin_s, chNull }; const unsigned int FunctionContains::minArgs = 2; const unsigned int FunctionContains::maxArgs = 3; /** * fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:contains($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean **/ FunctionContains::FunctionContains(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionContains::boolResult(DynamicContext* context) const { Sequence str1 = getParamNumber(1,context)->toSequence(context); Sequence str2 = getParamNumber(2,context)->toSequence(context); Collation* collation = NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionContains::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); if(collation==NULL) XQThrow(FunctionException,X("FunctionContains::createSequence"),X("Collation object is not available")); } else collation=context->getCollation(CodepointCollation::getCodepointCollationName(), this); const XMLCh* container = XMLUni::fgZeroLenString; if(!str1.isEmpty()) container=str1.first()->asString(context); const XMLCh* pattern = XMLUni::fgZeroLenString; if(!str2.isEmpty()) pattern=str2.first()->asString(context); if(XMLString::stringLen(pattern)==0) return true; else if(XMLString::stringLen(container)==0) return false; return XMLString::patternMatch(container, pattern) > -1; } Result FunctionContains::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/functions/FunctionAtan.cpp0000644001725400016040000000307613273140037015541 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAtan::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAtan::minArgs = 1; const unsigned int FunctionAtan::maxArgs = 1; /* * math:asin($arg as numeric?) as numeric? */ FunctionAtan::FunctionAtan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAtan::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->atan(context); } XQilla-2.3.4/src/functions/FunctionParseJSON.cpp0000644001725400016040000002242113273140037016415 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include // for sprintf #ifdef _MSC_VER #define snprintf _snprintf #endif #include #include #include #include #include #include #include #include #include #include "../yajl/yajl_parse.h" XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionParseJSON::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_j, chLatin_s, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionParseJSON::minArgs = 1; const unsigned int FunctionParseJSON::maxArgs = 1; /** * xqilla:parse-json($xml as xs:string?) as element()? */ FunctionParseJSON::FunctionParseJSON(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($xml as xs:string?) as element()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseJSON::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } const XMLCh JSON2XML_json[] = { 'j', 's', 'o', 'n', 0 }; const XMLCh JSON2XML_item[] = { 'i', 't', 'e', 'm', 0 }; const XMLCh JSON2XML_pair[] = { 'p', 'a', 'i', 'r', 0 }; const XMLCh JSON2XML_name[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh JSON2XML_type[] = { 't', 'y', 'p', 'e', 0 }; const XMLCh JSON2XML_array[] = { 'a', 'r', 'r', 'a', 'y', 0 }; const XMLCh JSON2XML_object[] = { 'o', 'b', 'j', 'e', 'c', 't', 0 }; const XMLCh JSON2XML_string[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh JSON2XML_boolean[] = { 'b', 'o', 'o', 'l', 'e', 'a', 'n', 0 }; const XMLCh JSON2XML_number[] = { 'n', 'u', 'm', 'b', 'e', 'r', 0 }; const XMLCh JSON2XML_null[] = { 'n', 'u', 'l', 'l', 0 }; struct JSON2XML_Env { EventHandler *handler; enum Type { MAP, ARRAY }; vector stack; void startValue() { if(stack.empty()) { // Do nothing } else if(stack.back() == JSON2XML_Env::ARRAY) { handler->startElementEvent(0, 0, JSON2XML_item); } } void endValue() { if(stack.empty()) { // Do nothing } else if(stack.back() == JSON2XML_Env::MAP) { handler->endElementEvent(0, 0, JSON2XML_pair, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } else { handler->endElementEvent(0, 0, JSON2XML_item, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } } }; int json2xml_null(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_null, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->endValue(); return 1; } int json2xml_boolean(void * ctx, int boolVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_boolean, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(boolVal ? SchemaSymbols::fgATTVAL_TRUE : SchemaSymbols::fgATTVAL_FALSE); env->endValue(); return 1; } int json2xml_integer(void *ctx, long integerVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; char intString[256]; snprintf(intString, 256,"%lld", (xq_int64_t)integerVal); env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_number, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(intString)); env->endValue(); return 1; } int json2xml_double(void *ctx, double doubleVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; char doubleString[256]; snprintf(doubleString, 256,"%lf", doubleVal); env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_number, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(doubleString)); env->endValue(); return 1; } int json2xml_string(void *ctx, const unsigned char * stringVal, unsigned int stringLen) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; AutoDeleteArray str(new char[stringLen + 1]); memcpy(str.get(), stringVal, stringLen); str.get()[stringLen] = 0; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_string, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(str.get())); env->endValue(); return 1; } int json2xml_map_key(void *ctx, const unsigned char * stringVal, unsigned int stringLen) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; AutoDeleteArray str(new char[stringLen + 1]); memcpy(str.get(), stringVal, stringLen); str.get()[stringLen] = 0; env->handler->startElementEvent(0, 0, JSON2XML_pair); env->handler->attributeEvent(0, 0, JSON2XML_name, X(str.get()), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); return 1; } int json2xml_start_map(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_object, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->stack.push_back(JSON2XML_Env::MAP); return 1; } int json2xml_end_map(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->stack.pop_back(); env->endValue(); return 1; } int json2xml_start_array(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_array, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->stack.push_back(JSON2XML_Env::ARRAY); return 1; } int json2xml_end_array(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->stack.pop_back(); env->endValue(); return 1; } static yajl_callbacks json2xml_callbacks = { json2xml_null, json2xml_boolean, json2xml_integer, json2xml_double, json2xml_string, json2xml_start_map, json2xml_map_key, json2xml_end_map, json2xml_start_array, json2xml_end_array }; void FunctionParseJSON::parseJSON(const XMLCh *jsonString, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { UTF8Str utf8(jsonString); JSON2XML_Env env; env.handler = handler; handler->startElementEvent(0, 0, JSON2XML_json); yajl_parser_config cfg = { 0 }; yajl_handle yajl = yajl_alloc(&json2xml_callbacks, &cfg, &env); yajl_status stat = yajl_parse(yajl, (unsigned char*)utf8.str(), (unsigned int)strlen(utf8.str())); if(stat != yajl_status_ok) { XMLBuffer buf; buf.append(X("JSON ")); unsigned char *str = yajl_get_error(yajl, 1, (unsigned char*)utf8.str(), (unsigned int)strlen(utf8.str())); buf.append(X((char*)str)); yajl_free_error(str); XQThrow3(FunctionException, X("FunctionParseJSON::parseJSON"), buf.getRawBuffer(), location); } handler->endElementEvent(0, 0, JSON2XML_json, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } Sequence FunctionParseJSON::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseJSON(item->asString(context), handler, context, this); handler->endEvent(); return builder->getSequence(); } XQilla-2.3.4/src/functions/FunctionCodepointsToString.cpp0000644001725400016040000000642513273140037020460 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionCodepointsToString::name[] = { chLatin_c, chLatin_o, chLatin_d, chLatin_e, chLatin_p, chLatin_o, chLatin_i, chLatin_n, chLatin_t, chLatin_s, chDash, chLatin_t, chLatin_o, chDash, chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionCodepointsToString::minArgs = 1; const unsigned int FunctionCodepointsToString::maxArgs = 1; /** * fn:codepoints-to-string($srcval as integer*) => string * Creates a string from a sequence of codepoints. **/ FunctionCodepointsToString::FunctionCodepointsToString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($srcval as xs:integer*) as xs:string", args, memMgr) // 1 argument { } Sequence FunctionCodepointsToString::createSequence(DynamicContext* context, int flags) const { XMLBuffer result(1023, context->getMemoryManager()); Sequence arg = getParamNumber(1,context)->toSequence(context); Sequence::iterator end = arg.end(); for(Sequence::iterator i = arg.begin(); i != end; ++i) { XMLInt32 ch=((const ATDecimalOrDerived::Ptr)*i)->treatAsCodepoint(context); if ( ch >= 0x10000) { XMLCh one, two; RegxUtil::decomposeToSurrogates(ch, one, two); result.append(one); result.append(two); } else result.append((XMLCh)ch); } unsigned int len = (unsigned int) result.getLen(); const XMLCh* str=result.getRawBuffer(); for(unsigned int j=0;jgetItemFactory()->createString(str, context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionAnalyzeString.cpp0000644001725400016040000001012713273140037017443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionAnalyzeString::name[] = { chLatin_a, chLatin_n, chLatin_a, chLatin_l, chLatin_y, chLatin_z, chLatin_e, chDash, chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionAnalyzeString::minArgs = 3; const unsigned int FunctionAnalyzeString::maxArgs = 4; /** * xqilla:analyze-string($input as xs:string?, $pattern as xs:string, * $action as function(xs:string, xs:boolean) as item()*) as item()* * xqilla:analyze-string($input as xs:string?, $pattern as xs:string, * $action as function(xs:string, xs:boolean) as item()*, $flags as xs:string) as item()* */ FunctionAnalyzeString::FunctionAnalyzeString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?, $pattern as xs:string, " "$action as function(xs:string, xs:boolean) as item()*, $flags as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionAnalyzeString::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(0); calculateSRCForArguments(context); // TBD Precompile the regex - jpcs if(_args[2]->getStaticAnalysis().getStaticType().getReturnType()) { _src.getStaticType() = *_args[2]->getStaticAnalysis().getStaticType().getReturnType(); _src.getStaticType().setCardinality(0, StaticType::UNLIMITED); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } return this; } class FunctionAnalyzeStringResult : public AnalyzeStringResult { public: FunctionAnalyzeStringResult(const FunctionAnalyzeString *ast) : AnalyzeStringResult(ast), ast_(ast), func_(0) { } const XMLCh *getInput(DynamicContext *context) { return ast_->getParamNumber(1, context)->next(context)->asString(context); } const XMLCh *getPattern(DynamicContext *context) { return ast_->getParamNumber(2, context)->next(context)->asString(context); } const XMLCh *getFlags(DynamicContext *context) { if(ast_->getNumArgs() == 4) return ast_->getParamNumber(4, context)->next(context)->asString(context); return XMLUni::fgZeroLenString; } Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) { if(func_.isNull()) func_ = (FunctionRef*)ast_->getParamNumber(3, context)->next(context).get(); VectorOfResults args; args.push_back(Result(context->getItemFactory()->createString(matchString, context))); args.push_back(Result(context->getItemFactory()->createBoolean(match, context))); return func_->execute(args, context, this); } private: const FunctionAnalyzeString *ast_; FunctionRef::Ptr func_; }; Result FunctionAnalyzeString::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new FunctionAnalyzeStringResult(this)); } XQilla-2.3.4/src/functions/BuiltInModules.cpp0000644001725400016040000000175513273140037016051 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include "CoreModule.hpp" #include "FnModule.hpp" XERCES_CPP_NAMESPACE_USE; const DelayedModule &BuiltInModules::core = core_module; const DelayedModule &BuiltInModules::fn = fn_module; XQilla-2.3.4/src/functions/FunctionTokenize.cpp0000644001725400016040000001377513273140037016455 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionTokenize::name[] = { chLatin_t, chLatin_o, chLatin_k, chLatin_e, chLatin_n, chLatin_i, chLatin_z, chLatin_e, chNull }; const unsigned int FunctionTokenize::minArgs = 2; const unsigned int FunctionTokenize::maxArgs = 3; /** * fn:tokenize($input as xs:string?, $pattern as xs:string) as xs:string* * fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string* */ FunctionTokenize::FunctionTokenize(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string*", args, memMgr) { } ASTNode *FunctionTokenize::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 2 args, and regexp should be a constant, //or there is a flags argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 2 || (getNumArgs() == 3 && _args[2]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 3) { Item::Ptr optsItem = getParamNumber(3, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionTokenize::staticTypingImpl"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); if(regExp_->matches(XMLUni::fgZeroLenString)) XQThrow(FunctionException, X("FunctionTokenize::staticTypingImpl"), X("The pattern matches the zero-length string [err:FORX0003]")); } catch (ParseException &e){ processParseException(e, "FunctionTokenize::staticTypingImpl", memMgr); } } return this; } Sequence FunctionTokenize::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); // If the value of $operand1 is the zero-length string, the empty sequence is returned. if(XPath2Utils::equals(input, XMLUni::fgZeroLenString)) return Sequence(memMgr); //Now attempt to tokenize AutoDelete > toks(0); if(regExp_) { try { toks.set(regExp_->tokenize(input)); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } } else { const XMLCh *pattern=getParamNumber(2,context)->next(context)->asString(context); const XMLCh *options = XMLUni::fgZeroLenString; if(getNumArgs()>2) options=getParamNumber(3,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionTokenize::createSequence"); try { // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf(1023, context->getMemoryManager()); optionsBuf.set(options); optionsBuf.append(chLatin_H); RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), memMgr); if(regEx.matches(XMLUni::fgZeroLenString)) XQThrow(FunctionException, X("FunctionTokenize::createSequence"), X("The pattern matches the zero-length string [err:FORX0003]")); toks.set(regEx.tokenize(input)); } catch (ParseException &e){ processParseException(e, "FunctionTokenize::createSequence", memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionTokenize::createSequence"); } } Sequence resultSeq(toks->size(),memMgr); for(unsigned int i = 0; i < toks->size(); ++i){ resultSeq.addItem(context->getItemFactory()->createString(toks->elementAt(i), context)); } return resultSeq; } void FunctionTokenize::processRuntimeException(RuntimeException &e, const char* sourceMsg) const { if(e.getCode()==XMLExcepts::Regex_InvalidRepPattern) XQThrow(FunctionException, X(sourceMsg), X("Invalid replacement pattern [err:FORX0004]")); else XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } XQilla-2.3.4/src/functions/FunctionDayFromDate.cpp0000644001725400016040000000477313273140037017022 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDayFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDayFromDate::minArgs = 1; const unsigned int FunctionDayFromDate::maxArgs = 1; /* * fn:day-from-date($arg as xs:date?) as xs:integer? */ FunctionDayFromDate::FunctionDayFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionDayFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDayFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.4/src/functions/FnModule.hpp0000644001725400016040000010633713273141207014672 00000000000000// Auto-generated by compile-delayed-module from ../src/functions/FnModule.xq // DO NOT EDIT // ../src/functions/FnModule.xq static const XMLCh fn_file[] = { 46, 46, 47, 115, 114, 99, 47, 102, 117, 110, 99, 116, 105, 111, 110, 115, 47, 70, 110, 77, 111, 100, 117, 108, 101, 46, 120, 113, 0 }; // fn static const XMLCh fn_prefix[] = { 102, 110, 0 }; // http://www.w3.org/2005/xpath-functions static const XMLCh fn_uri[] = { 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 53, 47, 120, 112, 97, 116, 104, 45, 102, 117, 110, 99, 116, 105, 111, 110, 115, 0 }; static const DelayedModule::FuncDef fn_functions[] = { { "data", 1, false, 20, 1, "declare function data($a as item()*) as xs:anyAtomicType*\n" "{\n" " $a\n" "}\n" }, { "string-join", 1, false, 28, 1, "declare function string-join($seq as xs:string*) as xs:string\n" "{\n" " string-join($seq, \"\")\n" "}\n" }, { "string-join", 2, false, 33, 1, "declare function string-join($seq as xs:string*, $join as xs:string) as xs:string\n" "{\n" " if(empty($seq)) then \"\"\n" " else string-join-helper($seq, $join)\n" "}\n" }, { "string-join-helper", 2, true, 39, 1, "declare private function string-join-helper($seq as xs:string*, $join as xs:string) as xs:string\n" "{\n" " if(empty(tail($seq))) then head($seq)\n" " else concat(head($seq), $join, string-join-helper(tail($seq), $join))\n" "}\n" }, { "substring-before", 2, false, 45, 1, "declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string\n" "{\n" " substring-before($arg1, $arg2, default-collation())\n" "}\n" }, { "substring-before", 3, false, 50, 1, "declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string)\n" " as xs:string\n" "{\n" " let $arg1 := if(empty($arg1)) then \"\" else $arg1\n" " let $arg2 := if(empty($arg2)) then \"\" else $arg2\n" " let $arg2len := string-length($arg2)\n" " return\n" " substring($arg1, 1,\n" " string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) - 1)\n" "}\n" }, { "substring-after", 2, false, 61, 1, "declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string\n" "{\n" " substring-after($arg1, $arg2, default-collation())\n" "}\n" }, { "substring-after", 3, false, 66, 1, "declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string)\n" " as xs:string\n" "{\n" " let $arg1 := if(empty($arg1)) then \"\" else $arg1\n" " let $arg2 := if(empty($arg2)) then \"\" else $arg2\n" " let $arg2len := string-length($arg2)\n" " let $index := string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation)\n" " return\n" " if($index eq 0) then \"\" else substring($arg1, $index + $arg2len)\n" "}\n" }, { "string-index-of", 6, true, 77, 1, "declare private function string-index-of($str as xs:string, $index as xs:decimal, $endindex as xs:decimal,\n" " $tofind as xs:string, $tofindlen as xs:decimal, $collation as xs:string) as xs:decimal\n" "{\n" " if($index gt $endindex) then 0\n" " else if(compare($tofind, substring($str, $index, $tofindlen), $collation) eq 0) then $index\n" " else string-index-of($str, $index + 1, $endindex, $tofind, $tofindlen, $collation)\n" "}\n" }, { "codepoint-equal", 2, false, 85, 1, "declare function codepoint-equal($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?\n" "{\n" " compare($arg1, $arg2, \"http://www.w3.org/2005/xpath-functions/collation/codepoint\") eq 0\n" "}\n" }, { "translate", 3, false, 90, 1, "declare function translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $in := string-to-codepoints($arg)\n" " let $map := string-to-codepoints($mapString)\n" " let $trans := string-to-codepoints($transString)\n" " for $c in $in\n" " let $index := head(index-of($map, $c))\n" " return\n" " if(empty($index)) then $c else $trans[$index]\n" " )\n" "}\n" }, { "codepoint-in-utf8", 1, true, 103, 1, "declare private function codepoint-in-utf8($c as xs:integer) as xs:integer+\n" "{\n" " if($c < 128) then $c\n" " else if($c < 2048) then (\n" " ($c idiv 64) + 192,\n" " ($c mod 64) + 128\n" " )\n" " else if($c < 65536) then (\n" " ($c idiv 4096) + 224,\n" " (($c idiv 64) mod 64) + 128,\n" " ($c mod 64) + 128\n" " )\n" " else (\n" " ($c idiv 262144) + 240,\n" " (($c idiv 4096) mod 64) + 128,\n" " (($c idiv 64) mod 64) + 128,\n" " ($c mod 64) + 128\n" " )\n" "}\n" }, { "percent-encode", 1, true, 123, 1, "declare private function percent-encode($c as xs:integer) as xs:integer+\n" "{\n" " (: Codepoint for \"%\" :)\n" " let $percent := 37\n" " (: Codepoints for \"0\" - \"9\", \"A\" - \"F\" :)\n" " let $hex := (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70)\n" " for $byte in codepoint-in-utf8($c)\n" " return (\n" " $percent,\n" " $hex[($byte idiv 16) + 1],\n" " $hex[($byte mod 16) + 1]\n" " )\n" "}\n" }, { "encode-for-uri", 1, false, 137, 1, "declare function encode-for-uri($uri-part as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $A := string-to-codepoints(\"A\")\n" " let $Z := string-to-codepoints(\"Z\")\n" " let $a := string-to-codepoints(\"a\")\n" " let $z := string-to-codepoints(\"z\")\n" " let $d0 := string-to-codepoints(\"0\")\n" " let $d9 := string-to-codepoints(\"9\")\n" " let $hyphen := string-to-codepoints(\"-\")\n" " let $underscore := string-to-codepoints(\"_\")\n" " let $fullstop := string-to-codepoints(\".\")\n" " let $tilde := string-to-codepoints(\"~\")\n" "\n" " for $c in string-to-codepoints($uri-part)\n" " return\n" " if(($c ge $A and $c le $Z) or\n" " ($c ge $a and $c le $z) or\n" " ($c ge $d0 and $c le $d9) or\n" " $c eq $hyphen or $c eq $underscore or\n" " $c eq $fullstop or $c eq $tilde)\n" " then $c\n" " else percent-encode($c)\n" " )\n" "}\n" }, { "iri-to-uri", 1, false, 163, 1, "declare function iri-to-uri($iri as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $leftangle := string-to-codepoints(\"<\")\n" " let $rightangle := string-to-codepoints(\">\")\n" " let $doublequote := string-to-codepoints('\"')\n" " let $space := string-to-codepoints(\" \")\n" " let $leftcurly := string-to-codepoints(\"{\")\n" " let $rightcurly := string-to-codepoints(\"}\")\n" " let $bar := string-to-codepoints(\"|\")\n" " let $backslash := 92\n" " let $hat := string-to-codepoints(\"^\")\n" " let $backtick := string-to-codepoints(\"`\")\n" "\n" " for $c in string-to-codepoints($iri)\n" " return\n" " if($c lt 32 or $c gt 126 or\n" " $c eq $leftangle or $c eq $rightangle or\n" " $c eq $doublequote or $c eq $space or\n" " $c eq $leftcurly or $c eq $rightcurly or\n" " $c eq $bar or $c eq $backslash or\n" " $c eq $hat or $c eq $backtick)\n" " then percent-encode($c)\n" " else $c\n" " )\n" "}\n" }, { "escape-html-uri", 1, false, 190, 1, "declare function escape-html-uri($iri as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " for $c in string-to-codepoints($iri)\n" " return\n" " if($c lt 32 or $c gt 126)\n" " then percent-encode($c)\n" " else $c\n" " )\n" "}\n" }, { "resolve-QName", 2, false, 204, 1, "declare function resolve-QName($qname as xs:string?, $element as element()) as xs:QName?\n" "{\n" " typeswitch($qname)\n" " case $qname as xs:string return\n" " let $mock := QName(\"dummy\", $qname)\n" " let $uri := namespace-uri-for-prefix(prefix-from-QName($mock), $element)\n" " return\n" " if(empty(prefix-from-QName($mock)) or exists($uri)) then QName($uri, $qname)\n" " else error(xs:QName(\"err:FONS0004\"), concat(\"No namespace found for prefix: \"\"\", prefix-from-QName($mock), \"\"\"\"))\n" " default return ()\n" "}\n" }, { "namespace-uri-for-prefix", 2, false, 216, 1, "declare function namespace-uri-for-prefix($prefix as xs:string?, $element as element()) as xs:anyURI?\n" "{\n" " let $prefix := if(empty($prefix)) then \"\" else $prefix\n" " return $element/namespace::*[name() eq $prefix]/xs:anyURI(.)\n" "}\n" }, { "in-scope-prefixes", 1, false, 222, 1, "declare function in-scope-prefixes($element as element()) as xs:string*\n" "{\n" " $element/namespace::*/name()\n" "}\n" }, { "true", 0, false, 230, 1, "declare function true() as xs:boolean\n" "{\n" " xs:boolean(\"1\")\n" "}\n" }, { "false", 0, false, 235, 1, "declare function false() as xs:boolean\n" "{\n" " xs:boolean(\"0\")\n" "}\n" }, { "boolean", 1, false, 240, 1, "declare function boolean($arg as item()*) as xs:boolean\n" "{\n" " $arg and true()\n" "}\n" }, { "exists", 1, false, 245, 1, "declare function exists($arg as item()*) as xs:boolean\n" "{\n" " not(empty($arg))\n" "}\n" }, { "zero-or-one", 1, false, 253, 1, "declare function zero-or-one($arg as item()*) as item()?\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item()? return $arg_\n" " default return error(xs:QName(\"err:FORG0003\"), \"Sequence contains more then one item\")\n" "}\n" }, { "one-or-more", 1, false, 260, 1, "declare function one-or-more($arg as item()*) as item()+\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item()+ return $arg_\n" " default return error(xs:QName(\"err:FORG0004\"), \"Sequence is empty\")\n" "}\n" }, { "exactly-one", 1, false, 267, 1, "declare function exactly-one($arg as item()*) as item()\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item() return $arg_\n" " case empty-sequence() return error(xs:QName(\"err:FORG0005\"), \"Sequence is empty\")\n" " default return error(xs:QName(\"err:FORG0005\"), \"Sequence contains more then one item\")\n" "}\n" }, { "index-of", 2, false, 275, 1, "declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType) as xs:integer*\n" "{\n" " (: Check for NaN :)\n" " if($search ne $search) then () else index-of-helper($seq, $search, default-collation())\n" "}\n" }, { "index-of", 3, false, 281, 1, "declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType,\n" " $collation as xs:string) as xs:integer*\n" "{\n" " (: Check for NaN :)\n" " if($search ne $search) then () else index-of-helper($seq, $search, $collation)\n" "}\n" }, { "index-of-helper", 3, true, 288, 1, "declare private function index-of-helper($seq as xs:anyAtomicType*, $search as xs:anyAtomicType,\n" " $collation as xs:string) as xs:integer*\n" "{\n" " for $s at $p in $seq\n" " where empty(tail(distinct-values(($s, $search), $collation)))\n" " return $p\n" "}\n" }, { "insert-before", 3, false, 296, 1, "declare function insert-before($target as item()*, $position as xs:integer, $inserts as item()*)\n" " as item()*\n" "{\n" " if($position le 1 or empty($inserts)) then ($inserts, $target)\n" " else (head($target), insert-before(tail($target), $position - 1, $inserts))\n" "}\n" }, { "remove", 2, false, 303, 1, "declare function remove($target as item()*, $position as xs:integer) as item()*\n" "{\n" " $target[position() ne $position]\n" "}\n" }, { "reverse", 1, false, 308, 1, "declare function reverse($seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else (reverse(tail($seq)), head($seq))\n" "}\n" }, { "subsequence", 2, false, 314, 1, "declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()*\n" "{\n" " let $s := round($startingLoc)\n" " return\n" " if($s < 1) then $sourceSeq\n" " else xqilla:drop($sourceSeq, $s - 1)\n" "}\n" }, { "subsequence", 3, false, 322, 1, "declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double,\n" " $length as xs:double) as item()*\n" "{\n" " let $s := round($startingLoc)\n" " return\n" " if($s < 1) then take($sourceSeq, round($length) + $s - 1)\n" " else take(xqilla:drop($sourceSeq, $s - 1), round($length))\n" "}\n" }, { "take", 2, true, 331, 1, "declare private function take($seq as item()*, $num as xs:double) as item()*\n" "{\n" " if($num le 0 or empty($seq)) then ()\n" " else (head($seq), take(tail($seq), $num - 1))\n" "}\n" }, { "deep-equal", 2, false, 337, 1, "declare function deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean\n" "{\n" " deep-equal($parameter1, $parameter2, default-collation())\n" "}\n" }, { "deep-equal", 3, false, 342, 1, "declare function deep-equal($p1 as item()*, $p2 as item()*, $collation as xs:string) as xs:boolean\n" "{\n" " if(empty($p1)) then empty($p2) else\n" " if(empty($p2)) then false() else\n" "\n" " let $i1 := head($p1), $i2 := head($p2)\n" " return\n" " typeswitch($i1)\n" "\n" " case $a1 as xs:anyAtomicType return\n" " typeswitch($i2)\n" " case $a2 as xs:anyAtomicType return\n" " empty(tail(distinct-values(($a1, $a2), $collation))) and\n" " deep-equal(tail($p1), tail($p2), $collation)\n" " case node() return false()\n" " default return deep-equal-error()\n" "\n" " case $n1 as node() return (\n" " typeswitch($i2)\n" " case xs:anyAtomicType return false()\n" " case $n2 as node() return (\n" " deep-equal-nodes($n1, $n2, $collation) and\n" " deep-equal(tail($p1), tail($p2), $collation)\n" " )\n" " default return deep-equal-error()\n" " )\n" "\n" " default return deep-equal-error()\n" "}\n" }, { "deep-equal-error", 0, true, 372, 1, "declare private function deep-equal-error()\n" "{\n" " error(xs:QName(\"err:FOTY0015\"), \"An argument to fn:deep-equal() contains a function item\")\n" "}\n" }, { "deep-equal-nodes", 3, true, 377, 1, "declare private function deep-equal-nodes($p1 as node()*, $p2 as node()*, $collation as xs:string) as xs:boolean\n" "{\n" " if(empty($p1)) then empty($p2) else\n" " if(empty($p2)) then false() else\n" "\n" " let $i1 := head($p1), $i2 := head($p2)\n" " return\n" " typeswitch($i1)\n" "\n" " case document-node() return\n" " typeswitch($i2)\n" " case document-node() return\n" " deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case text() return\n" " typeswitch($i2)\n" " case text() return\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case comment() return\n" " typeswitch($i2)\n" " case comment() return\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case processing-instruction() return\n" " typeswitch($i2)\n" " case processing-instruction() return\n" " node-name($i1) eq node-name($i2) and\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case attribute() return\n" " typeswitch($i2)\n" " case attribute() return\n" " node-name($i1) eq node-name($i2) and\n" " deep-equal(data($i1), data($i2), $collation) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case element() return\n" " typeswitch($i2)\n" " case element() return (\n" " node-name($i1) eq node-name($i2) and\n" " count($i1/@*) eq count($i2/@*) and\n" " (every $a1 in $i1/@* satisfies\n" " some $a2 in $i2/@* satisfies deep-equal-nodes($a1, $a2, $collation)) and\n" "\n" " (if(empty($i1/*) and empty($i2/*))\n" " then deep-equal(data($i1), data($i2), $collation)\n" " else deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation)) and\n" "\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " )\n" " default return false()\n" "\n" " \n" " default (: namespace-node() :) return\n" " typeswitch($i2)\n" " case namespace-node() return\n" " deep-equal(node-name($i1), node-name($i2), $collation) and\n" " codepoint-equal($i1, $i2) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "}\n" }, { "avg", 1, false, 452, 1, "declare function avg($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " sum($arg, ()) div count($arg)\n" "}\n" }, { "sum", 1, false, 457, 1, "declare function sum($arg as xs:anyAtomicType*) as xs:anyAtomicType\n" "{\n" " sum($arg, 0)\n" "}\n" }, { "sum", 2, false, 462, 1, "declare function sum($arg as xs:anyAtomicType*, $zero as xs:anyAtomicType?) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $zero\n" " case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head))\n" " case $head as xs:double | xs:float | xs:decimal return\n" " if($head ne $head) then $head else numeric-sum(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "numeric-sum", 2, true, 474, 1, "declare private function numeric-sum($arg as xs:anyAtomicType*, $result as xs:anyAtomicType) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head) + $result)\n" " case $head as xs:double | xs:float | xs:decimal return\n" " if($head ne $head) then $head else numeric-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "yearMonthDuration-sum", 2, true, 484, 1, "declare private function yearMonthDuration-sum($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "dayTimeDuration-sum", 2, true, 492, 1, "declare private function dayTimeDuration-sum($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "max", 1, false, 500, 1, "declare function max($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " max($arg, default-collation())\n" "}\n" }, { "max", 2, false, 505, 1, "declare function max($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return ()\n" " case $head as xs:untypedAtomic | xs:double return double-max(tail($arg), xs:double($head))\n" " case $head as xs:float return float-max(tail($arg), $head)\n" " case $head as xs:decimal return decimal-max(tail($arg), $head)\n" " case $head as xs:anyURI | xs:string return string-max(tail($arg), xs:string($head), $collation)\n" " case $head as xs:boolean return boolean-max(tail($arg), $head)\n" " case $head as xs:date return date-max(tail($arg), $head)\n" " case $head as xs:time return time-max(tail($arg), $head)\n" " case $head as xs:dateTime return dateTime-max(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "double-max", 2, true, 522, 1, "declare private function double-max($arg as xs:anyAtomicType*, $result as xs:double) as xs:double\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return\n" " let $head := xs:double($head) return\n" " double-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "float-max", 2, true, 532, 1, "declare private function float-max($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result))\n" " case $head as xs:float | xs:decimal return\n" " let $head := xs:float($head) return\n" " float-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "decimal-max", 2, true, 543, 1, "declare private function decimal-max($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result))\n" " case $head as xs:float return float-max($arg, xs:float($result))\n" " case $head as xs:decimal return decimal-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "string-max", 3, true, 553, 1, "declare private function string-max($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:string | xs:anyURI return\n" " string-max(tail($arg), if(compare($head, $result, $collation) gt 0) then xs:string($head) else $result, $collation)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "boolean-max", 2, true, 562, 1, "declare private function boolean-max($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:boolean return boolean-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "date-max", 2, true, 570, 1, "declare private function date-max($arg as xs:anyAtomicType*, $result as xs:date) as xs:date\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:date return date-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "time-max", 2, true, 578, 1, "declare private function time-max($arg as xs:anyAtomicType*, $result as xs:time) as xs:time\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:time return time-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "dateTime-max", 2, true, 586, 1, "declare private function dateTime-max($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dateTime return dateTime-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "yearMonthDuration-max", 2, true, 594, 1, "declare private function yearMonthDuration-max($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "dayTimeDuration-max", 2, true, 602, 1, "declare private function dayTimeDuration-max($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "min", 1, false, 610, 1, "declare function min($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " min($arg, default-collation())\n" "}\n" }, { "min", 2, false, 615, 1, "declare function min($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return ()\n" " case $head as xs:untypedAtomic | xs:double return double-min(tail($arg), xs:double($head))\n" " case $head as xs:float return float-min(tail($arg), $head)\n" " case $head as xs:decimal return decimal-min(tail($arg), $head)\n" " case $head as xs:anyURI | xs:string return string-min(tail($arg), xs:string($head), $collation)\n" " case $head as xs:boolean return boolean-min(tail($arg), $head)\n" " case $head as xs:date return date-min(tail($arg), $head)\n" " case $head as xs:time return time-min(tail($arg), $head)\n" " case $head as xs:dateTime return dateTime-min(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "double-min", 2, true, 632, 1, "declare private function double-min($arg as xs:anyAtomicType*, $result as xs:double) as xs:double\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return\n" " let $head := xs:double($head) return\n" " double-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "float-min", 2, true, 642, 1, "declare private function float-min($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result))\n" " case $head as xs:float | xs:decimal return\n" " let $head := xs:float($head) return\n" " float-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "decimal-min", 2, true, 653, 1, "declare private function decimal-min($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result))\n" " case $head as xs:float return float-min($arg, xs:float($result))\n" " case $head as xs:decimal return decimal-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "string-min", 3, true, 663, 1, "declare private function string-min($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:string | xs:anyURI return\n" " string-min(tail($arg), if(compare($head, $result, $collation) lt 0) then xs:string($head) else $result, $collation)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "boolean-min", 2, true, 672, 1, "declare private function boolean-min($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:boolean return boolean-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "date-min", 2, true, 680, 1, "declare private function date-min($arg as xs:anyAtomicType*, $result as xs:date) as xs:date\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:date return date-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "time-min", 2, true, 688, 1, "declare private function time-min($arg as xs:anyAtomicType*, $result as xs:time) as xs:time\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:time return time-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "dateTime-min", 2, true, 696, 1, "declare private function dateTime-min($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dateTime return dateTime-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "yearMonthDuration-min", 2, true, 704, 1, "declare private function yearMonthDuration-min($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "dayTimeDuration-min", 2, true, 712, 1, "declare private function dayTimeDuration-min($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "map", 2, false, 725, 1, "declare function map($f as function(item()) as item()*, $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else ($f(head($seq)), map($f, tail($seq)))\n" "}\n" }, { "filter", 2, false, 731, 1, "declare function filter($f as function(item()) as xs:boolean, $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else (\n" " if($f(head($seq))) then head($seq) else (),\n" " filter($f, tail($seq))\n" " )\n" "}\n" }, { "fold-left", 3, false, 740, 1, "declare function fold-left($f as function(item()*, item()) as item()*, $zero as item()*,\n" " $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then $zero\n" " else fold-left($f, $f($zero, head($seq)), tail($seq))\n" "}\n" }, { "fold-right", 3, false, 747, 1, "declare function fold-right($f as function(item(), item()*) as item()*, $zero as item()*,\n" " $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then $zero\n" " else $f(head($seq), fold-right($f, $zero, tail($seq)))\n" "}\n" }, { "map-pairs", 3, false, 754, 1, "declare function map-pairs($f as function(item(), item()) as item()*, $seq1 as item()*,\n" " $seq2 as item()*) as item()*\n" "{\n" " if(empty($seq1) or empty($seq2)) then ()\n" " else (\n" " $f(head($seq1), head($seq2)),\n" " map-pairs($f, tail($seq1), tail($seq2))\n" " )\n" "}\n" }, { 0, 0, 0, 0, 0 } }; static const DelayedModule fn_module = { fn_file, fn_prefix, fn_uri, fn_functions }; XQilla-2.3.4/src/functions/FunctionWords.cpp0000644001725400016040000000447513273140037015760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and */ #include #include "../config/xqilla_config.h" #include #include #include extern "C" { #include } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionWords::name[] = { chLatin_w, chLatin_o, chLatin_r, chLatin_d, chLatin_s, chNull }; const unsigned int FunctionWords::minArgs = 1; const unsigned int FunctionWords::maxArgs = 1; /** * xqilla:words($input as xs:string?) as xs:string* */ FunctionWords::FunctionWords(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?) as xs:string*", args, memMgr) { } Sequence FunctionWords::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); AutoDeallocate buf(UnicodeTransformer::words(input, memMgr), memMgr); XMLCh* rb = buf.get(); XMLCh* start = NULL; Sequence resultSeq(0, memMgr); // Build sequence for (int i = 0; rb[i]; i++) { if (rb[i] != UTF8PROC_WB_MARK) continue; rb[i] = 0; if (rb[i+1] == 0 || rb[i+1] != UTF8PROC_WB_MARK) { if (start != NULL) resultSeq.addItem(context->getItemFactory()->createString(start, context)); start = rb + (i+1); } } return resultSeq; } XQilla-2.3.4/src/functions/FunctionMonthsFromDuration.cpp0000644001725400016040000000530013273140037020450 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthsFromDuration::minArgs = 1; const unsigned int FunctionMonthsFromDuration::maxArgs = 1; /* * fn:months-from-duration($arg as xs:duration?) as xs:integer? */ FunctionMonthsFromDuration::FunctionMonthsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionMonthsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.4/src/functions/FunctionError.cpp0000644001725400016040000000661313273140037015747 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; // http://www.w3.org/2005/xqt-errors const XMLCh FunctionError::XMLChXQueryErrorURI[] = { 'h', 't', 't', 'p', ':', '/', '/', 'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/', '2', '0', '0', '5', '/', 'x', 'q', 't', '-', 'e', 'r', 'r', 'o', 'r', 's', 0 }; const XMLCh FunctionError::name[] = { chLatin_e, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chNull }; const unsigned int FunctionError::minArgs = 0; const unsigned int FunctionError::maxArgs = 3; /* * fn:error() as none * fn:error($error as xs:QName) as none * fn:error($error as xs:QName?, $description as xs:string) as none * fn:error($error as xs:QName?, $description as xs:string, $error-object as item()*) as none */ FunctionError::FunctionError(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, args.size() == 1 ? "($error as xs:QName) as empty-sequence()" : "($error as xs:QName?, $description as xs:string, $error-object as item()*) as empty-sequence()", args, memMgr) { } ASTNode *FunctionError::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.forceNoFolding(true); _src.possiblyUpdating(true); calculateSRCForArguments(context); // we need to specify item()*, or we get constant folded away all the time _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); return this; } PendingUpdateList FunctionError::createUpdateList(DynamicContext *context) const { createSequence(context); // doesn't return return PendingUpdateList(); } Sequence FunctionError::createSequence(DynamicContext* context, int flags) const { XMLBuffer exc_name; switch(getNumArgs()) { case 3: // TODO: extra storage in the exception object for the user object case 2: { exc_name.set(getParamNumber(2, context)->next(context)->asString(context)); // Fall through } case 1: { Item::Ptr qname = getParamNumber(1, context)->next(context); if(qname.isNull()) { exc_name.append(X(" [err:FOER0000]")); } else { exc_name.append(X(" [")); exc_name.append(qname->asString(context)); exc_name.append(X("]")); } break; } case 0: exc_name.set(X("User-requested error [err:FOER0000]")); break; } XQThrow(XPath2ErrorException, X("FunctionError::createSequence"), exc_name.getRawBuffer()); } XQilla-2.3.4/src/functions/FunctionUnordered.cpp0000644001725400016040000000431713273140037016604 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionUnordered::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionUnordered::minArgs = 1; const unsigned int FunctionUnordered::maxArgs = 1; /** * fn:unordered($sourceSeq as item()*) as item()* **/ FunctionUnordered::FunctionUnordered(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($sourceSeq as item()*) as item()*", args, memMgr) { } ASTNode* FunctionUnordered::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionUnordered::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); return this; } Result FunctionUnordered::createResult(DynamicContext* context, int flags) const { return getParamNumber(1,context); } XQilla-2.3.4/src/functions/FunctionCollection.cpp0000644001725400016040000000524213273140037016746 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionCollection::name[] = { chLatin_c, chLatin_o, chLatin_l, chLatin_l, chLatin_e, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionCollection::minArgs = 0; const unsigned int FunctionCollection::maxArgs = 1; /** * fn:collection() as node()* * fn:collection($arg as xs:string?) as node()* **/ FunctionCollection::FunctionCollection(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as node()*", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionCollection::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SUBTREE); _src.getStaticType() = StaticType(StaticType::NODE_TYPE, 0, StaticType::UNLIMITED); _src.availableCollectionsUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCollection::createSequence(DynamicContext* context, int flags) const { //args 0 - URI to resolve if(getNumArgs() == 0) return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); const XMLCh *uri = arg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionCollection::createSequence"), X("Invalid URI format [err:FODC0002]")); return context->resolveCollection(uri, this, context->getProjection() ? queryPathTree_ : 0); } XQilla-2.3.4/src/functions/FunctionAcos.cpp0000644001725400016040000000307713273140037015544 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAcos::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAcos::minArgs = 1; const unsigned int FunctionAcos::maxArgs = 1; /* * math:acos($arg as numeric?) as numeric? */ FunctionAcos::FunctionAcos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAcos::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->acos(context); } XQilla-2.3.4/src/functions/FunctionStringToCodepoints.cpp0000644001725400016040000000512413273140037020453 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include /*string-to-codepoints*/ const XMLCh FunctionStringToCodepoints::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionStringToCodepoints::minArgs = 1; const unsigned int FunctionStringToCodepoints::maxArgs = 1; /** * fn:string-to-codepoints( $arg as xs:string?) as xs:integer* **/ FunctionStringToCodepoints::FunctionStringToCodepoints(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:integer*", args, memMgr) // 1 argument { } Sequence FunctionStringToCodepoints::createSequence(DynamicContext* context, int flags) const { Sequence param1 = getParamNumber(1,context)->toSequence(context); if(param1.isEmpty()) return param1; const ATStringOrDerived::Ptr str = (const ATStringOrDerived::Ptr )param1.first(); return str->asCodepoints(context)->toSequence(context); } XQilla-2.3.4/src/functions/FunctionParseHTML.cpp0000644001725400016040000001541413273140037016414 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #ifdef HAVE_LIBTIDY #include #include #endif #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionParseHTML::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_h, chLatin_t, chLatin_m, chLatin_l, chNull }; const unsigned int FunctionParseHTML::minArgs = 1; const unsigned int FunctionParseHTML::maxArgs = 1; /** * xqilla:parse-html($html as xs:string?) as document? */ FunctionParseHTML::FunctionParseHTML(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($html as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseHTML::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } Sequence FunctionParseHTML::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseHTML(item->asString(context), handler, context, this); handler->endEvent(); return builder->getSequence(); } #ifdef HAVE_LIBTIDY // void dumpNode(TidyDoc tdoc, TidyNode tnod, int indent, EventHandler *handler) // { // switch(tidyNodeGetType(tnod)) { // case TidyNode_Root: // handler->startDocumentEvent(0, 0); // printf( "\%*.*sNode: Root\n", indent, indent, " "); // TidyNode child; // for(child = tidyGetChild(tnod); child; child = tidyGetNext(child)) { // dumpNode(tdoc, child, indent + 4, handler); // } // handler->endDocumentEvent(); // return; // break; // case TidyNode_Comment: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: Comment = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_ProcIns: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: ProcIns = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_Text: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: Text = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_CDATA: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: CDATA = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_Start: // case TidyNode_End: // case TidyNode_StartEnd: { // // handler->startElementEvent(0, 0, ); // printf( "\%*.*sNode: \%s\n", indent, indent, " ", tidyNodeGetName(tnod)); // TidyNode child; // for(child = tidyGetChild(tnod); child; child = tidyGetNext(child)) { // dumpNode(tdoc, child, indent + 4, handler); // } // // handler->endDocumentEvent(); // return; // break; // } // case TidyNode_DocType: // case TidyNode_Section: // case TidyNode_Asp: // case TidyNode_Jste: // case TidyNode_Php: // case TidyNode_XmlDecl: // // Ignore // return; // break; // } // } void FunctionParseHTML::parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { unsigned int len = XMLString::stringLen(html) * sizeof(XMLCh); TidyDoc tdoc = tidyCreate(); int rc = tidySetCharEncoding(tdoc, "utf16le"); // TBD Check this value - jpcs TidyBuffer buf; tidyBufInit(&buf); tidyBufAttach(&buf, (byte*)html, len); TidyBuffer errbuf; tidyBufInit(&errbuf); TidyBuffer output; tidyBufInit(&output); if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyXmlOut, yes) ? 0 : -1; if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyMark, no) ? 0 : -1; if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyNumEntities, yes) ? 0 : -1; if(rc >= 0) rc = tidySetErrorBuffer(tdoc, &errbuf); if(rc >= 0) rc = tidyParseBuffer(tdoc, &buf); if(rc >= 0) rc = tidyCleanAndRepair(tdoc); // if(rc >= 0) // rc = tidyRunDiagnostics(tdoc); // dumpNode(tdoc, tidyGetRoot(tdoc), 0, handler); if(rc > 1) rc = tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1; if(rc >= 0) rc = tidySaveBuffer(tdoc, &output); const XMLCh *xml = (XMLCh*)output.bp; MemBufInputSource src((XMLByte*)xml, XMLString::stringLen(xml) * sizeof(XMLCh), name); src.setEncoding(XMLUni::fgUTF16EncodingString); try { ((DocumentCache*)context->getDocumentCache())->parseDocument(src, handler, context); } catch(XMLParseException &e) { XQThrow3(FunctionException, X("FunctionParseHTML::parseHTML"), e.getError(), location); } tidyBufFree(&errbuf); tidyBufFree(&output); tidyRelease(tdoc); } #else void FunctionParseHTML::parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { XQThrow3(FunctionException, X("FunctionParseHTML::parseHTML"), X("XQilla was not compiled with HTML Tidy support [err:XQILLA]"), location); } #endif XQilla-2.3.4/src/functions/FunctionAsin.cpp0000644001725400016040000000307613273140037015550 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAsin::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAsin::minArgs = 1; const unsigned int FunctionAsin::maxArgs = 1; /* * math:asin($arg as numeric?) as numeric? */ FunctionAsin::FunctionAsin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAsin::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->asin(context); } XQilla-2.3.4/src/functions/FunctionHead.cpp0000644001725400016040000000335013273140037015512 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionHead::name[] = { chLatin_h, chLatin_e, chLatin_a, chLatin_d, chNull }; const unsigned int FunctionHead::minArgs = 1; const unsigned int FunctionHead::maxArgs = 1; /** * fn:head($target as item()*) as item()? */ FunctionHead::FunctionHead(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($target as item()*) as item()?", args, memMgr) { } ASTNode *FunctionHead::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(_src.getStaticType().getMin() == 0 ? 0 : 1, _src.getStaticType().getMax() == 0 ? 0 : 1); return this; } Result FunctionHead::createResult(DynamicContext* context, int flags) const { return getParamNumber(1, context)->next(context); } XQilla-2.3.4/src/functions/FunctionNamespaceURIFromQName.cpp0000644001725400016040000000556213273140037020702 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionNamespaceURIFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNamespaceURIFromQName::minArgs = 1; const unsigned int FunctionNamespaceURIFromQName::maxArgs = 1; /** * fn:namespace-uri-from-QName($arg as xs:QName?) as xs:anyURI? **/ FunctionNamespaceURIFromQName::FunctionNamespaceURIFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:anyURI?", args, memMgr) { } Sequence FunctionNamespaceURIFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(((const ATQNameOrDerived*)arg.first().get())->getURI(), context), context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionRoundHalfToEven.cpp0000644001725400016040000000610613273140037017656 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionRoundHalfToEven::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionRoundHalfToEven::minArgs = 1; const unsigned int FunctionRoundHalfToEven::maxArgs = 2; /* * fn:round-half-to-even($arg as numeric?) as numeric? * fn:round-half-to-even($arg as numeric?, $precision as xs:integer) as numeric? */ FunctionRoundHalfToEven::FunctionRoundHalfToEven(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?, $precision as xs:integer) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionRoundHalfToEven::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(memMgr); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, memMgr); ATDecimalOrDerived::Ptr precision = NULL; if(getNumArgs() > 1) { Sequence precisionArg = getParamNumber(2,context)->toSequence(context); precision = (const ATDecimalOrDerived::Ptr )precisionArg.first(); } else precision = context->getItemFactory()->createInteger(0, context); return Sequence(numericArg->roundHalfToEven(precision, context), memMgr); } XQilla-2.3.4/src/functions/RegExpFunction.cpp0000644001725400016040000000515013273140037016043 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif RegExpFunction::RegExpFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr), regExp_(0), pattern_(0), options_(0) { } void RegExpFunction::checkRegexpOpts(const XMLCh* opts, const char* sourceMsg) const { const XMLCh* cursor = opts; for(; *cursor != 0; ++cursor){ switch(*cursor) { case chLatin_s: case chLatin_m: case chLatin_i: case chLatin_x: break; default: XQThrow(FunctionException, X(sourceMsg),X("Invalid regular expression flags [err:FORX0001].")); } } } void RegExpFunction::processParseException(ParseException &e, const char* sourceMsg, XPath2MemoryManager* memMgr) const { XMLBuffer buf(1023, memMgr); buf.set(X("Invalid regular expression: ")); buf.append(e.getMessage()); buf.append(X(" [err:FORX0002]")); XQThrow(FunctionException, X(sourceMsg), buf.getRawBuffer()); } void RegExpFunction::copyRegExp(RegExpFunction* source, XPath2MemoryManager* memMgr) { if(source->regExp_) { pattern_ = memMgr->getPooledString(source->pattern_); options_ = memMgr->getPooledString(source->options_); // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); //compiling regexp again try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "RegExpFunction::copyRegExp", memMgr); } } } XQilla-2.3.4/src/functions/FunctionNamespaceUri.cpp0000644001725400016040000000514013273140037017224 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionNamespaceUri::name[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionNamespaceUri::minArgs = 0; const unsigned int FunctionNamespaceUri::maxArgs = 1; /** * fn:namespace-uri() as xs:anyURI * fn:namespace-uri($arg as node()?) as xs:anyURI **/ FunctionNamespaceUri::FunctionNamespaceUri(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI", args, memMgr) { } ASTNode* FunctionNamespaceUri::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionNamespaceUri::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr ctxNode = (Node*)getParamNumber(1, context)->next(context).get(); if(ctxNode.notNull()) { ATQNameOrDerived::Ptr name = ctxNode->dmNodeName(context); if(name.notNull()) return Sequence(context->getItemFactory()->createAnyURI(((const ATQNameOrDerived*)name.get())->getURI(), context), memMgr); } return Sequence(context->getItemFactory()->createAnyURI(XMLUni::fgZeroLenString, context), memMgr); } XQilla-2.3.4/src/functions/FunctionAbs.cpp0000644001725400016040000000312513273140037015356 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAbs::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAbs::minArgs = 1; const unsigned int FunctionAbs::maxArgs = 1; /* * fn:abs($arg as numeric?) as numeric? */ FunctionAbs::FunctionAbs(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAbs::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->abs(context); } XQilla-2.3.4/src/functions/FunctionAdjustDateTimeToTimezone.cpp0000644001725400016040000001107713273140037021543 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustDateTimeToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustDateTimeToTimezone::minArgs = 1; const unsigned int FunctionAdjustDateTimeToTimezone::maxArgs = 2; /* * fn:adjust-dateTime-to-timezone($arg as xs:dateTime?) as xs:dateTime? * fn:adjust-dateTime-to-timezone($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime? */ FunctionAdjustDateTimeToTimezone::FunctionAdjustDateTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime?", args, memMgr) { } ASTNode *FunctionAdjustDateTimeToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustDateTimeToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATDateTimeOrDerived* dateTime = (const ATDateTimeOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(dateTime->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustDateTimeToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(dateTime->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.4/src/functions/FunctionQName.cpp0000644001725400016040000000612413273140037015654 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionQName::minArgs = 2; const unsigned int FunctionQName::maxArgs = 2; /** * fn:QName($paramURI as xs:string?, $paramLocal as xs:string) as xs:QName **/ /** Returns a QName with the URI given in $paramURI and the localname * given in $paramLocal **/ FunctionQName::FunctionQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($paramURI as xs:string?, $paramLocal as xs:string) as xs:QName", args, memMgr) { } Sequence FunctionQName::createSequence(DynamicContext* context, int flags) const { Sequence paramURIseq = getParamNumber(1, context)->toSequence(context); Sequence paramLocalseq = getParamNumber(2, context)->toSequence(context); const XMLCh* uri = NULL; if(!paramURIseq.isEmpty()) uri=paramURIseq.first()->asString(context); const XMLCh* local = paramLocalseq.first()->asString(context); if(!XERCES_CPP_NAMESPACE_QUALIFIER XMLChar1_0::isValidQName(local, XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(local))) XQThrow(FunctionException,X("FunctionQName::createSequence"),X("The second argument to fn:QName is not a valid xs:QName [err:FOCA0002]")); const XMLCh* prefix = XPath2NSUtils::getPrefix(local, context->getMemoryManager()); if((uri==NULL || *uri==0) && !(prefix==NULL || *prefix==0)) XQThrow(FunctionException,X("FunctionQName::createSequence"),X("The second argument to fn:QName specifies a prefix, but the specified uri is empty [err:FOCA0002]")); local = XPath2NSUtils::getLocalName(local); //Construct QName here Sequence result(context->getItemFactory()->createQName(uri, prefix, local, context), context->getMemoryManager()); return result; } XQilla-2.3.4/src/functions/FunctionPrefixFromQName.cpp0000644001725400016040000000604213273140037017655 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionPrefixFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionPrefixFromQName::minArgs = 1; const unsigned int FunctionPrefixFromQName::maxArgs = 1; /** * fn:prefix-from-QName($arg as xs:QName?) as xs:NCNAME? **/ FunctionPrefixFromQName::FunctionPrefixFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:NCName?", args, memMgr) { } Sequence FunctionPrefixFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); const XMLCh* prefix=((const ATQNameOrDerived*)(const Item*)arg.first())->getPrefix(); if(prefix && *prefix) return Sequence(context->getItemFactory()->createStringOrDerived(XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_NCNAME, prefix, context), context->getMemoryManager()); return Sequence(context->getMemoryManager()); } XQilla-2.3.4/src/functions/FunctionNumber.cpp0000644001725400016040000000732213273140037016104 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionNumber::name[] = { chLatin_n, chLatin_u, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull }; const unsigned int FunctionNumber::minArgs = 0; const unsigned int FunctionNumber::maxArgs = 1; /** * fn:number() as xs:double * fn:number($arg as anyAtomicType?) as xs:double **/ FunctionNumber::FunctionNumber(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType?) as xs:double", args, memMgr) { } ASTNode* FunctionNumber::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionNumber::createSequence(DynamicContext* context, int flags) const { return Sequence(number((AnyAtomicType*)getParamNumber(1, context)->next(context).get(), context), context->getMemoryManager()); } Numeric::Ptr FunctionNumber::number(const AnyAtomicType *item, DynamicContext *context) { if(item == 0) { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } else { try { return (Numeric*)item->castAs(AnyAtomicType::DOUBLE, 0, 0, context).get(); } catch (XPath2TypeCastException &e) { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } } } Numeric::Ptr FunctionNumber::number(const Item::Ptr &item, DynamicContext *context, const LocationInfo *location) { Item::Ptr tmp = item; if(item.isNull()) { // Do nothing } else if(item->isNode()) { // Atomize first Result atomized = ((Node*)item.get())->dmTypedValue(context); tmp = atomized->next(context); if(tmp.notNull() && atomized->next(context).notNull()) { XQThrow3(XPath2TypeMatchException, X("FunctionNumber::number"), X("Sequence does not match type xs:anyAtomicType? - found more than one item [err:XPTY0004]"), location); } } else if(item->isFunction()) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - found item of type ")); item->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow3(XPath2TypeMatchException, X("FunctionNumber::number"), buf.getRawBuffer(), location); } return number((AnyAtomicType*)tmp.get(), context); } XQilla-2.3.4/src/functions/FunctionMinutesFromTime.cpp0000644001725400016040000000532013273140037017737 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromTime::minArgs = 1; const unsigned int FunctionMinutesFromTime::maxArgs = 1; /* * fn:minutes-from-time($arg as xs:time?) as xs:integer? */ FunctionMinutesFromTime::FunctionMinutesFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMinutesFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMinutesFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.4/src/functions/FunctionRoot.cpp0000644001725400016040000000561113273140037015576 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionRoot::name[] = { chLatin_r, chLatin_o, chLatin_o, chLatin_t, chNull }; const unsigned int FunctionRoot::minArgs = 0; const unsigned int FunctionRoot::maxArgs = 1; /** * fn:root() as node() * fn:root($arg as node()?) as node()? **/ FunctionRoot::FunctionRoot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as node()?", args, memMgr) { } ASTNode* FunctionRoot::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } ASTNode *FunctionRoot::staticTypingImpl(StaticContext *context) { _src.clear(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); _src.getStaticType() = StaticType(StaticType::NODE_TYPE, 0, 1); _src.add(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("FunctionRoot::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } if(_args[0]->getStaticAnalysis().getStaticType().isType(StaticType::DOCUMENT_TYPE)) { return _args[0]; } return this; } Sequence FunctionRoot::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr node = (Node*)getParamNumber(1, context)->next(context).get(); if(node.isNull()) return Sequence(memMgr); return Sequence(node->root(context), memMgr); } XQilla-2.3.4/src/functions/FunctionResolveURI.cpp0000644001725400016040000001042513273140037016651 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionResolveURI::name[] = { chLatin_r, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionResolveURI::minArgs = 1; const unsigned int FunctionResolveURI::maxArgs = 2; /** * fn:resolve-uri($relative as xs:string?) as xs:anyURI? * fn:resolve-uri($relative as xs:string?, $base as xs:string) as xs:anyURI? **/ FunctionResolveURI::FunctionResolveURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($relative as xs:string?, $base as xs:string) as xs:anyURI?", args, memMgr) { } ASTNode* FunctionResolveURI::staticResolution(StaticContext *context) { if(getNumArgs() == 1) { if(!context->getBaseURI()) XQThrow(StaticErrorException, X("FunctionResolveURI::staticResolution"), X("Base uri undefined in the static context [err:FONS0005]")); XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *baseURI = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, context->getBaseURI(), AnyAtomicType::STRING, mm); baseURI->setLocationInfo(this); _args.push_back(baseURI); } resolveArguments(context); return this; } Sequence FunctionResolveURI::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr relative = getParamNumber(1, context)->next(context); if(relative.isNull()) return Sequence(memMgr); const XMLCh *relativeURI = relative->asString(context); try { if(XMLUri::isValidURI(false, relativeURI)) return Sequence(context->getItemFactory()->createAnyURI(relativeURI, context), memMgr); } catch(InvalidLexicalSpaceException &e){ XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } try { const XMLCh *baseURI = getParamNumber(2, context)->next(context)->asString(context); if(!XMLUri::isValidURI(true, relativeURI)) XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid relative uri argument to resolve-uri [err:FORG0002]")); if(!XMLUri::isValidURI(false, baseURI)) XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid base-uri argument to resolve-uri [err:FORG0002]")); try { XMLUri base(baseURI); XMLUri full(&base, relativeURI); return Sequence(context->getItemFactory()->createAnyURI(full.getUriText(), context), memMgr); } catch(InvalidLexicalSpaceException &e){ XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } } catch(XMLException &e) { //if can't build, assume its cause there was a relative URI given XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Relative URI base argument to resolve-uri [err:FORG0009]")); } //should not get here assert(0); } XQilla-2.3.4/src/functions/FunctionCaseFold.cpp0000644001725400016040000000376613273140037016344 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionCaseFold::name[] = { chLatin_c, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_f, chLatin_o, chLatin_l, chLatin_d, chNull }; const unsigned int FunctionCaseFold::minArgs = 1; const unsigned int FunctionCaseFold::maxArgs = 1; /* * xqilla:case-fold($arg as xs:string?) as xs:string */ FunctionCaseFold::FunctionCaseFold(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionCaseFold::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::caseFold(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.4/src/functions/FunctionIdref.cpp0000644001725400016040000001145613273140037015710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionIdref::name[] = { chLatin_i, chLatin_d, chLatin_r, chLatin_e, chLatin_f, chNull }; const unsigned int FunctionIdref::minArgs = 1; const unsigned int FunctionIdref::maxArgs = 2; /** * fn:idref($arg as xs:string*) as node()* * fn:idref($arg as xs:string*, $node as node()) as node()* **/ FunctionIdref::FunctionIdref(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string*, $node as node()) as node()*", args, memMgr) { } ASTNode* FunctionIdref::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionIdref::createSequence(DynamicContext* context, int flags) const { Node::Ptr root = ((Node*)getParamNumber(2, context)->next(context).get())->root(context); if(root->dmNodeKind() != Node::document_string) { XQThrow(FunctionException,X("FunctionIdref::createSequence"), X("Current context doesn't belong to a document [err:FODC0001]")); } Sequence strings = getParamNumber(1, context)->toSequence(context); if(strings.isEmpty()) return Sequence(context->getMemoryManager()); std::vector values; //get the list of idref values we're looking for by iterating over each string in the sequence for (Sequence::iterator stringIt = strings.begin(); stringIt != strings.end(); ++stringIt) { const XMLCh *str = (*stringIt)->asString(context); //for each string check that it is lexically a xs:ID, if not ignore it bool validID = true; try { context->getItemFactory()->createStringOrDerived(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, str, context); } catch (InvalidLexicalSpaceException &e) { validID = false; } if (validID) { values.push_back(str); } } Sequence result(context->getMemoryManager()); std::vector resultStack; resultStack.push_back(root->dmChildren(context, this)); Node::Ptr child = resultStack.back()->next(context); while(child.notNull()) { if(child->dmNodeKind() == Node::element_string) { if(child->dmIsIdRefs(context)->isTrue()) { // child is of type xs:ID const XMLCh* id = child->dmStringValue(context); std::vector vals = XPath2Utils::getVal(id, context->getMemoryManager()); for(std::vector::iterator val = vals.begin(); val != vals.end(); ++val) { if(XPath2Utils::containsString(values, *val)) { result.addItem(child); break; } } } Result attrs = child->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { if(att->dmIsIdRefs(context)->isTrue()) { // att is of type xs:ID const XMLCh* id = att->dmStringValue(context); std::vector vals = XPath2Utils::getVal(id, context->getMemoryManager()); for(std::vector::iterator val = vals.begin(); val != vals.end(); ++val) { if(XPath2Utils::containsString(values, *val)) { result.addItem(att); break; } } } } } resultStack.push_back(child->dmChildren(context, this)); while(!resultStack.empty() && (child = resultStack.back()->next(context)).isNull()) { resultStack.pop_back(); } } return result; } XQilla-2.3.4/src/functions/FunctionHoursFromTime.cpp0000644001725400016040000000514513273140037017420 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromTime::minArgs = 1; const unsigned int FunctionHoursFromTime::maxArgs = 1; /* * fn:hours-from-time($arg as xs:time?) as xs:integer? */ FunctionHoursFromTime::FunctionHoursFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:integer?", args, memMgr) { } ASTNode *FunctionHoursFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionHoursFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.4/src/functions/FuncFactory.cpp0000644001725400016040000000265213273140037015372 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XERCES_CPP_NAMESPACE_USE; FuncFactory::FuncFactory(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, MemoryManager *mm) : uri_(uri), name_(name), minArgs_(minArgs), maxArgs_(maxArgs), uriname_(1023, mm) { setURINameHash(uri, name); } FuncFactory::FuncFactory(size_t numArgs, MemoryManager *mm) : uri_(0), name_(0), minArgs_(numArgs), maxArgs_(numArgs), uriname_(1023, mm) { } void FuncFactory::setURINameHash(const XMLCh *uri, const XMLCh *name) { uri_ = uri; name_ = name; uriname_.set(name); uriname_.append(':'); uriname_.append(uri); } XQilla-2.3.4/src/functions/FunctionDocAvailable.cpp0000644001725400016040000000573213273140037017165 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDocAvailable::name[] = { chLatin_d, chLatin_o, chLatin_c, chDash, chLatin_a, chLatin_v, chLatin_a, chLatin_i, chLatin_l, chLatin_a, chLatin_b, chLatin_l, chLatin_e, chNull }; const unsigned int FunctionDocAvailable::minArgs = 1; const unsigned int FunctionDocAvailable::maxArgs = 1; /** * fn:doc-available($uri as xs:string?) as xs:boolean **/ FunctionDocAvailable::FunctionDocAvailable(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri as xs:string?) as xs:boolean", args, memMgr) { } ASTNode *FunctionDocAvailable::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.availableDocumentsUsed(true); calculateSRCForArguments(context); return this; } BoolResult FunctionDocAvailable::boolResult(DynamicContext* context) const { Sequence uriArg = getParamNumber(1,context)->toSequence(context); if (uriArg.isEmpty()) return false; const XMLCh* uri = uriArg.first()->asString(context); // on Windows, we can have URIs using \ instead of /; let's normalize them XMLCh backSlash[]={ chBackSlash, chNull }; if(XMLString::findAny(uri,backSlash)) { XMLCh* newUri=XMLString::replicate(uri,context->getMemoryManager()); for(unsigned int i=0;igetMemoryManager())) XQThrow(FunctionException, X("FunctionDocAvailable::createSequence"), X("Invalid argument to fn:doc-available function [err:FODC0005]")); try { return !context->resolveDocument(uri, this).isEmpty(); } catch(...) { } return false; } Result FunctionDocAvailable::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/schema/0000755001725400016040000000000013273141207011746 500000000000000XQilla-2.3.4/src/schema/FaxppDocumentCacheImpl.cpp0000644001725400016040000002534313273140037016724 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "FaxppDocumentCacheImpl.hpp" #ifdef HAVE_FAXPP #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static unsigned int binInputStreamReadCallback(void *userData, void *buffer, unsigned int length) { BinInputStream *stream = (BinInputStream*)userData; unsigned int result = 0; do { unsigned int read = stream->readBytes((XMLByte*)buffer + result, length - result); if(read == 0) break; result += read; } while(result < length); return result; } static inline const XMLCh *nullTerm(const FAXPP_Text &text, XPath2MemoryManager *mm) { return mm->getPooledString((XMLCh*)text.ptr, text.len / sizeof(XMLCh)); } static FAXPP_Error staticEntityCallback(void *userData, FAXPP_Parser *parser, FAXPP_EntityType type, const FAXPP_Text *base_uri, const FAXPP_Text *systemid, const FAXPP_Text *publicid) { FaxppParserWrapper *fw = (FaxppParserWrapper*)userData; try { // Resolve the entity const XMLCh *system16 = nullTerm(*systemid, fw->mm); const XMLCh *public16 = nullTerm(*publicid, fw->mm); InputSource* srcToUse = 0; if(fw->entityResolver){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity, system16, 0, public16, (XMLCh*)base_uri->ptr); srcToUse = fw->entityResolver->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { srcToUse = DocumentCacheImpl::resolveURI(system16, (XMLCh*)base_uri->ptr); } Janitor janIS(srcToUse); // Create a BinInputStream BinInputStream *stream = srcToUse->makeStream(); if(stream == NULL) return CANT_LOCATE_EXTERNAL_ENTITY; fw->inputStreams.push_back(stream); FAXPP_Error err = FAXPP_parse_external_entity_callback(parser, type, binInputStreamReadCallback, stream); // Set the correct base URI if(err == NO_ERROR) { FAXPP_Text base = { (void*)srcToUse->getSystemId(), (XMLString::stringLen(srcToUse->getSystemId()) + 1) * sizeof(XMLCh) }; err = FAXPP_set_base_uri(parser, &base); } // Force use of encoding set on InputSource (this is done by FunctionParseXML) if(err == NO_ERROR && srcToUse->getEncoding()) { FAXPP_DecodeFunction decode = FAXPP_string_to_decode(UTF8(srcToUse->getEncoding())); if(decode == 0) err = UNSUPPORTED_ENCODING; else FAXPP_set_decode(parser, decode); } return err; } catch(...) { return CANT_LOCATE_EXTERNAL_ENTITY; } } FaxppParserWrapper::FaxppParserWrapper(XMLEntityResolver *e) : mm(0), entityResolver(e), parser(0) { parser = FAXPP_create_parser(WELL_FORMED_PARSE_MODE, FAXPP_utf16_native_transcoder); if(parser == 0) XQThrow2(XMLParseException, X("FaxppParserWrapper::FaxppParserWrapper"), X("Out of memory")); // Register our entity resolution callback FAXPP_set_external_entity_callback(parser, staticEntityCallback, this); } FaxppParserWrapper::~FaxppParserWrapper() { reset(); if(parser) FAXPP_free_parser(parser); } void FaxppParserWrapper::reset() { vector::iterator i = inputStreams.begin(); for(; i != inputStreams.end(); ++i) { delete *i; } inputStreams.clear(); mm = 0; } FAXPP_Error FaxppParserWrapper::parseInputSource(const InputSource &srcToUse, XPath2MemoryManager *m) { reset(); mm = m; // Create a BinInputStream BinInputStream *stream = srcToUse.makeStream(); if(stream == NULL) XQThrow2(XMLParseException, X("FaxppParserWrapper::parseInputSource"), X("Document not found")); inputStreams.push_back(stream); // Initialize the parse FAXPP_Error err = FAXPP_init_parse_callback(parser, binInputStreamReadCallback, stream); // Set the correct base URI if(err == NO_ERROR && srcToUse.getSystemId()) { FAXPP_Text base = { (void*)srcToUse.getSystemId(), (XMLString::stringLen(srcToUse.getSystemId()) + 1) * sizeof(XMLCh) }; err = FAXPP_set_base_uri(parser, &base); } // Force use of encoding set on InputSource (this is done by FunctionParseXML) if(err == NO_ERROR && srcToUse.getEncoding()) { FAXPP_DecodeFunction decode = FAXPP_string_to_decode(UTF8(srcToUse.getEncoding())); if(decode == 0) err = UNSUPPORTED_ENCODING; else FAXPP_set_decode(parser, decode); } #if 0 else if(stream->getContentType()) { } #endif return err; } //////////////////////////////////////////////////////////////////////////////////////////////////// FaxppDocumentCacheImpl::FaxppDocumentCacheImpl(MemoryManager* memMgr, XMLGrammarPool *xmlgr) : DocumentCacheImpl(memMgr, xmlgr), wrapper_(0), validator_(0) { } FaxppDocumentCacheImpl::~FaxppDocumentCacheImpl() { delete validator_; } void FaxppDocumentCacheImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { entityResolver_ = handler; wrapper_.entityResolver = handler; } static inline void setLocation(LocationInfo &info, const FAXPP_Event *event) { info.setLocationInfo(info.getFile(), event->line, event->column); } static inline void setLocation(LocationInfo &info, const FAXPP_Attribute *attr) { info.setLocationInfo(info.getFile(), attr->line, attr->column); } #define LOCATION(o) setLocation(location_, (o)) void FaxppDocumentCacheImpl::parseDocument(InputSource &srcToUse, EventHandler *handler, DynamicContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(validator_ == 0) { validator_ = new (memMgr_) SchemaValidatorFilter(/*strictValidation*/false, 0, grammarResolver_, memMgr_, 0); } if(doPSVI_) { validator_->setNextEventHandler(handler); events_ = validator_; } else { events_ = handler; } FAXPP_Error err = wrapper_.parseInputSource(srcToUse, mm); if(err == OUT_OF_MEMORY) XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), X("Out of memory")); if(err == UNSUPPORTED_ENCODING) { XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), X("Unsupported encoding")); } location_.setLocationInfo(srcToUse.getSystemId(), 0, 0); try { unsigned int i; FAXPP_Attribute *attr; while(true) { err = FAXPP_next_event(wrapper_.parser); if(err != NO_ERROR) { // TBD add line and column information - jpcs XMLBuffer buf; buf.append(X("Error parsing document: ")); buf.append(X(FAXPP_err_to_string(err))); XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), buf.getRawBuffer()); } const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); LOCATION(event); switch(event->type) { case START_DOCUMENT_EVENT: { // TBD Get encoding from parser if not specified in document - jpcs events_->setLocationInfo(&location_); // Encode space chars in the document URI as %20 const XMLCh *uri = srcToUse.getSystemId(); XMLBuffer encode(XMLString::stringLen(uri) + 1); if(uri != 0) { for(const XMLCh *uptr = uri; *uptr; ++uptr) { if(*uptr != ' ') encode.append(*uptr); else { encode.append('%'); encode.append('2'); encode.append('0'); } } uri = encode.getRawBuffer(); } events_->startDocumentEvent(uri, nullTerm(event->encoding, mm)); break; } case END_DOCUMENT_EVENT: events_->endDocumentEvent(); return; case START_ELEMENT_EVENT: case SELF_CLOSING_ELEMENT_EVENT: events_->startElementEvent(nullTerm(event->prefix, mm), nullTerm(event->uri, mm), nullTerm(event->name, mm)); for(i = 0; i < event->attr_count; ++i) { attr = &event->attrs[i]; LOCATION(attr); if(attr->xmlns_attr) { if(attr->prefix.ptr == 0) events_->namespaceEvent(0, nullTerm(attr->value.value, mm)); else events_->namespaceEvent(nullTerm(attr->name, mm), nullTerm(attr->value.value, mm)); } else { events_->attributeEvent(nullTerm(attr->prefix, mm), nullTerm(attr->uri, mm), nullTerm(attr->name, mm), nullTerm(attr->value.value, mm), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } } if(event->type == START_ELEMENT_EVENT) break; // Fall through case END_ELEMENT_EVENT: events_->endElementEvent(nullTerm(event->prefix, mm), nullTerm(event->uri, mm), nullTerm(event->name, mm), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); break; case IGNORABLE_WHITESPACE_EVENT: // Do nothing break; case ENTITY_REFERENCE_EVENT: case DEC_CHAR_REFERENCE_EVENT: case HEX_CHAR_REFERENCE_EVENT: case CHARACTERS_EVENT: case CDATA_EVENT: events_->textEvent((XMLCh*)event->value.ptr, event->value.len / sizeof(XMLCh)); break; case COMMENT_EVENT: events_->commentEvent(nullTerm(event->value, mm)); break; case PI_EVENT: events_->piEvent(nullTerm(event->name, mm), nullTerm(event->value, mm)); break; case DOCTYPE_EVENT: case ENTITY_REFERENCE_START_EVENT: case ENTITY_REFERENCE_END_EVENT: case START_EXTERNAL_ENTITY_EVENT: case END_EXTERNAL_ENTITY_EVENT: case NO_EVENT: break; } } } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(&location_); } throw e; } } DocumentCache *FaxppDocumentCacheImpl::createDerivedCache(MemoryManager *memMgr) const { // lock the grammar pool, so we can share it across threads grammarResolver_->getGrammarPool()->lockPool(); // Construct a new FaxppDocumentCacheImpl, based on this one return new (memMgr) FaxppDocumentCacheImpl(memMgr, grammarResolver_->getGrammarPool()); } #endif XQilla-2.3.4/src/schema/AnyAtomicTypeDatatypeValidator.cpp0000644001725400016040000000336613273140037020472 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include AnyAtomicTypeDatatypeValidator::AnyAtomicTypeDatatypeValidator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager) : XERCES_CPP_NAMESPACE_QUALIFIER AnySimpleTypeDatatypeValidator(manager) { } AnyAtomicTypeDatatypeValidator::~AnyAtomicTypeDatatypeValidator () { } XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* AnyAtomicTypeDatatypeValidator::newInstance ( XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* const facets , XERCES_CPP_NAMESPACE_QUALIFIER RefArrayVectorOf* const enums , const int finalSet , XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager ) { return new (manager) AnyAtomicTypeDatatypeValidator(manager); } XQilla-2.3.4/src/schema/SchemaValidatorFilter.cpp0000644001725400016040000010731113273140037016611 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * A large part of this file is directly derived from the * SGXMLScanner class in the Xerces-C project, which is * licenced under the Apache License v2.0 */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; SchemaValidatorFilter::SchemaValidatorFilter(bool strictValidation, EventHandler *next, GrammarResolver *grammarResolver, MemoryManager *mm, const LocationInfo *info) : EventFilter(next), XMLScanner(0, grammarResolver, mm), info_(info), fSchemaValidator(new (mm) SchemaValidator(0, mm)), fSchemaGrammar(0), fContent(1023, mm), fICHandler(0), fElemNonDeclPool(new (mm) RefHash3KeysIdPool(29, true, 128, mm)), strictValidation_(strictValidation), errorOccurred_(false), parentStack_(0), elemDepth_(0), elementToProcess_(false), xsiType_(0), attrCount_(0) { fSchemaGrammar = new (fGrammarPoolMemoryManager) SchemaGrammar(fGrammarPoolMemoryManager); fICHandler = new (fMemoryManager) IdentityConstraintHandler(this, fMemoryManager); // XMLScanner methods needed // ---------------------- // fScanner->incrementErrorCount(); implemented // fScanner->getValidationConstraintFatal(); implemented // fScanner->getExitOnFirstFatal(); implemented // fScanner->getInException(); implemented // fScanner->getMemoryManager(); implemented // getScanner()->getEmptyNamespaceId(); implemented // getScanner()->resolveQName(); *** // getScanner()->getURIText(); implemented // getScanner()->getDocHandler(); for docCharacters() *** // getScanner()->getValidationContext(); implemented // getScanner()->emitError(); implemented // getScanner()->getValidationSchemaFullChecking(); implemented setURIStringPool(grammarResolver->getStringPool()); // ReaderMgr methods needed // ------------------------ // fReaderMgr->getLastExtEntityInfo(); // getReaderMgr()->getCurrentReader(); to call fCurReader->isWhitespace(); MemBufInputSource inputSrc(0, 0, XMLUni::fgZeroLenString, false, fMemoryManager); XMLReader *newReader = fReaderMgr.createReader(inputSrc, true, XMLReader::RefFrom_NonLiteral, XMLReader::Type_General, XMLReader::Source_External, /*fCalculateSrcOfs*/false); fReaderMgr.pushReader(newReader, 0); fReaderMgr.setXMLVersion(XMLReader::XMLV1_1); initValidator(fSchemaValidator); setDocHandler(this); setErrorReporter(this); reset(); } SchemaValidatorFilter::~SchemaValidatorFilter() { delete fSchemaValidator; delete fSchemaGrammar; delete fICHandler; delete fElemNonDeclPool; } void SchemaValidatorFilter::reset() { fGrammar = fSchemaGrammar; fValidator = fSchemaValidator; fValidator->setGrammar(fGrammar); fValidate = true; fSchemaValidator->reset(); fSchemaValidator->setErrorReporter(fErrorReporter); fSchemaValidator->setExitOnFirstFatal(true); fSchemaValidator->setGrammarResolver(fGrammarResolver); fICHandler->reset(); fElemNonDeclPool->removeAll(); errorOccurred_ = false; } void SchemaValidatorFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { reset(); next_->startDocumentEvent(documentURI, encoding); } void SchemaValidatorFilter::endDocumentEvent() { if(fValidate) { checkIDRefs(); fICHandler->endDocument(); } next_->endDocumentEvent(); } void SchemaValidatorFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(elementToProcess_) processStartElement(); prefix_.set(prefix); uri_.set(uri); localname_.set(localname); elementToProcess_ = true; attrCount_ = 0; xsiType_ = 0; if(fElemStack.isEmpty()) parentStack_ = 0; else parentStack_ = const_cast(fElemStack.topElement()); elemDepth_ = fElemStack.addLevel(); fElemStack.setValidationFlag(fValidate); errorOccurred_ = false; fElemStack.addPrefix(prefix, fURIStringPool->addOrFind(uri)); next_->startElementEvent(prefix, uri, localname); } void SchemaValidatorFilter::processStartElement() { bool isRoot = parentStack_ == 0; unsigned int uriId = fURIStringPool->addOrFind(uri_.getRawBuffer()); // Handle xsi:type if(xsiType_) { int colonPos = -1; unsigned int atUriId = resolveQName(xsiType_, fPrefixBuf, ElemStack::Mode_Element, colonPos); ((SchemaValidator*)fValidator)->setXsiType(fPrefixBuf.getRawBuffer(), xsiType_ + colonPos + 1, atUriId); } //if schema, check if we should lax or skip the validation of this element bool parentValidation = fValidate; unsigned int currentScope = Grammar::TOP_LEVEL_SCOPE; bool laxThisOne = false; if(!isRoot) { // schema validator will have correct type if validating SchemaElementDecl* tempElement = (SchemaElementDecl*)parentStack_->fThisElement; SchemaElementDecl::ModelTypes modelType = tempElement->getModelType(); ComplexTypeInfo *currType = 0; if(fValidate) { currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if (currType) modelType = (SchemaElementDecl::ModelTypes)currType->getContentType(); else // something must have gone wrong modelType = SchemaElementDecl::Any; } else { currType = tempElement->getComplexTypeInfo(); } if(modelType == SchemaElementDecl::Mixed_Simple || modelType == SchemaElementDecl::Mixed_Complex || modelType == SchemaElementDecl::Children) { XMLContentModel* cm = currType->getContentModel(); currentScope = parentStack_->fCurrentScope; QName element(prefix_.getRawBuffer(), localname_.getRawBuffer(), uriId, fMemoryManager); // elementDepth will be > 0 laxThisOne = laxElementValidation(&element, cm->getContentLeafNameTypeVector(), cm, elemDepth_ - 1); } else if(modelType == SchemaElementDecl::Any) { laxThisOne = true; } } else { // Switch to the initial Grammar for the root element. // This is added to fix a bug which used fSchemaGrammar rather than the // real grammar when the document is in no namespace - jpcs switchGrammar(uri_.getRawBuffer()); } XMLElementDecl* elemDecl = createElementDecl(uriId, currentScope, laxThisOne); assert(elemDecl); fElemStack.setElement(elemDecl, fReaderMgr.getCurrentReaderNum()); if(fValidate) fValidator->validateElement(elemDecl); ComplexTypeInfo* typeinfo = fValidate ? ((SchemaValidator*)fValidator)->getCurrentTypeInfo() : ((SchemaElementDecl*)elemDecl)->getComplexTypeInfo(); if(typeinfo) { currentScope = typeinfo->getScopeDefined(); // switch grammar if the typeinfo has a different grammar (happens when there is xsi:type) if(!typeinfo->getAnonymous()) { int comma = XMLString::indexOf(typeinfo->getTypeName(), chComma); if(comma > 0) { XMLBuffer prefixBuf(comma + 1, fMemoryManager); prefixBuf.append(typeinfo->getTypeName(), comma); const XMLCh *uriStr = prefixBuf.getRawBuffer(); if(!switchGrammar(uriStr) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, prefixBuf.getRawBuffer()); } } else if(comma == 0) { if(!switchGrammar(XMLUni::fgZeroLenString) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, XMLUni::fgZeroLenString); } } } } fElemStack.setCurrentScope(currentScope); // We commandeer fCurrentURI to keep the element state in fElemStack.setCurrentURI(0); fElemStack.setCurrentGrammar(fGrammar); if(!isRoot && parentValidation) { fElemStack.addChild(elemDecl->getElementName(), true); } processAttrs(elemDecl); if(fValidate) fICHandler->activateIdentityConstraint((SchemaElementDecl*)elemDecl, (int)elemDepth_, uriId, prefix_.getRawBuffer(), *fAttrList, attrCount_); elementToProcess_ = false; // We commandeer fCommentOrPISeen to keep errorOccurred_ in if(errorOccurred_) fElemStack.setCommentOrPISeen(); } void SchemaValidatorFilter::processAttrs(XMLElementDecl *elemDecl) { DatatypeValidator *currDV = 0; ComplexTypeInfo *currType = 0; if(fValidate) { currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(!currType) currDV = ((SchemaValidator*)fValidator)->getCurrentDatatypeValidator(); } // XMLBufBid bbNormal(&fBufMgr); // XMLBuffer& normBuf = bbNormal.getBuffer(); // Loop through our explicitly provided attributes, which are in the raw // scanned form, and build up XMLAttr objects. unsigned int index; for(index = 0; index < attrCount_; ++index) { const XMLAttr *attr = fAttrList->elementAt(index); const XMLCh *localname = attr->getName(); const XMLCh *value = attr->getValue(); unsigned int uriId = attr->getURIId(); const XMLCh *uri = getURIText(uriId); bool attrValid = true; DatatypeValidator *attrValidator = 0; bool xsiAttr = false; if(XMLString::equals(uri, SchemaSymbols::fgURI_XSI)) { xsiAttr = true; if(XMLString::equals(localname, SchemaSymbols::fgATT_NILL)) { attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_BOOLEAN); } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_SCHEMALOCACTION)) { } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION)) { } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_TYPE)) { attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_QNAME); } else { xsiAttr = false; } } if(xsiAttr) { // // Just normalize as CDATA // attType = XMLAttDef::CData; // normalizeAttRawValue // ( // namePtr // , curPair->getValue() // , normBuf // ); if(fValidate && attrValidator) { try { attrValidator->validate(value, fValidationContext, fMemoryManager); } catch (const XMLException& idve) { attrValid = false; #if _XERCES_VERSION >= 20800 fValidator->emitError (XMLValid::DatatypeError, idve.getCode(), idve.getType(), idve.getMessage()); #else fValidator->emitError (XMLValid::DatatypeError, idve.getType(), idve.getMessage()); #endif } } } else { // Some checking for attribute wild card first (for schema) bool laxThisOne = false; bool skipThisOne = false; XMLAttDef *attDef = 0; //retrieve the att def SchemaAttDef* attWildCard = 0; if(currType) { attDef = currType->getAttDef(localname, uriId); attWildCard = currType->getAttWildCard(); } else if(!currDV) { // check explicitly-set wildcard attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); } // if not found or faulted in - check for a matching wildcard attribute // if no matching wildcard attribute, check (un)qualifed cases and flag // appropriate errors if (!attDef || (attDef->getCreateReason() == XMLAttDef::JustFaultIn)) { if (attWildCard) { //if schema, see if we should lax or skip the validation of this attribute if (anyAttributeValidation(attWildCard, uriId, skipThisOne, laxThisOne)) { if(!skipThisOne) { SchemaGrammar* sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(getURIText(uriId)); if (sGrammar && sGrammar->getGrammarType() == Grammar::SchemaGrammarType) { RefHashTableOf* attRegistry = sGrammar->getAttributeDeclRegistry(); if (attRegistry) { attDef = attRegistry->get(localname); } } } } } else if (currType) { // not found, see if the attDef should be qualified or not if (uriId == fEmptyNamespaceId) { attDef = currType->getAttDef(localname, fURIStringPool->getId(fGrammar->getTargetNamespace())); if (fValidate && attDef && attDef->getCreateReason() != XMLAttDef::JustFaultIn) { // the attribute should be qualified fValidator->emitError(XMLValid::AttributeNotQualified, attDef->getFullName()); attrValid = false; } } else { attDef = currType->getAttDef(localname, fEmptyNamespaceId); if (fValidate && attDef && attDef->getCreateReason() != XMLAttDef::JustFaultIn) { // the attribute should be qualified fValidator->emitError(XMLValid::AttributeNotUnQualified, attDef->getFullName()); attrValid = false; } } } } if(!attDef) attrValid = false; if(fValidate && !attDef && !skipThisOne && !laxThisOne) { // // Its not valid for this element, so issue an error if we are // validating. // XMLBufBid bbMsg(&fBufMgr); XMLBuffer& bufMsg = bbMsg.getBuffer(); if(uriId != fEmptyNamespaceId) { XMLBufBid bbURI(&fBufMgr); XMLBuffer& bufURI = bbURI.getBuffer(); getURIText(uriId, bufURI); bufMsg.append(chOpenCurly); bufMsg.append(bufURI.getRawBuffer()); bufMsg.append(chCloseCurly); } bufMsg.append(localname); fValidator->emitError(XMLValid::AttNotDefinedForElement, bufMsg.getRawBuffer(), elemDecl->getFullName()); } // TBD? - jpcs // normalizeAttValue(attDef, namePtr, value, normBuf); if(attDef) { DatatypeValidator* tempDV = ((SchemaAttDef*) attDef)->getDatatypeValidator(); if(tempDV && tempDV->getWSFacet() != DatatypeValidator::PRESERVE) { // normalize the attribute according to schema whitespace facet ((SchemaValidator*) fValidator)->normalizeWhiteSpace(tempDV, value, fWSNormalizeBuf); value = fWSNormalizeBuf.getRawBuffer(); } if(fValidate && !skipThisOne) { fValidator->validateAttrValue(attDef, value, false, elemDecl); attrValidator = ((SchemaValidator *)fValidator)->getMostRecentAttrValidator(); if(((SchemaValidator *)fValidator)->getErrorOccurred()) attrValid = false; } } } if(fValidate && attrValid) { if(attrValidator) next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, emptyToNull(attrValidator->getTypeUri()), attrValidator->getTypeLocalName()); else next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_ANYSIMPLETYPE); } else next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } // Deal with default, required and prohibited attrs if((currType && fValidate) ? currType->hasAttDefs() : elemDecl->hasAttDefs()) { XMLAttDefList &attDefList = currType ? currType->getAttDefList() : elemDecl->getAttDefList(); for(unsigned int i = 0; i < attDefList.getAttDefCount(); ++i) { SchemaAttDef *curDef = (SchemaAttDef*)&attDefList.getAttDef(i); XMLAttDef::DefAttTypes defType = curDef->getDefaultType(); QName* attName = curDef->getAttName(); unsigned int curUriId = attName->getURI(); const XMLCh *curName = attName->getLocalPart(); // See if the attribute is already defined for(index = 0; index < attrCount_; ++index) { const XMLAttr *attr = fAttrList->elementAt(index); if(attr->getURIId() == curUriId && XPath2Utils::equals(attr->getName(), curName)) break; } if(index >= attrCount_) { switch(defType) { case XMLAttDef::Required: case XMLAttDef::Required_And_Fixed: if(fValidate) fValidator->emitError(XMLValid::RequiredAttrNotProvided, curDef->getFullName()); break; case XMLAttDef::Default: case XMLAttDef::Fixed: { DatatypeValidator *attrValidator = 0; if(fValidate) { fValidator->validateAttrValue(curDef, curDef->getValue(), false, elemDecl); attrValidator = ((SchemaValidator *)fValidator)->getMostRecentAttrValidator(); } if(attrValidator) next_->attributeEvent(emptyToNull(attName->getPrefix()), emptyToNull(getURIText(curUriId)), curName, curDef->getValue(), emptyToNull(attrValidator->getTypeUri()), attrValidator->getTypeLocalName()); else next_->attributeEvent(emptyToNull(attName->getPrefix()), emptyToNull(getURIText(curUriId)), curName, curDef->getValue(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); break; } default: break; } } else if(fValidate && defType == XMLAttDef::Prohibited) { fValidator->emitError(XMLValid::ProhibitedAttributePresent, curDef->getFullName()); } } } } void SchemaValidatorFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { if(elementToProcess_) processStartElement(); typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; assert(!fElemStack.isEmpty()); const ElemStack::StackElem* topElem = fElemStack.topElement(); // We commandeer fCommentOrPISeen to keep errorOccurred_ in errorOccurred_ = topElem->fCommentOrPISeen; if(fValidate) { DatatypeValidator *currentDV = 0; if(topElem->fThisElement->isDeclared()) { ComplexTypeInfo *currentTypeInfo = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(currentTypeInfo) { typeURI = currentTypeInfo->getTypeUri(); typeName = currentTypeInfo->getTypeLocalName(); } else { currentDV = ((SchemaValidator*)fValidator)->getCurrentDatatypeValidator(); typeURI = currentDV->getTypeUri(); typeName = currentDV->getTypeLocalName(); } } #if _XERCES_VERSION >= 30000 XMLSize_t failure; bool success = fValidator->checkContent(topElem->fThisElement, topElem->fChildren, topElem->fChildCount, &failure); #else int res = fValidator->checkContent(topElem->fThisElement, topElem->fChildren, topElem->fChildCount); bool success = res == -1; XMLSize_t failure = (XMLSize_t)res; #endif if(!success) { if(!topElem->fChildCount) { fValidator->emitError(XMLValid::EmptyNotValidForContent, topElem->fThisElement->getFormattedContentModel()); } else if(failure >= topElem->fChildCount) { fValidator->emitError(XMLValid::NotEnoughElemsForCM, topElem->fThisElement->getFormattedContentModel()); } else { fValidator->emitError(XMLValid::ElementNotValidForContent, topElem->fChildren[failure]->getRawName(), topElem->fThisElement->getFormattedContentModel()); } } if(currentDV && currentDV->getType() == DatatypeValidator::Union) { DatatypeValidator *memberType = fValidationContext->getValidatingMemberType(); typeURI = memberType->getTypeUri(); typeName = memberType->getTypeLocalName(); } if(fValidate) fICHandler->deactivateContext((SchemaElementDecl*)topElem->fThisElement, fContent.getRawBuffer()); } if(!fValidate || errorOccurred_) { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = DocumentCache::g_szUntyped; } fElemStack.popTop(); const bool isRoot = fElemStack.isEmpty(); ((SchemaValidator *)fValidator)->clearDatatypeBuffer(); if(!isRoot) { // We commandeer fCommentOrPISeen to keep errorOccurred_ in if(errorOccurred_) fElemStack.setCommentOrPISeen(); fGrammar = fElemStack.getCurrentGrammar(); fValidator->setGrammar(fGrammar); fValidate = fElemStack.getValidationFlag(); } next_->endElementEvent(prefix, uri, localname, emptyToNull(typeURI), typeName); } static inline const XMLCh *nullToZero(const XMLCh *in) { return in ? in : XMLUni::fgZeroLenString; } void SchemaValidatorFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { unsigned int uriId = fURIStringPool->addOrFind(uri); fElemStack.addPrefix(prefix, uriId); XMLAttr *curAttr; if(attrCount_ >= fAttrList->size()) { curAttr = new (fMemoryManager) XMLAttr(uriId, localname, nullToZero(prefix), nullToZero(value), XMLAttDef::CData, true, fMemoryManager); fAttrList->addElement(curAttr); } else { curAttr = fAttrList->elementAt(attrCount_); curAttr->set(uriId, localname, nullToZero(prefix), nullToZero(value)); } ++attrCount_; if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_XSI)) { // Ignore schema location hints if(XPath2Utils::equals(localname, SchemaSymbols::fgXSI_TYPE)) { xsiType_ = curAttr->getValue(); } else if(XPath2Utils::equals(localname, SchemaSymbols::fgATT_NILL) && XPath2Utils::equals(value, SchemaSymbols::fgATTVAL_TRUE)) { ((SchemaValidator*)fValidator)->setNillable(true); } } } void SchemaValidatorFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { fElemStack.addPrefix(prefix, fURIStringPool->addOrFind(uri)); next_->namespaceEvent(prefix, uri); } void SchemaValidatorFilter::textEvent(const XMLCh *chars) { if(elementToProcess_) processStartElement(); const XMLCh *end = chars; while(*end) ++end; unsigned int len = (unsigned int)(end - chars); if(fValidate) { // Get the character data opts for the current element XMLElementDecl::CharDataOpts charOpts = XMLElementDecl::AllCharData; ComplexTypeInfo *currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(currType) { SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)currType->getContentType(); if(modelType == SchemaElementDecl::Children) charOpts = XMLElementDecl::SpacesOk; else if(modelType == SchemaElementDecl::Empty) charOpts = XMLElementDecl::NoCharData; } if(charOpts == XMLElementDecl::AllCharData) { DatatypeValidator *tempDV = ((SchemaValidator*) fValidator)->getCurrentDatatypeValidator(); if(tempDV && tempDV->getWSFacet() != DatatypeValidator::PRESERVE) { // normalize the character according to schema whitespace facet ((SchemaValidator*) fValidator)->normalizeWhiteSpace(tempDV, chars, fWSNormalizeBuf); chars = fWSNormalizeBuf.getRawBuffer(); len = (unsigned int) fWSNormalizeBuf.getLen(); } // tell the schema validation about the character data for checkContent later ((SchemaValidator*)fValidator)->setDatatypeBuffer(chars); } else if(charOpts == XMLElementDecl::NoCharData) { fValidator->emitError(XMLValid::NoCharDataInCM); } else if(!fReaderMgr.getCurrentReader()->isAllSpaces(chars, len)) { fValidator->emitError(XMLValid::NoCharDataInCM); } } // call all active identity constraints if(fValidate && fICHandler->getMatcherCount()) fContent.append(chars, len); next_->textEvent(chars, len); } void SchemaValidatorFilter::textEvent(const XMLCh *chars, unsigned int len) { // Copy the chars to null terminate them XMLBuffer nullterm; nullterm.set(chars, len); textEvent(nullterm.getRawBuffer()); } void SchemaValidatorFilter::commentEvent(const XMLCh *value) { if(elementToProcess_) processStartElement(); next_->commentEvent(value); } void SchemaValidatorFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(elementToProcess_) processStartElement(); next_->piEvent(target, value); } //////////////////////////////////////////////////////////////////////////////////////////////////// #if _XERCES_VERSION < 30100 unsigned int SchemaValidatorFilter::resolveQName(const XMLCh *const qName, XMLBuffer &prefixBuf, const short mode, int &prefixColonPos) { prefixColonPos = XMLString::indexOf(qName, chColon); if(prefixColonPos == -1) { bool unknown = false; return fElemStack.mapPrefixToURI(XMLUni::fgZeroLenString, (ElemStack::MapModes) mode, unknown); } else { prefixBuf.set(qName, prefixColonPos); if(XPath2Utils::equals(prefixBuf.getRawBuffer(), XMLUni::fgXMLNSString)) { if(mode == ElemStack::Mode_Element) emitError(XMLErrs::NoXMLNSAsElementPrefix, qName); return fXMLNSNamespaceId; } else if(XPath2Utils::equals(prefixBuf.getRawBuffer(), XMLUni::fgXMLString)) { return fXMLNamespaceId; } else { bool unknown = false; unsigned int uriId = fElemStack.mapPrefixToURI(prefixBuf.getRawBuffer(), (ElemStack::MapModes) mode, unknown); if(unknown) emitError(XMLErrs::UnknownPrefix, prefixBuf.getRawBuffer()); return uriId; } } } #endif bool SchemaValidatorFilter::switchGrammar(const XMLCh *uri) { Grammar* tempGrammar = fGrammarResolver->getGrammar(uri); if(!tempGrammar) tempGrammar = fSchemaGrammar; if(!tempGrammar || tempGrammar->getGrammarType() == Grammar::DTDGrammarType) return false; fGrammar = tempGrammar; fValidator->setGrammar(fGrammar); return true; } bool SchemaValidatorFilter::laxElementValidation(QName* element, ContentLeafNameTypeVector* cv, const XMLContentModel* cm, unsigned int parentElemDepth) { bool skipThisOne = false; bool laxThisOne = false; unsigned int elementURI = element->getURI(); // We commandeer fCurrentURI to keep the element state in unsigned int currState = parentStack_->fCurrentURI; if (currState == XMLContentModel::gInvalidTrans) { return laxThisOne; } SubstitutionGroupComparator comparator(fGrammarResolver, fURIStringPool); if(cv) { unsigned int i = 0; unsigned int leafCount = (unsigned int) cv->getLeafCount(); for(; i < leafCount; ++i) { QName* fElemMap = cv->getLeafNameAt(i); unsigned int uri = fElemMap->getURI(); unsigned int nextState; bool anyEncountered = false; ContentSpecNode::NodeTypes type = cv->getLeafTypeAt(i); if(type == ContentSpecNode::Leaf) { if(((uri == elementURI) && XMLString::equals(fElemMap->getLocalPart(), element->getLocalPart())) || comparator.isEquivalentTo(element, fElemMap)) { nextState = cm->getNextState(currState, i); if(nextState != XMLContentModel::gInvalidTrans) { // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = nextState; break; } } } else if((type & 0x0f) == ContentSpecNode::Any) { anyEncountered = true; } else if((type & 0x0f) == ContentSpecNode::Any_Other) { if (uri != elementURI) { anyEncountered = true; } } else if((type & 0x0f) == ContentSpecNode::Any_NS) { if (uri == elementURI) { anyEncountered = true; } } if(anyEncountered) { nextState = cm->getNextState(currState, i); if(nextState != XMLContentModel::gInvalidTrans) { // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = nextState; if(type == ContentSpecNode::Any_Skip || type == ContentSpecNode::Any_NS_Skip || type == ContentSpecNode::Any_Other_Skip) { skipThisOne = true; } else if(type == ContentSpecNode::Any_Lax || type == ContentSpecNode::Any_NS_Lax || type == ContentSpecNode::Any_Other_Lax) { laxThisOne = true; } break; } } } if(i == leafCount) { // no match // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = XMLContentModel::gInvalidTrans; return laxThisOne; } } if (skipThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } return laxThisOne; } bool SchemaValidatorFilter::anyAttributeValidation(SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne) { XMLAttDef::AttTypes wildCardType = attWildCard->getType(); bool anyEncountered = false; skipThisOne = false; laxThisOne = false; if (wildCardType == XMLAttDef::Any_Any) anyEncountered = true; else if (wildCardType == XMLAttDef::Any_Other) { if (attWildCard->getAttName()->getURI() != uriId && uriId != fEmptyNamespaceId) anyEncountered = true; } else if (wildCardType == XMLAttDef::Any_List) { ValueVectorOf* nameURIList = attWildCard->getNamespaceList(); unsigned int listSize = (unsigned int) ((nameURIList) ? nameURIList->size() : 0); if (listSize) { for (unsigned int i=0; i < listSize; i++) { if (nameURIList->elementAt(i) == uriId) anyEncountered = true; } } } if (anyEncountered) { XMLAttDef::DefAttTypes defType = attWildCard->getDefaultType(); if (defType == XMLAttDef::ProcessContents_Skip) { // attribute should just be bypassed, skipThisOne = true; } else if (defType == XMLAttDef::ProcessContents_Lax) { laxThisOne = true; } } return anyEncountered; } XMLElementDecl *SchemaValidatorFilter::createElementDecl(unsigned int uriId, unsigned int currentScope, bool laxThisOne) { // Look up the element now in the grammar. This will get us back a // generic element decl object. We tell him to fault one in if he does // not find it. XMLElementDecl* elemDecl = 0; const XMLCh* original_uriStr = fGrammar->getTargetNamespace(); elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, currentScope); if(!elemDecl) elemDecl = fElemNonDeclPool->getByKey(localname_.getRawBuffer(), uriId, currentScope); unsigned int orgGrammarUri = uriId; if(!elemDecl && (orgGrammarUri = fURIStringPool->getId(original_uriStr)) != uriId) { //not found, switch grammar and try globalNS if(!switchGrammar(uri_.getRawBuffer()) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, uri_.getRawBuffer()); } elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, currentScope); } if(!elemDecl && currentScope != Grammar::TOP_LEVEL_SCOPE) { // if not found, then it may be a reference, try TOP_LEVEL_SCOPE elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, Grammar::TOP_LEVEL_SCOPE); if(!elemDecl) elemDecl = fElemNonDeclPool->getByKey(localname_.getRawBuffer(), uriId, Grammar::TOP_LEVEL_SCOPE); if(!elemDecl) { // still not found in specified uri if(uriId != fEmptyNamespaceId) { // try emptyNamesapce see if element should be un-qualified. elemDecl = fGrammar->getElemDecl(fEmptyNamespaceId, localname_.getRawBuffer(), 0, currentScope); if(elemDecl && elemDecl->getCreateReason() != XMLElementDecl::JustFaultIn && fValidate) { fValidator->emitError(XMLValid::ElementNotUnQualified, elemDecl->getFullName()); } } else if(orgGrammarUri != uriId) { // go to original Grammar again to see if element needs to be fully qualified. if(!switchGrammar(original_uriStr) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, original_uriStr); } elemDecl = fGrammar->getElemDecl(orgGrammarUri, localname_.getRawBuffer(), 0, currentScope); if(elemDecl && elemDecl->getCreateReason() != XMLElementDecl::JustFaultIn && fValidate) { fValidator->emitError(XMLValid::ElementNotQualified, elemDecl->getFullName()); } } } } if(!elemDecl) { // still not found, fault this in and issue error later // switch back to original grammar first (if necessary) if(orgGrammarUri != uriId) { switchGrammar(original_uriStr); } elemDecl = new (fMemoryManager) SchemaElementDecl(prefix_.getRawBuffer(), localname_.getRawBuffer(), uriId, SchemaElementDecl::Any, Grammar::TOP_LEVEL_SCOPE, fMemoryManager); elemDecl->setId(fElemNonDeclPool->put((void*)elemDecl->getBaseName(), uriId, currentScope, (SchemaElementDecl*)elemDecl)); if(laxThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } else if(fValidate) { // This is to tell the reuse Validator that this element was // faulted-in, was not an element in the grammar pool originally elemDecl->setCreateReason(XMLElementDecl::JustFaultIn); fValidator->emitError(XMLValid::ElementNotDefined, elemDecl->getFullName()); } } else { // If its not marked declared and validating, then emit an error if(!elemDecl->isDeclared()) { if(laxThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } else if(fValidate) { fValidator->emitError(XMLValid::ElementNotDefined, elemDecl->getFullName()); } } } return elemDecl; } //////////////////////////////////////////////////////////////////////////////////////////////////// void SchemaValidatorFilter::docCharacters(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { // The SchemaValidator calls this method to report default element values next_->textEvent(chars, (unsigned int)length); } void SchemaValidatorFilter::error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum) { errorOccurred_ = true; // Skip validation errors if validation isn't strict if(!strictValidation_ && errDomain == XMLUni::fgValidityDomain && type != XMLErrorReporter::ErrType_Fatal) return; XMLBuffer exc_msg(1023); exc_msg.set(X("Schema validation failed: ")); exc_msg.append(errorText); if((publicId && *publicId) || (systemId && *systemId)) { exc_msg.append(X(", ")); if(systemId && *systemId) exc_msg.append(systemId); else exc_msg.append(publicId); if(lineNum != 0) { exc_msg.append(':'); XPath2Utils::numToBuf((unsigned int)lineNum, exc_msg); exc_msg.append(':'); XPath2Utils::numToBuf((unsigned int)colNum, exc_msg); } } exc_msg.append(X(" [err:XQDY0027]")); XQThrow3(DynamicErrorException,X("SchemaValidatorFilter::error"), exc_msg.getRawBuffer(), info_); } XQilla-2.3.4/src/schema/FaxppDocumentCacheImpl.hpp0000644001725400016040000000424613273140037016730 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FAXPPDOCUMENTCACHEIMPL_HPP #define _FAXPPDOCUMENTCACHEIMPL_HPP #include "../config/xqilla_config.h" #ifdef HAVE_FAXPP extern "C" { #include } #include #include XERCES_CPP_NAMESPACE_BEGIN class BinInputStream; XERCES_CPP_NAMESPACE_END struct FaxppParserWrapper { FaxppParserWrapper(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *e); ~FaxppParserWrapper(); void reset(); FAXPP_Error parseInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XPath2MemoryManager *m); std::vector inputStreams; XPath2MemoryManager *mm; XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *entityResolver; FAXPP_Parser *parser; }; class FaxppDocumentCacheImpl : public DocumentCacheImpl { public: FaxppDocumentCacheImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* xmlgr = 0); ~FaxppDocumentCacheImpl(); virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context); virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const; protected: FaxppParserWrapper wrapper_; SchemaValidatorFilter *validator_; }; #endif #endif XQilla-2.3.4/src/schema/SequenceType.cpp0000644001725400016040000013412713273140037015014 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif SequenceType::SequenceType(const XMLCh* typeURI,const XMLCh* typeName, SequenceType::OccurrenceIndicator occur, XPath2MemoryManager *mm) : m_pItemType(new (mm) SequenceType::ItemType(typeURI, typeName, mm)), m_nOccurrence(occur) { } SequenceType::SequenceType(SequenceType::ItemType* test, OccurrenceIndicator occur) : m_pItemType(test), m_nOccurrence(occur) { } SequenceType::SequenceType() : m_pItemType(0), m_nOccurrence(EXACTLY_ONE) { } SequenceType::~SequenceType() { if(m_pItemType) delete m_pItemType; } Result SequenceType::occurrenceMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return new OccurrenceMatchesResult(toBeTested, this, location, errorCode); } Result SequenceType::typeMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return new TypeMatchesResult(toBeTested, this, location, errorCode); } Result SequenceType::matches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return typeMatches(occurrenceMatches(toBeTested, location, errorCode), location, errorCode); } void SequenceType::setItemType(SequenceType::ItemType* itemType) { if(m_pItemType) delete m_pItemType; m_pItemType=itemType; } SequenceType::ItemType::ItemTestType SequenceType::getItemTestType() const { return m_pItemType->getItemTestType(); } SequenceType::OccurrenceIndicator SequenceType::getOccurrenceIndicator() const { return m_nOccurrence; } void SequenceType::setOccurrence(SequenceType::OccurrenceIndicator nOccurrence) { m_nOccurrence=nOccurrence; } const XMLCh* SequenceType::getNameURI() const { if(m_pItemType) return m_pItemType->getNameURI(); return 0; } const XMLCh* SequenceType::getTypeURI() const { if(m_pItemType) return m_pItemType->getTypeURI(); return 0; } QualifiedName *SequenceType::getConstrainingName() const { return m_pItemType->getName(); } QualifiedName *SequenceType::getConstrainingType() const { return m_pItemType->getType(); } void SequenceType::staticResolution(StaticContext* context) { if(m_pItemType) m_pItemType->staticResolution(context, this); } void SequenceType::ItemType::staticResolution(StaticContext *context, const LocationInfo *location) { // Prefix resolution should only happen once // (since SequenceType objects can be multiple times in the AST) if(!staticallyResolved_) { staticallyResolved_ = true; if(m_pType && m_TypeURI == 0) { const XMLCh *prefix = m_pType->getPrefix(); // an empty prefix means the default element and type namespace if(prefix == 0 || *prefix == 0) { m_TypeURI = context->getDefaultElementAndTypeNS(); } else { m_TypeURI = context->getUriBoundToPrefix(prefix, location); } } if(m_pName && m_NameURI == 0) { const XMLCh *prefix = m_pName->getPrefix(); // if we are testing for an attribute, an empty prefix means empty namespace; if we are testing an element, it means // the default element and type namespace if(prefix == 0 || *prefix == 0) { if(m_nTestType == TEST_ELEMENT || m_nTestType == TEST_SCHEMA_ELEMENT || m_nTestType == TEST_DOCUMENT || m_nTestType == TEST_SCHEMA_DOCUMENT) m_NameURI = context->getDefaultElementAndTypeNS(); } else { m_NameURI = context->getUriBoundToPrefix(prefix, location); } } } if(m_pType) { if(m_nTestType == ItemType::TEST_ATOMIC_TYPE) { // check if the type to be tested is defined and is really an atomic one if(!context->getDocumentCache()->isTypeDefined(m_TypeURI, m_pType->getName())) { XMLBuffer buf; buf.set(X("Type {")); buf.append(m_TypeURI); buf.append(X("}:")); buf.append(m_pType->getName()); buf.append(X(" is not defined [err:XPST0051]")); XQThrow3(StaticErrorException, X("SequenceType::ItemType::staticResolution"), buf.getRawBuffer(), location); } if(!context->getDocumentCache()->isTypeOrDerivedFromType(m_TypeURI, m_pType->getName(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE)) { XMLBuffer buf; buf.set(X("Type {")); buf.append(m_TypeURI); buf.append(X("}:")); buf.append(m_pType->getName()); buf.append(X(" is not an atomic type [err:XPST0051]")); XQThrow3(StaticErrorException, X("SequenceType::ItemType::staticResolution"), buf.getRawBuffer(), location); } } else if(XPath2Utils::equals(m_pType->getName(), SchemaSymbols::fgATTVAL_ANYTYPE) && XPath2Utils::equals(m_TypeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // xs:anyType is the same as a type wildcard m_pType = 0; m_TypeURI = 0; } else if(!context->getDocumentCache()->isTypeDefined(m_TypeURI, m_pType->getName())) { XMLBuffer msg; msg.set(X("Type {")); msg.append(m_TypeURI); msg.append(X("}")); msg.append(m_pType->getName()); msg.append(X(" is not defined [err:XPTY0004]")); XQThrow3(XPath2ErrorException,X("SequenceType::ItemType::matchesNameType"), msg.getRawBuffer(), location); } } switch(m_nTestType) { case TEST_SCHEMA_DOCUMENT: case TEST_SCHEMA_ELEMENT: { // retrieve the type of the element name SchemaElementDecl *elemDecl = context->getDocumentCache()->getElementDecl(m_NameURI, m_pName->getName()); if(elemDecl == NULL) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("Element {")); msg.append(m_NameURI); msg.append(X("}")); msg.append(m_pName->getName()); msg.append(X(" is not defined as a global element [err:XPST0081]")); XQThrow3(StaticErrorException,X("SequenceType::ItemType::staticResolution"), msg.getRawBuffer(), location); } break; } case TEST_SCHEMA_ATTRIBUTE: { // retrieve the type of the attribute name SchemaAttDef *attrDecl = context->getDocumentCache()->getAttributeDecl(m_NameURI, m_pName->getName()); if(attrDecl == NULL) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("Attribute {")); msg.append(m_NameURI); msg.append(X("}")); msg.append(m_pName->getName()); msg.append(X(" is not defined as a global attribute [err:XPST0081]")); XQThrow3(StaticErrorException,X("SequenceType::ItemType::staticResolution"), msg.getRawBuffer(), location); } break; } default: break; } if(returnType_) returnType_->staticResolution(context); } SequenceType::ItemType::ItemType(ItemTestType test,QualifiedName* name, QualifiedName* type) : m_nTestType(test), m_pName(name), m_pType(type), m_NameURI(0), m_TypeURI(0), m_bAllowNil(false), argTypes_(0), returnType_(0), staticallyResolved_(false) { } SequenceType::ItemType::ItemType(const XMLCh *typeURI,const XMLCh *typeName, XPath2MemoryManager *mm) : m_nTestType(TEST_ATOMIC_TYPE), m_pName(0), m_pType(new (mm) QualifiedName(typeName, mm)), m_NameURI(0), m_TypeURI(typeURI), m_bAllowNil(false), argTypes_(0), returnType_(0), staticallyResolved_(true) { } SequenceType::ItemType::ItemType(VectorOfSequenceTypes *argTypes, SequenceType *returnType) : m_nTestType(TEST_FUNCTION), m_pName(0), m_pType(0), m_NameURI(0), m_TypeURI(0), m_bAllowNil(false), argTypes_(argTypes), returnType_(returnType), staticallyResolved_(true) { } SequenceType::ItemType::~ItemType() { delete m_pName; delete m_pType; delete returnType_; } SequenceType::ItemType::ItemTestType SequenceType::ItemType::getItemTestType() const { return m_nTestType; } void SequenceType::ItemType::setItemTestType(ItemTestType t) { m_nTestType = t; } void SequenceType::ItemType::setAllowNilled(bool value) { m_bAllowNil=value; } bool SequenceType::ItemType::getAllowNilled() const { return m_bAllowNil; } void SequenceType::ItemType::setName(QualifiedName * name) { m_pName=name; } QualifiedName *SequenceType::ItemType::getName() const { return m_pName; } void SequenceType::ItemType::setType(QualifiedName * type) { m_pType=type; } QualifiedName *SequenceType::ItemType::getType() const { return m_pType; } const XMLCh* SequenceType::ItemType::getTypeURI() const { return m_TypeURI; } const XMLCh* SequenceType::ItemType::getNameURI() const { return m_NameURI; } void SequenceType::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(m_pItemType == 0) { st = StaticType(); isExact = true; } else { m_pItemType->getStaticType(st, context, isExact, location); switch(m_nOccurrence) { case EXACTLY_ONE: break; case STAR: st.multiply(0, StaticType::UNLIMITED); break; case PLUS: st.multiply(1, StaticType::UNLIMITED); break; case QUESTION_MARK: st.multiply(0, 1); break; } } } void SequenceType::ItemType::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(this == NULL) { st = StaticType(); isExact = true; return; } switch(m_nTestType) { case TEST_ANYTHING: { st = StaticType::ITEM_TYPE; isExact = true; break; } case TEST_ATOMIC_TYPE: { st = StaticType::create(m_TypeURI, m_pType->getName(), context, isExact); break; } case TEST_DOCUMENT: { st = StaticType::DOCUMENT_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_ELEMENT: { st = StaticType::ELEMENT_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_ATTRIBUTE: { st = StaticType::ATTRIBUTE_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_PI: { st = StaticType::PI_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_SCHEMA_ELEMENT: { st = StaticType::ELEMENT_TYPE; isExact = false; break; } case TEST_SCHEMA_ATTRIBUTE: { st = StaticType::ATTRIBUTE_TYPE; isExact = false; break; } case TEST_SCHEMA_DOCUMENT: { st = StaticType::DOCUMENT_TYPE; isExact = false; break; } case TEST_COMMENT: { st = StaticType::COMMENT_TYPE; isExact = true; break; } case TEST_TEXT: { st = StaticType::TEXT_TYPE; isExact = true; break; } case TEST_NAMESPACE: { st = StaticType::NAMESPACE_TYPE; isExact = true; break; } case TEST_NODE: { st = StaticType::NODE_TYPE; isExact = true; break; } case TEST_FUNCTION: { if(returnType_ == 0) { st = StaticType::FUNCTION_TYPE; isExact = true; } else { StaticType ret; returnType_->getStaticType(ret, context, isExact, location); isExact = isExact && argTypes_->size() == 0; st = StaticType(context->getMemoryManager(), (unsigned int)argTypes_->size(), ret); } break; } } } void SequenceType::toBuffer(XMLBuffer &buffer) const { if(m_pItemType == 0) { buffer.append(X("empty-sequence()")); } else { m_pItemType->toBuffer(buffer, m_nOccurrence != EXACTLY_ONE); switch(m_nOccurrence) { case EXACTLY_ONE: break; case STAR: buffer.append('*'); break; case PLUS: buffer.append('+'); break; case QUESTION_MARK: buffer.append('?'); break; } } } inline void outputPrefixOrURI(const XMLCh *prefix, const XMLCh *uri, XMLBuffer &buffer) { if(prefix != 0) { buffer.append(prefix); buffer.append(':'); } else if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { buffer.append(X("xs:")); } else if(uri != 0) { buffer.append('{'); buffer.append(uri); buffer.append('}'); } } void SequenceType::ItemType::toBuffer(XMLBuffer &buffer, bool addBrackets) const { switch(m_nTestType) { case TEST_ANYTHING: { buffer.append(X("item()")); break; } case TEST_ATOMIC_TYPE: { outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); break; } case TEST_SCHEMA_DOCUMENT: case TEST_DOCUMENT: { buffer.append(X("document-node(")); if(m_pName != NULL || m_pType != NULL) { if(m_nTestType == TEST_DOCUMENT) buffer.append(X("element(")); else buffer.append(X("schema-element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); } buffer.append(')'); break; } case TEST_ELEMENT: { buffer.append(X("element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); break; } case TEST_ATTRIBUTE: { buffer.append(X("attribute(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); break; } case TEST_PI: { buffer.append(X("processing-instruction(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_SCHEMA_ELEMENT: { buffer.append(X("schema-element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_SCHEMA_ATTRIBUTE: { buffer.append(X("schema-attribute(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_COMMENT: { buffer.append(X("comment()")); break; } case TEST_TEXT: { buffer.append(X("text()")); break; } case TEST_NAMESPACE: { buffer.append(X("namespace-node()")); break; } case TEST_NODE: { buffer.append(X("node()")); break; } case TEST_FUNCTION: { if(returnType_ == 0) { buffer.append(X("function(*)")); } else { addBrackets = addBrackets && returnType_->getOccurrenceIndicator() == EXACTLY_ONE; if(addBrackets) buffer.append('('); buffer.append(X("function(")); bool doneOne = false; for(VectorOfSequenceTypes::const_iterator i = argTypes_->begin(); i != argTypes_->end(); ++i) { if(doneOne) buffer.append(','); doneOne = true; (*i)->toBuffer(buffer); } buffer.append(X(") as ")); returnType_->toBuffer(buffer); if(addBrackets) buffer.append(')'); } break; } } } bool SequenceType::ItemType::matchesNameType(const Item::Ptr &toBeTested, const DynamicContext* context) const { // Check name constraint if(m_pName) { if(toBeTested->isNode()) { ATQNameOrDerived::Ptr name = ((const Node*)(const Item*)toBeTested)->dmNodeName(context); if(name.isNull()) return false; // Match node name if(!(XPath2Utils::equals(m_pName->getName(), ((const ATQNameOrDerived*)name.get())->getName()))) return false; // Match node uri if(!(XPath2Utils::equals(m_NameURI, ((const ATQNameOrDerived*)name.get())->getURI()))) return false; } else return false; } //A named atomic type matches a value if the dynamic type of the //value is the same as the named atomic type or is derived from the //named atomic type by restriction. For example, the ItemType //xs:decimal matches the value 12.34 (a decimal literal); it also //matches a value whose dynamic type is shoesize, if shoesize is an //atomic type derived from xs:decimal. if(m_pType) { if(toBeTested->isAtomicValue()) { return ((AnyAtomicType*)toBeTested.get())->isInstanceOfType(m_TypeURI, m_pType->getName(), context); } else if (toBeTested->isNode()) { return ((Node*)toBeTested.get())->hasInstanceOfType(m_TypeURI, m_pType->getName(), context); } return false; } return true; } bool SequenceType::ItemType::matchesSchemaElement(const Node::Ptr &toBeTested, const DynamicContext* context) const { // retrieve the type of the element name assert(m_pName!=NULL); const XMLCh* elementNS=m_NameURI; const XMLCh* elementName=m_pName->getName(); SchemaElementDecl *elemDecl=context->getDocumentCache()->getElementDecl(elementNS, elementName); // 1. The name of the candidate node matches the specified ElementName or matches the name of an element in a // substitution group headed by an element named ElementName. ATQNameOrDerived::Ptr name = toBeTested->dmNodeName(context); if(name.isNull()) return false; const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(!(XPath2Utils::equals(elementName, node_name)) || !(XPath2Utils::equals(elementNS, node_uri))) { // the node doesn't match the ElementName; check if it is in its substitution group SchemaElementDecl* thisElemDecl=context->getDocumentCache()->getElementDecl(node_uri, node_name); if(thisElemDecl==NULL) // the node to be tested has no type info return false; SchemaElementDecl* rootElemDecl=thisElemDecl->getSubstitutionGroupElem(); bool foundIt=false; while (rootElemDecl) { if (XPath2Utils::equals(rootElemDecl->getBaseName(), elementName) && XPath2Utils::equals(context->getDocumentCache()->getSchemaUri(rootElemDecl->getURI()), elementNS)) { foundIt = true; break; } rootElemDecl = rootElemDecl->getSubstitutionGroupElem(); } if(!foundIt) return false; } if (elemDecl == NULL) return false; // 2. derives-from(AT, ET) is true, where AT is the type of the candidate node and ET is the type declared for // element ElementName in the in-scope element declarations. ComplexTypeInfo* pTypeInfo=elemDecl->getComplexTypeInfo(); if(pTypeInfo && !toBeTested->hasInstanceOfType(pTypeInfo->getTypeUri(), pTypeInfo->getTypeLocalName(), context)) return false; // 3. Either the nilled property of the candidate node is false, or the element declaration for ElementName in // the in-scope element declarations is nillable. if(toBeTested->dmNilled(context).get()->isTrue() && !(elemDecl->getMiscFlags() & SchemaSymbols::XSD_NILLABLE)) return false; return true; } bool SequenceType::ItemType::matches(const Node::Ptr &toBeTested, DynamicContext* context) const { switch(m_nTestType) { case TEST_ELEMENT: { if(toBeTested->dmNodeKind() != Node::element_string) return false; if(!matchesNameType(toBeTested, context)) return false; // if the element has xsi:nil="true", m_bAllowNil MUST be true if(toBeTested->dmNilled(context)->isTrue() && !m_bAllowNil) return false; return true; } case TEST_ATTRIBUTE: { if(toBeTested->dmNodeKind() != Node::attribute_string) return false; if(!matchesNameType(toBeTested, context)) return false; return true; } case TEST_SCHEMA_ELEMENT: { if(toBeTested->dmNodeKind() != Node::element_string) return false; return matchesSchemaElement(toBeTested, context); } case TEST_SCHEMA_ATTRIBUTE: { if(toBeTested->dmNodeKind() != Node::attribute_string) return false; // retrieve the type of the attribute name assert(m_pName!=NULL); const XMLCh* attributeNS=m_NameURI; const XMLCh* attributeName=m_pName->getName(); SchemaAttDef* attrDecl=context->getDocumentCache()->getAttributeDecl(attributeNS, attributeName); assert(attrDecl != NULL); // 1. The name of the candidate node matches the specified AttributeName ATQNameOrDerived::Ptr name = toBeTested->dmNodeName(context); if(name.isNull()) return false; const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(!(XPath2Utils::equals(attributeName, node_name)) || !(XPath2Utils::equals(attributeNS, node_uri))) return false; // 2. derives-from(AT, ET) is true, where AT is the type of the candidate node and ET is the type declared // for attribute AttributeName in the in-scope attribute declarations. DatatypeValidator* pDV=attrDecl->getDatatypeValidator(); if(pDV && !toBeTested->hasInstanceOfType(pDV->getTypeUri(), pDV->getTypeLocalName(), context)) return false; return true; } case TEST_PI: { if(toBeTested->dmNodeKind() != Node::processing_instruction_string) return false; if(!matchesNameType(toBeTested, context)) return false; return true; } case TEST_COMMENT: { return (toBeTested->dmNodeKind() == Node::comment_string); } case TEST_TEXT: { return (toBeTested->dmNodeKind() == Node::text_string); } case TEST_NAMESPACE: { return (toBeTested->dmNodeKind() == Node::namespace_string); } case TEST_SCHEMA_DOCUMENT: case TEST_DOCUMENT: { if(toBeTested->dmNodeKind() != Node::document_string) return false; if(m_pName == NULL && m_pType == NULL) return true; // if we have a constraint on name/type, they apply to the document element Result children = toBeTested->dmChildren(context, 0); Node::Ptr docElement; while((docElement = children->next(context)).notNull() && docElement->dmNodeKind() != Node::element_string) {} if(docElement.isNull()) return false; if(m_nTestType == TEST_DOCUMENT) return matchesNameType(docElement, context); else return matchesSchemaElement(docElement, context); } case TEST_NODE: case TEST_ANYTHING: { return true; } case TEST_ATOMIC_TYPE: case TEST_FUNCTION: { return false; } } return true; } bool SequenceType::ItemType::matches(const FunctionRef::Ptr &toBeTested, DynamicContext* context) const { return matches(toBeTested->getSignature(), context); } bool SequenceType::ItemType::matches(const FunctionSignature *sig, DynamicContext* context) const { switch(m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: case TEST_NAMESPACE: case TEST_ATOMIC_TYPE: { return false; } case TEST_ANYTHING: { return true; } case TEST_FUNCTION: { // function(*) matches any function item. if(returnType_ == 0) return true; // A TypedFunctionTest matches an item if it is a function item, and the function // item's type signature is a subtype of the TypedFunctionTest. size_t numArgs = sig->argSpecs ? sig->argSpecs->size() : 0; if(numArgs != argTypes_->size()) return false; if(sig->argSpecs) { ArgumentSpecs::const_iterator aa_i = sig->argSpecs->begin(); VectorOfSequenceTypes::const_iterator ba_i = argTypes_->begin(); for(; aa_i != sig->argSpecs->end() && ba_i != argTypes_->end(); ++aa_i, ++ba_i) { if(!(*ba_i)->isSubtypeOf((*aa_i)->getType(), context)) return false; } } if(sig->returnType) return sig->returnType->isSubtypeOf(returnType_, context); return returnType_->m_nOccurrence == STAR && returnType_->m_pItemType && returnType_->m_pItemType->getItemTestType() == TEST_ANYTHING; } } return true; } bool SequenceType::ItemType::matches(const Item::Ptr &toBeTested, DynamicContext* context) const { if(toBeTested->isNode()) return matches((Node::Ptr)toBeTested, context); if(toBeTested->isFunction()) return matches((FunctionRef::Ptr)toBeTested, context); switch(m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: case TEST_NAMESPACE: case TEST_FUNCTION: { return false; } case TEST_ANYTHING: { return true; } case TEST_ATOMIC_TYPE: { if(!toBeTested->isAtomicValue()) return false; return matchesNameType(toBeTested, context); } } return true; } bool SequenceType::isSubtypeOf(const SequenceType *b, const StaticContext* context) const { const SequenceType *a = this; if(b->m_pItemType == 0) return a->m_pItemType == 0; if(a->m_pItemType == 0) return b->m_nOccurrence == QUESTION_MARK || b->m_nOccurrence == STAR; switch(b->m_nOccurrence) { case EXACTLY_ONE: if(a->m_nOccurrence != EXACTLY_ONE) return false; break; case PLUS: if(a->m_nOccurrence != EXACTLY_ONE && a->m_nOccurrence != PLUS) return false; break; case QUESTION_MARK: if(a->m_nOccurrence != QUESTION_MARK && a->m_nOccurrence != EXACTLY_ONE) return false; break; case STAR: break; } return a->m_pItemType->isSubtypeOf(b->m_pItemType, context); } bool SequenceType::ItemType::isSubtypeOfNameType(const ItemType *b, const StaticContext* context) const { const ItemType *a = this; if(a->m_pName) { if(b->m_pName == 0) return false; if(!XPath2Utils::equals(a->m_pName->getName(), b->m_pName->getName()) || !XPath2Utils::equals(a->m_NameURI, b->m_NameURI)) return false; } if(a->m_pType) { if(b->m_pType == 0) return false; if(!context->isTypeOrDerivedFromType(a->m_TypeURI, a->m_pType->getName(), b->m_TypeURI, b->m_pType->getName())) return false; } return true; } bool SequenceType::ItemType::isSubtypeOf(const ItemType *b, const StaticContext* context) const { const ItemType *a = this; switch(b->m_nTestType) { case TEST_ATOMIC_TYPE: { // Ai and Bi are AtomicTypes, and derives-from(Ai, Bi) returns true. if(b->m_nTestType != TEST_ATOMIC_TYPE) return false; return a->isSubtypeOfNameType(b, context); } case TEST_ANYTHING: { // Bi is item(). return true; } case TEST_NODE: { // Bi is node(), and Ai is a KindTest. switch(a->m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: return true; default: return false; } } case TEST_TEXT: { // Bi is text() and Ai is also text(). return b->m_nTestType == TEST_TEXT; } case TEST_COMMENT: { // Bi is comment() and Ai is also comment(). return a->m_nTestType == TEST_COMMENT; } case TEST_NAMESPACE: { // Bi is namespace-node() and Ai is also namespace-node(). return a->m_nTestType == TEST_NAMESPACE; } case TEST_PI: { // Bi is processing-instruction() and Ai is either processing-instruction() or processing-instruction(N) for any name N.. // Bi is processing-instruction(Bn), and Ai is also processing-instruction(Bn). if(a->m_nTestType != TEST_PI) return false; return a->isSubtypeOfNameType(b, context); } case TEST_DOCUMENT: // Bi is document-node() and Ai is either document-node() or document-node(E) for any ElementTest E. // Bi is document-node(Be) and Ai is document-node(Ae), and subtype-itemtype(Ae, Be). case TEST_ELEMENT: { // Bi is either element() or element(*), and Ai is an ElementTest. // Bi is either element(Bn) or element(Bn, xs:anyType), and Ai is either element(Bn), or element(Bn, T) for any type T. // Bi is element(Bn, Bt), Ai is element(Bn, At), and derives-from(At, Bt) returns true. // Bi is element(Bn, Bt?), Ai is either element(Bn, At), or element(Bn, At?), and derives-from(At, Bt) returns true. // Bi is element(*, Bt), Ai is either element(*, At), or element(N, At) for any name N, and derives-from(At, Bt) returns true. // Bi is element(*, Bt?), Ai is either element(*, At), element(*, At?), element(N, At), or element(N, At?) for any name N, and derives-from(At, Bt) returns true. if(a->m_nTestType != b->m_nTestType) return false; if(!a->isSubtypeOfNameType(b, context)) return false; return !a->m_bAllowNil || b->m_bAllowNil; } case TEST_SCHEMA_DOCUMENT: // Bi is document-node() and Ai is either document-node() or document-node(E) for any ElementTest E. // Bi is document-node(Be) and Ai is document-node(Ae), and subtype-itemtype(Ae, Be). case TEST_SCHEMA_ELEMENT: { // Bi is schema-element(Bn), Ai is schema-element(An), and either the expanded QName An equals the expanded QName Bn or // the element declaration named An is in the substitution group of the element declaration named Bn. if(a->m_nTestType != b->m_nTestType) return false; if(a->isSubtypeOfNameType(b, context)) return true; // Check substitution groups SchemaElementDecl* aElemDecl = context->getDocumentCache()->getElementDecl(a->m_NameURI, a->m_pName->getName()); while(aElemDecl) { if(XPath2Utils::equals(aElemDecl->getBaseName(), b->m_pName->getName()) && XPath2Utils::equals(context->getDocumentCache()->getSchemaUri(aElemDecl->getURI()), b->m_NameURI)) return true; aElemDecl = aElemDecl->getSubstitutionGroupElem(); } return false; } case TEST_ATTRIBUTE: { // Bi is either attribute() or attribute(*), and Ai is an AttributeTest. // Bi is either attribute(Bn) or attribute(Bn, xs:anyType), and Ai is either attribute(Bn), or attribute(Bn, T) for any type T. // Bi is attribute(Bn, Bt), Ai is attribute(Bn, At), and derives-from(At, Bt) returns true. // Bi is attribute(*, Bt), Ai is either attribute(*, At), or attribute(N, At) for any name N, and derives-from(At, Bt) returns true. if(a->m_nTestType != TEST_ATTRIBUTE) return false; if(!a->isSubtypeOfNameType(b, context)) return false; return true; } case TEST_SCHEMA_ATTRIBUTE: { // Bi is schema-attribute(Bn) and Ai is also schema-attribute(Bn). if(a->m_nTestType != TEST_SCHEMA_ATTRIBUTE) return false; return a->isSubtypeOfNameType(b, context); } case TEST_FUNCTION: { // Bi is function(*), and Ai is a FunctionTest. if(a->m_nTestType != TEST_FUNCTION) return false; if(b->returnType_ == 0) return true; if(a->returnType_ == 0) return false; // Bi is function(Ba_1, Ba_2, ... Ba_N) as Br, Ai is function(Aa_1, Aa_2, ... Aa_M) as Ar, N (arity of Bi) equals M (arity of Ai), // subtype(Ar, Br), and for values of I between 1 and N, subtype(Ba_I, Aa_I). if(a->argTypes_->size() != b->argTypes_->size()) return false; VectorOfSequenceTypes::const_iterator aa_i = a->argTypes_->begin(); VectorOfSequenceTypes::const_iterator ba_i = b->argTypes_->begin(); for(; aa_i != a->argTypes_->end() && ba_i != b->argTypes_->end(); ++aa_i, ++ba_i) { if(!(*ba_i)->isSubtypeOf(*aa_i, context)) return false; } return a->returnType_->isSubtypeOf(b->returnType_, context); } } return true; } Result SequenceType::convertFunctionArg(const Result &input, DynamicContext *context, bool xpath1Compat, const LocationInfo *location, const XMLCh *errorCode) { // From XPath2 Spec, Section 3.1.5 (http://www.w3.org/TR/xpath20/#id-function-calls) // The function conversion rules are used to convert an argument value to its expected type; that is, to the // declared type of the function parameter. The expected type is expressed as a SequenceType. The function // conversion rules are applied to a given value as follows: Result result(input); if(m_pItemType!=NULL) { SequenceType::ItemType::ItemTestType testType = getItemTestType(); // FS says we atomize first if the sequence type is atomic, and I think that's sensible - jpcs if(testType == ItemType::TEST_ATOMIC_TYPE) { result = new AtomizeResult(location, result); } // If XPath 1.0 compatibility mode is true and an argument is not of the expected type, then the following // conversions are applied sequentially to the argument value V: if(xpath1Compat) { if(m_nOccurrence == SequenceType::EXACTLY_ONE || m_nOccurrence == SequenceType::QUESTION_MARK) { // 1. If the expected type calls for a single item or optional single item (examples: xs:string, // xs:string?, xdt:untypedAtomic, xdt:untypedAtomic?, node(), node()?, item(), item()?), then the // value V is effectively replaced by V[1]. Item::Ptr item = result->next(context); if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh* typeURI = m_pItemType->getTypeURI(); const XMLCh* typeName = m_pItemType->getType()->getName(); // 2. If the expected type is xs:string or xs:string?, then the value V is effectively replaced by // fn:string(V). if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_STRING) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { item = FunctionString::string_item(item, context); } // 3. If the expected type is xs:double or xs:double?, then the value V is effectively replaced by // fn:number(V). else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DOUBLE) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { item = FunctionNumber::number(item, context, this); } } result = item; } } // If the expected type is a sequence of an atomic type (possibly with an occurrence indicator *, +, or ?), // the following conversions are applied: else if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh *uri = m_pItemType->getTypeURI(); const XMLCh *name = m_pItemType->getType()->getName(); bool isPrimitive = false; AnyAtomicType::AtomicObjectType typeIndex = context->getItemFactory()->getPrimitiveTypeIndex(uri, name, isPrimitive); if(!XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE) || !XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { result = new PromoteUntypedResult(location, result, isPrimitive, typeIndex, uri, name); } if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { if(XPath2Utils::equals(name, SchemaSymbols::fgDT_DOUBLE) || XPath2Utils::equals(name, SchemaSymbols::fgDT_FLOAT)) { result = new PromoteNumericResult(location, result, typeIndex); } if(XPath2Utils::equals(name, SchemaSymbols::fgDT_STRING)) { result = new PromoteAnyURIResult(location, result); } } } } // If, after the above conversions, the resulting value does not match the expected type according to the // rules for SequenceType Matching, a type error is raised. [err:XPTY0004] Note that the rules for // SequenceType Matching permit a value of a derived type to be substituted for a value of its base type. return matches(result, location, errorCode); } ASTNode *SequenceType::convertFunctionArg(ASTNode *arg, StaticContext *context, bool numericFunction, const LocationInfo *location) { XPath2MemoryManager *mm = context->getMemoryManager(); // From XPath2 Spec, Section 3.1.5 (http://www.w3.org/TR/xpath20/#id-function-calls) // The function conversion rules are used to convert an argument value to its expected type; that is, to the // declared type of the function parameter. The expected type is expressed as a SequenceType. The function // conversion rules are applied to a given value as follows: if(m_pItemType!=NULL) { SequenceType::ItemType::ItemTestType testType = getItemTestType(); // If XPath 1.0 compatibility mode is true and an argument is not of the expected type, then the following // conversions are applied sequentially to the argument value V: if(context->getXPath1CompatibilityMode()) { if(m_nOccurrence == SequenceType::EXACTLY_ONE || m_nOccurrence == SequenceType::QUESTION_MARK) { // 1. If the expected type calls for a single item or optional single item (examples: xs:string, // xs:string?, xdt:untypedAtomic, xdt:untypedAtomic?, node(), node()?, item(), item()?), then the // value V is effectively replaced by V[1]. VectorOfASTNodes headargs = VectorOfASTNodes(XQillaAllocator(mm)); headargs.push_back(arg); arg = new (mm) FunctionHead(headargs, mm); arg->setLocationInfo(location); if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh *typeURI = m_pItemType->getTypeURI(); const XMLCh *typeName = m_pItemType->getType()->getName(); // 2. If the expected type is xs:string or xs:string?, then the value V is effectively replaced by // fn:string(V). if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_STRING) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { VectorOfASTNodes stringargs = VectorOfASTNodes(XQillaAllocator(mm)); stringargs.push_back(arg); arg = new (mm) FunctionString(stringargs, mm); arg->setLocationInfo(location); } // 3. If the expected type is xs:double or xs:double?, then the value V is effectively replaced by // fn:number(V). else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DOUBLE) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { VectorOfASTNodes numberargs = VectorOfASTNodes(XQillaAllocator(mm)); numberargs.push_back(arg); arg = new (mm) FunctionNumber(numberargs, mm); arg->setLocationInfo(location); } } } } // If the expected type is a sequence of an atomic type (possibly with an occurrence indicator *, +, or ?), // the following conversions are applied: if(testType == ItemType::TEST_ATOMIC_TYPE) { arg = new (mm) XQAtomize(arg, mm); arg->setLocationInfo(location); const XMLCh *uri = m_pItemType->getTypeURI(); const XMLCh *name = m_pItemType->getType()->getName(); if(numericFunction && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE)) { arg = new (mm) XQPromoteUntyped(arg, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, mm); arg->setLocationInfo(location); } else { arg = new (mm) XQPromoteUntyped(arg, uri, name, mm); arg->setLocationInfo(location); } arg = new (mm) XQPromoteNumeric(arg, uri, name, mm); arg->setLocationInfo(location); arg = new (mm) XQPromoteAnyURI(arg, uri, name, mm); arg->setLocationInfo(location); } else if(testType == ItemType::TEST_FUNCTION && m_pItemType->getReturnType() != 0) { arg = new (mm) XQFunctionCoercion(arg, this, mm); } } // If, after the above conversions, the resulting value does not match the expected type according to the // rules for SequenceType Matching, a type error is raised. [err:XPTY0004] Note that the rules for // SequenceType Matching permit a value of a derived type to be substituted for a value of its base type. arg = new (mm) XQTreatAs(arg, this, mm); arg->setLocationInfo(location); return arg; } const SequenceType::ItemType *SequenceType::getItemType() const { return m_pItemType; } //////////////////////////////////////// // OccurrenceMatchesResult //////////////////////////////////////// SequenceType::OccurrenceMatchesResult::OccurrenceMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode) : ResultImpl(location), _seqType(seqType), _parent(parent), _errorCode(errorCode), _toDo(true) { } Item::Ptr SequenceType::OccurrenceMatchesResult::next(DynamicContext *context) { Item::Ptr item = _parent->next(context); // "SequenceType matching between a given value and a given SequenceType is performed as follows: // If the SequenceType is empty, the match succeeds only if the value is an empty sequence." if(_seqType->getItemType() == NULL && item.notNull()) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence contains items [")); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } // "If the SequenceType contains an ItemType and an OccurrenceIndicator, the match succeeds only if // the number of items in the value matches the OccurrenceIndicator and each of these items matches the ItemType. " if(_seqType->getItemType() && (_seqType->getOccurrenceIndicator() == PLUS || _seqType->getOccurrenceIndicator() == EXACTLY_ONE) && item.isNull()) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence does not contain items [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } // "If the SequenceType is an ItemType with no OccurrenceIndicator, the match succeeds only if // the value contains precisely one item and that item matches the ItemType " if(_seqType->getItemType() && (_seqType->getOccurrenceIndicator() == EXACTLY_ONE || _seqType->getOccurrenceIndicator() == QUESTION_MARK) && item.notNull()) { // Do the tests on the number of items up front, // since often functions that cast to a single or // optional item only call next once. - jpcs Item::Ptr second = _parent->next(context); if(second.isNull()) { _parent = 0; } else { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence contains more than one item [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } } if(item.isNull()) { *resultPointer_ = 0; } else { *resultPointer_ = _parent; } return item; } //////////////////////////////////////// // TypeMatchesResult //////////////////////////////////////// SequenceType::TypeMatchesResult::TypeMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode) : ResultImpl(location), _seqType(seqType), _parent(parent), _errorCode(errorCode) { } Item::Ptr SequenceType::TypeMatchesResult::next(DynamicContext *context) { Item::Ptr item = _parent->next(context); if(item.isNull()) { _parent = 0; } else if(!_seqType->getItemType()->matches(item, context)) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - found item of type ")); item->typeToBuffer(context, buf); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::MatchesResult::next"), buf.getRawBuffer()); } return item; } XQilla-2.3.4/src/schema/DocumentCacheImpl.cpp0000644001725400016040000006314113273140037015723 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; class GrammarResolverHack : public XMemory { public: bool fCacheGrammar; bool fUseCachedGrammar; bool fGrammarPoolFromExternalApplication; XMLStringPool* fStringPool; RefHashTableOf* fGrammarBucket; RefHashTableOf* fGrammarFromPool; DatatypeValidatorFactory* fDataTypeReg; MemoryManager* fMemoryManager; XMLGrammarPool* fGrammarPool; XSModel* fXSModel; XSModel* fGrammarPoolXSModel; ValueVectorOf* fGrammarsToAddToXSModel; }; #if DEBUG static int checkGrammarResolverHack() { assert(sizeof(GrammarResolver) == sizeof(GrammarResolverHack)); return 1; } static int checkGrammarResolverHack_int = checkGrammarResolverHack(); #endif // untyped const XMLCh DocumentCache::g_szUntyped[]= { chLatin_u, chLatin_n, chLatin_t, chLatin_y, chLatin_p, chLatin_e, chLatin_d, chNull }; DocumentCacheImpl::DocumentCacheImpl(MemoryManager* memMgr, XMLGrammarPool *xmlgr) : grammarResolver_(0), scanner_(0), entityResolver_(0), doPSVI_(true), events_(0), attrList_(0), attrCount_(0), elementInfo_(0), strictValidation_(false), loadedSchemas_(0), schemaLocations_(1023, memMgr), noNamespaceSchemaLocation_(1023, memMgr), memMgr_(memMgr) { init(xmlgr); } DocumentCacheImpl::DocumentCacheImpl(const DocumentCacheImpl *parent, MemoryManager* memMgr) : grammarResolver_(0), scanner_(0), entityResolver_(0), doPSVI_(parent->doPSVI_), events_(0), attrList_(0), attrCount_(0), elementInfo_(0), strictValidation_(false), loadedSchemas_(0), schemaLocations_(1023, memMgr), noNamespaceSchemaLocation_(1023, memMgr), memMgr_(memMgr) { init(parent->grammarResolver_->getGrammarPool()); schemaLocations_.set(parent->schemaLocations_.getRawBuffer()); noNamespaceSchemaLocation_.set(parent->noNamespaceSchemaLocation_.getRawBuffer()); getScanner()->setExternalNoNamespaceSchemaLocation(noNamespaceSchemaLocation_.getRawBuffer()); getScanner()->setExternalSchemaLocation(schemaLocations_.getRawBuffer()); } void DocumentCacheImpl::init(XMLGrammarPool *gramPool) { grammarResolver_ = new (memMgr_) GrammarResolver(gramPool, memMgr_); if(gramPool) { grammarResolver_->cacheGrammarFromParse(true); grammarResolver_->useCachedGrammarInParse(true); // Hack around a Xerces bug, where the GrammarResolver doesn't // initialise it's XSModel correctly from a locked XMLGrammarPool - jpcs // 2008/06/06 I don't think this is needed anymore - jpcs // ((GrammarResolverHack*)grammarResolver_)->fGrammarPoolXSModel = gramPool->getXSModel(); } } XMLScanner *DocumentCacheImpl::getScanner() { if(scanner_ == 0) { scanner_ = new (memMgr_) IGXMLScanner(0, grammarResolver_, memMgr_); scanner_->setURIStringPool(grammarResolver_->getStringPool()); // hold the loaded schemas in the cache, so that can be reused scanner_->cacheGrammarFromParse(true); scanner_->useCachedGrammarInParse(true); // set up the parser scanner_->setDocHandler(this); scanner_->setEntityHandler(this); scanner_->setErrorReporter(this); scanner_->setPSVIHandler(this); scanner_->setDoNamespaces(true); scanner_->setDoSchema(true); scanner_->setValidationScheme(XMLScanner::Val_Auto); scanner_->setValidationConstraintFatal(false); } return scanner_; } DocumentCacheImpl::~DocumentCacheImpl() { delete scanner_; delete grammarResolver_; delete loadedSchemas_; } void DocumentCacheImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { entityResolver_ = handler; } XMLEntityResolver* DocumentCacheImpl::getXMLEntityResolver() const { return entityResolver_; } void DocumentCacheImpl::startInputSource(const InputSource& inputSource) { } void DocumentCacheImpl::endInputSource(const InputSource& inputSource) { } bool DocumentCacheImpl::expandSystemId(const XMLCh* const systemId, XMLBuffer &toFill) { return false; } void DocumentCacheImpl::resetEntities() { } InputSource* DocumentCacheImpl::resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI) { return 0; } InputSource* DocumentCacheImpl::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { if(entityResolver_) return entityResolver_->resolveEntity(resourceIdentifier); return 0; } void DocumentCacheImpl::resetErrors() { } void DocumentCacheImpl::error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum) { // Skip validation errors if validation isn't strict if(!strictValidation_ && errDomain == XMLUni::fgValidityDomain) return; // Throw for errors and fatal errors if(type != XMLErrorReporter::ErrType_Warning) throw SAXParseException(errorText, publicId, systemId, lineNum, colNum, memMgr_); } InputSource *DocumentCacheImpl::resolveURI(const XMLCh *uri, const XMLCh *baseUri) { InputSource *srcToUse = 0; XMLURL urlTmp; if(urlTmp.setURL(baseUri, uri, urlTmp) && !urlTmp.isRelative()) { srcToUse = new URLInputSource(urlTmp); } else { // It's not a URL, so let's assume it's a local file name. AutoDeallocate tmpBuf(0, XMLPlatformUtils::fgMemoryManager); if(baseUri && baseUri[0]) { tmpBuf.set(XMLPlatformUtils::weavePaths(baseUri, uri)); uri = tmpBuf; } srcToUse = new LocalFileInputSource(uri); } return srcToUse; } Node::Ptr DocumentCacheImpl::loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) { InputSource* srcToUse = 0; if(entityResolver_){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, uri, 0, XMLUni::fgZeroLenString, context->getBaseURI()); srcToUse = entityResolver_->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { srcToUse = resolveURI(uri, context->getBaseURI()); } Janitor janIS(srcToUse); return parseDocument(*srcToUse, context, projection); } Node::Ptr DocumentCacheImpl::parseDocument(InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection) { AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(projection, builder.get()); EventHandler *handler = projection ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseDocument(srcToUse, handler, context); handler->endEvent(); return (Node*)builder->getSequence().first().get(); } void DocumentCacheImpl::parseDocument(InputSource &srcToUse, EventHandler *handler, DynamicContext *context) { events_ = handler; attrList_ = 0; attrCount_ = 0; elementInfo_ = 0; strictValidation_ = false; try { getScanner()->setDoSchema(doPSVI_); getScanner()->scanDocument(srcToUse); } catch(const SAXException& toCatch) { //TODO: Find a way to decipher whether the exception is actually because of a parsing problem or because the document can't be found XQThrow2(XMLParseException, X("DocumentCacheImpl::parseDocument"), toCatch.getMessage()); } catch(const XMLException& toCatch) { XQThrow2(XMLParseException,X("DocumentCacheImpl::parseDocument"), toCatch.getMessage()); } } static inline void setLocation(LocationInfo &info, const Locator *locator) { info.setLocationInfo(locator->getSystemId(), (unsigned int)(locator->getLineNumber()), (unsigned int)(locator->getColumnNumber())); } #define LOCATION setLocation(location_, getScanner()->getLocator()) void DocumentCacheImpl::startDocument() { LOCATION; events_->setLocationInfo(&location_); // Encode space chars in the document URI as %20 const XMLCh *uri = getScanner()->getLocator()->getSystemId(); XMLBuffer encode(XMLString::stringLen(uri) + 1); if(uri != 0) { for(const XMLCh *uptr = uri; *uptr; ++uptr) { if(*uptr != ' ') encode.append(*uptr); else { encode.append('%'); encode.append('2'); encode.append('0'); } } uri = encode.getRawBuffer(); } events_->startDocumentEvent(uri, getScanner()->getReaderMgr()->getCurrentEncodingStr()); } void DocumentCacheImpl::endDocument() { LOCATION; events_->endDocumentEvent(); } void DocumentCacheImpl::resetDocument() { } void DocumentCacheImpl::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const XercesSizeUint attrCount, const bool isEmpty, const bool isRoot) { LOCATION; events_->startElementEvent(emptyToNull(elemPrefix), emptyToNull(getScanner()->getURIText(urlId)), elemDecl.getBaseName()); attrList_ = &attrList; attrCount_ = (unsigned int) attrCount; if(!getScanner()->getDoSchema() || getScanner()->getCurrentGrammarType() != Grammar::SchemaGrammarType) { handleAttributesPSVI(0, 0, 0); } if(isEmpty) { endElement(elemDecl, urlId, isRoot, elemPrefix); } } void DocumentCacheImpl::endElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix) { const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(elementInfo_ != 0 && elementInfo_->getValidity() == PSVIItem::VALIDITY_VALID) { if(elementInfo_->getMemberTypeDefinition()) { typeURI = elementInfo_->getMemberTypeDefinition()->getNamespace(); typeName = elementInfo_->getMemberTypeDefinition()->getName(); } else if(elementInfo_->getTypeDefinition()) { typeURI = elementInfo_->getTypeDefinition()->getNamespace(); typeName = elementInfo_->getTypeDefinition()->getName(); } else { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; } } LOCATION; events_->endElementEvent(emptyToNull(elemPrefix), emptyToNull(getScanner()->getURIText(urlId)), elemDecl.getBaseName(), emptyToNull(typeURI), typeName); elementInfo_ = 0; } void DocumentCacheImpl::docCharacters(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { LOCATION; events_->textEvent(chars, (unsigned int)length); } void DocumentCacheImpl::docComment(const XMLCh* const comment) { LOCATION; events_->commentEvent(comment); } void DocumentCacheImpl::docPI(const XMLCh* const target, const XMLCh* const data) { LOCATION; events_->piEvent(target, data); } void DocumentCacheImpl::ignorableWhitespace(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { // No-op } void DocumentCacheImpl::startEntityReference(const XMLEntityDecl& entDecl) { // No-op } void DocumentCacheImpl::endEntityReference(const XMLEntityDecl& entDecl) { // No-op } void DocumentCacheImpl::XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) { // No-op } void DocumentCacheImpl::handleElementPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIElement *elementInfo) { // We're going to deal with this in endElement(), where we know the prefix elementInfo_ = elementInfo; } void DocumentCacheImpl::handlePartialElementPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIElement *elementInfo) { } void DocumentCacheImpl::handleAttributesPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIAttributeList *psviAttributes) { // We can't get any better location for an attribute than the element where is occured for(unsigned int i = 0; i < attrCount_; ++i) { const XMLAttr *attr = attrList_->elementAt(i); if(attr->getURIId() == getScanner()->getXMLNSNamespaceId()) { events_->namespaceEvent(attr->getName(), attr->getValue()); } else if(XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) { events_->namespaceEvent(0, attr->getValue()); } else { const XMLCh *auri = getScanner()->getURIText(attr->getURIId()); const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; if(psviAttributes != 0) { PSVIAttribute *attrInfo = psviAttributes->getAttributePSVIByName(attr->getName(), auri); if(attrInfo && attrInfo->getValidity() == PSVIItem::VALIDITY_VALID) { if(attrInfo->getMemberTypeDefinition()) { typeURI = attrInfo->getMemberTypeDefinition()->getNamespace(); typeName = attrInfo->getMemberTypeDefinition()->getName(); } else if(attrInfo->getTypeDefinition()) { typeURI = attrInfo->getTypeDefinition()->getNamespace(); typeName = attrInfo->getTypeDefinition()->getName(); } else { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgDT_ANYSIMPLETYPE; } } } events_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(auri), attr->getName(), attr->getValue(), emptyToNull(typeURI), typeName); } } attrList_ = 0; attrCount_ = 0; } static inline const XMLCh *nullToZeroLength(const XMLCh *in) { return in ? in : XMLUni::fgZeroLenString; } /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ bool DocumentCacheImpl::isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const { // dumb check if(XPath2Utils::equals(typeName,typeNameToCheck) && XPath2Utils::equals(uri,uriToCheck)) return true; // xs:anyType matches anything if(XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && XPath2Utils::equals(typeNameToCheck, SchemaSymbols::fgATTVAL_ANYTYPE)) return true; DatatypeValidator* dtvDerived = grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName); if(dtvDerived == NULL) { // now lets take a look at complex stuff ComplexTypeInfo *cti = getComplexTypeInfo(uri, typeName); // in the case of non-schema grammar if(cti) { // if we are here, the type is a complex type while(cti != 0) { if(XPath2Utils::equals(uriToCheck, cti->getTypeUri()) && XPath2Utils::equals(typeNameToCheck, cti->getTypeLocalName())) return true; ComplexTypeInfo *ctiOld = cti; cti = cti->getBaseComplexTypeInfo(); // might be derived from a simple type if(cti == 0) { DatatypeValidator* dtv = ctiOld->getDatatypeValidator(); while(dtv != 0) { if(XPath2Utils::equals(uriToCheck, dtv->getTypeUri()) && XPath2Utils::equals(typeNameToCheck, dtv->getTypeLocalName())) return true; dtv = dtv->getBaseValidator(); } } } } return false; } // if we are here, the type is a simple type if(XPath2Utils::equals(typeNameToCheck, SchemaSymbols::fgDT_ANYSIMPLETYPE) && XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return true; if(XPath2Utils::equals(typeNameToCheck, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) ) return dtvDerived->isAtomic(); DatatypeValidator* dtvBase = grammarResolver_->getDatatypeValidator(nullToZeroLength(uriToCheck), typeNameToCheck); if(dtvBase==NULL) return false; while(dtvDerived != 0) { if(XPath2Utils::equals(dtvBase->getTypeUri(), dtvDerived->getTypeUri()) && XPath2Utils::equals(dtvBase->getTypeLocalName(), dtvDerived->getTypeLocalName())) return true; dtvDerived = dtvDerived->getBaseValidator(); } return false; } bool DocumentCacheImpl::isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const { if(getComplexTypeInfo(uri, typeName) != NULL) return true; if(grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName) != NULL) return true; // these types are not present in the XMLSchema grammar, but they are defined if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return (XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE)); } return false; } void DocumentCacheImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) { if(loadedSchemas_ == 0) { loadedSchemas_ = new (memMgr_) XMLStringPool(3, memMgr_); } XMLBuffer buf(1023,context->getMemoryManager()); if(loadedSchemas_->exists(uri)) { buf.set(X("More than one 'import schema' specifies the same target namespace \"")); buf.append(uri); buf.append(X("\" [err:XQST0058]")); XQThrow3(StaticErrorException,X("DocumentCacheImpl::addSchemaLocation"), buf.getRawBuffer(), location); } loadedSchemas_->addOrFind(uri); bool bFoundSchema=false; if(locations==NULL) { // if no locations are given, try to see if the entity resolver can still find it try { loadSchema(uri, 0, context, location); bFoundSchema = true; } catch(SAXParseException& e) { buf.set(X("An error occurred while trying to load the schema for namespace \"")); buf.append(uri); buf.append(X("\": ")); buf.append(e.getMessage()); buf.append(X(" [err:XQST0059]")); } } else { for(VectorOfStrings::iterator it=locations->begin(); it!=locations->end(); it++) { try { loadSchema(uri, *it, context, location); bFoundSchema = true; break; } catch(SAXParseException& e) { buf.set(X("An error occurred while trying to load the schema for namespace \"")); buf.append(uri); buf.append(X("\" from \"")); buf.append(*it); buf.append(X("\": ")); buf.append(e.getMessage()); buf.append(X(" [err:XQST0059]")); } } } if(!bFoundSchema) { if(buf.isEmpty()) { buf.set(X("Schema for namespace \"")); buf.append(uri); buf.append(X("\" not found [err:XQST0059]")); } XQThrow3(StaticErrorException,X("DocumentCacheImpl::addSchemaLocation"), buf.getRawBuffer(), location); } } void DocumentCacheImpl::loadSchema(const XMLCh* const uri, const XMLCh* location, StaticContext *context, const LocationInfo *info) { // if we are requested to load the XMLSchema schema, just return if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return; InputSource* srcToUse = 0; if(entityResolver_){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::SchemaGrammar, location, uri, XMLUni::fgZeroLenString, context->getBaseURI()); srcToUse = entityResolver_->resolveEntity(&resourceIdentifier); } Janitor janIS(srcToUse); Grammar* grammar=NULL; if(srcToUse) { if(location == 0) location = srcToUse->getSystemId(); grammar = getScanner()->loadGrammar(*srcToUse, Grammar::SchemaGrammarType, true); } else if(location) { // Resolve the location against the base uri const XMLCh *systemId = location; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), location, urlTmp)) { systemId = urlTmp.getURLText(); } grammar = getScanner()->loadGrammar(systemId, Grammar::SchemaGrammarType, true); } if(grammar==NULL) XQThrow3(StaticErrorException,X("DocumentCacheImpl::loadSchema"), X("Schema not found [err:XQST0059]"), info); // Update the scanner's external schema locations, so it validates // XML documents that match if(uri == 0 || *uri == 0) { noNamespaceSchemaLocation_.set(location); getScanner()->setExternalNoNamespaceSchemaLocation(noNamespaceSchemaLocation_.getRawBuffer()); } else { schemaLocations_.append(' '); schemaLocations_.append(uri); schemaLocations_.append(' '); schemaLocations_.append(location); getScanner()->setExternalSchemaLocation(schemaLocations_.getRawBuffer()); } } unsigned int DocumentCacheImpl::getSchemaUriId(const XMLCh* uri) const { return grammarResolver_->getStringPool()->getId(uri); } const XMLCh* DocumentCacheImpl::getSchemaUri(unsigned int id) const { return grammarResolver_->getStringPool()->getValueForId(id); } GrammarResolver *DocumentCacheImpl::getGrammarResolver() const { return grammarResolver_; } DatatypeValidator* DocumentCacheImpl::getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const { return grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName); } SchemaElementDecl* DocumentCacheImpl::getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const { XMLSchemaDescription* gramDesc = grammarResolver_->getGrammarPool()->createSchemaDescription(elementUri); Janitor janName(gramDesc); SchemaGrammar* schGrammar = (SchemaGrammar*)grammarResolver_->getGrammar(gramDesc); if(schGrammar == NULL) return NULL; // find the definition for this node, as a global definition return (SchemaElementDecl*)schGrammar->getElemDecl(getSchemaUriId(elementUri), elementName, NULL, (unsigned int)Grammar::TOP_LEVEL_SCOPE); } SchemaAttDef* DocumentCacheImpl::getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const { XMLSchemaDescription* gramDesc = grammarResolver_->getGrammarPool()->createSchemaDescription(attributeUri); Janitor janName(gramDesc); SchemaGrammar* schGrammar = (SchemaGrammar*)grammarResolver_->getGrammar(gramDesc); if(schGrammar==NULL) return NULL; // find the definition for this node, as a global definition return (SchemaAttDef*)schGrammar->getAttributeDeclRegistry()->get(attributeName); } ComplexTypeInfo* DocumentCacheImpl::getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const { Grammar* grammar = grammarResolver_->getGrammar(uri); if(grammar==NULL) return NULL; if(grammar->getGrammarType() != Grammar::SchemaGrammarType) return NULL; SchemaGrammar* schGrammar = (SchemaGrammar*)grammar; RefHashTableOf *ctr = schGrammar->getComplexTypeRegistry(); if(ctr==NULL) return NULL; XMLBuffer typeKey(1023, memMgr_); typeKey.set(uri); typeKey.append(chComma); typeKey.append(typeName); return ctr->get(typeKey.getRawBuffer()); } DocumentCache *DocumentCacheImpl::createDerivedCache(MemoryManager *memMgr) const { // lock the grammar pool, so we can share it across threads grammarResolver_->getGrammarPool()->lockPool(); // Construct a new DocumentCacheImpl, based on this one return new (memMgr) DocumentCacheImpl(this, memMgr); } XQilla-2.3.4/src/fulltext/0000755001725400016040000000000013273141207012355 500000000000000XQilla-2.3.4/src/fulltext/FTOrder.cpp0000644001725400016040000000663013273140037014313 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include FTSelection *FTOrder::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTOrder::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTOrder::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTOrder(newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTOrder::execute(FTContext *ftcontext) const { return new FTOrderMatches(this, arg_->execute(ftcontext)); } FTOrderMatches::~FTOrderMatches() { delete arg_; } bool FTOrderMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; StringMatches::const_iterator begin = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i, j; for(i = begin; i != end; ++i) { for(j = i, ++j; j != end; ++j) { if((i->queryPos > j->queryPos && i->tokenInfo.position_ < j->tokenInfo.position_) || (i->queryPos < j->queryPos && i->tokenInfo.position_ > j->tokenInfo.position_)) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } if (found) break; } } return true; } const StringMatches &FTOrderMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTOrderMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator e_end = arg_->getStringExcludes().end(); StringMatches::const_iterator e = arg_->getStringExcludes().begin(); StringMatches::const_iterator i_begin = arg_->getStringIncludes().begin(); StringMatches::const_iterator i_end = arg_->getStringIncludes().end(); StringMatches::const_iterator i; for(; e != e_end; ++e) { for(i = i_begin; i != i_end; ++i) { if((i->queryPos <= e->queryPos && i->tokenInfo.position_ <= e->tokenInfo.position_) || (i->queryPos >= e->queryPos && i->tokenInfo.position_ >= e->tokenInfo.position_)) { excludes_.push_back(*e); } } } } return excludes_; } XQilla-2.3.4/src/fulltext/FTOr.cpp0000644001725400016040000000643213273140037013620 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTOr::FTOr(XPath2MemoryManager *memMgr) : FTSelection(FTSelection::OR, memMgr), args_(memMgr) { } FTOr::FTOr(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::OR, memMgr), args_(memMgr) { args_.push_back(left); args_.push_back(right); } FTSelection *FTOr::staticResolution(StaticContext *context) { for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } FTSelection *FTOr::staticTypingImpl(StaticContext *context) { src_.clear(); for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { src_.add((*i)->getStaticAnalysis()); } return this; } FTSelection *FTOr::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { FTSelection *arg = (*i)->optimize(ftcontext); if(arg != 0) ftor->addArg(arg); } if(ftor->args_.empty()) { return 0; } if(ftor->args_.size() == 1) { return ftor->args_.back(); } return ftor; } AllMatches *FTOr::execute(FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { disjunction->addMatches((*i)->execute(ftcontext)); } return result; } FTDisjunctionMatches::FTDisjunctionMatches(const LocationInfo *info) : AllMatches(info), toDo_(true) { } FTDisjunctionMatches::~FTDisjunctionMatches() { for(it_ = args_.begin(); it_ != args_.end(); it_++) { delete *(it_); } } bool FTDisjunctionMatches::next(DynamicContext *context) { // TBD AllMatches normalization if(toDo_) { toDo_ = false; it_ = args_.begin(); } bool found = false; while(it_ != args_.end()) { if(!(*it_)->next(context)) { delete *(it_); *it_ = 0; ++it_; } else { found = true; break; } } return found; } const StringMatches &FTDisjunctionMatches::getStringIncludes() { assert(it_ != args_.end()); return (*it_)->getStringIncludes(); } const StringMatches &FTDisjunctionMatches::getStringExcludes() { assert(it_ != args_.end()); return (*it_)->getStringExcludes(); } XQilla-2.3.4/src/fulltext/FTContent.cpp0000644001725400016040000001124713273140037014652 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include FTSelection *FTContent::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTContent::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTContent::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(type_ == ENTIRE_CONTENT) { newarg = new (mm) FTDistanceLiteral(newarg, FTRange::EXACTLY, 0, 0, FTOption::WORDS, mm); newarg->setLocationInfo(this); newarg = new (mm) FTContent(newarg, AT_START, mm); newarg->setLocationInfo(this); newarg = new (mm) FTContent(newarg, AT_END, mm); newarg->setLocationInfo(this); } else { newarg = new (mm) FTContent(newarg, type_, mm); newarg->setLocationInfo(this); } return newarg; } AllMatches *FTContent::execute(FTContext *ftcontext) const { switch(type_) { case AT_START: return new FTContentAtStartMatches(this, arg_->execute(ftcontext)); case AT_END: return new FTContentAtEndMatches(this, arg_->execute(ftcontext)); default: // ENTIRE_CONTENT is handled by optimize() assert(0); break; } return 0; } FTContentAtStartMatches::~FTContentAtStartMatches() { delete arg_; } bool FTContentAtStartMatches::next(DynamicContext *context) { if(!arg_) return false; StringMatches::const_iterator smallest; bool found = false; while(arg_->next(context)) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end) { smallest = i; found = true; for(++i; i != end; ++i) { if(i->tokenInfo.position_ < smallest->tokenInfo.position_) { smallest = i; } } break; } } if (!found) { delete arg_; arg_ = 0; return false; } includes_.clear(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); for(; i != end; ++i) { if(i == smallest) { StringMatch sm(*i); sm.startToken = true; includes_.push_back(sm); } else { includes_.push_back(*i); } } return true; } const StringMatches &FTContentAtStartMatches::getStringIncludes() { assert(arg_); return includes_; } const StringMatches &FTContentAtStartMatches::getStringExcludes() { assert(arg_); return arg_->getStringExcludes(); } FTContentAtEndMatches::~FTContentAtEndMatches() { delete arg_; } bool FTContentAtEndMatches::next(DynamicContext *context) { if(!arg_) return false; StringMatches::const_iterator largest; bool found = false; while(arg_->next(context)) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end) { largest = i; found = true; for(++i; i != end; ++i) { if(i->tokenInfo.position_ > largest->tokenInfo.position_) { largest = i; } } break; } } if (!found) { delete arg_; arg_ = 0; return false; } includes_.clear(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); for(; i != end; ++i) { if(i == largest) { StringMatch sm(*i); sm.endToken = true; includes_.push_back(sm); } else { includes_.push_back(*i); } } return true; } const StringMatches &FTContentAtEndMatches::getStringIncludes() { assert(arg_); return includes_; } const StringMatches &FTContentAtEndMatches::getStringExcludes() { assert(arg_); return arg_->getStringExcludes(); } XQilla-2.3.4/src/fulltext/DefaultTokenStore.cpp0000644001725400016040000000542413273140037016410 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include extern "C" { #include } #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DefaultTokenStore::DefaultTokenStore(const Node::Ptr &node, const Tokenizer *tokenizer, DynamicContext *context) : tokens_(73, /*adoptElems*/true, context->getMemoryManager()), numTokens_(0), mm_(context->getMemoryManager()), context_(context) { TokenStream::Ptr stream = tokenizer->tokenize(node, context); TokenInfo token; int options = 0; //consider stem, stop words, thesaurus, case options if(context_->getFTCase() == StaticContext::CASE_INSENSITIVE) { options = UTF8PROC_CASEFOLD; } while((token = stream->next()).word_ != 0) { ++numTokens_; AutoDeallocate buf(UnicodeTransformer::transform(token.word_, options, mm_), mm_); TokenEntry *entry = tokens_.get(buf.get()); if(entry == 0) { entry = new TokenEntry(); tokens_.put((void*)mm_->getPooledString(buf.get()), entry); } entry->addToken(token); } } DefaultTokenStore::DefaultTokenStore(XPath2MemoryManager *mm) : tokens_(3, /*adoptElems*/true, mm), numTokens_(0), mm_(mm) { } TokenStream::Ptr DefaultTokenStore::findTokens(const XMLCh *searchString) const { int options = 0; if(context_->getFTCase() == StaticContext::CASE_INSENSITIVE){ options = UTF8PROC_CASEFOLD; } else if(context_->getFTCase() == StaticContext::UPPERCASE){ options = UTF8PROC_UPPERCASE; } else if(context_->getFTCase() == StaticContext::LOWERCASE){ options = UTF8PROC_LOWERCASE; } AutoDeallocate buf(UnicodeTransformer::transform(searchString, options, mm_), mm_); const TokenEntry *entry = tokens_.get(buf.get()); if(entry == 0) return 0; return entry->getTokenStream(); } XQilla-2.3.4/src/fulltext/FTScope.cpp0000644001725400016040000001123213273140037014303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTSelection *FTScope::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTScope::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTScope::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTScope(newarg, type_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTScope::execute(FTContext *ftcontext) const { switch(type_) { case SAME: return new FTScopeSameMatches(this, unit_, arg_->execute(ftcontext)); case DIFFERENT: return new FTScopeDifferentMatches(this, unit_, arg_->execute(ftcontext)); default: assert(0); break; } return 0; } FTScopeSameMatches::~FTScopeSameMatches() { delete arg_; } bool FTScopeSameMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; unitValue_ = 0; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end && (i+1) != end) { unitValue_ = FTOption::tokenUnit(i->tokenInfo, unit_); for(++i; i != end; ++i) { found = false; if(FTOption::tokenUnit(i->tokenInfo, unit_) != unitValue_) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } else { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } } } return true; } const StringMatches &FTScopeSameMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTScopeSameMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator end = arg_->getStringExcludes().end(); for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != end; ++i) { if(FTOption::tokenUnit(i->tokenInfo, unit_) == unitValue_) { excludes_.push_back(*i); } } } return excludes_; } FTScopeDifferentMatches::~FTScopeDifferentMatches() { delete arg_; } bool FTScopeDifferentMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; unitValuesSeen_.clear(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); for(; i != end; ++i) { if(!unitValuesSeen_.insert(FTOption::tokenUnit(i->tokenInfo, unit_)).second) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } return true; } const StringMatches &FTScopeDifferentMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTScopeDifferentMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator end = arg_->getStringExcludes().end(); StringMatches::const_iterator i = arg_->getStringExcludes().begin(); for(; i != end; ++i) { if(unitValuesSeen_.find(FTOption::tokenUnit(i->tokenInfo, unit_)) != unitValuesSeen_.end()) { excludes_.push_back(*i); } } } return excludes_; } XQilla-2.3.4/src/fulltext/DefaultTokenizer.cpp0000644001725400016040000000725513273140037016271 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include extern "C" { #include } #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif TokenStream::Ptr DefaultTokenizer::tokenize(const Node::Ptr &node, DynamicContext *context) const { return new DefaultTokenStream(node->dmStringValue(context), context->getMemoryManager()); } TokenStream::Ptr DefaultTokenizer::tokenize(const XMLCh *str, XPath2MemoryManager *mm) const { return new DefaultTokenStream(str, mm); } DefaultTokenizer::DefaultTokenStream::DefaultTokenStream(const XMLCh *str, XPath2MemoryManager *mm) : tokenStart_(0), position_(0), sentence_(0), paragraph_(0), seenEndOfSentence_(false), mm_(mm) { //string_ will point to memory allocated in wordsAndSentences string_ = UnicodeTransformer::wordsAndSentences(str, mm_); current_ = string_; //skip over the first and current_++; current_++; } DefaultTokenizer::DefaultTokenStream::~DefaultTokenStream() { mm_->deallocate(string_); } TokenInfo DefaultTokenizer::DefaultTokenStream::next() { TokenInfo result; memset(&result, 0, sizeof(TokenInfo)); // in case that utf8proc return 0 if(current_ == 0) return result; while(result.word_ == 0) { switch(*current_){ case UTF8PROC_SB_MARK: { ++sentence_; break; } case UTF8PROC_WB_MARK:{ if(tokenStart_ != 0 && !UnicodeTransformer::isSpacesOrPunctuations(tokenStart_, current_-1)) { //report a token //token is form tokenStart_ to current_-1 result.word_ = mm_->getPooledString(tokenStart_, current_-tokenStart_); result.paragraph_ = paragraph_; result.position_ = position_; result.sentence_ = sentence_; ++position_; tokenStart_ = 0; } break; } case 0:{//end of the string return result; } default: { // if current is a single space seperator and after is // like: " ", ignore it if(tokenStart_ == 0 && *(current_+1) == UTF8PROC_WB_MARK && UnicodeTransformer::isSpaceSeparator(current_)){ break; } // if current is a single punctuation and after is , // like: ")", ignore it int codeSize; if(tokenStart_ == 0 && (*(current_+1) == UTF8PROC_WB_MARK || *(current_+2) == UTF8PROC_WB_MARK) && UnicodeTransformer::isPunctuation(current_, codeSize)){ if (*(current_ + codeSize) == UTF8PROC_WB_MARK) current_ = current_ + codeSize-1; break; } if(tokenStart_ == 0) { tokenStart_ = current_; } } } ++current_; } return result; } XQilla-2.3.4/src/fulltext/FTMildnot.cpp0000644001725400016040000000715613273140037014652 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include FTMildnot::FTMildnot(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::MILD_NOT, memMgr), left_(left), right_(right) { } FTSelection *FTMildnot::staticResolution(StaticContext *context) { left_ = left_->staticResolution(context); right_ = right_->staticResolution(context); return this; } FTSelection *FTMildnot::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(left_->getStaticAnalysis()); src_.add(right_->getStaticAnalysis()); return this; } FTSelection *FTMildnot::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newleft = left_->optimize(ftcontext); if(newleft == 0) return 0; FTSelection *newright = right_->optimize(ftcontext); if(newright == 0) return newleft; FTSelection *result = new (mm) FTMildnot(newleft, newright, mm); result->setLocationInfo(this); return result; } AllMatches *FTMildnot::execute(FTContext *ftcontext) const { AllMatches *leftMatches = left_->execute(ftcontext); AllMatches *rightMatches = right_->execute(ftcontext); return new FTMildnotMatches(this, leftMatches, rightMatches); } FTMildnotMatches::~FTMildnotMatches() { delete left_; delete right_; } bool FTMildnotMatches::next(DynamicContext *context) { if(!left_) return false; if(right_) { while(right_->next(context)) { if(!right_->getStringExcludes().empty()) XQThrow(XPath2ErrorException, X("FTMildnotMatches::next"), X("Invalid expression on the right-hand side of a not-in [err:FTDY0017]")); StringMatches::const_iterator end = right_->getStringIncludes().end(); for(StringMatches::const_iterator i = right_->getStringIncludes().begin(); i != end; ++i) { badTokens_.insert(i->tokenInfo.position_); } } delete right_; right_ = 0; } while(left_->next(context)) { if(!left_->getStringExcludes().empty()) XQThrow(XPath2ErrorException, X("FTMildnotMatches::next"), X("Invalid expression on the left-hand side of a not-in [err:FTDY0017]")); bool found = false; StringMatches::const_iterator end = left_->getStringIncludes().end(); for(StringMatches::const_iterator i = left_->getStringIncludes().begin(); i != end; ++i) { if(badTokens_.find(i->tokenInfo.position_) != badTokens_.end()) { found = true; break; } } if (!found) return true; } delete left_; left_ = 0; return false; } const StringMatches &FTMildnotMatches::getStringIncludes() { assert(left_); return left_->getStringIncludes(); } const StringMatches &FTMildnotMatches::getStringExcludes() { assert(left_); return left_->getStringExcludes(); }XQilla-2.3.4/src/fulltext/FTUnaryNot.cpp0000644001725400016040000000541013273140037015012 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include FTUnaryNot::FTUnaryNot(FTSelection *arg, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::UNARY_NOT, memMgr), arg_(arg) { } FTSelection *FTUnaryNot::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTUnaryNot::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTUnaryNot::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; newarg = new (mm) FTUnaryNot(newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTUnaryNot::execute(FTContext *ftcontext) const { return new FTUnaryNotMatches(this, arg_->execute(ftcontext)); } FTUnaryNotMatches::~FTUnaryNotMatches() { delete arg_; } bool FTUnaryNotMatches::next(DynamicContext *context) { // TBD incorrect implementation - jpcs // TBD need to check for StringInclude / StringExclude contradictions - jpcs if(toDo_) { toDo_ = false; if(arg_) { while(arg_->next(context)) { addStringExcludes(arg_->getStringIncludes()); addStringIncludes(arg_->getStringExcludes()); } } delete arg_; arg_ = 0; return true; } includes_.clear(); excludes_.clear(); return false; } const StringMatches &FTUnaryNotMatches::getStringIncludes() { return includes_; } const StringMatches &FTUnaryNotMatches::getStringExcludes() { return excludes_; } void FTUnaryNotMatches::addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void FTUnaryNotMatches::addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } }XQilla-2.3.4/src/fulltext/FTDistance.cpp0000644001725400016040000002055713273140037014776 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTSelection *FTDistance::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); arg_ = arg_->staticResolution(context); range_.arg1 = new (mm) XQAtomize(range_.arg1, mm); range_.arg1->setLocationInfo(this); range_.arg1 = new (mm) XQTreatAs(range_.arg1, seqType, mm); range_.arg1->setLocationInfo(this); range_.arg1 = range_.arg1->staticResolution(context); if(range_.arg2 != NULL) { range_.arg2 = new (mm) XQAtomize(range_.arg2, mm); range_.arg2->setLocationInfo(this); range_.arg2 = new (mm) XQTreatAs(range_.arg2, seqType, mm); range_.arg2->setLocationInfo(this); range_.arg2 = range_.arg2->staticResolution(context); } return this; } FTSelection *FTDistance::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); src_.add(range_.arg1->getStaticAnalysis()); if(range_.arg2 != NULL) { src_.add(range_.arg2->getStaticAnalysis()); } return this; } FTSelection *FTDistance::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); if(range_.arg1->isConstant()) { switch(range_.type) { case FTRange::EXACTLY: case FTRange::AT_LEAST: case FTRange::AT_MOST: { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTDistanceLiteral(arg_, range_.type, num->asInt(), 0, unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } case FTRange::FROM_TO: { if(range_.arg2->isConstant()) { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); Numeric::Ptr num2 = (Numeric*)range_.arg2->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTDistanceLiteral(arg_, FTRange::FROM_TO, num->asInt(), num2->asInt(), unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } } } } FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTDistance(range_, unit_, newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTDistance::execute(FTContext *ftcontext) const { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); switch(range_.type) { case FTRange::EXACTLY: { return new FTDistanceExactlyMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::AT_LEAST: { return new FTDistanceAtLeastMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::AT_MOST: { return new FTDistanceAtMostMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::FROM_TO: { Numeric::Ptr num2 = (Numeric*)range_.arg2->createResult(ftcontext->context)->next(ftcontext->context).get(); return new FTDistanceFromToMatches(this, num->asInt(), num2->asInt(), unit_, arg_->execute(ftcontext)); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// FTSelection *FTDistanceLiteral::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTDistanceLiteral::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTDistanceLiteral::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTDistanceLiteral(newarg, type_, distance_, distance2_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTDistanceLiteral::execute(FTContext *ftcontext) const { switch(type_) { case FTRange::EXACTLY: { return new FTDistanceExactlyMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::AT_LEAST: { return new FTDistanceAtLeastMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::AT_MOST: { return new FTDistanceAtMostMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::FROM_TO: { return new FTDistanceFromToMatches(this, distance_, distance2_, unit_, arg_->execute(ftcontext)); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// static bool lessThanCompareFn(const StringMatch &first, const StringMatch &second) { return first.tokenInfo.position_ < second.tokenInfo.position_; } FTDistanceMatches::~FTDistanceMatches() { delete arg_; } bool FTDistanceMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; if(arg_->getStringIncludes().size() > 1) { StringMatches sMatches = arg_->getStringIncludes(); std::sort(sMatches.begin(), sMatches.end(), lessThanCompareFn); StringMatches::iterator end = sMatches.end(); StringMatches::iterator a = sMatches.begin(); StringMatches::iterator b = a; ++b; for(; b != end; ++a, ++b) { unsigned int actual = FTOption::tokenDistance(a->tokenInfo, b->tokenInfo, unit_); if(!distanceMatches(actual)) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } } return true; } const StringMatches &FTDistanceMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTDistanceMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != arg_->getStringExcludes().end(); ++i) { for(StringMatches::const_iterator j = arg_->getStringIncludes().begin(); j != arg_->getStringIncludes().end(); ++j) { unsigned int actual = FTOption::tokenDistance(i->tokenInfo, j->tokenInfo, unit_); if(distanceMatches(actual)) { excludes_.push_back(*i); break; } } } } return excludes_; } bool FTDistanceExactlyMatches::distanceMatches(unsigned int actual) const { return actual == distance_; } bool FTDistanceAtLeastMatches::distanceMatches(unsigned int actual) const { return actual >= distance_; } bool FTDistanceAtMostMatches::distanceMatches(unsigned int actual) const { return actual <= distance_; } bool FTDistanceFromToMatches::distanceMatches(unsigned int actual) const { return distance_ <= actual && actual <= distance2_; } XQilla-2.3.4/src/fulltext/FTWords.cpp0000644001725400016040000002321313273140037014332 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTWords::FTWords(ASTNode *expr, FTAnyallOption option, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::WORDS, memMgr), expr_(expr), option_(option) { } FTSelection *FTWords::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, SequenceType::STAR, mm); seqType->setLocationInfo(this); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } FTSelection *FTWords::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(expr_->getStaticAnalysis()); return this; } FTSelection *FTWords::optimize(FTContext *ftcontext) const { if(expr_->isConstant()) { Result strings = expr_->createResult(ftcontext->context); switch(option_) { case ANY_WORD: { return optimizeAnyWord(strings, ftcontext)-> optimize(ftcontext); } case ALL_WORDS: { return optimizeAllWords(strings, ftcontext)-> optimize(ftcontext); } case PHRASE: { return optimizePhrase(strings, ftcontext)-> optimize(ftcontext); } case ANY: { return optimizeAny(strings, ftcontext)-> optimize(ftcontext); } case ALL: { return optimizeAll(strings, ftcontext)-> optimize(ftcontext); } } } return const_cast(this); } FTSelection *FTWords::optimizeAnyWord(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { FTSelection *word = new (mm) FTWord(token.word_, mm); word->setLocationInfo(this); ftor->addArg(word); } } return ftor; } AllMatches *FTWords::executeAnyWord(Result strings, FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { disjunction->addMatches(new FTStringSearchMatches(this, token.word_, ftcontext)); } } return result; } FTSelection *FTWords::optimizeAllWords(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { FTSelection *word = new (mm) FTWord(token.word_, mm); word->setLocationInfo(this); ftand->addArg(word); } } return ftand; } AllMatches *FTWords::executeAllWords(Result strings, FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { conjunction->addMatches(new FTStringSearchMatches(this, token.word_, ftcontext)); } } return result; } FTSelection *FTWords::optimizePhrase(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *result = new (mm) FTOrder(optimizeAllWords(strings, ftcontext), mm); result->setLocationInfo(this); result = new (mm) FTDistanceLiteral(result, FTRange::EXACTLY, 0, 0, FTOption::WORDS, mm); result->setLocationInfo(this); return result; } AllMatches *FTWords::executePhrase(Result strings, FTContext *ftcontext) const { AllMatches *result = executeAllWords(strings, ftcontext); result = new FTOrderMatches(this, result); result = new FTDistanceExactlyMatches(this, 0, FTOption::WORDS, result); return result; } FTSelection *FTWords::optimizeAny(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { ftor->addArg(optimizePhrase(item, ftcontext)); } return ftor; } AllMatches *FTWords::executeAny(Result strings, FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { disjunction->addMatches(executePhrase(item, ftcontext)); } return result; } FTSelection *FTWords::optimizeAll(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { ftand->addArg(optimizePhrase(item, ftcontext)); } return ftand; } AllMatches *FTWords::executeAll(Result strings, FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { conjunction->addMatches(executePhrase(item, ftcontext)); } return result; } AllMatches *FTWords::execute(FTContext *ftcontext) const { Result strings = expr_->createResult(ftcontext->context); switch(option_) { case ANY_WORD: { return executeAnyWord(strings, ftcontext); } case ALL_WORDS: { return executeAllWords(strings, ftcontext); } case PHRASE: { return executePhrase(strings, ftcontext); } case ANY: { return executeAny(strings, ftcontext); } case ALL: { return executeAll(strings, ftcontext); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// FTWord::FTWord(const XMLCh *queryString, XPath2MemoryManager *memMgr) : FTSelection(WORD, memMgr), queryString_(queryString) { } FTSelection *FTWord::staticResolution(StaticContext *context) { return this; } FTSelection *FTWord::staticTypingImpl(StaticContext *context) { src_.clear(); return this; } FTSelection *FTWord::optimize(FTContext *context) const { return const_cast(this); } AllMatches *FTWord::execute(FTContext *ftcontext) const { return new FTStringSearchMatches(this, queryString_, ftcontext); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTStringSearchMatches::FTStringSearchMatches(const LocationInfo *info, const XMLCh *queryString, FTContext *ftcontext) : AllMatches(info), queryPos_(ftcontext->queryPos++), tokenStream_(ftcontext->tokenStore->findTokens(queryString)), includes_(), excludes_() { } bool FTStringSearchMatches::next(DynamicContext *context) { includes_.clear(); if(tokenStream_.isNull()) return false; TokenInfo token = tokenStream_->next(); if(token.word_ == 0) { tokenStream_ = 0; return false; } // TBD query position StringMatch sm(queryPos_, token); includes_.push_back(sm); return true; } const StringMatches &FTStringSearchMatches::getStringIncludes() { return includes_; } const StringMatches &FTStringSearchMatches::getStringExcludes() { return excludes_; } XQilla-2.3.4/src/fulltext/FTWindow.cpp0000644001725400016040000001413713273140037014510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTSelection *FTWindow::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); arg_ = arg_->staticResolution(context); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } FTSelection *FTWindow::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); src_.add(expr_->getStaticAnalysis()); return this; } FTSelection *FTWindow::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); if(expr_->isConstant()) { Numeric::Ptr num = (Numeric*)expr_->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTWindowLiteral(arg_, num->asInt(), unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTWindow(newarg, expr_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTWindow::execute(FTContext *ftcontext) const { Numeric::Ptr num = (Numeric*)expr_->createResult(ftcontext->context)->next(ftcontext->context).get(); return new FTWindowMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTSelection *FTWindowLiteral::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTWindowLiteral::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTWindowLiteral::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTWindowLiteral(newarg, distance_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTWindowLiteral::execute(FTContext *ftcontext) const { return new FTWindowMatches(this, distance_, unit_, arg_->execute(ftcontext)); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTWindowMatches::~FTWindowMatches() { delete arg_; } bool FTWindowMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_ || !found_) return false; unsigned int unitVal; while(found_) { found_ = arg_->next(context); if(!found_) { delete arg_; arg_ = 0; return false; } StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); if(i != end) { unsigned int includeMin = FTOption::tokenUnit(i->tokenInfo, unit_); unsigned int includeMax = includeMin; for(++i; i != end; ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(unitVal < includeMin) { includeMin = unitVal; } else if(unitVal > includeMax) { includeMax = unitVal; } } if((includeMax - includeMin + 1) <= distance_) { unsigned int tokenStart = 0; if(includeMax > distance_) { tokenStart = includeMax - distance_ + 1; } unsigned int tokenEnd = includeMin + distance_ - 1; excludeValues_.clear(); end = arg_->getStringIncludes().end(); i = arg_->getStringIncludes().begin(); for(; i != end; ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(tokenStart <= unitVal && unitVal <= tokenEnd) { excludeValues_.insert(unitVal); } } if(excludeValues_.empty()) { // Add a dummy value, so we return a match excludeValues_.insert(includeMin); } excludeIt_ = excludeValues_.begin(); break; } } } for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != arg_->getStringExcludes().end(); ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(*excludeIt_ <= unitVal && unitVal <= (*excludeIt_ + distance_ - 1)) { excludes_.push_back(*i); } } ++excludeIt_; if(excludeIt_ == excludeValues_.end()) { found_ = false; } return true; } const StringMatches &FTWindowMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTWindowMatches::getStringExcludes() { return excludes_; } XQilla-2.3.4/src/fulltext/FTContains.cpp0000644001725400016040000001015213273140037015010 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include FTContains::FTContains(ASTNode *argument, FTSelection *selection, ASTNode *ignore, XPath2MemoryManager* memMgr) : ASTNodeImpl(FTCONTAINS, memMgr), argument_(argument), selection_(selection), ignore_(ignore) { } FTContains::~FTContains() { //no-op } ASTNode* FTContains::staticResolution(StaticContext *context) { argument_ = argument_->staticResolution(context); selection_ = selection_->staticResolution(context); if(ignore_ != NULL) { ignore_ = ignore_->staticResolution(context); } return this; } ASTNode *FTContains::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::BOOLEAN_TYPE; _src.add(argument_->getStaticAnalysis()); _src.add(selection_->getStaticAnalysis()); if(ignore_ != NULL) { _src.add(ignore_->getStaticAnalysis()); } return this; } BoolResult FTContains::boolResult(DynamicContext* context) const { // TBD deal with ignore nodes DefaultTokenizer tokenizer; Result argNodes = getArgument()->createResult(context); Item::Ptr item; AllMatches *matches = 0; while((item = argNodes->next(context)).notNull()) { if(!item->isNode()) XQThrow(XPath2TypeMatchException, X("FTContains::createResult"), X("The argument to ftcontains contains non nodes [err:XPTY0004]")); FTContext ftcontext(&tokenizer, new DefaultTokenStore((Node*)item.get(), &tokenizer, context), context); if (matches != 0) delete matches; matches = getSelection()->execute(&ftcontext); if(matches) { StringMatches::const_iterator i; StringMatches::const_iterator end; while(matches->next(context)) { bool fail = false; i = matches->getStringIncludes().begin(); end = matches->getStringIncludes().end(); for(; i != end; ++i) { if(i->startToken && i->tokenInfo.position_ != ftcontext.tokenStore->getStartTokenPosition()) { fail = true; break; } if(i->endToken && i->tokenInfo.position_ != ftcontext.tokenStore->getEndTokenPosition()) { fail = true; break; } } if(fail) continue; i = matches->getStringExcludes().begin(); end = matches->getStringExcludes().end(); for(; i != end; ++i) { if(i->startToken && i->tokenInfo.position_ != ftcontext.tokenStore->getStartTokenPosition()) { continue; } if(i->endToken && i->tokenInfo.position_ != ftcontext.tokenStore->getEndTokenPosition()) { continue; } fail = true; break; } if(fail) continue; delete matches; matches = 0; return true; } delete matches; matches = 0; } } return false; } Result FTContains::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/fulltext/FTAnd.cpp0000644001725400016040000001371413273140037013743 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTAnd::FTAnd(XPath2MemoryManager *memMgr) : FTSelection(AND, memMgr), args_(memMgr) { } FTAnd::FTAnd(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(AND, memMgr), args_(memMgr) { args_.push_back(left); args_.push_back(right); } FTSelection *FTAnd::staticResolution(StaticContext *context) { for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } FTSelection *FTAnd::staticTypingImpl(StaticContext *context) { src_.clear(); for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { src_.add((*i)->getStaticAnalysis()); } return this; } FTSelection *FTAnd::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { FTSelection *arg = (*i)->optimize(ftcontext); if(arg == 0) return 0; ftand->addArg(arg); } if(ftand->args_.empty()) { return 0; } if(ftand->args_.size() == 1) { return ftand->args_.back(); } return ftand; } AllMatches *FTAnd::execute(FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { conjunction->addMatches((*i)->execute(ftcontext)); } return result; } BufferedMatches::BufferedMatches(const LocationInfo *info, AllMatches *matches) : AllMatches(info), matches_(matches), reset_(false), includeBuffer_(), excludeBuffer_(), includeIt_(includeBuffer_.begin()), excludeIt_(excludeBuffer_.begin()) { } bool BufferedMatches::next(DynamicContext *context) { if(includeIt_ != includeBuffer_.end()) { if (reset_) { reset_ = false; } else { includeIt_++; excludeIt_++; } if(includeIt_ != includeBuffer_.end()) return true; } if(matches_) { if(matches_->next(context)) { includeBuffer_.push_back(matches_->getStringIncludes()); excludeBuffer_.push_back(matches_->getStringExcludes()); includeIt_ = includeBuffer_.end(); excludeIt_ = excludeBuffer_.end(); includeIt_--; excludeIt_--; return true; } } return false; } void BufferedMatches::reset() { reset_ = true; includeIt_ = includeBuffer_.begin(); excludeIt_ = excludeBuffer_.begin(); } AllMatches *BufferedMatches::getAllMatches() { return matches_; } FTConjunctionMatches::FTConjunctionMatches(const LocationInfo *info) : AllMatches(info), toDo_(true), includes_(), excludes_() { } FTConjunctionMatches::~FTConjunctionMatches() { deleteMatches(); } void FTConjunctionMatches::addMatches(AllMatches *m) { if (m) { BufferedMatches buf(this, m); args_.push_back(buf); } } bool FTConjunctionMatches::next(DynamicContext *context) { // TBD need to check for StringInclude / StringExclude contradictions includes_.clear(); excludes_.clear(); vector::reverse_iterator rend = args_.rend(); vector::reverse_iterator rbegin = args_.rbegin(); vector::reverse_iterator it; bool initialisationState = false; if(toDo_) { toDo_ = false; initialisationState = true; } if(initialisationState) { it = rend; } else { it = rbegin; } while(true) { if(initialisationState) { if(it == rbegin) { break; } else { --it; it->reset(); if(!it->next(context)) { initialisationState = false; ++it; } } } else { if(it == rend) { deleteMatches(); return false; } else { if(it->next(context)) { initialisationState = true; } else { ++it; } } } } return true; } const StringMatches &FTConjunctionMatches::getStringIncludes() { if (includes_.empty()) { for(vector::iterator i = args_.begin(); i != args_.end(); ++i) { addStringIncludes(i->getStringIncludes()); } } return includes_; } const StringMatches &FTConjunctionMatches::getStringExcludes() { if (excludes_.empty()) { for(vector::iterator i = args_.begin(); i != args_.end(); ++i) { addStringExcludes(i->getStringExcludes()); } } return excludes_; } void FTConjunctionMatches::deleteMatches() { for (vector::iterator it = args_.begin(); it != args_.end(); it++) { delete it->getAllMatches(); } args_.clear(); } void FTConjunctionMatches::addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void FTConjunctionMatches::addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } } XQilla-2.3.4/src/fastxdm/0000755001725400016040000000000013273141207012154 500000000000000XQilla-2.3.4/src/fastxdm/FastXDMUpdateFactory.cpp0000644001725400016040000000637413273140037016553 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMUpdateFactory.hpp" #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static const XMLCh file_scheme[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, 0 }; static const XMLCh utf8_str[] = { chLatin_u, chLatin_t, chLatin_f, chDash, chDigit_8, 0 }; void FastXDMUpdateFactory::applyPut(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertInto(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceValue(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyRename(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyDelete(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertBefore(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAfter(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceNode(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeDeletions(DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeRevalidation(DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeUpdate(DynamicContext *context) { assert(false); } XQilla-2.3.4/src/fastxdm/FastXDMSequenceBuilder.cpp0000644001725400016040000001140513273140037017047 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "FastXDMSequenceBuilder.hpp" #include "FastXDMNodeImpl.hpp" #include #include FastXDMSequenceBuilder::FastXDMSequenceBuilder(const DynamicContext *context) : context_(context), level_(0), document_(0), seq_(context->getMemoryManager()) { } void FastXDMSequenceBuilder::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(level_ == 0) { document_ = new FastXDMDocument(context_->getMemoryManager()); } document_->startDocumentEvent(documentURI, encoding); ++level_; } void FastXDMSequenceBuilder::endDocumentEvent() { --level_; document_->endDocumentEvent(); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::endEvent() { } void FastXDMSequenceBuilder::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(level_ == 0) { document_ = new FastXDMDocument(context_->getMemoryManager()); } document_->startElementEvent(prefix, uri, localname); ++level_; } void FastXDMSequenceBuilder::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { --level_; document_->endElementEvent(prefix, uri, localname, typeURI, typeName); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::piEvent(const XMLCh *target, const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->piEvent(target, value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::textEvent(const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->textEvent(value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::textEvent(const XMLCh *chars, unsigned int length) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->textEvent(chars, length); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::commentEvent(const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->commentEvent(value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { document_ = new FastXDMDocument(0, 1, 0, context_->getMemoryManager()); } document_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMAttributeNodeImpl(document_, document_->getAttribute(0))); document_ = 0; } } void FastXDMSequenceBuilder::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { seq_.addItem(new FastXDMNamespaceNodeImpl(0, prefix, uri, 0)); } else { document_->namespaceEvent(prefix, uri); } } void FastXDMSequenceBuilder::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(level_ == 0); seq_.addItem(context_->getItemFactory()->createDerivedFromAtomicType(type, typeURI, typeName, value, context_)); } XQilla-2.3.4/src/fastxdm/FastXDMNodeImpl.cpp0000644001725400016040000016034513273140037015507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMNodeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FastXDMNodeImpl::fastxdm_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', 0 }; FastXDMNodeImpl::FastXDMNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node) : document_(document), node_(node) { } FastXDMNodeImpl::~FastXDMNodeImpl() { } void *FastXDMNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_string) return (void *)this; return 0; } const XMLCh *FastXDMNodeImpl::asString(const DynamicContext* context) const { XPath2MemoryManager *mm = context->getMemoryManager(); MemBufFormatTarget target(1023, mm); EventSerializer writer(&target, mm); NSFixupFilter nsfilter(&writer, mm); FastXDMDocument::toEvents(node_, &nsfilter); nsfilter.endEvent(); return XMLString::replicate((XMLCh*)target.getRawBuffer(), mm); } void FastXDMNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { FastXDMDocument::toEvents(node_, events, preserveNS, preserveType); } bool FastXDMNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri, name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } Sequence FastXDMNodeImpl::dmBaseURI(const DynamicContext* context) const { static XMLCh base_str[] = { 'b', 'a', 's', 'e', 0 }; switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: { const XMLCh *baseURI = context->getBaseURI(); const XMLCh* docURI = node_->data.document.documentURI; if(docURI != 0 && *docURI != 0) baseURI = docURI; if(baseURI == 0 || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case FastXDMDocument::ELEMENT: { const XMLCh *baseURI = context->getBaseURI(); Node::Ptr parent = dmParent(context); if(parent.notNull()) { Sequence pb = parent->dmBaseURI(context); if(!pb.isEmpty()) baseURI = pb.first()->asString(context); } if(node_->data.element.attributes.ptr != 0) { NodeTest xmlBase; xmlBase.setNodeName(base_str); xmlBase.setNodeUri(XMLUni::fgXMLURIName); xmlBase.setTypeWildcard(); Item::Ptr item = getAxisResult(XQStep::ATTRIBUTE, &xmlBase, const_cast(context), 0)-> next(const_cast(context)); if(item.notNull()) { const XMLCh *uri = ((Node*)item.get())->dmStringValue(context); if(uri && *uri) { if(baseURI && *baseURI) { try { XMLUri temp(baseURI, context->getMemoryManager()); XMLUri temp2(&temp, uri, context->getMemoryManager()); baseURI = context->getMemoryManager()->getPooledString(temp2.getUriText()); } catch(const MalformedURLException &ex) { baseURI = uri; } } else baseURI = uri; } } } if(baseURI == NULL || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case FastXDMDocument::TEXT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::dmNodeKind"), X("Unknown node type.")); } const XMLCh* FastXDMNodeImpl::dmNodeKind(void) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: return document_string; case FastXDMDocument::ELEMENT: return element_string; case FastXDMDocument::TEXT: return text_string; case FastXDMDocument::COMMENT: return comment_string; case FastXDMDocument::PROCESSING_INSTRUCTION: return processing_instruction_string; case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::dmNodeKind"), X("Unknown node type.")); } ATQNameOrDerived::Ptr FastXDMNodeImpl::dmNodeName(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: return context->getItemFactory()->createQName(node_->data.element.uri, node_->data.element.prefix, node_->data.element.localname, context); case FastXDMDocument::PROCESSING_INSTRUCTION: return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, node_->data.other.target, context); default: break; } return 0; } static inline void addStringValueToBuffer(const FastXDMDocument::Node *node, unsigned int endLevel, XMLBuffer& buffer) { for(; node->level > endLevel; ++node) { if(node->nodeKind == FastXDMDocument::TEXT) buffer.append(node->data.other.value); } } const XMLCh* FastXDMNodeImpl::dmStringValue(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: case FastXDMDocument::ELEMENT: { XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } case FastXDMDocument::TEXT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: return node_->data.other.value; case FastXDMDocument::MARKER: break; } return XMLUni::fgZeroLenString; } static Sequence getListTypeTypedValue(const XMLCh *stringVal, DatatypeValidator *dtv, const DynamicContext* context) { AutoDelete > tokenVector(XMLString::tokenizeString(stringVal)); Sequence s(tokenVector->size(), context->getMemoryManager()); //the actual type we want DatatypeValidator* theItemTypeDTV = ((ListDatatypeValidator*)dtv)->getItemTypeDTV(); if(theItemTypeDTV->getType() == DatatypeValidator::Union) { RefVectorOf* membersDV = ((UnionDatatypeValidator*)theItemTypeDTV)->getMemberTypeValidators(); unsigned int size = (unsigned int) membersDV->size(); // find the first datatype in the union that validates the piece for ( unsigned int j = 0; j < tokenVector->size(); j++ ) { const XMLCh* szPiece=tokenVector->elementAt(j); bool bFound=false; for (unsigned int i=0; ielementAt(i); try { pDV->validate(szPiece, NULL, context->getMemoryManager()); const XMLCh* itemTypeDTVName = pDV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = pDV->getTypeUri(); // TBD avoid double lookup of DatatypeValidator - jpcs s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, szPiece, context)); bFound=true; break; } catch (XMLException&) { //absorbed } } if(!bFound) XQThrow2(ItemException, X("FastXDMNodeImpl::getListTypeTypedValue"), X("Value in list doesn't validate with any of the componenets of the union type")); } } else { const XMLCh* itemTypeDTVName = theItemTypeDTV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = theItemTypeDTV->getTypeUri(); for ( unsigned int j = 0; j < tokenVector->size(); j++ ) s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, tokenVector->elementAt(j), context)); } return s; } // Minimal implementation for resolving xs:QName and xs:NOTATION values from the // namespace bindings in an element class FastXDMNSResolverImpl : public XQillaNSResolver { public: FastXDMNSResolverImpl(const Node::Ptr &node, DynamicContext *context) : node_(node), context_(context) {} virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const { NodeTest test; test.setNodeName(prefix); test.setNameWildcard(); test.setTypeWildcard(); Item::Ptr found = node_->getAxisResult(XQStep::NAMESPACE, &test, context_, 0)->next(context_); if(found.notNull()) { return ((Node*)found.get())->dmStringValue(context_); } return 0; } virtual const XMLCh* lookupPrefix(const XMLCh* uri) const { return 0; } virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) {} virtual void release() {} protected: Node::Ptr node_; DynamicContext *context_; }; Sequence FastXDMNodeImpl::dmTypedValue(DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: { XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); } case FastXDMDocument::ELEMENT: { // Data Model, 7.2.3 and 7.2.4 // If the nilled property is true, its typed-value is (). if(((const ATBooleanOrDerived*)dmNilled(context).get())->isTrue()) return Sequence(context->getMemoryManager()); const XMLCh *typeUri, *typeName; getTypeUriAndName(typeUri, typeName); XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); // If the element is of type xdt:untyped or xs:anyType, its typed-value is its dm:string-value as an xdt:untypedAtomic. if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE)) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); } FastXDMNSResolverImpl newNSScope(this, context); AutoNsScopeReset jan(context, &newNSScope); // If the element has a simple type or a complex type with simple content: it's typed value is compute // as described in 3.3.1.2 Atomic Value Type Names. The result is a sequence of zero or more atomic values // derived from the string-value of the node and its type in a way that is consistent with XML Schema validation. DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(dtv) { if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(str.getRawBuffer(), dtv, context); else { // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, str.getRawBuffer(), context), context->getMemoryManager()); } } ComplexTypeInfo *cti = context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName); assert(cti); switch(cti->getContentType()) { case SchemaElementDecl::Simple: { DatatypeValidator *dtv = cti->getDatatypeValidator(); assert(dtv != 0); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(str.getRawBuffer(), dtv, context); else { // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(dtv->getTypeUri(), dtv->getTypeLocalName(), str.getRawBuffer(), context), context->getMemoryManager()); } } case SchemaElementDecl::Empty: // If the element is empty: its typed-value is the empty sequence. return Sequence(context->getMemoryManager()); case SchemaElementDecl::Mixed_Simple: case SchemaElementDecl::Mixed_Complex: // If the element has a complex type with mixed content, its typed-value is its dm:string-value as an xdt:untypedAtomic. return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); case SchemaElementDecl::Children: break; } // Otherwise, the element must be a complex type with element-only content. // The typed-value of such an element is undefined. Attempting to access this property with the dm:typed-value // accessor always raises an error. XQThrow2(ItemException, X("NodeImpl::dmTypedValue"), X("Attempt to get typed value from a complex type with non-mixed complex content [err:FOTY0012]")); } case FastXDMDocument::TEXT: return Sequence(context->getItemFactory()->createUntypedAtomic(node_->data.other.value, context), context->getMemoryManager()); case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: return Sequence(context->getItemFactory()->createString(node_->data.other.value, context), context->getMemoryManager()); case FastXDMDocument::MARKER: break; } return Sequence(context->getMemoryManager()); } Sequence FastXDMNodeImpl::dmDocumentURI(const DynamicContext* context) const { if(node_->nodeKind != FastXDMDocument::DOCUMENT) return Sequence(context->getMemoryManager()); const XMLCh* docURI = node_->data.document.documentURI; if(docURI == NULL || *docURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(docURI, context), context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMNodeImpl::dmTypeName(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; case FastXDMDocument::ELEMENT: case FastXDMDocument::TEXT: const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } return 0; } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmNilled(const DynamicContext* context) const { if(node_->nodeKind != FastXDMDocument::ELEMENT) return 0; return context->getItemFactory()->createBoolean(false, context); } bool FastXDMNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMNodeImpl *otherImpl = (const FastXDMNodeImpl*)other->getInterface(fastxdm_string); if(otherImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != otherImpl->getDocument().get()) return document_.get() < otherImpl->getDocument().get(); // Then order by the node index return node_ < otherImpl->getNode(); } const FastXDMAttributeNodeImpl *attrImpl = (const FastXDMAttributeNodeImpl*)other-> getInterface(FastXDMAttributeNodeImpl::fastxdm_attr_string); if(attrImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != attrImpl->getDocument().get()) return document_.get() < attrImpl->getDocument().get(); // Then order by the node index if(node_ == attrImpl->getAttribute()->owner.ptr) return true; return node_ < attrImpl->getAttribute()->owner.ptr; } const FastXDMNamespaceNodeImpl *nsImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(FastXDMNamespaceNodeImpl::fastxdm_ns_string); if(nsImpl != 0) { if(nsImpl->getOwner().isNull()) return false; return lessThan(nsImpl->getOwner(), context); } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMNodeImpl::equals(const Node::Ptr &other) const { const FastXDMNodeImpl *otherImpl = (const FastXDMNodeImpl*)other->getInterface(fastxdm_string); if(otherImpl == 0) return false; if(document_.get() != otherImpl->getDocument().get()) return false; return node_ == otherImpl->getNode(); } bool FastXDMNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmIsId(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, context)) return context->getItemFactory()->createBoolean(true, context); case FastXDMDocument::TEXT: case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmIsIdRefs(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefString, context) || hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefsString, context)) return context->getItemFactory()->createBoolean(true, context); case FastXDMDocument::TEXT: case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } return context->getItemFactory()->createBoolean(false, context); } void FastXDMNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: uri = node_->data.element.typeURI; name = node_->data.element.typeName; return; case FastXDMDocument::TEXT: uri = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::getTypeUriAndName"), X("Tried to get type information on Node other than element, attribute or text")); } const XMLCh* FastXDMNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* FastXDMNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } static inline Item::Ptr testNode(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest == 0) return new FastXDMNodeImpl(document, node); SequenceType::ItemType *itemType = nodeTest->getItemType(); if(itemType != 0) { Node::Ptr result = new FastXDMNodeImpl(document, node); if(itemType->matches(result, context)) { return result; } } switch(node->nodeKind) { case FastXDMDocument::DOCUMENT: { if(!nodeTest->getTypeWildcard() && nodeTest->getNodeType() != Node::document_string) return 0; if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::ELEMENT: { if(nodeTest->getNodeType() != Node::element_string && !nodeTest->getTypeWildcard()) return 0; if(!XPath2Utils::equals(node->data.element.localname, nodeTest->getNodeName()) && !nodeTest->getNameWildcard()) return 0; if(!XPath2Utils::equals(node->data.element.uri, nodeTest->getNodeUri()) && !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::TEXT: { if(nodeTest->getNodeType() != Node::text_string) { if(!nodeTest->getTypeWildcard() || nodeTest->getHasChildren()) return 0; } if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::PROCESSING_INSTRUCTION: { if(nodeTest->getTypeWildcard()) { if(nodeTest->getHasChildren()) return 0; } else if(nodeTest->getNodeType() != Node::processing_instruction_string) return 0; if(!nodeTest->getNameWildcard() && !XPath2Utils::equals(node->data.other.target, nodeTest->getNodeName())) return 0; if(!nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::COMMENT: { if(nodeTest->getTypeWildcard()) { if(nodeTest->getHasChildren()) return 0; } else if(nodeTest->getNodeType() != Node::comment_string) return 0; if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::MARKER: return 0; } return new FastXDMNodeImpl(document, node); } static inline Item::Ptr testAttribute(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest != 0) { SequenceType::ItemType *itemType = nodeTest->getItemType(); if(itemType != 0) { Node::Ptr result = new FastXDMAttributeNodeImpl(document, attr); if(itemType->matches(result, context)) { return result; } } if(nodeTest->getNodeType() != Node::attribute_string) { if(!nodeTest->getTypeWildcard() || nodeTest->getHasChildren()) return 0; } if(!XPath2Utils::equals(attr->localname, nodeTest->getNodeName()) && !nodeTest->getNameWildcard()) return 0; if(!XPath2Utils::equals(attr->uri, nodeTest->getNodeUri()) && !nodeTest->getNamespaceWildcard()) return 0; } return new FastXDMAttributeNodeImpl(document, attr); } static inline bool testNamespace(const FastXDMNamespaceNodeImpl::Ptr &ns, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest != 0) { return nodeTest->filterNode(ns, context); } return true; } class FastXDMAxis : public ResultImpl { public: FastXDMAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : ResultImpl(info), document_(document), node_(node), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { const FastXDMDocument::Node *node = 0; while((node = nextNode()) != 0) { context->testInterrupt(); Item::Ptr result = testNode(document_, node, nodeTest_, context); if(result.notNull()) return result; } return 0; } virtual const FastXDMDocument::Node *nextNode() = 0; virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; class FastXDMChildAxis : public FastXDMAxis { public: FastXDMChildAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } const FastXDMDocument::Node *nextNode() { if(toDo_) { toDo_ = false; if((node_ + 1)->level <= node_->level) node_ = 0; else ++node_; } else if(node_ != 0) node_ = node_->nextSibling.ptr; return node_; } protected: bool toDo_; }; class FastXDMDescendantAxis : public FastXDMAxis { public: FastXDMDescendantAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), endLevel_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; ++node_; if(node_->level <= endLevel_) { node_ = 0; return 0; } return node_; } protected: unsigned int endLevel_; }; class FastXDMDescendantOrSelfAxis : public FastXDMAxis { public: FastXDMDescendantOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), endLevel_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; const FastXDMDocument::Node *ret = node_; ++node_; if(node_->level <= endLevel_) { node_ = 0; } return ret; } protected: unsigned int endLevel_; }; class FastXDMAncestorAxis : public FastXDMAxis { public: FastXDMAncestorAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; node_ = FastXDMDocument::getParent(node_); return node_; } }; class FastXDMAncestorOrSelfAxis : public FastXDMAxis { public: FastXDMAncestorOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } const FastXDMDocument::Node *nextNode() { if(toDo_) { toDo_ = false; } else if(node_ != 0) { node_ = FastXDMDocument::getParent(node_); } return node_; } protected: bool toDo_; }; class FastXDMParentAxis : public FastXDMAxis { public: FastXDMParentAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; const FastXDMDocument::Node *parent = FastXDMDocument::getParent(node_); node_ = 0; return parent; } }; class FastXDMFollowingSiblingAxis : public FastXDMAxis { public: FastXDMFollowingSiblingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; node_ = node_->nextSibling.ptr; return node_; } }; class FastXDMPrecedingSiblingAxis : public FastXDMAxis { public: FastXDMPrecedingSiblingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), level_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0 || node_->level == 0) { node_ = 0; return 0; } --node_; while(node_->level > level_) --node_; if(node_->level < level_) { node_ = 0; } return node_; } protected: unsigned int level_; }; class FastXDMFollowingAxis : public FastXDMAxis { public: FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest) : FastXDMAxis(info, document, attr->owner.ptr, nodeTest), toDo_(false) { } FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMNamespaceNodeImpl *ns, const NodeTest *nodeTest) : FastXDMAxis(info, document, ns->getOwner()->getNode(), nodeTest), toDo_(false) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; if(toDo_) { toDo_ = false; // Find the next node in document order after node_, // that isn't one of it's descendants const FastXDMDocument::Node *result = node_->nextSibling.ptr; if(result == 0) { result = node_ + 1; while(result->level > node_->level) ++result; } node_ = result; } else { ++node_; } if(node_->nodeKind == FastXDMDocument::MARKER) { node_ = 0; return 0; } return node_; } protected: bool toDo_; }; class FastXDMPrecedingAxis : public FastXDMAxis { public: FastXDMPrecedingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), level_(node->level - 1) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; while(node_->level != 0) { --node_; // Skip the ancestors of the context node if(node_->level == level_) { level_ = node_->level - 1; continue; } return node_; } node_ = 0; return 0; } protected: unsigned int level_; }; class FastXDMSelfAxis : public FastXDMAxis { public: FastXDMSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { const FastXDMDocument::Node *result = node_; node_ = 0; return result; } }; class FastXDMAttributeAxis : public ResultImpl { public: FastXDMAttributeAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : ResultImpl(info), document_(document), node_(node), attr_(node->data.element.attributes.ptr), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { const FastXDMDocument::Attribute *attr = attr_; while(attr->owner.ptr == node_) { context->testInterrupt(); ++attr_; Item::Ptr result = testAttribute(document_, attr, nodeTest_, context); if(result.notNull()) return result; attr = attr_; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const FastXDMDocument::Attribute *attr_; const NodeTest *nodeTest_; }; class FastXDMNamespaceAxis : public ResultImpl { public: FastXDMNamespaceAxis(const LocationInfo *info, const FastXDMNodeImpl::Ptr &node, const NodeTest *nodeTest) : ResultImpl(info), owner_(node), node_(node->getNode()), attr_(0), ns_(0), order_(0), nodeTest_(nodeTest), state_(CHECK_ELEMENT) { } Item::Ptr next(DynamicContext *context) { FastXDMNamespaceNodeImpl::Ptr result; while(result.isNull() || !testNamespace(result, nodeTest_, context)) { result = 0; switch(state_) { case CHECK_ELEMENT: if(done_.insert(node_->data.element.prefix).second && node_->data.element.uri != 0) { result = new FastXDMNamespaceNodeImpl(owner_, node_->data.element.prefix, node_->data.element.uri, order_++); } state_ = CHECK_ATTR; attr_ = node_->data.element.attributes.ptr; break; case CHECK_ATTR: if(attr_ != 0 && attr_->owner.ptr == node_) { if(attr_->uri != 0 && done_.insert(attr_->prefix).second) { result = new FastXDMNamespaceNodeImpl(owner_, attr_->prefix, attr_->uri, order_++); } ++attr_; } else { state_ = CHECK_NS; ns_ = node_->data.element.namespaces.ptr; } break; case CHECK_NS: if(ns_ != 0 && ns_->owner.ptr == node_) { if(done_.insert(ns_->prefix).second && ns_->uri != 0) { result = new FastXDMNamespaceNodeImpl(owner_, ns_->prefix, ns_->uri, order_++); } ++ns_; } else { state_ = CHECK_ELEMENT; node_ = FastXDMDocument::getParent(node_); if(node_ == 0 || node_->nodeKind != FastXDMDocument::ELEMENT) { state_ = DO_XML; } } break; case DO_XML: if(done_.insert(XMLUni::fgXMLString).second) { result = new FastXDMNamespaceNodeImpl(owner_, XMLUni::fgXMLString, XMLUni::fgXMLURIName, order_++); } state_ = DONE; owner_ = 0; break; case DONE: return 0; } } return result; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMNodeImpl::Ptr owner_; const FastXDMDocument::Node *node_; const FastXDMDocument::Attribute *attr_; const FastXDMDocument::Namespace *ns_; unsigned int order_; const NodeTest *nodeTest_; enum { CHECK_ELEMENT, CHECK_ATTR, CHECK_NS, DO_XML, DONE } state_; typedef std::set DoneSet; DoneSet done_; }; Node::Ptr FastXDMNodeImpl::root(const DynamicContext* context) const { return new FastXDMNodeImpl(document_, document_->getNode(0)); } Node::Ptr FastXDMNodeImpl::dmParent(const DynamicContext* context) const { if(node_->level == 0) return 0; const FastXDMDocument::Node *parent = node_ - 1; while(parent->level >= node_->level) --parent; return new FastXDMNodeImpl(document_, parent); } Result FastXDMNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT && node_->data.element.attributes.ptr != 0) { return new FastXDMAttributeAxis(info, document_, node_, 0); } return 0; } Result FastXDMNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT) { return new FastXDMNamespaceAxis(info, this, 0); } return 0; } Result FastXDMNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMChildAxis(info, document_, node_, 0); } return 0; } Result FastXDMNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { return new FastXDMAncestorAxis(info, document_, node_, nodeTest); } case XQStep::ANCESTOR_OR_SELF: { return new FastXDMAncestorOrSelfAxis(info, document_, node_, nodeTest); } case XQStep::ATTRIBUTE: { if(node_->nodeKind == FastXDMDocument::ELEMENT && node_->data.element.attributes.ptr != 0) { return new FastXDMAttributeAxis(info, document_, node_, nodeTest); } break; } case XQStep::CHILD: { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMChildAxis(info, document_, node_, nodeTest); } break; } case XQStep::DESCENDANT: { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMDescendantAxis(info, document_, node_, nodeTest); } break; } case XQStep::DESCENDANT_OR_SELF: { return new FastXDMDescendantOrSelfAxis(info, document_, node_, nodeTest); } case XQStep::FOLLOWING: { return new FastXDMFollowingAxis(info, document_, node_, nodeTest); } case XQStep::FOLLOWING_SIBLING: { return new FastXDMFollowingSiblingAxis(info, document_, node_, nodeTest); } case XQStep::NAMESPACE: { if(node_->nodeKind == FastXDMDocument::ELEMENT) { return new FastXDMNamespaceAxis(info, this, nodeTest); } break; } case XQStep::PARENT: { return new FastXDMParentAxis(info, document_, node_, nodeTest); } case XQStep::PRECEDING: { return new FastXDMPrecedingAxis(info, document_, node_, nodeTest); } case XQStep::PRECEDING_SIBLING: { return new FastXDMPrecedingSiblingAxis(info, document_, node_, nodeTest); } case XQStep::SELF: { return new FastXDMSelfAxis(info, document_, node_, nodeTest); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// const XMLCh FastXDMAttributeNodeImpl::fastxdm_attr_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', '_', 'a', 't', 't', 'r', 0 }; FastXDMAttributeNodeImpl::FastXDMAttributeNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr) : document_(document), attr_(attr) { } FastXDMAttributeNodeImpl::~FastXDMAttributeNodeImpl() { } void *FastXDMAttributeNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_attr_string) return (void *)this; return 0; } const XMLCh* FastXDMAttributeNodeImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(X("{")); buffer.append(attr_->uri); buffer.append(X("}")); buffer.append(attr_->localname); buffer.append(X("=\"")); buffer.append(attr_->value); buffer.append(X("\"")); return XMLString::replicate(buffer.getRawBuffer(), context->getMemoryManager()); } void FastXDMAttributeNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { FastXDMDocument::toEvents(attr_, events, preserveType); } bool FastXDMAttributeNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri, name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } Sequence FastXDMAttributeNodeImpl::dmBaseURI(const DynamicContext* context) const { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } const XMLCh* FastXDMAttributeNodeImpl::dmNodeKind(void) const { return attribute_string; } ATQNameOrDerived::Ptr FastXDMAttributeNodeImpl::dmNodeName(const DynamicContext* context) const { return context->getItemFactory()->createQName(attr_->uri, attr_->prefix, attr_->localname, context); } const XMLCh* FastXDMAttributeNodeImpl::dmStringValue(const DynamicContext* context) const { return attr_->value; } Sequence FastXDMAttributeNodeImpl::dmTypedValue(DynamicContext* context) const { // Data Model, 7.3.3 and 7.3.4 const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); // If the attribute is of type xdt:untypedAtomic: its typed-value is its dm:string-value as an xdt:untypedAtomic if(XPath2Utils::equals(typeName, ATUntypedAtomic::fgDT_UNTYPEDATOMIC) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return Sequence(context->getItemFactory()->createUntypedAtomic(attr_->value, context), context->getMemoryManager()); } FastXDMNSResolverImpl newNSScope(dmParent(context), context); AutoNsScopeReset jan(context, &newNSScope); // Otherwise: its typed-value is a sequence of zero or more atomic values derived from the string-value of // the node and its type in a way that is consistent with XML Schema validation. The type of each atomic value // is assigned as described in 3.3.1.2 Atomic Value Type Names DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); assert(dtv); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(attr_->value, dtv, context); // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, attr_->value, context), context->getMemoryManager()); } Sequence FastXDMAttributeNodeImpl::dmDocumentURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMAttributeNodeImpl::dmTypeName(const DynamicContext* context) const { const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmNilled(const DynamicContext* context) const { return 0; } bool FastXDMAttributeNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMAttributeNodeImpl *otherImpl = (const FastXDMAttributeNodeImpl*)other->getInterface(fastxdm_attr_string); if(otherImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != otherImpl->getDocument().get()) return document_.get() < otherImpl->getDocument().get(); // Then order by the node index return attr_ < otherImpl->getAttribute(); } const FastXDMNodeImpl *nodeImpl = (const FastXDMNodeImpl*)other->getInterface(FastXDMNodeImpl::fastxdm_string); if(nodeImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != nodeImpl->getDocument().get()) return document_.get() < nodeImpl->getDocument().get(); // Then order by the node index if(attr_->owner.ptr == nodeImpl->getNode()) return false; return attr_->owner.ptr < nodeImpl->getNode(); } const FastXDMNamespaceNodeImpl *nsImpl = (const FastXDMNamespaceNodeImpl*)other-> getInterface(FastXDMNamespaceNodeImpl::fastxdm_ns_string); if(nsImpl != 0) { if(nsImpl->getOwner().isNull()) return false; // Order first by the address of the FastXDMDocument object if(document_.get() != nsImpl->getOwner()->getDocument().get()) return document_.get() < nsImpl->getOwner()->getDocument().get(); // Then order by the node index if(attr_->owner.ptr == nsImpl->getOwner()->getNode()) return true; return attr_->owner.ptr < nsImpl->getOwner()->getNode(); } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMAttributeNodeImpl::equals(const Node::Ptr &other) const { const FastXDMAttributeNodeImpl *otherImpl = (const FastXDMAttributeNodeImpl*)other->getInterface(fastxdm_attr_string); if(otherImpl == 0) return false; if(document_.get() != otherImpl->getDocument().get()) return false; return attr_ == otherImpl->getAttribute(); } bool FastXDMAttributeNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmIsId(const DynamicContext* context) const { if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, context)) return context->getItemFactory()->createBoolean(true, context); return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmIsIdRefs(const DynamicContext* context) const { if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefString, context) || hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefsString, context)) return context->getItemFactory()->createBoolean(true, context); return context->getItemFactory()->createBoolean(false, context); } void FastXDMAttributeNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { uri = attr_->typeURI; name = attr_->typeName; } const XMLCh* FastXDMAttributeNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* FastXDMAttributeNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } class FastXDMAttributeAncestorOrSelfAxis : public ResultImpl { public: FastXDMAttributeAncestorOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest) : ResultImpl(info), document_(document), attr_(attr), node_(attr->owner.ptr), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { if(attr_ != 0) { Item::Ptr result = testAttribute(document_, attr_, nodeTest_, context); attr_ = 0; if(result.notNull()) return result; } while(node_ != 0) { Item::Ptr result = testNode(document_, node_, nodeTest_, context); node_ = FastXDMDocument::getParent(node_); if(result.notNull()) return result; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Attribute *attr_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; Node::Ptr FastXDMAttributeNodeImpl::root(const DynamicContext* context) const { if(document_->getNumNodes() == 0) return this; return new FastXDMNodeImpl(document_, document_->getNode(0)); } Node::Ptr FastXDMAttributeNodeImpl::dmParent(const DynamicContext* context) const { if(attr_->owner.ptr == 0) return 0; return new FastXDMNodeImpl(document_, attr_->owner.ptr); } Result FastXDMAttributeNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { if(attr_->owner.ptr == 0) return 0; return new FastXDMAncestorOrSelfAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::ANCESTOR_OR_SELF: { return new FastXDMAttributeAncestorOrSelfAxis(info, document_, attr_, nodeTest); } case XQStep::FOLLOWING: { return new FastXDMFollowingAxis(info, document_, attr_, nodeTest); } case XQStep::PARENT: { if(attr_->owner.ptr == 0) return 0; return new FastXDMSelfAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::PRECEDING: { if(attr_->owner.ptr == 0) return 0; return new FastXDMPrecedingAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::DESCENDANT_OR_SELF: case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: case XQStep::FOLLOWING_SIBLING: case XQStep::NAMESPACE: case XQStep::PRECEDING_SIBLING: break; } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// const XMLCh FastXDMNamespaceNodeImpl::fastxdm_ns_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', '_', 'n', 's', 0 }; FastXDMNamespaceNodeImpl::FastXDMNamespaceNodeImpl(const FastXDMNodeImpl::Ptr &owner, const XMLCh *prefix, const XMLCh *uri, unsigned int order) : owner_(owner), prefix_(prefix), uri_(uri), order_(order) { } FastXDMNamespaceNodeImpl::~FastXDMNamespaceNodeImpl() { } void *FastXDMNamespaceNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_ns_string) return (void *)this; return 0; } const XMLCh* FastXDMNamespaceNodeImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(X("[")); buffer.append(prefix_); buffer.append(X("=\"")); buffer.append(uri_); buffer.append(X("\"]")); return XMLString::replicate(buffer.getRawBuffer(), context->getMemoryManager()); } void FastXDMNamespaceNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { events->namespaceEvent(prefix_, uri_); } bool FastXDMNamespaceNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } Sequence FastXDMNamespaceNodeImpl::dmBaseURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } const XMLCh* FastXDMNamespaceNodeImpl::dmNodeKind(void) const { return namespace_string; } ATQNameOrDerived::Ptr FastXDMNamespaceNodeImpl::dmNodeName(const DynamicContext* context) const { if(prefix_ == 0) return 0; return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, prefix_, context); } const XMLCh* FastXDMNamespaceNodeImpl::dmStringValue(const DynamicContext* context) const { return uri_; } Sequence FastXDMNamespaceNodeImpl::dmTypedValue(DynamicContext* context) const { return Sequence(context->getItemFactory()->createString(uri_, context), context->getMemoryManager()); } Sequence FastXDMNamespaceNodeImpl::dmDocumentURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMNamespaceNodeImpl::dmTypeName(const DynamicContext* context) const { return 0; } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmNilled(const DynamicContext* context) const { return 0; } bool FastXDMNamespaceNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMNamespaceNodeImpl *otherImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(fastxdm_ns_string); if(otherImpl != 0) { // Check if out owner is null if(owner_.isNull()) { if(otherImpl->getOwner().notNull()) return true; return this < otherImpl; } if(otherImpl->getOwner().isNull()) { return false; } // Order first by the owner object if(!owner_->equals(otherImpl->getOwner())) return owner_->lessThan(otherImpl->getOwner(), context); // Then order by the node index return order_ < otherImpl->getOrder(); } const FastXDMNodeImpl *nodeImpl = (const FastXDMNodeImpl*)other->getInterface(FastXDMNodeImpl::fastxdm_string); if(nodeImpl != 0) { // Check if out owner is null if(owner_.isNull()) return true; // Order first by the address of the FastXDMDocument object if(owner_->getDocument().get() != nodeImpl->getDocument().get()) return owner_->getDocument().get() < nodeImpl->getDocument().get(); // Then order by the node index if(owner_->getNode() == nodeImpl->getNode()) return false; return owner_->getNode() < nodeImpl->getNode(); } const FastXDMAttributeNodeImpl *attrImpl = (const FastXDMAttributeNodeImpl*)other-> getInterface(FastXDMAttributeNodeImpl::fastxdm_attr_string); if(attrImpl != 0) { // Check if out owner is null if(owner_.isNull()) return true; // Order first by the address of the FastXDMDocument object if(owner_->getDocument().get() != attrImpl->getDocument().get()) return owner_->getDocument().get() < attrImpl->getDocument().get(); // Then order by the node index if(owner_->getNode() == attrImpl->getAttribute()->owner.ptr) return false; return owner_->getNode() < attrImpl->getAttribute()->owner.ptr; } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMNamespaceNodeImpl::equals(const Node::Ptr &other) const { if(owner_.isNull()) return false; const FastXDMNamespaceNodeImpl *otherImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(fastxdm_ns_string); if(otherImpl == 0) return false; if(otherImpl->getOwner().isNull()) return false; if(!owner_->equals(otherImpl->getOwner())) return false; return order_ == otherImpl->getOrder(); } bool FastXDMNamespaceNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmIsId(const DynamicContext* context) const { return 0; } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmIsIdRefs(const DynamicContext* context) const { return 0; } const XMLCh* FastXDMNamespaceNodeImpl::getTypeName() const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } const XMLCh* FastXDMNamespaceNodeImpl::getTypeURI() const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } class FastXDMNamespaceAncestorOrSelfAxis : public ResultImpl { public: FastXDMNamespaceAncestorOrSelfAxis(const LocationInfo *info, const FastXDMNamespaceNodeImpl::Ptr &ns, const NodeTest *nodeTest) : ResultImpl(info), ns_(ns), document_(ns->getOwner()->getDocument()), node_(ns->getOwner()->getNode()), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { if(ns_.notNull()) { if(testNamespace(ns_, nodeTest_, context)) { Item::Ptr result = ns_; ns_ = 0; return result; } ns_ = 0; } while(node_ != 0) { Item::Ptr result = testNode(document_, node_, nodeTest_, context); node_ = FastXDMDocument::getParent(node_); if(result.notNull()) return result; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMNamespaceNodeImpl::Ptr ns_; FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; Node::Ptr FastXDMNamespaceNodeImpl::root(const DynamicContext* context) const { if(owner_.isNull()) return this; return owner_->root(context); } Node::Ptr FastXDMNamespaceNodeImpl::dmParent(const DynamicContext* context) const { return owner_; } Result FastXDMNamespaceNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { if(owner_.notNull()) return new FastXDMAncestorOrSelfAxis(info, owner_->getDocument(), owner_->getNode(), nodeTest); break; } case XQStep::ANCESTOR_OR_SELF: { if(owner_.notNull()) return new FastXDMNamespaceAncestorOrSelfAxis(info, this, nodeTest); else return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::FOLLOWING: { if(owner_.notNull()) return new FastXDMFollowingAxis(info, owner_->getDocument(), this, nodeTest); break; } case XQStep::PARENT: { if(owner_.notNull()) return nodeTest->filterResult((Item::Ptr)owner_, info); break; } case XQStep::PRECEDING: { if(owner_.notNull()) return new FastXDMPrecedingAxis(info, owner_->getDocument(), owner_->getNode(), nodeTest); break; } case XQStep::DESCENDANT_OR_SELF: case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: case XQStep::FOLLOWING_SIBLING: case XQStep::NAMESPACE: case XQStep::PRECEDING_SIBLING: break; } return 0; } XQilla-2.3.4/src/fastxdm/FastXDMNodeImpl.hpp0000644001725400016040000002127313273140037015510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMNODEIMPL_HPP #define _FASTXDMNODEIMPL_HPP #include #include "FastXDMDocument.hpp" XERCES_CPP_NAMESPACE_BEGIN class DatatypeValidator; XERCES_CPP_NAMESPACE_END class XQILLA_API FastXDMNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node); ~FastXDMNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMDocument::Ptr &getDocument() const { return document_; } const FastXDMDocument::Node *getNode() const { return node_; } static const XMLCh fastxdm_string[]; protected: virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; }; class XQILLA_API FastXDMAttributeNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMAttributeNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr); ~FastXDMAttributeNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMDocument::Ptr &getDocument() const { return document_; } const FastXDMDocument::Attribute *getAttribute() const { return attr_; } static const XMLCh fastxdm_attr_string[]; protected: virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; FastXDMDocument::Ptr document_; const FastXDMDocument::Attribute *attr_; }; class XQILLA_API FastXDMNamespaceNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMNamespaceNodeImpl(const FastXDMNodeImpl::Ptr &owner, const XMLCh *prefix, const XMLCh *uri, unsigned int order); ~FastXDMNamespaceNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMNodeImpl::Ptr &getOwner() const { return owner_; } const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } unsigned int getOrder() const { return order_; } static const XMLCh fastxdm_ns_string[]; protected: FastXDMNodeImpl::Ptr owner_; const XMLCh *prefix_; const XMLCh *uri_; unsigned int order_; }; #endif XQilla-2.3.4/src/fastxdm/FastXDMDocument.hpp0000644001725400016040000001573013273140037015560 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMDOCUMENT_HPP #define _FASTXDMDOCUMENT_HPP #include #include #include #include #include class XPath2MemoryManager; /// Stores and manages all the information for a Fast XDM document class XQILLA_API FastXDMDocument : public EventHandler, public ReferenceCounted { public: typedef RefCountPointer Ptr; enum NodeKind { DOCUMENT, ELEMENT, TEXT, COMMENT, PROCESSING_INSTRUCTION, MARKER }; struct Node; struct Attribute { void set(unsigned int oi, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const XMLCh *tu, const XMLCh *tn) { owner.index = oi; prefix = p; uri = u; localname = l; value = v; typeURI = tu; typeName = tn; } void setMarker() { owner.index = (unsigned int)-1; prefix = 0; uri = 0; localname = 0; value = 0; } union { unsigned int index; Node *ptr; } owner; const XMLCh *prefix; const XMLCh *uri; const XMLCh *localname; const XMLCh *value; const XMLCh *typeURI; const XMLCh *typeName; }; struct Namespace { void set(unsigned int oi, const XMLCh *p, const XMLCh *u) { owner.index = oi; prefix = p; uri = u; } void setMarker() { owner.index = (unsigned int)-1; prefix = 0; uri = 0; } union { unsigned int index; Node *ptr; } owner; const XMLCh *prefix; const XMLCh *uri; }; struct Node { void setDocument(const XMLCh *d, const XMLCh *e) { nodeKind = DOCUMENT; level = 0; nextSibling.index = (unsigned int)-1; data.document.documentURI = d; data.document.encoding = e; } void setElement(unsigned int lv, const XMLCh *p, const XMLCh *u, const XMLCh *l) { nodeKind = ELEMENT; level = lv; nextSibling.index = (unsigned int)-1; data.element.attributes.index = (unsigned int)-1; data.element.namespaces.index = (unsigned int)-1; data.element.prefix = p; data.element.uri = u; data.element.localname = l; } void setElementType(const XMLCh *tu, const XMLCh *tn) { data.element.typeURI = tu; data.element.typeName = tn; } void setPI(unsigned int lv, const XMLCh *t, const XMLCh *v) { nodeKind = PROCESSING_INSTRUCTION; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = t; data.other.value = v; } void setText(unsigned int lv, const XMLCh *v) { nodeKind = TEXT; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = 0; data.other.value = v; } void setComment(unsigned int lv, const XMLCh *v) { nodeKind = COMMENT; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = 0; data.other.value = v; } void setMarker() { nodeKind = MARKER; level = 0; nextSibling.index = (unsigned int)-1; } NodeKind nodeKind; unsigned int level; union { unsigned int index; Node *ptr; } nextSibling; union { struct { const XMLCh *documentURI; const XMLCh *encoding; } document; struct { union { unsigned int index; Attribute *ptr; } attributes; union { unsigned int index; Namespace *ptr; } namespaces; const XMLCh *prefix; const XMLCh *uri; const XMLCh *localname; const XMLCh *typeURI; const XMLCh *typeName; } element; struct { const XMLCh *target; const XMLCh *value; } other; } data; }; FastXDMDocument(XPath2MemoryManager *mm); FastXDMDocument(unsigned int numNodes, unsigned int numAttributes, unsigned int numNamespaces, XPath2MemoryManager *mm); virtual ~FastXDMDocument(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void endEvent(); Node *getNode(unsigned int i); const Node *getNode(unsigned int i) const; unsigned int getNumNodes() const { return numNodes_; } Attribute *getAttribute(unsigned int i); const Attribute *getAttribute(unsigned int i) const; unsigned int getNumAttributes() const { return numAttributes_; } Namespace *getNamespace(unsigned int i); const Namespace *getNamespace(unsigned int i) const; unsigned int getNumNamespaces() const { return numNamespaces_; } static const Node *getParent(const Node *node); static void toEvents(const Node *node, EventHandler *events, bool preserveNS = true, bool preserveType = true); static void toEvents(const Attribute *attr, EventHandler *events, bool preserveType = true); static void toEvents(const Namespace *ns, EventHandler *events); private: void resizeNodes(); void resizeAttributes(); void resizeNamespaces(); XERCES_CPP_NAMESPACE_QUALIFIER ValueStackOf elementStack_; unsigned int prevNode_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer textBuffer_; bool textToCreate_; Node *nodes_; unsigned int numNodes_; unsigned int maxNodes_; Attribute *attributes_; unsigned int numAttributes_; unsigned int maxAttributes_; Namespace *namespaces_; unsigned int numNamespaces_; unsigned int maxNamespaces_; XPath2MemoryManager *mm_; }; inline const FastXDMDocument::Node *FastXDMDocument::getParent(const Node *node) { unsigned int level = node->level; if(level == 0) return 0; do { --node; } while(node->level >= level); return node; } #endif XQilla-2.3.4/src/fastxdm/FastXDMConfiguration.cpp0000644001725400016040000001336313273140037016604 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include "../schema/FaxppDocumentCacheImpl.hpp" #include "FastXDMSequenceBuilder.hpp" #include "FastXDMUpdateFactory.hpp" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; DocumentCache *FastXDMConfiguration::createDocumentCache(MemoryManager *memMgr) { #ifdef HAVE_FAXPP return new (memMgr) FaxppDocumentCacheImpl(memMgr); #else return new (memMgr) DocumentCacheImpl(memMgr); #endif } SequenceBuilder *FastXDMConfiguration::createSequenceBuilder(const DynamicContext *context) { return new (context->getMemoryManager()) FastXDMSequenceBuilder(context); } ItemFactory *FastXDMConfiguration::createItemFactory(DocumentCache *cache, MemoryManager *memMgr) { return new (memMgr) ItemFactoryImpl(cache, memMgr); } UpdateFactory *FastXDMConfiguration::createUpdateFactory(MemoryManager *memMgr) { return new (memMgr) FastXDMUpdateFactory(); } class XQILLA_API FastXDMURIResolver : public URIResolver { public: FastXDMURIResolver(MemoryManager *mm) : _documentMap(3, /*adopt*/true, mm) {} virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } // Check in the cache Node::Ptr *found = _documentMap.get(systemId); if(found) doc = *found; // Check to see if we can locate and parse the document if(doc.isNull()) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); _documentMap.put((void*)systemId, new Node::Ptr(doc)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveDocument"), errMsg.getRawBuffer()); } } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveDocument"), errMsg.getRawBuffer()); return false; } virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } // Check in the cache Node::Ptr *found = _documentMap.get(systemId); if(found) doc = *found; // Check to see if we can locate and parse the document if(doc.isNull()) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); _documentMap.put((void*)systemId, new Node::Ptr(doc)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveCollection"), errMsg.getRawBuffer()); } } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveCollection"), errMsg.getRawBuffer()); return false; } virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return false; } private: RefHashTableOf _documentMap; }; URIResolver *FastXDMConfiguration::createDefaultURIResolver(MemoryManager *memMgr) { return new (memMgr) FastXDMURIResolver(memMgr); } ASTToXML *FastXDMConfiguration::createASTToXML() { return new ASTToXML(); } XQilla-2.3.4/src/fastxdm/FastXDMUpdateFactory.hpp0000644001725400016040000000436013273140037016551 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMUPDATEFACTORY_HPP #define _FASTXDMUPDATEFACTORY_HPP #include #include class XQILLA_API FastXDMUpdateFactory : public UpdateFactory { public: virtual void applyPut(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context); virtual void applyRename(const PendingUpdate &update, DynamicContext *context); virtual void applyDelete(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context); virtual void completeRevalidation(DynamicContext *context); virtual void completeDeletions(DynamicContext *context); virtual void completeUpdate(DynamicContext *context); }; #endif XQilla-2.3.4/src/fastxdm/FastXDMSequenceBuilder.hpp0000644001725400016040000000437013273140037017057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMSEQUENCEBUILDER_HPP #define _FASTXDMSEQUENCEBUILDER_HPP #include #include #include "FastXDMDocument.hpp" class FastXDMSequenceBuilder : public SequenceBuilder { public: FastXDMSequenceBuilder(const DynamicContext *context); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); virtual Sequence getSequence() const { return seq_; } private: const DynamicContext *context_; unsigned int level_; FastXDMDocument::Ptr document_; Sequence seq_; }; #endif XQilla-2.3.4/src/fastxdm/FastXDMDocument.cpp0000644001725400016040000003551213273140037015553 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMDocument.hpp" #include #include #include #include #include #include #define INITIAL_NODES 1000 #define INITIAL_ATTRIBUTES 500 #define INITIAL_NAMESPACES 5 XERCES_CPP_NAMESPACE_USE; FastXDMDocument::FastXDMDocument(XPath2MemoryManager *mm) : elementStack_(21, mm), prevNode_((unsigned int)-1), textBuffer_(1023, mm), textToCreate_(false), nodes_((Node*)mm->allocate(INITIAL_NODES * sizeof(Node))), numNodes_(0), maxNodes_(INITIAL_NODES), attributes_((Attribute*)mm->allocate(INITIAL_ATTRIBUTES * sizeof(Attribute))), numAttributes_(0), maxAttributes_(INITIAL_ATTRIBUTES), namespaces_((Namespace*)mm->allocate(INITIAL_NAMESPACES * sizeof(Namespace))), numNamespaces_(0), maxNamespaces_(INITIAL_NAMESPACES), mm_(mm) { } FastXDMDocument::FastXDMDocument(unsigned int numNodes, unsigned int numAttributes, unsigned int numNamespaces, XPath2MemoryManager *mm) : elementStack_(21, mm), prevNode_((unsigned int)-1), textBuffer_(1023, mm), textToCreate_(false), nodes_((Node*)mm->allocate(numNodes * sizeof(Node))), numNodes_(0), maxNodes_(numNodes), attributes_((Attribute*)mm->allocate(numAttributes * sizeof(Attribute))), numAttributes_(0), maxAttributes_(numAttributes), namespaces_((Namespace*)mm->allocate(numNamespaces * sizeof(Namespace))), numNamespaces_(0), maxNamespaces_(numNamespaces), mm_(mm) { } FastXDMDocument::~FastXDMDocument() { mm_->deallocate(nodes_); mm_->deallocate(attributes_); mm_->deallocate(namespaces_); } FastXDMDocument::Node *FastXDMDocument::getNode(unsigned int i) { assert(i < numNodes_); return nodes_ + i; } const FastXDMDocument::Node *FastXDMDocument::getNode(unsigned int i) const { assert(i < numNodes_); return nodes_ + i; } const FastXDMDocument::Attribute *FastXDMDocument::getAttribute(unsigned int i) const { assert(i < numAttributes_); return attributes_ + i; } FastXDMDocument::Attribute *FastXDMDocument::getAttribute(unsigned int i) { assert(i < numAttributes_); return attributes_ + i; } FastXDMDocument::Namespace *FastXDMDocument::getNamespace(unsigned int i) { assert(i < numNamespaces_); return namespaces_ + i; } #define checkTextBuffer() \ { \ if(textToCreate_) { \ if(numNodes_ == 0 || !textBuffer_.isEmpty()) { \ if(numNodes_ == maxNodes_) resizeNodes(); \ \ nodes_[numNodes_].setText((unsigned int) elementStack_.size(), mm_->getPooledString(textBuffer_.getRawBuffer())); \ \ if(prevNode_ != (unsigned int)-1) \ getNode(prevNode_)->nextSibling.index = numNodes_; \ \ prevNode_ = numNodes_; \ ++numNodes_; \ } \ \ textBuffer_.reset(); \ textToCreate_ = false; \ } \ } void FastXDMDocument::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { elementStack_.removeAllElements(); textBuffer_.reset(); textToCreate_ = false; if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setDocument(mm_->getPooledString(documentURI), mm_->getPooledString(encoding)); elementStack_.push(numNodes_); prevNode_ = (unsigned int)-1; ++numNodes_; } void FastXDMDocument::endDocumentEvent() { checkTextBuffer(); prevNode_ = elementStack_.pop(); } void FastXDMDocument::endEvent() { checkTextBuffer(); elementStack_.removeAllElements(); // Add the end of nodes marker if(numNodes_ > 0) { if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setMarker(); ++numNodes_; } // Add the end of attributes marker if(numAttributes_ > 0) { if(numAttributes_ == maxAttributes_) resizeAttributes(); attributes_[numAttributes_].setMarker(); ++numAttributes_; } // Add the end of namespaces marker if(numNamespaces_ > 0) { if(numNamespaces_ == maxNamespaces_) resizeNamespaces(); namespaces_[numNamespaces_].setMarker(); ++numNamespaces_; } // Rewrite all the indexes to pointers Node *nend = nodes_ + numNodes_; for(Node *node = nodes_; node != nend; ++node) { if(node->nextSibling.index != (unsigned int)-1) node->nextSibling.ptr = nodes_ + node->nextSibling.index; else node->nextSibling.ptr = 0; if(node->nodeKind == ELEMENT) { if(node->data.element.attributes.index != (unsigned int)-1) node->data.element.attributes.ptr = attributes_ + node->data.element.attributes.index; else node->data.element.attributes.ptr = 0; if(node->data.element.namespaces.index != (unsigned int)-1) node->data.element.namespaces.ptr = namespaces_ + node->data.element.namespaces.index; else node->data.element.namespaces.ptr = 0; } } Attribute *aend = attributes_ + numAttributes_; for(Attribute *attr = attributes_; attr != aend; ++attr) { if(attr->owner.index != (unsigned int)-1) attr->owner.ptr = nodes_ + attr->owner.index; else attr->owner.ptr = 0; } Namespace *nmend = namespaces_ + numNamespaces_; for(Namespace *ns = namespaces_; ns != nmend; ++ns) { if(ns->owner.index != (unsigned int)-1) ns->owner.ptr = nodes_ + ns->owner.index; else ns->owner.ptr = 0; } } void FastXDMDocument::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setElement((unsigned int) elementStack_.size(), mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; elementStack_.push(numNodes_); prevNode_ = (unsigned int)-1; ++numNodes_; } void FastXDMDocument::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { checkTextBuffer(); prevNode_ = elementStack_.pop(); if(typeName) { getNode(prevNode_)->setElementType(typeURI, typeName); } else { getNode(prevNode_)->setElementType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } } void FastXDMDocument::piEvent(const XMLCh *target, const XMLCh *value) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setPI((unsigned int) elementStack_.size(), mm_->getPooledString(target), mm_->getPooledString(value)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; prevNode_ = numNodes_; ++numNodes_; } void FastXDMDocument::textEvent(const XMLCh *value) { textBuffer_.append(value); textToCreate_ = true; } void FastXDMDocument::textEvent(const XMLCh *chars, unsigned int length) { textBuffer_.append(chars, length); textToCreate_ = true; } void FastXDMDocument::commentEvent(const XMLCh *value) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setComment((unsigned int) elementStack_.size(), mm_->getPooledString(value)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; prevNode_ = numNodes_; ++numNodes_; } void FastXDMDocument::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { unsigned int owner = (unsigned int)-1; if(!elementStack_.empty()) { owner = elementStack_.peek(); } if(numAttributes_ == maxAttributes_) resizeAttributes(); if(typeName) { attributes_[numAttributes_].set(owner, mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname), mm_->getPooledString(value), mm_->getPooledString(typeURI), mm_->getPooledString(typeName)); } else { attributes_[numAttributes_].set(owner, mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname), mm_->getPooledString(value), mm_->getPooledString(SchemaSymbols::fgURI_SCHEMAFORSCHEMA), mm_->getPooledString(ATUntypedAtomic::fgDT_UNTYPEDATOMIC)); } if(owner != (unsigned int)-1) { Node *node = getNode(owner); if(node->data.element.attributes.index == (unsigned int)-1) node->data.element.attributes.index = numAttributes_; } ++numAttributes_; } void FastXDMDocument::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { assert(!elementStack_.empty()); if(numNamespaces_ == maxNamespaces_) resizeNamespaces(); namespaces_[numNamespaces_].set(elementStack_.peek(), mm_->getPooledString(prefix), mm_->getPooledString(uri)); Node *node = getNode(elementStack_.peek()); if(node->data.element.namespaces.index == (unsigned int)-1) node->data.element.namespaces.index = numNamespaces_; ++numNamespaces_; } void FastXDMDocument::resizeNodes() { AutoDeallocate newMem(mm_, maxNodes_ * 2 * sizeof(Node)); memcpy(newMem.get(), nodes_, numNodes_ * sizeof(Node)); nodes_ = newMem.swap(nodes_); maxNodes_ *= 2; } void FastXDMDocument::resizeAttributes() { AutoDeallocate newMem(mm_, maxAttributes_ * 2 * sizeof(Attribute)); memcpy(newMem.get(), attributes_, numAttributes_ * sizeof(Attribute)); attributes_ = newMem.swap(attributes_); maxAttributes_ *= 2; } void FastXDMDocument::resizeNamespaces() { AutoDeallocate newMem(mm_, maxNamespaces_ * 2 * sizeof(Namespace)); memcpy(newMem.get(), namespaces_, numNamespaces_ * sizeof(Namespace)); namespaces_ = newMem.swap(namespaces_); maxNamespaces_ *= 2; } static void outputInheritedNamespaces(const FastXDMDocument::Node *node, EventHandler *events) { typedef std::set DoneSet; DoneSet done; while(node != 0 && node->nodeKind == FastXDMDocument::ELEMENT) { if(done.insert(node->data.element.prefix).second && node->data.element.uri != 0) { events->namespaceEvent(node->data.element.prefix, node->data.element.uri); } FastXDMDocument::Attribute *attr = node->data.element.attributes.ptr; while(attr != 0 && attr->owner.ptr == node) { if(attr->uri != 0 && done.insert(attr->prefix).second) { events->namespaceEvent(attr->prefix, attr->uri); } ++attr; } FastXDMDocument::Namespace *ns = node->data.element.namespaces.ptr; while(ns != 0 && ns->owner.ptr == node) { if(done.insert(ns->prefix).second && ns->uri != 0) { events->namespaceEvent(ns->prefix, ns->uri); } ++ns; } node = FastXDMDocument::getParent(node); } } static const FastXDMDocument::Node *toEventsImpl(const FastXDMDocument::Node *node, EventHandler *events, bool outputNamespaces, bool preserveType, bool inheritedNamespaces) { switch(node->nodeKind) { case FastXDMDocument::DOCUMENT: { events->startDocumentEvent(node->data.document.documentURI, node->data.document.encoding); const FastXDMDocument::Node *child = node + 1; while(child->level > node->level) { child = toEventsImpl(child, events, outputNamespaces, preserveType, false); } events->endDocumentEvent(); return child; } case FastXDMDocument::ELEMENT: { events->startElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname); if(node->data.element.attributes.ptr != 0) { const FastXDMDocument::Attribute *attr = node->data.element.attributes.ptr; while(attr->owner.ptr == node) { if(preserveType) events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, attr->typeURI, attr->typeName); else events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); ++attr; } } if(outputNamespaces) { if(inheritedNamespaces) { outputInheritedNamespaces(node, events); } else if(node->data.element.namespaces.ptr != 0) { const FastXDMDocument::Namespace *ns = node->data.element.namespaces.ptr; while(ns->owner.ptr == node) { events->namespaceEvent(ns->prefix, ns->uri); ++ns; } } } const FastXDMDocument::Node *child = node + 1; while(child->level > node->level) { child = toEventsImpl(child, events, outputNamespaces, preserveType, false); } if(preserveType) events->endElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname, node->data.element.typeURI, node->data.element.typeName); else events->endElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); return child; } case FastXDMDocument::TEXT: events->textEvent(node->data.other.value); return node + 1; case FastXDMDocument::COMMENT: events->commentEvent(node->data.other.value); return node + 1; case FastXDMDocument::PROCESSING_INSTRUCTION: events->piEvent(node->data.other.target, node->data.other.value); return node + 1; case FastXDMDocument::MARKER: break; } return node; } void FastXDMDocument::toEvents(const Node *node, EventHandler *events, bool preserveNS, bool preserveType) { toEventsImpl(node, events, preserveNS, preserveType, preserveNS); } void FastXDMDocument::toEvents(const Attribute *attr, EventHandler *events, bool preserveType) { if(preserveType) events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, attr->typeURI, attr->typeName); else events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } void FastXDMDocument::toEvents(const Namespace *ns, EventHandler *events) { events->namespaceEvent(ns->prefix, ns->uri); } XQilla-2.3.4/src/context/0000755001725400016040000000000013273141207012172 500000000000000XQilla-2.3.4/src/context/impl/0000755001725400016040000000000013273141207013133 500000000000000XQilla-2.3.4/src/context/impl/ItemFactoryImpl.cpp0000644001725400016040000005461513273140037016642 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../exceptions/InvalidLexicalSpaceException.hpp" #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ItemFactoryImpl::ItemFactoryImpl(const DocumentCache* dc, MemoryManager* memMgr) : datatypeLookup_(new (memMgr) DatatypeLookup(dc, memMgr)) { } ItemFactoryImpl::ItemFactoryImpl(DatatypeLookup *datatypeLookup) : datatypeLookup_(datatypeLookup) { } ItemFactoryImpl::~ItemFactoryImpl() { delete datatypeLookup_; } AnyAtomicType::AtomicObjectType ItemFactoryImpl::getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const { const DatatypeFactory* dtf = datatypeLookup_->lookupDatatype(typeURI, typeName, isPrimitive); return dtf->getPrimitiveTypeIndex(); } void ItemFactoryImpl::getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const { const DatatypeFactory *dtf = datatypeLookup_->lookupDatatype(type); typeURI = dtf->getPrimitiveTypeURI(); typeName = dtf->getPrimitiveTypeName(); } ATQNameOrDerived::Ptr ItemFactoryImpl::createQName(const XMLCh* uri, const XMLCh *prefix, const XMLCh* name, const DynamicContext* context ) { return createQNameOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, name, context ); } ATDoubleOrDerived::Ptr ItemFactoryImpl::createDouble(const MAPM value, const DynamicContext* context) { return new ATDoubleOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, value, context); } ATDoubleOrDerived::Ptr ItemFactoryImpl::createDouble(const XMLCh* value, const DynamicContext* context) { return (ATDoubleOrDerived*)datatypeLookup_->getDoubleFactory()->createInstance(value, context).get(); } ATFloatOrDerived::Ptr ItemFactoryImpl::createFloat(const MAPM value, const DynamicContext* context) { return new ATFloatOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_FLOAT, value, context); } ATFloatOrDerived::Ptr ItemFactoryImpl::createFloat(const XMLCh* value, const DynamicContext* context) { return (ATFloatOrDerived*)datatypeLookup_->getFloatFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimal(const MAPM value, const DynamicContext* context) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, value, context); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimal(const XMLCh* value, const DynamicContext* context) { return (ATDecimalOrDerived*)datatypeLookup_->getDecimalFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const int value, const DynamicContext* context) { return context->getMemoryManager()->createInteger(value); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const MAPM value, const DynamicContext* context) { if(value.is_integer()) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const XMLCh* value, const DynamicContext* context) { return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(bool value, const DynamicContext* context) { return createBooleanOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(BoolResult value, const DynamicContext* context) { if(value == BoolResult::Null) return 0; return createBooleanOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(const XMLCh* value, const DynamicContext* context) { return (ATBooleanOrDerived*)datatypeLookup_->getBooleanFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createNonNegativeInteger(const MAPM value, const DynamicContext* context) { if(value.is_integer() && value.sign() >= 0) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NONNEGATIVEINTEGER, value, context); } return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NONNEGATIVEINTEGER, value, context); } ATDurationOrDerived::Ptr ItemFactoryImpl::createDayTimeDuration(const XMLCh* value, const DynamicContext* context) { return (ATDurationOrDerived*)datatypeLookup_->getDurationFactory()-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, value, context).get(); } ATDurationOrDerived::Ptr ItemFactoryImpl::createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) { return new ATDurationOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, 0, seconds, context); } ATDurationOrDerived::Ptr ItemFactoryImpl::createYearMonthDuration(const XMLCh* value, const DynamicContext* context) { return (ATDurationOrDerived*)datatypeLookup_->getDurationFactory()-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, value, context).get(); } ATDurationOrDerived::Ptr ItemFactoryImpl::createYearMonthDuration(const MAPM &months, const DynamicContext* context) { return new ATDurationOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, months, 0, context); } ATDateOrDerived::Ptr ItemFactoryImpl::createDate(const XMLCh* value, const DynamicContext* context) { return (ATDateOrDerived*)datatypeLookup_->getDateFactory()->createInstance(value, context).get(); } ATDateTimeOrDerived::Ptr ItemFactoryImpl::createDateTime(const XMLCh* value, const DynamicContext* context) { return (ATDateTimeOrDerived*)datatypeLookup_->getDateTimeFactory()->createInstance(value, context).get(); } ATTimeOrDerived::Ptr ItemFactoryImpl::createTime(const XMLCh* value, const DynamicContext* context) { return (ATTimeOrDerived*)datatypeLookup_->getTimeFactory()->createInstance(value, context).get(); } ATAnyURIOrDerived::Ptr ItemFactoryImpl::createAnyURI(const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->getAnyURIFactory()->createInstance(value, context); } ATStringOrDerived::Ptr ItemFactoryImpl::createString(const XMLCh* value, const DynamicContext* context) { return (ATStringOrDerived*)datatypeLookup_->getStringFactory()->createInstance(value, context).get(); } ////////////////////////// // All creation methods // ////////////////////////// AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->lookupDatatype(typeIndex)->createInstance(value, context); } AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->lookupDatatype(typeIndex)->createInstance(typeURI, typeName, value, context); } AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { bool isPrimitive; const DatatypeFactory* dtf = datatypeLookup_->lookupDatatype(typeURI, typeName, isPrimitive); if(isPrimitive) { return dtf->createInstance(value, context); } else { return dtf->createInstance(typeURI, typeName, value, context); } } /** create a xs:boolean */ ATBooleanOrDerived::Ptr ItemFactoryImpl::createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATBooleanOrDerived*)datatypeLookup_->getBooleanFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:boolean with a bool value */ ATBooleanOrDerived::Ptr ItemFactoryImpl::createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) { // No need to validate return new ATBooleanOrDerivedImpl(typeURI, typeName, value, context); } /** create a xs:date */ ATDateOrDerived::Ptr ItemFactoryImpl::createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDateOrDerived*)datatypeLookup_->getDateFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:dateTime */ ATDateTimeOrDerived::Ptr ItemFactoryImpl::createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDateTimeOrDerived*)datatypeLookup_->getDateTimeFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:decimal */ ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDecimalOrDerived*)datatypeLookup_->getDecimalFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:decimal with a MAPM */ ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATDecimalOrDerived::Ptr retVal = new ATDecimalOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDecimalOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDecimalOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:double */ ATDoubleOrDerived::Ptr ItemFactoryImpl::createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ if(XPath2Utils::equals(value, Numeric::NAN_string)) { value= Numeric::NaN_string; } return (const ATDoubleOrDerived*)datatypeLookup_->getDoubleFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:double with a MAPM */ ATDoubleOrDerived::Ptr ItemFactoryImpl::createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATDoubleOrDerived::Ptr retVal = new ATDoubleOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:float */ ATFloatOrDerived::Ptr ItemFactoryImpl::createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ if(XPath2Utils::equals(value, Numeric::NAN_string)) { value= Numeric::NaN_string; } return (const ATFloatOrDerived::Ptr)datatypeLookup_->getFloatFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:float with a MAPM */ ATFloatOrDerived::Ptr ItemFactoryImpl::createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATFloatOrDerived::Ptr retVal = new ATFloatOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:gDay */ ATGDayOrDerived::Ptr ItemFactoryImpl::createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGDayOrDerived::Ptr)datatypeLookup_->getGDayFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gMonth */ ATGMonthOrDerived::Ptr ItemFactoryImpl::createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGMonthOrDerived::Ptr)datatypeLookup_->getGMonthFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gMonthDay */ ATGMonthDayOrDerived::Ptr ItemFactoryImpl::createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGMonthDayOrDerived::Ptr)datatypeLookup_->getGMonthDayFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gYear */ ATGYearOrDerived::Ptr ItemFactoryImpl::createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGYearOrDerived::Ptr)datatypeLookup_->getGYearFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gYearMonth */ ATGYearMonthOrDerived::Ptr ItemFactoryImpl::createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGYearMonthOrDerived::Ptr)datatypeLookup_->getGYearMonthFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:QName with two parameters */ ATQNameOrDerived::Ptr ItemFactoryImpl::createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) { ATQNameOrDerivedImpl* tmp = new ATQNameOrDerivedImpl(typeURI, typeName, uri, prefix, name, context); const DatatypeFactory* dtf_anyURI = datatypeLookup_->getAnyURIFactory(); if(dtf_anyURI->checkInstance(uri, context->getMemoryManager())) { const DatatypeFactory* dtf_NCName = datatypeLookup_->getStringFactory(); if (dtf_NCName->checkInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NCNAME, name, context->getMemoryManager())) { return tmp; } else { // this call will obviously fail, but it is better for error reporting, // since we actually get the XMLException's error message return (const ATQNameOrDerived::Ptr )dtf_NCName-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NCNAME, name, context); } } else { // this call will obviously fail, but it is better for error reporting, // since we actually get the XMLException's error message return (const ATQNameOrDerived::Ptr )dtf_anyURI->createInstance(uri, context); } } /** create a xs:string */ ATStringOrDerived::Ptr ItemFactoryImpl::createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATStringOrDerived::Ptr)datatypeLookup_->getStringFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:time */ ATTimeOrDerived::Ptr ItemFactoryImpl::createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATTimeOrDerived::Ptr)datatypeLookup_->getTimeFactory()->createInstance(typeURI, typeName, value, context); } /** create an xdt:untypedAtomic */ ATUntypedAtomic::Ptr ItemFactoryImpl::createUntypedAtomic(const XMLCh* value, const DynamicContext* context) { return (const ATUntypedAtomic::Ptr)datatypeLookup_->getUntypedAtomicFactory()->createInstance(value, context); } XQilla-2.3.4/src/context/impl/VarHashEntryImpl.cpp0000644001725400016040000000147013273140037016761 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include XQilla-2.3.4/src/context/impl/XQContextImpl.cpp0000644001725400016040000007135113273140037016305 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; static CodepointCollation g_codepointCollation; XQContextImpl::XQContextImpl(XQillaConfiguration *conf, XQilla::Language language, MemoryManager* memMgr) : _conf(conf), _language(language), _createdWith(memMgr), _internalMM(memMgr), _contextItemType(StaticType::ITEM_TYPE, 0, 1), _varTypeStore(0), _templateNameMap(29, false, &_internalMM), _templates(XQillaAllocator(&_internalMM)), _functionTable(0), _collations(XQillaAllocator(&_internalMM)), _constructionMode(CONSTRUCTION_MODE_PRESERVE), _bPreserveBoundarySpace(false), _revalidationMode(DocumentCache::VALIDATION_LAX), _messageListener(0), _module(0), _varStore(&_defaultVarStore), _globalVarStore(&_defaultVarStore), _defaultVarStore(&_internalMM), _regexStore(0), _resolvers(XQillaAllocator(&_internalMM)), _moduleResolver(0), _exFuncResolver(0), _exFuncs(XQillaAllocator(&_internalMM)), _debugListener(0), _stackFrame(0), _projection(true), _lint(false), _tmpVarCounter(0), _ftCaseOption(StaticContext::CASE_INSENSITIVE) { _memMgr = &_internalMM; //////////////////// // static context // //////////////////// _xpath1Compatibility = false; // according to Formal Semantics, 4.1.1 _ordering = ORDERING_ORDERED; _globalNSResolver = new (&_internalMM) XQillaNSResolverImpl(&_internalMM); _nsResolver = _globalNSResolver; _defaultElementNS = 0; // by default, the default namespace for functions is the XPath2 namespace _functionNS = XQFunction::XMLChFunctionURI; // This is created with the _createdWith memory manager, // since a bug in xerces means we can't use a non-thread-safe // memory manager - jpcs _docCache = conf->createDocumentCache(_createdWith); _itemFactory = conf->createItemFactory(_docCache, &_internalMM); _docCacheOwned = true; if(_varTypeStore==NULL) _varTypeStore=_internalMM.createVariableTypeStore(); if ((language & XQilla::UPDATE) != 0) { _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertUpdateFunctions(&_internalMM); } // insert the default collation addCollation(_internalMM.createCollation(&g_codepointCollation)); setDefaultCollation(g_codepointCollation.getCollationName()); _flworOrderingMode = FLWOR_ORDER_EMPTY_LEAST; // implementation-defined _bInheritNamespaces = true; _bPreserveNamespaces = true; _baseURI=0; //////////////////////// // Evaluation context // //////////////////////// _contextItem = NULL; _contextPosition = 1; _contextSize = 1; time(&_currentTime); // implicit timezone - lazily set in getImplicitTimezone _implicitTimezone = 0; // Set up the default URIResolver _defaultResolver.resolver = conf->createDefaultURIResolver(&_internalMM); if(_defaultResolver.resolver != 0) { _defaultResolver.adopt = true; } } XQContextImpl::~XQContextImpl() { _varTypeStore->clear(); _contextItem = 0; _implicitTimezone = 0; _defaultVarStore.clear(); delete _varTypeStore; if(_docCacheOwned) { delete _itemFactory; delete _docCache; } std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->adopt) { delete i->resolver; } } if(_defaultResolver.adopt) delete _defaultResolver.resolver; std::vector >::iterator end2 = _exFuncs.end(); for(std::vector >::iterator j = _exFuncs.begin(); j != end2; ++j) { delete *j; } } DynamicContext *XQContextImpl::createModuleContext(MemoryManager *memMgr) const { DynamicContext* moduleCtx = new (memMgr) XQContextImpl(_conf, _language, memMgr); // Force the context to use our memory manager moduleCtx->setMemoryManager(getMemoryManager()); // Set the ModuleResolver moduleCtx->setModuleResolver(_moduleResolver); // Set the ExternalFunctionResolver moduleCtx->setExternalFunctionResolver(_exFuncResolver); // Set the MessageListener moduleCtx->setMessageListener(_messageListener); // Set the DebugListener moduleCtx->setDebugListener(_debugListener); // Add our collations for(std::vector >::const_iterator it= _collations.begin(); it!=_collations.end(); ++it) moduleCtx->addCollation(*it); // Add the external functions if(_functionTable) { _functionTable->copyExternalFunctionsTo(moduleCtx); } _conf->populateStaticContext(moduleCtx); return moduleCtx; } DynamicContext *XQContextImpl::createModuleDynamicContext(const DynamicContext* moduleCtx, MemoryManager *memMgr) const { XQDynamicContextImpl* moduleDCtx = new (memMgr) XQDynamicContextImpl(_conf, moduleCtx, (VarStoreImpl*)&_defaultVarStore, memMgr); // Force the context to use our memory manager moduleDCtx->setMemoryManager(getMemoryManager()); // Use the variables from our context moduleDCtx->setGlobalVariableStore(getGlobalVariableStore()); moduleDCtx->setVariableStore(getVariableStore()); // Add our URIResolvers to the module context moduleDCtx->setDefaultURIResolver(_defaultResolver.resolver, /*adopt*/false); std::vector >::const_iterator end = _resolvers.end(); for(std::vector >::const_iterator i = _resolvers.begin(); i != end; ++i) { moduleDCtx->registerURIResolver(i->resolver, /*adopt*/false); } // Set the XMLEntityResolver moduleDCtx->setXMLEntityResolver(_docCache->getXMLEntityResolver()); // Set the MessageListener moduleDCtx->setMessageListener(_messageListener); // Set the DebugListener and StackFrame moduleDCtx->setDebugListener(_debugListener); moduleDCtx->setStackFrame(_stackFrame); _conf->populateDynamicContext(moduleDCtx); return moduleDCtx; } DynamicContext *XQContextImpl::createDynamicContext(MemoryManager *memMgr) const { DynamicContext *result = new (memMgr) XQDynamicContextImpl(_conf, this, 0, memMgr); _conf->populateDynamicContext(result); return result; } DynamicContext *XQContextImpl::createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, MemoryManager *memMgr) const { XQContextImpl *result = new (memMgr) XQContextImpl(_conf, (XQilla::Language)(XQilla::XQUERY | XQilla::EXTENSIONS), memMgr); // Set up the static type of all the in-scope variables VariableTypeStore *store = result->getVariableTypeStore(); XPath2MemoryManager *rmm = result->getMemoryManager(); // For simplicity we'll make them all have type item()* StaticAnalysis *src = new (rmm) StaticAnalysis(rmm); src->getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); std::vector > inScopeVars; variables->getInScopeVariables(inScopeVars); std::vector >::iterator i = inScopeVars.begin(); for(; i != inScopeVars.end(); ++i) { store->declareGlobalVar(i->first, i->second, *src, 0); } // Set up all the in-scope namespaces XQillaNSResolver *newresolver = new (rmm) XQillaNSResolverImpl(rmm, nsResolver); result->_globalNSResolver = newresolver; result->_nsResolver = newresolver; result->_defaultElementNS = defaultElementNS; result->_functionNS = _functionNS; // Set up the functions result->_functionTable = _functionTable; // Set up the schema definitions if(result->_docCacheOwned) { delete result->_itemFactory; delete result->_docCache; } result->_docCache = _docCache; result->_itemFactory = _itemFactory; result->_docCacheOwned = false; // Set up the focus and in-scope variable values result->setContextItem(contextItem); result->setContextPosition(contextPosition); result->setContextSize(contextSize); result->setVariableStore(variables); // TBD regex groups? - jpcs return result; } XQilla::Language XQContextImpl::getLanguage() const { return _language; } void XQContextImpl::setMemoryManager(XPath2MemoryManager* memMgr) { _memMgr = memMgr; } void XQContextImpl::setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { XQillaNSResolverImpl::forbiddenBindingCheck(prefix, uri, 0); _globalNSResolver->addNamespaceBinding(prefix,uri); } void XQContextImpl::setPreserveBoundarySpace(bool value) { _bPreserveBoundarySpace=value; } bool XQContextImpl::getPreserveBoundarySpace() const { return _bPreserveBoundarySpace; } void XQContextImpl::setInheritNamespaces(bool value) { _bInheritNamespaces=value; } bool XQContextImpl::getInheritNamespaces() const { return _bInheritNamespaces; } void XQContextImpl::setPreserveNamespaces(bool value) { _bPreserveNamespaces=value; } bool XQContextImpl::getPreserveNamespaces() const { return _bPreserveNamespaces; } void XQContextImpl::clearDynamicContext() { _nsResolver = _globalNSResolver; _contextItem = 0; _contextSize = 1; _contextPosition = 1; _implicitTimezone = 0; _defaultVarStore.clear(); _varStore = &_defaultVarStore; _globalVarStore = &_defaultVarStore; // if(_defaultResolver.adopt) // delete _defaultResolver.resolver; // _defaultResolver.adopt = false; // _defaultResolver.resolver = 0; // std::vector >::reverse_iterator end = _resolvers.rend(); // for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { // if(i->adopt) { // delete i->resolver; // } // } // _resolvers.clear(); // _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); // if(_defaultResolver.resolver != 0) { // _defaultResolver.adopt = true; // } time(&_currentTime); } const StaticType &XQContextImpl::getContextItemType() const { return _contextItemType; } void XQContextImpl::setContextItemType(const StaticType &st) { _contextItemType = st; } bool XQContextImpl::getXPath1CompatibilityMode() const { return _xpath1Compatibility; } void XQContextImpl::setXPath1CompatibilityMode(bool newMode) { _xpath1Compatibility=newMode; } const XMLCh* XQContextImpl::getDefaultFuncNS() const { return _functionNS; } void XQContextImpl::setDefaultFuncNS(const XMLCh* newNS) { _functionNS=newNS; } const XMLCh* XQContextImpl::getBaseURI() const { return _baseURI; } void XQContextImpl::setBaseURI(const XMLCh* newURI) { _baseURI = _internalMM.getPooledString(newURI); } StaticContext::ConstructionMode XQContextImpl::getConstructionMode() const { return _constructionMode; } void XQContextImpl::setConstructionMode(ConstructionMode newMode) { _constructionMode=newMode; } StaticContext::NodeSetOrdering XQContextImpl::getNodeSetOrdering() const { return _ordering; } void XQContextImpl::setNodeSetOrdering(NodeSetOrdering newOrder) { _ordering=newOrder; } StaticContext::FLWOROrderingMode XQContextImpl::getDefaultFLWOROrderingMode() const { return _flworOrderingMode; } void XQContextImpl::setDefaultFLWOROrderingMode(StaticContext::FLWOROrderingMode newMode) { _flworOrderingMode=newMode; } time_t XQContextImpl::getCurrentTime() const { return _currentTime; } void XQContextImpl::setCurrentTime(time_t newTime) { _currentTime=newTime; } ATDurationOrDerived::Ptr XQContextImpl::getImplicitTimezone() const { if(_implicitTimezone == NULLRCP) { // validate tzone Timezone tzone(ContextUtils::getTimezone()); // c-style the const away since we are in a const method ((XQContextImpl*)this)->_implicitTimezone = tzone.asDayTimeDuration(this); } return _implicitTimezone; } void XQContextImpl::setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) { // validate the timezone -- will trow if invalid Timezone timezone(timezoneAsDuration, this); this->_implicitTimezone = timezoneAsDuration; } void XQContextImpl::setNSResolver(const DOMXPathNSResolver* resolver) { _nsResolver = resolver; } const DOMXPathNSResolver* XQContextImpl::getNSResolver() const { return _nsResolver; } const XMLCh* XQContextImpl::getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const { if(prefix == 0 || *prefix == 0) return 0; const XMLCh* uri = _nsResolver->lookupNamespaceURI(prefix); if((uri == 0 || *uri == 0) && prefix != 0 && *prefix != 0) { const XMLCh* msg = XPath2Utils::concatStrings(X("No namespace for prefix \'"), prefix, X("\' [err:XPST0081]"), getMemoryManager()); XQThrow3(NamespaceLookupException, X("XQContextImpl::getUriBoundToPrefix"), msg, location); } return uri; } const XMLCh* XQContextImpl::getPrefixBoundToUri(const XMLCh* uri) const { return _nsResolver->lookupPrefix(uri); } void XQContextImpl::setContextItem(const Item::Ptr &item) { _contextItem = item; } void XQContextImpl::addTemplate(XQUserFunction *tp) { if(tp->getName() != 0) { if(_templateNameMap.containsKey((void*)tp->getURINameHash())) { // [ERR XTSE0660] It is a static error if a stylesheet contains more than one template with // the same name and the same import precedence, unless it also contains a template with the // same name and higher import precedence. XMLBuffer buf; buf.set(X("Multiple templates have the same expanded QName {")); buf.append(tp->getURI()); buf.append(X("}")); buf.append(tp->getName()); buf.append(X(" [err:XTSE0660].")); XQThrow3(StaticErrorException,X("XQContextImpl::addNamedTemplate"), buf.getRawBuffer(), tp); } _templateNameMap.put((void*)tp->getURINameHash(), tp); } _templates.push_back(tp); } const XQUserFunction *XQContextImpl::lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const { XMLBuffer key; key.set(name); key.append(uri); return _templateNameMap.get(key.getRawBuffer()); } const UserFunctions &XQContextImpl::getTemplateRules() const { return _templates; } void XQContextImpl::addCustomFunction(FuncFactory *func) { if(_functionTable==NULL) _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertFunction(func); } void XQContextImpl::removeCustomFunction(FuncFactory *func) { if(_functionTable != NULL) _functionTable->removeFunction(func); } void XQContextImpl::setContextSize(size_t size) { _contextSize = size; } void XQContextImpl::setContextPosition(size_t pos) { _contextPosition = pos; } Item::Ptr XQContextImpl::getContextItem() const { return _contextItem; } const VariableStore* XQContextImpl::getVariableStore() const { return _varStore; } void XQContextImpl::setVariableStore(const VariableStore *store) { assert(store); _varStore = store; } const VariableStore* XQContextImpl::getGlobalVariableStore() const { return _globalVarStore; } void XQContextImpl::setGlobalVariableStore(const VariableStore *store) { _globalVarStore = store; } void XQContextImpl::setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) { _defaultVarStore.setVar(namespaceURI, name, value); } void XQContextImpl::setExternalVariable(const XMLCh *qname, const Result &value) { const XMLCh *uri = getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname, getMemoryManager()), 0); const XMLCh *name = XPath2NSUtils::getLocalName(qname); _defaultVarStore.setVar(uri, name, value); } VariableTypeStore* XQContextImpl::getVariableTypeStore() { return _varTypeStore; } const RegexGroupStore *XQContextImpl::getRegexGroupStore() const { return _regexStore; } void XQContextImpl::setRegexGroupStore(const RegexGroupStore *store) { _regexStore = store; } size_t XQContextImpl::getContextSize() const { return _contextSize; } size_t XQContextImpl::getContextPosition() const { return _contextPosition; } XPath2MemoryManager* XQContextImpl::getMemoryManager() const { return _memMgr; } const XMLCh* XQContextImpl::getDefaultElementAndTypeNS() const { return _defaultElementNS; } void XQContextImpl::setDefaultElementAndTypeNS(const XMLCh* newNS) { _defaultElementNS = newNS; } void XQContextImpl::addCollation(Collation* collation) { _collations.push_back(collation); } void XQContextImpl::setDefaultCollation(const XMLCh* URI) { _defaultCollation=getMemoryManager()->getPooledString(URI); } Collation* XQContextImpl::getCollation(const XMLCh* URI, const LocationInfo *location) const { if(!XMLUri::isValidURI(false, URI)) { const XMLCh* baseURI=getBaseURI(); if(baseURI && *baseURI) { try { XMLUri base(baseURI, getMemoryManager()); XMLUri full(&base, URI, getMemoryManager()); URI = getMemoryManager()->getPooledString(full.getUriText()); } catch(XMLException &e) { //if can't build, assume it's because there was an invalid base URI, so use the original URI } } } for(std::vector >::const_iterator it= _collations.begin(); it!=_collations.end(); ++it) if(XPath2Utils::equals((*it)->getCollationName(), URI)) return (*it); const XMLCh* msg = XPath2Utils::concatStrings(X("The requested collation ('"), URI, X("') is not defined [err:FOCH0002]"), getMemoryManager()); XQThrow3(ContextException, X("XQContextImpl::getCollation"), msg, location); return NULL; } Collation* XQContextImpl::getDefaultCollation(const LocationInfo *location) const { return getCollation(_defaultCollation, location); } ASTNode *XQContextImpl::lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const { ASTNode* functionImpl = FunctionLookup::lookUpGlobalFunction(uri, name, v, getMemoryManager(), _functionTable); if(functionImpl) { functionImpl->setLocationInfo(location); return functionImpl; } if(v.size() != 1) return 0; // maybe it's not a function, but a datatype try { bool isPrimitive; _itemFactory->getPrimitiveTypeIndex(uri, name, isPrimitive); } catch(TypeNotFoundException&) { // ignore this exception: it means the type has not been found return 0; } if((XPath2Utils::equals(name, XMLUni::fgNotationString) || XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE)) && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return 0; XPath2MemoryManager *mm = getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(uri, name, SequenceType::QUESTION_MARK, mm); seqType->setLocationInfo(location); functionImpl = new (mm) XQCastAs(v[0], seqType, mm); functionImpl->setLocationInfo(location); return functionImpl; } void XQContextImpl::addExternalFunction(const ExternalFunction *func) { if(_functionTable==NULL) _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertExternalFunction(func); } const ExternalFunction *XQContextImpl::lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const { if(_exFuncResolver) { ExternalFunction *result = _exFuncResolver->resolveExternalFunction(uri, name, numArgs, this); if(result != 0) { // Store the ExternalFunction so we can delete it later const_cast(this)->_exFuncs.push_back(result); return result; } } return FunctionLookup::lookUpGlobalExternalFunction(uri, name, numArgs, _functionTable); } void XQContextImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { _docCache->setXMLEntityResolver(handler); } XMLEntityResolver* XQContextImpl::getXMLEntityResolver() const { return _docCache->getXMLEntityResolver(); } void XQContextImpl::registerURIResolver(URIResolver *resolver, bool adopt) { if(resolver != 0) { _resolvers.push_back(ResolverEntry(resolver, adopt)); } } URIResolver *XQContextImpl::getDefaultURIResolver() const { return _defaultResolver.resolver; } void XQContextImpl::setDefaultURIResolver(URIResolver *resolver, bool adopt) { if(_defaultResolver.adopt) { delete _defaultResolver.resolver; } _defaultResolver.resolver = resolver; _defaultResolver.adopt = adopt; } Node::Ptr XQContextImpl::parseDocument(InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection) { try { return _docCache->parseDocument(srcToUse, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } } Sequence XQContextImpl::resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDocument(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDocument(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQContextImpl::resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveCollection(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveCollection(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQContextImpl::resolveDefaultCollection(const QueryPathNode *projection) { Sequence result(getMemoryManager()); std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDefaultCollection(result, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDefaultCollection(result, this, projection); return result; } bool XQContextImpl::putDocument(const Node::Ptr &document, const XMLCh *uri) { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->putDocument(document, uri, this)) return true; } if(_defaultResolver.resolver) return _defaultResolver.resolver->putDocument(document, uri, this); return false; } void XQContextImpl::setModuleResolver(ModuleResolver *resolver) { _moduleResolver=resolver; } ModuleResolver * XQContextImpl::getModuleResolver() const { return _moduleResolver; } VectorOfStrings* XQContextImpl::resolveModuleURI(const XMLCh* uri) const { VectorOfStrings* vect=new (getMemoryManager()) VectorOfStrings(XQillaAllocator(getMemoryManager())); if(_moduleResolver) _moduleResolver->resolveModuleLocation(vect, uri, this); return vect; } void XQContextImpl::setExternalFunctionResolver(ExternalFunctionResolver *resolver) { _exFuncResolver=resolver; } ExternalFunctionResolver *XQContextImpl::getExternalFunctionResolver() const { return _exFuncResolver; } /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ bool XQContextImpl::isTypeOrDerivedFromType(const XMLCh* uri, const XMLCh* typeName, const XMLCh* uriToCheck, const XMLCh* typeNameToCheck) const { return _docCache->isTypeOrDerivedFromType(uri,typeName,uriToCheck,typeNameToCheck); } void XQContextImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location) { _docCache->addSchemaLocation(uri, locations, this, location); } DocumentCache* XQContextImpl::getDocumentCache() const { return _docCache; } void XQContextImpl::setDocumentCache(DocumentCache* docCache) { _docCache = docCache; } SequenceBuilder *XQContextImpl::createSequenceBuilder() const { return _conf->createSequenceBuilder(this); } ItemFactory *XQContextImpl::getItemFactory() const { return _itemFactory; } void XQContextImpl::setItemFactory(ItemFactory *factory) { _itemFactory = factory; } UpdateFactory *XQContextImpl::createUpdateFactory() const { return _conf->createUpdateFactory(const_cast(&_internalMM)); } void XQContextImpl::setRevalidationMode(DocumentCache::ValidationMode mode) { _revalidationMode = mode; } DocumentCache::ValidationMode XQContextImpl::getRevalidationMode() const { return _revalidationMode; } void XQContextImpl::setMessageListener(MessageListener *listener) { _messageListener = listener; } MessageListener *XQContextImpl::getMessageListener() const { return _messageListener; } void XQContextImpl::setDebugListener(DebugListener *listener) { _debugListener = listener; } DebugListener *XQContextImpl::getDebugListener() const { return _debugListener; } void XQContextImpl::setStackFrame(const StackFrame *frame) { _stackFrame = frame; } const StackFrame *XQContextImpl::getStackFrame() const { return _stackFrame; } void XQContextImpl::testInterrupt() const { _conf->testInterrupt(); } const XMLCh *XQContextImpl::allocateTempVarName(const XMLCh *prefix) { static XMLCh default_prefix[] = { 't', 'm', 'p', 0 }; if(prefix == 0) prefix = default_prefix; XMLBuffer buf(20); buf.append('#'); buf.append(prefix); XPath2Utils::numToBuf(_tmpVarCounter, buf); ++_tmpVarCounter; return getMemoryManager()->getPooledString(buf.getRawBuffer()); } XQilla-2.3.4/src/context/impl/VarStoreImpl.cpp0000644001725400016040000001104413273140037016146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; VarStoreImpl::VarStoreImpl(XPath2MemoryManager *mm, const VariableStore *parent) : store_(0), parent_(parent), mm_(mm) { } VarStoreImpl::VarStoreImpl(const VarStoreImpl &other, XPath2MemoryManager *mm) : store_(0), parent_(other.parent_), mm_(mm) { VarEntry *entry = other.store_; while(entry) { store_ = new VarEntry(entry->uri, entry->name, entry->buffer, store_); entry = entry->prev; } } VarStoreImpl::~VarStoreImpl() { clear(); } Result VarStoreImpl::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { VarEntry *entry = store_; while(entry) { if(XPath2Utils::equals(name, entry->name) && XPath2Utils::equals(namespaceURI, entry->uri)) { return entry->buffer.createResult(); } entry = entry->prev; } if(parent_ != 0) return parent_->getVar(namespaceURI, name); return 0; } void VarStoreImpl::getInScopeVariables(vector > &variables) const { VarEntry *entry = store_; while(entry) { variables.push_back(pair(entry->uri, entry->name)); entry = entry->prev; } if(parent_ != 0) parent_->getInScopeVariables(variables); } void VarStoreImpl::setVar(const XMLCh *namespaceURI, const XMLCh *name, const Result &value, unsigned int readCount) { VarEntry *entry = store_; while(entry) { if(XPath2Utils::equals(name, entry->name) && XPath2Utils::equals(namespaceURI, entry->uri)) { entry->buffer = ResultBuffer(value, readCount); return; } entry = entry->prev; } store_ = new VarEntry(mm_->getPooledString(namespaceURI), mm_->getPooledString(name), value, readCount, store_); } void VarStoreImpl::clear() { VarEntry *tmp; while(store_) { tmp = store_; store_ = store_->prev; delete tmp; } } void VarStoreImpl::cacheVariableStore(const StaticAnalysis &src, const VariableStore *toCache) { for(int i = 0; i < StaticAnalysis::HASH_SIZE; ++i) { StaticAnalysis::VarEntry *entry = src.variablesUsed()[i]; while(entry) { store_ = new VarEntry(entry->uri, entry->name, toCache->getVar(entry->uri, entry->name), ResultBufferImpl::UNLIMITED_COUNT, store_); entry = entry->prev; } } if (parent_ == 0) parent_ = toCache; } VarStoreImpl::VarEntry::VarEntry(const XMLCh *u, const XMLCh *n, const Result &r, unsigned int readCount, VarEntry *p) : uri(u), name(n), buffer(r, readCount), prev(p) { } VarStoreImpl::VarEntry::VarEntry(const XMLCh *u, const XMLCh *n, const ResultBuffer &buffer, VarEntry *p) : uri(u), name(n), buffer(buffer), prev(p) { } //////////////////////////////////////////////////////////////////////////////////////////////////// SingleVarStore::SingleVarStore() : uri_(0), name_(0), parent_(0) {} Result SingleVarStore::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, name_) && XPath2Utils::equals(namespaceURI, uri_)) return value; return parent_->getVar(namespaceURI, name); } void SingleVarStore::getInScopeVariables(vector > &variables) const { variables.push_back(pair(uri_, name_)); if(parent_ != 0) parent_->getInScopeVariables(variables); } void SingleVarStore::setAsVariableStore(const XMLCh *namespaceURI, const XMLCh *name, DynamicContext *context) { uri_ = namespaceURI; name_ = name; parent_ = context->getVariableStore(); context->setVariableStore(this); } void SingleVarStore::unsetAsVariableStore(DynamicContext *context) { context->setVariableStore(parent_); } XQilla-2.3.4/src/context/impl/VarTypeStoreImpl.hpp0000644001725400016040000000655013273140037017023 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* VarStoreImpl - Implementation of the variable store class */ #ifndef _VARTYPESTOREIMPL_HPP #define _VARTYPESTOREIMPL_HPP #include #include #include #include #include #include class XPath2MemoryManager; /** implementation of the variable type store. */ class XQILLA_API VarTypeStoreImpl : public VariableTypeStore { public: /** constructor. automatically creates a global store for the global variables. */ VarTypeStoreImpl(XPath2MemoryManager* memMgr); /// destructor ~VarTypeStoreImpl(); /** Clears all variable values and added scopes from the store */ virtual void clear(); /** Adds a new scope to the store. Add a LOCAL_SCOPE scope at the beginning of *procedural* methods, and a LOGICAL_BLOCK_SCOPE scope at the beginning of logical block methods. */ virtual void addLocalScope(); virtual void addLogicalBlockScope(); /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ virtual void removeScope(); /** Declares and/or sets a variable in the global scope. */ virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global); /** Looks up the value of a variable in the current scope. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const; ///Declares a var in the top level scope virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src); /** Looks up the value of a variable in the current scope. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis* getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const; private: struct VarType { VarType(const StaticAnalysis *t, XQGlobalVariable *g) : type(t), global(g) {} const StaticAnalysis *type; XQGlobalVariable *global; }; VariableStoreTemplate _store; }; #endif XQilla-2.3.4/src/context/impl/CodepointCollation.cpp0000644001725400016040000001107413273140037017353 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include CodepointCollation::CodepointCollation() { } static XMLCh codepointName[]= /* http://www.w3.org/2005/xpath-functions/collation/codepoint */ { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chColon, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_3, XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_2, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_5, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /*static*/ const XMLCh* CodepointCollation::getCodepointCollationName() { return codepointName; } const XMLCh* CodepointCollation::getCollationName() const { return getCodepointCollationName(); } int CodepointCollation::compare(const XMLCh* string1, const XMLCh* string2) const { if(string1 == string2) return 0; if(string1 == 0) return *string2 == 0 ? 0 : -1; // string2 == 0 is handled by the first line if(string2 == 0) return *string1 == 0 ? 0 : 1; // string1 == 0 is handled by the first line int diff; while((diff = int(*string1) - int(*string2)) == 0) { // If either has ended, then they both ended, so equal if(*string1 == 0) break; // Move upwards for the next round ++string1; ++string2; } return diff < 0 ? -1 : (diff > 0 ? 1 : 0); } XQilla-2.3.4/src/context/impl/CollationImpl.cpp0000644001725400016040000000352213273140037016327 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include CollationImpl::CollationImpl(XPath2MemoryManager* memMgr, CollationHelper* helper) { _memMgr=memMgr; _helper=helper; } const XMLCh* CollationImpl::getCollationName() const { return _helper->getCollationName(); } int CollationImpl::compare(const XMLCh* const string1, const XMLCh* const string2) const { return _helper->compare(string1,string2); } Sequence CollationImpl::sort(Sequence data, const DynamicContext* context) const { // build a sequence made of strings Sequence stringSeq = Sequence(data.getLength(), context->getMemoryManager()); for(Sequence::iterator it=data.begin(); it!=data.end(); ++it) { const XMLCh *str = (*it)->asString(context); stringSeq.addItem(context->getItemFactory()->createString(str, context).get()); } stringSeq.sortWithCollation(this, context); return stringSeq; } XQilla-2.3.4/src/context/impl/XQDynamicContextImpl.cpp0000644001725400016040000004057213273140037017613 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQDynamicContextImpl::XQDynamicContextImpl(XQillaConfiguration *conf, const StaticContext *staticContext, VarStoreImpl *defaultVarStore, MemoryManager* memMgr) : _conf(conf), _staticContext(staticContext), _createdWith(memMgr), _internalMM(memMgr), _nsResolver(staticContext->getNSResolver()), _defaultCollation(0), _defaultElementNS(staticContext->getDefaultElementAndTypeNS()), _contextItem(0), _contextPosition(1), _contextSize(1), _defaultVarStore(defaultVarStore ? defaultVarStore : new VarStoreImpl(&_internalMM)), _defaultVarStoreOwned(defaultVarStore == 0), _varStore(_defaultVarStore), _globalVarStore(_defaultVarStore), _regexStore(0), _implicitTimezone(0), _resolvers(XQillaAllocator(&_internalMM)), _debugListener(0), _stackFrame(0), // This is created with the _createdWith memory manager, // since a bug in xerces means we can't use a non-thread-safe // memory manager - jpcs _docCache(staticContext->getDocumentCache()->createDerivedCache(_createdWith)), _messageListener(staticContext->getMessageListener()), _projection(staticContext->getProjection()) { time(&_currentTime); _memMgr = &_internalMM; _itemFactory = staticContext->getItemFactory(); _itemFactoryOwned = false; setXMLEntityResolver(staticContext->getXMLEntityResolver()); // Set up the default URIResolver _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); if(_defaultResolver.resolver != 0) { _defaultResolver.adopt = true; } } XQDynamicContextImpl::~XQDynamicContextImpl() { _contextItem = 0; _implicitTimezone = 0; if(_defaultVarStoreOwned) { _defaultVarStore->clear(); delete _defaultVarStore; } if(_itemFactoryOwned) delete _itemFactory; delete _docCache; std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->adopt) { delete i->resolver; } } if(_defaultResolver.adopt) delete _defaultResolver.resolver; } DynamicContext *XQDynamicContextImpl::createModuleContext(MemoryManager *memMgr) const { return _staticContext->createModuleContext(memMgr); } DynamicContext *XQDynamicContextImpl::createModuleDynamicContext(const DynamicContext* moduleCtx, MemoryManager *memMgr) const { XQDynamicContextImpl* moduleDCtx = new (memMgr) XQDynamicContextImpl(_conf, moduleCtx, _defaultVarStore, memMgr); // Force the context to use our memory manager moduleDCtx->setMemoryManager(getMemoryManager()); // Use the variables from our context moduleDCtx->setGlobalVariableStore(getGlobalVariableStore()); moduleDCtx->setVariableStore(getVariableStore()); // Add our URIResolvers to the module context moduleDCtx->setDefaultURIResolver(_defaultResolver.resolver, /*adopt*/false); std::vector >::const_iterator end = _resolvers.end(); for(std::vector >::const_iterator i = _resolvers.begin(); i != end; ++i) { moduleDCtx->registerURIResolver(i->resolver, /*adopt*/false); } // Set the XMLEntityResolver moduleDCtx->setXMLEntityResolver(_docCache->getXMLEntityResolver()); // Set the MessageListener moduleDCtx->setMessageListener(_messageListener); // Set the DebugListener and StackFrame moduleDCtx->setDebugListener(_debugListener); moduleDCtx->setStackFrame(_stackFrame); _conf->populateDynamicContext(moduleDCtx); return moduleDCtx; } DynamicContext *XQDynamicContextImpl::createDynamicContext(MemoryManager *memMgr) const { return _staticContext->createDynamicContext(memMgr); } DynamicContext *XQDynamicContextImpl::createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, MemoryManager *memMgr) const { return _staticContext->createDebugQueryContext(contextItem, contextPosition, contextSize, variables, nsResolver, defaultElementNS, memMgr); } XQillaConfiguration *XQDynamicContextImpl::getConfiguration() const { return _conf; } void XQDynamicContextImpl::setMemoryManager(XPath2MemoryManager* memMgr) { _memMgr = memMgr; } void XQDynamicContextImpl::clearDynamicContext() { _nsResolver = _staticContext->getNSResolver(); _contextItem = 0; _contextSize = 1; _contextPosition = 1; _implicitTimezone = 0; _defaultVarStore->clear(); _varStore = _defaultVarStore; _globalVarStore = _defaultVarStore; // if(_defaultResolver.adopt) // delete _defaultResolver.resolver; // _defaultResolver.adopt = false; // _defaultResolver.resolver = 0; // std::vector >::reverse_iterator end = _resolvers.rend(); // for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { // if(i->adopt) { // delete i->resolver; // } // } // _resolvers.clear(); // _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); // if(_defaultResolver.resolver != 0) { // _defaultResolver.adopt = true; // } time(&_currentTime); } DocumentCache *XQDynamicContextImpl::getDocumentCache() const { return _docCache; } void XQDynamicContextImpl::setDocumentCache(DocumentCache* docCache) { _docCache=docCache; } void XQDynamicContextImpl::setContextItem(const Item::Ptr &item) { _contextItem = item; } void XQDynamicContextImpl::setContextSize(size_t size) { _contextSize = size; } void XQDynamicContextImpl::setContextPosition(size_t pos) { _contextPosition = pos; } Item::Ptr XQDynamicContextImpl::getContextItem() const { return _contextItem; } size_t XQDynamicContextImpl::getContextSize() const { return _contextSize; } size_t XQDynamicContextImpl::getContextPosition() const { return _contextPosition; } const VariableStore* XQDynamicContextImpl::getVariableStore() const { return _varStore; } void XQDynamicContextImpl::setVariableStore(const VariableStore *store) { assert(store); _varStore = store; } const VariableStore* XQDynamicContextImpl::getGlobalVariableStore() const { return _globalVarStore; } void XQDynamicContextImpl::setGlobalVariableStore(const VariableStore *store) { _globalVarStore = store; } void XQDynamicContextImpl::setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) { _defaultVarStore->setVar(namespaceURI, name, value); } void XQDynamicContextImpl::setExternalVariable(const XMLCh *qname, const Result &value) { const XMLCh *uri = getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname, getMemoryManager()), 0); const XMLCh *name = XPath2NSUtils::getLocalName(qname); _defaultVarStore->setVar(uri, name, value); } const RegexGroupStore *XQDynamicContextImpl::getRegexGroupStore() const { return _regexStore; } void XQDynamicContextImpl::setRegexGroupStore(const RegexGroupStore *store) { _regexStore = store; } time_t XQDynamicContextImpl::getCurrentTime() const { return _currentTime; } void XQDynamicContextImpl::setCurrentTime(time_t newTime) { _currentTime=newTime; } ATDurationOrDerived::Ptr XQDynamicContextImpl::getImplicitTimezone() const { if(_implicitTimezone == NULLRCP) { // validate tzone Timezone tzone(ContextUtils::getTimezone()); // c-style the const away since we are in a const method ((XQDynamicContextImpl*)this)->_implicitTimezone = tzone.asDayTimeDuration(this); } return _implicitTimezone; } void XQDynamicContextImpl::setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) { // validate the timezone -- will trow if invalid Timezone timezone(timezoneAsDuration, this); this->_implicitTimezone = timezoneAsDuration; } XPath2MemoryManager* XQDynamicContextImpl::getMemoryManager() const { return _memMgr; } const XMLCh* XQDynamicContextImpl::getDefaultElementAndTypeNS() const { return _defaultElementNS; } void XQDynamicContextImpl::setDefaultElementAndTypeNS(const XMLCh* newNS) { _defaultElementNS = newNS; } void XQDynamicContextImpl::registerURIResolver(URIResolver *resolver, bool adopt) { if(resolver != 0) { _resolvers.push_back(ResolverEntry(resolver, adopt)); } } URIResolver *XQDynamicContextImpl::getDefaultURIResolver() const { return _defaultResolver.resolver; } void XQDynamicContextImpl::setDefaultURIResolver(URIResolver *resolver, bool adopt) { if(_defaultResolver.adopt) { delete _defaultResolver.resolver; } _defaultResolver.resolver = resolver; _defaultResolver.adopt = adopt; } Node::Ptr XQDynamicContextImpl::parseDocument(InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection) { try { return _docCache->parseDocument(srcToUse, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } } Sequence XQDynamicContextImpl::resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDocument(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDocument(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQDynamicContextImpl::resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveCollection(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveCollection(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQDynamicContextImpl::resolveDefaultCollection(const QueryPathNode *projection) { Sequence result(getMemoryManager()); std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDefaultCollection(result, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDefaultCollection(result, this, projection); return result; } bool XQDynamicContextImpl::putDocument(const Node::Ptr &document, const XMLCh *uri) { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->putDocument(document, uri, this)) return true; } if(_defaultResolver.resolver) return _defaultResolver.resolver->putDocument(document, uri, this); return false; } VectorOfStrings* XQDynamicContextImpl::resolveModuleURI(const XMLCh* uri) const { return _staticContext->resolveModuleURI(uri); } SequenceBuilder *XQDynamicContextImpl::createSequenceBuilder() const { return _conf->createSequenceBuilder(this); } ItemFactory *XQDynamicContextImpl::getItemFactory() const { return _itemFactory; } void XQDynamicContextImpl::setItemFactory(ItemFactory *factory) { _itemFactory = factory; _itemFactoryOwned = true; } UpdateFactory *XQDynamicContextImpl::createUpdateFactory() const { return _conf->createUpdateFactory(const_cast(&_internalMM)); } void XQDynamicContextImpl::setNSResolver(const DOMXPathNSResolver* resolver) { _nsResolver = resolver; } const DOMXPathNSResolver* XQDynamicContextImpl::getNSResolver() const { return _nsResolver; } const XMLCh* XQDynamicContextImpl::getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const { if(prefix == 0 || *prefix == 0) return 0; const XMLCh* uri = _nsResolver->lookupNamespaceURI(prefix); if((uri == 0 || *uri == 0) && prefix != 0 && *prefix != 0) { const XMLCh* msg = XPath2Utils::concatStrings(X("No namespace for prefix \'"), prefix, X("\' [err:XPST0081]"), getMemoryManager()); XQThrow3(NamespaceLookupException, X("XQDynamicContextImpl::getUriBoundToPrefix"), msg, location); } return uri; } const XMLCh* XQDynamicContextImpl::getPrefixBoundToUri(const XMLCh* uri) const { return _nsResolver->lookupPrefix(uri); } void XQDynamicContextImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { _docCache->setXMLEntityResolver(handler); } XMLEntityResolver* XQDynamicContextImpl::getXMLEntityResolver() const { return _docCache->getXMLEntityResolver(); } void XQDynamicContextImpl::setDefaultCollation(const XMLCh* URI) { _defaultCollation=getMemoryManager()->getPooledString(URI); } Collation* XQDynamicContextImpl::getDefaultCollation(const LocationInfo *location) const { if(_defaultCollation == 0) { return _staticContext->getDefaultCollation(location); } else { return getCollation(_defaultCollation, location); } } void XQDynamicContextImpl::setMessageListener(MessageListener *listener) { _messageListener = listener; } MessageListener *XQDynamicContextImpl::getMessageListener() const { return _messageListener; } void XQDynamicContextImpl::setDebugListener(DebugListener *listener) { _debugListener = listener; } DebugListener *XQDynamicContextImpl::getDebugListener() const { return _debugListener; } void XQDynamicContextImpl::setStackFrame(const StackFrame *frame) { _stackFrame = frame; } const StackFrame *XQDynamicContextImpl::getStackFrame() const { return _stackFrame; } void XQDynamicContextImpl::testInterrupt() const { _conf->testInterrupt(); } XQilla-2.3.4/src/context/impl/VarTypeStoreImpl.cpp0000644001725400016040000000557113273140037017020 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include "VarTypeStoreImpl.hpp" #include #include #include #include VarTypeStoreImpl::VarTypeStoreImpl(XPath2MemoryManager* memMgr) : _store(memMgr) { } VarTypeStoreImpl::~VarTypeStoreImpl() { /* nothing to do */ } void VarTypeStoreImpl::clear() { _store.clear(); } void VarTypeStoreImpl::addLocalScope() { _store.addScope(Scope::LOCAL_SCOPE); } void VarTypeStoreImpl::addLogicalBlockScope() { _store.addScope(Scope::LOGICAL_BLOCK_SCOPE); } void VarTypeStoreImpl::removeScope() { _store.removeScope(); } void VarTypeStoreImpl::declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global) { _store.setGlobalVar(namespaceURI, name, VarType(&src, global)); } void VarTypeStoreImpl::declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src) { _store.declareVar(namespaceURI, name, VarType(&src, 0)); } const StaticAnalysis *VarTypeStoreImpl::getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global) const { VarHashEntry* result = _store.getVar(namespaceURI, name); if(result) { if(global) *global = result->getValue().global; return result->getValue().type; } if(global) *global = 0; return 0; } const StaticAnalysis* VarTypeStoreImpl::getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global) const { VarHashEntry* result = _store.getGlobalVar(namespaceURI, name); if(result) { if(global) *global = result->getValue().global; return result->getValue().type; } if(global) *global = 0; return 0; } XQilla-2.3.4/src/context/UpdateFactory.cpp0000644001725400016040000004525613273140037015404 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; class pucompare { public: pucompare(const DynamicContext *context) : context_(context) {} bool operator()(const PendingUpdate *first, const PendingUpdate *second) const { return first->getTarget()->uniqueLessThan(second->getTarget(), context_); } private: const DynamicContext *context_; }; typedef set PendingUpdateSet; //////////////////////////////////////////////////////////////////////////////////////////////////// class nodecompare { public: nodecompare(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) const { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; class AttrName { public: AttrName(const ATQNameOrDerived::Ptr &name, const LocationInfo *info = 0) : name_(name), info_(info) {} const XMLCh *getURI() const { return name_->getURI(); } const XMLCh *getPrefix() const { return name_->getPrefix(); } const XMLCh *getName() const { return name_->getName(); } bool operator<(const AttrName &o) const { return name_->compare(o.name_, 0) < 0; } ATQNameOrDerived::Ptr name_; const LocationInfo *info_; }; typedef set AttrNameSet; class AttrNamespace { public: AttrNamespace(const XMLCh *prefix, const XMLCh *uri = 0, const LocationInfo *info = 0) : prefix_(prefix), uri_(uri), info_(info) {} bool operator<(const AttrNamespace &o) const { return XPath2Utils::compare(prefix_, o.prefix_) < 0; } const XMLCh *prefix_; const XMLCh *uri_; const LocationInfo *info_; }; typedef set AttrNamespaceSet; class AttrMapValue { public: void addAttr(const ATQNameOrDerived::Ptr &name, DynamicContext *context, const LocationInfo *loc) { MessageListener *mlistener = context->getMessageListener(); // Add the attribute name, and check if it already existed pair result = names.insert(AttrName(name, loc)); if(!result.second) { if(result.first->info_ && mlistener) { mlistener->warning(X("In the context of this expression"), result.first->info_); } XMLBuffer buf; buf.append(X("Attribute {")); buf.append(name->getURI()); buf.append(X("}")); buf.append(name->getName()); buf.append(X(" already exists [err:XUDY0021]")); XQThrow3(DynamicErrorException, X("AttrMapValue::addAttr"), buf.getRawBuffer(), loc); } } void removeAttr(const ATQNameOrDerived::Ptr &name) { names.erase(name); } void addNamespace(const ATQNameOrDerived::Ptr &name, DynamicContext *context, const LocationInfo *loc) { MessageListener *mlistener = context->getMessageListener(); // Add the namespace binding, and check if it is already mapped to a different URI pair result = namespaces.insert(AttrNamespace(name->getPrefix(), name->getURI(), loc)); if(!result.second && !XPath2Utils::equals(result.first->uri_, name->getURI())) { if(result.first->info_ && mlistener) { mlistener->warning(X("In the context of this expression"), result.first->info_); } XMLBuffer buf; buf.append(X("Implied namespace binding for the attribute (\"")); buf.append(name->getPrefix()); buf.append(X("\" -> \"")); buf.append(name->getURI()); buf.append(X("\") conflicts with those already existing on the target element [err:XUDY0024]")); XQThrow3(DynamicErrorException, X("AttrMapValue::addNamespace"), buf.getRawBuffer(), loc); } } AttrNameSet names; AttrNamespaceSet namespaces; }; class AttrMap : public map { public: AttrMap(const DynamicContext *context) : map(nodecompare(context)) {} AttrMapValue &get(const Node::Ptr &node, DynamicContext *context) { iterator found = find(node); if(found == end()) { AttrMapValue &value = insert(value_type(node, AttrMapValue())).first->second; // Add the existing attributes Result attrs = node->dmAttributes(context, 0); Node::Ptr tmp; while((tmp = (Node*)attrs->next(context).get()).notNull()) { value.names.insert(tmp->dmNodeName(context)); } // Add the existing namespace bindings Result namespaces = node->dmNamespaceNodes(context, 0); while((tmp = (Node*)namespaces->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = tmp->dmNodeName(context); value.namespaces.insert(AttrNamespace(name.isNull() ? 0 : name->getName(), tmp->dmStringValue(context))); } return value; } return found->second; } }; //////////////////////////////////////////////////////////////////////////////////////////////////// void UpdateFactory::applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) { PendingUpdateList::const_iterator i; MessageListener *mlistener = context->getMessageListener(); valMode_ = valMode; // 1. Checks the update primitives on $pul for compatibility. Raises a dynamic error if any of the following conditions are detected: // a. Two or more upd:rename primitives on the merged list have the same target node [err:XUDY0015]. // b. Two or more upd:replaceNode primitives on the merged list have the same target node [err:XUDY0016]. // c. Two or more upd:replaceValue primitives on the merged list have the same target node [err:XUDY0017]. // d. Two or more upd:replaceElementContent primitives on $pul have the same target node [err:XUDY0017]. { PendingUpdateSet replaceNodeSet = PendingUpdateSet(pucompare(context)); PendingUpdateSet replaceValueSet = PendingUpdateSet(pucompare(context)); PendingUpdateSet renameSet = PendingUpdateSet(pucompare(context)); for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_VALUE: { pair res = replaceValueSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two replace value expressions have the same target node [err:XUDY0017]"), &(*i)); } break; } case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: { pair res = replaceNodeSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two replace expressions have the same target node [err:XUDY0016]"), &(*i)); } break; } case PendingUpdate::RENAME: { pair res = renameSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two rename expressions have the same target node [err:XUDY0015]"), &(*i)); } break; } case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::PUDELETE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } } // Perform some checks on any attribute and namespace binding updates. Check for: // 1. Attribute name clashes on the original node, and from other updates // 2. Implied namespace binding clashes on the original node, and from other updates { AttrMap attrCheck(context); for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_ATTRIBUTES: { AttrMapValue &value = attrCheck.get(i->getTarget(), context); Result children = i->getValue(); Node::Ptr node; while((node = (Node*)children->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = node->dmNodeName(context); // Check if the attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } break; } case PendingUpdate::RENAME: { ATQNameOrDerived *name = (ATQNameOrDerived*)i->getValue().first().get(); if(i->getTarget()->dmNodeKind() == Node::element_string) { AttrMapValue &value = attrCheck.get(i->getTarget(), context); value.addNamespace(name, context, &(*i)); } else if(i->getTarget()->dmNodeKind() == Node::attribute_string) { Node::Ptr parentNode = i->getTarget()->dmParent(context); if(parentNode.notNull()) { AttrMapValue &value = attrCheck.get(parentNode, context); value.removeAttr(i->getTarget()->dmNodeName(context)); // Check if the new attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } } break; } default: break; } } for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ATTRIBUTE: { Node::Ptr parentNode = i->getTarget()->dmParent(context); AttrMapValue &value = attrCheck.get(parentNode, context); value.removeAttr(i->getTarget()->dmNodeName(context)); Result children = i->getValue(); Node::Ptr node; while((node = (Node*)children->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = node->dmNodeName(context); // Check if the attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } break; } default: break; } } } // Call checkUpdates to allow implementations to perform their own checks checkUpdates(pul, context, valMode); // We apply PUT first, to catch the duplicate puts properly for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::PUT: applyPut(*i, context); break; case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } # // 2. The semantics of all the update primitives on $pul are made effective, in the following order: // a. First, all upd:insertInto, upd:insertAttributes, upd:replaceValue, and upd:rename primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_INTO: applyInsertInto(*i, context); break; case PendingUpdate::INSERT_ATTRIBUTES: applyInsertAttributes(*i, context); break; case PendingUpdate::REPLACE_VALUE: applyReplaceValue(*i, context); break; case PendingUpdate::RENAME: applyRename(*i, context); break; case PendingUpdate::PUDELETE: case PendingUpdate::PUT: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } // b. Next, all upd:insertBefore, upd:insertAfter, upd:insertIntoAsFirst, and upd:insertIntoAsLast primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_BEFORE: applyInsertBefore(*i, context); break; case PendingUpdate::INSERT_AFTER: applyInsertAfter(*i, context); break; case PendingUpdate::INSERT_INTO_AS_FIRST: applyInsertAsFirst(*i, context); break; case PendingUpdate::INSERT_INTO_AS_LAST: applyInsertAsLast(*i, context); break; case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: break; } } // c. Next, all upd:replaceNode primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_NODE: applyReplaceNode(*i, context); break; case PendingUpdate::REPLACE_ATTRIBUTE: applyReplaceAttribute(*i, context); break; case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: break; } } // d. Next, all upd:replaceElementContent primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ELEMENT_CONTENT: applyReplaceElementContent(*i, context); break; case PendingUpdate::REPLACE_NODE: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: break; } } // e. Finally, all upd:delete primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::PUDELETE: applyDelete(*i, context); break; case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUT: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } // 3. If, as a net result of the above steps, the children property of some node contains adjacent text nodes, these adjacent text // nodes are merged into a single text node. The string-value of the resulting text node is the concatenated string-values of the // adjacent text nodes, with no intervening space added. The node identity of the resulting text node is implementation-dependent. // * Handled in the called methods // 4. If, as a net result of the above steps, the children property of some node contains an empty text node, that empty text node is // deleted from the children property. // * Handled in the called methods // 5. For each document or element node $top that was marked for revalidation by one of the earlier steps, upd:revalidate($top) is // invoked. // 6. If the resulting XDM instance violates any constraint specified in [XQuery/XPath Data Model (XDM)], a dynamic error is raised // [err:XUDY0021]. // // Note: // For example, a data model constraint violation might occur if multiple attributes with the same parent have the same qualified // name (see Section 6.2.1 OverviewDM.) // 7. The upd:applyUpdates operation is atomic with respect to the data model. In other words, if upd:applyUpdates terminates // normally, the resulting XDM instance reflects the result of all update primitives; but if upd:applyUpdates raises an error, the // resulting XDM instance reflects no changes. Atomicity is guaranteed only with respect to operations on XDM instances, and only // with respect to error conditions specified in this document. // // Note: // The results of implementation-dependent error conditions such as exceeding resource limits are beyond the scope of this // specification. // 8. Propagation of XDM changes to an underlying persistent store is beyond the scope of this specification. For example, the effect // on persistent storage of deleting a node that has no parent is beyond the scope of this specification. completeUpdate(context); } XQilla-2.3.4/src/yajl/0000755001725400016040000000000013273141207011445 500000000000000XQilla-2.3.4/src/yajl/yajl_lex.c0000644001725400016040000005471013273140037013347 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_lex.h" #include "yajl_buf.h" #include #include #include #include #ifdef YAJL_LEXER_DEBUG static const char * tokToStr(yajl_tok tok) { switch (tok) { case yajl_tok_bool: return "bool"; case yajl_tok_colon: return "colon"; case yajl_tok_comma: return "comma"; case yajl_tok_eof: return "eof"; case yajl_tok_error: return "error"; case yajl_tok_left_brace: return "brace"; case yajl_tok_left_bracket: return "bracket"; case yajl_tok_null: return "null"; case yajl_tok_integer: return "integer"; case yajl_tok_double: return "double"; case yajl_tok_right_brace: return "brace"; case yajl_tok_right_bracket: return "bracket"; case yajl_tok_string: return "string"; case yajl_tok_string_with_escapes: return "string_with_escapes"; } return "unknown"; } #endif /* Impact of the stream parsing feature on the lexer: * * YAJL support stream parsing. That is, the ability to parse the first * bits of a chunk of JSON before the last bits are available (still on * the network or disk). This makes the lexer more complex. The * responsibility of the lexer is to handle transparently the case where * a chunk boundary falls in the middle of a token. This is * accomplished is via a buffer and a character reading abstraction. * * Overview of implementation * * When we lex to end of input string before end of token is hit, we * copy all of the input text composing the token into our lexBuf. * * Every time we read a character, we do so through the readChar function. * readChar's responsibility is to handle pulling all chars from the buffer * before pulling chars from input text */ struct yajl_lexer_t { /* the overal line and char offset into the data */ unsigned int lineOff; unsigned int charOff; /* error */ yajl_lex_error error; /* a input buffer to handle the case where a token is spread over * multiple chunks */ yajl_buf buf; /* in the case where we have data in the lexBuf, bufOff holds * the current offset into the lexBuf. */ unsigned int bufOff; /* are we using the lex buf? */ unsigned int bufInUse; /* shall we allow comments? */ unsigned int allowComments; }; static unsigned char readChar(yajl_lexer lxr, const unsigned char * txt, unsigned int *off) { if (lxr->bufInUse && yajl_buf_len(lxr->buf) && lxr->bufOff < yajl_buf_len(lxr->buf)) { return *((unsigned char *) yajl_buf_data(lxr->buf) + (lxr->bufOff)++); } return txt[(*off)++]; } static void unreadChar(yajl_lexer lxr, unsigned int *off) { if (*off > 0) (*off)--; else (lxr->bufOff)--; } yajl_lexer yajl_lex_alloc(unsigned int allowComments) { yajl_lexer lxr = (yajl_lexer) calloc(1, sizeof(struct yajl_lexer_t)); lxr->buf = yajl_buf_alloc(); lxr->allowComments = allowComments; return lxr; } void yajl_lex_free(yajl_lexer lxr) { yajl_buf_free(lxr->buf); free(lxr); return; } /* a lookup table which lets us quickly determine three things: * VEC - valid escaped conrol char * IJC - invalid json char * VHC - valid hex char * note. the solidus '/' may be escaped or not. * note. the */ #define VEC 1 #define IJC 2 #define VHC 4 const static char charLookupTable[256] = { /*00*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*08*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*10*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*18*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*20*/ 0 , 0 , VEC|IJC, 0 , 0 , 0 , 0 , 0 , /*28*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , VEC , /*30*/ VHC , VHC , VHC , VHC , VHC , VHC , VHC , VHC , /*38*/ VHC , VHC , 0 , 0 , 0 , 0 , 0 , 0 , /*40*/ 0 , VHC , VHC , VHC , VHC , VHC , VHC , 0 , /*48*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /*50*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /*58*/ 0 , 0 , 0 , 0 , VEC|IJC, 0 , 0 , 0 , /*60*/ 0 , VHC , VEC|VHC, VHC , VHC , VHC , VEC|VHC, 0 , /*68*/ 0 , 0 , 0 , 0 , 0 , 0 , VEC , 0 , /*70*/ 0 , 0 , VEC , 0 , VEC , 0 , 0 , 0 , /*78*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /* include these so we don't have to always check the range of the char */ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }; /* lex a string. input is the lexer, pointer to beginning of * json text, and start of string (offset). * a token is returned which has the following meanings: * yajl_tok_string: lex of string was successful. offset points to * terminating '"'. * yajl_tok_eof: end of text was encountered before we could complete * the lex. * yajl_tok_error: embedded in the string were unallowable chars. offset * points to the offending char */ #define STR_CHECK_EOF \ if (*offset >= jsonTextLen) { \ tok = yajl_tok_eof; \ break; \ } static yajl_tok yajl_lex_string(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { yajl_tok tok = yajl_tok_error; int hasEscapes = 0; for (;;) { unsigned char curChar; STR_CHECK_EOF; curChar = readChar(lexer, jsonText, offset); /* quote terminates */ if (curChar == '"') { tok = yajl_tok_string; break; } /* backslash escapes a set of control chars, */ else if (curChar == '\\') { hasEscapes = 1; STR_CHECK_EOF; /* special case \u */ curChar = readChar(lexer, jsonText, offset); if (curChar == 'u') { unsigned int i = 0; for (i=0;i<4;i++) { STR_CHECK_EOF; curChar = readChar(lexer, jsonText, offset); if (!(charLookupTable[curChar] & VHC)) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_hex_char; goto finish_string_lex; } } } else if (!(charLookupTable[curChar] & VEC)) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_escaped_char; goto finish_string_lex; } } /* check if it's a valid json char */ else if (charLookupTable[curChar] & IJC) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_json_char; goto finish_string_lex; } /* accept it, and move on */ } finish_string_lex: /* tell our buddy, the parser, wether he needs to process this string * again */ if (hasEscapes && tok == yajl_tok_string) { tok = yajl_tok_string_with_escapes; } return tok; } #define RETURN_IF_EOF if (*offset >= jsonTextLen) return yajl_tok_eof; static yajl_tok yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { /** XXX: numbers are the only entities in json that we must lex * _beyond_ in order to know that they are complete. There * is an ambiguous case for integers at EOF. */ unsigned char c; yajl_tok tok = yajl_tok_integer; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* optional leading minus */ if (c == '-') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } /* a single zero, or a series of integers */ if (c == '0') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } else if (c >= '1' && c <= '9') { do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c >= '0' && c <= '9'); } else { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_minus; return yajl_tok_error; } /* optional fraction (indicates this is floating point) */ if (c == '.') { int numRd = 0; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); while (c >= '0' && c <= '9') { numRd++; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } if (!numRd) { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_decimal; return yajl_tok_error; } tok = yajl_tok_double; } /* optional exponent (indicates this is floating point) */ if (c == 'e' || c == 'E') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* optional sign */ if (c == '+' || c == '-') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } if (c >= '1' && c <= '9') { do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c >= '0' && c <= '9'); } else { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_exponent; return yajl_tok_error; } tok = yajl_tok_double; } /* we always go "one too far" */ unreadChar(lexer, offset); return tok; } static yajl_tok yajl_lex_comment(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { unsigned char c; yajl_tok tok = yajl_tok_comment; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* either slash or star expected */ if (c == '/') { /* now we throw away until end of line */ do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c != '\n'); } else if (c == '*') { /* now we throw away until end of comment */ for (;;) { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); if (c == '*') { c = readChar(lexer, jsonText, offset); if (c == '/') { break; } else { unreadChar(lexer, offset); } } } } else { lexer->error = yajl_lex_invalid_char; tok = yajl_tok_error; } return tok; } yajl_tok yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * context, const unsigned char ** outBuf, unsigned int * outLen) { yajl_tok tok = yajl_tok_error; unsigned char c; unsigned int startCtx = *context; *outBuf = NULL; *outLen = 0; for (;;) { assert(*context <= jsonTextLen); if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); switch (c) { case '{': tok = yajl_tok_left_bracket; goto lexed; case '}': tok = yajl_tok_right_bracket; goto lexed; case '[': tok = yajl_tok_left_brace; goto lexed; case ']': tok = yajl_tok_right_brace; goto lexed; case ',': tok = yajl_tok_comma; goto lexed; case ':': tok = yajl_tok_colon; goto lexed; case '\t': case '\n': case '\v': case '\f': case '\r': case ' ': startCtx++; break; case 't': { const char * want = "rue"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_bool; goto lexed; } case 'f': { const char * want = "alse"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_bool; goto lexed; } case 'n': { const char * want = "ull"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_null; goto lexed; } case '"': { tok = yajl_lex_string(lexer, (unsigned char *) jsonText, jsonTextLen, context); goto lexed; } case '-': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { /* integer parsing wants to start from the beginning */ unreadChar(lexer, context); tok = yajl_lex_number(lexer, (unsigned char *) jsonText, jsonTextLen, context); goto lexed; } case '/': /* hey, look, a probable comment! If comments are disabled * it's an error. */ if (!lexer->allowComments) { unreadChar(lexer, context); lexer->error = yajl_lex_unallowed_comment; tok = yajl_tok_error; goto lexed; } /* if comments are enabled, then we should try to lex * the thing. possible outcomes are * - successful lex (tok_comment, which means continue), * - malformed comment opening (slash not followed by * '*' or '/') (tok_error) * - eof hit. (tok_eof) */ tok = yajl_lex_comment(lexer, (unsigned char *) jsonText, jsonTextLen, context); if (tok == yajl_tok_comment) { /* "error" is silly, but that's the initial * state of tok. guilty until proven innocent. */ tok = yajl_tok_error; yajl_buf_clear(lexer->buf); lexer->bufInUse = 0; startCtx = *context; break; } /* hit error or eof, bail */ goto lexed; default: lexer->error = yajl_lex_invalid_char; tok = yajl_tok_error; goto lexed; } } lexed: /* need to append to buffer if the buffer is in use or * if it's an EOF token */ if (tok == yajl_tok_eof || lexer->bufInUse) { if (!lexer->bufInUse) yajl_buf_clear(lexer->buf); lexer->bufInUse = 1; yajl_buf_append(lexer->buf, jsonText + startCtx, *context - startCtx); lexer->bufOff = 0; if (tok != yajl_tok_eof) { *outBuf = yajl_buf_data(lexer->buf); *outLen = yajl_buf_len(lexer->buf); lexer->bufInUse = 0; } } else if (tok != yajl_tok_error) { *outBuf = jsonText + startCtx; *outLen = *context - startCtx; } /* special case for strings. skip the quotes. */ if (tok == yajl_tok_string || tok == yajl_tok_string_with_escapes) { assert(*outLen >= 2); (*outBuf)++; *outLen -= 2; } #ifdef YAJL_LEXER_DEBUG if (tok == yajl_tok_error) { printf("lexical error: %s\n", yajl_lex_error_to_string(yajl_lex_get_error(lexer))); } else if (tok == yajl_tok_eof) { printf("EOF hit\n"); } else { printf("lexed %s: '", tokToStr(tok)); fwrite(*outBuf, 1, *outLen, stdout); printf("'\n"); } #endif return tok; } const char * yajl_lex_error_to_string(yajl_lex_error error) { switch (error) { case yajl_lex_e_ok: return "ok, no error"; case yajl_lex_string_invalid_escaped_char: return "inside a string, '\\' occurs before a character " "which it may not."; case yajl_lex_string_invalid_json_char: return "invalid character inside string."; case yajl_lex_string_invalid_hex_char: return "invalid (non-hex) character occurs after '\\u' inside " "string."; case yajl_lex_invalid_char: return "invalid char in json text."; case yajl_lex_invalid_string: return "invalid string in json text."; case yajl_lex_missing_integer_after_exponent: return "malformed number, a digit is required after the exponent."; case yajl_lex_missing_integer_after_decimal: return "malformed number, a digit is required after the " "decimal point."; case yajl_lex_missing_integer_after_minus: return "malformed number, a digit is required after the " "minus sign."; case yajl_lex_unallowed_comment: return "probable comment found in input text, comments are " "not enabled."; } return "unknown error code"; } /** allows access to more specific information about the lexical * error when yajl_lex_lex returns yajl_tok_error. */ yajl_lex_error yajl_lex_get_error(yajl_lexer lexer) { if (lexer == NULL) return (yajl_lex_error) -1; return lexer->error; } unsigned int yajl_lex_current_line(yajl_lexer lexer) { return lexer->lineOff; } unsigned int yajl_lex_current_char(yajl_lexer lexer) { return lexer->charOff; } yajl_tok yajl_lex_peek(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int offset) { const unsigned char * outBuf; unsigned int outLen; unsigned int bufLen = yajl_buf_len(lexer->buf); unsigned int bufOff = lexer->bufOff; unsigned int bufInUse = lexer->bufInUse; yajl_tok tok; tok = yajl_lex_lex(lexer, jsonText, jsonTextLen, &offset, &outBuf, &outLen); lexer->bufOff = bufOff; lexer->bufInUse = bufInUse; yajl_buf_truncate(lexer->buf, bufLen); return tok; } XQilla-2.3.4/src/yajl/yajl_encode.c0000644001725400016040000001455613273140037014020 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_encode.h" #include #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) static void CharToHex(unsigned char c, char * hexBuf) { const char * hexchar = "0123456789ABCDE"; hexBuf[0] = hexchar[c >> 4]; hexBuf[1] = hexchar[c & 0x0F]; } void yajl_string_encode(yajl_buf buf, const unsigned char * str, unsigned int len) { unsigned int beg = 0; unsigned int end = 0; char hexBuf[7]; hexBuf[0] = '\\'; hexBuf[1] = 'u'; hexBuf[2] = '0'; hexBuf[3] = '0'; hexBuf[6] = 0; while (end < len) { char * escaped = NULL; switch (str[end]) { case '\r': escaped = "\\r"; break; case '\n': escaped = "\\n"; break; case '\\': escaped = "\\\\"; break; /* case '/': escaped = "\\/"; break; */ case '"': escaped = "\\\""; break; case '\f': escaped = "\\f"; break; case '\b': escaped = "\\b"; break; case '\t': escaped = "\\t"; break; default: if ((unsigned char) str[end] < 32) { CharToHex(str[end], hexBuf + 4); escaped = hexBuf; } break; } if (escaped != NULL) { yajl_buf_append(buf, str + beg, end - beg); yajl_buf_append(buf, escaped, STRLEN(escaped)); beg = ++end; } else { ++end; } } yajl_buf_append(buf, str + beg, end - beg); } static void hexToDigit(unsigned int * val, const unsigned char * hex) { unsigned int i; for (i=0;i<4;i++) { unsigned char c = hex[i]; if (c >= 'A') c = (c & ~0x20) - 7; c -= '0'; assert(!(c & 0xF0)); *val = (*val << 4) | c; } } static void Utf32toUtf8(unsigned int codepoint, char * utf8Buf) { if (codepoint < 0x80) { utf8Buf[0] = (char) codepoint; utf8Buf[1] = 0; } else if (codepoint < 0x0800) { utf8Buf[0] = (char) ((codepoint >> 6) | 0xC0); utf8Buf[1] = (char) ((codepoint & 0x3F) | 0x80); utf8Buf[2] = 0; } else if (codepoint < 0x10000) { utf8Buf[0] = (char) ((codepoint >> 12) | 0xE0); utf8Buf[1] = (char) (((codepoint >> 6) & 0x3F) | 0x80); utf8Buf[2] = (char) ((codepoint & 0x3F) | 0x80); utf8Buf[3] = 0; } else if (codepoint < 0x200000) { utf8Buf[0] =(char)((codepoint >> 18) | 0xF0); utf8Buf[1] =(char)(((codepoint >> 12) & 0x3F) | 0x80); utf8Buf[2] =(char)(((codepoint >> 6) & 0x3F) | 0x80); utf8Buf[3] =(char)((codepoint & 0x3F) | 0x80); utf8Buf[4] = 0; } else { utf8Buf[0] = '?'; utf8Buf[1] = 0; } } void yajl_string_decode(yajl_buf buf, const unsigned char * str, unsigned int len) { unsigned int beg = 0; unsigned int end = 0; while (end < len) { if (str[end] == '\\') { char utf8Buf[5]; const char * unescaped = "?"; yajl_buf_append(buf, str + beg, end - beg); switch (str[++end]) { case 'r': unescaped = "\r"; break; case 'n': unescaped = "\n"; break; case '\\': unescaped = "\\"; break; case '/': unescaped = "/"; break; case '"': unescaped = "\""; break; case 'f': unescaped = "\f"; break; case 'b': unescaped = "\b"; break; case 't': unescaped = "\t"; break; case 'u': { unsigned int codepoint = 0; hexToDigit(&codepoint, str + ++end); end+=3; /* check if this is a surrogate */ if ((codepoint & 0xFC00) == 0xD800) { end++; if (str[end] == '\\' && str[end + 1] == 'u') { unsigned int surrogate = 0; hexToDigit(&surrogate, str + end + 2); codepoint = (((codepoint & 0x3F) << 10) | ((((codepoint >> 6) & 0xF) + 1) << 16) | (surrogate & 0x3FF)); end += 5; } else { unescaped = "?"; break; } } Utf32toUtf8(codepoint, utf8Buf); unescaped = utf8Buf; break; } default: assert("this should never happen" == NULL); } yajl_buf_append(buf, unescaped, STRLEN(unescaped)); beg = ++end; } else { end++; } } yajl_buf_append(buf, str + beg, end - beg); } XQilla-2.3.4/src/yajl/yajl_gen.h0000644001725400016040000000652013273140037013331 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "yajl_common.h" #ifndef __YAJL_GEN_H__ #define __YAJL_GEN_H__ #ifdef __cplusplus extern "C" { #endif typedef enum { yajl_gen_status_ok = 0, yajl_gen_keys_must_be_strings, yajl_max_depth_exceeded, yajl_gen_in_error_state, yajl_gen_generation_complete } yajl_gen_status; /** an opaque handle to a generator */ typedef struct yajl_gen_t * yajl_gen; /** configuration structure for the generator */ typedef struct { unsigned int beautify; const char * indentString; } yajl_gen_config; /** allocate a generator handle */ yajl_gen YAJL_API yajl_gen_alloc(const yajl_gen_config * config); /** free a generator handle */ void YAJL_API yajl_gen_free(yajl_gen handle); yajl_gen_status YAJL_API yajl_gen_integer(yajl_gen hand, long int number); yajl_gen_status YAJL_API yajl_gen_double(yajl_gen hand, double number); yajl_gen_status YAJL_API yajl_gen_string(yajl_gen hand, const unsigned char * str, unsigned int len); yajl_gen_status YAJL_API yajl_gen_null(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_bool(yajl_gen hand, int boolean); yajl_gen_status YAJL_API yajl_gen_map_open(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_map_close(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_array_open(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_array_close(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_get_buf(yajl_gen hand, const unsigned char ** buf, unsigned int * len); void YAJL_API yajl_gen_clear(yajl_gen hand); #ifdef __cplusplus }; #endif #endif XQilla-2.3.4/src/yajl/yajl_parse.h0000644001725400016040000001247613273140037013701 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "yajl_common.h" #ifndef __YAJL_PARSE_H__ #define __YAJL_PARSE_H__ #ifdef __cplusplus extern "C" { #endif /** error codes returned from this interface */ typedef enum { yajl_status_ok, yajl_status_client_canceled, yajl_status_insufficient_data, yajl_status_error } yajl_status; /** attain a human readable, english, string for an error */ const char * YAJL_API yajl_status_to_string(yajl_status code); /** an opaque handle to a parser */ typedef struct yajl_handle_t * yajl_handle; /** yajl is an event driven parser. this means as json elements are * parsed, you are called back to do something with the data. The * functions in this table indicate the various events for which * you will be called back. Each callback accepts a "context" * pointer, this is a void * that is passed into the yajl_parse * function which the client code may use to pass around context. * * All callbacks return an integer. If non-zero, the parse will * continue. If zero, the parse will be canceled and * yajl_status_client_canceled will be returned from the parse. */ typedef struct { int (* yajl_null)(void * ctx); int (* yajl_boolean)(void * ctx, int boolVal); int (* yajl_integer)(void * ctx, long integerVal); int (* yajl_double)(void * ctx, double doubleVal); /* strings are returned as pointers into the JSON text when, * possible, they are not null padded */ int (* yajl_string)(void * ctx, const unsigned char * stringVal, unsigned int stringLen); int (* yajl_start_map)(void * ctx); int (* yajl_map_key)(void * ctx, const unsigned char * key, unsigned int stringLen); int (* yajl_end_map)(void * ctx); int (* yajl_start_array)(void * ctx); int (* yajl_end_array)(void * ctx); } yajl_callbacks; /** configuration structure for the generator */ typedef struct { /** if nonzero, javascript style comments will be allowed in * the json input, both slash star and slash slash */ unsigned int allowComments; } yajl_parser_config; /** allocate a parser handle * \param callbacks a yajl callbacks structure specifying the * functions to call when different JSON entities * are encountered in the input text. May be NULL, * which is only useful for validation. * \param config configuration parameters for the parse. * \param ctx a context pointer that will be passed to callbacks. */ yajl_handle YAJL_API yajl_alloc(const yajl_callbacks * callbacks, const yajl_parser_config * config, void * ctx); /** free a parser handle */ void YAJL_API yajl_free(yajl_handle handle); /** parse some json! */ yajl_status YAJL_API yajl_parse(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLength); /** get an error string describing the state of the * parse. * * If verbose is non-zero, the message will include the JSON * text where the error occured, along with an arrow pointing to * the specific char. * * A dynamically allocated string will be returned which should * be freed with yajl_free_error */ unsigned char * YAJL_API yajl_get_error(yajl_handle hand, int verbose, const unsigned char * jsonText, unsigned int jsonTextLength); void YAJL_API yajl_free_error(unsigned char * str); #ifdef __cplusplus }; #endif #endif XQilla-2.3.4/src/yajl/yajl.c0000644001725400016040000000710413273140037012472 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_parse.h" #include "yajl_lex.h" #include "yajl_parser.h" #include #include #include const char * yajl_status_to_string(yajl_status stat) { const char * statStr = "unknown"; switch (stat) { case yajl_status_ok: statStr = "ok, no error"; break; case yajl_status_client_canceled: statStr = "client canceled parse"; break; case yajl_status_insufficient_data: statStr = "eof was met before the parse could complete"; break; case yajl_status_error: statStr = "parse error"; break; } return statStr; } yajl_handle yajl_alloc(const yajl_callbacks * callbacks, const yajl_parser_config * config, void * ctx) { unsigned int allowComments = 0; yajl_handle hand = (yajl_handle) malloc(sizeof(struct yajl_handle_t)); if (config != NULL) { allowComments = config->allowComments; } hand->callbacks = callbacks; hand->ctx = ctx; hand->lexer = yajl_lex_alloc(allowComments); hand->errorOffset = 0; hand->decodeBuf = yajl_buf_alloc(); hand->stateBuf = yajl_buf_alloc(); yajl_state_push(hand, yajl_state_start); return hand; } void yajl_free(yajl_handle handle) { yajl_buf_free(handle->stateBuf); yajl_buf_free(handle->decodeBuf); yajl_lex_free(handle->lexer); free(handle); } yajl_status yajl_parse(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen) { unsigned int offset = 0; yajl_status status; status = yajl_do_parse(hand, &offset, jsonText, jsonTextLen); return status; } unsigned char * yajl_get_error(yajl_handle hand, int verbose, const unsigned char * jsonText, unsigned int jsonTextLen) { return yajl_render_error_string(hand, jsonText, jsonTextLen, verbose); } void yajl_free_error(unsigned char * str) { /* XXX: use memory allocation functions if set */ free(str); } /* XXX: add utility routines to parse from file */ XQilla-2.3.4/src/yajl/yajl_gen.c0000644001725400016040000002026413273140037013325 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_gen.h" #include "yajl_buf.h" #include "yajl_encode.h" #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) typedef enum { yajl_gen_start, yajl_gen_map_start, yajl_gen_map_key, yajl_gen_map_val, yajl_gen_array_start, yajl_gen_in_array, yajl_gen_complete, yajl_gen_error } yajl_gen_state; struct yajl_gen_t { unsigned int depth; unsigned int pretty; const char * indentString; yajl_gen_state state[YAJL_MAX_DEPTH]; yajl_buf buf; }; yajl_gen yajl_gen_alloc(const yajl_gen_config * config) { yajl_gen g = (yajl_gen) malloc(sizeof(struct yajl_gen_t)); memset((void *) g, 0, sizeof(struct yajl_gen_t)); if (config) { g->pretty = config->beautify; g->indentString = config->indentString ? config->indentString : " "; } g->buf = yajl_buf_alloc(); return g; } void yajl_gen_free(yajl_gen g) { yajl_buf_free(g->buf); free(g); } #define INSERT_SEP \ if (g->state[g->depth] == yajl_gen_map_key || \ g->state[g->depth] == yajl_gen_in_array) { \ yajl_buf_append(g->buf, ",", 1); \ if (g->pretty) yajl_buf_append(g->buf, "\n", 1); \ } else if (g->state[g->depth] == yajl_gen_map_val) { \ yajl_buf_append(g->buf, ":", 1); \ if (g->pretty) yajl_buf_append(g->buf, " ", 1); \ } #define INSERT_WHITESPACE \ if (g->pretty) { \ if (g->state[g->depth] != yajl_gen_map_val) { \ unsigned int i; \ for (i=0;idepth;i++) \ yajl_buf_append(g->buf, g->indentString, \ STRLEN(g->indentString)); \ } \ } #define ENSURE_NOT_KEY \ if (g->state[g->depth] == yajl_gen_map_key) { \ return yajl_gen_keys_must_be_strings; \ } \ /* check that we're not complete, or in error state. in a valid state * to be generating */ #define ENSURE_VALID_STATE \ if (g->state[g->depth] == yajl_gen_error) { \ return yajl_gen_in_error_state;\ } else if (g->state[g->depth] == yajl_gen_complete) { \ return yajl_gen_generation_complete; \ } #define INCREMENT_DEPTH \ if (++(g->depth) >= YAJL_MAX_DEPTH) return yajl_max_depth_exceeded; #define APPENDED_ATOM \ switch (g->state[g->depth]) { \ case yajl_gen_start: \ g->state[g->depth] = yajl_gen_complete; \ break; \ case yajl_gen_map_start: \ case yajl_gen_map_key: \ g->state[g->depth] = yajl_gen_map_val; \ break; \ case yajl_gen_array_start: \ g->state[g->depth] = yajl_gen_in_array; \ break; \ case yajl_gen_map_val: \ g->state[g->depth] = yajl_gen_map_key; \ break; \ default: \ break; \ } \ #define FINAL_NEWLINE \ if (g->pretty && g->state[g->depth] == yajl_gen_complete) \ yajl_buf_append(g->buf, "\n", 1); yajl_gen_status yajl_gen_integer(yajl_gen g, long int number) { char i[32]; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; sprintf(i, "%lld", (xq_int64_t)number); yajl_buf_append(g->buf, i, STRLEN(i)); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_double(yajl_gen g, double number) { char i[32]; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; sprintf(i, "%lf", number); yajl_buf_append(g->buf, i, STRLEN(i)); APPENDED_ATOM; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_string(yajl_gen g, const unsigned char * str, unsigned int len) { ENSURE_VALID_STATE; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, "\"", 1); yajl_string_encode(g->buf, str, len); yajl_buf_append(g->buf, "\"", 1); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_null(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, "null", STRLEN("null")); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_bool(yajl_gen g, int boolean) { const char * val = boolean ? "true" : "false"; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, val, STRLEN(val)); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_map_open(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; INCREMENT_DEPTH; g->state[g->depth] = yajl_gen_map_start; yajl_buf_append(g->buf, "{", 1); if (g->pretty) yajl_buf_append(g->buf, "\n", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_map_close(yajl_gen g) { ENSURE_VALID_STATE; (g->depth)--; if (g->pretty) yajl_buf_append(g->buf, "\n", 1); APPENDED_ATOM; INSERT_WHITESPACE; yajl_buf_append(g->buf, "}", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_array_open(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; INCREMENT_DEPTH; g->state[g->depth] = yajl_gen_array_start; yajl_buf_append(g->buf, "[", 1); if (g->pretty) yajl_buf_append(g->buf, "\n", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_array_close(yajl_gen g) { ENSURE_VALID_STATE; if (g->pretty) yajl_buf_append(g->buf, "\n", 1); (g->depth)--; APPENDED_ATOM; INSERT_WHITESPACE; yajl_buf_append(g->buf, "]", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_get_buf(yajl_gen g, const unsigned char ** buf, unsigned int * len) { *buf = yajl_buf_data(g->buf); *len = yajl_buf_len(g->buf); return yajl_gen_status_ok; } void yajl_gen_clear(yajl_gen g) { yajl_buf_clear(g->buf); } XQilla-2.3.4/src/yajl/yajl_encode.h0000644001725400016040000000344713273140037014022 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_ENCODE_H__ #define __YAJL_ENCODE_H__ #include "yajl_buf.h" void yajl_string_encode(yajl_buf buf, const unsigned char * str, unsigned int length); void yajl_string_decode(yajl_buf buf, const unsigned char * str, unsigned int length); #endif XQilla-2.3.4/src/yajl/yajl_buf.c0000644001725400016040000000606713273140037013335 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_buf.h" #include #include #include #define YAJL_BUF_INIT_SIZE 2048 struct yajl_buf_t { unsigned int len; unsigned int used; unsigned char * data; }; static void yajl_buf_ensure_available(yajl_buf buf, unsigned int want) { unsigned int need; assert(buf != NULL); /* first call */ if (buf->data == NULL) { buf->len = YAJL_BUF_INIT_SIZE; buf->data = (unsigned char *) malloc(buf->len); buf->data[0] = 0; } need = buf->len; while (want >= (need - buf->used)) need <<= 1; if (need != buf->len) { buf->data = (unsigned char *) realloc(buf->data, need); buf->len = need; } } yajl_buf yajl_buf_alloc(void) { return (yajl_buf) calloc(1, sizeof(struct yajl_buf_t)); } void yajl_buf_free(yajl_buf buf) { assert(buf != NULL); if (buf->data) free(buf->data); free(buf); } void yajl_buf_append(yajl_buf buf, const void * data, unsigned int len) { yajl_buf_ensure_available(buf, len); if (len > 0) { assert(data != NULL); memcpy(buf->data + buf->used, data, len); buf->used += len; buf->data[buf->used] = 0; } } void yajl_buf_clear(yajl_buf buf) { buf->used = 0; if (buf->data) buf->data[buf->used] = 0; } const unsigned char * yajl_buf_data(yajl_buf buf) { return buf->data; } unsigned int yajl_buf_len(yajl_buf buf) { return buf->used; } void yajl_buf_truncate(yajl_buf buf, unsigned int len) { assert(len <= buf->used); buf->used = len; } XQilla-2.3.4/src/yajl/yajl_buf.h0000644001725400016040000000436013273140037013334 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_BUF_H__ #define __YAJL_BUF_H__ /** * yajl_buf is a buffer with exponential growth. the buffer ensures that * you are always null padded. */ typedef struct yajl_buf_t * yajl_buf; /* allocate a new buffer */ yajl_buf yajl_buf_alloc(void); /* free the buffer */ void yajl_buf_free(yajl_buf buf); /* append a number of bytes to the buffer */ void yajl_buf_append(yajl_buf buf, const void * data, unsigned int len); /* empty the buffer */ void yajl_buf_clear(yajl_buf buf); /* get a pointer to the beginning of the buffer */ const unsigned char * yajl_buf_data(yajl_buf buf); /* get the length of the buffer */ unsigned int yajl_buf_len(yajl_buf buf); /* truncate the buffer */ void yajl_buf_truncate(yajl_buf buf, unsigned int len); #endif XQilla-2.3.4/src/yajl/yajl_lex.h0000644001725400016040000001133213273140037013345 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_LEX_H__ #define __YAJL_LEX_H__ typedef enum { yajl_tok_bool, yajl_tok_colon, yajl_tok_comma, yajl_tok_eof, yajl_tok_error, yajl_tok_left_brace, yajl_tok_left_bracket, yajl_tok_null, yajl_tok_right_brace, yajl_tok_right_bracket, /* we differentiate between integers and doubles to allow the * parser to interpret the number without re-scanning */ yajl_tok_integer, yajl_tok_double, /* we differentiate between strings which require further processing, * and strings that do not */ yajl_tok_string, yajl_tok_string_with_escapes, /* comment tokens are not currently returned to the parser, ever */ yajl_tok_comment } yajl_tok; typedef struct yajl_lexer_t * yajl_lexer; yajl_lexer yajl_lex_alloc(unsigned int allowComments); void yajl_lex_free(yajl_lexer lexer); /** * run/continue a lex. "offset" is an input/output parameter. * It should be initialized to zero for a * new chunk of target text, and upon subsetquent calls with the same * target text should passed with the value of the previous invocation. * * the client may be interested in the value of offset when an error is * returned from the lexer. This allows the client to render useful n * error messages. * * When you pass the next chunk of data, context should be reinitialized * to zero. * * Finally, the output buffer is usually just a pointer into the jsonText, * however in cases where the entity being lexed spans multiple chunks, * the lexer will buffer the entity and the data returned will be * a pointer into that buffer. * * This behavior is abstracted from client code except for the performance * implications which require that the client choose a reasonable chunk * size to get adequate performance. */ yajl_tok yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset, const unsigned char ** outBuf, unsigned int * outLen); /** have a peek at the next token, but don't move the lexer forward */ yajl_tok yajl_lex_peek(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int offset); typedef enum { yajl_lex_e_ok = 0, yajl_lex_string_invalid_escaped_char, yajl_lex_string_invalid_json_char, yajl_lex_string_invalid_hex_char, yajl_lex_invalid_char, yajl_lex_invalid_string, yajl_lex_missing_integer_after_decimal, yajl_lex_missing_integer_after_exponent, yajl_lex_missing_integer_after_minus, yajl_lex_unallowed_comment } yajl_lex_error; const char * yajl_lex_error_to_string(yajl_lex_error error); /** allows access to more specific information about the lexical * error when yajl_lex_lex returns yajl_tok_error. */ yajl_lex_error yajl_lex_get_error(yajl_lexer lexer); /** get the current offset into the most recently lexed json string. */ unsigned int yajl_lex_current_offset(yajl_lexer lexer); /** get the number of lines lexed by this lexer instance */ unsigned int yajl_lex_current_line(yajl_lexer lexer); /** get the number of chars lexed by this lexer instance since the last * \n or \r */ unsigned int yajl_lex_current_char(yajl_lexer lexer); #endif XQilla-2.3.4/src/yajl/yajl_parser.h0000644001725400016040000000552413273140037014057 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_PARSER_H__ #define __YAJL_PARSER_H__ #include "yajl_parse.h" #include "yajl_buf.h" typedef enum { yajl_state_start = 0, yajl_state_parse_complete, yajl_state_parse_error, yajl_state_lexical_error, yajl_state_map_start, yajl_state_map_sep, yajl_state_map_need_val, yajl_state_map_got_val, yajl_state_map_need_key, yajl_state_array_start, yajl_state_array_got_val, yajl_state_array_need_val } yajl_state; struct yajl_handle_t { const yajl_callbacks * callbacks; void * ctx; yajl_lexer lexer; const char * parseError; unsigned int errorOffset; /* temporary storage for decoded strings */ yajl_buf decodeBuf; /* a stack of states. access with yajl_state_XXX routines */ yajl_buf stateBuf; }; yajl_status yajl_do_parse(yajl_handle handle, unsigned int * offset, const unsigned char * jsonText, unsigned int jsonTextLen); unsigned char * yajl_render_error_string(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen, int verbose); yajl_state yajl_state_current(yajl_handle handle); void yajl_state_push(yajl_handle handle, yajl_state state); yajl_state yajl_state_pop(yajl_handle handle); unsigned int yajl_parse_depth(yajl_handle handle); void yajl_state_set(yajl_handle handle, yajl_state state); #endif XQilla-2.3.4/src/yajl/yajl_common.h0000644001725400016040000000415513273140037014052 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_COMMON_H__ #define __YAJL_COMMON_H__ #define YAJL_MAX_DEPTH 128 /* msft dll export gunk. To build a DLL on windows, you * must define WIN32, YAJL_SHARED, and YAJL_BUILD. To use a shared * DLL, you must define YAJL_SHARED and WIN32 */ #if defined(WIN32) && defined(YAJL_SHARED) # ifdef YAJL_BUILD # define YAJL_API __declspec(dllexport) # else # define YAJL_API __declspec(dllimport) # endif #else # define YAJL_API #endif #if defined(_MSC_VER) typedef __int64 xq_int64_t; typedef unsigned __int64 xq_uint64_t; #else typedef long long xq_int64_t; typedef unsigned long long xq_uint64_t; #endif #endif XQilla-2.3.4/src/yajl/yajl_parser.c0000644001725400016040000004333213273140037014051 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_lex.h" #include "yajl_parser.h" #include "yajl_encode.h" #include #include #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) unsigned char * yajl_render_error_string(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen, int verbose) { unsigned int offset = hand->errorOffset; unsigned char * str; const char * errorType = NULL; const char * errorText = NULL; char text[72]; const char * arrow = " (right here) ------^\n"; if (yajl_state_current(hand) == yajl_state_parse_error) { errorType = "parse"; errorText = hand->parseError; } else if (yajl_state_current(hand) == yajl_state_lexical_error) { errorType = "lexical"; errorText = yajl_lex_error_to_string(yajl_lex_get_error(hand->lexer)); } else { errorType = "unknown"; } { unsigned int memneeded = 0; memneeded += STRLEN(errorType); memneeded += STRLEN(" error"); if (errorText != NULL) { memneeded += STRLEN(": "); memneeded += STRLEN(errorText); } str = (unsigned char *) malloc(memneeded + 2); str[0] = 0; strcat((char *) str, errorType); strcat((char *) str, " error"); if (errorText != NULL) { strcat((char *) str, ": "); strcat((char *) str, errorText); } strcat((char *) str, "\n"); } /* now we append as many spaces as needed to make sure the error * falls at char 41, if verbose was specified */ if (verbose) { unsigned int start, end, i; unsigned int spacesNeeded; spacesNeeded = (offset < 30 ? 40 - offset : 10); start = (offset >= 30 ? offset - 30 : 0); end = (offset + 30 > jsonTextLen ? jsonTextLen : offset + 30); for (i=0;ierrorOffset = *offset; return yajl_status_error; case yajl_state_start: case yajl_state_map_need_val: case yajl_state_array_need_val: case yajl_state_array_start: { /* for arrays and maps, we advance the state for this * depth, then push the state of the next depth. * If an error occurs during the parsing of the nesting * enitity, the state at this level will not matter. * a state that needs pushing will be anything other * than state_start */ yajl_state stateToPush = yajl_state_start; tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; case yajl_tok_string: if (hand->callbacks && hand->callbacks->yajl_string) { hand->callbacks->yajl_string(hand->ctx, buf, bufLen); } break; case yajl_tok_string_with_escapes: if (hand->callbacks && hand->callbacks->yajl_string) { yajl_buf_clear(hand->decodeBuf); yajl_string_decode(hand->decodeBuf, buf, bufLen); hand->callbacks->yajl_string( hand->ctx, yajl_buf_data(hand->decodeBuf), yajl_buf_len(hand->decodeBuf)); } break; case yajl_tok_bool: if (hand->callbacks && hand->callbacks->yajl_boolean) { hand->callbacks->yajl_boolean(hand->ctx, *buf == 't'); } break; case yajl_tok_null: if (hand->callbacks && hand->callbacks->yajl_null) { hand->callbacks->yajl_null(hand->ctx); } break; case yajl_tok_left_bracket: if (hand->callbacks && hand->callbacks->yajl_start_map) { hand->callbacks->yajl_start_map(hand->ctx); } stateToPush = yajl_state_map_start; break; case yajl_tok_left_brace: if (hand->callbacks && hand->callbacks->yajl_start_array) { hand->callbacks->yajl_start_array(hand->ctx); } stateToPush = yajl_state_array_start; break; case yajl_tok_integer: /* * note. sscanf does not respect the length of * the lexical token. in a corner case where the * lexed number is a integer with a trailing zero, * immediately followed by the end of buffer, * sscanf could run off into oblivion and cause a * crash. for this reason we copy the integer * (and doubles), into our parse buffer (the same * one used for unescaping strings), before * calling sscanf. yajl_buf ensures null padding, * so we're safe. */ if (hand->callbacks && hand->callbacks->yajl_integer) { long int i; int neg = 0; yajl_buf_clear(hand->decodeBuf); yajl_buf_append(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); if (*buf == '-') { buf++; neg = 1; } sscanf((char *) buf, "%lld", (xq_int64_t *)&i); if (neg) i -= (i<<1); hand->callbacks->yajl_integer(hand->ctx, i); } break; case yajl_tok_double: if (hand->callbacks && hand->callbacks->yajl_double) { double d; int neg = 0; yajl_buf_clear(hand->decodeBuf); yajl_buf_append(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); if (*buf == '-') { buf++; neg = 1; } sscanf((char *) buf, "%lf", &d); if (neg) d *= -1.0; hand->callbacks->yajl_double(hand->ctx, d); } break; case yajl_tok_right_brace: { if (yajl_state_current(hand) == yajl_state_array_start) { if (hand->callbacks && hand->callbacks->yajl_end_array) { hand->callbacks->yajl_end_array(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; } /* intentional fall-through */ } case yajl_tok_colon: case yajl_tok_comma: case yajl_tok_right_bracket: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "unallowed token at this point in JSON text"; goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "invalid token, internal error"; goto around_again; } /* got a value. transition depends on the state we're in. */ { yajl_state s = yajl_state_current(hand); if (s == yajl_state_start) { yajl_state_set(hand, yajl_state_parse_complete); } else if (s == yajl_state_map_need_val) { yajl_state_set(hand, yajl_state_map_got_val); } else { yajl_state_set(hand, yajl_state_array_got_val); } } if (stateToPush != yajl_state_start) { yajl_state_push(hand, stateToPush); } goto around_again; } case yajl_state_map_start: case yajl_state_map_need_key: { /* only difference between these two states is that in * start '}' is valid, whereas in need_key, we've parsed * a comma, and a string key _must_ follow */ tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; case yajl_tok_string_with_escapes: if (hand->callbacks && hand->callbacks->yajl_map_key) { yajl_buf_clear(hand->decodeBuf); yajl_string_decode(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); bufLen = yajl_buf_len(hand->decodeBuf); } /* intentional fall-through */ case yajl_tok_string: if (hand->callbacks && hand->callbacks->yajl_map_key) { hand->callbacks->yajl_map_key(hand->ctx, buf, bufLen); } yajl_state_set(hand, yajl_state_map_sep); goto around_again; case yajl_tok_right_bracket: if (yajl_state_current(hand) == yajl_state_map_start) { if (hand->callbacks && hand->callbacks->yajl_end_map) { hand->callbacks->yajl_end_map(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; } default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "invalid object key (must be a string)"; goto around_again; } } case yajl_state_map_sep: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_colon: yajl_state_set(hand, yajl_state_map_need_val); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "object key and value must " "be separated by a colon (':')"; goto around_again; } } case yajl_state_map_got_val: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_right_bracket: if (hand->callbacks && hand->callbacks->yajl_end_map) { hand->callbacks->yajl_end_map(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; case yajl_tok_comma: yajl_state_set(hand, yajl_state_map_need_key); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "after key and value, inside map, " "I expect ',' or '}'"; /* try to restore error offset */ if (*offset >= bufLen) *offset -= bufLen; else *offset = 0; goto around_again; } } case yajl_state_array_got_val: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_right_brace: if (hand->callbacks && hand->callbacks->yajl_end_array) { hand->callbacks->yajl_end_array(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; case yajl_tok_comma: yajl_state_set(hand, yajl_state_array_need_val); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "after array element, I expect ',' or ']'"; goto around_again; } } } abort(); return yajl_status_error; } /* state stack maintenence routines */ yajl_state yajl_state_current(yajl_handle h) { assert(yajl_buf_len(h->stateBuf) > 0); return (yajl_state) *(yajl_buf_data(h->stateBuf) + yajl_buf_len(h->stateBuf) - 1); } void yajl_state_push(yajl_handle h, yajl_state s) { unsigned char c = (unsigned char) s; yajl_buf_append(h->stateBuf, &c, sizeof(c)); } yajl_state yajl_state_pop(yajl_handle h) { yajl_state s; unsigned int len = yajl_buf_len(h->stateBuf); /* start state is never popped */ assert(len > 1); s = (yajl_state) *(yajl_buf_data(h->stateBuf) + len - 1); yajl_buf_truncate(h->stateBuf, len - 1); return s; } unsigned int yajl_parse_depth(yajl_handle h) { assert(yajl_buf_len(h->stateBuf) > 0); return (yajl_buf_len(h->stateBuf) - 1); } void yajl_state_set(yajl_handle h, yajl_state state) { assert(yajl_buf_len(h->stateBuf) > 0); *(unsigned char *) (yajl_buf_data(h->stateBuf) + yajl_buf_len(h->stateBuf) - 1) = (unsigned char) state; } XQilla-2.3.4/src/ast/0000755001725400016040000000000013273141207011275 500000000000000XQilla-2.3.4/src/ast/XQMap.cpp0000644001725400016040000001124413273140037012711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQMap::XQMap(ASTNode *arg1, ASTNode *arg2, XPath2MemoryManager* memMgr) : ASTNodeImpl(MAP, memMgr), arg1_(arg1), arg2_(arg2), uri_(0), name_(0), varSrc_(memMgr) { } XQMap::XQMap(ASTNode *arg1, ASTNode *arg2, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(MAP, memMgr), arg1_(arg1), arg2_(arg2), uri_(uri), name_(name), varSrc_(memMgr) { } ASTNode *XQMap::staticResolution(StaticContext *context) { arg1_ = arg1_->staticResolution(context); arg2_ = arg2_->staticResolution(context); return this; } ASTNode *XQMap::staticTypingImpl(StaticContext *context) { _src.clear(); const StaticAnalysis &arg2Src = arg2_->getStaticAnalysis(); if(name_ == 0) { _src.addExceptContextFlags(arg2Src); } else { _src.addExceptVariable(uri_, name_, arg2Src); } const StaticAnalysis &arg1Src = arg1_->getStaticAnalysis(); _src.add(arg1Src); _src.getStaticType() = arg2Src.getStaticType(); _src.getStaticType().multiply(arg1Src.getStaticType().getMin(), arg1Src.getStaticType().getMax()); _src.setProperties(XQNav::combineProperties(arg1Src.getProperties(), arg2Src.getProperties())); if(name_ == 0) { if(arg2_->getType() == CONTEXT_ITEM) return arg1_; } else { if(arg2_->getType() == VARIABLE && XPath2Utils::equals(((XQVariable*)arg2_)->getURI(), uri_) && XPath2Utils::equals(((XQVariable*)arg2_)->getName(), name_)) return arg1_; } return this; } Result XQMap::createResult(DynamicContext* context, int flags) const { Result result = arg1_->createResult(context); if(name_ != 0) { return ClosureResult::create(arg2_->getStaticAnalysis(), context, new MapResult(result, arg2_, uri_, name_)); } if(arg2_->getStaticAnalysis().isContextSizeUsed()) { // We need the context size, so convert to a Sequence to work it out Sequence seq(result->toSequence(context)); result = ClosureResult::create(arg2_->getStaticAnalysis(), context, new NavStepResult(new SequenceResult(this, seq), arg2_, seq.getLength())); } else { result = ClosureResult::create(arg2_->getStaticAnalysis(), context, new NavStepResult(result, arg2_, 0)); } return result; } //////////////////////////////////////////////////////////////////////////////////////////////////// MapResult::MapResult(const Result &parent, const ASTNode *step, const XMLCh *uri, const XMLCh *name) : ResultImpl(step), parent_(parent), step_(step), uri_(uri), name_(name), stepResult_(0), item_(0), scope_(0) { } Result MapResult::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, name_) && XPath2Utils::equals(namespaceURI, uri_)) return item_; return scope_->getVar(namespaceURI, name); } void MapResult::getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(uri_, name_)); scope_->getInScopeVariables(variables); } Item::Ptr MapResult::next(DynamicContext *context) { if(scope_ == 0) { scope_ = context->getVariableStore(); } AutoVariableStoreReset reset(context, this); Item::Ptr result; while((result = stepResult_->next(context)).isNull()) { context->testInterrupt(); context->setVariableStore(scope_); item_ = parent_->next(context); if(item_.isNull()) { parent_ = 0; return 0; } context->setVariableStore(this); stepResult_ = step_->createResult(context); } return result; } XQilla-2.3.4/src/ast/LetTuple.cpp0000644001725400016040000001263313273140037013464 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include LetTuple::LetTuple(TupleNode *parent, const XMLCh *varQName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(LET, parent, mm), seqType(0), varQName_(varQName), varURI_(0), varName_(0), varSrc_(mm), expr_(expr) { } LetTuple::LetTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(LET, parent, mm), seqType(0), varQName_(0), varURI_(varURI), varName_(varName), varSrc_(mm), expr_(expr) { } TupleNode *LetTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); if(varName_ == 0) { varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); } expr_ = expr_->staticResolution(context); return this; } static bool canPushLetBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return canPushLetBack(f->getParent(), exprSrc); break; } case TupleNode::COUNT: { CountTuple *f = (CountTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return canPushLetBack(f->getParent(), exprSrc); break; } case TupleNode::ORDER_BY: case TupleNode::WHERE: return canPushLetBack(ancestor->getParent(), exprSrc); case TupleNode::CONTEXT_TUPLE: break; case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *LetTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("LetTuple::staticTypingSetup"), X("It is a static error for the let expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Push back if possible if(!expr_->getStaticAnalysis().isCreative() && canPushLetBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this LetTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *LetTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc.removeVariable(varURI_, varName_); usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); // TBD Combine LetTuple that compute the same expression? - jpcs return this; } class LetTupleResult : public TupleResult { public: LetTupleResult(const LetTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), values_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return values_.createResult(); return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { context->testInterrupt(); if(!parent_->next(context)) return false; // TBD Use counts for the variable - jpcs AutoVariableStoreReset vsReset(context, parent_); values_ = ResultBuffer(ast_->getExpression()->createResult(context)); return true; } private: const LetTuple *ast_; TupleResult::Ptr parent_; mutable ResultBuffer values_; }; TupleResult::Ptr LetTuple::createResult(DynamicContext* context) const { return new LetTupleResult(this, parent_->createResult(context)); } XQilla-2.3.4/src/ast/XQElementConstructor.cpp0000644001725400016040000003632413273140037016041 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../events/NoInheritFilter.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; XQElementConstructor::XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_attrList(attrList), m_children(children), m_namespaces(NULL) { } XQElementConstructor::XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, RefHashTableOf< XMLCh > *namespaces, XPath2MemoryManager *mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_attrList(attrList), m_children(children), m_namespaces(namespaces) { } EventGenerator::Ptr XQElementConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { NoInheritFilter niFilter(events, context->getMemoryManager()); if(!context->getInheritNamespaces()) events = &niFilter; // Resolve the name AnyAtomicType::Ptr itemName = m_name->createResult(context)->next(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = emptyToNull(pQName->getPrefix()); const XMLCh *uri = emptyToNull(pQName->getURI()); const XMLCh *localname = pQName->getName(); events->startElementEvent(prefix, uri, localname); ElemConstructFilter elemFilter(events, this, context->getMemoryManager()); if(m_namespaces != 0) { RefHashTableOfEnumerator nsEnumVal(m_namespaces, false, context->getMemoryManager()); RefHashTableOfEnumerator nsEnumKey(m_namespaces, false, context->getMemoryManager()); while(nsEnumVal.hasMoreElements()) { elemFilter.namespaceEvent(emptyToNull((XMLCh*)nsEnumKey.nextElementKey()), emptyToNull(&nsEnumVal.nextElement())); } } if(m_attrList != 0) { for(VectorOfASTNodes::const_iterator itAttr = m_attrList->begin(); itAttr != m_attrList->end (); ++itAttr) { (*itAttr)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } } for(VectorOfASTNodes::const_iterator itCont = m_children->begin(); itCont != m_children->end (); ++itCont) { (*itCont)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(context->getConstructionMode() == StaticContext::CONSTRUCTION_MODE_PRESERVE) { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; } events->endElementEvent(prefix, uri, localname, typeURI, typeName); return 0; } ASTNode* XQElementConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // Add a new scope for the namespace definitions XQillaNSResolverImpl *newNSScope = new (mm) XQillaNSResolverImpl(mm, context->getNSResolver()); AutoNsScopeReset jan(context, newNSScope); bool namespacesFound = false; unsigned int i; if(m_attrList != 0) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(context->getMemoryManager()); // process the namespace attributes (they are all at the beginning of the list) for (VectorOfASTNodes::iterator it=m_attrList->begin();it!=m_attrList->end();) { ASTNode* astNode=*it; assert(astNode->getType()==ASTNode::DOM_CONSTRUCTOR && ((XQDOMConstructor*)astNode)->getNodeType()==Node::attribute_string); XQDOMConstructor* attrConstructor=(XQDOMConstructor*)astNode; const ASTNode* dItem=attrConstructor->getName(); assert(dItem!=NULL); if(dItem->getType() != ASTNode::DIRECT_NAME) // no more namespace declaration break; const XMLCh *qname = ((XQDirectName*)dItem)->getQName(); const XMLCh* XMLNSPrefix=NULL; if(XPath2Utils::equals(qname,XMLUni::fgXMLNSString)) { XMLNSPrefix=XMLUni::fgZeroLenString; } else if(XPath2Utils::equals(XPath2NSUtils::getPrefix(qname, context->getMemoryManager()), XMLUni::fgXMLNSString)) { XMLNSPrefix=XPath2NSUtils::getLocalName(qname); } else // no more namespace declaration break; // we are a namespace attribute: check that we have a constant value namespacesFound = true; const VectorOfASTNodes *children=attrConstructor->getChildren(); const XMLCh* uri=NULL; if(children->size()==0) { // supporting Namespace 1.1 means unsetting the binding... uri=XMLUni::fgZeroLenString; } else if(children->size()>1 || ((*children)[0]->getType()!=ASTNode::LITERAL && (*children)[0]->getType()!=ASTNode::SEQUENCE)) { XQThrow(StaticErrorException,X("DOM Constructor"),X("The value of a namespace declaration attribute must " "be a literal string [err:XQST0022]")); } else { Item::Ptr nsUri = (*children)[0]->createResult(dContext)->next(dContext); if(nsUri == NULLRCP) XQThrow(StaticErrorException,X("DOM Constructor"),X("The value of a namespace declaration attribute must " "be a literal string [err:XQST0022]")); uri=nsUri->asString(dContext); } if(XMLNSPrefix != XMLUni::fgZeroLenString) { XQillaNSResolverImpl::forbiddenBindingCheck(XMLNSPrefix, uri, this); newNSScope->addNamespaceBinding(XMLNSPrefix, uri); } else { context->setDefaultElementAndTypeNS(uri); newNSScope->addNamespaceBinding(XMLUni::fgZeroLenString, uri); } if(m_namespaces==NULL) m_namespaces = new (mm) RefHashTableOf< XMLCh >(5, false, mm); if(m_namespaces->containsKey(XMLNSPrefix)) XQThrow(StaticErrorException,X("DOM Constructor"),X("Two namespace declaration attributes specified by a direct ele" "ment constructor do not have distinct names. [err:XQST0071]")); m_namespaces->put((void*)mm->getPooledString(XMLNSPrefix), (XMLCh*)mm->getPooledString(uri)); it=m_attrList->erase(it); } // now run static resolution on the real attributes for (i=0;isize();i++) { (*m_attrList)[i] = (*m_attrList)[i]->staticResolution(context); } // now that we have added the local namespace declaration, check for duplicate attribute names std::set attrNames; for (i=0;isize();i++) { ASTNode* astNode=(*m_attrList)[i]; assert(astNode->getType()==ASTNode::DOM_CONSTRUCTOR && ((XQDOMConstructor*)astNode)->getNodeType()==Node::attribute_string); XQDOMConstructor* attrConstructor=(XQDOMConstructor*)astNode; const ASTNode* dItem=attrConstructor->getName(); if(dItem->getType() == ASTNode::NAME_EXPRESSION) { dItem = ((XQNameExpression*)dItem)->getExpression(); } if(dItem->getType() == ASTNode::TREAT_AS) { dItem = ((XQAtomize*)dItem)->getExpression(); } if(dItem->getType() == ASTNode::ATOMIZE) { dItem = ((XQAtomize*)dItem)->getExpression(); } assert(dItem->getType()==ASTNode::QNAME_LITERAL); Item::Ptr item = dItem->createResult(dContext)->next(dContext); QualifiedName attrName(item->asString(dContext)); XMLBuffer buff(200, dContext->getMemoryManager()); if(attrName.getPrefix()!=0 && *attrName.getPrefix()!=0) { buff.append(chOpenCurly); buff.append(dContext->getUriBoundToPrefix(attrName.getPrefix(), this)); buff.append(chCloseCurly); } buff.append(attrName.getName()); if(attrNames.find(buff.getRawBuffer())!=attrNames.end()) XQThrow(StaticErrorException,X("DOM Constructor"),X("Two attributes specified by a direct element constructor do not have distinct expanded QNames. [err:XQST0040]")); attrNames.insert(XMLString::replicate(buff.getRawBuffer(), dContext->getMemoryManager())); } } // and run static resolution m_name = new (mm) XQNameExpression(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); for(i = 0; i < m_children->size(); ++i) { (*m_children)[i] = new (mm) XQContentSequence((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } if(namespacesFound) { // Add an XQNamespaceBinding object to sort out our namespaces XQNamespaceBinding *result = new (mm) XQNamespaceBinding(newNSScope, this, mm); result->setLocationInfo(this); return result; } return this; } ASTNode *XQElementConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); unsigned int i; if(m_attrList != 0) { for(i = 0; i < m_attrList->size(); ++i) { _src.add((*m_attrList)[i]->getStaticAnalysis()); } } _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQElementConstructor::staticTyping"), X("It is a static error for the name expression of an element constructor " "to be an updating expression [err:XUST0001]")); } for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQElementConstructor::staticTyping"), X("It is a static error for a content expression of an element constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::ELEMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQElementConstructor::getNodeType() const { return Node::element_string; } ASTNode *XQElementConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQElementConstructor::getAttributes() const { return m_attrList; } const VectorOfASTNodes *XQElementConstructor::getChildren() const { return m_children; } void XQElementConstructor::setName(ASTNode *name) { m_name = name; } ////////////////////////////////////////////////////////////////////// ElemConstructFilter::ElemConstructFilter(EventHandler *next, const LocationInfo *location, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), location_(location), level_(0), seenContent_(false) { } void ElemConstructFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { seenContent_ = true; ++level_; next_->startElementEvent(prefix, uri, localname); } void ElemConstructFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void ElemConstructFilter::piEvent(const XMLCh *target, const XMLCh *value) { seenContent_ = true; next_->piEvent(target, value); } void ElemConstructFilter::textEvent(const XMLCh *value) { seenContent_ = true; next_->textEvent(value); } void ElemConstructFilter::textEvent(const XMLCh *chars, unsigned int length) { seenContent_ = true; next_->textEvent(chars, length); } void ElemConstructFilter::commentEvent(const XMLCh *value) { seenContent_ = true; next_->commentEvent(value); } void ElemConstructFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { if(seenContent_) XQThrow3(ASTException,X("ElemConstructFilter::attributeEvent"), X("Attribute nodes must be created before the other content of an element [err:XQTY0024]"), location_); if(!attrs_.insert(AttrRecord(uri, localname, mm_)).second) XQThrow3(ASTException,X("ElemConstructFilter::attributeEvent"), X("An element has two attributes with the same expanded name [err:XQDY0025]"), location_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ElemConstructFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { if(seenContent_) XQThrow3(ASTException,X("ElemConstructFilter::namespaceEvent"), X("Namespace nodes must be created before the other content of an element [err:XQTY0024]"), location_); if(!attrs_.insert(AttrRecord(prefix, 0, mm_)).second) XQThrow3(ASTException,X("ElemConstructFilter::namespaceEvent"), X("An element has two namespaces for the same prefix [err:XQDY0025]"), location_); } next_->namespaceEvent(prefix, uri); } ElemConstructFilter::AttrRecord::AttrRecord(const XMLCh *u, const XMLCh *n, XPath2MemoryManager *mm) : uri(mm->getPooledString(u)), name(mm->getPooledString(n)) { } bool ElemConstructFilter::AttrRecord::operator<(const AttrRecord &o) const { int cmp = XMLString::compareString(name, o.name); if(cmp < 0) return true; if(cmp > 0) return false; return XMLString::compareString(uri, o.uri) < 0; } XQilla-2.3.4/src/ast/XQTextConstructor.cpp0000644001725400016040000000561713273140037015375 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQTextConstructor::XQTextConstructor(ASTNode *value, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_value(value) { } EventGenerator::Ptr XQTextConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer value; if(getStringValue(m_value, value, context)) events->textEvent(value.getRawBuffer()); return 0; } ASTNode* XQTextConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQTextConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQTextConstructor::staticTyping"), X("It is a static error for the value expression of a text node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType(StaticType::TEXT_TYPE, 0, 1); _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQTextConstructor::getNodeType() const { return Node::text_string; } ASTNode *XQTextConstructor::getValue() const { return m_value; } void XQTextConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.4/src/ast/StaticType.cpp0000644001725400016040000004621613273140037014023 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const unsigned int StaticType::UNLIMITED = (unsigned int)-1; StaticType StaticType::create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact) { if(XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { isExact = true; return ANY_ATOMIC_TYPE; } else { return create(context->getItemFactory()->getPrimitiveTypeIndex(uri, name, /*isPrimitive*/isExact)); } } StaticType StaticType::create(AnyAtomicType::AtomicObjectType primitiveType) { switch(primitiveType) { case AnyAtomicType::ANY_SIMPLE_TYPE: return ANY_SIMPLE_TYPE; case AnyAtomicType::ANY_URI: return ANY_URI_TYPE; case AnyAtomicType::BASE_64_BINARY: return BASE_64_BINARY_TYPE; case AnyAtomicType::BOOLEAN: return BOOLEAN_TYPE; case AnyAtomicType::DATE: return DATE_TYPE; case AnyAtomicType::DATE_TIME: return DATE_TIME_TYPE; case AnyAtomicType::DAY_TIME_DURATION: return DAY_TIME_DURATION_TYPE; case AnyAtomicType::DECIMAL: return DECIMAL_TYPE; case AnyAtomicType::DOUBLE: return DOUBLE_TYPE; case AnyAtomicType::DURATION: return DURATION_TYPE | DAY_TIME_DURATION_TYPE | YEAR_MONTH_DURATION_TYPE; case AnyAtomicType::FLOAT: return FLOAT_TYPE; case AnyAtomicType::G_DAY: return G_DAY_TYPE; case AnyAtomicType::G_MONTH: return G_MONTH_TYPE; case AnyAtomicType::G_MONTH_DAY: return G_MONTH_DAY_TYPE; case AnyAtomicType::G_YEAR: return G_YEAR_TYPE; case AnyAtomicType::G_YEAR_MONTH: return G_YEAR_MONTH_TYPE; case AnyAtomicType::HEX_BINARY: return HEX_BINARY_TYPE; case AnyAtomicType::NOTATION: return NOTATION_TYPE; case AnyAtomicType::QNAME: return QNAME_TYPE; case AnyAtomicType::STRING: return STRING_TYPE; case AnyAtomicType::TIME: return TIME_TYPE; case AnyAtomicType::UNTYPED_ATOMIC: return UNTYPED_ATOMIC_TYPE; case AnyAtomicType::YEAR_MONTH_DURATION: return YEAR_MONTH_DURATION_TYPE; default: break; } return StaticType(); } StaticType::StaticType() : flags_(0), min_(0), max_(0), mm_(0), minArgs_(0), maxArgs_(0), returnType_(0) { } StaticType::StaticType(StaticTypeFlags f, unsigned int min, unsigned int max) : flags_(f), min_(min), max_(max), mm_(0), minArgs_(0), maxArgs_(0), returnType_(0) { // max must be 0 if flags is 0 assert(max != 0 || flags_ == 0); assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min, unsigned int max) : flags_(FUNCTION_TYPE), min_(min), max_(max), mm_(mm), minArgs_(numArgs), maxArgs_(numArgs), returnType_(new (mm) StaticType(returnType)) { assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min, unsigned int max) : flags_(FUNCTION_TYPE), min_(min), max_(max), mm_(mm), minArgs_(minArgs), maxArgs_(maxArgs), returnType_(new (mm) StaticType(returnType)) { assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(const StaticType &o) : flags_(o.flags_), min_(o.min_), max_(o.max_), mm_(o.mm_), minArgs_(o.minArgs_), maxArgs_(o.maxArgs_), returnType_(o.returnType_ ? new (mm_) StaticType(*o.returnType_) : 0) { } StaticType &StaticType::operator=(const StaticType &o) { if(this != &o) { flags_ = o.flags_; min_ = o.min_; max_ = o.max_; delete returnType_; if(mm_ == 0) mm_ = o.mm_; minArgs_ = o.minArgs_; maxArgs_ = o.maxArgs_; returnType_ = o.returnType_ ? new (mm_) StaticType(*o.returnType_) : 0; } return *this; } StaticType::~StaticType() { delete returnType_; } void StaticType::typeUnion(const StaticType &st) { bool thisFunctions = (flags_ & FUNCTION_TYPE) != 0; bool otherFunctions = (st.flags_ & FUNCTION_TYPE) != 0; flags_ |= st.flags_; min_ = (min_ < st.min_) ? min_ : st.min_; max_ = (max_ > st.max_) ? max_ : st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ < st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ > st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeUnion(*st.returnType_); } else if(!thisFunctions) { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } else { // This was a wildcard function, the union of which is still a wildcard function } } else if(otherFunctions) { // Other was a wildcard function, so this is now a wildcard function minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } } void StaticType::typeIntersect(const StaticType &st) { flags_ &= st.flags_; min_ = (min_ > st.min_) ? min_ : st.min_; max_ = (max_ < st.max_) ? max_ : st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ > st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ < st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeIntersect(*st.returnType_); } else { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } } if((flags_ & FUNCTION_TYPE) == 0 || minArgs_ > maxArgs_) { // A function is no longer part of this type flags_ &= ~FUNCTION_TYPE; minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } if(flags_ == 0 || max_ == 0 || min_ > max_) { (*this) = StaticType(); } } void StaticType::typeExcept(const StaticType &st) { assert((st.flags_ & FUNCTION_TYPE) == 0); flags_ &= ~st.flags_; } void StaticType::typeConcat(const StaticType &st) { bool thisFunctions = (flags_ & FUNCTION_TYPE) != 0; bool otherFunctions = (st.flags_ & FUNCTION_TYPE) != 0; flags_ |= st.flags_; min_ += st.min_; if(max_ == UNLIMITED || st.max_ == UNLIMITED) max_ = UNLIMITED; else max_ += st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ < st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ > st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeUnion(*st.returnType_); } else if(!thisFunctions) { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } else { // This was a wildcard function, the union of which is still a wildcard function } } else if(otherFunctions) { // Other was a wildcard function, so this is now a wildcard function minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } } void StaticType::typeNodeIntersect(const StaticType &st) { if(flags_ != st.flags_ && (flags_ & st.flags_) != 0) { min_ = 0; } flags_ &= st.flags_; min_ = (min_ < st.min_) ? min_ : st.min_; max_ = (max_ < st.max_) ? max_ : st.max_; flags_ &= ~FUNCTION_TYPE; minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; if(flags_ == 0 || max_ == 0) { min_ = 0; max_ = 0; flags_ = 0; } assert(min_ <= max_); } StaticType StaticType::operator|(const StaticType &st) const { StaticType result(*this); result.typeUnion(st); return result; } StaticType &StaticType::operator|=(const StaticType &st) { typeUnion(st); return *this; } StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b) { return (StaticType::StaticTypeFlags)((unsigned int)a | (unsigned int)b); } StaticType StaticType::operator&(const StaticType &st) const { StaticType result(*this); result.typeIntersect(st); return result; } StaticType &StaticType::operator&=(const StaticType &st) { typeIntersect(st); return *this; } StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b) { return (StaticType::StaticTypeFlags)((unsigned int)a & (unsigned int)b); } StaticType &StaticType::substitute(const StaticType &from, const StaticType &to) { assert((from.flags_ & FUNCTION_TYPE) == 0); assert((to.flags_ & FUNCTION_TYPE) == 0); if(containsType(from)) { if(to.max_ > 0) { if(max_ == UNLIMITED || to.max_ == UNLIMITED) max_ = UNLIMITED; else max_ *= to.max_; } flags_ &= ~from.flags_; flags_ |= to.flags_; if(flags_ == 0) { min_ = 0; max_ = 0; } } return *this; } StaticType &StaticType::multiply(unsigned int min, unsigned int max) { assert(min <= max); assert(min != UNLIMITED); min_ *= min; if(max == UNLIMITED || max_ == UNLIMITED) max_ = UNLIMITED; else max_ *= max; if(max_ == 0) { min_ = 0; flags_ = 0; } return *this; } void StaticType::setCardinality(unsigned int min, unsigned int max) { assert(min <= max); assert(min != UNLIMITED); min_ = min; max_ = max; if(max_ > 0 && flags_ == 0) flags_ = ITEM_TYPE; else if(max_ == 0 && flags_ != 0) flags_ = 0; } bool StaticType::containsType(StaticType::StaticTypeFlags flags) const { return (flags_ & flags) != 0; } bool StaticType::containsType(const StaticType &type) const { if((flags_ & type.flags_) == 0) return false; if((type.flags_ & FUNCTION_TYPE) != 0 && type.returnType_ != 0 && returnType_ != 0 && (type.minArgs_ > maxArgs_ || type.maxArgs_ < minArgs_ || returnType_->min_ > type.returnType_->max_ || returnType_->max_ < type.returnType_->min_ || (!type.returnType_->containsType(*returnType_) && (returnType_->min_ > 0 || type.returnType_->min_ > 0)) )) return false; return true; } bool StaticType::isType(const StaticType &type) const { if(type.flags_ == 0) return flags_ == 0; if(flags_ == 0) return type.min_ == 0; if((flags_ & type.flags_) == 0 || (flags_ & ~type.flags_) != 0) return false; if((type.flags_ & FUNCTION_TYPE) != 0 && type.returnType_ != 0 && (type.minArgs_ != minArgs_ || type.maxArgs_ != maxArgs_ || returnType_->min_ > type.returnType_->max_ || returnType_->max_ < type.returnType_->min_ || (!type.returnType_->containsType(*returnType_) && (returnType_->min_ > 0 || type.returnType_->min_ > 0)) )) return false; return true; } StaticType::TypeMatchEnum StaticType::matchesFunctionType(const StaticType &type) const { TypeMatchEnum result = ALWAYS; if(returnType_ && type.returnType_) { if(type.minArgs_ > maxArgs_ || type.maxArgs_ < minArgs_) return NEVER; if(result > MAYBE && type.minArgs_ != minArgs_ && type.maxArgs_ != maxArgs_) result = MAYBE; // TBD Take function conversion into account here - jpcs TypeMatch ret = returnType_->matches(*type.returnType_); // if(ret.type < result) result = ret.type; if(ret.cardinality < result) result = ret.cardinality; } return result; } StaticType::TypeMatchEnum StaticType::matchesType(const StaticType &type) const { TypeMatchEnum result = ALWAYS; if(type.flags_ == 0 && min_ == 0) return ALWAYS; if((flags_ & type.flags_) == 0) { if(min_ > 0 || type.min_ > 0) return NEVER; result = PROBABLY_NOT; } if((type.flags_ & ~flags_) != 0) result = MAYBE; TypeMatchEnum func = matchesFunctionType(type); if(flags_ == FUNCTION_TYPE) { if(func < result) result = func; } else { if(func == NEVER && result > PROBABLY_NOT) result = PROBABLY_NOT; if(func < ALWAYS && result > MAYBE) result = MAYBE; } return result; } StaticType::TypeMatch StaticType::matches(const StaticType &actual) const { TypeMatch result = { ALWAYS, ALWAYS }; if(min_ > actual.max_ || max_ < actual.min_) { result.cardinality = NEVER; } else if(min_ > actual.min_ || max_ < actual.max_) { if(actual.max_ != StaticType::UNLIMITED) result.cardinality = PROBABLY_NOT; else result.cardinality = MAYBE; } result.type = matchesType(actual); return result; } static int countBits(unsigned int v) { int result = 0; if(v == StaticType::ITEM_TYPE) { ++result; v &= ~StaticType::ITEM_TYPE; } if(v == StaticType::ANY_ATOMIC_TYPE) { ++result; v &= ~StaticType::ANY_ATOMIC_TYPE; } if(v == StaticType::NODE_TYPE) { ++result; v &= ~StaticType::NODE_TYPE; } while(v != 0) { result += (v & 0x1); v = v >> 1; } return result; } void StaticType::typeToBuf(XMLBuffer &result) const { if(flags_ == 0) { result.append(X("empty-sequence()")); return; } unsigned int flags = flags_; bool except = false; int count = 0; XMLBuffer buf; if(flags != ANY_ATOMIC_TYPE && (flags & ~ANY_ATOMIC_TYPE) == 0 && countBits(flags) > countBits(ANY_ATOMIC_TYPE & ~flags)) { result.append(X("(xs:anyAtomicType - ")); except = true; flags = ANY_ATOMIC_TYPE & ~flags; } else if(flags != NODE_TYPE && (flags & ~NODE_TYPE) == 0 && countBits(flags) > countBits(NODE_TYPE & ~flags)) { result.append(X("(node() - ")); except = true; flags = NODE_TYPE & ~flags; } else if(flags != ITEM_TYPE && countBits(flags) > countBits(ITEM_TYPE & ~flags)) { result.append(X("(item() - ")); except = true; flags = ITEM_TYPE & ~flags; } if(flags == ITEM_TYPE && returnType_ == 0) { if(count++) buf.append(X(" | ")); buf.append(X("item()")); flags = 0; } if((flags & ANY_ATOMIC_TYPE) == ANY_ATOMIC_TYPE) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anyAtomicType")); flags &= ~ANY_ATOMIC_TYPE; } if((flags & NODE_TYPE) == NODE_TYPE) { if(count++) buf.append(X(" | ")); buf.append(X("node()")); flags &= ~NODE_TYPE; } if((flags & DOCUMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("document-node()")); } if((flags & ELEMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("element()")); } if((flags & ATTRIBUTE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("attribute()")); } if((flags & TEXT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("text()")); } if((flags & PI_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("processing-instruction()")); } if((flags & COMMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("comment()")); } if((flags & NAMESPACE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("namespace()")); } if((flags & FUNCTION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("function(")); if(returnType_ == 0) { buf.append(X("*")); } else { XPath2Utils::numToBuf(minArgs_, buf); buf.append(X(",")); if(maxArgs_ == UNLIMITED) buf.append(X("unlimited")); else XPath2Utils::numToBuf(maxArgs_, buf); buf.append(X(",")); returnType_->typeToBuf(buf); } buf.append(X(")")); } if((flags & ANY_SIMPLE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anySimpleType")); } if((flags & ANY_URI_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anyURI")); } if((flags & BASE_64_BINARY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:base64Binary")); } if((flags & BOOLEAN_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:boolean")); } if((flags & DATE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:date")); } if((flags & DATE_TIME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:dateTime")); } if((flags & DAY_TIME_DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:dayTimeDuration")); } if((flags & DECIMAL_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:decimal")); } if((flags & DOUBLE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:double")); } if((flags & DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:duration")); } if((flags & FLOAT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:float")); } if((flags & G_DAY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gDay")); } if((flags & G_MONTH_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gMonth")); } if((flags & G_MONTH_DAY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gMonthDay")); } if((flags & G_YEAR_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gYear")); } if((flags & G_YEAR_MONTH_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gYearMonth")); } if((flags & HEX_BINARY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:hexBinary")); } if((flags & NOTATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:NOTATION")); } if((flags & QNAME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:QName")); } if((flags & STRING_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:string")); } if((flags & TIME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:time")); } if((flags & UNTYPED_ATOMIC_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:untypedAtomic")); } if((flags & YEAR_MONTH_DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:yearMonthDuration")); } if(count > 1) { result.append(X("(")); result.append(buf.getRawBuffer()); result.append(X(")")); } else { result.append(buf.getRawBuffer()); } if(except) { result.append(X(")")); } if(min_ == 0 && max_ == 1) { result.append(X("?")); } else if(min_ == 0 && max_ == StaticType::UNLIMITED) { result.append(X("*")); } else if(min_ == 1 && max_ == StaticType::UNLIMITED) { result.append(X("+")); } else if(min_ == 1 && max_ == 1) { // nothing } else { result.append(X("{")); XPath2Utils::numToBuf(min_, result); result.append(X(",")); if(max_ == UNLIMITED) result.append(X("unlimited")); else XPath2Utils::numToBuf(max_, result); result.append(X("}")); } } XQilla-2.3.4/src/ast/XQEffectiveBooleanValue.cpp0000644001725400016040000001174413273140037016376 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQEffectiveBooleanValue::XQEffectiveBooleanValue(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(EBV, memMgr), expr_(expr) { } ASTNode* XQEffectiveBooleanValue::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQEffectiveBooleanValue::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = StaticType::BOOLEAN_TYPE; if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQEffectiveBooleanValue::staticTyping"), X("It is a static error to take the effective boolean value " "of an updating expression [err:XUST0001]")); } if(expr_->getStaticAnalysis().getStaticType().getMin() >= 2 && !expr_->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) { XQThrow(XPath2TypeMatchException, X("XQEffectiveBooleanValue::staticTyping"), X("Effective Boolean Value cannot be extracted from this type [err:FORG0006]")); } return this; } static inline bool getEffectiveBooleanValueInternal(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info) { // If its operand is a singleton value ... if(second.isNull() && first->isAtomicValue()) { const AnyAtomicType::Ptr atom=first; // ... of type xs:boolean or derived from xs:boolean, fn:boolean returns the value of its operand unchanged. if(atom->getPrimitiveTypeIndex() == AnyAtomicType::BOOLEAN) return ((ATBooleanOrDerived*)atom.get())->isTrue(); // ... of type xs:string, xdt:untypedAtomic, or a type derived from one of these, fn:boolean returns false // if the operand value has zero length; otherwise it returns true. if((atom->getPrimitiveTypeIndex() == AnyAtomicType::STRING || atom->getPrimitiveTypeIndex() == AnyAtomicType::ANY_URI || atom->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC)) return !XPath2Utils::equals(atom->asString(context), XERCES_CPP_NAMESPACE_QUALIFIER XMLUni::fgZeroLenString); // ... of any numeric type or derived from a numeric type, fn:boolean returns false if the operand value is // NaN or is numerically equal to zero; otherwise it returns true. if(atom->isNumericValue()) { return (!((Numeric*)atom.get())->isZero() && !((Numeric*)atom.get())->isNaN()); } } // In all other cases, fn:boolean raises a type error. XQThrow3(XPath2TypeMatchException,X("EffectiveBooleanValueResult::nextOrTail"), X("Effective Boolean Value cannot be extracted from this type [err:FORG0006]"), info); return true; } bool XQEffectiveBooleanValue::get(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info) { // From $ 15.1.4 of the F&O specs: // The effective boolean value of an operand is defined as follows: // // If its operand is an empty sequence, fn:boolean returns false. if(first.isNull()) { return false; } // If its operand is a sequence whose first item is a node, fn:boolean returns true. if(first->isNode()) return true; return getEffectiveBooleanValueInternal(first, second, context, info); } BoolResult XQEffectiveBooleanValue::boolResult(DynamicContext* context) const { bool result; Result parent = expr_->createResult(context); const Item::Ptr first = parent->next(context); if(first.isNull()) { result = false; } else if(first->isNode()) { result = true; } else { result = getEffectiveBooleanValueInternal(first, parent->next(context), context, this); } return result; } Result XQEffectiveBooleanValue::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/ast/XQCallTemplate.cpp0000644001725400016040000002240113273140037014540 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; XQTemplateArgument::XQTemplateArgument(const XMLCh *qn, ASTNode *v, XPath2MemoryManager *mm) : qname(mm->getPooledString(qn)), uri(0), name(0), value(v), seqType(0), varSrc(mm) { } XQCallTemplate::XQCallTemplate(const XMLCh *qname, TemplateArguments *args, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(qname), uri_(0), name_(0), astName_(0), args_(args), templates_(XQillaAllocator(mm)) { } XQCallTemplate::XQCallTemplate(ASTNode *qname, TemplateArguments *args, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(0), uri_(0), name_(0), astName_(qname), args_(args), templates_(XQillaAllocator(mm)) { } XQCallTemplate::XQCallTemplate(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, ASTNode *astName, TemplateArguments *args, const UserFunctions &templates, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(qname), uri_(uri), name_(name), astName_(astName), args_(args), templates_(XQillaAllocator(mm)) { templates_ = templates; } ASTNode* XQCallTemplate::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // Resolve the template name if(astName_) { astName_ = new (mm) XQNameExpression(astName_, mm); astName_->setLocationInfo(this); astName_ = astName_->staticResolution(context); } else if(name_ == 0) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); name_ = XPath2NSUtils::getLocalName(qname_); if(prefix == 0 || *prefix == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix, this); } } // Resolve the call template argument names and check for duplicates TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if((*it)->name == 0) { (*it)->uri = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix((*it)->qname, mm), this); (*it)->name = XPath2NSUtils::getLocalName((*it)->qname); } // The template instance will call staticResolution on the argument values for(TemplateArguments::iterator it2 = args_->begin(); it2 != it; ++it2) { if(XPath2Utils::equals((*it)->name, (*it2)->name) && XPath2Utils::equals((*it)->uri, (*it2)->uri)) { XMLBuffer buf; buf.set(X("Two template parameters have the name {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0670]")); XQThrow3(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer(), *it); } } } } if(astName_ != 0) return this; // Lookup the template const XQUserFunction *tplt = context->lookUpNamedTemplate(uri_, name_); if(tplt == 0) { XMLBuffer buf; buf.set(X("A template called {")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X(" is not defined [err:XTSE0650]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } // Check the template's expected parameters against the call template arguments, // building the input argument list as we go vector argUsed(args_ ? args_->size() : 0, false); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(tplt->getSignature()->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = tplt->getSignature()->argSpecs->begin(); argIt != tplt->getSignature()->argSpecs->end(); ++argIt) { bool found = false; if(args_ != 0) { vector::iterator argUsedIt = argUsed.begin(); for(it = args_->begin(); it != args_->end(); ++it, ++argUsedIt) { if(XPath2Utils::equals((*it)->name, (*argIt)->getName()) && XPath2Utils::equals((*it)->uri, (*argIt)->getURI())) { found = true; newArgs.push_back((*it)->value); *argUsedIt = true; break; } } } if(!found) { // [ERR XTSE0690] It is a static error if a template that is invoked using xsl:call-template // declares a template parameter specifying required="yes" and not specifying tunnel="yes", if // no value for this parameter is supplied by the calling instruction. XMLBuffer buf; buf.set(X("No value is specified for the template parameter {")); buf.append((*argIt)->getURI()); buf.append(X("}")); buf.append((*argIt)->getName()); buf.append(X(" [err:XTSE0690]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } } } // Check for call template arguments that shouldn't be specified if(args_ != 0) { vector::iterator argUsedIt = argUsed.begin(); for(it = args_->begin(); it != args_->end(); ++it, ++argUsedIt) { if(!(*argUsedIt)) { // [ERR XTSE0680] In the case of xsl:call-template, it is a static error to pass a non-tunnel // parameter named x to a template that does not have a template parameter named x, unless // backwards compatible behavior is enabled for the xsl:call-template instruction. This is not // an error in the case of xsl:apply-templates, xsl:apply-imports, and xsl:next-match; in these // cases the parameter is simply ignored. XMLBuffer buf; buf.set(X("The template does not have a parameter named {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0680]")); XQThrow3(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer(), *it); } } } ASTNode *result = tplt->createInstance(newArgs, mm); result->setLocationInfo(this); return result->staticResolution(context); } ASTNode *XQCallTemplate::staticTypingImpl(StaticContext *context) { _src.clear(); // Calculate our static type from the template instances with names if(context) templates_ = context->getTemplateRules(); bool first = true; UserFunctions::iterator inIt; for(inIt = templates_.begin(); inIt != templates_.end(); ++inIt) { if((*inIt) == 0 || (*inIt)->getName() == 0) { *inIt = 0; continue; } if(first) { first = false; _src.getStaticType() = (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties((*inIt)->getBodyStaticAnalysis().getProperties()); } else { _src.getStaticType() |= (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & (*inIt)->getBodyStaticAnalysis().getProperties()); } _src.add((*inIt)->getBodyStaticAnalysis()); } TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if(!_src.removeVariable((*it)->uri, (*it)->name)) { // TBD This parameter will never be used - jpcs } } } // At this point we know astName_ is not null _src.add(astName_->getStaticAnalysis()); if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { _src.add((*it)->value->getStaticAnalysis()); } } return this; } Result XQCallTemplate::createResult(DynamicContext *context, int flags) const { AnyAtomicType::Ptr itemName = astName_->createResult(context)->next(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *uri = pQName->getURI(); const XMLCh *localname = pQName->getName(); // Lookup the template const XQUserFunction *tplt = context->lookUpNamedTemplate(uri, localname); if(tplt == 0) { XMLBuffer buf; buf.set(X("A template called {")); buf.append(uri); buf.append(X("}")); buf.append(localname); buf.append(X(" is not defined [err:XTSE0650]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } return XQApplyTemplates::executeTemplate(tplt, args_, 0, context, this); } XQilla-2.3.4/src/ast/XQFunction.cpp0000644001725400016040000001536213273140037013766 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif /* http://www.w3.org/2005/xpath-functions */ const XMLCh XQFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chDigit_2, chDigit_0, chDigit_0, chDigit_5, chForwardSlash, chLatin_x, chLatin_p, chLatin_a, chLatin_t, chLatin_h, chDash, chLatin_f, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQFunction::XQFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION, memMgr), name_(name), uri_(XMLChFunctionURI), sigString_(signature), signature_(0), _args(args) { } // bool XQFunction::isSubsetOf(const ASTNode *other) const // { // if(other->getType() != getType()) return false; // const XQFunction *o = (const XQFunction*)other; // if(!XPath2Utils::equals(_fURI, o._fURI) || // !XPath2Utils::equals(_fName, o._fName) || // _args.size() != o._args.size()) // return false; // VectorOfASTNodes::iterator i = _args.begin(); // VectorOfASTNodes::iterator j = o._args.begin(); // for(; i != _args.end(); ++i, ++j) { // // TBD non-deterministic functions - jpcs // if(!(*i)->isEqualTo(*j)) // return false; // } // return true; // } ASTNode *XQFunction::staticResolution(StaticContext *context) { resolveArguments(context); return this; } ASTNode *XQFunction::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); return this; } void XQFunction::parseSignature(StaticContext *context) { if(sigString_ && !signature_) { XPath2MemoryManager *mm = context->getMemoryManager(); XQLexer lexer(mm, _LANG_FUNCTION_SIGNATURE_, 0, 1, 1, mm->getPooledString(sigString_)); XQParserArgs args(&lexer); XQParser::yyparse(&args); signature_ = args._signature; signature_->staticResolution(context); if(signature_->argSpecs) { // If the signature has too many arguments, remove some while(signature_->argSpecs->size() > _args.size()) { signature_->argSpecs->back()->release(mm); signature_->argSpecs->pop_back(); } // If the signature has too few arguments, duplicate the last one. // (This is really only for fn:concat.) if(signature_->argSpecs->size() < _args.size()) { XMLBuffer buf(20); ArgumentSpec *argSpec = signature_->argSpecs->back(); unsigned int last = _args.size() + 1 - signature_->argSpecs->size(); for(unsigned int i = 2; i <= last; ++i) { ArgumentSpec *newArgSpec = new (mm) ArgumentSpec(argSpec, mm); buf.set(argSpec->getName()); XPath2Utils::numToBuf(i, buf); newArgSpec->setName(mm->getPooledString(buf.getRawBuffer())); newArgSpec->setQName(0); signature_->argSpecs->push_back(newArgSpec); } buf.set(argSpec->getName()); XPath2Utils::numToBuf(1, buf); argSpec->setName(mm->getPooledString(buf.getRawBuffer())); argSpec->setQName(0); } } } } void XQFunction::resolveArguments(StaticContext *context, bool numericFunction) { parseSignature(context); size_t paramNumber = 0; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i, ++paramNumber) { if(paramNumber < signature_->argSpecs->size()) { *i = (*signature_->argSpecs)[paramNumber]->getType()-> convertFunctionArg(*i, context, numericFunction, this); } *i = (*i)->staticResolution(context); } } void XQFunction::calculateSRCForArguments(StaticContext *context, bool checkTimezone) { for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQFunction::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } if(checkTimezone && (*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } if(context) { if(signature_ && signature_->returnType) { bool isPrimitive; signature_->returnType->getStaticType(_src.getStaticType(), context, isPrimitive, this); } else { // Default type is item()* _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } } } Result XQFunction::getParamNumber(size_t number, DynamicContext* context, int flags) const { assert(number > 0); assert(number <= getNumArgs()); return _args[number - 1]->createResult(context, flags); } size_t XQFunction::getNumArgs() const { return _args.size(); } Result XQFunction::createResult(DynamicContext* context, int flags) const { return createSequence(context); } Sequence XQFunction::createSequence(DynamicContext* context, int flags) const { return Sequence(context->getMemoryManager()); } XQilla-2.3.4/src/ast/XQValidate.cpp0000644001725400016040000002130313273140037013722 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQValidate::XQValidate(ASTNode *expr, DocumentCache::ValidationMode mode, XPath2MemoryManager *mm) : ASTNodeImpl(VALIDATE, mm), expr_(expr), mode_(mode) { } Result XQValidate::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQValidate::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { // Stream the node through the schema validator SchemaValidatorFilter svf(mode_ == DocumentCache::VALIDATION_STRICT, events, context->getDocumentCache()->getGrammarResolver(), context->getMemoryManager(), this); ValidateArgumentCheckFilter argCheck(&svf, mode_, context, this); expr_->generateAndTailCall(&argCheck, context, true, false); return 0; } ASTNode *XQValidate::staticResolution(StaticContext* context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQValidate::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.getStaticType() &= StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE; if(!_src.getStaticType().containsType(StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE)) { XQThrow(StaticErrorException, X("XQValidate::createSequence"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030].")); } return this; } //////////////////////////////////////////////////////////////////////////////////////////////////// ValidateArgumentCheckFilter::ValidateArgumentCheckFilter(EventHandler *next, DocumentCache::ValidationMode mode, DynamicContext *context, const LocationInfo *loc) : EventFilter(next), mode_(mode), info_(loc), context_(context), inDocumentNode_(false), seenDocElem_(false), level_(0), seenOne_(false) { } void ValidateArgumentCheckFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(seenOne_ && level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } seenOne_ = true; inDocumentNode_ = true; seenDocElem_ = false; ++level_; next_->startDocumentEvent(documentURI, encoding); } void ValidateArgumentCheckFilter::endDocumentEvent() { if(!seenDocElem_) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated must have exactly one child element [err:XQDY0061]"), info_); } next_->endDocumentEvent(); inDocumentNode_ = false; --level_; } void ValidateArgumentCheckFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(seenOne_ && level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { if(seenDocElem_) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated must have exactly one child element [err:XQDY0061]"), info_); } seenDocElem_ = true; } if((!inDocumentNode_ && level_ == 0) || (inDocumentNode_ && level_ == 1)) { // if validation is strict, there must be a schema for the root node if(mode_ == DocumentCache::VALIDATION_STRICT) { if(!context_->getDocumentCache()->getElementDecl(uri, localname)) { XMLBuffer msg(1023); msg.set(X("Element {")); msg.append(uri); msg.append(X("}")); msg.append(localname); msg.append(X(" is not defined as a global element [err:XQDY0084]")); XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), msg.getRawBuffer(), info_); } } } seenOne_ = true; ++level_; next_->startElementEvent(prefix, uri, localname); } void ValidateArgumentCheckFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void ValidateArgumentCheckFilter::textEvent(const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated can only have element, comments and processing instructions as children [err:XQDY0061]"), info_); } next_->textEvent(value); } void ValidateArgumentCheckFilter::textEvent(const XMLCh *chars, unsigned int length) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated can only have element, comments and processing instructions as children [err:XQDY0061]"), info_); } next_->textEvent(chars, length); } void ValidateArgumentCheckFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->piEvent(target, value); } void ValidateArgumentCheckFilter::commentEvent(const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->commentEvent(value); } void ValidateArgumentCheckFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ValidateArgumentCheckFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->namespaceEvent(prefix, uri); } void ValidateArgumentCheckFilter::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->atomicItemEvent(type, value, typeURI, typeName); } XQilla-2.3.4/src/ast/XQFunctionDeref.cpp0000644001725400016040000000717513273140037014737 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQFunctionDeref::XQFunctionDeref(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_DEREF, mm), expr_(expr), args_(args) { } ASTNode *XQFunctionDeref::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { *i = (*i)->staticResolution(context); } } return this; } ASTNode *XQFunctionDeref::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { _src.add((*i)->getStaticAnalysis()); } } if(expr_->getStaticAnalysis().getStaticType().getReturnType()) { _src.getStaticType() = *expr_->getStaticAnalysis().getStaticType().getReturnType(); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } return this; } class FunctionDerefResult : public ResultImpl { public: FunctionDerefResult(const XQFunctionDeref *ast) : ResultImpl(ast), ast_(ast) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { FunctionRef::Ptr func = (FunctionRef*)ast_->getExpression()->createResult(context)->next(context).get(); if(func.isNull()) return 0; VectorOfResults args; if(ast_->getArguments()) { for(VectorOfASTNodes::iterator i = ast_->getArguments()->begin(); i != ast_->getArguments()->end(); ++i) { args.push_back(ClosureResult::create(*i, context)); } } tail = func->execute(args, context, this); return 0; } private: const XQFunctionDeref *ast_; }; Result XQFunctionDeref::createResult(DynamicContext *context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getExpression()->createResult(context)->next(context).get(); if(func.isNull()) return 0; VectorOfResults args; if(getArguments()) { for(VectorOfASTNodes::iterator i = getArguments()->begin(); i != getArguments()->end(); ++i) { args.push_back(ClosureResult::create(*i, context)); } } return func->execute(args, context, this); } XQilla-2.3.4/src/ast/XQNav.cpp0000644001725400016040000003170313273140037012722 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XQNav::XQNav(XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(false) { } XQNav::XQNav(ASTNode *ast, XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(false) { addStep(ast); } XQNav::XQNav(const Steps &steps, bool sortAdded, XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(sortAdded) { _steps = steps; } XQNav::~XQNav() { //no-op } Result XQNav::createResult(DynamicContext* context, int flags) const { Steps::const_iterator end = _steps.end(); Steps::const_iterator it = _steps.begin(); Result result(0); if(it != end) { ASTNode *step = it->step; result = step->createResult(context, flags); StaticType st = step->getStaticAnalysis().getStaticType(); for(++it; it != end; ++it) { if(st.containsType(StaticType::ANY_ATOMIC_TYPE)) { result = new IntermediateStepCheckResult(step, result); } step = it->step; result = step->iterateResult(result, context); st = step->getStaticAnalysis().getStaticType(); } // the last step allows either nodes or atomic items if(st.containsType(StaticType::NODE_TYPE) && st.containsType(StaticType::ANY_ATOMIC_TYPE)) { result = new LastStepCheckResult(step, result); } } return result; } void XQNav::addStep(const StepInfo &step) { if(step.step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step.step)->_steps; for(Steps::iterator it2 = navSteps.begin(); it2 != navSteps.end(); ++it2) { _steps.push_back(*it2); } } else { _steps.push_back(step); } } void XQNav::addStepFront(ASTNode* step) { if(step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step)->_steps; for(Steps::reverse_iterator it2 = navSteps.rbegin(); it2 != navSteps.rend(); ++it2) { _steps.insert(_steps.begin(), *it2); } } else { _steps.insert(_steps.begin(), step); } } ASTNode* XQNav::staticResolution(StaticContext *context) { if(!_sortAdded) { _sortAdded = true; // Wrap ourselves in a document order sort XPath2MemoryManager *mm = context->getMemoryManager(); ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(_steps.back().step); return result->staticResolution(context); } Steps::iterator begin = _steps.begin(); Steps::iterator end = _steps.end(); Steps::iterator it = begin; for(; it != end; ++it) { // Statically resolve our step it->step = it->step->staticResolution(context); } return this; } ASTNode *XQNav::staticTypingImpl(StaticContext *context) { _src.clear(); unsigned int props = StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE; AutoDelete newSteps(0); if(context) newSteps.set(new Steps(XQillaAllocator(context->getMemoryManager()))); unsigned int min = 1, max = 1; Steps::iterator begin = _steps.begin(); Steps::iterator end = _steps.end(); Steps::iterator it = begin; for(; it != end; ++it) { // Statically resolve our step ASTNode *step = it->step; const StaticAnalysis &stepSrc = step->getStaticAnalysis(); min *= stepSrc.getStaticType().getMin(); if(max == StaticType::UNLIMITED || stepSrc.getStaticType().getMax() == StaticType::UNLIMITED) max = StaticType::UNLIMITED; else max *= stepSrc.getStaticType().getMax(); props = combineProperties(props, stepSrc.getProperties()); if(!context || stepSrc.areContextFlagsUsed() || _src.isNoFoldingForced() || stepSrc.getStaticType().containsType(StaticType::ANY_ATOMIC_TYPE) || stepSrc.isCreative()) { if(it != begin) { // Remove context item usage _src.addExceptContextFlags(stepSrc); } else { _src.add(stepSrc); } } else { // Constant fold, by clearing all our previous steps and just having our most recent step. // This is only possible because the result of steps has to be nodes, and // duplicates are removed, which means we aren't forced to execute a constant // step a set number of times. newSteps->clear(); _src.add(stepSrc); } if(context) { if(step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step)->_steps; for(Steps::iterator it2 = navSteps.begin(); it2 != navSteps.end(); ++it2) { newSteps->push_back(it2->step); } } else { newSteps->push_back(step); } } } if(context) { _steps = *newSteps.get(); newSteps->clear(); it = _steps.begin(); end = _steps.end(); for(; it != end; ++it) { // Special case, to optimise //foo or //descendant::foo if(it->step->getType() == STEP) { XQStep *step = (XQStep*)it->step; NodeTest *nodetest = (NodeTest*)step->getNodeTest(); // Check for a step with a type wildcard if(nodetest->getTypeWildcard() && (it + 1) != end) { bool usesContextPositionOrSize = false; const ASTNode *peek = (it + 1)->step; while(peek->getType() == PREDICATE) { const XQPredicate *pred = (const XQPredicate*)peek; if(pred->getPredicate()->getStaticAnalysis().isContextPositionUsed() || pred->getPredicate()->getStaticAnalysis().isContextSizeUsed() || pred->getPredicate()->getStaticAnalysis().getStaticType().containsType(StaticType::NUMERIC_TYPE)) { usesContextPositionOrSize = true; } peek = pred->getExpression(); } if(peek->getType() == STEP) { const XQStep *peekstep = (XQStep*)peek; // If the next node is CHILD or DESCENDANT axis, then // this step must have children if(peekstep->getAxis() == XQStep::CHILD || peekstep->getAxis() == XQStep::DESCENDANT) { // Check for a descendant-or-self axis if(step->getAxis() == XQStep::DESCENDANT_OR_SELF) { if(!usesContextPositionOrSize) { // This is a descendant-or-self::node()/child::foo that we can optimise into descendant::foo ++it; const_cast(peekstep)->setAxis(XQStep::DESCENDANT); // Set the properties to those for descendant axis const_cast(peekstep->getStaticAnalysis()). setProperties(StaticAnalysis::SUBTREE | StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SAMEDOC); } } nodetest->setHasChildren(); } // If the next node is ATTRIBUTE axis, then this step needs to be // an element else if(peekstep->getAxis() == XQStep::ATTRIBUTE) { nodetest->setTypeWildcard(false); nodetest->setNodeType(Node::element_string); } } } } newSteps->push_back(*it); } _steps = *newSteps.get(); } if(!_steps.empty()) { _src.getStaticType() = _steps.back().step->getStaticAnalysis().getStaticType(); _src.getStaticType().multiply(min, max); } _src.setProperties(props); return this; } const XQNav::Steps &XQNav::getSteps() const { return _steps; } unsigned int XQNav::combineProperties(unsigned int prev_props, unsigned int step_props) { unsigned int new_props = 0; if((step_props & StaticAnalysis::SELF)) { new_props |= prev_props; } if((prev_props & StaticAnalysis::ONENODE) && (step_props & StaticAnalysis::DOCORDER)) { // If there was only one input node, and the step is in document order // then we are still in document order new_props |= StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED; } if((prev_props & StaticAnalysis::DOCORDER) && (prev_props & StaticAnalysis::PEER) && (step_props & StaticAnalysis::DOCORDER) && (step_props & StaticAnalysis::SUBTREE)) { // We keep the DOCORDER property, along with a few others that come for free new_props |= StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SUBTREE; if(step_props & StaticAnalysis::PEER) { new_props |= StaticAnalysis::PEER; } } if((prev_props & StaticAnalysis::GROUPED) && (step_props & StaticAnalysis::SAMEDOC)) { // If the step keeps in the SAMEDOC, then the GROUPED property is maintained new_props |= StaticAnalysis::GROUPED; } if((prev_props & StaticAnalysis::SUBTREE) && (step_props & StaticAnalysis::SUBTREE)) { // If both are SUBTREE, then we still have SUBTREE new_props |= StaticAnalysis::SUBTREE; } if((prev_props & StaticAnalysis::SAMEDOC) && (step_props & StaticAnalysis::SAMEDOC)) { // If both are SAMEDOC, then we still have SAMEDOC new_props |= StaticAnalysis::SAMEDOC; } if((prev_props & StaticAnalysis::ONENODE) && (step_props & StaticAnalysis::ONENODE)) { // If both are ONENODE, then we still have ONENODE new_props |= StaticAnalysis::ONENODE; } return new_props; } ///////////////////////////////////// // NavStepResult ///////////////////////////////////// NavStepResult::NavStepResult(const Result &parent, const ASTNode *step, size_t contextSize) : ResultImpl(step), parent_(parent), step_(step), stepResult_(0), contextPos_(0), contextSize_(contextSize), contextItem_(0) { } Item::Ptr NavStepResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(contextItem_); Item::Ptr result = stepResult_->next(context); while(result.isNull()) { context->testInterrupt(); autoReset.resetContextInfo(); contextItem_ = parent_->next(context); if(contextItem_.isNull()) { parent_ = 0; return 0; } ++contextPos_; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(contextItem_); stepResult_ = step_->createResult(context); result = stepResult_->next(context); } return result; } IntermediateStepCheckResult::IntermediateStepCheckResult(const LocationInfo *o, const Result &parent) : ResultImpl(o), parent_(parent) { } Item::Ptr IntermediateStepCheckResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); // Check it's a node if(!result.isNull() && !result->isNode()) { XQThrow(TypeErrorException,X("NavStepResult::next"), X("The result of a step expression (StepExpr) is not a sequence of nodes [err:XPTY0019]")); } return result; } LastStepCheckResult::LastStepCheckResult(const LocationInfo *o, const Result &parent) : ResultImpl(o), parent_(parent), _nTypeOfItemsInLastStep(0) { } Item::Ptr LastStepCheckResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); if(result != NULLRCP) { // the last step allows either nodes or atomic items switch(_nTypeOfItemsInLastStep) { case 0: _nTypeOfItemsInLastStep=result->isNode()?1:2; break; case 1: if(!result->isNode()) XQThrow(TypeErrorException,X("LastStepCheckResult::next"), X("The result of the last step in a path expression contains both nodes and atomic values [err:XPTY0018]")); break; case 2: if(result->isNode()) XQThrow(TypeErrorException,X("LastStepCheckResult::next"), X("The result of the last step in a path expression contains both nodes and atomic values [err:XPTY0018]")); break; } } return result; } XQilla-2.3.4/src/ast/XQOperator.cpp0000644001725400016040000000370313273140037013770 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XQOperator::XQOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ASTNodeImpl(OPERATOR, memMgr), _args(args) { _opName=opName; } void XQOperator::addArgument(ASTNode* arg) { _args.push_back(arg); } ASTNode* XQOperator::getArgument(unsigned int index) const { assert(index<_args.size()); return _args[index]; } void XQOperator::setArgument(unsigned int index, ASTNode *arg) { assert(index<_args.size()); _args[index] = arg; } void XQOperator::removeArgument(unsigned int index) { assert(index<_args.size()); _args.erase(_args.begin() + index); } unsigned int XQOperator::getNumArgs() const { return (unsigned int)_args.size(); } const XMLCh* XQOperator::getOperatorName() const { return _opName; } const VectorOfASTNodes &XQOperator::getArguments() const { return _args; } XQilla-2.3.4/src/ast/XQLiteral.cpp0000644001725400016040000002430113273140037013566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; ASTNode *XQLiteral::create(const Item::Ptr &item, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location) { if(item->isAtomicValue()) { ASTNode *result = 0; const AnyAtomicType *atom = (const AnyAtomicType*)item.get(); switch(atom->getPrimitiveTypeIndex()) { case AnyAtomicType::QNAME: { const ATQNameOrDerived *qname = (const ATQNameOrDerived*)atom; result = new (memMgr) XQQNameLiteral(atom->getTypeURI(), atom->getTypeName(), qname->getURI(), qname->getPrefix(), qname->getName(), memMgr); break; } case AnyAtomicType::DECIMAL: case AnyAtomicType::DOUBLE: case AnyAtomicType::FLOAT: { const Numeric *number = (const Numeric*)atom; if(number->getState() == Numeric::NUM || (number->getState() == Numeric::NEG_NUM && !number->isZero())) { result = new (memMgr) XQNumericLiteral(number->getTypeURI(), number->getTypeName(), number->asMAPM(), number->getPrimitiveTypeIndex(), memMgr); break; } // Fall through } default: result = new (memMgr) XQLiteral(atom->getTypeURI(), atom->getTypeName(), atom->asString(context), atom->getPrimitiveTypeIndex(), memMgr); break; } result->setLocationInfo(location); return result; } else { XQThrow2(::IllegalArgumentException, X("XQLiteral::create"), X("Cannot create an ASTNode literal for a non atomic item")); } } ASTNode *XQLiteral::create(bool value, XPath2MemoryManager* mm, const LocationInfo *location) { ASTNode *result = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value ? SchemaSymbols::fgATTVAL_TRUE : SchemaSymbols::fgATTVAL_FALSE, AnyAtomicType::BOOLEAN, mm); result->setLocationInfo(location); return result; } XQLiteral::XQLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr) : ASTNodeImpl(LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), primitiveType_(primitiveType), value_(value) { _src.getStaticType() = StaticType::create(primitiveType_); } bool XQLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { switch(primitiveType_) { case AnyAtomicType::DATE: case AnyAtomicType::DATE_TIME: case AnyAtomicType::TIME: case AnyAtomicType::G_DAY: case AnyAtomicType::G_MONTH: case AnyAtomicType::G_MONTH_DAY: case AnyAtomicType::G_YEAR: case AnyAtomicType::G_YEAR_MONTH: { if(context == 0) return true; AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(context->getMemoryManager()); Item::Ptr item = dContext->getItemFactory()->createDerivedFromAtomicType(primitiveType_, typeURI_, typeName_, value_, dContext); return !((const DateOrTimeType*)item.get())->hasTimezone(); } default: break; } return false; } ASTNode* XQLiteral::staticResolution(StaticContext *context) { switch(primitiveType_) { case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: { // Constant fold, to parse numeric literals XPath2MemoryManager* mm = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); Result result = createResult(dContext); ASTNode *newBlock = XQSequence::constantFold(result, dContext, mm, this); this->release(); return newBlock; } default: break; } return this; } ASTNode *XQLiteral::staticTypingImpl(StaticContext *context) { return this; } BoolResult XQLiteral::boolResult(DynamicContext* context) const { assert(primitiveType_ == AnyAtomicType::BOOLEAN); return XPath2Utils::equals(SchemaSymbols::fgATTVAL_TRUE, value_); } Result XQLiteral::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(primitiveType_, typeURI_, typeName_, value_, context).get(); } EventGenerator::Ptr XQLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { events->atomicItemEvent(primitiveType_, value_, typeURI_, typeName_); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQQNameLiteral::XQQNameLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* localname, XPath2MemoryManager* memMgr) : ASTNodeImpl(QNAME_LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), uri_(uri), prefix_(prefix), localname_(localname) { _src.getStaticType() = StaticType::QNAME_TYPE; } bool XQQNameLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { return false; } ASTNode* XQQNameLiteral::staticResolution(StaticContext *context) { return this; } ASTNode *XQQNameLiteral::staticTypingImpl(StaticContext *context) { return this; } Result XQQNameLiteral::createResult(DynamicContext* context, int flags) const { return Item::Ptr(new ATQNameOrDerivedImpl(typeURI_, typeName_, uri_, prefix_, localname_, context)); } EventGenerator::Ptr XQQNameLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer buf; if(prefix_ && *prefix_) { buf.append(prefix_); buf.append(':'); } buf.append(localname_); events->atomicItemEvent(AnyAtomicType::QNAME, buf.getRawBuffer(), typeURI_, typeName_); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQNumericLiteral::XQNumericLiteral(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr) : ASTNodeImpl(NUMERIC_LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), primitiveType_(primitiveType) { _src.getStaticType() = StaticType::create(primitiveType_); memset(&value_, 0, sizeof(value_)); const M_APM cval = value.c_struct(); value_.m_apm_datalength = cval->m_apm_datalength; value_.m_apm_exponent = cval->m_apm_exponent; value_.m_apm_sign = cval->m_apm_sign; int len = (cval->m_apm_datalength + 1) >> 1; value_.m_apm_data = (UCHAR*)memMgr->allocate(len); memcpy(value_.m_apm_data, cval->m_apm_data, len); } bool XQNumericLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { return false; } ASTNode* XQNumericLiteral::staticResolution(StaticContext *context) { return this; } ASTNode *XQNumericLiteral::staticTypingImpl(StaticContext *context) { return this; } MAPM XQNumericLiteral::getValue() const { // Use the C API to copy our fake MAPM MAPM copy; m_apm_copy(const_cast(copy.c_struct()), const_cast(&value_)); return copy; } Result XQNumericLiteral::createResult(DynamicContext* context, int flags) const { switch(primitiveType_) { case AnyAtomicType::DECIMAL: return (Item::Ptr)new ATDecimalOrDerivedImpl(typeURI_, typeName_, getValue(), context); case AnyAtomicType::FLOAT: return (Item::Ptr)new ATFloatOrDerivedImpl(typeURI_, typeName_, getValue(), context); case AnyAtomicType::DOUBLE: return (Item::Ptr)new ATDoubleOrDerivedImpl(typeURI_, typeName_, getValue(), context); default: break; } return 0; } EventGenerator::Ptr XQNumericLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { switch(primitiveType_) { case AnyAtomicType::DECIMAL: events->atomicItemEvent(primitiveType_, Numeric::asDecimalString(getValue(), ATDecimalOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; case AnyAtomicType::FLOAT: events->atomicItemEvent(primitiveType_, Numeric::asDoubleString(Numeric::NUM, getValue(), ATFloatOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; case AnyAtomicType::DOUBLE: events->atomicItemEvent(primitiveType_, Numeric::asDoubleString(Numeric::NUM, getValue(), ATDoubleOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; default: break; } return 0; } XQilla-2.3.4/src/ast/XQCommentConstructor.cpp0000644001725400016040000001017213273140037016043 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQCommentConstructor::XQCommentConstructor(ASTNode *value, XPath2MemoryManager* mm, bool xslt) : XQDOMConstructor(mm), m_value(value), xslt_(xslt) { } EventGenerator::Ptr XQCommentConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer value; getStringValue(m_value, value, context); // Check for two dashes in a row, or a dash at the end if(xslt_) { XMLBuffer buf(value.getLen()); bool foundDash = false; const XMLCh *ptr = value.getRawBuffer(); const XMLCh *end = ptr + value.getLen(); while(ptr != end) { if(*ptr == chDash) { if(foundDash) { buf.append(' '); } foundDash = true; } else foundDash = false; buf.append(*ptr); ++ptr; } if(foundDash) { buf.append(' '); } value.set(buf.getRawBuffer()); } else { bool foundDash = false; const XMLCh *ptr = value.getRawBuffer(); const XMLCh *end = ptr + value.getLen(); while(ptr != end) { if(*ptr == chDash) { if(foundDash) break; foundDash = true; } else foundDash = false; ++ptr; } if(foundDash) XQThrow(ASTException,X("DOM Constructor"),X("It is a dynamic error if the result of the content expression of " "a computed comment constructor contains two adjacent hyphens or " "ends with a hyphen. [err:XQDY0072]")); } events->commentEvent(value.getRawBuffer()); return 0; } ASTNode* XQCommentConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQCommentConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQCommentConstructor::staticTyping"), X("It is a static error for the value expression of a comment node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::COMMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQCommentConstructor::getNodeType() const { return Node::comment_string; } ASTNode *XQCommentConstructor::getValue() const { return m_value; } void XQCommentConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.4/src/ast/XQAttributeConstructor.cpp0000644001725400016040000001273113273140037016407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQAttributeConstructor::XQAttributeConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_children(children) { } EventGenerator::Ptr XQAttributeConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AnyAtomicType::Ptr itemName = m_name->createResult(context)->next(context); const ATQNameOrDerived* pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = pQName->getPrefix(); const XMLCh *uri = pQName->getURI(); const XMLCh *name = pQName->getName(); if((uri==NULL && XPath2Utils::equals(name, XMLUni::fgXMLNSString)) || XPath2Utils::equals(uri, XMLUni::fgXMLNSURIName)) XQThrow(ASTException,X("DOM Constructor"),X("A computed attribute constructor cannot create a namespace declaration [err:XQDY0044]")); XMLBuffer value; getStringValue(m_children, value, context); const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; // check if it's xml:id static const XMLCh id[] = { 'i', 'd', 0 }; if(XPath2Utils::equals(name, id) && XPath2Utils::equals(uri, XMLUni::fgXMLURIName)) { // If the attribute name is xml:id, the string value and typed value of the attribute are further normalized by // discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters // by a single space (#x20) character. XMLString::collapseWS(value.getRawBuffer(), context->getMemoryManager()); typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = XMLUni::fgIDString; } events->attributeEvent(emptyToNull(prefix), emptyToNull(uri), name, value.getRawBuffer(), typeURI, typeName); return 0; } ASTNode* XQAttributeConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // and run static resolution m_name = new (mm) XQNameExpression(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); unsigned int i; for(i = 0;i < m_children->size(); ++i) { // atomize content and run static resolution (*m_children)[i] = new (mm) XQAtomize((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } return this; } ASTNode *XQAttributeConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAttributeConstructor::staticTyping"), X("It is a static error for the name expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } unsigned int i; for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAttributeConstructor::staticTyping"), X("It is a static error for the a value expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::ATTRIBUTE_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQAttributeConstructor::getNodeType() const { return Node::attribute_string; } ASTNode *XQAttributeConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQAttributeConstructor::getChildren() const { return m_children; } void XQAttributeConstructor::setName(ASTNode *name) { m_name = name; } XQilla-2.3.4/src/ast/XQCastAs.cpp0000644001725400016040000002042713273140037013355 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQCastAs::XQCastAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(CAST_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(false), _typeIndex((AnyAtomicType::AtomicObjectType)-1) { } XQCastAs::XQCastAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(CAST_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(isPrimitive), _typeIndex(typeIndex) { } ASTNode* XQCastAs::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); const SequenceType::ItemType *itemType = _exprType->getItemType(); if(itemType != NULL) { if(XPath2Utils::equals(itemType->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(itemType->getType()->getName(), XMLUni::fgNotationString) || XPath2Utils::equals(itemType->getType()->getName(), AnyAtomicType::fgDT_ANYATOMICTYPE))) XQThrow(TypeErrorException,X("XQCastAs::staticResolution"), X("The target type of a cast expression must be an atomic type that is in the in-scope schema types and is not xs:NOTATION or xdt:anyAtomicType [err:XPST0080]")); } if(_exprType->getItemTestType() != SequenceType::ItemType::TEST_ATOMIC_TYPE) XQThrow(TypeErrorException,X("XQCastAs::staticResolution"),X("Cannot cast to a non atomic type")); _typeIndex = context->getItemFactory()-> getPrimitiveTypeIndex(_exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), _isPrimitive); // If this is a cast to xs:QName or xs:NOTATION and the argument is a string literal // evaluate immediately, since they aren't allowed otherwise if((_typeIndex == AnyAtomicType::QNAME || _typeIndex == AnyAtomicType::NOTATION) && _expr->getType() == LITERAL && ((XQLiteral*)_expr)->getPrimitiveType() == AnyAtomicType::STRING) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); AnyAtomicType::Ptr item = (AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get(); try { if(_isPrimitive) { item = item->castAsNoCheck(_typeIndex, 0, 0, dContext); } else { item = item->castAsNoCheck(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), dContext); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } return XQLiteral::create(item, dContext, mm, this)->staticResolution(context); } _expr = new (mm) XQAtomize(_expr, mm); _expr->setLocationInfo(this); _expr = _expr->staticResolution(context); return this; } ASTNode *XQCastAs::staticTypingImpl(StaticContext *context) { _src.clear(); const SequenceType::ItemType *itemType = _exprType->getItemType(); if(itemType != NULL) { _src.getStaticType() = StaticType::create(_typeIndex); if(_exprType->getOccurrenceIndicator() == SequenceType::QUESTION_MARK) { _src.getStaticType().multiply(0, 1); } } _src.add(_expr->getStaticAnalysis()); if(_typeIndex == AnyAtomicType::QNAME && !_expr->getStaticAnalysis().getStaticType().containsType(StaticType::QNAME_TYPE) && (_exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || _expr->getStaticAnalysis().getStaticType().containsType(StaticType::ITEM_TYPE))) { XQThrow(TypeErrorException,X("XQCastAs::staticTyping"), X("Only a subtype of xs:QName can be cast to a subtype of xs:QName [err:XPTY0004]")); } if(_typeIndex == AnyAtomicType::NOTATION && !_expr->getStaticAnalysis().getStaticType().containsType(StaticType::NOTATION_TYPE) && (_exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || _expr->getStaticAnalysis().getStaticType().containsType(StaticType::ITEM_TYPE))) { XQThrow(TypeErrorException,X("XQCastAs::staticTyping"), X("Only a subtype of xs:NOTATION can be cast to a subtype of xs:NOTATION [err:XPTY0004]")); } return this; } ASTNode *XQCastAs::getExpression() const { return _expr; } SequenceType *XQCastAs::getSequenceType() const { return _exprType; } void XQCastAs::setExpression(ASTNode *item) { _expr = item; } AnyAtomicType::Ptr XQCastAs::cast(const AnyAtomicType::Ptr &in, DynamicContext *context) const { try { if(_isPrimitive) { return in->castAs(_typeIndex, 0, 0, context); } else { return in->castAs(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), context); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } AnyAtomicType::Ptr XQCastAs::cast(const XMLCh *value, DynamicContext *context) const { try { if(_isPrimitive) { return context->getItemFactory()-> createDerivedFromAtomicType(_typeIndex, value, context); } else { return context->getItemFactory()-> createDerivedFromAtomicType(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), value, context); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } Result XQCastAs::createResult(DynamicContext* context, int flags) const { // The semantics of the cast expression are as follows: // 1. Atomization is performed on the input expression. Result toBeCasted(getExpression()->createResult(context)); const Item::Ptr first = toBeCasted->next(context); if(first.isNull()) { // 3. If the result of atomization is an empty sequence: // 1. If ? is specified after the target type, the result of the cast expression is an empty sequence. // 2. If ? is not specified after the target type, a type error is raised [err:XPTY0004]. if(getSequenceType()->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE) { XQThrow(TypeErrorException,X("XQCastAs::createResult"), X("The input to a non-optional cast as expression is an empty sequence [err:XPTY0004]")); } else { return 0; } } const Item::Ptr second = toBeCasted->next(context); // 2. If the result of atomization is a sequence of more than one atomic value, a type error is raised.[err:XPTY0004] if(second.notNull()) { XQThrow(TypeErrorException,X("XQCastAs::createResult"), X("The input to a cast as expression is more than one atomic value [err:XPTY0004]")); } // 4. If the result of atomization is a single atomic value, the result of the cast expression depends on the input type and the target type. // The normative definition of these rules is given in [XQuery 1.0 and XPath 2.0 Functions and Operators]. return (Item::Ptr)cast((const AnyAtomicType*)first.get(), context); } XQilla-2.3.4/src/ast/XQDocumentOrder.cpp0000644001725400016040000000613713273140037014753 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XQDocumentOrder::XQDocumentOrder(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(DOCUMENT_ORDER, memMgr), expr_(expr), unordered_(false) { } XQDocumentOrder::XQDocumentOrder(ASTNode* expr, bool unordered, XPath2MemoryManager* memMgr) : ASTNodeImpl(DOCUMENT_ORDER, memMgr), expr_(expr), unordered_(unordered) { } ASTNode* XQDocumentOrder::staticResolution(StaticContext *context) { unordered_ = context->getNodeSetOrdering() == StaticContext::ORDERING_UNORDERED; expr_ = expr_->staticResolution(context); return this; } ASTNode *XQDocumentOrder::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); if(_src.getStaticType().getMin() > 0) _src.getStaticType().setCardinality(1, _src.getStaticType().getMax()); // Check if nodes will be returned if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return substitute(expr_); } // Check if it's already in document order if((expr_->getStaticAnalysis().getProperties() & StaticAnalysis::DOCORDER) != 0) { return substitute(expr_); } _src.setProperties(expr_->getStaticAnalysis().getProperties() | StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED); return this; } Result XQDocumentOrder::createResult(DynamicContext* context, int flags) const { if(unordered_) { return new UniqueNodesResult(this, expr_->createResult(context, flags), context); } else { return new DocumentOrderResult(this, expr_->createResult(context, flags)); } } Item::Ptr DocumentOrderResult::nextOrTail(Result &tail, DynamicContext *context) { Sequence seq = parent_->toSequence(context); seq.sortIntoDocumentOrder(context); tail = seq; return 0; } Item::Ptr UniqueNodesResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); if(nTypeOfItemsInLastStep_ == 0 && result.notNull()) nTypeOfItemsInLastStep_ = result->isNode() ? 1 : 2; if(nTypeOfItemsInLastStep_ == 1) { while(result.notNull()) { if(noDups_.insert(result).second) break; else result = parent_->next(context); } } return result; } XQilla-2.3.4/src/ast/XQAtomize.cpp0000644001725400016040000001066213273140037013607 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQAtomize::XQAtomize(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(ATOMIZE, memMgr), expr_(expr), doPSVI_(true) { } XQAtomize::XQAtomize(ASTNode* expr, bool doPSVI, XPath2MemoryManager* memMgr) : ASTNodeImpl(ATOMIZE, memMgr), expr_(expr), doPSVI_(doPSVI) { } ASTNode* XQAtomize::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); doPSVI_ = context->getDocumentCache()->getDoPSVI(); return this; } ASTNode *XQAtomize::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAtomize::staticTyping"), X("It is a static error for an atomized expression " "to be an updating expression [err:XUST0001]")); } if(_src.getStaticType().isType(StaticType::FUNCTION_TYPE) && _src.getStaticType().getMin() > 0) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - the expression has a static type of ")); _src.getStaticType().typeToBuf(buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQAtomize::staticTyping"), buf.getRawBuffer()); } if(!_src.getStaticType().containsType(StaticType::NODE_TYPE|StaticType::FUNCTION_TYPE)) { // If the expression has no nodes, this function does nothing return substitute(expr_); } if(doPSVI_) { _src.getStaticType().substitute(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE, StaticType(StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED)); } else { _src.getStaticType().substitute(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE, StaticType::UNTYPED_ATOMIC_TYPE); } _src.getStaticType().substitute(StaticType::DOCUMENT_TYPE | StaticType::TEXT_TYPE, StaticType::UNTYPED_ATOMIC_TYPE); _src.getStaticType().substitute(StaticType::NAMESPACE_TYPE | StaticType::COMMENT_TYPE | StaticType::PI_TYPE, StaticType::STRING_TYPE); // Remove function types _src.getStaticType() &= StaticType(StaticType::NODE_TYPE | StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED); return this; } Result XQAtomize::createResult(DynamicContext* context, int flags) const { return new AtomizeResult(this, expr_->createResult(context, flags)); } Item::Ptr AtomizeResult::next(DynamicContext *context) { // for $item in (Expr) return // typeswitch ($item) // case $value as atomic value return $value // default $node return fn:data($node) Item::Ptr result = _sub->next(context); while(result.isNull()) { _sub = 0; result = _parent->next(context); if(result.isNull()) { _parent = 0; return 0; } if(result->isNode()) { _sub = ((Node*)result.get())->dmTypedValue(context); result = _sub->next(context); } else if(result->isFunction()) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - found item of type ")); result->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("AtomizeResult::next"), buf.getRawBuffer()); } } return result; } XQilla-2.3.4/src/ast/WhereTuple.cpp0000644001725400016040000001154413273140037014012 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include WhereTuple::WhereTuple(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(WHERE, parent, mm), expr_(expr) { } TupleNode *WhereTuple::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); parent_ = parent_->staticResolution(context); if(expr_->getType() != ASTNode::OPERATOR || ((XQOperator*)expr_)->getOperatorName() != And::name) { expr_ = new (mm) XQEffectiveBooleanValue(expr_, mm); expr_->setLocationInfo(this); } expr_ = expr_->staticResolution(context); return this; } static bool canPushWhereBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return true; break; } case TupleNode::WHERE: return canPushWhereBack(ancestor->getParent(), exprSrc); case TupleNode::COUNT: case TupleNode::CONTEXT_TUPLE: break; case TupleNode::ORDER_BY: case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *WhereTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("WhereTuple::staticTypingSetup"), X("It is a static error for the where expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Split if expr_ is the And operator if(context && expr_->getType() == ASTNode::OPERATOR && ((XQOperator*)expr_)->getOperatorName() == And::name) { XPath2MemoryManager *mm = context->getMemoryManager(); And *andOp = (And*)expr_; TupleNode *result = parent_; for(unsigned int index = 0; index < andOp->getNumArgs(); ++index) { result = new (mm) WhereTuple(result, andOp->getArgument(index), mm); result->setLocationInfo(this); result = result->staticTypingImpl(context); } parent_ = 0; expr_ = 0; this->release(); return result; } // Push back if possible if(canPushWhereBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this WhereTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = 0; max_ = parent_->getMax(); return this; } TupleNode *WhereTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class WhereTupleResult : public TupleResult { public: WhereTupleResult(const WhereTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { while(parent_->next(context)) { context->testInterrupt(); AutoVariableStoreReset reset(context, parent_); if(ast_->getExpression()->boolResult(context)) return true; } return false; } private: const WhereTuple *ast_; TupleResult::Ptr parent_; }; TupleResult::Ptr WhereTuple::createResult(DynamicContext* context) const { return new WhereTupleResult(this, parent_->createResult(context)); } XQilla-2.3.4/src/ast/XQFunctionConversion.cpp0000644001725400016040000000357713273140037016041 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQFunctionConversion::XQFunctionConversion(ASTNode* expr, SequenceType* seqType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_CONVERSION, memMgr), expr_(expr), seqType_(seqType) { } ASTNode* XQFunctionConversion::staticResolution(StaticContext *context) { seqType_->staticResolution(context); return seqType_->convertFunctionArg(expr_, context, /*numericfunction*/false, seqType_) ->staticResolution(context); } ASTNode *XQFunctionConversion::staticTypingImpl(StaticContext *context) { // Never happens return this; } Result XQFunctionConversion::createResult(DynamicContext* context, int flags) const { // Never happens return 0; } ASTNode *XQFunctionConversion::getExpression() const { return expr_; } SequenceType *XQFunctionConversion::getSequenceType() const { return seqType_; } void XQFunctionConversion::setExpression(ASTNode *item) { expr_ = item; } XQilla-2.3.4/src/ast/XQDOMConstructor.cpp0000644001725400016040000002445513273140037015071 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQDOMConstructor::XQDOMConstructor(XPath2MemoryManager* mm) : ASTNodeImpl(DOM_CONSTRUCTOR, mm), queryPathTree_(0) { } Result XQDOMConstructor::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, queryPathTree_, context); } bool XQDOMConstructor::getStringValue(const VectorOfASTNodes* m_children, XMLBuffer &value, DynamicContext *context) { bool bSomethingFound=false; for(VectorOfASTNodes::const_iterator itCont = m_children->begin(); itCont != m_children->end (); ++itCont) { if(getStringValue(*itCont, value, context)) bSomethingFound = true; } return bSomethingFound; } bool XQDOMConstructor::getStringValue(const ASTNode *child, XMLBuffer &value, DynamicContext *context) { bool bSomethingFound=false; Result childList = child->createResult(context); Item::Ptr item; bool addSpace = false; while((item = childList->next(context)) != NULLRCP) { if(addSpace) value.append(' '); else addSpace = true; value.append(item->asString(context)); bSomethingFound=true; } return bSomethingFound; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQContentSequence::XQContentSequence(ASTNode *expr, XPath2MemoryManager* mm) : ASTNodeImpl(CONTENT_SEQUENCE, mm), expr_(expr) { } ASTNode* XQContentSequence::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQContentSequence::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); if(!expr_->getStaticAnalysis().getStaticType().containsType(StaticType::DOCUMENT_TYPE|StaticType::ANY_ATOMIC_TYPE)) { ASTNode *pChild = expr_; // Not needed if the wrapped expression is a DOM_CONSTRUCTOR if(pChild->getType() == ASTNode::DOM_CONSTRUCTOR || (pChild->getType() == ASTNode::NAMESPACE_BINDING && ((XQNamespaceBinding*)pChild)->getExpression()->getType() == ASTNode::DOM_CONSTRUCTOR)) { return expr_; } } _src.getStaticType().substitute(StaticType::ANY_ATOMIC_TYPE, StaticType::TEXT_TYPE); _src.getStaticType().substitute(StaticType::DOCUMENT_TYPE, StaticType(StaticType::ELEMENT_TYPE | StaticType::TEXT_TYPE | StaticType::PI_TYPE | StaticType::COMMENT_TYPE, 0, StaticType::UNLIMITED)); _src.creative(true); return this; } Result XQContentSequence::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQContentSequence::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { preserveNS = context->getPreserveNamespaces(); preserveType = context->getConstructionMode() == StaticContext::CONSTRUCTION_MODE_PRESERVE; if(!expr_->getStaticAnalysis().getStaticType().containsType(StaticType::DOCUMENT_TYPE|StaticType::ANY_ATOMIC_TYPE)) { return new ClosureEventGenerator(expr_, context, preserveNS, preserveType); } ContentSequenceFilter filter(events); expr_->generateAndTailCall(&filter, context, preserveNS, preserveType); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQDirectName::XQDirectName(const XMLCh *qname, bool useDefaultNamespace, XPath2MemoryManager* mm) : ASTNodeImpl(DIRECT_NAME, mm), qname_(qname), useDefaultNamespace_(useDefaultNamespace) { } ASTNode *XQDirectName::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); const XMLCh* prefix = XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()); const XMLCh* uri = 0; if(prefix == 0 || *prefix == 0) { // If qname has no prefix if(useDefaultNamespace_) uri = context->getDefaultElementAndTypeNS(); } else { // If qname has a prefix uri = context->getUriBoundToPrefix(prefix, this); } return (new (mm) XQQNameLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, XPath2NSUtils::getLocalName(qname_), mm))->staticResolution(context); } ASTNode *XQDirectName::staticTypingImpl(StaticContext *context) { // Never happens return this; } Result XQDirectName::createResult(DynamicContext* context, int flags) const { // Never happens return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQNameExpression::XQNameExpression(ASTNode *expr, XPath2MemoryManager* mm) : ASTNodeImpl(NAME_EXPRESSION, mm), expr_(expr) { } ASTNode* XQNameExpression::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQNameExpression::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::QNAME_TYPE; _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().getStaticType().isType(StaticType::QNAME_TYPE)) { return expr_; } if(!expr_->getStaticAnalysis().getStaticType(). containsType(StaticType::QNAME_TYPE|StaticType::STRING_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { XMLBuffer buf; buf.set(X("The name expression must be a single xs:QName, xs:string or xs:untypedAtomic")); buf.append(X(" - the expression has a static type of ")); expr_->getStaticAnalysis().getStaticType().typeToBuf(buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQNameExpression::staticTyping"), buf.getRawBuffer()); } return this; } Result XQNameExpression::createResult(DynamicContext* context, int flags) const { AnyAtomicType::Ptr itemName = getExpression()->createResult(context)->next(context); switch(itemName->getPrimitiveTypeIndex()) { case AnyAtomicType::QNAME: return (Item::Ptr)itemName; case AnyAtomicType::STRING: case AnyAtomicType::UNTYPED_ATOMIC: try { return (Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(AnyAtomicType::QNAME, itemName->asString(context), context); } catch(XQException &ex) { XQThrow(ASTException,X("XQNameExpression::NameExpressionResult::createResult"), X("The name expression cannot be converted to a xs:QName [err:XQDY0074]")); } default: break; } XMLBuffer buf; buf.set(X("The name expression must be a single xs:QName, xs:string or xs:untypedAtomic")); buf.append(X(" - found item of type ")); itemName->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQNameExpression::NameExpressionResult::createResult"), buf.getRawBuffer()); } //////////////////////////////////////////////////////////////////////////////////////////////////// XQSimpleContent::XQSimpleContent(VectorOfASTNodes *children, XPath2MemoryManager* mm) : ASTNodeImpl(SIMPLE_CONTENT, mm), children_(children) { } ASTNode* XQSimpleContent::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); unsigned int i; for(i = 0;i < children_->size(); ++i) { // atomize content and run static resolution (*children_)[i] = new (mm) XQAtomize((*children_)[i], mm); (*children_)[i]->setLocationInfo(this); (*children_)[i] = (*children_)[i]->staticResolution(context); } return this; } ASTNode *XQSimpleContent::staticTypingImpl(StaticContext *context) { _src.clear(); bool constant = true; unsigned int i; for(i = 0; i < children_->size(); ++i) { _src.add((*children_)[i]->getStaticAnalysis()); if((*children_)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQSimpleContent::staticTyping"), X("It is a static error for the a value expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } if(!(*children_)[i]->isConstant()) constant = false; } _src.getStaticType() = StaticType::STRING_TYPE; return this; } Result XQSimpleContent::createResult(DynamicContext* context, int flags) const { // TBD separator - jpcs XMLBuffer value; XQDOMConstructor::getStringValue(getChildren(), value, context); return (Item::Ptr)context->getItemFactory()->createString(value.getRawBuffer(), context); } XQilla-2.3.4/src/ast/XQTypeswitch.cpp0000644001725400016040000002534513273140037014346 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XQTypeswitch:: XQTypeswitch(ASTNode *expr, Cases *cases, Case *defaultCase, XPath2MemoryManager *mm) : ASTNodeImpl(TYPESWITCH, mm), expr_(expr), cases_(cases), default_(defaultCase) { } ASTNode* XQTypeswitch::staticResolution(StaticContext *context) { // Statically resolve the test expression expr_ = expr_->staticResolution(context); // Call static resolution on the clauses for(Cases::iterator it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticResolution(context); } default_->staticResolution(context); return this; } static const XMLCh no_err[] = { 0 }; ASTNode *XQTypeswitch::staticTypingImpl(StaticContext *context) { _src.clear(); // Statically resolve the test expression const StaticAnalysis &exprSrc = expr_->getStaticAnalysis(); if(exprSrc.isUpdating()) { XQThrow(StaticErrorException,X("XQTypeswitch::staticTyping"), X("It is a static error for the operand expression of a typeswitch expression " "to be an updating expression [err:XUST0001]")); } // Call static resolution on the clauses bool possiblyUpdating = true; _src.add(exprSrc); default_->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/true); Cases::iterator it; for(it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/false); } if(!context) { return this; } XPath2MemoryManager *mm = context->getMemoryManager(); if(exprSrc.isUsed()) { // Do basic static type checking on the clauses, // to eliminate ones which will never be matches, // and find ones which will always be matched. const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); bool found = false; Cases newCases = Cases(XQillaAllocator(mm)); for(it = cases_->begin(); it != cases_->end(); ++it) { StaticType::TypeMatch match = (*it)->getTreatType().matches(sType); if(found || match.type == StaticType::NEVER || match.cardinality == StaticType::NEVER) { // It never matches (*it)->getExpression()->release(); mm->deallocate(*it); } else if((*it)->getIsExact() && match.type == StaticType::ALWAYS && match.cardinality == StaticType::ALWAYS) { // It always matches, so set this clause as the // default clause and remove all clauses after it default_->getExpression()->release(); mm->deallocate(default_); default_ = *it; found = true; } else { newCases.push_back(*it); } } if(newCases.size() == cases_->size()) { // No change return this; } *cases_ = newCases; } else { // If it's constant, we can narrow it down to the correct clause AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); Sequence value; Case *match = (Case*)chooseCase(dContext, value); // Replace the default with the matched clause and // remove the remaining clauses, as they don't match for(it = cases_->begin(); it != cases_->end(); ++it) { if((*it) != match) { (*it)->getExpression()->release(); mm->deallocate(*it); } } if(default_ != match) { default_->getExpression()->release(); mm->deallocate(default_); } default_ = match; cases_->clear(); } // Call static resolution on the new clauses possiblyUpdating = true; _src.clear(); _src.add(exprSrc); default_->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/true); for(it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/false); } if(cases_->empty()) { if(default_->isVariableUsed()) { TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(this); tuple = new (mm) LetTuple(tuple, default_->getURI(), default_->getName(), expr_, mm); tuple->setLocationInfo(this); ASTNode *result = new (mm) XQReturn(tuple, default_->getExpression(), mm); result->setLocationInfo(this); const_cast(result->getStaticAnalysis()).copy(_src); expr_ = 0; default_->setExpression(0); this->release(); return result; } else if(!expr_->getStaticAnalysis().isNoFoldingForced()) { ASTNode *result = default_->getExpression(); default_->setExpression(0); this->release(); return result; } } return this; } XQTypeswitch::Case::Case(const XMLCh *qname, SequenceType *seqType, ASTNode *expr) : qname_(qname), uri_(0), name_(0), seqType_(seqType), isExact_(false), expr_(expr) { } XQTypeswitch::Case::Case(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, SequenceType *seqType, const StaticType &treatType, bool isExact, ASTNode *expr) : qname_(qname), uri_(uri), name_(name), seqType_(seqType), treatType_(treatType), isExact_(isExact), expr_(expr) { } void XQTypeswitch::Case::staticResolution(StaticContext* context) { if(seqType_) { seqType_->staticResolution(context); seqType_->getStaticType(treatType_, context, isExact_, this); } expr_ = expr_->staticResolution(context); if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } } void XQTypeswitch::Case::staticTyping(const StaticAnalysis &var_src, StaticContext* context, StaticAnalysis &src, bool &possiblyUpdating, bool first) { if(seqType_ != 0) { if(src.isUpdating()) { if(!expr_->getStaticAnalysis().isUpdating() && !expr_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQTypeswitch::Case::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if(expr_->getStaticAnalysis().isUpdating() && !possiblyUpdating) XQThrow(StaticErrorException, X("XQTypeswitch::Case::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } } if(qname_ != 0) { // Remove the local variable from the StaticAnalysis if(!expr_->getStaticAnalysis().isVariableUsed(uri_, name_)) { // If the variable isn't used, don't bother setting it when we execute qname_ = 0; } } if(possiblyUpdating) possiblyUpdating = expr_->getStaticAnalysis().isPossiblyUpdating(); if(first) { src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); src.setProperties(expr_->getStaticAnalysis().getProperties()); } else { src.getStaticType() |= expr_->getStaticAnalysis().getStaticType(); src.setProperties(src.getProperties() & expr_->getStaticAnalysis().getProperties()); } if(qname_ != 0) { src.addExceptVariable(uri_, name_, expr_->getStaticAnalysis()); } else { src.add(expr_->getStaticAnalysis()); } } const XQTypeswitch::Case *XQTypeswitch::chooseCase(DynamicContext *context, Sequence &resultSeq) const { // retrieve the value of the operand expression // ResultBuffer value(expr_->createResult(context)); Sequence value = expr_->createResult(context)->toSequence(context); const Case *cse = 0; // find the effective case for(Cases::const_iterator it = cases_->begin(); it != cases_->end(); ++it) { try { // (*it)->getSequenceType()->matches(value.createResult(), (*it)->getSequenceType(), no_err)->toSequence(context); (*it)->getSequenceType()->matches(value, (*it)->getSequenceType(), no_err)->toSequence(context); cse = *it; break; } catch(const XPath2TypeMatchException &ex) { // Well, it doesn't match that one then... } } // if no case is satisfied, use the default one if(cse == 0) { cse = default_; } // Bind the variable if(cse->isVariableUsed()) { // resultSeq = value.createResult()->toSequence(context); resultSeq = value; // varStore->declareVar(cse->getURI(), cse->getName(), value.createResult()->toSequence(context), context); } return cse; } EventGenerator::Ptr XQTypeswitch::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return new ClosureEventGenerator(cse->getExpression(), context, preserveNS, preserveType); } PendingUpdateList XQTypeswitch::createUpdateList(DynamicContext *context) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return cse->getExpression()->createUpdateList(context); } Result XQTypeswitch::createResult(DynamicContext *context, int flags) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return cse->getExpression()->createResult(context); } XQilla-2.3.4/src/ast/ForTuple.cpp0000644001725400016040000001405113273140037013462 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; ForTuple::ForTuple(TupleNode *parent, const XMLCh *varQName, const XMLCh *posQName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(FOR, parent, mm), varQName_(varQName), varURI_(0), varName_(0), posQName_(posQName), posURI_(0), posName_(0), varSrc_(mm), posSrc_(mm), expr_(expr) { } ForTuple::ForTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, const XMLCh *posURI, const XMLCh *posName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(FOR, parent, mm), varQName_(0), varURI_(varURI), varName_(varName), posQName_(0), posURI_(posURI), posName_(posName), varSrc_(mm), posSrc_(mm), expr_(expr) { } TupleNode *ForTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); if(posQName_ && *posQName_) { posURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(posQName_, context->getMemoryManager()), this); posName_ = XPath2NSUtils::getLocalName(posQName_); if(XPath2Utils::equals(posName_, varName_) && XPath2Utils::equals(posURI_, varURI_)) { XMLBuffer errMsg; errMsg.set(X("The positional variable with name {")); errMsg.append(posURI_); errMsg.append(X("}")); errMsg.append(posName_); errMsg.append(X(" conflicts with the iteration variable [err:XQST0089]")); XQThrow(StaticErrorException,X("ForTuple::staticResolution"), errMsg.getRawBuffer()); } } expr_ = expr_->staticResolution(context); return this; } TupleNode *ForTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ForTuple::staticTypingSetup"), X("It is a static error for the for expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); min_ = parent_->getMin() * sType.getMin(); if(parent_->getMax() == StaticType::UNLIMITED || sType.getMax() == StaticType::UNLIMITED) max_ = StaticType::UNLIMITED; else max_ = parent_->getMax() * sType.getMax(); return this; } TupleNode *ForTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(varName_ && !usedSrc.removeVariable(varURI_, varName_)) { varURI_ = 0; varName_ = 0; } // Remove our positional variable from the StaticAnalysis data (removing it if it's not used) if(posName_ && !usedSrc.removeVariable(posURI_, posName_)) { posURI_ = 0; posName_ = 0; } usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); if(varName_ == 0 && posName_ == 0 && sType.getMin() == 1 && sType.getMax() == 1) return parent_; return this; } class ForTupleResult : public TupleResult { public: ForTupleResult(const ForTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), values_(0), position_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return item_; if(XPath2Utils::equals(name, ast_->getPosName()) && XPath2Utils::equals(namespaceURI, ast_->getPosURI())) return posItem_; return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); if(ast_->getPosName()) variables.push_back(std::pair(ast_->getPosURI(), ast_->getPosName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { AutoVariableStoreReset reset(context, parent_); while((item_ = values_->next(context)).isNull()) { context->testInterrupt(); reset.reset(); if(!parent_->next(context)) return false; context->setVariableStore(parent_); values_ = ast_->getExpression()->createResult(context); position_ = 0; } if(ast_->getPosName()) posItem_ = context->getItemFactory()->createInteger(++position_, context); return true; } private: const ForTuple *ast_; TupleResult::Ptr parent_; Result values_; Item::Ptr item_; Item::Ptr posItem_; int position_; }; TupleResult::Ptr ForTuple::createResult(DynamicContext* context) const { return new ForTupleResult(this, parent_->createResult(context)); } XQilla-2.3.4/src/ast/NumericFunction.cpp0000644001725400016040000000450413273140037015034 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NumericFunction::NumericFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr) { } ASTNode* NumericFunction::staticResolution(StaticContext *context) { resolveArguments(context, /*numericFunction*/true); return this; } ASTNode *NumericFunction::staticTypingImpl(StaticContext *context) { _src.clear(); calculateSRCForArguments(context); if(!_args[0]->getStaticAnalysis().getStaticType().containsType(StaticType::NUMERIC_TYPE) && _args[0]->getStaticAnalysis().getStaticType().getMin() > 0) XQThrow(FunctionException,X("NumericFunction::staticTyping"), X("Non-numeric argument in numeric function [err:XPTY0004]")); _src.getStaticType() = StaticType(StaticType::NUMERIC_TYPE, 0, 1); return this; } Numeric::Ptr NumericFunction::getNumericParam(unsigned int number, DynamicContext *context, int flags) const { Item::Ptr item = XQFunction::getParamNumber(number, context, flags)->next(context); if(item.notNull() && (!item->isAtomicValue() || !((const AnyAtomicType *)item.get())->isNumericValue())) XQThrow(FunctionException,X("NumericFunction::getParamNumber"), X("Non-numeric argument in numeric function [err:XPTY0004]")); return (const Numeric *)item.get(); } XQilla-2.3.4/src/ast/XQContextItem.cpp0000644001725400016040000000524013273140037014436 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include XQContextItem::XQContextItem(XPath2MemoryManager* memMgr) : ASTNodeImpl(CONTEXT_ITEM, memMgr) { } XQContextItem::~XQContextItem() { //no-op } ASTNode* XQContextItem::staticResolution(StaticContext *context) { return this; } ASTNode *XQContextItem::staticTypingImpl(StaticContext *context) { if(context == 0) return this; _src.clear(); if(!context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); _src.getStaticType() = context->getContextItemType(); _src.getStaticType().setCardinality(1, 1); _src.contextItemUsed(true); return this; } Result XQContextItem::createResult(DynamicContext* context, int flags) const { const Item::Ptr item = context->getContextItem(); if(item.isNull()) { XQThrow(DynamicErrorException,X("XQContextItem::ContextItemResult::createResult"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } return item; } Result XQContextItem::result(DynamicContext *context, const LocationInfo *info) { const Item::Ptr item = context->getContextItem(); if(item.isNull()) { XQThrow3(DynamicErrorException,X("XQContextItem::result"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]"), info); } return item; } XQilla-2.3.4/src/ast/ConvertFunctionArg.cpp0000644001725400016040000002371213273140037015506 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQPromoteUntyped::XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_UNTYPED, memMgr), expr_(expr), uri_(uri), name_(name), isPrimitive_(false), typeIndex_((AnyAtomicType::AtomicObjectType)-1) { } XQPromoteUntyped::XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_UNTYPED, memMgr), expr_(expr), uri_(uri), name_(name), isPrimitive_(isPrimitive), typeIndex_(typeIndex) { } ASTNode* XQPromoteUntyped::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); // crioux thinks this should also add: unless the target type is anyAtomicType! if(XPath2Utils::equals(name_, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return substitute(expr_); } typeIndex_ = context->getItemFactory()->getPrimitiveTypeIndex(uri_, name_, isPrimitive_); return this; } ASTNode *XQPromoteUntyped::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(!_src.getStaticType().containsType(StaticType::UNTYPED_ATOMIC_TYPE)) { return substitute(expr_); } _src.getStaticType().substitute(StaticType::UNTYPED_ATOMIC_TYPE, StaticType::create(typeIndex_)); return this; } Result XQPromoteUntyped::createResult(DynamicContext* context, int flags) const { return new PromoteUntypedResult(this, expr_->createResult(context, flags)); } PromoteUntypedResult::PromoteUntypedResult(const XQPromoteUntyped *di, const Result &parent) : ResultImpl(di), parent_(parent), isPrimitive_(di->getIsPrimitive()), typeIndex_(di->getTypeIndex()), uri_(di->getTypeURI()), name_(di->getTypeName()) { } PromoteUntypedResult::PromoteUntypedResult(const LocationInfo *location, const Result &parent, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *uri, const XMLCh *name) : ResultImpl(location), parent_(parent), isPrimitive_(isPrimitive), typeIndex_(typeIndex), uri_(uri), name_(name) { } Item::Ptr PromoteUntypedResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 2. Each item in the atomic sequence that is of type xdt:untypedAtomic is cast to the expected atomic // type. For built-in functions where the expected type is specified as numeric, arguments of type // xdt:untypedAtomic are cast to xs:double. if(atomic->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { try { if(isPrimitive_) { item = atomic->castAs(typeIndex_, 0, 0, context); } else { item = atomic->castAs(typeIndex_, uri_, name_, context); } } catch(XPath2TypeCastException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } } else { parent_ = 0; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQPromoteNumeric::XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_NUMERIC, memMgr), expr_(expr), uri_(uri), name_(name), typeIndex_((AnyAtomicType::AtomicObjectType)-1) { } XQPromoteNumeric::XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_NUMERIC, memMgr), expr_(expr), uri_(uri), name_(name), typeIndex_(typeIndex) { } ASTNode* XQPromoteNumeric::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); if(!((XPath2Utils::equals(name_, SchemaSymbols::fgDT_DOUBLE) || XPath2Utils::equals(name_, SchemaSymbols::fgDT_FLOAT)) && XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA))) { return substitute(expr_); } bool isPrimitive; typeIndex_ = context->getItemFactory()->getPrimitiveTypeIndex(uri_, name_, isPrimitive); return this; } ASTNode *XQPromoteNumeric::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(typeIndex_ == AnyAtomicType::DOUBLE) { if(!_src.getStaticType().containsType(StaticType::DECIMAL_TYPE | StaticType::FLOAT_TYPE)) return substitute(expr_); _src.getStaticType().substitute(StaticType::DECIMAL_TYPE | StaticType::FLOAT_TYPE, StaticType::DOUBLE_TYPE); } else if(typeIndex_ == AnyAtomicType::FLOAT) { if(!_src.getStaticType().containsType(StaticType::DECIMAL_TYPE)) return substitute(expr_); _src.getStaticType().substitute(StaticType::DECIMAL_TYPE, StaticType::FLOAT_TYPE); } else { return substitute(expr_); } return this; } Result XQPromoteNumeric::createResult(DynamicContext* context, int flags) const { return new PromoteNumericResult(this, expr_->createResult(context, flags), typeIndex_); } Item::Ptr PromoteNumericResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 3. For each numeric item in the atomic sequence that can be promoted to the expected atomic type using // the promotion rules in B.1 Type Promotion, the promotion is done. if(atomic->isNumericValue()) { try { const Numeric::Ptr promotedType = ((const Numeric*)atomic)-> promoteTypeIfApplicable(typeIndex_, context); if(promotedType.notNull()) { item = promotedType; } } catch (XPath2TypeCastException &e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("Numeric type promotion failed (for promotable type)")); } catch (const XMLException& e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("Numeric type promotion failed (for promotable type)")); } } } else { parent_ = 0; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQPromoteAnyURI::XQPromoteAnyURI(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_ANY_URI, memMgr), expr_(expr), uri_(uri), name_(name) { } ASTNode* XQPromoteAnyURI::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); if(!XPath2Utils::equals(name_, SchemaSymbols::fgDT_STRING) || !XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return substitute(expr_); } return this; } ASTNode *XQPromoteAnyURI::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(!_src.getStaticType().containsType(StaticType::ANY_URI_TYPE)) { return substitute(expr_); } _src.getStaticType().substitute(StaticType::ANY_URI_TYPE, StaticType::STRING_TYPE); return this; } Result XQPromoteAnyURI::createResult(DynamicContext* context, int flags) const { return new PromoteAnyURIResult(this, expr_->createResult(context, flags)); } Item::Ptr PromoteAnyURIResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 4. For each item of type xs:anyURI in the atomic sequence that can be promoted to the expected atomic // type using URI promotion as described in B.1 Type Promotion, the promotion is done. if(atomic->getPrimitiveTypeIndex() == AnyAtomicType::ANY_URI) { try { item = atomic->castAs(AnyAtomicType::STRING, context); } catch (XPath2TypeCastException &e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("AnyURI type promotion failed (for promotable type)")); } catch (const XMLException& e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("AnyURI type promotion failed (for promotable type)")); } } } else { parent_ = 0; } return item; } XQilla-2.3.4/src/ast/OrderByTuple.cpp0000644001725400016040000001767213273140037014316 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include using namespace std; OrderByTuple::OrderByTuple(TupleNode *parent, ASTNode *expr, int modifiers, Collation *collation, XPath2MemoryManager *mm) : TupleNode(ORDER_BY, parent, mm), expr_(expr), modifiers_((Modifiers)modifiers), collation_(collation), usedSrc_(mm) { } TupleNode *OrderByTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); AutoNodeSetOrderingReset orderReset(context, (modifiers_ & UNSTABLE) == 0 ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); expr_ = expr_->staticResolution(context); return this; } static bool canPushOrderByBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return true; break; } case TupleNode::WHERE: return canPushOrderByBack(ancestor->getParent(), exprSrc); case TupleNode::COUNT: case TupleNode::ORDER_BY: case TupleNode::CONTEXT_TUPLE: break; default: return true; } return false; } TupleNode *OrderByTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("OrderByTuple::staticTypingSetup"), X("It is a static error for the order by expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Push back if possible if(canPushOrderByBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this OrderByTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *OrderByTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc_.clear(); usedSrc_.add(usedSrc); usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class OrderByTupleResult : public TupleResult { public: OrderByTupleResult(const OrderByTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), toDo_(true), tuples_(), tupleIt_(tuples_.begin()) { } ~OrderByTupleResult() { vector::iterator it = tuples_.begin(); for(; it != tuples_.end(); ++it) { delete *it; } } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return (*tupleIt_)->varStore.getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { (*tupleIt_)->varStore.getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { if(toDo_) { toDo_ = false; XPath2MemoryManager *mm = context->getMemoryManager(); const ASTNode *expr = ast_->getExpression(); const StaticAnalysis &usedSrc = ast_->getUsedSRC(); while(parent_->next(context)) { AutoVariableStoreReset reset(context, parent_); tuples_.push_back(new OrderPair((AnyAtomicType*)expr->createResult(context)-> next(context).get(), usedSrc, parent_, mm)); } stable_sort(tuples_.begin(), tuples_.end(), OrderComparison(ast_->getModifiers(), ast_->getCollation(), context, this)); tupleIt_ = tuples_.begin(); } else { delete *tupleIt_; *tupleIt_ = 0; ++tupleIt_; } return tupleIt_ != tuples_.end(); } private: class OrderComparison; friend class OrderComparison; class OrderPair { public: static inline bool isEmptyOrNaN(const AnyAtomicType::Ptr &si) { return si.isNull() || (si->isNumericValue() && ((Numeric*)si.get())->isNaN()); } OrderPair(const AnyAtomicType::Ptr &si, const StaticAnalysis &usedSrc, const VariableStore *vars, XPath2MemoryManager *mm) : sortItem(isEmptyOrNaN(si) ? (AnyAtomicType::Ptr)0 : si), varStore(mm) { varStore.cacheVariableStore(usedSrc, vars); } AnyAtomicType::Ptr sortItem; VarStoreImpl varStore; }; class OrderComparison { public: OrderComparison(OrderByTuple::Modifiers mod, Collation *col, DynamicContext *cn, const LocationInfo *loc) : modifiers(mod), collation(col), context(cn), location(loc) {} inline bool greaterThan(const OrderPair *w, const OrderPair *v) const { if((modifiers & OrderByTuple::EMPTY_LEAST) != 0) { // When the orderspec specifies empty least, a value W is considered to be greater-than a value V if one of the following is true: // * V is an empty sequence and W is not an empty sequence. // * V is NaN, and W is neither NaN nor an empty sequence. if(w->sortItem.isNull()) return false; if(v->sortItem.isNull()) return !w->sortItem.isNull(); } else { // When the orderspec specifies empty greatest, a value W is considered to be greater-than a value V if one of the following is true: // * W is an empty sequence and V is not an empty sequence. // * W is NaN, and V is neither NaN nor an empty sequence. if(v->sortItem.isNull()) return false; if(w->sortItem.isNull()) return !v->sortItem.isNull(); } // * No collation is specified, and W gt V is true. // * A specific collation C is specified, and fn:compare(V, W, C) is less than zero. return GreaterThan::greater_than(w->sortItem, v->sortItem, collation, context, location); } bool operator()(const OrderPair *a, const OrderPair *b) const { // 1. If V1 is greater-than V2: If the orderspec specifies descending, then T1 precedes T2 in the tuple stream; otherwise, T2 precedes T1 in the tuple stream. if((modifiers & OrderByTuple::DESCENDING) != 0) return greaterThan(a, b); // 2. If V2 is greater-than V1: If the orderspec specifies descending, then T2 precedes T1 in the tuple stream; otherwise, T1 precedes T2 in the tuple stream. return greaterThan(b, a); } OrderByTuple::Modifiers modifiers; Collation *collation; DynamicContext *context; const LocationInfo *location; }; const OrderByTuple *ast_; TupleResult::Ptr parent_; bool toDo_; vector tuples_; vector::iterator tupleIt_; }; TupleResult::Ptr OrderByTuple::createResult(DynamicContext* context) const { return new OrderByTupleResult(this, parent_->createResult(context)); } XQilla-2.3.4/src/ast/XQIf.cpp0000644001725400016040000001023313273140037012527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XQIf::XQIf(ASTNode* test, ASTNode* whenTrue, ASTNode* whenFalse, XPath2MemoryManager* memMgr) : ASTNodeImpl(IF, memMgr), _test(test), _whenTrue(whenTrue), _whenFalse(whenFalse) { } EventGenerator::Ptr XQIf::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(_test->boolResult(context)) return new ClosureEventGenerator(_whenTrue, context, preserveNS, preserveType); else return new ClosureEventGenerator(_whenFalse, context, preserveNS, preserveType); } ASTNode* XQIf::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _test = new (mm) XQEffectiveBooleanValue(_test, mm); _test->setLocationInfo(this); _test = _test->staticResolution(context); _whenTrue = _whenTrue->staticResolution(context); _whenFalse = _whenFalse->staticResolution(context); return this; } ASTNode *XQIf::staticTypingImpl(StaticContext *context) { _src.clear(); if(_test->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQIf::staticTyping"), X("It is a static error for the conditional expression of an if expression " "to be an updating expression [err:XUST0001]")); } _src.add(_test->getStaticAnalysis()); _src.getStaticType() = _whenTrue->getStaticAnalysis().getStaticType(); _src.setProperties(_whenTrue->getStaticAnalysis().getProperties()); _src.add(_whenTrue->getStaticAnalysis()); if(_src.isUpdating()) { if(!_whenFalse->getStaticAnalysis().isUpdating() && !_whenFalse->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQIf::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if(_whenFalse->getStaticAnalysis().isUpdating() && !_whenTrue->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQIf::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } _src.getStaticType() |= _whenFalse->getStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & _whenFalse->getStaticAnalysis().getProperties()); _src.add(_whenFalse->getStaticAnalysis()); return this; } ASTNode *XQIf::getTest() const { return _test; } ASTNode *XQIf::getWhenTrue() const { return _whenTrue; } ASTNode *XQIf::getWhenFalse() const { return _whenFalse; } void XQIf::setTest(ASTNode *item) { _test = item; } void XQIf::setWhenTrue(ASTNode *item) { _whenTrue = item; } void XQIf::setWhenFalse(ASTNode *item) { _whenFalse = item; } PendingUpdateList XQIf::createUpdateList(DynamicContext *context) const { if(_test->boolResult(context)) return _whenTrue->createUpdateList(context); else return _whenFalse->createUpdateList(context); } Result XQIf::createResult(DynamicContext* context, int flags) const { if(_test->boolResult(context)) return getWhenTrue()->createResult(context); return getWhenFalse()->createResult(context); } XQilla-2.3.4/src/ast/XQFunctionCoercion.cpp0000644001725400016040000001452713273140037015452 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE using namespace std; const XMLCh XQFunctionCoercion::funcVarName[] = { '#', 'f', 'u', 'n', 'c', 'V', 'a', 'r', 0 }; static const XMLCh argVarPrefix[] = { 'a', 'r', 'g', 0 }; XQFunctionCoercion::XQFunctionCoercion(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_COERCION, memMgr), _expr(expr), _exprType(exprType), _funcConvert(0) { } XQFunctionCoercion::XQFunctionCoercion(ASTNode* expr, SequenceType *exprType, ASTNode *funcConvert, const StaticType &treatType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_COERCION, memMgr), _expr(expr), _exprType(exprType), _funcConvert(funcConvert), _treatType(treatType) { } ASTNode* XQFunctionCoercion::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); _expr = _expr->staticResolution(context); bool isExact; _exprType->getStaticType(_treatType, context, isExact, this); const SequenceType::ItemType *type = _exprType->getItemType(); if(!type || type->getItemTestType() != SequenceType::ItemType::TEST_FUNCTION || type->getReturnType() == 0) return substitute(_expr); // Construct an XQInlineFunction that will convert a function reference // stored in a variable to the correct type, and will throw type errors // if it isn't the correct type // Simultaneously create the XQInlineFunction parameter spec and the // XQFunctionDeref argument list ArgumentSpecs *paramList = new (mm) ArgumentSpecs(XQillaAllocator(mm)); VectorOfASTNodes *argList = new (mm) VectorOfASTNodes(XQillaAllocator(mm)); VectorOfSequenceTypes *argTypes = type->getArgumentTypes(); for(VectorOfSequenceTypes::iterator i = argTypes->begin(); i != argTypes->end(); ++i) { const XMLCh *argName = context->allocateTempVarName(argVarPrefix); ArgumentSpec *argSpec = new (mm) ArgumentSpec(argName, *i, mm); argSpec->setLocationInfo(*i); paramList->push_back(argSpec); XQVariable *argVar = new (mm) XQVariable(0, argName, mm); argVar->setLocationInfo(this); argList->push_back(argVar); } XQVariable *funcVar = new (mm) XQVariable(0, funcVarName, mm); funcVar->setLocationInfo(this); XQFunctionDeref *body = new (mm) XQFunctionDeref(funcVar, argList, mm); body->setLocationInfo(this); FunctionSignature *signature = new (mm) FunctionSignature(paramList, type->getReturnType(), mm); XQUserFunction *func = new (mm) XQUserFunction(0, signature, body, false, mm); func->setLocationInfo(this); _funcConvert = new (mm) XQInlineFunction(func, mm); _funcConvert->setLocationInfo(this); _funcConvert = _funcConvert->staticResolution(context); return this; } ASTNode *XQFunctionCoercion::staticTypingImpl(StaticContext *context) { _src.clear(); // Get a better static type by looking at our expression's type too _src.getStaticType() = _treatType; _src.getStaticType() &= _expr->getStaticAnalysis().getStaticType(); StaticType nonFunctionTypes = _expr->getStaticAnalysis().getStaticType(); nonFunctionTypes &= StaticType(StaticType::NODE_TYPE | StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED); _src.getStaticType() |= nonFunctionTypes; _src.setProperties(_expr->getStaticAnalysis().getProperties()); _src.add(_expr->getStaticAnalysis()); if(!_expr->getStaticAnalysis().getStaticType().containsType(StaticType::FUNCTION_TYPE)) return substitute(_expr); return this; } class FunctionConversionResult : public ResultImpl { public: FunctionConversionResult(const Result &parent, const ASTNode *funcConvert, const SequenceType::ItemType *itemType, const LocationInfo *location) : ResultImpl(location), parent_(parent), funcConvert_(funcConvert), itemType_(itemType) { } virtual Item::Ptr next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull() && item->isFunction() && !itemType_->matches((FunctionRef::Ptr)item, context)) { XPath2MemoryManager *mm = context->getMemoryManager(); VarStoreImpl scope(mm, context->getVariableStore()); scope.setVar(0, XQFunctionCoercion::funcVarName, item); AutoVariableStoreReset vsReset(context, &scope); // funcConvert_ only returns one item item = funcConvert_->createResult(context)->next(context); } return item; } string asString(DynamicContext *context, int indent) const { return ""; } private: Result parent_; const ASTNode *funcConvert_; const SequenceType::ItemType *itemType_; }; Result XQFunctionCoercion::createResult(DynamicContext* context, int flags) const { return new FunctionConversionResult(_expr->createResult(context), _funcConvert, _exprType->getItemType(), this); } XQilla-2.3.4/src/ast/ASTNodeImpl.cpp0000644001725400016040000001100413273140037013774 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ASTNodeImpl::ASTNodeImpl(whichType type, XPath2MemoryManager* memMgr) : _src(memMgr), _type(type), _memMgr(memMgr) { } ASTNodeImpl::~ASTNodeImpl() { } void ASTNodeImpl::release() { ASTReleaser().release(this); } ASTNode *ASTNodeImpl::copy(DynamicContext *context) const { return ASTCopier().copy(this, context); } bool ASTNodeImpl::isSubsetOf(const ASTNode *other) const { // TBD - jpcs return false; } bool ASTNodeImpl::isEqualTo(const ASTNode *other) const { // TBD - jpcs return false; } ASTNode *ASTNodeImpl::staticTyping(StaticContext *context, StaticTyper *styper) { StaticTyper defaultTyper; if(styper == 0) styper = &defaultTyper; return styper->run(this, context); } bool ASTNodeImpl::isConstant() const { return !_src.isUsed(); } /** Overridden in XQSequence and XQLiteral */ bool ASTNodeImpl::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { // To be safe, assume any value that contains a timezone might // not have one specified. return _src.getStaticType().containsType(StaticType::TIMEZONE_TYPE); } ASTNode::whichType ASTNodeImpl::getType() const { return _type; } PendingUpdateList ASTNodeImpl::createUpdateList(DynamicContext *context) const { return PendingUpdateList(); } Result ASTNodeImpl::iterateResult(const Result &contextItems, DynamicContext* context) const { if(_src.isContextSizeUsed()) { // We need the context size, so convert contextItems to a Sequence to work it out Sequence seq(((ResultImpl*)contextItems.get())->toSequence(context)); return ClosureResult::create(getStaticAnalysis(), context, new NavStepResult(new SequenceResult(this, seq), this, seq.getLength())); } return ClosureResult::create(getStaticAnalysis(), context, new NavStepResult(contextItems, this, 0)); } #include #include BoolResult ASTNodeImpl::boolResult(DynamicContext* context) const { Item::Ptr item = createResult(context)->next(context); return item.isNull() ? BoolResult::Null : ((ATBooleanOrDerived*)item.get())->isTrue() ? BoolResult::True : BoolResult::False; } EventGenerator::Ptr ASTNodeImpl::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Result result = createResult(context); Item::Ptr item; while((item = result->next(context)).notNull()) { item->generateEvents(events, context, preserveNS, preserveType); } return 0; } ASTNode *ASTNodeImpl::substitute(ASTNode *&result) { ASTNode *tmp = result; result = 0; this->release(); return tmp; } XPath2MemoryManager* ASTNodeImpl::getMemoryManager() const { return _memMgr; } const StaticAnalysis &ASTNodeImpl::getStaticAnalysis() const { return _src; } XQilla-2.3.4/src/ast/XQOrderingChange.cpp0000644001725400016040000000347213273140037015057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XQOrderingChange::XQOrderingChange(StaticContext::NodeSetOrdering ordering, ASTNode* astNode, XPath2MemoryManager* expr) : ASTNodeImpl(ORDERING_CHANGE, expr), m_nOrdering(ordering), m_pExpr(astNode) { } Result XQOrderingChange::createResult(DynamicContext *context, int flags) const { return m_pExpr->createResult(context); } ASTNode* XQOrderingChange::staticResolution(StaticContext* context) { AutoNodeSetOrderingReset orderReset(context, m_nOrdering); m_pExpr = m_pExpr->staticResolution(context); return this; } ASTNode *XQOrderingChange::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(m_pExpr->getStaticAnalysis()); return this; } StaticContext::NodeSetOrdering XQOrderingChange::getOrderingValue() const { return m_nOrdering; } ASTNode* XQOrderingChange::getExpr() const { return m_pExpr; } void XQOrderingChange::setExpr(ASTNode *expr) { m_pExpr = expr; } XQilla-2.3.4/src/ast/XQTreatAs.cpp0000644001725400016040000001262513273140037013543 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; const XMLCh XQTreatAs::err_XPDY0050[] = { 'e', 'r', 'r', ':', 'X', 'P', 'D', 'Y', '0', '0', '5', '0', 0 }; const XMLCh XQTreatAs::err_XPTY0004[] = { 'e', 'r', 'r', ':', 'X', 'P', 'T', 'Y', '0', '0', '0', '4', 0 }; XQTreatAs::XQTreatAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr, const XMLCh *errorCode) : ASTNodeImpl(TREAT_AS, memMgr), _expr(expr), _exprType(exprType), _errorCode(errorCode), _doTypeCheck(true), _doCardinalityCheck(true), _isExact(false) { if(_errorCode == 0) _errorCode = err_XPTY0004; } XQTreatAs::XQTreatAs(ASTNode* expr, SequenceType *exprType, const XMLCh *errorCode, bool doTypeCheck, bool doCardinalityCheck, const StaticType &treatType, bool isExact, XPath2MemoryManager* memMgr) : ASTNodeImpl(TREAT_AS, memMgr), _expr(expr), _exprType(exprType), _errorCode(errorCode), _doTypeCheck(doTypeCheck), _doCardinalityCheck(doCardinalityCheck), _treatType(treatType), _isExact(isExact) { } ASTNode* XQTreatAs::staticResolution(StaticContext *context) { _exprType->staticResolution(context); if(_exprType->getOccurrenceIndicator() == SequenceType::QUESTION_MARK || _exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE) { AutoNodeSetOrderingReset orderReset(context); _expr = _expr->staticResolution(context); } else { _expr = _expr->staticResolution(context); } _exprType->getStaticType(_treatType, context, _isExact, this); return this; } ASTNode *XQTreatAs::staticTypingImpl(StaticContext *context) { _src.clear(); // Do as much static time type checking as we can, given the // limited static typing that we implement const StaticType &actualType = _expr->getStaticAnalysis().getStaticType(); // Get a better static type by looking at our expression's type too _src.getStaticType() = _treatType; _src.getStaticType() &= actualType; _src.setProperties(_expr->getStaticAnalysis().getProperties()); _src.add(_expr->getStaticAnalysis()); StaticType::TypeMatch match = _treatType.matches(actualType); if(!_expr->getStaticAnalysis().isUpdating()) { if((match.type == StaticType::NEVER || match.cardinality == StaticType::NEVER) && _errorCode != err_XPDY0050) { // It never matches XMLBuffer buf; buf.set(X("Expression does not match type ")); _exprType->toBuffer(buf); buf.append(X(" - the expression has a static type of ")); actualType.typeToBuf(buf); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("XQTreatAs::staticTyping"), buf.getRawBuffer()); } MessageListener *mlistener = context ? context->getMessageListener() : 0; if(mlistener && context->getDoLintWarnings() && _errorCode != err_XPDY0050) { if(match.type == StaticType::PROBABLY_NOT || match.cardinality == StaticType::PROBABLY_NOT) { // It might not match XMLBuffer buf; buf.set(X("The expression might not match type ")); _exprType->toBuffer(buf); buf.append(X(" - the expression has a static type of ")); actualType.typeToBuf(buf); mlistener->warning(buf.getRawBuffer(), this); } } if(_isExact && match.type == StaticType::ALWAYS) { _doTypeCheck = false; } if(match.cardinality == StaticType::ALWAYS) { _doCardinalityCheck = false; } if(!_doTypeCheck && !_doCardinalityCheck) { // It always matches return substitute(_expr); } } return this; } ASTNode *XQTreatAs::getExpression() const { return _expr; } SequenceType *XQTreatAs::getSequenceType() const { return _exprType; } void XQTreatAs::setExpression(ASTNode *item) { _expr = item; } Result XQTreatAs::createResult(DynamicContext* context, int flags) const { Result result = _expr->createResult(context, flags); if(_doCardinalityCheck && (_exprType->getOccurrenceIndicator() != SequenceType::STAR || _exprType->getItemType() == NULL)) { result = _exprType->occurrenceMatches(result, this, _errorCode); } if(_doTypeCheck) { result = _exprType->typeMatches(result, this, _errorCode); } return result; } XQilla-2.3.4/src/ast/XQReturn.cpp0000644001725400016040000000707513273140037013462 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XQReturn::XQReturn(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(RETURN, mm), parent_(parent), expr_(expr) { } ASTNode *XQReturn::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQReturn::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.getStaticType().multiply(parent_->getMin(), parent_->getMax()); parent_ = parent_->staticTypingTeardown(context, _src); return this; } class ReturnResult : public ResultImpl { public: ReturnResult(const XQReturn *ast, const TupleResult::Ptr parent) : ResultImpl(ast), ast_(ast), parent_(parent), result_(0) { } virtual Item::Ptr next(DynamicContext *context) { AutoVariableStoreReset reset(context, parent_); Item::Ptr item; while((item = result_->next(context)).isNull()) { context->testInterrupt(); reset.reset(); if(parent_.isNull() || !parent_->next(context)) { parent_ = 0; return 0; } context->setVariableStore(parent_); result_ = ast_->getExpression()->createResult(context); } return item; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } private: const XQReturn *ast_; TupleResult::Ptr parent_; Result result_; }; Result XQReturn::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new ReturnResult(this, parent_->createResult(context))); } EventGenerator::Ptr XQReturn::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AutoVariableStoreReset reset(context); TupleResult::Ptr tuples = parent_->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); expr_->generateAndTailCall(events, context, preserveNS, preserveType); reset.reset(); } return 0; } PendingUpdateList XQReturn::createUpdateList(DynamicContext *context) const { AutoVariableStoreReset reset(context); PendingUpdateList result; TupleResult::Ptr tuples = parent_->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); result.mergeUpdates(expr_->createUpdateList(context)); reset.reset(); } return result; } XQilla-2.3.4/src/ast/XQApplyTemplates.cpp0000644001725400016040000002637513273140037015153 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; XQApplyTemplates::XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, XPath2MemoryManager *mm) : ASTNodeImpl(APPLY_TEMPLATES, mm), expr_(expr), args_(args), mode_(mode), templates_(XQillaAllocator(mm)) { } XQApplyTemplates::XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, const UserFunctions &templates, XPath2MemoryManager *mm) : ASTNodeImpl(APPLY_TEMPLATES, mm), expr_(expr), args_(args), mode_(mode), templates_(XQillaAllocator(mm)) { templates_ = templates; } static const XMLCh err_XTTE0520[] = { 'e', 'r', 'r', ':', 'X', 'T', 'T', 'E', '0', '5', '2', '0', 0 }; ASTNode* XQApplyTemplates::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm, err_XTTE0520); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); // Resolve the call template argument names and check for duplicates TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if((*it)->name == 0) { (*it)->uri = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix((*it)->qname, mm), this); (*it)->name = XPath2NSUtils::getLocalName((*it)->qname); } (*it)->value = (*it)->value->staticResolution(context); for(TemplateArguments::iterator it2 = args_->begin(); it2 != it; ++it2) { if(XPath2Utils::equals((*it)->name, (*it2)->name) && XPath2Utils::equals((*it)->uri, (*it2)->uri)) { XMLBuffer buf; buf.set(X("Two template parameters have the name {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0670]")); XQThrow3(StaticErrorException, X("XQApplyTemplates::staticResolution"), buf.getRawBuffer(), *it); } } } } if(mode_ != 0) { mode_->staticResolution(context); } return this; } ASTNode *XQApplyTemplates::staticTypingImpl(StaticContext *context) { _src.clear(); // Calculate our static type from the template instances if(context) templates_ = context->getTemplateRules(); bool first = true; UserFunctions::iterator inIt; VectorOfASTNodes::iterator patIt; XQUserFunction::ModeList::iterator modeIt; bool found; for(inIt = templates_.begin(); inIt != templates_.end(); ++inIt) { if((*inIt) == 0) continue; if((*inIt)->getPattern() == 0) { *inIt = 0; continue; } // Eliminate templates based on mode found = false; for(modeIt = (*inIt)->getModeList()->begin(); modeIt != (*inIt)->getModeList()->end(); ++modeIt) { if((*modeIt)->equals(mode_)) { found = true; break; } } if(!found) { // We can't match this template *inIt = 0; continue; } // See if we can eliminate some templates based on the static type // of the select expression found = false; for(patIt = (*inIt)->getPattern()->begin(); patIt != (*inIt)->getPattern()->end(); ++patIt) { if((*patIt)->getStaticAnalysis().getStaticType().containsType(expr_->getStaticAnalysis().getStaticType())) { found = true; break; } } if(!found) { // We can't match this template *inIt = 0; continue; } if(first) { first = false; _src.getStaticType() = (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties((*inIt)->getBodyStaticAnalysis().getProperties()); } else { _src.getStaticType() |= (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & (*inIt)->getBodyStaticAnalysis().getProperties()); } _src.add((*inIt)->getBodyStaticAnalysis()); } TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if(!_src.removeVariable((*it)->uri, (*it)->name)) { // TBD This parameter will never be used - jpcs } } } _src.add(expr_->getStaticAnalysis()); if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { _src.add((*it)->value->getStaticAnalysis()); } } return this; } Result XQApplyTemplates::executeTemplate(const XQUserFunction *tplt, const TemplateArguments *args, const VariableStore *scope, DynamicContext *context, const LocationInfo *location) { VarStoreImpl localscope(context->getMemoryManager(), context->getVariableStore()); if(scope == 0) scope = &localscope; // Check to see if we set the correct parameters for the template if(tplt->getSignature()->argSpecs != 0) { ArgumentSpecs::const_iterator argIt = tplt->getSignature()->argSpecs->begin(); for(; argIt != tplt->getSignature()->argSpecs->end(); ++argIt) { bool found = false; if(args != 0) { TemplateArguments::const_iterator it; for(it = args->begin(); it != args->end(); ++it) { if(XPath2Utils::equals((*it)->name, (*argIt)->getName()) && XPath2Utils::equals((*it)->uri, (*argIt)->getURI())) { if(scope == &localscope) localscope.setVar((*it)->uri, (*it)->name, (*it)->value->createResult(context)); found = true; break; } } } if(!found) { // [ERR XTSE0690] It is a static error if a template that is invoked using xsl:call-template // declares a template parameter specifying required="yes" and not specifying tunnel="yes", if // no value for this parameter is supplied by the calling instruction. XMLBuffer buf; buf.set(X("No value is specified for the template parameter {")); buf.append((*argIt)->getURI()); buf.append(X("}")); buf.append((*argIt)->getName()); buf.append(X(" [err:XTSE0690]")); XQThrow3(StaticErrorException, X("XQApplyTemplates::staticResolution"), buf.getRawBuffer(), location); } } } AutoVariableStoreReset vsReset(context, scope); return tplt->getTemplateInstance()->createResult(context); } void XQApplyTemplates::evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const { if(args_ == 0) return; TemplateArguments::const_iterator it; for(it = args_->begin(); it != args_->end(); ++it) { // TBD variable use count - jpcs scope.setVar((*it)->uri, (*it)->name, (*it)->value->createResult(context)); } } class ApplyTemplatesResult : public ResultImpl { public: ApplyTemplatesResult(const XQApplyTemplates *ast, const Result &input, const UserFunctions &templates, DynamicContext *context) : ResultImpl(ast), ast_(ast), templates_(templates), input_(input), node_(0), scope_(context->getMemoryManager(), context->getVariableStore()), result_(0) { ast_->evaluateArguments(scope_, context); } // Constructor for the default template for elements / document nodes ApplyTemplatesResult(ApplyTemplatesResult *parent, const Node::Ptr &node, DynamicContext *context) : ResultImpl(parent), ast_(parent->ast_), templates_(context->getTemplateRules()), input_(node->getAxisResult(XQStep::CHILD, 0, context, parent)), node_(0), scope_(context->getMemoryManager(), &parent->scope_), result_(0) { } Item::Ptr next(DynamicContext *context) { AutoContextInfoReset ciReset(context, node_); AutoVariableStoreReset vsReset(context, &scope_); Item::Ptr item; while((item = result_->next(context)).isNull()) { ciReset.resetContextInfo(); vsReset.reset(); node_ = input_->next(context); if(node_.isNull()) return 0; context->setContextItem(node_); // TBD What is the correct position / size here - jpcs // Find the first template that matches XQUserFunction *tplt = 0; UserFunctions::const_iterator it = templates_.begin(); for(; tplt == 0 && it != templates_.end(); ++it) { if(*it == 0 || (*it)->getPattern() == 0) continue; if(ast_->getMode() && ast_->getMode()->getState() == XQUserFunction::Mode::CURRENT) { // TBD filter on the current mode - jpcs } VectorOfASTNodes::const_iterator patIt = (*it)->getPattern()->begin(); for(; patIt != (*it)->getPattern()->end(); ++patIt) { if(!(*patIt)->createResult(context)->next(context).isNull()) { tplt = *it; break; } } } context->setVariableStore(&scope_); if(tplt != 0) { result_ = XQApplyTemplates::executeTemplate(tplt, ast_->getArguments(), &scope_, context, this); } else { result_ = executeDefaultTemplate(context); } } return item; } Result executeDefaultTemplate(DynamicContext *context) { const XMLCh *nodeKind = node_->dmNodeKind(); if(nodeKind == Node::document_string || nodeKind == Node::element_string) { return new ApplyTemplatesResult(this, node_, context); } else if(nodeKind == Node::text_string || nodeKind == Node::attribute_string) { AutoDelete builder(context->createSequenceBuilder()); builder->textEvent(node_->dmStringValue(context)); builder->endEvent(); return builder->getSequence(); } else { return 0; } } string asString(DynamicContext *context, int indent) const { return ""; } private: const XQApplyTemplates *ast_; UserFunctions templates_; Result input_; Node::Ptr node_; VarStoreImpl scope_; Result result_; }; Result XQApplyTemplates::createResult(DynamicContext *context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new ApplyTemplatesResult(this, expr_->createResult(context), templates_, context)); } XQilla-2.3.4/src/ast/XQNamespaceConstructor.cpp0000644001725400016040000001310213273140037016331 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQNamespaceConstructor::XQNamespaceConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_name(name), m_children(children) { } EventGenerator::Ptr XQNamespaceConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { const XMLCh *nodeName = m_name->createResult(context)->next(context)->asString(context); if(*nodeName && !XMLChar1_0::isValidNCName(nodeName, XMLString::stringLen(nodeName))) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must be either a zero-length string or a valid xs:NCName [err:XTDE0920]")); if(XPath2Utils::equals(nodeName, XMLUni::fgXMLNSString)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must not be \"xmlns\" [err:XTDE0920]")); XMLBuffer value; getStringValue(m_children, value, context); if(value.getLen() == 0) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The value for the namespace node must not be empty [err:XTDE0930]")); if(XPath2Utils::equals(nodeName, XMLUni::fgXMLString) && !XPath2Utils::equals(value.getRawBuffer(), XMLUni::fgXMLURIName)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must not be \"xml\" when the value is not \"http://www.w3.org/XML/1998/namespace\" [err:XTDE0925]")); if(XPath2Utils::equals(value.getRawBuffer(), XMLUni::fgXMLURIName) && !XPath2Utils::equals(nodeName, XMLUni::fgXMLString)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The value for the namespace node must not be \"http://www.w3.org/XML/1998/namespace\" when the name is not \"xml\" [err:XTDE0925]")); events->namespaceEvent(nodeName, value.getRawBuffer()); return 0; } ASTNode* XQNamespaceConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // and run static resolution m_name = new (mm) XQAtomize(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); unsigned int i; for(i = 0;i < m_children->size(); ++i) { // atomize content and run static resolution (*m_children)[i] = new (mm) XQAtomize((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } return this; } ASTNode *XQNamespaceConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQNamespaceConstructor::staticTyping"), X("It is a static error for the name expression of an namespace constructor " "to be an updating expression [err:XUST0001]")); } unsigned int i; for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQNamespaceConstructor::staticTyping"), X("It is a static error for the a value expression of an namespace constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::NAMESPACE_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQNamespaceConstructor::getNodeType() const { return Node::namespace_string; } ASTNode *XQNamespaceConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQNamespaceConstructor::getChildren() const { return m_children; } void XQNamespaceConstructor::setName(ASTNode *name) { m_name = name; } XQilla-2.3.4/src/ast/XQQuantified.cpp0000644001725400016040000000467013273140037014272 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include XQQuantified::XQQuantified(Type qtype, TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(QUANTIFIED, mm), qtype_(qtype), parent_(parent), expr_(expr) { } ASTNode *XQQuantified::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); parent_ = parent_->staticResolution(context); expr_ = new (mm) XQEffectiveBooleanValue(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQQuantified::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = StaticType::BOOLEAN_TYPE; parent_ = parent_->staticTypingTeardown(context, _src); return this; } BoolResult XQQuantified::boolResult(DynamicContext* context) const { bool defaultResult = (getQuantifierType() == XQQuantified::SOME) ? false : true; AutoVariableStoreReset reset(context); TupleResult::Ptr tuples = getParent()->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); bool result = getExpression()->boolResult(context); if(defaultResult != result) { defaultResult = result; break; } reset.reset(); } return defaultResult; } Result XQQuantified::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/ast/XQGlobalVariable.cpp0000644001725400016040000002227513273140037015050 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQGlobalVariable::XQGlobalVariable(const XMLCh* varQName, SequenceType* seqType, ASTNode* value, XPath2MemoryManager *mm, bool isParam) : isParam_(isParam), required_(!isParam), xpath1Compat_(false), m_szQName(mm->getPooledString(varQName)), m_szURI(0), m_szLocalName(0), m_Type(seqType), m_Value(value), _src(mm), staticTyped_(BEFORE) { } static const XMLCh err_XPTY0004[] = { 'e', 'r', 'r', ':', 'X', 'P', 'T', 'Y', '0', '0', '0', '4', 0 }; void XQGlobalVariable::execute(DynamicContext* context) const { try { if(m_Value == NULL || isParam_) { // It's an external declaration, so check the user has set the value in the variable store Result value = context->getGlobalVariableStore()->getVar(m_szURI, m_szLocalName); if(!value.isNull()) { if(m_Type != NULL) { if(isParam_) { // Convert the external value using the function conversion rules Result matchesRes = m_Type->convertFunctionArg(value, context, xpath1Compat_, m_Type, err_XPTY0004); context->setExternalVariable(m_szURI, m_szLocalName, matchesRes->toSequence(context)); } else { // Check the external value's type Result matchesRes = m_Type->matches(value, m_Type, err_XPTY0004); while(matchesRes->next(context).notNull()) {} } } return; } if(m_Value == NULL) { XMLBuffer errMsg; errMsg.set(X("A value for the external variable ")); if(m_szQName != 0) { errMsg.append(m_szQName); } else { errMsg.append('{'); errMsg.append(m_szURI); errMsg.append('}'); errMsg.append(m_szLocalName); } errMsg.append(X(" has not been provided [err:XPTY0002]")); XQThrow(::IllegalArgumentException,X("XQGlobalVariable::createSequence"),errMsg.getRawBuffer()); } } // TBD Could use our own VariableStore implementation - jpcs context->setExternalVariable(m_szURI, m_szLocalName, m_Value->createResult(context)); } catch(const XPath2TypeMatchException &ex) { XMLBuffer errMsg; errMsg.set(X("The value for the global variable ")); if(m_szQName != 0) { errMsg.append(m_szQName); } else { errMsg.append('{'); errMsg.append(m_szURI); errMsg.append('}'); errMsg.append(m_szLocalName); } errMsg.append(X(" does not match the declared type: ")); errMsg.append(ex.getError()); XQThrow(XPath2TypeMatchException,X("XQGlobalVariable::createSequence"),errMsg.getRawBuffer()); } } void XQGlobalVariable::resolveName(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // variables with no prefix are in no namespace if(m_szLocalName == 0) { const XMLCh* prefix=XPath2NSUtils::getPrefix(m_szQName, mm); if(prefix && *prefix) m_szURI = context->getUriBoundToPrefix(prefix, this); m_szLocalName = XPath2NSUtils::getLocalName(m_szQName); } } void XQGlobalVariable::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); xpath1Compat_ = context->getXPath1CompatibilityMode(); resolveName(context); if(m_Type) m_Type->staticResolution(context); if(m_Value != NULL) { if(m_Type != NULL) { m_Value = new (mm) XQTreatAs(m_Value, m_Type, mm); m_Value->setLocationInfo(this); } m_Value = m_Value->staticResolution(context); } // Set up a default StaticType if(m_Type != 0) { bool isPrimitive; m_Type->getStaticType(_src.getStaticType(), context, isPrimitive, m_Type); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } _src.setProperties(0); } void XQGlobalVariable::staticTypingOnce(StaticContext* context, StaticTyper *styper) { switch(staticTyped_) { case AFTER: return; case DURING: { XMLBuffer buf; buf.append(X("The initializing expression for variable {")); buf.append(m_szURI); buf.append(X("}")); buf.append(m_szLocalName); buf.append(X(" depends on itself [err:XQST0054]")); XQThrow(StaticErrorException, X("XQGlobalVariable::staticTypingOnce"), buf.getRawBuffer()); } case BEFORE: break; } staticTyped_ = DURING; StaticTyper::PrologItem breadcrumb(this, styper->getTrail()); AutoReset autorReset2(styper->getTrail()); styper->getTrail() = &breadcrumb;; GlobalVariables globalsUsed(XQillaAllocator(context->getMemoryManager())); { AutoReset autoReset(styper->getGlobalsUsed()); styper->getGlobalsUsed() = &globalsUsed; staticTyping(context, styper); } if(!globalsUsed.empty()) { // Static type the global variables from this module which we depend on GlobalVariables::iterator it = globalsUsed.begin(); for(; it != globalsUsed.end(); ++it) { // XQuery 1.0 doesn't allow forward references XQQuery *module = context->getModule(); if(!module->getVersion3()) { GlobalVariables::const_iterator it2 = module->getVariables().begin(); for(; it2 != module->getVariables().end(); ++it2) { if(*it2 == *it) break; if(*it2 == this) { XMLBuffer errMsg; errMsg.set(X("Cannot refer to global variable with name {")); errMsg.append((*it)->getVariableURI()); errMsg.append(X("}")); errMsg.append((*it)->getVariableLocalName()); errMsg.append(X(" because it is declared later [err:XPST0008]")); XQThrow(StaticErrorException,X("XQGlobalVariable::staticTypingOnce"), errMsg.getRawBuffer()); } } } (*it)->staticTypingOnce(context, styper); } // Re-static type this global variable staticTyping(context, styper); } staticTyped_ = AFTER; styper->getGlobalsOrder()->push_back(this); } void XQGlobalVariable::resetStaticTypingOnce() { staticTyped_ = BEFORE; } void XQGlobalVariable::staticTyping(StaticContext* context, StaticTyper *styper) { VariableTypeStore* varStore = context->getVariableTypeStore(); if(m_Value != NULL) { XQUserFunction::staticTypeFunctionCalls(m_Value, context, styper); // Add UNDEFINEDVAR to properties, since variables aren't in scope for themselves _src.setProperties(_src.getProperties() | StaticAnalysis::UNDEFINEDVAR); m_Value = m_Value->staticTyping(context, styper); _src.copy(m_Value->getStaticAnalysis()); if(m_Value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQGlobalVariable::staticTyping"), X("It is a static error for the initializing expression of a global variable " "to be an updating expression [err:XUST0001]")); } } if(m_Value == 0 || !required_) { if(m_Type != 0) { bool isPrimitive; m_Type->getStaticType(_src.getStaticType(), context, isPrimitive, m_Type); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } _src.setProperties(0); } varStore->declareGlobalVar(m_szURI, m_szLocalName, _src, this); } const XMLCh* XQGlobalVariable::getVariableName() const { return m_szQName; } bool XQGlobalVariable::isExternal() const { return (m_Value==NULL); } void XQGlobalVariable::setVariableExpr(ASTNode* value) { m_Value=value; } const SequenceType *XQGlobalVariable::getSequenceType() const { return m_Type; } const ASTNode *XQGlobalVariable::getVariableExpr() const { return m_Value; } const XMLCh *XQGlobalVariable::getVariableURI() const { return m_szURI; } const XMLCh *XQGlobalVariable::getVariableLocalName() const { return m_szLocalName; } XQilla-2.3.4/src/ast/ContextTuple.cpp0000644001725400016040000000355213273140037014364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include TupleNode *ContextTuple::staticResolution(StaticContext *context) { return this; } TupleNode *ContextTuple::staticTypingImpl(StaticContext *context) { min_ = 1; max_ = 1; return this; } TupleNode *ContextTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { return this; } class ContextTupleResult : public TupleResult { public: ContextTupleResult(const LocationInfo *loc) : TupleResult(loc), varStore_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return varStore_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { varStore_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { if(varStore_ != 0) return false; varStore_ = context->getVariableStore(); return true; } private: const VariableStore *varStore_; }; TupleResult::Ptr ContextTuple::createResult(DynamicContext* context) const { return new ContextTupleResult(this); } XQilla-2.3.4/src/ast/XQCopyOf.cpp0000644001725400016040000000400213273140037013365 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; XQCopyOf::XQCopyOf(XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY_OF, memMgr), expr_(0), copyNamespaces_(true) { } XQCopyOf::XQCopyOf(ASTNode *expr, bool copyNamespaces, XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY_OF, memMgr), expr_(expr), copyNamespaces_(copyNamespaces) { } ASTNode* XQCopyOf::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQCopyOf::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); _src.setProperties(0); if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return expr_; } return this; } Result XQCopyOf::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQCopyOf::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { return expr_->generateEvents(events, context, copyNamespaces_, false); } XQilla-2.3.4/src/ast/XQFunctionRef.cpp0000644001725400016040000000561013273140037014416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; XQFunctionRef::XQFunctionRef(const XMLCh *qname, unsigned int numArgs, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_REF, mm), qname_(qname), numArgs_(numArgs) { } ASTNode *XQFunctionRef::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); const XMLCh *name = XPath2NSUtils::getLocalName(qname_); const XMLCh *uri; if(prefix == 0 || *prefix == 0) { uri = context->getDefaultFuncNS(); } else { uri = context->getUriBoundToPrefix(prefix, this); } FunctionSignature *signature = 0; ASTNode *instance = FunctionRefImpl::createInstance(uri, name, numArgs_, context, this, signature); if(instance == 0) { XMLBuffer buf; buf.set(X("A function called {")); buf.append(uri); buf.append(X("}")); buf.append(name); buf.append(X(" with ")); XPath2Utils::numToBuf(numArgs_, buf); buf.append(X(" arguments is not defined [err:XPST0017]")); XQThrow(StaticErrorException, X("XQFunctionRef::staticResolution"), buf.getRawBuffer()); } instance = instance->staticResolution(context); ASTNode *result = new (mm) XQInlineFunction(0, prefix, uri, name, numArgs_, signature, instance, mm); result->setLocationInfo(result); this->release(); return result; // Don't call staticResolution() on result } ASTNode *XQFunctionRef::staticTypingImpl(StaticContext *context) { // Should never happen assert(false); return this; } Result XQFunctionRef::createResult(DynamicContext *context, int flags) const { // Should never happen assert(false); return 0; } XQilla-2.3.4/src/ast/XQPIConstructor.cpp0000644001725400016040000001356713273140037014764 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQPIConstructor::XQPIConstructor(ASTNode* name, ASTNode* value, XPath2MemoryManager* mm, bool xslt) : XQDOMConstructor(mm), m_name(name), m_value(value), xslt_(xslt) { } static bool checkString(const XMLCh *str) { // Check for the substring "?>" bool foundQ = false; const XMLCh *ptr = str; while(*ptr != 0) { if(*ptr == chCloseAngle && foundQ) return false; else if(*ptr == chQuestion) foundQ = true; else foundQ = false; ++ptr; } return true; } EventGenerator::Ptr XQPIConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Result resName = m_name->createResult(context); AnyAtomicType::Ptr itemName = resName->next(context); if(itemName.isNull() || resName->next(context).notNull()) XQThrow(ASTException,X("DOM Constructor"),X("The target for the processing instruction must be a single " "xs:NCName, xs:string or xs:untypedAtomic item [err:XPTY0004]")); const XMLCh* nodeName = NULL; // the specs specify that a xs:NCName could be returned, but we create a xs:string in that case if(itemName->getPrimitiveTypeIndex() == AnyAtomicType::STRING || itemName->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { nodeName = itemName->asString(context); if(!XMLChar1_0::isValidNCName(nodeName, XMLString::stringLen(nodeName))) XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must be a valid xs:NCName [err:XQDY0041]")); } else XQThrow(ASTException,X("DOM Constructor"),X("The target for the processing instruction must be a single " "xs:NCName, xs:string or xs:untypedAtomic item [err:XPTY0004]")); if(XMLString::compareIString(nodeName, XMLUni::fgXMLString) == 0) XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must not be 'XML' [err:XQDY0064]")); if(!checkString(nodeName)) { XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must not contain the string '?>' [err:XQDY0026]")); } if(nodeName == NULL || *nodeName == 0) XQThrow(ASTException,X("DOM Constructor"),X("The name for the processing instruction is empty")); XMLBuffer value; getStringValue(m_value, value, context); if(!checkString(value.getRawBuffer())) { XQThrow(ASTException,X("DOM Constructor"), X("The content for the processing instruction must not contain the string '?>' [err:XQDY0026]")); } const XMLCh* piContent = value.getRawBuffer(); // remove leading whitespace while(XMLChar1_0::isWhitespace(*piContent)) piContent++; events->piEvent(nodeName, piContent); return 0; } ASTNode* XQPIConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_name = new (mm) XQAtomize(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQPIConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQPIConstructor::staticTyping"), X("It is a static error for the name expression of a processing instruction node constructor " "to be an updating expression [err:XUST0001]")); } _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQPIConstructor::staticTyping"), X("It is a static error for the value expression of a processing instruction node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::PI_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQPIConstructor::getNodeType() const { return Node::processing_instruction_string; } ASTNode *XQPIConstructor::getName() const { return m_name; } ASTNode *XQPIConstructor::getValue() const { return m_value; } void XQPIConstructor::setName(ASTNode *name) { m_name = name; } void XQPIConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.4/src/ast/XQNamespaceBinding.cpp0000644001725400016040000001062413273140037015364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; XQNamespaceBinding::XQNamespaceBinding(DOMXPathNSResolver *namespaces, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(NAMESPACE_BINDING, mm), expr_(expr), namespaces_(namespaces) { } ASTNode *XQNamespaceBinding::staticResolution(StaticContext *context) { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQNamespaceBinding::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); return this; } class NamespaceBindingResult : public ResultImpl { public: NamespaceBindingResult(const XQNamespaceBinding *ast, DynamicContext *context) : ResultImpl(ast), ast_(ast), result_(0) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); result_ = ast->getExpression()->createResult(context); } NamespaceBindingResult(const XQNamespaceBinding *ast, const Result &contextItems, DynamicContext *context) : ResultImpl(ast), ast_(ast), result_(0) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); result_ = ast->getExpression()->iterateResult(contextItems, context); } virtual Item::Ptr next(DynamicContext *context) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return result_->next(context); } private: const XQNamespaceBinding *ast_; Result result_; }; Result XQNamespaceBinding::createResult(DynamicContext *context, int flags) const { return new NamespaceBindingResult(this, context); } Result XQNamespaceBinding::iterateResult(const Result &contextItems, DynamicContext *context) const { return new NamespaceBindingResult(this, contextItems, context); } EventGenerator::Ptr XQNamespaceBinding::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return expr_->generateEvents(events, context, preserveNS, preserveType); } PendingUpdateList XQNamespaceBinding::createUpdateList(DynamicContext *context) const { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return expr_->createUpdateList(context); } XQilla-2.3.4/src/ast/XQStep.cpp0000644001725400016040000001330113273140037013103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include XQStep::XQStep(Axis axis, NodeTest* nodeTest, XPath2MemoryManager* memMgr) : ASTNodeImpl(STEP, memMgr), nodeTest_(nodeTest), axis_(axis) { } XQStep::~XQStep() { } unsigned int XQStep::getAxisProperties(Axis axis) { unsigned int properties = 0; // properties depend on the axis of the step switch (axis) { case SELF: properties |= StaticAnalysis::ONENODE | StaticAnalysis::SELF; // Fall through case CHILD: case ATTRIBUTE: case NAMESPACE: properties |= StaticAnalysis::SUBTREE | StaticAnalysis::PEER; break; case DESCENDANT: case DESCENDANT_OR_SELF: properties |= StaticAnalysis::SUBTREE; break; case FOLLOWING_SIBLING: case PRECEDING_SIBLING: properties |= StaticAnalysis::PEER; break; case PARENT: properties |= StaticAnalysis::PEER | StaticAnalysis::ONENODE; break; default: break; } properties |= StaticAnalysis::GROUPED | StaticAnalysis::SAMEDOC; if(isForwardAxis(axis) || axis == PARENT) { properties |= StaticAnalysis::DOCORDER; } return properties; } ASTNode* XQStep::staticResolution(StaticContext *context) { nodeTest_->staticResolution(context, this); return this; } ASTNode *XQStep::staticTypingImpl(StaticContext *context) { _src.clear(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQStep::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.setProperties(getAxisProperties(axis_)); _src.contextItemUsed(true); bool isExact; nodeTest_->getStaticType(_src.getStaticType(), context, isExact, this); _src.getStaticType().multiply(0, StaticType::UNLIMITED); switch(axis_) { case SELF: if(context) _src.getStaticType().typeNodeIntersect(context->getContextItemType()); break; case ATTRIBUTE: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::ATTRIBUTE_TYPE, 0, StaticType::UNLIMITED)); break; case NAMESPACE: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::NAMESPACE_TYPE, 0, StaticType::UNLIMITED)); break; case CHILD: case DESCENDANT: case FOLLOWING: case FOLLOWING_SIBLING: case PRECEDING: case PRECEDING_SIBLING: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::ELEMENT_TYPE | StaticType::TEXT_TYPE | StaticType::PI_TYPE | StaticType::COMMENT_TYPE, 0, StaticType::UNLIMITED)); break; case ANCESTOR: case PARENT: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE, 0, StaticType::UNLIMITED)); break; case DESCENDANT_OR_SELF: case ANCESTOR_OR_SELF: // Could be any type break; } return this; } bool XQStep::isForwardAxis(Axis axis) { switch(axis) { case ANCESTOR: case ANCESTOR_OR_SELF: case PARENT: case PRECEDING: case PRECEDING_SIBLING: return false; case ATTRIBUTE: case CHILD: case DESCENDANT: case DESCENDANT_OR_SELF: case FOLLOWING: case FOLLOWING_SIBLING: case NAMESPACE: case SELF: return true; } return false; } NodeTest *XQStep::getNodeTest() const { return nodeTest_; } void XQStep::setNodeTest(NodeTest *nt) { nodeTest_ = nt; } XQStep::Axis XQStep::getAxis() const { return axis_; } void XQStep::setAxis(XQStep::Axis a) { axis_ = a; } class StepResult : public ResultImpl { public: StepResult(const Result &parent, const XQStep *step) : ResultImpl(step), parent_(parent), step_(step), stepResult_(0) { } Item::Ptr next(DynamicContext *context) { Item::Ptr result; while((result = stepResult_->next(context)).isNull()) { context->testInterrupt(); Item::Ptr item = parent_->next(context); if(item.isNull()) { return 0; } if(!item->isNode()) { XQThrow(TypeErrorException,X("StepResult::next"), X("An attempt was made to perform an axis step when the Context Item was not a node [err:XPTY0020]")); } stepResult_ = ((Node*)item.get())->getAxisResult(step_->getAxis(), step_->getNodeTest(), context, this); } return result; } protected: Result parent_; const XQStep *step_; Result stepResult_; }; Result XQStep::createResult(DynamicContext* context, int flags) const { return new StepResult(XQContextItem::result(context, this), this); } Result XQStep::iterateResult(const Result &contextItems, DynamicContext* context) const { return new StepResult(contextItems, this); } XQilla-2.3.4/src/ast/XQPartialApply.cpp0000644001725400016040000001002613273140037014573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQPartialApply::XQPartialApply(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(PARTIAL_APPLY, mm), expr_(expr), args_(args) { } ASTNode *XQPartialApply::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); unsigned int argCount = 0; if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { if(*i != 0) { *i = (*i)->staticResolution(context); ++argCount; } } } // If no actual arguments are specified, the partial apply has no effect if(argCount == 0) { ASTNode *result = expr_; expr_ = 0; this->release(); return result; } return this; } ASTNode *XQPartialApply::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); unsigned int argCount = 0; if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { if(*i != 0) { _src.add((*i)->getStaticAnalysis()); ++argCount; } } } const StaticType &inType = expr_->getStaticAnalysis().getStaticType(); if(inType.getReturnType() == 0) { _src.getStaticType() = StaticType::FUNCTION_TYPE; } else { unsigned int minArgs = inType.getMinArgs(); unsigned int maxArgs = inType.getMaxArgs(); if(minArgs > argCount) minArgs -= argCount; else minArgs = 0; if(maxArgs > argCount) maxArgs -= argCount; else maxArgs = 0; // TBD Using getMemoryManager() might not be thread safe in DB XML - jpcs _src.getStaticType() = StaticType(getMemoryManager(), minArgs, maxArgs, *inType.getReturnType()); } return this; } Result XQPartialApply::createResult(DynamicContext *context, int flags) const { FunctionRef::Ptr function = (FunctionRef*)expr_->createResult(context)->next(context).get(); if(args_->size() != function->getNumArgs()) { XMLBuffer buf; buf.set(X("The function item invoked does not accept ")); XPath2Utils::numToBuf((unsigned int)args_->size(), buf); buf.append(X(" arguments - found item of type ")); function->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQPartialApply::createResult"), buf.getRawBuffer()); } int argNum = 1; VectorOfASTNodes::iterator i; for(i = args_->begin(); i != args_->end(); ++i) { if(*i) function = function->partialApply((*i)->createResult(context), argNum, context, this); else ++argNum; } return (Item::Ptr)function; } XQilla-2.3.4/src/ast/StaticAnalysis.cpp0000644001725400016040000002711613273140037014663 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; StaticAnalysis::StaticAnalysis(XPath2MemoryManager* memMgr) : _recycle(0), _memMgr(memMgr) { memset(_dynamicVariables, 0, sizeof(_dynamicVariables)); clear(); } StaticAnalysis::StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager* memMgr) : _recycle(0), _memMgr(memMgr) { memset(_dynamicVariables, 0, sizeof(_dynamicVariables)); clear(); copy(o); } void StaticAnalysis::copy(const StaticAnalysis &o) { add(o); _properties = o._properties; _staticType = o._staticType; } void StaticAnalysis::release() { _staticType = StaticType(); VarEntry *tmp; for(int i = 0; i < HASH_SIZE; ++i) { while(_dynamicVariables[i]) { tmp = _dynamicVariables[i]; _dynamicVariables[i] = tmp->prev; _memMgr->deallocate(tmp); } } while(_recycle) { tmp = _recycle; _recycle = tmp->prev; _memMgr->deallocate(tmp); } } void StaticAnalysis::clear() { clearExceptType(); _staticType = StaticType(); } void StaticAnalysis::clearExceptType() { _contextItem = false; _contextPosition = false; _contextSize = false; _currentTime = false; _implicitTimezone = false; _availableDocuments = false; _availableCollections = false; _forceNoFolding = false; _creative = false; _updating = false; _possiblyUpdating = false; _properties = 0; VarEntry *tmp; for(int i = 0; i < HASH_SIZE; ++i) { while(_dynamicVariables[i]) { tmp = _dynamicVariables[i]; _dynamicVariables[i] = tmp->prev; tmp->prev = _recycle; _recycle = tmp; } } } void StaticAnalysis::contextItemUsed(bool value) { _contextItem = value; } void StaticAnalysis::contextPositionUsed(bool value) { _contextPosition = value; } void StaticAnalysis::contextSizeUsed(bool value) { _contextSize = value; } bool StaticAnalysis::isContextItemUsed() const { return _contextItem; } bool StaticAnalysis::isContextPositionUsed() const { return _contextPosition; } bool StaticAnalysis::isContextSizeUsed() const { return _contextSize; } /** Returns true if any of the context item flags have been used */ bool StaticAnalysis::areContextFlagsUsed() const { return _contextItem || _contextPosition || _contextSize; } void StaticAnalysis::currentTimeUsed(bool value) { _currentTime = value; } void StaticAnalysis::implicitTimezoneUsed(bool value) { _implicitTimezone = value; } void StaticAnalysis::availableDocumentsUsed(bool value) { _availableDocuments = value; } void StaticAnalysis::availableCollectionsUsed(bool value) { _availableCollections = value; } bool StaticAnalysis::areDocsOrCollectionsUsed() const { return _availableDocuments || _availableCollections; } void StaticAnalysis::forceNoFolding(bool value) { _forceNoFolding = value; } bool StaticAnalysis::isNoFoldingForced() const { return _forceNoFolding; } #define CREATE_VAR_ENTRY(entry) \ do { \ if(_recycle) { \ (entry) = _recycle; \ _recycle = (entry)->prev; \ } \ else { \ (entry) = new (_memMgr) VarEntry(); \ } \ } while(0) #define ADD_VAR_ENTRY(entry) \ do { \ VarEntry *ve = _dynamicVariables[(entry)->hash]; \ while(ve) { \ if(ve->uri == (entry)->uri && ve->name == (entry)->name) \ break; \ ve = ve->prev; \ } \ if(ve) { \ (entry)->prev = _recycle; \ _recycle = (entry); \ } \ else { \ (entry)->prev = _dynamicVariables[(entry)->hash]; \ _dynamicVariables[(entry)->hash] = (entry); \ } \ } while(0) void StaticAnalysis::variableUsed(const XMLCh *namespaceURI, const XMLCh *name) { VarEntry *entry; CREATE_VAR_ENTRY(entry); entry->set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); ADD_VAR_ENTRY(entry); } StaticAnalysis::VarEntry **StaticAnalysis::variablesUsed() const { return (VarEntry**)_dynamicVariables; } bool StaticAnalysis::removeVariable(const XMLCh *namespaceURI, const XMLCh *name) { VarEntry lookup; lookup.set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); VarEntry **parent = &_dynamicVariables[lookup.hash]; while(*parent) { if((*parent)->uri == lookup.uri && (*parent)->name == lookup.name) { VarEntry *tmp = *parent; *parent = tmp->prev; tmp->prev = _recycle; _recycle = tmp; return true; } else { parent = &(*parent)->prev; } } return false; } bool StaticAnalysis::isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const { VarEntry lookup; lookup.set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); VarEntry *entry = _dynamicVariables[lookup.hash]; while(entry) { if(entry->uri == lookup.uri && entry->name == lookup.name) { return true; } entry = entry->prev; } return false; } bool StaticAnalysis::isVariableUsed() const { for(int i = 0; i < HASH_SIZE; ++i) { if(_dynamicVariables[i]) return true; } return false; } /** Sets the members of this StaticAnalysis from the given StaticAnalysis */ void StaticAnalysis::add(const StaticAnalysis &o) { if(o._contextItem) _contextItem = true; if(o._contextPosition) _contextPosition = true; if(o._contextSize) _contextSize = true; if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); entry = entry->prev; } } } void StaticAnalysis::addExceptContextFlags(const StaticAnalysis &o) { if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); entry = entry->prev; } } } void StaticAnalysis::addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o) { namespaceURI = _memMgr->getPooledString(namespaceURI); name = _memMgr->getPooledString(name); if(o._contextItem) _contextItem = true; if(o._contextPosition) _contextPosition = true; if(o._contextSize) _contextSize = true; if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { if(namespaceURI != entry->uri || name != entry->name) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); } entry = entry->prev; } } } /** Returns true if flags are set, or variables have been used */ bool StaticAnalysis::isUsed() const { return _contextItem || _contextPosition || _contextSize || _currentTime || _implicitTimezone || _availableCollections || _availableDocuments || _forceNoFolding || _creative || isVariableUsed(); } bool StaticAnalysis::isUsedExceptContextFlags() const { return _currentTime || _implicitTimezone || _availableCollections || _availableDocuments || _forceNoFolding || _creative || isVariableUsed(); } void StaticAnalysis::creative(bool value) { _creative = value; } bool StaticAnalysis::isCreative() const { return _creative; } void StaticAnalysis::updating(bool value) { _updating = value; } bool StaticAnalysis::isUpdating() const { return _updating; } void StaticAnalysis::possiblyUpdating(bool value) { _possiblyUpdating = value; } bool StaticAnalysis::isPossiblyUpdating() const { return _possiblyUpdating; } unsigned int StaticAnalysis::getProperties() const { return _properties; } void StaticAnalysis::setProperties(unsigned int props) { _properties = props; } const StaticType &StaticAnalysis::getStaticType() const { return _staticType; } StaticType &StaticAnalysis::getStaticType() { return _staticType; } std::string StaticAnalysis::toString() const { std::ostringstream s; s << "Context Item: " << (_contextItem ? "true" : "false") << std::endl; s << "Context Position: " << (_contextPosition ? "true" : "false") << std::endl; s << "Context Size: " << (_contextSize ? "true" : "false") << std::endl; s << "Current Time: " << (_currentTime ? "true" : "false") << std::endl; s << "Implicit Timezone: " << (_implicitTimezone ? "true" : "false") << std::endl; s << "Available Documents: " << (_availableDocuments ? "true" : "false") << std::endl; s << "Available Collections: " << (_availableCollections ? "true" : "false") << std::endl; s << "Force No Folding: " << (_forceNoFolding ? "true" : "false") << std::endl; s << "Creative: " << (_creative ? "true" : "false") << std::endl; s << "Updating: " << (_updating ? "true" : "false") << std::endl; s << "Possibly Updating: " << (_possiblyUpdating ? "true" : "false") << std::endl; s << "Variables Used: ["; bool first = true; for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = _dynamicVariables[i]; while(entry) { if(first) { first = false; } else { s << ", "; } s << "{" << UTF8(entry->uri) << "}" << UTF8(entry->name); entry = entry->prev; } } s << "]" << std::endl; XMLBuffer buf; _staticType.typeToBuf(buf); s << "Static Type: " << UTF8(buf.getRawBuffer()) << std::endl; return s.str(); } void StaticAnalysis::VarEntry::set(const XMLCh *u, const XMLCh *n) { uri = u; name = n; hash = 5381; prev = 0; if(u) { while(*u++) hash = ((hash << 5) + hash) + *u; } if(n) { while(*n++) hash = ((hash << 5) + hash) + *n; } hash %= HASH_SIZE; } void StaticAnalysis::VarEntry::set(const XMLCh *u, const XMLCh *n, size_t h) { uri = u; name = n; hash = h; prev = 0; } XQilla-2.3.4/src/ast/XQInlineFunction.cpp0000644001725400016040000000622313273140037015121 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; XQInlineFunction::XQInlineFunction(XQUserFunction *func, XPath2MemoryManager *mm) : ASTNodeImpl(INLINE_FUNCTION, mm), func_(func), prefix_(0), uri_(0), name_(0), numArgs_((unsigned int)(func->getSignature()->argSpecs ? func->getSignature()->argSpecs->size() : 0)), signature_(new (mm) FunctionSignature(func->getSignature(), mm)), instance_(0) { } XQInlineFunction::XQInlineFunction(XQUserFunction *func, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, unsigned int numArgs, FunctionSignature *signature, ASTNode *instance, XPath2MemoryManager *mm) : ASTNodeImpl(INLINE_FUNCTION, mm), func_(func), prefix_(prefix), uri_(uri), name_(name), numArgs_(numArgs), signature_(signature), instance_(instance) { } ASTNode *XQInlineFunction::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); func_->staticResolutionStage1(context); signature_->staticResolution(context); instance_ = FunctionRefImpl::createInstance(func_, signature_, mm, this); instance_ = instance_->staticResolution(context); func_->staticResolutionStage2(context); return this; } ASTNode *XQInlineFunction::staticTypingImpl(StaticContext *context) { _src.clear(); _src.addExceptContextFlags(instance_->getStaticAnalysis()); // Remove the argument variables if(signature_->argSpecs) { ArgumentSpecs::const_iterator argsIt = signature_->argSpecs->begin(); for(; argsIt != signature_->argSpecs->end(); ++argsIt) { _src.removeVariable((*argsIt)->getURI(), (*argsIt)->getName()); } } // TBD Using getMemoryManager() might not be thread safe in DB XML - jpcs _src.getStaticType() = StaticType(getMemoryManager(), numArgs_, instance_->getStaticAnalysis().getStaticType()); return this; } Result XQInlineFunction::createResult(DynamicContext *context, int flags) const { return (Item::Ptr)new FunctionRefImpl(prefix_, uri_, name_, signature_, instance_, _src, context); } XQilla-2.3.4/src/ast/XQSequence.cpp0000644001725400016040000001424313273140037013746 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include static const unsigned int CONSTANT_FOLD_LIMIT = 4; XQSequence *XQSequence::constantFold(Result &result, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location) { XQSequence *seq = new (memMgr) XQSequence(memMgr); seq->setLocationInfo(location); Item::Ptr item; while((item = result->next(context)).notNull()) { if(seq->_astNodes.size() > CONSTANT_FOLD_LIMIT) { seq->release(); return 0; } seq->addItem(XQLiteral::create(item, context, memMgr, location)); } // Don't specify a context for staticTyping seq->staticTypingImpl(0); return seq; } XQSequence::XQSequence(XPath2MemoryManager* memMgr) : ASTNodeImpl(SEQUENCE, memMgr), _astNodes(XQillaAllocator(memMgr)) { } XQSequence::XQSequence(const VectorOfASTNodes &children, XPath2MemoryManager* memMgr) : ASTNodeImpl(SEQUENCE, memMgr), _astNodes(XQillaAllocator(memMgr)) { _astNodes = children; } void XQSequence::addItem(ASTNode* di) { _astNodes.push_back(di); } ASTNode* XQSequence::staticResolution(StaticContext *context) { for(VectorOfASTNodes::iterator i = _astNodes.begin(); i != _astNodes.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } ASTNode *XQSequence::staticTypingImpl(StaticContext *context) { _src.clear(); bool doneOne = false; bool possiblyUpdating = true; bool nestedSeq = false; VectorOfASTNodes::iterator i = _astNodes.begin(); if(i == _astNodes.end()) { _src.possiblyUpdating(true); } for(; i != _astNodes.end(); ++i) { if(_src.isUpdating()) { if(!(*i)->getStaticAnalysis().isUpdating() && !(*i)->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQSequence::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if((*i)->getStaticAnalysis().isUpdating() && !possiblyUpdating) XQThrow(StaticErrorException, X("XQSequence::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } if(possiblyUpdating) possiblyUpdating = (*i)->getStaticAnalysis().isPossiblyUpdating(); if(!doneOne) { doneOne = true; _src.getStaticType() = (*i)->getStaticAnalysis().getStaticType(); } else { _src.getStaticType().typeConcat((*i)->getStaticAnalysis().getStaticType()); } if((*i)->getType() == SEQUENCE) nestedSeq = true; _src.add((*i)->getStaticAnalysis()); } if(context && nestedSeq) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); for(i = _astNodes.begin(); i != _astNodes.end(); ++i) { if((*i)->getType() == SEQUENCE) { XQSequence *arg = (XQSequence*)*i; for(VectorOfASTNodes::iterator j = arg->_astNodes.begin(); j != arg->_astNodes.end(); ++j) { newArgs.push_back(*j); } } else { newArgs.push_back(*i); } } _astNodes = newArgs; } // Dissolve ourselves if we have only one child if(context && _astNodes.size() == 1) { return _astNodes.front(); } return this; } EventGenerator::Ptr XQSequence::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { VectorOfASTNodes::const_iterator i = _astNodes.begin(); VectorOfASTNodes::const_iterator end = _astNodes.end(); if(i == end) return 0; --end; for(; i != end; ++i) { (*i)->generateAndTailCall(events, context, preserveNS, preserveType); } return new ClosureEventGenerator(*i, context, preserveNS, preserveType); } PendingUpdateList XQSequence::createUpdateList(DynamicContext *context) const { PendingUpdateList result; for(VectorOfASTNodes::const_iterator i = _astNodes.begin(); i != _astNodes.end(); ++i) { result.mergeUpdates((*i)->createUpdateList(context)); } return result; } class XQSequenceResult : public ResultImpl { public: XQSequenceResult(const XQSequence *ast) : ResultImpl(ast), ast_(ast), i_(ast->getChildren().begin()), result_(0) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = result_->next(context); while(item.isNull()) { const ASTNode *ast = *i_; ++i_; if(i_ == ast_->getChildren().end()) { // Tail call optimisation tail = ast->createResult(context); return 0; } result_ = ast->createResult(context); item = result_->next(context); } return item; } private: const XQSequence *ast_; VectorOfASTNodes::const_iterator i_; Result result_; }; Result XQSequence::createResult(DynamicContext* context, int flags) const { if(_astNodes.empty()) return 0; return ClosureResult::create(getStaticAnalysis(), context, new XQSequenceResult(this)); } BoolResult XQSequence::boolResult(DynamicContext* context) const { if(_astNodes.empty()) return BoolResult::Null; if(_astNodes.size() == 1) return _astNodes[0]->boolResult(context); return ASTNodeImpl::boolResult(context); } XQilla-2.3.4/src/ast/XQDocumentConstructor.cpp0000644001725400016040000001057213273140037016223 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQDocumentConstructor::XQDocumentConstructor(ASTNode *value, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_value(value) { } EventGenerator::Ptr XQDocumentConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { events->startDocumentEvent(0, 0); DocConstructFilter filter(events, this); m_value->generateAndTailCall(&filter, context, preserveNS, preserveType); events->endDocumentEvent(); return 0; } ASTNode* XQDocumentConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQContentSequence(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQDocumentConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQDocumentConstructor::staticTyping"), X("It is a static error for the content expression of a document node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::DOCUMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQDocumentConstructor::getNodeType() const { return Node::document_string; } ASTNode *XQDocumentConstructor::getValue() const { return m_value; } void XQDocumentConstructor::setValue(ASTNode *value) { m_value = value; } ////////////////////////////////////////////////////////////////////// DocConstructFilter::DocConstructFilter(EventHandler *next, const LocationInfo *location) : EventFilter(next), location_(location), level_(0) { } void DocConstructFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { ++level_; next_->startElementEvent(prefix, uri, localname); } void DocConstructFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void DocConstructFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(ASTException,X("DocConstructFilter::attributeEvent"), X("An attribute node cannot be a child of a document [err:XPTY0004]."), location_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void DocConstructFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { XQThrow3(ASTException,X("DocConstructFilter::attributeEvent"), X("An namespace node cannot be a child of a document [err:XPTY0004]."), location_); } next_->namespaceEvent(prefix, uri); } XQilla-2.3.4/src/ast/TupleNode.cpp0000644001725400016040000000155213273140037013623 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include void TupleNode::release() { ASTReleaser().release(this); } XQilla-2.3.4/src/ast/XQVariable.cpp0000644001725400016040000000657113273140037013730 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQVariable::XQVariable(const XMLCh *qualifiedName, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _uri(0), _global(0) { QualifiedName qname(qualifiedName, getMemoryManager()); _prefix = qname.getPrefix(); _name = qname.getName(); } XQVariable::XQVariable(const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _prefix(0), _uri(uri), _name(name), _global(0) { } XQVariable::XQVariable(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XQGlobalVariable *global, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _prefix(prefix), _uri(uri), _name(name), _global(global) { } XQVariable::~XQVariable() { } Result XQVariable::createResult(DynamicContext* context, int flags) const { return context->getVariableStore()->getVar(_uri, _name); } ASTNode* XQVariable::staticResolution(StaticContext *context) { // An unprefixed variable reference is in no namespace. if(_prefix && *_prefix) _uri = context->getUriBoundToPrefix(_prefix, this); return this; } ASTNode *XQVariable::staticTypingImpl(StaticContext *context) { if(context == 0) return this; _src.clear(); const StaticAnalysis *var_src = context->getVariableTypeStore()->getVar(_uri, _name, &_global); if(var_src == NULL || (var_src->getProperties() & StaticAnalysis::UNDEFINEDVAR)!=0) { XMLBuffer errMsg; errMsg.append(X("A variable called {")); errMsg.append(_uri); errMsg.append(X("}")); errMsg.append(_name); errMsg.append(X(" does not exist [err:XPST0008]")); XQThrow(StaticErrorException, X("XQVariable::staticResolution"), errMsg.getRawBuffer()); } _src.setProperties(var_src->getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); _src.getStaticType() = var_src->getStaticType(); _src.variableUsed(_uri, _name); return this; } const XMLCh *XQVariable::getPrefix() const { return _prefix; } const XMLCh *XQVariable::getURI() const { return _uri; } const XMLCh *XQVariable::getName() const { return _name; } XQilla-2.3.4/src/ast/CountTuple.cpp0000644001725400016040000001017213273140037014024 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include CountTuple::CountTuple(TupleNode *parent, const XMLCh *varQName, XPath2MemoryManager *mm) : TupleNode(COUNT, parent, mm), varQName_(varQName), varURI_(0), varName_(0), varSrc_(mm) { } CountTuple::CountTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, XPath2MemoryManager *mm) : TupleNode(COUNT, parent, mm), varQName_(0), varURI_(varURI), varName_(varName), varSrc_(mm) { } TupleNode *CountTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); if(varName_ == 0) { varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); } return this; } static bool canPushCountBack(TupleNode *ancestor) { switch(ancestor->getType()) { case TupleNode::COUNT: { return canPushCountBack(ancestor->getParent()); } case TupleNode::ORDER_BY: case TupleNode::WHERE: case TupleNode::FOR: case TupleNode::CONTEXT_TUPLE: break; case TupleNode::LET: case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *CountTuple::staticTypingImpl(StaticContext *context) { // Push back if possible if(canPushCountBack(parent_)) { // Swap parent_ and this LetTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *CountTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(varName_ && !usedSrc.removeVariable(varURI_, varName_)) { varURI_ = 0; varName_ = 0; } parent_ = parent_->staticTypingTeardown(context, usedSrc); if(varName_ == 0) return parent_; return this; } class CountTupleResult : public TupleResult { public: CountTupleResult(const CountTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), position_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return posItem_; return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { context->testInterrupt(); if(!parent_->next(context)) return false; posItem_ = context->getItemFactory()->createInteger(++position_, context); return true; } private: const CountTuple *ast_; TupleResult::Ptr parent_; Item::Ptr posItem_; int position_; }; TupleResult::Ptr CountTuple::createResult(DynamicContext* context) const { return new CountTupleResult(this, parent_->createResult(context)); } XQilla-2.3.4/src/ast/XQFunctionCall.cpp0000644001725400016040000000555613273140037014566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQFunctionCall::XQFunctionCall(const XMLCh *qname, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_CALL, mm), prefix_(XPath2NSUtils::getPrefix(qname, mm)), uri_(0), name_(XPath2NSUtils::getLocalName(qname)), args_(args ? args : new (mm) VectorOfASTNodes(XQillaAllocator(mm))) { } XQFunctionCall::XQFunctionCall(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_CALL, mm), prefix_(prefix), uri_(uri), name_(name), args_(args ? args : new (mm) VectorOfASTNodes(XQillaAllocator(mm))) { } ASTNode* XQFunctionCall::staticResolution(StaticContext *context) { if(uri_ == 0) { if(prefix_ == 0 || *prefix_ == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix_, this); } } ASTNode *result = context->lookUpFunction(uri_, name_, *args_, this); if(result == 0) { XMLBuffer buf; buf.set(X("A function called {")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X(" with ")); XPath2Utils::numToBuf(args_ ? (unsigned int)args_->size() : 0, buf); buf.append(X(" arguments is not defined [err:XPST0017]")); XQThrow(StaticErrorException, X("XQFunctionCall::staticResolution"), buf.getRawBuffer()); } // Our arguments don't belong to us anymore for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { *i = 0; } // Release this object this->release(); return result->staticResolution(context); } ASTNode *XQFunctionCall::staticTypingImpl(StaticContext *context) { // Should never happen return this; } Result XQFunctionCall::createResult(DynamicContext* context, int flags) const { // Should never happen return 0; } XQilla-2.3.4/src/ast/XQCastableAs.cpp0000644001725400016040000001534013273140037014177 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQCastableAs::XQCastableAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(CASTABLE_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(false), _typeIndex((AnyAtomicType::AtomicObjectType)-1) { } XQCastableAs::XQCastableAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(CASTABLE_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(isPrimitive), _typeIndex(typeIndex) { } ASTNode* XQCastableAs::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); const SequenceType::ItemType* itemType = _exprType->getItemType(); if(XPath2Utils::equals(itemType->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(itemType->getType()->getName(), XMLUni::fgNotationString) || XPath2Utils::equals(itemType->getType()->getName(), AnyAtomicType::fgDT_ANYATOMICTYPE))) XQThrow(TypeErrorException,X("XQCastableAs::staticResolution"), X("The target type of a castable expression must be an atomic type that is in the in-scope schema types " "and is not xs:NOTATION or xdt:anyAtomicType [err:XPST0080]")); if(_exprType->getItemTestType() != SequenceType::ItemType::TEST_ATOMIC_TYPE) XQThrow(TypeErrorException,X("XQCastableAs::staticResolution"),X("Cannot cast to a non atomic type")); _typeIndex = context->getItemFactory()-> getPrimitiveTypeIndex(_exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), _isPrimitive); // If this is a cast to xs:QName or xs:NOTATION and the argument is a string literal // evaluate immediately, since they aren't allowed otherwise if((_typeIndex == AnyAtomicType::QNAME || _typeIndex == AnyAtomicType::NOTATION) && _expr->getType() == LITERAL && ((XQLiteral*)_expr)->getPrimitiveType() == AnyAtomicType::STRING) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); bool result = false; try { if(_isPrimitive) { ((AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get())-> castAsNoCheck(_typeIndex, 0, 0, dContext); } else { ((AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get())-> castAsNoCheck(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), dContext); } result = true; } catch(XQException &e) {} return XQLiteral::create(dContext->getItemFactory()->createBoolean(result, dContext), dContext, mm, this)->staticResolution(context); } _expr = new (mm) XQAtomize(_expr, mm); _expr->setLocationInfo(this); { AutoNodeSetOrderingReset orderReset(context); _expr = _expr->staticResolution(context); } return this; } ASTNode *XQCastableAs::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::BOOLEAN_TYPE; _src.add(_expr->getStaticAnalysis()); return this; } ASTNode *XQCastableAs::getExpression() const { return _expr; } SequenceType *XQCastableAs::getSequenceType() const { return _exprType; } void XQCastableAs::setExpression(ASTNode *item) { _expr = item; } BoolResult XQCastableAs::boolResult(DynamicContext* context) const { // The semantics of the cast expression are as follows: // 1. Atomization is performed on the input expression. Result toBeCasted(getExpression()->createResult(context)); const Item::Ptr first = toBeCasted->next(context); bool result = false; if(first == NULLRCP) { // 3. If the result of atomization is an empty sequence: // 1. If ? is specified after the target type, the result of the cast expression is an empty sequence. // 2. If ? is not specified after the target type, a type error is raised.[err:XP0004][err:XP0006] result = getSequenceType()->getOccurrenceIndicator() != SequenceType::EXACTLY_ONE; } else { const Item::Ptr second = toBeCasted->next(context); // 2. If the result of atomization is a sequence of more than one atomic value, a type error is raised.[err:XP0004][err:XP0006] if(second != NULLRCP) { result = false; } else { // 4. If the result of atomization is a single atomic value, the result of the cast expression depends on the input type and the target type. // The normative definition of these rules is given in [XQuery 1.0 and XPath 2.0 Functions and Operators]. if(getIsPrimitive()) { result = ((const AnyAtomicType::Ptr)first)->castable(getTypeIndex(), 0, 0, context); } else { result = ((const AnyAtomicType::Ptr)first)->castable(getTypeIndex(), getSequenceType()->getTypeURI(), getSequenceType()->getConstrainingType()->getName(), context); } } } return result; } Result XQCastableAs::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/ast/XQPredicate.cpp0000644001725400016040000002406013273140037014074 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XQPredicate::XQPredicate(ASTNode *predicate, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(0), predicate_(predicate), reverse_(false) { } XQPredicate::XQPredicate(ASTNode* expr, ASTNode *predicate, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(expr), predicate_(predicate), reverse_(false) { } XQPredicate::XQPredicate(ASTNode *expr, ASTNode *predicate, bool reverse, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(expr), predicate_(predicate), reverse_(reverse) { } ASTNode* XQPredicate::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); { AutoNodeSetOrderingReset orderReset(context); predicate_ = predicate_->staticResolution(context); } return this; } ASTNode *XQPredicate::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); _src.getStaticType().multiply(0, 1); // Remove context item usage _src.addExceptContextFlags(predicate_->getStaticAnalysis()); return this; } Result XQPredicate::createResult(DynamicContext* context, int flags) const { const StaticAnalysis &src = predicate_->getStaticAnalysis(); Result parent = expr_->createResult(context, flags); size_t contextSize = 0; if(src.isContextSizeUsed()) { // We need the context size, so convert to a Sequence to work it out Sequence seq(parent->toSequence(context)); contextSize = seq.getLength(); parent = new SequenceResult(this, seq); } if(src.getStaticType().isType(StaticType::NUMERIC_TYPE) && src.getStaticType().getMin() <= 1 && src.getStaticType().getMax() >= 1 && !src.isContextItemUsed() && !src.isContextPositionUsed()) { // It only contains numeric type results, and doesn't use the context // item or position // TBD Fix this StaticAnalysis - jpcs return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NumericPredicateFilterResult(parent, predicate_, contextSize)); } else if(!src.getStaticType().containsType(StaticType::NUMERIC_TYPE) || src.getStaticType().getMin() > 1 || src.getStaticType().getMax() < 1) { // It only contains non-numeric results return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NonNumericPredicateFilterResult(parent, predicate_, contextSize)); } else { return ClosureResult::create(predicate_->getStaticAnalysis(), context, new PredicateFilterResult(parent, predicate_, contextSize)); } } Result XQPredicate::iterateResult(const Result &contextItems, DynamicContext *context) const { const StaticAnalysis &src = predicate_->getStaticAnalysis(); if((src.getStaticType().containsType(StaticType::NUMERIC_TYPE) && src.getStaticType().getMin() <= 1 && src.getStaticType().getMax() >= 1) || src.isContextPositionUsed() || src.isContextSizeUsed()) { return ASTNodeImpl::iterateResult(contextItems, context); } Result parent = expr_->iterateResult(contextItems, context); // It only contains non-numeric results return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NonNumericPredicateFilterResult(parent, predicate_, 0)); } ASTNode *XQPredicate::addPredicates(ASTNode *expr, VectorOfPredicates *preds) { VectorOfPredicates::iterator i = preds->begin(); VectorOfPredicates::iterator end = preds->end(); for(; i != end; ++i) { (*i)->setExpression(expr); expr = *i; } return expr; } ASTNode *XQPredicate::addReversePredicates(ASTNode *expr, VectorOfPredicates *preds) { VectorOfPredicates::iterator i = preds->begin(); VectorOfPredicates::iterator end = preds->end(); for(; i != end; ++i) { (*i)->setReverse(true); (*i)->setExpression(expr); expr = *i; } return expr; } ///////////////////////////////////// // PredicateFilterResult ///////////////////////////////////// PredicateFilterResult::PredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), todo_(true), parent_(parent), pred_(pred), contextPos_(0), contextSize_(contextSize) { } Item::Ptr PredicateFilterResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); bool contextUsed = pred_->getStaticAnalysis().isContextItemUsed() || pred_->getStaticAnalysis().isContextPositionUsed(); Item::Ptr result = 0; while(result.isNull()) { result = parent_->next(context); if(result.isNull()) { parent_ = 0; return 0; } ++contextPos_; if(todo_ || contextUsed) { todo_ = false; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(result); Result pred_result = pred_->createResult(context); first_ = pred_result->next(context); if(first_.notNull()) { second_ = pred_result->next(context); } autoReset.resetContextInfo(); } // 3.2.2 ... // The predicate truth value is derived by applying the following rules, in order: // 1) If the value of the predicate expression is an atomic value of a numeric type, the predicate truth // value is true if and only if the value of the predicate expression is equal to the context position. if(first_.notNull() && second_.isNull() && first_->isAtomicValue() && ((const AnyAtomicType::Ptr)first_)->isNumericValue()) { const Numeric::Ptr num = (const Numeric::Ptr)first_; if(!num->equals((const AnyAtomicType::Ptr)context->getItemFactory()->createInteger((long)contextPos_, context), context)) { result = 0; } else if(!contextUsed) { parent_ = 0; } } else { // 2) Otherwise, the predicate truth value is the effective boolean value of the predicate expression if(!XQEffectiveBooleanValue::get(first_, second_, context, this)) { result = 0; } } } return result; } std::string PredicateFilterResult::asString(DynamicContext *context, int indent) const { return "predicatefilterresult"; } ///////////////////////////////////// // NonNumericPredicateFilterResult ///////////////////////////////////// NonNumericPredicateFilterResult::NonNumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), todo_(true), parent_(parent), pred_(pred), contextPos_(0), contextSize_(contextSize) { } Item::Ptr NonNumericPredicateFilterResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); bool contextUsed = pred_->getStaticAnalysis().isContextItemUsed() || pred_->getStaticAnalysis().isContextPositionUsed(); Item::Ptr result = 0; while(result.isNull()) { result = parent_->next(context); if(result.isNull()) { parent_ = 0; return 0; } ++contextPos_; if(todo_ || contextUsed) { todo_ = false; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(result); // 2) Otherwise, the predicate truth value is the effective boolean value of the predicate expression Result predResult = pred_->createResult(context); Item::Ptr first = predResult->next(context); if(first.isNull() || !XQEffectiveBooleanValue::get(first, predResult->next(context), context, this)) { result = 0; if(!contextUsed) { parent_ = 0; } } autoReset.resetContextInfo(); } } return result; } std::string NonNumericPredicateFilterResult::asString(DynamicContext *context, int indent) const { return "nonnumericpredicatefilterresult"; } ///////////////////////////////////// // NumericPredicateFilterResult ///////////////////////////////////// NumericPredicateFilterResult::NumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), parent_(parent), pred_(pred), contextSize_(contextSize) { } Item::Ptr NumericPredicateFilterResult::nextOrTail(Result &tail, DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(contextSize_); // Set the context item to something other than null, // since fn:last() checks to see that there is actually // a context item context->setContextItem(context->getMemoryManager()->createInteger(1)); Result pred_result = pred_->createResult(context); Numeric::Ptr first = (Numeric::Ptr)pred_result->next(context); if(first.isNull()) { // The effective boolean value is therefore false tail = 0; return 0; } Item::Ptr second = pred_result->next(context); if(second.notNull()) { // The effective boolean value causes an error - // so call it to get the correct error XQEffectiveBooleanValue::get(first, second, context, this); tail = 0; return 0; } autoReset.resetContextInfo(); if(!first->isInteger() || first->isZero() || first->isNegative()) { tail = 0; return 0; } parent_->skip(first->asInt() - 1, context); Item::Ptr result = parent_->next(context); tail = 0; return result; } XQilla-2.3.4/src/ast/XQAnalyzeString.cpp0000644001725400016040000002116613273140037014772 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; XQAnalyzeString::XQAnalyzeString(XPath2MemoryManager* memMgr) : ASTNodeImpl(ANALYZE_STRING, memMgr), expr_(0), regex_(0), flags_(0), match_(0), nonMatch_(0) { } XQAnalyzeString::XQAnalyzeString(ASTNode *expr, ASTNode *regex, ASTNode *flags, ASTNode *match, ASTNode *nonMatch, XPath2MemoryManager* memMgr) : ASTNodeImpl(ANALYZE_STRING, memMgr), expr_(expr), regex_(regex), flags_(flags), match_(match), nonMatch_(nonMatch) { } ASTNode* XQAnalyzeString::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); expr_ = new (mm) XQFunctionConversion(expr_, seqType, mm); expr_ = expr_->staticResolution(context); regex_ = regex_->staticResolution(context); if(flags_) flags_ = flags_->staticResolution(context); match_ = match_->staticResolution(context); nonMatch_ = nonMatch_->staticResolution(context); return this; } ASTNode *XQAnalyzeString::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); // TBD Precompile the regex - jpcs _src.add(regex_->getStaticAnalysis()); if(flags_) { _src.add(flags_->getStaticAnalysis()); } _src.add(match_->getStaticAnalysis()); _src.getStaticType() = match_->getStaticAnalysis().getStaticType(); _src.add(nonMatch_->getStaticAnalysis()); _src.getStaticType().typeConcat(nonMatch_->getStaticAnalysis().getStaticType()); _src.getStaticType().multiply(0, StaticType::UNLIMITED); return this; } AnalyzeStringResult::AnalyzeStringResult(const LocationInfo *info) : ResultImpl(info), input_(0), matches_(10, true), contextPos_(0), currentMatch_(0), mm_(0), result_(0) { } Item::Ptr AnalyzeStringResult::next(DynamicContext *context) { #ifdef HAVE_ALLMATCHES XPath2MemoryManager *mm = context->getMemoryManager(); if(input_ == 0) { input_ = getInput(context); const XMLCh *pattern = getPattern(context); const XMLCh *options = getFlags(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. const XMLCh* cursor = options; for(; *cursor != 0; ++cursor){ switch(*cursor) { case chLatin_s: case chLatin_m: case chLatin_i: case chLatin_x: break; default: XQThrow(ASTException, X("AnalyzeStringResult::next"),X("Invalid regular expression flags [err:XTDE1145].")); } } mm_ = mm; // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); size_t length = XMLString::stringLen(input_); try { // Parse and execute the regular expression RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), mm); if(regEx.matches(XMLUni::fgZeroLenString)) XQThrow(ASTException, X("AnalyzeStringResult::next"), X("The pattern matches the zero-length string [err:XTDE1150]")); regEx.allMatches(input_, 0, length, &matches_); } catch (ParseException &e){ XMLBuffer buf; buf.set(X("Invalid regular expression: ")); buf.append(e.getMessage()); buf.append(X(" [err:XTDE1140]")); XQThrow(ASTException, X("AnalyzeStringResult::next"), buf.getRawBuffer()); } catch (RuntimeException &e){ if(e.getCode()==XMLExcepts::Regex_RepPatMatchesZeroString) XQThrow(ASTException, X("AnalyzeStringResult::next"), X("The pattern matches the zero-length string [err:XTDE1150]")); else XQThrow(ASTException, X("AnalyzeStringResult::next"), e.getMessage()); } int tokStart = 0; unsigned int i = 0; for(; i < matches_.size(); ++i) { Match *match = matches_.elementAt(i); int matchStart = match->getStartPos(0); int matchEnd = match->getEndPos(0); if(tokStart < matchStart) { const XMLCh *str = XPath2Utils::subString(input_, tokStart, matchStart - tokStart, mm); strings_.push_back(pair(str, static_cast(0))); } const XMLCh *str = XPath2Utils::subString(input_, matchStart, matchEnd - matchStart, mm); strings_.push_back(pair(str, match)); tokStart = matchEnd; } if(tokStart < (int) length) { const XMLCh *str = XPath2Utils::subString(input_, tokStart, (unsigned int)(length - tokStart), mm); strings_.push_back(pair(str, static_cast(0))); } } AutoRegexGroupStoreReset regexReset(context, this); Item::Ptr item; while((item = result_->next(context)).isNull()) { context->testInterrupt(); regexReset.reset(); if(contextPos_ < strings_.size()) { const XMLCh *matchString = strings_[contextPos_].first; currentMatch_ = strings_[contextPos_].second; ++contextPos_; context->setRegexGroupStore(this); result_ = getMatchResult(matchString, contextPos_, strings_.size(), currentMatch_ != 0, context); } else { return 0; } } return item; #else XQThrow(ASTException, X("AnalyzeStringResult::next"),X("xsl:analyze-string is only supported with Xerces-C 3.0 or newer.")); #endif } const XMLCh *AnalyzeStringResult::getGroup(int index) const { if(currentMatch_ == 0 || index < 0 || index >= currentMatch_->getNoGroups()) return 0; int matchStart = currentMatch_->getStartPos(index); return XPath2Utils::subString(input_, matchStart, currentMatch_->getEndPos(index) - matchStart, mm_); } class XslAnalyzeStringResult : public AnalyzeStringResult { public: XslAnalyzeStringResult(const XQAnalyzeString *ast) : AnalyzeStringResult(ast), ast_(ast) { } const XMLCh *getInput(DynamicContext *context) { return ast_->getExpression()->createResult(context)->next(context)->asString(context); } const XMLCh *getPattern(DynamicContext *context) { return ast_->getRegex()->createResult(context)->next(context)->asString(context); } const XMLCh *getFlags(DynamicContext *context) { if(ast_->getFlags()) return ast_->getFlags()->createResult(context)->next(context)->asString(context); return XMLUni::fgZeroLenString; } Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(numberOfMatches); context->setContextPosition(matchPos); context->setContextItem(context->getItemFactory()->createString(matchString, context)); if(match) return ast_->getMatch()->createResult(context); return ast_->getNonMatch()->createResult(context); } private: const XQAnalyzeString *ast_; }; Result XQAnalyzeString::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new XslAnalyzeStringResult(this)); } XQilla-2.3.4/src/ast/XQCopy.cpp0000644001725400016040000001267713273140037013121 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include "../events/NoInheritFilter.hpp" #include XERCES_CPP_NAMESPACE_USE using namespace std; XQCopy::XQCopy(XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY, memMgr), expr_(0), children_(XQillaAllocator(memMgr)), copyNamespaces_(true), inheritNamespaces_(true) { } XQCopy::XQCopy(ASTNode *expr, const VectorOfASTNodes &children, bool copyNamespaces, bool inheritNamespaces, XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY, memMgr), expr_(expr), children_(XQillaAllocator(memMgr)), copyNamespaces_(copyNamespaces), inheritNamespaces_(inheritNamespaces) { children_ = children; } ASTNode* XQCopy::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); expr_ = expr_->staticResolution(context); unsigned int i; for(i = 0; i < children_.size(); ++i) { children_[i] = new (mm) XQContentSequence(children_[i], mm); children_[i]->setLocationInfo(this); children_[i] = children_[i]->staticResolution(context); } return this; } ASTNode *XQCopy::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); unsigned int i; for(i = 0; i < children_.size(); ++i) { _src.add(children_[i]->getStaticAnalysis()); } if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return expr_; } return this; } Result XQCopy::createResult(DynamicContext* context, int flags) const { Item::Ptr toBeCopied = getExpression()->createResult(context)->next(context); if(!toBeCopied->isNode()) return toBeCopied; AutoDelete builder(context->createSequenceBuilder()); EventGenerator::generateAndTailCall(generateEventsImpl(toBeCopied, builder.get(), context, true, true), builder.get(), context); builder->endEvent(); return builder->getSequence(); } EventGenerator::Ptr XQCopy::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { return generateEventsImpl(expr_->createResult(context)->next(context), events, context, preserveNS, preserveType); } EventGenerator::Ptr XQCopy::generateEventsImpl(const Item::Ptr &toBeCopied, EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(!toBeCopied->isNode()) { toBeCopied->generateEvents(events, context, preserveNS, preserveType); return 0; } Node *node = (Node*)toBeCopied.get(); if(node->dmNodeKind() == Node::element_string) { NoInheritFilter niFilter(events, context->getMemoryManager()); if(!inheritNamespaces_) events = &niFilter; AnyAtomicType::Ptr itemName = node->dmNodeName(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = emptyToNull(pQName->getPrefix()); const XMLCh *uri = emptyToNull(pQName->getURI()); const XMLCh *localname = pQName->getName(); events->startElementEvent(prefix, uri, localname); ElemConstructFilter elemFilter(events, this, context->getMemoryManager()); if(copyNamespaces_) { Result nsnodes = node->dmNamespaceNodes(context, this); Item::Ptr ns; while((ns = nsnodes->next(context)).notNull()) { ns->generateEvents(&elemFilter, context, preserveNS, preserveType); } } for(VectorOfASTNodes::const_iterator itCont = children_.begin(); itCont != children_.end (); ++itCont) { (*itCont)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } // TBD validation and type - jpcs const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; events->endElementEvent(prefix, uri, localname, typeURI, typeName); } else if(node->dmNodeKind() == Node::document_string) { events->startDocumentEvent(0, 0); DocConstructFilter filter(events, this); for(VectorOfASTNodes::const_iterator itCont = children_.begin(); itCont != children_.end (); ++itCont) { (*itCont)->generateAndTailCall(&filter, context, preserveNS, preserveType); } events->endDocumentEvent(); } else { node->generateEvents(events, context, preserveNS, preserveType); } return 0; } XQilla-2.3.4/src/runtime/0000755001725400016040000000000013273141207012171 500000000000000XQilla-2.3.4/src/runtime/ResultBufferImpl.cpp0000644001725400016040000000561613273140037016057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include const unsigned int ResultBufferImpl::UNLIMITED_COUNT = (unsigned int)-1; ResultBufferImpl::ResultBufferImpl(const Result &result, unsigned int readCount) : _result(result), _readCount(0), _maxReadCount(readCount) { // Do nothing } ResultBufferImpl::ResultBufferImpl(const Item::Ptr &item, unsigned int readCount) : _result(0), _readCount(0), _maxReadCount(readCount) { _items.push_back(item); } ResultBufferImpl::~ResultBufferImpl() { // Do nothing } void ResultBufferImpl::increaseMaxReadCount(unsigned int readCount) { if(_maxReadCount == UNLIMITED_COUNT || readCount == UNLIMITED_COUNT) _maxReadCount = UNLIMITED_COUNT; else _maxReadCount += readCount; } Item::Ptr ResultBufferImpl::item(unsigned int index, DynamicContext *context) { while(!_result.isNull() && index >= _items.size()) { const Item::Ptr item = _result->next(context); if(item.isNull()) { _result = 0; } else { _items.push_back(item); } } if(index >= _items.size()) { return 0; } else { return _items[index]; } } class BufferedResult : public ResultImpl { public: BufferedResult(ResultBufferImpl *impl, unsigned start) : ResultImpl(0), _impl(impl), _pos(start) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { if(_impl->getRefCount() == 1 && _pos >= _impl->_items.size()) { // Ditch the buffer if we're the only result for it _impl->_result->skip(_pos - _impl->_items.size(), context); tail = _impl->_result; return 0; } Item::Ptr item = _impl->item(_pos++, context); if(item.isNull()) { tail = 0; } return item; } virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { _impl->increaseMaxReadCount(readCount); buffer = ResultBuffer(_impl.get(), _pos); } virtual void skip(unsigned count, DynamicContext *context) { _pos += count; } private: ResultBufferImpl::Ptr _impl; unsigned int _pos; }; Result ResultBufferImpl::createResult(unsigned start) { return new BufferedResult(this, start); } XQilla-2.3.4/src/runtime/ClosureResult.cpp0000644001725400016040000000700013273140037015425 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include using namespace std; class LazyCreateResult : public ResultImpl { public: LazyCreateResult(const ASTNode *ast) : ResultImpl(ast), ast_(ast) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { tail = ast_->createResult(context); return 0; } private: const ASTNode *ast_; }; Result ClosureResult::create(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result) { // TBD We probably need to store the regex groups here too - jpcs if(!src.isVariableUsed() && !src.areContextFlagsUsed()) return result; return new ClosureResult(src, context, result); } Result ClosureResult::create(const ASTNode *ast, DynamicContext *context) { return create(ast->getStaticAnalysis(), context, new LazyCreateResult(ast)); } ClosureResult::ClosureResult(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result) : ResultImpl(result), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), varStore_(context->getMemoryManager()), result_(result) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(src, context->getVariableStore()); } Item::Ptr ClosureResult::nextOrTail(Result &tail, DynamicContext *context) { context->testInterrupt(); // TBD Fix the DocumentCache/module import problem - jpcs // AutoDocumentCacheReset dcReset(context); // context->setDocumentCache(docCache_); AutoContextInfoReset ciReset(context, contextItem_, contextPosition_, contextSize_); AutoVariableStoreReset vsReset(context, &varStore_); return result_->nextOrTail(tail, context); } ClosureEventGenerator::ClosureEventGenerator(const ASTNode *ast, DynamicContext *context, bool preserveNS, bool preserveType) : ASTNodeEventGenerator(ast, preserveNS, preserveType), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), varStore_(context->getMemoryManager()) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(ast->getStaticAnalysis(), context->getVariableStore()); } EventGenerator::Ptr ClosureEventGenerator::generateEvents(EventHandler *events, DynamicContext *context) { context->testInterrupt(); // AutoDocumentCacheReset dcReset(context); // context->setDocumentCache(docCache_); AutoContextInfoReset ciReset(context, contextItem_, contextPosition_, contextSize_); AutoVariableStoreReset vsReset(context, &varStore_); return ast_->generateEvents(events, context, preserveNS_, preserveType_); } XQilla-2.3.4/src/runtime/Result.cpp0000644001725400016040000000454113273140037014077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include EmptyResult Result::_empty(0); class ItemResult : public ResultImpl { public: ItemResult(const Item::Ptr &item) : ResultImpl(0), item_(item) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = item_; tail = 0; return item; } private: Item::Ptr item_; }; Result::Result(const Item::Ptr &item) : _impl(new ItemResult(item)) { _impl->setResultPointer(this); } Result::Result(const Sequence &seq) : _impl(new SequenceResult(0, seq)) { _impl->setResultPointer(this); } Result::Result(ResultImpl *impl) : _impl(impl) { if(_impl) { if(_impl->getResultPointer()) { _impl->getResultPointer()->_impl = 0; } _impl->setResultPointer(this); } } Result::Result(const Result &o) : _impl(o._impl) { if(_impl) { _impl->setResultPointer(this); const_cast(o)._impl = 0; } } Result &Result::operator=(const Result &o) { if(o._impl != _impl) { ResultImpl *tmp = _impl; _impl = o._impl; if(_impl) { _impl->setResultPointer(this); const_cast(o)._impl = 0; } delete tmp; } return *this; } Result::~Result() { delete _impl; } EmptyResult* Result::getEmpty() const { return &_empty; } XQilla-2.3.4/src/runtime/Sequence.cpp0000644001725400016040000001355013273140037014371 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/MiscException.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif Sequence::Sequence(MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { } Sequence::~Sequence() { //no-op } Sequence::Sequence(const Item::Ptr &item, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { if(item.notNull()) { addItem(item); } } Sequence::Sequence(const Sequence &s) : _itemList(s._itemList) { } Sequence::Sequence(const Sequence &s, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { joinSequence(s); } Sequence::Sequence(size_t n, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { _itemList.reserve(n); } Sequence::Sequence(const Sequence&s, size_t start, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { size_t end = s._itemList.size(); if(end > start) { _itemList.reserve(end - start); while(end > start) { _itemList.push_back(s._itemList[start]); ++start; } } } Sequence & Sequence::operator=(const Sequence & s) { if( this != &s ) { // no self-assignment _itemList = s._itemList; } return *this; } void Sequence::addItemFront(const Item::Ptr &item) { //This is a hack since the redhat 6.2 deque warns with push_front _itemList.insert(_itemList.begin(), item); } // returns the first item in the Sequence, or null if it is empty const Item::Ptr &Sequence::first() const { assert(!isEmpty()); // should not be asking for elements if the list is empty return _itemList[0]; } // returns the second item in the Sequence, or null if it is empty const Item::Ptr &Sequence::second() const { assert(!isEmpty()); // should not be asking for elements if the list is empty return _itemList[1]; } // might return NULL const Item::Ptr &Sequence::item(size_t index) const { return _itemList[index]; } const Item::Ptr &Sequence::item(const ATDecimalOrDerived::Ptr &index) const { if(index->isNegative()) { XQThrow2(MiscException,X("Sequence:item"),X("Index less than zero")); } return item(NumUtils::MAPMtoInt(((const ATDecimalOrDerived*)index)->asMAPM())); } void Sequence::clear(void) { _itemList.clear(); } Sequence::iterator Sequence::begin(void) { return _itemList.begin(); } Sequence::iterator Sequence::end(void) { return _itemList.end(); } Sequence::const_iterator Sequence::begin(void) const { return _itemList.begin(); } Sequence::const_iterator Sequence::end(void) const { return _itemList.end(); } Sequence::reverse_iterator Sequence::rbegin(void) { return _itemList.rbegin(); } Sequence::reverse_iterator Sequence::rend(void) { return _itemList.rend(); } Sequence::const_reverse_iterator Sequence::rbegin(void) const { return _itemList.rbegin(); } Sequence::const_reverse_iterator Sequence::rend(void) const { return _itemList.rend(); } size_t Sequence::getLength(void) const { return _itemList.size(); } void Sequence::addItem(const Item::Ptr &item) { _itemList.push_back(item); } void Sequence::joinSequence(const Sequence & s) { _itemList.insert(_itemList.end(),s._itemList.begin(),s._itemList.end()); } bool Sequence::isEmpty() const { return _itemList.empty(); } class lessThanCompareFn { public: lessThanCompareFn(const DynamicContext *context) : context_(context) {} bool operator()(const Item::Ptr &first, const Item::Ptr &second) { return ((const Node*)first.get())->lessThan((const Node::Ptr)second, context_); } private: const DynamicContext *context_; }; bool equalCompareFn(const Item::Ptr &first, const Item::Ptr &second) { return ((const Node*)first.get())->equals((const Node*)second.get()); } void Sequence::sortIntoDocumentOrder(const DynamicContext *context) { // REVISIT: we should ensure that the sequence is made only of nodes, but for performance reason // we just check the first item. // Note that it is OK that we are asked to sort a sequence made of atomic values, as a path expression // can now return it, so we should not complain if(isEmpty() || !first()->isNode()) return; // Sort std::sort(_itemList.begin(), _itemList.end(), lessThanCompareFn(context)); // Remove the duplicates _itemList.erase(std::unique(_itemList.begin(), _itemList.end(), equalCompareFn), _itemList.end()); } struct CollationCompare { CollationCompare(const Collation *collation, const DynamicContext *context) : _collation(collation), _context(context) {} bool operator()(const Item::Ptr arg1, const Item::Ptr arg2) const { const XMLCh* s1 = arg1->asString(_context); const XMLCh* s2 = arg2->asString(_context); return (_collation->compare(s1,s2) == -1); } const Collation *_collation; const DynamicContext *_context; }; void Sequence::sortWithCollation(const Collation *collation, const DynamicContext *context) { std::sort(_itemList.begin(), _itemList.end(), CollationCompare(collation, context)); } XQilla-2.3.4/src/runtime/EmptyResult.cpp0000644001725400016040000000252613273140037015117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include EmptyResult::EmptyResult(const LocationInfo *o) : ResultImpl(o) { } Item::Ptr EmptyResult::next(DynamicContext *context) { return 0; } Sequence EmptyResult::toSequence(DynamicContext *context) { return Sequence(context->getMemoryManager()); } void EmptyResult::toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { } void EmptyResult::skip(unsigned count, DynamicContext *context) { } XQilla-2.3.4/src/runtime/SequenceResult.cpp0000644001725400016040000000257213273140037015572 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include SequenceResult::SequenceResult(const LocationInfo *o, const Sequence &seq) : ResultImpl(o), seq_(seq), i_(0) { } Item::Ptr SequenceResult::nextOrTail(Result &tail, DynamicContext *context) { if(i_ >= seq_._itemList.size()) { tail = 0; return 0; } return seq_._itemList[i_++]; } Sequence SequenceResult::toSequence(DynamicContext *context) { return Sequence(seq_, i_); } void SequenceResult::skip(unsigned count, DynamicContext *context) { i_ += count; } XQilla-2.3.4/src/runtime/ResultBuffer.cpp0000644001725400016040000000331713273140037015231 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include ResultBuffer::ResultBuffer(const Result &result, unsigned int readCount) : _impl(0), _start(0) { const_cast(result.get())->toResultBuffer(readCount,*this); } ResultBuffer::ResultBuffer(const Item::Ptr &item, unsigned int readCount) : _impl(new ResultBufferImpl(item, readCount)), _start(0) { } ResultBuffer::ResultBuffer(ResultBufferImpl *impl, unsigned start) : _impl(impl), _start(start) { } Result ResultBuffer::createResult() { if(_impl.isNull()) return 0; Result result = _impl->createResult(_start); if(_impl->getMaxReadCount() != ResultBufferImpl::UNLIMITED_COUNT && _impl->incrementReadCount() >= _impl->getMaxReadCount()) { // We've reached the maximum read count, so noone // else will want to read from this ResultBuffer _impl = 0; } return result; } XQilla-2.3.4/src/runtime/ResultImpl.cpp0000644001725400016040000000502513273140037014717 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include ResultImpl::ResultImpl(const LocationInfo *o) : resultPointer_(0) { setLocationInfo(o); } Item::Ptr ResultImpl::next(DynamicContext *context) { // Store resultPointer_ locally, as "this" may get deleted Result &resultPointer = *resultPointer_; Item::Ptr item; do { item = resultPointer->nextOrTail(resultPointer, context); } while(item.isNull() && !resultPointer.isNull()); return item; } Item::Ptr ResultImpl::nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = next(context); if(item.isNull()) { tail = 0; } return item; } Sequence ResultImpl::toSequence(DynamicContext *context) { // Control our own scoped pointer Result me(this); Sequence result(context->getMemoryManager()); Item::Ptr item = 0; while((item = me->next(context)).notNull()) { result.addItem(item); } return result; } void ResultImpl::toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { // Control our own scoped pointer Result me(this); buffer = ResultBuffer(new ResultBufferImpl(me, readCount)); } void ResultImpl::skip(unsigned count, DynamicContext *context) { // Store resultPointer_ locally, as "this" may get deleted Result &resultPointer = *resultPointer_; Item::Ptr item; while(count > 0) { do { if(resultPointer.isNull()) return; item = resultPointer->nextOrTail(resultPointer, context); } while(item.isNull()); --count; } } XQilla-2.3.4/src/items/0000755001725400016040000000000013273141207011627 500000000000000XQilla-2.3.4/src/items/AnyAtomicType.cpp0000644001725400016040000003536113273140037015011 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE /* anyAtomicType */ const XMLCh AnyAtomicType::fgDT_ANYATOMICTYPE[]= { chLatin_a, chLatin_n, chLatin_y, chLatin_A, chLatin_t, chLatin_o, chLatin_m, chLatin_i, chLatin_c, chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull }; const AnyAtomicType::CastTable AnyAtomicType::staticCastTable; /* isAtomicValue from Item */ bool AnyAtomicType::isAtomicValue() const { return true; } /* isNode from Item */ bool AnyAtomicType::isNode() const { return false; } bool AnyAtomicType::isFunction() const { return false; } /* is this type numeric? Return false by default */ bool AnyAtomicType::isNumericValue() const { return false; } /* is this type date or time based? Return false by default */ bool AnyAtomicType::isDateOrTimeTypeValue() const { return false; } void AnyAtomicType::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { events->atomicItemEvent(getPrimitiveTypeIndex(), asString(context), getTypeURI(), getTypeName()); } /* Get the namespace uri of the primitive type (basic type) of this type */ const XMLCh* AnyAtomicType::getPrimitiveTypeURI() const{ return SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } void AnyAtomicType::typeToBuffer(DynamicContext *context, XMLBuffer &buffer) const { if(getTypeURI()) { buffer.append('{'); buffer.append(getTypeURI()); buffer.append('}'); } buffer.append(getTypeName()); } AnyAtomicType::Ptr AnyAtomicType::castAs(AtomicObjectType targetIndex, const DynamicContext* context) const { // We assume this cast is supported, since it's an internal cast, // not one specified by the user return castAsNoCheck(targetIndex, 0, 0, context); } AnyAtomicType::Ptr AnyAtomicType::castAs(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(!castIsSupported(targetIndex, context)) { if(targetTypeName == 0) { context->getItemFactory()->getPrimitiveTypeName(targetIndex, targetTypeURI, targetTypeName); } XMLBuffer buffer(1023, context->getMemoryManager()); buffer.set(X("Casting from {")); buffer.append(getTypeURI()); buffer.append(X("}")); buffer.append(getTypeName()); buffer.append(X(" to {")); buffer.append(targetTypeURI); buffer.append(X("}")); buffer.append(targetTypeName); buffer.append(X(" is not supported [err:XPTY0004]")); XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), buffer.getRawBuffer()); } return castAsNoCheck(targetIndex, targetTypeURI, targetTypeName, context); } AnyAtomicType::Ptr AnyAtomicType::castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { try { return castAsInternal(targetIndex, targetURI, targetType, context); } catch (TypeNotFoundException &e) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); } catch (InvalidLexicalSpaceException &e) { if(getPrimitiveTypeIndex() == UNTYPED_ATOMIC || getPrimitiveTypeIndex() == ANY_SIMPLE_TYPE || getPrimitiveTypeIndex() == STRING) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), X("Invalid lexical value [err:FORG0001]")); } else if(getPrimitiveTypeIndex() == targetIndex) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), X("Value does not conform to facets [err:FORG0001]")); } else { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); // should never be here, in theory } } catch (NamespaceLookupException &e) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); } } AnyAtomicType::Ptr AnyAtomicType::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(targetTypeName == 0) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, asString(context), context); } else { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetTypeURI, targetTypeName, asString(context), context); } } /* Test if this type can be cast to the target type */ bool AnyAtomicType::castable(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(!castIsSupported(targetIndex, context)) { return false; } // validate the data by calling castAs (can't use checkInstance) try { castAsInternal(targetIndex, targetTypeURI, targetTypeName, context); } catch (::IllegalArgumentException &e) { return false; } catch (XPath2TypeCastException &e) { return false; } catch (TypeNotFoundException &e) { return false; } catch (InvalidLexicalSpaceException &e) { return false; } catch (NamespaceLookupException &e) { return false; } return true; } /* Returns true if this typeName and uri match the given typeName and uri */ bool AnyAtomicType::isOfType(const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { return (XPath2Utils::equals(targetTypeName, this->getTypeName())) && (XPath2Utils::equals(targetTypeURI, this->getTypeURI())); } /* Returns true if this typeName and uri match the given type name and uri, * or if any of this type's parents match the given type name and uri */ bool AnyAtomicType::isInstanceOfType(const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const StaticContext* context) const { return context->isTypeOrDerivedFromType(this->getTypeURI(), this->getTypeName(), targetTypeURI, targetTypeName); } /** * Returns true if * (a) both the input type and the target type are built-in schema types and * cast is supported for the combination. * (b) cast is supported if the input type is a derived atomic type and the * target type is a supertype of the input type * (c) cast is supported if the target type is a derived atomic type and the * input type is xs:string, xs:anySimpleType, or a supertype of the * target type. * (d) If a primitive type P1 can be cast into a primitive type P2, then any * subtype of P1 can be cast into any subtype of P2 **/ bool AnyAtomicType::castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const { return staticCastTable.getCell(getPrimitiveTypeIndex(), targetIndex); } /////////////////// // methods from // // CastTable // /////////////////// /* This is the table we will mimic, but we will make it enum safe :-) * uA str flt dbl dec int dur yMD dTD dT tim dat gYM gYr gMD gDay gMon bol b64 hxB aURI QN NOT uA { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, str { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, flt { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dbl { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dec { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, int { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dur { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, yMD { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dTD { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dT { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, tim { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dat { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, gYM { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, gYr { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, gMD { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, gDay { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, gMon { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, bool { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, b64 { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, hxB { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, aURI { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, QN, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, NOT { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } }; */ AnyAtomicType::CastTable::CastTable() { // initialize table to allow casting only between same types int j; for(j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; ++j) { for(int k = 0; k<(int)AnyAtomicType::NumAtomicObjectTypes; ++k) { staticCastTable[j][k] = false; } } for(j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; ++j) { staticCastTable[j][j] = true; // you can always cast something to itself staticCastTable[j][AnyAtomicType::STRING] = true; // anything can be cast to string staticCastTable[j][AnyAtomicType::UNTYPED_ATOMIC] = true; // anything can be cast to untypedAtomic // xs:string and xs:untypedAtomic can be cast to anything, except an xs:QName or xs:NOTATION if(j != AnyAtomicType::NOTATION && j != AnyAtomicType::QNAME) { staticCastTable[AnyAtomicType::STRING][j] = true; // strings can be cast to anything staticCastTable[AnyAtomicType::UNTYPED_ATOMIC][j] = true; // untypedAtomic can be cast to anything } } // finally, add special casting rules staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DURATION][AnyAtomicType::YEAR_MONTH_DURATION] = true; staticCastTable[AnyAtomicType::YEAR_MONTH_DURATION][AnyAtomicType::DURATION] = true; staticCastTable[AnyAtomicType::DURATION][AnyAtomicType::DAY_TIME_DURATION] = true; staticCastTable[AnyAtomicType::DAY_TIME_DURATION][AnyAtomicType::DURATION] = true; staticCastTable[AnyAtomicType::DAY_TIME_DURATION][AnyAtomicType::YEAR_MONTH_DURATION] = true; staticCastTable[AnyAtomicType::YEAR_MONTH_DURATION][AnyAtomicType::DAY_TIME_DURATION] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::DATE] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::DATE_TIME] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::TIME] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_YEAR_MONTH] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_YEAR] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_MONTH_DAY] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_DAY] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_MONTH] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_YEAR_MONTH] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_YEAR] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_MONTH_DAY] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_DAY] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_MONTH] = true; staticCastTable[AnyAtomicType::BASE_64_BINARY][AnyAtomicType::HEX_BINARY] = true; staticCastTable[AnyAtomicType::HEX_BINARY][AnyAtomicType::BASE_64_BINARY] = true; /* debug output * for(int i = 0; i<(int)AnyAtomicType::NumAtomicObjectTypes; i++) { for(int j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; j++) { cerr << " " << staticCastTable[i][j] << ","< #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE ATStringOrDerivedImpl:: ATStringOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATStringOrDerived(), _typeName(typeName), _typeURI(typeURI) { _value = context->getMemoryManager()->getPooledString(value); } void *ATStringOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATStringOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATStringOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_STRING; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATStringOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATStringOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATStringOrDerivedImpl::getTypeIndex() { return AnyAtomicType::STRING; } AnyAtomicType::Ptr ATStringOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATStringOrDerivedImpl::asString(const DynamicContext* context) const { return _value; } /* returns this string as a set of codepoints */ Result ATStringOrDerivedImpl::asCodepoints(const DynamicContext* context) const { unsigned int length = this->getLength(); Sequence result(length,context->getMemoryManager()); for(unsigned int i=0; igetItemFactory()->createInteger((long int)RegxUtil::composeFromSurrogate(_value[i], _value[i+1]), context)); i++; } else result.addItem(context->getItemFactory()->createInteger((long int)_value[i], context)); } return result; } /* returns the substring starting at startingLoc of given length */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const { const ATDecimalOrDerived::Ptr one = context->getItemFactory()->createInteger(1, context); long nLength=this->getLength(); const ATDecimalOrDerived::Ptr strLength = context->getItemFactory()->createInteger(nLength, context); // More specifically, returns the characters in $sourceString whose position $p obeys: // fn:round($startingLoc) <= $p < fn:round($startingLoc) + fn:round($length) const Numeric::Ptr startIndex = startingLoc->round(context); const Numeric::Ptr endIndex = startIndex->add(length->round(context), context); if(startIndex->greaterThan(strLength, context) || startIndex->greaterThan(endIndex, context)) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } XMLBuffer buffer(1023, context->getMemoryManager()); Numeric::Ptr index = one; // i is kept at one less than index, since XMLCh* start at index 0 int i = 0; // for(index = one; index <= strLength; index++) for(; !index->greaterThan(strLength, context); index = index->add(one, context), i++) { // if (index >= startIndex and index < endIndex), add the char at i if(!index->lessThan(startIndex, context) && index->lessThan(endIndex, context)) { buffer.append(_value[i]); // if it's a non-BMP char, add the following too if(RegxUtil::isHighSurrogate(_value[i]) && (i+1)getItemFactory()->createString(buffer.getRawBuffer(), context); } /* returns the substring that occurs after the first occurence of pattern */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const { unsigned int containerLength = this->getLength(); unsigned int patternLength = pattern->getLength(); if(patternLength == 0) { return this; } if(patternLength > containerLength) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } const XMLCh* patternStr = pattern->asString(context); // search pattern must be shorter than (or same length as) string being searched for(unsigned int i = 0; i <= (containerLength - patternLength); i++) { // extract a substring of the same length of the pattern and compare them const XMLCh *substr=XPath2Utils::subString(_value, i, patternLength, context->getMemoryManager()); bool result = (collation->compare(substr,patternStr)==0); if(result) { int index = i + patternLength; const XMLCh* value = XPath2Utils::subString(_value, index, containerLength - index, context->getMemoryManager()); return context->getItemFactory()->createString(value, context); } } return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } /* returns the substring that occurs before the first occurence of pattern */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const { unsigned int containerLength = this->getLength(); unsigned int patternLength = pattern->getLength(); if(patternLength == 0) { return this; } if(patternLength > containerLength) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } const XMLCh* patternStr = pattern->asString(context); // search pattern must be shorter than (or same length as) string being searched for(unsigned int i = 0; i <= (containerLength - patternLength); i++) { // extract a substring of the same length of the pattern and compare them const XMLCh *substr=XPath2Utils::subString(_value, i, patternLength, context->getMemoryManager()); bool result = (collation->compare(substr,patternStr)==0); if(result) { const XMLCh* value = XPath2Utils::subString(_value, 0, i, context->getMemoryManager()); return context->getItemFactory()->createString(value, context); } } return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } unsigned int ATStringOrDerivedImpl::getLength() const { return XPath2Utils::uintStrlen(_value); } /* returns true if the two objects' are equal (string comparison) * false otherwise */ bool ATStringOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATStringOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATStringOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATAnySimpleTypeImpl.cpp0000644001725400016040000001022013273140037017021 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATAnySimpleTypeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include // We ignore the type URI and typeName passed in, since they are always xdt:anySimpleType // (you cannot derived from it) ATAnySimpleTypeImpl:: ATAnySimpleTypeImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context) { _value = context->getMemoryManager()->getPooledString(value); } void *ATAnySimpleTypeImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATAnySimpleTypeImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATAnySimpleTypeImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_ANYSIMPLETYPE; } /* Get the name of this type (ie "integer" for xs:integer)-- * same as the primitive type name. AnySimpleType cannot be * extended */ const XMLCh* ATAnySimpleTypeImpl::getTypeName() const { return getPrimitiveTypeName(); } /* Get the namespace URI for this type -- same as the primitive uri * AnySimpleType cannot be extended */ const XMLCh* ATAnySimpleTypeImpl::getTypeURI() const { return getPrimitiveTypeURI(); } AnyAtomicType::AtomicObjectType ATAnySimpleTypeImpl::getTypeIndex() { return AnyAtomicType::ANY_SIMPLE_TYPE; } AnyAtomicType::Ptr ATAnySimpleTypeImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATAnySimpleTypeImpl::asString(const DynamicContext* context) const { return _value; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATAnySimpleTypeImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATAnySimpleTypeImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATAnySimpleTypeImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATNotationOrDerivedImpl.hpp0000644001725400016040000000541713273140037017676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATNOTATIONORDERIVEDIMPL_HPP #define _ATNOTATIONORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATNotationOrDerivedImpl : public ATNotationOrDerived { public: /* constructor */ ATNotationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; private: /*The value of this NOTATION*/ const XMLCh* _notation; /*The uri value of this NOTATION*/ const XMLCh* _uri; /*The local name value of this NOTATION */ const XMLCh* _name; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATNOTATIONORDERIVEDIMPL_HPP XQilla-2.3.4/src/items/impl/ATBase64BinaryOrDerivedImpl.hpp0000644001725400016040000000552613273140037020275 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBASE64BINARYORDERIVEDIMPL_HPP #define _ATBASE64BINARYORDERIVEDIMPL_HPP #include #include #include class XPath2MemoryManager; class AnyAtomicType; class XQILLA_API ATBase64BinaryOrDerivedImpl : public ATBase64BinaryOrDerived { public: /* constructor */ ATBase64BinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' base 64 binary representation * are equal (string comparison) false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const; static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this base 64 value*/ XMLCh* _base64Data; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATBASE64BINARYORDERIVEDIMPL_HPP XQilla-2.3.4/src/items/impl/ATBooleanOrDerivedImpl.cpp0000644001725400016040000001427113273140037017453 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include ATBooleanOrDerivedImpl:: ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI) { // canonical values static const XMLCh zero[] = {XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; static const XMLCh one[] = {XERCES_CPP_NAMESPACE_QUALIFIER chDigit_1, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; if( XPath2Utils::equals(value, zero) || XPath2Utils::equals(value, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_FALSE)) { _value = false; } else if(XPath2Utils::equals(value, one) || XPath2Utils::equals(value, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_TRUE)) { _value = true; } else { XQThrow2(XPath2TypeCastException,X("ATBooleanOrDerivedImpl::ATBooleanOrDerivedImpl"), X("Invalid representation of boolean [err:FORG0001]")); } } ATBooleanOrDerivedImpl:: ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, bool value, const StaticContext* context): _value(value), _typeName(typeName), _typeURI(typeURI) { } void *ATBooleanOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATBooleanOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATBooleanOrDerivedImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_BOOLEAN; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATBooleanOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATBooleanOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATBooleanOrDerivedImpl::getTypeIndex() { return AnyAtomicType::BOOLEAN; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATBooleanOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { // deviation from spec -- they say to convert to 1.0 and 0.0, but we don't see the point, // and it doesn't make casting to integer a special case (crioux) const XMLCh one[] = { XERCES_CPP_NAMESPACE_QUALIFIER chDigit_1, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh zero[] = { XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh* chValue = _value ? one : zero; switch(targetIndex) { case FLOAT: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, chValue, context); } case DECIMAL: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, chValue, context); } case DOUBLE: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, chValue, context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATBooleanOrDerivedImpl::asString(const DynamicContext* context) const { return asString(); } const XMLCh* ATBooleanOrDerivedImpl::asString() const { if(_value) { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_TRUE; } else { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_FALSE; } } /* returns true if the two objects have the same boolean value * false otherwise */ bool ATBooleanOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATBooleanOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATBooleanOrDerived*)target.get(), context) == 0; } int ATBooleanOrDerivedImpl::compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const { return (int)_value - (int)other->isTrue(); } /* returns true if boolean value evaluates to true * false otherwise */ bool ATBooleanOrDerivedImpl::isTrue() const { return _value; } /* returns false if boolean value evaluates to true * true otherwise */ bool ATBooleanOrDerivedImpl::isFalse() const { return !isTrue(); } AnyAtomicType::AtomicObjectType ATBooleanOrDerivedImpl::getPrimitiveTypeIndex() const { return getTypeIndex(); } const BoolResult BoolResult::True(true); const BoolResult BoolResult::False(false); const BoolResult BoolResult::Null; XQilla-2.3.4/src/items/impl/ATDecimalOrDerivedImpl.cpp0000644001725400016040000006642713273140037017444 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif unsigned int ATDecimalOrDerivedImpl::g_nSignificantDigits=50; ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATDecimalOrDerived(), _typeName(typeName), _typeURI(typeURI) { setDecimal(value); if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context)) { _isInteger = true; } else { _isInteger = false; } } ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATDecimalOrDerived(), _typeName(typeName), _typeURI(typeURI) { _decimal = value; if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context)) { _isInteger = true; } else { _isInteger = false; } } ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(int value): ATDecimalOrDerived(), _typeName(SchemaSymbols::fgDT_INTEGER), _typeURI(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) { _decimal = value; _isInteger = true; } void *ATDecimalOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDecimalOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATDecimalOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DECIMAL; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDecimalOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDecimalOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDecimalOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DECIMAL; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDecimalOrDerivedImpl::asString(const DynamicContext* context) const { return asDecimalString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATDecimalOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::DECIMAL: return this; case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: return (const Numeric::Ptr)castAs(typeIndex, context); default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform addition ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal + otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal + otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->add(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->add(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->add((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->add(second, context); } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATDecimalOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform subtraction ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal - otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal - otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->subtract(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->subtract(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->subtract((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, getTypeURI(), getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->subtract(second, context); } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform multiplication ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal * otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal * otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->multiply(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->multiply(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->multiply((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->multiply(second, context); } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform division ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_decimal.sign() == 0) { XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::divide"), X("Division by zero [err:FOAR0001]")); } // return a xs:decimal, regardless of the actual types of the operands return context->getItemFactory()->createDecimal(_decimal / otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->divide(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->divide(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->divide((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->divide(second, context); } } /** Returns the arithmetic product of its operands as a Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform the modulo const ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; if(otherImpl->isZero()) { XQThrow2(::IllegalArgumentException, X("ATDecimalOrDerivedImpl::mod"), X("Division by zero [err:FOAR0001]")); } MAPM result = _decimal; MAPM r; r = result.integer_divide(otherImpl->_decimal); result -= r * otherImpl->_decimal; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(result, context); } return context->getItemFactory()->createDecimal(result, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->mod(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->mod(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->mod((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->mod(second, context); } } Numeric::Ptr ATDecimalOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: { ATDecimalOrDerivedImpl *otherImpl = (ATDecimalOrDerivedImpl*)other.get(); return context->getItemFactory()->createDecimal(_decimal.pow(otherImpl->_decimal), context); } case FLOAT: return context->getItemFactory()->createFloat(_decimal, context)->power(other, context); case DOUBLE: return context->getItemFactory()->createDouble(_decimal, context)->power(other, context); default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::floor(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } return context->getItemFactory()->createDecimal(_decimal.floor(), context); } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::ceiling(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } return context->getItemFactory()->createDecimal(_decimal.ceil(), context); } /** Rounds this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::round(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } MAPM value = _decimal + 0.5; return context->getItemFactory()->createDecimal(value.floor(), context); } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATDecimalOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { ATDecimalOrDerived::Ptr decimal_precision = (const Numeric::Ptr)precision->castAs(this->getPrimitiveTypeIndex(), context); MAPM exp = MAPM(10).pow(((ATDecimalOrDerivedImpl*)(const ATDecimalOrDerived*)decimal_precision)->_decimal); MAPM value = _decimal * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _decimal * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(value, context); } return context->getItemFactory()->createDecimal(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::invert(const DynamicContext* context) const { if(_isInteger) { return context->getItemFactory()->createInteger(_decimal.neg(), context); } return context->getItemFactory()->createDecimal(_decimal.neg(), context); } /** Returns the absolute value of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::abs(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.abs(), context); } /** Returns the square root of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::sqrt(const DynamicContext* context) const { if (_decimal < 0) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.sqrt(), context); } /** Returns the sinus of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::sin(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.sin(), context); } /** Returns the cosinus of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::cos(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.cos(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::tan(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.tan(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::asin(const DynamicContext* context) const { if (_decimal.abs() > 1) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.asin(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::acos(const DynamicContext* context) const { if (_decimal.abs() > 1) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.acos(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::atan(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.atan(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::log(const DynamicContext* context) const { if (_decimal <= 0) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.log(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::exp(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.exp(), context); } /** Does this Numeric have value 0? */ bool ATDecimalOrDerivedImpl::isZero() const { return _decimal.sign() == 0; } /** Is this Numeric negative? */ bool ATDecimalOrDerivedImpl::isNegative() const { return _decimal.sign() < 0; } /** Is this Numeric positive? */ bool ATDecimalOrDerivedImpl::isPositive() const { return _decimal.sign() > 0; } /** Treat this decimal (must be integer) as a codepoint **/ XMLInt32 ATDecimalOrDerivedImpl::treatAsCodepoint(const DynamicContext* context) const { if(_isInteger) { int integer = (int)_decimal.toDouble(); XMLInt32 ch = (XMLInt32)integer; if(integer<=0 || (int)ch != integer) { // negative or lost some info XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::treatAsCodepoint"), X("Codepoint not legal [err:FOCH0001].")); } return ch; } else { XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::treatAsCodepoint"), X("Only integers can be treated as codepoints.")); } } AnyAtomicType::AtomicObjectType ATDecimalOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDecimalOrDerivedImpl::setDecimal(const XMLCh* const value) { _decimal = parseDecimal(value); } MAPM ATDecimalOrDerivedImpl::parseDecimal(const XMLCh* const value) { if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATDecimalOrDerivedImpl::setDecimal"), X("Invalid representation of decimal [err:FORG0001]")); } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) {/*{{{*/ case L'+': { *dest++ = '+'; if(gotSign) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign) { stop = true; } else { gotSign = true; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint) { stop = true; } else { gotPoint = true; } break; } /* All the numerals defined by XML standard */ case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } }//switch }//while break; } default: stop = true; break; }//switch /*}}}*/ }//while if(!gotDigit || stop) { XQThrow2(XPath2TypeCastException,X("ATDecimalOrDerivedImpl::setDecimal"), X("Invalid representation of decimal [err:FORG0001]")); } *dest++ = 0; // Null terminate return (char*)buffer; } XQilla-2.3.4/src/items/impl/ATDoubleOrDerivedImpl.cpp0000644001725400016040000007362513273140037017316 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif int ATDoubleOrDerivedImpl::g_nSignificantDigits=25; ATDoubleOrDerivedImpl:: ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context) : _typeName(typeName), _typeURI(typeURI) { setDouble(value); checkDoubleLimits(_state, _double); } ATDoubleOrDerivedImpl:: ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATDoubleOrDerived(), _typeName(typeName), _typeURI(typeURI) { _double = value; _state = NUM; if(value.sign() < 0) _state = NEG_NUM; checkDoubleLimits(_state, _double); } void *ATDoubleOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDoubleOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDoubleOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DOUBLE; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDoubleOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDoubleOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDoubleOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DOUBLE; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDoubleOrDerivedImpl::asString(const DynamicContext* context) const { return asDoubleString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATDoubleOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::DOUBLE: return this; default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type exactly, we can perform addition ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF + NUM = INF case INF: return infinity(context); // INF + INF = INF case NEG_INF: return notANumber(context); // INF + (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF + NUM = -INF case INF: return notANumber(context); // -INF + INF = NaN case NEG_INF: return negInfinity(context); // -INF + (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { // Handle positive and negative zero if(_double.sign()==0 && otherImpl->_double!=0) return other; else if(_double.sign()!=0 && otherImpl->_double==0) return this; else if(_double.sign()==0 && otherImpl->_double==0) { if(_state==otherImpl->_state) // sum of two zero of the same sign -> result is equal to any of the two items return this; else // sum of two zero of different sign -> result is equal to +0 return newDouble(0, context); } return newDouble(_double + otherImpl->_double, context); } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->add((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATDoubleOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type exactly, we can perform subtraction ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF - NUM = INF case INF: return notANumber(context); // INF - INF = NaN case NEG_INF: return infinity(context); // INF - (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF - NUM = -INF case INF: return negInfinity(context); // -INF - INF = -INF case NEG_INF: return notANumber(context); // -INF - (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return negInfinity(context); // NUM - INF = -INF case NEG_INF: return infinity(context); // NUM - (-INF) = INF case NEG_NUM: case NUM: return newDouble(_double - otherImpl->_double, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->subtract((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform multiplication ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF * NUM = +/-INF case INF: return infinity(context); // INF * INF = INF case NEG_INF: return negInfinity(context); // INF * (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF * NUM = +/-INF case INF: return negInfinity(context); // -INF * INF = -INF case NEG_INF: return infinity(context); // -INF * (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return this->isPositive() ? infinity(context) : negInfinity(context); // NUM * INF = +/-INF case NEG_INF: return this->isPositive() ? negInfinity(context) : infinity(context); // NUM * (-INF) = +/-INF case NEG_NUM: case NUM: if(other->isZero() || this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newDouble(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newDouble(_double * otherImpl->_double, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->multiply((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform division ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF / NUM = +/-INF case INF: return notANumber(context); // INF / INF = NaN case NEG_INF: return notANumber(context); // INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch }// case case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF / NUM = -INF case INF: return notANumber(context); // -INF / INF = NaN case NEG_INF: return notANumber(context); // -INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch } // case case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: { // NUM / INF = +/-0 if(this->isNegative()) { return negZero(context); } else { return newDouble(0, context); } }// case case NEG_INF: { // NUM / -INF = +/-0 if(this->isPositive()) { return negZero(context); } else { return newDouble(0, context); } }// case case NEG_NUM: case NUM: { if(other->isZero()) { if(this->isZero()) return notANumber(context); if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negInfinity(context); // NUM / (-0) or (-NUM) / 0 = -INF } else { return infinity(context); // NUM / 0 or (-NUM) / (-0) = INF } } else if(this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newDouble(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newDouble(_double / otherImpl->_double, context); }// case default: assert(false); return 0; // should never get here }// switch }// case default: assert(false); return 0; // should never get here }// switch } else { // if other is not a double, then we need to promote it to a double return this->divide((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns the mod of its operands as a Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform mod ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(this->isNaN() || otherImpl->isNaN() || this->isInfinite() || otherImpl->isZero()) { return notANumber(context); } else if(otherImpl->isInfinite() || this->isZero()) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DOUBLE, context); } else { MAPM result = _double; MAPM r; r = result.integer_divide(otherImpl->_double); result -= r * otherImpl->_double; if (result == 0 && isNegative()) return negZero(context); return newDouble(result, context); } } else { // if other is not a double, then we need to promote it to a double return this->mod((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } Numeric::Ptr ATDoubleOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: case FLOAT: return power((Numeric*)other->castAs(DOUBLE, context).get(), context); case DOUBLE: { ATDoubleOrDerivedImpl *otherImpl = (ATDoubleOrDerivedImpl*)other.get(); switch(_state) { case NaN: return this; case INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return other; case INF: return other; case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newDouble(_double.pow(otherImpl->_double), context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::floor(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isZero() && isNegative()) return this; return newDouble(_double.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::ceiling(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() && _double >= -0.5) { return negZero(context); } return newDouble(_double.ceil(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::round(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() &&_double >= -0.5) { return negZero(context); } MAPM value = _double + 0.5; return newDouble(value.floor(), context); } default: {assert(false); return 0; // should never get here } } } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATDoubleOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: break; default: { assert(false); return 0; // should never get here } } if (isZero() && isNegative()) return this; ATDoubleOrDerived::Ptr double_precision = (const Numeric::Ptr)precision->castAs(AnyAtomicType::DOUBLE, context); MAPM exp = MAPM(10).pow(((ATDoubleOrDerivedImpl*)(const ATDoubleOrDerived*)double_precision)->_double); MAPM value = _double * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _double * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // the spec doesn't actually say to do this, but djf believes this is the correct way to handle rounding of -ve values which will result in 0.0E0 // if (value == 0 && isNegative()) // return negZero(context); return newDouble(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::invert(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return negInfinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: if(this->isZero()) { if(this->isNegative()) return newDouble(0, context); else return negZero(context); } return newDouble(_double.neg(), context); default: assert(false); return 0; // should never get here } } /** Returns the absolute value of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::abs(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newDouble(_double.abs(), context); default: assert(false); return 0; // should never get here } } /** Returns the square root of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::sqrt(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: return newDouble(_double.sqrt(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::sin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newDouble(_double.sin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::cos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newDouble(_double.cos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::tan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newDouble(_double.tan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::asin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_double.abs() > 1)return notANumber(context); return newDouble(_double.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::acos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_double.abs() > 1)return notANumber(context); return newDouble(_double.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::atan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return newDouble((MM_HALF_PI), context); case NEG_INF: return newDouble(MAPM(MM_HALF_PI).neg() , context); case NEG_NUM: case NUM: return newDouble(_double.atan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::log(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: if(_double == 0) return notANumber(context); return newDouble(_double.log(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::exp(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return newDouble(0, context); case NEG_NUM: case NUM: return newDouble(_double.exp(), context); default: assert(false); return 0; // should never get here } } /** Does this Numeric have value 0? */ bool ATDoubleOrDerivedImpl::isZero() const { switch (_state) { case NaN: case INF: case NEG_INF: return false; default: /*NUM*/{ return _double.sign() == 0; } } } /** Is this Numeric negative? */ bool ATDoubleOrDerivedImpl::isNegative() const { switch (_state) { case NaN: case INF: case NUM: return false; case NEG_NUM: case NEG_INF: return true; } assert(false); return false; // should never get here } /** Is this Numeric positive? */ bool ATDoubleOrDerivedImpl::isPositive() const { switch (_state) { case INF: case NUM: return true; case NaN: case NEG_INF: case NEG_NUM: return false; } assert(false); return false; // should never get here } /* Is this xs:double not a number */ bool ATDoubleOrDerivedImpl::isNaN() const { return _state == NaN; } /* Is this xs:double infinite? */ bool ATDoubleOrDerivedImpl::isInfinite() const { return _state == INF || _state == NEG_INF; } AnyAtomicType::AtomicObjectType ATDoubleOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* returns a new infinity xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::infinity(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::INF_string, context); } /* returns a new negative infinity xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::negInfinity(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NegINF_string, context); } /* returns a NaN xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::notANumber(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } /* returns a -0 ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::negZero(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NegZero_string, context); } /*returns a ATDoubleOrDerived of value value*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::newDouble(MAPM value, const DynamicContext* context) const { return context->getItemFactory()->createDouble(value, context); } static MAPM parse(const XMLCh* const value, Numeric::State &state) { if(value == NULL) { // Not a Number state = Numeric::NaN; return 0; } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotBase = false; bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; bool isNegative = false; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) { case L'+': { *dest++ = '+'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; if(!gotBase) isNegative = true; } break; } case 0x0045: case 0x0065: { *dest++ = 'e'; if(!gotDigit || gotBase) { stop = true; } else { gotPoint = false; gotSign = false; gotBase = true; gotDigit = false; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint || gotBase) { stop = true; } else { gotPoint = true; } break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } } } break; } default: stop = true; break; } } if(!gotDigit || stop) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { state = Numeric::NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { state = Numeric::INF; } else { state = Numeric::NaN; } return 0; } *dest++ = 0; // Null terminate if(isNegative) state = Numeric::NEG_NUM; else state = Numeric::NUM; return (char*)buffer; } void ATDoubleOrDerivedImpl::setDouble(const XMLCh* const value) { _double = parse(value, _state); } MAPM ATDoubleOrDerivedImpl::parseDouble(const XMLCh* const value, State &state) { MAPM result = parse(value, state); Numeric::checkDoubleLimits(state, result); return result; } XQilla-2.3.4/src/items/impl/ATAnySimpleTypeImpl.hpp0000644001725400016040000000521613273140037017037 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYSIMPLETYPEIMPL_HPP #define _ATANYSIMPLETYPEIMPL_HPP #include #include #include class DynamicContext; /** * This class represents the atomic types (ie, the simple types * which are not list or union types) with type annotation * xs:anySimpleType */ class XQILLA_API ATAnySimpleTypeImpl : public ATAnySimpleType { public: /* constructor */ ATAnySimpleTypeImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _value; }; #endif // _ATANYSIMPLETYPEIMPL_HPP XQilla-2.3.4/src/items/impl/ATNotationOrDerivedImpl.cpp0000644001725400016040000001010213273140037017654 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATNotationOrDerivedImpl.hpp" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATNotationOrDerivedImpl:: ATNotationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATNotationOrDerived(), _typeName(typeName), _typeURI(typeURI) { _notation = context->getMemoryManager()->getPooledString(value); const XMLCh* prefix = XPath2NSUtils::getPrefix(_notation, context->getMemoryManager()); const XMLCh* uri; if(prefix==0 || *prefix==0) uri = 0; else { try { uri = context->getUriBoundToPrefix(prefix, 0); } catch(NamespaceLookupException&) { XQThrow2(StaticErrorException, X("ATNotationOrDerivedImpl::ATNotationOrDerivedImpl"),X("No namespace for prefix [err:XPST0081]")); } } // _uri will be null if there is no default NS _uri = context->getMemoryManager()->getPooledString(uri); _name = context->getMemoryManager()->getPooledString(XPath2NSUtils::getLocalName(_notation)); } void *ATNotationOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATNotationOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATNotationOrDerivedImpl::getPrimitiveName() { return XMLUni::fgNotationString; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATNotationOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATNotationOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATNotationOrDerivedImpl::getTypeIndex() { return AnyAtomicType::NOTATION; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATNotationOrDerivedImpl::asString(const DynamicContext* context) const { return _notation; } /* returns true if the two objects are equal (string comparison) * false otherwise */ bool ATNotationOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATNotationOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATNotationOrDerived *)target.get(), context) == 0; } int ATNotationOrDerivedImpl::compare(const ATNotationOrDerivedImpl::Ptr &other, const DynamicContext *context) const { const ATNotationOrDerivedImpl *otherImpl = (const ATNotationOrDerivedImpl *)other.get(); int cmp = XPath2Utils::compare(_name, otherImpl->_name); if(cmp != 0) return cmp; return XPath2Utils::compare(_uri, otherImpl->_uri); } AnyAtomicType::AtomicObjectType ATNotationOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATStringOrDerivedImpl.hpp0000644001725400016040000000675713273140037017361 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATSTRINGORDERIVEDIMPL_HPP #define _ATSTRINGORDERIVEDIMPL_HPP #include #include #include class Sequence; class XQILLA_API ATStringOrDerivedImpl : public ATStringOrDerived { public: /* constructor */ ATStringOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns this string as a set of codepoints */ virtual Result asCodepoints(const DynamicContext* context) const; /* returns the substring starting at startingLoc of given length */ virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const; /* returns the substring that occurs after the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const; /* returns the substring that occurs before the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const; /* returns the length of this string */ virtual unsigned int getLength() const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this string */ const XMLCh* _value; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATSTRINGORDERIVEDIMPL_HPP XQilla-2.3.4/src/items/impl/FunctionRefImpl.cpp0000644001725400016040000002255413273140037016270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "FunctionRefImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh constructorArgName[] = { 'a', 'r', 'g', 0 }; FunctionRefImpl::FunctionRefImpl(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const FunctionSignature *signature, const ASTNode *instance, const StaticAnalysis &sa, DynamicContext *context) : prefix_(prefix), uri_(uri), name_(localname), signature_(signature), signatureOwned_(false), instance_(instance), varStore_(context->getMemoryManager()) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(sa, context->getVariableStore()); } FunctionRefImpl::FunctionRefImpl(const FunctionRefImpl *other, const Result &argument, unsigned int argNum, DynamicContext *context) : prefix_(other->prefix_), uri_(other->uri_), name_(other->name_), signature_(new (context->getMemoryManager()) FunctionSignature(other->signature_, argNum, context->getMemoryManager())), signatureOwned_(true), instance_(other->instance_), varStore_(other->varStore_, context->getMemoryManager()) { ArgumentSpecs::const_iterator argsIt = other->signature_->argSpecs->begin(); for(unsigned int i = 0; i < argNum; ++i) { ++argsIt; } varStore_.setVar((*argsIt)->getURI(), (*argsIt)->getName(), argument); } FunctionRefImpl::~FunctionRefImpl() { if(signatureOwned_) const_cast(signature_)->release(); } class FunctionRefScope : public VariableStore { public: FunctionRefScope(const FunctionRefImpl::Ptr func, const VectorOfResults &args, DynamicContext *context) : func_(func), scope_(context->getMemoryManager(), context->getVariableStore()) { if(func_->signature_->argSpecs) { VectorOfResults::const_iterator i = args.begin(); ArgumentSpecs::const_iterator argsIt = func_->signature_->argSpecs->begin(); for(; i != args.end(); ++i, ++argsIt) { scope_.setVar((*argsIt)->getURI(), (*argsIt)->getName(), *i); } } } Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { Result result = func_->varStore_.getVar(namespaceURI, name); if(!result.isNull()) return result; return scope_.getVar(namespaceURI, name); } void getInScopeVariables(std::vector > &variables) const { func_->varStore_.getInScopeVariables(variables); scope_.getInScopeVariables(variables); } private: FunctionRefImpl::Ptr func_; VarStoreImpl scope_; }; Result FunctionRefImpl::execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const { if(args.size() != getNumArgs()) { XMLBuffer buf; buf.set(X("The function item invoked does not accept ")); XPath2Utils::numToBuf((unsigned int)args.size(), buf); buf.append(X(" arguments - found item of type ")); typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow3(XPath2TypeMatchException, X("FunctionRefImpl::execute"), buf.getRawBuffer(), location); } FunctionRefScope scope(this, args, context); AutoVariableStoreReset vsReset(context, &scope); return instance_->createResult(context); } ATQNameOrDerived::Ptr FunctionRefImpl::getName(const DynamicContext *context) const { if(name_ == 0) return 0; return context->getItemFactory()->createQName(uri_, prefix_, name_, context); } size_t FunctionRefImpl::getNumArgs() const { if(signature_->argSpecs == 0) return 0; return signature_->argSpecs->size(); } FunctionRef::Ptr FunctionRefImpl::partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const { if(getNumArgs() < argNum) { XMLBuffer buf; buf.set(X("The function item argument to fn:partial-apply() must have an arity of at least ")); XPath2Utils::numToBuf(argNum, buf); buf.append(X(" - found item of type ")); typeToBuffer(context, buf); buf.append(X(" [err:TBD]")); XQThrow3(XPath2TypeMatchException, X("FunctionRefImpl::partialApply"), buf.getRawBuffer(), location); } return new FunctionRefImpl(this, arg, argNum - 1, context); } void FunctionRefImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { // TBD What is the correct way to generate events for a FunctionRef? - jpcs events->atomicItemEvent(AnyAtomicType::STRING, asString(context), 0, 0); } const XMLCh *FunctionRefImpl::asString(const DynamicContext *context) const { XMLBuffer buf; signature_->toBuffer(buf, /*typeSyntax*/false); return context->getMemoryManager()->getPooledString(buf.getRawBuffer()); } void FunctionRefImpl::typeToBuffer(DynamicContext *context, XMLBuffer &buffer) const { signature_->toBuffer(buffer, /*typeSyntax*/true); } void *FunctionRefImpl::getInterface(const XMLCh *name) const { return 0; } ASTNode *FunctionRefImpl::createInstance(const FuncFactory *factory, const FunctionSignature *signature, XPath2MemoryManager *mm, const LocationInfo *location) { VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(signature->argSpecs) { ArgumentSpecs::const_iterator argsIt = signature->argSpecs->begin(); for(; argsIt != signature->argSpecs->end(); ++argsIt) { assert((*argsIt)->getName() != 0); XQVariable *var = new (mm) XQVariable((*argsIt)->getURI(), (*argsIt)->getName(), mm); var->setLocationInfo(location); newArgs.push_back(var); } } ASTNode *instance = factory->createInstance(newArgs, mm); instance->setLocationInfo(location); return instance; } ASTNode *FunctionRefImpl::createInstance(const XMLCh *uri, const XMLCh *name, unsigned int numArgs, StaticContext *context, const LocationInfo *location, FunctionSignature *&signature) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); for(unsigned int i = 0; i < numArgs; ++i) { newArgs.push_back(0); // Dummy argument } ASTNode *result = context->lookUpFunction(uri, name, newArgs, location); if(!result) return 0; switch(result->getType()) { case ASTNode::FUNCTION: case ASTNode::USER_FUNCTION: { XQFunction *function = (XQFunction*)result; function->parseSignature(context); signature = new (mm) FunctionSignature(function->getSignature(), mm); if(signature->argSpecs) { // Fill in the arguments with XQVariable objects ArgumentSpecs::const_iterator argsIt = signature->argSpecs->begin(); VectorOfASTNodes &args = const_cast(function->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i, ++argsIt) { (*i) = new (mm) XQVariable((*argsIt)->getURI(), (*argsIt)->getName(), mm); (*i)->setLocationInfo(location); } } break; } case ASTNode::CAST_AS: { XQCastAs *cast = (XQCastAs*)result; // Fill in the argument with an XQVariable object XQVariable *var = new (mm) XQVariable(0, constructorArgName, mm); var->setLocationInfo(location); cast->setExpression(var); // Create a signature for the constructor function SequenceType *argType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, mm); argType->setLocationInfo(location); ArgumentSpec *arg = new (mm) ArgumentSpec(constructorArgName, argType, mm); arg->setLocationInfo(location); ArgumentSpecs *args = new (mm) ArgumentSpecs(XQillaAllocator(mm)); args->push_back(arg); signature = new (mm) FunctionSignature(args, cast->getSequenceType(), mm); signature->staticResolution(context); break; } default: assert(false); break; } return result; } XQilla-2.3.4/src/items/impl/ATTimeOrDerivedImpl.cpp0000644001725400016040000003604213273140037016772 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATTimeOrDerivedImpl:: ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) : ATTimeOrDerived(), _typeName(typeName), _typeURI(typeURI) { setTime(value); } // private constructor for internal use ATTimeOrDerivedImpl::ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATTimeOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATTimeOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATTimeOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_TIME; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATTimeOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATTimeOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATTimeOrDerivedImpl::getTypeIndex() { return AnyAtomicType::TIME; } static inline MAPM hourFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); } static inline MAPM minuteFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); } static inline MAPM secondFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerMinute); } static inline void decomposeSeconds(const MAPM &value, MAPM &hour, MAPM &minute, MAPM &second) { hour = hourFromSeconds(value); minute = minuteFromSeconds(value); second = secondFromSeconds(value); } static inline MAPM composeSeconds(MAPM &hh, MAPM &mm, MAPM &ss) { return hh * DateUtils::g_secondsPerHour + mm * DateUtils::g_secondsPerMinute + ss; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATTimeOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); switch (targetIndex) { case DATE_TIME: { ATDateOrDerived::Ptr currentDate = DateUtils::getCurrentDate(context); Timezone::Ptr nulltz; currentDate = currentDate->setTimezone(nulltz, context); buf.append(currentDate->asString(context)); buf.append(chLatin_T); buf.append(this->asString(context)); return context->getItemFactory()->createDateTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATTimeOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM hour, minute, second; decomposeSeconds(seconds_, hour, minute, second); DateUtils::formatNumber(hour, 2, buffer); buffer.append(chColon); DateUtils::formatNumber(minute, 2, buffer); buffer.append(chColon); if(second < 10) buffer.append(chDigit_0); buffer.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); // Add timezone if exists if (_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &seconds, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(31, 12, 1972) * DateUtils::g_secondsPerDay; result += seconds; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATTimeOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(seconds_, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /** * Returns true if and only if the value of $arg1 converted to an xs:dateTime using the date components from the reference * xs:dateTime is equal to the value of $arg2 converted to an xs:dateTime using the date components from the same reference * xs:dateTime. Returns false otherwise. * * The two xs:dateTime values are compared using op:dateTime-equal. */ bool ATTimeOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATTimeOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATTimeOrDerived*)target.get(), context) == 0; } int ATTimeOrDerivedImpl::compare(const ATTimeOrDerived::Ptr &target, const DynamicContext* context) const { const ATTimeOrDerivedImpl *other = (const ATTimeOrDerivedImpl *)target.get(); return buildReferenceDateTime(context).compare(other->buildReferenceDateTime(context)); } /** * Returns an integer representing the hour component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getHours(const DynamicContext *context) const { return context->getItemFactory()->createNonNegativeInteger(hourFromSeconds(seconds_), context); } /** * Returns an integer representing the minute component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getMinutes(const DynamicContext *context) const { return context->getItemFactory()->createNonNegativeInteger(minuteFromSeconds(seconds_), context); } /** * Returns an decimal representing the second component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getSeconds(const DynamicContext *context) const { return context->getItemFactory()->createDecimal(secondFromSeconds(seconds_), context); } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATTimeOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATTimeOrDerivedImpl::getTimezone() const { return timezone_; } /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed NULL, timezone is removed (unset) */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { return new ATTimeOrDerivedImpl(_typeURI, _typeName, seconds_, timezone, timezone != NULLRCP); } /** * Returns an ATTimeOrDerived with a timezone added to it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { Timezone::Ptr tz = new Timezone(timezone, context); // If this time does not have a timezone, add the given timezone if(!_hasTimezone) return setTimezone(tz, context); MAPM result = seconds_; result -= timezone_->asSeconds(); result += tz->asSeconds(); return new ATTimeOrDerivedImpl(_typeURI, _typeName, result, tz, true); } /** * Returns a time with the given dayTimeDuration added to it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM(), context); } /** * Returns a time with the given dayTimeDuration subtracted from it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM().neg(), context); } ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addDayTimeDuration(const MAPM &secondsToAdd, const DynamicContext* context) const { MAPM result = DateUtils::modulo(seconds_ + secondsToAdd, DateUtils::g_secondsPerDay); return new ATTimeOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns the xdt:dayTimeDuration that corresponds to the difference between the value of $arg1 converted to an * xs:dateTime using the date components from the reference xs:dateTime and the value of $arg2 converted to an xs:dateTime * using the date components from the same reference xs:dateTime */ ATDurationOrDerived::Ptr ATTimeOrDerivedImpl::subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const { const ATTimeOrDerivedImpl *other = (const ATTimeOrDerivedImpl *)time.get(); MAPM secDiff = buildReferenceDateTime(context) - other->buildReferenceDateTime(context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } AnyAtomicType::AtomicObjectType ATTimeOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATTimeOrDerivedImpl::setTime(const XMLCh* const time) { unsigned int length = XPath2Utils::uintStrlen(time); if(time == NULL) { XQThrow2(XPath2TypeCastException,X("XSTimeImpl::setTime"), X("Invalid representation of time [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; double decplace = 1; double tmpdec = 0; unsigned int numDigit = 0; // defaulting values MAPM hh = 0; MAPM mm = 0; MAPM ss = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 3 ; // 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; pos = 0; while ( ! wrongformat && pos < length) { tmpChar = time[pos]; pos++; switch(tmpChar) { case L'.': { if (! gotDot && gotDigit && state == 5 && numDigit == 2) { gotDot = true; ss = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot && state == 5) { decplace *= 10; } else { numDigit ++; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; gotDigit = false; _hasTimezone = true; zonepos = false; _hasTimezone = true; tmpnum = 0; numDigit = 0; }else { wrongformat = true; } state ++; break; } case L'+' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit ) { if (state == 3 && numDigit == 2) { hh = tmpnum; tmpnum = 0; numDigit = 0; gotDigit = false; } else if ( state == 4 && numDigit == 2) { mm = tmpnum; tmpnum = 0; numDigit = 0; gotDigit = false; } else if ( state == 6 && numDigit == 2) { zonehh = tmpnum; _hasTimezone = true; tmpnum = 0; numDigit = 0; gotDigit = false; } else { wrongformat = true; } state ++; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; _hasTimezone = true; }else if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; }else { wrongformat = true; } } if ( hh > 24 || mm > 59 || ss >= 60 || zonehh > 24 || zonemm > 59 ) wrongformat = true; if(hh==24 && mm==0 && ss==0) hh=0; if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("XSTimeImpl::setTime"), X("Invalid representation of time [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh,zonemm)); seconds_ = composeSeconds(hh, mm, ss); } MAPM ATTimeOrDerivedImpl::parseTime(const XMLCh* const time, const MAPM &implicitTimezone) { ATTimeOrDerivedImpl dt(0, 0, time); MAPM result = referenceDateTime(dt.seconds_, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/impl/ATAnyURIOrDerivedImpl.cpp0000644001725400016040000000761113273140037017203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATAnyURIOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include ATAnyURIOrDerivedImpl:: ATAnyURIOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI) { _uri = context->getMemoryManager()->getPooledString(value); } void *ATAnyURIOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATAnyURIOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATAnyURIOrDerivedImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_ANYURI; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATAnyURIOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATAnyURIOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATAnyURIOrDerivedImpl::getTypeIndex() { return AnyAtomicType::ANY_URI; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATAnyURIOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, _uri, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATAnyURIOrDerivedImpl::asString(const DynamicContext* context) const { return _uri; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATAnyURIOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex() && target->getPrimitiveTypeIndex()!=STRING) { XQThrow2(IllegalArgumentException,X("ATAnyURIOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _uri); } AnyAtomicType::AtomicObjectType ATAnyURIOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/FunctionRefImpl.hpp0000644001725400016040000000576613273140037016303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAFUNCTIONREFIMPL_HPP #define _XQILLAFUNCTIONREFIMPL_HPP #include #include class ASTNode; class FunctionRefResult; class FuncFactory; class XQILLA_API FunctionRefImpl : public FunctionRef { public: typedef RefCountPointer Ptr; /** Initialises closure from the StaticAnalysis of variables that are needed */ FunctionRefImpl(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const FunctionSignature *signature, const ASTNode *instance, const StaticAnalysis &sa, DynamicContext *context); ~FunctionRefImpl(); virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const; virtual size_t getNumArgs() const; virtual const FunctionSignature *getSignature() const { return signature_; } virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const; virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const; virtual const XMLCh *asString(const DynamicContext *context) const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; virtual void *getInterface(const XMLCh *name) const; static ASTNode *createInstance(const FuncFactory *factory, const FunctionSignature *signature, XPath2MemoryManager *mm, const LocationInfo *location); static ASTNode *createInstance(const XMLCh *uri, const XMLCh *name, unsigned int numArgs, StaticContext *context, const LocationInfo *location, FunctionSignature *&signature); protected: /** Partially evaluates the given FunctionRefImpl with the given argument */ FunctionRefImpl(const FunctionRefImpl *other, const Result &argument, unsigned int argNum, DynamicContext *context); const XMLCh *prefix_, *uri_, *name_; const FunctionSignature *signature_; bool signatureOwned_; const ASTNode *instance_; VarStoreImpl varStore_; friend class FunctionRefScope; }; #endif XQilla-2.3.4/src/items/impl/ATFloatOrDerivedImpl.cpp0000644001725400016040000010055513273140037017142 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif int ATFloatOrDerivedImpl::g_nSignificantDigits=25; ATFloatOrDerivedImpl:: ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATFloatOrDerived(), _typeName(typeName), _typeURI(typeURI) { setFloat(value); // if state is NaN, it could be because it should be INF or -INF if(_state == NaN) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { _state = NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { _state = INF; } } checkFloatLimits(_state, _float); } ATFloatOrDerivedImpl:: ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATFloatOrDerived(), _typeName(typeName), _typeURI(typeURI) { _float = value; _state = NUM; if (value.sign() < 0) _state = NEG_NUM; checkFloatLimits(_state, _float); } void *ATFloatOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATFloatOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATFloatOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_FLOAT; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATFloatOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATFloatOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATFloatOrDerivedImpl::getTypeIndex() { return AnyAtomicType::FLOAT; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATFloatOrDerivedImpl::asString(const DynamicContext* context) const { return asDoubleString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATFloatOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::FLOAT: return this; case AnyAtomicType::DOUBLE: return (const Numeric::Ptr)castAs(typeIndex, context); default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->add((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->add(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF + NUM = INF case INF: return infinity(context); // INF + INF = INF case NEG_INF: return notANumber(context); // INF + (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF + NUM = -INF case INF: return notANumber(context); // -INF + INF = NaN case NEG_INF: return negInfinity(context); // -INF + (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { // Handle positive and negative zero if(_float.sign()==0 && otherImpl->_float!=0) return other; else if(_float.sign()!=0 && otherImpl->_float==0) return this; else if(_float.sign()==0 && otherImpl->_float==0) { if(_state==otherImpl->_state) // sum of two zero of the same sign -> result is equal to any of the two items return this; else // sum of two zero of different sign -> result is equal to +0 return newFloat(0, context); } return newFloat(_float + otherImpl->_float, context); } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATFloatOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->subtract((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->subtract(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF - NUM = INF case INF: return notANumber(context); // INF - INF = NaN case NEG_INF: return infinity(context); // INF - (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF - NUM = -INF case INF: return negInfinity(context); // -INF - INF = -INF case NEG_INF: return notANumber(context); // -INF - (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return negInfinity(context); // NUM - INF = -INF case NEG_INF: return infinity(context); // NUM - (-INF) = INF case NEG_NUM: case NUM: return newFloat(_float - otherImpl->_float, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->multiply((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->multiply(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF * NUM = +/-INF case INF: return infinity(context); // INF * INF = INF case NEG_INF: return negInfinity(context); // INF * (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF * NUM = +/-INF case INF: return negInfinity(context); // -INF * INF = -INF case NEG_INF: return infinity(context); // -INF * (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return this->isPositive() ? infinity(context) : negInfinity(context); // NUM * INF = +/-INF case NEG_INF: return this->isPositive() ? negInfinity(context) : infinity(context); // NUM * (-INF) = +/-INF case NEG_NUM: case NUM: if(other->isZero() || this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newFloat(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newFloat(_float * otherImpl->_float, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->divide((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->divide(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF / NUM = +/-INF case INF: return notANumber(context); // INF / INF = NaN case NEG_INF: return notANumber(context); // INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch }// case case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF / NUM = -INF case INF: return notANumber(context); // -INF / INF = NaN case NEG_INF: return notANumber(context); // -INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch } // case case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: { // NUM / INF = +/-0 if(this->isNegative()) { return negZero(context); } else { return newFloat(0, context); } }// case case NEG_INF: { // NUM / -INF = +/-0 if(this->isPositive()) { return negZero(context); } else { return newFloat(0, context); } }// case case NEG_NUM: case NUM: { if(other->isZero()) { if(this->isZero()) return notANumber(context); if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negInfinity(context); // NUM / (-0) or (-NUM) / 0 = -INF } else { return infinity(context); // NUM / 0 or (-NUM) / (-0) = INF } } else if(this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newFloat(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newFloat(_float / otherImpl->_float, context); }// case default: assert(false); return 0; // should never get here }// switch }// case default: assert(false); return 0; // should never get here }// switch } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns the mod of its operands as a Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->mod((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->mod(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison const ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(this->isNaN() || otherImpl->isNaN() || this->isInfinite() || otherImpl->isZero()) { return notANumber(context); } else if(otherImpl->isInfinite() || this->isZero()) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::FLOAT, context); } else { MAPM result = _float; MAPM r; r = result.integer_divide(otherImpl->_float); result -= r * otherImpl->_float; if (result == 0 && isNegative()) return negZero(context); return newFloat(result, context); } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } Numeric::Ptr ATFloatOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: // if other is a decimal, promote it to xs:float return power(context->getItemFactory()->createFloat(other->asMAPM(), context), context); case FLOAT: { ATFloatOrDerivedImpl *otherImpl = (ATFloatOrDerivedImpl*)other.get(); switch(_state) { case NaN: return this; case INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return other; case INF: return other; case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newFloat(_float.pow(otherImpl->_float), context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } case DOUBLE: return ((Numeric*)this->castAs(DOUBLE, context).get())->power(other, context); default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::floor(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isZero() && isNegative()) return negZero(context); return newFloat(_float.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::ceiling(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() && _float >= -0.5) { return negZero(context); } return newFloat(_float.ceil(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::round(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() &&_float >= -0.5) { return negZero(context); } MAPM value = _float + 0.5; return newFloat(value.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATFloatOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: break; default: { assert(false); return 0; // should never get here } } if (isZero() && isNegative()) return this; ATFloatOrDerived::Ptr float_precision = (const Numeric::Ptr)precision->castAs(this->getPrimitiveTypeIndex(), context); MAPM exp = MAPM(10).pow(((ATFloatOrDerivedImpl*)(const ATFloatOrDerived*)float_precision)->_float); MAPM value = _float * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _float * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // the spec doesn't actually say to do this, but djf believes this is the correct way to handle rounding of -ve values which will result in 0.0E0 // if (value == 0 && isNegative()) // return negZero(context); return newFloat(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::invert(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return negInfinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: if(this->isZero()) { if(this->isNegative()) return newFloat(0, context); else return negZero(context); } return newFloat(_float.neg(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::abs(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newFloat(_float.abs(), context); default: assert(false); return 0; // should never get here } } /** Returns the square root of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::sqrt(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: return newFloat(_float.sqrt(), context); default: assert(false); return 0; // should never get here } } /** Returns the sinus of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::sin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context);; case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newFloat(_float.sin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::cos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newFloat(_float.cos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::tan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newFloat(_float.tan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::asin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_float.abs() > 1)return notANumber(context); return newFloat(_float.asin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::acos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_float.abs() > 1)return notANumber(context); return newFloat(_float.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::atan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return newFloat((MM_HALF_PI), context); case NEG_INF: return newFloat(MAPM(MM_HALF_PI).neg(), context); case NEG_NUM: case NUM: return newFloat(_float.atan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::log(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: if(_float == 0)return notANumber(context); return newFloat(_float.log(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::exp(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return newFloat(0, context); case NEG_NUM: case NUM: return newFloat(_float.exp(), context); default: assert(false); return 0; // should never get here } } /** Does this Numeric have value 0? */ bool ATFloatOrDerivedImpl::isZero() const { switch (_state) { case NaN: case INF: case NEG_INF: return false; case NEG_NUM: case NUM: return _float.sign() == 0; default: { assert(false); return false; // should never get here } } } /** Is this Numeric positive? */ bool ATFloatOrDerivedImpl::isPositive() const { switch (_state) { case INF: case NUM: return true; case NaN: case NEG_INF: case NEG_NUM: return false; } assert(false); return false; // should never get here } /** Is this Numeric negative? */ bool ATFloatOrDerivedImpl::isNegative() const { switch (_state) { case NaN: case INF: case NUM: return false; case NEG_NUM: case NEG_INF: return true; } assert(false); return false; // should never get here } /* Is this xs:float not a number */ bool ATFloatOrDerivedImpl::isNaN() const { return _state == NaN; } /* Is this xs:float infinite? */ bool ATFloatOrDerivedImpl::isInfinite() const { return _state == INF || _state == NEG_INF; } AnyAtomicType::AtomicObjectType ATFloatOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* returns a new infinity xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::infinity(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::INF_string, context); } /* returns a new negative infinity xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::negInfinity(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NegINF_string, context); } /* returns a NaN xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::notANumber(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NaN_string, context); } /* returns a -0 ATFloatOrDerived*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::negZero(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NegZero_string, context); } /*returns a ATFloatOrDerived of value value*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::newFloat(MAPM value, const DynamicContext* context) const { return context->getItemFactory()->createFloat(value, context); } static MAPM parse(const XMLCh* const value, Numeric::State &state) { if(value == NULL) { // Not a Number state = Numeric::NaN; return 0; } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotBase = false; bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; bool isNegative = false; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) { case L'+': { *dest++ = '+'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; if(!gotBase) isNegative = true; } break; } case 0x0045: case 0x0065: { *dest++ = 'e'; if(!gotDigit || gotBase) { stop = true; } else { gotPoint = false; gotSign = false; gotBase = true; gotDigit = false; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint || gotBase) { stop = true; } else { gotPoint = true; } break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } } } break; } default: stop = true; break; } } if(!gotDigit || stop) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { state = Numeric::NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { state = Numeric::INF; } else { state = Numeric::NaN; } return 0; } *dest++ = 0; // Null terminate if(isNegative) state = Numeric::NEG_NUM; else state = Numeric::NUM; return (char*)buffer; } void ATFloatOrDerivedImpl::setFloat(const XMLCh* const value) { _float = parse(value, _state); } MAPM ATFloatOrDerivedImpl::parseFloat(const XMLCh* const value, State &state) { MAPM result = parse(value, state); Numeric::checkFloatLimits(state, result); return result; } XQilla-2.3.4/src/items/impl/ATDateTimeOrDerivedImpl.cpp0000644001725400016040000006164113273140037017573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDateTimeOrDerivedImpl:: ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): _typeName(typeName), _typeURI(typeURI) { setDateTime(value); } // private constructor for internal use ATDateTimeOrDerivedImpl::ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATDateTimeOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDateTimeOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDateTimeOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DATETIME; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDateTimeOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDateTimeOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDateTimeOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DATE_TIME; } static inline MAPM hourFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); } static inline MAPM minuteFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); } static inline MAPM secondFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerMinute); } static inline void dateFromSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day) { DateUtils::convertAbsolute2DMY((value/DateUtils::g_secondsPerDay).floor(), day, month, year); } static inline void decomposeSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day, MAPM &hour, MAPM &minute, MAPM &second) { hour = hourFromSeconds(value); minute = minuteFromSeconds(value); second = secondFromSeconds(value); dateFromSeconds(value, year, month, day); } static inline MAPM composeSeconds(MAPM &YY, MAPM &MM, MAPM &DD, MAPM &hh, MAPM &mm, MAPM &ss) { return DateUtils::convertDMY2Absolute(DD, MM, YY) * DateUtils::g_secondsPerDay + hh * DateUtils::g_secondsPerHour + mm * DateUtils::g_secondsPerMinute + ss; } static inline MAPM tzLocalize(bool hasTimezone, const MAPM &value, const Timezone::Ptr &timezone) { if(!hasTimezone) return value; return value + timezone->asSeconds(); } static inline MAPM tzNormalize(bool hasTimezone, const MAPM &value, const DynamicContext *context) { if(hasTimezone) return value; return value - context->getImplicitTimezone()->asSeconds(context)->asMAPM(); } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDateTimeOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); switch (targetIndex) { case DATE: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); // Add timezone if exists if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createDateOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_DAY: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH_DAY: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case TIME: { MAPM value = tzLocalize(_hasTimezone, seconds_, timezone_); MAPM hour = hourFromSeconds(value); MAPM minute = minuteFromSeconds(value); MAPM second = secondFromSeconds(value); DateUtils::formatNumber(hour, 2, buf); buf.append(chColon); DateUtils::formatNumber(minute, 2, buf); buf.append(chColon); if(second < 10) buf.append(chDigit_0); buf.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR_MONTH: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, asString(context), context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDateTimeOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM year, month, day, hour, minute, second; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day, hour, minute, second); DateUtils::formatNumber(year, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(month, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(day, 2, buffer); buffer.append(chLatin_T); DateUtils::formatNumber(hour, 2, buffer); buffer.append(chColon); DateUtils::formatNumber(minute, 2, buffer); buffer.append(chColon); if(second < 10) buffer.append(chDigit_0); buffer.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); // Add timezone if exists if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects represent the same date, * false otherwise */ bool ATDateTimeOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATDateTimeOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATDateTimeOrDerivedImpl *)target.get(), context) == 0; } int ATDateTimeOrDerivedImpl::compare(const ATDateTimeOrDerived::Ptr &target, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)target.get(); return tzNormalize(_hasTimezone, seconds_, context).compare(tzNormalize(other->_hasTimezone, other->seconds_, context)); } /** * Returns an integer representing the year component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getYears(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createInteger(year, context); } /** * Returns an integer representing the month component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getMonths(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(month, context); } /** * Returns an integer representing the day component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getDays(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(day, context); } /** * Returns an integer representing the hour component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getHours(const DynamicContext *context) const { return context->getItemFactory()-> createNonNegativeInteger(hourFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns an integer representing the minute component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getMinutes(const DynamicContext *context) const { return context->getItemFactory()-> createNonNegativeInteger(minuteFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns an decimal representing the second component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getSeconds(const DynamicContext *context) const { return context->getItemFactory()-> createDecimal(secondFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATDateTimeOrDerivedImpl::getTimezone() const { return timezone_; } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATDateTimeOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed null, timezone is removed (unset) */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { MAPM result = seconds_; if(_hasTimezone) result += timezone_->asSeconds(); if(timezone != NULLRCP) result -= timezone->asSeconds(); return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, result, timezone, timezone != NULLRCP); } /** * Returns an ATDateTimeOrDerived with a timezone added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { if(!_hasTimezone) return setTimezone(new Timezone(timezone, context), context); return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, seconds_, new Timezone(timezone, context), true); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { return addYearMonthDuration(yearMonth->asMonths(context)->asMAPM(), context); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addYearMonthDuration(const MAPM &monthsToAdd, const DynamicContext* context) const { return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, addYearMonthDuration(seconds_, monthsToAdd), timezone_, _hasTimezone); } MAPM ATDateTimeOrDerivedImpl::addYearMonthDuration(const MAPM &seconds, const MAPM &monthsToAdd) { MAPM year, month, day, hour, minute, second; decomposeSeconds(seconds, year, month, day, hour, minute, second); MAPM totalMonths = month + monthsToAdd - MM_One; MAPM MM = DateUtils::modulo(totalMonths, 12) + MM_One; MAPM carry = (totalMonths / 12).floor(); MAPM finalYears = carry + year; assert(year.sign() != 0); // We should never have _YY = 0000 MAPM YY; // Fix year 0000 problem if(finalYears.sign() <= 0 && year.sign() >= 0) { YY = finalYears - MM_One; } else if(finalYears.sign() >= 0 && year.sign() < 0) { YY = finalYears + MM_One; } else { YY = finalYears; } int maxDay = DateUtils::maximumDayInMonthFor(YY, MM); if(day > maxDay) day = maxDay; return composeSeconds(YY, MM, day, hour, minute, second); } /** * Returns a date with the given dayTimeDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM(), context); } /** * Returns a date with the given yearMonthDuration subtracted from it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { return addYearMonthDuration(yearMonth->asMonths(context)->asMAPM().neg(), context); } /** * Returns a date with the given dayTimeDuration subtracted from it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM().neg(), context); } ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addDayTimeDuration(const MAPM &secondsToAdd, const DynamicContext* context) const { return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, seconds_ + secondsToAdd, timezone_, _hasTimezone); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ ATDurationOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)date.get(); MAPM secDiff = tzNormalize(_hasTimezone, seconds_, context) - tzNormalize(other->_hasTimezone, other->seconds_, context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ ATDurationOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)date.get(); // Call subtractDateTimeAsDayTimeDuration const ATDurationOrDerived::Ptr dayTimeDiff = subtractDateTimeAsDayTimeDuration(date, context); // put it into yearMonthDuration form MAPM days = dayTimeDiff->getDays(context)->asMAPM(); MAPM months; // Get number of months MAPM YY, MM, DD; dateFromSeconds(tzNormalize(other->_hasTimezone, other->seconds_, context), YY, MM, DD); int curYear = DateUtils::asInt(YY); int curMonth = DateUtils::asInt(MM); int curDays = DateUtils::asInt(DD) - 1; while (true) { int currentDaysInMonth = DateUtils::maximumDayInMonthFor(curYear, curMonth); int daysToNextMonth = currentDaysInMonth - curDays; if (days > daysToNextMonth) { days = days - daysToNextMonth; ++months; ++curMonth; if(curMonth > 12) { ++curYear; curMonth = 1; curDays = 0; } } else break; } return context->getItemFactory()->createYearMonthDuration(months, context); } AnyAtomicType::AtomicObjectType ATDateTimeOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDateTimeOrDerivedImpl::setDateTime(const XMLCh* const dateTime) { unsigned int length = XPath2Utils::uintStrlen(dateTime); if(dateTime == 0) { XQThrow2(XPath2TypeCastException,X("ATDateTimeOrDerivedImpl::setDateTime"), X("Invalid representation of dateTime [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; MAPM decplace = 1; MAPM tmpdec = 0; bool negative = false; unsigned numDigit = 0; // defaulting values MAPM YY = 0; MAPM MM = 0; MAPM DD = 0; MAPM hh = 0; MAPM mm = 0; MAPM ss = 0; _hasTimezone = false; bool zonepos = true; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && dateTime[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = dateTime[pos]; pos++; switch(tmpChar) { case L'.': { if (! gotDot && gotDigit && state == 5 && numDigit == 2) { gotDot = true; ss = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot && state == 5) { decplace *= 10; } else { numDigit ++; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'T' : { if ( state == 2 && gotDigit && !gotDot && numDigit == 2) { state ++; DD = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else { wrongformat = true; } break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4 ) { YY = tmpnum; if (negative) { YY = YY * -1; } tmpnum = 0; gotDigit = false; numDigit = 0; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } state ++; } break; } case L'+' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit ) { if (state == 3 && numDigit == 2) { hh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 4 && numDigit == 2) { mm = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } state ++; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; }else { wrongformat = true; } } // check time format if(MM > 12 || YY == 0 || DD > DateUtils::maximumDayInMonthFor(YY, MM) || hh > 24 || mm > 59 || ss >= 60 || zonehh > 24 || zonemm > 59 ) { wrongformat = true; } if (wrongformat) { XQThrow2(XPath2TypeCastException,X("XSDateTimeImpl::setDateTime"), X("Invalid representation of dateTime [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); seconds_ = composeSeconds(YY, MM, DD, hh, mm, ss); if(_hasTimezone) { // If we have a timezone, then seconds_ needs to be normalized seconds_ -= timezone_->asSeconds(); } } MAPM ATDateTimeOrDerivedImpl::parseDateTime(const XMLCh* const dateTime, const MAPM &implicitTimezone) { ATDateTimeOrDerivedImpl dt(0, 0, dateTime); if(!dt._hasTimezone) return dt.seconds_ - implicitTimezone; return dt.seconds_; } XQilla-2.3.4/src/items/impl/ATQNameOrDerivedImpl.cpp0000644001725400016040000002000513273140037017065 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATQNameOrDerivedImpl:: ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context) : ATQNameOrDerived(), _typeName(typeName), _typeURI(typeURI) { const XMLCh* prefix = XPath2NSUtils::getPrefix(value, context->getMemoryManager()); const XMLCh* uri; if(XPath2Utils::equals(prefix, XMLUni::fgZeroLenString)) { // If $qname has no prefix uri = context->getDefaultElementAndTypeNS(); } // If $qname has a prefix else { try { uri = context->getUriBoundToPrefix(prefix, 0); } catch(NamespaceLookupException&) { XQThrow2(StaticErrorException, X("ATQNameOrDerivedImpl::ATQNameOrDerivedImpl"), X("No namespace for prefix [err:FONS0004]")); } } // _uri will be null if there is no default NS _uri = context->getMemoryManager()->getPooledString(uri); _prefix = context->getMemoryManager()->getPooledString(prefix); _name = context->getMemoryManager()->getPooledString(XPath2NSUtils::getLocalName(value)); } ATQNameOrDerivedImpl:: ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const StaticContext* context) : ATQNameOrDerived(), _typeName(typeName), _typeURI(typeURI) { // if uri is NULL, so will _uri _uri = context->getMemoryManager()->getPooledString(uri); _prefix = context->getMemoryManager()->getPooledString(prefix); _name = context->getMemoryManager()->getPooledString(name); } void *ATQNameOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATQNameOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATQNameOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATQNameOrDerivedImpl::getTypeURI() const { return _typeURI; } /* returns the URI */ const XMLCh* ATQNameOrDerivedImpl::getURI(void) const { return _uri; } /* returns the prefix */ const XMLCh* ATQNameOrDerivedImpl::getPrefix(void) const { return _prefix; } /* returns the name */ const XMLCh* ATQNameOrDerivedImpl::getName(void) const { return _name; } AnyAtomicType::AtomicObjectType ATQNameOrDerivedImpl::getTypeIndex() { return AnyAtomicType::QNAME; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATQNameOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asLexicalString(context), context); } case QNAME: { if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_QNAME; } return context->getItemFactory()->createQNameOrDerived(targetURI, targetType, _uri, _prefix, _name, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATQNameOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); if(_prefix != 0 && *_prefix != 0) { buffer.set(_prefix); buffer.append(chColon); } buffer.append(_name); return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns the XMLCh* (lexical => prefix:localname) representation of this type */ const XMLCh* ATQNameOrDerivedImpl::asLexicalString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); const XMLCh* prefix; if(this->_uri == 0 || XPath2Utils::equals(_uri, XMLUni::fgZeroLenString)) { if(context->getDefaultElementAndTypeNS() != 0) { XQThrow2(NamespaceLookupException,X("ATQNameOrDerivedImpl::asLexicalString"), X("Default namespace is defined: casting a QName that has no namespace is ambiguous")); } buffer.set(_name); } else { // if we have a prefix, use it, otherwise try looking at the in-scope namespaces // (unless the namespace is the default one) if(XPath2Utils::equals(_prefix,XMLUni::fgZeroLenString) && !XPath2Utils::equals(_uri, context->getDefaultElementAndTypeNS())) prefix = context->getPrefixBoundToUri(this->_uri); else prefix = _prefix; if (prefix == 0) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("No prefix defined for namespace '")); msg.append(_uri); msg.append(X("'")); XQThrow2(NamespaceLookupException,X("ATQNameOrDerivedImpl::asLexicalString"), msg.getRawBuffer()); } buffer.set(prefix); buffer.append(chColon); buffer.append(_name); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATQNameOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATQNameOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATQNameOrDerived *)target.get(), context) == 0; } int ATQNameOrDerivedImpl::compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const { const ATQNameOrDerivedImpl *otherImpl = (const ATQNameOrDerivedImpl *)other.get(); int cmp = XPath2Utils::compare(_name, otherImpl->_name); if(cmp != 0) return cmp; return XPath2Utils::compare(_uri, otherImpl->_uri); } const XMLCh* ATQNameOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_QNAME; } AnyAtomicType::AtomicObjectType ATQNameOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATGMonthOrDerivedImpl.cpp0000644001725400016040000002160113273140037017263 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGMonthOrDerivedImpl:: ATGMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGMonthOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGMonth(value); } void *ATGMonthOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGMonthOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGMonthOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_MONTH; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGMonthOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGMonthOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGMonthOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_MONTH; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGMonthOrDerivedImpl::asString(const DynamicContext* context) const { /* --MM format*/ XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gMonth, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &MM, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DateUtils::maximumDayInMonthFor(1972, MM), MM, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGMonthOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_gMonth, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing components * of $arg1 and $arg2 from an xs:dateTime template such as 1972-xx-ddT00:00:00 where dd represents the last day of the month * component in $arg1 or $arg2. Returns false otherwise. */ bool ATGMonthOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGMonthOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGMonthOrDerived *)target.get(), context) == 0; } int ATGMonthOrDerivedImpl::compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGMonthOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGMonthOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGMonthOrDerived::Ptr ATGMonthOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gMonth, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGMonthOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGMonthOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gMonth */ void ATGMonthOrDerivedImpl::setGMonth(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("XSGMonthImpl::setGMonth"), X("Invalid representation of gMonth [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; // defaulting values MAPM MM = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length < 4 || value[0] != L'-' || value[1] != L'-' ) { wrongformat = true; }else{ pos = 2; state = 1; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; numDigit ++; break; } case L'-' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; state = 6; numDigit = 0; _hasTimezone = true; zonepos = false; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; state = 6; numDigit = 0; _hasTimezone = true; zonepos = true; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; state = 7; }else { wrongformat = true; } break; } case L'Z' : { if ( gotDigit && state == 1 && numDigit == 2) { state = 8; // final state MM = tmpnum; _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( state == 1 && numDigit == 2) MM = tmpnum; else if( state == 7 && numDigit == 2) zonemm = tmpnum; else wrongformat = true; } // check time format if ( MM > 12 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGMonthOrDerivedImpl::setGMonth"), X("Invalid representation of gMonth [err:FORG0001]")); } _gMonth = MM; timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); } MAPM ATGMonthOrDerivedImpl::parseGMonth(const XMLCh* const value, const MAPM &implicitTimezone) { ATGMonthOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._gMonth, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/impl/ATDateOrDerivedImpl.cpp0000644001725400016040000004451313273140037016753 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDateOrDerivedImpl:: ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) : _typeName(typeName), _typeURI(typeURI) { setDate(value); } // private constructor for internal use() ATDateOrDerivedImpl::ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATDateOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDateOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDateOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DATE; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDateOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDateOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDateOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DATE; } static inline void decomposeSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day) { DateUtils::convertAbsolute2DMY((value/DateUtils::g_secondsPerDay).floor(), day, month, year); } static inline MAPM composeSeconds(MAPM &YY, MAPM &MM, MAPM &DD) { return DateUtils::convertDMY2Absolute(DD, MM, YY) * DateUtils::g_secondsPerDay; } static inline MAPM tzLocalize(bool hasTimezone, const MAPM &value, const Timezone::Ptr &timezone) { if(!hasTimezone) return value; return value + timezone->asSeconds(); } static inline MAPM tzNormalize(bool hasTimezone, const MAPM &value, const DynamicContext *context) { if(hasTimezone) return value; return value - context->getImplicitTimezone()->asSeconds(context)->asMAPM(); } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDateOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); const XMLCh doubleZero[] = { chDigit_0, chDigit_0, chNull }; switch (targetIndex) { case DATE_TIME: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); buf.append(chLatin_T); buf.append(doubleZero); buf.append(chColon); buf.append(doubleZero); buf.append(chColon); buf.append(doubleZero); // Add timezone if exists if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createDateTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_DAY: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH_DAY: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR_MONTH: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, asString(context), context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDateOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(month, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(day, 2, buffer); // Add timezone if exists if (_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects represent the same date, * false otherwise */ bool ATDateOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATDateOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATDateOrDerivedImpl *)target.get(), context) == 0; } int ATDateOrDerivedImpl::compare(const ATDateOrDerived::Ptr &target, const DynamicContext *context) const { const ATDateOrDerivedImpl *other = (const ATDateOrDerivedImpl *)target.get(); return tzNormalize(_hasTimezone, seconds_, context).compare(tzNormalize(other->_hasTimezone, other->seconds_, context)); } /** * Returns an integer representing the year component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getYears(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createInteger(year, context); } /** * Returns an integer representing the month component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getMonths(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(month, context); } /** * Returns an integer representing the day component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getDays(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(day, context); } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATDateOrDerivedImpl::getTimezone() const { return timezone_; } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATDateOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /**mrg@decisionsoft.com * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed NULL, timezone is removed (unset) */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { MAPM result = seconds_; if(_hasTimezone) result += timezone_->asSeconds(); if(timezone != NULLRCP) result -= timezone->asSeconds(); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone, timezone != NULLRCP); } /** * Returns an ATDateOrDerived with a timezone added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { Timezone::Ptr tz = new Timezone(timezone, context); if(!_hasTimezone) return setTimezone(tz, context); // Keep the time components as 00:00:00 MAPM result = seconds_ + tz->asSeconds(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; result -= tz->asSeconds(); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, tz, true); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { MAPM result = ATDateTimeOrDerivedImpl::addYearMonthDuration(seconds_, yearMonth->asMonths(context)->asMAPM()); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given dayTimeDuration added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { MAPM result = seconds_ + dayTime->asSeconds(context)->asMAPM(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given yearMonthDuration subtracted from it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { MAPM result = ATDateTimeOrDerivedImpl::addYearMonthDuration(seconds_, yearMonth->asMonths(context)->asMAPM().neg()); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given dayTimeDuration subtracted from it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { MAPM result = seconds_ - dayTime->asSeconds(context)->asMAPM(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ ATDurationOrDerived::Ptr ATDateOrDerivedImpl::subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateOrDerivedImpl *other = (const ATDateOrDerivedImpl *)date.get(); MAPM secDiff = tzNormalize(_hasTimezone, seconds_, context) - tzNormalize(other->_hasTimezone, other->seconds_, context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } AnyAtomicType::AtomicObjectType ATDateOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDateOrDerivedImpl::setDate(const XMLCh* const date) { unsigned int length = XPath2Utils::uintStrlen(date); if(date == 0) { XQThrow2(XPath2TypeCastException,X("ATDateOrDerived::setDate"), X("Invalid representation of date [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 1; MAPM MM = 0; MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day // 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && date[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = date[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4) { YY = tmpnum; if (negative) { YY = YY * -1; } tmpnum = 0; gotDigit = false; numDigit = 0 ; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0 ; } else if ( state == 2 && numDigit == 2) { DD += tmpnum; gotDigit = false; zonepos = false; _hasTimezone = true; tmpnum = 0; state = 5; numDigit = 0 ; } else { wrongformat = true; } state ++; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0 ; }else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; state = 6; gotDigit = false; zonepos = true; _hasTimezone = true; tmpnum = 0; numDigit = 0 ; } else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0 ; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; _hasTimezone = true; }else if ( gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; }else { wrongformat = true; } } // Verify date if ( MM > 12 || YY == 0 || zonehh > 24 || zonemm > 59 ) wrongformat = true; else if(DD > DateUtils::maximumDayInMonthFor(YY, MM)) wrongformat = true; if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATDateOrDerivedImpl::setDate"), X("Invalid representation of date [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); seconds_ = composeSeconds(YY, MM, DD); if(_hasTimezone) { // If we have a timezone, then seconds_ needs to be normalized seconds_ -= timezone_->asSeconds(); } } MAPM ATDateOrDerivedImpl::parseDate(const XMLCh* const date, const MAPM &implicitTimezone) { ATDateOrDerivedImpl dt(0, 0, date); if(!dt._hasTimezone) return dt.seconds_ - implicitTimezone; return dt.seconds_; } XQilla-2.3.4/src/items/impl/ATGYearOrDerivedImpl.cpp0000644001725400016040000001774613273140037017115 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGYearOrDerivedImpl:: ATGYearOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGYearOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGYear(value); } void *ATGYearOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGYearOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATGYearOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_YEAR; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGYearOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGYearOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGYearOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_YEAR; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGYearOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &YY, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(1, 1, YY) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGYearOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_YY, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* returns true if the two objects * false otherwise */ bool ATGYearOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGYearOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGYearOrDerived *)target.get(), context) == 0; } int ATGYearOrDerivedImpl::compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGYearOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGYearOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGYearOrDerived::Ptr ATGYearOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGYearOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGYearOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gYear */ void ATGYearOrDerivedImpl::setGYear(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGYearOrDerivedImpl::setGYear"), X("Invalid representation of gYear [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && value[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; tmpnum = 0; gotDigit = false; _hasTimezone = true; zonepos = false; state = 6; numDigit = 0; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; state = 7; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 0 && numDigit >= 4 ) { YY += tmpnum; }else { wrongformat = true; } } if (negative) { YY = YY * -1; } if (YY == 0) { wrongformat = true; } // check time format if (wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGYearOrDerivedImpl::setGYear"), X("Invalid representation of gYear [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _YY = YY; } MAPM ATGYearOrDerivedImpl::parseGYear(const XMLCh* const value, const MAPM &implicitTimezone) { ATGYearOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._YY, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/impl/ATUntypedAtomicImpl.hpp0000644001725400016040000000517213273140037017062 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATUNTYPEDATOMICIMPL_HPP #define _ATUNTYPEDATOMICIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATUntypedAtomicImpl : public ATUntypedAtomic { public: /* constructor */ ATUntypedAtomicImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the namespace uri of the primitive type (basic type) of this type */ virtual const XMLCh* getPrimitiveTypeURI() const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _value; }; #endif // _ATUNTYPEDATOMICIMPL_HPP XQilla-2.3.4/src/items/impl/ATDurationOrDerivedImpl.cpp0000644001725400016040000006276713273140037017676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDurationOrDerivedImpl:: ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) :_isPositive(true), _typeName(typeName), _typeURI(typeURI) { setDuration(value); init(context); } ATDurationOrDerivedImpl:: ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &months, const MAPM &seconds, const DynamicContext* context) : _isPositive(true), _months(months), _seconds(seconds), _typeName(typeName), _typeURI(typeURI) { init(context); } void ATDurationOrDerivedImpl::init(const DynamicContext* context) { if(_months.sign() < 0) { _isPositive = false; _months = _months.neg(); } if(_seconds.sign() != 0) { if(abs(_seconds.exponent()) > (int)ATDecimalOrDerivedImpl::g_nSignificantDigits) { // Call it zero if the size is too small to display _seconds = 0; } else if(_seconds.sign() < 0) { _isPositive = false; _seconds = _seconds.neg(); } } if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, context)) { _durationType = DAY_TIME_DURATION; } else if (this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, context)) { _durationType = YEAR_MONTH_DURATION; } else { _durationType = DURATION; } } void *ATDurationOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDurationOrDerivedImpl::getPrimitiveTypeName() const { switch(_durationType) { case DAY_TIME_DURATION: return fgDT_DAYTIMEDURATION; case YEAR_MONTH_DURATION: return fgDT_YEARMONTHDURATION; default: break; } return this->getPrimitiveName(); } const XMLCh* ATDurationOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DURATION; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDurationOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDurationOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDurationOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DURATION; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDurationOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); // checking if what we're casting to by using isTypeOrDerivedFrom is expensive so we will // determine what we are casting to and then what type we actually are. if(targetIndex == AnyAtomicType::YEAR_MONTH_DURATION) { //we're casting to a yearMonthDuration if (_durationType == DAY_TIME_DURATION) { // If ST is xdt:dayTimeDuration and TT is xdt:yearMonthDuration, the cast is permitted and returns a // xdt:yearMonthDuration with value 0 months. buf.append(chLatin_P); buf.append(chDigit_0); buf.append(chLatin_M); return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } else if (_durationType == YEAR_MONTH_DURATION) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } else { //else we're a duration and we must remove the day and time components if(_months.sign() == 0) { buf.append(chLatin_P); buf.append(chDigit_0); buf.append(chLatin_M); } else { if(!_isPositive) { buf.append(chDash); } buf.append(chLatin_P); MAPM yrs = _months.integer_divide(12); MAPM mths = DateUtils::modulo(_months, 12); if(yrs.sign() != 0) { buf.append(Numeric::asDecimalString(yrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_Y); } if(mths.sign() != 0) { buf.append(Numeric::asDecimalString(mths, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_M); } } return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } } else if(targetIndex == AnyAtomicType::DAY_TIME_DURATION) { //we're casting to a dayTimeDuration if (_durationType == YEAR_MONTH_DURATION) { // If ST is xdt:yearMonthDuration and TT is xdt:dayTimeDuration, the cast is permitted and returns a // xdt:dayTimeDuration with value 0.0 seconds. buf.append(chLatin_P); buf.append(chLatin_T); buf.append(chDigit_0); buf.append(chLatin_M); return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } else if (_durationType == DAY_TIME_DURATION) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } else { //else we're a duration and we must remove the year and month components if (_seconds.sign() == 0) { buf.append(chLatin_P); buf.append(chLatin_T); buf.append(chDigit_0); buf.append(chLatin_S); } else { if(!_isPositive) { buf.append(chDash); } buf.append(chLatin_P); MAPM days = _seconds.integer_divide(DateUtils::g_secondsPerDay); MAPM hrs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); MAPM mnts = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); MAPM secs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(days.sign() != 0) { buf.append(Numeric::asDecimalString(days, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_D); } // mandatory center 'T', if the time is not zero if(hrs.sign() != 0 || mnts.sign() != 0 || secs.sign() != 0) { buf.append(chLatin_T); if(hrs.sign() != 0) { buf.append(Numeric::asDecimalString(hrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_H); } if(mnts.sign() != 0) { buf.append(Numeric::asDecimalString(mnts, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_M); } if(secs.sign() != 0) { buf.append(Numeric::asDecimalString(secs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_S); } } } return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } } else { //else we're casting to a duration or some other type and the base castAs will handle it. return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } return 0; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDurationOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); // if the value of this duration is zero, return 'PT0S' or 'P0M' if(_months.sign() == 0 && _seconds.sign() == 0) { if(_durationType == YEAR_MONTH_DURATION) { buffer.append(chLatin_P); buffer.append(chDigit_0); buffer.append(chLatin_M); } else { buffer.append(chLatin_P); buffer.append(chLatin_T); buffer.append(chDigit_0); buffer.append(chLatin_S); } } else { if ( !_isPositive ) { buffer.append(chDash); } // madatory leading 'P' buffer.append(chLatin_P); if(_durationType != DAY_TIME_DURATION) { MAPM yrs = _months.integer_divide(12); MAPM mths = DateUtils::modulo(_months, 12); if(yrs.sign() != 0) { buffer.append(Numeric::asDecimalString(yrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_Y); } if(mths.sign() != 0) { buffer.append(Numeric::asDecimalString(mths, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_M); } } // append the day and time information if this is not a yearMonthDuration if(_durationType != YEAR_MONTH_DURATION) { MAPM days = _seconds.integer_divide(DateUtils::g_secondsPerDay); MAPM hrs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); MAPM mnts = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); MAPM secs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(days.sign() != 0) { buffer.append(Numeric::asDecimalString(days, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_D); } // mandatory center 'T', if the time is not zero if(hrs.sign() != 0 || mnts.sign() != 0 || secs.sign() != 0) { buffer.append(chLatin_T); if(hrs.sign() != 0) { buffer.append(Numeric::asDecimalString(hrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_H); } if(mnts.sign() != 0) { buffer.append(Numeric::asDecimalString(mnts, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_M); } if(secs.sign() != 0) { buffer.append(Numeric::asDecimalString(secs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_S); } } } } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if this duration is an instance of a xdt:dayTimeDuration */ bool ATDurationOrDerivedImpl::isDayTimeDuration() const { return _durationType == DAY_TIME_DURATION; } /* returns true if this duration is an instance of a xdt:yearMonthDuration */ bool ATDurationOrDerivedImpl::isYearMonthDuration() const { return _durationType == YEAR_MONTH_DURATION; } /* returns true if the two objects have the same boolean value * false otherwise */ bool ATDurationOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { switch(target->getPrimitiveTypeIndex()) { case DAY_TIME_DURATION: case YEAR_MONTH_DURATION: case DURATION: { return compare((const ATDurationOrDerived*)target.get(), context) == 0; } default: XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return false; } int ATDurationOrDerivedImpl::compare(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { const ATDurationOrDerivedImpl* otherImpl = (const ATDurationOrDerivedImpl*)other.get(); int cmp = _isPositive - otherImpl->_isPositive; if(cmp != 0) return cmp; cmp = _months.compare(otherImpl->_months) * (_isPositive ? 1 : -1); if(cmp != 0) return cmp; return _seconds.compare(otherImpl->_seconds) * (_isPositive ? 1 : -1); } static inline ATDurationOrDerived::Ptr newDayTimeDuration(const Numeric::Ptr &valueSeconds, const DynamicContext* context) { if(valueSeconds->getState() != Numeric::NUM && valueSeconds->getState() != Numeric::NEG_NUM) XQThrow2(::IllegalArgumentException,X("newDayTimeDuration"), X("Overflow in duration operation [err:FODT0002]")); return context->getItemFactory()->createDayTimeDuration(valueSeconds->asMAPM(), context); } static inline ATDurationOrDerived::Ptr newYearMonthDuration(const Numeric::Ptr &valueMonth, const DynamicContext* context) { if(valueMonth->getState() != Numeric::NUM && valueMonth->getState() != Numeric::NEG_NUM) XQThrow2(::IllegalArgumentException,X("newYearMonthDuration"), X("Overflow in duration operation [err:FODT0002]")); return context->getItemFactory()->createYearMonthDuration(valueMonth->asMAPM(), context); } /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::divide(const Numeric::Ptr &divisor, const DynamicContext* context) const { if(divisor->isNaN()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("Cannot divide a duration by NaN [err:FOCA0005].")); if(divisor->isZero()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("Overflow in duration operation [err:FODT0002]")); if(_durationType == DAY_TIME_DURATION) { return newDayTimeDuration(asSeconds(context)->divide(divisor, context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return newYearMonthDuration(asMonths(context)->divide(divisor, context)->round(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("divide operator for given types not supported")); } } /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const { if(_durationType == DAY_TIME_DURATION) { return this->asSeconds(context)->divide(divisor->asSeconds(context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return this->asMonths(context)->divide(divisor->asMonths(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("divide operator for given types not supported")); } } AnyAtomicType::AtomicObjectType ATDurationOrDerivedImpl::getPrimitiveTypeIndex() const { return _durationType; } /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::multiply(const Numeric::Ptr &multiplier, const DynamicContext* context) const { if(multiplier->isNaN()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::multiply"), X("Cannot multiply a duration by NaN [err:FOCA0005].")); if(_durationType == DAY_TIME_DURATION) { return newDayTimeDuration(asSeconds(context)->multiply(multiplier, context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return newYearMonthDuration(asMonths(context)->multiply(multiplier, context)->round(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::multiply"), X("multiply operator for given types not supported")); } } /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { if(this->isDayTimeDuration() && ((const ATDurationOrDerived*)other)->isDayTimeDuration()) { return newDayTimeDuration(asSeconds(context)->add(other->asSeconds(context), context), context); } else if(this->isYearMonthDuration() && ((const ATDurationOrDerived*)other)->isYearMonthDuration() ) { return newYearMonthDuration(asMonths(context)->add(other->asMonths(context), context), context); } else { XQThrow2(::IllegalArgumentException, X("ATDurationOrDerivedImpl::add"), X("add operation not supported for given types")); } } /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { if(this->isDayTimeDuration() && ((const ATDurationOrDerived*)other)->isDayTimeDuration()) { return newDayTimeDuration(asSeconds(context)->subtract(other->asSeconds(context), context), context); } else if(this->isYearMonthDuration() && ((const ATDurationOrDerived*)other)->isYearMonthDuration() ) { return newYearMonthDuration(asMonths(context)->subtract(other->asMonths(context), context), context); } else { XQThrow2(::IllegalArgumentException, X("ATDurationOrDerivedImpl::subtract"), X("subtract operation not supported for given types")); } } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getYears(const DynamicContext* context) const { MAPM result = _months.integer_divide(12); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getMonths(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_months, 12); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getDays(const DynamicContext* context) const { MAPM result = _seconds.integer_divide(DateUtils::g_secondsPerDay); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getHours(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getMinutes(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getSeconds(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } bool ATDurationOrDerivedImpl::isNegative() const { return !_isPositive; } /* return this duration in forms of seconds -- only for dayTimeDuration */ ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::asSeconds(const DynamicContext* context) const { MAPM result = _seconds; if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::asMonths(const DynamicContext* context) const { MAPM result = _months; if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } void ATDurationOrDerivedImpl::setDuration(const XMLCh* const s) { parseDuration(s, _months, _seconds); } void ATDurationOrDerivedImpl::parseDuration(const XMLCh *const s, MAPM &months, MAPM &seconds) { unsigned int length = XPath2Utils::uintStrlen(s); if(s == 0) { XQThrow2(XPath2TypeCastException,X("XSDurationImpl::setDuration"), X("Invalid representation of duration [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; bool stop = false; bool Texist = false; unsigned int pos = 0; long int tmpnum = 0; double decplace = 1; double tmpdec = 0; // defaulting values bool isPositive = true; MAPM year = 0; MAPM month = 0; MAPM day = 0; MAPM hour = 0; MAPM minute = 0; MAPM sec = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour / 4 = minutes / 5 = sec XMLCh tmpChar; bool wrongformat = false; // check initial 'negative' sign and the P character if ( length > 1 && s[0] == L'-' && s[1] == L'P' ) { isPositive = false; pos = 2; } else if ( length > 1 && s[0] == L'P' ) { isPositive = true; pos = 1; } else { wrongformat = true; } while ( ! wrongformat && !stop && pos < length) { tmpChar = s[pos]; pos++; switch(tmpChar) { // a dot, only will occur when parsing the second case L'.': { if (! gotDot && gotDigit) { gotDot = true; sec = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot ) { decplace *= 10; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'Y' : { if ( state == 0 && gotDigit && !gotDot ) { year = tmpnum; state = 1; tmpnum = 0; gotDigit = false; } else { wrongformat = true; } break; } case L'M' : { if ( gotDigit) { if ( state < 4 && Texist && !gotDot) { minute = tmpnum; state = 4; gotDigit = false; tmpnum = 0; break; } else if ( state < 2 && ! Texist && !gotDot) { month = tmpnum; state = 1; gotDigit = false; tmpnum = 0; break; } } wrongformat = true; break; } case L'D' : { if ( state < 2 && gotDigit && !gotDot) { day = tmpnum; state = 2; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'T' : { if ( state < 3 && !gotDigit && !gotDot) { Texist = true; } else { wrongformat = true; } break; } case L'H' : { if ( state < 3 && gotDigit && Texist && !gotDot) { hour = tmpnum; state = 3; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'S' : { if ( state < 5 && gotDigit && Texist) { tmpdec = tmpnum / decplace; sec += tmpdec; state = 5; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } // check duration format if ( wrongformat || (Texist && state < 3) || gotDigit) { XQThrow2(XPath2TypeCastException,X("ATDurationOrDerivedImpl::setDuration"), X("Invalid representation of duration [err:FORG0001]")); } months = year * 12 + month; seconds = day * DateUtils::g_secondsPerDay + hour * DateUtils::g_secondsPerHour + minute * DateUtils::g_secondsPerMinute + sec; if(!isPositive) { months = months.neg(); seconds = seconds.neg(); } } XQilla-2.3.4/src/items/impl/ATGMonthDayOrDerivedImpl.cpp0000644001725400016040000002255713273140037017734 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGMonthDayOrDerivedImpl:: ATGMonthDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGMonthDayOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGMonthDay(value); } void *ATGMonthDayOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGMonthDayOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGMonthDayOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_MONTHDAY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGMonthDayOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGMonthDayOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGMonthDayOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_MONTH_DAY; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGMonthDayOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(_DD, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &MM, const MAPM &DD, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DD, MM, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGMonthDayOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_MM, _DD, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing * components of $arg1 and $arg2 from an xs:dateTime template such as 1972-xx-xxT00:00:00. Returns false otherwise. */ bool ATGMonthDayOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGMonthDayOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGMonthDayOrDerived *)target.get(), context) == 0; } int ATGMonthDayOrDerivedImpl::compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGMonthDayOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGMonthDayOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGMonthDayOrDerived::Ptr ATGMonthDayOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(_DD, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGMonthDayOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGMonthDayOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gMonthDay */ void ATGMonthDayOrDerivedImpl::setGMonthDay(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("XSGMonthDayImpl::setGMonthDay"), X("Invalid representation of gMonthDay [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; // defaulting values MAPM MM = 0; MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; // format : --MM-DD([+/-]hh:mm) bool wrongformat = false; if ( length < 7 || value[0] != L'-' || value[1] != L'-' || value[4] != L'-') { wrongformat = true; }else { pos = 2; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; numDigit ++; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit == 2 ) { MM = tmpnum; tmpnum = 0; gotDigit = false; pos = 5; numDigit = 0; } else if (state == 1 && numDigit == 2) { DD = tmpnum; state = 5; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } state ++; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 && numDigit == 2 ) { DD = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 1 && numDigit == 2) { DD = tmpnum; }else { wrongformat = true; } } // check time format if ( MM > 12 || DD > 31 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if (wrongformat) { XQThrow2(XPath2TypeCastException,X("XSGMonthDayImpl::setGMonthDay"), X("Invalid representation of gMonthDay [err:FORG0001]")); } // Create Timezone object, clean this up in future timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _MM = MM; _DD = DD; } MAPM ATGMonthDayOrDerivedImpl::parseGMonthDay(const XMLCh* const value, const MAPM &implicitTimezone) { ATGMonthDayOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._MM, dt._DD, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/impl/ATBase64BinaryOrDerivedImpl.cpp0000644001725400016040000001444413273140037020267 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATBase64BinaryOrDerivedImpl.hpp" #include "ATHexBinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #if _XERCES_VERSION >= 30000 typedef XMLSize_t stringLen_t; #else typedef unsigned int stringLen_t; #endif ATBase64BinaryOrDerivedImpl:: ATBase64BinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI){ // check if it's a valid base64 sequence, and then make it canonical by stripping whitespace MemoryManager* mm = context->getMemoryManager(); stringLen_t srcLen = XMLString::stringLen(value); XMLByte *dataInByte = (XMLByte*) mm->allocate((srcLen+1) * sizeof(XMLByte)); ArrayJanitor janFill(dataInByte, mm); stringLen_t i; for (i = 0; i < srcLen; i++) dataInByte[i] = (XMLByte)value[i]; dataInByte[srcLen] = 0; stringLen_t length=0, outLength=0; AutoDeallocate decodedBinary(Base64::decode(dataInByte, &length, mm, Base64::Conf_Schema), mm); AutoDeallocate encodedBase64(Base64::encode(decodedBinary, length, &outLength, mm), mm); _base64Data = (XMLCh*) mm->allocate((outLength+1) * sizeof(XMLCh)); XMLCh* cursor=_base64Data; for (i = 0; i < outLength; i++) if(!XMLChar1_0::isWhitespace(encodedBase64[i])) *cursor++ = encodedBase64[i]; *cursor = 0; } void *ATBase64BinaryOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ const XMLCh* ATBase64BinaryOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATBase64BinaryOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_BASE64BINARY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATBase64BinaryOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATBase64BinaryOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerivedImpl::getTypeIndex() { return AnyAtomicType::BASE_64_BINARY; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATBase64BinaryOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { static const XMLCh hexDigits[]={ chDigit_0, chDigit_1, chDigit_2, chDigit_3, chDigit_4, chDigit_5, chDigit_6, chDigit_7, chDigit_8, chDigit_9, chLatin_A, chLatin_B, chLatin_C, chLatin_D, chLatin_E, chLatin_F }; switch(targetIndex) { case HEX_BINARY: { stringLen_t srcLen = XMLString::stringLen(_base64Data); XMLByte *dataInByte = (XMLByte*) context->getMemoryManager()->allocate((srcLen+1) * sizeof(XMLByte)); ArrayJanitor janFill(dataInByte, context->getMemoryManager()); stringLen_t i; for (i = 0; i < srcLen; i++) dataInByte[i] = (XMLByte)_base64Data[i]; dataInByte[srcLen] = 0; stringLen_t length=0; AutoDeallocate decodedBinary(Base64::decode(dataInByte, &length, context->getMemoryManager(), Base64::Conf_Schema), context->getMemoryManager()); XMLBuffer buf(length*2, context->getMemoryManager()); for(i=0;igetPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATBase64BinaryOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATBase64BinaryOrDerived *)target.get(), context) == 0; } int ATBase64BinaryOrDerivedImpl::compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const { return XPath2Utils::compare(_base64Data, ((const ATBase64BinaryOrDerivedImpl *)other.get())->_base64Data); } AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATHexBinaryOrDerivedImpl.hpp0000644001725400016040000000560513273140037017773 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATHEXBINARYORDERIVEDIMPL_HPP #define _ATHEXBINARYORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATHexBinaryOrDerivedImpl : public ATHexBinaryOrDerived { public: /* constructor */ ATHexBinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this hexBinary*/ const XMLCh* _hexBinaryData; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATHEXBINARYORDERIVEDIMPL_HPP XQilla-2.3.4/src/items/impl/ATHexBinaryOrDerivedImpl.cpp0000644001725400016040000001272213273140037017764 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATHexBinaryOrDerivedImpl.hpp" #include "ATBase64BinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #if _XERCES_VERSION >= 30000 typedef XMLSize_t stringLen_t; #else typedef unsigned int stringLen_t; #endif ATHexBinaryOrDerivedImpl:: ATHexBinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATHexBinaryOrDerived(), _typeName(typeName), _typeURI(typeURI) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::upperCase(tempValue); _hexBinaryData = context->getMemoryManager()->getPooledString(tempValue); #if _XERCES_VERSION >= 30000 XMLString::release(&tempValue, context->getMemoryManager()); #else XMLString::release((void**)&tempValue, context->getMemoryManager()); #endif } void *ATHexBinaryOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATHexBinaryOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATHexBinaryOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_HEXBINARY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATHexBinaryOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATHexBinaryOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATHexBinaryOrDerivedImpl::getTypeIndex() { return AnyAtomicType::HEX_BINARY; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATHexBinaryOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch(targetIndex) { case BASE_64_BINARY: { XMLByte* binData=HexBin::decodeToXMLByte(_hexBinaryData, context->getMemoryManager()); stringLen_t length=0; XMLByte* base64Data=Base64::encode(binData, XMLString::stringLen(_hexBinaryData)/2, &length, context->getMemoryManager()); XMLCh* uniBase64=(XMLCh*)context->getMemoryManager()->allocate((length+1)*sizeof(XMLCh)); stringLen_t i; for(i=0;igetMemoryManager()); if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_BASE64BINARY; } ATBase64BinaryOrDerivedImpl* retVal=new ATBase64BinaryOrDerivedImpl(targetURI, targetType, uniBase64, context); context->getMemoryManager()->deallocate(uniBase64); context->getMemoryManager()->deallocate(binData); context->getMemoryManager()->deallocate(base64Data); return retVal; } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATHexBinaryOrDerivedImpl::asString(const DynamicContext* context) const { return _hexBinaryData; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATHexBinaryOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATHexBinaryOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATHexBinaryOrDerived *)target.get(), context) == 0; } int ATHexBinaryOrDerivedImpl::compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const { return XPath2Utils::compare(_hexBinaryData, ((const ATHexBinaryOrDerivedImpl *)other.get())->_hexBinaryData); } AnyAtomicType::AtomicObjectType ATHexBinaryOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATUntypedAtomicImpl.cpp0000644001725400016040000001053613273140037017055 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATUntypedAtomicImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; // We ignore the type URI and typeName passed in, since they are always xdt:untypedAtomic // (you cannot derived from it) ATUntypedAtomicImpl:: ATUntypedAtomicImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context): ATUntypedAtomic() { _value = context->getMemoryManager()->getPooledString(value); } void *ATUntypedAtomicImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATUntypedAtomicImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATUntypedAtomicImpl::getPrimitiveName() { return ATUntypedAtomic::fgDT_UNTYPEDATOMIC; } /* Get the namespace uri of the primitive type (basic type) of this type */ const XMLCh* ATUntypedAtomicImpl::getPrimitiveTypeURI() const{ return SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } /* Get the name of this type (ie "integer" for xs:integer)-- * same as the primitive type name. UntypedAtomic cannot be * extended */ const XMLCh* ATUntypedAtomicImpl::getTypeName() const { return getPrimitiveTypeName(); } /* Get the namespace URI for this type -- same as the primitive uri * UntypedAtomic cannot be extended */ const XMLCh* ATUntypedAtomicImpl::getTypeURI() const { return getPrimitiveTypeURI(); } AnyAtomicType::AtomicObjectType ATUntypedAtomicImpl::getTypeIndex() { return AnyAtomicType::UNTYPED_ATOMIC; } AnyAtomicType::Ptr ATUntypedAtomicImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATUntypedAtomicImpl::asString(const DynamicContext* context) const { return _value; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATUntypedAtomicImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATUntypedAtomicImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATUntypedAtomicImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.4/src/items/impl/ATGYearMonthOrDerivedImpl.cpp0000644001725400016040000002166413273140037020115 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGYearMonthOrDerivedImpl:: ATGYearMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGYearMonthOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGYearMonth(value); } void *ATGYearMonthOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGYearMonthOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATGYearMonthOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_YEARMONTH; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGYearMonthOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGYearMonthOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGYearMonthOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_YEAR_MONTH; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGYearMonthOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); if( _hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &YY, const MAPM &MM, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DateUtils::maximumDayInMonthFor(YY, MM), MM, YY) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGYearMonthOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_YY, _MM, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of $arg1 and $arg2 compare equal. * The starting instants of $arg1 and $arg2 are calculated by adding the missing components of $arg1 and $arg2 from * the xs:dateTime template xxxx-xx-ddT00:00:00 where dd represents the last day of the month component in $arg1 or $arg2. * Returns false otherwise. */ bool ATGYearMonthOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGYearMonthOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGYearMonthOrDerived *)target.get(), context) == 0; } int ATGYearMonthOrDerivedImpl::compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGYearMonthOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGYearMonthOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGYearMonthOrDerived::Ptr ATGYearMonthOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGYearMonthOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGYearMonthOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gYearMonth */ void ATGYearMonthOrDerivedImpl::setGYearMonth(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGYearMonthOrDerivedImpl::setGYearMonth"), X("Invalid representation of gYearMonth [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 0; MAPM MM = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && value[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4) { YY = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; _hasTimezone = true; zonepos = false; state = 5; numDigit = 0; } else { wrongformat = true; } state ++; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (negative) { YY = YY * -1; } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; } else if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; } else { wrongformat = true; } } // check time format if ( MM > 12 || zonehh > 24 || zonemm > 60 || YY == 0 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGYearMonthOrDerivedImpl::setGYearMonth"), X("Invalid representation of gYearMonth [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _MM = MM; _YY = YY; } MAPM ATGYearMonthOrDerivedImpl::parseGYearMonth(const XMLCh* const value, const MAPM &implicitTimezone) { ATGYearMonthOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._YY, dt._MM, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/impl/ATAnyURIOrDerivedImpl.hpp0000644001725400016040000000520313273140037017203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYURIORDERIVEDIMPL_HPP #define _ATANYURIORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATAnyURIOrDerivedImpl : public ATAnyURIOrDerived { public: /* constructor */ ATAnyURIOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _uri; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATANYURIORDERIVEDIMPL_HPP XQilla-2.3.4/src/items/impl/ATGDayOrDerivedImpl.cpp0000644001725400016040000002227113273140037016717 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGDayOrDerivedImpl:: ATGDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGDayOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGDay(value); } void *ATGDayOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGDayOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGDayOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DAY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGDayOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGDayOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGDayOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_DAY; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGDayOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gDay, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &DD, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DD, 12, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGDayOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_gDay, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing * components of $arg1 and $arg2 from an xs:dateTime template such as 1972-12-xxT00:00:00. Returns false otherwise. */ bool ATGDayOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGDayOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGDayOrDerived *)target.get(), context) == 0; } int ATGDayOrDerivedImpl::compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGDayOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGDayOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGDayOrDerived::Ptr ATGDayOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gDay, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGDayOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGDayOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gDay */ void ATGDayOrDerivedImpl::setGDay(const XMLCh* const value) { if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGDayOrDerivedImpl::setGDay"), X("Invalid representation of gDay [err:FORG0001]")); } unsigned int length = XPath2Utils::uintStrlen(value); // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; // defaulting values MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length < 5 || value[0] != L'-' || value[1] != L'-' || value[2] != L'-') { wrongformat = true; }else{ pos = 3; state = 1; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L':' : { if (gotDigit && state == 6 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; }else { wrongformat = true; } break; } case L'-' : { if ( gotDigit && state == 1 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; } else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 ) { DD = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 ) { zonemm = tmpnum; }else if ( gotDigit && state == 1 ) { DD = tmpnum; }else { wrongformat = true; } } // check time format if ( DD > 31 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGDayOrDerivedImpl::setGDay"), X("Invalid representation of gDay [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _gDay = DD; } MAPM ATGDayOrDerivedImpl::parseGDay(const XMLCh* const value, const MAPM &implicitTimezone) { ATGDayOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._gDay, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.4/src/items/DatatypeLookup.cpp0000644001725400016040000002720513273140037015226 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include "DatatypeFactoryTemplate.hpp" #include #include "impl/ATAnyURIOrDerivedImpl.hpp" #include "impl/ATAnySimpleTypeImpl.hpp" #include "impl/ATBase64BinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include "impl/ATHexBinaryOrDerivedImpl.hpp" #include "impl/ATNotationOrDerivedImpl.hpp" #include #include "impl/ATStringOrDerivedImpl.hpp" #include #include "impl/ATUntypedAtomicImpl.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DatatypeLookup::DatatypeLookup(const DocumentCache* dc, MemoryManager* memMgr) : fDatatypeTable(30, false, memMgr), fDocumentCache(dc), fMemMgr(memMgr) { // create a xs:anySimpleType anySimpleType_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(anySimpleType_); // create a xs:anyURI anyURI_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(anyURI_); // create a xs:base64Binary base64Binary_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(base64Binary_); // create a xs:boolean boolean_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(boolean_); // create a xs:date date_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(date_); // create a xs:dateTime dateTime_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(dateTime_); // create a xdt:dayTimeDuration dayTimeDuration_ = new (fMemMgr) DayTimeDurationDatatypeFactory(fDocumentCache); insertDatatype(dayTimeDuration_); // create a xs:decimal decimal_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(decimal_); // create a xs:double double_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(double_); // create a xs:duration duration_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(duration_); // create a xs:float float_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(float_); // create a xs:gDay gDay_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gDay_); // create a xs:gMonth gMonth_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gMonth_); // create a xs:gMonthDay gMonthDay_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gMonthDay_); // create a xs:gYear gYear_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gYear_); // create a xs:gYearMonth gYearMonth_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gYearMonth_); // create a xs:hexBinary hexBinary_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(hexBinary_); // create a xs:NOTATION notation_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(notation_); // create a xs:QName qname_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(qname_); // create a xs:string string_ = new (fMemMgr) StringDatatypeFactory(fDocumentCache); insertDatatype(string_); // create a xs:time time_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(time_); // create a xdt:yearMonthDuration yearMonthDuration_ = new (fMemMgr) YearMonthDurationDatatypeFactory(fDocumentCache); insertDatatype(yearMonthDuration_); // create a xdt:untypedAtomic untypedAtomic_ = new (fMemMgr) StringDatatypeFactory(fDocumentCache); insertDatatype(untypedAtomic_); } DatatypeLookup::~DatatypeLookup() { fMemMgr->deallocate(anySimpleType_); fMemMgr->deallocate(anyURI_); fMemMgr->deallocate(base64Binary_); fMemMgr->deallocate(boolean_); fMemMgr->deallocate(date_); fMemMgr->deallocate(dateTime_); fMemMgr->deallocate(dayTimeDuration_); fMemMgr->deallocate(decimal_); fMemMgr->deallocate(double_); fMemMgr->deallocate(duration_); fMemMgr->deallocate(float_); fMemMgr->deallocate(gDay_); fMemMgr->deallocate(gMonth_); fMemMgr->deallocate(gMonthDay_); fMemMgr->deallocate(gYear_); fMemMgr->deallocate(gYearMonth_); fMemMgr->deallocate(hexBinary_); fMemMgr->deallocate(notation_); fMemMgr->deallocate(qname_); fMemMgr->deallocate(string_); fMemMgr->deallocate(time_); fMemMgr->deallocate(yearMonthDuration_); fMemMgr->deallocate(untypedAtomic_); } void DatatypeLookup::insertDatatype(DatatypeFactory *datatype) { fDatatypeTable.put((void*)datatype->getPrimitiveTypeName(),datatype); } const DatatypeFactory* DatatypeLookup::lookupDatatype(AnyAtomicType::AtomicObjectType typeIndex) const { switch(typeIndex) { case AnyAtomicType::ANY_SIMPLE_TYPE: return anySimpleType_; case AnyAtomicType::ANY_URI: return anyURI_; case AnyAtomicType::BASE_64_BINARY: return base64Binary_; case AnyAtomicType::BOOLEAN: return boolean_; case AnyAtomicType::DATE: return date_; case AnyAtomicType::DATE_TIME: return dateTime_; case AnyAtomicType::DAY_TIME_DURATION: return dayTimeDuration_; case AnyAtomicType::DECIMAL: return decimal_; case AnyAtomicType::DOUBLE: return double_; case AnyAtomicType::DURATION: return duration_; case AnyAtomicType::FLOAT: return float_; case AnyAtomicType::G_DAY: return gDay_; case AnyAtomicType::G_MONTH: return gMonth_; case AnyAtomicType::G_MONTH_DAY: return gMonthDay_; case AnyAtomicType::G_YEAR: return gYear_; case AnyAtomicType::G_YEAR_MONTH: return gYearMonth_; case AnyAtomicType::HEX_BINARY: return hexBinary_; case AnyAtomicType::NOTATION: return notation_; case AnyAtomicType::QNAME: return qname_; case AnyAtomicType::STRING: return string_; case AnyAtomicType::TIME: return time_; case AnyAtomicType::UNTYPED_ATOMIC: return untypedAtomic_; case AnyAtomicType::YEAR_MONTH_DURATION: return yearMonthDuration_; default: break; } return 0; } const DatatypeFactory* DatatypeLookup::lookupDatatype(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const { const DatatypeFactory* pFactory=fDatatypeTable.get((void*)typeName); // in case we're lucky and we were given a primitive type if (pFactory) { if(XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { isPrimitive = true; return pFactory; } } isPrimitive = false; const DatatypeValidator* validator = fDocumentCache->getDatatypeValidator(typeURI, typeName); const DatatypeValidator* previousValidator = 0; while(validator) { const DatatypeValidator* tempVal = validator->getBaseValidator(); if(!tempVal) break; previousValidator = validator; validator = tempVal; } if(validator) { pFactory = fDatatypeTable.get((void*)validator->getTypeLocalName()); if(pFactory) { if(pFactory->getPrimitiveTypeIndex() == AnyAtomicType::DURATION && previousValidator != 0) { // Find a more specific type for duration, if possible const DatatypeFactory *tmp = fDatatypeTable.get((void*)previousValidator->getTypeLocalName()); if(tmp) pFactory = tmp; } return pFactory; } } XMLBuffer buf(1023, fMemMgr); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found [err:XPST0051]")); XQThrow2(TypeNotFoundException, X("DatatypeLookup::lookupDatatype"), buf.getRawBuffer()); } DatatypeFactory *DatatypeLookup::getAnySimpleTypeFactory() const { return anySimpleType_; } DatatypeFactory *DatatypeLookup::getAnyURIFactory() const { return anyURI_; } DatatypeFactory *DatatypeLookup::getBase64BinaryFactory() const { return base64Binary_; } DatatypeFactory *DatatypeLookup::getBooleanFactory() const { return boolean_; } DatatypeFactory *DatatypeLookup::getDateFactory() const { return date_; } DatatypeFactory *DatatypeLookup::getDateTimeFactory() const { return dateTime_; } DatatypeFactory *DatatypeLookup::getDayTimeDurationFactory() const { return dayTimeDuration_; } DatatypeFactory *DatatypeLookup::getDecimalFactory() const { return decimal_; } DatatypeFactory *DatatypeLookup::getDoubleFactory() const { return double_; } DatatypeFactory *DatatypeLookup::getDurationFactory() const { return duration_; } DatatypeFactory *DatatypeLookup::getFloatFactory() const { return float_; } DatatypeFactory *DatatypeLookup::getGDayFactory() const { return gDay_; } DatatypeFactory *DatatypeLookup::getGMonthFactory() const { return gMonth_; } DatatypeFactory *DatatypeLookup::getGMonthDayFactory() const { return gMonthDay_; } DatatypeFactory *DatatypeLookup::getGYearFactory() const { return gYear_; } DatatypeFactory *DatatypeLookup::getGYearMonthFactory() const { return gYearMonth_; } DatatypeFactory *DatatypeLookup::getHexBinaryFactory() const { return hexBinary_; } DatatypeFactory *DatatypeLookup::getNotationFactory() const { return notation_; } DatatypeFactory *DatatypeLookup::getQNameFactory() const { return qname_; } DatatypeFactory *DatatypeLookup::getStringFactory() const { return string_; } DatatypeFactory *DatatypeLookup::getTimeFactory() const { return time_; } DatatypeFactory *DatatypeLookup::getYearMonthDurationFactory() const { return yearMonthDuration_; } DatatypeFactory *DatatypeLookup::getUntypedAtomicFactory() const { return untypedAtomic_; } XQilla-2.3.4/src/items/DatatypeFactoryTemplate.hpp0000644001725400016040000001046713273140037017067 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Factory template class for Datatypes */ #ifndef _DatatypeFactoryTemplate_HPP #define _DatatypeFactoryTemplate_HPP #include #include #include #include #include "impl/ATStringOrDerivedImpl.hpp" class AnyAtomicType; ///used to facilitate the creation of datatypes template class DatatypeFactoryTemplate : public DatatypeFactory { public: DatatypeFactoryTemplate(const DocumentCache* dc) : DatatypeFactory(dc, const_cast (dc->getDatatypeValidator(getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::Ptr createInstanceNoCheck(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const { return new TYPE(typeURI, typeName, value, context); } AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return TYPE::getTypeIndex(); } virtual const XMLCh* getPrimitiveTypeURI() const { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } const XMLCh* getPrimitiveTypeName() const { return TYPE::getPrimitiveName(); } protected: DatatypeFactoryTemplate(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *val) : DatatypeFactory(dc, val) {} }; template class StringDatatypeFactory : public DatatypeFactoryTemplate { public: StringDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc) {} AnyAtomicType::Ptr createInstance(const XMLCh* value, const DynamicContext* context) const { return this->createInstanceNoCheck(DatatypeFactoryTemplate::getPrimitiveTypeURI(), DatatypeFactoryTemplate::getPrimitiveTypeName(), value, context); } bool checkInstance(const XMLCh* value, const StaticContext* context) const { return true; } }; template class DayTimeDurationDatatypeFactory : public DatatypeFactoryTemplate { public: DayTimeDurationDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc, const_cast (dc->getDatatypeValidator(DatatypeFactoryTemplate::getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return AnyAtomicType::DAY_TIME_DURATION; } const XMLCh* getPrimitiveTypeName() const { return ATDurationOrDerived::fgDT_DAYTIMEDURATION; } }; template class YearMonthDurationDatatypeFactory : public DatatypeFactoryTemplate { public: YearMonthDurationDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc, const_cast (dc->getDatatypeValidator(DatatypeFactoryTemplate::getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return AnyAtomicType::YEAR_MONTH_DURATION; } const XMLCh* getPrimitiveTypeName() const { return ATDurationOrDerived::fgDT_YEARMONTHDURATION; } }; #endif // _DatatypeFactoryTemplate_HPP XQilla-2.3.4/src/items/Timezone.cpp0000644001725400016040000000655513273140037014060 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include #include static const int g_maxHour = 14; Timezone::Timezone(const MAPM &seconds) : seconds_(seconds) { validate(seconds_); } Timezone::Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context) : seconds_(duration->asSeconds(context)->asMAPM()) { validate(seconds_); } MAPM Timezone::convert(bool positive, int hour, int minute) { return (hour * DateUtils::g_secondsPerHour + minute * DateUtils::g_secondsPerMinute) * (positive ? +1 : -1); } void Timezone::validate(const MAPM &tz) { // Check that we have a valid timezone if(tz.abs() > (g_maxHour * DateUtils::g_secondsPerHour)) { XQThrow2(XPath2TypeCastException ,X("Timezone::Timezone"), X("Timezone outside of valid range created [err:FODT0003].")); } if(tz.rem(DateUtils::g_secondsPerMinute).sign() != 0) { XQThrow2(XPath2TypeCastException ,X("Timezone::Timezone"), X("Timezone must have an integral number of minutes [err:FODT0003].")); } } bool Timezone::equals(const Timezone::Ptr &other) const { return seconds_ == other->seconds_; } ATDurationOrDerived::Ptr Timezone::asDayTimeDuration(const DynamicContext* context) const { return context->getItemFactory()->createDayTimeDuration(seconds_, context); } const XMLCh* Timezone::asString(const DynamicContext* context) const { if(seconds_.sign() == 0) return XPath2Utils::asStr(XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Z,context->getMemoryManager()); MAPM hours, minutes; seconds_.integer_div_rem(DateUtils::g_secondsPerHour, hours, minutes); minutes = minutes.integer_divide(DateUtils::g_secondsPerMinute); XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer buffer(1023, context->getMemoryManager()); if(seconds_.sign() > 0) buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chPlus); else { buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chDash); hours = hours.abs(); minutes = minutes.abs(); } DateUtils::formatNumber(hours,2,buffer); buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chColon); DateUtils::formatNumber(minutes,2,buffer); return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } XQilla-2.3.4/src/items/DateOrTimeType.cpp0000644001725400016040000000174013273140037015114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* is this type date or time based? Return true by default */ bool DateOrTimeType::isDateOrTimeTypeValue() const { return true; } XQilla-2.3.4/src/items/ATUntypedAtomic.cpp0000644001725400016040000000277713273140037015302 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* untypedAtomic */ const XMLCh ATUntypedAtomic::fgDT_UNTYPEDATOMIC[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_A, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.4/src/items/DatatypeFactory.cpp0000644001725400016040000001342313273140037015361 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DatatypeFactory::DatatypeFactory(const DocumentCache* dc, DatatypeValidator *baseValidator) : fBaseValidator(baseValidator), fDocumentCache(dc) { } DatatypeFactory::~DatatypeFactory() { } AnyAtomicType::Ptr DatatypeFactory::createInstance(const XMLCh* value, const DynamicContext* context) const { if(fBaseValidator->getWSFacet()==DatatypeValidator::COLLAPSE && !XMLString::isWSCollapsed(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::collapseWS(tempValue, context->getMemoryManager()); value=tempValue; } if(fBaseValidator->getWSFacet()==DatatypeValidator::REPLACE && !XMLString::isWSReplaced(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::replaceWS(tempValue, context->getMemoryManager()); value=tempValue; } try { fBaseValidator->validate(value, 0, context->getMemoryManager()); } catch (XMLException &e) { XQThrow2(InvalidLexicalSpaceException, X("DatatypeFactory::createInstance"), e.getMessage()); } return createInstanceNoCheck(getPrimitiveTypeURI(), getPrimitiveTypeName(), value, context); } AnyAtomicType::Ptr DatatypeFactory::createInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const { if(typeName == 0) return createInstance(value, context); DatatypeValidator* validator = const_cast(fDocumentCache->getDatatypeValidator(typeURI, typeName)); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("DatatypeFactoryTemplate::createInstance"), buf.getRawBuffer()); } if(validator->getWSFacet()==DatatypeValidator::COLLAPSE && !XMLString::isWSCollapsed(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::collapseWS(tempValue, context->getMemoryManager()); value=tempValue; } if(validator->getWSFacet()==DatatypeValidator::REPLACE && !XMLString::isWSReplaced(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::replaceWS(tempValue, context->getMemoryManager()); value=tempValue; } try { const XMLCh* valueToValidate=value; if(validator->getType()==DatatypeValidator::NOTATION) { const XMLCh* localPart = XPath2NSUtils::getLocalName(value); const XMLCh* prefix = XPath2NSUtils::getPrefix(value, context->getMemoryManager()); const XMLCh* uriStr = (prefix && *prefix) ? context->getUriBoundToPrefix(prefix, 0) : XMLUni::fgZeroLenString; XMLCh szColon[]={ chColon, chNull }; valueToValidate=XPath2Utils::concatStrings(uriStr, szColon, localPart, context->getMemoryManager()); } validator->validate(valueToValidate, 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("DatatypeFactory::createInstance"), buf.getRawBuffer()); } return createInstanceNoCheck(typeURI, typeName, value, context); } bool DatatypeFactory::checkInstance(const XMLCh* value, MemoryManager *mm) const { try { fBaseValidator->validate(value, 0, mm); } catch (XMLException &e) { return false; } return true; } bool DatatypeFactory::checkInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, MemoryManager *mm) const { DatatypeValidator* validator = const_cast(fDocumentCache->getDatatypeValidator(typeURI, typeName)); if(!validator) { XMLBuffer buf(1023, mm); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("DatatypeFactoryTemplate::createInstance"), buf.getRawBuffer()); } try { validator->validate(value, 0, mm); } catch (XMLException &e) { return false; } return true; } XQilla-2.3.4/src/items/Numeric.cpp0000644001725400016040000003263613273140037013667 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include // Added so xqilla will compile on SunOS 10 using STLPort #include #ifndef min #define min(a,b) ((a) < (b) ? (a) : (b)) #endif #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh Numeric::NaN_string[] = { chLatin_N, chLatin_a, chLatin_N, chNull }; const XMLCh Numeric::NAN_string[] = { chLatin_N, chLatin_A, chLatin_N, chNull }; const XMLCh Numeric::INF_string[] = { chLatin_I, chLatin_N, chLatin_F, chNull }; const XMLCh Numeric::NegINF_string[] = { chDash, chLatin_I, chLatin_N, chLatin_F, chNull }; const XMLCh Numeric::NegZero_string[] = { chDash, chDigit_0, chNull }; const XMLCh Numeric::PosZero_string[] = { chDigit_0, chNull }; void Numeric::checkFloatLimits(Numeric::State &state, MAPM &value) { if(state==NUM || state==NEG_NUM) { int exp=value.exponent(); if(exp>38 || (exp==38 && value.abs()>MAPM("3.4028235e+38"))) { state=(state==NEG_NUM)?NEG_INF:INF; value = MAPM(); } else if(exp<-38 || (exp==-38 && value.abs()308 || (exp==308 && value.abs()>MAPM("1.7976931348623157e+308"))) { state=(state==NEG_NUM)?NEG_INF:INF; value = MAPM(); } else if(exp<-308 || (exp==-308 && value.abs()getState(); MAPM value1 = num1->asMAPM(); Numeric::State state2 = num2->getState(); MAPM value2 = num2->asMAPM(); switch(num1->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: switch(num2->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: break; case AnyAtomicType::FLOAT: Numeric::checkFloatLimits(state1, value1); Numeric::checkFloatLimits(state2, value2); break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } break; case AnyAtomicType::FLOAT: switch(num2->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: Numeric::checkFloatLimits(state1, value1); Numeric::checkFloatLimits(state2, value2); break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } return compare(state1, value1, state2, value2); } int Numeric::compare(const Numeric::Ptr &other, const DynamicContext *context) const { return ::compare(getState(), asMAPM(), other->getState(), other->asMAPM()); } bool Numeric::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(!target->isNumericValue()) { XQThrow2(::IllegalArgumentException,X("Numeric::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } const Numeric *otherImpl = (const Numeric*)target.get(); if(getState() == NaN || otherImpl->getState() == NaN) return false; return typePromoteCompare(this, otherImpl) == 0; } /** Returns true if this is less than other, false otherwise */ bool Numeric::lessThan(const Numeric::Ptr &other, const DynamicContext* context) const { if(getState() == NaN || other->getState() == NaN) return false; return typePromoteCompare(this, other) < 0; } /** Returns true if this is greater than other, false otherwise */ bool Numeric::greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const { if(getState() == NaN || other->getState() == NaN) return false; return typePromoteCompare(this, other) > 0; } AnyAtomicType::Ptr Numeric::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch(targetIndex) { case DECIMAL: switch(getState()) { case NaN: case INF: case NEG_INF: XQThrow2(::IllegalArgumentException, X("Numeric::castAsInternal"), X("Special values like NaN, INF or -INF cannot be cast to decimal [err:FOCA0002]")); case NUM: case NEG_NUM: if(targetType != 0 && context->isTypeOrDerivedFromType(targetURI, targetType, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER)) { if(XPath2Utils::equals(targetType, SchemaSymbols::fgDT_INTEGER) && XPath2Utils::equals(targetURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return context->getItemFactory()->createInteger(isNegative() ? asMAPM().ceil() : asMAPM().floor(), context); } return context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, isNegative() ? asMAPM().ceil() : asMAPM().floor(), context); } else { if(targetType == 0) { return context->getItemFactory()->createDecimal(asMAPM(), context); } return context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, asMAPM(), context); } } case FLOAT: switch(getState()) { case NaN: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NaN_string, context); case INF: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, INF_string, context); case NEG_INF: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NegINF_string, context); case NEG_NUM: if(isZero()) { return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NegZero_string, context); } // Fall through case NUM: if(targetType == 0) { return context->getItemFactory()->createFloat(asMAPM(), context); } return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, asMAPM(), context); } case DOUBLE: switch(getState()) { case NaN: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NaN_string, context); case INF: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, INF_string, context); case NEG_INF: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NegINF_string, context); case NEG_NUM: if(isZero()) { return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NegZero_string, context); } // Fall through case NUM: if(targetType == 0) { return context->getItemFactory()->createDouble(asMAPM(), context); } return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, asMAPM(), context); } case BOOLEAN: if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_BOOLEAN; } if(isZero() || isNaN()) { return context->getItemFactory()->createBooleanOrDerived(targetURI, targetType, false, context); } else { return context->getItemFactory()->createBooleanOrDerived(targetURI, targetType, true, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } const XMLCh *Numeric::asDecimalString(int significantDigits, const StaticContext* context) const { return asDecimalString(asMAPM(), significantDigits, context); } const XMLCh *Numeric::asDecimalString(const MAPM &number, int significantDigits, const StaticContext* context) { // Init a buf with an array. Most of the time 1024 digits is enough for // decimals. So we only need malloc() in extreme case (huge decimal). char buf[1024]; char *obuf = buf; // Calculate the required buf size int bufSize = significantDigits + 1; if (bufSize < (number.significant_digits() + 1)) bufSize = (number.significant_digits() + 1); // Malloc a larger one as needed if (bufSize > sizeof(buf)) { obuf = (char *)malloc(bufSize); if (obuf == NULL) throw XQillaException(XQillaException::RUNTIME_ERR, X("Numeric::asDecimalString(): Out of memory")); } if(number.is_integer()) number.toIntegerString(obuf); else { number.toFixPtString(obuf, significantDigits); // Note in the canonical representation the decimal point is required // and there must be at least one digit to the right and one digit to // the left of the decimal point (which may be 0) if(strchr(obuf,'.')!=0) { // remove trailing 0's char* lastChar=obuf+strlen(obuf)-1; while(*lastChar=='0') { *lastChar--=0; } // remove decimal point, if there are no digits after it if(*lastChar=='.') *lastChar=0; } } const XMLCh* ret = context->getMemoryManager()->getPooledString(obuf); if (obuf != buf) // Free "obuf" if it has been malloced free(obuf); return ret; } const XMLCh *Numeric::asDoubleString(int significantDigits, const StaticContext* context) const { State state1 = getState(); MAPM value1 = asMAPM(); switch(getPrimitiveTypeIndex()) { case FLOAT: checkFloatLimits(state1, value1); break; case DOUBLE: checkDoubleLimits(state1, value1); break; default: break; } return asDoubleString(state1, value1, significantDigits, context); } const XMLCh *Numeric::asDoubleString(State state1, const MAPM &value1, int significantDigits, const StaticContext* context) { switch(state1) { case NaN: return NaN_string; case INF: return INF_string; case NEG_INF: return NegINF_string; case NEG_NUM: if(value1.sign() == 0) return NegZero_string; break; case NUM: if(value1.sign() == 0) return PosZero_string; break; } MAPM absVal = value1.abs(); MAPM lower("0.000001"), upper("1000000"); if(absVal < upper && absVal >= lower) { return asDecimalString(value1, significantDigits, context); } else { char obuf[1024]; if(significantDigits==7) { value1.toString(obuf, 25); double num=atof(obuf); sprintf(obuf, "%.*G", min(8,value1.significant_digits()), num); MAPM val=obuf; int precision = val.significant_digits() - 1; if(precision <= 0) precision = 1; val.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } else if(significantDigits==16) { value1.toString(obuf, 25); double num=atof(obuf); sprintf(obuf, "%.*G", min(17,value1.significant_digits()), num); MAPM val=obuf; int precision = val.significant_digits() - 1; if(precision <= 0) precision = 1; val.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } int precision = value1.significant_digits() - 1; if(precision > significantDigits) precision = significantDigits; if(precision <= 0) precision = 1; value1.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } return 0; } double Numeric::asDouble() const { switch(getState()) { case NaN: return std::numeric_limits::quiet_NaN(); case INF: return std::numeric_limits::infinity(); case NEG_INF: return -std::numeric_limits::infinity(); case NUM: case NEG_NUM: break; } return asMAPM().toDouble(); } int Numeric::asInt() const { return (int)asMAPM().toDouble(); } bool Numeric::isInteger() const { return asMAPM().is_integer(); } XQilla-2.3.4/src/items/ATDurationOrDerived.cpp0000644001725400016040000000710413273140037016073 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* dayTimeDuration */ const XMLCh ATDurationOrDerived::fgDT_DAYTIMEDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* */ const XMLCh ATDurationOrDerived::pattern_DT_DAYTIMEDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chCaret, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare,XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* yearMonthDuration */ const XMLCh ATDurationOrDerived::fgDT_YEARMONTHDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* */ const XMLCh ATDurationOrDerived::pattern_DT_YEARMONTHDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chCaret, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.4/src/items/Node.cpp0000644001725400016040000001173313273140037013145 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include const XMLCh Node::document_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e ,XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::element_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::attribute_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::text_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::processing_instruction_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::comment_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::namespace_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; bool Node::isAtomicValue() const { return false; } bool Node::isNode() const { return true; } bool Node::isFunction() const { return false; } void Node::typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const { buffer.append(dmNodeKind()); buffer.append('('); if(dmNodeKind() == element_string || dmNodeKind() == attribute_string) { ATQNameOrDerived::Ptr qname = dmNodeName(context); if(qname->getURI()) { buffer.append('{'); buffer.append(qname->getURI()); buffer.append('}'); } buffer.append(qname->getName()); buffer.append(','); buffer.append(' '); if(getTypeURI()) { buffer.append('{'); buffer.append(getTypeURI()); buffer.append('}'); } buffer.append(getTypeName()); } buffer.append(')'); } XQilla-2.3.4/src/items/Item.cpp0000644001725400016040000000242613273140037013155 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh Item::gXQilla[] = // Points to "XQilla" { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_X, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.4/src/samples/0000755001725400016040000000000013273141207012152 500000000000000XQilla-2.3.4/src/samples/xqilla/0000755001725400016040000000000013273141207013444 500000000000000XQilla-2.3.4/src/samples/xqilla/xqilla-commandline.cpp0000644001725400016040000003132213273140037017647 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include //XQilla includes #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; #define QUERY_BUFFER_SIZE 32 * 1024 #define BASEURI_BUFFER_SIZE 2 * 1024 //////////////////////////// // function declarations // //////////////////////////// /** Print usage */ void usage(const char *progname); class MessageListenerImpl : public MessageListener { public: virtual void warning(const XMLCh *message, const LocationInfo *location) { cerr << UTF8(location->getFile()) << ":" << location->getLine() << ":" << location->getColumn() << ": warning: " << UTF8(message) << endl; } virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) { cerr << UTF8(location->getFile()) << ":" << location->getLine() << ":" << location->getColumn() << ": trace: " << UTF8(label) << " "; size_t len = sequence.getLength(); if(len == 1) { cerr << UTF8(sequence.first()->asString(context)); } else if(len > 1) { cerr << "("; Sequence::const_iterator i = sequence.begin(); Sequence::const_iterator end = sequence.end(); while(i != end) { cerr << UTF8((*i)->asString(context)); if(++i != end) cerr << ","; } cerr << ")"; } cerr << endl; } }; class QueryStore { public: typedef vector::iterator iterator; typedef vector::const_iterator const_iterator; QueryStore() {} ~QueryStore() { for(iterator i = begin(); i != end(); ++i) delete *i; } void push_back(XQQuery *query) { queries_.push_back(query); } const XQQuery *back() const { return queries_.back(); } iterator begin() { return queries_.begin(); } iterator end() { return queries_.end(); } const_iterator begin() const { return queries_.begin(); } const_iterator end() const { return queries_.end(); } private: QueryStore(const QueryStore &); QueryStore &operator=(const QueryStore &); vector queries_; }; static const XMLCh fwdSlashStr[] = { '/', 0 }; struct CommandLineArgs { CommandLineArgs() : inputFile(0), outputFile(0), baseURIDir(0), conf(&fastConf), language(XQilla::XQUERY3), parseFlags(0), xpathCompatible(false), quiet(false), printAST(false), iDebug(false), numberOfTimes(1) { } void check(const char *progname) { if(queries.empty()) { usage(progname); exit(1); } if(iDebug) { if(queries.size() > 1) { cerr << "Only one query can be debugged in interactive debugging mode." << endl; exit(1); } if(numberOfTimes != 1) { cerr << "The query can only be run once in interactive debugging mode." << endl; exit(1); } } } vector queries; const char *inputFile, *outputFile, *baseURIDir; map externalVars; XQillaConfiguration *conf; int language; unsigned int parseFlags; bool xpathCompatible; bool quiet; bool printAST; bool iDebug; int numberOfTimes; static XercesConfiguration xercesConf; static FastXDMConfiguration fastConf; }; XercesConfiguration CommandLineArgs::xercesConf; FastXDMConfiguration CommandLineArgs::fastConf; int main(int argc, char *argv[]) { // First we parse the command line arguments CommandLineArgs args; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ // -h option, print usage if(argv[i][1] == 'h') { usage(argv[0]); return 0; } else if(argv[i][1] == 'i') { ++i; if(i==argc) { cerr << "Missing argument to option 'i'" << endl; return 1; } args.inputFile = argv[i]; } else if(argv[i][1] == 'b') { ++i; if(i==argc) { cerr << "Missing argument to option 'b'" << endl; return 1; } args.baseURIDir = argv[i]; } else if(argv[i][1] == 'o') { ++i; if(i==argc) { cerr << "Missing argument to option 'o'" << endl; return 1; } args.outputFile = argv[i]; } else if(argv[i][1] == 'n') { ++i; if(i==argc) { cerr << "Missing argument to option 'n'" << endl; return 1; } args.numberOfTimes = atoi(argv[i]); } else if(argv[i][1] == 'q') { args.quiet = true; } else if(argv[i][1] == 'f') { args.language |= XQilla::FULLTEXT; } else if(argv[i][1] == 'u') { args.language |= XQilla::UPDATE; args.conf = &CommandLineArgs::xercesConf; } else if(argv[i][1] == 'e') { args.language |= XQilla::EXTENSIONS; } else if(argv[i][1] == 'p') { args.language |= XQilla::XPATH2; } else if(argv[i][1] == 'P') { // You can't use xpath 1 compatibility in // XQuery mode. args.language |= XQilla::XPATH2; args.xpathCompatible = true; } else if(argv[i][1] == 's') { args.language |= XQilla::XSLT2; } else if(argv[i][1] == 't') { args.printAST = true; } else if(argv[i][1] == 'v') { ++i; if((i + 1) >= argc) { cerr << "Missing argument to option 'v'" << endl; return 1; } args.externalVars[argv[i]] = argv[i + 1]; ++i; } else if(argv[i][1] == 'x') { args.conf = &CommandLineArgs::xercesConf; } else if(argv[i][1] == 'd') { args.iDebug = true; args.parseFlags |= XQilla::DEBUG_QUERY; } else { usage(argv[0]); return 1; } } else { args.queries.push_back(argv[i]); } } // Check for bad command line arguments args.check(argv[0]); // Create the XQilla object XQilla xqilla; MessageListenerImpl mlistener; // Find the current working directory AutoDeallocate pwd(XMLPlatformUtils::getCurrentDirectory(), XMLPlatformUtils::fgMemoryManager); if(pwd.get() != NULL){ AutoDeallocate tmp(XMLPlatformUtils::fgMemoryManager, (XMLString::stringLen(pwd.get()) + 10) * sizeof(XMLCh)); XMLString::fixURI(pwd.get(), tmp.get()); XMLString::catString(tmp.get(), fwdSlashStr); pwd.set(tmp.adopt()); } int executionCount = 0; try { QueryStore parsedQueries; for(vector::iterator it1 = args.queries.begin(); it1 != args.queries.end(); ++it1) { Janitor contextGuard(xqilla.createContext((XQilla::Language)args.language, args.conf)); DynamicContext *context = contextGuard.get(); // the DynamicContext has set the baseURI to the current file // we override to a user-specified value, or to the same directory as the // query (current file) if(args.baseURIDir != NULL) { context->setBaseURI(X(args.baseURIDir)); } else { if(pwd.get() != NULL){ XMLUri base(pwd.get()); XMLUri resolved(&base, X(*it1)); context->setBaseURI(resolved.getUriText()); } } context->setXPath1CompatibilityMode(args.xpathCompatible); context->setMessageListener(&mlistener); parsedQueries.push_back(xqilla.parseFromURI(X(*it1), contextGuard.release(), args.parseFlags)); if(args.printAST) { cerr << parsedQueries.back()->getQueryPlan() << endl; } } for(int count = args.numberOfTimes; count > 0; --count) { for(QueryStore::const_iterator it2 = parsedQueries.begin(); it2 != parsedQueries.end(); ++it2) { Janitor dynamic_context((*it2)->createDynamicContext()); XPath2MemoryManager *mm = dynamic_context->getMemoryManager(); // Check if an XML file was specified if(args.inputFile != NULL) { Sequence seq; // Resolve the input file relative to the current working directory, not the query if(pwd.get() != NULL){ XMLUri base(pwd.get()); XMLUri resolved(&base, X(args.inputFile)); seq = dynamic_context->resolveDocument(resolved.getUriText(), 0); } else { seq = dynamic_context->resolveDocument(X(args.inputFile), 0); } if(!seq.isEmpty() && seq.first()->isNode()) { dynamic_context->setContextItem(seq.first()); dynamic_context->setContextPosition(1); dynamic_context->setContextSize(1); } } // Set the external variable values map::iterator v = args.externalVars.begin(); for(; v != args.externalVars.end(); ++v) { Item::Ptr value = dynamic_context->getItemFactory()->createUntypedAtomic(X(v->second), dynamic_context.get()); dynamic_context->setExternalVariable(X(v->first.c_str()), value); } time_t now; dynamic_context->setCurrentTime(time(&now)); ++executionCount; if(args.iDebug) { InteractiveDebugger::debugQuery(*it2, dynamic_context.get()); } else if(args.quiet) { (*it2)->execute(dynamic_context.get())->toSequence(dynamic_context.get()); } else { // use STDOUT if a file was not specified Janitor target(0); if(args.outputFile != NULL) { target.reset(new LocalFileFormatTarget(args.outputFile)); } else { target.reset(new StdOutFormatTarget()); } EventSerializer writer((char*)"UTF-8", (char*)"1.1", target.get(), mm); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, mm); (*it2)->execute(&nsfilter, dynamic_context.get()); } } } } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); return 1; } catch(...) { cerr << "Caught unknown exception" << endl; return 1; } if(args.quiet) cout << "Executions: " << executionCount << endl; // clean up and exit return 0; } // print the usage message void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] ..." << endl << endl; cerr << "-h : Show this display" << endl; cerr << "-p : Parse in XPath 3.0 mode (default is XQuery mode)" << endl; cerr << "-P : Parse in XPath 1.0 compatibility mode (default is XQuery mode)" << endl; cerr << "-s : Parse XSLT 2.0" << endl; cerr << "-f : Parse using W3C Full-Text extensions" << endl; cerr << "-u : Parse using W3C Update extensions" << endl; cerr << "-e : Parse using XQilla specific extensions" << endl; cerr << "-d : Run the query in interactive debugging mode" << endl; cerr << "-x : Use the Xerces-C data model (default is the FastXDM)" << endl; cerr << "-i : Load XML document and bind it as the context item" << endl; cerr << "-b : Set the base URI for the context" << endl; cerr << "-v : Bind the name value pair as an external variable" << endl; cerr << "-o : Write the result to the specified file" << endl; cerr << "-n : Run the queries a number of times" << endl; cerr << "-q : Quiet mode - no output" << endl; cerr << "-t : Output an XML representation of the AST" << endl; } XQilla-2.3.4/src/samples/simple-api/0000755001725400016040000000000013273141207014212 500000000000000XQilla-2.3.4/src/samples/simple-api/foo.xml0000644001725400016040000000003513232476424015444 00000000000000XQilla-2.3.4/src/samples/simple-api/simple-basic.cpp0000644001725400016040000000127113232476424017216 00000000000000#include #include int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla by creating the factory object XQilla xqilla; // Parse an XQuery expression // (AutoDelete deletes the object at the end of the scope) AutoDelete query(xqilla.parse(X("1 to 100"))); // Create a context object AutoDelete context(query->createDynamicContext()); // Execute the query, using the context Result result = query->execute(context); // Iterate over the results, printing them Item::Ptr item; while(item = result->next(context)) { std::cout << UTF8(item->asString(context)) << std::endl; } return 0; } XQilla-2.3.4/src/samples/simple-api/simple-context-item.cpp0000644001725400016040000000176613273140037020557 00000000000000#include #include #include int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla by creating the factory object XQilla xqilla; // Parse an XQuery expression // (AutoDelete deletes the object at the end of the scope) AutoDelete query(xqilla.parse(X("foo/bar/@baz"))); // Create a context object AutoDelete context(query->createDynamicContext()); // Parse a document, and set it as the context item Sequence seq = context->resolveDocument(X("foo.xml")); if(!seq.isEmpty() && seq.first()->isNode()) { context->setContextItem(seq.first()); context->setContextPosition(1); context->setContextSize(1); } // Execute the query, using the context Result result = query->execute(context); // Iterate over the results, printing them Item::Ptr item; while(item = result->next(context)) { std::cout << UTF8(item->asString(context)) << std::endl; } return 0; } XQilla-2.3.4/src/samples/dom-api/0000755001725400016040000000000013273141207013500 500000000000000XQilla-2.3.4/src/samples/dom-api/foo.xml0000644001725400016040000000003513232476424014732 00000000000000XQilla-2.3.4/src/samples/dom-api/data.xsd0000644001725400016040000000240213232476424015056 00000000000000 XQilla-2.3.4/src/samples/dom-api/dom-basic.cpp0000644001725400016040000000216213232476424015772 00000000000000#include #include #include XERCES_CPP_NAMESPACE_USE; int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::initialize(); // Get the XQilla DOMImplementation object DOMImplementation *xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); // Make sure the DOM objects are released before we call XQillaPlatformUtils::terminate() { // Create a DOMDocument AutoRelease document(xqillaImplementation->createDocument()); // Parse an XPath 2 expression AutoRelease expression(document->createExpression(X("1 to 100"), 0)); // Execute the query AutoRelease result(expression->evaluate(0, DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // Iterate over the results, printing them while(result->iterateNext()) { std::cout << result->getIntegerValue() << std::endl; } } // Terminate Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.4/src/samples/dom-api/dom-context-item.cpp0000644001725400016040000000372413232476424017336 00000000000000#include #include #include #include XERCES_CPP_NAMESPACE_USE; int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::initialize(); // Get the XQilla DOMImplementation object DOMImplementation *xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); try { // Create a DOMLSParser object AutoRelease parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0)); parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true); parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true); parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true); // Parse a DOMDocument DOMDocument *document = parser->parseURI("foo.xml"); if(document == 0) { std::cerr << "Document not found." << std::endl; return 1; } // Parse an XPath 2 expression AutoRelease expression(document->createExpression(X("foo/bar/@baz"), 0)); // Execute the query AutoRelease result(expression->evaluate(document, DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // Create a DOMLSSerializer to output the nodes AutoRelease serializer(xqillaImplementation->createLSSerializer()); AutoRelease output(xqillaImplementation->createLSOutput()); StdOutFormatTarget target; output->setByteStream(&target); // Iterate over the results, printing them while(result->iterateNext()) { serializer->write(result->getNodeValue(), output); std::cout << std::endl; } } catch(XQillaException &e) { std::cerr << "XQillaException: " << UTF8(e.getString()) << std::endl; return 1; } // Terminate Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.4/src/samples/dom-api/data.xml0000644001725400016040000000102613232476424015061 00000000000000 1234 14.99 1235 89.99 1236 120 1237 14.999 1238 33.33 XQilla-2.3.4/src/samples/dom-api/dom-resolver.cpp0000644001725400016040000001243313273140037016545 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; int main(int argc, char *argv[]) { if(argc != 2) { cerr << "Data file not specified." << endl; return 1; } /////////////////////// // Initialise XQilla // /////////////////////// // 1. Initialize XQilla // // Note that this initialisation takes care of initialising // xerces-c as well try { XQillaPlatformUtils::initialize(); } catch (const XMLException& eXerces) { cerr << "Error during Xerces-C initialisation.\n" << "Xerces exception message: " << UTF8(eXerces.getMessage()) << endl; return 1; } try { // 2. Obtain a DOM3 XPath2 implementation. This is a XQilla-specific // implementation that overrides the standard DOMDocument, the standard // DOMWriter and the standard DOMBuilder DOMImplementation* xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); // 3. Obtain a parser and set 'do namespaces', 'use schema' and 'validate' to // true. // Create a DOMLSParser object AutoRelease parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0)); parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true); parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true); parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true); //////////////////////////// // Parse our XML document // //////////////////////////// DOMDocument *document = parser->parseURI(argv[1]); if(document == 0) { cerr << "Document not found: " << argv[1] << endl; return 1; } //////////////////////////////// // Create a parsed expression // // (compiled) and evaluate it // //////////////////////////////// // 1. Create a Namespace Resolver. This holds a map of namespace prefixes // to namespace URIs. AutoRelease resolver(document->createNSResolver(document->getDocumentElement())); resolver->addNamespaceBinding(X("my"), X("http://example.com/myURI")); // **************** Example 1: max() function ****************** // { // 2. Create a parsed expression const char* expression = "max(/Catalogue/Book/Price)"; AutoRelease parsedExpression(document->createExpression(X(expression), resolver)); // 3. Evaluate the expression. We choose to have a first result, since we // know the answer will have only one item. Could also choose // XPath2Result::SNAPSHOT_RESULT and XPath2Result::ITERATOR_RESULT AutoRelease firstResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::FIRST_RESULT_TYPE, 0)); // 4. Work with the result: output it to the screen in this case cout << "The answer for expression '" << expression << "' is: " << firstResult->getNumberValue() << endl; } // **************** Example 2: output of nodes ****************** // { // 2. Create a parsed expression const char* expression2 = "//Magazine"; AutoRelease parsedExpression(document->createExpression(X(expression2), resolver)); // 3. Evaluate the expression. We choose to have an iterator result AutoRelease iteratorResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // 4. Work with the result: output it to the screen in this case // Create a DOMLSSerializer to output the nodes AutoRelease serializer(xqillaImplementation->createLSSerializer()); AutoRelease output(xqillaImplementation->createLSOutput()); StdOutFormatTarget target; output->setByteStream(&target); cout << "The answer for expression '" << expression2 << "' is: " <iterateNext()) { if(iteratorResult->isNode()) { cout << "Node " << i++ << ": "<< flush; serializer->write(iteratorResult->getNodeValue(), output); cout << endl; } else { cerr << "Expected a node but received an atomic value!"<< endl; } } } } catch(DOMException &e) { cerr << "DOMException: " << UTF8(e.getMessage()) << endl; return 1; } /////////////// // Terminate // /////////////// XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.4/src/samples/xqc-api/0000755001725400016040000000000013273141207013514 500000000000000XQilla-2.3.4/src/samples/xqc-api/xqc-basic.c0000644001725400016040000000155713232476424015471 00000000000000#include int main(int argc, char *argv[]) { XQC_Implementation *impl; XQC_Expression *expr; XQC_Sequence *seq; XQC_Error err; const char *value; // XQilla specific way to create an XQC_Implementation struct impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER); if(impl == 0) return 1; // Prepare an XQuery expression err = impl->prepare(impl, "1 to 100", 0, &expr); if(err != 0) goto free_impl; // Execute the query err = expr->execute(expr, 0, &seq); if(err != 0) goto free_expr; // Iterate over the results, printing them while((err = seq->next(seq)) == XQC_NO_ERROR) { seq->string_value(seq, &value); printf("%s\n", value); } if(err == XQC_END_OF_SEQUENCE) err = XQC_NO_ERROR; // free everything seq->free(seq); free_expr: expr->free(expr); free_impl: impl->free(impl); return err; } XQilla-2.3.4/src/samples/xqc-api/xqc-context-item.c0000644001725400016040000000246713232476424017031 00000000000000#include int main(int argc, char *argv[]) { XQC_Implementation *impl; XQC_Expression *expr; XQC_DynamicContext *context; XQC_Sequence *seq, *doc; XQC_Error err; const char *value; // XQilla specific way to create an XQC_Implementation struct impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER); if(impl == 0) return 1; // Parse an XQuery expression err = impl->prepare(impl, "foo/bar/@baz", 0, &expr); if(err != 0) goto free_impl; // Parse a document err = impl->parse_document(impl, "", &doc); if(err != 0) goto free_expr; // Create a dynamic context err = expr->create_context(expr, &context); if(err != 0) goto free_doc; // Set the document as the context item doc->next(doc); context->set_context_item(context, doc); // Execute the query err = expr->execute(expr, context, &seq); if(err != 0) goto free_context; // Iterate over the results, printing them while((err = seq->next(seq)) == XQC_NO_ERROR) { seq->string_value(seq, &value); printf("%s\n", value); } if(err == XQC_END_OF_SEQUENCE) err = XQC_NO_ERROR; // free everything seq->free(seq); free_context: context->free(context); free_doc: doc->free(doc); free_expr: expr->free(expr); free_impl: impl->free(impl); return err; } XQilla-2.3.4/src/optimizer/0000755001725400016040000000000013273141207012530 500000000000000XQilla-2.3.4/src/optimizer/ASTCopier.cpp0000644001725400016040000007330113273140037014751 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "xqilla/functions/FunctionMatches.hpp" #include "xqilla/functions/FunctionReplace.hpp" #include "xqilla/functions/FunctionTokenize.hpp" #include XERCES_CPP_NAMESPACE_USE; ASTCopier::ASTCopier() { } ASTNode *ASTCopier::copy(const ASTNode *item, DynamicContext *context) { context_ = context; mm_ = context->getMemoryManager(); return optimize(const_cast(item)); } TupleNode *ASTCopier::copy(const TupleNode *item, DynamicContext *context) { context_ = context; mm_ = context->getMemoryManager(); return optimizeTupleNode(const_cast(item)); } XQGlobalVariable *ASTCopier::optimizeGlobalVar(XQGlobalVariable *item) { return ASTVisitor::optimizeGlobalVar(item); } class UpdateInstance : public ASTVisitor { public: void run(ASTNode *item, const XQUserFunction *oldFunc, XQUserFunction *newFunc) { oldFunc_ = oldFunc; newFunc_ = newFunc; optimize(item); } protected: virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { if(item == oldFunc_) return newFunc_; return item; } virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { if(item->getFunctionDefinition() == oldFunc_) item->setFunctionDefinition(newFunc_); return ASTVisitor::optimizeUserFunction(item); } const XQUserFunction *oldFunc_; XQUserFunction *newFunc_; }; XQUserFunction *ASTCopier::optimizeFunctionDef(XQUserFunction *item) { if(item == 0) return 0; XQUserFunction *result = new (mm_) XQUserFunction(item, mm_); ASTVisitor::optimizeFunctionDef(result); if(result->getTemplateInstance()) { // Update the pointers to the XQUserFunction in the instance UpdateInstance().run(result->getTemplateInstance(), item, result); } return result; } ASTNode *ASTCopier::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *ASTCopier::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *ASTCopier::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } #define COPY_IMPL() { \ result->setLocationInfo(item); \ const_cast(result->getStaticAnalysis()).copy(item->getStaticAnalysis()); \ return result; \ } #define COPY_FULL0(methodname, classname) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ0(name) COPY_FULL0(name, XQ ## name) #define COPY0(name) COPY_FULL0(name, name) #define COPY_FULL1(methodname, classname, arg1name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ1(name, arg1name) COPY_FULL1(name, XQ ## name, arg1name) #define COPY1(name, arg1name) COPY_FULL1(name, name, arg1name) #define COPY_FULL2(methodname, classname, arg1name, arg2name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ2(name, arg1name, arg2name) COPY_FULL2(name, XQ ## name, arg1name, arg2name) #define COPY2(name, arg1name, arg2name) COPY_FULL2(name, name, arg1name, arg2name) #define COPY_FULL3(methodname, classname, arg1name, arg2name, arg3name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ3(name, arg1name, arg2name, arg3name) COPY_FULL3(name, XQ ## name, arg1name, arg2name, arg3name) #define COPY3(name, arg1name, arg2name, arg3name) COPY_FULL3(name, name, arg1name, arg2name, arg3name) #define COPY_FULL4(methodname, classname, arg1name, arg2name, arg3name, arg4name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ4(name, arg1name, arg2name, arg3name, arg4name) COPY_FULL4(name, XQ ## name, arg1name, arg2name, arg3name, arg4name) #define COPY4(name, arg1name, arg2name, arg3name, arg4name) COPY_FULL4(name, name, arg1name, arg2name, arg3name, arg4name) #define COPY_FULL5(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ5(name, arg1name, arg2name, arg3name, arg4name, arg5name) COPY_FULL5(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name) #define COPY5(name, arg1name, arg2name, arg3name, arg4name, arg5name) COPY_FULL5(name, name, arg1name, arg2name, arg3name, arg4name, arg5name) #define COPY_FULL6(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ6(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) COPY_FULL6(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) #define COPY6(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) COPY_FULL6(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) #define COPY_FULL7(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), item->get ## arg7name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ7(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ COPY_FULL7(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) #define COPY7(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ COPY_FULL7(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) #define COPY_FULL8(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), item->get ## arg7name (), item->get ## arg8name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ8(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ COPY_FULL8(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) #define COPY8(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ COPY_FULL8(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) // TBD copy ItemConstructor objects - jpcs // TBD copy SequenceType objects - jpcs // TBD copy NodeTest objects - jpcs COPY_XQ4(Literal, TypeURI, TypeName, Value, PrimitiveType) COPY_XQ5(QNameLiteral, TypeURI, TypeName, URI, Prefix, Localname) COPY_XQ4(NumericLiteral, TypeURI, TypeName, Value, PrimitiveType) COPY_XQ1(Sequence, Children) COPY_XQ2(Step, Axis, NodeTest) COPY_XQ4(Variable, Prefix, URI, Name, Global) COPY_XQ3(If, Test, WhenTrue, WhenFalse) COPY_XQ4(CastableAs, Expression, SequenceType, IsPrimitive, TypeIndex) COPY_XQ4(CastAs, Expression, SequenceType, IsPrimitive, TypeIndex) COPY_XQ7(TreatAs, Expression, SequenceType, ErrorCode, DoTypeCheck, DoCardinalityCheck, TreatType, IsExact) COPY_XQ4(FunctionCoercion, Expression, SequenceType, FuncConvert, TreatType) COPY_XQ0(ContextItem) COPY_XQ2(Return, Parent, Expression) COPY_XQ3(Quantified, QuantifierType, Parent, Expression) COPY_XQ2(Validate, Expression, Mode) COPY_XQ2(OrderingChange, OrderingValue, Expr) COPY_XQ2(Atomize, Expression, DoPSVI) COPY_XQ1(EffectiveBooleanValue, Expression) COPY_XQ5(PromoteUntyped, Expression, TypeURI, TypeName, IsPrimitive, TypeIndex) COPY_XQ4(PromoteNumeric, Expression, TypeURI, TypeName, TypeIndex) COPY_XQ3(PromoteAnyURI, Expression, TypeURI, TypeName) COPY_XQ2(DocumentOrder, Expression, Unordered) COPY_XQ3(Predicate, Expression, Predicate, Reverse) COPY_XQ1(NameExpression, Expression) COPY_XQ1(ContentSequence, Expression) COPY_XQ2(DirectName, QName, UseDefaultNamespace) COPY_XQ2(NamespaceBinding, Namespaces, Expression) COPY_XQ2(FunctionConversion, Expression, SequenceType) COPY_XQ5(AnalyzeString, Expression, Regex, Flags, Match, NonMatch) COPY_XQ2(CopyOf, Expression, CopyNamespaces) COPY_XQ4(Copy, Expression, Children, CopyNamespaces, InheritNamespaces) COPY_XQ2(FunctionRef, QName, NumArgs) COPY1(ASTDebugHook, Expression) COPY1(UDelete, Expression) COPY2(URename, Target, Name) COPY2(UReplace, Target, Expression) COPY2(UReplaceValueOf, Target, Expression) COPY2(UInsertAsFirst, Source, Target) COPY2(UInsertAsLast, Source, Target) COPY2(UInsertInto, Source, Target) COPY2(UInsertAfter, Source, Target) COPY2(UInsertBefore, Source, Target) COPY2(UApplyUpdates, Expression, RevalidationMode) COPY3(FTContains, Argument, Selection, Ignore); COPY_XQ2(Nav, Steps, SortAdded); COPY_FULL3(UserFunction, XQUserFunctionInstance, FunctionDefinition, Arguments, AddReturnCheck); ASTNode *ASTCopier::optimizeInlineFunction(XQInlineFunction *item) { XQInlineFunction *result = new (mm_) XQInlineFunction(item->getUserFunction(), item->getPrefix(), item->getURI(), item->getName(), item->getNumArgs(), new (mm_) FunctionSignature(item->getSignature(), mm_), item->getInstance(), mm_); ASTVisitor::optimizeInlineFunction(result); if(result->getUserFunction()) { // Update the pointers to the XQUserFunction in the instance UpdateInstance().run(result->getInstance(), item->getUserFunction(), result->getUserFunction()); } COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunction(XQFunction *item) { const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); XQFunction *result = 0; if(uri == XQFunction::XMLChFunctionURI) { if(name == FunctionPut::name) { result = new (mm_) FunctionPut(((FunctionPut*)item)->getBaseURI(), item->getArguments(), mm_); } else if (name == FunctionMatches::name || name == FunctionReplace::name || name == FunctionTokenize::name) { RegExpFunction* newFunc = (RegExpFunction*)context_->lookUpFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments()); newFunc->copyRegExp((RegExpFunction*) item, mm_); result = newFunc; } } if(result == 0) result = (XQFunction*)context_->lookUpFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments()); result->setSignature(new (mm_) FunctionSignature(item->getSignature(), mm_)); ASTVisitor::optimizeFunction(result); COPY_IMPL(); } #define OP_CHECK(opName) \ else if(item->getOperatorName() == opName::name) \ result = new (mm_) opName(item->getArguments(), mm_) ASTNode *ASTCopier::optimizeOperator(XQOperator *item) { XQOperator *result = 0; if(item->getOperatorName() == GeneralComp::name) { GeneralComp *gen = (GeneralComp*)item; result = new (mm_) GeneralComp(gen->getOperation(), item->getArguments(), gen->getCollation(), gen->getXPath1CompatibilityMode(), mm_); } else if(item->getOperatorName() == OrderComparison::name) { OrderComparison *ord = (OrderComparison*)item; result = new (mm_) OrderComparison(item->getArguments(), ord->getTestBefore(), mm_); } else if(item->getOperatorName() == UnaryMinus::name) { UnaryMinus *un = (UnaryMinus*)item; result = new (mm_) UnaryMinus(un->getIsPositive(), item->getArguments(), mm_); } OP_CHECK(And); OP_CHECK(Divide); OP_CHECK(Equals); OP_CHECK(Except); OP_CHECK(GreaterThan); OP_CHECK(GreaterThanEqual); OP_CHECK(IntegerDivide); OP_CHECK(Intersect); OP_CHECK(LessThan); OP_CHECK(LessThanEqual); OP_CHECK(Minus); OP_CHECK(Mod); OP_CHECK(Multiply); OP_CHECK(NodeComparison); OP_CHECK(NotEquals); OP_CHECK(Or); OP_CHECK(Plus); OP_CHECK(Union); ASTVisitor::optimizeOperator(result); COPY_IMPL(); } static XQTypeswitch::Case *copyCase(const XQTypeswitch::Case *in, XPath2MemoryManager *mm) { XQTypeswitch::Case *result = new (mm) XQTypeswitch::Case(in->getQName(), in->getURI(), in->getName(), in->getSequenceType(), in->getTreatType(), in->getIsExact(), in->getExpression()); result->setLocationInfo(in); return result; } ASTNode *ASTCopier::optimizeTypeswitch(XQTypeswitch *item) { XQTypeswitch::Cases *newCases = new (mm_) XQTypeswitch::Cases(XQillaAllocator(mm_)); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { newCases->push_back(copyCase(*i, mm_)); } XQTypeswitch *result = new (mm_) XQTypeswitch(item->getExpression(), newCases, copyCase(item->getDefaultCase(), mm_), mm_); ASTVisitor::optimizeTypeswitch(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunctionCall(XQFunctionCall *item) { VectorOfASTNodes *newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *item->getArguments(); XQFunctionCall *result = new (mm_) XQFunctionCall(item->getPrefix(), item->getURI(), item->getName(), newArgs, mm_); ASTVisitor::optimizeFunctionCall(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeDOMConstructor(XQDOMConstructor *item) { VectorOfASTNodes *newChildren = 0; VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { newChildren = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newChildren = *children; } VectorOfASTNodes *newAttrs = 0; VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { newAttrs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newAttrs = *attrs; } XQDOMConstructor *result = 0; if(item->getNodeType() == Node::document_string) { result = new (mm_) XQDocumentConstructor(item->getValue(), mm_); } else if(item->getNodeType() == Node::element_string) { RefHashTableOf< XMLCh > *newNamespaces = 0; RefHashTableOf< XMLCh > *namespaces = ((XQElementConstructor*)item)->getNamespaces(); if(namespaces != 0) { newNamespaces = new (mm_) RefHashTableOf< XMLCh >(5, false, mm_); RefHashTableOfEnumerator nsEnumVal(namespaces, false, mm_); RefHashTableOfEnumerator nsEnumKey(namespaces, false, mm_); while(nsEnumVal.hasMoreElements()) { newNamespaces->put(nsEnumKey.nextElementKey(), &nsEnumVal.nextElement()); } } result = new (mm_) XQElementConstructor(item->getName(), newAttrs, newChildren, newNamespaces, mm_); } else if(item->getNodeType() == Node::attribute_string) { result = new (mm_) XQAttributeConstructor(item->getName(), newChildren, mm_); } else if(item->getNodeType() == Node::namespace_string) { result = new (mm_) XQNamespaceConstructor(item->getName(), newChildren, mm_); } else if(item->getNodeType() == Node::text_string) { result = new (mm_) XQTextConstructor(item->getValue(), mm_); } else if(item->getNodeType() == Node::comment_string) { result = new (mm_) XQCommentConstructor(item->getValue(), mm_, ((XQCommentConstructor*)item)->isXSLT()); } else if(item->getNodeType() == Node::processing_instruction_string) { result = new (mm_) XQPIConstructor(item->getName(), item->getValue(), mm_, ((XQPIConstructor*)item)->isXSLT()); } ASTVisitor::optimizeDOMConstructor(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *newChildren = 0; VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { newChildren = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newChildren = *children; } XQSimpleContent *result = new (mm_) XQSimpleContent(newChildren, mm_); ASTVisitor::optimizeSimpleContent(result); COPY_IMPL(); } static TemplateArguments *copyTemplateArgs(const TemplateArguments *in, XPath2MemoryManager *mm) { if(in == 0) return 0; TemplateArguments *result = new (mm) TemplateArguments(XQillaAllocator(mm)); for(TemplateArguments::const_iterator i = in->begin(); i != in->end(); ++i) { XQTemplateArgument *arg = new (mm) XQTemplateArgument((*i)->qname, (*i)->value, mm); arg->uri = (*i)->uri; arg->name = (*i)->name; arg->seqType = (*i)->seqType; arg->varSrc.copy((*i)->varSrc); result->push_back(arg); } return result; } ASTNode *ASTCopier::optimizeCallTemplate(XQCallTemplate *item) { XQCallTemplate *result = new (mm_) XQCallTemplate(item->getQName(), item->getURI(), item->getName(), item->getASTName(), copyTemplateArgs(item->getArguments(), mm_), item->getTemplates(), mm_); ASTVisitor::optimizeCallTemplate(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeApplyTemplates(XQApplyTemplates *item) { XQApplyTemplates *result = new (mm_) XQApplyTemplates(item->getExpression(), copyTemplateArgs(item->getArguments(), mm_), item->getMode(), item->getTemplates(), mm_); ASTVisitor::optimizeApplyTemplates(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeMap(XQMap *item) { XQMap *result = new (mm_) XQMap(item->getArg1(), item->getArg2(), item->getURI(), item->getName(), mm_); ASTVisitor::optimizeMap(result); const_cast(result->getVarSRC()).copy(item->getVarSRC()); COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunctionDeref(XQFunctionDeref *item) { VectorOfASTNodes *newArgs = 0; VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *args; } XQFunctionDeref *result = new (mm_) XQFunctionDeref(item->getExpression(), newArgs, mm_); ASTVisitor::optimizeFunctionDeref(item); COPY_IMPL(); } ASTNode *ASTCopier::optimizePartialApply(XQPartialApply *item) { VectorOfASTNodes *newArgs = 0; VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *args; } XQPartialApply *result = new (mm_) XQPartialApply(item->getExpression(), newArgs, mm_); ASTVisitor::optimizePartialApply(item); COPY_IMPL(); } ASTNode *ASTCopier::optimizeUTransform(UTransform *item) { VectorOfCopyBinding *newBindings = new (mm_) VectorOfCopyBinding(XQillaAllocator(mm_)); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { newBindings->push_back(new (mm_) CopyBinding(mm_, **i)); } UTransform *result = new (mm_) UTransform(newBindings, item->getModifyExpr(), item->getReturnExpr(), item->getRevalidationMode(), mm_); ASTVisitor::optimizeUTransform(result); COPY_IMPL(); } TupleNode *ASTCopier::optimizeContextTuple(ContextTuple *item) { ContextTuple *result = new (mm_) ContextTuple(mm_); ASTVisitor::optimizeContextTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeForTuple(ForTuple *item) { ForTuple *result = new (mm_) ForTuple(item->getParent(), item->getVarURI(), item->getVarName(), item->getPosURI(), item->getPosName(), item->getExpression(), mm_); ASTVisitor::optimizeForTuple(result); result->setLocationInfo(item); const_cast(result->getVarSRC()).copy(item->getVarSRC()); const_cast(result->getPosSRC()).copy(item->getPosSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeLetTuple(LetTuple *item) { LetTuple *result = new (mm_) LetTuple(item->getParent(), item->getVarURI(), item->getVarName(), item->getExpression(), mm_); ASTVisitor::optimizeLetTuple(result); result->setLocationInfo(item); const_cast(result->getVarSRC()).copy(item->getVarSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeWhereTuple(WhereTuple *item) { WhereTuple *result = new (mm_) WhereTuple(item->getParent(), item->getExpression(), mm_); ASTVisitor::optimizeWhereTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeCountTuple(CountTuple *item) { CountTuple *result = new (mm_) CountTuple(item->getParent(), item->getVarURI(), item->getVarName(), mm_); ASTVisitor::optimizeCountTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeOrderByTuple(OrderByTuple *item) { OrderByTuple *result = new (mm_) OrderByTuple(item->getParent(), item->getExpression(), item->getModifiers(), item->getCollation(), mm_); ASTVisitor::optimizeOrderByTuple(result); result->setLocationInfo(item); const_cast(result->getUsedSRC()).copy(item->getUsedSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeTupleDebugHook(TupleDebugHook *item) { TupleDebugHook *result = new (mm_) TupleDebugHook(item->getParent(), mm_); ASTVisitor::optimizeTupleDebugHook(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } FTSelection *ASTCopier::optimizeFTWords(FTWords *selection) { FTWords *result = new (mm_) FTWords(selection->getExpr(), selection->getOption(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWords(selection); return result; } FTSelection *ASTCopier::optimizeFTWord(FTWord *selection) { FTWord *result = new (mm_) FTWord(selection->getQueryString(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWord(selection); return result; } FTSelection *ASTCopier::optimizeFTOr(FTOr *selection) { FTOr *result = new (mm_) FTOr(mm_); result->setLocationInfo(selection); const_cast(result->getArguments()) = selection->getArguments(); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTOr(selection); return result; } FTSelection *ASTCopier::optimizeFTAnd(FTAnd *selection) { FTAnd *result = new (mm_) FTAnd(mm_); result->setLocationInfo(selection); const_cast(result->getArguments()) = selection->getArguments(); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTAnd(selection); return result; } FTSelection *ASTCopier::optimizeFTMildnot(FTMildnot *selection) { FTMildnot *result = new (mm_) FTMildnot(selection->getLeft(), selection->getRight(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTMildnot(selection); return result; } FTSelection *ASTCopier::optimizeFTUnaryNot(FTUnaryNot *selection) { FTUnaryNot *result = new (mm_) FTUnaryNot(selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTUnaryNot(selection); return result; } FTSelection *ASTCopier::optimizeFTOrder(FTOrder *selection) { FTOrder *result = new (mm_) FTOrder(selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTOrder(selection); return result; } FTSelection *ASTCopier::optimizeFTDistance(FTDistance *selection) { FTDistance *result = new (mm_) FTDistance(selection->getRange(), selection->getUnit(), selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTDistance(selection); return result; } FTSelection *ASTCopier::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { FTDistanceLiteral *result = new (mm_) FTDistanceLiteral(selection->getArgument(), selection->getType(), selection->getDistance(), selection->getDistance2(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTDistanceLiteral(selection); return result; } FTSelection *ASTCopier::optimizeFTScope(FTScope *selection) { FTScope *result = new (mm_) FTScope(selection->getArgument(), selection->getType(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTScope(selection); return result; } FTSelection *ASTCopier::optimizeFTContent(FTContent *selection) { FTContent *result = new (mm_) FTContent(selection->getArgument(), selection->getType(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTContent(selection); return result; } FTSelection *ASTCopier::optimizeFTWindow(FTWindow *selection) { FTWindow *result = new (mm_) FTWindow(selection->getArgument(), selection->getExpr(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWindow(selection); return result; } FTSelection *ASTCopier::optimizeFTWindowLiteral(FTWindowLiteral *selection) { FTWindowLiteral *result = new (mm_) FTWindowLiteral(selection->getArgument(), selection->getDistance(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWindowLiteral(selection); return result; } XQilla-2.3.4/src/optimizer/QueryPathNode.cpp0000644001725400016040000001570313273140037015712 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; QueryPathNode::QueryPathNode(const NodeTest *nodeTest, Type type, MemoryManager *mm) : type_(type), nodeTest_(nodeTest), parent_(0), nextSibling_(0), prevSibling_(0), firstChild_(0), lastChild_(0), memMgr_(mm) { } QueryPathNode::~QueryPathNode() { QueryPathNode *child = firstChild_; QueryPathNode *next; while(child) { next = child->nextSibling_; delete child; child = next; } } bool QueryPathNode::isWildcardURI() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getNamespaceWildcard(); } bool QueryPathNode::isWildcardName() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getNameWildcard(); } bool QueryPathNode::isWildcardNodeType() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getTypeWildcard() || (nodeTest_->isNodeTypeSet() && nodeTest_->getNodeType() != Node::element_string); } bool QueryPathNode::isWildcard() const { if(nodeTest_ == 0 || nodeTest_->getItemType()) return true; return nodeTest_->getNamespaceWildcard() || nodeTest_->getNameWildcard() || nodeTest_->getTypeWildcard() || (type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR && nodeTest_->getNodeType() != Node::element_string); } const XMLCh *QueryPathNode::getURI() const { if(nodeTest_->getItemType() || nodeTest_->getNamespaceWildcard()) return 0; return nodeTest_->getNodeUri(); } const XMLCh *QueryPathNode::getName() const { if(nodeTest_->getItemType() || nodeTest_->getNameWildcard()) return 0; return nodeTest_->getNodeName(); } QueryPathNode *QueryPathNode::getRoot() const { QueryPathNode *result = const_cast(this); QueryPathNode *parent = parent_; while(parent) { result = parent; parent = parent->parent_; } return result; } QueryPathNode *QueryPathNode::appendChild(QueryPathNode *childToAdopt) { if(childToAdopt->parent_ == this) return childToAdopt; if(childToAdopt->parent_ != 0) { childToAdopt->parent_->removeChild(childToAdopt, false); } // Search to see if the child exists already QueryPathNode *compare = firstChild_; for(; compare; compare = compare->nextSibling_) { if(compare->equals(childToAdopt)) { break; } } if(compare) { // Child exists already compare->stealChildren(childToAdopt); delete childToAdopt; return compare; } else { // Child doesn't already exist, so add childToAdopt->parent_ = this; if(firstChild_ == 0) { firstChild_ = childToAdopt; } if(lastChild_) { lastChild_->nextSibling_ = childToAdopt; childToAdopt->prevSibling_ = lastChild_; } lastChild_ = childToAdopt; return childToAdopt; } } void QueryPathNode::removeChild(QueryPathNode *child, bool deleteChild) { if(firstChild_ == child) { firstChild_ = child->nextSibling_; } if(lastChild_ == child) { lastChild_ = child->prevSibling_; } if(child->prevSibling_) { child->prevSibling_->nextSibling_ = child->nextSibling_; } if(child->nextSibling_) { child->nextSibling_->prevSibling_ = child->prevSibling_; } if(deleteChild) { delete child; } else { child->parent_ = 0; child->nextSibling_ = 0; child->prevSibling_ = 0; } } void QueryPathNode::stealChildren(QueryPathNode *victim) { // Loop over the children of "victim", adding them to us for(QueryPathNode *i = victim->firstChild_; i != 0; i = victim->firstChild_) { appendChild(i); // Removes it from "victim" } } void QueryPathNode::markSubtreeValue() { if(type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR) { appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT, memMgr_)); } } void QueryPathNode::markSubtreeResult() { if(type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR) { appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT_ATTR, memMgr_)); appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT, memMgr_)); } } bool QueryPathNode::equals(const QueryPathNode *o) const { return type_ == o->type_ && NodeTest::isSubsetOf(nodeTest_, o->nodeTest_) && NodeTest::isSubsetOf(o->nodeTest_, nodeTest_); // return isWildcardURI() == o->isWildcardURI() && // isWildcardName() == o->isWildcardName() && // isWildcardNodeType() == o->isWildcardNodeType() && // type_ == o->type_ && // (isWildcardURI() || XPath2Utils::equals(getURI(), o->getURI())) && // (isWildcardName() || XPath2Utils::equals(getName(), o->getName())); } bool QueryPathNode::isSubsetOf(const QueryPathNode *node) const { return NodeTest::isSubsetOf(nodeTest_, node->nodeTest_); } static string getIndent(int level) { ostringstream s; for(int i = level; i != 0; --i) { s << " "; } return s.str(); } static string typeToString(QueryPathNode::Type type) { switch(type) { case QueryPathNode::ATTRIBUTE: { return "attribute"; break; } case QueryPathNode::CHILD: { return "child"; break; } case QueryPathNode::DESCENDANT: { return "descendant"; break; } case QueryPathNode::DESCENDANT_ATTR: { return "descendant-attr"; break; } case QueryPathNode::ROOT: { return "root"; break; } } return "UNKNOWN"; } string QueryPathNode::toString(int level) const { ostringstream s; string in(getIndent(level)); string type(typeToString(type_)); s << in << "<" << type; if(isWildcardURI()) { s << " uri=\"*\""; } else if(nodeTest_->getNodeUri() == 0) { s << " uri=\"\""; } else { s << " uri=\"" << UTF8(nodeTest_->getNodeUri()) << "\""; } if(isWildcardName()) { s << " name=\"*\""; } else if(nodeTest_->getNodeName() == 0) { s << " name=\"\""; } else { s << " name=\"" << UTF8(nodeTest_->getNodeName()) << "\""; } if(isWildcardNodeType()) { s << " nodeType=\"*\""; } if(firstChild_) { s << ">" << endl; QueryPathNode *child = firstChild_; while(child) { s << child->toString(level + 1); child = child->nextSibling_; } s << in << "" << endl; } else { s << "/>" << endl; } return s.str(); } XQilla-2.3.4/src/optimizer/PartialEvaluator.cpp0000644001725400016040000020246313273140037016442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; #define FUNCTION_SIZE_RATIO 2 #define BODY_SIZE_RATIO 6 #ifdef _MSC_VER #include #define ssize_t SSIZE_T #endif PartialEvaluator::PartialEvaluator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), context_(context), functionInlineLimit_(0), sizeLimit_(0), redoTyping_(false) { } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Remove unused user-defined functions class FunctionReferenceFinder : public ASTVisitor { public: const set &find(XQQuery *query) { functions_.clear(); newFunctions_.clear(); optimize(query); set::iterator i = newFunctions_.begin(); while(i != newFunctions_.end()) { XQUserFunction *uf = *i; if(uf->getFunctionBody()) optimize((ASTNode*)uf->getFunctionBody()); newFunctions_.erase(uf); i = newFunctions_.begin(); } return functions_; } protected: using ASTVisitor::optimize; virtual void optimize(XQQuery *query) { if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { optimize(*it2); } } GlobalVariables &vars = const_cast(query->getVariables()); for(GlobalVariables::iterator it = vars.begin(); it != vars.end(); ++it) { (*it) = optimizeGlobalVar(*it); } // Don't look inside XQUserFunctions // But do add all templates to the list of used functions UserFunctions &funcs = const_cast(query->getFunctions()); for(UserFunctions::iterator i2 = funcs.begin(); i2 != funcs.end(); ++i2) { if((*i2)->isTemplate() && functions_.insert(*i2).second) { newFunctions_.insert(*i2); *i2 = optimizeFunctionDef(*i2); } } if(query->getQueryBody() != 0) { query->setQueryBody(optimize(query->getQueryBody())); } } virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { if(functions_.insert(const_cast(item->getFunctionDefinition())).second) { newFunctions_.insert(const_cast(item->getFunctionDefinition())); } return ASTVisitor::optimizeUserFunction(item); } set functions_; set newFunctions_; }; static void removeUnusedFunctions(XQQuery *query, const set &foundFunctions, XPath2MemoryManager *mm) { UserFunctions newFuncs = UserFunctions(XQillaAllocator(mm)); UserFunctions *funcs = const_cast(&query->getFunctions()); UserFunctions::iterator funcIt; for(funcIt = funcs->begin(); funcIt != funcs->end(); ++funcIt) { if(foundFunctions.find(*funcIt) != foundFunctions.end()) { newFuncs.push_back(*funcIt); } else { if((*funcIt)->getFunctionBody()) { const_cast((*funcIt)->getFunctionBody())->release(); } // TBD Free patterns, template instance // TBD Remove function from function table! - jpcs } } *funcs = newFuncs; if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { removeUnusedFunctions(*it2, foundFunctions, mm); } } } class ASTCounter : public ASTVisitor { public: size_t count(const XQQuery *query) { count_ = 0; ASTVisitor::optimize(const_cast(query)); return count_; } size_t count(const ASTNode *item) { count_ = 0; optimize(const_cast(item)); return count_; } protected: virtual ASTNode *optimize(ASTNode *item) { if(item == 0) return 0; ++count_; return ASTVisitor::optimize(item); } virtual TupleNode *optimizeTupleNode(TupleNode *item) { if(item == 0) return 0; ++count_; return ASTVisitor::optimizeTupleNode(item); } size_t count_; }; void PartialEvaluator::optimize(XQQuery *query) { redoTyping_ = false; if(query->getQueryBody() == 0) { ASTVisitor::optimize(query); return; } // Find and remove all the unused user defined functions removeUnusedFunctions(query, FunctionReferenceFinder().find(query), context_->getMemoryManager()); // Calculate a size limit on the partially evaluated AST sizeLimit_ = ASTCounter().count(query) * BODY_SIZE_RATIO; // Also limit the recursive depth we're willing to evaluate to // TBD Implement a breadth first function inlining algorithm - jpcs functionInlineLimit_ = 100; // Perform partial evaluation ASTVisitor::optimize(query); // Find and remove all the unused user defined functions removeUnusedFunctions(query, FunctionReferenceFinder().find(query), context_->getMemoryManager()); } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Constant fold bool PartialEvaluator::checkSizeLimit(const ASTNode *oldAST, const ASTNode *newAST) { size_t oldSize = ASTCounter().count(oldAST); size_t newSize = ASTCounter().count(newAST); if((sizeLimit_ + oldSize) < newSize) return false; sizeLimit_ += oldSize; sizeLimit_ -= newSize; return true; } ASTNode *PartialEvaluator::optimize(ASTNode *item) { bool retype; { AutoReset reset(redoTyping_); redoTyping_ = false; item = ASTVisitor::optimize(item); retype = redoTyping_; } if(retype) { item = item->staticTypingImpl(0); redoTyping_ = true; } // Constant fold switch(item->getType()) { case ASTNode::SEQUENCE: case ASTNode::LITERAL: case ASTNode::NUMERIC_LITERAL: case ASTNode::QNAME_LITERAL: break; default: if(!item->getStaticAnalysis().isUsed() && !item->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE) && !item->getStaticAnalysis().getStaticType().isType(StaticType::FUNCTION_TYPE)) { XPath2MemoryManager* mm = context_->getMemoryManager(); try { ASTNode *newBlock = 0; { Result result = item->createResult(context_); newBlock = XQSequence::constantFold(result, context_, mm, item); } context_->clearDynamicContext(); if(newBlock != 0) { if(checkSizeLimit(item, newBlock)) { item->release(); return newBlock; } else { newBlock->release(); return item; } } } catch(XQException &ex) { // Constant folding failed } } break; } return item; } ASTNode *PartialEvaluator::optimizeNamespaceBinding(XQNamespaceBinding *item) { // Make sure the correct namespaces are in scope for sub-expressions that are constant folded AutoNsScopeReset jan(context_, item->getNamespaces()); if(context_) { const XMLCh *defaultElementNS = context_->getMemoryManager()-> getPooledString(item->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context_->setDefaultElementAndTypeNS(defaultElementNS); } item->setExpression(optimize(const_cast(item->getExpression()))); return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Inline user-defined functions // Base class that tracks variable scope class VariableScopeTracker : public ASTVisitor { public: VariableScopeTracker() : uri_(0), name_(0), required_(0), active_(false), inScope_(true) { } protected: ASTNode *run(const XMLCh *uri, const XMLCh *name, ASTNode *expr, const StaticAnalysis *required = 0) { uri_ = uri; name_ = name; required_ = required; active_ = true; inScope_ = true; return optimize(expr); } virtual TupleNode *optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; if(required_ && required_->isVariableUsed(item->getPosURI(), item->getPosName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getPosURI()) && XPath2Utils::equals(name_, item->getPosName())) active_ = false; return item; } virtual TupleNode *optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; return item; } virtual TupleNode *optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; return item; } virtual ASTNode *optimizeReturn(XQReturn *item) { AutoReset reset(active_); AutoReset reset2(inScope_); return ASTVisitor::optimizeReturn(item); } virtual ASTNode *optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); AutoReset reset(active_); AutoReset reset2(inScope_); if(item->getName()) { if(required_ && required_->isVariableUsed(item->getURI(), item->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getURI()) && XPath2Utils::equals(name_, item->getName())) active_ = false; } else { if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; } item->setArg2(optimize(item->getArg2())); return item; } virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); AutoReset reset(active_); AutoReset reset2(inScope_); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { reset.reset(); reset2.reset(); if((*i)->isVariableUsed()) { if(required_ && required_->isVariableUsed((*i)->getURI(), (*i)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*i)->getURI()) && XPath2Utils::equals(name_, (*i)->getName())) active_ = false; } (*i)->setExpression(optimize((*i)->getExpression())); } reset.reset(); reset2.reset(); if(item->getDefaultCase()->isVariableUsed()) { if(required_ && required_->isVariableUsed(item->getDefaultCase()->getURI(), item->getDefaultCase()->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getDefaultCase()->getURI()) && XPath2Utils::equals(name_, item->getDefaultCase()->getName())) active_ = false; } const_cast(item->getDefaultCase())-> setExpression(optimize(item->getDefaultCase()->getExpression())); return item; } virtual ASTNode *optimizeNav(XQNav *item) { AutoReset reset(active_); AutoReset reset2(inScope_); XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; } return item; } virtual ASTNode *optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } virtual ASTNode *optimizeUTransform(UTransform *item) { AutoReset reset(active_); AutoReset reset2(inScope_); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); if(required_ && required_->isVariableUsed((*i)->uri_, (*i)->name_)) inScope_ = false; if(XPath2Utils::equals(uri_, (*i)->uri_) && XPath2Utils::equals(name_, (*i)->name_)) active_ = false; } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); return item; } virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); if(item->getFuncConvert()) { AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->isVariableUsed(0, XQFunctionCoercion::funcVarName)) inScope_ = false; if(XPath2Utils::equals(uri_, 0) && XPath2Utils::equals(name_, XQFunctionCoercion::funcVarName)) active_ = false; item->setFuncConvert(optimize(item->getFuncConvert())); } return item; } virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->setUserFunction(optimizeFunctionDef(item->getUserFunction())); AutoReset reset(active_); AutoReset reset2(inScope_); if(item->getSignature()->argSpecs) { ArgumentSpecs::const_iterator argsIt = item->getSignature()->argSpecs->begin(); for(; argsIt != item->getSignature()->argSpecs->end(); ++argsIt) { if(required_ && required_->isVariableUsed((*argsIt)->getURI(), (*argsIt)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*argsIt)->getURI()) && XPath2Utils::equals(name_, (*argsIt)->getName())) active_ = false; } } item->setInstance(optimize(item->getInstance())); return item; } virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody()) { AutoReset reset(active_); AutoReset reset2(inScope_); const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { for(ArgumentSpecs::const_iterator it = params->begin(); it != params->end(); ++it) { if(required_ && required_->isVariableUsed((*it)->getURI(), (*it)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*it)->getURI()) && XPath2Utils::equals(name_, (*it)->getName())) active_ = false; } } item->setFunctionBody(optimize(const_cast(item->getFunctionBody()))); } return item; } const XMLCh *uri_, *name_; const StaticAnalysis *required_; bool active_, inScope_; }; class InlineVar : public VariableScopeTracker { public: InlineVar() : let_(0), removeLet_(false), dummyRun_(true), varValue_(0), context_(0), successful_(false), doesSomething_(false), count_(0) { } ASTNode *run(const XMLCh *uri, const XMLCh *name, const ASTNode *varValue, ASTNode *expr, DynamicContext *context) { let_ = 0; varValue_ = varValue; context_ = context; removeLet_ = false; dummyRun_ = false; return VariableScopeTracker::run(uri, name, expr, &varValue->getStaticAnalysis()); } bool inlineLet(XQReturn *ret, LetTuple *let, DynamicContext *context, size_t &sizeLimit) { let_ = let; context_ = context; varValue_ = let->getExpression(); // Do a dummy run, to see if we would be 100% successful dummyRun_ = true; successful_ = true; doesSomething_ = false; count_ = 0; VariableScopeTracker::run(let->getVarURI(), let->getVarName(), ret, &let->getExpression()->getStaticAnalysis()); if(!doesSomething_) return false; removeLet_ = successful_; if(let->getExpression()->getStaticAnalysis().isVariableUsed(let->getVarURI(), let->getVarName())) { // The LetTuple expression uses a variable with the same name as the LetTuple itself. // We can only inline it if the inline will be 100% successful, and we can remove the // LetTuple itself. if(!removeLet_) return false; } if(removeLet_) count_ -= ASTCounter().count(let->getExpression()) + 1; // Check that we won't exceed the size limit if(count_ > 0 && (size_t)count_ > sizeLimit) return false; sizeLimit -= count_; // Perform the actual substitution dummyRun_ = false; VariableScopeTracker::run(let->getVarURI(), let->getVarName(), ret, &let->getExpression()->getStaticAnalysis()); if(removeLet_) { let->setParent(0); let->release(); } return true; } protected: virtual TupleNode *optimizeLetTuple(LetTuple *item) { if(item != let_) return VariableScopeTracker::optimizeLetTuple(item); if(!dummyRun_ && removeLet_) { // Remove the LetTuple itself - we checked this was ok to do in inlineLet() above return item->getParent(); } return item; } virtual ASTNode *optimizeVariable(XQVariable *item) { if(active_ && XPath2Utils::equals(item->getName(), name_) && XPath2Utils::equals(item->getURI(), uri_)) { if(inScope_) { if(dummyRun_) { // Mock up the extra size required to make this change count_ -= 1; count_ += ASTCounter().count(varValue_); doesSomething_ = true; } else { item->release(); return varValue_->copy(context_); } } else { successful_ = false; } } return item; } LetTuple *let_; bool removeLet_; bool dummyRun_; const ASTNode *varValue_; DynamicContext *context_; bool successful_; bool doesSomething_; ssize_t count_; }; XQUserFunction *PartialEvaluator::optimizeFunctionDef(XQUserFunction *item) { AutoReset reset(sizeLimit_); // TBD Maybe make this related to the number of times the function is called as well? - jpcs sizeLimit_ = ASTCounter().count(item->getFunctionBody()) * FUNCTION_SIZE_RATIO; return ASTVisitor::optimizeFunctionDef(item); } ASTNode *PartialEvaluator::inlineFunction(const XQUserFunctionInstance *item, DynamicContext *context) { const XQUserFunction *funcDef = item->getFunctionDefinition(); XPath2MemoryManager *mm = context->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = funcDef->getFunctionBody()->copy(context); InlineVar inliner; if(!item->getArguments().empty()) { ArgumentSpecs::const_iterator defIt = funcDef->getSignature()->argSpecs->begin(); VectorOfASTNodes::const_iterator argIt = item->getArguments().begin(); for(; defIt != funcDef->getSignature()->argSpecs->end() && argIt != item->getArguments().end(); ++defIt, ++argIt) { // Rename the variable to avoid naming conflicts const XMLCh *newName = context->allocateTempVarName((*defIt)->getName()); tuple = new (mm) LetTuple(tuple, (*defIt)->getURI(), newName, (*argIt)->copy(context), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable((*defIt)->getURI(), newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed((*defIt)->getURI(), newName); bodyCopy = inliner.run((*defIt)->getURI(), (*defIt)->getName(), newVar, bodyCopy, context); } } ASTNode *result = new (mm) XQReturn(tuple, bodyCopy, mm); result->setLocationInfo(item); const_cast(result->getStaticAnalysis()).copy(funcDef->getBodyStaticAnalysis()); if(!item->getArguments().empty()) { VectorOfASTNodes::const_iterator argIt = item->getArguments().begin(); for(; argIt != item->getArguments().end(); ++argIt) { const_cast(result->getStaticAnalysis()).add((*argIt)->getStaticAnalysis()); } } return result; } ASTNode *PartialEvaluator::optimizeUserFunction(XQUserFunctionInstance *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); bool constantArg = args.empty(); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); if((*i)->isConstant()) constantArg = true; } const XQUserFunction *funcDef = item->getFunctionDefinition(); // TBD Maybe make this dependant on the number of times the function is called in the query as well? - jpcs // if(funcDef->getFunctionBody() && functionInlineLimit_ > 0 && (!funcDef->isRecursive() || constantArg)) { if(funcDef->getFunctionBody() && functionInlineLimit_ > 0 && !funcDef->isRecursive()) { AutoReset reset(functionInlineLimit_); --functionInlineLimit_; ASTNode *result = inlineFunction(item, context_); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } return item; } ASTNode *PartialEvaluator::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction() && item->getInstance()->getType() == ASTNode::USER_FUNCTION) { ASTNode *result = inlineFunction((XQUserFunctionInstance*)item->getInstance(), context_); ASTReleaser().release(item->getUserFunction()); item->getInstance()->release(); item->setUserFunction(0); redoTyping_ = true; item->setInstance(result->staticTyping(0, 0)); } item->setInstance(optimize(item->getInstance())); return item; } ASTNode *PartialEvaluator::optimizeFunctionDeref(XQFunctionDeref *item) { ASTVisitor::optimizeFunctionDeref(item); if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); VectorOfASTNodes *args = const_cast(item->getArguments()); size_t numGiven = args ? args->size() : 0; if(func->getNumArgs() != numGiven) return item; AutoReset reset(functionInlineLimit_); --functionInlineLimit_; XPath2MemoryManager *mm = context_->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = func->getInstance()->copy(context_); InlineVar inliner; if(args && func->getSignature()->argSpecs) { ArgumentSpecs::const_iterator specIt = func->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::iterator argIt = args->begin(); argIt != args->end(); ++argIt, ++specIt) { // Rename the variable to avoid naming conflicts const XMLCh *newName = context_->allocateTempVarName(X("inline_arg")); tuple = new (mm) LetTuple(tuple, 0, newName, (*argIt)->copy(context_), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable(0, newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed(0, newName); bodyCopy = inliner.run((*specIt)->getURI(), (*specIt)->getName(), newVar, bodyCopy, context_); } } ASTNode *result = new (mm) XQReturn(tuple, bodyCopy, mm); result->setLocationInfo(item); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } ASTNode *PartialEvaluator::optimizePartialApply(XQPartialApply *item) { ASTVisitor::optimizePartialApply(item); if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); VectorOfASTNodes *args = const_cast(item->getArguments()); size_t numGiven = args ? args->size() : 0; if(func->getNumArgs() != numGiven) return item; AutoReset reset(functionInlineLimit_); --functionInlineLimit_; XPath2MemoryManager *mm = context_->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = func->getInstance()->copy(context_); InlineVar inliner; FunctionSignature *signature = new (mm) FunctionSignature(func->getSignature(), mm); if(args && signature->argSpecs) { ArgumentSpecs::iterator specIt = signature->argSpecs->begin(); for(VectorOfASTNodes::iterator argIt = args->begin(); argIt != args->end(); ++argIt) { if(*argIt == 0) { ++specIt; continue; } // Rename the variable to avoid naming conflicts const XMLCh *newName = context_->allocateTempVarName(X("inline_arg")); tuple = new (mm) LetTuple(tuple, 0, newName, (*argIt)->copy(context_), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable(0, newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed(0, newName); bodyCopy = inliner.run((*specIt)->getURI(), (*specIt)->getName(), newVar, bodyCopy, context_); specIt = signature->argSpecs->erase(specIt); } } ASTNode *ret = new (mm) XQReturn(tuple, bodyCopy, mm); ret->setLocationInfo(item); ASTNode *result = new (mm) XQInlineFunction(0, func->getPrefix(), func->getURI(), func->getName(), signature->argSpecs->size(), signature, ret, mm); result->setLocationInfo(item); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } static inline FunctionSignature *findSignature(ASTNode *expr) { FunctionSignature *signature = 0; switch(expr->getType()) { case ASTNode::INLINE_FUNCTION: { signature = ((XQInlineFunction*)expr)->getSignature(); break; } case ASTNode::FUNCTION_COERCION: { XQFunctionCoercion *coercion = (XQFunctionCoercion*)expr; if(coercion->getFuncConvert()->getType() == ASTNode::INLINE_FUNCTION) signature = ((XQInlineFunction*)coercion->getFuncConvert())->getSignature(); break; } default: break; } return signature; } ASTNode *PartialEvaluator::optimizeFunctionCoercion(XQFunctionCoercion *item) { ASTVisitor::optimizeFunctionCoercion(item); FunctionSignature *signature = findSignature(item->getExpression()); if(signature && item->getSequenceType()->getItemType()->matches(signature, context_)) { ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); AutoReset reset(functionInlineLimit_); --functionInlineLimit_; ASTNode *result = item->getFuncConvert()->copy(context_); result = InlineVar().run(0, XQFunctionCoercion::funcVarName, func->copy(context_), result, context_); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } ASTNode *PartialEvaluator::optimizeTreatAs(XQTreatAs *item) { ASTVisitor::optimizeTreatAs(item); const SequenceType::ItemType *itemType = item->getSequenceType()->getItemType(); if(!itemType) return item; FunctionSignature *signature = findSignature(item->getExpression()); if(signature && itemType->matches(signature, context_)) { ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Inline variables static inline unsigned int umultiply(unsigned int a, unsigned int b) { return (a == 0 || b == 0) ? 0 : (a == StaticType::UNLIMITED || b == StaticType::UNLIMITED) ? StaticType::UNLIMITED : a * b; } static inline unsigned int uadd(unsigned int a, unsigned int b) { return (a == StaticType::UNLIMITED || b == StaticType::UNLIMITED) ? StaticType::UNLIMITED : a + b; } class CountVarUse : public VariableScopeTracker { public: CountVarUse() : count_(0) { } unsigned int run(const XMLCh *uri, const XMLCh *name, const ASTNode *expr) { count_ = 0; VariableScopeTracker::run(uri, name, (ASTNode*)expr); return count_; } protected: virtual ASTNode *optimizeNav(XQNav *item) { unsigned int factor = 1; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { unsigned int tcount = count_; count_ = 0; i->step = optimize(i->step); count_ = uadd(tcount, umultiply(count_, factor)); factor = umultiply(factor, i->step->getStaticAnalysis() .getStaticType().getMax()); } return item; } virtual ASTNode *optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); unsigned int tcount = count_; count_ = 0; item->setPredicate(optimize(const_cast(item->getPredicate()))); count_ = uadd(tcount, umultiply(count_, item->getExpression()-> getStaticAnalysis().getStaticType().getMax())); return item; } virtual ASTNode *optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); unsigned int tcount = count_; count_ = 0; item->setArg2(optimize(item->getArg2())); count_ = uadd(tcount, umultiply(count_, item->getArg1()-> getStaticAnalysis().getStaticType().getMax())); return item; } virtual TupleNode *optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeReturn(XQReturn *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeVariable(XQVariable *item) { if(active_ && XPath2Utils::equals(item->getName(), name_) && XPath2Utils::equals(item->getURI(), uri_)) { count_ = uadd(count_, 1); } return item; } unsigned int count_; }; static void countLetUsage(ASTNode *expr, map &toCount, unsigned int factor) { CountVarUse counter; map::iterator j = toCount.begin(); for(; j != toCount.end(); ++j) { unsigned int ecount = counter.run(j->first->getVarURI(), j->first->getVarName(), expr); j->second = uadd(j->second, umultiply(factor, ecount)); } } static void findLetsToInline(TupleNode *ancestor, vector &toInline, map &toCount) { if(ancestor == 0) return; switch(ancestor->getType()) { case TupleNode::LET: { findLetsToInline(ancestor->getParent(), toInline, toCount); LetTuple *f = (LetTuple*)ancestor; countLetUsage(f->getExpression(), toCount, ancestor->getParent()->getMax()); if(f->getExpression()->isConstant() || f->getExpression()->getType() == ASTNode::VARIABLE || f->getExpression()->getType() == ASTNode::CONTEXT_ITEM) { toInline.push_back(f); } else { toCount[f] = 0; } break; } case TupleNode::WHERE: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((WhereTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::ORDER_BY: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((OrderByTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::FOR: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((ForTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::COUNT: findLetsToInline(ancestor->getParent(), toInline, toCount); break; case TupleNode::CONTEXT_TUPLE: case TupleNode::DEBUG_HOOK: break; } } static ASTNode *inlineLets(XQReturn *item, DynamicContext *context, size_t &sizeLimit, bool &success) { map toCount; vector toInline; findLetsToInline(const_cast(item->getParent()), toInline, toCount); countLetUsage(item->getExpression(), toCount, item->getParent()->getMax()); InlineVar inliner; vector::iterator i = toInline.begin(); for(; i != toInline.end(); ++i) { success = inliner.inlineLet(item, *i, context, sizeLimit) || success; } map::iterator j = toCount.begin(); for(; j != toCount.end(); ++j) { if(j->second != StaticType::UNLIMITED && j->second <= 1) { success = inliner.inlineLet(item, j->first, context, sizeLimit) || success; } } return item->staticTyping(0, 0); } ASTNode *PartialEvaluator::optimizeReturn(XQReturn *item) { bool success = false; ASTNode *result = inlineLets(item, context_, sizeLimit_, success); if(success || result != item) { redoTyping_ = true; return optimize(result); } result = ASTVisitor::optimizeReturn(item); if(result != item) return result; // Combine nested FLWORs if(item->getExpression()->getType() == ASTNode::RETURN) { XQReturn *otherReturn = (XQReturn*)item->getExpression();; // We can't combine if the nested tuple uses an "order by" TupleNode *parent = otherReturn->getParent(); while(parent) { if(parent->getType() == TupleNode::ORDER_BY) break; parent = parent->getParent(); } if(parent == 0) { // Combine the FLWORs TupleNode *prev = 0; parent = otherReturn->getParent(); while(parent->getType() != TupleNode::CONTEXT_TUPLE) { prev = parent; parent = parent->getParent(); } if(prev) prev->setParent(item->getParent()); item->setParent(0); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); item = otherReturn; } } success = false; result = inlineLets(item, context_, sizeLimit_, success); if(success || result != item) { redoTyping_ = true; return optimize(result); } if(item->getParent()->getType() == TupleNode::CONTEXT_TUPLE) { result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Make decisions early ASTNode *PartialEvaluator::optimizeIf(XQIf *item) { item->setTest(optimize(const_cast(item->getTest()))); if(item->getTest()->isConstant()) { bool result = item->getTest()->boolResult(context_); context_->clearDynamicContext(); if(result) { ASTNode *tmp = const_cast(item->getWhenTrue()); item->setWhenTrue(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } else { ASTNode *tmp = const_cast(item->getWhenFalse()); item->setWhenFalse(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } } item->setWhenTrue(optimize(const_cast(item->getWhenTrue()))); item->setWhenFalse(optimize(const_cast(item->getWhenFalse()))); return item; } ASTNode *PartialEvaluator::optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(item->getParent()->getMax() == 0) { ASTNode *result = XQLiteral::create(item->getQuantifierType() == XQQuantified::EVERY, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } item->setExpression(optimize(item->getExpression())); if(item->getExpression()->isConstant() && item->getParent()->getMin() != 0) { bool value = item->getExpression()->boolResult(context_); ASTNode *result = XQLiteral::create(value, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } return item; } ASTNode *PartialEvaluator::optimizePredicate(XQPredicate *item) { item->setPredicate(optimize(const_cast(item->getPredicate()))); if(item->getPredicate()->isConstant()) { context_->clearDynamicContext(); Result pred_result = item->getPredicate()->createResult(context_); Item::Ptr first = pred_result->next(context_); Item::Ptr second; if(first.notNull()) { second = pred_result->next(context_); } if(first.isNull() || second.notNull() || !first->isAtomicValue() || !((AnyAtomicType*)first.get())->isNumericValue()) { // It's not a single numeric item if(XQEffectiveBooleanValue::get(first, second, context_, item)) { // We have a true predicate ASTNode *tmp = const_cast(item->getExpression()); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } else { // We have a false predicate, which is constant folded to an empty sequence XPath2MemoryManager *mm = context_->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item->getExpression()); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(result); } } } if(item->getPredicate()->getStaticAnalysis().getStaticType().getMax() == 0) { // If there are no items EBV returns false, which is constant folded to an empty sequence XPath2MemoryManager *mm = context_->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item->getExpression()); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(result); } if(item->getPredicate()->getStaticAnalysis().getStaticType().getMin() >= 1 && item->getPredicate()->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE)) { // If there is one or more nodes, EBV returns true ASTNode *tmp = const_cast(item->getExpression()); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } item->setExpression(optimize(const_cast(item->getExpression()))); if(item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 0) { // If the expression doesn't return any results, it doesn't need a predicate! ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } ASTNode *PartialEvaluator::optimizeAnd(And *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); VectorOfASTNodes::iterator i = args.begin(); while(i != args.end()) { if(!(*i)->getStaticAnalysis().isUsed()) { if(!(*i)->boolResult(context_)) { // It's constantly false, so this expression is false ASTNode *result = XQLiteral::create(false, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } else { // Remove the constant true from the operator arguments sizeLimit_ += ASTCounter().count(*i); (*i)->release(); i = args.erase(i); } } else ++i; } return item; } ASTNode *PartialEvaluator::optimizeOr(Or *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); VectorOfASTNodes::iterator i = args.begin(); while(i != args.end()) { if(!(*i)->getStaticAnalysis().isUsed()) { if((*i)->boolResult(context_)) { // It's constantly true, so this expression is true ASTNode *result = XQLiteral::create(true, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } else { // Remove the constant false from the operator arguments sizeLimit_ += ASTCounter().count(*i); (*i)->release(); i = args.erase(i); } } else ++i; } return item; } ASTNode *PartialEvaluator::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { item->setExpression(optimize(item->getExpression())); if(item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 0) { // If there are no items, EBV returns false ASTNode *result = XQLiteral::create(false, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } if(item->getExpression()->getStaticAnalysis().getStaticType().getMin() >= 1 && item->getExpression()->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE)) { // If there is one or more nodes, EBV returns true ASTNode *result = XQLiteral::create(true, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } if(item->getExpression()->getStaticAnalysis().getStaticType().getMin() <= 1 && item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 1 && item->getExpression()->getStaticAnalysis().getStaticType().isType(StaticType::BOOLEAN_TYPE)) { // If there is zero or one boolean values, EBV isn't needed ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Folding based on static type ASTNode *PartialEvaluator::optimizeFunction(XQFunction *item) { ASTNode *result = ASTVisitor::optimizeFunction(item); if(result != item) return result; const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); if(uri == XQFunction::XMLChFunctionURI) { if(name == FunctionCount::name || name == FunctionFunctionArity::name || name == FunctionEmpty::name) { result = item->staticTypingImpl(context_); if(result != item) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); } return result; } } return item; } ASTNode *PartialEvaluator::optimizeTypeswitch(XQTypeswitch *item) { ASTNode *result = ASTVisitor::optimizeTypeswitch(item); if(result != item) return result; result = item->staticTypingImpl(context_); if(result != item) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); } return result; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Arithmetic folding rules static ASTNode *foldEmptyArgument(XQOperator *item, DynamicContext *context) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { if((*i)->getStaticAnalysis().getStaticType().getMax() == 0) { // The result is always empty if one of our arguments is always empty XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item); return result; } } return item; } ASTNode *PartialEvaluator::optimizeOperator(XQOperator *item) { ASTNode *result = ASTVisitor::optimizeOperator(item); if(result != item) return result; const XMLCh *name = item->getOperatorName(); if(name == Plus::name) { return optimizePlus((Plus*)item); } else if(name == Minus::name) { return optimizeMinus((Minus*)item); } else if(name == Multiply::name) { return optimizeMultiply((Multiply*)item); } else if(name == Divide::name) { return optimizeDivide((Divide*)item); } else if(name == Mod::name) { return foldEmptyArgument(item, context_); } else if(name == IntegerDivide::name) { return foldEmptyArgument(item, context_); } else if(name == UnaryMinus::name) { return foldEmptyArgument(item, context_); } else if(name == And::name) { return optimizeAnd((And*)item); } else if(name == Or::name) { return optimizeOr((Or*)item); } return item; } ASTNode *PartialEvaluator::optimizePlus(Plus *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // (A (+/-) B) + C = (A + C) (+/-) B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A - B) + C = A - (B - C) // (A + B) + C = A + (B + C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Minus::name) { const_cast(op->getArguments())[1] = new (mm) Minus(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // A + (B (+/-) C) = (A + B) (+/-) C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A + (B + C) = (A + C) + B // A + (B - C) = (A - C) + B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // X + 0 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); redoTyping_ = true; return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // 0 + X = X ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeMinus(Minus *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // (A (+/-) B) - C = (A - C) (+/-) B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A - B) - C = A - (B + C) // (A + B) - C = A + (B - C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Minus::name) { const_cast(op->getArguments())[1] = new (mm) Plus(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // A - (B (+/-) C) = (A - B) (+/-) C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A - (B + C) = (A - C) - B // A - (B - C) = (A + C) - B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; if(op->getOperatorName() == Minus::name) { args[0] = new (mm) Plus(op->getArguments(), mm); args[0]->setLocationInfo(op); } else { args[0] = new (mm) Minus(op->getArguments(), mm); args[0]->setLocationInfo(op); } redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // X - 0 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // 0 - X = -X VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); newArgs.push_back(args[1]); ASTNode *result = new (mm) UnaryMinus(false, newArgs, mm); result->setLocationInfo(item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); args[1] = 0; item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeMultiply(Multiply *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // (A * B) * C = (A * C) * B // (A / B) * C = (A * C) / B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A * B) * C = A * (C * B) // (A / B) * C = A * (C / B) args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[1]; const_cast(op->getArguments())[1] = op->getArguments()[1]; args[1] = op; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // A * (B * C) = (A * B) * C // A * (B / C) = (A * B) / C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A * (B * C) = (A * C) * B // A * (B / C) = (A / C) * B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if(num->getState() == Numeric::NUM && num->asMAPM() == 0 && item->getStaticAnalysis().getStaticType().isType(StaticType::DECIMAL_TYPE)) { // X * 0 = 0 // but only for xs:decimal, since otherwise "-0" messes things up ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } else if(num->asMAPM() == 1) { // X * 1 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if(num->asMAPM() == 0 && item->getStaticAnalysis().getStaticType().isType(StaticType::DECIMAL_TYPE)) { // 0 * X = 0 // but only for xs:decimal, since otherwise "-0" messes things up ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } else if(num->asMAPM() == 1) { // 1 * X = X ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeDivide(Divide *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); // duration / duration = decimal if(args[0]->getStaticAnalysis().getStaticType().containsType(StaticType::DAY_TIME_DURATION_TYPE | StaticType::YEAR_MONTH_DURATION_TYPE) || args[1]->getStaticAnalysis().getStaticType().containsType(StaticType::DAY_TIME_DURATION_TYPE | StaticType::YEAR_MONTH_DURATION_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // (A / B) / C = (A / C) / B // (A * B) / C = (A / C) * B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A / B) / C = A / (B * C) // (A * B) / C = A * (B / C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Divide::name) { const_cast(op->getArguments())[1] = new (mm) Multiply(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // A / (B / C) = (A / B) * C // A / (B * C) = (A / B) / C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; if(op->getOperatorName() == Divide::name) { op = new (mm) Multiply(op->getArguments(), mm); op->setLocationInfo(op); } else { op = new (mm) Divide(op->getArguments(), mm); op->setLocationInfo(op); } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A / (B / C) = (A * C) / B // A / (B * C) = (A / C) / B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; if(op->getOperatorName() == Divide::name) { args[0] = new (mm) Multiply(op->getArguments(), mm); args[0]->setLocationInfo(op); } else { args[0] = new (mm) Divide(op->getArguments(), mm); args[0]->setLocationInfo(op); } redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if(num->asMAPM() == 1) { // X / 1 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } // 0 / X = 0, but only if X != 0 - so we leave that one for regular constant folding return foldEmptyArgument(item, context_); } // Other things to constant fold: // // XQMap // global variables // // // XQNav // casts, conversions, atomize // XQilla-2.3.4/src/optimizer/StaticTyper.cpp0000644001725400016040000004050213273140037015430 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE; ASTNode *StaticTyper::run(ASTNode *item, StaticContext *context) { AutoReset autoReset(context_); context_ = context; return optimize(item); } void StaticTyper::optimize(XQQuery *query) { assert(context_ == query->getStaticContext()); query->staticTyping(this); } XQUserFunction *StaticTyper::optimizeFunctionDef(XQUserFunction *item) { item->staticTypingOnce(context_, this); return item; } ASTNode *StaticTyper::optimize(ASTNode *item) { ASTNode *result = ASTVisitor::optimize(item); if(result != item) return optimize(result); return item->staticTypingImpl(context_); } #define SUBSTITUTE(item, name) {\ ASTNode *result = item->get ## name (); \ item->set ##name (0); \ item->release(); \ return result; \ } ASTNode *StaticTyper::optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); StaticType ciType = item->getExpression()->getStaticAnalysis().getStaticType(); ciType.setCardinality(1, 1); AutoContextItemTypeReset contextTypeReset(context_, ciType); item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } ASTNode *StaticTyper::optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); StaticType ciType(StaticType::STRING_TYPE, 1, 1); AutoContextItemTypeReset contextTypeReset(context_, ciType); item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } ASTNode *StaticTyper::optimizeNav(XQNav *item) { AutoContextItemTypeReset contextTypeReset(context_); StaticType ciType; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); if(context_) { ciType = i->step->getStaticAnalysis().getStaticType(); ciType.setCardinality(1, 1); context_->setContextItemType(ciType); } } return item; } ASTNode *StaticTyper::optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); AutoContextItemTypeReset contextTypeReset(context_); VariableTypeStore* varStore = context_ ? context_->getVariableTypeStore() : 0; if(context_) { StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getArg1()->getStaticAnalysis().getStaticType(); varSrc.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); if(item->getName() == 0) { context_->setContextItemType(varSrc.getStaticType()); } else { varStore->addLogicalBlockScope(); varStore->declareVar(item->getURI(), item->getName(), varSrc); } } item->setArg2(optimize(item->getArg2())); if(context_ && item->getName() != 0) { varStore->removeScope(); } return item; } ASTNode *StaticTyper::optimizeUTransform(UTransform *item) { VariableTypeStore* varStore = context_ ? context_->getVariableTypeStore() : 0; VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); (*i)->src_.getStaticType() = (*i)->expr_->getStaticAnalysis().getStaticType(); (*i)->src_.setProperties((*i)->expr_->getStaticAnalysis().getProperties()); // Declare the variable binding if(context_) { varStore->addLogicalBlockScope(); varStore->declareVar((*i)->uri_, (*i)->name_, (*i)->src_); } } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); if(context_) { VectorOfCopyBinding::reverse_iterator rend = bindings->rend(); for(VectorOfCopyBinding::reverse_iterator it = bindings->rbegin(); it != rend; ++it) { // Remove our variable binding and the scope we added varStore->removeScope(); } } return item; } ASTNode *StaticTyper::optimizeQuantified(XQQuantified *item) { AutoReset reset(tupleSetup_); tupleSetup_ = true; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); tupleSetup_ = false; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } ASTNode *StaticTyper::optimizeReturn(XQReturn *item) { AutoReset reset(tupleSetup_); tupleSetup_ = true; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); tupleSetup_ = false; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } void StaticTyper::optimizeCase(const StaticAnalysis &var_src, XQTypeswitch::Case *item) { AutoDelete caseSrc(0); if(context_ && item->isVariableUsed()) { VariableTypeStore* varStore = context_->getVariableTypeStore(); caseSrc.set(new StaticAnalysis(context_->getMemoryManager())); caseSrc->copy(var_src); if(item->getSequenceType() != 0) { caseSrc->getStaticType() &= item->getTreatType(); } varStore->addLogicalBlockScope(); varStore->declareVar(item->getURI(), item->getName(), *caseSrc); } item->setExpression(optimize(item->getExpression())); if(context_ && item->isVariableUsed()) { context_->getVariableTypeStore()->removeScope(); } } ASTNode *StaticTyper::optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { optimizeCase(item->getExpression()->getStaticAnalysis(), *i); } optimizeCase(item->getExpression()->getStaticAnalysis(), const_cast(item->getDefaultCase())); return item; } ASTNode *StaticTyper::optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); AutoDelete varSrc(0); if(item->getFuncConvert()) { if(context_) { // Could do better on the static type varSrc.set(new StaticAnalysis(context_->getMemoryManager())); varSrc->getStaticType() = StaticType::FUNCTION_TYPE; VariableTypeStore *varStore = context_->getVariableTypeStore(); varStore->addLogicalBlockScope(); varStore->declareVar(0, XQFunctionCoercion::funcVarName, *varSrc); } { AutoMessageListenerReset reset(context_); // Turn off warnings item->setFuncConvert(optimize(item->getFuncConvert())); } if(context_) context_->getVariableTypeStore()->removeScope(); } return item; } ASTNode *StaticTyper::optimizeNamespaceBinding(XQNamespaceBinding *item) { AutoNsScopeReset jan(context_, item->getNamespaces()); if(context_) { const XMLCh *defaultElementNS = context_->getMemoryManager()-> getPooledString(item->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context_->setDefaultElementAndTypeNS(defaultElementNS); } item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *StaticTyper::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->getUserFunction()->staticTyping(context_, this); AutoDelete instanceVarSrc(0); if(context_) { XPath2MemoryManager *mm = context_->getMemoryManager(); instanceVarSrc.set(new StaticAnalysis(mm)); instanceVarSrc->getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); VariableTypeStore *varStore = context_->getVariableTypeStore(); varStore->addLogicalBlockScope(); if(item->getSignature()->argSpecs) { ArgumentSpecs::const_iterator argsIt = item->getSignature()->argSpecs->begin(); for(; argsIt != item->getSignature()->argSpecs->end(); ++argsIt) { varStore->declareVar((*argsIt)->getURI(), (*argsIt)->getName(), *instanceVarSrc); } } } { // The context item is not defined AutoContextItemTypeReset contextTypeReset(context_, StaticType()); // Turn off warnings AutoMessageListenerReset reset(context_); item->setInstance(optimize(item->getInstance())); } if(context_) context_->getVariableTypeStore()->removeScope(); return item; } ASTNode *StaticTyper::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { AutoNodeSetOrderingReset orderReset(context_); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *StaticTyper::optimizeVariable(XQVariable *item) { if(!context_) return item; XQGlobalVariable *global = 0; context_->getVariableTypeStore()->getVar(item->getURI(), item->getName(), &global); if(global) { // See if this is a global variable from one of the imported modules, // and if so make sure it's static typed first XQQuery *module = context_->getModule()->findModuleForVariable(item->getURI(), item->getName()); if(module == context_->getModule()) { if(globalsUsed_) globalsUsed_->push_back(global); } else if(module) { AutoReset autoReset(context_); module->staticTypingOnce(this); } } return item; } ASTNode *StaticTyper::optimizeUserFunction(XQUserFunctionInstance *item) { ASTNode *result = ASTVisitor::optimizeUserFunction(item); if(result != item || !context_) return result; // See if this is a function from one of the imported modules, // and if so make sure it's static typed first XQQuery *module = context_->getModule()-> findModuleForFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments().size()); if(module && module != context_->getModule()) { AutoReset autoReset(context_); module->staticTypingOnce(this); } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *StaticTyper::optimizeFTContains(FTContains *item) { item->setArgument(optimize(item->getArgument())); item->setSelection(optimizeFTSelection(item->getSelection())); if(context_) { AutoDelete dContext(context_->createDynamicContext()); dContext->setMemoryManager(context_->getMemoryManager()); DefaultTokenizer tokenizer; FTContext ftcontext(&tokenizer, 0, dContext); item->setSelection(item->getSelection()->optimize(&ftcontext)); } if(item->getIgnore()) item->setIgnore(optimize(item->getIgnore())); return item; } FTSelection *StaticTyper::optimizeFTSelection(FTSelection *selection) { FTSelection *result = ASTVisitor::optimizeFTSelection(selection); if(result != selection) return result; return selection->staticTypingImpl(context_); } //////////////////////////////////////////////////////////////////////////////////////////////////// TupleNode *StaticTyper::optimizeTupleNode(TupleNode *item) { TupleNode *result = ASTVisitor::optimizeTupleNode(item); if(result != item) return result; if(tupleSetup_) return item->staticTypingImpl(context_); return item; } TupleNode *StaticTyper::optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); if(item->getVarName()) { // Declare the variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getExpression()->getStaticAnalysis().getStaticType(); varSrc.getStaticType().setCardinality(1, 1); varSrc.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } if(item->getPosName()) { // Declare the positional variable binding StaticAnalysis &posSrc = const_cast(item->getPosSRC()); posSrc.getStaticType() = StaticType::DECIMAL_TYPE; varStore->declareVar(item->getPosURI(), item->getPosName(), posSrc); } } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); // Declare the variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getExpression()->getStaticAnalysis().getStaticType(); varSrc.setProperties(item->getExpression()->getStaticAnalysis().getProperties()); varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); return item; } TupleNode *StaticTyper::optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); if(item->getVarName()) { // Declare the positional variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = StaticType::DECIMAL_TYPE; varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) { AutoNodeSetOrderingReset orderReset(context_, (item->getModifiers() & OrderByTuple::UNSTABLE) == 0 ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); item->setExpression(optimize(item->getExpression())); } return item; } XQilla-2.3.4/src/optimizer/ASTVisitor.cpp0000644001725400016040000006504113273140037015171 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include using namespace std; void ASTVisitor::optimize(XQQuery *query) { if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { optimize(*it2); } } vector newVars; GlobalVariables &vars = const_cast(query->getVariables()); for(GlobalVariables::iterator it = vars.begin(); it != vars.end(); ++it) { XQGlobalVariable *newGV = optimizeGlobalVar(*it); if(newGV != 0) { newVars.push_back(newGV); } } vars.clear(); for(vector::iterator i = newVars.begin(); i != newVars.end(); ++i) { vars.push_back(*i); } UserFunctions &funcs = const_cast(query->getFunctions()); for(UserFunctions::iterator i2 = funcs.begin(); i2 != funcs.end(); ++i2) { *i2 = optimizeFunctionDef(*i2); } if(query->getQueryBody() != 0) { query->setQueryBody(optimize(query->getQueryBody())); } } XQGlobalVariable *ASTVisitor::optimizeGlobalVar(XQGlobalVariable *item) { if(item->getVariableExpr()) { item->setVariableExpr(optimize(const_cast(item->getVariableExpr()))); } return item; } XQUserFunction *ASTVisitor::optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody()) { item->setFunctionBody(optimize(const_cast(item->getFunctionBody()))); } if(item->getPattern()) { VectorOfASTNodes::iterator patIt = item->getPattern()->begin(); for(; patIt != item->getPattern()->end(); ++patIt) { (*patIt) = optimize(*patIt); } } if(item->getTemplateInstance()) { item->setTemplateInstance(optimize(item->getTemplateInstance())); } return item; } ASTNode *ASTVisitor::optimize(ASTNode *item) { switch(item->getType()) { case ASTNode::LITERAL: return optimizeLiteral((XQLiteral *)item); case ASTNode::QNAME_LITERAL: return optimizeQNameLiteral((XQQNameLiteral *)item); case ASTNode::NUMERIC_LITERAL: return optimizeNumericLiteral((XQNumericLiteral *)item); case ASTNode::SEQUENCE: return optimizeSequence((XQSequence *)item); case ASTNode::FUNCTION: return optimizeFunction((XQFunction *)item); case ASTNode::NAVIGATION: return optimizeNav((XQNav *)item); case ASTNode::VARIABLE: return optimizeVariable((XQVariable *)item); case ASTNode::STEP: return optimizeStep((XQStep *)item); case ASTNode::IF: return optimizeIf((XQIf *)item); case ASTNode::CASTABLE_AS: return optimizeCastableAs((XQCastableAs *)item); case ASTNode::CAST_AS: return optimizeCastAs((XQCastAs *)item); case ASTNode::TREAT_AS: return optimizeTreatAs((XQTreatAs *)item); case ASTNode::FUNCTION_COERCION: return optimizeFunctionCoercion((XQFunctionCoercion *)item); case ASTNode::OPERATOR: return optimizeOperator((XQOperator *)item); case ASTNode::CONTEXT_ITEM: return optimizeContextItem((XQContextItem *)item); case ASTNode::RETURN: return optimizeReturn((XQReturn *)item); case ASTNode::QUANTIFIED: return optimizeQuantified((XQQuantified *)item); case ASTNode::TYPESWITCH: return optimizeTypeswitch((XQTypeswitch *)item); case ASTNode::VALIDATE: return optimizeValidate((XQValidate *)item); case ASTNode::FUNCTION_CALL: return optimizeFunctionCall((XQFunctionCall *)item); case ASTNode::DOM_CONSTRUCTOR: return optimizeDOMConstructor((XQDOMConstructor *)item); case ASTNode::SIMPLE_CONTENT: return optimizeSimpleContent((XQSimpleContent *)item); case ASTNode::ORDERING_CHANGE: return optimizeOrderingChange((XQOrderingChange *)item); case ASTNode::ATOMIZE: return optimizeAtomize((XQAtomize *)item); case ASTNode::EBV: return optimizeEffectiveBooleanValue((XQEffectiveBooleanValue *)item); case ASTNode::MAP: return optimizeMap((XQMap *)item); case ASTNode::PROMOTE_UNTYPED: return optimizePromoteUntyped((XQPromoteUntyped *)item); case ASTNode::PROMOTE_NUMERIC: return optimizePromoteNumeric((XQPromoteNumeric *)item); case ASTNode::PROMOTE_ANY_URI: return optimizePromoteAnyURI((XQPromoteAnyURI *)item); case ASTNode::DOCUMENT_ORDER: return optimizeDocumentOrder((XQDocumentOrder *)item); case ASTNode::PREDICATE: return optimizePredicate((XQPredicate *)item); case ASTNode::USER_FUNCTION: return optimizeUserFunction((XQUserFunctionInstance *)item); case ASTNode::NAME_EXPRESSION: return optimizeNameExpression((XQNameExpression *)item); case ASTNode::CONTENT_SEQUENCE: return optimizeContentSequence((XQContentSequence *)item); case ASTNode::DIRECT_NAME: return optimizeDirectName((XQDirectName *)item); case ASTNode::UDELETE: return optimizeUDelete((UDelete *)item); case ASTNode::URENAME: return optimizeURename((URename *)item); case ASTNode::UREPLACE: return optimizeUReplace((UReplace *)item); case ASTNode::UREPLACE_VALUE_OF: return optimizeUReplaceValueOf((UReplaceValueOf *)item); case ASTNode::UINSERT_AS_FIRST: return optimizeUInsertAsFirst((UInsertAsFirst *)item); case ASTNode::UINSERT_AS_LAST: return optimizeUInsertAsLast((UInsertAsLast *)item); case ASTNode::UINSERT_INTO: return optimizeUInsertInto((UInsertInto *)item); case ASTNode::UINSERT_AFTER: return optimizeUInsertAfter((UInsertAfter *)item); case ASTNode::UINSERT_BEFORE: return optimizeUInsertBefore((UInsertBefore *)item); case ASTNode::UTRANSFORM: return optimizeUTransform((UTransform *)item); case ASTNode::UAPPLY_UPDATES: return optimizeUApplyUpdates((UApplyUpdates *)item); case ASTNode::FTCONTAINS: return optimizeFTContains((FTContains *)item); case ASTNode::NAMESPACE_BINDING: return optimizeNamespaceBinding((XQNamespaceBinding *)item); case ASTNode::FUNCTION_CONVERSION: return optimizeFunctionConversion((XQFunctionConversion *)item); case ASTNode::ANALYZE_STRING: return optimizeAnalyzeString((XQAnalyzeString *)item); case ASTNode::COPY_OF: return optimizeCopyOf((XQCopyOf *)item); case ASTNode::COPY: return optimizeCopy((XQCopy *)item); case ASTNode::DEBUG_HOOK: return optimizeASTDebugHook((ASTDebugHook *)item); case ASTNode::CALL_TEMPLATE: return optimizeCallTemplate((XQCallTemplate *)item); case ASTNode::APPLY_TEMPLATES: return optimizeApplyTemplates((XQApplyTemplates *)item); case ASTNode::INLINE_FUNCTION: return optimizeInlineFunction((XQInlineFunction *)item); case ASTNode::FUNCTION_REF: return optimizeFunctionRef((XQFunctionRef *)item); case ASTNode::FUNCTION_DEREF: return optimizeFunctionDeref((XQFunctionDeref *)item); case ASTNode::PARTIAL_APPLY: return optimizePartialApply((XQPartialApply *)item); } return optimizeUnknown(item); } ASTNode *ASTVisitor::optimizeUnknown(ASTNode *item) { return item; } ASTNode *ASTVisitor::optimizeFunction(XQFunction *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeContextItem(XQContextItem *item) { return item; } ASTNode *ASTVisitor::optimizeLiteral(XQLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeQNameLiteral(XQQNameLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeNumericLiteral(XQNumericLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeNav(XQNav *item) { XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); } return item; } ASTNode *ASTVisitor::optimizeSequence(XQSequence *item) { VectorOfASTNodes &args = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeStep(XQStep *item) { return item; } ASTNode *ASTVisitor::optimizeVariable(XQVariable *item) { return item; } ASTNode *ASTVisitor::optimizeIf(XQIf *item) { item->setTest(optimize(const_cast(item->getTest()))); item->setWhenTrue(optimize(const_cast(item->getWhenTrue()))); item->setWhenFalse(optimize(const_cast(item->getWhenFalse()))); return item; } ASTNode *ASTVisitor::optimizeCastableAs(XQCastableAs *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCastAs(XQCastAs *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeTreatAs(XQTreatAs *item) { item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); if(item->getFuncConvert()) item->setFuncConvert(optimize(item->getFuncConvert())); return item; } ASTNode *ASTVisitor::optimizeOperator(XQOperator *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeReturn(XQReturn *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { (*i)->setExpression(optimize((*i)->getExpression())); } const_cast(item->getDefaultCase())-> setExpression(optimize(item->getDefaultCase()->getExpression())); return item; } ASTNode *ASTVisitor::optimizeValidate(XQValidate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeFunctionCall(XQFunctionCall *item) { VectorOfASTNodes *args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeUserFunction(XQUserFunctionInstance *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeNameExpression(XQNameExpression *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeContentSequence(XQContentSequence *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeDirectName(XQDirectName *item) { return item; } ASTNode *ASTVisitor::optimizeDOMConstructor(XQDOMConstructor *item) { if(item->getName()) { item->setName(optimize(const_cast(item->getName()))); } VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { for(VectorOfASTNodes::iterator i = attrs->begin(); i != attrs->end(); ++i) { *i = optimize(*i); } } VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { *j = optimize(*j); } } if(item->getValue()) { item->setValue(optimize(const_cast(item->getValue()))); } return item; } ASTNode *ASTVisitor::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { *j = optimize(*j); } } return item; } ASTNode *ASTVisitor::optimizeOrderingChange(XQOrderingChange *item) { item->setExpr(optimize(item->getExpr())); return item; } ASTNode *ASTVisitor::optimizeAtomize(XQAtomize *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); item->setArg2(optimize(item->getArg2())); return item; } ASTNode *ASTVisitor::optimizePromoteUntyped(XQPromoteUntyped *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePromoteNumeric(XQPromoteNumeric *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePromoteAnyURI(XQPromoteAnyURI *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeDocumentOrder(XQDocumentOrder *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } ASTNode *ASTVisitor::optimizeNamespaceBinding(XQNamespaceBinding *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeFunctionConversion(XQFunctionConversion *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } ASTNode *ASTVisitor::optimizeCopyOf(XQCopyOf *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCopy(XQCopy *item) { item->setExpression(optimize(const_cast(item->getExpression()))); VectorOfASTNodes &args = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeASTDebugHook(ASTDebugHook *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCallTemplate(XQCallTemplate *item) { TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->value = optimize((*i)->value); } } if(item->getASTName()) item->setASTName(optimize(item->getASTName())); return item; } ASTNode *ASTVisitor::optimizeApplyTemplates(XQApplyTemplates *item) { item->setExpression(optimize(const_cast(item->getExpression()))); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->value = optimize((*i)->value); } } return item; } ASTNode *ASTVisitor::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->setUserFunction(optimizeFunctionDef(item->getUserFunction())); item->setInstance(optimize(item->getInstance())); return item; } ASTNode *ASTVisitor::optimizeFunctionRef(XQFunctionRef *item) { return item; } ASTNode *ASTVisitor::optimizeFunctionDeref(XQFunctionDeref *item) { item->setExpression(optimize(item->getExpression())); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { *i = optimize(*i); } } return item; } ASTNode *ASTVisitor::optimizePartialApply(XQPartialApply *item) { item->setExpression(optimize(item->getExpression())); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { if(*i != 0) *i = optimize(*i); } } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *ASTVisitor::optimizeUDelete(UDelete *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeURename(URename *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setName(optimize(const_cast(item->getName()))); return item; } ASTNode *ASTVisitor::optimizeUReplace(UReplace *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeUReplaceValueOf(UReplaceValueOf *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAsFirst(UInsertAsFirst *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAsLast(UInsertAsLast *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertInto(UInsertInto *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAfter(UInsertAfter *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertBefore(UInsertBefore *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUTransform(UTransform *item) { VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); return item; } ASTNode *ASTVisitor::optimizeUApplyUpdates(UApplyUpdates *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *ASTVisitor::optimizeFTContains(FTContains *item) { item->setArgument(optimize(item->getArgument())); item->setSelection(optimizeFTSelection(item->getSelection())); if(item->getIgnore()) item->setIgnore(optimize(item->getIgnore())); return item; } FTSelection *ASTVisitor::optimizeFTSelection(FTSelection *selection) { switch(selection->getType()) { case FTSelection::OR: return optimizeFTOr((FTOr*)selection); case FTSelection::AND: return optimizeFTAnd((FTAnd*)selection); case FTSelection::MILD_NOT: return optimizeFTMildnot((FTMildnot*)selection); case FTSelection::UNARY_NOT: return optimizeFTUnaryNot((FTUnaryNot*)selection); case FTSelection::WORDS: return optimizeFTWords((FTWords*)selection); case FTSelection::WORD: return optimizeFTWord((FTWord*)selection); case FTSelection::ORDER: return optimizeFTOrder((FTOrder*)selection); case FTSelection::DISTANCE: return optimizeFTDistance((FTDistance*)selection); case FTSelection::DISTANCE_LITERAL: return optimizeFTDistanceLiteral((FTDistanceLiteral*)selection); case FTSelection::SCOPE: return optimizeFTScope((FTScope*)selection); case FTSelection::CONTENT: return optimizeFTContent((FTContent*)selection); case FTSelection::WINDOW: return optimizeFTWindow((FTWindow*)selection); case FTSelection::WINDOW_LITERAL: return optimizeFTWindowLiteral((FTWindowLiteral*)selection); } return optimizeUnknownFTSelection(selection); } FTSelection *ASTVisitor::optimizeUnknownFTSelection(FTSelection *selection) { return selection; } FTSelection *ASTVisitor::optimizeFTWords(FTWords *selection) { selection->setExpr(optimize(selection->getExpr())); return selection; } FTSelection *ASTVisitor::optimizeFTWord(FTWord *selection) { return selection; } FTSelection *ASTVisitor::optimizeFTOr(FTOr *selection) { VectorOfFTSelections &args = const_cast(selection->getArguments()); for(VectorOfFTSelections::iterator i = args.begin(); i != args.end(); ++i) { *i = optimizeFTSelection(*i); } return selection; } FTSelection *ASTVisitor::optimizeFTAnd(FTAnd *selection) { VectorOfFTSelections &args = const_cast(selection->getArguments()); for(VectorOfFTSelections::iterator i = args.begin(); i != args.end(); ++i) { *i = optimizeFTSelection(*i); } return selection; } FTSelection *ASTVisitor::optimizeFTMildnot(FTMildnot *selection) { selection->setLeft(optimizeFTSelection(selection->getLeft())); selection->setRight(optimizeFTSelection(selection->getRight())); return selection; } FTSelection *ASTVisitor::optimizeFTUnaryNot(FTUnaryNot *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTOrder(FTOrder *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTDistance(FTDistance *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); FTRange &range = const_cast(selection->getRange()); range.arg1 = optimize(range.arg1); if(range.arg2) range.arg2 = optimize(range.arg2); return selection; } FTSelection *ASTVisitor::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTScope(FTScope *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTContent(FTContent *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTWindow(FTWindow *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); selection->setExpr(optimize(selection->getExpr())); return selection; } FTSelection *ASTVisitor::optimizeFTWindowLiteral(FTWindowLiteral *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } //////////////////////////////////////////////////////////////////////////////////////////////////// TupleNode *ASTVisitor::optimizeTupleNode(TupleNode *item) { switch(item->getType()) { case TupleNode::CONTEXT_TUPLE: return optimizeContextTuple((ContextTuple*)item); case TupleNode::FOR: return optimizeForTuple((ForTuple*)item); case TupleNode::LET: return optimizeLetTuple((LetTuple*)item); case TupleNode::WHERE: return optimizeWhereTuple((WhereTuple*)item); case TupleNode::COUNT: return optimizeCountTuple((CountTuple*)item); case TupleNode::ORDER_BY: return optimizeOrderByTuple((OrderByTuple*)item); case TupleNode::DEBUG_HOOK: return optimizeTupleDebugHook((TupleDebugHook*)item); } return optimizeUnknownTupleNode(item); } TupleNode *ASTVisitor::optimizeUnknownTupleNode(TupleNode *item) { if(item->getParent()) item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } TupleNode *ASTVisitor::optimizeContextTuple(ContextTuple *item) { return item; } TupleNode *ASTVisitor::optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } TupleNode *ASTVisitor::optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeTupleDebugHook(TupleDebugHook *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } XQilla-2.3.4/src/optimizer/QueryPathTreeGenerator.cpp0000644001725400016040000013410313273140037017567 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh XMLChDot[] = { chColon, chColon, chLatin_d, chLatin_o, chLatin_t, chNull }; QueryPathTreeGenerator::QueryPathTreeGenerator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), mm_(context->getMemoryManager()), context_(context), varStore_(&varStoreMemMgr_) { resetInternal(); } QueryPathNode *QueryPathTreeGenerator::createQueryPathNode(const NodeTest *nodeTest, QueryPathNode::Type type) { return new (mm_) QueryPathNode(nodeTest, type, mm_); } NodeTest *QueryPathTreeGenerator::createNodeTest(const XMLCh *nodeType, const XMLCh *uri, const XMLCh *name) { return new (mm_) NodeTest(nodeType, uri, name); } void QueryPathTreeGenerator::createAnyNodeResult(PathResult &result) { NodeTest *nt = createNodeTest(Node::document_string); QueryPathNode *root = createQueryPathNode(nt, QueryPathNode::ROOT); result.join(root); QueryPathNode *pisn = root->appendChild(createQueryPathNode(createNodeTest((XMLCh*)0), QueryPathNode::DESCENDANT)); result.join(pisn); QueryPathNode *cisn = pisn->appendChild(createQueryPathNode(createNodeTest(Node::attribute_string), QueryPathNode::ATTRIBUTE)); result.join(cisn); } void QueryPathTreeGenerator::resetInternal() { varStore_.clear(); // The initial context item could be a node of any type from anywhere - // set up a set of paths that reflect that PathResult contextResult; createAnyNodeResult(contextResult); varStore_.setGlobalVar(XMLChDot, XMLChDot, contextResult); } void QueryPathTreeGenerator::push(PathResult result) { results_.push_back(result); } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::pop() { PathResult result = results_.back(); results_.pop_back(); return result; } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::generate(ASTNode *item) { optimize(item); return pop(); } ASTNode *QueryPathTreeGenerator::optimize(ASTNode *item) { return ASTVisitor::optimize(item); } void QueryPathTreeGenerator::optimize(XQQuery *query) { ASTVisitor::optimize(query); if(query->getQueryBody() != 0) { pop().markSubtreeResult(); } } XQUserFunction *QueryPathTreeGenerator::optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody() != 0) { const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); for(ArgumentSpecs::const_iterator it = params->begin(); it != params->end(); ++it) { PathResult paramRes; if((*it)->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(paramRes); setVariable((*it)->getURI(), (*it)->getName(), paramRes); } } generate(const_cast(item->getFunctionBody())); if(params) { delete varStore_.popScope(); } } return item; } XQGlobalVariable *QueryPathTreeGenerator::optimizeGlobalVar(XQGlobalVariable *item) { PathResult result; if(item->getVariableExpr()) { result.join(generate(const_cast(item->getVariableExpr()))); } else { if(item->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(result); } varStore_.setGlobalVar(item->getVariableURI(), item->getVariableLocalName(), result); return item; } static QueryPathNode::Type getTypeFromAxis(XQStep::Axis axis) { QueryPathNode::Type result = (QueryPathNode::Type)-1; switch(axis) { case XQStep::CHILD: { result = QueryPathNode::CHILD; break; } case XQStep::ATTRIBUTE: { result = QueryPathNode::ATTRIBUTE; break; } case XQStep::DESCENDANT_OR_SELF: case XQStep::DESCENDANT: { result = QueryPathNode::DESCENDANT; break; } default: { // Do nothing break; } } return result; } const QueryPathTreeGenerator::PathResult &QueryPathTreeGenerator::getCurrentContext() const { return varStore_.getVar(XMLChDot, XMLChDot)->getValue(); } void QueryPathTreeGenerator::setCurrentContext(const PathResult &value) { setVariable(XMLChDot, XMLChDot, value); } void QueryPathTreeGenerator::setVariable(const XMLCh *uri, const XMLCh *name, const PathResult &value) { varStore_.declareVar(uri, name, value); } ASTNode *QueryPathTreeGenerator::optimizeStep(XQStep *item) { XQStep::Axis axis = item->getAxis(); const NodeTest *nodeTest = item->getNodeTest(); PathResult result; QueryPathNode dummy(nodeTest, getTypeFromAxis(axis), mm_); const PathResult ¤tContext = getCurrentContext(); for(QueryPathNode::Vector::const_iterator it = currentContext.returnPaths.begin(); it != currentContext.returnPaths.end(); ++it) { switch(axis) { case XQStep::PARENT: { generateParentStep(*it, dummy, result); break; } case XQStep::DESCENDANT_OR_SELF: { generateSelfStep(*it, dummy, result); generateBuiltInStep(*it, dummy, result); break; } case XQStep::SELF: { generateSelfStep(*it, dummy, result); break; } case XQStep::ANCESTOR: { generateAncestorStep(*it, dummy, result); break; } case XQStep::ANCESTOR_OR_SELF: { generateAncestorOrSelfStep(*it, dummy, result); break; } case XQStep::FOLLOWING: { generateFollowingStep(*it, dummy, result); break; } case XQStep::PRECEDING: { generatePrecedingStep(*it, dummy, result); break; } case XQStep::PRECEDING_SIBLING: case XQStep::FOLLOWING_SIBLING: { generateSiblingStep(*it, dummy, result); break; } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: { generateBuiltInStep(*it, dummy, result); break; } case XQStep::NAMESPACE: default: { // Do nothing break; } } } push(result); return item; } void QueryPathTreeGenerator::generateBuiltInStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { switch(target->getType()) { case QueryPathNode::ATTRIBUTE: { // Does nothing break; } case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: case QueryPathNode::ROOT: { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), node.getType()); result.join(target->appendChild(newNode)); break; } default: break; } } void QueryPathTreeGenerator::generateParentStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::ATTRIBUTE: case QueryPathNode::CHILD: { if(parent->isSubsetOf(&node)) { result.join(parent); } else if(node.isSubsetOf(parent)) { QueryPathNode *parent_parent = parent->getParent(); if(parent_parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), parent->getType()); result.join(parent_parent->appendChild(newNode)); } } break; } case QueryPathNode::DESCENDANT: { if(parent->isSubsetOf(&node)) { result.join(parent); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(parent->appendChild(newNode)); break; } case QueryPathNode::ROOT: { // There is no parent break; } default: break; } } void QueryPathTreeGenerator::generateSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { if(target->isSubsetOf(&node)) { result.join(target); } else if(node.isSubsetOf(target)) { QueryPathNode *parent = target->getParent(); if(parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), target->getType()); result.join(parent->appendChild(newNode)); } } } void QueryPathTreeGenerator::generateAncestorStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::ATTRIBUTE: case QueryPathNode::CHILD: { if(parent->isSubsetOf(&node)) { result.join(parent); } else if(node.isSubsetOf(parent)) { QueryPathNode *parent_parent = parent->getParent(); if(parent_parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), parent->getType()); result.join(parent_parent->appendChild(newNode)); } } generateAncestorStep(parent, node, result); break; } case QueryPathNode::DESCENDANT: { if(parent->isSubsetOf(&node)) { result.join(parent); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(parent->appendChild(newNode)); generateAncestorStep(parent, node, result); break; } case QueryPathNode::ROOT: { // Has no ancestors break; } default: break; } } void QueryPathTreeGenerator::generateAncestorOrSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { generateSelfStep(target, node, result); generateAncestorStep(target, node, result); } void QueryPathTreeGenerator::generateFollowingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(target->getRoot()->appendChild(newNode)); } void QueryPathTreeGenerator::generatePrecedingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *root = target->getRoot(); if(root->isSubsetOf(&node)) { result.join(root); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(root->appendChild(newNode)); } void QueryPathTreeGenerator::generateSiblingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), target->getType()); result.join(parent->appendChild(newNode)); break; } case QueryPathNode::ATTRIBUTE: case QueryPathNode::ROOT: { // Have no siblings break; } default: break; } } ASTNode *QueryPathTreeGenerator::optimizeNav(XQNav *item) { PathResult result = getCurrentContext(); bool setContext = false; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { if(setContext) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(result); } result = generate(i->step); if(setContext) { delete varStore_.popScope(); } setContext = true; } push(result); return item; } static const XMLCh *resolveURIArg(const ASTNode *arg, DynamicContext *context, bool &defaultCollection) { if(!arg->isConstant()) return 0; Item::Ptr item = arg->createResult(context)->next(context); if(item.isNull()) { defaultCollection = true; return 0; } const XMLCh *uriArg = item->asString(context); if(uriArg == 0) return 0; const XMLCh *baseUri = context->getBaseURI(); try { XMLUri uri; if(baseUri != 0 && *baseUri != 0) { XMLUri base(baseUri); uri = XMLUri(&base, uriArg); } else { uri = XMLUri(uriArg); } return context->getMemoryManager()->getPooledString(uri.getUriText()); } catch(...) { // don't throw; it's just that the URI isn't valid. } return 0; } ASTNode *QueryPathTreeGenerator::optimizeFunction(XQFunction *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); PathResult result; if(uri == XQFunction::XMLChFunctionURI) { // fn:root() if(name == FunctionRoot::name) { const PathResult ¤tContext = getCurrentContext(); // root() gets the root of it's argument, if it has one. // Otherwise it gets the root of the current context PathResult ret; if(args.empty()) { ret = currentContext; } else { ret = generate(args[0]); } for(QueryPathNode::Vector::iterator it = ret.returnPaths.begin(); it != ret.returnPaths.end(); ++it) { result.join((*it)->getRoot()); } } else if(name == FunctionDoc::name) { ASTNode *arg = args[0]; generate(arg); QueryPathNode *root = ((FunctionDoc*)item)->getQueryPathTree(); if(!root) { // Check criteria for safe document projection if(!arg->isConstant()) context_->setProjection(false); // Check to see if this document URI has already been accessed bool defaultCollection = false; const XMLCh *uriArg = resolveURIArg(arg, context_, defaultCollection); if(uriArg != 0) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0) projectionMap_[uriArg] = root; } ((FunctionDoc*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionDocument::name) { ASTNode *arg = args[0]; generate(arg); QueryPathNode *root = ((FunctionDoc*)item)->getQueryPathTree(); if(!root) { // Check criteria for safe document projection if(!arg->isConstant() || args.size() > 1) context_->setProjection(false); // Check to see if this document URI has already been accessed bool defaultCollection = false; const XMLCh *uriArg = resolveURIArg(arg, context_, defaultCollection); if(uriArg != 0) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0) projectionMap_[uriArg] = root; } ((FunctionDocument*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionCollection::name) { ASTNode *arg = 0; if(!args.empty()) { arg = args[0]; generate(arg); } QueryPathNode *root = ((FunctionCollection*)item)->getQueryPathTree(); if(!root) { const XMLCh *uriArg = 0; bool defaultCollection = false; if(arg != 0) { // Check criteria for safe document projection if(!arg->isConstant()) context_->setProjection(false); // Check to see if this document URI has already been accessed uriArg = resolveURIArg(arg, context_, defaultCollection); } else defaultCollection = true; if(uriArg != 0 || defaultCollection) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0 || defaultCollection) projectionMap_[uriArg] = root; } ((FunctionCollection*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionPut::name) { generate(args[0]).markSubtreeResult(); if(args.size() > 1) generate(args[1]).markSubtreeValue(); } else if(name == FunctionTrace::name) { // trace() returns it's first argument, and prints the string // value of it's second argument. result = generate(args[0]); generate(args[1]); } else if(name == FunctionHead::name || name == FunctionTail::name || name == FunctionUnordered::name) { // return their argument result = generate(args[0]); } else if(name == FunctionId::name || name == FunctionIdref::name) { PathResult nodes = generate(args[1]); // We don't handle these, so we mark the trees as unoptimisable nodes.markRoot(); generate(args[0]); } else if(name == FunctionLang::name) { generate(args[0]); PathResult nodeResult = generate(args[1]); // We want all the xml:lang attributes from all our lookup node's ancestors NodeTest *nt = createNodeTest(Node::element_string); QueryPathNode dummy(nt, QueryPathNode::CHILD, mm_); PathResult ancestorResult; QueryPathNode::Vector::const_iterator it; for(it = nodeResult.returnPaths.begin(); it != nodeResult.returnPaths.end(); ++it) { generateAncestorOrSelfStep(*it, dummy, ancestorResult); } NodeTest *nt2 = createNodeTest(Node::attribute_string, XMLUni::fgXMLURIName, mm_->getPooledString("lang")); QueryPathNode dummy2(nt2, QueryPathNode::ATTRIBUTE, mm_); PathResult attrResult; for(it = ancestorResult.returnPaths.begin(); it != ancestorResult.returnPaths.end(); ++it) { generateBuiltInStep(*it, dummy2, attrResult); } attrResult.markSubtreeValue(); } else if(name == FunctionBaseURI::name) { PathResult nodeResult = generate(args[0]); // We want all the xml:base attributes from all our lookup node's ancestors NodeTest *nt = createNodeTest(Node::element_string); QueryPathNode dummy(nt, QueryPathNode::CHILD, mm_); PathResult ancestorResult; QueryPathNode::Vector::const_iterator it; for(it = nodeResult.returnPaths.begin(); it != nodeResult.returnPaths.end(); ++it) { generateAncestorOrSelfStep(*it, dummy, ancestorResult); } NodeTest *nt2 = createNodeTest(Node::attribute_string, XMLUni::fgXMLURIName, mm_->getPooledString("base")); QueryPathNode dummy2(nt2, QueryPathNode::ATTRIBUTE, mm_); PathResult attrResult; for(it = ancestorResult.returnPaths.begin(); it != ancestorResult.returnPaths.end(); ++it) { generateBuiltInStep(*it, dummy2, attrResult); } attrResult.markSubtreeValue(); } // These implicitly use the value of the current context if they have no parameters else if((name == FunctionStringLength::name || name == FunctionNormalizeSpace::name || name == FunctionNumber::name || name == FunctionString::name) && args.empty()) { const PathResult ¤tContext = getCurrentContext(); currentContext.markSubtreeValue(); } else if(name == FunctionString::name) { generate(args[0]).markSubtreeValue(); } else { for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i); } } } else if(uri == XQillaFunction::XMLChFunctionURI) { if(name == FunctionParseXML::name) { // Returns a document, much the same as fn:doc() generate(args[0]); QueryPathNode *root = ((FunctionParseXML*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); ((FunctionParseXML*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionParseJSON::name) { // Returns a sequence of elements generate(args[0]); QueryPathNode *root = ((FunctionParseJSON*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::element_string); root = createQueryPathNode(nt, QueryPathNode::CHILD); ((FunctionParseJSON*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionExplain::name) { // Returns a sequence of elements generate(args[0]); QueryPathNode *root = ((FunctionExplain*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::element_string); root = createQueryPathNode(nt, QueryPathNode::CHILD); ((FunctionExplain*)item)->setQueryPathTree(root); } result.join(root); } else { // We don't know about this function, assume it will only need the descendants of it's node arguments for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i).markSubtreeResult(); } } } else { // We don't know about this function, assume it will only need the descendants of it's node arguments for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i).markSubtreeResult(); } } push(result); return item; } class ArgHolder { public: ArgHolder(const XMLCh *u, const XMLCh *n, const QueryPathTreeGenerator::PathResult &v) : uri(u), name(n), value(v) {} const XMLCh *uri, *name; QueryPathTreeGenerator::PathResult value; }; ASTNode *QueryPathTreeGenerator::optimizeUserFunction(XQUserFunctionInstance *item) { PathResult result; VectorOfASTNodes &args = const_cast(item->getArguments()); const XQUserFunction *functionDef = item->getFunctionDefinition(); // Evaluate the arguments in the current scope, declare them in the function's scope vector evaluatedArgs; if(functionDef->getSignature()->argSpecs) { ArgumentSpecs::const_iterator binding = functionDef->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::iterator arg = args.begin(); arg != args.end() && binding != functionDef->getSignature()->argSpecs->end(); ++arg, ++binding) { PathResult r = generate(*arg); if((*binding)->isUsed()) { evaluatedArgs.push_back(ArgHolder((*binding)->getURI(), (*binding)->getName(), r)); } } } if(functionDef->getFunctionBody() != 0) { // Check to see if this user function is recursing into a user function // that has already been called. pair::iterator, bool> ins = userFunctionStack_.insert(functionDef->getFunctionBody()); if(ins.second) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); for(vector::iterator it = evaluatedArgs.begin(); it != evaluatedArgs.end(); ++it) { setVariable(it->uri, it->name, it->value); } PathResult ret = generate(const_cast(functionDef->getFunctionBody())); result.join(ret); delete varStore_.popScope(); userFunctionStack_.erase(ins.first); push(result); return item; } } // All we can really do if it is recursive is to mark the entire tree as needed // TBD see if we can handle recursive user functions better - jpcs for(vector::iterator it = evaluatedArgs.begin(); it != evaluatedArgs.end(); ++it) { it->value.markRoot(); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeOperator(XQOperator *item) { PathResult result; VectorOfASTNodes &args = const_cast(item->getArguments()); const XMLCh *name = item->getOperatorName(); if(name == Union::name) { PathResult ret = generate(args[0]); result.join(ret); ret = generate(args[1]); result.join(ret); } else if(name == Intersect::name) { PathResult ret = generate(args[0]); result.join(ret); ret = generate(args[1]); result.join(ret); } else if(name == Except::name) { result = generate(args[0]); generate(args[1]); } else { for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i); } } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeSequence(XQSequence *item) { VectorOfASTNodes &args = const_cast(item->getChildren()); PathResult result; for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { PathResult ret = generate(*i); result.join(ret); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeVariable(XQVariable *item) { VarStoreRef *ref = varStore_.getVar(item->getURI(), item->getName()); PathResult result; if(ref != 0) { result = ref->getValue(); } else { // Undeclared global variable - we'll declare it here createAnyNodeResult(result); varStore_.setGlobalVar(item->getURI(), item->getName(), result); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeIf(XQIf *item) { PathResult result; PathResult test = generate(const_cast(item->getTest())); PathResult ret = generate(const_cast(item->getWhenTrue())); result.join(ret); ret = generate(const_cast(item->getWhenFalse())); result.join(ret); push(result); return item; } TupleNode *QueryPathTreeGenerator::optimizeForTuple(ForTuple *item) { optimizeTupleNode(const_cast(item->getParent())); PathResult r = generate(item->getExpression()); if(item->getVarName()) { setVariable(item->getVarURI(), item->getVarName(), r); } if(item->getPosName()) { setVariable(item->getPosURI(), item->getPosName(), PathResult()); } return item; } TupleNode *QueryPathTreeGenerator::optimizeLetTuple(LetTuple *item) { optimizeTupleNode(const_cast(item->getParent())); PathResult r = generate(item->getExpression()); if(item->getVarName()) { setVariable(item->getVarURI(), item->getVarName(), r); } return item; } TupleNode *QueryPathTreeGenerator::optimizeWhereTuple(WhereTuple *item) { optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); return item; } TupleNode *QueryPathTreeGenerator::optimizeCountTuple(CountTuple *item) { optimizeTupleNode(const_cast(item->getParent())); return item; } TupleNode *QueryPathTreeGenerator::optimizeOrderByTuple(OrderByTuple *item) { optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); return item; } TupleNode *QueryPathTreeGenerator::optimizeTupleDebugHook(TupleDebugHook *item) { optimizeTupleNode(const_cast(item->getParent())); return item; } ASTNode *QueryPathTreeGenerator::optimizeReturn(XQReturn *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); optimizeTupleNode(const_cast(item->getParent())); PathResult result = generate(item->getExpression()); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeQuantified(XQQuantified *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); delete varStore_.popScope(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeTypeswitch(XQTypeswitch *item) { PathResult result; PathResult expr = generate(const_cast(item->getExpression())); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { if((*i)->isVariableUsed()) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setVariable((*i)->getURI(), (*i)->getName(), expr); } PathResult ret = generate((*i)->getExpression()); result.join(ret); if((*i)->isVariableUsed()) { delete varStore_.popScope(); } } XQTypeswitch::Case *def = const_cast(item->getDefaultCase()); if(def->isVariableUsed()) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setVariable(def->getURI(), def->getName(), expr); } PathResult ret = generate(def->getExpression()); result.join(ret); if(def->isVariableUsed()) { delete varStore_.popScope(); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeDOMConstructor(XQDOMConstructor *item) { PathResult result; if(item->getName()) { generate(const_cast(item->getName())); } VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { for(VectorOfASTNodes::iterator i = attrs->begin(); i != attrs->end(); ++i) { generate(*i).markSubtreeResult(); } } VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { generate(*j).markSubtreeResult(); } } if(item->getValue()) { generate(const_cast(item->getValue())); } if(!item->getQueryPathTree()) { if(item->getNodeType() == Node::document_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::document_string), QueryPathNode::ROOT)); } else if(item->getNodeType() == Node::element_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::element_string), QueryPathNode::CHILD)); } else if(item->getNodeType() == Node::attribute_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::attribute_string), QueryPathNode::ATTRIBUTE)); } else { item->setQueryPathTree(createQueryPathNode(createNodeTest((XMLCh*)0), QueryPathNode::CHILD)); } } result.join(item->getQueryPathTree()); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { generate(*j); } } push(PathResult()); return item; } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::copyNodes(const PathResult &r) { // Emulate copying the nodes PathResult copyResult; r.markSubtreeResult(); NodeTest *nt = createNodeTest(Node::document_string); QueryPathNode *root = createQueryPathNode(nt, QueryPathNode::ROOT); QueryPathNode::Vector::const_iterator j = r.returnPaths.begin(); for(; j != r.returnPaths.end(); ++j) { switch((*j)->getType()) { case QueryPathNode::ATTRIBUTE: { QueryPathNode *pisn = createQueryPathNode(createNodeTest(Node::element_string), QueryPathNode::DESCENDANT); pisn = root->appendChild(pisn); copyResult.join(pisn->appendChild(createQueryPathNode((*j)->getNodeTest(), QueryPathNode::ATTRIBUTE))); break; } case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: { copyResult.join(root->appendChild(createQueryPathNode((*j)->getNodeTest(), QueryPathNode::DESCENDANT))); break; } case QueryPathNode::ROOT: { copyResult.join(root); break; } default: break; } } return copyResult; } ASTNode *QueryPathTreeGenerator::optimizeContentSequence(XQContentSequence *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeDirectName(XQDirectName *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeContextItem(XQContextItem *item) { push(getCurrentContext()); return item; } ASTNode *QueryPathTreeGenerator::optimizeLiteral(XQLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeQNameLiteral(XQQNameLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeNumericLiteral(XQNumericLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionRef(XQFunctionRef *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeAtomize(XQAtomize *item) { generate(const_cast(item->getExpression())).markSubtreeValue(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { generate(const_cast(item->getExpression())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeMap(XQMap *item) { PathResult result = generate(item->getArg1()); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); if(item->getName() == 0) { setCurrentContext(result); } else { setVariable(item->getURI(), item->getName(), result); } result = generate(item->getArg2()); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeValidate(XQValidate *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizePredicate(XQPredicate *item) { PathResult result = generate(const_cast(item->getExpression())); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(result); generate(const_cast(item->getPredicate())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeUDelete(UDelete *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getExpression())).markRoot(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeURename(URename *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getName())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUReplace(UReplace *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getExpression())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUReplaceValueOf(UReplaceValueOf *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getExpression())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAsFirst(UInsertAsFirst *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAsLast(UInsertAsLast *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertInto(UInsertInto *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAfter(UInsertAfter *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertBefore(UInsertBefore *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUTransform(UTransform *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { setVariable((*i)->uri_, (*i)->name_, generate((*i)->expr_)); } generate(const_cast(item->getModifyExpr())); PathResult result = generate(const_cast(item->getReturnExpr())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionCall(XQFunctionCall *item) { // Shouldn't happen VectorOfASTNodes *args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { generate(*i); } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFTContains(FTContains *item) { generate(item->getArgument()); optimizeFTSelection(item->getSelection()); if(item->getIgnore()) generate(item->getIgnore()); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeAnalyzeString(XQAnalyzeString *item) { PathResult result; generate(item->getExpression()); generate(item->getRegex()); if(item->getFlags()) generate(item->getFlags()); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(PathResult()); result.join(generate(item->getMatch())); result.join(generate(item->getNonMatch())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeCopyOf(XQCopyOf *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeCopy(XQCopy *item) { VectorOfASTNodes &children = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator j = children.begin(); j != children.end(); ++j) { generate(*j).markSubtreeResult(); } push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeCallTemplate(XQCallTemplate *item) { // TBD Could be better - jpcs context_->setProjection(false); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { generate((*i)->value).markRoot(); } } if(item->getASTName()) generate(item->getASTName()); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeApplyTemplates(XQApplyTemplates *item) { // TBD Could be better - jpcs context_->setProjection(false); PathResult res = generate(const_cast(item->getExpression())); // varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); // setCurrentContext(res); // delete varStore_.popScope(); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { generate((*i)->value).markRoot(); } } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) optimizeFunctionDef(item->getUserFunction()); const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); ArgumentSpecs::const_iterator it = params->begin(); unsigned int c = 0; for(; it != params->end(); ++it, ++c) { PathResult paramRes; if((*it)->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(paramRes); setVariable((*it)->getURI(), (*it)->getName(), paramRes); } } generate(item->getInstance()).markSubtreeResult(); if(params) { delete varStore_.popScope(); } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionDeref(XQFunctionDeref *item) { // TBD Could be better - jpcs context_->setProjection(false); // We could trace which function instances could possibly be called here // and treat the function dereference as the union of all the functions // it could call. generate(item->getExpression()); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { generate(*i).markRoot(); } } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizePartialApply(XQPartialApply *item) { // TBD Could be better - jpcs context_->setProjection(false); // We could trace which function instances could possibly be called here // and treat the function dereference as the union of all the functions // it could call. generate(item->getExpression()); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { if(*i != 0) generate(*i).markRoot(); } } push(PathResult()); return item; } #define UNCHANGED_FULL(methodname, classname) \ ASTNode *QueryPathTreeGenerator::optimize ## methodname (classname *item) \ { \ return ASTVisitor::optimize ## methodname (item); \ } #define UNCHANGED_XQ(name) UNCHANGED_FULL(name, XQ ## name) #define UNCHANGED(name) UNCHANGED_FULL(name, name) UNCHANGED_XQ(NameExpression) UNCHANGED_XQ(CastAs) UNCHANGED_XQ(TreatAs) UNCHANGED_XQ(FunctionCoercion) UNCHANGED_XQ(OrderingChange) UNCHANGED_XQ(CastableAs) UNCHANGED_XQ(PromoteUntyped) UNCHANGED_XQ(PromoteNumeric) UNCHANGED_XQ(PromoteAnyURI) UNCHANGED_XQ(DocumentOrder) UNCHANGED(UApplyUpdates) UNCHANGED_XQ(NamespaceBinding) UNCHANGED_XQ(FunctionConversion) UNCHANGED(ASTDebugHook) #define UNCHANGED_FT(classname) \ FTSelection *QueryPathTreeGenerator::optimize ## classname (classname *item) \ { \ return ASTVisitor::optimize ## classname (item); \ } UNCHANGED_FT(FTWords) UNCHANGED_FT(FTWord) UNCHANGED_FT(FTMildnot) UNCHANGED_FT(FTUnaryNot) UNCHANGED_FT(FTOrder) UNCHANGED_FT(FTDistance) UNCHANGED_FT(FTDistanceLiteral) UNCHANGED_FT(FTScope) UNCHANGED_FT(FTContent) UNCHANGED_FT(FTWindow) UNCHANGED_FT(FTWindowLiteral) UNCHANGED_FT(FTOr) UNCHANGED_FT(FTAnd) ASTNode *QueryPathTreeGenerator::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *QueryPathTreeGenerator::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *QueryPathTreeGenerator::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } TupleNode *QueryPathTreeGenerator::optimizeContextTuple(ContextTuple *item) { return ASTVisitor::optimizeContextTuple(item); } //////////////////////////////////////////////////////////////////////////////////////////////////// void QueryPathTreeGenerator::PathResult::join(const QueryPathNode::MVector &o) { returnPaths.insert(returnPaths.begin(), o.begin(), o.end()); } void QueryPathTreeGenerator::PathResult::join(const PathResult &o) { returnPaths.insert(returnPaths.begin(), o.returnPaths.begin(), o.returnPaths.end()); } void QueryPathTreeGenerator::PathResult::join(QueryPathNode *o) { returnPaths.push_back(o); } void QueryPathTreeGenerator::PathResult::markSubtreeValue() const { // Mark the paths as needing the subtree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->markSubtreeValue(); } } void QueryPathTreeGenerator::PathResult::markSubtreeResult() const { // Mark the paths as needing the subtree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->markSubtreeResult(); } } void QueryPathTreeGenerator::PathResult::markRoot() const { // Mark the paths as needing the entire tree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->getRoot()->markSubtreeResult(); } } XQilla-2.3.4/src/optimizer/ASTReleaser.cpp0000644001725400016040000002764713273140037015306 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "xqilla/functions/FunctionMatches.hpp" #include #include #include #include ASTReleaser::ASTReleaser() { } void ASTReleaser::release(ASTNode *item) { optimize(item); } void ASTReleaser::release(TupleNode *item) { optimizeTupleNode(item); } void ASTReleaser::release(XQUserFunction *item) { optimizeFunctionDef(item); } XQGlobalVariable *ASTReleaser::optimizeGlobalVar(XQGlobalVariable *item) { return ASTVisitor::optimizeGlobalVar(item); } XQUserFunction *ASTReleaser::optimizeFunctionDef(XQUserFunction *item) { if(item) { ASTVisitor::optimizeFunctionDef(item); item->releaseImpl(); } return 0; } ASTNode *ASTReleaser::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *ASTReleaser::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *ASTReleaser::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } ASTNode *ASTReleaser::optimize(ASTNode *item) { if(item) { return ASTVisitor::optimize(item); } return 0; } TupleNode *ASTReleaser::optimizeTupleNode(TupleNode *item) { if(item) { return ASTVisitor::optimizeTupleNode(item); } return 0; } FTSelection *ASTReleaser::optimizeFTSelection(FTSelection *selection) { if(selection) { return ASTVisitor::optimizeFTSelection(selection); } return 0; } #define RELEASE_IMPL() { \ const_cast(item->getStaticAnalysis()).release(); \ item->getMemoryManager()->deallocate(item); \ return 0; \ } #define RELEASE_FULL(methodname, classname) \ ASTNode *ASTReleaser::optimize ## methodname (classname *item) \ { \ ASTVisitor::optimize ## methodname (item); \ RELEASE_IMPL(); \ } #define RELEASE_XQ(name) RELEASE_FULL(name, XQ ## name) #define RELEASE(name) RELEASE_FULL(name, name) // TBD release ItemConstructor objects - jpcs // TBD release SequenceType objects - jpcs // TBD release FTSelection objects - jpcs RELEASE_XQ(Literal) RELEASE_XQ(QNameLiteral) RELEASE_XQ(NumericLiteral) RELEASE_XQ(Step) RELEASE_XQ(Variable) RELEASE_XQ(If) RELEASE_XQ(CastableAs) RELEASE_XQ(CastAs) RELEASE_XQ(TreatAs) RELEASE_XQ(FunctionCoercion) RELEASE_XQ(ContextItem) RELEASE_XQ(Return) RELEASE_XQ(Quantified) RELEASE_XQ(Validate) RELEASE_XQ(OrderingChange) RELEASE_XQ(Atomize) RELEASE_XQ(EffectiveBooleanValue) RELEASE_XQ(PromoteUntyped) RELEASE_XQ(PromoteNumeric) RELEASE_XQ(PromoteAnyURI) RELEASE_XQ(DocumentOrder) RELEASE_XQ(Predicate) RELEASE_XQ(Map) RELEASE_XQ(NameExpression) RELEASE_XQ(ContentSequence) RELEASE_XQ(DirectName) RELEASE_XQ(NamespaceBinding) RELEASE_XQ(FunctionConversion) RELEASE_XQ(AnalyzeString) RELEASE_XQ(CopyOf) RELEASE_XQ(FunctionRef) RELEASE(ASTDebugHook) RELEASE(UDelete) RELEASE(URename) RELEASE(UReplace) RELEASE(UReplaceValueOf) RELEASE(UInsertAsFirst) RELEASE(UInsertAsLast) RELEASE(UInsertInto) RELEASE(UInsertAfter) RELEASE(UInsertBefore) RELEASE(UApplyUpdates) RELEASE(FTContains) ASTNode *ASTReleaser::optimizeInlineFunction(XQInlineFunction *item) { ASTVisitor::optimizeInlineFunction(item); if(item->getSignature()) item->getSignature()->release(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunction(XQFunction *item) { ASTVisitor::optimizeFunction(item); const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); if(uri == XQFunction::XMLChFunctionURI) { // one of three regexp functions if(name == FunctionMatches::name || name == FunctionReplace::name || name == FunctionTokenize::name) { RegExpFunction *f = (RegExpFunction*) item; const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp = f->getRegExp(); delete regExp; } } // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); if(item->getSignature()) item->getSignature()->release(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeNav(XQNav *item) { ASTVisitor::optimizeNav(item); // Release the step vector #if defined(_MSC_VER) || defined(__xlC__) typedef XQNav::Steps StepVector; const_cast(item->getSteps()).~StepVector(); #else const_cast >&>(item->getSteps()).~vector >(); #endif RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeSequence(XQSequence *item) { ASTVisitor::optimizeSequence(item); // Release the argument vector const_cast(item->getChildren()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeOperator(XQOperator *item) { ASTVisitor::optimizeOperator(item); // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeTypeswitch(XQTypeswitch *item) { ASTVisitor::optimizeTypeswitch(item); // Release the clauses and vector #if defined(_MSC_VER) || defined(__xlC__) typedef XQTypeswitch::Cases ClauseVector; ClauseVector *clauses = const_cast(item->getCases()); #else std::vector >* clauses = const_cast >*>(item->getCases()); #endif for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { item->getMemoryManager()->deallocate(*i); } #if defined(_MSC_VER) || defined(__xlC__) clauses->~ClauseVector(); #else clauses->~vector >(); #endif item->getMemoryManager()->deallocate(clauses); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunctionCall(XQFunctionCall *item) { ASTVisitor::optimizeFunctionCall(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeUserFunction(XQUserFunctionInstance *item) { ASTVisitor::optimizeUserFunction(item); // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeDOMConstructor(XQDOMConstructor *item) { ASTVisitor::optimizeDOMConstructor(item); // Release the attrs vector VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { attrs->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(attrs); } // Release the children vector VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { children->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(children); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeSimpleContent(XQSimpleContent *item) { ASTVisitor::optimizeSimpleContent(item); // Release the children vector VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { children->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(children); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeCopy(XQCopy *item) { ASTVisitor::optimizeCopy(item); // Release the children vector const_cast(item->getChildren()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeCallTemplate(XQCallTemplate *item) { ASTVisitor::optimizeCallTemplate(item); // Release the template arguments and vector TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->varSrc.release(); item->getMemoryManager()->deallocate(*i); } args->~TemplateArguments(); item->getMemoryManager()->deallocate(args); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeApplyTemplates(XQApplyTemplates *item) { ASTVisitor::optimizeApplyTemplates(item); // Release the template arguments and vector TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->varSrc.release(); item->getMemoryManager()->deallocate(*i); } args->~TemplateArguments(); item->getMemoryManager()->deallocate(args); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunctionDeref(XQFunctionDeref *item) { ASTVisitor::optimizeFunctionDeref(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizePartialApply(XQPartialApply *item) { ASTVisitor::optimizePartialApply(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeUTransform(UTransform *item) { ASTVisitor::optimizeUTransform(item); // Release the copy bindings and vector VectorOfCopyBinding *bindings = const_cast(item->getBindings()); if(bindings != 0) { for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->src_.release(); item->getMemoryManager()->deallocate(*i); } bindings->~VectorOfCopyBinding(); item->getMemoryManager()->deallocate(bindings); } RELEASE_IMPL(); } #define RELEASE_TUPLE(name) \ TupleNode *ASTReleaser::optimize ## name (name *item) \ { \ ASTVisitor::optimize ## name (item); \ item->getMemoryManager()->deallocate(item); \ return 0; \ } RELEASE_TUPLE(ContextTuple) RELEASE_TUPLE(ForTuple) RELEASE_TUPLE(LetTuple) RELEASE_TUPLE(WhereTuple) RELEASE_TUPLE(CountTuple) RELEASE_TUPLE(OrderByTuple) RELEASE_TUPLE(TupleDebugHook) #define RELEASE_FT(classname) \ FTSelection *ASTReleaser::optimize ## classname (classname *selection) \ { \ ASTVisitor::optimize ## classname (selection); \ const_cast(selection->getStaticAnalysis()).release(); \ selection->getMemoryManager()->deallocate(selection); \ return 0; \ } RELEASE_FT(FTWords) RELEASE_FT(FTWord) RELEASE_FT(FTMildnot) RELEASE_FT(FTUnaryNot) RELEASE_FT(FTOrder) RELEASE_FT(FTDistance) RELEASE_FT(FTDistanceLiteral) RELEASE_FT(FTScope) RELEASE_FT(FTContent) RELEASE_FT(FTWindow) RELEASE_FT(FTWindowLiteral) FTSelection *ASTReleaser::optimizeFTOr(FTOr *selection) { ASTVisitor::optimizeFTOr(selection); const_cast(selection->getArguments()).~VectorOfFTSelections(); const_cast(selection->getStaticAnalysis()).release(); selection->getMemoryManager()->deallocate(selection); return 0; } FTSelection *ASTReleaser::optimizeFTAnd(FTAnd *selection) { ASTVisitor::optimizeFTAnd(selection); const_cast(selection->getArguments()).~VectorOfFTSelections(); const_cast(selection->getStaticAnalysis()).release(); selection->getMemoryManager()->deallocate(selection); return 0; } XQilla-2.3.4/src/optimizer/ASTToXML.cpp0000644001725400016040000013104613273140037014474 00000000000000/* * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // #define SHOW_QUERY_PATH_TREES // #define SHOW_HIDDEN_AST #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh s_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh s_type[] = { 't', 'y', 'p', 'e', 0 }; static const XMLCh s_value[] = { 'v', 'a', 'l', 'u', 'e', 0 }; static const XMLCh s_true[] = { 't', 'r', 'u', 'e', 0 }; static const XMLCh s_false[] = { 'f', 'a', 'l', 's', 'e', 0 }; static const XMLCh s_uri[] = { 'u', 'r', 'i', 0 }; static const XMLCh s_prefix[] = { 'p', 'r', 'e', 'f', 'i', 'x', 0 }; static const XMLCh s_localname[] = { 'l', 'o', 'c', 'a', 'l', 'n', 'a', 'm', 'e', 0 }; static const XMLCh s_units[] = { 'u', 'n', 'i', 't', 's', 0 }; static const XMLCh s_distance[] = { 'd', 'i', 's', 't', 'a', 'n', 'c', 'e', 0 }; static const XMLCh s_unknown[] = { 'u', 'n', 'k', 'n', 'o', 'w', 'n', 0 }; static const XMLCh s_Binding[] = { 'B', 'i', 'n', 'd', 'i', 'n', 'g', 0 }; ASTToXML::ASTToXML() : events_(0), context_(0), indent_(0), hasChildren_(false) { } string ASTToXML::print(const XQQuery *query, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(query, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const XQUserFunction *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const ASTNode *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const TupleNode *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } void ASTToXML::run(const XQQuery *query, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimize((XQQuery*)query); } void ASTToXML::run(const ASTNode *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimize((ASTNode*)item); } void ASTToXML::run(const TupleNode *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimizeTupleNode((TupleNode*)item); } void ASTToXML::run(const XQUserFunction *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimizeFunctionDef((XQUserFunction*)item); } void ASTToXML::optimize(XQQuery *query) { static const XMLCh s_Module[] = { 'M', 'o', 'd', 'u', 'l', 'e', 0 }; static const XMLCh s_XQuery[] = { 'X', 'Q', 'u', 'e', 'r', 'y', 0 }; static const XMLCh s_targetNamespace[] = { 't', 'a', 'r', 'g', 'e', 't', 'N', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; // static const XMLCh s_ImportedModule[] = { 'I', 'm', 'p', 'o', 'r', 't', 'e', 'd', 'M', 'o', 'd', 'u', 'l', 'e', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, query->getIsLibraryModule() ? s_Module : s_XQuery); if(query->getModuleTargetNamespace()) { events_->attributeEvent(0, 0, s_targetNamespace, query->getModuleTargetNamespace(), 0, 0); } { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; // const ImportedModules &modules = query->getImportedModules(); // for(it1 = modules.begin(); it1 != modules.end(); ++it1) { // indent(); // events_->startElementEvent(0, 0, s_ImportedModule : s_XQuery); // events_->attributeEvent(0, 0, s_targetNamespace, (*it1)->getModuleTargetNamespace(), 0, 0); // events_->endElementEvent(0, 0, s_ImportedModule, 0, 0); // newline(); // } ASTVisitor::optimize(query); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, query->getIsLibraryModule() ? s_Module : s_XQuery, 0, 0); newline(); hasChildren_ = true; } XQGlobalVariable *ASTToXML::optimizeGlobalVar(XQGlobalVariable *item) { static const XMLCh s_GlobalParam[] = { 'G', 'l', 'o', 'b', 'a', 'l', 'P', 'a', 'r', 'a', 'm', 0 }; static const XMLCh s_GlobalVar[] = { 'G', 'l', 'o', 'b', 'a', 'l', 'V', 'a', 'r', 0 }; static const XMLCh s_external[] = { 'e', 'x', 't', 'e', 'r', 'n', 'a', 'l', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, item->isParam() ? s_GlobalParam : s_GlobalVar); XMLBuffer buf; qname(item->getVariableName(), 0, item->getVariableURI(), item->getVariableLocalName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); if(item->isExternal()) events_->attributeEvent(0, 0, s_external, s_true, 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(item->getSequenceType()) optimizeSequenceType(item->getSequenceType()); ASTVisitor::optimizeGlobalVar(item); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, item->isParam() ? s_GlobalParam : s_GlobalVar, 0, 0); newline(); hasChildren_ = true; return item; } XQUserFunction *ASTToXML::optimizeFunctionDef(XQUserFunction *item) { static const XMLCh s_TemplateDefinition[] = { 'T', 'e', 'm', 'p', 'l', 'a', 't', 'e', 'D', 'e', 'f', 'i', 'n', 'i', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_FunctionDefinition[] = { 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 'D', 'e', 'f', 'i', 'n', 'i', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_Pattern[] = { 'P', 'a', 't', 't', 'e', 'r', 'n', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, item->isTemplate() ? s_TemplateDefinition : s_FunctionDefinition); if(item->getQName() != 0 || item->getName() != 0) { XMLBuffer buf; qname(item->getQName(), 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } optimizeFunctionSignature(item->getSignature()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(item->getPattern()) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Pattern); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; VectorOfASTNodes::iterator patIt = item->getPattern()->begin(); for(; patIt != item->getPattern()->end(); ++patIt) { optimize(*patIt); } } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Pattern, 0, 0); newline(); hasChildren_ = true; } if(item->getFunctionBody()) optimize((ASTNode*)item->getFunctionBody()); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, item->isTemplate() ? s_TemplateDefinition : s_FunctionDefinition, 0, 0); newline(); hasChildren_ = true; return item; } void ASTToXML::getElementName(ASTNode *item, XMLBuffer &buf) { if(!item) { buf.append(X("Null")); return; } switch(item->getType()) { case ASTNode::LITERAL: buf.append(X("Literal")); break; case ASTNode::QNAME_LITERAL: buf.append(X("QNameLiteral")); break; case ASTNode::NUMERIC_LITERAL: buf.append(X("NumericLiteral")); break; case ASTNode::SEQUENCE: buf.append(X("Sequence")); break; case ASTNode::FUNCTION: buf.append(X("Function")); break; case ASTNode::NAVIGATION: buf.append(X("Nav")); break; case ASTNode::VARIABLE: buf.append(X("Variable")); break; case ASTNode::STEP: buf.append(X("Step")); break; case ASTNode::IF: buf.append(X("If")); break; case ASTNode::CASTABLE_AS: buf.append(X("CastableAs")); break; case ASTNode::CAST_AS: buf.append(X("CastAs")); break; case ASTNode::TREAT_AS: buf.append(X("TreatAs")); break; case ASTNode::FUNCTION_COERCION: buf.append(X("FunctionCoercion")); break; case ASTNode::OPERATOR: buf.append(((XQOperator*)item)->getOperatorName()); break; case ASTNode::CONTEXT_ITEM: buf.append(X("ContextItem")); break; case ASTNode::RETURN: buf.append(X("Return")); break; case ASTNode::QUANTIFIED: buf.append(((XQQuantified*)item)->getQuantifierType() == XQQuantified::SOME ? X("Some") : X("Every")); break; case ASTNode::TYPESWITCH: buf.append(X("Typeswitch")); break; case ASTNode::VALIDATE: buf.append(X("Validate")); break; case ASTNode::FUNCTION_CALL: buf.append(X("FunctionCall")); break; case ASTNode::DOM_CONSTRUCTOR: buf.append(X("NodeConstructor")); break; case ASTNode::SIMPLE_CONTENT: buf.append(X("SimpleContent")); break; case ASTNode::ORDERING_CHANGE: if(((XQOrderingChange*)item)->getOrderingValue() == StaticContext::ORDERING_ORDERED) buf.append(X("Ordered")); else buf.append(X("Unordered")); break; case ASTNode::ATOMIZE: buf.append(X("Atomize")); break; case ASTNode::EBV: buf.append(X("EffectiveBooleanValue")); break; case ASTNode::MAP: buf.append(X("Map")); break; case ASTNode::PROMOTE_UNTYPED: buf.append(X("PromoteUntyped")); break; case ASTNode::PROMOTE_NUMERIC: buf.append(X("PromoteNumeric")); break; case ASTNode::PROMOTE_ANY_URI: buf.append(X("PromoteAnyURI")); break; case ASTNode::DOCUMENT_ORDER: buf.append((((XQDocumentOrder*)item)->getUnordered()) ? X("UniqueNodes") : X("DocumentOrder")); break; case ASTNode::PREDICATE: buf.append(X("Predicate")); break; case ASTNode::USER_FUNCTION: buf.append(((XQUserFunctionInstance*)item)->getFunctionDefinition()->isTemplate() ? X("Template") : X("UserFunction")); break; case ASTNode::NAME_EXPRESSION: buf.append(X("NameExpression")); break; case ASTNode::CONTENT_SEQUENCE: buf.append(X("ContentSequence")); break; case ASTNode::DIRECT_NAME: buf.append(X("DirectName")); break; case ASTNode::UDELETE: buf.append(X("UDelete")); break; case ASTNode::URENAME: buf.append(X("URename")); break; case ASTNode::UREPLACE: buf.append(X("UReplace")); break; case ASTNode::UREPLACE_VALUE_OF: buf.append(X("UReplaceValueOf")); break; case ASTNode::UINSERT_AS_FIRST: buf.append(X("UInsertAsFirst")); break; case ASTNode::UINSERT_AS_LAST: buf.append(X("UInsertAsLast")); break; case ASTNode::UINSERT_INTO: buf.append(X("UInsertInto")); break; case ASTNode::UINSERT_AFTER: buf.append(X("UInsertAfter")); break; case ASTNode::UINSERT_BEFORE: buf.append(X("UInsertBefore")); break; case ASTNode::UTRANSFORM: buf.append(X("UTransform")); break; case ASTNode::UAPPLY_UPDATES: buf.append(X("UApplyUpdates")); break; case ASTNode::FTCONTAINS: buf.append(X("FTContains")); break; case ASTNode::NAMESPACE_BINDING: buf.append(X("NamespaceBinding")); break; case ASTNode::FUNCTION_CONVERSION: buf.append(X("FunctionConversion")); break; case ASTNode::ANALYZE_STRING: buf.append(X("AnalyzeString")); break; case ASTNode::COPY_OF: buf.append(X("CopyOf")); break; case ASTNode::COPY: buf.append(X("Copy")); break; case ASTNode::DEBUG_HOOK: #ifdef SHOW_HIDDEN_AST buf.append(X("ASTDebugHook")); #endif break; case ASTNode::CALL_TEMPLATE: buf.append(X("CallTemplate")); break; case ASTNode::APPLY_TEMPLATES: buf.append(X("ApplyTemplates")); break; case ASTNode::INLINE_FUNCTION: buf.append(X("InlineFunction")); break; case ASTNode::FUNCTION_REF: buf.append(X("FunctionRef")); break; case ASTNode::FUNCTION_DEREF: buf.append(X("FunctionDeref")); break; case ASTNode::PARTIAL_APPLY: buf.append(X("PartialApply")); break; default: buf.append(X("Unknown")); break; } } ASTNode *ASTToXML::optimize(ASTNode *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimize(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); if(item) { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimize(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } ASTNode *ASTToXML::optimizeFunction(XQFunction *item) { const XMLCh *funUri = item->getFunctionURI(); const XMLCh *funName = item->getFunctionName(); XMLBuffer buf; qname(0, 0, funUri, funName, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); // QueryPathNode *queryPathTree = 0; // #ifdef SHOW_QUERY_PATH_TREES // if(funUri == XQFunction::XMLChFunctionURI) { // if(funName == FunctionDoc::name) { // queryPathTree = ((FunctionDoc*)item)->getQueryPathTree(); // } // else if(funName == FunctionDocument::name) { // queryPathTree = ((FunctionDocument*)item)->getQueryPathTree(); // } // else if(funName == FunctionCollection::name) { // queryPathTree = ((FunctionCollection*)item)->getQueryPathTree(); // } // } // else if(funUri == XQillaFunction::XMLChFunctionURI) { // if(funName == FunctionParseXML::name) { // queryPathTree = ((FunctionParseXML*)item)->getQueryPathTree(); // } // else if(funName == FunctionParseJSON::name) { // queryPathTree = ((FunctionParseJSON*)item)->getQueryPathTree(); // } // else if(funName == FunctionExplain::name) { // queryPathTree = ((FunctionExplain*)item)->getQueryPathTree(); // } // } // #endif ASTVisitor::optimizeFunction(item); // if(queryPathTree) // queryPathTree->toString(indent + INDENT); return item; } ASTNode *ASTToXML::optimizeOperator(XQOperator *item) { static const XMLCh s_comparison[] = { 'c', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; static const XMLCh s_before[] = { 'b', 'e', 'f', 'o', 'r', 'e', 0 }; if(item->getOperatorName() == GeneralComp::name) { events_->attributeEvent(0, 0, s_comparison, getComparisonOperationName(((GeneralComp *)item)->getOperation()), 0, 0); } else if(item->getOperatorName() == OrderComparison::name) { events_->attributeEvent(0, 0, s_before, ((OrderComparison*)item)->getTestBefore() ? s_true : s_false, 0, 0); } return ASTVisitor::optimizeOperator(item); } ASTNode *ASTToXML::optimizeLiteral(XQLiteral *item) { events_->attributeEvent(0, 0, s_value, item->getValue(), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeLiteral(item); } ASTNode *ASTToXML::optimizeQNameLiteral(XQQNameLiteral *item) { events_->attributeEvent(0, 0, s_uri, item->getURI(), 0, 0); events_->attributeEvent(0, 0, s_prefix, item->getPrefix(), 0, 0); events_->attributeEvent(0, 0, s_localname, item->getLocalname(), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeQNameLiteral(item); } ASTNode *ASTToXML::optimizeNumericLiteral(XQNumericLiteral *item) { char obuf[1024]; m_apm_to_string_mt(obuf, item->getRawValue().m_apm_datalength, const_cast(&item->getRawValue())); events_->attributeEvent(0, 0, s_value, X(obuf), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeNumericLiteral(item); } void ASTToXML::optimizeNodeTest(const NodeTest *step) { static const XMLCh s_asterisk[] = { '*', 0 }; static const XMLCh s_nodeType[] = { 'n', 'o', 'd', 'e', 'T', 'y', 'p', 'e', 0 }; SequenceType::ItemType *type = step->getItemType(); if(type) { XMLBuffer buf; type->toBuffer(buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); } else { if(step->getNamespaceWildcard()) { events_->attributeEvent(0, 0, s_uri, s_asterisk, 0, 0); } else { if(step->getNodePrefix() != 0) { events_->attributeEvent(0, 0, s_prefix, step->getNodePrefix(), 0, 0); } if(step->getNodeUri() != 0) { events_->attributeEvent(0, 0, s_uri, step->getNodeUri(), 0, 0); } } if(step->getNameWildcard()) { events_->attributeEvent(0, 0, s_localname, s_asterisk, 0, 0); } else if(step->getNodeName() != 0) { events_->attributeEvent(0, 0, s_localname, step->getNodeName(), 0, 0); } if(step->getTypeWildcard()) { events_->attributeEvent(0, 0, s_nodeType, s_asterisk, 0, 0); } else if(step->isNodeTypeSet()) { events_->attributeEvent(0, 0, s_nodeType, step->getNodeType(), 0, 0); } } } ASTNode *ASTToXML::optimizeStep(XQStep *item) { static const XMLCh s_axis[] = { 'a', 'x', 'i', 's', 0 }; events_->attributeEvent(0, 0, s_axis, getAxisName(item->getAxis()), 0, 0); optimizeNodeTest(item->getNodeTest()); return ASTVisitor::optimizeStep(item); } ASTNode *ASTToXML::optimizeVariable(XQVariable *item) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeVariable(item); } ASTNode *ASTToXML::optimizeCastableAs(XQCastableAs *item) { ASTVisitor::optimizeCastableAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeCastAs(XQCastAs *item) { ASTVisitor::optimizeCastAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeTreatAs(XQTreatAs *item) { ASTVisitor::optimizeTreatAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeFunctionCoercion(XQFunctionCoercion *item) { optimize(item->getExpression()); #ifdef SHOW_HIDDEN_AST if(item->getFuncConvert()) optimize(item->getFuncConvert()); #endif optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeFunctionConversion(XQFunctionConversion *item) { ASTVisitor::optimizeFunctionConversion(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeUserFunction(XQUserFunctionInstance *item) { XMLBuffer buf; qname(0, 0, item->getFunctionURI(), item->getFunctionName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); if(item->getFunctionDefinition()->getSignature()->argSpecs) { VectorOfASTNodes &args = const_cast(item->getArguments()); ArgumentSpecs::const_iterator binding = item->getFunctionDefinition()->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::const_iterator arg = args.begin(); arg != args.end() && binding != item->getFunctionDefinition()->getSignature()->argSpecs->end(); ++arg, ++binding) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Binding); qname((*binding)->getQName(), 0, (*binding)->getURI(), (*binding)->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize(*arg); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Binding, 0, 0); newline(); hasChildren_ = true; } } return item; } ASTNode *ASTToXML::optimizeTypeswitch(XQTypeswitch *item) { const XQTypeswitch::Cases *cases = item->getCases(); for(XQTypeswitch::Cases::const_iterator i = cases->begin(); i != cases->end(); ++i) { optimizeCase(*i); } optimizeCase(item->getDefaultCase()); return item; } void ASTToXML::optimizeCase(const XQTypeswitch::Case *cse) { static const XMLCh s_Case[] = { 'C', 'a', 's', 'e', 0 }; static const XMLCh s_Default[] = { 'D', 'e', 'f', 'a', 'u', 'l', 't', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, cse->getSequenceType() ? s_Case : s_Default); XMLBuffer buf; qname(cse->getQName(), 0, cse->getURI(), cse->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(cse->getSequenceType()) optimizeSequenceType(cse->getSequenceType()); optimize(cse->getExpression()); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, cse->getSequenceType() ? s_Case : s_Default, 0, 0); newline(); hasChildren_ = true; } ASTNode *ASTToXML::optimizeValidate(XQValidate *item) { static const XMLCh s_mode[] = { 'm', 'o', 'd', 'e', 0 }; static const XMLCh s_strict[] = { 's', 't', 'r', 'i', 'c', 't', 0 }; static const XMLCh s_lax[] = { 'l', 'a', 'x', 0 }; events_->attributeEvent(0, 0, s_mode, item->getMode() == DocumentCache::VALIDATION_STRICT ? s_strict : s_lax, 0, 0); return ASTVisitor::optimizeValidate(item); } ASTNode *ASTToXML::optimizeFunctionCall(XQFunctionCall *item) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFunctionCall(item); } ASTNode *ASTToXML::optimizeDOMConstructor(XQDOMConstructor *item) { events_->attributeEvent(0, 0, s_type, item->getNodeType(), 0, 0); ASTVisitor::optimizeDOMConstructor(item); // #ifdef SHOW_QUERY_PATH_TREES // if(item->getQueryPathTree()) // s << item->getQueryPathTree()->toString(indent + INDENT); // #endif return item; } void ASTToXML::getElementName(FTSelection *item, XMLBuffer &buf) { switch(item->getType()) { case FTSelection::OR: buf.append(X("FTOr")); break; case FTSelection::AND: buf.append(X("FTAnd")); break; case FTSelection::MILD_NOT: buf.append(X("FTMildnot")); break; case FTSelection::UNARY_NOT: buf.append(X("FTUnaryNot")); break; case FTSelection::WORDS: buf.append(X("FTWords")); break; case FTSelection::WORD: buf.append(X("FTWord")); break; case FTSelection::ORDER: buf.append(X("FTOrder")); break; case FTSelection::DISTANCE: buf.append(X("FTDistance")); break; case FTSelection::DISTANCE_LITERAL: buf.append(X("FTDistanceLiteral")); break; case FTSelection::SCOPE: buf.append(X("FTScope")); break; case FTSelection::CONTENT: buf.append(X("FTContent")); break; case FTSelection::WINDOW: buf.append(X("FTWindow")); break; case FTSelection::WINDOW_LITERAL: buf.append(X("FTWindowLiteral")); break; default: buf.append(X("FTUnknown")); break; } } FTSelection *ASTToXML::optimizeFTSelection(FTSelection *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimizeFTSelection(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimizeFTSelection(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } FTSelection *ASTToXML::optimizeFTWords(FTWords *selection) { static const XMLCh s_option[] = { 'o', 'p', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_any[] = { 'a', 'n', 'y', 0 }; static const XMLCh s_any_word[] = { 'a', 'n', 'y', ' ', 'w', 'o', 'r', 'd', 0 }; static const XMLCh s_all[] = { 'a', 'l', 'l', 0 }; static const XMLCh s_all_words[] = { 'a', 'l', 'l', ' ', 'w', 'o', 'r', 'd', 's', 0 }; static const XMLCh s_phrase[] = { 'p', 'h', 'r', 'a', 's', 'e', 0 }; switch(selection->getOption()) { case FTWords::ANY: events_->attributeEvent(0, 0, s_option, s_any, 0, 0); break; case FTWords::ANY_WORD: events_->attributeEvent(0, 0, s_option, s_any_word, 0, 0); break; case FTWords::ALL: events_->attributeEvent(0, 0, s_option, s_all, 0, 0); break; case FTWords::ALL_WORDS: events_->attributeEvent(0, 0, s_option, s_all_words, 0, 0); break; case FTWords::PHRASE: events_->attributeEvent(0, 0, s_option, s_phrase, 0, 0); break; } return ASTVisitor::optimizeFTWords(selection); } FTSelection *ASTToXML::optimizeFTWord(FTWord *selection) { events_->attributeEvent(0, 0, s_value, selection->getQueryString(), 0, 0); return ASTVisitor::optimizeFTWord(selection); } FTSelection *ASTToXML::optimizeFTDistance(FTDistance *selection) { events_->attributeEvent(0, 0, s_type, getFTRangeTypeName(selection->getRange().type), 0, 0); events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTDistance(selection); } FTSelection *ASTToXML::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { static const XMLCh s_distance2[] = { 'd', 'i', 's', 't', 'a', 'n', 'c', 'e', '2', 0 }; events_->attributeEvent(0, 0, s_type, getFTRangeTypeName(selection->getType()), 0, 0); events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); XMLBuffer buf; XPath2Utils::numToBuf(selection->getDistance(), buf); events_->attributeEvent(0, 0, s_distance, buf.getRawBuffer(), 0, 0); if(selection->getType() == FTRange::FROM_TO) { buf.reset(); XPath2Utils::numToBuf(selection->getDistance2(), buf); events_->attributeEvent(0, 0, s_distance2, buf.getRawBuffer(), 0, 0); } return ASTVisitor::optimizeFTDistanceLiteral(selection); } FTSelection *ASTToXML::optimizeFTScope(FTScope *selection) { static const XMLCh s_same[] = { 's', 'a', 'm', 'e', 0 }; static const XMLCh s_different[] = { 'd', 'i', 'f', 'f', 'e', 'r', 'e', 'n', 't', 0 }; switch(selection->getType()) { case FTScope::SAME: events_->attributeEvent(0, 0, s_type, s_same, 0, 0); break; case FTScope::DIFFERENT: events_->attributeEvent(0, 0, s_type, s_different, 0, 0); break; } events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTScope(selection); } FTSelection *ASTToXML::optimizeFTContent(FTContent *selection) { static const XMLCh s_at_start[] = { 'a', 't', ' ', 's', 't', 'a', 'r', 't', 0 }; static const XMLCh s_at_end[] = { 'a', 't', ' ', 'e', 'n', 'd', 0 }; static const XMLCh s_entire_content[] = { 'e', 'n', 't', 'i', 'r', 'e', ' ', 'c', 'o', 'n', 't', 'e', 'n', 't', 0 }; switch(selection->getType()) { case FTContent::AT_START: events_->attributeEvent(0, 0, s_type, s_at_start, 0, 0); break; case FTContent::AT_END: events_->attributeEvent(0, 0, s_type, s_at_end, 0, 0); break; case FTContent::ENTIRE_CONTENT: events_->attributeEvent(0, 0, s_type, s_entire_content, 0, 0); break; } return ASTVisitor::optimizeFTContent(selection); } FTSelection *ASTToXML::optimizeFTWindow(FTWindow *selection) { events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTWindow(selection); } FTSelection *ASTToXML::optimizeFTWindowLiteral(FTWindowLiteral *selection) { events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); XMLBuffer buf; XPath2Utils::numToBuf(selection->getDistance(), buf); events_->attributeEvent(0, 0, s_distance, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFTWindowLiteral(selection); } const XMLCh *ASTToXML::getFTRangeTypeName(FTRange::Type type) { static const XMLCh s_exactly[] = { 'e', 'x', 'a', 'c', 't', 'l', 'y', 0 }; static const XMLCh s_at_least[] = { 'a', 't', ' ', 'l', 'e', 'a', 's', 't', 0 }; static const XMLCh s_at_most[] = { 'a', 't', ' ', 'm', 'o', 's', 't', 0 }; static const XMLCh s_from_to[] = { 'f', 'r', 'o', 'm', ' ', 't', 'o', 0 }; switch(type) { case FTRange::EXACTLY: return s_exactly; case FTRange::AT_LEAST: return s_at_least; case FTRange::AT_MOST: return s_at_most; case FTRange::FROM_TO: return s_from_to; } return s_unknown; } const XMLCh *ASTToXML::getFTUnitName(FTOption::FTUnit unit) { static const XMLCh s_words[] = { 'w', 'o', 'r', 'd', 's', 0 }; static const XMLCh s_sentences[] = { 's', 'e', 'n', 't', 'e', 'n', 'c', 'e', 's', 0 }; static const XMLCh s_paragraphs[] = { 'p', 'a', 'r', 'a', 'g', 'r', 'a', 'p', 'h', 's', 0 }; switch(unit) { case FTOption::WORDS: return s_words; case FTOption::SENTENCES: return s_sentences; case FTOption::PARAGRAPHS: return s_paragraphs; } return s_unknown; } ASTNode *ASTToXML::optimizeMap(XQMap *item) { if(item->getName() != 0) { XMLBuffer buf; qname(0, 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } return ASTVisitor::optimizeMap(item); } ASTNode *ASTToXML::optimizePromoteUntyped(XQPromoteUntyped *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteUntyped(item); } ASTNode *ASTToXML::optimizePromoteNumeric(XQPromoteNumeric *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteNumeric(item); } ASTNode *ASTToXML::optimizePromoteAnyURI(XQPromoteAnyURI *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteAnyURI(item); } ASTNode *ASTToXML::optimizeDirectName(XQDirectName *item) { XMLBuffer buf; qname(item->getQName(), 0, 0, 0, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeDirectName(item); } ASTNode *ASTToXML::optimizeUTransform(UTransform *item) { static const XMLCh s_Copy[] = { 'C', 'o', 'p', 'y', 0 }; XMLBuffer buf; const VectorOfCopyBinding *bindings = item->getBindings(); for(VectorOfCopyBinding::const_iterator i = bindings->begin(); i != bindings->end(); ++i) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Copy); qname((*i)->qname_, 0, (*i)->uri_, (*i)->name_, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize((*i)->expr_); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Copy, 0, 0); newline(); hasChildren_ = true; } optimize(item->getModifyExpr()); optimize(item->getReturnExpr()); return item; } ASTNode *ASTToXML::optimizeCopyOf(XQCopyOf *item) { static const XMLCh s_copy_namespaces[] = { 'c', 'o', 'p', 'y', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; events_->attributeEvent(0, 0, s_copy_namespaces, item->getCopyNamespaces() ? s_true : s_false, 0, 0); return ASTVisitor::optimizeCopyOf(item); } ASTNode *ASTToXML::optimizeASTDebugHook(ASTDebugHook *item) { #ifdef SHOW_HIDDEN_AST optimizeLocation(item); return ASTVisitor::optimizeASTDebugHook(item); #else return optimize(item->getExpression()); #endif } void ASTToXML::optimizeTemplateArgument(XQTemplateArgument *item) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Binding); XMLBuffer buf; qname(item->qname, 0, item->uri, item->name, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize(item->value); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Binding, 0, 0); newline(); hasChildren_ = true; } ASTNode *ASTToXML::optimizeCallTemplate(XQCallTemplate *item) { if(item->getQName() || item->getName()) { XMLBuffer buf; qname(item->getQName(), 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } if(item->getASTName()) { optimize(item->getASTName()); } if(item->getArguments()) { TemplateArguments::iterator argIt; for(argIt = item->getArguments()->begin(); argIt != item->getArguments()->end(); ++argIt) { optimizeTemplateArgument(*argIt); } } return item; } ASTNode *ASTToXML::optimizeApplyTemplates(XQApplyTemplates *item) { optimize(item->getExpression()); if(item->getArguments()) { TemplateArguments::iterator argIt; for(argIt = item->getArguments()->begin(); argIt != item->getArguments()->end(); ++argIt) { optimizeTemplateArgument(*argIt); } } return item; } ASTNode *ASTToXML::optimizeInlineFunction(XQInlineFunction *item) { if(item->getName()) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } optimizeFunctionSignature(item->getSignature()); if(item->getUserFunction()) optimizeFunctionDef(item->getUserFunction()); #ifndef SHOW_HIDDEN_AST else #endif item->setInstance(optimize(item->getInstance())); return item; } ASTNode *ASTToXML::optimizePartialApply(XQPartialApply *item) { static const XMLCh s_ArgumentPlaceholder[] = { 'A', 'r', 'g', 'u', 'm', 'e', 'n', 't', 'P', 'l', 'a', 'c', 'e', 'h', 'o', 'l', 'd', 'e', 'r', 0 }; optimize(item->getExpression()); VectorOfASTNodes *args = item->getArguments(); if(args) { for(VectorOfASTNodes::const_iterator i = args->begin(); i != args->end(); ++i) { if(*i == 0) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_ArgumentPlaceholder); events_->endElementEvent(0, 0, s_ArgumentPlaceholder, 0, 0); newline(); hasChildren_ = true; } else optimize(*i); } } return item; } ASTNode *ASTToXML::optimizeFunctionRef(XQFunctionRef *item) { static const XMLCh s_arity[] = { 'a', 'r', 'i', 't', 'y', 0 }; XMLBuffer buf; qname(item->getQName(), 0, 0, 0, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); buf.reset(); XPath2Utils::numToBuf(item->getNumArgs(), buf); events_->attributeEvent(0, 0, s_arity, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFunctionRef(item); } void ASTToXML::getElementName(TupleNode *item, XMLBuffer &buf) { switch(item->getType()) { case TupleNode::CONTEXT_TUPLE: buf.append(X("ContextTuple")); break; case TupleNode::FOR: buf.append(X("ForTuple")); break; case TupleNode::LET: buf.append(X("LetTuple")); break; case TupleNode::WHERE: buf.append(X("WhereTuple")); break; case TupleNode::COUNT: buf.append(X("CountTuple")); break; case TupleNode::ORDER_BY: buf.append(X("OrderByTuple")); break; case TupleNode::DEBUG_HOOK: #ifdef SHOW_HIDDEN_AST buf.append(X("TupleDebugHook")); #endif break; default: buf.append(X("Unknown")); break; } } TupleNode *ASTToXML::optimizeTupleNode(TupleNode *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimizeTupleNode(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimizeTupleNode(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } TupleNode *ASTToXML::optimizeForTuple(ForTuple *item) { static const XMLCh s_position[] = { 'p', 'o', 's', 'i', 't', 'i', 'o', 'n', 0 }; XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); qname(item->getPosQName(), 0, item->getPosURI(), item->getPosName(), buf); events_->attributeEvent(0, 0, s_position, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeForTuple(item); } TupleNode *ASTToXML::optimizeLetTuple(LetTuple *item) { XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeLetTuple(item); } TupleNode *ASTToXML::optimizeCountTuple(CountTuple *item) { XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeCountTuple(item); } TupleNode *ASTToXML::optimizeOrderByTuple(OrderByTuple *item) { static const XMLCh s_direction[] = { 'd', 'i', 'r', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_descending[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_ascending[] = { 'a', 's', 'c', 'e', 'n', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_empty[] = { 'e', 'm', 'p', 't', 'y', 0 }; static const XMLCh s_least[] = { 'l', 'e', 'a', 's', 't', 0 }; static const XMLCh s_greatest[] = { 'g', 'r', 'e', 'a', 't', 'e', 's', 't', 0 }; static const XMLCh s_stable[] = { 's', 't', 'a', 'b', 'l', 'e', 0 }; static const XMLCh s_collation[] = { 'c', 'o', 'l', 'l', 'a', 't', 'i', 'o', 'n', 0 }; events_->attributeEvent(0, 0, s_direction, (item->getModifiers() & OrderByTuple::DESCENDING) ? s_descending : s_ascending, 0, 0); events_->attributeEvent(0, 0, s_empty, (item->getModifiers() & OrderByTuple::EMPTY_LEAST) ? s_least : s_greatest, 0, 0); events_->attributeEvent(0, 0, s_stable, (item->getModifiers() & OrderByTuple::UNSTABLE) ? s_false : s_true, 0, 0); events_->attributeEvent(0, 0, s_collation, item->getCollation()->getCollationName(), 0, 0); return ASTVisitor::optimizeOrderByTuple(item); } void ASTToXML::optimizeLocation(const LocationInfo *location) { static const XMLCh s_location[] = { 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0 }; XMLBuffer buf; buf.set(location->getFile()); buf.append(':'); XPath2Utils::numToBuf(location->getLine(), buf); buf.append(':'); XPath2Utils::numToBuf(location->getColumn(), buf); events_->attributeEvent(0, 0, s_location, buf.getRawBuffer(), 0, 0); } TupleNode *ASTToXML::optimizeTupleDebugHook(TupleDebugHook *item) { #ifdef SHOW_HIDDEN_AST optimizeLocation(item); return ASTVisitor::optimizeTupleDebugHook(item); #else return optimizeTupleNode(item->getParent()); #endif } void ASTToXML::optimizeSequenceType(const SequenceType *type) { static const XMLCh s_SequenceType[] = { 'S', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 'T', 'y', 'p', 'e', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_SequenceType); XMLBuffer buf; type->toBuffer(buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); events_->endElementEvent(0, 0, s_SequenceType, 0, 0); newline(); hasChildren_ = true; } void ASTToXML::optimizeFunctionSignature(const FunctionSignature *signature) { static const XMLCh s_signature[] = { 's', 'i', 'g', 'n', 'a', 't', 'u', 'r', 'e', 0 }; if(signature) { XMLBuffer buf; signature->toBuffer(buf, /*typeSyntax*/false); events_->attributeEvent(0, 0, s_signature, buf.getRawBuffer(), 0, 0); } } const XMLCh *ASTToXML::getAxisName(XQStep::Axis axis) { static const XMLCh s_ancestor[] = { 'a', 'n', 'c', 'e', 's', 't', 'o', 'r', 0 }; static const XMLCh s_ancestor_or_self[] = { 'a', 'n', 'c', 'e', 's', 't', 'o', 'r', '-', 'o', 'r', '-', 's', 'e', 'l', 'f', 0 }; static const XMLCh s_attribute[] = { 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0 }; static const XMLCh s_child[] = { 'c', 'h', 'i', 'l', 'd', 0 }; static const XMLCh s_descendant[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'a', 'n', 't', 0 }; static const XMLCh s_descendant_or_self[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'a', 'n', 't', '-', 'o', 'r', '-', 's', 'e', 'l', 'f', 0 }; static const XMLCh s_following[] = { 'f', 'o', 'l', 'l', 'o', 'w', 'i', 'n', 'g', 0 }; static const XMLCh s_following_sibling[] = { 'f', 'o', 'l', 'l', 'o', 'w', 'i', 'n', 'g', '-', 's', 'i', 'b', 'l', 'i', 'n', 'g', 0 }; static const XMLCh s_namespace[] = { 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; static const XMLCh s_parent[] = { 'p', 'a', 'r', 'e', 'n', 't', 0 }; static const XMLCh s_preceding[] = { 'p', 'r', 'e', 'c', 'e', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_preceding_sibling[] = { 'p', 'r', 'e', 'c', 'e', 'd', 'i', 'n', 'g', '-', 's', 'i', 'b', 'l', 'i', 'n', 'g', 0 }; static const XMLCh s_self[] = { 's', 'e', 'l', 'f', 0 }; switch(axis) { case XQStep::ANCESTOR: return s_ancestor; case XQStep::ANCESTOR_OR_SELF: return s_ancestor_or_self; case XQStep::ATTRIBUTE: return s_attribute; case XQStep::CHILD: return s_child; case XQStep::DESCENDANT: return s_descendant; case XQStep::DESCENDANT_OR_SELF: return s_descendant_or_self; case XQStep::FOLLOWING: return s_following; case XQStep::FOLLOWING_SIBLING: return s_following_sibling; case XQStep::NAMESPACE: return s_namespace; case XQStep::PARENT: return s_parent; case XQStep::PRECEDING: return s_preceding; case XQStep::PRECEDING_SIBLING: return s_preceding_sibling; case XQStep::SELF: return s_self; } return 0; } const XMLCh *ASTToXML::getComparisonOperationName(GeneralComp::ComparisonOperation co) { switch(co) { case GeneralComp::EQUAL: return Equals::name; case GeneralComp::NOT_EQUAL: return NotEquals::name; case GeneralComp::LESS_THAN: return LessThan::name; case GeneralComp::LESS_THAN_EQUAL: return LessThanEqual::name; case GeneralComp::GREATER_THAN: return GreaterThan::name; case GeneralComp::GREATER_THAN_EQUAL: return GreaterThanEqual::name; } return 0; } void ASTToXML::indent() { static const XMLCh s_manySpaces[] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0 }; while(indentBuffer_.getLen() < (indent_ * 2)) { indentBuffer_.append(s_manySpaces); } if(indent_ != 0) events_->textEvent(indentBuffer_.getRawBuffer(), indent_ * 2); } void ASTToXML::newline() { static const XMLCh s_newline[] = { '\n', 0 }; events_->textEvent(s_newline); } void ASTToXML::qname(const XMLCh *qname, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XMLBuffer &buf) { static const XMLCh s_lcurly[] = { '{', 0 }; static const XMLCh s_rcurly[] = { '}', 0 }; static const XMLCh s_colon[] = { ':', 0 }; if(name) { if(prefix && !uri) { buf.set(prefix); buf.append(s_colon); } else { buf.set(s_lcurly); buf.append(uri); buf.append(s_rcurly); } buf.append(name); } else { buf.set(qname); } } XQilla-2.3.4/src/optimizer/Optimizer.cpp0000644001725400016040000000370313273140037015141 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include using namespace std; Optimizer::Optimizer(Optimizer *parent) : parent_(parent) {} Optimizer::~Optimizer() { if(parent_ != 0) { delete parent_; } } void Optimizer::resetInternal() { } void Optimizer::startOptimize(XQQuery *query) { if(parent_ != 0) { parent_->startOptimize(query); } optimize(query); } ASTNode *Optimizer::startOptimize(ASTNode *item) { if(parent_ != 0) { item = parent_->startOptimize(item); } return optimize(item); } XQUserFunction *Optimizer::startOptimize(XQUserFunction *item) { if(parent_ != 0) { item = parent_->startOptimize(item); } return optimizeFunctionDef(item); } void Optimizer::reset() { if(parent_ != 0) { parent_->reset(); } resetInternal(); } void StaticResolver::optimize(XQQuery *query) { query->staticResolution(); } ASTNode *StaticResolver::optimize(ASTNode *item) { return item->staticResolution(xpc_); } XQUserFunction *StaticResolver::optimizeFunctionDef(XQUserFunction *item) { item->staticResolutionStage2(xpc_); return item; } XQilla-2.3.4/src/xerces/0000755001725400016040000000000013273141207011777 500000000000000XQilla-2.3.4/src/xerces/XercesURIResolver.hpp0000644001725400016040000000477713273140037016002 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XERCESURIRESOLVER_H #define XERCESURIRESOLVER_H #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesURIResolver : public URIResolver { public: XercesURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~XercesURIResolver(); virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context); void incrementDocumentRefCount(const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* document); void decrementDocumentRefCount(const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* document); private: class DocRefCount { public: DocRefCount() : doc(0), ref_count(1), next(0) {} const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc; unsigned int ref_count; DocRefCount *next; }; DocRefCount *_firstDocRefCount; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument > _documentMap; #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh, XERCES_CPP_NAMESPACE_QUALIFIER PtrHasher > _uriMap; #else XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > _uriMap; #endif XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm; }; #endif XQilla-2.3.4/src/xerces/NamespaceAxis.cpp0000644001725400016040000001063213273140037015146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "NamespaceAxis.hpp" #include #include #include #include "../dom-api/impl/XPathNamespaceImpl.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NamespaceAxis::NamespaceAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(contextNode), originalNode_(contextNode), nodeMap_(node_->getAttributes()), i_(0), state_(CHECK_ELEMENT) { } static const DOMNode *createNamespaceNode(const XMLCh* prefix, const XMLCh* uri, const DOMNode* parentNode) { if(parentNode->getNodeType()!=DOMNode::ELEMENT_NODE) return NULL; DOMDocument *ownerDocument = parentNode->getOwnerDocument(); return new ((DOMDocumentImpl *)ownerDocument, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT) XPathNamespaceImpl(prefix, uri, static_cast(const_cast(parentNode)), ownerDocument); } const DOMNode *NamespaceAxis::nextNode(DynamicContext *context) { const DOMNode *result = 0; while(result == 0) { switch(state_) { case CHECK_ELEMENT: { const XMLCh* uri = node_->getNamespaceURI(); const XMLCh* prefix = node_->getPrefix(); if(done_.insert(prefix).second && uri && *uri) { result = createNamespaceNode(prefix, uri, originalNode_); } state_ = CHECK_ATTR; break; } case CHECK_ATTR: { if(nodeMap_ != 0 && i_ < nodeMap_->getLength()) { DOMNode *tmpAttr = nodeMap_->item(i_); ++i_; const XMLCh* attrName = tmpAttr->getNodeName(); // Check to see if this attribute starts with xmlns if(!XMLString::startsWith(attrName, XMLUni::fgXMLNSString)) { const XMLCh* uri = tmpAttr->getNamespaceURI(); const XMLCh* prefix = tmpAttr->getPrefix(); if(uri && *uri && done_.insert(prefix).second) { result = createNamespaceNode(prefix, uri, originalNode_); } } else { // Get uri const XMLCh* uri = tmpAttr->getNodeValue(); // Figure out prefix const XMLCh* prefix = 0; if(XMLString::stringLen(attrName) != 5) { // A prefix was given // If the name doesn't start with xmlns: (and its not xmlns) then skip it // XXX: Is this necessary/allowed? if(attrName[5] != chColon) { continue; } prefix = attrName + 6; } if(done_.insert(prefix).second && uri && *uri) { result = createNamespaceNode(prefix, uri, originalNode_); } } } else { node_ = XPath2NSUtils::getParent(node_); if(node_ == 0 || node_->getNodeType() != DOMNode::ELEMENT_NODE) { state_ = DO_XML; } else { nodeMap_ = node_->getAttributes(); i_ = 0; state_ = CHECK_ELEMENT; } } break; } case DO_XML: { if(done_.insert(XMLUni::fgXMLString).second) { result = createNamespaceNode(XMLUni::fgXMLString, XMLUni::fgXMLURIName, originalNode_); } state_ = DONE; break; } case DONE: return 0; } } return result; } std::string NamespaceAxis::asString(DynamicContext *context, int indent) const { return "NamespaceNodesResult"; } XQilla-2.3.4/src/xerces/DescendantOrSelfAxis.hpp0000644001725400016040000000233513273140037016443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DESCENDANTORSELFAXIS_HPP #define _DESCENDANTORSELFAXIS_HPP #include "Axis.hpp" class XQILLA_API DescendantOrSelfAxis : public Axis { public: DescendantOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *descendant_; }; #endif XQilla-2.3.4/src/xerces/DescendantAxis.cpp0000644001725400016040000000327613273140037015330 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "DescendantAxis.hpp" #include #include DescendantAxis::DescendantAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), descendant_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *DescendantAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; descendant_ = getFirstChild(contextNode_); } else if(descendant_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getFirstChild(descendant_); while(result == 0) { result = getNextSibling(descendant_); if(result == 0) { descendant_ = getParent(descendant_); if(descendant_ == contextNode_) break; } } descendant_ = result; } return descendant_; } XQilla-2.3.4/src/xerces/XercesNodeImpl.hpp0000644001725400016040000001054213273140037015313 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLANODEIMPL_HPP #define _XQILLANODEIMPL_HPP #include #include #include "Axis.hpp" #include #include class DynamicContext; class XPath2MemoryManager; class Sequence; class DocumentCache; class XercesURIResolver; XERCES_CPP_NAMESPACE_BEGIN class DatatypeValidator; class DOMNode; XERCES_CPP_NAMESPACE_END class XercesNodeImpl : public Node, private AxisNodeFactory { public: typedef RefCountPointer Ptr; XercesNodeImpl(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, XercesURIResolver *resolver); ~XercesNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getDOMNode() const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; static void typeUriAndName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const XMLCh *&uri, const XMLCh *&name); static void generateEvents(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, EventHandler *events, bool preserveNS = true, bool preserveType = true); protected: virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const; virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; virtual void getMemberTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; Sequence getListTypeTypedValue(XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *dtv, const DynamicContext* context) const; void addStringValueToBuffer(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* node, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer) const; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* fNode; XercesURIResolver *resolver_; }; #endif XQilla-2.3.4/src/xerces/FollowingAxis.cpp0000644001725400016040000000326313273140037015214 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FollowingAxis.hpp" #include #include #include FollowingAxis::FollowingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *FollowingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = contextNode_; } if(node_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = 0; if(node_ != contextNode_) { result = getFirstChild(node_); } while(result == 0 && node_ != 0) { result = getNextSibling(node_); if(result == 0) { node_ = getParent(node_); } } node_ = result; } return node_; } XQilla-2.3.4/src/xerces/AncestorAxis.cpp0000644001725400016040000000261713273140037015034 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AncestorAxis.hpp" #include #include AncestorAxis::AncestorAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), ancestor_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *AncestorAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; ancestor_ = contextNode_; } if(ancestor_ != 0) { ancestor_ = getParent(ancestor_); } return ancestor_; } XQilla-2.3.4/src/xerces/PrecedingSiblingAxis.cpp0000644001725400016040000000264013273140037016462 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "PrecedingSiblingAxis.hpp" #include PrecedingSiblingAxis::PrecedingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), sibling_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *PrecedingSiblingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; sibling_ = getPreviousSibling(contextNode_); } else if(sibling_ != 0) { sibling_ = getPreviousSibling(sibling_); } return sibling_; } XQilla-2.3.4/src/xerces/XercesURIResolver.cpp0000644001725400016040000002420313273140037015757 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesURIResolver.hpp" #include "XercesNodeImpl.hpp" #include #include #include #include #include #include #include #include "../dom-api/XQillaImplementation.hpp" #include #include #if _XERCES_VERSION < 30000 #include #endif #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XercesURIResolver::XercesURIResolver(MemoryManager *mm) : _firstDocRefCount(new (mm) DocRefCount()), _documentMap(3,false,mm), #if _XERCES_VERSION >= 30000 _uriMap(3,false, mm), #else _uriMap(3,false, new (mm) HashPtr(), mm), #endif _mm(mm) { } XercesURIResolver::~XercesURIResolver() { DocRefCount *drc; while(_firstDocRefCount != 0) { drc = _firstDocRefCount; _firstDocRefCount = _firstDocRefCount->next; _mm->deallocate(drc); } } bool XercesURIResolver::resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } else { systemId = context->getMemoryManager()->getPooledString(uri); } // Check in the cache DOMDocument *found = _documentMap.get((void*)systemId); // Check to see if we can locate and parse the document if(found == 0) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); found = (DOMDocument*)((DOMNode*)doc->getInterface(XercesConfiguration::gXerces)); _documentMap.put((void*)systemId, found); _uriMap.put((void*)found, const_cast(systemId)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("XercesContextImpl::resolveDocument"), errMsg.getRawBuffer()); } } else { doc = new XercesNodeImpl(found, (XercesURIResolver*)context->getDefaultURIResolver()); } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("XercesContextImpl::resolveDocument"), errMsg.getRawBuffer()); return false; } bool XercesURIResolver::resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } else { systemId = context->getMemoryManager()->getPooledString(uri); } // Check in the cache DOMDocument *found = _documentMap.get((void*)systemId); // Check to see if we can locate and parse the document if(found == 0) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); found = (DOMDocument*)((DOMNode*)doc->getInterface(XercesConfiguration::gXerces)); _documentMap.put((void*)systemId, found); _uriMap.put((void*)found, const_cast(systemId)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("XercesURIResolver::resolveCollection"), errMsg.getRawBuffer()); } } else { doc = new XercesNodeImpl(found, (XercesURIResolver*)context->getDefaultURIResolver()); } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("XercesURIResolver::resolveCollection"), errMsg.getRawBuffer()); return false; } bool XercesURIResolver::resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { return false; } static const XMLCh ls_string[] = { chLatin_L, chLatin_S, chNull }; static const XMLCh file_scheme[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, 0 }; static const XMLCh utf8_str[] = { chLatin_u, chLatin_t, chLatin_f, chDash, chDigit_8, 0 }; #define char2hexdigit(ch) (((ch) >= 'a') ? (ch) - 'a' : (((ch) >= 'A') ? (ch) - 'A' : (ch) - '0')) bool XercesURIResolver::putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { // Ignore nodes with no URI if(uri == 0) return true; try { XMLUri uri_obj(uri); // Check for a "file" scheme if(!XPath2Utils::equals(uri_obj.getScheme(), file_scheme)) return false; // Check this is a Xerces data model node const DOMNode *domnode = (const DOMNode*)document->getInterface(XercesConfiguration::gXerces); if(!domnode) return false; // Write the document to disk DOMImplementation *impl = XQillaImplementation::getDOMImplementationImpl(); const XMLCh *path = uri_obj.getPath(); //Get rid of the leading / if it is a Windows path. int colonIdx = XMLString::indexOf(path, chColon); if(path && colonIdx == 2 && XMLString::isAlpha(path[1])){ path++; } // Unescape the URI // Since URI escaping encodes UTF-8 char sequences, it's easier to do the unescaping with a UTF-8 string. UTF8Str path8(path); string unencode8; const char *ptr = path8.str(); while(*ptr) { if(*ptr == '%') { if(ptr[1] == 0) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_MalformedURL); if(ptr[2] == 0) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_MalformedURL); unencode8.append(1, (char)(char2hexdigit(ptr[1]) * 0x10 + char2hexdigit(ptr[2]))); ptr += 3; } else { unencode8.append(1, *ptr); ptr += 1; } } LocalFileFormatTarget target(X(unencode8.c_str())); #if _XERCES_VERSION >= 30000 AutoRelease writer(impl->createLSSerializer()); AutoRelease output(impl->createLSOutput()); output->setByteStream(&target); #else // Find the encoding to use const XMLCh *encoding = 0; if(domnode->getNodeType() == DOMNode::DOCUMENT_NODE) { // Use the document's encoding, if this is a document node encoding = ((DOMDocument*)domnode)->getEncoding(); } if(encoding == 0 || *encoding == 0) { // Otherwise, just use UTF-8 encoding = utf8_str; } AutoRelease writer(((DOMImplementationLS*)impl)->createDOMWriter()); writer->setEncoding(encoding); #endif try { #if _XERCES_VERSION >= 30000 if(!writer->write(domnode, output)) { #else if(!writer->writeNode(&target, *domnode)) { #endif XMLBuffer buf; buf.append(X("Writing to URI \"")); buf.append(uri_obj.getUriText()); buf.append(X("\" failed.")); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } } catch(DOMException &ex) { XMLBuffer buf; buf.append(X("Writing to URI \"")); buf.append(uri_obj.getUriText()); buf.append(X("\" failed: ")); buf.append(ex.msg); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } } catch(const MalformedURLException &ex) { XMLBuffer buf; buf.append(X("Unable to re-write document - bad document URI \"")); buf.append(uri); buf.append(X("\"")); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } return true; } void XercesURIResolver::incrementDocumentRefCount(const DOMDocument* document) { assert(document != 0); DocRefCount *found = _firstDocRefCount; while(found->doc != 0 && found->doc != document) { found = found->next; } if(found->doc == 0) { found->doc = document; found->next = new (_mm) DocRefCount(); } else { ++found->ref_count; } } void XercesURIResolver::decrementDocumentRefCount(const DOMDocument* document) { assert(document != 0); DocRefCount *prev = 0; DocRefCount *found = _firstDocRefCount; while(found->doc != 0 && found->doc != document) { prev = found; found = found->next; } if(found->doc != 0) { if(--found->ref_count == 0) { if(prev == 0) { _firstDocRefCount = found->next; } else { prev->next = found->next; } _mm->deallocate(found); XMLCh *uri = _uriMap.get((void*)document); if(uri != 0) { _uriMap.removeKey((void*)document); _documentMap.removeKey((void*)uri); } const_cast(document)->release(); } } } XQilla-2.3.4/src/xerces/AttributeAxis.hpp0000644001725400016040000000250313273140037015220 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTRIBUTEAXIS_HPP #define _ATTRIBUTEAXIS_HPP #include "Axis.hpp" #include class XQILLA_API AttributeAxis : public Axis { public: AttributeAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap *nodeMap_; unsigned int i_; }; #endif XQilla-2.3.4/src/xerces/AncestorOrSelfAxis.hpp0000644001725400016040000000244513273140037016153 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANCESTORORSELFAXIS_HPP #define _ANCESTORORSELFAXIS_HPP #include "Axis.hpp" /** This class implements the AncestorOrSelf axis as defined by the XPath spec */ class XQILLA_API AncestorOrSelfAxis : public Axis { public: AncestorOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ancestor_; }; #endif XQilla-2.3.4/src/xerces/XercesUpdateFactory.cpp0000644001725400016040000010215213273140037016350 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesUpdateFactory.hpp" #include "XercesNodeImpl.hpp" #include "XercesSequenceBuilder.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; void XercesUpdateFactory::applyPut(const PendingUpdate &update, DynamicContext *context) { PutItem item(update.getValue().first()->asString(context), update.getTarget(), &update, context); std::pair res = putSet_.insert(item); if(!res.second) { if(context->getMessageListener() != 0) { context->getMessageListener()->warning(X("In the context of this expression"), res.first->location); } XMLBuffer buf; buf.append(X("fn:put() called with the URI \"")); buf.append(item.uri); buf.append(X("\" twice. [err:XUDY0031]")); XQThrow3(ASTException, X("XercesUpdateFactory::applyPut"), buf.getRawBuffer(), &update); } } #include #include void printTypes(const char *label, const DOMNode *node, int indent = 0) { if(indent == 0) std::cerr << "\n"; if(node->getNodeType() == DOMNode::ELEMENT_NODE) { const XMLCh *typeURI, *typeName; XercesNodeImpl::typeUriAndName(node, typeURI, typeName); std::cerr << label << ":" << std::string(indent * 2, ' ') << "name: {" << UTF8(node->getNamespaceURI()) << "}" << UTF8(Axis::getLocalName(node)) << ", type: {" << UTF8(typeURI) << "}" << UTF8(typeName) << "\n"; DOMNode *child = node->getFirstChild(); while(child) { printTypes(label, child, indent + 1); child = child->getNextSibling(); } } } static DOMNode *importNodeFix(DOMDocument *doc, DOMNode *node, bool deep) { DOMNode *newNode = doc->importNode(node, deep); // Xerces-C has a bug that doesn't copy the prefix correctly - jpcs if((node->getNodeType() == DOMNode::ELEMENT_NODE || node->getNodeType() == DOMNode::ATTRIBUTE_NODE) && node->getNamespaceURI() != 0 && *node->getNamespaceURI() != 0 && node->getPrefix() != 0 && *node->getPrefix() != 0) newNode->setPrefix(node->getPrefix()); return newNode; } void XercesUpdateFactory::applyInsertInto(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content, preserving their order. domnode->appendChild(newChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMElement *element = (DOMElement*)nodeImpl->getDOMNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(element)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1. Error checks: // a. If the QNames of any two attribute nodes in $content have implied namespace bindings that conflict with each other, // a dynamic error is raised [err:XUDY0024]. // b. If the QName of any attribute node in $content has an implied namespace binding that conflicts with a namespace // binding in the "namespaces" property of $target, a dynamic error is raised [err:XUDY0024]. // Checks performed by UpdateFactory // If the type-name property of $target is xs:untyped, then upd:setToUntyped($A) is invoked. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // The parent property of $A is set to $target. // attributes: Modified to include the nodes in $content. element->setAttributeNode((DOMAttr*)newChild); } // upd:removeType($target) is invoked. removeType(element); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceValue(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); // 2. If $target is a text, comment, or processing instruction node: content of $target is set to $string-value. domnode->setNodeValue(update.getValue().first()->asString(context)); if(domnode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { // 1. If $target is an attribute node: // a. string-value of $target is set to $string-value. (done above) // b. upd:removeType($target) is invoked. removeType(domnode); } else if(domnode->getNodeType() == DOMNode::TEXT_NODE || domnode->getNodeType() == DOMNode::CDATA_SECTION_NODE) { // 3. If $target is a text node, upd:removeType(parent($target)) is invoked. if(domnode->getParentNode() != 0) removeType(domnode->getParentNode()); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyRename(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); ATQNameOrDerived *qname = (ATQNameOrDerived*)update.getValue().first().get(); if(domnode->getNodeType() == DOMNode::PROCESSING_INSTRUCTION_NODE) { DOMProcessingInstruction *newPI = domnode->getOwnerDocument()-> createProcessingInstruction(qname->getName(), domnode->getNodeValue()); domnode->getParentNode()->replaceChild(newPI, domnode); domnode = newPI; } else { // If $newName has an implied namespace binding that conflicts with an existing namespace binding // in the namespaces property of $target, a dynamic error is raised [err:XUDY0024]. // If $target has a parent, and $newName has an implied namespace binding that conflicts with a // namespace binding in the namespaces property of parent($target), a dynamic error is raised [err:XUDY0024]. domnode->getOwnerDocument()->renameNode(domnode, qname->getURI(), qname->getName()); if(qname->getURI() != 0 && *qname->getURI() != 0) domnode->setPrefix(qname->getPrefix()); removeType(domnode); } // Deliberately create a new XercesNodeImpl, since the PI is actually // replaced, not just renamed, meaning it is no longer attached to the tree addToPutSet(nodeImpl, &update, context); } void XercesUpdateFactory::applyDelete(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); forDeletion_.insert(domnode); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertBefore(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of parent($target) is modified to add the nodes in $content just before $target, // preserving their order. parent->insertBefore(newChild, domnode); } // If at least one of the nodes in $content is an element or text node, upd:removeType(parent($target)) is invoked. if(containsElementOrText) { removeType(parent); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAfter(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMNode *before = domnode->getNextSibling(); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of parent($target) is modified to add the nodes in $content just before $target, // preserving their order. parent->insertBefore(newChild, before); } // If at least one of the nodes in $content is an element or text node, upd:removeType(parent($target)) is invoked. if(containsElementOrText) { removeType(parent); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMNode *firstChild = domnode->getFirstChild(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content just before $target, // preserving their order. domnode->insertBefore(newChild, firstChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content just before $target, // preserving their order. domnode->appendChild(newChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceNode(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1b. If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked // on each element node in $replacement. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // 1a. For each node in $replacement, the parent property is set to parent($target). // 3b. If $target is an element, text, comment, or processing instruction node, the children property // of parent($target) is modified to add the nodes in $replacement just before $target, preserving // their order. parent->insertBefore(newChild, domnode); } // 2a. $target is marked for deletion. forDeletion_.insert(domnode); // 3c. upd:removeType(parent($target)) is invoked. removeType(parent); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMAttr *domnode = (DOMAttr*)nodeImpl->getDOMNode(); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMElement *element = domnode->getOwnerElement(); DOMDocument *doc = element->getOwnerDocument(); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1. Error checks: // a. If the QNames of any two attribute nodes in $replacement have implied namespace bindings that conflict with // each other, a dynamic error is raised [err:XUDY0024]. // b. If the QName of any attribute node in $replacement has an implied namespace binding that conflicts with a // namespace binding in the "namespaces" property of parent($target), a dynamic error is raised [err:XUDY0024]. // Checks performed by UpdateFactory // 2b. If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked // on each element node in $replacement. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // 2a. For each node in $replacement, the parent property is set to parent($target). // 4a. If $target is an attribute node, the attributes property of parent($target) is modified by removing $target // and adding the nodes in $replacement (if any). // 4b. If $target is an attribute node, the namespaces property of parent($target) is modified to include namespace // bindings for any attribute namespace prefixes in $replacement that did not already have bindings. element->setAttributeNode((DOMAttr*)newChild); } // 3a. $target is marked for deletion. forDeletion_.insert(domnode); // 4d. upd:removeType(parent($target)) is invoked. removeType(element); // Use parentNode, since the attr replace could have removed the original attr addToPutSet(parentNode, &update, context); } void XercesUpdateFactory::applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMElement *domnode = (DOMElement*)nodeImpl->getDOMNode(); // 1. For each node $C that is a child of $target, the parent property of $C is set to empty. DOMNode *child = domnode->getFirstChild(); while(child != 0) { forDeletion_.insert(child); child = child->getNextSibling(); } const XMLCh *value = update.getValue().first()->asString(context); if(value != 0 && *value != 0) { // 2. The parent property of $text is set to $target. // 3a. children is set to consist exclusively of $text. If $text is an empty sequence, then $target has // no children. // 3b. typed-value and string-value are set to the content property of $text. If $text is an empty sequence, // then typed-value is an empty sequence and string-value is an empty string. domnode->appendChild(domnode->getOwnerDocument()->createTextNode(value)); } // 3c. upd:removeType($target) is invoked. removeType(domnode); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::removeType(DOMNode *node) { DOMNode *ancestor = node; // 1. If $N is an element node, its properties are changed as follows: if(node->getNodeType() == DOMNode::ELEMENT_NODE) { // a. If type-name is not equal to xs:untyped, then const XMLCh *typeURI, *typeName; XercesNodeImpl::typeUriAndName(node, typeURI, typeName); if(!XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || !XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // i. type-name is set to xs:anyType XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgATTVAL_ANYTYPE); // ii. If the parent of N is an element node, then upd:removeType(parent($N)) is invoked. DOMNode *parent = node->getParentNode(); if(parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) removeType(parent); } // b. string-value is set equal to the concatenated contents of the text node descendants, in document order. // c. typed-value is set equal to the string-value property, as an instance of xs:untypedAtomic. // d. nilled, is-id, and is-idrefs are set to false. // Automatically done by changing the type } // 2. If $N is an attribute node, its properties are changed as follows: else if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { // a. type-name is set to xs:untypedAtomic. XercesSequenceBuilder::setAttributeTypeInfo((DOMAttr *)node, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); // b. typed-value is set equal to the string-value property, as an instance of xs:untypedAtomic. // c. is-id and is-idrefs are set to false. // Automatically done by changing the type // d. If $N has a parent, upd:removeType(parent($N)) is invoked. ancestor = ((DOMAttr*)node)->getOwnerElement(); if(ancestor) removeType(ancestor); } else return; // 3. The topmost ancestor of $N is marked for revalidation. if(ancestor) { while(ancestor->getParentNode() != 0) ancestor = ancestor->getParentNode(); forRevalidation_.insert(ancestor); } } void XercesUpdateFactory::setTypes(DOMNode *node, const DOMNode *from) { if(node->getNodeType() == DOMNode::ELEMENT_NODE) { const XMLCh *turi, *tname; XercesNodeImpl::typeUriAndName(from, turi, tname); XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node, turi, tname); DOMNamedNodeMap *attrs = node->getAttributes(); DOMNamedNodeMap *attrsfrom = from->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { DOMNode *a = attrs->item(i); DOMNode *afrom = attrsfrom->getNamedItemNS(a->getNamespaceURI(), Axis::getLocalName(a)); if(afrom) setTypes(a, afrom); } DOMNode *child = node->getFirstChild(); DOMNode *cfrom = from->getFirstChild(); while(child) { if(child->getNodeType() == DOMNode::ELEMENT_NODE) setTypes(child, cfrom); child = child->getNextSibling(); cfrom = cfrom->getNextSibling(); } } else if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { const XMLCh *turi, *tname; XercesNodeImpl::typeUriAndName(from, turi, tname); XercesSequenceBuilder::setAttributeTypeInfo((DOMAttr *)node, turi, tname); } } bool XercesUpdateFactory::PutItem::operator<(const PutItem &other) const { if(uri == 0 && other.uri == 0) { return node->uniqueLessThan(other.node, context); } return XPath2Utils::compare(uri, other.uri) < 0; } void XercesUpdateFactory::addToPutSet(const Node::Ptr &node, const LocationInfo *location, DynamicContext *context) { Node::Ptr root = node->root(context); Sequence docURISeq = root->dmDocumentURI(context); const XMLCh *docuri = 0; if(!docURISeq.isEmpty()) { docuri = docURISeq.first()->asString(context); } PutItem item(docuri, root, location, context); std::pair res = putSet_.insert(item); if(!res.second && !res.first->node->equals(item.node)) { if(context->getMessageListener() != 0) { context->getMessageListener()->warning(X("In the context of this expression"), res.first->location); } XMLBuffer buf; buf.append(X("Document writing conflict for URI \"")); buf.append(item.uri); buf.append(X("\"")); XQThrow3(ASTException, X("XercesUpdateFactory::addToPutSet"), buf.getRawBuffer(), location); } } void XercesUpdateFactory::completeDeletions(DynamicContext *context) { // e. Finally, for each node marked for deletion by one of the update primitives listed above, let $N be the node that is marked // for deletion, and let $P be its parent node. The following actions are applied: // i. The parent property of $N is set to empty. // ii. If $N is an attribute node, the attributes property of $P is modified to remove $N. // iii. If $N is a non-attribute node, the children property of $P is modified to remove $N. // iv. If $N is an element, attribute, or text node, and $P is an element node, then upd:removeType($P) is invoked. for(DOMNodeSet::iterator i = forDeletion_.begin(); i != forDeletion_.end(); ++i) { DOMNode *domnode = *i; if(domnode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { DOMAttr *attr = (DOMAttr*)domnode; DOMElement *owner = attr->getOwnerElement(); if(owner != 0) { owner->removeAttributeNode(attr); removeType(owner); } } else { DOMNode *parent = domnode->getParentNode(); if(parent != 0) { parent->removeChild(domnode); if(domnode->getNodeType() == DOMNode::ELEMENT_NODE || domnode->getNodeType() == DOMNode::TEXT_NODE || domnode->getNodeType() == DOMNode::CDATA_SECTION_NODE) { removeType(parent); } } } } } static inline DOMElement *nextElement(DOMNode *node) { while(node && node->getNodeType() != DOMNode::ELEMENT_NODE) { node = node->getNextSibling(); } return (DOMElement*)node; } class RevalidationEventHandler : public EventHandler { public: RevalidationEventHandler(DOMNode *node) : node_(0), child_(node) { } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { assert(child_ && child_->getNodeType() == DOMNode::DOCUMENT_NODE); node_ = child_; child_ = nextElement(node_->getFirstChild()); } virtual void endDocumentEvent() { assert(node_ && node_->getNodeType() == DOMNode::DOCUMENT_NODE); child_ = node_; node_ = 0; } virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { assert(child_ && child_->getNodeType() == DOMNode::ELEMENT_NODE); node_ = child_; child_ = nextElement(node_->getFirstChild()); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { assert(node_ && node_->getNodeType() == DOMNode::ELEMENT_NODE); // Copy the element's type const XMLCh *oldTypeURI, *oldTypeName; XercesNodeImpl::typeUriAndName(node_, oldTypeURI, oldTypeName); if(!XPath2Utils::equals(oldTypeName, typeName) || !XPath2Utils::equals(oldTypeURI, typeURI)) { XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node_, typeURI, typeName); } child_ = node_; node_ = node_->getParentNode(); child_ = nextElement(child_->getNextSibling()); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(node_ && node_->getNodeType() == DOMNode::ELEMENT_NODE); DOMNamedNodeMap *attrs = node_->getAttributes(); DOMAttr *at = (DOMAttr*)attrs->getNamedItemNS(uri, localname); // Add the attribute if(!at) { at = node_->getOwnerDocument()->createAttributeNS(uri, localname); if(prefix && *prefix) at->setPrefix(prefix); attrs->setNamedItemNS(at); } // Copy the schema normalized value at->setNodeValue(value); // Copy the attribute's type const XMLCh *oldTypeURI, *oldTypeName; XercesNodeImpl::typeUriAndName(at, oldTypeURI, oldTypeName); if(!XPath2Utils::equals(oldTypeName, typeName) || !XPath2Utils::equals(oldTypeURI, typeURI)) { XercesSequenceBuilder::setAttributeTypeInfo(at, typeURI, typeName); } } virtual void piEvent(const XMLCh *target, const XMLCh *value) { } virtual void textEvent(const XMLCh *value) { } virtual void textEvent(const XMLCh *chars, unsigned int length) { } virtual void commentEvent(const XMLCh *value) { } virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { } virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { } virtual void endEvent() { } private: DOMNode *node_; DOMNode *child_; }; void XercesUpdateFactory::completeRevalidation(DynamicContext *context) { if(valMode_ == DocumentCache::VALIDATION_SKIP) return; for(DOMNodeSet::iterator i = forRevalidation_.begin(); i != forRevalidation_.end(); ++i) { DOMNode *top = *i; // TBD element default/normalized values - jpcs // Stream the node through the schema validator, and back to the RevalidationEventHandler, // which will write the information back into the node RevalidationEventHandler reh(top); SchemaValidatorFilter svf(valMode_ == DocumentCache::VALIDATION_STRICT, &reh, context->getDocumentCache()->getGrammarResolver(), context->getMemoryManager(), 0); ValidateArgumentCheckFilter argCheck(&svf, valMode_, context, 0); XercesNodeImpl::generateEvents(top, &argCheck, true, false); argCheck.endEvent(); } } void XercesUpdateFactory::completeUpdate(DynamicContext *context) { completeDeletions(context); completeRevalidation(context); // Call the URIResolvers to handle the PutSet for(PutSet::iterator i = putSet_.begin(); i != putSet_.end(); ++i) { try { if(!context->putDocument(i->node, i->uri)) { XMLBuffer buf; buf.append(X("Writing of updated document failed for URI \"")); buf.append(i->uri); buf.append(X("\"")); XQThrow3(ASTException, X("XercesUpdateFactory::completeUpdate"), buf.getRawBuffer(), i->location); } } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(i->location); } throw e; } } } XQilla-2.3.4/src/xerces/Axis.cpp0000644001725400016040000001647513273140037013344 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "Axis.hpp" #include #include #include #include #include #include "../dom-api/impl/XPathNamespaceImpl.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif Axis::Axis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : ResultImpl(info), nodeObj_(nodeObj), factory_(factory), contextNode_(contextNode), nodeTest_(nodeTest), toDo_(true) { } Item::Ptr Axis::next(DynamicContext *context) { const DOMNode *node = 0; while((node = nextNode(context)) != 0) { context->testInterrupt(); if(nodeTest_ == 0) return factory_.createNode(node, context); SequenceType::ItemType *itemType = nodeTest_->getItemType(); if(itemType != 0) { Node::Ptr result = factory_.createNode(node, context); if(itemType->matches(result, context)) { return result; } } else { switch(node->getNodeType()) { case DOMNode::DOCUMENT_NODE: { if(!nodeTest_->getTypeWildcard() && nodeTest_->getNodeType() != Node::document_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::ELEMENT_NODE: { if(!nodeTest_->getTypeWildcard() && nodeTest_->getNodeType() != Node::element_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(getLocalName(node), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(node->getNamespaceURI(), nodeTest_->getNodeUri())) continue; break; } case DOMNode::ATTRIBUTE_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::attribute_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(getLocalName(node), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(node->getNamespaceURI(), nodeTest_->getNodeUri())) continue; break; } case DOMNode::CDATA_SECTION_NODE: case DOMNode::TEXT_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::text_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::PROCESSING_INSTRUCTION_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::processing_instruction_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(node->getNodeName(), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::COMMENT_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::comment_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::namespace_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(node->getPrefix(), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(XMLUni::fgZeroLenString, nodeTest_->getNodeUri())) continue; break; } default: { continue; } } return factory_.createNode(node, context); } } return 0; } const DOMNode *Axis::getParent(const DOMNode *fNode) { DOMNode *parent = XPath2NSUtils::getParent(fNode); // Skip out of entity reference nodes while(parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { parent = parent->getParentNode(); } return parent; } const DOMNode *Axis::getFirstChild(const DOMNode *fNode) { if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) return 0; DOMNode *result = fNode->getFirstChild(); if(result == 0) return 0; // Skip into the contents of entity reference nodes while(result->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = result->getFirstChild(); } // Skip any other unused types while(result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getNextSibling(); } return result; } const DOMNode *Axis::getLastChild(const DOMNode *fNode) { if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) return 0; DOMNode *result = fNode->getLastChild(); if(result == 0) return 0; // Skip into the contents of entity reference nodes while(result->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = result->getLastChild(); } // Skip any other unused types while(result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getPreviousSibling(); } return result; } const DOMNode *Axis::getNextSibling(const DOMNode *fNode) { DOMNode *result = fNode->getNextSibling(); if(result == 0) { // Skip out of the contents of entity reference nodes DOMNode *parent = fNode->getParentNode(); while(result == 0 && parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = parent->getNextSibling(); parent = parent->getParentNode(); } } // Skip any other unused types while(result != 0 && result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getNextSibling(); } return result; } const DOMNode *Axis::getPreviousSibling(const DOMNode *fNode) { DOMNode *result = fNode->getPreviousSibling(); if(result == 0) { // Skip out of the contents of entity reference nodes DOMNode *parent = fNode->getParentNode(); while(result == 0 && parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = parent->getPreviousSibling(); parent = parent->getParentNode(); } } // Skip any other unused types while(result != 0 && result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getPreviousSibling(); } return result; } XQilla-2.3.4/src/xerces/AncestorAxis.hpp0000644001725400016040000000240513273140037015034 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANCESTORAXIS_HPP #define _ANCESTORAXIS_HPP #include "Axis.hpp" /** This class implements the AncestorAxis as defined in the XPath spec */ class XQILLA_API AncestorAxis : public Axis { public: AncestorAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ancestor_; }; #endif XQilla-2.3.4/src/xerces/XercesSequenceBuilder.hpp0000644001725400016040000000520613273140037016664 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XERCESSEQUENCEBUILDER_HPP #define _XERCESSEQUENCEBUILDER_HPP #include #include #include "../dom-api/impl/XPathDocumentImpl.hpp" class XercesSequenceBuilder : public SequenceBuilder { public: XercesSequenceBuilder(const DynamicContext *context); virtual ~XercesSequenceBuilder(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); virtual Sequence getSequence() const { return seq_; } static void setElementTypeInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *element, const XMLCh *typeURI, const XMLCh *typeName); static void setAttributeTypeInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMAttr *attr, const XMLCh *typeURI, const XMLCh *typeName); private: const DynamicContext *context_; XPathDocumentImpl *document_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *currentParent_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *currentNode_; Sequence seq_; }; #endif XQilla-2.3.4/src/xerces/XercesConfiguration.cpp0000644001725400016040000000466713273140037016421 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include "../schema/FaxppDocumentCacheImpl.hpp" #include #include #include #include #include "XercesUpdateFactory.hpp" #include "XercesNodeImpl.hpp" #include "XercesURIResolver.hpp" #include "XercesSequenceBuilder.hpp" XERCES_CPP_NAMESPACE_USE; const XMLCh XercesConfiguration::gXerces[] = // Points to "Xerces" { chLatin_X, chLatin_e, chLatin_r, chLatin_c, chLatin_e, chLatin_s, chNull }; DocumentCache *XercesConfiguration::createDocumentCache(MemoryManager *memMgr) { #ifdef HAVE_FAXPP return new (memMgr) FaxppDocumentCacheImpl(memMgr); #else return new (memMgr) DocumentCacheImpl(memMgr); #endif } SequenceBuilder *XercesConfiguration::createSequenceBuilder(const DynamicContext *context) { return new (context->getMemoryManager()) XercesSequenceBuilder(context); } ItemFactory *XercesConfiguration::createItemFactory(DocumentCache *cache, MemoryManager *memMgr) { return new (memMgr) ItemFactoryImpl(cache, memMgr); } UpdateFactory *XercesConfiguration::createUpdateFactory(MemoryManager *memMgr) { return new (memMgr) XercesUpdateFactory(); } URIResolver *XercesConfiguration::createDefaultURIResolver(MemoryManager *memMgr) { return new (memMgr) XercesURIResolver(memMgr); } ASTToXML *XercesConfiguration::createASTToXML() { return new ASTToXML(); } Node::Ptr XercesConfiguration::createNode(const DOMNode *node, const DynamicContext *context) const { return new XercesNodeImpl(node, 0); } XQilla-2.3.4/src/xerces/PrecedingAxis.hpp0000644001725400016040000000250513273140037015157 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PRECEDINGAXIS_HPP #define _PRECEDINGAXIS_HPP #include "Axis.hpp" /** This class implements the PrecedingAxis axis as defined by the XPath spec */ class XQILLA_API PrecedingAxis : public Axis { public: PrecedingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parent_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.4/src/xerces/PrecedingSiblingAxis.hpp0000644001725400016040000000246513273140037016474 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PRECEDINGSIBLINGAXIS_HPP #define _PRECEDINGSIBLINGAXIS_HPP #include "Axis.hpp" /** This class implements the PrecedingSiblingAxis axis as defined by the XPath spec */ class XQILLA_API PrecedingSiblingAxis : public Axis { public: PrecedingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *sibling_; }; #endif XQilla-2.3.4/src/xerces/DescendantOrSelfAxis.cpp0000644001725400016040000000326713273140037016443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "DescendantOrSelfAxis.hpp" #include #include DescendantOrSelfAxis::DescendantOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), descendant_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *DescendantOrSelfAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; descendant_ = contextNode_; } else if(descendant_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getFirstChild(descendant_); while(result == 0 && descendant_ != contextNode_) { result = getNextSibling(descendant_); if(result == 0) { descendant_ = getParent(descendant_); } } descendant_ = result; } return descendant_; } XQilla-2.3.4/src/xerces/PrecedingAxis.cpp0000644001725400016040000000351513273140037015154 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "PrecedingAxis.hpp" #include #include #include PrecedingAxis::PrecedingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), parent_(0), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *PrecedingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = contextNode_; parent_ = getParent(node_); } if(node_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getPreviousSibling(node_); while(result == 0) { node_ = getParent(node_); if(node_ != 0 && node_ == parent_) { parent_ = getParent(parent_); result = getPreviousSibling(node_); } else { break; } } while(result != 0) { node_ = result; result = getLastChild(node_); } } return node_; } XQilla-2.3.4/src/xerces/NamespaceAxis.hpp0000644001725400016040000000313013273140037015146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NAMESPACEAXIS_HPP #define _NAMESPACEAXIS_HPP #include #include "Axis.hpp" #include #include class XQILLA_API NamespaceAxis : public Axis { public: NamespaceAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_, *originalNode_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap *nodeMap_; unsigned int i_; enum { CHECK_ELEMENT, CHECK_ATTR, DO_XML, DONE } state_; typedef std::set DoneSet; DoneSet done_; }; #endif XQilla-2.3.4/src/xerces/AncestorOrSelfAxis.cpp0000644001725400016040000000265313273140037016147 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AncestorOrSelfAxis.hpp" #include #include AncestorOrSelfAxis::AncestorOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), ancestor_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *AncestorOrSelfAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; ancestor_ = contextNode_; } else if(ancestor_ != 0) { ancestor_ = getParent(ancestor_); } return ancestor_; } XQilla-2.3.4/src/xerces/XercesSequenceBuilder.cpp0000644001725400016040000002343413273140037016662 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesSequenceBuilder.hpp" #include "XercesNodeImpl.hpp" #include #include #include "../dom-api/impl/XPathDocumentImpl.hpp" #include "../dom-api/XQillaImplementation.hpp" #include "../dom-api/impl/XPathNamespaceImpl.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XercesSequenceBuilder::XercesSequenceBuilder(const DynamicContext *context) : context_(context), document_(0), currentParent_(0), currentNode_(0), seq_(context->getMemoryManager()) { } XercesSequenceBuilder::~XercesSequenceBuilder() { delete document_; } void XercesSequenceBuilder::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } currentParent_ = document_; currentNode_ = document_; document_->setDocumentURI(documentURI); #if _XERCES_VERSION >= 30000 document_->setInputEncoding(encoding); #else document_->setActualEncoding(encoding); #endif } void XercesSequenceBuilder::endDocumentEvent() { currentNode_ = currentParent_; currentParent_ = currentParent_->getParentNode(); if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::endEvent() { } void XercesSequenceBuilder::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMElement *elem = document_->createElementNS(uri, localname); if(prefix != 0) elem->setPrefix(prefix); if(currentParent_ != 0) currentParent_->appendChild(elem); currentParent_ = elem; currentNode_ = elem; } void XercesSequenceBuilder::setElementTypeInfo(DOMElement *element, const XMLCh *typeURI, const XMLCh *typeName) { // TBD detect xs:untyped? - jpcs DOMDocument *document = element->getOwnerDocument(); DOMTypeInfoImpl* pInfo = new (document) DOMTypeInfoImpl(typeURI, typeName); pInfo->setNumericProperty(DOMPSVITypeInfo::PSVI_Validity, PSVIItem::VALIDITY_VALID); #if _XERCES_VERSION >= 30000 ((DOMElementNSImpl*)element)->setSchemaTypeInfo(pInfo); #else ((DOMElementNSImpl*)element)->setTypeInfo(pInfo); #endif } void XercesSequenceBuilder::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { currentNode_ = currentParent_; currentParent_ = currentParent_->getParentNode(); if(typeName) setElementTypeInfo((DOMElement*)currentNode_, typeURI, typeName); else setElementTypeInfo((DOMElement*)currentNode_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::piEvent(const XMLCh *target, const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMProcessingInstruction *pi = document_->createProcessingInstruction(target, value); if(currentParent_ != 0) currentParent_->appendChild(pi); currentNode_ = pi; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::textEvent(const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } if(currentNode_ != 0 && currentNode_->getNodeType() == DOMNode::TEXT_NODE) { // Combine adjacent text nodes ((DOMText *)currentNode_)->appendData(value); } else if(currentParent_ == 0 || (value != 0 && *value != 0)) { // Text nodes with a zero length value can only exist // when they have no parent DOMText *node = document_->createTextNode(value); if(currentParent_ != 0) currentParent_->appendChild(node); currentNode_ = node; } if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::textEvent(const XMLCh *chars, unsigned int length) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } if(currentNode_->getNodeType() == DOMNode::TEXT_NODE) { // Combine adjacent text nodes XMLBuffer buf; buf.append(chars, length); ((DOMText *)currentNode_)->appendData(buf.getRawBuffer()); } else if(currentParent_ == 0 || length != 0) { // Text nodes with a zero length value can only exist // when they have no parent XMLBuffer buf; buf.append(chars, length); DOMText *node = document_->createTextNode(buf.getRawBuffer()); if(currentParent_ != 0) currentParent_->appendChild(node); currentNode_ = node; } if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::commentEvent(const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMComment *comment = document_->createComment(value); if(currentParent_ != 0) currentParent_->appendChild(comment); currentNode_ = comment; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::setAttributeTypeInfo(DOMAttr *attr, const XMLCh *typeURI, const XMLCh *typeName) { // TBD detect xs:untypedAtomic? - jpcs DOMDocument *document = attr->getOwnerDocument(); DOMTypeInfoImpl* pInfo = new (document) DOMTypeInfoImpl(typeURI, typeName); pInfo->setNumericProperty(DOMPSVITypeInfo::PSVI_Validity, PSVIItem::VALIDITY_VALID); #if _XERCES_VERSION >= 30000 ((DOMAttrImpl*)attr)->setSchemaTypeInfo(pInfo); #else ((DOMAttrImpl*)attr)->setTypeInfo(pInfo); #endif } void XercesSequenceBuilder::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMAttr *attr = document_->createAttributeNS(uri, localname); if(prefix != 0) attr->setPrefix(prefix); attr->setValue(value); if(typeName) setAttributeTypeInfo(attr, typeURI, typeName); else setAttributeTypeInfo(attr, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); if(currentParent_ != 0) currentParent_->getAttributes()->setNamedItemNS(attr); currentNode_ = attr; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(currentParent_ != 0) { DOMAttr *attr = document_->createAttributeNS(XMLUni::fgXMLNSURIName, prefix == 0 ? XMLUni::fgXMLNSString : prefix); if(prefix != 0) attr->setPrefix(XMLUni::fgXMLNSString); attr->setValue(uri); currentParent_->getAttributes()->setNamedItemNS(attr); currentNode_ = attr; } else { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); DOMXPathNamespace *ns = new (document_, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT) XPathNamespaceImpl(prefix, uri, 0, document_); seq_.addItem(new XercesNodeImpl(ns, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(currentParent_ == 0); seq_.addItem(context_->getItemFactory()->createDerivedFromAtomicType(type, typeURI, typeName, value, context_)); } XQilla-2.3.4/src/xerces/FollowingAxis.hpp0000644001725400016040000000227313273140037015221 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FOLLOWINGAXIS_HPP #define _FOLLOWINGAXIS_HPP #include "Axis.hpp" class XQILLA_API FollowingAxis : public Axis { public: FollowingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.4/src/xerces/FollowingSiblingAxis.cpp0000644001725400016040000000264713273140037016531 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FollowingSiblingAxis.hpp" #include #include FollowingSiblingAxis::FollowingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *FollowingSiblingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = getNextSibling(contextNode_); } else if(node_ != 0) { node_ = getNextSibling(node_); } return node_; } XQilla-2.3.4/src/xerces/ParentAxis.cpp0000644001725400016040000000265413273140037014510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "ParentAxis.hpp" #include #include #include #include #include ParentAxis::ParentAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ParentAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; return getParent(contextNode_); } else { return 0; } } XQilla-2.3.4/src/xerces/FollowingSiblingAxis.hpp0000644001725400016040000000232613273140037016530 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FOLLOWINGSIBLINGAXIS_HPP #define _FOLLOWINGSIBLINGAXIS_HPP #include "Axis.hpp" class XQILLA_API FollowingSiblingAxis : public Axis { public: FollowingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.4/src/xerces/AttributeAxis.cpp0000644001725400016040000000452413273140037015220 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AttributeAxis.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif AttributeAxis::AttributeAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), nodeMap_(contextNode->getAttributes()), i_(0) { } const DOMNode *AttributeAxis::nextNode(DynamicContext *context) { const DOMNode *result = 0; if(nodeMap_ != 0) { unsigned int nLen = (unsigned int) nodeMap_->getLength(); if(i_==0 && nodeTest_!=0 && nodeTest_->getItemType()==0 && !nodeTest_->getNamespaceWildcard() && !nodeTest_->getNameWildcard()) { const XMLCh* uri=nodeTest_->getNodeUri(); if(uri==0) result=nodeMap_->getNamedItem(nodeTest_->getNodeName()); else result=nodeMap_->getNamedItemNS(uri,nodeTest_->getNodeName()); i_=nLen; } while(result == 0 && i_ < nLen) { result = nodeMap_->item(i_); ++i_; //Check to see if this attribute starts with "xmlns:" or is equal to "xmlns" const XMLCh* name=result->getNodeName(); const XMLCh* xmlns=XMLUni::fgXMLNSString; while(*name && *xmlns) { if(*name++!=*xmlns++) break; } if(*xmlns==0 && (*name==0 || *name==chColon)) result = 0; } } return result; } std::string AttributeAxis::asString(DynamicContext *context, int indent) const { return "AttributeAxis"; } XQilla-2.3.4/src/xerces/ChildAxis.cpp0000644001725400016040000000260013273140037014271 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "ChildAxis.hpp" #include #include ChildAxis::ChildAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), child_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ChildAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; child_ = getFirstChild(contextNode_); } else if(child_ != 0) { child_ = getNextSibling(child_); } return child_; } XQilla-2.3.4/src/xerces/ChildAxis.hpp0000644001725400016040000000237113273140037014303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CHILDAXIS_HPP #define _CHILDAXIS_HPP #include "Axis.hpp" /** This class implements the ChildAxis axis as defined by the XPath spec */ class XQILLA_API ChildAxis : public Axis { public: ChildAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *child_; }; #endif XQilla-2.3.4/src/xerces/XercesNodeImpl.cpp0000644001725400016040000014400113273140037015304 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesNodeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "AncestorAxis.hpp" #include "AncestorOrSelfAxis.hpp" #include "AttributeAxis.hpp" #include "ChildAxis.hpp" #include "DescendantAxis.hpp" #include "DescendantOrSelfAxis.hpp" #include "FollowingAxis.hpp" #include "FollowingSiblingAxis.hpp" #include "NamespaceAxis.hpp" #include "ParentAxis.hpp" #include "PrecedingAxis.hpp" #include "PrecedingSiblingAxis.hpp" #include #include #include "../xerces/XercesURIResolver.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XercesNodeImpl::XercesNodeImpl(const DOMNode *node, XercesURIResolver *resolver) : fNode(node), // resolver_((XercesURIResolver*)context->getDefaultURIResolver()) resolver_(resolver) { assert(node!=0); if(resolver_ != 0) { resolver_->incrementDocumentRefCount(XPath2Utils::getOwnerDoc(fNode)); } } XercesNodeImpl::~XercesNodeImpl() { if(resolver_ != 0) { resolver_->decrementDocumentRefCount(XPath2Utils::getOwnerDoc(fNode)); } } Node::Ptr XercesNodeImpl::createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const { return new XercesNodeImpl(node, resolver_); } void *XercesNodeImpl::getInterface(const XMLCh *name) const { if(XPath2Utils::equals(name,Item::gXQilla)) { return (void*)this; } else if(XPath2Utils::equals(name, XercesConfiguration::gXerces)) { return (void*)fNode; } return 0; } const XMLCh* XercesNodeImpl::asString(const DynamicContext* context) const { XPath2MemoryManager *mm = context->getMemoryManager(); MemBufFormatTarget target(1023, mm); EventSerializer writer(&target, mm); NSFixupFilter nsfilter(&writer, mm); generateEvents(&nsfilter, context); nsfilter.endEvent(); return XMLString::replicate((XMLCh*)target.getRawBuffer(), mm); } static inline bool emptyString(const XMLCh * const str) { return str == 0 || *str == 0; } static void outputInheritedNamespaces(const DOMNode *node, EventHandler *events) { typedef std::set DoneSet; DoneSet done; while(node != 0 && node->getNodeType() == DOMNode::ELEMENT_NODE) { if(done.insert(emptyToNull(node->getPrefix())).second && !emptyString(node->getNamespaceURI())) { events->namespaceEvent(emptyToNull(node->getPrefix()), node->getNamespaceURI()); } DOMNamedNodeMap *attrs = node->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { DOMNode *attr = attrs->item(i); if(XPath2Utils::equals(XMLUni::fgXMLNSURIName, attr->getNamespaceURI())) { const XMLCh *prefix = emptyString(attr->getPrefix()) ? 0 : Axis::getLocalName(attr); if(done.insert(prefix).second && !emptyString(attr->getNodeValue())) { events->namespaceEvent(prefix, attr->getNodeValue()); } } else if(!emptyString(attr->getNamespaceURI()) && done.insert(emptyToNull(attr->getPrefix())).second) { events->namespaceEvent(emptyToNull(attr->getPrefix()), attr->getNamespaceURI()); } } node = node->getParentNode(); } } static void toEventsImpl(const DOMNode *node, EventHandler *events, bool outputNamespaces, bool preserveType, bool inheritedNamespaces) { switch(node->getNodeType()) { case DOMNode::DOCUMENT_NODE: { #if _XERCES_VERSION >= 30000 events->startDocumentEvent(((DOMDocument*)node)->getDocumentURI(), ((DOMDocument*)node)->getInputEncoding()); #else events->startDocumentEvent(((DOMDocument*)node)->getDocumentURI(), ((DOMDocument*)node)->getActualEncoding()); #endif DOMNode *child = node->getFirstChild(); while(child != 0) { toEventsImpl(child, events, outputNamespaces, preserveType, false); child = child->getNextSibling(); } events->endDocumentEvent(); break; } case DOMNode::ELEMENT_NODE: { events->startElementEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), emptyToNull(Axis::getLocalName(node))); DOMNamedNodeMap *attrs = node->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { toEventsImpl(attrs->item(i), events, outputNamespaces, preserveType, inheritedNamespaces); } if(inheritedNamespaces) { outputInheritedNamespaces(node, events); } DOMNode *child = node->getFirstChild(); while(child != 0) { toEventsImpl(child, events, outputNamespaces, preserveType, false); child = child->getNextSibling(); } const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(preserveType) XercesNodeImpl::typeUriAndName(node, typeURI, typeName); events->endElementEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), emptyToNull(Axis::getLocalName(node)), typeURI, typeName); break; } case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: events->textEvent(node->getNodeValue()); break; case DOMNode::COMMENT_NODE: events->commentEvent(node->getNodeValue()); break; case DOMNode::PROCESSING_INSTRUCTION_NODE: events->piEvent(node->getNodeName(), node->getNodeValue()); break; case DOMNode::ATTRIBUTE_NODE: if(XPath2Utils::equals(XMLUni::fgXMLNSURIName, node->getNamespaceURI())) { if(outputNamespaces && !inheritedNamespaces) { const XMLCh *prefix = emptyString(node->getPrefix()) ? 0 : Axis::getLocalName(node); events->namespaceEvent(prefix, emptyToNull(node->getNodeValue())); } } else { const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; if(preserveType) XercesNodeImpl::typeUriAndName(node, typeURI, typeName); events->attributeEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), Axis::getLocalName(node), node->getNodeValue(), typeURI, typeName); } break; case (DOMNode::NodeType)DOMXPathNamespace::XPATH_NAMESPACE_NODE: events->namespaceEvent(emptyToNull(node->getNodeName()), emptyToNull(node->getNamespaceURI())); break; default: break; } } void XercesNodeImpl::generateEvents(const DOMNode *node, EventHandler *events, bool preserveNS, bool preserveType) { toEventsImpl(node, events, preserveNS, preserveType, preserveNS); } void XercesNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { toEventsImpl(fNode, events, preserveNS, preserveType, preserveNS); } /** check if the underlying type of this node is instance of a certain type */ bool XercesNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } /* Accessor functions */ Sequence XercesNodeImpl::dmBaseURI(const DynamicContext* context) const { static XMLCh base_str[] = { 'b', 'a', 's', 'e', 0 }; switch (fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: { const XMLCh *baseURI = context->getBaseURI(); const XMLCh* docURI = ((DOMDocument*)fNode)->getDocumentURI(); if(docURI != 0 && *docURI != 0) baseURI = docURI; if(baseURI == 0 || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case DOMNode::ELEMENT_NODE: { const XMLCh *baseURI = context->getBaseURI(); Node::Ptr parent = dmParent(context); if(parent.notNull()) { Sequence pb = parent->dmBaseURI(context); if(!pb.isEmpty()) baseURI = pb.first()->asString(context); } NodeTest xmlBase; xmlBase.setNodeName(base_str); xmlBase.setNodeUri(XMLUni::fgXMLURIName); xmlBase.setTypeWildcard(); Item::Ptr item = getAxisResult(XQStep::ATTRIBUTE, &xmlBase, const_cast(context), 0)-> next(const_cast(context)); if(item.notNull()) { const XMLCh *uri = ((Node*)item.get())->dmStringValue(context); if(uri && *uri) { if(baseURI && *baseURI) { XMLUri temp(baseURI, context->getMemoryManager()); XMLUri temp2(&temp, uri, context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(temp2.getUriText(), context), context->getMemoryManager()); } return Sequence(context->getItemFactory()->createAnyURI(uri, context), context->getMemoryManager()); } } if(baseURI == NULL || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case DOMNode::ATTRIBUTE_NODE: case DOMNode::COMMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::PROCESSING_INSTRUCTION_NODE: { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } default: break; } return Sequence(context->getMemoryManager()); } // The dm:node-kind accessor returns a string value representing the // node's kind: either "document", "element", "attribute", "text", // "namespace", "processing-instruction", or "comment". const XMLCh* XercesNodeImpl::dmNodeKind(void) const { switch(fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: return document_string; case DOMNode::ELEMENT_NODE: return element_string; case DOMNode::ATTRIBUTE_NODE: return attribute_string; case DOMNode::CDATA_SECTION_NODE: case DOMNode::TEXT_NODE: return text_string; case DOMNode::PROCESSING_INSTRUCTION_NODE: return processing_instruction_string; case DOMNode::COMMENT_NODE: return comment_string; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: return namespace_string; default: break; } XQThrow2(ItemException, X("XercesNodeImpl::dmNodeKind"), X("Unknown node type.")); } ATQNameOrDerived::Ptr XercesNodeImpl::dmNodeName(const DynamicContext* context) const { switch(fNode->getNodeType()) { case DOMNode::ELEMENT_NODE: return context->getItemFactory()->createQName(fNode->getNamespaceURI(), fNode->getPrefix(), Axis::getLocalName(fNode), context); case DOMNode::ATTRIBUTE_NODE: return context->getItemFactory()->createQName(fNode->getNamespaceURI(), fNode->getPrefix(), Axis::getLocalName(fNode), context); case DOMNode::PROCESSING_INSTRUCTION_NODE: return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, fNode->getNodeName(), context); case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { const XMLCh* prefix = fNode->getPrefix(); if(prefix) return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, prefix, context); } default: break; } return 0; } void XercesNodeImpl::addStringValueToBuffer(const DOMNode* node, XMLBuffer& buffer) const { short nodeType=node->getNodeType(); if(nodeType==DOMNode::TEXT_NODE || nodeType==DOMNode::CDATA_SECTION_NODE) { buffer.append(node->getNodeValue()); } else { for(DOMNode* child=node->getFirstChild();child!=NULL;child=child->getNextSibling()) addStringValueToBuffer(child,buffer); } } //The dm:string-value accessor returns the node's string //representation. For some kinds of nodes, this is part of the node; //for other kinds of nodes, it is computed from the dm:string-value of //its descendant nodes. const XMLCh* XercesNodeImpl::dmStringValue(const DynamicContext* context) const { switch(fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: { // Returns the concatenation of the string-values of all its text node descendants in document order XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(fNode,str); return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } break; case DOMNode::ELEMENT_NODE: { XMLBuffer str(1023, context->getMemoryManager()); const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); //Returns the string value calculated as follows: // - If the element has a type of xdt:untyped, a complex type with complex content, or a complex type with mixed content, // returns the concatenation of the string-values of all its text node descendants in document order. // It returns "" if the element has no text node descendants. // - If the element has a complex type with empty content, returns "". if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName)!=NULL) addStringValueToBuffer(fNode,str); else { // - If the element has a simple type or a complex type with simple content: // - If the element type is xs:string, or a type derived from xs:string, returns that string. if(context->getDocumentCache()->isTypeOrDerivedFromType(typeUri,typeName,SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING)) str.set(fNode->getTextContent()); // - If the element type is xs:anyURI, returns the characters of the URI. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_ANYURI) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) str.set(fNode->getTextContent()); // - If the element type is xs:QName returns the value calculated as follows: // - If the value has no namespace URI and the in-scope namespaces map the default namespace to any // namespace URI, then an error is raised ("default namespace is defined"). // - If the value has a namespace URI, then there must be at least one prefix mapped to that URI in // the in-scope namespaces. If there is no such prefix, an error is raised ("no prefix defined for namespace"). // If there is more than one such prefix, the one that is chosen is implementation dependent. // - If no error occurs, returns a string with the lexical form of a xs:QName using the prefix chosen // as described above, and the local name of the value. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_QNAME) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // REVISIT: the rules assume that a QName has been expanded upon loading, but we don't do that... str.set(fNode->getTextContent()); } // - If the element type is xs:dateTime, xs:date, or xs:time, returns the original lexical representation of // the typed value recovered as follows: if an explicit timezone was present, the normalized value is adjusted // using the explicit timezone; if an explicit timezone was not present, the Z is dropped from the normalized value. // The normalized value and the explicit timezone, if present, are converted separately to xs:string and concatenated // to yield the string value. else if(XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATETIME) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATE) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_TIME))) { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, fNode->getTextContent(), context); str.set(item->asString(context)); } // - In all other cases, returns the concatenation of the string-values of all its text node descendants in document order. else addStringValueToBuffer(fNode,str); } return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } break; case DOMNode::ATTRIBUTE_NODE: { const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); // Returns the value calculated as follows: // - If the attribute type is xdt:untypedAtomic, xs:string, or a type derived from xs:string, returns that string. if((XPath2Utils::equals(typeName, ATUntypedAtomic::fgDT_UNTYPEDATOMIC) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || context->getDocumentCache()->isTypeOrDerivedFromType(typeUri,typeName,SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING)) return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); // - If the attribute type is xs:anyURI, returns the characters of the URI. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_ANYURI) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); // - If the attribute type is xs:QName returns the value calculated as follows: // - If the value has no namespace URI, then an error is raised ("default namespace is defined") if the in-scope // namespaces map the default namespace to any namespace URI. // - If the value has a namespace URI, then there must be at least one prefix mapped to that URI in the in-scope // namespaces. If there is no such prefix, an error is raised ("no prefix defined for namespace"). // If there is more than one such prefix, the one that is chosen is implementation dependent. // - If no error occurs, returns a string with the lexical form of a xs:QName using the prefix chosen as described // above, and the local name of the value. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_QNAME) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // REVISIT: the rules assume that a QName has been expanded upon loading, but we don't do that... return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); } // - If the attribute type is xs:dateTime, xs:date, or xs:time, returns the original lexical representation recovered as follows: // - if an explicit timezone was present, the normalized value is adjusted using the explicit timezone; // - if an explicit timezone was not present, the Z is dropped from the normalized value. // The normalized value and the explicit timezone, if present, are converted separately to xs:string and concatenated to yield the string value. else if(XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATETIME) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATE) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_TIME))) { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, fNode->getTextContent(), context); return item->asString(context); } else return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); } break; case DOMNode::PROCESSING_INSTRUCTION_NODE: case DOMNode::COMMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: // Returns the value of the content property. return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); break; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: // Returns the value of the uri property. return context->getMemoryManager()->getPooledString(fNode->getTextContent()); break; default: break; } return XMLUni::fgZeroLenString; } Sequence XercesNodeImpl::getListTypeTypedValue(DatatypeValidator *dtv, const DynamicContext* context) const { const XMLCh *stringVal = dmStringValue(context); BaseRefVectorOf* tokenVector = XMLString::tokenizeString(stringVal); Sequence s(tokenVector->size(), context->getMemoryManager()); //the actual type we want DatatypeValidator* theItemTypeDTV = ((ListDatatypeValidator*)dtv)->getItemTypeDTV(); if (theItemTypeDTV->getType() == DatatypeValidator::Union) { RefVectorOf* membersDV = ((UnionDatatypeValidator*)theItemTypeDTV)->getMemberTypeValidators(); unsigned int size = (unsigned int) membersDV->size(); // find the first datatype in the union that validates the piece for ( unsigned int j = 0; j < tokenVector->size(); j++ ) { const XMLCh* szPiece=tokenVector->elementAt(j); bool bFound=false; for (unsigned int i=0; ielementAt(i); try { pDV->validate(szPiece, NULL, context->getMemoryManager()); const XMLCh* itemTypeDTVName = pDV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = pDV->getTypeUri(); s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, szPiece, context)); bFound=true; break; } catch (XMLException&) { //absorbed } } if(!bFound) XQThrow2(ItemException, X("XercesNodeImpl::getListTypeTypedValue"), X("Value in list doesn't validate with any of the componenets of the union type")); } } else { const XMLCh* itemTypeDTVName = theItemTypeDTV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = theItemTypeDTV->getTypeUri(); for ( unsigned int j = 0; j < tokenVector->size(); j++ ) s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, tokenVector->elementAt(j), context)); } return s; } Sequence XercesNodeImpl::dmTypedValue(DynamicContext* context) const { /* cerr<<"XercesNodeImpl::dmTypedValue getTypeName(): "<getNodeName())<getNamespaceURI())<getMemoryManager(), fNode, context->getNSResolver()); AutoNsScopeReset jan(context,&newNSScope); switch(fNode->getNodeType()) { case DOMNode::ATTRIBUTE_NODE: { // Data Model, 7.3.3 and 7.3.4 const XMLCh* typeUri, *typeName; getMemberTypeUriAndName(typeUri,typeName); Item::Ptr item = 0; //cerr<<"XercesNodeImpl::dmTypedValue getTypeName(): "<getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } else { // Otherwise: its typed-value is a sequence of zero or more atomic values derived from the string-value of // the node and its type in a way that is consistent with XML Schema validation. The type of each atomic value // is assigned as described in 3.3.1.2 Atomic Value Type Names DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(!dtv) { assert(false); XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("The datatype {")); msg.append(typeUri); msg.append(X("}")); msg.append(typeName); msg.append(X(" is unknown")); XQThrow2(XPath2TypeCastException,X("XercesNodeImpl::dmTypedValue"), msg.getRawBuffer()); } if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { item = (const Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } } break; case DOMNode::ELEMENT_NODE: { // Data Model, 7.2.3 and 7.2.4 // If the nilled property is true, its typed-value is (). if(((const ATBooleanOrDerived*)dmNilled(context).get())->isTrue()) return Sequence(context->getMemoryManager()); const XMLCh* typeUri, *typeName; getMemberTypeUriAndName(typeUri,typeName); // If the element is of type xdt:untyped or xs:anyType, its typed-value is its dm:string-value as an xdt:untypedAtomic. if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || (XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) ) { const AnyAtomicType::Ptr item = context->getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } // If the element has a simple type or a complex type with simple content: its typed value is compute // as described in 3.3.1.2 Atomic Value Type Names. The result is a sequence of zero or more atomic values // derived from the string-value of the node and its type in a way that is consistent with XML Schema validation. DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(dtv) { if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } ComplexTypeInfo *cti = context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName); if(cti) { if(cti->getContentType() == SchemaElementDecl::Simple) { DatatypeValidator *dtv = cti->getDatatypeValidator(); assert(dtv != 0); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(dtv->getTypeUri(), dtv->getTypeLocalName(), dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } // If the element is empty: its typed-value is the empty sequence, (). if(cti->getContentType() == SchemaElementDecl::Empty) return Sequence(context->getMemoryManager()); // If the element has a complex type with mixed content, its typed-value is its dm:string-value as an xdt:untypedAtomic. if(cti->getContentType() == SchemaElementDecl::Mixed_Simple || cti->getContentType() == SchemaElementDecl::Mixed_Complex) { const AnyAtomicType::Ptr item = context->getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } // Otherwise, the element must be a complex type with element-only content. // The typed-value of such an element is undefined. Attempting to access this property with the dm:typed-value // accessor always raises an error. if(cti->getContentType() == SchemaElementDecl::Children) XQThrow2(ItemException, X("XercesNodeImpl::dmTypedValue"), X("Attempt to get typed value from a complex type with non-mixed complex content [err:FOTY0012]")); } else { //throw error here?? Should not happen now, but if we stop giving anytype to invalid in DOMTypeInfo //then we will get here if its null. assert(false); } } break; case DOMNode::DOCUMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: { const XMLCh *stringValue = dmStringValue(context); const AnyAtomicType::Ptr untypedAtomic = context->getItemFactory()->createUntypedAtomic(stringValue, context); return Sequence(untypedAtomic, context->getMemoryManager()); } break; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: case DOMNode::COMMENT_NODE: case DOMNode::PROCESSING_INSTRUCTION_NODE: { const XMLCh *stringValue = dmStringValue(context); const AnyAtomicType::Ptr untypedAtomic = context->getItemFactory()->createString(stringValue, context); return Sequence(untypedAtomic, context->getMemoryManager()); } break; default: break; } return Sequence(context->getMemoryManager()); } Sequence XercesNodeImpl::dmDocumentURI(const DynamicContext* context) const { if(fNode->getNodeType()!=DOMNode::DOCUMENT_NODE) return Sequence(context->getMemoryManager()); const DOMDocument* doc=(const DOMDocument *)fNode; const XMLCh* docURI = doc->getDocumentURI(); if( docURI==NULL || *docURI==0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(docURI, context), context->getMemoryManager()); } ATQNameOrDerived::Ptr XercesNodeImpl::dmTypeName(const DynamicContext* context) const { short nodeType=fNode->getNodeType(); if(nodeType != DOMNode::ELEMENT_NODE && nodeType != DOMNode::ATTRIBUTE_NODE && nodeType != DOMNode::TEXT_NODE && nodeType != DOMNode::CDATA_SECTION_NODE) { return 0; } //otherwise return the Qname for the node const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } ATBooleanOrDerived::Ptr XercesNodeImpl::dmNilled(const DynamicContext* context) const { if(fNode->getNodeType() != DOMNode::ELEMENT_NODE) { return 0; } // If the [validity] property exists on an Element Node and is "valid" then if the [nil] property exists and is true, // then nilled property is "true". In all other cases, including all cases where schema validity assessment was not // attempted or did not succeed, the nilled property is "false". try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { bool isNil=(psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Nil)!=0); return context->getItemFactory()->createBoolean(isNil, context); } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } return context->getItemFactory()->createBoolean(false, context); } bool XercesNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) { // It's not a xqilla implementation Node, so it can't // be from the same tree as us - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } const DOMNode* otherNode = otherImpl->getDOMNode(); #if _XERCES_VERSION >= 30000 short pos = const_cast(fNode)->compareDocumentPosition(const_cast(otherNode)); if(pos & DOMNode::DOCUMENT_POSITION_FOLLOWING) return true; return false; #else short pos = const_cast(fNode)->compareTreePosition(const_cast(otherNode)); // compareTreePosition returns the position of the other node, compared to my position; so, if it sets the bit // TREE_POSITION_FOLLOWING, it means that we come before it if(pos & DOMNode::TREE_POSITION_FOLLOWING) return true; if(pos & DOMNode::TREE_POSITION_PRECEDING) return false; if(pos & DOMNode::TREE_POSITION_SAME_NODE) return false; // if the two nodes are attributes or namespaces, we get that they are equivalent; we need a stable ordering, so // we resort to comparing their pointers (we could even decide to sort them on their names...) if(pos & DOMNode::TREE_POSITION_EQUIVALENT) return fNode < otherNode; // if we get they are disconnected, it could be they belong to different documents; in this case, order them according // to the pointer of their documents (all the nodes in document A must come before or after all the nodes in document B, // regardless of the chosen ordering criteria) // If they belong to the same document, they are floating, or maybe just one of them is floating; let's state we consider // the one connected coming before the disconnected one, and, if both are disconnected, we compare the two roots if(fNode->getOwnerDocument()!=otherNode->getOwnerDocument()) return fNode->getOwnerDocument()getOwnerDocument(); const DOMNode* myParent=fNode; const DOMNode* tmpParent = XPath2NSUtils::getParent(fNode); while(tmpParent != 0) { myParent = tmpParent; tmpParent = tmpParent->getParentNode(); } const DOMNode* otherParent=otherNode; tmpParent = XPath2NSUtils::getParent(otherNode); while(tmpParent != 0) { otherParent = tmpParent; tmpParent = tmpParent->getParentNode(); } return myParent < otherParent; #endif } bool XercesNodeImpl::equals(const Node::Ptr &other) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) return false; return fNode->isSameNode(otherImpl->getDOMNode()); } bool XercesNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) { // It's not a xqilla implementation Node, so it can't // be from the same tree as us - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } return fNode < otherImpl->getDOMNode(); } const DOMNode* XercesNodeImpl::getDOMNode() const { return fNode; } Node::Ptr XercesNodeImpl::root(const DynamicContext* context) const { DOMNode *result = const_cast(fNode); DOMNode *parent = XPath2NSUtils::getParent(result); // Skip out of entity reference nodes while(parent != 0) { result = parent; parent = parent->getParentNode(); } return new XercesNodeImpl(result, resolver_); } Node::Ptr XercesNodeImpl::dmParent(const DynamicContext* context) const { DOMNode *parent = XPath2NSUtils::getParent(fNode); // Skip out of entity reference nodes while(parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { parent = parent->getParentNode(); } if(parent == 0) return 0; return new XercesNodeImpl(parent, resolver_); } Result XercesNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new AttributeAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new NamespaceAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new ChildAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { return new AncestorAxis(info, fNode, this, nodeTest, *this); } case XQStep::ANCESTOR_OR_SELF: { return new AncestorOrSelfAxis(info, fNode, this, nodeTest, *this); } case XQStep::ATTRIBUTE: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new AttributeAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::CHILD: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new ChildAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::DESCENDANT: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new DescendantAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::DESCENDANT_OR_SELF: { return new DescendantOrSelfAxis(info, fNode, this, nodeTest, *this); break; } case XQStep::FOLLOWING: { return new FollowingAxis(info, fNode, this, nodeTest, *this); } case XQStep::FOLLOWING_SIBLING: { return new FollowingSiblingAxis(info, fNode, this, nodeTest, *this); } case XQStep::NAMESPACE: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new NamespaceAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::PARENT: { return new ParentAxis(info, fNode, this, nodeTest, *this); } case XQStep::PRECEDING: { return new PrecedingAxis(info, fNode, this, nodeTest, *this); } case XQStep::PRECEDING_SIBLING: { return new PrecedingSiblingAxis(info, fNode, this, nodeTest, *this); } case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } } return 0; } ATBooleanOrDerived::Ptr XercesNodeImpl::dmIsId(const DynamicContext* context) const { const DOMTypeInfo *typeInfo = 0; #if _XERCES_VERSION >= 30000 if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getSchemaTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getSchemaTypeInfo(); } if(typeInfo != 0 && XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDString) && (XPath2Utils::equals(typeInfo->getTypeNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getTypeNamespace(), XMLUni::fgInfosetURIName))) #else if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getTypeInfo(); } if(typeInfo != 0 && XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDString) && (XPath2Utils::equals(typeInfo->getNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getNamespace(), XMLUni::fgInfosetURIName))) #endif { return context->getItemFactory()->createBoolean(true, context); } return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr XercesNodeImpl::dmIsIdRefs(const DynamicContext* context) const { const DOMTypeInfo *typeInfo = 0; #if _XERCES_VERSION >= 30000 if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getSchemaTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getSchemaTypeInfo(); } if(typeInfo != 0 && (XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDRefString) || XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDRefsString)) && (XPath2Utils::equals(typeInfo->getTypeNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getTypeNamespace(), XMLUni::fgInfosetURIName))) #else if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getTypeInfo(); } if(typeInfo != 0 && (XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDRefString) || XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDRefsString)) && (XPath2Utils::equals(typeInfo->getNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getNamespace(), XMLUni::fgInfosetURIName))) #endif { return context->getItemFactory()->createBoolean(true, context); } return context->getItemFactory()->createBoolean(false, context); } void XercesNodeImpl::getMemberTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { short nodeType=fNode->getNodeType(); try { if (nodeType == DOMNode::ELEMENT_NODE || nodeType == DOMNode::ATTRIBUTE_NODE) { // check if we have PSVI info #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType) { // check if we have PSVI info for the content of a union-validated type const XMLCh* memberName=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Member_Type_Definition_Name); if(memberName) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Member_Type_Definition_Namespace); name=memberName; return; } } } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // we are not a union, return the type of the node getTypeUriAndName(uri, name); } void XercesNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { typeUriAndName(fNode, uri, name); } void XercesNodeImpl::typeUriAndName(const DOMNode *node, const XMLCh*& uri, const XMLCh*& name) { short nodeType=node->getNodeType(); if (nodeType == DOMNode::ELEMENT_NODE) { // check if we have PSVI info try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Namespace); name=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Name); return; } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // we are xdt:untyped uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=DocumentCache::g_szUntyped; return; } else if (nodeType == DOMNode::ATTRIBUTE_NODE) { // check if we have PSVI info try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Namespace); name=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Name); return; } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // check if we have type informations coming from a DTD #if _XERCES_VERSION >= 30000 const DOMTypeInfo* pTypeInfo=((DOMAttr*)node)->getSchemaTypeInfo(); const XMLCh* szUri=pTypeInfo->getTypeNamespace(); #else const DOMTypeInfo* pTypeInfo=((DOMAttr*)node)->getTypeInfo(); const XMLCh* szUri=pTypeInfo->getNamespace(); #endif if(szUri==0 || szUri[0]==0) { // in these cases, we are xs:* #if _XERCES_VERSION >= 30000 const XMLCh* szName=pTypeInfo->getTypeName(); #else const XMLCh* szName=pTypeInfo->getName(); #endif if(XPath2Utils::equals(szName,XMLUni::fgIDString) || XPath2Utils::equals(szName,XMLUni::fgIDRefString) || XPath2Utils::equals(szName,XMLUni::fgIDRefsString) || XPath2Utils::equals(szName,XMLUni::fgEntityString) || XPath2Utils::equals(szName,XMLUni::fgEntitiesString) || XPath2Utils::equals(szName,XMLUni::fgNmTokenString) || XPath2Utils::equals(szName,XMLUni::fgNmTokensString)) { uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=szName; return; } } // we are xdt:untypedAtomic uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; } else if(nodeType == DOMNode::TEXT_NODE || nodeType == DOMNode::CDATA_SECTION_NODE) { uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; } XQThrow2(ItemException, X("XercesNodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } const XMLCh* XercesNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* XercesNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } XQilla-2.3.4/src/xerces/DescendantAxis.hpp0000644001725400016040000000230513273140037015325 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DESCENDANTAXIS_HPP #define _DESCENDANTAXIS_HPP #include "Axis.hpp" class XQILLA_API DescendantAxis : public Axis { public: DescendantAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *descendant_; }; #endif XQilla-2.3.4/src/xerces/XercesUpdateFactory.hpp0000644001725400016040000000631013273140037016354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XERCESUPDATEFACTORY_HPP #define _XERCESUPDATEFACTORY_HPP #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesUpdateFactory : public UpdateFactory { public: virtual void applyPut(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context); virtual void applyRename(const PendingUpdate &update, DynamicContext *context); virtual void applyDelete(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context); virtual void completeUpdate(DynamicContext *context); protected: void completeDeletions(DynamicContext *context); void completeRevalidation(DynamicContext *context); void removeType(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); void setTypes(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *from); void addToPutSet(const Node::Ptr &node, const LocationInfo *location, DynamicContext *context); typedef std::set DOMNodeSet; class PutItem { public: PutItem(const XMLCh *urich, const Node::Ptr &nd, const LocationInfo *loc, const DynamicContext *c) : uri(urich), node(nd), location(loc), context(c) {} const XMLCh *uri; const Node::Ptr node; const LocationInfo *location; const DynamicContext *context; bool operator<(const PutItem &other) const; }; typedef std::set PutSet; DOMNodeSet forDeletion_; DOMNodeSet forRevalidation_; PutSet putSet_; }; #endif XQilla-2.3.4/src/xerces/Axis.hpp0000644001725400016040000000502413273140037013335 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _AXIS_HPP #define _AXIS_HPP #include #include #include #include class NodeTest; class AxisNodeFactory { public: virtual ~AxisNodeFactory() {} virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const = 0; }; class XQILLA_API Axis : public ResultImpl { public: Axis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); Item::Ptr next(DynamicContext *context); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context) = 0; static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getParent(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getFirstChild(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getLastChild(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getNextSibling(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getPreviousSibling(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XMLCh *getLocalName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); protected: Node::Ptr nodeObj_; const AxisNodeFactory &factory_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode_; const NodeTest *nodeTest_; bool toDo_; }; inline const XMLCh *Axis::getLocalName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node) { if(node->getLocalName() == 0) return node->getNodeName(); return node->getLocalName(); } #endif XQilla-2.3.4/src/xerces/ParentAxis.hpp0000644001725400016040000000215713273140037014513 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PARENTAXIS_HPP #define _PARENTAXIS_HPP #include "Axis.hpp" class XQILLA_API ParentAxis : public Axis { public: ParentAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); }; #endif XQilla-2.3.4/src/simple-api/0000755001725400016040000000000013273141207012546 500000000000000XQilla-2.3.4/src/simple-api/XQilla.cpp0000644001725400016040000002252413273140037014371 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include "../lexer/XSLT2Lexer.hpp" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQilla::XQilla(MemoryManager *memMgr) { XQillaPlatformUtils::initialize(memMgr); } XQilla::~XQilla() { XQillaPlatformUtils::terminate(); } Optimizer *XQilla::createOptimizer(DynamicContext *context, unsigned int flags) { Optimizer *optimizer = 0; if((flags & NO_STATIC_RESOLUTION) == 0) { // optimizer = new PrintASTOptimizer("Initial", context, optimizer); optimizer = new StaticResolver(context, optimizer); // optimizer = new PrintASTOptimizer("After static resolution", context, optimizer); optimizer = new StaticTyper(context, optimizer); // optimizer = new PrintASTOptimizer("After static typing", context, optimizer); if((flags & NO_OPTIMIZATION) == 0) { optimizer = new PartialEvaluator(context, optimizer); // optimizer = new PrintASTOptimizer("After partial evaluation", context, optimizer); optimizer = new StaticTyper(context, optimizer); // optimizer = new PrintASTOptimizer("After static typing (2)", context, optimizer); optimizer = new QueryPathTreeGenerator(context, optimizer); } if((flags & DEBUG_QUERY) != 0) { optimizer = new DebugHookDecorator(context, optimizer); } } return optimizer; } XQQuery* XQilla::parse(const XMLCh* inputQuery, DynamicContext* context, const XMLCh* queryFile, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { if(context != 0 && (context->getLanguage() & XQilla::XSLT2) != 0) { MemBufInputSource src((XMLByte*)inputQuery, XMLString::stringLen(inputQuery) * sizeof(XMLCh), queryFile); src.setEncoding(XMLUni::fgUTF16EncodingString); return parse(src, context, flags, memMgr, result); } bool contextOwned = (flags & NO_ADOPT_CONTEXT) == 0; if(context == 0) { contextOwned = true; context = createContext(XQilla::XQUERY, 0, memMgr); } AutoDelete queryGuard(0); if(result == 0) { queryGuard.set(new (memMgr) XQQuery(context, contextOwned, 0, memMgr)); result = queryGuard; } result->setQueryText(inputQuery); if(queryFile) { queryFile = context->getMemoryManager()->getPooledString(queryFile); result->setFile(queryFile); } if((flags & XQilla::NO_DEFAULT_MODULES) == 0) { BuiltInModules::core.importModuleInto(result); BuiltInModules::fn.importModuleInto(result); } XQLexer lexer(context->getMemoryManager(), queryFile, inputQuery, context->getLanguage()); XQParserArgs args(&lexer, result); XQParser::yyparse(&args); for(UserFunctions::iterator itFn = result->m_userDefFns.begin(); itFn != result->m_userDefFns.end(); ++itFn) { (*itFn)->resolveName(context); } for(GlobalVariables::iterator itVar = result->m_userDefVars.begin(); itVar != result->m_userDefVars.end(); ++itVar) { (*itVar)->resolveName(context); } AutoDelete optGuard(createOptimizer(context, flags)); if(optGuard.get()) optGuard->startOptimize(args._query); queryGuard.adopt(); return result; } XQQuery* XQilla::parse(const InputSource& querySrc, DynamicContext* context, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { if(context == 0 || (context->getLanguage() & XQilla::XSLT2) == 0) { XMLBuffer moduleText; try { if(!readQuery(querySrc, memMgr, moduleText)) { XMLBuffer buf; buf.set(X("Cannot read query content from ")); buf.append(querySrc.getSystemId()); buf.append(X(" [err:XQST0059]")); XQThrow2(ContextException,X("XQilla::parse"), buf.getRawBuffer()); } } catch(XMLException& e) { XMLBuffer buf; buf.set(X("Exception reading query content: ")); buf.append(e.getMessage()); XQThrow2(ContextException,X("XQilla::parse"), buf.getRawBuffer()); } return parse(moduleText.getRawBuffer(), context, querySrc.getSystemId(), flags, memMgr, result); } bool contextOwned = (flags & NO_ADOPT_CONTEXT) == 0; AutoDelete queryGuard(0); if(result == 0) { queryGuard.set(new (memMgr) XQQuery(context, contextOwned, 0, memMgr)); result = queryGuard; } if(querySrc.getSystemId()) result->setFile(querySrc.getSystemId()); if((flags & XQilla::NO_DEFAULT_MODULES) == 0) { BuiltInModules::core.importModuleInto(result); BuiltInModules::fn.importModuleInto(result); } #ifdef HAVE_FAXPP FAXPPXSLT2Lexer lexer(context, querySrc, context->getLanguage()); #else XercesXSLT2Lexer lexer(context, querySrc, context->getLanguage()); #endif XQParserArgs args(&lexer, result); XQParser::yyparse(&args); for(UserFunctions::iterator itFn = result->m_userDefFns.begin(); itFn != result->m_userDefFns.end(); ++itFn) { (*itFn)->resolveName(context); } for(GlobalVariables::iterator itVar = result->m_userDefVars.begin(); itVar != result->m_userDefVars.end(); ++itVar) { (*itVar)->resolveName(context); } AutoDelete optGuard(createOptimizer(context, flags)); if(optGuard.get()) optGuard->startOptimize(args._query); queryGuard.adopt(); return result; } XQQuery* XQilla::parseFromURI(const XMLCh* queryFile, DynamicContext* context, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { Janitor srcToFill(0); try { XMLURL urlTmp(queryFile); if(urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new (memMgr) URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new (memMgr) LocalFileInputSource(queryFile)); } return parse(*srcToFill.get(), context, flags, memMgr, result); } static FastXDMConfiguration _gDefaultConfiguration; DynamicContext *XQilla::createContext(Language language, XQillaConfiguration *conf, MemoryManager *memMgr) { if(conf == 0) conf = &_gDefaultConfiguration; DynamicContext *result = new (memMgr) XQContextImpl(conf, language, memMgr); conf->populateStaticContext(result); return result; } bool XQilla::readQuery(const XMLCh* queryFile, MemoryManager* memMgr, XMLBuffer& queryText) { Janitor srcToFill(NULL); try { XMLURL urlTmp(queryFile); if (urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new (memMgr) URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new (memMgr) LocalFileInputSource(queryFile)); } return readQuery(*srcToFill.get(), memMgr, queryText); } bool XQilla::readQuery(const InputSource& querySrc, MemoryManager* memMgr, XMLBuffer& queryText) { return XPath2Utils::readSource(querySrc, memMgr, queryText, /*sniffEncoding*/true); } void XQilla::compileDelayedModule(const XMLCh* queryFile, MemoryManager* memMgr) { XMLBuffer buffer; if(!readQuery(queryFile, memMgr, buffer)) { XMLBuffer buf; buf.set(X("Cannot read query content from ")); buf.append(queryFile); buf.append(X(" [err:XQST0059]")); XQThrow2(ContextException,X("XQilla::compileDelayedModule"), buf.getRawBuffer()); } Janitor srcToFill(new (memMgr) LocalFileInputSource(queryFile)); DynamicContext *context = XQilla::createContext((XQilla::Language)(XQilla::XQUERY3_FULLTEXT_UPDATE | XQilla::EXTENSIONS), 0, memMgr); AutoDelete query(new (memMgr) XQQuery(context, true, 0, memMgr)); XPath2MemoryManager *mm = context->getMemoryManager(); query->setFile(queryFile); XQLexer lexer(mm, _LANG_DELAYEDMODULE_, queryFile, 1, 1, buffer.getRawBuffer()); XQParserArgs args(&lexer, query.get()); XQParser::yyparse(&args); } XQilla-2.3.4/src/simple-api/XQQuery.cpp0000644001725400016040000005577213273140037014570 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif //////////////////////////////////////////////////////////////////////////////////////////////////// ModuleCache::ModuleCache(MemoryManager *mm) : byURI_(11, true, mm), byNamespace_(11, false, mm), ordered_(XQillaAllocator(mm)) { } void ModuleCache::put(XQQuery *module) { assert(!byURI_.get(module->getFile())); byURI_.put((void*)module->getFile(), module); XQQuery *cached = byNamespace_.get(module->getModuleTargetNamespace()); if(cached) { while(cached->getNext() != 0) { cached = cached->getNext(); } cached->setNext(module); } else { byNamespace_.put((void*)module->getModuleTargetNamespace(), module); } } XQQuery *ModuleCache::getByURI(const XMLCh *uri) const { return (XQQuery*)byURI_.get(uri); } XQQuery *ModuleCache::getByNamespace(const XMLCh *ns) const { return (XQQuery*)byNamespace_.get(ns); } //////////////////////////////////////////////////////////////////////////////////////////////////// XQQuery::XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache, MemoryManager *memMgr) : m_memMgr(memMgr), m_context(context), m_contextOwned(contextOwned), m_query(NULL), m_bIsLibraryModule(false), m_szTargetNamespace(NULL), m_szQueryText(0), m_szCurrentFile(NULL), m_userDefFns(XQillaAllocator(memMgr)), m_delayedFunctions(XQillaAllocator(memMgr)), m_userDefVars(XQillaAllocator(memMgr)), m_importedModules(XQillaAllocator(memMgr)), m_moduleCache(moduleCache ? moduleCache : new (memMgr) ModuleCache(memMgr)), m_moduleCacheOwned(moduleCache == 0), m_version3(context->getLanguage() & XQilla::VERSION3), m_staticTyped(BEFORE), m_next(0) { context->setModule(this); } XQQuery::~XQQuery() { if(m_moduleCacheOwned) delete m_moduleCache; if(m_contextOwned) delete m_context; } DynamicContext *XQQuery::createDynamicContext(MemoryManager *memMgr) const { return m_context->createDynamicContext(memMgr); } Result XQQuery::execute(const Item::Ptr &contextItem, DynamicContext *context) const { context->setContextItem(contextItem); return execute(context); } Result XQQuery::execute(const XMLCh *templateQName, DynamicContext *context) const { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(templateQName, context); context->setExternalVariable(XQillaFunction::XMLChFunctionURI, X("name"), value); return execute(context); } void XQQuery::executeProlog(DynamicContext *context) const { try { // Execute the imported modules if(m_moduleCacheOwned) { for(ImportedModules::const_iterator modIt = m_moduleCache->ordered_.begin(); modIt != m_moduleCache->ordered_.end(); ++modIt) { // Derive the module's execution context from it's static context AutoDelete moduleCtx(context->createModuleDynamicContext((*modIt)->getStaticContext(), context->getMemoryManager())); (*modIt)->executeProlog(moduleCtx); } } // define global variables for(GlobalVariables::const_iterator it3 = m_userDefVars.begin(); it3 != m_userDefVars.end(); ++it3) (*it3)->execute(context); } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(m_szCurrentFile, 1, 1); } throw e; } } void XQQuery::execute(EventHandler *events, DynamicContext* context) const { executeProlog(context); if(m_query != NULL) { try { // execute the query body m_query->generateAndTailCall(events, context, true, true); events->endEvent(); } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(m_szCurrentFile, 1, 1); } throw e; } } } void XQQuery::execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const { context->setContextItem(contextItem); execute(events, context); } void XQQuery::execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(templateQName, context); context->setExternalVariable(XQillaFunction::XMLChFunctionURI, X("name"), value); execute(events, context); } XQQuery *XQQuery::findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs) { UserFunctions::iterator itFn = m_userDefFns.begin(); for(; itFn != m_userDefFns.end(); ++itFn) { if(*itFn && XPath2Utils::equals(name, (*itFn)->getName()) && XPath2Utils::equals(uri, (*itFn)->getURI()) && (*itFn)->getMinArgs() == (size_t)numArgs) { return this; } } ImportedModules::const_iterator modIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals(uri, (*modIt)->getModuleTargetNamespace())) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { itFn = module->m_userDefFns.begin(); for(; itFn != module->m_userDefFns.end(); ++itFn) { if(*itFn && XPath2Utils::equals(name, (*itFn)->getName()) && (*itFn)->getMinArgs() == (size_t)numArgs) { return module; } } } } } return 0; } XQQuery *XQQuery::findModuleForVariable(const XMLCh *uri, const XMLCh *name) { GlobalVariables::iterator itVar = m_userDefVars.begin(); for(; itVar != m_userDefVars.end(); ++itVar) { if(*itVar && XPath2Utils::equals(name, (*itVar)->getVariableLocalName()) && XPath2Utils::equals(uri, (*itVar)->getVariableURI())) { return this; } } ImportedModules::const_iterator modIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals(uri, (*modIt)->getModuleTargetNamespace())) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { itVar = module->m_userDefVars.begin(); for(; itVar != module->m_userDefVars.end(); ++itVar) { if(*itVar && XPath2Utils::equals(name, (*itVar)->getVariableLocalName())) { return module; } } } } } return 0; } static void duplicateVariableError(const XQGlobalVariable *existing, const XQGlobalVariable *bad, MessageListener *mlistener) { if(mlistener) { mlistener->warning(X("In the context of this variable declaration"), existing); } XMLBuffer buf; buf.set(X("A variable with name {")); buf.append(bad->getVariableURI()); buf.append(X("}")); buf.append(bad->getVariableLocalName()); buf.append(X(" conflicts with an existing global variable [err:XQST0049].")); XQThrow3(StaticErrorException, X("XQQuery::staticResolution"), buf.getRawBuffer(), bad); } void XQQuery::staticResolution() { MessageListener *mlistener = m_context->getMessageListener(); // Statically resolve all the modules if(m_moduleCacheOwned) { RefHashTableOfEnumerator en(&m_moduleCache->byURI_); while(en.hasMoreElements()) { XQQuery *module = &en.nextElement(); if(module != this) module->staticResolution(); } } // Deal with the module imports ImportedModules::const_iterator modIt; GlobalVariables::iterator itVar; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { XQQuery *module = *modIt; // Add variables from this module in the module namespace to the map RefHashTableOf nsVars(11, false); for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { if(XPath2Utils::equals((*itVar)->getVariableURI(), module->getModuleTargetNamespace())) { XQGlobalVariable *existing = nsVars.get((*itVar)->getVariableLocalName()); if(existing) duplicateVariableError(existing, *itVar, mlistener); nsVars.put((void*)(*itVar)->getVariableLocalName(), *itVar); } } // Import the functions from the modules with this target namespace for(; module; module = module->getNext()) { if(module == this) continue; const DynamicContext *moduleCtx = module->getStaticContext(); // Move the function definitions into my context for(UserFunctions::iterator itFn = module->m_userDefFns.begin(); itFn != module->m_userDefFns.end(); ++itFn) { (*itFn)->setModuleDocumentCache(const_cast(moduleCtx->getDocumentCache())); if((*itFn)->isTemplate()) { m_context->addTemplate(*itFn); } else if((*itFn)->getName() && (*itFn)->getSignature()->privateOption != FunctionSignature::OP_TRUE) { m_context->addCustomFunction(*itFn); } } // Move the delayed function definitions into my context for(DelayedFunctions::iterator itd = module->m_delayedFunctions.begin(); itd != module->m_delayedFunctions.end(); ++itd) { if(!(*itd)->isParsed()) { m_context->addCustomFunction(*itd); } } // Check that global variable names don't clash for(itVar = module->m_userDefVars.begin(); itVar != module->m_userDefVars.end(); ++itVar) { XQGlobalVariable *existing = nsVars.get((*itVar)->getVariableLocalName()); if(existing) duplicateVariableError(existing, *itVar, mlistener); nsVars.put((void*)(*itVar)->getVariableLocalName(), *itVar); } } } // Run staticResolutionStage1 on the user defined functions, // which gives them the static type they were defined with UserFunctions::iterator i; for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { (*i)->staticResolutionStage1(m_context); if(getIsLibraryModule() && !(*i)->isTemplate() && !XERCES_CPP_NAMESPACE::XMLString::equals((*i)->getURI(), getModuleTargetNamespace())) XQThrow3(StaticErrorException,X("XQQuery::staticResolution"), X("Every function in a module must be in the module namespace [err:XQST0048]."), *i); if((*i)->isTemplate()) { m_context->addTemplate(*i); } else if((*i)->getName() && !(*i)->isDelayed()) { m_context->addCustomFunction(*i); } } // Run staticResolution on the global variables for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { (*itVar)->staticResolution(m_context); if(getIsLibraryModule() && !XPath2Utils::equals((*itVar)->getVariableURI(), getModuleTargetNamespace())) XQThrow3(StaticErrorException,X("XQQuery::staticResolution"), X("Every global variable in a module must be in the module namespace [err:XQST0048]."), *itVar); } // check for duplicate variable declarations for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { for(GlobalVariables::iterator it2 = itVar+1; it2 != m_userDefVars.end(); ++it2) { if(XPath2Utils::equals((*itVar)->getVariableURI(), (*it2)->getVariableURI()) && XPath2Utils::equals((*itVar)->getVariableLocalName(), (*it2)->getVariableLocalName())) { duplicateVariableError(*itVar, *it2, mlistener); } } } // Run staticResolutionStage2 on the user defined functions, // which statically resolves their function bodies for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { (*i)->staticResolutionStage2(m_context); } // Run static resolution on the query body if(m_query) m_query = m_query->staticResolution(m_context); } bool XQQuery::staticTypingOnce(StaticTyper *styper) { switch(m_staticTyped) { case AFTER: return false; case DURING: { XMLBuffer buf; buf.set(X("The graph of module imports contains a cycle for namespace '")); buf.append(getModuleTargetNamespace()); buf.append(X("' [err:XQST0093]")); XQThrow2(StaticErrorException, X("XQQuery::staticResolution"), buf.getRawBuffer()); } case BEFORE: break; } m_staticTyped = DURING; staticTyping(styper); m_staticTyped = AFTER; m_moduleCache->ordered_.push_back(this); return true; } void XQQuery::staticTyping(StaticTyper *styper) { StaticTyper defaultTyper; if(styper == 0) styper = &defaultTyper; // Static type the imported modules (again) ImportedModules::const_iterator modIt; if(m_moduleCacheOwned) { for(modIt = m_moduleCache->ordered_.begin(); modIt != m_moduleCache->ordered_.end(); ++modIt) { (*modIt)->staticTyping(styper); } } // Define types for the imported variables VariableTypeStore* varStore = m_context->getVariableTypeStore(); GlobalVariables::const_iterator varIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { for(varIt = module->m_userDefVars.begin(); varIt != module->m_userDefVars.end(); ++varIt) { varStore->declareGlobalVar((*varIt)->getVariableURI(), (*varIt)->getVariableLocalName(), (*varIt)->getStaticAnalysis(), *varIt); } } } // Set up a default type for the global variables for(varIt = m_userDefVars.begin(); varIt != m_userDefVars.end(); ++varIt) { (*varIt)->resetStaticTypingOnce(); varStore->declareGlobalVar((*varIt)->getVariableURI(), (*varIt)->getVariableLocalName(), (*varIt)->getStaticAnalysis(), *varIt); } UserFunctions::const_iterator i, j; { GlobalVariables globalsOrder(XQillaAllocator(m_context->getMemoryManager())); AutoReset autoReset(styper->getGlobalsOrder()); styper->getGlobalsOrder() = &globalsOrder; // Run staticTyping on the global variables for(varIt = m_userDefVars.begin(); varIt != m_userDefVars.end(); ++varIt) { for(j = m_userDefFns.begin(); j != m_userDefFns.end(); ++j) { (*j)->resetStaticTypingOnce(); } (*varIt)->staticTypingOnce(m_context, styper); } // XQuery 1.1 reorders the global variables to enable forward references if(m_version3) m_userDefVars = globalsOrder; } // Run staticTyping on the user defined functions, // which calculates a better type for them for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { for(j = m_userDefFns.begin(); j != m_userDefFns.end(); ++j) { (*j)->resetStaticTypingOnce(); } (*i)->staticTypingOnce(m_context, styper); } // Run staticTyping on the query body if(m_query) m_query = m_query->staticTyping(m_context, styper); } std::string XQQuery::getQueryPlan() const { AutoDelete a2x(m_context->getConfiguration()->createASTToXML()); return a2x->print(this, m_context); } ASTNode* XQQuery::getQueryBody() const { return m_query; } void XQQuery::setQueryBody(ASTNode* query) { m_query=query; } void XQQuery::addFunction(XQUserFunction* fnDef) { m_userDefFns.push_back(fnDef); } void XQQuery::addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate, int line, int column) { DelayedFuncFactory *f = new (m_context->getMemoryManager()) DelayedFuncFactory(uri, name, numArgs, functionDeclaration, line, column, this); if(!isPrivate) m_delayedFunctions.push_back(f); m_context->addCustomFunction(f); } void XQQuery::addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate, int line, int column) { DelayedFuncFactory *f = new (m_context->getMemoryManager()) DelayedFuncFactory(uri, name, numArgs, functionDeclaration, line, column, this); if(!isPrivate) m_delayedFunctions.push_back(f); m_context->addCustomFunction(f); } void XQQuery::addVariable(XQGlobalVariable* varDef) { m_userDefVars.push_back(varDef); } void XQQuery::setIsLibraryModule(bool bIsModule/*=true*/) { m_bIsLibraryModule=bIsModule; } bool XQQuery::getIsLibraryModule() const { return m_bIsLibraryModule; } void XQQuery::setModuleTargetNamespace(const XMLCh* uri) { m_szTargetNamespace=uri; } const XMLCh* XQQuery::getModuleTargetNamespace() const { return m_szTargetNamespace; } void XQQuery::importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location) { for(ImportedModules::iterator modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals((*modIt)->getModuleTargetNamespace(),szUri)) { XMLBuffer buf; buf.set(X("Module for namespace '")); buf.append(szUri); buf.append(X("' has already been imported [err:XQST0047]")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } } // Search in the module cache XQQuery *module = 0; if(!XPath2Utils::equals(szUri, m_szTargetNamespace)) { module = m_moduleCache->getByNamespace(szUri); if(module != 0) { importModule(module); return; } } if(locations == NULL) locations = m_context->resolveModuleURI(szUri); if(locations == NULL || locations->empty()) { XMLBuffer buf; buf.set(X("Cannot locate module for namespace ")); buf.append(szUri); buf.append(X(" without the 'at ' keyword [err:XQST0059]")); XQThrow3(StaticErrorException,X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } for(VectorOfStrings::iterator it=locations->begin();it!=locations->end();++it) { module = parseModule(szUri, *it, location); if(!module->getIsLibraryModule()) { XMLBuffer buf; buf.set(X("The module at ")); buf.append(module->getFile()); buf.append(X(" is not a module")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } if(!XERCES_CPP_NAMESPACE::XMLString::equals(szUri, module->getModuleTargetNamespace())) { XMLBuffer buf; buf.set(X("The module at ")); buf.append(module->getFile()); buf.append(X(" specifies a different namespace [err:XQST0059]")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } } // Search in the module cache again, to get the head of the linked list of modules module = m_moduleCache->getByNamespace(szUri); if(!module) { XMLBuffer buf; buf.set(X("Cannot locate the module for namespace \"")); buf.append(szUri); buf.append(X("\" [err:XQST0059]")); XQThrow3(StaticErrorException,X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } importModule(module); } XQQuery *XQQuery::parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const { InputSource* srcToUse = 0; if(m_context->getDocumentCache()->getXMLEntityResolver()){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, at, ns, XMLUni::fgZeroLenString, m_context->getBaseURI()); srcToUse = m_context->getDocumentCache()->getXMLEntityResolver()->resolveEntity(&resourceIdentifier); } if(srcToUse==0) { try { XMLURL urlTmp(m_context->getBaseURI(), at); if (urlTmp.isRelative()) { throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); } srcToUse = new URLInputSource(urlTmp); } catch(const MalformedURLException&) { // It's not a URL, so let's assume it's a local file name. const XMLCh* baseUri=m_context->getBaseURI(); if(baseUri && baseUri[0]) { XMLCh* tmpBuf = XMLPlatformUtils::weavePaths(baseUri, at); srcToUse = new LocalFileInputSource(tmpBuf); XMLPlatformUtils::fgMemoryManager->deallocate(tmpBuf); } else { srcToUse = new LocalFileInputSource(at); } } } Janitor janIS(srcToUse); XQQuery *module = m_moduleCache->getByURI(srcToUse->getSystemId()); if(module) return module; AutoDelete ctxGuard(m_context->createModuleContext()); DynamicContext *moduleCtx = ctxGuard.get(); moduleCtx->setBaseURI(srcToUse->getSystemId()); moduleCtx->setXMLEntityResolver(m_context->getXMLEntityResolver()); AutoDelete moduleGuard(new (XMLPlatformUtils::fgMemoryManager) XQQuery(ctxGuard.adopt(), true, m_moduleCache, XMLPlatformUtils::fgMemoryManager)); module = moduleGuard; module->setFile(srcToUse->getSystemId()); module->setModuleTargetNamespace(ns); // Put the unparsed module in the cache, to resolve loops correctly m_moduleCache->put(moduleGuard.adopt()); XQilla::parse(*srcToUse, moduleCtx, XQilla::NO_STATIC_RESOLUTION, XMLPlatformUtils::fgMemoryManager, module); return module; } void XQQuery::importModule(XQQuery *module) { m_importedModules.push_back(module); } void XQQuery::setFile(const XMLCh* file) { m_szCurrentFile = m_context->getMemoryManager()->getPooledString(file); } void XQQuery::setQueryText(const XMLCh *v) { m_szQueryText = m_context->getMemoryManager()->getPooledString(v); } Result XQQuery::execute(DynamicContext* context) const { executeProlog(context); if(getQueryBody() != NULL) return getQueryBody()->createResult(context); return 0; } XQilla-2.3.4/src/debug/0000755001725400016040000000000013273141207011574 500000000000000XQilla-2.3.4/src/debug/StackFrame.cpp0000644001725400016040000000446513273140037014251 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include using namespace std; StackFrame::StackFrame(const LocationInfo *location, DynamicContext *context) : location_(location), context_(context), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), variables_(context->getVariableStore()), nsResolver_(context->getNSResolver()), defaultElementNS_(context->getDefaultElementAndTypeNS()), prev_(context->getStackFrame()) { } Sequence StackFrame::query(const XMLCh *queryString) const { AutoDelete builder(context_->createSequenceBuilder()); query(queryString, builder.get()); return builder->getSequence(); } void StackFrame::query(const XMLCh *queryString, EventHandler *events) const { AutoDelete context(context_->createDebugQueryContext(contextItem_, contextPosition_, contextSize_, variables_, nsResolver_, defaultElementNS_)); AutoDelete query(XQilla::parse(queryString, context.get(), 0, XQilla::NO_ADOPT_CONTEXT | XQilla::NO_DEFAULT_MODULES)); query->execute(events, context); } XQilla-2.3.4/src/debug/InputParser.cpp0000644001725400016040000001074713273140037014505 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include using namespace std; void InputParser::reset() { start_ = 0; pos_ = 0; quoteChar_ = 0; curlyBraceDepth_ = 0; seenNonWS_ = false; stripQuotes_ = false; } int InputParser::parse(istream &input, Args &args) { reset(); args.clear(); int lines = 0; getline(input, line_); ++lines; for(; (size_t)pos_ < line_.length(); ++pos_) { char c = line_[pos_]; switch(c) { case '\\': { if(pos_ == line_.length() - 1) { // Escaped newline, get next line of input nextLine(input, args); ++lines; } else { escapedCharacter(); } break; } case ' ': case '\t': case '\n': case '\r': { whitespace(args); break; } case '\'': case '"': { quote(args, c); break; } case '{': { openCurly(); break; } case '}': { closeCurly(); break; } case '#': { if (!inQuotes()) pos_ = line_.length(); break; // force end of parse for this line } default: { character(); break; } } if(inQuotes() && pos_ == line_.length() - 1) { // We have an unfinished quote, so get the next line nextLine(input, args); ++lines; } } endOfArg(args); line_ = ""; return lines; } bool InputParser::inQuotes() { return quoteChar_ || curlyBraceDepth_ != 0; } void InputParser::nextLine(istream &input, Args &args) { string nextbit; getline(input, nextbit); line_ += "\n" + nextbit; // Counts as whitespace whitespace(args); } void InputParser::whitespace(Args &args) { if(inQuotes()) { // Counts as character character(); } else { endOfArg(args); } } void InputParser::endOfArg(Args &args) { if(seenNonWS_) { // Whitespace as a separator if(stripQuotes_) { addArgument(args, start_ + 1, pos_ - 1); stripQuotes_ = false; } else { addArgument(args, start_, pos_); } seenNonWS_ = false; } } void InputParser::character() { // Significant character if(!seenNonWS_) { start_ = pos_; } if(!inQuotes()) { stripQuotes_ = false; } seenNonWS_ = true; } void InputParser::escapedCharacter() { character(); ++pos_; } void InputParser::quote(Args &args, char c) { if(!inQuotes()) { // Start of quoted passage quoteChar_ = c; stripQuotes_ = !seenNonWS_; character(); } else if(quoteChar_ == c) { // End of quoted passage character(); quoteChar_ = 0; } else { // Counts as significant character character(); } } void InputParser::openCurly() { if(quoteChar_) { // counts as character character(); } else { if(curlyBraceDepth_ == 0) { stripQuotes_ = !seenNonWS_; } ++curlyBraceDepth_; character(); } } void InputParser::closeCurly() { if(curlyBraceDepth_ != 0) { character(); --curlyBraceDepth_; } else { // Counts as character character(); } } void InputParser::addArgument(Args &args, string::size_type start, string::size_type end) { // Un-escape the argument ostringstream oss; for(string::size_type i = start; i < end; ++i) { char c = line_[i]; if(c == '\\') { ++i; if(i < pos_) { c = line_[i]; switch(c) { case 'n': { // escaped newline oss.put('\n'); break; } case 'r': { // escaped carriage return oss.put('\r'); break; } case 't': { // escaped tab oss.put('\t'); break; } default: { oss.put(c); break; } } } else { oss.put(c); } } else { oss.put(c); } } args.push_back(oss.str()); } XQilla-2.3.4/src/debug/ASTDebugHook.cpp0000644001725400016040000001572713273140037014453 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include ASTDebugHook::ASTDebugHook(ASTNode *astNode, XPath2MemoryManager *mm) : ASTNodeImpl(DEBUG_HOOK, mm), expr_(astNode) { _src.copy(expr_->getStaticAnalysis()); setLocationInfo(expr_); } bool ASTDebugHook::isConstant() const { return expr_->isConstant(); } bool ASTDebugHook::isDateOrTimeAndHasNoTimezone(StaticContext* context) const { return expr_->isDateOrTimeAndHasNoTimezone(context); } ASTNode *ASTDebugHook::staticResolution(StaticContext* context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *ASTDebugHook::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); return this; } class ASTStackFrame : public StackFrame { public: ASTStackFrame(const ASTNode *ast, DynamicContext *context) : StackFrame(ast, context) {} void setPreviousFrame(DynamicContext *context) { prev_ = context->getStackFrame(); } const ASTNode *getASTNode() const { return (ASTNode*)location_; } const TupleNode *getTupleNode() const { return 0; } virtual std::string getQueryPlan() const { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); return a2x->print(getASTNode(), context_); } }; class ASTDebugHookResult : public ResultImpl { public: ASTDebugHookResult(const ASTNode *expr, DynamicContext *context) : ResultImpl(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->createResult(context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); if(dl) dl->end(&frame_, context); throw; } } ASTDebugHookResult(const Result &contextItems, const ASTNode *expr, DynamicContext *context) : ResultImpl(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->iterateResult(contextItems, context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } } ~ASTDebugHookResult() { parent_ = 0; DebugListener *dl = context_->getDebugListener(); AutoStackFrameReset reset(context_, &frame_); if(dl) dl->end(&frame_, context_); } Item::Ptr next(DynamicContext *context) { DebugListener *dl = context->getDebugListener(); frame_.setPreviousFrame(context); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { Item::Ptr item = parent_->next(context); if(dl) dl->exit(&frame_, context); return item; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return 0; } Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { DebugListener *dl = context->getDebugListener(); frame_.setPreviousFrame(context); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { ResultImpl *oldparent = parent_.get(); Item::Ptr item = parent_->nextOrTail(parent_, context); if(dl) dl->exit(&frame_, context); if(parent_.get() != oldparent) tail = parent_; return item; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return 0; } protected: DynamicContext *context_; ASTStackFrame frame_; Result parent_; }; Result ASTDebugHook::createResult(DynamicContext *context, int flags) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->createResult(context); if(dl->doLazyEvaluation()) return new ASTDebugHookResult(expr_, context); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); Sequence result(context->getMemoryManager()); try { result = expr_->createResult(context)->toSequence(context); dl->exit(&frame, context); dl->end(&frame, context); } catch(XQException &ex) { dl->error(ex, &frame, context); } return result; } Result ASTDebugHook::iterateResult(const Result &contextItems, DynamicContext *context) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->iterateResult(contextItems, context); if(dl->doLazyEvaluation() && dl->doFocusOptimizations()) return new ASTDebugHookResult(contextItems, expr_, context); return ASTNodeImpl::iterateResult(contextItems, context); } EventGenerator::Ptr ASTDebugHook::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->generateEvents(events, context, preserveNS, preserveType); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); try { EventGenerator::Ptr result = expr_->generateEvents(events, context, preserveNS, preserveType); dl->exit(&frame, context); dl->end(&frame, context); return result; } catch(XQException &ex) { dl->error(ex, &frame, context); } return 0; } PendingUpdateList ASTDebugHook::createUpdateList(DynamicContext *context) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->createUpdateList(context); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); PendingUpdateList pul; try { pul = expr_->createUpdateList(context); dl->exit(&frame, context); dl->end(&frame, context); } catch(XQException &ex) { dl->error(ex, &frame, context); } return pul; } XQilla-2.3.4/src/debug/InteractiveDebugger.cpp0000644001725400016040000007703713273140037016160 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include // XQilla includes #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; //////////////////////////////////////////////////////////////////////////////////////////////////// string BaseInteractiveDebugger::regexFind(const char *regex, const string &str, int groupNo) { try { XStr str16(str.c_str()); RegularExpression re(regex, "mH"); #ifdef HAVE_ALLMATCHES RefVectorOf matches(10, true); re.allMatches(str16.str(), 0, XMLString::stringLen(str16.str()), &matches); if(matches.size() >= 1) { XERCES_CPP_NAMESPACE_QUALIFIER Match *match = matches.elementAt(0); if(match->getNoGroups() >= groupNo && match->getStartPos(groupNo) != -1) return str.substr(match->getStartPos(groupNo), match->getEndPos(groupNo) - match->getStartPos(groupNo)); } #else XERCES_CPP_NAMESPACE_QUALIFIER Match match; if(re.matches(str16.str(), 0, XMLString::stringLen(str16.str()), &match)) { if(match.getNoGroups() >= groupNo && match.getStartPos(groupNo) != -1) return str.substr(match.getStartPos(groupNo), match.getEndPos(groupNo) - match.getStartPos(groupNo)); } #endif } catch(XMLException &ex) { cerr << "Regex exception: " << UTF8(ex.getMessage()) << endl; } return ""; } //////////////////////////////////////////////////////////////////////////////////////////////////// // TBD: // trace fulltext queries // examine results class HelpCommand : public DebugCommand { public: HelpCommand(std::vector &commands) : DebugCommand("help", "?", "Print help information. Use 'help commandName' for extended help", "Usage: help [commmand]\nIf no command is specified, help prints a summary of the\n" "commands available."), commands_(commands) { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 2) { cerr << "Wrong number of arguments" << endl; return; } vector::iterator end = commands_.end(); if (args.size() == 1) { size_t maxLength = 4; for(vector::iterator i = commands_.begin(); i != end; ++i) { size_t commandLength = string((*i)->getCommandName()).length(); if (commandLength > maxLength) maxLength = commandLength; } cout << endl << "Command Summary" << endl; cout << "---------------" << endl << endl; for(vector::iterator j = commands_.begin(); j != end; ++j) { string command = (*j)->getCommandName(); cout << command << string(maxLength - command.length(), ' ') << " - " << (*j)->getBriefHelp() << endl; } } else { bool foundOne = false; vector::iterator i = commands_.begin(); for(; i != end; ++i) { if((*i)->matches(args[1])) { string command = (*i)->getCommandName(); cout << endl << command << " -- " << (*i)->getBriefHelp() << endl << endl; cout << (*i)->getMoreHelp() << endl; foundOne = true; // continue, looking for more matches } } if(i == end && !foundOne) { cerr << "Unknown command: " << args[1] << endl; return; } } } private: std::vector &commands_; }; class BacktraceCommand : public DebugCommand { public: BacktraceCommand() : DebugCommand("backtrace", "bt", "Prints a stack trace of the currently evaluating query", "Usage: backtrace\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; } else { debugger.stackTrace(); } } }; class ContinueCommand : public DebugCommand { public: ContinueCommand() : DebugCommand("continue", "", "Continues execution of the query", "Usage: continue\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; } else { throw BaseInteractiveDebugger::Continue(); } } }; class NextCommand : public DebugCommand { public: NextCommand() : DebugCommand("next", "", "Skips query execution to the end of the current sub-expression", "Usage: next\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; return; } debugger.setNext(); throw BaseInteractiveDebugger::Continue(); } }; class StepCommand : public DebugCommand { public: StepCommand() : DebugCommand("step", "", "Skips query execution forward one sub-expression", "Usage: step\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.setStep(); if(debugger.queryStarted()) { throw BaseInteractiveDebugger::Continue(); } debugger.run(); } }; class RunCommand : public DebugCommand { public: RunCommand() : DebugCommand("run", "", "Runs the query. If the query is already running it will be re-started", "Usage: run\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(debugger.queryStarted()) throw BaseInteractiveDebugger::Run(); debugger.run(); } }; class QuitCommand : public DebugCommand { public: QuitCommand() : DebugCommand("quit", "exit", "Exits the debugger", "Usage: quit\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } throw BaseInteractiveDebugger::Quit(); } }; class FrameCommand : public DebugCommand { public: FrameCommand() : DebugCommand("frame", "", "Changes the current frame", "Usage: frame \n" "Frames are number from 0 - the currently executing frame.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.changeFrame(atoi(args[1].c_str()))) { cerr << "Invalid frame number: " << args[1] << endl; } else { debugger.outputCurrentFrame(); } } }; class QueryPlanCommand : public DebugCommand { public: QueryPlanCommand() : DebugCommand("queryplan", "qplan", "Prints the query plan for the expression at the current frame", "Usage: queryplan") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.outputCurrentFrameQueryPlan(); } }; class ListCommand : public DebugCommand { public: ListCommand() : DebugCommand("list", "", "Prints the query at the current frame", "Usage: list [line of context]\n" "The optional parameter can be used to specify the number of lines of extra lines of\n" "the queryto be output. This defaults to 6.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 2) { cerr << "Wrong number of arguments" << endl; return; } unsigned int context = 6; if(args.size() == 2) context = atoi(args[1].c_str()); if(!debugger.outputCurrentFrame(context)) { cerr << "There is no current frame" << endl; } } }; class QueryCommand : public DebugCommand { public: QueryCommand() : DebugCommand("query", "print", "Executes a query in the context of the current frame", "Usage: query \n" "This command can be used to examine the in scope variables and context item\n" "for a paticular stack frame.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryCurrentFrame(args[1].c_str())) { cerr << "There is no current frame" << endl; } } }; class BreakCommand : public DebugCommand { public: BreakCommand() : DebugCommand("break", "tbreak", "Sets a break point", "Usage: break [file:line:column]\n" "Usage: tbreak [file:line:column]\n" "If the 'tbreak' variant of the command is given a temporary break point is set, which\n" "becomes disabled when it is reached.\n" "If no arguments are given a break point is set at the current stack frame's position.\n" "If an argument is given it is parsed for colon separated file, line and column\n" "information. If the filename is absent, the name of the current frame's file is used.\n" "The column information can also be left absent to break at any sub-expression on the\n" "specified line.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { bool temporary = args[0][0] == 't'; string file; int line = 0, column = 0; string currentFile; unsigned int currentLine, currentColumn; bool frame = debugger.currentFrameLocation(currentFile, currentLine, currentColumn); if(args.size() == 1) { if(!debugger.queryStarted() || !frame) { cerr << "No query execution in progress." << endl; return; } else { file = currentFile; line = currentLine; column = currentColumn; } } else if(args.size() == 2) { static const char *BREAK_REGEX_1 = "([^:0-9][^:]*)(:([0-9]+)(:([0-9]+))?)?"; static const char *BREAK_REGEX_2 = "([0-9]+)(:([0-9]+))?"; file = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 1); string lstr, cstr; if(file != "") { lstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 3); cstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 5); } else { lstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_2, args[1], 1); cstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_2, args[1], 3); if(lstr != "" && file == "") { if(!debugger.queryStarted() || !frame) { cerr << "No query execution in progress." << endl; return; } file = currentFile; } } if(lstr != "") line = atoi(lstr.c_str()); if(cstr != "") column = atoi(cstr.c_str()); } else { cerr << "Wrong number of arguments" << endl; return; } if(line == 0 && args.size() == 2) { cerr << "Breakpoint not recognized: " << args[1] << endl; } else { unsigned int bpnum = debugger.setBreakPoint(file, line, column, temporary); cout << "Breakpoint #" << bpnum << " set at " << file << ":" << line << ":" << column << endl; } } }; class BreakpointsCommand : public DebugCommand { public: BreakpointsCommand() : DebugCommand("breakpoints", "bps", "Lists the break points set", "Usage: breakpoints") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.listBreakPoints(); } }; class DisableCommand : public DebugCommand { public: DisableCommand() : DebugCommand("disable", "", "Disables the break point indentified by the numeric argument", "Usage: disable ") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.disableBreakPoint(atoi(args[1].c_str()))) { cerr << "Invalid break point number: " << args[1] << endl; } } }; class EnableCommand : public DebugCommand { public: EnableCommand() : DebugCommand("enable", "", "Enables the break point indentified by the numeric argument", "Usage: enable ") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.enableBreakPoint(atoi(args[1].c_str()))) { cerr << "Invalid break point number: " << args[1] << endl; } } }; class ProjectionCommand : public DebugCommand { public: ProjectionCommand() : DebugCommand("projection", "", "Enables or disable document projection optimisations", "Usage: projection \nDocument projection is off by default whilst debugging.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoProjection(true); cout << "Document projection on" << endl; } else { debugger.setDoProjection(false); cout << "Document projection off" << endl; } } }; class LazyCommand : public DebugCommand { public: LazyCommand() : DebugCommand("lazy", "", "Enables or disable lazy evaluation optimisations", "Usage: lazy \nLazy evaluation is off by default whilst debugging.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoLazyEvaluation(true); cout << "Lazy evaluation on" << endl; } else { debugger.setDoLazyEvaluation(false); cout << "Lazy evaluation off" << endl; } } }; class FocusOptimizationsCommand : public DebugCommand { public: FocusOptimizationsCommand() : DebugCommand("optimizeFocus", "", "Enables or disable focus optimisations", "Usage: optimizeFocus \n" "Focus optimizations are off by default whilst debugging. Enabling them can result\n" "in the context item not being set to what the user expects it to be.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoFocusOptimizationsn(true); cout << "Focus optimizations on" << endl; } else { debugger.setDoFocusOptimizationsn(false); cout << "Focus optimizations off" << endl; } } }; //////////////////////////////////////////////////////////////////////////////////////////////////// BaseInteractiveDebugger::BaseInteractiveDebugger() : prevcmd_(0), queryStarted_(false), step_(false), next_(0) { commands_.push_back(new BacktraceCommand()); commands_.push_back(new BreakCommand()); commands_.push_back(new BreakpointsCommand()); commands_.push_back(new ContinueCommand()); commands_.push_back(new DisableCommand()); commands_.push_back(new EnableCommand()); commands_.push_back(new FocusOptimizationsCommand()); commands_.push_back(new FrameCommand()); commands_.push_back(new HelpCommand(commands_)); commands_.push_back(new LazyCommand()); commands_.push_back(new ListCommand()); commands_.push_back(new NextCommand()); commands_.push_back(new ProjectionCommand()); commands_.push_back(new QueryCommand()); commands_.push_back(new QueryPlanCommand()); commands_.push_back(new QuitCommand()); commands_.push_back(new RunCommand()); commands_.push_back(new StepCommand()); } BaseInteractiveDebugger::~BaseInteractiveDebugger() { for(vector::iterator i = commands_.begin(); i != commands_.end(); ++i) { delete *i; } } void BaseInteractiveDebugger::readCommand() { InputParser iParser; InputParser::Args args; do { cout << endl << "debug> " << flush; iParser.parse(cin, args); DebugCommand *cmd = prevcmd_; if(!args.empty()) cmd = findCommand(args[0]); if(cmd) { prevcmd_ = cmd; try { cmd->execute(args, *this); } catch(Continue) { return; } } else if(!args.empty()) { cerr << "Unknown command: " << args[0] << endl; } } while(!cin.eof()); } unsigned int BaseInteractiveDebugger::setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary) { breaks_.push_back(BreakPoint(file, line, column, temporary)); return (unsigned int) breaks_.size(); } void BaseInteractiveDebugger::listBreakPoints() const { if(breaks_.empty()) { cerr << "No breakpoints set" << endl; return; } unsigned int bpnum = 1; vector::const_iterator i = breaks_.begin(); for(; i != breaks_.end(); ++i, ++bpnum) { if(i->disabled) { cout << "[disabled] "; } if(i->temporary) { cout << "[temporary] "; } cout << "Breakpoint #" << bpnum << " set at " << i->file << ":" << i->line << ":" << i->column; cout << endl; outputLocation(X(i->file.c_str()), i->line, i->column); } } bool BaseInteractiveDebugger::disableBreakPoint(unsigned int number) { if(number > breaks_.size()) return false; breaks_[number - 1].disabled = true; return true; } bool BaseInteractiveDebugger::enableBreakPoint(unsigned int number) { if(number > breaks_.size()) return false; breaks_[number - 1].disabled = false; return true; } void BaseInteractiveDebugger::setNext() { next_ = getStackSize(); } void BaseInteractiveDebugger::setStep() { step_ = true; } DebugCommand *BaseInteractiveDebugger::findCommand(std::string &command) const { vector::const_iterator end = commands_.end(); vector::const_iterator i = commands_.begin(); for(; i != end; ++i) { if((*i)->matches(command)) { command = (*i)->getCommandName(); return (*i); } } return 0; } void BaseInteractiveDebugger::checkBreak(bool entering) { if(step_) { step_ = false; } else if(!entering && next_ == getStackSize()) { next_ = 0; step_ = true; return; } else { // Work out the filename and file basename string currentFile; unsigned int currentLine, currentColumn; currentFrameLocation(currentFile, currentLine, currentColumn); string file(currentFile); string basename = regexFind(".*/(.*)", file); // Search to see if we've hit a breakpoint int position = 1; vector::iterator i = breaks_.begin(); for(; i != breaks_.end(); ++i, ++position) { if(i->disabled) continue; if(i->file != "" && i->file != file && (basename == "" || i->file != basename)) continue; if(i->line != 0 && i->line != currentLine) continue; if(i->column != 0 && i->column != currentColumn) continue; break; } if(i == breaks_.end()) return; // We've hit a breakpoint if(i->temporary) { i->disabled = true; } cerr << "Breakpoint #" << position << ", "; } cerr << (entering ? "Entering " : "Exiting "); outputCurrentFrame(); readCommand(); if(!entering && next_ == getStackSize()) { next_ = 0; step_ = true; } } void BaseInteractiveDebugger::breakForError(const char *message) { cerr << "Error: " << message << endl; outputCurrentFrame(); while(true) { // Clear any pending next or step operation next_ = 0; step_ = false; readCommand(); cerr << "An error has occurred - query execution cannot resume" << endl; } } void BaseInteractiveDebugger::interrupted() { cerr << "Interrupted!" << endl; outputCurrentFrame(); // Clear any pending next or step operation next_ = 0; step_ = false; readCommand(); } void InteractiveDebugger::outputLocation(const LocationInfo *info, unsigned int context) { BaseInteractiveDebugger::outputLocation(info->getFile(), info->getLine(), info->getColumn(), context); } void BaseInteractiveDebugger::outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context) { if(file == 0 || line == 0) return; Janitor srcToFill(0); try { XMLURL urlTmp(file); if (urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new LocalFileInputSource(file)); } XMLBuffer queryText; if(!XPath2Utils::readSource(*srcToFill.get(), XMLPlatformUtils::fgMemoryManager, queryText, /*sniffEncoding*/true)) return; outputLocationFromString(queryText.getRawBuffer(), line, column, context); } void BaseInteractiveDebugger::outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context) { if(line == 0) return; unsigned int startLine = line - (context / 2); if(line <= (context / 2)) startLine = 1; unsigned int endLine = startLine + context + 1; unsigned int curLine = 1; while(curLine < startLine) { if(*query == 0) return; if(*query == '\n') { ++curLine; } else if(*query == '\r') { ++curLine; if(*(query + 1) == '\n') { ++query; } } ++query; } XMLBuffer query_line; if(context != 0) { while(curLine < endLine) { if(*query == 0) break; if(*query == '\n' || *query == '\r') { if(curLine < 100) cerr << " "; if(curLine < 10) cerr << " "; cerr << curLine << ": " << UTF8(query_line.getRawBuffer()) << endl; query_line.reset(); ++curLine; if(*query == '\r' && *(query + 1) == '\n') { ++query; } } else { query_line.append(*query); } ++query; } if(!query_line.isEmpty()) { if(curLine < 100) cerr << " "; if(curLine < 10) cerr << " "; cerr << curLine << ": " << UTF8(query_line.getRawBuffer()) << endl; } } else { XMLBuffer marker_line; unsigned int curColumn = 1; while(*query != 0) { if(curColumn == column) { marker_line.append('^'); } if(*query == '\n' || *query == '\r') break; query_line.append(*query); if(curColumn != column) { if(*query == '\t') { marker_line.append(*query); } else { marker_line.append(' '); } } ++query; ++curColumn; } cerr << UTF8(query_line.getRawBuffer()) << endl << UTF8(marker_line.getRawBuffer()) << endl; } } //////////////////////////////////////////////////////////////////////////////////////////////////// void InteractiveDebugger::debugQuery(const XQQuery *query, DynamicContext *context) { InteractiveDebugger debugger(query, context); try { debugger.readCommand(); } catch(Quit) { } } InteractiveDebugger::InteractiveDebugger(const XQQuery *query, DynamicContext *context) : stack_(0), currentFrame_(0), query_(query), context_(context), lazy_(false), focusOptimzations_(false) { context->setDebugListener(this); context->setProjection(false); } void InteractiveDebugger::run() { while(true) { next_ = 0; stack_ = 0; currentFrame_ = 0; try { queryStarted_ = true; StdOutFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.1", &target, context_->getMemoryManager()); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, context_->getMemoryManager()); query_->execute(&nsfilter, context_); queryStarted_ = false; cout << endl << "Query completed." << endl; return; } catch(Run) { queryStarted_ = false; } catch(Quit) { throw; } catch(XQException &e) { queryStarted_ = false; cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); break; } catch(...) { queryStarted_ = false; cerr << "Caught unknown exception" << endl; break; } } } void InteractiveDebugger::enter(const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; checkBreak(/*entering*/true); } void InteractiveDebugger::exit(const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; checkBreak(/*entering*/false); } void InteractiveDebugger::error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; breakForError(UTF8(error.getError())); } bool InteractiveDebugger::changeFrame(unsigned int number) { const StackFrame *frame = stack_; unsigned int count = 0; while(frame && count < number) { frame = frame->getPreviousFrame(); ++count; } if(frame == 0 || count < number) return false; currentFrame_ = frame; return true; } unsigned int InteractiveDebugger::getCurrentFrameNumber() const { const StackFrame *frame = stack_; unsigned int count = 0; while(frame && frame != currentFrame_) { frame = frame->getPreviousFrame(); ++count; } return count; } unsigned int InteractiveDebugger::getStackSize() const { const StackFrame *frame = stack_; unsigned int count = 0; while(frame) { frame = frame->getPreviousFrame(); ++count; } return count; } void InteractiveDebugger::stackTrace() const { int count = 0; const StackFrame *frame = stack_; while(frame) { cerr << "#" << count; output(frame); cerr << endl; frame = frame->getPreviousFrame(); ++count; } } bool InteractiveDebugger::outputCurrentFrame(unsigned int context) const { if(currentFrame_ == 0) return false; cerr << "#" << getCurrentFrameNumber(); output(currentFrame_); cerr << endl << endl; outputLocation(currentFrame_->getLocationInfo(), context); return true; } void InteractiveDebugger::outputCurrentFrameQueryPlan() const { if(currentFrame_ == 0) { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); cout << a2x->print(query_, context_) << endl; } else { cout << currentFrame_->getQueryPlan() << endl;; } } bool InteractiveDebugger::queryCurrentFrame(const char *queryString) const { if(currentFrame_ == 0) return false; XStr query16(queryString); try { XPath2MemoryManager *memMgr = context_->getMemoryManager(); StdOutFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.1", &target, memMgr); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, memMgr); currentFrame_->query(query16.str(), &nsfilter); } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; if(e.getXQueryFile() == 0) BaseInteractiveDebugger::outputLocationFromString(query16.str(), e.getXQueryLine(), e.getXQueryColumn()); else BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); } catch(...) { cerr << "Caught unknown exception" << endl; } return true; } bool InteractiveDebugger::currentFrameLocation(string &file, unsigned int &line, unsigned int &column) const { if(currentFrame_ == 0) { file = UTF8(query_->getFile()); line = 0; column = 0; return false; } file = UTF8(currentFrame_->getLocationInfo()->getFile()); line = currentFrame_->getLocationInfo()->getLine(); column = currentFrame_->getLocationInfo()->getColumn(); return true; } void InteractiveDebugger::setDoProjection(bool opt) { context_->setProjection(opt); } void InteractiveDebugger::output(const StackFrame *frame) const { string where = regexFind("(<[^>]+>)", frame->getQueryPlan()); if(where != "") cerr << " in " << where; const LocationInfo *loc = frame->getLocationInfo(); cerr << " at " << UTF8(loc->getFile()) << ":" << loc->getLine() << ":" << loc->getColumn(); } void InteractiveDebugger::report(const StackFrame *frame) const { const LocationInfo *loc = frame->getLocationInfo(); cerr << UTF8(loc->getFile()) << ":" << loc->getLine() << ":" << loc->getColumn() << endl; outputLocation(loc); } //////////////////////////////////////////////////////////////////////////////////////////////////// static void lowerCase(string &s) { for (unsigned int i = 0; i < s.length(); ++i) s[i] = tolower(s[i]); } bool DebugCommand::matches(const std::string &command, const std::string &toMatch) { // Be case-insensitive, for convenience if (command.length() == 0) return false; string l_command = command; string l_match = toMatch; lowerCase(l_command); lowerCase(l_match); return l_match.substr(0, l_command.length()) == l_command; } bool DebugCommand::matches(const std::string &command) const { return matches(command, name_) || matches(command, compatName_); } XQilla-2.3.4/src/debug/TupleDebugHook.cpp0000644001725400016040000000730013273140037015101 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; TupleDebugHook::TupleDebugHook(TupleNode *parent, XPath2MemoryManager *mm) : TupleNode(DEBUG_HOOK, parent, mm) { setLocationInfo(parent); } TupleNode *TupleDebugHook::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); return this; } TupleNode *TupleDebugHook::staticTypingImpl(StaticContext *context) { return this; } TupleNode *TupleDebugHook::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class TupleStackFrame : public StackFrame { public: TupleStackFrame(const TupleNode *ast, DynamicContext *context) : StackFrame(ast, context) {} const ASTNode *getASTNode() const { return 0; } const TupleNode *getTupleNode() const { return (TupleNode*)location_; } virtual std::string getQueryPlan() const { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); return a2x->print(getTupleNode(), context_); } }; class TupleDebugHookResult : public TupleResult { public: TupleDebugHookResult(const TupleNode *expr, DynamicContext *context) : TupleResult(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->createResult(context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } } ~TupleDebugHookResult() { parent_ = 0; DebugListener *dl = context_->getDebugListener(); AutoStackFrameReset reset(context_, &frame_); if(dl) dl->end(&frame_, context_); } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { bool result = parent_->next(context); if(dl) dl->exit(&frame_, context); return result; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return false; } private: DynamicContext *context_; TupleStackFrame frame_; TupleResult::Ptr parent_; }; TupleResult::Ptr TupleDebugHook::createResult(DynamicContext* context) const { return new TupleDebugHookResult(parent_, context); } XQilla-2.3.4/src/debug/DebugHookDecorator.cpp0000644001725400016040000000233613273140037015736 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include DebugHookDecorator::DebugHookDecorator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), mm_(context->getMemoryManager()) { } ASTNode *DebugHookDecorator::optimize(ASTNode *item) { return new (mm_) ASTDebugHook(ASTVisitor::optimize(item), mm_); } TupleNode *DebugHookDecorator::optimizeTupleNode(TupleNode *item) { return new (mm_) TupleDebugHook(ASTVisitor::optimizeTupleNode(item), mm_); } XQilla-2.3.4/src/events/0000755001725400016040000000000013273141207012012 500000000000000XQilla-2.3.4/src/events/EventGenerator.cpp0000644001725400016040000000353013273140037015367 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include ASTNodeEventGenerator::ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType) : ast_(ast), preserveNS_(preserveNS), preserveType_(preserveType) { } EventGenerator::Ptr ASTNodeEventGenerator::generateEvents(EventHandler *events, DynamicContext *context) { return ast_->generateEvents(events, context, preserveNS_, preserveType_); } Result EventGenerator::createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context) { AutoDelete builder(context->createSequenceBuilder()); if(context->getProjection() && projection != 0) { QueryPathTreeFilter qptf(projection, builder.get()); ast->generateAndTailCall(&qptf, context, true, true); qptf.endEvent(); } else { ast->generateAndTailCall(builder.get(), context, true, true); builder->endEvent(); } return builder->getSequence(); } XQilla-2.3.4/src/events/QueryPathTreeFilter.cpp0000644001725400016040000002230013273140037016343 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; QueryPathTreeFilter::QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next) : EventFilter(next) { stack_.push_back(new StackEntry()); stack_.back()->matched = true; if(qpn) stack_.back()->addNode(qpn); } QueryPathTreeFilter::QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next) : EventFilter(next) { stack_.push_back(new StackEntry()); stack_.back()->matched = true; QPNVector::const_iterator i = qpns.begin(); for(; i != qpns.end(); ++i) { stack_.back()->addNode(*i); } } QueryPathTreeFilter::~QueryPathTreeFilter() { for(FilterStack::iterator i = stack_.begin(); i != stack_.end(); ++i) delete *i; } void QueryPathTreeFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { StackEntry *entry = stack_.back(); StackEntry *newEntry = new StackEntry(); stack_.push_back(newEntry); QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end(); ++i) { switch((*i)->getType()) { case QueryPathNode::ROOT: newEntry->matched = true; newEntry->addChildren(*i); break; case QueryPathNode::DESCENDANT_ATTR: newEntry->addNode(*i); break; case QueryPathNode::DESCENDANT: newEntry->addNode(*i); // Fall through case QueryPathNode::CHILD: if((*i)->isWildcardNodeType()) { newEntry->matched = true; newEntry->addChildren(*i); } break; case QueryPathNode::ATTRIBUTE: default: break; } } // Always output the document node newEntry->matched = true; next_->startDocumentEvent(documentURI, encoding); } void QueryPathTreeFilter::endDocumentEvent() { StackEntry *entry = stack_.back(); if(entry->matched) next_->endDocumentEvent(); delete entry; stack_.pop_back(); } void QueryPathTreeFilter::checkAncestors(FilterStack::reverse_iterator s) { // The actual parent, if we weren't projecting StackEntry *parent = *s; // Look for the node this element would be a child of if it were output now // (The last ancestor that was matched) while(s != stack_.rend() && !(*s)->matched) ++s; assert(s != stack_.rend()); // Is it our real parent? while(*s != parent) { // Search to see if this pseudo-parent is expecting actual children (not descendants) // that match any of the nodes we're looking for right now bool found = false; QPNVector::iterator i = (*s)->children.begin(); for(; !found && i != (*s)->children.end(); ++i) { if((*i)->getType() == QueryPathNode::CHILD) { QPNVector::iterator j = parent->children.begin(); for(; !found && j != parent->children.end(); ++j) { switch((*j)->getType()) { case QueryPathNode::DESCENDANT_ATTR: // Could result in the materialization of any element found = true; break; case QueryPathNode::DESCENDANT: case QueryPathNode::CHILD: if(((*i)->isWildcardName() || (*j)->isWildcardName() || XPath2Utils::equals((*i)->getName(), (*j)->getName())) && ((*i)->isWildcardURI() || (*j)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), (*j)->getURI()))) { found = true; } break; case QueryPathNode::ROOT: case QueryPathNode::ATTRIBUTE: default: break; } } } } if(!found) break; // Our pseudo-parent is expecting children that could match nodes in this part // of it's sub-tree - better output the next intermediate ancestor to disambiguate --s; (*s)->matched = true; next_->startElementEvent(emptyToNull((*s)->prefix.getRawBuffer()), emptyToNull((*s)->uri.getRawBuffer()), (*s)->localname.getRawBuffer()); } } void QueryPathTreeFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { StackEntry *entry = stack_.back(); StackEntry *newEntry = new StackEntry(); stack_.push_back(newEntry); QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end(); ++i) { switch((*i)->getType()) { case QueryPathNode::DESCENDANT_ATTR: newEntry->addNode(*i); break; case QueryPathNode::DESCENDANT: newEntry->addNode(*i); // Fall through case QueryPathNode::CHILD: if(((*i)->isWildcardName() || XPath2Utils::equals((*i)->getName(), localname)) && ((*i)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), uri))) { newEntry->matched = true; newEntry->addChildren(*i); } break; case QueryPathNode::ROOT: case QueryPathNode::ATTRIBUTE: default: break; } } if(newEntry->matched) { FilterStack::reverse_iterator s = stack_.rbegin(); ++s; assert(*s == entry); checkAncestors(s); next_->startElementEvent(prefix, uri, localname); } else { newEntry->prefix.set(prefix); newEntry->uri.set(uri); newEntry->localname.set(localname); } } void QueryPathTreeFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { StackEntry *entry = stack_.back(); if(entry->matched) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); } stack_.pop_back(); delete entry; } void QueryPathTreeFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->piEvent(target, value); } } void QueryPathTreeFilter::textEvent(const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->textEvent(value); } } void QueryPathTreeFilter::textEvent(const XMLCh *chars, unsigned int length) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->textEvent(chars, length); } } void QueryPathTreeFilter::commentEvent(const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->commentEvent(value); } } void QueryPathTreeFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { StackEntry *entry = stack_.back(); if(entry->attrChildren) { bool found = false; QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end() && !found; ++i) { switch((*i)->getType()) { case QueryPathNode::DESCENDANT_ATTR: case QueryPathNode::ATTRIBUTE: if(((*i)->isWildcardName() || XPath2Utils::equals((*i)->getName(), localname)) && ((*i)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), uri))) { found = true; } break; default: break; } } if(found) { if(!entry->matched) { // Output the element for this attribute entry->matched = true; next_->startElementEvent(emptyToNull(entry->prefix.getRawBuffer()), emptyToNull(entry->uri.getRawBuffer()), entry->localname.getRawBuffer()); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } } } void QueryPathTreeFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { StackEntry *entry = stack_.back(); if(!entry->matched) { // Output the element for this namespace node entry->matched = true; next_->startElementEvent(emptyToNull(entry->prefix.getRawBuffer()), emptyToNull(entry->uri.getRawBuffer()), entry->localname.getRawBuffer()); } // We always output namespace nodes next_->namespaceEvent(prefix, uri); } void QueryPathTreeFilter::StackEntry::addNode(const QueryPathNode *qpn) { switch(qpn->getType()) { case QueryPathNode::DESCENDANT: case QueryPathNode::CHILD: if(qpn->isWildcardNodeType()) nonElementChildren = true; break; case QueryPathNode::DESCENDANT_ATTR: case QueryPathNode::ATTRIBUTE: attrChildren = true; break; default: break; } children.push_back(qpn); } void QueryPathTreeFilter::StackEntry::addChildren(const QueryPathNode *qpn) { const QueryPathNode *child = qpn->getFirstChild(); while(child != 0) { addNode(child); child = child->getNextSibling(); } } XQilla-2.3.4/src/events/EventSerializer.cpp0000644001725400016040000002040613273140037015553 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include XERCES_CPP_NAMESPACE_USE; static const XMLCh startElem_start = '<'; static const XMLCh elem_end = '>'; static const XMLCh endElem_selfClose[] = { '/', '>', 0 }; static const XMLCh endElem_start[] = { '<', '/', 0 }; static const XMLCh colon = ':'; static const XMLCh pi_start[] = { '<', '?', 0 }; static const XMLCh space = ' '; static const XMLCh pi_end[] = { '?', '>', 0 }; static const XMLCh comment_start[] = { '<', '!', '-', '-', 0 }; static const XMLCh comment_end[] = { '-', '-', '>', 0 }; static const XMLCh attr_equals_quote[] = { '=', '"', 0 }; static const XMLCh quote = '"'; static const XMLCh attr_xmlns[] = { ' ', 'x', 'm', 'l', 'n', 's', 0 }; static const XMLCh openCurly = '{'; static const XMLCh closeCurly = '}'; static const XMLCh openSquare = '['; static const XMLCh closeSquare = ']'; static const XMLCh newline = '\n'; EventSerializer::EventSerializer(const char *encoding, const char *xmlVersion, XMLFormatTarget *target, MemoryManager *mm) : formatter_(encoding, xmlVersion, target, XMLFormatter::CharEscapes, XMLFormatter::UnRep_CharRef, mm), elementStarted_(false), level_(0), version_(XStr(xmlVersion, mm).adopt()), encoding_(XStr(encoding, mm).adopt()), addNewlines_(false), selfClosing_(true), xmlDecls_(true), mm_(mm) { } EventSerializer::EventSerializer(XMLFormatTarget *target, MemoryManager *mm) : formatter_("UTF-16", "1.1", target, XMLFormatter::CharEscapes, XMLFormatter::UnRep_CharRef, mm), elementStarted_(false), level_(0), version_(XStr("1.1", mm).adopt()), encoding_(XStr("UTF-16", mm).adopt()), addNewlines_(false), selfClosing_(true), xmlDecls_(true), mm_(mm) { } EventSerializer::~EventSerializer() { mm_->deallocate(version_); mm_->deallocate(encoding_); } void EventSerializer::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(xmlDecls_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << pi_start; formatter_ << X("xml version=\""); formatter_ << version_; formatter_ << X("\" encoding=\""); formatter_ << encoding_; formatter_ << X("\""); formatter_ << pi_end; formatter_ << newline; } ++level_; } void EventSerializer::endDocumentEvent() { --level_; // Nothing to do if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::endEvent() { // Nothing to do } void EventSerializer::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << X("<"); if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; elementStarted_ = true; ++level_; } void EventSerializer::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { --level_; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_ && !selfClosing_) { elementStarted_ = false; formatter_ << elem_end; } if(elementStarted_) { elementStarted_ = false; formatter_ << endElem_selfClose; } else { formatter_ << endElem_start; if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; formatter_ << elem_end; } if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::piEvent(const XMLCh *target, const XMLCh *value) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << pi_start; formatter_ << target; formatter_ << space; formatter_ << value; formatter_ << pi_end; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::textEvent(const XMLCh *value) { if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << XMLFormatter::CharEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::textEvent(const XMLCh *chars, unsigned int length) { if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << XMLFormatter::CharEscapes << XMLFormatter::UnRep_CharRef; formatter_.formatBuf(chars, length); if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::commentEvent(const XMLCh *value) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << comment_start; formatter_ << value; formatter_ << comment_end; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(elementStarted_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << space; if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; } else { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(uri != 0) { formatter_ << openCurly; formatter_ << uri; formatter_ << closeCurly; } formatter_ << localname; formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; if(addNewlines_) formatter_ << newline; } } void EventSerializer::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(elementStarted_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << attr_xmlns; if(prefix != 0) { formatter_ << colon; formatter_ << prefix; } formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << uri; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; } else { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << openSquare; if(prefix != 0) { formatter_ << prefix; } formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << uri; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; formatter_ << closeSquare; if(addNewlines_) formatter_ << newline; } } void EventSerializer::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << value; if(addNewlines_) formatter_ << newline; } XQilla-2.3.4/src/events/ContentSequenceFilter.cpp0000644001725400016040000000524113273140037016711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include ContentSequenceFilter::ContentSequenceFilter(EventHandler *next) : EventFilter(next), lastWasAtomic_(false) { } void ContentSequenceFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { // Do nothing } void ContentSequenceFilter::endDocumentEvent() { // Do nothing } void ContentSequenceFilter::endEvent() { // Do nothing } void ContentSequenceFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { lastWasAtomic_ = false; next_->startElementEvent(prefix, uri, localname); } void ContentSequenceFilter::piEvent(const XMLCh *target, const XMLCh *value) { lastWasAtomic_ = false; next_->piEvent(target, value); } void ContentSequenceFilter::textEvent(const XMLCh *value) { lastWasAtomic_ = false; next_->textEvent(value); } void ContentSequenceFilter::textEvent(const XMLCh *chars, unsigned int length) { lastWasAtomic_ = false; next_->textEvent(chars, length); } void ContentSequenceFilter::commentEvent(const XMLCh *value) { lastWasAtomic_ = false; next_->commentEvent(value); } void ContentSequenceFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { lastWasAtomic_ = false; next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ContentSequenceFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { lastWasAtomic_ = false; next_->namespaceEvent(prefix, uri); } void ContentSequenceFilter::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { static XMLCh space[] = { ' ', 0 }; if(lastWasAtomic_) { next_->textEvent(space); } next_->textEvent(value); lastWasAtomic_ = true; } XQilla-2.3.4/src/events/NoInheritFilter.cpp0000644001725400016040000000741413273140037015511 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "NoInheritFilter.hpp" #include XERCES_CPP_NAMESPACE_USE; NoInheritFilter::NoInheritFilter(EventHandler *next, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), prefixes_(7, mm), prefixes2_(7, mm), level_(0), elementStarted_(false) { } void NoInheritFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { ++level_; next_->startDocumentEvent(documentURI, encoding); } void NoInheritFilter::endDocumentEvent() { next_->endDocumentEvent(); --level_; } void NoInheritFilter::endEvent() { next_->endEvent(); level_ = 0; } void NoInheritFilter::checkElementStarted() { if(elementStarted_) { elementStarted_ = false; if(level_ == 2) { // Add namespaces to un-inherit our parent's namespaces RefHashTableOfEnumerator en(&prefixes_); while(en.hasMoreElements()) { const XMLCh *prefix = (const XMLCh*)en.nextElementKey(); if(!prefixes2_.containsKey((void*)prefix)) { next_->namespaceEvent(prefix, 0); } } } } } void NoInheritFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { checkElementStarted(); ++level_; next_->startElementEvent(prefix, uri, localname); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2) { prefixes2_.removeAll(); prefixes2_.put((void*)mm_->getPooledString(prefix), 0); elementStarted_ = true; } } void NoInheritFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { checkElementStarted(); next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void NoInheritFilter::piEvent(const XMLCh *target, const XMLCh *value) { checkElementStarted(); next_->piEvent(target, value); } void NoInheritFilter::textEvent(const XMLCh *value) { checkElementStarted(); next_->textEvent(value); } void NoInheritFilter::textEvent(const XMLCh *chars, unsigned int length) { checkElementStarted(); next_->textEvent(chars, length); } void NoInheritFilter::commentEvent(const XMLCh *value) { checkElementStarted(); next_->commentEvent(value); } void NoInheritFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2 && uri != 0) { prefixes2_.put((void*)mm_->getPooledString(prefix), 0); } } void NoInheritFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { next_->namespaceEvent(prefix, uri); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2) { prefixes2_.put((void*)mm_->getPooledString(prefix), 0); } } XQilla-2.3.4/src/events/NoInheritFilter.hpp0000644001725400016040000000415013273140037015510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NOINHERITFILTER_HPP #define _NOINHERITFILTER_HPP #include #include class NoInheritFilter : public EventFilter { public: NoInheritFilter(EventHandler *next, XPath2MemoryManager *mm); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void endEvent(); private: void checkElementStarted(); XPath2MemoryManager *mm_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf prefixes_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf prefixes2_; unsigned int level_; bool elementStarted_; }; #endif XQilla-2.3.4/src/events/NSFixupFilter.cpp0000644001725400016040000001307513273140037015146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include XERCES_CPP_NAMESPACE_USE; NSFixupFilter::NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), level_(0), elements_(0), namespaces_(0) { } NSFixupFilter::~NSFixupFilter() { while(elements_ != 0) { ElemEntry *tmp = elements_; elements_ = elements_->prev; mm_->deallocate(tmp); } while(namespaces_ != 0) { NSEntry *tmp = namespaces_; namespaces_ = namespaces_->prev; mm_->deallocate(tmp); } } void NSFixupFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { next_->startDocumentEvent(documentURI, encoding); ++level_; } void NSFixupFilter::endDocumentEvent() { --level_; next_->endDocumentEvent(); } void NSFixupFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { ++level_; bool def = definePrefix(prefix, uri); // add the prefix to our linked list ElemEntry *entry = (ElemEntry*)mm_->allocate(sizeof(ElemEntry)); entry->set(mm_->getPooledString(prefix), elements_); elements_ = entry; next_->startElementEvent(prefix, uri, localname); if(def) next_->namespaceEvent(prefix, uri); } void NSFixupFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { ElemEntry *etmp = elements_; next_->endElementEvent(etmp->prefix, uri, localname, typeURI, typeName); --level_; elements_ = elements_->prev; mm_->deallocate(etmp); while(namespaces_ != 0 && namespaces_->level > level_) { NSEntry *tmp = namespaces_; namespaces_ = namespaces_->prev; mm_->deallocate(tmp); } } void NSFixupFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ != 0 && definePrefix(prefix, uri, /*attr*/true)) { next_->namespaceEvent(prefix, uri); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void NSFixupFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0 || definePrefix(prefix, uri, /*attr*/false, /*redefine*/false)) { next_->namespaceEvent(prefix, uri); } } static void numToBuf(unsigned int n, XMLBuffer &buf) { if(n >= 10) numToBuf(n / 10, buf); buf.append('0' + (n % 10)); } NSFixupFilter::NSEntry *NSFixupFilter::findPrefix(const XMLCh *prefix) { NSEntry *cur = namespaces_; while(cur != 0) { if(XPath2Utils::equals(prefix, cur->prefix)) { break; } cur = cur->prev; } return cur; } /// Returns the prefix to use bool NSFixupFilter::definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr, bool redefine) { // Attributes with no namespace do not need a prefix defined if(uri == 0 && attr) return false; // The "xml" prefix is always defined if(XPath2Utils::equals(XMLUni::fgXMLString, prefix)) return false; bool define = true; bool newPrefix = false; // Make up a prefix for an attribute in a namespace without one if(prefix == 0 && attr) { newPrefix = true; } else { // Check if the prefix is already defined NSEntry *cur = findPrefix(prefix); if(cur != 0) { if(XPath2Utils::equals(uri, cur->uri)) { // The prefix is already defined define = false; } else if(cur->level == level_) { if(uri == 0) { // TBD this is an error - jpcs define = false; } else if(!redefine) { define = false; } else { newPrefix = true; } } } else if(uri == 0) { // The default namespace is implicitly set to no namespace define = false; } } if(newPrefix) { // See if there's an existing binding NSEntry *cur = namespaces_; while(cur != 0) { if(XPath2Utils::equals(uri, cur->uri) && (!attr || cur->prefix != 0)) { break; } cur = cur->prev; } if(cur != 0) { prefix = cur->prefix; define = false; } else { // Choose a new prefix static XMLCh ns_prefix[] = { 'n', 's', 0 }; if(prefix == 0) prefix = ns_prefix; XMLBuffer buf(20, mm_); unsigned int num = 0; do { ++num; buf.set(prefix); buf.append('_'); numToBuf(num, buf); } while(findPrefix(buf.getRawBuffer()) != 0); prefix = mm_->getPooledString(buf.getRawBuffer()); } } // add the mapping to our linked list NSEntry *entry = (NSEntry*)mm_->allocate(sizeof(NSEntry)); entry->set(mm_->getPooledString(prefix), mm_->getPooledString(uri), level_, namespaces_); namespaces_ = entry; return define; } XQilla-2.3.4/src/tools/0000755001725400016040000000000013273141207011646 500000000000000XQilla-2.3.4/src/tools/compile-delayed-module.cpp0000644001725400016040000000424413232476424016625 00000000000000/* * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] " << endl << endl; cerr << "-h : Show this display" << endl; } namespace CompileDelayedModule { void compile(const XMLCh *queryFile) { XQilla::compileDelayedModule(queryFile); } } int main(int argc, char *argv[]) { string filename; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ // -h option, print usage if(argv[i][1] == 'h') { usage(argv[0]); return 0; } else { usage(argv[0]); return 1; } } else if(filename == "") { filename = argv[i]; } else { usage(argv[0]); return 1; } } if(filename == "") { usage(argv[0]); return 1; } XQilla xqilla; try { CompileDelayedModule::compile(X(filename.c_str())); } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); return 1; } return 0; } XQilla-2.3.4/src/dom-api/0000755001725400016040000000000013273141207012034 500000000000000XQilla-2.3.4/src/dom-api/impl/0000755001725400016040000000000013273141207012775 500000000000000XQilla-2.3.4/src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp0000644001725400016040000000257013273140037020163 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaXMLGrammarPoolImpl.hpp" #include #include XQillaXMLGrammarPoolImpl::XQillaXMLGrammarPoolImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const memMgr) : XMLGrammarPoolImpl(memMgr) {}; bool XQillaXMLGrammarPoolImpl::cacheGrammar(XERCES_CPP_NAMESPACE_QUALIFIER Grammar* const gramToCache) { try { return XMLGrammarPoolImpl::cacheGrammar(gramToCache); } catch(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException& e) { //do nothing - return false because the grammar was not accepted return false; } return false; } XQilla-2.3.4/src/dom-api/impl/XQillaExpressionImpl.hpp0000644001725400016040000000612113273140037017522 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPRESSIONIMPL_HPP #define __XQILLAEXPRESSIONIMPL_HPP #include #include #include #include class XPath2Result; class DynamicContext; class XPath2MemoryManager; class XQQuery; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; class DOMNode; class DOMDocument; class DOMException; class DOMXPathNSResolver; XERCES_CPP_NAMESPACE_END class XQILLA_API XQillaExpressionImpl : public XQillaExpression, public XercesConfiguration { public: XQillaExpressionImpl(const XMLCh *expression, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *xmlGP); virtual ~XQillaExpressionImpl(); #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluate(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluateOnce(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result); #else virtual void* evaluate(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, unsigned short type, void* reuseableResult) const; virtual void* evaluateOnce(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, unsigned short type, void* reuseableResult); #endif virtual void release(); const XQQuery *getCompiledExpression() const { return _compiledExpression; } void setCompiledExpression(XQQuery *expr) { _compiledExpression = expr; } private: virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *_xmlgr; DynamicContext *_staticContext; XQQuery* _compiledExpression; }; //XQillaExpressionImpl #endif //__XQILLAEXPRESSIONIMPL_HPP XQilla-2.3.4/src/dom-api/impl/XPath2ResultImpl.hpp0000644001725400016040000001212413273140037016555 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2RESULTIMPL_HPP #define __XPATH2RESULTIMPL_HPP #include #include #include #include #include #include class DynamicContext; class XQQuery; class XQillaExpressionImpl; class XQILLA_API XPath2ResultImpl : public #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult, #else XPath2Result, #endif XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo { public: XPath2ResultImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2ResultImpl(); virtual bool isNode() const; virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const; virtual int getIntegerValue() const; virtual double getNumberValue() const; virtual const XMLCh* getStringValue() const; virtual bool getBooleanValue() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const; /// DOMTypeInfo methods #if _XERCES_VERSION >= 30000 virtual const XMLCh* getTypeName() const; virtual const XMLCh* getTypeNamespace() const; virtual bool isDerivedFrom(const XMLCh* typeNamespaceArg, const XMLCh* typeNameArg, DerivationMethods derivationMethod) const; #else virtual const XMLCh* getName() const; virtual const XMLCh* getNamespace() const; #endif protected: XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; DynamicContext* _context; Item::Ptr _currentItem; XQillaExpressionImpl *_exprToDelete; }; class XQILLA_API XPath2FirstResultImpl : public XPath2ResultImpl { public: XPath2FirstResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2FirstResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t index); #endif }; class XQILLA_API XPath2SnapshotResultImpl : public XPath2ResultImpl { public: XPath2SnapshotResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2SnapshotResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t); #endif private: Sequence *_sequence; }; class XQILLA_API XPath2IteratorResultImpl : public XPath2ResultImpl { public: XPath2IteratorResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2IteratorResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t); #endif private: Result _results; const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl* _documentRoot; int _changes; }; #endif XQilla-2.3.4/src/dom-api/impl/XQillaNSResolverImpl.cpp0000644001725400016040000001211313273140037017416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; static const XMLCh g_nsBlocker[]={ chOpenSquare, chOpenSquare, chCloseSquare, chCloseSquare, chOpenCurly, chCloseCurly, chNull }; XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr) : _namespaceBindings(6, false, memMgr), _resolverNode(0), _prevScope(0), _memMgr(memMgr) { // "xml" is always bound to "http://www.w3.org/XML/1998/namespace" _namespaceBindings.put((void*)XMLUni::fgXMLString,(XMLCh*)XMLUni::fgXMLURIName); // "xmlns" is always bound to "http://www.w3.org/2000/xmlns/" _namespaceBindings.put((void*)XMLUni::fgXMLNSString,(XMLCh*)XMLUni::fgXMLNSURIName); } XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const DOMXPathNSResolver *prevScope) : _namespaceBindings(6, false, memMgr), _resolverNode(0), _prevScope(prevScope), _memMgr(memMgr) { } XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const DOMNode *resolverNode, const DOMXPathNSResolver *prevScope) : _namespaceBindings(6, false, memMgr), _resolverNode(resolverNode), _prevScope(prevScope), _memMgr(memMgr) { if(prevScope == 0) { // "xml" is always bound to "http://www.w3.org/XML/1998/namespace" _namespaceBindings.put((void*)XMLUni::fgXMLString,(XMLCh*)XMLUni::fgXMLURIName); // "xmlns" is always bound to "http://www.w3.org/2000/xmlns/" _namespaceBindings.put((void*)XMLUni::fgXMLNSString,(XMLCh*)XMLUni::fgXMLNSURIName); } } XQillaNSResolverImpl::~XQillaNSResolverImpl() { } const XMLCh* XQillaNSResolverImpl::lookupNamespaceURI(const XMLCh* prefix) const { const XMLCh *uri = _namespaceBindings.get((void*)prefix); if(XPath2Utils::equals(uri, g_nsBlocker)) return NULL; else if(uri != NULL && *uri != 0) return uri; if(_resolverNode != 0) { uri = _resolverNode->lookupNamespaceURI(prefix); if(uri != NULL && *uri != 0) return uri; } if(_prevScope != 0) return _prevScope->lookupNamespaceURI(prefix); return 0; } const XMLCh* XQillaNSResolverImpl::lookupPrefix(const XMLCh* uri) const { RefHashTableOfEnumerator iterValue((RefHashTableOf*)&_namespaceBindings); RefHashTableOfEnumerator iterKey((RefHashTableOf*)&_namespaceBindings); while(iterValue.hasMoreElements()) { XMLCh* key=(XMLCh*)iterKey.nextElementKey(); if(XPath2Utils::equals(&iterValue.nextElement(), uri)) { return key; } } if(_resolverNode != 0) { #if _XERCES_VERSION >= 30000 const XMLCh *prefix = _resolverNode->lookupPrefix(uri); #else const XMLCh *prefix = _resolverNode->lookupNamespacePrefix(uri, false); #endif if(prefix != NULL && *prefix != 0) return prefix; } if(_prevScope != 0) return _prevScope->lookupPrefix(uri); return 0; } void XQillaNSResolverImpl::addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { if(uri == 0 || *uri == 0) uri = g_nsBlocker; _namespaceBindings.put((void*)_memMgr->getPooledString(prefix), (XMLCh*)_memMgr->getPooledString(uri)); } void XQillaNSResolverImpl::release() { this->~XQillaNSResolverImpl(); _memMgr->deallocate(this); } void XQillaNSResolverImpl::forbiddenBindingCheck(const XMLCh* prefix, const XMLCh* uri, const LocationInfo *info) { if(XPath2Utils::equals(prefix,XMLUni::fgXMLNSString) || XPath2Utils::equals(prefix,XMLUni::fgXMLString)) XQThrow3(StaticErrorException,X("XQillaNSResolverImpl::forbiddenBindingCheck"), X("The prefixes 'xmlns' and 'xml' cannot be used in a namespace declaration [err:XQST0070]"), info); if(XPath2Utils::equals(uri,XMLUni::fgXMLURIName)) XQThrow3(StaticErrorException,X("XQillaNSResolverImpl::forbiddenBindingCheck"), X("The 'http://www.w3.org/XML/1998/namespace' namespace cannot be bound to any prefix [err:XQST0070]"), info); } XQilla-2.3.4/src/dom-api/impl/XQillaBuilderImpl.cpp0000644001725400016040000001143613273140037016751 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaBuilderImpl.hpp" #include "XQillaDocumentImpl.hpp" #include "XQillaXMLGrammarPoolImpl.hpp" #include #include #include #include #include #include #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_USE; const XMLCh XQillaBuilderImpl::gXQilla[] = // Points to "XPath2" {chLatin_X, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chDigit_2, chNull}; XQillaBuilderImpl::XQillaBuilderImpl(XMLValidator* const valToAdopt, MemoryManager* const manager, XMLGrammarPool* const gramPool, bool adoptGramPool) : #if _XERCES_VERSION >= 30000 DOMLSParserImpl(valToAdopt, manager, gramPool), #else DOMBuilderImpl(valToAdopt, manager, gramPool), #endif gramPool_(adoptGramPool ? gramPool : 0) { } XQillaBuilderImpl::~XQillaBuilderImpl() { delete gramPool_; } // --------------------------------------------------------------------------- // DOMBuilderImpl: Parsing methods // --------------------------------------------------------------------------- #if _XERCES_VERSION >= 30000 DOMDocument* XQillaBuilderImpl::parse(const DOMLSInput* source) { initParser(); Wrapper4DOMLSInput isWrapper((DOMLSInput*)source, 0, false, getMemoryManager()); AbstractDOMParser::parse(isWrapper); return getDocumentAndAddGrammar(); } #else DOMDocument* XQillaBuilderImpl::parse(const DOMInputSource& source) { initParser(); Wrapper4DOMInputSource isWrapper((DOMInputSource*) &source, false, getMemoryManager()); AbstractDOMParser::parse(isWrapper); return getDocumentAndAddGrammar(); } #endif void XQillaBuilderImpl::initParser() { //set it here in case someone has messed it up. #if _XERCES_VERSION >= 30000 setParameter(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); #else setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); #endif } DOMDocument* XQillaBuilderImpl::getDocumentAndAddGrammar() { DOMDocument *doc = 0; #if _XERCES_VERSION >= 30000 if (getParameter(XMLUni::fgXercesUserAdoptsDOMDocument) != 0) #else if (getFeature(XMLUni::fgXercesUserAdoptsDOMDocument)) #endif doc = adoptDocument(); else doc = getDocument(); if(doc == 0) { return 0; } if(getParameter(XMLUni::fgXercesDOMHasPSVIInfo)) { //we copy this gramamr and reset the parser one in the process. XMLGrammarPool *oldGrPool = getGrammarResolver()->getGrammarPool(); XQillaXMLGrammarPoolImpl *gr = new (getMemoryManager()) XQillaXMLGrammarPoolImpl(getMemoryManager()); // manually copy string pool contents to work around XERCESC-1798. const XMLStringPool* src = oldGrPool->getURIStringPool(); XMLStringPool* dst = gr->getURIStringPool(); for (unsigned int i = 1; i < src->getStringCount() + 1; ++i) dst->addOrFind (src->getValueForId(i)); RefHashTableOfEnumerator< Grammar> enumerator = oldGrPool->getGrammarEnumerator(); while(enumerator.hasMoreElements()) { Grammar &g = enumerator.nextElement(); gr->cacheGrammar(getGrammarResolver()->orphanGrammar(g.getGrammarDescription()->getGrammarKey())); } ((XQillaDocumentImpl*)doc)->setGrammarPool(gr, true); } return doc; } DOMDocument* XQillaBuilderImpl::parseURI(const XMLCh* const systemId) { initParser(); AbstractDOMParser::parse(systemId); return getDocumentAndAddGrammar(); } DOMDocument* XQillaBuilderImpl::parseURI(const char* const systemId) { initParser(); AbstractDOMParser::parse(systemId); return getDocumentAndAddGrammar(); } XQilla-2.3.4/src/dom-api/impl/XPath2ResultImpl.cpp0000644001725400016040000004102713273140037016554 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPath2ResultImpl.hpp" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; string typeName(XPath2Result::ResultType type) { switch(type) { case XPath2Result::FIRST_RESULT: return "FIRST_RESULT"; case XPath2Result::ITERATOR_RESULT: return "ITERATOR_RESULT"; case XPath2Result::SNAPSHOT_RESULT: return "SNAPSHOT_RESULT"; } return ""; } string errorMessage(XPath2Result::ResultType requestedType, XPath2Result::ResultType resultType) { return typeName(requestedType) + " was requested from a XPath2Result of type " + typeName(resultType); } //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2ResultImpl::XPath2ResultImpl(DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : _createdWith(memMgr), _context(exprImpl != 0 ? staticContext : staticContext->createDynamicContext(_createdWith)), _currentItem(0), _exprToDelete(exprImpl) { //Check for illegal contextNode types if(contextNode != 0) { //More illegal types here? switch (contextNode->getNodeType()) { case DOMNode::ENTITY_REFERENCE_NODE: throw XQillaException(DOMException::NOT_SUPPORTED_ERR, X("Context node of illegal type.")); break; default: break; } _context->setContextItem(((XercesConfiguration*)_context->getConfiguration())-> createNode(contextNode, _context)); } } XPath2ResultImpl::~XPath2ResultImpl() { _currentItem = 0; if(_exprToDelete) _exprToDelete->release(); else delete _context; } const DOMTypeInfo *XPath2ResultImpl::getTypeInfo() const { if(_currentItem.isNull()) return 0; return this; } bool XPath2ResultImpl::isNode() const { return !_currentItem.isNull() && _currentItem->isNode(); } /// DOMTypeInfo methods #if _XERCES_VERSION >= 30000 const XMLCh* XPath2ResultImpl::getTypeName() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeName(); } const XMLCh* XPath2ResultImpl::getTypeNamespace() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeURI(); } bool XPath2ResultImpl::isDerivedFrom(const XMLCh* typeNamespaceArg, const XMLCh* typeNameArg, DerivationMethods derivationMethod) const { // TBD implement this - jpcs return false; } #else const XMLCh* XPath2ResultImpl::getName() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeName(); } const XMLCh* XPath2ResultImpl::getNamespace() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeURI(); } #endif int XPath2ResultImpl::getIntegerValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionNumber::number(_currentItem, _context, 0)->asInt(); } double XPath2ResultImpl::getNumberValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionNumber::number(_currentItem, _context, 0)->asDouble(); } const XMLCh* XPath2ResultImpl::getStringValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionString::string(_currentItem, _context); } bool XPath2ResultImpl::getBooleanValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } if(!_currentItem->isAtomicValue()) { throw XQillaException(DOMXPathException::TYPE_ERR, X("Cannot convert result to a boolean")); } AnyAtomicType::Ptr atom = (const AnyAtomicType::Ptr)_currentItem; Item::Ptr boolean; try { boolean = atom->castAs(AnyAtomicType::BOOLEAN, _context); } catch (XPath2TypeCastException &e) { throw XQillaException(DOMXPathException::TYPE_ERR, X("Cannot convert result to a boolean")); } return ((const ATBooleanOrDerived*)boolean.get())->isTrue(); } DOMNode* XPath2ResultImpl::getNodeValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } if(!_currentItem->isNode()) { throw XQillaException(DOMXPathException::TYPE_ERR, X("The requested result is not a node")); } DOMNode *node = (DOMNode*)_currentItem->getInterface(XercesConfiguration::gXerces); if(node == 0) { // Should never happen throw XQillaException(DOMXPathException::TYPE_ERR, X("The requested result not a XQilla implementation node")); } return node; } //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2FirstResultImpl::XPath2FirstResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl) { try { _currentItem = expression->execute(_context)->next(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2FirstResultImpl::~XPath2FirstResultImpl() { } void XPath2FirstResultImpl::release() { this->~XPath2FirstResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2FirstResultImpl::getResultType() const { return DOMXPathResult::FIRST_RESULT_TYPE; } #else XPath2Result::ResultType XPath2FirstResultImpl::getResultType() const { return XPath2Result::FIRST_RESULT; } #endif bool XPath2FirstResultImpl::getInvalidIteratorState() const { return false; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2FirstResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else size_t XPath2FirstResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif bool XPath2FirstResultImpl::iterateNext() { string error = errorMessage(XPath2Result::ITERATOR_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #if _XERCES_VERSION >= 30000 bool XPath2FirstResultImpl::snapshotItem(XMLSize_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else bool XPath2FirstResultImpl::snapshotItem(size_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2SnapshotResultImpl::XPath2SnapshotResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl), _sequence(0) { try { Sequence seq = expression->execute(_context)->toSequence(_context); _sequence = new (_createdWith) Sequence(seq, _createdWith); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2SnapshotResultImpl::~XPath2SnapshotResultImpl() { // the destructor will try to access the context, that XPath2ResultImpl is about to delete if(_sequence) delete _sequence; } void XPath2SnapshotResultImpl::release() { this->~XPath2SnapshotResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2SnapshotResultImpl::getResultType() const { return DOMXPathResult::SNAPSHOT_RESULT_TYPE; } #else XPath2Result::ResultType XPath2SnapshotResultImpl::getResultType() const { return XPath2Result::SNAPSHOT_RESULT; } #endif bool XPath2SnapshotResultImpl::getInvalidIteratorState() const { return false; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2SnapshotResultImpl::getSnapshotLength() const { return _sequence->getLength(); } #else size_t XPath2SnapshotResultImpl::getSnapshotLength() const { return _sequence->getLength(); } #endif bool XPath2SnapshotResultImpl::iterateNext() { string error = errorMessage(XPath2Result::ITERATOR_RESULT, XPath2Result::SNAPSHOT_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #if _XERCES_VERSION >= 30000 bool XPath2SnapshotResultImpl::snapshotItem(XMLSize_t index) { //Reached end of set, return false if(index >= _sequence->getLength()) { _currentItem = 0; return false; } // this method is const, need to cast that away _currentItem = _sequence->item(index); return true; } #else bool XPath2SnapshotResultImpl::snapshotItem(size_t index) { //Reached end of set, return false if(index >= _sequence->getLength()) { _currentItem = 0; return false; } // this method is const, need to cast that away _currentItem = _sequence->item(index); return true; } #endif //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2IteratorResultImpl::XPath2IteratorResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl), _results(0), _documentRoot(0), _changes(0) { if(contextNode != 0) { if(contextNode->getNodeType() == DOMNode::DOCUMENT_NODE) { _documentRoot = (DOMDocumentImpl*)contextNode; } else { _documentRoot = (DOMDocumentImpl*)contextNode->getOwnerDocument(); } _changes =_documentRoot->changes(); } try { _results = expression->execute(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2IteratorResultImpl::~XPath2IteratorResultImpl() { // the destructor will try to access the context, that XPath2ResultImpl is about to delete if(!_results.isNull()) _results = 0; } void XPath2IteratorResultImpl::release() { this->~XPath2IteratorResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2IteratorResultImpl::getResultType() const { return DOMXPathResult::ITERATOR_RESULT_TYPE; } #else XPath2Result::ResultType XPath2IteratorResultImpl::getResultType() const { return XPath2Result::ITERATOR_RESULT; } #endif bool XPath2IteratorResultImpl::getInvalidIteratorState() const { return _documentRoot != 0 && _documentRoot->changes() != _changes; } bool XPath2IteratorResultImpl::iterateNext() { // check for document changes if(getInvalidIteratorState()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("Document has changed")); } try { _currentItem = _results->next(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } if(_currentItem.isNull()) { _results = 0; return false; } return true; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2IteratorResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } bool XPath2IteratorResultImpl::snapshotItem(XMLSize_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else size_t XPath2IteratorResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } bool XPath2IteratorResultImpl::snapshotItem(size_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif XQilla-2.3.4/src/dom-api/impl/XQillaDocumentImpl.hpp0000644001725400016040000000737713273140037017157 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLADOCUMENTIMPL_HPP #define __XQILLADOCUMENTIMPL_HPP #include #include #include #include #include #include #include class DynamicContext; class XPath2Result; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; XERCES_CPP_NAMESPACE_END class XQillaDocumentImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl { public: XQillaDocumentImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); XQillaDocumentImpl(const XMLCh* namespaceURI, const XMLCh* qualifiedName, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* doctype, XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual ~XQillaDocumentImpl(); #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression* createExpression(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* createNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nodeResolver); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluate(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result); #else virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression* createExpression(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* nodeResolver); virtual void* evaluate(const XMLCh* expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver, unsigned short type, void* reuseableResult); #endif virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *cloneNode(bool deep) const; virtual void setGrammarPool(XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *xmlGrammarPool, bool adoptGramPool); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *getGrammarPool(); protected: void becomeClone(const XQillaDocumentImpl *toClone, bool deep); XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_createdWith; /// Used for creating objects returned from DOMXPathEvaluator methods ProxyMemoryManager _memMgr; XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *_xmlGrammarPool; bool _adoptGramPool; }; #endif XQilla-2.3.4/src/dom-api/impl/XQillaDocumentImpl.cpp0000644001725400016040000001301013273140037017127 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaDocumentImpl.hpp" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaDocumentImpl::XQillaDocumentImpl(DOMImplementation* domImpl, MemoryManager* const memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(domImpl, memMgr), #else : DOMDocumentImpl(memMgr), #endif _createdWith(memMgr), _memMgr(memMgr), _xmlGrammarPool(0), _adoptGramPool(false) { } XQillaDocumentImpl::XQillaDocumentImpl(const XMLCh* namespaceURI, const XMLCh* qualifiedName, DOMDocumentType* doctype, DOMImplementation* domImpl, MemoryManager* const memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(namespaceURI, qualifiedName, doctype, domImpl, memMgr), #else : DOMDocumentImpl(namespaceURI, qualifiedName, doctype, memMgr), #endif _createdWith(memMgr), _memMgr(memMgr), _xmlGrammarPool(0), _adoptGramPool(false) { } XQillaDocumentImpl::~XQillaDocumentImpl() { if(_adoptGramPool) delete _xmlGrammarPool; } // weak version, create a context within #if _XERCES_VERSION >= 30000 DOMXPathExpression* XQillaDocumentImpl::createExpression(const XMLCh* expression, const DOMXPathNSResolver* resolver) #else const DOMXPathExpression* XQillaDocumentImpl::createExpression(const XMLCh* expression, const DOMXPathNSResolver* resolver) #endif { // Use placement new, because XQillaExpressionImpl inherits from XercesConfiguration, // which inherits from XMemory - which screws up our operator new overload void *mem = _createdWith->allocate(sizeof(XQillaExpressionImpl)); try { new (mem) XQillaExpressionImpl(expression, _createdWith, resolver, _xmlGrammarPool); } catch(...) { _createdWith->deallocate(mem); throw; } return (XQillaExpressionImpl*)mem; } #if _XERCES_VERSION >= 30000 DOMXPathResult* XQillaDocumentImpl::evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult* reuseableResult) #else void* XQillaDocumentImpl::evaluate(const XMLCh* expression, DOMNode* contextNode, const DOMXPathNSResolver* resolver, unsigned short type, void* reuseableResult) #endif { return ((XQillaExpressionImpl*)createExpression(expression, resolver))->evaluateOnce(contextNode, type, reuseableResult); } #if _XERCES_VERSION >= 30000 DOMXPathNSResolver *XQillaDocumentImpl::createNSResolver(const DOMNode *nodeResolver) #else const DOMXPathNSResolver *XQillaDocumentImpl::createNSResolver(DOMNode* nodeResolver) #endif { return _memMgr.createNSResolver(const_cast(nodeResolver)); } void XQillaDocumentImpl::setGrammarPool(XMLGrammarPool *xmlGrammarPool, bool adoptGramPool) { _xmlGrammarPool = xmlGrammarPool; _adoptGramPool = adoptGramPool; } XMLGrammarPool *XQillaDocumentImpl::getGrammarPool() { return _xmlGrammarPool; } DOMNode *XQillaDocumentImpl::cloneNode(bool deep) const { // Note: the cloned document node goes on the same heap we live in. XQillaDocumentImpl *newdoc = new (fMemoryManager) XQillaDocumentImpl(fDOMImplementation, fMemoryManager); newdoc->becomeClone(this, deep); fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newdoc); return newdoc; } void XQillaDocumentImpl::becomeClone(const XQillaDocumentImpl *toClone, bool deep) { if(toClone->fXmlEncoding && *toClone->fXmlEncoding) setXmlEncoding(toClone->fXmlEncoding); if(toClone->fXmlVersion && *toClone->fXmlVersion) setXmlVersion(toClone->fXmlVersion); setXmlStandalone(toClone->fXmlStandalone); if(deep) { for (DOMNode *n = toClone->getFirstChild(); n != 0; n = n->getNextSibling()) { appendChild(importNode(n, true, true)); } } } XQilla-2.3.4/src/dom-api/impl/XPathNamespaceImpl.hpp0000644001725400016040000001334113273140037017113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATHNAMESPACEIMPL_HPP #define __XPATHNAMESPACEIMPL_HPP #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMElement; class DOMDocument; XERCES_CPP_NAMESPACE_END XERCES_CPP_NAMESPACE_USE class XQILLA_API XPathNamespaceImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNamespace, public XERCES_CPP_NAMESPACE_QUALIFIER HasDOMNodeImpl { public: XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeImpl fNode; const XMLCh *uri; const XMLCh *prefix; enum XPathObjectType { XPATH_NAMESPACE_OBJECT = 13 }; public: //Main constructor XPathNamespaceImpl(const XMLCh* const prefix, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *owner, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *docOwner); XPathNamespaceImpl(const XPathNamespaceImpl &other); virtual ~XPathNamespaceImpl(); #if _XERCES_VERSION >= 30200 DOMNODEIMPL_DECL; #endif // Declare functions from DOMNode. They all must be implemented by this class virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* appendChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild) ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* cloneNode(bool deep) const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap* getAttributes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList* getChildNodes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getFirstChild() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getLastChild() const ; virtual const XMLCh* getLocalName() const ; virtual const XMLCh* getNamespaceURI() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNextSibling() const ; virtual const XMLCh* getNodeName() const ; #if _XERCES_VERSION >= 30000 virtual NodeType getNodeType() const; #else virtual short getNodeType() const; #endif virtual const XMLCh* getNodeValue() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* getOwnerDocument() const ; virtual const XMLCh* getPrefix() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getParentNode() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getPreviousSibling() const ; virtual bool hasChildNodes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* insertBefore(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *refChild) ; virtual void normalize() ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* removeChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild) ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* replaceChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild) ; virtual void setNodeValue(const XMLCh *nodeValue) ; virtual bool isSupported(const XMLCh *feature, const XMLCh *version) const ; virtual bool hasAttributes() const ; virtual void setPrefix(const XMLCh * prefix) ; virtual void* setUserData(const XMLCh* key, void* data, XERCES_CPP_NAMESPACE_QUALIFIER DOMUserDataHandler* handler) ; virtual void* getUserData(const XMLCh* key) const ; virtual bool isSameNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const; virtual bool isEqualNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* arg) const; virtual const XMLCh* getBaseURI() const ; #if _XERCES_VERSION >= 30000 virtual short compareDocumentPosition(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const ; #else virtual short compareTreePosition(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const ; #endif virtual const XMLCh* getTextContent() const ; virtual void setTextContent(const XMLCh* textContent) ; #if _XERCES_VERSION >= 30000 virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const; #else virtual const XMLCh* lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) const ; #endif virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const; virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const ; #if _XERCES_VERSION >= 30000 virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const; #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getInterface(const XMLCh* feature) ; #endif virtual void release(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *getOwnerElement() const; }; #endif XQilla-2.3.4/src/dom-api/impl/XQillaBuilderImpl.hpp0000644001725400016040000000564313273140037016761 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLADOMBUILDERIMPL_HPP #define __XQILLADOMBUILDERIMPL_HPP #include #include "../../config/xqilla_config.h" #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class DOMInputSource; class XMLGrammarPool; class MemoryManager; class XMLValidator; XERCES_CPP_NAMESPACE_END class XQillaBuilderImpl : #if _XERCES_VERSION >= 30000 public XERCES_CPP_NAMESPACE_QUALIFIER DOMLSParserImpl #else public XERCES_CPP_NAMESPACE_QUALIFIER DOMBuilderImpl #endif { public: /** @name Constructors and Destructor */ //@{ /** Construct a DOMBuilderImpl, with an optional validator * * Constructor with an instance of validator class to use for * validation. If you don't provide a validator, a default one will * be created for you in the scanner. * * @param gramPool Pointer to the grammar pool instance from * external application. * The parser does NOT own it. * * @param valToAdopt Pointer to the validator instance to use. The * parser is responsible for freeing the memory. */ XQillaBuilderImpl ( XERCES_CPP_NAMESPACE_QUALIFIER XMLValidator* const valToAdopt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool, bool adoptGramPool ); virtual ~XQillaBuilderImpl(); #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parse(const XERCES_CPP_NAMESPACE_QUALIFIER DOMLSInput* source); #else XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parse(const XERCES_CPP_NAMESPACE_QUALIFIER DOMInputSource& source); #endif XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parseURI(const XMLCh* const systemId); XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parseURI(const char* const systemId); static const XMLCh gXQilla[]; private: void initParser(); XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* getDocumentAndAddGrammar(); XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *gramPool_; }; #endif XQilla-2.3.4/src/dom-api/impl/XQillaExpressionImpl.cpp0000644001725400016040000001770213273140037017524 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include "XPath2ResultImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaExpressionImpl::XQillaExpressionImpl(const XMLCh *expression, MemoryManager* memMgr, const DOMXPathNSResolver *nsr, XMLGrammarPool *xmlGP) : _createdWith(memMgr), _xmlgr(xmlGP) { try { _staticContext = XQilla::createContext(XQilla::XPATH2, this, _createdWith); if(nsr != 0) { _staticContext->setNSResolver(nsr); const XMLCh *defaultElementNS = _staticContext->getMemoryManager()-> getPooledString(nsr->lookupNamespaceURI(XMLUni::fgZeroLenString)); _staticContext->setDefaultElementAndTypeNS(defaultElementNS); } _compiledExpression = XQilla::parse(expression, _staticContext, NULL, 0, _createdWith); } catch(XQException &e) { if(XQillaException::getDebug()) { e.printDebug(X("Caught exception at Interface")); } throw XQillaException(e); } } XQillaExpressionImpl::~XQillaExpressionImpl() { delete _compiledExpression; } void XQillaExpressionImpl::release() { this->~XQillaExpressionImpl(); _createdWith->deallocate(this); } DocumentCache *XQillaExpressionImpl::createDocumentCache(MemoryManager *memMgr) { return new(memMgr) DocumentCacheImpl(memMgr, _xmlgr); } #if _XERCES_VERSION >= 30000 DOMXPathResult *XQillaExpressionImpl::evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult* result) const { // TBD deal with the other result types - jpcs switch(type) { case DOMXPathResult::FIRST_RESULT_TYPE: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } case DOMXPathResult::UNORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ITERATOR_RESULT_TYPE: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } case DOMXPathResult::ANY_TYPE: case DOMXPathResult::NUMBER_TYPE: case DOMXPathResult::STRING_TYPE: case DOMXPathResult::BOOLEAN_TYPE: case DOMXPathResult::ANY_UNORDERED_NODE_TYPE: case DOMXPathResult::FIRST_ORDERED_NODE_TYPE: case DOMXPathResult::UNORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::ORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::SNAPSHOT_RESULT_TYPE: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } } return 0; } DOMXPathResult *XQillaExpressionImpl::evaluateOnce(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult* result) { // TBD deal with the other result types - jpcs switch(type) { case DOMXPathResult::FIRST_RESULT_TYPE: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } case DOMXPathResult::UNORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ITERATOR_RESULT_TYPE: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } case DOMXPathResult::ANY_TYPE: case DOMXPathResult::NUMBER_TYPE: case DOMXPathResult::STRING_TYPE: case DOMXPathResult::BOOLEAN_TYPE: case DOMXPathResult::ANY_UNORDERED_NODE_TYPE: case DOMXPathResult::FIRST_ORDERED_NODE_TYPE: case DOMXPathResult::UNORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::ORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::SNAPSHOT_RESULT_TYPE: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } } return 0; } #else void* XQillaExpressionImpl::evaluate(DOMNode* contextNode, unsigned short type, void*) const { switch((XPath2Result::ResultType)type) { case XPath2Result::FIRST_RESULT: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } case XPath2Result::ITERATOR_RESULT: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } case XPath2Result::SNAPSHOT_RESULT: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } } return 0; } void* XQillaExpressionImpl::evaluateOnce(DOMNode* contextNode, unsigned short type, void*) { switch((XPath2Result::ResultType)type) { case XPath2Result::FIRST_RESULT: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } case XPath2Result::ITERATOR_RESULT: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } case XPath2Result::SNAPSHOT_RESULT: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } } return 0; } #endif XQilla-2.3.4/src/dom-api/impl/XPathDocumentImpl.cpp0000644001725400016040000001706513273140037016777 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPathDocumentImpl.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XPathDocumentImpl::XPathDocumentImpl(DOMImplementation* domImpl, MemoryManager* memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(domImpl, memMgr), #else : DOMDocumentImpl(memMgr), #endif fMyDocType(NULL), fMyDocElement(NULL) { #if _XERCES_VERSION >= 30000 setXmlVersion(XMLUni::fgVersion1_1); #else setVersion(XMLUni::fgVersion1_1); #endif } XPathDocumentImpl::~XPathDocumentImpl() { } DOMNode *XPathDocumentImpl::insertBefore(DOMNode *newChild, DOMNode *refChild) { // if the newChild is a documenttype node created from domimplementation, set the ownerDoc first if ((newChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) && !newChild->getOwnerDocument()) ((DOMDocumentTypeImpl*)newChild)->setOwnerDocument(this); if(newChild==NULL) throw DOMException(DOMException::HIERARCHY_REQUEST_ERR,0, getMemoryManager()); DOMNodeImpl *thisNodeImpl = castToNodeImpl(this); if (thisNodeImpl->isReadOnly()) throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, getMemoryManager()); #if _XERCES_VERSION >= 30200 DOMNode* thisNode = fParent.fContainingNode; #else DOMNode* thisNode = castToNode(&fParent); #endif if (newChild->getOwnerDocument() != thisNode) throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, getMemoryManager()); // refChild must in fact be a child of this node (or 0) if (refChild!=0 && refChild->getParentNode() != thisNode) throw DOMException(DOMException::NOT_FOUND_ERR,0, getMemoryManager()); // if the new node has to be placed before itself, we don't have to do anything // (even worse, we would crash if we continue, as we assume they are two distinct nodes) if (refChild!=0 && newChild->isSameNode(refChild)) return newChild; if (newChild->getNodeType() == DOMNode::DOCUMENT_FRAGMENT_NODE) { // SLOW BUT SAFE: We could insert the whole subtree without // juggling so many next/previous pointers. (Wipe out the // parent's child-list, patch the parent pointers, set the // ends of the list.) But we know some subclasses have special- // case behavior they add to insertBefore(), so we don't risk it. // This approch also takes fewer bytecodes. while(newChild->hasChildNodes()) // Move insertBefore(newChild->getFirstChild(),refChild); } else { DOMNode *oldparent=newChild->getParentNode(); if(oldparent!=0) oldparent->removeChild(newChild); // Attach up castToNodeImpl(newChild)->fOwnerNode = thisNode; castToNodeImpl(newChild)->isOwned(true); // Attach before and after // Note: fFirstChild.previousSibling == lastChild!! if (fParent.fFirstChild == 0) { // this our first and only child fParent.fFirstChild = newChild; castToNodeImpl(newChild)->isFirstChild(true); // castToChildImpl(newChild)->previousSibling = newChild; DOMChildNode *newChild_ci = castToChildImpl(newChild); newChild_ci->previousSibling = newChild; } else { if (refChild == 0) { // this is an append DOMNode *lastChild = castToChildImpl(fParent.fFirstChild)->previousSibling; castToChildImpl(lastChild)->nextSibling = newChild; castToChildImpl(newChild)->previousSibling = lastChild; castToChildImpl(fParent.fFirstChild)->previousSibling = newChild; } else { // this is an insert if (refChild == fParent.fFirstChild) { // at the head of the list castToNodeImpl(fParent.fFirstChild)->isFirstChild(false); castToChildImpl(newChild)->nextSibling = fParent.fFirstChild; castToChildImpl(newChild)->previousSibling = castToChildImpl(fParent.fFirstChild)->previousSibling; castToChildImpl(fParent.fFirstChild)->previousSibling = newChild; fParent.fFirstChild = newChild; castToNodeImpl(newChild)->isFirstChild(true); } else { // somewhere in the middle DOMNode *prev = castToChildImpl(refChild)->previousSibling; castToChildImpl(newChild)->nextSibling = refChild; castToChildImpl(prev)->nextSibling = newChild; castToChildImpl(refChild)->previousSibling = newChild; castToChildImpl(newChild)->previousSibling = prev; } } } } changed(); Ranges* ranges = getRanges(); if ( ranges != 0) { XMLSize_t sz = ranges->size(); if (sz != 0) { for (XMLSize_t i =0; ielementAt(i)->updateRangeForInsertedNode(newChild); } } } // If insert succeeded, cache the kid appropriately if(newChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=(DOMElement *)newChild; else if(newChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=(DOMDocumentType *)newChild; return newChild; } DOMNode* XPathDocumentImpl::replaceChild(DOMNode *newChild, DOMNode *oldChild) { DOMDocumentType* tempDocType = fMyDocType; DOMElement* tempDocElement = fMyDocElement; if(oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=0; else if(oldChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=0; try { insertBefore(newChild, oldChild); // changed() already done. if((oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) || (oldChild->getNodeType() == DOMNode::ELEMENT_NODE)) return fParent.removeChild(oldChild); else return removeChild(oldChild); } catch(const OutOfMemoryException&) { throw; } catch(...) { fMyDocType = tempDocType; fMyDocElement = tempDocElement; throw; } } DOMNode *XPathDocumentImpl::removeChild(DOMNode *oldChild) { fParent.removeChild(oldChild); // If remove succeeded, un-cache the kid appropriately if(oldChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=0; else if(oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=0; return oldChild; } DOMDocumentType *XPathDocumentImpl::getDoctype() const { return fMyDocType; } DOMElement *XPathDocumentImpl::getDocumentElement() const { return fMyDocElement; } XQilla-2.3.4/src/dom-api/impl/XPathDocumentImpl.hpp0000644001725400016040000000373313273140037017001 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATHDOCUMENTIMPL_HPP #define __XPATHDOCUMENTIMPL_HPP #include #include #include class XQILLA_API XPathDocumentImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl { public: XPathDocumentImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); virtual ~XPathDocumentImpl(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* insertBefore(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *refChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* removeChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* replaceChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* getDoctype() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* getDocumentElement() const; protected: XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* fMyDocType; XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* fMyDocElement; }; #endif XQilla-2.3.4/src/dom-api/impl/XPathNamespaceImpl.cpp0000644001725400016040000004716313273140037017117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPathNamespaceImpl.hpp" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XPathNamespaceImpl::XPathNamespaceImpl(const XMLCh* const nsPrefix, const XMLCh* const nsUri, DOMElement *owner, DOMDocument *docOwner) #if _XERCES_VERSION >= 30200 : fNode(this, docOwner) #else : fNode(docOwner) #endif { DOMNodeImpl *argImpl = castToNodeImpl(this); if(owner) { argImpl->fOwnerNode = owner; argImpl->isOwned(true); } else { argImpl->fOwnerNode = docOwner; argImpl->isOwned(false); } argImpl->setIsLeafNode(true); DOMDocumentImpl *docImpl = (DOMDocumentImpl *)docOwner; uri = docImpl->getPooledString(nsUri); prefix = docImpl->getPooledString(nsPrefix); // this->ownerElement = owner; } XPathNamespaceImpl::XPathNamespaceImpl(const XPathNamespaceImpl &other) #if _XERCES_VERSION >= 30200 : fNode(this, other.fNode), #else : fNode(other.fNode), #endif uri(other.uri), prefix(other.prefix) { } XPathNamespaceImpl::~XPathNamespaceImpl() { } DOMNode * XPathNamespaceImpl::cloneNode(bool deep) const { throw DOMException::NOT_SUPPORTED_ERR; } const XMLCh *XPathNamespaceImpl::getNodeName() const { return prefix; } #if _XERCES_VERSION >= 30000 DOMNode::NodeType XPathNamespaceImpl::getNodeType() const #else short XPathNamespaceImpl::getNodeType() const #endif { return (DOMNode::NodeType)DOMXPathNamespace::XPATH_NAMESPACE_NODE; } const XMLCh *XPathNamespaceImpl::getPrefix() const { return prefix; } const XMLCh *XPathNamespaceImpl::getNamespaceURI() const { return uri; } DOMElement *XPathNamespaceImpl::getOwnerElement() const { return (DOMElement *) (fNode.isOwned() ? fNode.fOwnerNode : 0); } const XMLCh *XPathNamespaceImpl::getNodeValue() const { return 0; } void XPathNamespaceImpl::setNodeValue(const XMLCh *value) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } void* XPathNamespaceImpl::setUserData(const XMLCh* key, void* data, DOMUserDataHandler* handler) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } void XPathNamespaceImpl::setPrefix(const XMLCh *prefix) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } #if _XERCES_VERSION >= 30000 short XPathNamespaceImpl::compareDocumentPosition(const DOMNode* other) const #else short XPathNamespaceImpl::compareTreePosition(const DOMNode* other) const #endif { //note: order of namespace nodes currently has issues (number 51). For our purposes //namespace nodes belong to the element on which they were originally declared //this is proberbly incorecct but easiest to implement. Will change when the idea //is firmed up REVISIT // Questions of clarification for this method - to be answered by the // DOM WG. Current assumptions listed - LM // // 1. How do ENTITY nodes compare? // Current assumption: TREE_POSITION_DISCONNECTED, as ENTITY nodes // aren't really 'in the tree' // // 2. How do NOTATION nodes compare? // Current assumption: TREE_POSITION_DISCONNECTED, as NOTATION nodes // aren't really 'in the tree' // // 3. Are TREE_POSITION_ANCESTOR and TREE_POSITION_DESCENDANT // only relevant for nodes that are "part of the document tree"? // // // // Is the element node "outer" considered an ancestor of "myattr"? // Current assumption: No. // // 4. How do children of ATTRIBUTE nodes compare (with eachother, or // with children of other attribute nodes with the same element) // Current assumption: Children of ATTRIBUTE nodes are treated as if // they are the attribute node itself, unless the 2 nodes // are both children of the same attribute. // // 5. How does an ENTITY_REFERENCE node compare with it's children? // Given the DOM, it should precede its children as an ancestor. // Given "document order", does it represent the same position? // Current assumption: An ENTITY_REFERENCE node is an ancestor of its // children. // // 6. How do children of a DocumentFragment compare? // Current assumption: If both nodes are part of the same document // fragment, there are compared as if they were part of a document. const DOMNode* thisNode = this; // If the nodes are the same... if (thisNode == other) #if _XERCES_VERSION >= 30000 return 0; #else return (DOMNode::TREE_POSITION_SAME_NODE | DOMNode::TREE_POSITION_EQUIVALENT); #endif // If either node is of type ENTITY or NOTATION, compare as disconnected short thisType = thisNode->getNodeType(); short otherType = other->getNodeType(); // If either node is of type ENTITY or NOTATION, compare as disconnected if (thisType == DOMNode::ENTITY_NODE || thisType == DOMNode::NOTATION_NODE || otherType == DOMNode::ENTITY_NODE || otherType == DOMNode::NOTATION_NODE ) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_DISCONNECTED; #else return DOMNode::TREE_POSITION_DISCONNECTED; #endif } //if it is a custom node and bigger than us we must ask it for the order if(otherType > DOMXPathNamespace::XPATH_NAMESPACE_NODE) { #if _XERCES_VERSION >= 30200 DOMNodeImpl tmp(const_cast(this), 0); #else DOMNodeImpl tmp(0); #endif #if _XERCES_VERSION >= 30000 return tmp.reverseTreeOrderBitPattern(other->compareDocumentPosition(this)); #else return tmp.reverseTreeOrderBitPattern(other->compareTreePosition(this)); #endif } // Find the ancestor of each node, and the distance each node is from // its ancestor. // During this traversal, look for ancestor/descendent relationships // between the 2 nodes in question. // We do this now, so that we get this info correct for attribute nodes // and their children. const DOMNode *node; const DOMNode *thisAncestor = this; const DOMNode *otherAncestor = other; int thisDepth=0; int otherDepth=0; for (node = this; node != 0; node = node->getParentNode()) { thisDepth +=1; if (node == other) // The other node is an ancestor of this one. #if _XERCES_VERSION >= 30000 return (DOMNode::DOCUMENT_POSITION_CONTAINS | DOMNode::DOCUMENT_POSITION_PRECEDING); #else return (DOMNode::TREE_POSITION_ANCESTOR | DOMNode::TREE_POSITION_PRECEDING); #endif thisAncestor = node; } for (node=other; node != 0; node = node->getParentNode()) { otherDepth +=1; if (node == this) // The other node is a descendent of the reference node. #if _XERCES_VERSION >= 30000 return (DOMNode::DOCUMENT_POSITION_CONTAINED_BY | DOMNode::DOCUMENT_POSITION_FOLLOWING); #else return (DOMNode::TREE_POSITION_DESCENDANT | DOMNode::TREE_POSITION_FOLLOWING); #endif otherAncestor = node; } const DOMNode *otherNode = other; short thisAncestorType = thisAncestor->getNodeType(); short otherAncestorType = otherAncestor->getNodeType(); // if the ancestor is an attribute, get owning element. // we are now interested in the owner to determine position. if (thisAncestorType == DOMNode::ATTRIBUTE_NODE) { thisNode = ((DOMAttr *)thisAncestor)->getOwnerElement(); } if (thisAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { thisNode = ((XPathNamespaceImpl *)thisAncestor)->getOwnerElement(); } if (otherAncestorType == DOMNode::ATTRIBUTE_NODE) { otherNode = ((DOMAttr *)otherAncestor)->getOwnerElement(); } if (otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { otherNode = ((XPathNamespaceImpl *)otherAncestor)->getOwnerElement(); } // Before proceeding, we should check if both ancestor nodes turned // out to be attributes for the same element if (thisAncestorType == DOMNode::ATTRIBUTE_NODE && otherAncestorType == DOMNode::ATTRIBUTE_NODE && thisNode==otherNode) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor= 30000 return DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif //now do comparison between attrs if (thisAncestorType == DOMNode::ATTRIBUTE_NODE && otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE && thisNode==otherNode) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif // Now, find the ancestor of the owning element, if the original // ancestor was an attribute if (thisAncestorType == DOMNode::ATTRIBUTE_NODE || thisAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { thisDepth=0; for (node=thisNode; node != 0; node = node->getParentNode()) { thisDepth +=1; if (node == otherNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif thisAncestor = node; } for (node=otherNode; node != 0; node = node->getParentNode()) { if (node == thisNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif } } // Now, find the ancestor of the owning element, if the original // ancestor was an attribute if (otherAncestorType == DOMNode::ATTRIBUTE_NODE || otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { otherDepth=0; for (node=otherNode; node != 0; node = node->getParentNode()) { otherDepth +=1; if (node == thisNode) // The other node is a descendent of the reference // node's element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif otherAncestor = node; } for (node=thisNode; node != 0; node = node->getParentNode()) { if (node == otherNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif } } // thisAncestor and otherAncestor must be the same at this point, // otherwise, we are not in the same tree or document fragment if (thisAncestor != otherAncestor) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_DISCONNECTED | DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor otherDepth) { for (int i= 0 ; i < thisDepth - otherDepth; i++) thisNode = thisNode->getParentNode(); } else { for (int i = 0; i < otherDepth - thisDepth; i++) otherNode = otherNode->getParentNode(); } // We now have nodes at the same depth in the tree. Find a common // ancestor. DOMNode *thisNodeP, *otherNodeP; for (thisNodeP = thisNode->getParentNode(), otherNodeP = otherNode->getParentNode(); thisNodeP != otherNodeP;) { thisNode = thisNodeP; otherNode = otherNodeP; thisNodeP = thisNodeP->getParentNode(); otherNodeP = otherNodeP->getParentNode(); } // See whether thisNode or otherNode is the leftmost for (DOMNode *current = thisNodeP->getFirstChild(); current != 0; current = current->getNextSibling()) { if (current == otherNode) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif } else if (current == thisNode) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif } } // REVISIT: shouldn't get here. Should probably throw an // exception return 0; } void XPathNamespaceImpl::release() { if (fNode.isOwned() && !fNode.isToBeReleased()) throw DOMException(DOMException::INVALID_ACCESS_ERR,0); DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument(); if (doc) { fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0); doc->release(this, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT); } else { // shouldn't reach here throw DOMException(DOMException::INVALID_ACCESS_ERR,0); } } const XMLCh* XPathNamespaceImpl::getTextContent() const { return getNamespaceURI(); } const XMLCh* XPathNamespaceImpl::getLocalName() const { return this->getPrefix(); } // // Functions inherited from Node // DOMNamedNodeMap* XPathNamespaceImpl::getAttributes() const {return fNode.getAttributes (); }; DOMDocument* XPathNamespaceImpl::getOwnerDocument() const {return getOwnerElement()->getOwnerDocument(); }; bool XPathNamespaceImpl::hasAttributes() const {return fNode.hasAttributes(); }; bool XPathNamespaceImpl::isEqualNode(const DOMNode* arg) const {return fNode.isEqualNode(arg); }; DOMNode* XPathNamespaceImpl::appendChild(DOMNode *newChild) {return fNode.appendChild (newChild); }; DOMNodeList* XPathNamespaceImpl::getChildNodes() const {return fNode.getChildNodes (); }; DOMNode* XPathNamespaceImpl::getFirstChild() const {return fNode.getFirstChild (); }; DOMNode* XPathNamespaceImpl::getLastChild() const {return fNode.getLastChild (); }; DOMNode* XPathNamespaceImpl::getNextSibling() const {return fNode.getNextSibling (); }; //The exception is wrong - we need to sort out all these methods when we can compile again. DOMNode* XPathNamespaceImpl::getParentNode() const {return fNode.getParentNode ();}; DOMNode* XPathNamespaceImpl::getPreviousSibling() const {return fNode.getParentNode ();}; bool XPathNamespaceImpl::hasChildNodes() const {return fNode.hasChildNodes ();}; DOMNode* XPathNamespaceImpl::insertBefore(DOMNode *newChild, DOMNode *refChild) {return fNode.insertBefore (newChild, refChild); }; void XPathNamespaceImpl::normalize() {fNode.normalize (); }; DOMNode* XPathNamespaceImpl::removeChild(DOMNode *oldChild) {return fNode.removeChild (oldChild); }; DOMNode* XPathNamespaceImpl::replaceChild(DOMNode *newChild, DOMNode *oldChild) {return fNode.replaceChild (newChild, oldChild); }; bool XPathNamespaceImpl::isSupported(const XMLCh *feature, const XMLCh *version) const {return fNode.isSupported (feature, version); }; bool XPathNamespaceImpl::isSameNode(const DOMNode* other) const {return fNode.isSameNode(other); }; void* XPathNamespaceImpl::getUserData(const XMLCh* key) const {return fNode.getUserData(key); }; void XPathNamespaceImpl::setTextContent(const XMLCh* textContent){fNode.setTextContent(textContent); }; #if _XERCES_VERSION >= 20100 #if _XERCES_VERSION >= 30000 const XMLCh* XPathNamespaceImpl::lookupPrefix(const XMLCh* namespaceURI) const {return fNode.lookupPrefix(namespaceURI); }; #else const XMLCh* XPathNamespaceImpl::lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) const {return fNode.lookupNamespacePrefix(namespaceURI, useDefault); }; #endif bool XPathNamespaceImpl::isDefaultNamespace(const XMLCh* namespaceURI) const {return fNode.isDefaultNamespace(namespaceURI); }; const XMLCh* XPathNamespaceImpl::lookupNamespaceURI(const XMLCh* prefix) const {return fNode.lookupNamespaceURI(prefix); }; #else const XMLCh* XPathNamespaceImpl::lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) {return fNode.lookupNamespacePrefix(namespaceURI, useDefault); }; bool XPathNamespaceImpl::isDefaultNamespace(const XMLCh* namespaceURI) {return fNode.isDefaultNamespace(namespaceURI); }; const XMLCh* XPathNamespaceImpl::lookupNamespaceURI(const XMLCh* prefix) {return fNode.lookupNamespaceURI(prefix); }; #endif const XMLCh* XPathNamespaceImpl::getBaseURI() const {return fNode.getBaseURI(); }; #if _XERCES_VERSION >= 30000 void* XPathNamespaceImpl::getFeature(const XMLCh* feature, const XMLCh* version) const {return fNode.getFeature(feature, version); } #else DOMNode* XPathNamespaceImpl::getInterface(const XMLCh* feature) {return fNode.getInterface(feature); }; #endif #if _XERCES_VERSION >= 30200 DOMNODEIMPL_IMPL(XPathNamespaceImpl); #endifXQilla-2.3.4/src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp0000644001725400016040000000303013273140037020160 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAXMLGRAMMARPOOLIMPL_HPP #define __XQILLAXMLGRAMMARPOOLIMPL_HPP #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class Grammar; class MemoryManager; XERCES_CPP_NAMESPACE_END class XQillaXMLGrammarPoolImpl : public XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPoolImpl { public: XQillaXMLGrammarPoolImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const memMgr); /** * This method is overriden to not throw exceptions when a repeated grammar is found, but just ignore them **/ virtual bool cacheGrammar(XERCES_CPP_NAMESPACE_QUALIFIER Grammar* const gramToCache); }; #endif XQilla-2.3.4/src/dom-api/XQillaImplementation.hpp0000644001725400016040000001325113273140037016567 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAIMPLEMENTATION_HPP #define __XQILLAIMPLEMENTATION_HPP #include #include #include class XPath2MemoryManager; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; XERCES_CPP_NAMESPACE_END /** * The XQillaImplentation class implements the * DOMImplementation interface and the * DOMImplementationSource interface and provides a number of methods * for performing operations that are independent of any particular instance * of the document object model. */ class XQILLA_API XQillaImplementation: public XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation, public XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationSource { protected: XQillaImplementation(); public: /** @name Destructor */ //@{ /** * Destructor * */ virtual ~XQillaImplementation(); //@} /** Factory method for getting a XQillaImplementation object. * The XQilla implementation retains ownership of the returned object. * Application code should NOT delete it. */ static XQillaImplementation* getDOMImplementationImpl(); /** Initialize the XQillaImplementation */ static void initialize(); /** Terminate the XQillaImplementation */ static void terminate(); // DOMImplementationLS methods #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSParser* createLSParser(const XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationLS::DOMImplementationLSMode mode, const XMLCh* const schemaType, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSSerializer* createLSSerializer(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSInput* createLSInput(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSOutput* createLSOutput(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMWriter* createDOMWriter(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); /** * We create our own DOMBulider that creates a XQillaDocument. It also sets various parser options so we can * use the grammars correctly. Please note that if you pass your own XMLGrammarPool in then the special * XQuery types will not be available during parse **/ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMBuilder* createDOMBuilder(const short mode, const XMLCh* const schemaType, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool = 0); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMInputSource* createDOMInputSource(); #endif // DOMImplementationSource methods virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* getDOMImplementation(const XMLCh* features) const; #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationList* getDOMImplementationList(const XMLCh* features) const; #endif // DOMImplementation methods virtual bool hasFeature(const XMLCh * feature, const XMLCh * version) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType *doctype, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* createDocument(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,const XMLCh * publicId, const XMLCh *systemId); #if _XERCES_VERSION >= 30000 virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const; #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* getInterface(const XMLCh* feature); #endif /** The "XPath2" feature */ static const XMLCh gXQilla[]; /** The "3.0" version */ static const XMLCh g3_0[]; XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation *domImpl; private: static XQillaImplementation* gDomimp; }; #endif XQilla-2.3.4/src/dom-api/XPath2NodeSerializer.hpp0000644001725400016040000000316513273140037016440 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2NODESERIALIZER_HPP #define __XPATH2NODESERIALIZER_HPP #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class DOMNode; class XMLFormatter; XERCES_CPP_NAMESPACE_END class XQILLA_API XPath2NodeSerializer : #if _XERCES_VERSION >= 30000 public XERCES_CPP_NAMESPACE_QUALIFIER DOMLSSerializerImpl #else public XERCES_CPP_NAMESPACE_QUALIFIER DOMWriterImpl #endif { public: XPath2NodeSerializer(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual ~XPath2NodeSerializer(); protected: virtual bool customNodeSerialize(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* const nodeToWrite, int level); }; #endif XQilla-2.3.4/src/dom-api/XQillaImplementation.cpp0000644001725400016040000001640113273140037016562 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XQillaImplementation.hpp" #include #include "impl/XQillaDocumentImpl.hpp" #include "impl/XQillaBuilderImpl.hpp" #include "impl/XQillaXMLGrammarPoolImpl.hpp" #include "XPath2NodeSerializer.hpp" #include #include #include #include #if _XERCES_VERSION >= 30000 #include #include #else #include #endif #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh XQillaImplementation::gXQilla[] = // Points to "XPath2" {chLatin_X, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chDigit_2, chNull}; const XMLCh XQillaImplementation::g3_0[] = // Points to "3.0" {chDigit_3, chPeriod, chDigit_0, chNull}; XQillaImplementation::XQillaImplementation() { domImpl = DOMImplementation::getImplementation(); } XQillaImplementation::~XQillaImplementation() { } XQillaImplementation * XQillaImplementation::gDomimp = 0; void XQillaImplementation::initialize() { if(gDomimp) delete gDomimp; gDomimp = new XQillaImplementation(); DOMImplementationRegistry::addSource(gDomimp); } void XQillaImplementation::terminate() { if(gDomimp) delete gDomimp; gDomimp = 0; } XQillaImplementation* XQillaImplementation::getDOMImplementationImpl() { // initialized by XQillaImplementation::initialize() return gDomimp; } bool XQillaImplementation::hasFeature(const XMLCh * feature, const XMLCh * version) const { if (!feature) return false; if (XMLString::compareIString(feature, gXQilla) == 0 && (version == 0 || !*version || XMLString::equals(version, g3_0))) return true; return domImpl->hasFeature(feature, version); } DOMDocument* XQillaImplementation::createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager* const manager) { return new (manager) XQillaDocumentImpl(namespaceURI, qualifiedName, doctype, this, manager); } DOMDocument* XQillaImplementation::createDocument(MemoryManager* const manager) { return new (manager) XQillaDocumentImpl(this, manager); } #if _XERCES_VERSION >= 30000 DOMLSParser* XQillaImplementation::createLSParser(const DOMImplementationLS::DOMImplementationLSMode mode, const XMLCh* const schemaType, MemoryManager* const manager, XMLGrammarPool* const gramPool) { XMLGrammarPool *temp = 0; bool adoptGramPool = false; if(!gramPool) { temp = new (manager) XQillaXMLGrammarPoolImpl(manager); adoptGramPool = true; } else { temp = gramPool; } if(mode == DOMImplementationLS::MODE_ASYNCHRONOUS) throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0); DOMLSParser *tmp = new (manager) XQillaBuilderImpl(0, manager, temp, adoptGramPool); #if _XERCES_VERSION >= 30000 tmp->getDomConfig()->setParameter(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->getDomConfig()->setParameter(XMLUni::fgXercesCacheGrammarFromParse, true); #else tmp->setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->setFeature(XMLUni::fgXercesCacheGrammarFromParse, true); #endif return tmp; } DOMLSSerializer* XQillaImplementation::createLSSerializer(MemoryManager* const manager) { return new (manager) XPath2NodeSerializer(manager); } DOMLSInput* XQillaImplementation::createLSInput(MemoryManager* const manager) { return domImpl->createLSInput(manager); } DOMLSOutput* XQillaImplementation::createLSOutput(MemoryManager* const manager) { return domImpl->createLSOutput(manager); } #else DOMWriter* XQillaImplementation::createDOMWriter(MemoryManager* const manager) { return new (manager) XPath2NodeSerializer(manager); } DOMBuilder* XQillaImplementation::createDOMBuilder(const short mode, const XMLCh* const schemaType, MemoryManager* const manager, XMLGrammarPool* const gramPool) { XMLGrammarPool *temp = 0; bool adoptGramPool = false; if(!gramPool) { temp = new (manager) XQillaXMLGrammarPoolImpl(manager); adoptGramPool = true; } else { temp = gramPool; } if(mode == DOMImplementationLS::MODE_ASYNCHRONOUS) throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0); DOMBuilder *tmp = new (manager) XQillaBuilderImpl(0, manager, temp, adoptGramPool); tmp->setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->setFeature(XMLUni::fgXercesCacheGrammarFromParse, true); return tmp; } DOMInputSource* XQillaImplementation::createDOMInputSource() { return domImpl->createDOMInputSource(); } #endif DOMImplementation* XQillaImplementation::getDOMImplementation(const XMLCh* features) const { DOMImplementation* impl = XQillaImplementation::getDOMImplementationImpl(); XMLStringTokenizer tokenizer(features); const XMLCh* feature = 0; while (feature || tokenizer.hasMoreTokens()) { if (!feature) feature = tokenizer.nextToken(); const XMLCh* version = 0; const XMLCh* token = tokenizer.nextToken(); if (token && XMLString::isDigit(token[0])) version = token; if (!impl->hasFeature(feature, version)) return 0; if (!version) feature = token; } return impl; } #if _XERCES_VERSION >= 30000 DOMImplementationList *XQillaImplementation::getDOMImplementationList(const XMLCh* features) const { DOMImplementationListImpl* list = new DOMImplementationListImpl; DOMImplementation* myImpl=getDOMImplementation(features); if(myImpl) list->add(myImpl); return list; } #endif DOMDocumentType *XQillaImplementation::createDocumentType(const XMLCh *qualifiedName, const XMLCh * publicId, const XMLCh *systemId) { return domImpl->createDocumentType(qualifiedName, publicId, systemId); } #if _XERCES_VERSION >= 30000 void* XQillaImplementation::getFeature(const XMLCh* feature, const XMLCh* version) const { return domImpl->getFeature(feature, version); } #else DOMImplementation* XQillaImplementation::getInterface(const XMLCh* feature) { return domImpl->getInterface(feature); } #endif XQilla-2.3.4/src/dom-api/XPath2NodeSerializer.cpp0000644001725400016040000000377113273140037016436 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XPath2NodeSerializer.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XPath2NodeSerializer::XPath2NodeSerializer(MemoryManager* const manager) : #if _XERCES_VERSION >= 30000 DOMLSSerializerImpl(manager) #else DOMWriterImpl(manager) #endif { } XPath2NodeSerializer::~XPath2NodeSerializer() { // nothing to do } bool XPath2NodeSerializer::customNodeSerialize(const DOMNode* const nodeToWrite, int level) { switch (nodeToWrite->getNodeType ()) { case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { const XMLCh* localName = nodeToWrite->getLocalName(); const XMLCh* namespaceURI = nodeToWrite->getNamespaceURI(); *fFormatter << XMLFormatter::NoEscapes << chOpenSquare << localName << chEqual << chDoubleQuote << namespaceURI << chDoubleQuote << chCloseSquare; return true; break; } default: { return false; break; } } } XQilla-2.3.4/src/config/0000755001725400016040000000000013273141207011753 500000000000000XQilla-2.3.4/src/config/xqilla_config.h0000644001725400016040000000567413273140037014677 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_CONFIG_H #define _XQILLA_CONFIG_H #if defined(_MSC_VER) #define WIN32_LEAN_AND_MEAN #include // Warning 4064: switch statement contains 'default' but no 'case' labels // // Warning 4251: We have a lot of std::vector objects inside exported classes, and VC++ complains about it // "class 'std::vector >' needs to have dll-interface to be used by clients of class 'YYYY'" // // Warning 4786: "identifier was truncated to '255' characters in the browser information" // // Warning 4101: "unreferenced local variable" // // Warning 4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) // // Warning 4996 is deprecated/unsafe methods from Visual Studio 2005 onwards // // Warning 4786 is a warning that debug info was truncated to 255 chars // this happens in VC6 on large STL template classes. #pragma warning(disable: 4065 4251 4786 4101 4290 4996 4786) #endif #if !defined(HAVE_CONFIG_H) /* Define if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ /* Intel & Alpha architechtures are small endian */ #undef WORDS_BIGENDIAN /* Define to 1 if the FAXPP library is present. */ #undef HAVE_FAXPP /* Define to 1 if the HTML Tidy library is present. */ #undef HAVE_LIBTIDY /* Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method. */ #undef HAVE_ALLMATCHES /* Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method. */ #undef HAVE_GETCONTENTTYPE /* C code should not care about Xerces-C++ facilities. */ #ifdef __cplusplus #include #if _XERCES_VERSION >= 30000 #define HAVE_ALLMATCHES 1 #define HAVE_GETCONTENTTYPE 1 #endif #endif #else #include "xqilla_config_unix.h" #endif /* C code should not care about Xerces-C++ facilities. */ #ifdef __cplusplus #include #include #if _XERCES_VERSION >= 30000 typedef XMLSize_t XercesSizeUint; typedef XMLFilePos XercesFilePos; typedef XMLFileLoc XercesFileLoc; #else typedef unsigned int XercesSizeUint; typedef unsigned int XercesFilePos; typedef XMLSSize_t XercesFileLoc; #endif #endif #endif XQilla-2.3.4/src/config/xqilla_config_unix.h.in0000644001725400016040000001247013273140037016337 00000000000000/* src/config/xqilla_config_unix.h.in. Generated from configure.in by autoheader. */ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if you want a debugging version. */ #undef DEBUG /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM /* Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method. */ #undef HAVE_ALLMATCHES /* 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 header file. */ #undef HAVE_DLFCN_H /* Define to 1 if the FAXPP library is present. */ #undef HAVE_FAXPP /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Define to 1 if you have the `ftime' function. */ #undef HAVE_FTIME /* Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method. */ #undef HAVE_GETCONTENTTYPE /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `nsl' library (-lnsl). */ #undef HAVE_LIBNSL /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `socket' library (-lsocket). */ #undef HAVE_LIBSOCKET /* Define to 1 if the HTML Tidy library is present. */ #undef HAVE_LIBTIDY /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if the system has the type `ptrdiff_t'. */ #undef HAVE_PTRDIFF_T /* Define to 1 if building on QNX. */ #undef HAVE_QNX /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* 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 `strstr' function. */ #undef HAVE_STRSTR /* 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_TIMEB_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the `tzset' function. */ #undef HAVE_TZSET /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* 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 /* 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 /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #undef YYTEXT_POINTER /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* 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 XQilla-2.3.4/src/exceptions/0000755001725400016040000000000013273141207012667 500000000000000XQilla-2.3.4/src/exceptions/XQException.cpp0000644001725400016040000000740413273140037015527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include // This is only for Windows, to force export of // symbols for the two exceptions -- they are not used // elsewhere within XQilla at this time #include #include void __exceptionDummy() { try { // do something that won't be optimized away ::strcmp("a","b"); } catch (QueryTimeoutException &qte) {} catch (QueryInterruptedException &qie) {} } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQException::XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine) : type_(XMLString::transcode("XQException")), error_(XMLString::replicate(reason)), cppFunction_(XMLString::transcode("XQuery")), cppFile_(cppFile), cppLine_(cppLine), xqLine_(line), xqColumn_(column), xqFile_(XMLString::replicate(file)) { } XQException::XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine) : type_(XMLString::replicate(type)), error_(XMLString::replicate(reason)), cppFunction_(XMLString::replicate(functionName)), cppFile_(cppFile), cppLine_(cppLine), xqLine_(0), xqColumn_(0), xqFile_(0) { if(info != 0) setXQueryPosition(info); } XQException::XQException(const XQException &o) : type_(XMLString::replicate(o.type_)), error_(XMLString::replicate(o.error_)), cppFunction_(XMLString::replicate(o.cppFunction_)), cppFile_(o.cppFile_), cppLine_(o.cppLine_), xqLine_(o.xqLine_), xqColumn_(o.xqColumn_), xqFile_(XMLString::replicate(o.xqFile_)) { } XQException::~XQException() { XMLString::release(&type_); XMLString::release(&error_); XMLString::release(&cppFunction_); XMLString::release(&xqFile_); } void XQException::setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column) { XMLString::release(&xqFile_); xqFile_ = XMLString::replicate(file); xqLine_ = line; xqColumn_ = column; } void XQException::setXQueryPosition(const LocationInfo *info) { XMLString::release(&xqFile_); xqFile_ = XMLString::replicate(info->getFile()); xqLine_ = info->getLine(); xqColumn_ = info->getColumn(); } void XQException::printDebug(const XMLCh* const context) const { std::cerr << std::endl; std::cerr << "===================" << std::endl; std::cerr << UTF8(context) << std::endl << std::endl; std::cerr << "Type: " << UTF8(type_) << std::endl; std::cerr << "Reason: " << UTF8(error_) << std::endl; std::cerr << "XQuery Location: " << UTF8(xqFile_) << ":" << xqLine_ << ":" << xqColumn_ << std::endl; std::cerr << "C++ Location: " << UTF8(cppFunction_) << ", " << cppFile_ << ":" << cppLine_ << std::endl; std::cerr << "===================" << std::endl; } XQilla-2.3.4/src/exceptions/XQillaException.cpp0000644001725400016040000000633513273140037016373 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include bool XQillaException::_debug = false; XERCES_CPP_NAMESPACE_USE; #if _XERCES_VERSION >= 30000 XQillaException::XQillaException(short code, const XMLCh* message) : DOMXPathException(code) { if(msg) fMemoryManager->deallocate((void*)msg); msg = XMLString::replicate(message, fMemoryManager); } XQillaException::XQillaException(const XQException &ex) : DOMXPathException(INVALID_EXPRESSION_ERR) { XMLBuffer buffer(1023); buffer.append(ex.getError()); if(ex.getXQueryLine() != 0) { buffer.append(' '); buffer.append('a'); buffer.append('t'); buffer.append(' '); buffer.append(ex.getXQueryFile()); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryLine(), buffer); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryColumn(), buffer); } if(msg) fMemoryManager->deallocate((void*)msg); msg = XMLString::replicate(buffer.getRawBuffer(), fMemoryManager); } XQillaException::XQillaException(const XQillaException &other) : DOMXPathException(other) { } XQillaException::~XQillaException() { } #else XQillaException::XQillaException(short code, const XMLCh* message) : DOMXPathException(code, XMLString::replicate(message)) { } XQillaException::XQillaException(const XQException &ex) : DOMXPathException(INVALID_EXPRESSION_ERR, 0) { XMLBuffer buffer(1023); buffer.append(ex.getError()); if(ex.getXQueryLine() != 0) { buffer.append(' '); buffer.append('a'); buffer.append('t'); buffer.append(' '); buffer.append(ex.getXQueryFile()); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryLine(), buffer); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryColumn(), buffer); } msg = XMLString::replicate(buffer.getRawBuffer()); } XQillaException::XQillaException(const XQillaException &other) : DOMXPathException(other.code, XMLString::replicate(other.msg)) { } XQillaException::~XQillaException() { XMLString::release(const_cast(&msg)); } #endif void XQillaException::setDebug(bool flag) { _debug = flag; } bool XQillaException::getDebug(void) { return _debug; } DOMXPathException::ExceptionCode XQillaException::getCode(void) const { return (DOMXPathException::ExceptionCode)code; } const XMLCh* XQillaException::getString(void) const { return msg; } XQilla-2.3.4/src/exceptions/MiscException.hpp0000644001725400016040000000252313273140037016074 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2ErrorException - handles cases in the specification where the `error value' is returned */ #ifndef _MISCEXCEPTION_HPP #define _MISCEXCEPTION_HPP #include #include #include /** exception class for miscellaneous errors */ class XQILLA_API MiscException : public XQException { public: MiscException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("MiscException"), functionName, reason, info, file, line) {}; }; #endif // _MISCEXCEPTION_HPP XQilla-2.3.4/src/exceptions/InvalidLexicalSpaceException.hpp0000644001725400016040000000257413273140037021053 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Invalid Lexical Space Exception: thrown when a value is not in the appropriate lexical space */ #ifndef _INVALIDLEXICALSPACEEXCEPTION_HPP #define _INVALIDLEXICALSPACEEXCEPTION_HPP #include #include #include class XQILLA_API InvalidLexicalSpaceException : public XQException { public: InvalidLexicalSpaceException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("InvalidLexicalSpaceException"), functionName, reason, info, file, line) {}; }; #endif // _INVALIDLEXICALSPACEEXCEPTION_HPP XQilla-2.3.4/src/mapm/0000755001725400016040000000000013273141207011440 500000000000000XQilla-2.3.4/src/mapm/mapm_mt.cpp0000644001725400016040000004017413232476424013533 00000000000000 /* * M_APM - mapm_mt.c * * Copyright (C) 2002 Martin Pfingstl (Martin.Pfingstl@epost.de) * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed by * using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * XQilla project on 2005/11/03, 2007/24/04 * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.9.5 */ /* * $Id$ * * This file contains all wrapper functions for the library * using semaphores * * $Log$ * Revision 1.4 2008/01/14 14:46:29 jpcs * Fixed the licence in a MAPM file that had been missed. * * Revision 1.3 2007/04/24 13:12:59 jpcs * Converted common NodeTest objects that use an ItemType object to NodeTest * objects without an ItemType object. This simplifies comparing different * NodeTest objects, and uses a more efficient implementation. * * Exposed methods on XQCastAs to perform the cast specified to an * AnyAtomicType and a string. * * Modified MAPM so that some of it's common algorithms are thread safe, and * therefore reduced the use of the mutex to guard the library. The same MAPM * object should not now be used from multiple threads at the same time - * which means that the built-in MAPM constants should be avoided. * * Revision 1.2 2005/11/03 17:04:24 jpcs * Merged XQEngine.hpp and Pathan.hpp into XQillaExport.hpp. Renamed all * things Pathan to XQilla. * * Revision 1.1 2005/11/01 18:04:13 jpcs * Initial check in. * * Revision 1.2 2004/08/18 19:05:38 jpcs * Merged in changes from DSL xqilla. * * Revision 1.1 2004/07/21 09:23:01 jpcs * Initial check in of the Parthenon backup of XQilla. * * Revision 1.4 2004/07/08 15:24:43 swhite * Moved more headers into the include directory. Still a few to go. * * Revision 1.3 2004/06/30 13:49:08 swhite #include "../config/xqilla_config.h" * Moved the 'extern "C"' declaration so that #include "foo.hpp" is no longer inside it, as some versions of GCC object to this (quite rightly as far as I can see). * * Revision 1.2 2004/06/04 14:41:04 jpcs * Split the context into two parts, the StaticContext and the DynamicContext. * Created a proxy context, that implements the DynamicContext from scratch, * and forwards the calls to the StaticContext to a reference to a * StaticContext. * * Created VariableTypeStore, which is part of the StaticContext, and holds * the type of the variable, rather than the value of it. This is done by * factoring much of the common code from VarStoreImpl into a templated * class, VariableStoreTemplate. * * Modified the methods in the code to take the correct type of context, as * much as possible. * * Revision 1.1 2003/05/01 12:46:55 alby * - Updated MAPM to version 4.6.1 * - The MAPM class is now thread-safe * * Revision 1.2 2002/11/10 22:42:44 mike * add new integer_pow_nr function * * Revision 1.1 2002/06/13 20:39:09 mike * Initial revision */ #include extern void m_apm_enter(void); extern void m_apm_leave(void); #include #include extern "C" { static XERCES_CPP_NAMESPACE_QUALIFIER XMLMutex* m_apm_semaphore=0; void m_apm_mt_initialize(void) { if(m_apm_semaphore == 0) { m_apm_semaphore = new XERCES_CPP_NAMESPACE_QUALIFIER XMLMutex; } } void m_apm_mt_terminate(void) { delete m_apm_semaphore; m_apm_semaphore = 0; } void m_apm_enter(void) { m_apm_semaphore->lock(); } void m_apm_leave(void) { m_apm_semaphore->unlock(); } /****************************************************************************/ M_APM m_apm_init_mt(void) { M_APM t; // m_apm_enter(); t=m_apm_init(); // m_apm_leave(); return(t); } /****************************************************************************/ void m_apm_free_mt(M_APM t) { // m_apm_enter(); m_apm_free(t); // m_apm_leave(); } /****************************************************************************/ void m_apm_free_all_mem_mt(void) { m_apm_enter(); m_apm_free_all_mem(); m_apm_leave(); } /****************************************************************************/ void m_apm_trim_mem_usage_mt(void) { m_apm_enter(); m_apm_trim_mem_usage(); m_apm_leave(); } /****************************************************************************/ void m_apm_set_string_mt(M_APM ctmp, char *s_in) { // m_apm_enter(); m_apm_set_string(ctmp,s_in); // m_apm_leave(); } /****************************************************************************/ void m_apm_set_double_mt(M_APM atmp,double dd) { // m_apm_enter(); m_apm_set_double(atmp,dd); // m_apm_leave(); } /****************************************************************************/ void m_apm_set_long_mt(M_APM atmp, long mm) { // m_apm_enter(); m_apm_set_long(atmp,mm); // m_apm_leave(); } /****************************************************************************/ void m_apm_to_string_mt(char *s, int places, M_APM mtmp) { // m_apm_enter(); m_apm_to_string(s,places,mtmp); // m_apm_leave(); } /****************************************************************************/ void m_apm_add_mt(M_APM r, const M_APM a, const M_APM b) { // m_apm_enter(); m_apm_add(r,a,b); // m_apm_leave(); } /****************************************************************************/ void m_apm_subtract_mt(M_APM r, const M_APM a, const M_APM b) { // m_apm_enter(); m_apm_subtract(r,a,b); // m_apm_leave(); } /****************************************************************************/ void m_apm_absolute_value_mt(M_APM d, M_APM s) { // m_apm_enter(); m_apm_absolute_value(d,s); // m_apm_leave(); } /****************************************************************************/ void m_apm_negate_mt(M_APM d, M_APM s) { // m_apm_enter(); m_apm_negate(d,s); // m_apm_leave(); } /****************************************************************************/ int m_apm_compare_mt(M_APM ltmp, M_APM rtmp) { int ret; // m_apm_enter(); ret=m_apm_compare(ltmp,rtmp); // m_apm_leave(); return(ret); } /****************************************************************************/ void m_apm_multiply_mt(M_APM r, M_APM a, M_APM b) { m_apm_enter(); m_apm_multiply(r,a,b); m_apm_leave(); } /****************************************************************************/ void m_apm_divide_mt(M_APM rr, int places, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_divide(rr,places,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_cpp_precision_mt(int digits) { m_apm_enter(); m_apm_cpp_precision(digits); m_apm_leave(); } /****************************************************************************/ void m_apm_to_fixpt_string_mt(char *ss, int dplaces, M_APM mtmp) { m_apm_enter(); m_apm_to_fixpt_string(ss,dplaces,mtmp); m_apm_leave(); } /****************************************************************************/ void m_apm_round_mt(M_APM btmp, int places, M_APM atmp) { // m_apm_enter(); m_apm_round(btmp,places,atmp); // m_apm_leave(); } /****************************************************************************/ void m_apm_sqrt_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_sqrt(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_sin_mt(M_APM r, int places, M_APM a) { m_apm_enter(); m_apm_sin(r,places,a); m_apm_leave(); } /****************************************************************************/ void m_apm_arccos_mt(M_APM r, int places, M_APM x) { m_apm_enter(); m_apm_arccos(r,places,x); m_apm_leave(); } /****************************************************************************/ void m_apm_arctan2_mt(M_APM rr, int places, M_APM yy, M_APM xx) { m_apm_enter(); m_apm_arctan2(rr,places,yy,xx); m_apm_leave(); } /****************************************************************************/ void m_apm_copy_mt(M_APM dest, M_APM src) { // m_apm_enter(); m_apm_copy(dest,src); // m_apm_leave(); } /****************************************************************************/ void m_apm_reciprocal_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_reciprocal(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_to_fixpt_stringex_mt(char *s, int dplaces, M_APM atmp, char ch_radix, char ch_sep, int count_sep) { m_apm_enter(); m_apm_to_fixpt_stringex(s,dplaces,atmp,ch_radix,ch_sep,count_sep); m_apm_leave(); } /****************************************************************************/ char *m_apm_to_fixpt_stringexp_mt(int dplaces, M_APM atmp, char ch_radx, char ch_sep, int ct_sep) { char *s; m_apm_enter(); s=m_apm_to_fixpt_stringexp(dplaces,atmp,ch_radx,ch_sep,ct_sep); m_apm_leave(); return(s); } /****************************************************************************/ void m_apm_to_integer_string_mt(char *s, M_APM mtmp) { m_apm_enter(); m_apm_to_integer_string(s,mtmp); m_apm_leave(); } /****************************************************************************/ int m_apm_sign_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_sign(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_exponent_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_exponent(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_significant_digits_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_significant_digits(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_integer_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_integer(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_even_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_even(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_odd_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_odd(m); // m_apm_leave(); return(i); } /****************************************************************************/ void m_apm_gcd_mt(M_APM r, M_APM u, M_APM v) { m_apm_enter(); m_apm_gcd(r,u,v); m_apm_leave(); } /****************************************************************************/ void m_apm_lcm_mt(M_APM r, M_APM u, M_APM v) { m_apm_enter(); m_apm_lcm(r,u,v); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_divide_mt(M_APM rr, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_integer_divide(rr,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_div_rem_mt(M_APM qq, M_APM rr, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_integer_div_rem(qq,rr,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_factorial_mt(M_APM moutput, M_APM minput) { m_apm_enter(); m_apm_factorial(moutput,minput); m_apm_leave(); } /****************************************************************************/ void m_apm_floor_mt(M_APM bb, M_APM aa) { m_apm_enter(); m_apm_floor(bb,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_ceil_mt(M_APM bb, M_APM aa) { m_apm_enter(); m_apm_ceil(bb,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_get_random_mt(M_APM m) { m_apm_enter(); m_apm_get_random(m); m_apm_leave(); } /****************************************************************************/ void m_apm_set_random_seed_mt(char *s) { m_apm_enter(); m_apm_set_random_seed(s); m_apm_leave(); } /****************************************************************************/ void m_apm_cbrt_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cbrt(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_log_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_log(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_log10_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_log10(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_exp_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_exp(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_pow_mt(M_APM rr, int places, M_APM xx, M_APM yy) { m_apm_enter(); m_apm_pow(rr,places,xx,yy); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_pow_mt(M_APM rr, int places, M_APM aa, int mexp) { m_apm_enter(); m_apm_integer_pow(rr,places,aa,mexp); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_pow_nr_mt(M_APM rr, M_APM aa, int mexp) { m_apm_enter(); m_apm_integer_pow_nr(rr,aa,mexp); m_apm_leave(); } /****************************************************************************/ void m_apm_sin_cos_mt(M_APM sinv, M_APM cosv, int places, M_APM aa) { m_apm_enter(); m_apm_sin_cos(sinv,cosv,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_cos_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cos(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_tan_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_tan(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arcsin_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arcsin(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arctan_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arctan(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_sinh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_sinh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_cosh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cosh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_tanh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_tanh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arcsinh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arcsinh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arccosh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arccosh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arctanh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arctanh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ } XQilla-2.3.4/src/mapm/mapmasin.c0000644001725400016040000002135113232476424013342 00000000000000 /* * M_APM - mapmasin.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void m_apm_arctan2(M_APM rr, int places, M_APM yy, M_APM xx) { M_APM tmp5, tmp6, tmp7; int ix, iy; iy = yy->m_apm_sign; ix = xx->m_apm_sign; if (ix == 0) /* x == 0 */ { if (iy == 0) /* y == 0 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arctan2\', Both Arguments == 0"); M_set_to_zero(rr); return; } M_check_PI_places(places); m_apm_round(rr, places, MM_lc_HALF_PI); rr->m_apm_sign = iy; return; } if (iy == 0) { if (ix == 1) { M_set_to_zero(rr); } else { M_check_PI_places(places); m_apm_round(rr, places, MM_lc_PI); } return; } /* * the special cases have been handled, now do the real work */ tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); m_apm_divide(tmp6, (places + 4), yy, xx); m_apm_arctan(tmp5, (places + 4), tmp6); if (ix == 1) /* 'x' is positive */ { m_apm_round(rr, places, tmp5); } else /* 'x' is negative */ { M_check_PI_places(places); if (iy == 1) /* 'y' is positive */ { m_apm_add(tmp7, tmp5, MM_lc_PI); m_apm_round(rr, places, tmp7); } else /* 'y' is negative */ { m_apm_subtract(tmp7, tmp5, MM_lc_PI); m_apm_round(rr, places, tmp7); } } M_restore_stack(3); } /****************************************************************************/ /* Calculate arctan using the identity : x arctan (x) == arcsin [ --------------- ] sqrt(1 + x^2) */ void m_apm_arctan(M_APM rr, int places, M_APM xx) { M_APM tmp8, tmp9; if (xx->m_apm_sign == 0) /* input == 0 ?? */ { M_set_to_zero(rr); return; } if (xx->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arctan_near_0(rr, places, xx); return; } tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_multiply(tmp9, xx, xx); m_apm_add(tmp8, tmp9, MM_One); m_apm_sqrt(tmp9, (places + 4), tmp8); m_apm_divide(tmp8, (places + 4), xx, tmp9); m_apm_arcsin(rr, places, tmp8); M_restore_stack(2); } /****************************************************************************/ void m_apm_arcsin(M_APM r, int places, M_APM x) { M_APM tmp0, tmp1, tmp2, tmp3, current_x; int ii, maxiter, maxp, tolerance, local_precision; current_x = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); m_apm_absolute_value(tmp0, x); ii = m_apm_compare(tmp0, MM_One); if (ii == 1) /* |x| > 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arcsin\', |Argument| > 1"); M_set_to_zero(r); M_restore_stack(5); return; } if (ii == 0) /* |x| == 1, arcsin = +/- PI / 2 */ { M_check_PI_places(places); m_apm_round(r, places, MM_lc_HALF_PI); r->m_apm_sign = x->m_apm_sign; M_restore_stack(5); return; } if (m_apm_compare(tmp0, MM_0_85) == 1) /* check if > 0.85 */ { M_cos_to_sin(tmp2, (places + 4), x); m_apm_arccos(r, places, tmp2); r->m_apm_sign = x->m_apm_sign; M_restore_stack(5); return; } if (x->m_apm_sign == 0) /* input == 0 ?? */ { M_set_to_zero(r); M_restore_stack(5); return; } if (x->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arcsin_near_0(r, places, x); M_restore_stack(5); return; } tolerance = -(places + 4); maxp = places + 8 - x->m_apm_exponent; local_precision = 20 - x->m_apm_exponent; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(2) ] */ maxiter = (int)(log((double)(places + 2)) * 1.442695) + 3; if (maxiter < 5) maxiter = 5; M_get_asin_guess(current_x, x); /* Use the following iteration to solve for arc-sin : sin(X) - N X = X - ------------ n+1 cos(X) */ ii = 0; while (TRUE) { M_4x_cos(tmp1, local_precision, current_x); M_cos_to_sin(tmp2, local_precision, tmp1); if (tmp2->m_apm_sign != 0) tmp2->m_apm_sign = current_x->m_apm_sign; m_apm_subtract(tmp3, tmp2, x); m_apm_divide(tmp0, local_precision, tmp3, tmp1); m_apm_subtract(tmp2, current_x, tmp0); m_apm_copy(current_x, tmp2); if (ii != 0) { if (((2 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arcsin\', max iteration count reached"); break; } local_precision *= 2; if (local_precision > maxp) local_precision = maxp; } m_apm_round(r, places, current_x); M_restore_stack(5); } /****************************************************************************/ void m_apm_arccos(M_APM r, int places, M_APM x) { M_APM tmp0, tmp1, tmp2, tmp3, current_x; int ii, maxiter, maxp, tolerance, local_precision; current_x = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); m_apm_absolute_value(tmp0, x); ii = m_apm_compare(tmp0, MM_One); if (ii == 1) /* |x| > 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccos\', |Argument| > 1"); M_set_to_zero(r); M_restore_stack(5); return; } if (ii == 0) /* |x| == 1, arccos = 0, PI */ { if (x->m_apm_sign == 1) { M_set_to_zero(r); } else { M_check_PI_places(places); m_apm_round(r, places, MM_lc_PI); } M_restore_stack(5); return; } if (m_apm_compare(tmp0, MM_0_85) == 1) /* check if > 0.85 */ { M_cos_to_sin(tmp2, (places + 4), x); if (x->m_apm_sign == 1) { m_apm_arcsin(r, places, tmp2); } else { M_check_PI_places(places); m_apm_arcsin(tmp3, (places + 4), tmp2); m_apm_subtract(tmp1, MM_lc_PI, tmp3); m_apm_round(r, places, tmp1); } M_restore_stack(5); return; } if (x->m_apm_sign == 0) /* input == 0 ?? */ { M_check_PI_places(places); m_apm_round(r, places, MM_lc_HALF_PI); M_restore_stack(5); return; } if (x->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arccos_near_0(r, places, x); M_restore_stack(5); return; } tolerance = -(places + 4); maxp = places + 8; local_precision = 18; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(2) ] */ maxiter = (int)(log((double)(places + 2)) * 1.442695) + 3; if (maxiter < 5) maxiter = 5; M_get_acos_guess(current_x, x); /* Use the following iteration to solve for arc-cos : cos(X) - N X = X + ------------ n+1 sin(X) */ ii = 0; while (TRUE) { M_4x_cos(tmp1, local_precision, current_x); M_cos_to_sin(tmp2, local_precision, tmp1); if (tmp2->m_apm_sign != 0) tmp2->m_apm_sign = current_x->m_apm_sign; m_apm_subtract(tmp3, tmp1, x); m_apm_divide(tmp0, local_precision, tmp3, tmp2); m_apm_add(tmp2, current_x, tmp0); m_apm_copy(current_x, tmp2); if (ii != 0) { if (((2 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccos\', max iteration count reached"); break; } local_precision *= 2; if (local_precision > maxp) local_precision = maxp; } m_apm_round(r, places, current_x); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmasn0.c0000644001725400016040000000717213232476424013256 00000000000000 /* * M_APM - mapmasn0.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* Calculate arcsin using the identity : x arcsin (x) == arctan [ --------------- ] sqrt(1 - x^2) */ void M_arcsin_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp5, tmp6; tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); M_cos_to_sin(tmp5, (places + 8), aa); m_apm_divide(tmp6, (places + 8), aa, tmp5); M_arctan_near_0(rr, places, tmp6); M_restore_stack(2); } /****************************************************************************/ /* Calculate arccos using the identity : arccos (x) == PI / 2 - arcsin (x) */ void M_arccos_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); M_check_PI_places(places); M_arcsin_near_0(tmp1, (places + 4), aa); m_apm_subtract(tmp2, MM_lc_HALF_PI, tmp1); m_apm_round(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* calculate arctan (x) with the following series: x^3 x^5 x^7 x^9 arctan (x) == x - --- + --- - --- + --- ... 3 5 7 9 */ void M_arctan_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp0, tmpR, tmp2, tmpS, digit, term; int tolerance, local_precision; long m1; tmp0 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmpR = M_get_stack_var(); tmpS = M_get_stack_var(); term = M_get_stack_var(); digit = M_get_stack_var(); tolerance = aa->m_apm_exponent - places - 4; local_precision = places + 8 - aa->m_apm_exponent; m_apm_copy(term, aa); m_apm_copy(tmpS, aa); m_apm_multiply(tmp0, aa, aa); m_apm_round(tmp2, (local_precision + 8), tmp0); m1 = 1; while (TRUE) { m1 += 2; m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, digit); m_apm_subtract(tmpR, tmpS, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) { m_apm_round(rr, places, tmpR); break; } m1 += 2; m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, digit); m_apm_add(tmpS, tmpR, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) { m_apm_round(rr, places, tmpS); break; } } M_restore_stack(6); /* restore the 6 locals we used here */ } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_add.c0000644001725400016040000001335713232476424013306 00000000000000 /* * M_APM - mapm_add.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_add(M_APM r, M_APM a, M_APM b) { M_APM M_work1, M_work2; int j, carry, sign, aexp, bexp, adigits, bdigits; if (a->m_apm_sign == 0) { m_apm_copy(r,b); return; } if (b->m_apm_sign == 0) { m_apm_copy(r,a); return; } if (a->m_apm_sign == 1 && b->m_apm_sign == -1) { b->m_apm_sign = 1; m_apm_subtract(r,a,b); b->m_apm_sign = -1; return; } if (a->m_apm_sign == -1 && b->m_apm_sign == 1) { a->m_apm_sign = 1; m_apm_subtract(r,b,a); a->m_apm_sign = -1; return; } M_work1 = m_apm_init(); M_work2 = m_apm_init(); sign = a->m_apm_sign; /* signs are the same, result will be same */ aexp = a->m_apm_exponent; bexp = b->m_apm_exponent; m_apm_copy(M_work1, a); m_apm_copy(M_work2, b); /* * scale by at least 1 factor of 10 in case the MSB carrys */ if (aexp == bexp) { M_apm_scale(M_work1, 2); /* shift 2 digits == 1 byte for efficiency */ M_apm_scale(M_work2, 2); } else { if (aexp > bexp) { M_apm_scale(M_work1, 2); M_apm_scale(M_work2, (aexp + 2 - bexp)); } else /* aexp < bexp */ { M_apm_scale(M_work2, 2); M_apm_scale(M_work1, (bexp + 2 - aexp)); } } adigits = M_work1->m_apm_datalength; bdigits = M_work2->m_apm_datalength; if (adigits >= bdigits) { m_apm_copy(r, M_work1); j = (bdigits + 1) >> 1; carry = 0; while (TRUE) { j--; r->m_apm_data[j] += carry + M_work2->m_apm_data[j]; if (r->m_apm_data[j] >= 100) { r->m_apm_data[j] -= 100; carry = 1; } else carry = 0; if (j == 0) break; } } else { m_apm_copy(r, M_work2); j = (adigits + 1) >> 1; carry = 0; while (TRUE) { j--; r->m_apm_data[j] += carry + M_work1->m_apm_data[j]; if (r->m_apm_data[j] >= 100) { r->m_apm_data[j] -= 100; carry = 1; } else carry = 0; if (j == 0) break; } } r->m_apm_sign = sign; M_apm_normalize(r); m_apm_free(M_work1); m_apm_free(M_work2); } /****************************************************************************/ void m_apm_subtract(M_APM r, M_APM a, M_APM b) { M_APM M_work1, M_work2; int itmp, j, flag, icompare, sign, aexp, bexp, borrow, adigits, bdigits; if (b->m_apm_sign == 0) { m_apm_copy(r,a); return; } if (a->m_apm_sign == 0) { m_apm_copy(r,b); r->m_apm_sign = -(r->m_apm_sign); return; } if (a->m_apm_sign == 1 && b->m_apm_sign == -1) { b->m_apm_sign = 1; m_apm_add(r,a,b); b->m_apm_sign = -1; return; } if (a->m_apm_sign == -1 && b->m_apm_sign == 1) { b->m_apm_sign = -1; m_apm_add(r,a,b); b->m_apm_sign = 1; return; } M_work1 = m_apm_init(); M_work2 = m_apm_init(); /* now, the signs are the same */ /* make a positive working copy */ m_apm_absolute_value(M_work1, a); m_apm_absolute_value(M_work2, b); /* are they the same?? if so, the result is zero */ if ((icompare = m_apm_compare(M_work1, M_work2)) == 0) { M_set_to_zero(r); m_apm_free(M_work1); m_apm_free(M_work2); return; } if (icompare == 1) /* |a| > |b| (do A-B) */ { flag = TRUE; sign = a->m_apm_sign; } else /* |b| > |a| (do B-A) */ { flag = FALSE; sign = -(a->m_apm_sign); } aexp = M_work1->m_apm_exponent; bexp = M_work2->m_apm_exponent; if (aexp > bexp) M_apm_scale(M_work2, (aexp - bexp)); if (aexp < bexp) M_apm_scale(M_work1, (bexp - aexp)); adigits = M_work1->m_apm_datalength; bdigits = M_work2->m_apm_datalength; if (adigits > bdigits) M_apm_pad(M_work2, adigits); if (adigits < bdigits) M_apm_pad(M_work1, bdigits); if (flag) /* perform A-B, M_work1 - M_work2 */ { m_apm_copy(r, M_work1); j = (r->m_apm_datalength + 1) >> 1; borrow = 0; while (TRUE) { j--; itmp = (int)r->m_apm_data[j] - (int)M_work2->m_apm_data[j] - borrow; if (itmp >= 0) { r->m_apm_data[j] = (UCHAR)itmp; borrow = 0; } else { r->m_apm_data[j] = (UCHAR)(100 + itmp); borrow = 1; } if (j == 0) break; } } else /* perform B-A, M_work2 - M_work1 */ { m_apm_copy(r, M_work2); j = (r->m_apm_datalength + 1) >> 1; borrow = 0; while (TRUE) { j--; itmp = (int)r->m_apm_data[j] - (int)M_work1->m_apm_data[j] - borrow; if (itmp >= 0) { r->m_apm_data[j] = (UCHAR)itmp; borrow = 0; } else { r->m_apm_data[j] = (UCHAR)(100 + itmp); borrow = 1; } if (j == 0) break; } } r->m_apm_sign = sign; M_apm_normalize(r); m_apm_free(M_work1); m_apm_free(M_work2); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_exp.c0000644001725400016040000001404413232476424013344 00000000000000 /* * M_APM - mapm_exp.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM MM_exp_log2R; static M_APM MM_exp_1024R; static int MM_firsttime1 = TRUE; /****************************************************************************/ void M_free_all_exp() { if (MM_firsttime1 == FALSE) { m_apm_free(MM_exp_log2R); m_apm_free(MM_exp_1024R); MM_firsttime1 = TRUE; } } /****************************************************************************/ void m_apm_exp(M_APM r, int places, M_APM x) { M_APM tmp7, tmp8, tmp9; char outstr[64]; int dplaces, nn, ii; if (MM_firsttime1) { MM_firsttime1 = FALSE; MM_exp_log2R = m_apm_init(); MM_exp_1024R = m_apm_init(); m_apm_set_string(MM_exp_log2R, "1.44269504089"); /* ~ 1 / log(2) */ m_apm_set_string(MM_exp_1024R, "9.765625E-4"); /* 1 / 1024 */ } tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* From David H. Bailey's MPFUN Fortran package : exp (t) = (1 + r + r^2 / 2! + r^3 / 3! + r^4 / 4! ...) ^ q * 2 ^ n where q = 256, r = t' / q, t' = t - n Log(2) and where n is chosen so that -0.5 Log(2) < t' <= 0.5 Log(2). Reducing t mod Log(2) and dividing by 256 insures that -0.001 < r <= 0.001, which accelerates convergence in the above series. we won't let n == 1 or -1. if n computes out to be 1, we will set n = 0. this is so we can still calculate log(2). if we let n = 1, then we need log(2) in order to compute log(2), which is no good ... if the new 'n' == 0, we will then use q = 1024 instead of 256 so the series still converges as fast. since the value of log(2) is critical to this function, log, and log10, we will keep our own local copy of it. if we need more precision in our log(2), we will re-compute it on the fly to get the desired precision. */ /* find 'n' and convert it to a normal C int */ /* we just need an approx 1/log(2) for this calculation */ m_apm_multiply(tmp8, x, MM_exp_log2R); /* round to the nearest int */ if (x->m_apm_sign >= 0) m_apm_add(tmp9, tmp8, MM_0_5); else m_apm_subtract(tmp9, tmp8, MM_0_5); m_apm_to_integer_string(outstr, tmp9); nn = atoi(outstr); if (abs(nn) == 1) nn = 0; if (nn == 0) { ii = 10; dplaces = places + 8; m_apm_multiply(tmp9, x, MM_exp_1024R); } else { ii = 8; dplaces = places + 6; /* check to make sure our log(2) is accurate enough */ M_check_log_places(dplaces); m_apm_set_long(tmp7, (long)nn); m_apm_multiply(tmp8, tmp7, MM_lc_log2); m_apm_subtract(tmp7, x, tmp8); /* * guarantee that |tmp7| < 1. * the normal case will break out immediately. * this is just here to plan for the future. * when sizeof(int) gets real big, it may * be possible for the 'nn' calculation from * above to not be optimized due to the inexact * constant used for 'MM_exp_log2R'. */ while (TRUE) { if (tmp7->m_apm_exponent <= 0) break; if (tmp7->m_apm_sign == 0) break; if (tmp7->m_apm_sign == 1) { nn++; m_apm_subtract(tmp8, tmp7, MM_lc_log2); m_apm_copy(tmp7, tmp8); } else { nn--; m_apm_add(tmp8, tmp7, MM_lc_log2); m_apm_copy(tmp7, tmp8); } } m_apm_multiply(tmp9, tmp7, MM_5x_256R); } /* perform the series expansion ... */ M_raw_exp(tmp8, dplaces, tmp9); /* * raise result to the 256 OR 1024 power (q = 256 OR 1024) * * note : x ^ 256 == (((x ^ 2) ^ 2) ^ 2) ... 8 times * : x ^ 1024 == (((x ^ 2) ^ 2) ^ 2) ... 10 times */ while (--ii >= 0) { m_apm_multiply(tmp9, tmp8, tmp8); m_apm_round(tmp8, dplaces, tmp9); } /* now compute 2 ^ N */ m_apm_integer_pow(tmp7, dplaces, MM_Two, nn); m_apm_multiply(tmp9, tmp7, tmp8); m_apm_round(r, places, tmp9); M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ /* calculate the exponential function using the following series : x^2 x^3 x^4 x^5 exp(x) == 1 + x + --- + --- + --- + --- ... 2! 3! 4! 5! */ void M_raw_exp(M_APM rr, int places, M_APM xx) { M_APM tmp0, digit, term; int tolerance, local_precision, prev_exp; long m1; tmp0 = M_get_stack_var(); term = M_get_stack_var(); digit = M_get_stack_var(); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m_apm_add(rr, MM_One, xx); m_apm_copy(term, xx); m1 = 2L; while (TRUE) { m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, xx); m_apm_divide(term, local_precision, tmp0, digit); m_apm_add(tmp0, rr, term); m_apm_copy(rr, tmp0); if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 2L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1++; } M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmsqrt.c0000644001725400016040000000670313232476424013405 00000000000000 /* * M_APM - mapmsqrt.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_sqrt(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp7, tmp8, tmp9; int ii, bflag, nexp, tolerance, dplaces; if (aa->m_apm_sign <= 0) { if (aa->m_apm_sign == -1) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_sqrt\', Negative argument"); } M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(tmpN, aa); nexp = 0; /* normalize the input number (make the exponent near 0) so the 'guess' function will not over/under flow on large magnitude exponents. */ if (aa->m_apm_exponent > 2) { nexp = aa->m_apm_exponent / 2; tmpN->m_apm_exponent -= 2 * nexp; } if (aa->m_apm_exponent < -2) { nexp = aa->m_apm_exponent / 2 - 1; tmpN->m_apm_exponent -= 2 * nexp; } M_get_sqrt_guess(guess, tmpN); /* actually gets 1/sqrt guess */ tolerance = places + 4; dplaces = places + 16; bflag = FALSE; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate 1 / sqrt(N) : X = 0.5 * X * [ 3 - N * X^2 ] n+1 */ ii = 0; while (TRUE) { m_apm_multiply(tmp9, tmpN, guess); m_apm_multiply(tmp8, tmp9, guess); m_apm_round(tmp7, dplaces, tmp8); m_apm_subtract(tmp9, MM_Three, tmp7); m_apm_multiply(tmp8, tmp9, guess); m_apm_multiply(tmp9, tmp8, MM_0_5); if (bflag) break; m_apm_round(guess, dplaces, tmp9); /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp7, guess, last_x); if (tmp7->m_apm_sign == 0) break; /* * if we are within a factor of 4 on the error term, * we will be accurate enough after the *next* iteration * is complete. (note that the sign of the exponent on * the error term will be a negative number). */ if ((-4 * tmp7->m_apm_exponent) > tolerance) bflag = TRUE; } m_apm_copy(last_x, guess); ii++; } /* * multiply by the starting number to get the final * sqrt and then adjust the exponent since we found * the sqrt of the normalized number. */ m_apm_multiply(tmp8, tmp9, tmpN); m_apm_round(rr, places, tmp8); rr->m_apm_exponent += nexp; M_restore_stack(6); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmgues.c0000644001725400016040000000777313273140037013360 00000000000000 /* * M_APM - mapmgues.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03 and 2015/12/04. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void M_get_sqrt_guess(M_APM r, M_APM a) { /* sqrt algorithm actually finds 1/sqrt */ m_apm_set_double(r, (1.0 / sqrt(m_apm_get_double(a)))); } /****************************************************************************/ void M_get_cbrt_guess(M_APM r, M_APM a) { m_apm_set_double(r, exp(log(m_apm_get_double(a)) / 3.0)); } /****************************************************************************/ /* * for log, asin, and acos we induce an error of 10 ^ -5. * this enables the iterative routine to be more efficient * by knowing exactly how accurate the initial guess is. * * but the real reason ... this also prevents some corner * conditions where the iterative functions may terminate too soon. */ void M_get_log_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * log(m_apm_get_double(a)))); } /****************************************************************************/ /* * the implementation of the asin & acos functions * guarantee that 'a' is always < 0.85, so it is * safe to multiply by a number > 1 */ void M_get_asin_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * asin(m_apm_get_double(a)))); } /****************************************************************************/ void M_get_acos_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * acos(m_apm_get_double(a)))); } /****************************************************************************/ /* convert a C 'double' into an M_APM value. */ void m_apm_set_double(M_APM atmp, double dd) { char *cp, *p, *ps, buf[64]; if (dd == 0.0) /* special case for 0 exactly */ m_apm_set_string(atmp, "0"); else { sprintf(buf,"%.14E",dd); cp = strstr(buf, "E"); if (atoi(cp + sizeof(char)) == 0) *cp = '\0'; p = cp; while (TRUE) { p--; if (*p == '0' || *p == '.' || *p == ',') *p = ' '; else break; } ps = buf; p = buf; while (TRUE) { if ((*p = *ps) == '\0') break; if (*ps++ != ' ') p++; } m_apm_set_string(atmp, buf); } } /****************************************************************************/ /* convert a M_APM value into a C 'double' */ double m_apm_get_double(M_APM atmp) { UCHAR numdiv, numrem; double result = 0; int index=0; int max_i = (atmp->m_apm_datalength + 1) >> 1; if(max_i > ((17 + 1) >> 1)) { // We only need to deal with the top 17 digits, by which point we've // maxed out the double's mantissa. max_i = ((17 + 1) >> 1); } for(; index < max_i; ++index) { M_get_div_rem_10((int)atmp->m_apm_data[index], &numdiv, &numrem); result = result * 100 + (double)numdiv * 10 + numrem; } result *= pow(10, atmp->m_apm_exponent - (max_i << 1)); if(atmp->m_apm_sign == -1) result *= -1; return result; } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmrsin.c0000644001725400016040000000764313232476424013373 00000000000000 /* * M_APM - mapmrsin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* x^3 x^5 x^7 x^9 sin(x) == x - --- + --- - --- + --- ... 3! 5! 7! 9! */ void M_raw_sin(M_APM rr, int places, M_APM xx) { M_APM sum, term, tmp7, tmp8, tmp9; int tolerance, flag, local_precision, prev_exp; long m1, m2; sum = M_get_stack_var(); term = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(sum, xx); m_apm_copy(term, xx); m_apm_multiply(tmp8, xx, xx); m_apm_round(tmp9, (places + 6), tmp8); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m1 = 2L; flag = 0; while (TRUE) { m2 = m1 * (m1 + 1); m_apm_set_long(tmp7, m2); m_apm_multiply(tmp8, term, tmp9); m_apm_divide(term, local_precision, tmp8, tmp7); if (flag == 0) { m_apm_subtract(tmp7, sum, term); m_apm_copy(sum, tmp7); } else { m_apm_add(tmp7, sum, term); m_apm_copy(sum, tmp7); } if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 2L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1 += 2; flag = 1 - flag; } m_apm_round(rr, places, sum); M_restore_stack(5); } /****************************************************************************/ /* x^2 x^4 x^6 x^8 cos(x) == 1 - --- + --- - --- + --- ... 2! 4! 6! 8! */ void M_raw_cos(M_APM rr, int places, M_APM xx) { M_APM sum, term, tmp7, tmp8, tmp9; int tolerance, flag, local_precision, prev_exp; long m1, m2; sum = M_get_stack_var(); term = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(sum, MM_One); m_apm_copy(term, MM_One); m_apm_multiply(tmp8, xx, xx); m_apm_round(tmp9, (places + 6), tmp8); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m1 = 1L; flag = 0; while (TRUE) { m2 = m1 * (m1 + 1); m_apm_set_long(tmp7, m2); m_apm_multiply(tmp8, term, tmp9); m_apm_divide(term, local_precision, tmp8, tmp7); if (flag == 0) { m_apm_subtract(tmp7, sum, term); m_apm_copy(sum, tmp7); } else { m_apm_add(tmp7, sum, term); m_apm_copy(sum, tmp7); } if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 1L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1 += 2; flag = 1 - flag; } m_apm_round(rr, places, sum); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_cpi.c0000644001725400016040000000753113232476424013326 00000000000000 /* * M_APM - mapm_cpi.c * * Copyright (C) 2001 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * check if our local copy of PI is precise enough * for our purpose. if not, calculate PI so it's * as precise as desired, accurate to 'places' decimal * places. */ void M_check_PI_places(int places) { int dplaces; dplaces = places + 2; if (dplaces > MM_lc_PI_digits) { MM_lc_PI_digits = dplaces + 2; /* compute PI using the AGM (see right below) */ M_calculate_PI_AGM(MM_lc_PI, (dplaces + 5)); m_apm_multiply(MM_lc_HALF_PI, MM_0_5, MM_lc_PI); m_apm_multiply(MM_lc_2_PI, MM_Two, MM_lc_PI); } } /****************************************************************************/ /* * Calculate PI using the AGM (Arithmetic-Geometric Mean) * * Init : A0 = 1 * B0 = 1 / sqrt(2) * Sum = 1 * * Iterate: n = 1... * * * A = 0.5 * [ A + B ] * n n-1 n-1 * * * B = sqrt [ A * B ] * n n-1 n-1 * * * * C = 0.5 * [ A - B ] * n n-1 n-1 * * * 2 n+1 * Sum = Sum - C * 2 * n * * * At the end when C is 'small enough' : * n * * 2 * PI = 4 * A / Sum * n+1 * * -OR- * * 2 * PI = ( A + B ) / Sum * n n * */ void M_calculate_PI_AGM(M_APM outv, int places) { M_APM tmp1, tmp2, a0, b0, c0, a1, b1, sum, pow_2; int dplaces, nn; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); a0 = M_get_stack_var(); b0 = M_get_stack_var(); c0 = M_get_stack_var(); a1 = M_get_stack_var(); b1 = M_get_stack_var(); sum = M_get_stack_var(); pow_2 = M_get_stack_var(); dplaces = places + 16; m_apm_copy(a0, MM_One); m_apm_copy(sum, MM_One); m_apm_copy(pow_2, MM_Four); m_apm_sqrt(b0, dplaces, MM_0_5); /* sqrt(0.5) */ while (TRUE) { m_apm_add(tmp1, a0, b0); m_apm_multiply(a1, MM_0_5, tmp1); m_apm_multiply(tmp1, a0, b0); m_apm_sqrt(b1, dplaces, tmp1); m_apm_subtract(tmp1, a0, b0); m_apm_multiply(c0, MM_0_5, tmp1); /* * the net 'PI' calculated from this iteration will * be accurate to ~4 X the value of (c0)'s exponent. * this was determined experimentally. */ nn = -4 * c0->m_apm_exponent; m_apm_multiply(tmp1, c0, c0); m_apm_multiply(tmp2, tmp1, pow_2); m_apm_subtract(tmp1, sum, tmp2); m_apm_round(sum, dplaces, tmp1); if (nn >= dplaces) break; m_apm_copy(a0, a1); m_apm_copy(b0, b1); m_apm_multiply(tmp1, pow_2, MM_Two); m_apm_copy(pow_2, tmp1); } m_apm_add(tmp1, a1, b1); m_apm_multiply(tmp2, tmp1, tmp1); m_apm_divide(tmp1, dplaces, tmp2, sum); m_apm_round(outv, places, tmp1); M_restore_stack(9); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmutl2.c0000644001725400016040000001603513273140037013272 00000000000000 /* * M_APM - mapmutl2.c * * Copyright (C) 2002 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ int m_apm_sign(M_APM atmp) { return(atmp->m_apm_sign); } /****************************************************************************/ int m_apm_exponent(M_APM atmp) { if (atmp->m_apm_sign == 0) return(0); else return(atmp->m_apm_exponent - 1); } /****************************************************************************/ int m_apm_significant_digits(M_APM atmp) { return(atmp->m_apm_datalength); } /****************************************************************************/ int m_apm_is_integer(M_APM atmp) { if (atmp->m_apm_sign == 0) return(1); if (atmp->m_apm_exponent >= atmp->m_apm_datalength) return(1); else return(0); } /****************************************************************************/ int m_apm_is_even(M_APM aa) { int ii, jj; if (aa->m_apm_sign == 0) return(1); ii = aa->m_apm_datalength; jj = aa->m_apm_exponent; if (jj < ii) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_is_even\', Non-integer input"); return(0); } if (jj > ii) return(1); ii = ((ii + 1) >> 1) - 1; ii = (int)aa->m_apm_data[ii]; if ((jj & 1) != 0) /* exponent is odd */ ii = ii / 10; if ((ii & 1) == 0) return(1); else return(0); } /****************************************************************************/ int m_apm_is_odd(M_APM bb) { if (m_apm_is_even(bb)) return(0); else return(1); } /****************************************************************************/ void M_set_to_zero(M_APM z) { z->m_apm_datalength = 1; z->m_apm_sign = 0; z->m_apm_exponent = 0; z->m_apm_data[0] = 0; } /****************************************************************************/ void m_apm_negate(M_APM d, M_APM s) { m_apm_copy(d,s); if (d->m_apm_sign != 0) d->m_apm_sign = -(d->m_apm_sign); } /****************************************************************************/ void m_apm_absolute_value(M_APM d, M_APM s) { m_apm_copy(d,s); if (d->m_apm_sign != 0) d->m_apm_sign = 1; } /****************************************************************************/ void m_apm_copy(M_APM dest, M_APM src) { int j; void *vp; j = (src->m_apm_datalength + 1) >> 1; if (j > dest->m_apm_malloclength) { if ((vp = MAPM_REALLOC(dest->m_apm_data, (j + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_copy\', Out of memory"); } dest->m_apm_malloclength = j + 28; dest->m_apm_data = (UCHAR *)vp; } dest->m_apm_datalength = src->m_apm_datalength; dest->m_apm_exponent = src->m_apm_exponent; dest->m_apm_sign = src->m_apm_sign; memcpy(dest->m_apm_data, src->m_apm_data, j); } /****************************************************************************/ int m_apm_compare(M_APM ltmp, M_APM rtmp) { int llen, rlen, lsign, rsign, i, j, lexp, rexp; llen = ltmp->m_apm_datalength; rlen = rtmp->m_apm_datalength; lsign = ltmp->m_apm_sign; rsign = rtmp->m_apm_sign; lexp = ltmp->m_apm_exponent; rexp = rtmp->m_apm_exponent; if (rsign == 0) return(lsign); if (lsign == 0) return(-rsign); if (lsign == -rsign) return(lsign); /* signs are the same, check the exponents */ if (lexp > rexp) goto E1; if (lexp < rexp) goto E2; /* signs and exponents are the same, check the data */ if (llen < rlen) j = (llen + 1) >> 1; else j = (rlen + 1) >> 1; for (i=0; i < j; i++) { if (ltmp->m_apm_data[i] > rtmp->m_apm_data[i]) goto E1; if (ltmp->m_apm_data[i] < rtmp->m_apm_data[i]) goto E2; } if (llen == rlen) return(0); else { if (llen > rlen) goto E1; else goto E2; } E1: if (lsign == 1) return(1); else return(-1); E2: if (lsign == 1) return(-1); else return(1); } /****************************************************************************/ void M_apm_log_error_msg(int ecode, char *message) { fprintf(stderr, "%s\n", message); if (ecode == M_APM_EXIT) exit(100); } /****************************************************************************/ /* * * convert a signed long int to ASCII in base 10 * */ void M_long_2_ascii(char *output, long input) { long t, m; int i, j; char *p, tbuf[64]; m = input; p = output; i = 0; t = 2147000000L; /* something < 2^31 */ if ((m > t) || (m < -t)) /* handle the bigger numbers with 'sprintf'. */ { /* let them worry about wrap-around problems */ sprintf(p, "%ld", m); /* at 'LONG_MIN', etc. */ } else { if (m < 0) /* handle the sign */ { *p++ = '-'; m = -m; } while (TRUE) /* build the digits in reverse order */ { t = m / 10; j = (int)(m - (10 * t)); tbuf[i++] = (char)(j + '0'); m = t; if (t == 0) break; } while (TRUE) /* fill output string in the correct order */ { *p++ = tbuf[--i]; if (i == 0) break; } *p = '\0'; } } /****************************************************************************/ /* * this function will convert a string to lowercase */ char *M_lowercase(char *s) { char *p; p = s; while (TRUE) { if (*p >= 'A' && *p <= 'Z') *p += 'a' - 'A'; if (*p++ == '\0') break; } return(s); } /****************************************************************************/ /* returns char position of first occurence of s2 in s1 or -1 if no match found */ int M_strposition(char *s1, char *s2) { register char ch1, ch2; char *p0, *p1, *p2; int ct; ct = -1; p0 = s1; if (*s2 == '\0') return(-1); while (TRUE) { ct++; p1 = p0; p2 = s2; ch2 = *p2; while (TRUE) /* scan until first char matches */ { if ((ch1 = *p1) == '\0') return(-1); if (ch1 == ch2) break; p1++; ct++; } p2++; /* check remainder of 2 strings */ p1++; p0 = p1; while (TRUE) { if ((ch2 = *p2) == '\0') return(ct); if (*p1 != ch2) break; p1++; p2++; } } } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_div.c0000644001725400016040000001742413232476424013337 00000000000000 /* * M_APM - mapm_div.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM M_div_worka; static M_APM M_div_workb; static M_APM M_div_tmp7; static M_APM M_div_tmp8; static M_APM M_div_tmp9; static int M_div_firsttime = TRUE; /****************************************************************************/ void M_free_all_div() { if (M_div_firsttime == FALSE) { m_apm_free(M_div_worka); m_apm_free(M_div_workb); m_apm_free(M_div_tmp7); m_apm_free(M_div_tmp8); m_apm_free(M_div_tmp9); M_div_firsttime = TRUE; } } /****************************************************************************/ void m_apm_integer_div_rem(M_APM qq, M_APM rr, M_APM aa, M_APM bb) { m_apm_integer_divide(qq, aa, bb); m_apm_multiply(M_div_tmp7, qq, bb); m_apm_subtract(rr, aa, M_div_tmp7); } /****************************************************************************/ void m_apm_integer_divide(M_APM rr, M_APM aa, M_APM bb) { /* * we must use this divide function since the * faster divide function using the reciprocal * will round the result (possibly changing * nnm.999999... --> nn(m+1).0000 which would * invalidate the 'integer_divide' goal). */ M_apm_sdivide(rr, 4, aa, bb); if (rr->m_apm_exponent <= 0) /* result is 0 */ { M_set_to_zero(rr); } else { if (rr->m_apm_datalength > rr->m_apm_exponent) { rr->m_apm_datalength = rr->m_apm_exponent; M_apm_normalize(rr); } } } /****************************************************************************/ void M_apm_sdivide(M_APM r, int places, M_APM a, M_APM b) { int j, k, m, b0, sign, nexp, indexr, icompare, iterations; long trial_numer; void *vp; if (M_div_firsttime) { M_div_firsttime = FALSE; M_div_worka = m_apm_init(); M_div_workb = m_apm_init(); M_div_tmp7 = m_apm_init(); M_div_tmp8 = m_apm_init(); M_div_tmp9 = m_apm_init(); } sign = a->m_apm_sign * b->m_apm_sign; if (sign == 0) /* one number is zero, result is zero */ { if (b->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'M_apm_sdivide\', Divide by 0"); } M_set_to_zero(r); return; } /* * Knuth step D1. Since base = 100, base / 2 = 50. * (also make the working copies positive) */ if (b->m_apm_data[0] >= 50) { m_apm_absolute_value(M_div_worka, a); m_apm_absolute_value(M_div_workb, b); } else /* 'normal' step D1 */ { k = 100 / (b->m_apm_data[0] + 1); m_apm_set_long(M_div_tmp9, (long)k); m_apm_multiply(M_div_worka, M_div_tmp9, a); m_apm_multiply(M_div_workb, M_div_tmp9, b); M_div_worka->m_apm_sign = 1; M_div_workb->m_apm_sign = 1; } /* setup trial denominator for step D3 */ b0 = 100 * (int)M_div_workb->m_apm_data[0]; if (M_div_workb->m_apm_datalength >= 3) b0 += M_div_workb->m_apm_data[1]; nexp = M_div_worka->m_apm_exponent - M_div_workb->m_apm_exponent; if (nexp > 0) iterations = nexp + places + 1; else iterations = places + 1; k = (iterations + 1) >> 1; /* required size of result, in bytes */ if (k > r->m_apm_malloclength) { if ((vp = MAPM_REALLOC(r->m_apm_data, (k + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_sdivide\', Out of memory"); } r->m_apm_malloclength = k + 28; r->m_apm_data = (UCHAR *)vp; } /* clear the exponent in the working copies */ M_div_worka->m_apm_exponent = 0; M_div_workb->m_apm_exponent = 0; /* if numbers are equal, ratio == 1.00000... */ if ((icompare = m_apm_compare(M_div_worka, M_div_workb)) == 0) { iterations = 1; r->m_apm_data[0] = 10; nexp++; } else /* ratio not 1, do the real division */ { if (icompare == 1) /* numerator > denominator */ { nexp++; /* to adjust the final exponent */ M_div_worka->m_apm_exponent += 1; /* multiply numerator by 10 */ } else /* numerator < denominator */ { M_div_worka->m_apm_exponent += 2; /* multiply numerator by 100 */ } indexr = 0; m = 0; while (TRUE) { /* * Knuth step D3. Only use the 3rd -> 6th digits if the number * actually has that many digits. */ trial_numer = 10000L * (long)M_div_worka->m_apm_data[0]; if (M_div_worka->m_apm_datalength >= 5) { trial_numer += 100 * M_div_worka->m_apm_data[1] + M_div_worka->m_apm_data[2]; } else { if (M_div_worka->m_apm_datalength >= 3) trial_numer += 100 * M_div_worka->m_apm_data[1]; } j = (int)(trial_numer / b0); /* * Since the library 'normalizes' all the results, we need * to look at the exponent of the number to decide if we * have a lead in 0n or 00. */ if ((k = 2 - M_div_worka->m_apm_exponent) > 0) { while (TRUE) { j /= 10; if (--k == 0) break; } } if (j == 100) /* qhat == base ?? */ j = 99; /* if so, decrease by 1 */ m_apm_set_long(M_div_tmp8, (long)j); m_apm_multiply(M_div_tmp7, M_div_tmp8, M_div_workb); /* * Compare our q-hat (j) against the desired number. * j is either correct, 1 too large, or 2 too large * per Theorem B on pg 272 of Art of Compter Programming, * Volume 2, 3rd Edition. * * The above statement is only true if using the 2 leading * digits of the numerator and the leading digit of the * denominator. Since we are using the (3) leading digits * of the numerator and the (2) leading digits of the * denominator, we eliminate the case where our q-hat is * 2 too large, (and q-hat being 1 too large is quite remote). */ if (m_apm_compare(M_div_tmp7, M_div_worka) == 1) { j--; m_apm_subtract(M_div_tmp8, M_div_tmp7, M_div_workb); m_apm_copy(M_div_tmp7, M_div_tmp8); } /* * Since we know q-hat is correct, step D6 is unnecessary. * * Store q-hat, step D5. Since D6 is unnecessary, we can * do D5 before D4 and decide if we are done. */ r->m_apm_data[indexr++] = (UCHAR)j; /* j == 'qhat' */ m += 2; if (m >= iterations) break; /* step D4 */ m_apm_subtract(M_div_tmp9, M_div_worka, M_div_tmp7); /* * if the subtraction yields zero, the division is exact * and we are done early. */ if (M_div_tmp9->m_apm_sign == 0) { iterations = m; break; } /* multiply by 100 and re-save */ M_div_tmp9->m_apm_exponent += 2; m_apm_copy(M_div_worka, M_div_tmp9); } } r->m_apm_sign = sign; r->m_apm_exponent = nexp; r->m_apm_datalength = iterations; M_apm_normalize(r); } /****************************************************************************/ XQilla-2.3.4/src/mapm/README0000644001725400016040000005550513232476424012261 00000000000000************************************************************************** MAPM Version 4.6.1 April 12, 2003 Michael C. Ring ringx004@tc.umn.edu Latest release will be available at http://tc.umn.edu/~ringx004 ************************************************************************** * * * Copyright (C) 1999 - 2003 Michael C. Ring * * * * This software is Freeware. * * * * Permission to use, copy, and distribute this software and its * * documentation for any purpose with or without fee is hereby granted, * * provided that the above copyright notice appear in all copies and * * that both that copyright notice and this permission notice appear * * in supporting documentation. * * * * Thission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * * This software is provided "as is" without express or implied warranty. * * ************************************************************************** --------------------------------------- Mike's Arbitrary Precision Math Library --------------------------------------- Mike's Arbitrary Precision Math Library is a set of functions that allow the user to perform math to any level of accuracy that is desired. The inspiration for this library was Lloyd Zusman's similar APM package that was released in ~1988. I borrowed some of his ideas in my implementation, creating a new data type (MAPM) and how the data type was used by the user. However, there were a few things I wanted my library to do that the original library did not : 1) Round a value to any desired precision. This is very handy when multiplying for many iterations. Since multiplication guarantees an exact result, the number of digits will grow without bound. I wanted a way to trim the number of significant digits that were retained. 2) A natural support for floating point values. From most of the other libraries I looked at, they seem to have a preference for integer only type math manipulations. (However, this library will also do integer only math if you desire). And if a library can only do integers, it can't do ... 3) Trig functions and other common C math library functions. This library will perform the following functions to any desired precision level : SQRT, CBRT, SIN, COS, TAN, ARC-SIN, ARC-COS, ARC-TAN, ARC-TAN2, LOG, LOG10, EXP, POW, SINH, COSH, TANH, ARC-SINH, ARC-COSH, ARC-TANH, and also FACTORIAL. The full 'math.h' is not duplicated, though I think these are most of the important ones. My definition of what's important is what I've actually used in a real application. NOTE: MAPM Library History can now be found in 'history.txt' (I really wasn't sure what to call this library. 'Arbitrary Precision Math' is a defacto standard for what this does, but that name was already taken, so I just put an 'M' in front of it ...) ************************************************************************** KNOWN BUGS : None ************************************************************************** IF YOU ARE IN A HURRY ... UNIX: (assumes gcc compiler) run make (build library + 3 executables) run make -f makefile.osx (for MAC OSX) --- OR --- run: mklib (this will create the library, lib_mapm.a) run: mkdemo (this will create 3 executables, 'calc', 'validate', and 'primenum') DOS / Win NT/9x (in a DOS window for NT/9x): see the file 'README.DOS' for instructions. ************************************************************************** calc: This is a command line version of an RPN calculator. If you are familiar with RPN calculators, the use of this program will be quite obvious. The default is 30 decimal places but this can be changed with the '-d' command line option. This is not an interactive program, it just computes an expression from the command line. Run 'calc' with no arguments to get a list of the operators. compute : (345.2 * 87.33) - (11.88 / 3.21E-2) calc 345.2 87.33 x 11.88 3.21E-2 / - result: 29776.22254205607476635514018692 compute PI to 70 decimal places : (6 * arcsin(0.5)) calc -d70 6 .5 as x result : 3.1415926535897932384626433832795028841971693993751058209749445923078164 validate : This program will compare the MAPM math functions to the C standard library functions, like sqrt, sin, exp, etc. This should give the user a good idea that the library is operating correctly. The program will also compute some known quantities to 70 digits of precision, like PI, log(2), etc. There was nothing special about '70' other than that number of digits fit nicely on one line. primenum: This program will generate the first 10 prime numbers starting with the number entered as an argument. Example: primenum 1234567890 will output (actually 1 per line): this took ~5 sec on my PC, a 350MHz PII. 1234567891, 1234567907, 1234567913, 1234567927, 1234567949, 1234567967, 1234567981, 1234568021, 1234568029, 1234568047 ************************************************************************** To use the library, simply include 'm_apm.h' and link your program with the library, lib_mapm.a (unix) or [lib_]mapm.lib (dos). For unix builds, you also may need to specify the math library (-lm) when linking. The reason is some of the MAPM functions use an iterative algorithm. When you use an iterative solution, you have to supply an initial guess. I use the standard math library to generate this initial guess. I debated whether this library should be stand-alone, i.e. generate it's own initial guesses with some algorithm. In the end, I decided using the standard math library would not be a big inconvienence and also it was just too tempting having an immediate 15 digits of precision. When you prime the iterative routines with 15 accurate digits, the MAPM functions converge faster. See the file 'algorithms.used' to see a description of the algorithms I used in the library. Some I derived on my own, others I borrowed from people smarter than me. Version 2 of the library supports a 'fast' multiplication algorithm. The algorithm used is described in the algorithms.used file. A considerable amount of time went into finding fast algorithms for the library. However, some could possibly be even better. If anyone has a more efficient algorithm for any of these functions, I would like to here from you. See the file 'function.ref' to see a description of all the functions in the library and the calling conventions, prototypes, etc. See the file 'struct.ref' which documents how I store the numbers internally in the MAPM data structure. This will not be needed for normal use, but it will be very useful if you need to change/add to the existing library. ************************************************************************** USING MAPM IN A MULTI-THREADED APPLICATION : Note that the default MAPM library is NOT thread safe. MAPM internal data structures could get corrupted if multiple MAPM functions are active at the same time. The user should guarantee that only one thread is performing MAPM functions. This can usually be achieved by a call to the operating system to obtain a 'semaphore', 'mutex', or 'critical code section' so the operating system will guarantee that only one MAPM thread will be active at a time. ************************************************************************** QUICK TEMPLATE FOR NORMAL USE : The MAPM math is done on a new data type called "M_APM". This is actually a pointer to a structure, but the contents of the structure should never be manipulated: all operations on MAPM entities are done through a functional interface. The MAPM routines will automatically allocate enough space in their results to hold the proper number of digits. The caller must initialize all MAPM values before the routines can operate on them (including the values intended to contain results of calculations). Once this initialization is done, the user never needs to worry about resizing the MAPM values, as this is handled inside the MAPM routines and is totally invisible to the user. The result of a MAPM operation cannot be one of the other MAPM operands. If you want this to be the case, you must put the result into a temporary variable and then assign (m_apm_copy) it to the appropriate operand. All of the MAPM math functions begin with m_apm_*. There are some predefined constants for your use. In case it's not obvious, these should never appear as a 'result' parameter in a function call. The following constants are available : (declared in m_apm.h) MM_Zero MM_One MM_Two MM_Three MM_Four MM_Five MM_Ten MM_PI MM_HALF_PI MM_2_PI MM_E MM_LOG_E_BASE_10 MM_LOG_10_BASE_E MM_LOG_2_BASE_E MM_LOG_3_BASE_E The non-integer constants above (PI, log(2), etc) are accurate to 128 decimal places. The file mapmcnst.c contains these constants. I've included 512 digit constants in this file also that are commented out. If you need more than 512 digits, you can simply use the 'calc' program to generate more precise constants (or create more precise constants at run-time in your app). The number of significant digits in the constants should be 6-8 more than the value specified in the #define. Basic plan of attack: (1) get your 'numbers' into M_APM format. (2) do your high precision math. (3) get the M_APM numbers back into a format you can use. -------- (1) -------- #include M_APM area_mapm; /* declare your variables */ M_APM tmp_mapm; M_APM array_mapm[10]; /* can use normal array notation */ M_APM array2d_mapm[10][10]; area_mapm = m_apm_init() /* init your variables */ tmp_mapm = m_apm_init(); for (i=0; i < M; i++) /* must init every element of the array */ array_mapm[i] = m_apm_init(); for (i=0; i < M; i++) for (j=0; j < N; j++) array2d_mapm[i][j] = m_apm_init(); /* * there are 3 ways to convert your number into an M_APM number * (see the file function.ref) * * a) literal string (exponential notation OK) * b) long variable * c) double variable */ m_apm_set_string(tmp_mapm, "5.3286E-7"); m_apm_set_long(array_mapm[6], -872253L); m_apm_set_double(array2d_mapm[3][7], -529.4486711); -------- (2) -------- do your math ... m_apm_add(cc_mapm, aa_mapm, MM_PI); m_apm_divide(bb_mapm, DECIMAL_PLACES, aa_mapm, MM_LOG_2_BASE_E); m_apm_sin(bb_mapm, DECIMAL_PLACES, aa_mapm); whatever ... -------- (3) -------- There are 5 total functions for converting an M_APM number into something useful. (See the file 'function.ref' for full function descriptions) For these 5 functions, M_APM number -> string is the conversion =================== ==== METHOD 1 ==== : floating point values (m_apm_to_string) =================== the format will be in scientific (exponential) notation output string = [-]n.nnnnnE+x or ...E-x where 'n' are digits and the exponent will be always be present, including E+0 it's easy to convert this to a double: double dtmp = atof(out_buffer); =================== ==== METHOD 2 ==== : floating point values (m_apm_to_fixpt_string) =================== (m_apm_to_fixpt_stringex) (m_apm_to_fixpt_stringexp) the format will be in fixed point notation output string = [-]mmm.nnnnnn where 'm' & 'n' are digits. =================== ==== METHOD 3 ==== : integer values (m_apm_to_integer_string) =================== the format will simply be digits with a possible leading '-' sign. output string = [-]nnnnnn where 'n' are digits. it's easy to convert this to a long : long mtmp = atol(out_buffer); ... or an int : int itmp = atoi(out_buffer); Note that if the M_APM number has a fractional portion, the fraction will be truncated and only the integer portion will be output. char out_buffer[1024]; m_apm_to_string(out_buffer, DECIMAL_PLACES, mapm_number); m_apm_to_fixpt_string(out_buffer, DECIMAL_PLACES, mapm_number); m_apm_to_integer_string(out_buffer, mapm_number); ************************************************************************** ********************************************************* **** NOTES on the fixed point formatting functions **** ********************************************************* Assume you have the following code: --> m_apm_set_string(aa_mapm, "2.0E18"); --> m_apm_sqrt(bb_mapm, 40, aa_mapm); --> m_apm_to_string(buffer, 40, bb_mapm); --> fprintf(stdout,"[%s]\n",buffer); --> m_apm_to_fixpt_string(buffer, 40, bb_mapm); --> fprintf(stdout,"[%s]\n",buffer); It is desired to compute the sqrt(2.0E+18) to 40 significant digits. You then want the result output with 40 decimal places. But the output from above is : [1.4142135623730950488016887242096980785697E+9] [1414213562.3730950488016887242096980785697000000000] Why are there 9 '0' in the fixed point formatted string?? The sqrt calculation computed 40 significant digits relative to the number in EXPONENTIAL format. When the number is output in exponential format, the 40 digits are as expected with an exponent of 'E+9'. The same number formatted as fixed point appears to be an error. Remember, we computed 40 significant digits. However, the result has an exponent of '+9'. So, 9 of the digits are needed *before* the decimal point. In our calculation, only 31 digits of precision remain from our original 40. We then asked the fixed point formatting function to format 40 digits. Only 31 are left so 9 zeros are used as pad at the end to fulfill the 40 places asked for. Keep this in mind if you truly desire more accurate results in fixed point formatting and your result contains a large positive exponent. ************************************************************************** MAPM C++ WRAPPER CLASS: Orion Sky Lawlor (olawlor@acm.org) has added a very nice C++ wrapper class to m_apm.h. This C++ class will have no effect if you just use a normal C compiler. The library will operate as before with no user impacts. For now, I recommend compiling the library as 'C'. In order to compile the library as C++, all the function declarations will need to be updated. This may or may not happen in the near future. Since the C++ wrapper class works very nicely as is, there is no pressing need to update the entire library yet. See the file 'cpp_function.ref' to see a description of how to use the MAPM class. To compile and link the C++ demo program: (assuming the library is already built) UNIX: g++ cpp_demo.cpp lib_mapm.a -s -o cpp_demo -lm GCC for DOS: (gxx is the C++ compiler) gxx cpp_demo.cpp lib_mapm.a -s -o cpp_demo.exe -lm Using the C++ wrapper allows you to do things like: // Compute the factorial of the integer n MAPM factorial(MAPM n) { MAPM i; MAPM product = 1; for (i=2; i <= n; i++) product *= i; return product; } The syntax is the same as if you were just writing normal code, but all the computations will be performed with the high precision math library, using the new 'datatype' MAPM. The default precision of the computations is as follows: Addition, subtraction, and multiplication will maintain ALL significant digits. All other operations (divide, sin, etc) will use the following rules: 1) if the operation uses only one input value [y = sin(x)], the result 'y' will be the same precision as 'x', with a minimum of 30 digits if 'x' is less than 30 digits. 2) if the operation uses two input values [z = atan2(y,x)], the result 'z' will be the max digits of 'x' or 'y' with a minimum of 30. The default precision is 30 digits. You can change the precision at any time with the function 'm_apm_cpp_precision'. (See function.ref) ----> m_apm_cpp_precision(80); will result in all operations being accurate to a minimum of 80 significant digits. If any operand contains more than the minimum number of digits, then the result will contain the max number of digits of the operands. NOTE!: Some real life use with the C++ wrapper has revealed a certain tendency for a program to become quite slow after many iterations (like in a for/while loop). After a little debug, the reason became clear. Remember that multiplication will maintain ALL significant digits : 20 digit number x 20 digit number = 40 digits 40 digit number x 40 digit number = 80 digits 80 digit number x 80 digit number = 160 digits etc. So after numerous iterations, the number of significant digits was growing without bound. The easy way to fix the problem is to simply *round* your result after a multiply or some other complex operation. For example: #define MAX_DIGITS 256 p1 = (p0 * sin(b1) * exp(1 + u1)) / sqrt(1 + b1); p1 = p1.round(MAX_DIGITS); If you 'round' as shown here, your program will likely be nearly as fast as a straight 'C' version. NOTE #2! Reference the following code snippet: ... MAPM pi1, pi2; char obuf[256]; m_apm_cpp_precision(62); pi1 = 2 * asin("1"); pi2 = 2 * asin(1.0); pi1.toString(obuf, 60); printf("PI1 = [%s] \n",obuf); pi2.toString(obuf, 60); printf("PI2 = [%s] \n",obuf); ... On my system, the output is : PI1 = [3.141592653589793238462643383279502884197169399375105820974945E+0] PI2 = [3.141592653589790000000000000000000000000000000000000000000000E+0] PI2 only has 15 significant digits! This is due to how the second asin is called. It is called with a 'double' as the argument, hence the compiler will use the default double asin function from the standard library. This is likely not the intent but this would be easy to miss if this was a complex calculation and we didn't know the 'right' answer. In order to force the use of the overloaded MAPM functions, call the MAPM functions with a quoted string as the argument (if the argument is a constant and not a variable). This would also work (though it seems less elegant ...) : MAPM t = 1; pi2 = 2 * asin(t); ----------- If you have any questions or problems with the C++ wrapper, please let me know. I am not very C++ proficient, but I'd still like to know about any problems. Orion Sky Lawlor (olawlor@acm.org) is the one who implemented the MAPM class, so he'll have to resolve any real hardcore problems, if you have any. ************************************************************************** TESTING : Testing the library was interesting. How do I know it's right? Since I test the library against the standard C runtime math library (see below) I have high confidence that the MAPM library is giving correct results. The logic here is the basic algorithms are independent of the number of digits calculated, more digits just takes longer. The MAPM library has been tested in the following environments : Linux i486 / gcc 2.7.2.3, gcc 2.95.2 Linux i686 / gcc 2.91.66, gcc 2.95.2, gcc 2.95.3, gcc 3.0.4 FreeBSD 4.1 / gcc 2.95.1 FreeBSD 5.x / gcc 2.95.2, gcc 2.95.3 HP-UX 9.x /gcc 2.5.8 HP-UX 10.x / gcc 2.95.2 Sun 5.5.1 (output from uname) Sun Solaris 2.6 / gcc 2.95.1 MAC OSX / gcc ? DOS 5.0 using GCC 2.8.1 for DOS DOS 5.0 using GCC 2.95.2 for DOS DOS ??? using Borland Turbo C++ 3.0 WIN NT+SP5 using Borland C++ 5.02 IDE, 5.2 & 5.5 command line. WIN98 using Borland C++ 5.5 command line. WIN98 & NT using LCC-WIN32 Ver 3.2 WIN98 & NT using Watcom C 11.x WIN95 & WIN98 using MINGW-32 version mingw-1.0.1-20010726 WIN?? using Metrowerks CodeWarrior Pro 7.0 for Windows WIN98 & NT using Microsoft Visual C++ 6.0 DOS 5.0 using Microsoft C 5.1 and 8.00c (16 bit EXEs) As a general rule, when calculating a quantity to a given number of decimal places, I calculated 4-6 extra digits and then rounded the result to what was asked for. I decided to be conservative and give a correct answer rather than to be faster and possibly have the last 2-3 digits in error. Also, some of the functions call other functions (calculating arc-cos will call cos, log will call exp, etc.) so I had to calculate a few extra digits in each iteration to guarantee the loops terminated correctly. 1) I debugged the 4 basic math operations. I threw numerous test cases at each of the operations until I knew they were correct. Also note that the math.h type functions all call the 4 basic operations numerous times. So if all the math.h functions work, it is highly probable the 4 basic math operations work also. 2) 'math.h' type functions. SQRT: Not real hard to check. Single stepping through the iterative loop showed it was always converging to the sqrt. CBRT: Similar to sqrt, single stepping through the iterative loop showed it was always converging to the cube root. EXP: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. POW: Straightforward since this just calls 'EXP'. LOG: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. This took a long time to execute since the normal series converges VERY slowly for the log function. This is why the LOG function uses an iterative algorithm. LOG10: Straightforward since this just calls 'LOG'. SIN/COS: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. TAN: Straightforward since this just calls 'SIN' and 'COS'. ARC-x: Single stepping through the iterative loop showed the arc family of functions were always converging. Also used these to compute PI. The value of PI is now known to many, many digits. I computed PI to 1000+ digits by computing: 6 * arcsin(0.5) and 4 * arctan(1) and 3 * arccos(0.5) and compared the output to the published 'real' values of PI. The arc family of functions exercise considerable portions of the library. HYPERBOLIC: The hyperbolic functions just use exp, log, and the 4 basic math operations. All of these functions simply use other existing functions in the library. FINALLY: Run the program 'validate'. This program compares the first 13-14 significant digits of the standard C library against the MAPM library. If this program passes, you can feel confident that the MAPM library is giving correct results. This is because the basic algorithms do not change when calculating more digits, it just takes longer. ************************************************************************** XQilla-2.3.4/src/mapm/mapm_lg3.c0000644001725400016040000001252713232476424013241 00000000000000 /* * M_APM - mapm_lg3.c * * Copyright (C) 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /* * using the 'R' function (defined below) for 'N' decimal places : * * * -N -N * log(2) = R(1, 0.5 * 10 ) - R(1, 10 ) * * * -N -N * log(10) = R(1, 0.1 * 10 ) - R(1, 10 ) * * * * I found this on a web site which went into considerable detail * on the history of log(2). This formula is algebraically identical * to the formula specified in J. Borwein and P. Borwein's book * "PI and the AGM". (reference algorithm 7.2) */ /****************************************************************************/ /* * check if our local copy of log(2) & log(10) is precise * enough for our purpose. if not, calculate them so it's * as precise as desired, accurate to at least 'places'. */ void M_check_log_places(int places) { M_APM tmp6, tmp7, tmp8, tmp9; int dplaces; dplaces = places + 4; if (dplaces > MM_lc_log_digits) { MM_lc_log_digits = dplaces + 4; tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); dplaces += 6 + (int)log10((double)places); m_apm_copy(tmp7, MM_One); tmp7->m_apm_exponent = -places; M_log_AGM_R_func(tmp8, dplaces, MM_One, tmp7); m_apm_multiply(tmp6, tmp7, MM_0_5); M_log_AGM_R_func(tmp9, dplaces, MM_One, tmp6); m_apm_subtract(MM_lc_log2, tmp9, tmp8); /* log(2) */ tmp7->m_apm_exponent -= 1; /* divide by 10 */ M_log_AGM_R_func(tmp9, dplaces, MM_One, tmp7); m_apm_subtract(MM_lc_log10, tmp9, tmp8); /* log(10) */ m_apm_reciprocal(MM_lc_log10R, dplaces, MM_lc_log10); /* 1 / log(10) */ M_restore_stack(4); } } /****************************************************************************/ /* * define a notation for a function 'R' : * * * * 1 * R (a0, b0) = ------------------------------ * * ---- * \ * \ n-1 2 2 * 1 - | 2 * (a - b ) * / n n * / * ---- * n >= 0 * * * where a, b are the classic AGM iteration : * * * a = 0.5 * (a + b ) * n+1 n n * * * b = sqrt(a * b ) * n+1 n n * * * * define a 'c' variable for more efficient computation : * * 2 2 2 * c = 0.5 * (a - b ) , c = a - b * n+1 n n n n n * */ /****************************************************************************/ void M_log_AGM_R_func(M_APM rr, int places, M_APM aa, M_APM bb) { M_APM tmp1, tmp2, tmp3, tmp4, tmpC2, sum, pow_2, tmpA0, tmpB0; int ii, tolerance, dplaces; tmpA0 = M_get_stack_var(); tmpB0 = M_get_stack_var(); tmpC2 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); tmp4 = M_get_stack_var(); sum = M_get_stack_var(); pow_2 = M_get_stack_var(); tolerance = places + 8; dplaces = places + 16; m_apm_copy(tmpA0, aa); m_apm_copy(tmpB0, bb); m_apm_copy(pow_2, MM_0_5); ii = 0; while (TRUE) { if (ii == 0) { ii = 1; m_apm_copy(sum, MM_0_5); m_apm_subtract(tmp1, tmpA0, tmpB0); /* C n+1 = 0.5 * [ An - Bn ] */ m_apm_multiply(tmp4, MM_0_5, tmp1); /* C n+1 */ m_apm_multiply(tmpC2, tmp4, tmp4); /* C n+1 ^ 2 */ } else { m_apm_multiply(tmp1, tmpC2, pow_2); m_apm_add(tmp3, sum, tmp1); if ((tmp1->m_apm_sign == 0) || ((-2 * tmp1->m_apm_exponent) > tolerance)) break; m_apm_round(sum, dplaces, tmp3); m_apm_subtract(tmp1, tmpA0, tmpB0); m_apm_multiply(tmp4, MM_0_5, tmp1); m_apm_multiply(tmpC2, tmp4, tmp4); } /* do the AGM and set up for next iteration */ m_apm_add(tmp1, tmpA0, tmpB0); m_apm_multiply(tmp3, MM_0_5, tmp1); m_apm_multiply(tmp2, tmpA0, tmpB0); m_apm_sqrt(tmpB0, dplaces, tmp2); m_apm_copy(tmpA0, tmp3); m_apm_multiply(tmp2, MM_Two, pow_2); m_apm_copy(pow_2, tmp2); } m_apm_subtract(tmp4, MM_One, tmp3); m_apm_reciprocal(rr, places, tmp4); M_restore_stack(9); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmutil.c0000644001725400016040000002433213232476424013367 00000000000000 /* * M_APM - mapmutil.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static UCHAR *M_mul_div = NULL; static UCHAR *M_mul_rem = NULL; static UCHAR M_mul_div_10[100]; static UCHAR M_mul_rem_10[100]; static int M_util_firsttime = TRUE; static int M_firsttime3 = TRUE; static M_APM M_work_0_5; /****************************************************************************/ M_APM m_apm_init() { M_APM atmp; if ((atmp = (M_APM)MAPM_MALLOC(sizeof(M_APM_struct))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_init\', Out of memory"); } atmp->m_apm_id = M_APM_IDENT; atmp->m_apm_malloclength = 80; atmp->m_apm_datalength = 1; atmp->m_apm_refcount = 1; /* not for us, for MAPM C++ class */ atmp->m_apm_exponent = 0; atmp->m_apm_sign = 0; if ((atmp->m_apm_data = (UCHAR *)MAPM_MALLOC(84)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_init\', Out of memory"); } atmp->m_apm_data[0] = 0; return(atmp); } /****************************************************************************/ void m_apm_free(M_APM atmp) { if (atmp->m_apm_id == M_APM_IDENT) { atmp->m_apm_id = 0x0FFFFFF0L; MAPM_FREE(atmp->m_apm_data); MAPM_FREE(atmp); } else { M_apm_log_error_msg(M_APM_RETURN, "Invalid M_APM variable passed to \'m_apm_free\'"); } } /****************************************************************************/ void M_alloc_all_util() { if (M_firsttime3) { M_firsttime3 = FALSE; M_init_util_data(); M_init_trig_globals(); } if (M_util_firsttime) { M_util_firsttime = FALSE; M_work_0_5 = m_apm_init(); m_apm_set_string(M_work_0_5, "5"); } } /****************************************************************************/ void M_free_all_util() { if (M_util_firsttime == FALSE) { m_apm_free(M_work_0_5); M_util_firsttime = TRUE; } if (M_firsttime3 == FALSE) { MAPM_FREE(M_mul_div); MAPM_FREE(M_mul_rem); M_mul_div = NULL; M_mul_rem = NULL; M_firsttime3 = TRUE; } } /****************************************************************************/ /* * just a dummy wrapper to keep some compilers from complaining */ int M_get_sizeof_int() { return(sizeof(int)); } /****************************************************************************/ void M_init_util_data() { int k; UCHAR ndiv, nrem; if (M_mul_div != NULL) return; M_mul_div = (UCHAR *)MAPM_MALLOC(10000 * sizeof(UCHAR)); M_mul_rem = (UCHAR *)MAPM_MALLOC(10000 * sizeof(UCHAR)); if (M_mul_div == NULL || M_mul_rem == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "M_init_util_data() could not allocate memory"); } ndiv = 0; nrem = 0; for (k=0; k < 100; k++) { M_mul_div_10[k] = ndiv; M_mul_rem_10[k] = nrem; if (++nrem == 10) { nrem = 0; ndiv++; } } ndiv = 0; nrem = 0; for (k=0; k < 10000; k++) { M_mul_div[k] = ndiv; M_mul_rem[k] = nrem; if (++nrem == 100) { nrem = 0; ndiv++; } } } /****************************************************************************/ void M_get_div_rem_addr(UCHAR **ndivp, UCHAR **nremp) { *ndivp = M_mul_div; *nremp = M_mul_rem; } /****************************************************************************/ void M_get_div_rem(int tbl_lookup, UCHAR *ndiv, UCHAR *nrem) { *ndiv = M_mul_div[tbl_lookup]; *nrem = M_mul_rem[tbl_lookup]; } /****************************************************************************/ void M_get_div_rem_10(int tbl_lookup, UCHAR *ndiv, UCHAR *nrem) { *ndiv = M_mul_div_10[tbl_lookup]; *nrem = M_mul_rem_10[tbl_lookup]; } /****************************************************************************/ void m_apm_round(M_APM btmp, int places, M_APM atmp) { int ii; ii = places + 1; if (atmp->m_apm_datalength <= ii) { m_apm_copy(btmp,atmp); return; } M_work_0_5->m_apm_exponent = atmp->m_apm_exponent - ii; if (atmp->m_apm_sign > 0) m_apm_add(btmp, atmp, M_work_0_5); else m_apm_subtract(btmp, atmp, M_work_0_5); btmp->m_apm_datalength = ii; M_apm_normalize(btmp); } /****************************************************************************/ void M_apm_normalize(M_APM atmp) { int i, index, datalength, exponent; UCHAR *ucp, numdiv, numrem, numrem2; if (atmp->m_apm_sign == 0) return; datalength = atmp->m_apm_datalength; exponent = atmp->m_apm_exponent; /* make sure trailing bytes/chars are 0 */ /* the following function will adjust the 'datalength' */ /* we want the original value and will fix it later */ M_apm_pad(atmp, (datalength + 3)); while (TRUE) /* remove lead-in '0' if any */ { M_get_div_rem_10((int)atmp->m_apm_data[0], &numdiv, &numrem); if (numdiv >= 1) /* number is normalized, done here */ break; index = (datalength + 1) >> 1; if (numrem == 0) /* both nibbles are 0, we can move full bytes */ { i = 0; ucp = atmp->m_apm_data; while (TRUE) /* find out how many '00' bytes we can move */ { if (*ucp != 0) break; ucp++; i++; } memmove(atmp->m_apm_data, ucp, (index + 1 - i)); datalength -= 2 * i; exponent -= 2 * i; } else { for (i=0; i < index; i++) { M_get_div_rem_10((int)atmp->m_apm_data[i+1], &numdiv, &numrem2); atmp->m_apm_data[i] = 10 * numrem + numdiv; numrem = numrem2; } datalength--; exponent--; } } while (TRUE) /* remove trailing '0' if any */ { index = ((datalength + 1) >> 1) - 1; if ((datalength & 1) == 0) /* back-up full bytes at a time if the */ { /* current length is an even number */ ucp = atmp->m_apm_data + index; if (*ucp == 0) { while (TRUE) { datalength -= 2; index--; ucp--; if (*ucp != 0) break; } } } M_get_div_rem_10((int)atmp->m_apm_data[index], &numdiv, &numrem); if (numrem != 0) /* last digit non-zero, all done */ break; if ((datalength & 1) != 0) /* if odd, then first char must be non-zero */ { if (numdiv != 0) break; } if (datalength == 1) { atmp->m_apm_sign = 0; exponent = 0; break; } datalength--; } atmp->m_apm_datalength = datalength; atmp->m_apm_exponent = exponent; } /****************************************************************************/ void M_apm_scale(M_APM ctmp, int count) { int ii, numb, ct; UCHAR *chp, numdiv, numdiv2, numrem; void *vp; ct = count; ii = (ctmp->m_apm_datalength + ct + 1) >> 1; if (ii > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (ii + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_scale\', Out of memory"); } ctmp->m_apm_malloclength = ii + 28; ctmp->m_apm_data = (UCHAR *)vp; } if ((ct & 1) != 0) /* move odd number first */ { ct--; chp = ctmp->m_apm_data; ii = ((ctmp->m_apm_datalength + 1) >> 1) - 1; if ((ctmp->m_apm_datalength & 1) == 0) { /* * original datalength is even: * * uv wx yz becomes --> 0u vw xy z0 */ numdiv = 0; while (TRUE) { M_get_div_rem_10((int)chp[ii], &numdiv2, &numrem); chp[ii + 1] = 10 * numrem + numdiv; numdiv = numdiv2; if (ii == 0) break; ii--; } chp[0] = numdiv2; } else { /* * original datalength is odd: * * uv wx y0 becomes --> 0u vw xy */ M_get_div_rem_10((int)chp[ii], &numdiv2, &numrem); if (ii == 0) { chp[0] = numdiv2; } else { while (TRUE) { M_get_div_rem_10((int)chp[ii - 1], &numdiv, &numrem); chp[ii] = 10 * numrem + numdiv2; numdiv2 = numdiv; if (--ii == 0) break; } chp[0] = numdiv; } } ctmp->m_apm_exponent++; ctmp->m_apm_datalength++; } /* ct is even here */ if (ct > 0) { numb = (ctmp->m_apm_datalength + 1) >> 1; ii = ct >> 1; memmove((ctmp->m_apm_data + ii), ctmp->m_apm_data, numb); memset(ctmp->m_apm_data, 0, ii); ctmp->m_apm_datalength += ct; ctmp->m_apm_exponent += ct; } } /****************************************************************************/ void M_apm_pad(M_APM ctmp, int new_length) { int num1, numb, ct; UCHAR numdiv, numrem; void *vp; ct = new_length; if (ctmp->m_apm_datalength >= ct) return; numb = (ct + 1) >> 1; if (numb > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (numb + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_pad\', Out of memory"); } ctmp->m_apm_malloclength = numb + 28; ctmp->m_apm_data = (UCHAR *)vp; } num1 = (ctmp->m_apm_datalength + 1) >> 1; if ((ctmp->m_apm_datalength & 1) != 0) { M_get_div_rem_10((int)ctmp->m_apm_data[num1 - 1], &numdiv, &numrem); ctmp->m_apm_data[num1 - 1] = 10 * numdiv; } memset((ctmp->m_apm_data + num1), 0, (numb - num1)); ctmp->m_apm_datalength = ct; } /****************************************************************************/ /* debug_dsp(cc) M_APM cc; { static char buffer[8192]; m_apm_to_string(buffer, -1, cc); printf("(dsp func) = [%s]\n",buffer); } */ XQilla-2.3.4/src/mapm/mapm_fft.c0000644001725400016040000005714013232476424013333 00000000000000 /* * M_APM - mapm_fft.c * * This FFT (Fast Fourier Transform) is from Takuya OOURA * * Copyright(C) 1996-1999 Takuya OOURA * email: ooura@mmm.t.u-tokyo.ac.jp * * See full FFT documentation below ... (MCR) * * This software is provided "as is" without express or implied warranty. */ #include "m_apm_lc.h" #include #ifndef MM_PI_2 #define MM_PI_2 1.570796326794896619231321691639751442098584699687 #endif #ifndef WR5000 /* cos(MM_PI_2*0.5000) */ #define WR5000 0.707106781186547524400844362104849039284835937688 #endif #ifndef RDFT_LOOP_DIV /* control of the RDFT's speed & tolerance */ #define RDFT_LOOP_DIV 64 #endif extern void M_fast_mul_fft(UCHAR *, UCHAR *, UCHAR *, int); extern void M_rdft(int, int, double *); extern void M_bitrv2(int, double *); extern void M_cftfsub(int, double *); extern void M_cftbsub(int, double *); extern void M_rftfsub(int, double *); extern void M_rftbsub(int, double *); extern void M_cft1st(int, double *); extern void M_cftmdl(int, int, double *); static double *M_aa_array, *M_bb_array; static int M_size = -1; /****************************************************************************/ void M_free_all_fft() { if (M_size > 0) { MAPM_FREE(M_aa_array); MAPM_FREE(M_bb_array); M_size = -1; } } /****************************************************************************/ /* * multiply 'uu' by 'vv' with nbytes each * yielding a 2*nbytes result in 'ww'. * each byte contains a base 100 'digit', * i.e.: range from 0-99. * * MSB LSB * * uu,vv [0] [1] [2] ... [N-1] * ww [0] [1] [2] ... [2N-1] */ void M_fast_mul_fft(UCHAR *ww, UCHAR *uu, UCHAR *vv, int nbytes) { int mflag, i, j, nn2, nn; double carry, nnr, dtemp, *a, *b; UCHAR *w0; unsigned long ul; if (M_size < 0) /* if first time in, setup working arrays */ { if (M_get_sizeof_int() == 2) /* if still using 16 bit compilers */ M_size = 1030; else M_size = 8200; M_aa_array = (double *)MAPM_MALLOC(M_size * sizeof(double)); M_bb_array = (double *)MAPM_MALLOC(M_size * sizeof(double)); if ((M_aa_array == NULL) || (M_bb_array == NULL)) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_mul_fft\', Out of memory"); } } nn = nbytes; nn2 = nbytes >> 1; if (nn > M_size) { mflag = TRUE; a = (double *)MAPM_MALLOC((nn + 8) * sizeof(double)); b = (double *)MAPM_MALLOC((nn + 8) * sizeof(double)); if ((a == NULL) || (b == NULL)) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_mul_fft\', Out of memory"); } } else { mflag = FALSE; a = M_aa_array; b = M_bb_array; } /* * convert normal base 100 MAPM numbers to base 10000 * for the FFT operation. */ i = 0; for (j=0; j < nn2; j++) { a[j] = (double)((int)uu[i] * 100 + uu[i+1]); b[j] = (double)((int)vv[i] * 100 + vv[i+1]); i += 2; } /* zero fill the second half of the arrays */ for (j=nn2; j < nn; j++) { a[j] = 0.0; b[j] = 0.0; } /* perform the forward Fourier transforms for both numbers */ M_rdft(nn, 1, a); M_rdft(nn, 1, b); /* perform the convolution ... */ b[0] *= a[0]; b[1] *= a[1]; for (j=3; j <= nn; j += 2) { dtemp = b[j-1]; b[j-1] = dtemp * a[j-1] - b[j] * a[j]; b[j] = dtemp * a[j] + b[j] * a[j-1]; } /* perform the inverse transform on the result */ M_rdft(nn, -1, b); /* perform a final pass to release all the carries */ /* we are still in base 10000 at this point */ carry = 0.0; j = nn; nnr = 2.0 / (double)nn; while (1) { dtemp = b[--j] * nnr + carry + 0.5; ul = (unsigned long)(dtemp * 1.0E-4); carry = (double)ul; b[j] = dtemp - carry * 10000.0; if (j == 0) break; } /* copy result to our destination after converting back to base 100 */ w0 = ww; M_get_div_rem((int)ul, w0, (w0 + 1)); for (j=0; j <= (nn - 2); j++) { w0 += 2; M_get_div_rem((int)b[j], w0, (w0 + 1)); } if (mflag) { MAPM_FREE(b); MAPM_FREE(a); } } /****************************************************************************/ /* * The following info is from Takuya OOURA's documentation : * * NOTE : MAPM only uses the 'RDFT' function (as well as the * functions RDFT calls). All the code from here down * in this file is from Takuya OOURA. The only change I * made was to add 'M_' in front of all the functions * I used. This was to guard against any possible * name collisions in the future. * * MCR 06 July 2000 * * * General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package * * Description: * A package to calculate Discrete Fourier/Cosine/Sine Transforms of * 1-dimensional sequences of length 2^N. * * fft4g_h.c : FFT Package in C - Simple Version I (radix 4,2) * * rdft: Real Discrete Fourier Transform * * Method: * -------- rdft -------- * A method with a following butterfly operation appended to "cdft". * In forward transform : * A[k] = sum_j=0^n-1 a[j]*W(n)^(j*k), 0<=k<=n/2, * W(n) = exp(2*pi*i/n), * this routine makes an array x[] : * x[j] = a[2*j] + i*a[2*j+1], 0<=j RDFT R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2 I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0 IRDFT (excluding scale) a[k] = (R[0] + R[n/2]*cos(pi*k))/2 + sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) + sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k rdft(n, 1, a); rdft(n, -1, a); [parameters] n :data length (int) n >= 2, n = power of 2 a[0...n-1] :input/output data (double *) output data a[2*k] = R[k], 0<=k input data a[2*j] = R[j], 0<=j= 0) { if (n > 4) { M_bitrv2(n, a); M_cftfsub(n, a); M_rftfsub(n, a); } else if (n == 4) { M_cftfsub(n, a); } xi = a[0] - a[1]; a[0] += a[1]; a[1] = xi; } else { a[1] = 0.5 * (a[0] - a[1]); a[0] -= a[1]; if (n > 4) { M_rftbsub(n, a); M_bitrv2(n, a); M_cftbsub(n, a); } else if (n == 4) { M_cftfsub(n, a); } } } void M_bitrv2(int n, double *a) { int j0, k0, j1, k1, l, m, i, j, k; double xr, xi, yr, yi; l = n >> 2; m = 2; while (m < l) { l >>= 1; m <<= 1; } if (m == l) { j0 = 0; for (k0 = 0; k0 < m; k0 += 2) { k = k0; for (j = j0; j < j0 + k0; j += 2) { xr = a[j]; xi = a[j + 1]; yr = a[k]; yi = a[k + 1]; a[j] = yr; a[j + 1] = yi; a[k] = xr; a[k + 1] = xi; j1 = j + m; k1 = k + 2 * m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; j1 += m; k1 -= m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; j1 += m; k1 += 2 * m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (k ^= i); i >>= 1); } j1 = j0 + k0 + m; k1 = j1 + m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (j0 ^= i); i >>= 1); } } else { j0 = 0; for (k0 = 2; k0 < m; k0 += 2) { for (i = n >> 1; i > (j0 ^= i); i >>= 1); k = k0; for (j = j0; j < j0 + k0; j += 2) { xr = a[j]; xi = a[j + 1]; yr = a[k]; yi = a[k + 1]; a[j] = yr; a[j + 1] = yi; a[k] = xr; a[k + 1] = xi; j1 = j + m; k1 = k + m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (k ^= i); i >>= 1); } } } } void M_cftfsub(int n, double *a) { int j, j1, j2, j3, l; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; l = 2; if (n > 8) { M_cft1st(n, a); l = 8; while ((l << 2) < n) { M_cftmdl(n, l, a); l <<= 2; } } if ((l << 2) == n) { for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i - x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i + x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i - x3r; } } else { for (j = 0; j < l; j += 2) { j1 = j + l; x0r = a[j] - a[j1]; x0i = a[j + 1] - a[j1 + 1]; a[j] += a[j1]; a[j + 1] += a[j1 + 1]; a[j1] = x0r; a[j1 + 1] = x0i; } } } void M_cftbsub(int n, double *a) { int j, j1, j2, j3, l; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; l = 2; if (n > 8) { M_cft1st(n, a); l = 8; while ((l << 2) < n) { M_cftmdl(n, l, a); l <<= 2; } } if ((l << 2) == n) { for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = -a[j + 1] - a[j1 + 1]; x1r = a[j] - a[j1]; x1i = -a[j + 1] + a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i - x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i + x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i - x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i + x3r; } } else { for (j = 0; j < l; j += 2) { j1 = j + l; x0r = a[j] - a[j1]; x0i = -a[j + 1] + a[j1 + 1]; a[j] += a[j1]; a[j + 1] = -a[j + 1] - a[j1 + 1]; a[j1] = x0r; a[j1 + 1] = x0i; } } } void M_cft1st(int n, double *a) { int j, kj, kr; double ew, wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; x0r = a[0] + a[2]; x0i = a[1] + a[3]; x1r = a[0] - a[2]; x1i = a[1] - a[3]; x2r = a[4] + a[6]; x2i = a[5] + a[7]; x3r = a[4] - a[6]; x3i = a[5] - a[7]; a[0] = x0r + x2r; a[1] = x0i + x2i; a[4] = x0r - x2r; a[5] = x0i - x2i; a[2] = x1r - x3i; a[3] = x1i + x3r; a[6] = x1r + x3i; a[7] = x1i - x3r; wn4r = WR5000; x0r = a[8] + a[10]; x0i = a[9] + a[11]; x1r = a[8] - a[10]; x1i = a[9] - a[11]; x2r = a[12] + a[14]; x2i = a[13] + a[15]; x3r = a[12] - a[14]; x3i = a[13] - a[15]; a[8] = x0r + x2r; a[9] = x0i + x2i; a[12] = x2i - x0i; a[13] = x0r - x2r; x0r = x1r - x3i; x0i = x1i + x3r; a[10] = wn4r * (x0r - x0i); a[11] = wn4r * (x0r + x0i); x0r = x3i + x1r; x0i = x3r - x1i; a[14] = wn4r * (x0i - x0r); a[15] = wn4r * (x0i + x0r); ew = MM_PI_2 / n; kr = 0; for (j = 16; j < n; j += 16) { for (kj = n >> 2; kj > (kr ^= kj); kj >>= 1); wk1r = cos(ew * kr); wk1i = sin(ew * kr); wk2r = 1 - 2 * wk1i * wk1i; wk2i = 2 * wk1i * wk1r; wk3r = wk1r - 2 * wk2i * wk1i; wk3i = 2 * wk2i * wk1r - wk1i; x0r = a[j] + a[j + 2]; x0i = a[j + 1] + a[j + 3]; x1r = a[j] - a[j + 2]; x1i = a[j + 1] - a[j + 3]; x2r = a[j + 4] + a[j + 6]; x2i = a[j + 5] + a[j + 7]; x3r = a[j + 4] - a[j + 6]; x3i = a[j + 5] - a[j + 7]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j + 4] = wk2r * x0r - wk2i * x0i; a[j + 5] = wk2r * x0i + wk2i * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j + 2] = wk1r * x0r - wk1i * x0i; a[j + 3] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j + 6] = wk3r * x0r - wk3i * x0i; a[j + 7] = wk3r * x0i + wk3i * x0r; x0r = wn4r * (wk1r - wk1i); wk1i = wn4r * (wk1r + wk1i); wk1r = x0r; wk3r = wk1r - 2 * wk2r * wk1i; wk3i = 2 * wk2r * wk1r - wk1i; x0r = a[j + 8] + a[j + 10]; x0i = a[j + 9] + a[j + 11]; x1r = a[j + 8] - a[j + 10]; x1i = a[j + 9] - a[j + 11]; x2r = a[j + 12] + a[j + 14]; x2i = a[j + 13] + a[j + 15]; x3r = a[j + 12] - a[j + 14]; x3i = a[j + 13] - a[j + 15]; a[j + 8] = x0r + x2r; a[j + 9] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j + 12] = -wk2i * x0r - wk2r * x0i; a[j + 13] = -wk2i * x0i + wk2r * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j + 10] = wk1r * x0r - wk1i * x0i; a[j + 11] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j + 14] = wk3r * x0r - wk3i * x0i; a[j + 15] = wk3r * x0i + wk3i * x0r; } } void M_cftmdl(int n, int l, double *a) { int j, j1, j2, j3, k, kj, kr, m, m2; double ew, wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; m = l << 2; for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i - x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i + x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i - x3r; } wn4r = WR5000; for (j = m; j < l + m; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x2i - x0i; a[j2 + 1] = x0r - x2r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wn4r * (x0r - x0i); a[j1 + 1] = wn4r * (x0r + x0i); x0r = x3i + x1r; x0i = x3r - x1i; a[j3] = wn4r * (x0i - x0r); a[j3 + 1] = wn4r * (x0i + x0r); } ew = MM_PI_2 / n; kr = 0; m2 = 2 * m; for (k = m2; k < n; k += m2) { for (kj = n >> 2; kj > (kr ^= kj); kj >>= 1); wk1r = cos(ew * kr); wk1i = sin(ew * kr); wk2r = 1 - 2 * wk1i * wk1i; wk2i = 2 * wk1i * wk1r; wk3r = wk1r - 2 * wk2i * wk1i; wk3i = 2 * wk2i * wk1r - wk1i; for (j = k; j < l + k; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j2] = wk2r * x0r - wk2i * x0i; a[j2 + 1] = wk2r * x0i + wk2i * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wk1r * x0r - wk1i * x0i; a[j1 + 1] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j3] = wk3r * x0r - wk3i * x0i; a[j3 + 1] = wk3r * x0i + wk3i * x0r; } x0r = wn4r * (wk1r - wk1i); wk1i = wn4r * (wk1r + wk1i); wk1r = x0r; wk3r = wk1r - 2 * wk2r * wk1i; wk3i = 2 * wk2r * wk1r - wk1i; for (j = k + m; j < l + (k + m); j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j2] = -wk2i * x0r - wk2r * x0i; a[j2 + 1] = -wk2i * x0i + wk2r * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wk1r * x0r - wk1i * x0i; a[j1 + 1] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j3] = wk3r * x0r - wk3i * x0i; a[j3 + 1] = wk3r * x0i + wk3i * x0r; } } } void M_rftfsub(int n, double *a) { int i, i0, j, k; double ec, w1r, w1i, wkr, wki, wdr, wdi, ss, xr, xi, yr, yi; ec = 2 * MM_PI_2 / n; wkr = 0; wki = 0; wdi = cos(ec); wdr = sin(ec); wdi *= wdr; wdr *= wdr; w1r = 1 - 2 * wdr; w1i = 2 * wdi; ss = 2 * w1i; i = n >> 1; while (1) { i0 = i - 4 * RDFT_LOOP_DIV; if (i0 < 4) { i0 = 4; } for (j = i - 4; j >= i0; j -= 4) { k = n - j; xr = a[j + 2] - a[k - 2]; xi = a[j + 3] + a[k - 1]; yr = wdr * xr - wdi * xi; yi = wdr * xi + wdi * xr; a[j + 2] -= yr; a[j + 3] -= yi; a[k - 2] += yr; a[k - 1] -= yi; wkr += ss * wdi; wki += ss * (0.5 - wdr); xr = a[j] - a[k]; xi = a[j + 1] + a[k + 1]; yr = wkr * xr - wki * xi; yi = wkr * xi + wki * xr; a[j] -= yr; a[j + 1] -= yi; a[k] += yr; a[k + 1] -= yi; wdr += ss * wki; wdi += ss * (0.5 - wkr); } if (i0 == 4) { break; } wkr = 0.5 * sin(ec * i0); wki = 0.5 * cos(ec * i0); wdr = 0.5 - (wkr * w1r - wki * w1i); wdi = wkr * w1i + wki * w1r; wkr = 0.5 - wkr; i = i0; } xr = a[2] - a[n - 2]; xi = a[3] + a[n - 1]; yr = wdr * xr - wdi * xi; yi = wdr * xi + wdi * xr; a[2] -= yr; a[3] -= yi; a[n - 2] += yr; a[n - 1] -= yi; } void M_rftbsub(int n, double *a) { int i, i0, j, k; double ec, w1r, w1i, wkr, wki, wdr, wdi, ss, xr, xi, yr, yi; ec = 2 * MM_PI_2 / n; wkr = 0; wki = 0; wdi = cos(ec); wdr = sin(ec); wdi *= wdr; wdr *= wdr; w1r = 1 - 2 * wdr; w1i = 2 * wdi; ss = 2 * w1i; i = n >> 1; a[i + 1] = -a[i + 1]; while (1) { i0 = i - 4 * RDFT_LOOP_DIV; if (i0 < 4) { i0 = 4; } for (j = i - 4; j >= i0; j -= 4) { k = n - j; xr = a[j + 2] - a[k - 2]; xi = a[j + 3] + a[k - 1]; yr = wdr * xr + wdi * xi; yi = wdr * xi - wdi * xr; a[j + 2] -= yr; a[j + 3] = yi - a[j + 3]; a[k - 2] += yr; a[k - 1] = yi - a[k - 1]; wkr += ss * wdi; wki += ss * (0.5 - wdr); xr = a[j] - a[k]; xi = a[j + 1] + a[k + 1]; yr = wkr * xr + wki * xi; yi = wkr * xi - wki * xr; a[j] -= yr; a[j + 1] = yi - a[j + 1]; a[k] += yr; a[k + 1] = yi - a[k + 1]; wdr += ss * wki; wdi += ss * (0.5 - wkr); } if (i0 == 4) { break; } wkr = 0.5 * sin(ec * i0); wki = 0.5 * cos(ec * i0); wdr = 0.5 - (wkr * w1r - wki * w1i); wdi = wkr * w1i + wki * w1r; wkr = 0.5 - wkr; i = i0; } xr = a[2] - a[n - 2]; xi = a[3] + a[n - 1]; yr = wdr * xr + wdi * xi; yi = wdr * xi - wdi * xr; a[2] -= yr; a[3] = yi - a[3]; a[n - 2] += yr; a[n - 1] = yi - a[n - 1]; a[1] = -a[1]; } XQilla-2.3.4/src/mapm/mapmhsin.c0000644001725400016040000000532213232476424013351 00000000000000 /* * M_APM - mapmhsin.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * sinh(x) == 0.5 * [ exp(x) - exp(-x) ] */ void m_apm_sinh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_subtract(tmp3, tmp1, tmp2); m_apm_multiply(tmp1, tmp3, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ /* * cosh(x) == 0.5 * [ exp(x) + exp(-x) ] */ void m_apm_cosh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_add(tmp3, tmp1, tmp2); m_apm_multiply(tmp1, tmp3, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ /* * tanh(x) == [ exp(x) - exp(-x) ] / [ exp(x) + exp(-x) ] */ void m_apm_tanh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3, tmp4; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); tmp4 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_subtract(tmp3, tmp1, tmp2); m_apm_add(tmp4, tmp1, tmp2); m_apm_divide(tmp1, local_precision, tmp3, tmp4); m_apm_round(rr, places, tmp1); M_restore_stack(4); } /****************************************************************************/ XQilla-2.3.4/src/mapm/m_apm_lc.h0000644001725400016040000001276513273140037013313 00000000000000 /* * M_APM - m_apm_lc.h * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #ifndef M__APM_LOCAL_INC #define M__APM_LOCAL_INC #include #include #include #include /* * this supports older (and maybe newer?) Borland compilers. * these Borland compilers define __MSDOS__ */ #ifndef MSDOS #ifdef __MSDOS__ #define MSDOS #endif #endif /* * this supports some newer Borland compilers (i.e., v5.5). */ #ifndef MSDOS #ifdef __BORLANDC__ #define MSDOS #endif #endif /* * this supports the LCC-WIN32 compiler */ #ifndef MSDOS #ifdef __LCC__ #define MSDOS #endif #endif /* * this supports Micro$oft Visual C++ and also possibly older * straight C compilers as well. */ #ifndef MSDOS #ifdef _MSC_VER #define MSDOS #endif #endif /* * this supports Metrowerks CodeWarrior 7.0 compiler (I think...) */ #ifndef MSDOS #ifdef __MWERKS__ #define MSDOS #endif #endif /* * this supports MINGW 32 compiler */ #ifndef MSDOS #ifdef __MINGW_H #define MSDOS #endif #endif /* * If for some reason (RAM limitations, slow floating point, whatever) * you do NOT want to use the FFT multiply algorithm, un-comment the * #define below, delete mapm_fft.c and remove mapm_fft from the build. */ /* #define NO_FFT_MULTIPLY */ /* * use your own memory management functions if desired. * re-define MAPM_* below to point to your functions. * an example is shown below. */ /* extern void *memory_allocate(unsigned int); extern void *memory_reallocate(void *, unsigned int); extern void memory_free(void *); #define MAPM_MALLOC memory_allocate #define MAPM_REALLOC memory_reallocate #define MAPM_FREE memory_free */ /* default: use the standard C library memory functions ... */ #define MAPM_MALLOC malloc #define MAPM_REALLOC realloc #define MAPM_FREE free #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #define M_APM_IDENT 0x6BCC9AE5 #define M_APM_RETURN 1 #define M_APM_EXIT 2 /* number of digits in the global constants, PI, E, etc */ #define VALID_DECIMAL_PLACES 128 extern int MM_lc_PI_digits; extern int MM_lc_log_digits; /* * constants not in m_apm.h */ extern M_APM MM_0_5; extern M_APM MM_0_85; extern M_APM MM_5x_125R; extern M_APM MM_5x_64R; extern M_APM MM_5x_256R; extern M_APM MM_5x_Eight; extern M_APM MM_5x_Sixteen; extern M_APM MM_5x_Twenty; extern M_APM MM_lc_PI; extern M_APM MM_lc_HALF_PI; extern M_APM MM_lc_2_PI; extern M_APM MM_lc_log2; extern M_APM MM_lc_log10; extern M_APM MM_lc_log10R; /* * prototypes for internal functions */ #ifndef NO_FFT_MULTIPLY extern void M_free_all_fft(void); #endif extern void M_init_trig_globals(void); extern void M_free_all_div(void); extern void M_free_all_exp(void); extern void M_free_all_pow(void); extern void M_free_all_rnd(void); extern void M_free_all_cnst(void); extern void M_free_all_fmul(void); extern void M_free_all_stck(void); extern void M_free_all_util(void); extern void M_raw_exp(M_APM, int, M_APM); extern void M_raw_sin(M_APM, int, M_APM); extern void M_raw_cos(M_APM, int, M_APM); extern void M_5x_sin(M_APM, int, M_APM); extern void M_4x_cos(M_APM, int, M_APM); extern void M_5x_do_it(M_APM, int, M_APM); extern void M_4x_do_it(M_APM, int, M_APM); extern M_APM M_get_stack_var(void); extern void M_restore_stack(int); extern int M_get_sizeof_int(void); extern void M_apm_sdivide(M_APM, int, M_APM, M_APM); extern void M_cos_to_sin(M_APM, int, M_APM); extern void M_limit_angle_to_pi(M_APM, int, M_APM); extern void M_log_near_1(M_APM, int, M_APM); extern void M_get_sqrt_guess(M_APM, M_APM); extern void M_get_cbrt_guess(M_APM, M_APM); extern void M_get_log_guess(M_APM, M_APM); extern void M_get_asin_guess(M_APM, M_APM); extern void M_get_acos_guess(M_APM, M_APM); extern void M_arcsin_near_0(M_APM, int, M_APM); extern void M_arccos_near_0(M_APM, int, M_APM); extern void M_arctan_near_0(M_APM, int, M_APM); extern void M_log_basic_iteration(M_APM, int, M_APM); extern void M_check_log_places(int); extern void M_log_AGM_R_func(M_APM, int, M_APM, M_APM); extern void M_init_util_data(void); extern void M_get_div_rem_addr(UCHAR **, UCHAR **); extern void M_get_div_rem(int,UCHAR *, UCHAR *); extern void M_get_div_rem_10(int, UCHAR *, UCHAR *); extern void M_apm_normalize(M_APM); extern void M_apm_scale(M_APM, int); extern void M_apm_pad(M_APM, int); extern void M_long_2_ascii(char *, long); extern void M_check_PI_places(int); extern void M_calculate_PI_AGM(M_APM, int); extern void M_set_to_zero(M_APM); extern int M_strposition(char *, char *); extern char *M_lowercase(char *); extern void M_apm_log_error_msg(int, char *); extern void M_apm_round_fixpt(M_APM, int, M_APM); #endif XQilla-2.3.4/src/mapm/mapmstck.c0000644001725400016040000000535313232476424013360 00000000000000 /* * M_APM - mapmstck.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static int M_stack_ptr = -1; static int M_last_init = -1; static int M_stack_size = 0; static char *M_stack_err_msg = "\'M_get_stack_var\', Out of memory"; static M_APM *M_stack_array; /****************************************************************************/ void M_free_all_stck() { int k; if (M_last_init >= 0) { for (k=0; k <= M_last_init; k++) m_apm_free(M_stack_array[k]); M_stack_ptr = -1; M_last_init = -1; M_stack_size = 0; MAPM_FREE(M_stack_array); } } /****************************************************************************/ M_APM M_get_stack_var() { void *vp; if (++M_stack_ptr > M_last_init) { if (M_stack_size == 0) { M_stack_size = 18; if ((vp = MAPM_MALLOC(M_stack_size * sizeof(M_APM))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, M_stack_err_msg); } M_stack_array = (M_APM *)vp; } if ((M_last_init + 4) >= M_stack_size) { M_stack_size += 12; if ((vp = MAPM_REALLOC(M_stack_array, (M_stack_size * sizeof(M_APM)))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, M_stack_err_msg); } M_stack_array = (M_APM *)vp; } M_stack_array[M_stack_ptr] = m_apm_init(); M_stack_array[M_stack_ptr + 1] = m_apm_init(); M_stack_array[M_stack_ptr + 2] = m_apm_init(); M_stack_array[M_stack_ptr + 3] = m_apm_init(); M_last_init = M_stack_ptr + 3; /* printf("M_last_init = %d \n",M_last_init); */ } return(M_stack_array[M_stack_ptr]); } /****************************************************************************/ void M_restore_stack(int count) { M_stack_ptr -= count; } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_fam.c0000644001725400016040000000345313232476424013315 00000000000000 /* * M_APM - mapm_fam.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" extern void M_alloc_all_util(); /****************************************************************************/ void m_apm_library_initialize() { M_alloc_all_util(); m_apm_mt_initialize(); } void m_apm_library_terminate() { m_apm_free_all_mem(); m_apm_mt_terminate(); } /****************************************************************************/ void m_apm_free_all_mem() { /* call each module which has statically declared data */ M_free_all_div(); M_free_all_exp(); #ifndef NO_FFT_MULTIPLY M_free_all_fft(); #endif M_free_all_pow(); M_free_all_rnd(); M_free_all_cnst(); M_free_all_fmul(); M_free_all_stck(); M_free_all_util(); } /****************************************************************************/ void m_apm_trim_mem_usage() { m_apm_free_all_mem(); m_apm_free(m_apm_init()); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_flr.c0000644001725400016040000000532213232476424013332 00000000000000 /* * M_APM - mapm_flr.c * * Copyright (C) 2001 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /* * input floor ceil * ----- ------ ------ * 329.0 329.0 329.0 * -837.0 -837.0 -837.0 * 372.64 372.0 373.0 * -237.52 -238.0 -237.0 */ /****************************************************************************/ /* * return the nearest integer <= input */ void m_apm_floor(M_APM bb, M_APM aa) { M_APM mtmp; m_apm_copy(bb, aa); if (m_apm_is_integer(bb)) /* if integer, we're done */ return; if (bb->m_apm_exponent <= 0) /* if |bb| < 1, result is -1 or 0 */ { if (bb->m_apm_sign < 0) m_apm_negate(bb, MM_One); else M_set_to_zero(bb); return; } if (bb->m_apm_sign < 0) { mtmp = M_get_stack_var(); m_apm_negate(mtmp, bb); mtmp->m_apm_datalength = mtmp->m_apm_exponent; M_apm_normalize(mtmp); m_apm_add(bb, mtmp, MM_One); bb->m_apm_sign = -1; M_restore_stack(1); } else { bb->m_apm_datalength = bb->m_apm_exponent; M_apm_normalize(bb); } } /****************************************************************************/ /* * return the nearest integer >= input */ void m_apm_ceil(M_APM bb, M_APM aa) { M_APM mtmp; m_apm_copy(bb, aa); if (m_apm_is_integer(bb)) /* if integer, we're done */ return; if (bb->m_apm_exponent <= 0) /* if |bb| < 1, result is 0 or 1 */ { if (bb->m_apm_sign < 0) M_set_to_zero(bb); else m_apm_copy(bb, MM_One); return; } if (bb->m_apm_sign < 0) { bb->m_apm_datalength = bb->m_apm_exponent; M_apm_normalize(bb); } else { mtmp = M_get_stack_var(); m_apm_copy(mtmp, bb); mtmp->m_apm_datalength = mtmp->m_apm_exponent; M_apm_normalize(mtmp); m_apm_add(bb, mtmp, MM_One); M_restore_stack(1); } } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmipwr.c0000644001725400016040000000416513232476424013375 00000000000000 /* * M_APM - mapmipwr.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_integer_pow(M_APM rr, int places, M_APM aa, int mexp) { M_APM tmp0, tmpy, tmpz; int nexp, ii, signflag, local_precision; if (mexp == 0) { m_apm_copy(rr, MM_One); return; } else { if (mexp > 0) { signflag = 0; nexp = mexp; } else { signflag = 1; nexp = -mexp; } } if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } tmp0 = M_get_stack_var(); tmpy = M_get_stack_var(); tmpz = M_get_stack_var(); local_precision = places + 8; m_apm_copy(tmpy, MM_One); m_apm_copy(tmpz, aa); while (TRUE) { ii = nexp & 1; nexp = nexp >> 1; if (ii != 0) /* exponent -was- odd */ { m_apm_multiply(tmp0, tmpy, tmpz); m_apm_round(tmpy, local_precision, tmp0); if (nexp == 0) break; } m_apm_multiply(tmp0, tmpz, tmpz); m_apm_round(tmpz, local_precision, tmp0); } if (signflag) { m_apm_reciprocal(rr, places, tmpy); } else { m_apm_round(rr, places, tmpy); } M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_rnd.c0000644001725400016040000001742413232476424013340 00000000000000 /* * M_APM - mapm_rnd.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #ifdef MSDOS #include #include #else #include extern void M_get_microsec(unsigned long *, long *); #endif extern void M_reverse_string(char *); extern void M_get_rnd_seed(M_APM); static M_APM M_rnd_aa; static M_APM M_rnd_mm; static M_APM M_rnd_XX; static M_APM M_rtmp0; static M_APM M_rtmp1; static int M_firsttime2 = TRUE; /* Used Knuth's The Art of Computer Programming, Volume 2 as the basis. Assuming the random number is X, compute (where all the math is performed on integers) : X = (a * X + c) MOD m From Knuth: 'm' should be large, at least 2^30 : we use 1.0E+15 'a' should be between .01m and .99m and not have a simple pattern. 'a' should not have any large factors in common with 'm' and (since 'm' is a power of 10) if 'a' MOD 200 = 21 then all 'm' different possible values will be generated before 'X' starts to repeat. We use 'a' = 716805947629621. This is a prime number and also meets 'a' MOD 200 = 21. Commented out below are many potential multipliers that are all prime and meet 'a' MOD 200 = 21. There are few restrictions on 'c' except 'c' can have no factor in common with 'm', hence we set 'c' = 'a'. On the first call, the system time is used to initialize X. */ /* * the following constants are all potential multipliers. they are * all prime numbers that also meet the criteria of NUM mod 200 = 21. */ /* 439682071525421 439682071528421 439682071529221 439682071529821 439682071530421 439682071532021 439682071538821 439682071539421 439682071540021 439682071547021 439682071551221 439682071553821 439682071555421 439682071557221 439682071558021 439682071558621 439682071559821 439652381461621 439652381465221 439652381465621 439652381466421 439652381467421 439652381468621 439652381470021 439652381471221 439652381477021 439652381484221 439652381488421 439652381491021 439652381492021 439652381494021 439652381496821 617294387035621 617294387038621 617294387039221 617294387044421 617294387045221 617294387048621 617294387051621 617294387051821 617294387053621 617294387058421 617294387064221 617294387065621 617294387068621 617294387069221 617294387069821 617294387070421 617294387072021 617294387072621 617294387073821 617294387076821 649378126517621 649378126517821 649378126518221 649378126520821 649378126523821 649378126525621 649378126526621 649378126528421 649378126529621 649378126530821 649378126532221 649378126533221 649378126535221 649378126539421 649378126543621 649378126546021 649378126546421 649378126549421 649378126550821 649378126555021 649378126557421 649378126560221 649378126561621 649378126562021 649378126564621 649378126565821 672091582360421 672091582364221 672091582364621 672091582367021 672091582368421 672091582369021 672091582370821 672091582371421 672091582376821 672091582380821 716805243983221 716805243984821 716805947623621 716805947624621 716805947629021 716805947629621 716805947630621 716805947633621 716805947634221 716805947635021 716805947635621 716805947642221 */ /****************************************************************************/ void M_free_all_rnd() { if (M_firsttime2 == FALSE) { m_apm_free(M_rnd_aa); m_apm_free(M_rnd_mm); m_apm_free(M_rnd_XX); m_apm_free(M_rtmp0); m_apm_free(M_rtmp1); M_firsttime2 = TRUE; } } /****************************************************************************/ void m_apm_set_random_seed(char *ss) { M_APM btmp; if (M_firsttime2) { btmp = M_get_stack_var(); m_apm_get_random(btmp); M_restore_stack(1); } m_apm_set_string(M_rnd_XX, ss); } /****************************************************************************/ /* * compute X = (a * X + c) MOD m where c = a */ void m_apm_get_random(M_APM mrnd) { if (M_firsttime2) /* use the system time as the initial seed value */ { M_firsttime2 = FALSE; M_rnd_aa = m_apm_init(); M_rnd_XX = m_apm_init(); M_rnd_mm = m_apm_init(); M_rtmp0 = m_apm_init(); M_rtmp1 = m_apm_init(); /* set the multiplier M_rnd_aa and M_rnd_mm */ m_apm_set_string(M_rnd_aa, "716805947629621"); m_apm_set_string(M_rnd_mm, "1.0E15"); M_get_rnd_seed(M_rnd_XX); } m_apm_multiply(M_rtmp0, M_rnd_XX, M_rnd_aa); m_apm_add(M_rtmp1, M_rtmp0, M_rnd_aa); m_apm_integer_div_rem(M_rtmp0, M_rnd_XX, M_rtmp1, M_rnd_mm); m_apm_copy(mrnd, M_rnd_XX); mrnd->m_apm_exponent -= 15; } /****************************************************************************/ void M_reverse_string(char *s) { size_t ct; char ch, *p1, *p2; if ((ct = strlen(s)) <= 1) return; p1 = s; p2 = s + ct - 1; ct /= 2; while (TRUE) { ch = *p1; *p1++ = *p2; *p2-- = ch; if (--ct == 0) break; } } /****************************************************************************/ #ifdef MSDOS /****************************************************************************/ /* * for DOS / Win 9x/NT systems : use 'ftime' */ void M_get_rnd_seed(M_APM mm) { int millisec; time_t timestamp; time_t ul; char ss[32], buf1[48], buf2[32]; struct timeb timebuffer; M_APM atmp; atmp = M_get_stack_var(); ftime(&timebuffer); millisec = (int)timebuffer.millitm; timestamp = timebuffer.time; ul = (timestamp / 7); ul += timestamp + 537; strcpy(ss,ctime(×tamp)); /* convert to string and copy to ss */ sprintf(buf1,"%d",(millisec / 10)); sprintf(buf2,"%lu",ul); ss[0] = ss[18]; ss[1] = ss[17]; ss[2] = ss[15]; ss[3] = ss[14]; ss[4] = ss[12]; ss[5] = ss[11]; ss[6] = ss[9]; ss[7] = ss[23]; ss[8] = ss[20]; ss[9] = '\0'; M_reverse_string(buf2); strcat(buf1,buf2); strcat(buf1,ss); m_apm_set_string(atmp, buf1); atmp->m_apm_exponent = 15; m_apm_integer_divide(mm, atmp, MM_One); M_restore_stack(1); } /****************************************************************************/ #else /****************************************************************************/ /* * for unix systems : use 'gettimeofday' */ void M_get_rnd_seed(M_APM mm) { unsigned long sec3; long usec3; char buf1[32], buf2[32]; M_APM atmp; atmp = M_get_stack_var(); M_get_microsec(&sec3,&usec3); sprintf(buf1,"%ld",usec3); sprintf(buf2,"%lu",sec3); M_reverse_string(buf2); strcat(buf1,buf2); m_apm_set_string(atmp, buf1); atmp->m_apm_exponent = 15; m_apm_integer_divide(mm, atmp, MM_One); M_restore_stack(1); } /****************************************************************************/ void M_get_microsec(unsigned long *sec, long *usec) { struct timeval time_now; /* current time for elapsed time check */ gettimeofday(&time_now, NULL); /* get current time */ *sec = time_now.tv_sec; *usec = time_now.tv_usec; } /****************************************************************************/ #endif XQilla-2.3.4/src/mapm/mapm5sin.c0000644001725400016040000001024213232476424013263 00000000000000 /* * M_APM - mapm5sin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void M_5x_sin(M_APM r, int places, M_APM x) { M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_multiply(tmp9, x, MM_5x_125R); /* 1 / (5*5*5) */ M_raw_sin(tmp8, (places + 6), tmp9); M_5x_do_it(tmp9, (places + 4), tmp8); M_5x_do_it(tmp8, (places + 4), tmp9); M_5x_do_it(r, places, tmp8); M_restore_stack(2); } /****************************************************************************/ void M_4x_cos(M_APM r, int places, M_APM x) { M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* * if |x| >= 1.0 use multiple angle identity 4 times * if |x| < 1.0 use multiple angle identity 3 times */ if (x->m_apm_exponent > 0) { m_apm_multiply(tmp9, x, MM_5x_256R); /* 1 / (4*4*4*4) */ M_raw_cos(tmp8, (places + 8), tmp9); M_4x_do_it(tmp9, (places + 8), tmp8); M_4x_do_it(tmp8, (places + 6), tmp9); M_4x_do_it(tmp9, (places + 4), tmp8); M_4x_do_it(r, places, tmp9); } else { m_apm_multiply(tmp9, x, MM_5x_64R); /* 1 / (4*4*4) */ M_raw_cos(tmp8, (places + 6), tmp9); M_4x_do_it(tmp9, (places + 4), tmp8); M_4x_do_it(tmp8, (places + 4), tmp9); M_4x_do_it(r, places, tmp8); } M_restore_stack(2); } /****************************************************************************/ /* * calculate the multiple angle identity for sin (5x) * * sin (5x) == 16 * sin^5 (x) - 20 * sin^3 (x) + 5 * sin(x) */ void M_5x_do_it(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, t2, t3, t5; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); t2 = M_get_stack_var(); t3 = M_get_stack_var(); t5 = M_get_stack_var(); m_apm_multiply(tmp1, xx, xx); m_apm_round(t2, (places + 4), tmp1); /* x ^ 2 */ m_apm_multiply(tmp1, t2, xx); m_apm_round(t3, (places + 4), tmp1); /* x ^ 3 */ m_apm_multiply(t5, t2, t3); /* x ^ 5 */ m_apm_multiply(tmp0, xx, MM_Five); m_apm_multiply(tmp1, t5, MM_5x_Sixteen); m_apm_add(t2, tmp0, tmp1); m_apm_multiply(tmp1, t3, MM_5x_Twenty); m_apm_subtract(tmp0, t2, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(5); } /****************************************************************************/ /* * calculate the multiple angle identity for cos (4x) * * cos (4x) == 8 * [ cos^4 (x) - cos^2 (x) ] + 1 */ void M_4x_do_it(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, t2, t4; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); t2 = M_get_stack_var(); t4 = M_get_stack_var(); m_apm_multiply(tmp1, xx, xx); m_apm_round(t2, (places + 4), tmp1); /* x ^ 2 */ m_apm_multiply(t4, t2, t2); /* x ^ 4 */ m_apm_subtract(tmp0, t4, t2); m_apm_multiply(tmp1, tmp0, MM_5x_Eight); m_apm_add(tmp0, MM_One, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(4); } /****************************************************************************/ /* * compute r = sqrt(1 - a ^ 2). */ void M_cos_to_sin(M_APM r, int places, M_APM a) { M_APM tmp1, tmp2; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); m_apm_multiply(tmp1, a, a); m_apm_subtract(tmp2, MM_One, tmp1); m_apm_sqrt(r, places, tmp2); M_restore_stack(2); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmfact.c0000644001725400016040000001300313232476424013320 00000000000000 /* * M_APM - mapmfact.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ /* * Brief explanation of the factorial algorithm. * ---------------------------------------------- * * The old algorithm simply multiplied N * (N-1) * (N-2) etc, until * the number counted down to '2'. So one term of the multiplication * kept getting bigger while multiplying by the next number in the * sequence. * * The new algorithm takes advantage of the fast multiplication * algorithm. The "ideal" setup for fast multiplication is when * both numbers have approx the same number of significant digits * and the number of digits is very near (but not over) an exact * power of 2. * * So, we will multiply N * (N-1) * (N-2), etc until the number of * significant digits is approx 256. * * Store this temp product into an array. * * Then we will multiply the next sequence until the number of * significant digits is approx 256. * * Store this temp product into the next element of the array. * * Continue until we've counted down to 2. * * We now have an array of numbers with approx the same number * of digits (except for the last element, depending on where it * ended.) Now multiply each of the array elements together to * get the final product. * * The array multiplies are done as follows (assume we used 11 * array elements for this example, indicated by [0] - [10] ) : * * initial iter-1 iter-2 iter-3 iter-4 * * [0] * * -> [0] * [1] * * -> [0] * * [2] * * -> [1] * [3] * * -> [0] * * [4] * * -> [2] * [5] * * * -> [1] * * [6] * * -> [3] * -> [0] * [7] * * * [8] * * -> [4] * [9] * * -> [2] -> [1] * * * [10] -> [5] * */ #include "m_apm_lc.h" /* define size of local array for temp storage */ #ifdef MSDOS #define NDIM 64 #else #define NDIM 128 #endif /****************************************************************************/ void m_apm_factorial(M_APM moutput, M_APM minput) { int ii, nmul, ndigits, nd, jj, kk, mm, ct; M_APM array[NDIM]; M_APM iprod1, iprod2, tmp1, tmp2; /* return 1 for any input <= 1 */ if (m_apm_compare(minput, MM_One) <= 0) { m_apm_copy(moutput, MM_One); return; } ct = 0; mm = NDIM - 2; ndigits = 256; nd = ndigits - 20; tmp1 = m_apm_init(); tmp2 = m_apm_init(); iprod1 = m_apm_init(); iprod2 = m_apm_init(); array[0] = m_apm_init(); m_apm_copy(tmp2, minput); /* loop until multiply count-down has reached '2' */ while (TRUE) { m_apm_copy(iprod1, MM_One); /* * loop until the number of significant digits in this * partial result is slightly less than 256 */ while (TRUE) { m_apm_multiply(iprod2, iprod1, tmp2); m_apm_subtract(tmp1, tmp2, MM_One); m_apm_multiply(iprod1, iprod2, tmp1); /* * I know, I know. There just isn't a *clean* way * to break out of 2 nested loops. */ if (m_apm_compare(tmp1, MM_Two) <= 0) goto PHASE2; m_apm_subtract(tmp2, tmp1, MM_One); if (iprod1->m_apm_datalength > nd) break; } if (ct == (NDIM - 1)) { /* * if the array has filled up, start multiplying * some of the partial products now. */ m_apm_copy(tmp1, array[mm]); m_apm_multiply(array[mm], iprod1, tmp1); if (mm == 0) { mm = NDIM - 2; ndigits = ndigits << 1; nd = ndigits - 20; } else mm--; } else { /* * store this partial product in the array * and allocate the next array element */ m_apm_copy(array[ct], iprod1); array[++ct] = m_apm_init(); } } PHASE2: m_apm_copy(array[ct], iprod1); kk = ct; while (kk != 0) { ii = 0; jj = 0; nmul = (kk + 1) >> 1; while (TRUE) { /* must use tmp var when ii,jj point to same element */ if (ii == 0) { m_apm_copy(tmp1, array[ii]); m_apm_multiply(array[jj], tmp1, array[ii+1]); } else m_apm_multiply(array[jj], array[ii], array[ii+1]); if (++jj == nmul) break; ii += 2; } if ((kk & 1) == 0) { jj = kk >> 1; m_apm_copy(array[jj], array[kk]); } kk = kk >> 1; } m_apm_copy(moutput, array[0]); for (ii=0; ii <= ct; ii++) { m_apm_free(array[ii]); } m_apm_free(tmp1); m_apm_free(tmp2); m_apm_free(iprod1); m_apm_free(iprod2); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_rcp.c0000644001725400016040000000770013232476424013335 00000000000000 /* * M_APM - mapm_rcp.c * * Copyright (C) 2000 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void m_apm_divide(M_APM rr, int places, M_APM aa, M_APM bb) { M_APM tmp0, tmp1; int sn, nexp, dplaces; sn = aa->m_apm_sign * bb->m_apm_sign; if (sn == 0) /* one number is zero, result is zero */ { if (bb->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_divide\', Divide by 0"); } M_set_to_zero(rr); return; } /* * Use the original 'Knuth' method for smaller divides. On the * author's system, this was the *approx* break even point before * the reciprocal method used below became faster. */ if (places < 250) { M_apm_sdivide(rr, places, aa, bb); return; } /* mimic the decimal place behavior of the original divide */ nexp = aa->m_apm_exponent - bb->m_apm_exponent; if (nexp > 0) dplaces = nexp + places; else dplaces = places; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); m_apm_reciprocal(tmp0, (dplaces + 8), bb); m_apm_multiply(tmp1, tmp0, aa); m_apm_round(rr, dplaces, tmp1); M_restore_stack(2); } /****************************************************************************/ void m_apm_reciprocal(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp1, tmp2; int ii, bflag, dplaces, nexp, tolerance; if (aa->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_reciprocal\', Input = 0"); M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); m_apm_absolute_value(tmpN, aa); /* normalize the input number (make the exponent 0) so the 'guess' below will not over/under flow on large magnitude exponents. */ nexp = aa->m_apm_exponent; tmpN->m_apm_exponent -= nexp; m_apm_set_double(guess, (1.0 / m_apm_get_double(tmpN))); tolerance = places + 4; dplaces = places + 16; bflag = FALSE; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate the reciprocal : X = X * [ 2 - N * X ] n+1 */ ii = 0; while (TRUE) { m_apm_multiply(tmp1, tmpN, guess); m_apm_subtract(tmp2, MM_Two, tmp1); m_apm_multiply(tmp1, tmp2, guess); if (bflag) break; m_apm_round(guess, dplaces, tmp1); /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp2, guess, last_x); if (tmp2->m_apm_sign == 0) break; /* * if we are within a factor of 4 on the error term, * we will be accurate enough after the *next* iteration * is complete. */ if ((-4 * tmp2->m_apm_exponent) > tolerance) bflag = TRUE; } m_apm_copy(last_x, guess); ii++; } m_apm_round(rr, places, tmp1); rr->m_apm_exponent -= nexp; rr->m_apm_sign = aa->m_apm_sign; M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmpwr2.c0000644001725400016040000000416313232476424013304 00000000000000 /* * M_APM - mapmpwr2.c * * Copyright (C) 2002 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_integer_pow_nr(M_APM rr, M_APM aa, int mexp) { M_APM tmp0, tmpy, tmpz; int nexp, ii; if (mexp == 0) { m_apm_copy(rr, MM_One); return; } else { if (mexp < 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_integer_pow_nr\', Negative exponent"); M_set_to_zero(rr); return; } } if (mexp == 1) { m_apm_copy(rr, aa); return; } if (mexp == 2) { m_apm_multiply(rr, aa, aa); return; } nexp = mexp; if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } tmp0 = M_get_stack_var(); tmpy = M_get_stack_var(); tmpz = M_get_stack_var(); m_apm_copy(tmpy, MM_One); m_apm_copy(tmpz, aa); while (TRUE) { ii = nexp & 1; nexp = nexp >> 1; if (ii != 0) /* exponent -was- odd */ { m_apm_multiply(tmp0, tmpy, tmpz); if (nexp == 0) break; m_apm_copy(tmpy, tmp0); } m_apm_multiply(tmp0, tmpz, tmpz); m_apm_copy(tmpz, tmp0); } m_apm_copy(rr, tmp0); M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_fpf.c0000644001725400016040000002017113232476424013321 00000000000000 /* * M_APM - mapm_fpf.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ char *m_apm_to_fixpt_stringexp(int dplaces, M_APM atmp, char ch_radx, char ch_sep, int ct_sep) { int places, xp, dl, ii; char *cpr; places = dplaces; dl = atmp->m_apm_datalength; xp = atmp->m_apm_exponent; if (places < 0) /* show ALL digits */ { if (xp < 0) ii = dl - xp; else { if (dl > xp) ii = dl; else ii = xp; } } else { ii = places; if (xp > 0) ii += xp; } if (ct_sep != 0 && ch_sep != 0 && xp > 0) ii += xp / ct_sep; if ((cpr = (char *)MAPM_MALLOC((ii + 32) * sizeof(char))) == NULL) return(NULL); m_apm_to_fixpt_stringex(cpr,places,atmp,ch_radx,ch_sep,ct_sep); return(cpr); } /****************************************************************************/ void m_apm_to_fixpt_stringex(char *s, int dplaces, M_APM atmp, char ch_radix, char ch_sep, int count_sep) { M_APM btmp; char ch, *cpd, *cps; int ii, jj, kk, ct, dl, xp, no_sep_flg, places; btmp = M_get_stack_var(); places = dplaces; cpd = s; no_sep_flg = FALSE; m_apm_absolute_value(btmp, atmp); /* do conversion of positive number */ if (ch_sep == 0 || count_sep == 0) /* no separator char OR count */ no_sep_flg = TRUE; /* determine how much memory to get for the temp string */ dl = btmp->m_apm_datalength; xp = btmp->m_apm_exponent; if (places < 0) /* show ALL digits */ { if (xp < 0) ii = dl - xp; else { if (dl > xp) ii = dl; else ii = xp; } } else { ii = places; if (xp > 0) ii += xp; } if ((cps = (char *)MAPM_MALLOC((ii + 32) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_fixpt_stringex\', Out of memory"); } m_apm_to_fixpt_string(cps, places, btmp); /* * the converted string may be all 'zero', 0.0000... * if so and the original number is negative, * do NOT set the '-' sign of our output string. */ if (atmp->m_apm_sign == -1) /* if input number negative */ { kk = 0; jj = 0; while (TRUE) { ch = cps[kk++]; if ((ch == '\0') || (jj != 0)) break; if (isdigit((int)ch)) { if (ch != '0') jj = 1; } } if (jj) *cpd++ = '-'; } ct = M_strposition(cps, "."); /* find the default (.) radix char */ if (ct == -1) /* if not found .. */ { strcat(cps, "."); /* add one */ ct = M_strposition(cps, "."); /* and then find it */ } if (places == 0) /* int format, terminate at radix char */ cps[ct] = '\0'; else cps[ct] = ch_radix; /* assign the radix char */ /* * if the number is small enough to not have any separator char's ... */ if (ct <= count_sep) no_sep_flg = TRUE; if (no_sep_flg) { strcpy(cpd, cps); } else { jj = 0; kk = count_sep; ii = ct / count_sep; if ((ii = ct - ii * count_sep) == 0) ii = count_sep; while (TRUE) /* write out the first 1,2 */ { /* (up to count_sep) digits */ *cpd++ = cps[jj++]; if (--ii == 0) break; } while (TRUE) /* write rest of the string */ { if (kk == count_sep) /* write a new separator char */ { if (jj != ct) /* unless we're at the radix */ { *cpd++ = ch_sep; /* note that this also disables */ kk = 0; /* the separator char AFTER */ } /* the radix char */ } if ((*cpd++ = cps[jj++]) == '\0') break; kk++; } } MAPM_FREE(cps); M_restore_stack(1); } /****************************************************************************/ void m_apm_to_fixpt_string(char *ss, int dplaces, M_APM mtmp) { M_APM ctmp; void *vp; int places, i2, ii, jj, kk, xp, dl, numb; UCHAR *ucp, numdiv, numrem; char *cpw, *cpd, sbuf[128]; ctmp = M_get_stack_var(); vp = NULL; cpd = ss; places = dplaces; /* just want integer portion if places == 0 */ if (places == 0) { if (mtmp->m_apm_sign >= 0) m_apm_add(ctmp, mtmp, MM_0_5); else m_apm_subtract(ctmp, mtmp, MM_0_5); m_apm_to_integer_string(cpd, ctmp); M_restore_stack(1); return; } if (places > 0) M_apm_round_fixpt(ctmp, places, mtmp); else m_apm_copy(ctmp, mtmp); /* show ALL digits */ if (ctmp->m_apm_sign == 0) /* result is 0 */ { if (places < 0) { cpd[0] = '0'; /* "0.0" */ cpd[1] = '.'; cpd[2] = '0'; cpd[3] = '\0'; } else { memset(cpd, '0', (places + 2)); /* pre-load string with all '0' */ cpd[1] = '.'; cpd[places + 2] = '\0'; } M_restore_stack(1); return; } xp = ctmp->m_apm_exponent; dl = ctmp->m_apm_datalength; numb = (dl + 1) >> 1; if (places < 0) { if (dl > xp) jj = dl + 16; else jj = xp + 16; } else { jj = places + 16; if (xp > 0) jj += xp; } if (jj > 112) { if ((vp = (void *)MAPM_MALLOC((jj + 16) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_fixpt_string\', Out of memory"); } cpw = (char *)vp; } else { cpw = sbuf; } /* * at this point, the number is non-zero and the the output * string will contain at least 1 significant digit. */ if (ctmp->m_apm_sign == -1) /* negative number */ { *cpd++ = '-'; } ucp = ctmp->m_apm_data; ii = 0; /* convert MAPM num to ASCII digits and store in working char array */ while (TRUE) { M_get_div_rem_10((int)(*ucp++), &numdiv, &numrem); cpw[ii++] = numdiv + '0'; cpw[ii++] = numrem + '0'; if (--numb == 0) break; } i2 = ii; /* save for later */ if (places < 0) /* show ALL digits */ { places = dl - xp; if (places < 1) places = 1; } /* pad with trailing zeros if needed */ kk = xp + places + 2 - ii; if (kk > 0) memset(&cpw[ii], '0', kk); if (xp > 0) /* |num| >= 1, NO lead-in "0.nnn" */ { ii = xp + places + 1; jj = 0; for (kk=0; kk < ii; kk++) { if (kk == xp) cpd[jj++] = '.'; cpd[jj++] = cpw[kk]; } cpd[ii] = '\0'; } else /* |num| < 1, have lead-in "0.nnn" */ { jj = 2 - xp; ii = 2 + places; memset(cpd, '0', (ii + 1)); /* pre-load string with all '0' */ cpd[1] = '.'; /* assign decimal point */ for (kk=0; kk < i2; kk++) { cpd[jj++] = cpw[kk]; } cpd[ii] = '\0'; } if (vp != NULL) MAPM_FREE(vp); M_restore_stack(1); } /****************************************************************************/ void M_apm_round_fixpt(M_APM btmp, int places, M_APM atmp) { int xp, ii; xp = atmp->m_apm_exponent; ii = xp + places - 1; M_set_to_zero(btmp); /* assume number is too small so the net result is 0 */ if (ii >= 0) { m_apm_round(btmp, ii, atmp); } else { if (ii == -1) /* next digit is significant which may round up */ { if (atmp->m_apm_data[0] >= 50) /* digit >= 5, round up */ { m_apm_copy(btmp, atmp); btmp->m_apm_data[0] = 10; btmp->m_apm_exponent += 1; btmp->m_apm_datalength = 1; M_apm_normalize(btmp); } } } } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_gcd.c0000644001725400016040000001136713232476424013312 00000000000000 /* * M_APM - mapm_gcd.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * From Knuth, The Art of Computer Programming: * * This is the binary GCD algorithm as described * in the book (Algorithm B) */ void m_apm_gcd(M_APM r, M_APM u, M_APM v) { M_APM tmpM, tmpN, tmpT, tmpU, tmpV; int kk, kr, mm; long pow_2; /* 'is_integer' will return 0 || 1 */ if ((m_apm_is_integer(u) + m_apm_is_integer(v)) != 2) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_gcd\', Non-integer input"); M_set_to_zero(r); return; } if (u->m_apm_sign == 0) { m_apm_absolute_value(r, v); return; } if (v->m_apm_sign == 0) { m_apm_absolute_value(r, u); return; } tmpM = M_get_stack_var(); tmpN = M_get_stack_var(); tmpT = M_get_stack_var(); tmpU = M_get_stack_var(); tmpV = M_get_stack_var(); m_apm_absolute_value(tmpU, u); m_apm_absolute_value(tmpV, v); /* Step B1 */ kk = 0; while (TRUE) { mm = 1; if (m_apm_is_odd(tmpU)) break; mm = 0; if (m_apm_is_odd(tmpV)) break; m_apm_multiply(tmpN, MM_0_5, tmpU); m_apm_copy(tmpU, tmpN); m_apm_multiply(tmpN, MM_0_5, tmpV); m_apm_copy(tmpV, tmpN); kk++; } /* Step B2 */ if (mm) { m_apm_negate(tmpT, tmpV); goto B4; } m_apm_copy(tmpT, tmpU); /* Step: */ B3: m_apm_multiply(tmpN, MM_0_5, tmpT); m_apm_copy(tmpT, tmpN); /* Step: */ B4: if (m_apm_is_even(tmpT)) goto B3; /* Step B5 */ if (tmpT->m_apm_sign == 1) m_apm_copy(tmpU, tmpT); else m_apm_negate(tmpV, tmpT); /* Step B6 */ m_apm_subtract(tmpT, tmpU, tmpV); if (tmpT->m_apm_sign != 0) goto B3; /* * result = U * 2 ^ kk */ if (kk == 0) m_apm_copy(r, tmpU); else { if (kk == 1) m_apm_multiply(r, tmpU, MM_Two); if (kk == 2) m_apm_multiply(r, tmpU, MM_Four); if (kk >= 3) { mm = kk / 28; kr = kk % 28; pow_2 = 1L << kr; if (mm == 0) { m_apm_set_long(tmpN, pow_2); m_apm_multiply(r, tmpU, tmpN); } else { m_apm_copy(tmpN, MM_One); m_apm_set_long(tmpM, 0x10000000L); /* 2 ^ 28 */ while (TRUE) { m_apm_multiply(tmpT, tmpN, tmpM); m_apm_copy(tmpN, tmpT); if (--mm == 0) break; } if (kr == 0) { m_apm_multiply(r, tmpU, tmpN); } else { m_apm_set_long(tmpM, pow_2); m_apm_multiply(tmpT, tmpN, tmpM); m_apm_multiply(r, tmpU, tmpT); } } } } M_restore_stack(5); } /****************************************************************************/ /* * u * v * LCM(u,v) = ------------ * GCD(u,v) */ void m_apm_lcm(M_APM r, M_APM u, M_APM v) { M_APM tmpN, tmpG; tmpN = M_get_stack_var(); tmpG = M_get_stack_var(); m_apm_multiply(tmpN, u, v); m_apm_gcd(tmpG, u, v); m_apm_integer_divide(r, tmpN, tmpG); M_restore_stack(2); } /****************************************************************************/ #ifdef BIG_COMMENT_BLOCK /* * traditional GCD included for reference * (also useful for testing ...) */ /* * From Knuth, The Art of Computer Programming: * * To compute GCD(u,v) * * A1: * if (v == 0) return (u) * A2: * t = u mod v * u = v * v = t * goto A1 */ void m_apm_gcd_traditional(M_APM r, M_APM u, M_APM v) { M_APM tmpD, tmpN, tmpU, tmpV; tmpD = M_get_stack_var(); tmpN = M_get_stack_var(); tmpU = M_get_stack_var(); tmpV = M_get_stack_var(); m_apm_absolute_value(tmpU, u); m_apm_absolute_value(tmpV, v); while (TRUE) { if (tmpV->m_apm_sign == 0) break; m_apm_integer_div_rem(tmpD, tmpN, tmpU, tmpV); m_apm_copy(tmpU, tmpV); m_apm_copy(tmpV, tmpN); } m_apm_copy(r, tmpU); M_restore_stack(4); } /****************************************************************************/ #endif XQilla-2.3.4/src/mapm/mapmcnst.c0000644001725400016040000002352513232476424013364 00000000000000 /* * M_APM - mapmcnst.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" int MM_lc_PI_digits = 0; int MM_lc_log_digits; int MM_cpp_min_precision; /* only used in C++ wrapper */ M_APM MM_Zero = NULL; M_APM MM_One = NULL; M_APM MM_Two = NULL; M_APM MM_Three = NULL; M_APM MM_Four = NULL; M_APM MM_Five = NULL; M_APM MM_Ten = NULL; M_APM MM_0_5 = NULL; M_APM MM_E = NULL; M_APM MM_PI = NULL; M_APM MM_HALF_PI = NULL; M_APM MM_2_PI = NULL; M_APM MM_lc_PI = NULL; M_APM MM_lc_HALF_PI = NULL; M_APM MM_lc_2_PI = NULL; M_APM MM_lc_log2 = NULL; M_APM MM_lc_log10 = NULL; M_APM MM_lc_log10R = NULL; M_APM MM_0_85 = NULL; M_APM MM_5x_125R = NULL; M_APM MM_5x_64R = NULL; M_APM MM_5x_256R = NULL; M_APM MM_5x_Eight = NULL; M_APM MM_5x_Sixteen = NULL; M_APM MM_5x_Twenty = NULL; M_APM MM_LOG_E_BASE_10 = NULL; M_APM MM_LOG_10_BASE_E = NULL; M_APM MM_LOG_2_BASE_E = NULL; M_APM MM_LOG_3_BASE_E = NULL; static char MM_cnst_PI[] = "3.1415926535897932384626433832795028841971693993751058209749445923078\ 1640628620899862803482534211706798214808651328230664709384460955"; static char MM_cnst_E[] = "2.7182818284590452353602874713526624977572470936999595749669676277240\ 76630353547594571382178525166427427466391932003059921817413596629"; static char MM_cnst_log_2[] = "0.6931471805599453094172321214581765680755001343602552541206800094933\ 93621969694715605863326996418687542001481020570685733685520235758"; static char MM_cnst_log_3[] = "1.0986122886681096913952452369225257046474905578227494517346943336374\ 9429321860896687361575481373208878797002906595786574236800422593"; static char MM_cnst_log_10[] = "2.3025850929940456840179914546843642076011014886287729760333279009675\ 7260967735248023599720508959829834196778404228624863340952546508"; static char MM_cnst_1_log_10[] = "0.4342944819032518276511289189166050822943970058036665661144537831658\ 64649208870774729224949338431748318706106744766303733641679287159"; /* * the following constants have ~520 digits each, if needed */ /* static char MM_cnst_PI[] = "3.1415926535897932384626433832795028841971693993751058209749445923078\ 164062862089986280348253421170679821480865132823066470938446095505822\ 317253594081284811174502841027019385211055596446229489549303819644288\ 109756659334461284756482337867831652712019091456485669234603486104543\ 266482133936072602491412737245870066063155881748815209209628292540917\ 153643678925903600113305305488204665213841469519415116094330572703657\ 595919530921861173819326117931051185480744623799627495673518857527248\ 91227938183011949129833673362440656643"; static char MM_cnst_E[] = "2.7182818284590452353602874713526624977572470936999595749669676277240\ 766303535475945713821785251664274274663919320030599218174135966290435\ 729003342952605956307381323286279434907632338298807531952510190115738\ 341879307021540891499348841675092447614606680822648001684774118537423\ 454424371075390777449920695517027618386062613313845830007520449338265\ 602976067371132007093287091274437470472306969772093101416928368190255\ 151086574637721112523897844250569536967707854499699679468644549059879\ 3163688923009879312773617821542499923"; static char MM_cnst_log_2[] = "0.6931471805599453094172321214581765680755001343602552541206800094933\ 936219696947156058633269964186875420014810205706857336855202357581305\ 570326707516350759619307275708283714351903070386238916734711233501153\ 644979552391204751726815749320651555247341395258829504530070953263666\ 426541042391578149520437404303855008019441706416715186447128399681717\ 845469570262716310645461502572074024816377733896385506952606683411372\ 738737229289564935470257626520988596932019650585547647033067936544325\ 47632744951250406069438147104689946506"; static char MM_cnst_log_3[] = "1.0986122886681096913952452369225257046474905578227494517346943336374\ 942932186089668736157548137320887879700290659578657423680042259305198\ 210528018707672774106031627691833813671793736988443609599037425703167\ 959115211455919177506713470549401667755802222031702529468975606901065\ 215056428681380363173732985777823669916547921318181490200301038236301\ 222486527481982259910974524908964580534670088459650857484441190188570\ 876474948670796130858294116021661211840014098255143919487688936798494\ 3022557315353296853452952514592138765"; static char MM_cnst_log_10[] = "2.3025850929940456840179914546843642076011014886287729760333279009675\ 726096773524802359972050895982983419677840422862486334095254650828067\ 566662873690987816894829072083255546808437998948262331985283935053089\ 653777326288461633662222876982198867465436674744042432743651550489343\ 149393914796194044002221051017141748003688084012647080685567743216228\ 355220114804663715659121373450747856947683463616792101806445070648000\ 277502684916746550586856935673420670581136429224554405758925724208241\ 31469568901675894025677631135691929203"; static char MM_cnst_1_log_10[] = "0.4342944819032518276511289189166050822943970058036665661144537831658\ 646492088707747292249493384317483187061067447663037336416792871589639\ 065692210646628122658521270865686703295933708696588266883311636077384\ 905142844348666768646586085135561482123487653435434357317253835622281\ 395603048646652366095539377356176323431916710991411597894962993512457\ 934926357655469077671082419150479910989674900103277537653570270087328\ 550951731440674697951899513594088040423931518868108402544654089797029\ 86328682876262414401345704354613292060"; */ /****************************************************************************/ void M_free_all_cnst() { if (MM_lc_PI_digits != 0) { m_apm_free(MM_Zero); m_apm_free(MM_One); m_apm_free(MM_Two); m_apm_free(MM_Three); m_apm_free(MM_Four); m_apm_free(MM_Five); m_apm_free(MM_Ten); m_apm_free(MM_0_5); m_apm_free(MM_LOG_2_BASE_E); m_apm_free(MM_LOG_3_BASE_E); m_apm_free(MM_E); m_apm_free(MM_PI); m_apm_free(MM_HALF_PI); m_apm_free(MM_2_PI); m_apm_free(MM_lc_PI); m_apm_free(MM_lc_HALF_PI); m_apm_free(MM_lc_2_PI); m_apm_free(MM_lc_log2); m_apm_free(MM_lc_log10); m_apm_free(MM_lc_log10R); m_apm_free(MM_0_85); m_apm_free(MM_5x_125R); m_apm_free(MM_5x_64R); m_apm_free(MM_5x_256R); m_apm_free(MM_5x_Eight); m_apm_free(MM_5x_Sixteen); m_apm_free(MM_5x_Twenty); m_apm_free(MM_LOG_E_BASE_10); m_apm_free(MM_LOG_10_BASE_E); MM_lc_PI_digits = 0; } } /****************************************************************************/ void M_init_trig_globals() { MM_lc_PI_digits = VALID_DECIMAL_PLACES; MM_lc_log_digits = VALID_DECIMAL_PLACES; MM_cpp_min_precision = 30; MM_Zero = m_apm_init(); MM_One = m_apm_init(); MM_Two = m_apm_init(); MM_Three = m_apm_init(); MM_Four = m_apm_init(); MM_Five = m_apm_init(); MM_Ten = m_apm_init(); MM_0_5 = m_apm_init(); MM_LOG_2_BASE_E = m_apm_init(); MM_LOG_3_BASE_E = m_apm_init(); MM_E = m_apm_init(); MM_PI = m_apm_init(); MM_HALF_PI = m_apm_init(); MM_2_PI = m_apm_init(); MM_lc_PI = m_apm_init(); MM_lc_HALF_PI = m_apm_init(); MM_lc_2_PI = m_apm_init(); MM_lc_log2 = m_apm_init(); MM_lc_log10 = m_apm_init(); MM_lc_log10R = m_apm_init(); MM_0_85 = m_apm_init(); MM_5x_125R = m_apm_init(); MM_5x_64R = m_apm_init(); MM_5x_256R = m_apm_init(); MM_5x_Eight = m_apm_init(); MM_5x_Sixteen = m_apm_init(); MM_5x_Twenty = m_apm_init(); MM_LOG_E_BASE_10 = m_apm_init(); MM_LOG_10_BASE_E = m_apm_init(); m_apm_set_string(MM_One, "1"); m_apm_set_string(MM_Two, "2"); m_apm_set_string(MM_Three, "3"); m_apm_set_string(MM_Four, "4"); m_apm_set_string(MM_Five, "5"); m_apm_set_string(MM_Ten, "10"); m_apm_set_string(MM_0_5, "0.5"); m_apm_set_string(MM_0_85, "0.85"); m_apm_set_string(MM_5x_125R, "8.0E-3"); m_apm_set_string(MM_5x_64R, "1.5625E-2"); m_apm_set_string(MM_5x_256R, "3.90625E-3"); m_apm_set_string(MM_5x_Eight, "8"); m_apm_set_string(MM_5x_Sixteen, "16"); m_apm_set_string(MM_5x_Twenty, "20"); m_apm_set_string(MM_LOG_2_BASE_E, MM_cnst_log_2); m_apm_set_string(MM_LOG_3_BASE_E, MM_cnst_log_3); m_apm_set_string(MM_LOG_10_BASE_E, MM_cnst_log_10); m_apm_set_string(MM_LOG_E_BASE_10, MM_cnst_1_log_10); m_apm_set_string(MM_lc_log2, MM_cnst_log_2); m_apm_set_string(MM_lc_log10, MM_cnst_log_10); m_apm_set_string(MM_lc_log10R, MM_cnst_1_log_10); m_apm_set_string(MM_E, MM_cnst_E); m_apm_set_string(MM_PI, MM_cnst_PI); m_apm_multiply(MM_HALF_PI, MM_PI, MM_0_5); m_apm_multiply(MM_2_PI, MM_PI, MM_Two); m_apm_copy(MM_lc_PI, MM_PI); m_apm_copy(MM_lc_HALF_PI, MM_HALF_PI); m_apm_copy(MM_lc_2_PI, MM_2_PI); } /****************************************************************************/ void m_apm_cpp_precision(int digits) { if (MM_lc_PI_digits == 0) { m_apm_free(m_apm_init()); } if (digits >= 2) MM_cpp_min_precision = digits; else MM_cpp_min_precision = 2; } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_set.c0000644001725400016040000001455613273140037013344 00000000000000 /* * M_APM - mapm_set.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_set_long(M_APM atmp, long mm) { int ii, nbytes, len; char *p, *buf, ch, buf2[64]; /* if zero, return right away */ if (mm == 0) { M_set_to_zero(atmp); return; } M_long_2_ascii(buf2, mm); /* convert long -> ascii in base 10 */ buf = buf2; if (mm < 0) { atmp->m_apm_sign = -1; buf++; /* get past '-' sign */ } else { atmp->m_apm_sign = 1; } len = (int) strlen(buf); atmp->m_apm_exponent = len; /* least significant nibble of ODD data-length must be 0 */ if ((len & 1) != 0) { buf[len] = '0'; } /* remove any trailing '0' ... */ while (TRUE) { if (buf[--len] != '0') break; } atmp->m_apm_datalength = ++len; nbytes = (len + 1) >> 1; p = buf; for (ii=0; ii < nbytes; ii++) { ch = *p++ - '0'; atmp->m_apm_data[ii] = 10 * ch + *p++ - '0'; } } /****************************************************************************/ void m_apm_set_string(M_APM ctmp, char *s_in) { char *M_buf; char ch, *cp, *s, *p; void *vp; int i, j, zflag, exponent, sign; if ((M_buf = (char *)MAPM_MALLOC(strlen(s_in) + 32)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_set_string\', Out of memory"); } s = M_buf; strcpy(s,s_in); /* default == zero ... */ M_set_to_zero(ctmp); p = s; while (TRUE) { if (*p == ' ' || *p == '\t') p++; else break; } if (*p == '\0') return; sign = 1; /* assume number is positive */ if (*p == '+') /* scan by optional '+' sign */ p++; else { if (*p == '-') /* check if number negative */ { sign = -1; p++; } } M_lowercase(p); /* convert string to lowercase */ exponent = 0; /* default */ if ((cp = strstr(p,"e")) != NULL) { exponent = atoi(cp + sizeof(char)); *cp = '\0'; /* erase the exponent now */ } j = M_strposition(p,"."); /* is there a decimal point ?? */ if (j == -1) { strcat(p,"."); /* if not, append one */ j = M_strposition(p,"."); /* now find it ... */ } if (j > 0) /* normalize number and adjust exponent */ { exponent += j; memmove((p+1),p,(j * sizeof(char))); } p++; /* scan past implied decimal point now in column 1 (index 0) */ i = (int) strlen(p); ctmp->m_apm_datalength = i; if ((i & 1) != 0) /* if odd number of digits, append a '0' to make it even */ strcat(p,"0"); j = (int) strlen(p) >> 1; /* number of bytes in encoded M_APM number */ /* do we need more memory to hold this number */ if (j > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (j + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_set_string\', Out of memory"); } ctmp->m_apm_malloclength = j + 28; ctmp->m_apm_data = (UCHAR *)vp; } zflag = TRUE; for (i=0; i < j; i++) { ch = *p++ - '0'; if ((ch = (10 * ch + *p++ - '0')) != 0) zflag = FALSE; if (((int)ch & 0xFF) >= 100) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_set_string\' : Non-digit char found in parse"); M_apm_log_error_msg(M_APM_RETURN, "Text ="); M_apm_log_error_msg(M_APM_RETURN, s_in); M_set_to_zero(ctmp); return; } ctmp->m_apm_data[i] = ch; ctmp->m_apm_data[i+1] = 0; } ctmp->m_apm_exponent = exponent; ctmp->m_apm_sign = sign; if (zflag) { ctmp->m_apm_exponent = 0; ctmp->m_apm_sign = 0; ctmp->m_apm_datalength = 1; } else { M_apm_normalize(ctmp); } /* * if our local temp string is getting too big, * release it's memory and start over next time. * (this 1000 byte threshold is quite arbitrary, * it may be more efficient in your app to make * this number bigger). */ MAPM_FREE(M_buf); } /****************************************************************************/ void m_apm_to_string(char *s, int places, M_APM mtmp) { M_APM ctmp; char *cp; int i, index, first, max_i, num_digits, dec_places; UCHAR numdiv, numrem; ctmp = M_get_stack_var(); dec_places = places; if (dec_places < 0) m_apm_copy(ctmp, mtmp); else m_apm_round(ctmp, dec_places, mtmp); if (ctmp->m_apm_sign == 0) { if (dec_places < 0) strcpy(s,"0.0E0"); /* crioux: positive, no sign */ else { strcpy(s,"0"); if (dec_places > 0) strcat(s,"."); for (i=0; i < dec_places; i++) strcat(s,"0"); strcat(s,"E0"); /* crioux: positive, no sign */ } M_restore_stack(1); return; } max_i = (ctmp->m_apm_datalength + 1) >> 1; if (dec_places < 0) num_digits = ctmp->m_apm_datalength; else num_digits = dec_places + 1; cp = s; if (ctmp->m_apm_sign == -1) *cp++ = '-'; first = TRUE; i = 0; index = 0; while (TRUE) { if (index >= max_i) { numdiv = 0; numrem = 0; } else M_get_div_rem_10((int)ctmp->m_apm_data[index],&numdiv,&numrem); index++; *cp++ = numdiv + '0'; if (++i == num_digits) break; if (first) { first = FALSE; *cp++ = '.'; } *cp++ = numrem + '0'; if (++i == num_digits) break; } i = ctmp->m_apm_exponent - 1; if (i >= 0) sprintf(cp,"E%d",i); /* crioux: positive, no sign (could remove branching here) */ else sprintf(cp,"E%d",i); M_restore_stack(1); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmhasn.c0000644001725400016040000000614213232476424013342 00000000000000 /* * M_APM - mapmhasn.c * * Copyright (C) 2000 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * arcsinh(x) == log [ x + sqrt(x^2 + 1) ] */ void m_apm_arcsinh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); local_precision = places + 4; m_apm_multiply(tmp1, aa, aa); m_apm_add(tmp2, tmp1, MM_One); m_apm_sqrt(tmp1, local_precision, tmp2); m_apm_add(tmp2, aa, tmp1); m_apm_log(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* * arccosh(x) == log [ x + sqrt(x^2 - 1) ] * * x >= 1.0 */ void m_apm_arccosh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; int ii, local_precision; ii = m_apm_compare(aa, MM_One); if (ii == -1) /* x < 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccosh\', Argument < 1"); M_set_to_zero(rr); return; } tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); local_precision = places + 4; m_apm_multiply(tmp1, aa, aa); m_apm_subtract(tmp2, tmp1, MM_One); m_apm_sqrt(tmp1, local_precision, tmp2); m_apm_add(tmp2, aa, tmp1); m_apm_log(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* * arctanh(x) == 0.5 * log [ (1 + x) / (1 - x) ] * * |x| < 1.0 */ void m_apm_arctanh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int ii, local_precision; tmp1 = M_get_stack_var(); m_apm_absolute_value(tmp1, aa); ii = m_apm_compare(tmp1, MM_One); if (ii >= 0) /* |x| >= 1.0 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arctanh\', |Argument| >= 1"); M_set_to_zero(rr); M_restore_stack(1); return; } tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 6; m_apm_add(tmp1, MM_One, aa); m_apm_subtract(tmp2, MM_One, aa); m_apm_divide(tmp3, local_precision, tmp1, tmp2); m_apm_log(tmp2, local_precision, tmp3); m_apm_multiply(tmp1, tmp2, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_log.c0000644001725400016040000001155313232476424013333 00000000000000 /* * M_APM - mapm_log.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ /* Calls the LOG function. The formula used is : log10(x) = A * log(x) where A = log (e) [0.43429448190325...] 10 */ void m_apm_log10(M_APM rr, int places, M_APM aa) { int dplaces; M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); dplaces = places + 4; M_check_log_places(dplaces + 45); m_apm_log(tmp9, dplaces, aa); m_apm_multiply(tmp8, tmp9, MM_lc_log10R); m_apm_round(rr, places, tmp8); M_restore_stack(2); /* restore the 2 locals we used here */ } /****************************************************************************/ void m_apm_log(M_APM r, int places, M_APM a) { M_APM tmp0, tmp1, tmp2; int mexp, dplaces; if (a->m_apm_sign <= 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_log\', Negative argument"); M_set_to_zero(r); return; } tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); dplaces = places + 8; /* * if the input is real close to 1, use the series expansion * to compute the log. * * 0.9999 < a < 1.0001 */ m_apm_subtract(tmp0, a, MM_One); if (tmp0->m_apm_sign == 0) /* is input exactly 1 ?? */ { /* if so, result is 0 */ M_set_to_zero(r); M_restore_stack(3); return; } if (tmp0->m_apm_exponent <= -4) { M_log_near_1(r, places, tmp0); M_restore_stack(3); return; } /* make sure our log(10) is accurate enough for this calculation */ /* (and log(2) which is called from M_log_basic_iteration) */ M_check_log_places(dplaces + 25); mexp = a->m_apm_exponent; if (mexp >= -4 && mexp <= 4) { M_log_basic_iteration(r, places, a); } else { /* * use log (x * y) = log(x) + log(y) * * here we use y = exponent of our base 10 number. * * let 'C' = log(10) = 2.3025850929940.... * * then log(x * y) = log(x) + ( C * base_10_exponent ) */ m_apm_copy(tmp2, a); mexp = tmp2->m_apm_exponent - 2; tmp2->m_apm_exponent = 2; /* force number between 10 & 100 */ M_log_basic_iteration(tmp0, dplaces, tmp2); m_apm_set_long(tmp1, (long)mexp); m_apm_multiply(tmp2, tmp1, MM_lc_log10); m_apm_add(tmp1, tmp2, tmp0); m_apm_round(r, places, tmp1); } M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ /* calculate log (1 + x) with the following series: x y = ----- ( |y| < 1 ) x + 2 [ 1 + y ] y^3 y^5 y^7 log [-------] = 2 * [ y + --- + --- + --- ... ] [ 1 - y ] 3 5 7 */ void M_log_near_1(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, tmp2, tmpS, term; int tolerance, local_precision; long m1; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmpS = M_get_stack_var(); term = M_get_stack_var(); tolerance = xx->m_apm_exponent - places - 4; local_precision = places + 8 - xx->m_apm_exponent; m_apm_add(tmp0, xx, MM_Two); m_apm_divide(tmpS, (local_precision + 6), xx, tmp0); m_apm_copy(term, tmpS); m_apm_multiply(tmp0, tmpS, tmpS); m_apm_round(tmp2, (local_precision + 6), tmp0); m1 = 3; while (TRUE) { m_apm_set_long(tmp1, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, tmp1); m_apm_add(tmp1, tmpS, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) break; m_apm_copy(tmpS, tmp1); m1 += 2; } m_apm_multiply(tmp0, MM_Two, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(5); /* restore the 5 locals we used here */ } /****************************************************************************/ XQilla-2.3.4/src/mapm/m_apm.cpp0000644001725400016040000002113213273140037013154 00000000000000 #include "../config/xqilla_config.h" #include void MAPM::create(void) { myVal=makeNew(); } void MAPM::destroy(void) { unref(myVal); myVal=0; } void MAPM::copyFrom(M_APM Nval) { M_APM oldVal=myVal; myVal=Nval; ref(myVal); unref(oldVal); } M_APM MAPM::makeNew(void) { M_APM val=m_apm_init_mt(); /* refcount initialized to 1 by 'm_apm_init' */ return val; } void MAPM::ref(M_APM val) { val->m_apm_refcount++; } void MAPM::unref(M_APM val) { val->m_apm_refcount--; if (val->m_apm_refcount==0) m_apm_free_mt(val); } M_APM MAPM::val(void) { if (myVal->m_apm_refcount==1) /* Return my private myVal */ return myVal; /* Otherwise, our copy of myVal is shared-- we need to make a new private copy. */ M_APM oldVal=myVal; myVal=makeNew(); m_apm_copy(myVal,oldVal); unref(oldVal); return myVal; } M_APM MAPM::cval(void) const { return (M_APM)myVal; } int MAPM::myDigits(void) const { int maxd=m_apm_significant_digits_mt(cval()); if (maxd(const MAPM &m) const { return m_apm_compare(cval(),m.cval())>0; } bool MAPM::operator>=(const MAPM &m) const { return m_apm_compare(cval(),m.cval())>=0; } int MAPM::compare(const MAPM &m) const { return m_apm_compare(cval(),m.cval()); } MAPM operator+(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_add_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator-(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_subtract_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator*(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_multiply_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator/(const MAPM &a,const MAPM &b) { return a.divide(b,a.digits(b)); } MAPM MAPM::divide(const MAPM &m,int toDigits) const { MAPM ret; m_apm_divide_mt(ret.val(),toDigits,cval(),m.cval()); return ret; } MAPM MAPM::divide(const MAPM &m) const { return divide(m,digits(m)); } MAPM & MAPM::operator+=(const MAPM &m) { *this = *this+m; return *this; } MAPM & MAPM::operator-=(const MAPM &m) { *this = *this-m; return *this; } MAPM & MAPM::operator*=(const MAPM &m) { *this = *this*m; return *this; } MAPM & MAPM::operator/=(const MAPM &m) { *this = *this/m; return *this; } int MAPM::sign(void) const { return m_apm_sign(cval()); } int MAPM::exponent(void) const { return m_apm_exponent(cval()); } int MAPM::significant_digits(void) const { return m_apm_significant_digits_mt(cval()); } int MAPM::is_integer(void) const { return m_apm_is_integer(cval()); } int MAPM::is_even(void) const { return m_apm_is_even(cval()); } int MAPM::is_odd(void) const { return m_apm_is_odd(cval()); } MAPM MAPM::abs(void) const { MAPM ret; m_apm_absolute_value(ret.val(),cval()); return ret; } MAPM MAPM::neg(void) const { MAPM ret; m_apm_negate(ret.val(),cval()); return ret; } MAPM MAPM::round(int toDigits) const { MAPM ret; m_apm_round_mt(ret.val(),toDigits,cval()); return ret; } #define MAPM_1aryFuncImpl(func) \ MAPM MAPM::func(int toDigits) const\ {MAPM ret;m_apm_##func##_mt(ret.val(),toDigits,cval());return ret;}\ MAPM MAPM::func(void) const {return func(myDigits());} MAPM_1aryFuncImpl(sqrt) MAPM_1aryFuncImpl(cbrt) MAPM_1aryFuncImpl(log) MAPM_1aryFuncImpl(exp) MAPM_1aryFuncImpl(log10) MAPM_1aryFuncImpl(sin) MAPM_1aryFuncImpl(asin) MAPM_1aryFuncImpl(cos) MAPM_1aryFuncImpl(acos) MAPM_1aryFuncImpl(tan) MAPM_1aryFuncImpl(atan) MAPM_1aryFuncImpl(sinh) MAPM_1aryFuncImpl(asinh) MAPM_1aryFuncImpl(cosh) MAPM_1aryFuncImpl(acosh) MAPM_1aryFuncImpl(tanh) MAPM_1aryFuncImpl(atanh) #undef MAPM_1aryFuncImpl void MAPM::sincos(MAPM &sinR,MAPM &cosR,int toDigits) { m_apm_sin_cos_mt(sinR.val(),cosR.val(),toDigits,cval()); } void MAPM::sincos(MAPM &sinR,MAPM &cosR) { sincos(sinR,cosR,myDigits()); } MAPM MAPM::pow(const MAPM &m,int toDigits) const { MAPM ret; m_apm_pow_mt(ret.val(),toDigits,cval(), m.cval()); return ret; } MAPM MAPM::pow(const MAPM &m) const { return pow(m,digits(m)); } MAPM MAPM::atan2(const MAPM &x,int toDigits) const { MAPM ret; m_apm_arctan2_mt(ret.val(),toDigits,cval(),x.cval()); return ret; } MAPM MAPM::atan2(const MAPM &x) const { return atan2(x,digits(x)); } MAPM MAPM::gcd(const MAPM &m) const { MAPM ret; m_apm_gcd_mt(ret.val(),cval(),m.cval()); return ret; } MAPM MAPM::lcm(const MAPM &m) const { MAPM ret; m_apm_lcm_mt(ret.val(),cval(),m.cval()); return ret; } MAPM MAPM::random(void) { MAPM ret; m_apm_get_random_mt(ret.val()); return ret; } MAPM MAPM::floor(void) const { MAPM ret; m_apm_floor_mt(ret.val(),cval()); return ret; } MAPM MAPM::ceil(void) const { MAPM ret; m_apm_ceil_mt(ret.val(),cval()); return ret; } MAPM MAPM::factorial(void) const { MAPM ret; m_apm_factorial_mt(ret.val(),cval()); return ret; } MAPM MAPM::ipow_nr(int p) const { MAPM ret; m_apm_integer_pow_nr_mt(ret.val(),cval(),p); return ret; } MAPM MAPM::ipow(int p,int toDigits) const { MAPM ret; m_apm_integer_pow_mt(ret.val(),toDigits,cval(),p); return ret; } MAPM MAPM::ipow(int p) const { return ipow(p,myDigits()); } MAPM MAPM::integer_divide(const MAPM &denom) const { MAPM ret; m_apm_integer_divide_mt(ret.val(),cval(),denom.cval()); return ret; } void MAPM::integer_div_rem(const MAPM &denom,MAPM ",MAPM &rem) const { m_apm_integer_div_rem_mt(quot.val(),rem.val(),cval(),denom.cval()); } MAPM MAPM::div(const MAPM &denom) const { return integer_divide(denom); } MAPM MAPM::rem(const MAPM &denom) const { MAPM ret,ignored; integer_div_rem(denom,ignored,ret);return ret; } XQilla-2.3.4/src/mapm/mapmistr.c0000644001725400016040000000447213232476424013376 00000000000000 /* * M_APM - mapmistr.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_to_integer_string(char *s, M_APM mtmp) { void *vp; UCHAR *ucp, numdiv, numrem; char *cp, *p, sbuf[128]; int ct, dl, numb, ii; vp = NULL; ct = mtmp->m_apm_exponent; dl = mtmp->m_apm_datalength; /* * if |input| < 1, result is "0" */ if (ct <= 0 || mtmp->m_apm_sign == 0) { s[0] = '0'; s[1] = '\0'; return; } if (ct > 112) { if ((vp = (void *)MAPM_MALLOC((ct + 32) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_integer_string\', Out of memory"); } cp = (char *)vp; } else { cp = sbuf; } p = cp; ii = 0; /* handle a negative number */ if (mtmp->m_apm_sign == -1) { ii = 1; *p++ = '-'; } /* get num-bytes of data (#digits / 2) to use in the string */ if (ct > dl) numb = (dl + 1) >> 1; else numb = (ct + 1) >> 1; ucp = mtmp->m_apm_data; while (TRUE) { M_get_div_rem_10((int)(*ucp++), &numdiv, &numrem); *p++ = numdiv + '0'; *p++ = numrem + '0'; if (--numb == 0) break; } /* pad with trailing zeros if the exponent > datalength */ if (ct > dl) memset(p, '0', (ct + 1 - dl)); cp[ct + ii] = '\0'; strcpy(s, cp); if (vp != NULL) MAPM_FREE(vp); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_pow.c0000644001725400016040000000654713232476424013366 00000000000000 /* * M_APM - mapm_pow.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM M_last_xx_input; static M_APM M_last_xx_log; static int M_last_log_digits; static int M_size_flag = 0; /****************************************************************************/ void M_free_all_pow() { if (M_size_flag != 0) { m_apm_free(M_last_xx_input); m_apm_free(M_last_xx_log); M_size_flag = 0; } } /****************************************************************************/ /* Calculate the POW function by calling EXP : Y A X = e where A = Y * log(X) */ void m_apm_pow(M_APM rr, int places, M_APM xx, M_APM yy) { int iflag, pflag; char sbuf[64]; M_APM tmp8, tmp9; /* if yy == 0, return 1 */ if (yy->m_apm_sign == 0) { m_apm_copy(rr, MM_One); return; } /* if xx == 0, return 0 */ if (xx->m_apm_sign == 0) { M_set_to_zero(rr); return; } if (M_size_flag == 0) /* init locals on first call */ { M_size_flag = M_get_sizeof_int(); M_last_log_digits = 0; M_last_xx_input = m_apm_init(); M_last_xx_log = m_apm_init(); } /* * if 'yy' is a small enough integer, call the more * efficient _integer_pow function. */ if (m_apm_is_integer(yy)) { iflag = FALSE; if (M_size_flag == 2) /* 16 bit compilers */ { if (yy->m_apm_exponent <= 4) iflag = TRUE; } else /* >= 32 bit compilers */ { if (yy->m_apm_exponent <= 7) iflag = TRUE; } if (iflag) { m_apm_to_integer_string(sbuf, yy); m_apm_integer_pow(rr, places, xx, atoi(sbuf)); return; } } tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* * If parameter 'X' is the same this call as it * was the previous call, re-use the saved log * calculation from last time. */ pflag = FALSE; if (M_last_log_digits >= places) { if (m_apm_compare(xx, M_last_xx_input) == 0) pflag = TRUE; } if (pflag) { m_apm_round(tmp9, (places + 8), M_last_xx_log); } else { m_apm_log(tmp9, (places + 8), xx); M_last_log_digits = places + 2; /* save the 'X' input value and the log calculation */ m_apm_copy(M_last_xx_input, xx); m_apm_copy(M_last_xx_log, tmp9); } m_apm_multiply(tmp8, tmp9, yy); m_apm_exp(rr, places, tmp8); M_restore_stack(2); /* restore the 2 locals we used here */ } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmfmul.c0000644001725400016040000004025513232476424013357 00000000000000 /* * M_APM - mapmfmul.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static int M_firsttimef = TRUE; /* * specify the max size the FFT routine can handle * (in MAPM, #digits = 2 * #bytes) * * this number *must* be an exact power of 2. * * **WORST** case input numbers (all 9's) has shown that * the FFT math will overflow if the #define here is * >= 1048576. On my system, 524,288 worked OK. I will * factor down another factor of 2 to safeguard against * other computers have less precise floating point math. * If you are confident in your system, 524288 will * theoretically work fine. * * the define here allows the FFT algorithm to multiply two * 524,288 digit numbers yielding a 1,048,576 digit result. */ #define MAX_FFT_BYTES 262144 /* * the Divide-and-Conquer multiplication kicks in when the size of * the numbers exceed the capability of the FFT (#define just above). * * #bytes D&C call depth * ------ -------------- * 512K 1 * 1M 2 * 2M 3 * 4M 4 * ... ... * 2.1990E+12 23 * * the following stack sizes are sized to meet the * above 2.199E+12 example, though I wouldn't want to * wait for it to finish... * * Each call requires 7 stack variables to be saved so * we need a stack depth of 23 * 7 + PAD. (we use 164) * * For 'exp_stack', 3 integers also are required to be saved * for each recursive call so we need a stack depth of * 23 * 3 + PAD. (we use 72) * * * If the FFT multiply is disabled, resize the arrays * as follows: * * the following stack sizes are sized to meet the * worst case expected assuming we are multiplying * numbers with 2.14E+9 (2 ^ 31) digits. * * For sizeof(int) == 4 (32 bits) there may be up to 32 recursive * calls. Each call requires 7 stack variables so we need a * stack depth of 32 * 7 + PAD. (we use 240) * * For 'exp_stack', 3 integers also are required to be saved * for each recursive call so we need a stack depth of * 32 * 3 + PAD. (we use 100) */ #ifdef NO_FFT_MULTIPLY #define M_STACK_SIZE 240 #define M_ISTACK_SIZE 100 #else #define M_STACK_SIZE 164 #define M_ISTACK_SIZE 72 #endif static int exp_stack[M_ISTACK_SIZE]; static int exp_stack_ptr; static UCHAR *mul_stack_data[M_STACK_SIZE]; static int mul_stack_data_size[M_STACK_SIZE]; static int M_mul_stack_ptr; static UCHAR *fmul_a1, *fmul_a0, *fmul_a9, *fmul_b1, *fmul_b0, *fmul_b9, *fmul_t0; static int size_flag, bit_limit, stmp, itmp, mii; static M_APM M_ain; static M_APM M_bin; extern void M_fast_multiply(M_APM, M_APM, M_APM); extern void M_fmul_div_conq(UCHAR *, UCHAR *, UCHAR *, int); extern void M_fmul_add(UCHAR *, UCHAR *, int, int); extern int M_fmul_subtract(UCHAR *, UCHAR *, UCHAR *, int); extern void M_fmul_split(UCHAR *, UCHAR *, UCHAR *, int); extern int M_next_power_of_2(int); extern int M_get_stack_ptr(int); extern void M_push_mul_int(int); extern int M_pop_mul_int(void); #ifdef NO_FFT_MULTIPLY extern void M_4_byte_multiply(UCHAR *, UCHAR *, UCHAR *); #else extern void M_fast_mul_fft(UCHAR *, UCHAR *, UCHAR *, int); #endif /* * the following algorithm is used in this fast multiply routine * (sometimes called the divide-and-conquer technique.) * * assume we have 2 numbers (a & b) with 2N digits. * * let : a = (2^N) * A1 + A0 , b = (2^N) * B1 + B0 * * where 'A1' is the 'most significant half' of 'a' and * 'A0' is the 'least significant half' of 'a'. Same for * B1 and B0. * * Now use the identity : * * 2N N N N * ab = (2 + 2 ) A1B1 + 2 (A1-A0)(B0-B1) + (2 + 1)A0B0 * * * The original problem of multiplying 2 (2N) digit numbers has * been reduced to 3 multiplications of N digit numbers plus some * additions, subtractions, and shifts. * * The fast multiplication algorithm used here uses the above * identity in a recursive process. This algorithm results in * O(n ^ 1.585) growth. */ /****************************************************************************/ void M_free_all_fmul() { int k; if (M_firsttimef == FALSE) { m_apm_free(M_ain); m_apm_free(M_bin); for (k=0; k < M_STACK_SIZE; k++) { if (mul_stack_data_size[k] != 0) { MAPM_FREE(mul_stack_data[k]); } } M_firsttimef = TRUE; } } /****************************************************************************/ void M_push_mul_int(int val) { exp_stack[++exp_stack_ptr] = val; } /****************************************************************************/ int M_pop_mul_int() { return(exp_stack[exp_stack_ptr--]); } /****************************************************************************/ void M_fmul_split(UCHAR *x1, UCHAR *x0, UCHAR *xin, int nbytes) { memcpy(x1, xin, nbytes); memcpy(x0, (xin + nbytes), nbytes); } /****************************************************************************/ void M_fast_multiply(M_APM rr, M_APM aa, M_APM bb) { void *vp; int ii, k, nexp, sign; if (M_firsttimef) { M_firsttimef = FALSE; for (k=0; k < M_STACK_SIZE; k++) mul_stack_data_size[k] = 0; size_flag = M_get_sizeof_int(); bit_limit = 8 * size_flag + 1; M_ain = m_apm_init(); M_bin = m_apm_init(); } exp_stack_ptr = -1; M_mul_stack_ptr = -1; m_apm_copy(M_ain, aa); m_apm_copy(M_bin, bb); sign = M_ain->m_apm_sign * M_bin->m_apm_sign; nexp = M_ain->m_apm_exponent + M_bin->m_apm_exponent; if (M_ain->m_apm_datalength >= M_bin->m_apm_datalength) ii = M_ain->m_apm_datalength; else ii = M_bin->m_apm_datalength; ii = (ii + 1) >> 1; ii = M_next_power_of_2(ii); /* Note: 'ii' must be >= 4 here. this is guaranteed by the caller: m_apm_multiply */ k = 2 * ii; /* required size of result, in bytes */ M_apm_pad(M_ain, k); /* fill out the data so the number of */ M_apm_pad(M_bin, k); /* bytes is an exact power of 2 */ if (k > rr->m_apm_malloclength) { if ((vp = MAPM_REALLOC(rr->m_apm_data, (k + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_multiply\', Out of memory"); } rr->m_apm_malloclength = k + 28; rr->m_apm_data = (UCHAR *)vp; } #ifdef NO_FFT_MULTIPLY M_fmul_div_conq(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); #else /* * if the numbers are *really* big, use the divide-and-conquer * routine first until the numbers are small enough to be handled * by the FFT algorithm. If the numbers are already small enough, * call the FFT multiplication now. * * Note that 'ii' here is (and must be) an exact power of 2. */ if (size_flag == 2) /* if still using 16 bit compilers .... */ { M_fast_mul_fft(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } else /* >= 32 bit compilers */ { if (ii > (MAX_FFT_BYTES + 2)) { M_fmul_div_conq(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } else { M_fast_mul_fft(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } } #endif rr->m_apm_sign = sign; rr->m_apm_exponent = nexp; rr->m_apm_datalength = 4 * ii; M_apm_normalize(rr); } /****************************************************************************/ /* * This is the recursive function to perform the multiply. The * design intent here is to have no local variables. Any local * data that needs to be saved is saved on one of the two stacks. */ void M_fmul_div_conq(UCHAR *rr, UCHAR *aa, UCHAR *bb, int sz) { #ifdef NO_FFT_MULTIPLY if (sz == 4) /* multiply 4x4 yielding an 8 byte result */ { M_4_byte_multiply(rr, aa, bb); return; } #else /* * if the numbers are now small enough, let the FFT algorithm * finish up. */ if (sz == MAX_FFT_BYTES) { M_fast_mul_fft(rr, aa, bb, sz); return; } #endif memset(rr, 0, (2 * sz)); /* zero out the result */ mii = sz >> 1; itmp = M_get_stack_ptr(mii); M_push_mul_int(itmp); fmul_a1 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_a0 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_a9 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_b1 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_b0 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_b9 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_t0 = mul_stack_data[itmp]; M_fmul_split(fmul_a1, fmul_a0, aa, mii); M_fmul_split(fmul_b1, fmul_b0, bb, mii); stmp = M_fmul_subtract(fmul_a9, fmul_a1, fmul_a0, mii); stmp *= M_fmul_subtract(fmul_b9, fmul_b0, fmul_b1, mii); M_push_mul_int(stmp); M_push_mul_int(mii); M_fmul_div_conq(fmul_t0, fmul_a0, fmul_b0, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); M_push_mul_int(itmp); M_push_mul_int(stmp); M_push_mul_int(mii); /* to restore all stack variables ... fmul_a1 = mul_stack_data[itmp]; fmul_a0 = mul_stack_data[itmp+1]; fmul_a9 = mul_stack_data[itmp+2]; fmul_b1 = mul_stack_data[itmp+3]; fmul_b0 = mul_stack_data[itmp+4]; fmul_b9 = mul_stack_data[itmp+5]; fmul_t0 = mul_stack_data[itmp+6]; */ fmul_a1 = mul_stack_data[itmp]; fmul_b1 = mul_stack_data[itmp+3]; fmul_t0 = mul_stack_data[itmp+6]; memcpy((rr + sz), fmul_t0, sz); /* first 'add', result is now zero */ /* so we just copy in the bytes */ M_fmul_add(rr, fmul_t0, mii, sz); M_fmul_div_conq(fmul_t0, fmul_a1, fmul_b1, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); M_push_mul_int(itmp); M_push_mul_int(stmp); M_push_mul_int(mii); fmul_a9 = mul_stack_data[itmp+2]; fmul_b9 = mul_stack_data[itmp+5]; fmul_t0 = mul_stack_data[itmp+6]; M_fmul_add(rr, fmul_t0, 0, sz); M_fmul_add(rr, fmul_t0, mii, sz); if (stmp != 0) M_fmul_div_conq(fmul_t0, fmul_a9, fmul_b9, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); fmul_t0 = mul_stack_data[itmp+6]; /* * if the sign of (A1 - A0)(B0 - B1) is positive, ADD to * the result. if it is negative, SUBTRACT from the result. */ if (stmp < 0) { fmul_a9 = mul_stack_data[itmp+2]; fmul_b9 = mul_stack_data[itmp+5]; memset(fmul_b9, 0, (2 * sz)); memcpy((fmul_b9 + mii), fmul_t0, sz); M_fmul_subtract(fmul_a9, rr, fmul_b9, (2 * sz)); memcpy(rr, fmul_a9, (2 * sz)); } if (stmp > 0) M_fmul_add(rr, fmul_t0, mii, sz); M_mul_stack_ptr -= 7; } /****************************************************************************/ /* * special addition function for use with the fast multiply operation */ void M_fmul_add(UCHAR *r, UCHAR *a, int offset, int sz) { int i, j; UCHAR carry; carry = 0; j = offset + sz; i = sz; while (TRUE) { r[--j] += carry + a[--i]; if (r[j] >= 100) { r[j] -= 100; carry = 1; } else carry = 0; if (i == 0) break; } if (carry) { while (TRUE) { r[--j] += 1; if (r[j] < 100) break; r[j] -= 100; } } } /****************************************************************************/ /* * special subtraction function for use with the fast multiply operation */ int M_fmul_subtract(UCHAR *r, UCHAR *a, UCHAR *b, int sz) { int k, jtmp, sflag, nb, borrow; nb = sz; sflag = 0; /* sign flag: assume the numbers are equal */ /* * find if a > b (so we perform a-b) * or a < b (so we perform b-a) */ for (k=0; k < nb; k++) { if (a[k] < b[k]) { sflag = -1; break; } if (a[k] > b[k]) { sflag = 1; break; } } if (sflag == 0) { memset(r, 0, nb); /* zero out the result */ } else { k = nb; borrow = 0; while (TRUE) { k--; if (sflag == 1) jtmp = (int)a[k] - (int)b[k] - borrow; else jtmp = (int)b[k] - (int)a[k] - borrow; if (jtmp >= 0) { r[k] = (UCHAR)jtmp; borrow = 0; } else { r[k] = (UCHAR)(100 + jtmp); borrow = 1; } if (k == 0) break; } } return(sflag); } /****************************************************************************/ int M_next_power_of_2(int n) { int ct, k; if (n <= 2) return(n); k = 2; ct = 0; while (TRUE) { if (k >= n) break; k = k << 1; if (++ct == bit_limit) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_next_power_of_2\', ERROR :sizeof(int) too small ??"); } } return(k); } /****************************************************************************/ int M_get_stack_ptr(int sz) { int i, k; UCHAR *cp; k = ++M_mul_stack_ptr; /* if size is 0, just need to malloc and return */ if (mul_stack_data_size[k] == 0) { if ((i = sz) < 16) i = 16; if ((cp = (UCHAR *)MAPM_MALLOC(i + 4)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_get_stack_ptr\', Out of memory"); } mul_stack_data[k] = cp; mul_stack_data_size[k] = i; } else /* it has been malloc'ed, see if it's big enough */ { if (sz > mul_stack_data_size[k]) { cp = mul_stack_data[k]; if ((cp = (UCHAR *)MAPM_REALLOC(cp, (sz + 4))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_get_stack_ptr\', Out of memory"); } mul_stack_data[k] = cp; mul_stack_data_size[k] = sz; } } return(k); } /****************************************************************************/ #ifdef NO_FFT_MULTIPLY /* * multiply a 4 byte number by a 4 byte number * yielding an 8 byte result. each byte contains * a base 100 'digit', i.e.: range from 0-99. * * MSB LSB * * a,b [0] [1] [2] [3] * result [0] ..... [7] */ void M_4_byte_multiply(UCHAR *r, UCHAR *a, UCHAR *b) { int b0, jj; UCHAR *cp1, *cp2, numdiv, numrem; memset(r, 0, 8); /* zero out 8 byte result */ jj = 3; /* loop for one number [b], un-roll the inner 'loop' [a] */ while (1) { b0 = (int)b[jj]; cp1 = r + (3 + jj); cp2 = cp1 + 1; M_get_div_rem((b0 * a[3]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[2]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[1]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[0]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } if (jj-- == 0) break; } } #endif /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_lg2.c0000644001725400016040000000571413232476424013240 00000000000000 /* * M_APM - mapm_lg2.c * * Copyright (C) 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ /* * compute rr = log(nn) * * input is assumed to not exceed the exponent range of a normal * 'C' double ( |exponent| must be < 308) */ /****************************************************************************/ void M_log_basic_iteration(M_APM rr, int places, M_APM nn) { M_APM tmp0, tmp1, tmp2, tmp3, guess; int ii, maxiter, maxp, tolerance, local_precision; guess = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); M_get_log_guess(guess, nn); tolerance = -(places + 4); maxp = places + 16; local_precision = 18; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(3) ] */ maxiter = (int)(log((double)(places + 2)) * 0.91024) + 3; if (maxiter < 5) maxiter = 5; /* Use the following iteration to solve for log : exp(X) - N X = X - 2 * ------------ n+1 exp(X) + N this is a cubically convergent algorithm (each iteration yields 3X more digits) */ ii = 0; while (TRUE) { m_apm_exp(tmp1, local_precision, guess); m_apm_subtract(tmp3, tmp1, nn); m_apm_add(tmp2, tmp1, nn); m_apm_divide(tmp1, local_precision, tmp3, tmp2); m_apm_multiply(tmp0, MM_Two, tmp1); m_apm_subtract(tmp3, guess, tmp0); if (ii != 0) { if (((3 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'M_log_basic_iteration\', max iteration count reached"); break; } m_apm_round(guess, local_precision, tmp3); local_precision *= 3; if (local_precision > maxp) local_precision = maxp; } m_apm_round(rr, places, tmp3); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapmcbrt.c0000644001725400016040000000650113232476424013342 00000000000000 /* * M_APM - mapmcbrt.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_cbrt(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp7, tmp8, tmp9; int ii, nexp, bflag, tolerance, maxp, local_precision; /* result is 0 if input is 0 */ if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* compute the cube root of the positive number, we'll fix the sign later */ m_apm_absolute_value(tmpN, aa); nexp = 0; /* normalize the input number (make the exponent near 0) so the 'guess' function will not over/under flow on large magnitude exponents. */ if (aa->m_apm_exponent > 2) { nexp = aa->m_apm_exponent / 3; tmpN->m_apm_exponent -= 3 * nexp; } if (aa->m_apm_exponent < -2) { nexp = aa->m_apm_exponent / 3 - 1; tmpN->m_apm_exponent -= 3 * nexp; } M_get_cbrt_guess(guess, tmpN); tolerance = places + 4; maxp = places + 16; bflag = FALSE; m_apm_multiply(tmp9, guess, guess); m_apm_multiply(tmp8, guess, tmp9); m_apm_subtract(tmp9, tmpN, tmp8); if ((local_precision = 16 - tmp9->m_apm_exponent) < 30) local_precision = 30; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate the cube root : 1 N X = --- * [ 2 * X + --- ] n+1 3 X^2 */ ii = 0; while (TRUE) { m_apm_multiply(tmp8, MM_Two, guess); m_apm_multiply(tmp7, guess, guess); m_apm_divide(tmp9, local_precision, tmpN, tmp7); m_apm_add(tmp7, tmp8, tmp9); m_apm_divide(guess, local_precision, tmp7, MM_Three); if (bflag) break; /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp8, guess, last_x); if (tmp8->m_apm_sign == 0) break; if ((-4 * tmp8->m_apm_exponent) > tolerance) bflag = TRUE; } if (ii == 0) local_precision *= 2; else local_precision += 2 - 2 * tmp8->m_apm_exponent; if (local_precision > maxp) local_precision = maxp; m_apm_copy(last_x, guess); ii++; } m_apm_round(rr, places, guess); rr->m_apm_exponent += nexp; rr->m_apm_sign = aa->m_apm_sign; M_restore_stack(6); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_sin.c0000644001725400016040000000717113232476424013344 00000000000000 /* * M_APM - mapm_sin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_sin(M_APM r, int places, M_APM a) { M_APM tmp3; tmp3 = M_get_stack_var(); M_limit_angle_to_pi(tmp3, (places + 6), a); M_5x_sin(r, places, tmp3); M_restore_stack(1); } /****************************************************************************/ void m_apm_cos(M_APM r, int places, M_APM a) { M_APM tmp3; tmp3 = M_get_stack_var(); M_limit_angle_to_pi(tmp3, (places + 6), a); M_4x_cos(r, places, tmp3); M_restore_stack(1); } /****************************************************************************/ void m_apm_sin_cos(M_APM sinv, M_APM cosv, int places, M_APM aa) { M_APM tmp5, tmp6, tmp7; tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); M_limit_angle_to_pi(tmp5, (places + 6), aa); M_4x_cos(tmp7, (places + 6), tmp5); /* * compute sin(x) = sqrt(1 - cos(x) ^ 2). * * note that the sign of 'sin' will always be positive after the * sqrt call. we need to adjust the sign based on what quadrant * the original angle is in. */ M_cos_to_sin(tmp6, (places + 6), tmp7); if (tmp6->m_apm_sign != 0) tmp6->m_apm_sign = tmp5->m_apm_sign; m_apm_round(sinv, places, tmp6); m_apm_round(cosv, places, tmp7); M_restore_stack(3); } /****************************************************************************/ void m_apm_tan(M_APM r, int places, M_APM a) { M_APM tmps, tmpc, tmp0; tmps = M_get_stack_var(); tmpc = M_get_stack_var(); tmp0 = M_get_stack_var(); m_apm_sin_cos(tmps, tmpc, (places + 4), a); /* tan(x) = sin(x) / cos(x) */ m_apm_divide(tmp0, (places + 4), tmps, tmpc); m_apm_round(r, places, tmp0); M_restore_stack(3); } /****************************************************************************/ void M_limit_angle_to_pi(M_APM rr, int places, M_APM aa) { M_APM tmp7, tmp8, tmp9; M_check_PI_places(places); tmp9 = M_get_stack_var(); m_apm_copy(tmp9, MM_lc_PI); if (m_apm_compare(aa, tmp9) == 1) /* > PI */ { tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); m_apm_add(tmp7, aa, tmp9); m_apm_integer_divide(tmp9, tmp7, MM_lc_2_PI); m_apm_multiply(tmp8, tmp9, MM_lc_2_PI); m_apm_subtract(tmp9, aa, tmp8); m_apm_round(rr, places, tmp9); M_restore_stack(3); return; } tmp9->m_apm_sign = -1; if (m_apm_compare(aa, tmp9) == -1) /* < -PI */ { tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); m_apm_add(tmp7, aa, tmp9); m_apm_integer_divide(tmp9, tmp7, MM_lc_2_PI); m_apm_multiply(tmp8, tmp9, MM_lc_2_PI); m_apm_subtract(tmp9, aa, tmp8); m_apm_round(rr, places, tmp9); M_restore_stack(3); return; } m_apm_copy(rr, aa); M_restore_stack(1); } /****************************************************************************/ XQilla-2.3.4/src/mapm/mapm_mul.c0000644001725400016040000000650313232476424013346 00000000000000 /* * M_APM - mapm_mul.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" extern void M_fast_multiply(M_APM, M_APM, M_APM); /****************************************************************************/ void m_apm_multiply(M_APM r, M_APM a, M_APM b) { int ai, itmp, sign, nexp, ii, jj, index1, index2, indexr, index0, numdigits; UCHAR *cp, *cp_div, *cp_rem; void *vp; sign = a->m_apm_sign * b->m_apm_sign; nexp = a->m_apm_exponent + b->m_apm_exponent; if (sign == 0) /* one number is zero, result is zero */ { M_set_to_zero(r); return; } numdigits = a->m_apm_datalength + b->m_apm_datalength; index1 = (a->m_apm_datalength + 1) >> 1; index2 = (b->m_apm_datalength + 1) >> 1; /* * If we are multiplying 2 'big' numbers, use the fast algorithm. * * This is a **very** approx break even point between this algorithm * and the FFT multiply. Note that different CPU's, operating systems, * and compiler's may yield a different break even point. This point * (~96 decimal digits) is how the experiment came out on the * author's system. */ if (index1 >= 48 && index2 >= 48) { M_fast_multiply(r, a, b); return; } ii = (numdigits + 1) >> 1; /* required size of result, in bytes */ if (ii > r->m_apm_malloclength) { if ((vp = MAPM_REALLOC(r->m_apm_data, (ii + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_multiply\', Out of memory"); } r->m_apm_malloclength = ii + 28; r->m_apm_data = (UCHAR *)vp; } M_get_div_rem_addr(&cp_div, &cp_rem); index0 = index1 + index2; cp = r->m_apm_data; memset(cp, 0, index0); ii = index1; while (TRUE) { indexr = --index0; jj = index2; ai = (int)a->m_apm_data[--ii]; while (TRUE) { itmp = ai * b->m_apm_data[--jj]; /* * M_get_div_rem(itmp, &numdiv, &numrem); * cp[indexr] += numrem; * cp[indexr-1] += numdiv; */ cp[indexr] += cp_rem[itmp]; cp[indexr-1] += cp_div[itmp]; if (cp[indexr] >= 100) { cp[indexr] -= 100; cp[indexr-1] += 1; } indexr--; if (cp[indexr] >= 100) { cp[indexr] -= 100; cp[indexr-1] += 1; } if (jj == 0) break; } if (ii == 0) break; } r->m_apm_sign = sign; r->m_apm_exponent = nexp; r->m_apm_datalength = numdigits; M_apm_normalize(r); } /****************************************************************************/ XQilla-2.3.4/src/utils/0000755001725400016040000000000013273141207011646 500000000000000XQilla-2.3.4/src/utils/UnicodeTransformer.cpp0000644001725400016040000001353413273140037016111 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include extern "C" { #include } #define NO_COMPOSITION 0xFFFFFFFF using namespace std; #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static XMLCh* transformUTF16(const XMLCh *source, int options, XPath2MemoryManager *mm) { // Count word number ssize_t srcSize; const XMLCh* pch = source; for (srcSize = 0; *pch++; srcSize++); // Create a piece of buffer for storaging result. The size is larger than the // source for decompressing/SpecialCasing/Casefolding and so on. The code // consider that a "double size" is enough for most of applied environment. // If the size is not enough, the buffer will be enlarge. ssize_t dstSize = srcSize * 2 + 1; if (dstSize < 1024) dstSize = 1024; AutoDeallocate buf(mm, dstSize * sizeof(int32_t)); // Begin transform ssize_t result = utf16proc_decompose((const uint16_t *)source, srcSize, (int32_t*)buf.get(), dstSize, options); // do nothig if hits internal errors if (result < 0) return 0; // Create a new buffer if the buffer is not large enough if (result > dstSize) { // We have to create a bigger one. dstSize = result + 1; XMLCh* moreMm = (XMLCh*)mm->allocate(dstSize*sizeof(int32_t)); buf.set(moreMm); result = utf16proc_decompose((const uint16_t *)source, srcSize, (int32_t*)buf.get(), dstSize, options); if (result < 0 || result > dstSize) return 0; } result = utf16proc_reencode((int32_t*)buf.get(), result, options); if (result < 0) return 0; // Write the end and push it into stream XMLCh* output = (XMLCh *)buf.adopt(); output[result] = XMLCh(0); return output; } XMLCh* UnicodeTransformer::normalizeC(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeD(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeKC(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPAT | UTF8PROC_COMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeKD(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPAT | UTF8PROC_DECOMPOSE, mm); } XMLCh* UnicodeTransformer::caseFold(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_CASEFOLD, mm); } XMLCh* UnicodeTransformer::removeDiacritics(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE | UTF8PROC_REMOVE_DIACRITIC, mm); } XMLCh* UnicodeTransformer::caseFoldAndRemoveDiacritics(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE | UTF8PROC_CASEFOLD | UTF8PROC_REMOVE_DIACRITIC, mm); } XMLCh* UnicodeTransformer::lowerCase(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_LOWERCASE, mm); } XMLCh* UnicodeTransformer::upperCase(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_UPPERCASE, mm); } XMLCh* UnicodeTransformer::words(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_WORDBOUND, mm); } XMLCh* UnicodeTransformer::sentences(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_SENTENCEBOUND, mm); } XMLCh* UnicodeTransformer::wordsAndSentences(const XMLCh* source, XPath2MemoryManager *mm) { AutoDeallocate tmp(transformUTF16(source, UTF8PROC_STRIPCC, mm), mm); return transformUTF16(tmp.get(), UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND, mm); } XMLCh* UnicodeTransformer::transform(const XMLCh* source, int options, XPath2MemoryManager *mm) { return transformUTF16(source, options, mm); } bool UnicodeTransformer::isPunctuation(const XMLCh* source, int &codeSize) { codeSize = 1; if((*source) >=0xD800 && (*source) <= 0xDBFF){ codeSize = 2; } const utf8proc_property_t *property; if(codeSize == 2){ int32_t* uc = (int32_t *)source; property = utf8proc_get_property(*uc); } else { property = utf8proc_get_property(*source); } if(property->category == UTF8PROC_CATEGORY_PC || property->category == UTF8PROC_CATEGORY_PD || property->category == UTF8PROC_CATEGORY_PS || property->category == UTF8PROC_CATEGORY_PE || property->category == UTF8PROC_CATEGORY_PI || property->category == UTF8PROC_CATEGORY_PF || property->category == UTF8PROC_CATEGORY_PO) return true; return false; } bool UnicodeTransformer::isSpaceSeparator(const XMLCh* source) { const utf8proc_property_t *property; property = utf8proc_get_property(*source); if(property->category == UTF8PROC_CATEGORY_ZS) return true; return false; } bool UnicodeTransformer::isSpacesOrPunctuations(const XMLCh* start, const XMLCh* end) { const XMLCh* tmp = start; int codeLen = 1; while(tmp != end){ if( !isSpaceSeparator(tmp) || !isPunctuation(tmp, codeLen)) return false; tmp = tmp + codeLen;; } return true; } XQilla-2.3.4/src/utils/UTF8Str.cpp0000644001725400016040000000362413273140037013516 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include XERCES_CPP_NAMESPACE_USE; UTF8Str::UTF8Str(const XMLCh* const toTranscode, MemoryManager *mm) : str_(0), mm_(mm) { if(toTranscode == 0) { str_ = mm_ ? (XMLByte*)mm_->allocate(1 * sizeof(XMLByte)) : new XMLByte[1]; str_[0] = 0; } else { XERCES_CPP_NAMESPACE_QUALIFIER XMLUTF8Transcoder t(0, 512); size_t l = XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(toTranscode); const size_t needed = l * 3 + 1; // 3 bytes per XMLCh is the worst case, + '\0' str_ = mm_ ? (XMLByte*)mm_->allocate(needed * sizeof(XMLByte)) : new XMLByte[needed]; #if _XERCES_VERSION >= 30000 XMLSize_t charsEaten= 0; t.transcodeTo(toTranscode, l+1, str_, needed, charsEaten, XERCES_CPP_NAMESPACE_QUALIFIER XMLTranscoder::UnRep_Throw); #else unsigned int charsEaten= 0; t.transcodeTo(toTranscode, (unsigned int)l+1, str_, (unsigned int)needed, charsEaten, XERCES_CPP_NAMESPACE_QUALIFIER XMLTranscoder::UnRep_Throw); #endif } } UTF8Str::~UTF8Str() { if(str_) { if(mm_) mm_->deallocate(str_); else delete [] str_; } } XQilla-2.3.4/src/utils/DateUtils.cpp0000644001725400016040000002541113273140037014173 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include // for sprintf #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW__) #define snprintf _snprintf #endif #include "DateUtils.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const int DateUtils::g_secondsPerMinute = 60; const int DateUtils::g_minutesPerHour = 60; const int DateUtils::g_hoursPerDay = 24; const int DateUtils::g_secondsPerHour = DateUtils::g_secondsPerMinute*DateUtils::g_minutesPerHour; const int DateUtils::g_secondsPerDay = DateUtils::g_secondsPerHour*DateUtils::g_hoursPerDay; void DateUtils::formatNumber(int value, int minDigits, XMLBuffer& buffer) { bool bIsNegative=false; if(value<0) { bIsNegative=true; value=-value; } XMLCh tmpBuff[19]; XMLString::binToText(value,tmpBuff,18,10); if(bIsNegative) buffer.append(chDash); for(int len = XPath2Utils::intStrlen(tmpBuff);len INT_MAX) { XQThrow2(XPath2TypeCastException, X("DateUtils::asInt"), X("Invalid representation of an int [err:FORG0001]")); } else { return NumUtils::MAPMtoInt(num); } } static int days_before_month[] = { 0, 0+31, 0+31+28, 0+31+28+31, 0+31+28+31+30, 0+31+28+31+30+31, 0+31+28+31+30+31+30, 0+31+28+31+30+31+30+31, 0+31+28+31+30+31+30+31+31, 0+31+28+31+30+31+30+31+31+30, 0+31+28+31+30+31+30+31+31+30+31, 0+31+28+31+30+31+30+31+31+30+31+30 }; static int days_before_month_leap[] = { 0, 0+31, 0+31+29, 0+31+29+31, 0+31+29+31+30, 0+31+29+31+30+31, 0+31+29+31+30+31+30, 0+31+29+31+30+31+30+31, 0+31+29+31+30+31+30+31+31, 0+31+29+31+30+31+30+31+31+30, 0+31+29+31+30+31+30+31+31+30+31, 0+31+29+31+30+31+30+31+31+30+31+30 }; MAPM DateUtils::convertDMY2Absolute(MAPM day, MAPM month, MAPM year) { MAPM prevYear = year - 1; if(year.sign() < 0) ++prevYear; MAPM absolute = ( prevYear * 365 ) + prevYear.integer_divide(4) - prevYear.integer_divide(100) + prevYear.integer_divide(400); if(isLeapYear(year)) absolute+=days_before_month_leap[asInt(month)-1]; else absolute+=days_before_month[asInt(month)-1]; absolute+= day; return absolute - 1; } static int days_in_400_years = 400*365 + 400/4 - 400/100 + 400/400; static int days_in_100_years = 100*365 + 100/4 - 100/100; static int days_in_4_years = 4*365 + 4/4; static int days_in_1_years = 1*365; static inline int daysInYear(const MAPM &year) { return DateUtils::isLeapYear(year) ? 366 : 365; } void DateUtils::convertAbsolute2DMY(MAPM absolute, MAPM& day, MAPM& month, MAPM& year) { absolute += 1; bool bc = absolute.sign() <= 0; bool fix = false; MAPM div, rem; absolute.integer_div_rem(days_in_400_years, div, rem); year = div * 400; absolute = rem; absolute.integer_div_rem(days_in_100_years, div, rem); if(div <= -4) fix = true; if(div >= 4) { div -= 1; rem += days_in_100_years; } year += div * 100; absolute = rem; absolute.integer_div_rem(days_in_4_years, div, rem); year += div * 4; absolute = rem; absolute.integer_div_rem(days_in_1_years, div, rem); if(div <= -4) fix = true; if(div >= 4) { div -= 1; rem += days_in_1_years; } year += div; absolute = rem; if(bc) { if(fix && absolute.sign() == 0) { // Correct off by one error in year calculations // due to negative leap years absolute += 1; } else { --year; absolute += daysInYear(year); } } else { if(absolute.sign() != 0) { ++year; } } month = 12; day = 31; int *days = isLeapYear(year) ? days_before_month_leap : days_before_month; for(int i = 11; i >= 0; --i) { if(absolute > days[i]) { month = i + 1; day = absolute - days[i]; break; } } } const ATDateOrDerived::Ptr DateUtils::getCurrentDate(const DynamicContext* context) { // We get the current time and adjust it to our timezone. We then set // this timezone in the Date object. time_t curDate = context->getCurrentTime(); // Note using localtime uses the tzset() function used by // DateUtils::getImplicitTimezone. This function and getImplicitTimezone // MUST get the same value in order for the correct time to be stored. struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02d", curLocalDate.tm_year+1900, curLocalDate.tm_mon+1, curLocalDate.tm_mday); const ATDateOrDerived::Ptr date = context->getItemFactory()-> createDate(context->getMemoryManager()->getPooledString(szDate), context); return date->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } const ATDateTimeOrDerived::Ptr DateUtils::getCurrentDateTime(const DynamicContext* context) { // We get the current time and adjust it to our timezone. We then set // this timezone in the DateTime object. time_t curDate = context->getCurrentTime(); // Note using localtime uses the tzset() function used by // DateUtils::getImplicitTimezone. This function and getImplicitTimezone // MUST get the same value in order for the correct time to be stored. struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02dT%02d:%02d:%02d", curLocalDate.tm_year+1900, curLocalDate.tm_mon+1, curLocalDate.tm_mday, curLocalDate.tm_hour, curLocalDate.tm_min, curLocalDate.tm_sec); const ATDateTimeOrDerived::Ptr dateTime = context->getItemFactory()-> createDateTime(context->getMemoryManager()->getPooledString(szDate), context); return dateTime->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } const ATTimeOrDerived::Ptr DateUtils::getCurrentTime(const DynamicContext* context) { time_t curDate = context->getCurrentTime(); struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%02d:%02d:%02d", curLocalDate.tm_hour, curLocalDate.tm_min, curLocalDate.tm_sec); const ATTimeOrDerived::Ptr time = context->getItemFactory()-> createTime(context->getMemoryManager()->getPooledString(szDate), context); return time->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } static XMLMutex *time_mutex = 0; void DateUtils::initialize() { if(time_mutex == 0) { time_mutex = new XMLMutex(); } } void DateUtils::terminate() { delete time_mutex; time_mutex = 0; } struct tm *DateUtils::threadsafe_localtime(const time_t *timep, struct tm *result) { XMLMutexLock lock(time_mutex); struct tm *tmp = ::localtime(timep); memcpy(result, tmp, sizeof(struct tm)); return result; } struct tm *DateUtils::threadsafe_gmtime(const time_t *timep, struct tm *result) { XMLMutexLock lock(time_mutex); struct tm *tmp = ::gmtime(timep); memcpy(result, tmp, sizeof(struct tm)); return result; } XQilla-2.3.4/src/utils/XPath2NSUtils.cpp0000644001725400016040000000424613273140037014670 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh* XPath2NSUtils::getLocalName(const XMLCh* name) { unsigned int len=XPath2Utils::uintStrlen(name); for(unsigned int i = 0; i < len; i++) { if(name[i] == chColon) { return name+i+1; } } return name; } const XMLCh* XPath2NSUtils::getPrefix(const XMLCh* name, XPath2MemoryManager* memMgr) { unsigned int len=XPath2Utils::uintStrlen(name); for(unsigned int i = 0; i < len; i++) { if(name[i] == chColon) { return XPath2Utils::subString(name, 0, i, memMgr); } } return XMLUni::fgZeroLenString; } const XMLCh* XPath2NSUtils::qualifyName(const XMLCh* prefix, const XMLCh* name, XPath2MemoryManager* memMgr) { if (prefix != NULL) { XMLCh colon[2] = {chColon, chNull}; return XPath2Utils::concatStrings(prefix, colon, name, memMgr); } else { return name; } } DOMNode *XPath2NSUtils::getParent(const DOMNode *node) { if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { return (static_cast(node))->getOwnerElement(); } else { return node->getParentNode(); } } XQilla-2.3.4/src/utils/ContextUtils.cpp0000644001725400016040000000223013273140037014734 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include "DateUtils.hpp" #include int ContextUtils::getTimezone() { time_t tt; time(&tt); struct tm tm; DateUtils::threadsafe_gmtime(&tt, &tm); struct tm ltm; DateUtils::threadsafe_localtime(&tt, <m); return (((int)tt - (int)mktime(&tm)) / 60 + /*daylight saving time*/(ltm.tm_isdst > 0 ? 1 * 60 : 0)) * DateUtils::g_secondsPerMinute; } XQilla-2.3.4/src/utils/DateUtils.hpp0000644001725400016040000001064413273140037014202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATEUTILS_HPP #define _DATEUTILS_HPP #include #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class XMLBuffer; XERCES_CPP_NAMESPACE_END /** Class with static methods for dealing with date operations */ class DateUtils { public: /** * Constants used when doing date math */ static const int g_secondsPerHour, g_secondsPerMinute, g_secondsPerDay, g_minutesPerHour, g_hoursPerDay; /** * Helper function that appends the specified number with the requested precision * to the buffer (by adding 0s before the number so that it always has minDigits digits) */ static void formatNumber(int value, int minDigits, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer); /** * Helper function that appends the specified number with the requested precision * to the buffer (by adding 0s before the number so that it always has minDigits digits) */ static void formatNumber(const MAPM &value, int minDigits, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer); /** * Helper function for adding durations to dateTimes * Returns the greatest integer less than or equal to a/b */ static int fQuotient(int a, int b); /** * Helper function for adding durations to dateTimes * Returns the greatest integer less than or equal to a/b */ static int fQuotient(double a, double b); /** * Helper function for adding durations to dateTimes * Mod function */ static int modulo(int a, int b); /** * Helper function for adding durations to dateTimes * Mod function for seconds part */ static double modulo(double a, double b); /** * Helper function for adding durations to dateTimes * Mod function for seconds part */ static MAPM modulo(MAPM a, MAPM b); /** * Helper function for adding durations for dateTimes * Returns fQuotient(a - low, high - low) */ static int fQuotient(int a, int low, int high); /** * Helper function for adding durations for dateTimes * Returns modulow(a - low, high - low) */ static int modulo(int a, int low, int high); /** * Returns the maximum day of the given month for the given year * month - Value between 1 (January) and 12 (December) */ static int maximumDayInMonthFor(MAPM yearValue, MAPM monthValue); static int maximumDayInMonthFor(int yearValue, int monthValue); /** * Returns whether the yer is a leap year */ static bool isLeapYear(MAPM year); /** * Convert a MAPM to an int (to be used on small numbers!!! */ static int asInt(MAPM num); /** * Convert from day,month,year into the proleptic Gregorian calendar used by XMLSchema */ static MAPM convertDMY2Absolute(MAPM day, MAPM month, MAPM year); /** * Convert the proleptic Gregorian calendar used by XMLSchema into day,month,year */ static void convertAbsolute2DMY(MAPM absolute, MAPM& day, MAPM& month, MAPM& year); /** * Returns the current date as an ATDateOrDerived */ static const ATDateOrDerived::Ptr getCurrentDate(const DynamicContext* context); /** * Returns the current date and time as an ATDateTimeOrDerived */ static const ATDateTimeOrDerived::Ptr getCurrentDateTime(const DynamicContext* context); /** * Returns the current time as an ATTimeOrDerived */ static const ATTimeOrDerived::Ptr getCurrentTime(const DynamicContext* context); static void initialize(); static void terminate(); static struct tm *threadsafe_localtime(const time_t *timep, struct tm *result); static struct tm *threadsafe_gmtime(const time_t *timep, struct tm *result); }; #endif XQilla-2.3.4/src/utils/XMLChCompare.cpp0000644001725400016040000000254713273140037014524 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include bool QNameSort::operator() (const std::pair lhs, const std::pair rhs) const { return XPath2Utils::equals(lhs.first, rhs.first) ? XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs.second, rhs.second) < 0: XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs.first, rhs.first) < 0; } bool XMLChSort::operator() (const XMLCh* lhs, const XMLCh* rhs) const { return XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs, rhs) < 0; } XQilla-2.3.4/src/utils/NumUtils.cpp0000644001725400016040000000335513273140037014060 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include int NumUtils::MAPMtoInt(MAPM m) { /* * In theory no float unit can provide absolutely accuracy * (http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems). Says the * double value is 3, in computer the actual value might be 2.9999999996. * In this case, if we convert it to integer directly, some compilers would * conver the value to "2", not expected "3". * * This phenomenon is not a bug but just due to float unit/arithmetic * accuracy limitation, especially on those imprecise float units like * embedded systems and float unit emulators. * * To solve this accuracy issue, we round the double value with 0.5 before * converting it to integer. This method is a common solution for safely * converting double value to integer. */ double x = m.toDouble(); return (x >= 0 ? (int)(x + 0.5) : (int)(x - 0.5)); } double NumUtils::MAPMtoDouble(MAPM m) { return m.toDouble(); } XQilla-2.3.4/src/utils/XQillaPlatformUtils.cpp0000644001725400016040000001157213273140037016220 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include "../dom-api/XQillaImplementation.hpp" #include "DateUtils.hpp" #include #include #include XERCES_CPP_NAMESPACE_USE; static int gInitFlag = 0; void XQillaPlatformUtils::initialize(MemoryManager *memMgr) { // Make sure we haven't already been initialized. Note that this is not // thread safe and is not intended for that. if(gInitFlag++ == 0) { XMLPlatformUtils::Initialize(XMLUni::fgXercescDefaultLocale, 0, 0, memMgr); XQillaImplementation::initialize(); m_apm_library_initialize(); DateUtils::initialize(); FunctionLookup::initialize(); // Add the extra XQuery types to the built-in datatype registry DatatypeValidatorFactory dvf; #if _XERCES_VERSION >= 30000 // Handled during XMLPlatformUtils::Initialize() in Xerces-C 3.0 #else // Trigger the creation of the built-in datatype registry dvf.expandRegistryToFullSchemaSet(); #endif // Expand the Xerces built-in registry to include xs:anyAtomicType // as a base type DatatypeValidator* dv = new AnyAtomicTypeDatatypeValidator(); dv->setTypeName(AnyAtomicType::fgDT_ANYATOMICTYPE, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); DatatypeValidatorFactory::getBuiltInRegistry()-> put((void*)AnyAtomicType::fgDT_ANYATOMICTYPE, dv); // Add xs:yearMonthDuration as a built-in derived type RefHashTableOf* facets = new RefHashTableOf(1); facets->put((void*) SchemaSymbols::fgELT_PATTERN, new XERCES_CPP_NAMESPACE_QUALIFIER KVStringPair(SchemaSymbols::fgELT_PATTERN, ATDurationOrDerived::pattern_DT_YEARMONTHDURATION)); dvf.createDatatypeValidator(ATDurationOrDerived::fgDT_YEARMONTHDURATION, dvf.getDatatypeValidator(SchemaSymbols::fgDT_DURATION), facets, 0, false, 0, false); // Add xs:dayTimeDuration as a built-in derived type facets = new RefHashTableOf(1); facets->put((void*) SchemaSymbols::fgELT_PATTERN, new XERCES_CPP_NAMESPACE_QUALIFIER KVStringPair(SchemaSymbols::fgELT_PATTERN, ATDurationOrDerived::pattern_DT_DAYTIMEDURATION)); dvf.createDatatypeValidator(ATDurationOrDerived::fgDT_DAYTIMEDURATION, dvf.getDatatypeValidator(SchemaSymbols::fgDT_DURATION), facets, 0, false, 0, false); // Add xs:untypedAtomic as a built-in derived type -- no facets dvf.createDatatypeValidator(ATUntypedAtomic::fgDT_UNTYPEDATOMIC, dvf.getDatatypeValidator(AnyAtomicType::fgDT_ANYATOMICTYPE), 0, 0, false, 0, false); } } void XQillaPlatformUtils::terminate() { if(gInitFlag == 0) { return; } if(--gInitFlag == 0) { DateUtils::terminate(); m_apm_library_terminate(); FunctionLookup::terminate(); XQillaImplementation::terminate(); XMLPlatformUtils::Terminate(); } } void XQillaPlatformUtils::enableExtendedPrecision(bool bEnable) { if(bEnable) { ATDecimalOrDerivedImpl::g_nSignificantDigits=50; ATFloatOrDerivedImpl::g_nSignificantDigits=25; ATDoubleOrDerivedImpl::g_nSignificantDigits=25; } else { ATDecimalOrDerivedImpl::g_nSignificantDigits=18; ATFloatOrDerivedImpl::g_nSignificantDigits=7; ATDoubleOrDerivedImpl::g_nSignificantDigits=16; } } XQilla-2.3.4/src/utils/utf8proc/0000755001725400016040000000000013273141207013420 500000000000000XQilla-2.3.4/src/utils/utf8proc/utf8proc.c0000644001725400016040000012137113273140037015263 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * 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. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ /* * This library contains derived data from a modified version of the * Unicode data files. * * The original data files are available at * http://www.unicode.org/Public/UNIDATA/ * * Please notice the copyright statement in the file "utf8proc_data.c". */ /* * File name: utf8proc.c * Version: 1.1.1 * Last changed: 2007-07-22 * * Description: * Implementation of libutf8proc. */ #include #include "utf8proc_data.h" const int8_t utf8proc_utf8class[256] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; // http://unicode.org/Public/UNIDATA/auxiliary/WordBreakTest.html // "-1" means: the word bound marks int TBD_buf[] should be deleted. // The last value WB_START, is added for detecting the begining of stream. static const int8_t utf8proc_wb_table[][14] = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html // The last value SB_START, is added for detecting the begining of stream. static const int8_t utf8proc_sb_table[][16] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; #define UTF8PROC_HANGUL_SBASE 0xAC00 #define UTF8PROC_HANGUL_LBASE 0x1100 #define UTF8PROC_HANGUL_VBASE 0x1161 #define UTF8PROC_HANGUL_TBASE 0x11A7 #define UTF8PROC_HANGUL_LCOUNT 19 #define UTF8PROC_HANGUL_VCOUNT 21 #define UTF8PROC_HANGUL_TCOUNT 28 #define UTF8PROC_HANGUL_NCOUNT 588 #define UTF8PROC_HANGUL_SCOUNT 11172 // END is exclusive #define UTF8PROC_HANGUL_L_START 0x1100 #define UTF8PROC_HANGUL_L_END 0x115A #define UTF8PROC_HANGUL_L_FILLER 0x115F #define UTF8PROC_HANGUL_V_START 0x1160 #define UTF8PROC_HANGUL_V_END 0x11A3 #define UTF8PROC_HANGUL_T_START 0x11A8 #define UTF8PROC_HANGUL_T_END 0x11FA #define UTF8PROC_HANGUL_S_START 0xAC00 #define UTF8PROC_HANGUL_S_END 0xD7A4 #define UTF8PROC_BOUNDCLASS_START 0 #define UTF8PROC_BOUNDCLASS_OTHER 1 #define UTF8PROC_BOUNDCLASS_CR 2 #define UTF8PROC_BOUNDCLASS_LF 3 #define UTF8PROC_BOUNDCLASS_CONTROL 4 #define UTF8PROC_BOUNDCLASS_EXTEND 5 #define UTF8PROC_BOUNDCLASS_L 6 #define UTF8PROC_BOUNDCLASS_V 7 #define UTF8PROC_BOUNDCLASS_T 8 #define UTF8PROC_BOUNDCLASS_LV 9 #define UTF8PROC_BOUNDCLASS_LVT 10 // WB means WordBreak. The value is defined by // http://unicode.org/Public/UNIDATA/auxiliary/WordBreakTest.html #define WB_OTHER 0 #define WB_CR 1 #define WB_LF 2 #define WB_NEWLINE 3 #define WB_KATAKANA 4 #define WB_ALETTER 5 #define WB_MIDLETTER 6 #define WB_MIDNUM 7 #define WB_MIDNUMLET 8 #define WB_NUMERIC 9 #define WB_EXTENDNUMLET 10 #define WB_FORMATFE 11 #define WB_EXTENDFE 12 #define WB_ALETTER_FORMATFE 13 #define WB_ALETTER_MIDLETTER 14 #define WB_ALETTER_MIDNUMLET 15 #define WB_ALETTER_MIDNUMLET_FORMATFE 16 #define WB_ALETTER_MIDNUM 17 #define WB_NUMERIC_MIDLETTER 18 #define WB_NUMERIC_MIDNUMLET 19 #define WB_NUMERIC_MIDNUM 20 #define WB_NUMERIC_MIDNUMLET_FORMATFE 21 #define WB_START 22 // SB means SentenceBreak. The value is defined by // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html #define SB_OTHER 0 #define SB_CR 1 #define SB_LF 2 #define SB_SEP 3 #define SB_SP 4 #define SB_LOWER 5 #define SB_UPPER 6 #define SB_OLETTER 7 #define SB_NUMERIC 8 #define SB_ATERM 9 #define SB_STERM 10 #define SB_CLOSE 11 #define SB_SCONTINUE 12 #define SB_FORMATFE 13 #define SB_EXTENDFE 14 #define SB_START 15 // Following three BOUD definition are related to upon wb_table/sb_table. #define CANCEL_BOUND -1 // Cancel TBD bounds #define IS_BOUND 1 // Confirmed BOUND #define NOT_BOUND 0 #define UTF8PROC_INVALID_CODE -1 #define PUT(buf, pos, bufsize, ch) {if (pos < bufsize) buf[pos] = ch; pos++;} const char *utf8proc_version(void) { return "1.1.3"; } const char *utf8proc_errmsg(ssize_t errcode) { switch (errcode) { case UTF8PROC_ERROR_NOMEM: return "Memory for processing UTF-8 data could not be allocated."; case UTF8PROC_ERROR_OVERFLOW: return "UTF-8 string is too long to be processed."; case UTF8PROC_ERROR_INVALIDUTF8: return "Invalid UTF-8 string"; case UTF8PROC_ERROR_NOTASSIGNED: return "Unassigned Unicode code point found in UTF-8 string."; case UTF8PROC_ERROR_INVALIDOPTS: return "Invalid options for UTF-8 processing chosen."; default: return "An unknown error occured while processing UTF-8 data."; } } ssize_t utf8proc_iterate(const uint8_t *str, ssize_t strlen, int32_t *dst) { ssize_t length; ssize_t i; int32_t uc = -1; *dst = -1; if (!strlen) return 0; length = utf8proc_utf8class[str[0]]; if (!length) return UTF8PROC_ERROR_INVALIDUTF8; if (strlen >= 0 && length > strlen) return UTF8PROC_ERROR_INVALIDUTF8; for (i=1; i= 0xD800 && uc < 0xE000) || (uc >= 0xFDD0 && uc < 0xFDF0)) uc = -1; break; case 4: uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F); if (uc < 0x10000 || uc >= 0x110000) uc = -1; break; } if (uc < 0 || ((uc & 0xFFFF) >= 0xFFFE)) return UTF8PROC_ERROR_INVALIDUTF8; *dst = uc; return length; } ssize_t utf16proc_iterate(const uint16_t *str, ssize_t strlen, int32_t *dst) { ssize_t length; int32_t uc, w2; // w2 means "the second word" *dst = -1; if (strlen == 0) return 0; uc = *str; if (uc >= 0xD800 && uc <= 0xDBFF) {// two words if (strlen >=0 && strlen < 2) // prevent visiting illegal memory return UTF8PROC_ERROR_INVALIDUTF8; length = 2; w2 = *(str+1); if (w2 < 0xDC00 || w2 > 0xDFFF) return UTF8PROC_ERROR_INVALIDUTF8; uc = ((uc & 0x3ff) << 10) + (w2 & 0x3ff); uc += 0x10000; } else { // single word length = 1; } *dst = uc; return length; } int utf8proc_codepoint_valid(int32_t uc) { if (uc < 0 || uc >= 0x110000 || ((uc & 0xFFFF) >= 0xFFFE) || (uc >= 0xD800 && uc < 0xE000) || (uc >= 0xFDD0 && uc < 0xFDF0)) return false; else return true; } ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst) { if (uc < 0x00) { return 0; } else if (uc < 0x80) { dst[0] = uc; return 1; } else if (uc < 0x800) { dst[0] = 0xC0 + (uc >> 6); dst[1] = 0x80 + (uc & 0x3F); return 2; } else if (uc == 0xFFFF) { dst[0] = 0xFF; return 1; } else if (uc == 0xFFFE) { dst[0] = 0xFE; return 1; } else if (uc < 0x10000) { dst[0] = 0xE0 + (uc >> 12); dst[1] = 0x80 + ((uc >> 6) & 0x3F); dst[2] = 0x80 + (uc & 0x3F); return 3; } else if (uc < 0x110000) { dst[0] = 0xF0 + (uc >> 18); dst[1] = 0x80 + ((uc >> 12) & 0x3F); dst[2] = 0x80 + ((uc >> 6) & 0x3F); dst[3] = 0x80 + (uc & 0x3F); return 4; } else return 0; } ssize_t utf16proc_encode_char(int32_t uc, uint16_t *dst) { if(uc < 0) return 0; if(uc < 0x10000) { *dst = uc; return 1; } else { // ASSERT uc <= 0x10FFFF; uc -= 0x10000; dst[0] = ((uc >> 10) | 0xD800); dst[1] = ((uc & 0x3FF) | 0xDC00); return 2; } return 0; } const utf8proc_property_t *utf8proc_get_property(int32_t uc) { // ASSERT: uc >= 0 && uc < 0x110000 return utf8proc_properties + ( utf8proc_stage2table[ utf8proc_stage1table[uc >> 8] + (uc & 0xFF) ] ); } static void utf8proc_reset_bound_attr(bound_attr_t* attr) { // Free the TBD heap as need if (attr->TBD_heap) free (attr->TBD_heap); attr->cluster = UTF8PROC_BOUNDCLASS_START; attr->word = WB_START; attr->TBD_stack[0] = UTF8PROC_INVALID_CODE; attr->TBD_heap = NULL; attr->TBD_buf_size = sizeof(attr->TBD_stack) / sizeof(attr->TBD_stack[0]); memset(attr->sb_attr_queue, SB_START, sizeof(attr->sb_attr_queue)); return; } void utf8proc_init_bound_attr(bound_attr_t* attr) { if (attr == NULL) return; attr->TBD_heap = NULL; // Must be set to NULL before reseting. attr->filter_callback = NULL; utf8proc_reset_bound_attr(attr); return; } ssize_t utf8proc_flush(int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { ssize_t written = 0; if (options & (UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND)) { int output_sb = true; // At the end of the stream, we have to fetch the chars in TBD_buf if any. int32_t *p = last_bound_attr->TBD_heap ? \ last_bound_attr->TBD_heap : last_bound_attr->TBD_stack; for (; *p != UTF8PROC_INVALID_CODE; p++) { if (*p == UTF8PROC_SB_MARK && output_sb) { // We only output the first confirmed sentence bound. PUT(dst, written, bufsize, UTF8PROC_SB_MARK); output_sb = false; } else PUT(dst, written, bufsize, *p); } // Unicode Standard say that a Word/Sentence Bound Mark should be placed // at the end of stream if (options & UTF8PROC_WORDBOUND) PUT(dst, written, bufsize, UTF8PROC_WB_MARK); if (options & UTF8PROC_SENTENCEBOUND) PUT(dst, written, bufsize, UTF8PROC_SB_MARK); } utf8proc_reset_bound_attr(last_bound_attr); return written; } #define utf8proc_decompose_lump(replacement_uc) \ return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ options & ~UTF8PROC_LUMP, last_bound_attr) ssize_t utf8proc_decompose_char(int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { // ASSERT: uc >= 0 && uc < 0x110000 const utf8proc_property_t *property; utf8proc_propval_t category; int32_t hangul_sindex; property = utf8proc_get_property(uc); category = property->category; hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { int32_t hangul_tindex; if (bufsize >= 1) { dst[0] = UTF8PROC_HANGUL_LBASE + hangul_sindex / UTF8PROC_HANGUL_NCOUNT; if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; } hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; if (!hangul_tindex) return 2; if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; return 3; } } if (last_bound_attr->filter_callback) { // Skip current codepoint if user want to filter it out. if (last_bound_attr->filter_callback(uc) == 0) return 0; } if (options & UTF8PROC_REJECTNA) { if (!category) return UTF8PROC_ERROR_NOTASSIGNED; } if (options & UTF8PROC_IGNORE) { if (property->ignorable) return 0; } if (options & UTF8PROC_REMOVE_DIACRITIC) { if (property->is_diacritic) return 0; } if (options & UTF8PROC_LUMP) { if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) utf8proc_decompose_lump(0x0027); if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) utf8proc_decompose_lump(0x002D); if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); if (uc == 0x2236) utf8proc_decompose_lump(0x003A); if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) utf8proc_decompose_lump(0x003C); if (uc == 0x203A || uc == 0x232A || uc == 0x3009) utf8proc_decompose_lump(0x003E); if (uc == 0x2216) utf8proc_decompose_lump(0x005C); if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) utf8proc_decompose_lump(0x005E); if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) utf8proc_decompose_lump(0x005F); if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); if (uc == 0x2223) utf8proc_decompose_lump(0x007C); if (uc == 0x223C) utf8proc_decompose_lump(0x007E); if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { if (category == UTF8PROC_CATEGORY_ZL || category == UTF8PROC_CATEGORY_ZP) utf8proc_decompose_lump(0x000A); } } if (options & UTF8PROC_STRIPMARK) { if (category == UTF8PROC_CATEGORY_MN || category == UTF8PROC_CATEGORY_MC || category == UTF8PROC_CATEGORY_ME) return 0; } if (options & UTF8PROC_CASEFOLD) { const int32_t mapping = property->casefold_mapping; if (mapping > 0) { return utf8proc_decompose_char(mapping, dst, bufsize, options, last_bound_attr); } else if (mapping < 0) { ssize_t written = 0; const int32_t *entry = utf8proc_sequences + (-mapping); for (; *entry >= 0; entry++) { written += utf8proc_decompose_char(*entry, dst+written, (bufsize > written) ? (bufsize - written) : 0, options, last_bound_attr); if (written < 0) return UTF8PROC_ERROR_OVERFLOW; } return written; } } if (options & (UTF8PROC_UPPERCASE|UTF8PROC_LOWERCASE)) { int32_t value; if (options & UTF8PROC_UPPERCASE) { options &= (~UTF8PROC_UPPERCASE); value = property->uppercase_mapping; } else { options &= (~UTF8PROC_LOWERCASE); value = property->lowercase_mapping; } if (value > 0) { // a single codepoint mapping to x return utf8proc_decompose_char(value, dst, bufsize, options, last_bound_attr); } else if (value == 0) { // no mapping return utf8proc_decompose_char(uc, dst, bufsize, options, last_bound_attr); } else { // -value is the index to special case mapping ssize_t written = 0; const int32_t *p = utf8proc_sequences + (-value); for (; *p>0; p++) { written += utf8proc_decompose_char(*p, dst+written, bufsize-written, options, last_bound_attr); } return written; } } if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { if (property->decomp_mapping != 0 && (!property->decomp_type || (options & UTF8PROC_COMPAT))) { int32_t mapping = property->decomp_mapping; ssize_t written = 0; const int32_t *entry = utf8proc_sequences + (-mapping); // If the mapping is not sequence if (mapping > 0) return utf8proc_decompose_char(mapping, dst, bufsize, options, last_bound_attr); // If the mapping is sequence for (; *entry >= 0; entry++) { written += utf8proc_decompose_char(*entry, dst+written, (bufsize > written) ? (bufsize - written) : 0, options, last_bound_attr); if (written < 0) return UTF8PROC_ERROR_OVERFLOW; } return written; } } if (options & UTF8PROC_CHARBOUND) { int boundary; int tbc, lbc; bound_attr_t* bp = (bound_attr_t *)last_bound_attr; tbc = (uc == 0x000D) ? UTF8PROC_BOUNDCLASS_CR : (uc == 0x000A) ? UTF8PROC_BOUNDCLASS_LF : ((category == UTF8PROC_CATEGORY_ZL || category == UTF8PROC_CATEGORY_ZP || category == UTF8PROC_CATEGORY_CC || category == UTF8PROC_CATEGORY_CF) && !(uc == 0x200C || uc == 0x200D)) ? UTF8PROC_BOUNDCLASS_CONTROL : property->extend ? UTF8PROC_BOUNDCLASS_EXTEND : ((uc >= UTF8PROC_HANGUL_L_START && uc < UTF8PROC_HANGUL_L_END) || uc == UTF8PROC_HANGUL_L_FILLER) ? UTF8PROC_BOUNDCLASS_L : (uc >= UTF8PROC_HANGUL_V_START && uc < UTF8PROC_HANGUL_V_END) ? UTF8PROC_BOUNDCLASS_V : (uc >= UTF8PROC_HANGUL_T_START && uc < UTF8PROC_HANGUL_T_END) ? UTF8PROC_BOUNDCLASS_T : (uc >= UTF8PROC_HANGUL_S_START && uc < UTF8PROC_HANGUL_S_END) ? ( ((uc-UTF8PROC_HANGUL_SBASE) % UTF8PROC_HANGUL_TCOUNT == 0) ? UTF8PROC_BOUNDCLASS_LV : UTF8PROC_BOUNDCLASS_LVT ) : UTF8PROC_BOUNDCLASS_OTHER; lbc = bp->cluster; boundary = (tbc == UTF8PROC_BOUNDCLASS_EXTEND) ? false : (lbc == UTF8PROC_BOUNDCLASS_START) ? true : (lbc == UTF8PROC_BOUNDCLASS_CR && tbc == UTF8PROC_BOUNDCLASS_LF) ? false : (lbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true : (tbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true : (lbc == UTF8PROC_BOUNDCLASS_L && (tbc == UTF8PROC_BOUNDCLASS_L || tbc == UTF8PROC_BOUNDCLASS_V || tbc == UTF8PROC_BOUNDCLASS_LV || tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : ((lbc == UTF8PROC_BOUNDCLASS_LV || lbc == UTF8PROC_BOUNDCLASS_V) && (tbc == UTF8PROC_BOUNDCLASS_V || tbc == UTF8PROC_BOUNDCLASS_T)) ? false : ((lbc == UTF8PROC_BOUNDCLASS_LVT || lbc == UTF8PROC_BOUNDCLASS_T) && tbc == UTF8PROC_BOUNDCLASS_T) ? false : true; bp->cluster = tbc; if (boundary) { if (bufsize >= 1) dst[0] = 0xFFFF; if (bufsize >= 2) dst[1] = uc; return 2; } } if (options & (UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND)) { int word_boundary = NOT_BOUND; int sentence_boundary = NOT_BOUND; int TBD = false; // bool value int TBD_size = last_bound_attr->TBD_buf_size; int32_t *TBD_buf = last_bound_attr->TBD_heap ? \ last_bound_attr->TBD_heap : last_bound_attr->TBD_stack; // Declare some vars for Word/Sentence boundary ssize_t i, written, size; int32_t *write; int output_sb; if (options & UTF8PROC_WORDBOUND) { int tbc = property->word_bound_attr; int lbc = last_bound_attr->word; int old_tbc; // WB_FORMATFE and WB_EXTENDFE are the same in bounding. if (tbc == WB_EXTENDFE) tbc = WB_FORMATFE; if (lbc == WB_EXTENDFE) lbc = WB_FORMATFE; word_boundary = utf8proc_wb_table[lbc][tbc]; switch(lbc) { case WB_ALETTER_FORMATFE: lbc = WB_ALETTER; break; case WB_ALETTER_MIDNUMLET_FORMATFE: lbc = WB_ALETTER_MIDNUMLET; break; case WB_NUMERIC_MIDNUMLET_FORMATFE: lbc = WB_NUMERIC_MIDNUMLET; break; } old_tbc = tbc; switch(lbc) { case WB_ALETTER: switch(tbc) { case WB_FORMATFE: tbc = WB_ALETTER_FORMATFE; break; case WB_MIDLETTER: tbc = WB_ALETTER_MIDLETTER; break; case WB_MIDNUMLET: tbc = WB_ALETTER_MIDNUMLET; break; case WB_MIDNUM: tbc = WB_ALETTER_MIDNUM; break; } break; case WB_ALETTER_MIDNUMLET: switch(tbc) { case WB_FORMATFE: tbc = WB_ALETTER_MIDNUMLET_FORMATFE;break; } break; case WB_NUMERIC: switch(tbc) { case WB_MIDLETTER: tbc = WB_NUMERIC_MIDLETTER; break; case WB_MIDNUMLET: tbc = WB_NUMERIC_MIDNUMLET; break; case WB_MIDNUM: tbc = WB_NUMERIC_MIDNUM; break; } break; case WB_NUMERIC_MIDNUMLET: switch(tbc) { case WB_FORMATFE: tbc = WB_NUMERIC_MIDNUMLET_FORMATFE;break; } break; } if (lbc != WB_START) { if (old_tbc == tbc && tbc == WB_FORMATFE && word_boundary != IS_BOUND) tbc = lbc; if (tbc >= WB_ALETTER_FORMATFE) TBD = true; } last_bound_attr->word = tbc; } if (options & UTF8PROC_SENTENCEBOUND) { int do_not_insert_property = false; int8_t* sb_attr = last_bound_attr->sb_attr_queue; int tbc = property->sentence_bound_attr; int lbc = sb_attr[1]; // WB_FORMATFE and WB_EXTENDFE are the same in bounding. if (tbc == SB_EXTENDFE) tbc = SB_FORMATFE; if (lbc == SB_EXTENDFE) lbc = SB_FORMATFE; sentence_boundary = utf8proc_sb_table[lbc][tbc]; if (tbc == SB_FORMATFE) { TBD = true; if (lbc != SB_SEP && lbc != SB_CR && lbc != SB_LF) do_not_insert_property = true; } // The queue depth is fixed as "2". Rule numbers are defined by: // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html // Rule 4.0 if (lbc == SB_SEP || lbc == SB_CR || lbc == SB_LF) { do_not_insert_property = false; TBD = false; } else if (!do_not_insert_property) { // Rule 7.0 if (sb_attr[0] == SB_UPPER && sb_attr[1] == SB_ATERM && tbc == SB_UPPER) { sentence_boundary = NOT_BOUND; } // Rule 8.0 9.0 and 11.0 else if ((sb_attr[0] == SB_ATERM || sb_attr[0] == SB_STERM) && (sb_attr[1] == SB_CLOSE || sb_attr[1] == SB_SP)) { int determined = false; if (sb_attr[0] == SB_ATERM) { // Rule 8.0 if (tbc != SB_OLETTER && tbc != SB_UPPER && tbc != SB_LOWER && tbc != SB_SEP) { TBD = true; do_not_insert_property = true; } else if (tbc == SB_LOWER) { sentence_boundary = CANCEL_BOUND; determined = true; } else if (tbc == SB_OLETTER || tbc == SB_UPPER) { sentence_boundary = IS_BOUND; determined = true; } } if (!determined) { // Rule 9.0 and 11.0 if (tbc == SB_CLOSE || tbc == SB_SP) { do_not_insert_property = true; if (tbc != sb_attr[1]) { sb_attr[1] = tbc; // Rule 9.0 if (tbc == SB_SP) { sentence_boundary = NOT_BOUND; } else { TBD = true; sentence_boundary = IS_BOUND; } } else { sentence_boundary = NOT_BOUND; } } else { // Rule 11.0 sentence_boundary = utf8proc_sb_table[sb_attr[0]][tbc]; } } } } if (sb_attr[0] == SB_START) { do_not_insert_property = false; TBD = false; } if (sentence_boundary == IS_BOUND) { if (!do_not_insert_property && !TBD) { // clear sentence bound property queue. sb_attr[0] = SB_OTHER; sb_attr[1] = tbc; } } else if (!do_not_insert_property) { // put current property into sentence bound proberty queue. sb_attr[0] = sb_attr[1]; sb_attr[1] = tbc; } } // output result data of word/sentence bounding. written = 0; size = TBD_size; output_sb = true; for (i = 0; i < TBD_size; i++) { if (TBD_buf[i] == UTF8PROC_INVALID_CODE) { write = TBD_buf + i; break; } } // If the buffer is about to be used out, use heap to create a bigger one. // The threshold value is (TBD_size-8), because the max size of writting // a codepoint with a bouding is sure to less then 8. if (i >= (TBD_size - 8)) { TBD_size = TBD_size * 2; // double the size. if (last_bound_attr->TBD_heap) { // If we are using heap already, just realloc a bigger one. TBD_buf = realloc(TBD_buf, TBD_size * sizeof(TBD_buf[0])); if (TBD_buf == NULL) { free(last_bound_attr->TBD_heap); return UTF8PROC_ERROR_NOMEM; } } else { // If using stack, create a heap with double size and copy the TBD data. TBD_buf = malloc(TBD_size * sizeof(TBD_buf[0])); if (TBD_buf == NULL) return UTF8PROC_ERROR_NOMEM; memcpy(TBD_buf, last_bound_attr->TBD_stack, size * sizeof(TBD_buf[0])); } size = TBD_size; write = TBD_buf + i; last_bound_attr->TBD_buf_size = TBD_size; last_bound_attr->TBD_heap = TBD_buf; } if (!TBD) { // Output all confirmed content write = dst; size = bufsize; for (i = 0; i < TBD_size && TBD_buf[i] > 0; i++) { if ((word_boundary == CANCEL_BOUND && TBD_buf[i] == UTF8PROC_WB_MARK)) ; // Do not output canceled WB_MARK else if (TBD_buf[i] == UTF8PROC_SB_MARK) { if (sentence_boundary == CANCEL_BOUND) { ; // Do not output canceled SB_MARK } else if(output_sb) { PUT(write, written, size, UTF8PROC_SB_MARK); output_sb = false; // Only output the first confirmed SB_MARK } } else PUT(write, written, size, TBD_buf[i]); } } if (word_boundary == IS_BOUND) PUT(write, written, size, UTF8PROC_WB_MARK); if (sentence_boundary == IS_BOUND && output_sb) PUT(write, written, size, UTF8PROC_SB_MARK); PUT(write, written, size, uc); if (!TBD) { TBD_buf[0] = UTF8PROC_INVALID_CODE; // reset buffer return written; } else { write[written] = UTF8PROC_INVALID_CODE; // Mark the end return 0; // do not return any thing if the char is "TBD" } } if (bufsize >= 1) *dst = uc; return 1; } ssize_t utf8proc_decompose( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options) { return utf8proc_decompose_with_filter(str, strlen, buffer, bufsize, options, NULL); } ssize_t utf8proc_decompose_with_filter( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options, int (*filter_callback)(int32_t codepoint) ) { // strlen will be ignored, if UTF8PROC_NULLTERM is set in options ssize_t wpos = 0; if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) return UTF8PROC_ERROR_INVALIDOPTS; if ((options & UTF8PROC_STRIPMARK) && !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) return UTF8PROC_ERROR_INVALIDOPTS; if ((options & UTF8PROC_CHARBOUND) && (options & (UTF8PROC_SENTENCEBOUND | UTF8PROC_WORDBOUND))) return UTF8PROC_ERROR_INVALIDOPTS; { int32_t uc; ssize_t rpos = 0; ssize_t decomp_result; bound_attr_t boundclass; utf8proc_init_bound_attr(&boundclass); boundclass.filter_callback = filter_callback; while (1) { if (options & UTF8PROC_NULLTERM) { if (options & UTF8PROC_UTF16) rpos += utf16proc_iterate((uint16_t*)(str + rpos), -1, &uc) * \ sizeof(uint16_t); else rpos += utf8proc_iterate(str + rpos, -1, &uc); // checking of return value is not neccessary, // as 'uc' is < 0 in case of error if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; if (uc == 0) break; } else { if (rpos >= strlen) break; if (options & UTF8PROC_UTF16) rpos += utf16proc_iterate((uint16_t*)(str + rpos), strlen - rpos, &uc) \ * sizeof(uint16_t); else rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; } decomp_result = utf8proc_decompose_char( uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, &boundclass); if (decomp_result < 0) return decomp_result; wpos += decomp_result; // prohibiting integer overflows due to too long strings: if (wpos < 0 || wpos > SSIZE_MAX/sizeof(int32_t)/2) return UTF8PROC_ERROR_OVERFLOW; } wpos += utf8proc_flush(buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, &boundclass); } if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { ssize_t pos = 0; while (pos < wpos-1) { int32_t uc1, uc2; const utf8proc_property_t *property1, *property2; uc1 = buffer[pos]; uc2 = buffer[pos+1]; property1 = utf8proc_get_property(uc1); property2 = utf8proc_get_property(uc2); if (property1->combining_class > property2->combining_class && property2->combining_class > 0) { buffer[pos] = uc2; buffer[pos+1] = uc1; if (pos > 0) pos--; else pos++; } else { pos++; } } } return wpos; } ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options) { // UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored // ASSERT: 'buffer' has one spare byte of free space at the end! if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { ssize_t rpos; ssize_t wpos = 0; int32_t uc; for (rpos = 0; rpos < length; rpos++) { uc = buffer[rpos]; if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { if (options & UTF8PROC_NLF2LS) { if (options & UTF8PROC_NLF2PS) { buffer[wpos++] = 0x000A; } else { buffer[wpos++] = 0x2028; } } else { if (options & UTF8PROC_NLF2PS) { buffer[wpos++] = 0x2029; } else { buffer[wpos++] = 0x0020; } } } else if ((options & UTF8PROC_STRIPCC) && (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { if (uc == 0x0009) buffer[wpos++] = 0x0020; } else { buffer[wpos++] = uc; } } length = wpos; } if (options & UTF8PROC_COMPOSE) { int32_t *starter = NULL; int32_t current_char; const utf8proc_property_t *starter_property = NULL, *current_property; utf8proc_propval_t max_combining_class = -1; ssize_t rpos; ssize_t wpos = 0; int32_t composition; for (rpos = 0; rpos < length; rpos++) { current_char = buffer[rpos]; current_property = utf8proc_get_property(current_char); if (starter && current_property->combining_class > max_combining_class) { // combination perhaps possible int32_t hangul_lindex; int32_t hangul_sindex; hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { int32_t hangul_vindex; hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { *starter = UTF8PROC_HANGUL_SBASE + (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * UTF8PROC_HANGUL_TCOUNT; starter_property = NULL; continue; } } hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { int32_t hangul_tindex; hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { *starter += hangul_tindex; starter_property = NULL; continue; } } if (!starter_property) { starter_property = utf8proc_get_property(*starter); } if (!starter_property->excl_compression && starter_property->comb1st_index >= 0 && current_property->comb2nd_index >= 0) { composition = utf8proc_combinations[ starter_property->comb1st_index + current_property->comb2nd_index ]; if (composition >= 0 && (!(options & UTF8PROC_STABLE) || !(utf8proc_get_property(composition)->comp_exclusion))) { *starter = composition; starter_property = NULL; continue; } } } buffer[wpos] = current_char; if (current_property->combining_class) { if (current_property->combining_class > max_combining_class) { max_combining_class = current_property->combining_class; } } else { starter = buffer + wpos; starter_property = NULL; max_combining_class = -1; } wpos++; } length = wpos; } { ssize_t rpos, wpos = 0; int32_t uc; for (rpos = 0; rpos < length; rpos++) { uc = buffer[rpos]; if (options & UTF8PROC_UTF16) wpos += sizeof(uint16_t) * \ utf16proc_encode_char(uc, (uint16_t*)((uint8_t *)buffer + wpos)); else wpos += utf8proc_encode_char(uc, ((uint8_t *)buffer) + wpos); } ((uint8_t *)buffer)[wpos] = 0; return wpos; } } ssize_t utf8proc_map( const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options ) { int32_t *buffer; ssize_t result; *dstptr = NULL; result = utf8proc_decompose(str, strlen, NULL, 0, options); if (result < 0) return result; buffer = malloc(result * sizeof(int32_t) + 1); if (!buffer) return UTF8PROC_ERROR_NOMEM; result = utf8proc_decompose(str, strlen, buffer, result, options); if (result < 0) { free(buffer); return result; } result = utf8proc_reencode(buffer, result, options); if (result < 0) { free(buffer); return result; } { int32_t *newptr; newptr = realloc(buffer, result+1); if (newptr) buffer = newptr; } *dstptr = (uint8_t *)buffer; return result; } uint8_t *utf8proc_NFD(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE); return retval; } uint8_t *utf8proc_NFC(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE); return retval; } uint8_t *utf8proc_NFKD(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); return retval; } uint8_t *utf8proc_NFKC(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE | UTF8PROC_COMPAT); return retval; } ssize_t utf16proc_reencode(int32_t *buffer, ssize_t length, int options) { ssize_t retval; options |= UTF8PROC_UTF16; retval = utf8proc_reencode(buffer, length, options); return retval < 0 ? retval : (retval/sizeof(uint16_t)); } ssize_t utf16proc_decompose_char(int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { options |= UTF8PROC_UTF16; return utf8proc_decompose_char(uc, dst, bufsize, options, last_bound_attr); } ssize_t utf16proc_decompose(const uint16_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options) { options |= UTF8PROC_UTF16; return utf8proc_decompose((uint8_t*)str, strlen*2, buffer, bufsize, options); } ssize_t utf16proc_map(const uint16_t *str, ssize_t strlen, uint16_t **dstptr, int options) { ssize_t retval; options |= UTF8PROC_UTF16; retval = utf8proc_map((const uint8_t *)str, strlen * sizeof(uint16_t), (uint8_t **)dstptr, options); return retval < 0 ? retval : (retval/sizeof(uint16_t)); } uint16_t *utf16proc_NFD(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE); return retval; } uint16_t *utf16proc_NFC(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE); return retval; } uint16_t *utf16proc_NFKD(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); return retval; } uint16_t *utf16proc_NFKC(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE | UTF8PROC_COMPAT); return retval; } XQilla-2.3.4/src/utils/utf8proc/utf8proc_data.h0000644001725400016040000436056113273140037016273 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * 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. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ #ifndef true #define true 1 #endif #ifndef false #define false 0 #endif const int32_t utf8proc_sequences[] = { 0, -1, 32, 776, -1, 32, 772, -1, 32, 769, -1, 32, 807, -1, 49, 8260, 52, -1, 49, 8260, 50, -1, 51, 8260, 52, -1, 65, 768, -1, 65, 769, -1, 65, 770, -1, 65, 771, -1, 65, 776, -1, 65, 778, -1, 67, 807, -1, 69, 768, -1, 69, 769, -1, 69, 770, -1, 69, 776, -1, 73, 768, -1, 73, 769, -1, 73, 770, -1, 73, 776, -1, 78, 771, -1, 79, 768, -1, 79, 769, -1, 79, 770, -1, 79, 771, -1, 79, 776, -1, 85, 768, -1, 85, 769, -1, 85, 770, -1, 85, 776, -1, 89, 769, -1, 83, 83, -1, 223, -1, 83, 115, -1, 115, 115, -1, 97, 768, -1, 97, 769, -1, 97, 770, -1, 97, 771, -1, 97, 776, -1, 97, 778, -1, 99, 807, -1, 101, 768, -1, 101, 769, -1, 101, 770, -1, 101, 776, -1, 105, 768, -1, 105, 769, -1, 105, 770, -1, 105, 776, -1, 110, 771, -1, 111, 768, -1, 111, 769, -1, 111, 770, -1, 111, 771, -1, 111, 776, -1, 117, 768, -1, 117, 769, -1, 117, 770, -1, 117, 776, -1, 121, 769, -1, 121, 776, -1, 65, 772, -1, 97, 772, -1, 65, 774, -1, 97, 774, -1, 65, 808, -1, 97, 808, -1, 67, 769, -1, 99, 769, -1, 67, 770, -1, 99, 770, -1, 67, 775, -1, 99, 775, -1, 67, 780, -1, 99, 780, -1, 68, 780, -1, 100, 780, -1, 69, 772, -1, 101, 772, -1, 69, 774, -1, 101, 774, -1, 69, 775, -1, 101, 775, -1, 69, 808, -1, 101, 808, -1, 69, 780, -1, 101, 780, -1, 71, 770, -1, 103, 770, -1, 71, 774, -1, 103, 774, -1, 71, 775, -1, 103, 775, -1, 71, 807, -1, 103, 807, -1, 72, 770, -1, 104, 770, -1, 73, 771, -1, 105, 771, -1, 73, 772, -1, 105, 772, -1, 73, 774, -1, 105, 774, -1, 73, 808, -1, 105, 808, -1, 73, 775, -1, 304, -1, 105, 775, -1, 73, 74, -1, 105, 106, -1, 74, 770, -1, 106, 770, -1, 75, 807, -1, 107, 807, -1, 76, 769, -1, 108, 769, -1, 76, 807, -1, 108, 807, -1, 76, 780, -1, 108, 780, -1, 76, 183, -1, 108, 183, -1, 78, 769, -1, 110, 769, -1, 78, 807, -1, 110, 807, -1, 78, 780, -1, 110, 780, -1, 700, 110, -1, 700, 78, -1, 329, -1, 79, 772, -1, 111, 772, -1, 79, 774, -1, 111, 774, -1, 79, 779, -1, 111, 779, -1, 82, 769, -1, 114, 769, -1, 82, 807, -1, 114, 807, -1, 82, 780, -1, 114, 780, -1, 83, 769, -1, 115, 769, -1, 83, 770, -1, 115, 770, -1, 83, 807, -1, 115, 807, -1, 83, 780, -1, 115, 780, -1, 84, 807, -1, 116, 807, -1, 84, 780, -1, 116, 780, -1, 85, 771, -1, 117, 771, -1, 85, 772, -1, 117, 772, -1, 85, 774, -1, 117, 774, -1, 85, 778, -1, 117, 778, -1, 85, 779, -1, 117, 779, -1, 85, 808, -1, 117, 808, -1, 87, 770, -1, 119, 770, -1, 89, 770, -1, 121, 770, -1, 89, 776, -1, 90, 769, -1, 122, 769, -1, 90, 775, -1, 122, 775, -1, 90, 780, -1, 122, 780, -1, 79, 795, -1, 111, 795, -1, 85, 795, -1, 117, 795, -1, 68, 381, -1, 68, 382, -1, 100, 382, -1, 76, 74, -1, 76, 106, -1, 108, 106, -1, 78, 74, -1, 78, 106, -1, 110, 106, -1, 65, 780, -1, 97, 780, -1, 73, 780, -1, 105, 780, -1, 79, 780, -1, 111, 780, -1, 85, 780, -1, 117, 780, -1, 220, 772, -1, 252, 772, -1, 220, 769, -1, 252, 769, -1, 220, 780, -1, 252, 780, -1, 220, 768, -1, 252, 768, -1, 196, 772, -1, 228, 772, -1, 550, 772, -1, 551, 772, -1, 198, 772, -1, 230, 772, -1, 71, 780, -1, 103, 780, -1, 75, 780, -1, 107, 780, -1, 79, 808, -1, 111, 808, -1, 490, 772, -1, 491, 772, -1, 439, 780, -1, 658, 780, -1, 106, 780, -1, 74, 780, -1, 496, -1, 68, 90, -1, 68, 122, -1, 100, 122, -1, 71, 769, -1, 103, 769, -1, 78, 768, -1, 110, 768, -1, 197, 769, -1, 229, 769, -1, 198, 769, -1, 230, 769, -1, 216, 769, -1, 248, 769, -1, 65, 783, -1, 97, 783, -1, 65, 785, -1, 97, 785, -1, 69, 783, -1, 101, 783, -1, 69, 785, -1, 101, 785, -1, 73, 783, -1, 105, 783, -1, 73, 785, -1, 105, 785, -1, 79, 783, -1, 111, 783, -1, 79, 785, -1, 111, 785, -1, 82, 783, -1, 114, 783, -1, 82, 785, -1, 114, 785, -1, 85, 783, -1, 117, 783, -1, 85, 785, -1, 117, 785, -1, 83, 806, -1, 115, 806, -1, 84, 806, -1, 116, 806, -1, 72, 780, -1, 104, 780, -1, 65, 775, -1, 97, 775, -1, 69, 807, -1, 101, 807, -1, 214, 772, -1, 246, 772, -1, 213, 772, -1, 245, 772, -1, 79, 775, -1, 111, 775, -1, 558, 772, -1, 559, 772, -1, 89, 772, -1, 121, 772, -1, 32, 774, -1, 32, 775, -1, 32, 778, -1, 32, 808, -1, 32, 771, -1, 32, 779, -1, 776, 769, -1, 32, 837, -1, 168, 769, -1, 913, 769, -1, 917, 769, -1, 919, 769, -1, 921, 769, -1, 927, 769, -1, 933, 769, -1, 937, 769, -1, 970, 769, -1, 921, 776, 769, -1, 912, -1, 953, 776, 769, -1, 921, 776, -1, 933, 776, -1, 945, 769, -1, 949, 769, -1, 951, 769, -1, 953, 769, -1, 971, 769, -1, 933, 776, 769, -1, 944, -1, 965, 776, 769, -1, 953, 776, -1, 965, 776, -1, 959, 769, -1, 965, 769, -1, 969, 769, -1, 978, 769, -1, 978, 776, -1, 1045, 768, -1, 1045, 776, -1, 1043, 769, -1, 1030, 776, -1, 1050, 769, -1, 1048, 768, -1, 1059, 774, -1, 1048, 774, -1, 1080, 774, -1, 1077, 768, -1, 1077, 776, -1, 1075, 769, -1, 1110, 776, -1, 1082, 769, -1, 1080, 768, -1, 1091, 774, -1, 1140, 783, -1, 1141, 783, -1, 1046, 774, -1, 1078, 774, -1, 1040, 774, -1, 1072, 774, -1, 1040, 776, -1, 1072, 776, -1, 1045, 774, -1, 1077, 774, -1, 1240, 776, -1, 1241, 776, -1, 1046, 776, -1, 1078, 776, -1, 1047, 776, -1, 1079, 776, -1, 1048, 772, -1, 1080, 772, -1, 1048, 776, -1, 1080, 776, -1, 1054, 776, -1, 1086, 776, -1, 1256, 776, -1, 1257, 776, -1, 1069, 776, -1, 1101, 776, -1, 1059, 772, -1, 1091, 772, -1, 1059, 776, -1, 1091, 776, -1, 1059, 779, -1, 1091, 779, -1, 1063, 776, -1, 1095, 776, -1, 1067, 776, -1, 1099, 776, -1, 1381, 1410, -1, 1333, 1362, -1, 1415, -1, 1333, 1410, -1, 1575, 1619, -1, 1575, 1620, -1, 1608, 1620, -1, 1575, 1621, -1, 1610, 1620, -1, 1575, 1652, -1, 1608, 1652, -1, 1735, 1652, -1, 1610, 1652, -1, 1749, 1620, -1, 1729, 1620, -1, 1746, 1620, -1, 2344, 2364, -1, 2352, 2364, -1, 2355, 2364, -1, 2325, 2364, -1, 2326, 2364, -1, 2327, 2364, -1, 2332, 2364, -1, 2337, 2364, -1, 2338, 2364, -1, 2347, 2364, -1, 2351, 2364, -1, 2503, 2494, -1, 2503, 2519, -1, 2465, 2492, -1, 2466, 2492, -1, 2479, 2492, -1, 2610, 2620, -1, 2616, 2620, -1, 2582, 2620, -1, 2583, 2620, -1, 2588, 2620, -1, 2603, 2620, -1, 2887, 2902, -1, 2887, 2878, -1, 2887, 2903, -1, 2849, 2876, -1, 2850, 2876, -1, 2962, 3031, -1, 3014, 3006, -1, 3015, 3006, -1, 3014, 3031, -1, 3142, 3158, -1, 3263, 3285, -1, 3270, 3285, -1, 3270, 3286, -1, 3270, 3266, -1, 3274, 3285, -1, 3398, 3390, -1, 3399, 3390, -1, 3398, 3415, -1, 3545, 3530, -1, 3545, 3535, -1, 3548, 3530, -1, 3545, 3551, -1, 3661, 3634, -1, 3789, 3762, -1, 3755, 3737, -1, 3755, 3745, -1, 3906, 4023, -1, 3916, 4023, -1, 3921, 4023, -1, 3926, 4023, -1, 3931, 4023, -1, 3904, 4021, -1, 3953, 3954, -1, 3953, 3956, -1, 4018, 3968, -1, 4018, 3969, -1, 4019, 3968, -1, 4019, 3969, -1, 3953, 3968, -1, 3986, 4023, -1, 3996, 4023, -1, 4001, 4023, -1, 4006, 4023, -1, 4011, 4023, -1, 3984, 4021, -1, 4133, 4142, -1, 6917, 6965, -1, 6919, 6965, -1, 6921, 6965, -1, 6923, 6965, -1, 6925, 6965, -1, 6929, 6965, -1, 6970, 6965, -1, 6972, 6965, -1, 6974, 6965, -1, 6975, 6965, -1, 6978, 6965, -1, 65, 805, -1, 97, 805, -1, 66, 775, -1, 98, 775, -1, 66, 803, -1, 98, 803, -1, 66, 817, -1, 98, 817, -1, 199, 769, -1, 231, 769, -1, 68, 775, -1, 100, 775, -1, 68, 803, -1, 100, 803, -1, 68, 817, -1, 100, 817, -1, 68, 807, -1, 100, 807, -1, 68, 813, -1, 100, 813, -1, 274, 768, -1, 275, 768, -1, 274, 769, -1, 275, 769, -1, 69, 813, -1, 101, 813, -1, 69, 816, -1, 101, 816, -1, 552, 774, -1, 553, 774, -1, 70, 775, -1, 102, 775, -1, 71, 772, -1, 103, 772, -1, 72, 775, -1, 104, 775, -1, 72, 803, -1, 104, 803, -1, 72, 776, -1, 104, 776, -1, 72, 807, -1, 104, 807, -1, 72, 814, -1, 104, 814, -1, 73, 816, -1, 105, 816, -1, 207, 769, -1, 239, 769, -1, 75, 769, -1, 107, 769, -1, 75, 803, -1, 107, 803, -1, 75, 817, -1, 107, 817, -1, 76, 803, -1, 108, 803, -1, 7734, 772, -1, 7735, 772, -1, 76, 817, -1, 108, 817, -1, 76, 813, -1, 108, 813, -1, 77, 769, -1, 109, 769, -1, 77, 775, -1, 109, 775, -1, 77, 803, -1, 109, 803, -1, 78, 775, -1, 110, 775, -1, 78, 803, -1, 110, 803, -1, 78, 817, -1, 110, 817, -1, 78, 813, -1, 110, 813, -1, 213, 769, -1, 245, 769, -1, 213, 776, -1, 245, 776, -1, 332, 768, -1, 333, 768, -1, 332, 769, -1, 333, 769, -1, 80, 769, -1, 112, 769, -1, 80, 775, -1, 112, 775, -1, 82, 775, -1, 114, 775, -1, 82, 803, -1, 114, 803, -1, 7770, 772, -1, 7771, 772, -1, 82, 817, -1, 114, 817, -1, 83, 775, -1, 115, 775, -1, 83, 803, -1, 115, 803, -1, 346, 775, -1, 347, 775, -1, 352, 775, -1, 353, 775, -1, 7778, 775, -1, 7779, 775, -1, 84, 775, -1, 116, 775, -1, 84, 803, -1, 116, 803, -1, 84, 817, -1, 116, 817, -1, 84, 813, -1, 116, 813, -1, 85, 804, -1, 117, 804, -1, 85, 816, -1, 117, 816, -1, 85, 813, -1, 117, 813, -1, 360, 769, -1, 361, 769, -1, 362, 776, -1, 363, 776, -1, 86, 771, -1, 118, 771, -1, 86, 803, -1, 118, 803, -1, 87, 768, -1, 119, 768, -1, 87, 769, -1, 119, 769, -1, 87, 776, -1, 119, 776, -1, 87, 775, -1, 119, 775, -1, 87, 803, -1, 119, 803, -1, 88, 775, -1, 120, 775, -1, 88, 776, -1, 120, 776, -1, 89, 775, -1, 121, 775, -1, 90, 770, -1, 122, 770, -1, 90, 803, -1, 122, 803, -1, 90, 817, -1, 122, 817, -1, 104, 817, -1, 72, 817, -1, 7830, -1, 116, 776, -1, 84, 776, -1, 7831, -1, 119, 778, -1, 87, 778, -1, 7832, -1, 121, 778, -1, 89, 778, -1, 7833, -1, 97, 702, -1, 65, 702, -1, 7834, -1, 383, 775, -1, 65, 803, -1, 97, 803, -1, 65, 777, -1, 97, 777, -1, 194, 769, -1, 226, 769, -1, 194, 768, -1, 226, 768, -1, 194, 777, -1, 226, 777, -1, 194, 771, -1, 226, 771, -1, 7840, 770, -1, 7841, 770, -1, 258, 769, -1, 259, 769, -1, 258, 768, -1, 259, 768, -1, 258, 777, -1, 259, 777, -1, 258, 771, -1, 259, 771, -1, 7840, 774, -1, 7841, 774, -1, 69, 803, -1, 101, 803, -1, 69, 777, -1, 101, 777, -1, 69, 771, -1, 101, 771, -1, 202, 769, -1, 234, 769, -1, 202, 768, -1, 234, 768, -1, 202, 777, -1, 234, 777, -1, 202, 771, -1, 234, 771, -1, 7864, 770, -1, 7865, 770, -1, 73, 777, -1, 105, 777, -1, 73, 803, -1, 105, 803, -1, 79, 803, -1, 111, 803, -1, 79, 777, -1, 111, 777, -1, 212, 769, -1, 244, 769, -1, 212, 768, -1, 244, 768, -1, 212, 777, -1, 244, 777, -1, 212, 771, -1, 244, 771, -1, 7884, 770, -1, 7885, 770, -1, 416, 769, -1, 417, 769, -1, 416, 768, -1, 417, 768, -1, 416, 777, -1, 417, 777, -1, 416, 771, -1, 417, 771, -1, 416, 803, -1, 417, 803, -1, 85, 803, -1, 117, 803, -1, 85, 777, -1, 117, 777, -1, 431, 769, -1, 432, 769, -1, 431, 768, -1, 432, 768, -1, 431, 777, -1, 432, 777, -1, 431, 771, -1, 432, 771, -1, 431, 803, -1, 432, 803, -1, 89, 768, -1, 121, 768, -1, 89, 803, -1, 121, 803, -1, 89, 777, -1, 121, 777, -1, 89, 771, -1, 121, 771, -1, 945, 787, -1, 945, 788, -1, 7936, 768, -1, 7937, 768, -1, 7936, 769, -1, 7937, 769, -1, 7936, 834, -1, 7937, 834, -1, 913, 787, -1, 913, 788, -1, 7944, 768, -1, 7945, 768, -1, 7944, 769, -1, 7945, 769, -1, 7944, 834, -1, 7945, 834, -1, 949, 787, -1, 949, 788, -1, 7952, 768, -1, 7953, 768, -1, 7952, 769, -1, 7953, 769, -1, 917, 787, -1, 917, 788, -1, 7960, 768, -1, 7961, 768, -1, 7960, 769, -1, 7961, 769, -1, 951, 787, -1, 951, 788, -1, 7968, 768, -1, 7969, 768, -1, 7968, 769, -1, 7969, 769, -1, 7968, 834, -1, 7969, 834, -1, 919, 787, -1, 919, 788, -1, 7976, 768, -1, 7977, 768, -1, 7976, 769, -1, 7977, 769, -1, 7976, 834, -1, 7977, 834, -1, 953, 787, -1, 953, 788, -1, 7984, 768, -1, 7985, 768, -1, 7984, 769, -1, 7985, 769, -1, 7984, 834, -1, 7985, 834, -1, 921, 787, -1, 921, 788, -1, 7992, 768, -1, 7993, 768, -1, 7992, 769, -1, 7993, 769, -1, 7992, 834, -1, 7993, 834, -1, 959, 787, -1, 959, 788, -1, 8000, 768, -1, 8001, 768, -1, 8000, 769, -1, 8001, 769, -1, 927, 787, -1, 927, 788, -1, 8008, 768, -1, 8009, 768, -1, 8008, 769, -1, 8009, 769, -1, 965, 787, -1, 933, 787, -1, 8016, -1, 965, 788, -1, 8016, 768, -1, 933, 787, 768, -1, 8018, -1, 965, 787, 768, -1, 8017, 768, -1, 8016, 769, -1, 933, 787, 769, -1, 8020, -1, 965, 787, 769, -1, 8017, 769, -1, 8016, 834, -1, 933, 787, 834, -1, 8022, -1, 965, 787, 834, -1, 8017, 834, -1, 933, 788, -1, 8025, 768, -1, 8025, 769, -1, 8025, 834, -1, 969, 787, -1, 969, 788, -1, 8032, 768, -1, 8033, 768, -1, 8032, 769, -1, 8033, 769, -1, 8032, 834, -1, 8033, 834, -1, 937, 787, -1, 937, 788, -1, 8040, 768, -1, 8041, 768, -1, 8040, 769, -1, 8041, 769, -1, 8040, 834, -1, 8041, 834, -1, 945, 768, -1, 949, 768, -1, 951, 768, -1, 953, 768, -1, 959, 768, -1, 965, 768, -1, 969, 768, -1, 7936, 837, -1, 7944, 921, -1, 8064, -1, 8072, -1, 7936, 953, -1, 7937, 837, -1, 7945, 921, -1, 8065, -1, 8073, -1, 7937, 953, -1, 7938, 837, -1, 7946, 921, -1, 8066, -1, 8074, -1, 7938, 953, -1, 7939, 837, -1, 7947, 921, -1, 8067, -1, 8075, -1, 7939, 953, -1, 7940, 837, -1, 7948, 921, -1, 8068, -1, 8076, -1, 7940, 953, -1, 7941, 837, -1, 7949, 921, -1, 8069, -1, 8077, -1, 7941, 953, -1, 7942, 837, -1, 7950, 921, -1, 8070, -1, 8078, -1, 7942, 953, -1, 7943, 837, -1, 7951, 921, -1, 8071, -1, 8079, -1, 7943, 953, -1, 7944, 837, -1, 7945, 837, -1, 7946, 837, -1, 7947, 837, -1, 7948, 837, -1, 7949, 837, -1, 7950, 837, -1, 7951, 837, -1, 7968, 837, -1, 7976, 921, -1, 8080, -1, 8088, -1, 7968, 953, -1, 7969, 837, -1, 7977, 921, -1, 8081, -1, 8089, -1, 7969, 953, -1, 7970, 837, -1, 7978, 921, -1, 8082, -1, 8090, -1, 7970, 953, -1, 7971, 837, -1, 7979, 921, -1, 8083, -1, 8091, -1, 7971, 953, -1, 7972, 837, -1, 7980, 921, -1, 8084, -1, 8092, -1, 7972, 953, -1, 7973, 837, -1, 7981, 921, -1, 8085, -1, 8093, -1, 7973, 953, -1, 7974, 837, -1, 7982, 921, -1, 8086, -1, 8094, -1, 7974, 953, -1, 7975, 837, -1, 7983, 921, -1, 8087, -1, 8095, -1, 7975, 953, -1, 7976, 837, -1, 7977, 837, -1, 7978, 837, -1, 7979, 837, -1, 7980, 837, -1, 7981, 837, -1, 7982, 837, -1, 7983, 837, -1, 8032, 837, -1, 8040, 921, -1, 8096, -1, 8104, -1, 8032, 953, -1, 8033, 837, -1, 8041, 921, -1, 8097, -1, 8105, -1, 8033, 953, -1, 8034, 837, -1, 8042, 921, -1, 8098, -1, 8106, -1, 8034, 953, -1, 8035, 837, -1, 8043, 921, -1, 8099, -1, 8107, -1, 8035, 953, -1, 8036, 837, -1, 8044, 921, -1, 8100, -1, 8108, -1, 8036, 953, -1, 8037, 837, -1, 8045, 921, -1, 8101, -1, 8109, -1, 8037, 953, -1, 8038, 837, -1, 8046, 921, -1, 8102, -1, 8110, -1, 8038, 953, -1, 8039, 837, -1, 8047, 921, -1, 8103, -1, 8111, -1, 8039, 953, -1, 8040, 837, -1, 8041, 837, -1, 8042, 837, -1, 8043, 837, -1, 8044, 837, -1, 8045, 837, -1, 8046, 837, -1, 8047, 837, -1, 945, 774, -1, 945, 772, -1, 8048, 837, -1, 8122, 921, -1, 8114, -1, 8122, 837, -1, 8048, 953, -1, 945, 837, -1, 913, 921, -1, 8115, -1, 8124, -1, 945, 953, -1, 940, 837, -1, 902, 921, -1, 8116, -1, 902, 837, -1, 940, 953, -1, 945, 834, -1, 913, 834, -1, 8118, -1, 8118, 837, -1, 913, 834, 921, -1, 8119, -1, 913, 834, 837, -1, 945, 834, 953, -1, 913, 774, -1, 913, 772, -1, 913, 768, -1, 913, 837, -1, 32, 787, -1, 32, 834, -1, 168, 834, -1, 8052, 837, -1, 8138, 921, -1, 8130, -1, 8138, 837, -1, 8052, 953, -1, 951, 837, -1, 919, 921, -1, 8131, -1, 8140, -1, 951, 953, -1, 942, 837, -1, 905, 921, -1, 8132, -1, 905, 837, -1, 942, 953, -1, 951, 834, -1, 919, 834, -1, 8134, -1, 8134, 837, -1, 919, 834, 921, -1, 8135, -1, 919, 834, 837, -1, 951, 834, 953, -1, 917, 768, -1, 919, 768, -1, 919, 837, -1, 8127, 768, -1, 8127, 769, -1, 8127, 834, -1, 953, 774, -1, 953, 772, -1, 970, 768, -1, 921, 776, 768, -1, 8146, -1, 953, 776, 768, -1, 8147, -1, 953, 834, -1, 921, 834, -1, 8150, -1, 970, 834, -1, 921, 776, 834, -1, 8151, -1, 953, 776, 834, -1, 921, 774, -1, 921, 772, -1, 921, 768, -1, 8190, 768, -1, 8190, 769, -1, 8190, 834, -1, 965, 774, -1, 965, 772, -1, 971, 768, -1, 933, 776, 768, -1, 8162, -1, 965, 776, 768, -1, 8163, -1, 961, 787, -1, 929, 787, -1, 8164, -1, 961, 788, -1, 965, 834, -1, 933, 834, -1, 8166, -1, 971, 834, -1, 933, 776, 834, -1, 8167, -1, 965, 776, 834, -1, 933, 774, -1, 933, 772, -1, 933, 768, -1, 929, 788, -1, 168, 768, -1, 8060, 837, -1, 8186, 921, -1, 8178, -1, 8186, 837, -1, 8060, 953, -1, 969, 837, -1, 937, 921, -1, 8179, -1, 8188, -1, 969, 953, -1, 974, 837, -1, 911, 921, -1, 8180, -1, 911, 837, -1, 974, 953, -1, 969, 834, -1, 937, 834, -1, 8182, -1, 8182, 837, -1, 937, 834, 921, -1, 8183, -1, 937, 834, 837, -1, 969, 834, 953, -1, 927, 768, -1, 937, 768, -1, 937, 837, -1, 32, 788, -1, 32, 819, -1, 46, 46, -1, 46, 46, 46, -1, 8242, 8242, -1, 8242, 8242, 8242, -1, 8245, 8245, -1, 8245, 8245, 8245, -1, 33, 33, -1, 32, 773, -1, 63, 63, -1, 63, 33, -1, 33, 63, -1, 8242, 8242, 8242, 8242, -1, 82, 115, -1, 97, 47, 99, -1, 97, 47, 115, -1, 176, 67, -1, 99, 47, 111, -1, 99, 47, 117, -1, 176, 70, -1, 78, 111, -1, 83, 77, -1, 84, 69, 76, -1, 84, 77, -1, 70, 65, 88, -1, 49, 8260, 51, -1, 50, 8260, 51, -1, 49, 8260, 53, -1, 50, 8260, 53, -1, 51, 8260, 53, -1, 52, 8260, 53, -1, 49, 8260, 54, -1, 53, 8260, 54, -1, 49, 8260, 56, -1, 51, 8260, 56, -1, 53, 8260, 56, -1, 55, 8260, 56, -1, 49, 8260, -1, 73, 73, -1, 73, 73, 73, -1, 73, 86, -1, 86, 73, -1, 86, 73, 73, -1, 86, 73, 73, 73, -1, 73, 88, -1, 88, 73, -1, 88, 73, 73, -1, 105, 105, -1, 105, 105, 105, -1, 105, 118, -1, 118, 105, -1, 118, 105, 105, -1, 118, 105, 105, 105, -1, 105, 120, -1, 120, 105, -1, 120, 105, 105, -1, 8592, 824, -1, 8594, 824, -1, 8596, 824, -1, 8656, 824, -1, 8660, 824, -1, 8658, 824, -1, 8707, 824, -1, 8712, 824, -1, 8715, 824, -1, 8739, 824, -1, 8741, 824, -1, 8747, 8747, -1, 8747, 8747, 8747, -1, 8750, 8750, -1, 8750, 8750, 8750, -1, 8764, 824, -1, 8771, 824, -1, 8773, 824, -1, 8776, 824, -1, 61, 824, -1, 8801, 824, -1, 8781, 824, -1, 60, 824, -1, 62, 824, -1, 8804, 824, -1, 8805, 824, -1, 8818, 824, -1, 8819, 824, -1, 8822, 824, -1, 8823, 824, -1, 8826, 824, -1, 8827, 824, -1, 8834, 824, -1, 8835, 824, -1, 8838, 824, -1, 8839, 824, -1, 8866, 824, -1, 8872, 824, -1, 8873, 824, -1, 8875, 824, -1, 8828, 824, -1, 8829, 824, -1, 8849, 824, -1, 8850, 824, -1, 8882, 824, -1, 8883, 824, -1, 8884, 824, -1, 8885, 824, -1, 49, 48, -1, 49, 49, -1, 49, 50, -1, 49, 51, -1, 49, 52, -1, 49, 53, -1, 49, 54, -1, 49, 55, -1, 49, 56, -1, 49, 57, -1, 50, 48, -1, 40, 49, 41, -1, 40, 50, 41, -1, 40, 51, 41, -1, 40, 52, 41, -1, 40, 53, 41, -1, 40, 54, 41, -1, 40, 55, 41, -1, 40, 56, 41, -1, 40, 57, 41, -1, 40, 49, 48, 41, -1, 40, 49, 49, 41, -1, 40, 49, 50, 41, -1, 40, 49, 51, 41, -1, 40, 49, 52, 41, -1, 40, 49, 53, 41, -1, 40, 49, 54, 41, -1, 40, 49, 55, 41, -1, 40, 49, 56, 41, -1, 40, 49, 57, 41, -1, 40, 50, 48, 41, -1, 49, 46, -1, 50, 46, -1, 51, 46, -1, 52, 46, -1, 53, 46, -1, 54, 46, -1, 55, 46, -1, 56, 46, -1, 57, 46, -1, 49, 48, 46, -1, 49, 49, 46, -1, 49, 50, 46, -1, 49, 51, 46, -1, 49, 52, 46, -1, 49, 53, 46, -1, 49, 54, 46, -1, 49, 55, 46, -1, 49, 56, 46, -1, 49, 57, 46, -1, 50, 48, 46, -1, 40, 97, 41, -1, 40, 98, 41, -1, 40, 99, 41, -1, 40, 100, 41, -1, 40, 101, 41, -1, 40, 102, 41, -1, 40, 103, 41, -1, 40, 104, 41, -1, 40, 105, 41, -1, 40, 106, 41, -1, 40, 107, 41, -1, 40, 108, 41, -1, 40, 109, 41, -1, 40, 110, 41, -1, 40, 111, 41, -1, 40, 112, 41, -1, 40, 113, 41, -1, 40, 114, 41, -1, 40, 115, 41, -1, 40, 116, 41, -1, 40, 117, 41, -1, 40, 118, 41, -1, 40, 119, 41, -1, 40, 120, 41, -1, 40, 121, 41, -1, 40, 122, 41, -1, 8747, 8747, 8747, 8747, -1, 58, 58, 61, -1, 61, 61, -1, 61, 61, 61, -1, 10973, 824, -1, 12363, 12441, -1, 12365, 12441, -1, 12367, 12441, -1, 12369, 12441, -1, 12371, 12441, -1, 12373, 12441, -1, 12375, 12441, -1, 12377, 12441, -1, 12379, 12441, -1, 12381, 12441, -1, 12383, 12441, -1, 12385, 12441, -1, 12388, 12441, -1, 12390, 12441, -1, 12392, 12441, -1, 12399, 12441, -1, 12399, 12442, -1, 12402, 12441, -1, 12402, 12442, -1, 12405, 12441, -1, 12405, 12442, -1, 12408, 12441, -1, 12408, 12442, -1, 12411, 12441, -1, 12411, 12442, -1, 12358, 12441, -1, 32, 12441, -1, 32, 12442, -1, 12445, 12441, -1, 12424, 12426, -1, 12459, 12441, -1, 12461, 12441, -1, 12463, 12441, -1, 12465, 12441, -1, 12467, 12441, -1, 12469, 12441, -1, 12471, 12441, -1, 12473, 12441, -1, 12475, 12441, -1, 12477, 12441, -1, 12479, 12441, -1, 12481, 12441, -1, 12484, 12441, -1, 12486, 12441, -1, 12488, 12441, -1, 12495, 12441, -1, 12495, 12442, -1, 12498, 12441, -1, 12498, 12442, -1, 12501, 12441, -1, 12501, 12442, -1, 12504, 12441, -1, 12504, 12442, -1, 12507, 12441, -1, 12507, 12442, -1, 12454, 12441, -1, 12527, 12441, -1, 12528, 12441, -1, 12529, 12441, -1, 12530, 12441, -1, 12541, 12441, -1, 12467, 12488, -1, 40, 4352, 41, -1, 40, 4354, 41, -1, 40, 4355, 41, -1, 40, 4357, 41, -1, 40, 4358, 41, -1, 40, 4359, 41, -1, 40, 4361, 41, -1, 40, 4363, 41, -1, 40, 4364, 41, -1, 40, 4366, 41, -1, 40, 4367, 41, -1, 40, 4368, 41, -1, 40, 4369, 41, -1, 40, 4370, 41, -1, 40, 4352, 4449, 41, -1, 40, 4354, 4449, 41, -1, 40, 4355, 4449, 41, -1, 40, 4357, 4449, 41, -1, 40, 4358, 4449, 41, -1, 40, 4359, 4449, 41, -1, 40, 4361, 4449, 41, -1, 40, 4363, 4449, 41, -1, 40, 4364, 4449, 41, -1, 40, 4366, 4449, 41, -1, 40, 4367, 4449, 41, -1, 40, 4368, 4449, 41, -1, 40, 4369, 4449, 41, -1, 40, 4370, 4449, 41, -1, 40, 4364, 4462, 41, -1, 40, 4363, 4457, 4364, 4453, 4523, 41, -1, 40, 4363, 4457, 4370, 4462, 41, -1, 40, 19968, 41, -1, 40, 20108, 41, -1, 40, 19977, 41, -1, 40, 22235, 41, -1, 40, 20116, 41, -1, 40, 20845, 41, -1, 40, 19971, 41, -1, 40, 20843, 41, -1, 40, 20061, 41, -1, 40, 21313, 41, -1, 40, 26376, 41, -1, 40, 28779, 41, -1, 40, 27700, 41, -1, 40, 26408, 41, -1, 40, 37329, 41, -1, 40, 22303, 41, -1, 40, 26085, 41, -1, 40, 26666, 41, -1, 40, 26377, 41, -1, 40, 31038, 41, -1, 40, 21517, 41, -1, 40, 29305, 41, -1, 40, 36001, 41, -1, 40, 31069, 41, -1, 40, 21172, 41, -1, 40, 20195, 41, -1, 40, 21628, 41, -1, 40, 23398, 41, -1, 40, 30435, 41, -1, 40, 20225, 41, -1, 40, 36039, 41, -1, 40, 21332, 41, -1, 40, 31085, 41, -1, 40, 20241, 41, -1, 40, 33258, 41, -1, 40, 33267, 41, -1, 80, 84, 69, -1, 50, 49, -1, 50, 50, -1, 50, 51, -1, 50, 52, -1, 50, 53, -1, 50, 54, -1, 50, 55, -1, 50, 56, -1, 50, 57, -1, 51, 48, -1, 51, 49, -1, 51, 50, -1, 51, 51, -1, 51, 52, -1, 51, 53, -1, 4352, 4449, -1, 4354, 4449, -1, 4355, 4449, -1, 4357, 4449, -1, 4358, 4449, -1, 4359, 4449, -1, 4361, 4449, -1, 4363, 4449, -1, 4364, 4449, -1, 4366, 4449, -1, 4367, 4449, -1, 4368, 4449, -1, 4369, 4449, -1, 4370, 4449, -1, 4366, 4449, 4535, 4352, 4457, -1, 4364, 4462, 4363, 4468, -1, 4363, 4462, -1, 51, 54, -1, 51, 55, -1, 51, 56, -1, 51, 57, -1, 52, 48, -1, 52, 49, -1, 52, 50, -1, 52, 51, -1, 52, 52, -1, 52, 53, -1, 52, 54, -1, 52, 55, -1, 52, 56, -1, 52, 57, -1, 53, 48, -1, 49, 26376, -1, 50, 26376, -1, 51, 26376, -1, 52, 26376, -1, 53, 26376, -1, 54, 26376, -1, 55, 26376, -1, 56, 26376, -1, 57, 26376, -1, 49, 48, 26376, -1, 49, 49, 26376, -1, 49, 50, 26376, -1, 72, 103, -1, 101, 114, 103, -1, 101, 86, -1, 76, 84, 68, -1, 12450, 12497, 12540, 12488, -1, 12450, 12523, 12501, 12449, -1, 12450, 12531, 12506, 12450, -1, 12450, 12540, 12523, -1, 12452, 12491, 12531, 12464, -1, 12452, 12531, 12481, -1, 12454, 12457, 12531, -1, 12456, 12473, 12463, 12540, 12489, -1, 12456, 12540, 12459, 12540, -1, 12458, 12531, 12473, -1, 12458, 12540, 12512, -1, 12459, 12452, 12522, -1, 12459, 12521, 12483, 12488, -1, 12459, 12525, 12522, 12540, -1, 12460, 12525, 12531, -1, 12460, 12531, 12510, -1, 12462, 12460, -1, 12462, 12491, 12540, -1, 12461, 12517, 12522, 12540, -1, 12462, 12523, 12480, 12540, -1, 12461, 12525, -1, 12461, 12525, 12464, 12521, 12512, -1, 12461, 12525, 12513, 12540, 12488, 12523, -1, 12461, 12525, 12527, 12483, 12488, -1, 12464, 12521, 12512, -1, 12464, 12521, 12512, 12488, 12531, -1, 12463, 12523, 12476, 12452, 12525, -1, 12463, 12525, 12540, 12493, -1, 12465, 12540, 12473, -1, 12467, 12523, 12490, -1, 12467, 12540, 12509, -1, 12469, 12452, 12463, 12523, -1, 12469, 12531, 12481, 12540, 12512, -1, 12471, 12522, 12531, 12464, -1, 12475, 12531, 12481, -1, 12475, 12531, 12488, -1, 12480, 12540, 12473, -1, 12487, 12471, -1, 12489, 12523, -1, 12488, 12531, -1, 12490, 12494, -1, 12494, 12483, 12488, -1, 12495, 12452, 12484, -1, 12497, 12540, 12475, 12531, 12488, -1, 12497, 12540, 12484, -1, 12496, 12540, 12524, 12523, -1, 12500, 12450, 12473, 12488, 12523, -1, 12500, 12463, 12523, -1, 12500, 12467, -1, 12499, 12523, -1, 12501, 12449, 12521, 12483, 12489, -1, 12501, 12451, 12540, 12488, -1, 12502, 12483, 12471, 12455, 12523, -1, 12501, 12521, 12531, -1, 12504, 12463, 12479, 12540, 12523, -1, 12506, 12477, -1, 12506, 12491, 12498, -1, 12504, 12523, 12484, -1, 12506, 12531, 12473, -1, 12506, 12540, 12472, -1, 12505, 12540, 12479, -1, 12509, 12452, 12531, 12488, -1, 12508, 12523, 12488, -1, 12507, 12531, -1, 12509, 12531, 12489, -1, 12507, 12540, 12523, -1, 12507, 12540, 12531, -1, 12510, 12452, 12463, 12525, -1, 12510, 12452, 12523, -1, 12510, 12483, 12495, -1, 12510, 12523, 12463, -1, 12510, 12531, 12471, 12519, 12531, -1, 12511, 12463, 12525, 12531, -1, 12511, 12522, -1, 12511, 12522, 12496, 12540, 12523, -1, 12513, 12460, -1, 12513, 12460, 12488, 12531, -1, 12513, 12540, 12488, 12523, -1, 12516, 12540, 12489, -1, 12516, 12540, 12523, -1, 12518, 12450, 12531, -1, 12522, 12483, 12488, 12523, -1, 12522, 12521, -1, 12523, 12500, 12540, -1, 12523, 12540, 12502, 12523, -1, 12524, 12512, -1, 12524, 12531, 12488, 12466, 12531, -1, 12527, 12483, 12488, -1, 48, 28857, -1, 49, 28857, -1, 50, 28857, -1, 51, 28857, -1, 52, 28857, -1, 53, 28857, -1, 54, 28857, -1, 55, 28857, -1, 56, 28857, -1, 57, 28857, -1, 49, 48, 28857, -1, 49, 49, 28857, -1, 49, 50, 28857, -1, 49, 51, 28857, -1, 49, 52, 28857, -1, 49, 53, 28857, -1, 49, 54, 28857, -1, 49, 55, 28857, -1, 49, 56, 28857, -1, 49, 57, 28857, -1, 50, 48, 28857, -1, 50, 49, 28857, -1, 50, 50, 28857, -1, 50, 51, 28857, -1, 50, 52, 28857, -1, 104, 80, 97, -1, 100, 97, -1, 65, 85, -1, 98, 97, 114, -1, 111, 86, -1, 112, 99, -1, 100, 109, -1, 100, 109, 178, -1, 100, 109, 179, -1, 73, 85, -1, 24179, 25104, -1, 26157, 21644, -1, 22823, 27491, -1, 26126, 27835, -1, 26666, 24335, 20250, 31038, -1, 112, 65, -1, 110, 65, -1, 956, 65, -1, 109, 65, -1, 107, 65, -1, 75, 66, -1, 77, 66, -1, 71, 66, -1, 99, 97, 108, -1, 107, 99, 97, 108, -1, 112, 70, -1, 110, 70, -1, 956, 70, -1, 956, 103, -1, 109, 103, -1, 107, 103, -1, 72, 122, -1, 107, 72, 122, -1, 77, 72, 122, -1, 71, 72, 122, -1, 84, 72, 122, -1, 956, 8467, -1, 109, 8467, -1, 100, 8467, -1, 107, 8467, -1, 102, 109, -1, 110, 109, -1, 956, 109, -1, 109, 109, -1, 99, 109, -1, 107, 109, -1, 109, 109, 178, -1, 99, 109, 178, -1, 109, 178, -1, 107, 109, 178, -1, 109, 109, 179, -1, 99, 109, 179, -1, 109, 179, -1, 107, 109, 179, -1, 109, 8725, 115, -1, 109, 8725, 115, 178, -1, 80, 97, -1, 107, 80, 97, -1, 77, 80, 97, -1, 71, 80, 97, -1, 114, 97, 100, -1, 114, 97, 100, 8725, 115, -1, 114, 97, 100, 8725, 115, 178, -1, 112, 115, -1, 110, 115, -1, 956, 115, -1, 109, 115, -1, 112, 86, -1, 110, 86, -1, 956, 86, -1, 109, 86, -1, 107, 86, -1, 77, 86, -1, 112, 87, -1, 110, 87, -1, 956, 87, -1, 109, 87, -1, 107, 87, -1, 77, 87, -1, 107, 937, -1, 77, 937, -1, 97, 46, 109, 46, -1, 66, 113, -1, 99, 99, -1, 99, 100, -1, 67, 8725, 107, 103, -1, 67, 111, 46, -1, 100, 66, -1, 71, 121, -1, 104, 97, -1, 72, 80, -1, 105, 110, -1, 75, 75, -1, 75, 77, -1, 107, 116, -1, 108, 109, -1, 108, 110, -1, 108, 111, 103, -1, 108, 120, -1, 109, 98, -1, 109, 105, 108, -1, 109, 111, 108, -1, 80, 72, -1, 112, 46, 109, 46, -1, 80, 80, 77, -1, 80, 82, -1, 115, 114, -1, 83, 118, -1, 87, 98, -1, 86, 8725, 109, -1, 65, 8725, 109, -1, 49, 26085, -1, 50, 26085, -1, 51, 26085, -1, 52, 26085, -1, 53, 26085, -1, 54, 26085, -1, 55, 26085, -1, 56, 26085, -1, 57, 26085, -1, 49, 48, 26085, -1, 49, 49, 26085, -1, 49, 50, 26085, -1, 49, 51, 26085, -1, 49, 52, 26085, -1, 49, 53, 26085, -1, 49, 54, 26085, -1, 49, 55, 26085, -1, 49, 56, 26085, -1, 49, 57, 26085, -1, 50, 48, 26085, -1, 50, 49, 26085, -1, 50, 50, 26085, -1, 50, 51, 26085, -1, 50, 52, 26085, -1, 50, 53, 26085, -1, 50, 54, 26085, -1, 50, 55, 26085, -1, 50, 56, 26085, -1, 50, 57, 26085, -1, 51, 48, 26085, -1, 51, 49, 26085, -1, 103, 97, 108, -1, 102, 102, -1, 70, 70, -1, 64256, -1, 70, 102, -1, 102, 105, -1, 70, 73, -1, 64257, -1, 70, 105, -1, 102, 108, -1, 70, 76, -1, 64258, -1, 70, 108, -1, 102, 102, 105, -1, 70, 70, 73, -1, 64259, -1, 70, 102, 105, -1, 102, 102, 108, -1, 70, 70, 76, -1, 64260, -1, 70, 102, 108, -1, 383, 116, -1, 83, 84, -1, 64261, -1, 83, 116, -1, 115, 116, -1, 64262, -1, 1396, 1398, -1, 1348, 1350, -1, 64275, -1, 1348, 1398, -1, 1396, 1381, -1, 1348, 1333, -1, 64276, -1, 1348, 1381, -1, 1396, 1387, -1, 1348, 1339, -1, 64277, -1, 1348, 1387, -1, 1406, 1398, -1, 1358, 1350, -1, 64278, -1, 1358, 1398, -1, 1396, 1389, -1, 1348, 1341, -1, 64279, -1, 1348, 1389, -1, 1497, 1460, -1, 1522, 1463, -1, 1513, 1473, -1, 1513, 1474, -1, 64329, 1473, -1, 64329, 1474, -1, 1488, 1463, -1, 1488, 1464, -1, 1488, 1468, -1, 1489, 1468, -1, 1490, 1468, -1, 1491, 1468, -1, 1492, 1468, -1, 1493, 1468, -1, 1494, 1468, -1, 1496, 1468, -1, 1497, 1468, -1, 1498, 1468, -1, 1499, 1468, -1, 1500, 1468, -1, 1502, 1468, -1, 1504, 1468, -1, 1505, 1468, -1, 1507, 1468, -1, 1508, 1468, -1, 1510, 1468, -1, 1511, 1468, -1, 1512, 1468, -1, 1513, 1468, -1, 1514, 1468, -1, 1493, 1465, -1, 1489, 1471, -1, 1499, 1471, -1, 1508, 1471, -1, 1488, 1500, -1, 1574, 1575, -1, 1574, 1749, -1, 1574, 1608, -1, 1574, 1735, -1, 1574, 1734, -1, 1574, 1736, -1, 1574, 1744, -1, 1574, 1609, -1, 1574, 1580, -1, 1574, 1581, -1, 1574, 1605, -1, 1574, 1610, -1, 1576, 1580, -1, 1576, 1581, -1, 1576, 1582, -1, 1576, 1605, -1, 1576, 1609, -1, 1576, 1610, -1, 1578, 1580, -1, 1578, 1581, -1, 1578, 1582, -1, 1578, 1605, -1, 1578, 1609, -1, 1578, 1610, -1, 1579, 1580, -1, 1579, 1605, -1, 1579, 1609, -1, 1579, 1610, -1, 1580, 1581, -1, 1580, 1605, -1, 1581, 1580, -1, 1581, 1605, -1, 1582, 1580, -1, 1582, 1581, -1, 1582, 1605, -1, 1587, 1580, -1, 1587, 1581, -1, 1587, 1582, -1, 1587, 1605, -1, 1589, 1581, -1, 1589, 1605, -1, 1590, 1580, -1, 1590, 1581, -1, 1590, 1582, -1, 1590, 1605, -1, 1591, 1581, -1, 1591, 1605, -1, 1592, 1605, -1, 1593, 1580, -1, 1593, 1605, -1, 1594, 1580, -1, 1594, 1605, -1, 1601, 1580, -1, 1601, 1581, -1, 1601, 1582, -1, 1601, 1605, -1, 1601, 1609, -1, 1601, 1610, -1, 1602, 1581, -1, 1602, 1605, -1, 1602, 1609, -1, 1602, 1610, -1, 1603, 1575, -1, 1603, 1580, -1, 1603, 1581, -1, 1603, 1582, -1, 1603, 1604, -1, 1603, 1605, -1, 1603, 1609, -1, 1603, 1610, -1, 1604, 1580, -1, 1604, 1581, -1, 1604, 1582, -1, 1604, 1605, -1, 1604, 1609, -1, 1604, 1610, -1, 1605, 1580, -1, 1605, 1581, -1, 1605, 1582, -1, 1605, 1605, -1, 1605, 1609, -1, 1605, 1610, -1, 1606, 1580, -1, 1606, 1581, -1, 1606, 1582, -1, 1606, 1605, -1, 1606, 1609, -1, 1606, 1610, -1, 1607, 1580, -1, 1607, 1605, -1, 1607, 1609, -1, 1607, 1610, -1, 1610, 1580, -1, 1610, 1581, -1, 1610, 1582, -1, 1610, 1605, -1, 1610, 1609, -1, 1610, 1610, -1, 1584, 1648, -1, 1585, 1648, -1, 1609, 1648, -1, 32, 1612, 1617, -1, 32, 1613, 1617, -1, 32, 1614, 1617, -1, 32, 1615, 1617, -1, 32, 1616, 1617, -1, 32, 1617, 1648, -1, 1574, 1585, -1, 1574, 1586, -1, 1574, 1606, -1, 1576, 1585, -1, 1576, 1586, -1, 1576, 1606, -1, 1578, 1585, -1, 1578, 1586, -1, 1578, 1606, -1, 1579, 1585, -1, 1579, 1586, -1, 1579, 1606, -1, 1605, 1575, -1, 1606, 1585, -1, 1606, 1586, -1, 1606, 1606, -1, 1610, 1585, -1, 1610, 1586, -1, 1610, 1606, -1, 1574, 1582, -1, 1574, 1607, -1, 1576, 1607, -1, 1578, 1607, -1, 1589, 1582, -1, 1604, 1607, -1, 1606, 1607, -1, 1607, 1648, -1, 1610, 1607, -1, 1579, 1607, -1, 1587, 1607, -1, 1588, 1605, -1, 1588, 1607, -1, 1600, 1614, 1617, -1, 1600, 1615, 1617, -1, 1600, 1616, 1617, -1, 1591, 1609, -1, 1591, 1610, -1, 1593, 1609, -1, 1593, 1610, -1, 1594, 1609, -1, 1594, 1610, -1, 1587, 1609, -1, 1587, 1610, -1, 1588, 1609, -1, 1588, 1610, -1, 1581, 1609, -1, 1581, 1610, -1, 1580, 1609, -1, 1580, 1610, -1, 1582, 1609, -1, 1582, 1610, -1, 1589, 1609, -1, 1589, 1610, -1, 1590, 1609, -1, 1590, 1610, -1, 1588, 1580, -1, 1588, 1581, -1, 1588, 1582, -1, 1588, 1585, -1, 1587, 1585, -1, 1589, 1585, -1, 1590, 1585, -1, 1575, 1611, -1, 1578, 1580, 1605, -1, 1578, 1581, 1580, -1, 1578, 1581, 1605, -1, 1578, 1582, 1605, -1, 1578, 1605, 1580, -1, 1578, 1605, 1581, -1, 1578, 1605, 1582, -1, 1580, 1605, 1581, -1, 1581, 1605, 1610, -1, 1581, 1605, 1609, -1, 1587, 1581, 1580, -1, 1587, 1580, 1581, -1, 1587, 1580, 1609, -1, 1587, 1605, 1581, -1, 1587, 1605, 1580, -1, 1587, 1605, 1605, -1, 1589, 1581, 1581, -1, 1589, 1605, 1605, -1, 1588, 1581, 1605, -1, 1588, 1580, 1610, -1, 1588, 1605, 1582, -1, 1588, 1605, 1605, -1, 1590, 1581, 1609, -1, 1590, 1582, 1605, -1, 1591, 1605, 1581, -1, 1591, 1605, 1605, -1, 1591, 1605, 1610, -1, 1593, 1580, 1605, -1, 1593, 1605, 1605, -1, 1593, 1605, 1609, -1, 1594, 1605, 1605, -1, 1594, 1605, 1610, -1, 1594, 1605, 1609, -1, 1601, 1582, 1605, -1, 1602, 1605, 1581, -1, 1602, 1605, 1605, -1, 1604, 1581, 1605, -1, 1604, 1581, 1610, -1, 1604, 1581, 1609, -1, 1604, 1580, 1580, -1, 1604, 1582, 1605, -1, 1604, 1605, 1581, -1, 1605, 1581, 1580, -1, 1605, 1581, 1605, -1, 1605, 1581, 1610, -1, 1605, 1580, 1581, -1, 1605, 1580, 1605, -1, 1605, 1582, 1580, -1, 1605, 1582, 1605, -1, 1605, 1580, 1582, -1, 1607, 1605, 1580, -1, 1607, 1605, 1605, -1, 1606, 1581, 1605, -1, 1606, 1581, 1609, -1, 1606, 1580, 1605, -1, 1606, 1580, 1609, -1, 1606, 1605, 1610, -1, 1606, 1605, 1609, -1, 1610, 1605, 1605, -1, 1576, 1582, 1610, -1, 1578, 1580, 1610, -1, 1578, 1580, 1609, -1, 1578, 1582, 1610, -1, 1578, 1582, 1609, -1, 1578, 1605, 1610, -1, 1578, 1605, 1609, -1, 1580, 1605, 1610, -1, 1580, 1581, 1609, -1, 1580, 1605, 1609, -1, 1587, 1582, 1609, -1, 1589, 1581, 1610, -1, 1588, 1581, 1610, -1, 1590, 1581, 1610, -1, 1604, 1580, 1610, -1, 1604, 1605, 1610, -1, 1610, 1581, 1610, -1, 1610, 1580, 1610, -1, 1610, 1605, 1610, -1, 1605, 1605, 1610, -1, 1602, 1605, 1610, -1, 1606, 1581, 1610, -1, 1593, 1605, 1610, -1, 1603, 1605, 1610, -1, 1606, 1580, 1581, -1, 1605, 1582, 1610, -1, 1604, 1580, 1605, -1, 1603, 1605, 1605, -1, 1580, 1581, 1610, -1, 1581, 1580, 1610, -1, 1605, 1580, 1610, -1, 1601, 1605, 1610, -1, 1576, 1581, 1610, -1, 1587, 1582, 1610, -1, 1606, 1580, 1610, -1, 1589, 1604, 1746, -1, 1602, 1604, 1746, -1, 1575, 1604, 1604, 1607, -1, 1575, 1603, 1576, 1585, -1, 1605, 1581, 1605, 1583, -1, 1589, 1604, 1593, 1605, -1, 1585, 1587, 1608, 1604, -1, 1593, 1604, 1610, 1607, -1, 1608, 1587, 1604, 1605, -1, 1589, 1604, 1609, -1, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, -1, 1580, 1604, 32, 1580, 1604, 1575, 1604, 1607, -1, 1585, 1740, 1575, 1604, -1, 32, 1611, -1, 1600, 1611, -1, 32, 1612, -1, 32, 1613, -1, 32, 1614, -1, 1600, 1614, -1, 32, 1615, -1, 1600, 1615, -1, 32, 1616, -1, 1600, 1616, -1, 32, 1617, -1, 1600, 1617, -1, 32, 1618, -1, 1600, 1618, -1, 1604, 1570, -1, 1604, 1571, -1, 1604, 1573, -1, 1604, 1575, -1, 119127, 119141, -1, 119128, 119141, -1, 119135, 119150, -1, 119135, 119151, -1, 119135, 119152, -1, 119135, 119153, -1, 119135, 119154, -1, 119225, 119141, -1, 119226, 119141, -1, 119227, 119150, -1, 119228, 119150, -1, 119227, 119151, -1, 119228, 119151, -1, }; const uint16_t utf8proc_stage1table[] = { 0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13568, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13824, 14080, 5376, 5376, 5376, 14336, 5376, 14592, 14848, 15104, 15360, 15616, 2048, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 15872, 16128, 16128, 16128, 16128, 16128, 16128, 16128, 16128, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18944, 19200, 19456, 2048, 2048, 2048, 19712, 19968, 20224, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 5376, 5376, 5376, 20480, 20736, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22784, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 23040, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 23296, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 23552, 23808, 24064, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 24320, 24576, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 24832, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 24832, }; const uint16_t utf8proc_stage2table[] = { 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 9, 10, 11, 12, 13, 14, 13, 15, 16, 17, 18, 15, 19, 20, 21, 22, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 28, 29, 11, 15, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 17, 15, 18, 56, 57, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 17, 84, 18, 84, 2, 2, 2, 2, 2, 2, 85, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 15, 14, 14, 14, 14, 87, 87, 88, 87, 89, 90, 84, 91, 87, 92, 93, 94, 95, 96, 97, 98, 87, 99, 100, 101, 102, 103, 104, 105, 106, 15, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 84, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 84, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 225, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 225, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 225, 225, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 225, 351, 352, 353, 225, 354, 351, 351, 351, 351, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 225, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 225, 225, 225, 225, 225, 225, 466, 467, 468, 469, 470, 225, 225, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 225, 488, 489, 225, 490, 491, 225, 492, 225, 493, 225, 225, 225, 225, 494, 225, 225, 495, 225, 225, 225, 225, 496, 497, 225, 498, 225, 225, 225, 499, 225, 500, 501, 225, 225, 502, 225, 225, 225, 225, 225, 225, 225, 503, 225, 225, 504, 225, 225, 505, 225, 225, 225, 225, 506, 507, 508, 509, 510, 225, 225, 225, 225, 225, 511, 225, 351, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 521, 522, 522, 522, 522, 522, 523, 523, 56, 56, 56, 56, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 522, 522, 56, 56, 56, 56, 56, 56, 524, 525, 526, 527, 528, 529, 56, 56, 530, 531, 532, 533, 534, 56, 56, 56, 56, 56, 56, 56, 521, 56, 522, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 540, 540, 548, 540, 549, 540, 550, 551, 552, 553, 553, 553, 553, 552, 554, 553, 553, 553, 553, 553, 555, 555, 556, 557, 558, 559, 560, 561, 553, 553, 553, 553, 562, 563, 553, 564, 565, 553, 553, 566, 566, 566, 566, 567, 553, 553, 553, 553, 540, 540, 540, 568, 569, 570, 571, 572, 573, 540, 553, 553, 553, 540, 540, 540, 553, 553, 574, 540, 540, 540, 553, 553, 553, 553, 540, 575, 576, 576, 577, 578, 579, 579, 580, 579, 579, 580, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 581, 582, 583, 584, 585, 56, 586, 587, 0, 0, 588, 589, 590, 591, 592, 0, 0, 0, 0, 0, 97, 593, 594, 595, 596, 597, 598, 0, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 0, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 225, 700, 701, 84, 702, 703, 704, 705, 706, 225, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 540, 540, 540, 540, 841, 842, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 0, 0, 522, 1035, 1035, 1036, 1037, 1036, 1035, 0, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 0, 1077, 1078, 0, 0, 0, 0, 0, 0, 553, 540, 540, 540, 540, 553, 540, 540, 540, 1079, 553, 540, 540, 540, 540, 540, 540, 576, 553, 553, 553, 553, 553, 540, 540, 553, 540, 540, 1079, 1080, 540, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1096, 540, 576, 1096, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1101, 1102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1103, 1103, 1103, 0, 0, 84, 84, 1104, 13, 13, 1105, 20, 1106, 87, 87, 577, 577, 577, 577, 577, 577, 1107, 1107, 1108, 1109, 1110, 1111, 0, 0, 1111, 1112, 0, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1120, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1121, 1113, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 576, 540, 540, 577, 577, 577, 576, 577, 577, 0, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 13, 1135, 1136, 1111, 1113, 1113, 1137, 1113, 1113, 1113, 1113, 1138, 1139, 1140, 1141, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1142, 1143, 1144, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1145, 1146, 1112, 1147, 577, 577, 577, 577, 577, 577, 577, 1103, 842, 540, 540, 577, 577, 576, 577, 1148, 1148, 577, 577, 87, 553, 540, 540, 576, 1113, 1113, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 1113, 1113, 1113, 1149, 1149, 1113, 1112, 1112, 1112, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 0, 91, 1113, 1150, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 540, 553, 540, 540, 553, 540, 540, 553, 553, 553, 540, 553, 553, 540, 553, 540, 540, 540, 553, 540, 553, 540, 553, 540, 553, 540, 540, 0, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 540, 540, 540, 540, 540, 540, 540, 553, 540, 1153, 1153, 87, 15, 1154, 11, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1158, 1159, 351, 351, 351, 351, 351, 351, 1160, 1161, 351, 1162, 1163, 351, 351, 351, 351, 351, 0, 0, 1164, 351, 1157, 1157, 1157, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1165, 0, 0, 351, 540, 553, 540, 540, 0, 0, 0, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 351, 351, 1156, 1156, 1036, 1036, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1035, 522, 351, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 0, 1156, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 0, 0, 351, 351, 351, 351, 0, 0, 1175, 351, 1176, 1157, 1157, 1156, 1156, 1156, 1156, 0, 0, 1177, 1157, 0, 0, 1178, 1179, 1165, 351, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 1181, 1182, 0, 1183, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 14, 14, 1184, 1184, 1184, 1184, 1184, 1184, 840, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 0, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 1185, 0, 351, 1186, 0, 351, 351, 0, 0, 1175, 0, 1157, 1157, 1157, 1156, 1156, 0, 0, 0, 0, 1156, 1156, 0, 0, 1156, 1156, 1165, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, 1188, 1189, 1190, 351, 0, 1191, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1156, 1156, 351, 351, 351, 1187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1157, 1157, 1157, 1156, 1156, 1156, 1156, 1156, 0, 1156, 1156, 1157, 0, 1157, 1157, 1165, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1192, 1156, 1157, 1156, 1156, 1156, 1187, 0, 0, 1193, 1194, 0, 0, 1195, 1196, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 1198, 0, 0, 0, 0, 1199, 1200, 0, 351, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 840, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 351, 0, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 0, 1201, 351, 1202, 351, 0, 0, 0, 351, 351, 0, 351, 0, 351, 351, 0, 0, 0, 351, 351, 0, 0, 0, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 1203, 1157, 1156, 1157, 1157, 0, 0, 0, 1204, 1205, 1157, 0, 1206, 1207, 1208, 1165, 0, 0, 351, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 87, 87, 87, 87, 87, 87, 14, 87, 0, 0, 0, 0, 0, 0, 1157, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 0, 351, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 0, 1210, 1156, 1211, 0, 1156, 1156, 1156, 1165, 0, 0, 0, 0, 0, 0, 0, 1212, 1213, 0, 351, 351, 0, 0, 0, 0, 0, 0, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 840, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1157, 1215, 1216, 1157, 1217, 1157, 1157, 0, 1218, 1219, 1220, 0, 1221, 1222, 1156, 1165, 0, 0, 0, 0, 0, 0, 0, 1223, 1224, 0, 0, 0, 0, 0, 0, 0, 351, 0, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 1225, 1157, 1157, 1156, 1156, 1156, 1187, 0, 1226, 1227, 1157, 0, 1228, 1229, 1230, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 840, 351, 351, 351, 351, 351, 351, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 1232, 0, 0, 0, 0, 1233, 1157, 1157, 1156, 1156, 1156, 0, 1156, 0, 1157, 1234, 1235, 1157, 1236, 1237, 1238, 1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1156, 1240, 1241, 1156, 1156, 1156, 1156, 1242, 1242, 1243, 0, 0, 0, 0, 14, 1240, 1240, 1240, 1240, 1240, 1240, 1244, 1151, 1245, 1245, 1245, 1245, 1151, 1156, 1151, 1035, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 0, 1240, 0, 0, 1240, 1240, 0, 1240, 0, 0, 1240, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 1240, 1240, 1240, 0, 1240, 0, 1240, 0, 0, 1240, 1240, 0, 1240, 1240, 1240, 1240, 1156, 1240, 1246, 1156, 1156, 1156, 1156, 1247, 1247, 0, 1156, 1156, 1240, 0, 0, 1240, 1240, 1240, 1240, 1240, 0, 1244, 0, 1248, 1248, 1248, 1248, 1151, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 1249, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 840, 840, 840, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1251, 1035, 1035, 1035, 1035, 1035, 1035, 840, 840, 840, 840, 840, 553, 553, 840, 840, 840, 840, 840, 840, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 840, 553, 840, 553, 840, 1252, 17, 18, 17, 18, 1253, 1253, 351, 351, 351, 1254, 351, 351, 351, 351, 0, 351, 351, 351, 351, 1255, 351, 351, 351, 351, 1256, 351, 351, 351, 351, 1257, 351, 351, 351, 351, 1258, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1259, 351, 351, 351, 0, 0, 0, 0, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1261, 1261, 1261, 1261, 1156, 1157, 1261, 1269, 540, 540, 1165, 1035, 540, 540, 351, 351, 351, 351, 0, 0, 0, 0, 1156, 1156, 1156, 1270, 1156, 1156, 1156, 1156, 0, 1156, 1156, 1156, 1156, 1271, 1156, 1156, 1156, 1156, 1272, 1156, 1156, 1156, 1156, 1273, 1156, 1156, 1156, 1156, 1274, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1275, 1156, 1156, 1156, 0, 840, 840, 840, 840, 840, 840, 840, 840, 553, 840, 840, 840, 840, 840, 840, 0, 840, 840, 1035, 1035, 1035, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1276, 1277, 1240, 1240, 1240, 1240, 1157, 1157, 1156, 1278, 1156, 1156, 1157, 1156, 1187, 1187, 1187, 1156, 1175, 1157, 1165, 1279, 1157, 1157, 1187, 1187, 1240, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1036, 1036, 1035, 1035, 1035, 1035, 1240, 1240, 1240, 1240, 1240, 1240, 1157, 1157, 1156, 1156, 1240, 1240, 1240, 1240, 1187, 1187, 1187, 1240, 1157, 1157, 1157, 1240, 1240, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1240, 1240, 1240, 1187, 1187, 1187, 1187, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1187, 1157, 1157, 1187, 1187, 1253, 1253, 1253, 1253, 1253, 1253, 1280, 1240, 1253, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 840, 840, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1319, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 1320, 1320, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 577, 840, 1035, 1036, 1035, 1035, 1035, 1035, 1036, 1036, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1036, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 17, 18, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1035, 1035, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 1156, 1156, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1156, 1156, 1243, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1156, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 1156, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1322, 1322, 1157, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1156, 1157, 1157, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1165, 1151, 1035, 1035, 1035, 1244, 1035, 1035, 1035, 14, 1240, 540, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 0, 0, 0, 0, 0, 0, 15, 15, 1323, 11, 15, 15, 1078, 15, 1323, 11, 15, 574, 574, 574, 10, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1325, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1156, 1156, 1157, 1157, 1157, 0, 0, 0, 0, 1157, 1157, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1079, 540, 553, 0, 0, 0, 0, 87, 0, 0, 0, 11, 11, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1157, 1157, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 15, 15, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 577, 576, 1157, 1157, 1157, 0, 0, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1156, 1156, 1157, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 351, 351, 1336, 1337, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1175, 1338, 1156, 1156, 1156, 1156, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1036, 1036, 1035, 1035, 1036, 1036, 1035, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 540, 553, 540, 540, 540, 540, 540, 540, 540, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 1187, 1187, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1187, 1187, 1187, 1187, 1157, 1157, 1187, 1187, 1349, 0, 0, 0, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1157, 1350, 1351, 0, 0, 0, 1036, 1036, 1035, 1035, 1035, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 351, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 522, 522, 522, 522, 522, 522, 1036, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1352, 1353, 1354, 523, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 523, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 523, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1412, 1413, 225, 225, 225, 1414, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 577, 577, 576, 577, 540, 540, 540, 540, 540, 540, 553, 841, 841, 1452, 1453, 1280, 1454, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 553, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 225, 225, 1611, 225, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 0, 0, 1730, 1731, 1732, 1733, 1734, 1735, 0, 0, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 0, 0, 1774, 1775, 1776, 1777, 1778, 1779, 0, 0, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 0, 1788, 0, 1789, 0, 1790, 0, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 0, 0, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 0, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 0, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 0, 0, 1904, 1905, 1906, 1907, 1908, 1909, 0, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 0, 0, 1929, 1930, 1931, 0, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 0, 1941, 1942, 1943, 1943, 1943, 1943, 1943, 1944, 1943, 1943, 1943, 91, 1945, 1945, 1322, 1946, 1078, 1947, 1078, 1948, 1948, 1078, 15, 1949, 1950, 1951, 1952, 1953, 1953, 1954, 1952, 1953, 15, 15, 15, 15, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 86, 13, 13, 13, 1966, 1967, 15, 1968, 1969, 15, 90, 103, 15, 1970, 11, 1971, 57, 57, 15, 15, 15, 1972, 17, 18, 1973, 1974, 1975, 15, 15, 15, 15, 15, 15, 15, 15, 84, 15, 57, 15, 15, 1976, 15, 15, 15, 15, 15, 15, 15, 1943, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 1977, 1978, 0, 0, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 0, 2006, 2007, 2008, 2009, 2010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 2011, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 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, 577, 577, 2012, 2012, 577, 577, 577, 577, 2012, 2012, 2012, 577, 577, 842, 842, 842, 842, 577, 842, 842, 842, 2012, 2012, 577, 576, 577, 2012, 2012, 576, 576, 576, 576, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013, 2014, 2015, 2016, 87, 2017, 2018, 2019, 87, 2020, 2021, 2022, 2022, 2022, 2023, 2024, 2025, 2025, 2026, 2027, 87, 2028, 2029, 87, 87, 2030, 2031, 2032, 2032, 2032, 87, 87, 2033, 2034, 2035, 87, 2036, 87, 2037, 87, 2036, 87, 2038, 2039, 2040, 2015, 93, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 87, 2052, 2053, 2054, 2055, 2056, 2057, 84, 84, 84, 84, 2058, 2059, 2041, 2051, 2060, 87, 84, 87, 87, 2061, 840, 0, 0, 0, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 1321, 1321, 1321, 2107, 2108, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 2109, 84, 2110, 84, 2111, 87, 87, 87, 87, 87, 2112, 2113, 87, 87, 87, 87, 84, 87, 87, 84, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 2114, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2115, 2116, 2117, 2118, 87, 2119, 87, 2120, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2122, 2123, 84, 84, 84, 2124, 2125, 2121, 2126, 2127, 2121, 84, 84, 84, 2121, 19, 94, 84, 2121, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 2128, 2129, 2130, 2131, 84, 84, 84, 84, 2121, 2132, 2133, 2121, 2134, 2135, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 84, 2121, 2136, 2121, 2121, 2121, 2121, 2137, 2121, 2138, 2139, 2140, 2121, 2141, 2142, 2143, 2121, 2121, 2121, 2144, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2145, 2146, 2147, 84, 2148, 2149, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2121, 2121, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2121, 2121, 2121, 84, 84, 2121, 2121, 2177, 2178, 84, 84, 84, 84, 84, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2179, 2121, 84, 84, 2121, 2121, 2180, 2181, 2121, 2182, 2183, 2184, 2185, 2186, 2121, 2121, 2187, 2188, 2189, 2190, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 84, 2121, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2191, 2192, 2193, 2194, 2121, 2121, 2121, 2121, 2121, 2121, 2195, 2196, 2197, 2198, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 87, 2121, 2121, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 2199, 2200, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 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, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 0, 87, 87, 87, 87, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 0, 87, 87, 87, 87, 0, 0, 0, 87, 0, 87, 87, 87, 2340, 2340, 2340, 2340, 0, 0, 87, 87, 87, 87, 87, 87, 87, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 87, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 2121, 84, 84, 2121, 2121, 17, 18, 84, 2121, 2121, 84, 0, 2121, 0, 0, 0, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 84, 84, 17, 18, 17, 18, 2121, 84, 84, 84, 84, 2121, 84, 2121, 2121, 2121, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 17, 18, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2341, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 84, 84, 2121, 84, 2121, 84, 84, 2121, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 2121, 2121, 84, 84, 2121, 2342, 2343, 2344, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2345, 2346, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 84, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 2121, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 84, 84, 84, 84, 84, 84, 0, 0, 0, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 0, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 0, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 0, 225, 2457, 2458, 225, 2459, 2460, 225, 225, 225, 225, 225, 2461, 2462, 0, 0, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 225, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 1214, 15, 15, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 12, 12, 90, 103, 90, 103, 12, 12, 12, 90, 103, 12, 90, 103, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1078, 15, 15, 1078, 15, 90, 103, 15, 15, 90, 103, 17, 18, 17, 18, 17, 18, 17, 18, 15, 15, 15, 15, 11, 521, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 2602, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 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, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 2818, 1323, 11, 15, 87, 1324, 1240, 2819, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 87, 87, 17, 18, 17, 18, 17, 18, 17, 18, 1078, 1952, 2820, 2820, 87, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2821, 1080, 552, 1079, 2822, 2822, 1078, 2823, 2823, 2823, 2823, 2823, 2824, 87, 2825, 2826, 2827, 1324, 351, 15, 87, 87, 0, 1240, 1240, 1240, 1240, 1240, 2828, 1240, 1240, 1240, 1240, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 1240, 2853, 2854, 2855, 2856, 2857, 2858, 1240, 1240, 1240, 1240, 1240, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 2874, 1240, 1240, 0, 0, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2883, 2883, 2883, 2883, 2884, 2883, 2883, 2883, 2883, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2883, 2909, 2910, 2911, 2912, 2913, 2914, 2883, 2883, 2883, 2883, 2883, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2930, 2931, 2932, 2933, 2883, 2934, 2883, 2883, 2935, 2936, 2937, 2938, 15, 2939, 2940, 2941, 2942, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 0, 840, 840, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 0, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 840, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 0, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 15, 11, 11, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 0, 0, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 351, 841, 3592, 3592, 3592, 15, 0, 0, 0, 0, 0, 0, 0, 0, 841, 841, 15, 521, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 521, 521, 521, 521, 521, 521, 521, 521, 521, 56, 56, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 225, 225, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 225, 225, 225, 225, 225, 225, 225, 225, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 521, 3710, 3710, 3711, 3712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 1187, 351, 351, 351, 1243, 351, 351, 351, 351, 1156, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1156, 1156, 1157, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 15, 15, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1036, 1036, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1280, 1280, 1280, 3713, 1036, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1157, 1187, 1187, 1157, 1157, 1187, 1187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 1187, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1157, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 1035, 1036, 1036, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3735, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3825, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3809, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3735, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3811, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 1240, 1240, 3980, 1240, 3981, 1240, 1240, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 1240, 3992, 1240, 3993, 1240, 1240, 3994, 3995, 1240, 1240, 1240, 3996, 3997, 3998, 3999, 0, 0, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 3864, 4039, 4040, 4041, 4042, 4043, 4044, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 3994, 4053, 4054, 4055, 0, 0, 0, 0, 0, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4006, 4064, 4065, 4066, 3980, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4015, 4079, 4016, 4080, 4081, 4082, 4083, 4084, 3981, 3756, 4085, 4086, 4087, 3826, 3913, 4088, 4089, 4023, 4090, 4024, 4091, 4092, 4093, 3983, 4094, 4095, 4096, 4097, 4098, 3984, 4099, 4100, 4101, 4102, 4103, 4104, 4038, 4105, 4106, 3864, 4107, 4042, 4108, 4109, 4110, 4111, 4112, 4047, 4113, 3993, 4114, 4048, 3807, 4115, 4049, 4116, 4051, 4117, 4118, 4119, 4120, 4121, 4053, 3989, 4122, 4054, 4123, 4055, 4124, 3723, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4143, 4144, 4145, 4146, 4147, 0, 0, 0, 0, 0, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 0, 4174, 4175, 4176, 4177, 4178, 0, 4179, 0, 4180, 4181, 0, 4182, 4183, 0, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4330, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4331, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 1952, 2820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 0, 0, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 87, 0, 0, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 841, 841, 841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4794, 4795, 4796, 4797, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 15, 15, 4814, 4815, 4816, 4816, 4816, 4816, 4817, 4817, 4817, 4818, 4819, 4820, 0, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 0, 4840, 4841, 4842, 4843, 0, 0, 0, 0, 4844, 4845, 4846, 1113, 4847, 0, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 0, 0, 91, 0, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 0, 0, 0, 5173, 5174, 5175, 5176, 5177, 5178, 0, 0, 5179, 5180, 5181, 5182, 5183, 5184, 0, 0, 5185, 5186, 5187, 5188, 5189, 5190, 0, 0, 5191, 5192, 5193, 0, 0, 0, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 0, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5208, 5208, 5208, 87, 87, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 1035, 15, 840, 0, 0, 0, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 1214, 1214, 1214, 1214, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 1214, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 1184, 1184, 1184, 1184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1321, 351, 351, 351, 351, 351, 351, 351, 351, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 1035, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1321, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 1100, 1100, 0, 0, 0, 1100, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 5291, 5291, 5291, 5291, 0, 0, 0, 0, 0, 15, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1156, 1156, 1156, 0, 1156, 1156, 0, 0, 0, 0, 0, 1156, 576, 1156, 577, 1100, 1100, 1100, 1100, 0, 1100, 1100, 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 577, 2012, 576, 0, 0, 0, 0, 1243, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 1035, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5292, 5293, 840, 840, 840, 840, 840, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 566, 566, 566, 840, 840, 840, 5303, 5304, 5305, 5306, 5307, 5308, 91, 91, 91, 91, 91, 91, 91, 91, 553, 553, 553, 553, 553, 553, 553, 553, 840, 840, 540, 540, 540, 540, 540, 553, 553, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 540, 540, 540, 540, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 577, 577, 577, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 0, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 0, 2015, 2058, 0, 0, 5318, 0, 0, 5319, 5320, 0, 0, 2028, 5321, 2030, 2031, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 0, 5332, 0, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 0, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 0, 2058, 2042, 2043, 5318, 0, 0, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 0, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 0, 2058, 2042, 2043, 5318, 0, 2025, 5319, 5320, 2026, 2045, 0, 5321, 0, 0, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 0, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 0, 0, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 0, 0, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5415, 5416, 5417, 5418, 5419, 4000, 5420, 5421, 5422, 5423, 4001, 5424, 5425, 5426, 4002, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 4057, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 4062, 4003, 4004, 4063, 5448, 5449, 3813, 5450, 4005, 5451, 5452, 5453, 5454, 5454, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5472, 4065, 5473, 5474, 5475, 5476, 4007, 5477, 5478, 5479, 3966, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5505, 5506, 5507, 5508, 3809, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 4012, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 3755, 5538, 5539, 5540, 5540, 5541, 5542, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 4013, 5556, 5557, 5558, 5559, 4077, 5559, 5560, 4015, 5561, 5562, 5563, 5564, 4016, 3728, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 4017, 5587, 5588, 5589, 5590, 5591, 5592, 4019, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 3756, 4085, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 4020, 5609, 5610, 5611, 5612, 4128, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 3826, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 4021, 3913, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 4089, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 4090, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 4092, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5675, 5676, 5677, 4094, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 3812, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 4100, 5692, 5693, 5694, 5695, 5696, 5697, 5697, 4101, 4130, 5698, 5699, 5700, 5701, 5702, 3774, 4103, 5703, 5704, 4032, 5705, 5706, 3988, 5707, 5708, 4036, 5709, 5710, 5711, 5712, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 4042, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5541, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 3830, 5768, 5769, 5770, 5771, 5772, 5773, 4045, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 3769, 5794, 5795, 5796, 5797, 5798, 5799, 4110, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 4115, 4116, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 4117, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 4123, 4123, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 4124, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 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, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 0, 0, }; const utf8proc_property_t utf8proc_properties[] = { {0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, true, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 0, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 2, 2,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 3, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 3, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 1, 1,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17580, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17400, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17640, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 97, 0, 0, -1, 97, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 98, 0, 8640, -1, 98, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 99, 0, 60, -1, 99, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 100, 0, 960, -1, 100, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 101, 0, 120, -1, 101, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 102, 0, 9120, -1, 102, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 103, 0, 1080, -1, 103, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 104, 0, 1200, -1, 104, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 105, 0, 180, -1, 105, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 106, 0, 1320, -1, 106, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 107, 0, 1440, -1, 107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 108, 0, 1560, -1, 108, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 109, 0, 9480, -1, 109, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 110, 0, 240, -1, 110, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 111, 0, 300, -1, 111, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 112, 0, 9720, -1, 112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 113, 0, -1, -1, 113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 114, 0, 1680, -1, 114, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 115, 0, 1800, -1, 115, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 116, 0, 1920, -1, 116, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 117, 0, 360, -1, 117, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 118, 0, 10560, -1, 118, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 119, 0, 2040, -1, 119, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 120, 0, 10680, -1, 120, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 121, 0, 420, -1, 121, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 122, 0, 2160, -1, 122, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 65, 0, 65, 480, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66, 0, 66, 8700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 67, 0, 67, 540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 68, 0, 68, 1020, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 69, 0, 69, 600, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 70, 0, 70, 9180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 71, 0, 71, 1140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 72, 0, 72, 1260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 73, 0, 73, 660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 74, 0, 74, 1380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 75, 0, 75, 1500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 76, 0, 76, 1620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 77, 0, 77, 9540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 78, 0, 78, 720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 79, 0, 79, 780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 80, 0, 80, 9780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 81, 0, 81, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 82, 0, 82, 1740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 83, 0, 83, 1860, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 84, 0, 84, 1980, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 85, 0, 85, 840, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 86, 0, 86, 10620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 87, 0, 87, 2100, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 88, 0, 88, 10740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 89, 0, 89, 900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 90, 0, 90, 2220, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_NOBREAK, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2, 0, 0, 0, 3600, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -5, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -8, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 956, 924, 0, 924, -1, -1, 956, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -11, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -14, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -18, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -22, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -26, 0, 224, 0, -1, -1, 224, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -29, 0, 225, 0, -1, -1, 225, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -32, 0, 226, 0, 10860, -1, 226, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -35, 0, 227, 0, -1, -1, 227, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -38, 0, 228, 0, 2400, -1, 228, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -41, 0, 229, 0, 3000, -1, 229, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 230, 0, 2640, -1, 230, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -44, 0, 231, 0, 8760, -1, 231, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -47, 0, 232, 0, -1, -1, 232, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -50, 0, 233, 0, -1, -1, 233, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -53, 0, 234, 0, 11220, -1, 234, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -56, 0, 235, 0, -1, -1, 235, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -59, 0, 236, 0, -1, -1, 236, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -62, 0, 237, 0, -1, -1, 237, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -65, 0, 238, 0, -1, -1, 238, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -68, 0, 239, 0, 9240, -1, 239, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 240, 0, -1, -1, 240, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -71, 0, 241, 0, -1, -1, 241, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -74, 0, 242, 0, -1, -1, 242, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -77, 0, 243, 0, -1, -1, 243, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -80, 0, 244, 0, 11460, -1, 244, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -83, 0, 245, 0, 3360, -1, 245, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -86, 0, 246, 0, 3240, -1, 246, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 248, 0, 3120, -1, 248, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -89, 0, 249, 0, -1, -1, 249, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -92, 0, 250, 0, -1, -1, 250, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -95, 0, 251, 0, -1, -1, 251, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -98, 0, 252, 0, 2280, -1, 252, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -101, 0, 253, 0, -1, -1, 253, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 254, 0, -1, -1, 254, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, -104, -107, -109, -1, -1, -112, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -115, 192, 0, 192, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -118, 193, 0, 193, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -121, 194, 0, 194, 10920, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -124, 195, 0, 195, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -127, 196, 0, 196, 2460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -130, 197, 0, 197, 3060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 198, 0, 198, 2700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -133, 199, 0, 199, 8820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -136, 200, 0, 200, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -139, 201, 0, 201, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -142, 202, 0, 202, 11280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -145, 203, 0, 203, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -148, 204, 0, 204, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -151, 205, 0, 205, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -154, 206, 0, 206, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -157, 207, 0, 207, 9300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 208, 0, 208, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -160, 209, 0, 209, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -163, 210, 0, 210, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -166, 211, 0, 211, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -169, 212, 0, 212, 11520, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -172, 213, 0, 213, 3420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -175, 214, 0, 214, 3300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 216, 0, 216, 3180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -178, 217, 0, 217, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -181, 218, 0, 218, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -184, 219, 0, 219, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -187, 220, 0, 220, 2340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -190, 221, 0, 221, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 222, 0, 222, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -193, 376, 0, 376, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -196, 0, 257, 0, -1, -1, 257, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -199, 256, 0, 256, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -202, 0, 259, 0, 11100, -1, 259, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -205, 258, 0, 258, 11160, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -208, 0, 261, 0, -1, -1, 261, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -211, 260, 0, 260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -214, 0, 263, 0, -1, -1, 263, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -217, 262, 0, 262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -220, 0, 265, 0, -1, -1, 265, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -223, 264, 0, 264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -226, 0, 267, 0, -1, -1, 267, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -229, 266, 0, 266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -232, 0, 269, 0, -1, -1, 269, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -235, 268, 0, 268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -238, 0, 271, 0, -1, -1, 271, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -241, 270, 0, 270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 273, 0, -1, -1, 273, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 272, 0, 272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -244, 0, 275, 0, 8880, -1, 275, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -247, 274, 0, 274, 8940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -250, 0, 277, 0, -1, -1, 277, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -253, 276, 0, 276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -256, 0, 279, 0, -1, -1, 279, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -259, 278, 0, 278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -262, 0, 281, 0, -1, -1, 281, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -265, 280, 0, 280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -268, 0, 283, 0, -1, -1, 283, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -271, 282, 0, 282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -274, 0, 285, 0, -1, -1, 285, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -277, 284, 0, 284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -280, 0, 287, 0, -1, -1, 287, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -283, 286, 0, 286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -286, 0, 289, 0, -1, -1, 289, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -289, 288, 0, 288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -292, 0, 291, 0, -1, -1, 291, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -295, 290, 0, 290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -298, 0, 293, 0, -1, -1, 293, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -301, 292, 0, 292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 295, 0, -1, -1, 295, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 294, 0, 294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -304, 0, 297, 0, -1, -1, 297, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -307, 296, 0, 296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -310, 0, 299, 0, -1, -1, 299, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -313, 298, 0, 298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -316, 0, 301, 0, -1, -1, 301, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -319, 300, 0, 300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -322, 0, 303, 0, -1, -1, 303, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -325, 302, 0, 302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -328, -331, -333, -331, -1, -1, -333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 73, 0, 73, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -336, 0, 307, 0, -1, -1, 307, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -339, 306, 0, 306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -342, 0, 309, 0, -1, -1, 309, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -345, 308, 0, 308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -348, 0, 311, 0, -1, -1, 311, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -351, 310, 0, 310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -354, 0, 314, 0, -1, -1, 314, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -357, 313, 0, 313, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -360, 0, 316, 0, -1, -1, 316, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -363, 315, 0, 315, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -366, 0, 318, 0, -1, -1, 318, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -369, 317, 0, 317, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -372, 0, 320, 0, -1, -1, 320, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -375, 319, 0, 319, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 322, 0, -1, -1, 322, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 321, 0, 321, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -378, 0, 324, 0, -1, -1, 324, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -381, 323, 0, 323, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -384, 0, 326, 0, -1, -1, 326, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -387, 325, 0, 325, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -390, 0, 328, 0, -1, -1, 328, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -393, 327, 0, 327, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -396, -399, -402, -399, -1, -1, -396, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 331, 0, -1, -1, 331, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 330, 0, 330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -404, 0, 333, 0, 9600, -1, 333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -407, 332, 0, 332, 9660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -410, 0, 335, 0, -1, -1, 335, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -413, 334, 0, 334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -416, 0, 337, 0, -1, -1, 337, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -419, 336, 0, 336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 339, 0, -1, -1, 339, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 338, 0, 338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -422, 0, 341, 0, -1, -1, 341, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -425, 340, 0, 340, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -428, 0, 343, 0, -1, -1, 343, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -431, 342, 0, 342, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -434, 0, 345, 0, -1, -1, 345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -437, 344, 0, 344, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -440, 0, 347, 0, 9960, -1, 347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -443, 346, 0, 346, 10020, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -446, 0, 349, 0, -1, -1, 349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -449, 348, 0, 348, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -452, 0, 351, 0, -1, -1, 351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -455, 350, 0, 350, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -458, 0, 353, 0, 10080, -1, 353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -461, 352, 0, 352, 10140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -464, 0, 355, 0, -1, -1, 355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -467, 354, 0, 354, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -470, 0, 357, 0, -1, -1, 357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -473, 356, 0, 356, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 359, 0, -1, -1, 359, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 358, 0, 358, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -476, 0, 361, 0, 10320, -1, 361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -479, 360, 0, 360, 10380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -482, 0, 363, 0, 10440, -1, 363, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -485, 362, 0, 362, 10500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -488, 0, 365, 0, -1, -1, 365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -491, 364, 0, 364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -494, 0, 367, 0, -1, -1, 367, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -497, 366, 0, 366, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -500, 0, 369, 0, -1, -1, 369, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -503, 368, 0, 368, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -506, 0, 371, 0, -1, -1, 371, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -509, 370, 0, 370, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -512, 0, 373, 0, -1, -1, 373, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -515, 372, 0, 372, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -518, 0, 375, 0, -1, -1, 375, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -521, 374, 0, 374, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -524, 0, 255, 0, -1, -1, 255, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -527, 0, 378, 0, -1, -1, 378, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -530, 377, 0, 377, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -533, 0, 380, 0, -1, -1, 380, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -536, 379, 0, 379, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -539, 0, 382, 0, -1, -1, 382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -542, 381, 0, 381, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 115, 83, 0, 83, 10800, -1, 115, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 579, 0, 579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 595, 0, -1, -1, 595, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 387, 0, -1, -1, 387, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 386, 0, 386, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 389, 0, -1, -1, 389, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 388, 0, 388, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 596, 0, -1, -1, 596, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 392, 0, -1, -1, 392, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 391, 0, 391, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 598, 0, -1, -1, 598, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 599, 0, -1, -1, 599, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 396, 0, -1, -1, 396, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 395, 0, 395, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 477, 0, -1, -1, 477, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 601, 0, -1, -1, 601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 603, 0, -1, -1, 603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 402, 0, -1, -1, 402, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 401, 0, 401, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 608, 0, -1, -1, 608, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 611, 0, -1, -1, 611, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 502, 0, 502, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 617, 0, -1, -1, 617, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 616, 0, -1, -1, 616, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 409, 0, -1, -1, 409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 408, 0, 408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 573, 0, 573, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 623, 0, -1, -1, 623, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 626, 0, -1, -1, 626, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 544, 0, 544, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 629, 0, -1, -1, 629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -545, 0, 417, 0, 11700, -1, 417, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -548, 416, 0, 416, 11760, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 419, 0, -1, -1, 419, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 418, 0, 418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 421, 0, -1, -1, 421, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 420, 0, 420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 640, 0, -1, -1, 640, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 424, 0, -1, -1, 424, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 423, 0, 423, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 643, 0, -1, -1, 643, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 429, 0, -1, -1, 429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 428, 0, 428, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 648, 0, -1, -1, 648, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -551, 0, 432, 0, 11820, -1, 432, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -554, 431, 0, 431, 11880, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 650, 0, -1, -1, 650, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 651, 0, -1, -1, 651, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 436, 0, -1, -1, 436, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 435, 0, 435, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 438, 0, -1, -1, 438, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 437, 0, 437, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 658, 0, 2880, -1, 658, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 441, 0, -1, -1, 441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 440, 0, 440, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 445, 0, -1, -1, 445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 444, 0, 444, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 503, 0, 503, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -557, 0, 454, 453, -1, -1, 454, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -560, 452, 454, 453, -1, -1, 454, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -563, 452, 0, 453, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -566, 0, 457, 456, -1, -1, 457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -569, 455, 457, 456, -1, -1, 457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -572, 455, 0, 456, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -575, 0, 460, 459, -1, -1, 460, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -578, 458, 460, 459, -1, -1, 460, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -581, 458, 0, 459, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -584, 0, 462, 0, -1, -1, 462, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -587, 461, 0, 461, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -590, 0, 464, 0, -1, -1, 464, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -593, 463, 0, 463, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -596, 0, 466, 0, -1, -1, 466, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -599, 465, 0, 465, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -602, 0, 468, 0, -1, -1, 468, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -605, 467, 0, 467, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -608, 0, 470, 0, -1, -1, 470, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -611, 469, 0, 469, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -614, 0, 472, 0, -1, -1, 472, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -617, 471, 0, 471, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -620, 0, 474, 0, -1, -1, 474, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -623, 473, 0, 473, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -626, 0, 476, 0, -1, -1, 476, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -629, 475, 0, 475, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 398, 0, 398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -632, 0, 479, 0, -1, -1, 479, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -635, 478, 0, 478, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -638, 0, 481, 0, -1, -1, 481, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -641, 480, 0, 480, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -644, 0, 483, 0, -1, -1, 483, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -647, 482, 0, 482, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 485, 0, -1, -1, 485, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 484, 0, 484, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -650, 0, 487, 0, -1, -1, 487, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -653, 486, 0, 486, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -656, 0, 489, 0, -1, -1, 489, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -659, 488, 0, 488, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -662, 0, 491, 0, 2760, -1, 491, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -665, 490, 0, 490, 2820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -668, 0, 493, 0, -1, -1, 493, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -671, 492, 0, 492, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -674, 0, 495, 0, -1, -1, 495, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -677, 494, 0, 494, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -680, -683, -686, -683, -1, -1, -680, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -688, 0, 499, 498, -1, -1, 499, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -691, 497, 499, 498, -1, -1, 499, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -694, 497, 0, 498, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -697, 0, 501, 0, -1, -1, 501, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -700, 500, 0, 500, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 405, 0, -1, -1, 405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 447, 0, -1, -1, 447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -703, 0, 505, 0, -1, -1, 505, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -706, 504, 0, 504, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -709, 0, 507, 0, -1, -1, 507, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -712, 506, 0, 506, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -715, 0, 509, 0, -1, -1, 509, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -718, 508, 0, 508, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -721, 0, 511, 0, -1, -1, 511, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -724, 510, 0, 510, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -727, 0, 513, 0, -1, -1, 513, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -730, 512, 0, 512, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -733, 0, 515, 0, -1, -1, 515, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -736, 514, 0, 514, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -739, 0, 517, 0, -1, -1, 517, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -742, 516, 0, 516, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -745, 0, 519, 0, -1, -1, 519, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -748, 518, 0, 518, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -751, 0, 521, 0, -1, -1, 521, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -754, 520, 0, 520, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -757, 0, 523, 0, -1, -1, 523, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -760, 522, 0, 522, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -763, 0, 525, 0, -1, -1, 525, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -766, 524, 0, 524, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -769, 0, 527, 0, -1, -1, 527, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -772, 526, 0, 526, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -775, 0, 529, 0, -1, -1, 529, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -778, 528, 0, 528, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -781, 0, 531, 0, -1, -1, 531, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -784, 530, 0, 530, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -787, 0, 533, 0, -1, -1, 533, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -790, 532, 0, 532, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -793, 0, 535, 0, -1, -1, 535, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -796, 534, 0, 534, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -799, 0, 537, 0, -1, -1, 537, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -802, 536, 0, 536, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -805, 0, 539, 0, -1, -1, 539, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -808, 538, 0, 538, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 541, 0, -1, -1, 541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 540, 0, 540, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -811, 0, 543, 0, -1, -1, 543, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -814, 542, 0, 542, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 414, 0, -1, -1, 414, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 547, 0, -1, -1, 547, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 546, 0, 546, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 549, 0, -1, -1, 549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 548, 0, 548, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -817, 0, 551, 0, 2520, -1, 551, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -820, 550, 0, 550, 2580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -823, 0, 553, 0, 9000, -1, 553, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -826, 552, 0, 552, 9060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -829, 0, 555, 0, -1, -1, 555, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -832, 554, 0, 554, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -835, 0, 557, 0, -1, -1, 557, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -838, 556, 0, 556, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -841, 0, 559, 0, 3480, -1, 559, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -844, 558, 0, 558, 3540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -847, 0, 561, 0, -1, -1, 561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -850, 560, 0, 560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -853, 0, 563, 0, -1, -1, 563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -856, 562, 0, 562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11365, 0, -1, -1, 11365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 572, 0, -1, -1, 572, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 571, 0, 571, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 410, 0, -1, -1, 410, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11366, 0, -1, -1, 11366, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 578, 0, -1, -1, 578, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 577, 0, 577, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 384, 0, -1, -1, 384, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 649, 0, -1, -1, 649, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 652, 0, -1, -1, 652, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 583, 0, -1, -1, 583, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 582, 0, 582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 585, 0, -1, -1, 585, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 584, 0, 584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 587, 0, -1, -1, 587, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 586, 0, 586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 589, 0, -1, -1, 589, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 588, 0, 588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 591, 0, -1, -1, 591, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 590, 0, 590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11375, 0, 11375, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11373, 0, 11373, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 385, 0, 385, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 390, 0, 390, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 393, 0, 393, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 394, 0, 394, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 399, 0, 399, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 400, 0, 400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 403, 0, 403, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 404, 0, 404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 407, 0, 407, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 406, 0, 406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11362, 0, 11362, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 412, 0, 412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11374, 0, 11374, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 413, 0, 413, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 415, 0, 415, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11364, 0, 11364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 422, 0, 422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 425, 0, 425, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 430, 0, 430, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 580, 0, 580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 433, 0, 433, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 434, 0, 434, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 581, 0, 581, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 439, 0, 439, 2940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 104, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 614, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 633, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 635, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 641, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 119, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 121, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -862, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -865, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -868, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -871, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -874, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 611, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 108, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 115, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 661, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 0, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 2, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 3, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 7, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 8, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 10, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 4, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 46, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 5, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 12, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 11, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 14, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 15, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 47, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 48, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 13, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 40, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 45, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 39, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 16, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 6, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 9, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 42, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 44, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 43, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 41, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 51, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 768, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 769, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 49, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 787, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, -877, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 240, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 921, 0, 921, -1, 50, 953, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, true, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 881, 0, -1, -1, 881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 880, 0, 880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 883, 0, -1, -1, 883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 882, 0, 882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 697, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 887, 0, -1, -1, 887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 886, 0, 886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -880, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1021, 0, 1021, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1022, 0, 1022, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1023, 0, 1023, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -883, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -886, 0, 940, 0, -1, -1, 940, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 183, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -889, 0, 941, 0, -1, -1, 941, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -892, 0, 942, 0, -1, -1, 942, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -895, 0, 943, 0, -1, -1, 943, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -898, 0, 972, 0, -1, -1, 972, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -901, 0, 973, 0, -1, -1, 973, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -904, 0, 974, 0, -1, -1, 974, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -907, -910, -914, -910, -1, -1, -916, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 945, 0, 3660, -1, 945, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 946, 0, -1, -1, 946, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 947, 0, -1, -1, 947, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 948, 0, -1, -1, 948, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 949, 0, 3720, -1, 949, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 950, 0, -1, -1, 950, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 951, 0, 3780, -1, 951, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 952, 0, -1, -1, 952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 953, 0, 3840, -1, 953, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 954, 0, -1, -1, 954, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 955, 0, -1, -1, 955, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 956, 0, -1, -1, 956, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 957, 0, -1, -1, 957, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 958, 0, -1, -1, 958, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 959, 0, 3900, -1, 959, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 960, 0, -1, -1, 960, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 961, 0, 16260, -1, 961, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 963, 0, -1, -1, 963, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 964, 0, -1, -1, 964, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 965, 0, 3960, -1, 965, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 966, 0, -1, -1, 966, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 967, 0, -1, -1, 967, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 968, 0, -1, -1, 968, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 969, 0, 4020, -1, 969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -920, 0, 970, 0, -1, -1, 970, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -923, 0, 971, 0, -1, -1, 971, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -926, 902, 0, 902, 15780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -929, 904, 0, 904, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -932, 905, 0, 905, 15960, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -935, 906, 0, 906, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -938, -941, -945, -941, -1, -1, -947, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 913, 0, 913, 4140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 914, 0, 914, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 915, 0, 915, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 916, 0, 916, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 917, 0, 917, 4200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 918, 0, 918, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 919, 0, 919, 4260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 920, 0, 920, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 921, 0, 921, 4320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 922, 0, 922, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 923, 0, 923, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 924, 0, 924, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 925, 0, 925, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 926, 0, 926, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 927, 0, 927, 4500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 928, 0, 928, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 929, 0, 929, 16200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 931, 0, 931, -1, -1, 963, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 931, 0, 931, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 932, 0, 932, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 933, 0, 933, 4440, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 934, 0, 934, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 935, 0, 935, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 936, 0, 936, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 937, 0, 937, 4560, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -951, 938, 0, 938, 4080, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -954, 939, 0, 939, 4380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -957, 908, 0, 908, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -960, 910, 0, 910, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -963, 911, 0, 911, 16380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 983, 0, -1, -1, 983, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 946, 914, 0, 914, -1, -1, 946, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 952, 920, 0, 920, -1, -1, 952, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 933, 0, 0, 0, 4620, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -966, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -969, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 966, 934, 0, 934, -1, -1, 966, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 960, 928, 0, 928, -1, -1, 960, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 975, 0, 975, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 985, 0, -1, -1, 985, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 984, 0, 984, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 987, 0, -1, -1, 987, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 986, 0, 986, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 989, 0, -1, -1, 989, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 988, 0, 988, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 991, 0, -1, -1, 991, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 990, 0, 990, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 993, 0, -1, -1, 993, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 992, 0, 992, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 995, 0, -1, -1, 995, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 994, 0, 994, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 997, 0, -1, -1, 997, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 996, 0, 996, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 999, 0, -1, -1, 999, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 998, 0, 998, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1001, 0, -1, -1, 1001, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1000, 0, 1000, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1003, 0, -1, -1, 1003, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1002, 0, 1002, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1005, 0, -1, -1, 1005, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1004, 0, 1004, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1007, 0, -1, -1, 1007, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1006, 0, 1006, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 954, 922, 0, 922, -1, -1, 954, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 961, 929, 0, 929, -1, -1, 961, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 962, 1017, 0, 1017, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 920, 0, 952, 0, -1, -1, 952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 949, 917, 0, 917, -1, -1, 949, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1016, 0, -1, -1, 1016, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1015, 0, 1015, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 931, 0, 1010, 0, -1, -1, 1010, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1019, 0, -1, -1, 1019, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1018, 0, 1018, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 891, 0, -1, -1, 891, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 892, 0, -1, -1, 892, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 893, 0, -1, -1, 893, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -972, 0, 1104, 0, -1, -1, 1104, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -975, 0, 1105, 0, -1, -1, 1105, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1106, 0, -1, -1, 1106, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -978, 0, 1107, 0, -1, -1, 1107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1108, 0, -1, -1, 1108, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1109, 0, -1, -1, 1109, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1110, 0, 4800, -1, 1110, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -981, 0, 1111, 0, -1, -1, 1111, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1112, 0, -1, -1, 1112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1113, 0, -1, -1, 1113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1114, 0, -1, -1, 1114, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1115, 0, -1, -1, 1115, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -984, 0, 1116, 0, -1, -1, 1116, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -987, 0, 1117, 0, -1, -1, 1117, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -990, 0, 1118, 0, -1, -1, 1118, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1119, 0, -1, -1, 1119, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1072, 0, 5640, -1, 1072, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1073, 0, -1, -1, 1073, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1074, 0, -1, -1, 1074, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1075, 0, 4740, -1, 1075, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1076, 0, -1, -1, 1076, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1077, 0, 4680, -1, 1077, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1078, 0, 5520, -1, 1078, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1079, 0, 5880, -1, 1079, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1080, 0, 4920, -1, 1080, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -993, 0, 1081, 0, -1, -1, 1081, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1082, 0, 4860, -1, 1082, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1083, 0, -1, -1, 1083, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1084, 0, -1, -1, 1084, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1085, 0, -1, -1, 1085, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1086, 0, 6000, -1, 1086, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1087, 0, -1, -1, 1087, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1088, 0, -1, -1, 1088, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1089, 0, -1, -1, 1089, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1090, 0, -1, -1, 1090, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1091, 0, 4980, -1, 1091, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1092, 0, -1, -1, 1092, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1093, 0, -1, -1, 1093, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1094, 0, -1, -1, 1094, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1095, 0, 6360, -1, 1095, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1096, 0, -1, -1, 1096, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1097, 0, -1, -1, 1097, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1098, 0, -1, -1, 1098, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1099, 0, 6480, -1, 1099, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1100, 0, -1, -1, 1100, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1101, 0, 6240, -1, 1101, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1102, 0, -1, -1, 1102, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1103, 0, -1, -1, 1103, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1040, 0, 1040, 5700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1041, 0, 1041, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1042, 0, 1042, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1043, 0, 1043, 5160, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1044, 0, 1044, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1045, 0, 1045, 5100, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1046, 0, 1046, 5580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1047, 0, 1047, 5940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1048, 0, 1048, 5040, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -996, 1049, 0, 1049, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1050, 0, 1050, 5280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1051, 0, 1051, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1052, 0, 1052, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1053, 0, 1053, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1054, 0, 1054, 6060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1055, 0, 1055, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1056, 0, 1056, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1057, 0, 1057, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1058, 0, 1058, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1059, 0, 1059, 5340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1060, 0, 1060, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1061, 0, 1061, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1062, 0, 1062, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1063, 0, 1063, 6420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1064, 0, 1064, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1065, 0, 1065, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1066, 0, 1066, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1067, 0, 1067, 6540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1068, 0, 1068, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1069, 0, 1069, 6300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1070, 0, 1070, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1071, 0, 1071, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -999, 1024, 0, 1024, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1002, 1025, 0, 1025, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1026, 0, 1026, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1005, 1027, 0, 1027, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1028, 0, 1028, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1029, 0, 1029, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1030, 0, 1030, 5220, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1008, 1031, 0, 1031, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1032, 0, 1032, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1033, 0, 1033, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1034, 0, 1034, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1035, 0, 1035, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1011, 1036, 0, 1036, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1014, 1037, 0, 1037, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1017, 1038, 0, 1038, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1039, 0, 1039, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1121, 0, -1, -1, 1121, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1120, 0, 1120, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1123, 0, -1, -1, 1123, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1122, 0, 1122, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1125, 0, -1, -1, 1125, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1124, 0, 1124, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1127, 0, -1, -1, 1127, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1126, 0, 1126, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1129, 0, -1, -1, 1129, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1128, 0, 1128, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1131, 0, -1, -1, 1131, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1130, 0, 1130, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1133, 0, -1, -1, 1133, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1132, 0, 1132, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1135, 0, -1, -1, 1135, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1134, 0, 1134, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1137, 0, -1, -1, 1137, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1136, 0, 1136, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1139, 0, -1, -1, 1139, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1138, 0, 1138, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1141, 0, 5400, -1, 1141, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1140, 0, 1140, 5460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1020, 0, 1143, 0, -1, -1, 1143, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1023, 1142, 0, 1142, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1145, 0, -1, -1, 1145, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1144, 0, 1144, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1147, 0, -1, -1, 1147, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1146, 0, 1146, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1149, 0, -1, -1, 1149, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1148, 0, 1148, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1151, 0, -1, -1, 1151, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1150, 0, 1150, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1153, 0, -1, -1, 1153, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1152, 0, 1152, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1163, 0, -1, -1, 1163, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1162, 0, 1162, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1165, 0, -1, -1, 1165, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1164, 0, 1164, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1167, 0, -1, -1, 1167, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1166, 0, 1166, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1169, 0, -1, -1, 1169, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1168, 0, 1168, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1171, 0, -1, -1, 1171, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1170, 0, 1170, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1173, 0, -1, -1, 1173, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1172, 0, 1172, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1175, 0, -1, -1, 1175, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1174, 0, 1174, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1177, 0, -1, -1, 1177, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1176, 0, 1176, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1179, 0, -1, -1, 1179, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1178, 0, 1178, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1181, 0, -1, -1, 1181, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1180, 0, 1180, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1183, 0, -1, -1, 1183, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1182, 0, 1182, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1185, 0, -1, -1, 1185, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1184, 0, 1184, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1187, 0, -1, -1, 1187, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1186, 0, 1186, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1189, 0, -1, -1, 1189, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1188, 0, 1188, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1191, 0, -1, -1, 1191, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1190, 0, 1190, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1193, 0, -1, -1, 1193, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1192, 0, 1192, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1195, 0, -1, -1, 1195, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1194, 0, 1194, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1197, 0, -1, -1, 1197, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1196, 0, 1196, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1199, 0, -1, -1, 1199, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1198, 0, 1198, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1201, 0, -1, -1, 1201, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1200, 0, 1200, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1203, 0, -1, -1, 1203, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1202, 0, 1202, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1205, 0, -1, -1, 1205, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1204, 0, 1204, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1207, 0, -1, -1, 1207, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1206, 0, 1206, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1209, 0, -1, -1, 1209, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1208, 0, 1208, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1211, 0, -1, -1, 1211, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1210, 0, 1210, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1213, 0, -1, -1, 1213, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1212, 0, 1212, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1215, 0, -1, -1, 1215, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1214, 0, 1214, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1231, 0, -1, -1, 1231, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1026, 0, 1218, 0, -1, -1, 1218, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1029, 1217, 0, 1217, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1220, 0, -1, -1, 1220, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1219, 0, 1219, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1222, 0, -1, -1, 1222, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1221, 0, 1221, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1224, 0, -1, -1, 1224, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1223, 0, 1223, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1226, 0, -1, -1, 1226, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1225, 0, 1225, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1228, 0, -1, -1, 1228, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1227, 0, 1227, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1230, 0, -1, -1, 1230, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1229, 0, 1229, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1216, 0, 1216, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1032, 0, 1233, 0, -1, -1, 1233, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1035, 1232, 0, 1232, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1038, 0, 1235, 0, -1, -1, 1235, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1041, 1234, 0, 1234, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1237, 0, -1, -1, 1237, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1236, 0, 1236, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1044, 0, 1239, 0, -1, -1, 1239, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1047, 1238, 0, 1238, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1241, 0, 5760, -1, 1241, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1240, 0, 1240, 5820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1050, 0, 1243, 0, -1, -1, 1243, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1053, 1242, 0, 1242, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1056, 0, 1245, 0, -1, -1, 1245, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1059, 1244, 0, 1244, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1062, 0, 1247, 0, -1, -1, 1247, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1065, 1246, 0, 1246, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1249, 0, -1, -1, 1249, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1248, 0, 1248, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1068, 0, 1251, 0, -1, -1, 1251, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1071, 1250, 0, 1250, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1074, 0, 1253, 0, -1, -1, 1253, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1077, 1252, 0, 1252, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1080, 0, 1255, 0, -1, -1, 1255, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1083, 1254, 0, 1254, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1257, 0, 6120, -1, 1257, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1256, 0, 1256, 6180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1086, 0, 1259, 0, -1, -1, 1259, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1089, 1258, 0, 1258, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1092, 0, 1261, 0, -1, -1, 1261, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1095, 1260, 0, 1260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1098, 0, 1263, 0, -1, -1, 1263, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1101, 1262, 0, 1262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1104, 0, 1265, 0, -1, -1, 1265, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1107, 1264, 0, 1264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1110, 0, 1267, 0, -1, -1, 1267, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1113, 1266, 0, 1266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1116, 0, 1269, 0, -1, -1, 1269, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1119, 1268, 0, 1268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1271, 0, -1, -1, 1271, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1270, 0, 1270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1122, 0, 1273, 0, -1, -1, 1273, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1125, 1272, 0, 1272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1275, 0, -1, -1, 1275, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1274, 0, 1274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1277, 0, -1, -1, 1277, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1276, 0, 1276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1279, 0, -1, -1, 1279, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1278, 0, 1278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1281, 0, -1, -1, 1281, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1280, 0, 1280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1283, 0, -1, -1, 1283, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1282, 0, 1282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1285, 0, -1, -1, 1285, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1284, 0, 1284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1287, 0, -1, -1, 1287, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1286, 0, 1286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1289, 0, -1, -1, 1289, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1288, 0, 1288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1291, 0, -1, -1, 1291, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1290, 0, 1290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1293, 0, -1, -1, 1293, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1292, 0, 1292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1295, 0, -1, -1, 1295, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1294, 0, 1294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1297, 0, -1, -1, 1297, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1296, 0, 1296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1299, 0, -1, -1, 1299, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1298, 0, 1298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1301, 0, -1, -1, 1301, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1300, 0, 1300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1303, 0, -1, -1, 1303, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1302, 0, 1302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1305, 0, -1, -1, 1305, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1304, 0, 1304, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1307, 0, -1, -1, 1307, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1306, 0, 1306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1309, 0, -1, -1, 1309, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1308, 0, 1308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1311, 0, -1, -1, 1311, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1310, 0, 1310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1313, 0, -1, -1, 1313, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1312, 0, 1312, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1315, 0, -1, -1, 1315, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1314, 0, 1314, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1377, 0, -1, -1, 1377, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1378, 0, -1, -1, 1378, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1379, 0, -1, -1, 1379, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1380, 0, -1, -1, 1380, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1381, 0, -1, -1, 1381, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1382, 0, -1, -1, 1382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1383, 0, -1, -1, 1383, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1384, 0, -1, -1, 1384, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1385, 0, -1, -1, 1385, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1386, 0, -1, -1, 1386, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1387, 0, -1, -1, 1387, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1388, 0, -1, -1, 1388, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1389, 0, -1, -1, 1389, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1390, 0, -1, -1, 1390, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1391, 0, -1, -1, 1391, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1392, 0, -1, -1, 1392, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1393, 0, -1, -1, 1393, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1394, 0, -1, -1, 1394, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1395, 0, -1, -1, 1395, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1396, 0, -1, -1, 1396, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1397, 0, -1, -1, 1397, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1398, 0, -1, -1, 1398, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1399, 0, -1, -1, 1399, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1400, 0, -1, -1, 1400, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1401, 0, -1, -1, 1401, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1402, 0, -1, -1, 1402, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1403, 0, -1, -1, 1403, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1404, 0, -1, -1, 1404, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1405, 0, -1, -1, 1405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1406, 0, -1, -1, 1406, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1407, 0, -1, -1, 1407, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1408, 0, -1, -1, 1408, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1409, 0, -1, -1, 1409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1410, 0, -1, -1, 1410, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1411, 0, -1, -1, 1411, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1412, 0, -1, -1, 1412, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1413, 0, -1, -1, 1413, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1414, 0, -1, -1, 1414, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1329, 0, 1329, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1330, 0, 1330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1331, 0, 1331, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1332, 0, 1332, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1333, 0, 1333, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1334, 0, 1334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1335, 0, 1335, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1336, 0, 1336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1337, 0, 1337, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1338, 0, 1338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1339, 0, 1339, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1340, 0, 1340, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1341, 0, 1341, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1342, 0, 1342, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1343, 0, 1343, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1344, 0, 1344, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1345, 0, 1345, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1346, 0, 1346, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1347, 0, 1347, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1348, 0, 1348, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1349, 0, 1349, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1350, 0, 1350, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1351, 0, 1351, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1352, 0, 1352, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1353, 0, 1353, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1354, 0, 1354, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1355, 0, 1355, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1356, 0, 1356, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1357, 0, 1357, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1358, 0, 1358, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1359, 0, 1359, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1360, 0, 1360, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1361, 0, 1361, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1362, 0, 1362, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1363, 0, 1363, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1364, 0, 1364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1365, 0, 1365, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1366, 0, 1366, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1128, -1131, -1134, -1136, -1, -1, -1128, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 7, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 222, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 10, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 11, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 12, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 13, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 14, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 15, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 16, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 17, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 19, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 20, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 21, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 22, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 23, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 24, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 25, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1151, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6600, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6660, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6720, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 27, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 28, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 29, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 33, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 34, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 17, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 18, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 19, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 7, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 35, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1154, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1160, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1163, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1166, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6840, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1169, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6900, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1172, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6780, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 36, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 6960, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1175, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7020, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1178, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7080, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1181, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 20, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1184, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1187, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1190, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1193, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1196, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1199, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1202, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1205, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 21, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7140, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1208, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1211, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 22, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1214, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1217, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1220, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1223, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1226, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1229, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1232, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1235, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1238, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 24, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7200, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1241, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1244, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1247, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 23, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 25, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1250, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1253, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7260, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1256, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 27, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7320, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7380, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1259, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1262, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1265, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 26, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 7440, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1268, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 84, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 91, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 28, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7500, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1271, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 31, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7560, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1274, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1277, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1280, 0, 0, 0, 7620, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1283, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 29, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 30, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 32, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7680, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7740, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1286, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1289, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1292, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 33, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 34, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 35, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7800, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1295, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1298, 0, 0, 0, 7860, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1301, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1304, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 36, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1307, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 103, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 107, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 118, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 122, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NOBREAK, 3851, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1319, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1322, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1325, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1328, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1331, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1334, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 129, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 130, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1337, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 132, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1340, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1343, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, -1346, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1349, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, -1352, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1355, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1358, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1361, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1364, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1367, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1370, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1373, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7920, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1376, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 37, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11520, 0, -1, -1, 11520, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11521, 0, -1, -1, 11521, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11522, 0, -1, -1, 11522, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11523, 0, -1, -1, 11523, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11524, 0, -1, -1, 11524, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11525, 0, -1, -1, 11525, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11526, 0, -1, -1, 11526, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11527, 0, -1, -1, 11527, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11528, 0, -1, -1, 11528, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11529, 0, -1, -1, 11529, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11530, 0, -1, -1, 11530, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11531, 0, -1, -1, 11531, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11532, 0, -1, -1, 11532, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11533, 0, -1, -1, 11533, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11534, 0, -1, -1, 11534, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11535, 0, -1, -1, 11535, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11536, 0, -1, -1, 11536, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11537, 0, -1, -1, 11537, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11538, 0, -1, -1, 11538, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11539, 0, -1, -1, 11539, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11540, 0, -1, -1, 11540, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11541, 0, -1, -1, 11541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11542, 0, -1, -1, 11542, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11543, 0, -1, -1, 11543, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11544, 0, -1, -1, 11544, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11545, 0, -1, -1, 11545, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11546, 0, -1, -1, 11546, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11547, 0, -1, -1, 11547, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11548, 0, -1, -1, 11548, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11549, 0, -1, -1, 11549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11550, 0, -1, -1, 11550, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11551, 0, -1, -1, 11551, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11552, 0, -1, -1, 11552, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11553, 0, -1, -1, 11553, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11554, 0, -1, -1, 11554, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11555, 0, -1, -1, 11555, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11556, 0, -1, -1, 11556, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11557, 0, -1, -1, 11557, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7980, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1379, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8040, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1382, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8100, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1385, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8160, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1388, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8220, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1391, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8280, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1394, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 38, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8340, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1397, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8400, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1400, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8460, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8520, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1403, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1406, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8580, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1409, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 9, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 65, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 198, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 66, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 68, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 69, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 398, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 71, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 72, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 73, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 74, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 75, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 76, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 77, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 78, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 79, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 546, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 80, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 82, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 84, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 85, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 87, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 592, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 593, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7426, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 98, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 100, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 601, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 603, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 604, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 103, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 107, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 109, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 331, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 596, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7446, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7447, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 112, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 116, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7453, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 623, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7461, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 948, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 961, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1085, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42877, 0, 42877, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11363, 0, 11363, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 594, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 99, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 597, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 240, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 604, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 102, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 607, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 609, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 613, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 616, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 617, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 618, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7547, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 669, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 621, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7557, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 671, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 625, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 624, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 626, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 627, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 628, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 629, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 632, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 642, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 643, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 427, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 649, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 650, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7452, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 651, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 652, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 122, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 656, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 657, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 658, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 952, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 214, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1412, 0, 7681, 0, -1, -1, 7681, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1415, 7680, 0, 7680, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1418, 0, 7683, 0, -1, -1, 7683, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1421, 7682, 0, 7682, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1424, 0, 7685, 0, -1, -1, 7685, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1427, 7684, 0, 7684, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1430, 0, 7687, 0, -1, -1, 7687, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1433, 7686, 0, 7686, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1436, 0, 7689, 0, -1, -1, 7689, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1439, 7688, 0, 7688, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1442, 0, 7691, 0, -1, -1, 7691, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1445, 7690, 0, 7690, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1448, 0, 7693, 0, -1, -1, 7693, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1451, 7692, 0, 7692, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1454, 0, 7695, 0, -1, -1, 7695, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1457, 7694, 0, 7694, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1460, 0, 7697, 0, -1, -1, 7697, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1463, 7696, 0, 7696, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1466, 0, 7699, 0, -1, -1, 7699, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1469, 7698, 0, 7698, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1472, 0, 7701, 0, -1, -1, 7701, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1475, 7700, 0, 7700, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1478, 0, 7703, 0, -1, -1, 7703, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1481, 7702, 0, 7702, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1484, 0, 7705, 0, -1, -1, 7705, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1487, 7704, 0, 7704, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1490, 0, 7707, 0, -1, -1, 7707, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1493, 7706, 0, 7706, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1496, 0, 7709, 0, -1, -1, 7709, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1499, 7708, 0, 7708, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1502, 0, 7711, 0, -1, -1, 7711, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1505, 7710, 0, 7710, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1508, 0, 7713, 0, -1, -1, 7713, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1511, 7712, 0, 7712, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1514, 0, 7715, 0, -1, -1, 7715, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1517, 7714, 0, 7714, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1520, 0, 7717, 0, -1, -1, 7717, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1523, 7716, 0, 7716, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1526, 0, 7719, 0, -1, -1, 7719, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1529, 7718, 0, 7718, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1532, 0, 7721, 0, -1, -1, 7721, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1535, 7720, 0, 7720, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1538, 0, 7723, 0, -1, -1, 7723, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1541, 7722, 0, 7722, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1544, 0, 7725, 0, -1, -1, 7725, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1547, 7724, 0, 7724, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1550, 0, 7727, 0, -1, -1, 7727, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1553, 7726, 0, 7726, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1556, 0, 7729, 0, -1, -1, 7729, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1559, 7728, 0, 7728, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1562, 0, 7731, 0, -1, -1, 7731, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1565, 7730, 0, 7730, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1568, 0, 7733, 0, -1, -1, 7733, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1571, 7732, 0, 7732, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1574, 0, 7735, 0, 9360, -1, 7735, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1577, 7734, 0, 7734, 9420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1580, 0, 7737, 0, -1, -1, 7737, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1583, 7736, 0, 7736, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1586, 0, 7739, 0, -1, -1, 7739, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1589, 7738, 0, 7738, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1592, 0, 7741, 0, -1, -1, 7741, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1595, 7740, 0, 7740, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1598, 0, 7743, 0, -1, -1, 7743, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1601, 7742, 0, 7742, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1604, 0, 7745, 0, -1, -1, 7745, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1607, 7744, 0, 7744, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1610, 0, 7747, 0, -1, -1, 7747, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1613, 7746, 0, 7746, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1616, 0, 7749, 0, -1, -1, 7749, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1619, 7748, 0, 7748, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1622, 0, 7751, 0, -1, -1, 7751, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1625, 7750, 0, 7750, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1628, 0, 7753, 0, -1, -1, 7753, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1631, 7752, 0, 7752, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1634, 0, 7755, 0, -1, -1, 7755, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1637, 7754, 0, 7754, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1640, 0, 7757, 0, -1, -1, 7757, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1643, 7756, 0, 7756, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1646, 0, 7759, 0, -1, -1, 7759, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1649, 7758, 0, 7758, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1652, 0, 7761, 0, -1, -1, 7761, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1655, 7760, 0, 7760, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1658, 0, 7763, 0, -1, -1, 7763, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1661, 7762, 0, 7762, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1664, 0, 7765, 0, -1, -1, 7765, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1667, 7764, 0, 7764, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1670, 0, 7767, 0, -1, -1, 7767, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1673, 7766, 0, 7766, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1676, 0, 7769, 0, -1, -1, 7769, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1679, 7768, 0, 7768, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1682, 0, 7771, 0, 9840, -1, 7771, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1685, 7770, 0, 7770, 9900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1688, 0, 7773, 0, -1, -1, 7773, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1691, 7772, 0, 7772, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1694, 0, 7775, 0, -1, -1, 7775, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1697, 7774, 0, 7774, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1700, 0, 7777, 0, -1, -1, 7777, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1703, 7776, 0, 7776, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1706, 0, 7779, 0, 10200, -1, 7779, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1709, 7778, 0, 7778, 10260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1712, 0, 7781, 0, -1, -1, 7781, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1715, 7780, 0, 7780, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1718, 0, 7783, 0, -1, -1, 7783, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1721, 7782, 0, 7782, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1724, 0, 7785, 0, -1, -1, 7785, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1727, 7784, 0, 7784, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1730, 0, 7787, 0, -1, -1, 7787, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1733, 7786, 0, 7786, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1736, 0, 7789, 0, -1, -1, 7789, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1739, 7788, 0, 7788, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1742, 0, 7791, 0, -1, -1, 7791, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1745, 7790, 0, 7790, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1748, 0, 7793, 0, -1, -1, 7793, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1751, 7792, 0, 7792, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1754, 0, 7795, 0, -1, -1, 7795, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1757, 7794, 0, 7794, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1760, 0, 7797, 0, -1, -1, 7797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1763, 7796, 0, 7796, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1766, 0, 7799, 0, -1, -1, 7799, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1769, 7798, 0, 7798, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1772, 0, 7801, 0, -1, -1, 7801, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1775, 7800, 0, 7800, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1778, 0, 7803, 0, -1, -1, 7803, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1781, 7802, 0, 7802, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1784, 0, 7805, 0, -1, -1, 7805, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1787, 7804, 0, 7804, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1790, 0, 7807, 0, -1, -1, 7807, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1793, 7806, 0, 7806, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1796, 0, 7809, 0, -1, -1, 7809, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1799, 7808, 0, 7808, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1802, 0, 7811, 0, -1, -1, 7811, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1805, 7810, 0, 7810, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1808, 0, 7813, 0, -1, -1, 7813, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1811, 7812, 0, 7812, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1814, 0, 7815, 0, -1, -1, 7815, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1817, 7814, 0, 7814, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1820, 0, 7817, 0, -1, -1, 7817, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1823, 7816, 0, 7816, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1826, 0, 7819, 0, -1, -1, 7819, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1829, 7818, 0, 7818, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1832, 0, 7821, 0, -1, -1, 7821, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1835, 7820, 0, 7820, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1838, 0, 7823, 0, -1, -1, 7823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1841, 7822, 0, 7822, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1844, 0, 7825, 0, -1, -1, 7825, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1847, 7824, 0, 7824, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1850, 0, 7827, 0, -1, -1, 7827, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1853, 7826, 0, 7826, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1856, 0, 7829, 0, -1, -1, 7829, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1859, 7828, 0, 7828, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1862, -1865, -1868, -1865, -1, -1, -1862, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1870, -1873, -1876, -1873, -1, -1, -1870, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1878, -1881, -1884, -1881, -1, -1, -1878, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1886, -1889, -1892, -1889, -1, -1, -1886, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1894, -1897, -1900, -1897, -1, -1, -1894, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1902, 7776, 0, 7776, -1, -1, 7777, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 223, 0, -1, -1, -112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1905, 0, 7841, 0, 10980, -1, 7841, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1908, 7840, 0, 7840, 11040, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1911, 0, 7843, 0, -1, -1, 7843, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1914, 7842, 0, 7842, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1917, 0, 7845, 0, -1, -1, 7845, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1920, 7844, 0, 7844, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1923, 0, 7847, 0, -1, -1, 7847, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1926, 7846, 0, 7846, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1929, 0, 7849, 0, -1, -1, 7849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1932, 7848, 0, 7848, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1935, 0, 7851, 0, -1, -1, 7851, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1938, 7850, 0, 7850, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1941, 0, 7853, 0, -1, -1, 7853, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1944, 7852, 0, 7852, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1947, 0, 7855, 0, -1, -1, 7855, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1950, 7854, 0, 7854, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1953, 0, 7857, 0, -1, -1, 7857, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1956, 7856, 0, 7856, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1959, 0, 7859, 0, -1, -1, 7859, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1962, 7858, 0, 7858, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1965, 0, 7861, 0, -1, -1, 7861, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1968, 7860, 0, 7860, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1971, 0, 7863, 0, -1, -1, 7863, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1974, 7862, 0, 7862, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1977, 0, 7865, 0, 11340, -1, 7865, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1980, 7864, 0, 7864, 11400, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1983, 0, 7867, 0, -1, -1, 7867, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1986, 7866, 0, 7866, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1989, 0, 7869, 0, -1, -1, 7869, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1992, 7868, 0, 7868, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1995, 0, 7871, 0, -1, -1, 7871, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1998, 7870, 0, 7870, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2001, 0, 7873, 0, -1, -1, 7873, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2004, 7872, 0, 7872, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2007, 0, 7875, 0, -1, -1, 7875, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2010, 7874, 0, 7874, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2013, 0, 7877, 0, -1, -1, 7877, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2016, 7876, 0, 7876, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2019, 0, 7879, 0, -1, -1, 7879, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2022, 7878, 0, 7878, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2025, 0, 7881, 0, -1, -1, 7881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2028, 7880, 0, 7880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2031, 0, 7883, 0, -1, -1, 7883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2034, 7882, 0, 7882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2037, 0, 7885, 0, 11580, -1, 7885, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2040, 7884, 0, 7884, 11640, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2043, 0, 7887, 0, -1, -1, 7887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2046, 7886, 0, 7886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2049, 0, 7889, 0, -1, -1, 7889, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2052, 7888, 0, 7888, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2055, 0, 7891, 0, -1, -1, 7891, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2058, 7890, 0, 7890, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2061, 0, 7893, 0, -1, -1, 7893, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2064, 7892, 0, 7892, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2067, 0, 7895, 0, -1, -1, 7895, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2070, 7894, 0, 7894, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2073, 0, 7897, 0, -1, -1, 7897, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2076, 7896, 0, 7896, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2079, 0, 7899, 0, -1, -1, 7899, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2082, 7898, 0, 7898, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2085, 0, 7901, 0, -1, -1, 7901, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2088, 7900, 0, 7900, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2091, 0, 7903, 0, -1, -1, 7903, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2094, 7902, 0, 7902, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2097, 0, 7905, 0, -1, -1, 7905, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2100, 7904, 0, 7904, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2103, 0, 7907, 0, -1, -1, 7907, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2106, 7906, 0, 7906, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2109, 0, 7909, 0, -1, -1, 7909, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2112, 7908, 0, 7908, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2115, 0, 7911, 0, -1, -1, 7911, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2118, 7910, 0, 7910, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2121, 0, 7913, 0, -1, -1, 7913, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2124, 7912, 0, 7912, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2127, 0, 7915, 0, -1, -1, 7915, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2130, 7914, 0, 7914, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2133, 0, 7917, 0, -1, -1, 7917, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2136, 7916, 0, 7916, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2139, 0, 7919, 0, -1, -1, 7919, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2142, 7918, 0, 7918, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2145, 0, 7921, 0, -1, -1, 7921, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2148, 7920, 0, 7920, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2151, 0, 7923, 0, -1, -1, 7923, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2154, 7922, 0, 7922, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2157, 0, 7925, 0, -1, -1, 7925, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2160, 7924, 0, 7924, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2163, 0, 7927, 0, -1, -1, 7927, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2166, 7926, 0, 7926, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2169, 0, 7929, 0, -1, -1, 7929, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2172, 7928, 0, 7928, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7931, 0, -1, -1, 7931, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7930, 0, 7930, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7933, 0, -1, -1, 7933, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7932, 0, 7932, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7935, 0, -1, -1, 7935, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7934, 0, 7934, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2175, 7944, 0, 7944, 11940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2178, 7945, 0, 7945, 12000, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2181, 7946, 0, 7946, 13560, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2184, 7947, 0, 7947, 13620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2187, 7948, 0, 7948, 13680, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2190, 7949, 0, 7949, 13740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2193, 7950, 0, 7950, 13800, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2196, 7951, 0, 7951, 13860, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2199, 0, 7936, 0, 12060, -1, 7936, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2202, 0, 7937, 0, 12120, -1, 7937, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2205, 0, 7938, 0, 13920, -1, 7938, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2208, 0, 7939, 0, 13980, -1, 7939, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2211, 0, 7940, 0, 14040, -1, 7940, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2214, 0, 7941, 0, 14100, -1, 7941, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2217, 0, 7942, 0, 14160, -1, 7942, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2220, 0, 7943, 0, 14220, -1, 7943, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2223, 7960, 0, 7960, 12180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2226, 7961, 0, 7961, 12240, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2229, 7962, 0, 7962, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2232, 7963, 0, 7963, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2235, 7964, 0, 7964, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2238, 7965, 0, 7965, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2241, 0, 7952, 0, 12300, -1, 7952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2244, 0, 7953, 0, 12360, -1, 7953, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2247, 0, 7954, 0, -1, -1, 7954, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2250, 0, 7955, 0, -1, -1, 7955, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2253, 0, 7956, 0, -1, -1, 7956, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2256, 0, 7957, 0, -1, -1, 7957, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2259, 7976, 0, 7976, 12420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2262, 7977, 0, 7977, 12480, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2265, 7978, 0, 7978, 14280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2268, 7979, 0, 7979, 14340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2271, 7980, 0, 7980, 14400, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2274, 7981, 0, 7981, 14460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2277, 7982, 0, 7982, 14520, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2280, 7983, 0, 7983, 14580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2283, 0, 7968, 0, 12540, -1, 7968, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2286, 0, 7969, 0, 12600, -1, 7969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2289, 0, 7970, 0, 14640, -1, 7970, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2292, 0, 7971, 0, 14700, -1, 7971, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2295, 0, 7972, 0, 14760, -1, 7972, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2298, 0, 7973, 0, 14820, -1, 7973, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2301, 0, 7974, 0, 14880, -1, 7974, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2304, 0, 7975, 0, 14940, -1, 7975, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2307, 7992, 0, 7992, 12660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2310, 7993, 0, 7993, 12720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2313, 7994, 0, 7994, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2316, 7995, 0, 7995, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2319, 7996, 0, 7996, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2322, 7997, 0, 7997, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2325, 7998, 0, 7998, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2328, 7999, 0, 7999, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2331, 0, 7984, 0, 12780, -1, 7984, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2334, 0, 7985, 0, 12840, -1, 7985, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2337, 0, 7986, 0, -1, -1, 7986, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2340, 0, 7987, 0, -1, -1, 7987, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2343, 0, 7988, 0, -1, -1, 7988, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2346, 0, 7989, 0, -1, -1, 7989, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2349, 0, 7990, 0, -1, -1, 7990, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2352, 0, 7991, 0, -1, -1, 7991, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2355, 8008, 0, 8008, 12900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2358, 8009, 0, 8009, 12960, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2361, 8010, 0, 8010, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2364, 8011, 0, 8011, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2367, 8012, 0, 8012, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2370, 8013, 0, 8013, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2373, 0, 8000, 0, 13020, -1, 8000, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2376, 0, 8001, 0, 13080, -1, 8001, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2379, 0, 8002, 0, -1, -1, 8002, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2382, 0, 8003, 0, -1, -1, 8003, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2385, 0, 8004, 0, -1, -1, 8004, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2388, 0, 8005, 0, -1, -1, 8005, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2391, -2394, -2397, -2394, 13140, -1, -2391, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2399, 8025, 0, 8025, 13200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2402, -2405, -2409, -2405, -1, -1, -2411, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2415, 8027, 0, 8027, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2418, -2421, -2425, -2421, -1, -1, -2427, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2431, 8029, 0, 8029, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2434, -2437, -2441, -2437, -1, -1, -2443, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2447, 8031, 0, 8031, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2450, 0, 8017, 0, 13260, -1, 8017, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2453, 0, 8019, 0, -1, -1, 8019, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2456, 0, 8021, 0, -1, -1, 8021, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2459, 0, 8023, 0, -1, -1, 8023, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2462, 8040, 0, 8040, 13320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2465, 8041, 0, 8041, 13380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2468, 8042, 0, 8042, 15000, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2471, 8043, 0, 8043, 15060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2474, 8044, 0, 8044, 15120, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2477, 8045, 0, 8045, 15180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2480, 8046, 0, 8046, 15240, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2483, 8047, 0, 8047, 15300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2486, 0, 8032, 0, 13440, -1, 8032, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2489, 0, 8033, 0, 13500, -1, 8033, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2492, 0, 8034, 0, 15360, -1, 8034, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2495, 0, 8035, 0, 15420, -1, 8035, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2498, 0, 8036, 0, 15480, -1, 8036, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2501, 0, 8037, 0, 15540, -1, 8037, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2504, 0, 8038, 0, 15600, -1, 8038, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2507, 0, 8039, 0, 15660, -1, 8039, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2510, 8122, 0, 8122, 15720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 940, 8123, 0, 8123, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2513, 8136, 0, 8136, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 941, 8137, 0, 8137, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2516, 8138, 0, 8138, 15900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 942, 8139, 0, 8139, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2519, 8154, 0, 8154, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 943, 8155, 0, 8155, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2522, 8184, 0, 8184, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 972, 8185, 0, 8185, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2525, 8170, 0, 8170, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 973, 8171, 0, 8171, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2528, 8186, 0, 8186, 16320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 974, 8187, 0, 8187, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2531, -2534, -2537, -2539, -1, -1, -2541, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2544, -2547, -2550, -2552, -1, -1, -2554, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2557, -2560, -2563, -2565, -1, -1, -2567, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2570, -2573, -2576, -2578, -1, -1, -2580, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2583, -2586, -2589, -2591, -1, -1, -2593, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2596, -2599, -2602, -2604, -1, -1, -2606, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2609, -2612, -2615, -2617, -1, -1, -2619, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2622, -2625, -2628, -2630, -1, -1, -2632, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2635, -2534, -2537, -2539, -1, -1, -2541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2638, -2547, -2550, -2552, -1, -1, -2554, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2641, -2560, -2563, -2565, -1, -1, -2567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2644, -2573, -2576, -2578, -1, -1, -2580, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2647, -2586, -2589, -2591, -1, -1, -2593, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2650, -2599, -2602, -2604, -1, -1, -2606, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2653, -2612, -2615, -2617, -1, -1, -2619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2656, -2625, -2628, -2630, -1, -1, -2632, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2659, -2662, -2665, -2667, -1, -1, -2669, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2672, -2675, -2678, -2680, -1, -1, -2682, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2685, -2688, -2691, -2693, -1, -1, -2695, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2698, -2701, -2704, -2706, -1, -1, -2708, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2711, -2714, -2717, -2719, -1, -1, -2721, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2724, -2727, -2730, -2732, -1, -1, -2734, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2737, -2740, -2743, -2745, -1, -1, -2747, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2750, -2753, -2756, -2758, -1, -1, -2760, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2763, -2662, -2665, -2667, -1, -1, -2669, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2766, -2675, -2678, -2680, -1, -1, -2682, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2769, -2688, -2691, -2693, -1, -1, -2695, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2772, -2701, -2704, -2706, -1, -1, -2708, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2775, -2714, -2717, -2719, -1, -1, -2721, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2778, -2727, -2730, -2732, -1, -1, -2734, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2781, -2740, -2743, -2745, -1, -1, -2747, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2784, -2753, -2756, -2758, -1, -1, -2760, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2787, -2790, -2793, -2795, -1, -1, -2797, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2800, -2803, -2806, -2808, -1, -1, -2810, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2813, -2816, -2819, -2821, -1, -1, -2823, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2826, -2829, -2832, -2834, -1, -1, -2836, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2839, -2842, -2845, -2847, -1, -1, -2849, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2852, -2855, -2858, -2860, -1, -1, -2862, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2865, -2868, -2871, -2873, -1, -1, -2875, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2878, -2881, -2884, -2886, -1, -1, -2888, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2891, -2790, -2793, -2795, -1, -1, -2797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2894, -2803, -2806, -2808, -1, -1, -2810, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2897, -2816, -2819, -2821, -1, -1, -2823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2900, -2829, -2832, -2834, -1, -1, -2836, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2903, -2842, -2845, -2847, -1, -1, -2849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2906, -2855, -2858, -2860, -1, -1, -2862, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2909, -2868, -2871, -2873, -1, -1, -2875, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2912, -2881, -2884, -2886, -1, -1, -2888, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2915, 8120, 0, 8120, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2918, 8121, 0, 8121, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2921, -2924, -2927, -2929, -1, -1, -2932, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2935, -2938, -2941, -2943, -1, -1, -2945, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2948, -2951, -2954, -2956, -1, -1, -2959, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2962, -2965, -2968, -2965, 15840, -1, -2962, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2970, -2973, -2977, -2979, -1, -1, -2983, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2987, 0, 8112, 0, -1, -1, 8112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2990, 0, 8113, 0, -1, -1, 8113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2993, 0, 8048, 0, -1, -1, 8048, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 902, 0, 8049, 0, -1, -1, 8049, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2996, -2938, -2941, -2943, -1, -1, -2945, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2999, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 953, 921, 0, 921, -1, -1, 953, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2999, 0, 0, 0, 16080, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3002, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3005, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3008, -3011, -3014, -3016, -1, -1, -3019, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3022, -3025, -3028, -3030, -1, -1, -3032, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3035, -3038, -3041, -3043, -1, -1, -3046, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3049, -3052, -3055, -3052, 16020, -1, -3049, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3057, -3060, -3064, -3066, -1, -1, -3070, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3074, 0, 8050, 0, -1, -1, 8050, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 904, 0, 8051, 0, -1, -1, 8051, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3077, 0, 8052, 0, -1, -1, 8052, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 905, 0, 8053, 0, -1, -1, 8053, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -3080, -3025, -3028, -3030, -1, -1, -3032, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3083, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3086, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3089, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3092, 8152, 0, 8152, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3095, 8153, 0, 8153, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3098, -3101, -3105, -3101, -1, -1, -3107, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 912, -910, -3111, -910, -1, -1, -916, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3113, -3116, -3119, -3116, -1, -1, -3113, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3121, -3124, -3128, -3124, -1, -1, -3130, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3134, 0, 8144, 0, -1, -1, 8144, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3137, 0, 8145, 0, -1, -1, 8145, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3140, 0, 8054, 0, -1, -1, 8054, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 906, 0, 8055, 0, -1, -1, 8055, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3143, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3146, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3152, 8168, 0, 8168, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3155, 8169, 0, 8169, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3158, -3161, -3165, -3161, -1, -1, -3167, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 944, -941, -3171, -941, -1, -1, -947, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3173, -3176, -3179, -3176, -1, -1, -3173, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3181, 8172, 0, 8172, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3184, -3187, -3190, -3187, -1, -1, -3184, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3192, -3195, -3199, -3195, -1, -1, -3201, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3205, 0, 8160, 0, -1, -1, 8160, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3208, 0, 8161, 0, -1, -1, 8161, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3211, 0, 8058, 0, -1, -1, 8058, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 910, 0, 8059, 0, -1, -1, 8059, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3214, 0, 8165, 0, -1, -1, 8165, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3217, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 901, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 96, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3220, -3223, -3226, -3228, -1, -1, -3231, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3234, -3237, -3240, -3242, -1, -1, -3244, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3247, -3250, -3253, -3255, -1, -1, -3258, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3261, -3264, -3267, -3264, 16440, -1, -3261, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3269, -3272, -3276, -3278, -1, -1, -3282, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3286, 0, 8056, 0, -1, -1, 8056, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 908, 0, 8057, 0, -1, -1, 8057, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3289, 0, 8060, 0, -1, -1, 8060, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 911, 0, 8061, 0, -1, -1, 8061, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -3292, -3237, -3240, -3242, -1, -1, -3244, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 180, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3295, 0, 0, 0, 16140, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 8194, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 8195, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_COMPAT, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_NOBREAK, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, true, true, true, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NOBREAK, 8208, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3298, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3301, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3304, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZL, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZP, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRE, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLE, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_PDF, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRO, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLO, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3308, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3322, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3325, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3328, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3331, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3334, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3337, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 8722, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 110, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 8722, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 601, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3342, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3345, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3349, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 67, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3360, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 400, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3364, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 103, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 72, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 104, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 295, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 73, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 76, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 108, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 78, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 80, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 81, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 82, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, -3370, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3373, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, -3377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 90, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 937, 0, 969, 0, -1, -1, 969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 75, 0, 107, 0, -1, -1, 107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 197, 0, 229, 0, -1, -1, 229, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 66, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 69, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 70, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 8526, 0, -1, -1, 8526, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 77, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1489, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1490, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1491, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3380, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 960, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 915, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 928, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, 8721, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 68, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 100, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 8498, 0, 8498, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3384, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3388, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3392, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3396, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3404, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3412, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3416, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3420, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3428, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3432, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 73, 0, 8560, 0, -1, -1, 8560, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3435, 0, 8561, 0, -1, -1, 8561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3438, 0, 8562, 0, -1, -1, 8562, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3442, 0, 8563, 0, -1, -1, 8563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 86, 0, 8564, 0, -1, -1, 8564, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3445, 0, 8565, 0, -1, -1, 8565, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3448, 0, 8566, 0, -1, -1, 8566, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3452, 0, 8567, 0, -1, -1, 8567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3457, 0, 8568, 0, -1, -1, 8568, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 88, 0, 8569, 0, -1, -1, 8569, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3460, 0, 8570, 0, -1, -1, 8570, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3463, 0, 8571, 0, -1, -1, 8571, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 76, 0, 8572, 0, -1, -1, 8572, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 67, 0, 8573, 0, -1, -1, 8573, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 68, 0, 8574, 0, -1, -1, 8574, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 77, 0, 8575, 0, -1, -1, 8575, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 105, 8544, 0, 8544, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3467, 8545, 0, 8545, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3470, 8546, 0, 8546, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3474, 8547, 0, 8547, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 118, 8548, 0, 8548, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3477, 8549, 0, 8549, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3480, 8550, 0, 8550, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3484, 8551, 0, 8551, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3489, 8552, 0, 8552, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 120, 8553, 0, 8553, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3492, 8554, 0, 8554, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3495, 8555, 0, 8555, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 108, 8556, 0, 8556, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 99, 8557, 0, 8557, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 100, 8558, 0, 8558, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 109, 8559, 0, 8559, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 8580, 0, -1, -1, 8580, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 8579, 0, 8579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16500, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16560, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16620, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3499, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3502, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3505, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3508, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3511, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3514, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16680, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16800, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16740, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16860, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3517, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16920, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3520, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16980, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3523, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17040, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3526, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17100, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3529, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3532, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3535, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3539, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3542, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17160, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3546, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17220, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3549, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17280, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3552, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17340, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3555, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17520, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3558, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17460, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3561, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17700, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17760, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3564, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3567, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3570, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3573, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3576, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17820, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17880, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3579, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3582, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17940, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18000, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3585, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3588, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18060, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18120, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18660, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18720, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3591, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3594, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18180, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18240, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3597, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3600, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18300, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18360, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3603, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3606, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18780, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18840, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18420, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18480, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18540, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18600, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3609, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3612, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3615, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3618, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18900, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18960, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19020, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19080, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3621, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3624, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3627, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3630, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3633, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3636, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3639, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3642, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 12296, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 12297, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3645, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3648, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3651, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3654, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3657, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3660, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3663, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3666, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3669, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3672, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3675, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3678, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3682, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3686, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3690, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3694, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3698, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3702, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3706, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3710, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3714, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3719, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3724, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3729, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3734, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3739, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3744, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3749, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3754, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3759, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3764, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3769, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3772, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3775, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3781, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3784, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3787, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3790, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3793, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3796, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3800, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3804, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3808, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3812, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3816, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3820, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3824, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3828, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3832, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3836, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3840, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3844, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3848, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3852, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3856, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3860, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3864, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3868, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3872, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3876, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3884, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3888, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3892, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3896, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3900, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3904, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3908, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3912, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3916, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3920, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3924, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3928, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3932, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3936, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3940, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 65, 0, 9424, 0, -1, -1, 9424, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 66, 0, 9425, 0, -1, -1, 9425, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 67, 0, 9426, 0, -1, -1, 9426, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 68, 0, 9427, 0, -1, -1, 9427, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 69, 0, 9428, 0, -1, -1, 9428, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 70, 0, 9429, 0, -1, -1, 9429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 71, 0, 9430, 0, -1, -1, 9430, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 72, 0, 9431, 0, -1, -1, 9431, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 73, 0, 9432, 0, -1, -1, 9432, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 74, 0, 9433, 0, -1, -1, 9433, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 75, 0, 9434, 0, -1, -1, 9434, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 76, 0, 9435, 0, -1, -1, 9435, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 77, 0, 9436, 0, -1, -1, 9436, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 78, 0, 9437, 0, -1, -1, 9437, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 79, 0, 9438, 0, -1, -1, 9438, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 80, 0, 9439, 0, -1, -1, 9439, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 81, 0, 9440, 0, -1, -1, 9440, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 82, 0, 9441, 0, -1, -1, 9441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 83, 0, 9442, 0, -1, -1, 9442, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 84, 0, 9443, 0, -1, -1, 9443, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 85, 0, 9444, 0, -1, -1, 9444, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 86, 0, 9445, 0, -1, -1, 9445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 87, 0, 9446, 0, -1, -1, 9446, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 88, 0, 9447, 0, -1, -1, 9447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 89, 0, 9448, 0, -1, -1, 9448, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 90, 0, 9449, 0, -1, -1, 9449, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 97, 9398, 0, 9398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 98, 9399, 0, 9399, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 99, 9400, 0, 9400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 100, 9401, 0, 9401, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 101, 9402, 0, 9402, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 102, 9403, 0, 9403, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 103, 9404, 0, 9404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 104, 9405, 0, 9405, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 105, 9406, 0, 9406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 106, 9407, 0, 9407, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 107, 9408, 0, 9408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 108, 9409, 0, 9409, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 109, 9410, 0, 9410, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 110, 9411, 0, 9411, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 111, 9412, 0, 9412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 112, 9413, 0, 9413, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 113, 9414, 0, 9414, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 114, 9415, 0, 9415, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 115, 9416, 0, 9416, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 116, 9417, 0, 9417, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 117, 9418, 0, 9418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 118, 9419, 0, 9419, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 119, 9420, 0, 9420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 120, 9421, 0, 9421, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 121, 9422, 0, 9422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 122, 9423, 0, 9423, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3944, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3949, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3953, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3956, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3960, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19140, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11312, 0, -1, -1, 11312, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11313, 0, -1, -1, 11313, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11314, 0, -1, -1, 11314, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11315, 0, -1, -1, 11315, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11316, 0, -1, -1, 11316, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11317, 0, -1, -1, 11317, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11318, 0, -1, -1, 11318, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11319, 0, -1, -1, 11319, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11320, 0, -1, -1, 11320, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11321, 0, -1, -1, 11321, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11322, 0, -1, -1, 11322, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11323, 0, -1, -1, 11323, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11324, 0, -1, -1, 11324, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11325, 0, -1, -1, 11325, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11326, 0, -1, -1, 11326, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11327, 0, -1, -1, 11327, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11328, 0, -1, -1, 11328, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11329, 0, -1, -1, 11329, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11330, 0, -1, -1, 11330, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11331, 0, -1, -1, 11331, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11332, 0, -1, -1, 11332, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11333, 0, -1, -1, 11333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11334, 0, -1, -1, 11334, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11335, 0, -1, -1, 11335, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11336, 0, -1, -1, 11336, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11337, 0, -1, -1, 11337, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11338, 0, -1, -1, 11338, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11339, 0, -1, -1, 11339, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11340, 0, -1, -1, 11340, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11341, 0, -1, -1, 11341, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11342, 0, -1, -1, 11342, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11343, 0, -1, -1, 11343, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11344, 0, -1, -1, 11344, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11345, 0, -1, -1, 11345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11346, 0, -1, -1, 11346, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11347, 0, -1, -1, 11347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11348, 0, -1, -1, 11348, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11349, 0, -1, -1, 11349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11350, 0, -1, -1, 11350, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11351, 0, -1, -1, 11351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11352, 0, -1, -1, 11352, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11353, 0, -1, -1, 11353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11354, 0, -1, -1, 11354, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11355, 0, -1, -1, 11355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11356, 0, -1, -1, 11356, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11357, 0, -1, -1, 11357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11358, 0, -1, -1, 11358, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11264, 0, 11264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11265, 0, 11265, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11266, 0, 11266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11267, 0, 11267, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11268, 0, 11268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11269, 0, 11269, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11270, 0, 11270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11271, 0, 11271, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11272, 0, 11272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11273, 0, 11273, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11274, 0, 11274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11275, 0, 11275, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11276, 0, 11276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11277, 0, 11277, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11278, 0, 11278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11279, 0, 11279, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11280, 0, 11280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11281, 0, 11281, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11282, 0, 11282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11283, 0, 11283, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11284, 0, 11284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11285, 0, 11285, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11286, 0, 11286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11287, 0, 11287, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11288, 0, 11288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11289, 0, 11289, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11290, 0, 11290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11291, 0, 11291, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11292, 0, 11292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11293, 0, 11293, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11294, 0, 11294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11295, 0, 11295, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11296, 0, 11296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11297, 0, 11297, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11298, 0, 11298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11299, 0, 11299, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11300, 0, 11300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11301, 0, 11301, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11302, 0, 11302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11303, 0, 11303, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11304, 0, 11304, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11305, 0, 11305, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11306, 0, 11306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11307, 0, 11307, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11308, 0, 11308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11309, 0, 11309, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11310, 0, 11310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11361, 0, -1, -1, 11361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11360, 0, 11360, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 619, 0, -1, -1, 619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7549, 0, -1, -1, 7549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 637, 0, -1, -1, 637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 570, 0, 570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 574, 0, 574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11368, 0, -1, -1, 11368, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11367, 0, 11367, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11370, 0, -1, -1, 11370, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11369, 0, 11369, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11372, 0, -1, -1, 11372, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11371, 0, 11371, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 593, 0, -1, -1, 593, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 625, 0, -1, -1, 625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 592, 0, -1, -1, 592, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11379, 0, -1, -1, 11379, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11378, 0, 11378, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11382, 0, -1, -1, 11382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11381, 0, 11381, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 86, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11393, 0, -1, -1, 11393, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11392, 0, 11392, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11395, 0, -1, -1, 11395, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11394, 0, 11394, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11397, 0, -1, -1, 11397, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11396, 0, 11396, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11399, 0, -1, -1, 11399, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11398, 0, 11398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11401, 0, -1, -1, 11401, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11400, 0, 11400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11403, 0, -1, -1, 11403, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11402, 0, 11402, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11405, 0, -1, -1, 11405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11404, 0, 11404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11407, 0, -1, -1, 11407, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11406, 0, 11406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11409, 0, -1, -1, 11409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11408, 0, 11408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11411, 0, -1, -1, 11411, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11410, 0, 11410, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11413, 0, -1, -1, 11413, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11412, 0, 11412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11415, 0, -1, -1, 11415, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11414, 0, 11414, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11417, 0, -1, -1, 11417, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11416, 0, 11416, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11419, 0, -1, -1, 11419, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11418, 0, 11418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11421, 0, -1, -1, 11421, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11420, 0, 11420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11423, 0, -1, -1, 11423, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11422, 0, 11422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11425, 0, -1, -1, 11425, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11424, 0, 11424, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11427, 0, -1, -1, 11427, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11426, 0, 11426, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11429, 0, -1, -1, 11429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11428, 0, 11428, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11431, 0, -1, -1, 11431, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11430, 0, 11430, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11433, 0, -1, -1, 11433, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11432, 0, 11432, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11435, 0, -1, -1, 11435, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11434, 0, 11434, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11437, 0, -1, -1, 11437, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11436, 0, 11436, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11439, 0, -1, -1, 11439, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11438, 0, 11438, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11441, 0, -1, -1, 11441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11440, 0, 11440, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11443, 0, -1, -1, 11443, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11442, 0, 11442, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11445, 0, -1, -1, 11445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11444, 0, 11444, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11447, 0, -1, -1, 11447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11446, 0, 11446, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11449, 0, -1, -1, 11449, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11448, 0, 11448, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11451, 0, -1, -1, 11451, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11450, 0, 11450, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11453, 0, -1, -1, 11453, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11452, 0, 11452, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11455, 0, -1, -1, 11455, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11454, 0, 11454, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11457, 0, -1, -1, 11457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11456, 0, 11456, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11459, 0, -1, -1, 11459, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11458, 0, 11458, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11461, 0, -1, -1, 11461, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11460, 0, 11460, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11463, 0, -1, -1, 11463, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11462, 0, 11462, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11465, 0, -1, -1, 11465, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11464, 0, 11464, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11467, 0, -1, -1, 11467, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11466, 0, 11466, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11469, 0, -1, -1, 11469, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11468, 0, 11468, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11471, 0, -1, -1, 11471, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11470, 0, 11470, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11473, 0, -1, -1, 11473, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11472, 0, 11472, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11475, 0, -1, -1, 11475, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11474, 0, 11474, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11477, 0, -1, -1, 11477, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11476, 0, 11476, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11479, 0, -1, -1, 11479, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11478, 0, 11478, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11481, 0, -1, -1, 11481, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11480, 0, 11480, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11483, 0, -1, -1, 11483, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11482, 0, 11482, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11485, 0, -1, -1, 11485, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11484, 0, 11484, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11487, 0, -1, -1, 11487, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11486, 0, 11486, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11489, 0, -1, -1, 11489, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11488, 0, 11488, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11491, 0, -1, -1, 11491, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11490, 0, 11490, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4256, 0, 4256, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4257, 0, 4257, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4258, 0, 4258, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4259, 0, 4259, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4260, 0, 4260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4261, 0, 4261, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4262, 0, 4262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4263, 0, 4263, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4264, 0, 4264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4265, 0, 4265, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4266, 0, 4266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4267, 0, 4267, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4268, 0, 4268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4269, 0, 4269, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4270, 0, 4270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4271, 0, 4271, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4272, 0, 4272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4273, 0, 4273, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4274, 0, 4274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4275, 0, 4275, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4276, 0, 4276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4277, 0, 4277, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4278, 0, 4278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4279, 0, 4279, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4280, 0, 4280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4281, 0, 4281, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4282, 0, 4282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4283, 0, 4283, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4284, 0, 4284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4285, 0, 4285, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4286, 0, 4286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4287, 0, 4287, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4288, 0, 4288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4289, 0, 4289, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4290, 0, 4290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4291, 0, 4291, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4292, 0, 4292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4293, 0, 4293, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 11617, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27597, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40863, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20008, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20022, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20031, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20057, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20101, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20128, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20154, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20799, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20837, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20843, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20866, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20886, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20907, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20960, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20981, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21147, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21241, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21269, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21274, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21304, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21313, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21340, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21378, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21430, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21448, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21475, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22231, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22794, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22805, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22823, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23567, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23586, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23608, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23662, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23665, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24027, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24037, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24049, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24062, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24178, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24186, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24191, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24308, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24339, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24417, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24515, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25096, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25142, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25163, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25903, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25908, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25991, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26007, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26020, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26041, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26080, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26085, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26352, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27490, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27513, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27571, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27611, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27663, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27668, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27700, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 28779, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29226, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29238, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29243, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29247, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29273, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29572, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29577, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29916, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29926, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29976, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29983, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30000, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30091, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30098, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30326, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30333, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30382, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30399, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30446, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30683, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30690, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30707, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31034, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31160, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31166, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31348, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31481, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32566, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32593, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32650, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32701, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32769, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32780, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32819, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32895, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32905, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33251, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33258, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33267, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33276, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33292, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33390, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33394, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34381, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34411, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34892, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34915, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35198, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35211, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35282, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35328, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35895, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35910, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35925, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35960, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35997, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36196, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36208, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36523, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36554, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36784, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36789, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37009, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37193, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37324, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37329, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38263, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38272, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38428, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38582, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38585, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38632, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38737, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38750, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38754, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38761, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38893, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38913, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39080, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39131, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39135, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39321, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39340, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39640, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39647, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39717, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39727, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39730, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39740, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39770, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40565, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40575, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40613, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40635, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40643, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40653, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40657, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40697, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40701, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40718, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40723, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40736, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40845, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40860, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40864, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_WIDE, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 218, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 224, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 12306, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21317, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20400, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19200, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3963, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19260, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19320, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3969, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19380, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3972, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19440, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3975, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19500, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3978, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19560, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19620, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3984, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19680, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3987, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19740, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3990, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19800, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3993, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19860, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3996, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19920, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3999, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19980, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4002, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20040, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4005, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20100, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4008, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20160, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4014, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4017, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20220, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4020, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20280, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4026, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4029, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20340, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4032, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4035, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 52, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 53, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4041, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4044, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20460, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, -4047, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, -4050, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21720, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20520, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4053, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20580, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4056, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20640, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4059, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20700, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4062, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20760, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4065, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20820, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4068, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20880, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4071, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20940, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4074, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21000, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4077, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21060, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4080, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21120, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4083, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21180, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4086, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21240, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4089, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21300, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4092, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21360, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4095, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21420, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4098, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4101, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21480, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4104, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4107, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21540, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4110, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4113, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21600, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4116, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4119, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21660, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4122, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4125, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21780, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21840, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21900, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21960, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4128, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4131, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4134, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4137, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4140, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22020, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, -4143, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, -4146, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4353, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4522, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4354, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4524, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4525, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4356, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4357, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4528, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4529, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4530, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4531, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4533, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4378, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4359, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4360, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4385, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4362, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4363, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4365, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4366, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4368, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4369, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4449, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4450, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4451, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4452, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4453, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4454, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4455, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4457, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4458, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4459, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4461, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4462, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4463, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4464, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4465, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4466, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4467, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4469, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4448, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4372, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4551, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4552, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4556, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4558, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4563, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4567, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4569, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4381, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4382, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4384, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4386, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4387, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4391, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4393, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4395, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4396, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4397, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4398, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4399, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4402, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4406, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4416, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4423, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4439, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4441, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4485, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4497, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4498, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4510, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4513, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19977, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19978, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20013, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19979, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 30002, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20057, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19993, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19969, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22825, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22320, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20154, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4153, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4157, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4161, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4169, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4173, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4177, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4181, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4185, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4189, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4193, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4197, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4201, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4205, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4210, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4215, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4220, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4225, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4230, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4240, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4245, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4250, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4260, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4265, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4270, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4280, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4288, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4295, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4299, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4319, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4323, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4327, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4335, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4339, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4343, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4347, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4351, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4355, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4363, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4371, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4375, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4379, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4383, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4387, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4391, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4395, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4399, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4403, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4407, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4411, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4415, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4419, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4423, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4427, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4431, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4439, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4443, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4446, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4449, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4452, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4455, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4458, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4461, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4464, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4467, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4470, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4473, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4476, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4479, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4482, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4485, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4352, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4354, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4355, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4357, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4358, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4361, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4363, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4364, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4366, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4368, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4369, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4370, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4488, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4494, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4497, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4500, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4503, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4506, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4509, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4512, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4515, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4518, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4521, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4524, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4527, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4530, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4536, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4541, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19977, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20116, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20845, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19971, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20843, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20061, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21313, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28779, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27700, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 37329, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26085, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26666, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21517, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 29305, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36001, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31069, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21172, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31192, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 30007, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36969, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21360, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 38917, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20241, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20889, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19978, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20013, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19979, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 24038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 23447, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 23398, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 30435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20225, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36039, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21332, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22812, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4547, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4550, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4553, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4556, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4559, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4562, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4565, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4568, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4571, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4574, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4577, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4580, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4583, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4586, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4589, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4598, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4601, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4607, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4610, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4613, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4616, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4620, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4624, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4628, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4631, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4635, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4638, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12450, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12452, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12454, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12456, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12458, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12459, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12461, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12463, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12465, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12467, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12469, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12471, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12473, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12475, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12477, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12479, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12481, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12484, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12486, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12488, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12490, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12491, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12492, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12493, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12494, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12495, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12498, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12501, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12504, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12507, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12510, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12511, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12512, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12513, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12514, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12516, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12518, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12520, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12521, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12522, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12523, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12524, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12525, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12527, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12528, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12529, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12530, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4642, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4647, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4652, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4657, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4661, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4666, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4670, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4674, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4680, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4685, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4689, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4693, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4697, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4702, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4707, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4711, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4715, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4718, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4722, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4727, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4732, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4735, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4741, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4748, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4754, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4758, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4764, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4770, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4775, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4779, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4783, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4787, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4792, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4798, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4803, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4807, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4811, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4815, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4818, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4821, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4824, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4827, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4831, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4835, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4841, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4845, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4850, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4856, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4860, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4863, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4866, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4872, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4877, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4883, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4887, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4893, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4896, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4900, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4904, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4908, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4912, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4916, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4921, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4925, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4928, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4932, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4936, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4940, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4945, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4949, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4953, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4957, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4963, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4968, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4971, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4977, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4980, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4985, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4990, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4994, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4998, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5002, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5007, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5010, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5014, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5019, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5022, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5028, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5032, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5035, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5041, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5044, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5047, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5050, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5053, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5056, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5059, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5062, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5066, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5070, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5074, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5078, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5082, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5086, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5090, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5094, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5098, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5102, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5106, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5110, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5114, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5118, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5122, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5126, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5129, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5132, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5136, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5139, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5142, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5145, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5153, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5156, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5159, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5162, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5168, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5173, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5176, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5179, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5182, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5185, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5188, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5191, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5194, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5197, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5201, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5206, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5209, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5212, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5215, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5218, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5221, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5224, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5227, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5231, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5239, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5243, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5246, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5249, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5252, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5258, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5261, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5264, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5267, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5270, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5273, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5277, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5281, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5284, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5288, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5292, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5296, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5299, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5312, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5319, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5323, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5327, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5337, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5344, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5347, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5350, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5362, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5365, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5368, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5371, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5374, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5380, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5383, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5386, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5389, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5392, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5395, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5398, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5403, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5406, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5409, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5412, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5417, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5421, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5427, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5430, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5433, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5436, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5439, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5442, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5445, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5448, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5451, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5455, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5458, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5461, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5465, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5469, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5472, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5477, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5481, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5484, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5487, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5490, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5493, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5497, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5501, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5504, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5507, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5510, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5513, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5516, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5519, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5522, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5525, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5528, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5532, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5536, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5540, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5548, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5552, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5556, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5560, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5564, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5568, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5572, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5576, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5580, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5584, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5588, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5596, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5600, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5608, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5612, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5616, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42561, 0, -1, -1, 42561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42560, 0, 42560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42563, 0, -1, -1, 42563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42562, 0, 42562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42565, 0, -1, -1, 42565, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42564, 0, 42564, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42567, 0, -1, -1, 42567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42566, 0, 42566, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42569, 0, -1, -1, 42569, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42568, 0, 42568, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42571, 0, -1, -1, 42571, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42570, 0, 42570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42573, 0, -1, -1, 42573, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42572, 0, 42572, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42575, 0, -1, -1, 42575, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42574, 0, 42574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42577, 0, -1, -1, 42577, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42576, 0, 42576, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42579, 0, -1, -1, 42579, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42578, 0, 42578, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42581, 0, -1, -1, 42581, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42580, 0, 42580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42583, 0, -1, -1, 42583, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42582, 0, 42582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42585, 0, -1, -1, 42585, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42584, 0, 42584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42587, 0, -1, -1, 42587, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42586, 0, 42586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42589, 0, -1, -1, 42589, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42588, 0, 42588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42591, 0, -1, -1, 42591, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42590, 0, 42590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42595, 0, -1, -1, 42595, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42594, 0, 42594, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42597, 0, -1, -1, 42597, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42596, 0, 42596, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42599, 0, -1, -1, 42599, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42598, 0, 42598, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42601, 0, -1, -1, 42601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42600, 0, 42600, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42603, 0, -1, -1, 42603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42602, 0, 42602, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42605, 0, -1, -1, 42605, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42604, 0, 42604, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42625, 0, -1, -1, 42625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42624, 0, 42624, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42627, 0, -1, -1, 42627, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42626, 0, 42626, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42629, 0, -1, -1, 42629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42628, 0, 42628, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42631, 0, -1, -1, 42631, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42630, 0, 42630, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42633, 0, -1, -1, 42633, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42632, 0, 42632, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42635, 0, -1, -1, 42635, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42634, 0, 42634, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42637, 0, -1, -1, 42637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42636, 0, 42636, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42639, 0, -1, -1, 42639, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42638, 0, 42638, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42641, 0, -1, -1, 42641, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42640, 0, 42640, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42643, 0, -1, -1, 42643, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42642, 0, 42642, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42645, 0, -1, -1, 42645, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42644, 0, 42644, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42647, 0, -1, -1, 42647, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42646, 0, 42646, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42787, 0, -1, -1, 42787, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42786, 0, 42786, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42789, 0, -1, -1, 42789, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42788, 0, 42788, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42791, 0, -1, -1, 42791, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42790, 0, 42790, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42793, 0, -1, -1, 42793, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42792, 0, 42792, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42795, 0, -1, -1, 42795, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42794, 0, 42794, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42797, 0, -1, -1, 42797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42796, 0, 42796, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42799, 0, -1, -1, 42799, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42798, 0, 42798, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42803, 0, -1, -1, 42803, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42802, 0, 42802, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42805, 0, -1, -1, 42805, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42804, 0, 42804, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42807, 0, -1, -1, 42807, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42806, 0, 42806, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42809, 0, -1, -1, 42809, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42808, 0, 42808, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42811, 0, -1, -1, 42811, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42810, 0, 42810, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42813, 0, -1, -1, 42813, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42812, 0, 42812, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42815, 0, -1, -1, 42815, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42814, 0, 42814, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42817, 0, -1, -1, 42817, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42816, 0, 42816, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42819, 0, -1, -1, 42819, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42818, 0, 42818, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42821, 0, -1, -1, 42821, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42820, 0, 42820, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42823, 0, -1, -1, 42823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42822, 0, 42822, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42825, 0, -1, -1, 42825, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42824, 0, 42824, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42827, 0, -1, -1, 42827, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42826, 0, 42826, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42829, 0, -1, -1, 42829, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42828, 0, 42828, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42831, 0, -1, -1, 42831, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42830, 0, 42830, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42833, 0, -1, -1, 42833, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42832, 0, 42832, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42835, 0, -1, -1, 42835, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42834, 0, 42834, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42837, 0, -1, -1, 42837, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42836, 0, 42836, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42839, 0, -1, -1, 42839, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42838, 0, 42838, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42841, 0, -1, -1, 42841, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42840, 0, 42840, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42843, 0, -1, -1, 42843, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42842, 0, 42842, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42845, 0, -1, -1, 42845, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42844, 0, 42844, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42847, 0, -1, -1, 42847, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42846, 0, 42846, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42849, 0, -1, -1, 42849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42848, 0, 42848, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42851, 0, -1, -1, 42851, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42850, 0, 42850, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42853, 0, -1, -1, 42853, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42852, 0, 42852, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42855, 0, -1, -1, 42855, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42854, 0, 42854, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42857, 0, -1, -1, 42857, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42856, 0, 42856, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42859, 0, -1, -1, 42859, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42858, 0, 42858, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42861, 0, -1, -1, 42861, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42860, 0, 42860, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42863, 0, -1, -1, 42863, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42862, 0, 42862, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 42863, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42874, 0, -1, -1, 42874, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42873, 0, 42873, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42876, 0, -1, -1, 42876, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42875, 0, 42875, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7545, 0, -1, -1, 7545, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42879, 0, -1, -1, 42879, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42878, 0, 42878, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42881, 0, -1, -1, 42881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42880, 0, 42880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42883, 0, -1, -1, 42883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42882, 0, 42882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42885, 0, -1, -1, 42885, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42884, 0, 42884, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42887, 0, -1, -1, 42887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42886, 0, 42886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42892, 0, -1, -1, 42892, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42891, 0, 42891, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_CS, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_CO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35912, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26356, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36554, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36040, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28369, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20018, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21477, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40860, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37329, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21895, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22856, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25078, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32645, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34367, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34746, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35064, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37007, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27931, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28889, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33853, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37226, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20098, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21365, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27396, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34349, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23888, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28651, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34253, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35172, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25289, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33240, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34847, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24266, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26391, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29436, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20358, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20919, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21214, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25796, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27347, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29200, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30439, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32769, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34396, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36335, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39791, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40442, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30860, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31103, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32160, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33737, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37636, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35542, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22751, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24324, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32894, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29282, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30922, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38647, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22744, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28431, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32047, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38475, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21202, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32907, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20940, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31260, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32190, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33777, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38517, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35712, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35582, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20025, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23527, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24594, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30064, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21271, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20415, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24489, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27852, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21443, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22622, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30465, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35498, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27578, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33509, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25504, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30053, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20142, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20841, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20937, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26753, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31975, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33391, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35538, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37327, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21570, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22899, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26053, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28670, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31018, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38317, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39530, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40599, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40654, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21147, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27511, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24180, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25088, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25754, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28451, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29001, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31178, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32244, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36646, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34030, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36899, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21015, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28872, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25467, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27566, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31806, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29557, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20196, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23994, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24604, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29801, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32838, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37428, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38646, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38728, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38936, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31150, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38584, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24801, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20102, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20698, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23615, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26009, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29134, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30274, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34044, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36988, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26248, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38446, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21129, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26491, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26611, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27969, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30041, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30827, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32016, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39006, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25134, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38520, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20523, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24459, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26647, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23653, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26131, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26446, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26792, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27877, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30178, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32633, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35041, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37324, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38626, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28346, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21533, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29136, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29848, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34298, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38563, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40607, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28107, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33256, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31435, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31520, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31890, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29376, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28825, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35672, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20160, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33590, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21050, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20999, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24230, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25299, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23429, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27934, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26292, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34892, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38477, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24275, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20800, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21952, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26228, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29482, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30410, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31036, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31077, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31119, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38742, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31934, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32701, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34322, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35576, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36920, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37117, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39151, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39164, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39208, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40372, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20398, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20711, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20813, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21193, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21220, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21329, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21917, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22022, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22120, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22592, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22696, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23652, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24724, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24936, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24974, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25074, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25935, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26082, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26257, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28186, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28450, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29227, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29730, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31049, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31048, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31069, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31117, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31118, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31296, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31361, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31680, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32626, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32773, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33401, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35088, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35222, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35585, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35641, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36051, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36790, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38627, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38911, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20006, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20917, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20352, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20805, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20864, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21191, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21242, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21913, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21986, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22707, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22852, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22868, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23336, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24274, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24281, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24493, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24792, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24910, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24928, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25140, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25540, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25628, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25682, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25942, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26395, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26454, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27513, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28379, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30631, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29359, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29809, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30239, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30452, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30538, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30528, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30924, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31867, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32091, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32574, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34681, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35206, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35531, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35722, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36664, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36978, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37273, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37494, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38875, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38923, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39698, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141386, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144341, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16408, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16441, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 152137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154832, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 163539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40771, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40846, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5620, -5623, -5626, -5628, -1, -1, -5620, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5631, -5634, -5637, -5639, -1, -1, -5631, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5642, -5645, -5648, -5650, -1, -1, -5642, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5653, -5657, -5661, -5663, -1, -1, -5653, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5667, -5671, -5675, -5677, -1, -1, -5667, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5681, -5684, -5687, -5689, -1, -1, -5692, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5692, -5684, -5695, -5689, -1, -1, -5692, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5697, -5700, -5703, -5705, -1, -1, -5697, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5708, -5711, -5714, -5716, -1, -1, -5708, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5719, -5722, -5725, -5727, -1, -1, -5719, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5730, -5733, -5736, -5738, -1, -1, -5730, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5741, -5744, -5747, -5749, -1, -1, -5741, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5752, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 26, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5755, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1506, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1491, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1492, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1499, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1501, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1514, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_FONT, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5758, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5761, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5764, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5767, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5770, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5773, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5776, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5779, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5782, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5785, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5788, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5791, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5794, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5797, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5800, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5803, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5806, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5809, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5812, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5815, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5818, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5821, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5824, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5827, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5830, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5833, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5836, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5839, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5842, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5845, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5848, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5851, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_COMPAT, -5854, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1649, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1649, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1677, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1677, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1678, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1678, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1681, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1681, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1722, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1722, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1746, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1746, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1747, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1747, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1735, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1735, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1734, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1734, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1655, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1739, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1739, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1733, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1733, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1737, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1737, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5857, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5857, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5860, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5860, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5863, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5863, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5866, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5866, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5869, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5869, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5872, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5872, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5881, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5884, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5890, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5893, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5896, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5899, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5905, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5908, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5911, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5914, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5917, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5923, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5926, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5929, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5935, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5938, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5941, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5944, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5947, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5950, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5953, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5956, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5959, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5974, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5977, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5980, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5983, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5986, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5989, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5992, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6001, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6004, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6007, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6010, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6013, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6016, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6019, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6022, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6025, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6028, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6031, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6034, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6037, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6040, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6043, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6046, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6049, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6052, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6061, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6064, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6067, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6070, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6073, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6079, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6082, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6085, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6088, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6091, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6097, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6100, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6103, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6106, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6109, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6115, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6118, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6121, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6124, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6127, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6130, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6133, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6136, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6151, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6154, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6160, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6164, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6168, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6172, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6176, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6180, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6184, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6187, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6190, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5890, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6193, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6196, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6199, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5905, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5908, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6202, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6205, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6208, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5923, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5926, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6211, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6214, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6217, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5935, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5938, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6025, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6028, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6037, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6040, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6043, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6061, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6064, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6079, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6082, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6220, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6223, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6226, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6229, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6115, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6118, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6232, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6235, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6238, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5881, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5884, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6241, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6244, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5893, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5896, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5899, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6247, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5911, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5914, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5917, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6250, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5941, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5944, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5947, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5950, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5953, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5959, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5974, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6253, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5977, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5980, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5983, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5986, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5989, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5992, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6001, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6004, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6007, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6010, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6013, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6016, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6019, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6022, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6031, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6034, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6046, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6049, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6052, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6067, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6070, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6073, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6256, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6085, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6088, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6091, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6103, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6106, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6109, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6259, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6121, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6124, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6262, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6133, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6136, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6265, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6244, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6247, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6250, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6268, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6271, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6277, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6259, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6265, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6280, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6284, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6288, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6292, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6295, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6298, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6301, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6304, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6307, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6310, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6313, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6319, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6322, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6325, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6328, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6331, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6334, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6337, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6340, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6343, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6346, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6349, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6292, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6295, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6298, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6301, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6304, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6307, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6310, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6313, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6319, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6322, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6325, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6328, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6331, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6334, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6337, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6340, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6343, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6346, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6349, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6271, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6277, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6376, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6384, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6388, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6392, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6396, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6400, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6404, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6404, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6408, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6412, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6416, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6420, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6424, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6432, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6436, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6436, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6444, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6448, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6448, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6452, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6464, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6472, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6472, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6476, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6480, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6492, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6496, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6504, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6508, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6508, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6516, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6520, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6524, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6528, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6536, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6536, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6540, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6540, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6544, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6548, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6552, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6556, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6560, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6564, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6568, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6596, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6600, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6612, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6616, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6620, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6624, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6628, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6632, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6636, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6640, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6644, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6648, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6652, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6656, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6660, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6680, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6684, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6692, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6696, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6520, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6704, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6708, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6712, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6716, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6720, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6716, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6708, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6724, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6732, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6720, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6444, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6748, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6752, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6756, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6760, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6765, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6770, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6775, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6780, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6785, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6790, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6795, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6799, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6818, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6827, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12290, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 33, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 63, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12310, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12311, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8230, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8229, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8212, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8211, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12308, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12309, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12304, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12305, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12298, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12299, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12296, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12297, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12300, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12301, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12302, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12303, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 91, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 93, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 8254, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 63, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 33, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8212, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12308, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12309, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 35, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 38, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 42, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 45, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 60, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 62, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 92, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 36, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 37, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 64, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6832, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6835, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6838, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6841, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6844, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6847, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6850, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6853, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6856, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6859, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6862, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6865, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6868, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6871, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1569, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1570, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1570, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1571, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1571, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1577, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1577, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1583, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1583, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1585, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1585, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1586, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1586, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6874, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6874, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6877, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6877, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6880, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6880, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6883, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6883, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 33, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 34, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 35, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 36, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 37, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 38, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 39, 0, 0, 0, -1, -1, 0, 8, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 42, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 45, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 47, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 60, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 62, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 63, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 64, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 65, 0, 65345, 0, -1, -1, 65345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 66, 0, 65346, 0, -1, -1, 65346, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 67, 0, 65347, 0, -1, -1, 65347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 68, 0, 65348, 0, -1, -1, 65348, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 69, 0, 65349, 0, -1, -1, 65349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 70, 0, 65350, 0, -1, -1, 65350, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 71, 0, 65351, 0, -1, -1, 65351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 72, 0, 65352, 0, -1, -1, 65352, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 73, 0, 65353, 0, -1, -1, 65353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 74, 0, 65354, 0, -1, -1, 65354, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 75, 0, 65355, 0, -1, -1, 65355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 76, 0, 65356, 0, -1, -1, 65356, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 77, 0, 65357, 0, -1, -1, 65357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 78, 0, 65358, 0, -1, -1, 65358, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 79, 0, 65359, 0, -1, -1, 65359, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 80, 0, 65360, 0, -1, -1, 65360, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 81, 0, 65361, 0, -1, -1, 65361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 82, 0, 65362, 0, -1, -1, 65362, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 83, 0, 65363, 0, -1, -1, 65363, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 84, 0, 65364, 0, -1, -1, 65364, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 85, 0, 65365, 0, -1, -1, 65365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 86, 0, 65366, 0, -1, -1, 65366, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 87, 0, 65367, 0, -1, -1, 65367, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 88, 0, 65368, 0, -1, -1, 65368, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 89, 0, 65369, 0, -1, -1, 65369, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 90, 0, 65370, 0, -1, -1, 65370, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 91, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 92, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 93, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 94, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 96, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 97, 65313, 0, 65313, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 98, 65314, 0, 65314, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 99, 65315, 0, 65315, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 100, 65316, 0, 65316, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 101, 65317, 0, 65317, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 102, 65318, 0, 65318, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 103, 65319, 0, 65319, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 104, 65320, 0, 65320, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 105, 65321, 0, 65321, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 106, 65322, 0, 65322, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 107, 65323, 0, 65323, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 108, 65324, 0, 65324, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 109, 65325, 0, 65325, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 110, 65326, 0, 65326, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 111, 65327, 0, 65327, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 112, 65328, 0, 65328, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 113, 65329, 0, 65329, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 114, 65330, 0, 65330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 115, 65331, 0, 65331, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 116, 65332, 0, 65332, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 117, 65333, 0, 65333, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 118, 65334, 0, 65334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 119, 65335, 0, 65335, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 120, 65336, 0, 65336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 121, 65337, 0, 65337, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 122, 65338, 0, 65338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 124, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 126, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 10629, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 10630, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12290, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12300, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12301, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12539, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12530, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12449, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12451, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12453, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12455, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12457, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12515, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12517, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12519, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12483, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12540, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12450, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12452, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12454, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12456, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12458, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12459, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12461, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12463, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12465, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12467, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12469, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12471, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12473, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12475, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12477, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12479, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12481, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12484, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12486, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12488, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12490, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12491, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12492, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12493, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12494, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12495, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12498, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12501, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12504, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12507, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12510, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12511, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12512, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12513, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12514, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12516, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12518, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12520, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12521, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12522, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12523, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12524, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12525, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12527, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12531, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12441, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12442, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12644, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12595, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12596, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12597, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12598, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12599, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12600, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12611, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12612, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12613, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12614, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12615, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12616, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12617, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12618, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12619, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12620, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12621, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12622, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12623, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12624, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12625, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12626, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12627, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12628, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12629, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12630, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12631, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12632, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12633, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12634, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12635, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12636, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12637, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12638, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12639, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12640, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12641, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12642, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12643, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 162, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 163, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 172, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 175, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 166, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8361, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9474, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8593, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8594, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9632, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9675, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66600, 0, -1, -1, 66600, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66601, 0, -1, -1, 66601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66602, 0, -1, -1, 66602, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66603, 0, -1, -1, 66603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66604, 0, -1, -1, 66604, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66605, 0, -1, -1, 66605, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66606, 0, -1, -1, 66606, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66607, 0, -1, -1, 66607, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66608, 0, -1, -1, 66608, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66609, 0, -1, -1, 66609, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66610, 0, -1, -1, 66610, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66611, 0, -1, -1, 66611, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66612, 0, -1, -1, 66612, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66613, 0, -1, -1, 66613, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66614, 0, -1, -1, 66614, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66615, 0, -1, -1, 66615, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66616, 0, -1, -1, 66616, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66617, 0, -1, -1, 66617, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66618, 0, -1, -1, 66618, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66619, 0, -1, -1, 66619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66620, 0, -1, -1, 66620, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66621, 0, -1, -1, 66621, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66622, 0, -1, -1, 66622, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66623, 0, -1, -1, 66623, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66624, 0, -1, -1, 66624, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66625, 0, -1, -1, 66625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66626, 0, -1, -1, 66626, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66627, 0, -1, -1, 66627, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66628, 0, -1, -1, 66628, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66629, 0, -1, -1, 66629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66630, 0, -1, -1, 66630, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66631, 0, -1, -1, 66631, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66632, 0, -1, -1, 66632, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66633, 0, -1, -1, 66633, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66634, 0, -1, -1, 66634, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66635, 0, -1, -1, 66635, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66636, 0, -1, -1, 66636, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66637, 0, -1, -1, 66637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66638, 0, -1, -1, 66638, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66639, 0, -1, -1, 66639, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66560, 0, 66560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66561, 0, 66561, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66562, 0, 66562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66563, 0, 66563, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66564, 0, 66564, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66565, 0, 66565, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66566, 0, 66566, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66567, 0, 66567, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66568, 0, 66568, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66569, 0, 66569, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66570, 0, 66570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66571, 0, 66571, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66572, 0, 66572, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66573, 0, 66573, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66574, 0, 66574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66575, 0, 66575, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66576, 0, 66576, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66577, 0, 66577, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66578, 0, 66578, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66579, 0, 66579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66580, 0, 66580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66581, 0, 66581, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66582, 0, 66582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66583, 0, 66583, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66584, 0, 66584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66585, 0, 66585, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66586, 0, 66586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66587, 0, 66587, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66588, 0, 66588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66589, 0, 66589, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66590, 0, 66590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66591, 0, 66591, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66592, 0, 66592, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66593, 0, 66593, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66594, 0, 66594, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66595, 0, 66595, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66596, 0, 66596, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66597, 0, 66597, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66598, 0, 66598, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66599, 0, 66599, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22080, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22140, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6886, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6889, 0, 0, 0, 22200, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6892, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6895, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6898, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6901, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6904, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 54, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 226, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 55, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 56, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 57, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 58, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 59, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22260, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22320, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6907, 0, 0, 0, 22380, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6910, 0, 0, 0, 22440, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6913, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6916, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6919, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6922, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 65, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 71, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 74, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 75, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 79, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 83, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 84, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 85, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 86, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 87, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 88, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 89, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 98, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 99, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 102, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 107, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 109, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 110, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 112, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 113, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 115, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 116, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 119, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 121, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 122, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 305, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 567, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 913, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 914, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 916, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 917, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 918, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 919, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 920, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 921, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 922, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 923, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 924, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 925, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 926, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 927, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 929, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1012, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 931, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 932, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 933, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 934, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 935, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 936, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 937, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8711, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 945, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 948, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 949, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 950, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 951, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 952, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 953, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 954, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 955, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 956, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 957, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 958, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 959, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 961, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 962, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 963, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 964, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 965, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 968, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 969, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8706, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1013, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 977, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1008, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 981, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1009, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 982, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 988, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 989, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 48, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 49, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 50, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 51, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 52, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 53, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 54, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 55, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 56, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 57, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20029, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20024, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 131362, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20320, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20411, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20482, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20602, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20633, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20687, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13470, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20820, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20836, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20855, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13497, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20839, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20877, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20887, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20172, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20908, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168415, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20995, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21051, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21106, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21111, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13589, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21253, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21254, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21338, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21373, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21375, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133676, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21450, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21471, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133987, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21483, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21489, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21510, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21560, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21576, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21608, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21750, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21776, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21843, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21859, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21892, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21931, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21939, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22294, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22097, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22132, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22516, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22541, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22411, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22578, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22577, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22700, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136420, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22770, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22790, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22810, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22818, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22882, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136872, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136938, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23020, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23067, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23079, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23142, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14076, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23304, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23358, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 137672, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23491, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23512, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138008, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23551, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23558, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24403, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23586, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14209, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23648, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23744, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138724, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23875, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23918, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23915, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23932, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14383, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24061, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24125, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24169, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14434, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 139651, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14460, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24240, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24243, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24246, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24318, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 140081, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33281, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24354, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24418, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14563, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24474, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24525, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24569, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141012, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24904, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24908, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24996, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25007, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25054, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25115, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25181, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25424, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 142092, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25405, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25340, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25448, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25475, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25572, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 142321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25634, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25541, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25513, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14894, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25719, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25964, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 143370, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26083, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26360, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26185, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15129, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15112, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15076, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20882, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20885, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26368, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26268, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32941, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17369, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26401, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26462, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26451, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144323, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15177, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26501, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144493, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26655, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27043, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27114, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27304, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 145059, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27355, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15384, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 145575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27476, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15438, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27506, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27551, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27579, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146061, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138507, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146170, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27839, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27853, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27751, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27926, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28009, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28024, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28037, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146718, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28207, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28270, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28359, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28526, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147294, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28614, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28729, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28699, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28746, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28797, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28791, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132389, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28997, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 148067, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29084, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 148395, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29224, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29264, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29312, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29333, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149301, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29562, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29579, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16044, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29605, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29767, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29788, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29829, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29898, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29988, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 150582, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30014, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 150674, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 139679, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30224, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151457, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151480, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16392, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151795, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151794, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151859, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30494, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30495, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30603, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16454, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 152605, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30798, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16611, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153126, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153242, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153285, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16687, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31306, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153980, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154279, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31470, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16898, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31686, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31689, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16935, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154752, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 155526, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32099, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32199, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32258, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32325, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17204, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156200, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156231, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17241, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156377, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32634, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32661, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32762, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156890, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156963, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32864, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157096, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32880, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144223, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17365, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33027, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17419, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33086, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23221, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157607, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157621, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144275, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17515, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33419, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33437, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21171, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33457, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33459, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33469, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33510, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33635, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33709, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33571, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33725, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33767, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33619, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33738, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33740, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33756, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158774, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159083, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158933, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17707, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34035, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 160714, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34148, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159532, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17761, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159665, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17771, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34384, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34407, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34473, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34440, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34574, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34530, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34600, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34694, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34785, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34817, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17913, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34912, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34915, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 161383, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35031, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17973, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35066, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13499, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 161966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 162150, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18110, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18119, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35488, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35925, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 162984, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36123, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36215, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 163631, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133124, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36299, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36336, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36564, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165330, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165357, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37012, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37105, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165678, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37147, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37432, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37591, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37592, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37500, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37881, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37909, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 166906, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38283, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18837, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38327, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 167287, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18918, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38595, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23986, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38691, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168474, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19054, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38880, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168970, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 169110, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38953, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 169398, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19251, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39209, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39335, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39362, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39422, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19406, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 170800, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40189, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172238, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19704, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172293, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172558, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172689, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40635, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19798, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40697, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40709, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40719, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40763, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 173568, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, }; const int32_t utf8proc_combinations[] = { 192, 193, 194, 195, 196, 197, -1, 256, 258, 260, 550, 461, -1, -1, 512, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7680, 7840, -1, -1, -1, -1, -1, 7842, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 264, -1, -1, -1, 199, -1, -1, -1, 266, 268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, 201, 202, 7868, 203, -1, 552, 274, 276, 280, 278, 282, -1, -1, 516, 518, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7864, -1, 7704, 7706, -1, -1, 7866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, 205, 206, 296, 207, -1, -1, 298, 300, 302, 304, 463, -1, -1, 520, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7882, -1, -1, 7724, -1, -1, 7880, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 323, -1, 209, -1, -1, 325, -1, -1, -1, 7748, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7750, 7752, 7754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 210, 211, 212, 213, 214, -1, -1, 332, 334, 490, 558, 465, 336, 416, 524, 526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7884, -1, -1, -1, -1, -1, 7886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, 218, 219, 360, 220, 366, -1, 362, 364, 370, -1, 467, 368, 431, 532, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7908, -1, 7798, 7796, -1, 7794, 7910, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7922, 221, 374, 7928, 376, -1, -1, 562, -1, -1, 7822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7924, -1, -1, -1, -1, -1, 7926, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, 225, 226, 227, 228, 229, -1, 257, 259, 261, 551, 462, -1, -1, 513, 515, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7681, 7841, -1, -1, -1, -1, -1, 7843, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, 265, -1, -1, -1, 231, -1, -1, -1, 267, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, 233, 234, 7869, 235, -1, 553, 275, 277, 281, 279, 283, -1, -1, 517, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7865, -1, 7705, 7707, -1, -1, 7867, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 236, 237, 238, 297, 239, -1, -1, 299, 301, 303, -1, 464, -1, -1, 521, 523, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7883, -1, -1, 7725, -1, -1, 7881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, 324, -1, 241, -1, -1, 326, -1, -1, -1, 7749, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7751, 7753, 7755, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, 244, 245, 246, -1, -1, 333, 335, 491, 559, 466, 337, 417, 525, 527, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7885, -1, -1, -1, -1, -1, 7887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, 250, 251, 361, 252, 367, -1, 363, 365, 371, -1, 468, 369, 432, 533, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7909, -1, 7799, 7797, -1, 7795, 7911, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7923, 253, 375, 7929, 255, 7833, -1, 563, -1, -1, 7823, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7925, -1, -1, -1, -1, -1, 7927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7696, -1, -1, -1, 7690, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7692, 7694, 7698, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7697, -1, -1, -1, 7691, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7693, 7695, 7699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 500, 284, -1, -1, -1, 290, 7712, 286, -1, 288, 486, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 501, 285, -1, -1, -1, 291, 7713, 287, -1, 289, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, 7718, -1, 7720, -1, -1, -1, 7714, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7716, -1, -1, -1, 7722, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, 7719, -1, 7721, -1, -1, -1, 7715, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7717, 7830, -1, -1, 7723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7728, -1, -1, -1, -1, 310, -1, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7730, 7732, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7729, -1, -1, -1, -1, 311, -1, -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7731, 7733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, 315, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7734, 7738, 7740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, 316, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7735, 7739, 7741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, 342, -1, -1, -1, 7768, 344, -1, -1, 528, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7770, 7774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, 343, -1, -1, -1, 7769, 345, -1, -1, 529, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7771, 7775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 348, -1, -1, -1, 350, -1, -1, -1, 7776, 352, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7778, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 347, 349, -1, -1, -1, 351, -1, -1, -1, 7777, 353, -1, -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7779, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 354, -1, -1, -1, 7786, 356, -1, -1, -1, -1, 538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7788, 7790, 7792, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7831, -1, 355, -1, -1, -1, 7787, 357, -1, -1, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7789, 7791, 7793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7808, 7810, 372, -1, 7812, -1, -1, -1, -1, -1, 7814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7816, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7809, 7811, 373, -1, 7813, 7832, -1, -1, -1, -1, 7815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 377, 7824, -1, -1, -1, -1, -1, -1, -1, 379, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7826, 7828, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 378, 7825, -1, -1, -1, -1, -1, -1, -1, 380, 382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7827, 7829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, 471, -1, -1, -1, -1, -1, 469, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 472, -1, -1, -1, -1, -1, 470, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, -1, -1, -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7756, -1, -1, 7758, -1, -1, 556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7757, -1, -1, 7759, -1, -1, 557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 560, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8173, 901, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8122, 902, -1, -1, -1, -1, -1, 8121, 8120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7944, 7945, -1, 8124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8136, 904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7960, 7961, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8138, 905, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7976, 7977, -1, 8140, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8154, 906, -1, -1, 938, -1, -1, 8153, 8152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7992, 7993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8184, 908, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8008, 8009, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8170, 910, -1, -1, 939, -1, -1, 8169, 8168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8186, 911, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8040, 8041, -1, 8188, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8146, 912, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8048, 940, -1, -1, -1, -1, -1, 8113, 8112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7936, 7937, 8118, 8115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8050, 941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7952, 7953, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8052, 942, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7968, 7969, 8134, 8131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8054, 943, -1, -1, 970, -1, -1, 8145, 8144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7984, 7985, 8150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8162, 944, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8058, 973, -1, -1, 971, -1, -1, 8161, 8160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8016, 8017, 8166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8056, 972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8000, 8001, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8060, 974, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8032, 8033, 8182, 8179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 979, -1, -1, 980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1024, -1, -1, -1, 1025, -1, -1, -1, 1238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1027, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1031, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1037, -1, -1, -1, 1252, -1, -1, 1250, 1049, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1264, -1, -1, 1262, 1038, -1, -1, -1, 1266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, -1, 1253, -1, -1, 1251, 1081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1, -1, 1105, -1, -1, -1, 1239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1265, -1, -1, 1263, 1118, -1, -1, -1, 1267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1244, -1, -1, -1, 1217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1245, -1, -1, -1, 1218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1234, -1, -1, -1, 1232, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1235, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1242, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1570, 1571, 1573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1572, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1574, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2345, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2507, 2508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2888, 2891, 2892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2964, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, 3018, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3019, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3264, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3271, 3272, 3274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3402, 3404, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3546, 3548, 3550, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6922, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6926, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6971, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6977, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6979, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7684, 7686, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7683, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7685, 7687, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7688, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7689, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7700, 7702, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7701, 7703, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7709, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7710, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7711, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7726, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7727, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7737, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7742, -1, -1, -1, -1, -1, -1, -1, -1, 7744, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7746, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7743, -1, -1, -1, -1, -1, -1, -1, -1, 7745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7760, 7762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7761, 7763, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7764, -1, -1, -1, -1, -1, -1, -1, -1, 7766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7765, -1, -1, -1, -1, -1, -1, -1, -1, 7767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7772, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7780, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7781, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7784, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7801, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7802, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7803, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7804, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7806, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7807, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7820, -1, -1, -1, -1, -1, 7818, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7821, -1, -1, -1, -1, -1, 7819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7835, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7846, 7844, -1, 7850, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7848, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7847, 7845, -1, 7851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7852, -1, -1, -1, -1, -1, 7862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7853, -1, -1, -1, -1, -1, 7863, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7856, 7854, -1, 7860, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7857, 7855, -1, 7861, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7859, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7872, 7870, -1, 7876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7874, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7873, 7871, -1, 7877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7875, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7890, 7888, -1, 7894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7891, 7889, -1, 7895, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7893, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7897, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7900, 7898, -1, 7904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7906, -1, -1, -1, -1, -1, 7902, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7901, 7899, -1, 7905, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7907, -1, -1, -1, -1, -1, 7903, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7914, 7912, -1, 7918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7920, -1, -1, -1, -1, -1, 7916, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7915, 7913, -1, 7919, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7921, -1, -1, -1, -1, -1, 7917, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7938, 7940, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7942, 8064, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7939, 7941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7943, 8065, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7946, 7948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7950, 8072, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7947, 7949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7951, 8073, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7954, 7956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7955, 7957, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7962, 7964, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7963, 7965, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7970, 7972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7974, 8080, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7971, 7973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7975, 8081, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7978, 7980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7982, 8088, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7979, 7981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7983, 8089, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7986, 7988, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7990, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7987, 7989, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7991, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7994, 7996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7998, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7995, 7997, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7999, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8002, 8004, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8003, 8005, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8010, 8012, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8011, 8013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8018, 8020, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8019, 8021, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8023, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8027, 8029, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8031, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8034, 8036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8038, 8096, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8035, 8037, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8039, 8097, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8042, 8044, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8046, 8104, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8043, 8045, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8047, 8105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8067, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8068, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8070, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8074, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8077, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8078, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8079, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8082, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8083, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8084, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8086, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8087, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8090, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8092, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8093, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8094, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8095, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8098, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8135, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8141, 8142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8157, 8158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8164, 8165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8178, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8603, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8655, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8772, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8777, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8802, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8813, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8816, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8820, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8821, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8824, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8825, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8832, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8833, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8836, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8837, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8840, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8841, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8928, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8929, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8931, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8939, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8940, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12364, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12368, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12374, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12380, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12400, 12401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12403, 12404, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12406, 12407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12409, 12410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12412, 12413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12464, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12466, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12496, 12497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12499, 12500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12502, 12503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12505, 12506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12508, 12509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119136, 119137, 119138, 119139, 119140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119228, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119229, 119231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119230, 119232, -1, -1, -1, }; XQilla-2.3.4/src/utils/DelayedModule.cpp0000644001725400016040000000410413273140037015006 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; void DelayedModule::importModuleInto(XQQuery *importer) const { XQQuery *module = importer->getModuleCache()->getByNamespace(uri); if(module == 0) { // Create the module const StaticContext *scontext = importer->getStaticContext(); DynamicContext *context = scontext->createModuleContext(); context->setNamespaceBinding(prefix, uri); module = new (scontext->getMemoryManager()) XQQuery(context, true, importer->getModuleCache(), scontext->getMemoryManager()); AutoDelete guard(module); module->setIsLibraryModule(true); module->setModuleTargetNamespace(uri); module->setFile(file); XPath2MemoryManager *mm = context->getMemoryManager(); for(const FuncDef *ptr = functions; ptr->name != 0; ++ptr) { module->addDelayedFunction(uri, mm->getPooledString(ptr->name), ptr->args, ptr->body, ptr->isPrivate, ptr->line, ptr->column); } importer->getModuleCache()->put(guard.adopt()); BuiltInModules::core.importModuleInto(module); BuiltInModules::fn.importModuleInto(module); } importer->importModule(module); } XQilla-2.3.4/src/utils/XStr.cpp0000644001725400016040000000232413232476424013202 00000000000000#include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; XStr::XStr(const char* const toTranscode, MemoryManager *mm) : str_(0), mm_(mm) { if(toTranscode == 0) { str_ = mm_ ? (XMLCh*)mm_->allocate(1 * sizeof(XMLCh)) : new XMLCh[1]; str_[0] = 0; } else { XMLUTF8Transcoder t(0, 512); size_t l = XMLString::stringLen(toTranscode); const size_t needed = l * 2 + 1; // 2 chars per byte is the worst case, + '\0' str_ = mm_ ? (XMLCh*)mm_->allocate(needed * sizeof(XMLCh)) : new XMLCh[needed]; AutoDeleteArray charSizes(new unsigned char[needed]); #if _XERCES_VERSION >= 30000 XMLSize_t bytesEaten = 0; t.transcodeFrom((const XMLByte*)toTranscode, l+1, str_, needed, bytesEaten, charSizes); #else unsigned int bytesEaten = 0; t.transcodeFrom((const XMLByte*)toTranscode, (unsigned int)l+1, str_, (unsigned int)needed, bytesEaten, charSizes); #endif } } XStr::~XStr() { if(str_) { if(mm_) mm_->deallocate(str_); else delete [] str_; } } XQilla-2.3.4/src/utils/XPath2Utils.cpp0000644001725400016040000002635513273140037014434 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../exceptions/MiscException.hpp" #include #include #include #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) #define snprintf _snprintf #endif XERCES_CPP_NAMESPACE_USE; const XMLCh* XPath2Utils::escapeURI(const XMLCh* const str, bool escapeRes, XPath2MemoryManager* memMgr) { if(XMLString::stringLen(str) == 0) { return 0; } XMLBuffer buf(1023, memMgr); const XMLCh *cptr; for (cptr = str; *cptr; cptr++) { // here we compare 16-bit XMLCh's to zero-padded 8-bit chars, so it // magically works if ((*cptr >= 'A' && *cptr <= 'Z') || (*cptr >= 'a' && *cptr <= 'z') || (*cptr >= '0' && *cptr <= '9') || *cptr == '%' || *cptr == '#' || *cptr == '-' || *cptr == '_' || *cptr == '.' || *cptr == '!' || *cptr == '~' || *cptr == '*' || *cptr == '\''|| *cptr == '(' || *cptr == ')' || (!escapeRes && (*cptr == ';' || *cptr == '/' || *cptr == '?' || *cptr == ':' || *cptr == '@' || *cptr == '&' || *cptr == '=' || *cptr == '+' || *cptr == '$' || *cptr == ',' || *cptr == '[' || *cptr == ']' ))) { buf.append(*cptr); } else { buf.append(X("%")); // if the upper 8 bits of the XMLCh are less than 10 (covers all of 8-bit ascii) if ((*cptr >> 4) < 10) buf.append((XMLCh)('0' + (*cptr >> 4))); else // covers extended ascii buf.append((XMLCh)('A' - 10 + (*cptr >> 4))); // bitwise-and the 16-bit XMLCh with octal F, 11111111 // we are checking the lower 8-bits if ((*cptr & 0xF) < 10) buf.append((XMLCh)('0' + (*cptr & 0xF))); else buf.append((XMLCh)('A' - 10 + (*cptr & 0xF))); } }//for return memMgr->getPooledString(buf.getRawBuffer()); } bool XPath2Utils::isValidURI(const XMLCh* const str, MemoryManager* memMgr) { // XMLSchema specs say: "Spaces are, in principle, allowed in the lexical space of anyURI, however, // their use is highly discouraged (unless they are encoded by %20)" // Xerces complains if a space is found, so let's encode it const XMLCh escSpace[]={ chPercent, chDigit_2, chDigit_0, chNull }; XMLBuffer buff(1023, memMgr); const XMLCh* pCursor=str; while(*pCursor) { if(*pCursor==chSpace) buff.append(escSpace); else buff.append(*pCursor); pCursor++; } return XMLUri::isValidURI(true, buff.getRawBuffer()); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh src, XPath2MemoryManager* memMgr) { XMLCh dummy[2] = {src, chNull}; return XPath2Utils::concatStrings(src1, dummy, memMgr); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh* src2, XPath2MemoryManager* memMgr) { XMLBuffer buffer(1023, memMgr); buffer.set(src1); buffer.append(src2); return memMgr->getPooledString(buffer.getRawBuffer()); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh* src2, const XMLCh* src3, XPath2MemoryManager* memMgr) { XMLBuffer buffer(1023, memMgr); buffer.set(src1); buffer.append(src2); buffer.append(src3); return memMgr->getPooledString(buffer.getRawBuffer()); } const XMLCh* XPath2Utils::asStr(const XMLCh ch, XPath2MemoryManager* memMgr) { XMLCh newStr[2] = {ch, chNull}; return memMgr->getPooledString(newStr); } const XMLCh* XPath2Utils::subString(const XMLCh* src, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr) { if (src == 0) { XQThrow2(MiscException,X("XPath2Utils:subString"),X("Cannot take substring of null string")); } AutoDeleteArray newStr(new XMLCh [ count + 1 ]); XMLString::subString(newStr, src, offset, offset + count); return memMgr->getPooledString(newStr); } const XMLCh* XPath2Utils::deleteData( const XMLCh* const target, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr) { if (target == 0) { return 0; } unsigned int targetSize = uintStrlen(target); unsigned int newSize = targetSize - count; AutoDeleteArray stringGuard(new XMLCh [newSize + 1]); XMLCh *newString = stringGuard; XMLString::copyNString(newString, target, offset);// * sizeof(XMLCh)); XMLString::copyNString(newString + offset, target + offset + count, ( targetSize - offset - count));//*sizeof(XMLCh)); newString[newSize] = 0; const XMLCh* retval = memMgr->getPooledString(newString); return retval; } const XMLCh* XPath2Utils::toLower( const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::lowerCase(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::toUpper( const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::upperCase(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::toCollapsedWS(const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::collapseWS(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::normalizeEOL(const XMLCh* const src, XPath2MemoryManager* memMgr) { int len=intStrlen(src); int j=0; XMLCh* dst=(XMLCh*)memMgr->allocate((len+1)*sizeof(XMLCh*)); // A.2.3 End-of-Line Handling // For [XML 1.0] processing, all of the following must be translated to a single #xA character: // 1. the two-character sequence #xD #xA // 2. any #xD character that is not immediately followed by #xA. for(int i=0;i XPath2Utils::getVal(const XMLCh* values, XPath2MemoryManager* memMgr){ std::vector valList; bool munchWS = true; // munch initial WS unsigned int start = 0; /* XPath requires this bizarre WS separated splitting of the string, as the string can hold many id's. */ int valuesLen = intStrlen(values); for(int i = 0; i < valuesLen; i++) { switch(values[i]) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { if(!munchWS) { munchWS = true; // Found the end of a value, so add it to a vector. valList.push_back(subString(values, start, i-start, memMgr)); } break; } default: { if(munchWS) { //found the start of an ID start = i; munchWS = false; } } } } if(!munchWS) { // Found the end of a value, so add it to the list of values. valList.push_back(subString(values, start, valuesLen-start, memMgr)); } return valList; } bool XPath2Utils::containsString(std::vector values, const XMLCh* val) { for (std::vector::const_iterator it=values.begin();it!=values.end();it++) if (XPath2Utils::equals(val, *it)) return true; return false; } #define BUFFER_SIZE 1024 bool XPath2Utils::readSource(const InputSource &src, MemoryManager *mm, XMLBuffer &result, bool sniffEncoding) { BinInputStream *stream = src.makeStream(); if(stream == NULL) return false; Janitor janStream(stream); readSource(stream, mm, result, src.getEncoding(), sniffEncoding); return true; } void XPath2Utils::readSource(BinInputStream *stream, MemoryManager *mm, XMLBuffer &result, const XMLCh *encoding, bool sniffEncoding) { XMLByte buffer[BUFFER_SIZE]; XercesSizeUint nRead = 0; Janitor transcoder(NULL); XMLTransService::Codes retCode; if(encoding) { transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, retCode, BUFFER_SIZE, mm)); if(transcoder.get() == 0) { ThrowXMLwithMemMgr1(TranscodingException, XMLExcepts::Trans_CantCreateCvtrFor, encoding, mm); } } else { #ifdef HAVE_GETCONTENTTYPE RegularExpression charsetRE(".*; *charset=([^ ;]*|\"[^\"]*\").*", "iH", mm); if(charsetRE.matches(stream->getContentType(), mm)) { XMLCh *charset = charsetRE.replace(stream->getContentType(), X("$1"), mm); AutoDeallocate charsetGuard(charset, mm); if(*charset == '"') { // Trim the quotes charset += 1; *(charset + XMLString::stringLen(charset) - 1) = 0; } transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(charset, retCode, BUFFER_SIZE, mm)); if(transcoder.get() == 0) { ThrowXMLwithMemMgr1(TranscodingException, XMLExcepts::Trans_CantCreateCvtrFor, charset, mm); } } else #endif if(sniffEncoding) { // TBD make this better by using an XQuery specific encoding sniffer - jpcs nRead = stream->readBytes(buffer, BUFFER_SIZE); XMLRecognizer::Encodings encoding = XMLRecognizer::basicEncodingProbe(buffer, BUFFER_SIZE); transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, retCode, BUFFER_SIZE, mm)); } else { transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor("UTF-8", retCode, BUFFER_SIZE, mm)); } } XMLCh tempBuff[BUFFER_SIZE]; unsigned char charSizes[BUFFER_SIZE]; XercesSizeUint bytesEaten = 0, nOffset = 0; XercesSizeUint nCount; do { nCount = transcoder->transcodeFrom(buffer, nRead, tempBuff, BUFFER_SIZE, bytesEaten, charSizes); if(nCount) result.append(tempBuff, nCount); if(bytesEaten < nRead){ nOffset = nRead - bytesEaten; memmove(buffer, buffer + bytesEaten, nOffset); } nRead = stream->readBytes(buffer + nOffset, BUFFER_SIZE - nOffset); if(nRead == 0 && nCount == 0) break; nRead += nOffset; } while(nRead > 0); } XQilla-2.3.4/src/framework/0000755001725400016040000000000013273141207012503 500000000000000XQilla-2.3.4/src/framework/ReferenceCounted.cpp0000644001725400016040000000273313273140037016354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include // ReferenceCounted::ReferenceCounted(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) // : _ref_count(0), // _ref_mm(mm) // { // // Do nothing // } // ReferenceCounted::~ReferenceCounted() // { // // Do nothing // } // void ReferenceCounted::incrementRefCount() const // { // ++const_cast(_ref_count); // } // void ReferenceCounted::decrementRefCount() const // { // if(--const_cast(_ref_count) == 0) { // if(_ref_mm == 0) { // delete this; // } // else { // this->~ReferenceCounted(); // operator delete((void*)this, _ref_mm); // } // } // } XQilla-2.3.4/src/framework/XPath2MemoryManagerImpl.cpp0000644001725400016040000000375113273140037017551 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XPath2MemoryManagerImpl::XPath2MemoryManagerImpl() { initialise(); } XPath2MemoryManagerImpl::~XPath2MemoryManagerImpl() { releaseAll(); } #ifdef WIN_USE_HEAP #if _XERCES_VERSION >= 30000 void *XPath2MemoryManagerImpl::allocate(XMLSize_t amount) { ++objectsAllocated_; totalMemoryAllocated_ += amount; return HeapAlloc(fHeap,HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY,amount); } #else void *XPath2MemoryManagerImpl::allocate(size_t amount) { ++objectsAllocated_; totalMemoryAllocated_ += amount; return HeapAlloc(fHeap,HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY,amount); } #endif void XPath2MemoryManagerImpl::deallocate(void* p) { --objectsAllocated_; totalMemoryAllocated_ -= HeapSize(fHeap,HEAP_NO_SERIALIZE,p); HeapFree(fHeap,HEAP_NO_SERIALIZE,p); } void XPath2MemoryManagerImpl::initialise() { fHeap=HeapCreate(HEAP_NO_SERIALIZE,128*1024,0); BaseMemoryManager::initialise(); } void XPath2MemoryManagerImpl::releaseAll() { BaseMemoryManager::releaseAll(); HeapDestroy(fHeap); } #else void *XPath2MemoryManagerImpl::internal_allocate(size_t size) { return new char[size]; } void XPath2MemoryManagerImpl::internal_deallocate(void *p) { delete [] ((char *)p); } #endif XQilla-2.3.4/src/framework/ProxyMemoryManager.cpp0000644001725400016040000000226013273140037016734 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include ProxyMemoryManager::ProxyMemoryManager(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent) : parent_(parent) { initialise(); } ProxyMemoryManager::~ProxyMemoryManager() { releaseAll(); } void *ProxyMemoryManager::internal_allocate(size_t size) { return parent_->allocate(size); } void ProxyMemoryManager::internal_deallocate(void *p) { parent_->deallocate(p); } XQilla-2.3.4/src/framework/BaseMemoryManager.cpp0000644001725400016040000002274213273140037016474 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if _XERCES_VERSION < 30000 #include #endif #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #include #include #include #include #include #include "../context/impl/VarTypeStoreImpl.hpp" #include #include static const unsigned int CHUNK_SIZE = 32 * 1024; #if (defined(__HP_aCC) && defined(__ia64)) || defined(__sparcv9) #define ALLOC_ALIGN 16 #elif defined(__sparcv8) #define ALLOC_ALIGN 8 #else #define ALLOC_ALIGN 4 #endif #define PAD ((sizeof(MemList) + ALLOC_ALIGN - 1)&~(ALLOC_ALIGN-1)) BaseMemoryManager::~BaseMemoryManager() { } void BaseMemoryManager::reset() { releaseAll(); initialise(); } void BaseMemoryManager::initialise() { fCurrentBlock = 0; objectsAllocated_ = 0; totalMemoryAllocated_ = 0; fStringPool = new (this) StringPool(this); fIntegerPool = 0; } void BaseMemoryManager::releaseAll() { if (fIntegerPool) fIntegerPool->cleanup(); // Run backwards through the linked list, deleting the blocks of memory while(fCurrentBlock) { MemList *prev = fCurrentBlock->prev; internal_deallocate((char *)fCurrentBlock); fCurrentBlock = prev; } } MemoryManager *BaseMemoryManager::getExceptionMemoryManager() { return XMLPlatformUtils::fgMemoryManager; } #if _XERCES_VERSION >= 30000 void *BaseMemoryManager::allocate(XMLSize_t amount) #else void *BaseMemoryManager::allocate(size_t amount) #endif { #if ALLOCATE_IN_CHUNKS #error "alignment constraints are not implemented for this case; fix that or remove this error if you think it is unnecessary for your platform" size_t memSize = amount + sizeof(MemAlloc); if(fCurrentBlock == 0 || fCurrentBlock->remaining < memSize) { size_t chunkSize = sizeof(MemList); if(memSize > CHUNK_SIZE) { chunkSize += memSize; } else { chunkSize += CHUNK_SIZE; } char *newBlock = 0; try { newBlock = (char*)internal_allocate(chunkSize); } catch (...) {} if(!newBlock) { throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Out of memory")); } ++objectsAllocated_; totalMemoryAllocated_ += chunkSize; MemList *newMemList = (MemList*)newBlock; newMemList->prev = fCurrentBlock; newMemList->next = 0; newMemList->size = chunkSize; newMemList->remaining = chunkSize - sizeof(MemList); newMemList->allocCount = 0; if(fCurrentBlock) { fCurrentBlock->next = newMemList; } fCurrentBlock = newMemList; } fCurrentBlock->remaining -= memSize; ++fCurrentBlock->allocCount; // Carve memory from the end of the current chunk char *mem = ((char*)fCurrentBlock) + sizeof(MemList) + fCurrentBlock->remaining; MemAlloc *alloc = (MemAlloc*)mem; alloc->list = fCurrentBlock; return (void*)(mem + sizeof(MemAlloc)); #else char *newBlock = 0; try { newBlock = (char*)internal_allocate(amount + PAD); } catch (...) {} if(!newBlock) { throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Out of memory")); } ++objectsAllocated_; totalMemoryAllocated_ += amount; MemList *newMemList = (MemList *)newBlock; newMemList->prev = fCurrentBlock; newMemList->next = 0; newMemList->size = amount; #if DEBUG_MEMORY newMemList->magic = DEBUG_MEMORY_ALLOCD; #endif if(fCurrentBlock) { #if DEBUG_MEMORY if (fCurrentBlock->magic != DEBUG_MEMORY_ALLOCD) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Corrupt block list")); #endif fCurrentBlock->next = newMemList; } fCurrentBlock = newMemList; return (void *)(newBlock + PAD); #endif } void BaseMemoryManager::deallocate(void* p) { if(p) { #if ALLOCATE_IN_CHUNKS MemAlloc *alloc = (MemAlloc*)(((char*)p) - sizeof(MemAlloc)); MemList *oldMemList = alloc->list; --oldMemList->allocCount; if(oldMemList->allocCount == 0) { // Decouple the old block from the list if(oldMemList->prev) { oldMemList->prev->next = oldMemList->next; } if(oldMemList->next) { oldMemList->next->prev = oldMemList->prev; } else { // If the old block doesn't have a next, it must currently be fCurrentBlock fCurrentBlock = oldMemList->prev; } --objectsAllocated_; totalMemoryAllocated_ -= oldMemList->size; internal_deallocate((void*)oldMemList); } #else char *oldBlock = ((char *)p) - PAD; MemList *oldMemList = (MemList *)oldBlock; #if DEBUG_MEMORY if (oldMemList->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Trying to free free'd memory")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Trying to free unalloc'd memory")); } else oldMemList->magic = DEBUG_MEMORY_FREED; #endif // Decouple the old block from the list if(oldMemList->prev) { #if DEBUG_MEMORY if (oldMemList->prev->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->prev->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list")); } #endif oldMemList->prev->next = oldMemList->next; } if(oldMemList->next) { #if DEBUG_MEMORY if (oldMemList->next->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->next->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list (next)")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list (next)")); } #endif oldMemList->next->prev = oldMemList->prev; } else { // If the old block doesn't have a next, it must currently be fCurrentBlock fCurrentBlock = oldMemList->prev; } #if DEBUG_MEMORY if (fCurrentBlock && fCurrentBlock->magic != DEBUG_MEMORY_ALLOCD) { if (fCurrentBlock->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list (fCurrent)")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list (fCurrent)")); } #endif --objectsAllocated_; totalMemoryAllocated_ -= oldMemList->size; internal_deallocate(oldBlock); #endif } } const XMLCh *BaseMemoryManager::getPooledString(const XMLCh *src) { return fStringPool->getPooledString(src); } const XMLCh *BaseMemoryManager::getPooledString(const XMLCh *src, unsigned int length) { return fStringPool->getPooledString(src, length); } const XMLCh *BaseMemoryManager::getPooledString(const char *src) { return fStringPool->getPooledString(src); } void BaseMemoryManager::dumpStatistics() const { std::cout << "Memory statistics:" << std::endl; fStringPool->dumpStatistics(); std::cout << "\tAllocated objects: " << (unsigned int)objectsAllocated_ << std::endl; std::cout << "\tTotal Memory Allocated: " << (unsigned int)totalMemoryAllocated_ << std::endl; } /** create a collation */ Collation* BaseMemoryManager::createCollation(CollationHelper* helper) { return new (this) CollationImpl(this,helper); } /** create a resolver */ XQillaNSResolver* BaseMemoryManager::createNSResolver(DOMNode *resolverNode) { return new (this) XQillaNSResolverImpl(this, resolverNode); } /** create a store for variables */ VariableTypeStore* BaseMemoryManager::createVariableTypeStore() { return new (this) VarTypeStoreImpl(this); } /** create a ATDecimalOrDerived for the given integer */ ATDecimalOrDerived* BaseMemoryManager::createInteger(int value) { if (!fIntegerPool) #if _XERCES_VERSION >= 30000 fIntegerPool = new (this) RefHashTableOf(53, true, this); #else fIntegerPool = new (this) RefHashTableOf(53,true, new (this) HashPtr(),this); #endif ATDecimalOrDerived* itemValue=fIntegerPool->get((const void*)((size_t)value)); if(itemValue!=NULL) return itemValue; itemValue=new ATDecimalOrDerivedImpl(value); itemValue->incrementRefCount(); fIntegerPool->put((void*)((size_t)value), itemValue); return itemValue; } XQilla-2.3.4/src/framework/StringPool.cpp0000644001725400016040000001646313273140037015241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static const unsigned int initialModulus = 233; static const unsigned int lengthThreshold = 100; StringPool::StringPool(MemoryManager *mm) : _mm(mm), _bucketList(0), _modulus(initialModulus), _count(0), _hits(0), _misses(0), _toobig(0) { _bucketList = (Bucket**)_mm->allocate(_modulus * sizeof(Bucket*)); memset(_bucketList, 0, _modulus * sizeof(Bucket*)); } StringPool::~StringPool() { Bucket *bucket, *next; for(unsigned int i = 0; i < _modulus; ++i) { bucket = _bucketList[i]; while(bucket != 0) { next = bucket->next; _mm->deallocate((void*)bucket->value); _mm->deallocate(bucket); bucket = next; } } _mm->deallocate(_bucketList); } const XMLCh *StringPool::getPooledString(const XMLCh *src) { if(src == 0) return 0; if(*src == 0) return XMLUni::fgZeroLenString; // strings longer than lengthThreshold bytes are not pooled, as it is not probable they can be recycled const XMLCh* pszTmp = src + 1; while(*pszTmp) ++pszTmp; unsigned int length = (unsigned int)(pszTmp - src); if(length > lengthThreshold) { ++_toobig; return replicate(src, length); } unsigned int hashVal = hash(src, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && XPath2Utils::equals(bucket->value, src)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } const XMLCh *result = replicate(src, length); _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(result, length, hashVal, _bucketList[modHashVal]); ++_count; return result; } } static inline bool equalsN(const XMLCh *str1, const XMLCh *str2, unsigned int len2) { while(true) { if(len2 == 0) return *str1 == 0; if(*str1 != *str2) return false; ++str1; ++str2; --len2; } } const XMLCh *StringPool::getPooledString(const XMLCh *src, unsigned int length) { if(src == 0) return 0; if(length == 0) return XMLUni::fgZeroLenString; if(length > lengthThreshold) { ++_toobig; return replicate(src, length); } unsigned int hashVal = hash(src, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && equalsN(bucket->value, src, length)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } const XMLCh *result = replicate(src, length); _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(result, length, hashVal, _bucketList[modHashVal]); ++_count; return result; } } const XMLCh *StringPool::getPooledString(const char *src) { if(src == 0) return 0; if(*src == 0) return XMLUni::fgZeroLenString; XMLCh *transcoded; { XMLUTF8Transcoder t(0, 512); size_t l = XMLString::stringLen(src); const size_t needed = l * 2 + 2; // 2 chars per byte is the worst case, + '\0' transcoded = (XMLCh*)_mm->allocate(needed); AutoDeleteArray charSizes(new unsigned char[needed]); #if _XERCES_VERSION >= 30000 XMLSize_t bytesEaten = 0; t.transcodeFrom((const XMLByte*)src, l+1, transcoded, needed, bytesEaten, charSizes); #else unsigned int bytesEaten = 0; t.transcodeFrom((const XMLByte*)src, (unsigned int)l+1, transcoded, (unsigned int)needed, bytesEaten, charSizes); #endif } // strings longer than lengthThreshold bytes are not pooled, as it is not probable they can be recycled const XMLCh* pszTmp = transcoded + 1; while(*pszTmp) ++pszTmp; unsigned int length = (unsigned int)(pszTmp - transcoded); if(length > lengthThreshold) { ++_toobig; return transcoded; } unsigned int hashVal = hash(transcoded, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && XPath2Utils::equals(bucket->value, transcoded)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; _mm->deallocate(transcoded); return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(transcoded, length, hashVal, _bucketList[modHashVal]); ++_count; return transcoded; } } void StringPool::resize() { unsigned int new_modulus = (_modulus << 1) + 1; Bucket **new_bucketList = (Bucket**)_mm->allocate(new_modulus * sizeof(Bucket*)); memset(new_bucketList, 0, new_modulus * sizeof(Bucket*)); unsigned int modHashVal; Bucket *bucket, *next; for(unsigned int i = 0; i < _modulus; ++i) { bucket = _bucketList[i]; while(bucket != 0) { next = bucket->next; modHashVal = bucket->hashValue % new_modulus; bucket->next = new_bucketList[modHashVal]; new_bucketList[modHashVal] = bucket; bucket = next; } } _mm->deallocate(_bucketList); _bucketList = new_bucketList; _modulus = new_modulus; } void StringPool::dumpStatistics() const { std::cout << "\tStringPool count: " << _count << std::endl; std::cout << "\tStringPool hits: " << _hits << std::endl; std::cout << "\tStringPool misses: " << _misses << std::endl; std::cout << "\tStringPool too big: " << _toobig << std::endl; std::cout << "\tStringPool modulo: " << _modulus << std::endl; unsigned int zero=0, maxn=0; for(unsigned int i=0;i<_modulus;i++) if(_bucketList[i]==NULL) zero++; else { unsigned int n=0; const Bucket *bucket = _bucketList[i]; while(bucket) { n++; bucket = bucket->next; } if (n > maxn) maxn = n; } std::cout << "\tStringPool empty buckets: " << zero << std::endl; std::cout << "\tStringPool max buckets: " << maxn << std::endl; } XQilla-2.3.4/src/xqc/0000755001725400016040000000000013273141207011301 500000000000000XQilla-2.3.4/src/xqc/XQillaXQCDynamicContext.hpp0000644001725400016040000000527613273140037016364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCDYNAMICCONTEXT_HPP #define _XQILLAXQCDYNAMICCONTEXT_HPP #include "XQillaXQCImplementation.hpp" #include class VarEntry; class XQillaXQCDynamicContext { public: XQillaXQCDynamicContext(XQQuery *query); ~XQillaXQCDynamicContext(); void populateContext(DynamicContext *context) const; XQC_DynamicContext *getImpl() { return &impl_; } static XQillaXQCDynamicContext *get(XQC_DynamicContext *i) { return (XQillaXQCDynamicContext*)(((char*)i) - CLASS_OFFSET(XQillaXQCDynamicContext, impl_)); } static const XQillaXQCDynamicContext *get(const XQC_DynamicContext *i) { return (const XQillaXQCDynamicContext*)(((const char*)i) - CLASS_OFFSET(XQillaXQCDynamicContext, impl_)); } private: XQillaXQCDynamicContext(const XQillaXQCDynamicContext &); XQillaXQCDynamicContext &operator=(const XQillaXQCDynamicContext &); static XQC_Error set_variable(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value); static XQC_Error get_variable(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value); static XQC_Error set_context_item(XQC_DynamicContext *context, XQC_Sequence *value); static XQC_Error get_context_item(const XQC_DynamicContext *context, XQC_Sequence **value); static XQC_Error set_implicit_timezone(XQC_DynamicContext *context, int timezone); static XQC_Error get_implicit_timezone(const XQC_DynamicContext *context, int *timezone); static XQC_Error set_error_handler(XQC_DynamicContext *context, XQC_ErrorHandler *handler); static XQC_Error get_error_handler(const XQC_DynamicContext *context, XQC_ErrorHandler **handler); static void *get_interface(const XQC_DynamicContext *context, const char *name); static void free(XQC_DynamicContext *context); XQC_DynamicContext impl_; VarEntry *vars_; Item::Ptr context_; int timezone_; XQC_ErrorHandler *handler_; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCStaticContext.cpp0000644001725400016040000003070613273140037016216 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCStaticContext.hpp" #include #include #include #include #include #include using namespace std; class NSEntry { public: NSEntry(const char *p, const char *u, NSEntry *n) : prefix(p), uri(u), next(n) { } string prefix, uri; NSEntry *next; }; XQillaXQCStaticContext::XQillaXQCStaticContext() : nslist_(0), elemns_(), funcns_(UTF8(XQFunction::XMLChFunctionURI)), xp1_(XQC_XPATH2_0), constr_(XQC_PRESERVE_CONS), order_(XQC_ORDERED), empty_(XQC_EMPTY_LEAST), bound_(XQC_STRIP_SPACE), preserve_(XQC_PRESERVE_NS), inherit_(XQC_INHERIT_NS), baseuri_(), handler_(0) { memset(&impl, 0, sizeof(XQC_StaticContext)); impl.create_child_context = create_child_context; impl.declare_ns = declare_ns; impl.get_ns_by_prefix = get_ns_by_prefix; impl.set_default_element_and_type_ns = set_default_element_and_type_ns; impl.get_default_element_and_type_ns = get_default_element_and_type_ns; impl.set_default_function_ns = set_default_function_ns; impl.get_default_function_ns = get_default_function_ns; impl.set_xpath_compatib_mode = set_xpath_compatib_mode; impl.get_xpath_compatib_mode = get_xpath_compatib_mode; impl.set_construction_mode = set_construction_mode; impl.get_construction_mode = get_construction_mode; impl.set_ordering_mode = set_ordering_mode; impl.get_ordering_mode = get_ordering_mode; impl.set_default_order_empty_sequences = set_default_order_empty_sequences; impl.get_default_order_empty_sequences = get_default_order_empty_sequences; impl.set_boundary_space_policy = set_boundary_space_policy; impl.get_boundary_space_policy = get_boundary_space_policy; impl.set_copy_ns_mode = set_copy_ns_mode; impl.get_copy_ns_mode = get_copy_ns_mode; impl.set_base_uri = set_base_uri; impl.get_base_uri = get_base_uri; impl.set_error_handler = set_error_handler; impl.get_error_handler = get_error_handler; impl.get_interface = get_interface; impl.free = free; } XQillaXQCStaticContext::~XQillaXQCStaticContext() { NSEntry *tmp; while(nslist_) { tmp = nslist_; nslist_ = nslist_->next; delete tmp; } } XQC_Error XQillaXQCStaticContext::create_child_context(XQC_StaticContext *context, XQC_StaticContext **child_context) { try { XQillaXQCStaticContext *me = get(context); AutoDelete result(new XQillaXQCStaticContext); // Copy the namespace bindings NSEntry *tmp = me->nslist_; while(tmp) { declare_ns(result->getImpl(), tmp->prefix.c_str(), tmp->uri.c_str()); tmp = tmp->next; } result->elemns_ = me->elemns_; result->funcns_ = me->funcns_; result->xp1_ = me->xp1_; result->constr_ = me->constr_; result->order_ = me->order_; result->empty_ = me->empty_; result->bound_ = me->bound_; result->preserve_ = me->preserve_; result->inherit_ = me->inherit_; result->baseuri_ = me->baseuri_; *child_context = result.adopt()->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } static XercesConfiguration xercesConf; static FastXDMConfiguration fastConf; DynamicContext *XQillaXQCStaticContext::createContext(const XQC_StaticContext *context) { AutoDelete result(XQilla::createContext( (XQilla::Language)(XQilla::XQUERY | XQilla::FULLTEXT | XQilla::UPDATE | XQilla::EXTENSIONS), &xercesConf)); if(context) { const XQillaXQCStaticContext *me = get(context); XPath2MemoryManager *mm = result->getMemoryManager(); // Copy the namespace bindings NSEntry *tmp = me->nslist_; while(tmp) { result->setNamespaceBinding(mm->getPooledString(tmp->prefix.c_str()), mm->getPooledString(tmp->uri.c_str())); tmp = tmp->next; } result->setDefaultElementAndTypeNS(mm->getPooledString(me->elemns_.c_str())); result->setDefaultFuncNS(mm->getPooledString(me->funcns_.c_str())); result->setBaseURI(mm->getPooledString(me->baseuri_.c_str())); result->setXPath1CompatibilityMode(me->xp1_ == XQC_XPATH1_0); result->setConstructionMode(me->constr_ == XQC_PRESERVE_CONS ? StaticContext::CONSTRUCTION_MODE_PRESERVE : StaticContext::CONSTRUCTION_MODE_STRIP); result->setNodeSetOrdering(me->order_ == XQC_ORDERED ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); result->setDefaultFLWOROrderingMode(me->empty_ == XQC_EMPTY_LEAST ? StaticContext::FLWOR_ORDER_EMPTY_LEAST : StaticContext::FLWOR_ORDER_EMPTY_GREATEST); result->setPreserveBoundarySpace(me->bound_ == XQC_PRESERVE_SPACE); result->setPreserveNamespaces(me->preserve_ == XQC_PRESERVE_NS); result->setInheritNamespaces(me->inherit_ == XQC_INHERIT_NS); } return result.adopt(); } XQC_Error XQillaXQCStaticContext::declare_ns(XQC_StaticContext *context, const char *prefix, const char *uri) { try { XQillaXQCStaticContext *me = get(context); // Find the namespace binding if it exists NSEntry *tmp = me->nslist_; while(tmp) { if(tmp->prefix == prefix) break; tmp = tmp->next; } if(tmp) { // Set the binding tmp->uri = (uri == 0 ? "" : uri); } else { // Add a new binding me->nslist_ = new NSEntry(prefix, uri, me->nslist_); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_ns_by_prefix(XQC_StaticContext *context, const char *prefix, const char **result_ns) { try { XQillaXQCStaticContext *me = get(context); // Find the namespace binding if it exists NSEntry *tmp = me->nslist_; while(tmp) { if(tmp->prefix == prefix) { *result_ns = tmp->uri.c_str(); return XQC_NO_ERROR; } tmp = tmp->next; } *result_ns = 0; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_element_and_type_ns(XQC_StaticContext *context, const char *uri) { try { XQillaXQCStaticContext *me = get(context); me->elemns_ = uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_element_and_type_ns(XQC_StaticContext *context, const char **uri) { try { XQillaXQCStaticContext *me = get(context); *uri = me->elemns_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_function_ns(XQC_StaticContext *context, const char *uri) { try { XQillaXQCStaticContext *me = get(context); me->funcns_ = uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_function_ns(XQC_StaticContext *context, const char **uri) { try { XQillaXQCStaticContext *me = get(context); *uri = me->funcns_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode mode) { try { XQillaXQCStaticContext *me = get(context); me->xp1_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->xp1_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode mode) { try { XQillaXQCStaticContext *me = get(context); me->constr_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->constr_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode mode) { try { XQillaXQCStaticContext *me = get(context); me->order_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->order_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode mode) { try { XQillaXQCStaticContext *me = get(context); me->empty_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->empty_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode mode) { try { XQillaXQCStaticContext *me = get(context); me->bound_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->bound_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit) { try { XQillaXQCStaticContext *me = get(context); me->preserve_ = preserve; me->inherit_ = inherit; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit) { try { XQillaXQCStaticContext *me = get(context); *preserve = me->preserve_; *inherit = me->inherit_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_base_uri(XQC_StaticContext *context, const char *base_uri) { try { XQillaXQCStaticContext *me = get(context); me->baseuri_ = base_uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_base_uri(XQC_StaticContext *context, const char **base_uri) { try { XQillaXQCStaticContext *me = get(context); *base_uri = me->baseuri_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_error_handler(XQC_StaticContext *context, XQC_ErrorHandler *handler) { try { XQillaXQCStaticContext *me = get(context); me->handler_ = handler; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_error_handler(const XQC_StaticContext *context, XQC_ErrorHandler **handler) { try { const XQillaXQCStaticContext *me = get(context); *handler = me->handler_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCStaticContext::get_interface(const XQC_StaticContext *context, const char *name) { return 0; } void XQillaXQCStaticContext::free(XQC_StaticContext *context) { delete get(context); } XQilla-2.3.4/src/xqc/XQillaXQCInputStream.hpp0000644001725400016040000000752713273140037015707 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCINPUTSTREAM_HPP #define _XQILLAXQCINPUTSTREAM_HPP #include "XQillaXQCImplementation.hpp" #include #include #include #include "../config/xqilla_config.h" class CharInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : CharInputStream(const char *string) : string_(string), len_(strlen(string)), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { XercesSizeUint read = maxToRead; if(read > len_) read = len_; memcpy(toFill, string_, read); len_ -= read; pos_ += read; string_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: const char *string_; XMLSize_t len_; XercesFilePos pos_; }; class CharInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : CharInputSource(const char *string) : string_(string) { setEncoding(X("UTF-8")); } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new CharInputStream(string_); } private: const char *string_; }; class FileInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : FileInputStream(FILE *file) : file_(file), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { XercesSizeUint read = fread(toFill, 1, maxToRead, file_); pos_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: FILE *file_; XercesFilePos pos_; }; class FileInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : FileInputSource(FILE *file) : file_(file) { } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new FileInputStream(file_); } private: FILE *file_; }; class BinXQCInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : BinXQCInputStream(XQC_InputStream *stream) : stream_(stream), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { unsigned int read = stream_->read(stream_, (void *)toFill, (unsigned int)maxToRead); pos_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: XQC_InputStream *stream_; XercesFilePos pos_; }; class XQCInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : XQCInputSource(XQC_InputStream *stream) : stream_(stream) { if(stream_->encoding != 0) setEncoding(X(stream_->encoding)); } ~XQCInputSource() { stream_->free(stream_); } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new BinXQCInputStream(stream_); } private: XQC_InputStream *stream_; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCStaticContext.hpp0000644001725400016040000001037313273140037016221 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCSTATICCONTEXT_HPP #define _XQILLAXQCSTATICCONTEXT_HPP #include #include "XQillaXQCImplementation.hpp" class NSEntry; class XQillaXQCStaticContext { public: XQillaXQCStaticContext(); ~XQillaXQCStaticContext(); XQC_StaticContext *getImpl() { return &impl; } static XQillaXQCStaticContext *get(XQC_StaticContext *i) { return (XQillaXQCStaticContext*)(((char*)i) - CLASS_OFFSET(XQillaXQCStaticContext, impl)); } static const XQillaXQCStaticContext *get(const XQC_StaticContext *i) { return (const XQillaXQCStaticContext*)(((const char*)i) - CLASS_OFFSET(XQillaXQCStaticContext, impl)); } static DynamicContext *createContext(const XQC_StaticContext *context); private: XQillaXQCStaticContext(const XQillaXQCStaticContext &); XQillaXQCStaticContext &operator=(const XQillaXQCStaticContext &); static XQC_Error create_child_context(XQC_StaticContext *context, XQC_StaticContext **child_context); static XQC_Error declare_ns(XQC_StaticContext *context, const char *prefix, const char *uri); static XQC_Error get_ns_by_prefix(XQC_StaticContext *context, const char *prefix, const char **result_ns); static XQC_Error set_default_element_and_type_ns(XQC_StaticContext *context, const char *uri); static XQC_Error get_default_element_and_type_ns(XQC_StaticContext *context, const char **uri); static XQC_Error set_default_function_ns(XQC_StaticContext *context, const char *uri); static XQC_Error get_default_function_ns(XQC_StaticContext *context, const char **uri); static XQC_Error set_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode mode); static XQC_Error get_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode* mode); static XQC_Error set_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode mode); static XQC_Error get_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode* mode); static XQC_Error set_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode mode); static XQC_Error get_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode* mode); static XQC_Error set_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode mode); static XQC_Error get_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode* mode); static XQC_Error set_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode mode); static XQC_Error get_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode); static XQC_Error set_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit); static XQC_Error get_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit); static XQC_Error set_base_uri(XQC_StaticContext *context, const char *base_uri); static XQC_Error get_base_uri(XQC_StaticContext *context, const char **base_uri); static XQC_Error set_error_handler(XQC_StaticContext *context, XQC_ErrorHandler *handler); static XQC_Error get_error_handler(const XQC_StaticContext *context, XQC_ErrorHandler **handler); static void *get_interface(const XQC_StaticContext *context, const char *name); static void free(XQC_StaticContext *context); XQC_StaticContext impl; NSEntry *nslist_; std::string elemns_; std::string funcns_; XQC_XPath1Mode xp1_; XQC_ConstructionMode constr_; XQC_OrderingMode order_; XQC_OrderEmptyMode empty_; XQC_BoundarySpaceMode bound_; XQC_PreserveMode preserve_; XQC_InheritMode inherit_; std::string baseuri_; XQC_ErrorHandler *handler_; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCExpression.hpp0000644001725400016040000000352113273140037015561 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCEXPRESSION_HPP #define _XQILLAXQCEXPRESSION_HPP #include "XQillaXQCImplementation.hpp" class XQQuery; class XQillaXQCExpression { public: XQillaXQCExpression(XQQuery *query); ~XQillaXQCExpression(); XQC_Expression *getImpl() { return &impl_; } static XQillaXQCExpression *get(XQC_Expression *i) { return (XQillaXQCExpression*)(((char*)i) - CLASS_OFFSET(XQillaXQCExpression, impl_)); } static const XQillaXQCExpression *get(const XQC_Expression *i) { return (const XQillaXQCExpression*)(((const char*)i) - CLASS_OFFSET(XQillaXQCExpression, impl_)); } private: XQillaXQCExpression(const XQillaXQCExpression &); XQillaXQCExpression &operator=(const XQillaXQCExpression &); static XQC_Error create_context(const XQC_Expression *expression, XQC_DynamicContext **context); static XQC_Error execute(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence); static void *get_interface(const XQC_Expression *expression, const char *name); static void free(XQC_Expression *expression); XQC_Expression impl_; XQQuery *query_; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCImplementation.hpp0000644001725400016040000000765113273140037016417 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCIMPLEMENTATION_HPP #define _XQILLAXQCIMPLEMENTATION_HPP #include #include #include #if defined(_MSC_VER) #include #define ssize_t SSIZE_T #endif #define CLASS_OFFSET(class, member) (((ssize_t)&(((class*)1000)->member)) - 1000) class XQException; class XQillaXQCImplementation { public: XQillaXQCImplementation(); ~XQillaXQCImplementation(); XQC_Implementation *getImpl() { return &impl; } static XQillaXQCImplementation *get(XQC_Implementation *i) { return (XQillaXQCImplementation *)(((char*)i) - CLASS_OFFSET(XQillaXQCImplementation, impl)); } static void reportError(XQC_ErrorHandler *err, XQC_Error code, const XQException &ex); private: XQillaXQCImplementation(const XQillaXQCImplementation &); XQillaXQCImplementation &operator=(const XQillaXQCImplementation &); static XQC_Error create_context(XQC_Implementation *implementation, XQC_StaticContext **context); static XQC_Error prepare(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error prepare_file(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error prepare_stream(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error parse_document(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence); static XQC_Error parse_document_file(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence); static XQC_Error parse_document_stream(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence); static XQC_Error create_empty_sequence(XQC_Implementation *implementation, XQC_Sequence **sequence); static XQC_Error create_singleton_sequence(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence); static XQC_Error create_integer_sequence(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence); static XQC_Error create_double_sequence(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence); static XQC_Error create_string_sequence(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence); static void *get_interface(const XQC_Implementation *implementation, const char *name); static void free(XQC_Implementation *implementation); XQilla xqilla; XQC_Implementation impl; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCSequence.hpp0000644001725400016040000000502513273140037015173 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCSEQUENCE_HPP #define _XQILLAXQCSEQUENCE_HPP #include "XQillaXQCImplementation.hpp" #include class DynamicContext; class XQillaXQCSequence { public: XQillaXQCSequence(const Result &result, DynamicContext *context, XQC_ErrorHandler *err = 0); ~XQillaXQCSequence(); Result &getResult() { return result_; } DynamicContext *getContext() { return context_; } Item::Ptr &getItem() { return item_; } XQC_Sequence *getImpl() { return &impl_; } static XQillaXQCSequence *get(XQC_Sequence *i) { return (XQillaXQCSequence*)(((char*)i) - CLASS_OFFSET(XQillaXQCSequence, impl_)); } static const XQillaXQCSequence *get(const XQC_Sequence *i) { return (const XQillaXQCSequence*)(((const char*)i) - CLASS_OFFSET(XQillaXQCSequence, impl_)); } private: XQillaXQCSequence(const XQillaXQCSequence &); XQillaXQCSequence &operator=(const XQillaXQCSequence &); static XQC_Error next(XQC_Sequence *sequence); static XQC_Error item_type(const XQC_Sequence *sequence, XQC_ItemType *type); static XQC_Error type_name(const XQC_Sequence *sequence, const char **uri, const char **name); static XQC_Error string_value(const XQC_Sequence *sequence, const char **value); static XQC_Error integer_value(const XQC_Sequence *sequence, int *value); static XQC_Error double_value(const XQC_Sequence *sequence, double *value); static XQC_Error node_name(const XQC_Sequence *sequence, const char **uri, const char **name); static void *get_interface(const XQC_Sequence *sequence, const char *name); static void free(XQC_Sequence *sequence); XQC_Sequence impl_; Result result_; DynamicContext *context_; Item::Ptr item_; XQC_ErrorHandler *err_; mutable std::string typeURI_, typeName_, stringValue_, nodeURI_, nodeName_; }; #endif XQilla-2.3.4/src/xqc/XQillaXQCDynamicContext.cpp0000644001725400016040000001546113273140037016354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCDynamicContext.hpp" #include "XQillaXQCSequence.hpp" #include #include #include #include #include #include "../utils/DateUtils.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; class VarEntry { public: VarEntry(const char *u, const char *n, XQC_Sequence *v, VarEntry *nxt) : uri(u), name(n), value(v), next(nxt) { XQillaXQCSequence *xseq = XQillaXQCSequence::get(v); seq = xseq->getResult()->toSequence(xseq->getContext()); } ~VarEntry() { value->free(value); } void setValue(XQC_Sequence *v) { value->free(value); value = v; } string uri, name; XQC_Sequence *value; Sequence seq; VarEntry *next; }; XQillaXQCDynamicContext::XQillaXQCDynamicContext(XQQuery *query) : vars_(0), context_(0), // Convert from seconds based to minutes based timezone_(ContextUtils::getTimezone() / DateUtils::g_secondsPerMinute), handler_(0) { memset(&impl_, 0, sizeof(XQC_DynamicContext)); impl_.set_variable = set_variable; impl_.get_variable = get_variable; impl_.set_context_item = set_context_item; impl_.get_context_item = get_context_item; impl_.set_implicit_timezone = set_implicit_timezone; impl_.get_implicit_timezone = get_implicit_timezone; impl_.set_error_handler = set_error_handler; impl_.get_error_handler = get_error_handler; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCDynamicContext::~XQillaXQCDynamicContext() { VarEntry *tmp; while(vars_) { tmp = vars_; vars_ = vars_->next; delete tmp; } } void XQillaXQCDynamicContext::populateContext(DynamicContext *context) const { VarEntry *var = vars_; while(var) { if(var->uri == "") { context->setExternalVariable(X(var->name.c_str()), var->seq); } else { context->setExternalVariable(X(var->uri.c_str()), X(var->name.c_str()), var->seq); } var = var->next; } if(context_.notNull()) { context->setContextItem(context_); context->setContextPosition(1); context->setContextSize(1); } context->setImplicitTimezone(context->getItemFactory()-> createDayTimeDuration(timezone_ * DateUtils::g_secondsPerMinute, context)); } XQC_Error XQillaXQCDynamicContext::set_variable(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value) { try { XQillaXQCDynamicContext *me = get(context); // Find the variable binding if it exists VarEntry **var = &me->vars_; while(*var) { if((*var)->name == name && (*var)->uri == uri) break; var = &(*var)->next; } if(*var) { if(value) { // Set the binding (*var)->setValue(value); } else { // Remove the binding VarEntry *tmp = *var; *var = (*var)->next; delete tmp; } } else if(value) { // Add a new binding me->vars_ = new VarEntry(uri, name, value, me->vars_); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_variable(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value) { try { const XQillaXQCDynamicContext *me = get(context); // Find the variable binding if it exists VarEntry *var = me->vars_; while(var) { if(var->name == name && var->uri == uri) break; var = var->next; } if(var) { *value = (new XQillaXQCSequence(var->seq, 0))->getImpl(); } else { *value = 0; } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_context_item(XQC_DynamicContext *context, XQC_Sequence *value) { try { XQillaXQCDynamicContext *me = get(context); if(value == 0) { me->context_ = 0; } else { XQC_ItemType type; if(value->item_type(value, &type) == XQC_NO_CURRENT_ITEM) return XQC_NO_CURRENT_ITEM; me->context_ = XQillaXQCSequence::get(value)->getItem(); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_context_item(const XQC_DynamicContext *context, XQC_Sequence **value) { try { const XQillaXQCDynamicContext *me = get(context); if(me->context_.isNull()) { *value = 0; } else { *value = (new XQillaXQCSequence(me->context_, 0))->getImpl(); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_implicit_timezone(XQC_DynamicContext *context, int timezone) { try { XQillaXQCDynamicContext *me = get(context); if(abs(timezone) > 14 * 60) { return XQC_INTERNAL_ERROR; } me->timezone_ = timezone; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_implicit_timezone(const XQC_DynamicContext *context, int *timezone) { try { const XQillaXQCDynamicContext *me = get(context); *timezone = me->timezone_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_error_handler(XQC_DynamicContext *context, XQC_ErrorHandler *handler) { try { XQillaXQCDynamicContext *me = get(context); me->handler_ = handler; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_error_handler(const XQC_DynamicContext *context, XQC_ErrorHandler **handler) { try { const XQillaXQCDynamicContext *me = get(context); *handler = me->handler_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCDynamicContext::get_interface(const XQC_DynamicContext *context, const char *name) { return 0; } void XQillaXQCDynamicContext::free(XQC_DynamicContext *context) { delete get(context); } XQilla-2.3.4/src/xqc/XQillaXQCExpression.cpp0000644001725400016040000000535113273140037015557 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCExpression.hpp" #include "XQillaXQCDynamicContext.hpp" #include "XQillaXQCSequence.hpp" #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaXQCExpression::XQillaXQCExpression(XQQuery *query) : query_(query) { memset(&impl_, 0, sizeof(XQC_Expression)); impl_.create_context = create_context; impl_.execute = execute; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCExpression::~XQillaXQCExpression() { delete query_; } XQC_Error XQillaXQCExpression::create_context(const XQC_Expression *expression, XQC_DynamicContext **context) { try { const XQillaXQCExpression *me = get(expression); *context = (new XQillaXQCDynamicContext(me->query_))->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCExpression::execute(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence) { XQC_ErrorHandler *err = 0; if(context) context->get_error_handler(context, &err); try { const XQillaXQCExpression *me = get(expression); AutoDelete dcontext(me->query_->createDynamicContext()); if(context) { XQillaXQCDynamicContext::get(context)->populateContext(dcontext); } *sequence = (new XQillaXQCSequence(me->query_->execute(dcontext), dcontext.adopt(), err))->getImpl(); return XQC_NO_ERROR; } catch(XPath2TypeMatchException &e) { XQillaXQCImplementation::reportError(err, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(XQException &e) { XQillaXQCImplementation::reportError(err, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCExpression::get_interface(const XQC_Expression *expression, const char *name) { return 0; } void XQillaXQCExpression::free(XQC_Expression *expression) { delete get(expression); } XQilla-2.3.4/src/xqc/XQillaXQCSequence.cpp0000644001725400016040000001705313273140037015172 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCSequence.hpp" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQillaXQCSequence::XQillaXQCSequence(const Result &result, DynamicContext *context, XQC_ErrorHandler *err) : result_(result), context_(context), item_(), err_(err) { memset(&impl_, 0, sizeof(XQC_Sequence)); impl_.next = next; impl_.item_type = item_type; impl_.type_name = type_name; impl_.string_value = string_value; impl_.integer_value = integer_value; impl_.double_value = double_value; impl_.node_name = node_name; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCSequence::~XQillaXQCSequence() { result_ = 0; item_ = 0; delete context_; } XQC_Error XQillaXQCSequence::next(XQC_Sequence *sequence) { XQillaXQCSequence *me = get(sequence); try { me->item_ = me->result_->next(me->context_); if(me->item_.isNull()) return XQC_END_OF_SEQUENCE; return XQC_NO_ERROR; } catch(XPath2TypeMatchException &e) { XQillaXQCImplementation::reportError(me->err_, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(XQException &e) { XQillaXQCImplementation::reportError(me->err_, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_ItemType typeOfItem(const Item::Ptr &item) { if(item.isNull()) return XQC_EMPTY_TYPE; if(item->isNode()) { const XMLCh *nodekind = ((const Node*)item.get())->dmNodeKind(); if(nodekind == Node::document_string) { return XQC_DOCUMENT_TYPE; } else if(nodekind == Node::element_string) { return XQC_ELEMENT_TYPE; } else if(nodekind == Node::attribute_string) { return XQC_ATTRIBUTE_TYPE; } else if(nodekind == Node::text_string) { return XQC_TEXT_TYPE; } else if(nodekind == Node::processing_instruction_string) { return XQC_PROCESSING_INSTRUCTION_TYPE; } else if(nodekind == Node::comment_string) { return XQC_COMMENT_TYPE; } else if(nodekind == Node::namespace_string) { return XQC_NAMESPACE_TYPE; } } else if(item->isAtomicValue()) { switch(((AnyAtomicType*)item.get())->getPrimitiveTypeIndex()) { case AnyAtomicType::ANY_SIMPLE_TYPE: return XQC_ANY_SIMPLE_TYPE; case AnyAtomicType::ANY_URI: return XQC_ANY_URI_TYPE; case AnyAtomicType::BASE_64_BINARY: return XQC_BASE_64_BINARY_TYPE; case AnyAtomicType::BOOLEAN: return XQC_BOOLEAN_TYPE; case AnyAtomicType::DATE: return XQC_DATE_TYPE; case AnyAtomicType::DATE_TIME: return XQC_DATE_TIME_TYPE; case AnyAtomicType::DAY_TIME_DURATION: return XQC_DAY_TIME_DURATION_TYPE; case AnyAtomicType::DECIMAL: return XQC_DECIMAL_TYPE; case AnyAtomicType::DOUBLE: return XQC_DOUBLE_TYPE; case AnyAtomicType::DURATION: return XQC_DURATION_TYPE; case AnyAtomicType::FLOAT: return XQC_FLOAT_TYPE; case AnyAtomicType::G_DAY: return XQC_G_DAY_TYPE; case AnyAtomicType::G_MONTH: return XQC_G_MONTH_TYPE; case AnyAtomicType::G_MONTH_DAY: return XQC_G_MONTH_DAY_TYPE; case AnyAtomicType::G_YEAR: return XQC_G_YEAR_TYPE; case AnyAtomicType::G_YEAR_MONTH: return XQC_G_YEAR_MONTH_TYPE; case AnyAtomicType::HEX_BINARY: return XQC_HEX_BINARY_TYPE; case AnyAtomicType::NOTATION: return XQC_NOTATION_TYPE; case AnyAtomicType::QNAME: return XQC_QNAME_TYPE; case AnyAtomicType::STRING: return XQC_STRING_TYPE; case AnyAtomicType::TIME: return XQC_TIME_TYPE; case AnyAtomicType::UNTYPED_ATOMIC: return XQC_UNTYPED_ATOMIC_TYPE; case AnyAtomicType::YEAR_MONTH_DURATION: return XQC_YEAR_MONTH_DURATION_TYPE; case AnyAtomicType::NumAtomicObjectTypes: // Shouldn't happen break; } } return XQC_EMPTY_TYPE; } XQC_Error XQillaXQCSequence::item_type(const XQC_Sequence *sequence, XQC_ItemType *type) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *type = typeOfItem(me->item_); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::type_name(const XQC_Sequence *sequence, const char **uri, const char **name) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } me->typeURI_ = UTF8(me->item_->getTypeURI()); *uri = me->typeURI_.c_str(); me->typeName_ = UTF8(me->item_->getTypeName()); *name = me->typeName_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::string_value(const XQC_Sequence *sequence, const char **value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } me->stringValue_ = UTF8(FunctionString::string(me->item_, me->context_)); *value = me->stringValue_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::integer_value(const XQC_Sequence *sequence, int *value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *value = FunctionNumber::number(me->item_, me->context_, 0)->asInt(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::double_value(const XQC_Sequence *sequence, double *value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *value = FunctionNumber::number(me->item_, me->context_, 0)->asDouble(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::node_name(const XQC_Sequence *sequence, const char **uri, const char **name) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } if(!me->item_->isNode()) { return XQC_NOT_NODE; } ATQNameOrDerived::Ptr qname = ((Node*)me->item_.get())->dmNodeName(me->context_); me->nodeURI_ = UTF8(qname->getURI()); *uri = me->nodeURI_.c_str(); me->nodeName_ = UTF8(qname->getName()); *name = me->nodeName_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCSequence::get_interface(const XQC_Sequence *sequence, const char *name) { return 0; } void XQillaXQCSequence::free(XQC_Sequence *sequence) { delete get(sequence); } XQilla-2.3.4/src/xqc/XQillaXQCImplementation.cpp0000644001725400016040000003515213273140037016407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCImplementation.hpp" #include "XQillaXQCStaticContext.hpp" #include "XQillaXQCExpression.hpp" #include "XQillaXQCSequence.hpp" #include "XQillaXQCInputStream.hpp" #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaXQCImplementation::XQillaXQCImplementation() { memset(&impl, 0, sizeof(XQC_Implementation)); impl.create_context = create_context; impl.prepare = prepare; impl.prepare_file = prepare_file; impl.prepare_stream = prepare_stream; impl.parse_document = parse_document; impl.parse_document_file = parse_document_file; impl.parse_document_stream = parse_document_stream; impl.create_empty_sequence = create_empty_sequence; impl.create_singleton_sequence = create_singleton_sequence; impl.create_integer_sequence = create_integer_sequence; impl.create_double_sequence = create_double_sequence; impl.create_string_sequence = create_string_sequence; impl.get_interface = get_interface; impl.free = free; } XQillaXQCImplementation::~XQillaXQCImplementation() { } XQC_Error XQillaXQCImplementation::create_context(XQC_Implementation *implementation, XQC_StaticContext **context) { try { *context = (new XQillaXQCStaticContext())->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } static std::string regexFind(const char *regex, const XMLCh *str, int groupNo = 1) { try { RegularExpression re(regex, "mH"); #ifdef HAVE_ALLMATCHES RefVectorOf matches(10, true); re.allMatches(str, 0, XMLString::stringLen(str), &matches); if(matches.size() >= 1) { Match *match = matches.elementAt(0); if(match->getNoGroups() >= groupNo && match->getStartPos(groupNo) != -1) return std::string(UTF8(str)).substr(match->getStartPos(groupNo), match->getEndPos(groupNo) - match->getStartPos(groupNo)); } #else Match match; if(re.matches(str, 0, XMLString::stringLen(str), &match)) { if(match.getNoGroups() >= groupNo && match.getStartPos(groupNo) != -1) return std::string(UTF8(str)).substr(match.getStartPos(groupNo), match.getEndPos(groupNo) - match.getStartPos(groupNo)); } #endif } catch(XMLException &ex) { printf("Regex exception: %s\n", UTF8(ex.getMessage())); } return ""; } void XQillaXQCImplementation::reportError(XQC_ErrorHandler *err, XQC_Error code, const XQException &ex) { if(err == 0) return; std::string qname = regexFind("\\[err:(\\c+)\\]", ex.getError()); if(qname == "") { err->error(err, code, 0, 0, UTF8(ex.getError()), 0); } else { err->error(err, code, "http://www.w3.org/2005/xqt-errors", qname.c_str(), UTF8(ex.getError()), 0); } } static void reportErrorStatic(const XQC_StaticContext *context, XQC_Error code, const XQException &ex) { if(context == 0) return; XQC_ErrorHandler *err = 0; context->get_error_handler(context, &err); XQillaXQCImplementation::reportError(err, code, ex); } XQC_Error XQillaXQCImplementation::prepare(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression) { try { CharInputSource is(string); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } // TBD Clean up exception classes - jpcs catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::prepare_file(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression) { try { FileInputSource is(file); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } catch(ContextException &e) { return XQC_UNRECOGNIZED_ENCODING; } catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::prepare_stream(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression) { try { XQCInputSource is(stream); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } catch(ContextException &e) { return XQC_UNRECOGNIZED_ENCODING; } catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::parse_document(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); CharInputSource is(string); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::parse_document_file(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); FileInputSource is(file); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::parse_document_stream(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); XQCInputSource is(stream); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_empty_sequence(XQC_Implementation *implementation, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); *sequence = (new XQillaXQCSequence(Sequence(), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } AnyAtomicType::AtomicObjectType xqcToXQillaType(XQC_ItemType type) { switch(type) { case XQC_EMPTY_TYPE: case XQC_DOCUMENT_TYPE: case XQC_ELEMENT_TYPE: case XQC_ATTRIBUTE_TYPE: case XQC_TEXT_TYPE: case XQC_PROCESSING_INSTRUCTION_TYPE: case XQC_COMMENT_TYPE: case XQC_NAMESPACE_TYPE: break; case XQC_ANY_SIMPLE_TYPE: return AnyAtomicType::ANY_SIMPLE_TYPE; case XQC_ANY_URI_TYPE: return AnyAtomicType::ANY_URI; case XQC_BASE_64_BINARY_TYPE: return AnyAtomicType::BASE_64_BINARY; case XQC_BOOLEAN_TYPE: return AnyAtomicType::BOOLEAN; case XQC_DATE_TYPE: return AnyAtomicType::DATE; case XQC_DATE_TIME_TYPE: return AnyAtomicType::DATE_TIME; case XQC_DAY_TIME_DURATION_TYPE: return AnyAtomicType::DAY_TIME_DURATION; case XQC_DECIMAL_TYPE: return AnyAtomicType::DECIMAL; case XQC_DOUBLE_TYPE: return AnyAtomicType::DOUBLE; case XQC_DURATION_TYPE: return AnyAtomicType::DURATION; case XQC_FLOAT_TYPE: return AnyAtomicType::FLOAT; case XQC_G_DAY_TYPE: return AnyAtomicType::G_DAY; case XQC_G_MONTH_TYPE: return AnyAtomicType::G_MONTH; case XQC_G_MONTH_DAY_TYPE: return AnyAtomicType::G_MONTH_DAY; case XQC_G_YEAR_TYPE: return AnyAtomicType::G_YEAR; case XQC_G_YEAR_MONTH_TYPE: return AnyAtomicType::G_YEAR_MONTH; case XQC_HEX_BINARY_TYPE: return AnyAtomicType::HEX_BINARY; case XQC_NOTATION_TYPE: return AnyAtomicType::NOTATION; case XQC_QNAME_TYPE: return AnyAtomicType::QNAME; case XQC_STRING_TYPE: return AnyAtomicType::STRING; case XQC_TIME_TYPE: return AnyAtomicType::TIME; case XQC_UNTYPED_ATOMIC_TYPE: return AnyAtomicType::UNTYPED_ATOMIC; case XQC_YEAR_MONTH_DURATION_TYPE: return AnyAtomicType::YEAR_MONTH_DURATION; } return (AnyAtomicType::AtomicObjectType)-1; } Item::Ptr createItem(XQC_ItemType type, const char *value, DynamicContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); AnyAtomicType::AtomicObjectType xqtype = xqcToXQillaType(type); if(xqtype == (AnyAtomicType::AtomicObjectType)-1) return 0; return context->getItemFactory()-> createDerivedFromAtomicType(xqtype, mm->getPooledString(value), context); } XQC_Error XQillaXQCImplementation::create_singleton_sequence(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); Item::Ptr item = createItem(type, value, context); if(item.isNull()) return XQC_INVALID_ARGUMENT; *sequence = (new XQillaXQCSequence(item, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_integer_sequence(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createInteger(values[i], context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_double_sequence(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createDouble(values[i], context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_string_sequence(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); XPath2MemoryManager *mm = context->getMemoryManager(); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createString(mm->getPooledString(values[i]), context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } void *XQillaXQCImplementation::get_interface(const XQC_Implementation *implementation, const char *name) { return 0; } void XQillaXQCImplementation::free(XQC_Implementation *implementation) { delete get(implementation); } extern "C" { XQC_Implementation *createXQillaXQCImplementation(int version) { try { if(version != 0 && version != XQC_VERSION_NUMBER) return 0; return (new XQillaXQCImplementation())->getImpl(); } catch(...) { return 0; } } } XQilla-2.3.4/src/update/0000755001725400016040000000000013273141207011770 500000000000000XQilla-2.3.4/src/update/UDelete.cpp0000644001725400016040000000510013273140037013737 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include UDelete::UDelete(ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UDELETE, memMgr), expr_(expr) { } static const XMLCh err_XUTY0007[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '7', 0 }; ASTNode *UDelete::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm, err_XUTY0007); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UDelete::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UDelete::staticTyping"), X("It is a static error for the target expression of a delete expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UDelete::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UDelete::createUpdateList(DynamicContext *context) const { PendingUpdateList pul; Result targets = expr_->createResult(context); Item::Ptr item; while((item = targets->next(context)).notNull()) { pul.addUpdate(PendingUpdate(PendingUpdate::PUDELETE, (Node*)item.get(), this)); } return pul; } XQilla-2.3.4/src/update/URename.cpp0000644001725400016040000001541713273140037013760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; URename::URename(ASTNode *target, ASTNode *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(URENAME, memMgr), target_(target), name_(name) { } static const XMLCh err_XUTY0012[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '1', '2', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* URename::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0012); target_->setLocationInfo(this); target_ = target_->staticResolution(context); name_ = new (mm) XQNameExpression(name_, mm); name_->setLocationInfo(this); name_ = name_->staticResolution(context); return this; } ASTNode *URename::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("URename::staticTyping"), X("It is a static error for the target expression of a rename expression " "to be an updating expression [err:XUST0001]")); } if(!target_->getStaticAnalysis().getStaticType(). containsType(StaticType::ELEMENT_TYPE|StaticType::ATTRIBUTE_TYPE|StaticType::PI_TYPE)) { XQThrow(XPath2TypeMatchException,X("URename::staticTyping"), X("It is a type error for the target expression of a rename expression not to be a single element, " "attribute or processing instruction [err:XUTY0012]")); } _src.add(name_->getStaticAnalysis()); if(name_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("URename::staticTyping"), X("It is a static error for the name expression of a rename expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result URename::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList URename::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::attribute_string && node->dmNodeKind() != Node::processing_instruction_string) XQThrow(XPath2TypeMatchException,X("URename::createUpdateList"), X("It is a type error for the target expression of a rename expression not to be a single element, " "attribute or processing instruction [err:XUTY0012]")); ATQNameOrDerived::Ptr qname = (ATQNameOrDerived*)name_->createResult(context)->next(context).get(); // 3. The following checks are performed for error conditions: // a. If $target is an element node, the "namespaces" property of $target must not include any namespace binding that conflicts // with the implied namespace binding of $QName [err:XUDY0023]. if(node->dmNodeKind() == Node::element_string) { if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the rename expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the target element [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } } // b. If $target is an attribute node that has a parent, the "namespaces" property of parent($target) must not include any // namespace binding that conflicts with the implied namespace binding of $QName [err:XUDY0023]. else if(node->dmNodeKind() == Node::attribute_string) { Node::Ptr parentNode = node->dmParent(context); if(parentNode.notNull() && !UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the rename expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } } // c. If $target is processing instruction node, $QName must not include a non-empty namespace prefix. [err:XUDY0025]. else if(node->dmNodeKind() == Node::processing_instruction_string && !XPath2Utils::equals(qname->getPrefix(), XMLUni::fgZeroLenString)) XQThrow(XPath2TypeMatchException,X("URename::createUpdateList"), X("The target of a rename expression is a processing instruction node, and the new name " "expression returned a QName with a non-empty namespace prefix [err:XUDY0025]")); return PendingUpdate(PendingUpdate::RENAME, node, qname, this); } XQilla-2.3.4/src/update/UApplyUpdates.cpp0000644001725400016040000000375713273140037015170 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include UApplyUpdates::UApplyUpdates(ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UAPPLY_UPDATES, memMgr), expr_(expr), valMode_(DocumentCache::VALIDATION_SKIP) { } UApplyUpdates::UApplyUpdates(ASTNode *expr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* memMgr) : ASTNodeImpl(UAPPLY_UPDATES, memMgr), expr_(expr), valMode_(valMode) { } ASTNode* UApplyUpdates::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); valMode_ = context->getRevalidationMode(); return this; } ASTNode *UApplyUpdates::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(!expr_->getStaticAnalysis().isUpdating()) { return expr_; } _src.updating(false); return this; } Result UApplyUpdates::createResult(DynamicContext* context, int flags) const { AutoDelete ufactory(context->createUpdateFactory()); ufactory->applyUpdates(getExpression()->createUpdateList(context), context, getRevalidationMode()); return 0; } XQilla-2.3.4/src/update/UReplaceValueOf.cpp0000644001725400016040000001403113273140037015375 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif UReplaceValueOf::UReplaceValueOf(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UREPLACE_VALUE_OF, memMgr), target_(target), expr_(expr) { } static const XMLCh err_XUTY0008[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '8', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UReplaceValueOf::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0008); target_->setLocationInfo(this); target_ = target_->staticResolution(context); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UReplaceValueOf::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplaceValueOf::staticTyping"), X("It is a static error for the target expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplaceValueOf::staticTyping"), X("It is a static error for the with expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UReplaceValueOf::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UReplaceValueOf::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UReplaceValueOf::createUpdateList"), X("The target expression of a replace expression does not return a single " "node that is not a document node [err:XUTY0008]")); XMLBuffer buf; XQDOMConstructor::getStringValue(expr_, buf, context); // If $target is a comment node, and $string contains two adjacent hyphens or ends with a hyphen, a dynamic error is raised [err:XQDY0072]. if(node->dmNodeKind() == Node::comment_string) { bool foundOne = false; for(const XMLCh *str = buf.getRawBuffer(); *str; ++str) { if(*str == '-') { if(foundOne) { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a comment node whose content contains two adjacent hyphens [err:XQDY0072]")); } else foundOne = true; } else { foundOne = false; } } if(foundOne) { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a comment node whose content ends with a hyphen [err:XQDY0072]")); } } // If $target is a processing instruction node, and $string contains the substring "?>", a dynamic error is raised [err:XQDY0026]. else if(node->dmNodeKind() == Node::processing_instruction_string) { bool foundQuestion = false; for(const XMLCh *str = buf.getRawBuffer(); *str; ++str) { if(*str == '?') { foundQuestion = true; } else { if(foundQuestion && *str == '>') { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a processing instruction node whose content includes the string \"?>\" [err:XQDY0026]")); } foundQuestion = false; } } } Item::Ptr value = context->getItemFactory()->createString(buf.getRawBuffer(), context); if(node->dmNodeKind() == Node::element_string) { return PendingUpdate(PendingUpdate::REPLACE_ELEMENT_CONTENT, node, value, this); } else { return PendingUpdate(PendingUpdate::REPLACE_VALUE, node, value, this); } } XQilla-2.3.4/src/update/UInsertAsFirst.cpp0000644001725400016040000001427413273140037015311 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAsFirst::UInsertAsFirst(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AS_FIRST, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAsFirst::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAsFirst::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsFirst::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsFirst::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAsFirst::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertAsFirst::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAsFirst::createUpdateList"), X("It is a type error for the target expression of an insert as first expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAsFirst::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert as first expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert as first expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer()); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO_AS_FIRST, node, clist, this)); } return result; } XQilla-2.3.4/src/update/FunctionPut.cpp0000644001725400016040000000742613273140037014703 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionPut::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionPut::minArgs = 1; const unsigned int FunctionPut::maxArgs = 2; /** * fn:put($node as node(), $uri as xs:string?) as empty-sequence() */ FunctionPut::FunctionPut(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "updating ($node as node(), $uri as xs:string?) as empty-sequence()", args, memMgr), baseURI_(0) { } FunctionPut::FunctionPut(const XMLCh *baseURI, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "updating ($node as node(), $uri as xs:string?) as empty-sequence()", args, memMgr), baseURI_(baseURI) { } ASTNode* FunctionPut::staticResolution(StaticContext *context) { baseURI_ = context->getBaseURI(); resolveArguments(context); return this; } ASTNode *FunctionPut::staticTypingImpl(StaticContext *context) { _src.clear(); _src.forceNoFolding(true); _src.updating(true); calculateSRCForArguments(context); return this; } PendingUpdateList FunctionPut::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)getParamNumber(1,context)->next(context).get(); if(node->dmNodeKind() != Node::document_string && node->dmNodeKind() != Node::element_string) { XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The argument to fn:put is not a document or element node [err:FOUP0001]")); } const XMLCh *uriArg = 0; if(getNumArgs() == 2) { Item::Ptr uri = getParamNumber(2,context)->next(context); if(uri.notNull()) uriArg = uri->asString(context); } else { Sequence seq = node->dmDocumentURI(context); if(!seq.isEmpty()) uriArg = seq.item(0)->asString(context); } if(uriArg == 0) XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The uri argument to fn:put is empty [err:FOUP0002]")); if(!baseURI_) XQThrow(FunctionException, X("FunctionPut::createSequence"), X("Base uri undefined in the static context [err:FONS0005]")); Item::Ptr anyURI; try { XMLUri base(baseURI_); XMLUri resolved(&base, uriArg); anyURI = context->getItemFactory()->createAnyURI(resolved.getUriText(), context); } catch(XQException &e) { XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The argument to fn:put is not a valid xs:anyURI [err:FOUP0002]")); } return PendingUpdate(PendingUpdate::PUT, node, anyURI, this); } XQilla-2.3.4/src/update/UInsertAfter.cpp0000644001725400016040000001512713273140037014775 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAfter::UInsertAfter(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AFTER, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0006[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '6', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAfter::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0006); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAfter::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAfter::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAfter::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAfter::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertAfter::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); Node::Ptr parentNode = node->dmParent(context); if(node->dmNodeKind() == Node::document_string || node->dmNodeKind() == Node::attribute_string || node->dmNodeKind() == Node::namespace_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("The target node of an insert after expression must be a single element, text, comment, or processing " "instruction node [err:XUTY0006]")); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("It is a dynamic error if the target expression of an insert after expression does " "not have a parent [err:XUDY0029]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAfter::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert after expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of parent($target) [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert after expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow3(DynamicErrorException, X("UInsertAfter::createUpdateList"), buf.getRawBuffer(), this); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 4. If $alist is not empty and before or after is specified, the following checks are performed: // a. parent($target) must be an element node [err:XUTY0022]. if(node->dmParent(context)->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node before or after a child of a document node [err:XUDY0030]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node->dmParent(context), alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_AFTER, node, clist, this)); } return result; } XQilla-2.3.4/src/update/UInsertBefore.cpp0000644001725400016040000001512513273140037015134 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertBefore::UInsertBefore(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_BEFORE, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0006[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '6', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertBefore::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0006); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertBefore::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertBefore::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertBefore::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertBefore::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertBefore::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); Node::Ptr parentNode = node->dmParent(context); if(node->dmNodeKind() == Node::document_string || node->dmNodeKind() == Node::attribute_string || node->dmNodeKind() == Node::namespace_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("The target node of an insert before expression must be a single element, text, comment, or processing " "instruction node [err:XUTY0006]")); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("It is a dynamic error if the target expression of an insert before expression does " "not have a parent [err:XUDY0029]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertBefore::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert before expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of parent($target) [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert before expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertBefore::createUpdateList"), buf.getRawBuffer()); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 4. If $alist is not empty and before or after is specified, the following checks are performed: // a. parent($target) must be an element node [err:XUTY0022]. if(parentNode->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertBefore::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node before or after a child of a document node [err:XUDY0030]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node->dmParent(context), alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_BEFORE, node, clist, this)); } return result; } XQilla-2.3.4/src/update/UInsertInto.cpp0000644001725400016040000001421113273140037014636 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertInto::UInsertInto(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_INTO, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertInto::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertInto::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertInto::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertInto::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertInto::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertInto::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error for the target expression of an insert into expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertInto::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert into expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert into expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow3(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer(), this); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO, node, clist, this)); } return result; } XQilla-2.3.4/src/update/UTransform.cpp0000644001725400016040000002066013273140037014520 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include CopyBinding::CopyBinding(XPath2MemoryManager* memMgr, const XMLCh* variable, ASTNode* allValues) : qname_(memMgr->getPooledString(variable)), uri_(0), name_(0), src_(memMgr), expr_(allValues) { } CopyBinding::CopyBinding(XPath2MemoryManager* memMgr, const CopyBinding &o) : qname_(o.qname_), uri_(o.uri_), name_(o.name_), src_(o.src_, memMgr), expr_(o.expr_) { } //////////////////////////////////////////////////////////////////////////////////////////////////// UTransform::UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, XPath2MemoryManager* mm) : ASTNodeImpl(UTRANSFORM, mm), bindings_(bindings), modify_(modifyExpr), return_(returnExpr), valMode_(DocumentCache::VALIDATION_SKIP) { } UTransform::UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* mm) : ASTNodeImpl(UTRANSFORM, mm), bindings_(bindings), modify_(modifyExpr), return_(returnExpr), valMode_(valMode) { } static const XMLCh err_XUTY0013[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '1', '3', 0 }; ASTNode *UTransform::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfCopyBinding::iterator end = bindings_->end(); for(VectorOfCopyBinding::iterator it0 = bindings_->begin(); it0 != end; ++it0) { // Work out the uri and localname of the variable binding const XMLCh* prefix=XPath2NSUtils::getPrefix((*it0)->qname_, mm); if(prefix && *prefix) (*it0)->uri_ = context->getUriBoundToPrefix(prefix, this); (*it0)->name_ = XPath2NSUtils::getLocalName((*it0)->qname_); SequenceType *copyType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); copyType->setLocationInfo(this); // call static resolution on the value (*it0)->expr_ = new (mm) XQCopyOf((*it0)->expr_, /*copyNamespaces*/true, mm); (*it0)->expr_->setLocationInfo(this); (*it0)->expr_ = new (mm) XQTreatAs((*it0)->expr_, copyType, mm, err_XUTY0013); (*it0)->expr_->setLocationInfo(this); (*it0)->expr_ = (*it0)->expr_->staticResolution(context); } // Call staticResolution on the modify expression modify_ = modify_->staticResolution(context); // Call staticResolution on the return expression return_ = return_->staticResolution(context); valMode_ = context->getRevalidationMode(); return this; } ASTNode *UTransform::staticTypingImpl(StaticContext *context) { _src.clear(); // Add all the binding variables to the new scope VectorOfCopyBinding::iterator end = bindings_->end(); for(VectorOfCopyBinding::iterator it0 = bindings_->begin(); it0 != end; ++it0) { if((*it0)->expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UTransform::staticTyping"), X("It is a static error for the copy expression of a transform expression " "to be an updating expression [err:XUST0001]")); } } // Call staticTyping on the modify expression _src.add(modify_->getStaticAnalysis()); _src.updating(false); if(!modify_->getStaticAnalysis().isUpdating() && !modify_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("UTransform::staticTyping"), X("The modify expression is not an updating expression [err:XUST0002]")); // Call staticResolution on the return expression _src.getStaticType() = return_->getStaticAnalysis().getStaticType(); _src.setProperties(return_->getStaticAnalysis().getProperties()); _src.add(return_->getStaticAnalysis()); if(return_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UTransform::staticTyping"), X("It is a static error for the return expression of a transform expression " "to be an updating expression [err:XUST0001]")); } VectorOfCopyBinding *newBindings = context == 0 ? 0 : new (context->getMemoryManager()) VectorOfCopyBinding(XQillaAllocator(context->getMemoryManager())); VectorOfCopyBinding::reverse_iterator rend = bindings_->rend(); for(VectorOfCopyBinding::reverse_iterator it = bindings_->rbegin(); it != rend; ++it) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(!_src.removeVariable((*it)->uri_, (*it)->name_)) { (*it)->qname_ = 0; } _src.add((*it)->expr_->getStaticAnalysis()); // Add the new VB at the front of the new Bindings // (If it's a let binding, and it's variable isn't used, don't add it - there's no point) if(newBindings && (*it)->qname_) { CopyBinding *newVB = new (context->getMemoryManager()) CopyBinding(context->getMemoryManager(), **it); newVB->setLocationInfo(*it); newBindings->insert(newBindings->begin(), newVB); } } // Overwrite our bindings with the new ones if(newBindings) bindings_ = newBindings; return this; } class nodecompare { public: nodecompare(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) const { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; typedef std::set NodeSet; Result UTransform::createResult(DynamicContext* context, int flags) const { context->testInterrupt(); VarStoreImpl scope(context->getMemoryManager(), context->getVariableStore()); AutoVariableStoreReset reset(context, &scope); NodeSet copiedNodes = NodeSet(nodecompare(context)); VectorOfCopyBinding::const_iterator end = getBindings()->end(); for(VectorOfCopyBinding::const_iterator it = getBindings()->begin(); it != end; ++it) { if((*it)->qname_ == 0) continue; Sequence values = (*it)->expr_->createResult(context)->toSequence(context); // Keep a record of the nodes that have been copied Result valIt = values; Item::Ptr val; while((val = valIt->next(context)).notNull()) { copiedNodes.insert((Node*)val.get()); } scope.setVar((*it)->uri_, (*it)->name_, values); } // Get the pending update list PendingUpdateList pul = getModifyExpr()->createUpdateList(context); // Check that the targets of the pending updates are copied nodes for(PendingUpdateList::const_iterator i = pul.begin(); i != pul.end(); ++i) { Node::Ptr target = i->getTarget(); while(copiedNodes.find(target) == copiedNodes.end()) { target = target->dmParent(context); if(target.isNull()) { XQThrow3(StaticErrorException,X("UTransform::staticTyping"), X("The target node of an update expression in the transform expression is not a node from the copy clauses [err:XUDY0014]"), &(*i)); } } } // Apply the updates AutoDelete ufactory(context->createUpdateFactory()); ufactory->applyUpdates(pul, context, getRevalidationMode()); // Execute the return expression return getReturnExpr()->createResult(context); } XQilla-2.3.4/src/update/PendingUpdateList.cpp0000644001725400016040000000207013273140037015776 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include void PendingUpdateList::addUpdate(const PendingUpdate &update) { updates_.push_back(update); } void PendingUpdateList::mergeUpdates(const PendingUpdateList &pul) { for(const_iterator i = pul.begin(); i != pul.end(); ++i) { updates_.push_back(*i); } } XQilla-2.3.4/src/update/UReplace.cpp0000644001725400016040000001472313273140037014123 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UReplace::UReplace(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UREPLACE, memMgr), target_(target), expr_(expr) { } static const XMLCh err_XUTY0008[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '8', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UReplace::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0008); target_->setLocationInfo(this); target_ = target_->staticResolution(context); expr_ = new (mm) XQContentSequence(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UReplace::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplace::staticTyping"), X("It is a static error for the target expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplace::staticTyping"), X("It is a static error for the with expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UReplace::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UReplace::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UReplace::createUpdateList"), X("The target expression of a replace expression does not return a single " "node that is not a document node [err:XUTY0008]")); Node::Ptr parentNode = node->dmParent(context); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UReplace::createUpdateList"), X("The target node of a replace expression does not have a parent [err:XUDY0009]")); Result tmpRes = expr_->createResult(context); Item::Ptr tmp; Sequence value(context->getMemoryManager()); if(node->dmNodeKind() == Node::element_string || node->dmNodeKind() == Node::text_string || node->dmNodeKind() == Node::comment_string || node->dmNodeKind() == Node::processing_instruction_string) { while((tmp = tmpRes->next(context)).notNull()) { // 3. If $target is an element, text, comment, or processing instruction node, then $rlist must consist exclusively of zero or // more element, text, comment, or processing instruction nodes [err:XUTY0010]. if(((Node*)tmp.get())->dmNodeKind() == Node::attribute_string) XQThrow(XPath2TypeMatchException,X("UReplace::staticTyping"), X("The with expression of a replace expression must not contain attributes when not replacing an attribute [err:XUTY0010]")); value.addItem(tmp); } return PendingUpdate(PendingUpdate::REPLACE_NODE, node, value, this); } else { while((tmp = tmpRes->next(context)).notNull()) { // 4. If $target is an attribute node, then: // a. $rlist must consist exclusively of zero or more attribute nodes [err:XUTY0011]. if(((Node*)tmp.get())->dmNodeKind() != Node::attribute_string) XQThrow(XPath2TypeMatchException,X("UReplace::staticTyping"), X("The with expression of a replace expression must only contain attributes when replacing an attribute [err:XUTY0011]")); // b. No attribute node in $rlist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of $parent [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)tmp.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the replace expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } value.addItem(tmp); } return PendingUpdate(PendingUpdate::REPLACE_ATTRIBUTE, node, value, this); } } XQilla-2.3.4/src/update/UInsertAsLast.cpp0000644001725400016040000001773313273140037015130 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAsLast::UInsertAsLast(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AS_LAST, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAsLast::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAsLast::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsLast::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsLast::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAsLast::createResult(DynamicContext* context, int flags) const { return 0; } // static bool UInsertAsLast::checkNamespaceBinding(const ATQNameOrDerived::Ptr &qname, const Node::Ptr &node, DynamicContext *context, const LocationInfo *location) { if(qname->getURI() != 0 && *(qname->getURI()) != 0) { Result namespaces = node->dmNamespaceNodes(context, location); Node::Ptr ns; while((ns = (Node*)namespaces->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = ns->dmNodeName(context); if(((name.notNull() && XPath2Utils::equals(((const ATQNameOrDerived*)name.get())->getName(), qname->getPrefix())) || (name.isNull() && qname->getPrefix() == 0)) && !XPath2Utils::equals(ns->dmStringValue(context), qname->getURI())) { return false; } } } return true; } PendingUpdateList UInsertAsLast::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAsLast::createUpdateList"), X("It is a type error for the target expression of an insert as last expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAsLast::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert as last expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert as last expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer()); } // if(qname->getURI() != 0 && *(qname->getURI()) != 0) { // Result namespaces = node->dmNamespaceNodes(context, this); // Node::Ptr ns; // while((ns = (Node*)namespaces->next(context).get()).notNull()) { // ATQNameOrDerived::Ptr name = ns->dmNodeName(context); // if(((name.notNull() && XPath2Utils::equals(((const ATQNameOrDerived*)name.get())->getName(), qname->getPrefix())) || // (name.isNull() && qname->getPrefix() == 0)) && !XPath2Utils::equals(ns->dmStringValue(context), qname->getURI())) { // XMLBuffer buf; // buf.append(X("Implied namespace binding for the insert as last expression (\"")); // buf.append(qname->getPrefix()); // buf.append(X("\" -> \"")); // buf.append(qname->getURI()); // buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); // XQThrow3(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer(), this); // } // } // } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO_AS_LAST, node, clist, this)); } return result; } XQilla-2.3.4/src/operators/0000755001725400016040000000000013273141207012524 500000000000000XQilla-2.3.4/src/operators/Multiply.cpp0000644001725400016040000000715013273140037014772 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh Multiply::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Multiply::Multiply(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void Multiply::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Multiplying a duration by a number if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::NUMERIC_TYPE)) _src.getStaticType() |= arg0 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); if(arg0.containsType(StaticType::NUMERIC_TYPE) && arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE)) _src.getStaticType() |= arg1 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } Item::Ptr Multiply::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1.isNull() || atom2.isNull()) return 0; // xs:double * xs:duration (only xdt:dayTimeDuration and xdt:yearMonthDuration) if(atom1->isNumericValue() && (atom2->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom2->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION)) { return ((const ATDurationOrDerived*)atom2.get())->multiply((const Numeric*)atom1.get(), context); } // xs:duration * xs:double (only xdt:dayTimeDuration and xdt:yearMonthDuration) if(atom2->isNumericValue() && (atom1->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom1->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION)) { return ((const ATDurationOrDerived*)atom1.get())->multiply((const Numeric*)atom2.get(), context); } // numeric * numeric if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((const Numeric*)atom1.get())->multiply((const Numeric*)atom2.get(), context); } else { XQThrow(XPath2ErrorException,X("Multiply::createSequence"), X("An attempt to multiply a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } XQThrow(XPath2ErrorException,X("Multiply::createSequence"), X("The operator * has been called on invalid operand types [err:XPTY0004]")); } XQilla-2.3.4/src/operators/UnaryMinus.cpp0000644001725400016040000000571613273140037015273 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh UnaryMinus::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_U, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; UnaryMinus::UnaryMinus(bool positive, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr), positive_(positive) { assert(_args.size() == 1); } ASTNode* UnaryMinus::staticResolution(StaticContext *context) { return ArithmeticOperator::staticResolution(context); } ASTNode *UnaryMinus::staticTypingImpl(StaticContext *context) { _src.clear(); ASTNode *result = ArithmeticOperator::staticTypingImpl(context); if(result == this && positive_) { // constant fold unary plus after type checking result = *_args.begin(); } return result; } void UnaryMinus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::NUMERIC_TYPE)) { _src.getStaticType() = arg0 & StaticType::NUMERIC_TYPE; } if(arg0.containsType(StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } Item::Ptr UnaryMinus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { assert(atom2.isNull()); if(atom1.isNull()) return 0; // only works on Numeric types if(atom1->isNumericValue()) { if(positive_) return atom1; else return ((const Numeric*)atom1.get())->invert(context); } else { XQThrow(XPath2ErrorException,X("UnaryMinus::createSequence"), X("An attempt to apply unary minus a non numeric type has occurred [err:XPTY0004]")); } } XQilla-2.3.4/src/operators/GreaterThan.cpp0000644001725400016040000001417513273140037015364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh GreaterThan::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_G, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; GreaterThan::GreaterThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool GreaterThan::greater_than(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of Numeric types first if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)(const AnyAtomicType*)atom1)->greaterThan((const Numeric::Ptr )atom2, context); } else { XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a numeric type to a non numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::BOOLEAN: { // op:boolean-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::BOOLEAN) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a boolean type to a non boolean type has occurred [err:XPTY0004]")); return ((const ATBooleanOrDerived*)atom1.get())->compare((const ATBooleanOrDerived*)atom2.get(), context) > 0; } case AnyAtomicType::STRING: case AnyAtomicType::ANY_URI: { // use function compare if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]")); // if the function returns 1, then atom1 is greater if(!collation) collation = context->getDefaultCollation(info); return collation->compare(atom1->asString(context),atom2->asString(context))>0; } case AnyAtomicType::DATE: { // op:date-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a date type to a non date type has occurred [err:XPTY0004]")); return ((ATDateOrDerived*)atom1.get())->compare((const ATDateOrDerived::Ptr )atom2, context) > 0; } case AnyAtomicType::TIME: { // op:time-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::TIME) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a time type to a non time type has occurred [err:XPTY0004]")); return ((ATTimeOrDerived*)atom1.get())->compare((const ATTimeOrDerived::Ptr )atom2, context) > 0; } case AnyAtomicType::DATE_TIME: { // op:datetime-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE_TIME) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a dateTime type to a non dateTime type has occurred [err:XPTY0004]")); return ((ATDateTimeOrDerived*)atom1.get())->compare((const ATDateTimeOrDerived::Ptr)atom2, context) > 0; } case AnyAtomicType::DAY_TIME_DURATION: { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DAY_TIME_DURATION) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((const ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived*)atom2.get(), context) > 0; } case AnyAtomicType::YEAR_MONTH_DURATION: { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::YEAR_MONTH_DURATION) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((const ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived*)atom2.get(), context) > 0; } default: XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("Unexpected data type in operator 'gt' [err:XPTY0004]")); } XQThrow2(FunctionException,X("GreaterThan::greater_than"), X("An equality operator is not defined for the provided arguments [err:XPTY0004]")); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool GreaterThan::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return greater_than(atom1, atom2, 0, context, this); } XQilla-2.3.4/src/operators/NodeComparison.cpp0000644001725400016040000000613713273140037016077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh NodeComparison::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_I, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NodeComparison::NodeComparison(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { } ASTNode* NodeComparison::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::QUESTION_MARK); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *NodeComparison::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("NodeComparison::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } return this; } BoolResult NodeComparison::boolResult(DynamicContext* context) const { Item::Ptr arg1 = getArgument(0)->createResult(context)->next(context); if(arg1.isNull()) return BoolResult::Null; Item::Ptr arg2 = getArgument(1)->createResult(context)->next(context); if(arg2.isNull()) return BoolResult::Null; return ((Node*)arg1.get())->equals((Node*)arg2.get()); } Result NodeComparison::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/And.cpp0000644001725400016040000000527613273140037013664 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh And::name[]={ chLatin_A, chLatin_n, chLatin_d, chNull }; And::And(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { } ASTNode* And::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQEffectiveBooleanValue(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *And::staticTypingImpl(StaticContext *context) { _src.clear(); VectorOfASTNodes::iterator i; for(i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("And::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult And::boolResult(DynamicContext* context) const { VectorOfASTNodes::const_iterator i = getArguments().begin(); for(; i != getArguments().end(); ++i) { if(!(*i)->boolResult(context)) return false; } return true; } Result And::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/GreaterThanEqual.cpp0000644001725400016040000000555613273140037016357 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include /*static*/ const XMLCh GreaterThanEqual::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_G, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; GreaterThanEqual::GreaterThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool GreaterThanEqual::greater_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // A ge B numeric numeric op:numeric-greater-than(A, B) or op:numeric-equal(A, B) // A ge B xs:boolean xs:boolean fn:not(op:boolean-less-than(A, B)) // A ge B xs:string xs:string op:numeric-greater-than(fn:compare(A, B), -1) // A ge B xs:date xs:date fn:not(op:date-less-than(A, B)) // A ge B xs:time xs:time fn:not(op:time-less-than(A, B)) // A ge B xs:dateTime xs:dateTime fn:not(op:datetime-less-than(A, B)) // A ge B xdt:yearMonthDuration xdt:yearMonthDuration fn:not(op:yearMonthDuration-less-than(A, B)) // A ge B xdt:dayTimeDuration xdt:dayTimeDuration fn:not(op:dayTimeDuration-less-than(A, B)) // numeric values need a special comparison, for the others we can just rely on LessThan if(arg1->isNumericValue() && arg2->isNumericValue()) { if(((Numeric*)arg1.get())->getState() == Numeric::NaN || ((Numeric*)arg2.get())->getState() == Numeric::NaN) return false; } return !LessThan::less_than(arg1,arg2,collation,context, info); } bool GreaterThanEqual::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return greater_than_equal(atom1,atom2,0,context, this); } XQilla-2.3.4/src/operators/Minus.cpp0000644001725400016040000001446013273140037014250 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Minus::name[]={ chLatin_M, chLatin_i, chLatin_n, chLatin_u, chLatin_s, chNull }; Minus::Minus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Minus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Subtracting a duration from a date, dateTime, time, or duration if(arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } // Subtracting date, dateTime and time if(arg0.containsType(StaticType::DATE_TYPE) && arg1.containsType(StaticType::DATE_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } if(arg0.containsType(StaticType::DATE_TIME_TYPE) && arg1.containsType(StaticType::DATE_TIME_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } if(arg0.containsType(StaticType::TIME_TYPE) && arg1.containsType(StaticType::TIME_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } } Item::Ptr Minus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->subtract((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An attempt to subtract a non numeric type from a numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::DATE : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived *)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateOrDerived*)atom1.get())->subtractYearMonthDuration((const ATDurationOrDerived *)atom2.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom1.get())->subtractDate((const ATDateOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:date type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION : { return ((ATTimeOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived *)atom2.get(), context ); } case AnyAtomicType::TIME : { return ((ATTimeOrDerived*)atom1.get())->subtractTime((const ATTimeOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:time type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DATE_TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->subtractYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::DATE_TIME : { return ((ATDateTimeOrDerived*)atom1.get())->subtractDateTimeAsDayTimeDuration((const ATDateTimeOrDerived::Ptr )atom2, context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:dateTime type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DAY_TIME_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDurationOrDerived*)atom1.get())->subtract((const ATDurationOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xdt:dayTimeDuration type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::YEAR_MONTH_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDurationOrDerived*)atom1.get())->subtract((const ATDurationOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xdt:yearMonthDuration type has occurred [err:XPTY0004]")); } } } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("The operator subtract ('-') has been called on invalid operand types [err:XPTY0004]")); } } } XQilla-2.3.4/src/operators/ArithmeticOperator.cpp0000644001725400016040000001421313273140037016756 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ArithmeticOperator::ArithmeticOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(opName, args, memMgr) { } ASTNode* ArithmeticOperator::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { // An arithmetic expression is evaluated by applying the following rules, in order, // until an error is raised or a value is computed: // 1. Atomization is applied to each operand. *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); // 2. If either operand is an empty sequence, the result of the operation is an empty sequence. // 3. If either operand is now a sequence of length greater than one, then: // * If XPath 1.0 compatibility mode is true, any items after the first item in the sequence are discarded. // Otherwise, a type error is raised. if(!context->getXPath1CompatibilityMode()) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK); seqType->setLocationInfo(*i); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); } // 4. If either operand is now of type xdt:untypedAtomic, it is cast to the default type for the given operator. // If the cast fails, a type error is raised. *i = new (mm) XQPromoteUntyped(*i, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *ArithmeticOperator::staticTypingImpl(StaticContext *context) { _src.clear(); bool emptyArgument = false; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ArithmeticOperator::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->getStaticAnalysis().getStaticType().getMin() == 0) emptyArgument = true; _src.add((*i)->getStaticAnalysis()); if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } _src.getStaticType() = StaticType(); calculateStaticType(); if(!emptyArgument && _src.getStaticType().getMax() == 0) { XMLBuffer errMsg; errMsg.set(X("The operator ")); errMsg.append(_opName); errMsg.append(X(" has been called on invalid operand types [err:XPTY0004]")); XQThrow(XPath2ErrorException,X("ArithmeticOperator::staticResolution"), errMsg.getRawBuffer()); } if(emptyArgument) _src.getStaticType().setCardinality(0, 1); else _src.getStaticType().setCardinality(1, 1); return this; } void ArithmeticOperator::calculateStaticTypeForNumerics(const StaticType &arg0, const StaticType &arg1) { // Deal with numerics and numeric type promotion if(arg0.containsType(StaticType::DECIMAL_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } if(arg1.containsType(StaticType::FLOAT_TYPE)) { _src.getStaticType() |= StaticType::FLOAT_TYPE; } // untypedAtomic will be promoted to xs:double if(arg1.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } if(arg0.containsType(StaticType::FLOAT_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE|StaticType::FLOAT_TYPE)) { _src.getStaticType() |= StaticType::FLOAT_TYPE; } // untypedAtomic will be promoted to xs:double if(arg1.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE|StaticType::FLOAT_TYPE|StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } } Result ArithmeticOperator::createResult(DynamicContext* context, int flags) const { try { return execute((AnyAtomicType*)getArguments()[0]->createResult(context)->next(context).get(), getNumArgs() == 1 ? 0 : (AnyAtomicType*)getArguments()[1]->createResult(context)->next(context).get(), context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } XQilla-2.3.4/src/operators/Intersect.cpp0000644001725400016040000000746313273140037015122 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Intersect::name[]={ chLatin_i, chLatin_n, chLatin_t, chLatin_e, chLatin_r, chLatin_s, chLatin_e, chLatin_c, chLatin_t, chNull }; Intersect::Intersect(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Intersect::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(this); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Intersect::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Intersect::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); _src.getStaticType().typeNodeIntersect(_args[1]->getStaticAnalysis().getStaticType()); _src.getStaticType().multiply(0, 1); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Intersect::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } Result Intersect::createResult(DynamicContext* context, int flags) const { // TBD Improve this implementation - jpcs Sequence param1 = getArgument(0)->createResult(context)->toSequence(context); Sequence param2 = getArgument(1)->createResult(context)->toSequence(context); XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence result(param1.getLength(),memMgr); Sequence::const_iterator p1It = param1.begin(); Sequence::const_iterator p2It; Sequence::const_iterator end1 = param1.end(); Sequence::const_iterator end2 = param2.end(); for(;p1It != end1; ++p1It) { for(p2It = param2.begin();p2It != end2; ++p2It) { if(((Node*)p1It->get())->equals((Node*)p2It->get())) { result.addItem(*p1It); } } } return result; } XQilla-2.3.4/src/operators/Union.cpp0000644001725400016040000001020113273140037014232 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Union::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_U, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Union::Union(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Union::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(*i); *i = (*i)->staticResolution(context); } return this; } ASTNode *Union::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(_args[0]->getStaticAnalysis()); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Union::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); _src.getStaticType().typeConcat(_args[1]->getStaticAnalysis().getStaticType()); unsigned int min = _args[0]->getStaticAnalysis().getStaticType().getMin(); if(min > _args[1]->getStaticAnalysis().getStaticType().getMin()) min = _args[1]->getStaticAnalysis().getStaticType().getMin(); _src.getStaticType().setCardinality(min, _src.getStaticType().getMax()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Union::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } Result Union::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new UnionResult(this, flags)); } Union::UnionResult::UnionResult(const Union *op, int flags) : ResultImpl(op), _op(op), _flags(flags), _index(0), _result(0) { } Item::Ptr Union::UnionResult::next(DynamicContext *context) { Item::Ptr item = 0; while(true) { item = _result->next(context); if(item == NULLRCP) { if(_index > 1) { _index = 0; return 0; } else { _result = _op->getArgument(_index++)->createResult(context, _flags); } } else { return item; } } return 0; } XQilla-2.3.4/src/operators/ComparisonOperator.cpp0000644001725400016040000001247713273140037017011 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ComparisonOperator::ComparisonOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(opName, args, memMgr) { } ASTNode* ComparisonOperator::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { // Value comparisons are intended for comparing single values. The result of a value comparison is // defined by applying the following rules, in order: // 1. Atomization is applied to each operand. If the result, called an atomized operand, does not contain // exactly one atomic value, a type error is raised. *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); // 2. If the atomized operand is an empty sequence, the result of the value comparison is an empty sequence, // and the implementation need not evaluate the other operand or apply the operator. However, an // implementation may choose to evaluate the other operand in order to determine whether it raises an error. // 3. If the atomized operand is a sequence of length greater than one, a type error is raised [err:XPTY0004]. SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK); seqType->setLocationInfo(*i); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); // 4. Any atomized operand that has the dynamic type xdt:untypedAtomic is cast to the type xs:string. *i = new (mm) XQPromoteUntyped(*i, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *ComparisonOperator::staticTypingImpl(StaticContext *context) { _src.clear(); bool emptyArgument = false; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if(context && (*i)->getStaticAnalysis().getStaticType().getMax() == 0) { // The result is always empty if one of our arguments is always empty XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(this); return result->staticTypingImpl(context); } if((*i)->getStaticAnalysis().getStaticType().getMin() == 0) emptyArgument = true; if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ComparisonOperator::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } if(emptyArgument) _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); else _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 1, 1); return this; } BoolResult ComparisonOperator::boolResult(DynamicContext* context) const { try { AnyAtomicType::Ptr left = (AnyAtomicType*)getArguments()[0]->createResult(context)->next(context).get(); if(left.isNull()) return BoolResult::Null; AnyAtomicType::Ptr right = (AnyAtomicType*)getArguments()[1]->createResult(context)->next(context).get(); if(right.isNull()) return BoolResult::Null; return execute(left, right, context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } Result ComparisonOperator::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/Plus.cpp0000644001725400016040000001562113273140037014100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Plus::name[]={ chLatin_P, chLatin_l, chLatin_u, chLatin_s, chNull }; Plus::Plus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Plus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Adding a duration to a date, dateTime, time, or duration if(arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg1 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg0.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg1 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } } Item::Ptr Plus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return plus(atom1, atom2, context, this); } Item::Ptr Plus::plus(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context, const LocationInfo *info) { try { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->add((Numeric*)atom2.get(), context); } else { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An attempt to add a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::DATE : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateOrDerived*)atom1.get())->addYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:date type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATTimeOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context ); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:time type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DATE_TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->addYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:dateTime type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DAY_TIME_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDurationOrDerived*)atom2.get())->add((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE_TIME: { return ((ATDateTimeOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::TIME: { return ((ATTimeOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xdt:dayTimeDuration type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::YEAR_MONTH_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDurationOrDerived*)atom2.get())->add((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom2.get())->addYearMonthDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE_TIME: { return ((ATDateTimeOrDerived*)atom2.get())->addYearMonthDuration((const ATDurationOrDerived *)atom1.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xdt:yearMonthDuration type has occurred [err:XPTY0004]")); } } } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("The operator add ('+') has been called on invalid operand types [err:XPTY0004]")); } } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } XQilla-2.3.4/src/operators/LessThan.cpp0000644001725400016040000001414513273140037014676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh LessThan::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_L, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; LessThan::LessThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool LessThan::less_than(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of Numeric types first if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->lessThan((Numeric*)atom2.get(), context); } else { XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a numeric type to a non numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::BOOLEAN: { // op:boolean-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::BOOLEAN) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a boolean type to a non boolean type has occurred [err:XPTY0004]")); return ((const ATBooleanOrDerived*)atom1.get())->compare((const ATBooleanOrDerived*)atom2.get(), context) < 0; } case AnyAtomicType::STRING: case AnyAtomicType::ANY_URI: { // op:numeric-less-than(fn:compare(A, B), 0) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]")); // if the function returns -1, then atom1 is less if(!collation) collation = context->getDefaultCollation(info); return collation->compare(atom1->asString(context),atom2->asString(context))<0; } case AnyAtomicType::DATE: { // op:date-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a date type to a non date type has occurred [err:XPTY0004]")); return ((ATDateOrDerived*)atom1.get())->compare((const ATDateOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::TIME: { // op:time-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::TIME) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a time type to a non time type has occurred [err:XPTY0004]")); return ((ATTimeOrDerived*)atom1.get())->compare((const ATTimeOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::DATE_TIME: { // op:datetime-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE_TIME) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a dateTime type to a non dateTime type has occurred [err:XPTY0004]")); return ((ATDateTimeOrDerived*)atom1.get())->compare((const ATDateTimeOrDerived::Ptr)atom2, context) < 0; } case AnyAtomicType::DAY_TIME_DURATION: { // op:dayTimeDuration-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DAY_TIME_DURATION) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::YEAR_MONTH_DURATION: { // op:yearMonthDuration-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::YEAR_MONTH_DURATION) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived::Ptr )atom2, context) < 0; } default: XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("Unexpected data type in operator 'lt' [err:XPTY0004]")); } XQThrow2(FunctionException,X("LessThan::less_than"), X("An equality operator is not defined for the provided arguments [err:XPTY0004]")); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool LessThan::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return less_than(atom1, atom2, 0, context, this); } XQilla-2.3.4/src/operators/Divide.cpp0000644001725400016040000000736113273140037014363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh Divide::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Divide::Divide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void Divide::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Dividing a duration by a number if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::NUMERIC_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } // Dividing a duration by a duration if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE) && arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } if(arg0.containsType(StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } } Item::Ptr Divide::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return (const Item::Ptr)((Numeric*)(const AnyAtomicType*)atom1)->divide((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("An attempt to divide a numeric type by a non-numeric type has occurred [err:XPTY0004]")); } } if(atom1->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom1->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION) { const ATDurationOrDerived* duration = (const ATDurationOrDerived*)atom1.get(); if(atom2->isNumericValue()) { return (const Item::Ptr)duration->divide((const Numeric *)atom2.get(), context); } else if(atom2->getPrimitiveTypeIndex() == atom1->getPrimitiveTypeIndex()) { return (const Item::Ptr)duration->divide((const ATDurationOrDerived*)atom2.get(), context); } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("An attempt to divide an xs:duration by an invalid type has occured [err:XPTY0004]")); } } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("The operator div has been called on invalid operand types [err:XPTY0004]")); } return 0; } XQilla-2.3.4/src/operators/Mod.cpp0000644001725400016040000000426513273140037013676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include /*static*/ const XMLCh Mod::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Mod::Mod(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Mod::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); } Item::Ptr Mod::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return (const Item::Ptr)((Numeric*)(const AnyAtomicType*)atom1)->mod((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Mod::createSequence"), X("An attempt to mod a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } XQThrow(XPath2ErrorException,X("Mod::createSequence"), X("The operator mod has been called on invalid operand types [err:XPTY0004]")); } XQilla-2.3.4/src/operators/Except.cpp0000644001725400016040000001046713273140037014410 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Except::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Except::Except(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Except::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(this); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Except::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Except::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); unsigned int min = 0; if(_src.getStaticType().getMin() > _args[1]->getStaticAnalysis().getStaticType().getMax()) min = _src.getStaticType().getMin() - _args[1]->getStaticAnalysis().getStaticType().getMax(); _src.getStaticType().setCardinality(min, _src.getStaticType().getMax()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Except::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } class ExceptResult : public ResultImpl { public: ExceptResult(const Except *op, DynamicContext *context) : ResultImpl(op), _result(op->getArgument(0)->createResult(context)), _excpt(op->getArgument(1)->createResult(context)) { } Item::Ptr next(DynamicContext *context) { Item::Ptr item = _result->next(context); while(item.notNull()) { bool found = false; Result except_result(_excpt.createResult()); Item::Ptr except_item; while((except_item = except_result->next(context)).notNull()) { if(((Node*)item.get())->equals((Node*)except_item.get())) { found = true; break; } } if(!found) break; item = _result->next(context); } if(item.isNull()) { _result = 0; _excpt = 0; } return item; } private: Result _result; ResultBuffer _excpt; }; Result Except::createResult(DynamicContext* context, int flags) const { return new ExceptResult(this, context); } XQilla-2.3.4/src/operators/GeneralComp.cpp0000644001725400016040000002070313273140037015346 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh GeneralComp::name[]={ 'G', 'e', 'n', 'e', 'r', 'a', 'l', 'C', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; GeneralComp::GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), operation_(operation), collation_(0), xpath1compat_(false) { } GeneralComp::GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, Collation *collation, bool xpath1Compat, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), operation_(operation), collation_(collation), xpath1compat_(xpath1Compat) { } bool GeneralComp::compare(GeneralComp::ComparisonOperation operation, AnyAtomicType::Ptr first, AnyAtomicType::Ptr second, Collation* collation, DynamicContext *context, bool xpath1compat, const LocationInfo *info) { // The magnitude relationship between two atomic values is determined as follows: // 1) If either atomic value has the dynamic type xdt:untypedAtomic, that value is cast to a required type, // which is determined as follows: // - If the dynamic type of the other atomic value is a numeric type, the required type is xs:double. // - If the dynamic type of the other atomic value is xdt:untypedAtomic, the required type is xs:string. // - Otherwise, the required type is the dynamic type of the other atomic value. // If the cast to the required type fails, a dynamic error is raised. // 2) If XPath 1.0 compatibility mode is true, and at least one of the atomic values has a numeric type, // then both atomic values are cast to to the type xs:double. // 3) After any necessary casting, the atomic values are compared using one of the value comparison operators // eq, ne, lt, le, gt, or ge, depending on whether the general comparison operator was // =, !=, <, <=, >, or >=. The values have the required magnitude relationship if the result of this // value comparison is true. if(first->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { if (second->isNumericValue()) { first = first->castAs(AnyAtomicType::DOUBLE, context); } else if(second->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { first = first->castAs(AnyAtomicType::STRING, context); } else { first = first->castAs(second->getPrimitiveTypeIndex(), second->getTypeURI(), second->getTypeName(), context); } } if(second->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { if(first->isNumericValue()) { second = second->castAs(AnyAtomicType::DOUBLE, context); } else if(first->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { second = second->castAs(AnyAtomicType::STRING, context); } else { second = second->castAs(first->getPrimitiveTypeIndex(), first->getTypeURI(), first->getTypeName(), context); } } if(xpath1compat && (first->isNumericValue() || second->isNumericValue())) { first = first->castAs(AnyAtomicType::DOUBLE, context); second = second->castAs(AnyAtomicType::DOUBLE, context); } bool result = false; switch(operation) { case GeneralComp::EQUAL: result = Equals::equals(first,second,collation,context,info); break; case GeneralComp::NOT_EQUAL: result = NotEquals::not_equals(first,second,collation,context,info); break; case GeneralComp::LESS_THAN: result = LessThan::less_than(first,second,collation,context,info); break; case GeneralComp::LESS_THAN_EQUAL: result = LessThanEqual::less_than_equal(first,second,collation,context,info); break; case GeneralComp::GREATER_THAN: result = GreaterThan::greater_than(first,second,collation,context,info); break; case GeneralComp::GREATER_THAN_EQUAL: result = GreaterThanEqual::greater_than_equal(first,second,collation,context,info); break; default: assert(false); } return result; } ASTNode* GeneralComp::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); xpath1compat_ = context->getXPath1CompatibilityMode(); AutoNodeSetOrderingReset orderReset(context); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } collation_ = context->getDefaultCollation(this); return this; } ASTNode *GeneralComp::staticTypingImpl(StaticContext *context) { _src.clear(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("GeneralComp::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult GeneralComp::boolResult(DynamicContext* context) const { // Atomization is applied to each operand of a general comparison. Result arg1 = getArgument(0)->createResult(context); Result arg2 = getArgument(1)->createResult(context); // The result of the comparison is true if and only if there is a pair of atomic values, // one belonging to the result of atomization of the first operand and the other belonging // to the result of atomization of the second operand, that have the required magnitude relationship. // Otherwise the result of the general comparison is false. AnyAtomicType::Ptr item1 = (const AnyAtomicType::Ptr)arg1->next(context); if(item1 != NULLRCP) { // The first time we loop over arg2, we store it in a sequence AnyAtomicType::Ptr item2; Sequence arg2_sequence(context->getMemoryManager()); while((item2 = (const AnyAtomicType::Ptr)arg2->next(context)) != NULLRCP) { if(GeneralComp::compare(getOperation(), item1, item2, getCollation(), context, getXPath1CompatibilityMode(), this)) { return true; } arg2_sequence.addItem(item2); } // The second and subsequent times, we iterate over the sequence Sequence::iterator itSecond; while((item1 = (const AnyAtomicType::Ptr)arg1->next(context)) != NULLRCP) { for(itSecond = arg2_sequence.begin(); itSecond != arg2_sequence.end(); ++itSecond) { if(GeneralComp::compare(getOperation(), item1, (const AnyAtomicType::Ptr)*itSecond, getCollation(), context, getXPath1CompatibilityMode(), this)) { return true; } } } } return false; } Result GeneralComp::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/NotEquals.cpp0000644001725400016040000000332713273140037015070 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include /*static*/ const XMLCh NotEquals::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NotEquals::NotEquals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool NotEquals::not_equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // define "ne" as "!eq" return !Equals::equals(arg1,arg2,collation,context, info); } bool NotEquals::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return not_equals(atom1, atom2, 0, context, this); } XQilla-2.3.4/src/operators/Or.cpp0000644001725400016040000000527413273140037013540 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh Or::name[]={ chLatin_O, chLatin_r, chNull }; Or::Or(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { // Nothing to do } ASTNode* Or::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQEffectiveBooleanValue(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Or::staticTypingImpl(StaticContext *context) { _src.clear(); VectorOfASTNodes::iterator i; for(i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Or::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult Or::boolResult(DynamicContext* context) const { VectorOfASTNodes::const_iterator i = getArguments().begin(); for(; i != getArguments().end(); ++i) { if((*i)->boolResult(context)) return true; } return false; } Result Or::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/IntegerDivide.cpp0000644001725400016040000000607613273140037015703 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include /*static*/ const XMLCh IntegerDivide::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_I, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; IntegerDivide::IntegerDivide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void IntegerDivide::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::NUMERIC_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() = StaticType(StaticType::DECIMAL_TYPE, 0, 1); } } Item::Ptr IntegerDivide::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue() && atom2->isNumericValue()) { const Numeric::Ptr op1=atom1; const Numeric::Ptr op2=atom2; if(op2->isZero()) XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("Division by zero [err:FOAR0001]")); if(op1->isNaN() || op1->isInfinite() || op2->isNaN()) XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("Either operand is NaN or the dividend is INF or -INF [err:FOAR0002]")); // it divides the first argument by the second, and returns the integer obtained by truncating the fractional part // of the result. Numeric::Ptr div=op1->divide(op2, context); if(div->isPositive()) div = div->floor(context); else if(div->isNegative()) div = div->ceiling(context); return div->castAs(AnyAtomicType::DECIMAL, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_INTEGER, context); } XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("An attempt to integer divide a non numeric type to a numeric type has occurred [err:XPTY0004]")); } XQilla-2.3.4/src/operators/Equals.cpp0000644001725400016040000000571113273140037014406 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Equals::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Equals::Equals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool Equals::equals(const Item::Ptr &arg1, const Item::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { assert(arg1->isAtomicValue() && arg2->isAtomicValue()); return equals((const AnyAtomicType::Ptr)arg1, (const AnyAtomicType::Ptr)arg2, collation, context, info); } /*static*/ bool Equals::equals(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of the special case first if(atom1->getPrimitiveTypeIndex() == AnyAtomicType::STRING) { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) { XQThrow3(XPath2ErrorException,X("Equals::equals"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]"), info); } // if the function returns 0, then they are equal if(!collation) collation = context->getDefaultCollation(info); return (collation->compare(atom1->asString(context),atom2->asString(context))==0); } return atom1->equals(atom2, context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool Equals::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return equals(atom1, atom2, 0, context, this); } XQilla-2.3.4/src/operators/OrderComparison.cpp0000644001725400016040000000645313273140037016266 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh OrderComparison::name[]={ 'O', 'r', 'd', 'e', 'r', 'C', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; OrderComparison::OrderComparison(const VectorOfASTNodes &args, bool testBefore, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { _testBefore = testBefore; } bool OrderComparison::getTestBefore() const { return _testBefore; } ASTNode* OrderComparison::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::QUESTION_MARK); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *OrderComparison::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("OrderComparison::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } return this; } BoolResult OrderComparison::boolResult(DynamicContext* context) const { Item::Ptr arg1 = getArgument(0)->createResult(context)->next(context); if(arg1.isNull()) return BoolResult::Null; Item::Ptr arg2 = getArgument(1)->createResult(context)->next(context); if(arg2.isNull()) return BoolResult::Null; if(getTestBefore()) return ((Node*)arg1.get())->lessThan((Node*)arg2.get(), context); return ((Node*)arg2.get())->lessThan((Node*)arg1.get(), context); } Result OrderComparison::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.4/src/operators/LessThanEqual.cpp0000644001725400016040000000555613273140037015674 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include /*static*/ const XMLCh LessThanEqual::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_L, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; LessThanEqual::LessThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool LessThanEqual::less_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // A le B numeric numeric op:numeric-less-than(A, B) or op:numeric-equal(A, B) // A le B xs:boolean xs:boolean fn:not(op:boolean-greater-than(A, B)) // A le B xs:string xs:string op:numeric-less-than(fn:compare(A, B), 1) // A le B xs:date xs:date fn:not(op:date-greater-than(A, B)) // A le B xs:time xs:time fn:not(op:time-greater-than(A, B)) // A le B xs:dateTime xs:dateTime fn:not(op:datetime-greater-than(A, B)) // A le B xdt:yearMonthDuration xdt:yearMonthDuration fn:not(op:yearMonthDuration-greater-than(A, B)) // A le B xdt:dayTimeDuration xdt:dayTimeDuration fn:not(op:dayTimeDuration-greater-than(A, B)) // numeric values need a special comparison, for the others we can just rely on GreaterThan if(arg1->isNumericValue() && arg2->isNumericValue()) { if(((Numeric*)arg1.get())->getState() == Numeric::NaN || ((Numeric*)arg2.get())->getState() == Numeric::NaN) return false; } return !GreaterThan::greater_than(arg1,arg2,collation,context,info); } bool LessThanEqual::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return less_than_equal(atom1, atom2, 0, context, this); } XQilla-2.3.4/src/xqts/0000755001725400016040000000000013273141207011505 500000000000000XQilla-2.3.4/src/xqts/TestSuiteParser.cpp0000644001725400016040000004303313273140037015242 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; TestSuiteParser::TestSuiteParser(const string &pathToTestSuite, TestSuiteRunner *runner) : runner_(runner), xslt_(false) { string szXQTSLocation = string("file:///") + pathToTestSuite; for(string::iterator i = szXQTSLocation.begin(); i != szXQTSLocation.end(); ++i) { if(*i == ' ') { i = szXQTSLocation.erase(i); szXQTSLocation = szXQTSLocation.insert(i - szXQTSLocation.begin(), "%20"); i = szXQTSLocation.begin(); } else if(*i == '\\') *i = '/'; } urlXQTSCatalog_.setURL(X(szXQTSLocation.c_str())); readingChars_ = false; } void TestSuiteParser::handleUnknownElement(const string &elementName) { unknownElements_.insert(elementName); } void TestSuiteParser::run() { xslt_ = false; SAX2XMLReader* parser = XMLReaderFactory::createXMLReader(); try { parser->setContentHandler(this); parser->setErrorHandler(this); URLInputSource is(urlXQTSCatalog_); parser->parse(is); } catch(const XMLException& e) { cerr << "Error while reading test catalog: " << UTF8(e.getMessage()) << endl; } delete parser; } void TestSuiteParser::error(const SAXParseException& exc) { cerr << "ERROR parsing catalog: " << UTF8(exc.getMessage()) << endl; } void TestSuiteParser::fatalError(const SAXParseException& exc) { cerr << "FATAL ERROR parsing catalog: " << UTF8(exc.getMessage()) << endl; } static XMLCh g_szName[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; static XMLCh g_szPath[] = { chLatin_F, chLatin_i, chLatin_l, chLatin_e, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull }; static XMLCh g_szVar[] = { chLatin_v, chLatin_a, chLatin_r, chLatin_i, chLatin_a, chLatin_b, chLatin_l, chLatin_e, chNull }; static XMLCh g_szDotXQ[] = { chPeriod, chLatin_x, chLatin_q, chNull }; static XMLCh g_szCompare[] = { chLatin_c, chLatin_o, chLatin_m, chLatin_p, chLatin_a, chLatin_r, chLatin_e, chNull }; static XMLCh g_szTime[] = { chLatin_t, chLatin_i, chLatin_m, chLatin_e, chNull }; static XMLCh g_szRole[] = { chLatin_r, chLatin_o, chLatin_l, chLatin_e, chNull }; static XMLCh g_szFile[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, chNull }; static XMLCh g_szType[] = { chLatin_t, chLatin_y, chLatin_p, chLatin_e, chNull }; void TestSuiteParser::startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const Attributes& attributes) { string szName=UTF8(localname); string szURI=UTF8(uri); // if(szURI=="http://www.w3.org/2005/02/query-test-XQTSCatalog") // { if(szName=="test-suite") { runner_->getResultListener()->reportVersion(UTF8(attributes.getValue(X("version"))), szURI == "http://www.w3.org/2005/02/query-test-update"); urlXQTSQueriesDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("XQueryQueryOffsetPath"))); urlXQTSResultsDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("ResultOffsetPath"))); // detect runner's parser language and conf runner_->detectParserLang(szURI); } else if(szName=="testcases") { // XSLT test suite xslt_ = true; runner_->detectParserLang(szURI); runner_->getResultListener()->reportVersion(UTF8(attributes.getValue(X("testSuiteVersion"))), false); urlXQTSQueriesDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("InputOffsetPath"))); urlXQTSResultsDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("ResultOffsetPath"))); } else if(szName=="test-group") { runner_->startTestGroup(UTF8(attributes.getValue(g_szName))); } else if(szName=="test-case") { testCase_.name = UTF8(attributes.getValue(g_szName)); testCase_.description = ""; testCase_.updateTest = false; testCase_.xsltTest = false; testCase_.stateTime = -1; testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); XMLBuffer buff; buff.set(attributes.getValue(g_szPath)); buff.append('/'); urlBasePath_.setURL(urlXQTSQueriesDirectory_, buff.getRawBuffer()); urlBasePathReferenceFiles_.setURL(urlXQTSResultsDirectory_, buff.getRawBuffer()); } else if(szName=="testcase") { // XSLT test case testCase_.name = ""; testCase_.description = ""; testCase_.updateTest = false; testCase_.xsltTest = true; testCase_.stateTime = -1; testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); XMLBuffer buff; buff.set(attributes.getValue(g_szPath)); buff.append('/'); urlBasePath_.setURL(urlXQTSQueriesDirectory_, buff.getRawBuffer()); urlBasePathReferenceFiles_.setURL(urlXQTSResultsDirectory_, buff.getRawBuffer()); } else if(szName=="state") { testCase_.updateTest = true; testCase_.xsltTest = false; testCase_.stateTime = atoi(UTF8(attributes.getValue(g_szTime))); testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); } else if(szName=="query") { XMLBuffer buff; const XMLCh* name=attributes.getValue(g_szName); buff.set(name); if(!XMLString::endsWith(name,g_szDotXQ)) buff.append(g_szDotXQ); urlQuery_.setURL(urlBasePath_,buff.getRawBuffer()); testCase_.queryURL = UTF8(urlQuery_.getURLText()); try { testCase_.query = "#Not found"; Janitor stream((BinFileInputStream*)URLInputSource(urlQuery_).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int) stream->getSize(); testCase_.query.resize(dwSize); stream->readBytes((XMLByte*)testCase_.query.c_str(), dwSize); } } catch(...) {} } else if(szName=="stylesheet") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSQueriesDirectory_, file); testCase_.queryURL = UTF8(urlQuery_.getURLText()); try { testCase_.query = "#Not found"; Janitor stream((BinFileInputStream*)URLInputSource(urlQuery_).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int) stream->getSize(); testCase_.query.resize(dwSize); stream->readBytes((XMLByte*)testCase_.query.c_str(), dwSize); } } catch(...) {} } } else if(szName=="source-document") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSQueriesDirectory_, file); testCase_.contextItem = UTF8(urlQuery_.getURLText()); } } else if(szName=="result-document") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSResultsDirectory_, file); const XMLCh *type = attributes.getValue(g_szType); testCase_.outputFiles[UTF8(urlQuery_.getURLText())]=UTF8(type); } } else if(szName=="entry-named-template") { // XSLT test suite testCase_.templateName = UTF8(attributes.getValue(X("qname"))); } else if(szName=="error") { // XSLT test suite const XMLCh *id = attributes.getValue(X("error-id")); testCase_.expectedErrors.push_back(UTF8(id)); } else if(szName=="input-query") { XMLBuffer buff; const XMLCh* name=attributes.getValue(g_szName); buff.set(name); if(!XMLString::endsWith(name,g_szDotXQ)) buff.append(g_szDotXQ); XMLURL urlQuery(urlBasePath_,buff.getRawBuffer()); string varQuery = UTF8(urlQuery.getURLText()); testCase_.extraVars[UTF8(attributes.getValue(g_szVar))]=varQuery; } else if(szName=="input-file") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(g_szVar)); } else if(szName=="input-URI") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(g_szVar)); } else if(szName=="param") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(X("qname"))); } else if(szName=="contextItem") { readingChars_=true; chars_=""; } else if(szName=="defaultCollection") { readingChars_=true; chars_=""; } else if(szName=="output-file") { readingChars_=true; chars_=""; compareMethod_=UTF8(attributes.getValue(g_szCompare)); } else if(szName=="expected-error") { readingChars_=true; chars_=""; } else if(szName=="name") { // XSLT test suite readingChars_=true; chars_=""; } else if(szName=="description") { readingChars_=true; chars_=""; } else if(szName=="source") { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addSource(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText()), UTF8(attributes.getValue(X("schema")))); } else if(szName=="schema" && !xslt_) { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addSchema(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText()), UTF8(attributes.getValue(X("uri")))); } else if(szName=="module") { if(attributes.getValue(X("FileName"))!=NULL) { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addModule(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText())); } else { readingChars_=true; chars_=""; namespace_=UTF8(attributes.getValue(X("namespace"))); } } else if(szName=="collection") { collectionID_ = UTF8(attributes.getValue(X("ID"))); runner_->addCollection(collectionID_); } else if(szName=="input-document") { if(!collectionID_.empty()) { readingChars_=true; chars_=""; } } else if(unknownElements_.find(szName) != unknownElements_.end()) { map attrs; for(unsigned int i = 0; i < attributes.getLength(); ++i) { attrs[UTF8(attributes.getLocalName(i))] = UTF8(attributes.getValue(i)); } runner_->unknownElement(szName, attrs); } // } } #if _XERCES_VERSION >= 30000 void TestSuiteParser::characters(const XMLCh *const chars, const XMLSize_t length) #else void TestSuiteParser::characters(const XMLCh *const chars, const unsigned int length) #endif { XMLBuffer buff; buff.set(chars,length); if(readingChars_) chars_+=UTF8(buff.getRawBuffer()); } void TestSuiteParser::endElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname) { string szName=UTF8(localname); string szURI=UTF8(uri); // if(szURI=="http://www.w3.org/2005/02/query-test-XQTSCatalog") // { if(szName == "test-group") { runner_->endTestGroup(); } else if(szName=="testcases") { if(xsltGroupName_ != "") runner_->endTestGroup(); } else if(szName == "test-case") { if(!testCase_.updateTest) { if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } } else if(szName == "testcase") { size_t pos = 0; while((testCase_.name[pos] >= 'A' && testCase_.name[pos] <= 'Z') || (testCase_.name[pos] >= 'a' && testCase_.name[pos] <= 'z')) ++pos; string group = testCase_.name.substr(0, pos); if(xsltGroupName_ != group) { if(xsltGroupName_ != "") runner_->endTestGroup(); xsltGroupName_ = group; if(xsltGroupName_ != "") runner_->startTestGroup(xsltGroupName_); } if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } else if(szName == "state") { if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } else if(szName == "input-file") { readingChars_=false; testCase_.inputVars[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="input-URI") { readingChars_=false; testCase_.inputURIVars[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="param") { readingChars_=false; testCase_.inputParams[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="contextItem") { readingChars_=false; testCase_.contextItem=chars_; } else if(szName=="defaultCollection") { readingChars_=false; testCase_.defaultCollection=chars_; } else if(szName == "output-file") { readingChars_=false; if(chars_ != "") { chars_=UTF8(XMLURL(urlBasePathReferenceFiles_, chars_.c_str()).getURLText()); testCase_.outputFiles[chars_]=compareMethod_; } compareMethod_=""; } else if(szName == "expected-error") { readingChars_=false; testCase_.expectedErrors.push_back(chars_); } else if(szName == "name") { readingChars_=false; testCase_.name = chars_; } else if(szName == "description") { readingChars_=false; testCase_.description = chars_; } else if(szName == "module") { readingChars_=false; testCase_.moduleFiles.push_back(pair(namespace_, chars_)); } else if(szName=="collection") { collectionID_ = ""; } else if(szName=="input-document") { if(!collectionID_.empty()) { readingChars_=false; runner_->addCollectionDoc(collectionID_, chars_); } } // } } XQilla-2.3.4/src/xqts/TestSuiteRunner.cpp0000644001725400016040000002354213273140037015262 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; static string loadExpectedResult(const string &file); static bool compareNodes(DOMNode* node1, DOMNode* node2); void TestSuiteRunner::testResults(const TestCase &testCase, const std::string &xmlResult) const { if(testCase.outputFiles.empty()) { if(!testCase.expectedErrors.empty()) m_results->reportFailNoError(testCase, xmlResult, ""); // Otherwise pass - it's probably the first stage of an update test else m_results->reportPass(testCase, ""); } else { bool passed = false; std::string compareMethod, outputResult; std::list allExpectedResults; for(std::map::const_iterator i=testCase.outputFiles.begin();i!=testCase.outputFiles.end();i++) { compareMethod=(*i).second; string expectedResult = loadExpectedResult((*i).first); if(expectedResult == "#Not found") { // std::ofstream output(i->first.c_str() + 8); // Take off the "file:///" from the begining // output << xmlResult; m_results->reportFail(testCase, xmlResult, allExpectedResults, "Bad test! Expected result not found: " + (*i).first); return; } // // // // // // // // if(compareMethod=="Text" || compareMethod=="Fragment" || compareMethod=="XML" || compareMethod=="text" || compareMethod=="xml-frag" || compareMethod=="xml" || compareMethod=="xml-output" || compareMethod=="xhtml-output") { outputResult = xmlResult; if(compareMethod=="Text" || compareMethod=="Fragment" || compareMethod=="text" || compareMethod=="xml-frag") { expectedResult=""+expectedResult+""; outputResult=""+outputResult+""; } // force XML 1.1 parsing outputResult = "" + outputResult; expectedResult = "" + expectedResult; try { XercesDOMParser parser; parser.setDoNamespaces(true); MemBufInputSource memSrc1((XMLByte*)outputResult.c_str(), (unsigned int)outputResult.size(), "", false); parser.parse(memSrc1); DOMDocument* doc1 = parser.getDocument(); MemBufInputSource memSrc2((XMLByte*)expectedResult.c_str(), (unsigned int)expectedResult.size(), "", false); parser.parse(memSrc2); DOMDocument* doc2 = parser.getDocument(); passed = compareNodes(doc1, doc2); } catch(...) {} } else if(compareMethod == "Inspect" || compareMethod == "inspect") { // Try if they match if(expectedResult==xmlResult) passed=true; } else { // TODO cout << "Test-case '" << testCase.name << "': Unsupported comparison method " << compareMethod << endl; } allExpectedResults.push_back(expectedResult); if(passed) break; } if(passed) { m_results->reportPass(testCase, ""); } else if(compareMethod == "Inspect") { m_results->reportInspect(testCase, xmlResult, allExpectedResults, ""); } else { m_results->reportFail(testCase, outputResult, allExpectedResults, ""); } } } void TestSuiteRunner::testErrors(const TestCase &testCase, const std::string &actualError) const { if(testCase.expectedErrors.empty()) { m_results->reportFailUnexpectedError(testCase, actualError, ""); } else { bool bFound = false; for(list::const_iterator i=testCase.expectedErrors.begin();i!=testCase.expectedErrors.end();i++) { if(*i=="*" || actualError.find(*i) != string::npos) { bFound = true; break; } } if(bFound) { m_results->reportPass(testCase, ""); } else { m_results->reportFailUnexpectedError(testCase, actualError, ""); } } } static string loadExpectedResult(const string &file) { string expectedResult = "#Not found"; try { Janitor stream((BinFileInputStream*)URLInputSource(file.c_str()).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int)stream->getSize(); expectedResult.resize(dwSize); stream->readBytes((XMLByte*)expectedResult.c_str(), dwSize); if(dwSize>3 && ((unsigned char)expectedResult[0])==0xEF && ((unsigned char)expectedResult[1])==0xBB && ((unsigned char)expectedResult[2])==0xBF) expectedResult.erase(0,3); for(string::iterator c=expectedResult.begin();c!=expectedResult.end();) if(*c==0xD) c=expectedResult.erase(c); else c++; while(expectedResult.size()>0 && expectedResult[expectedResult.size()-1]==0xA) expectedResult.erase(expectedResult.size()-1); if(expectedResult.find(""); expectedResult.erase(0, end + 2); } } } catch(...) {} return expectedResult; } static bool isIgnorableWS(DOMNode* node) { return node!=NULL && node->getNodeType()==DOMNode::TEXT_NODE && XMLChar1_0::isAllSpaces(node->getNodeValue(), XMLString::stringLen(node->getNodeValue())) && (node->getPreviousSibling()==NULL || (node->getPreviousSibling()->getNodeType()==DOMNode::ELEMENT_NODE || node->getPreviousSibling()->getNodeType()==DOMNode::PROCESSING_INSTRUCTION_NODE || node->getPreviousSibling()->getNodeType()==DOMNode::COMMENT_NODE)) && (node->getNextSibling()==NULL || (node->getNextSibling()->getNodeType()==DOMNode::ELEMENT_NODE || node->getNextSibling()->getNodeType()==DOMNode::PROCESSING_INSTRUCTION_NODE || node->getNextSibling()->getNodeType()==DOMNode::COMMENT_NODE)); } static bool compareNodes(DOMNode* node1, DOMNode* node2) { // cerr << (node1->getNodeType() == DOMNode::ATTRIBUTE_NODE ? "@" : "") << UTF8(node1->getNodeName()) // << ", " << (node2->getNodeType() == DOMNode::ATTRIBUTE_NODE ? "@" : "") << UTF8(node2->getNodeName()) << " -> "; if(node1->getNodeType()!=node2->getNodeType()) { // cerr << "false (node type)\n"; return false; } if(node1->hasChildNodes() != node2->hasChildNodes()) { // cerr << "false (child nodes)\n"; return false; } if(node1->getNodeType()==DOMNode::ELEMENT_NODE) { DOMElement* e1=(DOMElement*)node1; DOMElement* e2=(DOMElement*)node2; if(!XMLString::equals(e1->getNamespaceURI(), e2->getNamespaceURI())) { // cerr << "false (uri)\n"; return false; } if(!XMLString::equals(e1->getLocalName(), e2->getLocalName())) { // cerr << "false (localname)\n"; return false; } DOMNamedNodeMap* map1=e1->getAttributes(); DOMNamedNodeMap* map2=e2->getAttributes(); if(map1->getLength()!=map2->getLength()) { // cerr << "false (num attrs)\n"; return false; } for(unsigned int i=0;igetLength();i++) { DOMNode* a1=map1->item(i); DOMNode* a2=map2->getNamedItemNS(a1->getNamespaceURI(),a1->getLocalName()); if(a2==NULL) { // cerr << "false (no a2 attr)\n"; return false; } if(!compareNodes(a1,a2)) { // cerr << "false (attr)\n"; return false; } } } else { if(!XMLString::equals(node1->getNodeName(),node2->getNodeName())) { // cerr << "false (node name)\n"; return false; } if(!XMLString::equals(node1->getNodeValue(),node2->getNodeValue())) { // cerr << "false (node value)\n"; // cerr << " \"" << UTF8(node1->getNodeValue()) << "\" != \"" << UTF8(node2->getNodeValue()) << "\"\n"; return false; } } DOMNode* n1=node1->getFirstChild(); DOMNode* n2=node2->getFirstChild(); while(n1 && n2) { if(isIgnorableWS(n1)) { n1=n1->getNextSibling(); } if(isIgnorableWS(n2)) { n2=n2->getNextSibling(); } if(n1==NULL || n2==NULL) break; if(!compareNodes(n1, n2)) { // cerr << "false (child node)\n"; return false; } n1=n1->getNextSibling(); n2=n2->getNextSibling(); } if(isIgnorableWS(n1)) { n1=n1->getNextSibling(); } if(isIgnorableWS(n2)) { n2=n2->getNextSibling(); } if(n1!=NULL || n2!=NULL) { // cerr << "false (extra children)\n"; return false; } // cerr << "true\n"; return true; } XQilla-2.3.4/src/xqts/TestSuiteResultListener.cpp0000644001725400016040000006145613273140037017003 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2018 Oracle and/or its affiliates. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include "../config/xqilla_config.h" #include #include #include #include #include #ifdef _MSC_VER #define snprintf _snprintf #endif #include #include #include #include #include #include // Added so xqilla will compile on SunOS 10 using STLPort #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; KnownErrorChecker::KnownErrorChecker(TestSuiteResultListener *results) : results_(results) { } void KnownErrorChecker::reportVersion(const std::string &version, bool update) { results_->reportVersion(version, update); } void KnownErrorChecker::startTestGroup(const std::string &name) { results_->startTestGroup(name); } void KnownErrorChecker::endTestGroup() { results_->endTestGroup(); } void KnownErrorChecker::reportPass(const TestCase &testCase, const string &comment) { map::iterator i = errors_.find(testCase.name); if(i != errors_.end() && i->second.reason != "inspect") { nowPass_[i->first] = i->second; errors_.erase(i); } results_->reportPass(testCase, comment); } void KnownErrorChecker::reportInspect(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i != errors_.end()) { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "inspect"; errors_[testCase.name].comment = newComment; results_->reportInspect(testCase, actualResult, expectedResult, newComment); } void KnownErrorChecker::reportSkip(const TestCase &testCase, const std::string &comment) { results_->reportSkip(testCase, comment); } void KnownErrorChecker::reportFail(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "result failure"; errors_[testCase.name].comment = newComment; results_->reportFail(testCase, actualResult, expectedResult, newComment); } void KnownErrorChecker::reportFailNoError(const TestCase &testCase, const string &actualResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "no error failure"; errors_[testCase.name].comment = newComment; results_->reportFailNoError(testCase, actualResult, newComment); } void KnownErrorChecker::reportFailUnexpectedError(const TestCase &testCase, const string &unexpectedError, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "error failure"; errors_[testCase.name].comment = newComment; results_->reportFailUnexpectedError(testCase, unexpectedError, newComment); } bool KnownErrorChecker::printReport() const { if(!nowFail_.empty() || !nowPass_.empty()) { cout << "************************************************************************" << endl; if(!nowFail_.empty()) { cout << (unsigned int)nowFail_.size() << " unexpected failures:" << endl; for(vector::const_iterator i = nowFail_.begin(); i != nowFail_.end(); ++i) { cout << "\t" << *i << endl; } } if(!nowPass_.empty()) { cout << (unsigned int)nowPass_.size() << " unexpected passes:" << endl; for(map::const_iterator j = nowPass_.begin(); j != nowPass_.end(); ++j) { cout << "\t" << j->first << endl; } } } return nowFail_.empty(); } class ErrorFileHandler : public HandlerBase { public: ErrorFileHandler(map &errors) : errors_(errors) {} virtual void startElement(const XMLCh* const name, AttributeList &attributes) { string szName = UTF8(name); if(szName == "error") { KnownErrorChecker::Error &error = errors_[UTF8(attributes.getValue("id"))]; error.reason = UTF8(attributes.getValue("reason")); error.comment = UTF8(attributes.getValue("comment")); error.action = UTF8(attributes.getValue("action")); } } private: map &errors_; }; bool KnownErrorChecker::loadErrors(const std::string &errorFile) { try { SAXParser parser; ErrorFileHandler handler(errors_); parser.setDocumentHandler(&handler); LocalFileInputSource is(X(errorFile.c_str())); parser.parse(is); } catch(const XMLException& e) { cout << "Error while reading error file: " << UTF8(e.getMessage()) << endl; return false; } return true; } bool KnownErrorChecker::saveErrors(const std::string &errorFile) const { ofstream file(errorFile.c_str()); if(!file.is_open()) return false; file << "" << endl; for(map::const_iterator i = errors_.begin(); i != errors_.end(); ++i) { file << " first << "\" reason=\"" << i->second.reason << "\""; if(i->second.action != "") file << " action=\"" << i->second.action << "\""; if(i->second.comment != "") file << " comment=\"" << i->second.comment << "\""; file << "/>" << endl; } file << "" << endl; file.close(); return true; } bool KnownErrorChecker::isSkippedTest(const std::string &testName) const { if(errors_.empty()) return false; std::map::const_iterator it = errors_.find(testName); if(it != errors_.end() && (*it).second.action == "skip") return true; else return false; } //////////////////////////////////////////////////////////////////////////////////////////////////// ConsoleResultListener::ConsoleResultListener() : m_nTotalTests(0), m_nPassedTests(0), m_nSkippedTests(0), m_nInspectTests(0), testDepth_(0), needNewline_(false) { } void ConsoleResultListener::startTestGroup(const string &name) { if(needNewline_) cout << endl; string indent(testDepth_ * 2, ' '); cout << indent << name << ": " << flush; ++testDepth_; needNewline_ = true; if(m_szFullTestName != "") m_szFullTestName += ":"; m_szFullTestName += name; } void ConsoleResultListener::endTestGroup() { if(needNewline_) cout << endl; --testDepth_; needNewline_ = false; size_t nColonPos = m_szFullTestName.find_last_of(":"); if(nColonPos != (size_t)-1) m_szFullTestName = string(m_szFullTestName.c_str(), nColonPos); else m_szFullTestName = ""; } void ConsoleResultListener::reportPass(const TestCase &testCase, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "p"; ++m_nTotalTests; ++m_nPassedTests; } cout << "." << flush; } void ConsoleResultListener::reportInspect(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "i"; ++m_nTotalTests; ++m_nInspectTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; ++m_nInspectTests; } cout << "," << flush; errorStream_ << "************************************************************************" << endl; errorStream_ << "* For inspection:" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; for(std::list::const_iterator it=expectedResult.begin();it!=expectedResult.end();it++) { errorStream_ << "********** Expected result: **********" << endl;; errorStream_ << *it << endl; errorStream_ << endl; } if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportSkip(const TestCase &testCase, const std::string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "s"; ++m_nTotalTests; ++m_nSkippedTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; ++m_nSkippedTests; } cout << "^" << flush; } void ConsoleResultListener::reportFail(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; for(std::list::const_iterator it=expectedResult.begin();it!=expectedResult.end();it++) { errorStream_ << "********** Expected result: **********" << endl;; errorStream_ << *it << endl; errorStream_ << endl; } if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportFailNoError(const TestCase &testCase, const string &actualResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportFailUnexpectedError(const TestCase &testCase, const string &unexpectedError, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual error: **********" << endl; errorStream_ << unexpectedError << endl;; errorStream_ << endl; if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } bool ConsoleResultListener::printReport() const { cout << "************************************************************************" << endl; cout << m_nTotalTests << " Tests, " << m_nPassedTests << " passed, " << (m_nTotalTests - m_nPassedTests - m_nSkippedTests - m_nInspectTests) << " failed, " << m_nSkippedTests << " skipped, " << m_nInspectTests << " for inspection"; cout << " (" << ((float)m_nPassedTests)/(m_nTotalTests-m_nSkippedTests-m_nInspectTests)*100 << "%)" << endl; cerr << errorStream_.str(); return (m_nTotalTests - m_nPassedTests - m_nSkippedTests - m_nInspectTests) == 0; } void ConsoleResultListener::testCaseToErrorStream(const TestCase &testCase) { errorStream_ << "* Test-case '" << m_szFullTestName << ":" << testCase.name << "':" << endl; errorStream_ << "* Query URL: " << testCase.queryURL << endl; if(!testCase.contextItem.empty()) errorStream_ << "* Context Item: " << testCase.contextItem << endl; if(!testCase.defaultCollection.empty()) errorStream_ << "* Default collection: " << testCase.defaultCollection << endl; std::map::const_iterator i; std::list >::const_iterator j; for(i = testCase.inputVars.begin(); i != testCase.inputVars.end(); ++i) { errorStream_ << "* Input: " << i->first << " -> " << i->second << endl; } for(i = testCase.inputURIVars.begin(); i != testCase.inputURIVars.end(); ++i) { errorStream_ << "* Input URI: " << i->first << " -> " << i->second << endl; } for(i = testCase.extraVars.begin(); i != testCase.extraVars.end(); ++i) { errorStream_ << "* Variable: " << i->first << " -> " << i->second << endl; } for(j = testCase.moduleFiles.begin(); j != testCase.moduleFiles.end(); ++j) { errorStream_ << "* Module: " << j->first << " -> " << j->second << endl; } for(i = testCase.outputFiles.begin(); i != testCase.outputFiles.end(); ++i) { errorStream_ << "* Output: " << i->second << " -> " << i->first << endl; } if(!testCase.expectedErrors.empty()) { errorStream_ << "* Errors:"; for(std::list::const_iterator k = testCase.expectedErrors.begin(); k != testCase.expectedErrors.end(); ++k) { errorStream_ << " " << *k; } errorStream_ << endl; } errorStream_ << endl; errorStream_ << "********** Query: **********" << endl; errorStream_ << testCase.query << endl; errorStream_ << endl; } //////////////////////////////////////////////////////////////////////////////////////////////////// XMLReportResultListener::XMLReportResultListener() : update_(false), anonymous_(false) { } void XMLReportResultListener::reportVersion(const std::string &version, bool update) { version_ = version; update_ = update; } void XMLReportResultListener::startTestGroup(const std::string &name) { } void XMLReportResultListener::endTestGroup() { } void XMLReportResultListener::reportPass(const TestCase &testCase, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportSkip(const TestCase &testCase, const std::string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFailNoError(const TestCase &testCase, const std::string &actualResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::setImplementation(const std::string &name, const std::string &version, const std::string &description) { implName_ = name; implVersion_ = version; implDescription_ = description; } void XMLReportResultListener::setOrganization(const std::string &name, const std::string &website) { orgName_ = name; orgWebsite_ = website; } void XMLReportResultListener::setSubmittor(const std::string &name, const std::string &email) { submittorName_ = name; submittorEmail_ = email; } void XMLReportResultListener::setTestRun(const std::string &transformation, const std::string &comments) { testTransformation_ = transformation; testComments_ = comments; } void XMLReportResultListener::setAnonymous(bool anon) { anonymous_ = anon; } void XMLReportResultListener::addImplementationDefinedItem(const std::string &name, const std::string &value) { implDefinedItems_[name] = value; } void XMLReportResultListener::addFeature(const std::string &name, bool supported) { features_[name] = supported; } void XMLReportResultListener::addContextProperty(const std::string &name, const std::string &contextType, const std::string &value) { contextProperties_[name].first = contextType; contextProperties_[name].second = value; } void XMLReportResultListener::printReport() const { cout << "" << endl; cout << endl; cout << " " << endl; cout << endl; cout << " " << endl; cout << endl; cout << " " << endl; cout << endl; if(implDescription_ != "") { cout << " " << implDescription_ << "" << endl; cout << endl; } if(!implDefinedItems_.empty()) { cout << " " << endl; for(map::const_iterator i = implDefinedItems_.begin(); i != implDefinedItems_.end(); ++i) { cout << " first << "\" value=\"" << i->second << "\"/>" << endl; } cout << " " << endl; cout << endl; } if(!features_.empty()) { cout << " " << endl; for(map::const_iterator i = features_.begin(); i != features_.end(); ++i) { cout << " first << "\" supported=\"" << (i->second ? "true" : "false") << "\"/>" << endl; } cout << " " << endl; cout << endl; } if(!contextProperties_.empty()) { cout << " " << endl; for(map >::const_iterator i = contextProperties_.begin(); i != contextProperties_.end(); ++i) { cout << " first << "\" context-type=\"" << i->second.first << "\" value=\"" << i->second.second << "\"/>" << endl; } cout << " " << endl; cout << endl; } cout << " " << endl; cout << endl; cout << " XQuery" << endl; cout << endl; time_t currentTime = ::time(0); struct tm *curLocalDate = ::localtime(¤tTime); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02d",curLocalDate->tm_year+1900, curLocalDate->tm_mon+1, curLocalDate->tm_mday); cout << " " << endl; cout << " " << endl; if(testTransformation_ != "") cout << " " << testTransformation_ << "" << endl; cout << "

    XML and fragment comparisons are performed by serializing the results,"; cout << " re-parsing them, and using a custom deep-equal like function. This function currently ignores"; cout << " any text nodes that consist entirely of whitespace.

    " << endl; if(testComments_ != "") cout << " " << testComments_ << "" << endl; cout << " " << endl; cout << endl; cout << outputStream_.str(); cout << endl; cout << "" << endl; } XQilla-2.3.4/configure0000755001725400016040000217544613273140037011571 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.64 for XQilla 2.3.4. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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. 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 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" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # 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. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_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 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=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&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; } # 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' 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 if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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='XQilla' PACKAGE_TARNAME='xqilla' PACKAGE_VERSION='2.3.4' PACKAGE_STRING='XQilla 2.3.4' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src/runtime/Result.cpp" # 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_header_list= ac_func_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ALLOCA LEXLIB LEX_OUTPUT_ROOT LEX YACC CXXCPP CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC tidy_library tidy_lib tidy_include faxpp_library faxpp_lib faxpp_include am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX BUILD_DOM_SAMPLES_FALSE BUILD_DOM_SAMPLES_TRUE xerces_lib xerces_include_dir xerces_include MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE 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_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_debug enable_rpath with_xerces enable_dependency_tracking with_faxpp with_tidy enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS CPP CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=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 $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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 XQilla 2.3.4 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/xqilla] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of XQilla 2.3.4:";; 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-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-debug Build a debugging version. --disable-rpath Patches libtool to not use rpath in the libraries produced. --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --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) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-xerces=DIR Path of Xerces. DIR="/usr/local" --with-faxpp=DIR Path of FAXPP. DIR="/usr/local" --with-tidy=DIR Path of the HTML Tidy library. DIR="/usr" --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF XQilla configure 2.3.4 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_compile # 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_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 || $as_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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_link # 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_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; } >/dev/null && { 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_cpp # 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_c_try_run # 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # 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; } >/dev/null && { 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $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 || $as_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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} return $ac_retval } # ac_fn_cxx_try_link # 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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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; test "x$as_lineno_stack" = x && { as_lineno=; 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 XQilla $as_me 2.3.4, which was generated by GNU Autoconf 2.64. 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 cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX 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 cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX 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 cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX 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 ac_site_file1=$CONFIG_SITE 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 -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" 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. if 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 as_fn_append ac_header_list " sys/time.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_func_list " alarm" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in autotools "$srcdir"/autotools; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in autotools \"$srcdir\"/autotools" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; 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 test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.11' # 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 test "${ac_cv_path_install+set}" = set; 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_path_mkdir+set}" = set; 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 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. test -d ./--version && rmdir ./--version MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac 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 test "${ac_cv_prog_AWK+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=XQilla VERSION=2.3.4 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"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers src/config/xqilla_config_unix.h" # Turn off rebuilding of configure, Makefile.in etc. by default { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Check debug option { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-debug option specified" >&5 $as_echo_n "checking if --enable-debug option specified... " >&6; } # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; xqilla_cv_debug="$enable_debug" else xqilla_cv_debug="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xqilla_cv_debug" >&5 $as_echo "$xqilla_cv_debug" >&6; } # Check if rpath is disabled { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-rpath option specified" >&5 $as_echo_n "checking if --enable-rpath option specified... " >&6; } # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; xqilla_cv_rpath="$enable_rpath" else xqilla_cv_rpath="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xqilla_cv_rpath" >&5 $as_echo "$xqilla_cv_rpath" >&6; } # Don't override anything if it's already set from the environment. optimize_def="-O" case $host_os in aix4.3.*|aix5*) optimize_def="-O2" CC=${CC-"xlc_r"} CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -Wl,-brtl";; bsdi3*) CC=${CC-"shlicc2"} LIBS="$LIBS -lipc";; cygwin*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread";; gnu*|k*bsd*-gnu|linux*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; hpux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";; irix*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" LIBS="$LIBS -lsocket -lsvipc";; osf*) CPPFLAGS="$CPPFLAGS -pthread";; *qnx*) $as_echo "#define HAVE_QNX 1" >>confdefs.h ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" LIBS="$LIBS -lm";; esac # Set CFLAGS/CXXFLAGS. We MUST set the flags before we call autoconf # compiler configuration macros, because if we don't, they set CFLAGS # to no optimization and -g, which isn't what we want. if test "$xqilla_cv_debug" = "yes"; then $as_echo "#define DEBUG 1" >>confdefs.h CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else CFLAGS=${CFLAGS-$optimize_def} CXXFLAGS=${CXXFLAGS-"$CFLAGS"} fi # Check for the Xerces-C library { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-xerces=DIR option specified" >&5 $as_echo_n "checking if --with-xerces=DIR option specified... " >&6; } # Check whether --with-xerces was given. if test "${with_xerces+set}" = set; then : withval=$with_xerces; with_xerces="$withval" else with_xerces="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_xerces" >&5 $as_echo "$with_xerces" >&6; } if test "$with_xerces" = "no"; then with_xerces="/usr/local" fi # Find the include directory if test `ls $with_xerces/src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/src" xerces_include="-I$with_xerces/src" xerces_source_tree="yes" elif test `ls $with_xerces/include/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/include" xerces_include="-I$with_xerces/include" xerces_source_tree="no" elif test `ls $with_xerces/../src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/../src" xerces_include="-I$with_xerces/../src -I$with_xerces/src" xerces_source_tree="yes" else as_fn_error "Unable to find the Xerces-C include directory." "$LINENO" 5 fi # Work out the Xerces-C version { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xerces-C version" >&5 $as_echo_n "checking for Xerces-C version... " >&6; } xerces_version_major=`grep "^\#define XERCES_VERSION_MAJOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MAJOR \([0-9]*\)/\1/'` xerces_version_minor=`grep "^\#define XERCES_VERSION_MINOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MINOR \([0-9]*\)/\1/'` xerces_version=$xerces_version_major"."$xerces_version_minor { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xerces_version" >&5 $as_echo "$xerces_version" >&6; } if test "$xerces_version_major" -lt "3" -a "$xerces_source_tree" = "no"; then as_fn_error "For Xerces-C versions before 3.0 the source tree is required to build XQilla. You must specify the path to the Xerces-C source tree using --with-xerces." "$LINENO" 5 fi # Find the library if test `ls $with_xerces/lib/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/lib" elif test `ls $with_xerces/src/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/src" else if test "$xerces_source_tree" = "yes" -a "$xerces_version_major" -ge "3"; then xerces_lib="$with_xerces/src" else xerces_lib="$with_xerces/lib" fi { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to find the Xerces-C library. Guessed path is $xerces_lib." >&5 $as_echo "$as_me: WARNING: Unable to find the Xerces-C library. Guessed path is $xerces_lib." >&2;} fi # The DOM samples only build against Xerces-C 3.0 or newer if test "$xerces_version_major" -ge "3"; then BUILD_DOM_SAMPLES_TRUE= BUILD_DOM_SAMPLES_FALSE='#' else BUILD_DOM_SAMPLES_TRUE='#' BUILD_DOM_SAMPLES_FALSE= fi # Check for the BinInputStream::getContentType() method CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= 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 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 test "${ac_cv_prog_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 rm -f conftest.er1 conftest.err fi $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. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; 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 conftest.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 for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&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 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then : $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_set_status 77 as_fn_error "C++ compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } fi ac_exeext=$ac_cv_exeext # 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 the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { { 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: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out ac_clean_files=$ac_clean_files_save # 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; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $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$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 { $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 test "${ac_cv_objext+set}" = set; 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 test "${ac_cv_cxx_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu 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 test "${am_cv_CXX_dependencies_compiler_type+set}" = set; 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'. 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 8's {/usr,}/bin/sh. touch 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 ;; 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XERCES_CPP_NAMESPACE_QUALIFIER BinMemInputStream(0, 0).getContentType(); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_found_getcontenttype="yes" else ac_found_getcontenttype="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 CPPFLAGS="$CPPFLAGS_BKUP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the Xerces-C library supports the BinInputStream::getContentType() method" >&5 $as_echo_n "checking if the Xerces-C library supports the BinInputStream::getContentType() method... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found_getcontenttype" >&5 $as_echo "$ac_found_getcontenttype" >&6; } if test "$ac_found_getcontenttype" = yes then $as_echo "#define HAVE_GETCONTENTTYPE 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8." >&5 $as_echo "$as_me: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8." >&2;} fi # Check for the RegularExpression::allMatches() method CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" 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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression(".*").allMatches(0, 0, 0, 0); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_found_allmatches="yes" else ac_found_allmatches="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 CPPFLAGS="$CPPFLAGS_BKUP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the Xerces-C library supports the RegularExpression::allMatches() method" >&5 $as_echo_n "checking if the Xerces-C library supports the RegularExpression::allMatches() method... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found_allmatches" >&5 $as_echo "$ac_found_allmatches" >&6; } if test "$ac_found_allmatches" = yes then $as_echo "#define HAVE_ALLMATCHES 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8." >&5 $as_echo "$as_me: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8." >&2;} fi # Check if the FAXPP library is present { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-faxpp=DIR option specified" >&5 $as_echo_n "checking if --with-faxpp=DIR option specified... " >&6; } # Check whether --with-faxpp was given. if test "${with_faxpp+set}" = set; then : withval=$with_faxpp; with_faxpp="$withval" else with_faxpp="/usr/local" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_faxpp" >&5 $as_echo "$with_faxpp" >&6; } if test "$with_faxpp" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the FAXPP library is present" >&5 $as_echo_n "checking if the FAXPP library is present... " >&6; } if test `ls $with_faxpp/lib/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp/lib -R$with_faxpp/lib" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_faxpp/include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/../include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/../include" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } faxpp_lib="" faxpp_library="" faxpp_include="" fi fi # Check if the HTML Tidy library is present { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-tidy=DIR option specified" >&5 $as_echo_n "checking if --with-tidy=DIR option specified... " >&6; } # Check whether --with-tidy was given. if test "${with_tidy+set}" = set; then : withval=$with_tidy; with_tidy="$withval" else with_tidy="/usr" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_tidy" >&5 $as_echo "$with_tidy" >&6; } if test "$with_tidy" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the HTML Tidy library is present" >&5 $as_echo_n "checking if the HTML Tidy library is present... " >&6; } if test `ls $with_tidy/lib/libtidy.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_tidy/include/tidy/tidy.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LIBTIDY 1" >>confdefs.h tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include/tidy" elif test `ls $with_tidy/include/tidy.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LIBTIDY 1" >>confdefs.h tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tidy_lib="" tidy_library="" tidy_include="" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tidy_lib="" tidy_library="" tidy_include="" fi fi # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 rm -f conftest.er1 conftest.err fi $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 test "${ac_cv_cxx_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cxx_g+set}" = set; 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 test "${am_cv_CXX_dependencies_compiler_type+set}" = set; 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'. 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 8's {/usr,}/bin/sh. touch 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 ;; 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 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 test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_CC+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 rm -f conftest.er1 conftest.err fi $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 test "${ac_cv_c_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cc_g+set}" = set; 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 test "${ac_cv_prog_cc_c89+set}" = set; 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 #include #include /* 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 test "${am_cv_CC_dependencies_compiler_type+set}" = set; 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'. 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 8's {/usr,}/bin/sh. touch 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 ;; 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 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.2.6' macro_revision='1.3012' ltmain="$ac_aux_dir/ltmain.sh" { $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 test "${ac_cv_path_SED+set}" = set; 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" { test -f "$ac_path_SED" && $as_test_x "$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 grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; 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" { test -f "$ac_path_GREP" && $as_test_x "$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 test "${ac_cv_path_EGREP+set}" = set; 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" { test -f "$ac_path_EGREP" && $as_test_x "$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 fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; 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" { test -f "$ac_path_FGREP" && $as_test_x "$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 test "${lt_cv_path_LD+set}" = set; 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 test "${lt_cv_prog_gnu_ld+set}" = set; 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 test "${lt_cv_path_NM+set}" = set; 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 "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" 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 test "${ac_cv_prog_DUMPBIN+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 -symbols" "link -dump -symbols" 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 test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 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 test "${lt_cv_nm_interface+set}" = set; 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:5855: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5858: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5861: 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 test "${lt_cv_sys_max_cmd_len+set}" = set; 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; ;; 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 ;; 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"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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"}, \ = c,a/b,, \ && 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 for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; 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 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 test "${ac_cv_prog_OBJDUMP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${lt_cv_deplibs_check_method+set}" = set; 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. if ( 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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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 ;; 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]) 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 Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) 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_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}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $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 fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $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 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 else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru 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 test "${ac_cv_prog_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_STRIP+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_RANLIB+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # 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 test "${lt_cv_sys_global_symbol_pipe+set}" = set; 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};"\ " /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 # 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 #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. */ 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_save_LIBS="$LIBS" lt_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_save_LIBS" CFLAGS="$lt_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 # 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 7067 "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*|ppc*-*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" ;; ppc64-*linux*|powerpc64-*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" ;; ppc*-*linux*|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 test "${lt_cv_cc_needs_belf+set}" = set; 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 ;; sparc*-*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*) LD="${LD-ld} -m elf64_sparc" ;; *) 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" 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 test "${ac_cv_prog_DSYMUTIL+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_NMEDIT+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_LIPO+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_LIPO+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_OTOOL+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_OTOOL64+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${lt_cv_apple_cc_single_mod+set}" = set; 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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 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 test "${lt_cv_ld_exported_symbols_list+set}" = set; 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; } 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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac 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 test "${ac_cv_prog_CPP+set}" = set; 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; 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 " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done 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" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done 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 test "${ac_cv_prog_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 test "${ac_cv_prog_ac_ct_CXX+set}" = set; 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 rm -f conftest.er1 conftest.err fi $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 test "${ac_cv_cxx_compiler_gnu+set}" = set; 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 test "${ac_cv_prog_cxx_g+set}" = set; 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 test "${am_cv_CXX_dependencies_compiler_type+set}" = set; 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'. 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 8's {/usr,}/bin/sh. touch 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 ;; 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 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 test "${ac_cv_prog_CXXCPP+set}" = set; 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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;} _lt_caught_CXX_error=yes; } 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 # Set options enable_dlopen=no enable_win32_dll=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; pic_mode="$withval" 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 test "${lt_cv_objdir+set}" = set; 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 # Sed substitution that helps us do robust quoting. It backslashifies # 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' # 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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "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 test "${lt_cv_path_MAGIC_CMD+set}" = set; 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 test "${lt_cv_path_MAGIC_CMD+set}" = set; 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* ## 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... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $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 test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; 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:9123: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9127: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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= { $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 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' ;; 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 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) 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' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # 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='' ;; 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*) 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}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # 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 test "${lt_cv_prog_compiler_pic_works+set}" = set; 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:9462: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9466: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_static_works+set}" = set; 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o+set}" = set; 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:9567: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9571: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o+set}" = set; 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:9622: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9626: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_flag_spec_ld= 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 ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = 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 *\ [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.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _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' 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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' 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 ;; 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) 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= 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; 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; $ECHO \"$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*) # 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= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) 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 $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' 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 $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 ;; 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 $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 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 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")) && (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 link_all_deplibs=no 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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' 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. 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 `$ECHO "X$deplibs" | $Xsed -e '\''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' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' 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=echo 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 ;; freebsd1*) ld_shlibs=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 -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 -fPIC ${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 -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${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_flag_spec_ld='+b $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 -a "$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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${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' ;; *) archive_cmds='$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 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 $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. 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) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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* | netbsdelf*-gnu) 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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 ${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 ${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; } $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 archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; 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 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 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 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=`$ECHO "X$lib" | $Xsed -e '\''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 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,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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 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 ;; freebsd1*) dynamic_linker=no ;; 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[123]*) 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 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 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' ;; interix[3-9]*) version_type=linux 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 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 Linux ELF. linux* | k*bsd*-gnu) version_type=linux 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 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 : 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 # 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 # 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;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $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' ;; netbsdelf*-gnu) version_type=linux 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='NetBSD ld.elf_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 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 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 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 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 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 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 test "${ac_cv_lib_dl_dlopen+set}" = set; 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" = x""yes; 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" = x""yes; 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 test "${ac_cv_lib_dld_shl_load+set}" = set; 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" = x""yes; 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" = x""yes; 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 test "${ac_cv_lib_dl_dlopen+set}" = set; 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" = x""yes; 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 test "${ac_cv_lib_svld_dlopen+set}" = set; 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" = x""yes; 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 test "${ac_cv_lib_dld_dld_link+set}" = set; 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" = x""yes; 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 test "${lt_cv_dlopen_self+set}" = set; 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 12005 "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 void fnord() { int i=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; /* 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 test "${lt_cv_dlopen_self_static+set}" = set; 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 12101 "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 void fnord() { int i=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; /* 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_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_flag_spec_ld_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 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_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++"} 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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "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 test "${lt_cv_path_LD+set}" = set; 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 test "${lt_cv_prog_gnu_ld+set}" = set; 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 -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -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 "\-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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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. 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 } }' 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 "$aix_libpath"; then 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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' 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*) # _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' 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 ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' 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=echo 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 ;; freebsd[12]*) # 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*) ;; 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; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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; $ECHO "X$list" | $Xsed' ;; *) 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -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) 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; $ECHO "X$list" | $Xsed' 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 | $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 | $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 | $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will 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; $ECHO \"$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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # 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; $ECHO \"$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='echo' # 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=echo 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" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${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 "\-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*) # 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='echo' # 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 -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 -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 "\-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 "\-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' ;; *) 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 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 $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 else prev= fi if test "$pre_test_object_deps_done" = no; then case $p 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 ;; *.$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 # 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*) # 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= { $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; } # 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= ;; 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 ;; 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) 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*) # IBM XL 8.0 on PPC 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* | netbsdelf*-gnu) ;; *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*) # 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}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # 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 test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; 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:14057: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14061: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; 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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; 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:14156: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14160: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; 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:14208: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14212: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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' 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 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")) && (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*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $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; } $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 archive_cmds_need_lc_CXX=no else 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* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; 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 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 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=`$ECHO "X$lib" | $Xsed -e '\''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 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,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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 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 ;; freebsd1*) dynamic_linker=no ;; 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[123]*) 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 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 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' ;; interix[3-9]*) version_type=linux 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 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 Linux ELF. linux* | k*bsd*-gnu) version_type=linux 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 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 : 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 # 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 # 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;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $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' ;; netbsdelf*-gnu) version_type=linux 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='NetBSD ld.elf_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 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 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 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 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 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 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 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 ac_config_commands="$ac_config_commands libtool" # Only expand once: 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 test "${ac_cv_prog_CPP+set}" = set; 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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.$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.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 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 { $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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; 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 for ac_prog in 'bison -y' 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 test "${ac_cv_prog_YACC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_YACC="$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 YACC=$ac_cv_prog_YACC if test -n "$YACC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 $as_echo "$YACC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="${am_missing_run} bison" if test "$YACC" != "bison -y"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla requires bison if you need to rebuild the parser." >&5 $as_echo "$as_me: WARNING: XQilla requires bison if you need to rebuild the parser." >&2;} fi for ac_prog in flex lex 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 test "${ac_cv_prog_LEX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LEX="$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 LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 $as_echo "$LEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { yyless (input () != 0); } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int main (void) { return ! yylex () + ! yywrap (); } _ACEOF { { ac_try="$LEX conftest.l" 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 "$LEX conftest.l") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } if test "${ac_cv_prog_lex_root+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else as_fn_error "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 $as_echo "$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } if test "${ac_cv_lib_lex+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_LIBS=$LIBS ac_cv_lib_lex='none needed' for ac_lib in '' -lfl -ll; do LIBS="$ac_lib $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lex=$ac_lib fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 $as_echo "$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no ac_save_LIBS=$LIBS LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then $as_echo "#define YYTEXT_POINTER 1" >>confdefs.h fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = :; then LEX=${am_missing_run}flex fi # Check for unicode support in flex { $as_echo "$as_me:${as_lineno-$LINENO}: checking unicode support in flex" >&5 $as_echo_n "checking unicode support in flex... " >&6; } flex --help | grep "\-U" > /dev/null if test "$?" -eq "0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer." >&5 $as_echo "$as_me: WARNING: XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer." >&2;} fi # Set up extra compiler flags for GCC if test "$GXX" = "yes"; then if test "$xqilla_cv_debug" = "yes"; then CXXFLAGS="$CXXFLAGS -Wall -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS -Wall ${targetoptions}" else CXXFLAGS="$CXXFLAGS -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS ${targetoptions}" fi fi # Patch libtool to not use rpath if required if test "$xqilla_cv_rpath" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: Patching libtool to not use rpath." >&5 $as_echo "Patching libtool to not use rpath." >&6; } sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ "/' mv libtool-2 libtool chmod 755 libtool fi # Checks for libraries. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $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 connect (); int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=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_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF LIBS="-lsocket $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $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 gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=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_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF LIBS="-lnsl $LIBS" fi # Checks for header files. # 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 test "${ac_cv_working_alloca_h+set}" = set; 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 test "${ac_cv_func_alloca_works+set}" = set; 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 */ char *alloca (); # 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 test "${ac_cv_os_cray+set}" = set; 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" eval as_val=\$$as_ac_var if test "x$as_val" = 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 test "${ac_cv_c_stack_direction+set}" = set; 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 () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { return find_stack_direction () < 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 { $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 test "${ac_cv_header_stdc+set}" = set; 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 for ac_header in limits.h malloc.h stddef.h stdlib.h string.h sys/time.h sys/timeb.h wchar.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" eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if test "${ac_cv_header_stdbool_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; bool e = &s; char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; # if defined __xlc__ || defined __GNUC__ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This test is not quite right, since xlc is allowed to reject this program, as the initializer for xlcbug is not one of the forms that C requires support for. However, doing the test right would require a runtime test, and that would make cross-compilation harder. Let us hope that IBM fixes the xlc bug, and also adds support for this kind of constant expression. In the meantime, this test will reject xlc, which is OK, since our stdbool.h substitute should suffice. We also test this with GCC, where it should work, to detect more quickly whether someone messes up the test in the future. */ char digs[] = "0123456789"; int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); # endif /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $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 test "${ac_cv_header_time+set}" = set; 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 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTRDIFF_T 1 _ACEOF fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=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_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 $as_echo_n "checking for working mktime... " >&6; } if test "${ac_cv_func_working_mktime+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_working_mktime=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #include #include #ifdef HAVE_UNISTD_H # include #endif #ifndef HAVE_ALARM # define alarm(X) /* empty */ #endif /* Work around redefinition to rpl_putenv by other config tests. */ #undef putenv static time_t time_t_max; static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ static char *tz_strings[] = { (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) /* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ struct tm tm; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; tm.tm_mday = 5; tm.tm_hour = 2; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; return mktime (&tm) != (time_t) -1; } static int mktime_test1 (now) time_t now; { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int mktime_test (now) time_t now; { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) && mktime_test1 ((time_t) (time_t_min + now))); } static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ struct tm tm; tm.tm_year = 96; tm.tm_mon = 3; tm.tm_mday = 0; tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); return tm.tm_mon == 2 && tm.tm_mday == 31; } static int bigtime_test (j) int j; { struct tm tm; time_t now; tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; now = mktime (&tm); if (now != (time_t) -1) { struct tm *lt = localtime (&now); if (! (lt && lt->tm_year == tm.tm_year && lt->tm_mon == tm.tm_mon && lt->tm_mday == tm.tm_mday && lt->tm_hour == tm.tm_hour && lt->tm_min == tm.tm_min && lt->tm_sec == tm.tm_sec && lt->tm_yday == tm.tm_yday && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) return 0; } return 1; } static int year_2050_test () { /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ignoring leap seconds. */ unsigned long int answer = 2527315200UL; struct tm tm; time_t t; tm.tm_year = 2050 - 1900; tm.tm_mon = 2 - 1; tm.tm_mday = 1; tm.tm_hour = tm.tm_min = tm.tm_sec = 0; tm.tm_isdst = -1; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); /* Check that the result is either a failure, or close enough to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 || (0 < t && answer - 120 <= t && t <= answer + 120)); } int main () { time_t t, delta; int i, j; /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ alarm (60); for (;;) { t = (time_t_max << 1) + 1; if (t <= time_t_max) break; time_t_max = t; } time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) if (! mktime_test (t)) return 1; if (! (mktime_test ((time_t) 1) && mktime_test ((time_t) (60 * 60)) && mktime_test ((time_t) (60 * 60 * 24)))) return 1; for (j = 1; ; j <<= 1) if (! bigtime_test (j)) return 1; else if (INT_MAX / 2 < j) break; if (! bigtime_test (INT_MAX)) return 1; } return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_working_mktime=yes else ac_cv_func_working_mktime=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 $as_echo "$ac_cv_func_working_mktime" >&6; } if test $ac_cv_func_working_mktime = no; then case " $LIBOBJS " in *" mktime.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; esac fi for ac_func in floor ftime gettimeofday memmove memset pow sqrt strchr strstr tzset localtime_r 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" eval as_val=\$$as_ac_var if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile include/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 test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_DOM_SAMPLES_TRUE}" && test -z "${BUILD_DOM_SAMPLES_FALSE}"; then as_fn_error "conditional \"BUILD_DOM_SAMPLES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi 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 "${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 : ${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. 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 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=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' 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 if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 XQilla $as_me 2.3.4, which was generated by GNU Autoconf 2.64. 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 -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ XQilla config.status 2.3.4 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2009 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=$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 ;; --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"` ;; 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' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ 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 \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ 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_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_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_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_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 "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$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 \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ 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; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac 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 "src/config/xqilla_config_unix.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config/xqilla_config_unix.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # 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 {' >"$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 >>"\$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 >>"\$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 < "$tmp/subs1.awk" > "$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 $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// 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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; 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="$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 "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 >"$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 "$tmp/subs.awk" >$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' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$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 "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$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 "$tmp/config.h" "$ac_file" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$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"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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 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 # 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 # 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 # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # 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 # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # 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 # 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 # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # 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 # 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 # 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 # 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 # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # 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 # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # 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 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # 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 # 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # 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_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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # 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 () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -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 file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # 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 "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) 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 # 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 # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_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 # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_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 # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_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 # 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 $? 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 XQilla-2.3.4/configure.in0000644001725400016040000002736613273140037012166 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT([XQilla],[2.3.4],[]) AC_CONFIG_AUX_DIR(autotools) AC_CANONICAL_TARGET([]) AM_INIT_AUTOMAKE(XQilla, 2.3.4,) AC_CONFIG_SRCDIR([src/runtime/Result.cpp]) AC_CONFIG_HEADERS([src/config/xqilla_config_unix.h]) AC_CONFIG_MACRO_DIR([autotools/m4]) # Turn off rebuilding of configure, Makefile.in etc. by default AM_MAINTAINER_MODE # Check debug option AC_MSG_CHECKING(if --enable-debug option specified) AC_ARG_ENABLE(debug, [AS_HELP_STRING(--enable-debug,Build a debugging version.)], [xqilla_cv_debug="$enable_debug"], [xqilla_cv_debug="no"]) AC_MSG_RESULT($xqilla_cv_debug) # Check if rpath is disabled AC_MSG_CHECKING(if --enable-rpath option specified) AC_ARG_ENABLE(rpath, [AC_HELP_STRING([--disable-rpath], [Patches libtool to not use rpath in the libraries produced.])], [xqilla_cv_rpath="$enable_rpath"], [xqilla_cv_rpath="yes"]) AC_MSG_RESULT($xqilla_cv_rpath) # Don't override anything if it's already set from the environment. optimize_def="-O" case $host_os in aix4.3.*|aix5*) optimize_def="-O2" CC=${CC-"xlc_r"} CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -Wl,-brtl";; bsdi3*) CC=${CC-"shlicc2"} LIBS="$LIBS -lipc";; cygwin*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread";; gnu*|k*bsd*-gnu|linux*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; hpux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";; irix*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" LIBS="$LIBS -lsocket -lsvipc";; osf*) CPPFLAGS="$CPPFLAGS -pthread";; *qnx*) AC_DEFINE(HAVE_QNX) AH_TEMPLATE(HAVE_QNX, [Define to 1 if building on QNX.]);; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" LIBS="$LIBS -lm";; esac # Set CFLAGS/CXXFLAGS. We MUST set the flags before we call autoconf # compiler configuration macros, because if we don't, they set CFLAGS # to no optimization and -g, which isn't what we want. if test "$xqilla_cv_debug" = "yes"; then AC_DEFINE(DEBUG) AH_TEMPLATE(DEBUG, [Define to 1 if you want a debugging version.]) CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else CFLAGS=${CFLAGS-$optimize_def} CXXFLAGS=${CXXFLAGS-"$CFLAGS"} fi # Check for the Xerces-C library AC_MSG_CHECKING([if --with-xerces=DIR option specified]) AC_ARG_WITH(xerces, [AS_HELP_STRING(--with-xerces=DIR,Path of Xerces. [DIR="/usr/local"])], [with_xerces="$withval"], [with_xerces="no"]) AC_MSG_RESULT($with_xerces) if test "$with_xerces" = "no"; then with_xerces="/usr/local" fi # Find the include directory if test `ls $with_xerces/src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/src" xerces_include="-I$with_xerces/src" xerces_source_tree="yes" elif test `ls $with_xerces/include/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/include" xerces_include="-I$with_xerces/include" xerces_source_tree="no" elif test `ls $with_xerces/../src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/../src" xerces_include="-I$with_xerces/../src -I$with_xerces/src" xerces_source_tree="yes" else AC_MSG_ERROR([Unable to find the Xerces-C include directory.]) fi # Work out the Xerces-C version AC_MSG_CHECKING([for Xerces-C version]) xerces_version_major=`grep "^\#define XERCES_VERSION_MAJOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MAJOR \([0-9]*\)/\1/'` xerces_version_minor=`grep "^\#define XERCES_VERSION_MINOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MINOR \([0-9]*\)/\1/'` xerces_version=$xerces_version_major"."$xerces_version_minor AC_MSG_RESULT([$xerces_version]) if test "$xerces_version_major" -lt "3" -a "$xerces_source_tree" = "no"; then AC_MSG_ERROR([For Xerces-C versions before 3.0 the source tree is required to build XQilla. You must specify the path to the Xerces-C source tree using --with-xerces.]) fi # Find the library if test `ls $with_xerces/lib/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/lib" elif test `ls $with_xerces/src/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/src" else if test "$xerces_source_tree" = "yes" -a "$xerces_version_major" -ge "3"; then xerces_lib="$with_xerces/src" else xerces_lib="$with_xerces/lib" fi AC_MSG_WARN([Unable to find the Xerces-C library. Guessed path is $xerces_lib.]) fi AC_SUBST(xerces_include) AC_SUBST(xerces_include_dir) AC_SUBST(xerces_lib) # The DOM samples only build against Xerces-C 3.0 or newer AM_CONDITIONAL([BUILD_DOM_SAMPLES], [test "$xerces_version_major" -ge "3"]) # Check for the BinInputStream::getContentType() method AH_TEMPLATE(HAVE_GETCONTENTTYPE, [Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method.]) CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include ], [XERCES_CPP_NAMESPACE_QUALIFIER BinMemInputStream(0, 0).getContentType();], [ac_found_getcontenttype="yes"], [ac_found_getcontenttype="no"]) AC_LANG_POP(C++) CPPFLAGS="$CPPFLAGS_BKUP" AC_MSG_CHECKING([if the Xerces-C library supports the BinInputStream::getContentType() method]) AC_MSG_RESULT($ac_found_getcontenttype) if test "$ac_found_getcontenttype" = yes then AC_DEFINE(HAVE_GETCONTENTTYPE) else AC_MSG_WARN([XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8.]) fi # Check for the RegularExpression::allMatches() method AH_TEMPLATE(HAVE_ALLMATCHES, [Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method.]) CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include], [XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression(".*").allMatches(0, 0, 0, 0);], [ac_found_allmatches="yes"], [ac_found_allmatches="no"]) AC_LANG_POP(C++) CPPFLAGS="$CPPFLAGS_BKUP" AC_MSG_CHECKING([if the Xerces-C library supports the RegularExpression::allMatches() method]) AC_MSG_RESULT($ac_found_allmatches) if test "$ac_found_allmatches" = yes then AC_DEFINE(HAVE_ALLMATCHES) else AC_MSG_WARN([XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8.]) fi # Check if the FAXPP library is present AH_TEMPLATE(HAVE_FAXPP, [Define to 1 if the FAXPP library is present.]) AC_MSG_CHECKING([if --with-faxpp=DIR option specified]) AC_ARG_WITH(faxpp, [AS_HELP_STRING(--with-faxpp=DIR,Path of FAXPP. [DIR="/usr/local"])], [with_faxpp="$withval"], [with_faxpp="/usr/local"]) AC_MSG_RESULT($with_faxpp) if test "$with_faxpp" != "no"; then AC_MSG_CHECKING([if the FAXPP library is present]) if test `ls $with_faxpp/lib/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp/lib -R$with_faxpp/lib" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_faxpp/include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/../include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/../include" fi else AC_MSG_RESULT([no]) faxpp_lib="" faxpp_library="" faxpp_include="" fi fi AC_SUBST(faxpp_include) AC_SUBST(faxpp_lib) AC_SUBST(faxpp_library) # Check if the HTML Tidy library is present AH_TEMPLATE(HAVE_LIBTIDY, [Define to 1 if the HTML Tidy library is present.]) AC_MSG_CHECKING([if --with-tidy=DIR option specified]) AC_ARG_WITH(tidy, [AS_HELP_STRING(--with-tidy=DIR,Path of the HTML Tidy library. [DIR="/usr"])], [with_tidy="$withval"], [with_tidy="/usr"]) AC_MSG_RESULT($with_tidy) if test "$with_tidy" != "no"; then AC_MSG_CHECKING([if the HTML Tidy library is present]) if test `ls $with_tidy/lib/libtidy.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_tidy/include/tidy/tidy.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_LIBTIDY) tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include/tidy" elif test `ls $with_tidy/include/tidy.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_LIBTIDY) tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include" else AC_MSG_RESULT([no]) tidy_lib="" tidy_library="" tidy_include="" fi else AC_MSG_RESULT([no]) tidy_lib="" tidy_library="" tidy_include="" fi fi AC_SUBST(tidy_include) AC_SUBST(tidy_lib) AC_SUBST(tidy_library) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_LIBTOOL AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_CHECK_PROGS(YACC, 'bison -y', [${am_missing_run} bison]) if test "$YACC" != "bison -y"; then AC_MSG_WARN([XQilla requires bison if you need to rebuild the parser.]) fi AM_PROG_LEX # Check for unicode support in flex AC_MSG_CHECKING([unicode support in flex]) flex --help | grep "\-U" > /dev/null if test "$?" -eq "0"; then AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) AC_MSG_WARN([XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer.]) fi # Set up extra compiler flags for GCC if test "$GXX" = "yes"; then if test "$xqilla_cv_debug" = "yes"; then CXXFLAGS="$CXXFLAGS -Wall -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS -Wall ${targetoptions}" else CXXFLAGS="$CXXFLAGS -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS ${targetoptions}" fi fi # Patch libtool to not use rpath if required if test "$xqilla_cv_rpath" = "no"; then AC_MSG_RESULT([Patching libtool to not use rpath.]) sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ "/' mv libtool-2 libtool chmod 755 libtool fi # Checks for libraries. AC_CHECK_LIB(pthread,pthread_create) AC_CHECK_LIB(socket,connect) AC_CHECK_LIB(nsl,gethostbyname) # Checks for header files. AC_FUNC_ALLOCA AC_HEADER_STDC AC_CHECK_HEADERS([limits.h malloc.h stddef.h stdlib.h string.h sys/time.h sys/timeb.h wchar.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_CHECK_TYPES([ptrdiff_t]) # Checks for library functions. AC_FUNC_ERROR_AT_LINE AC_FUNC_MKTIME AC_CHECK_FUNCS([floor ftime gettimeofday memmove memset pow sqrt strchr strstr tzset localtime_r]) AC_CONFIG_FILES([Makefile include/Makefile]) AC_OUTPUT XQilla-2.3.4/Makefile.in0000644001725400016040000207654413273140037011726 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = xqilla$(EXEEXT) noinst_PROGRAMS = xqtsRunner$(EXEEXT) xmarkRunner$(EXEEXT) \ simple-basic$(EXEEXT) simple-context-item$(EXEEXT) \ xqc-basic$(EXEEXT) xqc-context-item$(EXEEXT) \ compile-delayed-module$(EXEEXT) $(am__EXEEXT_1) @BUILD_DOM_SAMPLES_TRUE@am__append_1 = dom-basic dom-context-item dom-resolver subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(top_srcdir)/src/config/xqilla_config_unix.h.in ChangeLog \ TODO autotools/config.guess autotools/config.sub \ autotools/depcomp autotools/install-sh autotools/ltmain.sh \ autotools/missing autotools/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/libtool.m4 \ $(top_srcdir)/autotools/m4/ltoptions.m4 \ $(top_srcdir)/autotools/m4/ltsugar.m4 \ $(top_srcdir)/autotools/m4/ltversion.m4 \ $(top_srcdir)/autotools/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/config/xqilla_config_unix.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__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" LTLIBRARIES = $(lib_LTLIBRARIES) libxqilla_la_LIBADD = am_libxqilla_la_OBJECTS = ReferenceCounted.lo BaseMemoryManager.lo \ ProxyMemoryManager.lo StringPool.lo XPath2MemoryManagerImpl.lo \ UpdateFactory.lo CollationImpl.lo CodepointCollation.lo \ VarStoreImpl.lo VarTypeStoreImpl.lo VarHashEntryImpl.lo \ XQContextImpl.lo XQDynamicContextImpl.lo ItemFactoryImpl.lo \ XQAtomize.lo XQEffectiveBooleanValue.lo XQMap.lo \ XQAnalyzeString.lo XQCastableAs.lo XQCastAs.lo \ XQContextItem.lo XQCopy.lo XQCopyOf.lo XQFunction.lo XQIf.lo \ ASTNodeImpl.lo XQInlineFunction.lo XQLiteral.lo XQNav.lo \ XQOperator.lo XQSequence.lo XQStep.lo XQTreatAs.lo \ XQFunctionCoercion.lo XQVariable.lo StaticAnalysis.lo \ StaticType.lo NumericFunction.lo XQDOMConstructor.lo \ XQDocumentConstructor.lo XQElementConstructor.lo \ XQAttributeConstructor.lo XQNamespaceConstructor.lo \ XQPIConstructor.lo XQCommentConstructor.lo \ XQTextConstructor.lo XQFunctionCall.lo XQFunctionConversion.lo \ XQFunctionDeref.lo XQPartialApply.lo XQFunctionRef.lo \ XQGlobalVariable.lo XQOrderingChange.lo XQQuantified.lo \ XQValidate.lo XQTypeswitch.lo ConvertFunctionArg.lo \ XQDocumentOrder.lo XQPredicate.lo XQReturn.lo TupleNode.lo \ ContextTuple.lo ForTuple.lo LetTuple.lo WhereTuple.lo \ CountTuple.lo OrderByTuple.lo XQNamespaceBinding.lo \ XQCallTemplate.lo XQApplyTemplates.lo ASTDebugHook.lo \ DebugHookDecorator.lo TupleDebugHook.lo InputParser.lo \ InteractiveDebugger.lo StackFrame.lo ContentSequenceFilter.lo \ EventGenerator.lo EventSerializer.lo NoInheritFilter.lo \ NSFixupFilter.lo QueryPathTreeFilter.lo FTContains.lo \ FTWords.lo FTOr.lo FTAnd.lo FTMildnot.lo FTUnaryNot.lo \ DefaultTokenizer.lo DefaultTokenStore.lo FTOrder.lo \ FTDistance.lo FTScope.lo FTContent.lo FTWindow.lo \ XQillaBuilderImpl.lo XQillaDocumentImpl.lo \ XQillaExpressionImpl.lo XQillaNSResolverImpl.lo \ XQillaXMLGrammarPoolImpl.lo XPathDocumentImpl.lo \ XPathNamespaceImpl.lo XPath2ResultImpl.lo \ XQillaImplementation.lo XPath2NodeSerializer.lo XQilla.lo \ XQQuery.lo UTF8Str.lo XMLChCompare.lo XStr.lo ContextUtils.lo \ DateUtils.lo NumUtils.lo XQillaPlatformUtils.lo \ XPath2NSUtils.lo XPath2Utils.lo UnicodeTransformer.lo \ utf8proc.lo DelayedModule.lo XQillaException.lo XQException.lo \ EXSLTMathFunction.lo ExternalFunction.lo XQillaFunction.lo \ FunctionParseXML.lo FuncFactory.lo FunctionLookup.lo \ FunctionAbs.lo FunctionAcos.lo FunctionAsin.lo FunctionAtan.lo \ FunctionBaseURI.lo FunctionCaseFold.lo FunctionCeiling.lo \ FunctionCodepointsToString.lo FunctionCollection.lo \ FunctionCompare.lo FunctionConcat.lo FunctionContains.lo \ FunctionCount.lo FunctionCos.lo FunctionCurrentDate.lo \ FunctionCurrentDateTime.lo FunctionCurrentTime.lo \ FunctionDateTime.lo FunctionDefaultCollation.lo \ FunctionDistinctValues.lo FunctionDocAvailable.lo \ FunctionDoc.lo FunctionDocument.lo FunctionDocumentURI.lo \ FunctionEmpty.lo FunctionEndsWith.lo FunctionError.lo \ FunctionExp.lo FunctionFloor.lo FunctionFunctionArity.lo \ FunctionFunctionName.lo FunctionId.lo FunctionIdref.lo \ FunctionImplicitTimezone.lo FunctionLang.lo FunctionLast.lo \ FunctionLocalname.lo FunctionLocalNameFromQName.lo \ FunctionLog.lo FunctionLowerCase.lo FunctionMatches.lo \ FunctionName.lo FunctionNamespaceUri.lo \ FunctionNamespaceURIFromQName.lo FunctionNilled.lo \ FunctionNodeName.lo FunctionNormalizeSpace.lo \ FunctionNormalizeUnicode.lo FunctionNot.lo FunctionNumber.lo \ FunctionPosition.lo FunctionPower.lo \ FunctionPrefixFromQName.lo FunctionQName.lo \ FunctionRegexGroup.lo FunctionReplace.lo FunctionResolveURI.lo \ FunctionRoot.lo FunctionRound.lo FunctionRoundHalfToEven.lo \ FunctionSin.lo FunctionSqrt.lo FunctionTan.lo \ FunctionSentences.lo FunctionStartsWith.lo \ FunctionStaticBaseURI.lo FunctionString.lo \ FunctionStringLength.lo FunctionStringToCodepoints.lo \ FunctionSubstring.lo FunctionTime.lo FunctionTokenize.lo \ FunctionTrace.lo FunctionHead.lo FunctionTail.lo \ FunctionUnordered.lo FunctionUnparsedText.lo \ FunctionUpperCase.lo FunctionWords.lo \ FunctionAdjustDateTimeToTimezone.lo \ FunctionAdjustDateToTimezone.lo \ FunctionAdjustTimeToTimezone.lo FunctionDayFromDate.lo \ FunctionDayFromDateTime.lo FunctionDaysFromDuration.lo \ FunctionHoursFromDateTime.lo FunctionHoursFromDuration.lo \ FunctionHoursFromTime.lo FunctionMinutesFromDateTime.lo \ FunctionMinutesFromDuration.lo FunctionMinutesFromTime.lo \ FunctionMonthFromDate.lo FunctionMonthFromDateTime.lo \ FunctionMonthsFromDuration.lo FunctionSecondsFromDateTime.lo \ FunctionSecondsFromDuration.lo FunctionSecondsFromTime.lo \ FunctionTimezoneFromDate.lo FunctionTimezoneFromDateTime.lo \ FunctionTimezoneFromTime.lo FunctionYearFromDate.lo \ FunctionYearFromDateTime.lo FunctionYearsFromDuration.lo \ FunctionParseJSON.lo FunctionSerializeJSON.lo \ FunctionParseHTML.lo FunctionExplain.lo \ FunctionAnalyzeString.lo RegExpFunction.lo XQUserFunction.lo \ FunctionSignature.lo BuiltInModules.lo ATAnySimpleTypeImpl.lo \ ATAnyURIOrDerivedImpl.lo ATBase64BinaryOrDerivedImpl.lo \ ATBooleanOrDerivedImpl.lo ATDateOrDerivedImpl.lo \ ATDateTimeOrDerivedImpl.lo ATDecimalOrDerivedImpl.lo \ ATDoubleOrDerivedImpl.lo ATDurationOrDerivedImpl.lo \ ATFloatOrDerivedImpl.lo ATGDayOrDerivedImpl.lo \ ATGMonthDayOrDerivedImpl.lo ATGMonthOrDerivedImpl.lo \ ATGYearMonthOrDerivedImpl.lo ATGYearOrDerivedImpl.lo \ ATHexBinaryOrDerivedImpl.lo ATNotationOrDerivedImpl.lo \ ATQNameOrDerivedImpl.lo ATStringOrDerivedImpl.lo \ ATTimeOrDerivedImpl.lo ATUntypedAtomicImpl.lo \ FunctionRefImpl.lo DatatypeFactory.lo DatatypeLookup.lo \ AnyAtomicType.lo ATDurationOrDerived.lo ATUntypedAtomic.lo \ DateOrTimeType.lo Item.lo Node.lo Numeric.lo Timezone.lo \ QName.lo XQParser.lo XQLexer.lo XQLexer2.lo XSLT2Lexer.lo \ mapm5sin.lo mapm_add.lo mapmasin.lo mapmasn0.lo mapmcbrt.lo \ mapmcnst.lo mapm_cpi.lo m_apm.lo mapm_div.lo mapm_exp.lo \ mapmfact.lo mapm_fam.lo mapm_fft.lo mapm_flr.lo mapmfmul.lo \ mapm_fpf.lo mapm_gcd.lo mapmgues.lo mapmhasn.lo mapmhsin.lo \ mapmipwr.lo mapmistr.lo mapm_lg2.lo mapm_lg3.lo mapm_log.lo \ mapm_mt.lo mapm_mul.lo mapm_pow.lo mapmpwr2.lo mapm_rcp.lo \ mapm_rnd.lo mapmrsin.lo mapm_set.lo mapm_sin.lo mapmsqrt.lo \ mapmstck.lo mapmutil.lo mapmutl2.lo NodeTest.lo And.lo \ ArithmeticOperator.lo ComparisonOperator.lo Divide.lo \ Equals.lo Except.lo GeneralComp.lo GreaterThan.lo \ GreaterThanEqual.lo IntegerDivide.lo Intersect.lo LessThan.lo \ LessThanEqual.lo Minus.lo Mod.lo Multiply.lo NodeComparison.lo \ NotEquals.lo Or.lo OrderComparison.lo Plus.lo UnaryMinus.lo \ Union.lo DocumentCacheImpl.lo SequenceType.lo \ AnyAtomicTypeDatatypeValidator.lo SchemaValidatorFilter.lo \ FaxppDocumentCacheImpl.lo ClosureResult.lo EmptyResult.lo \ ResultBuffer.lo ResultBufferImpl.lo Result.lo ResultImpl.lo \ SequenceResult.lo Sequence.lo FunctionPut.lo \ PendingUpdateList.lo UApplyUpdates.lo UDelete.lo URename.lo \ UReplace.lo UReplaceValueOf.lo UInsertAsFirst.lo \ UInsertAsLast.lo UInsertInto.lo UInsertAfter.lo \ UInsertBefore.lo UTransform.lo TestSuiteParser.lo \ TestSuiteResultListener.lo TestSuiteRunner.lo \ FastXDMUpdateFactory.lo FastXDMDocument.lo FastXDMNodeImpl.lo \ FastXDMConfiguration.lo FastXDMSequenceBuilder.lo \ AncestorAxis.lo AncestorOrSelfAxis.lo AttributeAxis.lo Axis.lo \ ChildAxis.lo DescendantAxis.lo DescendantOrSelfAxis.lo \ FollowingAxis.lo FollowingSiblingAxis.lo NamespaceAxis.lo \ ParentAxis.lo PrecedingAxis.lo PrecedingSiblingAxis.lo \ XercesConfiguration.lo XercesNodeImpl.lo \ XercesSequenceBuilder.lo XercesUpdateFactory.lo \ XercesURIResolver.lo Optimizer.lo ASTCopier.lo ASTReleaser.lo \ ASTVisitor.lo PartialEvaluator.lo StaticTyper.lo \ QueryPathNode.lo QueryPathTreeGenerator.lo ASTToXML.lo \ yajl_buf.lo yajl.lo yajl_encode.lo yajl_gen.lo yajl_lex.lo \ yajl_parser.lo XQillaXQCImplementation.lo \ XQillaXQCStaticContext.lo XQillaXQCDynamicContext.lo \ XQillaXQCExpression.lo XQillaXQCSequence.lo libxqilla_la_OBJECTS = $(am_libxqilla_la_OBJECTS) libxqilla_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libxqilla_la_LDFLAGS) $(LDFLAGS) -o $@ @BUILD_DOM_SAMPLES_TRUE@am__EXEEXT_1 = dom-basic$(EXEEXT) \ @BUILD_DOM_SAMPLES_TRUE@ dom-context-item$(EXEEXT) \ @BUILD_DOM_SAMPLES_TRUE@ dom-resolver$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_compile_delayed_module_OBJECTS = compile-delayed-module.$(OBJEXT) compile_delayed_module_OBJECTS = $(am_compile_delayed_module_OBJECTS) compile_delayed_module_LDADD = $(LDADD) compile_delayed_module_DEPENDENCIES = libxqilla.la am_dom_basic_OBJECTS = dom-basic.$(OBJEXT) dom_basic_OBJECTS = $(am_dom_basic_OBJECTS) dom_basic_LDADD = $(LDADD) dom_basic_DEPENDENCIES = libxqilla.la am_dom_context_item_OBJECTS = dom-context-item.$(OBJEXT) dom_context_item_OBJECTS = $(am_dom_context_item_OBJECTS) dom_context_item_LDADD = $(LDADD) dom_context_item_DEPENDENCIES = libxqilla.la am_dom_resolver_OBJECTS = dom-resolver.$(OBJEXT) dom_resolver_OBJECTS = $(am_dom_resolver_OBJECTS) dom_resolver_LDADD = $(LDADD) dom_resolver_DEPENDENCIES = libxqilla.la am_simple_basic_OBJECTS = simple-basic.$(OBJEXT) simple_basic_OBJECTS = $(am_simple_basic_OBJECTS) simple_basic_LDADD = $(LDADD) simple_basic_DEPENDENCIES = libxqilla.la am_simple_context_item_OBJECTS = simple-context-item.$(OBJEXT) simple_context_item_OBJECTS = $(am_simple_context_item_OBJECTS) simple_context_item_LDADD = $(LDADD) simple_context_item_DEPENDENCIES = libxqilla.la am_xmarkRunner_OBJECTS = xmark.$(OBJEXT) xmarkRunner_OBJECTS = $(am_xmarkRunner_OBJECTS) xmarkRunner_LDADD = $(LDADD) xmarkRunner_DEPENDENCIES = libxqilla.la am_xqc_basic_OBJECTS = xqc-basic.$(OBJEXT) xqc_basic_OBJECTS = $(am_xqc_basic_OBJECTS) xqc_basic_LDADD = $(LDADD) xqc_basic_DEPENDENCIES = libxqilla.la am_xqc_context_item_OBJECTS = xqc-context-item.$(OBJEXT) xqc_context_item_OBJECTS = $(am_xqc_context_item_OBJECTS) xqc_context_item_LDADD = $(LDADD) xqc_context_item_DEPENDENCIES = libxqilla.la am_xqilla_OBJECTS = xqilla-commandline.$(OBJEXT) xqilla_OBJECTS = $(am_xqilla_OBJECTS) xqilla_LDADD = $(LDADD) xqilla_DEPENDENCIES = libxqilla.la am_xqtsRunner_OBJECTS = runner.$(OBJEXT) xqtsRunner_OBJECTS = $(am_xqtsRunner_OBJECTS) xqtsRunner_LDADD = $(LDADD) xqtsRunner_DEPENDENCIES = libxqilla.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/config depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libxqilla_la_SOURCES) $(compile_delayed_module_SOURCES) \ $(dom_basic_SOURCES) $(dom_context_item_SOURCES) \ $(dom_resolver_SOURCES) $(simple_basic_SOURCES) \ $(simple_context_item_SOURCES) $(xmarkRunner_SOURCES) \ $(xqc_basic_SOURCES) $(nodist_EXTRA_xqc_basic_SOURCES) \ $(xqc_context_item_SOURCES) \ $(nodist_EXTRA_xqc_context_item_SOURCES) $(xqilla_SOURCES) \ $(xqtsRunner_SOURCES) DIST_SOURCES = $(libxqilla_la_SOURCES) \ $(compile_delayed_module_SOURCES) $(dom_basic_SOURCES) \ $(dom_context_item_SOURCES) $(dom_resolver_SOURCES) \ $(simple_basic_SOURCES) $(simple_context_item_SOURCES) \ $(xmarkRunner_SOURCES) $(xqc_basic_SOURCES) \ $(xqc_context_item_SOURCES) $(xqilla_SOURCES) \ $(xqtsRunner_SOURCES) RECURSIVE_TARGETS = all-recursive check-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 uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(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).zip GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ 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 = -L$(xerces_lib) -R$(xerces_lib) $(faxpp_lib) $(tidy_lib) -lxerces-c $(faxpp_library) $(tidy_library) LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ 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@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ 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@ exec_prefix = @exec_prefix@ faxpp_include = @faxpp_include@ faxpp_lib = @faxpp_lib@ faxpp_library = @faxpp_library@ 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_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ tidy_include = @tidy_include@ tidy_lib = @tidy_lib@ tidy_library = @tidy_library@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xerces_include = @xerces_include@ xerces_include_dir = @xerces_include_dir@ xerces_lib = @xerces_lib@ AUTOMAKE_OPTIONS = foreign dist-zip SUBDIRS = include INCLUDES = -I$(top_srcdir)/include/ $(xerces_include) -I$(top_srcdir)/src/lexer/ $(faxpp_include) $(tidy_include) LDADD = libxqilla.la ACLOCAL_AMFLAGS = -I autotools/m4 lib_LTLIBRARIES = libxqilla.la # Library version, see http://sourceware.org/autobook/autobook/autobook_91.html # -no-undefined for Cygwin (bug #1639669) libxqilla_la_LDFLAGS = -version-info 6:0:4 -no-undefined libxqilla_la_SOURCES = \ src/framework/ReferenceCounted.cpp \ src/framework/BaseMemoryManager.cpp \ src/framework/ProxyMemoryManager.cpp \ src/framework/StringPool.cpp \ src/framework/XPath2MemoryManagerImpl.cpp \ src/context/UpdateFactory.cpp \ src/context/impl/CollationImpl.cpp \ src/context/impl/CodepointCollation.cpp \ src/context/impl/VarStoreImpl.cpp \ src/context/impl/VarTypeStoreImpl.hpp \ src/context/impl/VarTypeStoreImpl.cpp \ src/context/impl/VarHashEntryImpl.cpp \ src/context/impl/XQContextImpl.cpp \ src/context/impl/XQDynamicContextImpl.cpp \ src/context/impl/ItemFactoryImpl.cpp \ src/ast/XQAtomize.cpp \ src/ast/XQEffectiveBooleanValue.cpp \ src/ast/XQMap.cpp \ src/ast/XQAnalyzeString.cpp \ src/ast/XQCastableAs.cpp \ src/ast/XQCastAs.cpp \ src/ast/XQContextItem.cpp \ src/ast/XQCopy.cpp \ src/ast/XQCopyOf.cpp \ src/ast/XQFunction.cpp \ src/ast/XQIf.cpp \ src/ast/ASTNodeImpl.cpp \ src/ast/XQInlineFunction.cpp \ src/ast/XQLiteral.cpp \ src/ast/XQNav.cpp \ src/ast/XQOperator.cpp \ src/ast/XQSequence.cpp \ src/ast/XQStep.cpp \ src/ast/XQTreatAs.cpp \ src/ast/XQFunctionCoercion.cpp \ src/ast/XQVariable.cpp \ src/ast/StaticAnalysis.cpp \ src/ast/StaticType.cpp \ src/ast/NumericFunction.cpp \ src/ast/XQDOMConstructor.cpp \ src/ast/XQDocumentConstructor.cpp \ src/ast/XQElementConstructor.cpp \ src/ast/XQAttributeConstructor.cpp \ src/ast/XQNamespaceConstructor.cpp \ src/ast/XQPIConstructor.cpp \ src/ast/XQCommentConstructor.cpp \ src/ast/XQTextConstructor.cpp \ src/ast/XQFunctionCall.cpp \ src/ast/XQFunctionConversion.cpp \ src/ast/XQFunctionDeref.cpp \ src/ast/XQPartialApply.cpp \ src/ast/XQFunctionRef.cpp \ src/ast/XQGlobalVariable.cpp \ src/ast/XQOrderingChange.cpp \ src/ast/XQQuantified.cpp \ src/ast/XQValidate.cpp \ src/ast/XQTypeswitch.cpp \ src/ast/ConvertFunctionArg.cpp \ src/ast/XQDocumentOrder.cpp \ src/ast/XQPredicate.cpp \ src/ast/XQReturn.cpp \ src/ast/TupleNode.cpp \ src/ast/ContextTuple.cpp \ src/ast/ForTuple.cpp \ src/ast/LetTuple.cpp \ src/ast/WhereTuple.cpp \ src/ast/CountTuple.cpp \ src/ast/OrderByTuple.cpp \ src/ast/XQNamespaceBinding.cpp \ src/ast/XQCallTemplate.cpp \ src/ast/XQApplyTemplates.cpp \ src/debug/ASTDebugHook.cpp \ src/debug/DebugHookDecorator.cpp \ src/debug/TupleDebugHook.cpp \ src/debug/InputParser.cpp \ src/debug/InteractiveDebugger.cpp \ src/debug/StackFrame.cpp \ src/events/ContentSequenceFilter.cpp \ src/events/EventGenerator.cpp \ src/events/EventSerializer.cpp \ src/events/NoInheritFilter.cpp \ src/events/NoInheritFilter.hpp \ src/events/NSFixupFilter.cpp \ src/events/QueryPathTreeFilter.cpp \ src/fulltext/FTContains.cpp \ src/fulltext/FTWords.cpp \ src/fulltext/FTOr.cpp \ src/fulltext/FTAnd.cpp \ src/fulltext/FTMildnot.cpp \ src/fulltext/FTUnaryNot.cpp \ src/fulltext/DefaultTokenizer.cpp \ src/fulltext/DefaultTokenStore.cpp \ src/fulltext/FTOrder.cpp \ src/fulltext/FTDistance.cpp \ src/fulltext/FTScope.cpp \ src/fulltext/FTContent.cpp \ src/fulltext/FTWindow.cpp \ src/dom-api/impl/XQillaBuilderImpl.cpp \ src/dom-api/impl/XQillaBuilderImpl.hpp \ src/dom-api/impl/XQillaDocumentImpl.cpp \ src/dom-api/impl/XQillaDocumentImpl.hpp \ src/dom-api/impl/XQillaExpressionImpl.cpp \ src/dom-api/impl/XQillaExpressionImpl.hpp \ src/dom-api/impl/XQillaNSResolverImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp \ src/dom-api/impl/XPathDocumentImpl.cpp \ src/dom-api/impl/XPathDocumentImpl.hpp \ src/dom-api/impl/XPathNamespaceImpl.cpp \ src/dom-api/impl/XPathNamespaceImpl.hpp \ src/dom-api/impl/XPath2ResultImpl.cpp \ src/dom-api/impl/XPath2ResultImpl.hpp \ src/dom-api/XQillaImplementation.cpp \ src/dom-api/XQillaImplementation.hpp \ src/dom-api/XPath2NodeSerializer.cpp \ src/dom-api/XPath2NodeSerializer.hpp \ src/simple-api/XQilla.cpp \ src/simple-api/XQQuery.cpp \ src/utils/UTF8Str.cpp \ src/utils/XMLChCompare.cpp \ src/utils/XStr.cpp \ src/utils/ContextUtils.cpp \ src/utils/DateUtils.cpp \ src/utils/DateUtils.hpp \ src/utils/NumUtils.cpp \ src/utils/XQillaPlatformUtils.cpp \ src/utils/XPath2NSUtils.cpp \ src/utils/XPath2Utils.cpp \ src/utils/UnicodeTransformer.cpp \ src/utils/utf8proc/utf8proc.c \ src/utils/utf8proc/utf8proc_data.h \ src/utils/DelayedModule.cpp \ src/exceptions/XQillaException.cpp \ src/exceptions/XQException.cpp \ src/exceptions/InvalidLexicalSpaceException.hpp \ src/exceptions/MiscException.hpp \ src/functions/EXSLTMathFunction.cpp \ src/functions/ExternalFunction.cpp \ src/functions/XQillaFunction.cpp \ src/functions/FunctionParseXML.cpp \ src/functions/FuncFactory.cpp \ src/functions/FunctionLookup.cpp \ src/functions/FunctionAbs.cpp \ src/functions/FunctionAcos.cpp \ src/functions/FunctionAsin.cpp \ src/functions/FunctionAtan.cpp \ src/functions/FunctionBaseURI.cpp \ src/functions/FunctionCaseFold.cpp \ src/functions/FunctionCeiling.cpp \ src/functions/FunctionCodepointsToString.cpp \ src/functions/FunctionCollection.cpp \ src/functions/FunctionCompare.cpp \ src/functions/FunctionConcat.cpp \ src/functions/FunctionContains.cpp \ src/functions/FunctionCount.cpp \ src/functions/FunctionCos.cpp \ src/functions/FunctionCurrentDate.cpp \ src/functions/FunctionCurrentDateTime.cpp \ src/functions/FunctionCurrentTime.cpp \ src/functions/FunctionDateTime.cpp \ src/functions/FunctionDefaultCollation.cpp \ src/functions/FunctionDistinctValues.cpp \ src/functions/FunctionDocAvailable.cpp \ src/functions/FunctionDoc.cpp \ src/functions/FunctionDocument.cpp \ src/functions/FunctionDocumentURI.cpp \ src/functions/FunctionEmpty.cpp \ src/functions/FunctionEndsWith.cpp \ src/functions/FunctionError.cpp \ src/functions/FunctionExp.cpp \ src/functions/FunctionFloor.cpp \ src/functions/FunctionFunctionArity.cpp \ src/functions/FunctionFunctionName.cpp \ src/functions/FunctionId.cpp \ src/functions/FunctionIdref.cpp \ src/functions/FunctionImplicitTimezone.cpp \ src/functions/FunctionLang.cpp \ src/functions/FunctionLast.cpp \ src/functions/FunctionLocalname.cpp \ src/functions/FunctionLocalNameFromQName.cpp \ src/functions/FunctionLog.cpp \ src/functions/FunctionLowerCase.cpp \ src/functions/FunctionMatches.cpp \ src/functions/FunctionName.cpp \ src/functions/FunctionNamespaceUri.cpp \ src/functions/FunctionNamespaceURIFromQName.cpp \ src/functions/FunctionNilled.cpp \ src/functions/FunctionNodeName.cpp \ src/functions/FunctionNormalizeSpace.cpp \ src/functions/FunctionNormalizeUnicode.cpp \ src/functions/FunctionNot.cpp \ src/functions/FunctionNumber.cpp \ src/functions/FunctionPosition.cpp \ src/functions/FunctionPower.cpp \ src/functions/FunctionPrefixFromQName.cpp \ src/functions/FunctionQName.cpp \ src/functions/FunctionRegexGroup.cpp \ src/functions/FunctionReplace.cpp \ src/functions/FunctionResolveURI.cpp \ src/functions/FunctionRoot.cpp \ src/functions/FunctionRound.cpp \ src/functions/FunctionRoundHalfToEven.cpp \ src/functions/FunctionSin.cpp \ src/functions/FunctionSqrt.cpp \ src/functions/FunctionTan.cpp \ src/functions/FunctionSentences.cpp \ src/functions/FunctionStartsWith.cpp \ src/functions/FunctionStaticBaseURI.cpp \ src/functions/FunctionString.cpp \ src/functions/FunctionStringLength.cpp \ src/functions/FunctionStringToCodepoints.cpp \ src/functions/FunctionSubstring.cpp \ src/functions/FunctionTime.cpp \ src/functions/FunctionTokenize.cpp \ src/functions/FunctionTrace.cpp \ src/functions/FunctionHead.cpp \ src/functions/FunctionTail.cpp \ src/functions/FunctionUnordered.cpp \ src/functions/FunctionUnparsedText.cpp \ src/functions/FunctionUpperCase.cpp \ src/functions/FunctionWords.cpp \ src/functions/FunctionAdjustDateTimeToTimezone.cpp \ src/functions/FunctionAdjustDateToTimezone.cpp \ src/functions/FunctionAdjustTimeToTimezone.cpp \ src/functions/FunctionDayFromDate.cpp \ src/functions/FunctionDayFromDateTime.cpp \ src/functions/FunctionDaysFromDuration.cpp \ src/functions/FunctionHoursFromDateTime.cpp \ src/functions/FunctionHoursFromDuration.cpp \ src/functions/FunctionHoursFromTime.cpp \ src/functions/FunctionMinutesFromDateTime.cpp \ src/functions/FunctionMinutesFromDuration.cpp \ src/functions/FunctionMinutesFromTime.cpp \ src/functions/FunctionMonthFromDate.cpp \ src/functions/FunctionMonthFromDateTime.cpp \ src/functions/FunctionMonthsFromDuration.cpp \ src/functions/FunctionSecondsFromDateTime.cpp \ src/functions/FunctionSecondsFromDuration.cpp \ src/functions/FunctionSecondsFromTime.cpp \ src/functions/FunctionTimezoneFromDate.cpp \ src/functions/FunctionTimezoneFromDateTime.cpp \ src/functions/FunctionTimezoneFromTime.cpp \ src/functions/FunctionYearFromDate.cpp \ src/functions/FunctionYearFromDateTime.cpp \ src/functions/FunctionYearsFromDuration.cpp \ src/functions/FunctionParseJSON.cpp \ src/functions/FunctionSerializeJSON.cpp \ src/functions/FunctionParseHTML.cpp \ src/functions/FunctionExplain.cpp \ src/functions/FunctionAnalyzeString.cpp \ src/functions/RegExpFunction.cpp \ src/functions/XQUserFunction.cpp \ src/functions/FunctionSignature.cpp \ src/functions/BuiltInModules.cpp \ src/functions/CoreModule.hpp \ src/functions/FnModule.hpp \ src/items/impl/ATAnySimpleTypeImpl.cpp \ src/items/impl/ATAnySimpleTypeImpl.hpp \ src/items/impl/ATAnyURIOrDerivedImpl.cpp \ src/items/impl/ATAnyURIOrDerivedImpl.hpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.cpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.hpp \ src/items/impl/ATBooleanOrDerivedImpl.cpp \ src/items/impl/ATDateOrDerivedImpl.cpp \ src/items/impl/ATDateTimeOrDerivedImpl.cpp \ src/items/impl/ATDecimalOrDerivedImpl.cpp \ src/items/impl/ATDoubleOrDerivedImpl.cpp \ src/items/impl/ATDurationOrDerivedImpl.cpp \ src/items/impl/ATFloatOrDerivedImpl.cpp \ src/items/impl/ATGDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.hpp \ src/items/impl/ATNotationOrDerivedImpl.cpp \ src/items/impl/ATNotationOrDerivedImpl.hpp \ src/items/impl/ATQNameOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.hpp \ src/items/impl/ATTimeOrDerivedImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.hpp \ src/items/impl/FunctionRefImpl.cpp \ src/items/impl/FunctionRefImpl.hpp \ src/items/DatatypeFactory.cpp \ src/items/DatatypeFactoryTemplate.hpp \ src/items/DatatypeLookup.cpp \ src/items/AnyAtomicType.cpp \ src/items/ATDurationOrDerived.cpp \ src/items/ATUntypedAtomic.cpp \ src/items/DateOrTimeType.cpp \ src/items/Item.cpp \ src/items/Node.cpp \ src/items/Numeric.cpp \ src/items/Timezone.cpp \ src/parser/QName.cpp \ src/parser/XQParser.cpp \ src/parser/XQParser.hpp \ src/lexer/FlexLexer.h \ src/lexer/XQLexer.cpp \ src/lexer/XQLexer2.cpp \ src/lexer/XQLexer.hpp \ src/lexer/XSLT2Lexer.cpp \ src/lexer/XSLT2Lexer.hpp \ src/mapm/mapm5sin.c \ src/mapm/mapm_add.c \ src/mapm/mapmasin.c \ src/mapm/mapmasn0.c \ src/mapm/mapmcbrt.c \ src/mapm/mapmcnst.c \ src/mapm/mapm_cpi.c \ src/mapm/m_apm.cpp \ src/mapm/mapm_div.c \ src/mapm/mapm_exp.c \ src/mapm/mapmfact.c \ src/mapm/mapm_fam.c \ src/mapm/mapm_fft.c \ src/mapm/mapm_flr.c \ src/mapm/mapmfmul.c \ src/mapm/mapm_fpf.c \ src/mapm/mapm_gcd.c \ src/mapm/mapmgues.c \ src/mapm/mapmhasn.c \ src/mapm/mapmhsin.c \ src/mapm/mapmipwr.c \ src/mapm/mapmistr.c \ src/mapm/m_apm_lc.h \ src/mapm/mapm_lg2.c \ src/mapm/mapm_lg3.c \ src/mapm/mapm_log.c \ src/mapm/mapm_mt.cpp \ src/mapm/mapm_mul.c \ src/mapm/mapm_pow.c \ src/mapm/mapmpwr2.c \ src/mapm/mapm_rcp.c \ src/mapm/mapm_rnd.c \ src/mapm/mapmrsin.c \ src/mapm/mapm_set.c \ src/mapm/mapm_sin.c \ src/mapm/mapmsqrt.c \ src/mapm/mapmstck.c \ src/mapm/mapmutil.c \ src/mapm/mapmutl2.c \ src/mapm/README \ src/axis/NodeTest.cpp \ src/operators/And.cpp \ src/operators/ArithmeticOperator.cpp \ src/operators/ComparisonOperator.cpp \ src/operators/Divide.cpp \ src/operators/Equals.cpp \ src/operators/Except.cpp \ src/operators/GeneralComp.cpp \ src/operators/GreaterThan.cpp \ src/operators/GreaterThanEqual.cpp \ src/operators/IntegerDivide.cpp \ src/operators/Intersect.cpp \ src/operators/LessThan.cpp \ src/operators/LessThanEqual.cpp \ src/operators/Minus.cpp \ src/operators/Mod.cpp \ src/operators/Multiply.cpp \ src/operators/NodeComparison.cpp \ src/operators/NotEquals.cpp \ src/operators/Or.cpp \ src/operators/OrderComparison.cpp \ src/operators/Plus.cpp \ src/operators/UnaryMinus.cpp \ src/operators/Union.cpp \ src/schema/DocumentCacheImpl.cpp \ src/schema/SequenceType.cpp \ src/schema/AnyAtomicTypeDatatypeValidator.cpp \ src/schema/SchemaValidatorFilter.cpp \ src/schema/FaxppDocumentCacheImpl.hpp \ src/schema/FaxppDocumentCacheImpl.cpp \ src/runtime/ClosureResult.cpp \ src/runtime/EmptyResult.cpp \ src/runtime/ResultBuffer.cpp \ src/runtime/ResultBufferImpl.cpp \ src/runtime/Result.cpp \ src/runtime/ResultImpl.cpp \ src/runtime/SequenceResult.cpp \ src/runtime/Sequence.cpp \ src/update/FunctionPut.cpp \ src/update/PendingUpdateList.cpp \ src/update/UApplyUpdates.cpp \ src/update/UDelete.cpp \ src/update/URename.cpp \ src/update/UReplace.cpp \ src/update/UReplaceValueOf.cpp \ src/update/UInsertAsFirst.cpp \ src/update/UInsertAsLast.cpp \ src/update/UInsertInto.cpp \ src/update/UInsertAfter.cpp \ src/update/UInsertBefore.cpp \ src/update/UTransform.cpp \ src/config/xqilla_config.h \ src/xqts/TestSuiteParser.cpp \ src/xqts/TestSuiteResultListener.cpp \ src/xqts/TestSuiteRunner.cpp \ src/fastxdm/FastXDMUpdateFactory.hpp \ src/fastxdm/FastXDMUpdateFactory.cpp \ src/fastxdm/FastXDMDocument.hpp \ src/fastxdm/FastXDMDocument.cpp \ src/fastxdm/FastXDMNodeImpl.hpp \ src/fastxdm/FastXDMNodeImpl.cpp \ src/fastxdm/FastXDMConfiguration.cpp \ src/fastxdm/FastXDMSequenceBuilder.hpp \ src/fastxdm/FastXDMSequenceBuilder.cpp \ src/xerces/AncestorAxis.hpp \ src/xerces/AncestorOrSelfAxis.hpp \ src/xerces/AttributeAxis.hpp \ src/xerces/Axis.hpp \ src/xerces/ChildAxis.hpp \ src/xerces/DescendantAxis.hpp \ src/xerces/DescendantOrSelfAxis.hpp \ src/xerces/FollowingAxis.hpp \ src/xerces/FollowingSiblingAxis.hpp \ src/xerces/NamespaceAxis.hpp \ src/xerces/ParentAxis.hpp \ src/xerces/PrecedingAxis.hpp \ src/xerces/PrecedingSiblingAxis.hpp \ src/xerces/AncestorAxis.cpp \ src/xerces/AncestorOrSelfAxis.cpp \ src/xerces/AttributeAxis.cpp \ src/xerces/Axis.cpp \ src/xerces/ChildAxis.cpp \ src/xerces/DescendantAxis.cpp \ src/xerces/DescendantOrSelfAxis.cpp \ src/xerces/FollowingAxis.cpp \ src/xerces/FollowingSiblingAxis.cpp \ src/xerces/NamespaceAxis.cpp \ src/xerces/ParentAxis.cpp \ src/xerces/PrecedingAxis.cpp \ src/xerces/PrecedingSiblingAxis.cpp \ src/xerces/XercesConfiguration.cpp \ src/xerces/XercesNodeImpl.hpp \ src/xerces/XercesNodeImpl.cpp \ src/xerces/XercesSequenceBuilder.hpp \ src/xerces/XercesSequenceBuilder.cpp \ src/xerces/XercesUpdateFactory.hpp \ src/xerces/XercesUpdateFactory.cpp \ src/xerces/XercesURIResolver.hpp \ src/xerces/XercesURIResolver.cpp \ src/optimizer/Optimizer.cpp \ src/optimizer/ASTCopier.cpp \ src/optimizer/ASTReleaser.cpp \ src/optimizer/ASTVisitor.cpp \ src/optimizer/PartialEvaluator.cpp \ src/optimizer/StaticTyper.cpp \ src/optimizer/QueryPathNode.cpp \ src/optimizer/QueryPathTreeGenerator.cpp \ src/optimizer/ASTToXML.cpp \ src/yajl/yajl_buf.c \ src/yajl/yajl_buf.h \ src/yajl/yajl.c \ src/yajl/yajl_encode.c \ src/yajl/yajl_encode.h \ src/yajl/yajl_gen.c \ src/yajl/yajl_lex.c \ src/yajl/yajl_lex.h \ src/yajl/yajl_parser.c \ src/yajl/yajl_parser.h \ src/yajl/yajl_common.h \ src/yajl/yajl_gen.h \ src/yajl/yajl_parse.h \ src/xqc/XQillaXQCImplementation.cpp \ src/xqc/XQillaXQCImplementation.hpp \ src/xqc/XQillaXQCStaticContext.cpp \ src/xqc/XQillaXQCStaticContext.hpp \ src/xqc/XQillaXQCDynamicContext.cpp \ src/xqc/XQillaXQCDynamicContext.hpp \ src/xqc/XQillaXQCExpression.cpp \ src/xqc/XQillaXQCExpression.hpp \ src/xqc/XQillaXQCSequence.cpp \ src/xqc/XQillaXQCSequence.hpp \ src/xqc/XQillaXQCInputStream.hpp EXTRA_DIST = \ src/lexer/flex.skl \ src/lexer/XQLexer.l \ src/parser/XQParser.y \ src/parser/XQParser.y \ src/samples/dom-api/data.xml \ src/samples/dom-api/data.xsd \ src/samples/dom-api/foo.xml \ src/samples/simple-api/foo.xml \ src/functions/CoreModule.xq \ src/functions/FnModule.xq \ LICENSE \ TODO \ README \ ChangeLog \ docs/Doxyfile.simpleapi.in \ docs/Doxyfile.dom3api.in \ docs/Doxyfile.devapi.in \ docs/Doxyfile.xqc.in \ docs/dom3_header.html \ docs/simple_header.html \ docs/xqc_header.html \ docs/simple-api \ docs/dom3-api \ docs/xqc-api \ Win32Projects/VC14/dom-basic.vcxproj \ Win32Projects/VC14/dom-context-item.vcxproj \ Win32Projects/VC14/dom-resolver.vcxproj \ Win32Projects/VC14/simple-basic.vcxproj \ Win32Projects/VC14/simple-context-item.vcxproj \ Win32Projects/VC14/xmarkRunner.vcxproj \ Win32Projects/VC14/xqc-basic.vcxproj \ Win32Projects/VC14/xqc-context-item.vcxproj \ Win32Projects/VC14/xqilla.vcxproj \ Win32Projects/VC14/xqilla_cmd.vcxproj \ Win32Projects/VC14/xqtsRunner.vcxproj \ Win32Projects/VC14/XQilla.sln \ Win32Projects/VC11/dom-basic.vcxproj \ Win32Projects/VC11/dom-context-item.vcxproj \ Win32Projects/VC11/dom-resolver.vcxproj \ Win32Projects/VC11/simple-basic.vcxproj \ Win32Projects/VC11/simple-context-item.vcxproj \ Win32Projects/VC11/xmarkRunner.vcxproj \ Win32Projects/VC11/xqc-basic.vcxproj \ Win32Projects/VC11/xqc-context-item.vcxproj \ Win32Projects/VC11/xqilla.vcxproj \ Win32Projects/VC11/xqilla_cmd.vcxproj \ Win32Projects/VC11/xqtsRunner.vcxproj \ Win32Projects/VC11/XQilla.sln \ Win32Projects/VC10/dom-basic.vcxproj \ Win32Projects/VC10/dom-context-item.vcxproj \ Win32Projects/VC10/dom-resolver.vcxproj \ Win32Projects/VC10/simple-basic.vcxproj \ Win32Projects/VC10/simple-context-item.vcxproj \ Win32Projects/VC10/xmarkRunner.vcxproj \ Win32Projects/VC10/xqc-basic.vcxproj \ Win32Projects/VC10/xqc-context-item.vcxproj \ Win32Projects/VC10/xqilla.vcxproj \ Win32Projects/VC10/xqilla_cmd.vcxproj \ Win32Projects/VC10/xqtsRunner.vcxproj \ Win32Projects/VC10/XQilla.sln \ tests/xqts/xqts_testsuite/errors.xml \ tests/xqts/xqts_testsuite/update_errors.xml \ tests/xqts/xqts_testsuite/xsl_errors.xml \ wintools/lib_paths.sed \ wintools/s_win32 \ wintools/README \ wintools/s_projects \ wintools/genproject.xq \ wintools/xqilla.template.xml \ wintools/xqilla.vs2010.xq \ wintools/xqilla.vs2010_filter.xq xqilla_SOURCES = \ src/samples/xqilla/xqilla-commandline.cpp xqtsRunner_SOURCES = \ tests/xqts/runner.cpp xmarkRunner_SOURCES = \ tests/xmark/xmark.cpp simple_basic_SOURCES = \ src/samples/simple-api/simple-basic.cpp simple_context_item_SOURCES = \ src/samples/simple-api/simple-context-item.cpp dom_basic_SOURCES = \ src/samples/dom-api/dom-basic.cpp dom_context_item_SOURCES = \ src/samples/dom-api/dom-context-item.cpp dom_resolver_SOURCES = \ src/samples/dom-api/dom-resolver.cpp # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_basic_SOURCES = dummy.cpp xqc_basic_SOURCES = \ src/samples/xqc-api/xqc-basic.c # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_context_item_SOURCES = dummy.cpp xqc_context_item_SOURCES = \ src/samples/xqc-api/xqc-context-item.c compile_delayed_module_SOURCES = \ src/tools/compile-delayed-module.cpp LEXERFILE = $(top_srcdir)/src/lexer/XQLexer.cpp LEXTEMPLATE = $(top_srcdir)/src/lexer/XQLexer.l LEXSKEL = $(top_srcdir)/src/lexer/flex.skl PARSERFILE = $(top_srcdir)/src/parser/XQParser.y PARSERCPP = $(top_srcdir)/src/parser/XQParser.cpp PARSERHPP = $(top_srcdir)/src/parser/XQParser.hpp all: all-recursive .SUFFIXES: .SUFFIXES: .c .cpp .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): src/config/xqilla_config_unix.h: src/config/stamp-h1 @if test ! -f $@; then \ rm -f src/config/stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) src/config/stamp-h1; \ else :; fi src/config/stamp-h1: $(top_srcdir)/src/config/xqilla_config_unix.h.in $(top_builddir)/config.status @rm -f src/config/stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status src/config/xqilla_config_unix.h $(top_srcdir)/src/config/xqilla_config_unix.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f src/config/stamp-h1 touch $@ distclean-hdr: -rm -f src/config/xqilla_config_unix.h src/config/stamp-h1 install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @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 " $(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)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libxqilla.la: $(libxqilla_la_OBJECTS) $(libxqilla_la_DEPENDENCIES) $(libxqilla_la_LINK) -rpath $(libdir) $(libxqilla_la_OBJECTS) $(libxqilla_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ 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)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_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-noinstPROGRAMS: @list='$(noinst_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 compile-delayed-module$(EXEEXT): $(compile_delayed_module_OBJECTS) $(compile_delayed_module_DEPENDENCIES) @rm -f compile-delayed-module$(EXEEXT) $(CXXLINK) $(compile_delayed_module_OBJECTS) $(compile_delayed_module_LDADD) $(LIBS) dom-basic$(EXEEXT): $(dom_basic_OBJECTS) $(dom_basic_DEPENDENCIES) @rm -f dom-basic$(EXEEXT) $(CXXLINK) $(dom_basic_OBJECTS) $(dom_basic_LDADD) $(LIBS) dom-context-item$(EXEEXT): $(dom_context_item_OBJECTS) $(dom_context_item_DEPENDENCIES) @rm -f dom-context-item$(EXEEXT) $(CXXLINK) $(dom_context_item_OBJECTS) $(dom_context_item_LDADD) $(LIBS) dom-resolver$(EXEEXT): $(dom_resolver_OBJECTS) $(dom_resolver_DEPENDENCIES) @rm -f dom-resolver$(EXEEXT) $(CXXLINK) $(dom_resolver_OBJECTS) $(dom_resolver_LDADD) $(LIBS) simple-basic$(EXEEXT): $(simple_basic_OBJECTS) $(simple_basic_DEPENDENCIES) @rm -f simple-basic$(EXEEXT) $(CXXLINK) $(simple_basic_OBJECTS) $(simple_basic_LDADD) $(LIBS) simple-context-item$(EXEEXT): $(simple_context_item_OBJECTS) $(simple_context_item_DEPENDENCIES) @rm -f simple-context-item$(EXEEXT) $(CXXLINK) $(simple_context_item_OBJECTS) $(simple_context_item_LDADD) $(LIBS) xmarkRunner$(EXEEXT): $(xmarkRunner_OBJECTS) $(xmarkRunner_DEPENDENCIES) @rm -f xmarkRunner$(EXEEXT) $(CXXLINK) $(xmarkRunner_OBJECTS) $(xmarkRunner_LDADD) $(LIBS) xqc-basic$(EXEEXT): $(xqc_basic_OBJECTS) $(xqc_basic_DEPENDENCIES) @rm -f xqc-basic$(EXEEXT) $(CXXLINK) $(xqc_basic_OBJECTS) $(xqc_basic_LDADD) $(LIBS) xqc-context-item$(EXEEXT): $(xqc_context_item_OBJECTS) $(xqc_context_item_DEPENDENCIES) @rm -f xqc-context-item$(EXEEXT) $(CXXLINK) $(xqc_context_item_OBJECTS) $(xqc_context_item_LDADD) $(LIBS) xqilla$(EXEEXT): $(xqilla_OBJECTS) $(xqilla_DEPENDENCIES) @rm -f xqilla$(EXEEXT) $(CXXLINK) $(xqilla_OBJECTS) $(xqilla_LDADD) $(LIBS) xqtsRunner$(EXEEXT): $(xqtsRunner_OBJECTS) $(xqtsRunner_DEPENDENCIES) @rm -f xqtsRunner$(EXEEXT) $(CXXLINK) $(xqtsRunner_OBJECTS) $(xqtsRunner_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTCopier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTDebugHook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTReleaser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTToXML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTVisitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATAnySimpleTypeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATAnyURIOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATBase64BinaryOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATBooleanOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDateOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDateTimeOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDecimalOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDoubleOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDurationOrDerived.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDurationOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATFloatOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGDayOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGMonthDayOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGMonthOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGYearMonthOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGYearOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATHexBinaryOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATNotationOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATQNameOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATStringOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATTimeOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATUntypedAtomic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATUntypedAtomicImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AncestorAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AncestorOrSelfAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/And.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnyAtomicType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnyAtomicTypeDatatypeValidator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArithmeticOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AttributeAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Axis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BaseMemoryManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BuiltInModules.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChildAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClosureResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CodepointCollation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CollationImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ComparisonOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContentSequenceFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContextTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContextUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvertFunctionArg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CountTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DatatypeFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DatatypeLookup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DateOrTimeType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DateUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DebugHookDecorator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultTokenStore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultTokenizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DelayedModule.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DescendantAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DescendantOrSelfAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Divide.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DocumentCacheImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EXSLTMathFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EmptyResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Equals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventGenerator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventSerializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Except.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ExternalFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTAnd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTContains.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTContent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTDistance.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTMildnot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTOr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTOrder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTScope.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTUnaryNot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTWindow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTWords.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMConfiguration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMDocument.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMSequenceBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMUpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FaxppDocumentCacheImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FollowingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FollowingSiblingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ForTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FuncFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAbs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAcos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustDateTimeToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustDateToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustTimeToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAnalyzeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAtan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionBaseURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCaseFold.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCeiling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCodepointsToString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCollection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCompare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionConcat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionContains.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCount.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDayFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDayFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDaysFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDefaultCollation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDistinctValues.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDoc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocAvailable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocument.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocumentURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionEmpty.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionEndsWith.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionError.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionExp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionExplain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFloor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFunctionArity.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFunctionName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHead.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionId.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionIdref.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionImplicitTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLang.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLocalNameFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLocalname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLookup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLowerCase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMatches.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNamespaceURIFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNamespaceUri.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNilled.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNodeName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNormalizeSpace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNormalizeUnicode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNumber.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseHTML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseXML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPosition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPower.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPrefixFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPut.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRefImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRegexGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionReplace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionResolveURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRoot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRound.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRoundHalfToEven.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSentences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSerializeJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSignature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSqrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStartsWith.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStaticBaseURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStringLength.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStringToCodepoints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSubstring.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTail.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTokenize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTrace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUnordered.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUnparsedText.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUpperCase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionWords.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GeneralComp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GreaterThan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GreaterThanEqual.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IntegerDivide.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InteractiveDebugger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Intersect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ItemFactoryImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LessThan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LessThanEqual.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LetTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Minus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Mod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Multiply.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NSFixupFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NamespaceAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NoInheritFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NodeComparison.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NodeTest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NotEquals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NumUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Numeric.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NumericFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Optimizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Or.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrderByTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrderComparison.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ParentAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PartialEvaluator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PendingUpdateList.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Plus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PrecedingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PrecedingSiblingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ProxyMemoryManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathTreeFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathTreeGenerator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ReferenceCounted.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RegExpFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Result.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultBuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultBufferImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SchemaValidatorFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StackFrame.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticAnalysis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticTyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringPool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteResultListener.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteRunner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Timezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TupleDebugHook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TupleNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UApplyUpdates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UDelete.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAfter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAsFirst.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAsLast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertBefore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertInto.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/URename.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UReplace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UReplaceValueOf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UTF8Str.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UTransform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnaryMinus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnicodeTransformer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Union.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarHashEntryImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarStoreImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarTypeStoreImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WhereTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLChCompare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2MemoryManagerImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2NSUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2NodeSerializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2ResultImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2Utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPathDocumentImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPathNamespaceImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAnalyzeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQApplyTemplates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAtomize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAttributeConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCallTemplate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCastAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCastableAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCommentConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQContextImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQContextItem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCopy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCopyOf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDOMConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDocumentConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDocumentOrder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDynamicContextImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQEffectiveBooleanValue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQElementConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionCall.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionCoercion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionConversion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionDeref.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionRef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQGlobalVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQIf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQInlineFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLexer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLexer2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLiteral.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQMap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNamespaceBinding.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNamespaceConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNav.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQOrderingChange.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPIConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPartialApply.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPredicate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQQuantified.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQQuery.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQReturn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQStep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTextConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTreatAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTypeswitch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQUserFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQValidate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQilla.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaBuilderImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaDocumentImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaExpressionImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaImplementation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaNSResolverImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaPlatformUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXMLGrammarPoolImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCDynamicContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCExpression.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCImplementation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCStaticContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSLT2Lexer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XStr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesConfiguration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesSequenceBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesURIResolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesUpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compile-delayed-module.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-resolver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_apm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm5sin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_add.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_cpi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_div.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_exp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fam.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fft.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_flr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fpf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_gcd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_lg2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_lg3.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_log.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_mt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_mul.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_pow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_rcp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_rnd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_set.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_sin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmasin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmasn0.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmcbrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmcnst.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmfact.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmfmul.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmgues.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmhasn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmhsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmipwr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmistr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmpwr2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmrsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmsqrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmstck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmutil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmutl2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8proc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmark.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqc-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqc-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqilla-commandline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_buf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_encode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_gen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_lex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_parser.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< utf8proc.lo: src/utils/utf8proc/utf8proc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utf8proc.lo -MD -MP -MF $(DEPDIR)/utf8proc.Tpo -c -o utf8proc.lo `test -f 'src/utils/utf8proc/utf8proc.c' || echo '$(srcdir)/'`src/utils/utf8proc/utf8proc.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/utf8proc.Tpo $(DEPDIR)/utf8proc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/utils/utf8proc/utf8proc.c' object='utf8proc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utf8proc.lo `test -f 'src/utils/utf8proc/utf8proc.c' || echo '$(srcdir)/'`src/utils/utf8proc/utf8proc.c mapm5sin.lo: src/mapm/mapm5sin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm5sin.lo -MD -MP -MF $(DEPDIR)/mapm5sin.Tpo -c -o mapm5sin.lo `test -f 'src/mapm/mapm5sin.c' || echo '$(srcdir)/'`src/mapm/mapm5sin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm5sin.Tpo $(DEPDIR)/mapm5sin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm5sin.c' object='mapm5sin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm5sin.lo `test -f 'src/mapm/mapm5sin.c' || echo '$(srcdir)/'`src/mapm/mapm5sin.c mapm_add.lo: src/mapm/mapm_add.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_add.lo -MD -MP -MF $(DEPDIR)/mapm_add.Tpo -c -o mapm_add.lo `test -f 'src/mapm/mapm_add.c' || echo '$(srcdir)/'`src/mapm/mapm_add.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_add.Tpo $(DEPDIR)/mapm_add.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_add.c' object='mapm_add.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_add.lo `test -f 'src/mapm/mapm_add.c' || echo '$(srcdir)/'`src/mapm/mapm_add.c mapmasin.lo: src/mapm/mapmasin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmasin.lo -MD -MP -MF $(DEPDIR)/mapmasin.Tpo -c -o mapmasin.lo `test -f 'src/mapm/mapmasin.c' || echo '$(srcdir)/'`src/mapm/mapmasin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmasin.Tpo $(DEPDIR)/mapmasin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmasin.c' object='mapmasin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmasin.lo `test -f 'src/mapm/mapmasin.c' || echo '$(srcdir)/'`src/mapm/mapmasin.c mapmasn0.lo: src/mapm/mapmasn0.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmasn0.lo -MD -MP -MF $(DEPDIR)/mapmasn0.Tpo -c -o mapmasn0.lo `test -f 'src/mapm/mapmasn0.c' || echo '$(srcdir)/'`src/mapm/mapmasn0.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmasn0.Tpo $(DEPDIR)/mapmasn0.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmasn0.c' object='mapmasn0.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmasn0.lo `test -f 'src/mapm/mapmasn0.c' || echo '$(srcdir)/'`src/mapm/mapmasn0.c mapmcbrt.lo: src/mapm/mapmcbrt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmcbrt.lo -MD -MP -MF $(DEPDIR)/mapmcbrt.Tpo -c -o mapmcbrt.lo `test -f 'src/mapm/mapmcbrt.c' || echo '$(srcdir)/'`src/mapm/mapmcbrt.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmcbrt.Tpo $(DEPDIR)/mapmcbrt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmcbrt.c' object='mapmcbrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmcbrt.lo `test -f 'src/mapm/mapmcbrt.c' || echo '$(srcdir)/'`src/mapm/mapmcbrt.c mapmcnst.lo: src/mapm/mapmcnst.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmcnst.lo -MD -MP -MF $(DEPDIR)/mapmcnst.Tpo -c -o mapmcnst.lo `test -f 'src/mapm/mapmcnst.c' || echo '$(srcdir)/'`src/mapm/mapmcnst.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmcnst.Tpo $(DEPDIR)/mapmcnst.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmcnst.c' object='mapmcnst.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmcnst.lo `test -f 'src/mapm/mapmcnst.c' || echo '$(srcdir)/'`src/mapm/mapmcnst.c mapm_cpi.lo: src/mapm/mapm_cpi.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_cpi.lo -MD -MP -MF $(DEPDIR)/mapm_cpi.Tpo -c -o mapm_cpi.lo `test -f 'src/mapm/mapm_cpi.c' || echo '$(srcdir)/'`src/mapm/mapm_cpi.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_cpi.Tpo $(DEPDIR)/mapm_cpi.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_cpi.c' object='mapm_cpi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_cpi.lo `test -f 'src/mapm/mapm_cpi.c' || echo '$(srcdir)/'`src/mapm/mapm_cpi.c mapm_div.lo: src/mapm/mapm_div.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_div.lo -MD -MP -MF $(DEPDIR)/mapm_div.Tpo -c -o mapm_div.lo `test -f 'src/mapm/mapm_div.c' || echo '$(srcdir)/'`src/mapm/mapm_div.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_div.Tpo $(DEPDIR)/mapm_div.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_div.c' object='mapm_div.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_div.lo `test -f 'src/mapm/mapm_div.c' || echo '$(srcdir)/'`src/mapm/mapm_div.c mapm_exp.lo: src/mapm/mapm_exp.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_exp.lo -MD -MP -MF $(DEPDIR)/mapm_exp.Tpo -c -o mapm_exp.lo `test -f 'src/mapm/mapm_exp.c' || echo '$(srcdir)/'`src/mapm/mapm_exp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_exp.Tpo $(DEPDIR)/mapm_exp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_exp.c' object='mapm_exp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_exp.lo `test -f 'src/mapm/mapm_exp.c' || echo '$(srcdir)/'`src/mapm/mapm_exp.c mapmfact.lo: src/mapm/mapmfact.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmfact.lo -MD -MP -MF $(DEPDIR)/mapmfact.Tpo -c -o mapmfact.lo `test -f 'src/mapm/mapmfact.c' || echo '$(srcdir)/'`src/mapm/mapmfact.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmfact.Tpo $(DEPDIR)/mapmfact.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmfact.c' object='mapmfact.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmfact.lo `test -f 'src/mapm/mapmfact.c' || echo '$(srcdir)/'`src/mapm/mapmfact.c mapm_fam.lo: src/mapm/mapm_fam.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fam.lo -MD -MP -MF $(DEPDIR)/mapm_fam.Tpo -c -o mapm_fam.lo `test -f 'src/mapm/mapm_fam.c' || echo '$(srcdir)/'`src/mapm/mapm_fam.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fam.Tpo $(DEPDIR)/mapm_fam.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fam.c' object='mapm_fam.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fam.lo `test -f 'src/mapm/mapm_fam.c' || echo '$(srcdir)/'`src/mapm/mapm_fam.c mapm_fft.lo: src/mapm/mapm_fft.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fft.lo -MD -MP -MF $(DEPDIR)/mapm_fft.Tpo -c -o mapm_fft.lo `test -f 'src/mapm/mapm_fft.c' || echo '$(srcdir)/'`src/mapm/mapm_fft.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fft.Tpo $(DEPDIR)/mapm_fft.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fft.c' object='mapm_fft.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fft.lo `test -f 'src/mapm/mapm_fft.c' || echo '$(srcdir)/'`src/mapm/mapm_fft.c mapm_flr.lo: src/mapm/mapm_flr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_flr.lo -MD -MP -MF $(DEPDIR)/mapm_flr.Tpo -c -o mapm_flr.lo `test -f 'src/mapm/mapm_flr.c' || echo '$(srcdir)/'`src/mapm/mapm_flr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_flr.Tpo $(DEPDIR)/mapm_flr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_flr.c' object='mapm_flr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_flr.lo `test -f 'src/mapm/mapm_flr.c' || echo '$(srcdir)/'`src/mapm/mapm_flr.c mapmfmul.lo: src/mapm/mapmfmul.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmfmul.lo -MD -MP -MF $(DEPDIR)/mapmfmul.Tpo -c -o mapmfmul.lo `test -f 'src/mapm/mapmfmul.c' || echo '$(srcdir)/'`src/mapm/mapmfmul.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmfmul.Tpo $(DEPDIR)/mapmfmul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmfmul.c' object='mapmfmul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmfmul.lo `test -f 'src/mapm/mapmfmul.c' || echo '$(srcdir)/'`src/mapm/mapmfmul.c mapm_fpf.lo: src/mapm/mapm_fpf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fpf.lo -MD -MP -MF $(DEPDIR)/mapm_fpf.Tpo -c -o mapm_fpf.lo `test -f 'src/mapm/mapm_fpf.c' || echo '$(srcdir)/'`src/mapm/mapm_fpf.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fpf.Tpo $(DEPDIR)/mapm_fpf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fpf.c' object='mapm_fpf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fpf.lo `test -f 'src/mapm/mapm_fpf.c' || echo '$(srcdir)/'`src/mapm/mapm_fpf.c mapm_gcd.lo: src/mapm/mapm_gcd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_gcd.lo -MD -MP -MF $(DEPDIR)/mapm_gcd.Tpo -c -o mapm_gcd.lo `test -f 'src/mapm/mapm_gcd.c' || echo '$(srcdir)/'`src/mapm/mapm_gcd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_gcd.Tpo $(DEPDIR)/mapm_gcd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_gcd.c' object='mapm_gcd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_gcd.lo `test -f 'src/mapm/mapm_gcd.c' || echo '$(srcdir)/'`src/mapm/mapm_gcd.c mapmgues.lo: src/mapm/mapmgues.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmgues.lo -MD -MP -MF $(DEPDIR)/mapmgues.Tpo -c -o mapmgues.lo `test -f 'src/mapm/mapmgues.c' || echo '$(srcdir)/'`src/mapm/mapmgues.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmgues.Tpo $(DEPDIR)/mapmgues.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmgues.c' object='mapmgues.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmgues.lo `test -f 'src/mapm/mapmgues.c' || echo '$(srcdir)/'`src/mapm/mapmgues.c mapmhasn.lo: src/mapm/mapmhasn.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmhasn.lo -MD -MP -MF $(DEPDIR)/mapmhasn.Tpo -c -o mapmhasn.lo `test -f 'src/mapm/mapmhasn.c' || echo '$(srcdir)/'`src/mapm/mapmhasn.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmhasn.Tpo $(DEPDIR)/mapmhasn.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmhasn.c' object='mapmhasn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmhasn.lo `test -f 'src/mapm/mapmhasn.c' || echo '$(srcdir)/'`src/mapm/mapmhasn.c mapmhsin.lo: src/mapm/mapmhsin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmhsin.lo -MD -MP -MF $(DEPDIR)/mapmhsin.Tpo -c -o mapmhsin.lo `test -f 'src/mapm/mapmhsin.c' || echo '$(srcdir)/'`src/mapm/mapmhsin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmhsin.Tpo $(DEPDIR)/mapmhsin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmhsin.c' object='mapmhsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmhsin.lo `test -f 'src/mapm/mapmhsin.c' || echo '$(srcdir)/'`src/mapm/mapmhsin.c mapmipwr.lo: src/mapm/mapmipwr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmipwr.lo -MD -MP -MF $(DEPDIR)/mapmipwr.Tpo -c -o mapmipwr.lo `test -f 'src/mapm/mapmipwr.c' || echo '$(srcdir)/'`src/mapm/mapmipwr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmipwr.Tpo $(DEPDIR)/mapmipwr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmipwr.c' object='mapmipwr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmipwr.lo `test -f 'src/mapm/mapmipwr.c' || echo '$(srcdir)/'`src/mapm/mapmipwr.c mapmistr.lo: src/mapm/mapmistr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmistr.lo -MD -MP -MF $(DEPDIR)/mapmistr.Tpo -c -o mapmistr.lo `test -f 'src/mapm/mapmistr.c' || echo '$(srcdir)/'`src/mapm/mapmistr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmistr.Tpo $(DEPDIR)/mapmistr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmistr.c' object='mapmistr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmistr.lo `test -f 'src/mapm/mapmistr.c' || echo '$(srcdir)/'`src/mapm/mapmistr.c mapm_lg2.lo: src/mapm/mapm_lg2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_lg2.lo -MD -MP -MF $(DEPDIR)/mapm_lg2.Tpo -c -o mapm_lg2.lo `test -f 'src/mapm/mapm_lg2.c' || echo '$(srcdir)/'`src/mapm/mapm_lg2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_lg2.Tpo $(DEPDIR)/mapm_lg2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_lg2.c' object='mapm_lg2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_lg2.lo `test -f 'src/mapm/mapm_lg2.c' || echo '$(srcdir)/'`src/mapm/mapm_lg2.c mapm_lg3.lo: src/mapm/mapm_lg3.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_lg3.lo -MD -MP -MF $(DEPDIR)/mapm_lg3.Tpo -c -o mapm_lg3.lo `test -f 'src/mapm/mapm_lg3.c' || echo '$(srcdir)/'`src/mapm/mapm_lg3.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_lg3.Tpo $(DEPDIR)/mapm_lg3.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_lg3.c' object='mapm_lg3.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_lg3.lo `test -f 'src/mapm/mapm_lg3.c' || echo '$(srcdir)/'`src/mapm/mapm_lg3.c mapm_log.lo: src/mapm/mapm_log.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_log.lo -MD -MP -MF $(DEPDIR)/mapm_log.Tpo -c -o mapm_log.lo `test -f 'src/mapm/mapm_log.c' || echo '$(srcdir)/'`src/mapm/mapm_log.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_log.Tpo $(DEPDIR)/mapm_log.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_log.c' object='mapm_log.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_log.lo `test -f 'src/mapm/mapm_log.c' || echo '$(srcdir)/'`src/mapm/mapm_log.c mapm_mul.lo: src/mapm/mapm_mul.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_mul.lo -MD -MP -MF $(DEPDIR)/mapm_mul.Tpo -c -o mapm_mul.lo `test -f 'src/mapm/mapm_mul.c' || echo '$(srcdir)/'`src/mapm/mapm_mul.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_mul.Tpo $(DEPDIR)/mapm_mul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_mul.c' object='mapm_mul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_mul.lo `test -f 'src/mapm/mapm_mul.c' || echo '$(srcdir)/'`src/mapm/mapm_mul.c mapm_pow.lo: src/mapm/mapm_pow.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_pow.lo -MD -MP -MF $(DEPDIR)/mapm_pow.Tpo -c -o mapm_pow.lo `test -f 'src/mapm/mapm_pow.c' || echo '$(srcdir)/'`src/mapm/mapm_pow.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_pow.Tpo $(DEPDIR)/mapm_pow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_pow.c' object='mapm_pow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_pow.lo `test -f 'src/mapm/mapm_pow.c' || echo '$(srcdir)/'`src/mapm/mapm_pow.c mapmpwr2.lo: src/mapm/mapmpwr2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmpwr2.lo -MD -MP -MF $(DEPDIR)/mapmpwr2.Tpo -c -o mapmpwr2.lo `test -f 'src/mapm/mapmpwr2.c' || echo '$(srcdir)/'`src/mapm/mapmpwr2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmpwr2.Tpo $(DEPDIR)/mapmpwr2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmpwr2.c' object='mapmpwr2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmpwr2.lo `test -f 'src/mapm/mapmpwr2.c' || echo '$(srcdir)/'`src/mapm/mapmpwr2.c mapm_rcp.lo: src/mapm/mapm_rcp.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_rcp.lo -MD -MP -MF $(DEPDIR)/mapm_rcp.Tpo -c -o mapm_rcp.lo `test -f 'src/mapm/mapm_rcp.c' || echo '$(srcdir)/'`src/mapm/mapm_rcp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_rcp.Tpo $(DEPDIR)/mapm_rcp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_rcp.c' object='mapm_rcp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_rcp.lo `test -f 'src/mapm/mapm_rcp.c' || echo '$(srcdir)/'`src/mapm/mapm_rcp.c mapm_rnd.lo: src/mapm/mapm_rnd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_rnd.lo -MD -MP -MF $(DEPDIR)/mapm_rnd.Tpo -c -o mapm_rnd.lo `test -f 'src/mapm/mapm_rnd.c' || echo '$(srcdir)/'`src/mapm/mapm_rnd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_rnd.Tpo $(DEPDIR)/mapm_rnd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_rnd.c' object='mapm_rnd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_rnd.lo `test -f 'src/mapm/mapm_rnd.c' || echo '$(srcdir)/'`src/mapm/mapm_rnd.c mapmrsin.lo: src/mapm/mapmrsin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmrsin.lo -MD -MP -MF $(DEPDIR)/mapmrsin.Tpo -c -o mapmrsin.lo `test -f 'src/mapm/mapmrsin.c' || echo '$(srcdir)/'`src/mapm/mapmrsin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmrsin.Tpo $(DEPDIR)/mapmrsin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmrsin.c' object='mapmrsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmrsin.lo `test -f 'src/mapm/mapmrsin.c' || echo '$(srcdir)/'`src/mapm/mapmrsin.c mapm_set.lo: src/mapm/mapm_set.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_set.lo -MD -MP -MF $(DEPDIR)/mapm_set.Tpo -c -o mapm_set.lo `test -f 'src/mapm/mapm_set.c' || echo '$(srcdir)/'`src/mapm/mapm_set.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_set.Tpo $(DEPDIR)/mapm_set.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_set.c' object='mapm_set.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_set.lo `test -f 'src/mapm/mapm_set.c' || echo '$(srcdir)/'`src/mapm/mapm_set.c mapm_sin.lo: src/mapm/mapm_sin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_sin.lo -MD -MP -MF $(DEPDIR)/mapm_sin.Tpo -c -o mapm_sin.lo `test -f 'src/mapm/mapm_sin.c' || echo '$(srcdir)/'`src/mapm/mapm_sin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_sin.Tpo $(DEPDIR)/mapm_sin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_sin.c' object='mapm_sin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_sin.lo `test -f 'src/mapm/mapm_sin.c' || echo '$(srcdir)/'`src/mapm/mapm_sin.c mapmsqrt.lo: src/mapm/mapmsqrt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmsqrt.lo -MD -MP -MF $(DEPDIR)/mapmsqrt.Tpo -c -o mapmsqrt.lo `test -f 'src/mapm/mapmsqrt.c' || echo '$(srcdir)/'`src/mapm/mapmsqrt.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmsqrt.Tpo $(DEPDIR)/mapmsqrt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmsqrt.c' object='mapmsqrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmsqrt.lo `test -f 'src/mapm/mapmsqrt.c' || echo '$(srcdir)/'`src/mapm/mapmsqrt.c mapmstck.lo: src/mapm/mapmstck.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmstck.lo -MD -MP -MF $(DEPDIR)/mapmstck.Tpo -c -o mapmstck.lo `test -f 'src/mapm/mapmstck.c' || echo '$(srcdir)/'`src/mapm/mapmstck.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmstck.Tpo $(DEPDIR)/mapmstck.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmstck.c' object='mapmstck.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmstck.lo `test -f 'src/mapm/mapmstck.c' || echo '$(srcdir)/'`src/mapm/mapmstck.c mapmutil.lo: src/mapm/mapmutil.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmutil.lo -MD -MP -MF $(DEPDIR)/mapmutil.Tpo -c -o mapmutil.lo `test -f 'src/mapm/mapmutil.c' || echo '$(srcdir)/'`src/mapm/mapmutil.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmutil.Tpo $(DEPDIR)/mapmutil.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmutil.c' object='mapmutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmutil.lo `test -f 'src/mapm/mapmutil.c' || echo '$(srcdir)/'`src/mapm/mapmutil.c mapmutl2.lo: src/mapm/mapmutl2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmutl2.lo -MD -MP -MF $(DEPDIR)/mapmutl2.Tpo -c -o mapmutl2.lo `test -f 'src/mapm/mapmutl2.c' || echo '$(srcdir)/'`src/mapm/mapmutl2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmutl2.Tpo $(DEPDIR)/mapmutl2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmutl2.c' object='mapmutl2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmutl2.lo `test -f 'src/mapm/mapmutl2.c' || echo '$(srcdir)/'`src/mapm/mapmutl2.c yajl_buf.lo: src/yajl/yajl_buf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_buf.lo -MD -MP -MF $(DEPDIR)/yajl_buf.Tpo -c -o yajl_buf.lo `test -f 'src/yajl/yajl_buf.c' || echo '$(srcdir)/'`src/yajl/yajl_buf.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_buf.Tpo $(DEPDIR)/yajl_buf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_buf.c' object='yajl_buf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_buf.lo `test -f 'src/yajl/yajl_buf.c' || echo '$(srcdir)/'`src/yajl/yajl_buf.c yajl.lo: src/yajl/yajl.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl.lo -MD -MP -MF $(DEPDIR)/yajl.Tpo -c -o yajl.lo `test -f 'src/yajl/yajl.c' || echo '$(srcdir)/'`src/yajl/yajl.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl.Tpo $(DEPDIR)/yajl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl.c' object='yajl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl.lo `test -f 'src/yajl/yajl.c' || echo '$(srcdir)/'`src/yajl/yajl.c yajl_encode.lo: src/yajl/yajl_encode.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_encode.lo -MD -MP -MF $(DEPDIR)/yajl_encode.Tpo -c -o yajl_encode.lo `test -f 'src/yajl/yajl_encode.c' || echo '$(srcdir)/'`src/yajl/yajl_encode.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_encode.Tpo $(DEPDIR)/yajl_encode.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_encode.c' object='yajl_encode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_encode.lo `test -f 'src/yajl/yajl_encode.c' || echo '$(srcdir)/'`src/yajl/yajl_encode.c yajl_gen.lo: src/yajl/yajl_gen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_gen.lo -MD -MP -MF $(DEPDIR)/yajl_gen.Tpo -c -o yajl_gen.lo `test -f 'src/yajl/yajl_gen.c' || echo '$(srcdir)/'`src/yajl/yajl_gen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_gen.Tpo $(DEPDIR)/yajl_gen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_gen.c' object='yajl_gen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_gen.lo `test -f 'src/yajl/yajl_gen.c' || echo '$(srcdir)/'`src/yajl/yajl_gen.c yajl_lex.lo: src/yajl/yajl_lex.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_lex.lo -MD -MP -MF $(DEPDIR)/yajl_lex.Tpo -c -o yajl_lex.lo `test -f 'src/yajl/yajl_lex.c' || echo '$(srcdir)/'`src/yajl/yajl_lex.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_lex.Tpo $(DEPDIR)/yajl_lex.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_lex.c' object='yajl_lex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_lex.lo `test -f 'src/yajl/yajl_lex.c' || echo '$(srcdir)/'`src/yajl/yajl_lex.c yajl_parser.lo: src/yajl/yajl_parser.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_parser.lo -MD -MP -MF $(DEPDIR)/yajl_parser.Tpo -c -o yajl_parser.lo `test -f 'src/yajl/yajl_parser.c' || echo '$(srcdir)/'`src/yajl/yajl_parser.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_parser.Tpo $(DEPDIR)/yajl_parser.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_parser.c' object='yajl_parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_parser.lo `test -f 'src/yajl/yajl_parser.c' || echo '$(srcdir)/'`src/yajl/yajl_parser.c xqc-basic.o: src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-basic.o -MD -MP -MF $(DEPDIR)/xqc-basic.Tpo -c -o xqc-basic.o `test -f 'src/samples/xqc-api/xqc-basic.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-basic.Tpo $(DEPDIR)/xqc-basic.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-basic.c' object='xqc-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-basic.o `test -f 'src/samples/xqc-api/xqc-basic.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-basic.c xqc-basic.obj: src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-basic.obj -MD -MP -MF $(DEPDIR)/xqc-basic.Tpo -c -o xqc-basic.obj `if test -f 'src/samples/xqc-api/xqc-basic.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-basic.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-basic.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-basic.Tpo $(DEPDIR)/xqc-basic.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-basic.c' object='xqc-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-basic.obj `if test -f 'src/samples/xqc-api/xqc-basic.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-basic.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-basic.c'; fi` xqc-context-item.o: src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-context-item.o -MD -MP -MF $(DEPDIR)/xqc-context-item.Tpo -c -o xqc-context-item.o `test -f 'src/samples/xqc-api/xqc-context-item.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-context-item.Tpo $(DEPDIR)/xqc-context-item.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-context-item.c' object='xqc-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-context-item.o `test -f 'src/samples/xqc-api/xqc-context-item.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-context-item.c xqc-context-item.obj: src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-context-item.obj -MD -MP -MF $(DEPDIR)/xqc-context-item.Tpo -c -o xqc-context-item.obj `if test -f 'src/samples/xqc-api/xqc-context-item.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-context-item.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-context-item.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-context-item.Tpo $(DEPDIR)/xqc-context-item.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-context-item.c' object='xqc-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-context-item.obj `if test -f 'src/samples/xqc-api/xqc-context-item.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-context-item.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-context-item.c'; fi` .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< ReferenceCounted.lo: src/framework/ReferenceCounted.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ReferenceCounted.lo -MD -MP -MF $(DEPDIR)/ReferenceCounted.Tpo -c -o ReferenceCounted.lo `test -f 'src/framework/ReferenceCounted.cpp' || echo '$(srcdir)/'`src/framework/ReferenceCounted.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ReferenceCounted.Tpo $(DEPDIR)/ReferenceCounted.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/ReferenceCounted.cpp' object='ReferenceCounted.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ReferenceCounted.lo `test -f 'src/framework/ReferenceCounted.cpp' || echo '$(srcdir)/'`src/framework/ReferenceCounted.cpp BaseMemoryManager.lo: src/framework/BaseMemoryManager.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseMemoryManager.lo -MD -MP -MF $(DEPDIR)/BaseMemoryManager.Tpo -c -o BaseMemoryManager.lo `test -f 'src/framework/BaseMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/BaseMemoryManager.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/BaseMemoryManager.Tpo $(DEPDIR)/BaseMemoryManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/BaseMemoryManager.cpp' object='BaseMemoryManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseMemoryManager.lo `test -f 'src/framework/BaseMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/BaseMemoryManager.cpp ProxyMemoryManager.lo: src/framework/ProxyMemoryManager.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ProxyMemoryManager.lo -MD -MP -MF $(DEPDIR)/ProxyMemoryManager.Tpo -c -o ProxyMemoryManager.lo `test -f 'src/framework/ProxyMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/ProxyMemoryManager.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ProxyMemoryManager.Tpo $(DEPDIR)/ProxyMemoryManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/ProxyMemoryManager.cpp' object='ProxyMemoryManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ProxyMemoryManager.lo `test -f 'src/framework/ProxyMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/ProxyMemoryManager.cpp StringPool.lo: src/framework/StringPool.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StringPool.lo -MD -MP -MF $(DEPDIR)/StringPool.Tpo -c -o StringPool.lo `test -f 'src/framework/StringPool.cpp' || echo '$(srcdir)/'`src/framework/StringPool.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StringPool.Tpo $(DEPDIR)/StringPool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/StringPool.cpp' object='StringPool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StringPool.lo `test -f 'src/framework/StringPool.cpp' || echo '$(srcdir)/'`src/framework/StringPool.cpp XPath2MemoryManagerImpl.lo: src/framework/XPath2MemoryManagerImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2MemoryManagerImpl.lo -MD -MP -MF $(DEPDIR)/XPath2MemoryManagerImpl.Tpo -c -o XPath2MemoryManagerImpl.lo `test -f 'src/framework/XPath2MemoryManagerImpl.cpp' || echo '$(srcdir)/'`src/framework/XPath2MemoryManagerImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2MemoryManagerImpl.Tpo $(DEPDIR)/XPath2MemoryManagerImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/XPath2MemoryManagerImpl.cpp' object='XPath2MemoryManagerImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2MemoryManagerImpl.lo `test -f 'src/framework/XPath2MemoryManagerImpl.cpp' || echo '$(srcdir)/'`src/framework/XPath2MemoryManagerImpl.cpp UpdateFactory.lo: src/context/UpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UpdateFactory.lo -MD -MP -MF $(DEPDIR)/UpdateFactory.Tpo -c -o UpdateFactory.lo `test -f 'src/context/UpdateFactory.cpp' || echo '$(srcdir)/'`src/context/UpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UpdateFactory.Tpo $(DEPDIR)/UpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/UpdateFactory.cpp' object='UpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UpdateFactory.lo `test -f 'src/context/UpdateFactory.cpp' || echo '$(srcdir)/'`src/context/UpdateFactory.cpp CollationImpl.lo: src/context/impl/CollationImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CollationImpl.lo -MD -MP -MF $(DEPDIR)/CollationImpl.Tpo -c -o CollationImpl.lo `test -f 'src/context/impl/CollationImpl.cpp' || echo '$(srcdir)/'`src/context/impl/CollationImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CollationImpl.Tpo $(DEPDIR)/CollationImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/CollationImpl.cpp' object='CollationImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CollationImpl.lo `test -f 'src/context/impl/CollationImpl.cpp' || echo '$(srcdir)/'`src/context/impl/CollationImpl.cpp CodepointCollation.lo: src/context/impl/CodepointCollation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CodepointCollation.lo -MD -MP -MF $(DEPDIR)/CodepointCollation.Tpo -c -o CodepointCollation.lo `test -f 'src/context/impl/CodepointCollation.cpp' || echo '$(srcdir)/'`src/context/impl/CodepointCollation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CodepointCollation.Tpo $(DEPDIR)/CodepointCollation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/CodepointCollation.cpp' object='CodepointCollation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CodepointCollation.lo `test -f 'src/context/impl/CodepointCollation.cpp' || echo '$(srcdir)/'`src/context/impl/CodepointCollation.cpp VarStoreImpl.lo: src/context/impl/VarStoreImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarStoreImpl.lo -MD -MP -MF $(DEPDIR)/VarStoreImpl.Tpo -c -o VarStoreImpl.lo `test -f 'src/context/impl/VarStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarStoreImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarStoreImpl.Tpo $(DEPDIR)/VarStoreImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarStoreImpl.cpp' object='VarStoreImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarStoreImpl.lo `test -f 'src/context/impl/VarStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarStoreImpl.cpp VarTypeStoreImpl.lo: src/context/impl/VarTypeStoreImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarTypeStoreImpl.lo -MD -MP -MF $(DEPDIR)/VarTypeStoreImpl.Tpo -c -o VarTypeStoreImpl.lo `test -f 'src/context/impl/VarTypeStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarTypeStoreImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarTypeStoreImpl.Tpo $(DEPDIR)/VarTypeStoreImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarTypeStoreImpl.cpp' object='VarTypeStoreImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarTypeStoreImpl.lo `test -f 'src/context/impl/VarTypeStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarTypeStoreImpl.cpp VarHashEntryImpl.lo: src/context/impl/VarHashEntryImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarHashEntryImpl.lo -MD -MP -MF $(DEPDIR)/VarHashEntryImpl.Tpo -c -o VarHashEntryImpl.lo `test -f 'src/context/impl/VarHashEntryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarHashEntryImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarHashEntryImpl.Tpo $(DEPDIR)/VarHashEntryImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarHashEntryImpl.cpp' object='VarHashEntryImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarHashEntryImpl.lo `test -f 'src/context/impl/VarHashEntryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarHashEntryImpl.cpp XQContextImpl.lo: src/context/impl/XQContextImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQContextImpl.lo -MD -MP -MF $(DEPDIR)/XQContextImpl.Tpo -c -o XQContextImpl.lo `test -f 'src/context/impl/XQContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQContextImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQContextImpl.Tpo $(DEPDIR)/XQContextImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/XQContextImpl.cpp' object='XQContextImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQContextImpl.lo `test -f 'src/context/impl/XQContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQContextImpl.cpp XQDynamicContextImpl.lo: src/context/impl/XQDynamicContextImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDynamicContextImpl.lo -MD -MP -MF $(DEPDIR)/XQDynamicContextImpl.Tpo -c -o XQDynamicContextImpl.lo `test -f 'src/context/impl/XQDynamicContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQDynamicContextImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDynamicContextImpl.Tpo $(DEPDIR)/XQDynamicContextImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/XQDynamicContextImpl.cpp' object='XQDynamicContextImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDynamicContextImpl.lo `test -f 'src/context/impl/XQDynamicContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQDynamicContextImpl.cpp ItemFactoryImpl.lo: src/context/impl/ItemFactoryImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ItemFactoryImpl.lo -MD -MP -MF $(DEPDIR)/ItemFactoryImpl.Tpo -c -o ItemFactoryImpl.lo `test -f 'src/context/impl/ItemFactoryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/ItemFactoryImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ItemFactoryImpl.Tpo $(DEPDIR)/ItemFactoryImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/ItemFactoryImpl.cpp' object='ItemFactoryImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ItemFactoryImpl.lo `test -f 'src/context/impl/ItemFactoryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/ItemFactoryImpl.cpp XQAtomize.lo: src/ast/XQAtomize.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAtomize.lo -MD -MP -MF $(DEPDIR)/XQAtomize.Tpo -c -o XQAtomize.lo `test -f 'src/ast/XQAtomize.cpp' || echo '$(srcdir)/'`src/ast/XQAtomize.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAtomize.Tpo $(DEPDIR)/XQAtomize.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAtomize.cpp' object='XQAtomize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAtomize.lo `test -f 'src/ast/XQAtomize.cpp' || echo '$(srcdir)/'`src/ast/XQAtomize.cpp XQEffectiveBooleanValue.lo: src/ast/XQEffectiveBooleanValue.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQEffectiveBooleanValue.lo -MD -MP -MF $(DEPDIR)/XQEffectiveBooleanValue.Tpo -c -o XQEffectiveBooleanValue.lo `test -f 'src/ast/XQEffectiveBooleanValue.cpp' || echo '$(srcdir)/'`src/ast/XQEffectiveBooleanValue.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQEffectiveBooleanValue.Tpo $(DEPDIR)/XQEffectiveBooleanValue.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQEffectiveBooleanValue.cpp' object='XQEffectiveBooleanValue.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQEffectiveBooleanValue.lo `test -f 'src/ast/XQEffectiveBooleanValue.cpp' || echo '$(srcdir)/'`src/ast/XQEffectiveBooleanValue.cpp XQMap.lo: src/ast/XQMap.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQMap.lo -MD -MP -MF $(DEPDIR)/XQMap.Tpo -c -o XQMap.lo `test -f 'src/ast/XQMap.cpp' || echo '$(srcdir)/'`src/ast/XQMap.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQMap.Tpo $(DEPDIR)/XQMap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQMap.cpp' object='XQMap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQMap.lo `test -f 'src/ast/XQMap.cpp' || echo '$(srcdir)/'`src/ast/XQMap.cpp XQAnalyzeString.lo: src/ast/XQAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAnalyzeString.lo -MD -MP -MF $(DEPDIR)/XQAnalyzeString.Tpo -c -o XQAnalyzeString.lo `test -f 'src/ast/XQAnalyzeString.cpp' || echo '$(srcdir)/'`src/ast/XQAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAnalyzeString.Tpo $(DEPDIR)/XQAnalyzeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAnalyzeString.cpp' object='XQAnalyzeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAnalyzeString.lo `test -f 'src/ast/XQAnalyzeString.cpp' || echo '$(srcdir)/'`src/ast/XQAnalyzeString.cpp XQCastableAs.lo: src/ast/XQCastableAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCastableAs.lo -MD -MP -MF $(DEPDIR)/XQCastableAs.Tpo -c -o XQCastableAs.lo `test -f 'src/ast/XQCastableAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastableAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCastableAs.Tpo $(DEPDIR)/XQCastableAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCastableAs.cpp' object='XQCastableAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCastableAs.lo `test -f 'src/ast/XQCastableAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastableAs.cpp XQCastAs.lo: src/ast/XQCastAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCastAs.lo -MD -MP -MF $(DEPDIR)/XQCastAs.Tpo -c -o XQCastAs.lo `test -f 'src/ast/XQCastAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCastAs.Tpo $(DEPDIR)/XQCastAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCastAs.cpp' object='XQCastAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCastAs.lo `test -f 'src/ast/XQCastAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastAs.cpp XQContextItem.lo: src/ast/XQContextItem.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQContextItem.lo -MD -MP -MF $(DEPDIR)/XQContextItem.Tpo -c -o XQContextItem.lo `test -f 'src/ast/XQContextItem.cpp' || echo '$(srcdir)/'`src/ast/XQContextItem.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQContextItem.Tpo $(DEPDIR)/XQContextItem.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQContextItem.cpp' object='XQContextItem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQContextItem.lo `test -f 'src/ast/XQContextItem.cpp' || echo '$(srcdir)/'`src/ast/XQContextItem.cpp XQCopy.lo: src/ast/XQCopy.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCopy.lo -MD -MP -MF $(DEPDIR)/XQCopy.Tpo -c -o XQCopy.lo `test -f 'src/ast/XQCopy.cpp' || echo '$(srcdir)/'`src/ast/XQCopy.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCopy.Tpo $(DEPDIR)/XQCopy.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCopy.cpp' object='XQCopy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCopy.lo `test -f 'src/ast/XQCopy.cpp' || echo '$(srcdir)/'`src/ast/XQCopy.cpp XQCopyOf.lo: src/ast/XQCopyOf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCopyOf.lo -MD -MP -MF $(DEPDIR)/XQCopyOf.Tpo -c -o XQCopyOf.lo `test -f 'src/ast/XQCopyOf.cpp' || echo '$(srcdir)/'`src/ast/XQCopyOf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCopyOf.Tpo $(DEPDIR)/XQCopyOf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCopyOf.cpp' object='XQCopyOf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCopyOf.lo `test -f 'src/ast/XQCopyOf.cpp' || echo '$(srcdir)/'`src/ast/XQCopyOf.cpp XQFunction.lo: src/ast/XQFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunction.lo -MD -MP -MF $(DEPDIR)/XQFunction.Tpo -c -o XQFunction.lo `test -f 'src/ast/XQFunction.cpp' || echo '$(srcdir)/'`src/ast/XQFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunction.Tpo $(DEPDIR)/XQFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunction.cpp' object='XQFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunction.lo `test -f 'src/ast/XQFunction.cpp' || echo '$(srcdir)/'`src/ast/XQFunction.cpp XQIf.lo: src/ast/XQIf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQIf.lo -MD -MP -MF $(DEPDIR)/XQIf.Tpo -c -o XQIf.lo `test -f 'src/ast/XQIf.cpp' || echo '$(srcdir)/'`src/ast/XQIf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQIf.Tpo $(DEPDIR)/XQIf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQIf.cpp' object='XQIf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQIf.lo `test -f 'src/ast/XQIf.cpp' || echo '$(srcdir)/'`src/ast/XQIf.cpp ASTNodeImpl.lo: src/ast/ASTNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTNodeImpl.lo -MD -MP -MF $(DEPDIR)/ASTNodeImpl.Tpo -c -o ASTNodeImpl.lo `test -f 'src/ast/ASTNodeImpl.cpp' || echo '$(srcdir)/'`src/ast/ASTNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTNodeImpl.Tpo $(DEPDIR)/ASTNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ASTNodeImpl.cpp' object='ASTNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTNodeImpl.lo `test -f 'src/ast/ASTNodeImpl.cpp' || echo '$(srcdir)/'`src/ast/ASTNodeImpl.cpp XQInlineFunction.lo: src/ast/XQInlineFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQInlineFunction.lo -MD -MP -MF $(DEPDIR)/XQInlineFunction.Tpo -c -o XQInlineFunction.lo `test -f 'src/ast/XQInlineFunction.cpp' || echo '$(srcdir)/'`src/ast/XQInlineFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQInlineFunction.Tpo $(DEPDIR)/XQInlineFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQInlineFunction.cpp' object='XQInlineFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQInlineFunction.lo `test -f 'src/ast/XQInlineFunction.cpp' || echo '$(srcdir)/'`src/ast/XQInlineFunction.cpp XQLiteral.lo: src/ast/XQLiteral.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLiteral.lo -MD -MP -MF $(DEPDIR)/XQLiteral.Tpo -c -o XQLiteral.lo `test -f 'src/ast/XQLiteral.cpp' || echo '$(srcdir)/'`src/ast/XQLiteral.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLiteral.Tpo $(DEPDIR)/XQLiteral.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQLiteral.cpp' object='XQLiteral.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLiteral.lo `test -f 'src/ast/XQLiteral.cpp' || echo '$(srcdir)/'`src/ast/XQLiteral.cpp XQNav.lo: src/ast/XQNav.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNav.lo -MD -MP -MF $(DEPDIR)/XQNav.Tpo -c -o XQNav.lo `test -f 'src/ast/XQNav.cpp' || echo '$(srcdir)/'`src/ast/XQNav.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNav.Tpo $(DEPDIR)/XQNav.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNav.cpp' object='XQNav.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNav.lo `test -f 'src/ast/XQNav.cpp' || echo '$(srcdir)/'`src/ast/XQNav.cpp XQOperator.lo: src/ast/XQOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQOperator.lo -MD -MP -MF $(DEPDIR)/XQOperator.Tpo -c -o XQOperator.lo `test -f 'src/ast/XQOperator.cpp' || echo '$(srcdir)/'`src/ast/XQOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQOperator.Tpo $(DEPDIR)/XQOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQOperator.cpp' object='XQOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQOperator.lo `test -f 'src/ast/XQOperator.cpp' || echo '$(srcdir)/'`src/ast/XQOperator.cpp XQSequence.lo: src/ast/XQSequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQSequence.lo -MD -MP -MF $(DEPDIR)/XQSequence.Tpo -c -o XQSequence.lo `test -f 'src/ast/XQSequence.cpp' || echo '$(srcdir)/'`src/ast/XQSequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQSequence.Tpo $(DEPDIR)/XQSequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQSequence.cpp' object='XQSequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQSequence.lo `test -f 'src/ast/XQSequence.cpp' || echo '$(srcdir)/'`src/ast/XQSequence.cpp XQStep.lo: src/ast/XQStep.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQStep.lo -MD -MP -MF $(DEPDIR)/XQStep.Tpo -c -o XQStep.lo `test -f 'src/ast/XQStep.cpp' || echo '$(srcdir)/'`src/ast/XQStep.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQStep.Tpo $(DEPDIR)/XQStep.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQStep.cpp' object='XQStep.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQStep.lo `test -f 'src/ast/XQStep.cpp' || echo '$(srcdir)/'`src/ast/XQStep.cpp XQTreatAs.lo: src/ast/XQTreatAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTreatAs.lo -MD -MP -MF $(DEPDIR)/XQTreatAs.Tpo -c -o XQTreatAs.lo `test -f 'src/ast/XQTreatAs.cpp' || echo '$(srcdir)/'`src/ast/XQTreatAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTreatAs.Tpo $(DEPDIR)/XQTreatAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTreatAs.cpp' object='XQTreatAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTreatAs.lo `test -f 'src/ast/XQTreatAs.cpp' || echo '$(srcdir)/'`src/ast/XQTreatAs.cpp XQFunctionCoercion.lo: src/ast/XQFunctionCoercion.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionCoercion.lo -MD -MP -MF $(DEPDIR)/XQFunctionCoercion.Tpo -c -o XQFunctionCoercion.lo `test -f 'src/ast/XQFunctionCoercion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCoercion.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionCoercion.Tpo $(DEPDIR)/XQFunctionCoercion.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionCoercion.cpp' object='XQFunctionCoercion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionCoercion.lo `test -f 'src/ast/XQFunctionCoercion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCoercion.cpp XQVariable.lo: src/ast/XQVariable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQVariable.lo -MD -MP -MF $(DEPDIR)/XQVariable.Tpo -c -o XQVariable.lo `test -f 'src/ast/XQVariable.cpp' || echo '$(srcdir)/'`src/ast/XQVariable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQVariable.Tpo $(DEPDIR)/XQVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQVariable.cpp' object='XQVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQVariable.lo `test -f 'src/ast/XQVariable.cpp' || echo '$(srcdir)/'`src/ast/XQVariable.cpp StaticAnalysis.lo: src/ast/StaticAnalysis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticAnalysis.lo -MD -MP -MF $(DEPDIR)/StaticAnalysis.Tpo -c -o StaticAnalysis.lo `test -f 'src/ast/StaticAnalysis.cpp' || echo '$(srcdir)/'`src/ast/StaticAnalysis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticAnalysis.Tpo $(DEPDIR)/StaticAnalysis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/StaticAnalysis.cpp' object='StaticAnalysis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticAnalysis.lo `test -f 'src/ast/StaticAnalysis.cpp' || echo '$(srcdir)/'`src/ast/StaticAnalysis.cpp StaticType.lo: src/ast/StaticType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticType.lo -MD -MP -MF $(DEPDIR)/StaticType.Tpo -c -o StaticType.lo `test -f 'src/ast/StaticType.cpp' || echo '$(srcdir)/'`src/ast/StaticType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticType.Tpo $(DEPDIR)/StaticType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/StaticType.cpp' object='StaticType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticType.lo `test -f 'src/ast/StaticType.cpp' || echo '$(srcdir)/'`src/ast/StaticType.cpp NumericFunction.lo: src/ast/NumericFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NumericFunction.lo -MD -MP -MF $(DEPDIR)/NumericFunction.Tpo -c -o NumericFunction.lo `test -f 'src/ast/NumericFunction.cpp' || echo '$(srcdir)/'`src/ast/NumericFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NumericFunction.Tpo $(DEPDIR)/NumericFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/NumericFunction.cpp' object='NumericFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NumericFunction.lo `test -f 'src/ast/NumericFunction.cpp' || echo '$(srcdir)/'`src/ast/NumericFunction.cpp XQDOMConstructor.lo: src/ast/XQDOMConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDOMConstructor.lo -MD -MP -MF $(DEPDIR)/XQDOMConstructor.Tpo -c -o XQDOMConstructor.lo `test -f 'src/ast/XQDOMConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDOMConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDOMConstructor.Tpo $(DEPDIR)/XQDOMConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDOMConstructor.cpp' object='XQDOMConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDOMConstructor.lo `test -f 'src/ast/XQDOMConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDOMConstructor.cpp XQDocumentConstructor.lo: src/ast/XQDocumentConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDocumentConstructor.lo -MD -MP -MF $(DEPDIR)/XQDocumentConstructor.Tpo -c -o XQDocumentConstructor.lo `test -f 'src/ast/XQDocumentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDocumentConstructor.Tpo $(DEPDIR)/XQDocumentConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDocumentConstructor.cpp' object='XQDocumentConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDocumentConstructor.lo `test -f 'src/ast/XQDocumentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentConstructor.cpp XQElementConstructor.lo: src/ast/XQElementConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQElementConstructor.lo -MD -MP -MF $(DEPDIR)/XQElementConstructor.Tpo -c -o XQElementConstructor.lo `test -f 'src/ast/XQElementConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQElementConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQElementConstructor.Tpo $(DEPDIR)/XQElementConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQElementConstructor.cpp' object='XQElementConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQElementConstructor.lo `test -f 'src/ast/XQElementConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQElementConstructor.cpp XQAttributeConstructor.lo: src/ast/XQAttributeConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAttributeConstructor.lo -MD -MP -MF $(DEPDIR)/XQAttributeConstructor.Tpo -c -o XQAttributeConstructor.lo `test -f 'src/ast/XQAttributeConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQAttributeConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAttributeConstructor.Tpo $(DEPDIR)/XQAttributeConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAttributeConstructor.cpp' object='XQAttributeConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAttributeConstructor.lo `test -f 'src/ast/XQAttributeConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQAttributeConstructor.cpp XQNamespaceConstructor.lo: src/ast/XQNamespaceConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNamespaceConstructor.lo -MD -MP -MF $(DEPDIR)/XQNamespaceConstructor.Tpo -c -o XQNamespaceConstructor.lo `test -f 'src/ast/XQNamespaceConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNamespaceConstructor.Tpo $(DEPDIR)/XQNamespaceConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNamespaceConstructor.cpp' object='XQNamespaceConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNamespaceConstructor.lo `test -f 'src/ast/XQNamespaceConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceConstructor.cpp XQPIConstructor.lo: src/ast/XQPIConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPIConstructor.lo -MD -MP -MF $(DEPDIR)/XQPIConstructor.Tpo -c -o XQPIConstructor.lo `test -f 'src/ast/XQPIConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQPIConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPIConstructor.Tpo $(DEPDIR)/XQPIConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPIConstructor.cpp' object='XQPIConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPIConstructor.lo `test -f 'src/ast/XQPIConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQPIConstructor.cpp XQCommentConstructor.lo: src/ast/XQCommentConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCommentConstructor.lo -MD -MP -MF $(DEPDIR)/XQCommentConstructor.Tpo -c -o XQCommentConstructor.lo `test -f 'src/ast/XQCommentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQCommentConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCommentConstructor.Tpo $(DEPDIR)/XQCommentConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCommentConstructor.cpp' object='XQCommentConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCommentConstructor.lo `test -f 'src/ast/XQCommentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQCommentConstructor.cpp XQTextConstructor.lo: src/ast/XQTextConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTextConstructor.lo -MD -MP -MF $(DEPDIR)/XQTextConstructor.Tpo -c -o XQTextConstructor.lo `test -f 'src/ast/XQTextConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQTextConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTextConstructor.Tpo $(DEPDIR)/XQTextConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTextConstructor.cpp' object='XQTextConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTextConstructor.lo `test -f 'src/ast/XQTextConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQTextConstructor.cpp XQFunctionCall.lo: src/ast/XQFunctionCall.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionCall.lo -MD -MP -MF $(DEPDIR)/XQFunctionCall.Tpo -c -o XQFunctionCall.lo `test -f 'src/ast/XQFunctionCall.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCall.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionCall.Tpo $(DEPDIR)/XQFunctionCall.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionCall.cpp' object='XQFunctionCall.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionCall.lo `test -f 'src/ast/XQFunctionCall.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCall.cpp XQFunctionConversion.lo: src/ast/XQFunctionConversion.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionConversion.lo -MD -MP -MF $(DEPDIR)/XQFunctionConversion.Tpo -c -o XQFunctionConversion.lo `test -f 'src/ast/XQFunctionConversion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionConversion.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionConversion.Tpo $(DEPDIR)/XQFunctionConversion.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionConversion.cpp' object='XQFunctionConversion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionConversion.lo `test -f 'src/ast/XQFunctionConversion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionConversion.cpp XQFunctionDeref.lo: src/ast/XQFunctionDeref.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionDeref.lo -MD -MP -MF $(DEPDIR)/XQFunctionDeref.Tpo -c -o XQFunctionDeref.lo `test -f 'src/ast/XQFunctionDeref.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionDeref.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionDeref.Tpo $(DEPDIR)/XQFunctionDeref.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionDeref.cpp' object='XQFunctionDeref.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionDeref.lo `test -f 'src/ast/XQFunctionDeref.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionDeref.cpp XQPartialApply.lo: src/ast/XQPartialApply.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPartialApply.lo -MD -MP -MF $(DEPDIR)/XQPartialApply.Tpo -c -o XQPartialApply.lo `test -f 'src/ast/XQPartialApply.cpp' || echo '$(srcdir)/'`src/ast/XQPartialApply.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPartialApply.Tpo $(DEPDIR)/XQPartialApply.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPartialApply.cpp' object='XQPartialApply.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPartialApply.lo `test -f 'src/ast/XQPartialApply.cpp' || echo '$(srcdir)/'`src/ast/XQPartialApply.cpp XQFunctionRef.lo: src/ast/XQFunctionRef.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionRef.lo -MD -MP -MF $(DEPDIR)/XQFunctionRef.Tpo -c -o XQFunctionRef.lo `test -f 'src/ast/XQFunctionRef.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionRef.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionRef.Tpo $(DEPDIR)/XQFunctionRef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionRef.cpp' object='XQFunctionRef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionRef.lo `test -f 'src/ast/XQFunctionRef.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionRef.cpp XQGlobalVariable.lo: src/ast/XQGlobalVariable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQGlobalVariable.lo -MD -MP -MF $(DEPDIR)/XQGlobalVariable.Tpo -c -o XQGlobalVariable.lo `test -f 'src/ast/XQGlobalVariable.cpp' || echo '$(srcdir)/'`src/ast/XQGlobalVariable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQGlobalVariable.Tpo $(DEPDIR)/XQGlobalVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQGlobalVariable.cpp' object='XQGlobalVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQGlobalVariable.lo `test -f 'src/ast/XQGlobalVariable.cpp' || echo '$(srcdir)/'`src/ast/XQGlobalVariable.cpp XQOrderingChange.lo: src/ast/XQOrderingChange.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQOrderingChange.lo -MD -MP -MF $(DEPDIR)/XQOrderingChange.Tpo -c -o XQOrderingChange.lo `test -f 'src/ast/XQOrderingChange.cpp' || echo '$(srcdir)/'`src/ast/XQOrderingChange.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQOrderingChange.Tpo $(DEPDIR)/XQOrderingChange.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQOrderingChange.cpp' object='XQOrderingChange.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQOrderingChange.lo `test -f 'src/ast/XQOrderingChange.cpp' || echo '$(srcdir)/'`src/ast/XQOrderingChange.cpp XQQuantified.lo: src/ast/XQQuantified.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQQuantified.lo -MD -MP -MF $(DEPDIR)/XQQuantified.Tpo -c -o XQQuantified.lo `test -f 'src/ast/XQQuantified.cpp' || echo '$(srcdir)/'`src/ast/XQQuantified.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQQuantified.Tpo $(DEPDIR)/XQQuantified.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQQuantified.cpp' object='XQQuantified.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQQuantified.lo `test -f 'src/ast/XQQuantified.cpp' || echo '$(srcdir)/'`src/ast/XQQuantified.cpp XQValidate.lo: src/ast/XQValidate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQValidate.lo -MD -MP -MF $(DEPDIR)/XQValidate.Tpo -c -o XQValidate.lo `test -f 'src/ast/XQValidate.cpp' || echo '$(srcdir)/'`src/ast/XQValidate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQValidate.Tpo $(DEPDIR)/XQValidate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQValidate.cpp' object='XQValidate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQValidate.lo `test -f 'src/ast/XQValidate.cpp' || echo '$(srcdir)/'`src/ast/XQValidate.cpp XQTypeswitch.lo: src/ast/XQTypeswitch.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTypeswitch.lo -MD -MP -MF $(DEPDIR)/XQTypeswitch.Tpo -c -o XQTypeswitch.lo `test -f 'src/ast/XQTypeswitch.cpp' || echo '$(srcdir)/'`src/ast/XQTypeswitch.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTypeswitch.Tpo $(DEPDIR)/XQTypeswitch.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTypeswitch.cpp' object='XQTypeswitch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTypeswitch.lo `test -f 'src/ast/XQTypeswitch.cpp' || echo '$(srcdir)/'`src/ast/XQTypeswitch.cpp ConvertFunctionArg.lo: src/ast/ConvertFunctionArg.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConvertFunctionArg.lo -MD -MP -MF $(DEPDIR)/ConvertFunctionArg.Tpo -c -o ConvertFunctionArg.lo `test -f 'src/ast/ConvertFunctionArg.cpp' || echo '$(srcdir)/'`src/ast/ConvertFunctionArg.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ConvertFunctionArg.Tpo $(DEPDIR)/ConvertFunctionArg.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ConvertFunctionArg.cpp' object='ConvertFunctionArg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConvertFunctionArg.lo `test -f 'src/ast/ConvertFunctionArg.cpp' || echo '$(srcdir)/'`src/ast/ConvertFunctionArg.cpp XQDocumentOrder.lo: src/ast/XQDocumentOrder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDocumentOrder.lo -MD -MP -MF $(DEPDIR)/XQDocumentOrder.Tpo -c -o XQDocumentOrder.lo `test -f 'src/ast/XQDocumentOrder.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentOrder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDocumentOrder.Tpo $(DEPDIR)/XQDocumentOrder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDocumentOrder.cpp' object='XQDocumentOrder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDocumentOrder.lo `test -f 'src/ast/XQDocumentOrder.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentOrder.cpp XQPredicate.lo: src/ast/XQPredicate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPredicate.lo -MD -MP -MF $(DEPDIR)/XQPredicate.Tpo -c -o XQPredicate.lo `test -f 'src/ast/XQPredicate.cpp' || echo '$(srcdir)/'`src/ast/XQPredicate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPredicate.Tpo $(DEPDIR)/XQPredicate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPredicate.cpp' object='XQPredicate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPredicate.lo `test -f 'src/ast/XQPredicate.cpp' || echo '$(srcdir)/'`src/ast/XQPredicate.cpp XQReturn.lo: src/ast/XQReturn.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQReturn.lo -MD -MP -MF $(DEPDIR)/XQReturn.Tpo -c -o XQReturn.lo `test -f 'src/ast/XQReturn.cpp' || echo '$(srcdir)/'`src/ast/XQReturn.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQReturn.Tpo $(DEPDIR)/XQReturn.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQReturn.cpp' object='XQReturn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQReturn.lo `test -f 'src/ast/XQReturn.cpp' || echo '$(srcdir)/'`src/ast/XQReturn.cpp TupleNode.lo: src/ast/TupleNode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TupleNode.lo -MD -MP -MF $(DEPDIR)/TupleNode.Tpo -c -o TupleNode.lo `test -f 'src/ast/TupleNode.cpp' || echo '$(srcdir)/'`src/ast/TupleNode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TupleNode.Tpo $(DEPDIR)/TupleNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/TupleNode.cpp' object='TupleNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TupleNode.lo `test -f 'src/ast/TupleNode.cpp' || echo '$(srcdir)/'`src/ast/TupleNode.cpp ContextTuple.lo: src/ast/ContextTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContextTuple.lo -MD -MP -MF $(DEPDIR)/ContextTuple.Tpo -c -o ContextTuple.lo `test -f 'src/ast/ContextTuple.cpp' || echo '$(srcdir)/'`src/ast/ContextTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContextTuple.Tpo $(DEPDIR)/ContextTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ContextTuple.cpp' object='ContextTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContextTuple.lo `test -f 'src/ast/ContextTuple.cpp' || echo '$(srcdir)/'`src/ast/ContextTuple.cpp ForTuple.lo: src/ast/ForTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ForTuple.lo -MD -MP -MF $(DEPDIR)/ForTuple.Tpo -c -o ForTuple.lo `test -f 'src/ast/ForTuple.cpp' || echo '$(srcdir)/'`src/ast/ForTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ForTuple.Tpo $(DEPDIR)/ForTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ForTuple.cpp' object='ForTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ForTuple.lo `test -f 'src/ast/ForTuple.cpp' || echo '$(srcdir)/'`src/ast/ForTuple.cpp LetTuple.lo: src/ast/LetTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LetTuple.lo -MD -MP -MF $(DEPDIR)/LetTuple.Tpo -c -o LetTuple.lo `test -f 'src/ast/LetTuple.cpp' || echo '$(srcdir)/'`src/ast/LetTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LetTuple.Tpo $(DEPDIR)/LetTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/LetTuple.cpp' object='LetTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LetTuple.lo `test -f 'src/ast/LetTuple.cpp' || echo '$(srcdir)/'`src/ast/LetTuple.cpp WhereTuple.lo: src/ast/WhereTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WhereTuple.lo -MD -MP -MF $(DEPDIR)/WhereTuple.Tpo -c -o WhereTuple.lo `test -f 'src/ast/WhereTuple.cpp' || echo '$(srcdir)/'`src/ast/WhereTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/WhereTuple.Tpo $(DEPDIR)/WhereTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/WhereTuple.cpp' object='WhereTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WhereTuple.lo `test -f 'src/ast/WhereTuple.cpp' || echo '$(srcdir)/'`src/ast/WhereTuple.cpp CountTuple.lo: src/ast/CountTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CountTuple.lo -MD -MP -MF $(DEPDIR)/CountTuple.Tpo -c -o CountTuple.lo `test -f 'src/ast/CountTuple.cpp' || echo '$(srcdir)/'`src/ast/CountTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CountTuple.Tpo $(DEPDIR)/CountTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/CountTuple.cpp' object='CountTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CountTuple.lo `test -f 'src/ast/CountTuple.cpp' || echo '$(srcdir)/'`src/ast/CountTuple.cpp OrderByTuple.lo: src/ast/OrderByTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OrderByTuple.lo -MD -MP -MF $(DEPDIR)/OrderByTuple.Tpo -c -o OrderByTuple.lo `test -f 'src/ast/OrderByTuple.cpp' || echo '$(srcdir)/'`src/ast/OrderByTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/OrderByTuple.Tpo $(DEPDIR)/OrderByTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/OrderByTuple.cpp' object='OrderByTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OrderByTuple.lo `test -f 'src/ast/OrderByTuple.cpp' || echo '$(srcdir)/'`src/ast/OrderByTuple.cpp XQNamespaceBinding.lo: src/ast/XQNamespaceBinding.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNamespaceBinding.lo -MD -MP -MF $(DEPDIR)/XQNamespaceBinding.Tpo -c -o XQNamespaceBinding.lo `test -f 'src/ast/XQNamespaceBinding.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceBinding.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNamespaceBinding.Tpo $(DEPDIR)/XQNamespaceBinding.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNamespaceBinding.cpp' object='XQNamespaceBinding.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNamespaceBinding.lo `test -f 'src/ast/XQNamespaceBinding.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceBinding.cpp XQCallTemplate.lo: src/ast/XQCallTemplate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCallTemplate.lo -MD -MP -MF $(DEPDIR)/XQCallTemplate.Tpo -c -o XQCallTemplate.lo `test -f 'src/ast/XQCallTemplate.cpp' || echo '$(srcdir)/'`src/ast/XQCallTemplate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCallTemplate.Tpo $(DEPDIR)/XQCallTemplate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCallTemplate.cpp' object='XQCallTemplate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCallTemplate.lo `test -f 'src/ast/XQCallTemplate.cpp' || echo '$(srcdir)/'`src/ast/XQCallTemplate.cpp XQApplyTemplates.lo: src/ast/XQApplyTemplates.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQApplyTemplates.lo -MD -MP -MF $(DEPDIR)/XQApplyTemplates.Tpo -c -o XQApplyTemplates.lo `test -f 'src/ast/XQApplyTemplates.cpp' || echo '$(srcdir)/'`src/ast/XQApplyTemplates.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQApplyTemplates.Tpo $(DEPDIR)/XQApplyTemplates.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQApplyTemplates.cpp' object='XQApplyTemplates.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQApplyTemplates.lo `test -f 'src/ast/XQApplyTemplates.cpp' || echo '$(srcdir)/'`src/ast/XQApplyTemplates.cpp ASTDebugHook.lo: src/debug/ASTDebugHook.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTDebugHook.lo -MD -MP -MF $(DEPDIR)/ASTDebugHook.Tpo -c -o ASTDebugHook.lo `test -f 'src/debug/ASTDebugHook.cpp' || echo '$(srcdir)/'`src/debug/ASTDebugHook.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTDebugHook.Tpo $(DEPDIR)/ASTDebugHook.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/ASTDebugHook.cpp' object='ASTDebugHook.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTDebugHook.lo `test -f 'src/debug/ASTDebugHook.cpp' || echo '$(srcdir)/'`src/debug/ASTDebugHook.cpp DebugHookDecorator.lo: src/debug/DebugHookDecorator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DebugHookDecorator.lo -MD -MP -MF $(DEPDIR)/DebugHookDecorator.Tpo -c -o DebugHookDecorator.lo `test -f 'src/debug/DebugHookDecorator.cpp' || echo '$(srcdir)/'`src/debug/DebugHookDecorator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DebugHookDecorator.Tpo $(DEPDIR)/DebugHookDecorator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/DebugHookDecorator.cpp' object='DebugHookDecorator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DebugHookDecorator.lo `test -f 'src/debug/DebugHookDecorator.cpp' || echo '$(srcdir)/'`src/debug/DebugHookDecorator.cpp TupleDebugHook.lo: src/debug/TupleDebugHook.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TupleDebugHook.lo -MD -MP -MF $(DEPDIR)/TupleDebugHook.Tpo -c -o TupleDebugHook.lo `test -f 'src/debug/TupleDebugHook.cpp' || echo '$(srcdir)/'`src/debug/TupleDebugHook.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TupleDebugHook.Tpo $(DEPDIR)/TupleDebugHook.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/TupleDebugHook.cpp' object='TupleDebugHook.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TupleDebugHook.lo `test -f 'src/debug/TupleDebugHook.cpp' || echo '$(srcdir)/'`src/debug/TupleDebugHook.cpp InputParser.lo: src/debug/InputParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputParser.lo -MD -MP -MF $(DEPDIR)/InputParser.Tpo -c -o InputParser.lo `test -f 'src/debug/InputParser.cpp' || echo '$(srcdir)/'`src/debug/InputParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InputParser.Tpo $(DEPDIR)/InputParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/InputParser.cpp' object='InputParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputParser.lo `test -f 'src/debug/InputParser.cpp' || echo '$(srcdir)/'`src/debug/InputParser.cpp InteractiveDebugger.lo: src/debug/InteractiveDebugger.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InteractiveDebugger.lo -MD -MP -MF $(DEPDIR)/InteractiveDebugger.Tpo -c -o InteractiveDebugger.lo `test -f 'src/debug/InteractiveDebugger.cpp' || echo '$(srcdir)/'`src/debug/InteractiveDebugger.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InteractiveDebugger.Tpo $(DEPDIR)/InteractiveDebugger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/InteractiveDebugger.cpp' object='InteractiveDebugger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InteractiveDebugger.lo `test -f 'src/debug/InteractiveDebugger.cpp' || echo '$(srcdir)/'`src/debug/InteractiveDebugger.cpp StackFrame.lo: src/debug/StackFrame.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StackFrame.lo -MD -MP -MF $(DEPDIR)/StackFrame.Tpo -c -o StackFrame.lo `test -f 'src/debug/StackFrame.cpp' || echo '$(srcdir)/'`src/debug/StackFrame.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StackFrame.Tpo $(DEPDIR)/StackFrame.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/StackFrame.cpp' object='StackFrame.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StackFrame.lo `test -f 'src/debug/StackFrame.cpp' || echo '$(srcdir)/'`src/debug/StackFrame.cpp ContentSequenceFilter.lo: src/events/ContentSequenceFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContentSequenceFilter.lo -MD -MP -MF $(DEPDIR)/ContentSequenceFilter.Tpo -c -o ContentSequenceFilter.lo `test -f 'src/events/ContentSequenceFilter.cpp' || echo '$(srcdir)/'`src/events/ContentSequenceFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContentSequenceFilter.Tpo $(DEPDIR)/ContentSequenceFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/ContentSequenceFilter.cpp' object='ContentSequenceFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContentSequenceFilter.lo `test -f 'src/events/ContentSequenceFilter.cpp' || echo '$(srcdir)/'`src/events/ContentSequenceFilter.cpp EventGenerator.lo: src/events/EventGenerator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventGenerator.lo -MD -MP -MF $(DEPDIR)/EventGenerator.Tpo -c -o EventGenerator.lo `test -f 'src/events/EventGenerator.cpp' || echo '$(srcdir)/'`src/events/EventGenerator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventGenerator.Tpo $(DEPDIR)/EventGenerator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/EventGenerator.cpp' object='EventGenerator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventGenerator.lo `test -f 'src/events/EventGenerator.cpp' || echo '$(srcdir)/'`src/events/EventGenerator.cpp EventSerializer.lo: src/events/EventSerializer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventSerializer.lo -MD -MP -MF $(DEPDIR)/EventSerializer.Tpo -c -o EventSerializer.lo `test -f 'src/events/EventSerializer.cpp' || echo '$(srcdir)/'`src/events/EventSerializer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventSerializer.Tpo $(DEPDIR)/EventSerializer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/EventSerializer.cpp' object='EventSerializer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventSerializer.lo `test -f 'src/events/EventSerializer.cpp' || echo '$(srcdir)/'`src/events/EventSerializer.cpp NoInheritFilter.lo: src/events/NoInheritFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NoInheritFilter.lo -MD -MP -MF $(DEPDIR)/NoInheritFilter.Tpo -c -o NoInheritFilter.lo `test -f 'src/events/NoInheritFilter.cpp' || echo '$(srcdir)/'`src/events/NoInheritFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NoInheritFilter.Tpo $(DEPDIR)/NoInheritFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/NoInheritFilter.cpp' object='NoInheritFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NoInheritFilter.lo `test -f 'src/events/NoInheritFilter.cpp' || echo '$(srcdir)/'`src/events/NoInheritFilter.cpp NSFixupFilter.lo: src/events/NSFixupFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NSFixupFilter.lo -MD -MP -MF $(DEPDIR)/NSFixupFilter.Tpo -c -o NSFixupFilter.lo `test -f 'src/events/NSFixupFilter.cpp' || echo '$(srcdir)/'`src/events/NSFixupFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NSFixupFilter.Tpo $(DEPDIR)/NSFixupFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/NSFixupFilter.cpp' object='NSFixupFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NSFixupFilter.lo `test -f 'src/events/NSFixupFilter.cpp' || echo '$(srcdir)/'`src/events/NSFixupFilter.cpp QueryPathTreeFilter.lo: src/events/QueryPathTreeFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathTreeFilter.lo -MD -MP -MF $(DEPDIR)/QueryPathTreeFilter.Tpo -c -o QueryPathTreeFilter.lo `test -f 'src/events/QueryPathTreeFilter.cpp' || echo '$(srcdir)/'`src/events/QueryPathTreeFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathTreeFilter.Tpo $(DEPDIR)/QueryPathTreeFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/QueryPathTreeFilter.cpp' object='QueryPathTreeFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathTreeFilter.lo `test -f 'src/events/QueryPathTreeFilter.cpp' || echo '$(srcdir)/'`src/events/QueryPathTreeFilter.cpp FTContains.lo: src/fulltext/FTContains.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTContains.lo -MD -MP -MF $(DEPDIR)/FTContains.Tpo -c -o FTContains.lo `test -f 'src/fulltext/FTContains.cpp' || echo '$(srcdir)/'`src/fulltext/FTContains.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTContains.Tpo $(DEPDIR)/FTContains.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTContains.cpp' object='FTContains.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTContains.lo `test -f 'src/fulltext/FTContains.cpp' || echo '$(srcdir)/'`src/fulltext/FTContains.cpp FTWords.lo: src/fulltext/FTWords.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTWords.lo -MD -MP -MF $(DEPDIR)/FTWords.Tpo -c -o FTWords.lo `test -f 'src/fulltext/FTWords.cpp' || echo '$(srcdir)/'`src/fulltext/FTWords.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTWords.Tpo $(DEPDIR)/FTWords.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTWords.cpp' object='FTWords.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTWords.lo `test -f 'src/fulltext/FTWords.cpp' || echo '$(srcdir)/'`src/fulltext/FTWords.cpp FTOr.lo: src/fulltext/FTOr.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTOr.lo -MD -MP -MF $(DEPDIR)/FTOr.Tpo -c -o FTOr.lo `test -f 'src/fulltext/FTOr.cpp' || echo '$(srcdir)/'`src/fulltext/FTOr.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTOr.Tpo $(DEPDIR)/FTOr.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTOr.cpp' object='FTOr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTOr.lo `test -f 'src/fulltext/FTOr.cpp' || echo '$(srcdir)/'`src/fulltext/FTOr.cpp FTAnd.lo: src/fulltext/FTAnd.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTAnd.lo -MD -MP -MF $(DEPDIR)/FTAnd.Tpo -c -o FTAnd.lo `test -f 'src/fulltext/FTAnd.cpp' || echo '$(srcdir)/'`src/fulltext/FTAnd.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTAnd.Tpo $(DEPDIR)/FTAnd.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTAnd.cpp' object='FTAnd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTAnd.lo `test -f 'src/fulltext/FTAnd.cpp' || echo '$(srcdir)/'`src/fulltext/FTAnd.cpp FTMildnot.lo: src/fulltext/FTMildnot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTMildnot.lo -MD -MP -MF $(DEPDIR)/FTMildnot.Tpo -c -o FTMildnot.lo `test -f 'src/fulltext/FTMildnot.cpp' || echo '$(srcdir)/'`src/fulltext/FTMildnot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTMildnot.Tpo $(DEPDIR)/FTMildnot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTMildnot.cpp' object='FTMildnot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTMildnot.lo `test -f 'src/fulltext/FTMildnot.cpp' || echo '$(srcdir)/'`src/fulltext/FTMildnot.cpp FTUnaryNot.lo: src/fulltext/FTUnaryNot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTUnaryNot.lo -MD -MP -MF $(DEPDIR)/FTUnaryNot.Tpo -c -o FTUnaryNot.lo `test -f 'src/fulltext/FTUnaryNot.cpp' || echo '$(srcdir)/'`src/fulltext/FTUnaryNot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTUnaryNot.Tpo $(DEPDIR)/FTUnaryNot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTUnaryNot.cpp' object='FTUnaryNot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTUnaryNot.lo `test -f 'src/fulltext/FTUnaryNot.cpp' || echo '$(srcdir)/'`src/fulltext/FTUnaryNot.cpp DefaultTokenizer.lo: src/fulltext/DefaultTokenizer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefaultTokenizer.lo -MD -MP -MF $(DEPDIR)/DefaultTokenizer.Tpo -c -o DefaultTokenizer.lo `test -f 'src/fulltext/DefaultTokenizer.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenizer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DefaultTokenizer.Tpo $(DEPDIR)/DefaultTokenizer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/DefaultTokenizer.cpp' object='DefaultTokenizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefaultTokenizer.lo `test -f 'src/fulltext/DefaultTokenizer.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenizer.cpp DefaultTokenStore.lo: src/fulltext/DefaultTokenStore.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefaultTokenStore.lo -MD -MP -MF $(DEPDIR)/DefaultTokenStore.Tpo -c -o DefaultTokenStore.lo `test -f 'src/fulltext/DefaultTokenStore.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenStore.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DefaultTokenStore.Tpo $(DEPDIR)/DefaultTokenStore.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/DefaultTokenStore.cpp' object='DefaultTokenStore.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefaultTokenStore.lo `test -f 'src/fulltext/DefaultTokenStore.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenStore.cpp FTOrder.lo: src/fulltext/FTOrder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTOrder.lo -MD -MP -MF $(DEPDIR)/FTOrder.Tpo -c -o FTOrder.lo `test -f 'src/fulltext/FTOrder.cpp' || echo '$(srcdir)/'`src/fulltext/FTOrder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTOrder.Tpo $(DEPDIR)/FTOrder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTOrder.cpp' object='FTOrder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTOrder.lo `test -f 'src/fulltext/FTOrder.cpp' || echo '$(srcdir)/'`src/fulltext/FTOrder.cpp FTDistance.lo: src/fulltext/FTDistance.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTDistance.lo -MD -MP -MF $(DEPDIR)/FTDistance.Tpo -c -o FTDistance.lo `test -f 'src/fulltext/FTDistance.cpp' || echo '$(srcdir)/'`src/fulltext/FTDistance.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTDistance.Tpo $(DEPDIR)/FTDistance.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTDistance.cpp' object='FTDistance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTDistance.lo `test -f 'src/fulltext/FTDistance.cpp' || echo '$(srcdir)/'`src/fulltext/FTDistance.cpp FTScope.lo: src/fulltext/FTScope.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTScope.lo -MD -MP -MF $(DEPDIR)/FTScope.Tpo -c -o FTScope.lo `test -f 'src/fulltext/FTScope.cpp' || echo '$(srcdir)/'`src/fulltext/FTScope.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTScope.Tpo $(DEPDIR)/FTScope.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTScope.cpp' object='FTScope.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTScope.lo `test -f 'src/fulltext/FTScope.cpp' || echo '$(srcdir)/'`src/fulltext/FTScope.cpp FTContent.lo: src/fulltext/FTContent.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTContent.lo -MD -MP -MF $(DEPDIR)/FTContent.Tpo -c -o FTContent.lo `test -f 'src/fulltext/FTContent.cpp' || echo '$(srcdir)/'`src/fulltext/FTContent.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTContent.Tpo $(DEPDIR)/FTContent.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTContent.cpp' object='FTContent.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTContent.lo `test -f 'src/fulltext/FTContent.cpp' || echo '$(srcdir)/'`src/fulltext/FTContent.cpp FTWindow.lo: src/fulltext/FTWindow.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTWindow.lo -MD -MP -MF $(DEPDIR)/FTWindow.Tpo -c -o FTWindow.lo `test -f 'src/fulltext/FTWindow.cpp' || echo '$(srcdir)/'`src/fulltext/FTWindow.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTWindow.Tpo $(DEPDIR)/FTWindow.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTWindow.cpp' object='FTWindow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTWindow.lo `test -f 'src/fulltext/FTWindow.cpp' || echo '$(srcdir)/'`src/fulltext/FTWindow.cpp XQillaBuilderImpl.lo: src/dom-api/impl/XQillaBuilderImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaBuilderImpl.lo -MD -MP -MF $(DEPDIR)/XQillaBuilderImpl.Tpo -c -o XQillaBuilderImpl.lo `test -f 'src/dom-api/impl/XQillaBuilderImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaBuilderImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaBuilderImpl.Tpo $(DEPDIR)/XQillaBuilderImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaBuilderImpl.cpp' object='XQillaBuilderImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaBuilderImpl.lo `test -f 'src/dom-api/impl/XQillaBuilderImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaBuilderImpl.cpp XQillaDocumentImpl.lo: src/dom-api/impl/XQillaDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaDocumentImpl.lo -MD -MP -MF $(DEPDIR)/XQillaDocumentImpl.Tpo -c -o XQillaDocumentImpl.lo `test -f 'src/dom-api/impl/XQillaDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaDocumentImpl.Tpo $(DEPDIR)/XQillaDocumentImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaDocumentImpl.cpp' object='XQillaDocumentImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaDocumentImpl.lo `test -f 'src/dom-api/impl/XQillaDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaDocumentImpl.cpp XQillaExpressionImpl.lo: src/dom-api/impl/XQillaExpressionImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaExpressionImpl.lo -MD -MP -MF $(DEPDIR)/XQillaExpressionImpl.Tpo -c -o XQillaExpressionImpl.lo `test -f 'src/dom-api/impl/XQillaExpressionImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaExpressionImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaExpressionImpl.Tpo $(DEPDIR)/XQillaExpressionImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaExpressionImpl.cpp' object='XQillaExpressionImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaExpressionImpl.lo `test -f 'src/dom-api/impl/XQillaExpressionImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaExpressionImpl.cpp XQillaNSResolverImpl.lo: src/dom-api/impl/XQillaNSResolverImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaNSResolverImpl.lo -MD -MP -MF $(DEPDIR)/XQillaNSResolverImpl.Tpo -c -o XQillaNSResolverImpl.lo `test -f 'src/dom-api/impl/XQillaNSResolverImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaNSResolverImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaNSResolverImpl.Tpo $(DEPDIR)/XQillaNSResolverImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaNSResolverImpl.cpp' object='XQillaNSResolverImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaNSResolverImpl.lo `test -f 'src/dom-api/impl/XQillaNSResolverImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaNSResolverImpl.cpp XQillaXMLGrammarPoolImpl.lo: src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXMLGrammarPoolImpl.lo -MD -MP -MF $(DEPDIR)/XQillaXMLGrammarPoolImpl.Tpo -c -o XQillaXMLGrammarPoolImpl.lo `test -f 'src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXMLGrammarPoolImpl.Tpo $(DEPDIR)/XQillaXMLGrammarPoolImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' object='XQillaXMLGrammarPoolImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXMLGrammarPoolImpl.lo `test -f 'src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp XPathDocumentImpl.lo: src/dom-api/impl/XPathDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPathDocumentImpl.lo -MD -MP -MF $(DEPDIR)/XPathDocumentImpl.Tpo -c -o XPathDocumentImpl.lo `test -f 'src/dom-api/impl/XPathDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPathDocumentImpl.Tpo $(DEPDIR)/XPathDocumentImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPathDocumentImpl.cpp' object='XPathDocumentImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPathDocumentImpl.lo `test -f 'src/dom-api/impl/XPathDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathDocumentImpl.cpp XPathNamespaceImpl.lo: src/dom-api/impl/XPathNamespaceImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPathNamespaceImpl.lo -MD -MP -MF $(DEPDIR)/XPathNamespaceImpl.Tpo -c -o XPathNamespaceImpl.lo `test -f 'src/dom-api/impl/XPathNamespaceImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathNamespaceImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPathNamespaceImpl.Tpo $(DEPDIR)/XPathNamespaceImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPathNamespaceImpl.cpp' object='XPathNamespaceImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPathNamespaceImpl.lo `test -f 'src/dom-api/impl/XPathNamespaceImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathNamespaceImpl.cpp XPath2ResultImpl.lo: src/dom-api/impl/XPath2ResultImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2ResultImpl.lo -MD -MP -MF $(DEPDIR)/XPath2ResultImpl.Tpo -c -o XPath2ResultImpl.lo `test -f 'src/dom-api/impl/XPath2ResultImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPath2ResultImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2ResultImpl.Tpo $(DEPDIR)/XPath2ResultImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPath2ResultImpl.cpp' object='XPath2ResultImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2ResultImpl.lo `test -f 'src/dom-api/impl/XPath2ResultImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPath2ResultImpl.cpp XQillaImplementation.lo: src/dom-api/XQillaImplementation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaImplementation.lo -MD -MP -MF $(DEPDIR)/XQillaImplementation.Tpo -c -o XQillaImplementation.lo `test -f 'src/dom-api/XQillaImplementation.cpp' || echo '$(srcdir)/'`src/dom-api/XQillaImplementation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaImplementation.Tpo $(DEPDIR)/XQillaImplementation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/XQillaImplementation.cpp' object='XQillaImplementation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaImplementation.lo `test -f 'src/dom-api/XQillaImplementation.cpp' || echo '$(srcdir)/'`src/dom-api/XQillaImplementation.cpp XPath2NodeSerializer.lo: src/dom-api/XPath2NodeSerializer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2NodeSerializer.lo -MD -MP -MF $(DEPDIR)/XPath2NodeSerializer.Tpo -c -o XPath2NodeSerializer.lo `test -f 'src/dom-api/XPath2NodeSerializer.cpp' || echo '$(srcdir)/'`src/dom-api/XPath2NodeSerializer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2NodeSerializer.Tpo $(DEPDIR)/XPath2NodeSerializer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/XPath2NodeSerializer.cpp' object='XPath2NodeSerializer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2NodeSerializer.lo `test -f 'src/dom-api/XPath2NodeSerializer.cpp' || echo '$(srcdir)/'`src/dom-api/XPath2NodeSerializer.cpp XQilla.lo: src/simple-api/XQilla.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQilla.lo -MD -MP -MF $(DEPDIR)/XQilla.Tpo -c -o XQilla.lo `test -f 'src/simple-api/XQilla.cpp' || echo '$(srcdir)/'`src/simple-api/XQilla.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQilla.Tpo $(DEPDIR)/XQilla.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/simple-api/XQilla.cpp' object='XQilla.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQilla.lo `test -f 'src/simple-api/XQilla.cpp' || echo '$(srcdir)/'`src/simple-api/XQilla.cpp XQQuery.lo: src/simple-api/XQQuery.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQQuery.lo -MD -MP -MF $(DEPDIR)/XQQuery.Tpo -c -o XQQuery.lo `test -f 'src/simple-api/XQQuery.cpp' || echo '$(srcdir)/'`src/simple-api/XQQuery.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQQuery.Tpo $(DEPDIR)/XQQuery.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/simple-api/XQQuery.cpp' object='XQQuery.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQQuery.lo `test -f 'src/simple-api/XQQuery.cpp' || echo '$(srcdir)/'`src/simple-api/XQQuery.cpp UTF8Str.lo: src/utils/UTF8Str.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UTF8Str.lo -MD -MP -MF $(DEPDIR)/UTF8Str.Tpo -c -o UTF8Str.lo `test -f 'src/utils/UTF8Str.cpp' || echo '$(srcdir)/'`src/utils/UTF8Str.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UTF8Str.Tpo $(DEPDIR)/UTF8Str.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/UTF8Str.cpp' object='UTF8Str.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UTF8Str.lo `test -f 'src/utils/UTF8Str.cpp' || echo '$(srcdir)/'`src/utils/UTF8Str.cpp XMLChCompare.lo: src/utils/XMLChCompare.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XMLChCompare.lo -MD -MP -MF $(DEPDIR)/XMLChCompare.Tpo -c -o XMLChCompare.lo `test -f 'src/utils/XMLChCompare.cpp' || echo '$(srcdir)/'`src/utils/XMLChCompare.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XMLChCompare.Tpo $(DEPDIR)/XMLChCompare.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XMLChCompare.cpp' object='XMLChCompare.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XMLChCompare.lo `test -f 'src/utils/XMLChCompare.cpp' || echo '$(srcdir)/'`src/utils/XMLChCompare.cpp XStr.lo: src/utils/XStr.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XStr.lo -MD -MP -MF $(DEPDIR)/XStr.Tpo -c -o XStr.lo `test -f 'src/utils/XStr.cpp' || echo '$(srcdir)/'`src/utils/XStr.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XStr.Tpo $(DEPDIR)/XStr.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XStr.cpp' object='XStr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XStr.lo `test -f 'src/utils/XStr.cpp' || echo '$(srcdir)/'`src/utils/XStr.cpp ContextUtils.lo: src/utils/ContextUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContextUtils.lo -MD -MP -MF $(DEPDIR)/ContextUtils.Tpo -c -o ContextUtils.lo `test -f 'src/utils/ContextUtils.cpp' || echo '$(srcdir)/'`src/utils/ContextUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContextUtils.Tpo $(DEPDIR)/ContextUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/ContextUtils.cpp' object='ContextUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContextUtils.lo `test -f 'src/utils/ContextUtils.cpp' || echo '$(srcdir)/'`src/utils/ContextUtils.cpp DateUtils.lo: src/utils/DateUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DateUtils.lo -MD -MP -MF $(DEPDIR)/DateUtils.Tpo -c -o DateUtils.lo `test -f 'src/utils/DateUtils.cpp' || echo '$(srcdir)/'`src/utils/DateUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DateUtils.Tpo $(DEPDIR)/DateUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/DateUtils.cpp' object='DateUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DateUtils.lo `test -f 'src/utils/DateUtils.cpp' || echo '$(srcdir)/'`src/utils/DateUtils.cpp NumUtils.lo: src/utils/NumUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NumUtils.lo -MD -MP -MF $(DEPDIR)/NumUtils.Tpo -c -o NumUtils.lo `test -f 'src/utils/NumUtils.cpp' || echo '$(srcdir)/'`src/utils/NumUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NumUtils.Tpo $(DEPDIR)/NumUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/NumUtils.cpp' object='NumUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NumUtils.lo `test -f 'src/utils/NumUtils.cpp' || echo '$(srcdir)/'`src/utils/NumUtils.cpp XQillaPlatformUtils.lo: src/utils/XQillaPlatformUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaPlatformUtils.lo -MD -MP -MF $(DEPDIR)/XQillaPlatformUtils.Tpo -c -o XQillaPlatformUtils.lo `test -f 'src/utils/XQillaPlatformUtils.cpp' || echo '$(srcdir)/'`src/utils/XQillaPlatformUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaPlatformUtils.Tpo $(DEPDIR)/XQillaPlatformUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XQillaPlatformUtils.cpp' object='XQillaPlatformUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaPlatformUtils.lo `test -f 'src/utils/XQillaPlatformUtils.cpp' || echo '$(srcdir)/'`src/utils/XQillaPlatformUtils.cpp XPath2NSUtils.lo: src/utils/XPath2NSUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2NSUtils.lo -MD -MP -MF $(DEPDIR)/XPath2NSUtils.Tpo -c -o XPath2NSUtils.lo `test -f 'src/utils/XPath2NSUtils.cpp' || echo '$(srcdir)/'`src/utils/XPath2NSUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2NSUtils.Tpo $(DEPDIR)/XPath2NSUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XPath2NSUtils.cpp' object='XPath2NSUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2NSUtils.lo `test -f 'src/utils/XPath2NSUtils.cpp' || echo '$(srcdir)/'`src/utils/XPath2NSUtils.cpp XPath2Utils.lo: src/utils/XPath2Utils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2Utils.lo -MD -MP -MF $(DEPDIR)/XPath2Utils.Tpo -c -o XPath2Utils.lo `test -f 'src/utils/XPath2Utils.cpp' || echo '$(srcdir)/'`src/utils/XPath2Utils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2Utils.Tpo $(DEPDIR)/XPath2Utils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XPath2Utils.cpp' object='XPath2Utils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2Utils.lo `test -f 'src/utils/XPath2Utils.cpp' || echo '$(srcdir)/'`src/utils/XPath2Utils.cpp UnicodeTransformer.lo: src/utils/UnicodeTransformer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnicodeTransformer.lo -MD -MP -MF $(DEPDIR)/UnicodeTransformer.Tpo -c -o UnicodeTransformer.lo `test -f 'src/utils/UnicodeTransformer.cpp' || echo '$(srcdir)/'`src/utils/UnicodeTransformer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnicodeTransformer.Tpo $(DEPDIR)/UnicodeTransformer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/UnicodeTransformer.cpp' object='UnicodeTransformer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnicodeTransformer.lo `test -f 'src/utils/UnicodeTransformer.cpp' || echo '$(srcdir)/'`src/utils/UnicodeTransformer.cpp DelayedModule.lo: src/utils/DelayedModule.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DelayedModule.lo -MD -MP -MF $(DEPDIR)/DelayedModule.Tpo -c -o DelayedModule.lo `test -f 'src/utils/DelayedModule.cpp' || echo '$(srcdir)/'`src/utils/DelayedModule.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DelayedModule.Tpo $(DEPDIR)/DelayedModule.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/DelayedModule.cpp' object='DelayedModule.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DelayedModule.lo `test -f 'src/utils/DelayedModule.cpp' || echo '$(srcdir)/'`src/utils/DelayedModule.cpp XQillaException.lo: src/exceptions/XQillaException.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaException.lo -MD -MP -MF $(DEPDIR)/XQillaException.Tpo -c -o XQillaException.lo `test -f 'src/exceptions/XQillaException.cpp' || echo '$(srcdir)/'`src/exceptions/XQillaException.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaException.Tpo $(DEPDIR)/XQillaException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/exceptions/XQillaException.cpp' object='XQillaException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaException.lo `test -f 'src/exceptions/XQillaException.cpp' || echo '$(srcdir)/'`src/exceptions/XQillaException.cpp XQException.lo: src/exceptions/XQException.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQException.lo -MD -MP -MF $(DEPDIR)/XQException.Tpo -c -o XQException.lo `test -f 'src/exceptions/XQException.cpp' || echo '$(srcdir)/'`src/exceptions/XQException.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQException.Tpo $(DEPDIR)/XQException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/exceptions/XQException.cpp' object='XQException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQException.lo `test -f 'src/exceptions/XQException.cpp' || echo '$(srcdir)/'`src/exceptions/XQException.cpp EXSLTMathFunction.lo: src/functions/EXSLTMathFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EXSLTMathFunction.lo -MD -MP -MF $(DEPDIR)/EXSLTMathFunction.Tpo -c -o EXSLTMathFunction.lo `test -f 'src/functions/EXSLTMathFunction.cpp' || echo '$(srcdir)/'`src/functions/EXSLTMathFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EXSLTMathFunction.Tpo $(DEPDIR)/EXSLTMathFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/EXSLTMathFunction.cpp' object='EXSLTMathFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EXSLTMathFunction.lo `test -f 'src/functions/EXSLTMathFunction.cpp' || echo '$(srcdir)/'`src/functions/EXSLTMathFunction.cpp ExternalFunction.lo: src/functions/ExternalFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ExternalFunction.lo -MD -MP -MF $(DEPDIR)/ExternalFunction.Tpo -c -o ExternalFunction.lo `test -f 'src/functions/ExternalFunction.cpp' || echo '$(srcdir)/'`src/functions/ExternalFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ExternalFunction.Tpo $(DEPDIR)/ExternalFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/ExternalFunction.cpp' object='ExternalFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ExternalFunction.lo `test -f 'src/functions/ExternalFunction.cpp' || echo '$(srcdir)/'`src/functions/ExternalFunction.cpp XQillaFunction.lo: src/functions/XQillaFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaFunction.lo -MD -MP -MF $(DEPDIR)/XQillaFunction.Tpo -c -o XQillaFunction.lo `test -f 'src/functions/XQillaFunction.cpp' || echo '$(srcdir)/'`src/functions/XQillaFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaFunction.Tpo $(DEPDIR)/XQillaFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/XQillaFunction.cpp' object='XQillaFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaFunction.lo `test -f 'src/functions/XQillaFunction.cpp' || echo '$(srcdir)/'`src/functions/XQillaFunction.cpp FunctionParseXML.lo: src/functions/FunctionParseXML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseXML.lo -MD -MP -MF $(DEPDIR)/FunctionParseXML.Tpo -c -o FunctionParseXML.lo `test -f 'src/functions/FunctionParseXML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseXML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseXML.Tpo $(DEPDIR)/FunctionParseXML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseXML.cpp' object='FunctionParseXML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseXML.lo `test -f 'src/functions/FunctionParseXML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseXML.cpp FuncFactory.lo: src/functions/FuncFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FuncFactory.lo -MD -MP -MF $(DEPDIR)/FuncFactory.Tpo -c -o FuncFactory.lo `test -f 'src/functions/FuncFactory.cpp' || echo '$(srcdir)/'`src/functions/FuncFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FuncFactory.Tpo $(DEPDIR)/FuncFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FuncFactory.cpp' object='FuncFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FuncFactory.lo `test -f 'src/functions/FuncFactory.cpp' || echo '$(srcdir)/'`src/functions/FuncFactory.cpp FunctionLookup.lo: src/functions/FunctionLookup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLookup.lo -MD -MP -MF $(DEPDIR)/FunctionLookup.Tpo -c -o FunctionLookup.lo `test -f 'src/functions/FunctionLookup.cpp' || echo '$(srcdir)/'`src/functions/FunctionLookup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLookup.Tpo $(DEPDIR)/FunctionLookup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLookup.cpp' object='FunctionLookup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLookup.lo `test -f 'src/functions/FunctionLookup.cpp' || echo '$(srcdir)/'`src/functions/FunctionLookup.cpp FunctionAbs.lo: src/functions/FunctionAbs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAbs.lo -MD -MP -MF $(DEPDIR)/FunctionAbs.Tpo -c -o FunctionAbs.lo `test -f 'src/functions/FunctionAbs.cpp' || echo '$(srcdir)/'`src/functions/FunctionAbs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAbs.Tpo $(DEPDIR)/FunctionAbs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAbs.cpp' object='FunctionAbs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAbs.lo `test -f 'src/functions/FunctionAbs.cpp' || echo '$(srcdir)/'`src/functions/FunctionAbs.cpp FunctionAcos.lo: src/functions/FunctionAcos.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAcos.lo -MD -MP -MF $(DEPDIR)/FunctionAcos.Tpo -c -o FunctionAcos.lo `test -f 'src/functions/FunctionAcos.cpp' || echo '$(srcdir)/'`src/functions/FunctionAcos.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAcos.Tpo $(DEPDIR)/FunctionAcos.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAcos.cpp' object='FunctionAcos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAcos.lo `test -f 'src/functions/FunctionAcos.cpp' || echo '$(srcdir)/'`src/functions/FunctionAcos.cpp FunctionAsin.lo: src/functions/FunctionAsin.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAsin.lo -MD -MP -MF $(DEPDIR)/FunctionAsin.Tpo -c -o FunctionAsin.lo `test -f 'src/functions/FunctionAsin.cpp' || echo '$(srcdir)/'`src/functions/FunctionAsin.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAsin.Tpo $(DEPDIR)/FunctionAsin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAsin.cpp' object='FunctionAsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAsin.lo `test -f 'src/functions/FunctionAsin.cpp' || echo '$(srcdir)/'`src/functions/FunctionAsin.cpp FunctionAtan.lo: src/functions/FunctionAtan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAtan.lo -MD -MP -MF $(DEPDIR)/FunctionAtan.Tpo -c -o FunctionAtan.lo `test -f 'src/functions/FunctionAtan.cpp' || echo '$(srcdir)/'`src/functions/FunctionAtan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAtan.Tpo $(DEPDIR)/FunctionAtan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAtan.cpp' object='FunctionAtan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAtan.lo `test -f 'src/functions/FunctionAtan.cpp' || echo '$(srcdir)/'`src/functions/FunctionAtan.cpp FunctionBaseURI.lo: src/functions/FunctionBaseURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionBaseURI.lo -MD -MP -MF $(DEPDIR)/FunctionBaseURI.Tpo -c -o FunctionBaseURI.lo `test -f 'src/functions/FunctionBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionBaseURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionBaseURI.Tpo $(DEPDIR)/FunctionBaseURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionBaseURI.cpp' object='FunctionBaseURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionBaseURI.lo `test -f 'src/functions/FunctionBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionBaseURI.cpp FunctionCaseFold.lo: src/functions/FunctionCaseFold.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCaseFold.lo -MD -MP -MF $(DEPDIR)/FunctionCaseFold.Tpo -c -o FunctionCaseFold.lo `test -f 'src/functions/FunctionCaseFold.cpp' || echo '$(srcdir)/'`src/functions/FunctionCaseFold.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCaseFold.Tpo $(DEPDIR)/FunctionCaseFold.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCaseFold.cpp' object='FunctionCaseFold.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCaseFold.lo `test -f 'src/functions/FunctionCaseFold.cpp' || echo '$(srcdir)/'`src/functions/FunctionCaseFold.cpp FunctionCeiling.lo: src/functions/FunctionCeiling.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCeiling.lo -MD -MP -MF $(DEPDIR)/FunctionCeiling.Tpo -c -o FunctionCeiling.lo `test -f 'src/functions/FunctionCeiling.cpp' || echo '$(srcdir)/'`src/functions/FunctionCeiling.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCeiling.Tpo $(DEPDIR)/FunctionCeiling.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCeiling.cpp' object='FunctionCeiling.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCeiling.lo `test -f 'src/functions/FunctionCeiling.cpp' || echo '$(srcdir)/'`src/functions/FunctionCeiling.cpp FunctionCodepointsToString.lo: src/functions/FunctionCodepointsToString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCodepointsToString.lo -MD -MP -MF $(DEPDIR)/FunctionCodepointsToString.Tpo -c -o FunctionCodepointsToString.lo `test -f 'src/functions/FunctionCodepointsToString.cpp' || echo '$(srcdir)/'`src/functions/FunctionCodepointsToString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCodepointsToString.Tpo $(DEPDIR)/FunctionCodepointsToString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCodepointsToString.cpp' object='FunctionCodepointsToString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCodepointsToString.lo `test -f 'src/functions/FunctionCodepointsToString.cpp' || echo '$(srcdir)/'`src/functions/FunctionCodepointsToString.cpp FunctionCollection.lo: src/functions/FunctionCollection.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCollection.lo -MD -MP -MF $(DEPDIR)/FunctionCollection.Tpo -c -o FunctionCollection.lo `test -f 'src/functions/FunctionCollection.cpp' || echo '$(srcdir)/'`src/functions/FunctionCollection.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCollection.Tpo $(DEPDIR)/FunctionCollection.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCollection.cpp' object='FunctionCollection.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCollection.lo `test -f 'src/functions/FunctionCollection.cpp' || echo '$(srcdir)/'`src/functions/FunctionCollection.cpp FunctionCompare.lo: src/functions/FunctionCompare.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCompare.lo -MD -MP -MF $(DEPDIR)/FunctionCompare.Tpo -c -o FunctionCompare.lo `test -f 'src/functions/FunctionCompare.cpp' || echo '$(srcdir)/'`src/functions/FunctionCompare.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCompare.Tpo $(DEPDIR)/FunctionCompare.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCompare.cpp' object='FunctionCompare.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCompare.lo `test -f 'src/functions/FunctionCompare.cpp' || echo '$(srcdir)/'`src/functions/FunctionCompare.cpp FunctionConcat.lo: src/functions/FunctionConcat.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionConcat.lo -MD -MP -MF $(DEPDIR)/FunctionConcat.Tpo -c -o FunctionConcat.lo `test -f 'src/functions/FunctionConcat.cpp' || echo '$(srcdir)/'`src/functions/FunctionConcat.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionConcat.Tpo $(DEPDIR)/FunctionConcat.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionConcat.cpp' object='FunctionConcat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionConcat.lo `test -f 'src/functions/FunctionConcat.cpp' || echo '$(srcdir)/'`src/functions/FunctionConcat.cpp FunctionContains.lo: src/functions/FunctionContains.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionContains.lo -MD -MP -MF $(DEPDIR)/FunctionContains.Tpo -c -o FunctionContains.lo `test -f 'src/functions/FunctionContains.cpp' || echo '$(srcdir)/'`src/functions/FunctionContains.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionContains.Tpo $(DEPDIR)/FunctionContains.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionContains.cpp' object='FunctionContains.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionContains.lo `test -f 'src/functions/FunctionContains.cpp' || echo '$(srcdir)/'`src/functions/FunctionContains.cpp FunctionCount.lo: src/functions/FunctionCount.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCount.lo -MD -MP -MF $(DEPDIR)/FunctionCount.Tpo -c -o FunctionCount.lo `test -f 'src/functions/FunctionCount.cpp' || echo '$(srcdir)/'`src/functions/FunctionCount.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCount.Tpo $(DEPDIR)/FunctionCount.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCount.cpp' object='FunctionCount.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCount.lo `test -f 'src/functions/FunctionCount.cpp' || echo '$(srcdir)/'`src/functions/FunctionCount.cpp FunctionCos.lo: src/functions/FunctionCos.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCos.lo -MD -MP -MF $(DEPDIR)/FunctionCos.Tpo -c -o FunctionCos.lo `test -f 'src/functions/FunctionCos.cpp' || echo '$(srcdir)/'`src/functions/FunctionCos.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCos.Tpo $(DEPDIR)/FunctionCos.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCos.cpp' object='FunctionCos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCos.lo `test -f 'src/functions/FunctionCos.cpp' || echo '$(srcdir)/'`src/functions/FunctionCos.cpp FunctionCurrentDate.lo: src/functions/FunctionCurrentDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentDate.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentDate.Tpo -c -o FunctionCurrentDate.lo `test -f 'src/functions/FunctionCurrentDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentDate.Tpo $(DEPDIR)/FunctionCurrentDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentDate.cpp' object='FunctionCurrentDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentDate.lo `test -f 'src/functions/FunctionCurrentDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDate.cpp FunctionCurrentDateTime.lo: src/functions/FunctionCurrentDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentDateTime.Tpo -c -o FunctionCurrentDateTime.lo `test -f 'src/functions/FunctionCurrentDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentDateTime.Tpo $(DEPDIR)/FunctionCurrentDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentDateTime.cpp' object='FunctionCurrentDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentDateTime.lo `test -f 'src/functions/FunctionCurrentDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDateTime.cpp FunctionCurrentTime.lo: src/functions/FunctionCurrentTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentTime.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentTime.Tpo -c -o FunctionCurrentTime.lo `test -f 'src/functions/FunctionCurrentTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentTime.Tpo $(DEPDIR)/FunctionCurrentTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentTime.cpp' object='FunctionCurrentTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentTime.lo `test -f 'src/functions/FunctionCurrentTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentTime.cpp FunctionDateTime.lo: src/functions/FunctionDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionDateTime.Tpo -c -o FunctionDateTime.lo `test -f 'src/functions/FunctionDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDateTime.Tpo $(DEPDIR)/FunctionDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDateTime.cpp' object='FunctionDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDateTime.lo `test -f 'src/functions/FunctionDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDateTime.cpp FunctionDefaultCollation.lo: src/functions/FunctionDefaultCollation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDefaultCollation.lo -MD -MP -MF $(DEPDIR)/FunctionDefaultCollation.Tpo -c -o FunctionDefaultCollation.lo `test -f 'src/functions/FunctionDefaultCollation.cpp' || echo '$(srcdir)/'`src/functions/FunctionDefaultCollation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDefaultCollation.Tpo $(DEPDIR)/FunctionDefaultCollation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDefaultCollation.cpp' object='FunctionDefaultCollation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDefaultCollation.lo `test -f 'src/functions/FunctionDefaultCollation.cpp' || echo '$(srcdir)/'`src/functions/FunctionDefaultCollation.cpp FunctionDistinctValues.lo: src/functions/FunctionDistinctValues.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDistinctValues.lo -MD -MP -MF $(DEPDIR)/FunctionDistinctValues.Tpo -c -o FunctionDistinctValues.lo `test -f 'src/functions/FunctionDistinctValues.cpp' || echo '$(srcdir)/'`src/functions/FunctionDistinctValues.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDistinctValues.Tpo $(DEPDIR)/FunctionDistinctValues.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDistinctValues.cpp' object='FunctionDistinctValues.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDistinctValues.lo `test -f 'src/functions/FunctionDistinctValues.cpp' || echo '$(srcdir)/'`src/functions/FunctionDistinctValues.cpp FunctionDocAvailable.lo: src/functions/FunctionDocAvailable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocAvailable.lo -MD -MP -MF $(DEPDIR)/FunctionDocAvailable.Tpo -c -o FunctionDocAvailable.lo `test -f 'src/functions/FunctionDocAvailable.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocAvailable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocAvailable.Tpo $(DEPDIR)/FunctionDocAvailable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocAvailable.cpp' object='FunctionDocAvailable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocAvailable.lo `test -f 'src/functions/FunctionDocAvailable.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocAvailable.cpp FunctionDoc.lo: src/functions/FunctionDoc.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDoc.lo -MD -MP -MF $(DEPDIR)/FunctionDoc.Tpo -c -o FunctionDoc.lo `test -f 'src/functions/FunctionDoc.cpp' || echo '$(srcdir)/'`src/functions/FunctionDoc.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDoc.Tpo $(DEPDIR)/FunctionDoc.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDoc.cpp' object='FunctionDoc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDoc.lo `test -f 'src/functions/FunctionDoc.cpp' || echo '$(srcdir)/'`src/functions/FunctionDoc.cpp FunctionDocument.lo: src/functions/FunctionDocument.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocument.lo -MD -MP -MF $(DEPDIR)/FunctionDocument.Tpo -c -o FunctionDocument.lo `test -f 'src/functions/FunctionDocument.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocument.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocument.Tpo $(DEPDIR)/FunctionDocument.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocument.cpp' object='FunctionDocument.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocument.lo `test -f 'src/functions/FunctionDocument.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocument.cpp FunctionDocumentURI.lo: src/functions/FunctionDocumentURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocumentURI.lo -MD -MP -MF $(DEPDIR)/FunctionDocumentURI.Tpo -c -o FunctionDocumentURI.lo `test -f 'src/functions/FunctionDocumentURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocumentURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocumentURI.Tpo $(DEPDIR)/FunctionDocumentURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocumentURI.cpp' object='FunctionDocumentURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocumentURI.lo `test -f 'src/functions/FunctionDocumentURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocumentURI.cpp FunctionEmpty.lo: src/functions/FunctionEmpty.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionEmpty.lo -MD -MP -MF $(DEPDIR)/FunctionEmpty.Tpo -c -o FunctionEmpty.lo `test -f 'src/functions/FunctionEmpty.cpp' || echo '$(srcdir)/'`src/functions/FunctionEmpty.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionEmpty.Tpo $(DEPDIR)/FunctionEmpty.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionEmpty.cpp' object='FunctionEmpty.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionEmpty.lo `test -f 'src/functions/FunctionEmpty.cpp' || echo '$(srcdir)/'`src/functions/FunctionEmpty.cpp FunctionEndsWith.lo: src/functions/FunctionEndsWith.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionEndsWith.lo -MD -MP -MF $(DEPDIR)/FunctionEndsWith.Tpo -c -o FunctionEndsWith.lo `test -f 'src/functions/FunctionEndsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionEndsWith.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionEndsWith.Tpo $(DEPDIR)/FunctionEndsWith.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionEndsWith.cpp' object='FunctionEndsWith.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionEndsWith.lo `test -f 'src/functions/FunctionEndsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionEndsWith.cpp FunctionError.lo: src/functions/FunctionError.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionError.lo -MD -MP -MF $(DEPDIR)/FunctionError.Tpo -c -o FunctionError.lo `test -f 'src/functions/FunctionError.cpp' || echo '$(srcdir)/'`src/functions/FunctionError.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionError.Tpo $(DEPDIR)/FunctionError.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionError.cpp' object='FunctionError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionError.lo `test -f 'src/functions/FunctionError.cpp' || echo '$(srcdir)/'`src/functions/FunctionError.cpp FunctionExp.lo: src/functions/FunctionExp.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionExp.lo -MD -MP -MF $(DEPDIR)/FunctionExp.Tpo -c -o FunctionExp.lo `test -f 'src/functions/FunctionExp.cpp' || echo '$(srcdir)/'`src/functions/FunctionExp.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionExp.Tpo $(DEPDIR)/FunctionExp.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionExp.cpp' object='FunctionExp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionExp.lo `test -f 'src/functions/FunctionExp.cpp' || echo '$(srcdir)/'`src/functions/FunctionExp.cpp FunctionFloor.lo: src/functions/FunctionFloor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFloor.lo -MD -MP -MF $(DEPDIR)/FunctionFloor.Tpo -c -o FunctionFloor.lo `test -f 'src/functions/FunctionFloor.cpp' || echo '$(srcdir)/'`src/functions/FunctionFloor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFloor.Tpo $(DEPDIR)/FunctionFloor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFloor.cpp' object='FunctionFloor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFloor.lo `test -f 'src/functions/FunctionFloor.cpp' || echo '$(srcdir)/'`src/functions/FunctionFloor.cpp FunctionFunctionArity.lo: src/functions/FunctionFunctionArity.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFunctionArity.lo -MD -MP -MF $(DEPDIR)/FunctionFunctionArity.Tpo -c -o FunctionFunctionArity.lo `test -f 'src/functions/FunctionFunctionArity.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionArity.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFunctionArity.Tpo $(DEPDIR)/FunctionFunctionArity.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFunctionArity.cpp' object='FunctionFunctionArity.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFunctionArity.lo `test -f 'src/functions/FunctionFunctionArity.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionArity.cpp FunctionFunctionName.lo: src/functions/FunctionFunctionName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFunctionName.lo -MD -MP -MF $(DEPDIR)/FunctionFunctionName.Tpo -c -o FunctionFunctionName.lo `test -f 'src/functions/FunctionFunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFunctionName.Tpo $(DEPDIR)/FunctionFunctionName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFunctionName.cpp' object='FunctionFunctionName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFunctionName.lo `test -f 'src/functions/FunctionFunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionName.cpp FunctionId.lo: src/functions/FunctionId.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionId.lo -MD -MP -MF $(DEPDIR)/FunctionId.Tpo -c -o FunctionId.lo `test -f 'src/functions/FunctionId.cpp' || echo '$(srcdir)/'`src/functions/FunctionId.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionId.Tpo $(DEPDIR)/FunctionId.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionId.cpp' object='FunctionId.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionId.lo `test -f 'src/functions/FunctionId.cpp' || echo '$(srcdir)/'`src/functions/FunctionId.cpp FunctionIdref.lo: src/functions/FunctionIdref.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionIdref.lo -MD -MP -MF $(DEPDIR)/FunctionIdref.Tpo -c -o FunctionIdref.lo `test -f 'src/functions/FunctionIdref.cpp' || echo '$(srcdir)/'`src/functions/FunctionIdref.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionIdref.Tpo $(DEPDIR)/FunctionIdref.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionIdref.cpp' object='FunctionIdref.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionIdref.lo `test -f 'src/functions/FunctionIdref.cpp' || echo '$(srcdir)/'`src/functions/FunctionIdref.cpp FunctionImplicitTimezone.lo: src/functions/FunctionImplicitTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionImplicitTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionImplicitTimezone.Tpo -c -o FunctionImplicitTimezone.lo `test -f 'src/functions/FunctionImplicitTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionImplicitTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionImplicitTimezone.Tpo $(DEPDIR)/FunctionImplicitTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionImplicitTimezone.cpp' object='FunctionImplicitTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionImplicitTimezone.lo `test -f 'src/functions/FunctionImplicitTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionImplicitTimezone.cpp FunctionLang.lo: src/functions/FunctionLang.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLang.lo -MD -MP -MF $(DEPDIR)/FunctionLang.Tpo -c -o FunctionLang.lo `test -f 'src/functions/FunctionLang.cpp' || echo '$(srcdir)/'`src/functions/FunctionLang.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLang.Tpo $(DEPDIR)/FunctionLang.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLang.cpp' object='FunctionLang.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLang.lo `test -f 'src/functions/FunctionLang.cpp' || echo '$(srcdir)/'`src/functions/FunctionLang.cpp FunctionLast.lo: src/functions/FunctionLast.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLast.lo -MD -MP -MF $(DEPDIR)/FunctionLast.Tpo -c -o FunctionLast.lo `test -f 'src/functions/FunctionLast.cpp' || echo '$(srcdir)/'`src/functions/FunctionLast.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLast.Tpo $(DEPDIR)/FunctionLast.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLast.cpp' object='FunctionLast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLast.lo `test -f 'src/functions/FunctionLast.cpp' || echo '$(srcdir)/'`src/functions/FunctionLast.cpp FunctionLocalname.lo: src/functions/FunctionLocalname.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLocalname.lo -MD -MP -MF $(DEPDIR)/FunctionLocalname.Tpo -c -o FunctionLocalname.lo `test -f 'src/functions/FunctionLocalname.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalname.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLocalname.Tpo $(DEPDIR)/FunctionLocalname.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLocalname.cpp' object='FunctionLocalname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLocalname.lo `test -f 'src/functions/FunctionLocalname.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalname.cpp FunctionLocalNameFromQName.lo: src/functions/FunctionLocalNameFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLocalNameFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionLocalNameFromQName.Tpo -c -o FunctionLocalNameFromQName.lo `test -f 'src/functions/FunctionLocalNameFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalNameFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLocalNameFromQName.Tpo $(DEPDIR)/FunctionLocalNameFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLocalNameFromQName.cpp' object='FunctionLocalNameFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLocalNameFromQName.lo `test -f 'src/functions/FunctionLocalNameFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalNameFromQName.cpp FunctionLog.lo: src/functions/FunctionLog.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLog.lo -MD -MP -MF $(DEPDIR)/FunctionLog.Tpo -c -o FunctionLog.lo `test -f 'src/functions/FunctionLog.cpp' || echo '$(srcdir)/'`src/functions/FunctionLog.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLog.Tpo $(DEPDIR)/FunctionLog.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLog.cpp' object='FunctionLog.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLog.lo `test -f 'src/functions/FunctionLog.cpp' || echo '$(srcdir)/'`src/functions/FunctionLog.cpp FunctionLowerCase.lo: src/functions/FunctionLowerCase.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLowerCase.lo -MD -MP -MF $(DEPDIR)/FunctionLowerCase.Tpo -c -o FunctionLowerCase.lo `test -f 'src/functions/FunctionLowerCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionLowerCase.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLowerCase.Tpo $(DEPDIR)/FunctionLowerCase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLowerCase.cpp' object='FunctionLowerCase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLowerCase.lo `test -f 'src/functions/FunctionLowerCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionLowerCase.cpp FunctionMatches.lo: src/functions/FunctionMatches.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMatches.lo -MD -MP -MF $(DEPDIR)/FunctionMatches.Tpo -c -o FunctionMatches.lo `test -f 'src/functions/FunctionMatches.cpp' || echo '$(srcdir)/'`src/functions/FunctionMatches.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMatches.Tpo $(DEPDIR)/FunctionMatches.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMatches.cpp' object='FunctionMatches.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMatches.lo `test -f 'src/functions/FunctionMatches.cpp' || echo '$(srcdir)/'`src/functions/FunctionMatches.cpp FunctionName.lo: src/functions/FunctionName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionName.lo -MD -MP -MF $(DEPDIR)/FunctionName.Tpo -c -o FunctionName.lo `test -f 'src/functions/FunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionName.Tpo $(DEPDIR)/FunctionName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionName.cpp' object='FunctionName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionName.lo `test -f 'src/functions/FunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionName.cpp FunctionNamespaceUri.lo: src/functions/FunctionNamespaceUri.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNamespaceUri.lo -MD -MP -MF $(DEPDIR)/FunctionNamespaceUri.Tpo -c -o FunctionNamespaceUri.lo `test -f 'src/functions/FunctionNamespaceUri.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceUri.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNamespaceUri.Tpo $(DEPDIR)/FunctionNamespaceUri.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNamespaceUri.cpp' object='FunctionNamespaceUri.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNamespaceUri.lo `test -f 'src/functions/FunctionNamespaceUri.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceUri.cpp FunctionNamespaceURIFromQName.lo: src/functions/FunctionNamespaceURIFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNamespaceURIFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionNamespaceURIFromQName.Tpo -c -o FunctionNamespaceURIFromQName.lo `test -f 'src/functions/FunctionNamespaceURIFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceURIFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNamespaceURIFromQName.Tpo $(DEPDIR)/FunctionNamespaceURIFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNamespaceURIFromQName.cpp' object='FunctionNamespaceURIFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNamespaceURIFromQName.lo `test -f 'src/functions/FunctionNamespaceURIFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceURIFromQName.cpp FunctionNilled.lo: src/functions/FunctionNilled.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNilled.lo -MD -MP -MF $(DEPDIR)/FunctionNilled.Tpo -c -o FunctionNilled.lo `test -f 'src/functions/FunctionNilled.cpp' || echo '$(srcdir)/'`src/functions/FunctionNilled.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNilled.Tpo $(DEPDIR)/FunctionNilled.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNilled.cpp' object='FunctionNilled.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNilled.lo `test -f 'src/functions/FunctionNilled.cpp' || echo '$(srcdir)/'`src/functions/FunctionNilled.cpp FunctionNodeName.lo: src/functions/FunctionNodeName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNodeName.lo -MD -MP -MF $(DEPDIR)/FunctionNodeName.Tpo -c -o FunctionNodeName.lo `test -f 'src/functions/FunctionNodeName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNodeName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNodeName.Tpo $(DEPDIR)/FunctionNodeName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNodeName.cpp' object='FunctionNodeName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNodeName.lo `test -f 'src/functions/FunctionNodeName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNodeName.cpp FunctionNormalizeSpace.lo: src/functions/FunctionNormalizeSpace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNormalizeSpace.lo -MD -MP -MF $(DEPDIR)/FunctionNormalizeSpace.Tpo -c -o FunctionNormalizeSpace.lo `test -f 'src/functions/FunctionNormalizeSpace.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeSpace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNormalizeSpace.Tpo $(DEPDIR)/FunctionNormalizeSpace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNormalizeSpace.cpp' object='FunctionNormalizeSpace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNormalizeSpace.lo `test -f 'src/functions/FunctionNormalizeSpace.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeSpace.cpp FunctionNormalizeUnicode.lo: src/functions/FunctionNormalizeUnicode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNormalizeUnicode.lo -MD -MP -MF $(DEPDIR)/FunctionNormalizeUnicode.Tpo -c -o FunctionNormalizeUnicode.lo `test -f 'src/functions/FunctionNormalizeUnicode.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeUnicode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNormalizeUnicode.Tpo $(DEPDIR)/FunctionNormalizeUnicode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNormalizeUnicode.cpp' object='FunctionNormalizeUnicode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNormalizeUnicode.lo `test -f 'src/functions/FunctionNormalizeUnicode.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeUnicode.cpp FunctionNot.lo: src/functions/FunctionNot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNot.lo -MD -MP -MF $(DEPDIR)/FunctionNot.Tpo -c -o FunctionNot.lo `test -f 'src/functions/FunctionNot.cpp' || echo '$(srcdir)/'`src/functions/FunctionNot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNot.Tpo $(DEPDIR)/FunctionNot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNot.cpp' object='FunctionNot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNot.lo `test -f 'src/functions/FunctionNot.cpp' || echo '$(srcdir)/'`src/functions/FunctionNot.cpp FunctionNumber.lo: src/functions/FunctionNumber.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNumber.lo -MD -MP -MF $(DEPDIR)/FunctionNumber.Tpo -c -o FunctionNumber.lo `test -f 'src/functions/FunctionNumber.cpp' || echo '$(srcdir)/'`src/functions/FunctionNumber.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNumber.Tpo $(DEPDIR)/FunctionNumber.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNumber.cpp' object='FunctionNumber.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNumber.lo `test -f 'src/functions/FunctionNumber.cpp' || echo '$(srcdir)/'`src/functions/FunctionNumber.cpp FunctionPosition.lo: src/functions/FunctionPosition.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPosition.lo -MD -MP -MF $(DEPDIR)/FunctionPosition.Tpo -c -o FunctionPosition.lo `test -f 'src/functions/FunctionPosition.cpp' || echo '$(srcdir)/'`src/functions/FunctionPosition.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPosition.Tpo $(DEPDIR)/FunctionPosition.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPosition.cpp' object='FunctionPosition.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPosition.lo `test -f 'src/functions/FunctionPosition.cpp' || echo '$(srcdir)/'`src/functions/FunctionPosition.cpp FunctionPower.lo: src/functions/FunctionPower.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPower.lo -MD -MP -MF $(DEPDIR)/FunctionPower.Tpo -c -o FunctionPower.lo `test -f 'src/functions/FunctionPower.cpp' || echo '$(srcdir)/'`src/functions/FunctionPower.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPower.Tpo $(DEPDIR)/FunctionPower.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPower.cpp' object='FunctionPower.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPower.lo `test -f 'src/functions/FunctionPower.cpp' || echo '$(srcdir)/'`src/functions/FunctionPower.cpp FunctionPrefixFromQName.lo: src/functions/FunctionPrefixFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPrefixFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionPrefixFromQName.Tpo -c -o FunctionPrefixFromQName.lo `test -f 'src/functions/FunctionPrefixFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionPrefixFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPrefixFromQName.Tpo $(DEPDIR)/FunctionPrefixFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPrefixFromQName.cpp' object='FunctionPrefixFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPrefixFromQName.lo `test -f 'src/functions/FunctionPrefixFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionPrefixFromQName.cpp FunctionQName.lo: src/functions/FunctionQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionQName.lo -MD -MP -MF $(DEPDIR)/FunctionQName.Tpo -c -o FunctionQName.lo `test -f 'src/functions/FunctionQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionQName.Tpo $(DEPDIR)/FunctionQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionQName.cpp' object='FunctionQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionQName.lo `test -f 'src/functions/FunctionQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionQName.cpp FunctionRegexGroup.lo: src/functions/FunctionRegexGroup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRegexGroup.lo -MD -MP -MF $(DEPDIR)/FunctionRegexGroup.Tpo -c -o FunctionRegexGroup.lo `test -f 'src/functions/FunctionRegexGroup.cpp' || echo '$(srcdir)/'`src/functions/FunctionRegexGroup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRegexGroup.Tpo $(DEPDIR)/FunctionRegexGroup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRegexGroup.cpp' object='FunctionRegexGroup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRegexGroup.lo `test -f 'src/functions/FunctionRegexGroup.cpp' || echo '$(srcdir)/'`src/functions/FunctionRegexGroup.cpp FunctionReplace.lo: src/functions/FunctionReplace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionReplace.lo -MD -MP -MF $(DEPDIR)/FunctionReplace.Tpo -c -o FunctionReplace.lo `test -f 'src/functions/FunctionReplace.cpp' || echo '$(srcdir)/'`src/functions/FunctionReplace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionReplace.Tpo $(DEPDIR)/FunctionReplace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionReplace.cpp' object='FunctionReplace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionReplace.lo `test -f 'src/functions/FunctionReplace.cpp' || echo '$(srcdir)/'`src/functions/FunctionReplace.cpp FunctionResolveURI.lo: src/functions/FunctionResolveURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionResolveURI.lo -MD -MP -MF $(DEPDIR)/FunctionResolveURI.Tpo -c -o FunctionResolveURI.lo `test -f 'src/functions/FunctionResolveURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionResolveURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionResolveURI.Tpo $(DEPDIR)/FunctionResolveURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionResolveURI.cpp' object='FunctionResolveURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionResolveURI.lo `test -f 'src/functions/FunctionResolveURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionResolveURI.cpp FunctionRoot.lo: src/functions/FunctionRoot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRoot.lo -MD -MP -MF $(DEPDIR)/FunctionRoot.Tpo -c -o FunctionRoot.lo `test -f 'src/functions/FunctionRoot.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRoot.Tpo $(DEPDIR)/FunctionRoot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRoot.cpp' object='FunctionRoot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRoot.lo `test -f 'src/functions/FunctionRoot.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoot.cpp FunctionRound.lo: src/functions/FunctionRound.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRound.lo -MD -MP -MF $(DEPDIR)/FunctionRound.Tpo -c -o FunctionRound.lo `test -f 'src/functions/FunctionRound.cpp' || echo '$(srcdir)/'`src/functions/FunctionRound.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRound.Tpo $(DEPDIR)/FunctionRound.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRound.cpp' object='FunctionRound.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRound.lo `test -f 'src/functions/FunctionRound.cpp' || echo '$(srcdir)/'`src/functions/FunctionRound.cpp FunctionRoundHalfToEven.lo: src/functions/FunctionRoundHalfToEven.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRoundHalfToEven.lo -MD -MP -MF $(DEPDIR)/FunctionRoundHalfToEven.Tpo -c -o FunctionRoundHalfToEven.lo `test -f 'src/functions/FunctionRoundHalfToEven.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoundHalfToEven.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRoundHalfToEven.Tpo $(DEPDIR)/FunctionRoundHalfToEven.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRoundHalfToEven.cpp' object='FunctionRoundHalfToEven.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRoundHalfToEven.lo `test -f 'src/functions/FunctionRoundHalfToEven.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoundHalfToEven.cpp FunctionSin.lo: src/functions/FunctionSin.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSin.lo -MD -MP -MF $(DEPDIR)/FunctionSin.Tpo -c -o FunctionSin.lo `test -f 'src/functions/FunctionSin.cpp' || echo '$(srcdir)/'`src/functions/FunctionSin.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSin.Tpo $(DEPDIR)/FunctionSin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSin.cpp' object='FunctionSin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSin.lo `test -f 'src/functions/FunctionSin.cpp' || echo '$(srcdir)/'`src/functions/FunctionSin.cpp FunctionSqrt.lo: src/functions/FunctionSqrt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSqrt.lo -MD -MP -MF $(DEPDIR)/FunctionSqrt.Tpo -c -o FunctionSqrt.lo `test -f 'src/functions/FunctionSqrt.cpp' || echo '$(srcdir)/'`src/functions/FunctionSqrt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSqrt.Tpo $(DEPDIR)/FunctionSqrt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSqrt.cpp' object='FunctionSqrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSqrt.lo `test -f 'src/functions/FunctionSqrt.cpp' || echo '$(srcdir)/'`src/functions/FunctionSqrt.cpp FunctionTan.lo: src/functions/FunctionTan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTan.lo -MD -MP -MF $(DEPDIR)/FunctionTan.Tpo -c -o FunctionTan.lo `test -f 'src/functions/FunctionTan.cpp' || echo '$(srcdir)/'`src/functions/FunctionTan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTan.Tpo $(DEPDIR)/FunctionTan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTan.cpp' object='FunctionTan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTan.lo `test -f 'src/functions/FunctionTan.cpp' || echo '$(srcdir)/'`src/functions/FunctionTan.cpp FunctionSentences.lo: src/functions/FunctionSentences.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSentences.lo -MD -MP -MF $(DEPDIR)/FunctionSentences.Tpo -c -o FunctionSentences.lo `test -f 'src/functions/FunctionSentences.cpp' || echo '$(srcdir)/'`src/functions/FunctionSentences.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSentences.Tpo $(DEPDIR)/FunctionSentences.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSentences.cpp' object='FunctionSentences.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSentences.lo `test -f 'src/functions/FunctionSentences.cpp' || echo '$(srcdir)/'`src/functions/FunctionSentences.cpp FunctionStartsWith.lo: src/functions/FunctionStartsWith.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStartsWith.lo -MD -MP -MF $(DEPDIR)/FunctionStartsWith.Tpo -c -o FunctionStartsWith.lo `test -f 'src/functions/FunctionStartsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionStartsWith.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStartsWith.Tpo $(DEPDIR)/FunctionStartsWith.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStartsWith.cpp' object='FunctionStartsWith.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStartsWith.lo `test -f 'src/functions/FunctionStartsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionStartsWith.cpp FunctionStaticBaseURI.lo: src/functions/FunctionStaticBaseURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStaticBaseURI.lo -MD -MP -MF $(DEPDIR)/FunctionStaticBaseURI.Tpo -c -o FunctionStaticBaseURI.lo `test -f 'src/functions/FunctionStaticBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionStaticBaseURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStaticBaseURI.Tpo $(DEPDIR)/FunctionStaticBaseURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStaticBaseURI.cpp' object='FunctionStaticBaseURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStaticBaseURI.lo `test -f 'src/functions/FunctionStaticBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionStaticBaseURI.cpp FunctionString.lo: src/functions/FunctionString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionString.lo -MD -MP -MF $(DEPDIR)/FunctionString.Tpo -c -o FunctionString.lo `test -f 'src/functions/FunctionString.cpp' || echo '$(srcdir)/'`src/functions/FunctionString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionString.Tpo $(DEPDIR)/FunctionString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionString.cpp' object='FunctionString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionString.lo `test -f 'src/functions/FunctionString.cpp' || echo '$(srcdir)/'`src/functions/FunctionString.cpp FunctionStringLength.lo: src/functions/FunctionStringLength.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStringLength.lo -MD -MP -MF $(DEPDIR)/FunctionStringLength.Tpo -c -o FunctionStringLength.lo `test -f 'src/functions/FunctionStringLength.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringLength.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStringLength.Tpo $(DEPDIR)/FunctionStringLength.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStringLength.cpp' object='FunctionStringLength.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStringLength.lo `test -f 'src/functions/FunctionStringLength.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringLength.cpp FunctionStringToCodepoints.lo: src/functions/FunctionStringToCodepoints.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStringToCodepoints.lo -MD -MP -MF $(DEPDIR)/FunctionStringToCodepoints.Tpo -c -o FunctionStringToCodepoints.lo `test -f 'src/functions/FunctionStringToCodepoints.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringToCodepoints.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStringToCodepoints.Tpo $(DEPDIR)/FunctionStringToCodepoints.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStringToCodepoints.cpp' object='FunctionStringToCodepoints.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStringToCodepoints.lo `test -f 'src/functions/FunctionStringToCodepoints.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringToCodepoints.cpp FunctionSubstring.lo: src/functions/FunctionSubstring.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSubstring.lo -MD -MP -MF $(DEPDIR)/FunctionSubstring.Tpo -c -o FunctionSubstring.lo `test -f 'src/functions/FunctionSubstring.cpp' || echo '$(srcdir)/'`src/functions/FunctionSubstring.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSubstring.Tpo $(DEPDIR)/FunctionSubstring.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSubstring.cpp' object='FunctionSubstring.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSubstring.lo `test -f 'src/functions/FunctionSubstring.cpp' || echo '$(srcdir)/'`src/functions/FunctionSubstring.cpp FunctionTime.lo: src/functions/FunctionTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTime.lo -MD -MP -MF $(DEPDIR)/FunctionTime.Tpo -c -o FunctionTime.lo `test -f 'src/functions/FunctionTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTime.Tpo $(DEPDIR)/FunctionTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTime.cpp' object='FunctionTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTime.lo `test -f 'src/functions/FunctionTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTime.cpp FunctionTokenize.lo: src/functions/FunctionTokenize.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTokenize.lo -MD -MP -MF $(DEPDIR)/FunctionTokenize.Tpo -c -o FunctionTokenize.lo `test -f 'src/functions/FunctionTokenize.cpp' || echo '$(srcdir)/'`src/functions/FunctionTokenize.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTokenize.Tpo $(DEPDIR)/FunctionTokenize.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTokenize.cpp' object='FunctionTokenize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTokenize.lo `test -f 'src/functions/FunctionTokenize.cpp' || echo '$(srcdir)/'`src/functions/FunctionTokenize.cpp FunctionTrace.lo: src/functions/FunctionTrace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTrace.lo -MD -MP -MF $(DEPDIR)/FunctionTrace.Tpo -c -o FunctionTrace.lo `test -f 'src/functions/FunctionTrace.cpp' || echo '$(srcdir)/'`src/functions/FunctionTrace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTrace.Tpo $(DEPDIR)/FunctionTrace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTrace.cpp' object='FunctionTrace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTrace.lo `test -f 'src/functions/FunctionTrace.cpp' || echo '$(srcdir)/'`src/functions/FunctionTrace.cpp FunctionHead.lo: src/functions/FunctionHead.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHead.lo -MD -MP -MF $(DEPDIR)/FunctionHead.Tpo -c -o FunctionHead.lo `test -f 'src/functions/FunctionHead.cpp' || echo '$(srcdir)/'`src/functions/FunctionHead.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHead.Tpo $(DEPDIR)/FunctionHead.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHead.cpp' object='FunctionHead.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHead.lo `test -f 'src/functions/FunctionHead.cpp' || echo '$(srcdir)/'`src/functions/FunctionHead.cpp FunctionTail.lo: src/functions/FunctionTail.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTail.lo -MD -MP -MF $(DEPDIR)/FunctionTail.Tpo -c -o FunctionTail.lo `test -f 'src/functions/FunctionTail.cpp' || echo '$(srcdir)/'`src/functions/FunctionTail.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTail.Tpo $(DEPDIR)/FunctionTail.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTail.cpp' object='FunctionTail.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTail.lo `test -f 'src/functions/FunctionTail.cpp' || echo '$(srcdir)/'`src/functions/FunctionTail.cpp FunctionUnordered.lo: src/functions/FunctionUnordered.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUnordered.lo -MD -MP -MF $(DEPDIR)/FunctionUnordered.Tpo -c -o FunctionUnordered.lo `test -f 'src/functions/FunctionUnordered.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnordered.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUnordered.Tpo $(DEPDIR)/FunctionUnordered.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUnordered.cpp' object='FunctionUnordered.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUnordered.lo `test -f 'src/functions/FunctionUnordered.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnordered.cpp FunctionUnparsedText.lo: src/functions/FunctionUnparsedText.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUnparsedText.lo -MD -MP -MF $(DEPDIR)/FunctionUnparsedText.Tpo -c -o FunctionUnparsedText.lo `test -f 'src/functions/FunctionUnparsedText.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnparsedText.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUnparsedText.Tpo $(DEPDIR)/FunctionUnparsedText.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUnparsedText.cpp' object='FunctionUnparsedText.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUnparsedText.lo `test -f 'src/functions/FunctionUnparsedText.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnparsedText.cpp FunctionUpperCase.lo: src/functions/FunctionUpperCase.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUpperCase.lo -MD -MP -MF $(DEPDIR)/FunctionUpperCase.Tpo -c -o FunctionUpperCase.lo `test -f 'src/functions/FunctionUpperCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionUpperCase.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUpperCase.Tpo $(DEPDIR)/FunctionUpperCase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUpperCase.cpp' object='FunctionUpperCase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUpperCase.lo `test -f 'src/functions/FunctionUpperCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionUpperCase.cpp FunctionWords.lo: src/functions/FunctionWords.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionWords.lo -MD -MP -MF $(DEPDIR)/FunctionWords.Tpo -c -o FunctionWords.lo `test -f 'src/functions/FunctionWords.cpp' || echo '$(srcdir)/'`src/functions/FunctionWords.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionWords.Tpo $(DEPDIR)/FunctionWords.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionWords.cpp' object='FunctionWords.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionWords.lo `test -f 'src/functions/FunctionWords.cpp' || echo '$(srcdir)/'`src/functions/FunctionWords.cpp FunctionAdjustDateTimeToTimezone.lo: src/functions/FunctionAdjustDateTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustDateTimeToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Tpo -c -o FunctionAdjustDateTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustDateTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Tpo $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustDateTimeToTimezone.cpp' object='FunctionAdjustDateTimeToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustDateTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustDateTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateTimeToTimezone.cpp FunctionAdjustDateToTimezone.lo: src/functions/FunctionAdjustDateToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustDateToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustDateToTimezone.Tpo -c -o FunctionAdjustDateToTimezone.lo `test -f 'src/functions/FunctionAdjustDateToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustDateToTimezone.Tpo $(DEPDIR)/FunctionAdjustDateToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustDateToTimezone.cpp' object='FunctionAdjustDateToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustDateToTimezone.lo `test -f 'src/functions/FunctionAdjustDateToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateToTimezone.cpp FunctionAdjustTimeToTimezone.lo: src/functions/FunctionAdjustTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustTimeToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustTimeToTimezone.Tpo -c -o FunctionAdjustTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustTimeToTimezone.Tpo $(DEPDIR)/FunctionAdjustTimeToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustTimeToTimezone.cpp' object='FunctionAdjustTimeToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustTimeToTimezone.cpp FunctionDayFromDate.lo: src/functions/FunctionDayFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDayFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionDayFromDate.Tpo -c -o FunctionDayFromDate.lo `test -f 'src/functions/FunctionDayFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDayFromDate.Tpo $(DEPDIR)/FunctionDayFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDayFromDate.cpp' object='FunctionDayFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDayFromDate.lo `test -f 'src/functions/FunctionDayFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDate.cpp FunctionDayFromDateTime.lo: src/functions/FunctionDayFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDayFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionDayFromDateTime.Tpo -c -o FunctionDayFromDateTime.lo `test -f 'src/functions/FunctionDayFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDayFromDateTime.Tpo $(DEPDIR)/FunctionDayFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDayFromDateTime.cpp' object='FunctionDayFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDayFromDateTime.lo `test -f 'src/functions/FunctionDayFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDateTime.cpp FunctionDaysFromDuration.lo: src/functions/FunctionDaysFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDaysFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionDaysFromDuration.Tpo -c -o FunctionDaysFromDuration.lo `test -f 'src/functions/FunctionDaysFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionDaysFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDaysFromDuration.Tpo $(DEPDIR)/FunctionDaysFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDaysFromDuration.cpp' object='FunctionDaysFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDaysFromDuration.lo `test -f 'src/functions/FunctionDaysFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionDaysFromDuration.cpp FunctionHoursFromDateTime.lo: src/functions/FunctionHoursFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromDateTime.Tpo -c -o FunctionHoursFromDateTime.lo `test -f 'src/functions/FunctionHoursFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromDateTime.Tpo $(DEPDIR)/FunctionHoursFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromDateTime.cpp' object='FunctionHoursFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromDateTime.lo `test -f 'src/functions/FunctionHoursFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDateTime.cpp FunctionHoursFromDuration.lo: src/functions/FunctionHoursFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromDuration.Tpo -c -o FunctionHoursFromDuration.lo `test -f 'src/functions/FunctionHoursFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromDuration.Tpo $(DEPDIR)/FunctionHoursFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromDuration.cpp' object='FunctionHoursFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromDuration.lo `test -f 'src/functions/FunctionHoursFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDuration.cpp FunctionHoursFromTime.lo: src/functions/FunctionHoursFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromTime.Tpo -c -o FunctionHoursFromTime.lo `test -f 'src/functions/FunctionHoursFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromTime.Tpo $(DEPDIR)/FunctionHoursFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromTime.cpp' object='FunctionHoursFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromTime.lo `test -f 'src/functions/FunctionHoursFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromTime.cpp FunctionMinutesFromDateTime.lo: src/functions/FunctionMinutesFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromDateTime.Tpo -c -o FunctionMinutesFromDateTime.lo `test -f 'src/functions/FunctionMinutesFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromDateTime.Tpo $(DEPDIR)/FunctionMinutesFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromDateTime.cpp' object='FunctionMinutesFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromDateTime.lo `test -f 'src/functions/FunctionMinutesFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDateTime.cpp FunctionMinutesFromDuration.lo: src/functions/FunctionMinutesFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromDuration.Tpo -c -o FunctionMinutesFromDuration.lo `test -f 'src/functions/FunctionMinutesFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromDuration.Tpo $(DEPDIR)/FunctionMinutesFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromDuration.cpp' object='FunctionMinutesFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromDuration.lo `test -f 'src/functions/FunctionMinutesFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDuration.cpp FunctionMinutesFromTime.lo: src/functions/FunctionMinutesFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromTime.Tpo -c -o FunctionMinutesFromTime.lo `test -f 'src/functions/FunctionMinutesFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromTime.Tpo $(DEPDIR)/FunctionMinutesFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromTime.cpp' object='FunctionMinutesFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromTime.lo `test -f 'src/functions/FunctionMinutesFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromTime.cpp FunctionMonthFromDate.lo: src/functions/FunctionMonthFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionMonthFromDate.Tpo -c -o FunctionMonthFromDate.lo `test -f 'src/functions/FunctionMonthFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthFromDate.Tpo $(DEPDIR)/FunctionMonthFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthFromDate.cpp' object='FunctionMonthFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthFromDate.lo `test -f 'src/functions/FunctionMonthFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDate.cpp FunctionMonthFromDateTime.lo: src/functions/FunctionMonthFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionMonthFromDateTime.Tpo -c -o FunctionMonthFromDateTime.lo `test -f 'src/functions/FunctionMonthFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthFromDateTime.Tpo $(DEPDIR)/FunctionMonthFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthFromDateTime.cpp' object='FunctionMonthFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthFromDateTime.lo `test -f 'src/functions/FunctionMonthFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDateTime.cpp FunctionMonthsFromDuration.lo: src/functions/FunctionMonthsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionMonthsFromDuration.Tpo -c -o FunctionMonthsFromDuration.lo `test -f 'src/functions/FunctionMonthsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthsFromDuration.Tpo $(DEPDIR)/FunctionMonthsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthsFromDuration.cpp' object='FunctionMonthsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthsFromDuration.lo `test -f 'src/functions/FunctionMonthsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthsFromDuration.cpp FunctionSecondsFromDateTime.lo: src/functions/FunctionSecondsFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromDateTime.Tpo -c -o FunctionSecondsFromDateTime.lo `test -f 'src/functions/FunctionSecondsFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromDateTime.Tpo $(DEPDIR)/FunctionSecondsFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromDateTime.cpp' object='FunctionSecondsFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromDateTime.lo `test -f 'src/functions/FunctionSecondsFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDateTime.cpp FunctionSecondsFromDuration.lo: src/functions/FunctionSecondsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromDuration.Tpo -c -o FunctionSecondsFromDuration.lo `test -f 'src/functions/FunctionSecondsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromDuration.Tpo $(DEPDIR)/FunctionSecondsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromDuration.cpp' object='FunctionSecondsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromDuration.lo `test -f 'src/functions/FunctionSecondsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDuration.cpp FunctionSecondsFromTime.lo: src/functions/FunctionSecondsFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromTime.Tpo -c -o FunctionSecondsFromTime.lo `test -f 'src/functions/FunctionSecondsFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromTime.Tpo $(DEPDIR)/FunctionSecondsFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromTime.cpp' object='FunctionSecondsFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromTime.lo `test -f 'src/functions/FunctionSecondsFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromTime.cpp FunctionTimezoneFromDate.lo: src/functions/FunctionTimezoneFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromDate.Tpo -c -o FunctionTimezoneFromDate.lo `test -f 'src/functions/FunctionTimezoneFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromDate.Tpo $(DEPDIR)/FunctionTimezoneFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromDate.cpp' object='FunctionTimezoneFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromDate.lo `test -f 'src/functions/FunctionTimezoneFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDate.cpp FunctionTimezoneFromDateTime.lo: src/functions/FunctionTimezoneFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromDateTime.Tpo -c -o FunctionTimezoneFromDateTime.lo `test -f 'src/functions/FunctionTimezoneFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromDateTime.Tpo $(DEPDIR)/FunctionTimezoneFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromDateTime.cpp' object='FunctionTimezoneFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromDateTime.lo `test -f 'src/functions/FunctionTimezoneFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDateTime.cpp FunctionTimezoneFromTime.lo: src/functions/FunctionTimezoneFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromTime.Tpo -c -o FunctionTimezoneFromTime.lo `test -f 'src/functions/FunctionTimezoneFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromTime.Tpo $(DEPDIR)/FunctionTimezoneFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromTime.cpp' object='FunctionTimezoneFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromTime.lo `test -f 'src/functions/FunctionTimezoneFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromTime.cpp FunctionYearFromDate.lo: src/functions/FunctionYearFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionYearFromDate.Tpo -c -o FunctionYearFromDate.lo `test -f 'src/functions/FunctionYearFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearFromDate.Tpo $(DEPDIR)/FunctionYearFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearFromDate.cpp' object='FunctionYearFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearFromDate.lo `test -f 'src/functions/FunctionYearFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDate.cpp FunctionYearFromDateTime.lo: src/functions/FunctionYearFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionYearFromDateTime.Tpo -c -o FunctionYearFromDateTime.lo `test -f 'src/functions/FunctionYearFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearFromDateTime.Tpo $(DEPDIR)/FunctionYearFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearFromDateTime.cpp' object='FunctionYearFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearFromDateTime.lo `test -f 'src/functions/FunctionYearFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDateTime.cpp FunctionYearsFromDuration.lo: src/functions/FunctionYearsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionYearsFromDuration.Tpo -c -o FunctionYearsFromDuration.lo `test -f 'src/functions/FunctionYearsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearsFromDuration.Tpo $(DEPDIR)/FunctionYearsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearsFromDuration.cpp' object='FunctionYearsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearsFromDuration.lo `test -f 'src/functions/FunctionYearsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearsFromDuration.cpp FunctionParseJSON.lo: src/functions/FunctionParseJSON.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseJSON.lo -MD -MP -MF $(DEPDIR)/FunctionParseJSON.Tpo -c -o FunctionParseJSON.lo `test -f 'src/functions/FunctionParseJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseJSON.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseJSON.Tpo $(DEPDIR)/FunctionParseJSON.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseJSON.cpp' object='FunctionParseJSON.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseJSON.lo `test -f 'src/functions/FunctionParseJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseJSON.cpp FunctionSerializeJSON.lo: src/functions/FunctionSerializeJSON.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSerializeJSON.lo -MD -MP -MF $(DEPDIR)/FunctionSerializeJSON.Tpo -c -o FunctionSerializeJSON.lo `test -f 'src/functions/FunctionSerializeJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionSerializeJSON.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSerializeJSON.Tpo $(DEPDIR)/FunctionSerializeJSON.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSerializeJSON.cpp' object='FunctionSerializeJSON.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSerializeJSON.lo `test -f 'src/functions/FunctionSerializeJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionSerializeJSON.cpp FunctionParseHTML.lo: src/functions/FunctionParseHTML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseHTML.lo -MD -MP -MF $(DEPDIR)/FunctionParseHTML.Tpo -c -o FunctionParseHTML.lo `test -f 'src/functions/FunctionParseHTML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseHTML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseHTML.Tpo $(DEPDIR)/FunctionParseHTML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseHTML.cpp' object='FunctionParseHTML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseHTML.lo `test -f 'src/functions/FunctionParseHTML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseHTML.cpp FunctionExplain.lo: src/functions/FunctionExplain.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionExplain.lo -MD -MP -MF $(DEPDIR)/FunctionExplain.Tpo -c -o FunctionExplain.lo `test -f 'src/functions/FunctionExplain.cpp' || echo '$(srcdir)/'`src/functions/FunctionExplain.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionExplain.Tpo $(DEPDIR)/FunctionExplain.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionExplain.cpp' object='FunctionExplain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionExplain.lo `test -f 'src/functions/FunctionExplain.cpp' || echo '$(srcdir)/'`src/functions/FunctionExplain.cpp FunctionAnalyzeString.lo: src/functions/FunctionAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAnalyzeString.lo -MD -MP -MF $(DEPDIR)/FunctionAnalyzeString.Tpo -c -o FunctionAnalyzeString.lo `test -f 'src/functions/FunctionAnalyzeString.cpp' || echo '$(srcdir)/'`src/functions/FunctionAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAnalyzeString.Tpo $(DEPDIR)/FunctionAnalyzeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAnalyzeString.cpp' object='FunctionAnalyzeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAnalyzeString.lo `test -f 'src/functions/FunctionAnalyzeString.cpp' || echo '$(srcdir)/'`src/functions/FunctionAnalyzeString.cpp RegExpFunction.lo: src/functions/RegExpFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegExpFunction.lo -MD -MP -MF $(DEPDIR)/RegExpFunction.Tpo -c -o RegExpFunction.lo `test -f 'src/functions/RegExpFunction.cpp' || echo '$(srcdir)/'`src/functions/RegExpFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/RegExpFunction.Tpo $(DEPDIR)/RegExpFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/RegExpFunction.cpp' object='RegExpFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RegExpFunction.lo `test -f 'src/functions/RegExpFunction.cpp' || echo '$(srcdir)/'`src/functions/RegExpFunction.cpp XQUserFunction.lo: src/functions/XQUserFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQUserFunction.lo -MD -MP -MF $(DEPDIR)/XQUserFunction.Tpo -c -o XQUserFunction.lo `test -f 'src/functions/XQUserFunction.cpp' || echo '$(srcdir)/'`src/functions/XQUserFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQUserFunction.Tpo $(DEPDIR)/XQUserFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/XQUserFunction.cpp' object='XQUserFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQUserFunction.lo `test -f 'src/functions/XQUserFunction.cpp' || echo '$(srcdir)/'`src/functions/XQUserFunction.cpp FunctionSignature.lo: src/functions/FunctionSignature.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSignature.lo -MD -MP -MF $(DEPDIR)/FunctionSignature.Tpo -c -o FunctionSignature.lo `test -f 'src/functions/FunctionSignature.cpp' || echo '$(srcdir)/'`src/functions/FunctionSignature.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSignature.Tpo $(DEPDIR)/FunctionSignature.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSignature.cpp' object='FunctionSignature.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSignature.lo `test -f 'src/functions/FunctionSignature.cpp' || echo '$(srcdir)/'`src/functions/FunctionSignature.cpp BuiltInModules.lo: src/functions/BuiltInModules.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BuiltInModules.lo -MD -MP -MF $(DEPDIR)/BuiltInModules.Tpo -c -o BuiltInModules.lo `test -f 'src/functions/BuiltInModules.cpp' || echo '$(srcdir)/'`src/functions/BuiltInModules.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/BuiltInModules.Tpo $(DEPDIR)/BuiltInModules.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/BuiltInModules.cpp' object='BuiltInModules.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BuiltInModules.lo `test -f 'src/functions/BuiltInModules.cpp' || echo '$(srcdir)/'`src/functions/BuiltInModules.cpp ATAnySimpleTypeImpl.lo: src/items/impl/ATAnySimpleTypeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATAnySimpleTypeImpl.lo -MD -MP -MF $(DEPDIR)/ATAnySimpleTypeImpl.Tpo -c -o ATAnySimpleTypeImpl.lo `test -f 'src/items/impl/ATAnySimpleTypeImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnySimpleTypeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATAnySimpleTypeImpl.Tpo $(DEPDIR)/ATAnySimpleTypeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATAnySimpleTypeImpl.cpp' object='ATAnySimpleTypeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATAnySimpleTypeImpl.lo `test -f 'src/items/impl/ATAnySimpleTypeImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnySimpleTypeImpl.cpp ATAnyURIOrDerivedImpl.lo: src/items/impl/ATAnyURIOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATAnyURIOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATAnyURIOrDerivedImpl.Tpo -c -o ATAnyURIOrDerivedImpl.lo `test -f 'src/items/impl/ATAnyURIOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnyURIOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATAnyURIOrDerivedImpl.Tpo $(DEPDIR)/ATAnyURIOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATAnyURIOrDerivedImpl.cpp' object='ATAnyURIOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATAnyURIOrDerivedImpl.lo `test -f 'src/items/impl/ATAnyURIOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnyURIOrDerivedImpl.cpp ATBase64BinaryOrDerivedImpl.lo: src/items/impl/ATBase64BinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATBase64BinaryOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Tpo -c -o ATBase64BinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBase64BinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Tpo $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' object='ATBase64BinaryOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATBase64BinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBase64BinaryOrDerivedImpl.cpp ATBooleanOrDerivedImpl.lo: src/items/impl/ATBooleanOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATBooleanOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATBooleanOrDerivedImpl.Tpo -c -o ATBooleanOrDerivedImpl.lo `test -f 'src/items/impl/ATBooleanOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBooleanOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATBooleanOrDerivedImpl.Tpo $(DEPDIR)/ATBooleanOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATBooleanOrDerivedImpl.cpp' object='ATBooleanOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATBooleanOrDerivedImpl.lo `test -f 'src/items/impl/ATBooleanOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBooleanOrDerivedImpl.cpp ATDateOrDerivedImpl.lo: src/items/impl/ATDateOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDateOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDateOrDerivedImpl.Tpo -c -o ATDateOrDerivedImpl.lo `test -f 'src/items/impl/ATDateOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDateOrDerivedImpl.Tpo $(DEPDIR)/ATDateOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDateOrDerivedImpl.cpp' object='ATDateOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDateOrDerivedImpl.lo `test -f 'src/items/impl/ATDateOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateOrDerivedImpl.cpp ATDateTimeOrDerivedImpl.lo: src/items/impl/ATDateTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDateTimeOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDateTimeOrDerivedImpl.Tpo -c -o ATDateTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATDateTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDateTimeOrDerivedImpl.Tpo $(DEPDIR)/ATDateTimeOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDateTimeOrDerivedImpl.cpp' object='ATDateTimeOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDateTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATDateTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateTimeOrDerivedImpl.cpp ATDecimalOrDerivedImpl.lo: src/items/impl/ATDecimalOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDecimalOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDecimalOrDerivedImpl.Tpo -c -o ATDecimalOrDerivedImpl.lo `test -f 'src/items/impl/ATDecimalOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDecimalOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDecimalOrDerivedImpl.Tpo $(DEPDIR)/ATDecimalOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDecimalOrDerivedImpl.cpp' object='ATDecimalOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDecimalOrDerivedImpl.lo `test -f 'src/items/impl/ATDecimalOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDecimalOrDerivedImpl.cpp ATDoubleOrDerivedImpl.lo: src/items/impl/ATDoubleOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDoubleOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDoubleOrDerivedImpl.Tpo -c -o ATDoubleOrDerivedImpl.lo `test -f 'src/items/impl/ATDoubleOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDoubleOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDoubleOrDerivedImpl.Tpo $(DEPDIR)/ATDoubleOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDoubleOrDerivedImpl.cpp' object='ATDoubleOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDoubleOrDerivedImpl.lo `test -f 'src/items/impl/ATDoubleOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDoubleOrDerivedImpl.cpp ATDurationOrDerivedImpl.lo: src/items/impl/ATDurationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDurationOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDurationOrDerivedImpl.Tpo -c -o ATDurationOrDerivedImpl.lo `test -f 'src/items/impl/ATDurationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDurationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDurationOrDerivedImpl.Tpo $(DEPDIR)/ATDurationOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDurationOrDerivedImpl.cpp' object='ATDurationOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDurationOrDerivedImpl.lo `test -f 'src/items/impl/ATDurationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDurationOrDerivedImpl.cpp ATFloatOrDerivedImpl.lo: src/items/impl/ATFloatOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATFloatOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATFloatOrDerivedImpl.Tpo -c -o ATFloatOrDerivedImpl.lo `test -f 'src/items/impl/ATFloatOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATFloatOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATFloatOrDerivedImpl.Tpo $(DEPDIR)/ATFloatOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATFloatOrDerivedImpl.cpp' object='ATFloatOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATFloatOrDerivedImpl.lo `test -f 'src/items/impl/ATFloatOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATFloatOrDerivedImpl.cpp ATGDayOrDerivedImpl.lo: src/items/impl/ATGDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGDayOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGDayOrDerivedImpl.Tpo -c -o ATGDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGDayOrDerivedImpl.Tpo $(DEPDIR)/ATGDayOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGDayOrDerivedImpl.cpp' object='ATGDayOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGDayOrDerivedImpl.cpp ATGMonthDayOrDerivedImpl.lo: src/items/impl/ATGMonthDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGMonthDayOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGMonthDayOrDerivedImpl.Tpo -c -o ATGMonthDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGMonthDayOrDerivedImpl.Tpo $(DEPDIR)/ATGMonthDayOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGMonthDayOrDerivedImpl.cpp' object='ATGMonthDayOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGMonthDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthDayOrDerivedImpl.cpp ATGMonthOrDerivedImpl.lo: src/items/impl/ATGMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGMonthOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGMonthOrDerivedImpl.Tpo -c -o ATGMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGMonthOrDerivedImpl.Tpo $(DEPDIR)/ATGMonthOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGMonthOrDerivedImpl.cpp' object='ATGMonthOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthOrDerivedImpl.cpp ATGYearMonthOrDerivedImpl.lo: src/items/impl/ATGYearMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGYearMonthOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGYearMonthOrDerivedImpl.Tpo -c -o ATGYearMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGYearMonthOrDerivedImpl.Tpo $(DEPDIR)/ATGYearMonthOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGYearMonthOrDerivedImpl.cpp' object='ATGYearMonthOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGYearMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearMonthOrDerivedImpl.cpp ATGYearOrDerivedImpl.lo: src/items/impl/ATGYearOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGYearOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGYearOrDerivedImpl.Tpo -c -o ATGYearOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGYearOrDerivedImpl.Tpo $(DEPDIR)/ATGYearOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGYearOrDerivedImpl.cpp' object='ATGYearOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGYearOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearOrDerivedImpl.cpp ATHexBinaryOrDerivedImpl.lo: src/items/impl/ATHexBinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATHexBinaryOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATHexBinaryOrDerivedImpl.Tpo -c -o ATHexBinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATHexBinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATHexBinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATHexBinaryOrDerivedImpl.Tpo $(DEPDIR)/ATHexBinaryOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATHexBinaryOrDerivedImpl.cpp' object='ATHexBinaryOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATHexBinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATHexBinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATHexBinaryOrDerivedImpl.cpp ATNotationOrDerivedImpl.lo: src/items/impl/ATNotationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATNotationOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATNotationOrDerivedImpl.Tpo -c -o ATNotationOrDerivedImpl.lo `test -f 'src/items/impl/ATNotationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATNotationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATNotationOrDerivedImpl.Tpo $(DEPDIR)/ATNotationOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATNotationOrDerivedImpl.cpp' object='ATNotationOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATNotationOrDerivedImpl.lo `test -f 'src/items/impl/ATNotationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATNotationOrDerivedImpl.cpp ATQNameOrDerivedImpl.lo: src/items/impl/ATQNameOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATQNameOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATQNameOrDerivedImpl.Tpo -c -o ATQNameOrDerivedImpl.lo `test -f 'src/items/impl/ATQNameOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATQNameOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATQNameOrDerivedImpl.Tpo $(DEPDIR)/ATQNameOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATQNameOrDerivedImpl.cpp' object='ATQNameOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATQNameOrDerivedImpl.lo `test -f 'src/items/impl/ATQNameOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATQNameOrDerivedImpl.cpp ATStringOrDerivedImpl.lo: src/items/impl/ATStringOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATStringOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATStringOrDerivedImpl.Tpo -c -o ATStringOrDerivedImpl.lo `test -f 'src/items/impl/ATStringOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATStringOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATStringOrDerivedImpl.Tpo $(DEPDIR)/ATStringOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATStringOrDerivedImpl.cpp' object='ATStringOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATStringOrDerivedImpl.lo `test -f 'src/items/impl/ATStringOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATStringOrDerivedImpl.cpp ATTimeOrDerivedImpl.lo: src/items/impl/ATTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATTimeOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATTimeOrDerivedImpl.Tpo -c -o ATTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATTimeOrDerivedImpl.Tpo $(DEPDIR)/ATTimeOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATTimeOrDerivedImpl.cpp' object='ATTimeOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATTimeOrDerivedImpl.cpp ATUntypedAtomicImpl.lo: src/items/impl/ATUntypedAtomicImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATUntypedAtomicImpl.lo -MD -MP -MF $(DEPDIR)/ATUntypedAtomicImpl.Tpo -c -o ATUntypedAtomicImpl.lo `test -f 'src/items/impl/ATUntypedAtomicImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATUntypedAtomicImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATUntypedAtomicImpl.Tpo $(DEPDIR)/ATUntypedAtomicImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATUntypedAtomicImpl.cpp' object='ATUntypedAtomicImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATUntypedAtomicImpl.lo `test -f 'src/items/impl/ATUntypedAtomicImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATUntypedAtomicImpl.cpp FunctionRefImpl.lo: src/items/impl/FunctionRefImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRefImpl.lo -MD -MP -MF $(DEPDIR)/FunctionRefImpl.Tpo -c -o FunctionRefImpl.lo `test -f 'src/items/impl/FunctionRefImpl.cpp' || echo '$(srcdir)/'`src/items/impl/FunctionRefImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRefImpl.Tpo $(DEPDIR)/FunctionRefImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/FunctionRefImpl.cpp' object='FunctionRefImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRefImpl.lo `test -f 'src/items/impl/FunctionRefImpl.cpp' || echo '$(srcdir)/'`src/items/impl/FunctionRefImpl.cpp DatatypeFactory.lo: src/items/DatatypeFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DatatypeFactory.lo -MD -MP -MF $(DEPDIR)/DatatypeFactory.Tpo -c -o DatatypeFactory.lo `test -f 'src/items/DatatypeFactory.cpp' || echo '$(srcdir)/'`src/items/DatatypeFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DatatypeFactory.Tpo $(DEPDIR)/DatatypeFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DatatypeFactory.cpp' object='DatatypeFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DatatypeFactory.lo `test -f 'src/items/DatatypeFactory.cpp' || echo '$(srcdir)/'`src/items/DatatypeFactory.cpp DatatypeLookup.lo: src/items/DatatypeLookup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DatatypeLookup.lo -MD -MP -MF $(DEPDIR)/DatatypeLookup.Tpo -c -o DatatypeLookup.lo `test -f 'src/items/DatatypeLookup.cpp' || echo '$(srcdir)/'`src/items/DatatypeLookup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DatatypeLookup.Tpo $(DEPDIR)/DatatypeLookup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DatatypeLookup.cpp' object='DatatypeLookup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DatatypeLookup.lo `test -f 'src/items/DatatypeLookup.cpp' || echo '$(srcdir)/'`src/items/DatatypeLookup.cpp AnyAtomicType.lo: src/items/AnyAtomicType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AnyAtomicType.lo -MD -MP -MF $(DEPDIR)/AnyAtomicType.Tpo -c -o AnyAtomicType.lo `test -f 'src/items/AnyAtomicType.cpp' || echo '$(srcdir)/'`src/items/AnyAtomicType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AnyAtomicType.Tpo $(DEPDIR)/AnyAtomicType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/AnyAtomicType.cpp' object='AnyAtomicType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AnyAtomicType.lo `test -f 'src/items/AnyAtomicType.cpp' || echo '$(srcdir)/'`src/items/AnyAtomicType.cpp ATDurationOrDerived.lo: src/items/ATDurationOrDerived.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDurationOrDerived.lo -MD -MP -MF $(DEPDIR)/ATDurationOrDerived.Tpo -c -o ATDurationOrDerived.lo `test -f 'src/items/ATDurationOrDerived.cpp' || echo '$(srcdir)/'`src/items/ATDurationOrDerived.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDurationOrDerived.Tpo $(DEPDIR)/ATDurationOrDerived.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/ATDurationOrDerived.cpp' object='ATDurationOrDerived.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDurationOrDerived.lo `test -f 'src/items/ATDurationOrDerived.cpp' || echo '$(srcdir)/'`src/items/ATDurationOrDerived.cpp ATUntypedAtomic.lo: src/items/ATUntypedAtomic.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATUntypedAtomic.lo -MD -MP -MF $(DEPDIR)/ATUntypedAtomic.Tpo -c -o ATUntypedAtomic.lo `test -f 'src/items/ATUntypedAtomic.cpp' || echo '$(srcdir)/'`src/items/ATUntypedAtomic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATUntypedAtomic.Tpo $(DEPDIR)/ATUntypedAtomic.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/ATUntypedAtomic.cpp' object='ATUntypedAtomic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATUntypedAtomic.lo `test -f 'src/items/ATUntypedAtomic.cpp' || echo '$(srcdir)/'`src/items/ATUntypedAtomic.cpp DateOrTimeType.lo: src/items/DateOrTimeType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DateOrTimeType.lo -MD -MP -MF $(DEPDIR)/DateOrTimeType.Tpo -c -o DateOrTimeType.lo `test -f 'src/items/DateOrTimeType.cpp' || echo '$(srcdir)/'`src/items/DateOrTimeType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DateOrTimeType.Tpo $(DEPDIR)/DateOrTimeType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DateOrTimeType.cpp' object='DateOrTimeType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DateOrTimeType.lo `test -f 'src/items/DateOrTimeType.cpp' || echo '$(srcdir)/'`src/items/DateOrTimeType.cpp Item.lo: src/items/Item.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Item.lo -MD -MP -MF $(DEPDIR)/Item.Tpo -c -o Item.lo `test -f 'src/items/Item.cpp' || echo '$(srcdir)/'`src/items/Item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Item.Tpo $(DEPDIR)/Item.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Item.cpp' object='Item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Item.lo `test -f 'src/items/Item.cpp' || echo '$(srcdir)/'`src/items/Item.cpp Node.lo: src/items/Node.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Node.lo -MD -MP -MF $(DEPDIR)/Node.Tpo -c -o Node.lo `test -f 'src/items/Node.cpp' || echo '$(srcdir)/'`src/items/Node.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Node.Tpo $(DEPDIR)/Node.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Node.cpp' object='Node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Node.lo `test -f 'src/items/Node.cpp' || echo '$(srcdir)/'`src/items/Node.cpp Numeric.lo: src/items/Numeric.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Numeric.lo -MD -MP -MF $(DEPDIR)/Numeric.Tpo -c -o Numeric.lo `test -f 'src/items/Numeric.cpp' || echo '$(srcdir)/'`src/items/Numeric.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Numeric.Tpo $(DEPDIR)/Numeric.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Numeric.cpp' object='Numeric.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Numeric.lo `test -f 'src/items/Numeric.cpp' || echo '$(srcdir)/'`src/items/Numeric.cpp Timezone.lo: src/items/Timezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Timezone.lo -MD -MP -MF $(DEPDIR)/Timezone.Tpo -c -o Timezone.lo `test -f 'src/items/Timezone.cpp' || echo '$(srcdir)/'`src/items/Timezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Timezone.Tpo $(DEPDIR)/Timezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Timezone.cpp' object='Timezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Timezone.lo `test -f 'src/items/Timezone.cpp' || echo '$(srcdir)/'`src/items/Timezone.cpp QName.lo: src/parser/QName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QName.lo -MD -MP -MF $(DEPDIR)/QName.Tpo -c -o QName.lo `test -f 'src/parser/QName.cpp' || echo '$(srcdir)/'`src/parser/QName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QName.Tpo $(DEPDIR)/QName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/parser/QName.cpp' object='QName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QName.lo `test -f 'src/parser/QName.cpp' || echo '$(srcdir)/'`src/parser/QName.cpp XQParser.lo: src/parser/XQParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQParser.lo -MD -MP -MF $(DEPDIR)/XQParser.Tpo -c -o XQParser.lo `test -f 'src/parser/XQParser.cpp' || echo '$(srcdir)/'`src/parser/XQParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQParser.Tpo $(DEPDIR)/XQParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/parser/XQParser.cpp' object='XQParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQParser.lo `test -f 'src/parser/XQParser.cpp' || echo '$(srcdir)/'`src/parser/XQParser.cpp XQLexer.lo: src/lexer/XQLexer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLexer.lo -MD -MP -MF $(DEPDIR)/XQLexer.Tpo -c -o XQLexer.lo `test -f 'src/lexer/XQLexer.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLexer.Tpo $(DEPDIR)/XQLexer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XQLexer.cpp' object='XQLexer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLexer.lo `test -f 'src/lexer/XQLexer.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer.cpp XQLexer2.lo: src/lexer/XQLexer2.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLexer2.lo -MD -MP -MF $(DEPDIR)/XQLexer2.Tpo -c -o XQLexer2.lo `test -f 'src/lexer/XQLexer2.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer2.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLexer2.Tpo $(DEPDIR)/XQLexer2.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XQLexer2.cpp' object='XQLexer2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLexer2.lo `test -f 'src/lexer/XQLexer2.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer2.cpp XSLT2Lexer.lo: src/lexer/XSLT2Lexer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XSLT2Lexer.lo -MD -MP -MF $(DEPDIR)/XSLT2Lexer.Tpo -c -o XSLT2Lexer.lo `test -f 'src/lexer/XSLT2Lexer.cpp' || echo '$(srcdir)/'`src/lexer/XSLT2Lexer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XSLT2Lexer.Tpo $(DEPDIR)/XSLT2Lexer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XSLT2Lexer.cpp' object='XSLT2Lexer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XSLT2Lexer.lo `test -f 'src/lexer/XSLT2Lexer.cpp' || echo '$(srcdir)/'`src/lexer/XSLT2Lexer.cpp m_apm.lo: src/mapm/m_apm.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT m_apm.lo -MD -MP -MF $(DEPDIR)/m_apm.Tpo -c -o m_apm.lo `test -f 'src/mapm/m_apm.cpp' || echo '$(srcdir)/'`src/mapm/m_apm.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/m_apm.Tpo $(DEPDIR)/m_apm.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/mapm/m_apm.cpp' object='m_apm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o m_apm.lo `test -f 'src/mapm/m_apm.cpp' || echo '$(srcdir)/'`src/mapm/m_apm.cpp mapm_mt.lo: src/mapm/mapm_mt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mapm_mt.lo -MD -MP -MF $(DEPDIR)/mapm_mt.Tpo -c -o mapm_mt.lo `test -f 'src/mapm/mapm_mt.cpp' || echo '$(srcdir)/'`src/mapm/mapm_mt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mapm_mt.Tpo $(DEPDIR)/mapm_mt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/mapm/mapm_mt.cpp' object='mapm_mt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mapm_mt.lo `test -f 'src/mapm/mapm_mt.cpp' || echo '$(srcdir)/'`src/mapm/mapm_mt.cpp NodeTest.lo: src/axis/NodeTest.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NodeTest.lo -MD -MP -MF $(DEPDIR)/NodeTest.Tpo -c -o NodeTest.lo `test -f 'src/axis/NodeTest.cpp' || echo '$(srcdir)/'`src/axis/NodeTest.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NodeTest.Tpo $(DEPDIR)/NodeTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/axis/NodeTest.cpp' object='NodeTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NodeTest.lo `test -f 'src/axis/NodeTest.cpp' || echo '$(srcdir)/'`src/axis/NodeTest.cpp And.lo: src/operators/And.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT And.lo -MD -MP -MF $(DEPDIR)/And.Tpo -c -o And.lo `test -f 'src/operators/And.cpp' || echo '$(srcdir)/'`src/operators/And.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/And.Tpo $(DEPDIR)/And.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/And.cpp' object='And.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o And.lo `test -f 'src/operators/And.cpp' || echo '$(srcdir)/'`src/operators/And.cpp ArithmeticOperator.lo: src/operators/ArithmeticOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ArithmeticOperator.lo -MD -MP -MF $(DEPDIR)/ArithmeticOperator.Tpo -c -o ArithmeticOperator.lo `test -f 'src/operators/ArithmeticOperator.cpp' || echo '$(srcdir)/'`src/operators/ArithmeticOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ArithmeticOperator.Tpo $(DEPDIR)/ArithmeticOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/ArithmeticOperator.cpp' object='ArithmeticOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ArithmeticOperator.lo `test -f 'src/operators/ArithmeticOperator.cpp' || echo '$(srcdir)/'`src/operators/ArithmeticOperator.cpp ComparisonOperator.lo: src/operators/ComparisonOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ComparisonOperator.lo -MD -MP -MF $(DEPDIR)/ComparisonOperator.Tpo -c -o ComparisonOperator.lo `test -f 'src/operators/ComparisonOperator.cpp' || echo '$(srcdir)/'`src/operators/ComparisonOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ComparisonOperator.Tpo $(DEPDIR)/ComparisonOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/ComparisonOperator.cpp' object='ComparisonOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ComparisonOperator.lo `test -f 'src/operators/ComparisonOperator.cpp' || echo '$(srcdir)/'`src/operators/ComparisonOperator.cpp Divide.lo: src/operators/Divide.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Divide.lo -MD -MP -MF $(DEPDIR)/Divide.Tpo -c -o Divide.lo `test -f 'src/operators/Divide.cpp' || echo '$(srcdir)/'`src/operators/Divide.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Divide.Tpo $(DEPDIR)/Divide.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Divide.cpp' object='Divide.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Divide.lo `test -f 'src/operators/Divide.cpp' || echo '$(srcdir)/'`src/operators/Divide.cpp Equals.lo: src/operators/Equals.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Equals.lo -MD -MP -MF $(DEPDIR)/Equals.Tpo -c -o Equals.lo `test -f 'src/operators/Equals.cpp' || echo '$(srcdir)/'`src/operators/Equals.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Equals.Tpo $(DEPDIR)/Equals.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Equals.cpp' object='Equals.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Equals.lo `test -f 'src/operators/Equals.cpp' || echo '$(srcdir)/'`src/operators/Equals.cpp Except.lo: src/operators/Except.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Except.lo -MD -MP -MF $(DEPDIR)/Except.Tpo -c -o Except.lo `test -f 'src/operators/Except.cpp' || echo '$(srcdir)/'`src/operators/Except.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Except.Tpo $(DEPDIR)/Except.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Except.cpp' object='Except.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Except.lo `test -f 'src/operators/Except.cpp' || echo '$(srcdir)/'`src/operators/Except.cpp GeneralComp.lo: src/operators/GeneralComp.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GeneralComp.lo -MD -MP -MF $(DEPDIR)/GeneralComp.Tpo -c -o GeneralComp.lo `test -f 'src/operators/GeneralComp.cpp' || echo '$(srcdir)/'`src/operators/GeneralComp.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GeneralComp.Tpo $(DEPDIR)/GeneralComp.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GeneralComp.cpp' object='GeneralComp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GeneralComp.lo `test -f 'src/operators/GeneralComp.cpp' || echo '$(srcdir)/'`src/operators/GeneralComp.cpp GreaterThan.lo: src/operators/GreaterThan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GreaterThan.lo -MD -MP -MF $(DEPDIR)/GreaterThan.Tpo -c -o GreaterThan.lo `test -f 'src/operators/GreaterThan.cpp' || echo '$(srcdir)/'`src/operators/GreaterThan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GreaterThan.Tpo $(DEPDIR)/GreaterThan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GreaterThan.cpp' object='GreaterThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GreaterThan.lo `test -f 'src/operators/GreaterThan.cpp' || echo '$(srcdir)/'`src/operators/GreaterThan.cpp GreaterThanEqual.lo: src/operators/GreaterThanEqual.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GreaterThanEqual.lo -MD -MP -MF $(DEPDIR)/GreaterThanEqual.Tpo -c -o GreaterThanEqual.lo `test -f 'src/operators/GreaterThanEqual.cpp' || echo '$(srcdir)/'`src/operators/GreaterThanEqual.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GreaterThanEqual.Tpo $(DEPDIR)/GreaterThanEqual.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GreaterThanEqual.cpp' object='GreaterThanEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GreaterThanEqual.lo `test -f 'src/operators/GreaterThanEqual.cpp' || echo '$(srcdir)/'`src/operators/GreaterThanEqual.cpp IntegerDivide.lo: src/operators/IntegerDivide.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IntegerDivide.lo -MD -MP -MF $(DEPDIR)/IntegerDivide.Tpo -c -o IntegerDivide.lo `test -f 'src/operators/IntegerDivide.cpp' || echo '$(srcdir)/'`src/operators/IntegerDivide.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/IntegerDivide.Tpo $(DEPDIR)/IntegerDivide.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/IntegerDivide.cpp' object='IntegerDivide.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IntegerDivide.lo `test -f 'src/operators/IntegerDivide.cpp' || echo '$(srcdir)/'`src/operators/IntegerDivide.cpp Intersect.lo: src/operators/Intersect.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Intersect.lo -MD -MP -MF $(DEPDIR)/Intersect.Tpo -c -o Intersect.lo `test -f 'src/operators/Intersect.cpp' || echo '$(srcdir)/'`src/operators/Intersect.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Intersect.Tpo $(DEPDIR)/Intersect.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Intersect.cpp' object='Intersect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Intersect.lo `test -f 'src/operators/Intersect.cpp' || echo '$(srcdir)/'`src/operators/Intersect.cpp LessThan.lo: src/operators/LessThan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LessThan.lo -MD -MP -MF $(DEPDIR)/LessThan.Tpo -c -o LessThan.lo `test -f 'src/operators/LessThan.cpp' || echo '$(srcdir)/'`src/operators/LessThan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LessThan.Tpo $(DEPDIR)/LessThan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/LessThan.cpp' object='LessThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LessThan.lo `test -f 'src/operators/LessThan.cpp' || echo '$(srcdir)/'`src/operators/LessThan.cpp LessThanEqual.lo: src/operators/LessThanEqual.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LessThanEqual.lo -MD -MP -MF $(DEPDIR)/LessThanEqual.Tpo -c -o LessThanEqual.lo `test -f 'src/operators/LessThanEqual.cpp' || echo '$(srcdir)/'`src/operators/LessThanEqual.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LessThanEqual.Tpo $(DEPDIR)/LessThanEqual.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/LessThanEqual.cpp' object='LessThanEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LessThanEqual.lo `test -f 'src/operators/LessThanEqual.cpp' || echo '$(srcdir)/'`src/operators/LessThanEqual.cpp Minus.lo: src/operators/Minus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Minus.lo -MD -MP -MF $(DEPDIR)/Minus.Tpo -c -o Minus.lo `test -f 'src/operators/Minus.cpp' || echo '$(srcdir)/'`src/operators/Minus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Minus.Tpo $(DEPDIR)/Minus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Minus.cpp' object='Minus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Minus.lo `test -f 'src/operators/Minus.cpp' || echo '$(srcdir)/'`src/operators/Minus.cpp Mod.lo: src/operators/Mod.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mod.lo -MD -MP -MF $(DEPDIR)/Mod.Tpo -c -o Mod.lo `test -f 'src/operators/Mod.cpp' || echo '$(srcdir)/'`src/operators/Mod.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Mod.Tpo $(DEPDIR)/Mod.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Mod.cpp' object='Mod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mod.lo `test -f 'src/operators/Mod.cpp' || echo '$(srcdir)/'`src/operators/Mod.cpp Multiply.lo: src/operators/Multiply.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Multiply.lo -MD -MP -MF $(DEPDIR)/Multiply.Tpo -c -o Multiply.lo `test -f 'src/operators/Multiply.cpp' || echo '$(srcdir)/'`src/operators/Multiply.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Multiply.Tpo $(DEPDIR)/Multiply.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Multiply.cpp' object='Multiply.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Multiply.lo `test -f 'src/operators/Multiply.cpp' || echo '$(srcdir)/'`src/operators/Multiply.cpp NodeComparison.lo: src/operators/NodeComparison.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NodeComparison.lo -MD -MP -MF $(DEPDIR)/NodeComparison.Tpo -c -o NodeComparison.lo `test -f 'src/operators/NodeComparison.cpp' || echo '$(srcdir)/'`src/operators/NodeComparison.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NodeComparison.Tpo $(DEPDIR)/NodeComparison.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/NodeComparison.cpp' object='NodeComparison.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NodeComparison.lo `test -f 'src/operators/NodeComparison.cpp' || echo '$(srcdir)/'`src/operators/NodeComparison.cpp NotEquals.lo: src/operators/NotEquals.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NotEquals.lo -MD -MP -MF $(DEPDIR)/NotEquals.Tpo -c -o NotEquals.lo `test -f 'src/operators/NotEquals.cpp' || echo '$(srcdir)/'`src/operators/NotEquals.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NotEquals.Tpo $(DEPDIR)/NotEquals.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/NotEquals.cpp' object='NotEquals.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NotEquals.lo `test -f 'src/operators/NotEquals.cpp' || echo '$(srcdir)/'`src/operators/NotEquals.cpp Or.lo: src/operators/Or.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Or.lo -MD -MP -MF $(DEPDIR)/Or.Tpo -c -o Or.lo `test -f 'src/operators/Or.cpp' || echo '$(srcdir)/'`src/operators/Or.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Or.Tpo $(DEPDIR)/Or.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Or.cpp' object='Or.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Or.lo `test -f 'src/operators/Or.cpp' || echo '$(srcdir)/'`src/operators/Or.cpp OrderComparison.lo: src/operators/OrderComparison.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OrderComparison.lo -MD -MP -MF $(DEPDIR)/OrderComparison.Tpo -c -o OrderComparison.lo `test -f 'src/operators/OrderComparison.cpp' || echo '$(srcdir)/'`src/operators/OrderComparison.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/OrderComparison.Tpo $(DEPDIR)/OrderComparison.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/OrderComparison.cpp' object='OrderComparison.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OrderComparison.lo `test -f 'src/operators/OrderComparison.cpp' || echo '$(srcdir)/'`src/operators/OrderComparison.cpp Plus.lo: src/operators/Plus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Plus.lo -MD -MP -MF $(DEPDIR)/Plus.Tpo -c -o Plus.lo `test -f 'src/operators/Plus.cpp' || echo '$(srcdir)/'`src/operators/Plus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Plus.Tpo $(DEPDIR)/Plus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Plus.cpp' object='Plus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Plus.lo `test -f 'src/operators/Plus.cpp' || echo '$(srcdir)/'`src/operators/Plus.cpp UnaryMinus.lo: src/operators/UnaryMinus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnaryMinus.lo -MD -MP -MF $(DEPDIR)/UnaryMinus.Tpo -c -o UnaryMinus.lo `test -f 'src/operators/UnaryMinus.cpp' || echo '$(srcdir)/'`src/operators/UnaryMinus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnaryMinus.Tpo $(DEPDIR)/UnaryMinus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/UnaryMinus.cpp' object='UnaryMinus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnaryMinus.lo `test -f 'src/operators/UnaryMinus.cpp' || echo '$(srcdir)/'`src/operators/UnaryMinus.cpp Union.lo: src/operators/Union.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Union.lo -MD -MP -MF $(DEPDIR)/Union.Tpo -c -o Union.lo `test -f 'src/operators/Union.cpp' || echo '$(srcdir)/'`src/operators/Union.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Union.Tpo $(DEPDIR)/Union.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Union.cpp' object='Union.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Union.lo `test -f 'src/operators/Union.cpp' || echo '$(srcdir)/'`src/operators/Union.cpp DocumentCacheImpl.lo: src/schema/DocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DocumentCacheImpl.lo -MD -MP -MF $(DEPDIR)/DocumentCacheImpl.Tpo -c -o DocumentCacheImpl.lo `test -f 'src/schema/DocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/DocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DocumentCacheImpl.Tpo $(DEPDIR)/DocumentCacheImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/DocumentCacheImpl.cpp' object='DocumentCacheImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DocumentCacheImpl.lo `test -f 'src/schema/DocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/DocumentCacheImpl.cpp SequenceType.lo: src/schema/SequenceType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SequenceType.lo -MD -MP -MF $(DEPDIR)/SequenceType.Tpo -c -o SequenceType.lo `test -f 'src/schema/SequenceType.cpp' || echo '$(srcdir)/'`src/schema/SequenceType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SequenceType.Tpo $(DEPDIR)/SequenceType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/SequenceType.cpp' object='SequenceType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SequenceType.lo `test -f 'src/schema/SequenceType.cpp' || echo '$(srcdir)/'`src/schema/SequenceType.cpp AnyAtomicTypeDatatypeValidator.lo: src/schema/AnyAtomicTypeDatatypeValidator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AnyAtomicTypeDatatypeValidator.lo -MD -MP -MF $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Tpo -c -o AnyAtomicTypeDatatypeValidator.lo `test -f 'src/schema/AnyAtomicTypeDatatypeValidator.cpp' || echo '$(srcdir)/'`src/schema/AnyAtomicTypeDatatypeValidator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Tpo $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/AnyAtomicTypeDatatypeValidator.cpp' object='AnyAtomicTypeDatatypeValidator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AnyAtomicTypeDatatypeValidator.lo `test -f 'src/schema/AnyAtomicTypeDatatypeValidator.cpp' || echo '$(srcdir)/'`src/schema/AnyAtomicTypeDatatypeValidator.cpp SchemaValidatorFilter.lo: src/schema/SchemaValidatorFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SchemaValidatorFilter.lo -MD -MP -MF $(DEPDIR)/SchemaValidatorFilter.Tpo -c -o SchemaValidatorFilter.lo `test -f 'src/schema/SchemaValidatorFilter.cpp' || echo '$(srcdir)/'`src/schema/SchemaValidatorFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SchemaValidatorFilter.Tpo $(DEPDIR)/SchemaValidatorFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/SchemaValidatorFilter.cpp' object='SchemaValidatorFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SchemaValidatorFilter.lo `test -f 'src/schema/SchemaValidatorFilter.cpp' || echo '$(srcdir)/'`src/schema/SchemaValidatorFilter.cpp FaxppDocumentCacheImpl.lo: src/schema/FaxppDocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FaxppDocumentCacheImpl.lo -MD -MP -MF $(DEPDIR)/FaxppDocumentCacheImpl.Tpo -c -o FaxppDocumentCacheImpl.lo `test -f 'src/schema/FaxppDocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/FaxppDocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FaxppDocumentCacheImpl.Tpo $(DEPDIR)/FaxppDocumentCacheImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/FaxppDocumentCacheImpl.cpp' object='FaxppDocumentCacheImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FaxppDocumentCacheImpl.lo `test -f 'src/schema/FaxppDocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/FaxppDocumentCacheImpl.cpp ClosureResult.lo: src/runtime/ClosureResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ClosureResult.lo -MD -MP -MF $(DEPDIR)/ClosureResult.Tpo -c -o ClosureResult.lo `test -f 'src/runtime/ClosureResult.cpp' || echo '$(srcdir)/'`src/runtime/ClosureResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ClosureResult.Tpo $(DEPDIR)/ClosureResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ClosureResult.cpp' object='ClosureResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ClosureResult.lo `test -f 'src/runtime/ClosureResult.cpp' || echo '$(srcdir)/'`src/runtime/ClosureResult.cpp EmptyResult.lo: src/runtime/EmptyResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EmptyResult.lo -MD -MP -MF $(DEPDIR)/EmptyResult.Tpo -c -o EmptyResult.lo `test -f 'src/runtime/EmptyResult.cpp' || echo '$(srcdir)/'`src/runtime/EmptyResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EmptyResult.Tpo $(DEPDIR)/EmptyResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/EmptyResult.cpp' object='EmptyResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EmptyResult.lo `test -f 'src/runtime/EmptyResult.cpp' || echo '$(srcdir)/'`src/runtime/EmptyResult.cpp ResultBuffer.lo: src/runtime/ResultBuffer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultBuffer.lo -MD -MP -MF $(DEPDIR)/ResultBuffer.Tpo -c -o ResultBuffer.lo `test -f 'src/runtime/ResultBuffer.cpp' || echo '$(srcdir)/'`src/runtime/ResultBuffer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultBuffer.Tpo $(DEPDIR)/ResultBuffer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultBuffer.cpp' object='ResultBuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultBuffer.lo `test -f 'src/runtime/ResultBuffer.cpp' || echo '$(srcdir)/'`src/runtime/ResultBuffer.cpp ResultBufferImpl.lo: src/runtime/ResultBufferImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultBufferImpl.lo -MD -MP -MF $(DEPDIR)/ResultBufferImpl.Tpo -c -o ResultBufferImpl.lo `test -f 'src/runtime/ResultBufferImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultBufferImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultBufferImpl.Tpo $(DEPDIR)/ResultBufferImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultBufferImpl.cpp' object='ResultBufferImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultBufferImpl.lo `test -f 'src/runtime/ResultBufferImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultBufferImpl.cpp Result.lo: src/runtime/Result.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Result.lo -MD -MP -MF $(DEPDIR)/Result.Tpo -c -o Result.lo `test -f 'src/runtime/Result.cpp' || echo '$(srcdir)/'`src/runtime/Result.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Result.Tpo $(DEPDIR)/Result.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/Result.cpp' object='Result.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Result.lo `test -f 'src/runtime/Result.cpp' || echo '$(srcdir)/'`src/runtime/Result.cpp ResultImpl.lo: src/runtime/ResultImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultImpl.lo -MD -MP -MF $(DEPDIR)/ResultImpl.Tpo -c -o ResultImpl.lo `test -f 'src/runtime/ResultImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultImpl.Tpo $(DEPDIR)/ResultImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultImpl.cpp' object='ResultImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultImpl.lo `test -f 'src/runtime/ResultImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultImpl.cpp SequenceResult.lo: src/runtime/SequenceResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SequenceResult.lo -MD -MP -MF $(DEPDIR)/SequenceResult.Tpo -c -o SequenceResult.lo `test -f 'src/runtime/SequenceResult.cpp' || echo '$(srcdir)/'`src/runtime/SequenceResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SequenceResult.Tpo $(DEPDIR)/SequenceResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/SequenceResult.cpp' object='SequenceResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SequenceResult.lo `test -f 'src/runtime/SequenceResult.cpp' || echo '$(srcdir)/'`src/runtime/SequenceResult.cpp Sequence.lo: src/runtime/Sequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Sequence.lo -MD -MP -MF $(DEPDIR)/Sequence.Tpo -c -o Sequence.lo `test -f 'src/runtime/Sequence.cpp' || echo '$(srcdir)/'`src/runtime/Sequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Sequence.Tpo $(DEPDIR)/Sequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/Sequence.cpp' object='Sequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Sequence.lo `test -f 'src/runtime/Sequence.cpp' || echo '$(srcdir)/'`src/runtime/Sequence.cpp FunctionPut.lo: src/update/FunctionPut.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPut.lo -MD -MP -MF $(DEPDIR)/FunctionPut.Tpo -c -o FunctionPut.lo `test -f 'src/update/FunctionPut.cpp' || echo '$(srcdir)/'`src/update/FunctionPut.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPut.Tpo $(DEPDIR)/FunctionPut.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/FunctionPut.cpp' object='FunctionPut.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPut.lo `test -f 'src/update/FunctionPut.cpp' || echo '$(srcdir)/'`src/update/FunctionPut.cpp PendingUpdateList.lo: src/update/PendingUpdateList.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PendingUpdateList.lo -MD -MP -MF $(DEPDIR)/PendingUpdateList.Tpo -c -o PendingUpdateList.lo `test -f 'src/update/PendingUpdateList.cpp' || echo '$(srcdir)/'`src/update/PendingUpdateList.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PendingUpdateList.Tpo $(DEPDIR)/PendingUpdateList.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/PendingUpdateList.cpp' object='PendingUpdateList.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PendingUpdateList.lo `test -f 'src/update/PendingUpdateList.cpp' || echo '$(srcdir)/'`src/update/PendingUpdateList.cpp UApplyUpdates.lo: src/update/UApplyUpdates.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UApplyUpdates.lo -MD -MP -MF $(DEPDIR)/UApplyUpdates.Tpo -c -o UApplyUpdates.lo `test -f 'src/update/UApplyUpdates.cpp' || echo '$(srcdir)/'`src/update/UApplyUpdates.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UApplyUpdates.Tpo $(DEPDIR)/UApplyUpdates.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UApplyUpdates.cpp' object='UApplyUpdates.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UApplyUpdates.lo `test -f 'src/update/UApplyUpdates.cpp' || echo '$(srcdir)/'`src/update/UApplyUpdates.cpp UDelete.lo: src/update/UDelete.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UDelete.lo -MD -MP -MF $(DEPDIR)/UDelete.Tpo -c -o UDelete.lo `test -f 'src/update/UDelete.cpp' || echo '$(srcdir)/'`src/update/UDelete.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UDelete.Tpo $(DEPDIR)/UDelete.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UDelete.cpp' object='UDelete.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UDelete.lo `test -f 'src/update/UDelete.cpp' || echo '$(srcdir)/'`src/update/UDelete.cpp URename.lo: src/update/URename.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT URename.lo -MD -MP -MF $(DEPDIR)/URename.Tpo -c -o URename.lo `test -f 'src/update/URename.cpp' || echo '$(srcdir)/'`src/update/URename.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/URename.Tpo $(DEPDIR)/URename.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/URename.cpp' object='URename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o URename.lo `test -f 'src/update/URename.cpp' || echo '$(srcdir)/'`src/update/URename.cpp UReplace.lo: src/update/UReplace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UReplace.lo -MD -MP -MF $(DEPDIR)/UReplace.Tpo -c -o UReplace.lo `test -f 'src/update/UReplace.cpp' || echo '$(srcdir)/'`src/update/UReplace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UReplace.Tpo $(DEPDIR)/UReplace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UReplace.cpp' object='UReplace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UReplace.lo `test -f 'src/update/UReplace.cpp' || echo '$(srcdir)/'`src/update/UReplace.cpp UReplaceValueOf.lo: src/update/UReplaceValueOf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UReplaceValueOf.lo -MD -MP -MF $(DEPDIR)/UReplaceValueOf.Tpo -c -o UReplaceValueOf.lo `test -f 'src/update/UReplaceValueOf.cpp' || echo '$(srcdir)/'`src/update/UReplaceValueOf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UReplaceValueOf.Tpo $(DEPDIR)/UReplaceValueOf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UReplaceValueOf.cpp' object='UReplaceValueOf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UReplaceValueOf.lo `test -f 'src/update/UReplaceValueOf.cpp' || echo '$(srcdir)/'`src/update/UReplaceValueOf.cpp UInsertAsFirst.lo: src/update/UInsertAsFirst.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAsFirst.lo -MD -MP -MF $(DEPDIR)/UInsertAsFirst.Tpo -c -o UInsertAsFirst.lo `test -f 'src/update/UInsertAsFirst.cpp' || echo '$(srcdir)/'`src/update/UInsertAsFirst.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAsFirst.Tpo $(DEPDIR)/UInsertAsFirst.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAsFirst.cpp' object='UInsertAsFirst.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAsFirst.lo `test -f 'src/update/UInsertAsFirst.cpp' || echo '$(srcdir)/'`src/update/UInsertAsFirst.cpp UInsertAsLast.lo: src/update/UInsertAsLast.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAsLast.lo -MD -MP -MF $(DEPDIR)/UInsertAsLast.Tpo -c -o UInsertAsLast.lo `test -f 'src/update/UInsertAsLast.cpp' || echo '$(srcdir)/'`src/update/UInsertAsLast.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAsLast.Tpo $(DEPDIR)/UInsertAsLast.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAsLast.cpp' object='UInsertAsLast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAsLast.lo `test -f 'src/update/UInsertAsLast.cpp' || echo '$(srcdir)/'`src/update/UInsertAsLast.cpp UInsertInto.lo: src/update/UInsertInto.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertInto.lo -MD -MP -MF $(DEPDIR)/UInsertInto.Tpo -c -o UInsertInto.lo `test -f 'src/update/UInsertInto.cpp' || echo '$(srcdir)/'`src/update/UInsertInto.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertInto.Tpo $(DEPDIR)/UInsertInto.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertInto.cpp' object='UInsertInto.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertInto.lo `test -f 'src/update/UInsertInto.cpp' || echo '$(srcdir)/'`src/update/UInsertInto.cpp UInsertAfter.lo: src/update/UInsertAfter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAfter.lo -MD -MP -MF $(DEPDIR)/UInsertAfter.Tpo -c -o UInsertAfter.lo `test -f 'src/update/UInsertAfter.cpp' || echo '$(srcdir)/'`src/update/UInsertAfter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAfter.Tpo $(DEPDIR)/UInsertAfter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAfter.cpp' object='UInsertAfter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAfter.lo `test -f 'src/update/UInsertAfter.cpp' || echo '$(srcdir)/'`src/update/UInsertAfter.cpp UInsertBefore.lo: src/update/UInsertBefore.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertBefore.lo -MD -MP -MF $(DEPDIR)/UInsertBefore.Tpo -c -o UInsertBefore.lo `test -f 'src/update/UInsertBefore.cpp' || echo '$(srcdir)/'`src/update/UInsertBefore.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertBefore.Tpo $(DEPDIR)/UInsertBefore.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertBefore.cpp' object='UInsertBefore.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertBefore.lo `test -f 'src/update/UInsertBefore.cpp' || echo '$(srcdir)/'`src/update/UInsertBefore.cpp UTransform.lo: src/update/UTransform.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UTransform.lo -MD -MP -MF $(DEPDIR)/UTransform.Tpo -c -o UTransform.lo `test -f 'src/update/UTransform.cpp' || echo '$(srcdir)/'`src/update/UTransform.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UTransform.Tpo $(DEPDIR)/UTransform.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UTransform.cpp' object='UTransform.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UTransform.lo `test -f 'src/update/UTransform.cpp' || echo '$(srcdir)/'`src/update/UTransform.cpp TestSuiteParser.lo: src/xqts/TestSuiteParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteParser.lo -MD -MP -MF $(DEPDIR)/TestSuiteParser.Tpo -c -o TestSuiteParser.lo `test -f 'src/xqts/TestSuiteParser.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteParser.Tpo $(DEPDIR)/TestSuiteParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteParser.cpp' object='TestSuiteParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteParser.lo `test -f 'src/xqts/TestSuiteParser.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteParser.cpp TestSuiteResultListener.lo: src/xqts/TestSuiteResultListener.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteResultListener.lo -MD -MP -MF $(DEPDIR)/TestSuiteResultListener.Tpo -c -o TestSuiteResultListener.lo `test -f 'src/xqts/TestSuiteResultListener.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteResultListener.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteResultListener.Tpo $(DEPDIR)/TestSuiteResultListener.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteResultListener.cpp' object='TestSuiteResultListener.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteResultListener.lo `test -f 'src/xqts/TestSuiteResultListener.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteResultListener.cpp TestSuiteRunner.lo: src/xqts/TestSuiteRunner.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteRunner.lo -MD -MP -MF $(DEPDIR)/TestSuiteRunner.Tpo -c -o TestSuiteRunner.lo `test -f 'src/xqts/TestSuiteRunner.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteRunner.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteRunner.Tpo $(DEPDIR)/TestSuiteRunner.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteRunner.cpp' object='TestSuiteRunner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteRunner.lo `test -f 'src/xqts/TestSuiteRunner.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteRunner.cpp FastXDMUpdateFactory.lo: src/fastxdm/FastXDMUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMUpdateFactory.lo -MD -MP -MF $(DEPDIR)/FastXDMUpdateFactory.Tpo -c -o FastXDMUpdateFactory.lo `test -f 'src/fastxdm/FastXDMUpdateFactory.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMUpdateFactory.Tpo $(DEPDIR)/FastXDMUpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMUpdateFactory.cpp' object='FastXDMUpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMUpdateFactory.lo `test -f 'src/fastxdm/FastXDMUpdateFactory.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMUpdateFactory.cpp FastXDMDocument.lo: src/fastxdm/FastXDMDocument.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMDocument.lo -MD -MP -MF $(DEPDIR)/FastXDMDocument.Tpo -c -o FastXDMDocument.lo `test -f 'src/fastxdm/FastXDMDocument.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMDocument.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMDocument.Tpo $(DEPDIR)/FastXDMDocument.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMDocument.cpp' object='FastXDMDocument.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMDocument.lo `test -f 'src/fastxdm/FastXDMDocument.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMDocument.cpp FastXDMNodeImpl.lo: src/fastxdm/FastXDMNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMNodeImpl.lo -MD -MP -MF $(DEPDIR)/FastXDMNodeImpl.Tpo -c -o FastXDMNodeImpl.lo `test -f 'src/fastxdm/FastXDMNodeImpl.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMNodeImpl.Tpo $(DEPDIR)/FastXDMNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMNodeImpl.cpp' object='FastXDMNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMNodeImpl.lo `test -f 'src/fastxdm/FastXDMNodeImpl.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMNodeImpl.cpp FastXDMConfiguration.lo: src/fastxdm/FastXDMConfiguration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMConfiguration.lo -MD -MP -MF $(DEPDIR)/FastXDMConfiguration.Tpo -c -o FastXDMConfiguration.lo `test -f 'src/fastxdm/FastXDMConfiguration.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMConfiguration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMConfiguration.Tpo $(DEPDIR)/FastXDMConfiguration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMConfiguration.cpp' object='FastXDMConfiguration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMConfiguration.lo `test -f 'src/fastxdm/FastXDMConfiguration.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMConfiguration.cpp FastXDMSequenceBuilder.lo: src/fastxdm/FastXDMSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMSequenceBuilder.lo -MD -MP -MF $(DEPDIR)/FastXDMSequenceBuilder.Tpo -c -o FastXDMSequenceBuilder.lo `test -f 'src/fastxdm/FastXDMSequenceBuilder.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMSequenceBuilder.Tpo $(DEPDIR)/FastXDMSequenceBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMSequenceBuilder.cpp' object='FastXDMSequenceBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMSequenceBuilder.lo `test -f 'src/fastxdm/FastXDMSequenceBuilder.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMSequenceBuilder.cpp AncestorAxis.lo: src/xerces/AncestorAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AncestorAxis.lo -MD -MP -MF $(DEPDIR)/AncestorAxis.Tpo -c -o AncestorAxis.lo `test -f 'src/xerces/AncestorAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AncestorAxis.Tpo $(DEPDIR)/AncestorAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AncestorAxis.cpp' object='AncestorAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AncestorAxis.lo `test -f 'src/xerces/AncestorAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorAxis.cpp AncestorOrSelfAxis.lo: src/xerces/AncestorOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AncestorOrSelfAxis.lo -MD -MP -MF $(DEPDIR)/AncestorOrSelfAxis.Tpo -c -o AncestorOrSelfAxis.lo `test -f 'src/xerces/AncestorOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AncestorOrSelfAxis.Tpo $(DEPDIR)/AncestorOrSelfAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AncestorOrSelfAxis.cpp' object='AncestorOrSelfAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AncestorOrSelfAxis.lo `test -f 'src/xerces/AncestorOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorOrSelfAxis.cpp AttributeAxis.lo: src/xerces/AttributeAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AttributeAxis.lo -MD -MP -MF $(DEPDIR)/AttributeAxis.Tpo -c -o AttributeAxis.lo `test -f 'src/xerces/AttributeAxis.cpp' || echo '$(srcdir)/'`src/xerces/AttributeAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AttributeAxis.Tpo $(DEPDIR)/AttributeAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AttributeAxis.cpp' object='AttributeAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AttributeAxis.lo `test -f 'src/xerces/AttributeAxis.cpp' || echo '$(srcdir)/'`src/xerces/AttributeAxis.cpp Axis.lo: src/xerces/Axis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Axis.lo -MD -MP -MF $(DEPDIR)/Axis.Tpo -c -o Axis.lo `test -f 'src/xerces/Axis.cpp' || echo '$(srcdir)/'`src/xerces/Axis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Axis.Tpo $(DEPDIR)/Axis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/Axis.cpp' object='Axis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Axis.lo `test -f 'src/xerces/Axis.cpp' || echo '$(srcdir)/'`src/xerces/Axis.cpp ChildAxis.lo: src/xerces/ChildAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ChildAxis.lo -MD -MP -MF $(DEPDIR)/ChildAxis.Tpo -c -o ChildAxis.lo `test -f 'src/xerces/ChildAxis.cpp' || echo '$(srcdir)/'`src/xerces/ChildAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ChildAxis.Tpo $(DEPDIR)/ChildAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/ChildAxis.cpp' object='ChildAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ChildAxis.lo `test -f 'src/xerces/ChildAxis.cpp' || echo '$(srcdir)/'`src/xerces/ChildAxis.cpp DescendantAxis.lo: src/xerces/DescendantAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DescendantAxis.lo -MD -MP -MF $(DEPDIR)/DescendantAxis.Tpo -c -o DescendantAxis.lo `test -f 'src/xerces/DescendantAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DescendantAxis.Tpo $(DEPDIR)/DescendantAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/DescendantAxis.cpp' object='DescendantAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DescendantAxis.lo `test -f 'src/xerces/DescendantAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantAxis.cpp DescendantOrSelfAxis.lo: src/xerces/DescendantOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DescendantOrSelfAxis.lo -MD -MP -MF $(DEPDIR)/DescendantOrSelfAxis.Tpo -c -o DescendantOrSelfAxis.lo `test -f 'src/xerces/DescendantOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DescendantOrSelfAxis.Tpo $(DEPDIR)/DescendantOrSelfAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/DescendantOrSelfAxis.cpp' object='DescendantOrSelfAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DescendantOrSelfAxis.lo `test -f 'src/xerces/DescendantOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantOrSelfAxis.cpp FollowingAxis.lo: src/xerces/FollowingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FollowingAxis.lo -MD -MP -MF $(DEPDIR)/FollowingAxis.Tpo -c -o FollowingAxis.lo `test -f 'src/xerces/FollowingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FollowingAxis.Tpo $(DEPDIR)/FollowingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/FollowingAxis.cpp' object='FollowingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FollowingAxis.lo `test -f 'src/xerces/FollowingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingAxis.cpp FollowingSiblingAxis.lo: src/xerces/FollowingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FollowingSiblingAxis.lo -MD -MP -MF $(DEPDIR)/FollowingSiblingAxis.Tpo -c -o FollowingSiblingAxis.lo `test -f 'src/xerces/FollowingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FollowingSiblingAxis.Tpo $(DEPDIR)/FollowingSiblingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/FollowingSiblingAxis.cpp' object='FollowingSiblingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FollowingSiblingAxis.lo `test -f 'src/xerces/FollowingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingSiblingAxis.cpp NamespaceAxis.lo: src/xerces/NamespaceAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NamespaceAxis.lo -MD -MP -MF $(DEPDIR)/NamespaceAxis.Tpo -c -o NamespaceAxis.lo `test -f 'src/xerces/NamespaceAxis.cpp' || echo '$(srcdir)/'`src/xerces/NamespaceAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NamespaceAxis.Tpo $(DEPDIR)/NamespaceAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/NamespaceAxis.cpp' object='NamespaceAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NamespaceAxis.lo `test -f 'src/xerces/NamespaceAxis.cpp' || echo '$(srcdir)/'`src/xerces/NamespaceAxis.cpp ParentAxis.lo: src/xerces/ParentAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ParentAxis.lo -MD -MP -MF $(DEPDIR)/ParentAxis.Tpo -c -o ParentAxis.lo `test -f 'src/xerces/ParentAxis.cpp' || echo '$(srcdir)/'`src/xerces/ParentAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ParentAxis.Tpo $(DEPDIR)/ParentAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/ParentAxis.cpp' object='ParentAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ParentAxis.lo `test -f 'src/xerces/ParentAxis.cpp' || echo '$(srcdir)/'`src/xerces/ParentAxis.cpp PrecedingAxis.lo: src/xerces/PrecedingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PrecedingAxis.lo -MD -MP -MF $(DEPDIR)/PrecedingAxis.Tpo -c -o PrecedingAxis.lo `test -f 'src/xerces/PrecedingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PrecedingAxis.Tpo $(DEPDIR)/PrecedingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/PrecedingAxis.cpp' object='PrecedingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PrecedingAxis.lo `test -f 'src/xerces/PrecedingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingAxis.cpp PrecedingSiblingAxis.lo: src/xerces/PrecedingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PrecedingSiblingAxis.lo -MD -MP -MF $(DEPDIR)/PrecedingSiblingAxis.Tpo -c -o PrecedingSiblingAxis.lo `test -f 'src/xerces/PrecedingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PrecedingSiblingAxis.Tpo $(DEPDIR)/PrecedingSiblingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/PrecedingSiblingAxis.cpp' object='PrecedingSiblingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PrecedingSiblingAxis.lo `test -f 'src/xerces/PrecedingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingSiblingAxis.cpp XercesConfiguration.lo: src/xerces/XercesConfiguration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesConfiguration.lo -MD -MP -MF $(DEPDIR)/XercesConfiguration.Tpo -c -o XercesConfiguration.lo `test -f 'src/xerces/XercesConfiguration.cpp' || echo '$(srcdir)/'`src/xerces/XercesConfiguration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesConfiguration.Tpo $(DEPDIR)/XercesConfiguration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesConfiguration.cpp' object='XercesConfiguration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesConfiguration.lo `test -f 'src/xerces/XercesConfiguration.cpp' || echo '$(srcdir)/'`src/xerces/XercesConfiguration.cpp XercesNodeImpl.lo: src/xerces/XercesNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesNodeImpl.lo -MD -MP -MF $(DEPDIR)/XercesNodeImpl.Tpo -c -o XercesNodeImpl.lo `test -f 'src/xerces/XercesNodeImpl.cpp' || echo '$(srcdir)/'`src/xerces/XercesNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesNodeImpl.Tpo $(DEPDIR)/XercesNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesNodeImpl.cpp' object='XercesNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesNodeImpl.lo `test -f 'src/xerces/XercesNodeImpl.cpp' || echo '$(srcdir)/'`src/xerces/XercesNodeImpl.cpp XercesSequenceBuilder.lo: src/xerces/XercesSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesSequenceBuilder.lo -MD -MP -MF $(DEPDIR)/XercesSequenceBuilder.Tpo -c -o XercesSequenceBuilder.lo `test -f 'src/xerces/XercesSequenceBuilder.cpp' || echo '$(srcdir)/'`src/xerces/XercesSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesSequenceBuilder.Tpo $(DEPDIR)/XercesSequenceBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesSequenceBuilder.cpp' object='XercesSequenceBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesSequenceBuilder.lo `test -f 'src/xerces/XercesSequenceBuilder.cpp' || echo '$(srcdir)/'`src/xerces/XercesSequenceBuilder.cpp XercesUpdateFactory.lo: src/xerces/XercesUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesUpdateFactory.lo -MD -MP -MF $(DEPDIR)/XercesUpdateFactory.Tpo -c -o XercesUpdateFactory.lo `test -f 'src/xerces/XercesUpdateFactory.cpp' || echo '$(srcdir)/'`src/xerces/XercesUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesUpdateFactory.Tpo $(DEPDIR)/XercesUpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesUpdateFactory.cpp' object='XercesUpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesUpdateFactory.lo `test -f 'src/xerces/XercesUpdateFactory.cpp' || echo '$(srcdir)/'`src/xerces/XercesUpdateFactory.cpp XercesURIResolver.lo: src/xerces/XercesURIResolver.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesURIResolver.lo -MD -MP -MF $(DEPDIR)/XercesURIResolver.Tpo -c -o XercesURIResolver.lo `test -f 'src/xerces/XercesURIResolver.cpp' || echo '$(srcdir)/'`src/xerces/XercesURIResolver.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesURIResolver.Tpo $(DEPDIR)/XercesURIResolver.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesURIResolver.cpp' object='XercesURIResolver.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesURIResolver.lo `test -f 'src/xerces/XercesURIResolver.cpp' || echo '$(srcdir)/'`src/xerces/XercesURIResolver.cpp Optimizer.lo: src/optimizer/Optimizer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Optimizer.lo -MD -MP -MF $(DEPDIR)/Optimizer.Tpo -c -o Optimizer.lo `test -f 'src/optimizer/Optimizer.cpp' || echo '$(srcdir)/'`src/optimizer/Optimizer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Optimizer.Tpo $(DEPDIR)/Optimizer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/Optimizer.cpp' object='Optimizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Optimizer.lo `test -f 'src/optimizer/Optimizer.cpp' || echo '$(srcdir)/'`src/optimizer/Optimizer.cpp ASTCopier.lo: src/optimizer/ASTCopier.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTCopier.lo -MD -MP -MF $(DEPDIR)/ASTCopier.Tpo -c -o ASTCopier.lo `test -f 'src/optimizer/ASTCopier.cpp' || echo '$(srcdir)/'`src/optimizer/ASTCopier.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTCopier.Tpo $(DEPDIR)/ASTCopier.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTCopier.cpp' object='ASTCopier.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTCopier.lo `test -f 'src/optimizer/ASTCopier.cpp' || echo '$(srcdir)/'`src/optimizer/ASTCopier.cpp ASTReleaser.lo: src/optimizer/ASTReleaser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTReleaser.lo -MD -MP -MF $(DEPDIR)/ASTReleaser.Tpo -c -o ASTReleaser.lo `test -f 'src/optimizer/ASTReleaser.cpp' || echo '$(srcdir)/'`src/optimizer/ASTReleaser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTReleaser.Tpo $(DEPDIR)/ASTReleaser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTReleaser.cpp' object='ASTReleaser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTReleaser.lo `test -f 'src/optimizer/ASTReleaser.cpp' || echo '$(srcdir)/'`src/optimizer/ASTReleaser.cpp ASTVisitor.lo: src/optimizer/ASTVisitor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTVisitor.lo -MD -MP -MF $(DEPDIR)/ASTVisitor.Tpo -c -o ASTVisitor.lo `test -f 'src/optimizer/ASTVisitor.cpp' || echo '$(srcdir)/'`src/optimizer/ASTVisitor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTVisitor.Tpo $(DEPDIR)/ASTVisitor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTVisitor.cpp' object='ASTVisitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTVisitor.lo `test -f 'src/optimizer/ASTVisitor.cpp' || echo '$(srcdir)/'`src/optimizer/ASTVisitor.cpp PartialEvaluator.lo: src/optimizer/PartialEvaluator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PartialEvaluator.lo -MD -MP -MF $(DEPDIR)/PartialEvaluator.Tpo -c -o PartialEvaluator.lo `test -f 'src/optimizer/PartialEvaluator.cpp' || echo '$(srcdir)/'`src/optimizer/PartialEvaluator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PartialEvaluator.Tpo $(DEPDIR)/PartialEvaluator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/PartialEvaluator.cpp' object='PartialEvaluator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PartialEvaluator.lo `test -f 'src/optimizer/PartialEvaluator.cpp' || echo '$(srcdir)/'`src/optimizer/PartialEvaluator.cpp StaticTyper.lo: src/optimizer/StaticTyper.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticTyper.lo -MD -MP -MF $(DEPDIR)/StaticTyper.Tpo -c -o StaticTyper.lo `test -f 'src/optimizer/StaticTyper.cpp' || echo '$(srcdir)/'`src/optimizer/StaticTyper.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticTyper.Tpo $(DEPDIR)/StaticTyper.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/StaticTyper.cpp' object='StaticTyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticTyper.lo `test -f 'src/optimizer/StaticTyper.cpp' || echo '$(srcdir)/'`src/optimizer/StaticTyper.cpp QueryPathNode.lo: src/optimizer/QueryPathNode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathNode.lo -MD -MP -MF $(DEPDIR)/QueryPathNode.Tpo -c -o QueryPathNode.lo `test -f 'src/optimizer/QueryPathNode.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathNode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathNode.Tpo $(DEPDIR)/QueryPathNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/QueryPathNode.cpp' object='QueryPathNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathNode.lo `test -f 'src/optimizer/QueryPathNode.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathNode.cpp QueryPathTreeGenerator.lo: src/optimizer/QueryPathTreeGenerator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathTreeGenerator.lo -MD -MP -MF $(DEPDIR)/QueryPathTreeGenerator.Tpo -c -o QueryPathTreeGenerator.lo `test -f 'src/optimizer/QueryPathTreeGenerator.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathTreeGenerator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathTreeGenerator.Tpo $(DEPDIR)/QueryPathTreeGenerator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/QueryPathTreeGenerator.cpp' object='QueryPathTreeGenerator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathTreeGenerator.lo `test -f 'src/optimizer/QueryPathTreeGenerator.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathTreeGenerator.cpp ASTToXML.lo: src/optimizer/ASTToXML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTToXML.lo -MD -MP -MF $(DEPDIR)/ASTToXML.Tpo -c -o ASTToXML.lo `test -f 'src/optimizer/ASTToXML.cpp' || echo '$(srcdir)/'`src/optimizer/ASTToXML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTToXML.Tpo $(DEPDIR)/ASTToXML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTToXML.cpp' object='ASTToXML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTToXML.lo `test -f 'src/optimizer/ASTToXML.cpp' || echo '$(srcdir)/'`src/optimizer/ASTToXML.cpp XQillaXQCImplementation.lo: src/xqc/XQillaXQCImplementation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCImplementation.lo -MD -MP -MF $(DEPDIR)/XQillaXQCImplementation.Tpo -c -o XQillaXQCImplementation.lo `test -f 'src/xqc/XQillaXQCImplementation.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCImplementation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCImplementation.Tpo $(DEPDIR)/XQillaXQCImplementation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCImplementation.cpp' object='XQillaXQCImplementation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCImplementation.lo `test -f 'src/xqc/XQillaXQCImplementation.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCImplementation.cpp XQillaXQCStaticContext.lo: src/xqc/XQillaXQCStaticContext.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCStaticContext.lo -MD -MP -MF $(DEPDIR)/XQillaXQCStaticContext.Tpo -c -o XQillaXQCStaticContext.lo `test -f 'src/xqc/XQillaXQCStaticContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCStaticContext.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCStaticContext.Tpo $(DEPDIR)/XQillaXQCStaticContext.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCStaticContext.cpp' object='XQillaXQCStaticContext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCStaticContext.lo `test -f 'src/xqc/XQillaXQCStaticContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCStaticContext.cpp XQillaXQCDynamicContext.lo: src/xqc/XQillaXQCDynamicContext.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCDynamicContext.lo -MD -MP -MF $(DEPDIR)/XQillaXQCDynamicContext.Tpo -c -o XQillaXQCDynamicContext.lo `test -f 'src/xqc/XQillaXQCDynamicContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCDynamicContext.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCDynamicContext.Tpo $(DEPDIR)/XQillaXQCDynamicContext.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCDynamicContext.cpp' object='XQillaXQCDynamicContext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCDynamicContext.lo `test -f 'src/xqc/XQillaXQCDynamicContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCDynamicContext.cpp XQillaXQCExpression.lo: src/xqc/XQillaXQCExpression.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCExpression.lo -MD -MP -MF $(DEPDIR)/XQillaXQCExpression.Tpo -c -o XQillaXQCExpression.lo `test -f 'src/xqc/XQillaXQCExpression.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCExpression.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCExpression.Tpo $(DEPDIR)/XQillaXQCExpression.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCExpression.cpp' object='XQillaXQCExpression.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCExpression.lo `test -f 'src/xqc/XQillaXQCExpression.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCExpression.cpp XQillaXQCSequence.lo: src/xqc/XQillaXQCSequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCSequence.lo -MD -MP -MF $(DEPDIR)/XQillaXQCSequence.Tpo -c -o XQillaXQCSequence.lo `test -f 'src/xqc/XQillaXQCSequence.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCSequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCSequence.Tpo $(DEPDIR)/XQillaXQCSequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCSequence.cpp' object='XQillaXQCSequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCSequence.lo `test -f 'src/xqc/XQillaXQCSequence.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCSequence.cpp compile-delayed-module.o: src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compile-delayed-module.o -MD -MP -MF $(DEPDIR)/compile-delayed-module.Tpo -c -o compile-delayed-module.o `test -f 'src/tools/compile-delayed-module.cpp' || echo '$(srcdir)/'`src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compile-delayed-module.Tpo $(DEPDIR)/compile-delayed-module.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/tools/compile-delayed-module.cpp' object='compile-delayed-module.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compile-delayed-module.o `test -f 'src/tools/compile-delayed-module.cpp' || echo '$(srcdir)/'`src/tools/compile-delayed-module.cpp compile-delayed-module.obj: src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compile-delayed-module.obj -MD -MP -MF $(DEPDIR)/compile-delayed-module.Tpo -c -o compile-delayed-module.obj `if test -f 'src/tools/compile-delayed-module.cpp'; then $(CYGPATH_W) 'src/tools/compile-delayed-module.cpp'; else $(CYGPATH_W) '$(srcdir)/src/tools/compile-delayed-module.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compile-delayed-module.Tpo $(DEPDIR)/compile-delayed-module.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/tools/compile-delayed-module.cpp' object='compile-delayed-module.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compile-delayed-module.obj `if test -f 'src/tools/compile-delayed-module.cpp'; then $(CYGPATH_W) 'src/tools/compile-delayed-module.cpp'; else $(CYGPATH_W) '$(srcdir)/src/tools/compile-delayed-module.cpp'; fi` dom-basic.o: src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-basic.o -MD -MP -MF $(DEPDIR)/dom-basic.Tpo -c -o dom-basic.o `test -f 'src/samples/dom-api/dom-basic.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-basic.Tpo $(DEPDIR)/dom-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-basic.cpp' object='dom-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-basic.o `test -f 'src/samples/dom-api/dom-basic.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-basic.cpp dom-basic.obj: src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-basic.obj -MD -MP -MF $(DEPDIR)/dom-basic.Tpo -c -o dom-basic.obj `if test -f 'src/samples/dom-api/dom-basic.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-basic.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-basic.Tpo $(DEPDIR)/dom-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-basic.cpp' object='dom-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-basic.obj `if test -f 'src/samples/dom-api/dom-basic.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-basic.cpp'; fi` dom-context-item.o: src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-context-item.o -MD -MP -MF $(DEPDIR)/dom-context-item.Tpo -c -o dom-context-item.o `test -f 'src/samples/dom-api/dom-context-item.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-context-item.Tpo $(DEPDIR)/dom-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-context-item.cpp' object='dom-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-context-item.o `test -f 'src/samples/dom-api/dom-context-item.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-context-item.cpp dom-context-item.obj: src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-context-item.obj -MD -MP -MF $(DEPDIR)/dom-context-item.Tpo -c -o dom-context-item.obj `if test -f 'src/samples/dom-api/dom-context-item.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-context-item.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-context-item.Tpo $(DEPDIR)/dom-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-context-item.cpp' object='dom-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-context-item.obj `if test -f 'src/samples/dom-api/dom-context-item.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-context-item.cpp'; fi` dom-resolver.o: src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-resolver.o -MD -MP -MF $(DEPDIR)/dom-resolver.Tpo -c -o dom-resolver.o `test -f 'src/samples/dom-api/dom-resolver.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-resolver.Tpo $(DEPDIR)/dom-resolver.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-resolver.cpp' object='dom-resolver.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-resolver.o `test -f 'src/samples/dom-api/dom-resolver.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-resolver.cpp dom-resolver.obj: src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-resolver.obj -MD -MP -MF $(DEPDIR)/dom-resolver.Tpo -c -o dom-resolver.obj `if test -f 'src/samples/dom-api/dom-resolver.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-resolver.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-resolver.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-resolver.Tpo $(DEPDIR)/dom-resolver.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-resolver.cpp' object='dom-resolver.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-resolver.obj `if test -f 'src/samples/dom-api/dom-resolver.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-resolver.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-resolver.cpp'; fi` simple-basic.o: src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-basic.o -MD -MP -MF $(DEPDIR)/simple-basic.Tpo -c -o simple-basic.o `test -f 'src/samples/simple-api/simple-basic.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-basic.Tpo $(DEPDIR)/simple-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-basic.cpp' object='simple-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-basic.o `test -f 'src/samples/simple-api/simple-basic.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-basic.cpp simple-basic.obj: src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-basic.obj -MD -MP -MF $(DEPDIR)/simple-basic.Tpo -c -o simple-basic.obj `if test -f 'src/samples/simple-api/simple-basic.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-basic.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-basic.Tpo $(DEPDIR)/simple-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-basic.cpp' object='simple-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-basic.obj `if test -f 'src/samples/simple-api/simple-basic.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-basic.cpp'; fi` simple-context-item.o: src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-context-item.o -MD -MP -MF $(DEPDIR)/simple-context-item.Tpo -c -o simple-context-item.o `test -f 'src/samples/simple-api/simple-context-item.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-context-item.Tpo $(DEPDIR)/simple-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-context-item.cpp' object='simple-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-context-item.o `test -f 'src/samples/simple-api/simple-context-item.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-context-item.cpp simple-context-item.obj: src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-context-item.obj -MD -MP -MF $(DEPDIR)/simple-context-item.Tpo -c -o simple-context-item.obj `if test -f 'src/samples/simple-api/simple-context-item.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-context-item.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-context-item.Tpo $(DEPDIR)/simple-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-context-item.cpp' object='simple-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-context-item.obj `if test -f 'src/samples/simple-api/simple-context-item.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-context-item.cpp'; fi` xmark.o: tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmark.o -MD -MP -MF $(DEPDIR)/xmark.Tpo -c -o xmark.o `test -f 'tests/xmark/xmark.cpp' || echo '$(srcdir)/'`tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xmark.Tpo $(DEPDIR)/xmark.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xmark/xmark.cpp' object='xmark.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmark.o `test -f 'tests/xmark/xmark.cpp' || echo '$(srcdir)/'`tests/xmark/xmark.cpp xmark.obj: tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmark.obj -MD -MP -MF $(DEPDIR)/xmark.Tpo -c -o xmark.obj `if test -f 'tests/xmark/xmark.cpp'; then $(CYGPATH_W) 'tests/xmark/xmark.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xmark/xmark.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xmark.Tpo $(DEPDIR)/xmark.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xmark/xmark.cpp' object='xmark.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmark.obj `if test -f 'tests/xmark/xmark.cpp'; then $(CYGPATH_W) 'tests/xmark/xmark.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xmark/xmark.cpp'; fi` xqilla-commandline.o: src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xqilla-commandline.o -MD -MP -MF $(DEPDIR)/xqilla-commandline.Tpo -c -o xqilla-commandline.o `test -f 'src/samples/xqilla/xqilla-commandline.cpp' || echo '$(srcdir)/'`src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xqilla-commandline.Tpo $(DEPDIR)/xqilla-commandline.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/xqilla/xqilla-commandline.cpp' object='xqilla-commandline.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xqilla-commandline.o `test -f 'src/samples/xqilla/xqilla-commandline.cpp' || echo '$(srcdir)/'`src/samples/xqilla/xqilla-commandline.cpp xqilla-commandline.obj: src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xqilla-commandline.obj -MD -MP -MF $(DEPDIR)/xqilla-commandline.Tpo -c -o xqilla-commandline.obj `if test -f 'src/samples/xqilla/xqilla-commandline.cpp'; then $(CYGPATH_W) 'src/samples/xqilla/xqilla-commandline.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqilla/xqilla-commandline.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xqilla-commandline.Tpo $(DEPDIR)/xqilla-commandline.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/xqilla/xqilla-commandline.cpp' object='xqilla-commandline.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xqilla-commandline.obj `if test -f 'src/samples/xqilla/xqilla-commandline.cpp'; then $(CYGPATH_W) 'src/samples/xqilla/xqilla-commandline.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqilla/xqilla-commandline.cpp'; fi` runner.o: tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT runner.o -MD -MP -MF $(DEPDIR)/runner.Tpo -c -o runner.o `test -f 'tests/xqts/runner.cpp' || echo '$(srcdir)/'`tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/runner.Tpo $(DEPDIR)/runner.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xqts/runner.cpp' object='runner.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o runner.o `test -f 'tests/xqts/runner.cpp' || echo '$(srcdir)/'`tests/xqts/runner.cpp runner.obj: tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT runner.obj -MD -MP -MF $(DEPDIR)/runner.Tpo -c -o runner.obj `if test -f 'tests/xqts/runner.cpp'; then $(CYGPATH_W) 'tests/xqts/runner.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xqts/runner.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/runner.Tpo $(DEPDIR)/runner.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xqts/runner.cpp' object='runner.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o runner.obj `if test -f 'tests/xqts/runner.cpp'; then $(CYGPATH_W) 'tests/xqts/runner.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xqts/runner.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # 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. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) 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; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 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 \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ 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__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__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.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(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__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: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile 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-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES 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 -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-compile \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-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 installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-libLTLIBRARIES $(top_srcdir)/src/functions/CoreModule.hpp: $(top_srcdir)/src/functions/CoreModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/CoreModule.xq >$(top_srcdir)/src/functions/CoreModule.hpp $(top_srcdir)/src/functions/FnModule.hpp: $(top_srcdir)/src/functions/FnModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/FnModule.xq >$(top_srcdir)/src/functions/FnModule.hpp $(LEXERFILE): $(LEXTEMPLATE) $(LEXSKEL) $(LEX) -BUs -Pxq -S$(LEXSKEL) -o$(LEXERFILE) $(LEXTEMPLATE) # This can take a long time $(PARSERCPP) $(PARSERHPP): $(PARSERFILE) $(YACC) -d -v -o $(PARSERCPP) $(PARSERFILE) .PHONY: test docs docs: $(MAKE) -C include docs docsclean: $(MAKE) -C include docsclean devdocs: $(MAKE) -C include devdocs devdocsclean: $(MAKE) -C include devdocsclean # Target to help keep the windows projects up-to-date winprojects: winprojects.xq xqilla $(MAKE) -C include winprojects ./xqilla winprojects.xq > winprojects_files.xml winprojects.xq: $(libxqilla_la_SOURCES) @echo "let \$$filedump := " >winprojects.xq @list='$(libxqilla_la_SOURCES)'; for f in $$list; do \ echo " " >>winprojects.xq; \ done @echo "" >>winprojects.xq @echo "for \$$dir in distinct-values(\$$filedump//file/@name/substring-before(substring-after(., '/'), '/'))" >>winprojects.xq @echo "order by \$$dir" >>winprojects.xq @echo "return document{' ', {" >>winprojects.xq @echo " for \$$f in \$$filedump/file[contains(@name, \$$dir)]" >>winprojects.xq @echo " order by \$$f/@name" >>winprojects.xq @echo " return (' ', \$$f)" >>winprojects.xq @echo "} }" >>winprojects.xq # 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: XQilla-2.3.4/autotools/0000755001725400016040000000000013273141207011750 500000000000000XQilla-2.3.4/autotools/m4/0000755001725400016040000000000013273141207012270 500000000000000XQilla-2.3.4/autotools/m4/lt~obsolete.m40000644001725400016040000001311313232476422015030 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 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 4 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_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) 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])]) XQilla-2.3.4/autotools/m4/ltversion.m40000644001725400016040000000127513273140037014504 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. # Generated from ltversion.in. # serial 3012 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6]) m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6' macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) XQilla-2.3.4/autotools/m4/ltsugar.m40000644001725400016040000001042413232476422014141 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 ]) XQilla-2.3.4/autotools/m4/libtool.m40000644001725400016040000077437413273140037014144 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 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 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 56 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_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 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 "X$cc_temp" | $Xsed -e 's%.*/%%' -e "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 _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_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])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 _LT_PROG_ECHO_BACKSLASH 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 # Sed substitution that helps us do robust quoting. It backslashifies # 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' # 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_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 ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # 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], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _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 "X$][$1" | $Xsed -e "$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 "X$" | $Xsed -e "$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' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$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 "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_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]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 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) 2008 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. if test "$no_create" != yes; then 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) fi ])# 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) 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)], [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 # _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([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)]) 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], []) # _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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 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" ]) 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" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # 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 _LT_TAGVAR(whole_archive_flag_spec, $1)='' _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=echo _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 # ----------------------- # 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. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # 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 if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _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 __oline__ "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*|ppc*-*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" ;; ppc64-*linux*|powerpc64-*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" ;; ppc*-*linux*|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 ;; sparc*-*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*) LD="${LD-ld} -m elf64_sparc" ;; *) 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_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) 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 \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _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_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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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; ;; 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 ;; 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"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$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 __oline__ "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 void fnord() { int i=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; /* 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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 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 lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` 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 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 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=`$ECHO "X$lib" | $Xsed -e '\''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 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,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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 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 ;; freebsd1*) dynamic_linker=no ;; 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[[123]]*) 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 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 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' ;; interix[[3-9]]*) version_type=linux 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 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 Linux ELF. linux* | k*bsd*-gnu) version_type=linux 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 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], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # 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 # 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;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $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' ;; netbsdelf*-gnu) version_type=linux 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='NetBSD ld.elf_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 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 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 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 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 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 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([], [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 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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' 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 ;; 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]) 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 Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) 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_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_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. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) 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:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $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:__oline__: 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_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-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 _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _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([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};"\ " /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 # 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 #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. */ 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_save_LIBS="$LIBS" lt_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_save_LIBS" CFLAGS="$lt_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 _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_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)= AC_MSG_CHECKING([for $compiler option to produce PIC]) 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)= ;; 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 ;; 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) 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*) # IBM XL 8.0 on PPC _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* | netbsdelf*-gnu) ;; *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*) # 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' ;; 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 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) 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' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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*) # IBM XL C 8.0/Fortran 10.1 on PPC _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)='-Wl,' ;; *Sun\ F*) # 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)='' ;; 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*) _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_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # 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]) # # 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_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' 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 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")) && ([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*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ 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_flag_spec_ld, $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 ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = 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 *\ [[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.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. _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(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/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' 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 ;; 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) 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= 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; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $ECHO \"$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]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; 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; $ECHO \"$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*) # 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)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) 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 $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' 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 $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 ;; 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 $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 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 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")) && ([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 _LT_TAGVAR(link_all_deplibs, $1)=no 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 _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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 _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' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _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. _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 `$ECHO "X$deplibs" | $Xsed -e '\''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(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; 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 ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $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 -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 -fPIC ${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 -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${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_flag_spec_ld, $1)='+b $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 -a "$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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${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' ;; *) _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 $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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* | netbsdelf*-gnu) 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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 ${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 ${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_MSG_CHECKING([whether -lc should be explicitly linked in]) $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_TAGVAR(archive_cmds_need_lc, $1)=no else _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* AC_MSG_RESULT([$_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_flag_spec_ld], [1], [[If ld is used when linking, 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([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _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([], [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 ## 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... 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_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX 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 popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _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], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl 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_flag_spec_ld, $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(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_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++"} 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 -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -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 "\-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 _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 $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; 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 _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' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _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*) # _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(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 ;; 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 ;; freebsd[[12]]*) # 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*) ;; 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; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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; $ECHO "X$list" | $Xsed' ;; *) 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 -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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" && $ECHO "X-set_version $verstring" | $Xsed` -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 -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -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) 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; $ECHO "X$list" | $Xsed' _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 | $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 | $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 | $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 | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will 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; $ECHO \"$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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # 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; $ECHO \"$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='echo' # 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=echo 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" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -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" && $ECHO "X-set_version $verstring" | $Xsed` -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 "X-set_version $verstring" | $Xsed` -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=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) 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" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${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 "\-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*) # 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='echo' # 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 -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 -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 "\-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 "\-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(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 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_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 # 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 ]) 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 $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 else prev= fi if test "$pre_test_object_deps_done" = no; then case $p 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 ;; *.$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 # 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*) # 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_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _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_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _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_flag_spec_ld, $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(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 CC=${F77-"f77"} 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" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _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_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _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_flag_spec_ld, $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(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 CC=${FC-"f95"} 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" 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_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} 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 ## 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... 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" ])# _LT_LANG_GCJ_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_GCC=$GCC GCC= CC=${RC-"windres"} 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" ])# _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_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_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"}, \ = c,a/b,, \ && 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_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # 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 () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # 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_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}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # 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 () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -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 file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # 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 "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) XQilla-2.3.4/autotools/m4/ltoptions.m40000644001725400016040000002724213232476422014521 00000000000000# Helper functions for option handling. -*- 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 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], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [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], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [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])]) XQilla-2.3.4/autotools/install-sh0000755001725400016040000003246413273140037013705 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # 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 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 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 trap '(exit $?); exit' 1 2 13 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 starting with `-'. 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 # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # 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-writeable 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 -z "$d" && 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-end: "$" # End: XQilla-2.3.4/autotools/config.sub0000755001725400016040000010224013273140037013652 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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-dietlibc | linux-newlib* | 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/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -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*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | 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 \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | 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 | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-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-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | 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-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | 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-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | 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-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | 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 ;; 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) 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'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; 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 ;; 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-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; 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) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) 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 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-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 ;; 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. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -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* \ | -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* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -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*) # 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 ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -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 ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-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 ;; -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: XQilla-2.3.4/autotools/config.guess0000755001725400016040000013226413273140037014220 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; 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 __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *: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'` exit ;; 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: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:*:[456]) 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 __LP64__ >/dev/null 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:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) 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 ;; 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-gnu`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/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix 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-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu 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 ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu 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-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; 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.0*:*) 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.0*:*) 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 ;; 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 case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac 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 ;; 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 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\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: XQilla-2.3.4/autotools/ltmain.sh0000755001725400016040000073337413273140037013534 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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 # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long 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. # 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.2.6 Debian-2.2.6a-4 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6 Debian-2.2.6a-4" TIMESTAMP="" package_revision=1.3012 # 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 # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). 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 $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${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_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 "X${1}" | $Xsed -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 "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # 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" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # 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=: 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' # 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${mode+: }$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_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$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 "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e '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 "X$my_tmpdir" | $Xsed } # 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 "X$1" | $Xsed -e "$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 "X$1" | $Xsed \ -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_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$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 () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { 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 --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </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 } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # 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 # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 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 mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done 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_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # 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 } ## ----------- ## ## Main. ## ## ----------- ## $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 test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$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=$mode' for more information." } # 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_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # 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_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_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done 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 "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # 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_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # 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 <?"'"'"' &()|`$[]' \ && 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 "X$srcfile" | $Xsed -e 's%^.*/%%' -e '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 removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi 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 command="$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 command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$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 "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $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 building PIC objects only -prefer-non-pic try to building 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 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 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 -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 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 \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # 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 $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # 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 dir="$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 -*) ;; *) # 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_quote_for_eval "$file" args="$args $func_quote_for_eval_result" 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 "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done 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" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $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 "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$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. $ECHO "X$nonopt" | $GREP shtool >/dev/null; 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" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_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 -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. staticlibs="$staticlibs $file" ;; *.la) # 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 "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -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 "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "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_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" && staticlibs="$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 "X$lib" | $Xsed -e '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 "X$relink_command" | $Xsed -e '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 "X$file$stripped_ext" | $Xsed -e "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_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $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 "$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 /* 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 "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $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" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } 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; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ 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) ;; *) symtab_cflags="$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 "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "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 "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "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. 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 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $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_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' 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 | $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 | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $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. Xsed='${SED} -e 1s/^X//' 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 ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_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 \"X\$thisdir\" | \$Xsed -e '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" # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 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\ " } # end: func_emit_wrapper_part2 # 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=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # 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. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # 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_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # 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 # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #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 #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #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 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #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) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; 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_fatal (const char *message, ...); 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_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 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; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); 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; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); 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 ("getcwd failed"); 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 ("getcwd failed"); 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) { LTWRAPPER_DEBUGPRINTF (("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 { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("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; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? 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; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? 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) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? 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 } # end: func_emit_cwrapperexe_src # 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 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 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 dlfiles="$dlfiles $arg" else dlprefiles="$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 "*) ;; *) deplibs="$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 # moreargs="$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 dlfiles="$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. dlprefiles="$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 "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$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 ;; -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" dir=$func_stripname_result if test -z "$dir"; 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 # 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 "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$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*) # 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 deplibs="$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 deplibs="$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) compiler_flags="$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) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$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_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$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" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$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" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$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" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$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 dlfiles="$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. dlprefiles="$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. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" 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 \"X\${$shlibpath_var}\" \| \$Xsed -e \'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" # 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_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$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 "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$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%" test "X$link_all_deplibs" != Xno && libs="$libs $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= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$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) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$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 "*) ;; * ) new_inherited_linker_flags="$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" newlib_search_path="$newlib_search_path $func_stripname_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" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$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 \"X$deplib\"" 2>/dev/null | $Xsed -e 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. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$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 "X$inherited_linker_flags" | $Xsed -e '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 "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e '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" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$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. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done 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. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$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 "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$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 notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$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 # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$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" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi 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 newlib_search_path="$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" newlib_search_path="$newlib_search_path $func_stripname_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_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$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:"*) ;; *) temp_rpath="$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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$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 notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$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 "$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$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$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:"*) ;; *) compile_shlibpath="$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:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$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:"*) ;; *) finalize_shlibpath="$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 [\\/]*) add_dir="$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 "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$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" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" 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_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 compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$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 "X $new_inherited_linker_flags" | $Xsed -e '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 "*) ;; *) lib_search_path="$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 "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$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 tmp_libs="$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" objs="$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!" libobjs="$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 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|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 ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; 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) 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. verstring="$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" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$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 removelist="$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 oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "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 temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$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 "*) ;; *) dlfiles="$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 "*) ;; *) dlprefiles="$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*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$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 deplibs="$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` 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$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. newdeplibs="$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 "*) newdeplibs="$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 \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$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. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e '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 "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $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 fi ;; 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 "X $newdeplibs" | $Xsed -e '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 "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e '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 "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$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 if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$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 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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$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" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$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 "$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 linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$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" delfiles="$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 cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' 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 "X$include_expsyms" | $Xsed | $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 delfiles="$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 "*) ;; *) tmp_deplibs="$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" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$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\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$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 output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # 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 $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" 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 $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" 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. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$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~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$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 "$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 "X$include_expsyms" | $Xsed | $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 delfiles="$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" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$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 "$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 "$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 "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$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 "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e '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]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e '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 "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$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 "*) ;; *) finalize_rpath="$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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$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;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$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 "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$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 *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) 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 "X$compile_command" | $Xsed -e '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=$?' # 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 rpath="$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 rpath="$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 "X$link_command" | $Xsed -e '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 $?' 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 "X$compile_var$compile_command$compile_rpath" | $Xsed -e '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 "X$link_command" | $Xsed -e '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 $?' # 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 "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$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 oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$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" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$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" generated="$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" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi 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 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 "X$relink_command" | $Xsed -e "$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" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$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" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$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" newdlprefiles="$newdlprefiles $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 newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; 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 "$mode" = link || test "$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) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; 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 rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${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 rmfiles="$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 rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$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 rmfiles="$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 rmfiles="$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 rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # 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 "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$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 XQilla-2.3.4/autotools/mkinstalldirs0000755001725400016040000000662213273140037014504 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2005-06-29.22 # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.4/autotools/depcomp0000755001725400016040000003710013273140037013246 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -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, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.4/autotools/missing0000755001725400016040000002540613273140037013276 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] 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 # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.4/wintools/0000755001725400016040000000000013273141207011575 500000000000000XQilla-2.3.4/wintools/s_projects0000755001725400016040000000257613273140040013622 00000000000000# # This script drives construction of Visual Studio projects # files, using an xquery script (genproject.template),an input XML # document, and a file containing a list of project names. # # xml document input template CONFIG_INPUT=xqilla.template.xml # temporary xml document, post-sed-replacement CONFIG_OUTPUT=xqilla.xml # substitute some variables in the XML document template sed -f lib_paths.sed < $CONFIG_INPUT > $CONFIG_OUTPUT # find the xqilla command line tool XQILLA=`which xqilla` if [ ! -x "$XQILLA" ]; then XQILLA="../xqilla" fi if [ ! -x "$XQILLA" ]; then XQILLA="../build/xqilla" fi if [ ! -x "$XQILLA" ]; then echo "XQilla executable not found. Maybe you need to add it to the path?" exit 1 fi echo XQILLA = $XQILLA # generate the VC project files $XQILLA -u xqilla.vs2010.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" $XQILLA -u xqilla.vs2010_filter.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" for file in `ls ../Win32Projects/VC10/*.vcxproj ../Win32Projects/VC10/*.vcxproj.filters ../Win32Projects/VC11/*.vcxproj ../Win32Projects/VC11/*.vcxproj.filters ../Win32Projects/VC14/*.vcxproj ../Win32Projects/VC14/*.vcxproj.filters` do sed '2,$s/xmlns="http:\/\/schemas.microsoft.com\/developer\/msbuild\/2003"//' $file > temp sed '1 i\ ' temp > temp2 rm -f temp mv temp2 $file done XQilla-2.3.4/wintools/xqilla.template.xml0000644001725400016040000017703713273140040015354 00000000000000 10.0 11.0 14.0 ../../ ../../build/windows/VC10/ ../../build/windows/VC11/ ../../build/windows/VC14/ WIN32;_WINDOWS _DEBUG NDEBUG _USRDLL _CONSOLE _CRT_SECURE_NO_WARNINGS _LIB;XQILLA_API=;XERCES_STATIC_LIBRARY XQILLA_API=;XERCES_STATIC_LIBRARY= ../../include,../../src/lexer,@XERCES_WINHOME@/include,@XERCES_WINHOME@/src,@XERCES_WINHOME@/build/src> @XQILLA_LIB@d @XQILLA_LIB@ @XQILLA_STATIC_LIB@d @XQILLA_STATIC_LIB@ $(OutDir) $(OutDir) $(OutDir) $(OutDir) @XERCES_LIB@d @XERCES_LIB@ @XERCES_STATIC_LIB@d @XERCES_STATIC_LIB@ @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) @XERCES_WINHOME@/build/src/$(ConfigurationName) library Static xerces all cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS= cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS= ..\ cmake --build . ..\ cmake --build . --config Debug XQILLA_APIS XQILLA_APIS app Static xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all XQilla-2.3.4/wintools/README0000644001725400016040000000266513273140040012400 00000000000000This directory and the tools here are used to generate Windows project files for the main XQilla library and related projects. VC9 files are generated. The latter can be opened using Visual Studio 2008 (9) and later releases as well. The process: 1. Source (including header) files are added to xqilla.template.xml. Be sure to update that file when files are added or removed from the project. 2. Run the script, s_win32, which calls the script s_projects to generate project files. These files land in ../Win32Projects/{VC9,VC10,VC11}. s_projects requires that the xqilla command line utility be in your PATH, because it uses XQuery and the input XML document (xqilla.template.xml) to generate the project files. The scripts must be run on a Unix-style machine, most likely, as they use bash and commands that are typically available on Unix. They *may* run under cygwin. DO NOT EVER manually edit the output project files (*.vcproj). If changes are required, edit the templates and scripts and generate the changed projects. Details: The s_projects script uses lib_paths.sed to substitute variables in xqilla.template.xml, substitutes the project name in the XQuery script, genproject.template, then calls the xqilla command passing the resulting script, which uses the XML document input to generate a specific project file. Todo: 1. Maybe generate Makefile.am from xqilla.template.xml as well (or vice versa). XQilla-2.3.4/wintools/genproject.xq0000644001725400016040000004125213273140040014225 00000000000000(: * IMPORTANT: this file is shared (identical) between the BDB XML and XQilla * projects. It should not be changed independently or in any way that makes * it project-dependent. * * TBD: * 1. Could drive the remaining variables, including Visual Studio * variables, off of the xml file and provide the XML input * file as an external variable to the query. E.g. some projects * may want to parameterize the optimization and warnings levels * 2. Generate AdditionalIncludeDirectories based on the elements for * projects rather than just including "all" :) declare variable $projectFile external; declare variable $outputPath external; declare variable $projectDoc := doc($projectFile); declare variable $sourcePath := $projectDoc/projects/variable[@name="sourcePath"]; (: Visual Studio Variables --relatively static :) declare variable $debugOptLevel := "0"; (: VS -- no optimization :) declare variable $releaseOptLevel := "2"; (: VS -- level 2 opt :) declare variable $warnLevel := "3"; (: VS warning level :) declare variable $appType := "1"; (: VS type 1 is a program :) declare variable $dllType := "2"; (: VS type 2 is a DLL :) declare variable $staticType := "4"; (: VS type 4 is a static lib :) declare variable $debugInfo := "3"; (: VS debug information format :) declare variable $libExtension := ".lib"; (: formatting :) declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; (: is it a DLL, Application, or static library? :) declare function local:configurationType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then $staticType else $dllType else if ($project/type eq "app") then $appType else error(QName("", "xqilla"),"configurationType: unknown project type") }; (: "normalize" Windows file paths :) declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; (: debug vs release :) declare function local:isDebug($config) as xs:boolean { contains($config,"Debug") }; declare function local:isRelease($config) as xs:boolean { contains($config,"Release") }; (: machine-target-dependent link options :) declare function local:addLinkOptions($project, $platform, $config) { let $machine := if (contains($platform,"Win32")) then "/machine:x86" else concat("/machine:",$platform) let $opt := string-join(($machine,$project/options/link[contains(@config,$config)])," ") return if (not($opt eq "")) then attribute{"AdditionalOptions"}{$opt} else () }; declare function local:addDebugInformation($config) { attribute{"DebugInformationFormat"}{$debugInfo}, if (local:isDebug($config)) then attribute{"BasicRuntimeChecks"}{"3"} else () }; (: return "dll", "app", "static_lib", or "static_app" :) declare function local:getProjectType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "static_lib" else "dll" else if ($project/type eq "app") then if (contains($config,"Static")) then "static_app" else "app" else error(QName("", "dbxml"),"getProjectType: unknown project type") }; declare function local:generateCompilerPreprocessorDefs($project, $config) { let $ptype := local:getProjectType($project,$config) let $generic := $projectDoc/projects/preprocessor[@config="all" or contains($config,@config)] let $genericType := $projectDoc/projects/preprocessor[@config=$ptype] let $proj := $project/preprocessor[@config="all" or contains(@config,$config)] let $projType := $project/preprocessor[@config=$ptype] return string-join(($generic,$genericType,$proj,$projType),";") }; (: declare function local:generateResourcePreprocessorDefs($config) { let $dbg := if (local:isDebug($config)) then "_DEBUG" else "NDEBUG" return concat($dbg,";_CRT_SECURE_NO_DEPRECATE=1") }; :) (: Optimization level :) declare function local:optLevel($config) { if (local:isDebug($config)) then $debugOptLevel else $releaseOptLevel }; (: MDd is 3, MD is 2, MTd is 1, MT is 0 :) declare function local:runtimeLibrary($config,$static as xs:boolean) { if (local:isDebug($config)) then if ($static) then "1" else"3" else if ($static) then "0" else"2" }; declare function local:getLibName($name, $config) { $projectDoc/projects/library[@name=$name]/libname[@config=$config] }; declare function local:makeStaticOutputFile($project, $config) { attribute{"OutputFile"} {concat("$(OutDir)/", local:getLibName($project/@name, $config),".lib") } }; declare function local:makeImportLibrary($project, $config) { if ($project/type eq "library" and not(contains($config,"Static"))) then attribute{"ImportLibrary"}{concat("$(OutDir)/", local:getLibName($project/@name, $config),".lib")} else () }; declare function local:makeModuleDefinition($project, $config) { if (not(empty($project/moddef))) then attribute{"ModuleDefinitionFile"}{local:windowsPath(concat($sourcePath,$project/moddef/@file))} else () }; declare function local:makeOutputPDBFile($project, $config) { attribute{"ProgramDatabaseFile"} { if ($project/type eq "library") then concat("$(OutDir)/", local:getLibName($project/@name, $config),".pdb") else concat("$(OutDir)/",if (not(empty($project/@outputpdb))) then $project/@outputpdb else $project/@name,".pdb") } }; declare function local:makeOutputFile($project, $config) { attribute{"OutputFile"} { if ($project/type eq "library") then concat("$(OutDir)/", local:getLibName($project/@name, $config), ".dll") else concat("$(OutDir)/",if (not(empty($project/@output))) then $project/@output else $project/@name,".exe") } }; (: The simple thing is to add all libraries for all projects :) declare function local:addLibraryDependencies($project,$config) { attribute{"AdditionalDependencies"}{string-join(for $dep in $project/depends return concat(local:getLibName($dep, $config),".lib")," ")} }; declare function local:makeLibraryDirectory($lib,$platform,$config,$vsversion) { for $dir in $lib/platform[contains(@name,$platform) and contains(@vsver,$vsversion)]/config[$config=./@type]/libdir return if (not(empty($lib/libbase[@vsver=$vsversion]))) then concat($lib/libbase[@vsver=$vsversion],"/", $dir) else $dir }; (: The simple thing is to add all libraries for all projects :) declare function local:addLibraryDirectories($project,$platform,$config,$vsversion) { attribute{"AdditionalLibraryDirectories"}{string-join(for $dep in $project/depends return local:makeLibraryDirectory($projectDoc/projects/library[@name=$dep],$platform,$config,$vsversion),";")} }; (: The simple thing is to add all libraries for all projects :) declare function local:addIncludeDirectories($project,$config) { let $incref := for $inc in $project/include[@type="ref"] return $projectDoc/projects/include[@name=$inc] let $increl := $project/include[@type="rel"] return attribute{"AdditionalIncludeDirectories"}{string-join(($incref,$increl),",")} }; (: look for project-specific tool, then a type-specific event :) declare function local:generatePostBuildEvent($project, $config) { local:indent(6), {attribute{"Name"}{"VCPostBuildEventTool"}} {if (not(empty($project/event[@name="postbuild"]))) then (attribute{"CommandLine"}{$project/event[@name="postbuild"]/command[@config=$config]}, attribute{"Description"}{$project/event[@name="postbuild"]/description}) else let $ev := $projectDoc/projects/event[@name="postbuild" and @type=$project/type] return if (not(empty($ev))) then (attribute{"CommandLine"}{replace($ev/command[@config=$config],"@pname@",if (not(empty($project/@output))) then $project/@output else $project/@name)}, attribute{"Description"}{$ev/description}) else () } }; declare function local:generateCustomBuildTool($project, $config) { local:indent(6), {attribute{"Name"}{"VCCustomBuildTool"}} {if (not(empty($project/event[@name="custom"]))) then (attribute{"CommandLine"}{$project/event[@name="custom"]/command[contains(@config,$config)]}, attribute{"Outputs"}{$project/event[@name="custom"]/output}) else ()} }; (: static build of libraries; at this time it does *not* add additional dependent libraries. This means that applications need to include them for the time being. :) declare function local:generateConfigLibrarian($project, $platform, $config) { local:indent(6), {attribute{"Name"}{"VCLibrarianTool"}} {local:addLinkOptions($project,$platform,$config)} {local:makeStaticOutputFile($project,$config)} }; declare function local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion) { local:indent(6), {attribute{"Name"}{"VCLinkerTool"}} {local:addLinkOptions($project, $platform, $config)} {local:addLibraryDependencies($project,$config)} {local:addLibraryDirectories($project,$platform,$config,$vsversion)} {local:makeOutputFile($project, $config)} {local:makeOutputPDBFile($project, $config)} {if (local:isDebug($config)) then attribute{"LinkIncremental"}{"2"} else attribute{"LinkIncremental"}{"1"}} {attribute{"GenerateDebugInformation"}{"TRUE"}} {attribute{"SuppressStartupBanner"}{"TRUE"}} {if (local:isDebug($config)) then attribute{"OptimizeReferences"}{"1"} else attribute{"OptimizeReferences"}{"2"}} {local:makeImportLibrary($project,$config)} {local:makeModuleDefinition($project,$config)} {attribute{"TargetMachine"}{"0"}} }; declare function local:generateConfigCompiler($project, $platform, $config, $static as xs:boolean, $vsversion) { local:indent(6), {attribute{"Name"}{"VCCLCompilerTool"}} {attribute{"Optimization"}{local:optLevel($config)}} {attribute{"MinimalRebuild"}{"TRUE"}} {if (local:isRelease($config)) then attribute{"InlineFunctionExpansion"}{"1"} else ()} {local:addIncludeDirectories($project,$config)} {attribute{"PreprocessorDefinitions"}{local:generateCompilerPreprocessorDefs($project, $config)}} {attribute{"StringPooling"}{"TRUE"}} {if (not(empty($project/options/rtti))) then attribute{"RuntimeTypeInfo"}{"TRUE"} else ()} {attribute{"RuntimeLibrary"}{local:runtimeLibrary($config,$static)}} {if (local:isRelease($config)) then attribute{"EnableFunctionLevelLinking"}{"TRUE"} else ()} {attribute{"UsePrecompiledHeader"}{"0"}} {if ($project/@name eq "dbxml") then attribute{"PrecompiledHeaderThrough"}{"DbXmlInternal.hpp"} else ()} {attribute{"PrecompiledHeaderFile"}{concat("./$(IntDir)/",$project/@name,".pch")}} {attribute{"AssemblerListingLocation"}{"./$(IntDir)/"}} {attribute{"ObjectFile"}{"./$(IntDir)/"}} {attribute{"WarningLevel"}{$warnLevel}} {attribute{"SuppressStartupBanner"}{"TRUE"}} {local:addDebugInformation($config)} {attribute{"CompileAs"}{"0"}} }; declare function local:generateConfigBoilerplate($config) { local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6), }; (: use "platform/configuration" :) declare function local:generateOutputDirectory($platform,$config,$vsversion) { let $outputBase := $projectDoc/projects/variable[@name=concat("outputBase.", $vsversion)] return attribute{"OutputDirectory"}{local:windowsPath(concat($outputBase,"$(PlatformName)","/",$config))} }; declare function local:generateConfig($project, $platform, $config, $vsversion) { local:indent(4), {attribute{"Name"}{concat($config,"|",$platform)}} {local:generateOutputDirectory($platform,$config,$vsversion)} {attribute{"IntermediateDirectory"}{concat("./$(OutDir)/",$project/@name)}} {attribute{"ConfigurationType"}{local:configurationType($project,$config)}} {attribute{"UseOfMFC"}{"0"}} {attribute{"ATLMinimizesCRunTimeLibraryUsage"}{"FALSE"}} {attribute{"CharacterSet"}{"2"}} {local:generateConfigBoilerplate($config)} {local:generateConfigCompiler($project, $platform, $config,false(),$vsversion)} {local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion)} {local:generatePostBuildEvent($project,if (local:isDebug($config)) then "Debug" else "Release")} {local:generateCustomBuildTool($project,if (local:isDebug($config)) then "Debug" else "Release")} }; declare function local:generateStaticConfig($project, $platform, $config, $vsversion) { local:indent(4), {attribute{"Name"}{concat($config,"|",$platform)}} {local:generateOutputDirectory($platform,$config,$vsversion)} {attribute{"IntermediateDirectory"}{concat("./$(OutDir)/",$project/@name)}} {attribute{"ConfigurationType"}{local:configurationType($project,$config)}} {attribute{"UseOfMFC"}{"0"}} {attribute{"ATLMinimizesCRunTimeLibraryUsage"}{"FALSE"}} {attribute{"CharacterSet"}{"2"}} {local:generateConfigBoilerplate($config)} {local:generateConfigCompiler($project, $platform, $config,true(),$vsversion)} {if (contains($project/type,"lib")) then local:generateConfigLibrarian($project, $platform, $config) else local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion) } }; declare function local:generateRcFile($file, $vsversion) { local:indent(4), { for $platform in local:getPlatforms($vsversion) return for $config in ("Debug","Release") return (local:indent(6), {local:indent(6)}) } {local:indent(4)} }; declare function local:generateFilesNoFilter($project, $vsversion) { for $file in $project/files/file return if (ends-with($file/@name,".rc")) then local:generateRcFile($file, $vsversion) else (local:indent(4),) }; declare function local:generateFilesWithFilter($project,$filter,$vsversion) { for $file in $project/files/filter[@name=$filter]/file return if (ends-with($file/@name,".rc")) then local:generateRcFile($file, $vsversion) else (local:indent(6),) }; declare function local:generateFiles($project, $vsversion) { let $filters := $project/files/filter/@name return if (empty($filters)) then local:generateFilesNoFilter($project, $vsversion) else for $filter in $filters return (local:indent(4), {local:generateFilesWithFilter($project,$filter,$vsversion)} {local:indent(4)}) }; declare function local:getGuid($project) { concat("{",$project/@guid,"}") }; declare function local:getPlatforms($version) { if ($version eq "7.10") then ("Win32") else ("Win32", "x64") }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "7.10") then "VC7.1" else if($vsversion = "8.00") then "VC8" else "VC9" return concat($outputPath, "/", $vsname, "/", $project/@name, ".vcproj") }; declare function local:getConfigurations($project) { for $compType in ("Debug","Release") return for $config in $project/configuration return concat($config,$compType) }; for $vsversion in distinct-values($projectDoc//visualstudioversion) for $project in $projectDoc/projects/project let $static := contains($project/@name,"static") let $proj := $project return if ($vsversion = "10.0") then () else if ($vsversion = "11.0") then () else ( put( {local:indent(2)} {local:indent(4)} {local:indent(4)} {local:indent(2)} {local:indent(2)} { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfigurations($proj) return if (contains($config, "Static")) then local:generateStaticConfig($project, $platform, $config, $vsversion) else local:generateConfig($project, $platform, $config, $vsversion) } {local:indent(2)} {local:indent(2)} {local:indent(2)} {local:generateFiles($proj, $vsversion)} {local:indent(2)} {local:indent(2)} {" "}, local:getOutputName($project, $vsversion)) ) XQilla-2.3.4/wintools/s_win320000755001725400016040000000016313273140040012721 00000000000000#!/bin/sh # $Id$ # # s_projects requires that xqilla (the command line program) be in # your PATH sh ./s_projects XQilla-2.3.4/wintools/lib_paths.sed0000644001725400016040000000217313273140040014154 00000000000000# $Id$ # Default path for XQilla library, and paths to # Xerces # # # XQilla libraries are named: # xqilla{d}.{lib,dll,pdb} # e.g. # xqilla22.dll (release) or xqilla22d.dll (debug) # # Assume dependent libraries are in ../../../XXX_HOME, e.g. # ../../../xerces-c-src s!@XQILLA_STATIC_LIB@!@XQILLA_LIB@s!g s!@XQILLA_LIB@!@XQILLA_LIB_BASE@@XQILLA_VERSION_MAJOR@@XQILLA_VERSION_MINOR@!g s!@XQILLA_LIB_BASE@!xqilla!g s!@XQILLA_VERSION_MAJOR@!2!g s!@XQILLA_VERSION_MINOR@!3!g s!@XQILLA_VERSION_PATCH@!4!g # Xerces is assumed to be source (vs installation) s!@XERCES_LIBHOME9@!@XERCES_WINHOME@/Build!g s!@XERCES_LIBHOME10@!@XERCES_WINHOME@/Build!g s!@XERCES_LIBHOME11@!@XERCES_WINHOME@/Build!g # Xerces-c is in ../../../xerces-c-src s!@XERCES_WINHOME@!../../../@XERCES_NAME@!g s!@XERCES_NAME@!xerces-c-src!g s!@XERCES_STATIC_LIB@!xerces-c_static_@XERCES_VERSION_MAJOR@!g s!@XERCES_LIB@!xerces-c_@XERCES_VERSION_MAJOR@!g s!@XERCES_DLL@!xerces-c_@XERCES_VERSION_MAJOR@_@XERCES_VERSION_MINOR@!g # Current Xerces version is 3.2.0 s!@XERCES_VERSION_MAJOR@!3!g s!@XERCES_VERSION_MINOR@!2!g s!@XERCES_VERSION_PATCH@!0!g XQilla-2.3.4/wintools/xqilla.vs2010_filter.xq0000644001725400016040000001122313273140040015651 00000000000000declare variable $projectFile external; declare variable $outputPath external; declare variable $msbversion := "4.0"; declare variable $sourcePath := doc($projectFile)/projects/variable[@name="sourcePath"]; declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; declare function local:getFilteredProjects() { doc($projectFile)/projects/project[@name="xqilla"] }; declare function local:getVsversion() { (: Only be suitable when version >= 10.0 :) distinct-values(doc($projectFile)//visualstudioversion[fn:number(.) >= 10.0]) }; declare function local:getPlatforms($version) { if ($version eq "14.0") then ("Win32", "x64", "ARM") else ("Win32", "x64") }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "10.0") then "VC10" else if($vsversion = "11.0") then "VC11" else "VC14" return concat($outputPath, "/", $vsname, "/", $project/@name, ".vcxproj.filters") }; declare function local:genFilters($project){ for $filter in $project/files/filter let $name := $filter/@name let $guid := $filter/@guid return (local:indent(4), {local:indent(6)}{concat("{",$guid,"}")} {local:indent(4)}) }; declare function local:getFilterName($file){ data($file/../@name) }; declare function local:generateIncFiles($project) { for $file in $project/files//file return if (ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then (local:indent(4), {local:indent(6)}{local:getFilterName($file)} {local:indent(4)}) else () }; declare function local:getConfiguration($project) { for $compType in ("Debug", "Release") return for $config in $project/configuration return concat($config, $compType) }; declare function local:generateSrcFiles($project) { for $file in $project/files//file return if (ends-with($file/@name,".rc") or ends-with($file/@name,".def") or ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then () else (local:indent(4), {local:indent(6)}{local:getFilterName($file)} {local:indent(4)} ) }; declare function local:generateRCFiles($project) { for $file in $project/files//file let $vsversion := local:getVsversion() return if (ends-with($file/@name,".rc")) then (local:indent(2), {local:indent(4)} {local:indent(6)}{local:getFilterName($file)} {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return( local:indent(6), {concat(if ($config="Debug") then "_DEBUG" else "NDEBUG",";","$(NoInherit))",";%(PreprocessorDefinitions)")}) } {local:indent(4)} {local:indent(2)} ) else () }; declare function local:genFiles($project){ local:indent(2), {local:generateIncFiles($project)} {local:indent(2)}, local:indent(2), {local:generateSrcFiles($project)} {local:indent(2)}, local:generateRCFiles($project) }; for $vsversion in local:getVsversion() for $project in local:getFilteredProjects() return put( {local:indent(2)} {local:genFilters($project)} {local:indent(2)} {local:genFiles($project)} {local:indent(0)}, local:getOutputName($project,$vsversion) ) XQilla-2.3.4/wintools/xqilla.vs2010.xq0000644001725400016040000006312313273140040014312 00000000000000(:declare default element namespace "http://schemas.microsoft.com/developer/msbuild/2003";:) declare variable $projectFile external; declare variable $outputPath external; declare variable $xmlversion := "1.0"; declare variable $xmlencoding := "utf-8"; declare variable $msbversion := "4.0"; declare variable $msbnamespace := "http://schemas.microsoft.com/developer/msbuild/2003"; declare variable $msbdefprops := '$(VCTargetsPath)\Microsoft.Cpp.Default.props'; declare variable $msbprops := '$(VCTargetsPath)\Microsoft.Cpp.props'; declare variable $msbtargets := "$(VCTargetsPath)\Microsoft.Cpp.targets"; declare variable $mobile := xs:boolean(doc($projectFile)/projects/variable[@name="mobile"]); declare variable $debugOptLevel := "Disabled"; declare variable $releaseOptLevel := "MaxSpeed"; declare variable $warnLevel := "Level3"; declare variable $debugInfo := "ProgramDatabase"; declare variable $sourcePath := doc($projectFile)/projects/variable[@name="sourcePath"]; declare variable $dllType := "dll"; declare variable $appType := "Application"; declare variable $libprop := "library.props"; declare function local:genImportProperty($libprop) { local:indent(2), {local:indent(4)} local:indent(2) }; declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; declare function local:getPlatforms($version) { if ($version eq "14.0") then ("Win32", "x64", "ARM") else ("Win32", "x64") }; declare function local:getGuid($project) { concat("{",$project/@guid,"}") }; declare function local:generateProjectConfigurations($project, $vsversion) { local:indent(2), {for $config in local:getConfiguration($project) return for $platform in local:getPlatforms($vsversion) return (local:indent(4), {local:indent(6)}{$config} {local:indent(6)}{$platform} {local:indent(4)}) } {local:indent(2)} }; declare function local:generateGlobalProperty($project) { local:indent(2), {local:indent(2)}{local:getGuid($project)} {local:indent(2)} }; declare function local:configurationType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "StaticLibrary" else "DynamicLibrary" else if ($project/type eq "app") then "Application" else error(QName("","xqilla"),"configurationType:unkown project type") }; declare function local:getPlatformToolset($vsversion) { if ($vsversion = "10.0") then "v100" else if ($vsversion = "11.0") then "v110" else "v140" }; declare function local:generateConfigurations($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) let $configType := local:configurationType($project,$config) let $platformToolset := local:getPlatformToolset($vsversion) return (local:indent(2), {local:indent(4)}{$configType} {local:indent(4)}false {local:indent(4)}MultiByte {local:indent(4)}{$platformToolset} {local:indent(2)} ) }; declare function local:genExtensionSettings() { local:indent(2), {local:indent(2)} }; declare function local:genExtensionTargets() { local:indent(2), {local:indent(2)} }; declare variable $msbuserprops := "$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"; declare variable $msbuserpropsexit := "exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"; declare function local:genPropertySheets($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return (local:indent(2), {local:indent(4)} {local:indent(4)} ) }; declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; declare function local:generateOutDir($config, $vsversion) { let $outputBase := doc($projectFile)/projects/variable[@name=concat("outputBase.", $vsversion)] return local:windowsPath(concat($outputBase, "$(Platform)", "/", $config, "/")) }; (:becaues zlib has different 32 and 64 bits platform libraries, so use another getLibName:) declare function local:getLibName($name, $config) { doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and not(@platform eq "x64")]/text() }; declare function local:getLibNameWithPlatform($name, $config, $platform) { let $libnamePlatform := doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and @platform=$platform]/text() let $libname := doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and not(@platform)]/text() return if ($libnamePlatform) then ($libnamePlatform) else ($libname) }; declare function local:genMacros($project, $vsversion) { local:genDynamicMacros($project, $vsversion) }; declare function local:genTargetName($project,$config) { if ($project/type eq "library") then local:getLibName($project/@name, $config) else if (not(empty($project/@output))) then data($project/@output) else data($project/@name) }; declare function local:genTargetExt($project, $config) { if ($project/type eq "library") then if (contains($config, "Static")) then ".lib" else ".dll" else ".exe" }; (: no static variable usage now :) declare function local:genDynamicMacros($project, $vsversion) { local:indent(2), {local:indent(4)}<_ProjectFileVersion>10.0.30319.1 {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return (local:indent(4), {local:generateOutDir($config, $vsversion)}, local:indent(4), {concat("./$(OutDir)",$project/@name,"\")}, local:indent(4),false, local:indent(4),{local:genTargetName($project,$config)}, local:indent(4),{local:genTargetExt($project, $config)} ) } {local:indent(2)} }; declare function local:isDebug($config) as xs:boolean { contains($config,"Debug") }; declare function local:isRelease($config) as xs:boolean { contains($config,"Release") }; declare function local:isStatic($config) as xs:boolean { contains($config,"Static") }; declare function local:optLevel($config) { if (local:isDebug($config)) then $debugOptLevel else $releaseOptLevel }; declare function local:addIncludeDirectories($project,$config) { let $incref := for $inc in $project/include[@type="ref"] return doc($projectFile)/projects/include[@name=$inc] let $increl := $project/include[@type="rel"] return translate(concat(string-join($incref,";"), if (not(empty($increl)) and not(empty($incref))) then ";" else "", string-join($increl,";"),";","%(AdditionalIncludeDirectories)"),",",";") }; declare function local:getProjectType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "static_lib" else "dll" else if ($project/type eq "app") then if (contains($config,"Static")) then "static_app" else "app" else error(QName("","dbxml"),"getProjectType:unkown project type") }; declare function local:generateCompilerPreprocessorDefs($project,$config) { let $ptype := local:getProjectType($project, $config) let $generic := doc($projectFile)/projects/preprocessor[@config="all" or contains($config,@config)] let $type := doc($projectFile)/projects/preprocessor[@config=$ptype] let $proj := $project/preprocessor[@config="all" or @config=$config] let $projType := $project/preprocessor[@config=$ptype] return concat(string-join(($generic,$type,$proj,$projType),";"),";","%(PreprocessorDefinitions)") }; declare function local:runtimeLibrary($config) { if (local:isDebug($config)) then if (contains($config,"Static")) then "MultiThreadedDebug" else "MultiThreadedDebugDLL" else if (contains($config,"Static")) then "MultiThreaded" else "MultiThreadedDLL" }; declare function local:makeObjectFile($project,$config) { concat("$(OutDir)", if (not(empty($project/@output))) then $project/@output else $project/@name,"/") }; declare function local:addDebugInformation($config) { local:indent(6),{$debugInfo}, if (local:isDebug($config)) then (local:indent(6),EnableFastChecks) else () }; declare function local:addLinkOptions($project, $platform, $config) { let $machine := if (contains($platform,"Win32")) then "/machine:x86" else concat("/machine:",$platform) let $opt := string-join(($machine,$project/options/link[contains(@config,$config)])," ") return if (not($opt eq " ")) then (local:indent(6),{string-join(($opt,"%(AdditionalOptions)")," ")} ) else () }; declare function local:addLibraryDependencies($project,$config,$platform) { string-join(for $dep in $project/depends return concat(local:getLibNameWithPlatform($dep,$config,$platform),".lib"), ";") }; declare function local:addProjectDependencies($project) { for $mydep in $project/references let $mytemp := ( if ($mydep eq "XercesLib") then '{152CE948-F659-4206-A50A-1D2B9658EF96}' else if ($mydep eq "xqilla") then '{63E85107-41E0-4FC7-8083-40E85861B426}' else lower-case(concat("{",doc($projectFile)/projects/project[@name=$mydep]/@guid,"}")) ) return (local:indent(4), {local:indent(6)}{$mytemp} {local:indent(6)}false {local:indent(4)}) }; declare function local:makeLibraryDirectory($lib,$platform,$config, $vsversion) { for $dir in $lib/platform[contains(@name,$platform)]/config[$config=./@type]/libdir return if (not(empty($lib/libbase[@vsver=$vsversion]))) then concat($lib/libbase[@vsver=$vsversion],"/",$dir) else $dir }; declare function local:addLibraryDirectories($project, $platform, $config, $vsversion) { string-join((for $dep in $project/depends return local:makeLibraryDirectory(doc($projectFile)/projects/library[@name=$dep],$platform,$config, $vsversion),"../lib"),";") }; declare function local:makeOutputPDBFile($project,$config) { if ($project/type eq "library") then concat("$(OutDir)",local:getLibName($project/@name,$config),".pdb") else concat("$(OutDir)",if (not(empty($project/@output))) then $project/@output else $project/@name,".pdb") }; declare function local:makeImportLibrary($project,$config) { if ($project/type eq "library" and not(contains($config,"Static"))) then (local:indent(6),{concat("$(OutDir)",local:getLibName($project/@name,$config),".lib")}) else () }; declare function local:makeModuleDefinition($project,$config) { if (not(empty($project/moddef))) then let $temp := concat($sourcePath,$project/moddef/@file) return (local:indent(6),{local:windowsPath($temp)}) else () }; declare function local:generateCustomBuildTool($project,$config) { if (not(empty($project/event[@name="custom"]))) then let $commandtext := $project/event[@name="custom"]/command[matches(@config,$config)]/text() let $outputs := concat($project/event[@name="custom"]/output,";%(Outputs)") return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}{$outputs} {local:indent(4)}) else if (not(empty($project/event[@name="postbuild"]))) then let $commandtext := $project/event[@name="postbuild"]/command[contains(@config,$config)]/text() let $message := $project/event[@name="postbuild"]/description return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}{$message} {local:indent(4)}) else if (not(empty($project/event[@name="prebuild"]))) then let $commandtext := $project/event[@name="prebuild"]/command[contains(@config,$config)]/text() let $message := $project/event[@name="prebuild"]/description return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}{$message} {local:indent(4)}) else () }; declare function local:enableSharedXerces($config) { if (local:isStatic($config)) then "OFF" else "ON" }; declare function local:buildXerces($project,$config,$vsversion, $platform) { if (not(empty($project/xerces))) then let $prefixtext := $project/xerces/prefixCommand[contains(@config,$config)]/text() let $suffixtext := $project/xerces/suffixCommand[contains(@config,$config)]/text() let $sharedBuild := local:enableSharedXerces($config) let $cmakePlat := if($platform = "Win32") then "" else if($platform = "x64") then "Win64" else $platform let $cmakePlatform := if($vsversion = "10.0") then concat(' -G "Visual Studio 10 2010 ',$cmakePlat,'" ') else if($vsversion = "11.0") then concat(' -G "Visual Studio 11 2012 ',$cmakePlat,'" ') else concat(' -G "Visual Studio 14 2015 ',$cmakePlat,'" ') let $commandtext := concat($prefixtext,$sharedBuild,$cmakePlatform, $suffixtext) return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}Building Xerces-C {local:indent(4)}) else () }; declare function local:genDefinition($project,$vsversion) { local:genDynamicDefinition($project,$vsversion) }; declare function local:generateConfigCompiler($project,$platform,$config) { local:indent(4), {local:indent(6)}{local:optLevel($config)} {local:indent(6)}true {if (local:isRelease($config)) then (local:indent(6),OnlyExplicitInline) else ()} {local:indent(6)}{local:addIncludeDirectories($project,$config)} {local:indent(6)}{local:generateCompilerPreprocessorDefs($project,$config)} {local:indent(6)}true {local:indent(6)}{local:runtimeLibrary($config)} {if (local:isRelease($config)) then (local:indent(6),true) else ()} {local:indent(6)} {local:indent(6)} {local:indent(6)}{concat("./$(OutDir)", $project/@name, ".pch")} {local:indent(6)}{local:makeObjectFile($project,$config)} {local:indent(6)}{local:makeObjectFile($project,$config)} {local:indent(6)}{$warnLevel} {local:indent(6)}true {local:addDebugInformation($config)} {local:indent(6)}Default {local:indent(4)} }; declare function local:generateDynamicLink($project, $platform, $config, $vsversion) { local:indent(4), {local:addLinkOptions($project,$platform,$config)} {local:indent(6)}{local:addLibraryDependencies($project,$config,$platform)};%(AdditionalDependencies) {local:indent(6)}{local:addLibraryDirectories($project,$platform,$config,$vsversion)};%(AdditionalLibraryDirectories) {local:indent(6)}$(OutDir)$(TargetName)$(TargetExt) {local:indent(6)}{local:makeOutputPDBFile($project,$config)} {local:indent(6)}true {local:indent(6)}true {local:makeImportLibrary($project,$config)} {local:indent(6)}true {local:makeModuleDefinition($project,$config)} {local:indent(6)}{if (contains($platform,"(ARMV4)")) then "MachineARM" else "NotSet"} {local:indent(4)} }; declare function local:generateConfigLibrarian($project,$platform,$config) { local:indent(4), {local:indent(6)}$(OutDir)$(TargetName)$(TargetExt) {local:addLinkOptions($project,$platform,$config)} {local:indent(4)} }; declare function local:generateStaticLink($project,$platform,$config,$vsversion) { if (contains($project/type,"lib")) then local:generateConfigLibrarian($project,$platform,$config) else local:generateDynamicLink($project,$platform,$config, $vsversion) }; declare function local:genDynamicDefinition($project,$vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) let $static := contains($config, "Static") return ( local:indent(2), {local:generateConfigCompiler($project,$platform,$config)} {if ($static) then local:generateStaticLink($project,$platform,$config, $vsversion) else local:generateDynamicLink($project,$platform,$config,$vsversion)} {local:generateCustomBuildTool($project,$config)} {local:buildXerces($project,$config,$vsversion, $platform)} {local:indent(2)} ) }; declare function local:genStaticDefinition($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return ( local:indent(2), {local:generateConfigCompiler($project,$platform,$config)} {local:generateStaticLink($project,$platform,$config,$vsversion)} {local:generateCustomBuildTool($project,$config)} {local:buildXerces($project,$config,$vsversion, $platform)} {local:indent(2)} ) }; declare function local:generateIncFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then (local:indent(4),) else () }; declare function local:generateSrcFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".rc") or ends-with($file/@name,".def") or ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then () else (local:indent(4),) }; declare function local:generateRcFilesNoFilter($project, $vsversion) { for $file in $project/files//file return if (ends-with($file/@name,".rc")) then (local:indent(2), {local:indent(4)} {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return( local:indent(6), {concat(if ($config="Debug") then "_DEBUG" else "NDEBUG",";","$(NoInherit))",";%(PreprocessorDefinitions)")}) } {local:indent(4)} {local:indent(2)} ) else () }; declare function local:generateDefFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".def")) then ( local:indent(2), {local:indent(4)} {local:indent(2)} ) else () }; declare function local:generateFilesWithFilter($project,$filter) { }; declare function local:genFiles($project,$vsversion) { local:indent(2), {local:generateIncFilesNoFilter($project)} {local:indent(2)}, local:indent(2), {local:generateSrcFilesNoFilter($project)} {local:indent(2)}, local:generateDefFilesNoFilter($project), local:generateRcFilesNoFilter($project,$vsversion) }; declare function local:getConfiguration($project) { for $compType in ("Debug", "Release") return for $config in $project/configuration return concat($config, $compType) }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "10.0") then "VC10" else if($vsversion = "11.0") then "VC11" else "VC14" return concat($outputPath, "/", $vsname, "/", $project/@name, ".vcxproj") }; declare function local:getVsversion() { (: Only be suitable when version >= 10.0 :) distinct-values(doc($projectFile)//visualstudioversion[fn:number(.) >= 10.0]) }; declare function local:getProjects() { doc($projectFile)/projects/project }; for $vsversion in local:getVsversion() for $project in local:getProjects() return put( {local:generateProjectConfigurations($project, $vsversion)} {local:generateGlobalProperty($project)} {local:indent(2)} {local:generateConfigurations($project, $vsversion)} {local:indent(2)} {local:genExtensionSettings()} {local:genPropertySheets($project, $vsversion)} {local:indent(2)} {local:genMacros($project, $vsversion)} {local:genDefinition($project,$vsversion)} {local:genFiles($project,$vsversion)} {local:indent(2)} {local:genExtensionTargets()} {local:indent(2)} {local:addProjectDependencies($project)} {local:indent(2)} {local:indent(0)}, local:getOutputName($project, $vsversion)) XQilla-2.3.4/Win32Projects/0000755001725400016040000000000013273141207012333 500000000000000XQilla-2.3.4/Win32Projects/VC10/0000755001725400016040000000000013273141207013004 500000000000000XQilla-2.3.4/Win32Projects/VC10/xqilla_cmd.vcxproj0000644001725400016040000006730013273140037016464 00000000000000 Debug Win32 Debug x64 Static Debug Win32 Static Debug x64 Release Win32 Release x64 Static Release Win32 Static Release x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC10\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/simple-basic.vcxproj0000644001725400016040000003432213273140037016715 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/xqtsRunner.vcxproj0000644001725400016040000003422013273140037016533 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/dom-resolver.vcxproj0000644001725400016040000003431713273140037016767 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/xmarkRunner.vcxproj0000644001725400016040000003425013273140037016661 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {619264FA-3730-43C4-A903-0EAA453527AC} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/xqc-basic.vcxproj0000644001725400016040000003420213273140037016214 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB574} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/dom-basic.vcxproj0000644001725400016040000003420413273140037016202 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {6672DE96-EA92-44A2-900E-6868A86FB044} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/dom-context-item.vcxproj0000644001725400016040000003446313273140037017550 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {E1A71F82-696D-4439-B647-CE04D75E49DC} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/xqilla.vcxproj0000644001725400016040000025672013273140037015647 00000000000000 Debug Win32 Debug x64 Static Debug Win32 Static Debug x64 Release Win32 Release x64 Static Release Win32 Static Release x64 {63E85107-41E0-4FC7-8083-40E85861B426} DynamicLibrary false MultiByte v100 StaticLibrary false MultiByte v100 DynamicLibrary false MultiByte v100 StaticLibrary false MultiByte v100 DynamicLibrary false MultiByte v100 StaticLibrary false MultiByte v100 DynamicLibrary false MultiByte v100 StaticLibrary false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC10\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC10\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC10\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC10\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 10 2010 " ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10 2010 " ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 10 2010 " ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10 2010 " ..\ cmake --build . Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 10 2010 Win64" ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10 2010 Win64" ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 10 2010 Win64" ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 10 2010 Win64" ..\ cmake --build . Building Xerces-C XQilla-2.3.4/Win32Projects/VC10/xqc-context-item.vcxproj0000644001725400016040000003446113273140037017562 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB575} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/simple-context-item.vcxproj0000644001725400016040000003460113273140037020254 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0} Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 Application false MultiByte v100 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC10\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC10\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC10/XQilla.sln0000644001725400016040000003507213273140037014643 00000000000000 Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla", "xqilla.vcxproj", "{63E85107-41E0-4FC7-8083-40E85861B426}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla_cmd", "xqilla_cmd.vcxproj", "{44F4673C-C971-4085-8750-3BA0D7FE6FD2}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqtsRunner", "xqtsRunner.vcxproj", "{E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmarkRunner", "xmarkRunner.vcxproj", "{619264FA-3730-43C4-A903-0EAA453527AC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-context-item", "simple-context-item.vcxproj", "{55BEA039-4B29-4909-902A-9DD4BEADBCD0}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-basic", "simple-basic.vcxproj", "{C03914F5-AA13-4B1C-A4B0-8FD6560AB573}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-resolver", "dom-resolver.vcxproj", "{31B7B9AA-109C-4B71-ADA6-274A6420969E}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-context-item", "dom-context-item.vcxproj", "{E1A71F82-696D-4439-B647-CE04D75E49DC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-basic", "dom-basic.vcxproj", "{6672DE96-EA92-44A2-900E-6868A86FB044}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 Static Debug|Win32 = Static Debug|Win32 Static Debug|x64 = Static Debug|x64 Static Release|Win32 = Static Release|Win32 Static Release|x64 = Static Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.ActiveCfg = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.Build.0 = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.ActiveCfg = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.Build.0 = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.ActiveCfg = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.Build.0 = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.ActiveCfg = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.Build.0 = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.Build.0 = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.ActiveCfg = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.Build.0 = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.ActiveCfg = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.Build.0 = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.ActiveCfg = Static Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.Build.0 = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.ActiveCfg = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.Build.0 = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.ActiveCfg = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.Build.0 = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.ActiveCfg = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.Build.0 = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.ActiveCfg = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.Build.0 = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.Build.0 = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.ActiveCfg = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.Build.0 = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.Build.0 = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.ActiveCfg = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.Build.0 = Static Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.Build.0 = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal XQilla-2.3.4/Win32Projects/VC14/0000755001725400016040000000000013273141207013010 500000000000000XQilla-2.3.4/Win32Projects/VC14/xqilla_cmd.vcxproj0000644001725400016040000012116413273140037016467 00000000000000 Debug Win32 Debug x64 Debug ARM Static Debug Win32 Static Debug x64 Static Debug ARM Release Win32 Release x64 Release ARM Static Release Win32 Static Release x64 Static Release ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/simple-basic.vcxproj0000644001725400016040000005117013273140037016721 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/xqtsRunner.vcxproj0000644001725400016040000005103613273140037016543 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/dom-resolver.vcxproj0000644001725400016040000005116513273140037016773 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/xmarkRunner.vcxproj0000644001725400016040000005110213273140037016660 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {619264FA-3730-43C4-A903-0EAA453527AC} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/xqc-basic.vcxproj0000644001725400016040000005100413273140037016217 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB574} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/dom-basic.vcxproj0000644001725400016040000005100613273140037016205 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {6672DE96-EA92-44A2-900E-6868A86FB044} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/dom-context-item.vcxproj0000644001725400016040000005141113273140037017544 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {E1A71F82-696D-4439-B647-CE04D75E49DC} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/xqilla.vcxproj0000644001725400016040000031110713273140037015642 00000000000000 Debug Win32 Debug x64 Debug ARM Static Debug Win32 Static Debug x64 Static Debug ARM Release Win32 Release x64 Release ARM Static Release Win32 Static Release x64 Static Release ARM {63E85107-41E0-4FC7-8083-40E85861B426} DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 DynamicLibrary false MultiByte v140 StaticLibrary false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC14\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC14\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 " ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 " ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 " ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 " ..\ cmake --build . Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 Win64" ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 Win64" ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 Win64" ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 Win64" ..\ cmake --build . Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 ARM" ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:ARM %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 ARM" ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 14 2015 ARM" ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:ARM %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 14 2015 ARM" ..\ cmake --build . Building Xerces-C XQilla-2.3.4/Win32Projects/VC14/xqc-context-item.vcxproj0000644001725400016040000005140713273140037017565 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB575} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/simple-context-item.vcxproj0000644001725400016040000005157313273140037020267 00000000000000 Debug Win32 Debug x64 Debug ARM Release Win32 Release x64 Release ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0} Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 Application false MultiByte v140 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC14\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC14\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:ARM %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:ARM %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC14/XQilla.sln0000644001725400016040000005041713273140037014647 00000000000000 Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla", "xqilla.vcxproj", "{63E85107-41E0-4FC7-8083-40E85861B426}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla_cmd", "xqilla_cmd.vcxproj", "{44F4673C-C971-4085-8750-3BA0D7FE6FD2}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqtsRunner", "xqtsRunner.vcxproj", "{E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmarkRunner", "xmarkRunner.vcxproj", "{619264FA-3730-43C4-A903-0EAA453527AC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-context-item", "simple-context-item.vcxproj", "{55BEA039-4B29-4909-902A-9DD4BEADBCD0}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-basic", "simple-basic.vcxproj", "{C03914F5-AA13-4B1C-A4B0-8FD6560AB573}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-resolver", "dom-resolver.vcxproj", "{31B7B9AA-109C-4B71-ADA6-274A6420969E}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-context-item", "dom-context-item.vcxproj", "{E1A71F82-696D-4439-B647-CE04D75E49DC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-basic", "dom-basic.vcxproj", "{6672DE96-EA92-44A2-900E-6868A86FB044}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|ARM = Release|ARM Release|Win32 = Release|Win32 Release|x64 = Release|x64 Static Debug|ARM = Static Debug|ARM Static Debug|Win32 = Static Debug|Win32 Static Debug|x64 = Static Debug|x64 Static Release|ARM = Static Release|ARM Static Release|Win32 = Static Release|Win32 Static Release|x64 = Static Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|ARM.ActiveCfg = Debug|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|ARM.Build.0 = Debug|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.ActiveCfg = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.Build.0 = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.ActiveCfg = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.Build.0 = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|ARM.ActiveCfg = Release|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Release|ARM.Build.0 = Release|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.ActiveCfg = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.Build.0 = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.ActiveCfg = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.Build.0 = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|ARM.ActiveCfg = Static Debug|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|ARM.Build.0 = Static Debug|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.Build.0 = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.ActiveCfg = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.Build.0 = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|ARM.ActiveCfg = Static Release|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|ARM.Build.0 = Static Release|ARM {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.ActiveCfg = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.Build.0 = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.ActiveCfg = Static Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.Build.0 = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|ARM.ActiveCfg = Debug|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|ARM.Build.0 = Debug|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.ActiveCfg = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.Build.0 = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.ActiveCfg = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.Build.0 = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|ARM.ActiveCfg = Release|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|ARM.Build.0 = Release|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.ActiveCfg = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.Build.0 = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.ActiveCfg = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.Build.0 = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|ARM.ActiveCfg = Static Debug|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|ARM.Build.0 = Static Debug|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.Build.0 = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.ActiveCfg = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.Build.0 = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|ARM.ActiveCfg = Static Release|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|ARM.Build.0 = Static Release|ARM {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.Build.0 = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.ActiveCfg = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.Build.0 = Static Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|ARM.ActiveCfg = Debug|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|ARM.Build.0 = Debug|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|ARM.ActiveCfg = Release|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|ARM.Build.0 = Release|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.Build.0 = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|ARM.ActiveCfg = Debug|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|ARM.Build.0 = Debug|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|ARM.ActiveCfg = Release|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|ARM.Build.0 = Release|ARM {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|ARM.ActiveCfg = Debug|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|ARM.Build.0 = Debug|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|ARM.ActiveCfg = Release|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Release|ARM.Build.0 = Release|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|ARM.ActiveCfg = Debug|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|ARM.Build.0 = Debug|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|ARM.ActiveCfg = Release|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|ARM.Build.0 = Release|ARM {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|ARM.ActiveCfg = Debug|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|ARM.Build.0 = Debug|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|ARM.ActiveCfg = Release|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|ARM.Build.0 = Release|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|ARM.ActiveCfg = Debug|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|ARM.Build.0 = Debug|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|ARM.ActiveCfg = Release|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|ARM.Build.0 = Release|ARM {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|ARM.ActiveCfg = Debug|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|ARM.Build.0 = Debug|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|ARM.ActiveCfg = Release|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|ARM.Build.0 = Release|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|ARM.ActiveCfg = Debug|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|ARM.Build.0 = Debug|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|ARM.ActiveCfg = Release|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|ARM.Build.0 = Release|ARM {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|ARM.ActiveCfg = Debug|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|ARM.Build.0 = Debug|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|ARM.ActiveCfg = Release|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|ARM.ActiveCfg = Debug|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|ARM.Build.0 = Debug|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|ARM.ActiveCfg = Release|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|ARM.Build.0 = Release|ARM {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|ARM.ActiveCfg = Debug|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|ARM.Build.0 = Debug|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|ARM.ActiveCfg = Release|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|ARM.Build.0 = Release|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|ARM.ActiveCfg = Debug|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|ARM.Build.0 = Debug|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|ARM.ActiveCfg = Release|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|ARM.Build.0 = Release|ARM {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|ARM.ActiveCfg = Debug|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|ARM.Build.0 = Debug|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|ARM.ActiveCfg = Release|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|ARM.Build.0 = Release|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|ARM.ActiveCfg = Debug|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|ARM.Build.0 = Debug|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|ARM.ActiveCfg = Release|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|ARM.Build.0 = Release|ARM {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal XQilla-2.3.4/Win32Projects/VC11/0000755001725400016040000000000013273141207013005 500000000000000XQilla-2.3.4/Win32Projects/VC11/xqilla_cmd.vcxproj0000644001725400016040000006730013273140037016465 00000000000000 Debug Win32 Debug x64 Static Debug Win32 Static Debug x64 Release Win32 Release x64 Static Release Win32 Static Release x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Static Debug\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe ..\..\build\windows\VC11\$(Platform)\Static Release\ ./$(OutDir)xqilla_cmd\ false xqilla .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23sd.lib;xerces-c_static_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;XQILLA_API=;XERCES_STATIC_LIBRARY=;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla_cmd.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23s.lib;xerces-c_static_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/simple-basic.vcxproj0000644001725400016040000003432213273140037016716 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)simple-basic\ false simple-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)simple-basic\ false simple-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-basic.pch $(OutDir)simple-basic/ $(OutDir)simple-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/xqtsRunner.vcxproj0000644001725400016040000003422013273140037016534 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqtsRunner\ false xqtsRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqtsRunner.pch $(OutDir)xqtsRunner/ $(OutDir)xqtsRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqtsRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/dom-resolver.vcxproj0000644001725400016040000003431713273140037016770 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-resolver\ false dom-resolver .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-resolver\ false dom-resolver .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-resolver.pch $(OutDir)dom-resolver/ $(OutDir)dom-resolver/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-resolver.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/xmarkRunner.vcxproj0000644001725400016040000003425013273140037016662 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {619264FA-3730-43C4-A903-0EAA453527AC} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xmarkRunner\ false xmarkRunner .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xmarkRunner.pch $(OutDir)xmarkRunner/ $(OutDir)xmarkRunner/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xmarkRunner.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/xqc-basic.vcxproj0000644001725400016040000003420213273140037016215 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB574} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqc-basic\ false xqc-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqc-basic\ false xqc-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-basic.pch $(OutDir)xqc-basic/ $(OutDir)xqc-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/dom-basic.vcxproj0000644001725400016040000003420413273140037016203 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {6672DE96-EA92-44A2-900E-6868A86FB044} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-basic\ false dom-basic .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-basic\ false dom-basic .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-basic.pch $(OutDir)dom-basic/ $(OutDir)dom-basic/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-basic.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/dom-context-item.vcxproj0000644001725400016040000003446313273140037017551 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {E1A71F82-696D-4439-B647-CE04D75E49DC} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)dom-context-item\ false dom-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)dom-context-item\ false dom-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)dom-context-item.pch $(OutDir)dom-context-item/ $(OutDir)dom-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)dom-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/xqilla.vcxproj0000644001725400016040000025672013273140037015650 00000000000000 Debug Win32 Debug x64 Static Debug Win32 Static Debug x64 Release Win32 Release x64 Static Release Win32 Static Release x64 {63E85107-41E0-4FC7-8083-40E85861B426} DynamicLibrary false MultiByte v110 StaticLibrary false MultiByte v110 DynamicLibrary false MultiByte v110 StaticLibrary false MultiByte v110 DynamicLibrary false MultiByte v110 StaticLibrary false MultiByte v110 DynamicLibrary false MultiByte v110 StaticLibrary false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC11\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC11\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqilla\ false xqilla23d .dll ..\..\build\windows\VC11\$(Platform)\Static Debug\ ./$(OutDir)xqilla\ false xqilla23sd .lib ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqilla\ false xqilla23 .dll ..\..\build\windows\VC11\$(Platform)\Static Release\ ./$(OutDir)xqilla\ false xqilla23s .lib Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 11 2012 " ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 11 2012 " ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 11 2012 " ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x86 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 11 2012 " ..\ cmake --build . Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xerces-c_3d.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23d.pdb true true $(OutDir)xqilla23d.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=ON -G "Visual Studio 11 2012 Win64" ..\ cmake --build . --config Debug Building Xerces-C Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreadedDebug ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase EnableFastChecks Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\debug -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 11 2012 Win64" ..\ cmake --build . --config Debug Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_USRDLL;XQILLA_APIS;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xerces-c_3.lib;%(AdditionalDependencies) ../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqilla23.pdb true true $(OutDir)xqilla23.lib true NotSet cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=ON -G "Visual Studio 11 2012 Win64" ..\ cmake --build . Building Xerces-C MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_LIB;XQILLA_API=;XERCES_STATIC_LIBRARY;%(PreprocessorDefinitions) true MultiThreaded true ./$(OutDir)xqilla.pch $(OutDir)xqilla/ $(OutDir)xqilla/ Level3 true ProgramDatabase Default $(OutDir)$(TargetName)$(TargetExt) /machine:x64 %(AdditionalOptions) cd ..\..\..\xerces-c-src mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=..\..\..\bin\release -DBUILD_SHARED_LIBS=OFF -G "Visual Studio 11 2012 Win64" ..\ cmake --build . Building Xerces-C XQilla-2.3.4/Win32Projects/VC11/xqc-context-item.vcxproj0000644001725400016040000003446113273140037017563 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB575} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)xqc-context-item\ false xqc-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)xqc-context-item.pch $(OutDir)xqc-context-item/ $(OutDir)xqc-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)xqc-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/simple-context-item.vcxproj0000644001725400016040000003460113273140037020255 00000000000000 Debug Win32 Debug x64 Release Win32 Release x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0} Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 Application false MultiByte v110 <_ProjectFileVersion>10.0.30319.1 ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC11\$(Platform)\Debug\ ./$(OutDir)simple-context-item\ false simple-context-item .exe ..\..\build\windows\VC11\$(Platform)\Release\ ./$(OutDir)simple-context-item\ false simple-context-item .exe Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x86 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x86 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet Disabled true ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDebugDLL ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase EnableFastChecks Default /machine:x64 %(AdditionalOptions) xqilla23d.lib;xerces-c_3d.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet MaxSpeed true OnlyExplicitInline ../../include;../../src/lexer;../../../xerces-c-src/include;../../../xerces-c-src/src;../../../xerces-c-src/build/src;%(AdditionalIncludeDirectories) WIN32;_WINDOWS;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CONSOLE;%(PreprocessorDefinitions) true MultiThreadedDLL true ./$(OutDir)simple-context-item.pch $(OutDir)simple-context-item/ $(OutDir)simple-context-item/ Level3 true ProgramDatabase Default /machine:x64 %(AdditionalOptions) xqilla23.lib;xerces-c_3.lib;%(AdditionalDependencies) $(OutDir);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../../../xerces-c-src/build/src/$(ConfigurationName);../lib;%(AdditionalLibraryDirectories) $(OutDir)$(TargetName)$(TargetExt) $(OutDir)simple-context-item.pdb true true true NotSet XQilla-2.3.4/Win32Projects/VC11/XQilla.sln0000644001725400016040000003507213273140037014644 00000000000000 Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla", "xqilla.vcxproj", "{63E85107-41E0-4FC7-8083-40E85861B426}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla_cmd", "xqilla_cmd.vcxproj", "{44F4673C-C971-4085-8750-3BA0D7FE6FD2}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqtsRunner", "xqtsRunner.vcxproj", "{E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmarkRunner", "xmarkRunner.vcxproj", "{619264FA-3730-43C4-A903-0EAA453527AC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-context-item", "simple-context-item.vcxproj", "{55BEA039-4B29-4909-902A-9DD4BEADBCD0}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-basic", "simple-basic.vcxproj", "{C03914F5-AA13-4B1C-A4B0-8FD6560AB573}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-resolver", "dom-resolver.vcxproj", "{31B7B9AA-109C-4B71-ADA6-274A6420969E}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-context-item", "dom-context-item.vcxproj", "{E1A71F82-696D-4439-B647-CE04D75E49DC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-basic", "dom-basic.vcxproj", "{6672DE96-EA92-44A2-900E-6868A86FB044}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 Static Debug|Win32 = Static Debug|Win32 Static Debug|x64 = Static Debug|x64 Static Release|Win32 = Static Release|Win32 Static Release|x64 = Static Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.ActiveCfg = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.Build.0 = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.ActiveCfg = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.Build.0 = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.ActiveCfg = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.Build.0 = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.ActiveCfg = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.Build.0 = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.Build.0 = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.ActiveCfg = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.Build.0 = Static Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.ActiveCfg = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.Build.0 = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.ActiveCfg = Static Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.Build.0 = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.ActiveCfg = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.Build.0 = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.ActiveCfg = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.Build.0 = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.ActiveCfg = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.Build.0 = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.ActiveCfg = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.Build.0 = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.Build.0 = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.ActiveCfg = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.Build.0 = Static Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.Build.0 = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.ActiveCfg = Static Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.Build.0 = Static Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.Build.0 = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal XQilla-2.3.4/LICENSE0000644001725400016040000002641313232476422010657 00000000000000In addition to the Apache Licence v2, code contained in the src/mapm and src/yajl directories is licenced under the terms specified by documentation in those directories. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.